summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-11-20 00:14:25 +0000
committernobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-11-20 00:14:25 +0000
commit78cbce72ded77af2f8554f6037e472b2f2fe44e3 (patch)
tree2f9fe2f8a23232566f19772d857ac92ffb168757
parent76aed48d74b6d267f5d0f93e959abac2db93a54c (diff)
downloadATCD-78cbce72ded77af2f8554f6037e472b2f2fe44e3.tar.gz
This commit was manufactured by cvs2svn to create branch
'reactor_rewrite_stage_0'.
-rw-r--r--ACE-INSTALL.html2781
-rw-r--r--ACE-install.sh356
-rw-r--r--ASNMP/COPYRIGHT68
-rw-r--r--ASNMP/ChangeLog370
-rw-r--r--ASNMP/Makefile34
-rw-r--r--ASNMP/README177
-rw-r--r--ASNMP/TO-DO3
-rw-r--r--ASNMP/agent/Makefile45
-rw-r--r--ASNMP/agent/agent_impl.cpp157
-rw-r--r--ASNMP/agent/agent_impl.h52
-rw-r--r--ASNMP/agent/main.cpp26
-rw-r--r--ASNMP/agent/snmp_agent.cpp96
-rw-r--r--ASNMP/agent/snmp_agent.h48
-rw-r--r--ASNMP/asnmp-overview.html134
-rw-r--r--ASNMP/asnmp/ChangeLog161
-rw-r--r--ASNMP/asnmp/Makefile1028
-rw-r--r--ASNMP/asnmp/TODO25
-rw-r--r--ASNMP/asnmp/address.cpp2686
-rw-r--r--ASNMP/asnmp/address.h813
-rw-r--r--ASNMP/asnmp/asn1.cpp1728
-rw-r--r--ASNMP/asnmp/asn1.h342
-rw-r--r--ASNMP/asnmp/counter.cpp106
-rw-r--r--ASNMP/asnmp/counter.h79
-rw-r--r--ASNMP/asnmp/ctr64.cpp211
-rw-r--r--ASNMP/asnmp/ctr64.h110
-rw-r--r--ASNMP/asnmp/enttraps.h118
-rw-r--r--ASNMP/asnmp/gauge.cpp113
-rw-r--r--ASNMP/asnmp/gauge.h80
-rw-r--r--ASNMP/asnmp/integer.cpp227
-rw-r--r--ASNMP/asnmp/integer.h140
-rw-r--r--ASNMP/asnmp/octet.cpp594
-rw-r--r--ASNMP/asnmp/octet.h150
-rw-r--r--ASNMP/asnmp/oid.cpp800
-rw-r--r--ASNMP/asnmp/oid.h170
-rw-r--r--ASNMP/asnmp/oid_def.h87
-rw-r--r--ASNMP/asnmp/pdu.cpp496
-rw-r--r--ASNMP/asnmp/pdu.h213
-rw-r--r--ASNMP/asnmp/sagent.cpp97
-rw-r--r--ASNMP/asnmp/sagent.h83
-rw-r--r--ASNMP/asnmp/smi.h153
-rw-r--r--ASNMP/asnmp/smival.h104
-rw-r--r--ASNMP/asnmp/snmp.cpp283
-rw-r--r--ASNMP/asnmp/snmp.h134
-rw-r--r--ASNMP/asnmp/snmperrs.h214
-rw-r--r--ASNMP/asnmp/target.cpp324
-rw-r--r--ASNMP/asnmp/target.h252
-rw-r--r--ASNMP/asnmp/timetick.cpp142
-rw-r--r--ASNMP/asnmp/timetick.h85
-rw-r--r--ASNMP/asnmp/transaction.cpp202
-rw-r--r--ASNMP/asnmp/transaction.h80
-rw-r--r--ASNMP/asnmp/transaction_result.h29
-rw-r--r--ASNMP/asnmp/vb.cpp396
-rw-r--r--ASNMP/asnmp/vb.h204
-rw-r--r--ASNMP/asnmp/wpdu.cpp520
-rw-r--r--ASNMP/asnmp/wpdu.h85
-rw-r--r--ASNMP/examples/Makefile28
-rw-r--r--ASNMP/examples/get/Makefile44
-rw-r--r--ASNMP/examples/get/get.cpp195
-rw-r--r--ASNMP/examples/get/get_async.cpp204
-rw-r--r--ASNMP/examples/next/Makefile45
-rw-r--r--ASNMP/examples/next/next.cpp193
-rw-r--r--ASNMP/examples/set/Makefile45
-rw-r--r--ASNMP/examples/set/set.cpp263
-rw-r--r--ASNMP/examples/trap/Makefile45
-rw-r--r--ASNMP/examples/trap/purify4.1.txt117
-rw-r--r--ASNMP/examples/trap/trap.cpp182
-rw-r--r--ASNMP/examples/walk/Makefile45
-rw-r--r--ASNMP/examples/walk/walk.cpp260
-rw-r--r--ASNMP/mibs/RFC1213-MIB.my2618
-rw-r--r--ASNMP/tests/Address_Test.cpp549
-rw-r--r--ASNMP/tests/Counter64_Test.cpp154
-rw-r--r--ASNMP/tests/Counter_Test.cpp136
-rw-r--r--ASNMP/tests/Gauge_Test.cpp128
-rw-r--r--ASNMP/tests/Integer_Test.cpp194
-rw-r--r--ASNMP/tests/Makefile503
-rw-r--r--ASNMP/tests/Octet_Test.cpp156
-rw-r--r--ASNMP/tests/Oid_Test.cpp181
-rw-r--r--ASNMP/tests/Target_Test.cpp147
-rw-r--r--ASNMP/tests/Varbind_Test.cpp195
-rw-r--r--ASNMP/tests/run_tests.bat44
-rwxr-xr-xASNMP/tests/run_tests.sh61
-rw-r--r--ASNMP/tests/test_config.h197
-rw-r--r--AUTHORS11
-rw-r--r--COPYING90
-rw-r--r--ChangeLog5826
-rw-r--r--ChangeLog_Reactor_Rewrite4
-rw-r--r--ChangeLogs/ChangeLog-00a12664
-rw-r--r--ChangeLogs/ChangeLog-00b3845
-rw-r--r--ChangeLogs/ChangeLog-01a8155
-rw-r--r--ChangeLogs/ChangeLog-02a5826
-rw-r--r--ChangeLogs/ChangeLog-03a5826
-rw-r--r--ChangeLogs/ChangeLog-9352
-rw-r--r--ChangeLogs/ChangeLog-941027
-rw-r--r--ChangeLogs/ChangeLog-954179
-rw-r--r--ChangeLogs/ChangeLog-96a3889
-rw-r--r--ChangeLogs/ChangeLog-96b5878
-rw-r--r--ChangeLogs/ChangeLog-97a9203
-rw-r--r--ChangeLogs/ChangeLog-97b9182
-rw-r--r--ChangeLogs/ChangeLog-98a6588
-rw-r--r--ChangeLogs/ChangeLog-98b12943
-rw-r--r--ChangeLogs/ChangeLog-99a13411
-rw-r--r--ChangeLogs/ChangeLog-99b7290
-rw-r--r--FAQ1863
-rw-r--r--Makefile240
-rw-r--r--Makefile.am101
-rw-r--r--Makefile.bor26
-rw-r--r--PACE/ChangeLog3706
-rw-r--r--PACE/Makefile43
-rw-r--r--PACE/Makefile.am30
-rw-r--r--PACE/README49
-rw-r--r--PACE/THANKS17
-rw-r--r--PACE/VERSION5
-rw-r--r--PACE/docs/ACE_Integration.txt17
-rw-r--r--PACE/docs/README1
-rw-r--r--PACE/docs/www/Introduction/begin.html135
-rw-r--r--PACE/docs/www/Introduction/build.html107
-rw-r--r--PACE/docs/www/Introduction/change.html108
-rw-r--r--PACE/docs/www/Introduction/phases.html108
-rw-r--r--PACE/docs/www/Introduction/porting.html111
-rw-r--r--PACE/docs/www/Introduction/struct.html123
-rw-r--r--PACE/docs/www/Introduction/team.html111
-rw-r--r--PACE/docs/www/Introduction/using.html108
-rw-r--r--PACE/docs/www/PACE-abstract.html152
-rw-r--r--PACE/docs/www/PACE-car.html28
-rw-r--r--PACE/docs/www/PACE-docs.html109
-rw-r--r--PACE/docs/www/PACE-obtain.html124
-rw-r--r--PACE/docs/www/PACE-overview.html229
-rw-r--r--PACE/docs/www/PACE.html150
-rw-r--r--PACE/docs/www/Pix/PACE-mini-logo.gifbin7226 -> 0 bytes
-rw-r--r--PACE/docs/www/Pix/PACE-red-blue-logo.gifbin26888 -> 0 bytes
-rw-r--r--PACE/docs/www/Pix/PACE-red-blue-smaller.gifbin30650 -> 0 bytes
-rw-r--r--PACE/docs/www/Pix/ace-tmp.jpgbin15369 -> 0 bytes
-rw-r--r--PACE/docs/www/Pix/doc-logo.jpgbin18630 -> 0 bytes
-rw-r--r--PACE/docs/www/Pix/heli-1.jpgbin13921 -> 0 bytes
-rw-r--r--PACE/docs/www/Pix/pace-car1.jpgbin37364 -> 0 bytes
-rw-r--r--PACE/docs/www/Pix/pace-car2.jpgbin18615 -> 0 bytes
-rw-r--r--PACE/docs/www/Pix/pace-car3.jpgbin23161 -> 0 bytes
-rw-r--r--PACE/docs/www/Pix/redball.gifbin326 -> 0 bytes
-rw-r--r--PACE/docs/www/Pix/stealth.jpgbin40575 -> 0 bytes
-rwxr-xr-xPACE/docs/www/index.html150
-rw-r--r--PACE/examples/README0
-rw-r--r--PACE/include/makeinclude/rules.common.GNU121
-rw-r--r--PACE/pace++/README0
-rw-r--r--PACE/pace/Makefile498
-rw-r--r--PACE/pace/Makefile.am64
-rw-r--r--PACE/pace/aio.h125
-rw-r--r--PACE/pace/assert.h64
-rw-r--r--PACE/pace/config/compiler.h69
-rw-r--r--PACE/pace/config/config.h221
-rw-r--r--PACE/pace/config/constants.h244
-rw-r--r--PACE/pace/config/defaults.h26
-rw-r--r--PACE/pace/config/defines.h27
-rw-r--r--PACE/pace/config/features.h49
-rw-r--r--PACE/pace/config/platform.h86
-rw-r--r--PACE/pace/config/utility.h118
-rw-r--r--PACE/pace/ctype.h164
-rw-r--r--PACE/pace/dirent.h95
-rw-r--r--PACE/pace/emulation/mqueue.c570
-rw-r--r--PACE/pace/emulation/mqueue.h95
-rw-r--r--PACE/pace/emulation/time.h46
-rw-r--r--PACE/pace/errno.h37
-rw-r--r--PACE/pace/fcntl.h94
-rw-r--r--PACE/pace/grp.h93
-rw-r--r--PACE/pace/limits.h29
-rw-r--r--PACE/pace/locale.h65
-rw-r--r--PACE/pace/man/Makefile13
-rw-r--r--PACE/pace/man/banner5
-rw-r--r--PACE/pace/man/pace.jpgbin19144 -> 0 bytes
-rw-r--r--PACE/pace/math.h245
-rw-r--r--PACE/pace/mqueue.h131
-rw-r--r--PACE/pace/posix/Makefile.am113
-rw-r--r--PACE/pace/posix/README1
-rw-r--r--PACE/pace/posix/TODO7
-rw-r--r--PACE/pace/posix/aio.c20
-rw-r--r--PACE/pace/posix/aio.h45
-rw-r--r--PACE/pace/posix/aio.inl94
-rw-r--r--PACE/pace/posix/assert.c20
-rw-r--r--PACE/pace/posix/assert.h29
-rw-r--r--PACE/pace/posix/assert.inl14
-rw-r--r--PACE/pace/posix/ctype.c20
-rw-r--r--PACE/pace/posix/ctype.h27
-rw-r--r--PACE/pace/posix/ctype.inl133
-rw-r--r--PACE/pace/posix/dirent.c20
-rw-r--r--PACE/pace/posix/dirent.h40
-rw-r--r--PACE/pace/posix/dirent.inl68
-rw-r--r--PACE/pace/posix/errno.h76
-rw-r--r--PACE/pace/posix/fcntl.c20
-rw-r--r--PACE/pace/posix/fcntl.h63
-rw-r--r--PACE/pace/posix/fcntl.inl23
-rw-r--r--PACE/pace/posix/grp.c20
-rw-r--r--PACE/pace/posix/grp.h34
-rw-r--r--PACE/pace/posix/grp.inl73
-rw-r--r--PACE/pace/posix/limits.h29
-rw-r--r--PACE/pace/posix/locale.c20
-rw-r--r--PACE/pace/posix/locale.h40
-rw-r--r--PACE/pace/posix/locale.inl34
-rw-r--r--PACE/pace/posix/math.c20
-rw-r--r--PACE/pace/posix/math.h29
-rw-r--r--PACE/pace/posix/math.inl215
-rw-r--r--PACE/pace/posix/mman.c20
-rw-r--r--PACE/pace/posix/mman.h42
-rw-r--r--PACE/pace/posix/mman.inl127
-rw-r--r--PACE/pace/posix/mqueue.c24
-rw-r--r--PACE/pace/posix/mqueue.h43
-rw-r--r--PACE/pace/posix/mqueue.inl87
-rw-r--r--PACE/pace/posix/pthread.c20
-rw-r--r--PACE/pace/posix/pthread.h81
-rw-r--r--PACE/pace/posix/pthread.inl761
-rw-r--r--PACE/pace/posix/pwd.c20
-rw-r--r--PACE/pace/posix/pwd.h35
-rw-r--r--PACE/pace/posix/pwd.inl81
-rw-r--r--PACE/pace/posix/sched.c20
-rw-r--r--PACE/pace/posix/sched.h38
-rw-r--r--PACE/pace/posix/sched.inl95
-rw-r--r--PACE/pace/posix/semaphore.c20
-rw-r--r--PACE/pace/posix/semaphore.h31
-rw-r--r--PACE/pace/posix/semaphore.inl86
-rw-r--r--PACE/pace/posix/setjmp.c20
-rw-r--r--PACE/pace/posix/setjmp.h32
-rw-r--r--PACE/pace/posix/setjmp.inl34
-rw-r--r--PACE/pace/posix/signal.c28
-rw-r--r--PACE/pace/posix/signal.h71
-rw-r--r--PACE/pace/posix/signal.inl167
-rw-r--r--PACE/pace/posix/socket.c20
-rw-r--r--PACE/pace/posix/socket.h231
-rw-r--r--PACE/pace/posix/socket.inl242
-rw-r--r--PACE/pace/posix/stat.c20
-rw-r--r--PACE/pace/posix/stat.h58
-rw-r--r--PACE/pace/posix/stat.inl77
-rw-r--r--PACE/pace/posix/stdio.c20
-rw-r--r--PACE/pace/posix/stdio.h58
-rw-r--r--PACE/pace/posix/stdio.inl502
-rw-r--r--PACE/pace/posix/stdlib.c20
-rw-r--r--PACE/pace/posix/stdlib.h64
-rw-r--r--PACE/pace/posix/stdlib.inl323
-rw-r--r--PACE/pace/posix/string.c20
-rw-r--r--PACE/pace/posix/string.h36
-rw-r--r--PACE/pace/posix/string.inl206
-rw-r--r--PACE/pace/posix/termios.c20
-rw-r--r--PACE/pace/posix/termios.h50
-rw-r--r--PACE/pace/posix/termios.inl109
-rw-r--r--PACE/pace/posix/time.c20
-rw-r--r--PACE/pace/posix/time.h95
-rw-r--r--PACE/pace/posix/time.inl324
-rw-r--r--PACE/pace/posix/times.c20
-rw-r--r--PACE/pace/posix/times.h39
-rw-r--r--PACE/pace/posix/times.inl23
-rw-r--r--PACE/pace/posix/types.h134
-rw-r--r--PACE/pace/posix/unistd.c20
-rw-r--r--PACE/pace/posix/unistd.h56
-rw-r--r--PACE/pace/posix/unistd.inl470
-rw-r--r--PACE/pace/posix/utime.c20
-rw-r--r--PACE/pace/posix/utime.h35
-rw-r--r--PACE/pace/posix/utime.inl24
-rw-r--r--PACE/pace/posix/utsname.c20
-rw-r--r--PACE/pace/posix/utsname.h34
-rw-r--r--PACE/pace/posix/utsname.inl23
-rw-r--r--PACE/pace/posix/wait.c20
-rw-r--r--PACE/pace/posix/wait.h38
-rw-r--r--PACE/pace/posix/wait.inl34
-rw-r--r--PACE/pace/pthread.h733
-rw-r--r--PACE/pace/pwd.h93
-rw-r--r--PACE/pace/sched.h124
-rw-r--r--PACE/pace/semaphore.h130
-rw-r--r--PACE/pace/setjmp.h85
-rw-r--r--PACE/pace/signal.h199
-rw-r--r--PACE/pace/stddef.h53
-rw-r--r--PACE/pace/stdio.h528
-rw-r--r--PACE/pace/stdlib.h305
-rw-r--r--PACE/pace/string.h240
-rw-r--r--PACE/pace/sys/mman.h151
-rw-r--r--PACE/pace/sys/socket.h252
-rw-r--r--PACE/pace/sys/stat.h80
-rw-r--r--PACE/pace/sys/times.h51
-rw-r--r--PACE/pace/sys/types.h37
-rw-r--r--PACE/pace/sys/utsname.h51
-rw-r--r--PACE/pace/sys/wait.h67
-rw-r--r--PACE/pace/termios.h145
-rw-r--r--PACE/pace/time.h274
-rw-r--r--PACE/pace/unistd.h524
-rw-r--r--PACE/pace/utime.h57
-rw-r--r--PACE/pace/vxworks/README1
-rw-r--r--PACE/pace/vxworks/aio.c20
-rw-r--r--PACE/pace/vxworks/aio.h45
-rw-r--r--PACE/pace/vxworks/aio.inl112
-rw-r--r--PACE/pace/vxworks/assert.c20
-rw-r--r--PACE/pace/vxworks/assert.h29
-rw-r--r--PACE/pace/vxworks/assert.inl14
-rw-r--r--PACE/pace/vxworks/ctype.c20
-rw-r--r--PACE/pace/vxworks/ctype.h27
-rw-r--r--PACE/pace/vxworks/ctype.inl159
-rw-r--r--PACE/pace/vxworks/dirent.c20
-rw-r--r--PACE/pace/vxworks/dirent.h40
-rw-r--r--PACE/pace/vxworks/dirent.inl74
-rw-r--r--PACE/pace/vxworks/errno.h75
-rw-r--r--PACE/pace/vxworks/fcntl.c20
-rw-r--r--PACE/pace/vxworks/fcntl.h63
-rw-r--r--PACE/pace/vxworks/fcntl.inl39
-rw-r--r--PACE/pace/vxworks/grp.c20
-rw-r--r--PACE/pace/vxworks/grp.h32
-rw-r--r--PACE/pace/vxworks/grp.inl82
-rw-r--r--PACE/pace/vxworks/limits.h29
-rw-r--r--PACE/pace/vxworks/locale.c20
-rw-r--r--PACE/pace/vxworks/locale.h40
-rw-r--r--PACE/pace/vxworks/locale.inl38
-rw-r--r--PACE/pace/vxworks/math.c20
-rw-r--r--PACE/pace/vxworks/math.h29
-rw-r--r--PACE/pace/vxworks/math.inl259
-rw-r--r--PACE/pace/vxworks/mman.c20
-rw-r--r--PACE/pace/vxworks/mman.h42
-rw-r--r--PACE/pace/vxworks/mman.inl153
-rw-r--r--PACE/pace/vxworks/mqueue.c20
-rw-r--r--PACE/pace/vxworks/mqueue.h43
-rw-r--r--PACE/pace/vxworks/mqueue.inl101
-rw-r--r--PACE/pace/vxworks/pthread.c1376
-rw-r--r--PACE/pace/vxworks/pthread.h163
-rw-r--r--PACE/pace/vxworks/pthread.inl935
-rw-r--r--PACE/pace/vxworks/pwd.c20
-rw-r--r--PACE/pace/vxworks/pwd.h34
-rw-r--r--PACE/pace/vxworks/pwd.inl82
-rw-r--r--PACE/pace/vxworks/sched.c20
-rw-r--r--PACE/pace/vxworks/sched.h38
-rw-r--r--PACE/pace/vxworks/sched.inl107
-rw-r--r--PACE/pace/vxworks/semaphore.c20
-rw-r--r--PACE/pace/vxworks/semaphore.h31
-rw-r--r--PACE/pace/vxworks/semaphore.inl102
-rw-r--r--PACE/pace/vxworks/setjmp.c20
-rw-r--r--PACE/pace/vxworks/setjmp.h33
-rw-r--r--PACE/pace/vxworks/setjmp.inl38
-rw-r--r--PACE/pace/vxworks/signal.c28
-rw-r--r--PACE/pace/vxworks/signal.h71
-rw-r--r--PACE/pace/vxworks/signal.inl207
-rw-r--r--PACE/pace/vxworks/socket.c20
-rw-r--r--PACE/pace/vxworks/socket.h218
-rw-r--r--PACE/pace/vxworks/socket.inl280
-rw-r--r--PACE/pace/vxworks/stat.c20
-rw-r--r--PACE/pace/vxworks/stat.h59
-rw-r--r--PACE/pace/vxworks/stat.inl99
-rw-r--r--PACE/pace/vxworks/stdio.c20
-rw-r--r--PACE/pace/vxworks/stdio.h58
-rw-r--r--PACE/pace/vxworks/stdio.inl565
-rw-r--r--PACE/pace/vxworks/stdlib.c20
-rw-r--r--PACE/pace/vxworks/stdlib.h64
-rw-r--r--PACE/pace/vxworks/stdlib.inl381
-rw-r--r--PACE/pace/vxworks/string.c20
-rw-r--r--PACE/pace/vxworks/string.h36
-rw-r--r--PACE/pace/vxworks/string.inl238
-rw-r--r--PACE/pace/vxworks/termios.c20
-rw-r--r--PACE/pace/vxworks/termios.h49
-rw-r--r--PACE/pace/vxworks/termios.inl145
-rw-r--r--PACE/pace/vxworks/time.c20
-rw-r--r--PACE/pace/vxworks/time.h87
-rw-r--r--PACE/pace/vxworks/time.inl296
-rw-r--r--PACE/pace/vxworks/times.c20
-rw-r--r--PACE/pace/vxworks/times.h39
-rw-r--r--PACE/pace/vxworks/times.inl26
-rw-r--r--PACE/pace/vxworks/types.h261
-rw-r--r--PACE/pace/vxworks/unistd.c20
-rw-r--r--PACE/pace/vxworks/unistd.h56
-rw-r--r--PACE/pace/vxworks/unistd.inl601
-rw-r--r--PACE/pace/vxworks/utime.c20
-rw-r--r--PACE/pace/vxworks/utime.h35
-rw-r--r--PACE/pace/vxworks/utime.inl27
-rw-r--r--PACE/pace/vxworks/utsname.c20
-rw-r--r--PACE/pace/vxworks/utsname.h47
-rw-r--r--PACE/pace/vxworks/utsname.inl40
-rw-r--r--PACE/pace/vxworks/wait.c20
-rw-r--r--PACE/pace/vxworks/wait.h38
-rw-r--r--PACE/pace/vxworks/wait.inl42
-rw-r--r--PACE/pace/win32/README1
-rw-r--r--PACE/pace/win32/TODO29
-rw-r--r--PACE/pace/win32/aio.c20
-rw-r--r--PACE/pace/win32/aio.h44
-rw-r--r--PACE/pace/win32/aio.inl106
-rw-r--r--PACE/pace/win32/assert.c20
-rw-r--r--PACE/pace/win32/assert.h29
-rw-r--r--PACE/pace/win32/assert.inl14
-rw-r--r--PACE/pace/win32/ctype.c20
-rw-r--r--PACE/pace/win32/ctype.h27
-rw-r--r--PACE/pace/win32/ctype.inl133
-rw-r--r--PACE/pace/win32/dirent.c100
-rw-r--r--PACE/pace/win32/dirent.h74
-rw-r--r--PACE/pace/win32/dirent.inl68
-rw-r--r--PACE/pace/win32/errno.h84
-rw-r--r--PACE/pace/win32/fcntl.c164
-rw-r--r--PACE/pace/win32/fcntl.h71
-rw-r--r--PACE/pace/win32/fcntl.inl38
-rw-r--r--PACE/pace/win32/grp.c20
-rw-r--r--PACE/pace/win32/grp.h34
-rw-r--r--PACE/pace/win32/grp.inl72
-rw-r--r--PACE/pace/win32/limits.h29
-rw-r--r--PACE/pace/win32/locale.c20
-rw-r--r--PACE/pace/win32/locale.h40
-rw-r--r--PACE/pace/win32/locale.inl34
-rw-r--r--PACE/pace/win32/math.c20
-rw-r--r--PACE/pace/win32/math.h29
-rw-r--r--PACE/pace/win32/math.inl215
-rw-r--r--PACE/pace/win32/mman.c123
-rw-r--r--PACE/pace/win32/mman.h65
-rw-r--r--PACE/pace/win32/mman.inl129
-rw-r--r--PACE/pace/win32/mqueue.c20
-rw-r--r--PACE/pace/win32/mqueue.h45
-rw-r--r--PACE/pace/win32/mqueue.inl104
-rw-r--r--PACE/pace/win32/pace.dsw41
-rw-r--r--PACE/pace/win32/pace_dll.dsp623
-rw-r--r--PACE/pace/win32/pace_lib.dsp609
-rw-r--r--PACE/pace/win32/pthread.c359
-rw-r--r--PACE/pace/win32/pthread.h178
-rw-r--r--PACE/pace/win32/pthread.inl682
-rw-r--r--PACE/pace/win32/pthreadtypes.h132
-rw-r--r--PACE/pace/win32/pwd.c20
-rw-r--r--PACE/pace/win32/pwd.h34
-rw-r--r--PACE/pace/win32/pwd.inl72
-rw-r--r--PACE/pace/win32/sched.c20
-rw-r--r--PACE/pace/win32/sched.h34
-rw-r--r--PACE/pace/win32/sched.inl103
-rw-r--r--PACE/pace/win32/schedtypes.h67
-rw-r--r--PACE/pace/win32/semaphore.c122
-rw-r--r--PACE/pace/win32/semaphore.h62
-rw-r--r--PACE/pace/win32/semaphore.inl108
-rw-r--r--PACE/pace/win32/setjmp.c20
-rw-r--r--PACE/pace/win32/setjmp.h42
-rw-r--r--PACE/pace/win32/setjmp.inl36
-rw-r--r--PACE/pace/win32/signal.c45
-rw-r--r--PACE/pace/win32/signal.h81
-rw-r--r--PACE/pace/win32/signal.inl193
-rw-r--r--PACE/pace/win32/socket.c9
-rw-r--r--PACE/pace/win32/socket.h5
-rw-r--r--PACE/pace/win32/socket.inl7
-rw-r--r--PACE/pace/win32/stat.c40
-rw-r--r--PACE/pace/win32/stat.h65
-rw-r--r--PACE/pace/win32/stat.inl99
-rw-r--r--PACE/pace/win32/stdio.c51
-rw-r--r--PACE/pace/win32/stdio.h90
-rw-r--r--PACE/pace/win32/stdio.inl464
-rw-r--r--PACE/pace/win32/stdlib.c20
-rw-r--r--PACE/pace/win32/stdlib.h63
-rw-r--r--PACE/pace/win32/stdlib.inl303
-rw-r--r--PACE/pace/win32/string.c42
-rw-r--r--PACE/pace/win32/string.h42
-rw-r--r--PACE/pace/win32/string.inl198
-rw-r--r--PACE/pace/win32/termios.c20
-rw-r--r--PACE/pace/win32/termios.h56
-rw-r--r--PACE/pace/win32/termios.inl124
-rw-r--r--PACE/pace/win32/time.c20
-rw-r--r--PACE/pace/win32/time.h107
-rw-r--r--PACE/pace/win32/time.inl265
-rw-r--r--PACE/pace/win32/times.c20
-rw-r--r--PACE/pace/win32/times.h40
-rw-r--r--PACE/pace/win32/times.inl24
-rw-r--r--PACE/pace/win32/types.h100
-rw-r--r--PACE/pace/win32/unistd.c146
-rw-r--r--PACE/pace/win32/unistd.h119
-rw-r--r--PACE/pace/win32/unistd.inl514
-rw-r--r--PACE/pace/win32/utime.c41
-rw-r--r--PACE/pace/win32/utime.h43
-rw-r--r--PACE/pace/win32/utime.inl33
-rw-r--r--PACE/pace/win32/utsname.c181
-rw-r--r--PACE/pace/win32/utsname.h43
-rw-r--r--PACE/pace/win32/utsname.inl26
-rw-r--r--PACE/pace/win32/wait.c20
-rw-r--r--PACE/pace/win32/wait.h38
-rw-r--r--PACE/pace/win32/wait.inl45
-rw-r--r--PACE/tests/Cond_Var_Test.c136
-rw-r--r--PACE/tests/Makefile204
-rw-r--r--PACE/tests/Makefile.am54
-rw-r--r--PACE/tests/Posix_SP_Test.c253
-rw-r--r--PACE/tests/Pthread_Storage_Test.c144
-rw-r--r--PACE/tests/Pthreads_Test.c110
-rw-r--r--PACE/tests/README6
-rw-r--r--PACE/tests/Stat_Test.c83
-rw-r--r--PACE/tests/Stdio_Test.c123
-rw-r--r--PACE/tests/mqueue_test.c134
-rw-r--r--PACE/tests/test_stdio.dsp162
-rw-r--r--PACE/tests/tests.dsw59
-rw-r--r--PACE/tests/vxworks_stub.c109
-rw-r--r--PROBLEM-REPORT-FORM70
-rw-r--r--README225
-rw-r--r--RTJava/ChangeLog61
-rw-r--r--RTJava/README8
-rw-r--r--RTJava/TODO3
-rw-r--r--RTJava/benchmarks/RawSpeed/Fir/CachedIOFirTester.java55
-rw-r--r--RTJava/benchmarks/RawSpeed/Fir/Fir.java51
-rw-r--r--RTJava/benchmarks/RawSpeed/Fir/FirTester.java91
-rw-r--r--RTJava/benchmarks/RawSpeed/Fir/IOFirTester.java50
-rw-r--r--RTJava/benchmarks/RawSpeed/Fir/Makefile30
-rw-r--r--RTJava/benchmarks/RawSpeed/Fir/PerformanceMeter.java48
-rw-r--r--RTJava/benchmarks/RawSpeed/Fir/README13
-rw-r--r--RTJava/benchmarks/RawSpeed/Fir/SampleQueue.java59
-rw-r--r--RTJava/benchmarks/RawSpeed/Fir/TimeTrace.java77
-rw-r--r--RTJava/benchmarks/RawSpeed/Fir/coeff.txt21
-rwxr-xr-xRTJava/benchmarks/RawSpeed/Fir/run-ibm.bat3
-rwxr-xr-xRTJava/benchmarks/RawSpeed/Fir/run-sun.bat3
-rw-r--r--RTJava/benchmarks/RawSpeed/Fir/sound.txt30000
-rw-r--r--RTJava/docs/CodingStyle.txt8
-rw-r--r--RTJava/examples/tank/Refiller.java26
-rw-r--r--RTJava/examples/tank/Tank.java72
-rw-r--r--Static_Performance.dsw263
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a8576
-rw-r--r--TAO/configure.in664
-rw-r--r--TAO/orbsvcs/examples/RtEC/MCast/MCast.cpp408
-rw-r--r--TAO/orbsvcs/examples/RtEC/MCast/Makefile1131
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp1255
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h686
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.i104
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/Makefile.am149
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/README337
-rw-r--r--TAO/orbsvcs/orbsvcs/Makefile.RTEvent13159
-rw-r--r--TAO/orbsvcs/orbsvcs/RTEvent.bor119
-rw-r--r--TAO/orbsvcs/orbsvcs/RTEvent.dsp1575
-rw-r--r--TAO/orbsvcs/orbsvcs/RTEvent_Static.dsp1106
-rw-r--r--TAO/orbsvcs/orbsvcs/SSLIOP.dsp383
-rw-r--r--TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.h520
-rw-r--r--TAO/orbsvcs/tests/EC_Mcast/Makefile414
-rw-r--r--TAO/orbsvcs/tests/EC_Mcast/sample.cfg64
-rw-r--r--TAO/performance-tests/RTCorba/Multiple_Endpoints/Endpoint_Per_Priority/Makefile616
-rw-r--r--TAO/tests/Xt_Stopwatch/Control.cpp55
-rw-r--r--THANKS1396
-rw-r--r--TODO269
-rw-r--r--VERSION11
-rw-r--r--acconfig.h1472
-rw-r--r--ace-config.1.in57
-rw-r--r--ace-config.in215
-rw-r--r--aceConf.sh.in8
-rw-r--r--apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp802
-rw-r--r--apps/Gateway/Gateway/Concrete_Connection_Handlers.h151
-rw-r--r--apps/Gateway/Gateway/Config_Files.cpp222
-rw-r--r--apps/Gateway/Gateway/Config_Files.h98
-rw-r--r--apps/Gateway/Gateway/Connection_Handler.cpp289
-rw-r--r--apps/Gateway/Gateway/Connection_Handler.h157
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp62
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Acceptor.h65
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Connector.cpp76
-rw-r--r--apps/Gateway/Gateway/Connection_Handler_Connector.h44
-rw-r--r--apps/Gateway/Gateway/Consumer_Dispatch_Set.h32
-rw-r--r--apps/Gateway/Gateway/Event.h223
-rw-r--r--apps/Gateway/Gateway/Event_Channel.cpp599
-rw-r--r--apps/Gateway/Gateway/Event_Channel.h134
-rw-r--r--apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp64
-rw-r--r--apps/Gateway/Gateway/Event_Forwarding_Discriminator.h65
-rw-r--r--apps/Gateway/Gateway/File_Parser.cpp164
-rw-r--r--apps/Gateway/Gateway/File_Parser.h93
-rw-r--r--apps/Gateway/Gateway/Gateway.cpp342
-rw-r--r--apps/Gateway/Gateway/Gateway.dsp98
-rw-r--r--apps/Gateway/Gateway/Gateway.dsw44
-rw-r--r--apps/Gateway/Gateway/Gateway.h33
-rw-r--r--apps/Gateway/Gateway/Makefile1539
-rw-r--r--apps/Gateway/Gateway/Makefile.bor15
-rw-r--r--apps/Gateway/Gateway/Options.cpp285
-rw-r--r--apps/Gateway/Gateway/Options.h195
-rw-r--r--apps/Gateway/Gateway/connection_config55
-rw-r--r--apps/Gateway/Gateway/consumer_config35
-rw-r--r--apps/Gateway/Gateway/gatewayd.cpp64
-rw-r--r--apps/Gateway/Gateway/gatewayd.dsp59
-rw-r--r--apps/Gateway/Gateway/svc.conf3
-rw-r--r--apps/Gateway/Makefile26
-rw-r--r--apps/Gateway/Makefile.bor3
-rw-r--r--apps/Gateway/Peer/Makefile303
-rw-r--r--apps/Gateway/Peer/Makefile.bor8
-rw-r--r--apps/Gateway/Peer/Options.cpp195
-rw-r--r--apps/Gateway/Peer/Options.h133
-rw-r--r--apps/Gateway/Peer/Peer.cpp908
-rw-r--r--apps/Gateway/Peer/Peer.dsp66
-rw-r--r--apps/Gateway/Peer/Peer.dsw44
-rw-r--r--apps/Gateway/Peer/Peer.h242
-rw-r--r--apps/Gateway/Peer/peerd.cpp62
-rw-r--r--apps/Gateway/Peer/peerd.dsp59
-rw-r--r--apps/Gateway/Peer/svc.conf2
-rw-r--r--apps/Gateway/README140
-rw-r--r--apps/JAWS/ChangeLog913
-rw-r--r--apps/JAWS/Makefile25
-rw-r--r--apps/JAWS/Makefile.bor3
-rw-r--r--apps/JAWS/README15
-rw-r--r--apps/JAWS/clients/Blobby/Blob.cpp93
-rw-r--r--apps/JAWS/clients/Blobby/Blob.h87
-rw-r--r--apps/JAWS/clients/Blobby/Blob_Handler.cpp346
-rw-r--r--apps/JAWS/clients/Blobby/Blob_Handler.h118
-rw-r--r--apps/JAWS/clients/Blobby/Makefile623
-rw-r--r--apps/JAWS/clients/Blobby/Makefile.bor10
-rw-r--r--apps/JAWS/clients/Blobby/Options.cpp81
-rw-r--r--apps/JAWS/clients/Blobby/Options.h71
-rw-r--r--apps/JAWS/clients/Blobby/README33
-rw-r--r--apps/JAWS/clients/Blobby/blobby.cpp98
-rw-r--r--apps/JAWS/clients/Caching/Caching.dsp112
-rw-r--r--apps/JAWS/clients/Caching/Caching.dsw29
-rw-r--r--apps/JAWS/clients/Caching/ID_Generator.cpp61
-rw-r--r--apps/JAWS/clients/Caching/ID_Generator.h62
-rw-r--r--apps/JAWS/clients/Caching/Local_Locator.cpp257
-rw-r--r--apps/JAWS/clients/Caching/Local_Locator.h118
-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/Makefile246
-rw-r--r--apps/JAWS/clients/Caching/Makefile.bor6
-rw-r--r--apps/JAWS/clients/Caching/README83
-rw-r--r--apps/JAWS/clients/Caching/URL_Array_Helper.cpp43
-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.cpp163
-rw-r--r--apps/JAWS/clients/Caching/URL_Properties.h201
-rw-r--r--apps/JAWS/clients/Caching/URL_Properties.i203
-rw-r--r--apps/JAWS/clients/Caching/http_client.cpp70
-rw-r--r--apps/JAWS/clients/Caching/http_handler.cpp255
-rw-r--r--apps/JAWS/clients/Caching/http_handler.h81
-rw-r--r--apps/JAWS/clients/Caching/test_URL.cpp35
-rw-r--r--apps/JAWS/clients/Makefile26
-rw-r--r--apps/JAWS/clients/Makefile.bor3
-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.pl63
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl33
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/WebStone-run.pl39
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl97
-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.pl17
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/mine-logs.pl90
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/move-filelist.pl28
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/move-runs.pl26
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/rebootall9
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/runbench193
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/runbench.pl38
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/tabs2html13
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/view-results.pl55
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/webstone-gui.pl318
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/write-testbed.pl49
-rwxr-xr-xapps/JAWS/clients/WebSTONE/bin/wscollect.pl142
-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.pl4
-rw-r--r--apps/JAWS/clients/WebSTONE/conf/paths.sh0
-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.html403
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/LICENSE.html17
-rw-r--r--apps/JAWS/clients/WebSTONE/doc/WebStone.html25
-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.html73
-rw-r--r--apps/JAWS/clients/WebSTONE/src/Makefile112
-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.c635
-rw-r--r--apps/JAWS/clients/WebSTONE/src/bench.h274
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/cgi-sendbin15452 -> 0 bytes
-rw-r--r--apps/JAWS/clients/WebSTONE/src/cgi-send.c46
-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.h91
-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.h18
-rw-r--r--apps/JAWS/clients/WebSTONE/src/errexit.c106
-rwxr-xr-xapps/JAWS/clients/WebSTONE/src/gendata/genrand.mak227
-rw-r--r--apps/JAWS/clients/WebSTONE/src/genrand.c62
-rw-r--r--apps/JAWS/clients/WebSTONE/src/get.c318
-rw-r--r--apps/JAWS/clients/WebSTONE/src/get.h17
-rw-r--r--apps/JAWS/clients/WebSTONE/src/getopt.c67
-rw-r--r--apps/JAWS/clients/WebSTONE/src/gettimeofday.c57
-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.h220
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h146
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h127
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h120
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h124
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h121
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h61
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h217
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h27
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h180
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h47
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h738
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h29
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h193
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h70
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h85
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h97
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h84
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h222
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h130
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h205
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h155
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h44
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h111
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h170
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h120
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h48
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h51
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h167
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h158
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h27
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h216
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h26
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h67
-rw-r--r--apps/JAWS/clients/WebSTONE/src/nsapi-send.c88
-rw-r--r--apps/JAWS/clients/WebSTONE/src/parse_file_list.c290
-rw-r--r--apps/JAWS/clients/WebSTONE/src/parse_file_list.h20
-rw-r--r--apps/JAWS/clients/WebSTONE/src/rexec.c373
-rw-r--r--apps/JAWS/clients/WebSTONE/src/statistics.c49
-rw-r--r--apps/JAWS/clients/WebSTONE/src/statistics.h9
-rw-r--r--apps/JAWS/clients/WebSTONE/src/sysdep.c51
-rw-r--r--apps/JAWS/clients/WebSTONE/src/sysdep.h131
-rw-r--r--apps/JAWS/clients/WebSTONE/src/timefunc.c171
-rw-r--r--apps/JAWS/clients/WebSTONE/src/timefunc.h30
-rw-r--r--apps/JAWS/clients/WebSTONE/src/webclient.c1298
-rw-r--r--apps/JAWS/clients/WebSTONE/src/webmaster.c1418
-rwxr-xr-xapps/JAWS/clients/WebSTONE/webstone75
-rwxr-xr-xapps/JAWS/remora/app/Makefile21
-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.i150
-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.i89
-rw-r--r--apps/JAWS/remora/app/remora.idl100
-rwxr-xr-xapps/JAWS/remora/app/stdmk40
-rw-r--r--apps/JAWS/remora/app/test.cc76
-rw-r--r--apps/JAWS/server/HTTP_Config.cpp140
-rw-r--r--apps/JAWS/server/HTTP_Config.h95
-rw-r--r--apps/JAWS/server/HTTP_Handler.cpp289
-rw-r--r--apps/JAWS/server/HTTP_Handler.h196
-rw-r--r--apps/JAWS/server/HTTP_Helpers.cpp438
-rw-r--r--apps/JAWS/server/HTTP_Helpers.h108
-rw-r--r--apps/JAWS/server/HTTP_Request.cpp661
-rw-r--r--apps/JAWS/server/HTTP_Request.h200
-rw-r--r--apps/JAWS/server/HTTP_Response.cpp385
-rw-r--r--apps/JAWS/server/HTTP_Response.h80
-rw-r--r--apps/JAWS/server/HTTP_Server.cpp395
-rw-r--r--apps/JAWS/server/HTTP_Server.h141
-rw-r--r--apps/JAWS/server/IO.cpp413
-rw-r--r--apps/JAWS/server/IO.h231
-rw-r--r--apps/JAWS/server/JAWS_Concurrency.cpp82
-rw-r--r--apps/JAWS/server/JAWS_Concurrency.h101
-rw-r--r--apps/JAWS/server/JAWS_Pipeline.cpp29
-rw-r--r--apps/JAWS/server/JAWS_Pipeline.h36
-rw-r--r--apps/JAWS/server/JAWS_Pipeline_Handler.cpp26
-rw-r--r--apps/JAWS/server/JAWS_Pipeline_Handler.h29
-rw-r--r--apps/JAWS/server/Makefile1366
-rw-r--r--apps/JAWS/server/Makefile.bor17
-rw-r--r--apps/JAWS/server/Parse_Headers.cpp358
-rw-r--r--apps/JAWS/server/Parse_Headers.h121
-rw-r--r--apps/JAWS/server/README201
-rw-r--r--apps/JAWS/server/jaws.auth2
-rw-r--r--apps/JAWS/server/jaws.dsp178
-rw-r--r--apps/JAWS/server/jaws.dsw29
-rw-r--r--apps/JAWS/server/main.cpp55
-rw-r--r--apps/JAWS/server/svc.conf44
-rwxr-xr-xapps/JAWS/server/test.cgi9
-rw-r--r--apps/JAWS/stress_testing/Makefile589
-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/config3
-rw-r--r--apps/JAWS/stress_testing/connection.cpp98
-rw-r--r--apps/JAWS/stress_testing/connection.h22
-rw-r--r--apps/JAWS/stress_testing/cp.cpp11
-rw-r--r--apps/JAWS/stress_testing/cp.h14
-rw-r--r--apps/JAWS/stress_testing/global.h32
-rw-r--r--apps/JAWS/stress_testing/http.h16
-rw-r--r--apps/JAWS/stress_testing/http_tester.cpp172
-rw-r--r--apps/JAWS/stress_testing/out2
-rw-r--r--apps/JAWS/stress_testing/stats.cpp88
-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/JAWS2/1000K.html20001
-rw-r--r--apps/JAWS2/100K.html2001
-rw-r--r--apps/JAWS2/500K.html10001
-rw-r--r--apps/JAWS2/50K.html1001
-rw-r--r--apps/JAWS2/5K.html101
-rw-r--r--apps/JAWS2/HTTPU/HTTPU.DSP171
-rw-r--r--apps/JAWS2/HTTPU/HTTPU.DSW29
-rw-r--r--apps/JAWS2/HTTPU/Makefile780
-rw-r--r--apps/JAWS2/HTTPU/http_base.cpp323
-rw-r--r--apps/JAWS2/HTTPU/http_base.h87
-rw-r--r--apps/JAWS2/HTTPU/http_base.i53
-rw-r--r--apps/JAWS2/HTTPU/http_export.h38
-rw-r--r--apps/JAWS2/HTTPU/http_headers.cpp161
-rw-r--r--apps/JAWS2/HTTPU/http_headers.h165
-rw-r--r--apps/JAWS2/HTTPU/http_headers.i48
-rw-r--r--apps/JAWS2/HTTPU/http_request.cpp86
-rw-r--r--apps/JAWS2/HTTPU/http_request.h59
-rw-r--r--apps/JAWS2/HTTPU/http_request.i41
-rw-r--r--apps/JAWS2/HTTPU/http_response.cpp49
-rw-r--r--apps/JAWS2/HTTPU/http_response.h51
-rw-r--r--apps/JAWS2/HTTPU/http_response.i23
-rw-r--r--apps/JAWS2/HTTPU/http_status.cpp87
-rw-r--r--apps/JAWS2/HTTPU/http_status.h109
-rw-r--r--apps/JAWS2/HTTPU/http_status.i19
-rw-r--r--apps/JAWS2/HTTPU/parse_http_request.cpp116
-rw-r--r--apps/JAWS2/HTTPU/parse_http_request.h59
-rw-r--r--apps/JAWS2/HTTPU/parse_http_request.i49
-rw-r--r--apps/JAWS2/HTTPU/parse_http_response.cpp72
-rw-r--r--apps/JAWS2/HTTPU/parse_http_response.h56
-rw-r--r--apps/JAWS2/HTTPU/parse_http_response.i43
-rw-r--r--apps/JAWS2/HTTPU/parse_url.cpp321
-rw-r--r--apps/JAWS2/HTTPU/parse_url.h63
-rw-r--r--apps/JAWS2/HTTP_10.cpp32
-rw-r--r--apps/JAWS2/HTTP_10.h68
-rw-r--r--apps/JAWS2/HTTP_10_Parse.cpp82
-rw-r--r--apps/JAWS2/HTTP_10_Read.cpp64
-rw-r--r--apps/JAWS2/HTTP_10_Request.cpp119
-rw-r--r--apps/JAWS2/HTTP_10_Request.h31
-rw-r--r--apps/JAWS2/HTTP_10_Write.cpp160
-rw-r--r--apps/JAWS2/HTTP_Policy.cpp17
-rw-r--r--apps/JAWS2/HTTP_Policy.h22
-rw-r--r--apps/JAWS2/JAWS/Assoc_Array.cpp274
-rw-r--r--apps/JAWS2/JAWS/Assoc_Array.h102
-rw-r--r--apps/JAWS2/JAWS/Cache_Hash_T.cpp237
-rw-r--r--apps/JAWS2/JAWS/Cache_Hash_T.h61
-rw-r--r--apps/JAWS2/JAWS/Cache_Heap_T.cpp290
-rw-r--r--apps/JAWS2/JAWS/Cache_Heap_T.h103
-rw-r--r--apps/JAWS2/JAWS/Cache_List_T.cpp222
-rw-r--r--apps/JAWS2/JAWS/Cache_List_T.h111
-rw-r--r--apps/JAWS2/JAWS/Cache_Manager.cpp189
-rw-r--r--apps/JAWS2/JAWS/Cache_Manager.h66
-rw-r--r--apps/JAWS2/JAWS/Cache_Manager_T.cpp576
-rw-r--r--apps/JAWS2/JAWS/Cache_Manager_T.h185
-rw-r--r--apps/JAWS2/JAWS/Cache_Object.cpp302
-rw-r--r--apps/JAWS2/JAWS/Cache_Object.h149
-rw-r--r--apps/JAWS2/JAWS/Concurrency.cpp349
-rw-r--r--apps/JAWS2/JAWS/Concurrency.h132
-rw-r--r--apps/JAWS2/JAWS/Data_Block.cpp76
-rw-r--r--apps/JAWS2/JAWS/Data_Block.h50
-rw-r--r--apps/JAWS2/JAWS/Export.h38
-rw-r--r--apps/JAWS2/JAWS/FILE.cpp69
-rw-r--r--apps/JAWS2/JAWS/FILE.h45
-rw-r--r--apps/JAWS2/JAWS/Filecache.cpp136
-rw-r--r--apps/JAWS2/JAWS/Filecache.h73
-rw-r--r--apps/JAWS2/JAWS/Hash_Bucket_T.cpp462
-rw-r--r--apps/JAWS2/JAWS/Hash_Bucket_T.h206
-rw-r--r--apps/JAWS2/JAWS/Headers.cpp165
-rw-r--r--apps/JAWS2/JAWS/Headers.h78
-rw-r--r--apps/JAWS2/JAWS/IO.cpp603
-rw-r--r--apps/JAWS2/JAWS/IO.h252
-rw-r--r--apps/JAWS2/JAWS/IO_Acceptor.cpp210
-rw-r--r--apps/JAWS2/JAWS/IO_Acceptor.h139
-rw-r--r--apps/JAWS2/JAWS/IO_Handler.cpp509
-rw-r--r--apps/JAWS2/JAWS/IO_Handler.h313
-rw-r--r--apps/JAWS2/JAWS/JAWS.h14
-rw-r--r--apps/JAWS2/JAWS/Makefile3349
-rw-r--r--apps/JAWS2/JAWS/Makefile.bor31
-rw-r--r--apps/JAWS2/JAWS/Parse_Headers.cpp441
-rw-r--r--apps/JAWS2/JAWS/Parse_Headers.h122
-rw-r--r--apps/JAWS2/JAWS/Pipeline.cpp27
-rw-r--r--apps/JAWS2/JAWS/Pipeline.h39
-rw-r--r--apps/JAWS2/JAWS/Pipeline_Handler_T.cpp31
-rw-r--r--apps/JAWS2/JAWS/Pipeline_Handler_T.h32
-rw-r--r--apps/JAWS2/JAWS/Pipeline_Tasks.cpp213
-rw-r--r--apps/JAWS2/JAWS/Pipeline_Tasks.h56
-rw-r--r--apps/JAWS2/JAWS/Policy.cpp89
-rw-r--r--apps/JAWS2/JAWS/Policy.h65
-rw-r--r--apps/JAWS2/JAWS/Reaper.cpp45
-rw-r--r--apps/JAWS2/JAWS/Reaper.h48
-rw-r--r--apps/JAWS2/JAWS/Server.cpp190
-rw-r--r--apps/JAWS2/JAWS/Server.h39
-rw-r--r--apps/JAWS2/JAWS/Waiter.cpp73
-rw-r--r--apps/JAWS2/JAWS/Waiter.h48
-rw-r--r--apps/JAWS2/JAWS/jaws.dsp310
-rw-r--r--apps/JAWS2/JAWS/jaws.dsw29
-rw-r--r--apps/JAWS2/Makefile942
-rw-r--r--apps/JAWS2/Makefile.bor18
-rw-r--r--apps/JAWS2/README32
-rw-r--r--apps/JAWS2/main.cpp47
-rw-r--r--apps/JAWS2/server.dsp112
-rw-r--r--apps/JAWS2/server.dsw29
-rw-r--r--apps/Makefile31
-rw-r--r--apps/Makefile.am33
-rw-r--r--apps/Makefile.bor3
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp147
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h73
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Makefile163
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp127
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h66
-rw-r--r--apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp124
-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.cpp140
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h75
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Makefile162
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp73
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h55
-rw-r--r--apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp132
-rw-r--r--apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh889
-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.h87
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh887
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl88
-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.h36
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Makefile113
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl41
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl40
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp44
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h49
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl47
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp344
-rw-r--r--apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h89
-rw-r--r--apps/Orbix-Examples/Logger/Logger.cpp134
-rw-r--r--apps/Orbix-Examples/Logger/Logger.h61
-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.cpp143
-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.cpp122
-rw-r--r--apps/Orbix-Examples/Logger/logger_i.h80
-rw-r--r--apps/Orbix-Examples/Logger/server.cpp40
-rw-r--r--apps/Orbix-Examples/Makefile25
-rw-r--r--apps/README27
-rw-r--r--apps/build.bor15
-rw-r--r--apps/drwho/BS_Client.cpp89
-rw-r--r--apps/drwho/BS_Client.h46
-rw-r--r--apps/drwho/BS_Server.cpp116
-rw-r--r--apps/drwho/BS_Server.h47
-rw-r--r--apps/drwho/Binary_Search.cpp80
-rw-r--r--apps/drwho/Binary_Search.h71
-rw-r--r--apps/drwho/CM_Client.cpp138
-rw-r--r--apps/drwho/CM_Client.h51
-rw-r--r--apps/drwho/CM_Server.cpp106
-rw-r--r--apps/drwho/CM_Server.h39
-rw-r--r--apps/drwho/ChangeLog340
-rw-r--r--apps/drwho/Comm_Manager.h39
-rw-r--r--apps/drwho/Drwho_Node.cpp101
-rw-r--r--apps/drwho/Drwho_Node.h52
-rw-r--r--apps/drwho/File_Manager.cpp172
-rw-r--r--apps/drwho/File_Manager.h57
-rw-r--r--apps/drwho/HT_Client.cpp34
-rw-r--r--apps/drwho/HT_Client.h31
-rw-r--r--apps/drwho/HT_Server.cpp37
-rw-r--r--apps/drwho/HT_Server.h32
-rw-r--r--apps/drwho/Hash_Table.cpp73
-rw-r--r--apps/drwho/Hash_Table.h45
-rw-r--r--apps/drwho/Makefile1720
-rw-r--r--apps/drwho/Multicast_Manager.cpp177
-rw-r--r--apps/drwho/Multicast_Manager.h56
-rw-r--r--apps/drwho/Options.cpp155
-rw-r--r--apps/drwho/Options.h66
-rw-r--r--apps/drwho/PMC_All.cpp98
-rw-r--r--apps/drwho/PMC_All.h37
-rw-r--r--apps/drwho/PMC_Flo.cpp122
-rw-r--r--apps/drwho/PMC_Flo.h37
-rw-r--r--apps/drwho/PMC_Ruser.cpp174
-rw-r--r--apps/drwho/PMC_Ruser.h40
-rw-r--r--apps/drwho/PMC_Usr.cpp114
-rw-r--r--apps/drwho/PMC_Usr.h38
-rw-r--r--apps/drwho/PMS_All.cpp97
-rw-r--r--apps/drwho/PMS_All.h35
-rw-r--r--apps/drwho/PMS_Flo.cpp73
-rw-r--r--apps/drwho/PMS_Flo.h35
-rw-r--r--apps/drwho/PMS_Ruser.cpp129
-rw-r--r--apps/drwho/PMS_Ruser.h37
-rw-r--r--apps/drwho/PMS_Usr.cpp80
-rw-r--r--apps/drwho/PMS_Usr.h35
-rw-r--r--apps/drwho/PM_Client.cpp138
-rw-r--r--apps/drwho/PM_Client.h45
-rw-r--r--apps/drwho/PM_Server.cpp82
-rw-r--r--apps/drwho/PM_Server.h41
-rw-r--r--apps/drwho/Protocol_Manager.cpp86
-rw-r--r--apps/drwho/Protocol_Manager.h58
-rw-r--r--apps/drwho/Protocol_Record.cpp97
-rw-r--r--apps/drwho/Protocol_Record.h49
-rw-r--r--apps/drwho/README308
-rw-r--r--apps/drwho/Rwho_DB_Manager.cpp123
-rw-r--r--apps/drwho/Rwho_DB_Manager.h52
-rw-r--r--apps/drwho/SL_Client.cpp15
-rw-r--r--apps/drwho/SL_Client.h33
-rw-r--r--apps/drwho/SL_Server.cpp25
-rw-r--r--apps/drwho/SL_Server.h34
-rw-r--r--apps/drwho/SML_Client.cpp36
-rw-r--r--apps/drwho/SML_Client.h36
-rw-r--r--apps/drwho/SML_Server.cpp11
-rw-r--r--apps/drwho/SML_Server.h29
-rw-r--r--apps/drwho/SMR_Client.cpp22
-rw-r--r--apps/drwho/SMR_Client.h29
-rw-r--r--apps/drwho/SMR_Server.cpp18
-rw-r--r--apps/drwho/SMR_Server.h29
-rw-r--r--apps/drwho/SM_Client.cpp74
-rw-r--r--apps/drwho/SM_Client.h38
-rw-r--r--apps/drwho/SM_Server.cpp68
-rw-r--r--apps/drwho/SM_Server.h36
-rw-r--r--apps/drwho/Search_Struct.cpp23
-rw-r--r--apps/drwho/Search_Struct.h41
-rw-r--r--apps/drwho/Select_Manager.h30
-rw-r--r--apps/drwho/Single_Lookup.cpp31
-rw-r--r--apps/drwho/Single_Lookup.h39
-rw-r--r--apps/drwho/client.cpp65
-rw-r--r--apps/drwho/global.h52
-rw-r--r--apps/drwho/server.cpp113
-rw-r--r--apps/gperf/COPYING340
-rw-r--r--apps/gperf/ChangeLog1979
-rw-r--r--apps/gperf/Makefile28
-rw-r--r--apps/gperf/Makefile.am26
-rw-r--r--apps/gperf/Makefile.bor3
-rw-r--r--apps/gperf/README29
-rw-r--r--apps/gperf/gperf.123
-rw-r--r--apps/gperf/gperf.info1130
-rw-r--r--apps/gperf/gperf.texi1188
-rwxr-xr-xapps/gperf/mdate-sh92
-rw-r--r--apps/gperf/src/Bool_Array.cpp105
-rw-r--r--apps/gperf/src/Bool_Array.h76
-rw-r--r--apps/gperf/src/Gen_Perf.cpp454
-rw-r--r--apps/gperf/src/Gen_Perf.h81
-rw-r--r--apps/gperf/src/Hash_Table.cpp114
-rw-r--r--apps/gperf/src/Hash_Table.h66
-rw-r--r--apps/gperf/src/Iterator.cpp97
-rw-r--r--apps/gperf/src/Iterator.h80
-rw-r--r--apps/gperf/src/Key_List.cpp1940
-rw-r--r--apps/gperf/src/Key_List.h173
-rw-r--r--apps/gperf/src/List_Node.cpp129
-rw-r--r--apps/gperf/src/List_Node.h80
-rw-r--r--apps/gperf/src/Makefile424
-rw-r--r--apps/gperf/src/Makefile.am40
-rw-r--r--apps/gperf/src/Makefile.bor23
-rw-r--r--apps/gperf/src/Options.cpp864
-rw-r--r--apps/gperf/src/Options.h190
-rw-r--r--apps/gperf/src/Vectors.cpp36
-rw-r--r--apps/gperf/src/Vectors.h49
-rw-r--r--apps/gperf/src/Version.cpp30
-rw-r--r--apps/gperf/src/gperf.cpp83
-rw-r--r--apps/gperf/src/gperf.dsp232
-rw-r--r--apps/gperf/src/gperf.dsw29
-rw-r--r--apps/gperf/tests/Makefile282
-rw-r--r--apps/gperf/tests/Makefile.am115
-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++-res.exp73
-rw-r--r--apps/gperf/tests/c++.gperf73
-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/corba.exp36
-rw-r--r--apps/gperf/tests/corba.gperf36
-rw-r--r--apps/gperf/tests/gpc.gperf48
-rw-r--r--apps/gperf/tests/gplus.gperf76
-rw-r--r--apps/gperf/tests/idl.exp9
-rw-r--r--apps/gperf/tests/idl.gperf9
-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/tao.exp21
-rw-r--r--apps/gperf/tests/tao.gperf21
-rw-r--r--apps/gperf/tests/test-1.exp165
-rw-r--r--apps/gperf/tests/test-2.exp214
-rw-r--r--apps/gperf/tests/test-3.exp196
-rw-r--r--apps/gperf/tests/test-4.exp170
-rw-r--r--apps/gperf/tests/test-5.exp139
-rw-r--r--apps/gperf/tests/test-6.exp90
-rw-r--r--apps/gperf/tests/test-7.exp32
-rw-r--r--apps/gperf/tests/test.cpp34
-rw-r--r--apps/gperf/texinfo.tex4977
-rw-r--r--apps/gperf/version.texi3
-rw-r--r--bin/ACEutils.pm117
-rw-r--r--bin/ADDIDL.DSM150
-rwxr-xr-xbin/Array.pl31
-rwxr-xr-xbin/Array_Helper16
-rwxr-xr-xbin/Hash_Map_Manager.pl146
-rwxr-xr-xbin/Hash_Map_Manager_Helper76
-rw-r--r--bin/Makefile111
-rw-r--r--bin/PerlACE/ConfigList.pm155
-rw-r--r--bin/PerlACE/MSProject.pm393
-rw-r--r--bin/PerlACE/MSProject/DSP.pm28
-rw-r--r--bin/PerlACE/MSProject/VCP.pm30
-rw-r--r--bin/PerlACE/Process.pm36
-rw-r--r--bin/PerlACE/Process_Unix.pm338
-rw-r--r--bin/PerlACE/Process_Win32.pm262
-rw-r--r--bin/PerlACE/Run_Test.pm94
-rw-r--r--bin/Process.pm18
-rw-r--r--bin/Process_Unix.pm73
-rw-r--r--bin/Process_Win32.pm58
-rwxr-xr-xbin/Service_Config.perl31
-rw-r--r--bin/Uniqueid.pm28
-rwxr-xr-xbin/ace-install506
-rwxr-xr-xbin/ace_components85
-rwxr-xr-xbin/ace_ld224
-rwxr-xr-xbin/aix_shr28
-rwxr-xr-xbin/am_edit1368
-rwxr-xr-xbin/auto_compile602
-rwxr-xr-xbin/auto_compile_wrapper56
-rwxr-xr-xbin/auto_ptr.perl16
-rw-r--r--bin/auto_run_tests.lst181
-rwxr-xr-xbin/auto_run_tests.pl101
-rwxr-xr-xbin/autoconf_compile520
-rwxr-xr-xbin/autoconf_compile_wrapper56
-rwxr-xr-xbin/bootstrap185
-rwxr-xr-xbin/check_build_logs176
-rwxr-xr-xbin/clean_dsp.pl52
-rw-r--r--bin/clone.1297
-rw-r--r--bin/clone.cpp980
-rw-r--r--bin/clone.csh26
-rwxr-xr-xbin/corba-boolean.perl19
-rwxr-xr-xbin/count_lines234
-rwxr-xr-xbin/create_ace_build182
-rwxr-xr-xbin/cvslog169
-rwxr-xr-xbin/doxygen-convert-h.pl527
-rwxr-xr-xbin/dsp2dsp.pl29
-rw-r--r--bin/envinfo.cpp29
-rwxr-xr-xbin/footprint_stats.sh65
-rwxr-xr-xbin/fuzz.pl817
-rwxr-xr-xbin/g++dep111
-rwxr-xr-xbin/generate_doxygen.pl218
-rwxr-xr-xbin/generate_export_file.pl142
-rwxr-xr-xbin/generate_footprint_chart.sh17
-rwxr-xr-xbin/generate_performance_chart.sh16
-rwxr-xr-xbin/indent_macros.perl59
-rwxr-xr-xbin/libsize.pl192
-rwxr-xr-xbin/make-components17
-rwxr-xr-xbin/make_pretty.pl542
-rwxr-xr-xbin/make_release779
-rwxr-xr-xbin/msvc_auto_compile.pl349
-rw-r--r--bin/nightlybuilds/builds.lst233
-rwxr-xr-xbin/nightlybuilds/clean_logs.pl73
-rw-r--r--bin/nightlybuilds/pace.lst20
-rw-r--r--bin/nightlybuilds/print_config.pl76
-rwxr-xr-xbin/nightlybuilds/scoreboard_update.pl699
-rwxr-xr-xbin/performance_stats.sh127
-rwxr-xr-xbin/perltest2cpp.pl2250
-rwxr-xr-xbin/pippen.pl402
-rwxr-xr-xbin/regenerate_exports.pl54
-rwxr-xr-xbin/rename-ace.pl184
-rwxr-xr-xbin/run_all.pl224
-rwxr-xr-xbin/run_all_win32.pl180
-rw-r--r--bin/sandbox.cpp167
-rwxr-xr-xbin/show_log_dir.pl178
-rwxr-xr-xbin/split-cpp422
-rwxr-xr-xbin/tao_env.pl17
-rwxr-xr-xbin/tao_svcconf.pl15
-rwxr-xr-xbin/update-ace+tao.sh39
-rwxr-xr-xbin/vc_filter.pl157
-rwxr-xr-xbin/vxworks_modify.pl562
-rw-r--r--configure.in7665
-rw-r--r--docs/ACE-FMM.html283
-rw-r--r--docs/ACE-SSL.html41
-rw-r--r--docs/ACE-bug-process.html118
-rw-r--r--docs/ACE-categories.html768
-rw-r--r--docs/ACE-configuration.txt181
-rw-r--r--docs/ACE-development-process.html163
-rw-r--r--docs/ACE-guidelines.html1176
-rw-r--r--docs/ACE-inheritance.pdf.gzbin19666 -> 0 bytes
-rw-r--r--docs/ACE-inheritance.ps.gzbin18416 -> 0 bytes
-rw-r--r--docs/ACE-lessons.html270
-rw-r--r--docs/ACE-porting.html185
-rw-r--r--docs/ACE-subsets.html839
-rw-r--r--docs/ACE-tutorials.html57
-rw-r--r--docs/CE-status.txt54
-rw-r--r--docs/bugzilla-build-setup.html162
-rw-r--r--docs/exceptions.html536
-rw-r--r--docs/index.html88
-rw-r--r--docs/msvc_notes.txt159
-rw-r--r--docs/run_test.txt172
-rw-r--r--docs/tutorials/001/001.dsp108
-rw-r--r--docs/tutorials/001/00SetEnv2
-rw-r--r--docs/tutorials/001/Makefile76
-rw-r--r--docs/tutorials/001/acceptor.h128
-rw-r--r--docs/tutorials/001/combine.shar574
-rw-r--r--docs/tutorials/001/logger.h178
-rw-r--r--docs/tutorials/001/page01.html104
-rw-r--r--docs/tutorials/001/page02.html174
-rw-r--r--docs/tutorials/001/page03.html197
-rw-r--r--docs/tutorials/001/page04.html213
-rw-r--r--docs/tutorials/001/page05.html56
-rw-r--r--docs/tutorials/001/server.cpp79
-rw-r--r--docs/tutorials/001/simple.fig57
-rw-r--r--docs/tutorials/001/simple.gifbin6040 -> 0 bytes
-rw-r--r--docs/tutorials/002/002.dsp104
-rw-r--r--docs/tutorials/002/00SetEnv2
-rw-r--r--docs/tutorials/002/Makefile55
-rw-r--r--docs/tutorials/002/combine.shar328
-rw-r--r--docs/tutorials/002/handler.h167
-rw-r--r--docs/tutorials/002/page01.html54
-rw-r--r--docs/tutorials/002/page02.html159
-rw-r--r--docs/tutorials/002/page03.html195
-rw-r--r--docs/tutorials/002/page04.html40
-rw-r--r--docs/tutorials/002/server.cpp90
-rw-r--r--docs/tutorials/003/003.dsp100
-rw-r--r--docs/tutorials/003/00SetEnv2
-rw-r--r--docs/tutorials/003/Makefile51
-rw-r--r--docs/tutorials/003/client.cpp99
-rw-r--r--docs/tutorials/003/combine.shar217
-rw-r--r--docs/tutorials/003/page01.html161
-rw-r--r--docs/tutorials/004/004.dsp100
-rw-r--r--docs/tutorials/004/00SetEnv2
-rw-r--r--docs/tutorials/004/Makefile47
-rw-r--r--docs/tutorials/004/client.cpp216
-rw-r--r--docs/tutorials/004/combine.shar216
-rw-r--r--docs/tutorials/004/page01.html277
-rw-r--r--docs/tutorials/005/005.dsp114
-rw-r--r--docs/tutorials/005/00SetEnv2
-rw-r--r--docs/tutorials/005/Makefile118
-rw-r--r--docs/tutorials/005/client_acceptor.h36
-rw-r--r--docs/tutorials/005/client_handler.cpp225
-rw-r--r--docs/tutorials/005/client_handler.h100
-rw-r--r--docs/tutorials/005/combine.shar423
-rw-r--r--docs/tutorials/005/page01.html35
-rw-r--r--docs/tutorials/005/page02.html153
-rw-r--r--docs/tutorials/005/page03.html73
-rw-r--r--docs/tutorials/005/page04.html135
-rw-r--r--docs/tutorials/005/page05.html255
-rw-r--r--docs/tutorials/005/page06.html146
-rw-r--r--docs/tutorials/005/page07.html97
-rw-r--r--docs/tutorials/005/page08.html49
-rw-r--r--docs/tutorials/005/server.brk154
-rw-r--r--docs/tutorials/005/server.cpp114
-rw-r--r--docs/tutorials/006/006.dsp112
-rw-r--r--docs/tutorials/006/Makefile114
-rw-r--r--docs/tutorials/006/client_acceptor.h74
-rw-r--r--docs/tutorials/006/client_handler.cpp293
-rw-r--r--docs/tutorials/006/client_handler.h118
-rw-r--r--docs/tutorials/006/combine.shar508
-rw-r--r--docs/tutorials/006/page01.html63
-rw-r--r--docs/tutorials/006/page02.html149
-rw-r--r--docs/tutorials/006/page03.html113
-rw-r--r--docs/tutorials/006/page04.html154
-rw-r--r--docs/tutorials/006/page05.html351
-rw-r--r--docs/tutorials/006/page06.html47
-rw-r--r--docs/tutorials/006/server.cpp115
-rw-r--r--docs/tutorials/007/007.dsp124
-rw-r--r--docs/tutorials/007/Makefile116
-rw-r--r--docs/tutorials/007/client_acceptor.cpp56
-rw-r--r--docs/tutorials/007/client_acceptor.h125
-rw-r--r--docs/tutorials/007/client_handler.cpp233
-rw-r--r--docs/tutorials/007/client_handler.h156
-rw-r--r--docs/tutorials/007/combine.shar685
-rw-r--r--docs/tutorials/007/page01.html84
-rw-r--r--docs/tutorials/007/page02.html142
-rw-r--r--docs/tutorials/007/page03.html155
-rw-r--r--docs/tutorials/007/page04.html87
-rw-r--r--docs/tutorials/007/page05.html188
-rw-r--r--docs/tutorials/007/page06.html266
-rw-r--r--docs/tutorials/007/page07.html121
-rw-r--r--docs/tutorials/007/page08.html282
-rw-r--r--docs/tutorials/007/page09.html79
-rw-r--r--docs/tutorials/007/server.cpp113
-rw-r--r--docs/tutorials/007/thread_pool.cpp252
-rw-r--r--docs/tutorials/007/thread_pool.h89
-rw-r--r--docs/tutorials/008/008-broadcast.dsp102
-rw-r--r--docs/tutorials/008/008-direct.dsp102
-rw-r--r--docs/tutorials/008/008-server.dsp102
-rw-r--r--docs/tutorials/008/Makefile74
-rw-r--r--docs/tutorials/008/broadcast_client.cpp84
-rw-r--r--docs/tutorials/008/combine.shar465
-rw-r--r--docs/tutorials/008/directed_client.cpp108
-rw-r--r--docs/tutorials/008/page01.html75
-rw-r--r--docs/tutorials/008/page02.html164
-rw-r--r--docs/tutorials/008/page03.html148
-rw-r--r--docs/tutorials/008/page04.html139
-rw-r--r--docs/tutorials/008/page05.html41
-rw-r--r--docs/tutorials/008/server.cpp116
-rw-r--r--docs/tutorials/009/009-broadcast.dsp102
-rw-r--r--docs/tutorials/009/009-directed.dsp102
-rw-r--r--docs/tutorials/009/009-server.dsp102
-rw-r--r--docs/tutorials/009/Makefile74
-rw-r--r--docs/tutorials/009/broadcast_client.cpp47
-rw-r--r--docs/tutorials/009/combine.shar394
-rw-r--r--docs/tutorials/009/directed_client.cpp69
-rw-r--r--docs/tutorials/009/page01.html62
-rw-r--r--docs/tutorials/009/page02.html113
-rw-r--r--docs/tutorials/009/page03.html103
-rw-r--r--docs/tutorials/009/page04.html77
-rw-r--r--docs/tutorials/009/page05.html48
-rw-r--r--docs/tutorials/009/server.cpp81
-rw-r--r--docs/tutorials/010/010.dsp112
-rw-r--r--docs/tutorials/010/Makefile73
-rw-r--r--docs/tutorials/010/block.h42
-rw-r--r--docs/tutorials/010/combine.shar550
-rw-r--r--docs/tutorials/010/message_queue.cpp88
-rw-r--r--docs/tutorials/010/page01.html62
-rw-r--r--docs/tutorials/010/page02.html127
-rw-r--r--docs/tutorials/010/page03.html75
-rw-r--r--docs/tutorials/010/page04.html78
-rw-r--r--docs/tutorials/010/page05.html171
-rw-r--r--docs/tutorials/010/page06.html58
-rw-r--r--docs/tutorials/010/page07.html32
-rw-r--r--docs/tutorials/010/task.cpp123
-rw-r--r--docs/tutorials/010/task.h45
-rw-r--r--docs/tutorials/011/011.dsp116
-rw-r--r--docs/tutorials/011/Makefile73
-rw-r--r--docs/tutorials/011/block.h38
-rw-r--r--docs/tutorials/011/combine.shar489
-rw-r--r--docs/tutorials/011/data.h73
-rw-r--r--docs/tutorials/011/message_queue.cpp84
-rw-r--r--docs/tutorials/011/page01.html37
-rw-r--r--docs/tutorials/011/page02.html117
-rw-r--r--docs/tutorials/011/page03.html189
-rw-r--r--docs/tutorials/011/page04.html105
-rw-r--r--docs/tutorials/011/page05.html94
-rw-r--r--docs/tutorials/011/page06.html37
-rw-r--r--docs/tutorials/011/task.cpp115
-rw-r--r--docs/tutorials/011/task.h33
-rw-r--r--docs/tutorials/012/012.dsp112
-rw-r--r--docs/tutorials/012/Makefile73
-rw-r--r--docs/tutorials/012/block.h65
-rw-r--r--docs/tutorials/012/combine.shar466
-rw-r--r--docs/tutorials/012/message_queue.cpp97
-rw-r--r--docs/tutorials/012/page01.html45
-rw-r--r--docs/tutorials/012/page02.html113
-rw-r--r--docs/tutorials/012/page03.html107
-rw-r--r--docs/tutorials/012/page04.html128
-rw-r--r--docs/tutorials/012/page05.html234
-rw-r--r--docs/tutorials/012/page06.html32
-rw-r--r--docs/tutorials/012/task.cpp145
-rw-r--r--docs/tutorials/012/task.h47
-rw-r--r--docs/tutorials/012/work.h76
-rw-r--r--docs/tutorials/013/013.dsp132
-rw-r--r--docs/tutorials/013/Makefile74
-rw-r--r--docs/tutorials/013/block.cpp81
-rw-r--r--docs/tutorials/013/block.h84
-rw-r--r--docs/tutorials/013/combine.shar661
-rw-r--r--docs/tutorials/013/message_queue.cpp88
-rw-r--r--docs/tutorials/013/mld.cpp23
-rw-r--r--docs/tutorials/013/mld.h49
-rw-r--r--docs/tutorials/013/page01.html65
-rw-r--r--docs/tutorials/013/page02.html124
-rw-r--r--docs/tutorials/013/page03.html126
-rw-r--r--docs/tutorials/013/page04.html141
-rw-r--r--docs/tutorials/013/page05.html109
-rw-r--r--docs/tutorials/013/page06.html304
-rw-r--r--docs/tutorials/013/page07.html258
-rw-r--r--docs/tutorials/013/page08.html43
-rw-r--r--docs/tutorials/013/task.cpp193
-rw-r--r--docs/tutorials/013/task.h57
-rw-r--r--docs/tutorials/013/work.cpp125
-rw-r--r--docs/tutorials/013/work.h72
-rw-r--r--docs/tutorials/014/014.dsp112
-rw-r--r--docs/tutorials/014/EndTask.h89
-rw-r--r--docs/tutorials/014/Makefile77
-rw-r--r--docs/tutorials/014/Task.cpp206
-rw-r--r--docs/tutorials/014/Task.h59
-rw-r--r--docs/tutorials/014/combine.shar357
-rw-r--r--docs/tutorials/014/page01.html74
-rw-r--r--docs/tutorials/014/page02.html85
-rw-r--r--docs/tutorials/014/page03.html241
-rw-r--r--docs/tutorials/014/page04.html120
-rw-r--r--docs/tutorials/014/page05.html210
-rw-r--r--docs/tutorials/014/stream.cpp168
-rw-r--r--docs/tutorials/015/015-client.dsp138
-rw-r--r--docs/tutorials/015/015-server.dsp166
-rw-r--r--docs/tutorials/015/Client_i.cpp60
-rw-r--r--docs/tutorials/015/Client_i.h73
-rw-r--r--docs/tutorials/015/Compressor.cpp101
-rw-r--r--docs/tutorials/015/Compressor.h35
-rw-r--r--docs/tutorials/015/Crypt.cpp83
-rw-r--r--docs/tutorials/015/Crypt.h32
-rw-r--r--docs/tutorials/015/Handler.cpp179
-rw-r--r--docs/tutorials/015/Handler.h61
-rw-r--r--docs/tutorials/015/Makefile33
-rw-r--r--docs/tutorials/015/Makefile.client79
-rw-r--r--docs/tutorials/015/Makefile.server81
-rw-r--r--docs/tutorials/015/Protocol_Stream.cpp195
-rw-r--r--docs/tutorials/015/Protocol_Stream.h86
-rw-r--r--docs/tutorials/015/Protocol_Task.cpp79
-rw-r--r--docs/tutorials/015/Protocol_Task.h60
-rw-r--r--docs/tutorials/015/Recv.cpp93
-rw-r--r--docs/tutorials/015/Recv.h58
-rw-r--r--docs/tutorials/015/Server_i.cpp75
-rw-r--r--docs/tutorials/015/Server_i.h50
-rw-r--r--docs/tutorials/015/Xmit.cpp84
-rw-r--r--docs/tutorials/015/Xmit.h46
-rw-r--r--docs/tutorials/015/client.cpp70
-rw-r--r--docs/tutorials/015/combine.shar1063
-rw-r--r--docs/tutorials/015/page01.html106
-rw-r--r--docs/tutorials/015/page02.html95
-rw-r--r--docs/tutorials/015/page03.html99
-rw-r--r--docs/tutorials/015/page04.html98
-rw-r--r--docs/tutorials/015/page05.html95
-rw-r--r--docs/tutorials/015/page06.html79
-rw-r--r--docs/tutorials/015/page07.html102
-rw-r--r--docs/tutorials/015/page08.html91
-rw-r--r--docs/tutorials/015/page09.html227
-rw-r--r--docs/tutorials/015/page10.html128
-rw-r--r--docs/tutorials/015/page11.html221
-rw-r--r--docs/tutorials/015/page12.html82
-rw-r--r--docs/tutorials/015/page13.html105
-rw-r--r--docs/tutorials/015/page14.html76
-rw-r--r--docs/tutorials/015/page15.html120
-rw-r--r--docs/tutorials/015/page16.html91
-rw-r--r--docs/tutorials/015/page17.html118
-rw-r--r--docs/tutorials/015/page18.html62
-rw-r--r--docs/tutorials/015/page19.html126
-rw-r--r--docs/tutorials/015/page20.html60
-rw-r--r--docs/tutorials/015/page21.html107
-rw-r--r--docs/tutorials/015/page22.html84
-rw-r--r--docs/tutorials/015/server.cpp68
-rw-r--r--docs/tutorials/015/stream.gifbin3422 -> 0 bytes
-rw-r--r--docs/tutorials/016/016.dsp108
-rw-r--r--docs/tutorials/016/Condition_i.cpp201
-rw-r--r--docs/tutorials/016/Condition_i.h154
-rw-r--r--docs/tutorials/016/Makefile77
-rw-r--r--docs/tutorials/016/combine.shar385
-rw-r--r--docs/tutorials/016/condition.cpp252
-rw-r--r--docs/tutorials/016/page01.html86
-rw-r--r--docs/tutorials/016/page02.html220
-rw-r--r--docs/tutorials/016/page03.html226
-rw-r--r--docs/tutorials/016/page04.html278
-rw-r--r--docs/tutorials/016/page05.html33
-rw-r--r--docs/tutorials/017/017.dsp108
-rw-r--r--docs/tutorials/017/Barrier_i.cpp160
-rw-r--r--docs/tutorials/017/Barrier_i.h66
-rw-r--r--docs/tutorials/017/Makefile77
-rw-r--r--docs/tutorials/017/barrier.cpp166
-rw-r--r--docs/tutorials/017/barrier2.cpp178
-rw-r--r--docs/tutorials/017/combine.shar380
-rw-r--r--docs/tutorials/017/page01.html52
-rw-r--r--docs/tutorials/017/page02.html195
-rw-r--r--docs/tutorials/017/page03.html99
-rw-r--r--docs/tutorials/017/page04.html188
-rw-r--r--docs/tutorials/017/page05.html32
-rw-r--r--docs/tutorials/017/page06.html206
-rw-r--r--docs/tutorials/018/018.dsp116
-rw-r--r--docs/tutorials/018/Makefile77
-rw-r--r--docs/tutorials/018/Mutex_i.h17
-rw-r--r--docs/tutorials/018/Test_T.cpp196
-rw-r--r--docs/tutorials/018/Test_T.h80
-rw-r--r--docs/tutorials/018/Token_i.h20
-rw-r--r--docs/tutorials/018/combine.shar440
-rw-r--r--docs/tutorials/018/output33
-rw-r--r--docs/tutorials/018/page01.html70
-rw-r--r--docs/tutorials/018/page02.html61
-rw-r--r--docs/tutorials/018/page03.html125
-rw-r--r--docs/tutorials/018/page04.html229
-rw-r--r--docs/tutorials/018/page05.html66
-rw-r--r--docs/tutorials/018/page06.html81
-rw-r--r--docs/tutorials/018/page07.html32
-rw-r--r--docs/tutorials/018/token.cpp32
-rw-r--r--docs/tutorials/019/019-client.dsp105
-rw-r--r--docs/tutorials/019/019-client2.dsp105
-rw-r--r--docs/tutorials/019/019-server.dsp105
-rw-r--r--docs/tutorials/019/019-server2.dsp105
-rw-r--r--docs/tutorials/019/Makefile79
-rw-r--r--docs/tutorials/019/client.cpp76
-rw-r--r--docs/tutorials/019/client2.cpp49
-rw-r--r--docs/tutorials/019/combine.shar358
-rw-r--r--docs/tutorials/019/page01.html62
-rw-r--r--docs/tutorials/019/page02.html158
-rw-r--r--docs/tutorials/019/page03.html100
-rw-r--r--docs/tutorials/019/page04.html156
-rw-r--r--docs/tutorials/019/page05.html127
-rw-r--r--docs/tutorials/019/page06.html29
-rw-r--r--docs/tutorials/019/server.cpp128
-rw-r--r--docs/tutorials/019/server2.cpp68
-rw-r--r--docs/tutorials/019/shmem.cpp54
-rw-r--r--docs/tutorials/019/shmem.h45
-rw-r--r--docs/tutorials/020/020-client.dsp105
-rw-r--r--docs/tutorials/020/020-client2.dsp105
-rw-r--r--docs/tutorials/020/020-server.dsp105
-rw-r--r--docs/tutorials/020/020-server2.dsp105
-rw-r--r--docs/tutorials/020/Makefile79
-rw-r--r--docs/tutorials/020/client.cpp33
-rw-r--r--docs/tutorials/020/client2.cpp26
-rw-r--r--docs/tutorials/020/combine.shar364
-rw-r--r--docs/tutorials/020/mmap.cpp36
-rw-r--r--docs/tutorials/020/mmap.h38
-rw-r--r--docs/tutorials/020/mmapfile8
-rw-r--r--docs/tutorials/020/page01.html49
-rw-r--r--docs/tutorials/020/page02.html77
-rw-r--r--docs/tutorials/020/page03.html56
-rw-r--r--docs/tutorials/020/page04.html93
-rw-r--r--docs/tutorials/020/page05.html101
-rw-r--r--docs/tutorials/020/page06.html29
-rw-r--r--docs/tutorials/020/server.cpp42
-rw-r--r--docs/tutorials/020/server2.cpp32
-rw-r--r--docs/tutorials/021/021-client.dsp105
-rw-r--r--docs/tutorials/021/021-server.dsp105
-rw-r--r--docs/tutorials/021/Makefile79
-rw-r--r--docs/tutorials/021/client.cpp123
-rw-r--r--docs/tutorials/021/combine.shar398
-rw-r--r--docs/tutorials/021/mpool.cpp66
-rw-r--r--docs/tutorials/021/mpool.h67
-rw-r--r--docs/tutorials/021/page01.html66
-rw-r--r--docs/tutorials/021/page02.html186
-rw-r--r--docs/tutorials/021/page03.html150
-rw-r--r--docs/tutorials/021/page04.html111
-rw-r--r--docs/tutorials/021/page05.html88
-rw-r--r--docs/tutorials/021/page06.html34
-rw-r--r--docs/tutorials/021/server.cpp158
-rw-r--r--docs/tutorials/022/Acceptor_Service.cpp154
-rw-r--r--docs/tutorials/022/Acceptor_Service.h93
-rw-r--r--docs/tutorials/022/Makefile105
-rw-r--r--docs/tutorials/022/client/Makefile47
-rw-r--r--docs/tutorials/022/client/client.cpp216
-rw-r--r--docs/tutorials/022/client_handler.cpp225
-rw-r--r--docs/tutorials/022/client_handler.h100
-rw-r--r--docs/tutorials/022/page01.html40
-rw-r--r--docs/tutorials/022/page02.html98
-rw-r--r--docs/tutorials/022/page03.html123
-rw-r--r--docs/tutorials/022/page04.html177
-rw-r--r--docs/tutorials/022/page05.html130
-rw-r--r--docs/tutorials/022/server.cpp56
-rw-r--r--docs/tutorials/022/svc.conf9
-rw-r--r--docs/tutorials/Chap_2/Chap_2.zipbin9758 -> 0 bytes
-rw-r--r--docs/tutorials/Chap_2/ex01.html107
-rw-r--r--docs/tutorials/Chap_2/ex02.html96
-rw-r--r--docs/tutorials/Chap_2/ex03.html83
-rw-r--r--docs/tutorials/Chap_2/ex04.html89
-rw-r--r--docs/tutorials/Chap_2/ex05.htm88
-rw-r--r--docs/tutorials/Chap_2/ex05.html88
-rw-r--r--docs/tutorials/Chap_2/ex06.html77
-rw-r--r--docs/tutorials/Chap_3/Chap_3.zipbin3004 -> 0 bytes
-rw-r--r--docs/tutorials/Chap_3/Makefile29
-rw-r--r--docs/tutorials/Chap_3/README14
-rw-r--r--docs/tutorials/Chap_3/ex01.html108
-rw-r--r--docs/tutorials/Chap_3/ex02.html136
-rw-r--r--docs/tutorials/Chap_3/ex03.html115
-rw-r--r--docs/tutorials/Chap_3/mm.cpp113
-rw-r--r--docs/tutorials/Chap_4/Chap_4.zipbin8317 -> 0 bytes
-rw-r--r--docs/tutorials/Chap_4/ex01.html75
-rw-r--r--docs/tutorials/Chap_4/ex02.html68
-rw-r--r--docs/tutorials/Chap_4/ex03.html79
-rw-r--r--docs/tutorials/Chap_4/ex04.html70
-rw-r--r--docs/tutorials/Chap_4/ex05.html70
-rw-r--r--docs/tutorials/Chap_4/ex06.html96
-rw-r--r--docs/tutorials/Chap_4/ex07.html85
-rw-r--r--docs/tutorials/Chap_4/ex08.html73
-rw-r--r--docs/tutorials/Chap_5/Chap_5.zipbin5843 -> 0 bytes
-rw-r--r--docs/tutorials/Chap_5/ex01.html76
-rw-r--r--docs/tutorials/Chap_5/ex02.html149
-rw-r--r--docs/tutorials/Chap_5/ex03.html87
-rw-r--r--docs/tutorials/Chap_5/ex04.html85
-rw-r--r--docs/tutorials/Chap_5/ex05.html88
-rw-r--r--docs/tutorials/Chap_6/Chap_6.zipbin14305 -> 0 bytes
-rw-r--r--docs/tutorials/Chap_6/ex01.html82
-rw-r--r--docs/tutorials/Chap_6/ex02.html95
-rw-r--r--docs/tutorials/Chap_6/ex03.html51
-rw-r--r--docs/tutorials/Chap_6/ex04.html45
-rw-r--r--docs/tutorials/Chap_6/ex05.html130
-rw-r--r--docs/tutorials/Chap_6/ex06.html135
-rw-r--r--docs/tutorials/Chap_6/ex07.html174
-rw-r--r--docs/tutorials/Chap_6/ex08.html97
-rw-r--r--docs/tutorials/Chap_6/ex09.html212
-rw-r--r--docs/tutorials/Chap_6/ex10.html111
-rw-r--r--docs/tutorials/Chap_7/Chap_7.zipbin4520 -> 0 bytes
-rw-r--r--docs/tutorials/Chap_7/ex01.html91
-rw-r--r--docs/tutorials/Chap_7/ex02.html166
-rw-r--r--docs/tutorials/Chap_7/ex03.html159
-rw-r--r--docs/tutorials/Makefile9
-rwxr-xr-xdocs/tutorials/colorize20
-rwxr-xr-xdocs/tutorials/combine171
-rwxr-xr-xdocs/tutorials/fix.Makefile68
-rw-r--r--docs/tutorials/guide-tutorials.html47
-rwxr-xr-xdocs/tutorials/linify54
-rw-r--r--docs/tutorials/new-tutorials.html76
-rw-r--r--docs/tutorials/online-tutorials.html154
-rw-r--r--docs/tutorials/templates.html190
-rw-r--r--docs/tutorials/tutorials.dsw412
-rw-r--r--docs/usage-bugzilla.html101
-rw-r--r--docs/wchar.txt128
-rw-r--r--etc/DOC-way.html63
-rw-r--r--etc/README32
-rw-r--r--etc/Svc_Conf_l.cpp.diff641
-rw-r--r--etc/Svc_Conf_y.cpp.diff358
-rw-r--r--etc/ace.doxygen192
-rw-r--r--etc/ace_man.doxygen192
-rw-r--r--etc/ace_qos.doxygen192
-rw-r--r--etc/ace_rmcast.doxygen192
-rw-r--r--etc/ace_ssl.doxygen192
-rwxr-xr-xetc/create-jace-release9
-rw-r--r--etc/enforce_ace_try.diff271
-rw-r--r--etc/purify.solaris2161
-rw-r--r--etc/tao.doxygen192
-rw-r--r--etc/tao_av.doxygen197
-rw-r--r--etc/tao_cosevent.doxygen198
-rw-r--r--etc/tao_cosnotification.doxygen201
-rw-r--r--etc/tao_dynamicany.doxygen192
-rw-r--r--etc/tao_dynamicinterface.doxygen192
-rw-r--r--etc/tao_esf.doxygen194
-rw-r--r--etc/tao_implrepo.doxygen195
-rw-r--r--etc/tao_iormanip.doxygen193
-rw-r--r--etc/tao_iortable.doxygen193
-rw-r--r--etc/tao_portableserver.doxygen193
-rw-r--r--etc/tao_rtcorba.doxygen193
-rw-r--r--etc/tao_rtevent.doxygen203
-rw-r--r--etc/tao_rtportableserver.doxygen193
-rw-r--r--etc/tao_security.doxygen199
-rw-r--r--etc/tao_smartproxies.doxygen192
-rw-r--r--etc/tao_ssliop.doxygen200
-rw-r--r--etc/tao_strategies.doxygen192
-rw-r--r--etc/xlc_dummy.cpp6
-rw-r--r--html/README11
-rw-r--r--html/Stats/Stats.css4
-rw-r--r--html/Stats/configuration.shtml82
-rw-r--r--html/Stats/detailed_footprint.shtml287
-rw-r--r--html/Stats/detailed_performance.shtml176
-rw-r--r--html/Stats/footer.html12
-rw-r--r--html/Stats/index.shtml80
-rw-r--r--html/Stats/navigation.html31
-rw-r--r--html/doxygen.css5
-rw-r--r--html/index.html136
-rw-r--r--include/makeinclude/Makefile.rtems31
-rw-r--r--include/makeinclude/ace_flags.bor114
-rw-r--r--include/makeinclude/build_core_exe.bor9
-rw-r--r--include/makeinclude/build_core_library.bor9
-rw-r--r--include/makeinclude/build_dll.bor81
-rw-r--r--include/makeinclude/build_example.bor24
-rw-r--r--include/makeinclude/build_exe.bor93
-rw-r--r--include/makeinclude/build_lib.bor66
-rw-r--r--include/makeinclude/build_library.bor10
-rw-r--r--include/makeinclude/clean.bor63
-rw-r--r--include/makeinclude/compiler.bor143
-rw-r--r--include/makeinclude/decorator.bor48
-rw-r--r--include/makeinclude/install.bor37
-rw-r--r--include/makeinclude/macros.GNU23
-rw-r--r--include/makeinclude/make_flags.bor46
-rw-r--r--include/makeinclude/outputdir.bor122
-rw-r--r--include/makeinclude/platform_aix.GNU3
-rw-r--r--include/makeinclude/platform_aix4.2.GNU3
-rw-r--r--include/makeinclude/platform_aix4_cset++.GNU118
-rw-r--r--include/makeinclude/platform_aix4_g++.GNU71
-rw-r--r--include/makeinclude/platform_aix_g++.GNU31
-rw-r--r--include/makeinclude/platform_aix_ibm.GNU146
-rw-r--r--include/makeinclude/platform_chorus.GNU116
-rw-r--r--include/makeinclude/platform_chorus4.x_g++.GNU174
-rw-r--r--include/makeinclude/platform_chorus_ghs.GNU77
-rw-r--r--include/makeinclude/platform_cray.GNU50
-rw-r--r--include/makeinclude/platform_cygwin32.GNU24
-rw-r--r--include/makeinclude/platform_dgux4_epc.GNU23
-rw-r--r--include/makeinclude/platform_dgux4_ghs.GNU27
-rw-r--r--include/makeinclude/platform_freebsd.GNU33
-rw-r--r--include/makeinclude/platform_freebsd_pthread.GNU8
-rw-r--r--include/makeinclude/platform_gnuwin32_common.GNU112
-rw-r--r--include/makeinclude/platform_hpux.GNU28
-rw-r--r--include/makeinclude/platform_hpux_aCC.GNU171
-rw-r--r--include/makeinclude/platform_hpux_gcc.GNU68
-rw-r--r--include/makeinclude/platform_hpux_kcc.GNU119
-rw-r--r--include/makeinclude/platform_hpux_orbix.GNU30
-rw-r--r--include/makeinclude/platform_irix5.2.GNU21
-rw-r--r--include/makeinclude/platform_irix5.3_g++.GNU21
-rw-r--r--include/makeinclude/platform_irix5.3_sgic++.GNU25
-rw-r--r--include/makeinclude/platform_irix6.x_common.GNU14
-rw-r--r--include/makeinclude/platform_irix6.x_g++.GNU30
-rw-r--r--include/makeinclude/platform_irix6.x_kcc.GNU41
-rw-r--r--include/makeinclude/platform_irix6.x_sgic++.GNU80
-rw-r--r--include/makeinclude/platform_linux.GNU117
-rw-r--r--include/makeinclude/platform_linux_cxx.GNU51
-rw-r--r--include/makeinclude/platform_linux_kcc.GNU73
-rw-r--r--include/makeinclude/platform_lynxos.GNU115
-rw-r--r--include/makeinclude/platform_m88k.GNU30
-rw-r--r--include/makeinclude/platform_macosx.GNU21
-rw-r--r--include/makeinclude/platform_mingw32.GNU55
-rw-r--r--include/makeinclude/platform_mvs.GNU34
-rw-r--r--include/makeinclude/platform_netbsd.GNU28
-rw-r--r--include/makeinclude/platform_osf1_3.2_cxx.GNU47
-rw-r--r--include/makeinclude/platform_osf1_4.x_cxx.GNU104
-rw-r--r--include/makeinclude/platform_osf1_4.x_g++.GNU41
-rw-r--r--include/makeinclude/platform_osf1_4.x_kcc.GNU65
-rw-r--r--include/makeinclude/platform_osf1_4.x_rcc.GNU41
-rw-r--r--include/makeinclude/platform_psos_diab.GNU189
-rw-r--r--include/makeinclude/platform_psos_diab_ppc.GNU202
-rw-r--r--include/makeinclude/platform_psos_tm.GNU47
-rw-r--r--include/makeinclude/platform_psosim_g++.GNU57
-rw-r--r--include/makeinclude/platform_qnx_neutrino.GNU35
-rw-r--r--include/makeinclude/platform_qnx_rtp_gcc.GNU39
-rw-r--r--include/makeinclude/platform_rtems.x_g++.GNU92
-rw-r--r--include/makeinclude/platform_sco-nothread.GNU22
-rw-r--r--include/makeinclude/platform_sco5.0.0-CC-fsu-pthread.GNU36
-rw-r--r--include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU46
-rw-r--r--include/makeinclude/platform_sco5.0.0-mit-pthread.GNU35
-rw-r--r--include/makeinclude/platform_sco5.0.0-nothread.GNU33
-rw-r--r--include/makeinclude/platform_sunos4_g++.GNU26
-rw-r--r--include/makeinclude/platform_sunos4_lucid.GNU21
-rw-r--r--include/makeinclude/platform_sunos4_sunc++3.x.GNU27
-rw-r--r--include/makeinclude/platform_sunos4_sunc++4.x.GNU24
-rw-r--r--include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU25
-rw-r--r--include/makeinclude/platform_sunos5_centerline.GNU22
-rw-r--r--include/makeinclude/platform_sunos5_centerline_orbix.GNU23
-rw-r--r--include/makeinclude/platform_sunos5_g++.GNU80
-rw-r--r--include/makeinclude/platform_sunos5_ghs.GNU38
-rw-r--r--include/makeinclude/platform_sunos5_kcc.GNU99
-rw-r--r--include/makeinclude/platform_sunos5_sunc++.GNU220
-rw-r--r--include/makeinclude/platform_sunos5_sunc++_orbix.GNU7
-rw-r--r--include/makeinclude/platform_tandem.GNU93
-rw-r--r--include/makeinclude/platform_tru64_cxx.GNU33
-rw-r--r--include/makeinclude/platform_tru64_g++.GNU20
-rw-r--r--include/makeinclude/platform_tru64_kcc.GNU35
-rw-r--r--include/makeinclude/platform_tru64_post.GNU32
-rw-r--r--include/makeinclude/platform_tru64_pre.GNU11
-rw-r--r--include/makeinclude/platform_unixware_g++.GNU52
-rw-r--r--include/makeinclude/platform_unixware_udk.GNU47
-rw-r--r--include/makeinclude/platform_vxworks5.x_diab.GNU153
-rw-r--r--include/makeinclude/platform_vxworks5.x_g++.GNU346
-rw-r--r--include/makeinclude/platform_vxworks5.x_ghs.GNU99
-rw-r--r--include/makeinclude/recurse.bor211
-rw-r--r--include/makeinclude/rules.bin.GNU29
-rw-r--r--include/makeinclude/rules.common.GNU17
-rw-r--r--include/makeinclude/rules.lib.GNU171
-rw-r--r--include/makeinclude/rules.local.GNU320
-rw-r--r--include/makeinclude/rules.nested.GNU20
-rw-r--r--include/makeinclude/rules.nolocal.GNU8
-rw-r--r--include/makeinclude/rules.nonested.GNU8
-rw-r--r--include/makeinclude/wrapper_macros.GNU702
-rw-r--r--java/ChangeLog137
-rw-r--r--java/EAC/BoundsException.java13
-rw-r--r--java/EAC/Configuration.java220
-rw-r--r--java/EAC/Configurator.java58
-rw-r--r--java/EAC/ConnectionException.java14
-rw-r--r--java/EAC/Connector.java197
-rw-r--r--java/EAC/EACComponent.java460
-rw-r--r--java/EAC/EACFont.java21
-rw-r--r--java/EAC/EACLabel.java187
-rw-r--r--java/EAC/EACMenuBar.java198
-rw-r--r--java/EAC/EACPanel.java425
-rw-r--r--java/EAC/EACPrintStream.java16
-rw-r--r--java/EAC/EmptyQueueException.java13
-rw-r--r--java/EAC/File.java118
-rw-r--r--java/EAC/InputMode.java32
-rw-r--r--java/EAC/Intersection.java62
-rw-r--r--java/EAC/Operator.java206
-rw-r--r--java/EAC/Primitive.java121
-rw-r--r--java/EAC/Queue.java94
-rw-r--r--java/EAC/README6
-rw-r--r--java/EAC/ResourcePool.java46
-rw-r--r--java/EAC/Rubberband.java103
-rw-r--r--java/EAC/RubberbandLine.java28
-rw-r--r--java/EAC/Sink.java231
-rw-r--r--java/EAC/Source.java341
-rw-r--r--java/EAC/System Manual.docbin83968 -> 0 bytes
-rw-r--r--java/EAC/TooManyPrimitivesException.java13
-rw-r--r--java/EAC/Union.java56
-rw-r--r--java/EAC/User_Manual.docbin95232 -> 0 bytes
-rw-r--r--java/ImageProcessing/ImageProcessing.dsp253
-rw-r--r--java/ImageProcessing/ImageProcessing.dsw29
-rw-r--r--java/ImageProcessing/filters/Assert.java33
-rw-r--r--java/ImageProcessing/filters/BleachFilter.java65
-rw-r--r--java/ImageProcessing/filters/BlurFilter.java95
-rw-r--r--java/ImageProcessing/filters/DarkenFilter.java48
-rw-r--r--java/ImageProcessing/filters/DeSpeckleFilter.java123
-rw-r--r--java/ImageProcessing/filters/DissolveFilter.java52
-rw-r--r--java/ImageProcessing/filters/EdgeDetectFilter.java250
-rw-r--r--java/ImageProcessing/filters/EmbossFilter.java86
-rw-r--r--java/ImageProcessing/filters/Makefile36
-rw-r--r--java/ImageProcessing/filters/MedFilter.java6
-rw-r--r--java/ImageProcessing/filters/OilPaintFilter.java97
-rw-r--r--java/ImageProcessing/filters/PixelizeFilter.java117
-rw-r--r--java/ImageProcessing/filters/RandomizeFilter.java36
-rw-r--r--java/ImageProcessing/filters/RotateFilter.java358
-rw-r--r--java/ImageProcessing/filters/SharpenFilter.java272
-rw-r--r--java/ImageProcessing/filters/SpatialFilter.java213
-rw-r--r--java/ImageProcessing/filters/SpreadFilter.java130
-rw-r--r--java/ImageProcessing/filters/Timer.java23
-rw-r--r--java/ImageProcessing/framework/BaseButton.java234
-rw-r--r--java/ImageProcessing/framework/BenchmarkApplet.java622
-rw-r--r--java/ImageProcessing/framework/DialogManager.java277
-rw-r--r--java/ImageProcessing/framework/DialogType.java11
-rw-r--r--java/ImageProcessing/framework/FileBrowser.java173
-rw-r--r--java/ImageProcessing/framework/FilePanel.java161
-rw-r--r--java/ImageProcessing/framework/FilterTest.java62
-rw-r--r--java/ImageProcessing/framework/GIFHandler.java75
-rw-r--r--java/ImageProcessing/framework/GifEncoder.java693
-rw-r--r--java/ImageProcessing/framework/Hierarchy.java347
-rw-r--r--java/ImageProcessing/framework/HierarchyAdapter.java34
-rw-r--r--java/ImageProcessing/framework/Icon.java70
-rw-r--r--java/ImageProcessing/framework/ImageApp.java303
-rw-r--r--java/ImageProcessing/framework/ImageByteCounter.java94
-rw-r--r--java/ImageProcessing/framework/ImageCanvas.java166
-rw-r--r--java/ImageProcessing/framework/ImageEncoder.java271
-rw-r--r--java/ImageProcessing/framework/ImageProcessor.java111
-rw-r--r--java/ImageProcessing/framework/ImageSender.java128
-rw-r--r--java/ImageProcessing/framework/IntHashtable.java396
-rw-r--r--java/ImageProcessing/framework/ListFiles.java167
-rwxr-xr-xjava/ImageProcessing/framework/LoadURLFrame.java142
-rw-r--r--java/ImageProcessing/framework/Makefile45
-rw-r--r--java/ImageProcessing/framework/MedJava.html15
-rw-r--r--java/ImageProcessing/framework/Options.java25
-rwxr-xr-xjava/ImageProcessing/framework/SaveURLFrame.java133
-rw-r--r--java/ImageProcessing/framework/Separator.java90
-rw-r--r--java/ImageProcessing/framework/ServerHandler.java50
-rw-r--r--java/ImageProcessing/framework/ServerTest.java67
-rw-r--r--java/ImageProcessing/framework/StatusDisplay.java23
-rw-r--r--java/ImageProcessing/framework/StatusIndicator.java70
-rw-r--r--java/ImageProcessing/framework/TestHandler.java149
-rw-r--r--java/ImageProcessing/framework/Tester.java148
-rw-r--r--java/ImageProcessing/framework/doc01.gifbin223 -> 0 bytes
-rw-r--r--java/ImageProcessing/framework/file03.gifbin267 -> 0 bytes
-rw-r--r--java/ImageProcessing/framework/filter.conf15
-rw-r--r--java/ImageProcessing/framework/help.conf216
-rw-r--r--java/ImageProcessing/framework/test.html20
-rw-r--r--java/ImageProcessing/framework/testFilter.conf15
-rw-r--r--java/JACE/ASX/IOCntlCmds.java38
-rw-r--r--java/JACE/ASX/IOCntlMsg.java124
-rw-r--r--java/JACE/ASX/MessageBlock.java447
-rw-r--r--java/JACE/ASX/MessageQueue.java633
-rw-r--r--java/JACE/ASX/MessageType.java102
-rw-r--r--java/JACE/ASX/Module.java246
-rw-r--r--java/JACE/ASX/Stream.java436
-rw-r--r--java/JACE/ASX/StreamHead.java123
-rw-r--r--java/JACE/ASX/StreamTail.java114
-rw-r--r--java/JACE/ASX/Task.java443
-rw-r--r--java/JACE/ASX/TaskFlags.java49
-rw-r--r--java/JACE/ASX/ThruTask.java44
-rw-r--r--java/JACE/ASX/TimeValue.java296
-rw-r--r--java/JACE/ASX/TimedWait.java157
-rw-r--r--java/JACE/ASX/TimeoutException.java37
-rw-r--r--java/JACE/ASX/package.html11
-rw-r--r--java/JACE/Concurrency/AbstractLock.java269
-rw-r--r--java/JACE/Concurrency/Condition.java124
-rw-r--r--java/JACE/Concurrency/LockAdapter.java262
-rw-r--r--java/JACE/Concurrency/LockException.java28
-rw-r--r--java/JACE/Concurrency/Mutex.java239
-rw-r--r--java/JACE/Concurrency/RWMutex.java268
-rw-r--r--java/JACE/Concurrency/RenewObject.java36
-rw-r--r--java/JACE/Concurrency/Semaphore.java263
-rw-r--r--java/JACE/Concurrency/ThreadManager.java113
-rw-r--r--java/JACE/Concurrency/Token.java301
-rw-r--r--java/JACE/Concurrency/WaitObject.java39
-rw-r--r--java/JACE/Concurrency/package.html15
-rw-r--r--java/JACE/Connection/AcceptStrategy.java87
-rw-r--r--java/JACE/Connection/Acceptor.java215
-rw-r--r--java/JACE/Connection/ActivateStrategy.java40
-rw-r--r--java/JACE/Connection/Blob.java114
-rw-r--r--java/JACE/Connection/BlobHandler.java35
-rw-r--r--java/JACE/Connection/BlobReader.java108
-rw-r--r--java/JACE/Connection/BlobWriter.java224
-rw-r--r--java/JACE/Connection/Connector.java148
-rw-r--r--java/JACE/Connection/CreationStrategy.java57
-rw-r--r--java/JACE/Connection/HTTPHelper.java182
-rw-r--r--java/JACE/Connection/StrategyAcceptor.java174
-rw-r--r--java/JACE/Connection/SvcHandler.java101
-rw-r--r--java/JACE/Connection/package.html7
-rw-r--r--java/JACE/Makefile234
-rw-r--r--java/JACE/Misc/GetOpt.java171
-rw-r--r--java/JACE/Misc/package.html6
-rw-r--r--java/JACE/OS/ACE.java156
-rw-r--r--java/JACE/OS/OS.java65
-rw-r--r--java/JACE/OS/package.html6
-rw-r--r--java/JACE/Reactor/EventHandler.java43
-rw-r--r--java/JACE/Reactor/TimerQueue.java437
-rw-r--r--java/JACE/Reactor/package.html6
-rw-r--r--java/JACE/SOCK_SAP/INETAddr.java96
-rw-r--r--java/JACE/SOCK_SAP/SOCKAcceptor.java113
-rw-r--r--java/JACE/SOCK_SAP/SOCKConnector.java73
-rw-r--r--java/JACE/SOCK_SAP/SOCKStream.java227
-rw-r--r--java/JACE/SOCK_SAP/package.html8
-rw-r--r--java/JACE/ServiceConfigurator/Service.java96
-rw-r--r--java/JACE/ServiceConfigurator/ServiceConfig.java482
-rw-r--r--java/JACE/ServiceConfigurator/ServiceLoader.java254
-rw-r--r--java/JACE/ServiceConfigurator/ServiceObject.java130
-rw-r--r--java/JACE/ServiceConfigurator/ServiceRepository.java274
-rw-r--r--java/JACE/ServiceConfigurator/package.html10
-rw-r--r--java/JACE/Timers/ProfileTimer.java46
-rw-r--r--java/JACE/Timers/package.html8
-rw-r--r--java/JACE/makebat.zipbin1326 -> 0 bytes
-rw-r--r--java/JACE/netsvcs/Handler.java185
-rw-r--r--java/JACE/netsvcs/Logger/LogRecord.java290
-rw-r--r--java/JACE/netsvcs/Logger/LoggingStrategy.java35
-rw-r--r--java/JACE/netsvcs/Logger/ServerLoggingAcceptor.java147
-rw-r--r--java/JACE/netsvcs/Logger/ServerLoggingHandler.java60
-rw-r--r--java/JACE/netsvcs/Logger/StderrStrategy.java36
-rw-r--r--java/JACE/netsvcs/Logger/c.bat2
-rw-r--r--java/JACE/netsvcs/Logger/package.html17
-rw-r--r--java/JACE/netsvcs/Naming/NameAcceptor.java313
-rw-r--r--java/JACE/netsvcs/Naming/NameHandler.java473
-rw-r--r--java/JACE/netsvcs/Naming/NameProxy.java405
-rw-r--r--java/JACE/netsvcs/Naming/NameReply.java169
-rw-r--r--java/JACE/netsvcs/Naming/NameRequest.java373
-rw-r--r--java/JACE/netsvcs/Naming/c.bat2
-rw-r--r--java/JACE/netsvcs/Naming/package.html11
-rw-r--r--java/JACE/netsvcs/Server.java356
-rw-r--r--java/JACE/netsvcs/Time/TSClerkHandler.java195
-rw-r--r--java/JACE/netsvcs/Time/TSClerkProcessor.java307
-rw-r--r--java/JACE/netsvcs/Time/TSServerAcceptor.java116
-rw-r--r--java/JACE/netsvcs/Time/TSServerHandler.java53
-rw-r--r--java/JACE/netsvcs/Time/TimeInfo.java90
-rw-r--r--java/JACE/netsvcs/Time/TimeRequest.java121
-rw-r--r--java/JACE/netsvcs/Time/c.bat1
-rw-r--r--java/JACE/netsvcs/Time/package.html10
-rw-r--r--java/JACE/netsvcs/Time/r.bat1
-rw-r--r--java/JACE/netsvcs/Token/LockHandler.java38
-rw-r--r--java/JACE/netsvcs/Token/LockHandlerAdapter.java380
-rw-r--r--java/JACE/netsvcs/Token/LockOperations.java16
-rw-r--r--java/JACE/netsvcs/Token/LockTypes.java19
-rw-r--r--java/JACE/netsvcs/Token/MutexHandler.java51
-rw-r--r--java/JACE/netsvcs/Token/RWMutexHandler.java54
-rw-r--r--java/JACE/netsvcs/Token/RemoteLock.java543
-rw-r--r--java/JACE/netsvcs/Token/RemoteMutex.java28
-rw-r--r--java/JACE/netsvcs/Token/RemoteRWMutex.java29
-rw-r--r--java/JACE/netsvcs/Token/TokenAcceptor.java353
-rw-r--r--java/JACE/netsvcs/Token/TokenReply.java171
-rw-r--r--java/JACE/netsvcs/Token/TokenRequest.java426
-rw-r--r--java/JACE/netsvcs/Token/TokenRequestHandler.java180
-rw-r--r--java/JACE/netsvcs/Token/package.html16
-rw-r--r--java/JACE/netsvcs/package.html11
-rw-r--r--java/JACE/overview.html84
-rw-r--r--java/JACE/package.html32
-rw-r--r--java/JACE/tests/ASX/BufferStreamTest.java189
-rw-r--r--java/JACE/tests/ASX/MessageQueueTest.java54
-rw-r--r--java/JACE/tests/ASX/PriorityBufferTest.java118
-rw-r--r--java/JACE/tests/ASX/TaskTest.java95
-rw-r--r--java/JACE/tests/ASX/ThreadPoolTest.java187
-rw-r--r--java/JACE/tests/Concurrency/Condition/Consumer.java75
-rw-r--r--java/JACE/tests/Concurrency/Condition/JoinableThreadGroup.java24
-rw-r--r--java/JACE/tests/Concurrency/Condition/Producer.java70
-rw-r--r--java/JACE/tests/Concurrency/Condition/QueueTest.java68
-rw-r--r--java/JACE/tests/Concurrency/Condition/SimpleMessageQueue.java86
-rw-r--r--java/JACE/tests/Concurrency/IterationTest.java235
-rw-r--r--java/JACE/tests/Concurrency/RWMutexTest.java137
-rw-r--r--java/JACE/tests/Concurrency/TimingTest.java290
-rw-r--r--java/JACE/tests/Concurrency/TokenTest.java95
-rw-r--r--java/JACE/tests/Connection/AcceptorTest.java83
-rw-r--r--java/JACE/tests/Connection/ClientHandler.java77
-rw-r--r--java/JACE/tests/Connection/ConnectorTest.java78
-rw-r--r--java/JACE/tests/Connection/HTTPHelperTest.java34
-rw-r--r--java/JACE/tests/Connection/ServerHandler.java68
-rw-r--r--java/JACE/tests/Makefile115
-rw-r--r--java/JACE/tests/Misc/ParseArgsTest.java48
-rw-r--r--java/JACE/tests/Reactor/TimeValueTest.java52
-rw-r--r--java/JACE/tests/Reactor/TimerQueueTest.java84
-rw-r--r--java/JACE/tests/SOCK_SAP/SOCKAcceptorTest.java110
-rw-r--r--java/JACE/tests/SOCK_SAP/SOCKConnectorTest.java97
-rw-r--r--java/JACE/tests/ServiceConfigurator/Main.java113
-rw-r--r--java/JACE/tests/ServiceConfigurator/svc.conf4
-rw-r--r--java/JACE/tests/netsvcs/Logger/LoggerTest.java115
-rw-r--r--java/JACE/tests/netsvcs/Naming/ClientTest.java107
-rw-r--r--java/JACE/tests/netsvcs/Time/TSClient.java37
-rw-r--r--java/JACE/tests/netsvcs/Token/ProxyClientTest.java200
-rw-r--r--java/MSVJProjects.zipbin35698 -> 0 bytes
-rw-r--r--java/README40
-rw-r--r--java/VERSION5
-rw-r--r--java/apps/NexusII/README58
-rw-r--r--java/apps/NexusII/classes/ClientHandler.classbin689 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/FrameHandler.classbin828 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/ImageCanvas.classbin1771 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/NexusClientApplet.classbin581 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/NexusIIserver.classbin1265 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/Room.classbin2049 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/RoomFactory.classbin751 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/RoomFrame.classbin186 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/RoomThread.classbin79 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CApplet.classbin29 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CApplet.java199
-rw-r--r--java/apps/NexusII/classes/awtCommand/CButton.classbin41 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CButton.java41
-rw-r--r--java/apps/NexusII/classes/awtCommand/CCanvas.classbin2249 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CCanvas.java381
-rw-r--r--java/apps/NexusII/classes/awtCommand/CFrame.classbin3543 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CFrame.java486
-rw-r--r--java/apps/NexusII/classes/awtCommand/CList.classbin825 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CList.java96
-rw-r--r--java/apps/NexusII/classes/awtCommand/CPanel.classbin2246 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CPanel.java381
-rw-r--r--java/apps/NexusII/classes/awtCommand/CTextArea.classbin57 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CTextArea.java93
-rw-r--r--java/apps/NexusII/classes/awtCommand/CTextField.classbin91 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/CTextField.java110
-rw-r--r--java/apps/NexusII/classes/awtCommand/Command.classbin253 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/awtCommand/Command.java25
-rw-r--r--java/apps/NexusII/classes/commandHandler.classbin58 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/commandParser.classbin1430 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/connectionHandler.classbin248 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/joinHandler.classbin2048 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/roomHandler.classbin1837 -> 0 bytes
-rw-r--r--java/apps/NexusII/classes/textHandler.classbin1752 -> 0 bytes
-rw-r--r--java/apps/NexusII/src/Consumer.java74
-rw-r--r--java/apps/NexusII/src/MT_Bounded_Queue.java226
-rw-r--r--java/apps/NexusII/src/MT_Bounded_Queue_Group.java79
-rw-r--r--java/apps/NexusII/src/NexusClientApplet.java494
-rw-r--r--java/apps/NexusII/src/NexusIIserver.java280
-rw-r--r--java/apps/NexusII/src/Producer.java87
-rw-r--r--java/apps/NexusII/src/Room.java97
-rw-r--r--java/apps/NexusII/src/RoomFrame.java297
-rw-r--r--java/apps/NexusII/src/RoomSpace.java110
-rw-r--r--java/apps/NexusII/src/Timed_Wait.java86
-rw-r--r--java/apps/NexusII/src/Timer.java31
-rw-r--r--java/apps/NexusII/src/commandHandler.java44
-rw-r--r--java/apps/NexusII/src/commandParser.java124
-rw-r--r--java/apps/NexusII/src/connectionHandler.java236
-rw-r--r--java/apps/NexusII/src/consts.java40
-rw-r--r--java/apps/NexusII/src/dataPacket.java124
-rw-r--r--java/apps/NexusII/src/joinHandler.java181
-rw-r--r--java/apps/NexusII/src/makefile15
-rw-r--r--java/apps/NexusII/src/nexusDemuxThread.java97
-rw-r--r--java/apps/NexusII/src/roomHandler.java125
-rw-r--r--java/apps/NexusII/src/socketReaderThread.java126
-rw-r--r--java/apps/NexusII/src/socketWriterThread.java119
-rw-r--r--java/apps/NexusII/src/url_to_url.java33
-rwxr-xr-xjava/apps/NexusII/start27
-rw-r--r--java/apps/NexusII/start.html4
-rw-r--r--java/classes/README.TXT2
-rw-r--r--java/doc/images/GridBagEx.gifbin2453 -> 0 bytes
-rw-r--r--java/doc/images/OpenBookIcon.gifbin2241 -> 0 bytes
-rw-r--r--java/doc/images/blue-ball-small.gifbin255 -> 0 bytes
-rw-r--r--java/doc/images/blue-ball.gifbin925 -> 0 bytes
-rw-r--r--java/doc/images/class-index.gifbin1497 -> 0 bytes
-rw-r--r--java/doc/images/constructor-index.gifbin1711 -> 0 bytes
-rw-r--r--java/doc/images/constructors.gifbin1565 -> 0 bytes
-rw-r--r--java/doc/images/cyan-ball-small.gifbin255 -> 0 bytes
-rw-r--r--java/doc/images/cyan-ball.gifbin925 -> 0 bytes
-rw-r--r--java/doc/images/error-index.gifbin1438 -> 0 bytes
-rw-r--r--java/doc/images/exception-index.gifbin1707 -> 0 bytes
-rw-r--r--java/doc/images/green-ball-small.gifbin102 -> 0 bytes
-rw-r--r--java/doc/images/green-ball.gifbin886 -> 0 bytes
-rw-r--r--java/doc/images/interface-index.gifbin1648 -> 0 bytes
-rw-r--r--java/doc/images/magenta-ball-small.gifbin104 -> 0 bytes
-rw-r--r--java/doc/images/magenta-ball.gifbin896 -> 0 bytes
-rw-r--r--java/doc/images/method-index.gifbin1588 -> 0 bytes
-rw-r--r--java/doc/images/methods.gifbin1403 -> 0 bytes
-rw-r--r--java/doc/images/package-index.gifbin1607 -> 0 bytes
-rw-r--r--java/doc/images/red-ball-small.gifbin255 -> 0 bytes
-rw-r--r--java/doc/images/red-ball.gifbin527 -> 0 bytes
-rw-r--r--java/doc/images/variable-index.gifbin1576 -> 0 bytes
-rw-r--r--java/doc/images/variables.gifbin1380 -> 0 bytes
-rw-r--r--java/doc/images/yellow-ball-small.gifbin255 -> 0 bytes
-rw-r--r--java/doc/images/yellow-ball.gifbin925 -> 0 bytes
-rw-r--r--java/examples/Logger/README29
-rw-r--r--java/examples/Logger/simple-server/LogRecord.java145
-rw-r--r--java/examples/Logger/simple-server/LoggerConstants.java7
-rw-r--r--java/examples/Logger/simple-server/LoggingAcceptor.java33
-rw-r--r--java/examples/Logger/simple-server/LoggingClient.java108
-rw-r--r--java/examples/Logger/simple-server/LoggingHandler.java121
-rw-r--r--java/examples/Logger/simple-server/Makefile34
-rw-r--r--java/examples/Logger/simple-server/README25
-rw-r--r--java/examples/Logger/simple-server/SimpleLogger.java44
-rw-r--r--java/gjt/Assert.java33
-rw-r--r--java/gjt/Bargauge.java80
-rw-r--r--java/gjt/Border.java105
-rw-r--r--java/gjt/Box.java81
-rw-r--r--java/gjt/BulletinLayout.java100
-rw-r--r--java/gjt/ButtonPanel.java51
-rw-r--r--java/gjt/CardPanel.java48
-rw-r--r--java/gjt/ChoiceCardPanel.java53
-rw-r--r--java/gjt/ColumnLayout.java154
-rw-r--r--java/gjt/ComponentScroller.java42
-rw-r--r--java/gjt/DialogClient.java20
-rw-r--r--java/gjt/DrawingPanel.java72
-rw-r--r--java/gjt/DrawnRectangle.java136
-rw-r--r--java/gjt/EtchedBorder.java59
-rw-r--r--java/gjt/EtchedRectangle.java97
-rw-r--r--java/gjt/Etching.java22
-rw-r--r--java/gjt/ExclusiveImageButtonPanel.java47
-rw-r--r--java/gjt/FontDialog.java362
-rw-r--r--java/gjt/GJT.DSP456
-rw-r--r--java/gjt/GJT.DSW29
-rw-r--r--java/gjt/GJTDialog.java51
-rw-r--r--java/gjt/IconCardPanel.java55
-rw-r--r--java/gjt/ImageButton.java209
-rw-r--r--java/gjt/ImageButtonController.java79
-rw-r--r--java/gjt/ImageButtonEvent.java103
-rw-r--r--java/gjt/ImageButtonPanel.java106
-rw-r--r--java/gjt/ImageButtonPanelController.java47
-rw-r--r--java/gjt/ImageCanvas.java31
-rw-r--r--java/gjt/ImageScroller.java62
-rw-r--r--java/gjt/LabelCanvas.java93
-rw-r--r--java/gjt/Makefile67
-rw-r--r--java/gjt/MessageDialog.java77
-rw-r--r--java/gjt/MouseController.java32
-rw-r--r--java/gjt/Orientation.java87
-rw-r--r--java/gjt/ProgressDialog.java67
-rw-r--r--java/gjt/QuestionDialog.java130
-rw-r--r--java/gjt/RadioImageButtonPanelController.java45
-rw-r--r--java/gjt/RowLayout.java153
-rw-r--r--java/gjt/Scroller.java154
-rw-r--r--java/gjt/ScrollerLayout.java160
-rw-r--r--java/gjt/SelectionEvent.java82
-rw-r--r--java/gjt/Separator.java90
-rw-r--r--java/gjt/SpringyImageButtonController.java54
-rw-r--r--java/gjt/StateButton.java45
-rw-r--r--java/gjt/StateButtonController.java27
-rw-r--r--java/gjt/StickyImageButtonController.java87
-rw-r--r--java/gjt/Stopwatch.java94
-rw-r--r--java/gjt/StopwatchClient.java14
-rw-r--r--java/gjt/ThreeDBorder.java53
-rw-r--r--java/gjt/ThreeDBorderStyle.java24
-rw-r--r--java/gjt/ThreeDRectangle.java105
-rw-r--r--java/gjt/Toolbar.java58
-rw-r--r--java/gjt/Util.java69
-rw-r--r--java/gjt/YesNoDialog.java80
-rw-r--r--java/gjt/animation/CollisionArena.java39
-rw-r--r--java/gjt/animation/CollisionDetector.java24
-rw-r--r--java/gjt/animation/EdgeCollisionDetector.java53
-rw-r--r--java/gjt/animation/Playfield.java140
-rw-r--r--java/gjt/animation/Sequence.java119
-rw-r--r--java/gjt/animation/Sprite.java191
-rw-r--r--java/gjt/animation/SpriteCollisionDetector.java45
-rw-r--r--java/gjt/image/BleachImageFilter.java53
-rw-r--r--java/gjt/image/DissolveFilter.java48
-rw-r--r--java/gjt/image/ImageDissolver.java132
-rw-r--r--java/gjt/rubberband/Rubberband.java100
-rw-r--r--java/gjt/rubberband/RubberbandEllipse.java32
-rw-r--r--java/gjt/rubberband/RubberbandLine.java25
-rw-r--r--java/gjt/rubberband/RubberbandPanel.java38
-rw-r--r--java/gjt/rubberband/RubberbandRectangle.java29
-rw-r--r--java/gjt/test/AttributesPanel.java78
-rw-r--r--java/gjt/test/BargaugeTest.java130
-rw-r--r--java/gjt/test/BleachImageFilterTest.java86
-rw-r--r--java/gjt/test/BorderTest.java202
-rw-r--r--java/gjt/test/BoxTest.java100
-rw-r--r--java/gjt/test/BumpAnimationTest.java107
-rw-r--r--java/gjt/test/ChoiceCardPanelTest.java34
-rw-r--r--java/gjt/test/ColumnLayoutTest.java126
-rw-r--r--java/gjt/test/ComponentScrollerTest.java205
-rw-r--r--java/gjt/test/ConnectionsPanel.java9
-rw-r--r--java/gjt/test/DialogTest.java140
-rw-r--r--java/gjt/test/DrawnRectangleTest.java119
-rw-r--r--java/gjt/test/FontDialogTest.java95
-rw-r--r--java/gjt/test/IconCardPanelTest.java47
-rw-r--r--java/gjt/test/ImageButtonTest.java130
-rw-r--r--java/gjt/test/ImageDissolverTest.java69
-rw-r--r--java/gjt/test/ImageScrollerTest.java55
-rw-r--r--java/gjt/test/LabelCanvasTest.java75
-rw-r--r--java/gjt/test/MessageDialogTest.java50
-rw-r--r--java/gjt/test/OccupationOracle.java334
-rw-r--r--java/gjt/test/RowLayoutTest.java124
-rw-r--r--java/gjt/test/RubberbandTest.java112
-rw-r--r--java/gjt/test/SeparatorTest.java64
-rw-r--r--java/gjt/test/SimpleAnimationTest.java87
-rw-r--r--java/gjt/test/SimpleBargaugeTest.java61
-rw-r--r--java/gjt/test/StateButtonTest.java41
-rw-r--r--java/gjt/test/TenPixelBorder.java44
-rw-r--r--java/gjt/test/TitledPanel.java22
-rw-r--r--java/gjt/test/ToolbarTest.java111
-rw-r--r--java/gjt/test/TwoDrinkersAnimationTest.java130
-rw-r--r--java/gjt/test/UnitTest.java46
-rw-r--r--java/java-ace.gifbin11028 -> 0 bytes
-rw-r--r--java/netsvcs/Logger/DefaultLMR.java36
-rw-r--r--java/netsvcs/Logger/LogMessageReceiver.java33
-rw-r--r--java/netsvcs/Logger/LogRecord.java188
-rw-r--r--java/netsvcs/Logger/Makefile23
-rw-r--r--java/netsvcs/Logger/ServerLoggingAcceptor.java171
-rw-r--r--java/netsvcs/Logger/ServerLoggingHandler.java105
-rw-r--r--java/netsvcs/Naming/Makefile24
-rw-r--r--java/netsvcs/Naming/NameAcceptor.java306
-rw-r--r--java/netsvcs/Naming/NameHandler.java521
-rw-r--r--java/netsvcs/Naming/NameProxy.java351
-rw-r--r--java/netsvcs/Naming/NameReply.java145
-rw-r--r--java/netsvcs/Naming/NameRequest.java331
-rwxr-xr-xjava/netsvcs/Time/Clerk.java23
-rwxr-xr-xjava/netsvcs/Time/Makefile26
-rwxr-xr-xjava/netsvcs/Time/Server.java23
-rwxr-xr-xjava/netsvcs/Time/TSClerkHandler.java296
-rwxr-xr-xjava/netsvcs/Time/TSClerkProcessor.java267
-rwxr-xr-xjava/netsvcs/Time/TSRequestAcceptor.java142
-rwxr-xr-xjava/netsvcs/Time/TSRequestHandler.java106
-rwxr-xr-xjava/netsvcs/Time/TSServerAcceptor.java100
-rwxr-xr-xjava/netsvcs/Time/TSServerHandler.java99
-rw-r--r--java/src/ACE.java164
-rw-r--r--java/src/AcceptStrategy.java89
-rw-r--r--java/src/Acceptor.java216
-rw-r--r--java/src/ActivateStrategy.java43
-rw-r--r--java/src/AddServiceObjectNode.java54
-rw-r--r--java/src/Blob.java94
-rw-r--r--java/src/BlobHandler.java35
-rw-r--r--java/src/BlobReader.java104
-rw-r--r--java/src/BlobWriter.java220
-rw-r--r--java/src/ClassNameGenerator.java181
-rw-r--r--java/src/ClassReader.java146
-rw-r--r--java/src/Condition.java122
-rw-r--r--java/src/Connector.java157
-rw-r--r--java/src/CreationStrategy.java64
-rw-r--r--java/src/EventHandler.java53
-rw-r--r--java/src/GetOpt.java150
-rw-r--r--java/src/HTTPHelper.java84
-rw-r--r--java/src/INETAddr.java99
-rw-r--r--java/src/IOCntlCmds.java34
-rw-r--r--java/src/IOCntlMsg.java128
-rw-r--r--java/src/JACE.DSP292
-rw-r--r--java/src/JACE.DSW29
-rw-r--r--java/src/Makefile153
-rw-r--r--java/src/MessageBlock.java453
-rw-r--r--java/src/MessageQueue.java639
-rw-r--r--java/src/MessageType.java110
-rw-r--r--java/src/Module.java253
-rw-r--r--java/src/Mutex.java109
-rw-r--r--java/src/OS.java72
-rw-r--r--java/src/ParseNode.java69
-rw-r--r--java/src/ProfileTimer.java48
-rw-r--r--java/src/README19
-rw-r--r--java/src/RWMutex.java174
-rw-r--r--java/src/RemoveNode.java35
-rw-r--r--java/src/ResumeNode.java34
-rw-r--r--java/src/SOCKAcceptor.java115
-rw-r--r--java/src/SOCKConnector.java75
-rw-r--r--java/src/SOCKStream.java218
-rw-r--r--java/src/Semaphore.java103
-rw-r--r--java/src/ServiceConfig.java375
-rw-r--r--java/src/ServiceLoader.java260
-rw-r--r--java/src/ServiceObject.java80
-rw-r--r--java/src/ServiceObjectRecord.java33
-rw-r--r--java/src/ServiceRecord.java253
-rw-r--r--java/src/ServiceRepository.java189
-rw-r--r--java/src/StrategyAcceptor.java156
-rw-r--r--java/src/Stream.java440
-rw-r--r--java/src/StreamHead.java127
-rw-r--r--java/src/StreamTail.java119
-rw-r--r--java/src/SuspendNode.java34
-rw-r--r--java/src/SvcHandler.java85
-rw-r--r--java/src/Task.java439
-rw-r--r--java/src/TaskFlags.java44
-rw-r--r--java/src/ThreadManager.java109
-rw-r--r--java/src/ThruTask.java48
-rw-r--r--java/src/TimeValue.java285
-rw-r--r--java/src/TimedWait.java150
-rw-r--r--java/src/TimeoutException.java34
-rw-r--r--java/src/TimerQueue.java432
-rw-r--r--java/src/Token.java336
-rw-r--r--java/tests/ASX/BufferStreamTest.dsp73
-rw-r--r--java/tests/ASX/BufferStreamTest.java185
-rw-r--r--java/tests/ASX/Makefile26
-rw-r--r--java/tests/ASX/MessageQueueTest.dsp73
-rw-r--r--java/tests/ASX/MessageQueueTest.java50
-rw-r--r--java/tests/ASX/PriorityBufferTest.dsp73
-rw-r--r--java/tests/ASX/PriorityBufferTest.java116
-rw-r--r--java/tests/ASX/TaskTest.dsp72
-rw-r--r--java/tests/ASX/TaskTest.java86
-rw-r--r--java/tests/ASX/ThreadPoolTest.dsp73
-rw-r--r--java/tests/ASX/ThreadPoolTest.java185
-rw-r--r--java/tests/Concurrency/Condition/Condition.dsp88
-rw-r--r--java/tests/Concurrency/Condition/Consumer.java73
-rw-r--r--java/tests/Concurrency/Condition/JoinableThreadGroup.java24
-rw-r--r--java/tests/Concurrency/Condition/Makefile25
-rw-r--r--java/tests/Concurrency/Condition/Producer.java67
-rw-r--r--java/tests/Concurrency/Condition/QueueTest.java64
-rw-r--r--java/tests/Concurrency/Condition/SimpleMessageQueue.java86
-rw-r--r--java/tests/Concurrency/Makefile23
-rw-r--r--java/tests/Concurrency/MutexTest.dsp72
-rw-r--r--java/tests/Concurrency/MutexTest.java154
-rw-r--r--java/tests/Concurrency/RWMutexTest.dsp73
-rw-r--r--java/tests/Concurrency/RWMutexTest.java93
-rw-r--r--java/tests/Concurrency/SemaphoreTest.dsp73
-rw-r--r--java/tests/Concurrency/SemaphoreTest.java102
-rw-r--r--java/tests/Concurrency/TokenTest.dsp72
-rw-r--r--java/tests/Concurrency/TokenTest.java73
-rw-r--r--java/tests/Connection/AcceptorTest.dsp73
-rw-r--r--java/tests/Connection/AcceptorTest.java79
-rw-r--r--java/tests/Connection/ClientHandler.dsp73
-rw-r--r--java/tests/Connection/ClientHandler.java77
-rw-r--r--java/tests/Connection/ConnectorTest.dsp73
-rw-r--r--java/tests/Connection/ConnectorTest.java76
-rw-r--r--java/tests/Connection/HTTPHelperTest.java27
-rw-r--r--java/tests/Connection/Makefile26
-rw-r--r--java/tests/Connection/ServerHandler.dsp73
-rw-r--r--java/tests/Connection/ServerHandler.java68
-rw-r--r--java/tests/Misc/Makefile21
-rw-r--r--java/tests/Misc/ParseArgsTest.dsp73
-rw-r--r--java/tests/Misc/ParseArgsTest.java45
-rw-r--r--java/tests/Reactor/Makefile22
-rw-r--r--java/tests/Reactor/TimeValueTest.dsp73
-rw-r--r--java/tests/Reactor/TimeValueTest.java50
-rw-r--r--java/tests/Reactor/TimerQueueTest.dsp73
-rw-r--r--java/tests/Reactor/TimerQueueTest.java80
-rw-r--r--java/tests/SOCK_SAP/Makefile22
-rw-r--r--java/tests/SOCK_SAP/SOCKAcceptorTest.dsp73
-rw-r--r--java/tests/SOCK_SAP/SOCKAcceptorTest.java108
-rw-r--r--java/tests/SOCK_SAP/SOCKConnectorTest.dsp73
-rw-r--r--java/tests/SOCK_SAP/SOCKConnectorTest.java95
-rw-r--r--java/tests/ServiceConfigurator/Makefile25
-rw-r--r--java/tests/ServiceConfigurator/ServiceConfigurator.dsp81
-rw-r--r--java/tests/ServiceConfigurator/TestService.java52
-rw-r--r--java/tests/ServiceConfigurator/reloadTest.java61
-rw-r--r--java/tests/ServiceConfigurator/suspendTest.java80
-rw-r--r--java/tests/ServiceConfigurator/suspendTest1.conf1
-rw-r--r--java/tests/ServiceConfigurator/suspendTest2.conf1
-rw-r--r--java/tests/ServiceConfigurator/suspendTest3.conf1
-rw-r--r--java/tests/ServiceConfigurator/svc.conf1
-rw-r--r--java/tests/Tests.dsw257
-rw-r--r--java/tests/netsvcs/Logger/LoggerTest.java122
-rw-r--r--java/tests/netsvcs/Logger/Makefile19
-rw-r--r--java/tests/netsvcs/Naming/ClientTest.java117
-rw-r--r--java/tests/netsvcs/Naming/Makefile21
-rw-r--r--m4/ace.m4594
-rw-r--r--m4/acinclude.m4803
-rw-r--r--m4/compiler.m4319
-rw-r--r--m4/features.m4626
-rw-r--r--m4/platform.m4324
-rw-r--r--m4/subsets.m4594
-rw-r--r--m4/threads.m4433
-rw-r--r--man/Makefile.am16
-rw-r--r--man/man3/Makefile.am25
-rw-r--r--netsvcs/ACE-netsvcs.html879
-rw-r--r--netsvcs/Makefile29
-rw-r--r--netsvcs/Makefile.am16
-rw-r--r--netsvcs/Makefile.bor7
-rw-r--r--netsvcs/README20
-rw-r--r--netsvcs/build.bor16
-rw-r--r--netsvcs/clients/Logger/Logger.dsw41
-rw-r--r--netsvcs/clients/Logger/Makefile140
-rw-r--r--netsvcs/clients/Logger/Makefile.am29
-rw-r--r--netsvcs/clients/Logger/Makefile.bor16
-rw-r--r--netsvcs/clients/Logger/README18
-rw-r--r--netsvcs/clients/Logger/direct_logging.cpp41
-rw-r--r--netsvcs/clients/Logger/direct_logging.dsp94
-rw-r--r--netsvcs/clients/Logger/indirect_logging.cpp50
-rw-r--r--netsvcs/clients/Logger/indirect_logging.dsp94
-rw-r--r--netsvcs/clients/Makefile19
-rw-r--r--netsvcs/clients/Makefile.am18
-rw-r--r--netsvcs/clients/Makefile.bor3
-rw-r--r--netsvcs/clients/Naming/Client/Client.dsw44
-rw-r--r--netsvcs/clients/Naming/Client/Client_Test.cpp647
-rw-r--r--netsvcs/clients/Naming/Client/Client_Test.dsp97
-rw-r--r--netsvcs/clients/Naming/Client/Client_Test.h12
-rw-r--r--netsvcs/clients/Naming/Client/Makefile329
-rw-r--r--netsvcs/clients/Naming/Client/Makefile.am36
-rw-r--r--netsvcs/clients/Naming/Client/Makefile.bor8
-rw-r--r--netsvcs/clients/Naming/Client/README123
-rw-r--r--netsvcs/clients/Naming/Client/main.cpp79
-rw-r--r--netsvcs/clients/Naming/Client/main.dsp93
-rw-r--r--netsvcs/clients/Naming/Client/svc.conf7
-rw-r--r--netsvcs/clients/Naming/Client/svc2.conf9
-rw-r--r--netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp461
-rw-r--r--netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h84
-rw-r--r--netsvcs/clients/Naming/Dump_Restore/Makefile340
-rw-r--r--netsvcs/clients/Naming/Dump_Restore/Makefile.am33
-rw-r--r--netsvcs/clients/Naming/Dump_Restore/Makefile.bor8
-rw-r--r--netsvcs/clients/Naming/Dump_Restore/README66
-rw-r--r--netsvcs/clients/Naming/Dump_Restore/createfile.cpp34
-rw-r--r--netsvcs/clients/Naming/Dump_Restore/main.cpp26
-rw-r--r--netsvcs/clients/Naming/Makefile25
-rw-r--r--netsvcs/clients/Naming/Makefile.am19
-rw-r--r--netsvcs/clients/Naming/Makefile.bor3
-rw-r--r--netsvcs/clients/README8
-rw-r--r--netsvcs/clients/Tokens/Makefile26
-rw-r--r--netsvcs/clients/Tokens/Makefile.am22
-rw-r--r--netsvcs/clients/Tokens/Makefile.bor3
-rw-r--r--netsvcs/clients/Tokens/README34
-rw-r--r--netsvcs/clients/Tokens/collection/Makefile206
-rw-r--r--netsvcs/clients/Tokens/collection/Makefile.am23
-rw-r--r--netsvcs/clients/Tokens/collection/Makefile.bor5
-rw-r--r--netsvcs/clients/Tokens/collection/README25
-rw-r--r--netsvcs/clients/Tokens/collection/collection.cpp211
-rw-r--r--netsvcs/clients/Tokens/collection/collection.dsp109
-rw-r--r--netsvcs/clients/Tokens/collection/collection.dsw29
-rw-r--r--netsvcs/clients/Tokens/collection/rw_locks.cpp174
-rw-r--r--netsvcs/clients/Tokens/deadlock/Makefile207
-rw-r--r--netsvcs/clients/Tokens/deadlock/Makefile.am24
-rw-r--r--netsvcs/clients/Tokens/deadlock/Makefile.bor5
-rw-r--r--netsvcs/clients/Tokens/deadlock/README98
-rw-r--r--netsvcs/clients/Tokens/deadlock/deadlock.dsp112
-rw-r--r--netsvcs/clients/Tokens/deadlock/deadlock.dsw29
-rw-r--r--netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp341
-rw-r--r--netsvcs/clients/Tokens/invariant/Makefile186
-rw-r--r--netsvcs/clients/Tokens/invariant/Makefile.am24
-rw-r--r--netsvcs/clients/Tokens/invariant/Makefile.bor5
-rw-r--r--netsvcs/clients/Tokens/invariant/README27
-rw-r--r--netsvcs/clients/Tokens/invariant/invariant.cpp197
-rw-r--r--netsvcs/clients/Tokens/invariant/invariant.dsp99
-rw-r--r--netsvcs/clients/Tokens/invariant/invariant.dsw29
-rw-r--r--netsvcs/clients/Tokens/manual/Makefile47
-rw-r--r--netsvcs/clients/Tokens/manual/Makefile.am28
-rw-r--r--netsvcs/clients/Tokens/manual/Makefile.bor5
-rw-r--r--netsvcs/clients/Tokens/manual/README67
-rw-r--r--netsvcs/clients/Tokens/manual/manual.cpp380
-rw-r--r--netsvcs/clients/Tokens/manual/manual.dsp97
-rw-r--r--netsvcs/clients/Tokens/manual/manual.dsw29
-rw-r--r--netsvcs/clients/Tokens/mutex/Makefile204
-rw-r--r--netsvcs/clients/Tokens/mutex/Makefile.am25
-rw-r--r--netsvcs/clients/Tokens/mutex/Makefile.bor5
-rw-r--r--netsvcs/clients/Tokens/mutex/README23
-rw-r--r--netsvcs/clients/Tokens/mutex/mutex.dsp97
-rw-r--r--netsvcs/clients/Tokens/mutex/mutex.dsw29
-rw-r--r--netsvcs/clients/Tokens/mutex/test_mutex.cpp143
-rw-r--r--netsvcs/clients/Tokens/rw_lock/Makefile205
-rw-r--r--netsvcs/clients/Tokens/rw_lock/Makefile.am24
-rw-r--r--netsvcs/clients/Tokens/rw_lock/Makefile.bor5
-rw-r--r--netsvcs/clients/Tokens/rw_lock/README40
-rw-r--r--netsvcs/clients/Tokens/rw_lock/rw_lock.dsp98
-rw-r--r--netsvcs/clients/Tokens/rw_lock/rw_lock.dsw29
-rw-r--r--netsvcs/clients/Tokens/rw_lock/rw_locks.cpp253
-rw-r--r--netsvcs/lib/Base_Optimizer.cpp29
-rw-r--r--netsvcs/lib/Base_Optimizer.h52
-rw-r--r--netsvcs/lib/Client_Logging_Handler.cpp554
-rw-r--r--netsvcs/lib/Client_Logging_Handler.h98
-rw-r--r--netsvcs/lib/Log_Message_Receiver.cpp180
-rw-r--r--netsvcs/lib/Log_Message_Receiver.h215
-rw-r--r--netsvcs/lib/Makefile1545
-rw-r--r--netsvcs/lib/Makefile.am57
-rw-r--r--netsvcs/lib/Makefile.bor21
-rw-r--r--netsvcs/lib/Name_Handler.cpp642
-rw-r--r--netsvcs/lib/Name_Handler.h205
-rw-r--r--netsvcs/lib/README267
-rw-r--r--netsvcs/lib/Server_Logging_Handler.cpp239
-rw-r--r--netsvcs/lib/Server_Logging_Handler.h95
-rw-r--r--netsvcs/lib/Server_Logging_Handler_T.cpp359
-rw-r--r--netsvcs/lib/Server_Logging_Handler_T.h202
-rw-r--r--netsvcs/lib/TS_Clerk_Handler.cpp637
-rw-r--r--netsvcs/lib/TS_Clerk_Handler.h245
-rw-r--r--netsvcs/lib/TS_Server_Handler.cpp283
-rw-r--r--netsvcs/lib/TS_Server_Handler.h110
-rw-r--r--netsvcs/lib/Token_Handler.cpp674
-rw-r--r--netsvcs/lib/Token_Handler.h263
-rw-r--r--netsvcs/lib/netsvcs.dsp153
-rw-r--r--netsvcs/lib/netsvcs.dsw29
-rw-r--r--netsvcs/netsvcs.dsw167
-rw-r--r--netsvcs/servers/Makefile282
-rw-r--r--netsvcs/servers/Makefile.am26
-rw-r--r--netsvcs/servers/Makefile.bor7
-rw-r--r--netsvcs/servers/README35
-rw-r--r--netsvcs/servers/main.cpp155
-rw-r--r--netsvcs/servers/servers.dsp104
-rw-r--r--netsvcs/servers/servers.dsw29
-rw-r--r--netsvcs/servers/svc.conf18
-rw-r--r--os-patches/linux-patches.html214
-rw-r--r--os-patches/lynxos-patches.html93
-rw-r--r--os-patches/vxworks-5.1.txt77
-rw-r--r--protocols/ace/RMCast/README57
-rw-r--r--protocols/ace/RMCast/RMCast_Export.h44
-rw-r--r--psosim/Makefile76
-rw-r--r--psosim/drv_conf.c80
-rw-r--r--rpc++/.dependencies131
-rw-r--r--rpc++/COPYING481
-rw-r--r--rpc++/Makefile55
-rw-r--r--rpc++/Proj.make68
-rw-r--r--rpc++/README18
-rw-r--r--rpc++/README.ORIG9
-rw-r--r--rpc++/StdHdrs/Makefile13
-rw-r--r--rpc++/StdHdrs/README3
-rw-r--r--rpc++/StdHdrs/rpc/auth.h172
-rw-r--r--rpc++/StdHdrs/rpc/c_types.h80
-rw-r--r--rpc++/StdHdrs/rpc/clnt.h348
-rw-r--r--rpc++/StdHdrs/rpc/pmap_clnt.h83
-rw-r--r--rpc++/StdHdrs/rpc/svc.h287
-rw-r--r--rpc++/StdHdrs/rpc/xdr.h276
-rw-r--r--rpc++/callback.cc39
-rw-r--r--rpc++/example/Makefile40
-rw-r--r--rpc++/example/calcsvc.cc31
-rw-r--r--rpc++/example/calcsvc.h35
-rw-r--r--rpc++/example/client.cc65
-rw-r--r--rpc++/example/server.cc113
-rw-r--r--rpc++/gcc-2.2.fix252
-rw-r--r--rpc++/request.cc166
-rw-r--r--rpc++/rpc++.cp13
-rw-r--r--rpc++/rpc++.fn63
-rw-r--r--rpc++/rpc++.ky0
-rw-r--r--rpc++/rpc++.pg0
-rw-r--r--rpc++/rpc++.texi1519
-rw-r--r--rpc++/rpc++.toc23
-rw-r--r--rpc++/rpc++.tp7
-rw-r--r--rpc++/rpc++.vr13
-rw-r--r--rpc++/rpc++/callback.h534
-rw-r--r--rpc++/rpc++/request.h122
-rw-r--r--rpc++/rpc++/service.h133
-rw-r--r--rpc++/rpc++/stub.h146
-rw-r--r--rpc++/rpc++/xdr++.h99
-rw-r--r--rpc++/service.cc317
-rw-r--r--rpc++/stub.cc208
-rw-r--r--rpc++/version.h5
-rw-r--r--rpc++/xdr++.cc76
-rw-r--r--tests/run_tests.lst90
-rw-r--r--websvcs/Makefile24
-rw-r--r--websvcs/README11
-rw-r--r--websvcs/lib/Makefile89
-rw-r--r--websvcs/lib/URL_Addr.cpp947
-rw-r--r--websvcs/lib/URL_Addr.h403
-rw-r--r--websvcs/lib/URL_Addr.i152
-rw-r--r--websvcs/lib/websvcs.dsp121
-rw-r--r--websvcs/lib/websvcs.dsw29
-rw-r--r--websvcs/lib/websvcs_export.h44
-rw-r--r--websvcs/tests/Makefile100
-rw-r--r--websvcs/tests/Test_URL_Addr.cpp217
-rw-r--r--websvcs/tests/Test_URL_Addr.dsp100
-rw-r--r--websvcs/tests/tests.dsw29
-rw-r--r--websvcs/websvcs.dsw41
2485 files changed, 4 insertions, 566288 deletions
diff --git a/ACE-INSTALL.html b/ACE-INSTALL.html
deleted file mode 100644
index 532e76a268b..00000000000
--- a/ACE-INSTALL.html
+++ /dev/null
@@ -1,2781 +0,0 @@
-<!-- $Id$ -->
-
-<HTML>
-<HEAD>
- <TITLE>Building and Installing ACE and Its Auxiliary Libraries and Services</TITLE>
- <link rev=made href="mailto:schmidt@uci.edu">
-</HEAD>
-
-<BODY text = "#000000"
- link = "#000fff"
- vlink = "#ff0f0f"
- bgcolor = "#ffffff">
-
-<HR>
-<H3>Building and Installing ACE and Its Auxiliary Libraries and Services</H3>
-
-<H4>Synopsis</H4>
-
-The file explains how to build and install ACE and its Network
-Services on the various OS platforms and compilers that it has been
-ported to. Please consult the <A HREF="ChangeLog">ChangeLog</A> file
-to see whether any recent changes to the release will affect your
-code. You also might want to read the ACE <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE.FAQ.html">FAQ</A> before
-building and installing ACE. In addition, you might want to check out
-our <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-development4.ps.gz">development
-process</A>, as well. And as you start working with ACE, you might
-want to consult the <a href="docs/ACE-FMM.html">ACE Frequently Made
-Mistakes page</a>. If you encounter any problems or would like to request
-an enhancement, then use our
-<a href="docs/usage-bugzilla.html">bug tracking system</a> to submit a
-report.<P>
-
-
-<H4>Document Index</H4>
-
-<UL>
- <LI><A HREF="#platforms">Supported Platforms and C++ Compilers</A>
- <LI><A HREF="#installnotes">Installation Notes</A>
- <LI><A HREF="#g++">Compiling ACE with GNU g++</A>
- <LI><A HREF="#egcs">Compiling ACE with egcs</A>
- <LI><A HREF="#aceinstall">Building and Installing ACE</A>
- <LI><A HREF="#svcsinstall">Building and Installing ACE Network Services</A>
- <LI><A HREF="#sslinstall">Building and Installing The ACE_SSL Library</A>
- <LI><A HREF="#minimum_build">What Do I Need to Build for TAO?</A>
- <LI><A HREF="#resource_requirements">System Resource Requirements</A>
- <LI><A HREF="#advanced">Advanced Topics</A>
-</UL>
-
-
-<P><HR><P>
-<H3><A NAME="platforms">Platforms, C++ Compilers, and Support</A></H3>
-
-<p>ACE has been ported to a large number of <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-versions-i.html">platforms</A>,
-using many different compilers over the years. The <A
-HREF="http://www.cs.wustl.edu/~doc/">DOC group</A>, <A
-HREF="http://www.riverace.com/">Riverace</A>, <A
-HREF="http://www.theaceorb.com">OCI</A>, and members of the ACE user
-community have all contributed ports to make ACE the successful and
-far-reaching toolkit it is today. Any UNIX/POSIX/Win32 variation is a
-potential target platform for ACE. If you have <A
-HREF="docs/ACE-porting.html">porting questions</A> or have a problem
-compiling the ACE source distribution, please contact one of the
-commercial support companies, or send a copy of the
-PROBLEM-REPORT-FORM to either the <A HREF="news:comp.soft-sys.ace">ACE
-Newsgroup</A> or the <A HREF="mailto:ace-users@cs.wustl.edu">ACE
-mailing list</A> and someone will try to help you fix the problems.
-
-<p>The responsibility for maintaining ACE across this wide range of
-platforms is divided among a few different groups: the DOC group,
-Riverace, OCI, and the ACE user community itself.
-The table below summarizes each group's role
-and where you can get more detailed information.
-For information on TAO's platform coverage and support, please also see
-<A HREF="TAO/TAO-INSTALL.html">TAO's install document</A>.<P>
-
-<table width="75%" border=1>
-<caption><b>Groups Involved in ACE Development and Support<BR></B></caption>
-<thead>
- <tr valign=top>
- <th>Group
- <th>Platforms
- <th>For more information
- </tr>
-<tbody>
- <tr>
- <th>DOC Group</th>
- <td><A HREF="http://ringil.ece.uci.edu/scoreboard/">Tested</A> and used
- daily by the DOC group:
- Solaris 2.5, 2.6, 7 and 8 (many compilers excluding SunC++ 4.x)<BR>
- Windows NT 4.0 and Windows 2000 (MSVC++ 5.x, 6.x, and 7.x, and
- Borland C++ Builder 5.0)<BR>
- Linux/Intel (many compilers), Linux/IA64 (GCC).
- </td>
- <td>DOC sites at <A HREF="http://doc.ece.uci.edu/">UCI</A> and
- <A HREF="http://tao.doc.wustl.edu/">Washington University</A>
- </td>
- </tr>
- <tr>
- <th>Riverace</th>
- <td>Offers support services for many platforms including those
- above, HP-UX, and AIX.
- </td>
- <td>Riverace's <A HREF="http://www.riverace.com/">web site</A></td>
- </tr>
- <tr>
- <th>OCI</th>
- <td>Maintains ACE on certain platforms required for their TAO
- software and service offerings.
- </td>
- <td>OCI's <A HREF="http://www.theaceorb.com">web site</A> and
- the TAO <A HREF="TAO/TAO-INSTALL.html">install document</A></td>
- </tr>
- <tr>
- <th>ACE user community</th>
- <td>Responsible for continued maintenance and testing of platforms
- to which ACE has been ported, but aren't supported by the
- above groups. These include
- Windows 95/98/CE using Borland C++ Builder 4.0 and later, IBM VisualAge C++,
- and GNU g++ on MinGW;
- Digital UNIX (Compaq Tru64) 4.0 and 5.0;
- IRIX 6.x; UnixWare 7.1.0; SunOS 4.x and Solaris with SunC++ 4.x;
- Linux on Alpha and PPC; OpenMVS;
- Tandem; SCO; FreeBSD; NetBSD
- Chorus, OS/9, PharLap TNT Embedded ToolSuite 9.1,
- QNX RTP and Neutrino 2.0; VxWorks; LynxOS; RTEMS
- </td>
- <td></td>
- </tr>
-</table><P>
-
-<p>Although the DOC group has provided outstanding, world-class
-support for ACE over the years, ACE's success has greatly increased
-the amount of effort required to keep up with its maintenance, answer
-users' questions, and give design guidance. Riverace offers
-world-class commercial services to support ACE users and OCI offers
-similar services for TAO, allowing the DOC group's primary focus to
-shift back to their main goal: <EM>research</EM>. The DOC group is
-fundamentally focused on (and <A
-HREF="http://www.cs.wustl.edu/~schmidt/resume-grants.html">funded
-by</A>) advanced R&D projects. The group continues to be intimately
-involved in ACE+TAO development and maintenance, but with revised
-priorities for maintenance. The <A
-HREF="docs/ACE-bug-process.html">bug fixing policies</A> followed by
-the DOC group are designed to strike a balance between their many <A
-HREF="http://www.cs.wustl.edu/~schmidt/research.html">research
-projects</A> and their commitment to the ACE+TAO <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-users.html">user
-community</A>. Naturally, we will be happy to accept well-tested
-patches from the ACE+TAO user community for any platforms that aren't
-supported by the DOC group, Riverace, or OCI. <P>
-
-<P><HR><P>
-<H3><A NAME="installnotes">Installation Notes</A></H3>
-
-<UL>
- <LI><B>Win32 (Windows NT, Windows 2000 and Windows '9x/ME) </B><P>
-
- All of ACE has been ported to the Win32 API (which includes
- Windows NT, Windows 2000, and Windows '95/98/ME). The entire
- release now compiles using the Microsoft Visual C++ 5.0, and
- 6.0 compilers. ACE can be built as both a static (LIB) and
- dynamic (DLL) library, using the Win32 installation process
- described below.<P>
-
- Please see the <A HREF="#Non-static Object Manager">Non-static
- ACE_Object_Manager</A> discussion below.<p>
-
- We've also added some support for
- <A HREF="#mingw">GNU g++ with Mingw</A>,
- Borland C++ Builder 4.0/5.0 and IBM's VisualAge C++ compiler.
- Since we don't have these compilers we rely on the ACE+TAO users
- community to maintain these ports. Therefore, please send email
- to the ACE mailing list if you run into problems. <P>
-
- <li><b>Windows CE</b><p>
-
- Take a look at (<a href="docs/CE-status.txt">CE-status.txt</a>) for
- up-to-date information about ACE on CE. <P>
-
- <LI><B> SunOS 4.x, Solaris 2.x, 7 and 8 using Sun
- Sun C++ 4.2 and 5.x, Forte 6, Centerline C++ 2.x, GNU gcc 2.7.x
- and later (except 2.8.x), and KAI C++ 3.3/3.4.</B><P>
-
- All the source code and tests should build and run without any
- problems on Solaris 2.5.1, 2.6, 7, and 8 platforms using the Sun C++
- compilers. For Sun C++ 4.2, we recomend using this patch version
- at a minimum:<p> <pre>
- CC: WorkShop Compilers 4.2 21 Apr 1997 C++ 4.2 patch 104631-02
- </pre><p>
-
- There are likely to be build problems with older versions or
- different patchlevels of Sun C++.<p>
-
- Thanks to Susan Liebeskind &lt;shl@janis.gtri.gatech.edu&gt;
- for providing the following useful information:<p>
-
- The home page for Sun technical patches is <a
- href="http://access1.sun.com">http://access1.sun.com</a>.
- Searching for 104631 will bring you to a page allowing you to
- access the latest version of the C++ 4.2 patches.<p>
-
- By default, ACE uses both the Solaris and POSIX thread
- interface. To disable use of the Solaris thread interface, add
- <code>-D_POSIX_PTHREAD_SEMANTICS</code> to the
- <code>CFLAGS</code> in your
- <code>ACE_wrappers/include/makeinclude/platform_macros.GNU</code>.
- See the Solaris Intro (3) man page for more information.<p>
-
- To disable ACE thread support completely, build with the
- <code>threads=0</code> make flag. See the <a
- href="#flags">Makefile Flags</a> section below for more
- information on make flags.<p>
-
- If you use g++ or egcs on Solaris 7, you might need to rebuild
- it on a SunOS 5.7 (Solaris 7) host. Some versions of g++ and
- egcs provide replacements for system header files. The
- replacements on older SunOS systems are not compatible with the
- SunOS 5.7 system headers. See <a
- href="http://www.cs.wustl.edu/~levine/Hints.html">David Levine's
- Hints page</a> for instructions on how to build egcs on a SunOS
- 5.7 host, using a g++ or egcs that was built on an older SunOS
- host. <P>
-
- The Sun/C++ 5.0 compilers has several problems with templates,
- we have worked around most of them but this is not a compiler
- that we test very often. Hopefully as new patches for the
- compiler show up we will be able to make that our compiler of
- choice on Solaris.</p>
-
- <LI><B>Sun OS 4.1.x using Centerline C++ 2.x, Sun CC 3.x, and Lucid
- Energize 3.2.</B><P>
-
- Note that shared libraries do not interact very well with
- Centerline C++ or Sun C++ on SunOS 4.1.x. This is due to odd
- behavior of the SunOS 4.1.x linker, which (1) does not properly
- call constructors of global objects within shared libraries and
- (2) does not call the init() and fini() functions in shared
- libraries, even though the manual claims that these functions
- are called! In particular, this means that the tests in the
- directory $ACE_ROOT/tests/Service_Configurator/IPC-tests/server/
- will not work for statically linked services.<P>
-
- Some versions of SunOS 4.1.x do not contain the
- /usr/lib/libnsl.a library. This library seems to be optional
- since System V Transport Layer Interface (TLI) support is
- optional on SunOS 4.1.x (in contrast, it's the "preferred"
- transport interface on Solaris).<P>
-
- The best work-around for now is probably to either add a dummy
- libnsl.a in /lib (which may not be feasible) or simply comment
- out the line:<P>
-
- LIBS += -lnsl<P>
-
- in the
- <CODE>$ACE_ROOT/include/makeinclude/wrapper_macros.GNU</CODE>
- file. Naturally, any programs, e.g., the TLI_SAP tests, that
- use the TLI wrappers aren't going to work!<P>
-
- Note that on SunOS 4.x you may get warnings from the linker that
- "archive has no table of contents; add one using ranlib(1)" for
- certain libraries, e.g., libASX.a, libThreads.a, and libSPIPE.a.
- This occurs since SunOS 4.x does not support these features.<P>
-
- <LI><B>AIX</B><P>
-
- The ACE port to AIX assumes that the user has installed the AIX
- patch containing the dl*() APIs. To use these APIs, IBM has
- created a separate product (free to AIX licensees) called shared
- library hookable symbols (or slhs/6000). If you don't have this
- patch, the sv* commands for compiling and linking will not be
- present on the system.<P>
-
- If you are using AIX 4.2.1 or later, this patch isn't needed;
- the dynamic library APIs are included in the base operating
- system.<p>
-
- However, another patch may be needed. Thanks to
- Susan Liebeskind &lt;shl@janis.gtri.gatech.edu&gt; for submitting
- the following useful information:<p>
-
- When building on AIX 4.2.1, using the xlC V3.1 compilers, you may
- get the following error when building the ACE shared library.<p>
- <pre>
-makeC++SharedLib_r -p 0 -o libACE.so -bI:/lib/pse.exp -L/usr/local/src/ACE_wra
-ppers/ace -L./ -ltli_r -ldl libACE.a
-ld: 0711-317 ERROR: Undefined symbol: .__CurrentException
-ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
-make: *** [libACE.so] Error 8
- </pre>
-
- To fix this error, you need a patch to the supporting xlC
- related libraries. To obtain this patch, go to the <a
- href="http://service.software.ibm.com/support/rs6000">IBM public
- patch website</a>, and retrieve the patch PTF U453697, or its
- successor, for xlC.<p>
-
- You may wish to retrieve this patch with the fixdist tool, also
- available at the website. Installation of this patch will
- install patched versions of the C++ libraries, which correctly
- define this symbol.<p>
-
- To build ACE on AIX with Visual Age C++ 5 in incremental mode
- (i.e. with the IDE), use the
- $ACE_ROOT/ace/ace.icc configuration along with the appropriate
- version-specific config file (e.g. config-aix-4.3.x.h). All of the
- version-specific config files set the version number macros and
- include the general config-aix-4.x.h file which has support for all
- of the OS versions and compilers supported on AIX. Using the general
- config file is the recommended practice for egcs, C Set++, IBM
- C/C++, and Visual Age C++ 5 batch mode compilers.<p>
-
- Visual Age C++ 4 has also been supported on ACE 5.1, but is no longer
- supported. If you are still using this compiler, please use the
- $ACE_ROOT/ace/ace-dll.icc configuration file, along with the
- config-aix-4.3.x.h ACE config file. Beware, however, that it hasn't
- been tested.
-
- BTW, here's a technique from Rob Jordan &lt<A
- HREF="mailto:jordan@hursley.ibm.com">jordan@hursley.ibm.com</A>&gt
- that can reduce the size of the ACE libraries by about one
- third, and can also be applied to applications. It works by
- optimising the sharing of template functions, which are created
- in an &quot;unusual&quot; way under AIX. It also speeds up
- compilation.<P>
-
- Here's how to optimise the ACE library generation:<P>
-
- Look at the <A
- HREF="ace/Makefile">Makefile</a>
- in <CODE>$ACE_ROOT/ace</CODE>. Create a file called
- <CODE>ACE_All_Src.cpp</CODE>, and add a line to #include
- each of the source files
- listed under <CODE>FILES=</CODE> in the Makefile. Create a
- file called <CODE>ACE_All_Tmp.h</CODE>
- and add a line to #include each of the .h files listed under
- <CODE>TEMPLATE_FILES=</CODE> in the Makefile. Now update the Makefile so that
- <CODE>FILES=ACE_All_Src</CODE> and <CODE>TEMPLATE_FILES=ACE_All_Tmp</CODE>.<P>
-
- <LI><B><a name="Linux">Linux</a></B><P>
-
- ACE has been ported to <A
- HREF="http://www.cs.wustl.edu/~cleeland/ace/">Linux</A> on
- Intel, Alpha, and PowerPC platforms. If you use a RedHat 5.x
- distribution, it's best to use RedHat 5.1 or later. ACE works
- without any modifications on RedHat 5.1 and later, and on
- Debian 2.1 on both Intel and Alpha. Make <A
- HREF="#unix">symbolic links</A> to the
- <code>include/makeinclude/platform_linux.GNU</code>
- and <code>ace/config-linux.h</code> as your
- platform_macros.GNU and config.h files, respectively. The same
- files can be used on PowerPC, with LinuxPPC
- 1999 (R5), with glibc 2.1.1.<p>
-
- If you run out of memory, it's easy to add virtual memory on
- Linux. Please see the <code>mkswap</code> man page. You'll
- need around 256 to 300 Mb of virtual memory (RAM + swap) to
- compile all of ACE+TAO. The <a href="#resource_requirements">System
- Resource Requirements section</a> has some suggestions on how
- to reduce the memory requirement.<p>
-
- The glibc 2.0 dynamic loader isn't thread safe. If you want to
- use the Invocation API you'll have to set
- <code>LD_BIND_NOW=true</code>. If you want to use
- <code>dlopen</code>, you should use <code>RTLD_NOW</code>. The
- dynamic loader in glibc 2.1 is thread safe.<p>
-
- The ACE <code>Tokens_Test</code> hangs with egcs 1.1b on Linux.
- It runs properly when built with egcs 1.0.2 and later. All other
- ACE tests run properly with these egcs 1.0.2 and later.<p>
-
- <strong>NOTE:</strong> The TAO NameService uses IP multicasting
- by default, though it is not required. IP multicast on Linux
- requires the following:<p>
-
- <ul>
- <li>Enable IP multicast in the Linux kernel. It is enabled in
- the default RedHat 5.1 kernel. In older distributions, you
- can enable it by rebuilding your kernel with CONFIG_IP_MULTICAST
- enabled.<p>
- <li>Enable IP multicast in ACE. It is enabled by default in
- <code>ace/config-linux-common.h</code>. If you don't use
- IP multicast, add <code>#define ACE_HAS_IP_MULTICAST 0</code>
- to your <code>ace/config.h</code> before building ACE.<p>
- <li>There must be a network interface that is up and supports
- multicast. If you have linuxconf, it's easiest to use that
- to add a network route for multicast (224.0.0.0) on one of
- your network interfaces, such as <code>eth0</code>. If
- you don't have or use linuxconf, try adding a multicast
- routing table entry using something like this:<p>
- <pre>
- <code># route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0</code>
- </pre><p>
- </ul>
-
- With RedHat 5.0, you'll need some <a
- href="os-patches/linux-patches.html">updates and possibly some
- patches</a> to get ACE working with LinuxThreads. Some of the
- patches are necessary with Alpha CPUs and with some older
- kernels. egcs 1.0.1 can also be used, but it may need patches,
- described there, as well.<p>
-
- <strong>NOTE:</strong> Be careful when installing egcs on RedHat
- systems. If you don't remove your old gcc and libg++ RPMs, it's
- best to install egcs in a different directory than
- <code>/usr</code>, such as <code>/usr/local</code>, and set your
- <code>PATH</code> and <code>LD_LIBRARY_PATH</code>
- accordingly.<p>
-
- Some of the ACE tests fail on older, pre-glibc2 Linux platforms,
- such as RedHat 4.2. The problems are with threads and
- thread-specific storage.<p>
-
- <LI><B>SCO UNIX</B><P>
-
- ACE has been ported to SCO UNIX using the GNU g++ 2.7.2
- compiler. Arturo Montes &lt<A
- HREF="mailto:mitosys@colomsat.net.co">mitosys@colomsat.net.co</A>&gt
- maintains this code. In addition, he also maintains a version
- of <A HREF="FSU-threads.tar.gz">FSU pthreads</A>.<P>
-
- <LI><B>SGI IRIX 5.x and 6.x</B><P>
-
- ACE used to build fine using the SGI C++ and GNU GCC compilers
- for IRIX 5.x. It has been ported to IRIX 6.x using the SGI
- MipsPro 7.1 C++ compiler; be aware that in IRIX 6.2 there is a
- number of patches that have to be installed and exceptions
- appear to fail with the O32 ABI. Please check the config files
- for the details.<P>
-
- <LI><B> HP-UX 9.x, 10.x, and 11.00 </B> <P>
-
- HP sells 2 C++ compilers for HP-UX 10.x and 11.00. If you are
- using 9.x, there's only the first one.
-
- <UL>
- <LI>HP C++ - this is CC, HP's cfront-based compiler. As of ACE 4.4, it
- can be used, but some people have problems with templates.
- Caveat emptor. It's been said that you should run version 10.24,
- if not later.
-
- <LI>HP aC++ - this is aCC, HP's new, ANSI compiler. It handles ACE
- very well. You should use version A.01.27 (or higher) on
- HP-UX 10.x and version A.03.27 (or higher) on HP-UX 11.00.
-
- </UL>
- <P>
- On HP-UX 10.20, a patch is required to compile ACE. The exact patch
- number depends on the platform - check with HP's patch database to
- locate the exact patch or its successor. For 9000 700 series machines
- it is PHKL_8693 (s700 10.20 sys/time.h fix for select(2)/C++ defects).<p>
-
- Also see further notes on this platform at Riverace's
- <A HREF="http://www.riverace.com/FAQ/faq.html">Frequently Asked
- Questions</A> page.
- <P>
-
- <LI><B>OSF/1 3.2 and 4.0 (a.k.a. Digital UNIX 4.0)</B> <P>
-
- The Digital UNIX C++ 5.4 through 5.7 compilers have problems
- with ACE's templates. They compile the lib and most of the test
- programs, although they warn about template usage. Most tests
- run, some dump core. If you use a 5.x version of cxx, be sure
- to set the CXX_VER variable to CXX_5, either on your make
- command line or in an environment variable. The ACE Makefiles
- assume by default that the cxx version is 6.x or later.<P>
-
- CXX 6.0 and 6.1 are much improved over 5.x: V6.0-020, V6.1-025,
- and later build all of ACE cleanly. All of the tests in
- ACE_wrappers/tests run successfully with CXX 6.0 and CXX 6.1.
- Please note that problems have been reported with some versions
- of CXX 6.1, notably versions -021 and earlier. It's best to use
- V6.1-022 or later.<p>
-
- NOTE: if you use Digital UNIX 4.0f or later, you <strong>must</strong>
- use <code>ace/config-tru64.h</code> instead of
- <code>ace/config-osf1-4.0.h</code>. <code>ace/config-tru64.h</code>
- can be used for all supported compilers on any version of
- Digital UNIX after and include 4.0. And, with 4.0f and later when
- using Digital CXX, you <strong>must</strong> use
- <code>include/makeinclude/platform_tru64_cxx.GNU</code> instead of
- <code>include/makeinclude/platform_osf1_4.0.GNU</code>.
-
- GNU gcc 2.7.2.1 compiles without problems. All tests run
- (besides minor problems). Thanks to Thilo Kielmann &lt<A
- HREF="mailto:kielmann@informatik.uni-siegen.de">kielmann@informatik.uni-siegen.de</A>&gt
- and David Trumble &lt<A
- HREF="mailto:trumble@cvg.enet.dec.com">trumble@cvg.enet.dec.com</A>&gt
- for help with this port.<P>
-
- <li><b> FreeBSD </b><p>
-
- FreeBSD is a fast evolving platform. However, it has the
- advantage of having standard releases. At this moment, ACE is
- only perodically tested against -stable (3.1R) and we rely a lot
- on FreeBSD users' feedbacks. <p>
-
- Notice that on older FreeBSD, <code>ld.so</code> only looks for
- so libraries with <b>version number</b> appended. ACE makefiles
- create symlinks for most shared libraries if
- <code>versioned_so</code> is defined to 1 in
- <code>$ACE_ROOT/ace</code> with appropriate ACE version.
- However, this does not work for libACE.so itself so you have to
- create it manually (If you figure out how to do this, please let
- us know) like this: <p>
-
- <code>ln -sf $ACE_ROOT/ace/libACE.so $ACE_ROOT/ace/libACE.so.4.5</code><p>
-
- On newer FreeBSD (3.0 or later,) this is no longer necessary.<p>
-
- <li><b>NetBSD</b><p>
-
- Like older FreeBSD, NetBSD's <code>ld.so</code> also requires
- versioned .so files.<p>
-
- <LI><B> UnixWare </B> <P>
-
- Steve Huston &lt<A
- HREF="mailto:shuston@riverace.com">shuston@riverace.com</A>&gt
- has ported ACE to work with UnixWare 2.01 and g++.<P>
-
- Ganesh Pai &lt<A
- HREF="mailto:gpai@voicetek.com">gpai@voicetek.com</A>&gt
- subsequently did the port for version 2.1.2, also with g++.<P>
-
- Phil Mesnier &lt<A HREF="mailto:mesnier_p@ociweb.com">
- mesnier_p@ociweb.com</A>&gt updated the port to support
- UnixWare 7.1.0, with help from Michael Meissnitzer
- &lt<A HREF="mailto:michael.meissnitzer@siemens.at">
- michael.meissnitzer@siemens.at</A>&gt, Christian Klepp &lt
- <A HREF="mailto:christian.klepp@siemens.at">christian.klepp@siemens.at
- </A>&gt and Engelbert Staller &lt<A HREF="engelbert.staller@siemens.at">
- engelbert.staller@siemens.at</A>&gt
- Building ACE (and TAO) on Unixware 7.1.0 requires a very specific
- g++ build environment. In particular, you must build and install
- g++ 2.95.2, along with binutils 2.9.1. The order (and the declaration
- of configuration) is extremely important. Using the gcc compiler
- provided on the Skunkware CD on a pentium system, here is the recipe
- I used to build a working environment (as root):<br>
-<pre>
- mkdir /usr/local/newgnu
-&lt ftp and untar binutils-2.9.1 &gt
-&lt ftp and untar gcc-2.95.2 &gt
- mkdir -p build/binutils build/gcc
- cd build/binutils
- ../../binutils-2.9.1/configure i386-sco-sysv4
- gmake # takes a long time
- gmake install # this creates /usr/local/i386-sco-sysv4/...
- mkdir /usr/local/i486-pc-sysv5/bin
- cd /usr/local/i486-pc-sysv5/bin
- for a in /usr/local/i386-sco-sysv4/bin/*; do ln -s $a .; done
- #links all the newly installed utilities
-
- cd /usr/local/newgnu/build/gcc
- ../../gcc-2.95.2/configure --with-gnu-as --with-gnu-ld
- gmake bootstrap # takes a long time
- gmake install
- mkdir /usr/local/i586-UnixWare7.1.0-sysv5/bin
- for a in /usr/local/i386-sco-sysv4/bin/*; do ln -s $a .; done
-</pre>
- Once done, ACE and TAO will successfully build and link.<p>
-
- <LI><B>Chorus</B> <P>
-
- Wei Chiang &lt<A
- HREF="mailto:chiang@tele.nokia.fi">chiang@tele.nokia.fi</A>&gt
- has ported ACE to Chorus 3.1 using GNU g++ 2.7.2.<P>
-
- <LI><B><a name="LynxOS">LynxOS</a></B><P>
-
- ACE builds and runs properly on LynxOS 3.0.0 for Intel and
- PowerPC targets.
- ACE's Naming_Test fails; it is disabled in <a
- href="tests/run_tests.sh"><code>ACE_wrappers/tests/run_tests.sh</code></a>.<p>
-
- If you run out of memory on LynxOS, these might help:<p>
-
- <ul>
- <li>Increase the limits in <code>/etc/starttab</code>,
- then logout and login again. We use these limits:
- <pre>
-# Data, stack, and core file limits (in Kbytes)
-240000
-80000
-102400</pre><p>
- <li>Enable or expand virtual memory, with something like:
- <pre>
-# mkcontig /swap 320
-# prio 17 vmstart /swap</pre>
- See the <code>mkcontig</code> and <code>vmstart</code>
- man pages, and <code>/bin/rc</code>.<p>
- </ul>
-
- Please see the comments in the
- <a href="include/makeinclude/platform_lynxos.GNU">ACE
- platform_lynxos.GNU file</a> for information on, and an
- example of, tailoring for your particular platform.<p>
-
- We actively maintain ACE on LynxOS 3.0.0. It should build and
- run on LynxOS 2.5, but we no longer test on that OS version.<p>
-
- NOTE: if you want to use IP multicast on LynxOS, be sure to add
- this line to your <code>/net/rc.network</code>, and reboot:<p>
- <pre><code>
- /bin/route add "224.0.0.0" "$my_name"
- </code></pre>
-
- Dave Mayerhoefer &lt<A
- HREF="mailto:davem@lynx.com">davem@lynx.com</A>&gt has ported
- ACE to LynxOS 2.5 using GNU g++ 2.7.2. However, you may need to
- apply some <A HREF="os-patches/lynxos-patches.html">patches to
- LynxOS</A> to get ACE working.<P>
-
- <LI><STRONG>VxWorks</STRONG><P>
-
- <A HREF="http://www.cs.wustl.edu/~levine/">David Levine</A>
- &lt<A
- HREF="mailto:levine@cs.wustl.edu">levine@cs.wustl.edu</A>&gt has
- ported ACE to VxWorks 5.2/5.3/5.3.1/5.4 with the GreenHills
- 1.8.8/1.8.9 and g++ compilers that are distributed with
- VxWorks/Tornado. An anonymous contributor has also
- provided <a href="os-patches/vxworks-5.1.txt">notes for using
- ACE with VxWorks 5.1.</a><P>
-
- Tornado II/VxWorks 5.4 support IP multicast. That is not enabled
- by default in ACE for VxWorks, because it probably depends on
- kernel configuration. To enable it, add
- <code>#define ACE_HAS_IP_MULTICAST</code> to your
- <code>ace/config.h</code>.<p>
-
- In addition to all of the other benefits of ACE, it helps work
- around some deficiencies with VxWorks 5.3/5.3.1. Some of these
- apply only with g++, at least thru version 2.7.2. That is the
- version that is shipped with Tornado 1.0.1/ VxWorks 5.3.1. The
- problems are:<P>
-
- <OL>
- <LI>The program entry point cannot be called &quot;main&quot; with g++. ACE
- renames it to &quot;ace_main&quot; (configurable via ACE_MAIN) on VxWorks.
- While this may seem trivial, it is important with legacy code.
- ACE itself ran into this problem.<P>
-
- <LI>argc/argv isn't used with VxWorks entry points. ACE provides
- a wrapper function that transparently converts shell command
- line arguments to argc/argv form. See <A HREF="#spa">below</a>
- for details.<P>
-
- <LI>Unsigned long long support is not available with the g++ that
- is distributed with Tornado 1.0.1/VxWorks 5.3.1, or with
- GreenHills 1.8.8. The documentation says that it is supported
- by g++, but try using it :-) Wind River technical support verified
- that it doesn't work. ACE provides its own 64-bit unsigned integer
- type, ACE_hrtime_t, so you don't even have to worry about this
- problem if you use it.<P>
-
- <LI>There a gory problem with munch that is severely aggravated
- by the presence of a static in the Wind River/g++ iostream.h.
- ACE hides this and provides an easy-to-use workaround in the
- very unlikely situation where it becomes a problem.
- Please see ace/config-vxworks5.2-g++.h for more information.<P>
- </OL>
-
- In addition, as noted <A HREF="#g++">below</A> following the
- discussion of the g++ -fno-implicit-templates option,
- -fno-implicit-templates is broken for x86 targets. And, -O2
- is not supported on some targets.<P>
-
- Please note that ACE uses one of the spare fields in the Wind
- River task control block, spare4, for thread- specific storage.
- This field is specified in only one place, in ace/OS.i, so it
- can easily be changed to one of the other spare fields, if
- necessary.<P>
-
- Versions of ACE from 4.3.3 and beyond destroy dynamically
- allocated singletons in the ACE library. But, they may not
- properly destroy some static objects. If you have trouble
- running a program multiple times, it may be necessary to unload
- the module, using unld, and reload it between runs.
- Alternatively, you could try calling <code>cplusDtors</code> and
- then <code>cplusCtors</code> between runs.<P>
-
- <LI><B>MVS OpenEdition</B> <P>
-
- All of ACE has been ported to OpenEdition by Chuck Gehr &lt<A
- HREF="mailto:gehr@sweng.stortek.com">gehr@sweng.stortek.com</A>&gt.
- The ACE library, all the tests and most of the examples and apps
- build clean. There are still some problems that need to be
- ironed out:<P>
-
- MVS does not support the dynamic linking dl...() calls that the
- Service Configurator uses to dynamically link services at run
- time. As a result, all the examples and apps that use a svc.conf
- file (for dynamically configuring service objects) do not work,
- however, most of these apps can be built/run statically. Also,
- the Svc_Conf_l.cpp and Svc_Conf_y.cpp files are generated using
- flex and yacc on a ascii (not ebcdic) machine and as a result
- they don't work very well with ebcdic svc.conf files. We should
- be able to regenerate these files on MVS but MVS doesn't have
- flex. This is something that needs to be done.<P>
-
- Some of the tests do not execute properly. This is a minority
- and over time the goal is to get to 100%.<P>
-
- The make scheme for some of the apps still doesn't work
- perfectly on MVS. This is mainly due to the way shared
- libraries are handled on MVS. See <A HREF="#mvs">additional
- build tips for MVS</A> for more on this.<P>
-
- <li><strong>QNX Neutrino</strong><p>
-
- ACE has been ported to <a
- href="http://www.qnx.com/products/os/neutrino.html">QNX Neutrino
- 2.0</a>. We cross-compile for Neutrino on a QNX4 host using g++
- 2.8.1, using the <a
- href="ace/config-qnx-neutrino.h">ace/config-qnx-neutrino.h</a>
- and <a
- href="include/makeinclude/platform_qnx_neutrino.GNU">include/makeinclude/platform_qnx_neutrino.GNU</a>
- configuration files. Many of the ACE tests succeed, though some
- fail. As the porting effort progresses, we hope to eliminate
- these failures. If you know of fixes, please send them to
- us.<p>
-
-<li><strong>QNX RTP</strong><p>
-
- ACE has been ported to <a
- href="http://get.qnx.com/">QNX RTP
- </a>. We compile for QNX RTP using the GCC compiler shipped with the
- distribution, using the <a
- href="ace/config-qnx-rtp.h">ace/config-qnx-neutrino.h</a>
- and <a
- href="include/makeinclude/platform_qnx_neutrino.GNU">include/makeinclude/platform_qnx_neutrino.GNU</a>
- configuration files.
- Many of the ACE tests succeed, though some
- fail. As the porting effort progresses, we hope to eliminate
- these failures. If you know of fixes, please send them to
- us.<p>
-
- <strong><blink><font color="#ff0000">WARNING:</font></blink></strong>
- Under the current version of QNX RTP ACE fails if compiled with
- debug=1 (i.e. "-g" option in GCC). <p>
-
-
- <li><strong>PharLap TNT Embedded ToolSuite (ETS)</strong><p>
-
- ACE has been ported to <a
- href="http://www.pharlap.com">PharLap's</a> TNT Embedded
- ToolSuite (ETS) version 9.1. The port is being tested with
- Microsoft Visual C++ 6.<p> To build for PharLap, use the
- ace/config-pharlap.h configuration file, and the instructions
- for building on Win32. Building the ACE library is the same as
- for regular Win32 platforms, except you choose one of the PharLap
- ETS configurations to build within Visual C++. Only static
- library configurations are available for PharLap at this time.
- For an example of how to build
- binaries, see the tests directory. The tests_pharlap_msvc.lnk
- file is a LinkLoc commands file that the ACE tests are built
- with. It is likely that local sites may need to adjust this file
- for their target environment. <p> If you have any fixes or
- suggestions for improving this port, please contact <a
- href="mailto:shuston@riverace.com">Steve Huston</a>. <P>
-
-<li><strong>Mac OS X (10.0.x, not public beta)</strong><p>
-
- The Mac OS X port of ACE is very much a work in progress. Some
- of the examples build and run, some of them don't yet. Reactors
- seem to work, while Proactors don't (Mac OS X doesn't use aio_*
- calls for async i/o, it uses the OS X Event Queue instead, and
- the ACE port doesn't take this into account yet). Also, on OS X,
- you must set the DYLD_LIBRARY_PATH environment variable to
- $ACE_ROOT/ace i.e. setenv DYLD_LIBRARY_PATH $ACE_ROOT/ace, or else
- none of the examples will be able to find libACE.dylib.
-
- John Zorko &lt;<A
-href="mailto:j.zorko@att.net">j.zorko@att.net</A>&gt; began this port for
-a work project, and basically only ported enough of ACE to be able to
- do what we needed to with it on Mac OS X. If you would like
- to continue the port, please contact John since he as
- interested in seeing ACE run, lean, mean and fully supported,
- on Mac OS X.
-</UL>
-
-
-<HR>
-<H4><A NAME="g++">Compiling ACE with GNU g++</A></H4>
-
-If you use the GNU GCC g++ compiler please note the following:
-
-<UL>
- <li>If you have problems building shared libraries with egcs 1.1 or 1.1.1
- on SunOS 2.5 or 2.5.1 that look like this:
- <pre>
- /usr/ccs/lib/libgen.a(reg_compile.o): In function `_get_vars_storage':
- reg_compile.o(.text+0x30): relocation truncated to fit: R_SPARC_GOT13 free
- </pre>
- the suggested workaround is to comment out the <code>ACE_HAS_REGEX</code>
- <code>#define</code> in <code>ace/config-sunos5.5.h</code>.
- Or better, create an <code>ace/config.h</code> that looks like:
- <pre>
- #ifndef ACE_CONFIG_H
- // ACE_CONFIG_H is defined by the following #included header.
-
- #include "ace/config-sunos5.5.h"
-
- #undef ACE_HAS_REGEX
-
- #endif /* ACE_CONFIG_H */
- </pre>
- We don't know what causes the link problem, though the
- workaround solves it.<p>
-
- <li>With g++ 2.8.0, an internal compiler error is raised when
- trying to compile ACE_Map_Manager instantiations. One workaround
- is to disable optimization. The easiest way to do that is:
-
- <pre><code>% make optimize=0</code></pre>
-
- Or, you can edit your include/makeinclude/platform_sunos5_g++.GNU,
- and comment out the <code>OCFLAGS</code> line.<P>
-
- <li>ACE/TAO don't seem to build well with g++ 2.8.1. We routinely
- use egcs 1.1.1 (on Solaris) and 1.1.2, and recommend those versions.<p>
-
- <LI>Earlier (prior to 2.7.2) versions of g++ may not compile
- certain parts of ACE correctly due to compiler bugs. Please
- upgrade to g++ 2.7.2 or greater.<P>
-
- <LI>Make sure to update your gcc <code>config.status</code>
- file. This file is produced when installing gcc; it specifies
- where to install the binary files that gcc uses. For example,
- it specifies whether to use Solaris's <code>/usr/ccs/bin</code>
- binary utils or GNU binary utils. The
- <code>config.status</code> file is an output of the gcc
- <code>configure</code> script; it is preferable to use the
- <code>--prefix</code> option to <code>configure</code> instead
- of hacking its output.<P>
-
- <LI>If you are getting weird link errors when building libACE
- on Solaris you are probably using the GNU linker. Try using the
- Sun linker (/usr/ccs/bin/ld) instead. Note that gcc first looks
- for the GNU linker if it is installed along with gcc. The only
- way to not use the GNU linker is to delete it from the
- installation or to build your own compiler with no linker. Be
- aware that you still need the libraries and includes of gcc.<P>
-
- NOTE: if you do use the GNU linker, you might need to change
- the <code>-G</code> flag to <code>-shared</code> in
- the <code>SOFLAGS</code> definition in your
- <code>include/makeinclude/platform_macros.GNU</code>.<p>
-
- <LI>Don't get too confused about contradictory statements in
- the gcc documentation. It was written by different
- people...<P>
-
- <LI>Make sure that the linker invoked by gcc produces code
- that initializes static objects. Please see gcc's
- documentation for using <CODE>collect2</CODE>.<P>
-
- <LI>By default, gcc (thru version 2.7.2, at least) uses
- implicit template instantiation. Besides wasting space, this
- breaks the use of ACE_Singleton: instead of one singleton
- instance, there could be one instance per object (.o) file that
- "sees" the template. Therefore, we have overridden this default
- in ACE by enabling the -fno-implicit-templates option to CCFLAGS
- in all include/makeinclude/platform_*.GNU files that set CXX to
- g++.<P>
-
- <LI>The disadvantage of this approach is that you must
- add template specializations for all templates that your
- application uses to your own code. (The ACE libraries are
- self-contained: you don't need to add the templates that they
- use internally.) Examples of template specializations occur in
- quite a few ACE .cpp files; see the end of <A
- HREF="apps/Gateway/Gateway/Connection_Handler.cpp">apps/Gateway/Gateway/Connection_Handler.cpp</A>
- for one example. An easy way to figure out what template
- instantiations are need is to try to build your executable and
- pipe the output through c++filt. The linker will report the
- missing instantiations as undefined symbols. Iteration may be
- necessary, if the template instantiations themselves reference
- other templates.<P>
-
- <LI>Alternatively, you could use the <A NAME="repo">-frepo</A>
-option available with
- recent egcs versions (2.90 and later, I think) instead of
- -fno-implicit-templates. (Patches for earlier g++ versions
- might be available from
- <a href="ftp://ftp.cygnus.com/pub/g++/">Cygnus</a>.)
- ACE readily supports this option for
- application code: to enable it just add <code>repo=1</code> to
- your <code>make</code> invocation, or to your
- <code>include/makeinclude/platform_macros.GNU</code>.<p>
-
- The size of the ACE library is typically reduced by about
- 25 percent with repo=1, compared to the default with
- -fno-implicit-templates. This savings results from not
- instantiating unused classes, and from not instantiating
- unused member functions of those template classes which are
- instantiated.<p>
-
- However, repo=1 requires care if your application creates libraries,
- in order to avoid multiple instantiations. We avoid the problem
- in ACE (and TAO) by including all of the ACE object files into
- other ACE (and TAO) libraries. Please see the g++ FAQ and gcc
- manual for more information on the -frepo option.<p>
-
- Furthermore, it appears that g++ may have problems instantiating
- all templates properly with -frepo. We have worked around these
- problems (by using explicit instantiations even with ACE_HAS_GNU_REPO)
- with egcs 1.1.2. A quick try with g++ 2.95 showed more problems,
- so we don't support repo=1 with that g++ version, yet.<p>
-
- <li>The implementation of templates for g++ version 2.8
- eliminates the restriction against static data members in
- template classes.<p>
-
- <li>A final alternative is to
- remove the <code>-fno-implicit-templates</code> option from the
- CCFLAGS macro in your include/makeinclude/platform_macros.GNU,
- and thereby use the default g++ implicit template
- instantiation.<P>
-
- <LI>Thanks to Thilo Kielmann &lt<A
- HREF="mailto:kielmann@informatik.uni-siegen.de">kielmann@informatik.uni-siegen.de</A>&gt;
- for reporting the problem with ACE_Singleton on g++, and for
- helping to find and implement these solutions.<P>
-
- <LI>On VxWorks only, g++ (thru version 2.7.2, distributed
- with Tornado 1.0.1/VxWorks 5.3.1), for x86 targets,
- -fno-implicit-templates is broken. In addition, -O2
- is not supported on some targets.<P>
-</UL>
-
-
-<P><HR>
-<H4><A NAME="egcs">Compiling ACE with egcs</A></H4>
-<ul>
- <li>ACE transparently supports egcs, for the most part. Please see
- <a href="#g++">Compiling ACE with g++</a> in this document. And,
- please use the appropriate g++ config and platform files for the OS on
- which you will use egcs.<p>
-
- <li><strong><blink><font color="#ff0000">WARNING:</font></blink></strong>
- The default behavior of the ACE Makefiles is to add
- <code>-fno-exceptions</code> to egcs (and g++ starting with
- version 2.8.0) invocations. This disables exception handling
- support. On Solaris/sparc and Linux/alpha, it results in a 25
- percent reduction in the size of libACE.so. To enable exception
- handling, add <code>exceptions=1</code> to your
- <code>make</code> command line invocation, or to your
- <code>$ACE_ROOT/include/makeinclude/platform_macros.GNU</code>.<p>
-
- <li>egcs may have trouble linking some executables, such as the ACE
- IOStream_Test, if its static libraries are used. Though
- <a href="mailto:trose@bridgewatersys.com">Tim Rose</a> reports
- that egcs 1.1.1 static libraries work just fine on Solaris 2.6
- with patches: 105181-12, 105568-13, 105210-19, 105591-05, 105395-04,
- and 105490-07.<p>
-
- If you need or want to use egcs' shared libraries, build it
- with the <code>--enable-shared</code> egcs config option. The
- <code>--enable-shared</code> option is <strong>not</strong> an
- egcs run-time option. Build egcs in a way similar to the
- following example:
- <pre><code>
- $ ./configure --enable-shared
- $ make bootstrap
- </code></pre>
- Be sure to set your <code>LD_LIBRARY_PATH</code> environment
- variable, if necessary, to pick up those shared libraries.<p>
-
- <li>On DEC Alpha, egcs through version 1.03a, at least, may fail
- to build ACE if debugging (-g) is enabled. The fix is to
- edit the egcs gcc/mips-file.c file, at line 976, and change
- <code>PAGE_SIZE</code> to 8192. Then rebuild ACE. Thanks to
- <a href="mailto:gpai@voicetek.com">Ganesh Pai</a> for this
- information.<p>
-
- <li>Sun OS 5.6 using egcs1.1.2/egcs 2.95 with
- ld:Software Generation Utilities - Solaris/ELF (3.0)
- as: WorkShop Compilers 4.X dev 18 Sep 1996<p>
-
- You could come across weird external symbol linker errors.
-
- Example:
-
- <pre>
- -I/opt/ace/SunOS-1.0 -DACE_HAS_EXCEPTIONS -o Cached_Accept_Conn_Test
- .obj/Cached_Accept_Conn_Test.o -L/opt/ace/SunOS-1.0/ace -L./ -lACE
- -lsocket -ldl -lgen -lnsl -lposix4 -lthread
- ld: warning: relocation error: R_SPARC_32: file
- .obj/Cached_Accept_Conn_Test.o: symbol
- __t21ACE_Cache_Map_Manager7Zt30ACE_Refcounted_Hash_Recyclable1Z13
- ACE_INET_AddrZP18Client_Svc_HandlerZt23ACE_Hash_Map_Manager_Ex5Zt
- 30ACE_Refcounted_Hash_Recyclable1Z13ACE_INET_AddrZt8ACE_Pair2ZP18
- Client_Svc_HandlerZUiZt8ACE_Hash1Zt30...</pre>
-
- external symbolic relocation against non-allocatable section .stab;
- cannot be processed at runtime: relocation ignored<P>
-
- Solution:<P>
-
- Install the "binutils" package from GNU (www.gnu.org); specifically,
- "as" and "ld".<P>
-
- Conclusion:<P>
-
- Perfect build stats:<P>
-
- OS:
- Kernel version: SunOS 5.6 Generic 105181-03 December 1999.<P>
-
- compiler:
- gcc version egcs-2.91.66 19990314 (egcs-1.1.2 release)<P>
-
- loader:
- GNU ld version 2.9.1 (with BFD 2.9.1)
- Supported emulations:
- elf32_sparc<P>
-
- assembler:
- GNU assembler version 2.9.1 (sparc-sun-solaris2.6), using
- BFD version 2.9.1<P>
-
- Thanks to <a href="mailto:johng@keck.hawii.edu">John Gathright</a> for providing this
- information.<P>
-
- <li>Compiling using the <code>-fsquangle</code> option helps to shorten long
- symbol names and is a boon to linkers and assemblers which cant
- grok long names.
-
- Thanks to <a href="mailto:ssweeney@sanders.com">Skye Sweeney</a> for trying it
- out and <a href="mailto:othman@cs.wustl.edu">Ossama Othman</a> for discovering the
- option with egcs.<p>
-
- Heres a note on how to go about this (contributed by Skye
- Sweeney):<p>
-
- 1) -fsquangle the name is a combination of squash and mangle!<p>
-
- 2) -fsquangle compresses the mangled names.<p>
-
- 3) All libraries must be compiles with the option. You cannot simply
- compile modules that have large names with it. This includes system
- libraries and vendor libraries like RogueWave.<p>
-
- 4) The "simple" solution is not to add the option to each makefile,
- but rather recompile the compiler to have the option on by default.
- This is done by editing the file `gcc/cp/decl2.c', setting
- `flag_do_squangling = 1', then rebuilding the compiler and
- libraries.<p>
-
- 5) After many false starts and linking snafus, I can recompile my
- ACE/TAO/RogueWave/Lex/Yacc 100 Meg application.<p>
-
-</ul>
-
-
-<P><HR>
-<H3><A NAME="aceinstall">Building and Installing ACE</A></H3>
-
-The following explains how to build ACE on <A HREF="#unix">UNIX</A>
-and <A HREF="#win32">Win32</A>.
-
-<h4>General Rules</h4>
-<UL>
- <li><p>Many features in ACE can be modified by defining some macros in
- <code>$ACE_ROOT/ace/config.h</code>. These macros should
- <em><b>always</b></em> appear <em><b>before</b></em> including
- your platform specific config file.</p>
- <li><p>However, if you want to undefine/redefine macros defined in the
- platform specific config file, these <code>#undef</code> should
- come <em><b>after</b></em> the config file.</p>
- <LI> If you're planning to build ACE on multiple platforms, you may
- want to consider <A HREF="#cloning">cloning the source tree</A>
- before you start. <P>
-</UL>
-
-<hr align=left width="50%">
-<H4><A NAME="unix">Building and Installing ACE on UNIX</A></H4>
-
-Building and installing ACE on UNIX is relatively simple (the <A
-HREF="#win32">process</A> for Win32 is different). Here's what you
-need to do:<P>
-
-<OL>
- <LI>Install <A HREF="ftp://prep.ai.mit.edu/pub/gnu/make/">GNU make</A>
- 3.7 or greater on your system (available via
- anonymous ftp from prep.ai.mit.edu in the pub/gnu/make/ directory).
- You <EM>must</EM> use GNU make or ACE won't compile.<P>
-
- <LI>Add an environment variable called ACE_ROOT that contains the
- name of the root of the directory where you keep the ACE wrapper
- source tree. The ACE recursive Makefile scheme needs this information.
- There are several ways to set the ACE_ROOT variable. For
- instance, in my .login file I have the following entry:<P>
-
- <pre><code>
- % setenv ACE_ROOT /home/cs/faculty/schmidt/ACE_wrappers
- </code></pre><P>
-
- However, if you're building a number of versions of ACE, e.g., for
- different OS platforms or for different releases of ACE, you might use
- the following approach:
-
- <pre><code>
- % setenv ACE_ROOT $cwd
- </code></pre>
-
- <LI>Edit the $ACE_ROOT/ace/OS.h file to update things like default
- hostname and port numbers you'd like the programs in the
- $ACE_ROOT/{apps,tests} directories to use by default. Note,
- however that you can normally skip this step because the
- defaults are typically fine for most systems. <P>
-
- <LI>Create (via <code>ln -s</CODE> or <CODE>cp</CODE>) a
- <code>$ACE_ROOT/ace/config.h</code>
- file that contains the appropriate platform/compiler-specific
- header configurations, e.g.,
-<PRE><CODE>
-% ln -s config-sunos5-sunc++-4.x.h config.h
-</CODE></PRE>
- This file
- contains the #defines that are used throughout ACE to indicate
- which features your system supports (see the
- <code>$ACE_ROOT/ace/OS.h</code> file for many examples of how
- the ACE build configuration is affected by these macro
- settings). Make sure you settings are placed
- <strong>before</strong> the inclusion of the platform-specific
- header file.<P>
-
- There are config files for most versions of UNIX. If there
- isn't a version of this file that matches your
- platform/compiler, you'll need to make one. Please send me
- email if you get it working so I can add it to the master ACE
- release.<P>
-
- <LI>Create (via <code>ln -s</CODE> or <CODE>cp</CODE>) a
- $ACE_ROOT/include/makeinclude/platform_macros.GNU file
- that contains the appropriate platform/compiler-specific
- Makefile configurations, e.g.,
-<PRE><CODE>
-% ln -s platform_sunos5_sunc++.GNU platform_macros.GNU
-</CODE></PRE>
- This file
- contains the compiler and Makefile directives that are
- platform/compiler-specific<P>
-
- <LI>Note that because ACE builds shared libraries, you'll need to set
- LD_LIBRARY_PATH to whereever you put the binary version of the
- ACE library. For example, you probably want to do something
- like the following<P>
-
- <pre><code>
- % setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
- </code></pre><P>
-
- <LI>When all this is done, hopefully all you'll need to do is type:<P>
-
- <pre><code>
- % make
- </code></pre><P>
-
- at the root of the ACE source tree. This will build the ACE
- library, tests, the examples, and the sample applications.
- Building the entire ACE release can take a long time and consume
- lots of disk space, however. Therefore, you might consider
- cd'ing into the <A HREF="ace">$ACE_ROOT/ace/</a> directory and
- running <CODE>make</CODE> there to build just the ACE library.
- As a sanity check, you might also want to build and run the
- automated <A HREF="tests/README">&quot;one-button&quot; tests</A> in <A
- HREF="tests/">$ACE_ROOT/tests/</a>. Finally, if you're also
- planning on building <A
- HREF="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>, you
- should build the <A
- HREF="http://www.cs.wustl.edu/~schmidt/gperf.ps.gz">gperf</A>
- perfect hash function generator application in <A
- HREF="apps/gperf">$ACE_ROOT/apps/gperf/</A>.<P>
-
- <LI>If you need to regenerate the Svc_Conf_y.cpp file, you'll need to
- get <A HREF="http://www.cs.wustl.edu/~schmidt/byacc.tar.gz">Berkeley
- YACC</A>. However, you should rarely, if ever, need to do this.<P>
-
-</OL>
-
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="win32">Building and Installing ACE on Win32</A></H4>
-
-Below are instructions for building ACE with <A
-HREF="#borland">Borland C++Builder</A>, <A HREF="#msvc">Microsoft
-Visual C++</A> and <A HREF="#mingw">Mingw</A>. <P>
-
-First, if you are upgrading from an older release, clean up everything
-and rebuild from scratch to ensure that everything is rebuilt
-correctly. You might have to manually go through the ACE directories
-and delete all *.obj, *.dll, *.lib, *.ilk, *.pdb, *.idb, *.ncb, *.opt,
-and *.exp files in order to start over from scratch (the Clean command
-in MSVC may not do this). <P>
-
-ACE contains project files for Microsoft Visual C++ 5.0 or later
-(*.dsw) and IBM's VisualAge C++ compiler (*.icc). There are also
-Makefile.bor files to compile ACE, the ACE one-button tests, and TAO
-with Borland C++ Builder. <P>
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="borland">Building and Installing ACE on Win32 with Borland
-C++Builder</A></H4>
-
-If you are building for a machine without a network card, you may want
-to check <A HREF="#win32nonic">here</A> first. <P>
-
-<OL>
- <LI>Uncompress the ACE distribution into a directory, where it will
-create an
- ACE_wrappers directory containing the source. The ACE_wrappers
- directory will be referred to as ACE_ROOT in the following steps -- so
- ACE_ROOT\ace would be C:\ACE_wrappers\ace if you uncompressed into the
- root directory.<BR>
- <BR>
- <LI>Create a file called <code>config.h</code> in the ACE_ROOT\ace
- directory that contains: <BR>
- <BR>
- <CODE>#include "ace/config-win32.h"</CODE><BR>
- <BR>
- If you are building for Windows NT or Windows 2K then you can start
- without any more changes. If you are building on Windows 9x/Me,
- then you should add the line <BR>
- <BR>
- <CODE>#define ACE_HAS_WINNT4 0</CODE><BR>
- <BR>
- before the #include statement in ACE_ROOT\ace\config.h and it
- will turn off some WinNT/Win2K-specific code in ACE.<BR>
- <BR>
- <LI>Open a Command Prompt (DOS Box).<BR>
- <BR>
- <LI>Set the ACE_ROOT environment variable to point to the ACE_wrappers
- directory. For example:<BR>
- <BR>
- <CODE>set ACE_ROOT=C:\ACE_wrappers</CODE><BR>
- <BR>
- <LI>Change to the ACE_ROOT\ace directory.<BR>
- <BR>
- <LI>Build release DLLs for ACE by going:<BR>
- <BR>
- <CODE>make -f Makefile.bor</CODE><BR>
- <BR>
- <LI>You can build debug DLLs for ACE by setting the DEBUG environment
-variable
- before you run make:<BR>
- <BR>
- <CODE>set DEBUG=1<BR>
- make -f Makefile.bor</CODE><BR>
- <BR>
- <LI>Optionally install the ACE header files, libraries and executables
-for use
- in your applications. Here we are installing them into C:\ACETAO: <BR>
- <BR>
- <CODE>make -f Makefile.bor -DINSTALL_DIR=C:\ACETAO install</CODE><BR>
- <BR>
-</OL>
-
-These instructions do not cover all possible build configurations. Please
-see <A
-HREF="http://www.tenermerx.com/tao_bcb/index.html">http://www.tenermerx.com/tao_bcb/index.html</A>
-for more detailed information on building and using ACE+TAO with Borland C++
-Builder. <P>
-
-If you are using C++Builder 4, then the libraries built using the above
-instructions are intended for use with generic console or windows applications
-and they link against the corresponding C++ runtime library. VCL applications
-created using BCB4's RAD environment must link against the VCL-compatible (ie
-pascal-compatible) runtime library. To tell the difference between these
-libraries the VCL-compatible ones have a 'p' in the suffix (i.e., 'p' for
-pascal). To build VCL compatible libraries try
-<BLOCKQUOTE><PRE><CODE>set PASCAL=1
-make -f Makefile.bor
-</CODE></PRE></BLOCKQUOTE> <P>
-
-The Borland C++ Builder 4.0/5.0 port has been done by <A
-HREF="mailto:jody@atdesk.com">Jody Hagins</A> and <A
-HREF="mailto:chris@kohlhoff.com">Christopher Kohlhoff</A>. <P>
-
-<B>ACE TESTS</B><P>
-
-The tests are located in ACE_ROOT\tests. You build the tests using the
-Makefile.bor file, that is:<P>
-<BLOCKQUOTE><CODE>
-make -f Makefile.bor
-</CODE></BLOCKQUOTE><P>
-
-Once you build all the tests, you can run a perl script:<P>
-<BLOCKQUOTE><CODE>run_test.pl -ExeSubDir
-Dynamic\Release</CODE></BLOCKQUOTE><P> or the the batch file:<P>
-<BLOCKQUOTE><CODE>run_tests.bat bor</CODE></BLOCKQUOTE><P> in the
-<code>tests</code> directory to try all the tests. You need to make
-sure the ACE bin directory (in this case ACE_ROOT\bin\Dynamic\Release)
-is on the path before you try to run the tests.<p>
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="msvc">Building and Installing ACE on Win32 with
-Microsoft Visual C++</A></H4>
-
-<EM>Note concerning MSVC 5.0 and Service Pack 3:</EM> There has been
-confusion regarding MSVC 5 and its Service Pack 3. Some ACE users
-have, in the past, had problems with SP3 that were not present in SP2.
-Thanks to the diligent efforts of <A
-HREF="mailto:fultonb@pcnet1.ascs.aro.allied.com">Bill Fulton</A>, the
-mystery appears to be solved. The key? (Oh, this is a good one...)
-It would appear that there are actually multiple versions of SP3 in
-existence. The earlier ones have the bug, while later ones have it
-fixed. The service pack downloadable from Microsoft's web site as of
-June 16, 1998 works fine. The CD containing SP3, if it has part
-number X03-50158 on the disc (the part number on the jacket is
-probably different), also works fine.
-
-Note, however, that regardless of the version of SP3, there are some
-STL bugs in SP3 which you should get corrected. Please see <A
-HREF="http://www.dinkumware.com/vc_fixes.html">http://www.dinkumware.com/vc_fixes.html</A>
-for details. Thank you to <A HREF="mailto:ben@jetpen.com">Ben Eng</A>
-for the pointer to the STL fixes.<P>
-
-Right now there is a SP4 (and hopefully only one of them) which fixes a
-deadlock problem in the STL. <P>
-
-We no longer actively support MSVC 4.x or earlier. ACE might work with
-these compilers but probably not without a bit of effort. <P>
-
-
-<OL>
- <LI>Uncompress the ACE distribution into a directory, where it will create a
- ACE_wrappers directory containing the distribution. The ACE_wrappers
- directory will be referred to as ACE_ROOT in the following steps -- so
- ACE_ROOT\ace would be C:\ACE_wrappers\ace if you uncompressed into the
- root directory.<BR>
- <BR>
- <LI>Create a file called <code>config.h</code> in the ACE_ROOT\ace
- directory that contains: <BR>
- <BR>
- <CODE>#include "ace/config-win32.h"</CODE><BR>
- <BR>
- <LI>Now load up the project file for ACE (ACE_ROOT\ace\ace.dsw). <BR>
- <BR>
- <LI>Each project will contain several different configurations. These
- are a mixture of Debug/Release, MFC/Non-MFC, and Static/Dynamic
- library versions.
- Make sure you are building the one you'll use (for example, the
- debug tests need the debug version of ACE, and so on). All these
- different configurations are provided for your convenience. You
- can either adopt the scheme to build your applications with
- different configurations, or use <code>ace/config.h</code> to
- tweak with the default settings on NT.<BR>
- <STRONG>Note:</STRONG> If you
- use the dynamic libraries, make sure you include ACE_ROOT\bin
- in your PATH whenever you run programs that uses ACE. Otherwise
- you may experience problems finding ace.dll or aced.dll.<BR>
- <BR>
- <LI>If you are building for Windows NT or Windows 2K then you can start building
- without anymore changes. If you are building on Windows 9x/Me,
- then you should add the line <BR>
- <BR>
- <CODE>#define ACE_HAS_WINNT4 0</CODE><BR>
- <BR>
- before the #include statement in ACE_ROOT\ace\config.h and it
- will turn off some WinNT/Win2K-specific code in ACE.<BR>
- <BR>
- <li>If you want to use the standard C++ headers (iostream, cstdio, ...
- as defined by the C++ Standard Draft 2) that comes with MSVC,
- then add the line: <BR>
- <BR>
- <CODE>#define ACE_HAS_STANDARD_CPP_LIBRARY 1</CODE><BR>
- <BR>
- before the #include statement in ACE_ROOT\ace\config.h.<BR>
- <br>
- <li>To use ACE with MFC libraries, also add the following to
- your <code>config.h</code> file. Notice that if you want to
- spawn a new thread with CWinThread, make sure you spawn the
- thread with THR_USE_AFX flag set.<br>
- <br>
- <code>#define ACE_HAS_MFC 1</code><br>
- <br>
- By default, all of the ACE projects use the DLL versions of the
- MSVC run-time libraries. You can still choose use the static (LIB)
- versions of ACE libraries regardless of run-time libraries. The
- reason we chose to link only the dynamic run-time library is that
- almost every NT box has these library installed and to save disk
- space. If you prefer to link MFC as a static library into ACE, you
- can do this by defining <code>ACE_USES_STATIC_MFC</code> in your
- <code>config.h</code> file. However, if you would like to link
- everything (including the MSVC run-time libraries) statically,
- you'll need to modify the project files in ACE yourself.<p>
- <li>Static version of ACE libraries are build with
- <code>ACE_AS_STATIC_LIBS</code><br> defined. This macro should
- also be used in application projects that link to static ACE
- libraries<BR>
- <BR>
- Optionally you can also add the line <BR>
- <BR>
- <CODE>#define ACE_NO_INLINE</CODE><BR>
- <BR>
- before the #include statement in ACE_ROOT\ace\config.h to disable
- inline function and reduce the size of static libraries (and your
- executables.)<BR>
- <BR>
- <li>ACE DLL and LIB naming scheme:<br>
- <br>
- We use the following rules to name the DLL and LIB files in ACE
- when using MSVC.<br>
- <br>
- &quot;Library/DLL name&quot; + (Is static library ? &quot;s&quot; :
- &quot;&quot;) + (Is Debugging enable ? &quot;d&quot; : &quot;&quot;)
- + {&quot;.dll&quot;|&quot;.lib&quot;}<br>
- <br>
-</Ol>
-
-<P>More information for ACE/TAO on MSVC can be found
-<A HREF="docs/msvc_notes.txt">here</A>. The doxygen version of this
-document is available under Related Topics in the ACE Library.</P>
-
-<B>ACE TESTS</B><P>
-
-The tests are located in ACE_ROOT\tests. There is also a workspace in
-that directory to build all the tests (tests.dsw)<P>
-
-Once you build all the tests (Batch Build works well for this), you
-can run perl script <code>run_test.pl</code> or the the batch file <a
-href="tests/run_tests.bat"><code>run_tests.bat</code></a> in the
-<code>tests</code> directory to try all the tests.<p>
-
-<A NAME="win32nonic">
-<B> BUILDING ACE ON A WIN32 MACHINE THAT LACKS A NETWORK CARD </B><P>
-
-You may want to run ACE on a non-networked machine. To do so, you must
-install TCP/IP and configure it to ignore the absence of a network
-card. This is one method:<P>
-
-<OL>
- <LI>Run Control Panel
- <LI>Choose Network from Control Panel
- <LI>Add Adapter: MS Loopback Adapter
- <LI>Configure MS Loopback Adapter with 802.3 (default)
- <LI>Add Protocol: TCP/IP Protocol
- <LI>Configure TCP/IP Protocol with a valid IP address and subnet mask.
- Leave everything else at the default settings.
- <LI>Add Service: Workstation
- <LI>Exit and Restart System
- <LI>Run Control Panel again
- <LI>Choose Services from Control Panel
- <LI>The following services are not necessary and may
- be set to Disabled Startup: <BR>
- Alerter<BR>
- Computer Browser<BR>
- Net logon<BR>
- Messanger<BR>
- <LI>Choose Network from Control Panel
- <LI>Confirm the following setup. This is all you need to run ACE:<BR>
- Installed Software:<BR>
- Computer Browser<BR>
- MS Loopback Adapter Driver<BR>
- TCP/IP Protocol<BR>
- Workstation<BR>
- Installed Adapter Cards:<BR>
- MS Loopback Adapter<P>
-</OL>
-
-<B>WIN32 ALPHA CONFIGURATIONS</B>
-
-<P>The project files for Visual C++ no longer contain any configurations
-targetted to Windows NT on the DEC Alpha. Below are the steps needed to
-recreate the Alpha configurations:</P>
-
-<OL>
- <LI>Load the project on the Alpha machine.
- <LI>Go to the Build menu and then select Configurations.
- <LI>Select the project that you want to convert.
- <LI>Click on Add.
- <LI>Select the x86 configuration to &quot;Copy settings from&quot;
- (either Debug or Release versions).
- <LI>Prepend &quot;Alpha &quot; to the beginning of the name under
- &quot;Configuration&quot;.
- <LI>Click OK.
- <LI>Close the &quot;Configurations&quot; window.
- <LI>Now go to the Project settings.
- <LI>For the General Settings, change the output directories to standard ACE
- output directories. Intermediate Directories are &quot;Debug&quot; and
- &quot;Release&quot; in most cases. The Output Directories are blank,
- except for Release versions of executables, in which it is also
- &quot;Release&quot;.
- <LI>For the C/C++ Settings, make sure that the Code Generation's runtime
- library is set to &quot;Multithreaded DLL&quot; or &quot;Debug Multithreaded
- DLL&quot;.
-</OL>
-
-<P><B>Note:</B> MSVC 6 has a bug where if a .dsp is converted from version 5 to 6 on
-x86, the Alpha configuration can get corrupted. This seems to happen when additional
-include or library directories are specified using backslashes instead of forward
-slashes. If this occurs, the easiest way to fix it is to recreate it.</P>
-
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="mingw">Building and Installing ACE on Win32 with Mingw</A></H4>
-
-<p>
-If you are building for a machine without a network card, you may want
-to check <A HREF="#win32nonic">here</A> first.
-
-<p>
-Building and installing ACE on <A HREF="http://www.mingw.org">Mingw</A>
-uses a mix of a <A HREF="#unix">UNIX</A> building process and
-<A HREF="#win32">Win32</A> configuration files.
-Also, as Mingw uses GNU g++, you may want to take
-a look at the <A HREF="#g++">Compiling ACE with GNU g++</A> section.
-
-<p>
-You will need the Mingw build tools and libraries, downloable from
-<A HREF="http://www.mingw.org"><TT>http://www.mingw.org</TT></A>.
-For our build we required the following packages:
-<A NAME="mingwpacks">
-<blockquote>
-<B><TT>gcc, binutils, ld, libbfd, mingw-runtime, w32api</TT></B>.
-</blockquote>
-
-<p>
-You will also need GNU make for Win32 and the set of UNIX tools that
-the ACE UNIX build system uses (this include but is not limited to
-<TT><B>sh, rm, cp</B></TT>).
-For this purpose you can grab the
-<A HREF="http://cygwin.com/setup.exe">cygwin</A>
-distribution from
-<A HREF="http://cygwin.com"><TT>http://cygwin.com</TT></A>.
-
-<p>
-Be careful, because cygwin includes it's own version of the compiler
-and build tools, you will need to have the Mingw build tools before
-the cygwin set on you PATH environment variable (more on this later).
-The steps we followed in the build are:
-
-<OL>
-
- <LI> Install cygwin (this can be easy downloading and running
- <A HREF="http://cygwin.com/setup.exe"><tt>setup.exe</tt></A>
- from the cygwin site).
- <BR><BR>
-
- <LI> Install the Mingw tools. Download all the needed packages (see
- <A HREF="#mingwpacks">above</A>) and
- unpack them on the same base directory, say c:/mingw32.
- If some of the packages are distributed on
- <TT>.tar.gz</TT> format, you may need to use
- the cygwin version of the <TT><B>tar</B></TT> utility.
- <BR><BR>
-
- <LI> Open a cygwin shell. Set your <TT>PATH</TT> environment variable so
- your Mingw's <TT>bin</TT> directory is first:
-
- <blockquote><code><pre>
- % export PATH=//c/mingw32/bin:$PATH
- </pre></code></blockquote>
-
- <p>
- Note cygwin uses ``<TT>/</TT>'' as directory separator,
- and ``<TT>//X</TT>'' as a notation for Win32 drive <TT>X</TT>.
- Note also that you <EM>can't</EM> use ``<TT>c:/mingw32/bin</TT>''
- because, for cygwin,
- ``<TT>:</TT>'' is path separator character, as in UNIX.
- <BR><BR>
-
- <LI> Add an <TT>ACE_ROOT</TT> environment variable pointing to the
- root of your ACE wrappers source tree:
-
- <blockquote><code><pre>
- % export ACE_ROOT=c:/work/mingw/ACE_wrappers
- </pre></code></blockquote>
-
- <p>
- Note here you <EM>can't</EM> use the ``<TT>//X</TT>'' cygwin
- notation as this is seen by Mingw's compiler and it doesn't
- support that (it <EM>does</EM> support ``<TT>/</TT>'' as directory
- separator however).
-
- <p>
- From now on, we will refer to the root directory of the ACE
- source tree as <TT>$ACE_ROOT</TT>.
- <BR><BR>
-
- <LI> Add a <TT>MINGW_BASE</TT> environment variable pointing to the
- root of your Mingw instalation. Following the above example,
- set:
-
- <blockquote><code><pre>
- % export MINGW_BASE=c:/mingw32
- </pre></code></blockquote>
-
- Again, use Mingw syntax and not cygwin syntax for the directory
- specification.
- <BR><BR>
-
- <LI> Create a file called <TT>config.h</TT> in the
- <TT>$ACE_ROOT/ace</TT> directory that contains:
-
- <blockquote><code><pre>
- #include "ace/config-win32.h"
- </pre></code></blockquote>
-
- If you are building for Windows 9X/Me (ie, <EM>not</EM> WinNT or
- Win2K), you will need to add:
-
- <blockquote><code><pre>
- #define ACE_HAS_WINNT4 0
- </pre></code></blockquote>
-
- before the <CODE>#include</CODE> line.
-
- Also, if you don't have Winsock 2 (check the <TT>SYSTEM</TT>
- and/or <TT>SYSTEM32</TT> subdirectories of the windows
- instalation directory for <TT><B>ws2_32.dll</B></TT>), you
- will need
-
- <blockquote><code><pre>
- #define ACE_HAS_WINSOCK2 0
- </pre></code></blockquote>
-
- before the <TT>#include</TT> line. On NT 4, Windows 98 and
- later versions, you surely have Winsock 2. In Windows 95,
- including OSR2, you may don't have it if it wasn't specially
- installed. You may download it from the <A
- HREF="http://www.microsoft.com">microsoft</A> site. This is
- recommended as much ACE functionality depends on Winsock 2, and
- ACE without Winsock 2 support is tested very infrequently.
- <BR><BR>
-
- <LI> Create a file called <TT>platform_macros.GNU</TT> in the
- <TT>$ACE_ROOT/include/makeinclude</TT> directory containing:
-
- <blockquote><code><pre>
- include $(ACE_ROOT)/include/makeinclude/platform_mingw32.GNU
- </pre></code></blockquote>
-
- In the above text, don't replace <TT>$(ACE_ROOT)</TT> with the
- actual directory, GNU make will take the value from the
- environment variable you defined previously.
-
- If you lack Winsock 2, add the line
-
- <blockquote><code><pre>
- winsock2 = 0
- </pre></code></blockquote>
-
- before the previous one.
- <BR><BR>
-
- <LI> On the cygwin shell, change to the $ACE_ROOT/ace directory and
- run make:
-
- <blockquote><code><pre>
- % cd $ACE_ROOT/ace
- % make
- </pre></code></blockquote>
-
- <p>
- This should create <TT>libACE.dll</TT> (the Win32 shared library) and
- <TT>libACE.dll.a</TT> (the Win32 import library for the DLL).
- Note the name for the ACE DLL on Mingw follows the Mingw
- convention, that resembles UNIX.
- <BR><BR>
-
- <p>
- If you want static libs also, you may run:
-
- <blockquote><code><pre>
- % make static_libs=1
- </pre></code></blockquote>
-
-
- <LI> <A NAME="mingwrunpath">
- The same rules for Win32 search of DLLs apply for Mingw. If you
- want to run some ACE programs from the cygwin shell, you may
- need to add the directory for <TT>libACE.dll</TT> to your PATH:
-
- <blockquote><code><pre>
- # export PATH=//c/work/mingw/ACE_wrappers/ace:$PATH
- </pre></code></blockquote>
-
-
-</OL>
-
-<B>ACE TESTS</B><P>
-
-The tests are located in <TT>$ACE_ROOT/tests</TT>.
-After building the library, you can change to that directory and run
-make:
-
- <blockquote><code><pre>
- % cd $ACE_ROOT/tests
- % make
- </pre></code></blockquote>
-
-<p>
-Once you build all the tests, you can run
-<code>run_tests.sh</code> in the
-<code>tests</code> directory to try all the tests:
-
- <blockquote><code><pre>
- % run_tests.sh
- </pre></code></blockquote>
-
-<p>
-If you are using ACE as a DLL, you will need to modify your PATH
-variable as explained <A HREF="#mingwrunpath">above</A>.
-
-<p>
-You may want to check <tt>$ACE_ROOT/tests/README</tt> for the status
-of the various tests on Mingw and the different Windows flavors.
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="vxworks">Building and Installing ACE on VxWorks</A></H4>
-For the most part, you should be able to follow the instructions above
-to build ACE and applications that use it. Start with the
-<a href="#unix">Unix instructions</a> above to build ACE and the
-applications that use it. Please see below for more information on
-<a href="#VxWorks/NT">building ACE on NT hosts for VxWorks targets</a>.<P>
-
-A few notes on VxWorks builds (thanks to
-<a href="mailto:Paul_von_Behren@stortek.com">Paul von Behren</a>
-for these notes):<p>
-<UL>
- <LI>VxWorks builds are done with a cross compiler, i.e., the compiles
- are done on a workstation creating object modules which are
- downloaded and loaded into the VxWorks target system.<p>
- <LI>C++ object modules must be post-processed by a VxWorks
- utility called &quot;munch.&quot; ACE includes a perl script called
- <A
- HREF="bin/ace_ld">$ACE_ROOT/bin/ace_ld</A>,
- which is called from the Makefiles, replacing
- the traditional <code>ld</code> step. You must have perl installed
- to use <code>ace_ld</code>. If perl is not on your path, you'll
- have to set <code>PERL_PATH</code> to the full path (including
- perl.exe), either in your
- <code>$(ACE_ROOT)/include/makeinclude/platform_macros.GNU</code>
- or in your environment.<P>
- <LI>Wind River provides GCC/G++ cross-compilers for the
- supported target platforms. The executables are named cc&lt;target&gt;
- and g++&lt;target&gt;; for example, ccppc and g++cpp for PowerPC
- targets.<p>
-</UL>
-
-You'll have to let ACE know the target type at compile time. There
-are several ways to do this; please see the
-<code>$ACE_ROOT/include/makeinclude/platform_vxworks5.x_g++.GNU</code>
-platform file for detailed information.<P>
-
-The VxWorks platform_vxworks*.GNU files are set up so that shared
-libraries are not built on VxWorks, by default. Only static
-libraries, with .a extension, are built. Therefore, it's not
-necessary to set the LD_LIBRARY_PATH environment variable on your host
-system when building for VxWorks targets. Please note, however, if
-you use TAO on VxWorks that you will need to set your LD_LIBRARY_PATH
-to find the TAO IDL compiler libraries (installed in the ace
-directory) on the host.<P>
-
-With g++, $ACE_ROOT/bin/ace_ld is used to munch object files and
-libraries to set up calls to static constructors and destructors.
-bin/ace_ld requires perl on the host platform.<P>
-
-These non-default VxWorks kernel configuration <code>#defines</code>
-are required with ACE:<P>
-
-<pre>
-#define INCLUDE_CPLUS /* include C++ support */
-#define INCLUDE_CPLUS_IOSTREAMS /* include iostreams classes */
-#define INCLUDE_POSIX_ALL /* include all available POSIX functions */
-</pre>
-
-For completeness, here are the non-default <code>#defines</code> that
-we used for VxWorks 5.3.1/g++ 2.7.2:
-
-<pre>
-#define INCLUDE_CPLUS /* include C++ support */
-#define INCLUDE_CPLUS_IOSTREAMS /* include iostreams classes */
-#define INCLUDE_CONFIGURATION_5_2 /* pre-tornado tools */
-#define INCLUDE_DEBUG /* pre-tornado debugging */
-#define INCLUDE_LOADER /* object module loading */
-#define INCLUDE_NET_SYM_TBL /* load symbol table from network */
-#define INCLUDE_SYM_TBL_SYNC /* synchronize host and target symbol tables */
-#define INCLUDE_NFS /* nfs package */
-#define INCLUDE_PING /* ping() utility */
-#define INCLUDE_POSIX_ALL /* include all available POSIX functions */
-#define INCLUDE_RDB /* remote debugging package */
-#define INCLUDE_RLOGIN /* remote login */
-#define INCLUDE_RPC /* rpc package */
-#define INCLUDE_SECURITY /* shell security for network access */
-#define INCLUDE_SHELL /* interactive c-expression interpreter */
-#define INCLUDE_SHOW_ROUTINES /* show routines for system facilities*/
-#define INCLUDE_SPY /* spyLib for task monitoring */
-#define INCLUDE_STARTUP_SCRIPT /* execute start-up script */
-#define INCLUDE_STAT_SYM_TBL /* create user-readable error status */
-#define INCLUDE_SYM_TBL /* symbol table package */
-#define INCLUDE_UNLOADER /* object module unloading */
-#define INCLUDE_WINDVIEW /* WindView command server */
-</pre>
-
-Also, automatic construction/destruction of static objects
-should be enabled.<p>
-
-If you use TAO, it's also a good idea to increase the
-<code>NUM_FILES</code> parameter from its default of 50 to,
-say, 1000.<p>
-
-Please note that those VxWorks kernel configuration parameters
-are set in the VxWorks configAll.h file. You must rebuild your
-VxWorks kernel after modifying that file.<p>
-
-If you're first getting started with ACE and/or VxWorks, I recommend
-just building the ACE library and tests first. (Some of the ACE
-examples, in System_V_IPC, don't build on VxWorks yet.) Then try
-running the tests. Please see $ACE_ROOT/tests/README for the latest
-status of the ACE tests on VxWorks.<P>
-
-Please note that the <code>main</code> entry point is renamed to
-<code>ace_main</code> (configurable via ACE_MAIN) on VxWorks with g++,
-to comply with its restriction against using <code>main</code>.
-In addition, ACE_HAS_NONSTATIC_OBJECT_MANAGER is enabled by default
-to cleanly support construction and destruction of static objects.
-Please see the <A HREF="#Non-static Object Manager">Non-static
-ACE_Object_Manager</A> discussion for the important implication
-of this feature.<p>
-
-ACE threads (VxWorks tasks) can be named, for example, by supplying a
-non-null argument to the Thread_Manager spawn routines. However,
-names beginning with <code>"==ace_t=="</code> are forbidden because
-that prefix is used internally by ACE.<p>
-
-You can spawn a new task to run <code>ace_main</code>, using either
-VxWorks <code>sp</code>, or ACE'S <A NAME="spa"><code>spa</code></A>.
-<code>spa</code> can be used from the VxWorks shell to pass arguments
-to <code>ace_main</code>. Its usage is:
-
-<pre><code>
-spa ace_main, "arg1" [, ...]
-</code></pre>
-
-All arguments must be quoted, even numbers.<p>
-
-The ACE <a href="tests/">tests</a> write their output files in a
-directory named <code>log/</code>, below the current
-(<code>tests</code>) directory. If you don't have NFS included in
-your VxWorks kernel, you can use these steps, provided by
-<a href="mailto:clarence_m_weaver@md.northgrum.com">Clarence M. Weaver</a>,
-to run the tests and capture their output:<p>
-<ol>
- <li>What I did was create a log directory on the boot NT host of my vxworks
- target.<p>
- <li>I copied all the test applications and the run_tests.vxworks script to
- the parent of the log directory.<p>
- <li>Using the target shell not the host shell, I "cd" to the directory
- containing the script and test programs.<p>
- <li>Invoked the script &lt; run_tests.vxworks from this target shell.<p>
-</ol>
-
-<a href="mailto:Kirk.Davies@pobox.com">Kirk Davies</a> provided this
-approach for running the ACE tests on Tornado II:
-
-<ul>
- <li>Under Tornado II, I set up the Target Server File System (TSFS), and
- the test logs get written to the log subdirectory under that.<p>
- <li>You have to set an environment variable before running the tests:
-<pre>
-putenv("ACE_TEST_DIR=/tgtsvr")
-</pre><p>
-</ul>
-
-<h5><a name="VxWorks/SharedLibs">Building Shared Libraries for VxWorks</a>.</h5>
-
-ACE supports shared libraries for VxWorks, but only with the g++
-compiler. To build shared libraries instead of the default static
-libraries, added <code>shared_libs=1</code> (<strong>not</strong>
-<code>shared_libs_only=1</code>) to either your
-<code>ACE_wrappers/include/makeinclude/platform_macros.GNU</code> or
-your <code>make</code> invocation. Then, be sure to load the ACE (and
-any other) shared library before loading your executable(s).<p>
-
-A shared library for VxWorks uses the same code as for a static
-(non-shared) library. However, calls to static constructors/
-destructors are added. The code in the shared library <strong>must</strong>
-be reentrant if you shared it between programs (tasks). The
-ACE library meets this requirement.<p>
-
-Shared libraries reduce build time, executable size, and load
-time of the executable. But, you must manually load the shared
-library before loading your executable(s) with a command such as:
-<pre><code>
--&gt; ld &lt; libACE.so
-</code></pre>
-Shared libraries can be unloaded the same way an executable
-(module) is unloaded.<p>
-
-<strong>NOTE</strong>: Shared libraries on VxWorks aren't the same as
-shared libraries on other operating systems. In particular, there is
-no support for creating copies of writeable global (static) data in
-the shared library. This includes the singleton ACE_Object_Manager
-instance pointer. If you share global data between separate programs,
-they may not work properly. See the discussion of shared code and
-reentrancy in the VxWorks' <em>Programmers Guide</em>.<p>
-
-Instead of trying to run separate programs onto a VxWorks target, we
-recommend creating just one program, and spawning a thread for each
-task. The TAO IDL_Cubit test <a
-href="TAO/performance-tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp">collocation
-test</a> is a good example.<p>
-
-<h5><a name="VxWorks/LinkToKernel">Linking ACE and/or TAO Libraries into the VxWorks Kernel</a>.</h5>
-
-It's easy to link your ACE and/or TAO libraries into the VxWorks kernel.
-Just build <a href="#VxWorks/SharedLibs">shared versions</a>, but
-disable the munch step. The easiest way to do that is to set the
-<code>LD</code> make variable to the name of your linker. For
-example, to build a libACE.so for PowerPC that can be linked into
-the kernel:
-<pre>
-% cd $ACE_ROOT/ace
-% make LD=ldppc shared_libs=1
-</pre>
-After building the shared lib, link it into the kernel by setting
-the <code>MACH_EXTRA</code> make variable in the kernel configuration
-Makefile. Then, build the kernel using <code>make exe</code>.<p>
-
-<h5><a name="VxWorks/NT">Building ACE on Tornado/NT hosts for VxWorks targets</a>.</h5>
-The following, very useful information was contributed by
-<a href="http://people.qualcomm.com/cryan">Chris Ryan</a>
-and <a href="mailto:Paul_von_Behren@stortek.com">Paul von Behren</a>.
-Please submit corrections, additions, or clarifications to the
-the <a href="mailto:ace-users@cs.wustl.edu">ACE mailing list</a>.<p>
-
-<strong>NOTE:</strong>The make (version 3.74) that is provided with
-Tornado II cannot be used to build ACE. Use Cygnus' make (version 3.75)
-instead.)<p>
-
-<strong>NOTE:</strong>Optimization is enabled be default in
-<a href=include/makeinclude/platform_vxworks5.x_g++.GNU>platform_vxworks5.x_g++.GNU</a>. However, the compiler that is shipped with Tornado II has
-trouble compiling some files with -O2. To disable optimization
-for an individual file, just add <code>optimize=0</code> to your
-make invocation when compiling that file.<p>
-
-Using the Cygnus tools, this approach works:
-<ul>
- <li>You'll build both your NT and VxWorks executables in the same
- workspace (directory hierarchy). This works because the NT
- compiler and ACE's Makefiles put their output in different
- directories.<p>
- <li>Set up your
- <code>ACE_wrappers/include/makeinclude/platform_macros.GNU</code>
- as usual for VxWorks. See
- <a href="include/makeinclude/platform_vxworks5.x_g++.GNU">the
- g++/VxWorks platform file</a> for more information.<p>
- <li>Create an <code>ACE_wrappers/ace/config.h</code> file that looks
- something like the following. tao_idl should be built to not support
- native exception handling, because that's not available on VxWorks.
-<pre>
-#if defined (_MSC_VER) || defined (__BORLANDC__)
-# include "ace/config-win32.h"
-# undef ACE_HAS_EXCEPTIONS
-#else
-# include "ace/config-vxworks.h"
-#endif
-</pre><p>
- <li>Set your <code>ACE_ROOT</code>, <code>CPP_LOCATION</code>,
- <code>WIND_BASE</code>, and <code>WIND_HOST_TYPE</code> environment
- variables.<p>
- <li>Build for NT, then build for VxWorks.<p>
-</ul>
-
-A few additional Windows Notes, from Paul von Behren:<p>
-<ul>
- <li>Cygnus has created a Win32 API which is compatible with a
- &quot;generic&quot; Unix environment. Using this library, they have ported a
- large collection of GNU tools to WinNT/95 - including a port of
- gcc/g++. See <A href="http://www.cygnus.com/misc/gnu-win32/">http://www.cygnus.com/misc/gnu-win32/</A>
- A related link is <a href="ftp://ftp.cygnus.com/pub/gnu-win32/latest/">ftp://ftp.cygnus.com/pub/gnu-win32/latest/</a><p>
- <li>To set up the command-prompt build environemnt, run
- <code>Tornado\host\x86-win32\bin\TorVars.bat</code>. This is done
- implicitly within the Tornado IDE.<p>
- <li>To run <code>ace_ld</code>, you still need perl installed -
- see <A href="http://www.activestate.com/software/default.htm">http://www.activestate.com/software/default.htm</A>
- for Windows perl.<p>
- <li>The Tornado IDE will use a standard Makefile for project
- builds, but does not have a GUI interface for managing the
- Makefile. By default, it will use rules from Makefile in the current
- directory and you can configure it to add certain Makefile
- targets to the project. If you have <code>ACE_ROOT</code> defined
- before starting Tornado, you can specify an ACE Makefile as a Tornado
- target and Tornado will then call make from the menu.<p>
-</ul>
-
-And Chris Ryan's instructions for building for VxWorks targets
-on Windows NT hosts:
-
-<ol>
- <li>Path setting that seems to be working is:<p>
- <pre>
- /tornado/host/x86-win32/bin:
- /tornado/host/x86-win32/lib/gcc-lib/i386-wrs-vxworks/cygnus-2.7.2-960126:
- /tornado/host/x86-win32/i386-wrs-vxworks/bin:
- /ace/ace_wrappers/bin:
- /gnuwin32/b18/H-i386-cygwin32/bin:
- /gnuwin32/b18/tcl/bin:
- /WINNT/system32:
- /WINNT:
- /WINNT/system32/nls/ENGLISH:
- /bin
- </pre>
-
- Other environment variables:<p>
- <pre>
- WIND_BASE=/tornado
- SHELL=/bin/sh.exe
- TERM=pcbios
- TAO_ROOT=/ace/ACE_wrappers.vxworks/TAO
- CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.EXE
- GCC_EXEC_PREFIX=/tornado/host/x86-win32/lib/gcc-lib/
- WIND_HOST_TYPE=x86-win32
- ACE_ROOT=/ace/ACE_wrappers.vxworks
- </pre>
-
- <li><code>/tornado</code> is the root of the Tornado install
- (<code>$WIND_BASE</code>).
-
- <li><code>/gnuwin32</code> is the root of a Cygnus GNU download and install.
-
- <li><code>/bin</code> content is:<p>
- <pre>
- aced.dll
- cygwin.dll
- perl.exe
- rm.exe
- sh.exe
- true
- </pre>
-
- <code>aced.dll</code> is produced in an ACE NT source tree according to
- documented procedure for NT VC++5.0 ACE build.
-
- <code>cygwin.dll</code> is from the Cygnus GNU software download and install.
-
- <li>Basically, follow documented procedure for ACE build/install on UNIX
- platform. Create a <code>$ACE_ROOT/ace/config.h</code> that looks
- like:<p>
- <pre>
- #include "config-vxworks5.x.h"
- </pre>
-
- And create a
- <code>$ACE_ROOT/include/makeinclude/platform_macros.GNU</code>
- that looks like:<p>
- <pre>
- WIND_BASE = /tornado
- WIND_HOST_TYPE = x86-win32
- CPU = I80486
- include $(ACE_ROOT)/include/makeinclude/platform_vxworks5.x_g++.GNU
- </pre>
-
- <LI>When using cygnus windows GNUTools on WinNT you have to start
- make with "--unix" option, otherwise WinNT shell cmd.exe is responded and
- not sh.exe, i.e.,
- <PRE>
- make --unix static_libs=1
- </PRE>
-</ol>
-
-<h5>TAO on NT Tornado host, VxWorks target.</h5>
-
-<ol>
- <li>Build ACE and TAO_IDL in the NT tree as already documented. As
- mentioned above, I put <code>aced.dll</code> in <code>/bin</code>.
- Be sure to build ACE's gperf on NT, in
- <code>ACE_wrappers/apps/gperf/src</code>.<p>
-
- <li>Build $TAO_ROOT/tao
- <pre>
- CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
- cd $TAO_ROOT/tao
- /gnuwin32/b18/H-i386-cygwin32/bin/make
- </pre>
-
- <li>Build orbsvcs.
- <pre>
- CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
- cd $TAO_ROOT/orbsvcs/orbsvcs
- /gnuwin32/b18/H-i386-cygwin32/bin/make
- </pre>
-
- <li>Build $TAO_ROOT/tests<p>
-</ol>
-
-
-<H4><A NAME="vxworks">&nbsp;</a>
-<a href="mailto:Jaffar_Shaikh@Mitel.COM">Jaffar Shaikh's</a>
-Notes for Building ACE and TAO for VxWorks on NT host</H4>
-<B><P>Scenario:</B> I was building the ACE and TAO for VxWorks =
-on NT. The target system was a PPC860 based chassis and another a NT =
-host based card.</P>
-<B><P>Host System:</P>
-</B><P>NT 4.0 workstation with 128 M RAM, 266MHz Pentium.</P>
-
-<B><P>Software Needed For Building TAO</P>
-</B><P>1) PERL: Active State's ActivePerl 5.6.0.618 for NT available as =
-freeware from =
-http://www.ActiveState.com/download/contrib/Microsoft/NT/InstMsi.exe =
-</P>
-
-<P>2) Tornado II .Release V 9904 from Windriver.</P>
-
-<P>3) Cygwin GNU to build TAO. It is available for NT as a freeware =
-from </P>
-<P>http://sources.redhat.com/cygwin/</P>
-<P>The Cygwin Make (version 3.75) can only build the TAO not the =
-Tornado II make (version 3.74)</P>
-
-<B><P>Environment Variables:</P>
-</B><P>On NT the environment Variables are set as follows, (from =
-Control Panel-&gt; System -&gt; Environment)</P>
-<P>I added following Environment variable entries to PATH </P>
-
-<P>C:\Perl\bin\;</P>
-<P>C:\tornado\host\x86-win32\bin;</P>
-<P>C:\tornado\host\x86-win32\powerpc-wrs-vxworks\bin;</P>
-<P>C:\tornado\host\x86-win32\lib\gcc-lib\powerpc-wrs-vxworks\cygnus-2.7.=
-2-960126;</P>
-<P>C:\Corba\Ace_wrappers\bin;</P>
-<P>C:\Cygwin\bin;</P>
-<P>C:\Cygwin\usr\bin;</P>
-<P>C:\bin</P>
-
-<P>Additional Environmental variables and the values,</P>
-<P>CPU=PPC860</P>
-<P>LD_LIBRARY_PATH=</P>
-<P>SHELL=/bin/sh.exe</P>
-
-<P>ACE_ROOT=/Corba/ACE_wrappers</P>
-<P>WIND_BASE=/tornado</P>
-<P>SHELL=/bin/sh.exe</P>
-<P>TERM=pcbios</P>
-<P>TAO_ROOT=/Corba/ACE_wrapper/Tao</P>
-<P>CPP_LOCATION=/Program Files/Microsoft Visual =
-Studio/VC98/Bin/CL.exe</P>
-<P>GCC_EXEC_PREFIX=/tornado/host/x86-win32/lib/gcc-lib/</P>
-<P>WIND_HOST_TYPE=x86-win32</P>
-<P>PERL_PATH=/perl/bin/perl.exe</P>
-
-<B><P>Directories of importance</P>
-</B><P>C:\Corba &#9;&lt;-- Ace_wrappers (uzipped)</P>
-<P>C:\tornado &#9;&lt;-- Tornado installed</P>
-<P>C:\Perl &#9;&lt;-- Perl installed</P>
-<P>C:\Cygwin &#9;&lt;-- Cygwin installed</P>
-<P>C:\bin &lt;-- Copy these files,</P>
-<P>&#9;&#9; Ace.dll, &#9;&lt;-- After you build Ace</P>
-<P>&#9;&#9;gperf.exe &#9;&lt;-- After you build gperf</P>
-<P>&#9;&#9;Cygwin1.dll, &#9;&lt;-- After you install Cygwin</P>
-<P>&#9;&#9;perl.exe, &#9;&lt;-- After you install Perl</P>
-<P>&#9;&#9;rm.exe&#9;&#9;&lt;-- After you install Cygwin</P>
-<P>&#9;&#9;sh.exe&#9;&#9;&lt;-- After you install Cygwin</P>
-<P>&#9;&#9;true&#9;&#9;&lt;-- After you install Cygwin</P>
-<B><P>Create Files</P>
-</B><P>1) C:\Corba\ACE_Wrappers\ace\config.h</P>
-<P>with entry</P>
-<P>#if defined (_MSC_VER) || (__BORLANDC__)</P>
-<P>&#9;#include "ace/config-win32.h"</P>
-<P>&#9;#undef ACE_HAS_EXCEPTIONS</P>
-<P>#else</P>
-<P>&#9;#include "ace/config-vxworks5.x.h"</P>
-<P>&#9;#define ACE_HAS_IP_MULTICAST </P>
-<P>#endif</P>
-
-<P>2) C:\Corba\ACE_wrappers\include\makeinclude\platform_macros.GNU</P>
-<P>WIND_BASE = /tornado</P>
-<P>WIND_HOST_TYPE = x86-win32</P>
-<P>include =
-$(ACE_ROOT)/include/makeinclude/platform_vxworks5.x_g++.GNU</P>
-<P>ACE_COMPONENTS=FOR_TAO (you may choose this option to build ACE =
-library that supports TAO)</P>
-
-<P>&nbsp;</P>
-<B><P>Steps to Build</P>
-</B><P>1) Build Ace.dll under NT</P>
-<P>In MS Visual C++ open C:\Corba\ACE_wrappers\ace.dsw And build Ace =
-DLL</P>
-<P>Copy Ace.dll in C:\bin</P>
-
-<P>2) Build gperf utility under NT</P>
-<P>In MS Visual C++ open =
-C:\Corba\ACE_wrappers\apps\gperf\src\gperf.dsw. Build gperf.exe</P>
-<P>Copy gperf.exe to C:\bin</P>
-
-<P>3) Mount Directries in Cygwin</P>
-<P>Click on Cygnus Solutions -&gt; Cygwin Bash Shell</P>
-<P>Mount following directories by using mount command.</P>
-<P>create respective directories first then use mount command </P>
-
-<P>e.g. Create /Corba directory then use $mount -s "C:\Corba" =
-/Corba</P>
-
-<P>C:\Corba mount to /Corba</P>
-<P>C:\tornado mount to /tornado</P>
-<P>C:\Perl mount to /perl</P>
-<P>C:\Cygwin mount to /cygwin</P>
-<P>C:\bin mount to /bin</P>
-<P>C:\Program Files mount to /Program Files </P>
-
-<P>4) Build ACE in Cygwin</P>
-<P>$cd /Corba/ACE_wrappers/ace </P>
-<P>$make static_libs=1</P>
-<P>This will build your ace library libACE.a for VxWorks. If you use =
-option shared_libs=1 then the build will be libACE.so. The other =
-options are same as follows.</P>
-
-<P>5) Build TAO in Cygwin</P>
-<P>$cd $TAO_ROOT/tao</P>
-<P>$make debug=0 optimize=1 static_libs_only=1 minimum_orb=1 =
-</P>
-<P>for shared libs use shared_libs=1</P>
-
-<P>The minimum Tao does not have following components,</P>
-<P>Dynamic Skeleton Interface</P>
-<P>Dynamic Invocation Interface</P>
-<P>Dynamic Any</P>
-<P>Interceptors</P>
-<P>Interface Repository</P>
-<P>Advanced POA features</P>
-<P>CORBA/COM interworking</P>
-
-<P>You may play around with above options to find suitable build for =
-your needs. For example when you give option debug=1 all the debug =
-symbols will be created and the build will huge in size. The debug =
-symbols are necessary when you want to debug your code.</P>
-
-
-<HR>
-<H3><A NAME="svcsinstall">Building and Installing ACE Network Services</A></H3>
-
-The following explains how to build the ACE <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-netsvcs.html">network services</A> on <A
-HREF="#unixsvcs">UNIX</A> and <A HREF="#win32svcs">Win32</A>.
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="unixsvcs">Building and Installing ACE Network Services on UNIX</A></H4>
-
-Building and installing ACE Network Services on UNIX is relatively
-simple (the <A HREF="#win32svcs">process</A> for Win32 is different).
-Here's what you need to do:<P>
-
-<OL>
-
- <LI>Build and install ACE on UNIX as described <A
- HREF="#unix">earlier</A>. If ACE is built at the root of the ACE
- source tree (and ACE has been ported to your platform, of course) the
- netsvcs static and shared object libraries should be built
- automatically. In addition, the server driver program
- (<CODE>main</CODE>) contained in <A
- HREF="netsvcs/servers/main.cpp">$ACE_ROOT/netsvcs/servers/main.cpp</A>
- should also be compiled and ready to run.<P>
-
- <LI>Set your LD_LIBRARY_PATH environment variable to where the binary
- version of the ACE netsvcs library. For example, you probably
- want to do something like the following<P>
-
- <pre><code>
- % setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
- </code></pre><P>
-
- <LI>By default, if the shared object library is built, the services
- are linked into the <CODE>main</CODE> driver program dynamically.
- To specify which services should be linked in and executed, edit the
- <A
- HREF="netsvcs/servers/svc.conf">$ACE_ROOT/netsvcs/servers/svc.conf</A>
- file. During your editing, you should update information (such as the
- default service port numbers) that affects the initialization of
- services in this file. Refer to the
- <A HREF="ACE-papers.html#config">Service Configurator</A>
- documentation to learn how the configuration file is parsed and
- how the services are dynamically linked and executed. In
- addition, refer to the <A
- HREF="http://www.cs.wustl.edu/~schmidt/ACE-netsvcs.html">Network
- Services</A> documentation to learn more about how to configure
- each network service.<P>
-
- <LI>If you only want to link the services statically, simply remove
- or rename the svc.conf file.<P>
-</OL>
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="rtems">Building and Installing ACE on RTEMS</A></H4>
-
-<PRE>
-export RTEMS_MAKEFILE_PATH=/opt/rtems/CPU-rtems/BSP
-# setup the build structure
-cd ACE_wrappers
-
-# create the host (e.g. Linux in this case) build tree
-./bin/create_ace_build Linux_g++
-cd build/Linux_g++/ace
-ln -s ../../../ace/config-linux.h config.h
-cd ../include/makeinclude
-ln -s ../../../../include/makeinclude/platform_linux.GNU platform_macros.GNU
-cd ../../../..
-
-# create the target build tree
-./bin/create_ace_build rtems
-cd build/rtems/TAO
-/bin/rm -r TAO_IDL
-ln -s ../../Linux_g++/TAO/TAO_IDL .
-cd ../ace
-ln -s ../../../ace/config-rtems.h config.h
-cd ../include/makeinclude
-ln -s ../../../../include/makeinclude/platform_rtems.x_g++.GNU platform_macros.GNU
-cd ../../../..
-
-# build the host side of things
-cd build/Linux_g++
-export ACE_ROOT=`pwd`; export LD_LIBRARY_PATH=`pwd`/ace:$LD_LIBRARY_PATH
-cd ace
-make
-
-# optionally build the ACE tests
-cd ../tests
-make
-
-cd ../TAO
-make
-
-# build the target side of things
-cd ../rtems
-export ACE_ROOT=`pwd`
-cd ace
-make
-cd ../tests
-# build rtems_init.o by hand
-make -f ../include/makeinclude/Makefile.rtems rtems_init.o
-make
-cd ../TAO
-make
-</PRE>
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="win32svcs">Building and Installing ACE Network Services on Win32</A></H4>
-
-Once again, there are supplied project for MSVC 5.0 or later for
-the Network Services.<P>
-
-<HR>
-<H3><A NAME="sslinstall">Building and Installing The ACE_SSL Library</A></H3>
-
-<p>The first step for all platforms is to build and install the
-<A HREF="http://www.openssl.org/">OpenSSL</A> distribution. Then the
-ACE_SSL library must be built according to the instructions
-below.</p>
-<h3>Unix</h3>
-<OL>
- <LI>Make sure the OpenSSL header file directory is in your compiler's
- include path, and that OpenSSL libraries are in your library link/load
- path (e.g.
- <font face="Courier New, Courier, mono">LD_LIBRARY_PATH</font>). If you
- installed OpenSSL into a set of directories unknown by the compiler,
- then set the following variables in your
- <font face="Courier New, Courier, mono">platform_macros.GNU</font>
- file:
- <P><table width="75%" border="0" align="center">
- <tr>
- <td><font face="Courier New, Courier, mono">PLATFORM_SSL_CPPFLAGS</font></td>
- <td>Platform preprocessor options for OpenSSL (e.g. -I...)</td>
- </tr>
- <tr>
- <td><font face="Courier New, Courier, mono">PLATFORM_SSL_LDFLAGS</font></td>
- <td>Platform linker options for OpenSSL (e.g. -L...)</td>
- </tr>
- <tr>
- <td><font face="Courier New, Courier, mono">PLATFORM_SSL_LIBS</font></td>
- <td>Platform libraries required with OpenSSL (e.g. -lssl -lcrypto)</td>
- </tr>
- </table>
- <br>
- </LI>
- <LI>Build ACE as described above. When building ACE, add
- &quot;<font face="Courier New, Courier, mono">ssl=1</font>&quot;
- to your <font face="Courier New, Courier, mono">make</font>
- command line invocation, or add it to your
- <font face="Courier New, Courier, mono">platform_macros.GNU</font>
- file.</LI>
- <li>Build the ACE_SSL library in the <TT>$ACE_ROOT/ace/SSL</TT>
- directory. The <TT>ACE_ROOT</TT> environment variable should be set
- prior to this point.</li>
-</OL>
-<h3>Microsoft Visual Studio</h3>
-<ol>
- <li>Set the OpenSSL include/header directory path under the
- <b><i>Directories</i></b> tab - <i><b>Include Files</b></i> setting in
- the <i><b>Tools-&gt;Options</b></i> dialog. A typical value would be
- something like: <code>openssl-0.9.6\inc32</code></li>
- <li>Set the OpenSSL library directory path under the
- <b><i>Directories</i></b> tab - <i><b>Library Files</b></i> setting in
- the <i><b>Tools-&gt;Options</b></i> dialog. A typical value would be
- something like: <code>openssl-0.9.6\out32dll</code></li>
- <li>Open the <code>ACE.dsw</code> workspace, and refer to the ACE build
- and installation instructions above for details on creating a
- <code>config.h</code> configuration header for this platform. Once
- the <CODE>config.h</CODE> file has been created, build the
- <code>ACE_SSL</code> project.</li>
-</ol>
-<h3>Borland C++</h3>
-<p>Support for building TAO's SSLIOP pluggable protocol with Borland C++
- does exist. E-mail the
- <a href="mailto:ace-users@cs.wustl.edu">ace-users</a> mailing list to
- obtain instructions that detail how to build it using Borland C++.
- These instructions will soon be integrated into this web page.</p>
-
-
-<HR><P>
-<H3><A NAME="minimum_build">What Do I Need to Build for TAO?</A></H3>
-Toshio Hori &lt;toshi@etl.go.jp&gt; provided these suggestions on building
-just what's needed for (a subset of) TAO:<p>
-
-I usually make:
-<pre>
- $ACE_ROOT/ace,
- $ACE_ROOT/apps/gperf,
- $TAO_ROOT/tao,
- $TAO_ROOT/TAO_IDL, and
- $TAO_ROOT/orbsvcs/orbsvcs
-</pre>
-and the whole make takes less than an hour on my Solaris 7 for intel,
-Pentium-III/550MHz, 256MB memory, 512MB swap machine. (Top secret: I
-renice the 'make' process to the highest priority, -20... ;-)
-
-To save time and space, I set
-<pre>
- TAO_ORBSVCS = Naming Time Trader ImplRepo
-</pre>
-in $ACE_ROOT/include/makeinclude/platform_macros.GNU also. See
-<a href="TAO/docs/configurations.html#orbsvcs">TAO's orbsvcs
-library customization instructions</a> for more information.<p>
-
-
-<HR><P>
-<H3><A NAME="resource_requirements">System Resource Requirements</A></H3>
-The amount of system resources required to build ACE and TAO varies
-greatly. Platform, build options, and components built primarily
-influence the required system resources. As a rough guide, the
-typical peak memory requirement could be well over 256 Mb (notably,
-for TAO's orbsvcs). An <strong>entire</strong> build of ACE and TAO
-can use well over 1300 Mb of disk space. It's usually not necessary
-to build <strong>all</strong> of ACE and TAO, though.<p>
-
-Much less disk space is required for just the libraries. For example,
-see the <a href="docs/ACE-subsets.html#ACE Library Size Breakdown">ACE
-library subset sizes</a>.<p>
-
-If you run out of memory when building, you might consider trying
-some or all of these suggestions:<p>
-<ul>
- <li>Enable or increase virtual memory. If you're on a <a
- href="#Linux">Linux</a> or <a href="#LynxOS">LynxOS</a> platform,
- please see the appropriate sections above.<p>
- <li>Disable/enable optimization and/or debugging. See the
- <a href="#flags">Makefile Flags</a> discussion for information
- on how to do that via ACE's Makefiles.<p>
- <li>If you're using g++, try removing <code>-pipe</code> from
- <code>CFLAGS</code> in your
- <code>include/makeinclude/platform_macros.GNU</code> file.<p>
- <li>Restrict the components that you build. For ACE and TAO, see the
- discussion of <code>ACE_COMPONENTS</code> in the
- <a href="docs/ACE-subsets.html">ACE subsets</a> page. For TAO's
- orbsvcs, see the discussion of <code>TAO_ORBSVCS</code> in
- <a href="TAO/docs/configurations.html#orbsvcs">orbsvcs Library configuration information</a>.<p>
-
-If disk space is a problem, disabling debugging should greatly
-reduce object code, and therefore, library size. This is especially
-true with g++.<p>
-
-Toshio Hori &lt;toshi@etl.go.jp&gt; provided these tips for reducing
-disk space usage:<p>
-
-To save space on a Unix machine, I usually run
- 'find . -name \*.dsw -o -name \*.dsp -o -name \*.bor | xargs rm -f'
-in $ACE_ROOT at first after I untar the distribution. They are
-meaningless in my environment (Files named '*.dsw' and '*.dsp' are
-used for MSVC++ and files named '*.bor' are for Borland C++
-Builder.)<p>
-
-Finally, to save space, may want to run 'make clean' after 'make'. It
-removes generated object files and leaves libraries/exectables
-intact.<p>
-</ul>
-
-
-<HR><P>
-<H3><A NAME="advanced">Advanced Topics</A></H3>
-
-<UL>
- <LI><A
- HREF="docs/ACE-porting.html">Porting ACE and TAO to a New OS Platform</A>
- <LI><A HREF="http://www.cs.wustl.edu/~othman/aceconf">Using GNU's
- Autoconf with ACE</A>
- <UL>
- <LI>This support is currently a work-in-progress, and is
- hence disabled. It will be completed and re-enabled as
- soon as someone funds the work to do so.
- </UL>
- </LI>
- <LI><A HREF="#Non-static Object Manager">Non-static ACE_Object_Manager</A>
- <LI><A HREF="#cloning">Cloning the Source Tree</A>
- <LI><A HREF="#corba">Building CORBA Versions of ACE</A>
- <LI><A HREF="#mvs">Additional Build Tips for MVS</A>
- <LI><A HREF="#flags">Makefile Flags</A>
- <LI><A HREF="http://www.cs.wustl.edu/~levine/CVS.html">Version Control</A>
- <LI><A HREF="http://www.cs.wustl.edu/~cleeland/ace/makefile-hints.html">ACE Makefile hints</a>
- <LI><A HREF="docs/ACE-SSL.html">ACE SSL effort</a>
-</UL>
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="Non-static Object Manager">Non-static
-ACE_Object_Manager</A></H4> The ACE_Object_Manager can be instantiated
-as a static object, can be instantiated on the stack of the main
-program thread, or can be explicitly instantiated and destroyed by the
-application with <code>ACE::init ()</code> and <code>ACE::fini
-()</code>. The comments in the <a href="ace/Object_Manager.h">header
-file, <code>ace/Object_Manager.h</code></a> provide more detail.<P>
-
-<strong><blink><font color="#ff0000">NOTE:</font></blink></strong>
-Special requirements are imposed on applications if the
-ACE_Object_Manager is instantiated, by ACE, on the stack of the main
-thread. This behavior is selected by defining
-<code>ACE_HAS_NONSTATIC_OBJECT_MANAGER</code> in
-<code>ace/config.h</code>. Again, see the ACE Object_Manager <a
-href="ace/Object_Manager.h">header file,
-<code>ace/Object_Manager.h</code></a> for more information. One of
-these requirements is discussed here, because it is so important.
-Please note that <code>ACE_HAS_NONSTATIC_OBJECT_MANAGER</code> is
-defined in the distributed ACE <code>config.h</code> headers for
-VxWorks and Win32.<p>
-
-The important requirement is that the program <strong>must</strong>
-declare its <code>main</code> function with two arguments, even if
-they're not used, and with <code>int</code> return type:
-
-<pre><code>
-int
-main (int, char *[])
-</code></pre>
-
-If you don't declare <code>main</code> <strong>exactly</strong> that
-way, then you'll see a link error about <code>ace_main_i</code> being
-undefined.<p>
-
-Alternatively, this feature can be disabled by commenting out the
-#define ACE_HAS_NONSTATIC_OBJECT_MANAGER in the
-<code>ace/config.h</code>. But, that will make repeated testing more
-difficult on VxWorks. And, you'd either have to call static
-constructors and destructors manually or unload/load the program
-between runs. On Win32, disabling the feature can possibly lead to
-shutdown difficulties.<p>
-
-<strong><blink><font color="#ff0000">WARNING:</font></blink></strong>
-<code>ACE_HAS_NONSTATIC_OBJECT_MANAGER</code> assumes that your
-<code>main</code> function is named <code>main</code>. Any violation
-of this assumption is at your peril. If you really need to call your
-entry point something other than <code>main</code>, you'll need to
-construct and destroy the ACE_Object_Manager. The best way to do that
-is to call <code>ACE::init ()</code> and <code>ACE::fini ()</code>.
-Or, see the <code>#define</code> of <code>main (int, char *[])</code>
-in <a href="ace/OS.h"><code>ace/OS.h</code></a> to see how ACE does
-that for entry points named <code>main</code>.
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="cloning">Cloning the Source Tree</A></H4>
-
-On UNIX platforms, we typically like to support multiple platform
-builds using the same ACE source tree. This idiom is supported by ACE
-using the $ACE_ROOT/bin/create_ace_build script or
-$ACE_ROOT/bin/clone.cpp program.
-
-To use build and use the clone program, first make sure there's a file
-called platform_macros.GNU that contains the correct platform-specific
-Makefile configurations in the $ACE_ROOT/include/makeinclude/
-directory, as well as making sure there's a $ACE_ROOT/ace/config.h
-file that includes the desired platform/compiler specific
-configuration header. Then perform the following steps:<P>
-
-<pre>
-% cd $ACE_ROOT/bin
-% make
-% mv clone ~/bin
-% rehash
-</pre><P>
-
-Then create a ./build subdirectory someplace, e.g., under $ACE_ROOT.
-Once this is done, then invoke the top-level Makefile with the
-&quot;clone&quot; target, e.g.:<P>
-
-<pre>
-% cd $ACE_ROOT
-% mkdir build-SunOS5
-% cd build-SunOS5
-% make -f ../Makefile clone
-% setenv ACE_ROOT $cwd
-% make
-</pre><P>
-
-This will establish a complete tree of links. In addition, make sure
-you set your LD_LIBRARY_PATH to $ACE_ROOT/ace:$LD_LIBRARY_PATH on SVR4
-UNIX platforms.<P>
-
-When you do a make in the $ACE_ROOT directory you will be producing
-object code that is not stored in the same place as the original
-source tree. This way, you can easily build another platform in a
-parallel tree structure.<P>
-
-<B> VERY IMPORTANT! </B><P>
-
-If you use the &quot;clone trick&quot; discussed above, make sure that the
-symbolic links are correctly in place before starting the build. In
-particular, if you plan to clone the tree, it is preferable to do so
-before you start a build procedure on the original tree. This is
-because the build procedure create object directories (.obj and
-.shobj) and the cloning procedure will clone these directories also.
-You would end up with links pointing to object files of another
-platform. If you clone the tree after you've done a build on the
-original tree, make sure to remove all ".obj", ".shobj" and (any other
-files or directories) in all subdirectories before starting the build
-on your cloned tree.<P>
-
-Alternatively, the perl script
-<code>ACE_wrappers/bin/create_ace_build</code> can be used to create
-build trees. It creates them below <code>ACE_wrappers/build</code>.
-It filters out all but the necessary files, so the warning above does
-not apply. See the comments at the top of the script itself for usage
-information.
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="corba">Building CORBA Versions of ACE</A></H4>
-
-Note that if you are compiling with IONA's Orbix implementation of
-CORBA or Visigenix's implementation of CORBA, you'll also need to set
-ORBIX_ROOT to point to the root of the Orbix source tree and
-ORBELINE_ROOT to point to the root of the ORBeline source tree. Since
-many platforms don't have these CORBA tools the default for ACE does
-*not* incorporate them. Thus, if you are compiling with Orbix or
-ORBeline, make sure that you set up
-$ACE_ROOT/include/makeinclude/platform_macros.GNU and
-$ACE_ROOT/ace/config.h to use the config* and platform*
-files that have "-orbix" in them!
-
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="mvs">Additional Build Tips for MVS</A></H4>
-
-For all intents and purpose, MVS OpenEdition (OE) is another flavor of
-UNIX, therefore, the instructions under <A HREF="#aceinstall">Building
-and Installing ACE on Unix</A> can be used along with the following
-additional tips:<P>
-
-You can get a copy of GNU make that has been ported to MVS OpenEdition from
-the <A HREF="http://www.s390.ibm.com/products/oe/index.html">IBM OpenEdition web site</A>.
-ACE's make scheme generates compile commands that have options and
-operands interspersed. By default, the c89/cc/c++ compiler expects all options to
-precede all operands. To get around this, you must set a special
-compiler environment variable (_CXX_CCMODE) to 1 which tells the compiler
-to allow options and operands to be interspersed.<P>
-
-Note that the environment variable LD_LIBRARY_PATH is called LIBPATH
-on MVS.<P>
-
-Shared objects are built a little different on MVS than on
-other UNIX implementations. This has been accounted for in the makefiles
-that come with ACE When the linker (via the cxx command) builds the
-libACE.so file it will also create a file called libACE.x. This is a
-side-deck file and it must be included in subsequent link edits with
-application code. For more information on this see the C/C++ MVS
-Programming Guide. If you want to build your application statically,
-i.e., using libACE.a instead of libACE.so, you can set ACELIB to
-ACELIB_STATIC in platform_mvs.GNU.<P>
-
-When the libACE.so file is built (via the MVS pre-linker and binder), you
-will get a rc=4 from the pre-linker. This is ok. This is due to some
-warnings about unresolved references which should get resolved during the
-link step. Note, however, there shouldn't be any unresolved references
-from the binder (linkage editor). You can get pre-link and link maps by
-uncommenting the PMAP and LMAP lines in the platform_mvs.GNU file.
-
-<P><hr align=left width="50%"><P>
-<H4><A NAME="flags">Makefile Flags</A></H4>
-
-GNU make provides many options to customize its operation. See its
-documentation for more information. One example is that for multi-cpu
-UNIX machines you will be able to build faster if you use:<P>
-
-<pre><code>
-% make -j <em>n</em>
-</code></pre><p>
-
-which allows parallel compilation. The number <i>n</i> should
-typically be the number of CPUs. It is likely that builds will be
-faster even on single-CPU UNIX machines with <code>make -j
-2</code>.<P>
-
-ACE further supports the following flags. They can be enabled either
-on the command line, e.g., "make purify=1", or added to your
-platform_macros.GNU. To disable the option, set the flag to null,
-e.g., "make debug=". Some flags support setting to 0 disable, e.g.,
-"make debug=0". debug=1 is enabled in the platform files that are
-released with ACE.<P>
-
-Please note that the effects of a flag may be platform specific.
-Also, combinations of certain flags may or may not be allowed on
-specific platforms, e.g., debug=1 opt=1 is supported by g++ but
-not all other C++ compilers.<P>
-
-If you use Purify or Quantify: purify or quantify <strong>must</strong>
-be on your <code>PATH</code>. By default, ACE puts the Purify/Quantify
-caches below <code>/tmp</code>. To override that, set the
-<code>PURE_CACHE_BASE_DIR</code> variable, either in your environment
-or on the <code>make</code> make command line, to the destination
-directory for your instrumented libraries.<p>
-
-<PRE>
-Flag Description
----- -----------
-debug Enable debugging; see DCFLAGS and DCCFLAGS.
-exceptions Enable exception handling (not supported by all platforms).
-fast Enable -fast option, e.g., with Sun C++.
-inline Enable ACE inlining. Some platforms enable inlining by
- default, others do not.
-optimize Enable optimization; see OCFLAGS and OCCFLAGS.
-orbix Enable use of Orbix.
-pace Enable PACE as the underpinnings of ACE_OS.
-probe Enable ACE_Timeprobes.
-profile Enable profiling; see PCFLAGS and PCCFLAGS.
-purify Purify all executables.
-quantify Quantify all executables.
-repo Use GNU template repository (g++ with repo patches and
- egcs only).
-rtti Enable run-time type identification. On some platforms,
- it is enabled by default, so this is ignored.
-shared_libs Build shared libraries. Ignored if static_libs_only is set.
-static_libs Build shared libraries. Ignored if shared_libs_only is set.
-shared_libs_only Only build shared libraries. Ignored if no SHLIBs are
- specified by the Makefile, as in performance-tests/Misc.
-static_libs_only Only build static libraries.
-threads Build with thread support.
-xt_reactor Build the XtReactor.
-fl_reactor Build the FlReactor.
-tk_reactor Build the TkReactor.
-qt_reactor Build the QtReactor.
-gtk_reactor Build the GtkReactor.
-ssl Build with OpenSSL support.
-rapi Build with RAPI
-split Build the library by first splitting up the ACE source
- to several files, with one object code entity for each
- source file. This allows an application that is linked
- with ACE to extract _exactly_ what it needs from the
- library, resulting in a smaller executable. Setting this
- to 1 overrides debug to 0.
-
-Usually, users do not need to be concerned with make targets.
-Just enter &quot;make&quot; on the command line to build. A few notable
-targets are listed below.
-
-Target Description
------- -----------
-show_statics Lists all static objects in object files built for
- current directory. Only supported for g++.
-show_uninit Lists all uninitialized in object files built for
- current directory. Only supported for g++.
-
-</PRE>
-<HR><P>
-
-Back to the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</A>
-home page.
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
diff --git a/ACE-install.sh b/ACE-install.sh
deleted file mode 100644
index 76c1e8064f7..00000000000
--- a/ACE-install.sh
+++ /dev/null
@@ -1,356 +0,0 @@
-#!/bin/sh
-########################## Begin Install Script ##########################
-#
-# NAME: ACE-install.sh
-#
-# PURPOSE: Bourne shell script to install ACE for UNIX platforms
-#
-# AUTHOR: Ajit Sagar <asagar@spdmail.spd.dsccc.com>
-#
-# HISTORY: 5/20/96 Ajit Sagar Created
-# x/xx/xx xxxxxxxxxxxxxx Modified
-# x/xx/xx xxxxxxxxxxxxxx Modified
-#
-# DESCRIPTION: This script installs the ACE toolkit for a Unix system.
-# Before using this script, you must do the following:
-#
-# NOTES: 1) Download the gzipped version of ACE from
-# http://www.cs.wustl.edu/~schmidt/ (Select "Obtaining ACE")
-# OR
-# ftp from wuarchive.wustl.edu in the /languages/c++/ACE directory
-#
-# The local directory to which this will be downloaded is
-# refered to as the "MY_ACEDIR" in this script.
-#
-# 2) Make sure there is only one file that matches "ACE*tar*".
-# This should be the one you just downloaded.
-# remove older versions of tar files downloaded earlier.
-#
-# 3) At the end of this script, you should have:
-#
-# a) A compiled toolkit in the $ACE_ROOT directory
-# b) If you selected to save the existing installation,
-# a file oldACE.tar.gz will be created in MY_ACEDIR
-# c) The gzipped ACE source file that was initially downloaded.
-#
-# 4) This script may be executed without user interaction
-# by using the "auto" option (see USAGE section below).
-# It is advisable to execute it without the "auto" option the
-# first time to make sure everything works.
-#
-# THE FOLLOWING NEED TO BE DONE ONLY THE FIRST TIME THIS
-# SCRIPT IS RUN:
-#
-# 5) Read the README file in
-# http://www.cs.wustl.edu/~schmidt/ACE.html directory
-#
-# 6) Define an environment variable ACE_ROOT the
-# defines which directory your ACE toolkit is to be
-# installed in.
-#
-# DO NOT MAKE "ACE_ROOT" THE SAME AS "MY_ACEDIR".
-#
-# 7) Redefine "MY_ACEDIR" in this script to default
-# to the directory in which you have downloaded the ACE source.
-#
-# 8) This script has been tested on Solaris 2.x for the
-# Sun C++4.0 compiler. To use this on some other UNIX
-# platform, uncomment and redefine the following
-# in this script:
-#
-# MY_ACE_CONFIG
-# MY_ACE_GNU_MACROS
-#
-# Check the README file to define these variables. If
-# these are not defined, the script will prompt you
-# help you to change these variables. But in that case
-# you cannot run with the "auto" option.
-#
-#
-# USAGE: myacemaker [ auto ]
-#
-# auto automatic make (no user interaction)
-#
-# Under this option, the source will be
-# extracted and compiled without any user interaction,
-# i.e., you can kick off this script, go home,
-# and check it in the morning. The following
-# assumptions are made:
-#
-# 1) MY_ACE_DIR is properly defined in this script.
-# 2) MY_ACE_CONFIG is properlly defined
-# in this script.
-# 3) MY_ACE_GNU_MACROS is properly defined in this
-# script.
-# 4) A backup of existing installation
-# is to be made.
-#
-# COPYRIGHT INFORMATION:
-#
-# You are free to do anything you like with this script such as
-# including it in commercial software. You may modify it and freely redistribute
-# it. The author accepts no responsibility for any bugs or problems that
-# arise as a consequence of using this code.
-#
-# -- Ajit Sagar
-#
-#########################################################################
-#
-ACE_ERRFILE=/tmp/myacemaker.err
-OLD_ACE_TAR_FILE=oldACE.tar
-OLD_ACE_GZIPPED_TAR_FILE=oldACE.tar.gz
-USAGE="<Usage> : myacemaker [ auto ]"
-#
-##############################################################
-#
-# Platform-specific definitions
-#
-##############################################################
-
-# Directory where ACE-x.x.xx.tar.gz is located
-
-MY_ACEDIR=${HOME}/aceconfig
-
-#######################################################
-# Platform specific config file in ${ACE_ROOT}/ace/
-# Uncomment and redefine this
-#######################################################
-
-# MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h
-
-#######################################################
-# Platform specific GNU macros file in
-# ${ACE_ROOT}/include/makeinclude/
-# Uncomment and redefine this
-#######################################################
-
-# MY_ACE_GNU_MACROS=platform_sunos5_sunc++.GNU
-
-
-##############################################################
-#
-# Main Script For Installing ACE
-#
-##############################################################
-
-AUTO="$#"
-
-ACE_ROOT=${ACE_ROOT:?"ERROR: Environment variable ACE_ROOT not set"}
-if [ ${AUTO} -gt 1 ]
-then
- echo "$USAGE"
- exit 1
-fi
-
-if [ ${AUTO} -eq 1 ]
-then
- if [ $1 != "auto" ]
- then
- if [ $1 = "nounzip" ] ; then
- UNZIP=0
- AUTO=0
- else
- echo "$USAGE"
- exit 2
- fi
- fi
-fi
-
-echo ""
-echo "ACE source in `ls ${MY_ACEDIR}/ACE*tar.gz`"
-echo "ACE will be installed in ${ACE_ROOT}"
-echo ""
-
-if [ $AUTO -eq 0 ]
-then
- echo "OK to continue? [Y/N] : \c"
- read choice
-else
- choice='Y'
-fi
-
-if [ ${choice} != 'Y' -a ${choice} != 'y' ]
-then
- echo ""
- echo "ACE installation aborted"
- echo ""
- exit 11
-fi
-
-cd ${MY_ACEDIR}
-
-echo "Uncomressing ACE archive and extracting ACE files"
-echo "into `pwd`/ACE_wrappers directory ..."
-echo ""
-
-gunzip -c ACE*tar.gz | tar xvf - || \
-{
- echo ""
- echo "gunzip or tar failed. Aborting script !!"
- echo ""
- exit 33
-}
-
-if [ -d ${ACE_ROOT} ]
-then
-
- if [ $AUTO -eq 0 ]
- then
- echo "Save a copy of existing ACE installation? [Y/N] : \c"
- read choice
- echo ""
- else
- choice='Y'
- fi
-
- if [ ${choice} = 'Y' -o ${choice} = 'y' ]
- then
-
- echo "Archiving ${ACE_ROOT} to `pwd`/${OLD_ACE_TAR_FILE} using <tar> ..."
- tar cvpf ${OLD_ACE_TAR_FILE} ${ACE_ROOT}
- echo ""
-
- if [ -f ${OLD_ACE_GZIPPED_TAR_FILE} ]
- then
- echo "Removing ${OLD_ACE_GZIPPED_TAR_FILE} ..."
- rm ${OLD_ACE_GZIPPED_TAR_FILE}
- echo ""
- fi
-
- echo "Compressing ${OLD_ACE_TAR_FILE} using <gzip -9> ..."
- gzip -9 ${OLD_ACE_TAR_FILE}
- echo ""
-
- fi
-
- echo "Removing ${ACE_ROOT} ..."
- rm -r ${ACE_ROOT}
- echo ""
-fi
-
-echo "Moving `pwd`/ACE_wrappers to ${ACE_ROOT} ..."
-mv ./ACE_wrappers ${ACE_ROOT}
-echo ""
-
-cd ${ACE_ROOT}/ace
-
-if [ ${MY_ACE_CONFIG:-undefined} = undefined ]
-then
-
- if [ $AUTO -eq 1 ]
- then
- if [ ! -f ${MY_ACE_CONFIG} ]
- then
- echo ""
- echo "${MY_ACE_CONFIG} does not exist. Aborting script ..."
- echo ""
- exit 44
- fi
- fi
-
- echo "Select one of the following files for linking to config.h"
- echo ""
- echo "`ls config*h`"
- echo ""
-
- echo "Type the filename for your compiler: \c"
- read MY_ACE_CONFIG
- echo ""
-
- if [ ! -f ${MY_ACE_CONFIG} ]
- then
- echo ""
- echo "${MY_ACE_CONFIG} does not exist. Aborting script ..."
- echo ""
- exit 55
- fi
-
-fi
-
-
-echo "Creating link config.h for ${MY_ACE_CONFIG} in directory `pwd` ..."
-
-rm ./config.h
-ln -s ${MY_ACE_CONFIG} config.h
-
-echo ""
-
-cd ${ACE_ROOT}/include/makeinclude
-
-if [ ${MY_ACE_GNU_MACROS:-undefined} = undefined ]
-then
-
- if [ $AUTO -eq 1 ]
- then
- if [ ! -f ${MY_ACE_GNU_MACROS} ]
- then
- echo ""
- echo "${MY_ACE_GNU_MACROS} does not exist. Aborting script ..."
- echo ""
- exit 66
- fi
- fi
-
- echo "Select one of the following files for linking to config.h"
- echo ""
- echo "`ls platform*GNU`"
- echo ""
- echo "Type the filename for your compiler: \c"
-
- read MY_ACE_GNU_MACROS
- echo ""
-
- if [ ! -f ${MY_ACE_GNU_MACROS} ]
- then
- echo ""
- echo "${MY_ACE_GNU_MACROS} does not exist. Aborting script ..."
- echo ""
- exit 77
- fi
-
-fi
-
-echo "Creating link platform_macros.GNU for ${MY_ACE_GNU_MACROS}"
-echo "in directory `pwd` ..."
-
-rm ./platform_macros.GNU
-ln -s ${MY_ACE_GNU_MACROS} platform_macros.GNU
-
-echo ""
-
-if [ ${AUTO} -eq 0 ]
-then
- echo "Make ACE now with default setup? [Y/N] : \c"
- read choice
- echo ""
-else
- choice='Y'
-fi
-
-if [ ${choice} != 'Y' -a ${choice} != 'y' ]
-then
- echo ""
- echo "ACE make skipped. You can use <gmake> to make ACE later"
- echo ""
- exit 0
-fi
-
-echo ""
-echo "Making ACE now. Examine file ${ACE_ERRFILE} for errors ..."
-echo ""
-
-cd ${ACE_ROOT}
-
-echo ""
-echo "Executing <gmake> ..."
-echo ""
-gmake | tee ${ACE_ERRFILE} 2>&1
-
-echo ""
-echo "Examine file ${ACE_ERRFILE} for possible errors ..."
-echo ""
-echo "********** End of myacemaker script !!! ***********"
-echo ""
-
-#
-#########################################################################
diff --git a/ASNMP/COPYRIGHT b/ASNMP/COPYRIGHT
deleted file mode 100644
index ad880b9cf90..00000000000
--- a/ASNMP/COPYRIGHT
+++ /dev/null
@@ -1,68 +0,0 @@
-Mon Jul 14 12:12:32 PDT 1997
-
-These copyrights apply to the SNMP++ module shipped with the ACE library:
-
-
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-
-=====================================================================*/
-
-/**********************************************************************
- Copyright 1988, 1989, 1991, 1992 by Carnegie Mellon University
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of CMU not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-******************************************************************/
-
-Certain portions of this version of HP's SNMP++ are:
-
-/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-Copyright 1997 Cisco Systems, Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this
-copyright and permission notice appear on all copies of the software and
-supporting documentation, the name of Cisco Systems, Inc. not be used
-in advertising or publicity pertaining to distribution of the
-program without specific prior permission, and notice be given
-in supporting documentation that modification, copying and distribution is by
-permission of Cisco Systems, Inc.
-
-Cisco Systems, Inc. makes no representations about the suitability of this
-software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
-AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
-LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
-FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
-LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
-SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
-DAMAGES.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
-
diff --git a/ASNMP/ChangeLog b/ASNMP/ChangeLog
deleted file mode 100644
index cc2800f56ba..00000000000
--- a/ASNMP/ChangeLog
+++ /dev/null
@@ -1,370 +0,0 @@
-Thu Jan 25 12:48:33 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * agent/Makefile.orig
- asnmp/address.h.orig
- examples/next/next.cpp
- examples/trap/trap.cpp
- examples/walk/walk.cpp
- tests/test_config.h
- tests/Varbind_Test.cpp
- tests/Counter64_Test.cpp
- tests/run_tests.sh
-
- New agent Makefile, and compilation fixes.
-
-Sun Jun 4 14:51:33 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * asnmp-overview.html:
-
- Added missing CVS Id string.
-
-Tue Dec 21 16:22:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/*.cpp: removed the unnecessary explicit template
- instantiation. Other instantiations were necessary
- with it, and it seemed to serve no useful purpose:
- there was no use of an ACE_Unbounded_Set<Log_Msg *>.
- Thanks to Jose Rubio <jrubio@tr.comm.mot.com> for
- reporting link failures with Sun CC 5.0, with explicit
- template instantiation enabled.
-
- * tests/test_config.h: added #include of "ace/ACE.h",
- because the file uses it later. g++ 2.91.66 on Linux
- needed it.
-
-Wed Jul 14 08:26:42 1999 Brian Raven <brianr@liffe.com>
-
- * asnmp/snmp.{h,cpp},wpdu.cpp:
- SYNOPSIS:
- 1) The agent IP address in traps originating from logical
- domains on an Enterprise 10000 is that of the physical domain.
-
- 2) The code that gets the IP address uses gethostbyname
- which is unsafe in a MT environment (according to the man page).
-
- DESCRIPTION:
- 1) The problem seems to be caused by hostname only returning
- the physical domain name.
-
- SAMPLE FIX/WORKAROUND:
- 1) To get around this problem I added the capability to
- override the local host name.
-
- 2) I would suggest using the GenAddress class to obtain the
- IP address.
-
-Tue Jun 22 13:34:54 1999 David L. Levine <levine@cs.wustl.edu>
-
- * agent/Makefile: replaced rm -f with $(RM).
-
-Thu Apr 29 06:46:46 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Makefile: changed SRC to PSRC (for make depend).
- Thanks to Sandeep Goyal <sagoyal@hss.hns.com> for reporting
- that the Makefile was broken.
-
-Mon Dec 28 22:03:57 1998 David L. Levine <levine@cs.wustl.edu>
-
- * agent/main.cpp: added #include "ace/inc_user_config.h", for
- ACE_RCSID definition. Thanks to wym <wym@dekang.com> for
- reporting that it won't compile without it.
-
-Tue Oct 27 08:52:05 1998 David L. Levine <levine@cs.wustl.edu>
-
- * asnmp/Makefile,tests/Makefile: added SRC definition for make depend, and updated dependencies.
-
-Mon Aug 3 17:50:08 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * examples/get/get_async.cpp:
- * examples/get/get.cpp:
- Added ACE_RCSID to these files.
-
-Fri Jul 31 19:26:07 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * examples/Makefile:
- It had a missing info subdirectory.
-
- * agent/agent_impl.cpp:
- * agent/main.cpp:
- * agent/snmp_agent.cpp:
- * asnmp/address.cpp:
- * asnmp/asn1.cpp:
- * asnmp/counter.cpp:
- * asnmp/ctr64.cpp:
- * asnmp/gauge.cpp:
- * asnmp/integer.cpp:
- * asnmp/octet.cpp:
- * asnmp/oid.cpp:
- * asnmp/pdu.cpp:
- * asnmp/sagent.cpp:
- * asnmp/snmp.cpp:
- * asnmp/target.cpp:
- * asnmp/timetick.cpp:
- * asnmp/transaction.cpp:
- * asnmp/vb.cpp:
- * asnmp/wpdu.cpp:
- * examples/get/get.cpp:
- * examples/next/next.cpp:
- * examples/set/set.cpp:
- * examples/trap/trap.cpp:
- * examples/walk/walk.cpp:
- * tests/Address_Test.cpp:
- * tests/Counter64_Test.cpp:
- * tests/Counter_Test.cpp:
- * tests/Gauge_Test.cpp:
- * tests/Integer_Test.cpp:
- * tests/Octet_Test.cpp:
- * tests/Oid_Test.cpp:
- * tests/Target_Test.cpp:
- * tests/Varbind_Test.cpp:
- Added ACE_RCSID to these files.
-
-Wed Jul 15 20:34:55 CDT 1998
- * general fixes for SNMPv1 trap generation code reported by
- Hien Nguyen <hnguyen@adcapex.com> and Jeff Hall <jeff@liffe.com>
- Added Hien's fixes, plus fixed -c option
- in examples/trap to properly set community string.
- * release 2.0
-
-Fri Jan 30 15:29:42 CST 1998
- * fix vb.cpp to handle Gauge/uInt the same way. While retrieving
- ifTable found the bug.
-
-Wed Dec 10 12:09:36 CST 1997
- * sagent.cpp, Eric Newton fix. result not checked. v1.8
-
-Mon Dec 8 14:33:59 CST 1997
- * Thanks to Eric Newton's <ecn@smart.net> continued patches
- Version 1.7 has fixes for: agent, base library
- Fix to the response type fixes the interoperability with CMU snmp on
- linux. (and SNMP Research as well)
-
- Initialize member of Pdu: output_
- Send responses as response messages
- Deallocate and reset the io_vec
-
- The transaction object didn't initialize the io_vec used to receive
- a packet when it was used for an agent transaction.
-
- Cleans up a warning about using a const object from a previous
- patch.
-
- Removes the transaction object from the Reactor.
-
-
-Sun Nov 30 17:49:12 CST 1997 Mike MacFaden <mrm@tango.cs.wustl.edu>
- * Thanks to Eric Newton's <ecn@smart.net> apply patches:
- Removed G++ warnings:
- Removed unused variables
- Cleaned up unused args to functions
- Initialized variables
- Inserted casts in *printf* functions
- Added int return types to function definitions
- Converted some variables from int to size_t to cut down on
- sign comparison warnings
- Reordered constructor initializer lists
- Added return statements to functions returning int
-
- Modified for G++ language differences:
- Modified for loops for ANSI scoping rules
-
- Fixed Bugs:
- Deleted incorrect (cut-n-pasted) header to transaction.h
- Removed "assignment in if condition" error
- Added missing "break;" in switch statement in wpdu
-
- Features:
- Added async interface.
-
- Noise:
- Modified makefiles for g++ on Linux RedHat 4.1
-
- * The new async interface has a test example in examples/get/get_async.cpp
- that is useful if you are extending the get application.
-
- * Fixed makefile to include -lasnmp when building tests/examples
-
- * Compile and test with ACE 4.4 on Solaris 2.5.1 using Sun CC 4.2
- no warnings/errors. get_async will sigbus however in destructors.
-
-Thu Sep 4 18:56:12 1997 Mike MacFaden <mrm@tango.cs.wustl.edu>
-
- * commit agent/ mibs/ and update asnmp/ with sagent.h, cpp
- to implement a trivial SNMPv1 agent that hard codes support
- for mib II system group only.
-
-Fri Aug 22 23:43:20 1997 Mike MacFaden <mrm@tango.cs.wustl.edu>
-
- * clean up two memory leaks in octet class and one umr
-
-Thu Aug 21 20:59:23 1997 Mike MacFaden <mrm@tango.cs.wustl.edu>
-
- * Added Netbios address support to GenAddress
- and added DecNetAddress, AppleTalkAddress classes per CISCO-TC.my
- (ftp://ftp.cisco.com/pub/mibs)
-
-Tue Aug 19 20:19:32 1997 Michael R. MacFaden <mrm@mrm-ss20.cisco.com (Michael R. MacFaden)>
- * change IpAddress::is_arpa() to is_private() and update the comments
- per RFC 1597. Add new test routine to verify this function in
- tests/Address_Test.cpp
-
- * add IpAddress::to_octet(OctetStr& val) which is useful when having to
- send a network address as an Octet String as in CISCO-PING-MIB.my
-
-Tue Aug 5 12:12:39 1997 Mike MacFaden (mrm@mrm-ss20)
- * Thanks to Amos Shapira <amos@gezernet.co.il> apply patches
- to support IRIX 6.3. Stated request for:
- I think it would make things "righter" to make the code use C++
- strings (and maybe vectors?).
-
- * Begin testing on HP-UX 10.01 (missing ucontext.h)
-
-Sat Aug 2 12:07:43 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Started to integrate the code into a more ACE-like style, e.g.,
- added a the "asnmp/" prefix to all the header files so that we
- don't need to play games with the -I flags and so we can always
- know where we're getting the headers from.
-
-Fri Aug 1 19:23:52 1997 Mike MacFaden (mrm@mrm-ss20)
-
- * NOTES: This first version only tested on Solaris 2.5
-
- * review classes for thread safety. Current thread design only
- allows for one thread to safely access any ASNMP object created.
-
- * run purify test of get routine no -memory leaks.
-
- * verify both shared archive/static archive types work with
- example programs
-
- * << Globals Changes >>
-
- * tested only archiver library version
-
- * reformat code to use one brace style.
-
- * changed all manifest constants defined as _XX to XX_ to stay out
- of compiler namespace
-
- * change all OS calls to use ACE_OS:: portability layer, #include
- <ace/OS.h>
-
- * reformat code to use one consistent brace layout and redo
- header using ACE
-
- * remove semicolons on member functions foo{}; - not necessary
-
- * make get() methods const member functions
-
- * removed unnecessary casts that looked like this: and revamped
- all memory allocations via ACE_NEW macro
-
- new_oid = (SmiLPUINT32) new unsigned long [ smival.value.oid.len
-
- To
-
- ACE_NEW(new_oid, SmiUINT32[ smival.value.oid.len])
-
- * Collapsed default constructors with constructors to constructors
- with default arguments.
-
- * removed unused #include <iostream.h>
-
- * Added ACE_TRACE() to classes
-
- * change get_printable() to to_string() - there will be more java
- programmers in the future so this should be the first step...
-
- * removed ASYNC interface till it can be rebuilt using ACE patterns
-
- * Attempt to make interface more type strict but leaving generic
- interfaces as escape hatch. Example: CTarget becomes UdpTarget
- for UDP/IP based agents.
-
- * << Class Specific Changes >>
-
- * Oid class:
- - remove char * routines, simplify class
- - added suboid method and removed get_printable() overloads
-
- * CTarget class:
- - renamed to UdpTarget. Stay out of Microsoft Namespace per MSJ
- Article by Allen Hollub.
-
- * Varbind class:
- - remove generic set_value for char,int, etc. Too easy to get
- this wrong. Allow just types defined.
- - added overload for equality operator (==)
- - added new constructor to allow setting full vb state oid,value, exception
- - add to_string()
-
- * Address class:
- - change manifest constants to enums for address lengths, add IP V6 lens
-
- - add a netbios name class, still pretty worthless since I don't have spec
- in front of me yet...
-
- - rewrite resolver calls to be thread safe and cleaner by moving to two
- class (static) member functions:
-
- // thread safe routine to lookup ip address given hostname
- // return <> 0 on error
- static int resolve_to_addr(const char *hostname, in_addr& quad_addr);
-
- // thread safe routine to lookup name given ip address
- // return <> 0 on error
- static int resolve_to_hostname(const in_addr& quad_addr, char *hostname)
-
- * added some interrogation routines to class IpAddress:
- is_loopback() const;
-
- * Ctr64 class:
- - added constructor using long long datatype (needs to be made
- portable to NT
-
- * Pdu class: add to_string()
-
- * Classes added wpdu class:
- - a new adpater class between CMU and HP pdu, varbind data structures
-
- * transaction class:
- - implement get/getnext timeout and retry logic using ACE
- Reactor class, ACE_Time_Value
-
-Sat Jul 5 19:13:30 1997 Mike MacFaden (mrm@mrm-ss20)
-
- * unpacked snmp++.tar.Z into ACE_wrappers, remove X11 support. If
- you need GUI support in a communications package, something's
- wrong, very wrong....
-
- * Change HP-UX Makefiles to use ACE makefile system
-
- * Change includes to use ACE OS Adaption Layer
-
- * change all OS calls to use ACE_OS:: versions
-
- * Add ACE_TRACE macros to all functions.
-
- * clean up the global namespace by puting all global functions
- into C++ classes as static member functions and make public only
- those that are used (uxsnmp.cpp, eventlist.cpp)
-
- * create README from readme.txt, COPYRIGHT files.
-
- * create tests/ directory rename ConsoleExamples to examples
-
- * cull out dead code modules and dump them into misc dir:
- oidname.cpp, ipresolv.cpp
-
- * ipresolv.cpp had broken hostname buffer size (200), when DNS has
- aways defined a max FQDN as 256...go figure.
-
- * add General Error handler since existing ones are not very
- useful in and of themselves.
-
- * change all _DEF to DEF_ since _ANYTHING is reserved for compiler
- writer namespace, NOT app writer
-
- * convert cmu code to use C++ new/delete from malloc/free so
- entire library uses C++ new constructor
diff --git a/ASNMP/Makefile b/ASNMP/Makefile
deleted file mode 100644
index dfcb25362d9..00000000000
--- a/ASNMP/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-#----------------------------------------------------------------------------
-# @(#)Makefile 1.1 10/18/96
-#
-# Makefile for the SNMP+ACE examples directory
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = asnmp \
- examples \
- 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
-
-
-LDLIBS := -L$(ACE_ROOT)/ASNMP/asnmp -lasnmp $(LDLIBS:%=%$(VAR))
-
-# 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/ASNMP/README b/ASNMP/README
deleted file mode 100644
index f07563c61a5..00000000000
--- a/ASNMP/README
+++ /dev/null
@@ -1,177 +0,0 @@
-Fri Dec 18 09:43:35 CST 1998
-====================================================================
-ASNMP = ACE+SNMP++ Version 2.1
-By Michael R. MacFaden mrm@acm.org, mrm@yagosys.com
-====================================================================
-
-What is ASNMP ? ==> ACE+SNMP! aka Another SNMP API
- HP's SNMP++ 2.5 freely available C++ SNMP class library
- has been adapted to the ACE 4.2 Framework.
-
-What is Simple Network Management Protocol(SNMP)?
- See the FAQ:
- http://www.snmp.com/FAQs/snmp-faq-part1.txt
- http://www.snmp.com/FAQs/snmp-faq-part2.txt
-
-
-What was changed from HP version?
- See src/ChangeLog file.
-
-Is HP SNMP++ compatible with ASNMP?
- It is neither source nor binary compatible. About 10% of the API has changed.
- There have been API changes to make the interface more orthogonal
- and to reduce implementation complexity such as consolidating constructors
- with default formal values, and to remove some inconsistencies
- with the HP interface as well as locking down valid() semantics, etc.
-
-What platforms have the test programs been verified on?
- Solaris 2.4, 2.5.1 using SUN C++ 4.1,4.2 compiler. Linux/GCC
- fixes are now in as well.
-
-Why use this version?
- The SNMP++ version ships only for HP-UX and for Windows.
- It is not very portable nor does it do a good job at checking
- for out of memory exhaustion conditions (asn1.cpp). There is some great
- code here. ACE needs an SNMP library to build NM type
- communications applications. Hence ASNMP was born in my spare time.
-
-How does ASNMP differ from SNMP?
- Current version uses ACE OS Adaption layer. All memory
- allocation is now consistent, uses ACE_NEW().
- Standard ACE Debugging (ACE_TRACE) has been inserted.
- ASNMP has less global namespace pollution by moving all non-class
- functions into interface classes or made into static locals.
-
- An agent inteface has been added (asnmp/sagent.h) so both agents
- and managers can use this class library. A trivial agent
- exists in ASNMP/agent/
-
- X11 GUI support removed from this version since this is
- not the place to include GUI support in the new world of
- multi-threaded apps.
-
- The async interface does not match the HP implementation.
-
-How to build this library
- Set ACE_ROOT and platform_macros.GNU per ../INSTALL file.
- create libasnmp.a, libasnmp.so and then run the tests
-
-Any Support for ASNMP?
- As time permits from the mailing list.
-
-Where to ask questions?
- Please use ace-users@cs.wustl.edu mailing list or mrm@acm.org
-
-NOTE: Please do not bother Eric Mellquist unless you are using
- the original HP version of this library.
-
-Where can I get the original HP SNMP++?
- From ftp://rosegarden.external.hp.com:/pub/snmp++
-
-What version of SNMP is fully supported?
- SNMP Version 1 (RFC 1155,1157, 1215)
-
-What about SNMP Version 2c?
- V2c is defined in RFC 1901 - 1908
- These bits are added to v1 code in this library: GetBulk PDU, Counter64
- These bits are missing Inform (RFC 1905)
- RFC 1903 defined new datatypes using existing SMI via macros.
- These should be coded as if they were SMI datatypes to encapsulate
- their behavior. V2c hasn't been deployed
-
-What about SNMP Version 3?
- It is looking good for V3, but so far, we're just watching.
- http://www.ietf.org/html.charters/snmpv3-charter.html
- A C implemenation is now available from UC Davis.
-
-What copyrights/legal requirements are required when using this code?
- See ./COPYRIGHT
-
-Does this really work?
- See tests/ directory for the current test reports (purify/purecov/...).
-
-How does one Extend an SNMP Agent?
- Extending an agent typically means updating the agent source or
- using a dynamic link style API. RFC 2257 (AgentX) is the current design
- for doing this in a standard way. This hasn't been well formalized yet
- so extending an existing agent is still a vendor API thing.
-
- The agent provided here is a template. A mib compiler and agent
- library typically provide better agent support. See the UC-Davis
- SNMP software for an example Agent that is portable and can report
- on many flavors of UNIX and Windows.
-
-Any Future Plans?
- The ASNMP library will be improved for performance and made to use
- higher level design patterns. Hopefully it will be used as a
- vehicle for grad students to learn something about network mgmt
- code work a related cousin of general distributed programming.
-
-
-Regards,
-Michael R. MacFaden
-Member of the Technical Staff
-Cabletron Systems, Inc.
-215 Moffet Park Drive
-Sunnyvale, CA 94089
-mrm@yagosys.com
-http://www.yagosys.com
-
-====================================================================
-SNMP++ For UNIX Source Code and Examples:
-====================================================================
-Included within this package can be found the source code and
-examples for SNMP++. The following represents the directories which
-are included within the compressed tar file and their contents.
-
-For more details on the API , please refer to the API specification.
-
-This library is a complete implementation of SNMP++ and does not
-require other SNMP libraries to be present.
-
-Required Tools:
----------------------------------------------------------------------
-
-
-readme.txt ( this file)
-|
-|
-|------ src ( .cpp files and Makefile for building libraries )
-|
-|------ examples ( a variety of apps, .cpp and Makefile included )
-|
-|------ tests - unit test routines
-
-
-src Directory Contents:
---------------------------------------------------------------------
-Makefile - make file for ACE/Solaris 2. build
-target.cpp - Collection of attributes(address, timeout, etc) used
- to define a command session
-snmp.cpp - A logical session between NM app and agent
-pdu.cpp - Pdu class source (vb list and API command)
-wpdu.cpp - Adapter pattern based class between CMU and HP code
-transaction.cpp - synchronous transaction clss
-vb.cpp - Variable Binding class source (oid + value)
-
-<< SMI datatypes used to get/set values in SNMPv1 agents >>
-
-address.cpp - Address class source
-gauge.cpp - Gauge32 class source
-integer.cpp - Integer32 class source
-counter.cpp - Counter32 class source
-ctr64.cpp - Counter64 class source
-timetick.cpp - TimeTicks class source
-octet.cpp - Octet String class source
-oid.cpp - Oid class source
-asn1.cpp - ASN1 encoding and decoding code. CMU code.
-
-examples Directory Contents:
----------------------------------------------------------------------
-Makefile - make file for building console apps
-get.cpp - source for SNMP get program
-next.cpp - source for SNMP get Next program
-set.cpp - source for SNMP set program
-trap.cpp - source for SNMP trap send program
-walk.cpp - source for SNMP walk program
-
diff --git a/ASNMP/TO-DO b/ASNMP/TO-DO
deleted file mode 100644
index a05b7106f58..00000000000
--- a/ASNMP/TO-DO
+++ /dev/null
@@ -1,3 +0,0 @@
-TODO:
- - Attempt to make all subroutines thread safe
- - work on test suite - validate basic stuff doesn't leak
diff --git a/ASNMP/agent/Makefile b/ASNMP/agent/Makefile
deleted file mode 100644
index 4c2fba1d9b5..00000000000
--- a/ASNMP/agent/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = agent
-
-SRC = agent_impl.cpp main.cpp snmp_agent.cpp
-
-LIBS += -L$(ACE_ROOT)/ASNMP/asnmp -lasnmp
-
-#----------------------------------------------------------------------------
-# 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.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-CPPFLAGS += -I$(ACE_ROOT)/ASNMP
-
-BIN = agent
-
-all: $(BIN)
-
-agent: $(addprefix $(VDIR),agent_impl.o main.o snmp_agent.o)
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-#----------------------------------------------------------------------------
-# 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/ASNMP/agent/agent_impl.cpp b/ASNMP/agent/agent_impl.cpp
deleted file mode 100644
index 0c3f8da4078..00000000000
--- a/ASNMP/agent/agent_impl.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-// $Id$
-
-// implement a prototype SNMP Agent using ASNMP and ACE
-
-#include <ace/Reactor.h>
-#include <ace/SOCK_Dgram.h>
-#include <ace/INET_Addr.h>
-
-#include "agent_impl.h"
-
-ACE_RCSID(agent, agent_impl, "$Id$")
-
-agent_impl::agent_impl(unsigned short port, const char *rd, const char *wr) :
-sagent(port)
-{
- ACE_TRACE("agent_impl::agent_impl");
- tgt_.set_read_community(rd);
- tgt_.set_write_community(wr);
- agent_clock_.start();
-}
-
-agent_impl::~agent_impl()
-{
- ACE_TRACE("agent_impl::~agent_impl");
-}
-
-// callback : have received a Pdu from the target host with given read comm str
-// this is really simplistic, but gives the general idea
-int agent_impl::handle_get( Pdu &pdu, UdpTarget &target)
-{
- ACE_TRACE("agent_impl::handle_get");
- OctetStr mgr_rd_str, agent_rd_str;
- target.get_read_community(mgr_rd_str); // requster's read community string
- tgt_.get_read_community(agent_rd_str); // this agent's read community string
-
- // 1. verify we have a valid read string else drop pdu (no response to caller)
- if (mgr_rd_str != agent_rd_str) {
- ACE_DEBUG((LM_DEBUG, "agent_impl::handle_get: invalid read community recvd\n"));
- return 0;
- }
-
- // 2. iterate over each varbind in the pdu, filling providing responses
- int fdone = 0;
- for (int i = 0; (i < pdu.get_vb_count()) && !fdone; i++) {
- Vb vb;
- pdu.get_vb(vb, i);
- if (get_response(vb)) { // set a value for the oid if we can else
- set_error_status(&pdu, SNMP_ERROR_NO_SUCH_NAME); // these ought to be member
- set_error_index(&pdu, i); // functions but are not yet...
- fdone++; // trigger flag to exit loop early
- }
- else // failed, return noSuch error
- pdu.set_vb(vb, i);
- }
-
- // 3. lastly, return the pkt to the caller
- return respond(pdu, target);
-}
-
-// this routine makes up the brains of the agent
-// it knows only the MIB II system group set of variables for a get operation
-int agent_impl::get_response(Vb& vb)
-{
- // these objects represent the MIB II system group per RFC 1213
- static Oid sysDescr("1.3.6.1.2.1.1.1.0"),
- sysObjectID("1.3.6.1.2.1.1.2.0"), sysUpTime("1.3.6.1.2.1.1.3.0"),
- sysContact("1.3.6.1.2.1.1.4.0"), sysName("1.3.6.1.2.1.1.5.0"),
- sysLocation("1.3.6.1.2.1.1.6.0"), sysServices("1.3.6.1.2.1.1.7.0");
-
- Oid oid;
- vb.get_oid(oid);
- if (oid == sysDescr) {
- OctetStr desc("ASNMP Prototype Agent 1.0");
- vb.set_value(desc);
- }
- else if (oid == sysObjectID) { // the IANA gives assigns Enterprise Numbers
- // see ftp://ftp.isi.edu/in-notes/iana/assignments/enterprise-numbers
- // for the official list of enterprise numbers. Then under this tree
- // assign a unique subtree to identify this agent
- Oid id("1.3.6.1.4.1.2533.9.1");
- vb.set_value(id);
- }
- else if (oid == sysUpTime) {
- ACE_Time_Value tv;
- agent_clock_.elapsed_time (tv);
- TimeTicks tt(tv.msec());
- vb.set_value(tt);
- }
- else if (oid == sysContact) {
- OctetStr contact("mrm@acm.org");
- vb.set_value(contact);
- }
- else if (oid == sysName) {
- OctetStr fqdn("foo.org"); // extract this from the gethostbyname() TODO
- vb.set_value(fqdn);
- }
- else if (oid == sysLocation) {
- OctetStr loc("");
- vb.set_value(loc);
- }
- else if (oid == sysServices) {
- SnmpInt32 svcs(72);
- vb.set_value(svcs);
- }
- else
- return 1; // noSuchName
-
- return 0;
-}
-
-int agent_impl::handle_get_next( Pdu &pdu, UdpTarget &target)
-{
- ACE_TRACE("agent_impl::handle_get_next -NI");
- return 0;
-}
-
-int agent_impl::handle_set( Pdu &pdu, UdpTarget &target)
-{
- ACE_TRACE("agent_impl::handle_set -NI");
- return 0;
-}
-
-// stuff used by process_requests
-
-// called when SIGINT
-static sig_atomic_t finished = 0;
-
-extern "C" void
-sig_handler (int)
-{
- ACE_TRACE("::sig_handler");
- finished = 1;
-}
-
-int agent_impl::process_requests()
-{
- ACE_TRACE("agent_impl::process_requests");
- ACE_Reactor reactor;
-
- ACE_Sig_Action sa ((ACE_SignalHandler) sig_handler, SIGINT);
- ACE_UNUSED_ARG (sa);
-
- // Read data from other side.
- if (reactor.register_handler (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "ACE_Reactor::register_handler"), -1);
-
- // TODO: register signal handler to shut down gracefully here
-
- while (!finished)
- {
- reactor.handle_events ();
- ACE_DEBUG ((LM_DEBUG, "return from handle events\n"));
- }
-
- ACE_DEBUG ((LM_DEBUG, "return from handle events - normal shut down\n"));
- return 0;
-}
diff --git a/ASNMP/agent/agent_impl.h b/ASNMP/agent/agent_impl.h
deleted file mode 100644
index 60ee90034a2..00000000000
--- a/ASNMP/agent/agent_impl.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ASNMP
-//
-// = FILENAME
-// agent_impl.h
-//
-// = AUTHOR
-// Michael R. MacFaden
-//
-// ============================================================================
-
-#ifndef AGENT_IMPL_H
-#define AGENT_IMPL_H
-
-#include <ace/Event_Handler.h>
-#include <ace/SOCK_Dgram.h>
-#include <ace/INET_Addr.h>
-#include <ace/High_Res_Timer.h>
-#include <asnmp/sagent.h>
-#include <asnmp/vb.h>
-
-class agent_impl : public sagent
-{
-public:
- agent_impl(unsigned short port, const char *rd, const char *wr);
- virtual ~agent_impl();
-
- virtual int handle_get( Pdu &pdu, UdpTarget &target);
- // retrieve data from a peer agent for a given list of oid values
-
- virtual int handle_get_next( Pdu &pdu, UdpTarget &target);
- // retrieve data lexically adjacent to the oids specified in the pdu
- // from the peer agent
-
- virtual int handle_set( Pdu &pdu, UdpTarget &target);
- // set data in the agent from the list of oids in the pdu
-
- int process_requests();
- // main loop here using a reactor object
-
-private:
- UdpTarget tgt_; // this agent's read, write community strings
- int get_response(Vb& vb); // set values for a "get" cmd
- ACE_High_Res_Timer agent_clock_; // agent "uptime" ticks reported in 1/100 second
-};
-
-#endif /* AGENT_IMPL_H */
diff --git a/ASNMP/agent/main.cpp b/ASNMP/agent/main.cpp
deleted file mode 100644
index 2aec17babbc..00000000000
--- a/ASNMP/agent/main.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// $Id$
-
-// This server daemon processes SNMP Version 1 get, get-next, and set
-// commands. over the MIB II "System" group only.
-
-#include "ace/config-all.h"
-#include "snmp_agent.h"
-
-ACE_RCSID(agent, main, "$Id$")
-
-int main (int argc, char *argv[])
-{
- snmp_agent the_agent;
-
- if (the_agent.set_args(argc, argv)) {
- return 1;
- }
-
- if (!the_agent.valid()) {
- return 1;
- }
-
- the_agent.run(); // main loop
-
- return 0;
-}
diff --git a/ASNMP/agent/snmp_agent.cpp b/ASNMP/agent/snmp_agent.cpp
deleted file mode 100644
index 43a5342a3ec..00000000000
--- a/ASNMP/agent/snmp_agent.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-// $Id$
-
-// This server daemon processes SNMPv1 requests over MIB II System group
-
-#include "snmp_agent.h"
-#include "agent_impl.h" // actual implementation
-#include "ace/Get_Opt.h"
-#include "ace/Reactor.h"
-
-ACE_RCSID(agent, snmp_agent, "$Id$")
-
-// module globals
-#define SNMP_AGENT_PORT (161)
-#define WR_COM ("private")
-#define RD_COM ("public")
-
-snmp_agent::snmp_agent() : agent_(0)
-{
- ACE_TRACE("snmp_agent::snmp_agent");
-}
-
-snmp_agent::~snmp_agent()
-{
- ACE_TRACE("snmp_agent::~snmp_agent");
- delete agent_;
-}
-
-
-int snmp_agent::valid() const
-{
- ACE_TRACE("snmp_agent::valid");
- return (agent_ != 0);
-}
-
-int snmp_agent::set_args(int argc, char *argv[])
-{
- ACE_TRACE("snmp_agent::set_args");
- unsigned short port = SNMP_AGENT_PORT;
- char *rd = RD_COM, *wr = WR_COM;
-
- ACE_Get_Opt get_opt (argc, argv, "p:w:r:hv");
- for (int c; (c = get_opt ()) != -1; ) {
- switch (c)
- {
- case 'p':
- port = (ACE_OS::atoi (get_opt.optarg));
- break;
- case 'w': // write community string
- wr = get_opt.optarg;
- break;
- case 'r': // read community string
- rd = get_opt.optarg;
- break;
-
- case 'h': // help & version info
- case 'v':
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Example SNMP Version 1 Agent - ASNMP/ACE\n"));
- return -1;
- break;
-
- default:
- return -1; // invalid arg
- }
- }
-
-
- agent_ = new agent_impl(port, rd, wr); // opens OS IO port
- return 0;
-}
-
-int snmp_agent::run()
-{
- ACE_TRACE("snmp_agent::run");
- ACE_ASSERT(agent_);
-
- // open service port
-#if 0
- if (agent_->open_port()) {
- ACE_DEBUG((LM_DEBUG, "(%P|%t) open port %d failed\n", agent_->get_port()));
- return -1;
- }
-#endif
-
- // Run forever, processing SNMP requests.
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) starting up snmp agent (server) daemon\n"));
-
- agent_->process_requests();
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) shutting down snmp agent (server) daemon\n"));
- return 0;
-}
-
diff --git a/ASNMP/agent/snmp_agent.h b/ASNMP/agent/snmp_agent.h
deleted file mode 100644
index a7fc4c42de8..00000000000
--- a/ASNMP/agent/snmp_agent.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// $Id$
-
-/* -*-C++-*- */
-
-#ifndef SNMP_AGENT_
-#define SNMP_AGENT_
-// ============================================================================
-//
-// = LIBRARY
-// ASNMP
-//
-// = FILENAME
-// snmp_agent.h
-//
-// = AUTHOR
-// Michael R. MacFaden (mrm@cisco.com)
-//
-// ============================================================================
-
-class agent_impl;
-
-class snmp_agent {
- // = TITLE
- // An SNMP v1 agent class
- //
- // = DESCRIPTION
- // Contructs agents that are capable of processing SNMPv1 requests
- // over the MIB II System group
-
- public:
- snmp_agent(); // uses port 161, public, private
- ~snmp_agent();
-
- int valid() const;
- // did object construct ok
-
- int set_args(int argc, char *argv[]);
- // runtime arguments such as community strings, port to use
-
- int run();
- // begin processing requests
-
- private:
- snmp_agent(const snmp_agent&);
- agent_impl *agent_;
-};
-
-#endif // SNMP_AGENT_
diff --git a/ASNMP/asnmp-overview.html b/ASNMP/asnmp-overview.html
deleted file mode 100644
index 4e336178b0d..00000000000
--- a/ASNMP/asnmp-overview.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<html>
-<!-- $Id$ -->
-<! by Michael R. MacFaden mrm@cisco.com >
-<title>ASNMP Overview</title>
-
-<h1>ASNMP Overview</h1>
-
-<p>The Another SNMP class library is an Object Oriented programming
-toolkit for using IETF standard network management protocols in the
-Internet. The SNMP protocol is perhaps the most ubiquitous management
-protocol running on most very device or application deployed in the
-modern network today.
-
-<p>ASNMP is targeted to programmers that want to write command and
-control (C&C) applications. C&C Applications communicate with
-a variety of objects:
-<sl>
-<li>network devices such as ATM switches, Internet routers,
-LAN bridges and LAN printers
-<li>Routing protocols such as OSPF
-<li>database servers such as ORACLE or Informix.
-
-<p>ASNMP Version 1 implements a blocking SNMP Version 1 with some
-Version 2c additions (Counter32, Counter64 SMI values). See
-SNMP Version 1 as defined in the IETF Request for Comments (RFC)
-<sl>
-<li>1155
-<li>1157
-<li>1213
-<li>1215
-<sl>
-<p>Also see the RFC 1902 spec for new SMI datatypes such as Counter64.
-
-<p>ASNMP is built using the CMU SNMP and HP SNMP++ as the base
-classes then modified for use in the ACE framework. About 10% of the API
-changed during code rework. See ASNMP/asnmp/ChangeLog for details.
-
-<p>ASNMP can be used for either manager applications or agent applications.
-The <i>Snmp</i> class contains the interface for manager applications. The
-<i>sagent</i> class contains the interface for agent applications. A
-trivial agent that implements the mib II system group per rfc1213 is
-in the agents/ directory.
-
-<h2>Class Heirarchy</h2>
-
-<pre>
-UdpTarget - Defines a collection of attributes needed to define a
- communications session with an SNMP agent
- This includes network address, response timeout, etc.
-
-Snmp - A logical session between NM app and agent. Provides the
- commands get, get_next, trap. Manages transactions between app and
- server.
-
-Pdu - A container object that represents an SNMP Protocol Data Unit.
- A Pdu contains a command (get,getnext,trap) Varbind List list,
- a community string.
-
-Vb - Aka Varbind or Variable Binding. A pdu can have zero,
- one or more of these. A Vb consists of an Oid to identify
- the variable and a value corresponding to one of the SMI values.
- The oid/value binding is defined in a MIB file (RFC 1155)
- Agents hava a MIB file that defines what each variable means.
- Most agents implement MIB II as defined in RFC 1156.
-
-<p>The Structure of Managment Information (SMI) datatypes
-and related types are:
-<ul>
-<li>Address->IpAddress->UdpAddress as well as MAC, IPX, IPXSOCK, Netbios
-<li>Unsigned Integer
-<li>Gauge32
-<li>Integer32
-<li>Counter32
-<li>Counter64
-<li>TimeTicks
-<li>OctetStr
-<li>Oid
-</ul>
-
-<hr>
-
-<h2>Sample program</h2>
-<p>A sample Object to get obtain an Agent's Systems' Description
-given an network address and a community string.
-
-class system_id {
- public:
- system_id(UdpAddress addr, OctetStr read_community_string)
- {
- UdpTarget tgt;
- Snmp snmp;
- Pdu pdu;
- Oid oid("1.3.6.1.2.1.1.1.0");
- Vb vb(oid);
- tgt.set_address(addr);
- tgt.set_read_community(read_community_string);
- pdu += vb;
-
- if (snmp.get(pdu, tgt) == 0) {
- pdu.get_vb(vb, 0);
- vb.get_value(desc_);
- }
- else
- desc_ = "<error - no value set>"
- }
-
- int get_description(OctetStr& description) {
- description = desc_;
- return 0;
- }
-
-private:
- OctetStr desc_;
-};
-
-<h1>Future Directions</h1>
-<p>Here are some areas for further work
-<sl>
-<li>Add OO mib parser and mib code generator
-<li>Collapse the CMU/HP code into one set of classes.
-<li>Add full V2c support.
-<li>Size/Speed improvements
-</sl>
-
-<h1>References</h1>
-<ul>
-<li><a href="http://www.ece.ucdavis.edu/ucd-snmp/">UCD SNMP</a>
-<li><a href="news://comp.protocols.snmp">comp.protocols.snmp</a>
-<li><a href="http://snmp.cs.utwente.nl">University of Twente</a>
-<li><a href="http://www.cis.ohio-state.edu/hypertext/faq/bngusenet/comp/protocols/snmp/top.html">SNMP FAQ</a>
-<li><a href="http://www.adventnet.com/">Java based SNMP tools from Ardent</a>
-<li><a href="http://misa.zurich.ibm.com/Webbin/">IBM SNMP/CMIP research</a>
-</ul>
-</html>
diff --git a/ASNMP/asnmp/ChangeLog b/ASNMP/asnmp/ChangeLog
deleted file mode 100644
index af4c2469745..00000000000
--- a/ASNMP/asnmp/ChangeLog
+++ /dev/null
@@ -1,161 +0,0 @@
-Tue Mar 16 16:28:14 1999 David L. Levine <levine@cs.wustl.edu>
-
- * address.cpp, address.h, asn1.cpp, asn1.h, counter.cpp, ctr64.cpp,
- gauge.cpp, integer.cpp, octet.cpp, oid.cpp, pdu.cpp, sagent.cpp,
- snmp.cpp, target.cpp, timetick.cpp, transaction.cpp, vb.cpp,
- wpdu.cpp:
- replaced TRUE with 1, and FALSE and NULL with 0. Thanks to
- Achint Sandhu <sandhu@nortelnetworks.com> for reporting that
- TRUE and FALSE weren't define on his Linux platform.
-
- * wpdu.cpp (set_trap_info): wrapped condition with () to
- avoid g++ warning about using result of an assignment as
- the condition.
-
- * ctr64.cpp: made MAX64 unsigned, to avoid warning about it
- being to big to be signed.
-
-Wed Jul 15 20:27:23 1998 Mike MacFaden <mrm@tango.cs.wustl.edu>
- * asn1.cpp - Hien Nguyen <hnguyen@apexgrp.com> fixed these bugs:
-
- Problem: The V1 trap agent-addr field tag value is OCTET STRING
- instead of IPADDRESS, and the time stamp field tag value is INTEGER
- instead of TIME TICKS.
-
- Fix: Change cmu_snmp::build() to pass in the correct type for agent-addr
- and time stamp.
-
- 2. Problem: The V1 trap enterprise OID is corrupted after is was set in
- wpdu constructor.
-
- Fix: In wpdu::set_trap_info(), the raw_pdu enterprise OID pointer was
- assigned to the raw data of an enterprise Oid object on the stack.
- Changed to perform an ACE_NEW_RETURN on the raw_pdu->enterprise and
- perform a memcpy to copy the OID. The allocated memory is freed in
- cmu_snmp::free_pdu() as currently implemented.
-
- 3. The V1 trap agent-addr field is currently initialized to "0.0.0.0".
- I changed wpdu::set_trap_info to initialize it to the local host IP
- Address.
-
- 4. I noticed that the memory allocation for OID in asn1.cpp using
- ACE_NEW consistently use (OID length * size(oid)) as the size.
- Shouldn't it be simply OID length ? Since there are numerous instances
- of this usage in asn1.cpp, I have not fixed those. If you can double
- check and fix these, I appreciate it.
-
-
-Wed Aug 20 15:11:23 1997 Mike MacFaden <mrm@tango.cs.wustl.edu>
-
- * rebuilt Makefile using g++dep
-
- * pdu.h pdu.cpp initialization errors fixed
-
- * address.h address.cpp IpAddress::to_octet() added
-
-Fri Aug 1 19:23:52 1997 Mike MacFaden (mrm@mrm-ss20)
-
- * NOTES: This first version only tested on Solaris 2.5
-
- * review classes for thread safety. Current thread design only
- allows for one thread to safely access any ASNMP object created.
-
- * run purify test of get routine no -memory leaks.
-
- * verify both shared archive/static archive types work with
- example programs
-
- * << Globals Changes >>
-
- * tested only archiver library version
-
- * reformat code to use one brace style.
-
- * changed all manifest constants defined as _XX to XX_ to stay out
- of compiler namespace
-
- * change all OS calls to use ACE_OS:: portability layer, #include
- <ace/OS.h>
-
- * reformat code to use one consistent brace layout and redo
- header using ACE
-
- * remove semicolons on member functions foo{}; - not necessary
-
- * make get() methods const member functions
-
- * removed unnecessary casts that looked like this: and revamped
- all memory allocations via ACE_NEW macro
-
- new_oid = (SmiLPUINT32) new unsigned long [ smival.value.oid.len
-
- To
-
- ACE_NEW(new_oid, SmiUINT32[ smival.value.oid.len])
-
- * Collapsed default constructors with constructors to constructors
- with default arguments.
-
- * removed unused #include <iostream.h>
-
- * Added ACE_TRACE() to classes
-
- * change get_printable() to to_string() - there will be more java
- programmers in the future so this should be the first step...
-
- * removed ASYNC interface till it can be rebuilt using ACE patterns
-
- * Attempt to make interface more type strict but leaving generic
- interfaces as escape hatch. Example: CTarget becomes UdpTarget
- for UDP/IP based agents.
-
- * << Class Specific Changes >>
-
- * Oid class:
- - remove char * routines, simplify class
- - added suboid method and removed get_printable() overloads
-
- * CTarget class:
- - renamed to UdpTarget. Stay out of Microsoft Namespace per MSJ
- Article by Allen Hollub.
-
- * Varbind class:
- - remove generic set_value for char,int, etc. Too easy to get
- this wrong. Allow just types defined.
- - added overload for equality operator (==)
- - added new constructor to allow setting full vb state oid,value, exception
- - add to_string()
-
- * Address class:
- - change manifest constants to enums for address lengths, add IP V6 lens
-
- - add a netbios name class, still pretty worthless since I don't have spec
- in front of me yet...
-
- - rewrite resolver calls to be thread safe and cleaner by moving to two
- class (static) member functions:
-
- // thread safe routine to lookup ip address given hostname
- // return <> 0 on error
- static int resolve_to_addr(const char *hostname, in_addr& quad_addr);
-
- // thread safe routine to lookup name given ip address
- // return <> 0 on error
- static int resolve_to_hostname(const in_addr& quad_addr, char *hostname)
-
- * added some interrogation routines to class IpAddress:
- is_loopback() const;
-
- * Ctr64 class:
- - added constructor using long long datatype (needs to be made
- portable to NT
-
- * Pdu class: add to_string()
-
- * Classes added wpdu class:
- - a new adpater class between CMU and HP pdu, varbind data structures
-
- * transaction class:
- - implement get/getnext timeout and retry logic using ACE
- Reactor class, ACE_Time_Value
-
diff --git a/ASNMP/asnmp/Makefile b/ASNMP/asnmp/Makefile
deleted file mode 100644
index aabe678368a..00000000000
--- a/ASNMP/asnmp/Makefile
+++ /dev/null
@@ -1,1028 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the SNMP+ACE Release
-#----------------------------------------------------------------------------
-
-MAKEFILE = Makefile
-LIB = libasnmp.a
-SHLIB = libasnmp.$(SOEXT)
-
-FILES = address \
- asn1 \
- counter \
- ctr64 \
- gauge \
- integer \
- octet \
- oid \
- pdu \
- snmp \
- target \
- timetick \
- transaction \
- vb \
- wpdu \
- sagent
-
-TEMPLATE_FILES =
-
-DEFS = $(addsuffix .h,$(FILES))
-DEFS += $(addsuffix .i,$(FILES))
-LSRC = $(addsuffix .cpp,$(FILES))
-#LSRC2 = $(addsuffix .cpp,$(TEMPLATE_FILES))
-
-#### Build the SNMP++ shared library _before_ the static library.
-#### This works around an apparent problem with template
-#### instantiation with Sun C++ 4.1 and 4.2 (the symptom is link
-#### error due to ACE_TimeValue::normalize () not being found).
-BUILD = $(VSHLIB) $(SHLIBA) $(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
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-CCFLAGS += -I$(ACE_ROOT)/ASNMP/
-# For make depend:
-CPPFLAGS += -I$(ACE_ROOT)/ASNMP
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/address.o .obj/address.so .shobj/address.o .shobj/address.so: address.cpp \
- address.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- smival.h \
- smi.h \
- octet.h
-
-.obj/asn1.o .obj/asn1.so .shobj/asn1.o .shobj/asn1.so: asn1.cpp \
- asn1.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- snmp.h \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.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_Dgram.i \
- oid.h \
- smival.h \
- smi.h \
- vb.h \
- snmperrs.h \
- timetick.h \
- integer.h \
- counter.h \
- gauge.h \
- ctr64.h \
- octet.h \
- address.h \
- target.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- pdu.h \
- transaction_result.h
-
-.obj/counter.o .obj/counter.so .shobj/counter.o .shobj/counter.so: counter.cpp \
- counter.h \
- smival.h \
- smi.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- integer.h
-
-.obj/ctr64.o .obj/ctr64.so .shobj/ctr64.o .shobj/ctr64.so: ctr64.cpp \
- ctr64.h \
- smival.h \
- smi.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i
-
-.obj/gauge.o .obj/gauge.so .shobj/gauge.o .shobj/gauge.so: gauge.cpp \
- gauge.h \
- integer.h \
- smival.h \
- smi.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i
-
-.obj/integer.o .obj/integer.so .shobj/integer.o .shobj/integer.so: integer.cpp \
- integer.h \
- smival.h \
- smi.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i
-
-.obj/octet.o .obj/octet.so .shobj/octet.o .shobj/octet.so: octet.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- octet.h \
- smival.h \
- smi.h
-
-.obj/oid.o .obj/oid.so .shobj/oid.o .shobj/oid.so: oid.cpp \
- oid.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- smival.h \
- smi.h
-
-.obj/pdu.o .obj/pdu.so .shobj/pdu.o .shobj/pdu.so: pdu.cpp \
- snmp.h \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.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_Dgram.i \
- oid.h \
- smival.h \
- smi.h \
- vb.h \
- snmperrs.h \
- timetick.h \
- integer.h \
- counter.h \
- gauge.h \
- ctr64.h \
- octet.h \
- address.h \
- target.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- pdu.h \
- transaction_result.h
-
-.obj/snmp.o .obj/snmp.so .shobj/snmp.o .shobj/snmp.so: snmp.cpp \
- snmp.h \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.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_Dgram.i \
- oid.h \
- smival.h \
- smi.h \
- vb.h \
- snmperrs.h \
- timetick.h \
- integer.h \
- counter.h \
- gauge.h \
- ctr64.h \
- octet.h \
- address.h \
- target.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- pdu.h \
- transaction_result.h \
- enttraps.h \
- asn1.h \
- wpdu.h \
- transaction.h
-
-.obj/target.o .obj/target.so .shobj/target.o .shobj/target.so: target.cpp \
- target.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- address.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- smival.h \
- smi.h \
- octet.h \
- oid.h
-
-.obj/timetick.o .obj/timetick.so .shobj/timetick.o .shobj/timetick.so: timetick.cpp \
- timetick.h \
- integer.h \
- smival.h \
- smi.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i
-
-.obj/transaction.o .obj/transaction.so .shobj/transaction.o .shobj/transaction.so: transaction.cpp \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- transaction.h \
- target.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- address.h \
- smival.h \
- smi.h \
- octet.h \
- oid.h \
- pdu.h \
- vb.h \
- snmperrs.h \
- timetick.h \
- integer.h \
- counter.h \
- gauge.h \
- ctr64.h \
- transaction_result.h \
- wpdu.h \
- asn1.h \
- snmp.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.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_Dgram.i
-
-.obj/vb.o .obj/vb.so .shobj/vb.o .shobj/vb.so: vb.cpp \
- oid.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- smival.h \
- smi.h \
- vb.h \
- snmperrs.h \
- timetick.h \
- integer.h \
- counter.h \
- gauge.h \
- ctr64.h \
- octet.h \
- address.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/wpdu.o .obj/wpdu.so .shobj/wpdu.o .shobj/wpdu.so: wpdu.cpp \
- wpdu.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- asn1.h \
- snmp.h \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.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_Dgram.i \
- oid.h \
- smival.h \
- smi.h \
- vb.h \
- snmperrs.h \
- timetick.h \
- integer.h \
- counter.h \
- gauge.h \
- ctr64.h \
- octet.h \
- address.h \
- target.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- pdu.h \
- transaction_result.h \
- enttraps.h
-
-.obj/sagent.o .obj/sagent.so .shobj/sagent.o .shobj/sagent.so: sagent.cpp \
- $(ACE_ROOT)/ace/Reactor.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Reactor.i \
- $(ACE_ROOT)/ace/Reactor_Impl.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.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_Dgram.i \
- oid.h \
- smival.h \
- smi.h \
- vb.h \
- snmperrs.h \
- timetick.h \
- integer.h \
- counter.h \
- gauge.h \
- ctr64.h \
- octet.h \
- address.h \
- target.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- pdu.h \
- snmp.h \
- transaction_result.h \
- sagent.h \
- transaction.h \
- wpdu.h \
- asn1.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ASNMP/asnmp/TODO b/ASNMP/asnmp/TODO
deleted file mode 100644
index 12beb91406b..00000000000
--- a/ASNMP/asnmp/TODO
+++ /dev/null
@@ -1,25 +0,0 @@
-This is the todo list aka wish list: feel free to add/implmement
-Fri Aug 1 19:40:55 PDT 1997
-
-0) collapse CMU and HP code - make this thing faster since it is really
- slow and bulky...
-
-1) implement response time statistics collection so that timeout can vary based
- on empirical response times
-
-2) Implement pdu fragmentation based on tooBig errors or app directed
- Snmp::set_pdu_max_size() command
-
-3) implement async interface
-
-4) make templatized version to implement sync/nonsync (thread safe version)
-
-5) add V2c when a real agent is in the field that supports it
-
-6) Add DISMAN support when IETF approves the Expression Mib
-
-7) way too many procedural case stmts in the code...
-
-8) add compare_right() method to be orthogonal to oid class.
-
-
diff --git a/ASNMP/asnmp/address.cpp b/ASNMP/asnmp/address.cpp
deleted file mode 100644
index 230788e9f67..00000000000
--- a/ASNMP/asnmp/address.cpp
+++ /dev/null
@@ -1,2686 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// address.cpp
-//
-// = DESCRIPTION
-// The Vb class is an encapsulation of the snmp variable binding.
-// This module contains the class definition for the variable binding (VB)
-// class. The VB class is an encapsulation of a SNMP VB. A VB object is
-// composed of one SNMP++ Oid and one SMI value. The Vb class utilizes Oid
-// objects and thus requires the Oid class. To use this class,
-// set oid, value then call valid() to be sure object was constructed correctly.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
- =====================================================================*/
-
-#include "asnmp/address.h"
-
-ACE_RCSID(asnmp, address, "$Id$")
-
-//=================================================================
-//======== Abstract Address Class Implementation ==================
-//=================================================================
-
-// allow destruction of derived classes
-Address::~Address()
-{
-}
-
-
-//-----------------------------------------------------------------
-// is the address object valid?
-int Address::valid() const
-{
- return valid_flag;
-}
-
-//------------[ Address::trim_white_space( char * ptr) ]------------
-// destructive trim white space
-void Address::trim_white_space( char * ptr)
-{
- char *tmp;
-
- tmp = ptr;
- // skip leading white space
- while (*tmp==' ')tmp++;
- ACE_OS::strcpy(ptr,tmp);
-
- // find end of string
- while ((*tmp!=' ') && (*tmp !=0)) tmp++;
- if (*tmp!=0) *tmp=0;
-}
-
-//TM: this is not used nor needed, remove?
-//-----[ element access ]----------------------------------------------
-unsigned char& Address::operator[]( const int position)
-{
- if ( position < MAX_ADDR_SZ)
- return address_buffer[ position];
- else
- return address_buffer[0];
-}
-
-
-//-----------------------------------------------------------------------
-// overloaded equivlence operator, are two addresses equal?
-int operator==( const Address &lhs, const Address &rhs)
-{
- if ( strcmp( (const char*) lhs, (const char*)rhs)==0)
- return 1;
- else
- return 0;
-}
-
-//-----------------------------------------------------------------------
-// overloaded equivlence operator, are two addresses equal?
-int operator!=( const Address &lhs, const Address &rhs)
-{
- return (!( lhs == rhs));
-}
-
-
-//------------------------------------------------------------------
-// overloaded > operator, is a1 > a2
-int operator>( const Address &lhs, const Address &rhs)
-{
- if ( strcmp( (const char*) lhs, (const char*)rhs)>0)
- return 1;
- else
- return 0;
-}
-
-// overloaded >= operator, is a1 > a2
-int operator>=( const Address &lhs,const Address &rhs)
-{
- if (( lhs > rhs) || ( lhs == rhs))
- return 1;
- else
- return 0;
-}
-
-// overloaded < operator, is a1 <= a2
-int operator<=( const Address &lhs,const Address &rhs)
-{
- if (( lhs < rhs) || ( lhs == rhs))
- return 1;
- else
- return 0;
-
-}
-
-
-//-----------------------------------------------------------------
-// overloaded < operator, is a1 < a2
-int operator<( const Address &lhs, const Address &rhs)
-{
- if ( strcmp( (const char*) lhs, (const char*)rhs)<0)
- return 1;
- else
- return 0;
-}
-
-//------------------------------------------------------------------
-// equivlence operator overloaded, are an address and a string equal?
-int operator==( const Address &lhs,const char *rhs)
-{
- if (!rhs && !lhs.valid())
- return 1;
- if (strcmp( (const char *) lhs, rhs)== 0)
- return 1;
- else
- return 0;
-}
-
-//------------------------------------------------------------------
-// not equal operator overloaded, are an address and a string not equal?
-int operator!=( const Address &lhs,const char *rhs)
-{
- return (!( lhs == rhs));
-}
-
-//------------------------------------------------------------------
-// overloaded > , is a > inaddr
-int operator>( const Address &lhs,const char *rhs)
-{
- if (!rhs)
- return lhs.valid(); // if lhs valid then > 0, else invalid !> 0
- if (strcmp( (const char *) lhs, rhs)> 0)
- return 1;
- else
- return 0;
-}
-
-//------------------------------------------------------------------
-// overloaded >= , is a >= inaddr
-int operator>=( const Address &lhs,const char *rhs)
-{
- if (!rhs)
- return 1; // always >= 0
- if (strcmp( (const char *) lhs, rhs)>= 0)
- return 1;
- else
- return 0;
-}
-
-//-----------------------------------------------------------------
-// overloaded < , are an address and a string equal?
-int operator<( const Address &lhs,const char *rhs)
-{
- if (!rhs)
- return 0; // always >= 0
- if (strcmp( (const char *) lhs, rhs)< 0)
- return 1;
- else
- return 0;
-}
-
-//-----------------------------------------------------------------
-// overloaded <= , is a <= inaddr
-int operator<=( const Address &lhs,const char *rhs)
-{
- if (!rhs)
- return !lhs.valid(); // invalid == 0, else valid > 0
- if (strcmp( (const char *) lhs, rhs)<= 0)
- return 1;
- else
- return 0;
-}
-
-
-//=====================================================================
-//============ IPAddress Implementation ===============================
-//=====================================================================
-
-//-----------[ syntax type ]----------------------------------------------
-SmiUINT32 IpAddress::get_syntax()
-{
- return sNMP_SYNTAX_IPADDR;
-}
-
-//-----[ IP Address copy constructor ]---------------------------------
-IpAddress::IpAddress(const IpAddress &ipaddr)
-{
- // always initialize what type this object is
- smival.syntax = sNMP_SYNTAX_IPADDR;
- smival.value.string.len =IPV4LEN;
- smival.value.string.ptr = address_buffer;
-
- iv_friendly_name_[0] = 0;
- iv_friendly_name_status_ = 0;
- valid_flag = ipaddr.valid_flag;
- if (valid_flag) {
- ACE_OS::memcpy(address_buffer, ipaddr.address_buffer,IPV4LEN);
- ACE_OS::strcpy( iv_friendly_name_, ipaddr.iv_friendly_name_);
- }
-
- IpAddress::format_output();
-}
-
-
-//-------[ default construct, an IP address with a string ]---------------------
-IpAddress::IpAddress( const char *inaddr): Address()
-{
- // always initialize what type this object is
- smival.syntax = sNMP_SYNTAX_IPADDR;
- smival.value.string.len = IPV4LEN;
- smival.value.string.ptr = address_buffer;
-
- if (ACE_OS::strlen(inaddr) == 0) {
-
- valid_flag = 0;
- iv_friendly_name_[0] = 0;
- iv_friendly_name_status_ = 0;
- IpAddress::format_output();
- return;
- }
-
- // parse_address initializes valid, address_buffer & iv_friendly_name_
- valid_flag = parse_address(inaddr);
- IpAddress::format_output();
-}
-
-
-//-----[ construct an IP address with a GenAddress ]---------------------
-IpAddress::IpAddress( const GenAddress &genaddr)
-{
- // always initialize what type this object is
- smival.syntax = sNMP_SYNTAX_IPADDR;
- smival.value.string.len = IPV4LEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = 0;
- iv_friendly_name_[0] = 0;
- iv_friendly_name_status_ = 0;
- // allow use of an ip or udp genaddress
- if (genaddr.get_type() == type_ip) {
- valid_flag = genaddr.valid();
- if ( valid_flag) {
- // copy in the IP address data
- IpAddress temp_ip( (const char *) genaddr);
- *this = temp_ip;
- }
- }
- else
- if (genaddr.get_type() == type_udp) {
- valid_flag = genaddr.valid();
- if ( valid_flag) {
- // copy in the IP address data
- UdpAddress temp_udp( (const char *) genaddr);
- *this = temp_udp;
- }
- }
- IpAddress::format_output();
-}
-
-//-----[ destructor ]--------------------------------------------------
-IpAddress::~IpAddress()
-{
-}
-
-// assumes member data is word aligned to avoid sigbus
-int IpAddress::is_loopback() const
-{
- if (valid()) {
- return (*(u_long *)&address_buffer == INADDR_LOOPBACK);
- }
- return 0;
-}
-
-int IpAddress::is_multicast() const
-{
- if (valid()) {
- return (IN_MULTICAST(*(u_long *)&address_buffer));
- }
- return 0;
-}
-
-// Private addressess not are not assignable in the Internet, they are
-// defined in RFC 1597 as: 10, 172.16, and 192.168.0
-// Some companies use them internally and apply NAT to allow translation
-// instead of paying for ip networks.
-// Cisco IOS devices can provide NAT aka Network Address Translation
-// but don't expect SNMP based networks to handle cross-NAT address spaces.
-// assumes storage in network byte order mrm@cisco.com 7/28/97
-
-int IpAddress::is_private() const
-{
- if (valid()) {
- if (address_buffer[0] == 10)
- return 1;
- if (address_buffer[0] == 172 && address_buffer[1] == 16)
- return 1;
- if (address_buffer[0] == 192 && address_buffer[1] == 168 &&
- address_buffer[2] == 0)
- return 1;
- }
- return 0;
-}
-
-
-// convert address into octet string format in network byte order
-void IpAddress::to_octet(OctetStr& octet) const
-{
- octet.set_data( smival.value.string.ptr, smival.value.string.len);
-}
-
-
-int IpAddress::is_broadcast() const
-{
- if (valid()) {
- return ( (*(u_long *)&address_buffer) & INADDR_BROADCAST);
- }
- return 0;
-}
-
-//-----[ IP Address general = operator ]-------------------------------
-SnmpSyntax& IpAddress::operator=( SnmpSyntax &val)
-{
- // protect against assignment from itself
- if ( this == &val )
- return *this;
-
- valid_flag = 0; // will get set 1 if really valid
- iv_friendly_name_[0]=0;
-
- if (val.valid()) {
- switch (val.get_syntax()) {
- case sNMP_SYNTAX_IPADDR:
- case sNMP_SYNTAX_OCTETS:
- if (((IpAddress &)val).smival.value.string.len ==IPV4LEN) {
- ACE_OS::memcpy(address_buffer,
- ((IpAddress &)val).smival.value.string.ptr,IPV4LEN);
- valid_flag = 1;
- }
- break;
-
- // NOTE: as a value add, other types could have "logical"
- // mappings, i.e. integer32 and unsigned32
- }
- }
- IpAddress::format_output();
- return *this;
-}
-
-//------[ assignment to another ipaddress object overloaded ]-----------------
-IpAddress& IpAddress::operator=( const IpAddress &ipaddress)
-{
- // protect against assignment from itself
- if ( this == &ipaddress )
- return *this;
-
- valid_flag = ipaddress.valid_flag;
- iv_friendly_name_[0]=0;
-
- if (valid_flag) {
- ACE_OS::memcpy(address_buffer, ipaddress.address_buffer, IPV4LEN);
- ACE_OS::strcpy(iv_friendly_name_, ipaddress.iv_friendly_name_);
- }
- IpAddress::format_output();
- return *this;
-}
-
-
-//--------[ create a new instance of this Value ]-----------------------
-SnmpSyntax *IpAddress::clone() const
-{
- return (SnmpSyntax *) new IpAddress(*this);
-}
-
-//-------[ return the Fully Qualified Domain Name ]----------------------
-char *IpAddress::resolve_hostname(int &status)
-{
- if ((iv_friendly_name_[0] == 0) && valid_flag)
- addr_to_friendly();
- status = iv_friendly_name_status_;
- return iv_friendly_name_;
-}
-
-// parse a dotted string
-int IpAddress::parse_dotted_ipstring( const char *inaddr)
-{
- char *ip_token;
- int token_count=0;
- unsigned int value;
- int error_status = 0;
- char temp[MAXHOSTNAMELEN +1]; // temp buffer for destruction
- int z,w;
-
- // check len, an ip can never be bigger than 15
- // 123456789012345
- // XXX.XXX.XXX.XXX
- if ( !inaddr || (ACE_OS::strlen( inaddr) > 30))
- return 0;
- ACE_OS::strcpy( temp, inaddr);
- trim_white_space( temp);
- if ( ACE_OS::strlen( temp) > 15)
- return 0;
-
- // must only have three dots
- // strtok will not catch this !
- char *ptr = temp;
- int dot_count = 0;
- while ( *ptr != 0) {
- if ( *ptr == '.') dot_count++;
- ptr++;
- }
- if ( dot_count != 3)
- return 0;
-
- // look for dot token separator
- ip_token = strtok( (char *) temp,".");
-
- // while more tokens..
- while ( ip_token != 0) {
- // verify that the token is all numerics
- w = ACE_OS::strlen( ip_token);
- if (w>3)
- return 0;
- for (z=0;z<w;z++)
- if (( ip_token[z] < '0') || ( ip_token[z] > '9'))
- return 0;
-
- value = ( unsigned int) strtod(ip_token,0);
- if (( value > 0)&& ( value <=255))
- address_buffer[token_count] = (unsigned char) value;
- else
- if ( strcmp(ip_token,"0")==0)
- address_buffer[token_count]= (unsigned char) 0;
- else
- error_status = 1;
- token_count++;
- ip_token = strtok( 0, ".");
- }
-
- // gota be four in len
- if ( token_count != 4)
- return 0;
-
- // any parsing errors?
- if ( error_status)
- return 0;
-
- return 1;
-}
-
-//-----[ IP Address parse Address ]---------------------------------
-int IpAddress::parse_address( const char *inaddr)
-{
- // parse the input char array
- // fill up internal buffer with four ip bytes
- // set and return validity flag
-
- in_addr ipAddr;
- char ds[MAXHOSTNAMELEN +1];
-
- // intialize the friendly_name member variable
- iv_friendly_name_[0] = 0;
- iv_friendly_name_status_ = 0;
-
- // is this a dotted IP notation string or
- // a friendly name
- if ( parse_dotted_ipstring( inaddr)) {
-
- // since this is a valid dotted string
- // don't do any DNS (Performance!)
- return 1;
- }
- else {
- int rc;
- if ((rc = resolve_to_address(inaddr, ipAddr)) == 0) {
-
- // now lets check out the dotted string
- ACE_OS::strncpy( ds, ACE_OS::inet_ntoa(ipAddr), MAXHOSTNAMELEN);
-
- if ( !parse_dotted_ipstring( ds))
- return 0;
-
- // save the friendly name
- ACE_OS::strcpy( iv_friendly_name_, inaddr);
- return 1;
-
- } // end if lookup result
- else {
- iv_friendly_name_status_ = rc;
- return 0;
- }
- } // end else not a dotted string
- return 1;
-}
-
-// using the currently defined address, do a DNS
-// and try to fill up the name
-int IpAddress::addr_to_friendly()
-{
- in_addr ipAddr;
- long result = ACE_OS::inet_addr(to_string());
- if (result == -1)
- return -1; // expected a dotted quad!
-
- ipAddr.s_addr = result;
-
- // set iv_friendly_name_ from ipAddr
- if (resolve_to_hostname(ipAddr, iv_friendly_name_) == 0) {
- return 0;
- }
- else {
- iv_friendly_name_status_ = h_errno;
- return iv_friendly_name_status_;
- }
-}
-
-// static aka class member function (1.2.3.4 -> foo.com)
-int IpAddress::resolve_to_hostname(const in_addr& quad_addr, char *hostname)
-{
- struct hostent lookupResult;
- int loc_errno = 0;
- ACE_HOSTENT_DATA buffer;
- ACE_OS::memset(&lookupResult, 0, sizeof(struct hostent));
- ACE_OS::memset(&buffer, 0, sizeof(ACE_HOSTENT_DATA));
-
- // reverse lookup (requires in-addr.arpa to be setup in DNS
- if (ACE_OS::gethostbyaddr_r((const char *)&quad_addr.s_addr, IPV4LEN,
- AF_INET, &lookupResult, buffer, &loc_errno)) {
-
- // verify right type of record
- if (lookupResult.h_addrtype == AF_INET &&
- lookupResult.h_length == IPV4LEN) {
- ACE_OS::strcpy( hostname, lookupResult.h_name);
- // setup multiple entries
- return 0;
- }
- else {
- ACE_ASSERT(0); // todo add trace and debug and dump
- return -1; // wrong resource record type
- }
- }
-
- return loc_errno;
-}
-
-// static aka class member function (foo.com -> 1.2.3.4)
-int IpAddress::resolve_to_address(const char *hostname, in_addr& quad_addr)
-{
- struct hostent lookupResult;
- ACE_HOSTENT_DATA buffer;
- ACE_OS::memset(&buffer, 0, sizeof(ACE_HOSTENT_DATA));
- ACE_OS::memset(&lookupResult, 0, sizeof(struct hostent));
- int loc_errno = 0;
- if (ACE_OS::gethostbyname_r( hostname, &lookupResult, buffer, &loc_errno)) {
- if (lookupResult.h_length == sizeof(in_addr) &&
- lookupResult.h_addrtype == AF_INET) {
- ACE_OS::memcpy((void *) &quad_addr,
- (void *) lookupResult.h_addr_list[0], sizeof(in_addr));
- return 0;
- }
- else
- return -1; // wrong address size
- }
- return loc_errno;
-}
-
-//----[ IP address char * cast ]--------------------------------------
-IpAddress::operator const char *() const
-{
- return (char *)output_buffer;
-}
-
-//----[ IP address get char representation ]--------------------------
-char * IpAddress::to_string()
-{
- return (char *)output_buffer;
-}
-
-//----[ IP address format output ]------------------------------------
-void IpAddress::format_output()
-{
- // if valid format else null it
- if ( valid_flag)
- ACE_OS::sprintf( (char *) output_buffer,"%d.%d.%d.%d",address_buffer[0],
- address_buffer[1], address_buffer[2], address_buffer[3]);
- else
- output_buffer[0] = 0;
-}
-
-//------[ return the type ]----------------------------------
-addr_type IpAddress::get_type() const
-{
- return type_ip;
-}
-
-//-----------------------------------------------------------------
-// logically and two IPaddresses and
-// return the new one
-void IpAddress::mask( const IpAddress& ipaddr)
-{
- if ( this->valid() && ipaddr.valid()) {
- this->address_buffer[0] = this->address_buffer[0] & ipaddr.address_buffer[0];
- this->address_buffer[1] = this->address_buffer[1] & ipaddr.address_buffer[1];
- this->address_buffer[2] = this->address_buffer[2] & ipaddr.address_buffer[2];
- this->address_buffer[3] = this->address_buffer[3] & ipaddr.address_buffer[3];
- format_output();
- }
-
-}
-
-//=======================================================================
-//========== DNS Iterator Implementation ================================
-//=======================================================================
-
-
-Address_Iter::Address_Iter(const char *hostname): valid_(0), count_(0),
- entry_(0)
-{
- ACE_OS::memset(&buffer_, 0, sizeof(ACE_HOSTENT_DATA));
- ACE_OS::memset(&lookupResult_, 0, sizeof(struct hostent));
- if (ACE_OS::inet_addr(hostname) == -1)
- valid_ = query_dns(hostname);
- else {
- ACE_ASSERT(0); // don't support dot-quad lookup yet
- }
-
- // count number of hostnames
- int n;
- char **pc;
- for (n = 0, pc = lookupResult_.h_addr_list; *pc != 0; ++n, ++pc);
- count_ = n; // plus first one
- entry_ = lookupResult_.h_addr_list;
-}
-
-int Address_Iter::valid() const
-{
- return (valid_ == 1);
-}
-
-int Address_Iter::how_many_addresses()
-{
- return count_;
-}
-
-// return next entry, rc = 0, if entry is null return 0
-int Address_Iter::next(IpAddress& addr)
-{
- if (!entry_ || *entry_ == 0)
- return 1;
-
- IpAddress tmp(*entry_++); // return data
- addr = tmp;
- if (*entry_ == 0)
- return 1;
- return 0;
-}
-
-// query DNS here
-int Address_Iter::query_dns(const char *hostname)
-{
- int loc_errno = 0;
- if (ACE_OS::gethostbyname_r( hostname, &lookupResult_, buffer_,
- &loc_errno)) {
- if (lookupResult_.h_length == sizeof(IPV4LEN) &&
- lookupResult_.h_addrtype == AF_INET) {
- return 0;
- }
- else
- return -1; // wrong address size
- }
- return loc_errno;
-}
-
-//=======================================================================
-//========== Udp Address Implementation =================================
-//=======================================================================
-
-//-----------[ syntax type ]----------------------------------------------
-SmiUINT32 UdpAddress::get_syntax()
-{
- return sNMP_SYNTAX_OCTETS;
-}
-
-//-----------------[ construct an Udp address with another Udp address ]---
-UdpAddress::UdpAddress( const UdpAddress &udpaddr):IpAddress(udpaddr)
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = UDPIPV4LEN;
- smival.value.string.ptr = address_buffer;
-
- // Copy the port value
- set_port(udpaddr.get_port());
- format_output();
-}
-
-// default constructor with a dotted string
-UdpAddress::UdpAddress( const char *inaddr):IpAddress()
-{
- if (ACE_OS::strlen(inaddr) == 0) {
- // Inherits IP Address attributes
- // Always initialize (override) what type this object is
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = UDPIPV4LEN;
- smival.value.string.ptr = address_buffer;
- set_port(0);
- format_output();
- return;
- }
-
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = UDPIPV4LEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = parse_address( (char *)inaddr);
- format_output();
-}
-
-//-----------------[ construct a UdpAddress from a GenAddress ]--------------
-UdpAddress::UdpAddress( const GenAddress &genaddr):IpAddress()
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = UDPIPV4LEN;
- smival.value.string.ptr = address_buffer;
-
- unsigned int port = 0;
- valid_flag = 0;
-
- // allow use of an ip or udp genaddress
- if (genaddr.get_type() == type_udp)
- {
- valid_flag = genaddr.valid();
- if ( valid_flag)
- {
- // copy in the IP address data
- UdpAddress temp_udp( (const char *) genaddr);
- *this = temp_udp;
-
- // port info since are making an UpAddress
- port = temp_udp.get_port();
- }
- }
- else
- if (genaddr.get_type() == type_ip)
- {
- valid_flag = genaddr.valid();
- if ( valid_flag)
- {
- // copy in the IP address data
- IpAddress temp_ip( (const char *) genaddr);
- *this = temp_ip;
- }
- }
- set_port(port);
- format_output();
-}
-
-
-//--------[ construct a udp from an IpAddress ]--------------------------
-UdpAddress::UdpAddress( const IpAddress &ipaddr):IpAddress(ipaddr)
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = UDPIPV4LEN;
- smival.value.string.ptr = address_buffer;
-
- set_port(0);
- format_output();
-}
-
-
-//-----[ destructor ]--------------------------------------------------
-UdpAddress::~UdpAddress()
-{
-}
-
-
- // copy an instance of this Value
-SnmpSyntax& UdpAddress::operator=( SnmpSyntax &val)
-{
- // protect against assignment from itself
- if ( this == &val )
- return *this;
-
- valid_flag=0; // will get set 1 if really valid
- if (val.valid()){
- switch (val.get_syntax()){
- case sNMP_SYNTAX_IPADDR:
- {
- UdpAddress temp_udp(val.to_string());
- *this = temp_udp; // valid_flag is set by the udp assignment
- }
- break;
-
- case sNMP_SYNTAX_OCTETS:
- if (((UdpAddress &)val).smival.value.string.len == UDPIPV4LEN){
- ACE_OS::memcpy(address_buffer,
- ((UdpAddress &)val).smival.value.string.ptr, UDPIPV4LEN);
- iv_friendly_name_[0] = 0;
- valid_flag = 1;
- }
- break;
-
- // NOTE: as a value add, other types could have "logical"
- // mappings, i.e. integer32 and unsigned32
- }
- }
- format_output();
- return *this;
-}
-
- // assignment to another UdpAddress object overloaded
-UdpAddress& UdpAddress::operator=( const UdpAddress &udpaddr)
-{
- // protect against assignment from itself
- if ( this == &udpaddr )
- return *this;
-
- (IpAddress &)*this = udpaddr; // use ancestor assignment for ipaddr value
- set_port(udpaddr.get_port()); // copy to port value
- format_output();
- return *this;
-}
-
-
-//-----[ IP Address parse Address ]---------------------------------
-int UdpAddress::parse_address( const char *inaddr)
-{
- char buffer[MAXHOSTNAMELEN +1];
-
- unsigned short port = 0;
- if (inaddr && (ACE_OS::strlen( inaddr)< MAXHOSTNAMELEN +1))
- ACE_OS::strcpy( buffer, inaddr);
- else {
- valid_flag = 0;
- return 0;
- }
- // look for port info @ the end of the string
- // port can be delineated by a ':' or a '/'
- // if neither are present then just treat it
- // like a normal IpAddress
- char *tmp;
- tmp = ACE_OS::strstr( buffer,":");
- if (tmp==0)
- tmp = ACE_OS::strstr(buffer,"/");
-
- if ( tmp != 0) {
- *tmp=0; // null terminator
- tmp++;
- port = ACE_OS::atoi( tmp);
- }
-
- set_port(port);
- return IpAddress::parse_address( buffer);
-}
-
-
-//----------[ create a new instance of this Value ]------------------------
-SnmpSyntax *UdpAddress::clone() const
-{
- return (SnmpSyntax *) new UdpAddress(*this);
-}
-
-//--------[ set the port number ]---------------------------------------
-void UdpAddress::set_port( const unsigned short p)
-{
- unsigned short port_nbo = htons(p);
- ACE_OS::memcpy(&address_buffer[IPV4LEN], &port_nbo, 2);
- format_output();
-}
-
-//---------[ get the port number ]--------------------------------------
-unsigned short UdpAddress::get_port() const
-{
- if (valid_flag) {
- unsigned short port_nbo;
- ACE_OS::memcpy(&port_nbo, &address_buffer[IPV4LEN], 2);
- return ntohs(port_nbo);
- }
- else
- return 0; // don't use uninitialized memory
-}
-
-//------[ return the type ]--------------------------------------------
-addr_type UdpAddress::get_type() const
-{
- return type_udp;
-}
-
-//----[ UDP address char * cast ]--------------------------------------
-UdpAddress::operator const char *() const
-{
- return (char *)output_buffer;
-}
-
-//----[ UDP address get char representation ]--------------------------
-char * UdpAddress::to_string()
-{
- return (char *)output_buffer;
-}
-
-// make format same as ACE_INET_Addr class (addr:port)
-void UdpAddress::format_output()
-{
- IpAddress::format_output(); // allow ancestors to format their buffers
-
- // if valid format else null it
- if ( valid_flag)
- ACE_OS::sprintf( (char *) output_buffer,"%s:%d",
- IpAddress::to_string(),
- get_port() );
- else
- output_buffer[0] = 0;
-}
-
-
-//=======================================================================
-//=========== Netbios Address Implementation ============================
-//=======================================================================
-
-void NetbiosAddress::format_output()
-{
- if ( valid_flag)
- ACE_OS::memcpy(output_buffer, address_buffer, NETBIOSLEN);
- else
- output_buffer[0] = 0;
-}
-
-void NetbiosAddress::InitNBAddr(const char *inaddr)
-{
- if (ACE_OS::strlen(inaddr) == 0) {
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = NETBIOSLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag=0;
- NetbiosAddress::format_output();
- return;
- }
-
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = IPXLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = parse_address( (char *) inaddr);
- NetbiosAddress::format_output();
-}
-
-// TODO: how to handle addresses < 15 chars (zero out or pad with ' ')
-NetbiosAddress::NetbiosAddress( const char *inaddr)
-{
- InitNBAddr(inaddr);
-
-}
-
-NetbiosAddress::NetbiosAddress( const char *inaddr, nb_service svc)
-{
- InitNBAddr(inaddr);
- address_buffer[15] = svc;
-}
-
-// TODO: go back over ms/ibm specs and verify this
-// 16 chars, 15 can be any character, 16th is service number between 0 and 20
-// names beginning with IBM are reserved, and hence invalid
-// and doubt IBM would use this class anyway
-int NetbiosAddress::parse_address(const char *address)
-{
- if (ACE_OS::strlen(address) > NETBIOSLEN)
- return 0; // invalid
-
- if (ACE_OS::strncmp(address, "IBM", 3) == 0)
- return 0; // invalid
-
- // addresses are free form but this check may need to be expose to user
- //
- //if (address[15] < nb_workstation || address[15] > nb_server)
- // return 0; //invalid service type
-
- ACE_OS::memset(address_buffer, 0, NETBIOSLEN);
- ACE_OS::memcpy(address_buffer, address, NETBIOSLEN);
-
- return 1; // valid
-}
-
-NetbiosAddress::NetbiosAddress( const NetbiosAddress& nbaddr)
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = NETBIOSLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = nbaddr.valid_flag;
- if (valid_flag)
- ACE_OS::memcpy(address_buffer, nbaddr.address_buffer, NETBIOSLEN);
- NetbiosAddress::format_output();
-}
-
-NetbiosAddress::NetbiosAddress( const GenAddress& genaddr)
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = NETBIOSLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = 0;
- // allow use of an ipx or ipxsock address
- if ( (genaddr.get_type() == type_nb) ) {
- valid_flag = genaddr.valid();
- if ( valid_flag) {
- // copy in the Ipx address data
- NetbiosAddress temp_nb( (const char *) genaddr);
- *this = temp_nb;
- }
- }
- NetbiosAddress::format_output();
-}
-
-NetbiosAddress::~NetbiosAddress()
-{
-}
-
-char *NetbiosAddress::to_string()
-{
- return (char *)output_buffer;
-}
-
-void NetbiosAddress::to_octet(OctetStr& octet) const
-{
- octet.set_data( smival.value.string.ptr, smival.value.string.len);
-}
-
-NetbiosAddress& NetbiosAddress::operator=( const NetbiosAddress &val)
-{
- // protect against assignment from itself
- if ( this == &val )
- return *this;
-
- valid_flag = 0; // will set to 1 if really valid
- if (val.valid()) {
- switch (((NetbiosAddress *) &val)->get_syntax()) {
- case sNMP_SYNTAX_OCTETS:
- ACE_OS::memcpy(address_buffer,
- ((NetbiosAddress &)val).smival.value.string.ptr, NETBIOSLEN);
- valid_flag = 1;
- break;
- }
- }
- NetbiosAddress::format_output();
- return *this;
-}
-
-nb_service NetbiosAddress::get_service_type() const
-{
- return (nb_service) address_buffer[15];
-}
-
-void NetbiosAddress::set_service_type(nb_service nbservice)
-{
- address_buffer[15] = nbservice;
- NetbiosAddress::format_output();
-}
-
-NetbiosAddress::operator const char *() const
-{
- return (char *)output_buffer;
-}
-
-SnmpSyntax& NetbiosAddress::operator=( SnmpSyntax &val)
-{
- // protect against assignment from itself
- if ( this == &val )
- return *this;
-
- valid_flag = 0; // will set to 1 if really valid
- if (val.valid()) {
- switch (val.get_syntax()) {
- case sNMP_SYNTAX_OCTETS:
- if (((NetbiosAddress &)val).smival.value.string.len == NETBIOSLEN) {
- ACE_OS::memcpy(address_buffer,
- ((NetbiosAddress &)val).smival.value.string.ptr, NETBIOSLEN);
- valid_flag=1;
- }
- break;
- }
- }
- NetbiosAddress::format_output();
- return *this;
-}
-
-SnmpSyntax *NetbiosAddress::clone() const
-{
- return (SnmpSyntax *) new NetbiosAddress(*this);
-}
-
-SmiUINT32 NetbiosAddress::get_syntax()
-{
- return sNMP_SYNTAX_OCTETS;
-}
-
-addr_type NetbiosAddress::get_type() const
-{
- return type_nb;
-}
-
-//=======================================================================
-//=========== IPX Address Implementation ================================
-//=======================================================================
-
-//-----------[ syntax type ]----------------------------------------------
-SmiUINT32 IpxAddress::get_syntax()
-{
- return sNMP_SYNTAX_OCTETS;
-}
-
-
-//----------[ default constructor with a string arg ]---------------------------
-IpxAddress::IpxAddress( const char *inaddr):Address( )
-{
- if (ACE_OS::strlen(inaddr) == 0) {
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = IPXLEN;
- smival.value.string.ptr = address_buffer;
-
- separator = '\0';
- valid_flag=0;
- IpxAddress::format_output();
- return;
- }
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = IPXLEN;
- smival.value.string.ptr = address_buffer;
-
- separator = '\0';
- valid_flag = parse_address( (char *) inaddr);
- IpxAddress::format_output();
-}
-
-
-//-----[ IPX Address copy constructor ]----------------------------------
-IpxAddress::IpxAddress(const IpxAddress &ipxaddr)
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = IPXLEN;
- smival.value.string.ptr = address_buffer;
-
- separator = '\0';
- valid_flag = ipxaddr.valid_flag;
- if (valid_flag)
- ACE_OS::memcpy(address_buffer, ipxaddr.address_buffer, IPXLEN);
- IpxAddress::format_output();
-}
-
-
-//----[ construct an IpxAddress from a GenAddress ]---------------------------
-IpxAddress::IpxAddress( const GenAddress &genaddr)
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = IPXLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = 0;
- // allow use of an ipx or ipxsock address
- if ( (genaddr.get_type() == type_ipx) ) {
- valid_flag = genaddr.valid();
- if ( valid_flag) {
- // copy in the Ipx address data
- IpxAddress temp_ipx( (const char *) genaddr);
- *this = temp_ipx;
- }
- }
- else
- if ( (genaddr.get_type() == type_ipxsock) ) {
- valid_flag = genaddr.valid();
- if ( valid_flag) {
- // copy in the Ipx address data
- IpxSockAddress temp_ipxsock( (const char *) genaddr);
- *this = temp_ipxsock;
- }
- }
- IpxAddress::format_output();
-}
-
-
-//-----[ destructor ]--------------------------------------------------
-IpxAddress::~IpxAddress()
-{
-}
-
-
-//-----[ IPX Address general = operator ]-------------------------------
-SnmpSyntax& IpxAddress::operator=( SnmpSyntax &val)
-{
- // protect against assignment from itself
- if ( this == &val )
- return *this;
-
- valid_flag=0; // will set to 1 if really valid
- if (val.valid()){
- switch (val.get_syntax()){
- case sNMP_SYNTAX_OCTETS:
- if (((IpxAddress &)val).smival.value.string.len == IPXLEN){
- ACE_OS::memcpy(address_buffer, ((IpxAddress &)val).smival.value.string.ptr, IPXLEN);
- valid_flag=1;
- }
- break;
- }
- }
- IpxAddress::format_output();
- return *this;
-}
-
-//--------[ assignment to another IpAddress object overloaded ]----------
-IpxAddress& IpxAddress::operator=( const IpxAddress &ipxaddress)
-{
- // protect against assignment from itself
- if ( this == &ipxaddress )
- return *this;
-
- valid_flag = ipxaddress.valid_flag;
- if (valid_flag)
- ACE_OS::memcpy(address_buffer, ipxaddress.address_buffer, IPXLEN);
- IpxAddress::format_output();
- return *this;
-}
-
-
-// create a new instance of this Value
-SnmpSyntax *IpxAddress::clone() const
-{
- return (SnmpSyntax *) new IpxAddress(*this);
-}
-
-//-----[ IPX Address parse Address ]-----------------------------------
-// Convert a string to a ten byte ipx address
-// On success sets validity 1 or 0
-//
-// IPX address format
-//
-// NETWORK ID| MAC ADDRESS
-// 01 02 03 04|05 06 07 08 09 10
-// XX XX XX XX|XX XX XX XX XX XX
-//
-// Valid input format
-//
-// XXXXXXXX.XXXXXXXXXXXX
-// Total length must be 21
-// Must have a separator in it
-// First string length must be 8
-// Second string length must be 12
-// Each char must take on value 0-F
-//
-//
-// Input formats recognized
-//
-// XXXXXXXX.XXXXXXXXXXXX
-// XXXXXXXX:XXXXXXXXXXXX
-// XXXXXXXX-XXXXXXXXXXXX
-// XXXXXXXX.XXXXXX-XXXXXX
-// XXXXXXXX:XXXXXX-XXXXXX
-// XXXXXXXX-XXXXXX-XXXXXX
-int IpxAddress::parse_address( const char *inaddr)
-{
- char unsigned *str1,*str2;
- char temp[30]; // don't destroy original
- char unsigned *tmp;
- size_t z, tmplen;
-
-
- // save the orginal source
- if (!inaddr || (ACE_OS::strlen( inaddr) >(sizeof(temp)-1))) return 0;
- ACE_OS::strcpy( temp, inaddr);
- trim_white_space( temp);
- tmplen = ACE_OS::strlen(temp);
-
- // bad total length check
- // 123456789012345678901
- // XXXXXXXX-XXXXXXXXXXXX 21 len
- //
- // XXXXXXXX-XXXXXX-XXXXXX 22 len
- // need at least 21 chars and no more than 22
- if ( (tmplen <21) || (tmplen >22))
- return 0;
-
- // convert the string to all lower case
- // this allows hex values to be in upper or lower
- for (z=0;z< tmplen;z++)
- temp[z] = tolower(temp[z]);
-
- // check for separated nodeid
- // if found remove it
- if (temp[15] == '-')
- {
- for(z=16;z<tmplen;z++)
- temp[z-1] = temp[z];
- temp[tmplen-1] = 0;
- }
-
- // no dot or colon separator check
- separator = temp[8];
- if (( separator != ':') &&
- ( separator != '.') &&
- ( separator != '-') &&
- ( separator != ' '))
- return 0;
-
- // separate the strings
- str1 = ( unsigned char *) temp;
- while( *str1 != separator) str1++;
- str2 = str1 + 1;
- *str1 = 0;
- str1= ( unsigned char *) temp;
-
- // check len of the network portion
- if ( ACE_OS::strlen((char *) str1) != 8)
- return 0;
-
- // check len of mac portion
- if ( ACE_OS::strlen( (char *) str2) != 12)
- return 0;
-
- // ok we like then lens, make sure that all chars are 0-f
- // check out the net id
- tmp = str1;
- while( *tmp != 0)
- if (((*tmp >= '0') && (*tmp <= '9'))|| // good 0-9
- ((*tmp >= 'a') && (*tmp <= 'f'))) // or a-f
- tmp++;
- else
- return 0;
-
- // check out the MAC address
- tmp = str2;
- while( *tmp != 0)
- if (((*tmp >= '0') && (*tmp <= '9'))|| // good 0-9
- ((*tmp >= 'a') && (*tmp <= 'f'))) // or a-f
- tmp++;
- else
- return 0;
-
- // convert to target string
- tmp = str1;
- while ( *tmp != 0)
- {
- if (( *tmp >= '0') && ( *tmp <= '9'))
- *tmp = *tmp - (char unsigned )'0';
- else
- *tmp = *tmp - (char unsigned) 'a' + (char unsigned) 10;
- tmp++;
- }
-
- // network id portion
- address_buffer[0] = (str1[0]*16) + str1[1];
- address_buffer[1] = (str1[2]*16) + str1[3];
- address_buffer[2] = (str1[4]*16) + str1[5];
- address_buffer[3] = (str1[6]*16) + str1[7];
-
- tmp = str2;
- while ( *tmp != 0)
- {
- if (( *tmp >= '0') && ( *tmp <= '9'))
- *tmp = *tmp - (char unsigned) '0';
- else
- *tmp = *tmp - (char unsigned) 'a'+ (char unsigned) 10;
- tmp++;
- }
-
- address_buffer[4] = (str2[0]*16) + str2[1];
- address_buffer[5] = (str2[2]*16) + str2[3];
- address_buffer[6] = (str2[4]*16) + str2[5];
- address_buffer[7] = (str2[6]*16) + str2[7];
- address_buffer[8] = (str2[8]*16) + str2[9];
- address_buffer[9] = (str2[10]*16) + str2[11];
-
- return 1;
-}
-
-//----[ IPX address char * cast ]--------------------------------------
-IpxAddress::operator const char *() const
-{
- return (char *)output_buffer;
-}
-
-//----[ IPX address get char representation ]--------------------------
-char * IpxAddress::to_string()
-{
- return (char *)output_buffer;
-}
-
-
-//----[ IPX address format output ]-------------------------------------
-void IpxAddress::format_output()
-{
- if ( valid_flag)
- ACE_OS::sprintf((char *) output_buffer,
- "%02x%02x%02x%02x%c%02x%02x%02x%02x%02x%02x",
- address_buffer[0],address_buffer[1],
- address_buffer[2],address_buffer[3],'-',
- address_buffer[4],address_buffer[5],
- address_buffer[6],address_buffer[7],
- address_buffer[8],address_buffer[9]);
- else
- output_buffer[0] = 0;
-}
-
-
-// get the host id portion of an ipx address
-int IpxAddress::get_hostid( MacAddress& mac)
-{
- if ( valid_flag)
- {
- char buffer[18];
- ACE_OS::sprintf( buffer,"%02x:%02x:%02x:%02x:%02x:%02x",
- address_buffer[4],
- address_buffer[5], address_buffer[6], address_buffer[7],
- address_buffer[8], address_buffer[9]);
- MacAddress temp( buffer);
- // mac = (SnmpSyntax&) temp;
- mac = temp;
- if ( mac.valid())
- return 1;
- else
- return 0;
- }
- else
- return 0;
-}
-
-
-//------[ return the type ]----------------------------------
-addr_type IpxAddress::get_type() const
-{
- return type_ipx;
-}
-
-void IpxAddress::to_octet(OctetStr& octet) const
-{
- octet.set_data( smival.value.string.ptr, smival.value.string.len);
-}
-
-
-//========================================================================
-//======== IpxSockAddress Implementation =================================
-//========================================================================
-
-//-----------[ syntax type ]----------------------------------------------
-SmiUINT32 IpxSockAddress::get_syntax()
-{
- return sNMP_SYNTAX_OCTETS;
-}
-
-//-----------[ construct an IpxSockAddress with another IpxSockAddress]----
-IpxSockAddress::IpxSockAddress( const IpxSockAddress &ipxaddr):IpxAddress(ipxaddr)
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = IPXSOCKLEN;
- smival.value.string.ptr = address_buffer;
-
- // copy the socket value
- set_socket(ipxaddr.get_socket());
- format_output();
-}
-
-
-//---------------[ default construct a IpxSockAddress ]--------------
-IpxSockAddress::IpxSockAddress( const char *inaddr):IpxAddress()
-{
- if (ACE_OS::strlen(inaddr) == 0) {
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = IPXSOCKLEN;
- smival.value.string.ptr = address_buffer;
-
- set_socket(0);
- format_output();
- return;
- }
-
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = IPXSOCKLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = parse_address( (char *) inaddr);
- format_output();
-}
-
-
-//---------------[ construct a IpxSockAddress from a GenAddress ]----------
-IpxSockAddress::IpxSockAddress( const GenAddress &genaddr):IpxAddress()
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = IPXSOCKLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = 0;
- unsigned short socketid = 0;
- // allow use of an ipx or ipxsock address
- if ( (genaddr.get_type() == type_ipx) )
- {
- valid_flag = genaddr.valid();
- if ( valid_flag)
- {
- // copy in the Ipx address data
- IpxAddress temp_ipx( (const char *) genaddr);
- *this = temp_ipx;
- }
- }
- else
- if ( (genaddr.get_type() == type_ipxsock) )
- {
- valid_flag = genaddr.valid();
- if ( valid_flag)
- {
- // copy in the Ipx address data
- IpxSockAddress temp_ipxsock( (const char *) genaddr);
- *this = temp_ipxsock;
- // socketid info since are making an IpxSockAddress
- socketid = temp_ipxsock.get_socket();
- }
- }
- set_socket(socketid);
- format_output();
-}
-
-
-//------------[ construct an IpxSockAddress from a IpxAddress ]--------------
-IpxSockAddress::IpxSockAddress( const IpxAddress &ipxaddr):IpxAddress(ipxaddr)
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = IPXSOCKLEN;
- smival.value.string.ptr = address_buffer;
-
- set_socket(0);
- format_output();
-}
-
-//-----[ destructor ]--------------------------------------------------
-IpxSockAddress::~IpxSockAddress()
-{
-}
-
-// copy an instance of this Value
-SnmpSyntax& IpxSockAddress::operator=( SnmpSyntax &val)
-{
- // protect against assignment from itself
- if ( this == &val )
- return *this;
-
- valid_flag=0; // will set to 1 if really valid
- if (val.valid()){
- switch (val.get_syntax()){
- case sNMP_SYNTAX_OCTETS:
- {
- // See if it is of the Ipx address family
- // This handles IpxSockAddress == IpxAddress
- IpxSockAddress temp_ipx(val.to_string());
- if (temp_ipx.valid()){
- *this = temp_ipx; // ipxsock = ipxsock
- }
- // See if it is an OctetStr of appropriate length
- else if (((IpxSockAddress &)val).smival.value.string.len == IPXSOCKLEN){
- ACE_OS::memcpy(address_buffer,
- ((IpxSockAddress &)val).smival.value.string.ptr,
- IPXSOCKLEN);
- valid_flag=1;
- }
- }
- break;
- }
- }
- format_output();
- return *this;
-}
-
-// assignment to another IpAddress object overloaded
-IpxSockAddress& IpxSockAddress::operator=( const IpxSockAddress &ipxaddr)
-{
- // protect against assignment from itself
- if ( this == &ipxaddr )
- return *this;
-
- (IpxAddress&)*this = ipxaddr; // use ancestor assignment for ipx addr
- set_socket(ipxaddr.get_socket()); // copy socket value
- format_output();
- return *this;
-}
-
-
-//----------[ create a new instance of this Value ]------------------------
-SnmpSyntax *IpxSockAddress::clone() const
-{
- return (SnmpSyntax *) new IpxSockAddress(*this);
-}
-
-//----[ IPXSock address char * cast ]--------------------------------------
-IpxSockAddress::operator const char *() const
-{
- return (char *)output_buffer;
-}
-
-//----[ IPXSock address get char representation ]--------------------------
-char * IpxSockAddress::to_string()
-{
- return (char *)output_buffer;
-}
-
-//----[ IPX address format output ]-------------------------------------
-void IpxSockAddress::format_output()
-{
- IpxAddress::format_output(); // allow ancestors to format their buffers
-
- if ( valid_flag)
- ACE_OS::sprintf((char *) output_buffer,"%s/%d",
- IpxAddress::to_string(), get_socket());
- else
- output_buffer[0] = 0;
-}
-
-//-----[ IP Address parse Address ]---------------------------------
-int IpxSockAddress::parse_address( const char *inaddr)
-{
- char buffer[MAXHOSTNAMELEN +1];
- unsigned short socketid=0;
-
- if (inaddr && (ACE_OS::strlen( inaddr)< MAXHOSTNAMELEN))
- ACE_OS::strcpy( buffer, inaddr);
- else
- {
- valid_flag = 0;
- return 0;
- }
- // look for port info @ the end of the string
- // port can be delineated by a ':' or a '/'
- // if neither are present then just treat it
- // like a normal IpAddress
- char *tmp;
- tmp = ACE_OS::strstr( buffer,"/");
-
- if (tmp != 0)
- {
- *tmp=0; // null terminator
- tmp++;
- socketid = ACE_OS::atoi( tmp);
- }
- set_socket(socketid);
- return IpxAddress::parse_address( buffer);
-}
-
-
-
-//-------------[ set the socket number ]----------------------------------
-void IpxSockAddress::set_socket( const unsigned short s)
-{
- unsigned short sock_nbo = htons(s);
- ACE_OS::memcpy(&address_buffer[IPXLEN], &sock_nbo, 2);
-}
-
-//--------------[ get the socket number ]---------------------------------
-unsigned short IpxSockAddress::get_socket() const
-{
- if (valid_flag)
- {
- unsigned short sock_nbo;
- ACE_OS::memcpy(&sock_nbo, &address_buffer[IPXLEN], 2);
- return ntohs(sock_nbo);
- }
- else
- return 0; // don't use uninitialized memory
-}
-
-//------[ return the type ]----------------------------------------------
-addr_type IpxSockAddress::get_type() const
-{
- return type_ipxsock;
-}
-
-
-//========================================================================
-//======== MACAddress Implementation =====================================
-//========================================================================
-
-//-----------[ syntax type ]----------------------------------------------
-SmiUINT32 MacAddress::get_syntax()
-{
- return sNMP_SYNTAX_OCTETS;
-}
-
-//-----[ MAC Address copy constructor ]---------------------------------
-MacAddress::MacAddress(const MacAddress &macaddr)
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = MACLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = macaddr.valid_flag;
- if (valid_flag)
- ACE_OS::memcpy(address_buffer, macaddr.address_buffer, MACLEN);
- format_output();
-}
-
-//---------[ constructor with a string argument ]-------------------------
-MacAddress::MacAddress( const char *inaddr):Address( )
-{
- if (ACE_OS::strlen(inaddr) == 0) {
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = MACLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag=0;
- format_output();
- return;
- }
-
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = MACLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = parse_address( (char *) inaddr);
- format_output();
-}
-
-//-----[ construct a MacAddress from a GenAddress ]------------------------
-MacAddress::MacAddress( const GenAddress &genaddr)
-{
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = MACLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = 0;
- // allow use of mac address
- if (genaddr.get_type() == type_mac)
- {
- valid_flag = genaddr.valid();
- if ( valid_flag)
- {
- // copy in the Mac address data
- MacAddress temp_mac( (const char *) genaddr);
- *this = temp_mac;
- }
- }
- format_output();
-}
-
-//-----[ destructor ]--------------------------------------------------
-MacAddress::~MacAddress()
-{
-}
-
-//---------[ MacAddress clone ]-------------------------------------------
-SnmpSyntax *MacAddress::clone() const
-{
- return (SnmpSyntax *) new MacAddress(*this);
-}
-
-//------[ assignment to another ipaddress object overloaded ]--------------
-MacAddress& MacAddress::operator=( const MacAddress &macaddress)
-{
- // protect against assignment from itself
- if ( this == &macaddress )
- return *this;
-
- valid_flag = macaddress.valid_flag;
- if (valid_flag)
- ACE_OS::memcpy(address_buffer, macaddress.address_buffer, MACLEN);
- format_output();
- return *this;
-}
-
-
-
-//-----[ MAC Address general = operator ]---------------------------------
-SnmpSyntax& MacAddress::operator=( SnmpSyntax &val)
-{
- // protect against assignment from itself
- if ( this == &val )
- return *this;
-
- valid_flag=0; // will set to 1 if really valid
- if (val.valid()){
- switch (val.get_syntax()){
- case sNMP_SYNTAX_OCTETS:
- if (((MacAddress &)val).smival.value.string.len == MACLEN){
- ACE_OS::memcpy(address_buffer,
- ((MacAddress &)val).smival.value.string.ptr, MACLEN);
- valid_flag=1;
- }
- break;
- }
- }
- format_output();
- return *this;
-}
-
-//-----[ MAC Address parse Address ]--------------------------------------
-// Convert a string to a six byte MAC address
-// On success sets validity 1 or 0
-//
-// MAC address format
-//
-// MAC ADDRESS
-// 01 02 03 04 05 06
-// XX:XX:XX:XX:XX:XX
-// Valid input format
-//
-// XXXXXXXXXXXX
-// Total length must be 17
-// Each char must take on value 0-F
-//
-//
-int MacAddress::parse_address( const char *inaddr)
-{
- char temp[MAXHOSTNAMELEN +1]; // don't destroy original
- char unsigned *tmp;
- size_t z;
-
-
- // save the orginal source
- if ( !inaddr || (ACE_OS::strlen( inaddr) > 30)) return 0;
- ACE_OS::strcpy( temp, inaddr);
- trim_white_space( temp);
-
- // bad total length check
- if ( ACE_OS::strlen(temp) != 17)
- return 0;
-
- // check for colons
- if ((temp[2] != ':')||(temp[5] != ':')||(temp[8]!=':')||(temp[11]!=':')
- ||(temp[14] !=':'))
- return 0;
-
- // strip off the colons
- tmp = ( unsigned char *) temp;
- int i = 0;
- while ( *tmp != 0)
- {
- if (*tmp != ':')
- {
- temp[i] = *tmp;
- i++;
- }
- tmp++;
- }
- temp[i] = 0;
-
- // convert to lower
- for(z=0;z<ACE_OS::strlen(temp);z++)
- temp[z] = tolower( temp[z]);
-
-
- // check out the MAC address
- tmp = ( unsigned char *) temp;
- while( *tmp != 0)
- if (((*tmp >= '0') && (*tmp <= '9'))|| // good 0-9
- ((*tmp >= 'a') && (*tmp <= 'f'))) // or a-f
- tmp++;
- else
- return 0;
-
- // convert to target string
- tmp = (unsigned char *) temp;
- while ( *tmp != 0)
- {
- if (( *tmp >= '0') && ( *tmp <= '9'))
- *tmp = *tmp - (char unsigned )'0';
- else
- *tmp = *tmp - (char unsigned) 'a' + (char unsigned) 10;
- tmp++;
- }
-
- address_buffer[0] = (temp[0]*16) + temp[1];
- address_buffer[1] = (temp[2]*16) + temp[3];
- address_buffer[2] = (temp[4]*16) + temp[5];
- address_buffer[3] = (temp[6]*16) + temp[7];
- address_buffer[4] = (temp[8]*16) + temp[9];
- address_buffer[5] = (temp[10]*16) + temp[11];
-
- return 1;
-}
-
-//----[ MAC address char * cast ]--------------------------------------
-MacAddress::operator const char *() const
-{
- return (char *)output_buffer;
-}
-//----[ MAC address get char representation ]--------------------------
-char * MacAddress::to_string()
-{
- return (char *)output_buffer;
-}
-
-//----[ MAC address format output ]---------------------------------
-void MacAddress::format_output()
-{
- if ( valid_flag)
- sprintf(output_buffer,"%02x:%02x:%02x:%02x:%02x:%02x",address_buffer[0],
- address_buffer[1],address_buffer[2],address_buffer[3],
- address_buffer[4],address_buffer[5]);
- else
- output_buffer[0] = 0;
-}
-
-//------[ return the type ]----------------------------------
-addr_type MacAddress::get_type() const
-{
- return type_mac;
-}
-
-
-unsigned int MacAddress::hashFunction() const
-{
- return ((((address_buffer[0] << 8) + address_buffer[1]) * HASH0)
- + (((address_buffer[2] << 8) + address_buffer[3]) * HASH1)
- + (((address_buffer[4] << 8) + address_buffer[5]) * HASH2));
-}
-
-void MacAddress::to_octet(OctetStr& octet) const
-{
- octet.set_data( smival.value.string.ptr, smival.value.string.len);
-}
-
-//========================================================================
-//========== Generic Address Implementation ==============================
-//========================================================================
-
-//-----------[ get the syntax]----------------------------------------------
-SmiUINT32 GenAddress::get_syntax()
-{
- if (address != 0)
- return address->get_syntax();
-
- return sNMP_SYNTAX_NULL;
-}
-
-void GenAddress::init_smi()
-{
- smival.syntax = sNMP_SYNTAX_NULL; // to be overridden
- smival.value.string.len = 0; // to be overridden
- smival.value.string.ptr = address_buffer; // constant
-}
-
-//-----------[ constructor with a string argument ]----------------------
-GenAddress::GenAddress( const char *addr): address(0)
-{
- valid_flag = 0;
- // initialize SMI info
- // BOK: smival is generally not used for GenAddress, but
- // we need this to be a replica of the real address'
- // smival info so that <class>::operator=SnmpSyntax
- // will work.
- init_smi();
-
- if (addr && ACE_OS::strlen(addr) == 0) {
- format_output();
- return;
- }
-
- parse_address(addr);
-
- // Copy real address smival info into GenAddr smival
- // BOK: smival is generally not used for GenAddress, but
- // we need this to be a replica of the real address'
- // smival info so that <class>::operator=SnmpSyntax
- // will work.
- if ( valid_flag ) {
- smival.syntax = ((GenAddress *)address)->smival.syntax;
- smival.value.string.len =
- ((GenAddress *)address)->smival.value.string.len;
- ACE_OS::memcpy(smival.value.string.ptr,
- ((GenAddress *)address)->smival.value.string.ptr,
- (size_t)smival.value.string.len);
- }
-}
-
-//-----------[ constructor with an Address argument ]--------------------
-GenAddress::GenAddress( const Address &addr): address(0)
-{
- valid_flag = 0;
-
- // initialize SMI info
- // BOK: this is generally not used for GenAddress,
- // but we need this to be a replica of the real address'
- // smival info so that operator=SnmpSyntax will work.
- init_smi();
- // make sure that the object is valid
- if (!addr.valid()) {
- format_output();
- return;
- }
-
- address = (Address*)addr.clone();
- if (address)
- valid_flag = address->valid();
-
- // Copy real address smival info into GenAddr smival
- // BOK: smival is generally not used for GenAddress, but
- // we need this to be a replica of the real address'
- // smival info so that <class>::operator=SnmpSyntax
- // will work.
- if ( valid_flag ) {
- smival.syntax = address->get_syntax();
- smival.value.string.len =
- ((GenAddress *)address)->smival.value.string.len;
- ACE_OS::memcpy(smival.value.string.ptr,
- ((GenAddress *)address)->smival.value.string.ptr,
- (size_t)smival.value.string.len);
- }
-
- format_output();
-}
-
-//-----------------[ constructor with another GenAddress object ]-------------
-GenAddress::GenAddress( const GenAddress &addr): address(0)
-{
- valid_flag = 0;
-
- // initialize SMI info
- // BOK: this is generally not used for GenAddress,
- // but we need this to be a replica of the real address'
- // smival info so that operator=SnmpSyntax will work.
- init_smi();
-
- // make sure that the object is valid
- if (!addr.valid_flag) {
- format_output();
- return;
- }
-
- address = (Address *)addr.address->clone();
- if (address)
- valid_flag = address->valid();
-
- // Copy real address smival info into GenAddr smival
- // BOK: smival is generally not used for GenAddress, but
- // we need this to be a replica of the real address'
- // smival info so that <class>::operator=SnmpSyntax
- // will work.
- if ( valid_flag ) {
- smival.syntax = ((GenAddress *)address)->smival.syntax;
- smival.value.string.len =
- ((GenAddress *)address)->smival.value.string.len;
- ACE_OS::memcpy(smival.value.string.ptr,
- ((GenAddress *)address)->smival.value.string.ptr,
- (size_t)smival.value.string.len);
- }
-
- format_output();
-}
-
-//----------[ destructor ] ------------------------------------------------
-GenAddress::~GenAddress()
-{
- if ( address != 0)
- delete address;
-}
-
-//----------[ create a new instance of this Value ]------------------------
-SnmpSyntax *GenAddress::clone() const
-{
- return (SnmpSyntax *) new GenAddress(*this);
-}
-
-//------[ assignment GenAddress = GenAddress ]-----------------------------
-GenAddress& GenAddress::operator=( const GenAddress &addr)
-{
- // protect against assignment from itself
- if ( this == &addr )
- return *this;
-
- valid_flag = 0;
- if (address) {
- delete address;
- address = 0;
- }
-
- if (addr.address)
- address = (Address *)(addr.address)->clone();
-
- if (address)
- valid_flag = address->valid();
-
- // Copy real address smival info into GenAddr smival
- // BOK: smival is generally not used for GenAddress, but
- // we need this to be a replica of the real address'
- // smival info so that <class>::operator=SnmpSyntax
- // will work.
- if ( valid_flag ) {
- smival.syntax = ((GenAddress *)address)->smival.syntax;
- smival.value.string.len =
- ((GenAddress *)address)->smival.value.string.len;
- ACE_OS::memcpy(smival.value.string.ptr,
- ((GenAddress *)address)->smival.value.string.ptr,
- (size_t)smival.value.string.len);
- }
-
- format_output();
- return *this;
-}
-
-
-//------[ assignment GenAddress = any SnmpSyntax ]-----------------------
-SnmpSyntax& GenAddress::operator=( SnmpSyntax &val)
-{
- // protect against assignment from itself
- if ( this == &val )
- return *this;
-
- valid_flag = 0; // will get set to 1 if really valid
- if ( address != 0) {
- delete address;
- address = 0;
- }
-
- if (val.valid()) {
- switch ( val.get_syntax() ) {
- //-----[ ip address case ]-------------
- // BOK: this case shouldn't be needed since there is an explicit
- // GenAddr=Address assignment that will override this assignment.
- // Left here for posterity.
- case sNMP_SYNTAX_IPADDR:
- {
- address = (Address *)val.clone();
- if (address)
- valid_flag = address->valid();
- }
- break;
-
- //-----[ udp address case ]------------
- //-----[ ipx address case ]------------
- //-----[ mac address case ]------------
- // BOK: This is here only to support GenAddr = primitive OctetStr.
- // The explicit GenAddr=Address assignment will handle the cases
- // GenAddr = [UdpAdd|IpxAddr|IpxSock|MacAddr|DecNetAddr|NetbiosAddr|AppleTlk].
- // Note, using the heuristic of octet str len to determine type of
- // address to create is not accurate when address lengths are equal
- // (e.g., UDPIPV4LEN == MACLEN). It gets worse if we add AppleTalk or
- // OSI which use variable length addresses! assume AppleTalk as used in IOS Mibs
- // is defined in CISCO-TC.my as fixed length of 3 octets
-
- case sNMP_SYNTAX_OCTETS:
- {
- unsigned long val_len;
- val_len = ((GenAddress &)val).smival.value.string.len;
-
- if (val_len == UDPIPV4LEN) {
- ACE_NEW_RETURN(address, UdpAddress, *this);
- }
- else if (val_len ==IPV4LEN) {
- ACE_NEW_RETURN(address, IpAddress, *this);
- }
- else if (val_len == IPXLEN) {
- ACE_NEW_RETURN(address, IpxAddress, *this);
- }
- else if (val_len == IPXSOCKLEN) {
- ACE_NEW_RETURN(address, IpxSockAddress, *this);
- }
- else if (val_len == MACLEN) {
- ACE_NEW_RETURN(address, MacAddress, *this);
- }
- else if (val_len == APPLETKLEN) {
- ACE_NEW_RETURN(address, AppleTalkAddress, *this);
- }
- else if (val_len == DECNETLEN) {
- ACE_NEW_RETURN(address, DecNetAddress, *this);
- }
- else if (val_len == NETBIOSLEN) {
- ACE_NEW_RETURN(address, DecNetAddress, *this);
- }
-
- if (address) {
- *address = val;
- valid_flag = address->valid();
- }
- }
- break;
- } // end switch
- }
-
- // Copy real address smival info into GenAddr smival
- // BOK: smival is generally not used for GenAddress, but
- // we need this to be a replica of the real address'
- // smival info so that <class>::operator=SnmpSyntax
- // will work.
- if ( valid_flag ) {
- smival.syntax = ((GenAddress *)address)->smival.syntax;
- smival.value.string.len =
- ((GenAddress *)address)->smival.value.string.len;
- ACE_OS::memcpy(smival.value.string.ptr,
- ((GenAddress *)address)->smival.value.string.ptr,
- (size_t)smival.value.string.len);
- }
-
- format_output();
- return *this;
-}
-
-
-// redefined parse address for macs
-// TODO: Add netbios, appletalk, and decnet addresses here
-int GenAddress::parse_address( const char *addr)
-{
- if ( address != 0)
- delete address;
-
- // try to create each of the addresses until the correct one
- // is found
-
-//BOK: Need to try IPX Sock and IPX before UDP since on Win32,
-// gethostbyname() seems to think the ipx network number
-// portion is a valid ipaddress string... stupid WinSOCK!
-
- // ipxsock address
- ACE_NEW_RETURN(address, IpxSockAddress( addr), -1);
- valid_flag = address->valid();
- if ( valid_flag && ((IpxSockAddress*)address)->get_socket()) {
- format_output();
- return 1; // ok its an ipxsock address
- }
- // otherwise delete it and try another
- delete address;
-
- // ipx address
- ACE_NEW_RETURN(address, IpxAddress( addr), -1);
- valid_flag = address->valid();
- if ( valid_flag) {
- format_output();
- return 1; // ok its an ipx address
- }
- // otherwise delete it and try another
- delete address;
-
-//TM: Must try the derived classes first...one pitfall of the
-//following solution is if someone creates with a port/socket of 0 the
-//class will get demoted to ip/ipx. The only proper way to do this is
-//to parse the strings ourselves.
-
- // udp address
- ACE_NEW_RETURN(address, UdpAddress( addr), -1);
- valid_flag = address->valid();
- if ( valid_flag && ((UdpAddress*)address)->get_port()) {
- format_output();
- return 1; // ok its a udp address
- }
-
- // otherwise delete it and try another
- delete address;
-
- // ip address
- ACE_NEW_RETURN(address, IpAddress( addr), -1);
- valid_flag = address->valid();
- if ( valid_flag)
- {
- format_output();
- return 1; // ok its an ip address
- }
- // otherwise delete it and try another
- delete address;
-
- // mac address
- ACE_NEW_RETURN(address, MacAddress( addr), -1);
- valid_flag = address->valid();
- if ( valid_flag) {
- format_output();
- return 1; // ok, its a mac
- }
-
- // guess by length of argument the type of address
- switch (ACE_OS::strlen(addr)) {
- case NETBIOSLEN:
- ACE_NEW_RETURN(address, NetbiosAddress( addr), -1);
- valid_flag = address->valid();
- if ( valid_flag) {
- format_output();
- return 1; // ok, its a mac
- }
- break;
-
- case APPLETKLEN:
- ACE_NEW_RETURN(address, AppleTalkAddress( addr), -1);
- valid_flag = address->valid();
- if ( valid_flag) {
- format_output();
- return 1; // ok, its a mac
- }
- break;
-
- case DECNETLEN:
- ACE_NEW_RETURN(address, DecNetAddress( addr), -1);
- valid_flag = address->valid();
- if ( valid_flag) {
- format_output();
- return 1; // ok, its a mac
- }
- break;
-
- }
- // otherwise its invalid
- delete address;
- address = 0;
- format_output();
- return 0;
-}
-
-GenAddress::operator const char *() const
-{
- if ( address != 0)
- return (const char *)*address; // pass thru
- else
- return (char *)output_buffer;
-}
-
-// to_string form of the contained address
-char * GenAddress::to_string()
-{
- if ( address != 0)
- return address->to_string(); // pass thru
- else
- return (char *)output_buffer;
-}
-
-// format output
-void GenAddress::format_output()
-{
- output_buffer[0] = '\0';
-}
-
-//------[ return the type ]----------------------------------
-addr_type GenAddress::get_type() const
-{
- if (!valid())
- return type_invalid;
- else
- return address->get_type();
-}
-
-// call the particular type class here
-void GenAddress::to_octet(OctetStr& octet) const
-{
- if (!valid())
- return;
-
- address->to_octet(octet);
-}
-
-//------------------------------------------------------------------------
-//---------[ DecNet Address Class ]---------------------------------------
-//------------------------------------------------------------------------
-
-DecNetAddress::DecNetAddress( const char *inaddr): Address()
-{
- if (ACE_OS::strlen(inaddr) == 0) {
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = DECNETLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag=0;
- DecNetAddress::format_output();
- return;
- }
-
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = DECNETLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = parse_address( (char *) inaddr);
- DecNetAddress::format_output();
-}
-
-DecNetAddress::DecNetAddress( const DecNetAddress&)
-{
-}
-
-DecNetAddress::DecNetAddress( const GenAddress& genaddr)
-{
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = DECNETLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = 0;
- // allow use of an ipx or ipxsock address
- if ( (genaddr.get_type() == type_decnet) ) {
- valid_flag = genaddr.valid();
- if ( valid_flag) {
- // copy in the Ipx address data
- DecNetAddress temp_ipx( (const char *) genaddr);
- *this = temp_ipx;
- }
- }
- DecNetAddress::format_output();
-}
-
-DecNetAddress::~DecNetAddress()
-{
-}
-
-char *DecNetAddress::to_string()
-{
- return (char *)output_buffer;
-}
-
-DecNetAddress& DecNetAddress::operator=( const DecNetAddress &decaddr)
-{
- // protect against assignment from itself
- if ( this == &decaddr )
- return *this;
- valid_flag = decaddr.valid_flag;
- if (valid_flag)
- ACE_OS::memcpy(address_buffer, decaddr.address_buffer, DECNETLEN);
- format_output();
- return *this;
-}
-
-void DecNetAddress::to_octet(OctetStr& octet) const
-{
- octet.set_data( smival.value.string.ptr, smival.value.string.len);
-}
-
-DecNetAddress::operator const char *() const
-{
- return (char *)output_buffer;
-}
-
-SmiUINT32 DecNetAddress::get_syntax()
-{
- return sNMP_SYNTAX_OCTETS;
-}
-
-SnmpSyntax& DecNetAddress::operator=( SnmpSyntax &val)
-{
- // protect against assignment from itself
- if ( this == &val )
- return *this;
-
- valid_flag = 0; // will get set 1 if really valid
-
- if (val.valid()) {
- if (((DecNetAddress &)val).smival.value.string.len ==DECNETLEN) {
- ACE_OS::memcpy(address_buffer,
- ((DecNetAddress &)val).smival.value.string.ptr, DECNETLEN);
- valid_flag = 1;
- }
- }
- DecNetAddress::format_output();
- return *this;
-}
-
-SnmpSyntax *DecNetAddress::clone() const
-{
- return (SnmpSyntax *) new DecNetAddress(*this);
-}
-
-addr_type DecNetAddress::get_type() const
-{
- return type_decnet;
-}
-
-void DecNetAddress::format_output()
-{
- // if valid format else null it
- if ( valid_flag)
- ACE_OS::sprintf( (char *) output_buffer,"%d.%d",address_buffer[0],
- address_buffer[1]);
- else
- output_buffer[0] = 0;
-}
-
-int DecNetAddress::parse_address( const char *address)
-{
- if (ACE_OS::strlen(address) > DECNETLEN)
- return 0; // invalid
-
- ACE_OS::memset(address_buffer, 0, DECNETLEN);
- ACE_OS::memcpy(address_buffer, address, DECNETLEN);
-
- return 1; // valid
-}
-
-
-//------------------------------------------------------------------------
-//---------[ AppleTalk Address Class ]------------------------------------
-//------------------------------------------------------------------------
-
-AppleTalkAddress::AppleTalkAddress( const char *inaddr): Address()
-{
- if (ACE_OS::strlen(inaddr) == 0) {
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = APPLETKLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag=0;
- AppleTalkAddress::format_output();
- return;
- }
-
- // always initialize SMI info
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = APPLETKLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = parse_address( (char *) inaddr);
- AppleTalkAddress::format_output();
-}
-AppleTalkAddress::AppleTalkAddress( const AppleTalkAddress&)
-{
-}
-
-AppleTalkAddress::AppleTalkAddress( const GenAddress& genaddr)
-{
- smival.syntax = sNMP_SYNTAX_OCTETS;
- smival.value.string.len = APPLETKLEN;
- smival.value.string.ptr = address_buffer;
-
- valid_flag = 0;
- // allow use of an ipx or ipxsock address
- if ( (genaddr.get_type() == type_atk) ) {
- valid_flag = genaddr.valid();
- if ( valid_flag) {
- // copy in the Ipx address data
- AppleTalkAddress temp_ipx( (const char *) genaddr);
- *this = temp_ipx;
- }
- }
- AppleTalkAddress::format_output();
-}
-
-AppleTalkAddress::~AppleTalkAddress()
-{
-}
-
-char *AppleTalkAddress::to_string()
-{
- return (char *)output_buffer;
-}
-
-AppleTalkAddress& AppleTalkAddress::operator=( const AppleTalkAddress &ataddr)
-{
- // protect against assignment from itself
- if ( this == &ataddr )
- return *this;
- valid_flag = ataddr.valid_flag;
- if (valid_flag)
- ACE_OS::memcpy(address_buffer, ataddr.address_buffer, APPLETKLEN);
- format_output();
- return *this;
-}
-
-void AppleTalkAddress::to_octet(OctetStr& octet) const
-{
- octet.set_data( smival.value.string.ptr, smival.value.string.len);
-}
-
-AppleTalkAddress::operator const char *() const
-{
- return (char *)output_buffer;
-}
-
-SmiUINT32 AppleTalkAddress::get_syntax()
-{
- return sNMP_SYNTAX_OCTETS;
-}
-
-SnmpSyntax& AppleTalkAddress::operator=( SnmpSyntax &val)
-{
- // protect against assignment from itself
- if ( this == &val )
- return *this;
-
- valid_flag = 0; // will get set 1 if really valid
-
- if (val.valid()) {
- if (((AppleTalkAddress &)val).smival.value.string.len ==APPLETKLEN) {
- ACE_OS::memcpy(address_buffer,
- ((AppleTalkAddress &)val).smival.value.string.ptr,APPLETKLEN);
- valid_flag = 1;
- }
- }
- AppleTalkAddress::format_output();
- return *this;
-}
-
-SnmpSyntax *AppleTalkAddress::clone() const
-{
- return (SnmpSyntax *) new AppleTalkAddress(*this);
-}
-
-addr_type AppleTalkAddress::get_type() const
-{
- return type_atk;
-}
-
-void AppleTalkAddress::format_output()
-{
- // if valid format else null it
- if ( valid_flag)
- ACE_OS::sprintf( (char *) output_buffer,"%d.%d.%d", address_buffer[0],
- address_buffer[1], address_buffer[3]);
- else
- output_buffer[0] = 0;
-}
-
-int AppleTalkAddress::parse_address( const char *address)
-{
- if (ACE_OS::strlen(address) > APPLETKLEN)
- return 0; // invalid
-
- ACE_OS::memset(address_buffer, 0, APPLETKLEN);
- ACE_OS::memcpy(address_buffer, address, APPLETKLEN);
-
- return 1; // valid
-}
-
-char AppleTalkAddress::get_host_address() const
-{
- return address_buffer[2];
-}
-
-void AppleTalkAddress::set_host_address(const char host)
-{
- address_buffer[2] = host;
-}
-
-short AppleTalkAddress::get_net_address() const
-{
- short net;
- ACE_OS::memcpy(&net, address_buffer, APPLETKLEN - 1);
- return net;
-}
-
-void AppleTalkAddress::set_net_address(const short atknet)
-{
- ACE_OS::memcpy(address_buffer, &atknet, APPLETKLEN -1);
-}
diff --git a/ASNMP/asnmp/address.h b/ASNMP/asnmp/address.h
deleted file mode 100644
index 898e6968f56..00000000000
--- a/ASNMP/asnmp/address.h
+++ /dev/null
@@ -1,813 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef ADDRESS_
-#define ADDRESS_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// address.h
-//
-// = DESCRIPTION
-// Address class definition. Encapsulates various network
-// addresses into easy to use, safe and portable classes.
-//
-// = AUTHOR
-// Peter E Mellquist
-//
-// ============================================================================
-
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-//----[ includes ]-----------------------------------------------------
-// ACE OS Adaption layer
-#include "ace/OS.h"
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "asnmp/smival.h"
-#include "asnmp/octet.h"
-
-//----[ enumerated types ] --------------------------------
-enum address_lengths {
- IPV4LEN=4,
- UDPIPV4LEN=6,
- IPV6LEN=16,
- UDPIPV6LEN=18,
- IPXLEN=10,
- IPXSOCKLEN=12,
- NETBIOSLEN=16,
- APPLETKLEN=3,
- DECNETLEN=2,
- MACLEN=6,
- HASH0=19,
- HASH1=13,
- HASH2=7,
- MAX_ADDR_SZ=20,
- MAX_DISPLAY_SZ=MAXHOSTNAMELEN+1
-};
-
-enum addr_type {
- type_ip,
- type_ipx,
- type_udp,
- type_ipxsock,
- type_mac,
- type_nb,
- type_atk,
- type_decnet,
- type_e164,
- type_sip, // IPv6
- type_invalid
-};
-
-// TODO: get rest of nb service types added here
-enum nb_service {
- nb_workstation = 0x0, nb_server = 0x20
-};
-
-//---[ forward declarations ]-----------------------------------------
-class GenAddress;
-class UdpAddress;
-class IpxSockAddress;
-class NetbiosAddress;
-class SIPAddress; // aka ipv6
-
-// TODO:
-// class AtmE164Address;
-
-
-//--------------------------------------------------------------------
-//----[ Address class ]-----------------------------------------------
-//--------------------------------------------------------------------
-class ACE_Export Address: public SnmpSyntax
- // = TITLE
- // Defines the member functions for the abstract base class
- // Address. An Address is a unique network endpoint.
-{
-
-public:
- virtual ~Address();
- // allow destruction of derived classes
-
- friend int operator==( const Address &lhs,const Address &rhs);
- // overloaded equivlence operator, are two addresses equal?
-
- friend int operator!=( const Address &lhs,const Address &rhs);
- // overloaded not equivlence operator, are two addresses not equal?
-
- friend int operator>( const Address &lhs,const Address &rhs);
- // overloaded > operator, is a1 > a2
-
- friend int operator>=( const Address &lhs,const Address &rhs);
- // overloaded >= operator, is a1 >= a2
-
- friend int operator<( const Address &lhs,const Address &rhs);
- // overloaded < operator, is a1 < a2
-
- friend int operator<=( const Address &lhs,const Address &rhs);
- // overloaded <= operator, is a1 <= a2
-
- friend int operator==( const Address &lhs,const char *rhs);
- // equivlence operator overloaded, are an address and a string equal?
-
- friend int operator!=( const Address &lhs,const char *rhs);
- // overloaded not equivlence operator, are an address and string not equal?
-
- friend int operator>( const Address &lhs,const char *rhs);
- // overloaded < , is an address greater than a string?
-
- friend int operator>=( const Address &lhs,const char *rhs);
- // overloaded >=, is an address greater than or equal to a string?
-
- friend int operator<( const Address &lhs,const char *rhs);
- // overloaded < , is an address less than a string?
-
- friend int operator<=( const Address &lhs,const char *rhs);
- // overloaded <=, is an address less than or equal to a string?
-
- virtual operator const char *() const = 0;
- // overloaded const char * cast
-
- virtual int valid() const;
- // verify the is the address object constructed ok
-
- virtual void to_octet(OctetStr& octet) const = 0;
- // return a suitable buffer to contain the address
-
- virtual SmiUINT32 get_syntax() = 0;
- // (pure virtual) syntax type
-
- unsigned char& operator[]( const int position);
- // for non const [], allows reading and writing
-
- virtual char *to_string() = 0;
- // get a printable ASCII value
-
- virtual SnmpSyntax *clone() const = 0;
- // create a new instance of this Value
-
- virtual addr_type get_type() const = 0;
- // return the type of address
-
- virtual SnmpSyntax& operator=( SnmpSyntax &val) = 0;
- // overloaded assignment operator
-
- virtual unsigned int hashFunction() const { return 0;};
- // return a hash key
-
-
-protected:
- int valid_flag;
- // state of constructed object (1/0)
- unsigned char address_buffer[MAX_ADDR_SZ];
- // addr internal representation
-
- virtual int parse_address( const char * inaddr) =0;
- // parse the address string
- // redefined for each specific address subclass
-
- virtual void format_output() =0;
- // format the output
- // redefined for each specific address subclass
-
- void trim_white_space( char * ptr);
- // a reused trimm white space method
-};
-
-
-//-----------------------------------------------------------------------
-//---------[ IPv4 Address Class ]----------------------------------------
-//-----------------------------------------------------------------------
-class ACE_Export IpAddress : public Address
- // = TITLE
- // Defines the member functions for the concrete class IpAddress
- // An IP Version 4 Address is 4 bytes long and consists of a
- // Network, Sub Network, and host component.
-{
-public:
- IpAddress( const char *inaddr = "");
- // default construct an IP address with a string
-
- IpAddress( const IpAddress &ipaddr);
- // construct an IP address with another IP address
-
- IpAddress( const GenAddress &genaddr);
- // construct an IP address with a GenAddress
-
- ~IpAddress();
- // destructor (ensure that SnmpSyntax::~SnmpSyntax() is overridden)
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- IpAddress& operator=( const IpAddress &ipaddress);
- // assignment to another IpAddress object overloaded
-
- // TODO: add ability to set addr given long
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- char *resolve_hostname(int& was_found);
- // return the DNS Fully Qualified Domain Name (host.domain)
- // on failure returns dotted_quad string
-
- virtual char *to_string() ;
- // return string representation of object (dotted quad returned)
-
- virtual operator const char *() const;
- // const char * operator overloaded for streaming output
-
- void mask( const IpAddress& ipaddr);
- // logically AND two IPaddresses and
- // return the new one
-
- virtual addr_type get_type() const;
- // return the type
-
- virtual SmiUINT32 get_syntax();
- // syntax type
-
- int is_loopback() const;
- // is this the loopback address? 127.0.0.1/loopback/1.0.0.127.in-addr.arpa
-
- int is_multicast() const;
- // determine if this is a multicast address
-
- int is_broadcast() const;
- // determine if this a broadcast address
-
- int is_private() const;
- // per RFC 1597, private addresses are:: 10, 172.16, and 192.168.0
-
- virtual void to_octet(OctetStr& octet) const;
- // convert address into octet string format in network byte order
-
-protected:
- char output_buffer[MAX_DISPLAY_SZ]; // output buffer
-
- char iv_friendly_name_[MAX_DISPLAY_SZ];
- // friendly name storage
-
- int iv_friendly_name_status_;
- // did resolver call work? some addrs won't resolve
-
- virtual int parse_address( const char *inaddr);
- // redefined parse address
- // specific to IP addresses
-
- virtual void format_output();
- // redefined format output
- // specific to IP addresses
-
- int parse_dotted_ipstring( const char *inaddr);
- // parse a dotted string
-
- int addr_to_friendly();
- // using the currently defined address, do a gethostbyname()
- // and try to fill up the name
-
- static int resolve_to_address(const char *hostname, in_addr& quad_addr);
- // thread safe routine to lookup ip address given hostname
- // return <> 0 on error
-
- static int resolve_to_hostname(const in_addr& quad_addr, char *hostname);
- // thread safe routine to lookup name given ip address
- // return <> 0 on error
-
-};
-
-//------------------------------------------------------------------------
-//--------------[ DNS Iterator Class ]------------------------------------
-//------------------------------------------------------------------------
-
-class ACE_Export Address_Iter
- // = TITLE
- // Defines routines to obtain information on a hostname/FQDN
- // such as multiple addresses
-{
-public:
- Address_Iter(const char *hostname); // fully qualified domain name, hostname
-
- int valid() const;
- // did hostname resolve via DNS?
-
- int how_many_addresses();
- // how many addresses associated with this hostname
-
- int next(IpAddress& addr);
- // return next address
-
-private:
- Address_Iter(const Address_Iter&);
- int valid_; // ctor status
- int count_; // number of addresses
- char **entry_; // ptr to current address
- struct hostent lookupResult_;
- ACE_HOSTENT_DATA buffer_;
- int query_dns(const char *hostname);
-};
-
-//------------------------------------------------------------------------
-//---------[ UDP/IPv4 Address Class ]-------------------------------------
-//------------------------------------------------------------------------
-class ACE_Export UdpAddress : public IpAddress
- // = TITLE
- // Defines the member functions for the concrete class UdpAddress
- // A Udp Address consists of an IP Version 4 Address (IpAddress)
- // and a 2 byte unsigned port number. (see /etc/services file)
- // User Datagram Protocol (UDP) is a best effort transport
-{
-public:
- UdpAddress( const char *inaddr = "");
- // default constructor with a dotted string in the form of addr:port
-
- UdpAddress( const UdpAddress &udpaddr);
- // construct an Udp address with another Udp address
-
- UdpAddress( const GenAddress &genaddr);
- // construct a Udp address with a GenAddress
-
- UdpAddress( const IpAddress &ipaddr);
- // construct a Udp address with an IpAddress
- // default port # to zero
-
- ~UdpAddress();
- // destructor
-
- SmiUINT32 get_syntax();
- // syntax type
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- UdpAddress& operator=( const UdpAddress &udpaddr);
- // assignment to another IpAddress object overloaded
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- virtual char *to_string() ;
- // output in the form of address:port
-
- virtual operator const char *() const;
- // const char * operator overloaded for streaming output
-
- void set_port( const unsigned short p);
- // set the port number
-
- unsigned short get_port() const;
- // get the port number
-
- virtual addr_type get_type() const;
- // return the type
-
-protected:
- char output_buffer[MAX_DISPLAY_SZ];
- // output buffer
-
- virtual int parse_address( const char *inaddr);
- // redefined parse address
- // specific to IP addresses
-
- virtual void format_output();
- // redefined format output
- // specific to IP addresses
-};
-
-
-//-------------------------------------------------------------------------
-//---------[ 802.3 MAC Address Class ]-------------------------------------
-//-------------------------------------------------------------------------
-class ACE_Export MacAddress : public Address
- // = TITLE
- // Defines the member functions for the concrete class MacAddress.
- // A Media Access Control Address consists of 48 bits as defined
- // in IEEE 802.3 specifications.
-{
-public:
- MacAddress( const char *inaddr = "");
- // constructor with a string argument
-
- MacAddress( const MacAddress &macaddr);
- // constructor with another MAC object
-
- MacAddress( const GenAddress &genaddr);
- // construct a MacAddress with a GenAddress
-
- ~MacAddress();
- // destructor
-
- SmiUINT32 get_syntax();
- // syntax type
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- MacAddress& operator=( const MacAddress &macaddress);
- // assignment to another IpAddress object overloaded
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- virtual char *to_string();
- // create a string to internal class storage representing object
-
- virtual operator const char *() const;
- // const char * operator overloaded for streaming output
-
- virtual addr_type get_type() const;
- // return the type
-
- unsigned int hashFunction() const;
- // return a hash key
-
- virtual void to_octet(OctetStr& octet) const;
- // return byte array of the mac address
-
-protected:
- char output_buffer[MAX_DISPLAY_SZ];
- // output buffer containing string representation of object
-
- virtual int parse_address( const char *inaddr);
- // redefined parse address for macs
-
- virtual void format_output();
- // redefined format output for MACs
-};
-
-//------------------------------------------------------------------------
-//---------[ Netbios Address Class ]--------------------------------------
-//------------------------------------------------------------------------
-class ACE_Export NetbiosAddress : public Address
- // = TITLE
- // Defines the member functions for the concrete class NetbiosAddress.
- // The IBM/Microsoft address for NETBIOS, NETBEUI protocol transport.
-{
-public:
-
- NetbiosAddress( const char *inaddr = "");
- // default constructor with string arg
-
- NetbiosAddress( const char *inaddr, nb_service svc);
- // set name and service type
-
- NetbiosAddress( const NetbiosAddress& nbaddr);
- // copy constructor
-
- NetbiosAddress( const GenAddress& genaddr);
- // construct with a GenAddress
-
- ~NetbiosAddress();
-
- virtual char *to_string();
-
- NetbiosAddress& operator=( const NetbiosAddress &nbaddr);
-
- nb_service get_service_type() const;
- // retrieve the network service type
-
- void set_service_type(nb_service nbservice);
- // set the service type (workstation, server, etc)
-
- virtual operator const char *() const;
- // const char * operator overloaded for streaming output
-
- virtual SmiUINT32 get_syntax();
- // syntax type
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- virtual void to_octet(OctetStr& octet) const;
- // output byte buffer containing netbios name
-
-protected:
- void InitNBAddr(const char *inaddr);
- char output_buffer[MAX_DISPLAY_SZ];
-
- virtual void format_output();
- // output buffer to hold string representation
- virtual int parse_address( const char *inaddr);
- virtual addr_type get_type() const;
-};
-
-//------------------------------------------------------------------------
-//---------[ DecNet Address Class ]---------------------------------------
-//------------------------------------------------------------------------
-class ACE_Export DecNetAddress : public Address
- // = TITLE
- // Defines the member functions for the concrete class DecNetAddress.
- // DecNet Phase ? address consists of two octets (CISCO-TC.my)
-{
- public:
- DecNetAddress( const char *inaddr = "");
- // default constructor with string arg
-
- DecNetAddress( const DecNetAddress& decaddr);
- // copy constructor
-
- DecNetAddress( const GenAddress& genaddr);
- // construct with a GenAddress
-
- ~DecNetAddress();
-
- virtual char *to_string();
-
- DecNetAddress& operator=( const DecNetAddress &decaddr);
-
- virtual void to_octet(OctetStr& octet) const;
- // convert address into octet string format 2 bytes of decnet address
-
- virtual operator const char *() const;
- // const char * operator overloaded for streaming output
-
- virtual SmiUINT32 get_syntax();
- // syntax type
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- protected:
- virtual int parse_address( const char *inaddr);
- virtual addr_type get_type() const;
- virtual void format_output();
- char output_buffer[MAX_DISPLAY_SZ];
-};
-
-//------------------------------------------------------------------------
-//---------[ AppleTalk Address Class ]------------------------------------
-//------------------------------------------------------------------------
-class ACE_Export AppleTalkAddress : public Address
- // = TITLE
- // Defines the member functions for the concrete class DecNetAddress.
- // DecNet Phase ? address consists of two octets (CISCO-TC.my)
-{
- public:
- AppleTalkAddress( const char *inaddr = "");
- // default constructor with string arg
-
- AppleTalkAddress( const AppleTalkAddress& atkaddr);
- // copy constructor
-
- AppleTalkAddress( const GenAddress& genaddr);
- // construct with a GenAddress
-
- ~AppleTalkAddress();
-
- virtual char *to_string();
-
- AppleTalkAddress& operator=( const AppleTalkAddress &atkaddr);
-
- virtual void to_octet(OctetStr& octet) const;
- // convert address into octet string format 3 bytes of atk address
-
- char get_host_address() const;
- // get the host part of the address
-
- void set_host_address(const char);
- // set the host part of the address
-
- short get_net_address() const;
- // get the 2 byte atk network address
-
- void set_net_address(const short atknet);
- // set the host 2 byte atk network address
-
- virtual operator const char *() const;
- // const char * operator overloaded for streaming output
-
- virtual SmiUINT32 get_syntax();
- // syntax type
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- private:
- virtual int parse_address( const char *inaddr);
- virtual addr_type get_type() const;
- virtual void format_output();
- char output_buffer[MAX_DISPLAY_SZ];
-};
-
-//------------------------------------------------------------------------
-//---------[ IPX Address Class ]------------------------------------------
-//------------------------------------------------------------------------
-class ACE_Export IpxAddress : public Address
- // = TITLE
- // Defines the member functions for the concrete class IpxAddress.
- // Novell's IPX (version ?) network protocol endpoint
-{
-public:
- IpxAddress( const char *inaddr = "");
- // default constructor with a string arg
-
- IpxAddress( const IpxAddress &ipxaddr);
- // constructor with another ipx object
-
- IpxAddress( const GenAddress &genaddr);
- // construct with a GenAddress
-
- ~IpxAddress();
- // destructor
-
- virtual SmiUINT32 get_syntax();
- // syntax type
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- IpxAddress& operator=( const IpxAddress &ipxaddress);
- // assignment to another IpxAddress object overloaded
-
- int get_hostid( MacAddress& mac);
- // get the host id portion of an ipx address
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- virtual char *to_string();
- // create string represtation of object value
-
- virtual operator const char *() const;
- // const char * operator overloaded for streaming output
-
- virtual addr_type get_type() const;
- // return the type
-
- virtual void to_octet(OctetStr& octet) const;
- // return byte sequence containing ipx address
-
-protected:
- char separator;
- // ipx format separator {:,/}
-
- char output_buffer[MAX_DISPLAY_SZ];
- // output buffer to hold string representation
-
- virtual int parse_address( const char *inaddr);
- // redefined parse address for ipx strings
-
- virtual void format_output();
- // redefined format output for ipx strings
- // uses same separator as when constructed
-};
-
-
-
-//------------------------------------------------------------------------
-//---------[ IpxSock Address Class ]--------------------------------------
-//------------------------------------------------------------------------
-class ACE_Export IpxSockAddress : public IpxAddress
- // = TITLE
- // Defines the member functions for the concrete class IpxAddress.
- // Novell's IPX (version ?) network protocol endpoint
-{
-public:
- IpxSockAddress( const char *inaddr = "");
- // constructor with a dotted string
-
- IpxSockAddress( const IpxSockAddress &ipxaddr);
- // construct an Udp address with another Udp address
-
- IpxSockAddress( const GenAddress &genaddr);
- //constructor with a GenAddress
-
- IpxSockAddress( const IpxAddress &ipxaddr);
- //constructor with a IpxAddress
- // default socket # is 0
-
- ~IpxSockAddress();
- // destructor
-
- virtual SmiUINT32 get_syntax();
- // syntax type
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- IpxSockAddress& operator=( const IpxSockAddress &ipxaddr);
- // assignment to another IpxAddress object overloaded
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- void set_socket( const unsigned short s);
- // set the socket number
-
- unsigned short get_socket() const;
- // get the socket number
-
- virtual char *to_string();
- // create string representation of object value
-
- virtual operator const char *() const;
- // const char * operator overloaded for streaming output
-
- virtual addr_type get_type() const;
- // return the type
-
-protected:
- char output_buffer[MAX_DISPLAY_SZ];
- // output buffer to hold string representation of object
-
- virtual int parse_address( const char *inaddr);
- // redefined parse address for ipx strings
-
- virtual void format_output();
- // redefined format output
- // specific to IP addresses
-};
-
-//-------------------------------------------------------------------------
-//--------[ Generic Address ]----------------------------------------------
-//-------------------------------------------------------------------------
-class ACE_Export GenAddress : public Address
- // = TITLE
- // Defines the member functions for the concrete class GenAddress.
- // This class attempts to determine an address type given a char string.
-{
-public:
- GenAddress( const char *addr = "");
- // constructor with a string argument
-
- GenAddress( const Address &addr);
- // constructor with an Address
-
- GenAddress( const GenAddress &addr);
- // constructor with another GenAddress
-
- ~GenAddress();
- // destructor
-
- SmiUINT32 get_syntax();
- // get the snmp syntax of the contained address
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- GenAddress& operator=( const GenAddress &addr);
- // assignment of a GenAddress
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- virtual char *to_string();
- // string representation of object value
-
- virtual operator const char *() const;
- // const char * operator overloaded for streaming output
-
- virtual addr_type get_type() const;
- // return the type
-
- virtual void to_octet(OctetStr& octet) const;
- // return the address as a octet sequence
-
-protected:
- Address *address;
- // pointer to a a concrete address
-
- char output_buffer[MAX_DISPLAY_SZ];
- // output buffer of objects value
-
- virtual int parse_address( const char *addr);
- // redefined parse address for macs
-
- virtual void format_output();
- // format output for a generic address
-
- void init_smi();
- // initialize smi data structure
-};
-
-#endif //_ADDRESS
diff --git a/ASNMP/asnmp/asn1.cpp b/ASNMP/asnmp/asn1.cpp
deleted file mode 100644
index 77dc9baa5ec..00000000000
--- a/ASNMP/asnmp/asn1.cpp
+++ /dev/null
@@ -1,1728 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// asn1.cpp
-//
-// = DESCRIPTION
-// The Vb class is an encapsulation of the snmp variable binding.
-// This module contains the class definition for the variable binding (VB)
-// class. The VB class is an encapsulation of a SNMP VB. A VB object is
-// composed of one SNMP++ Oid and one SMI value. The Vb class utilizes Oid
-// objects and thus requires the Oid class. To use this class,
-// set oid, value then call valid() to be sure object was constructed correctly.
-//
-// = AUTHOR
-// S. Waldbusser (assumed)
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/**********************************************************************
-// *
- * Abstract Syntax Notation One, ASN.1
- * As defined in ISO/IS 8824 and ISO/IS 8825
- * This implements a subset of the above International Standards that
- * is sufficient to implement SNMP.
- *
- * Encodes abstract data types into a machine independent stream of bytes.
- *
- Copyright 1988, 1989, 1991, 1992 by Carnegie Mellon University
-
- All Rights Reserved
-
- Permission to use, copy, modify, and distribute this software and its
- documentation for any purpose and without fee is hereby granted,
- provided that the above copyright notice appear in all copies and that
- both that copyright notice and this permission notice appear in
- supporting documentation, and that the name of CMU not be
- used in advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
-
- CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
- ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
- CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
- ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
- WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- SOFTWARE.
- ******************************************************************/
-
-#include "asnmp/asn1.h"
-#include "asnmp/snmp.h"
-
-ACE_RCSID(asnmp, asn1, "$Id$")
-
-/*
- * parse_int - pulls a long out of an ASN int type.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the end of this object.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char * asn1::parse_int( u_char *data,
- int *datalength,
- u_char *type,
- long int *intp,
- int intsize)
-{
- ACE_TRACE("asn1::parse_int");
- /*
- * ASN.1 integer ::= 0x02 asnlength byte {byte}*
- */
- u_char *bufp = data;
- u_long asn_length;
- long value = 0;
-
- if (intsize != sizeof (long)){
- ASNERROR("not long");
- return 0;
- }
- *type = *bufp++;
- bufp =asn1::parse_length(bufp, &asn_length);
- if (bufp == 0){
- ASNERROR("bad length");
- return 0;
- }
- if ((int)(asn_length + (bufp - data)) > *datalength){
- ASNERROR("overflow of message");
- return 0;
- }
- if ((int)asn_length > intsize){
- ASNERROR("I don't support such large integers");
- return 0;
- }
- *datalength -= (int)asn_length + (bufp - data);
- if (*bufp & 0x80)
- value = -1; /* integer is negative */
- while(asn_length--)
- value = (value << 8) | *bufp++;
- *intp = value;
- return bufp;
-};
-
-
-/*
- * parse_unsigned_int - pulls an u_long out of an ASN int type.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the end of this object.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char * asn1::parse_unsigned_int( u_char *data,
- int *datalength,
- u_char *type,
- u_long *intp,
- int intsize)
-{
- ACE_TRACE("asn1::parse_unsigned_int");
- /*
- * ASN.1 integer ::= 0x02 asnlength byte {byte}*
- */
- u_char *bufp = data;
- u_long asn_length;
- u_long value = 0;
-
- if (intsize != sizeof (long)){
- ASNERROR("not long");
- return 0;
- }
- *type = *bufp++;
- bufp = asn1::parse_length(bufp, &asn_length);
- if (bufp == 0){
- ASNERROR("bad length");
- return 0;
- }
- if ((int)(asn_length + (bufp - data)) > *datalength){
- ASNERROR("overflow of message");
- return 0;
- }
- if (((int)asn_length > (intsize + 1)) ||
- (((int)asn_length == intsize + 1) && *bufp != 0x00)){
- ASNERROR("I don't support such large integers");
- return 0;
- }
- *datalength -= (int)asn_length + (bufp - data);
- if (*bufp & 0x80)
- value = (u_long) -1;
- while(asn_length--)
- value = (value << 8) | *bufp++;
- *intp = value;
- return bufp;
-};
-
-
-/*
- * build_int - builds an ASN object containing an integer.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the end of this object.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char * asn1::build_int( u_char *data,
- int *datalength,
- u_char type,
- long *intp,
- int intsize)
-{
- ACE_TRACE("asn1::build_int");
- /*
- * ASN.1 integer ::= 0x02 asnlength byte {byte}*
- */
-
- long integer;
- u_long mask;
-
- if (intsize != sizeof (long))
- return 0;
- integer = *intp;
- /*
- * Truncate "unnecessary" bytes off of the most significant end of this
- * 2's complement integer. There should be no sequence of 9
- * consecutive 1's or 0's at the most significant end of the
- * integer.
- */
- mask = 0x1FF << ((8 * (sizeof(long) - 1)) - 1);
- /* mask is 0xFF800000 on a big-endian machine */
- while((((integer & mask) == 0) || ((integer & mask) == mask))
- && intsize > 1){
- intsize--;
- integer <<= 8;
- }
- data = asn1::build_header(data, datalength, type, intsize);
- if (data == 0)
- return 0;
- if (*datalength < intsize)
- return 0;
- *datalength -= intsize;
- mask = 0xFF << (8 * (sizeof(long) - 1));
- /* mask is 0xFF000000 on a big-endian machine */
- while(intsize--){
- *data++ = (u_char)((integer & mask) >> (8 * (sizeof(long) - 1)));
- integer <<= 8;
- }
- return data;
-};
-
-
-/*
- * build_unsigned_int - builds an ASN object containing an integer.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the end of this object.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char * asn1::build_unsigned_int( u_char *data,
- int *datalength,
- u_char type,
- u_long *intp,
- int intsize)
-{
- ACE_TRACE("asn1::build_unsigned_int");
- /*
- * ASN.1 integer ::= 0x02 asnlength byte {byte}*
- */
-
- u_long integer;
- u_long mask;
- int add_null_byte = 0;
-
- if (intsize != sizeof (long))
- return 0;
- integer = *intp;
- mask = 0xFF << (8 * (sizeof(long) - 1));
- /* mask is 0xFF000000 on a big-endian machine */
- if ((u_char)((integer & mask) >> (8 * (sizeof(long) - 1))) & 0x80){
- /* if MSB is set */
- add_null_byte = 1;
- intsize++;
- }
- /*
- * Truncate "unnecessary" bytes off of the most significant end of this 2's complement integer.
- * There should be no sequence of 9 consecutive 1's or 0's at the most significant end of the
- * integer.
- */
- mask = 0x1FF << ((8 * (sizeof(long) - 1)) - 1);
- /* mask is 0xFF800000 on a big-endian machine */
- while((((integer & mask) == 0) || ((integer & mask) == mask)) && intsize > 1){
- intsize--;
- integer <<= 8;
- }
- data = asn1::build_header(data, datalength, type, intsize);
- if (data == 0)
- return 0;
- if (*datalength < intsize)
- return 0;
- *datalength -= intsize;
- if (add_null_byte == 1){
- *data++ = '\0';
- intsize--;
- }
- mask = 0xFF << (8 * (sizeof(long) - 1));
- /* mask is 0xFF000000 on a big-endian machine */
- while(intsize--){
- *data++ = (u_char)((integer & mask) >> (8 * (sizeof(long) - 1)));
- integer <<= 8;
- }
- return data;
-};
-
-
-/*
- * parse_string - pulls an octet string out of an ASN octet string type.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the beginning of the next object.
- *
- * "string" is filled with the octet string.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char * asn1::parse_string( u_char *data,
- int *datalength,
- u_char *type,
- u_char *string,
- int *strlength)
-{
- ACE_TRACE("asn1::parse_string");
- /*
- * ASN.1 octet string ::= primstring | cmpdstring
- * primstring ::= 0x04 asnlength byte {byte}*
- * cmpdstring ::= 0x24 asnlength string {string}*
- */
- u_char *bufp = data;
- u_long asn_length;
-
- *type = *bufp++;
- bufp = asn1::parse_length(bufp, &asn_length);
- if (bufp == 0)
- return 0;
- if ((int)(asn_length + (bufp - data)) > *datalength){
- ASNERROR("overflow of message");
- return 0;
- }
- if ((int)asn_length > *strlength){
- ASNERROR("I don't support such long strings");
- return 0;
- }
- // fixed
- ACE_OS::memcpy((char *)string, (char *)bufp, (int)asn_length);
- *strlength = (int)asn_length;
- *datalength -= (int)asn_length + (bufp - data);
- return bufp + asn_length;
-};
-
-
-/*
- * build_string - Builds an ASN octet string object containing the input string.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the beginning of the next object.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char * asn1::build_string( u_char *data,
- int *datalength,
- u_char type,
- u_char *string,
- int strlength)
-{
- ACE_TRACE("asn1::build_string");
- /*
- * ASN.1 octet string ::= primstring | cmpdstring
- * primstring ::= 0x04 asnlength byte {byte}*
- * cmpdstring ::= 0x24 asnlength string {string}*
- * This code will never send a compound string.
- */
- data = asn1::build_header(data, datalength, type, strlength);
- if (data == 0)
- return 0;
- if (*datalength < strlength)
- return 0;
- // fixed
- ACE_OS::memcpy((u_char *)data,(u_char *)string, strlength);
- *datalength -= strlength;
- return data + strlength;
-};
-
-
-/*
- * parse_header - interprets the ID and length of the current object.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * in this object following the id and length.
- *
- * Returns a pointer to the first byte of the contents of this object.
- * Returns 0 on any error.
- */
-u_char *asn1::parse_header( u_char *data,
- int *datalength,
- u_char *type)
-{
- ACE_TRACE("asn1::parse_header");
- u_char *bufp = data;
- register int header_len;
- u_long asn_length;
-
- /* this only works on data types < 30, i.e. no extension octets */
- if (IS_EXTENSION_ID(*bufp)){
- ASNERROR("can't process ID >= 30");
- return 0;
- }
- *type = *bufp;
- bufp = asn1::parse_length(bufp + 1, &asn_length);
- if (bufp == 0)
- return 0;
- header_len = bufp - data;
- if ((int)(header_len + asn_length) > *datalength){
- ASNERROR("asn length too long");
- return 0;
- }
- *datalength = (int)asn_length;
- return bufp;
-}
-
-/*
- * asn1::build_header - builds an ASN header for an object with the ID and
- * length specified.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * in this object following the id and length.
- *
- * This only works on data types < 30, i.e. no extension octets.
- * The maximum length is 0xFFFF;
- *
- * Returns a pointer to the first byte of the contents of this object.
- * Returns 0 on any error.
- */
-u_char * asn1::build_header( u_char *data,
- int *datalength,
- u_char type,
- int length)
-{
- ACE_TRACE("asn1::build_header");
- if (*datalength < 1)
- return 0;
- *data++ = type;
- (*datalength)--;
- return asn1::build_length(data, datalength, length);
-
-}
-
-/*
- * asn_build_sequence - builds an ASN header for a sequence with the ID and
- * length specified.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * in this object following the id and length.
- *
- * This only works on data types < 30, i.e. no extension octets.
- * The maximum length is 0xFFFF;
- *
- * Returns a pointer to the first byte of the contents of this object.
- * Returns 0 on any error.
- */
-u_char * asn1::build_sequence( u_char *data,
- int *datalength,
- u_char type,
- int length)
-{
- ACE_TRACE("asn1::build_sequence");
- *datalength -= 4;
- if (*datalength < 0){
- *datalength += 4; /* fix up before punting */
- return 0;
- }
- *data++ = type;
- *data++ = (u_char)(0x02 | ASN_LONG_LEN);
- *data++ = (u_char)((length >> 8) & 0xFF);
- *data++ = (u_char)(length & 0xFF);
- return data;
-};
-
-/*
- * parse_length - interprets the length of the current object.
- * On exit, length contains the value of this length field.
- *
- * Returns a pointer to the first byte after this length
- * field (aka: the start of the data field).
- * Returns 0 on any error.
- */
-u_char * asn1::parse_length( u_char *data,
- u_long *length)
-{
- ACE_TRACE("asn1::parse_length");
- u_char lengthbyte = *data;
-
- if (lengthbyte & ASN_LONG_LEN){
- lengthbyte &= ~ASN_LONG_LEN; /* turn MSb off */
- if (lengthbyte == 0){
- ASNERROR("We don't support indefinite lengths");
- return 0;
- }
- if (lengthbyte > sizeof(long)){
- ASNERROR("we can't support data lengths that long");
- return 0;
- }
- // fixed
- ACE_OS::memcpy((char *)length, (char *)data + 1, (int)lengthbyte);
- *length = ntohl(*length);
- *length >>= (8 * ((sizeof *length) - lengthbyte));
- return data + lengthbyte + 1;
- } else { /* short asnlength */
- *length = (long)lengthbyte;
- return data + 1;
- }
-};
-
-u_char *asn1::build_length( u_char *data,
- int *datalength,
- int length)
-{
- ACE_TRACE("asn1::build_length");
- u_char *start_data = data;
-
- /* no indefinite lengths sent */
- if (length < 0x80){
- if (*datalength < 1){
- ASNERROR("build_length");
- return 0;
- }
- *data++ = (u_char)length;
- } else if (length <= 0xFF){
- if (*datalength < 2){
- ASNERROR("build_length");
- return 0;
- }
- *data++ = (u_char)(0x01 | ASN_LONG_LEN);
- *data++ = (u_char)length;
- } else { /* 0xFF < length <= 0xFFFF */
- if (*datalength < 3){
- ASNERROR("build_length");
- return 0;
- }
- *data++ = (u_char)(0x02 | ASN_LONG_LEN);
- *data++ = (u_char)((length >> 8) & 0xFF);
- *data++ = (u_char)(length & 0xFF);
- }
- *datalength -= (data - start_data);
- return data;
-
-}
-
-/*
- * parse_objid - pulls an object indentifier out of an ASN object identifier type.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the beginning of the next object.
- *
- * "objid" is filled with the object identifier.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char *asn1::parse_objid( u_char *data,
- int *datalength,
- u_char *type,
- oid *objid,
- int *objidlength)
-{
- ACE_TRACE("asn1::parse_objid");
- /*
- * ASN.1 objid ::= 0x06 asnlength subidentifier {subidentifier}*
- * subidentifier ::= {leadingbyte}* lastbyte
- * leadingbyte ::= 1 7bitvalue
- * lastbyte ::= 0 7bitvalue
- */
- u_char *bufp = data;
- oid *oidp = objid + 1;
- u_long subidentifier;
- long length;
- u_long asn_length;
-
- *type = *bufp++;
- bufp = asn1::parse_length(bufp, &asn_length);
- if (bufp == 0)
- return 0;
- if ((int)asn_length + (bufp - data) > *datalength){
- ASNERROR("overflow of message");
- return 0;
- }
- *datalength -= (int)asn_length + (bufp - data);
-
- /* Handle invalid object identifier encodings of the form 06 00 robustly */
- if (asn_length == 0)
- objid[0] = objid[1] = 0;
-
- length = asn_length;
- (*objidlength)--; /* account for expansion of first byte */
- while (length > 0 && (*objidlength)-- > 0){
- subidentifier = 0;
- do { /* shift and add in low order 7 bits */
- subidentifier = (subidentifier << 7) + (*(u_char *)bufp & ~ASN_BIT8);
- length--;
- } while (*(u_char *)bufp++ & ASN_BIT8); /* last byte has high bit clear */
- if (subidentifier > (u_long)MAX_SUBID){
- ASNERROR("subidentifier too long");
- return 0;
- }
- *oidp++ = (oid)subidentifier;
- }
-
- /*
- * The first two subidentifiers are encoded into the first component
- * with the value (X * 40) + Y, where:
- * X is the value of the first subidentifier.
- * Y is the value of the second subidentifier.
- */
- subidentifier = (u_long)objid[1];
- if (subidentifier == 0x2B){
- objid[0] = 1;
- objid[1] = 3;
- } else {
- objid[1] = (u_char)(subidentifier % 40);
- objid[0] = (u_char)((subidentifier - objid[1]) / 40);
- }
-
- *objidlength = (int)(oidp - objid);
- return bufp;
-}
-
-/*
- * build_objid - Builds an ASN object identifier object containing the
- * input string.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the beginning of the next object.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char *asn1::build_objid( u_char *data,
- int *datalength,
- u_char type,
- oid *objid,
- int objidlength)
-{
- ACE_TRACE("asn1::build_objid");
- /*
- * ASN.1 objid ::= 0x06 asnlength subidentifier {subidentifier}*
- * subidentifier ::= {leadingbyte}* lastbyte
- * leadingbyte ::= 1 7bitvalue
- * lastbyte ::= 0 7bitvalue
- */
- u_char buf[MAX_OID_LEN];
- u_char *bp = buf;
- oid *op = objid;
- int asnlength;
- u_long subid, mask, testmask;
- int bits, testbits;
-
- if (objidlength < 2){
- *bp++ = 0;
- objidlength = 0;
- } else {
- *bp++ = (u_char) (op[1] + (op[0] * 40));
- objidlength -= 2;
- op += 2;
- }
-
- while(objidlength-- > 0){
- subid = *op++;
- if (subid < 127){ /* off by one? */
- *bp++ = (u_char )subid;
- } else {
- mask = 0x7F; /* handle subid == 0 case */
- bits = 0;
- /* testmask *MUST* !!!! be of an u_type */
- for(testmask = 0x7F, testbits = 0; testmask != 0;
- testmask <<= 7, testbits += 7){
- if (subid & testmask){ /* if any bits set */
- mask = testmask;
- bits = testbits;
- }
- }
- /* mask can't be zero here */
- for(;mask != 0x7F; mask >>= 7, bits -= 7){
- /* fix a mask that got truncated above */
- if (mask == 0x1E00000)
- mask = 0xFE00000;
- *bp++ = (u_char)(((subid & mask) >> bits) | ASN_BIT8);
- }
- *bp++ = (u_char)(subid & mask);
- }
- }
- asnlength = bp - buf;
- data = asn1::build_header(data, datalength, type, asnlength);
- if (data == 0)
- return 0;
- if (*datalength < asnlength)
- return 0;
- // fixed
- ACE_OS::memcpy((char *)data, (char *)buf, asnlength);
- *datalength -= asnlength;
- return data + asnlength;
-}
-
-/*
- * parse_null - Interprets an ASN null type.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the beginning of the next object.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char *asn1::parse_null(u_char *data,
- int *datalength,
- u_char *type)
-{
- ACE_TRACE("asn1::parse_null");
- /*
- * ASN.1 null ::= 0x05 0x00
- */
- u_char *bufp = data;
- u_long asn_length;
-
- *type = *bufp++;
- bufp = asn1::parse_length(bufp, &asn_length);
- if (bufp == 0)
- return 0;
- if (asn_length != 0){
- ASNERROR("Malformed 0");
- return 0;
- }
- *datalength -= (bufp - data);
- return bufp + asn_length;
-}
-
-
-/*
- * build_null - Builds an ASN null object.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the beginning of the next object.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char *asn1::build_null( u_char *data,
- int *datalength,
- u_char type)
-{
- ACE_TRACE("asn1::build_null");
- /*
- * ASN.1 null ::= 0x05 0x00
- */
- return asn1::build_header(data, datalength, type, 0);
-};
-
-/*
- * parse_bitstring - pulls a bitstring out of an ASN bitstring type.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the beginning of the next object.
- *
- * "string" is filled with the bit string.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char *asn1::parse_bitstring( u_char *data,
- int *datalength,
- u_char *type,
- u_char *string,
- int *strlength)
-{
- ACE_TRACE("asn1::parse_bitstring");
- /*
- * bitstring ::= 0x03 asnlength unused {byte}*
- */
- u_char *bufp = data;
- u_long asn_length;
-
- *type = *bufp++;
- bufp = asn1::parse_length(bufp, &asn_length);
- if (bufp == 0)
- return 0;
- if ((int)(asn_length + (bufp - data)) > *datalength){
- ASNERROR("overflow of message");
- return 0;
- }
- if ((int) asn_length > *strlength){
- ASNERROR("I don't support such long bitstrings");
- return 0;
- }
- if (asn_length < 1){
- ASNERROR("Invalid bitstring");
- return 0;
- }
- if (*bufp > 7){
- ASNERROR("Invalid bitstring");
- return 0;
- }
- // fixed
- ACE_OS::memcpy((char *)string,(char *)bufp, (int)asn_length);
- *strlength = (int)asn_length;
- *datalength -= (int)asn_length + (bufp - data);
- return bufp + asn_length;
-}
-
-
-/*
- * build_bitstring - Builds an ASN bit string object containing the
- * input string.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the beginning of the next object.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char *asn1::build_bitstring( u_char *data,
- int *datalength,
- u_char type,
- u_char *string,
- int strlength)
-{
- ACE_TRACE("asn1::build_bitstring");
- /*
- * ASN.1 bit string ::= 0x03 asnlength unused {byte}*
- */
- if (strlength < 1 || *string || *string > 7){
- ASNERROR("Building invalid bitstring");
- return 0;
- }
- data = asn1::build_header(data, datalength, type, strlength);
- if (data == 0)
- return 0;
- if (*datalength < strlength)
- return 0;
- // fixed
- ACE_OS::memcpy((char *)data,(char *)string, strlength);
- *datalength -= strlength;
- return data + strlength;
-}
-
-
-/*
- * parse_unsigned_int64 - pulls a 64 bit u_long out of an ASN int
- * type.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the end of this object.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char * asn1::parse_unsigned_int64(u_char *data,
- int *datalength,
- u_char *type,
- struct counter64 *cp,
- int countersize)
-{
- ACE_TRACE("asn1::parse_unsigned_int64");
- /*
- * ASN.1 integer ::= 0x02 asnlength byte {byte}*
- */
- u_char *bufp = data;
- u_long asn_length;
- u_long low = 0, high = 0;
- int intsize = 4;
-
- if (countersize != sizeof(struct counter64)){
- ASNERROR("not right size");
- return 0;
- }
- *type = *bufp++;
- bufp = asn1::parse_length(bufp, &asn_length);
- if (bufp == 0){
- ASNERROR("bad length");
- return 0;
- }
- if ((int)(asn_length + (bufp - data)) > *datalength){
- ASNERROR("overflow of message");
- return 0;
- }
- if (((int)asn_length > (intsize * 2 + 1)) ||
- (((int)asn_length == (intsize * 2) + 1) && *bufp != 0x00)){
- ASNERROR("I don't support such large integers");
- return 0;
- }
- *datalength -= (int)asn_length + (bufp - data);
- if (*bufp & 0x80){
- low = (u_long) -1; // integer is negative
- high = (u_long) -1;
- }
- while(asn_length--){
- high = (high << 8) | ((low & 0xFF000000) >> 24);
- low = (low << 8) | *bufp++;
- }
- cp->low = low;
- cp->high = high;
- return bufp;
-}
-
-
-/*
- * build_unsigned_int64 - builds an ASN object containing a 64 bit integer.
- * On entry, datalength is input as the number of valid bytes following
- * "data". On exit, it is returned as the number of valid bytes
- * following the end of this object.
- *
- * Returns a pointer to the first byte past the end
- * of this object (i.e. the start of the next object).
- * Returns 0 on any error.
- */
-u_char * asn1::build_unsigned_int64( u_char *data,
- int *datalength,
- u_char type,
- struct counter64 *cp,
- int countersize)
-{
- ACE_TRACE("asn1::build_unsigned_int64");
- /*
- * ASN.1 integer ::= 0x02 asnlength byte {byte}*
- */
-
- u_long low, high;
- u_long mask, mask2;
- int add_null_byte = 0;
- int intsize;
-
- if (countersize != sizeof (struct counter64))
- return 0;
- intsize = 8;
- low = cp->low;
- high = cp->high;
- mask = 0xFF << (8 * (sizeof(long) - 1));
- /* mask is 0xFF000000 on a big-endian machine */
- if ((u_char)((high & mask) >> (8 * (sizeof(long) - 1))) & 0x80){
- /* if MSB is set */
- add_null_byte = 1;
- intsize++;
- }
- /*
- * Truncate "unnecessary" bytes off of the most significant end of this 2's
- * complement integer.
- * There should be no sequence of 9 consecutive 1's or 0's at the most
- * significant end of the integer.
- */
- mask2 = 0x1FF << ((8 * (sizeof(long) - 1)) - 1);
- /* mask2 is 0xFF800000 on a big-endian machine */
- while((((high & mask2) == 0) || ((high & mask2) == mask2))
- && intsize > 1){
- intsize--;
- high = (high << 8)
- | ((low & mask) >> (8 * (sizeof(long) - 1)));
- low <<= 8;
- }
- data = asn1::build_header(data, datalength, type, intsize);
- if (data == 0)
- return 0;
- if (*datalength < intsize)
- return 0;
- *datalength -= intsize;
- if (add_null_byte == 1){
- *data++ = '\0';
- intsize--;
- }
- while(intsize--){
- *data++ = (u_char)((high & mask) >> (8 * (sizeof(long) - 1)));
- high = (high << 8)
- | ((low & mask) >> (8 * (sizeof(long) - 1)));
- low <<= 8;
-
- }
- return data;
-}
-
-
-// create a pdu
-struct snmp_pdu * cmu_snmp::pdu_create( int command)
-{
- ACE_TRACE("cmu_snmp::snmp_pdu_create");
- struct snmp_pdu *pdu;
-
- ACE_NEW_RETURN(pdu, snmp_pdu, 0);
- ACE_OS::memset((char *)pdu, 0,sizeof(struct snmp_pdu));
- pdu->command = command;
- pdu->errstat = 0;
- pdu->errindex = 0;
- pdu->enterprise = 0;
- pdu->enterprise_length = 0;
- pdu->variables = 0;
- return pdu;
-}
-
-// release a pdu from memory
-void cmu_snmp::free_pdu( struct snmp_pdu *pdu)
-{
- ACE_TRACE("cmu_snmp::free_pdu");
- struct variable_list *vp, *ovp;
-
- vp = pdu->variables;
- while(vp){
- // release the oid part
- if (vp->name)
- delete [] vp->name;
- // if deep data, then release as well
- if (vp->val.string)
- delete [] vp->val.string;
- ovp = vp;
- // go to the next one
- vp = vp->next_variable;
- // release up vb itself
- delete ovp;
- }
- // if enterprise release it up
- if (pdu->enterprise)
- delete [] pdu->enterprise;
- // release up pdu itself
- delete pdu;
-}
-
-
-// add a null var to a pdu
-void cmu_snmp::add_var(struct snmp_pdu *pdu,
- oid *name,
- int name_length,
- SmiVALUE *smival)
-{
- ACE_TRACE("cmu_snmp::add_var");
-
- struct variable_list *vars;
-
- // if we don't have a vb list ,create one
- if (pdu->variables == 0) {
- ACE_NEW(pdu->variables, variable_list);
- vars = pdu->variables;
- }
- else
- { // we have one, find the end
- for(vars = pdu->variables; vars->next_variable; vars = vars->next_variable);
- // create one
- ACE_NEW(vars->next_variable, variable_list);
- // bump ptr
- vars = vars->next_variable;
- }
-
- // add the oid with no data
- vars->next_variable = 0;
-
- // hook in the Oid portion
- ACE_NEW(vars->name, oid[(name_length)]);
-
- // fixed
- ACE_OS::memcpy((char *)vars->name,(char *)name, name_length * sizeof(oid));
- vars->name_length = name_length;
-
- // hook in the SMI value
- switch( smival->syntax)
- {
- // null , do nothing
- case sNMP_SYNTAX_NULL:
- case sNMP_SYNTAX_NOSUCHOBJECT:
- case sNMP_SYNTAX_NOSUCHINSTANCE:
- case sNMP_SYNTAX_ENDOFMIBVIEW:
- {
- vars->type = (u_char) smival->syntax;
- vars->val.string = 0;
- vars->val_len = 0;
- }
- break;
-
- // octects
- case sNMP_SYNTAX_OCTETS:
- case sNMP_SYNTAX_OPAQUE:
- case sNMP_SYNTAX_IPADDR:
- {
- vars->type = (u_char) smival->syntax;
- ACE_NEW(vars->val.string,
- u_char[(unsigned)smival->value.string.len]);
- vars->val_len = (int) smival->value.string.len;
- ACE_OS::memcpy( (u_char *) vars->val.string,
- (u_char *) smival->value.string.ptr,
- (unsigned) smival->value.string.len);
- }
- break;
-
- // oid
- case sNMP_SYNTAX_OID:
- {
- vars->type = (u_char) smival->syntax;
- vars->val_len = (int) smival->value.oid.len * sizeof(oid);
- ACE_NEW(vars->val.objid, oid[(unsigned)vars->val_len]);
- ACE_OS::memcpy((u_long *)vars->val.objid,
- (u_long *)smival->value.oid.ptr,
- (unsigned) vars->val_len);
- }
- break;
-
-
-
- case sNMP_SYNTAX_TIMETICKS:
- case sNMP_SYNTAX_CNTR32:
- case sNMP_SYNTAX_GAUGE32:
- case sNMP_SYNTAX_UINT32:
- {
- long templong;
- vars->type = (u_char) smival->syntax;
- ACE_NEW(vars->val.integer, long);
- vars->val_len = sizeof(long);
- templong = (long) smival->value.uNumber;
- ACE_OS::memcpy( (long*) vars->val.integer,
- (long*) &templong,
- sizeof(long));
- }
- break;
-
- case sNMP_SYNTAX_INT32:
- {
- long templong;
- vars->type = (u_char) smival->syntax;
- ACE_NEW(vars->val.integer, long);
- vars->val_len = sizeof(long);
- templong = (long) smival->value.sNumber;
- ACE_OS::memcpy( (long*) vars->val.integer,
- (long*) &templong,
- sizeof(long));
- }
- break;
-
- // 64 bit counter
- case sNMP_SYNTAX_CNTR64:
- {
- vars->type = ( u_char) smival->syntax;
- ACE_NEW(vars->val.counter64, counter64);
- vars->val_len = sizeof(struct counter64);
- ACE_OS::memcpy( (struct counter64*) vars->val.counter64,
- (SmiLPCNTR64) &(smival->value.hNumber),
- sizeof( SmiCNTR64));
- }
- break;
-
- } // end switch
-
-}
-
-// build the authentication
-// works for v1 or v2c
-u_char *cmu_snmp::auth_build( u_char *data,
- int *length,
- long int version,
- u_char *community,
- int community_len,
- int messagelen)
-{
- ACE_TRACE("cmu_snmp::auth_build");
- u_char *params;
- int plen;
-
- params = community;
- plen = community_len;
-
- data = asn1::build_sequence(data,
- length,
- (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR),
- messagelen + plen + 5);
- if (data == 0){
- ASNERROR("buildheader");
- return 0;
- }
- data = asn1::build_int(data,
- length,
- (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER),
- (long *)&version,
- sizeof(version));
- if (data == 0){
- ASNERROR("buildint");
- return 0;
- }
-
- data = asn1::build_string(data,
- length,
- (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OCTET_STR),
- params,
- plen );
- if (data == 0){
- ASNERROR("buildstring");
- return 0;
- }
-
- return (u_char *)data;
-};
-
-
-// build a variable binding
-u_char * cmu_snmp::build_var_op(u_char *data, oid * var_name,
- int *var_name_len,
- u_char var_val_type,
- int var_val_len, u_char *var_val,
- int *listlength)
-
-{
- ACE_TRACE("cmu_snmp::build_var_op");
- int dummyLen, headerLen;
- u_char *dataPtr;
-
- dummyLen = *listlength;
- dataPtr = data;
-
- data += 4;
- dummyLen -=4;
- if (dummyLen < 0)
- return 0;
-
- headerLen = data - dataPtr;
- *listlength -= headerLen;
- data = asn1::build_objid( data, listlength,
- (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OBJECT_ID),
- var_name, *var_name_len);
- if (data == 0) {
- ASNERROR("");
- return 0;
- }
-
- // based on the type...
- switch(var_val_type) {
- case ASN_INTEGER:
- data = asn1::build_int( data, listlength, var_val_type, (long *)var_val,
- var_val_len);
- break;
-
- case SMI_GAUGE:
- case SMI_COUNTER:
- case SMI_TIMETICKS:
- case SMI_UINTEGER:
- data = asn1::build_unsigned_int( data,
- listlength,
- var_val_type,
- (u_long *)var_val,
- var_val_len);
- break;
-
- case SMI_COUNTER64:
- data = asn1::build_unsigned_int64(data,
- listlength,
- var_val_type,
- (struct counter64 *)var_val,
- var_val_len);
- break;
-
- case ASN_OCTET_STR:
- case SMI_IPADDRESS:
- case SMI_OPAQUE:
- case SMI_NSAP:
- data = asn1::build_string(data, listlength, var_val_type,
- var_val, var_val_len);
- break;
-
- case ASN_OBJECT_ID:
- data = asn1::build_objid(data, listlength, var_val_type,
- (oid *)var_val, var_val_len / sizeof(oid));
- break;
-
- case ASN_NULL:
- data = asn1::build_null(data, listlength, var_val_type);
- break;
-
- case ASN_BIT_STR:
- data = asn1::build_bitstring(data, listlength, var_val_type,
- var_val, var_val_len);
- break;
-
- case SNMP_NOSUCHOBJECT:
- case SNMP_NOSUCHINSTANCE:
- case SNMP_ENDOFMIBVIEW:
- data = asn1::build_null(data, listlength, var_val_type);
- break;
-
- default:
- ASNERROR("wrong type");
- return 0;
- }
- if (data == 0) {
- ASNERROR("");
- return 0;
- }
- dummyLen = (data - dataPtr) - headerLen;
-
- asn1::build_sequence(dataPtr, &dummyLen,
- (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR),
- dummyLen);
- return data;
-}
-
-
-// serialize the pdu
-int cmu_snmp::build( struct snmp_pdu *pdu, u_char *packet,
- int *out_length, long version,
- u_char* community, int community_len)
-{
- ACE_TRACE("cmu_snmp::build");
- u_char buf[SNMP_MSG_LENGTH];
- u_char *cp;
- struct variable_list *vp;
- int length;
- int totallength;
-
- length = *out_length;
- cp = packet;
- for(vp = pdu->variables; vp; vp = vp->next_variable) {
- cp = cmu_snmp::build_var_op( cp, vp->name,
- &vp->name_length, vp->type,
- vp->val_len, (u_char *)vp->val.string,
- &length);
- if (cp == 0)
- return -1;
- }
- totallength = cp - packet;
-
- length = SNMP_MSG_LENGTH;
-
- // encode the total len
- cp = asn1::build_header( buf, &length,
- (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR),
- totallength);
- if (cp == 0)
- return -1;
- ACE_OS::memcpy( (char *)cp, (char *)packet,totallength);
- totallength += cp - buf;
-
- length = *out_length;
- if (pdu->command != TRP_REQ_MSG) {
-
- // request id
- cp = asn1::build_int( packet,
- &length,
- (u_char )(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER),
- (long *)&pdu->reqid,
- sizeof(pdu->reqid));
- if (cp == 0)
- return -1;
-
- // error status
- cp = asn1::build_int(cp,
- &length,
- (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER),
- (long *)&pdu->errstat, sizeof(pdu->errstat));
- if (cp == 0)
- return -1;
-
- // error index
- cp = asn1::build_int(cp,
- &length,
- (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER),
- (long *)&pdu->errindex, sizeof(pdu->errindex));
- if (cp == 0)
- return -1;
- }
- else { // this is a trap message
-
- // enterprise
- cp = asn1::build_objid( packet,
- &length,
- (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OBJECT_ID),
- (oid *)pdu->enterprise,
- pdu->enterprise_length);
- if (cp == 0)
- return -1;
-
- // agent-addr
- cp = asn1::build_string(cp,
- &length,
- // HDN Fixed to use correct tag
- (u_char)SMI_IPADDRESS,
- //(u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OCTET_STR),
- (u_char *)&pdu->agent_addr.sin_addr.s_addr,
- sizeof(pdu->agent_addr.sin_addr.s_addr));
- if (cp == 0)
- return -1;
-
- // generic trap
- cp = asn1::build_int(cp,
- &length,
- (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER),
- (long *)&pdu->trap_type,
- sizeof(pdu->trap_type));
- if (cp == 0)
- return -1;
-
- // specific trap
- cp = asn1::build_int( cp,
- &length,
- (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER),
- (long *)&pdu->specific_type,
- sizeof(pdu->specific_type));
- if (cp == 0)
- return -1;
-
- // timestamp
- cp = asn1::build_int(cp,
- &length,
- // HDN Fixed to use correct tag
- (u_char)SMI_TIMETICKS,
- //(u_char )(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER),
- (long *)&pdu->time,
- sizeof(pdu->time));
- if (cp == 0)
- return -1;
- }
-
- if (length < totallength)
- return -1;
- // fixed
- ACE_OS::memcpy((char *)cp, (char *)buf, totallength);
- totallength += cp - packet;
-
- length = SNMP_MSG_LENGTH;
- cp = asn1::build_header(buf,
- &length,
- (u_char)pdu->command,
- totallength);
- if (cp == 0)
- return -1;
- if (length < totallength)
- return -1;
- // fixed
- ACE_OS::memcpy((char *)cp, (char *)packet, totallength);
- totallength += cp - buf;
-
- length = *out_length;
-
- cp = cmu_snmp::auth_build( packet,
- &length,
- version,
- community,
- community_len,
- totallength );
- if (cp == 0)
- return -1;
- if ((*out_length - (cp - packet)) < totallength)
- return -1;
- // fixed
- ACE_OS::memcpy((char *)cp, (char *)buf, totallength);
- totallength += cp - packet;
- *out_length = totallength;
-
- return 0;
-}
-
-// parse the authentication header
-u_char *cmu_snmp::auth_parse(u_char *data,
- int *length, u_char *sid,
- int *slen, long *version)
-{
- ACE_TRACE("cmu_snmp::auth_parse");
- u_char type;
-
- // get the type
- data = asn1::parse_header( data, length, &type);
- if (data == 0){
- ASNERROR("bad header");
- return 0;
- }
-
- if (type != (ASN_SEQUENCE | ASN_CONSTRUCTOR)) {
- ASNERROR("wrong auth header type");
- return 0;
- }
-
- // get the version
- data = asn1::parse_int(data, length, &type, version, sizeof(*version));
- if (data == 0) {
- ASNERROR("bad parse of version");
- return 0;
- }
-
- // get the community name
- data = asn1::parse_string(data, length, &type, sid, slen);
- if (data == 0) {
- ASNERROR("bad parse of community");
- return 0;
- }
-
- return (u_char *)data;
-}
-
-/* u_char *data, // IN - pointer to the start of object
- oid *var_name, // OUT - object id of variable
- int *var_name_len, // IN/OUT - length of variable name
- u_char *var_val_type, // OUT - type of variable
- (int or octet string) (one byte)
- int *var_val_len, // OUT - length of variable
- u_char **var_val, // OUT - pointer to ASN1 encoded value of variable
-*/
-
-u_char *
-cmu_snmp::parse_var_op( u_char *data, oid *var_name,
- int *var_name_len, u_char *var_val_type,
- int *var_val_len, u_char **var_val,
- int *listlength)
-{
- ACE_TRACE("cmu_snmp::parse_var_op");
- u_char var_op_type;
- int var_op_len = *listlength;
- u_char *var_op_start = data;
-
- data = asn1::parse_header(data, &var_op_len, &var_op_type);
- if (data == 0){
- ASNERROR("");
- return 0;
- }
- if (var_op_type != (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR))
- return 0;
- data = asn1::parse_objid(data, &var_op_len, &var_op_type, var_name, var_name_len);
- if (data == 0) {
- ASNERROR("");
- return 0;
- }
- if (var_op_type != (u_char)
- (ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OBJECT_ID))
- return 0;
- *var_val = data; /* save pointer to this object */
- /* find out what type of object this is */
- data = asn1::parse_header(data, &var_op_len, var_val_type);
- if (data == 0) {
- ASNERROR("");
- return 0;
- }
- *var_val_len = var_op_len;
- data += var_op_len;
- *listlength -= (int)(data - var_op_start);
- return data;
-}
-
-
-
-// build a pdu from a data and length
-int cmu_snmp::parse( struct snmp_pdu *pdu,
- u_char *data,
- u_char *community_name,
- u_long &community_len,
- snmp_version &spp_version,
- int length)
-{
- ACE_TRACE("cmu_snmp::parse");
- u_char msg_type;
- u_char type;
- u_char *var_val;
- long version;
- int len, four;
- u_char community[256];
- int community_length = 256;
- struct variable_list *vp = 0;
- oid objid[MAX_NAME_LEN], *op;
-
- // authenticates message and returns length if valid
- data = cmu_snmp::auth_parse(data,
- &length,
- community,
- &community_length,
- &version);
- if (data == 0)
- return -1;
-
- // copy the returned community name
- ACE_OS::memcpy( (u_char *) community_name,
- (u_char *) community,
- community_length);
- community_len = (long) community_length;
-
- if( version != SNMP_VERSION_1 && version != SNMP_VERSION_2C ) {
- ASNERROR("Wrong version");
- return -1;
- }
-
- spp_version = (snmp_version) version;
-
- data = asn1::parse_header(data,
- &length,
- &msg_type);
- if (data == 0)
- return -1;
- pdu->command = msg_type;
-
- if (pdu->command != TRP_REQ_MSG){
- // get the rid
- data = asn1::parse_int(data,
- &length, &type,
- (long *)&pdu->reqid,
- sizeof(pdu->reqid));
- if (data == 0)
- return -1;
- // get the error status
- data = asn1::parse_int(data,
- &length,
- &type,
- (long *)&pdu->errstat,
- sizeof(pdu->errstat));
- if (data == 0)
- return -1;
- // get the error index
- data = asn1::parse_int(data,
- &length,
- &type,
- (long *)&pdu->errindex,
- sizeof(pdu->errindex));
- if (data == 0)
- return -1;
- }
- else { // is a trap
-
- // get the enterprise
- pdu->enterprise_length = MAX_NAME_LEN;
- data = asn1::parse_objid(data,
- &length,
- &type,
- objid,
- &pdu->enterprise_length);
- if (data == 0)
- return -1;
-
- ACE_NEW_RETURN(pdu->enterprise,
- oid[pdu->enterprise_length*sizeof(oid)],-1);
-
- // fixed
- ACE_OS::memcpy((char *)pdu->enterprise,(char *)objid,
- pdu->enterprise_length * sizeof(oid));
-
- // get source address
- four = 4;
- data = asn1::parse_string(data, &length, &type,
- (u_char *)&pdu->agent_addr.sin_addr.s_addr,
- &four);
- if (data == 0)
- return -1;
-
- // get trap type
- data = asn1::parse_int(data, &length, &type, (long *)&pdu->trap_type,
- sizeof(pdu->trap_type));
- if (data == 0)
- return -1;
-
- // trap type
- data = asn1::parse_int(data, &length, &type, (long *)&pdu->specific_type,
- sizeof(pdu->specific_type));
- if (data == 0)
- return -1;
-
- // timestamp
- data = asn1::parse_int(data, &length, &type, (long *)&pdu->time,
- sizeof(pdu->time));
- if (data == 0)
- return -1;
- }
-
- // get the vb list
- data = asn1::parse_header(data, &length, &type);
- if (data == 0)
- return -1;
-
- if (type != (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR))
- return -1;
-
- while((int)length > 0) {
- if (pdu->variables == 0) {
- ACE_NEW_RETURN(pdu->variables, variable_list, -1);
- vp = pdu->variables;
- } else {
- ACE_NEW_RETURN(vp->next_variable, variable_list, -1);
- vp = vp->next_variable;
- }
- vp->next_variable = 0;
- vp->val.string = 0;
- vp->name = 0;
- vp->name_length = MAX_NAME_LEN;
- data = cmu_snmp::parse_var_op( data, objid,
- &vp->name_length, &vp->type,
- &vp->val_len, &var_val,
- (int *)&length);
- if (data == 0)
- return -1;
-
- ACE_NEW_RETURN(op, oid[(unsigned)vp->name_length * sizeof(oid)], -1);
-
- // fixed
- ACE_OS::memcpy((char *)op, (char *)objid, vp->name_length * sizeof(oid));
- vp->name = op;
-
- len = SNMP_MSG_LENGTH;
- switch((short)vp->type) {
- case ASN_INTEGER:
- case SMI_COUNTER:
- case SMI_GAUGE:
- case SMI_TIMETICKS:
- case SMI_UINTEGER:
- ACE_NEW_RETURN(vp->val.integer,long, -1);
- vp->val_len = sizeof(long);
- asn1::parse_int(var_val, &len, &vp->type, (long *)vp->val.integer, sizeof(vp->val.integer));
- break;
- case SMI_COUNTER64:
- ACE_NEW_RETURN(vp->val.counter64, counter64, -1);
- vp->val_len = sizeof(struct counter64);
- asn1::parse_unsigned_int64(var_val, &len, &vp->type,
- (struct counter64 *)vp->val.counter64,
- sizeof(*vp->val.counter64));
- break;
-
- case ASN_OCTET_STR:
- case SMI_IPADDRESS:
- case SMI_OPAQUE:
- case SMI_NSAP:
- ACE_NEW_RETURN(vp->val.string, u_char[(unsigned)vp->val_len + 1], -1);
- asn1::parse_string(var_val, &len, &vp->type, vp->val.string,
- &vp->val_len);
- break;
-
- case ASN_OBJECT_ID:
- vp->val_len = MAX_NAME_LEN;
- asn1::parse_objid(var_val, &len, &vp->type, objid, &vp->val_len);
- //vp->val_len *= sizeof(oid);
-
- ACE_NEW_RETURN(vp->val.objid, oid[(unsigned)vp->val_len*sizeof(oid)], -1);
-
- // fixed
- ACE_OS::memcpy((char *)vp->val.objid,
- (char *)objid,
- vp->val_len * sizeof(oid));
- break;
-
- case SNMP_NOSUCHOBJECT:
- case SNMP_NOSUCHINSTANCE:
- case SNMP_ENDOFMIBVIEW:
- case ASN_NULL:
- break;
- default:
- ASNERROR("bad type returned ");
- break;
- }
- }
- return 0;
-}
diff --git a/ASNMP/asnmp/asn1.h b/ASNMP/asnmp/asn1.h
deleted file mode 100644
index 82a81f4a561..00000000000
--- a/ASNMP/asnmp/asn1.h
+++ /dev/null
@@ -1,342 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef ASN1
-#define ASN1
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// asn1.h
-//
-// = DESCRIPTION
-// Abstract Syntax Notation One, ASN.1
-// As defined in ISO/IS 8824 and ISO/IS 8825
-// This implements a subset of the above International Standards that
-// is sufficient to implement SNMP.
-//
-// = AUTHOR
-// Steve Waldbusser/CMU ?
-//
-// ============================================================================
-
-/**********************************************************************
- Copyright 1988, 1989, 1991, 1992 by Carnegie Mellon University
-
- All Rights Reserved
-
-Permission to use, copy, modify, and distribute this software and its
-documentation for any purpose and without fee is hereby granted,
-provided that the above copyright notice appear in all copies and that
-both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of CMU not be
-used in advertising or publicity pertaining to distribution of the
-software without specific, written prior permission.
-
-CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
-ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
-CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
-ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-SOFTWARE.
-******************************************************************/
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "asnmp/snmp.h"
-
-// CMU code to define "oid" typedef (old C style)
-#ifndef EIGHTBIT_SUBIDS
-typedef unsigned long oid;
-#define MAX_SUBID 0xFFFFFFFF
-#else
-typedef unsigned char oid;
-#define MAX_SUBID 0xFF
-#endif
-
-#define MAX_OID_LEN 64 /* max subid's in an oid */
-
-
-// asn.1 values
-#define ASN_BOOLEAN (0x01)
-#define ASN_INTEGER (0x02)
-#define ASN_BIT_STR (0x03)
-#define ASN_OCTET_STR (0x04)
-#define ASN_NULL (0x05)
-#define ASN_OBJECT_ID (0x06)
-#define ASN_SEQUENCE (0x10)
-#define ASN_SET (0x11)
-#define ASN_UNIVERSAL (0x00)
-#define ASN_APPLICATION (0x40)
-#define ASN_CONTEXT (0x80)
-#define ASN_PRIVATE (0xC0)
-#define ASN_PRIMITIVE (0x00)
-#define ASN_CONSTRUCTOR (0x20)
-#define ASN_LONG_LEN (0x80)
-#define ASN_EXTENSION_ID (0x1F)
-#define ASN_BIT8 (0x80)
-
-#define IS_CONSTRUCTOR(byte) ((byte) & ASN_CONSTRUCTOR)
-#define IS_EXTENSION_ID(byte) (((byte) & ASN_EXTENSION_ID) == ASN_EXTENSION_ID)
-
-#define ASNERROR( string)
-#define MAX_NAME_LEN 64
-#define SNMP_VERSION_1 0
-#define SNMP_VERSION_2C 1
-
-
-// defined types (from the SMI, RFC 1065)
-#define SMI_IPADDRESS (ASN_APPLICATION | 0)
-#define SMI_COUNTER (ASN_APPLICATION | 1)
-#define SMI_GAUGE (ASN_APPLICATION | 2)
-#define SMI_TIMETICKS (ASN_APPLICATION | 3)
-#define SMI_OPAQUE (ASN_APPLICATION | 4)
-#define SMI_NSAP (ASN_APPLICATION | 5)
-#define SMI_COUNTER64 (ASN_APPLICATION | 6)
-#define SMI_UINTEGER (ASN_APPLICATION | 7)
-
-#define GET_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x0)
-#define GETNEXT_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x1)
-#define GET_RSP_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x2)
-#define SET_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x3)
-#define TRP_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x4)
-
-#define GETBULK_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x5)
-#define INFORM_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x6)
-#define TRP2_REQ_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x7)
-#define REPORT_MSG (ASN_CONTEXT | ASN_CONSTRUCTOR | 0x8)
-
-#define SNMP_NOSUCHOBJECT (ASN_CONTEXT | ASN_PRIMITIVE | 0x0)
-#define SNMP_NOSUCHINSTANCE (ASN_CONTEXT | ASN_PRIMITIVE | 0x1)
-#define SNMP_ENDOFMIBVIEW (ASN_CONTEXT | ASN_PRIMITIVE | 0x2)
-
-#define SNMP_MSG_LENGTH 1500
-
-typedef struct sockaddr_in ipaddr;
-
-// pdu
-struct snmp_pdu {
- int command; // pdu type
- unsigned long reqid; // Request id
- unsigned long errstat; // Error status
- unsigned long errindex; // Error index
-
- // Trap information
- oid *enterprise; // System OID
- int enterprise_length;
- ipaddr agent_addr; // address of object generating trap
- int trap_type; // trap type
- int specific_type; // specific type
- unsigned long time; // Uptime
-
- // vb list
- struct variable_list *variables;
-};
-
-// vb list
-struct variable_list {
- struct variable_list *next_variable; // 0 for last variable
- oid *name; // Object identifier of variable
- int name_length; // number of subid's in name
- unsigned char type; // ASN type of variable
- union { // value of variable
- long *integer;
- unsigned char *string;
- oid *objid;
- unsigned char *bitstring;
- struct counter64 *counter64;
- } val;
- int val_len;
-};
-
-struct counter64 {
- unsigned long high;
- unsigned long low;
-};
-
-// CMU Interface class for ASN.1 routines
-class ACE_Export asn1
- // = TITLE
- // Defines the member functions for the asn1 concrete interface class
- // CMU routines for performing ASN.1 data marshalling / representation
-
-{
-public:
-static unsigned char *parse_int( unsigned char *data,
- int *datalength,
- unsigned char *type,
- long int *intp,
- int intsize);
-static unsigned char *parse_unsigned_int( unsigned char *data,
- int *datalength,
- unsigned char *type,
- unsigned long *intp,
- int intsize);
-static unsigned char *build_int( unsigned char *data,
- int *datalength,
- unsigned char type,
- long *intp,
- int intsize);
-
-static unsigned char *build_unsigned_int( unsigned char *data,
- int *datalength,
- unsigned char type,
- unsigned long *intp,
- int intsize);
-
-static unsigned char *parse_string( unsigned char *data,
- int *datalength,
- unsigned char *type,
- unsigned char *string,
- int *strlength);
-
-static unsigned char *build_string( unsigned char *data,
- int *datalength,
- unsigned char type,
- unsigned char *string,
- int strlength);
-
-static unsigned char *parse_header( unsigned char *data,
- int *datalength,
- unsigned char *type);
-
-static unsigned char * build_header( unsigned char *data,
- int *datalength,
- unsigned char type,
- int length);
-
-static unsigned char * build_sequence( unsigned char *data,
- int *datalength,
- unsigned char type,
- int length);
-
-static unsigned char * parse_length( unsigned char *data,
- unsigned long *length);
-
-static unsigned char *build_length( unsigned char *data,
- int *datalength,
- int length);
-
-static unsigned char *build_objid( unsigned char *data,
- int *datalength,
- unsigned char type,
- oid *objid,
- int objidlength);
-
-static unsigned char *parse_objid( unsigned char *data,
- int *datalength,
- unsigned char *type,
- oid *objid,
- int *objidlength);
-
-static unsigned char *parse_null(unsigned char *data,
- int *datalength, unsigned
- char *type);
-
-static unsigned char *build_null( unsigned char *data,
- int *datalength,
- unsigned char type);
-
-static unsigned char *parse_bitstring( unsigned char *data,
- int *datalength,
- unsigned char *type,
- unsigned char *string,
- int *strlength);
-
-static unsigned char *build_bitstring( unsigned char *data,
- int *datalength,
- unsigned char type,
- unsigned char *string,
- int strlength);
-
-static unsigned char * parse_unsigned_int64(unsigned char *data,
- int *datalength,
- unsigned char *type,
- struct counter64 *cp,
- int countersize);
-
-static unsigned char * build_unsigned_int64( unsigned char *data,
- int *datalength,
- unsigned char type,
- struct counter64 *cp,
- int countersize);
-
-};
-
-
-// CMU Interface class for SNMPv1, SNMPv2c routines
-class ACE_Export cmu_snmp
- // = TITLE
- // Defines the static functions for the cmu_snmp concrete class.
- // These routine create cmu pdu's that can be sent/received on/from agents
-{
- public:
- static struct snmp_pdu *pdu_create( int command);
- static void free_pdu( struct snmp_pdu *pdu);
- static int build( struct snmp_pdu *pdu,
- unsigned char *packet,
- int *out_length,
- long version,
- unsigned char* community,
- int community_len);
-
- static void add_var(struct snmp_pdu *pdu,
- oid *name,
- int name_length,
- SmiVALUE *smival);
-
- static int parse( struct snmp_pdu *pdu,
- unsigned char *data,
- unsigned char *community_name,
- unsigned long &community_len,
- snmp_version &version,
- int length);
- static unsigned char *auth_build( unsigned char *data,
- int *length,
- long int version,
- unsigned char *community,
- int community_len,
- int messagelen);
-
- static unsigned char *build_var_op(unsigned char *data,
- oid * var_name,
- int *var_name_len,
- unsigned char var_val_type,
- int var_val_len,
- unsigned char *var_val,
- int *listlength);
-
-
-static unsigned char *auth_parse(unsigned char *data,
- int *length,
- unsigned char *sid,
- int *slen,
- long *version);
-
-/*
- @params data, IN - pointer to the start of object
- var_name OUT - object id of variable
- var_name_len IN/OUT - length of variable name
- var_val_type OUT - type of variable (int or octet string) (one byte)
- var_val_len OUT - length of variable
- var_val, OUT - pointer to ASN1 encoded value of variable
- listlength IN/OUT - number of valid bytes left in var_op_list
-*/
-static unsigned char *parse_var_op( unsigned char *data,
- oid *var_name,
- int *var_name_len,
- unsigned char *var_val_type,
- int *var_val_len,
- unsigned char **var_val,
- int *listlength);
-
-};
-
-#endif // ASN1
-
diff --git a/ASNMP/asnmp/counter.cpp b/ASNMP/asnmp/counter.cpp
deleted file mode 100644
index 04c50dd6475..00000000000
--- a/ASNMP/asnmp/counter.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// counter.cpp
-//
-// = DESCRIPTION
-// Class implementation for SMI Counter32 class.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/counter.h"
-
-ACE_RCSID(asnmp, counter, "$Id$")
-
-// constructor with a value
-Counter32::Counter32( const unsigned long i):SnmpUInt32(i)
-{
- smival.syntax = sNMP_SYNTAX_CNTR32;
-}
-
-// copy constructor
-Counter32::Counter32( const Counter32 &c)
-{
- this->smival.value.uNumber = c.smival.value.uNumber;
- smival.syntax = sNMP_SYNTAX_CNTR32;
- valid_flag = 1;
-}
-
-// syntax type
-SmiUINT32 Counter32::get_syntax()
-{
- return sNMP_SYNTAX_CNTR32;
-}
-
-// general assignment from any Value
-SnmpSyntax& Counter32::operator=( SnmpSyntax &in_val){
- if ( this == &in_val ) // handle assignement from itself
- return *this;
-
- valid_flag = 0; // will get set true if really valid
- if (in_val.valid())
- {
- switch (in_val.get_syntax())
- {
- case sNMP_SYNTAX_UINT32:
- // case sNMP_SYNTAX_GAUGE32: .. indistinquishable from UINT32
- case sNMP_SYNTAX_CNTR32:
- case sNMP_SYNTAX_TIMETICKS:
- case sNMP_SYNTAX_INT32: // implied cast int -> uint
- this->smival.value.uNumber =
- ((Counter32 &)in_val).smival.value.uNumber;
- valid_flag = 1;
- break;
- }
- }
- return *this;
-}
-
-// overloaded assignment
-Counter32& Counter32::operator=( const unsigned long int i)
-{
- this->smival.value.uNumber=i;
- return *this;
-}
-
-// overloaded assignment
-Counter32& Counter32::operator=( const Counter32 &uli)
-{
- this->smival.value.uNumber = uli.smival.value.uNumber;
- return *this;
-}
-
-// otherwise, behave like an unsigned long int
-Counter32::operator unsigned long()
-{
- return this->smival.value.uNumber;
-}
-
-// clone
-SnmpSyntax * Counter32::clone() const
-{
- return ( SnmpSyntax *) new Counter32(*this);
-}
diff --git a/ASNMP/asnmp/counter.h b/ASNMP/asnmp/counter.h
deleted file mode 100644
index 2b0f79807f3..00000000000
--- a/ASNMP/asnmp/counter.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef COUNTER_
-#define COUNTER_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// counter.h
-//
-// = DESCRIPTION
-// Class definition for SMI Counter32 class.
-//
-// = AUTHOR
-// Peter E Mellquist
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/smival.h"
-#include "asnmp/integer.h"
-
-//------------[ Counter32 Class ]------------------------------------------
-// The counter class allows all the functionality of unsigned
-// 32 bit integers but is recognized as a distinct SMI type. Counter32
-// class objects may be set or get into Vb objects.
-//
-// This class does not behave as defined by the abstract model
-// in RFC 1155 section 3.2.3.3
-
-class ACE_Export Counter32: public SnmpUInt32
- // = TITLE
- // Defines the member functions for the Counter32 concrete class
- // This class implements RFC 1155 Counter Object and is named
- // Counter32 after the RFC1902 redefinition of V1 SMI datatypes
-{
- public:
- Counter32( const unsigned long i = 0);
- // constructor with a value
-
- Counter32( const Counter32 &c);
- // copy constructor
-
- SmiUINT32 get_syntax();
- // syntax type
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- Counter32& operator=( const Counter32 &uli);
- // overloaded assignment
-
- Counter32& operator=( const unsigned long i);
- // overloaded assignment
-
- operator unsigned long();
- // otherwise, behave like an unsigned long int
-};
-
-#endif // COUNTER_
diff --git a/ASNMP/asnmp/ctr64.cpp b/ASNMP/asnmp/ctr64.cpp
deleted file mode 100644
index 264c97a3ac2..00000000000
--- a/ASNMP/asnmp/ctr64.cpp
+++ /dev/null
@@ -1,211 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// ctr64.cpp
-//
-// = DESCRIPTION
-// Implementation for Counter64 ( 64 bit counter class).
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/ctr64.h"
-
-ACE_RCSID(asnmp, ctr64, "$Id$")
-
-#define MAX32 4294967295u
-
-//-----------[ syntax type ]----------------------------------------------
-SmiUINT32 Counter64::get_syntax()
-{
- return sNMP_SYNTAX_CNTR64;
-}
-
-//------------------[ constructor with values ]--------------------------
-Counter64::Counter64( unsigned long hiparm, unsigned long loparm)
-{
- smival.syntax = sNMP_SYNTAX_CNTR64;
- smival.value.hNumber.hipart = hiparm;
- smival.value.hNumber.lopart = loparm;
-}
-
-//------------------[ constructor with low value only ]------------------
-Counter64::Counter64( unsigned long long llw )
-{
- smival.syntax = sNMP_SYNTAX_CNTR64;
- smival.value.hNumber.hipart = (unsigned long) (llw >> 32);
- smival.value.hNumber.lopart = (unsigned long) llw & 0xffffffff;
-}
-
-//------------------[ copy constructor ]---------------------------------
-Counter64::Counter64( const Counter64 &ctr64 )
-{
- smival.syntax = sNMP_SYNTAX_CNTR64;
- smival.value.hNumber.hipart = ctr64.high();
- smival.value.hNumber.lopart = ctr64.low();
-}
-
-//------------------[ destructor ]---------------------------------
-Counter64::~Counter64()
-{
-}
-
-
-//------------------[ Counter64::high() ]------------------------------
-// return the high part
-unsigned long Counter64::high() const
-{
- return smival.value.hNumber.hipart;
-}
-
-
-//------------------[ Counter64::low() ]-------------------------------
-// return the low part
-unsigned long Counter64::low() const
-{
- return smival.value.hNumber.lopart;
-}
-
-//------------------[ set_high( const unsigned long h) ]-----------
-// set the high part
-void Counter64::set_high( const unsigned long h)
-{
- smival.value.hNumber.hipart = h;
-}
-
-//------------------[ set_low( const unsigned long l) ]------------
-// set the low part
-void Counter64::set_low( const unsigned long l)
-{
- smival.value.hNumber.lopart = l;
-}
-
-
-//-----------[ to_long_double( Counter64 c64) ]-----------------------------
-// convert a Counter 64 to a long double
-long double Counter64::to_long_double() const
-{
- long double ld = this->high();
- ld *= MAX32;
- ld += this->low();
- return ld;
-}
-
-
-//-----------[ ld_to_c64( long double ld) ]----------------------------
-// convert a long double to a Counter64
-// semantics changed from prior version
-Counter64& Counter64::assign( long double ld)
-{
- smival.syntax = sNMP_SYNTAX_CNTR64;
- unsigned long h = smival.value.hNumber.hipart = (unsigned long)(ld / MAX32);
- smival.value.hNumber.lopart = (unsigned long)(ld - h);
- return *this;
-}
-
-//----------------[ general Value = operator ]---------------------
-SnmpSyntax& Counter64::operator=( SnmpSyntax &val)
-{
- // protect against assignment from itself
- if ( this == &val )
- return *this;
-
- smival.value.hNumber.lopart = 0; // pessimsitic - assume no mapping
- smival.value.hNumber.hipart = 0;
-
- // try to make assignment valid
- if (val.valid()){
- switch (val.get_syntax()){
- case sNMP_SYNTAX_CNTR64:
- smival.value.hNumber.hipart =
- ((Counter64 &)val).smival.value.hNumber.hipart;
- smival.value.hNumber.lopart =
- ((Counter64 &)val).smival.value.hNumber.lopart;
- break;
-
- case sNMP_SYNTAX_CNTR32:
- case sNMP_SYNTAX_TIMETICKS:
- case sNMP_SYNTAX_GAUGE32:
- // case sNMP_SYNTAX_UINT32: .. indistinguishable from GAUGE32
- case sNMP_SYNTAX_INT32:
- // take advantage of union...
- smival.value.hNumber.lopart = ((Counter64 &)val).smival.value.uNumber;
- smival.value.hNumber.hipart = 0;
- break;
- }
- }
- return *this;
-}
-
-// overloaded assignment
-Counter64& Counter64::operator=( const unsigned long long rhs)
-{
- smival.value.hNumber.hipart = (unsigned long) (rhs >> 32);
- smival.value.hNumber.lopart = (unsigned long) rhs;
- return *this;
-}
-
-// overloaded assignment
-Counter64& Counter64::operator=( const Counter64 &rhs)
-{
- smival.value.hNumber.hipart = rhs.high();
- smival.value.hNumber.lopart = rhs.low();
- return *this;
-}
-
-// otherwise, behave like an unsigned long int
-Counter64::operator unsigned long long()
-{
- unsigned long long val = smival.value.hNumber.hipart;
- val = val << 32; // shift right 4 bytes
- val |= smival.value.hNumber.lopart;
- return val;
-}
-
-//----------------[ Counter64::clone() ]-----------------------------------
-// create a new instance of this Value
-SnmpSyntax* Counter64::clone() const
-{
- return ( SnmpSyntax *) new Counter64(*this);
-}
-
-//----------------[ Counter64::valid() ]-------------------------------------
-int Counter64::valid() const
-{
- return 1;
-}
-
-//----------[ return ASCII format ]-------------------------
-// TODO: Fix up to do real 64bit decimal value printing...
-// For now, print > 32-bit values in hex
-char * Counter64::to_string()
-{
- if ( high() != 0 )
- sprintf(output_buffer, "0x%X%08X",
- (unsigned int)high(), (unsigned int)low());
- else
- sprintf(output_buffer, "%d", (int) low());
- return output_buffer;
-}
diff --git a/ASNMP/asnmp/ctr64.h b/ASNMP/asnmp/ctr64.h
deleted file mode 100644
index f9dc641a94a..00000000000
--- a/ASNMP/asnmp/ctr64.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef CTR64_
-#define CTR64_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// ctr64.h
-//
-// = DESCRIPTION
-// SNMP Counter64 class definition.
-//
-// = AUTHOR
-// Peter E Mellquist
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/smival.h"
-
-#define CTR64OUTBUF 30 // maximum ascii string for a 64-bit ctr
-
-
-//---------[ 64 bit Counter Class ]--------------------------------
-// Counter64 Class encapsulates two unsigned integers into a
-// a single entity. This type has is available in SNMPv2 but
-// may be used anywhere where needed.
-//
-class ACE_Export Counter64: public SnmpSyntax
- // = TITLE
- // Defines the member functions for the Counter64 concrete class
- // This class implements RFC 1902 64 bit Counter Object.
-{
-public:
- Counter64( unsigned long long llw = 0);
- // default constructor
-
- Counter64( unsigned long hiparm, unsigned long loparm);
- // constructor with values
-
- Counter64( const Counter64 &ctr64);
- // copy constructor
-
- ~Counter64();
- // destructor (ensure that SnmpSyntax::~SnmpSyntax() is overridden)
-
- SmiUINT32 get_syntax();
- // syntax type
-
- long double to_long_double() const;
- // return a long double representation
-
- Counter64& assign( long double ld);
- // assign a long double to a counter64
-
- unsigned long high() const;
- // return the high part
-
- unsigned long low() const;
- // return the low part
-
- void set_high( const unsigned long h);
- // set the high part
-
- void set_low( const unsigned long l);
- // set the low part
-
- Counter64& operator=( const unsigned long long rhs);
- // overloaded assignment
-
- Counter64& operator=( const Counter64 &rhs);
- // overloaded assignment
-
- char *to_string();
- // get a printable ASCII representation
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- int valid() const;
- // general validity test, always true
-
- operator unsigned long long();
- // otherwise, behave like an unsigned long long
-
-protected:
- char output_buffer[CTR64OUTBUF];
-};
-
-#endif // CTR64_
diff --git a/ASNMP/asnmp/enttraps.h b/ASNMP/asnmp/enttraps.h
deleted file mode 100644
index d90a593a4e4..00000000000
--- a/ASNMP/asnmp/enttraps.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef ENTTRAPS_
-#define ENTTRAPS_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// enttraps.cpp
-//
-// = DESCRIPTION
-// constants for Enterprise Traps
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/asn1.h" // ASN.1 header file
-
-//--------------[ well known trap ids ]-----------------------------------
-class ACE_Export snmpTrapsOid: public Oid
- // = TITLE
- // Defines the member functions for the snmpTrapsOid base class
- // to implement the traps defined in RFC 1215
-{
- public:
- snmpTrapsOid (void):Oid("1.3.6.1.6.3.1.1.5"){}
-};
-
-class ACE_Export snmpTrapEnterpriseOid: public Oid
- // = TITLE
- // Defines the default Enterprise Oid for this software package
-{
- public:
- snmpTrapEnterpriseOid(void): Oid("1.3.6.1.6.3.1.1.4.3.0") { }
-};
-
-class ACE_Export coldStartOid: public snmpTrapsOid
- // = TITLE
- // Defines the RFC 1215 agent cold start generic trap (system reboot)
-{
- public:
- coldStartOid( void){*this+=".1";}
-};
-
-class ACE_Export warmStartOid: public snmpTrapsOid
- // = TITLE
- // Defines the RFC 1215 agent warm start generic trap (agent reboot)
-{
- public:
- warmStartOid( void){*this+=".2";}
-};
-
-class ACE_Export linkDownOid: public snmpTrapsOid
- // = TITLE
- // Defines the RFC 1215 interface (link) down trap
-{
- public:
- linkDownOid( void){*this+=".3";}
-};
-
-
-// SMI LinkUp Oid
-class ACE_Export linkUpOid: public snmpTrapsOid
- // = TITLE
- // Defines the RFC 1215 interface (link) up trap
-{
- public:
- linkUpOid( void){*this+=".4";}
-};
-
-class ACE_Export authenticationFailureOid: public snmpTrapsOid
- // = TITLE
- // Defines the RFC 1215 device/agent invalid access trap
-{
- public:
- authenticationFailureOid( void){*this+=".5";}
-};
-
-class ACE_Export egpNeighborLossOid: public snmpTrapsOid
- // = TITLE
- // Defines the RFC 1215 Exterior Gateway Protocol neighbor loss trap
-{
- public:
- egpNeighborLossOid( void){*this+=".6";}
-};
-
-#ifdef DEFINE_TRAP_CONSTANTS_
-
-const coldStartOid coldStart;
-const warmStartOid warmStart;
-const linkDownOid linkDown;
-const linkUpOid linkUp;
-const authenticationFailureOid authenticationFailure;
-const egpNeighborLossOid egpNeighborLoss;
-const snmpTrapEnterpriseOid snmpTrapEnterprise;
-
-#endif
-
-#endif // ENTTRAPS_
diff --git a/ASNMP/asnmp/gauge.cpp b/ASNMP/asnmp/gauge.cpp
deleted file mode 100644
index aac715f2730..00000000000
--- a/ASNMP/asnmp/gauge.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// gauge.cpp
-//
-// = DESCRIPTION
-// Class implemtation for SMI Gauge32 class.
-// NOTES: This does not behave exactly as a Gauge described in RFC 1155
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/gauge.h" // header file for gauge class
-
-ACE_RCSID(asnmp, gauge, "$Id$")
-
-// constructor with a value
-Gauge32::Gauge32( const unsigned long i):SnmpUInt32(i)
-{
- smival.syntax = sNMP_SYNTAX_GAUGE32;
-}
-
-// copy constructor
-Gauge32::Gauge32 ( const Gauge32 &g)
-{ this->smival.value.uNumber = g.smival.value.uNumber;
- smival.syntax = sNMP_SYNTAX_GAUGE32;
- valid_flag = 1;
-}
-
-// destructor
-Gauge32::~Gauge32()
-{
-}
-
-// syntax type
-SmiUINT32 Gauge32::get_syntax()
-{
- return sNMP_SYNTAX_GAUGE32;
-}
-
-// overloaded assignment
-Gauge32& Gauge32::operator=( const Gauge32 &uli)
-{
- this->smival.value.uNumber = uli.smival.value.uNumber;
- return *this;
-}
-
-// overloaded assignment
-Gauge32& Gauge32::operator=( const unsigned long int i)
-{
- smival.value.uNumber=i; return *this;
-}
-
-// general assignment from any Value
-// TODO: this is broken if not inherited from UInt32 (see UInt32 code).
-SnmpSyntax& Gauge32::operator=( SnmpSyntax &in_val)
-{
-
- if ( this == &in_val ) // handle assignement from itself
- return *this;
-
- valid_flag = 0; // will get set true if really valid
- if (in_val.valid())
- {
- switch (in_val.get_syntax())
- {
- case sNMP_SYNTAX_UINT32:
- case sNMP_SYNTAX_GAUGE32:
- case sNMP_SYNTAX_CNTR32:
- case sNMP_SYNTAX_TIMETICKS:
- case sNMP_SYNTAX_INT32: // implied cast int -> uint
- this->smival.value.uNumber =
- ((Gauge32 &)in_val).smival.value.uNumber;
- valid_flag = 1;
- break;
- }
- }
- return *this;
-}
-
-// otherwise, act as unsigned long
-Gauge32::operator unsigned long()
-{
- return smival.value.uNumber;
-}
-
-// clone - create a new instance of this Value
-SnmpSyntax* Gauge32::clone() const
-{
- return ( SnmpSyntax *) new Gauge32(*this);
-}
diff --git a/ASNMP/asnmp/gauge.h b/ASNMP/asnmp/gauge.h
deleted file mode 100644
index 765a713736c..00000000000
--- a/ASNMP/asnmp/gauge.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef GAUGE_
-#define GAUGE_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// gauge32.cpp
-//
-// = DESCRIPTION
-// Class definition for SMI Gauge32 class.
-// This class currently does not behave as defined by the abstract model
-// in RFC 1155 section 3.2.3.4 (ie the value doesn't latch on the max value)
-//
-// = AUTHOR
-// Peter E Mellquist
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/integer.h"
-
-//------------[ Gauge32 Class ]------------------------------------------
-// The gauge class allows all the functionality of unsigned
-// integers but is recognized as a distinct SMI type. Gauge32
-// objects may be set or get into Vb objects.
-//
-
-class ACE_Export Gauge32: public SnmpUInt32
- // = TITLE
- // Define RFC1902 Gauge datatype from RFC 1155 section 3.2.3.4
- // Note that this datatype does not behave exactly (acts like a long)
-{
- public:
- Gauge32( const unsigned long i = 0);
- // constructor with a value
-
- Gauge32 ( const Gauge32 &g);
- // copy constructor
-
- ~Gauge32();
- // destructor for a Gauge32 (ensure that Value::~Value() is overridden)
-
- SmiUINT32 get_syntax();
- // syntax type
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- Gauge32& operator=( const Gauge32 &uli);
- // overloaded assignment
-
- Gauge32& operator=( const unsigned long i);
- // overloaded assignment
-
- operator unsigned long();
- // otherwise, behave like an unsigned int
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-};
-#endif //GAUGE_
-
diff --git a/ASNMP/asnmp/integer.cpp b/ASNMP/asnmp/integer.cpp
deleted file mode 100644
index e0da5b6dfab..00000000000
--- a/ASNMP/asnmp/integer.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// integer.cpp
-//
-// = DESCRIPTION
-// Class implemtation for SMI Integer classes.
-//
-// = AUTHOR
-// Jeff Meyer
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/*===================================================================
-
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/integer.h" // header file for gauge class
-
-ACE_RCSID(asnmp, integer, "$Id$")
-
-// constructor with value
-SnmpUInt32::SnmpUInt32 (const u_long i)
-{
- smival.value.uNumber=i;
- smival.syntax = sNMP_SYNTAX_UINT32;
- valid_flag = 1;
-}
-
-// copy constructor
-SnmpUInt32::SnmpUInt32( const SnmpUInt32 &c)
-{
- smival.value.uNumber=c.smival.value.uNumber;
- smival.syntax = sNMP_SYNTAX_UINT32;
- valid_flag = 1;
-}
-
-// destructor (ensure that SnmpSyntax::~SnmpSyntax() is overridden)
-SnmpUInt32::~SnmpUInt32()
-{
-}
-
-// syntax type
-SmiUINT32 SnmpUInt32::get_syntax()
-{
- return sNMP_SYNTAX_UINT32;
-}
-
-// object validity
-int SnmpUInt32::valid( void) const
-{
- return valid_flag;
-}
-
-// overloaded assignment
-SnmpUInt32& SnmpUInt32::operator=( const unsigned long int i)
-{
- smival.value.uNumber=i;
- valid_flag = 1;
- return *this;
-}
-
-// general assignment from any Value
-SnmpSyntax& SnmpUInt32::operator=( SnmpSyntax &in_val)
-{
- if ( this == &in_val ) // handle assignement from itself
- return *this;
-
- valid_flag = 0; // will get set true if really valid
- if (in_val.valid())
- {
- switch (in_val.get_syntax())
- {
- case sNMP_SYNTAX_UINT32:
- // case sNMP_SYNTAX_GAUGE32: .. indistinquishable from UINT32
- case sNMP_SYNTAX_CNTR32:
- case sNMP_SYNTAX_TIMETICKS:
- case sNMP_SYNTAX_INT32: // implied cast int -> uint
- this->smival.value.uNumber =
- ((SnmpUInt32 &)in_val).smival.value.uNumber;
- valid_flag = 1;
- break;
- }
- }
- return *this;
-}
-
-// overloaded assignment
-SnmpUInt32& SnmpUInt32::operator=( const SnmpUInt32 &uli)
-{
- this->smival.value.uNumber = uli.smival.value.uNumber; return *this;
-}
-
-// otherwise, behave like an unsigned long int
-SnmpUInt32::operator unsigned long()
-{
- return smival.value.uNumber;
-}
-
-// create a new instance of this Value
-SnmpSyntax* SnmpUInt32::clone() const
-{
- return (SnmpSyntax *) new SnmpUInt32(*this);
-}
-
-// ASCII format return
-char * SnmpUInt32::to_string()
-{
- sprintf(output_buffer, "%d", (int) (this->smival.value.uNumber));
- return output_buffer;
-}
-
-
-//====================================================================
-// INT 32 Implementation
-//====================================================================
-
-// default constructor
-SnmpInt32::SnmpInt32 (const long i)
-{
- smival.value.sNumber=i;
- smival.syntax = sNMP_SYNTAX_INT32;
- valid_flag = 1;
-}
-
-// constructor with value
-SnmpInt32::SnmpInt32 (const SnmpInt32 &c)
-{
- smival.value.sNumber=c.smival.value.sNumber;
- smival.syntax = sNMP_SYNTAX_INT32;
- valid_flag = 1;
-}
-
-// destructor
-SnmpInt32::~SnmpInt32()
-{
-}
-
-// syntax type
-SmiUINT32 SnmpInt32::get_syntax()
-{
- return sNMP_SYNTAX_INT32;
-}
-
-// object validity
-int SnmpInt32::valid( void) const
-{
- return valid_flag;
-}
-
-// overloaded assignment
-SnmpInt32& SnmpInt32::operator=( const long i)
-{
- this->smival.value.sNumber = (unsigned long) i;
- valid_flag = 1;
- return *this;
-}
-
-// overloaded assignment
-SnmpInt32& SnmpInt32::operator=( const SnmpInt32 &uli)
-{
- this->smival.value.sNumber = uli.smival.value.sNumber;
- valid_flag = 1;
- return *this;
-}
-
-// general assignment from any Value
-SnmpSyntax& SnmpInt32::operator=( SnmpSyntax &in_val)
-{
- if ( this == &in_val ) // handle assignement from itself
- return *this;
-
- valid_flag = 0; // will get set true if really valid
- if (in_val.valid())
- {
- switch (in_val.get_syntax())
- {
- case sNMP_SYNTAX_INT32:
- case sNMP_SYNTAX_UINT32: // implied cast uint -> int
- // case sNMP_SYNTAX_GAUGE32: .. indistinquishable from UINT32
- case sNMP_SYNTAX_CNTR32: // implied cast uint -> int
- case sNMP_SYNTAX_TIMETICKS: // implied cast uint -> int
- this->smival.value.sNumber =
- ((SnmpInt32 &)in_val).smival.value.sNumber;
- valid_flag = 1;
- break;
- }
- }
- return *this;
-}
-
-// otherwise, behave like a long int
-SnmpInt32::operator long()
-{
- return (long) smival.value.sNumber;
-}
-
-// clone - create a new instance of this Value
-SnmpSyntax* SnmpInt32::clone() const
-{
- return ( SnmpSyntax *) new SnmpInt32(*this);
-}
-
-// ASCII format return
-
-char *SnmpInt32::to_string()
-{
- sprintf(output_buffer, "%d", (int) (long) this->smival.value.sNumber);
- return output_buffer;
-}
diff --git a/ASNMP/asnmp/integer.h b/ASNMP/asnmp/integer.h
deleted file mode 100644
index d0dc2972742..00000000000
--- a/ASNMP/asnmp/integer.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef SNMPINTEGER_
-#define SNMPINTEGER_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// integer.cpp
-//
-// = DESCRIPTION
-// Class definition for Integer classes convertable to SMI.
-//
-// = AUTHOR
-// Jeff Meyer
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/smival.h"
-
-// TODO get rid of this constant
-#define INTOUTBUF 15 // largest ASCII formatted integer
-
-//------------[ Integer Classes ]------------------------------------------
-// The integer class allows all the functionality of the various
-// integers but is contained in a Value object for consistency
-// among the various types.
-// class objects may be set or get into Vb objects.
-//
-
-// 32 bit unsigned integer class
-class ACE_Export SnmpUInt32: public SnmpSyntax
- // = TITLE
- // Implement RFC 1920 Unsigned Integer SMI datatype
-{
-
- public:
- SnmpUInt32 (const unsigned long i = 0);
- // default constructor
-
- SnmpUInt32( const SnmpUInt32 &c);
- // copy constructor
-
- virtual ~SnmpUInt32();
- // destructor (ensure that SnmpSyntax::~SnmpSyntax() is overridden)
-
- virtual SmiUINT32 get_syntax();
- // syntax type
-
- SnmpUInt32& operator=( const unsigned long i);
- // overloaded assignment
-
- SnmpUInt32& operator=( const SnmpUInt32 &uli);
- // overloaded assignment
-
- operator unsigned long();
- // otherwise, behave like an unsigned long int
-
- virtual char *to_string();
- // get a printable ASCII value
-
- virtual SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- int valid() const;
- // did object construct properly
-
- protected:
- int valid_flag;
- char output_buffer[INTOUTBUF];
- // contain string representation of object
-};
-
-
-// 32 bit signed integer class
-class ACE_Export SnmpInt32: public SnmpSyntax
-{
- // = TITLE
- // Implement RFC 1902 32 bit Integer SMI data object
- public:
- SnmpInt32 (const long i = 0);
- // constructor with value
-
- SnmpInt32 (const SnmpInt32 &c);
- // constructor with value
-
- virtual ~SnmpInt32();
- // destructor (ensure that SnmpSyntax::~SnmpSyntax() is overridden)
-
- virtual SmiUINT32 get_syntax();
- // syntax type
-
- SnmpInt32& operator=( const long i);
- // overloaded assignment
-
- SnmpInt32& operator=( const SnmpInt32 &li);
- // overloaded assignment
-
- operator long();
- // otherwise, behave like a long int
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
- char *to_string();
- // get a printable ASCII value
-
- int valid() const;
- // logical state of object
-
- protected:
- int valid_flag;
- char output_buffer[INTOUTBUF];
- // contain string representation of object
-};
-
-#endif
diff --git a/ASNMP/asnmp/octet.cpp b/ASNMP/asnmp/octet.cpp
deleted file mode 100644
index 2a422a5fe88..00000000000
--- a/ASNMP/asnmp/octet.cpp
+++ /dev/null
@@ -1,594 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// octet.cpp
-//
-// = DESCRIPTION
-// Implements the SMI Octet datatype (RFC 1155)
-// This class is fully contained and does not rely on or any other
-// SNMP libraries. Ported to ACE by Michael MacFaden mrm@cisco.com
-//
-// = AUTHOR
-// Peter E Mellquist
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "ace/OS.h"
-#include "asnmp/octet.h" // include definition for octet class
-
-ACE_RCSID(asnmp, octet, "$Id$")
-
-//============[ syntax type ]=========================================
-SmiUINT32 OctetStr::get_syntax()
-{
- return sNMP_SYNTAX_OCTETS;
-}
-
-inline
-void init_octet_smi(SmiVALUE& smi)
-{
- smi.syntax = sNMP_SYNTAX_OCTETS;
- smi.value.string.ptr = 0;
- smi.value.string.len = 0;
-}
-
-inline
-void reset_octet_smi(SmiVALUE& smi)
-{
- delete [] smi.value.string.ptr;
- smi.value.string.ptr = 0;
- smi.value.string.len = 0;
-}
-
-inline
-int copy_octet_smi(SmiVALUE& smi, int size, const char *src, int& valid_flag)
-{
- valid_flag = 0;
-
- if (smi.value.string.ptr)
- delete [] smi.value.string.ptr;
-
- ACE_NEW_RETURN(smi.value.string.ptr, SmiBYTE[size], 1);
- ACE_OS::memcpy( smi.value.string.ptr, src, size);
- smi.value.string.len = size;
- valid_flag = 1;
- return 0;
-}
-
-//============[ default constructor ]=========================
-OctetStr::OctetStr( const char * string, long size):
- output_buffer(0), validity(0)
-{
-
- size_t z;
- init_octet_smi(smival);
-
- // check for null string
- if ( !string)
- return;
-
- if (size == -1) // calc if no length given - assume c style string
- size = z = ACE_OS::strlen( string);
-
- copy_octet_smi(smival, size, string, validity);
-}
-
-
-//============[ set the data on an already constructed Octet ]============
-// TODO: should return status since it can fail in so many places
-void OctetStr::set_data( const SmiBYTE* string, long size)
-{
- size_t z;
-
- // invalid args, set octetStr to not valid
- if ( !string || !size) {
- validity = 0;
- return;
- }
-
- // assume non-zero terminated string
- if (size == -1) // calc if no length given - assume c style string
- size = z = ACE_OS::strlen( (char *)string);
-
- // free up already used space
- if ( smival.value.string.ptr ) {
- reset_octet_smi(smival);
- }
- smival.value.string.len = 0;
-
-
- copy_octet_smi(smival, size, (const char *)string, validity);
-}
-
-//============[ constructor using another octet object ]==============
-OctetStr::OctetStr ( const OctetStr &octet):
- output_buffer(0), validity(1)
-{
- init_octet_smi(smival);
- // check for zero len case
- if ( octet.smival.value.string.len == 0) {
- return;
- }
-
- // must be a valid object
- if ( octet.validity == 0) {
- validity = 0;
- return;
- }
-
- // get the mem needed
- copy_octet_smi(smival, octet.smival.value.string.len,
- (const char *)octet.smival.value.string.ptr, validity);
-}
-
-//=============[ destructor ]=========================================
-OctetStr::~OctetStr()
-{
- reset_octet_smi(smival);
- delete [] output_buffer;
-}
-
-
-//=============[ assignment to a string operator overloaded ]=========
-OctetStr& OctetStr::operator=( const char *string)
-{
- // get the string size
- size_t nz;
-
- // free up previous memory if needed
- if ( smival.value.string.ptr ) {
- reset_octet_smi(smival);
- }
-
- // if empty then we are done
- if (!string || !(nz = ACE_OS::strlen( string))) {
- validity = 1;
- return *this;
- }
-
- // get memory needed
- copy_octet_smi(smival, nz, string, validity);
- return *this;
-}
-
-//=============[ assignment to another oid object overloaded ]========
-OctetStr& OctetStr::operator=( const OctetStr &octet)
-{
- // protect against assignment from self
- if ( this == &octet )
- return *this;
-
- // don't assign from invalid objs
- if (!octet.validity) {
- return *this;
- }
-
- // free up previous memory if needed
- if ( smival.value.string.len ) {
- reset_octet_smi(smival);
- }
-
- if (!octet.smival.value.string.len) {
- validity = 1;
- return *this;
- }
-
- // get some memory
- copy_octet_smi(smival, octet.smival.value.string.len,
- (const char*) octet.smival.value.string.ptr, validity);
- return *this; // return self reference
-}
-
-//==============[ equivlence operator overloaded ]====================
-int operator==( const OctetStr &lhs, const OctetStr &rhs)
-{
- if( lhs.left_comparison( rhs.smival.value.string.len, rhs)==0)
- return 1;
- else
- return 0;
-}
-
-//==============[ not equivlence operator overloaded ]================
-int operator!=( const OctetStr &lhs, const OctetStr &rhs)
-{
- if( lhs.left_comparison( rhs.smival.value.string.len, rhs)!=0)
- return 1;
- else
- return 0;
-}
-
-//==============[ less than < overloaded ]============================
-int operator<( const OctetStr &lhs, const OctetStr &rhs)
-{
- if( lhs.left_comparison( rhs.smival.value.string.len, rhs)<0)
- return 1;
- else
- return 0;
-}
-
-//==============[ less than <= overloaded ]===========================
-int operator<=( const OctetStr &lhs, const OctetStr &rhs)
-{
- if(( lhs.left_comparison( rhs.smival.value.string.len, rhs)<0) ||
- ( lhs.left_comparison( rhs.smival.value.string.len, rhs)==0))
- return 1;
- else
- return 0;
-}
-
-//===============[ greater than > overloaded ]========================
-int operator>( const OctetStr &lhs, const OctetStr &rhs)
-{
- if( lhs.left_comparison( rhs.smival.value.string.len, rhs)>0)
- return 1;
- else
- return 0;
-}
-
-//===============[ greater than >= overloaded ]=======================
-int operator>=( const OctetStr &lhs, const OctetStr &rhs)
-{
- if(( lhs.left_comparison( rhs.smival.value.string.len, rhs)>0) ||
- ( lhs.left_comparison( rhs.smival.value.string.len, rhs)==0))
- return 1;
- else
- return 0;
-}
-
-//===============[ equivlence operator overloaded ]===================
-int operator==( const OctetStr &lhs,const char *rhs)
-{
- OctetStr to( rhs);
- if( lhs.left_comparison( to.smival.value.string.len,to)==0)
- return 1;
- else
- return 0;
-}
-
-//===============[ not equivlence operator overloaded ]===============
-int operator!=( const OctetStr &lhs,const char *rhs)
-{
- OctetStr to( rhs);
- if ( lhs.left_comparison( to.smival.value.string.len,to)!=0)
- return 1;
- else
- return 0;
-}
-
-//===============[ less than < operator overloaded ]==================
-int operator<( const OctetStr &lhs,const char *rhs)
-{
- OctetStr to( rhs);
- if ( lhs.left_comparison( to.smival.value.string.len,to)<0)
- return 1;
- else
- return 0;
-}
-
-//===============[ less than <= operator overloaded ]=================
-int operator<=( const OctetStr &lhs,char *rhs)
-{
- OctetStr to( rhs);
- if (( lhs.left_comparison( to.smival.value.string.len,to)<0) ||
- ( lhs.left_comparison( to.smival.value.string.len,to)==0))
- return 1;
- else
- return 0;
-}
-
-//===============[ greater than > operator overloaded ]===============
-int operator>( const OctetStr &lhs,const char *rhs)
-{
- OctetStr to( rhs);
- if ( lhs.left_comparison( to.smival.value.string.len,to)>0)
- return 1;
- else
- return 0;
-}
-
-//===============[ greater than >= operator overloaded ]==============
-int operator>=( const OctetStr &lhs,const char *rhs)
-{
- OctetStr to( rhs);
- if (( lhs.left_comparison( to.smival.value.string.len,to)>0) ||
- ( lhs.left_comparison( to.smival.value.string.len,to)==0))
- return 1;
- else
- return 0;
-}
-
-//===============[ append operator, appends a string ]================
-OctetStr& OctetStr::operator+=( const char *a)
-{
- SmiBYTE *tmp; // temp pointer
- size_t slen,nlen;
-
- // get len of string
- if ( !a || ((slen = ACE_OS::strlen( a)) == 0))
- return *this;
-
- // total len of octet
- nlen = slen + (size_t) smival.value.string.len;
- ACE_NEW_RETURN(tmp, SmiBYTE [ nlen], *this);
- ACE_OS::memcpy ( tmp, smival.value.string.ptr,
- (size_t) smival.value.string.len);
- ACE_OS::memcpy( tmp + smival.value.string.len, a, (size_t) slen);
- // delete the original
- if ( smival.value.string.ptr )
- reset_octet_smi(smival);
- smival.value.string.ptr = tmp;
- smival.value.string.len = nlen;
- return *this;
-}
-
-//================[ append one OctetStr to another ]==================
-OctetStr& OctetStr::operator+=( const OctetStr& octetstr)
-{
- SmiBYTE *tmp; // temp pointer
- size_t slen,nlen;
-
- if (!octetstr.validity ||
- !(slen = (size_t)octetstr.length()))
- return *this;
-
- // total len of octet
- nlen = slen + (size_t) smival.value.string.len;
- // get mem needed
- ACE_NEW_RETURN(tmp, SmiBYTE[ nlen], *this);
- ACE_OS::memcpy ( tmp, smival.value.string.ptr,
- (size_t) smival.value.string.len);
- ACE_OS::memcpy( tmp + smival.value.string.len, octetstr.data(),
- (size_t) slen);
- if ( smival.value.string.ptr )
- reset_octet_smi(smival);
- smival.value.string.ptr = tmp;
- smival.value.string.len = nlen;
- return *this;
-}
-
-//================[ appends an int ]==================================
-OctetStr& OctetStr::operator+=( const char c)
-{
- SmiBYTE *tmp;
- // get the memory needed plus one extra byte
- ACE_NEW_RETURN(tmp, SmiBYTE[ smival.value.string.len + 1], *this);
- ACE_OS::memcpy ( tmp, smival.value.string.ptr,
- (size_t) smival.value.string.len); // len of original
- tmp[ smival.value.string.len ] = c; // assign in byte
- if ( smival.value.string.ptr ) // delete the original
- reset_octet_smi(smival);
-
- smival.value.string.ptr = tmp; // point to one
- smival.value.string.len++; // up the len
- return *this;
-}
-
-
-//================[ compare n elements of an Octet ]==================
-int OctetStr::left_comparison( const long n, const OctetStr &o) const
-{
- long z, w;
-
- // both are empty, they are equal
- if (( smival.value.string.len == 0) &&
- ( o.smival.value.string.len == 0))
- return 0; // equal
-
- // self is empty and param has something
- if (( smival.value.string.len == 0) &&
- ( o.smival.value.string.len >0) &&
- (n>0))
- return -1;
-
- // self has something and param has nothing
- if (( smival.value.string.len > 0) &&
- ( o.smival.value.string.len ==0) &&
- (n>0))
- return 1;
-
- // special case
- if (( smival.value.string.len == 0) &&
- ( o.smival.value.string.len > 0) &&
- ( n == 0))
- return 0;
-
- // pick the Min of n, this and the param len
- // this is the maximum # to iterate a search
- w = smival.value.string.len < o.smival.value.string.len
- ? smival.value.string.len : o.smival.value.string.len;
- if (n<w) w=n;
-
- z = 0;
- while( z < w) {
- if ( smival.value.string.ptr[z] < o.smival.value.string.ptr[z])
- return -1; // less than
- if ( smival.value.string.ptr[z] > o.smival.value.string.ptr[z])
- return 1; // greater than
- z++;
- }
-
- if (( z == 0) &&
- ( smival.value.string.len == 0) &&
- ( o.smival.value.string.len > 0))
- return -1;
-
- if (( z == 0) &&
- ( o.smival.value.string.len == 0) &&
- ( smival.value.string.len > 0))
- return 1;
-
- return 0;
-}
-
-//================[ return the length of the oid ]=======================
-size_t OctetStr::length() const
-{
- return (size_t) smival.value.string.len;
-}
-
-//================[ operator[]: access as if array ]==================
-SmiBYTE& OctetStr::operator[]( int position)
-{
- return smival.value.string.ptr[position];
-}
-
-//===============[ reuturns pointer to internal data ]===============
-SmiBYTE * OctetStr::data() const
-{
- return smival.value.string.ptr;
-}
-
-//================[ returns validity ]================================
-int OctetStr::valid() const
-{
- return validity;
-}
-
-//================[ clone() ]=========================================
-SnmpSyntax * OctetStr::clone() const
-{
- OctetStr *tmp = new OctetStr(*this);
- return ( SnmpSyntax *) tmp;
-}
-
-//================[ ASCII format return ]=============================
-char * OctetStr::to_string()
-{
- for ( unsigned long i=0; i < smival.value.string.len; i++) {
- if (( smival.value.string.ptr[i] != '\r')&&
- ( smival.value.string.ptr[i] != '\n')&&
- (isprint((int) (smival.value.string.ptr[i]))==0))
- return(to_string_hex());
- }
-
- if ( output_buffer != 0)
- delete [] output_buffer;
-
- ACE_NEW_RETURN(output_buffer, char[smival.value.string.len + 1], "");
- if (smival.value.string.len)
- ACE_OS::memcpy(output_buffer, smival.value.string.ptr,
- (int) smival.value.string.len);
- output_buffer[smival.value.string.len] = '\0';
- return output_buffer;
-}
-
-
-//================[ general Value = operator ]========================
-SnmpSyntax& OctetStr::operator=( SnmpSyntax &val)
-{
- // protect against assignment from self
- if ( this == &val )
- return *this;
-
- // blow away the old value
- validity=0;
- if (smival.value.string.ptr) {
- reset_octet_smi(smival);
- }
- smival.value.string.len = 0;
- if (val.valid()){
- switch (val.get_syntax()) {
- case sNMP_SYNTAX_OCTETS:
- case sNMP_SYNTAX_IPADDR:
- set_data( ((OctetStr &)val).smival.value.string.ptr,
- ((OctetStr &)val).smival.value.string.len);
- break;
- }
- }
- return *this;
-}
-
-//================[ format the output into hex ]========================
-char *OctetStr::to_string_hex()
-{
- int cnt;
- char char_buf[80]; // holds ASCII representation of data
- char *buf_ptr; // pointer into ASCII listing
- char *line_ptr; // pointer into Hex listing
- int storageNeeded; // how much space do we need ?
- int local_len = (int) smival.value.string.len;
- SmiBYTE *bytes = smival.value.string.ptr;
-
-
- storageNeeded = (int) ((smival.value.string.len/16)+1) * 72 + 1;
-
- if ( output_buffer != 0)
- delete [] output_buffer;
-
- ACE_NEW_RETURN(output_buffer, char[storageNeeded], "");
-
- line_ptr = output_buffer;
-
- /*----------------------------------------*/
- /* processing loop for entire data buffer */
- /*----------------------------------------*/
- while (local_len > 0) {
- cnt = 16; /* print 16 bytes per line */
- buf_ptr = char_buf;
- sprintf(line_ptr, " ");
- line_ptr += 2; /* indent */
-
- /*-----------------------*/
- /* process a single line */
- /*-----------------------*/
- while (cnt-- > 0 && local_len-- > 0) {
- sprintf(line_ptr, "%2.2X ", *bytes);
-
- line_ptr +=3; /* the display of a byte always 3 chars long */
- if (isprint(*bytes))
- sprintf(buf_ptr, "%c", *bytes);
- else
- sprintf(buf_ptr, ".");
- bytes++;
- buf_ptr++;
- }
- cnt++;
-
- /*----------------------------------------------------------*/
- /* this is to make sure that the ASCII displays line up for */
- /* incomplete lines of hex */
- /*----------------------------------------------------------*/
- while (cnt-- > 0) {
- sprintf(line_ptr," ");
- line_ptr += 3;
- }
-
- /*------------------------------------------*/
- /* append the ASCII display to the Hex line */
- /*------------------------------------------*/
-
-// TODO: verify ACE_OS:: on NT works like this or not
-#if defined(__unix)
- char *fmt = " %s\n";
-#endif // __unix
-
-#if defined(_WIN32)
- char *fmt = " %s\r\n";
-#endif // _WIN32
-
- ACE_OS::sprintf(line_ptr, fmt, char_buf);
- line_ptr += 3 + strlen(char_buf);
- }
-
- return output_buffer;
-}
diff --git a/ASNMP/asnmp/octet.h b/ASNMP/asnmp/octet.h
deleted file mode 100644
index 28b3d9fda21..00000000000
--- a/ASNMP/asnmp/octet.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef OCTET_CLS_
-#define OCTET_CLS_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// octet.h
-//
-// = DESCRIPTION
-// This class is fully contained and does not rely on or any other
-// SNMP libraries. This class is portable across any platform
-// which supports C++.
-//
-// = AUTHOR
-// Peter E Mellquist / design/original code
-// Michael R. MacFaden / modified for ACE, added suboid(),collapse ctor's
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-//------------------------------------------------------------------------
-#include "asnmp/smival.h"
-
-class ACE_Export OctetStr: public SnmpSyntax
- // = TITLE
- // Implement RFC1155 Octet SMI data object
-
-{
-public:
- OctetStr( const char *string = "", long size = -1);
- // construct octet from byte buffer, assume c style string if size == -1
-
- OctetStr ( const OctetStr &octet);
- // constructor using another octet object
-
- ~OctetStr();
- // destructor
-
- SmiUINT32 get_syntax();
- // syntax type
-
- void set_data( const SmiBYTE* string, long int size = -1);
- // set octet from byte buffer, assume c style string if size == -1
-
- OctetStr& operator=( const char *string);
- // assignment to a string operator overloaded
-
- OctetStr& operator=( const OctetStr &octet);
- // assignment to another oid object overloaded
-
- friend int operator==( const OctetStr &lhs, const OctetStr &rhs);
- // equivlence operator overloaded
-
- friend int operator!=( const OctetStr &lhs, const OctetStr &rhs);
- // not equivlence operator overloaded
-
- friend int operator<( const OctetStr &lhs, const OctetStr &rhs);
- // less than < overloaded
-
- friend int operator<=( const OctetStr &lhs,const OctetStr &rhs);
- // less than <= overloaded
-
- friend int operator>( const OctetStr &lhs, const OctetStr &rhs);
- // greater than > overloaded
-
- friend int operator>=( const OctetStr &lhs, const OctetStr &rhs);
- // greater than >= overloaded
-
- friend int operator==( const OctetStr &lhs,const char *rhs);
- // equivlence operator overloaded
-
- friend int operator!=( const OctetStr &lhs,const char *rhs);
- // not equivlence operator overloaded
-
- friend int operator<( const OctetStr &lhs,const char *rhs);
- // less than < operator overloaded
-
- friend int operator<=( const OctetStr &lhs,char *rhs);
- // less than <= operator overloaded
-
- friend int operator>( const OctetStr &lhs,const char *rhs);
- // greater than > operator overloaded
-
- friend int operator>=( const OctetStr &lhs,const char *rhs);
- // greater than >= operator overloaded
-
- OctetStr& operator+=( const char *a);
- // append operator, appends a string
-
- OctetStr& operator+=( const char c);
- // appends an int
-
- OctetStr& operator+=( const OctetStr& octetstr);
- // append one octetStr to another
-
- SmiBYTE& operator[]( int position);
- // for non const [], allows reading and writing
-
- int left_comparison( const long n, const OctetStr &o) const;
- // compare the n leftmost bytes (left-to-right)
- // returns 0, equal
- // returns -1, <
- // returns 1 , >
-
- size_t length() const ;
- // return the len of the oid
-
- int valid() const;
- // returns validity
-
- SmiBYTE *data() const;
- // returns pointer to internal data
-
- char *to_string();
- // get a printable ASCII value
-
- char *to_string_hex();
- // get an ASCII formattted hex dump of the contents
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
-protected:
- //----[ instance variables ]
- char *output_buffer; // formatted Octet value
- int validity; // validity boolean
-};
-
-#endif // OCTET_CLS_
diff --git a/ASNMP/asnmp/oid.cpp b/ASNMP/asnmp/oid.cpp
deleted file mode 100644
index d0bbcd3c4aa..00000000000
--- a/ASNMP/asnmp/oid.cpp
+++ /dev/null
@@ -1,800 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// oid.cpp
-//
-// = DESCRIPTION
-// This module contains the implementation of the oid class. This
-// includes all protected and public member functions. The oid class
-// may be compiled stand alone without the use of any other library.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS" without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-//---------[ external C libaries used ]--------------------------------
-
-#include "asnmp/oid.h" // include def for oid class
-
-ACE_RCSID(asnmp, oid, "$Id$")
-
-enum Defs {SNMPBUFFSIZE=300,
- SNMPCHARSIZE=15}; // max oid value (4294967295UL)
-
-#define NO_MEM_STR "ERROR: Oid::to_string: memory allocation failure"
-
-//=============[Oid::get_syntax(void)]====================================
-SmiUINT32 Oid::get_syntax()
-{
- return sNMP_SYNTAX_OID;
-}
-
-
-//=============[Oid::Oid( const char *dotted_string ]=====================
-// constructor using a dotted string
-//
-// do a string to oid using the string passed in
-Oid::Oid( const char * dotted_oid_string, size_t size)
-{
- // can't init enum SmiValue so just memset it clean
- set_null();
-
- size_t z;
- if ((z = ACE_OS::strlen(dotted_oid_string)) == 0) {
- set_invalid();
- return;
- }
-
- if (size == (unsigned int)-1)
- size = z;
- if (size > z)
- size = z;
-
- char *ptr = (char *)dotted_oid_string;;
- if (size < z) {
- // create new buffer if needed
- ACE_NEW(ptr, char [size]);
-
- // sz should be in StrToOid?
- ACE_OS::memcpy( (void *)ptr, dotted_oid_string, size);
- }
-
- size_t byte_counter;
- if (StrToOid( (char *) ptr, &smival.value.oid, byte_counter) < 0)
- set_invalid();
- if (ptr != dotted_oid_string)
- delete [] ptr;
-}
-
-
-//=============[Oid::Oid( const Oid &oid) ]================================
-// constructor using another oid object
-//
-// do an oid copy using the oid object passed in
-Oid::Oid ( const Oid &oid)
-{
- set_null();
-
- // allocate some memory for the oid
- // in this case the size to allocate is the same
- // size as the source oid
- if (oid.smival.value.oid.len) {
- ACE_NEW(smival.value.oid.ptr, SmiUINT32[ oid.smival.value.oid.len]);
- size_t byte_counter;
- OidCopy( (SmiLPOID) &(oid.smival.value.oid),(SmiLPOID)
- &smival.value.oid, byte_counter);
- }
-}
-
-
-//=============[Oid::Oid( const unsigned long *raw_oid, int oid_len) ]====
-// constructor using raw numeric form
-//
-// copy the integer values into the private member
-Oid::Oid(const unsigned long *raw_oid, size_t oid_len)
-{
- set_null();
-
- smival.syntax = sNMP_SYNTAX_OID;
- set_invalid();
-
- if (raw_oid && oid_len > 0) {
- ACE_NEW(smival.value.oid.ptr, SmiUINT32[ oid_len]);
- smival.value.oid.len = oid_len;
- for (size_t i=0; i < oid_len; i++)
- smival.value.oid.ptr[i] = raw_oid[i];
- }
-}
-
-//=============[Oid::~Oid]==============================================
-// destructor
-//
-// free up the descriptor space
-Oid::~Oid()
-{
- // free up the octet deep memory
- if ( smival.value.oid.ptr ) {
- set_invalid();
- }
-
- // free up the output string
- if ( iv_str != 0)
- delete [] iv_str;
-}
-
-
-//=============[Oid::operator = const char * dotted_string ]==============
-// assignment to a string operator overloaded
-//
-// free the existing oid
-// create the new oid from the string
-// return this object
-void Oid::set_data( const char *dotted_oid_string)
-{
- // delete the old value
- if ( smival.value.oid.ptr ) {
- set_invalid();
- }
-
- // assign the new value
- size_t byte_counter;
- if (StrToOid( (char *) dotted_oid_string, &smival.value.oid, byte_counter) <0)
- set_invalid();
-}
-
-
-//=============[Oid:: operator = const Oid &oid ]==========================
-// assignment to another oid object overloaded
-//
-// free the existing oid
-// create a new one from the object passed in
-// TODO: measure perf vs memory of no realloc in case where len >= oid.len
-Oid& Oid::operator=( const Oid &oid)
-{
- // protect against assignment from self
- if ( this == &oid)
- return *this;
-
- set_invalid();
-
- // check for zero len on source
- if ( oid.smival.value.oid.len == 0)
- return *this;
-
- init_value((const SmiLPOID) &(oid.smival.value.oid),
- oid.smival.value.oid.len);
- return *this;
-}
-
-// assign this object the oid, set to invalid if copy fails
-void Oid::init_value(const SmiLPOID srcOid, size_t len)
-{
- // allocate some memory for the oid
- ACE_NEW(smival.value.oid.ptr, SmiUINT32[ len]);
- size_t byte_counter;
- OidCopy( srcOid, (SmiLPOID) &smival.value.oid, byte_counter);
-}
-
-void Oid::init_value(const unsigned long *raw_oid, size_t oid_len)
-{
- if (smival.value.oid.ptr)
- delete [] smival.value.oid.ptr;
-
- ACE_NEW(smival.value.oid.ptr, SmiUINT32[ oid_len]);
- ACE_OS::memcpy((SmiLPBYTE) smival.value.oid.ptr,
- (SmiLPBYTE) raw_oid,
- (size_t) (oid_len * sizeof(SmiUINT32)));
- smival.value.oid.len = oid_len;
-}
-
-//==============[Oid:: operator += const char *a ]=========================
-// append operator, appends a string
-//
-// allocate some space for a max oid string
-// extract current string into space
-// concat new string
-// free up existing oid
-// make a new oid from string
-// delete allocated space
-Oid& Oid::operator+=( const char *a)
-{
- unsigned long n;
-
- if (!a)
- return *this;
-
- if ( *a=='.')
- a++;
- size_t sz = ACE_OS::strlen(a);
-
- if (valid()) {
- n = (smival.value.oid.len *SNMPCHARSIZE) + smival.value.oid.len + 1 + sz;
- char *ptr;
- ACE_NEW_RETURN(ptr, char[ n], *this);
- size_t byte_counter;
- if (OidToStr(&smival.value.oid, n,ptr, byte_counter) > 0) {
- delete [] ptr;
- set_invalid();
- return *this;
- }
-
- if (ACE_OS::strlen(ptr))
- ACE_OS::strcat(ptr,".");
- ACE_OS::strcat(ptr,a);
- if ( smival.value.oid.len !=0) {
- set_invalid();
- delete [] smival.value.oid.ptr;
- smival.value.oid.len = 0;
- }
-
- if (StrToOid( (char *) ptr, &smival.value.oid, byte_counter) < 0) {
- set_invalid();
- }
- delete [] ptr;
- }
- else {
- size_t byte_counter;
- if (StrToOid( (char *) a, &smival.value.oid, byte_counter) < 0) {
- set_invalid();
- }
- }
-
- return *this;
-}
-
-//=============[ int operator == oid,oid ]=================================
-// equivlence operator overloaded
-int operator==( const Oid &lhs, const Oid &rhs)
-{
- // ensure same len, then use left_comparison
- if (rhs.length() != lhs.length())
- return 0;
- if( lhs.left_comparison( rhs.length(), rhs) == 0)
- return 1;
- else
- return 0;
-}
-
-//==============[ operator!=( Oid &x,Oid &y) ]=============================
-//not equivlence operator overloaded
-int operator!=( const Oid &lhs,const Oid &rhs)
-{
- return (!(lhs == rhs));
-}
-
-//==============[ operator<( Oid &x,Oid &y) ]=============================
-// less than < overloaded
-int operator<( const Oid &lhs,const Oid &rhs)
-{
- int result;
-
- // call left_comparison with the current
- // Oidx, Oidy and len of Oidx
- if ((result = lhs.left_comparison( rhs.length(), rhs)) < 0)
- return 1;
- else if (result > 0)
- return 0;
-
- else{
- // if here, equivalent substrings, call the shorter one <
- if (lhs.length() < rhs.length())
- return 1;
- else
- return 0;
- }
-}
-
-//==============[ operator<=( Oid &x,Oid &y) ]=============================
-// less than <= overloaded
-int operator<=( const Oid &x,const Oid &y)
-{
- if ( (x < y) || (x == y) )
- return 1;
- else
- return 0;
-}
-
-//==============[ operator>( Oid &x,Oid &y) ]=============================
-// greater than > overloaded
-int operator>( const Oid &x,const Oid &y)
-{
- // just invert existing <=
- if (!(x<=y))
- return 1;
- else
- return 0;
-}
-
-//==============[ operator>=( Oid &x,Oid &y) ]=============================
-// greater than >= overloaded
-int operator>=( const Oid &x,const Oid &y)
-{
- // just invert existing <
- if (!(x<y))
- return 1;
- else
- return 0;
-}
-
-//===============[Oid::oidval ]=============================================
-// return the WinSnmp oid part
-SmiLPOID Oid::oidval()
-{
- return (SmiLPOID) &smival.value.oid;
-}
-
-//===============[Oid::set_data ]==---=====================================
-// copy data from raw form...
-void Oid::set_data( const unsigned long *raw_oid, const size_t oid_len)
-{
- if (smival.value.oid.len < oid_len) {
- if ( smival.value.oid.ptr) {
- set_invalid();
- }
- }
- init_value(raw_oid, oid_len);
-}
-
-
-//===============[Oid::len ]================================================
-// return the len of the oid
-size_t Oid::length() const
-{
- return smival.value.oid.len;
-}
-
-//===============[Oid::trim( unsigned int) ]============================
-// trim off the n leftmost values of an oid
-// Note!, does not adjust actual space for
-// speed
-void Oid::trim( const size_t n)
-{
- // verify that n is legal
- if ((n<=smival.value.oid.len)&&(n>0)) {
- smival.value.oid.len -= n;
-
- if (smival.value.oid.len == 0) {
- set_invalid();
- }
- }
-}
-
-//===============[Oid::set_invalid() ]====================
-// make this object invalid by resetting all values
-void Oid::set_invalid() {
- delete [] smival.value.oid.ptr;
- smival.value.oid.ptr = 0;
- smival.value.oid.len = 0;
- delete [] iv_str;
- iv_str = 0;
-}
-
-//===============[Oid::set_null() ]====================
-void Oid::set_null() {
- smival.syntax = sNMP_SYNTAX_OID;
- smival.value.oid.ptr = 0;
- smival.value.oid.len = 0;
- iv_str = 0;
-}
-
-//===============[Oid::operator += const unsigned int) ]====================
-// append operator, appends an int
-//
-// allocate some space for a max oid string
-// extract current string into space
-// concat new string
-// free up existing oid
-// make a new oid from string
-// delete allocated space
-Oid& Oid::operator+=( const unsigned long i)
-{
- unsigned long n = (smival.value.oid.len * SNMPCHARSIZE)
- + ( smival.value.oid.len -1) + 1 + 4;
- char buffer[SNMPBUFFSIZE];
-
- // two cases: null oid, existing oid
- if (valid()) {
- // allocate some temporary space
- char *ptr;
- ACE_NEW_RETURN(ptr, char[ n], *this);
- size_t byte_counter;
- if (OidToStr(&smival.value.oid, n, ptr, byte_counter) < 0) {
- set_invalid();
- delete [] ptr;
- return *this;
- }
-
- if (ACE_OS::strlen(ptr))
- ACE_OS::strcat(ptr,".");
-
- if (ACE_OS::sprintf( buffer,"%u",i) != -1) {
- ACE_OS::strcat(ptr, buffer);
- if ( smival.value.oid.ptr ) {
- set_invalid();
- }
- if (StrToOid( (char *) ptr, &smival.value.oid, byte_counter) < 0) {
- set_invalid();
- }
- delete [] ptr;
- }
- }
- else {
- init_value((const unsigned long *)&i, (size_t)1);
- }
-
- return *this;
-}
-
-//===============[Oid::operator += const Oid) ]========================
-// append operator, appends an Oid
-//
-// allocate some space for a max oid string
-// extract current string into space
-// concat new string
-// free up existing oid
-// make a new oid from string
-// delete allocated space
-Oid& Oid::operator+=( const Oid &o)
-{
- SmiLPUINT32 new_oid;
-
- if (o.smival.value.oid.len == 0)
- return *this;
-
- ACE_NEW_RETURN(new_oid,
- SmiUINT32[ smival.value.oid.len + o.smival.value.oid.len], *this);
- if (smival.value.oid.ptr) {
- ACE_OS::memcpy((SmiLPBYTE) new_oid,
- (SmiLPBYTE) smival.value.oid.ptr,
- (size_t) (smival.value.oid.len*sizeof(SmiUINT32)));
-
- delete [] smival.value.oid.ptr;
- }
-
- // out with the old, in with the new...
- smival.value.oid.ptr = new_oid;
-
- ACE_OS::memcpy((SmiLPBYTE) &new_oid[smival.value.oid.len],
- (SmiLPBYTE) o.smival.value.oid.ptr,
- (size_t) (o.smival.value.oid.len*sizeof(SmiUINT32)));
-
- smival.value.oid.len += o.smival.value.oid.len;
- return *this;
-}
-
-// return string portion of the oid
-//
-char * Oid::to_string()
-{
- unsigned long n;
- if (!valid())
- return ""; // be consistent with other classes
-
- // the worst case char len of an oid can be..
- // oid.len*3 + dots in between if each oid is XXXX
- // so.. size = (len*4) + (len-1) + 1 , extra for a null
-
- n = (smival.value.oid.len *SNMPCHARSIZE) + ( smival.value.oid.len -1) + 1 ;
- if (n == 0)
- n = 1; // need at least 1 byte for a null string
-
- // adjust the len of output array in case size was adjusted
- if ( iv_str != 0)
- delete [] iv_str;
- // allocate some space for the output string
- ACE_NEW_RETURN(iv_str, char[ n], "");
-
- // convert to an output string
- size_t how_many;
- if ( valid() && iv_str != 0)
- if (OidToStr(&smival.value.oid,n,iv_str, how_many) < 0)
- return "ERROR: Oid::OidToStr failed";
- return iv_str;
-}
-
-//==============[Oid::suboid( unsigned int start, n) ]=============
-int Oid::suboid(Oid& new_oid, size_t start, size_t how_many)
-{
- if (how_many == 0)
- return 0;
- else
- if (how_many == (size_t)-1)
- how_many = length();
- else
- if (how_many > length())
- how_many = length();
-
- // reset new_oid
- new_oid.set_invalid();
-
- size_t new_size = how_many - start;
- if (new_size == 0)
- new_size++;
- new_oid.smival.value.oid.len = new_size;
- ACE_NEW_RETURN(new_oid.smival.value.oid.ptr,
- SmiUINT32 [ new_oid.smival.value.oid.len], -1);
- // copy source to destination
- ACE_OS::memcpy( (SmiLPBYTE) new_oid.smival.value.oid.ptr,
- (SmiLPBYTE) (smival.value.oid.ptr + start),
- new_size * sizeof(SmiLPBYTE));
- return 0;
-}
-
-
-//=============[Oid::StrToOid( char *string, SmiLPOID dst) ]==============
-// convert a string to an oid
-int Oid::StrToOid( const char *string, SmiLPOID dstOid, size_t& how_many)
-{
- size_t index = 0;
- size_t number = 0;
-
- // make a temp buffer to copy the data into first
- SmiLPUINT32 temp;
- unsigned long nz;
-
- if (string && *string) {
- nz = ACE_OS::strlen( string);
- }
- else {
- dstOid->len = 0;
- dstOid->ptr = 0;
- return -1;
- }
-
- ACE_NEW_RETURN(temp, SmiUINT32[ nz], -1);
- while (*string!=0 && index<nz) {
- // init the number for each token
- number = 0;
- // skip over the dot
- if (*string=='.')
- string++;
-
- // grab a digit token and convert it to a long int
- while (isdigit(*string))
- number=number*10 + *(string++)-'0';
-
- // check for invalid chars
- if (*string!=0 && *string!='.') {
- // Error: Invalid character in string
- delete [] temp;
- return -1;
- }
-
- // stuff the value into the array
- temp[index] = number;
- index++; // bump the counter
- }
-
-
- // get some space for the real oid
- ACE_NEW_RETURN(dstOid->ptr, SmiUINT32[ index], -1);
- // TODO: make tmp autoptr type delete [] temp to prevent leak
-
- // copy in the temp data
- ACE_OS::memcpy((SmiLPBYTE) dstOid->ptr, (SmiLPBYTE) temp,
- (size_t) (index*sizeof(SmiUINT32)));
-
- // set the len of the oid
- dstOid->len = index;
-
- // free up temp data
- delete [] temp;
-
- how_many = index;
- return 0;
-}
-
-
-//===============[Oid::OidCopy( source, destination) ]====================
-// Copy an oid, return bytes copied
-int Oid::OidCopy( SmiLPOID srcOid, SmiLPOID dstOid, size_t& how_many_bytes)
-{
- // check source len ! zero
- if (srcOid->len == 0)
- return -1;
-
- // copy source to destination
- ACE_OS::memcpy((SmiLPBYTE) dstOid->ptr,
- (SmiLPBYTE) srcOid->ptr,
- (size_t) (srcOid->len * sizeof(SmiUINT32)));
-
- //set the new len
- dstOid->len = srcOid->len;
- how_many_bytes = srcOid->len;
-
- return 0;
-}
-
-
-//===============[Oid::left_comparison( n, Oid) ]=================================
-// compare the n leftmost values of two oids ( left-to_right )
-//
-// self == Oid then return 0, they are equal
-// self < Oid then return -1, <
-// self > Oid then return 1, >
-int Oid::left_comparison( const unsigned long n, const Oid &o) const
-{
- unsigned long z;
- unsigned long len = n;
- int reduced_len = 0;
-
- // 1st case they both are null
- if (( len==0)&&( this->smival.value.oid.len==0))
- return 0; // equal
-
- // verify that n is valid, must be >= 0
- if ( len <=0)
- return 1; // ! equal
-
- // only compare for the minimal length
- if (len > this->smival.value.oid.len) {
- len = this->smival.value.oid.len;
- reduced_len = 1;
- }
- if (len > o.smival.value.oid.len) {
- len = o.smival.value.oid.len;
- reduced_len = 1;
- }
-
- z = 0;
- while(z < len) {
- if ( this->smival.value.oid.ptr[z] < o.smival.value.oid.ptr[z])
- return -1; // less than
- if ( this->smival.value.oid.ptr[z] > o.smival.value.oid.ptr[z])
- return 1; // greater than
- z++;
- }
-
- // if we truncated the len then these may not be equal
- if (reduced_len) {
- if (this->smival.value.oid.len < o.smival.value.oid.len)
- return -1;
- if (this->smival.value.oid.len > o.smival.value.oid.len)
- return 1;
- }
- return 0; // equal
-
-}
-
-
-//===============[Oid::left_comparison( n, Oid) ]=================================
-// compare the n rightmost bytes (right-to-left)
-// returns 0, equal
-// returns -1, <
-// returns 1 , >
-int Oid::right_comparison( const unsigned long n, const Oid &o) const
-{
- // oid to compare must have at least the same number
- // of sub-ids to comparison else the argument Oid is
- // less than THIS
- if ( o.length() < n)
- return -1;
-
- // also can't compare argument oid for sub-ids which
- // THIS does not have
- if ( this->length() < n)
- return -1;
-
- int start = (int) this->length();
- int end = (int) start - (int) n;
- for ( int z=start;z< end;z--)
- {
- if ( o.smival.value.oid.ptr[z] < this->smival.value.oid.ptr[z])
- return -1;
- if ( o.smival.value.oid.ptr[z] > this->smival.value.oid.ptr[z])
- return 1;
- }
-
- return 0; // they are equal
-
-}
-
-
-//================[ Oid::valid() ]========================================
-// is the Oid object valid
-// returns validity
-int Oid::valid() const
-{
- return ( smival.value.oid.ptr ? 1 : 0 );
-}
-
-//================[Oid::OidToStr ]=========================================
-// convert an oid to a string
-int Oid::OidToStr( SmiLPOID srcOid, unsigned long size,
- char *string, size_t& how_many_bytes)
-{
- unsigned long index = 0;
- unsigned totLen = 0;
- char szNumber[SNMPBUFFSIZE];
-
- // init the string
- string[totLen] = 0;
-
- // verify there is something to copy
- if (srcOid->len == 0)
- return -1;
-
- // loop through and build up a string
- for (index=0; index < srcOid->len; index++) {
-
- // convert data element to a string
- if (ACE_OS::sprintf( szNumber,"%u", srcOid->ptr[index]) == -1)
- return -1;
-
- // verify len is not over
- if (totLen + ACE_OS::strlen(szNumber) + 1 >= size)
- return -2;
-
- // if not at end, pad with a dot
- if (totLen!=0)
- string[totLen++] = '.';
-
- // copy the string token into the main string
- ACE_OS::strcpy(string + totLen, szNumber);
-
- // adjust the total len
- totLen += ACE_OS::strlen(szNumber);
- }
-
- how_many_bytes = totLen + 1;
- return 0;
-}
-
-
-//================[ general Value = operator ]========================
-SnmpSyntax& Oid::operator=( SnmpSyntax &val)
-{
- // protect against assignment from self
- if ( this == &val )
- return *this;
-
- // blow away old value
- smival.value.oid.len = 0;
- if (smival.value.oid.ptr) {
- set_invalid();
- }
-
- // assign new value
- if (val.valid()) {
- switch (val.get_syntax()) {
- case sNMP_SYNTAX_OID:
- set_data( ((Oid &)val).smival.value.oid.ptr,
- (unsigned int)((Oid &)val).smival.value.oid.len);
- break;
- }
- }
- return *this;
-}
-
-//================[ [] operator ]=====================================
-unsigned long& Oid::operator[](size_t position)
-{
- return smival.value.oid.ptr[position];
-}
-
-//================[ clone ]===========================================
-SnmpSyntax *Oid::clone() const
-{
- return (SnmpSyntax *) new Oid(*this);
-}
diff --git a/ASNMP/asnmp/oid.h b/ASNMP/asnmp/oid.h
deleted file mode 100644
index 16020e374c0..00000000000
--- a/ASNMP/asnmp/oid.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef OID_CLS_
-#define OID_CLS_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// oid.h
-//
-// = DESCRIPTION
-// This class is fully contained and does not rely on or any other
-// SNMP libraries. This class is portable across any platform
-// which supports C++. Ported to ACE by Mike MacFaden mrm@cisco.com
-// and modified for MT. Some API cleanup: collapse constructors,
-// add suboid() method remove unnecessary overload, and update a few
-// names and types to improve clarity.
-//
-// = AUTHOR
-// Peter E Mellquist
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-//----------[ extern C libraries Needed ]---------------------------------
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "asnmp/smival.h" // derived class for all values
-
-class ACE_Export Oid: public SnmpSyntax
- // = TITLE
- // Implement RFC 1155 Object Identifier (OID) datatype
-{
-public:
- Oid( const char * dotted_oid_string = "", size_t size = unsigned(-1) );
- // constructor using a dotted string
-
- Oid ( const Oid &oid);
- // constructor using another oid object
-
- Oid(const unsigned long *raw_oid, size_t oid_len);
- // constructor from raw form
-
- ~Oid();
- // destructor
-
- SmiUINT32 get_syntax();
- // syntax type
-
- Oid& operator=( const Oid &oid);
- // assignment to another oid object overloaded
-
- friend int operator==( const Oid &lhs,const Oid &rhs);
- // equal operator overloaded
-
- friend int operator!=( const Oid &lhs,const Oid &rhs);
- // not equal operator overloaded
-
- friend int operator<( const Oid &lhs,const Oid &rhs);
- // less than < overloaded
-
- friend int operator<=( const Oid &lhs,const Oid &rhs);
- // less than <= overloaded
-
- friend int operator>( const Oid &lhs,const Oid &rhs);
- // greater than > overloaded
-
- friend int operator>=( const Oid &lhs,const Oid &rhs);
- // greater than >= overloaded
-
- Oid& operator+=( const char *a);
- // append operator, appends a string
-
- Oid& operator+=( const unsigned long i);
- // appends an int
-
- Oid& operator+=( const Oid &o);
- // appends an Oid
-
- unsigned long & operator[]( size_t position);
- // allows element access
-
- SmiLPOID oidval();
- // return the WinSnmp oid part
-
- void set_data( const char *dotted_oid_string);
- // reset the data from raw 1 byte format
-
- void set_data( const unsigned long *raw_oid, const size_t oid_len);
- // reset the data from raw 4byte integer format
-
- size_t length() const;
- // return the len of the oid
-
- void trim( const size_t how_many = 1);
- // trim off the n rightmost values of an oid
-
- int suboid(Oid& oid, size_t start = 0, size_t how_many = -1);
- // the equivalent of a substr(new_str, 0, 1)
-
- int left_comparison( const unsigned long n, const Oid &o) const;
- // compare the n leftmost bytes (left-to-right)
- // returns 0, equal
- // returns -1, <
- // returns 1 , >
-
-
- int right_comparison( const unsigned long n, const Oid &o) const;
- // compare the n rightmost bytes (right-to-left)
- // returns 0, equal
- // returns -1, <
- // returns 1 , >
-
- int valid() const;
- // is the Oid object valid
-
- char *to_string();
- // return dotted string value from the right
- // where the user specifies how many positions to print
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- SnmpSyntax& operator=( SnmpSyntax &val);
- // copy an instance of this Value
-
-protected:
- char *iv_str;
- // used for returning oid string
-
- int StrToOid( const char *string, SmiLPOID dstOid, size_t& how_many_bytes);
- // convert a string to an smi oid
-
- int OidCopy( SmiLPOID srcOid, SmiLPOID dstOid, size_t& how_many_bytes);
- // clone an smi oid
-
- int OidToStr(SmiLPOID srcOid, SmiUINT32 size, char *string, size_t& how_many_bytes);
- // convert an smi oid to its string representation
-
- private:
- void set_invalid();
- // release memory, re-init data members
-
- void set_null();
- // initialize object data members
- void init_value( const SmiLPOID srcOid, size_t len);
- void init_value(const unsigned long *raw_oid, size_t oid_len);
-};
-
-#endif //OID_CLS_
diff --git a/ASNMP/asnmp/oid_def.h b/ASNMP/asnmp/oid_def.h
deleted file mode 100644
index bdf46ec4f88..00000000000
--- a/ASNMP/asnmp/oid_def.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef OID_DEF
-#define OID_DEF
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// address.cpp
-//
-// = DESCRIPTION
-// Well known Oids defined in RFC 1215
-//
-// = AUTHOR
-// Peter E Mellquist
-//
-// ============================================================================
-/*===================================================================
-
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-// SMI trap oid def
-class snmpTrapsOid: public Oid {
- public:
- snmpTrapsOid (void):Oid("1.3.6.1.6.3.1.1.5"){};
-};
-
-// SMI Enterprose Oid
-class snmpTrapEnterpriseOid: public Oid {
- public:
- snmpTrapEnterpriseOid(void):Oid("1.3.6.1.6.3.1.1.4.3.0"){};
-};
-
-// SMI Cold Start Oid
-class coldStartOid: public snmpTrapsOid {
- public:
- coldStartOid( void){*this+=".1";};
-};
-
-// SMI WarmStart Oid
-class warmStartOid: public snmpTrapsOid {
- public:
- warmStartOid( void){*this+=".2";};
-};
-
-// SMI LinkDown Oid
-class linkDownOid: public snmpTrapsOid {
- public:
- linkDownOid( void){*this+=".3";};
-};
-
-
-// SMI LinkUp Oid
-class linkUpOid: public snmpTrapsOid {
- public:
- linkUpOid( void){*this+=".4";};
-};
-
-// SMI Authentication Failure Oid
-class authenticationFailureOid: public snmpTrapsOid {
- public:
- authenticationFailureOid( void){*this+=".5";};
-};
-
-// SMI egpneighborloss Oid
-class egpNeighborLossOid: public snmpTrapsOid {
- public:
- egpNeighborLossOid( void){*this+=".6";};
-};
-
-
-#endif // OID_DEF
diff --git a/ASNMP/asnmp/pdu.cpp b/ASNMP/asnmp/pdu.cpp
deleted file mode 100644
index 6ac3acc04d5..00000000000
--- a/ASNMP/asnmp/pdu.cpp
+++ /dev/null
@@ -1,496 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// pdu.cpp
-//
-// = DESCRIPTION
-// Pdu class implementation. Encapsulation of an SMI Protocol
-// Data Unit (PDU) in C++.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/snmp.h"
-#include "asnmp/pdu.h" // include Pdu class definition
-
-ACE_RCSID(asnmp, pdu, "$Id$")
-
-//=====================[ constructor no args ]=========================
-Pdu::Pdu( void): vb_count_(0), error_status_(0), error_index_(0),
-validity_(0), request_id_(0), pdu_type_(0), notify_timestamp_(0),
-output_(0)
-{
-}
-
-//=====================[ constructor with vbs_ and count ]==============
-Pdu::Pdu( Vb* pvbs, const int pvb_count): vb_count_(0), error_index_(0),
-validity_(0), request_id_(0), pdu_type_(0), notify_timestamp_(0),
-output_(0)
-{
- int z; // looping variable
-
- // zero is ok
- if ( pvb_count == 0) {
- validity_ = 1;
- return;
- }
-
- // check for over then max
- if ( pvb_count > MAX_VBS) {
- validity_ = 0;
- return;
- }
-
- // loop through and assign internal vbs_
- for (z = 0;z < pvb_count; z++) {
- validity_ = 0;
- ACE_NEW(vbs_[z], Vb( pvbs[z]));
- validity_ = 1;
- }
-
- // assign the vb count
- vb_count_ = pvb_count;
-
- validity_ = 1;
-}
-
-//=====================[ constructor with another Pdu instance ]========
-Pdu::Pdu( const Pdu &pdu): vb_count_(0),
-error_index_(0), validity_(0), request_id_(0), pdu_type_(0),
-notify_timestamp_(0), output_(0)
-{
- *this = pdu;
- return;
-}
-
-//=====================[ destructor ]====================================
-Pdu::~Pdu()
-{
- delete_all_vbs();
- delete [] output_;
-}
-
-
-//=====================[ assignment to another Pdu object overloaded ]===
-Pdu& Pdu::operator=( const Pdu &pdu)
-{
- int z; // looping variable
-
- // Initialize all mv's
- error_status_ = pdu.error_status_;
- error_index_ = pdu.error_index_;
- request_id_ = pdu.request_id_;
- pdu_type_ = pdu.pdu_type_;
- notify_id_ = pdu.notify_id_;
- notify_timestamp_ = pdu.notify_timestamp_;
- notify_enterprise_ = pdu.notify_enterprise_;
- validity_ = 1;
-
- // free up old vbs_
- for ( z = 0;z < vb_count_; z++)
- delete vbs_[z];
- vb_count_ = 0;
-
- // check for zero case
- if ( pdu.vb_count_ == 0) {
- return *this;
- }
-
- // loop through and fill em up
- for (z = 0; z < pdu.vb_count_; z++) {
- validity_ = 0;
- ACE_NEW_RETURN(vbs_[z], Vb ( *(pdu.vbs_[z])), *this);
- validity_ = 1;
- }
-
- vb_count_ = pdu.vb_count_;
- return *this;
-}
-
-// append operator, appends a string
-Pdu& Pdu::operator+=( Vb &vb)
-{
-
- // do we have room?
- if ( vb_count_ + 1 > MAX_VBS)
- return *this;
-
- // add the new one
- validity_ = 0;
- ACE_NEW_RETURN(vbs_[vb_count_], Vb (vb), *this);
- // set up validity_
- validity_ = 1;
-
- // up the vb count
- vb_count_++;
-
- // return self reference
- return *this;
-
-}
-
-// return fomatted version of this object
-char * Pdu::to_string()
-{
- // determine how big a buffer and allocate it
- const int HEADER_STR = 100;
- unsigned size = HEADER_STR; // header takes up this much room
- int z;
-
- for ( z = 0; z < vb_count_; z++)
- size += ACE_OS::strlen(vbs_[z]->to_string());
-
- ACE_NEW_RETURN(output_, char[size], "");
-
- // print pdu header info
- sprintf(output_, "pdu: valid: %d type:%d, req:%d, cnt: %d, err stat: %d \
- err idx: %d\n", validity_, pdu_type_, (int) request_id_,
- vb_count_, error_status_, error_index_ );
-
- // now append vb pairs in this object
- for ( z = 0; z < vb_count_; z++) {
- ACE_OS::strcat(output_, vbs_[z]->to_string());
- ACE_OS::strcat(output_, "\n\t");
- }
-
- return output_;
-}
-
-
-//=====================[ extract Vbs from Pdu ]==========================
-// how do you know that the caler has enough memory???
-// should I self allocate this in here and require the
-// caller then to free it up at soem later time
-int Pdu::get_vblist( Vb* pvbs, const int pvb_count)
-{
- if ((!pvbs) || ( pvb_count < 0) || ( pvb_count > vb_count_))
- return 0;
-
- // loop through all vbs_ and assign to params
- int z;
- for (z = 0; z < pvb_count; z++)
- pvbs[z] = *vbs_[z];
-
- return 1;
-
-}
-
-//=====================[ deposit Vbs ]===================================
-int Pdu::set_vblist( Vb* pvbs, const int pvb_count)
-{
-
- // if invalid then don't destroy
- if ((!pvbs) || ( pvb_count < 0) || ( pvb_count > MAX_VBS))
- return 0;
-
- // free up current vbs_
- int z;
- for ( z = 0; z < vb_count_; z++)
- delete vbs_[z];
- vb_count_ = 0;
-
- // check for zero case
- if ( pvb_count == 0) {
- validity_ = 1;
- error_status_ = 0;
- error_index_ = 0;
- request_id_ = 0;
- return 0;
- }
-
-
- // loop through all vbs_ and reassign them
- for ( z = 0; z < pvb_count; z++) {
- validity_ = 0;
- ACE_NEW_RETURN(vbs_[z], Vb (pvbs[z]), 0);
- validity_ = 1;
- }
-
- vb_count_ = pvb_count;
-
- // clear error status and index since no longer valid
- // request id may still apply so don't reassign it
- error_status_ = 0;
- error_index_ = 0;
- validity_ = 1;
-
- return 1;
-}
-
-//===================[ get a particular vb ]=============================
-// here the caller has already instantiated a vb object
-// index is zero based
-int Pdu::get_vb( Vb &vb, const int index) const
-{
- // can't have an index less than 0
- if ( index < 0)
- return 0;
-
- // can't ask for something not there
- if ( index > (vb_count_ - 1))
- return 0;
-
- // asssign it
- vb = *vbs_[index];
-
- return 1;
-}
-
-//===================[ set a particular vb ]=============================
-int Pdu::set_vb( Vb &vb, const int index)
-{
- // can't set a vb at index less than 0
- if ( index < 0)
- return 0;
-
- // can't ask for something not there
- if ( index > (vb_count_ - 1))
- return 0;
-
- // delete what is there
- delete vbs_[index];
-
- // assign it
- validity_ = 0;
- ACE_NEW_RETURN(vbs_[index], Vb (vb), 0);
- validity_ = 1;
-
- return 1;
-
-}
-
-//=====================[ return number of vbs_ ]==========================
-int Pdu::get_vb_count() const
-{
- return vb_count_;
-}
-
-//=====================[ return the error status ]=======================
-int Pdu::get_error_status() const
-{
- return error_status_;
-}
-
-char *Pdu::agent_error_reason()
-{
- int pdu_err = get_error_status();
- if (pdu_err == 0) // any real error?
- return "not in error state";
-
- int n_vbs = get_vb_count();
- Vb bad;
- get_vb(bad, get_error_index() -1); // not zero based??
- char *pmsg = Snmp::error_string(get_error_status());
- char *id = bad.to_string_oid();
- char *val = bad.to_string_value();
- const int HDR_SZ = 100;
-
- if (!output_) {
- int size = ACE_OS::strlen(pmsg) + ACE_OS::strlen(id) +
- ACE_OS::strlen(val);
- ACE_NEW_RETURN(output_, char[size + HDR_SZ], "");
- }
-
- ACE_OS::sprintf(output_,
-"FAIL PDU REPORT: pdu id: %d vb cnt: %d vb idx: %d \n\
-msg: %s vb oid: %s value: %s",
- get_request_id(), n_vbs, get_error_index(), pmsg, id, val);
-
- return output_;
-}
-
-//=====================[ set the error status ]==========================
-// friend
-void set_error_status( Pdu *pdu, const int status)
-{
- if (pdu)
- pdu->error_status_ = status;
-}
-
-//=====================[ return the error index ]========================
-int Pdu::get_error_index() const
-{
- return error_index_;
-}
-
-//=====================[ set the error index ]===========================
-// friend
-void set_error_index( Pdu *pdu, const int index)
-{
- if (pdu)
- pdu->error_index_ = index;
-}
-
-//=====================[ clear error status ]=============================
-void clear_error_status( Pdu *pdu)
-{
- if (pdu)
- pdu->error_status_ = 0;
-}
-
-//=====================[ clear error index ]==============================
-void clear_error_index( Pdu *pdu)
-{
- if (pdu)
- pdu->error_index_ = 0;
-}
-
-//=====================[ return the request id ]==========================
-unsigned long Pdu::get_request_id() const
-{
- return request_id_;
-}
-
-//=====================[ set the request id ]=============================
-// friend function
-void set_request_id( Pdu *pdu, const unsigned long rid)
-{
- if (pdu)
- pdu->request_id_ = rid;
-}
-
-//=====================[ returns validity_ of Pdu instance ]===============
-int Pdu::valid() const
-{
- return validity_;
-}
-
-//=====================[ get the pdu type ]===============================
-unsigned short Pdu::get_type()const
-{
- return pdu_type_;
-}
-
-// set the pdu type
-void Pdu::set_type( unsigned short type)
-{
- pdu_type_ = type;
-}
-
-
-// trim off the last vb
-int Pdu::trim(const int p)
-{
- int lp = p;
-
- // verify that lp is legal
- if ( lp < 0 || lp > vb_count_)
- return 0;
-
- while ( lp != 0) {
- if ( vb_count_ > 0) {
- delete vbs_[vb_count_ - 1];
- vb_count_--;
- }
- lp--;
- }
- return 1;
-}
-
-
-
-// delete a Vb anywhere within the Pdu
-int Pdu::delete_vb( const int p)
-{
- // position has to be in range
- if (( p < 0) || ( p > (vb_count_ - 1)))
- return 0;
-
- // safe to remove it
- delete vbs_[ p];
-
- for ( int z=p;z < (vb_count_-1);z++) {
- vbs_[z] = vbs_[z+1];
- }
- vb_count_--;
-
- return 1;
-}
-
-void Pdu::delete_all_vbs()
-{
- for ( int z = 0; z < vb_count_; z++)
- delete vbs_[z];
- vb_count_ = 0;
-}
-
-
-// set notify timestamp
-void Pdu::set_notify_timestamp( const TimeTicks & timestamp)
-{
- notify_timestamp_ = timestamp;
-}
-
-
-// get notify timestamp
-void Pdu::get_notify_timestamp( TimeTicks & timestamp) const
-{
- timestamp = notify_timestamp_;
-}
-
-// set the notify id
-void Pdu::set_notify_id( const Oid id)
-{
- notify_id_ = id;
-}
-
-// get the notify id
-void Pdu::get_notify_id( Oid &id) const
-{
- id = notify_id_;
-}
-
-// set the notify enterprise
-void Pdu::set_notify_enterprise( const Oid &enterprise)
-{
- notify_enterprise_ = enterprise;
-}
-
-// get the notify enterprise
-void Pdu::get_notify_enterprise( Oid & enterprise) const
-{
- enterprise = notify_enterprise_;
-}
-
-// ------ class VbIter -------------------
-VbIter::VbIter(Pdu& pdu): idx_(-1), pdu_(&pdu)
-{
-}
-
-// returns 1 if ok, else 0 if none left
-int VbIter::next(Vb& vb)
-{
- if (idx_ == -1) {
- idx_ = 0;
- pdu_->get_vb(vb, idx_++);
- return 1;
- }
- else
- if (idx_ < pdu_->get_vb_count()) {
- pdu_->get_vb(vb, idx_++);
- return 1;
- }
- return 0; // non left
-}
diff --git a/ASNMP/asnmp/pdu.h b/ASNMP/asnmp/pdu.h
deleted file mode 100644
index e748ac5b528..00000000000
--- a/ASNMP/asnmp/pdu.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef PDU_CLS_
-#define PDU_CLS_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// pdu.h
-//
-// = DESCRIPTION
-// Pdu class definition. Encapsulation of an SMI Protocol
-// Data Unit (PDU) aka Packet in C++.
-//
-// = AUTHOR
-// Peter E Mellquist original code
-// Michael MacFaden mrm@cisco.com ACE port, add iterator class for pdus
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-// TODO: this needs to be moved into the CLASS and modifyable at runtime
-// TODO: define an iterator object to traverse the vbs in a pdu
-
-#define MAX_VBS 25
-#include "asnmp/vb.h" // include Vb class definition
-
-class ACE_Export Pdu
- // = TITLE
- // Protocol Data Unit (PDU) concrete class. An abstraction of the
- // data packet used to by two SNMP sessions to communicate.
-{
-public:
- Pdu( void);
- // constructor no args
-
- Pdu( Vb* pvbs, const int pvb_count);
- // constructor with vbs and count
-
- Pdu( const Pdu &pdu);
- // constructor with another Pdu instance
-
- ~Pdu();
- // destructor
-
- Pdu& operator=( const Pdu &pdu);
- // assignment to another Pdu object overloaded
-
- Pdu& operator+=( Vb &vb);
- // append a vb to the pdu
-
- // TODO: add Pdu& operator-=(const Vb &vb);
-
- int get_vblist( Vb* pvbs, const int pvb_count);
- // extract all Vbs from Pdu
-
- int set_vblist( Vb* pvbs, const int pvb_count);
- // deposit all Vbs to Pdu
-
- int get_vb( Vb &vb, const int index = 0) const;
- // get a particular vb
- // where 0 is the first vb
-
- int set_vb( Vb &vb, const int index);
- // set a particular vb
- // where 0 is the first vb
-
- int get_vb_count() const;
- // return number of vbs
-
- int get_error_status() const;
- // return the error status
-
- char *agent_error_reason();
- // return the complete error info from this pdu
-
- friend void set_error_status( Pdu *pdu, const int status);
- // set the error status
-
- int get_error_index() const;
- // return the error index
-
- friend void set_error_index( Pdu *pdu, const int index);
- // set the error index
-
- friend void clear_error_status( Pdu *pdu);
- // clear error status
-
- friend void clear_error_index( Pdu *pdu);
- // clear error index
-
- unsigned long get_request_id() const;
- // return the request id
-
- friend void set_request_id( Pdu *pdu, const unsigned long rid);
- // set the request id
-
- unsigned short get_type() const;
- // get the pdu type
-
- void set_type( unsigned short type);
- // set the pdu type
-
- int valid() const;
- // returns validity of Pdu instance
-
- int trim(const int count=1);
- // trim off count vbs from the end of the vb list
-
- int delete_vb( const int position);
- // delete a Vb anywhere within the Pdu
-
- void delete_all_vbs();
- // delete_all vbs in pdu
-
- void set_notify_timestamp( const TimeTicks & timestamp);
- // set notify timestamp
-
- void get_notify_timestamp( TimeTicks & timestamp) const;
- // get notify timestamp
-
- void set_notify_id( const Oid id);
- // set the notify id
-
- void get_notify_id( Oid &id) const;
- // get the notify id
-
- void set_notify_enterprise( const Oid &enterprise);
- // set the notify enterprise
-
- void get_notify_enterprise( Oid & enterprise) const;
- // get the notify enterprise
-
- char *to_string();
- // return fomatted version of this object
-
-
- protected:
- Vb *vbs_[MAX_VBS];
- // pointer to array of Vbs
-
- int vb_count_;
- // count of Vbs
-
- int error_status_;
- // SMI error status
-
- int error_index_;
- // SMI error index
-
- int validity_;
- // valid boolean status of object construction
- unsigned long request_id_;
- // SMI request id
-
- unsigned short pdu_type_;
- // derived at run time based on request type
-
- TimeTicks notify_timestamp_;
- // a timestamp associated with an infor
- // for notify Pdu objects only
- // traps & notifies
-
- Oid notify_id_;
- // an id
-
- Oid notify_enterprise_;
-
- private:
- char *output_;
- // buffer for to_string()
-};
-
-
-class VbIter
- // = TITLE
- // Utility class to iterate once through a PDU varbind list
-{
- public:
- VbIter(Pdu& pdu);
- // default constructor
-
- int next(Vb& vb);
- // returns 1 if ok, else 0 if none left
-
- private:
- VbIter(const VbIter&);
- // disallow copy constructor use
-
- int idx_;
- // current object in list
-
- Pdu *pdu_;
- // ptr to pdu being interated over
-};
-
-#endif //PDU_CLS_
-
diff --git a/ASNMP/asnmp/sagent.cpp b/ASNMP/asnmp/sagent.cpp
deleted file mode 100644
index fc56a2c728f..00000000000
--- a/ASNMP/asnmp/sagent.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// sagent.cpp
-//
-// = DESCRIPTION
-// SNMP agent class definition. The sagent class provides an object oriented
-// approach for creating SNMP Agents. The sagent class is an encapsulation
-// of SNMP sessions, gets, sets, etc.
-//
-// = AUTHOR
-// Michael R. MacFaden
-//
-// ============================================================================
-#include "ace/Reactor.h"
-#include "ace/SOCK_Dgram.h"
-
-#include "asnmp/oid.h" // snmp++ oid class
-#include "asnmp/vb.h" // snbmp++ vb class
-#include "asnmp/target.h" // snmp++ target class
-#include "asnmp/pdu.h" // snmp++ pdu class
-#include "asnmp/snmperrs.h" // error macros and strings
-#include "asnmp/address.h" // snmp++ address class defs
-#include "asnmp/snmp.h" // manager snmp interface
-#include "asnmp/sagent.h" // agent interface
-#include "asnmp/transaction.h" // convert from wire to API
-
-ACE_RCSID(asnmp, sagent, "$Id$")
-
-sagent::sagent(unsigned short port): Snmp(port)
-{
- ACE_TRACE("sagent::sagent(short)");
-}
-
-sagent::~sagent()
-{
- ACE_TRACE("sagent::~sagent");
-}
-
-int sagent::handle_input(ACE_HANDLE fd)
-{
- ACE_TRACE("sagent::handle_input");
-
- transaction tr(iv_snmp_session_); // this section needs a better design
- tr.handle_input(fd);
- char rcv_com_str[MAX_COMM_STR_LEN];
- if (tr.result(pdu_, rcv_com_str) < 0)
- return 0;
- OctetStr community(rcv_com_str);
- const ACE_INET_Addr &ta = tr.get_from_addr();
- char buf_tmp[MAXHOSTNAMELEN + 1];
- ta.addr_to_string (buf_tmp, MAXHOSTNAMELEN);
- UdpAddress ra(buf_tmp);
- tgt_.set_address(ra);
-
-
- // process msg here by calling subclass's implementation
- switch (pdu_.get_type()){
- case sNMP_PDU_GET:
- tgt_.set_read_community(community);
- this->handle_get(pdu_, tgt_);
- break;
-
- case sNMP_PDU_GETNEXT:
- tgt_.set_read_community(community);
- this->handle_get_next(pdu_, tgt_);
- break;
-
- case sNMP_PDU_SET:
- tgt_.set_write_community(community);
- this->handle_set(pdu_, tgt_);
- break;
-
- default:
- ACE_ASSERT(0);
- }
- return 0;
-}
-
-ACE_HANDLE sagent::get_handle() const
-{
- ACE_TRACE("sagent::get_handle");
- return iv_snmp_session_.get_handle();
-}
-
-int sagent::respond(Pdu& pdu,UdpTarget& tgt)
-{
- pdu.set_type(sNMP_PDU_RESPONSE);
- transaction tr(pdu, tgt, iv_snmp_session_);
- tr.send();
- return 0;
-}
diff --git a/ASNMP/asnmp/sagent.h b/ASNMP/asnmp/sagent.h
deleted file mode 100644
index e97d7839be5..00000000000
--- a/ASNMP/asnmp/sagent.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef SAGENT_CLS_
-#define SAGENT_CLS_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// sagent.h
-//
-// = DESCRIPTION
-// SNMP agent class defintion. The sagent class provides an object oriented
-// approach for creating SNMP Agents. The sagent class is an encapsulation of SNMP
-// sessions, gets, sets, etc.
-//
-// = AUTHOR
-// Michael R. MacFaden
-//
-// ============================================================================
-#include "ace/Reactor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Dgram.h"
-
-#include "asnmp/oid.h" // snmp++ oid class
-#include "asnmp/vb.h" // snbmp++ vb class
-#include "asnmp/target.h" // snmp++ target class
-#include "asnmp/pdu.h" // snmp++ pdu class
-#include "asnmp/snmperrs.h" // error macros and strings
-#include "asnmp/address.h" // snmp++ address class defs
-#include "asnmp/snmp.h" // snmp interface
-
-// sagent - supports Version 1 operations in blocking mode
-
-#define DEF_AGENT_PORT (161)
-
-class ACE_Export sagent : public ACE_Event_Handler, Snmp
- // = TITLE
- // Concrete class sagent defines the session and interface to
- // communicate with another SNMP Version 1 manager
-{
- public:
-
-
- // override the next three methods (callbacks) to implment your agent
- //
-
- virtual int handle_get( Pdu &pdu, UdpTarget &target) = 0;
- // retrieve data from a peer agent for a given list of oid values
-
- virtual int handle_get_next( Pdu &pdu, UdpTarget &target) = 0;
- // retrieve data lexically adjacent to the oids specified in the pdu
- // from the peer agent
-
- virtual int handle_set( Pdu &pdu, UdpTarget &target) = 0;
- // set data in the agent from the list of oids in the pdu
-
- virtual int handle_input(ACE_HANDLE);
- // new pdu received from mgr (reactor calls this)
-
- virtual ACE_HANDLE get_handle() const;
- // retrieve io descriptor (reactor uses this)
-
- int respond(Pdu& pdu, UdpTarget& tgt);
- // send a response pdu to the mgr
-
- protected:
- sagent(unsigned short port = DEF_AGENT_PORT);
- virtual ~sagent();
-
-private:
- sagent(const sagent&);
- Pdu pdu_; // current input pdu
- UdpTarget tgt_; // addr & com strs
-};
-
-#endif //SAGENT_CLS_
-
diff --git a/ASNMP/asnmp/smi.h b/ASNMP/asnmp/smi.h
deleted file mode 100644
index 09b3927b220..00000000000
--- a/ASNMP/asnmp/smi.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef SMIDEF_
-#define SMIDEF_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// smi.h
-//
-// = DESCRIPTION
-// Address class definition. Encapsulates various network
-// addresses into easy to use, safe and portable classes.
-//
-// = AUTHOR
-// ??
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-
-=====================================================================*/
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-//----------[ ASN/BER Base Types ]-----------------------------------------
-// Basic Encoding Rules (BER)
-// (used in forming SYNTAXes and certain SNMP types/values)
-#define aSN_UNIVERSAL (0x00)
-#define aSN_APPLICATION (0x40)
-#define aSN_CONTEXT (0x80)
-#define aSN_PRIVATE (0xC0)
-#define aSN_PRIMITIVE (0x00)
-#define aSN_CONSTRUCTOR (0x20)
-
-//------[ SNMP ObjectSyntax Values ]---------------------------------------
-#define sNMP_SYNTAX_SEQUENCE (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x10)
-
-
-//-------------------------------------------------------------------------
-// These values are used in the "syntax" member
-// of the smiVALUE structure which follows.
-// Note: UInt32 is indistinguishable from Gauge32 per SNMPv2 Draft Standard
-// NsapAddr is obsoleted as unique SMI type per SNMPv2 Draft Standard
-#define sNMP_SYNTAX_INT (aSN_UNIVERSAL | aSN_PRIMITIVE | 0x02)
-#define sNMP_SYNTAX_BITS (aSN_UNIVERSAL | aSN_PRIMITIVE | 0x03)
-#define sNMP_SYNTAX_OCTETS (aSN_UNIVERSAL | aSN_PRIMITIVE | 0x04)
-#define sNMP_SYNTAX_NULL (aSN_UNIVERSAL | aSN_PRIMITIVE | 0x05)
-#define sNMP_SYNTAX_OID (aSN_UNIVERSAL | aSN_PRIMITIVE | 0x06)
-#define sNMP_SYNTAX_INT32 sNMP_SYNTAX_INT
-#define sNMP_SYNTAX_IPADDR (aSN_APPLICATION | aSN_PRIMITIVE | 0x00)
-#define sNMP_SYNTAX_CNTR32 (aSN_APPLICATION | aSN_PRIMITIVE | 0x01)
-#define sNMP_SYNTAX_GAUGE32 (aSN_APPLICATION | aSN_PRIMITIVE | 0x02)
-#define sNMP_SYNTAX_TIMETICKS (aSN_APPLICATION | aSN_PRIMITIVE | 0x03)
-#define sNMP_SYNTAX_OPAQUE (aSN_APPLICATION | aSN_PRIMITIVE | 0x04)
-#define sNMP_SYNTAX_CNTR64 (aSN_APPLICATION | aSN_PRIMITIVE | 0x06)
-#define sNMP_SYNTAX_UINT32 (aSN_APPLICATION | aSN_PRIMITIVE | 0x07)
-
-//-------------------------------------------------------------------------
-
-//---------------[ Exception conditions for SNMPv2 ]-----------------------
-// support SNMP v2
-#define sNMP_SYNTAX_NOSUCHOBJECT (aSN_CONTEXT | aSN_PRIMITIVE | 0x00)
-#define sNMP_SYNTAX_NOSUCHINSTANCE (aSN_CONTEXT | aSN_PRIMITIVE | 0x01)
-#define sNMP_SYNTAX_ENDOFMIBVIEW (aSN_CONTEXT | aSN_PRIMITIVE | 0x02)
-
-
-//--------------[ different types of PDU's ]-------------------------------
-#define sNMP_PDU_GET (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x0)
-#define sNMP_PDU_GETNEXT (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x1)
-#define sNMP_PDU_RESPONSE (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x2)
-#define sNMP_PDU_SET (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x3)
-#define sNMP_PDU_V1TRAP (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x4)
-#define sNMP_PDU_GETBULK (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x5)
-#define sNMP_PDU_INFORM (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x6)
-#define sNMP_PDU_TRAP (aSN_CONTEXT | aSN_CONSTRUCTOR | 0x7)
-
-
-//------[ smi typedefs ]---------------------------------------------------
-// SNMP-related types from RFC1442 (SMI)
-
-typedef unsigned char SmiBYTE, *SmiLPBYTE;
-
-//-------------------------------------------------------------------------
-// SNMP-related types from RFC1442 (SMI)
-
-// int
-typedef long SmiINT, *SmiLPINT;
-
-// int 32
-typedef SmiINT SmiINT32, *SmiLPINT32;
-
-// unit32
-typedef unsigned long SmiUINT32, *SmiLPUINT32;
-
-// octet struct
-typedef struct {
- SmiUINT32 len;
- SmiLPBYTE ptr;} SmiOCTETS, *SmiLPOCTETS;
-
-// bits
-typedef SmiOCTETS SmiBITS, *SmiLPBITS;
-
-// SMI oid struct
-typedef struct {
- SmiUINT32 len;
- SmiLPUINT32 ptr;} SmiOID, *SmiLPOID;
-
-// ipaddr
-typedef SmiOCTETS SmiIPADDR, *SmiLPIPADDR;
-
-// 32bit counter
-typedef SmiUINT32 SmiCNTR32, *SmiLPCNTR32;
-
-// gauge
-typedef SmiUINT32 SmiGAUGE32, *SmiLPGAUGE32;
-
-// timeticks
-typedef SmiUINT32 SmiTIMETICKS, *SmiLPTIMETICKS;
-
-// opaque
-typedef SmiOCTETS SmiOPAQUE, *SmiLPOPAQUE;
-
-// nsapaddr
-typedef SmiOCTETS SmiNSAPADDR, *SmiLPNSAPADDR;
-
-// 64 bit counter
-typedef struct {
- SmiUINT32 hipart;
- SmiUINT32 lopart;
-} SmiCNTR64, *SmiLPCNTR64;
-
-#endif // SMIDEF_
-
-
diff --git a/ASNMP/asnmp/smival.h b/ASNMP/asnmp/smival.h
deleted file mode 100644
index 6e7c8c4c1b9..00000000000
--- a/ASNMP/asnmp/smival.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef SMIVALUE_
-#define SMIVALUE_
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// smival.h
-//
-// = DESCRIPTION
-// SMIValue class definition. Superclass for the various types
-// of SNMP values (Address, Oid, Octet, etc.). Provides
-// only a few functions, most info is in subclass.
-//
-// = AUTHOR
-// Jeff Meyer
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-//----[ includes ]-----------------------------------------------------
-#include "asnmp/smi.h"
-
-//----[ macros ]-------------------------------------------------------
-
-//======================================================================
-// SMI value structure conforming with SMI RFC
-//
-typedef struct { /* smiVALUE portion of VarBind */
- SmiUINT32 syntax; /* Insert SNMP_SYNTAX_<type> */
- union {
- SmiINT sNumber; /* SNMP_SYNTAX_INT
- SNMP_SYNTAX_INT32 */
- SmiUINT32 uNumber; /* SNMP_SYNTAX_UINT32
- SNMP_SYNTAX_CNTR32
- SNMP_SYNTAX_GAUGE32
- SNMP_SYNTAX_TIMETICKS */
- SmiCNTR64 hNumber; /* SNMP_SYNTAX_CNTR64 */
- SmiOCTETS string; /* SNMP_SYNTAX_OCTETS
- SNMP_SYNTAX_BITS
- SNMP_SYNTAX_OPAQUE
- SNMP_SYNTAX_IPADDR
- SNMP_SYNTAX_NSAPADDR */
- SmiOID oid; /* SNMP_SYNTAX_OID */
- SmiBYTE empty; /* SNMP_SYNTAX_NULL
- SNMP_SYNTAX_NOSUCHOBJECT
- SNMP_SYNTAX_NOSUCHINSTANCE
- SNMP_SYNTAX_ENDOFMIBVIEW */
- } value;
-} SmiVALUE, *SmiLPVALUE;
-
-// An "abstract" (pure virtual) class that serves as the base class
-// for all specific SNMP syntax types.
-//
-class ACE_Export SnmpSyntax {
-
-public:
- virtual char * to_string() = 0;
- // virtual function for getting a printable ASCII value for any SNMP Value
-
- virtual SmiUINT32 get_syntax() = 0;
- // return the current syntax
-
- virtual SnmpSyntax * clone() const = 0;
- // virtual clone operation for creating a new Value from an existing
- // value. The caller MUST use the delete operation on the return
- // value when done.
-
- virtual ~SnmpSyntax() {};
- // virtual destructor to ensure deletion of derived classes...
-
- virtual SnmpSyntax& operator=( SnmpSyntax &/*val*/)
- {
- return *this;
- }
- // overloaded assignment operator
- // This should be pure virtual, but WinNT compiler
- // complains about unresolved reference at link time.
-
- virtual int valid() const = 0;
- // return validity of value object.
-
-protected:
- SmiVALUE smival;
-};
-
-#endif // SMIVALUE_
diff --git a/ASNMP/asnmp/snmp.cpp b/ASNMP/asnmp/snmp.cpp
deleted file mode 100644
index f6ad69fb25a..00000000000
--- a/ASNMP/asnmp/snmp.cpp
+++ /dev/null
@@ -1,283 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// snmp.cpp
-//
-// = DESCRIPTION
-// The basic SNMPv1 API - blocking version using UDP/IPv4 transport
-// and addressing.
-//
-// = AUTHOR
-// Peter E Mellquist class design/orig code
-// Michael R MacFaden mrm@cisco.com / rework API, use ACE facilities
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-
-#define INCLUDE_SNMP_ERR_STRINGS_
-
-//----[ snmp++ includes ]----------------------------------------------
-#include "asnmp/snmp.h" // class def for this module
-#include "asnmp/oid.h" // class def for oids
-#include "asnmp/enttraps.h" // class def for well known trap oids
-#include "asnmp/vb.h" // class def for vbs
-#include "asnmp/address.h" // class def for addresses
-#include "asnmp/wpdu.h" // adapter to cmu_library / wire protocol
-#include "asnmp/transaction.h" // synchronous transaction processor
-
-ACE_RCSID(asnmp, snmp, "$Id$")
-
-const coldStartOid coldStart;
-const warmStartOid warmStart;
-const linkDownOid linkDown;
-const linkUpOid linkUp;
-const authenticationFailureOid authenticationFailure;
-const egpNeighborLossOid egpNeighborLoss;
-const snmpTrapEnterpriseOid snmpTrapEnterprise;
-
-char Snmp::host_name_[MAXHOSTNAMELEN] = "";
-
-Snmp::Snmp(unsigned short port): result_(0), construct_status_(SNMP_CLASS_ERROR), last_transaction_status_(0)
-{
- ACE_TRACE("Snmp::Snmp");
-
- ACE_INET_Addr addr(port); // any port,address is ok
- if (iv_snmp_session_.open(addr) < 0) {
- last_transaction_status_ = errno; // open udp/ipv4 socket
- ACE_DEBUG((LM_DEBUG, "Snmp::snmp::open port %d failed", port));
- return;
- }
-
- // initial request id randomly generated then monotonically incremented
- req_id_ = (unsigned) ACE_OS::time(0);
-
- construct_status_ = SNMP_CLASS_SUCCESS;
- return;
-}
-
-Snmp::~Snmp()
-{
- ACE_TRACE("Snmp::~Snmp");
- iv_snmp_session_.close();
-}
-
-int Snmp::valid() const
-{
- return construct_status_;
-}
-
-// given error code, return string definition
-// class version
-// static
-char * Snmp::error_string(int last_transaction_status_)
-{
- ACE_TRACE("Snmp::error_string");
-
- return ((last_transaction_status_ < 0) ?
- ((last_transaction_status_ < MAX_NEG_ERROR)?
- nErrs[ abs(MAX_NEG_ERROR) + 1] : nErrs[abs(last_transaction_status_)]):
- ((last_transaction_status_ > MAX_POS_ERROR)?
- pErrs[MAX_POS_ERROR+1] : pErrs[last_transaction_status_]));
-}
-
-// instance version
-char * Snmp::error_string()
-{
- return Snmp::error_string(last_transaction_status_);
-}
-
-void Snmp::check_default_port(UdpTarget& target, unsigned short port)
-{
- UdpAddress tmp;
- target.get_address(tmp);
- if (tmp.get_port() == 0) {
- tmp.set_port(port);
- target.set_address(tmp);
- }
-}
-
-int Snmp::run_transaction(Pdu& pdu, UdpTarget& target)
-{
- int rc, done = 0;
-
- // 1. set unique id to match this packet on return
- size_t hold_req_id = req_id_++;
- set_request_id(&pdu, hold_req_id);
-
- // 2. write request to agent
- transaction trans(pdu, target, iv_snmp_session_);
-
- // this call blocks while it attempts to retrieve agent response
- while (!done) {
- if ((rc = trans.run()) < 0) {
- last_transaction_status_ = rc;
- return rc;
- }
- else {
- trans.result(pdu);
- // verify this is the pdu we are after
- if (pdu.get_request_id() == hold_req_id)
- done = 1 ;
- }
- }
- return 0;
-}
-
-int Snmp::run_transaction(Pdu& pdu, UdpTarget& target, Snmp_Result * cb)
-{
- if (!cb)
- return run_transaction(pdu, target);
-
- // 1. set unique id to match this packet on return
- hold_req_id_ = req_id_++;
- set_request_id(&pdu, hold_req_id_);
- pdu_ = &pdu;
- result_ = cb;
-
- // 2. write request to agent
- transaction * trans = new transaction(pdu, target, iv_snmp_session_);
- return trans->run(this);
-}
-
-void Snmp::result(transaction *t, int rc)
-{
- t->result(*pdu_);
- // verify this is the pdu we are after
- if (pdu_->get_request_id() == hold_req_id_)
- {
- last_transaction_status_ = rc;
- delete t;
- result_->result(this, rc);
- }
- else
- {
- rc = t->run(this);
- if (rc < 0)
- {
- delete t;
- result_->result(this, rc);
- }
- }
-}
-
-int Snmp::validate_args(const Pdu& pdu, const UdpTarget& target) const
-{
- // 0. check object status
- if (construct_status_ != SNMP_CLASS_SUCCESS)
- return construct_status_;
-
- // 1. check args passed
- if ( !pdu.valid() || !target.valid() )
- return SNMP_INVALID_ARGS;
- return 0;
-}
-
-// SYNC API: write request to wire then wait for reply or timeout
-int Snmp::get( Pdu &pdu, UdpTarget &target, Snmp_Result * cb)
-{
- ACE_TRACE("Snmp::get");
- int rc;
- if ((rc = validate_args(pdu, target)) != 0)
- return rc;
-
- pdu.set_type( sNMP_PDU_GET);
- check_default_port(target);
- return run_transaction(pdu, target, cb);
-}
-
-int Snmp::get_next( Pdu &pdu, UdpTarget &target, Snmp_Result * cb)
-{
- ACE_TRACE("Snmp::get_next");
- int rc;
- if ((rc = validate_args(pdu, target)) != 0)
- return rc;
-
- pdu.set_type( sNMP_PDU_GETNEXT);
- check_default_port(target);
- return run_transaction(pdu, target, cb);
-}
-
-int Snmp::set( Pdu &pdu, UdpTarget &target, Snmp_Result * cb)
-{
- ACE_TRACE("Snmp::set");
- int rc;
- if ((rc = validate_args(pdu, target)) != 0)
- return rc;
-
- pdu.set_type( sNMP_PDU_SET);
- check_default_port(target);
- return run_transaction(pdu, target, cb);
-}
-
-// one way, best of luck, non-confirmed alert
-int Snmp::trap( Pdu &pdu, UdpTarget &target)
-{
- ACE_TRACE("Snmp::trap");
- int rc;
- if ((rc = validate_args(pdu, target)) != 0)
- return rc;
-
- pdu.set_type( sNMP_PDU_V1TRAP);
- check_default_port(target, DEF_TRAP_PORT);
-
- // 2. write request to agent
- transaction trans(pdu, target, iv_snmp_session_);
- if (trans.send() > 0) // expect number of bytes sent on
- return 0;
-
- last_transaction_status_ = SNMP_CLASS_INTERNAL_ERROR;
- return -1;
-}
-
-// Allow host name to be overriden. Supplying a null pointer or zero
-// length string removes the override.
-void Snmp::override_host_name(const char* name)
-{
- if (name)
- {
- ACE_OS::strncpy(host_name_, name, MAXHOSTNAMELEN);
- host_name_[MAXHOSTNAMELEN-1] = 0;
- }
- else {
- host_name_[0] = 0;
- }
-}
-
-// Returns the current host name in the supplied string.
-void Snmp::get_host_name(char* name, int len)
-{
- if (name)
- {
- if (ACE_OS::strlen(host_name_) > 0)
- {
- ACE_OS::strncpy(name, host_name_, len);
- name[len-1] = 0;
- }
- else
- {
- if (ACE_OS::hostname(name, len-1) == -1)
- name[0] = 0;
- }
- }
-}
-
-Snmp_Result::~Snmp_Result() {}
diff --git a/ASNMP/asnmp/snmp.h b/ASNMP/asnmp/snmp.h
deleted file mode 100644
index d57a9711324..00000000000
--- a/ASNMP/asnmp/snmp.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef SNMP_CLS_
-#define SNMP_CLS_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// snmp.h
-//
-// = DESCRIPTION
-// SNMP class defintion. The Snmp class provides an object oriented
-// approach to SNMP. The SNMP class is an encapsulation of SNMP
-// sessions, gets, sets, etc. The class manages all SNMP
-// resources and provides complete retry and timeout capability.
-//
-// = AUTHOR
-// Peter E Mellquist design, first implementation
-// Michael R. MacFaden port to ACE / use Reactor pattern
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "ace/Reactor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Dgram.h"
-
-#include "asnmp/oid.h" // snmp++ oid class
-#include "asnmp/vb.h" // snbmp++ vb class
-#include "asnmp/target.h" // snmp++ target class
-#include "asnmp/pdu.h" // snmp++ pdu class
-#include "asnmp/snmperrs.h" // error macros and strings
-#include "asnmp/address.h" // snmp++ address class defs
-#include "asnmp/transaction_result.h"
-
-class Snmp;
-class ACE_Export Snmp_Result
-{
- public:
- virtual ~Snmp_Result();
- virtual void result(Snmp *snmp, int result) = 0;
-};
-
-// Snmp session class - supports Version 1 operations in blocking mode
-class ACE_Export Snmp : public transaction_result
- // = TITLE
- // Concrete class Snmp defined the session and interface to
- // communicate with another SNMP Version 1 agent
-{
- Snmp_Result * result_;
- Pdu * pdu_;
- unsigned hold_req_id_;
- public:
- Snmp(unsigned short port = INADDR_ANY);
- virtual ~Snmp();
-
- int get( Pdu &pdu, UdpTarget &target, Snmp_Result * cb = 0);
- // retrieve data from a peer agent for a given list of oid values
- // default port 161
-
- int get_next( Pdu &pdu, UdpTarget &target, Snmp_Result * cb = 0);
- // retrieve data lexically adjacent to the oids specified in the pdu
- // from the peer agent
- // default port 161
-
- int set( Pdu &pdu, UdpTarget &target, Snmp_Result * cb = 0);
- // set data in the agent from the list of oids in the pdu
- // default port 161
-
- int trap( Pdu &pdu, UdpTarget &target);
- // send an SNMPv1 trap (unreliable) to a remote system (def port 162)
-
- int valid() const;
- // status of object after construction
-
- static char * error_string(int code);
- // given error code, return string reason
-
- char * error_string();
- // retrieve a reason string if any of the above commands fail
-
- void result(transaction * t, int rc);
- // for async transaction results
-
- static void override_host_name(const char* name);
- // allow the host name to be overriden
-
- static void get_host_name(char* name, int len);
- // returns the overriden host name
-
- protected:
- void check_default_port(UdpTarget& target,unsigned short port=DEF_AGENT_PORT);
- int run_transaction(Pdu& pdu, UdpTarget& target);
- int run_transaction(Pdu& pdu, UdpTarget& target, Snmp_Result * cb);
- int validate_args(const Pdu& pdu, const UdpTarget& target) const;
-
- Snmp(const Snmp&);
-
- ACE_SOCK_Dgram iv_snmp_session_;
- // io object
-
- int construct_status_;
- // status of construction
-
- int last_transaction_status_;
- // result code from last transaction
-
- unsigned req_id_;
- // transaction request id
-
- static char host_name_[MAXHOSTNAMELEN];
-};
-
-#endif //SNMP_CLS_
diff --git a/ASNMP/asnmp/snmperrs.h b/ASNMP/asnmp/snmperrs.h
deleted file mode 100644
index bd7a5e9df56..00000000000
--- a/ASNMP/asnmp/snmperrs.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef SNMPERRS_H_
-#define SNMPERRS_H_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// snmperrs.h
-//
-// = DESCRIPTION
-// Definition of error macros and error strings
-//
-// = AUTHOR
-// Jeff Meyer
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-============================================================================*/
-
-
-//-------[ Positive ASNMP Error Return Codes ]------------------------------
-// These values are error status values from RFC 1905
-//
-// The values can be returned via Pdu::get_error_status()
-//
-#define SNMP_ERROR_SUCCESS 0 // Success Status
-#define SNMP_ERROR_TOO_BIG 1 // Pdu encoding too big
-#define SNMP_ERROR_NO_SUCH_NAME 2 // No such VB name, see error index
-#define SNMP_ERROR_BAD_VALUE 3 // Bad Vb
-#define SNMP_ERROR_READ_ONLY 4 // VB is read only, see error index
-#define SNMP_ERROR_GENERAL_VB_ERR 5 // General VB error, see error index
-#define SNMP_ERROR_NO_ACCESS 6 // No access to MIBs data
-#define SNMP_ERROR_WRONG_TYPE 7 // Requested type was incorrect
-#define SNMP_ERROR_WRONG_LENGTH 8 // Request Pdu has inccorect length
-#define SNMP_ERROR_WRONG_ENCODING 9 // Request Pdu has wrong encoding
-#define SNMP_ERROR_WRONG_VALUE 10 // Request Pdu has wrong value
-#define SNMP_ERROR_NO_CREATION 11 // Unable to create object specified
-#define SNMP_ERROR_INCONSIST_VAL 12 // Inconsistent value in request
-#define SNMP_ERROR_RESOURCE_UNAVAIL 13 // Resources unavailable
-#define SNMP_ERROR_COMITFAIL 14 // Unable to comit
-#define SNMP_ERROR_UNDO_FAIL 15 // Unable to undo
-#define SNMP_ERROR_AUTH_ERR 16 // Authentication failure
-#define SNMP_ERROR_NOT_WRITEABLE 17 // Mib Object not writeable
-#define SNMP_ERROR_INCONSIS_NAME 18 // Inconsistent naming used
-
-
-//-------[ Negative ASNMP Result/Error Return Codes ]-------------------
-
-// General
-#define SNMP_CLASS_SUCCESS 0 // success
-#define SNMP_CLASS_ERROR -1 // general error
-#define SNMP_CLASS_RESOURCE_UNAVAIL -2 // e.g., malloc failed
-#define SNMP_CLASS_INTERNAL_ERROR -3 // unexpected / internal error
-#define SNMP_CLASS_UNSUPPORTED -4 // unsupported function
-
-// Callback reasons:
-#define SNMP_CLASS_TIMEOUT -5 // outstanding request timed out
-#define SNMP_CLASS_ASYNC_RESPONSE -6 // received response for outstd request
-#define SNMP_CLASS_NOTIFICATION -7 // received notification (trap/inform)
-#define SNMP_CLASS_SESSION_DESTROYED -8 // snmp::destroyed with oustanding reqs pending
-
-// Snmp Class:
-#define SNMP_CLASS_INVALID -10 // snmp::mf called on invalid instance
-#define SNMP_CLASS_INVALID_PDU -11 // invalid pdu passed to mf
-#define SNMP_CLASS_INVALID_TARGET -12 // invalid target passed to mf
-#define SNMP_CLASS_INVALID_CALLBACK -13 // invalid callback to mf
-#define SNMP_CLASS_INVALID_REQID -14 // invalid request id to cancel
-#define SNMP_CLASS_INVALID_NOTIFYID -15 // missing trap/inform oid
-#define SNMP_CLASS_INVALID_OPERATION -16 // snmp operation not allowed for specified target
-#define SNMP_CLASS_INVALID_OID -17 // invalid oid passed to mf
-#define SNMP_CLASS_INVALID_ADDRESS -18 // invalid address passed to mf
-#define SNMP_CLASS_ERR_STATUS_SET -19 // agent returned response pdu with error_status set
-
-// Transport Errors:
-#define SNMP_CLASS_TL_UNSUPPORTED -20 // transport unsupported
-#define SNMP_CLASS_TL_IN_USE -21 // transport in use
-#define SNMP_CLASS_TL_FAILED -22 // transport operation failed
-
-// extras
-#define SNMP_CLASS_SHUTDOWN -23 // used for back door shutdown
-#define SNMP_INVALID_ARGS -24 // invalid args passed
-
-#ifdef INCLUDE_SNMP_ERR_STRINGS_
-
-// ASCII strings returned through Snmp::error() function. NOTE: altering
-// the strings in this header file will not affect the return values of
-// Snmp::error(), unless you rebuild the ASNMP library from source.
-
-#define MAX_POS_ERROR SNMP_ERROR_INCONSIS_NAME
-#define MAX_NEG_ERROR SNMP_CLASS_SHUTDOWN
-
-static char * pErrs[] = {
- "Success", // 0
- "SNMP: Response PDU Too Big", // 1
- "SNMP: Variable does not exist", // 2
- "SNMP: Cannot modify variable: Bad Value", // 3
- "SNMP: Cannot modify object, Read Only", // 4
- "SNMP: Cannot perform operation, General Error", // 5
- "SNMP: Cannot access variable, No Access", // 6
- "SNMP: Cannot create/modify variable, Wrong Type", // 7
- "SNMP: Cannot create/set variable, Wrong Length", // 8
- "SNMP: Cannot create/set variable, Wrong Encoding", // 9
- "SNMP: Cannot create/set variable, Wrong Value", // 10
- "SNMP: Cannot create variable, Creation Not Allowed", // 11
- "SNMP: Cannot create/set variable, Inconsistent Value", // 12
- "SNMP: Cannot create/set variable, Resource Unavailable", // 13
- "SNMP: Cannot create/set variable, Commit Failed", // 14
- "SNMP: Cannot create/set variable, Undo Failed", // 15
- "SNMP: Cannot perform operation, Authorization Error", // 16
- "SNMP: Cannot create/set variable, Not Writable", // 17
- "SNMP: Cannot create variable, Inconsistent Name", // 18
-};
-
-
-static char * nErrs[] = {
- // General:
- // 0 SNMP_CLASS_SUCCESS
- "ASNMP: Success",
-
- // 1 SNMP_CLASS_ERROR
- "ASNMP: Operation failed",
-
- // 2 SNMP_CLASS_RESOURCE_UNAVAIL
- "ASNMP: Resource unavailable",
-
- // 3 SNMP_CLASS_INTERNAL_ERROR
- "ASNMP: Internal error",
-
- // 4 SNMP_CLASS_UNSUPPORTED
- "ASNMP: Unsupported function",
-
- // Callback reasons:
- // 5 SNMP_CLASS_TIMEOUT
- "ASNMP: SNMP request timed out",
-
- // 6 SNMP_CLASS_ASYNC_RESPONSE
- "ASNMP: Received SNMP Response",
-
- // 7 SNMP_CLASS_NOTIFICATION
- "ASNMP: Received SNMP Notification (trap or inform)",
-
- // 8 SNMP_CLASS_SESSION_DESTROYED
- "ASNMP: Closing session with outstanding requests",
-
- // 9 reserved for future
- "Unknown error code",
-
- // Snmp Class errors:
- // 10 SNMP_CLASS_INVALID
- "ASNMP: Class not valid",
-
- // 11 SNMP_CLASS_INVALID_PDU
- "ASNMP: Invalid Pdu",
-
- // 12 SNMP_CLASS_INVALID_TARGET
- "ASNMP: Invalid Target",
-
- // 13 SNMP_CLASS_INVALID_CALLBACK
- "ASNMP: Invalid (null) Callback Function",
-
- // 14 SNMP_CLASS_INVALID_REQID
- "ASNMP: Invalid Request Id",
-
- // 15 SNMP_CLASS_INVALID_NOTIFYID
- "ASNMP: Invalid Notification Id",
-
- // 16 SNMP_CLASS_INVALID_OPERATION
- "ASNMP: SNMP Operation not supported on specified Target",
-
- // 17 SNMP_CLASS_INVALID_OID
- "ASNMP: Invalid Object Identifier",
-
- // 18 SNMP_CLASS_INVALID_ADDRESS
- "ASNMP: Invalid Address",
-
- // 19 SNMP_CLASS_ERR_STATUS_SET
- "ASNMP: Agent indicates error in SNMP request",
-
- // Transport Errors:
- // 20 SNMP_CLASS_TL_UNSUPPORTED
- "ASNMP: Transport is not supported",
-
- // 21 SNMP_CLASS_TL_IN_USE
- "ASNMP: Transport is in use",
-
- // 22 SNMP_CLASS_TL_FAILED
- "ASNMP: Transport operation failed",
-
- // 23 SNMP_CLASS_SHUTDOWN
- "ASNMP: Blocked Mode Shutdown",
-
- // unknown error code
- "Unknown error code",
-};
-
-#endif //INCLUDE_SNMP_ERR_STRINGS_
-
-#endif //SNMPERRS_H_
diff --git a/ASNMP/asnmp/target.cpp b/ASNMP/asnmp/target.cpp
deleted file mode 100644
index c9e27865f31..00000000000
--- a/ASNMP/asnmp/target.cpp
+++ /dev/null
@@ -1,324 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// target.cpp
-//
-// = DESCRIPTION
-// Target class defines target SNMP agents.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
- =====================================================================*/
-
-#include "asnmp/target.h"
-
-ACE_RCSID(asnmp, target, "$Id$")
-
-//----------------------------------------------------------------------
-//--------[ Class default values ]----------------------
-//----------------------------------------------------------------------
-u_long SnmpTarget::default_timeout_ = DEF_TIMEOUT;
-int SnmpTarget::default_retries_ = DEF_RETRIES;
-u_long SnmpTarget::default_max_pdu_size_ = DEF_MAX_SNMP_PACKET;
-snmp_version SnmpTarget::default_version_ = version1;
-
-OctetStr UdpTarget::default_rd_community_(READ_COMM_STR);
-OctetStr UdpTarget::default_wr_community_(WRITE_COMM_STR);
-
-//----------------------------------------------------------------------
-//--------[ Abstract SnmpTarget Member Functions ]----------------------
-//----------------------------------------------------------------------
-SnmpTarget::SnmpTarget():
- validity_(0), timeout_(default_timeout_), retries_(default_retries_),
- max_pdu_size_(default_max_pdu_size_), version_(default_version_)
-{
-}
-
-// return validity of target
-int SnmpTarget::valid() const
-{
- return validity_;
-}
-
-// allow destruction of derived classes
-SnmpTarget::~SnmpTarget()
-{
-}
-
-// set the timeout
-void SnmpTarget::set_timeout( const u_long t)
-{
- timeout_ = t;
-}
-
-// change the default timeout
-void SnmpTarget::set_default_timeout( const u_long t)
-{
- default_timeout_ = t;
-}
-
-// set the retry value
-void SnmpTarget::set_retry( const int r)
-{
- retries_ = r;
-}
-
-// change the default retries
-void SnmpTarget::set_default_retry( const int r)
-{
- default_retries_ = r;
-}
-
-void SnmpTarget:: set_max_pdu_size(const u_long max_pdu_sz)
-{
- max_pdu_size_ = max_pdu_sz;
-}
-
-
-void SnmpTarget::set_default_max_pdu_size(const u_long max_pdu_sz)
-{
- default_max_pdu_size_ = max_pdu_sz;
-}
-
-void SnmpTarget::set_version( const snmp_version v)
-{
- version_ = v;
-}
-
-void SnmpTarget::set_default_version( const snmp_version v)
-{
- default_version_ = v;
-}
-
-snmp_version SnmpTarget::get_version() const
-{
- return version_;
-}
-
-snmp_version SnmpTarget::get_default_version() const
-{
- return default_version_;
-}
-
-u_long SnmpTarget::get_max_pdu_size() const
-{
- return max_pdu_size_;
-}
-
-// get the retry value
-int SnmpTarget::get_retry() const
-{
- return retries_;
-}
-
-// get the retry value
-int SnmpTarget::get_default_retry() const
-{
- return default_retries_;
-}
-
-// get the timeout
-u_long SnmpTarget::get_timeout() const
-{
- return timeout_;
-}
-
-SnmpTarget& SnmpTarget::operator=(const SnmpTarget& lhs)
-{
- if (this == &lhs)
- return *this;
-
- validity_ = lhs.validity_;
- timeout_ = lhs.timeout_;
- retries_ = lhs.retries_;
- max_pdu_size_ =lhs.max_pdu_size_;
- version_ = lhs.version_;
- return *this;
-}
-
-int operator==(const SnmpTarget& lhs, const SnmpTarget& rhs)
-{
- if (lhs == rhs)
- return 1;
-
- if (lhs.timeout_ != rhs.timeout_)
- return 0;
-
- if (lhs.retries_ != rhs.retries_)
- return 0;
-
- if (lhs.max_pdu_size_ != rhs.max_pdu_size_)
- return 0;
-
- if (lhs.version_ != rhs.version_)
- return 0;
-
- return 1;
-}
-
-
-//----------------------------------------------------------------------
-//--------[ IpTarget Member Functions ]----------------------------------
-//----------------------------------------------------------------------
-
-
-//---------[ UdpTarget::UdpTarget( void) ]----------------------------------
-
-UdpTarget::UdpTarget()
-{
- validity_ = 0;
- read_community_ = default_rd_community_; // assign by init fails
- write_community_ = default_wr_community_;
-}
-
-UdpTarget::UdpTarget(const UdpAddress& udp) : udp_address_(udp)
-{
- if (udp_address_.valid())
- validity_ = 1;
- read_community_ = default_rd_community_;
- write_community_ = default_wr_community_;
-}
-
-// - copy constructor can be synthesised by compiler
-
-//-----------[ UdpTarget::~UdpTarget() ]--------------------------------
-UdpTarget::~UdpTarget()
-{
-}
-
-//-----------[ UdpTarget::clone() ]--------------------------------
-SnmpTarget * UdpTarget::clone() const
-{
- return (SnmpTarget *) new UdpTarget(*this);
-}
-
-
-void UdpTarget::set_default_read_community(const OctetStr& rd_community)
-{
- default_rd_community_ = rd_community;
-}
-
-void UdpTarget::set_default_write_community(const OctetStr& wr_community)
-{
- default_wr_community_ = wr_community;
-}
-
-
-// get the read community name as an u_char and len
-void UdpTarget::get_read_community( OctetStr& read_community_oct) const
-{
- read_community_oct = read_community_;
-}
-
-//---------[ UdpTarget::set_getcommunity ]---------------------------------
-// set the read community name
-void UdpTarget::set_read_community( const OctetStr& new_read_community)
-{
- read_community_ = new_read_community;
-}
-
-//---------[ UdpTarget::get_writecommunity ]----------------------------
-// get the write community
-void UdpTarget::get_write_community( OctetStr &write_community_oct) const
-{
- write_community_oct = write_community_;
-}
-
-//-----------[ UdpTarget::set_writecommunity ]---------------------------
-// set the write community
-void UdpTarget::set_write_community( const OctetStr& write_community_oct)
-{
- write_community_ = write_community_oct;
-}
-
-//------------[ Address& UdpTarget::get_address() ]---------------------
-// get the address
-void UdpTarget::get_address( UdpAddress &address) const
-{
- address = udp_address_;
- return;
-}
-
-//-------------[ UdpTarget::set_address ]--------------------------------
-// set the address
-int UdpTarget::set_address( UdpAddress &udp_address)
-{
- udp_address_ = udp_address;
- if ( udp_address_.valid())
- validity_ = 1;
- else
- validity_ = 0;
-
- return validity_;
-}
-
-// overloaded assignment
-UdpTarget& UdpTarget::operator=( const UdpTarget& lhs)
-{
- if (this == &lhs)
- return *this;
-
- // assign base part
- *((SnmpTarget *) this) = *((SnmpTarget *)&lhs);
-
- udp_address_ = lhs.udp_address_;
- read_community_ = lhs.read_community_;
- write_community_ = lhs.write_community_;
- validity_ = lhs.validity_;
-
- return *this;
-}
-
-char *UdpTarget::to_string()
-{
- sprintf(output_buffer_,"UdpTarget: [ valid: %d addr: %s rd: %s wr: %s \
-ver: %d, timeout: %d, retries: %d max_pdu_size: %d]",
- valid(), udp_address_.to_string(), read_community_.to_string(),
- write_community_.to_string(), version_, (int) timeout_,
- retries_, max_pdu_size_);
- return output_buffer_;
-}
-
-//=============[ int operator == UdpTarget, UdpTarget ]===============
-// equivlence operator overloaded
-int operator==( const UdpTarget &lhs,const UdpTarget &rhs)
-{
- // need to compare all the members of a UdpTarget
- if ( lhs.read_community_ != rhs.read_community_)
- return 0; // !=
-
- if ( lhs.write_community_ != rhs.write_community_)
- return 0; // !=
-
- if ( lhs.udp_address_ != rhs.udp_address_)
- return 0;
-
- if ( lhs.timeout_ != rhs.timeout_)
- return 0;
-
- if ( lhs.retries_ != rhs.retries_)
- return 0;
-
- return 1; // they are equal
-}
diff --git a/ASNMP/asnmp/target.h b/ASNMP/asnmp/target.h
deleted file mode 100644
index 7dfc14ab5d8..00000000000
--- a/ASNMP/asnmp/target.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef TARGET_
-#define TARGET_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// target.h
-//
-// = DESCRIPTION
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R. MacFaden (ported to ACE)
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS" without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-//----[ includes ]------------------------------------------------
-#include "ace/INET_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "asnmp/address.h"
-#include "asnmp/oid.h"
-#include "asnmp/octet.h"
-
-//----[ enumerated types for SNMP versions ]-------------------------
-enum snmp_version {
- version1, // 0
- version2c, // 1 (Cisco IOS does not have IOS v2c agent available yet)
- version3 // 2 (IETF working on this version)
-};
-
-// targets contain the following default properties
-enum ASNMP_Defs {
- DEF_TIMEOUT = 1, // unit: seconds
- DEF_RETRIES = 1, // no retry default
- DEF_MAX_SNMP_PACKET = 1430, // maximum pdu len on the wire (eth mtu-ip hdr)
- // split bigger pdus (not implemented yet)
- DEF_AGENT_PORT = 161, // port # for SNMP agent
- DEF_TRAP_PORT = 162, // port # for SNMP trap receiver
- DEF_VERSION = version1, // default SNMP version
- MAX_COMM_STR_LEN = 255, // max value this impl will accept from client
- MAX_TARGET_STRING_REP = 2048 // max value this impl will accept from client
-};
-
-#define READ_COMM_STR "public"
-#define WRITE_COMM_STR "private"
-
-// Abstract class used to provide a virtual interface into Targets
-//
-class ACE_Export SnmpTarget
- // = TITLE
- // Abstract Base class SnmpTarget is used to Collect all transmission
- // details to communicate with an SNMP
-{
- public:
-
- virtual ~SnmpTarget();
- // allow destruction of derived classes
-
- int valid() const;
- // return validity of target
-
- void set_retry( const int r);
- // set the retry value
-
- void set_timeout( const unsigned long t);
- // set the object's timeout (in seconds)
-
- void set_version( const snmp_version v);
- // set the instance version
-
- void set_max_pdu_size(const unsigned long max_pdu_sz);
- // all classes constructed will have this write community string
-
- void set_default_timeout( const unsigned long t);
- // change the "class" default default timeout (in seconds)
-
- void set_default_retry( const int r);
- // change the default send retries
-
- void set_default_max_pdu_size(const unsigned long max_pdu_sz);
- // all classes constructed will have this write community string
-
- void set_default_version( const snmp_version v);
- // change class default
-
- // *** get methods ***
-
- int get_default_retry() const;
- // get the retry value
-
- unsigned long get_timeout() const;
- // get the timeout (seconds)
-
- unsigned long get_max_pdu_size() const;
- // get instance max buffer size
-
- void get_default_max_pdu_size(const unsigned long max_pdu_sz);
- // all classes constructed will have this write community string
-
- snmp_version get_version() const;
- // get the version
-
- snmp_version get_default_version() const;
-
- int get_retry() const;
- // return send retry number for this instancd
-
- virtual SnmpTarget *clone() const = 0;
- // virtual clone operation for creating a new SnmpTarget from an existing
- // SnmpTarget. The caller MUST use the delete operation on the return
- // value when done.
-
- friend int operator==(const SnmpTarget& lhs, const SnmpTarget& rhs);
- // manipulate the base part
-
- SnmpTarget& operator=(const SnmpTarget& lhs);
-
- protected:
- SnmpTarget();
- // SnmpTarget(const SnmpTarget &);
-
- int validity_;
- // used by derived class instances
-
- unsigned long timeout_;
- // instance value xmit timeout in milli secs
-
- int retries_;
- // instance value number of retries
-
- unsigned max_pdu_size_;
- // size of pdu
-
- snmp_version version_;
- // instance value the snmp version
-
- // class wide default values
- static unsigned long default_timeout_;
- // xmit timeout in secs
-
- static int default_retries_;
- // number of retries
-
- static unsigned long default_max_pdu_size_;
- static snmp_version default_version_;
- // snmp protocol version
-};
-
-//----[ UdpTarget class ]----------------------------------------------
-// UDP/IP transport using "community string" based agents (targets)
-//
-class ACE_Export UdpTarget: public SnmpTarget
- // = TITLE
- // Concrete class UdpTarget contains all Details for communicating
- // with a SNMPv1 agent over UDP/IPv4 transport
-{
- public:
- UdpTarget();
-
- UdpTarget( const UdpAddress& udp);
- // constructor with only address
- // assumes default as public, public
- // can be constructed with IP address object
-
- UdpTarget( ACE_INET_Addr& ace_inet_addr);
- // can be constructed with Udp address object TODO: merge addresses
-
- ~UdpTarget();
- // destructor
-
- // ** set ***
-
- void set_read_community( const OctetStr& new_read_community);
- // set the read community using an OctetStr
-
- void set_write_community( const OctetStr& write_community);
- // set the write community using an OctetStr
-
- int set_address( UdpAddress &udp_address);
- // set the address
-
- // ** get ***
-
- void get_read_community( OctetStr& read_community_oct) const;
- // get the read community as an Octet Str object
-
- void get_write_community( OctetStr &write_community_oct) const;
- // get the write community as an OctetStr
-
- void get_address( UdpAddress& address) const;
- // get the address
-
- void set_default_read_community(const OctetStr& rd_community);
- // all classes constructed will have this read community string
-
- void set_default_write_community(const OctetStr& wr_community);
- // all classes constructed will have this write community string
-
- void get_default_read_community(OctetStr& rd_community) const;
- // all classes constructed will have this read community string
-
- void get_default_write_community(OctetStr& wr_community) const;
- // all classes constructed will have this write community string
-
- UdpTarget& operator=( const UdpTarget& target);
- // overloaded assignment
-
- friend int operator==( const UdpTarget &lhs, const UdpTarget &rhs);
- // compare two C targets
-
- char *to_string();
- // string representation of object
-
- SnmpTarget *clone() const;
- // clone from existing UdpTarget
-
- protected:
- static OctetStr default_rd_community_;
- static OctetStr default_wr_community_;
- OctetStr read_community_;
- OctetStr write_community_;
- UdpAddress udp_address_;
- snmp_version version_;
-
- char output_buffer_[MAX_TARGET_STRING_REP];
- // to_string() rep of data
-};
-
-
-#endif //TARGET_
diff --git a/ASNMP/asnmp/timetick.cpp b/ASNMP/asnmp/timetick.cpp
deleted file mode 100644
index 06fd025797f..00000000000
--- a/ASNMP/asnmp/timetick.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// timetick.cpp
-//
-// = DESCRIPTION
-// Class implentation for SMI Timeticks class.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/timetick.h" // include header file for timetick class
-
-ACE_RCSID(asnmp, timetick, "$Id$")
-
-// constructor with a value
-TimeTicks::TimeTicks( const unsigned long i):SnmpUInt32(i)
-{
- smival.syntax = sNMP_SYNTAX_TIMETICKS;
-}
-
-// copy constructor
-TimeTicks::TimeTicks( const TimeTicks &t)
-{
- smival.value.uNumber = t.smival.value.uNumber;
- smival.syntax = sNMP_SYNTAX_TIMETICKS;
-}
-
-// destructor
-TimeTicks::~TimeTicks()
-{
-}
-
-// syntax type
-SmiUINT32 TimeTicks::get_syntax()
-{
- return sNMP_SYNTAX_TIMETICKS;
-}
-
-// create a new instance of this Value
-SnmpSyntax *TimeTicks::clone() const
-{
- return (SnmpSyntax *) new TimeTicks(*this);
-}
-
-// overloaded assignement from ulong
-TimeTicks& TimeTicks::operator=( const unsigned long int i)
-{
- smival.value.uNumber =i; return *this;
-}
-
-// overloaded assignment from TimeTicks
-TimeTicks& TimeTicks::operator=( const TimeTicks &uli)
-{
- this->smival.value.uNumber = uli.smival.value.uNumber; return *this;
-}
-
-// general assignment from any Value
-SnmpSyntax& TimeTicks::operator=( SnmpSyntax &in_val)
-{
- if ( this == &in_val ) // handle assignement from itself
- return *this;
-
- valid_flag = 0; // will get set true if really valid
- if (in_val.valid()) {
- switch (in_val.get_syntax()) {
- case sNMP_SYNTAX_UINT32:
- // case sNMP_SYNTAX_GAUGE32: .. indistinquishable from UINT32
- case sNMP_SYNTAX_CNTR32:
- case sNMP_SYNTAX_TIMETICKS:
- case sNMP_SYNTAX_INT32: // implied cast int -> uint
- this->smival.value.uNumber =
- ((TimeTicks &)in_val).smival.value.uNumber;
- valid_flag = 1;
- break;
- }
- }
- return *this;
-}
-
-// otherwise, behave like an unsigned long
-TimeTicks::operator unsigned long()
-{
- return smival.value.uNumber;
-}
-
-
-// ASCII format return
-char * TimeTicks::to_string()
- /* Should do something nicer like days:hours:minutes... */
-{
- unsigned long tt, hseconds, seconds, minutes, hours, days;
- tt = this->smival.value.uNumber;
-
- // days
- days = tt / 8640000;
- tt %= 8640000;
-
- // hours
- hours = tt / 360000;
- tt %= 360000;
-
- // minutes
- minutes = tt / 6000;
- tt %= 6000;
-
- seconds = tt / 100;
- tt %= 100;
-
- hseconds = tt;
-
- if ( days ==0)
- sprintf( output_buffer,"%ld:%02ld:%02ld.%02ld", hours, minutes,seconds,hseconds);
- else if ( days==1)
- sprintf( output_buffer,"1 day %ld:%02ld:%02ld.%02ld", hours, minutes,seconds,hseconds);
- else
- sprintf( output_buffer,"%ld days, %ld:%02ld:%02ld.%02ld", days,hours, minutes,seconds,hseconds);
-
- return output_buffer;
-}
diff --git a/ASNMP/asnmp/timetick.h b/ASNMP/asnmp/timetick.h
deleted file mode 100644
index 8e4609c124b..00000000000
--- a/ASNMP/asnmp/timetick.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef TIMETICKS_
-#define TIMETICKS_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// timetick.h
-//
-// = DESCRIPTION
-// Class definition for SMI Timeticks class.
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/integer.h"
-
-#define TICKOUTBUF 30 // max formatted time string
-
-//------------[ TimeTicks Class ]-----------------------------------
-// The timeticks class allows all the functionality of unsigned
-// integers but is recognized as a distinct SMI type. TimeTicks
-// objects may be get or set into Vb objects.
-//
-class ACE_Export TimeTicks: public SnmpUInt32
- // = TITLE
- // Define RFC1155 TimeTicks Data object
-
-{
-
- public:
- TimeTicks( const unsigned long i = 0);
-
- TimeTicks( const TimeTicks &t);
- // copy constructor
-
- ~TimeTicks();
- // destructor
-
- SmiUINT32 get_syntax();
- // syntax type
-
- char *to_string();
- // get a printable ASCII value
-
- SnmpSyntax *clone() const;
- // create a new instance of this Value
-
- SnmpSyntax& operator=(SnmpSyntax &val);
- // copy an instance of this Value
-
- TimeTicks& operator=( const TimeTicks &uli);
- // overloaded assignment
-
- TimeTicks& operator=( const unsigned long int i);
- // overloaded assignment
-
- operator unsigned long();
- // otherwise, behave like an unsigned long
-
- protected:
- char output_buffer[TICKOUTBUF];
- // for storing printed form
-};
-#endif // TIMETICKS_
diff --git a/ASNMP/asnmp/transaction.cpp b/ASNMP/asnmp/transaction.cpp
deleted file mode 100644
index 4c22b0f51e4..00000000000
--- a/ASNMP/asnmp/transaction.cpp
+++ /dev/null
@@ -1,202 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// transaction.cpp
-//
-// = DESCRIPTION
-// implements blocking SNMPv1 API using a simple state machine
-// transactions over UDP/IP networks
-//
-// = AUTHOR
-// Michael R MacFaden mrm@cisco.com - remove v2c, async, rework for ACE
-// ============================================================================
-
-#include "ace/Reactor.h"
-#include "asnmp/transaction.h"
-
-ACE_RCSID(asnmp, transaction, "$Id$")
-
-// pre: pdu, target report valid() == 1
-// post: pdu sent out over the wire
-inline void reset_receive_buffer(iovec& io)
-{
- io.iov_base = 0;
- io.iov_len = 0;
-}
-
-transaction::transaction(const Pdu& pdu, const UdpTarget& target,
- ACE_SOCK_Dgram& io):
- result_(0),
- wp_(pdu,target), params_(target), session_(io)
-{
- // last step, convert address (get ride of this once we have merged address
- UdpAddress udp;
- target.get_address(udp);
- // via string conversion "dotted-quad:port"
- ACE_INET_Addr tmp(udp);
- addr_ = tmp;
- reset_receive_buffer(receive_iovec_);
-}
-
-transaction::~transaction()
-{
- ACE_Reactor::instance()->remove_handler(this, READ_MASK | DONT_CALL);
- ACE_Reactor::instance()->cancel_timer(this);
-
- delete [] receive_iovec_.iov_base;
-}
-
-// implement state machine, send, wait (timeout/results) return
-int transaction::run()
-{
- int rc, done = 0;
- int retry_counter = 0;
- ACE_Time_Value to(params_.get_timeout(), 0); // seconds
- ACE_Reactor reactor;
-
- // 1. register io port for read access
- if (reactor.register_handler(session_.get_handle(), this,
- ACE_Event_Handler::READ_MASK) == -1)
- return SNMP_CLASS_INTERNAL_ERROR;
-
- // register a time handler and a socket with this
-
- while (!done) {
-
- if ((rc = send()) < 0) // send pkt to agent
- return rc;
- else {
- if (retry_counter++ > params_.get_retry())
- return SNMP_CLASS_TIMEOUT;
- }
-
- // 2. wait for events (timeout, returned msg)
- if (( rc = reactor.handle_events (to)) == 1) // one handler registered
- return 0;
- else {
- if (rc == 0) {
- to.set(params_.get_timeout(), 0);
- }
- else
- return SNMP_CLASS_INTERNAL_ERROR;
- }
- }
- return SNMP_CLASS_INTERNAL_ERROR;
-}
-
-// implement state machine, send, wait (timeout/results) return
-int transaction::run(transaction_result * r)
-{
- result_ = r;
- int rc;
-
- // 1. register io port for read access
- ACE_Reactor * reactor = ACE_Reactor::instance();
- if (reactor->register_handler(session_.get_handle(),
- this,
- READ_MASK) == -1)
- return SNMP_CLASS_INTERNAL_ERROR;
-
- retry_counter_ = 0;
-
- // register a time handler and a socket with this
- ACE_Time_Value to = params_.get_timeout();
- if (reactor->schedule_timer(this, 0, to, to) < 0)
- return SNMP_CLASS_INTERNAL_ERROR;
-
- if ((rc = send()) < 0) // send pkt to agent
- return rc;
- return 0;
-}
-
-// got back response from SNMPv1 agent - process it
-int transaction::handle_input (ACE_HANDLE)
-{
- // OS allocates iovec_.iov_base ptr and len
- delete [] receive_iovec_.iov_base;
- reset_receive_buffer(receive_iovec_);
- int rc = session_.recv(&receive_iovec_, receive_addr_, 0);
- if (rc == -1) {
- delete [] receive_iovec_.iov_base;
- reset_receive_buffer(receive_iovec_);
- if (result_)
- result_->result(this, SNMP_CLASS_RESOURCE_UNAVAIL);
- return SNMP_CLASS_RESOURCE_UNAVAIL;
- }
- if (result_)
- {
- result_->result(this, rc);
- return 0;
- }
- return rc;
-}
-
-int transaction::handle_timeout(const ACE_Time_Value &,
- const void *)
-{
- int rc;
- if ((rc = send()) < 0) // send pkt to agent
- result_->result(this, 0);
- else
- if (retry_counter_++ > params_.get_retry())
- result_->result(this, SNMP_CLASS_TIMEOUT);
-
- return 0;
-}
-
-
-const ACE_INET_Addr& transaction::get_from_addr() const
-{
- return receive_addr_;
-}
-
-
-// return pdu to caller
-int transaction::result(Pdu& pdu, char *comm_str, ACE_INET_Addr *from)
-{
- // TODO: check to see the sender matches the receiver address..
-
- // remove any vbs existing in this pdu
- pdu.delete_all_vbs();
-
- // any data to return?
- if (receive_iovec_.iov_len == 0)
- return -1;
-
- wpdu tmp(receive_iovec_);
-
- snmp_version ver;
-
- // return comm str and from address of incomming pdu if requested
- int rc = tmp.get_pdu(pdu, ver);
- if (comm_str)
- ACE_OS::strcpy(comm_str, (char *)tmp.get_community());
- if (from)
- *from = receive_addr_;
- return rc;
-}
-
-transaction::transaction(ACE_SOCK_Dgram& io)
-: result_(0), session_(io)
-{
- reset_receive_buffer(receive_iovec_);
-}
-
-
-int transaction::send()
-{
- iovec io = wp_.get_buffer();
- if (io.iov_len == 0) {
- // NO DATA ?
- return -1;
- }
- ssize_t rc = session_.send (io.iov_base, io.iov_len, addr_ , 0);
- return rc;
-}
-
-transaction_result::~transaction_result() {}
diff --git a/ASNMP/asnmp/transaction.h b/ASNMP/asnmp/transaction.h
deleted file mode 100644
index 4ded5f34e1b..00000000000
--- a/ASNMP/asnmp/transaction.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef TRANSACTION_
-#define TRANSACTION_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// transaction.h
-//
-// = DESCRIPTION
-//
-// = AUTHOR
-// Michael R. MacFaden port to ACE / use Reactor pattern
-//
-// ============================================================================
-
-#include "ace/Event_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "asnmp/target.h"
-#include "asnmp/pdu.h"
-#include "asnmp/transaction_result.h"
-#include "asnmp/wpdu.h" // cmu adapter class
-#include "ace/SOCK_Dgram.h"
-
-class ACE_Export transaction : public ACE_Event_Handler
- // = TITLE
- // Used to manage the details of a particular transaction betwen
- // two SNMP agents. Uses SnmpTarget class to implement retry/timeout
-
-{
- int retry_counter_;
- transaction_result * result_;
-
- public:
- transaction(const Pdu& pdu, const UdpTarget& target, ACE_SOCK_Dgram& io);
- transaction(ACE_SOCK_Dgram& io);
- // constructor
- ~transaction();
- // destructor
-
- int run();
- int run(transaction_result *r); // Async interface, with callback object
- // begin polling for values
-
- int result(Pdu& pdu, char *comm_str = 0, ACE_INET_Addr *from_addr = 0);
- // return pdu with result from agent after run() is completed rc = 0
- // optionally get community str
-
- virtual int handle_input (ACE_HANDLE fd);
- // called by reactor when data is ready to be read in from OS memory
- virtual int handle_timeout (const ACE_Time_Value &, const void *);
- // used for resend in asynchronous run()
-
- int send();
- // transmit buffer command to network...
-
- const ACE_INET_Addr& get_from_addr() const;
- // pre: handle_input called
- // retrieve the sender's from address from the last pkt
-
- private:
- transaction(const transaction&);
- // disallow copy construction
-
- wpdu wp_; // wire pdu
- UdpTarget params_; // params
- ACE_INET_Addr addr_; // to address
- ACE_SOCK_Dgram session_; // io object
- iovec receive_iovec_; // receive buffer
- ACE_INET_Addr receive_addr_; // from address
-};
-
-#endif // TRANSACTION_
diff --git a/ASNMP/asnmp/transaction_result.h b/ASNMP/asnmp/transaction_result.h
deleted file mode 100644
index 1c0472675ea..00000000000
--- a/ASNMP/asnmp/transaction_result.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef TRANSACTION_RESULT_H_
-#define TRANSACTION_RESULT_H_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// transaction_result.h
-//
-// = DESCRIPTION
-// An object respresenting a request/reply operation between mgr/agent
-//
-// = AUTHOR
-// Michael R. MacFaden
-//
-// ============================================================================
-
-class transaction;
-class ACE_Export transaction_result
-{
- public:
- virtual ~transaction_result();
- virtual void result(transaction * trans, int) = 0;
-};
-
-#endif
diff --git a/ASNMP/asnmp/vb.cpp b/ASNMP/asnmp/vb.cpp
deleted file mode 100644
index ff9c22bb773..00000000000
--- a/ASNMP/asnmp/vb.cpp
+++ /dev/null
@@ -1,396 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// vb.h
-//
-// = DESCRIPTION
-// The Vb class is an encapsulation of the snmp variable binding.
-// This module contains the class definition for the variable binding (VB)
-// class. The VB class is an encapsulation of a SNMP VB. A VB object is
-// composed of one SNMP++ Oid and one SMI value. The Vb class utilizes Oid
-// objects and thus requires the Oid class. To use this class,
-// set oid, value then call valid() to be sure object was constructed correctly.
-//
-// = AUTHOR
-// Peter E Mellquist
-// Michael R MacFaden mrm@cisco.com - rework & ACE port
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/oid.h" // include oid class defs
-#include "asnmp/vb.h" // include vb class defs
-#include "asnmp/snmperrs.h" // error codes
-
-ACE_RCSID(asnmp, vb, "$Id$")
-
-//---------------[ Vb::Vb( void) ]--------------------------------------
-// constructor with no arguments
-// makes an vb, unitialized
-Vb::Vb( void): output_(0), iv_vb_value_(0),
- exception_status_(SNMP_CLASS_SUCCESS)
-{
-}
-
-//---------------[ Vb::Vb( const Oid &oid) ]-----------------------------
-// constructor to initialize the oid
-// makes a vb with oid portion initialized
-Vb::Vb( const Oid &oid): output_(0), iv_vb_oid_(oid), iv_vb_value_(0),
- exception_status_(SNMP_CLASS_SUCCESS)
-{
-}
-
-//---------------[ Vb::Vb( const Oid &oid, const SmiSyntax &val) ]-------
-Vb::Vb( const Oid &oid, const SnmpSyntax &val, const SmiUINT32 status):
- output_(0), iv_vb_oid_(oid), iv_vb_value_(0), exception_status_(status)
-{
- // iv_vb_value_ = recast_smi_object(val); // allocate and construct object
- iv_vb_value_ = val.clone();
-}
-
-//---------------[ Vb::Vb( const Vb &vb) ]-----------------------------
-// copy constructor
-Vb::Vb( const Vb &vb): output_(0), iv_vb_value_(0)
-{
- *this = vb;
-}
-
-//---------------[ Vb::~Vb() ]------------------------------------------
-// destructor
-// if the vb has a oid or an octect string then
-// the associated memory needs to be freed
-Vb::~Vb()
-{
- free_vb();
- delete [] output_; // formatting buffer if it exists
-}
-
-
-//--------------[ Vb::valid() ]-----------------------------------------
-// returns validity of a Vb object
-// must have a valid oid and value
-int Vb::valid() const
-{
- if ( iv_vb_oid_.valid() && (iv_vb_value_ && iv_vb_value_->valid()) )
- return 1;
- else
- return 0;
-}
-
-
-//---------------[ Vb& Vb::operator=( const Vb &vb) ]--------------------
-// overloaded assignment allows assigning one Vb to another
-// this involves deep memory thus target vb needs to be freed
-// before assigning source
-Vb& Vb::operator=( const Vb &vb)
-{
- free_vb(); // free up target to begin with
-
- //-----[ reassign the Oid portion 1st ]
- vb.get_oid( iv_vb_oid_);
-
- //-----[ next set the vb value portion ]
- if (vb.iv_vb_value_ == 0) {
- iv_vb_value_ = 0;
- }
- else {
- iv_vb_value_ = vb.iv_vb_value_->clone();
- }
- exception_status_ = vb.exception_status_;
-
- return *this; // return self reference
-}
-
- // set a Vb null, if its not already
-void Vb::set_null()
-{
- free_vb();
-}
-
-//---------------[ Vb::set_oid( const Oid oid ) ]-----------------------
-// set value oid only with another oid
-void Vb::set_oid( const Oid& oid)
-{
- iv_vb_oid_ = oid;
-}
-
-//---------------[ Vb::get_oid( Oid &oid) ]-----------------------------
-// get oid portion
-void Vb::get_oid( Oid &oid) const
-{
- oid = iv_vb_oid_;
-}
-
-//----------------[ void Vb::free_vb() ]--------------------------------
-// protected method to free memory
-// this methos is used to free memory when assigning new vbs
-// or destructing
-// in the case of oids and octets, we need to do a deep free
-void Vb::free_vb()
-{
- if (iv_vb_value_)
- delete iv_vb_value_;
- exception_status_ = SNMP_CLASS_SUCCESS;
- iv_vb_value_ = 0;
-}
-
-void Vb::set_value( const SnmpInt32& i)
-{
- free_vb();
- iv_vb_value_ = (SnmpSyntax *)new SnmpInt32(i);
-}
-
-void Vb::set_value( const SnmpUInt32& u)
-{
- free_vb();
- iv_vb_value_ = (SnmpSyntax *)new SnmpUInt32(u);
-}
-
-void Vb::set_value( const Gauge32& g)
-{
- free_vb();
- iv_vb_value_ = (SnmpSyntax *)new Gauge32(g);
-}
-
-void Vb::set_value( const Counter32& c)
-{
- free_vb();
- iv_vb_value_ = (SnmpSyntax *)new Counter32(c);
-}
-
-void Vb::set_value( const Counter64& c)
-{
- free_vb();
- iv_vb_value_ = (SnmpSyntax *)new Counter64(c);
-}
-
-void Vb::set_value( const TimeTicks& t)
-{
- free_vb();
- iv_vb_value_ = (SnmpSyntax *)new TimeTicks(t);
-}
-
-void Vb::set_value( const OctetStr& s)
-{
- free_vb();
- iv_vb_value_ = (SnmpSyntax *)new OctetStr(s);
-}
-
-void Vb::set_value( const Oid& o)
-{
- free_vb();
- iv_vb_value_ = (SnmpSyntax *)new Oid(o);
-}
-
-void Vb::set_value ( const SnmpSyntax &val)
-{
- free_vb();
- iv_vb_value_ = val.clone();
-}
-
-int Vb::get_value( SnmpInt32 &i)
-{
- if (iv_vb_value_ &&
- iv_vb_value_->valid() &&
- (iv_vb_value_->get_syntax() == sNMP_SYNTAX_INT32 )) {
- i = *((SnmpInt32 *) iv_vb_value_);
- return SNMP_CLASS_SUCCESS;
- }
- else
- return SNMP_CLASS_INVALID;
-}
-
-int Vb::get_value( SnmpUInt32 &u)
-{
- if (iv_vb_value_ && iv_vb_value_->valid())
- {
- SmiUINT32 syntax = iv_vb_value_->get_syntax();
- if (syntax == sNMP_SYNTAX_GAUGE32 ||
- syntax == sNMP_SYNTAX_CNTR32 ||
- syntax == sNMP_SYNTAX_TIMETICKS ||
- syntax == sNMP_SYNTAX_UINT32)
- {
- u = *((SnmpUInt32 *) iv_vb_value_);
- return SNMP_CLASS_SUCCESS;
- }
- }
- return SNMP_CLASS_INVALID;
-}
-
-/* return a uint or a gauge. this is casting, but no semantic difference
- * at this level
- */
-int Vb::get_value( Gauge32 &g)
-{
- if (iv_vb_value_ &&
- iv_vb_value_->valid() &&
- ((iv_vb_value_->get_syntax() == sNMP_SYNTAX_GAUGE32) ||
- iv_vb_value_->get_syntax() == sNMP_SYNTAX_UINT32) ) {
- g = *((Gauge32 *) iv_vb_value_);
- return SNMP_CLASS_SUCCESS;
- }
- else
- return SNMP_CLASS_INVALID;
-}
-
-int Vb::get_value( Counter32 &c)
-{
- if (iv_vb_value_ &&
- iv_vb_value_->valid() &&
- (iv_vb_value_->get_syntax() == sNMP_SYNTAX_CNTR32 )) {
- c = *((Counter32 *) iv_vb_value_);
- return SNMP_CLASS_SUCCESS;
- }
- else
- return SNMP_CLASS_INVALID;
-}
-
-int Vb::get_value( Counter64 &c)
-{
- if (iv_vb_value_ &&
- iv_vb_value_->valid() &&
- (iv_vb_value_->get_syntax() == sNMP_SYNTAX_CNTR64 )) {
- c = *((Counter32 *) iv_vb_value_);
- return SNMP_CLASS_SUCCESS;
- }
- else
- return SNMP_CLASS_INVALID;
-}
-
-int Vb::get_value( TimeTicks &t)
-{
- if (iv_vb_value_ &&
- iv_vb_value_->valid() &&
- (iv_vb_value_->get_syntax() == sNMP_SYNTAX_TIMETICKS )) {
- t = *((TimeTicks *) iv_vb_value_);
- return SNMP_CLASS_SUCCESS;
- }
- else
- return SNMP_CLASS_INVALID;
-}
-
-int Vb::get_value( OctetStr &s)
-{
- if (iv_vb_value_ &&
- iv_vb_value_->valid() &&
- (iv_vb_value_->get_syntax() == sNMP_SYNTAX_OCTETS )) {
- s = *((OctetStr *) iv_vb_value_);
- return SNMP_CLASS_SUCCESS;
- }
- else
- return SNMP_CLASS_INVALID;
-}
-
-int Vb::get_value( Oid &s)
-{
- if (iv_vb_value_ &&
- iv_vb_value_->valid() &&
- (iv_vb_value_->get_syntax() == sNMP_SYNTAX_OID )) {
- s = *((Oid *) iv_vb_value_);
- return SNMP_CLASS_SUCCESS;
- }
- else
- return SNMP_CLASS_INVALID;
-}
-
-
-//---------------[ Vb::get_value( Value &val) ]--------
-int Vb::get_value( SnmpSyntax &val)
-{
- if (iv_vb_value_) {
- val = *iv_vb_value_;
- if (val.valid())
- return SNMP_CLASS_SUCCESS;
- else
- return SNMP_CLASS_INVALID;
- }
- else
- {
-//TM: should set val to be invalid
- return SNMP_CLASS_INVALID;
- }
-}
-
-
-
-//-----[ misc]--------------------------------------------------------
-
-// return the current syntax
-// This method violates Object Orientation but may be useful if
-// the caller has a vb object and does not know what it is.
-// This would be useful in the implementation of a browser.
-SmiUINT32 Vb::get_syntax()
-{
- if ( exception_status_ != SNMP_CLASS_SUCCESS)
- return exception_status_;
- else
- return ( iv_vb_value_ ? iv_vb_value_->get_syntax() : sNMP_SYNTAX_NULL);
-}
-
-// return the printabel value
-char *Vb::to_string_value()
-{
- if (iv_vb_value_)
- return iv_vb_value_->to_string();
- else
- return "";
-}
-
-// return the printable oid
-char *Vb::to_string_oid()
-{
- return iv_vb_oid_.to_string();
-}
-
-// generate string with name/ value format
-char *Vb::to_string()
-{
- int len = ACE_OS::strlen(iv_vb_oid_.to_string());
- char *ptr = "";
- if (iv_vb_value_)
- ptr = iv_vb_value_->to_string();
- len += ACE_OS::strlen(ptr) + 3 + 1; // " / " + null
- ACE_NEW_RETURN(output_, char[len], "");
- ACE_OS::sprintf(output_, "%s / %s", iv_vb_oid_.to_string(), ptr);
- return output_;
-}
-
-// friend function to set exception status
-void set_exception_status( Vb *vb, const SmiUINT32 status)
-{
- vb->exception_status_ = status;
-}
-
-// equivlence operator overloaded
-// hack, by side effect, compare based on string formatting output_
-int operator==( const Vb &lhs, const Vb &rhs)
-{
- if ( lhs.iv_vb_oid_ != rhs.iv_vb_oid_)
- return 0;
-
- if (lhs.iv_vb_value_ != 0 && rhs.iv_vb_value_ != 0) {
- int val = strcmp(lhs.iv_vb_value_->to_string(),
- rhs.iv_vb_value_->to_string());
- return !val;
- }
- else
- return 0;
-}
diff --git a/ASNMP/asnmp/vb.h b/ASNMP/asnmp/vb.h
deleted file mode 100644
index dca6e7ae985..00000000000
--- a/ASNMP/asnmp/vb.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef VB_CLS_
-#define VB_CLS_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// vb.h
-//
-// = DESCRIPTION
-// This module contains the class definition for the variable binding (VB)
-// class. The VB class is an encapsulation of a SNMP VB. A VB object is
-// composed of one SNMP++ Oid and one SMI value. The Vb class utilizes Oid
-// objects and thus requires the Oid class. To use this class,
-// set oid, value then call valid() to be sure object was constructed correctly.
-//
-// = AUTHOR
-// Peter E Mellquist
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-//----[ external calls ]----------------------------------------------
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "asnmp/smival.h"
-#include "asnmp/snmperrs.h" // V2c error def
-#include "asnmp/oid.h" // oid class def
-#include "asnmp/timetick.h" // time ticks
-#include "asnmp/counter.h" // counter
-#include "asnmp/gauge.h" // gauge class
-#include "asnmp/ctr64.h" // 64 bit counters
-#include "asnmp/octet.h" // octet class
-#include "asnmp/address.h" // address class def
-#include "asnmp/integer.h" // integer class
-
-
-//------------[ VB Class Def ]-------------------------------------
-// The Vb class is the encapsulation of the SNMP variable binding.
-// Variable binding lists in SNMP++ are represented as arrays of
-// Vb objects. Vb objects are passed to and from SNMP objects to
-// provide getting or setting MIB values.
-// The vb class keeps its own memory for objects and does not
-// utilize pointers to external data structures.
-//
-class ACE_Export Vb
- // = TITLE
- // Implement the concrete Variable Bindings aka Varbind
- // composite type. Varbinds hold 1 Oid and 1 Value (Any SMI value)
-{
-public:
- Vb( void);
- // constructor with no arguments
- // makes an vb, unitialized (does not make object valid)
-
- Vb( const Oid &oid);
- // constructor to initialize the oid
- // makes a vb with oid portion initialized (does not make object valid)
-
- Vb( const Oid& vb, const SnmpSyntax &val, const SmiUINT32=SNMP_CLASS_SUCCESS);
- // constructor to initialize the oid
- // makes a vb with oid portion and value portion initialized, (valid)
-
- Vb( const Vb &vb);
- // copy constructor
-
- ~Vb();
- // destructor
- // if the vb has a oid or an octect string then
- // the associated memory needs to be freed
-
- int valid() const;
- // return validity of Vb object (both oid and value set return 1 else 0)
-
- Vb& operator=( const Vb &vb);
- // assignment to another Vb object overloaded
-
- friend int operator==( const Vb &lhs, const Vb &rhs);
- // equivlence operator overloaded
-
- //-----[ set oid / get oid part]------------------------------------------
-
- void set_oid( const Oid& oid);
- // set value oid only with another oid
-
- void get_oid( Oid &oid) const;
- // get oid portion
-
- //-----[ set value part]--------------------------------------------------
-
- void set_null();
- // set a Vb null, if its not already
-
- void set_value( const TimeTicks& ticks);
- // returns 0 on success and a value
-
- void set_value( const Oid& oid);
- // returns 0 on success and a value
-
- void set_value( const Counter32& ctr);
- // returns 0 on success and a value
-
- void set_value( const Counter64& ctr);
- // returns 0 on success and a value
-
- void set_value( const Gauge32& ctr);
- // returns 0 on success and a value
-
- void set_value( const SnmpUInt32& ctr);
- // returns 0 on success and a value
-
- void set_value( const SnmpInt32& ctr);
- // returns 0 on success and a value
-
- void set_value( const OctetStr& oct_str);
- // get an octet string object
-
- //----[ get value ]------------------------------------------------
-
- int get_value( TimeTicks& ticks);
- // returns 0 on success and a value
-
- int get_value( Oid& oid);
- // returns 0 on success and a value
-
- int get_value( Counter32& ctr);
- // returns 0 on success and a value
-
- int get_value( Counter64& ctr);
- // returns 0 on success and a value
-
- int get_value( Gauge32& ctr);
- // returns 0 on success and a value
-
- int get_value( SnmpUInt32& ctr);
- // returns 0 on success and a value
-
- int get_value( SnmpInt32& ctr);
- // returns 0 on success and a value
-
- int get_value( OctetStr& oct_str);
- // get an octet string object
-
- // escape hatch
- void set_value( const SnmpSyntax &val);
- // for other derived types that can be casted
-
- int get_value( SnmpSyntax &val);
- // gets a general value
-
- SmiUINT32 get_syntax();
- // return the current syntax
- // Or.. if a V2 VB exception is present then return the exception value
-
- friend void set_exception_status( Vb *vb, const SmiUINT32 status);
- // set the exception status
-
- char *to_string();
- // return fomatted version of this object
-
- char *to_string_value();
- // returns a formatted version of the value
-
- char *to_string_oid();
- // returns a formatted version of the value
-
-protected:
- char *output_;
- // display vb as [ oid / value ]
-
- Oid iv_vb_oid_;
- // a vb is made up of a oid
-
- SnmpSyntax *iv_vb_value_;
- // and a value...
-
- SmiUINT32 exception_status_;
- // are there any vb exceptions??
-
- void free_vb();
-};
-
-#endif // VB_CLS_
-
diff --git a/ASNMP/asnmp/wpdu.cpp b/ASNMP/asnmp/wpdu.cpp
deleted file mode 100644
index 43c38d9a5e6..00000000000
--- a/ASNMP/asnmp/wpdu.cpp
+++ /dev/null
@@ -1,520 +0,0 @@
-// $Id$
-
-// ============================================================================
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// wpdu.cpp
-//
-// = DESCRIPTION
-// Adapter class. Converts between raw wire format and Pdu objects
-// that can be stuffed out a I/O port or reconstructed
-//
-// = AUTHOR
-// Michael R. MacFaden rework the class api and impl using ACE
-// Peter E Mellquist implementation/code from snmp++ snmpmsg class
-//
-// ============================================================================
-
-#include "asnmp/wpdu.h"
-#include <ace/Log_Msg.h>
-
-#define DEFINE_TRAP_CONSTANTS_
-#include "asnmp/enttraps.h"
-
-ACE_RCSID(asnmp, wpdu, "$Id$")
-
-#define MAX_COMM_STR_LEN 255
-#define V1_COLD_START 0
-#define V1_WARM_START 1
-#define V1_LINK_DOWN 2
-#define V1_LINK_UP 3
-#define V1_AUTH_FAILURE 4
-#define V1_EGP_NEIGHBOR_LOSS 5
-#define V1_ENT_SPECIFIC 6
-
-inline
-void reset_iov(iovec& iov)
-{
- iov.iov_base = 0;
- iov.iov_len = 0;
-}
-
-wpdu::wpdu(const Pdu& pdu, const UdpTarget& target):
- valid_flag_(SNMP_CLASS_INVALID ), comm_len(MAX_COMM_STR_LEN)
-{
- reset_iov(iovec_);
- version_ = target.get_version();
- int status;
- OctetStr comm_str;
-
- community_name[0] = 0;
-
- snmp_pdu *raw_pdu; // create a raw pdu
- raw_pdu = cmu_snmp::pdu_create( (int) pdu.get_type());
- if (!raw_pdu) {
- valid_flag_ = SNMP_CLASS_RESOURCE_UNAVAIL;
- return;
- }
-
- raw_pdu->reqid = pdu.get_request_id();
- raw_pdu->errstat= (unsigned long) pdu.get_error_status();
- raw_pdu->errindex= (unsigned long) pdu.get_error_index();
-
- switch (raw_pdu->command) {
- case sNMP_PDU_GET:
- case sNMP_PDU_GETNEXT:
- target.get_read_community(comm_str);
- break;
-
- case sNMP_PDU_SET:
- target.get_write_community(comm_str);
- break;
-
- case sNMP_PDU_V1TRAP:
- target.get_read_community(comm_str);
- if (set_trap_info(raw_pdu, pdu)) // will free raw_pdu
- return;
- break;
- case sNMP_PDU_RESPONSE:
- break;
-
- default:
- ACE_ASSERT(0);
- return;
- }
-
- if (load_vbs(raw_pdu, pdu)) {
- cmu_snmp::free_pdu( raw_pdu);
- valid_flag_ = SNMP_CLASS_RESOURCE_UNAVAIL;
- return;
- }
-
- // TODO: determine how big raw_pdu serializes out to
- iovec_.iov_len = target.get_max_pdu_size();
- ACE_NEW(iovec_.iov_base, char [iovec_.iov_len]);
-
- // create raw byte stream
- status = cmu_snmp::build( raw_pdu,
- (unsigned char *)iovec_.iov_base,
- (int *) &iovec_.iov_len,
- target.get_version(),
- comm_str.data(), comm_str.length());
- if ( status != 0) {
- valid_flag_ = SNMP_ERROR_WRONG_ENCODING;
- cmu_snmp::free_pdu( raw_pdu);
- return;
- }
-
- cmu_snmp::free_pdu( raw_pdu);
- valid_flag_ = SNMP_CLASS_SUCCESS;
-}
-
-int wpdu::set_trap_info(snmp_pdu *raw_pdu, const Pdu& pdu) const
-{
- Oid enterprise;
- Oid trapid; // validate caller has set this correctly
- pdu.get_notify_id( trapid);
- if ( !trapid.valid() || trapid.length() < 2 ) {
- cmu_snmp::free_pdu( raw_pdu);
- return SNMP_CLASS_INVALID_NOTIFYID;
- }
-
-
- raw_pdu->specific_type=0;
-
- // TODO: object should emit numeric instead of this kind of mess...
- if ( trapid == coldStart)
- raw_pdu->trap_type = V1_COLD_START; // cold start
- else if ( trapid == warmStart)
- raw_pdu->trap_type = V1_WARM_START; // warm start
- else if( trapid == linkDown)
- raw_pdu->trap_type = V1_LINK_DOWN; // link down
- else if ( trapid == linkUp)
- raw_pdu->trap_type = V1_LINK_UP; // link up
- else if ( trapid == authenticationFailure )
- raw_pdu->trap_type = V1_AUTH_FAILURE; // authentication failure
- else if ( trapid == egpNeighborLoss)
- raw_pdu->trap_type = V1_EGP_NEIGHBOR_LOSS; // egp neighbor loss
- else {
- raw_pdu->trap_type = V1_ENT_SPECIFIC; // enterprise specific
- // last oid subid is the specific value
- // if 2nd to last subid is "0", remove it
- // enterprise is always the notify oid prefix
- raw_pdu->specific_type = (int) trapid[(int) (trapid.length() - 1)];
- trapid.trim(1);
- if ( trapid[(int)(trapid.length() - 1)] == 0 )
- trapid.trim(1);
- enterprise = trapid;
- }
-
- if ( raw_pdu->trap_type != V1_ENT_SPECIFIC)
- pdu.get_notify_enterprise( enterprise);
- if ( enterprise.length() > 0) {
- // note!! To the contrary, enterprise OID val is
- // copied here and raw_pdu->enterprise is freed in free_pdu
- // as it should be (HDN)
- // these are hooks into an SNMP++ oid
- // and therefor the raw_pdu enterprise
- // should not free them. null them out!!
- SmiLPOID rawOid;
- rawOid = enterprise.oidval();
- // HDN - enterprise is a local object, cannot simply assign pointer
- //raw_pdu->enterprise = rawOid->ptr;
- raw_pdu->enterprise_length = (int) rawOid->len;
- ACE_NEW_RETURN(raw_pdu->enterprise,
- oid[raw_pdu->enterprise_length],-1);
- ACE_OS::memcpy((char *)raw_pdu->enterprise,(char *)rawOid->ptr,
- raw_pdu->enterprise_length * sizeof(oid));
- }
-
- TimeTicks timestamp;
- pdu.get_notify_timestamp( timestamp);
- raw_pdu->time = ( unsigned long) timestamp;
-
- // HDN - set agent addr using the local hostname if possible
- char localHostName[MAXHOSTNAMELEN];
- Snmp::get_host_name(localHostName, MAXHOSTNAMELEN);
- if (ACE_OS::strlen(localHostName) > 0) {
- GenAddress addr(localHostName);
- OctetStr octet;
- addr.to_octet(octet);
- ACE_OS::memcpy(&(raw_pdu->agent_addr.sin_addr),
- octet.data(),
- octet.length());
- }
-
- return 0;
-}
-
-wpdu::wpdu(const iovec& iov): valid_flag_(0),comm_len(MAX_COMM_STR_LEN)
-{
- community_name[0] = 0;
- reset_iov(iovec_);
- version_ = version1; // TODO: figure where this should come from
- ACE_NEW(iovec_.iov_base, char[iov.iov_len]);
- if (!iovec_.iov_base) {
- valid_flag_ = SNMP_CLASS_RESOURCE_UNAVAIL;
- return;
- }
-
- copy_iovec(iovec_, iov);
- valid_flag_ = SNMP_CLASS_SUCCESS;
-}
-
-wpdu::wpdu(): valid_flag_(0), comm_len(MAX_COMM_STR_LEN)
-{
- community_name[0] = 0;
- reset_iov(iovec_);
- version_ = version1; // TODO: figure where this should come from
-}
-
-int wpdu::valid() const
-{
- return (valid_flag_ == SNMP_CLASS_SUCCESS);
-}
-
-int wpdu::load_vbs(snmp_pdu *raw_pdu, const Pdu& pdu)
-{
- int status = 0;
-
- // load up the payload
- // for all Vbs in list, add them to the pdu
- int vb_count;
- Vb tempvb;
- Oid tempoid;
- SmiLPOID smioid;
- SmiVALUE smival;
-
- vb_count = pdu.get_vb_count();
-
- for (int z = 0; z < vb_count; z++) {
- pdu.get_vb( tempvb, z);
- tempvb.get_oid( tempoid);
- smioid = tempoid.oidval();
- // what are we trying to convert here (vb oid part or value part)
- status = convert_vb_to_smival( tempvb, &smival );
- if ( status != SNMP_CLASS_SUCCESS)
- return status;
-
- // add the var to the raw pdu
- cmu_snmp::add_var(raw_pdu, smioid->ptr, (int) smioid->len, &smival);
- free_smival_descriptor( &smival);
- }
-
- return status;
-}
-
-// supports overlapped copies
-// static
-void wpdu::copy_iovec(iovec& dest, const iovec& src)
-{
- if (&dest == &src)
- return;
-
- ACE_OS:: memmove( dest.iov_base, src.iov_base, src.iov_len);
- dest.iov_len = src.iov_len;
-}
-
-int wpdu::convert_vb_to_smival( Vb &tempvb, SmiVALUE *smival )
-{
- smival->syntax = tempvb.get_syntax();
-
- switch ( smival->syntax ) {
-
- case sNMP_SYNTAX_NULL:
- break;
-
- // case sNMP_SYNTAX_INT32:
- case sNMP_SYNTAX_INT:
- {
- SnmpInt32 tmp;
- tempvb.get_value(tmp);
- smival->value.sNumber = tmp;
- }
- break;
-
- // case sNMP_SYNTAX_UINT32:
- case sNMP_SYNTAX_GAUGE32:
- case sNMP_SYNTAX_CNTR32:
- case sNMP_SYNTAX_TIMETICKS:
- {
- SnmpUInt32 tmp;
- tempvb.get_value(tmp);
- smival->value.uNumber = tmp;
- }
- break;
-
- // case Counter64
- case sNMP_SYNTAX_CNTR64:
- {
- Counter64 c64;
- tempvb.get_value(c64);
- smival->value.hNumber.hipart = c64.high();
- smival->value.hNumber.lopart = c64.low();
- }
- break;
-
- // OID syntax
- case sNMP_SYNTAX_OID:
- {
- Oid tmpoid;
- tmpoid.oidval();
- tempvb.get_value(tmpoid);
- SmiLPOID smi = tmpoid.oidval();
- smival->value.oid.len = tmpoid.length();
- ACE_NEW_RETURN(smival->value.oid.ptr,
- SmiUINT32 [smival->value.oid.len], 1);
- ACE_OS::memcpy(smival->value.oid.ptr, smi->ptr,
- smival->value.oid.len *sizeof(SmiUINT32));
- }
- break;
-
- case sNMP_SYNTAX_BITS:
- case sNMP_SYNTAX_OCTETS:
- case sNMP_SYNTAX_IPADDR:
- {
- OctetStr os;
- tempvb.get_value(os);
- smival->value.string.ptr = 0;
- smival->value.string.len = os.length();
- if ( smival->value.string.len > 0 ) {
- ACE_NEW_RETURN(smival->value.string.ptr,
- SmiBYTE [smival->value.string.len], 1);
- if ( smival->value.string.ptr ) {
- for (int i=0; i<(int) smival->value.string.len ; i++)
- smival->value.string.ptr[i] = os[i];
- }
- else {
- smival->syntax = sNMP_SYNTAX_NULL; // invalidate the smival
- return SNMP_CLASS_RESOURCE_UNAVAIL;
- }
- }
- }
- break;
-
- default:
- ACE_DEBUG((LM_DEBUG, "wpdu::convert_vb_to_smival did not convert vb\n"));
- // ACE_ASSERT(0);
- } // switch
-
- return 0;
-}
-
-// free a SMI value
-void wpdu::free_smival_descriptor( SmiVALUE *smival )
-{
- switch ( smival->syntax ) {
- case sNMP_SYNTAX_OCTETS:
- case sNMP_SYNTAX_OPAQUE:
- case sNMP_SYNTAX_IPADDR:
- case sNMP_SYNTAX_BITS: // obsoleted in SNMPv2 Draft Std
- delete [] smival->value.string.ptr;
- break;
-
- case sNMP_SYNTAX_OID:
- delete [] smival->value.oid.ptr;
- break;
- }
- smival->syntax = sNMP_SYNTAX_NULL;
-}
-
-
-wpdu::~wpdu()
-{
- delete [] iovec_.iov_base;
-}
-
-const iovec& wpdu::get_buffer() const
-{
- return iovec_;
-}
-
-// return a pdu from a buffer
-int wpdu::get_pdu(Pdu& pdu, snmp_version& version)
-{
- if (iovec_.iov_len == 0)
- return -1; // NO DATA
-
- snmp_pdu *raw_pdu;
- raw_pdu = cmu_snmp::pdu_create(0);
- if (!raw_pdu) {
- return SNMP_CLASS_RESOURCE_UNAVAIL;
- }
-
- // max value a client can send us - TODO: replace this with an
- // api to get actual string length
- int status = cmu_snmp::parse( raw_pdu, (unsigned char *)iovec_.iov_base,
- community_name, comm_len,
- version, iovec_.iov_len);
- if (status != 0)
- return SNMP_CLASS_INTERNAL_ERROR;
-
- community_name[comm_len] = 0; // set null based on returned length
- set_request_id( &pdu, raw_pdu->reqid);
- set_error_status( &pdu, (int) raw_pdu->errstat);
- set_error_index( &pdu, (int) raw_pdu->errindex);
- pdu.set_type( raw_pdu->command);
-
- if (restore_vbs(pdu, raw_pdu)) {
- cmu_snmp::free_pdu(raw_pdu);
- return SNMP_CLASS_INTERNAL_ERROR;
- }
-
- cmu_snmp::free_pdu(raw_pdu);
- return 0;
-}
-
-int wpdu::restore_vbs(Pdu& pdu, const snmp_pdu *raw_pdu) const
-{
- Vb tempvb;
- Oid tempoid;
- struct variable_list *vp;
-
- for(vp = raw_pdu->variables; vp; vp = vp->next_variable) {
-
- // extract the oid portion
- tempoid.set_data( (unsigned long *)vp->name,
- ( unsigned int) vp->name_length);
- tempvb.set_oid( tempoid);
-
- // extract the value portion
- switch(vp->type) {
-
- // octet string
- case sNMP_SYNTAX_OCTETS:
- case sNMP_SYNTAX_OPAQUE:
- {
- OctetStr octets( (char *) vp->val.string,
- (long) vp->val_len);
- tempvb.set_value( octets);
- }
- break;
-
- // object id
- case sNMP_SYNTAX_OID:
- {
- Oid oid( (unsigned long*) vp->val.objid,
- (int) vp->val_len);
- tempvb.set_value( oid);
- }
- break;
-
- // timeticks
- case sNMP_SYNTAX_TIMETICKS:
- {
- TimeTicks timeticks( (unsigned long) *(vp->val.integer));
- tempvb.set_value( timeticks);
- }
- break;
-
- // 32 bit counter
- case sNMP_SYNTAX_CNTR32:
- {
- Counter32 counter32( (unsigned long) *(vp->val.integer));
- tempvb.set_value( counter32);
- }
- break;
-
- // ip address
- case sNMP_SYNTAX_IPADDR:
- {
- char buffer[20];
- sprintf( buffer,"%d.%d.%d.%d",
- vp->val.string[0],
- vp->val.string[1],
- vp->val.string[2],
- vp->val.string[3]);
- IpAddress ipaddress( buffer);
- tempvb.set_value( ipaddress);
- }
- break;
-
- // 32 bit integer
- case sNMP_SYNTAX_INT:
- {
- SnmpInt32 int32( (long) *(vp->val.integer));
- tempvb.set_value( int32);
- }
- break;
-
- // 32 bit unsigned integer
- case sNMP_SYNTAX_UINT32:
- {
- SnmpUInt32 uint32( (unsigned long) *(vp->val.integer));
- tempvb.set_value( uint32);
- }
- break;
-
- // v2 counter 64's
- case sNMP_SYNTAX_CNTR64:
- break;
-
- case sNMP_SYNTAX_NULL:
- tempvb.set_null();
- break;
-
- // v2 vb exceptions
- case sNMP_SYNTAX_NOSUCHOBJECT:
- case sNMP_SYNTAX_NOSUCHINSTANCE:
- case sNMP_SYNTAX_ENDOFMIBVIEW:
- set_exception_status( &tempvb, vp->type);
- break;
-
- default:
- tempvb.set_null();
-
- } // end switch
-
- // append the vb to the pdu
- pdu += tempvb;
- }
-
- return 0;
-}
-
-const unsigned char *wpdu::get_community() const
-{
- return community_name;
-}
diff --git a/ASNMP/asnmp/wpdu.h b/ASNMP/asnmp/wpdu.h
deleted file mode 100644
index a4d4bb1d0c1..00000000000
--- a/ASNMP/asnmp/wpdu.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*-C++-*- */
-// $Id$
-#ifndef WPDU_H_
-#define WPDU_H_
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// wpdu.h
-//
-// = DESCRIPTION
-// Adapter class. Converts a Pdu and GenTarget into a format
-// that can be stuffed out a I/O port
-//
-// = AUTHOR
-// Michael R. MacFaden re-worked api, use ACE API
-// Peter E Mellquist wrote original class snmpmsg
-//
-// ============================================================================
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "asnmp/asn1.h"
-#include "asnmp/pdu.h"
-#include "asnmp/target.h"
-
-// this is an adapter class, it peforms the following transformations
-// PDU / Target -> iovec buffer
-// iovec buffer -> PDU / Target
-struct snmp_pdu;
-class ACE_Export wpdu
- // = TITLE
- // Implement an Adapter pattern between CMU SNMP and HP SNMP++
- //
-{
-public:
-
- wpdu(const Pdu& pdu, const UdpTarget& target);
- // construct CMU data from HP SNMP++ objects
- wpdu(const iovec& buffer);
- // construct HP SNMP++ objects from raw buffer via CMU SNMP datatypes
- wpdu(); // same as using iovec?
-
- ~wpdu();
-
- int valid() const;
- // constructor completed ok? rc = 1 else 0
-
- const iovec& get_buffer() const;
- // return raw data stream via CMU code
-
- int get_pdu(Pdu& pdu, snmp_version& version);
- // return HP SNMP++ pdu
-
- const unsigned char *get_community() const;
- // return community strptr
-
-private:
- int convert_vb_to_smival( Vb &tempvb, SmiVALUE *smival );
- int load_vbs(snmp_pdu *raw_pdu, const Pdu& pdu);
- int restore_vbs(Pdu& pdu, const snmp_pdu *raw_pdu) const;
- void free_smival_descriptor( SmiVALUE *smival );
- static void copy_iovec(iovec& dest, const iovec& src);
- int set_trap_info(snmp_pdu *raw_pdu, const Pdu& pdu) const;
-
- iovec iovec_;
- // raw format
-
- int valid_flag_;
- // object construction state
-
- snmp_version version_;
- // snmp version
-
- unsigned char community_name[MAX_COMM_STR_LEN];
- unsigned long comm_len; // = MAX_COMM_STR_LEN;
-};
-
-#endif // WPDU_H_
diff --git a/ASNMP/examples/Makefile b/ASNMP/examples/Makefile
deleted file mode 100644
index 64ca08c687c..00000000000
--- a/ASNMP/examples/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-# @(#)Makefile 1.1 10/18/96
-#
-# Makefile for the ACE+SNMP examples directory
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-DIRS = get \
- next \
- set \
- trap \
- walk
-
-#----------------------------------------------------------------------------
-# 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/ASNMP/examples/get/Makefile b/ASNMP/examples/get/Makefile
deleted file mode 100644
index be0a6a633c7..00000000000
--- a/ASNMP/examples/get/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for get application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-
-# ACE+SNMP
-BIN = get get_async
-CCFLAGS = -I$(ACE_ROOT)/ASNMP/
-LSRC = $(addsuffix .cpp,$(BIN))
-LDLIBS := -L$(ACE_ROOT)/ASNMP/asnmp -lasnmp $(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.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.
-
-
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ASNMP/examples/get/get.cpp b/ASNMP/examples/get/get.cpp
deleted file mode 100644
index 5c05bd5eac5..00000000000
--- a/ASNMP/examples/get/get.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// get.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::get API
-// to access an SNMP Version 1 agent.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework API/ACE integration
-//
-// ============================================================================
-
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/snmp.h"
-#include "ace/Get_Opt.h"
-
-ACE_RCSID(get, get, "$Id$")
-
-//
-// SNMPv1 Get Application
-//
-class getapp {
- public:
- getapp(int argc, char **argv); // process command line args
- int valid() const; // verify transaction can proceed
- int run(); // issue transaction
- static void usage(); // operator help message
-
- private:
- getapp(const getapp&);
-
- UdpAddress address_;
- Pdu pdu_; // construct a request Pdu
- Oid oid_;
- OctetStr community_;
- Snmp snmp_;
- UdpTarget target_;
- int valid_;
-};
-
-
-// main entry point
-int main( int argc, char *argv[])
-{
- getapp get(argc, argv);
- if (get.valid())
- return get.run();
- else
- getapp::usage();
- return 1;
-}
-
-int getapp::valid() const
-{
- return valid_;
-}
-getapp::getapp(int argc, char *argv[]): valid_(0)
-{
- Oid req, def_oid("1.3.6.1.2.1.1.1.0"); // default is sysDescr
- if ( argc < 2)
- return;
-
- address_ = argv[argc - 1];
- if ( !address_.valid()) {
- cout << "ERROR: Invalid IPv4 address or DNS hostname: " \
- << argv[argc] << "\n";
- return;
- }
-
- ACE_Get_Opt get_opt (argc, argv, "o:c:r:t:p:");
- for (int c; (c = get_opt ()) != -1; )
- switch (c)
- {
- case 'o':
- req = get_opt.optarg;
- if (req.valid() == 0)
- cout << "ERROR: oid value: " <<get_opt.optarg \
- << "is not valid. using default.\n";
- break;
-
- case 'c':
- community_ = get_opt.optarg;
- target_.set_read_community(community_);
- break;
-
- case 'r':
- target_.set_retry(ACE_OS::atoi (get_opt.optarg));
- break;
-
- case 't':
- target_.set_timeout(ACE_OS::atoi (get_opt.optarg));
- break;
-
- default:
- break;
- }
-
- Vb vb; // construct a Vb object
- if (req.valid())
- vb.set_oid( req); // set the Oid portion of the Vb
- else {
- vb.set_oid( def_oid); // set the Oid portion of the Vb
- }
- pdu_ += vb;
- vb.get_oid(oid_); // store for later use
- valid_ = 1;
-}
-
-void getapp::usage()
-{
- cout << "Usage:\n";
- cout << "get [options] dotted-quad | DNSName[:port]\n";
- cout << " -o OID defaults to 1.3.6.1.2.1.1.1.0 (mibII sysDescr.0) \n";
- cout << " -c Community_name, default is 'public' \n";
- cout << " -r N retries default is N = 1 retry\n";
- cout << " -t N timeout in seconds default is 1 second" << endl;
-}
-
-
-int getapp::run()
-{
-
- //----------[ create a ASNMP session ]-----------------------------------
- if ( snmp_.valid() != SNMP_CLASS_SUCCESS) {
- cout << "\nASNMP:ERROR:Create session failed: "<<
- snmp_.error_string()<< "\n";
- return 1;
- }
-
- //--------[ build up ASNMP object needed ]-------------------------------
- if (address_.get_port() == 0)
- address_.set_port(DEF_AGENT_PORT);
- target_.set_address( address_); // make a target using the address
-
- //-------[ issue the request, blocked mode ]-----------------------------
- cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \
- " GET SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n";
- target_.get_address(address_); // target updates port used
- int rc;
- char *name = address_.resolve_hostname(rc);
- if (rc)
- name = "<< did not resolve via gethostbyname() >>";
-
- cout << "Device: " << address_ << " " << name << "\n";
- cout << "[ Retries=" << target_.get_retry() << " \
- Timeout=" << target_.get_timeout() <<" ms " << "Community=" << \
- community_.to_string() << " ]"<< endl;
-
- if (snmp_.get( pdu_, target_) == SNMP_CLASS_SUCCESS) {
- Vb vb;
- // check to see if there are any errors
- if (pdu_.get_error_status()) {
- cout << "ERROR: agent replied as follows\n";
- cout << pdu_.agent_error_reason() << endl;
- }
- else {
- VbIter iter(pdu_);
- while (iter.next(vb)) {
- cout << "\tOid = " << vb.to_string_oid() << "\n";
- cout << "\tValue = " << vb.to_string_value() << "\n";
- }
- }
- }
- else {
- char *ptr = snmp_.error_string();
- cout << "ASNMP:ERROR: get command failed reason: " << ptr << endl;
- }
-
- cout << "\nASNMP:INFO: command completed normally.\n"<< endl;
- return 0;
-}
-
diff --git a/ASNMP/examples/get/get_async.cpp b/ASNMP/examples/get/get_async.cpp
deleted file mode 100644
index 1c699a331cd..00000000000
--- a/ASNMP/examples/get/get_async.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-// ============================================================================
-// $Id$
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// get.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::get API
-// to access an SNMP Version 1 agent.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework API/ACE integration
-//
-// ============================================================================
-
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/snmp.h"
-#include "ace/Get_Opt.h"
-
-ACE_RCSID(get, get_async, "$Id$")
-
-//
-// SNMPv1 Get Application
-//
-class getapp : public Snmp_Result {
- public:
- getapp(int argc, char **argv); // process command line args
- int valid() const; // verify transaction can proceed
- int run(); // issue transaction
- static void usage(); // operator help message
-
- virtual void result(Snmp * r, int rc);
-
- private:
- getapp(const getapp&);
-
- UdpAddress address_;
- Pdu pdu_; // construct a request Pdu
- Oid oid_;
- OctetStr community_;
- Snmp snmp_;
- UdpTarget target_;
- int valid_;
-};
-
-
-// main entry point
-int main( int argc, char *argv[])
-{
- getapp get(argc, argv);
- if (get.valid())
- return get.run();
- else
- getapp::usage();
- return 1;
-}
-
-int getapp::valid() const
-{
- return valid_;
-}
-getapp::getapp(int argc, char *argv[]): valid_(0)
-{
- Oid req, def_oid("1.3.6.1.2.1.1.1.0"); // default is sysDescr
- if ( argc < 2)
- return;
-
- address_ = argv[argc - 1];
- if ( !address_.valid()) {
- cout << "ERROR: Invalid IPv4 address or DNS hostname: " \
- << argv[argc] << "\n";
- return;
- }
-
- ACE_Get_Opt get_opt (argc, argv, "o:c:r:t:p:");
- for (int c; (c = get_opt ()) != -1; )
- switch (c)
- {
- case 'o':
- req = get_opt.optarg;
- if (req.valid() == 0)
- cout << "ERROR: oid value: " <<get_opt.optarg \
- << "is not valid. using default.\n";
- break;
-
- case 'c':
- community_ = get_opt.optarg;
- target_.set_read_community(community_);
- break;
-
- case 'r':
- target_.set_retry(ACE_OS::atoi (get_opt.optarg));
- break;
-
- case 't':
- target_.set_timeout(ACE_OS::atoi (get_opt.optarg));
- break;
-
- default:
- break;
- }
-
- Vb vb; // construct a Vb object
- if (req.valid())
- vb.set_oid( req); // set the Oid portion of the Vb
- else {
- vb.set_oid( def_oid); // set the Oid portion of the Vb
- }
- pdu_ += vb;
- vb.get_oid(oid_); // store for later use
- valid_ = 1;
-}
-
-void getapp::usage()
-{
- cout << "Usage:\n";
- cout << "get [options] dotted-quad | DNSName[:port]\n";
- cout << " -o OID defaults to 1.3.6.1.2.1.1.1.0 (mibII sysDescr.0) \n";
- cout << " -c Community_name, default is 'public' \n";
- cout << " -r N retries default is N = 1 retry\n";
- cout << " -t N timeout in seconds default is 1 second" << endl;
-}
-
-
-int getapp::run()
-{
-
- //----------[ create a ASNMP session ]-----------------------------------
- if ( snmp_.valid() != SNMP_CLASS_SUCCESS) {
- cout << "\nASNMP:ERROR:Create session failed: "<<
- snmp_.error_string()<< "\n";
- return 1;
- }
-
- //--------[ build up ASNMP object needed ]-------------------------------
- if (address_.get_port() == 0)
- address_.set_port(DEF_AGENT_PORT);
- target_.set_address( address_); // make a target using the address
-
- //-------[ issue the request, blocked mode ]-----------------------------
- cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \
- " GET SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n";
- target_.get_address(address_); // target updates port used
- int rc;
- char *name = address_.resolve_hostname(rc);
- if (rc)
- name = "<< did not resolve via gethostbyname() >>";
-
- cout << "Device: " << address_ << " " << name << "\n";
- cout << "[ Retries=" << target_.get_retry() << " \
- Timeout=" << target_.get_timeout() <<" ms " << "Community=" << \
- community_.to_string() << " ]"<< endl;
-
- if (snmp_.get( pdu_, target_, this) != SNMP_CLASS_SUCCESS) {
- char *ptr = snmp_.error_string();
- cout << "ASNMP:ERROR: get command failed reason: " << ptr << endl;
- } else {
- ACE_Reactor::instance()->run_event_loop();
- }
- return 0;
-}
-
-void getapp::result(Snmp *, int rc)
-{
- Vb vb;
- if (rc < 0)
- {
- char *ptr = snmp_.error_string();
- cout << "ASNMP:ERROR: get command failed reason: " << ptr << endl;
- } else {
- // check to see if there are any errors
- if (pdu_.get_error_status()) {
- cout << "ERROR: agent replied as follows\n";
- cout << pdu_.agent_error_reason() << endl;
- }
- else {
- VbIter iter(pdu_);
- while (iter.next(vb)) {
- cout << "\tOid = " << vb.to_string_oid() << "\n";
- cout << "\tValue = " << vb.to_string_value() << "\n";
- }
- }
- }
- cout << "\nASNMP:INFO: command completed normally.\n"<< endl;
- ACE_Reactor::instance()->end_event_loop();
-}
diff --git a/ASNMP/examples/next/Makefile b/ASNMP/examples/next/Makefile
deleted file mode 100644
index 2d1aab308d6..00000000000
--- a/ASNMP/examples/next/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for next sample application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-
-# ACE+SNMP
-BIN = next
-CCFLAGS = -I$(ACE_ROOT)/ASNMP/
-LSRC = $(addsuffix .cpp,$(BIN))
-
-LDLIBS := -L$(ACE_ROOT)/ASNMP/asnmp -lasnmp $(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.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.
-
-
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ASNMP/examples/next/next.cpp b/ASNMP/examples/next/next.cpp
deleted file mode 100644
index 44322eb0a00..00000000000
--- a/ASNMP/examples/next/next.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// next.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::get_next API
-// to access an SNMP Version 1 agent.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework API/ACE integration
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/snmp.h"
-#include "ace/Get_Opt.h"
-
-ACE_RCSID(next, next, "$Id$")
-
-//
-// SNMPv1 Get Next Application
-//
-class nextapp {
- public:
- nextapp(int argc, char **argv); // process command line args
- int valid() const; // verify transaction can proceed
- int run(); // issue transaction
- static void usage(); // operator help message
-
- private:
- nextapp(const nextapp&);
-
- UdpAddress address_;
- Pdu pdu_; // construct a request Pdu
- Oid oid_;
- OctetStr community_;
- Snmp snmp_;
- UdpTarget target_;
- int valid_;
-};
-
-
-// main entry point
-int main( int argc, char *argv[])
-{
- nextapp get(argc, argv);
- if (get.valid())
- return get.run();
- else
- nextapp::usage();
- return 1;
-}
-
-int nextapp::valid() const
-{
- return valid_;
-}
-nextapp::nextapp(int argc, char *argv[]): valid_(0)
-{
- Oid req, def_oid("1.3.6.1.2.1.1.1.0"); // default is sysDescr
- if ( argc < 2)
- return;
-
- address_ = argv[argc - 1];
- if ( !address_.valid()) {
- cout << "ERROR: Invalid IPv4 address or DNS hostname: " \
- << argv[argc] << "\n";
- return;
- }
-
- ACE_Get_Opt get_opt (argc, argv, "o:c:r:t:");
- for (int c; (c = get_opt ()) != -1; )
- switch (c)
- {
- case 'o':
- req = get_opt.optarg;
- if (req.valid() == 0)
- cout << "ERROR: oid value: " <<get_opt.optarg \
- << "is not valid. using default.\n";
- break;
-
- case 'c':
- community_ = get_opt.optarg;
- target_.set_read_community(community_);
- break;
-
- case 'r':
- target_.set_retry(ACE_OS::atoi (get_opt.optarg));
- break;
-
- case 't':
- target_.set_timeout(ACE_OS::atoi (get_opt.optarg));
- break;
-
- default:
- break;
- }
-
- Vb vb; // construct a Vb object
- if (req.valid())
- vb.set_oid( req); // set the Oid portion of the Vb
- else {
- vb.set_oid( def_oid); // set the Oid portion of the Vb
- }
- pdu_ += vb;
- vb.get_oid(oid_); // store for later use
- valid_ = 1;
-}
-
-void nextapp::usage()
-{
- cout << "Usage:\n";
- cout << "next [options] dotted-quad | DNSName[:port]\n";
- cout << " -o OID starts with oid after 1.3.6.1.2.1.1.1.0 (mibII sysDescr.0) \n";
- cout << " -c Community_name, default is 'public' \n";
- cout << " -r N retries default is N = 1 retry\n";
- cout << " -t N timeout in seconds default is 1 second" << endl;
-}
-
-
-int nextapp::run()
-{
-
- //----------[ create a ASNMP session ]-----------------------------------
- if ( snmp_.valid() != SNMP_CLASS_SUCCESS) {
- cout << "\nASNMP:ERROR:Create session failed: "<<
- snmp_.error_string()<< "\n";
- return 1;
- }
-
- //--------[ build up ASNMP object needed ]-------------------------------
- if (address_.get_port() == 0)
- address_.set_port(DEF_AGENT_PORT);
- target_.set_address( address_); // make a target using the address
-
- //-------[ issue the request, blocked mode ]-----------------------------
- cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \
- " GET_NEXT SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n";
- target_.get_address(address_); // target updates port used
- int rc;
- char *name = address_.resolve_hostname(rc);
- if (rc)
- name = "<< did not resolve via gethostbyname() >>";
-
- cout << "Device: " << address_ << " " << name << "\n";
- cout << "[ Retries=" << target_.get_retry() << " \
- Timeout=" << target_.get_timeout() <<" ms " << "Community=" << \
- community_.to_string() << " ]"<< endl;
-
- if (snmp_.get_next( pdu_, target_) == SNMP_CLASS_SUCCESS) {
- Vb vb;
- // check to see if there are any errors
- if (pdu_.get_error_status()) {
- cout << "ERROR: agent replied as follows\n";
- cout << pdu_.agent_error_reason() << endl;
- }
- else {
- VbIter iter(pdu_);
- while (iter.next(vb)) {
- cout << "\tOid = " << vb.to_string_oid() << "\n";
- cout << "\tValue = " << vb.to_string_value() << "\n";
- }
- }
- }
- else {
- char *ptr = snmp_.error_string();
- cout << "ASNMP:ERROR: get_next command failed reason: " << ptr << endl;
- }
- cout << "ASNMP:INFO:command completed normally. ACE Rocks...\n"<< endl;
- return 0;
-}
-
diff --git a/ASNMP/examples/set/Makefile b/ASNMP/examples/set/Makefile
deleted file mode 100644
index dedab201b6a..00000000000
--- a/ASNMP/examples/set/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for set sample application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-
-# ACE+SNMP
-BIN = set
-CCFLAGS = -I$(ACE_ROOT)/ASNMP/
-LSRC = $(addsuffix .cpp,$(BIN))
-
-LDLIBS := -L$(ACE_ROOT)/ASNMP/asnmp -lasnmp $(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.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.
-
-
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ASNMP/examples/set/set.cpp b/ASNMP/examples/set/set.cpp
deleted file mode 100644
index ebbd022d6d4..00000000000
--- a/ASNMP/examples/set/set.cpp
+++ /dev/null
@@ -1,263 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// set.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::set API
-// to update an oid in an SNMP Version 1 agent.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework API/ACE integration
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/snmp.h"
-#include "ace/Get_Opt.h"
-
-ACE_RCSID(set, set, "$Id$")
-
-//
-// SNMPv1 Set Application
-//
-class set {
- public:
- set(int argc, char **argv); // process command line args
- int valid() const; // verify transaction can proceed
- int run(); // issue transaction
- static void usage(); // operator help message
-
- private:
- set(const set&);
-
- UdpAddress address_;
- Pdu pdu_; // construct a request Pdu
- Oid oid_;
- OctetStr community_;
- Snmp snmp_;
- UdpTarget target_;
- int valid_;
-};
-
-
-// main entry point
-int main( int argc, char *argv[])
-{
- set get(argc, argv);
- if (get.valid())
- return get.run();
- else
- set::usage();
- return 1;
-}
-
-set::valid() const
-{
- return valid_;
-}
-
-set::set(int argc, char *argv[]): valid_(0)
-{
- Vb vb; // construct a Vb object
- Oid req;
- if ( argc < 2)
- return;
- target_.get_write_community(community_);
- address_ = argv[argc - 1];
- if ( !address_.valid()) {
- cout << "ERROR: Invalid IPv4 address or DNS hostname: " \
- << argv[argc] << "\n";
- return;
- }
-
- ACE_Get_Opt get_opt (argc, argv, "o:c:r:t:I:U:C:G:T:O:S:P:");
- for (int c; (c = get_opt ()) != -1; )
- switch (c)
- {
- case 'o':
- req = get_opt.optarg;
- if (req.valid() == 0)
- cout << "ERROR: oid value: " <<get_opt.optarg \
- << "is not valid. using default.\n";
- break;
-
- case 'c':
- community_ = get_opt.optarg;
- target_.set_write_community(community_);
- break;
-
- case 'r':
- target_.set_retry(ACE_OS::atoi (get_opt.optarg));
- break;
-
- case 't':
- target_.set_timeout(ACE_OS::atoi (get_opt.optarg));
- break;
-
- case 'I': // Integer32
- {
- SnmpInt32 o(ACE_OS::atoi(get_opt.optarg));
- vb.set_value(o);
- pdu_ += vb;
- }
- break;
-
- case 'U': // Unsigned32
- {
- SnmpUInt32 o(ACE_OS::atoi(get_opt.optarg));
- vb.set_value(o);
- pdu_ += vb;
- }
- break;
-
- case 'C': // Counter32
- {
- Counter32 o(ACE_OS::atoi(get_opt.optarg));
- vb.set_value(o);
- pdu_ += vb;
- }
- break;
-
- case 'G': // Gauge32
- {
- Gauge32 o(ACE_OS::atoi(get_opt.optarg));
- vb.set_value(o);
- pdu_ += vb;
- }
- break;
-
- case 'T': // TimeTicks
- {
- TimeTicks o(ACE_OS::atoi(get_opt.optarg));
- vb.set_value(o);
- pdu_ += vb;
- }
- break;
-
- case 'O': // Oid as a variable identifier
- {
- oid_ = get_opt.optarg;
- vb.set_oid(oid_); // when value is set, pdu updated
- }
- break;
-
- case 'S': // Octet String
- {
- OctetStr o(get_opt.optarg);
- vb.set_value(o); // set the Oid portion of the Vb
- pdu_ += vb;
- }
- break;
-
- case 'P': // Oid String as a value
- {
- Oid o(get_opt.optarg);
- vb.set_value(o); // set the Oid portion of the Vb
- pdu_ += vb;
- }
- break;
-
- default:
- break;
- }
-
- // if user didn't set anything use defaults
- if (pdu_.get_vb_count() == 0) {
- Oid def_oid("1.3.6.1.2.1.1.4.0"); // defualt is sysName
- OctetStr def_value("sysName.0 updated by ASNMP set command");
- vb.set_oid(def_oid);
- vb.set_value(def_value);
- pdu_ += vb;
- cout << "INFO: using defaults, setting sysName to : " << \
- def_value.to_string() << endl;
- }
-
- valid_ = 1;
-}
-
-void set::usage()
-{
- cout << "Usage:\n";
- cout << "next [options] dotted-quad | DNSName[:port]\n";
- cout << " -o OID starts with oid after 1.3.6.1.2.1.1.1.0 (mibII sysDescr.0) \n";
- cout << " -c Community_name, default is 'private' \n";
- cout << " -r N retries default is N = 1 retry\n";
- cout << " -t N timeout in seconds default is 1 second\n";
- cout << " -O oid_to_set -{I,U,G,S,P} value\n";
- cout << " where I=int32, U=uint32, G=gauge32, S=octet, P=oid" << endl;
-}
-
-
-int set::run()
-{
-
- //----------[ create a ASNMP session ]-----------------------------------
- if ( snmp_.valid() != SNMP_CLASS_SUCCESS) {
- cout << "\nASNMP:ERROR:Create session failed: "<<
- snmp_.error_string()<< "\n";
- return 1;
- }
-
- //--------[ build up ASNMP object needed ]-------------------------------
- if (address_.get_port() == 0)
- address_.set_port(DEF_AGENT_PORT);
- target_.set_address( address_); // make a target using the address
-
- //-------[ issue the request, blocked mode ]-----------------------------
- cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \
- " SET SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n";
- target_.get_address(address_); // target updates port used
- int rc;
- char *name = address_.resolve_hostname(rc);
- if (rc)
- name = "<< did not resolve via gethostbyname() >>";
-
- cout << "Device: " << address_ << " " << name << "\n";
- cout << "[ Retries=" << target_.get_retry() << " \
- Timeout=" << target_.get_timeout() <<" ms " << "Community=" << \
- community_.to_string() << " ]"<< endl;
-
- if (snmp_.set( pdu_, target_) == SNMP_CLASS_SUCCESS) {
- Vb vb;
- // check to see if there are any errors
- if (pdu_.get_error_status()) {
- cout << "ERROR: agent replied as follows\n";
- cout << pdu_.agent_error_reason() << endl;
- }
- else {
- VbIter iter(pdu_);
- while (iter.next(vb)) {
- cout << "\tOid = " << vb.to_string_oid() << "\n";
- cout << "\tValue = " << vb.to_string_value() << "\n";
- }
- }
- }
- else {
- char *ptr = snmp_.error_string();
- cout << "ASNMP:ERROR: set command failed reason: " << ptr << endl;
- }
- cout << "ASNMP:INFO:command completed normally.\n"<< endl;
- return 0;
-}
-
diff --git a/ASNMP/examples/trap/Makefile b/ASNMP/examples/trap/Makefile
deleted file mode 100644
index 30c2ea81c34..00000000000
--- a/ASNMP/examples/trap/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for trap sample application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-
-# ACE+SNMP
-BIN = trap
-CCFLAGS = -I$(ACE_ROOT)/ASNMP/
-LSRC = $(addsuffix .cpp,$(BIN))
-
-LDLIBS := -L$(ACE_ROOT)/ASNMP/asnmp -lasnmp $(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.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.
-
-
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ASNMP/examples/trap/purify4.1.txt b/ASNMP/examples/trap/purify4.1.txt
deleted file mode 100644
index 71760e3b724..00000000000
--- a/ASNMP/examples/trap/purify4.1.txt
+++ /dev/null
@@ -1,117 +0,0 @@
- Finished trap ( 0 errors, 0 leaked bytes)
- Purify instrumented ./trap (pid 2667 at Fri Jul 10 17:01:13 1998)
- Purify 4.1 Solaris 2, Copyright (C) 1992-1997 Rational Software Corp. All rights reserved.
- For contact information type: "purify -help"
- For TTY output, use the option "-windows=no"
- Command-line: ./trap mordor
- Options settings: -max_threads=180 -ignore-signals=SIGLWP,SIGINT \
- -cache-dir=/var/tmp/purecov -purify \
- -purify-home=/import/tools/packages/pure/purify-4.1-solaris2 -threads=yes \
- -use-internal-locks=yes -thread_stack_change=0x4000 -mt_safe_malloc=yes
- Purify licensed to YAGO SYSTEMS INC
- Purify checking enabled.
- Current file descriptors in use: 8
- FIU: file descriptor 0: <stdin>
- FIU: file descriptor 1: <stdout>
- FIU: file descriptor 2: <stderr>
- FIU: file descriptor 4: "/etc/.name_service_door", O_RDONLY
- File info: ?r--r--r-- 1 root root 0 May 20 1997
- This file descriptor was allocated from:
- _libc_open [libc.so.1]
- _nsc_trydoorcall [libc.so.1]
- _door_gethostbyname_r [gethostby_door.c]
- _get_hostserv_inetnetdir_byname [netdir_inet.c]
- gethostbyname_r [gethostbyname_r.c]
- static ACE_OS::gethostbyname_r(const char*, hostent*, char*, int*) [OS.i:4634]
- FIU: file descriptor 5: <unnamed pipe[0]>, O_RDWR
- This file descriptor was allocated from:
- pipe [rtlib.o]
- static ACE_OS::pipe(int*) [OS.i:603]
- ACE_Pipe::open(void) [Pipe.cpp:68]
- ACE_Select_Reactor_Notify::open(ACE_Select_Reactor*) [Select_Reactor.cpp:648]
- ACE_Select_Reactor::open(unsigned int, int, ACE_Sig_Handler*, ACE_Timer_Queue_T<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Recursive_Thread_Mutex>, ACE_Recursive_Thread_Mutex>*) [Select_Reactor.cpp:978]
- ACE_Select_Reactor::ACE_Select_Reactor(ACE_Sig_Handler*, ACE_Timer_Queue_T<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Recursive_Thread_Mutex>, ACE_Recursive_Thread_Mutex>*) [Select_Reactor.cpp:1028]
- FIU: file descriptor 6: <unnamed pipe[1]>, O_RDWR
- This file descriptor was allocated from:
- pipe [rtlib.o]
- static ACE_OS::pipe(int*) [OS.i:603]
- ACE_Pipe::open(void) [Pipe.cpp:68]
- ACE_Select_Reactor_Notify::open(ACE_Select_Reactor*) [Select_Reactor.cpp:648]
- ACE_Select_Reactor::open(unsigned int, int, ACE_Sig_Handler*, ACE_Timer_Queue_T<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Recursive_Thread_Mutex>, ACE_Recursive_Thread_Mutex>*) [Select_Reactor.cpp:978]
- ACE_Select_Reactor::ACE_Select_Reactor(ACE_Sig_Handler*, ACE_Timer_Queue_T<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Recursive_Thread_Mutex>, ACE_Recursive_Thread_Mutex>*) [Select_Reactor.cpp:1028]
- FIU: file descriptor 26: <reserved for Purify internal use>
- FIU: file descriptor 27: <reserved for Purify internal use>
- Memory leaked: 0 bytes (0%); potentially leaked: 0 bytes (0%)
- Purify Heap Analysis (combining suppressed and unsuppressed blocks)
- Blocks Bytes
- Leaked 2 12
- Potentially Leaked 0 0
- In-Use 44 2237
- ----------------------------------------
- Total Allocated 46 2249
- Thread Summary : 4 threads in existence
- Thread 0 [main thread]
- Stack: (0xefe00000 0xf0000000), size = 0x200000
- Thread 1
- Stack: (0xee80fc70 0xee80fde4), size = 0x174
- Thread 2
- Stack: (0xef231a70 0xef231b14), size = 0xa4
- Thread 3
- Stack: (0xee70dba8 0xee70dde4), size = 0x23c
- Program exited with status code 0.
- * Basic memory usage (including Purify overhead):
- 317744 code
- 78528 data/bss
- 66056 heap (peak use)
- 2088 stack
- * Shared library memory usage (including Purify overhead):
- 356936 libasnmp.so_pure_p3_c0_410_551 (shared code)
- 11488 libasnmp.so_pure_p3_c0_410_551 (private data)
- 2632304 libACE.so_pure_p3_c0_410_551 (shared code)
- 95524 libACE.so_pure_p3_c0_410_551 (private data)
- 75058 libsocket.so.1_pure_p3_c0_410_551 (shared code)
- 4092 libsocket.so.1_pure_p3_c0_410_551 (private data)
- 1216 libdl.so.1_pure_p3_c0_410_551 (shared code)
- 0 libdl.so.1_pure_p3_c0_410_551 (private data)
- 611922 libnsl.so.1_pure_p3_c0_410_551 (shared code)
- 115852 libnsl.so.1_pure_p3_c0_410_551 (private data)
- 7628 libposix4.so.1_pure_p3_c0_410_551 (shared code)
- 432 libposix4.so.1_pure_p3_c0_410_551 (private data)
- 135301 libm.so.1_pure_p3_c0_410_551 (shared code)
- 1332 libm.so.1_pure_p3_c0_410_551 (private data)
- 278709 libC.so.5_pure_p3_c0_410_551 (shared code)
- 59252 libC.so.5_pure_p3_c0_410_551 (private data)
- 37893 libw.so.1_pure_p3_c0_410_551 (shared code)
- 1628 libw.so.1_pure_p3_c0_410_551 (private data)
- 2196 solaris2_threads.so_pure_p3_c0_410_551 (shared code)
- 8556 solaris2_threads.so_pure_p3_c0_410_551 (private data)
- 124186 libthread.so.1_pure_p3_c0_410_551 (shared code)
- 100012 libthread.so.1_pure_p3_c0_410_551 (private data)
- 799773 libc.so.1_pure_p3_c0_410_551 (shared code)
- 34744 libc.so.1_pure_p3_c0_410_551 (private data)
- 9576 libinternal_stubs.so.1 (shared code)
- 324 libinternal_stubs.so.1 (private data)
- 15117 libintl.so.1_pure_p3_c0_410_551 (shared code)
- 1304 libintl.so.1_pure_p3_c0_410_551 (private data)
- 16092 libmp.so.1_pure_p3_c0_410_551 (shared code)
- 828 libmp.so.1_pure_p3_c0_410_551 (private data)
- 14008 libc_psr.so.1_pure_p3_c0_410_551 (shared code)
- 72 libc_psr.so.1_pure_p3_c0_410_551 (private data)
- * Memory mapped usage:
- 1048576 mmap'd at 0xee002000
- 1048576 mmap'd at 0xee104000
- 1048576 mmap'd at 0xee206000
- 1048576 mmap'd at 0xee308000
- 1048576 mmap'd at 0xee40a000
- 1048576 mmap'd at 0xee50c000
- 1048576 mmap'd at 0xee60e000
- 1048576 mmap'd at 0xee710000
- 8192 mmap'd PROT_NONE at 0xee000000
- 8192 mmap'd PROT_NONE at 0xee70e000
- 8192 mmap'd PROT_NONE at 0xee60c000
- 8192 mmap'd PROT_NONE at 0xee50a000
- 8192 mmap'd PROT_NONE at 0xee408000
- 8192 mmap'd PROT_NONE at 0xee306000
- 8192 mmap'd PROT_NONE at 0xee204000
- 8192 mmap'd PROT_NONE at 0xee102000
-
diff --git a/ASNMP/examples/trap/trap.cpp b/ASNMP/examples/trap/trap.cpp
deleted file mode 100644
index e0609e03485..00000000000
--- a/ASNMP/examples/trap/trap.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// trap.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::trap API
-// to send to an SNMP Version 1 trap listener app.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework OO, API/ACE integration
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/snmp.h"
-#define DEFINE_TRAP_CONSTANTS_
-#include "asnmp/enttraps.h" // enterprise standard traps
-#include "ace/Get_Opt.h"
-
-ACE_RCSID(trap, trap, "$Id$")
-
-//
-// SNMPv1 Trap Application
-//
-class trapapp {
- public:
- trapapp(int argc, char **argv); // process command line args
- int valid() const; // verify transaction can proceed
- int run(); // issue transaction
- static void usage(); // operator help message
-
- private:
- trapapp(const trapapp&);
-
- UdpAddress address_;
- Pdu pdu_; // construct a request Pdu
- Oid oid_;
- OctetStr community_;
- Snmp snmp_;
- UdpTarget target_;
- int valid_;
-};
-
-
-// main entry point
-int main( int argc, char *argv[])
-{
- trapapp get(argc, argv);
- if (get.valid())
- return get.run();
- else
- trapapp::usage();
- return 1;
-}
-
-int trapapp::valid() const
-{
- return valid_;
-}
-trapapp::trapapp(int argc, char *argv[]): valid_(0)
-{
- Oid def_ent_oid("1.3.6.1.2.1.1.1.2.0.1"); // def enterprise oid
- Oid ent, trap; // user specified values
-
- if ( argc < 2) // hostname mandatory
- return;
-
- address_ = argv[argc - 1];
- if ( !address_.valid()) {
- cout << "ERROR: Invalid IPv4 address or DNS hostname: " \
- << argv[argc] << "\n";
- return;
- }
-
- ACE_Get_Opt get_opt (argc, argv, "c:e:t:");
- for (int c; (c = get_opt ()) != -1; )
- switch (c)
- {
- case 'c': // community string
- community_ = get_opt.optarg;
- target_.set_read_community(community_);
- break;
-
- case 'e': // trap oid to send
- ent = get_opt.optarg;
- break;
-
- case 't': // trap oid
- trap = get_opt.optarg;
- break;;
-
- default:
- break;
- }
-
- if (ent.valid())
- pdu_.set_notify_enterprise( ent); // set up the enterprise of the trap
- else
- pdu_.set_notify_enterprise( def_ent_oid);
-
- if (trap.valid())
- pdu_.set_notify_id( trap); // set the id of the trap
- else
- pdu_.set_notify_id( coldStart); // set the id of the trap
-
- Oid detail_oid("1.3.6.1.4.1.11.2.16.2");
- OctetStr detail_value("SNMP++ Trap Send Test");
- Vb vb(detail_oid, detail_value);
- pdu_ += vb;
-
- pdu_.get_notify_id(oid_); // store for later use
- valid_ = 1;
-}
-
-void trapapp::usage()
-{
- cout << "Usage:\n";
- cout << "trap [options] dotted-quad | DNSName[:port]\n";
- cout << " -c Community_name, default is 'public' \n";
- cout << " -r N retries default is N = 1 retry\n";
- cout << " -t N timeout in seconds default is 1 second" << endl;
- cout << " -e oid enterprise oid default is 1.3.6.1.2.1.1.1.2.0.1\n";
- cout << " -O oid trap id default is coldStart 1.3.6.1.6.3.1.1.5.1\n";
-}
-
-int trapapp::run()
-{
- if ( snmp_.valid() != SNMP_CLASS_SUCCESS) {
- cout << "\nASNMP:ERROR:Create session failed: "<<
- snmp_.error_string()<< "\n";
- return 1;
- }
-
- if (address_.get_port() == 0)
- address_.set_port(DEF_TRAP_PORT);
- target_.set_address( address_); // make a target using the address
-
- //-------[ issue the request, blocked mode ]-----------------------------
- cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \
- " TRAP GENERATOR SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n";
- target_.get_address(address_); // target updates port used
- int rc;
- char *name = address_.resolve_hostname(rc);
- if (rc)
- name = "<< did not resolve via gethostbyname() >>";
-
- cout << "Device: " << address_ << " " << name << "\n";
- cout << "[ Community=" << community_.to_string() << " ]"<< endl;
-
- if (snmp_.trap( pdu_, target_) == SNMP_CLASS_SUCCESS) {
- cout << "Trap was written to network...\n";
- }
- else {
- char *ptr = snmp_.error_string();
- cout << "ASNMP:ERROR: trap command failed reason: " << ptr << endl;
- }
-
- cout << "ASNMP:INFO:command completed normally.\n"<< endl;
- return 0;
-}
-
diff --git a/ASNMP/examples/walk/Makefile b/ASNMP/examples/walk/Makefile
deleted file mode 100644
index 3251dcd9036..00000000000
--- a/ASNMP/examples/walk/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for walk sample application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-
-# ACE+SNMP
-BIN = walk
-CCFLAGS = -I$(ACE_ROOT)/ASNMP/
-LSRC = $(addsuffix .cpp,$(BIN))
-
-LDLIBS := -L$(ACE_ROOT)/ASNMP/asnmp -lasnmp $(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.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.
-
-
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ASNMP/examples/walk/walk.cpp b/ASNMP/examples/walk/walk.cpp
deleted file mode 100644
index 80f719acf26..00000000000
--- a/ASNMP/examples/walk/walk.cpp
+++ /dev/null
@@ -1,260 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// walk.cpp
-//
-// = DESCRIPTION
-// Sample application demonstrating synchronous Snmp::get, get_next API
-// to access an SNMP Version 1 agent.
-//
-// = AUTHOR
-// Peter E. Mellquist original code
-// Michael R MacFaden mrm@cisco.com rework API/ACE integration
-//
-// ============================================================================
-/*===================================================================
- Copyright (c) 1996
- Hewlett-Packard Company
-
- ATTENTION: USE OF THIS SOFTWARE IS SUBJECT TO THE FOLLOWING TERMS.
- Permission to use, copy, modify, distribute and/or sell this software
- and/or its documentation is hereby granted without fee. User agrees
- to display the above copyright notice and this license notice in all
- copies of the software and any documentation of the software. User
- agrees to assume all liability for the use of the software; Hewlett-Packard
- makes no representations about the suitability of this software for any
- purpose. It is provided "AS-IS without warranty of any kind,either express
- or implied. User hereby grants a royalty-free license to any and all
- derivatives based upon this software code base.
-=====================================================================*/
-
-#include "asnmp/snmp.h"
-#include "ace/Get_Opt.h"
-
-ACE_RCSID(walk, walk, "$Id$")
-
-//
-// SNMPv1 Walk Mib Application
-//
-class walkapp {
- public:
- walkapp(int argc, char **argv); // process command line args
- int valid() const; // verify transaction can proceed
- int run(); // issue transaction
- static void usage(); // operator help message
-
- private:
- walkapp(const walkapp&);
-
- UdpAddress address_;
- Pdu pdu_; // construct a request Pdu
- Oid oid_;
- OctetStr community_;
- Snmp snmp_;
- UdpTarget target_;
- int valid_;
-};
-
-
-// main entry point
-int main( int argc, char *argv[])
-{
- walkapp get(argc, argv);
- if (get.valid())
- return get.run();
- else
- walkapp::usage();
- return 1;
-}
-
-int walkapp::valid() const
-{
- return valid_;
-}
-
-walkapp::walkapp(int argc, char *argv[]): valid_(0)
-{
- Oid req, def_oid("1.3.6.1.2.1.1.1.0"); // default begin walk with MIBII
- if ( argc < 2)
- return;
-
- address_ = argv[argc - 1];
- if ( !address_.valid()) {
- cout << "ERROR: Invalid IPv4 address or DNS hostname: " \
- << argv[argc] << "\n";
- return;
- }
-
- ACE_Get_Opt get_opt (argc, argv, "o:c:r:t:");
- for (int c; (c = get_opt ()) != -1; )
- switch (c)
- {
- case 'o':
- req = get_opt.optarg;
- if (req.valid() == 0)
- cout << "ERROR: oid value: " <<get_opt.optarg \
- << "is not valid. using default.\n";
- break;
-
- case 'c':
- community_ = get_opt.optarg;
- target_.set_read_community(community_);
- break;
-
- case 'r':
- target_.set_retry(ACE_OS::atoi (get_opt.optarg));
- break;
-
- case 't':
- target_.set_timeout(ACE_OS::atoi (get_opt.optarg));
- break;
-
- default:
- break;
- }
-
- Vb vb; // construct a Vb object
- if (req.valid())
- vb.set_oid( req); // set the Oid portion of the Vb
- else {
- vb.set_oid( def_oid); // set the Oid portion of the Vb
- }
- pdu_ += vb;
- vb.get_oid(oid_); // store for later use
- valid_ = 1;
-}
-
-void walkapp::usage()
-{
- cout << "Usage:\n";
- cout << "walk [options] dotted-quad | DNSName[:port]\n";
- cout << " -o OID starts with oid after 1.3.6.1.2.1.1.1.0 (mibII sysDescr.0) \n";
- cout << " -c Community_name, default is 'public' \n";
- cout << " -r N retries default is N = 1 retry\n";
- cout << " -t N timeout in seconds default is 1 second" << endl;
-}
-
-
-//
-// simple mib iterator class
-//
-class MibIter {
- public:
- // Pdu must contain initial oid to begin with
- MibIter(Snmp *snmp, Pdu& pdu, UdpTarget* target);
- int next(Vb& vb, char *&err_reason); // return next oid in mib
-
- private:
- Snmp *snmp_;
- UdpTarget *target_;
- Pdu pdu_;
- Vb vb_;
- int first_; // flag to obtain first entry
- int valid_; // flag to obtain first entry
-};
-
-MibIter::MibIter(Snmp* snmp, Pdu& pdu, UdpTarget *target):
- snmp_(snmp), target_(target), pdu_(pdu), first_(0),
- valid_(0)
-{
- // verify we have a valid oid to begin iterating with
- Oid oid;
- Vb vb;
- pdu.get_vb(vb, 0);
- vb.get_oid(oid);
- if (oid.valid())
- valid_ = 1;
-}
-
-// return vb of next oid in agent tree, return 1 else return 0, reason set
-int MibIter::next(Vb& vb, char *& reason)
-{
- int rc;
-
- if (valid_ == 0) // not valid object
- return -1;
-
- // 1. poll for value
- if (first_ == 0) {
- rc = snmp_->get( pdu_, *target_);
- first_++;
- }
- else {
- rc = snmp_->get_next( pdu_, *target_);
- }
-
- if (rc != SNMP_CLASS_SUCCESS) {
- reason = snmp_->error_string();
- return 0;
- }
-
- // 2. check for problems
- if (pdu_.get_error_status()) {
- reason = pdu_.agent_error_reason();
- return 0;
- }
-
- // 3. return vb to caller
- pdu_.get_vb(vb, 0);
- Oid nextoid;
- vb.get_oid(nextoid); // and setup next oid to get
- Vb nextvb(nextoid);
- pdu_.delete_all_vbs();
- pdu_ += nextvb; // can't do set_vb as there are no entries to replace
-
- return 1; // ok
-}
-
-int walkapp::run()
-{
-
- //----------[ create a ASNMP session ]-----------------------------------
- if ( snmp_.valid() != SNMP_CLASS_SUCCESS) {
- cout << "\nASNMP:ERROR:Create session failed: "<<
- snmp_.error_string()<< "\n";
- return 1;
- }
-
- //--------[ build up ASNMP object needed ]-------------------------------
- if (address_.get_port() == 0)
- address_.set_port(DEF_AGENT_PORT);
- target_.set_address( address_); // make a target using the address
-
- //-------[ issue the request, blocked mode ]-----------------------------
- cout << "\nASNMP:INFO:SNMP Version " << (target_.get_version()+ 1) << \
- " WALK SAMPLE PROGRAM \nOID: " << oid_.to_string() << "\n";
- target_.get_address(address_); // target updates port used
- int rc;
- char *name = address_.resolve_hostname(rc);
- if (rc)
- name = "<< did not resolve via gethostbyname() >>";
-
- cout << "Device: " << address_ << " " << name << "\n";
- cout << "[ Retries=" << target_.get_retry() << " \
- Timeout=" << target_.get_timeout() <<" ms " << "Community=" << \
- community_.to_string() << " ]"<< endl;
-
- MibIter iter(&snmp_, pdu_, &target_);
- char *err_str = 0;
- Vb vb;
- unsigned ctr = 0;
- while (iter.next(vb, err_str)) {
- cout << "\tOid = " << vb.to_string_oid() << "\n";
- cout << "\tValue = " << vb.to_string_value() << "\n";
- ctr++;
- }
-
- if (!err_str) {
- cout << "ERROR: walk: " << err_str << endl;
- return 0;
- }
-
- cout << "ASNMP:INFO:command completed normally. ACE Rocks...\n"<< endl;
- return 0;
-}
-
diff --git a/ASNMP/mibs/RFC1213-MIB.my b/ASNMP/mibs/RFC1213-MIB.my
deleted file mode 100644
index f89f8bf125e..00000000000
--- a/ASNMP/mibs/RFC1213-MIB.my
+++ /dev/null
@@ -1,2618 +0,0 @@
--- *****************************************************************
--- RFC1213-MIB.my: MIB-II MIB file
---
--- April 1994, Jeffrey T. Johnson
---
--- Copyright (c) 1994-1996 by cisco Systems, Inc.
--- All rights reserved.
---
--- *****************************************************************
---
--- This mib was extracted from RFC 1213
--- The following changes have been applied:
--- The enumerations unknown(4) and dormant(5) have been added to
--- ifOperStatus to reflect a change to the ifTable introduced in
--- RFC 1573
---
--- The SYNTAX of ifType has been changed to IANAifType, to reflect the
--- change to the ifTable introduced in RFC1573.
-
- RFC1213-MIB DEFINITIONS ::= BEGIN
-
- IMPORTS
- mgmt, NetworkAddress, IpAddress, Counter, Gauge,
- TimeTicks
- FROM RFC1155-SMI
- OBJECT-TYPE
- FROM RFC-1212
- TEXTUAL-CONVENTION
- FROM SNMPv2-TC
- IANAifType
- FROM IANAifType-MIB;
-
- -- This MIB module uses the extended OBJECT-TYPE macro as
- -- defined in [14];
-
-
- -- MIB-II (same prefix as MIB-I)
-
- mib-2 OBJECT IDENTIFIER ::= { mgmt 1 }
-
- -- textual conventions
-
- DisplayString ::=
- OCTET STRING
- -- This data type is used to model textual information taken
- -- from the NVT ASCII character set. By convention, objects
- -- with this syntax are declared as having
- --
- -- SIZE (0..255)
-
- PhysAddress ::=
- OCTET STRING
- -- This data type is used to model media addresses. For many
- -- types of media, this will be in a binary representation.
- -- For example, an ethernet address would be represented as
- -- a string of 6 octets.
-
-
- -- groups in MIB-II
-
- system OBJECT IDENTIFIER ::= { mib-2 1 }
-
- interfaces OBJECT IDENTIFIER ::= { mib-2 2 }
-
- at OBJECT IDENTIFIER ::= { mib-2 3 }
-
- ip OBJECT IDENTIFIER ::= { mib-2 4 }
-
- icmp OBJECT IDENTIFIER ::= { mib-2 5 }
-
- tcp OBJECT IDENTIFIER ::= { mib-2 6 }
-
- udp OBJECT IDENTIFIER ::= { mib-2 7 }
-
- egp OBJECT IDENTIFIER ::= { mib-2 8 }
-
- -- historical (some say hysterical)
- -- cmot OBJECT IDENTIFIER ::= { mib-2 9 }
-
- transmission OBJECT IDENTIFIER ::= { mib-2 10 }
-
- snmp OBJECT IDENTIFIER ::= { mib-2 11 }
-
-
- -- the System group
-
- -- Implementation of the System group is mandatory for all
- -- systems. If an agent is not configured to have a value
- -- for any of these variables, a string of length 0 is
- -- returned.
-
- sysDescr OBJECT-TYPE
- SYNTAX DisplayString (SIZE (0..255))
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "A textual description of the entity. This value
- should include the full name and version
- identification of the system's hardware type,
- software operating-system, and networking
- software. It is mandatory that this only contain
- printable ASCII characters."
- ::= { system 1 }
-
- sysObjectID OBJECT-TYPE
- SYNTAX OBJECT IDENTIFIER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The vendor's authoritative identification of the
- network management subsystem contained in the
- entity. This value is allocated within the SMI
- enterprises subtree (1.3.6.1.4.1) and provides an
- easy and unambiguous means for determining `what
- kind of box' is being managed. For example, if
- vendor `Flintstones, Inc.' was assigned the
- subtree 1.3.6.1.4.1.4242, it could assign the
- identifier 1.3.6.1.4.1.4242.1.1 to its `Fred
- Router'."
- ::= { system 2 }
-
- sysUpTime OBJECT-TYPE
- SYNTAX TimeTicks
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The time (in hundredths of a second) since the
- network management portion of the system was last
- re-initialized."
- ::= { system 3 }
-
- sysContact OBJECT-TYPE
- SYNTAX DisplayString (SIZE (0..255))
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The textual identification of the contact person
- for this managed node, together with information
- on how to contact this person."
- ::= { system 4 }
-
- sysName OBJECT-TYPE
- SYNTAX DisplayString (SIZE (0..255))
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "An administratively-assigned name for this
- managed node. By convention, this is the node's
- fully-qualified domain name."
- ::= { system 5 }
-
- sysLocation OBJECT-TYPE
- SYNTAX DisplayString (SIZE (0..255))
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The physical location of this node (e.g.,
- `telephone closet, 3rd floor')."
- ::= { system 6 }
-
- sysServices OBJECT-TYPE
- SYNTAX INTEGER (0..127)
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "A value which indicates the set of services that
- this entity primarily offers.
-
- The value is a sum. This sum initially takes the
- value zero, Then, for each layer, L, in the range
- 1 through 7, that this node performs transactions
- for, 2 raised to (L - 1) is added to the sum. For
- example, a node which performs primarily routing
- functions would have a value of 4 (2^(3-1)). In
- contrast, a node which is a host offering
- application services would have a value of 72
- (2^(4-1) + 2^(7-1)). Note that in the context of
- the Internet suite of protocols, values should be
- calculated accordingly:
-
- layer functionality
- 1 physical (e.g., repeaters)
- 2 datalink/subnetwork (e.g., bridges)
- 3 internet (e.g., IP gateways)
- 4 end-to-end (e.g., IP hosts)
- 7 applications (e.g., mail relays)
-
- For systems including OSI protocols, layers 5 and
- 6 may also be counted."
- ::= { system 7 }
-
- -- the Interfaces group
-
- -- Implementation of the Interfaces group is mandatory for
- -- all systems.
-
- ifNumber OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of network interfaces (regardless of
- their current state) present on this system."
- ::= { interfaces 1 }
-
-
- -- the Interfaces table
-
- -- The Interfaces table contains information on the entity's
- -- interfaces. Each interface is thought of as being
- -- attached to a `subnetwork'. Note that this term should
- -- not be confused with `subnet' which refers to an
- -- addressing partitioning scheme used in the Internet suite
- -- of protocols.
-
- ifTable OBJECT-TYPE
- SYNTAX SEQUENCE OF IfEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "A list of interface entries. The number of
- entries is given by the value of ifNumber."
- ::= { interfaces 2 }
-
- ifEntry OBJECT-TYPE
- SYNTAX IfEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "An interface entry containing objects at the
- subnetwork layer and below for a particular
- interface."
- INDEX { ifIndex }
- ::= { ifTable 1 }
-
- IfEntry ::=
- SEQUENCE {
- ifIndex
- INTEGER,
- ifDescr
- DisplayString,
- ifType
- IANAifType,
- ifMtu
- INTEGER,
- ifSpeed
- Gauge,
- ifPhysAddress
- PhysAddress,
- ifAdminStatus
- INTEGER,
- ifOperStatus
- INTEGER,
- ifLastChange
- TimeTicks,
- ifInOctets
- Counter,
- ifInUcastPkts
- Counter,
- ifInNUcastPkts
- Counter,
- ifInDiscards
- Counter,
- ifInErrors
- Counter,
- ifInUnknownProtos
- Counter,
- ifOutOctets
- Counter,
- ifOutUcastPkts
- Counter,
- ifOutNUcastPkts
- Counter,
- ifOutDiscards
- Counter,
- ifOutErrors
- Counter,
- ifOutQLen
- Gauge,
- ifSpecific
- OBJECT IDENTIFIER
- }
-
- ifIndex OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "A unique value for each interface. Its value
- ranges between 1 and the value of ifNumber. The
- value for each interface must remain constant at
- least from one re-initialization of the entity's
- network management system to the next re-
- initialization."
- ::= { ifEntry 1 }
-
- ifDescr OBJECT-TYPE
- SYNTAX DisplayString (SIZE (0..255))
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "A textual string containing information about the
- interface. This string should include the name of
- the manufacturer, the product name and the version
- of the hardware interface."
- ::= { ifEntry 2 }
-
- ifType OBJECT-TYPE
- SYNTAX IANAifType
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The type of interface. Additional values for ifType
- are assigned by the Internet Assigned Numbers
- Authority (IANA), through updating the syntax of the
- IANAifType textual convention."
- ::= { ifEntry 3 }
-
-
- ifMtu OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The size of the largest datagram which can be
- sent/received on the interface, specified in
- octets. For interfaces that are used for
- transmitting network datagrams, this is the size
- of the largest network datagram that can be sent
- on the interface."
- ::= { ifEntry 4 }
-
- ifSpeed OBJECT-TYPE
- SYNTAX Gauge
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "An estimate of the interface's current bandwidth
- in bits per second. For interfaces which do not
- vary in bandwidth or for those where no accurate
- estimation can be made, this object should contain
- the nominal bandwidth."
- ::= { ifEntry 5 }
-
- ifPhysAddress OBJECT-TYPE
- SYNTAX PhysAddress
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The interface's address at the protocol layer
- immediately `below' the network layer in the
- protocol stack. For interfaces which do not have
- such an address (e.g., a serial line), this object
- should contain an octet string of zero length."
- ::= { ifEntry 6 }
-
- ifAdminStatus OBJECT-TYPE
- SYNTAX INTEGER {
- up(1), -- ready to pass packets
- down(2),
- testing(3) -- in some test mode
- }
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The desired state of the interface. The
- testing(3) state indicates that no operational
- packets can be passed."
- ::= { ifEntry 7 }
-
- ifOperStatus OBJECT-TYPE
- SYNTAX INTEGER {
- up(1), -- ready to pass packets
- down(2),
- testing(3), -- in some test mode
- unknown(4),
- dormant(5)
- }
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The current operational state of the interface.
- The testing(3) state indicates that no operational
- packets can be passed."
- ::= { ifEntry 8 }
-
- ifLastChange OBJECT-TYPE
- SYNTAX TimeTicks
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The value of sysUpTime at the time the interface
- entered its current operational state. If the
- current state was entered prior to the last re-
- initialization of the local network management
- subsystem, then this object contains a zero
- value."
- ::= { ifEntry 9 }
-
- ifInOctets OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of octets received on the
- interface, including framing characters."
- ::= { ifEntry 10 }
-
- ifInUcastPkts OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of subnetwork-unicast packets
- delivered to a higher-layer protocol."
- ::= { ifEntry 11 }
-
- ifInNUcastPkts OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of non-unicast (i.e., subnetwork-
- broadcast or subnetwork-multicast) packets
- delivered to a higher-layer protocol."
- ::= { ifEntry 12 }
-
- ifInDiscards OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of inbound packets which were chosen
- to be discarded even though no errors had been
- detected to prevent their being deliverable to a
- higher-layer protocol. One possible reason for
- discarding such a packet could be to free up
- buffer space."
- ::= { ifEntry 13 }
-
- ifInErrors OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of inbound packets that contained
- errors preventing them from being deliverable to a
- higher-layer protocol."
- ::= { ifEntry 14 }
-
- ifInUnknownProtos OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of packets received via the interface
- which were discarded because of an unknown or
- unsupported protocol."
- ::= { ifEntry 15 }
-
- ifOutOctets OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of octets transmitted out of the
- interface, including framing characters."
- ::= { ifEntry 16 }
-
- ifOutUcastPkts OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of packets that higher-level
- protocols requested be transmitted to a
- subnetwork-unicast address, including those that
- were discarded or not sent."
- ::= { ifEntry 17 }
-
- ifOutNUcastPkts OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of packets that higher-level
- protocols requested be transmitted to a non-
- unicast (i.e., a subnetwork-broadcast or
- subnetwork-multicast) address, including those
- that were discarded or not sent."
- ::= { ifEntry 18 }
-
- ifOutDiscards OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of outbound packets which were chosen
- to be discarded even though no errors had been
- detected to prevent their being transmitted. One
- possible reason for discarding such a packet could
- be to free up buffer space."
- ::= { ifEntry 19 }
-
- ifOutErrors OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of outbound packets that could not be
- transmitted because of errors."
- ::= { ifEntry 20 }
-
- ifOutQLen OBJECT-TYPE
- SYNTAX Gauge
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The length of the output packet queue (in
- packets)."
- ::= { ifEntry 21 }
-
- ifSpecific OBJECT-TYPE
- SYNTAX OBJECT IDENTIFIER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "A reference to MIB definitions specific to the
- particular media being used to realize the
- interface. For example, if the interface is
- realized by an ethernet, then the value of this
- object refers to a document defining objects
- specific to ethernet. If this information is not
- present, its value should be set to the OBJECT
- IDENTIFIER { 0 0 }, which is a syntactically valid
- object identifier, and any conformant
- implementation of ASN.1 and BER must be able to
- generate and recognize this value."
- ::= { ifEntry 22 }
-
-
- -- the Address Translation group
-
- -- Implementation of the Address Translation group is
- -- mandatory for all systems. Note however that this group
- -- is deprecated by MIB-II. That is, it is being included
- -- solely for compatibility with MIB-I nodes, and will most
- -- likely be excluded from MIB-III nodes. From MIB-II and
- -- onwards, each network protocol group contains its own
- -- address translation tables.
-
- -- The Address Translation group contains one table which is
- -- the union across all interfaces of the translation tables
- -- for converting a NetworkAddress (e.g., an IP address) into
- -- a subnetwork-specific address. For lack of a better term,
- -- this document refers to such a subnetwork-specific address
- -- as a `physical' address.
-
- -- Examples of such translation tables are: for broadcast
- -- media where ARP is in use, the translation table is
- -- equivalent to the ARP cache; or, on an X.25 network where
- -- non-algorithmic translation to X.121 addresses is
- -- required, the translation table contains the
- -- NetworkAddress to X.121 address equivalences.
-
- atTable OBJECT-TYPE
- SYNTAX SEQUENCE OF AtEntry
- ACCESS not-accessible
- STATUS deprecated
- DESCRIPTION
- "The Address Translation tables contain the
- NetworkAddress to `physical' address equivalences.
- Some interfaces do not use translation tables for
- determining address equivalences (e.g., DDN-X.25
- has an algorithmic method); if all interfaces are
- of this type, then the Address Translation table
- is empty, i.e., has zero entries."
- ::= { at 1 }
-
- atEntry OBJECT-TYPE
- SYNTAX AtEntry
- ACCESS not-accessible
- STATUS deprecated
- DESCRIPTION
- "Each entry contains one NetworkAddress to
- `physical' address equivalence."
- INDEX { atIfIndex,
- atNetAddress }
- ::= { atTable 1 }
-
- AtEntry ::=
- SEQUENCE {
- atIfIndex
- INTEGER,
- atPhysAddress
- PhysAddress,
- atNetAddress
- NetworkAddress
- }
-
- atIfIndex OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-write
- STATUS deprecated
- DESCRIPTION
- "The interface on which this entry's equivalence
- is effective. The interface identified by a
- particular value of this index is the same
- interface as identified by the same value of
- ifIndex."
- ::= { atEntry 1 }
-
- atPhysAddress OBJECT-TYPE
- SYNTAX PhysAddress
- ACCESS read-write
- STATUS deprecated
- DESCRIPTION
- "The media-dependent `physical' address.
-
- Setting this object to a null string (one of zero
- length) has the effect of invaliding the
- corresponding entry in the atTable object. That
- is, it effectively disassociates the interface
- identified with said entry from the mapping
- identified with said entry. It is an
- implementation-specific matter as to whether the
- agent removes an invalidated entry from the table.
- Accordingly, management stations must be prepared
- to receive tabular information from agents that
- corresponds to entries not currently in use.
- Proper interpretation of such entries requires
- examination of the relevant atPhysAddress object."
- ::= { atEntry 2 }
-
- atNetAddress OBJECT-TYPE
- SYNTAX NetworkAddress
- ACCESS read-write
- STATUS deprecated
- DESCRIPTION
- "The NetworkAddress (e.g., the IP address)
- corresponding to the media-dependent `physical'
- address."
- ::= { atEntry 3 }
-
-
- -- the IP group
-
- -- Implementation of the IP group is mandatory for all
- -- systems.
-
- ipForwarding OBJECT-TYPE
- SYNTAX INTEGER {
- forwarding(1), -- acting as a gateway
- not-forwarding(2) -- NOT acting as a gateway
- }
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The indication of whether this entity is acting
- as an IP gateway in respect to the forwarding of
- datagrams received by, but not addressed to, this
- entity. IP gateways forward datagrams. IP hosts
- do not (except those source-routed via the host).
-
- Note that for some managed nodes, this object may
- take on only a subset of the values possible.
- Accordingly, it is appropriate for an agent to
- return a `badValue' response if a management
- station attempts to change this object to an
- inappropriate value."
- ::= { ip 1 }
-
- ipDefaultTTL OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The default value inserted into the Time-To-Live
- field of the IP header of datagrams originated at
- this entity, whenever a TTL value is not supplied
- by the transport layer protocol."
- ::= { ip 2 }
-
- ipInReceives OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of input datagrams received from
- interfaces, including those received in error."
- ::= { ip 3 }
-
- ipInHdrErrors OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of input datagrams discarded due to
- errors in their IP headers, including bad
- checksums, version number mismatch, other format
- errors, time-to-live exceeded, errors discovered
- in processing their IP options, etc."
- ::= { ip 4 }
-
- ipInAddrErrors OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of input datagrams discarded because
- the IP address in their IP header's destination
- field was not a valid address to be received at
- this entity. This count includes invalid
- addresses (e.g., 0.0.0.0) and addresses of
- unsupported Classes (e.g., Class E). For entities
- which are not IP Gateways and therefore do not
- forward datagrams, this counter includes datagrams
- discarded because the destination address was not
- a local address."
- ::= { ip 5 }
-
- ipForwDatagrams OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of input datagrams for which this
- entity was not their final IP destination, as a
- result of which an attempt was made to find a
- route to forward them to that final destination.
- In entities which do not act as IP Gateways, this
- counter will include only those packets which were
- Source-Routed via this entity, and the Source-
- Route option processing was successful."
- ::= { ip 6 }
-
- ipInUnknownProtos OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of locally-addressed datagrams
- received successfully but discarded because of an
- unknown or unsupported protocol."
- ::= { ip 7 }
-
- ipInDiscards OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of input IP datagrams for which no
- problems were encountered to prevent their
- continued processing, but which were discarded
- (e.g., for lack of buffer space). Note that this
- counter does not include any datagrams discarded
- while awaiting re-assembly."
- ::= { ip 8 }
-
- ipInDelivers OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of input datagrams successfully
- delivered to IP user-protocols (including ICMP)."
- ::= { ip 9 }
-
- ipOutRequests OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of IP datagrams which local IP
- user-protocols (including ICMP) supplied to IP in
- requests for transmission. Note that this counter
- does not include any datagrams counted in
- ipForwDatagrams."
- ::= { ip 10 }
-
- ipOutDiscards OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of output IP datagrams for which no
- problem was encountered to prevent their
- transmission to their destination, but which were
- discarded (e.g., for lack of buffer space). Note
- that this counter would include datagrams counted
- in ipForwDatagrams if any such packets met this
- (discretionary) discard criterion."
- ::= { ip 11 }
-
- ipOutNoRoutes OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of IP datagrams discarded because no
- route could be found to transmit them to their
- destination. Note that this counter includes any
- packets counted in ipForwDatagrams which meet this
- `no-route' criterion. Note that this includes any
- datagrams which a host cannot route because all of
- its default gateways are down."
- ::= { ip 12 }
-
- ipReasmTimeout OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The maximum number of seconds which received
- fragments are held while they are awaiting
- reassembly at this entity."
- ::= { ip 13 }
-
- ipReasmReqds OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of IP fragments received which needed
- to be reassembled at this entity."
- ::= { ip 14 }
-
- ipReasmOKs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of IP datagrams successfully re-
- assembled."
- ::= { ip 15 }
-
- ipReasmFails OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of failures detected by the IP re-
- assembly algorithm (for whatever reason: timed
- out, errors, etc). Note that this is not
- necessarily a count of discarded IP fragments
- since some algorithms (notably the algorithm in
- RFC 815) can lose track of the number of fragments
- by combining them as they are received."
- ::= { ip 16 }
-
- ipFragOKs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of IP datagrams that have been
- successfully fragmented at this entity."
- ::= { ip 17 }
-
- ipFragFails OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of IP datagrams that have been
- discarded because they needed to be fragmented at
- this entity but could not be, e.g., because their
- Don't Fragment flag was set."
- ::= { ip 18 }
-
- ipFragCreates OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of IP datagram fragments that have
- been generated as a result of fragmentation at
- this entity."
- ::= { ip 19 }
-
-
-
- -- the IP address table
-
- -- The IP address table contains this entity's IP addressing
- -- information.
-
- ipAddrTable OBJECT-TYPE
- SYNTAX SEQUENCE OF IpAddrEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "The table of addressing information relevant to
- this entity's IP addresses."
- ::= { ip 20 }
-
- ipAddrEntry OBJECT-TYPE
- SYNTAX IpAddrEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "The addressing information for one of this
- entity's IP addresses."
- INDEX { ipAdEntAddr }
- ::= { ipAddrTable 1 }
-
- IpAddrEntry ::=
- SEQUENCE {
- ipAdEntAddr
- IpAddress,
- ipAdEntIfIndex
- INTEGER,
- ipAdEntNetMask
- IpAddress,
- ipAdEntBcastAddr
- INTEGER,
- ipAdEntReasmMaxSize
- INTEGER (0..65535)
- }
-
- ipAdEntAddr OBJECT-TYPE
- SYNTAX IpAddress
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The IP address to which this entry's addressing
- information pertains."
- ::= { ipAddrEntry 1 }
-
-
- ipAdEntIfIndex OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The index value which uniquely identifies the
- interface to which this entry is applicable. The
- interface identified by a particular value of this
- index is the same interface as identified by the
- same value of ifIndex."
- ::= { ipAddrEntry 2 }
-
- ipAdEntNetMask OBJECT-TYPE
- SYNTAX IpAddress
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The subnet mask associated with the IP address of
- this entry. The value of the mask is an IP
- address with all the network bits set to 1 and all
- the hosts bits set to 0."
- ::= { ipAddrEntry 3 }
-
- ipAdEntBcastAddr OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The value of the least-significant bit in the IP
- broadcast address used for sending datagrams on
- the (logical) interface associated with the IP
- address of this entry. For example, when the
- Internet standard all-ones broadcast address is
- used, the value will be 1. This value applies to
- both the subnet and network broadcasts addresses
- used by the entity on this (logical) interface."
- ::= { ipAddrEntry 4 }
-
- ipAdEntReasmMaxSize OBJECT-TYPE
- SYNTAX INTEGER (0..65535)
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The size of the largest IP datagram which this
- entity can re-assemble from incoming IP fragmented
- datagrams received on this interface."
- ::= { ipAddrEntry 5 }
-
- -- the IP routing table
-
- -- The IP routing table contains an entry for each route
- -- presently known to this entity.
-
- ipRouteTable OBJECT-TYPE
- SYNTAX SEQUENCE OF IpRouteEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "This entity's IP Routing table."
- ::= { ip 21 }
-
- ipRouteEntry OBJECT-TYPE
- SYNTAX IpRouteEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "A route to a particular destination."
- INDEX { ipRouteDest }
- ::= { ipRouteTable 1 }
-
- IpRouteEntry ::=
- SEQUENCE {
- ipRouteDest
- IpAddress,
- ipRouteIfIndex
- INTEGER,
- ipRouteMetric1
- INTEGER,
- ipRouteMetric2
- INTEGER,
- ipRouteMetric3
- INTEGER,
- ipRouteMetric4
- INTEGER,
- ipRouteNextHop
- IpAddress,
- ipRouteType
- INTEGER,
- ipRouteProto
- INTEGER,
- ipRouteAge
- INTEGER,
- ipRouteMask
- IpAddress,
- ipRouteMetric5
- INTEGER,
- ipRouteInfo
- OBJECT IDENTIFIER
- }
-
- ipRouteDest OBJECT-TYPE
- SYNTAX IpAddress
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The destination IP address of this route. An
- entry with a value of 0.0.0.0 is considered a
- default route. Multiple routes to a single
- destination can appear in the table, but access to
- such multiple entries is dependent on the table-
- access mechanisms defined by the network
- management protocol in use."
- ::= { ipRouteEntry 1 }
-
- ipRouteIfIndex OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The index value which uniquely identifies the
- local interface through which the next hop of this
- route should be reached. The interface identified
- by a particular value of this index is the same
- interface as identified by the same value of
- ifIndex."
- ::= { ipRouteEntry 2 }
-
- ipRouteMetric1 OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The primary routing metric for this route. The
- semantics of this metric are determined by the
- routing-protocol specified in the route's
- ipRouteProto value. If this metric is not used,
- its value should be set to -1."
- ::= { ipRouteEntry 3 }
-
- ipRouteMetric2 OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "An alternate routing metric for this route. The
- semantics of this metric are determined by the
- routing-protocol specified in the route's
- ipRouteProto value. If this metric is not used,
- its value should be set to -1."
- ::= { ipRouteEntry 4 }
-
- ipRouteMetric3 OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "An alternate routing metric for this route. The
- semantics of this metric are determined by the
- routing-protocol specified in the route's
- ipRouteProto value. If this metric is not used,
- its value should be set to -1."
- ::= { ipRouteEntry 5 }
-
- ipRouteMetric4 OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "An alternate routing metric for this route. The
- semantics of this metric are determined by the
- routing-protocol specified in the route's
- ipRouteProto value. If this metric is not used,
- its value should be set to -1."
- ::= { ipRouteEntry 6 }
-
- ipRouteNextHop OBJECT-TYPE
- SYNTAX IpAddress
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The IP address of the next hop of this route.
- (In the case of a route bound to an interface
- which is realized via a broadcast media, the value
- of this field is the agent's IP address on that
- interface.)"
- ::= { ipRouteEntry 7 }
-
- ipRouteType OBJECT-TYPE
- SYNTAX INTEGER {
- other(1), -- none of the following
-
- invalid(2), -- an invalidated route
- -- route to directly
- direct(3), -- connected (sub-)network
-
- -- route to a non-local
- indirect(4) -- host/network/sub-network
- }
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The type of route. Note that the values
- direct(3) and indirect(4) refer to the notion of
- direct and indirect routing in the IP
- architecture.
-
- Setting this object to the value invalid(2) has
- the effect of invalidating the corresponding entry
- in the ipRouteTable object. That is, it
- effectively disassociates the destination
- identified with said entry from the route
- identified with said entry. It is an
- implementation-specific matter as to whether the
- agent removes an invalidated entry from the table.
- Accordingly, management stations must be prepared
- to receive tabular information from agents that
- corresponds to entries not currently in use.
- Proper interpretation of such entries requires
- examination of the relevant ipRouteType object."
- ::= { ipRouteEntry 8 }
-
- ipRouteProto OBJECT-TYPE
- SYNTAX INTEGER {
- other(1), -- none of the following
-
- -- non-protocol information,
- -- e.g., manually configured
- local(2), -- entries
-
- -- set via a network
- netmgmt(3), -- management protocol
-
- -- obtained via ICMP,
- icmp(4), -- e.g., Redirect
-
- -- the remaining values are
- -- all gateway routing
- -- protocols
- egp(5),
- ggp(6),
- hello(7),
- rip(8),
- is-is(9),
- es-is(10),
- ciscoIgrp(11),
- bbnSpfIgp(12),
- ospf(13),
- bgp(14)
- }
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The routing mechanism via which this route was
- learned. Inclusion of values for gateway routing
- protocols is not intended to imply that hosts
- should support those protocols."
- ::= { ipRouteEntry 9 }
-
- ipRouteAge OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The number of seconds since this route was last
- updated or otherwise determined to be correct.
- Note that no semantics of `too old' can be implied
- except through knowledge of the routing protocol
- by which the route was learned."
- ::= { ipRouteEntry 10 }
-
- ipRouteMask OBJECT-TYPE
- SYNTAX IpAddress
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "Indicate the mask to be logical-ANDed with the
- destination address before being compared to the
- value in the ipRouteDest field. For those systems
- that do not support arbitrary subnet masks, an
- agent constructs the value of the ipRouteMask by
- determining whether the value of the correspondent
- ipRouteDest field belong to a class-A, B, or C
- network, and then using one of:
-
- mask network
- 255.0.0.0 class-A
- 255.255.0.0 class-B
- 255.255.255.0 class-C
-
- If the value of the ipRouteDest is 0.0.0.0 (a
- default route), then the mask value is also
- 0.0.0.0. It should be noted that all IP routing
- subsystems implicitly use this mechanism."
- ::= { ipRouteEntry 11 }
-
- ipRouteMetric5 OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "An alternate routing metric for this route. The
- semantics of this metric are determined by the
- routing-protocol specified in the route's
- ipRouteProto value. If this metric is not used,
- its value should be set to -1."
- ::= { ipRouteEntry 12 }
-
- ipRouteInfo OBJECT-TYPE
- SYNTAX OBJECT IDENTIFIER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "A reference to MIB definitions specific to the
- particular routing protocol which is responsible
- for this route, as determined by the value
- specified in the route's ipRouteProto value. If
- this information is not present, its value should
- be set to the OBJECT IDENTIFIER { 0 0 }, which is
- a syntactically valid object identifier, and any
- conformant implementation of ASN.1 and BER must be
- able to generate and recognize this value."
- ::= { ipRouteEntry 13 }
-
-
- -- the IP Address Translation table
-
- -- The IP address translation table contain the IpAddress to
- -- `physical' address equivalences. Some interfaces do not
- -- use translation tables for determining address
- -- equivalences (e.g., DDN-X.25 has an algorithmic method);
- -- if all interfaces are of this type, then the Address
- -- Translation table is empty, i.e., has zero entries.
-
- ipNetToMediaTable OBJECT-TYPE
- SYNTAX SEQUENCE OF IpNetToMediaEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "The IP Address Translation table used for mapping
- from IP addresses to physical addresses."
- ::= { ip 22 }
-
- ipNetToMediaEntry OBJECT-TYPE
- SYNTAX IpNetToMediaEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "Each entry contains one IpAddress to `physical'
- address equivalence."
- INDEX { ipNetToMediaIfIndex,
- ipNetToMediaNetAddress }
- ::= { ipNetToMediaTable 1 }
-
- IpNetToMediaEntry ::=
- SEQUENCE {
- ipNetToMediaIfIndex
- INTEGER,
- ipNetToMediaPhysAddress
- PhysAddress,
- ipNetToMediaNetAddress
- IpAddress,
- ipNetToMediaType
- INTEGER
- }
-
- ipNetToMediaIfIndex OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The interface on which this entry's equivalence
- is effective. The interface identified by a
- particular value of this index is the same
- interface as identified by the same value of
- ifIndex."
- ::= { ipNetToMediaEntry 1 }
-
- ipNetToMediaPhysAddress OBJECT-TYPE
- SYNTAX PhysAddress
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The media-dependent `physical' address."
- ::= { ipNetToMediaEntry 2 }
-
- ipNetToMediaNetAddress OBJECT-TYPE
- SYNTAX IpAddress
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The IpAddress corresponding to the media-
- dependent `physical' address."
- ::= { ipNetToMediaEntry 3 }
-
- ipNetToMediaType OBJECT-TYPE
- SYNTAX INTEGER {
- other(1), -- none of the following
- invalid(2), -- an invalidated mapping
- dynamic(3),
- static(4)
- }
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The type of mapping.
-
- Setting this object to the value invalid(2) has
- the effect of invalidating the corresponding entry
- in the ipNetToMediaTable. That is, it effectively
- disassociates the interface identified with said
- entry from the mapping identified with said entry.
- It is an implementation-specific matter as to
- whether the agent removes an invalidated entry
- from the table. Accordingly, management stations
- must be prepared to receive tabular information
- from agents that corresponds to entries not
- currently in use. Proper interpretation of such
- entries requires examination of the relevant
- ipNetToMediaType object."
- ::= { ipNetToMediaEntry 4 }
-
-
- -- additional IP objects
-
- ipRoutingDiscards OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of routing entries which were chosen
- to be discarded even though they are valid. One
- possible reason for discarding such an entry could
- be to free-up buffer space for other routing
- entries."
- ::= { ip 23 }
-
-
- -- the ICMP group
-
- -- Implementation of the ICMP group is mandatory for all
- -- systems.
-
- icmpInMsgs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of ICMP messages which the
- entity received. Note that this counter includes
- all those counted by icmpInErrors."
- ::= { icmp 1 }
-
- icmpInErrors OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP messages which the entity
- received but determined as having ICMP-specific
- errors (bad ICMP checksums, bad length, etc.)."
- ::= { icmp 2 }
-
- icmpInDestUnreachs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Destination Unreachable
- messages received."
- ::= { icmp 3 }
-
- icmpInTimeExcds OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Time Exceeded messages
- received."
- ::= { icmp 4 }
-
-
- icmpInParmProbs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Parameter Problem messages
- received."
- ::= { icmp 5 }
-
- icmpInSrcQuenchs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Source Quench messages
- received."
- ::= { icmp 6 }
-
- icmpInRedirects OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Redirect messages received."
- ::= { icmp 7 }
-
- icmpInEchos OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Echo (request) messages
- received."
- ::= { icmp 8 }
-
- icmpInEchoReps OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Echo Reply messages received."
- ::= { icmp 9 }
-
- icmpInTimestamps OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Timestamp (request) messages
- received."
- ::= { icmp 10 }
-
- icmpInTimestampReps OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Timestamp Reply messages
- received."
- ::= { icmp 11 }
-
- icmpInAddrMasks OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Address Mask Request messages
- received."
- ::= { icmp 12 }
-
- icmpInAddrMaskReps OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Address Mask Reply messages
- received."
- ::= { icmp 13 }
-
- icmpOutMsgs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of ICMP messages which this
- entity attempted to send. Note that this counter
- includes all those counted by icmpOutErrors."
- ::= { icmp 14 }
-
- icmpOutErrors OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP messages which this entity did
- not send due to problems discovered within ICMP
- such as a lack of buffers. This value should not
- include errors discovered outside the ICMP layer
- such as the inability of IP to route the resultant
- datagram. In some implementations there may be no
- types of error which contribute to this counter's
- value."
- ::= { icmp 15 }
-
- icmpOutDestUnreachs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Destination Unreachable
- messages sent."
- ::= { icmp 16 }
-
- icmpOutTimeExcds OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Time Exceeded messages sent."
- ::= { icmp 17 }
-
- icmpOutParmProbs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Parameter Problem messages
- sent."
- ::= { icmp 18 }
-
- icmpOutSrcQuenchs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Source Quench messages sent."
- ::= { icmp 19 }
-
- icmpOutRedirects OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Redirect messages sent. For a
- host, this object will always be zero, since hosts
- do not send redirects."
- ::= { icmp 20 }
-
- icmpOutEchos OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Echo (request) messages sent."
- ::= { icmp 21 }
-
- icmpOutEchoReps OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Echo Reply messages sent."
- ::= { icmp 22 }
-
- icmpOutTimestamps OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Timestamp (request) messages
- sent."
- ::= { icmp 23 }
-
- icmpOutTimestampReps OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Timestamp Reply messages
- sent."
- ::= { icmp 24 }
-
- icmpOutAddrMasks OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Address Mask Request messages
- sent."
- ::= { icmp 25 }
-
-
- icmpOutAddrMaskReps OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of ICMP Address Mask Reply messages
- sent."
- ::= { icmp 26 }
-
-
- -- the TCP group
-
- -- Implementation of the TCP group is mandatory for all
- -- systems that implement the TCP.
-
- -- Note that instances of object types that represent
- -- information about a particular TCP connection are
- -- transient; they persist only as long as the connection
- -- in question.
-
- tcpRtoAlgorithm OBJECT-TYPE
- SYNTAX INTEGER {
- other(1), -- none of the following
-
- constant(2), -- a constant rto
- rsre(3), -- MIL-STD-1778, Appendix B
- vanj(4) -- Van Jacobson's algorithm [10]
- }
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The algorithm used to determine the timeout value
- used for retransmitting unacknowledged octets."
- ::= { tcp 1 }
-
- tcpRtoMin OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The minimum value permitted by a TCP
- implementation for the retransmission timeout,
- measured in milliseconds. More refined semantics
- for objects of this type depend upon the algorithm
- used to determine the retransmission timeout. In
- particular, when the timeout algorithm is rsre(3),
- an object of this type has the semantics of the
- LBOUND quantity described in RFC 793."
- ::= { tcp 2 }
-
-
- tcpRtoMax OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The maximum value permitted by a TCP
- implementation for the retransmission timeout,
- measured in milliseconds. More refined semantics
- for objects of this type depend upon the algorithm
- used to determine the retransmission timeout. In
- particular, when the timeout algorithm is rsre(3),
- an object of this type has the semantics of the
- UBOUND quantity described in RFC 793."
- ::= { tcp 3 }
-
- tcpMaxConn OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The limit on the total number of TCP connections
- the entity can support. In entities where the
- maximum number of connections is dynamic, this
- object should contain the value -1."
- ::= { tcp 4 }
-
- tcpActiveOpens OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of times TCP connections have made a
- direct transition to the SYN-SENT state from the
- CLOSED state."
- ::= { tcp 5 }
-
- tcpPassiveOpens OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of times TCP connections have made a
- direct transition to the SYN-RCVD state from the
- LISTEN state."
- ::= { tcp 6 }
-
- tcpAttemptFails OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of times TCP connections have made a
- direct transition to the CLOSED state from either
- the SYN-SENT state or the SYN-RCVD state, plus the
- number of times TCP connections have made a direct
- transition to the LISTEN state from the SYN-RCVD
- state."
- ::= { tcp 7 }
-
- tcpEstabResets OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of times TCP connections have made a
- direct transition to the CLOSED state from either
- the ESTABLISHED state or the CLOSE-WAIT state."
- ::= { tcp 8 }
-
- tcpCurrEstab OBJECT-TYPE
- SYNTAX Gauge
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of TCP connections for which the
- current state is either ESTABLISHED or CLOSE-
- WAIT."
- ::= { tcp 9 }
-
- tcpInSegs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of segments received, including
- those received in error. This count includes
- segments received on currently established
- connections."
- ::= { tcp 10 }
-
- tcpOutSegs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of segments sent, including
- those on current connections but excluding those
- containing only retransmitted octets."
- ::= { tcp 11 }
-
- tcpRetransSegs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of segments retransmitted - that
- is, the number of TCP segments transmitted
- containing one or more previously transmitted
- octets."
- ::= { tcp 12 }
-
-
- -- the TCP Connection table
-
- -- The TCP connection table contains information about this
- -- entity's existing TCP connections.
-
- tcpConnTable OBJECT-TYPE
- SYNTAX SEQUENCE OF TcpConnEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "A table containing TCP connection-specific
- information."
- ::= { tcp 13 }
-
- tcpConnEntry OBJECT-TYPE
- SYNTAX TcpConnEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "Information about a particular current TCP
- connection. An object of this type is transient,
- in that it ceases to exist when (or soon after)
- the connection makes the transition to the CLOSED
- state."
- INDEX { tcpConnLocalAddress,
- tcpConnLocalPort,
- tcpConnRemAddress,
- tcpConnRemPort }
- ::= { tcpConnTable 1 }
-
- TcpConnEntry ::=
- SEQUENCE {
- tcpConnState
- INTEGER,
- tcpConnLocalAddress
- IpAddress,
- tcpConnLocalPort
- INTEGER (0..65535),
- tcpConnRemAddress
- IpAddress,
- tcpConnRemPort
- INTEGER (0..65535)
- }
-
- tcpConnState OBJECT-TYPE
- SYNTAX INTEGER {
- closed(1),
- listen(2),
- synSent(3),
- synReceived(4),
- established(5),
- finWait1(6),
- finWait2(7),
- closeWait(8),
- lastAck(9),
- closing(10),
- timeWait(11),
- deleteTCB(12)
- }
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "The state of this TCP connection.
-
- The only value which may be set by a management
- station is deleteTCB(12). Accordingly, it is
- appropriate for an agent to return a `badValue'
- response if a management station attempts to set
- this object to any other value.
-
- If a management station sets this object to the
- value deleteTCB(12), then this has the effect of
- deleting the TCB (as defined in RFC 793) of the
- corresponding connection on the managed node,
- resulting in immediate termination of the
- connection.
-
- As an implementation-specific option, a RST
- segment may be sent from the managed node to the
- other TCP endpoint (note however that RST segments
- are not sent reliably)."
- ::= { tcpConnEntry 1 }
-
- tcpConnLocalAddress OBJECT-TYPE
- SYNTAX IpAddress
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The local IP address for this TCP connection. In
- the case of a connection in the listen state which
- is willing to accept connections for any IP
- interface associated with the node, the value
- 0.0.0.0 is used."
- ::= { tcpConnEntry 2 }
-
- tcpConnLocalPort OBJECT-TYPE
- SYNTAX INTEGER (0..65535)
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The local port number for this TCP connection."
- ::= { tcpConnEntry 3 }
-
- tcpConnRemAddress OBJECT-TYPE
- SYNTAX IpAddress
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The remote IP address for this TCP connection."
- ::= { tcpConnEntry 4 }
-
- tcpConnRemPort OBJECT-TYPE
- SYNTAX INTEGER (0..65535)
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The remote port number for this TCP connection."
- ::= { tcpConnEntry 5 }
-
-
- -- additional TCP objects
-
- tcpInErrs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of segments received in error
- (e.g., bad TCP checksums)."
- ::= { tcp 14 }
-
- tcpOutRsts OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of TCP segments sent containing the
- RST flag."
- ::= { tcp 15 }
-
-
- -- the UDP group
-
- -- Implementation of the UDP group is mandatory for all
- -- systems which implement the UDP.
-
- udpInDatagrams OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of UDP datagrams delivered to
- UDP users."
- ::= { udp 1 }
-
- udpNoPorts OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of received UDP datagrams for
- which there was no application at the destination
- port."
- ::= { udp 2 }
-
- udpInErrors OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of received UDP datagrams that could
- not be delivered for reasons other than the lack
- of an application at the destination port."
- ::= { udp 3 }
-
- udpOutDatagrams OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of UDP datagrams sent from this
- entity."
- ::= { udp 4 }
-
-
- -- the UDP Listener table
-
- -- The UDP listener table contains information about this
- -- entity's UDP end-points on which a local application is
- -- currently accepting datagrams.
-
- udpTable OBJECT-TYPE
- SYNTAX SEQUENCE OF UdpEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "A table containing UDP listener information."
- ::= { udp 5 }
-
- udpEntry OBJECT-TYPE
- SYNTAX UdpEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "Information about a particular current UDP
- listener."
- INDEX { udpLocalAddress, udpLocalPort }
- ::= { udpTable 1 }
-
- UdpEntry ::=
- SEQUENCE {
- udpLocalAddress
- IpAddress,
- udpLocalPort
- INTEGER (0..65535)
- }
-
- udpLocalAddress OBJECT-TYPE
- SYNTAX IpAddress
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The local IP address for this UDP listener. In
- the case of a UDP listener which is willing to
- accept datagrams for any IP interface associated
- with the node, the value 0.0.0.0 is used."
- ::= { udpEntry 1 }
-
- udpLocalPort OBJECT-TYPE
- SYNTAX INTEGER (0..65535)
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The local port number for this UDP listener."
- ::= { udpEntry 2 }
-
-
- -- the EGP group
-
- -- Implementation of the EGP group is mandatory for all
- -- systems which implement the EGP.
-
- egpInMsgs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of EGP messages received without
- error."
- ::= { egp 1 }
-
- egpInErrors OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of EGP messages received that proved
- to be in error."
- ::= { egp 2 }
-
- egpOutMsgs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of locally generated EGP
- messages."
- ::= { egp 3 }
-
- egpOutErrors OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of locally generated EGP messages not
- sent due to resource limitations within an EGP
- entity."
- ::= { egp 4 }
-
-
- -- the EGP Neighbor table
-
- -- The EGP neighbor table contains information about this
- -- entity's EGP neighbors.
-
- egpNeighTable OBJECT-TYPE
- SYNTAX SEQUENCE OF EgpNeighEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "The EGP neighbor table."
- ::= { egp 5 }
-
- egpNeighEntry OBJECT-TYPE
- SYNTAX EgpNeighEntry
- ACCESS not-accessible
- STATUS mandatory
- DESCRIPTION
- "Information about this entity's relationship with
- a particular EGP neighbor."
- INDEX { egpNeighAddr }
- ::= { egpNeighTable 1 }
-
- EgpNeighEntry ::=
- SEQUENCE {
- egpNeighState
- INTEGER,
- egpNeighAddr
- IpAddress,
- egpNeighAs
- INTEGER,
- egpNeighInMsgs
- Counter,
- egpNeighInErrs
- Counter,
- egpNeighOutMsgs
- Counter,
- egpNeighOutErrs
- Counter,
- egpNeighInErrMsgs
- Counter,
- egpNeighOutErrMsgs
- Counter,
- egpNeighStateUps
- Counter,
- egpNeighStateDowns
- Counter,
- egpNeighIntervalHello
- INTEGER,
- egpNeighIntervalPoll
- INTEGER,
- egpNeighMode
- INTEGER,
- egpNeighEventTrigger
- INTEGER
- }
-
- egpNeighState OBJECT-TYPE
- SYNTAX INTEGER {
- idle(1),
- acquisition(2),
- down(3),
- up(4),
- cease(5)
- }
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The EGP state of the local system with respect to
- this entry's EGP neighbor. Each EGP state is
- represented by a value that is one greater than
- the numerical value associated with said state in
- RFC 904."
- ::= { egpNeighEntry 1 }
-
- egpNeighAddr OBJECT-TYPE
- SYNTAX IpAddress
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The IP address of this entry's EGP neighbor."
- ::= { egpNeighEntry 2 }
-
- egpNeighAs OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The autonomous system of this EGP peer. Zero
- should be specified if the autonomous system
- number of the neighbor is not yet known."
- ::= { egpNeighEntry 3 }
-
- egpNeighInMsgs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of EGP messages received without error
- from this EGP peer."
- ::= { egpNeighEntry 4 }
-
- egpNeighInErrs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of EGP messages received from this EGP
- peer that proved to be in error (e.g., bad EGP
- checksum)."
- ::= { egpNeighEntry 5 }
-
- egpNeighOutMsgs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of locally generated EGP messages to
- this EGP peer."
- ::= { egpNeighEntry 6 }
-
- egpNeighOutErrs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of locally generated EGP messages not
- sent to this EGP peer due to resource limitations
- within an EGP entity."
- ::= { egpNeighEntry 7 }
-
- egpNeighInErrMsgs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of EGP-defined error messages received
- from this EGP peer."
- ::= { egpNeighEntry 8 }
-
- egpNeighOutErrMsgs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of EGP-defined error messages sent to
- this EGP peer."
- ::= { egpNeighEntry 9 }
-
- egpNeighStateUps OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of EGP state transitions to the UP
- state with this EGP peer."
- ::= { egpNeighEntry 10 }
-
- egpNeighStateDowns OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The number of EGP state transitions from the UP
- state to any other state with this EGP peer."
- ::= { egpNeighEntry 11 }
-
- egpNeighIntervalHello OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The interval between EGP Hello command
- retransmissions (in hundredths of a second). This
- represents the t1 timer as defined in RFC 904."
- ::= { egpNeighEntry 12 }
-
- egpNeighIntervalPoll OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The interval between EGP poll command
- retransmissions (in hundredths of a second). This
- represents the t3 timer as defined in RFC 904."
- ::= { egpNeighEntry 13 }
-
- egpNeighMode OBJECT-TYPE
- SYNTAX INTEGER { active(1), passive(2) }
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The polling mode of this EGP entity, either
- passive or active."
- ::= { egpNeighEntry 14 }
-
- egpNeighEventTrigger OBJECT-TYPE
- SYNTAX INTEGER { start(1), stop(2) }
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "A control variable used to trigger operator-
- initiated Start and Stop events. When read, this
- variable always returns the most recent value that
- egpNeighEventTrigger was set to. If it has not
- been set since the last initialization of the
- network management subsystem on the node, it
- returns a value of `stop'.
-
- When set, this variable causes a Start or Stop
- event on the specified neighbor, as specified on
- pages 8-10 of RFC 904. Briefly, a Start event
- causes an Idle peer to begin neighbor acquisition
- and a non-Idle peer to reinitiate neighbor
- acquisition. A stop event causes a non-Idle peer
- to return to the Idle state until a Start event
- occurs, either via egpNeighEventTrigger or
- otherwise."
- ::= { egpNeighEntry 15 }
-
-
- -- additional EGP objects
-
- egpAs OBJECT-TYPE
- SYNTAX INTEGER
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The autonomous system number of this EGP entity."
- ::= { egp 6 }
-
- -- the Transmission group
-
- -- Based on the transmission media underlying each interface
- -- on a system, the corresponding portion of the Transmission
- -- group is mandatory for that system.
-
- -- When Internet-standard definitions for managing
- -- transmission media are defined, the transmission group is
- -- used to provide a prefix for the names of those objects.
-
- -- Typically, such definitions reside in the experimental
- -- portion of the MIB until they are "proven", then as a
- -- part of the Internet standardization process, the
- -- definitions are accordingly elevated and a new object
- -- identifier, under the transmission group is defined. By
- -- convention, the name assigned is:
- --
- -- type OBJECT IDENTIFIER ::= { transmission number }
- --
- -- where "type" is the symbolic value used for the media in
- -- the ifType column of the ifTable object, and "number" is
- -- the actual integer value corresponding to the symbol.
-
-
- -- the SNMP group
-
- -- Implementation of the SNMP group is mandatory for all
- -- systems which support an SNMP protocol entity. Some of
- -- the objects defined below will be zero-valued in those
- -- SNMP implementations that are optimized to support only
- -- those functions specific to either a management agent or
- -- a management station. In particular, it should be
- -- observed that the objects below refer to an SNMP entity,
- -- and there may be several SNMP entities residing on a
- -- managed node (e.g., if the node is hosting acting as
- -- a management station).
-
- snmpInPkts OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of Messages delivered to the
- SNMP entity from the transport service."
- ::= { snmp 1 }
-
- snmpOutPkts OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Messages which were
- passed from the SNMP protocol entity to the
- transport service."
- ::= { snmp 2 }
-
- snmpInBadVersions OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Messages which were
- delivered to the SNMP protocol entity and were for
- an unsupported SNMP version."
- ::= { snmp 3 }
-
- snmpInBadCommunityNames OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Messages delivered to
- the SNMP protocol entity which used a SNMP
- community name not known to said entity."
- ::= { snmp 4 }
-
- snmpInBadCommunityUses OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Messages delivered to
- the SNMP protocol entity which represented an SNMP
- operation which was not allowed by the SNMP
- community named in the Message."
- ::= { snmp 5 }
-
- snmpInASNParseErrs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of ASN.1 or BER errors
- encountered by the SNMP protocol entity when
- decoding received SNMP Messages."
- ::= { snmp 6 }
-
- -- { snmp 7 } is not used
-
- snmpInTooBigs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP PDUs which were
- delivered to the SNMP protocol entity and for
- which the value of the error-status field is
- `tooBig'."
- ::= { snmp 8 }
-
- snmpInNoSuchNames OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP PDUs which were
- delivered to the SNMP protocol entity and for
- which the value of the error-status field is
- `noSuchName'."
- ::= { snmp 9 }
-
- snmpInBadValues OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP PDUs which were
- delivered to the SNMP protocol entity and for
- which the value of the error-status field is
- `badValue'."
- ::= { snmp 10 }
-
- snmpInReadOnlys OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number valid SNMP PDUs which were
- delivered to the SNMP protocol entity and for
- which the value of the error-status field is
- `readOnly'. It should be noted that it is a
- protocol error to generate an SNMP PDU which
- contains the value `readOnly' in the error-status
- field, as such this object is provided as a means
- of detecting incorrect implementations of the
- SNMP."
- ::= { snmp 11 }
-
- snmpInGenErrs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP PDUs which were
- delivered to the SNMP protocol entity and for
- which the value of the error-status field is
- `genErr'."
- ::= { snmp 12 }
-
- snmpInTotalReqVars OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of MIB objects which have been
- retrieved successfully by the SNMP protocol entity
- as the result of receiving valid SNMP Get-Request
- and Get-Next PDUs."
- ::= { snmp 13 }
-
- snmpInTotalSetVars OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of MIB objects which have been
- altered successfully by the SNMP protocol entity
- as the result of receiving valid SNMP Set-Request
- PDUs."
- ::= { snmp 14 }
-
- snmpInGetRequests OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Get-Request PDUs which
- have been accepted and processed by the SNMP
- protocol entity."
- ::= { snmp 15 }
-
- snmpInGetNexts OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Get-Next PDUs which have
- been accepted and processed by the SNMP protocol
- entity."
- ::= { snmp 16 }
-
- snmpInSetRequests OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Set-Request PDUs which
- have been accepted and processed by the SNMP
- protocol entity."
- ::= { snmp 17 }
-
- snmpInGetResponses OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Get-Response PDUs which
- have been accepted and processed by the SNMP
- protocol entity."
- ::= { snmp 18 }
-
- snmpInTraps OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Trap PDUs which have
- been accepted and processed by the SNMP protocol
- entity."
- ::= { snmp 19 }
-
- snmpOutTooBigs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP PDUs which were
- generated by the SNMP protocol entity and for
- which the value of the error-status field is
- `tooBig.'"
- ::= { snmp 20 }
-
- snmpOutNoSuchNames OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP PDUs which were
- generated by the SNMP protocol entity and for
- which the value of the error-status is
- `noSuchName'."
- ::= { snmp 21 }
-
- snmpOutBadValues OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP PDUs which were
- generated by the SNMP protocol entity and for
- which the value of the error-status field is
- `badValue'."
- ::= { snmp 22 }
-
- -- { snmp 23 } is not used
-
- snmpOutGenErrs OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP PDUs which were
- generated by the SNMP protocol entity and for
- which the value of the error-status field is
- `genErr'."
- ::= { snmp 24 }
-
- snmpOutGetRequests OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Get-Request PDUs which
- have been generated by the SNMP protocol entity."
- ::= { snmp 25 }
-
- snmpOutGetNexts OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Get-Next PDUs which have
- been generated by the SNMP protocol entity."
- ::= { snmp 26 }
-
- snmpOutSetRequests OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Set-Request PDUs which
- have been generated by the SNMP protocol entity."
- ::= { snmp 27 }
-
- snmpOutGetResponses OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Get-Response PDUs which
- have been generated by the SNMP protocol entity."
- ::= { snmp 28 }
-
- snmpOutTraps OBJECT-TYPE
- SYNTAX Counter
- ACCESS read-only
- STATUS mandatory
- DESCRIPTION
- "The total number of SNMP Trap PDUs which have
- been generated by the SNMP protocol entity."
- ::= { snmp 29 }
-
- snmpEnableAuthenTraps OBJECT-TYPE
- SYNTAX INTEGER { enabled(1), disabled(2) }
- ACCESS read-write
- STATUS mandatory
- DESCRIPTION
- "Indicates whether the SNMP agent process is
- permitted to generate authentication-failure
- traps. The value of this object overrides any
- configuration information; as such, it provides a
- means whereby all authentication-failure traps may
- be disabled.
-
- Note that it is strongly recommended that this
- object be stored in non-volatile memory so that it
- remains constant between re-initializations of the
- network management system."
- ::= { snmp 30 }
-
-END
diff --git a/ASNMP/tests/Address_Test.cpp b/ASNMP/tests/Address_Test.cpp
deleted file mode 100644
index cadca2722dc..00000000000
--- a/ASNMP/tests/Address_Test.cpp
+++ /dev/null
@@ -1,549 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Address_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Address family:
-// GenAddress, MacAddress, IpxAddress, IpAddress, UdpAddress
-// all which derive from abstract base class Address.
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
-/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-Copyright 1997 Cisco Systems, Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this
-copyright and permission notice appear on all copies of the software and
-supporting documentation, the name of Cisco Systems, Inc. not be used
-in advertising or publicity pertaining to distribution of the
-program without specific prior permission, and notice be given
-in supporting documentation that modification, copying and distribution is by
-permission of Cisco Systems, Inc.
-
-Cisco Systems, Inc. makes no representations about the suitability of this
-software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
-AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
-LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
-FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
-LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
-SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
-DAMAGES.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
-
-#include "asnmp/address.h"
-#include "test_config.h"
-
-ACE_RCSID(tests, Address_Test, "$Id$")
-
-// test the GenAddress interface
-/*
- */
-static void TestGenAddr()
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress: Tests: var(expected) [actual]\n"));
-
- // the constructors and destructors
- GenAddress *ga1 = new GenAddress("1.2.3.4"); // use ipv4 address
- ACE_ASSERT(ga1->valid() == 1);
- GenAddress ga2(*ga1); // copy constructor;
- ACE_ASSERT(ga2.valid() == 1);
- GenAddress ga3("localhost");
- ACE_ASSERT(ga3.valid() == 1);
- GenAddress ga4; // default constructor
- ACE_ASSERT(ga4.valid() == 0);
- GenAddress ga5; // default constructor
- ACE_ASSERT(ga5.valid() == 0);
- GenAddress ga6("127.0.0.1:7"); // udp address
- ACE_ASSERT(ga6.valid() == 1);
- GenAddress ga7("01234567.89ABcDeF0123"); // ipx address
- ACE_ASSERT(ga7.valid() == 1);
- IpAddress ip("1.2.3.4");
- ACE_ASSERT(ip.valid() == 1);
- GenAddress ga8(ip); // Address conversion
- ACE_ASSERT(ga8.valid() == 1);
-
- const char *ptr = (const char *)ga8;
-
- ACE_ASSERT(ga1 != 0);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga1(\"1.2.3.4\") [%s]\n",
- ga1->to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga2(ga1) [%s]\n",
- ga2.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga3(\"localhost\") [%s]\n",
- ga3.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga4(\"\") [%s]\n",
- ga4.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga6(\"127.0.0.1:7\") [%s]\n",
- ga6.to_string()));
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga7(\"01234567.89ABcDeF0123\") [%s]\n",
- ga7.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga8(\"1.2.3.4\") [%s]\n",
- ga8.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga8(\"1.2.3.4\") [%s]\n",
- ptr));
-
- // Test Assignment x = y, y = x
- ga5 = ga3; // regular assignment
- ga3 = ga3; // self assignment
- ACE_ASSERT(ga5 == ga3);
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga5=ga3(\"localhost\") [%s]\n",
- ga5.to_string()));
-
- addr_type a = ga2.get_type();
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga2.get_type(\"0\") [%d]\n",
- a));
- // udp address string
- a = ga6.get_type();
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga2.get_type(\"2\") [%d]\n",
- a));
-
- // udp address string
- a = ga7.get_type();
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) GenAddress:ga2.get_type(\"1\") [%d]\n",
- a));
-
- delete ga1, ga1 = 0;
-}
-
-/* public methods
- IpAddress( const char *inaddr = "");
- IpAddress( const IpAddress &ipaddr);
- IpAddress( const GenAddress &genaddr);
- ~IpAddress();
- SnmpSyntax& operator=( SnmpSyntax &val);
- IpAddress& operator=( const IpAddress &ipaddress);
- SnmpSyntax *clone() const;
- char *resolve_hostname(int &status);
- virtual char *to_string() ;
- virtual operator const char *() const;
- void mask( const IpAddress& ipaddr);
- virtual addr_type get_type() const;
- virtual SmiUINT32 get_syntax();
- int is_loopback() const;
- int is_multicast() const;
- int is_broadcast() const;
- int is_arpanet() const;
- */
-static void TestIpAddress()
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress: Tests\n"));
-
- // constructors
- GenAddress ga("255.255.255.255");
- IpAddress ia1;
- IpAddress ia2("224.2.3.4");
- ACE_ASSERT(ia2.is_multicast());
- ACE_ASSERT(!ia2.is_loopback());
- IpAddress ia3("localhost");
- ACE_ASSERT(ia3.is_loopback());
- ACE_ASSERT(!ia3.is_multicast());
- IpAddress ia4(ia3);
- ACE_ASSERT(ia4.is_loopback());
- ACE_ASSERT(!ia4.is_multicast());
- IpAddress ia5(ga);
- ACE_ASSERT(ia5.is_broadcast());
- IpAddress ia6 = IpAddress("10.0.0.2");
- ACE_ASSERT(ia6.is_private());
- ACE_ASSERT(!ia6.is_multicast());
- ACE_ASSERT(!ia6.is_loopback());
-
- IpAddress ia7("172.16.0.1");
- ACE_ASSERT(ia7.is_private());
-
- IpAddress ia8("192.168.0.1");
- ACE_ASSERT(ia8.is_private());
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia1(\"\") [%s]\n",
- ia1.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia2(\"1.2.3.4\") [%s]\n",
- ia2.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia3(\"127.0.0.1\") [%s]\n",
- ia3.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia4(\"ia3\") [%s]\n",
- ia4.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia5(\"255.255.255.255\") [%s]\n",
- ia5.to_string()));
-
- // other routines
- int status = 1;
- const char *ptr = ia5.resolve_hostname(status);
- ACE_ASSERT(status == 0);
- ACE_ASSERT(ptr != 0);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia5.resolve_hostname():(\"\") [%s]\n",
- ptr));
-
- // now lets try one we setup with a hostname
- ptr = ia3.resolve_hostname(status);
- ACE_ASSERT(status == 0);
- ACE_ASSERT(ptr != 0);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:ia3.resolve_hostname()(\"localhost\") [%s]\n",
- ptr));
-
- ptr = (const char *)ia5;
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpAddress:(const char *)(\"255.255.255.255\") [%s]\n",
- ptr));
-
- ia2 = ia3;
- ACE_ASSERT(ia2 == ia3);
-
- ia4.mask(ia3); // mask with equal value should return same
- ACE_ASSERT(ia2 == ia3);
-
- ACE_ASSERT(ia1.get_type() == type_ip);
- ACE_ASSERT(ia1.valid() == 0);
- ACE_ASSERT(ia2.get_type() == type_ip);
- ACE_ASSERT(ia2.valid() == 1);
- ACE_ASSERT(ia3.get_type() == type_ip);
- ACE_ASSERT(ia3.valid() == 1);
- ACE_ASSERT(ia4.get_type() == type_ip);
- ACE_ASSERT(ia4.valid() == 1);
- ACE_ASSERT(ia5.get_type() == type_ip);
- ACE_ASSERT(ia5.valid() == 1);
-}
-
-
-// --------------- Netbios ---------------
-/*
- NetbiosAddress( const char *inaddr = "");
- NetbiosAddress( const NetbiosAddress& nbaddr);
- NetbiosAddress( const GenAddress& genaddr);
- ~NetbiosAddress();
- virtual char *to_string();
- NetbiosAddress& operator=( const NetbiosAddress &nbaddr);
- nb_service get_service_type() const;
- void set_service_type(nb_service nbservice);
- virtual operator const char *() const;
- virtual SmiUINT32 get_syntax();
- SnmpSyntax& operator=( SnmpSyntax &val);
- SnmpSyntax *clone() const;
- */
-static void TestNetbiosAddress()
-{
- NetbiosAddress n1;
- ACE_ASSERT(n1.valid() == 0);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) NetbiosAddress:n1(\"\") [%s]\n",
- n1.to_string()));
-
- NetbiosAddress n2(n1);
- ACE_ASSERT(n2.valid() == 0);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) NetbiosAddress:n2(n1) [%s]\n",
- n2.to_string()));
-
- NetbiosAddress n3("pcname");
- ACE_ASSERT(n3.valid() == 1);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) NetbiosAddress:n3(\"pcname\") [%s]\n",
- n3.to_string()));
-
- NetbiosAddress n4("abcdefghigjklmn");
- n4.set_service_type(nb_workstation);
- ACE_ASSERT(n4.valid() == 1);
- ACE_ASSERT(n4.get_service_type() == nb_workstation);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) NetbiosAddress:n4(\"abcdefghigjklmn\") [%s]\n",
- n4.to_string()));
-
- NetbiosAddress n5("abcdefghigjklmno0xx");
- ACE_ASSERT(n5.valid() == 0);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) NetbiosAddress:n4(\"abcdefghigjklmno0xx\") [%s]\n",
- n5.to_string()));
-
- n1 = n4;
- ACE_ASSERT(n1 == n4);
- ACE_ASSERT(strcmp((const char *)n1, (const char *)n4) == 0);
-
- n1.set_service_type(nb_server);
- nb_service x = n1.get_service_type();
- ACE_ASSERT(x == nb_server);
-}
-
-// --------------- IPX ---------------
-/*
- IpxAddress( void);
- IpxAddress( const char *inaddr);
- IpxAddress( const IpxAddress &ipxaddr);
- IpxAddress( const GenAddress &genaddr);
- ~IpxAddress();
- virtual SmiUINT32 get_syntax();
- SnmpSyntax& operator=( SnmpSyntax &val);
- IpxAddress& operator=( const IpxAddress &ipxaddress);
- int get_hostid( MacAddress& mac);
- SnmpSyntax *clone() const;
- virtual operator const char *() const;
- virtual addr_type get_type() const;
-
-Ipx Address semantics: Total length must be 21
-// Must have a separator in it
-// First string length must be 8
-// Second string length must be 12
-// Each char must take on value 0-F
-//
-//
-// Input formats recognized
-//
-// XXXXXXXX.XXXXXXXXXXXX
-// XXXXXXXX:XXXXXXXXXXXX
-// XXXXXXXX-XXXXXXXXXXXX
-// XXXXXXXX.XXXXXX-XXXXXX
-// XXXXXXXX:XXXXXX-XXXXXX
-// XXXXXXXX-XXXXXX-XXXXXX
-
- */
-
-static void TestIpxAddress()
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress: Tests\n"));
- IpxAddress xa1;
- ACE_ASSERT(xa1.valid() == 0);
- ACE_ASSERT(xa1.get_type() == type_ipx);
- GenAddress gen("01234567.0123456789AB");
- ACE_ASSERT(gen.valid() == 1);
- IpxAddress xa2("01234567.0123456789AB");
- ACE_ASSERT(xa2.get_type() == type_ipx);
- ACE_ASSERT(xa2.valid() == 1);
- IpxAddress xa3("01234567:0123456789AB");
- ACE_ASSERT(xa3.get_type() == type_ipx);
- ACE_ASSERT(xa3.valid() == 1);
- IpxAddress xa4("01234567-0123456789AB");
- ACE_ASSERT(xa4.get_type() == type_ipx);
- ACE_ASSERT(xa4.valid() == 1);
- IpxAddress xa5("01234567.012345-6789AB");
- ACE_ASSERT(xa5.get_type() == type_ipx);
- ACE_ASSERT(xa5.valid() == 1);
- IpxAddress xa6("01234567:012345-6789AB");
- ACE_ASSERT(xa6.get_type() == type_ipx);
- ACE_ASSERT(xa6.valid() == 1);
- IpxAddress xa7("01234567-012345-6789AB");
- ACE_ASSERT(xa7.get_type() == type_ipx);
- ACE_ASSERT(xa7.valid() == 1);
- IpxAddress xa8("01234567.");
- ACE_ASSERT(xa8.get_type() == type_ipx);
- ACE_ASSERT(xa8.valid() == 0);
- IpxAddress xa9(gen);
- ACE_ASSERT(xa9.valid() == 1);
- IpxAddress *xa10 = new IpxAddress(xa9);
- ACE_ASSERT(xa10->get_type() == type_ipx);
- ACE_ASSERT(xa10->valid() == 1);
- delete xa10;
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa1(\"\") [%s]\n",
- xa1.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa2(\"01234567.0123456789AB\") [%s]\n",
- xa2.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa3(\"01234567:0123456789A\") [%s]\n",
- xa3.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa4(\"01234567-0123456789AB\") [%s]\n",
- xa4.to_string()));
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa5(\"01234567.012345-6789AB\") [%s]\n",
- xa5.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa6(\"01234567:012345-6789AB\") [%s]\n",
- xa6.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa7(\"01234567-012345-6789AB\") [%s]\n",
- xa7.to_string()));
-
- // assignment
- xa1 = xa3;
- ACE_ASSERT(xa1 == xa3);
- MacAddress mac;
- ACE_ASSERT(xa4.get_hostid(mac) == 1);
- ACE_ASSERT(mac.valid() == 1);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa4:get_hostid(\"01:23:45:67:89:ab\") [%s]\n", mac.to_string()));
-
- const char *ptr = (const char *)xa7;
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) IpxAddress:xa7-ptr(\"01234567-012345-6789AB\") [%s]\n", ptr));
-
-}
-
-/*
- MacAddress( void);
-
- MacAddress( const char *inaddr);
- MacAddress( const MacAddress &macaddr);
- MacAddress( const GenAddress &genaddr);
- ~MacAddress();
-* SmiUINT32 get_syntax();
-* SnmpSyntax& operator=( SnmpSyntax &val);
- MacAddress& operator=( const MacAddress &macaddress);
-* SnmpSyntax *clone() const;
- virtual char *to_string();
- virtual operator const char *() const;
- virtual addr_type get_type() const;
- unsigned int hashFunction() const;
-
-// MAC address format
-//
-// MAC ADDRESS
-// 01 02 03 04 05 06
-// XX:XX:XX:XX:XX:XX
-// Valid input format
-//
-// XXXXXXXXXXXX
-// Total length must be 17
-// Each char must take on value 0-F
-//
-
-*/
-
-static void TestMacAddress()
-{
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress: Tests\n"));
-
- MacAddress ma1;
- ACE_ASSERT(ma1.valid() == 0);
- ACE_ASSERT(ma1.get_type() == type_mac);
- MacAddress ma2("01:23:45:67:89:AB");
- ACE_ASSERT(ma2.valid() == 1);
- ACE_ASSERT(ma2.get_type() == type_mac);
- MacAddress ma3("0123456789ABCEFGHI"); // invalid string
- ACE_ASSERT(ma3.valid() == 0);
- ACE_ASSERT(ma3.get_type() == type_mac);
- GenAddress ga("01:23:45:67:89:AB"); // mac address
- MacAddress ma4(ma2);
- ACE_ASSERT(ma4.valid() == 1);
- ACE_ASSERT(ma4.get_type() == type_mac);
- MacAddress ma5(ga);
- ACE_ASSERT(ma5.valid() == 0);
- ACE_ASSERT(ma5.get_type() == type_mac);
-
- ma1 = ma2;
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma1(\"01:23:45:67:89:AB\") [%s]\n",
- ma1.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma2(\"01:23:45:67:89:AB\") [%s]\n",
- ma2.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma3(\"\") [%s]\n",
- ma3.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma4(\"01:23:45:67:89:AB\") [%s]\n",
- ma4.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma5(\"\") [%s]\n",
- ma5.to_string()));
- const char * ptr = (const char *)ma5;
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma5(\"\") [%s]\n",
- ptr));
-
- // hashFunction crashes if not usedwith valid fn
- int x = ma2.hashFunction();
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) MacAddress:ma2.hashFunction(\"483201\") [%d]\n",
- x));
-}
-
-/*
- UdpAddress( void);
- UdpAddress( const char *inaddr);
- UdpAddress( const UdpAddress &udpaddr);
- UdpAddress( const GenAddress &genaddr);
- UdpAddress( const IpAddress &ipaddr);
- ~UdpAddress();
- SmiUINT32 get_syntax();
- SnmpSyntax& operator=( SnmpSyntax &val);
- UdpAddress& operator=( const UdpAddress &udpaddr);
- SnmpSyntax *clone() const;
- virtual char *to_string() ;
- virtual operator const char *() const;
- void set_port( const unsigned short p);
- unsigned short get_port() const;
- virtual addr_type get_type() const;
-
- // look for port info @ the end of the string
- // port can be delineated by a ':' or a '/'
- // if neither are present then just treat it
- // like a normal IpAddress
-
- */
-
-static void TestUdpAddress()
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress: Tests\n"));
-
- UdpAddress ua1;
- ACE_ASSERT(ua1.valid() == 0);
- ACE_ASSERT(ua1.get_type() == type_udp);
-
- // semantics of not setting the port here are bizzare?
- UdpAddress ua2("127.0.0.1:161");
- ACE_ASSERT(ua2.valid() == 1);
- ACE_ASSERT(ua2.get_type() == type_udp);
-
- UdpAddress ua3(ua2);
- ACE_ASSERT(ua3.valid() == 1);
- ACE_ASSERT(ua3.get_type() == type_udp);
-
- GenAddress ga("localhost");
- UdpAddress ua4(ga);
- ACE_ASSERT(ua4.valid() == 1);
- ACE_ASSERT(ua4.get_type() == type_udp);
-
- IpAddress ia("localhost");
- UdpAddress ua5(ga);
- ACE_ASSERT(ua5.valid() == 1);
- ACE_ASSERT(ua5.get_type() == type_udp);
-
- UdpAddress *ua6 = new UdpAddress("localhost:161");
- ACE_ASSERT(ua6->valid() == 1);
- ACE_ASSERT(ua6->get_type() == type_udp);
-
- UdpAddress ua7 = UdpAddress("localhost/162");
- ACE_ASSERT(ua7.valid() == 1);
- ACE_ASSERT(ua7.get_type() == type_udp);
-
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua1(\"\") [%s]\n",
- ua1.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua2(\"127.0.0.1:161\") [%s]\n",
- ua2.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua3(ua2)(\"127.0.0.1:161\") [%s]\n",
- ua3.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua4(GenAddress)(\"127.0.0.1\") [%s]\n",
- ua4.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua5(IpAddress)(\"127.0.0.1\") [%s]\n",
- ua5.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua6()(\"localhost:161\") [%s]\n",
- ua6->to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua7()(\"localhost/162\") [%s]\n",
- ua7.to_string()));
-
- delete ua6; // destructor
-
- // assignement tests.
- ua1 = ua2;
- ACE_ASSERT(ua1 == ua2);
- ACE_ASSERT(ua1.valid() == 1);
- ua1 = ua1;
- ACE_ASSERT(ua1 == ua1);
- ACE_ASSERT(ua1.valid() == 1);
-
- // set/get port
- ua1.set_port(333);
- ACE_ASSERT(ua1.get_port() == 333);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpAddress:ua1.set_port()(\"333\") [%s]\n",
- (const char *)ua1));
-
-}
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Address_Test");
-
- TestGenAddr();
- TestIpAddress();
- TestUdpAddress();
- TestMacAddress();
- TestNetbiosAddress();
- TestIpxAddress();
-
- ACE_END_TEST;
- return 0;
-}
diff --git a/ASNMP/tests/Counter64_Test.cpp b/ASNMP/tests/Counter64_Test.cpp
deleted file mode 100644
index b0f0e172c82..00000000000
--- a/ASNMP/tests/Counter64_Test.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Counter64_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Counter64 class. An Object
-// representing an ASN.1 Counter64 SMI 64 bit Integer SYNTAX.
-// (SNMPv2c)
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
-/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-Copyright 1997 Cisco Systems, Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this
-copyright and permission notice appear on all copies of the software and
-supporting documentation, the name of Cisco Systems, Inc. not be used
-in advertising or publicity pertaining to distribution of the
-program without specific prior permission, and notice be given
-in supporting documentation that modification, copying and distribution is by
-permission of Cisco Systems, Inc.
-
-Cisco Systems, Inc. makes no representations about the suitability of this
-software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
-AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
-LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
-FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
-LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
-SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
-DAMAGES.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
-
-
-#include "ace/OS.h"
-#include "asnmp/ctr64.h"
-#include "test_config.h"
-
-ACE_RCSID(tests, Counter64_Test, "$Id$")
-
-// TODO: verify this with ACE folks
-#if defined(_WIN32)
-#define LLONG __int64
-#else
-#define LLONG long long
-#define ULLONG unsigned long long
-#endif
-
-/*
- Counter64( unsigned long long llw = 0);
- Counter64( unsigned long hiparm, unsigned long loparm);
- Counter64( const Counter64 &ctr64);
- ~Counter64();
- SmiUINT32 get_syntax();
- long double to_long_double() const;
- Counter64& assign( long double ld);
- unsigned long high() const;
- unsigned long low() const;
- void set_high( const unsigned long h);
- void set_low( const unsigned long l);
- Counter64& operator=( const unsigned long long rhs);
- Counter64& operator=( const Counter64 &rhs);
- char *to_string();
- SnmpSyntax *clone() const;
- SnmpSyntax& operator=( SnmpSyntax &val);
- int valid() const;
- operator unsigned long long();
- */
-
-static void TestCounter64()
-{
- static unsigned long ul = ULONG_MAX;
- LLONG ll = (LLONG) 0x7fffffffffffffffLL;
- LLONG mll = (LLONG) ((-ll) - 1);
- ULLONG ull = (ULLONG) 0xffffffffffffffffULL;
- long double ld = (LLONG) ll;
-
- cerr << "max unsigned long long is " << ull << endl;
- cerr << "max long long is " << ll << endl;
- cerr << "min long long is " << mll << endl;
-
- Counter64 c1;
- ACE_ASSERT(c1.valid() == 1);
- Counter64 c2(ul, ul);
- ACE_ASSERT(c2.valid() == 1);
- ACE_ASSERT(c2.high() == ul);
- ACE_ASSERT(c2.low() == ul);
-
- Counter64 c3(ul);
- ACE_ASSERT(c3.valid() == 1);
- ACE_ASSERT(c3.low() == ul);
-
- Counter64 c4(c2);
- ACE_ASSERT(c4.valid() == 1);
- ACE_ASSERT(c4.high() == ul);
- ACE_ASSERT(c4.low() == ul);
-
- Counter64 c5(0);
- ACE_ASSERT(c5.valid() == 1);
-
- Counter64 c6;
- c6.assign(ld);
- ACE_ASSERT(c6.to_long_double() == ld);
-
- Counter64 c7(ull);
- ACE_ASSERT(c7 == ull);
-
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c1(\"\") [%s]\n",
- c1.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c2(LONG_MAX,LONG_MAX) [%s]\n",
- c2.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c3(LONG_MAX) [%s]\n",
- c3.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c4(c2) [%s]\n",
- c4.to_string()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c5(0) [%s]\n",
- c5.to_string()));
-
- // misc routines
- c1.set_low(1);
- c1.set_high(2);
- ACE_ASSERT(c1.low() == 1);
- ACE_ASSERT(c1.high() == 2);
- // assignment
- c5 = c4;
- ACE_ASSERT(c5 == c4);
- c4 = c4;
- ACE_ASSERT(c5 == c4);
- c5 = ll;
- ACE_ASSERT(c5 == ll);
- // try simple arithmetic (needs more test cases)
- c5 = mll;
- c5 = c5 + (ULLONG) 10;
- ACE_ASSERT(c5 == (mll + 10));
-}
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Counter64_Test");
-
- TestCounter64();
-
- ACE_END_TEST;
- return 0;
-}
diff --git a/ASNMP/tests/Counter_Test.cpp b/ASNMP/tests/Counter_Test.cpp
deleted file mode 100644
index 0538261cb8d..00000000000
--- a/ASNMP/tests/Counter_Test.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Counter_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Counter class. An Object
-// representing an ASN.1 Counter SMI COUNTER SYNTAX.
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
-/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-Copyright 1997 Cisco Systems, Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this
-copyright and permission notice appear on all copies of the software and
-supporting documentation, the name of Cisco Systems, Inc. not be used
-in advertising or publicity pertaining to distribution of the
-program without specific prior permission, and notice be given
-in supporting documentation that modification, copying and distribution is by
-permission of Cisco Systems, Inc.
-
-Cisco Systems, Inc. makes no representations about the suitability of this
-software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
-AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
-LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
-FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
-LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
-SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
-DAMAGES.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
-
-
-#include "ace/OS.h"
-#include "asnmp/counter.h"
-#include "test_config.h"
-
-ACE_RCSID(tests, Counter_Test, "$Id$")
-
-/*
- Counter32( void);
- Counter32( const unsigned long i);
- Counter32( const Counter32 &c);
-* SmiUINT32 get_syntax();
-* SnmpSyntax *clone() const;
-* SnmpSyntax& operator=( SnmpSyntax &val);
- Counter32& operator=( const Counter32 &uli);
- Counter32& operator=( const unsigned long i);
- operator unsigned long();
-
- -- comments tyis type appears to be a wrapper class and not
- a true SNMP counter. Practical for nms side,yet may lead to
- some confusion if implementing an agent with this class.
-
- Per RFC 1155 sec 3.2.3.3
- This application-wide type represents a non-negative integer which
- monotonically increases until it reaches a maximum value, when it
- wraps around and starts increasing again from zero. This memo
- specifies a maximum value of 2^32-1 for counters
-*/
-
-static void TestCounter()
-{
- long l = LONG_MAX, nl = LONG_MIN; // limits.h
- unsigned long ul = ULONG_MAX, def = 0;
- int i = INT_MAX, ni = INT_MIN;
- unsigned int ui = UINT_MAX;
- unsigned short us = 10;
- short si = 65535;
-
- // constructors
- Counter32 c1;
- ACE_ASSERT(c1 == def);
- Counter32 c2(l);
- ACE_ASSERT(c2 == l);
- Counter32 c3(nl);
- ACE_ASSERT(c3 == nl);
- Counter32 c4(ul);
- ACE_ASSERT(c4 == ul);
- Counter32 c5(i);
- ACE_ASSERT(c5 == i);
- Counter32 c6(ni);
- ACE_ASSERT(c6 == ni);
- Counter32 c7(ui);
- ACE_ASSERT(c7 == ui);
- Counter32 *c8 = new Counter32(c5);
- ACE_ASSERT(c8 != 0);
- delete c8;
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c1(\"\") [%u]\n",
- (unsigned long)c1));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c2(\"%u\") [%u]\n",
- l, (unsigned long)c2));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c3(\"%u\") [%u]\n",
- nl, (unsigned long)c3));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c4(\"%u\") [%u]\n",
- ul, (unsigned long)c4));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c5(\"%u\") [%u]\n",
- i, (unsigned long)c5));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c6(\"%u\") [%u]\n",
- ni, (unsigned long)c6));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) c7(\"%u\") [%u]\n",
- ui, (unsigned long)c7));
-
- // assignent
- c1 = c2; // obj
- ACE_ASSERT(c1 == c2);
- c1 = c1; // self
- ACE_ASSERT(c1 == c1);
- c1 = def; // unsigned long
- ACE_ASSERT(c1 == def);
- c1 = us; // unsigned short
- ACE_ASSERT(c1 == us);
- c1 = si; // unsigned short
- ACE_ASSERT(c1 == si);
-
-}
-
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Counter_Test");
-
- TestCounter();
-
- ACE_END_TEST;
- return 0;
-}
diff --git a/ASNMP/tests/Gauge_Test.cpp b/ASNMP/tests/Gauge_Test.cpp
deleted file mode 100644
index a607d58c1b7..00000000000
--- a/ASNMP/tests/Gauge_Test.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Guage_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Guage class. An Object
-// representing an ASN.1 Counter SMI GUAGE SYNTAX.
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
-/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-Copyright 1997 Cisco Systems, Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this
-copyright and permission notice appear on all copies of the software and
-supporting documentation, the name of Cisco Systems, Inc. not be used
-in advertising or publicity pertaining to distribution of the
-program without specific prior permission, and notice be given
-in supporting documentation that modification, copying and distribution is by
-permission of Cisco Systems, Inc.
-
-Cisco Systems, Inc. makes no representations about the suitability of this
-software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
-AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
-LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
-FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
-LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
-SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
-DAMAGES.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
-
-#include "ace/OS.h"
-#include "asnmp/gauge.h"
-#include "test_config.h"
-
-ACE_RCSID(tests, Gauge_Test, "$Id$")
-
-/*
- Gauge32( void);
- Gauge32( const unsigned long i);
- Gauge32 ( const Gauge32 &g);
- ~Gauge32();
- SmiUINT32 get_syntax();
- SnmpSyntax *clone() const;
- Gauge32& operator=( const Gauge32 &uli);
- Gauge32& operator=( const unsigned long i);
- operator unsigned long();
- SnmpSyntax& operator=( SnmpSyntax &val);
-
--- What is a Gauge? According to RFC 1155 section: 3.2.3.4
- This application-wide type represents a non-negative integer
- which may increase or decreae, but which latches at a maximum
- value of 2^32-1 (4294967295 dec) for gauges.
- */
-static void TestGuage()
-{
- long l = LONG_MAX, nl = LONG_MIN; // limits.h
- unsigned long ul = ULONG_MAX, def = 0;
- int i = INT_MAX, ni = INT_MIN;
- unsigned int ui = UINT_MAX;
- unsigned short us = 10;
- short si = 65535;
-
- // constructors
- Gauge32 g1;
- ACE_ASSERT(g1 == def);
- Gauge32 g2(l);
- ACE_ASSERT(g2 == l);
- Gauge32 g3(nl);
- ACE_ASSERT(g3 == nl);
- Gauge32 g4(ul);
- ACE_ASSERT(g4 == ul);
- Gauge32 g5(i);
- ACE_ASSERT(g5 == i);
- Gauge32 g6(ni);
- ACE_ASSERT(g6 == ni);
- Gauge32 g7(ui);
- ACE_ASSERT(g7 == ui);
- Gauge32 *g8 = new Gauge32(g5);
- ACE_ASSERT(g8 != 0);
- delete g8;
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) g1(\"\") [%u]\n",
- (unsigned long)g1));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) g2(\"%u\") [%u]\n",
- l, (unsigned long)g2));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) g3(\"%u\") [%u]\n",
- nl, (unsigned long)g3));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) g4(\"%u\") [%u]\n",
- ul, (unsigned long)g4));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) g5(\"%u\") [%u]\n",
- i, (unsigned long)g5));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) g6(\"%u\") [%u]\n",
- ni, (unsigned long)g6));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) g7(\"%u\") [%u]\n",
- ui, (unsigned long)g7));
-
- // assignent
- g1 = g2; // obj
- ACE_ASSERT(g1 == g2);
- g1 = g1; // self
- ACE_ASSERT(g1 == g1);
- g1 = def; // unsigned long
- ACE_ASSERT(g1 == def);
- g1 = us; // unsigned short
- ACE_ASSERT(g1 == us);
- g1 = si; // unsigned short
- ACE_ASSERT(g1 == si);
-}
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Guage_Test");
-
- TestGuage();
-
- ACE_END_TEST;
- return 0;
-}
diff --git a/ASNMP/tests/Integer_Test.cpp b/ASNMP/tests/Integer_Test.cpp
deleted file mode 100644
index c289425d8ea..00000000000
--- a/ASNMP/tests/Integer_Test.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Integer_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Integer class. An Object
-// representing an ASN.1 Integer64 SMI 32 bit Integer SYNTAX.
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
-/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-Copyright 1997 Cisco Systems, Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this
-copyright and permission notice appear on all copies of the software and
-supporting documentation, the name of Cisco Systems, Inc. not be used
-in advertising or publicity pertaining to distribution of the
-program without specific prior permission, and notice be given
-in supporting documentation that modification, copying and distribution is by
-permission of Cisco Systems, Inc.
-
-Cisco Systems, Inc. makes no representations about the suitability of this
-software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
-AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
-LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
-FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
-LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
-SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
-DAMAGES.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
-
-
-#include "ace/OS.h"
-#include "asnmp/integer.h"
-#include "test_config.h"
-
-ACE_RCSID(tests, Integer_Test, "$Id$")
-
-static long l = LONG_MAX, nl = LONG_MIN; // limits.h
-static unsigned long ul = ULONG_MAX, def = 0;
-static int i = INT_MAX, ni = INT_MIN;
-static unsigned int ui = UINT_MAX;
-static unsigned short us = 10;
-static short si = 65535;
-
-/*
- SnmpInt32( void);
- SnmpInt32 (const long i);
- SnmpInt32 (const SnmpInt32 &c);
- virtual ~SnmpInt32();
- virtual SmiUINT32 get_syntax();
- SnmpInt32& operator=( const long i);
- SnmpInt32& operator=( const SnmpInt32 &li);
- operator long();
- char *to_string();
- SnmpSyntax *clone() const;
- SnmpSyntax& operator=( SnmpSyntax &val);
- int valid() const;
- */
-
-static void TestInteger32()
-{
-
- // constructors
- SnmpInt32 i1;
- ACE_ASSERT(i1 == def);
- SnmpInt32 i2(l);
- ACE_ASSERT(i2 == l);
- SnmpInt32 i3(nl);
- ACE_ASSERT(i3 == nl);
- SnmpInt32 i4(ul);
- ACE_ASSERT(i4 == ul);
- SnmpInt32 i5(i);
- ACE_ASSERT(i5 == i);
- SnmpInt32 i6(ni);
- ACE_ASSERT(i6 == ni);
- SnmpInt32 i7(ui);
- ACE_ASSERT(i7 == ui);
- SnmpInt32 *i8 = new SnmpInt32(i5);
- ACE_ASSERT(i8 != 0);
- delete i8;
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) i1(\"\") [%u]\n",
- (unsigned long)i1));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) i2(\"%u\") [%u]\n",
- l, (unsigned long)i2));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) i3(\"%u\") [%u]\n",
- nl, (unsigned long)i3));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) i4(\"%u\") [%u]\n",
- ul, (unsigned long)i4));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) i5(\"%u\") [%u]\n",
- i, (unsigned long)i5));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) i6(\"%u\") [%u]\n",
- ni, (unsigned long)i6));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) i7(\"%u\") [%u]\n",
- ui, (unsigned long)i7));
-
- // assignent
- i1 = i2; // obj
- ACE_ASSERT(i1 == i2);
- i1 = i1; // self
- ACE_ASSERT(i1 == i1);
- i1 = def; // unsigned long
- ACE_ASSERT(i1 == def);
- i1 = us; // unsigned short
- ACE_ASSERT(i1 == us);
- i1 = si; // unsigned short
- ACE_ASSERT(i1 == si);
-}
-
-/*
- SnmpUInt32( void);
- SnmpUInt32 (const unsigned long i);
- SnmpUInt32( const SnmpUInt32 &c);
- virtual ~SnmpUInt32();
- virtual SmiUINT32 get_syntax();
- SnmpUInt32& operator=( const unsigned long i);
- SnmpUInt32& operator=( const SnmpUInt32 &uli);
- operator unsigned long();
- virtual char *to_string();
- virtual SnmpSyntax *clone() const;
- SnmpSyntax& operator=( SnmpSyntax &val);
- int valid() const;
- */
-static void TestUnsignedInteger32()
-{
- // constructors
- SnmpUInt32 u1;
- ACE_ASSERT(u1 == def);
- SnmpUInt32 u2(l);
- ACE_ASSERT(u2 == l);
- SnmpUInt32 u3(nl);
- ACE_ASSERT(u3 == nl);
- SnmpUInt32 u4(ul);
- ACE_ASSERT(u4 == ul);
- SnmpUInt32 u5(i);
- ACE_ASSERT(u5 == i);
- SnmpUInt32 u6(ni);
- ACE_ASSERT(u6 == ni);
- SnmpUInt32 u7(ui);
- ACE_ASSERT(u7 == ui);
- SnmpUInt32 *u8 = new SnmpUInt32(u5);
- ACE_ASSERT(u8 != 0);
- delete u8;
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) u1(\"\") [%u]\n",
- (unsigned long)u1));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) u2(\"%u\") [%u]\n",
- l, (unsigned long)u2));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) u3(\"%u\") [%u]\n",
- nl, (unsigned long)u3));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) u4(\"%u\") [%u]\n",
- ul, (unsigned long)u4));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) u5(\"%u\") [%u]\n",
- i, (unsigned long)u5));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) u6(\"%u\") [%u]\n",
- ni, (unsigned long)u6));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) u7(\"%u\") [%u]\n",
- ui, (unsigned long)u7));
-
- // assignent
- u1 = u2; // obj
- ACE_ASSERT(u1 == u2);
- u1 = u1; // self
- ACE_ASSERT(u1 == u1);
- u1 = def; // unsigned long
- ACE_ASSERT(u1 == def);
- u1 = us; // unsigned short
- ACE_ASSERT(u1 == us);
- u1 = si; // unsigned short
- ACE_ASSERT(u1 == si);
-}
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Integer_Test");
-
- TestInteger32();
-
- TestUnsignedInteger32();
-
- ACE_END_TEST;
- return 0;
-}
diff --git a/ASNMP/tests/Makefile b/ASNMP/tests/Makefile
deleted file mode 100644
index f6745784cfb..00000000000
--- a/ASNMP/tests/Makefile
+++ /dev/null
@@ -1,503 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for all the ACE+SNMP ``one-button' tests
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-# ACE+SNMP before -lACE
-
-BIN = Oid_Test \
- Counter_Test \
- Counter64_Test \
- Integer_Test \
- Octet_Test \
- Gauge_Test \
- Address_Test \
- Target_Test \
- Varbind_Test
-
-LSRC = $(addsuffix .cpp,$(BIN))
-LDLIBS := -L$(ACE_ROOT)/ASNMP/asnmp -lasnmp $(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.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-CCFLAGS = -I$(ACE_ROOT)/ASNMP/
-# For make depend:
-CPPFLAGS += -I$(ACE_ROOT)/ASNMP
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/Oid_Test.o .obj/Oid_Test.so .shobj/Oid_Test.o .shobj/Oid_Test.so: Oid_Test.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ASNMP/asnmp/oid.h \
- $(ACE_ROOT)/ASNMP/asnmp/smival.h \
- $(ACE_ROOT)/ASNMP/asnmp/smi.h \
- test_config.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Counter_Test.o .obj/Counter_Test.so .shobj/Counter_Test.o .shobj/Counter_Test.so: Counter_Test.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ASNMP/asnmp/counter.h \
- $(ACE_ROOT)/ASNMP/asnmp/smival.h \
- $(ACE_ROOT)/ASNMP/asnmp/smi.h \
- $(ACE_ROOT)/ASNMP/asnmp/integer.h \
- test_config.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Counter64_Test.o .obj/Counter64_Test.so .shobj/Counter64_Test.o .shobj/Counter64_Test.so: Counter64_Test.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ASNMP/asnmp/ctr64.h \
- $(ACE_ROOT)/ASNMP/asnmp/smival.h \
- $(ACE_ROOT)/ASNMP/asnmp/smi.h \
- test_config.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Integer_Test.o .obj/Integer_Test.so .shobj/Integer_Test.o .shobj/Integer_Test.so: Integer_Test.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ASNMP/asnmp/integer.h \
- $(ACE_ROOT)/ASNMP/asnmp/smival.h \
- $(ACE_ROOT)/ASNMP/asnmp/smi.h \
- test_config.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Octet_Test.o .obj/Octet_Test.so .shobj/Octet_Test.o .shobj/Octet_Test.so: Octet_Test.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ASNMP/asnmp/octet.h \
- $(ACE_ROOT)/ASNMP/asnmp/smival.h \
- $(ACE_ROOT)/ASNMP/asnmp/smi.h \
- test_config.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Gauge_Test.o .obj/Gauge_Test.so .shobj/Gauge_Test.o .shobj/Gauge_Test.so: Gauge_Test.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ASNMP/asnmp/gauge.h \
- $(ACE_ROOT)/ASNMP/asnmp/integer.h \
- $(ACE_ROOT)/ASNMP/asnmp/smival.h \
- $(ACE_ROOT)/ASNMP/asnmp/smi.h \
- test_config.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Address_Test.o .obj/Address_Test.so .shobj/Address_Test.o .shobj/Address_Test.so: Address_Test.cpp \
- $(ACE_ROOT)/ASNMP/asnmp/address.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ASNMP/asnmp/smival.h \
- $(ACE_ROOT)/ASNMP/asnmp/smi.h \
- $(ACE_ROOT)/ASNMP/asnmp/octet.h \
- test_config.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i
-
-.obj/Target_Test.o .obj/Target_Test.so .shobj/Target_Test.o .shobj/Target_Test.so: Target_Test.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ASNMP/asnmp/octet.h \
- $(ACE_ROOT)/ASNMP/asnmp/smival.h \
- $(ACE_ROOT)/ASNMP/asnmp/smi.h \
- $(ACE_ROOT)/ASNMP/asnmp/target.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ASNMP/asnmp/address.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ASNMP/asnmp/oid.h \
- test_config.h
-
-.obj/Varbind_Test.o .obj/Varbind_Test.so .shobj/Varbind_Test.o .shobj/Varbind_Test.so: Varbind_Test.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ASNMP/asnmp/oid.h \
- $(ACE_ROOT)/ASNMP/asnmp/smival.h \
- $(ACE_ROOT)/ASNMP/asnmp/smi.h \
- $(ACE_ROOT)/ASNMP/asnmp/vb.h \
- $(ACE_ROOT)/ASNMP/asnmp/snmperrs.h \
- $(ACE_ROOT)/ASNMP/asnmp/timetick.h \
- $(ACE_ROOT)/ASNMP/asnmp/integer.h \
- $(ACE_ROOT)/ASNMP/asnmp/counter.h \
- $(ACE_ROOT)/ASNMP/asnmp/gauge.h \
- $(ACE_ROOT)/ASNMP/asnmp/ctr64.h \
- $(ACE_ROOT)/ASNMP/asnmp/octet.h \
- $(ACE_ROOT)/ASNMP/asnmp/address.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- test_config.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/ASNMP/tests/Octet_Test.cpp b/ASNMP/tests/Octet_Test.cpp
deleted file mode 100644
index 7aa032b5223..00000000000
--- a/ASNMP/tests/Octet_Test.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Octet_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the OCTET class. An Object
-// representing an ASN.1 Integer64 SMI OCTET STRING SYNTAX.
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
-
-/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-Copyright 1997 Cisco Systems, Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this
-copyright and permission notice appear on all copies of the software and
-supporting documentation, the name of Cisco Systems, Inc. not be used
-in advertising or publicity pertaining to distribution of the
-program without specific prior permission, and notice be given
-in supporting documentation that modification, copying and distribution is by
-permission of Cisco Systems, Inc.
-
-Cisco Systems, Inc. makes no representations about the suitability of this
-software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
-AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
-LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
-FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
-LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
-SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
-DAMAGES.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
-
-
-#include "ace/OS.h"
-#include "asnmp/octet.h"
-#include "test_config.h"
-
-ACE_RCSID(tests, Octet_Test, "$Id$")
-
-/*
- OctetStr( const char *string, long size = -1);
- OctetStr ( const OctetStr &octet);
- ~OctetStr();
-
- SmiUINT32 get_syntax();
- void set_data( const SmiBYTE* string, long int size = -1);
- OctetStr& operator=( const char *string);
- OctetStr& operator=( const OctetStr &octet);
-
- int operator==( const OctetStr &lhs, const OctetStr &rhs);
- int operator!=( const OctetStr &lhs, const OctetStr &rhs);
- int operator<( const OctetStr &lhs, const OctetStr &rhs);
- int operator<=( const OctetStr &lhs,const OctetStr &rhs);
- int operator>( const OctetStr &lhs, const OctetStr &rhs);
- int operator>=( const OctetStr &lhs, const OctetStr &rhs);
- int operator==( const OctetStr &lhs,const char *rhs);
- int operator!=( const OctetStr &lhs,const char *rhs);
- int operator<( const OctetStr &lhs,const char *rhs);
- int operator<=( const OctetStr &lhs,char *rhs);
- int operator>( const OctetStr &lhs,const char *rhs);
- int operator>=( const OctetStr &lhs,const char *rhs);
- OctetStr& operator+=( const SmiBYTE *a);
- OctetStr& operator+=( const char c);
- OctetStr& operator+=( const OctetStr& octetstr);
- SmiBYTE& operator[]( int position);
- int nCompare( const long n, const OctetStr &o) const;
- size_t length() const ;
- int valid() const;
- SmiBYTE *data() const;
- char *to_string();
- char *to_string_hex();
- SnmpSyntax *clone() const;
- SnmpSyntax& operator=( SnmpSyntax &val);
- */
-
-static void TestOctet()
-{
- char *str = "A test of octet strings...!@@#$%^&*()_+|~{}:,./<>?";
- OctetStr o1;
- ACE_ASSERT(o1.valid() == 1);
- ACE_ASSERT(o1.length() == 0);
- ACE_ASSERT(o1.data() != (unsigned char *)0);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o1(\"\") [%s]\n",
- o1.to_string()));
- o1.set_data((SmiBYTE *)str);
- ACE_ASSERT(!ACE_OS::strcmp(str, (char *)o1.data()));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o1(\"str\") [%s]\n",
- o1.to_string()));
-
- OctetStr o2(str);
- ACE_ASSERT(o2.valid() == 1);
- ACE_ASSERT(o2.data() != (unsigned char *)0);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o2(\"str\") [%s]\n",
- o2.to_string()));
-
- OctetStr o3(str, 4); // test setting less than full string length
- ACE_ASSERT(o3.valid() == 1);
- ACE_ASSERT(o3.length() == 4);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o3(\"A te\") [%s]\n",
- o3.to_string()));
-
- OctetStr o4(o3); // test setting less than full string length
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o4(\"A te\") [%s]\n",
- o4.to_string()));
- ACE_ASSERT(o4.valid() == 1);
- ACE_ASSERT(o4.length() == 4);
-
- OctetStr o5;
- o5 = str;
- ACE_ASSERT(o5.valid() == 1);
- ACE_ASSERT(o5.length() == ACE_OS::strlen(str));
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o5(\"str\") [%s]\n",
- o5.to_string()));
-
- OctetStr o6;
- o6 = o5;
- ACE_ASSERT(o6.valid() == 1);
- ACE_ASSERT(o5.length() == o6.length());
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o6(\"str\") [%s]\n",
- o6.to_string()));
-
- o6 += o3;
- o6 = "";
- o6 += str;
- o6 += '#';
- ACE_ASSERT(o6[0] == (SmiBYTE) 'A');
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Octet:o6(\"str\") [%s]\n",
- o6.to_string()));
-
- ACE_ASSERT(!(o3 < o3));
- ACE_ASSERT(!(o3 > o3));
- ACE_ASSERT(o3 >= o3);
- ACE_ASSERT(o3 <= o3);
- ACE_ASSERT(o3 == o3);
- ACE_ASSERT(!(o3 != o3));
-
-}
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Octet_Test");
-
- TestOctet();
- ACE_END_TEST;
- return 0;
-}
diff --git a/ASNMP/tests/Oid_Test.cpp b/ASNMP/tests/Oid_Test.cpp
deleted file mode 100644
index c195b0a7105..00000000000
--- a/ASNMP/tests/Oid_Test.cpp
+++ /dev/null
@@ -1,181 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// Oid_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Oid class. An Object
-// representing an ASN.1 Integer64 SMI OID SYNTAX.
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
-/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-Copyright 1997 Cisco Systems, Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this
-copyright and permission notice appear on all copies of the software and
-supporting documentation, the name of Cisco Systems, Inc. not be used
-in advertising or publicity pertaining to distribution of the
-program without specific prior permission, and notice be given
-in supporting documentation that modification, copying and distribution is by
-permission of Cisco Systems, Inc.
-
-Cisco Systems, Inc. makes no representations about the suitability of this
-software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
-AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
-LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
-FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
-LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
-SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
-DAMAGES.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
-
-#include "ace/OS.h"
-#include "asnmp/oid.h"
-#include "test_config.h"
-
-ACE_RCSID(tests, Oid_Test, "$Id$")
-
-/*
- Oid( const char * dotted_oid_string = "", size_t size = -1);
- Oid ( const Oid &oid);
- Oid(const unsigned long *raw_oid, size_t oid_len);
- ~Oid();
-
- SmiUINT32 get_syntax();
- Oid& operator=( const Oid &oid);
- int operator==( const Oid &lhs,const Oid &rhs);
- int operator!=( const Oid &lhs,const Oid &rhs);
- int operator<( const Oid &lhs,const Oid &rhs);
- int operator<=( const Oid &lhs,const Oid &rhs);
- int operator>( const Oid &lhs,const Oid &rhs);
- int operator>=( const Oid &lhs,const Oid &rhs);
- Oid& operator+=( const char *a);
- Oid& operator+=( const unsigned long i);
- Oid& operator+=( const Oid &o);
- unsigned long & operator[]( size_t position);
- SmiLPOID oidval();
- void set_data( const char *dotted_oid_string);
- void set_data( const unsigned long *raw_oid, const size_t oid_len);
- size_t length() const;
- void trim( const size_t how_many = 1);
- int suboid( const size_t start, const size_t end, Oid& new_oid);
- int left_comparison( const unsigned long n, const Oid &o) const;
- int right_comparison( const unsigned long n, const Oid &o) const;
- int valid() const;
- char *to_string();
- SnmpSyntax *clone() const;
- SnmpSyntax& operator=( SnmpSyntax &val);
- */
-
-static void OidTest()
-{
- Oid d1;
- ACE_ASSERT(d1.valid() == 0);
- ACE_ASSERT(d1.length() == 0);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d1(\"\") [%s]\n",
- d1.to_string()));
-
- Oid d2("1.2.3");
- ACE_ASSERT(d2.valid() == 1);
- ACE_ASSERT(d2.length() == 3);
- ACE_ASSERT(d2[0] == (unsigned long) 1);
- ACE_ASSERT(d2[1] == (unsigned long) 2);
- ACE_ASSERT(d2[2] == (unsigned long) 3);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d2(\"1.2.3\") [%s]\n",
- d2.to_string()));
-
- Oid d3(d2);
- ACE_ASSERT(d3.valid() == 1);
- ACE_ASSERT(d3.length() == 3);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d3(\"d2\") [%s]\n",
- d3.to_string()));
-
- unsigned long t[3] = {2,3,4};
- Oid d4((unsigned long *)&t, sizeof(t)/sizeof(long));
- ACE_ASSERT(d4.valid() == 1);
- ACE_ASSERT(d4.length() == 3);
- ACE_ASSERT(d4[0] == (unsigned long) 2);
- ACE_ASSERT(d4[1] == (unsigned long) 3);
- ACE_ASSERT(d4[2] == (unsigned long) 4);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d4(\"long(2.3.4)\") [%s]\n",
- d4.to_string()));
-
- // suboid
- Oid d5;
- ACE_ASSERT(d4.suboid(d5, 1,1) == 0); // 2,3,4, 1,1 == 3
- ACE_ASSERT(d5.length() == 1);
- ACE_ASSERT(d5.valid() == 1);
- ACE_ASSERT(d5[0] == 3);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d6::suboid(d5,1,1) [%s]\n",
- d5.to_string()));
-
- // trim
- Oid d7(d4);
- ACE_ASSERT(d7.valid() == 1);
- d7.trim();
- ACE_ASSERT(d7.length() == d4.length() -1);
-
- // compare methods
- ACE_ASSERT(d7.left_comparison( d7.length(), d7) == 0);
- ACE_ASSERT(d4.right_comparison( d4.length(), d4) == 0);
-
- // assignment
- d1 = d4;
- ACE_ASSERT(d1.valid() == 1);
- ACE_ASSERT(d1 == d4);
- d2 = "5.6.7";
- ACE_ASSERT(d2.valid() == 1);
- ACE_ASSERT(d2[2] == (unsigned long) 7);
- d1 = "8.9.10";
- ACE_ASSERT(d1.valid() == 1);
-
- // concat
- unsigned long ll = ULONG_MAX;
- d1 = "";
- d1 += (unsigned long)0;
- d1 += ll;
- d1 += ll;
- d1 += "0";
- ACE_ASSERT(d1.valid() == 1);
- ACE_ASSERT(d1.length() == 4);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:d1(0,max,max,0) [%s]\n",
- d1.to_string()));
- ACE_ASSERT(d1[0] == (unsigned long)0);
- ACE_ASSERT(d1[1] == ll);
- ACE_ASSERT(d1[2] == ll);
- ACE_ASSERT(d1[3] == (unsigned long)0);
-
- d2 += d1;
- ACE_ASSERT(d2.valid() == 1);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Oid:(5.6.7.8.9.10) [%s]\n",
- d2.to_string()));
-
- // test out max Oid string...
-
- // relational operators oid,oid
- ACE_ASSERT(d2 == d2);
- ACE_ASSERT(!(d2 != d2));
- ACE_ASSERT(!(d2 < d2));
- ACE_ASSERT(!(d2 > d2));
- ACE_ASSERT(d2 >= d2);
- ACE_ASSERT(d2 <= d2);
-
-}
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Oid_Test");
- OidTest();
- ACE_END_TEST;
- return 0;
-}
diff --git a/ASNMP/tests/Target_Test.cpp b/ASNMP/tests/Target_Test.cpp
deleted file mode 100644
index dbbc848e401..00000000000
--- a/ASNMP/tests/Target_Test.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// tests
-//
-// = FILENAME
-// Target_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Target class.
-// Not sure if this object is really required or not in the new framework
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
-
-/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-Copyright 1997 Cisco Systems, Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this
-copyright and permission notice appear on all copies of the software and
-supporting documentation, the name of Cisco Systems, Inc. not be used
-in advertising or publicity pertaining to distribution of the
-program without specific prior permission, and notice be given
-in supporting documentation that modification, copying and distribution is by
-permission of Cisco Systems, Inc.
-
-Cisco Systems, Inc. makes no representations about the suitability of this
-software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
-AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
-LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
-FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
-LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
-SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
-DAMAGES.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
-
-
-#include "ace/OS.h"
-#include "asnmp/octet.h"
-#include "asnmp/target.h"
-#include "test_config.h"
-
-ACE_RCSID(tests, Target_Test, "$Id$")
-
-/*
- Percieved Problems with this CTarget aka UdpTarget Interface:
-
- 1) can't set snmp version during constructor (default value?)
- 2) doesn't use ANSI C++ String class (still uses char *)
- 3) Makes it easy to mix up read and write comm strs (could be diff types)
- 3) so many get/set's, leads one to rethink the design/use of UdpTarget
- 4) Use of resolve_to_C smells like a HACK...
- 5) No valid() member function returns 1 even if no address given..
- 6) No to_string()?! (Fixed)
- 7) can't access retry, timeout parameters...
- 8) can't assign or equate two UdpTargets
-
- UdpTarget( void);
- UdpTarget( const Address &address);
- UdpTarget( const UdpTarget &target);
- UdpTarget( const Address &address, // address
- const char *read_community_name, // read community name
- const char *write_community_name); // write community name
- UdpTarget( const Address &address, // address
- const OctetStr &read_community_name, // read community
- const OctetStr &write_community_name); // write community
- ~UdpTarget();
-
- SnmpTarget *clone() const;
- void get_readcommunity( OctetStr& read_community_oct);
- void set_readcommunity( const OctetStr& read_community);
- void get_writecommunity( OctetStr &write_community_oct);
- void set_writecommunity( const OctetStr& write_community);
- void get_address( UdpAddress & address);
- int set_address( Address &address);
- snmp_version get_version();
- void set_version( const snmp_version v);
-
- UdpTarget& operator=( const UdpTarget& target);
- friend int operator==( const UdpTarget &lhs, const UdpTarget &rhs);
-
- */
-
-static void TestSnmpTarget()
-{
- OctetStr rd("rd_comm"), wr("wr_comm");
- ACE_ASSERT(rd.valid() == 1);
- ACE_ASSERT(wr.valid() == 1);
- char *crd = "rd_comm", *cwr = "wr_comm";
-
- // constructor and get tests
- UdpAddress ga;
- ACE_ASSERT(ga.valid() == 0);
-
- UdpTarget c1;
- ACE_ASSERT(c1.valid() == 0);
- OctetStr a, b("public"), c("private");
- c1.get_read_community(a);
- ACE_ASSERT(a == b);
- c1.get_write_community(a);
- ACE_ASSERT(a == c);
- c1.get_address (ga);
- ACE_ASSERT(c1.get_version() == version1);
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpTarget:c1(\"\") [%s]\n",
- c1.to_string()));
-
- IpAddress ip("127.0.0.1");
- UdpTarget c2(ip);
- ACE_ASSERT(c2.valid() == 1);
- c2.get_address (ga);
- ACE_ASSERT(ga.valid() == 1);
- ACE_ASSERT(c2.get_version() == version1);
- ACE_ASSERT(ga.valid() == 1);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpTarget:c2(\"\") [%s]\n",
- c2.to_string()));
-
- UdpTarget *c5 = new UdpTarget(c2);
- ACE_ASSERT(c5 != 0);
- ACE_ASSERT(c5->valid() == 1);
- c5->get_address (ga);
- ACE_ASSERT(ga.valid() == 1);
- ACE_ASSERT(c5->get_version() == version1);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) UdpTarget:c5(\"\") [%s]\n",
- c5->to_string()));
- delete c5;
-
-// these are not supported yet
-// ACE_ASSERT(c5 == c5);
-// c5 = c2;
-// ACE_ASSERT(c5 == c2);
-}
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("Target_Test");
- TestSnmpTarget();
-
- ACE_END_TEST;
- return 0;
-}
diff --git a/ASNMP/tests/Varbind_Test.cpp b/ASNMP/tests/Varbind_Test.cpp
deleted file mode 100644
index 0491543f0e7..00000000000
--- a/ASNMP/tests/Varbind_Test.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// asnmp
-//
-// = FILENAME
-// Varbind_Test.cpp
-//
-// = DESCRIPTION
-// Test all the member functions of the Varbind class.
-// A varbind is a list of { oids and associated values }
-//
-// = AUTHOR
-// Michael R. MacFaden <mrm@cisco.com>
-//
-// ============================================================================
-
-/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-Copyright 1997 Cisco Systems, Inc.
-
-Permission to use, copy, modify, and distribute this software for any
-purpose and without fee is hereby granted, provided that this
-copyright and permission notice appear on all copies of the software and
-supporting documentation, the name of Cisco Systems, Inc. not be used
-in advertising or publicity pertaining to distribution of the
-program without specific prior permission, and notice be given
-in supporting documentation that modification, copying and distribution is by
-permission of Cisco Systems, Inc.
-
-Cisco Systems, Inc. makes no representations about the suitability of this
-software for any purpose. THIS SOFTWARE IS PROVIDED ``AS IS''
-AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
-LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGMENT AND
-FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL CISCO SYSTEMS, INC. BE
-LIABLE FOR ANY DAMAGES ARISING OUT OF THIS LICENSE OR YOUR USE OF THE
-SOFTWARE INCLUDING WITHOUT LIMITATION, DIRECT, INDIRECT OR CONSEQUENTIAL
-DAMAGES.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*/
-
-
-#include "ace/OS.h"
-#include "asnmp/oid.h"
-#include "asnmp/vb.h"
-#include "test_config.h"
-
-ACE_RCSID(tests, Varbind_Test, "$Id$")
-
-/*
- Vb( void);
- Vb( const Oid &oid);
- Vb( const Vb &vb);
- Vb( const Oid& vb, const SnmpSyntax &val, const SmiUINT32=SNMP_CLASS_SUCCESS);
- ~Vb();
- int valid() const;
- Vb& operator=( const Vb &vb);
- void set_oid( const Oid& oid);
- void get_oid( Oid &oid) const;
- void set_null();
- void set_value( const TimeTicks& ticks);
- void set_value( const Oid& oid);
- void set_value( const Counter32& ctr);
- void set_value( const Counter64& ctr);
- void set_value( const Gauge32& ctr);
- void set_value( const SnmpUInt32& ctr);
- void set_value( const SnmpInt32& ctr);
- void set_value( const OctetStr& oct_str);
- int get_value( TimeTicks& ticks);
- int get_value( Oid& oid);
- int get_value( Counter32& ctr);
- int get_value( Counter64& ctr);
- int get_value( Gauge32& ctr);
- int get_value( SnmpUInt32& ctr);
- int get_value( SnmpInt32& ctr);
- int get_value( OctetStr& oct_str);
- int get_value( SnmpSyntax &val);
- void set_value( const SnmpSyntax &val);
- int get_value( const SnmpSyntax &val);
- SmiUINT32 get_syntax();
- friend void set_exception_status( Vb *vb, const SmiUINT32 status);
- char *to_string();
- char *to_string_value();
- char *to_string_oid();
- */
-
-static void VbTest()
-{
- Vb v1;
- ACE_ASSERT(v1.valid() == 0);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) VarBinad:v1(\"/\") [%s]\n",
- v1.to_string()));
-
- // purpose of this routine??
- set_exception_status( &v1, 10);
-
- Vb v2(v1);
- ACE_ASSERT(v2.valid() == 0);
- Oid o1("1.2.3"), o2;
- v2.set_oid(o1);
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) VarBinad:v2(\"1.2.3/\") [%s]\n",
- v2.to_string()));
-
- v2.get_oid(o2);
- ACE_ASSERT(o2 == o1);
- ACE_ASSERT(v2.valid() == 0);
- v2.set_null();
- ACE_ASSERT(v2.valid() == 0);
- v2.get_oid(o2);
-
- Vb v3;
- TimeTicks t(0), t1;
- v3.set_oid(o1);
- v3.set_value(t);
- ACE_ASSERT(v3.valid() == 1);
- v3.get_value(t1);
- ACE_ASSERT(t == t1);
-
- Vb v4;
- v4.set_oid(o1);
- v4.set_value(o1);
- ACE_ASSERT(v4.valid() == 1);
- v4.get_value(o2);
- ACE_ASSERT(o1 == o2);
-
- Vb v5;
- Counter32 c1(12), c2;
- v5.set_oid(o1);
- v5.set_value(c1);
- ACE_ASSERT(v5.valid() == 1);
- v5.get_value(c2);
- ACE_ASSERT(c1 == c2);
-
- Vb v6;
- Counter64 c3(12345678901234ULL), c4;
- v6.set_oid(o1);
- v6.set_value(c3);
- ACE_ASSERT(v6.valid() == 1);
- v6.get_value(c4);
- ACE_ASSERT(c3 == c4);
-
- Vb v7;
- Gauge32 g1(0123456), g2;
- v7.set_oid(o1);
- v7.set_value(g1);
- ACE_ASSERT(v7.valid() == 1);
- v7.get_value(g2);
- ACE_ASSERT(g1 == g2);
-
- Vb v8;
- SnmpInt32 i1(0123456), i2;
- v8.set_oid(o1);
- v8.set_value(i1);
- ACE_ASSERT(v8.valid() == 1);
- v8.get_value(i2);
- ACE_ASSERT(i1 == i2);
-
- Vb v9;
- SnmpUInt32 u1(0123456), u2;
- v9.set_oid(o1);
- v9.set_value(u1);
- ACE_ASSERT(v9.valid() == 1);
- v9.get_value(u2);
- ACE_ASSERT(u1 == u2);
-
- Vb v10;
- OctetStr s1(" abcdefghighlmnopqrstuvwxyz!@#$%^&*()"), s2;
- v10.set_oid(o1);
- v10.set_value(s1);
- ACE_ASSERT(v10.valid() == 1);
- v10.get_value(s2);
- ACE_ASSERT(s1 == s2);
- ACE_ASSERT(s1.length() == s2.length());
-
- // test assignment over all datatypes
- v10 = v5;
- ACE_ASSERT(v10 == v5);
-
-
- Vb v11(o1, s1, SNMP_CLASS_SUCCESS);
- ACE_ASSERT(v11.valid() == 1);
- v11.get_oid(o2);
- ACE_ASSERT(o1 == o2);
- v11.get_value(s2);
- ACE_ASSERT(s1 == s2);
-}
-
-int
-main (int, char *[])
-{
- ACE_START_TEST ("VbTest");
- VbTest();
- ACE_END_TEST;
- return 0;
-}
diff --git a/ASNMP/tests/run_tests.bat b/ASNMP/tests/run_tests.bat
deleted file mode 100644
index 985f88b51db..00000000000
--- a/ASNMP/tests/run_tests.bat
+++ /dev/null
@@ -1,44 +0,0 @@
-@echo off
-rem To use this either give it no arguments to run all the tests or
-rem pass it the test name (without the extention) to run only one
-rem test
-
-if not "%1" == "" goto runtest
-
-call run_tests
-
-call run_tests Address_Test
-call run_tests Counter64_Test
-call run_tests Counter_Test
-call run_tests Gauge_Test
-call run_tests Integer_Test
-call run_tests Octet_Test
-call run_tests Oid_Test
-call run_tests Target_Test
-call run_tests Varbind_Test
-
-goto done
-
-:runtest
-
-echo Running %1
-%1.exe
-if errorlevel 0 goto fine
-echo.
-echo %1 has FAILED!!!
-echo.
-type %temp%\log\%1.log | find /I "assertion failed"
-type %temp%\log\%1.log | find /I "not supported"
-type %temp%\log\%1.log | find /I "no such file or directory"
-type %temp%\log\%1.log | find /I "invalid argument"
-type %temp%\log\%1.log | find /I "timeout"
-type %temp%\log\%1.log | find /I "bad file number"
-echo.
-
-goto done
-:fine
-
-rem We should check the log files here to make sure the test ended correctly
-rem type %temp%\log\%1.log | find "Ending"
-
-:done
diff --git a/ASNMP/tests/run_tests.sh b/ASNMP/tests/run_tests.sh
deleted file mode 100755
index c8d911c184c..00000000000
--- a/ASNMP/tests/run_tests.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/sh
-# This is the UNIX version of the one-button ACE tests.
-# Contributed by Michael Rueger <m_rueger@SYSCOMP.DE>
-# mrm@cisco.com - Change to for loop script could be more generic if we put
-# this in the bin dir and fed it a file to read from
-
-IFS="|"
-tmp=/tmp
-
-# these patterns should not be included in log file
-ERROR_MSGS="assertion failed|not supported|No such file or directory|Invalid argument|timeout|Bad file number"
-
-# these patterns must be included in log file
-SUCCESS_MSGS="starting|Ending"
-
-run()
-{
- echo running $1
- /bin/rm -f core
-
- ./$1
- status=$?
-
- if [ $status -ne 0 ]; then
- echo \"$1\" FAILED with exit status $status!!!!
- fi
-
- if [ -f core ]; then
- echo \"$1\" dumped core!!!!
- fi
-
- for i in $SUCCESS_MSGS; do
- grep $i log/$1.log >/dev/null
- if [ $? -eq 1 ]; then
- echo Error in log file no line with $i
- fi
- done
-
- for i in $ERROR_MSGS; do
- grep $i log/$1.log
- done
-}
-
-echo "Starting tests..."
-FILES=`ls *_Test 2>/dev/null`
-
-if [ -z $FILES ]; then
- echo "ERROR: no test programs generated matching pattern *_Test."
- echo "ERROR: Try compiling the test programs first."
- exit 1
-fi
-
-for i in *_Test
-do
- run $i
-done
-
-echo "Tests complete..."
-
-
-# EOF
diff --git a/ASNMP/tests/test_config.h b/ASNMP/tests/test_config.h
deleted file mode 100644
index 1eba5209a6e..00000000000
--- a/ASNMP/tests/test_config.h
+++ /dev/null
@@ -1,197 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-// = FILENAME
-// test_config.h
-//
-// = AUTHOR
-// Prashant Jain <pjain@cs.wustl.edu>, Tim Harrison
-// <harrison@cs.wustl.edu>, and David Levine <levine@cs.wustl.edu>
-//
-// ============================================================================
-
-#ifndef ACE_TEST_CONFIG_H
-#define ACE_TEST_CONFIG_H
-
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-#include <iostream.h>
-#include <fstream.h>
-
-#if !defined (ACE_HAS_TEMPLATE_SPECIALIZATION)
-class KEY
-// ============================================================================
-// = TITLE
-// Define a key for use with the Map_Manager_Test.
-//
-// = DESCRIPTION
-// This class is put into the test_config.h header file to work
-// around AIX C++ compiler "features" related to template
-// instantiation... It is only used by Map_Manager_Test.cpp
-// ============================================================================
-{
-public:
- KEY (size_t v = 0): value_ (v)
- { }
-
- size_t hash (void) const { return this->value_; }
- operator size_t () const { return this->value_; }
-
-private:
- size_t value_;
-};
-#else
-typedef size_t KEY;
-#endif /* ACE_HAS_TEMPLATE_SPECIALIZATION */
-
-#if defined (ACE_WIN32)
-
-#define ACE_DEFAULT_TEST_FILE ACE_TEXT ("C:\\temp\\ace_test_file")
-#define ACE_TEMP_FILE_NAME ACE_TEXT ("C:\\temp\\ace_temp_file")
-#define ACE_LOG_DIRECTORY ACE_TEXT ("C:\\temp\\log\\")
-#define MAKE_PIPE_NAME(X) ACE_TEXT ("\\\\.\\pipe\\"#X)
-
-#else
-
-#define ACE_DEFAULT_TEST_FILE ACE_TEXT ("/tmp/ace_test_file")
-#define ACE_TEMP_FILE_NAME ACE_TEXT ("/tmp/ace_temp_file")
-#define ACE_LOG_DIRECTORY ACE_TEXT ("log/")
-#define MAKE_PIPE_NAME(X) ACE_TEXT (X)
-
-#endif /* ACE_WIN32 */
-
-#define ACE_START_TEST(NAME) \
- const char *program = NAME; \
- ACE_LOG_MSG->open (program, ACE_Log_Msg::OSTREAM); \
- if (ace_file_stream.set_output (program) != 0) \
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "set_output failed"), -1); \
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) starting %s test at %T\n", program));
-
-#define ACE_END_TEST \
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Ending %s test at %T\n", program)); \
- ace_file_stream.close ();
-
-#define ACE_NEW_THREAD \
-do {\
- ACE_LOG_MSG->msg_ostream (ace_file_stream.output_file ()); \
- ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR | ACE_Log_Msg::LOGGER ); \
- ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM); \
-} while (0)
-
-#define ACE_APPEND_LOG(NAME) \
- const char *program = NAME; \
- ACE_LOG_MSG->open (program, ACE_Log_Msg::OSTREAM); \
- if (ace_file_stream.set_output (program, 1) != 0) \
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "set_output failed"), -1); \
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Starting %s test at %T\n", program));
-
-#define ACE_END_LOG \
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Ending %s test at %T\n\n", program)); \
- ace_file_stream.close ();
-
-#define ACE_INIT_LOG(NAME) \
- char temp[BUFSIZ]; \
- ACE_OS::sprintf (temp, "%s%s%s", \
- ACE_LOG_DIRECTORY, \
- ACE::basename (NAME, ACE_DIRECTORY_SEPARATOR_CHAR), \
- ".log"); \
- ACE_DEBUG ((LM_DEBUG, "Deleting old log file %s (if any)\n\n", temp)); \
- ACE_OS::unlink (temp);
-
-
-const int ACE_NS_MAX_ENTRIES = 1000;
-const int ACE_MAX_TIMERS = 4;
-const int ACE_MAX_THREADS = 4;
-const int ACE_MAX_DELAY = 10;
-const int ACE_MAX_INTERVAL = 0;
-const int ACE_MAX_ITERATIONS = 10;
-const int ACE_MAX_PROCESSES = 10;
-
-char ACE_ALPHABET[] = "abcdefghijklmnopqrstuvwxyz";
-
-class ACE_Test_Output
-{
-public:
- ACE_Test_Output (void);
- ~ACE_Test_Output (void);
- int set_output (const char *filename, int append = 0);
- ofstream *output_file (void);
- void close (void);
-
-private:
- ofstream output_file_;
-};
-
-static ACE_Test_Output ace_file_stream;
-
-ACE_Test_Output::ACE_Test_Output (void)
-{
-}
-
-ACE_Test_Output::~ACE_Test_Output (void)
-{
-}
-
-int
-ACE_Test_Output::set_output (const char *filename, int append)
-{
- char temp[BUFSIZ];
- // Ignore the error value since the directory may already exist.
- ACE_OS::mkdir (ACE_LOG_DIRECTORY);
- ACE_OS::sprintf (temp, "%s%s%s",
- ACE_LOG_DIRECTORY,
- ACE::basename (filename, ACE_DIRECTORY_SEPARATOR_CHAR),
- ".log");
-
- int flags = ios::out;
- if (append)
- flags |= ios::app;
-
- this->output_file_.open (temp, flags);
- if (this->output_file_.bad ())
- return -1;
-
- ACE_LOG_MSG->msg_ostream (ace_file_stream.output_file ());
- ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR | ACE_Log_Msg::LOGGER );
- ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
-
- return 0;
-}
-
-ofstream *
-ACE_Test_Output::output_file (void)
-{
- return &this->output_file_;
-}
-
-void
-ACE_Test_Output::close (void)
-{
- this->output_file_.flush ();
- this->output_file_.close ();
-}
-
-void
-randomize (int array[], size_t size)
-{
- size_t i;
-
- for (i = 0; i < size; i++)
- array [i] = i;
-
- ACE_OS::srand (ACE_OS::time (0L));
-
- // Generate an array of random numbers from 0 .. size - 1.
-
- for (i = 0; i < size; i++)
- {
- int index = ACE_OS::rand() % size--;
- int temp = array [index];
- array [index] = array [size];
- array [size] = temp;
- }
-}
-
-#endif /* ACE_TEST_CONFIG_H */
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index b8223e0fa10..00000000000
--- a/AUTHORS
+++ /dev/null
@@ -1,11 +0,0 @@
-Douglas C. Schmidt
-schmidt@uci.edu
-
-Associate Professor &
-Head of the Distributed Object Computing Laboratory
-
-616E Engineering Tower
-Department of Electrical and Computer Engineering
-University of California, Irvine
-Irvine, CA 92697-2625
-
diff --git a/COPYING b/COPYING
deleted file mode 100644
index e221abb7b63..00000000000
--- a/COPYING
+++ /dev/null
@@ -1,90 +0,0 @@
-
- _________________________________________________________________
-
- Copyright and Licensing Information for ACE(TM) and TAO(TM)
-
- [1]ACE(TM) and [2]TAO(TM) are copyrighted by [3]Douglas C. Schmidt and
- his [4]research group at [5]Washington University, Copyright (c)
- 1993-2001, all rights reserved. Since ACE and TAO are [6]open source,
- [7]free software, you are free to use, modify, and distribute the ACE
- and TAO source code and object code produced from the source, as long
- as you include this copyright statement along with code built using
- ACE and TAO.
-
- In particular, you can use ACE and TAO in proprietary software and are
- under no obligation to redistribute any of your source code that is
- built using ACE and TAO. Note, however, that you may not do anything
- to the ACE and TAO code, such as copyrighting it yourself or claiming
- authorship of the ACE and TAO code, that will prevent ACE and TAO from
- being distributed freely using an open source development model.
-
- ACE and TAO are provided as is with no warranties of any kind,
- including the warranties of design, merchantibility and fitness for a
- particular purpose, noninfringement, or arising from a course of
- dealing, usage or trade practice. Moreover, ACE and TAO are provided
- with no support and without any obligation on the part of Washington
- University, its employees, or students to assist in its use,
- correction, modification, or enhancement. However, commercial support
- for ACE and TAO are available from [8]Riverace and [9]OCI,
- respectively. Moreover, both ACE and TAO are Y2K-compliant, as long as
- the underlying OS platform is Y2K-compliant.
-
- Washington University, its employees, and students shall have no
- liability with respect to the infringement of copyrights, trade
- secrets or any patents by ACE and TAO or any part thereof. Moreover,
- in no event will Washington University, its employees, or students be
- liable for any lost revenue or profits or other special, indirect and
- consequential damages.
-
- The [10]ACE and [11]TAO web sites are maintained by the [12]Center for
- Distributed Object Computing of Washington University for the
- development of open source software as part of the [13]open source
- software community. By submitting comments, suggestions, code, code
- snippets, techniques (including that of usage), and algorithms,
- submitters acknowledge that they have the right to do so, that any
- such submissions are given freely and unreservedly, and that they
- waive any claims to copyright or ownership. In addition, submitters
- acknowledge that any such submission might become part of the
- copyright maintained on the overall body of code, which comprises the
- [14]ACE and [15]TAO software. By making a submission, submitter agree
- to these terms. Furthermore, submitters acknowledge that the
- incorporation or modification of such submissions is entirely at the
- discretion of the moderators of the open source ACE and TAO projects
- or their designees.
-
- The names ACE
- (TM), TAO(TM), and Washington University may not be used to endorse or
- promote products or services derived from this source without express
- written permission from Washington University. Further, products or
- services derived from this source may not be called ACE(TM) or
- TAO(TM), nor may the name Washington University appear in their names,
- without express written permission from Washington University.
-
- If you have any suggestions, additions, comments, or questions, please
- let [16]me know.
-
- [17]Douglas C. Schmidt
- _________________________________________________________________
-
- Back to the [18]ACE home page.
-
-References
-
- 1. http://www.cs.wustl.edu/~schmidt/ACE.html
- 2. http://www.cs.wustl.edu/~schmidt/TAO.html
- 3. http://www.cs.wustl.edu/~schmidt/
- 4. http://www.cs.wustl.edu/~schmidt/ACE-members.html
- 5. http://www.wustl.edu/
- 6. http://www.opensource.org/
- 7. http://www.gnu.org/
- 8. http://www.riverace.com/
- 9. file://localhost/home/cs/faculty/schmidt/.www-docs/www.ociweb.com
- 10. http://www.cs.wustl.edu/~schmidt/ACE.html
- 11. http://www.cs.wustl.edu/~schmidt/TAO.html
- 12. http://www.cs.wustl.edu/~schmidt/doc-center.html
- 13. http://www.opensource.org/
- 14. http://www.cs.wustl.edu/~schmidt/ACE-obtain.html
- 15. http://www.cs.wustl.edu/~schmidt/TAO-obtain.html
- 16. mailto:schmidt@cs.wustl.edu
- 17. http://www.cs.wustl.edu/~schmidt/
- 18. file://localhost/home/cs/faculty/schmidt/.www-docs/ACE.html
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644
index f665defb9a8..00000000000
--- a/ChangeLog
+++ /dev/null
@@ -1,5826 +0,0 @@
-Mon Nov 19 11:03:07 2001 Ossama Othman <ossama@uci.edu>
-
- * ACE-INSTALL.html:
-
- Added missing build instructions for the ACE_SSL library, and
- updated the list of "make" flags recognized by ACE's Makefile
- scheme.
-
-Mon Nov 19 00:53:54 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_Tokens.h:
-
- Fixed some bugs introduced by my previous checkin because of
- patch confusion. Replaced all the standard C system calls with
- ACE_OS calls. Made it more wchar friendly.
-
- * ace/Makefile:
-
- Removed the dependency on /pkg/gnu/bin/flex. It was broken. We
- now use $(LEX) and $(YACC) defined in
- $ACE_ROOT/include/makeinclude/wrapper_macros.GNU.
-
- * include/makeinclude/wrapper_macros.GNU:
-
- Changed the definition of YACC to bison (by default). If people
- want to change this, it can be overridden by a variable in the
- Makefile. But things are most likely to break if you use yacc.
-
- * etc/Svc_Conf_l.cpp.diff:
- * etc/Svc_Conf_y.cpp.diff:
-
- Regenerated the diffs.
-
- *Sigh* This patching business is ugly.
-
-Fri Nov 16 07:22:19 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/make_release: Updated the script to copy the beta to a
- different location. Have tested this by creating a dummy
- repository and a dummy export directory. Things worked
- fine. Hopefully the beta should go through without any hassle.
-
- The script is tied to its usage on ace.cs. Needs to be
- changed. Will do that after this beta goes out. Having too many
- changes at the same time may not be good.
-
-Thu Nov 15 20:44:40 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * etc/Svc_Conf_l.cpp.diff: Updated. Thanks to Kitty for reporting it.
- * etc/Svc_Conf_y.cpp.diff: Added. We need it for uses of ACE_LIB_TEXT.
- * ace/Makefile: Added rule to apply patch to Svc_Conf_y.cpp.
-
-Thu Nov 15 08:26:57 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/*.cpp: Changed all remaining uses of ACE_TEXT to ACE_LIB_TEXT
- to be consistent... Thanks to Johnny Willemsen for reporting
- the inconsistencies and for Darrell Brunsch for clarifying what
- the right behavior should be.
-
-Wed Nov 14 07:43:20 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * docs/ACE-guidelines.html: Updated the guidelines to explain
- the use of ACE_TCHAR for the argv parameter to main(). Thanks
- to Johnny Willemsen for reporting this.
-
- * ace/OS_Dirent.inl (opendir): Replace char * const cast with
- ACE_TCHAR * const cast. Thanks to Nick Pratt for reporting
- this.
-
- * tests/Upgradable_RW_Test.cpp (main): Fixed the test to avoid
- dividing by 0 and also initialized all pointers to NULL. Thanks
- to Johnny Willemsen for reporting this. Thanks fixes BudID 650.
-
-Tue Nov 13 15:25:04 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/ACE.h (ACE): Clarified what the time_len parameter is used for.
- Thanks to Tompa <safdsfd@adsffda.com> for reporting this.
-
-Sun Nov 11 09:50:52 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Naming_Context.cpp (info): Added an ACE_UNUSED_ARG to
- silence warning about "length" parameter and changed buf from
- char to ACE_TCHAR. Thanks to Johnny Willemsen for reporting
- this.
-
- * tests/Aio_Platform_Test.cpp: The argv parameter of main() should
- be ACE_TCHAR rather than char. Thanks to Johnny Willemsen for
- reporting this.
-
-Thu Nov 15 15:43:20 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/Naming_Context.cpp (info): Wrapped sprintf() arguments with
- ACE_LIB_TEXT. Fix supplied by Johnny Willemsen.
-
-Thu Nov 15 12:43:31 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * docs/wchar.txt: Added a writeup for ACE_LIB_TEXT and ACE_TEXT
- from "the authority."
-
-Wed Nov 14 21:36:42 2001 Ossama Othman <ossama@uci.edu>
-
- * docs/usage-bugzilla.html:
-
- Corrected link to the DOC Center's bugzilla site.
-
-Wed Nov 14 23:11:59 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/Naming_Context.cpp (info): Fixed Unicode build problems
- by consistently using ACE_TCHAR instead of char, and by
- using Unicode aware string functions in ACE_OS_String
- instead of ACE_OS.
-
- * ace/Svc_Conf_l.cpp: Default intialized ace_yy_c_buf_p to ACE_TCHAR
- instead of char. Default initialized ace_yy_cp, ace_yy_bp to 0.
-
- * ace/Svc_Conf_y.cpp: Wrap string literals passed to ace_yyerror
- with ACE_LIB_TEXT().
-
-Wed Nov 14 06:38:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/ACE-bug-process.html (HREF): Changed references from ace.cs
- to deuce.doc. Thanks to Johnny Willemsen for reporting this.
-
-Tue Nov 13 15:04:15 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * html/Stats/index.shtml:
- * html/Stats/detailed_performance.shtml:
- Improved documentation about the test location, ORB and network
- configuration used. Thanks to David Yongqiang Wang
- <davidyw@avaya.com> for pointing out the problems.
-
-Tue Nov 13 11:46:11 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * tests/Collection_Test.cpp (iterate_const): Fixed ACE_DEBUG print
- statements that were accessing the element of the unbounded set
- as an int rather than an UglyThing. Thanks to Ossama for
- pointing this out.
-
-Mon Nov 12 11:41:35 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.cpp (send, recv):
-
- In the va_arg versions of these methods, do not use
- send/recv_n() to as the underlying send/recv() method. It
- forces unnecessary blocking.
-
- Corrected return value semantics in versions of these methods
- that use loop to send/receive multiple buffers. If data was
- sent or received than do not return -1 on error. Instead return
- the amount of bytes sent/received. This is necessary to allow
- the caller to keep track of sent or received data. [Bug 882]
-
-Sun Nov 11 23:50:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tests/Date_Time_Test.cpp: Remove argv variable from
- main() to eliminate unused variable compiler warning.
- * tests/Arg_Shifter_Test.cpp: Same.
-
-Sun Nov 11 10:00:56 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.h (ACE_SSL_SOCK_Stream):
-
- Removed unused class members.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (sendv):
-
- If an error occurs but data was sent on a previous loop
- iteration then return the amount of bytes sent, not the error.
- This extends previous check for EWOULDBLOCK and ETIME. All
- errors are now caught. The caller must always know if any data
- was successfully sent. [Bug 882]
-
- Do not continue on to the next loop iteration if the amount of
- data sent was less than the amount data given. This avoids a
- subtle problem where "holes" in the data stream would occur if
- partial sends of a given buffer in the iovec array occured.
- [Bug 882]
-
-Sun Nov 11 07:58:07 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.cpp (sendv):
-
- Fixed unused variable warnings.
-
-Sat Nov 10 23:25:50 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added new SSLIOP "Big_Request" test to the list of regression
- tests to automatically run during the nightly builds.
-
-Sat Nov 10 22:13:54 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_Tokens.h:
-
- Regenerated the files after fixing the warnings that showed up
- under Sun CC Forte Update. They were caused because Sun CC's
- preprocessor doesn't like the #line statements generated by flex
- and bison. Since these files are not modified on a daily basis,
- people debugging the lexer can turn it on by removing the flags
- '-l' and '-L' to bison and flex respectively in the Makefile.
- For now, this removes a lot of noise.
-
- * ace/Makefile:
-
- Added flags '-l' to bison and '-L' to flex.
-
- * etc/Svc_Conf_l.cpp.diff:
-
- Regenerated the diff to match the current version.
-
- * etc/Svc_Conf_y.cpp.diff:
-
- This file held the stuff which have been obsoleted by the move
- to use bison. So removed this file to avoid causing confusion in
- the future. Thanks to Ossama for pointing this out.
-
- Let's see some green :-)
-
-
-Sat Nov 10 19:27:36 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
-
- If data is still buffered within OpenSSL's internal buffer, then
- force the Reactor to invoke the event handler (with
- the appropriate mask) before waiting for more events
- (e.g. blocking on select()) by returning a value greater than
- one. All pending data must be processed before waiting for more
- events to come in on the SSL handle.
-
- * ace/SSL/SSL_SOCK_Stream.h (reactor, handler, notify):
-
- These methods are no longer needed. Removed them.
-
- (sendv):
-
- Added missing timeout parameter.
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i (notify, recv_i, send_i, close):
-
- Reverted code that notify()ed the Reactor if data was still
- pending in OpenSSL's internal buffers. The idea was to force
- the reactor to call the appropriate event handler before polling
- for events (e.g. blocking on select()). However, notifications
- are not dispatched until after events are polled which meant
- that there is no point in notify()ing the Reactor.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler):
-
- These methods are no longer needed. Removed them.
-
- (sendv):
-
- Fixed/improved the writev() semantics and emulation in this
- method. Previously, if an iov_base buffer was successfully
- sent, that success was not reported to the caller if subsequent
- sends in the emulation loop failed. The caller would end up
- thinking that no part of the message was sent. The improved
- semantics are now the following if the underlying send() call
- returns with an EWOULDBLOCK or ETIME error condition:
-
- - If no data was sent, then return -1.
- - If some data was sent on a previous loop iteration then
- return the number of bytes successfully sent.
-
- In both cases, errno is unchanged. [Bug 882]
-
- Incidentally, this fixes a problem in TAO's SSLIOP pluggable
- protocol when sending very large requests. Thanks to Andrew
- Finnell <Andrew.Finnell@esecurityinc.com> for providing an
- example that exhibited the problem.
-
- Lastly, the missing timeout support has been added. The timeout
- is decremented on each loop iteration.
-
-Sat Nov 10 17:16:59 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (fopen): Removed redundant parentheses.
-
-Sat Nov 10 09:29:48 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.i (pipe): Replaced the _pipe() call on Win32 with the
- CreatePipe() call. Thanks to Bo Balders <bba@post.utfors.se>
- for reporting this.
-
- * ace/Log_Msg.cpp (log): The "format" string was omitted. Thanks
- to Martin Krumpolec for noticing this.
-
-Sat Nov 10 08:48:24 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Arg_Shifter.{h,cpp}: Added a new constructor to ACE_Arg_Shifter
- so that it can handle both const char ** and char ** arguments.
-
-Fri Nov 9 07:42:41 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Arg_Shifter.cpp: Made the argv parameter to ACE_Arg_Shifter
- a "const" ACE_CHAR **.
-
- * tests/Arg_Shifter_Test.cpp (main): Added "const" to the
- args local variable to remove a warning from SunC++.
-
-Fri Nov 9 11:23:01 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * tests/Collection_Test.cpp: Fixed up things that caused problems
- on several platforms. Added the ARRAY tests back in.
-
-Thu Nov 8 14:52:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.h: Added a new 'M' option to print out the name of
- the log priority. Thanks to Vladimir Chovanec
- <Vladimir.CHOVANEC@asset.sk> for reporting this.
-
-Thu Nov 8 10:41:44 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS_String.h: Enhanced the documentation so that it explains
- the differences between ACE_OS::strsncpy() and ACE_OS::strcpy()
- more precisely. Thanks to Alain Decamps for contributing this.
-
- * ace/Naming_Context.{h,cpp}: The info() method should have ACE_TCHAR **
- rather than char **. Thanks to Johnny Willemsen for reporting
- this.
-
- * ace/OS.cpp: Added support for Borland's idiosyncratic _wfdopen()
- method. Thanks to Johnny Willemsen for reporting this.
-
-Wed Nov 7 05:17:03 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Message_Queue_T.{h,cpp}: Changed the typo DEFUALT_PRIORITY
- to DEFAULT_PRIORITY.
-
- * ace/OS.i: In BCB the _wtempnam() has the following signature:
- wchar_t *_wtempnam(wchar_t *dir, wchar_t *prefix)
-
- This means that the arguments must be made non-const by a cast. The
- fix is to add some defines so that with BCB and no wchar the
- _tempnam is used (with the casts) and with BCB and wchar then
- the _wtempnam is used with the casts. Thanks to Johnny
- Willemsen for this fix.
-
-Thu Nov 8 14:52:39 2001 Steve Huston <shuston@riverace.comy>
-
- * ace/Arg_Shifter.h: Doxygen-ized some comments.
-
- * ace/Date_Time.i (update): Add 1900 to years value to convert from
- localtime's years-since-1900 value to now. Add 1 to the month
- to convert localtime's 0-11 range to 1-12. Thanks to Syed
- Wasim Ali <syed.ali@neustar.com> for reporting this.
-
- * tests/Date_Time_Test.(cpp dsp icc): New test for ACE_Date_Time.
-
- * tests/tests.dsw:
- * tests/tests.icp:
- * tests/Makefile[.bor]: Added Date_Time_Test.
-
- * tests/run_test.lst: Added Arg_Shifter_Test and Date_Time_Test.
-
-Thu Nov 8 11:53:00 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Arg_Shifter_Test.(cpp dsp icc): New test for ACE_Arg_Shifter.
-
- * tests/tests.dsw:
- * tests/tests.icp:
- * tests/Makefile[.bor]: Added Arg_Shifter_Test.
-
-Thu Nov 8 13:05:12 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_irix6.x_sgic++.GNU:
-
- Added an option to suppress warnings about #pragma pack.
-
-Thu Nov 8 10:43:22 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/OS.cpp:
-
- Correct a build problem for GHS on Win32.
-
-Wed Nov 07 13:50:39 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Task_T.h (ACE_Task): Decorated ACE_Task with ACE_Export to
- avoid VC7's internal compiler error. Thanks to Darrell for
- submitting the change.
-
-Wed Nov 7 10:59:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * include/makeinclude/platform_sunos5_g++.GNU: Append -D_REENTRANT
- to CPPFLAGS if threads=1
-
-Wed Nov 7 08:09:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Changed the name CC5 build as
- CC51. It uses version 5.1 of the compiler anyway.
-
-Tue Nov 6 14:39:28 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/SString.i (find),
- * ace/Local_Name_Space_T.cpp (resolve_i): Fixed "off-by-one"
- bugs with ACE_OS::strscpy(). Thanks to Alain Decamps
- <Alain.Decamps@PIDPA.be> for contributing this.
-
-Tue Nov 6 13:25:40 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * tests/Collection_Test.cpp: Committed an old change that uses an
- actual class as the element in the Unbounded_Set rather than an
- int. I wrote this to get a better understanding of how the
- iterator and accessors on the iterator worked.
-
- * tests/SString_Test.cpp (main): Added a test for the rep() method
- that insures that the char array returned is equivalent to the
- string in the ACE_CString from which it's obtained.
-
-Mon Nov 5 10:12:01 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.cpp,
- * ace/Local_Name_Space_T.cpp,
- * ace/FILE_Addr.cpp,
- * ace/Acceptor.cpp,
- * ace/ACE.cpp: Changed uses of strncpy() to ACE_OS::strsncpy().
- Thanks to Alain Decamps for these fixes.
-
-Sun Nov 4 12:11:31 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Reactor.cpp: Enhanced all the Reactor's event loop methods
- to first check and see if the Reactor's been deactivated and to
- bailout immediately in this case. Thanks to Don Hinton for
- suggesting this.
-
- * ace/Reactor.i: Moved the reactor_event_loop_done() method from
- the *.cpp file into the *.i file and made inlineable.
-
- * ace/Select_Reactor_T.cpp: Be more careful about error handling in the
- dispatch_notification_handlers() method. If a failure occurs,
- when dispatch_notifications() is called, return -1, rather than
- erroneously "incrementing" the count of the number of handlers
- dispatched. Thanks to Don Hinton for reporting this.
-
-Sat Nov 3 11:15:43 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * The following fixes are from Joachim Achtzehnter <joachima@netacquire.com>:
-
- In ace/config-pharlap.h we had to explicitly #undef
- ACE_HAS_WCHAR after the #include "ace/config-win32.h"
- directive. Without this change the resulting DLL depended on
- several wide character versions of Win32 system functions, such
- as _CreateMutexW. At least some of these dependencies were
- caused by ace/OS.i.
-
- In ace/Log_Msg.cpp we had to add !defined(ACE_HAS_PHARLAP) to a
- few more places in addition to the ones Bruce Trask had posted
- to avoid reference to the NT Eventlog functionality.
-
- At the top of ace/Log_Msg_NT_Event_Log.h and
- ace/Log_Msg_NT_Event_Log.cpp we added !defined(ACE_HAS_PHARLAP)
- to completely bypass the contents of these two files.
-
- * ace/DEV_Addr.i (addr_to_string):
- * ace/Local_Tokens.i (name):
- * ace/Module.i (name):
- * ace/OS.i (asctime_r):
- * ace/SPIPE_Addr.i (addr_to_string):
- * ace/UNIX_Addr.i (addr_to_string):
- * ace/SString.i (rep): Changed uses of strncpy() to ACE_OS::strsncpy().
- Thanks to Alain Decamps for these fixes.
-
-Fri Nov 2 14:38:49 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Task.h (ACE_Task_Base): Clarify the meaning of the put()
- hook method. Thanks to Tommy Svensson <tommysvensson@yahoo.com>
- for motivating this.
-
-Mon Nov 5 14:23:12 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/ACE.cpp:
-
- Remove a build warning for gcc 2.95.3 on SunOS 5.6.
-
-Mon Nov 5 14:21:30 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- Added the HP-UX nightly build back to the list.
-
-Mon Nov 5 13:31:15 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/ACE.cpp:
-
- Fix a build warning for 64-bit HP-UX.
-
- * ace/Active_Map_Manager_T.i:
-
- Cast the free list id to ACE_UINT32 to match up with the
- slot_index () type. On 64-bit HP-UX, the free list id type
- (size_t) is a 64 bit number and must be cast down to 32 bits.
- Otherwise, the slot_index is cast up to 64 bits and does not give
- the correct results.
-
- * include/makeinclude/platform_hpux_aCC.GNU:
-
- Add a -L./ to allow the 64-bit HP-UX builds to link properly.
-
-Mon Nov 5 11:17:20 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Add support for the new status.txt file in the scoreboard.
-
-Mon Nov 5 13:02:50 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-hpux-11.00.h:
-
- Added #define of ACE_HAS_CHARPTR_DL. This corresponds with the
- declaration of dlopen(char*,unsigned int).
-
- * ace/OS.cpp:
-
- Changed the default thread scope to system (similar to Linux).
- Process thread scope is not supported in HP-UX.
-
-Sun Nov 04 11:18:31 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (fopen): Changed to forward call to fopen instead of
- _fopen on non-borland compilers when not using UNICODE. This
- change allows the code to compile on Win98. Thanks to Jstwo
- <jstwo@writeme.com> for submitting the fix.
-
-Thu Nov 1 16:21:51 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * bin/auto_run_tests.pl: Added snippet of code that puts the
- current directory ('.') in the PATH environment variable since
- auto_run_tests.pl depends on the current directory being there.
-
-Thu Nov 1 15:49:04 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.x_cxx.GNU: Moved the
- CXX_VERSION definition to the global scope.
-
- * include/makeinclude/platform_tru64_cxx.GNU: Added
- -D_PTHREAD_ENV_DECCXX flag to the CPPFLAGS. This is done only
- for v5.1, 1885. The pthreads.h in 1885 is messed up. The
- conditional include of c_asm.h is busted for DECCXX and
- v1885. Hence the change. We need to do this to protect ACE and
- TAO applications on this platform and compiler
- combinations. Thanks to Don Hinton <dhinton@gmx.net> for
- reporting the problem.
-
-Thu Nov 1 14:25:52 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/config-win32-borland.h:
-
- Added fix sent in by Chris Kohlhoff <kohlhoff@pop.ihug.com.au>
- to ACE_CC_PREPROCESSOR_ARGS to enable the recognition of a
- filename to which the preprocessor output is to be directed.
- There is also a corresponding fix in TAO_IDL/driver/drv_preproc.cpp
- that carries out the redirection.
-
-Thu Nov 1 10:27:21 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Select_Reactor_Base.h (open):
- * ace/Select_Reactor_T.h (ACE_Select_Reactor_T, open):
-
- Added a note about the "size" of the Select_Reactor on Unix
- platforms. On Unix platforms, the size parameter should be as
- large as the maximum number of file descriptors allowed for a
- given process. This is necessary since a file descriptor is
- used to directly index the array of event handlers maintained by
- the Reactor's handler repository. Direct indexing is used for
- efficiency reasons.
-
-Thu Nov 1 06:38:30 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/ACE.cpp: Fixed some minor formatting problems so that
- format_hexdump() works properly. Thanks to Kyle Brost
- <Kyle.Brost@quest.com> for reporting this.
-
- * ace/config-win32.h: Include the config-cygwin32.h file when
- __CYGWIN32__ is enabled. Thanks to Johnny Willemsen for
- reporting this.
-
- * ace/Synch.i (remove): Added some casts to make certain compilers
- happy? Thanks to Guillaume Renaud <guillaume.renaud@valtech.fr>
- for reporting this.
-
- * ace/OS.i: Updated the Win32 version of ACE_OS::llseek(). Thanks to
- Doron Rajwan <doron@BANDWIZ.COM> for reporting this.
-
-Wed Oct 31 11:25:40 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.h: The ACE_OS::llseek() method must be static! Thanks to
- Doron Rajwan <doron@BANDWIZ.COM> for reporting this.
-
-Tue Oct 30 08:30:16 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/RB_Tree.cpp (operator=): Make sure to check for self-assignment
- in the operator=. Thanks to Johnny Willemsen for reporting
- this.
-
-Mon Oct 29 05:23:56 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Naming_Context.{h,cpp}: Moved ACE_STATIC_SVC_REQUIRE from the
- .h file to the .cpp file to avoid multiple definitions. Thanks to
- Boris Kaminer <boris.kaminer@orcsoftware.com> for reporting this.
-
-Sun Oct 28 10:05:32 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/config-macosx.h:
- * include/makeincludes/platform_macosx.GNU
- Added new fixes to get this to work on MacOS X. Thanks to John
- Michael Zorko <j.zorko@att.net> and Fikri Pribadi
- <fikri@ugotacall.com> for contributing this.
-
-Wed Oct 24 23:59:13 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Configuration_Import_Export.cpp: Fixed a bug where a
- check of a pointer was made rather than the character pointed to
- by the pointer. Thanks to Juan Jose Comellas
- <uanjo@comellas.org> for reporting this.
-
-Tue Oct 30 22:53:57 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_l.cpp:
-
- Fixed incorrect #line preprocessor directives.
-
- * etc/Svc_Conf_l.cpp.diff:
-
- Regenerated this diff so that it includes recent updates.
-
-Mon Oct 29 20:12:40 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/run_test.lst:
-
- Added the Proactor test to the list of one-button tests to run.
-
-Mon Oct 29 20:04:40 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- More patches from Alexander Libman. The Proactor_Test appears
- to finally work on Linux.
-
-Mon Oct 29 17:49:21 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Added some error checks at places where
- token where acquired.
-
-Mon Oct 29 16:59:58 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (acquire_token): The acquire_token () called
- acquire with a sleep hook. It was wrong. It should just unblock
- the thread by sending notify. A bad cut and paste error
- :(. Thanks to Graeme Clark <gclark@opentext.com> for reporting
- this. This closes [BUGID 1077].
-
-Sun Oct 28 20:36:56 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Map_T.i (clone):
-
- Fixed syntax errors.
-
- * ace/Svc_Handler.cpp (new):
-
- Reverted Michael's change. It incorrectly altered the semantics
- of the new operator, particularly when compiling with native
- exception support enabled. Fixes a warning.
-
-Sun Oct 28 16:44:20 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Timer_Hash_T.cpp (ACE_Timer_Hash_T):
-
- Corrected syntax error that was introduced in the changes
- described below by removing extraneous trailing bracket.
-
-Sun Oct 28 13:15:00 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * ace/ACE.i:
- * ace/Activation_Queue.cpp:
- * ace/Bound_Ptr.i:
- * ace/Configuration.cpp:
- * ace/Configuration_Import_Export.cpp:
- * ace/Containers_T.cpp:
- * ace/Future.cpp:
- * ace/Handle_Gobbler.h:
- * ace/Local_Tokens.i:
- * ace/MEM_SAP.i:
- * ace/Map_T.i:
- * ace/Message_Block.cpp:
- * ace/OS_Errno.cpp:
- * ace/Object_Manager.cpp:
- * ace/Obstack_T.cpp:
- * ace/Refcounted_Auto_Ptr.i:
- * ace/Remote_Tokens.i:
- * ace/Strategies_T.cpp:
- * ace/Stream.cpp:
- * ace/Svc_Handler.cpp:
- * ace/Synch_T.cpp:
- * ace/TLI.cpp:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Queue_T.cpp:
- * ace/Unbounded_Queue.cpp:
- * ace/Unbounded_Set.cpp:
-
- Changed almost all direct usages of operator new in ACE to use
- ACE_NEW_RETURN (Exceptions is Dump_T.h). In one case in
- Stream.cpp the semantics changed slightly if operator new would
- have been overloaded, see the "@@ Michael" comment.
-
- When new got used with placement most of the usages got
- replaced with ACE_NEW_MALLOC_RETURN. In some cases as in
- Malloc_T.cpp, Map_Manager.cpp, PI_Malloc.i, Array_Base.cpp
- special cases exist, where the macros would have incurred
- different semantics and performance penalties.
-
-Fri Oct 26 07:37:43 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Quoter example will not run in
- minimum_corba builds.
-
-Wed Oct 24 08:04:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor.h: Improved the documentation of the
- end_reactor_event_loop ().
-
-Tue Oct 23 10:04:25 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Replaced uses of a static global lock with the
- ACE_Static_Object_Lock singleton.
-
- Fixed incorrect uses of the "%l" format specifier. "%d" is the
- expected format specifier.
-
- (Acceptor):
-
- Initialize the "sessions_" member in the base member initializer
- list. Corrects a problem where the session number initially
- contained a "garbage" value.
-
-Mon Oct 22 17:55:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/Svc_Conf_l.cpp: Remove include of stdlib.h, fix g++/Solaris
- build.
-
-Mon Oct 22 15:54:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x-hpc++.h: Remove hard-coded setting of
- ACE_HAS_EXCEPTIONS. It is controlled by platform_hpux_aCC.GNU.
-
-Mon Oct 22 15:50:35 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Chris Hughes name to the Hall of Fame
-
-Sun Oct 21 16:44:41 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp (disable_signal):
-
- Fixed warnings regarding a method that "hid" virtual function
- with the same name, in addition to unused argument warnings.
-
-Sun Oct 21 15:22:57 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Fixed warning about deprecated conversion of "const char *" to
- "char *" exhibited by GCC 3.0.x builds.
-
-Sun Oct 21 12:50:39 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/LSOCK.cpp: The ACE_LSOCK::recv_handle() was returning success
- without setting the I/O handle. Thanks to Rick Ohnemus
- <rick.ohnemus@systemware.com> for reporting this.
-
- * ace/config-freebsd-pthread.h: Changed
- #if (__FreeBSD_version > 430000) to
- #if (__FreeBSD_version > 440000) to get ACE to work with FreeBSD 4.4.
- Thanks to Gu Song <gusong_m@yahoo.com> for reporting this.
-
-Fri Oct 19 06:44:17 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/Reactor/WFMO_Reactor/test_window_messages.cpp:
- Don't use a global Event_Handler object since this violates the
- design rules for the ACE_Reactor.
-
-Sun Oct 21 13:39:27 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the Quoter example in
- $TAO_ROOT/examples to the list of tests in the daily builds.
-
-Thu Oct 18 20:56:53 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Added no-op main() function for platforms that do not support
- asynchronous IO.
-
-Thu Oct 18 22:46:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp: Fixed warnings in Sun CC and TRU 64 builds.
-
-Thu Oct 18 20:42:55 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Fixed Unicode build errors.
-
-Thu Oct 18 19:52:44 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/SString.h: clarify example in comments to ACE_Tokenize
- so that constant strings are not passed in its constructor.
-
- * examples/OS/Process/process.cpp: do not pass constant strings
- to ACE_Tokenize constructor. Thanks to
- Werner Buchert <w.buchert@medat.de> and
- Don Hinton <dhinton@swan.fr>.
-
-Wed Oct 17 23:56:45 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
- * tests/Proactor_Test.dsp:
-
- Proactor test contributed by Alexander Libman
- <alibman@baltimore.com>.
-
- * tests/tests.dsw:
-
- Added Proactor_Test project to the tests workspace.
-
-Wed Oct 17 18:59:53 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/install.bor:
- Borland makefile fix to ensure that, when doing the install
- target, core executables are built correctly if they don't
- already exist.
-
-Wed Oct 17 09:15:10 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-linux-common.h: Clarified that this file should
- not be included directly! Thanks to Suresh N
- <suresh.n@vergiltech.com> for reporting this.
-
-Wed Oct 17 16:00:19 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Graeme Clark to the Hall of Fame.
-
-Wed Oct 17 15:49:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp:
- * ace/TP_Reactor.h: Added remove_handler () calls to the
- TP_Reactor. Before this, the call on the reactor used to be
- handled by the Select_Reactor's implementation. The
- implementation has a problem. It tries to call handle_close ()
- (an upcall) as one of the calls after holding the token. This
- was asking for trouble. This could lead to deadlocks as
- mentioned in [BUG ID 1055].
-
- The method in the TP_Reactor now calls remove_handler () on the
- Select_Reactor (its base class) with a DONT_CALL flag. Then it
- calls handle_close () on the Event_Handler if the user did not
- pass in the DONT_CALL mask. This two step process would get
- around the problem that was mentioned before. Thanks to Graeme
- Clark <gclark@opentext.com> for reporting the problem and
- testing this fix.
-
- This should close [BUG ID 1055].
-
-Wed Oct 17 10:40:17 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
-
- If errno is set to EWOULDBLOCK for the SSL_ERROR_SYSCALL case,
- then continue the connection establishment loop. Do not return
- right away. Fixes non-blocking connection establishment on AIX.
- Thanks to Vladimir Chovanec <Vladimir.CHOVANEC@asset.sk> for
- providing this fix.
-
- * ace/SSL/SSL_SOCK_Stream.h (notify):
-
- Made this method protected. It isn't intended to be used
- internally by the ACE_SSL_SOCK_Stream class.
-
-Wed Oct 17 12:15:15 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * ace/Select_Reactor_T.cpp (handle_error, check_handles): Add
- vxworks to the ever-growing list of OSs which return
- unpredictable values in errno when there's a bad file descriptor
- in a select mask. [Bug 1058].
-
- Thanks to Dave Arndt <darndt@oresis.com>, Tad Hetke
- <thetke@oresis.com>, and Erik Johannes <ejohannes@oresis.com>
- for tracking down and providing this fix.
-
-Tue Oct 16 23:08:27 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.h (ACE_Svc_Conf_Param):
-
- Added a new ACE_Obstack attribute that is passed down to the
- parser and scanner. This obviates the need for the global
- pointer to the ACE_Obstack that was formally used, which in turn
- avoids a race condition.
-
- (ace_obstack):
-
- No longer a need to maintain a global pointer to the ACE_Obstack
- instance used during parsing/scanning.
-
- * ace/Svc_Conf.y:
- * ace/Svc_Conf.l:
-
- Retrieve the Obstack from the parameter passed down to yyparse()
- and yylex() instead of using the (now non-existent) global
- instance. This is part of a race condition fix.
-
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_l.cpp:
-
- Updated to pull in the changes made to the source files from
- which these files were generated.
-
- * ace/Service_Config.cpp (process_directives_i):
-
- The global ACE_Obstack pointer used during each Service
- Configurator parse has been removed. An ACE_Obstack instance is
- now passed down to the parser and scanner in a
- reentrant/thread-safe manner via the new ACE_Svc_Conf_Param
- parameter. As such, there is no longer any need to maintain a
- global pointer to the ACE_Obstack instance in use, nor is it
- necessary to store/restore the previous value when performing
- nested or parallel Service Configurator directive processing.
- This fixes a race condition that was causing some memory
- corruption when parsing Service Configurator directives in
- parallel.
-
- Note that the ACE_Obstack is now instantiated on the stack
- rather than the heap, thus improving Service Configurator
- directive processing performance.
-
-Mon Oct 15 23:16:55 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Service_Config.h (process_directives_i):
-
- Updated the signature of this method to accept a parameter that
- will eventually passed to the parser and the scanner.
-
- * ace/Service_Config.cpp:
-
- No need to include "ace/Svc_Conf_Lexer_Guard.h" and
- "ace/Object_Manager.h".
-
- (process_directives_i):
-
- Updated the signature of this method to accept a parameter that
- will eventually passed to the parser and the scanner.
-
- Pass the "ACE_Svc_Conf_Param" parameter to the yyparse() call.
- This is reentrant/thread-safe.
-
- Check the error count found in the "ACE_Svc_Conf_Param" object.
- It's count is incremented in a thread-safe/reentrant manner.
-
- (process_directive, process_directives):
-
- The ACE_Svc_Conf_Lexer_Guard and its accompanying
- synchronization has been moved to the generated scanner code.
- This makes locking finer grained. Specifically, instead of
- holding a lock for the duration of the scope within which
- service configurator directive parsing and scanning is
- performed (e.g. for the duration of the yyparse() call), the
- lock is only held for the duration of the scope where service
- configurator directive scanning occurs (i.e. the entire yylex()
- call is synchronized). This is part of the core fix that
- corrects a deadlock that occurred when activating an ACE_Task,
- in conjunction with the singleton instance of the
- ACE_Thread_Manager, during Service Object initialization.
- [Bug 1036]
-
- * ace/Service_Config.i:
-
- Cosmetic update.
-
- * ace/Svc_Conf.h:
-
- Added declaration and method definitions for the
- ACE_Svc_Conf_Param class. Instances of this class contain the
- state used when parsing/scanning a given service configurator
- file or service configurator directive.
-
- (ACE_SERVICE_DIRECTIVE_STACK_DEPTH):
-
- There is no longer any hard-coded limit on the maximum depth
- nested service configurator directives may be processed. Only
- process resource limits limit the maximum nesting depth.
-
- (ace_yyparse, ace_yylex):
-
- Updated the parser and lexer entry points to accept an
- additional parameter, i.e. a pointer to an ACE_Svc_Conf_Param
- object.
-
- (ace_yy_push_buffer, ace_yy_pop_buffer):
-
- Pass a pointer to the buffer that will be "switched" in our out
- when processing nested service configurator directives those
- that are processed in parallel.
-
- * ace/Svc_Conf.l:
-
- Removed array that implemented the service configurator
- directive stack. The "stack" is now implemented using the
- function call stack itself. Hence there is no hard-coded limit
- to the stack size.
-
- Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE,
- COLON, STAR}. Just return their corresponding symbolic integer
- constants (e.g. ACE_COLON --> ':').
-
- Increment error and line count in the ACE_Svc_Conf_Param object
- passed to the yylex() function from yyparse(). This improves
- reentrance/thread-safety when tracking error counts.
-
- (yy_push_buffer, yy_pop_buffer):
-
- Pass a pointer to the buffer that will be "switched" in our out
- when processing nested service configurator directives those
- that are processed in parallel.
-
- * ace/Svc_Conf.y:
-
- Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE,
- COLON, STAR}. Just use their corresponding symbolic integer
- constants (e.g. ACE_COLON --> ':').
-
- Increment error and line count in the ACE_Svc_Conf_Param object
- passed to the yylex() function from yyparse(). This improves
- reentrance/thread-safety when tracking error counts.
-
- * ace/Svc_Conf_Lexer_Guard.h:
-
- Store a pointer the lexer buffer currently being scanned.
-
- * ace/Svc_Conf_Lexer_Guard.cpp:
-
- Updated constructor to accept a pointer to an ACE_Svc_Conf_Param
- object. If the buffer in that object is zero, it will be
- initialized.
-
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_Tokens.h:
-
- Regenerated these files in order to pull in the updates made to
- their corresponding source files (i.e. Svc_Conf.{l,y}).
-
-Mon Oct 15 11:26:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv2: New directory for examples in "C++ Network
- Programming, Volume 2: Systematic Reuse with ACE and Frameworks"
- Moved these changes to the new directory, and reverted the
- C++NPv1 files to their ACE 5.2 state:
- Sun Oct 14 17:05:14 2001 Douglas C. Schmidt
- Tue Oct 9 07:46:20 2001 Douglas C. Schmidt
-
-Sun Oct 14 17:05:14 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/C++NPv1/Logging_Handler.{h,cpp}: Changed log_file_ from
- a reference to a pointer so that it can be initialized
- correctly. Thanks to Kitty for reporting this.
-
-Fri Oct 12 14:54:58 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/OS.i:
- Remove extraneous check for macro ACE_HAS_WINSOCK2_GQOS,
- which was breaking various builds under Windows.
- Thanks to Jeff McNiel <JMcNiel@datacrit.com> for pointing it out.
-
-Fri Oct 12 12:15:22 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- The QNX machine is no longer running that OS, plus attempts to
- bring it back to life failed. The build is removed until
- further notice.
-
-Thu Oct 11 17:52:32 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp:
- Somehow the file didnt get committed yesterday. So, committing
- the following change now.
-
- Wed Oct 10 16:56:18 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
-Thu Oct 11 10:57:58 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RB_Tree.h:
- * ace/RB_Tree.i:
- * ace/RB_Tree.cpp:
- Reverted to the 5.2 release state. The proposed changes were
- breaking some builds, and they were not bug fixes in any case.
-
-Wed Oct 10 16:56:18 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp:
- Reverted the following change as it ended up with some problems
- for multicast services.
-
- Fri Oct 5 14:40:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
-
-Wed Oct 10 06:16:52 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Activation_Queue.{h,cpp}: Added support for two ACE_Allocator that
- will control how the message blocks and data blocks are
- allocated. Thanks to Gil Rapaport <grapaport@comgates.co.il>
- for contributing this.
-
- * examples/Reactor/WFMO_Reactor/test_apc.cpp (main):
- * examples/Reactor/WFMO_Reactor/test_abandoned.cpp (main): Don't
- use a global Event_Handler since this violates the design rules
- for the ACE_Reactor. Thanks to Heping He
- <heping.he@riskmetrics.com> and Hartmut Quast
- <HartmutQuast@t-online.de> for reporting this and to Irfan for
- suggesting where the problem arose.
-
-Tue Oct 9 07:46:20 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/C++NPv1/Logging_Handler.h: Added a new constructor to
- class Logging_Handler that just takes an ACE_SOCK_Stream. We
- need to use this in C++NPv2.
-
- * ace/Message_Queue_T.cpp (wait_not_full_cond): Thanks to Leo Kov
- <leo_kov@hotmail.com> for reporting this.
-
- * ace/TTY_IO.cpp (control): Inserted some useful
- ACE_OS::set_errno_to_last_error() calls. Also, for Win32 made
- readtimeoutmsec == 0 cause no timeout, whereas readtimeoutmsec
- == MAXDWORD causes infinite timeout. Thanks to Lars Steubesand
- <Lars_Steubesand@hsgmed.com> for reporting this.
-
-Mon Oct 8 20:19:44 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/DLL/test_dll.cpp: There's no need to specify
- ACE_DLL_SUFFIX as it prevent ACE_Lib_Find to figure out the
- correct DLL name.
-
- The ACE_ERROR_RETURN macro store and reset the errno so there's
- no need to use dll.error() with it. Changed to use "%p" to
- display the error.
-
- Thanks to Heping He <heping.he@riskmetrics.com> for reporting
- the problem.
-
-Mon Oct 8 11:15:21 2001 Angelo Corsaro <corsaro@doc.ece.uci.edu>
-
- * ace/RB_Tree.h (class ACE_RB_Tree_Node):
- * ace/RB_Tree.i:
-
- Changed access privilege on the operator new/delete to be
- public, and added assertion in those method implementation to
- make sure that wrong use of these method are promptly notified.
- This changes should fix the problem that some compiling were
- still having with RB_Trees.
-
-Sat Oct 06 23:06:41 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i, close):
-
- Removed the do/while(SSL_pending()) loop. Its introduction into
- the code was a bit misguided. There is no need to flush the SSL
- buffer before returning to the Reactor's event loop since the
- code now sends a notification to the Reactor to force the
- Reactor to invoke the event handler before waiting in the event
- loop. This fixes some SSL protocol errors that manifested
- during multithreaded SSL communication. [Bug 943]
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- It is no longer necessary to call SSL_accept()/connect() to
- flush the SSL buffer before running the Reactor's event loop
- since the Reactor is notified that it should call the
- appropriate event handler before blocking on select() for
- WaitForMultipleObjects(), for example.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler):
-
- New methods to set the Reactor and event handler associated with
- the ACE_SSL_SOCK_Stream. If each of these is set, then the
- Reactor will be notified if data is still pending in the SSL
- buffer.
-
- (~ACE_SSL_SOCK_Stream):
-
- Uninlined the destructor. There is no need for it to be
- inlined, and doing so only caused unnecessary code bloat.
-
- * ace/SSL/SSL_SOCK_Stream.h (notify, reactor, handler):
-
- Added these new method declarations, in addition to the
- corresponding attributes.
-
- Updated documentation.
-
- * ace/SSL/SSL_SOCK_Stream.i (notify):
-
- Method that pushes the event handler on to the Reactor's
- notification pipe when necessary. Invoked by recv_i() and
- send_i().
-
- * ace/SSL/SSL_SOCK_Acceptor.h:
- * ace/SSL/SSL_SOCK_Connector.h:
- * ace/SSL/SSL_Accept_Handler.h:
- * ace/SSL/SSL_Connect_Handler.h:
-
- Updated documentation.
-
-Sat Oct 6 16:04:29 2001 Angelo Corsaro <corsaro@doc.ece.uci.edu>
-
- * ace/RB_Tree.h:
- * ace/RB_Tree.i:
-
- The operator new and delete were declared to be No-Op but were
- not implemented as such. This was breaking some builds. Now the
- operator are declared as private and they also have a no-op
- implementation. This should solve some linking error that were
- occurring.
-
-Sat Oct 6 11:17:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Adrian Mercieca to the hallf of fame.
-
-Fri Oct 05 18:30:59 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/RW_Process_Mutex.cpp: Added inclusion ACE.h and fixed member
- initialization.
-
-Fri Oct 5 18:16:53 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SString.h:
- * ace/SString.cpp: Changes the usage of ostream to
- ACE_OSTREAM_TYPE. Thanks to Russ Noseworthy for letting us
- know.
-
-Thu Oct 4 07:10:01 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/RB_Tree.*: Added support for using the "ACE_Allocator" parameters
- to manage memory. Thanks to Airat A. Sadreev <airatsa@nm.ru>
- for reporting contributing this.
-
-Wed Oct 3 07:20:06 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/RW_Process_Mutex.{h,cpp}: Added the ability to create a
- unique name if the user doesn't supply one. Thanks to Tom
- Wagner <TomW@CoManage.net> for suggesting this.
-
- * ace/Synch.h: Clarified that the timed wait capabilities of
- ACE_Semaphore only work on Solaris if ACE_HAS_PTHREAD is enabled
- *and* ACE_HAS_POSIX_SEM/ACE_HAS_STHREAD are disabled. Thanks to
- Bonifides Bautista <earlboy@my-deja.com> for reporting this.
-
-Fri Oct 5 12:48:48 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (close):
-
- Reset the SSL object to allow another connection to be made
- using the existing ACE_SSL_SOCK_Stream instance. This prevents
- the previous SSL session state from being associated with the
- new SSL session/connection. Thanks to Vladimir Chovanec
- <Vladimir.CHOVANEC@asset.sk> for pointing out this problem and
- suggesting a course of action.
-
-Fri Oct 5 14:40:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp (open): Removed the #if defined (linux)
- from the code. Looks like this had to be removed to get it
- working for RTI under Linux. The other ChangeLog entries that
- this change is concerned with are "Sat Feb 17 17:23:46 2001
- Darrell Brunsch <brunsch@uci.edu>" and "Fri Jan 26 11:18:15 2001
- Douglas C. Schmidt". Looks like the patch provided by Keith
- Nicewarner <knicewar@erg.sri.com> is being reverted. I remember
- a communication from Keith which seemed to hint that this may
- not be required.
-
- Thanks to Russ Noseworthy for suggesting this.
-
-Fri Oct 5 14:04:39 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Hagen Ulrich to the Hall of Fame.
-
-Fri Oct 5 13:55:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Makefile: Removed the SUPPRESS_DASH_G option. Not really
- sure where it is used. Further, added a tab to the place where
- rules for CHORUS are set. This should fix BUGID 1049. Thanks to
- Hagen Ulrich <ulrich.hagen@siemens.com> and Dr.David Levine for
- reporting and verifying the fix.
-
-Fri Oct 05 05:56:50 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.2 released.
-
-Thu Oct 4 17:38:21 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Synch.h: Added some comments to explain the rationale for
- the different return values from the blocking and timed
- versions of ACE_Null_Semaphore::acquire(). Thanks to Doug
- Schmidt for explaining this.
-
-Thu Oct 4 17:27:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Handler.cpp (recv_log_record): Insure that
- the payload message block is properly aligned for any CDR
- extraction. Many thanks to Bala for noticing this problem and
- sending code for the fix.
-
-Thu Oct 4 17:08:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp:
- In prepare(), call ACE_Process_Options::command_line() rather
- than ACE_Process_Options::process_name() to set the program
- path for the child process.
-
-Thu Oct 4 13:18:37 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Handler.cpp: Use a ACE_Message_Block,
- rather than hijacking a CDR block, to read the payload into.
-
-Thu Oct 4 10:14:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Donald Acton to the Hall of Fame.
-
-Thu Oct 4 06:39:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: Added ACE_LACKS_MKSTEMP as SunOS 5.5 does
- not support mkstemp ().
-
- * ace/config-sunos5.6.h: Undefined ACE_LACKS_MKSTEMP as Sun 5.6
- and above support it.
-
- Thanks to Don Hinton <dhinton@swan.fr> for reporting this
- problem and Chad Elliott for testing this out on a Sun OS 5.5
- box.
-
-Wed Oct 3 16:37:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (read_1): Reverted this change "Wed Oct 3
- 15:05:43 2001 Jeff Parsons <parsons@cs.wustl.edu>". This
- change is alone not enough to fix the problem that Brad
- reported. The sample program for the text needs to be fixed to
- get it working right.
-
-Wed Oct 3 15:05:43 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (read_1);
-
- Reverted changed made in
-
- Fri Aug 17 16:56:16 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- to read_1(). A similar change made in several other methods is
- ok, but in this case bytes can be copied into the input CDR
- stream without changing wr_ptr, so the check will fail
- unnecessarily. Thanks to Brad Hoskins <BHoskins@slo.newport.com>
- for pointing this out.
-
-Wed Oct 2 12:18:37 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Server.cpp: Fixed spelling error.
- * examples/C++NPv1/Logging_Handler.cpp: Comment length adjustment.
-
-Tue Oct 2 21:52:31 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Client.cpp: Reverted this:
- Mon Oct 1 18:27:41 2001 Steve Huston <shuston@riverace.com>
-
-Tue Oct 2 19:52:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Makefile: Removed some of the files that no longer exist in the
- repository. The inclusion of these files in the Makefile added
- noise during the beta cutting process.
-
-Tue Oct 02 15:34:49 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * etc/tao_cosevent.doxygen:
- * etc/tao_cosnotification.doxygen:
- Fixed typos in the tag file names.
-
-Tue Oct 2 15:52:27 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Sunny Leung to the Hall of Fame.
-
-Tue Oct 2 15:33:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Removed one instance of Peter Phillips
- <pphillip@opentext.com> from the Hall of Fame.
-
-Tue Oct 2 15:00:37 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (clone_from): Copied the GIOP major and minor
- versions from the incoming CDR stream. Thanks to Sunny Leung
- <sleung@opentext.com> for reporting this. This closes bugzilla
- #1043.
-
-Tue Oct 2 09:45:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/libDLL_Test.icc:
- * tests/libService_Config_DLL.icc: Add link(exportAll) to the link
- options to export the entrypoints needed for the tests.
-
-Mon Oct 1 20:04:14 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * THANKS:
- Added Tushar Nair to the THANKS file.
-
-Mon Oct 1 18:06:48 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Object_Manager.cpp (ACE_UnhandledExceptionFilter):
- Removed the un-needed #if 0's. Left them before as a safety
- measure (in case something doesnt work) and forgot to remove
- them later.
-
- * ace/Log_Msg.cpp (instance):
- Fixed the seg faults that are raised when ace is compiled with
- ACE_NTRACE=0 on SunOS. Added a check before locking and
- releasing a lock.
-
- Thanks to Tushar Nair <ntushar@yahoo.com> for reporting the
- problem and for providing a fix.
-
-Mon Oct 1 18:27:41 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Client.cpp: Remove the third (optional)
- arg from getline(). Using a char literal without further
- qualification causes confusion in Unicode builds.
-
-Mon Oct 1 14:44:13 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.cpp (ssl_library_init):
-
- Initialize the locking callbacks in the crypto library before
- initializing the OpenSSL library. OpenSSL may require the
- locking callbacks to be initialized before its own
- initialization.
-
- * ace/SSL/SSL_Context.cpp (ssl_library_fini):
-
- Perform crypto library resource cleanup before reclaiming the
- locks used by the locking callbacks. Crypto library resource
- cleanup makes use of the locking callbacks.
-
-Mon Oct 1 15:19:11 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/C++NPv1/README: Added a section that illustrates the
- mapping of chapters onto files in the directory.
-
-Mon Oct 1 12:58:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (handle_socket_events): A fix for the problem
- that started showing up this time is like this. One of the
- threads was dispatching an upcall. In the intermediate time the
- Reactor woke up another thread to close the handler, remember
- that this is possible with the TP_Reactor if the application
- resumes the handles (the way TAO does that). Now when the thread
- that that dispatched the upcall returned it tries to invoke a
- method on the already closed handle. To prevent that from
- happening we make an extra check to see whether the handle
- associated with the handler is still available in the internal
- map of the Reactor. As this check is done in the return path of
- the thread this should have less performance impact. This is
- another reason why we should have #1031 in place ASAP.
-
-Mon Oct 1 12:23:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB): Changed the name of the
- Sun's EGCS build. We have not been using EGCS but 2.95.x for a
- long time now.
-
-Mon Oct 1 10:46:15 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/PerlACE/Run_Test.pm (check_n_cleanup_files): Removed the
- word "ERROR" when files are left behind. This was creating noise
- in the daily builds. We have captured the problem in the
- bugzilla with id #1014. After 1.2 goes out, if someone is
- looking at this problem again we need to add this back so that
- our daily builds can pick them up.
-
-Sun Sep 30 17:25:33 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i):
-
- Reset errno to prevent previous values (e.g. EWOULDBLOCK) from
- being associated with a fatal SSL error (e.g. an alert).
-
-Sun Sep 30 16:52:22 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_Stream.cpp (do_SSL_shutdown):
-
- Return the "retval" variable instead of always returning -1.
- The actual return value may not always be -1. Thanks to Alain
- Totouom <atotouom@gmx.de> for providing this fix.
-
- * THANKS:
-
- Added Alain to the list of contributors.
-
-Sun Sep 30 09:13:04 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
-
- Made reactor mask constant to emphasize the fact that it is
- indeed a constant.
-
-Sat Sep 29 08:07:07 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Configuration.{h,cpp}: Changed "allocator" to "alloc" to
- avoid bugs with MSVC++ 5.0. Thanks to Munagala Ramanath
- <amberarrow@yahoo.com> for reporting this.
-
- * ACE-INSTALL.html: Yet more improvements courtesy of Chris
- Kohloff.
-
-Fri Sep 28 23:38:07 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
-
- Cleaned up the code.
-
- Do not attempt to verify the X.509 certificate. Only the
- application knows how best to do that.
-
- * ace/SSL/SSL_Context.cpp (ssl_library_init):
-
- Fixed some Unicode problems. Wrap strings within an ACE_TEXT
- macro.
-
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i:
-
- Corrected some comments.
-
- * ace/SSL/SSL_SOCK_Stream.h (send_n, recv_n):
-
- Added a "bytes transferred" pointer parameter. This allows the
- amount of bytes transferred to returned via this parameter, thus
- matching the semantics of their ACE_SOCK_Stream counterparts.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (send):
-
- Do not block attempt a timed send() if data is available in
- OpenSSL's internal buffer. This prevents a condition where
- needlessly blocking on select() would occur. A similar fix for
- recv() was made earlier. See Fri Aug 24 16:54:02 2001 Ossama
- Othman <ossama@uci.edu> for details.
-
- (send_n, recv_n):
-
- If the "bytes transferred" pointer parameter is non-zero then
- return the amounts of bytes transferred through it. This makes
- these methods better match the semantics of their
- ACE_SOCK_Stream counterparts.
-
-Fri Sep 28 19:24:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.00.h: Moved the definitions for ACE_HAS_WCHAR
- and ACE_HAS_XPG4_MULTIBYTE_CHAR from the compiler-independent
- section to the aC++ section. (at least) gcc 3.0 distributed from
- HP can't handle compiling wide char stuff... it refers to
- wctype.h, only available in aC++.
-
-Fri Sep 28 12:46:25 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.cpp (report_error):
-
- Don't bother displaying an error message if the error code is
- zero (i.e. no error).
-
-Fri Sep 28 12:31:39 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- Transfer ownership of the Reactor to the previous owner for the
- SSL_ERROR_ZERO_RETURN case. Thanks to Vladimir Chovanec
- <Vladimir.CHOVANEC@asset.sk> for pointing out this problem.
-
- Remove the SSL event handler from the reactor for the
- SSL_ERROR_ZERO_RETURN case. Previously, this method returned
- without removing it, resulting in a seg fault.
-
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
-
- Ported the updates made to the ssl_accept() counterpart to this
- method.
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i (send_i):
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
-
- In the event a SSL_ERROR_SYSCALL error condition occurs, call
- ACE_OS::set_errno_to_last_error() to make sure errno is updated
- appropriately since OpenSSL does not do that. Fixes some
- "misbehaving" Reactor interactions. Thanks to Andrew Finnell
- <Andrew.Finnell@esecurityinc.com> for tracking down the problem
- and suggesting these fixes.
-
-Fri Sep 28 09:37:28 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.h (report_error):
- * ace/SSL/SSL_Context.cpp (report_error):
-
- New SSL error reporting functions that use the ACE_Log_Msg
- facilities to dump error information.
-
- * ace/SSL/SSL_Context.cpp (set_mode):
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i):
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
-
- Use the new report_error() static method to display error
- information instead of OpenSSL's ERR_print_error_fp().
-
- * ace/SSL/SSL_SOCK_Connector.cpp:
-
- Include 'ace/Log_Msg.h' to pull ACE_ERROR macro definitions.
- Fixes compile-time problems on Tru64. Thanks to Martin
- Krumpolec for providing this fix. [Bug 1034]
-
- (ACE_SSL_SOCK_Connector):
-
- Wrap format specifier string in ACE_ERROR call with ACE_TEXT.
- Fixes mismatched Unicode/non-unicode strings.
-
-Fri Sep 28 06:17:27 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/SPIPE_Acceptor.{h,cpp}: Fixed the use of "char" for
- "already_connected_" to be "int". Thanks to Johnny Willemsen
- for reporting this.
-
- * ACE-INSTALL.html: Improved the installation instructions for BCB 4/5.
- Thanks to Chris Kohloff for contributing this and to
- Jan Kalin <jan.kalin@zag.si> for motivating this.
-
- * ace/TTY_IO.cpp: Fixed numerous bugs in the control() method.
- Thanks to Airat A. Sadreev <airatsa@nm.ru> for reporting this.
-
- * ace/TTY_IO.h: Add a new field for Win32. Thanks to
- Airat A. Sadreev <airatsa@nm.ru> for reporting this.
-
-Thu Sep 27 06:12:21 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/config-win32.h: Added a special-case for Borland C++ Builder,
- which must include vcl.h before windows.h. Thanks to Chris
- Kohloff for reporting this. This fixes Bug ID 899 for the time
- being.
-
- * ace/Module.cpp (ACE_Module): The line
-
- this->name ("<unknown>");
-
- was be replaced with
-
- this->name (ACE_TEXT("<unknown>"));
-
- Thanks to Airat A. Sadreev <sadreevaa@hq.tatenergo.ru> for
- reporting this. This fixes bug id 1041.
-
-Thu Sep 27 13:09:19 2001 Bala <bala@cs.wustl.edu>
-
- * ACE version 5.1.21 released.
-
-Tue Sep 25 16:12:14 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- Use ACE_OS::set_errno_to_last_error() set errno instead of doing
- so manually to get around broken compilers that reset the last
- error when assigning to errno. Thanks to Chris Kohloff for
- pointing out the problem and suggesting this fix.
-
-Tue Sep 25 13:00:37 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Obstack.h: Fixed a typo when declaring ACE_Obstack
- exportable. I mistakenly used the underlying
- ACE_EXPORT_SINGLETON_DECLARATION macro directly.
- ACE_SINGLETON_DECLARATION is the right macro to use here.
- Thanks to Martin Krumpolec <krumpolec@asset.sk> for reporting
- the bug.
-
-Tue Sep 25 09:12:28 2001 Andrew Finnell <Andrew.Finnell@esecurityinc.com>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- On MS Windows, OpenSSL does not store the last error in errno so
- explicitly do so. This corrects problems where a server is
- unaware that a client has forcefully disconnected.
-
-Tue Sep 25 00:01:59 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Service_Repository.cpp (instance): There are three stages of
- the Object Manager: (a) starting up; (b) running; (c) shutdown.
- ACE_Service_Repository::instance() was not creating a new
- instance in (a) and (c). It was changed to allow creation (a).
-
-Mon Sep 24 01:55:29 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added TAO's PICurrent test to the list of automated regression
- tests.
-
-Sun Sep 23 19:28:06 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Reactor.h (ACE_Reactor): Fixed comments for
- <end_reactor_event_loop> and <reactor_event_loop_done>. Both
- methods work on an instance of reactor, not the global singleton
- reactor. Thanks to Doug for noticing this.
-
-Sun Sep 23 10:02:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/High_Res_Timer.h: Removed a question mark "?", in a line
- which read "or sometimes 3.579 Mhz??". This seems to remove the
- warning in VXWORKS builds. I have no clue about the problem that
- VXWORKS compiler sees. It took only more than an hour to figure
- this out. :(.
-
-Sat Sep 22 08:59:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Service_Manager.cpp (handle_input): Added some logic to
- strip off newlines and carriage returns for Windows platforms.
- Thanks to Kyle Brost <Kyle.Brost@quest.com> for contributing
- this.
-
-Sat Sep 22 12:28:21 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/ACE_SSL_LIB.dsp:
-
- Corrected code generation settings to use the multi-threaded DLL
- version of the run-time library. Corrects "legacy" build
- problems.
-
-Sat Sep 22 08:59:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/High_Res_Timer.{h,i,cpp}: Added comments to explain how
- to configure the timers properly on various platforms. Thanks
- to Alain Decamps <Alain.Decamps@PIDPA.be> for reporting this.
-
- * ace/OS.i (ACE_Flow_Spec): Added a check for ACE_HAS_WINSOCK2_GQOS
- so that things will compile properly on MinGW32. Thanks to Jeff
- McNiel <JMcNiel@datacrit.com> for reporting this.
-
-Fri Sep 21 15:54:55 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS_Dirent.cpp: Fixed all the allocations so they work properly
- when used with ACE_TCHAR! Thanks to Olof Lindfors
- <olof.lindfors@protegrity.com>.
-
-Tue Sep 18 06:25:22 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/*Reactor*: Changed all uses of "delta_time" to "delay_time".
- Thanks to Johnny Willemsen for reporting this.
-
-Sun Sep 16 11:53:38 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Connector.cpp (handle_output): Fixed the comment to be
- ACE_WIN32. Thanks to Kobi Cohen-Arazi <kobi@mivzak.com> for
- reporting this.
-
-Fri Sep 21 17:11:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Message_Block.h: Tried rewording some comments in the
- ACE_Message_Block. Thanks to Tom Wagner <TomW@CoManage.net> for
- suggesting this.
-
- * THANKS: Added Tom Wagner <TomW@CoManage.net> to the Hall of
- Fame.
-
-Fri Sep 21 22:11:53 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/ACE_SSL_LIB.dsp:
-
- Removed hardcoded user-specific include paths, and user-specific
- preprocessor macro definitions.
-
-Thu Sep 20 18:15:49 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Config_Test.cpp: Added some more tests to verify correct
- string value reset and enumerate values/sections.
-
-Thu Sep 20 12:29:09 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/ACE_SSL_LIB.dsp:
- * ace/SSL/ACE_SSL_LIB.dsw:
-
- New static build MSVC++ project and workspace files for the
- ACE_SSL library contributed by Jonathan Reis <reis@stentor.com>.
- [Bug 1032]
-
-Thu Sep 20 12:16:13 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK.cpp (enable, disable):
-
- Removed unreachable "return" statements. [Bug 1033]
-
- * ace/SSL/SSL_SOCK_Stream.i (ACE_SSL_SOCK_Stream):
- * ace/SSL/SSL_SOCK_Stream.cpp:
-
- Moved constructor to the ".cpp" file since to prevent inclusion
- of `ace/Log_Msg.h' in `SSL_SOCK_Stream.h'. This fixes problems
- with some platforms needing the Log_Msg include to pull in the
- ACE_ERROR macros without needlessly increasing inter-header
- dependencies and inclusions. [Bug 1034]
-
-Thu Sep 20 14:44:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (ACE_Process_Options): Moved avoid_zombies_
- initialization outside the !Win32 section. Thanks to Johnny
- Willemsen <johnny.willemsen@meco.nl> for this fix.
-
-Thu Sep 20 06:28:50 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-hpux-11.00.h:
-
- Reverting the change from "Wed Aug 29 15:32:10 2001 Douglas C.
- Schmidt <schmidt@macarena.cs.wustl.edu>". HP-UX 11.00 does
- not actually support pread/pwrite.
-
-Wed Sep 19 16:56:02 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h (THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM): Added
- definitions for THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM on
- platforms that do not support threads.
-
-Wed Sep 19 16:54:04 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Containers_T.cpp:
-
- In copy constructor for ACE_Double_Linked_List, added line to
- copy the size of the rhs to the lhs. The new list was ending
- up with a garbage value for its size.
-
-Wed Sep 19 14:15:08 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Enabled generation of debug info even for
- release configurations. Thanks to Jonathan Reis
- <reis@stentor.com> for suggesting this.
-
-Wed Sep 19 10:23:06 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * html/index.html:
- Add couple of missing links to the RT-CORBA components
-
-Wed Sep 19 12:00:04 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ACE-INSTALL.html:
- Added BCB5 to some places as supported/used compiler
-
- * ace/Future.h:
- * ace/Test_and_Set.h:
- Removed the ACE_EXPORT from the templates ACE_Future_Holder and
- ACE_Test_and_Set
-
- * ace/Service_Config.{h,cpp}:
- Changed the type of the members be_a_daemon_ and no_static_svcs_
- from char to int
-
-Tue Sep 18 13:57:36 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * */Makefile:
- * */Makefile.*:
- Updated dependencies, some of the paths were absolute leading to
- ambiguities in parallel builds.
-
-Tue Sep 18 12:18:26 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/footprint_stats.sh:
- Fixed bug in footprint charts generation.
-
-Tue Sep 18 10:50:15 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * html/index.html:
- Add COS Event and COS Notification services to the index.
-
-Mon Sep 17 19:00:00 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h:
-
- - THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM were not defined
- for NT. Added them.
-
- - Moved the following definitions of VxWorks around such
- that these defines are available even when PACE is not
- used.
-
- THR_INHERIT_SCHED
- THR_EXPLICIT_SCHED
- THR_SCHED_IO
- THR_SCOPE_SYSTEM
- THR_SCOPE_PROCESS
-
- * ace/OS.cpp: LinuxThreads do not have support for
- PTHREAD_SCOPE_PROCESS; only PTHREAD_SCOPE_SYSTEM is supported.
- Therefore, PTHREAD_SCOPE_PROCESS is ignored when setting the
- thread scheduling scope.
-
- * ace/Sample_History.cpp: Added accessors for <sample_count> and
- <max_samples>.
-
- * bin/auto_run_tests.lst: Added new RTCORBA tests. Removed
- Minimum CORBA dependency on these tests.
-
-Mon Sep 17 13:49:07 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * etc/tao_cosevent.doxygen:
- * etc/tao_cosnotification.doxygen:
- Add new Doxygen files for the Notification and COS Event
- Services
-
- * bin/generate_doxygen.pl:
- Add new doxygen files to the automatically generated
- documentation.
-
-Mon Sep 17 11:36:54 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_tests.lst: This is the script used by the shell
- script in that directory. As the name is confusing this is being
- moved as a new file.
-
- * tests/run_tests_remote.lst: Renamed the run_tests.lst as
- run_tests_shell.lst. This is invoked by run_tests.sh
-
- * tests/run_tests.sh: Renamed as a new file.
-
- * tests/run_tests_remote.sh: Renamed the file run_tests.sh as this
- one. This script can be used to run tests remotely on a
- CHORUS/ClassiX/MVME targets. Further this can also be used to
- run tests on platforms that dont support perl or do not have
- perl.
-
-Sun Sep 16 11:19:01 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.20 released.
-
-Sat Sep 15 16:58:08 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/High_Res_Timer_Test.cpp: Fixed compile problem with Sun CC
- 4.2.
-
-Fri Sep 14 05:28:13 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * THANKS: We now have over 1,300 contributors to ACE+TAO!
-
- * ace/Basic_Types.{h,i}: Added "const" to various operators and
- methods. Thanks to Alain Decamps for reporting this.
-
-Thu Sep 13 11:02:41 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Singleton.cpp: If we're not compiling with threading enabled,
- don't call the get_singleton_lock() code. Thanks to Charles
- Frasch <cfrasch@spawar.navy.mil> for contributing this.
-
-Tue Sep 11 06:23:08 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Array_Base.h: Changed current_ from u_int to size_t. Thanks
- to Johnny Willemsen for reporting this.
-
-Fri Sep 14 17:18:37 2001 Steve Huston <shuston@riverace.com>
-
- * tests/High_Res_Timer_Test.cpp (check_micro_nano): If the
- nanointerval is 0, change it to 1 to prevent divide-by-zero.
-
-Fri Sep 14 17:02:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/High_Res_Timer_Test.cpp: Replaced some (u_int) casts with
- ACE_U64_TO_U32, which is correct. Thanks to Alain Decamps, yet
- again!, for this fix.
-
-Fri Sep 14 11:39:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Mahesh Varadarajan and Kevin Clien to the Hall of
- Fame.
-
-Thu Sep 13 22:43:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the new Cache_Growth_Test to the
- daily tests.
-
-Thu Sep 13 20:38:44 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.h (ACE_Thread_Manager): Changed the default
- argument <prealloc> for the constructor from 0 to
- ACE_DEFAULT_THREAD_MANAGER_PREALLOC. Thanks to Doug for
- pointing this out.
-
- Added better documentation to explain the purpose of each
- argument in ACE_Thread_Manager's constructor. Thanks to Nick
- Pratt <npratt@microstrategy.com> for motivating the change.
-
-Thu Sep 13 13:38:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds),
- elapsed_time_incr (ACE_hrtime_t&nanoseconds): Instead of using
- "nanoseconds >>= 10", use "nanoseconds = nanoseconds >> 10" to
- work around a Borland C++Builder bug. Thanks very much to
- Johnny Willemsen, Christopher Kohlhoff, and Alain Decamps
- for solving this problem.
-
-Thu Sep 13 13:33:29 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Service_Config_Test.cpp: Added #include "ace/Log_Msg.h".
- This was probably to get AIX to build clean, but it's been a
- while.
-
-Thu Sep 13 12:04:04 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Werner Buchert to the Hall of Fame.
-
-Wed Sep 12 15:10:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds),
- elapsed_time_incr (ACE_hrtime_t&nanoseconds): Changes to account
- for very fast clocks (> 1GHz). Thank you to Derek Dominish
- <derek.dominish@boeing.com> and Alain Decamps
- <Alain.Decamps@PIDPA.be> for identifying the problem and coming
- up with a good solution. This fixes Bugzilla #1024 (how
- appropriate! ;-)
-
- * ace/High_Res_Timer.i (elapsed_microseconds (ACE_hrtime_t &usecs):
- More adjustment to the Win32 scale factor adjusting. Thanks (again!)
- to Alain Decamps <Alain.Decamps@PIDPA.be> for identifying and
- supplying a fix for this. This fixes Bugzilla #948 (again).
-
-Wed Sep 12 14:33:29 2001 Steve Huston <shuston@riverace.com>
-
- * tests/High_Res_Timer_Test.cpp: Incorporated some additional tests
- for usec/nsec sanity checks on the calculated ACE_High_Res_Timer
- values. Thank you very much to Alain Decamps
- <Alain.Decamps@PIDPA.be> for this test.
-
-Tue Sep 11 12:40:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Terror unleashed. The World Trade Center and the Pentagon
- attacked today. Looks like there could be lots of loss to
- precious lives. This is too horrible. We convey our condolences
- to the bereaved families. God save this world.
-
-Tue Sep 11 06:41:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: Fixed a
- typo. This should fix most of the errors in the scoreboard.
-
-Mon Sep 10 18:59:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.cpp (nonblk_put):
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (nonblk_put):
- Reverted Bala's changes below since the original code was
- correct. Also, added comments to clarify things to prevent
- confusion in the future.
-
-Mon Sep 10 17:31:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added a new platform to the list.
-
-Mon Sep 10 12:54:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp:
- Changed the condition that checks for EWOULDBLOCK after a
- send. It was erroneously written. Thanks to Nick Pratt
- <npratt@microstrategy.com> for pointing this out.
-
-Mon Sep 10 12:36:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.cpp (nonblk_put): Changed the condition
- that checks for EWOULDBLOCK after a send. It was erroneously
- written. Thanks to Nick Pratt <npratt@microstrategy.com> for
- pointing this out.
-
-Mon Sep 10 08:17:08 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Will not run the File_IO test in the
- Minimum CORBA configuration.
-
-Mon Sep 10 08:05:39 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Prevented the DLL_ORB test from running
- in static builds.
-
-Sun Sep 9 10:20:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * */Makefile: Updated dependencies.
-
-Sun Sep 9 08:43:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Handle_Set.i: Added a check in set_bit () and clr_bit () for
- ACE_INVALID_HANDLE. If we pass a ACE_INVALID_HANDLE we were
- crashing which is not good and hence the fix.
-
-Sun Sep 9 08:28:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor_Impl.h:
- * ace/Select_Reactor_Base.h:
- * ace/Select_Reactor_Base.cpp (is_dispatchable): Added a new
- method. This method, just figures out whether the buffer has any
- dispatchable info or not.
-
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp: Added the above method in the WFMO
- Reactor.
-
- * ace/TP_Reactor.cpp: The handle_notify_events () method now
- checks whether the buffer it has read is dispatchable or not. If
- it is then it gives up the token to make an upcall. Else, it
- just sits around to remove messages of the pipe, till it find
- one with a dispatchable info. The fix was necessary so that
- wake-up calls that are unanswered are removed of the
- pipe. Unanswered wakeup calls were filling up the pipe and they
- were blocking some application from writing further to the
- pipe. This should be in all probability be the final fix to the
- Reactor.
-
-Sat Sep 8 09:34:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Fixed a typo that was giving
- compile errors in VXWORKS builds.
-
-Fri Sep 7 16:40:37 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/OS.h:
- Added an if-def case for IP_MULTICAST_TTL too.
-
-Fri Sep 7 17:09:04 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Resume_Test.cpp: Initialised the lock
- to null in the constrcutor before allocating memory for
- it. This was done to remove the ABW errors in
- purify. This should remove the problem that we see with this
- test in our daily builds with SunCC 4.2.
-
-Fri Sep 7 15:51:48 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Included Auto_Ptr.h.
-
-Fri Sep 07 15:29:37 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp::
- * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp:
-
- * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp::
- * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp:
-
- * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp:
- * examples/QOS/Simple/Fill_ACE_QoS.cpp:
-
- Fixed compile errors.
-
-Fri Sep 7 14:17:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Do not clear the notify handle bit when
- trying to dispatch notify calls. This shoudl fix the long
- pending problems with TRU 64 builds.
-
-Fri Sep 07 12:12:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Iterative_Logging_Server.dsp:
- * examples/C++NPv1/Logging_Client.dsp:
- * examples/C++NPv1/Process_Per_Connection_Logging_Server.dsp:
- * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.dsp:
- * examples/C++NPv1/Reactive_Logging_Server.dsp:
- * examples/C++NPv1/Reactive_Logging_Server_Ex.dsp:
- * examples/C++NPv1/Thread_Per_Connection_Logging_Server.dsp:
- Use relative paths to include and library files rather than
- $(ACE_ROOT). Makes it easier to use in place regardless of
- ACE version.
-
- * examples/C++NPv1/Logging_Client.cpp: Fixed scoping of the getline()
- method call.
-
-Thu Sep 6 21:14:05 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Changed the usage of auto_ptr
- <> to ACE_Auto_Basic_Ptr<>. Thanks to Carlos O'Ryan for this
- suggestion.
-
-Thu Sep 06 18:42:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1: New directory that contains all of the example
- code for Doug/my book, C++ Network Programming, Vol 1.
-
-Thu Sep 6 12:01:15 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/OS.h:
- Added a if-def case for IP_MULTICAST_IF. Seems like it is not
- defined in some of the OS versions.
-
-Thu Sep 06 12:36:43 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/QoS/QoS_Session_Impl.cpp:
- * ace/QoS/QoS_Session.h:
-
- Fixed compile errors.
-
-Thu Sep 6 10:24:15 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Acceptor.cpp (accept_svc_handler):
- * ace/Strategies_T.cpp (accept_svc_handler):
-
- Do not close and reopen the peer acceptor on failed attempts to
- accept a connection. Several problems were fixed by removing
- this code:
-
- - A race condition existed where another thread or process
- could acquire the port that the peer acceptor was
- listening on before it was closed. Note that it is not
- enough to attempt to synchronize this code with a lock
- since an external process could still acquire the port.
-
- - If the port in the peer acceptor (assuming it is an
- ACE_INET_Addr based one) is the wildcard port (zero), then
- there is no guarantee that the acceptor will be opened on
- the same port upon which it is was previously listening.
- In such a case, IORs generated by TAO (for example) can be
- rendered invalid since the addressing information embedded
- in those IORs will no longer contain the actual port to
- connect to when making invocations. [Bug 962]
-
- - The above two problems actually introduced a
- denial-of-service attack vulnerability (now closed by this
- fix) since it was relatively easy to force a failed
- connection attempt, which would then cause the peer
- acceptor to be reopened on potentially a different port,
- or to shutdown completely if reopening failed.
-
- * ace/SSL/SSL_SOCK_Acceptor.i (close):
-
- Invalidate the handle stored within the ACE_SSL_SOCK_Acceptor
- instance. Corrects problems arising from attempts to use a
- listening socket that has been shut down.
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- Perform an OpenSSL SSL_accept() in case OpenSSL buffered data
- that must be handled before entering the Reactor event loop used
- to complete a non-blocking SSL passive connection.
-
- If the OpenSSL error status is SSL_ERROR_ZERO_RETURN shut down
- the partially initialized SSL stream/session since the peer has
- itself shut down.
-
-Thu Sep 6 11:00:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: The timer events are not included as a part
- of number of active handles from wait_for_multiple_events
- (). The check for event_count > 0 before processing timer events
- was wrong. Removed the check. Thanks to Chad Elliott for
- pointing this out.
-
- Further did some cosmetic changes like adding comments, removing
- comments that was not valid etc.
-
-Thu Sep 6 07:50:56 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: The AMI buffering test should not be run
- Single threaded builds.
-
-Thu Sep 6 02:30:14 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * examples/Export/Makefile.bor:
- * examples/Export/export_dll.bor:
- * examples/Export/test.bor:
- * examples/Export/dll.h:
- Added makefiles for this example and fixed a template problem with
- Borland C++. Thanks to Charles Frasch <cfrasch@spawar.navy.mil> for
- contributing this.
-
-Wed Sep 5 19:48:34 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram.cpp (set_nic):
- Fixed the errors that raised in Win.
-
-Wed Sep 5 20:38:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/QoS/QoS_Session_Impl.cpp:
- * ace/QoS/QoS_Session.h: Reverted the change "Wed Sep 5 18:58:00
- 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>". The change
- broke builds. Further there was no reason why the QoS
- information should come inside OS.* files. Talk about increasing
- foot print.
-
-Wed Sep 5 18:58:00 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/QoS/QoS_Session.h:
- * ace/QoS/QoS_Session_Impl.h:
- * ace/QoS/QoS_Session_Impl.cpp:
-
- Added rapi_sender and rapi_reserve calls with null tspec and
- flow spec respectively to facilitate the tearing down of PATH
- and RESV messages.
-
- * ace/OS.h:
- * ace/OS.i:
-
- Changed the sending_flowspec_ and receiving_flowspec_ members of
- the ACE_QoS class to pointers so they can be initialized to null
- flow specs.
-
-Wed Sep 5 16:50:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Peter Phillips <pphillip@opentext.com> to the Hall
- of Fame.
-
- * ace/OS_String.cpp: Fixed a warning in TRU64 builds.
-
-Wed Sep 5 11:29:59 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram.h:
- * ace/SOCK_Dgram.cpp:
-
- Added a new method to set the NIC address in the socket.
-
-Wed Sep 05 12:00:42 2001 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix4_g++.GNU: Sets ACE_AIX_VERS rather
- than separate major/minor; see entry below for further info.
-
-Wed Sep 05 11:52:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix5.1.h: New config file for AIX 5L, version 5.1,
- using Visual Age C++ 5.
-
- * ace/config-aix-4.1.x.h:
- * ace/config-aix-4.2.x.h:
- * ace/config-aix-4.3.x.h:
- * ace/config-aix-4.x.h: Use ACE_AIX_VERS (which has both major and
- minor version) rather than ACE_AIX_MAJOR_VERS and ACE_AIX_MINOR_VERS.
-
- * include/makeinclude/platform_aix_ibm.GNU: Rather than making
- separate major/minor OS version variables, use one that incorporates
- both to make it easier for config.h files to set upwardly-compatible
- feature flags.
-
-Wed Sep 5 06:55:44 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/Log_Msg_Test.cpp:
-
- Add ACE_TEXT() around the default program name for the Windows
- WChar Unicode build.
-
-Tue Sep 4 18:48:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Changed the value returned from
- ACE_Select_Reactor_Notify_Handler::handle_input (). This now
- returns a 0 if we did not dispatch any handles or the number of
- handles dispatched. We were returning a -1 if we did not
- dispatch any handles, after reading the notification from the
- pipe. This should fix the Reactor_Notify_Test in the Implicit
- templates build.
-
-Tue Sep 4 12:46:50 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Reverted this change "Tue Sep 4 07:37:17 2001
- Balachandran Natarajan <bala@cs.wustl.edu>". Thanks to Irfan
- for pointing that this change, changes the semantics of the
- methods.
-
-Tue Sep 4 09:14:36 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
-
- Work around a compiler bug in the latest Green Hills Multi200.
- Casting a float to an ACE_CDR::ULong* caused internal compiler
- errors if the code was inlined.
-
- * ace/config-vxworks5.x.h:
- * include/makeinclude/platform_vxworks5.x_ghs.GNU:
-
- Updated support for Green Hills Multi2000.
-
-Tue Sep 4 07:41:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Eyal Neuman <eyal@tradertools.com> to the Hall of
- Fame.
-
-Tue Sep 4 07:37:17 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Fixed a bug with recv_n_i (). The problem was form
- returning the exact number of bytes from the for loop. If the
- loop had executed once and if we get 0 in the next recv_i ()
- call, then we should be returning the number of bytes read in
- the previous iteration and not 0. Thanks to Eyal Neuman
- <eyal@tradertools.com> for this fix. This closes bug 1015.
-
-Tue Sep 4 07:08:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Fixed a unicode error in teh Win32 builds. Acted as
- a dumbo when I made this change yesterday:(
-
-Mon Sep 3 20:08:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Fixed a warning in TRU 64 builds.
-
-Mon Sep 3 09:58:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * */Makefile: Updated dependencies
-
-Mon Sep 3 09:44:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a warning in Implicit
- template builds.
-
-Mon Sep 3 08:21:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Replaced L with ACE_TEXT_WIDE.
-
-Mon Sep 3 07:54:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS_String.cpp: Fixed compile errors in win32 builds. Thanks
- to Johnny Willemsen for sending in patches for replacing L with
- ACE_TEXT_WIDE.
-
-Sun Sep 2 19:33:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a small problem with the
- select reactor's notify () handling mechanism. This was more of
- a problem with me not checking the while () loop condition
- properly. This should fix most of the reactor problems seen in
- the daily builds.
-
-Sat Sep 1 14:10:08 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/System_Time.cpp,
- * ace/Stream_Modules.cpp,
- * ace/Service_Types.cpp,
- * ace/Service_Manager.cpp,
- * ace/SPIPE_Addr.cpp,
- * ace/OS.cpp,
- * ace/Memory_Pool.cpp,
- * ace/Mem_Map.cpp,
- * ace/Local_Name_Space_T.cpp,
- * ace/FILE_Addr.cpp,
- * ace/FIFO.cpp,
- * ace/Connector.cpp,
- * ace/Acceptor.cpp,
- * ace/Token_Collection.cpp,
- * ace/Name_Request_Reply.cpp,
- * ace/Local_Tokens.cpp,
- * ace/ACE.cpp,
- * ace/Log_Record.cpp,
- * ace/Log_Msg.cpp: Added the use of the new ACE_OS::strsncpy()
- method. Thanks to Alain for reporting this.
-
- * ace/OS_String.{h,cpp}: Added a "safe" c string copy method:
- strsncpy(dst,src,maxlen). Changing an occurence off strncpy()
- to strsncpy() is less errorprone, but could break somebody's
- code if he/she is using the fact that the strncpy's where
- nul-padding the destination, but this is extremely
- unlikely. Using strsncpy() is also almost always (a lot) faster
- than strncpy(). Thanks to Alain Decamps
- <Alain.Decamps@PIDPA.be> for this method.
-
-Sat Sep 1 09:54:55 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Bound_Ptr_Test.cpp: Added a patch from Chris Kohlhoff that
- fixes the problem with VXWORKS builds. The old gcc compiler
- seems to have problems with forward declared types as template
- parameters. Chris solves the problem by defining a ABC properly
- and making the offending class inherit from it. This should fix
- our daily VXWORKS builds.
-
-Sat Sep 1 08:07:51 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a compilation error in the
- Notification queue portion of the code. Thanks to our daily
- builds for helping me with this testing.
-
-Fri Aug 31 22:12:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp:
- * ace/Select_Reactor_Base.cpp: Fixed fuzz errors.
-
-Fri Aug 31 22:07:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp: Added the method read_notify_pipe () to
- the WFMO_Notify_Handler.
-
-Fri Aug 31 19:14:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor_Impl.h: Added a new method by name read_notify_pipe
- (). Also changed the dispatch_notify () to take in a
- Notification buffer instead of a ACE_HANDLE.
-
- * ace/Select_Reactor_Base.cpp:
- * ace/Select_Reactor_Base.h: Made the following changes
-
- - Implemented read_notify_pipe (). Will read just one message from
- the notify pipe or one message from the notification queue.
-
- - Reimplemented dispatch_notify (). This method would just
- dispatch the upcall using the information in the notification
- buffer.
-
- - The handle_input () now uses the read_notify_pipe () and
- dispatch_notify () to achieve what it was doing before.
-
- - The notify () call now sends one notify message on the pipe
- for every message in the notification queue.
-
- * ace/TP_Reactor.cpp (handle_socket_events):
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.i: We had a race condition. The race condition
- was because two threads were trying to read from the notify_pipe
- at the same instance. This race condition was fixed by adding a
- call to read_notify_pipe () with the lock held and then calling
- dispatch_notify () with the buffer read after releasing the
- lock. Did the following minor modifications
-
- - Changed dispatch_socket_events () as dispatch_socket_event ()
- as we were dispatching only one event.
-
- - We dont grab the token in the constructor of the token. We
- have to make a call specfically to grab_token () to get the
- token.
-
- The above checkins should fix the correctness of the reactor
- problems that we have been seeing.
-
-Fri Aug 31 18:30:28 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added Blocking_Sync_None to the list of tests to be run on
- Tru64.
-
- * ACE-INSTALL.html:
-
- Added Linux/IA64 to the list of platforms supported.
-
-Fri Aug 31 15:27:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Bound_Ptr.i: Fixed a problem with Sun CC42 builds. Used 1
- instead of true.
-
-Fri Aug 31 14:57:42 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Fixed usage of ACE_SYNCH meta-class
- to work correctly with templates.
-
-Fri Aug 31 11:53:05 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/Timer_Queue_T.h:
- * ace/Timer_Queue_T.h:
- * ace/config-hpux-11.00.h:
- * ace/config-hpux11.h:
- * ace/config-irix6.x-common.h:
- * ace/config-linux-common.h:
- * ace/config-lynxos.h:
- * ace/config-osf1-4.0.h:
- * ace/config-pharlap.h:
- * ace/config-sunos4-g++.h:
- * ace/config-sunos4-lucid3.2.h:
- * ace/config-sunos4-sun3.x.h:
- * ace/config-sunos4-sun4.1.4.h:
- * ace/config-sunos4-sun4.x-orbix.h:
- * ace/config-sunos5.4-centerline-2.x.h:
- * ace/config-sunos5.4-g++.h:
- * ace/config-sunos5.4-sunc++-4.x-orbix.h:
- * ace/config-sunos5.4-sunc++-4.x.h:
- * ace/config-sunos5.5.h:
- * ace/config-tandem.h:
-
- Fixed up documentation of ACE_TIMER_SKEW. Fixed bogus values in
- all the above files. Should help in removing some of the errors
- in TAO tests. Any test in ACE/TAO which breaks because of this
- change is broken and should be fixed.
-
-Fri Aug 31 12:00:00 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Bound_Ptr_Test.icc: New Visual Age C++ config for this test.
- * tests/tests.icp: Added Bound_Ptr_Test.icc, Service_Config_Test.icc,
- and libService_Config_DLL.icc.
-
-Fri Aug 31 11:40:31 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.(cpp h): Fixed single-threaded builds.
-
-Fri Aug 31 08:13:26 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/perltest2cpp.pl:
-
- Added a -t option to set the timeout factor.
-
-Thu Aug 30 18:08:32 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-linux-common.h:
-
- Added some more missing stuff which might break compilations.
- The previous change also removed the existing definition for
- ACE_TIMER_SKEW so add it back till the new version is checked in.
-
-Thu Aug 30 17:54:40 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-linux-common.h:
-
- This file was checked in inadvertently when checking in fixes
- for ACE_NEEDS_HUGE_THREAD_STACKSIZE.
-
-Thu Aug 30 13:04:38 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.lst: Added Bound_Ptr_Test.
-
-Thu Aug 30 11:40:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.pl (run_program): Fixed the 'unlink' to get
- all of a test's log files; prevents seeing previous sub-logs
- from a test such as MEM_Stream_Test and falsely reporting errors.
-
-Thu Aug 30 10:46:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.cpp (global_scale_factor ()): When checking for
- a high-res timer mechanism, don't set the global_scale_factor_status_
- away from 0 until _after_ getting the scale factor, to avoid
- a second parallel thread from using a bogus value. Thanks very much
- to Alain Decamps for this fix.
-
-Thu Aug 30 09:30:19 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/Log_Msg_Test.cpp:
-
- Fix for VxWorks when ace_main() is called with argc == 0.
-
- * tests/run_test.lst:
-
- Update the list of tests that run on VxWorks.
-
- * tests/Makefile:
- * tests/run_test.pl:
-
- Update the script to output VxWorks commands to a file.
-
-Thu Aug 30 09:58:38 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.i (elapsed_microseconds): For Win32, isolate the
- msec modulus before converting it up to usecs. Thanks to Francois
- Rioux <rioux01@gel.ulaval.ca> for reporting this.
-
-Thu Aug 30 00:42:41 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/Service_Config.cpp:
- Service_Object instances are now inserted into the Service_Repository
- only after they have been successfully initialised, to provide better
- support for recursive use of the service configurator. With this
- change, a service loaded from 'inside' another services's init() will
- be inserted into the repository first and unloaded last. This ensures
- that any recursively loaded services on which the original service
- depends still exist when the original service's fini() function is
- called.
-
-Thu Aug 30 00:27:05 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ChangeLog:
-
- Removed bogus files from the previous entry. I should not play
- around with a lot of tasks at once.
-
-Wed Aug 29 19:57:29 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h:
-
- Remove definition of ACE_NEEDS_HUGE_THREAD_STACKSIZE. The
- default value seems to be good enough.
-
- * ace/config-vxworks5.x.h:
- * ace/config-lynxos.h:
- * ace/config-qnx-neutrino.h:
- * ace/config-rtems.h:
-
- Standardized the values to 64KB on these platforms. Don't know
- if these platforms need it. But I don't have access to any of
- these so playing it safe.
-
-
-Wed Aug 29 18:52:12 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * tests/Bound_Ptr_Test.cpp:
- Removed a stray asterisk that was causing compilation failures.
-
-Wed Aug 29 17:54:52 2001 Steve Huston <shuston@riverace.com>
-
- * tests/libDLL_Test.icc:
- * tests/libService_Config_DLL.icc: Fixed the "run after" directives
- to correctly build the lib*.a files. Also, fixed the cleanup
- directives to properly clean up both .a and shr.o files.
-
-Wed Aug 29 15:32:10 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/config-aix-4.x.h:
- * ace/config-hpux-11.00.h:
- * ace/config-osf1-4.0.h: Added better support for pread()/pwrite().
- Thanks to Steve Vranyes <steve.vranyes@veritas.com> for these fixes.
-
-Wed Aug 29 15:47:33 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.lst: Re-enabled MEM_Stream_Test.
-
-Wed Aug 29 12:15:01 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Added Bound_Ptr.* to the projects.
-
- * tests/tests.dsw:
- * tests/Bound_Ptr_Test.dsp: Added a new project for
- Bound_Ptr_Test.
-
-Wed Aug 29 11:01:22 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Fixed a cut/paste error and now runs the
- proper number of threads/processes for the MT case, avoiding a
- hang.
-
-Wed Aug 29 07:08:23 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/run_tests.lst:
- * tests/Makefile
- * tests/Makefile.bor
- * ace/Makefile
- * ace/Bound_Ptr.{h,i}
- * tests/Bound_Ptr_Test.cpp
- * examples/Smart_Pointer: Added a pair of new smart pointer classes,
- ACE_Strong_Bound_Ptr and ACE_Weak_Bound_Ptr. Thanks to
- Christopher Kohlhoff <chris@kohlhoff.com> for contributing
- these.
-
-Tue Aug 28 17:51:19 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.pl: If a test has log files associated with the
- main log of the form <test>-<other>.log, e.g. MEM_Stream_Test-331.log
- the check_log function will scan those for errors/warnings too.
-
-Tue Aug 28 16:48:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i: We (the current thread) should not release the
- token unless we own it. This simple mistake just took 3 days to
- figure out. An 'if' condition was mixing and have added
- it. Shows how a small problem at lower levels can take days to
- fix.
-
-Tue Aug 28 17:45:22 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Fixed compile warning on gcc.
-
-Tue Aug 28 13:16:31 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/vxworks_modify.pl:
- * bin/perltest2cpp.pl:
-
- Generated c++ files now pass the fuzz check.
-
-Tue Aug 28 11:02:08 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
-
- Renamed the GCC 3.0 build to "Debian_GCC_3.0.1." since we're
- actually compiling with GCC 3.0.1, not GCC 3.0. The latter has
- bugs that prevent it from compiling ACE/TAO at the "-O3"
- optimization level.
-
-Tue Aug 28 10:19:18 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- Corrected Borland warning using a more efficient fix (i.e. less
- function calls).
-
-Tue Aug 28 10:36:10 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/vxworks_modify.pl:
- * bin/perltest2cpp.pl:
-
- Added these scripts for use with VxWorks and the newly added TAO
- TestUtils. These scripts modify c++ and perl to generate
- "one-button" modules for TAO testing on VxWorks.
-
-Tue Aug 28 11:07:26 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Be sure to close the stream from the
- client end.
-
-Mon Aug 27 20:16:38 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_test.lst: Removed the MEM_Stream_Test from the daily
- builds as they were hanging. This was causing the builds to
- choke. I will keep Steve Huston informed on this so that he can
- reenable them once he has fixed the test.
-
-Mon Aug 27 18:33:59 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB):
-
- Removed the stray yoda part of LIST which is causing the wrong
- results to show up.
-
-Mon Aug 27 18:14:38 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB):
-
- Added the IA-64 builds back again. We now have a faster machine
- running a better version of Linux.
-
-Mon Aug 27 09:39:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.i (get_dispatch_info):
- * ace/Timer_Queue_T.h: Fixed the compile problem in VXWORKS
- builds. How could I forget that there are a few compilers which
- cannot grok traits?
-
-Mon Aug 27 09:39:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * examples/Makefile.bor:
- * examples/NT_Service/Makefile.bor
- Added BCB makefile for this example
-
-Sun Aug 26 22:08:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i: Reordered methods to fix warnings in TRU 64
- builds.
-
-Sun Aug 26 20:50:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i: Fixed a warning (hopefully) in
- Borland builds. The warning was because a temporary variable was
- created.
-
-Sun Aug 26 20:45:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp: Fixed a unused variable warning in
- Borland.
-
-Sun Aug 26 08:13:12 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/test_config.h: Added a new ACE_CLOSE_TEST_LOG macro. Thanks to
- Edan for this.
-
-Sun Aug 26 09:07:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Fixed a compile error with SunCC4.2
-
-Sun Aug 26 08:28:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.cpp: Fixed a warning from an unused variable
- reported by KCC compilers.
-
-Sun Aug 26 08:13:12 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Applied the following fixes from
- Edan:
-
- - Included ace/Logging_Strategy.h
- - Addition of -w switch to enable initial wipeout of logfile
- - Removal of the redundant ACE_LOG_MSG->open()
- - Explicitly close the previous log before applying the changes to the
- ACE_LOG_MSG
- - Moved remove_files() call higher, just before logfile close
-
- * ace/Logging_Strategy.{h,cpp}: Added the following fixes from
- Edan Ayal:
-
- - Logging_Strategy now supports any ACE_Log_Msg, not just the
- ACE_LOG_MSG singleton.
- - Added a check for success (ios::goodbit) of new ofstream
- creation.
- - Changed default values for max_size and interval. Now the
- default interval is 10 minutes (instead of 0) and the default
- log file size is 0 (was 16K). The timer is now activated only
- if both are non-zero.
- - Added a mutator to set the ACE_Log_Msg to work with, and a
- member variable
- - Added definition for ACE_DEFAULT_LOGFILE_POLL_INTERVAL
- - Removed definition of ACE_DEFAULT_MAX_LOGFILE_SIZE
-
- * ace/Log_Record.{h,cpp}: Enhanced this implementation to (1)
- be consistent with recent changes to Log_Msg.h and (2) to
- replace problematic use of strncpy(). Thanks to Alain
- Decamps for these fixes.
-
-Sat Aug 25 20:58:22 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/FILE_IO.i (send_n): Changed to use ACE::write_n to send the
- chain of Message_Blocks. The originally used ACE::send_n was
- causing problem on NT because send_n was restricted for sockets
- I/O on NT. Thanks to Doug for pointing this out.
-
-Sat Aug 25 10:16:21 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Svc_Handler_Test.cpp (main): The destructor of svc_handler
- will close file_io, so we don't need to do it explicitly!
-
- * ace/Log_Msg.cpp (log): Changed range check from
-
- this->msg_ + ACE_Log_Record::MAXLOGMSGLEN
-
- to
-
- this->msg_ + sizeof this->msg_
-
- to correspond to the change below.
-
- * ace/Log_Msg.h (ACE_Log_Msg): Increased the size of the buffer
- used to store log records to account for the NUL-terminator.
-
- * tests/Svc_Handler_Test.cpp (main): Changed the buffer size
- and NUL-terminated the buffer so that things print correctly.
- Thanks to Nanbor for finding this.
-
-Sat Aug 25 09:00:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp:
- * ace/TP_Reactor.h (ACE_TP_Reactor): Fixed a warning in KCC
- builds.
-
-Sat Aug 25 08:42:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Configuration_Import_Export.cpp: Fixed warnings with g++. I
- am not sure how this fix will be accepted on different
- compilers. Things are always dicy when you want to delete a
- void *.
-
-Fri Aug 24 23:29:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added File_IO test to our daily builds.
-
-Fri Aug 24 23:12:15 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp (dispatch_notify): Fixed a compile error on
- MSVC.
-
-Fri Aug 24 23:07:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Configuration_Import_Export.cpp: Fixed a compile error with
- g++.
-
-Fri Aug 24 21:55:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/QoS/QoS_Session_Impl.cpp:
- Check for null parameters in rsvp_callback().
- Thanks to Yamuna Krishnamurthy <yamuna@cs.wustl.edu>.
-
-Fri Aug 24 20:32:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Changed this test to use multiple
- processes on any platform without ACE_LACKS_FORK. It actually
- could be broader than this if desired. This is motivated by the
- fact that HP-UX can't mmap() (the call underlying ACE_MEM_IO)
- the same file more than once in the same process. With this,
- MEM_Stream_Test goes a lot better on HP-UX, though not perfectly
- yet.
-
-Fri Aug 24 16:54:02 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.h (recv_i):
-
- Added a timeout parameter. See below for details.
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- Perform an SSL_read() before attempting to block on select()
- with a timeout. OpenSSL may buffer more data than requested
- since it is a record-oriented protocol. Fixes a problem where
- subsequent calls to ACE_SSL_SOCK_Stream::recv() could timeout
- when needlessly blocking on select() because the expected data
- has already been buffered by OpenSSL. Thanks to Martin
- Krumpolec <krumpo@pobox.sk> for reporting and diagnosing the
- problem. [Bug 1006]
-
- * ace/SSL/SSL_SOCK_Stream.cpp (recv):
-
- Moved the timed recv() code to the lower level recv_i() method
- since timeout support must now be more tightly integrated with
- do/while(SSL_pending()) SSL_read() loop.
-
-Fri Aug 24 18:33:09 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Parse_Node.cpp (ACE_Function_Node): Make sure to dynamically
- allocate the pathname_ so we can delete it! Thanks to
- Don Hinton for reporting this.
-
- * ace/Configuration_Import_Export.cpp: Changed a couple of
- delete (char *) buf to delete (char *) [] buf. Thanks to
- Don Hinton for reporting this.
-
-Fri Aug 24 16:10:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- Merged in changes from the reactor_deadlock branch. This set of
- changes actually fixes a long standing problem with the
- TP_Reactor. The TP_Reactor was holding the token too long and
- this created all sorts of problems for TAO. The changes have been
- merged from the branch <reactor_deadlock> and here are the relevant
- ChangeLog entries.
-
- Fri Aug 24 14:59:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (dispatch_socket_events): Cosmetic changes.
-
- Fri Aug 24 14:19:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.i:
- * ace/Timer_Queue_T.h:Removed the default constructor and
- destructor for ACE_Timer_Node_Dispatch_Info_T allowing the
- compiler to do the job.
-
- Fri Aug 24 12:05:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.cpp: Removed some vague debug statements.
-
- Fri Aug 24 11:34:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.h:
- * ace/Timer_Queue_T.cpp:
- * ace/Timer_Queue_T.i: Added a new class
- ACE_Timer_Node_Dispatch_Info_T that has the dispatch information
- needed to make the upcall. Added methods, dispatch_info () and
- dispatch_info_i () in ACE_Timer_Queue_T. These methods return
- the dispatch information if there is a node in the queue whose
- timer value <= current time. Changed the expire () method to use
- this method to get dispatch information.
-
- * ace/Timer_Queue.h: Added a template specialisation for
- ACE_Timer_Node_Dispatch_Info_T.
-
- * ace/Timer_Queue.cpp: Added template instantiations for the
- specialisation.
-
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp: Added a new method handle_timer_events ()
- that would handles timer events.
-
- Thu Aug 23 11:50:18 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor_Impl.h: Added two new methods notify_handle () and
- dispatch_notify () to the ACE_Reactor_Impl class.
-
- * ace/Select_Reactor_Base.h:
- * ace/Select_Reactor_Base.cpp: Implemented the above two
- methods in the ACE_Select_Reactor_Notify class. The
- notify_handle () method returns the handle of the pipe on which
- it is listening. The dispatch_notify () call does a dispatch of
- just one notify () call in the notify pipe. The handle_input ()
- call that used to process all the notify calls now calls the
- dispatch_notify () in a loop. The change essentially allows
- some extrenal client of this class to just process one notify at
- a time if needed.
-
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.i:
- * ace/TP_Reactor.cpp (handle_events): Fixed a bug with
- handle_events (ACE_Time_Value &). This should be calling the
- handle_events () of the TP_Reactor and not the select reactor.
-
- Added a whole slew of new methods that basically allows us to do
- this
- - handle one event at a time
-
- - once the thread knows the event that needs handling it should
- release the token before dispatching the events
-
- The new methods that have been added are
-
- - handle_signals (), which handle signals that interrupted the
- select (). The implementation of this method is busted. The
- implementation has been copied from the existing setup
-
- - handle_notify_events (), which handles one notify on the
- notify_pipe at a time
-
- - handle_socket_events (), which handles socket events.
-
- Quite a few helper methods have also been added. They are
- get_notify_handle (), get_socket_event_info (), and
- dispatch_socket_events (). Removed the methods dispatch_i (),
- dispatch_i_protected () and notify_handle (). This checkin fixes
- the problem in 1002. But we still have to add handling timeouts
- into the TP_Reactor.
-
-
- Tue Aug 21 17:21:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i:
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp: Made lots of changes which havent been
- compiled yet. Added a new class ACE_TP_Token_Guard that helps
- in obtaining and releasing tokens. Moved the grab_token () from
- the ACE_TP_Reactor class to the TP_Token_Guard class. Added a
- new method for handling signals. They havent been compiled yet
- and this checkin is to put files from work to my home box.
-
- Tue Aug 21 07:58:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i:
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp (handle_events): Started refactoring some of
- the code to help with this bug. This change has not been
- compiled. This is just being done to transfer files from home
- to work.
-
-Fri Aug 24 14:25:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Massimo Pichini <massimo@webbridges.it> to the
- Hall of Fame.
-
-Fri Aug 24 13:40:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Removed HPUX and AIX_VAC for the
- timebeing. Looks like OCI is running different versions of the
- OS for their internal use.
-
-Fri Aug 24 10:17:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log_hexdump): Added a patch provided by Massimo
- Pichini <massimo@webbridges.it>. This prevents overflows with
- long strings that are used in printing hexdumps. Previously we
- had a buffer of 80 bytes on the stack.
-
-Fri Aug 24 10:03:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/INET_Addr.(h cpp): Applied changes submitted by
- Alain Decamps <Alain.Decamps@PIDPA.be> to insure that
- get_host_name (char hostname[], size_t len) const always
- nul-terminates the hostname string. If the host lookup is
- successful, but the supplied buffer is too short, the function
- returns -1, errno == ENOSPC.
-
-Thu Aug 23 22:01:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Reverted this change "Thu Aug
- 23 05:24:57 2001 Douglas C. Schmidt" as this was giving
- warnings with MSVC 6.0
-
-Thu Aug 23 11:49:15 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * bin/msvc_auto_compile.pl:
-
- Revert changes from Mon Aug 20 15:48:30 2001.
- Thanks to Darrell to showing me the error in my ways.
-
-Thu Aug 23 09:17:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (file): Reduced the number of bytes copied in
- ACE_Log_Msg::file () and ACE_Log_Msg::msg () by one. Thanks to
- Alain Decamps <Alain.Decamps@PIDPA.be> for pointing this out.
-
-Thu Aug 23 08:11:22 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Configuration_Import_Export.cpp (process_previous_line_format):
- Prepend ACE_OS:: to atoi to work with both narrow and wide chars.
-
-Thu Aug 23 08:03:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/QoS/QoS_Session_Impl.cpp:
- Improve debugging messages. Return -1 inside rsvp_callback()
- if flowspec type is unknown.
-
-Thu Aug 23 05:24:57 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Added new and improved test that
- it better documented and fixes some minor bugs. Thanks to
- Edan Ayal for this.
-
-Wed Aug 22 19:04:57 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Enable this test to work
- on platforms that don't support DLLs. Thanks to Edan Ayal
- <edana@bandwiz.com> for suggestion this and providing the code.
-
- * tests/Logging_Strategy_Test.cpp (parse_args): Changed 'n' for 'N'
- since that controls the max number of log files. Thanks to Edan
- Ayal <edana@bandwiz.com> for reporting this.
-
-Thu Aug 23 07:30:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/SString.{h,i}: Added clear() method to the ACE_CString and
- ACE_WString so that it is possible to clear a string in just one
- call
- * tests/SString_Test.cpp: Extended to test clear() method
-
-Wed Aug 22 15:30:05 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Use the print_config.pl script to print out the configuration.
-
-Wed Aug 22 17:33:29 2001 Steve Huston <shuston@riverace.com>
-
- Applied fixes submitted by Jerry D. Odenwelder, to fix
- Bugzilla #953:
-
- * ace/Configuration.cpp (import_config, export_config): Changed
- from using a ACE_Ini_ImpExp object to an ACE_Registry_ImpExp
- to preserve type information in the import/export files, and
- retain the ability to read an ACE 5.1-format file (with the
- changes next...)
-
- * ace/Configuration_Import_Export.(h cpp): Added a new
- ACE_Registry_ImpExp::process_previous_line_format() method that
- knows how to read an ACE 5.1-format config line. If
- ACE_Registry_ImpExp::import_config finds a line that does not
- begin with one of <"[#;> it calls process_previous_line_format
- to try to convert it using ACE 5.1-format rules.
- Note that the auto conversion works on import. If the
- object is subsequently exported, the new registry format
- will be used to write the file, effectively updating it
- from old to new format.
-
-Wed Aug 22 12:04:04 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/WFMO_Reactor.h (ACE_WFMO_Reactor): Clarified that the
- work_pending() method isn't implemented and suggest what to do
- for a workaround. Thanks to Michelangelo Riccobene
- (michelangelo.riccobene@marconi.com) for reporting this.
-
-Wed Aug 22 10:38:08 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/print_config.pl:
- Add new perl script to print out the build configuration, the
- script will be shared by the Unix and Win32 builds.
-
-Wed Aug 22 11:30:13 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/OS_Memory.h:
- Removed include of pace/stddef.h. PACE does not have this
- file. There are no POSIX functions that typically reside
- in this header. Maybe PACE will need this later but it
- doesn't now.
-
- * ace/OS.h (ACE_cond_t):
- Modified #if guard to include ACE_cond_t class if we're
- on Win32. If we're using PACE then we don't want this method
- (since PACE takes care of it) unless we're on Windows. Win32
- mutexes, semaphores, and condition variables are not yet
- supported in PACE.
-
- * ace/OS.cpp (ACE_OS::cond_destroy):
- Modified #if guard to include ACE_cond_t::cond_destroy
- if we're on Win32. If we're using PACE then we don't want
- this method (since PACE takes care of it) unless we're on
- Windows. Win32 mutexes, semaphores, and condition variables
- are not yet supported in PACE.
-
- * ace/OS.i (ACE_OS::waiters):
- Modified #if guard to include ACE_cond_t::waiters if
- we're not on Win32. If we're using PACE then we want
- this method (since PACE defines cond_t) unless we're
- on Windows. Win32 mutexes, semaphores, and condition
- variables are not yet supported in PACE.
-
-Tue Aug 21 08:26:30 2001 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: changed the example referenced
- in:
- Sun Aug 19 08:17:14 2001 David L. Levine <levine@cs.wustl.edu>
- to be a bit more realistic.
-
-Tue Aug 21 06:58:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Fixed problematic uses of strncpy. Thanks to
- Alain Decamps <Alain.Decamps@advalvas.be> for giving this patch.
-
-Tue Aug 21 10:40:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Map.i: Made the return value of ACE_Incremental_Key_Generator
- getCurrentValue() const
-
- * ace/Map_Manager.*: Added a const iterator for the
- ACE_Map_Manager
-
-Mon Aug 20 18:20:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (pass_handle): Only try to compile the
- DuplicateHandle stuff when !ACE_HAS_WINCE... I think it's
- right this time...
-
-Mon Aug 20 15:54:46 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SUN_Proactor.cpp: Removed the instantiation of
- ACE_Condition<ACE_Thread_Mutex>. Thanks to David Trusty
- <david.trusty@westwave.com> for reporting this.
-
-Mon Aug 20 15:48:30 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * bin/msvc_auto_compile.pl:
-
- Modify script to print config.h contents.
-
-Mon Aug 20 13:14:00 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Fixed chdir commands for the auto_compile scripts.
-
-Mon Aug 20 14:33:31 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Message_Queue_T.cpp: If we timeout in the semaphore implementation
- of the message queue in wait_not_full_cond() or
- wait_not_empty_cond() make sure to decrement the "waiters" count
- accordingly! Thanks to Patrick Rabau <Patrick.Rabau@htc.com>
- for noticing this in the C++NPv1 book version!
-
-Mon Aug 20 07:01:31 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Synch_T.i (release): If owner_ == -1 then return
- -1. Thanks to Don Hinton <dhinton@swan.fr> for suggesting this.
-
-Mon Aug 20 13:18:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/SOCK.h: Corrected comment on ACE_SOCK ctor being protected,
- not private. Thanks to Don Hinton <dhinton@swan.fr> for
- pointing this out.
-
- * THANKS: Added Don Hinton to the Hall of Fame.
-
-Mon Aug 20 11:00:50 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/OS.h:
-
- Set the ACE_DEFAULT_FILE_PERMS to the correct value for VxWorks.
-
- * tests/run_test.lst:
-
- Removed tests for VxWorks for which the platform has no support.
-
- * tests/CDR_File_Test.cpp:
- * tests/Svc_Handler_Test.cpp:
-
- Add VxWorks to the list of platforms that can't unlink the file
- in advance of the test completing.
-
-Mon Aug 20 01:49:12 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/build_dll.bor:
- Build non-core DLLs into the common bin directory. This is necessary
- so that the tests can find all the DLLs they need on the path.
-
- * tests/run_test.pl:
- Removed the append of the ExeSubDir to the path, since it is no
- longer needed and never really worked properly anyway.
-
-Mon Aug 20 00:01:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/SOCK_Connector.h: Clarify the conditions under which errno
- will be ETIME (caller-specified timeout expires w/o connect)
- vs. ETIMEDOUT (protocol layer timed out the connect).
-
- * ace/SOCK_Connector.cpp: Add "|| errno == ETIME" to a couple
- places where an ACE_ERROR is _not_ done for certain conditions.
-
- * ace/ACE.cpp (handle_timed_complete): If the user-specified timeout
- expires before the connect is resolved one way or the other,
- set errno to ETIME, not ETIMEDOUT. This makes it match the
- documented behavior in the ACE_SOCK_Connector man page.
-
-Sun Aug 19 20:33:39 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- Update build list
-
-Sun Aug 19 15:36:23 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Add new 'Config' section at the end of the build, useful for the
- next generation scoreboard.
-
-Sun Aug 19 13:25:51 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/footprint_stats.sh:
- * bin/performance_stats.sh:
- * bin/generate_footprint_chart.sh:
- * bin/generate_performance_chart.sh:
- * html/Stats/Stats.css:
- * html/Stats/configuration.shtml:
- * html/Stats/detailed_footprint.shtml:
- * html/Stats/detailed_performance.shtml:
- * html/Stats/footer.html:
- * html/Stats/index.shtml:
- * html/Stats/navigation.html:
- Put the scripts and HTML documents used to generate the Stats
- pages under CVS control. Now it is easier for people to add
- their own libraries and tests, as well as let our user community
- examine the way the pages are generated.
-
- * bin/auto_run_tests.lst:
- Remove TAO/tests/LongUpcalls/run_ami_test.pl, the tests have
- been incorporated into the run_test.pl script.
-
- * bin/sandbox.cpp:
- Minor changes to the sandbox script, actually not very useful,
- the ACE classes to create processes start a new process group by
- default, therefore there is no simple way to kill all the
- subprocesses if a test fails.
-
-Sun Aug 19 08:17:14 2001 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: replaced function call in
- ASSERT with simple comparison of a variable value. Thanks
- to Tino Schwarze <tino.schwarze@informatik.tu-chemnitz.de>
- for suggesting this.
-
-Sat Aug 18 18:26:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Removed the ASYS_INLINE macro from the definition
- of write_n ().
-
-Sat Aug 18 13:18:10 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/ACE.{h,cpp}: Added a new write_n(...ACE_Message_Block *...)
- for file transfers that's the dual of
- send_n(...ACE_Message_Block *...). This helps out the C++NPv1
- book symmetry. Thanks to Alain Decamps <Alain.Decamps@PIDPA.be>
- for motivating this.
-
-Fri Aug 17 18:17:38 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * bin/clone.cpp: Only use extern char *sys_errlist[] if we're not
- compiling on Linux. Thanks to Thomas Groth
- <groth.th@stn-atlas.de> for reporting this.
-
-Fri Aug 17 19:04:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (ACE_Process_Options::pass_handle): For WinCE,
- just do ACE_NOTSUP_RETURN (-1). It can't dup a handle.
-
-Fri Aug 17 16:56:16 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
-
- Added wr_ptr() accessor method to ACE_InputCDR, and added its
- use to adjust(), align_read_ptr(), read_1(), skip_string() and
- skip_bytes() instead of end(). Also added reset of good_bit_
- to 0 upon failure in read_string() and read_wstring(). Thanks to
- Peter Phillips <pphillip@opentext.com> for reporting this bug,
- which was causing excessive memory allocation is some cases.
- [Bug 591, 944, 983]
-
-Fri Aug 17 13:31:45 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/run_test.pl:
-
- Added the ability to generate windsh commands to load and run
- the ace tests.
-
- * tests/Makefile:
-
- Added a rule to generate run_test.vxworks, using run_test.pl,
- which can be used to run the tests selected for the VxWorks OS.
-
- * tests/run_test.lst:
-
- Update this list to take into account the limitations of VxWorks.
-
- * tests/test_config.h:
-
- Change the permissions of the log file open (for VxWorks only) to
- use the symbolic permission names instead of 0x644. The
- permissions differ from the standard UNIX modes.
-
- * tests/run_tests.vxworks:
-
- This file was out of date and no longer needs to be maintained.
- So, it has been removed.
-
-Fri Aug 17 09:44:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Map_T.{h,i}: Reverted this change "Fri Aug 17 08:07:12 2001
- Johnny Willemsen <jwillemsen@remedy.nl>" as this was giving too
- much of warnings in the builds.
-
-Fri Aug 17 09:30:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * gperf/apps/tests/Makefile: Fixed the problem that was causing
- the builds to fail.
-
-Fri Aug 17 08:07:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Map_T.(h i): made the return value of
- ACE_Incremental_Key_Generator::current_value const T& instead
- of T&. Added uppercase traits to the ACE_Map class.
-
-Thu Aug 16 19:27:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (ACE_Process_Options::pass_handle): Add
- "::" to front of "DuplicateHandle" so the WinCE compiler
- sees the right function.
- Also added ctor/dtor for ACE_Managed_Process to try and fix the
- can't find vtable error on Linux.
-
- * ace/Process.h: Added a constructor for ACE_Managed_Process
- to fix "can't find vtable" error on Linux.
-
- * ace/Process.i: Moved ACE_Managed_Process dtor to .cpp file.
-
-Thu Aug 16 15:10:42 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.h (pass_handle): Clarify comments for this method.
-
- * ace/Process_Manager.cpp:
- * ace/Process.(h i): Moved the ACE_Managed_Process class out
- of Process_Manager.cpp, exposing it for general use.
-
-Thu Aug 16 10:34:20 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/POSIX_Proactor.cpp (allocate_aio_slot): Added a fix so that
- the POSIX Proactor compiles with FreeBSD 4.4. Thanks to Yev
- Omenzel <omenzel@yahoo.com> for reporting this and to Craig
- Rodrigues <crodrigu@bbn.com> for fixing it and to
- John E Hein <jhein@timing.com> for fixing the fix ;-)
-
-Thu Aug 16 08:09:53 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/run_test.lst:
-
- Added the OTHER requirement to the Thread_Pool_Reactor_Test and
- the Thread_Pool_Reactor_Resume_Test. These are only built if
- OTHER is part of the ACE components list.
-
-
-Wed Aug 15 15:50:38 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp: Don't try to purge the notifications if
- notify_handler_ is 0. Thanks to Edan Ayal
- <edanayal@hotmail.com> for reporting this.
-
-Wed Aug 15 11:33:26 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- Remove one build from the list, the machine is being retargeted
- for performance testing.
-
-Wed Aug 15 11:10:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Added $(VDIR) for
- OBJDIRS. This prevents hardcoding the value of OBJDIRS. This has
- been tested for a dynamic and a static library on Linux. If
- there are other platforms that gives problems, please feel free
- to revert the changes to the version 4.114 of the file.
-
-Wed Aug 15 09:35:19 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Dirent_Test.cpp:
-
- Added #define's for VXWORKS that allow this test to function
- properly. Avoid hard-coded relative paths that may not exist on
- VxWorks.
-
-Wed Aug 15 09:08:40 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Sock_Connect.cpp:
-
- Added an implementation to ACE_Sock_Connect::get_ip_interfaces().
- With this, the Enum_Interfaces_Test works correctly.
-
-Wed Aug 15 07:54:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Unravelled the mystery a
- bit. The patch that was applied to remove the hard coding of
- OBJDIRS seems to be the problem. The OBJDIRS has been hardcoded
- again. This should fix the problems that we have been seeing in
- the builds. If at all we need to remove hardcoding the OBJDIRS,
- we either need to put the value of VDIR or VSHDIR. If we put
- both we are going to end up with duplicate targets. Now the
- killer, what do we add to the OBJDIRS? Me thinks it is VDIR. I
- have test that out else I would be breaking builds again.
-
-Wed Aug 15 07:30:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Reverted the change "Tue
- Aug 14 21:42:24 2001 Balachandran Natarajan". Thought that was a
- typo. But looks like it is not.
-
-Wed Aug 15 06:39:50 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Process.cpp: Fixed a warning with g++.
-
-Tue Aug 14 23:57:42 2001 Steve Huston <shuston@riverace.com>
-
- * A set of changes to encapsulate passing handles to spawned
- processes. Thanks very much to Eamonn Saunders
- <Esaunders@softricity.com> for suggesting that this could work
- and pointing out the Win32 details!
-
- * THANKS: Added Eamonn Saunders to the Hall of Fame
-
- * ace/Handle_Set.h: Replace include ace/ACE.h with ace/OS.h. This
- class is part of the OS subset.
-
- * ace/Process.h: Added the following methods:
- - ACE_Process_Options::pass_handle (ACE_HANDLE). Cause the specified
- handle to be passed to a child process when it's spawned. Has
- meaning mainly for Win32. The handle value will be included
- in the spawned process's command line as +H <handle>. The passed
- handle value will be duplicated if on Win32 less than NT4.
-
- - ACE_Process_Options::dup_handles (ACE_Handle_Set set) const
- Get a copy of the handles the ACE_Process_Options duplicated
- for the spawned process.
-
- - ACE_Process_Options::passed_handles (ACE_Handle_Set set) const
- Get a copy of the handles passed to the spawned process. This
- will be the set of handles previously passed to pass_handle().
-
- - ACE_Process::close_dup_handles (). Close all the handles in
- the set obtained from ACE_Process_Options::dup_handles.
-
- - ACE_Process::close_passed_handles (). Close all the handles in
- the set obtained from ACE_Process_Options::passed_handles.
-
- Also moved the avoid_zombies() functions and flag out of the
- non-Win32 section - it can safely be ignored, maintain the
- intended semantics, and help apps stay portable.
-
- * Process.cpp: Implement the above new methods. Also, after spawning
- a process, the parent will call the above dup_handles/passed_handles
- methods to get any passed handles. The close_*_handles() methods
- can then close them. Also, the destructor will call close_dup_handles
- to be sure that no handles leak on Win32 less than NT4.
-
- * Process.i (command_line_buf ()): Added a new arg to receive the
- maximum length of the buffer pointed to on return. To maintain
- backward compatibility, the arg defaults to 0 (don't return
- the max length).
-
- * ace/Makefile: Moved Handle_Set from the UTILS group to the OS group.
-
- * ace/ace.icc: Moved Handle_Set from DEMUX to OS.
-
- * docs/ACE-subsets.html: Move Handle_Set from DEMUX to OS.
-
-Tue Aug 14 21:42:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Fixed a typo.
-
-Tue Aug 14 21:30:04 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Makefile: Removed JAWS2 and JAWS from the Makefile. There
- are several reasons for reverting. This breaks the builds. The
- Makefiles in the recursed directories are all messed up. The
- library dependencies doesnt seem trivial. Nobody may have time
- to fix this. Further, our daily builds return too quickly and we
- just needed more files to compile :-).
-
-Tue Aug 14 14:19:49 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Memory_Pool.i (ACE_Local_Memory_Pool dtor): Call release()
- here to free up the blocks allocated by the pool, else they're
- stranded and can't be freed.
-
- * ace/Memory_Pool.cpp (ACE_Local_Memory_Pool::release): After
- freeing up the blocks, reset the allocated_chunks_ set to be
- sure they are also freed, and the chunks can't be freed again.
-
-Tue Aug 14 14:19:37 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Applied the patches sent by Tibor Kiss
- <tkiss@mindmaker.hu> for ACE_Log_Msg::close ()
-
-Tue Aug 14 13:55:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/platform_macosx.GNU: Added a patch from John
- Michael Zorko <j.zorko@att.net>.
-
-Tue Aug 14 10:21:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.h: Clarified the defaults for the per-process and
- per-instance default priority masks.
-
-Mon Aug 13 14:01:35 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Fixed some hard-coded
- uses of .shobj and .obj. Thanks to Shashi Bhushan
- <Shashi.Bhushan@lmco.com> for contributing these.
-
- * ace/CDR_Stream.h: Added comments warning about the deletarious
- effects of not aligning buffers to ACE_InputCDR and
- ACE_OutputCDR properly. Thanks to Alain Decamps
- <Alain.Decamps@PIDPA.be> for reporting this.
-
-Sun Aug 12 14:46:07 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.cpp (sched_params): Make sure to set errno for Win32 so
- that callers can figure out what's going wrong in a consistent
- way.
-
- * ace/Select_Reactor_Base.i (purge_pending_notifications): Don't
- try to purge the notifications if notify_handler_ is 0. thanks
- to Steve Rahn <SRahn@rim.net> for reporting this.
-
-Mon Aug 13 20:09:04 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.19 released.
-
-Sun Aug 12 02:17:01 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Connector.cpp: On non-Win32 platforms, disable
- multithreaded MEM_IO if _ACE_USE_SV_SEM is defined.
-
-Sun Aug 12 01:27:51 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Log_Msg_Test.cpp: Correct const-ness of a pointer
- retrieved from ACE_Log_Record::msg_data().
-
-Sun Aug 12 00:34:42 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Record.h:
- * ace/Log_Record.i (msg_data()): Changed ACE_TCHAR *msg_data()
- to: const ACE_TCHAR *msg_data (void) const. Makes it safer,
- and conforms to all current usage inside ACE. Also makes
- C++ Network Programming examples simpler :-)
-
-Sat Aug 11 09:01:11 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Thread.h:
- * ace/Task.h: Added a list of other flags that can be passed to
- activate().
-
-Fri Aug 10 19:39:48 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Disabled the Blocking_Sync_None test from running under Tru64.
- Also changed the config parameter passed to the auto_compile
- script from TRU_64 to Tru64 in
- ~bugzilla/bin/auto_compile_tru64_cxx.
-
- This is so that the test is disabled only for the WashU builds.
- The reason being that Bala was not too happy with changing the
- default values for all the platforms and we also wanted to avoid
- more #ifdefs in the code. Other builds might have better values
- and the test might succeed. Have to confirm this though.
-
-Fri Aug 10 17:59:47 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Svc_Conf_y.cpp:
- * ace/OS.h: Added /**/ between #include and <sys/modem.h> and
- <alloca.h> to avoid warning from CE compiler.
-
- * ace/ace_dll.vcp: Added Svc_Conf_Lexer_Guard.* to the project.
-
-Fri Aug 10 13:40:46 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- I didn't realize the LIST definition was needed. I have
- added it for the Tru64 4.0f Compaq C++ 6.3-10 build.
-
-Fri Aug 10 11:45:03 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- Added the Tru64 4.0f Compaq C++ 6.3-10 build.
-
-Fri Aug 10 11:06:23 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * apps/drwho/CM_Client.cpp:
- * apps/drwho/CM_Server.cpp:
- * apps/drwho/server.cpp:
-
- Changes to avoid warnings on HP-UX with aCC.
-
-Thu Aug 9 16:56:05 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.i:
- * ace/Hash_Map_Manager_T.cpp: We seem to be re-inventing wheels
- again and again. A few months back we had a show stopper in a
- beta which was caused by usage of static cast. The cast was not
- to the liking of SunCC 4.2. Looks like we had to change a bunch
- of static cast sprayed in these two files to a C style cast as
- 4.2 doesnt like them. Compilers like Borland handle these
- better, but not 4.2.
-
-Thu Aug 9 11:51:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/platform_hpux_aCC.GNU: On popular mandate we
- have the -w flag removed from CCFLAGS in the above file. Looks
- like the -w disables lots of warnings that may be useful.
-
-Thu Aug 9 11:41:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.h (ACE_OutputCDR): Fixed the ambigous constructor
- problem. The InputCDR class had two constructors which were
- similar if the default values for the arguments were
- exercised. Thanks to Torbjorn Backstrom
- <torbjorn.k.backstrom@volvo.com> for reporting this.
-
-Thu Aug 9 12:31:21 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS_String.cpp (strtok_r_emulation): Make sure to check
- for a NULL return from strtok() before calling strlen()! Thanks
- to Boris Sukholitko <boriss@richfx.com> for reporting this.
-
-Wed Aug 08 21:27:50 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/nightlybuilds/builds.lst (Debian_Wchar, Debian_GCC_3.0):
-
- The host these nightly builds were built on is now called
- "rumba" (previously "valinor"). Updated the build list
- accordingly.
-
-Wed Aug 08 21:19:09 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_Test.UTF-16.conf:
-
- Removed extraneous characters from this file that were causing
- the Service Configurator's underlying lexer to "choke."
-
-Wed Aug 8 16:23:31 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Add the AMI_Buffering tests to the nightly regression testsuite.
-
-Wed Aug 8 16:07:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: The GIOP lite tests will not work in the
- static builds. It was adding more complications to the test
- than what is already there to get it working for the static
- builds.
-
-Wed Aug 8 14:06:36 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-tru64.h:
-
- Define ACE_HAS_NONSTATIC_OBJECT_MANAGER for all DEC Unix 4.x
- versions.
-
- * ace/config-cxx-common.h:
-
- Define ACE_AUTO_PTR_LACKS_RESET if __DECCXX_VER == 60190027.
- Thanks to Robert Burke <c-robert.burke@wcom.com> for reporting
- this.
-
- * include/makeinclude/platform_osf1_3.2.GNU:
- * include/makeinclude/platform_osf1_4.0.GNU:
- * include/makeinclude/platform_osf1_4.0_g++.GNU:
- * include/makeinclude/platform_osf1_4.0_kcc.GNU:
- * include/makeinclude/platform_osf1_4.0_rcc.GNU:
-
- Removed the following files.
-
- * include/makeinclude/platform_osf1_3.2_cxx.GNU:
- * include/makeinclude/platform_osf1_4.x_cxx.GNU:
- * include/makeinclude/platform_osf1_4.x_g++.GNU:
- * include/makeinclude/platform_osf1_4.x_kcc.GNU:
- * include/makeinclude/platform_osf1_4.x_rcc.GNU:
-
- Added new versions of the removed files.
-
- * include/makeinclude/platform_tru64_pre.GNU:
- * include/makeinclude/platform_tru64_post.GNU:
-
- Moved a lot of duplicated code into these new files.
-
- * include/makeinclude/platform_tru64_cxx.GNU:
- * include/makeinclude/platform_tru64_g++.GNU:
- * include/makeinclude/platform_tru64_kcc.GNU:
-
- Removed a lot of old *cruft* like setting up compilation with
- cxx when gcc was asked for etc. etc. Somebody went overboard
- with cut'n paste and copied David's changes blindly. Still not
- completely satisfied. But it works and is better than before.
- This also fixes Bug Id 989.
-
-Wed Aug 08 11:30:26 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_Test.cpp (run_test):
-
- Don't check if "ACE_USES_WCHAR == 1" since some configurations
- neglect to set it an integer value. Instead, just check if it
- is defined.
-
-Wed Aug 8 12:31:51 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp: Changed a ACE_DEBUG statment with an
- LM_WARNING to an LM_DEBUG.
-
-Wed Aug 08 11:59:45 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Do not redefine ACE_IOV_MAX if it has already been
- defined.
-
-Wed Aug 8 06:21:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Makefile: Moved Message_Block from STREAMS_FILES to
- UTILS_FILES.
-
- * ace/OS_Dirent.inl (closedir): Changed delete d->directory_name_ to
- delete [] d->directory_name_. Thanks to Olivier Brunet
- <obrunet@groupama-ccama.tm.fr> for reporting this.
-
-Tue Aug 7 21:59:42 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Svc_Handler_Test.cpp: Modified the test to dump the contents
- of the temporary file to the log file.
-
-Tue Aug 7 19:14:24 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/CDR_Stream.i:
- * ace/SOCK_Stream.h: Fixed incorrect comments.
- Thanks to Alain Decamps <Alain.Decamps@PIDPA.be> for reporting
- these.
-
-Tue Aug 7 15:19:38 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace: Changed all uses of IOV_MAX to use the new ACE_IOV_MAX.
- * ace/OS.h: Added a new ACE_IOV_MAX that makes it clear this is
- an ACE-level #define. We use this in C++NP v1.
-
-Tue Aug 7 14:16:57 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Svc_Handler.cpp: Reimplemented the flush() method to use
- the new send_n() method on the various ACE I/O classes.
-
- * ace/SOCK_Stream.{h,i}:
- * ace/FILE_IO.{h,i}: Added a new send_n() method that sends all
- the <message_block>s chained through their <next> and <cont>
- pointers using the underlying OS gather-write operation to
- reduce the domain-crossing penalty.
-
-Tue Aug 7 17:27:16 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Collection_test.cpp: Fixed a compile error with g++. This
- is a patch that Johnny Willemsen sent as a part of his last
- checkin.
-
-Tue Aug 07 11:25:36 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Made the following definition
- valid only for pre-4.2-RELEASE.
-
- #define ACE_LACKS_GETPGID
- #define ACE_LACKS_SETPGID
- #define ACE_LACKS_SETREGID
- #define ACE_LACKS_SETREUID
-
- Thanks to Robert Burke <rburke2002@yahoo.com> for reporting
- this.
-
-Tue Aug 07 16:40:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Hash_Map_Manager_T.*:
- Added const_iterator to the Hash_Map_Manager so that it is
- possible to iterate over a hash map in a const method
-
- The operator= of the iterator now check the value of this to
- check that the iterator instance is assigned to itself
-
- * tests/Hash_Map_Manager_Test.cpp
- Extended this test to test the new const_iterator capabilities
- of the hash map
-
- * ace/Unbounded_Set.cpp:
- Implemented missing operator* for the const iterator
-
- * tests/Collection_test.cpp:
- Extended test to test the operator* of the
- Unbounded_Set_Const_Iterator
-
-Mon Aug 6 19:58:48 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/config-hpux-11.00.h: Added #define for ACE_HAS_TERM_IOCTLS.
- Thanks to Torbjorn Backstrom <torbjorn.k.backstrom@volvo.com>
- for reporting this.
-
- * ace/OS.h: Added a #include for <sys/modem.h> for HP/UX. Thanks
- to Torbjorn Backstrom <torbjorn.k.backstrom@volvo.com> for
- reporting this.
-
-Mon Aug 6 12:51:35 2001 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Synch.h (ACE_Null_Mutex>): Fixed a cut&paste error
- where acquire_write() should be acquire_read(). Thanks to
- Russell Mora <rd.mora@router.econz.co.nz> for fixing this.
-
-Mon Aug 06 17:17:33 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Service_Config.cpp:
-
- Fixed some debugging messages that were not wrapped within an
- ACE_LIB_TEXT macro.
-
- * tests/Service_Config_Test.UTF-16.conf:
-
- Interim UTF-16 encoded version of the UTF-8 encoded
- Service_Config_Test.conf. It was generated on a little-endian
- host. Its current purpose is simply to keep our Unicode
- regression testing happy until the on-the-fly generation is
- implemented. Once we start generating this file on-the-fly
- this file should disappear.
-
- * tests/Service_Config_Test.cpp (run_test):
-
- When using full Unicode support, use the version of the Service
- Configurator file that is UTF-16 encoded (as described above).
-
-Mon Aug 06 11:10:24 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_l.cpp:
-
- More Unicode fixes. Flex's allocation function uses malloc() as
- its underlying allocator. Since it only accepts the size in
- bytes, allocate "size * sizeof (ACE_TCHAR)" when allocating
- string buffers. This should clear up some strange looking text
- "unknown character" messages emanating from the Service
- Configurator's underlying text scanner.
-
- Note that these changes do not fix the cause of the "unknown
- character." Those fixes should soon follow.
-
-Mon Aug 06 09:04:04 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.l:
-
- Unicode updates. Wrap debugging text within an ACE_LIB_TEXT
- macro.
-
-Sun Aug 5 14:31:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_tests.lst: Ossama suggested that we dont run the
- Service_Config_Test in static builds.
-
-Fri Aug 04 3:33:31 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/QoS/SOCK_Dgram_Mcast_QoS.h:
- * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp:
-
- Made the open method public so we can open UDP sockets for
- non-multicast addresses.
-
-Fri Aug 03 22:19:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.00.h: Added ACE_HAS_WCHAR to build in the
- wide char handling since Darrell so nicely straightened all
- the muck out throughout ACE. Thanks Darrell!
-
-Fri Aug 03 22:15:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): For 'W' and 'w' on HP-UX, the 'ls' and
- 'lc' forms are not allowed; HP-UX requires 'S' and 'C'.
-
-Fri Aug 3 13:10:59 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/config-linux-common.h (ACE_UINT64_FORMAT_SPECIFIER,
- ACE_SSIZE_T_FORMAT_SPECIFIER, ACE_SIZE_T_FORMAT_SPECIFIER):
-
- Removed unnecessary and some incorrect format specifiers for the
- 32-bit platform case. In particular, the format specifier for
- an unsigned 64-bit integer was incorrectly set to "%Lu." "%L"
- is the format specifier for a "long double," not a "long long"
- integer on 32-bit platforms. "%llu" is the correct format
- specifier which `ace/Basic_Types.h' already defines.
-
-Fri Aug 3 09:55:38 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added the new TAO "DLL_ORB" test to the list of tests to run.
-
-Fri Aug 3 08:26:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/RW_Process_Mutex.cpp: Added a missing comma in the
- constructor. This should fix Win32 compile errors.
-
-Fri Aug 3 08:07:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Base.cpp: Added a check for a memory allocation failure
- in grow (). Thanks to Francis Paul <FranciP@navcanada.ca> for
- pointing this out.
-
-Thu Aug 2 18:37:23 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/RW_Process_Mutex.cpp: Added ACE_DEFAULT_OPEN_PERMS
- to the constructor call to ACE_RW_Process_Mutex so that it does
- the right thing on Win32. Thanks to Wayne Erchak
- <werchak@stentor.com> for reporting this. This fixes
- bugid 996.
-
-Thu Aug 02 13:04:19 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace.icc: Added Intrusive_List.cpp to the TEMPLATE_FILES
- section.
-
-Thu Aug 02 06:59:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Basic_Types.h (ACE_SIZEOF_WCHAR): If ACE_HAS_XPG4_MULTIBYTE_CHAR
- is defined, use sizeof(wchar_t) to set ACE_SIZEOF_WCHAR.
-
-Wed Aug 1 16:05:49 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * Merged changes from the fix_886 branch
-
- Tue Jul 31 09:17:49 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Intrusive_List.h:
- * ace/Intrusive_List.inl:
- Add new methods to access the head and tail of the list.
-
- * ace/Intrusive_List.cpp:
- Fixed the implementation of remove(), if the element to be
- removed was the last on the list it wasn't removed at all.
- Left some code to check invariants, have to find a way to keep
- that code around with some optional compilation flags.
-
- Thu Jul 26 16:50:54 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/Intrusive_List.h:
- * ace/Intrusive_List.inl:
- * ace/Intrusive_List.cpp:
- Add new template to implement intrusive lists, i.e. lists that
- assume their elements implement the next() and prev() methods.
-
- * ace/Intrusive_List_Node.h:
- * ace/Intrusive_List_Node.inl:
- * ace/Intrusive_List_Node.cpp:
- Helper class to add the requirements of ACE_Intrusive_List to
- any other class, simply do:
- class Foo : public ACE_Intrusive_List_Node<Foo>
-
-Wed Aug 1 15:57:35 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Message_Block.cpp (release, release_i):
-
- Obtain the pointer to the allocator from the object that will be
- destroyed before calling ACE_DES_FREE on the object. Previously
- we were obtaining the allocator after the object was destroyed,
- due to the way the ACE_DES_FREE macro works. Thanks to Hyman
- Rosen <hyrosen@mail.com> for reporting the problem, and to
- Carlos for suggesting a fix. [Bug 992]
-
-Wed Aug 1 15:00:21 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Log_Record.{h,i}: Changed msg_data_len() from a "setter"
- to a "getter" method, which makes more sense. Thanks to Patrick
- Rabau <Patrick.Rabau@htc.com> for reporting this.
-
-Wed Aug 1 12:43:57 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_l.cpp:
-
- Reintegreated Nanbor's change (Wed Jun 13 10:22:10 2001 Nanbor
- Wang <nanbor@cs.wustl.edu>) that enables proper handling of
- UNICODE Service Configurator directives.
-
-Wed Aug 1 07:14:42 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: Checked in a new
- version of this file, which includes support for the Hitachi
- chip. Thanks to Frank Wolf for this.
-
- * ace/Log_Record.cpp (format_msg): Added a cast to fix a warning.
- Thanks to Bala for reporting this.
-
-Tue Jul 31 22:53:26 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/libService_Config_DLL.icc:
-
- New Visual Age project file for the libService_Config_DLL
- library.
-
- * tests/Makefile.am:
-
- Added build targets/dependencies for the libService_Config_DLL
- library.
-
-Tue Jul 31 22:46:33 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_DLL.dsp:
- * tests/Service_Config_Test.dsp:
-
- Removed the static library configurations. The
- Service_Config_Test currently requires dynamically loadable
- objects. Fixes Win32 "LIB" build failures.
-
-Tue Jul 31 22:10:48 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_Test.cpp (run_test):
-
- Wrap strings passed to ACE_ARGV::add() within an ACE_TEXT
- macro. Fixes Unicode conversion problems.
-
-Tue Jul 31 16:53:57 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.h (ace_yyrestart, ace_yy_delete_parse_buffer,
- ace_yydirective):
-
- Remove these global function and variable declarations. They
- are no longer used.
-
-Tue Jul 31 16:43:33 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Basic_Types.h:
-
- If "__LITTLE_ENDIAN__" is defined then assume that the
- architecture is little endian. Some compilers/platforms define
- that macro. Suggested by Frank Wolf" <fwolf@gum.de>.
-
- * ace/Svc_Conf.h (yy_push_buffer):
- * ace/Svc_Conf.l (yy_push_buffer):
- * ace/Svc_Conf_l.cpp (ace_yy_push_buffer):
- * ace/Svc_Conf_Lexer_Guard.cpp (ACE_Svc_Conf_Lexer_Guard):
- * ace/Svc_Conf_Lexer_Guard.h (ACE_Svc_Conf_Lexer_Guard):
-
- The Service Configurator directive is an "ACE_TCHAR *" not a
- "char *". Updated these method/function parameters to accept
- the former. Fixes a compile-time problem on "wchar/Unicode"
- builds.
-
-Tue Jul 31 05:34:48 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS.h: Removed a spurious WNOHANG definition. Thanks to
- Christina Junru <junruli@lucent.com> for reporting this.
-
-Mon Jul 30 15:31:42 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Log_Msg.{h,i,cpp}: Fixed this class so that all of its fields
- are ACE_UINT32 or ACE_INT32 internally so that it'll always be
- the same on all platforms. Thanks to Fabris
- <fabris65@my-deja.com> for reporting this.
-
-Tue Jul 31 10:22:38 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Makefile:
-
- Only build the Service_Config_Test if shared libraries are
- enabled, since it attempts to dynamically load a shared
- library.
-
-Tue Jul 31 10:16:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Dump.h: Clarified the use of ACE_NDEBUG for turning this
- feature off, not on. Thanks to Don Hinton <dhinton@swan.fr>
- for noticing this.
-
-Mon Jul 30 13:41:00 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_Time_Value::FILETIME_to_timval_skew): Updated
- docuementation to better explain the meaning of this constant.
- Thanks to Mike Vitalo <mvitalo@sprynet.com> for motivating the
- change.
-
-Mon Jul 30 09:43:06 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.i (mutex_lock): Missing an argument to the ACE_OSCALL macro.
- Thanks to Bala for reporting this.
-
-Mon Jul 30 05:43:23 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Synch.h (ACE_Semaphore): Corrected the comment on
- how to get POSIX Pthreads "implementation" of semaphores (which
- supports the timed acquire() option). Thanks to Grzegorz
- Sikora <GSikora1@era.pl> for reporting this.
-
-Sun Jul 29 19:03:56 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/Thread_Mutex_Test.cpp (test): Fixed this test to be
- consistent wrt the errno for the timed acquire(), which should
- now always be set to ETIME rather than ETIMEDOUT and EBUSY.
-
- * ace/Message_Queue_T.cpp (wait_not_full_cond,
- wait_not_empty_cond): Fixed a nasty bug with the semaphore
- version of ACE_Message_Queue that would have reared it's ugly
- head if ACE_NULL_SYNCH were used when
- ACE_HAS_OPTIMIZED_MESSAGE_QUEUE was enabled. Fixing this bug
- also triggered the following changes.
-
- * ace/OS.{h,i}: Added support for ACE_OS::sema_wait(),
- ACE_OS::mutex_lock(), ACE_OS::thread_mutex_lock() that take
- ACE_Time_Value *.
-
- * ace/OS.i: For some odd reason the timeouts for the timed version
- of mutex_lock() were returning a random smattering of errnos.
- I've changed them to all be consistent with the
- ACE_Condition_Thread_Mutex::wait() errno, which is ETIME.
-
- * ace/Synch.h: Updated the documentation of all the timed
- acquire() methods to explain what the various return values
- mean.
-
-Sun Jul 29 22:10:40 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_DLL.cpp:
- * tests/Service_Config_DLL.h:
- * tests/Service_Config_DLL.dsp:
- * tests/Service_Config_DLL_Export.h:
- * tests/Service_Config_Test.conf:
-
- New files associated with the existing Service_Config_Test.
- They are used when testing the reentrance/thread-safety of the
- Service Configurator, in addition to testing the Service
- Configurator's ability to handle nested processing of Service
- Configurator directives.
-
- * tests/Service_Config_Test.cpp (run_test):
-
- Add arguments to the Service Configurator argument vector to
- make it process the newly added `Service_Config_Test.conf'
- file.
-
- (main):
-
- Make the ACE_Thread_Manager wait for all running threads before
- exiting the test. Processing the `Service_Config_Test.conf'
- file causes some threads to be spawned.
-
-Sun Jul 29 19:19:20 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Service_Config.cpp (process_directive, process_directives):
-
- Wrap the ACE_GUARD_RETURN macro within an ACE_MT block. The
- ACE_Static_Object_Lock declaration is only visible if
- ACE_HAS_THREADS is defined. This truly fixes the
- single-threaded build problems.
-
-Sun Jul 29 19:06:11 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.y (ace_obstack):
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_l.cpp:
-
- UNICODE updates and fixes.
-
-Sun Jul 29 10:50:45 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_Lexer_Guard.cpp:
-
- There is no longer any need to include "ace/Object_Manager.h"
-
- * ace/Service_Config.cpp:
-
- Include "ace/Object_Manager.h" to pull in the definition of
- ACE_Static_Object_Lock. Fixes a problem found in Sun builds and
- single-threaded builds.
-
-Sat Jul 28 23:03:24 2001 Ossama Othman <ossama@uci.edu>
-
- The following are changes that make the Service Configurator
- reentrant and thread-safe.
-
- * ace/Svc_Conf.y:
-
- Generate a pure (reentrant) parser using Bison. BYACC doesn't
- support generation of reentrant parsers.
-
- * ace/Svc_Conf.l:
-
- Implemented "buffer stack" support. This feature makes it
- possible to process Service Configurator directives within a
- Service Object's init() method, i.e. support nested directive
- processing.
-
- (ace_yyerrno):
-
- Moved declaration of ace_yyerrno from this file to
- `Svc_Conf.y'. ace_yyerrno was not used in the generated
- scanner. It was only used in the generated parser.
-
- (yy_delete_parse_buffer):
-
- There is no longer any need for this function. The lexer buffer
- stack implementation handles memory management of lexer buffers.
-
- (yywrap):
-
- Do not call yy_delete_parse_buffer(). It is no longer necessary
- to do so, in addition to the fact that that function was
- removed (as described above).
-
- (<<EOF>>):
-
- Do not call ACE_YY_NEW_FILE in this rule. The new buffer stack
- implementation handles the buffer switching that ACE_YY_NEW_FILE
- did, and more.
-
- * ace/Svc_Conf_Tokens.h:
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
-
- Regenerated these files using updated Bison/YACC and FLEX input
- files to pull in support for reentrant parsing and nested
- processing of Service Configurator directives.
-
- * ace/Svc_Conf.h (ace_yy_push_buffer, ace_yy_pop_buffer):
-
- Added function prototypes for the newly implemented lexer buffer
- stack manipulation functions.
-
- (ace_yylex):
-
- Added ACE_YYSTYPE parameter to this functions signature, as
- required by the new reentrant parser support.
-
- (ACE_SERVICE_DIRECTIVE_STACK_DEPTH):
-
- New symbolic constant that defines the maximum supported depth
- for nested Service Configurator processing. The current default
- is 8.
-
- (ACE_YY_INPUT):
-
- No longer any need to redefine this macro to support scanning of
- Service Configurator directive strings. The new lexer buffer
- stack implementation provides support for lexer buffer scanning
- from a string instead of a pointer to "FILE."
-
- (ace_yydirective):
-
- This global variable is no longer needed due to the fact that
- the new buffer stack implementation handles directives read from
- both a string and a file.
-
- * ace/Service_Config.cpp:
-
- (process_directive, process_directives):
-
- Obtain a recursive lock before manipulating the lexer buffer
- stack, and invoking the parser and scanner. This makes
- invocation of the scanner thread-safe.
-
- The new lexer buffer stack implemenation obviates the need to
- call yyrestart() since buffer switching is handled by the stack
- implementation.
-
- (open_i, close):
-
- No need to deallocate the lexer buffer since the buffer stack
- implementation handles that.
-
- * ace/Svc_Conf_Lexer_Guard.h:
- * ace/Svc_Conf_Lexer_Guard.cpp:
-
- New "guard" class that makes lexer buffer stack pushing and
- popping exception-safe.
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/ace.icc:
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- Added Svc_Conf_Lexer_Guard.* sources to these Makefiles and
- project files.
-
-Sat Jul 28 14:58:30 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp: Reran BYACC and FLEX on the Svc_Conf.l and
- Svc_Conf.y files to regenerate them. Thanks to Bala for
- motivating this.
-
- * netsvcs/clients/Tokens/collection/Makefile,
- netsvcs/clients/Tokens/deadlock/Makefile,
- netsvcs/clients/Tokens/invariant/Makefile,
- netsvcs/clients/Tokens/mutex/Makefile,
- netsvcs/clients/Tokens/rw_lock/Makefile,
- examples/ASX/CCM_App/Makefile,
- examples/Logger/Acceptor-server/Makefile,
- examples/Reactor/Multicast/Makefile,
- examples/Reactor/Ntalker/Makefile,
- examples/Shared_Malloc/Makefile,
- performance-tests/TCP/Makefile,
- performance-tests/UDP/Makefile: Removed the line
- include $(ACE_ROOT)/include/makeinclude/rules.LIB.GNU
- so that these projects will build correctly on VxWorks with
- Make 3.79.1. Thanks to Frank Wolf for reporting this.
-
-Fri Jul 27 11:24:50 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Svc_Conf.y: Allow quoted strings as the pathname. Thanks
- to Kevin Burge <kcburge@systemware-inc.com> for suggesting this
- and providing the fix.
-
- * ace/Svc_Conf.l: Added support for "~" in pathnames to support
- Win32isms. Thanks to Kevin Burge <kcburge@systemware-inc.com>
- for suggesting this and providing the fix.
-
- * ace/Refcounted_Auto_Ptr.i (assign): Fixed the code to avoid a
- race condition. Thanks to Charlie Duke for this fix.
-
-Thu Jul 26 08:15:36 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: Changed
- $PATH to $(PATH). Thanks to Frank Wolf for reporting this.
-
-Wed Jul 25 17:46:58 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Asynch_Acceptor.{h,cpp}: Added an asynch_accept() accessor
- method. Thanks to Craig L. Ching <cching@mqsoftware.com> for
- reporting this.
-
-Wed Jul 25 17:36:09 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Refcounted_Auto_Ptr.i: Added a lock for the reference count
- to the assign() method. Thanks to Charlie Duke
- <cduke@cuseeme.com> for reporting this.
-
-Fri Jul 27 23:17:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace_wchar.h: If ACE_HAS_XPG4_MULTIBYTE_CHAR is set, then
- also set up definitions for functions that are not present
- (ACE_LACKS_ITOW, ACE_LACKS_WCSICMP, ACE_LACKS_WCSNICMP,
- ACE_LACKS_WCSDUP).
-
- * ace/ace_wchar.inl: If not ACE_WIN32, include <string.h> to see
- strlen().
-
- * ace/OS_String.inl (strstr): The XPG4 multibyte version of
- strstr() is wcswcs(), whereas the ANSI C / UNIX98 version is
- wcsstr(). So if ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, use
- wcswcs.
-
-Fri Jul 27 21:52:48 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the IDL_Cubut test with GIOP Lite
- script, to our daily builds.
-
-Fri Jul 27 16:50:49 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Log_Msg_Test.cpp: Silence a compile warning in g++.
-
-Fri Jul 27 12:18:49 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): Fixed compile error - missing "" around
- 's' for the %S case.
-
-Fri Jul 27 11:07:26 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/OS.h:
-
- After conversation with Steve Huston, I am reverting his change
- pertaining to HPUX from "Tue Jul 10 18:15:39 2001 Steve Huston
- <shuston@riverace.com>".
-
-Fri Jul 27 10:57:24 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/SOCK_Dgram_Bcast.cpp:
-
- Fix the ACE_SOCK_Dgram_Bcast::mk_broadcast() which was completely
- broken on AIX. The broadcast_client in docs/tutorials/008 now
- works with the help of this change.
-
-Thu Jul 26 22:09:19 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): Extend behavior so that all printf
- formatting conversion specifiers can be used with all legal
- ACE_Log_Msg format characters. This allows the caller to line
- up columns on any field, like line number or program name, or
- thread ID. Thanks to Paul Caffrey <pcaffrey@iel.ie> for
- motivating this extension.
-
- * tests/Log_Msg_Test.cpp: Added a new function, test_format_specs,
- that verifies the formatting. Right now it does not detect the
- correctness of the strings produced - they have to be examined
- in the log file to check. This needs to be fixed still.
-
-Thu Jul 26 11:48:16 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/count_lines:
- Add a few new file types.
-
-Wed Jul 25 23:49:43 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/platform_tru64_g++.GNU:
-
- Fixed some missing defines in the Makefile for DEC Unix versions
- 4.0D, 4.0E. We don't support or suggest this combination. Hence
- the oversight in missing the needed defines.
-
- Thanks to Martin Krumpolec <krumpo@pobox.sk> for reporting this.
-
-Wed Jul 25 23:49:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * include/makeinclude/wrapper_macros.GNU:
-
- Remove extraneous rapi = 0.
-
-Wed Jul 25 18:53:18 2001 Ossama Othman <ossama@uci.edu>
-
- * html/index.html:
-
- Added CORBA Security Service main page link to the list of
- documentation.
-
-Wed Jul 25 17:41:43 2001 Ossama Othman <ossama@uci.edu>
-
- * ltcf-c.sh:
- * ltcf-cxx.sh:
- * ltconfig:
-
- Removed these libtool related files. New versions of libtool
- (GNU libtool >= 1.4b) no longer use them.
-
- * config.guess:
- * config.sub:
- * ltmain.sh:
-
- Removed these files. We no longer need to keep custom copies
- lieing around since libtool 1.4b includes all of our local
- changes (i.e. our changes have been folded into the upstream
- libtool sources).
-
- * install-sh:
- * missing:
- * mkinstalldirs:
-
- Removed these files. Automake will automatically add these when
- necessary.
-
-Wed Jul 25 16:29:48 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Max_Default_Port_Test.cpp: ACE-ified the code and fixed
- a number of ACE_DEBUG %p directives without a corresponding
- string. Also, closed a 2 handle-per-try handle leak, which
- may have affected test results on some platforms.
- * tests/Max_Default_Port_Test.h: Added a destructor to the
- test class - it's used to close the acceptor handle down.
-
-Wed Jul 25 15:21:22 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/OS.h:
-
- Fixed the _XOPEN_SOURCE checking to _XOPEN_SOURCE < 500 to fix
- incorrect declaration of prototype. This fixes the warnings when
- compiling with gcc-3.0. Thanks to Ossama for suggesting the fix.
-
-Wed Jul 25 08:05:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Resume_Test.h:
- * tests/Thread_Pool_Reactor_Resume_Test.cpp: Fixed a subtle race
- condition. This hardly showed up in many of our daily
- builds. The race condition had to be fixed to show the users of
- the cautious approach that one needs to take if they are
- resuming the handle in the application itself.
-
-Tue Jul 24 16:41:57 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp :
- Added "&& ! defined (ACE_HAS_PACE)" ifdefs to already existing
- #if defined (VXWORKS) sections of code to get ACE_HAS_PACE to
- compile on VxWorks.
-
- * ace/OS.i :
- * ace/OS.cpp:
- Fixed formatting of some comments and added needed PACE
- calls for ACE_HAS_PACE on VxWorks.
-
- * ace/OS.h :
- Put #if !defined guards around the ACE_THR_PRI* macros
- so that we can define them in the config*.h files if
- they need to be corrected. For instance, ACE_THR_PRI_OTHER_MIN
- has a different value on SunOS 5.8 than it does on SunOS 5.7,
- i.e., -20 vs. 0 respectively.
-
- Also, added some needed typedefs and #define for ACE_HAS_PACE
- on VxWorks and updated some comments concerning ACE_OS::thr_create
- flags.
-
- * ace/Sched_Params.cpp (priority_min, priority_max):
- Changed to return correct thread priority min/max for
- Solaris threads. We now use the ACE_PRI_THR* macros
- for these values while still calling ACE_OS::priority_control
- for process and LWP priorities.
-
- * ace/config-sunos5.8.h:
- Added setting of ACE_THR_PRI_OTHER_MIN to be correct
- for SunOS 5.8.
-
-Tue Jul 24 13:47:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SSL/SSL_Asynch_Stream.h (ACE_SSL_Asynch_Stream):
- * ace/SSL/SSL_Asynch_Stream.cpp: Added a open () method that
- matches the signature of ACE_Service_Handler. This should fix
- the warnings in Borland builds that complain about hiding
- the virtual functions.
-
-Tue Jul 24 10:56:04 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/generate_doxygen.pl (TAO_DOCS):
-
- Added "tao_security" and "tao_ssliop" Doxygen configurations to
- the list of documentation to generate.
-
-Tue Jul 24 07:45:03 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Containers_T: Fixed some problems with the lack of
- const for the ACE_DLList and ACE_Double_Linked_List classes.
- Thanks to Michael Kircher for reporting this.
-
- * ace/config-cygwin32-common.h: Removed the ACE_LACKS_FORK
- macro since this is apparently working on Cygwin. Thanks tj
- Stefan Kluehspies <Stefan.Kluehspies@gmx.net> for reporting
- this.
-
- * ace/config-cygwin32.h: Removed the #define _CLOCKID_T
- macro, which should now be handled by the following change.
-
- * ace/OS.h: Added a #defined for _CLOCKID_T_. Thanks to
- Stefan Kluehspies <Stefan.Kluehspies@gmx.net> for
- reporting this.
-
-Tue Jul 24 11:10:59 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/OS.h:
-
- Fix the compile errors seen on gcc-3.0 with -pedantic and
- -Wno-long-long. This should fix all the errors.
-
-Tue Jul 24 10:07:31 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_sunos5_g++.GNU:
-
- Add an optimize override to 0 for g++ 3.0. The compiler breaks on
- a tremendous amount of files, even with -O.
-
-Tue Jul 24 10:04:52 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/INET_Addr.cpp:
-
- Corrected a run-time error on Tru64 with gcc. Any executable
- that called ACE_INET_Addr::get_host_name() would core dump.
- This was caused by the call to ACE_OS::gethostbyaddr_r().
-
-Tue Jul 24 08:20:02 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_aix_ibm.GNU:
-
- Change -O2 to -O. The optimizer seems to be a tiny
- bit broken, which is demonstrated by a few TAO and orbsvcs
- tests.
-
-Mon Jul 23 17:38:46 2001 Ossama Othman <ossama@uci.edu>
-
- * etc/tao_security.doxygen:
- * etc/tao_ssliop.doxygen:
-
- New Doxygen files for TAO's CORBA security libraries.
-
-Mon Jul 23 13:48:26 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/MEM_Connector.cpp (connect):
-
- Disable non-blocking on the stream after its handle has been
- set. Previously, non-blocking was disabled on an uninitialized
- MEM_Stream, after which the handle was set (i.e. initializing
- the stream). In order to properly disable non-blocking on a
- stream, its handle must be set first since ioctl() operations
- are typically performed on the underlying stream handle.
-
-Mon Jul 23 13:06:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/WFMO_Reactor.cpp (event_handling): Corrected the loop check
- to account for a zero ACE_Time_Value *, avoiding a crash in
- tests/Reactor_Timer_Test, as well as any other program that
- called ACE_Reactor::handle_events with a zero timer pointer.
-
-Mon Jul 23 10:39:55 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Added /**/ between #include and <sys/times.h> to
- avoid warning from CE compiler.
-
- * ace/ace_dll.vcp: Added Obchunk.cpp to the project.
-
-Sun Jul 22 08:19:43 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-cygwin32.h: ADded a #define for_CLOCKID_T. Thanks to
- Christophe Galerne <christophgalerne@earthlink.net> for
- reporting this.
-
- * ace/Log_Record.cpp (priority_names_): Added commas after the
- 'ACE_LIB_TEXT ("LM_UNK(04000)")' lines. Thanks to Steve Harris
- <harris_s@ociweb.com> for reporting this.
-
-Sat Jul 21 19:56:08 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Map_T.{h,i}: Made current_value() a const member function.
- Thanks to Johnny Willemsen for reporting this.
-
-Fri Jul 20 10:16:46 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Connector.cpp (create_AST): Replaced some calls to
- sh->get_handle () with a cached value of handle. This fixes a
- bug with gcc 2.96 on Tornado 2.1/VxWorks for SuperH. Thanks to
- Frank Wolf <fwolf@gum.de> for reporting this.
-
- * examples/Connection/non_blocking/CPP-acceptor.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
- * examples/Connection/non_blocking/CPP-connector.cpp: Changed the
- SH macro to SVH to avoid clashes with a macro in VxWorks.
- Thanks to Frank Wolf <fwolf@gum.de> for reporting this.
-
-Thu Jul 19 06:55:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-g++-common.h: Version 2.96 of g++ on VxWorks
- is missing auto_ptr, so let's add the ACE_LACK_AUTO_PTR flag
- there. Thanks to Frank Wolf for suggesting this.
-
-Fri Jul 20 09:47:38 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Fixed WinCE errors. CE does not support
- UNIX_Syslog.
-
-Thu Jul 19 22:39:32 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp:
- * ace/MEM_IO.h:
- * ace/MEM_IO.i:
- * ace/MEM_IO.cpp: On non-Win32 platforms, disable multithreaded
- MEM_IO if _ACE_USE_SV_SEM is defined.
-
-Thu Jul 19 15:25:11 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * ace/MEM_Acceptor.i (mmap_prefix):
-
- Fix case where a null pointer is passed in.
-
-Thu Jul 19 06:55:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Connector.cpp (connect_svc_handler): Missed one change...
- Thanks to Bala for reporting this!
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU (HOST_DIR): Added
- support for the SH7700 and SH7700LE. Thanks to Frank Wolf
- <WolfF@Becker.de> for reporting this.
-
- * ace/OS.i (truncate): Make sure to close the handle that we
- opens. Thanks to Lothar for reporting this.
-
- * ace/Connector.cpp: Changed the SH macro to SVH to avoid clashes
- with a macro in VxWorks. Thanks to Frank Wolf <fwolf@gum.de>
- for reporting this.
-
-Wed Jul 18 13:15:06 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS_Dirent.cpp (scandir_emulation): Removed the calls to the
- ACE_ERROR_RETURN macros to avoid dependencies on ACE_Log_Msg
- from within the ACE_OS layer. Thanks to Bala for pointing this
- out!
-
- * ace/ACE.{h,cpp}: Added a new wrapper method for ACE_OS::select()
- that uses ACE_Handle_Set *'s rather than fd_set *'s. This is
- motivated by work Steve Huston and I are doing on our new book
- "C++ Network Programming: Resolving Complexity with ACE and
- Patterns."
-
- * ace/Malloc_T.i (release): Removed an unnecessary "else" to
- make gcc 2.96 happy. Thanks to Frank Wolf <fwolf@gum.de> for
- reporting this.
-
- * Happy birthday to me and Angelo Corsaro!
-
-Tue Jul 17 00:34:40 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SString.h (ACE_Tokenizer): Make sure that the data members
- are protected, not private... Thanks to Martin Krumpolec for
- reporting this (again)!
-
-Wed Jul 18 16:40:56 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (program_name): Undid the following changes:
-
- ChangeLogTag:Tue Jul 10 11:32:26 2001 Tibor Kiss
-
- Tibor will be looking into this further since this change
- currently causes shutdown problems on Win2000.
-
-Wed Jul 18 15:59:03 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-tru64.h:
-
- Removed _LIBC_POLLUTION_H. It seems that this macro is causing
- problems for some users. Thanks to Pierre Oberson
- <oberson@nagra-kudelski.ch> for prompting this fix.
-
-Tue Jul 17 13:00:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_test.lst: Enabled the MEM_Stream test on Linux.
-
-Mon Jul 16 14:59:32 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Memory_Pool.h (ACE_Shared_Memory_Pool): Added a comment
- that discourages developer from using the ACE_Shared_Memory_Pool
- and points them to the ACE_MMAP_Memory_Pool instead. Thanks to
- Johnny Chen <jchen@huawei.com> for motivating this.
-
- * ace/OS_Dirent.cpp (readdir_emulation): Fixed a handle leak
- in the event that errors occur. Thanks to Kevin Burge
- <kcburge@systemware-inc.com> for reporting this.
-
- * ace/Log_Msg_UNIX_Syslog.cpp (open): Add an ACE_const_cast()
- to the program name for platforms like LynxOS whose openlog()
- method is char * rather than const char *. Thanks to Bala for
- reporting this.
-
-Sun Jul 15 11:06:33 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Log_Msg_NT_Event_Log.cpp: Fixed the implementation so that
- it's consistent with the new program_name() features. Thanks to
- Chris Kohloff <chris@kohlhoff.com> for this fix.
-
-Sun Jul 15 11:04:26 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/SSL/ACE_SSL.dsp:
- Removed references to $OPENSSL_ROOT, the user should configure
- those in the Tools -> Option -> Directories tab.
-
-Fri Jul 13 23:02:46 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_Stream.h:
- * ace/SSL/SSL_Asynch_Stream.cpp:
- * ace/SSL/SSL_Asynch_BIO.h:
- * ace/SSL/SSL_Asynch_BIO.cpp:
-
- Only support asynchronous SSL streams when using OpenSSL >
- 0.9.5a. The BIO method signatures changed in OpenSSL 0.9.6.
-
-Fri Jul 13 22:48:56 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_BIO.cpp (methods_ACE):
-
- Removed excess element in aggregate initializer.
-
-Fri Jul 13 22:29:01 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_Stream.cpp (print_error):
-
- The OpenSSL ERR_error_string_n() function is only supported in
- OpenSSL 0.9.6 or better.
-
-Fri Jul 13 14:59:18 2001 Alexander Libman <alexander.libman@baltimore.com>
-
- * ace/WIN32_Asynch_IO.h (ACE_WIN32_Asynch_Result):
- * ace/WIN32_Asynch_IO.cpp (set_error, set_bytes_transferred):
-
- Added new methods set_error() and set_bytes_transferred().
- Needed for below changes and new asynchronous SSL stream
- implementation.
-
- * ace/WIN32_Proactor.cpp (handle_events):
-
- Fixed error handling semantics so that it is consistent with the
- POSIX Proactor error handling semantics.
-
- (post_completion):
-
- Pass the amount of bytes transferred and the completion key to
- the Win32 PostQueuedCompletionStatus() function. The error, if
- any, will later be extracted in the handle_events() method.
-
-Fri Jul 13 15:59:45 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * netsvcs/servers/main.cpp (main): The server was always outputing
- LM_DEBUG information, even when the program was not run with the
- -d command line argument. Therefore, changed the following
- lines from:
-
- if (ACE::debug () == 0)
- ACE_Log_Msg::disable_debug_messages ();
-
- to:
-
- if (ACE::debug () == 0)
- ACE_LOG_MSG->priority_mask (~LM_DEBUG, ACE_Log_Msg::PROCESS);
-
- Thanks to Jerry D. De Master <jdemaster@rite-solutions.com> for
- reporting this fix.
-
-Fri Jul 13 12:16:03 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_BIO.h:
- * ace/SSL/SSL_Asynch_BIO.cpp:
- * ace/SSL/SSL_Asynch_Stream.h:
- * ace/SSL/SSL_Asynch_Stream.cpp:
-
- New asynchrounous SSL stream implementation contributed by
- Alexander Libman <alexander.libman@baltimore.com>.
-
- * ace/SSL/ACE_SSL.dsp:
- * ace/SSL/Makefile:
- * ace/SSL/Makefile.bor:
-
- Added new asynchronous SSL stream source files to these
- Makefiles and project files.
-
-Fri Jul 13 09:40:08 2001 Jerry D. De Master <jdemaster@rite-solutions.com>
-
- * ace/Log_Msg.*,
- ace/Logging_Strategy.*,
- ace/Log_Msg_UNIX_Syslog.*:
- Applied patches to ACE_Log_Msg, ACE_Logging_Strategy, and
- ACE_Log_Msg_UNIX_Syslog that are required to add the program
- name logging strategy option ('n') and to initialize the UNIX
- syslog facility with the program name. Also included are Boris
- Kolpackov <bosk@ipmce.ru> patches for ACE_LACKS_IOSTREAM_TOTALLY
- to ACE_Logging_Strategy.
-
-Thu Jul 12 19:54:27 2001 Ossama Othman <ossama@uci.edu>
-
- * examples/Registry/test_registry_update.cpp (main):
-
- Fixed unused argument warning.
-
-Thu Jul 12 19:57:12 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added TAO/tests/RTCORBA/ORB_init to the auto run list.
-
-Thu Jul 12 17:11:35 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB):
-
- Temporarily removed the IA-64 build till some issues get sorted
- out.
-
-Thu Jul 12 06:01:03 2001 John Michael Zorko <j.zorko@att.net>
-
- * netsvcs/lib/Server_Logging_Handler.cpp:
- Added an an additional #define in config-macosx.h called
- ACE_HAS_MACOSX_DYLIB, and checked to see if this was _not_
- defined before instantiating the offending template in
- Server_Logging_Handler.cpp. OS X has this thing about .dylibs
- (OS X version of .so) where they can't have any duplicate
- symbols, which is why libnetsvcs wasn't building on OS X
- earlier. This fixes that.
-
- * include/makeincludes/platform-macosx.GNU: Added -lACE to the
- LIBS line, which fixed the majority of the build problems.
-
- * ace/config-macosx.h: Added the ACE_HAS_MACOSX_DYLIB #define
- mentioned above.
-
-Thu Jul 12 06:01:03 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/TLI_Connector.cpp (complete): Changed ACE_OS::t_rcvconnect()
- to simply t_rcvconnect(). Thansk to Andreas Geisler for
- reporting this.
-
-Thu Jul 12 09:43:36 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/FILE_Connector.h (ACE_FILE_Connector, connect):
-
- Removed the default O_EXCL flag I added a few days ago. It is
- mostly useful for preventing symbolic link attacks in a
- directory with global write permissions. Pass the
- responsibility of using the O_EXCL flag when necessary on to the
- application developer.
-
-Wed Jul 11 22:31:50 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU (clean.local):
-
- Added ti_files to remove the template cache generated by KCC.
-
- * ace/TLI_Acceptor.cpp(open_new_endpoint):
-
- Fixed a small typo causing compilation errors under Tru64.
-
-Wed Jul 11 13:06:33 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Log_Msg_Test.cpp: Changed the ostream test to close the
- under-test ostream file before trying to open it and read the
- contents. Avoids the "already open" error now that
- ACE_FILE_Connector includes O_EXCL by default, and avoids any
- potential file buffering issues reading an already-open file.
-
-Wed Jul 11 08:31:02 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/Dirent_Test.cpp:
-
- Wrapped a string literal with ACE_TEXT, to get rid of a Win2000
- WChar build error.
-
-Wed Jul 11 06:41:43 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/TLI_Stream.cpp,
- * ace/TLI_Connector.cpp,
- * ace/TLI_Acceptor.cpp: Added enhancements so that the code would
- work on Win32. Thanks to Andreas Geisler
- <Andreas.Geisler@erl9.siemens.de> for reporting this.
-
-Tue Jul 10 19:26:15 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/ace_dll.dsp:
-
- Disabled generation of source browse information. It was
- causing problems on some existing builds that didn't use it.
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- Removed certificate verification code. It is up to the
- application, not the ACE_SSL library, to perform proper
- certificate verification.
-
-Tue Jul 10 23:02:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tests/Log_Msg_Test.cpp:
- Fix test so it doesn't open output file to write to twice.
- Thanks to Ossama for finding it.
-
-Tue Jul 10 19:10:19 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace.icc: Corrected the mis-applied patch for ace.icc in
- Mon Jul 09 19:12:42 2001 Steve Huston <shuston@riverace.com>
-
-Tue Jul 10 16:01:52 2001 Ossama Othman <ossama@uci.edu>
-
- * THANKS:
-
- Added Sangeetha Ramadurai <Sangeetha.Ramadurai@geind.ge.com> to
- the hall of fame.
-
-Tue Jul 10 18:15:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/WFMO_Reactor.cpp (event_handling): Move the logic for
- noticing that the wait timed out, but did not expire any
- timers, into this function. Will remove it from Reactor.cpp,
- to properly move the fix into handle_events() rather than
- needing to call run_reactor_event_loop to get it right.
- * ace/Select_Reactor_T.cpp - still need to add similar logic here.
-
- * ace/config-sunos5.6.h: Re the following:
- Mon Jul 2 15:26:32 2001 Nanbor Wang <nanbor@cs.wustl.edu>
- Replaced ACE_HAS_POSIX_SEM, and left ACE_LACKS_NAMED_POSIX_SEM out.
- Solaris does indeed have POSIX semaphores in 2.6 and later, but
- requires the changes to OS.i below to work right.
-
- * ace/OS.h: For ACE_PROC_PRI_OTHER_MIN (and MAX), on HP-UX,
- convert the HP-UX priority value to the POSIX range.
-
- * ace/OS.i (ACE_OS::sema_init, named POSIX semaphore): On Solaris
- and HP-UX, the name of a POSIX semaphore needs to start with
- a slash (further restricted on Solaris). Enforce that here by
- prepending a slash, or by chopping off parts of the name.
-
-Tue Jul 10 16:08:04 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU:
-
- Fixed the default flags so that it enables the user to override
- settings. Now that the long pending fix to wrapper_macros.GNU is
- through, this should work fine now.
-
-Tue Jul 10 13:37:31 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/OS_Dirent.cpp (readdir_emulation):
-
- Removed the hard cast to char* of one of the two arguments in
- a call to strcpy. In the WChar win32 build, this cast was
- causing the source and target strings to be of different widths.
-
-Tue Jul 10 11:32:26 2001 Tibor Kiss <tkiss@mindmaker.hu>
-
- * ace/Log_Msg.cpp:
- Completed the ACE_Log_Msg::close method with the
- ACE_Thread::keyfree (log_msg_tss_key_) and key_created_ = 0; to
- ensure restartability by multiple successive ACE::init and
- ACE::fini calls. This fix prevent leaks from occurring when
- ACE::init() and ACE::fini() are called multiple times.
-
-Tue Jul 10 11:12:00 2001 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/OS_Dirent.{h, inl}: refactored XDIR, dirent usage for pSOS -
- user is no longer responsible for buffer deallocation after each
- readdir call, only for passing the pointer returned from opendir
- into closedir when all done. ACE_DIR structure is now used
- consistently for all pSOS dirent calls.
-
-Tue Jul 10 06:06:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Service_Repository.h: Updated the insert() comment to
- clarify the return values. Thanks to Johnny Willemsen for
- suggesting this.
-
- * ace/Service_Repository.{h,i}: Made the current_size() and
- total_size() methods const. Thanks to Johnny Willemsen for
- suggesting this.
-
- * ace/Service_Repository.h: Fixed a typo in the comments. Thanks
- to Johnny Willemsen for reporting this.
-
-Tue Jul 10 08:39:04 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-vxworks5.x.h:
-
- Added the macro ACE_LACKS_UNIX_SYSLOG.
-
-Tue Jul 10 08:26:57 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Log_Msg_UNIX_Syslog.cpp:
-
- Added a macro, ACE_LACKS_SETLOGMASK, for platforms that have
- syslog, but don't have setlogmask().
-
- * ace/config-chorus.h:
-
- ChorusOS 4.0.1 happens to be one of them.
-
-Tue Jul 10 09:00:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/OS_Dirent.h
- Made the member 'd_name' of the 'dirent' struct non-const, because
- BCB had problems with it
-
-Mon Jul 09 22:41:43 2001 Ossama Othman <ossama@uci.edu>
-
- * include/makeinclude/wrapper_macros.GNU (exceptions):
-
- Include platform_macros.GNU before the default for "exceptions"
- is set. This fixes a problem where the default native
- exceptions setting in platform_linux.GNU was not set due to the
- fact that it was previously set in wrapper_macros.GNU. Thanks
- to Hans Utz <hans.utz@informatik.uni-ulm.de> for tracking down
- the problem.
-
-Mon Jul 9 16:40:02 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Dirent_Selector.cpp (ACE_Dirent_Selector):
-
- Correct order of initialization of members to match order of
- declaration. Fixes a warning issued from GCC.
-
- * ace/Dirent_Selector.inl:
-
- Added missing RCS ID keyword. Fuzz was whining about the lack
- of it.
-
- * ace/Dirent_Selector.h:
-
- Corrected some Doxygen comments.
-
-Mon Jul 09 19:12:42 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace.icc: Added Log_Msg_UNIX_Syslog and Log_Msg_NT_Event_Log
- modules to the LOGGING component. Added Dirent_Selector to the
- UTILS component.
-
-Mon Jul 9 15:59:56 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/config-lynxos.h:
- Added ACE_LACKS_MKSTEMP since LynxOS doesn't seem to have
- this.
-
-Mon Jul 9 15:28:29 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Dirent_Selector.cpp:
- * ace/Dirent_Selector.h:
-
- Added ACE_INLINE guards around inclusion of Dirent_Selector.inl.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- Added Dirent_Selector.{h,i,cpp} to these projects.
-
-Mon Jul 9 06:52:09 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Makefile.bor (OBJFILES): Added the Dirent_Selector.obj file.
-
- * tests/Dirent_Test.cpp: Integrated a new test for the
- ACE_Dirent_Selector class.
-
- * ace/Makefile (UTILS_FILES),
- * ace/Dirent_Selector.h,
- * ace/Dirent_Selector.inl,
- * ace/Dirent_Selector.cpp: Added support for a C++ wrapper facade that
- encapsulates ACE_OS_Dirent::scandir(). Thanks to Rich Newman for
- contributing this, as well.
-
- * ace/OS_Dirent.h,
- * ace/OS_Dirent.inl,
- * ace/OS_Dirent.cpp: Added support for the scandir() feature, which
- makes it possible to selectively pick which files in a directory
- to iterate over. Also fixed a bug in the emulation of dirent.
- Thanks to Rich Newman <RNewman@directv.com> for contributing
- these fixes.
-
-Mon Jul 09 14:39:50 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (thr_getprio and thr_setprio): Changed these two
- function such that if we are on Solaris and we have pthreads
- enabled, we should use the pthread calls rather than the native
- Solaris calls. The reasons for choosing the pthread calls is
- due to following problems with the native calls:
-
- - thr_getprio() is evil because on Solaris 5.8, a thread with
- priority -20 (SCHED_OTHER) is reported to have priority 80.
-
- - thr_setprio() is evil because it cannot set the negative
- priorities on Solaris 5.8.
-
- - Also, thr_setprio() cannot change the priority of a thread
- with negative priority to a positive priority on Solaris 5.8
- (even though there is no error reported and thr_getprio() shows
- that the change happened but pthread_getschedparam() shows that
- no change happened).
-
- - In addition, suppose a thread of policy SCHED_RR or SCHED_FIFO
- uses thr_setprio() to reset its priority, the priority will be
- reset but the scheduling policy will be dropped to SCHED_OTHER.
- This happens with both Solaris 5.7 and Solaris 5.8.
-
-Mon Jul 9 13:33:43 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
- Change PACE path to start at $PACE_ROOT rather than $ACE_ROOT/PACE
- since the latter is not as flexible. Defined PACE_ROOT if not
- already defined. Also, added inclusion of PACE library for VxWorks
- even when inlining since not all the PACE functions should be
- inlined.
-
-Mon Jul 09 10:59:22 2001 Ossama Othman <ossama@uci.edu>
-
- * THANKS:
-
- Added Mouna Seri <seri@crhc.uiuc.edu> to the hall of fame.
-
-Mon Jul 9 11:10:44 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/config-win32-msvc-5.h:
- * ace/config-win32-msvc-6.h:
-
- Added conditional definitions for ACE_LD_DECORATOR_STR
- "mfc" and "mfcd" so that the MFC release and debug versions
- of libraries can be dynamically loaded in the same way that
- the non-MFC release and debug versions are. Thanks to
- Francois Bernier <fbernier@gel.ulaval.ca> for suggesting
- this enhancement.
-
-Mon Jul 09 11:31:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/pre.h
- * include/makeinclude/compiler.bor
-
- Removed the disabling of the compiler warning 'parameter never
- used'. Unused parameters are handled by ACE_UNUSED_ARG macro.
- A missing ACE_UNUSED_ARG is now shown as warning in the BCB build
- log.
-
-Sun Jul 08 11:26:23 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h (mkstemp):
- * ace/OS.i (mkstemp):
-
- New mkstemp() wrapper. It is assumed to be available on the
- given platform, unless ACE_LACKS_MKSTEMP is defined.
-
- * ace/FILE_Connector.h:
-
- Added O_EXCL to the default flags. This is a security hole
- fix.
-
- * ace/FILE_Connector.cpp (connect):
-
- If mkstemp() is available, then use it to create a temporary
- file rather than mktemp() (via ACE_FILE_Addr) since mktemp() is
- susceptible to a denial-of-service attack.
-
- * ace/config-win32-common.h:
- * ace/config-vxworks5.x.h:
-
- mkstemp() is not supported on MS Windows and VxWorks. Define
- ACE_LACKS_MKSTEMP in these headers.
-
-Sun Jul 8 08:13:12 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Select_Reactor_Base.h: Added a comment explaining what
- the ACE_HAS_REACTOR_NOTIFICATION_QUEUE macro means. Thanks to
- Kobi Cohen-Arazi <kobic@bvr.co.il> for motivating this.
-
-Sat Jul 7 18:53:49 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU:
-
- Revert the changes made to this file. Please see the file for a
- lengthy description.
-
-Fri Jul 06 21:53:26 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/config-win32-borland.h:
- Reverted addition of ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION.
-
-Fri Jul 6 19:55:23 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * examples/Reactor/Multicast: Adding the support for UNIX Syslog
- broke this example because LOG_DEBUG was suddenly defined as a
- macro (it's in syslog.h). I've fixed this by renaming the LOG_
- enums to LM_ instead. Thanks to Bala for reporting this.
-
-Fri Jul 06 20:23:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Refcoutned_Auto_Ptr.i (null): Change const_cast<> to
- ACE_const_cast() to build on older compilers, like IBM C/C++ 3.6.6.
-
-Fri Jul 06 20:13:29 2001 Steve Huston <shuston@riverace.com>
-
- * netsvcs/lib/Name_Handler.cpp:
- * netsvcs/lib/Server_Logging_Handler_T.cpp:
- * netsvcs/lib/Token_Handler.cpp:
-
- More ACE_DEBUG disables.
-
-Fri Jul 6 15:55:54 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h (ACE_FD_SETSIZE):
-
- Integrated patch from Jody Hagins <jody@atdesk.com>. Set the
- default reactor file descriptor set size to be an integer
- constant rather than a preprocessor constant. Some third party
- software #undef FD_SETSIZE in their header files, causing build
- problems in ACE.
-
-Fri Jul 06 18:20:39 2001 Steve Huston <shuston@riverace.com>
-
- * netsvcs/lib/Client_Logging_Handler.cpp: #if 0'd out a bunch of
- ACE_DEBUG statements that aren't appropriate for use in commercial
- logging. These can be #if 1'd if there's some doubt while debugging
- this stuff, but they aren't useful once debugged, and are
- distracting since they're interespersed with application records.
-
-Fri Jul 6 13:40:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg_UNIX_Syslog.cpp: Fixed a warning in g++.
-
-Fri Jul 06 11:39:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/INET_Addr.h: Clarified (and improved doxygenation) of
- constructor and set() methods regarding byte orders.
-
- * tests/Max_Default_Port_Test.icc: New file for this test.
- * tests/tests.icp: Added Max_Default_Port_Test
-
-Fri Jul 6 08:36:20 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * netsvcs/Makefile: Don't build this if ACE_COMPONENTS does not
- contain Other. The netsvcs library requires Naming_Context.
-
-Fri Jul 6 05:44:13 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Makefile (LOGGING_FILES): Added support for
- Log_Msg_UNIX_Syslog.
-
- * ace/Log_Msg_UNIX_Syslog.{h,cpp}:
- * ace/Log_Msg.cpp,
- * ace/OS.h: Added support for a new UNIX syslog backend for the
- ACE_Log_Msg class. Thanks to Jerry D. De Master
- <jdemaster@rite-solutions.com> and Robert Davidson
- <robert@rdavidson.freeserve.co.uk>.
-
- * ace/SOCK_Dgram.h: Fixed a typo in one of the send() method
- comments. Thanks to Alain Decamps <Alain.Decamps@PIDPA.be> for
- reporting this.
-
- * ace/config-macosx.h: Added a new file courtesy of John
- Zorko so that things will work on MacOSX.
-
-Thu Jul 5 23:22:21 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- Fixes that were required for fixing bug 575. Merged in from
- branch bug_575_stage_2.
-
-Thu Jul 5 23:09:29 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (ACE_InputCDR): Fixed a long standing bug in
- the branch. This caused the DSI_Gateway test to fail. The
- problem was from setting the write pointer to a wrong position
- during the construction.
-
-Thu Jul 5 14:39:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Merged with the main trunk and moved it to a new branch by name
- bug_575_stage_2.
-
-Thu Jun 28 15:25:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor.h (ACE_Reactor):
- * ace/Reactor.cpp: Added a new method resumable_handler () to the
- reactor interface. This would indicate whether the application
- can take advantage by resuming the handlers themselves or
- not. Not all reactors can allow this feature.
-
- * ace/Reactor_Impl.h:
- * ace/Reactor_Impl.cpp: Added a pure virtual function so that all
- the implementations can decide whether the handlers are
- resumable or not.
-
- * ace/Select_Reactor_Base.h:
- * ace/Select_Reactor_Base.cpp:
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp:
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp:Implemented resumable_handlers ().
-
-Sun Jun 24 11:25:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Created this file. Got the whole stuff in ace to a new branch by
- name bug_575_stage_1. This ChangeLog file will be in branch
- bug_575.
-
-Fri Jun 22 16:52:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp: Changed the copy constructor for the
- ACE_InputCDR's. Instead of duplicating the ACE_Data_Block we
- now use the new copy constructor in the ACE_Message_Block.
-
- * ace/Message_Block.h:
- * ace/Message_Block.cpp: Added a new copy constructor to the
- ACE_Message_Block. This copy constructor does a deep copy from
- the data block if the data block of the incoming message block
- is on the stack or does a shallow copy of the data block (by
- incrementing the ref count) if it is on the heap.
-
- END of entries from bug_575_stage_2.
-
-Thu Jul 5 22:07:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the new perl script in LongUpcalls
- in the daily builds.
-
-Thu Jul 5 20:36:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/config-win32-borland.h
- define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
- * tests/Token_Test.cpp
- Fix template instantiation problem.
-
-Wed Jul 4 15:35:47 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/run_tests.vxworks:
- Removed invocation of CDR_Array_Test. According to the ace
- config files the compiler we are using is pre 2.8 (i.e.,
- ACE_HAS_GNUG_PRE_2_8 is defined). Therefore don't run
- CDR_Array_Test since the Makefile doesn't build it (due to
- the ACE_HAS_GNUG_PRE_2_8 macro).
-
-Wed Jul 04 14:26:10 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.h (class ACE_Acquire_Method): Moved the enums from
- the Reverse Lock class into ACE_Acquire_Method, a non-template
- class. These enums should have been inside the reverse lock
- class, but some lame compilers cannot handle enums inside
- template classes.
-
-Wed Jul 04 12:43:22 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.i (ACE_Reverse_Lock): Fully specified the
- ACE_ACQUIRE_METHOD type.
-
-Tue Jul 3 15:43:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a warning in g++.
-
-Tue Jul 3 14:44:00 2001 Craig Rodrigues <crodrigues@bbn.com>
-
- * ace/config-win32-common.h: Borland C++ apparently
- does not support the "extern template class" Microsoft VC++
- proprietary extension. Thanks to Chris Kohloff <chris@kohlhoff.com>
- for the fix.
-
-Tue Jul 03 12:26:33 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.h (class ACE_Reverse_Lock): Added a parameter to the
- constructor of the reverse lock. The ACE_ACQUIRE_METHOD
- parameter is used to indicate which acquire() method will be
- called on the real lock when the release() method is called on
- the reverse lock. REGULAR indicated the acquire() method, READ
- indicates the acquire_read() method, and WRITE indicates the
- acquire_write() method. Note that the try_*() methods are not
- represented here because we have to make sure that the release()
- method on the reverse lock acquires a lock on the real lock.
-
- Thanks to Edan Ayal <edana@bandwiz.com> for suggesting this.
-
-Tue Jul 3 06:20:13 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Reactor.h,
- * ace/Reactor_Impl.h,
- * ace/Select_Reactor_Base.cpp,
- * ace/Select_Reactor_Base.i,
- * ace/Select_Reactor_Base.h,
- * ace/WFMO_Reactor.cpp,
- * ace/WFMO_Reactor.h: Added an enhancement that allows the
- Reactor to selectively purge event handlers from its
- notification queue according to their Reactor_Mask type. Thanks
- to Edan Ayal <edana@bandwiz.com> for contributing this.
-
- * tests/Reactor_Notify_Test.cpp (run_notify_purge_test):
- Added a new set of tests for the new selective notification
- purging features of the Reactor. Thanks to Edan Ayal
- <edana@bandwiz.com> for contributing this.
-
- * ace/WIN32_Asynch_IO.cpp: Removed the
- ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority,
- signal_number), initializer since we no longer use virtual
- inheritance. Thanks to Alexander Libman
- <alexander.libman@baltimore.com> for reporting this.
-
- * ace/WIN32_Asynch_IO.h: Removed the virtual inheritance from
- ACE_WIN32_Asynch_Result for the ACE_Asynch_Read_Stream_Result
- and ACE_Asynch_Read_Dgram_Result classes. Thanks to Alexander
- Libman <alexander.libman@baltimore.com> for reporting this.
-
- * ace/Refcounted_Auto_Ptr.h: Made the destructor of
- ACE_Refcounted_Auto_Ptr virtual so that users can override it
- locally. Thanks to Jenny Kowald <jkowald@oz.agile.tv> for
- reporting this.
-
-Tue Jul 3 09:40:59 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_osf1_4.0.GNU:
- * include/makeinclude/platform_osf1_4.0_g++.GNU:
-
- Allow users to set options like debug, exceptions, ... without
- using override.
-
-Tue Jul 3 08:38:47 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_dup_proactor.dsp:
-
- Fixed a mistake in the link to the ACE library.
-
-Mon Jul 2 16:23:04 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_multiple_loops.dsp:
- * examples/Reactor/Proactor/test_proactor.dsp:
- * examples/Reactor/Proactor/test_proactor.dsw:
- * examples/Reactor/Proactor/test_timeout.dsp:
- * examples/Reactor/Proactor/test_udp_proactor.dsp:
-
- Fixed settings on release version of test_udp_proactor.dsp,
- added it to the workspace, and removed unused file folders
- from the FileViews of the other projects.
-
-Mon Jul 2 15:26:32 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-sunos5.6.h: Removed ACE_HAS_POSIX_SEM and
- ACE_LACKS_NAMED_POSIX_SEM. Thanks to Glenn Popelka
- <gpp@gpopelka.com> for helping track this down.
-
-Mon Jul 02 11:45:57 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/make_release:
-
- Disabled bootstrapping of ACE's autoconf support. It isn't
- ready for general use. Doing so reduces the amount of
- confusion. Thanks to Holger P. Krekel <krekel@merlinux.de> for
- motivating this change.
-
-Mon Jul 2 13:18:14 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * Moved ACE-configurations.txt into the docs directory. Also
- removed the hopelessly out of date BIBLIOGRAPHY file.
-
- * Moved all the ChangeLog-* files into the new ChangeLogs
- directory. Thanks to Holger P. Krekel <krekel@merlinux.de> for
- this suggestion.
-
-Mon Jul 02 11:20:52 2001 Ossama Othman <ossama@uci.edu>
-
- * config.guess:
- * config.sub:
-
- Updated to the latest versions from the GNU FTP site.
-
-Mon Jul 02 11:30:20 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.i: Since the release() method on the reverse lock
- calls the simple acquire() method on the real lock, it is
- assumed that it is a simple acquire/release protocol with the
- real lock. Therefore, I think all the other methods on the
- reverse lock tryacquire(), acquire_read(), acquire_write(),
- tryacquire_read(), tryacquire_write(), and
- tryacquire_write_upgrade() should not be allowed. This falls in
- line with the original concept of using reverse locks with
- regular guards.
-
- Thanks to Edan Ayal <edana@bandwiz.com> for pointing this out.
-
-Mon Jul 2 11:17:37 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Profile_Timer.cpp:
-
- Cleaned up the conditional macros. Added method bodies for
- ACE_Profile_Timer::get_rusage() and
- ACE_Profile_Timer::elapsed_rusage() when neither ACE_HAS_PRUSAGE_T
- nor ACE_HAS_GETRUSAGE is defined.
-
- * Reverted the reverted changes in this entry.
- "Fri Jun 29 22:31:56 2001 Balachandran Natarajan
- <bala@cs.wustl.edu>". These changes are ok, I just
- needed to fix the bug in Profile_Timer.cpp.
-
-Mon Jul 2 09:40:45 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_aix_ibm.GNU:
-
- Add the output filter to the linker to avoid the duplicate symbol
- warnings on AIX.
-
-Mon Jul 2 05:40:54 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Logging_Strategy.cpp: Enhanced the code so that it works with
- ACE_LACKS_IOSTREAM_TOTALLY. Thanks to Nir Drang <nir@bandwiz.com>
- and Edan Ayal <edana@bandwiz.com> for reporting this.
-
- * ace/SPIPE_Addr.cpp (set): Added a "+ 1" to the computation of
- the size of the SPIPE_Addr to account for the trailing NUL.
- Thanks to Oren Zeev-Ben-Mordehai <oren@phonedo.com> for
- reporting this.
-
- * ace/Refcounted_Auto_Ptr.{h,i}: Added support for a "null()"
- method to check if a refcounted auto ptr is NULL. Thanks to
- Jenny Kowald <jkowald@oz.agile.tv> for reporting this.
-
- * ace/config-macosx.h,
- * ace/platform_macosx.GNU: Enhanced these files to support MacOSX.
- Thanks to John Zorko <j.zorko@att.net> for contributing this.
-
- * ace/Synch.h: Fixed the Doxygen documentation for all the
- removed_ fields, which where somehow messed up. Thanks to
- Johnny Willemsen for reporting this.
-
-Sun Jul 1 11:49:13 2001 Alexander Libman <alexander.libman@baltimore.com>
-
- * ace: Enhanced the POSIX and Sun Proactor implementations as
- follows:
-
- . POSIX_SIG_Proactor is now based on POSIX_AIOCB_Proactor
-
- . All classes ACE_POSIX_SIG_Asynch_XXXX are removed.
- POSIX_SIG_Proactor uses the ACE_POSIX_AIOCB_Asynch_XXXX
- classes now.
-
- . ACE_POSIX_AIOCB_Proactor::register_and_start_aio (...)
- now calls a new virtual method: int
- ACE_POSIX_AIOCB_Proactor::allocate_aio_slot
- (ACE_POSIX_Asynch_Result *result).
-
- . The strategy of free slot allocation in SIG_Proactor is
- a bit different from AIOCB and SUN Proactors. The
- allocate_aio_slot() method is responsible for setting
- notification information for aio request
- (SIGEV_NONE/SIGEV_SIGNAL). For SIG_Proactor, the field
- aio_sigevent.sigev_value.sival_int now contains index of aiocb
- in the aiocb_list_, not a pointer.
-
- . The ACE_POSIX_AIOCB_Proactor::find_completed_aio (int &error_status,
- int &return_status, size_t
- &index, size_t &count)
- parameter index defines initial slot to scan and the new
- parameter count tells us maximum number slots to scan. On
- return: index contains value to start scan next time, count
- contains remained number of slots. Scanning is performed in
- "wheel" style to allow all requests be handled with equal
- priorities.
-
- . ACE_POSIX_AIOCB_Proactor::check_max_aio_num () checks for
- max_number_files to open and tries to setup max_number_files
- equal to aiocb_max_size_. if we failed than cut off
- aiocb_max_size_ value to existing max_number_files.
-
- . POSIX_Proactor added member int os_id_ and constructor sets up
- os_id_ (compilation time + run_time function) to know
- OS(Sun/HP/Linux/...) and version. We need such info for
- POSIX_SIG_Proactors to take into account the behavior of
- different OS.
-
- . Delivery of simulated/"post_completed" Asynch_Results
- (Timers, AsynchAccept,Wakeup ...). As both Proactors have no
- reliable mechanizm for delivery "post_completed" results, so
- the reliable queue of "post_completed" results was
- implemented. The new member of AIOCB Proactor
- ACE_Unbounded_Queue<ACE_POSIX_Asynch_Result *> result_queue_
- has been added. Also added protected methods to the
- ACE_POSIX_AIOCB_Proactor.
-
- . We had an error in all previous versions (from major ACE 5.1):
- post_completion (int how_many) does not guarantee that all
- completions will be delivered to the different threads running
- event_loop (sometimes several completions could be delivered
- to the one thread, in another thread performs during long time
- application_spesific_code ()). Moreover, you can run now
- Proactor event_loop in any number of threads (more than
- SIGQUEMAX).
-
-Sun Jul 1 11:49:13 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * examples/Reactor/Proactor: Integrated a test that exercises the
- support for asynchronous UDP operations. Thanks to Roger Tragin
- <r.tragin@computer.org> for contributing this.
-
- * ace/Synch_T.i: Changed the implementations of all the
- acquire*() method to call release(). Thanks to Edan Ayal
- <edana@bandwiz.com> for reporting this.
-
-Sat Jun 30 12:44:11 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * examples/Connection/blocking/SPIPE-acceptor.cpp: Added better
- support for shutting down the server when a signal occurs.
- Thanks to Rich Newman <RNewman@directv.com> for this
- enhancement.
diff --git a/ChangeLog_Reactor_Rewrite b/ChangeLog_Reactor_Rewrite
new file mode 100644
index 00000000000..085eee45476
--- /dev/null
+++ b/ChangeLog_Reactor_Rewrite
@@ -0,0 +1,4 @@
+Mon Nov 19 18:08:35 2001 Balachandran Natarajan <bala@cs.wustl.edu>
+
+ * ace/Handle_Set.cpp: Some cosmetic changes.
+
diff --git a/ChangeLogs/ChangeLog-00a b/ChangeLogs/ChangeLog-00a
deleted file mode 100644
index 351e9bbee28..00000000000
--- a/ChangeLogs/ChangeLog-00a
+++ /dev/null
@@ -1,12664 +0,0 @@
-Tue Oct 10 21:54:52 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/msvc_auto_compile.pl (Build_Core): Updated LIB core build
- dsp list.
-
-Tue Oct 10 18:51:16 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile.bor:
- * ace/RMCast\Makefile.bor:
- * include/makeinclude/ace_flags.bor:
- Add a Borland makefile for the RMCast library. Thanks to Johhny
- Willemsen <johnny.willemsen@meco.nl> for providing this.
-
-Tue Oct 10 17:59:09 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/RMCast.dsp:
- Update the project file
-
-Tue Oct 10 17:25:32 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * Finally the Send_File example works correctly. In my tests four
- nodes received the same file successfully.
- I also tried some features to cleanly terminate receivers and
- senders.
- However, I still need to work on flow control, and in strategies
- to limit the maximum number of messages buffered by the sender
- and/or receiver.
-
- * ace/RMCast/Makefile:
- Add the new files to the Makefile
-
- * ace/RMCast/RMCast.h:
- Move the state transition matrix to RMCast_Receiver_Module.h
-
- * ace/RMCast/RMCast_Ack_Worker.h:
- * ace/RMCast/RMCast_Ack_Worker.i:
- * ace/RMCast/RMCast_Ack_Worker.cpp:
- Move the ACE_RMCast_Ack_Worker class to its own file. Only used
- in the Retransmission module.
-
- * ace/RMCast/RMCast_Fork.h:
- * ace/RMCast/RMCast_Fork.i:
- * ace/RMCast/RMCast_Fork.cpp:
- This class superseeds Control_Splitter. I realized that forking
- the control messages to the user layer is a more general and
- cleaner solution for this problem.
-
- * ace/RMCast/RMCast_Control_Splitter.h:
- * ace/RMCast/RMCast_Control_Splitter.i:
- * ace/RMCast/RMCast_Control_Splitter.cpp:
- Removed.
-
- * ace/RMCast/RMCast_Fragment.cpp:
- Fixed bug when computing the length of the message, it should be
- total_length() but I was using total_size().
-
- * ace/RMCast/RMCast_IO_UDP.cpp:
- Destroy proxys that return -1 from receive_message().
- Add multiple debug messages, now commented out.
-
- * ace/RMCast/RMCast_Membership.h:
- * ace/RMCast/RMCast_Membership.cpp:
- When a new member joins or leaves the group we need to resend
- the ack messages to the upper layer.
- The code to compute the correct Ack message is factored out.
- Many debug messages, but they are commented out.
- New method so clients can know how many members the group has,
- it can be used for safe termination of senders.
-
- * ace/RMCast/RMCast_Module.cpp:
- The open() and close() methods propagate through the stack as
- any other message.
-
- * ace/RMCast/RMCast_Reassembly.h:
- * ace/RMCast/RMCast_Reassembly.cpp:
- Cleanup is performed in the close() operation.
- Old messages are dropped from the map immediately, the
- Reordering layer is the right place to reject them (if any).
-
- * ace/RMCast/RMCast_Reliable_Factory.cpp:
- Use ACE_RMCast_Receiver_Module to validate and process the
- messages in the proxy, for example, Ack messages are a clear
- error on the receiver side.
-
- * ace/RMCast/RMCast_Receiver_Module.h:
- * ace/RMCast/RMCast_Receiver_Module.i:
- * ace/RMCast/RMCast_Receiver_Module.cpp:
- This module implements message validation and state transitions
- for a receiver.
- It also generates the correct responses for an Ack_Join or Poll
- message.
-
- * ace/RMCast/RMCast_Reordering.h:
- * ace/RMCast/RMCast_Reordering.cpp:
- Cleanup resources in the close() method
-
- * ace/RMCast/RMCast_Resend_Worker.h:
- * ace/RMCast/RMCast_Resend_Worker.i:
- * ace/RMCast/RMCast_Resend_Worker.cpp:
- Move the ACE_RMCast_Resend_Worker class to its own file. Only
- used in the Retransmission module.
-
- * ace/RMCast/RMCast_Resend_Handler.cpp:
- Resend all the messages after each timeout.
-
- * ace/RMCast/RMCast_Retransmission.h:
- * ace/RMCast/RMCast_Retransmission.cpp:
- Worker classes moved to their own files.
-
- * ace/RMCast/RMCast_Sequencer.h:
- * ace/RMCast/RMCast_Sequencer.i:
- * ace/RMCast/RMCast_Sequencer.cpp:
- Assign unique sequence numbers to each message, used on the
- sender side.
-
- * ace/RMCast/RMCast_UDP_Proxy.cpp:
- Incoming message must pass through the proxy before going up the
- stack.
- The source field was not set in the messages.
-
- * ace/RMCast/RMCast_UDP_Reliable_Sender.h:
- * ace/RMCast/RMCast_UDP_Reliable_Sender.i:
- * ace/RMCast/RMCast_UDP_Reliable_Sender.cpp:
- Use the new ACE_RMCast_Sequencer module to assign message
- sequence numbers.
- Use the new ACE_RMCast_Fork class to send incoming control
- messages both to the user and the retransmission/membership
- modules.
- Add method to detect how many members are currently registered
- with the membership layer.
-
- * tests/RMCast/RMCast_Retransmission_Test.cpp:
- Assign the sequence numbers before going into the retransmission
- layer, as would be done in a normal application.
-
- * examples/RMCast/Send_File/Makefile:
- Update dependencies
-
- * examples/RMCast/Send_File/Sender.cpp:
- Only shutdown once all the members have left the group.
- Use long periods to make debugging easier.
-
- * examples/RMCast/Send_File/Receiver.cpp:
- Only shutdown once the Ack_Leave message is received.
- Return -1 from the data() method once the complete file is
- received, that initiates the termination.
- Use long periods to make debugging easier.
-
-Tue Oct 10 16:34:01 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32-common.h: Changed ACE_HAS_SVC_DLL to
- ACE_SVC_HAS_DLL and commented out its definition. The default
- definition of ACE_SVC_HAS_DLL has been moved to
- ace/Svc_export.h. The comment-out code here only serves as a
- reminder to users. Thanks to Mike Curtis <mccurry@my-deja.com>
- for pointing this out.
-
- * netsvcs/lib/Base_Optimizer.cpp: Removed redundant definition of
- ACE_BUILD_DLL.
-
- * ace/ACE_export.h:
- * ace/OS_Export.h:
- Added a new macro ACE_AS_STATIC_LIBS that controls the default
- value of ACE_OS_HAS_DLL and ACE_HAS_DLL so we can build static
- ACE library easily.
-
- * ace/ace_lib.dsp:
- * apps/gperf/src/gperf.dsp:
- * apps/gperf/src/gperf_lib.dsp: Changed to use ACE_AS_STATIC_LIBS
- for static configurations.
-
-Mon Oct 09 16:45:00 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/Makefile:
- * ace/RMCast/RMCast.dsp:
- Add new files to the RMCast project and Makefile.
-
- * ace/RMCast/RMCast_Control_Splitter.h:
- * ace/RMCast/RMCast_Control_Splitter.i:
- * ace/RMCast/RMCast_Control_Splitter.cpp:
- A module to separate control messages from regular data flow.
-
- * ace/RMCast/RMCast_Copy_On_Write.h:
- * ace/RMCast/RMCast_Copy_On_Write.cpp:
- Add accessor to check if the collection is empty.
-
- * ace/RMCast/RMCast_IO_UDP.h:
- * ace/RMCast/RMCast_IO_UDP.i:
- * ace/RMCast/RMCast_IO_UDP.cpp:
- * ace/RMCast/RMCast_UDP_Event_Handler.cpp:
- Decouple the event handler.
-
- * ace/RMCast/RMCast_Module.h:
- * ace/RMCast/RMCast_Module.i:
- * ace/RMCast/RMCast_Module.cpp:
- * ace/RMCast/RMCast_UDP_Proxy.h:
- Fixed comments.
-
- * ace/RMCast/RMCast_Module_Factory.h:
- No need to pass the IO_UDP to the module factory.
-
- * ace/RMCast/RMCast_Reliable_Factory.h:
- * ace/RMCast/RMCast_Reliable_Factory.i:
- * ace/RMCast/RMCast_Reliable_Factory.cpp:
- A factory to create the per-proxy stack on the receivers.
-
- * ace/RMCast/RMCast_Resend_Handler.h:
- * ace/RMCast/RMCast_Resend_Handler.i:
- * ace/RMCast/RMCast_Resend_Handler.cpp:
- An adapter to resend messages on a Reactor scheduled timer.
-
- * ace/RMCast/RMCast_Retransmission.h:
- * ace/RMCast/RMCast_Retransmission.cpp:
- Add a method to resend all the messages.
-
- * ace/RMCast/RMCast_Singleton_Factory.h:
- * ace/RMCast/RMCast_Singleton_Factory.i:
- * ace/RMCast/RMCast_Singleton_Factory.cpp:
- A module factory that "creates" the same object over and over.
-
-
- * ace/RMCast/RMCast_UDP_Reliable_Receiver.h:
- * ace/RMCast/RMCast_UDP_Reliable_Receiver.i:
- * ace/RMCast/RMCast_UDP_Reliable_Receiver.cpp:
- Helper class to simplify the creation and configuration of a UDP
- receiver.
-
- * ace/RMCast/RMCast_UDP_Reliable_Sender.h:
- * ace/RMCast/RMCast_UDP_Reliable_Sender.i:
- * ace/RMCast/RMCast_UDP_Reliable_Sender.cpp:
- Helper class to simplify the creation and configuration of a UDP
- sender.
-
- * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp:
- Had to change due to modifications in the I/O UDP layer
- interface.
-
- * examples/RMCast/Makefile:
- * examples/RMCast/Send_File/Makefile:
- * examples/RMCast/Send_File/Receiver.cpp:
- * examples/RMCast/Send_File/Receiver.dsp:
- * examples/RMCast/Send_File/Send_File.dsw:
- * examples/RMCast/Send_File/Sender.cpp:
- * examples/RMCast/Send_File/Sender.dsp:
- Add a simple example that sends a file over reliable UDP
- multicast.
-
-Mon Oct 9 14:44:25 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/generate_export_file.pl:
-
- Made some minor changes to make a bit more robust.
-
- * bin/regenerate_exports.pl: (added)
-
- This script should be able to recurse from the current directory
- reupdating the export files. Use at your own risk.
-
-Mon Oct 09 03:23:22 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/generate_export_file.pl: Changed the script so we can define
- a single macro to switch multiple *_HAS_DLL default definitions.
-
-Sat Oct 7 04:30:00 2000 Douglas C. Schmidt <schmidt@uci.edu>
-
- * Doug and Sonja got married in St. Louis, surrounded by
- their family, friends, and many ACE+TAO developers!
-
-Sat Oct 7 000:50:02 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ACE.cpp:
- * ace/ACE.h:
- * ace/ACE.i:
- * ace/ARGV.cpp:
- * ace/ATM_Acceptor.cpp:
- * ace/ATM_Acceptor.i:
- * ace/ATM_Addr.cpp:
- * ace/ATM_Connector.cpp:
- * ace/ATM_Connector.i:
- * ace/ATM_QoS.cpp:
- * ace/ATM_Stream.cpp:
- * ace/Acceptor.cpp:
- * ace/Activation_Queue.cpp:
- * ace/Addr.cpp:
- * ace/Arg_Shifter.cpp:
- * ace/Asynch_Acceptor.cpp:
- * ace/Asynch_IO.cpp:
- * ace/Based_Pointer_T.cpp:
- * ace/Basic_Types.h:
- * ace/CORBA_Handler.cpp:
- * ace/Cache_Map_Manager_T.cpp:
- * ace/Cached_Connect_Strategy_T.cpp:
- * ace/Caching_Strategies_T.i:
- * ace/Capabilities.cpp:
- * ace/Capabilities.h:
- * ace/Configuration.cpp:
- * ace/Connector.cpp:
- * ace/Containers_T.cpp:
- * ace/DEV_Addr.cpp:
- * ace/DEV_Connector.i:
- * ace/DLL.cpp:
- * ace/Dirent.i:
- * ace/Dynamic_Service.cpp:
- * ace/FIFO.cpp:
- * ace/FIFO_Recv.cpp:
- * ace/FIFO_Recv_Msg.cpp:
- * ace/FIFO_Send.cpp:
- * ace/FIFO_Send_Msg.cpp:
- * ace/FILE_Addr.cpp:
- * ace/FILE_Connector.cpp:
- * ace/FILE_Connector.i:
- * ace/File_Lock.cpp:
- * ace/Filecache.cpp:
- * ace/Filecache.h:
- * ace/Future.cpp:
- * ace/Get_Opt.cpp:
- * ace/Handle_Set.cpp:
- * ace/Hash_Map_Manager_T.cpp:
- * ace/Hash_Map_Manager_T.i:
- * ace/High_Res_Timer.cpp:
- * ace/High_Res_Timer.h:
- * ace/INET_Addr.cpp:
- * ace/INET_Addr.h:
- * ace/IO_SAP.cpp:
- * ace/IPC_SAP.cpp:
- * ace/LSOCK.cpp:
- * ace/LSOCK_CODgram.cpp:
- * ace/LSOCK_Connector.cpp:
- * ace/LSOCK_Dgram.cpp:
- * ace/Local_Name_Space_T.cpp:
- * ace/Local_Tokens.cpp:
- * ace/Local_Tokens.i:
- * ace/Log_Msg.cpp:
- * ace/Log_Msg.h:
- * ace/Log_Record.cpp:
- * ace/Logging_Strategy.cpp:
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Addr.cpp:
- * ace/MEM_Connector.cpp:
- * ace/MEM_SAP.cpp:
- * ace/Malloc.cpp:
- * ace/Malloc_T.cpp:
- * ace/Malloc_T.h:
- * ace/Map_Manager.cpp:
- * ace/Map_Manager.i:
- * ace/Mem_Map.cpp:
- * ace/Memory_Pool.cpp:
- * ace/Message_Block.cpp:
- * ace/Message_Queue.cpp:
- * ace/Message_Queue_T.cpp:
- * ace/Module.cpp:
- * ace/Name_Proxy.cpp:
- * ace/Name_Request_Reply.cpp:
- * ace/Naming_Context.cpp:
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
- * ace/Object_Manager.cpp:
- * ace/Obstack.cpp:
- * ace/POSIX_Asynch_IO.cpp:
- * ace/Parse_Node.cpp:
- * ace/Pipe.cpp:
- * ace/Proactor.cpp:
- * ace/Process.cpp:
- * ace/Process_Manager.cpp:
- * ace/QoS_Manager.cpp:
- * ace/QoS_Session_Factory.cpp:
- * ace/QoS_Session_Impl.cpp:
- * ace/RB_Tree.cpp:
- * ace/RB_Tree.i:
- * ace/Read_Buffer.cpp:
- * ace/Registry.cpp:
- * ace/Registry_Name_Space.cpp:
- * ace/Remote_Name_Space.cpp:
- * ace/Remote_Tokens.cpp:
- * ace/SOCK.cpp:
- * ace/SOCK_Acceptor.cpp:
- * ace/SOCK_CODgram.cpp:
- * ace/SOCK_Connector.cpp:
- * ace/SOCK_Dgram.cpp:
- * ace/SOCK_Dgram_Bcast.cpp:
- * ace/SOCK_Dgram_Mcast.cpp:
- * ace/SOCK_Dgram_Mcast.h:
- * ace/SOCK_Dgram_Mcast_QoS.cpp:
- * ace/SPIPE_Acceptor.cpp:
- * ace/SPIPE_Addr.cpp:
- * ace/SPIPE_Connector.cpp:
- * ace/SV_Message_Queue.cpp:
- * ace/SV_Semaphore_Complex.cpp:
- * ace/SV_Semaphore_Simple.cpp:
- * ace/SV_Shared_Memory.cpp:
- * ace/Select_Reactor_Base.cpp:
- * ace/Select_Reactor_T.cpp:
- * ace/Service_Config.cpp:
- * ace/Service_Manager.cpp:
- * ace/Service_Repository.cpp:
- * ace/Service_Types.cpp:
- * ace/Singleton.cpp:
- * ace/Stats.cpp:
- * ace/Stats.i:
- * ace/Strategies_T.cpp:
- * ace/Strategies_T.i:
- * ace/Stream.cpp:
- * ace/Svc_Conf.h:
- * ace/Svc_Conf.l:
- * ace/Svc_Conf.y:
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Handler.cpp:
- * ace/Synch.cpp:
- * ace/Synch.h:
- * ace/Synch_T.cpp:
- * ace/System_Time.cpp:
- * ace/TLI.cpp:
- * ace/TLI_Acceptor.cpp:
- * ace/TLI_Connector.i:
- * ace/TP_Reactor.i:
- * ace/Task_T.cpp:
- * ace/Thread_Manager.cpp:
- * ace/Time_Request_Reply.cpp:
- * ace/Timeprobe_T.cpp:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Heap_T.cpp:
- * ace/Timer_List_T.cpp:
- * ace/Timer_Queue_Adapters.cpp:
- * ace/Timer_Queue_T.cpp:
- * ace/Timer_Wheel_T.cpp:
- * ace/Token.cpp:
- * ace/Token_Collection.cpp:
- * ace/Token_Invariants.cpp:
- * ace/Token_Manager.cpp:
- * ace/Token_Request_Reply.cpp:
- * ace/Token_Request_Reply.i:
- * ace/Trace.cpp:
- * ace/Trace.h:
- * ace/UPIPE_Acceptor.cpp:
- * ace/UPIPE_Connector.cpp:
- * ace/UPIPE_Connector.i:
- * ace/WFMO_Reactor.cpp:
- * ace/WFMO_Reactor.i:
- * ace/WIN32_Asynch_IO.cpp:
- * ace/WIN32_Proactor.cpp:
- * ace/XTI_ATM_Mcast.i:
- * ace/ace_wchar.h:
- * ace/config-WinCE.h:
- * ace/config-all.h:
- * ace/config-win32-borland.h:
- * ace/config-win32-msvc.h:
- * ace/config-win32-visualage.h:
-
- Split several methods into char/wchar_t versions:
- - ACE_OS::getenv
- - ACE_OS::cuserid
- - ACE_Allocator_Adapter constructor
- - ACE_Manual_Event constructor
-
- Split several string macros into char/wchar_t versions:
- - ACE_DIRECTORY_SEPARATOR_STR
- - ACE_DIRECTORY_SEPARATOR_CHAR
- - ACE_PLATFORM
- - ACE_PLATFORM_EXE_SUFFIX
- - ACE_DEFAULT_LOCALNAME
- - ACE_DEFAULT_GLOBALNAME
- - ACE_DEFAULT_MUTEX
-
- Added ACE_DEFAULT_NAMESPACE_DIR back in for ACE_LEGACY_MODE.
-
-Fri Oct 06 11:34:26 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Based_Pointer_T.cpp:
- * ace/Select_Reactor_T.cpp: Added #include "ace/Log_Msg.h" else IBM
- C++ can't compile the template at instantiation time.
-
-Wed Oct 04 12:23:34 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/RMCast_Copy_On_Write.h:
- * ace/RMCast/RMCast_Copy_On_Write.i:
- * ace/RMCast/RMCast_Copy_On_Write.cpp:
- More cleanup, this time for the Read_Guard class
-
- * ace/RMCast/RMCast_Proxy.h:
- * ace/RMCast/RMCast_Proxy.cpp:
- * ace/RMCast/RMCast_UDP_Proxy.cpp:
- The ACE_RMCast_Proxy class now handles outgoing Ack_Join
- messages to update the sequence numbers.
-
- * ace/RMCast/RMCast_Reordering.cpp:
- * ace/RMCast/RMCast_Retransmission.cpp:
- Fixed memory management problems.
-
- * tests/RMCast/RMCast_Retransmission_Test.cpp:
- Add tests to verify that the right number of messages is
- received by *all* proxies. Also check the Ack_Join messages.
-
-Wed Oct 4 12:03:07 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in (ACE_HAS_STREAM_PIPES):
-
- Verify that we can actually set a STREAM option that ACE uses.
- This is particularly necessary for platforms that have ioctl
- conflicts. For example, the Linux kernel's CDROM ioctls have
- the same values as glibc 2.1.94's STREAM ioctls. Attempting to
- set a STREAM ioctl actually causes one of the CDROM ioctls to be
- set (unsuccessfully)!
-
- * configure.in:
- * m4/ace.m4:
- * m4/compiler.m4:
-
- Changed all uses of "$target" to "$host." "$target" is only
- used for compiler tool chains. "$host" is the correct variable
- since it refers to the host the application will be run on (as
- opposed to the host the application was built on $build).
-
-Wed Oct 4 09:15:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/RMCast/RMCast.dsp:
-
- Added new files.
-
-Tue Oct 3 17:07:37 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/Makefile:
- * ace/RMCast/RMCast_Reordering.h:
- * ace/RMCast/RMCast_Reordering.i:
- * ace/RMCast/RMCast_Reordering.cpp:
- Add re-ordering module, this is the receiver-side module that
- acks messages and delivers them in order to the application.
-
- * ace/RMCast/RMCast.h:
- Fixed data type in the Ack_Join message
-
- * ace/RMCast/RMCast_Copy_On_Write.h:
- * ace/RMCast/RMCast_Copy_On_Write.i:
- * ace/RMCast/RMCast_Copy_On_Write.cpp:
- * ace/RMCast/RMCast_Retransmission.cpp:
- Cleanup the Copy_On_Write implementation
-
- * tests/RMCast/Makefile:
- * tests/RMCast/RMCast_Tests.dsw:
- * tests/RMCast/RMCast_Reordering_Test.cpp:
- * tests/RMCast/RMCast_Reordering_Test.dsp:
- Add test for the reordering module.
-
- * tests/RMCast/RMCast_Retransmission_Test.cpp:
- Remove debug messages for the retransmission stuff.
-
-Tue Oct 3 15:03:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.i:
-
- In the non-Win32 section of hostname (wchar version) I
- forgot to call wchar_rep on the ACE_Ascii_To_Wide temp
- class I was using.
-
- * ace/OS.h:
-
- ACE_PLATFORM_EXE_SUFFIX was being defined incorrectly.
-
-Tue Oct 3 14:25:09 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
-
- Expanded TCHAR versions of some string macros to have
- both _A and _W versions. Moved many of these
- definitions around, since a lot of the same code was
- being repeated. The macros changed are:
- ACE_DIRECTORY_SEPARATOR_STR, ACE_DIRECTORY_SEPARATOR_CHAR,
- ACE_PLATFORM, ACE_PLATFORM_EXE_SUFFIX,
- ACE_DEFAULT_LOCALNAME, ACE_DEFAULT_GLOBALNAME and
- ACE_DEFAULT_MUTEX. [Bug 674]
-
- Split TCHAR versions of atoi, hostname, access,
- open, and chdir into char and wchar_t versions.
-
- * ace/Process_Mutex.cpp:
- * ace/Process_Mutex.h:
-
- Changed the ACE_Process_Mutex constructor to take a
- char as a argument instead of TCHAR. Also added a
- version that takes in wchar_t.
-
- * ace/Synch.cpp:
- * ace/Synch.h:
-
- Changed the ACE_Auto_Event constructor to take a
- char as a argument instead of TCHAR. Just like above,
- added a version that takes in wchar_t also.
-
- * ace/ace_wchar.h:
- * ace/ace_wchar.inl: (added)
-
- Moved the method definitions from inlined in the
- class definition to the .inl file.
-
- Added typedefs for ACE_OS_C/WString to the
- ACE_Wide_To_Ascii/Asci_To_Wide classes for legacy
- support. [Bug 675]
-
- Added ACE_TEXT_WCHAR_TO_TCHAR macro that acts similar
- to ACE_TEXT_CHAR_TO_WCHAR (except converts wchar_t's)
-
- Added ACE_TEXT_WIDE macro, which is used to make literal
- strings wide. (We were just directly using L"" in most
- cases)
-
-Tue Oct 3 13:27:13 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/OS.i:
- * ace/OS.cpp:
- Added !ACE_HAS_TSS_EMULATION to the ACE_HAS_PACE
- checks when TSS emulation is being used. We want
- to let ACE do the emulation instead of moving it
- into PACE since this would involve keeping track
- of the global TSS state.
-
-Tue Oct 3 12:25:46 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Thread_Exit.cpp:
-
- Removed default argument in the function definition.
-
- * ace/Thread_Adapter.cpp:
- * ace/Thread_Adapter.h:
-
- Separated ACE_Thread_Adapter::invoke into invoke and
- invoke_i because it uses SEH and James added local vars
- with destructors. They don't work together in the same
- function.
-
-Tue Oct 03 12:53:28 2000 Angelo Corsaro <corsaro@cs.wustl.edu>
-
- * bin/run_all_list.pm:
-
- Disabled Connection Purging test, and enabled Exposed
- Policies test.
-
-Tue Oct 3 10:52:24 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * performance-tests/Synch-Benchmarks/Base_Test/mutex_test.cpp:
-
- Added explicit includes for Process_Mutex and RW_Process_Mutex.
-
-Tue Oct 3 10:40:04 PDT 2000 James Hu <jxh@entera.com>
-
- * ace/Thread_Adapter.cpp:
- * ace/Thread_Exit.cpp:
- * ace/Thread_Exit.h:
-
- Changed this check to creating an ACE_Thread_Exit off the
- heap via a smart pointeresque way of the TSS instance
- fails to create.
-
-Tue Oct 3 05:55:01 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.cpp: Added && (__SUNPRO_CC == 0x420)
- to the #elif defined (__SUNPRO_CC) to make things work properly
- on the Sun FORTE compiler. Thanks to Russ Noseworthy for
- reporting this.
-
-Mon Oct 2 18:49:06 PDT 2000 James Hu <jxh@entera.com>
-
- * ace/Thread_Adapter.cpp:
-
- If the TSS instance of the ACE_Thread_Exit class fails to
- create, the application will crash. The new code will detect
- the failure, wait half a second, and try again. This
- solution, while cheesy, corrects a problem Entera
- encountered, and avoids the problems my previous attempt
- caused with ACE.
-
-Mon Oct 2 13:38:44 2000 Ossama Othman <ossama@uci.edu>
-
- * examples/QOS/QoS_Signal_Handler.cpp:
- * examples/QOS/QoS_Util.cpp:
-
- Include "ace/Log_Msg.h" to pull in definitions of the
- ACE_{DEBUG,ERROR} macros.
-
-Mon Oct 2 11:29:47 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/RMCast_Retransmission.h:
- * ace/RMCast/RMCast_Retransmission.cpp:
- Fixed several minor problems in the Retransmission module.
- Use Copy_On_Write dispatching for synchronization of the
- internal message buffer.
-
- * ace/RMCast/RMCast_Copy_On_Write.h:
- * ace/RMCast/RMCast_Copy_On_Write.i:
- * ace/RMCast/RMCast_Copy_On_Write.cpp:
- Implement Copy_On_Write semantics for a collection like the
- retransmission buffer. This is based on the ESF_Copy_On_Write
- strategy developed for the event channel.
- We should try to refactor this one in a reusable strategy.
-
- * ace/RMCast/RMCast_Worker.h:
- * ace/RMCast/RMCast_Worker.i:
- * ace/RMCast/RMCast_Worker.cpp:
- To implement copy-on-write we need the "alternative" form of
- iterators.
-
- * ace/RMCast/RMCast.h:
- * ace/RMCast/RMCast_Fragment.h:
- * ace/RMCast/RMCast_IO_UDP.h:
- * ace/RMCast/RMCast_IO_UDP.cpp:
- * ace/RMCast/RMCast_Membership.h:
- * ace/RMCast/RMCast_Membership.i:
- * ace/RMCast/RMCast_Membership.cpp:
- * ace/RMCast/RMCast_Module.h:
- * ace/RMCast/RMCast_Module_Factory.h:
- * ace/RMCast/RMCast_Partial_Message.h:
- * ace/RMCast/RMCast_Proxy.h:
- * ace/RMCast/RMCast_Proxy.i:
- * ace/RMCast/RMCast_Proxy.cpp:
- * ace/RMCast/RMCast_UDP_Event_Handler.h:
- * ace/RMCast/RMCast_UDP_Proxy.cpp:
- * tests/RMCast/RMCast_Membership_Test.cpp:
- Made the comments more doxygen friendly.
- Renamed the highest_in_sequence field to next_expected, the new
- name really reflects its semantics, this is the next sequence
- number that the peer is expecting. All the previous numbers
- have been either received or are simply assumed lost.
-
- * tests/Makefile:
- If the rmcast makefile flag is set to 1 we build the RMCast
- subdirectory too.
-
- * tests/RMCast/Makefile:
- * tests/RMCast/RMCast_Tests.dsw:
- * tests/RMCast/RMCast_Retransmission_Test.dsp:
- * tests/RMCast/RMCast_Retransmission_Test.cpp:
- New test for the Retransmission module
-
-Sun Oct 01 15:50:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/auto_run_tests.pl:
-
- Added support for a sandbox program that can shutdown a test
- if it hangs.
-
-Fri Sep 29 16:32:22 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Added the BE and FE projects for TAO_IDL so the static version
- gets built correctly in auto_compiles.
-
-Fri Sep 29 16:17:34 2000 Steve Huston <shuston@riverace.com>
-
- * ace/WFMO_Reactor.cpp (register_handle_i): If a event handle
- is created for association with a socket handle, the
- auto_ptr which caused the ACE_Auto_Event destruction at function
- return usually smashed errno (since it was closing an invalid
- handle - see comments in code). Added a ACE_Errno_Guard and
- removed the ACE_Auto_Event's handle while in the guard to prevent
- errno smashing upon function return.
-
-Thu Sep 28 22:06:44 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Connector.h:
- * ace/SSL/SSL_SOCK_Connector.cpp (ACE_SSL_SOCK_Connector,
- shared_connect_start, shared_connect_finish, connect, complete):
-
- Made ACE_Time_Value arguments const to match the changes
- detailed in:
-
- Thu Sep 28 15:02:36 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
-Fri Sep 29 00:23:59 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Log_Msg.h (ACE_RETURN): Fixed minor error.
-
-Thu Sep 28 22:13:04 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Log_Msg: Macros are evil! All the ACE debugging macros were
- evaluating the user arguments twice, once in
- log_priority_enabled() and the other in log(). The problem was
- that set() was making a deep copy of the filename. Hence, this
- change:
-
- Wed May 3 11:43:05 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- was made to prevent the deep copy which was unnecessary when the
- message was not actually logged. However, this resulted in the
- macro evaluating the user arguments twice. Previously, a
- statement like this:
-
- ACE_DEBUG ((LM_DEBUG,
- "timeout occured, iterations left %d\n",
- --iterations));
-
- <iterations> got reduced by one - now it got reduced by two ;-)
-
- The solution was to make a shallow copy of the filename in
- conditional_set(). Then in log(), if the log priority is
- correct, make a deep copy and then continue will log(). The
- macros were changed to call conditional_set() instead of set().
-
- Also, changed ACE_RETURN to specify all the parameters,
- including <restart>, <callback>, and <stream>. Otherwise, the
- default parameters of set() will end up losing these parameters
- set by the user.
-
-Thu Sep 28 15:49:00 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Stream.h (class ACE_Stream): Updated the documentation to clarify
- that the ACE_Time_Value's are *absolute* time. Thanks to Pedro
- for reporting this. Thanks to Pedro Brandao
- <pbrandao@inescn.pt> for reporting this.
-
-Thu Sep 28 15:02:36 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/SOCK_Connector.cpp: ACE_Time_Value args to
- ACE_SOCK_Connector could be const. Had to patch functions in
- the following files to make it happen:
-
- ACE.cpp
- ACE.h
- OS.h
- OS.i
- SOCK_Connector.cpp
- SOCK_Connector.h
-
- Thanks to Steve Huston <shuston@riverace.com> for reporting
- this. This also fixes bug 673.
-
-Thu Sep 28 11:14:29 2000 Martin Stack <mstack@cambertx.com>
-
- * ace/config-freebsd.h:
- * ace/config-freebsd-pthread.h:
- * ace/config-linux-common.h:
- * ace/config-irix6.x-common.h: Added/Renamed to
- ACE_USES_NEW_TERMIOS_STRUCT.
-
- * ace/TTY_IO.h:
- * ace/TTY_IO.cpp: The Win32 section was modified to implement a
- non-blocking read when read-timeout=0 is set. Also, it was
- modified to ensure proper operations when a read_timeout is
- required.
-
- Code was added to enable the DTR line on both Win32 and unix
- platforms when the port is opened.
-
- Several new flags where added to give proper access to the
- serial device.
-
- Relabled macro "ACE_USES_OLD_TERMIOS_STRUCT" to
- "ACE_USES_NEW_TERMIOS_STRUCT" to properly indicate its purpose.
-
-Thu Sep 28 09:01:19 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/config-g++-common.h:
-
- Reverted my g++ 2.95 updates. They work on all platforms but
- the cross-compiler used for VxWorks.
-
-Wed Sep 27 16:17:36 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/IOStream.h:
- * ace/IOStream_T.h:
-
- Moved inclusion of `ace/INET_Addr.h' and `ace/Handle_Set.h' to
- `IOStream_T.h'. They weren't needed in `IOStream.h'.
-
- * ace/config-g++-common.h (ACE_LACKS_AUTO_PTR,
- ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES,
- ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS):
-
- G++ 2.95.x properly support the auto_ptr class, templates with
- static data members, and inlined template functions.
-
-Wed Sep 27 14:02:30 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Reactor/WFMO_Reactor/test_abandoned.cpp
- (handle_timeout): Moved <--this->iterations_> outside the DEBUG
- statement.
-
-Wed Sep 27 08:46:12 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/RMCast.dsw:
- Add new files to the project
-
- * tests/RMCast/RMCast_Tests.dsw:
- * tests/RMCast/RMCast_Membership_Test.dsp:
- Add project file for the new test
-
- * tests/RMCast/RMCast_Membership_Test.cpp:
- Fixed warning under MSVC
-
-Wed Sep 27 08:23:58 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/Makefile:
- Updated dependencies
-
- * ace/RMCast/RMCast.h:
- * ace/RMCast/RMCast_Module.h:
- * ace/RMCast/RMCast_Proxy.cpp:
- * ace/RMCast/RMCast_Proxy.h:
- * ace/RMCast/RMCast_Reassembly.h:
- * ace/RMCast/RMCast_Reassembly.cpp:
- * ace/RMCast/RMCast_Retransmission.cpp:
- Update comments to be doxygen friendly
-
- * ace/RMCast/RMCast_Membership.cpp:
- Fixed problems in Ack management, we were stopping the useful
- Acks, not the ones that just represented repeated information.
-
- * tests/RMCast/Makefile:
- * tests/RMCast/RMCast_Membership_Test.cpp:
- Add test for the ACE_RMCast_Membership class.
-
-Tue Sep 26 22:39:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * examples/Reactor/WFMO_Reactor/test_abandoned.cpp:
-
- Changed the include of Synch.h to Process_Mutex.h since
- Process Mutex was moved there.
-
-Tue Sep 26 15:06:05 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/config-all.h:
- * ace/OS.h:
- Removed defining ACE_HAS_POSIX_SEM for ACE using PACE
- from OS.h and put it into the config-all.h file.
-
- * ace/OS.{i,cpp}:
- Added appropriate calls to pace_* functions when ACE
- is using PACE.
-
-Tue Sep 26 14:14:17 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Cache_Map_Manager_T.h: Added some comments to the find()
- methods to say what they do and what they return.
-
-Tue Sep 26 10:09:32 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Modified to use the auto_run_tests.lst file to select the list
- of tests to run.
- Add new -config option to disable one or more tests, this will
- allow us select new configurations that disable one or more
- tests without requiring changes to the auto_compile script.
-
- * bin/auto_run_tests.lst:
- Disable some tests in STATIC builds and under linux.
-
- * bin/run_all_list.pm:
- This file is no longer used by auto_compile, add comments to
- that effect.
-
-Tue Sep 26 11:51:27 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.h: Add #include "ace/config-all.h" to be sure that
- ACE_NDEBUG is defined (or not) properly before using it. Thanks
- to Edan Ayal <edana@bandwiz.com> for this fix.
-
-Mon Sep 25 16:00:30 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch.h: Clarify that the ACE_Auto_Event and ACE_Manual_Event
- classes only support USYNC_PROCESS on Win32. Thanks to Andreas
- Schuelke <Andreas.Schuelke@med.siemens.de> for motivating this
- change.
-
-Mon Sep 25 23:03:11 2000 Marina Spivak <marina@cs.wustl.edu>
-
- * bin/run_all_list.pm:
-
- Added TAO/tests/RTCORBA/Client_Propagated and
- TAO/tests/RTCORBA/Server_Protocol to the list of auto daily
- tests.
-
-Mon Sep 25 16:58:22 2000 Ossama Othman <ossama@uci.edu>
-
- * ltcf-c.sh:
- * ltcf-cxx.sh:
- * ltconfig:
- * ltmain.sh:
-
- Updates from upstream libtool multi-language CVS branch.
-
-Mon Sep 25 14:24:49 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * Static_performance.dsw:
-
- Added the modular IDL compiler projects, and set
- the dependencies.
-
-Mon Sep 25 11:45:53 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-win32-common.h: If NDEBUG is set, then also set
- ACE_NDEBUG. Thanks to Edan Ayal <edana@bandwiz.com> for noting
- that ACE_NDEBUG didn't always get set for Release builds.
-
-Sat Sep 23 16:55:26 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/Makefile:
- Add new components to the RMCast library.
-
- * ace/RMCast/RMCast_Proxy.h:
- * ace/RMCast/RMCast_Proxy.i:
- * ace/RMCast/RMCast_Proxy.cpp:
- All proxies must derive from this class, it offers methods to
- send back replies directly to the peer.
-
- * ace/RMCast/RMCast.h:
- The Proxy source is propagate among layers.
-
- * ace/RMCast/RMCast_IO_UDP.cpp:
- All proxies are modules.
-
- * ace/RMCast/RMCast_Membership.h:
- * ace/RMCast/RMCast_Membership.i:
- * ace/RMCast/RMCast_Membership.cpp:
- New module to keep an explicit collection of all the peers,
- detecting join and leave messages and computing the messages
- successfully received by all the peers using the Ack
- information.
-
- * ace/RMCast/RMCast_Retransmission.h:
- * ace/RMCast/RMCast_Retransmission.i:
- * ace/RMCast/RMCast_Retransmission.cpp:
- Buffer messages to allow retransmission.
-
- * ace/RMCast/RMCast_UDP_Proxy.h:
- * ace/RMCast/RMCast_UDP_Proxy.i:
- * ace/RMCast/RMCast_UDP_Proxy.cpp:
- Modified to inherit from the new RMCast_Proxy class.
-
-Fri Sep 22 15:13:46 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Atomic_Op.i:
-
- I was mistaken, inline was being used correctly here,
- since on NT this is only included from Atomic_Op.h.
- So I reverted the previous change and added a disable
- command for fuzz.
-
-Fri Sep 22 14:49:19 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.h:
- * ace/README:
- * ace/Synch.h:
- * ace/Thread_Control.cpp:
- * ace/Thread_Control.h:
- * ace/ace_wchar.h:
- * ace/config-all.h:
-
- Replaced ACE_ONLY_LATEST_AND_GREATEST with ACE_LEGACY_MODE
- since we wanted to change our usage of it (and this should
- be a bit clearer).
-
- To enable some legacy code, just define ACE_LEGACY_MODE
- in config.h.
-
-Fri Sep 22 14:24:14 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * apps/JAWS/remora/app/Remora_Export.h:
- * apps/JAWS/remora/app/Remora_Import.h
- * apps/JAWS/remora/app/remora.idl:
- * apps/JAWS/remora/app/test.cc:
- * examples/Web_Crawler/Command_Processor.h:
- * tests/Handle_Set_Test.cpp:
-
- The CVS Id strings were not correctly formatted, so CVS
- never recognized them or updated them. Fixed.
-
-Fri Sep 22 12:27:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- The checks for TEXT and TCHAR gave too many false positives.
- Fixed to be a bit smarter about having these inside other
- macro names (such as DEFAULTCHARS).
-
- Also improved detection of CVS Id strings, since it ends
- up that there are several places where the strings are close
- (start with $ and Id) but then are missing a colon so they
- don't get updated properly.
-
- * WindozeCE/ACEApp.cpp:
- * WindozeCE/WindozeCE.cpp:
- * WindozeCE/WindozeCE.h:
- * WindozeCE/WindozeCEDlg.cpp:
-
- Disabled the fuzz tchar check, since these are WinCE only
- files and shouldn't have any problems with using the Win32
- specific character macros.
-
- * WindozeCE/WindozeCE.plg: (removed)
-
- Shouldn't be in the repository
-
- * ace/ACE.cpp:
-
- There were some TEXT's (albeit in comments) that I changed
- to ACE_TEXT to make fuzz happy.
-
- * ace/Atomic_Op.i:
-
- Changed the inline's to ACE_INLINE to be consistent with the
- rest of the file.
-
- * ace/Handle_Gobbler.i:
- * apps/JAWS/remora/app/Remora_Export.i:
- * apps/JAWS/remora/app/Remora_Import.i:
- * examples/ASX/Event_Server/Event_Server/Options.i:
- * examples/ASX/UPIPE_Event_Server/Options.i:
- * performance-tests/Synch-Benchmarks/Perf_Test/Performance_Test_Options.i:
-
- Disabled the fuzz check for inline in these files, since
- they are only included in .h files, so they should be
- inline instead of ACE_INLINE.
-
- * apps/JAWS/clients/WebSTONE/src/bench.c:
- * apps/JAWS/clients/WebSTONE/src/genrand.c:
- * apps/JAWS/clients/WebSTONE/src/statistics.c:
- * apps/JAWS/clients/WebSTONE/src/timefunc.c:
- * apps/JAWS/clients/WebSTONE/src/webclient.c:
- * apps/JAWS/clients/WebSTONE/src/webmaster.c:
- * apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h:
- * apps/JAWS/stress_testing/global.h:
-
- Disabled checks for inline and math.h, since there probably
- isn't any problems with them here.
-
- * performance-tests/TCP/tcp_test.cpp:
- * performance-tests/UDP/udp_test.cpp:
-
- Disabled fuzz math.h include checks.
-
- Fuzz reports should be pretty clean now, just some Id string
- stuff to clean up. [Bug 630]
-
-Fri Sep 22 12:01:06 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Basic_Types.h (ACE_ULongLong):
-
- This class does't use the ACE_ALLOC_HOOK_DEFINE macro so there
- was no point in using the corresponding ACE_ALLOC_HOOK_DECLARE
- macro. Removed ACE_ALLOC_HOOK_DECLARE from the ACE_ULongLong
- class.
-
- * ace/OS.h:
- * ace/config-all.h:
-
- Moved ACE_ALLOC_HOOK* macros to `ace/config-all.h' so that it
- isn't necessary to include `ace/OS.h' just to pull in the
- definition of those macros.
-
-Fri Sep 22 13:02:41 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-all.h: Enable ACE_ONLY_LATEST_AND_GREATEST by default.
- If config.h sets it to 0, then it gets disabled to allow deprecated
- features to be used. Do not rely on them staying there through the
- next ACE release however.
-
-Fri Sep 22 09:27:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Logging_Strategy.cpp:
-
- Added ACE_TEXT to a couple of the literal strings.
-
- * ace/Registry.cpp:
-
- MSVC 5 has a different signature for RegConnectRegistry where
- the first argument (machine name) is not constant. Added a cast
- to fix this. [Bug 620]
-
-Fri Sep 22 08:30:26 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Proactor.cpp:
- Fixed small typo for platforms that define ACE_HAS_SIG_C_FUNC
-
-Thu Sep 21 18:04:53 2000 Ossama Othman <ossama@uci.edu>
-
- * examples/IPC_SAP/SSL_SAP/Makefile (LDLIBS):
-
- `-lssl -lcrypto' is needed for static builds.
-
-Thu Sep 21 16:54:19 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp: Fixed a typo in <day_of_week_name>. Thanks to Craig
- Perras <cperras@watchguard.com>.
-
-Thu Sep 21 14:40:07 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Connector.h:
- * ace/SSL/SSL_SOCK_Connector.i:
- * ace/SSL/SSL_SOCK_Connector.cpp:
-
- Removed all uses "non_ssl_connect_done_" attribute. It made the
- SSL_SOCK_Connector class non-reentrant, and prevented the
- SSL_SOCK_Connector from being used to create additional
- connections. [Bug 660]
-
- (connect, complete):
-
- Do not attempt to set the handle in SSL_SOCK_Stream if it is
- already set. Doing so would cause OpenSSL to create another
- socket in addition to other internal OpenSSL buffers, which
- isn't necessary when reconnecting to the same endpoint.
-
- (ssl_connect):
-
- Do not set the SSL connect state if an SSL connection is already
- pending.
-
- * ace/SSL/ACE_SSL.dsp:
-
- Changed output library location to be `../../bin' (equivalent to
- $ACE_ROOT/bin). This change makes this project file consistent
- with all other ACE/TAO projects.
-
- * examples/IPC_SAP/SSL_SAP/SSL-client.dsp:
- * examples/IPC_SAP/SSL_SAP/SSL-server.dsp:
-
- Updated library path to correspond to the location of the
- ACE_SSL library. It was still set to the old location.
-
-Thu Sep 21 11:54:58 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Service_Config.h :
- * ace/Service_Config.cpp :
-
- * ace/Proactor.cpp:
- * ace/Proactor.h (ACE_Proactor):
-
- Removed dependency of Service_Config on Proactor by registering
- the Proactor singleton with the Object_Manager when it is
- instantiated. This way we need not call
- ACE_Proactor::close_singleton () in Service_Config implementation.
-
-Wed Sep 20 17:25:37 2000 Steve Huston <shuston@riverace.com>
-
- * performance-tests/UDP/udp_test.cpp: Use ACE_High_Res_Timer instead
- of ACE_hrtime_t for calculating elapsed times. ACE_hrtime_t right
- from ACE_OS::gethrtime is not always in nanoseconds, particularly on
- Win32.
-
- * performance-tests/UDP/udp_test.{dsw dsp}: New MSVC workspace/project.
-
-Wed Sep 20 12:57:52 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Add new files to the MSVC projects
-
- * ace/Process_Mutex.h:
- Under Win32 must include "ace/Synch.h"
-
- * ace/WFMO_Reactor.h:
- Must include "ace/Process_Mutex.h" when
- ACE_ONLY_LATEST_AND_GREATEST is defined.
-
-Wed Sep 20 12:10:41 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Basic_Types.h:
-
- Made inclusion of <sys/types.h> conditional on definition of
- ACE_LACKS_SYS_TYPES_H macro.
-
-Wed Sep 20 12:00:42 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/ace-dll.icc:
- * ace/ace-lib.icc:
- * ace/File_Lock.h:
- * ace/File_Lock.inl:
- * ace/File_Lock.cpp:
- * ace/Process_Mutex.h:
- * ace/Process_Mutex.inl:
- * ace/Process_Mutex.cpp:
- * ace/Process_Semaphore.h:
- * ace/Process_Semaphore.inl:
- * ace/Process_Semaphore.cpp:
- * ace/RW_Process_Mutex.h:
- * ace/RW_Process_Mutex.inl:
- * ace/RW_Process_Mutex.cpp:
- * ace/Dynamic.cpp:
- * ace/Local_Name_Space.cpp:
- * ace/Local_Name_Space_T.cpp:
- * ace/MEM_SAP.h:
- * ace/Naming_Context.cpp:
- * ace/Synch.h:
- * ace/Synch.i:
- * ace/Synch.cpp:
- * ace/Synch_T.h:
- * ace/Thread_Exit.cpp:
- * ace/Thread_Manager.cpp:
- * examples/Shared_Malloc/Malloc.cpp:
- * examples/Shared_Malloc/test_multiple_mallocs.cpp:
- * examples/Shared_Malloc/test_position_independent_malloc.cpp:
- * examples/Threads/process_mutex.cpp:
- * examples/Threads/process_semaphore.cpp:
- * tests/Conn_Test.cpp:
- * tests/MM_Shared_Memory_Test.cpp:
- * tests/Malloc_Test.cpp:
- * tests/Process_Mutex_Test.cpp:
- * tests/Process_Strategy_Test.cpp:
- Moved the implementation of ACE_File_Lock, ACE_Process_Mutex,
- ACE_Process_Semaphore and ACE_RW_Process_Mutex to their own
- files.
- This removes some unwanted dependencies in the Synch file.
- The ACE_ONLY_GREATEST_AND_LATEST macro was used to preserve
- backwards compatibility.
-
-Wed Sep 20 14:51:27 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Basic_Types.h: Added #include <sys/types.h> after the other
- system-type includes to be sure u_long is defined. <stdlib.h>
- doesn't pick it up, at least on Solaris 8.
-
-Wed Sep 20 11:44:46 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/run_test.pl:
- * tests/run_test.lst:
- Disable the ACE_Init_Test under UNIX, the test only works on NT.
-
-Wed Sep 20 12:55:16 2000 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.(h cpp i): Win32's scale factor (from
- QueryPerformanceFrequency) is very often too small a number to
- convert to ticks/usec - it ends up losing about 20% of the elapsed
- time in elapsed calculations. So, on Win32 only, the
- global_scale_factor is now in ticks/msec, not ticks/usec. Adjusted
- all of the conversions to ACE_Time_Value, nanoseconds, etc. to
- account for this.
-
-Wed Sep 20 08:24:34 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile.am (INLINE_FILES):
-
- Corrected `CDR_Base.i' to `CDR_Base.inl'.
-
-Wed Sep 20 08:12:20 2000 Ossama Othman <ossama@uci.edu>
-
- * tests/CDR_Test.cpp:
-
- Included missing `ace/SString.h' header.
-
-Tue Sep 19 17:12:29 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Basic_Types.h:
-
- Added missing include of `ace/config-all.h' and
- `ace/ACE_export.h'.
-
- Explicitly include `limits.h', `float.h' and `stdlib.h' to pull
- in basic type limits (e.g. UINT_MAX) and typedefs
- (e.g. ptr_arith_t). This allows `ace/Basic_Types.h' to be
- included as a stand-alone header. Previously, `ace/OS.h'
- must have been included at least indirectly before
- `ace/Basic_Types.h'.
-
- * ace/CDR_Base.h:
- * ace/CDR_Base.i:
- * ace/CDR_Base.cpp:
-
- Moved base ACE_CDR class to separate set of files. This reduces
- inter-header dependencies for sources that only require the CDR
- types.
-
- * ace/CDR_Stream.h:
-
- Forward declared ACE_CString, and moved inclusion of
- `ace/SString.h' to the `.cpp' file to reduce inter-header
- dependencies.
-
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
-
- Moved ACE_CString related methods to the `.cpp' file since the
- ACE_CString method is now forward declared in the
- `ace/CDR_Stream.h' header.
-
-Tue Sep 19 17:40:04 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-win32-common.h,
- ace/config-sunos5.4-centerline-2.x.h: Removed the nonsensical
- ACE_HAS_SVR5_GETTIMEOFDAY macro. Thanks to Jeff Grief for
- reporting this.
-
-Mon Sep 18 12:39:39 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.i (cuserid):
-
- When using ACE's alternate cuserid() implementation:
- - ensure that the maximum length argument is non-zero
- since it doesn't make sense to have a zero length user ID.
- - Return a static buffer if the buffer argument is zero. This
- is not reentrant but nothing else can be done in such a case.
- [Bug 619]
-
-Mon Sep 18 11:22:02 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SUN_Proactor.cpp (handle_events): Fixed a problem arising
- on 64 bit Solaris platforms. Thanks to Ganesh Pai
- <gpai@voicetek.com> for reporting this.
-
-Sun Sep 17 19:17:53 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/build_example.bor:
- Add the IORTable library to the Simple examples.
-
-Sun Sep 17 17:04:22 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/ace_flags.bor:
- Add support for the IORTable library under Borland C++
-
-Sat Sep 16 16:11:39 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/CDR_Array_Test.cpp:
- Under some circumstances the buffers allocated for marshaling
- did not have room for the alignment bytes. The problem was
- fixed by a small overallocation.
-
-Fri Sep 15 16:04:26 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile.bor:
- Update the Borland Makefile
-
-Thu Sep 14 11:59:48 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Local_Name_Space_T.cpp (resolve_i, unbind_i):
- * ace/Local_Tokens.cpp (acquire, tryacquire, renew):
- * ace/Message_Queue_T.cpp (enqueue_prio, enqueue_head,
- enqueue_tail, next):
- * ace/Stream.cpp (open):
- * ace/Task.cpp (suspend, resume, activate):
- * ace/Token_Invariants.cpp (mutex_acquired, reader_acquired,
- writer_acquired):
-
- Fixed g++ "control reaches end of non-void function" warnings.
-
- * bin/bootstrap (ACE_HTML_MAN_PAGES):
-
- Fixed sed expression so that all man pages ending with `.3' are
- substituted with HTML man pages ending with `.html', not just
- the last man page in the list.
-
-Wed Sep 13 15:21:34 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Synch_T.cpp (ts_init, ts_object):
-
- Moved code in terminating else block outside of that block, and
- removed unnecessary else clauses. This fixes "control reaches
- end of non-void function" warnings from GNU C++.
-
- * bin/autoconf_compile:
-
- Changed mail subject prefix from "[AUTOCONF_COMPILE]" to
- "[AUTO_COMPILE]" so that those monitoring the build logs won't
- have to setup an additional mail filter.
-
-Wed Sep 13 15:05:08 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/ACE.cpp
- ace/SOCK_Dgram_Bcast.cpp
- ace/config-chorus.h
- include/makeinclude/platform_chorus4.x_g++.GNU
-
- Applying changes made by Wei Chiang <Wei.Chiang@nokia.com>.
- Corrects a problem with recognizing ip interfaces due to dynamic
- size of struct ifreq.
-
- Modified config-chorus.h to correctly set the CHORUS macro to the
- correct version and to undefine ACE_HAS_PTHREAD_PROCESS_ENUM if
- using Chorus 4.0.
-
- Added CHORUS_4 to the CPPFLAGS which corrects a problem with make
- depend.
-
- Thanks Wei for finding all of these problems.
-
-Wed Sep 13 15:05:42 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ace/OS.h:
-
- ACE_HAS_PACE type redefinitions. L:3180.., L:2250
-
- * ace/OS.i:
-
- ACE over NT implements two different kinds of mutex's.
- One is a lighter CRITICAL SECTION which has a distinct
- set of associated functions. In ACE_HAS_PACE code, these
- functions are calling each other (on POSIX compliant
- platforms, these are defined to be the same types) but
- NT needs to distinguish the two. This usually means
- rearranging the preprocessor code. This is just the beginning.
-
-Wed Sep 13 14:33:25 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Service_Config.h (ACE_Service_Config): Made parse_args()
- a public method to work around subtle issues with linking
- services dynamically using TAO. Thanks to Paul Caffrey
- <pcaffrey@iel.ie> for motivating this and Carlos for suggesting
- the fix.
-
-Wed Sep 13 14:01:57 2000 Luther J Baker <luther@maxixe.doc.wustl.edu>
-
- * ace/OS.i (umask):
-
- Missing punctuation.
-
-Tue Sep 12 22:00:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-win32-common.h: Added missing 'FD_SETSIZE' to #undef
- directive.
-
-Tue Sep 12 15:15:54 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE_export.h (ACE_SINGLETON_DECLARATION): Added the new
- SINGLETON_DECLARE macros.
-
- * ace/Timeprobe.h: Used the new macro ACE_SINGLETON_DECLARE
- instead of ACE_SINGLETON_DECLARATION. This helps by not
- requiring the comma which makes the precompiler think that the
- comma is for an extra argument to the macro.
-
- Thanks to Phil Mesnier <mesnier_p@ociweb.com> for reporting this
- problem.
-
-Tue Sep 12 11:34:03 2000 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.{h i}: Added a new function, gettimeofday_hr()
- which returns the current time in a ACE_Time_Value using the
- high-resolution time source. This is intended to be used as the
- time retrieval function for the ACE timer queues. Be sure you
- call ACE_High_Res_Timer::global_scale_factor() (or instantiate
- a ACE_High_Res_Timer object) before using it to correctly
- convert the timer count to a ACE_Time_Value.
-
- * tests/Timer_Queue_Test.cpp: Added a test for using ACE_Timer_Heap
- with high-resolution timer as the time source.
-
- * tests/Reactor_Timer_Test.cpp: Added an option to run the test
- using ACE_High_Res_Timer::gettimeofday_hr instead of the
- ACE_OS::gettimeofday time retrieval. If any option is given to
- the program it uses high-res, otherwise it uses ACE_OS::gettimeofday.
-
-Mon Sep 11 12:57:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Synch.{h i cpp} (ACE_Lock, ACE_Adaptive_Lock, ACE_File_Lock,
- ACE_Semaphore, ACE_Process_Semaphore, ACE_Null_Semaphore,
- ACE_RW_Mutex, ACE_Mutex, ACE_Process_Mutex, ACE_RW_Process_Mutex,
- ACE_Null_Mutex, ACE_Thread_Mutex, ACE_Recursive_Thread_Mutex):
- Added tryacquire_write_upgrade method.
-
- * ace/Synch_T.{h i} (ACE_Lock_Adapter, ACE_Reverse_Lock): Added
- tryacquire_write_upgrade method.
-
- * ace/Token.{h i} (ACE_Token): Added tryacquire_write_upgrade
- method, which is a NOP.
-
- Thanks to Joseph Weihs <Yossi@bandwiz.com> for these suggestions.
-
-Mon Sep 11 10:08:38 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Service_Manager.cpp (handle_input): Missing semicolon in a
- do-while loop.
-
-Mon Sep 11 08:10:21 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Service_Manager.cpp: There was a problem with handle_input()
- on Win32 due to the default non-blocking mode of sockets. In
- particular, if the client was slow/overloaded, the server recv()
- would return with -1 and errno == EWOULDBLOCK. Thanks to Sandro
- Doro <doro.s@flashnet.it> for this fix.
-
- * tests: Added a new Borland-specific makefile for the ACE tests.
- Thanks to Johnny Willemsen <Johnny.Willemsen@meco.nl> for
- contributing this.
-
-Sun Sep 10 14:58:36 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * netsvcs/clients/Logger/Makefile.bor:
- I left out this file when applying Christopher's patch.
-
-Sun Sep 10 15:43:23 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Acceptor.h: Made the suspend() and resume() methods
- public. Thanks to Guy Rosen <grosen@bigfoot.com>
- for suggesting this.
-
-Fri Sep 8 16:50:52 2000 Carlos O'Ryan <coryan@ace.cs.wustl.edu>
-
- * ace/OS.h:
- * ace/config-all.h:
- Had to #include <vxWorks.h> in config-all.h to get the
- definition for FUNCPTR. With this change things are happy
- (again) on VxWorks.
-
-Fri Sep 8 13:56:50 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Thread_Exit.cpp:
- It was not compiling under Sun/CC 4.2 and 5.0.
- The fix was to make the extern "C" cleanup handler simply call
- the regular cleanup handler. That solves the access problem and
- it is cleaner code anyways.
-
-Fri Sep 8 11:30:56 2000 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/config-win32-borland.h:
- Added ACE_LACKS_INLINE_ASSEMBLY since the inline CDR assembly
- does not currently work under BCB. Thanks to
- Johnny Willemsen <Johnny.Willemsen@meco.nl> for reporting this.
-
- * ace/Makefile.bor:
- * include/makeinclude/build_dll.bor:
- * include/makeinclude/build_exe.bor:
- * include/makeinclude/build_lib.bor:
- * netsvcs/clients/Logger/Makefile.bor:
- Added support for both recursion and a build in the one makefile.
-
- * include/makeinclude/ace_flags.bor:
- * include/makeinclude/build_example.bor:
- Added new libraries for TAO.
-
-Thu Sep 07 18:10:00 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-win32-common.h:
-
- ACE_HAS_WINSOCK2 is turned on by default for all of Win32.
- Windows 98 and Windows ME should have Winsock2, and NT/2000
- also does. For Windows 95, this requires that the Winsock 2
- library for Windows 95 is added or ACE_HAS_WINSOCK2 defined to
- 0 in config.h before including config-win32.h (overriding it).
-
- Thanks to Giovanni Zito <gzito@mbox.thunder.it> for inquiring
- about this.
-
-Thu Sep 07 17:21:17 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Add the new files the ACE projects.
-
-Thu Sep 7 16:15:24 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- * ace/OS.cpp:
- Break out the dependency between the ACE_Thread_Manager and the
- OS layer. The OS layer used ACE_Thread_Adapter to create
- threads, this class depends on ACE_Thread_Manager, but on the
- path used by the OS layer the class does not use Thread_Manager
- at all. The solution was to create a base class
- (ACE_Base_Thread_Adapter) and a specialized version used in the
- OS layer (ACE_OS_Thread_Adapter).
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- Update the Makefile and the dependencies.
-
- * ace/Base_Thread_Adapter.h:
- * ace/Base_Thread_Adapter.inl:
- * ace/Base_Thread_Adapter.cpp:
- Abstract base class for ACE_Thread_Adapter. Applications
- continue to use ACE_Thread_Adapter, but the OS layer uses the
- base class (or OS_Thread_Adapter). This way we decouple the OS
- layer from the ACE_Thread_Manager class.
-
- * ace/config-all.h:
- Move the definition of ACE_THR_FUNC and ACE_THR_C_FUNC out here.
-
- * ace/OS_Thread_Adapter.h:
- * ace/OS_Thread_Adapter.inl:
- * ace/OS_Thread_Adapter.cpp:
- Implement a version of ACE_Base_Thread_Adapter that does not use
- the Thread_Manager at all.
-
- * ace/Thread_Adapter.h:
- * ace/Thread_Adapter.inl:
- * ace/Thread_Adapter.cpp:
- Removed the common code to Base_Thread_Adapter.*
-
- * ace/Thread.h:
- Include "ace/Thread_Adapter.h" directly because the OS layer
- does not include it anymore.
-
- * ace/Thread_Hook.h:
- * ace/Thread_Hook.cpp:
- This class does not need to #include Thread_Manager.h
-
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
- Add another hook to make the ACE_OS_Thread_Descriptor available
- to the OS layer when running MFC builds.
-
- * ace/Thread_Exit.cpp:
- The is_constructed_ flag is reset in the cleanup function
- instead of letting the OS layer do it.
-
-Thu Sep 7 12:07:14 2000 Ossama Othman <ossama@uci.edu>
-
- * bin/autoconf_compile (LOGBASE):
-
- Create log file with `.txt' extension instead of `.log' to
- prevent web browsers from needlessly prompting users which
- viewer should be used.
-
- * m4/acinclude.m4:
-
- Updated copyright information.
-
- * m4/platform.m4:
-
- When setting platform-specific flags, use the "$host" autoconf
- variable instead of "$target." The latter is only supposed to
- be used when building cross-platform tool chains.
-
- * m4/threads.m4 (CPPFLAGS):
-
- Place user provided preprocessor flags after the ones set by the
- configure script to allow the user to override automatically
- set flags.
-
-Thu Sep 07 14:30:49 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/auto_compile_win32.pl: Added Portable Server to the project
- lists in (DLL Debug/Release). Thanks to Bruce McIntosh
- <Bruce.McIntosh@australia.boeing.com> for reporting this
-
-Thu Sep 07 11:36:51 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.cpp (set_mode):
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i (recv, send):
-
- Do not print OpenSSL error message if ACE_NDEBUG is defined.
-
-Thu Sep 7 10:52:47 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/CDR_Array_Test.cpp:
-
- Code intended to allocate and zero and source buffer and
- destination buffer was actually zeroing the source buffer
- twice. Thanks to Johnny Willemsen <johnny.willemsen@meco.nl>
- for reporting this bug.
-
-Thu Sep 07 11:16:36 2000 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/WFMO_Reactor/test_network_events.cpp: Add a
- destructor to Network_Listener which will unregister it from the
- reactor, and prevent a doomed call to handle_close when the
- reactor runs down. Thanks to John Buckman <john@lyris.com> for
- reporting this.
-
-Wed Sep 06 19:06:57 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ACE version 5.1.9 released.
-
-Tue Sep 05 13:34:26 2000 Steve Huston <shuston@riverace.com>
-
- * ace/TP_Reactor.cpp (dispatch_i): Try to correct mis-set size_
- in the any_ready_ handle sets by sync()ing them if the reactor
- state has not been changed. This is an attempted workaround to
- a symptom of having the handle set say size_ > 0 but there are
- no bits set. The underlying cause is not known.
- Also, reverse the eval order when checking !found_io && handle_iter
- done to avoid doing another iter call when not needed.
-
-Mon Sep 04 10:25:27 2000 Steve Huston <shuston@riverace.com>
-
- * ace/TP_Reactor.cpp (dispatch_i): If a handle's bit is set via
- select in any of the masks (wr, ex, rd) and subsequently the
- handle is selected for dispatching, clear it in all masks to
- prevent possible spinning on a handle that can't be dispatched
- because its handler is suspended.
-
-Sat Sep 2 15:13:59 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CDR_Stream.h:
- Fixed typo in macro name.
-
-Sat Sep 2 12:22:59 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CDR_Stream.h:
- Define macros to initialize a LongDouble, this is needed to
- avoid warnings in some ORB code.
-
-Sat Sep 2 07:14:06 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-sunos5.5.h: Added ACE_LACKS_PLACEMENT_OPERATOR_DELETE
- to fix a bug with SunC++ 4.1. Thanks to Sameer Schabungbam
- <schabungbam@hss.hns.com> for reporting this.
-
-Fri Sep 1 16:50:50 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Configuration.cpp:
-
- The method export_section contained a delete of a void*.
- Many compilers warn about this. Cast the void* to char*.
-
-Fri Sep 1 13:25:24 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Configuration.cpp:
- * ace/Configuration.h:
-
- Checked in some fixes to ACE_Configuration sent in by
- Chris Hafey <chafey@stentorsoft.com>. Chris writes:
-
- Fixed a handle leak in export_config().
- Thanks to Matthew Adams <madams@bexusa.com> for reporting the bug.
-
- Fixed a memory leak in export_section() for binary types. Fixed a
- bug in get_binary_data() for the registry version where binary
- values > ACE_DEFAULT_BUFSIZE wouldn't be retrieved correctly. For
- win32 versions, we now export unrecognized types as BINARY values
- rather than fail entirely. Fixed a bug where the size of a new
- section name was calculated incorrectly for unicode builds.
- Thanks to Vijay Aswadhati <wyseman@planetbazaar.com> for reporting
- this. [Bug 649]
-
-Fri Sep 01 03:08:59 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Task.h:
- * ace/Thread_Manager.h:
- * ace/Thread_Manager.cpp: For some reason, the <spawn_n> method
- that takes a thread_id array did not take the <task> pointer.
- If a user "activate"'ed a task and asking for the thread_id's,
- these thread would not be marked as these task, which caused
- they unaccounted for in subsequent wast_task. Fixed the problem
- by adding the <task> argument to <spawn_n> and make sure the
- task pointer is passed in <activate> method. Thanks to Mervyn
- Quah <mquah@guoco.com> for reporting the bug.
- [Bug 616]
-
-Thu Aug 31 15:31:30 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * include/makeinclude/outputdir.bor: Added a comment to explain
- how the OBJDIR macro works when the -DPASCAL option is used.
- Thanks to Marcel Van Der Weert <mvdweert@aweta.nl> and
- Christopher Kohlhoff <chris@kohlhoff.com> for reporting this.
-
-Thu Aug 31 08:32:11 2000 Albert Wijnja <Albert.Wijnja@meco.nl>
-
- * tests/TSS_Test.cpp (ITERATIONS): replaced calculation of
- ITERATIONS so that it is now dependent on ACE_MAX_THREADS.
- [Bug 657]
-
-Wed Aug 30 10:20:04 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/run_all_list.pm:
- Enable the Trading Service tests under Minimum CORBA, since now
- they are compiled in that configuration too.
-
-Tue Aug 29 14:27:37 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_chorus4.x_g++.GNU
- Made an additional modification to use the $(MERGEDIR)/Paths
- include file if MERGEDIR is defined.
-
-Tue Aug 29 12:23:41 2000 Steve Huston <shuston@riverace.com>
-
- * ace/TP_Reactor.(h cpp): Added a new dispatch_i_protected method.
- This just wraps the call to dispatch_i in ACE_SEH_TRY/EXCEPT.
- If/when the reactor is rearranged to pluck one dispatchable event
- to call at a time, this can be removed.
-
- This fixes the removal of SEH from this entry:
- Fri Aug 25 16:29:51 2000 Steve Huston <shuston@riverace.com>
-
-Tue Aug 29 01:32:28 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Logging_Strategy.h:
- Add missing header file (Log_Msg.h)
-
-Mon Aug 28 20:37:21 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ace/OS.i (rename):
- * ace/OS.i (pipe):
-
- Changed type #if (ACE_HAS_PACE) when all the rest of the
- files use #if defined (ACE_HAS_PACE). Changed mainly for
- consistency.
-
-Mon Aug 28 18:04:17 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ace/ace_lib.dsp:
- * ace/ace_dll.dsp:
-
- Added additional #include ../PACE search directories
- to project settings.
-
-Mon Aug 28 17:43:00 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ace/config-win32.h:
-
- Added support for PACE and win32.
-
- * ace/OS.h::2283
-
- Altered code to support
- #define ACE_HAS_PACE && #define WTHREADS.
-
-Mon Aug 28 15:05:27 2000 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * ace/OS_Dirent.cpp: Changed a condition in readdir_emulation ()
- to query properly for an invalid file handle. Thanks to
- Nir Drang <Nir@bandwiz.com> for reporting this.
-
-Mon Aug 28 12:16:27 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile.am (libACE_OS_la_SOURCES, HEADER_FILES,
- INLINE_FILES):
-
- Added new Thread_{Adapter, Control, Exit, Hook} source files to
- these make variables.
-
-Mon Aug 28 11:56:42 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in (ACE_HAS_PENTIUM):
-
- Only define this macro if the hardware is x86 *and* GNU C++ is
- being used since the code enabled by this macro contains
- assembler code specific to that compiler.
- Reported by Rich Seibel <seibel_r@ociweb.com>
-
-Mon Aug 28 11:18:27 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/config-irix6.5.x-sgic++.h:
-
- Configuration header for IRIX 6.5.x contributed by J. Russell
- Noseworthy <j.russell.noseworthy@objectsciences.com>. [Bug 623]
-
-Mon Aug 28 10:27:45 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_chorus4.x_g++.GNU
- Modified the platform macros file to use the new variable
- definitions provide by the "Paths" make include file. Also,
- removed the use of the old (3.x) chorus macros file.
-
-Sat Aug 26 17:39:53 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-all.h: Added new ACE_CONST_WHEN_MUTABLE macro.
- Thanks to Edan Ayal <edan@bandwiz.com> for contributing this.
-
- * ace/Logging_Strategy: Added support for more fine-grained
- control over logging strategies and priorities. Thanks to
- Martin Krumpolec <krumpo@pobox.sk> for reporting this.
-
- * ace: Improved the "const correctness" of many Reactor methods.
- Thanks to Edan Ayal <edan@bandwiz.com> for contributing this.
-
-Sat Aug 26 15:23:54 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.cpp:
- Commented out another ACE_DEBUG statement, there should be no
- printing from the ACE_OS layer.
- Fixed use of obsolete ACE_LOG_MSG accessors for the event
- handling fields.
-
-Sat Aug 26 12:00:18 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Service_Repository.cpp: Modify the remove() method so that
- it is "re-entrant" i.e., one can call it from other svc's fini()
- called from remove(). Thanks to Martin Krumpolec
- <krumpo@pobox.sk> for contributing this fix.
-
-Fri Aug 25 18:09:04 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/config-win32.h:
- * ace/OS.cpp:
- * ace/Thread_Adapter.cpp:
- Factor out the definition of ACE_ENDTHREADEX to the
- config-win32.h file.
-
-Fri Aug 25 17:11:25 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Thread_Control.h:
- * ace/Thread_Control.cpp:
- Fixed problems with the backwards compatible configuration
- (i.e. ACE_HAS_ONLY_LATEST_AND_GREATEST not defined).
-
-Fri Aug 25 16:15:50 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS.cpp:
- * ace/Thread_Adapter.h:
- * ace/Thread_Adapter.inl:
- * ace/Thread_Adapter.cpp:
- * ace/Thread_Control.h:
- * ace/Thread_Control.inl:
- * ace/Thread_Control.cpp:
- * ace/Thread_Exit.h:
- * ace/Thread_Exit.cpp:
- * ace/Thread_Hook.h:
- * ace/Thread_Hook.cpp:
- * ace/Thread_Manager.h:
- * ace/Thread_Manager.i:
- * ace/Thread_Manager.cpp:
- Move ACE_Thread_Adapter and its friends to a new directory.
- This was important to discover why OS.o depends on
- Thread_Manager.o and how we can break that dependency.
- I'm commiting the change because it will help the compiler when
- linking static libraries and it is easier to maintain this way.
-
- * ace/OS_String.cpp:
- Cosmetic changes.
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/ace.icc:
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Add all the new files to the system.
-
- * tests/Task_Test.cpp:
- We must #include the Thread_Hook.h file directly
-
- * */Makefile:
- Updated all the dependencies for ace.
-
-Fri Aug 25 15:15:27 2000 Ossama Othman <ossama@uci.edu>
-
- * Makefile.am (EXTRA_DIST):
-
- Added libtool shell script fragments `ltcf-c.sh' and
- `ltcf-cxx.sh' to the list of additional files to be packaged
- with the distribution.
-
- * ace/Makefile (TEMPLATE_FILES):
-
- Added `Hash_Map_With_Allocator_T' to the list of template
- source files. It was missing.
-
- * ace/Makefile.am:
-
- Updated to include all newly added source files.
-
-Fri Aug 25 16:29:51 2000 Steve Huston <shuston@riverace.com>
-
- * ace/TP_Reactor.cpp: Temporarily remove the ACE_SEH directives
- to get the build working on Win32. Will fix this correctly and put
- in a new file soon.
-
-Fri Aug 25 15:43:28 2000 Steve Huston <shuston@riverace.com>
-
- * docs/ACE-guidelines.html: Add the "use this->member" rule when
- referring to member functions or variables. Thanks to Edan Ayal
- <edanayal@yahoo.com> for the reminder to add this rule.
-
-Fri Aug 25 12:12:40 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS.cpp:
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
- * ace/config-all.h:
- I removed the direct cyclic dependency between the OS layer and
- Log_Msg. The OS layer does not use Log_Msg anymore, but it does
- use parts of ACE_Thread_Manager so there is some work left to
- do.
- There was a semantic change involved: the Win32 exception
- handlers used to be TSS, now they are global. There was not a
- real use case for that feature. Users that enable
- ACE_HAS_ONLY_LATEST_AND_GREATEST will not get the TSS version of
- the functions, I think it is better to make the change visible
- than hide it behind a seemingly compatible interface that
- actually breaks at run-time.
-
-Fri Aug 25 14:29:27 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Select_Reactor_T.h: Added new method, is_suspended_i (ACE_HANDLE)
- to see if the handle is suspended or not. It's used in the TP_Reactor
- to avoid dispatching suspended handlers.
-
- * ace/Select_Reactor_T.cpp: New method, is_suspended_i.
- (any_ready_i): Do not clear this->ready_set_ if that's the
- set that was scanned for ready bits. TP_Reactor
- now uses that set directly, and clearing it
- sort of defeats the purpose.
- (suspend_i): Fixed function name in ACE_TRACE.
-
- * ace/TP_Reactor.h: Added dispatch_i function; Removed dispatch_io_set
- function and the ACE_EH_Dispatch_Info dispatch_info_ member -
- they're not used anymore.
-
- * ace/TP_Reactor.cpp (handle_events): Does not call handle_events_i
- in Select_Reactor_T anymore. New function, dispatch_i, handles
- the work that handle_events_i does for ACE_Select_Reactor - does
- the wait_for_multiple_events, dispatches timers, signals, and
- notifications; then, though, it records one dispatchable I/O
- event for return to handle_events (similarly to what dispatch_io_set
- used to do when it was called from handle_events_i). All of the
- token acquiring and releasing now goes on in this function only.
- Also, the return value (number of dispatched events) is now
- correct.
-
- The effect of all this is that TP_Reactor now saves the
- ready_set_ bits and the threads running the reactor will dispatch
- the handlers one by one until they're gone or the reactor state
- changes in a way that forces select to be re-done.
-
- This set of changes fixes Bugzilla # 567.
-
-Fri Aug 25 14:23:36 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Handle_Set.i (reset): Commented out the #if !defined for
- ACE_HAS_BIG_FD_SET; use FD_ZERO to clear the fd bits. This was
- previously not being done for Linux (which has ACE_HAS_BIG_FD_SET)
- and it caused grief in the reactor when scanning for bits in
- sync (). This caused the (new, see above) TP_Reactor to always
- think there were many bits set in ready_set_ after each dispatched
- I/O and needlessly scan through them all.
-
-Fri Aug 25 09:22:11 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU
- Modified check for SunCC 5 to work with 5.0 and 5.1 (Forte).
-
-Thu Aug 24 09:01:23 2000 JLopez <jlopez@uida.es>
-
- * ace/config-tru64.h: #define ACE_LACKS_SYSTIME_H with
- DIGITAL_UNIX >= 0x40E, not 0x40F, because that's needed
- on Tru64 UNIX 4.0E. Thanks to jlopez@uida.es for
- reporting this.
-
-Mon Aug 21 10:07:39 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/RMCast_IO_UDP.cpp:
- Fixed warnings about unused variables.
-
- * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp:
- Add newline to debug output, it was completely unreadable
- otherwise.
-
- * ace/RMCast/Makefile:
- * tests/RMCast/Makefile:
- Updated file list and dependencies.
-
-Mon Aug 21 08:58:19 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * Another iteration on the design. This time we use a single
- Module to process IO events, the same class can be used on the
- receiver and sender sides. The type of proxies is fixed, all
- the variation is moved into the Modules, controlled by a module
- factory.
-
- * ace/RMCast/README:
- Add a new README file.
-
- * ace/RMCast/RMCast_Module.h:
- * ace/RMCast/RMCast_Module.cpp:
- Modules can pass and process control messages as well as data
- messages, add new methods for the control messages.
-
- * ace/RMCast/RMCast_IO_UDP.h:
- * ace/RMCast/RMCast_IO_UDP.i:
- * ace/RMCast/RMCast_IO_UDP.cpp:
- New class to manage all the IO events.
-
- * ace/RMCast/RMCast_UDP_Event_Handler.h:
- * ace/RMCast/RMCast_UDP_Event_Handler.i:
- * ace/RMCast/RMCast_UDP_Event_Handler.cpp:
- Modified to use the new RMCast_IO_UDP class.
-
- * ace/RMCast/RMCast_UDP_Proxy.h:
- * ace/RMCast/RMCast_UDP_Proxy.i:
- * ace/RMCast/RMCast_UDP_Proxy.cpp:
- New module used for both the client and server sides.
-
- * ace/RMCast/RMCast_Module_Factory.h:
- * ace/RMCast/RMCast_Module_Factory.i:
- * ace/RMCast/RMCast_Module_Factory.cpp:
- Create and destroy a module stack. Used by both the receiver
- and sender sides to control the type of event processing they
- can perform.
-
- * ace/RMCast/RMCast.h:
- Minor changes in the field names and comments.
-
- * ace/RMCast/RMCast_Fragment.h:
- * ace/RMCast/RMCast_Fragment.cpp:
- * ace/RMCast/RMCast_Reassembly.h:
- * ace/RMCast/RMCast_Reassembly.cpp:
- Modified to use the new methods in the Module interface.
-
- * tests/RMCast/RMCast_Fragment_Test.cpp:
- * tests/RMCast/RMCast_Reassembly_Test.cpp:
- * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp:
- Modified to use the new classes.
-
- * tests/RMCast/RMCast_Tests.dsw:
- * tests/RMCast/RMCast_UDP_Best_Effort_Test.dsp:
- Add new project file for the UDP best effort test.
-
- * ace/RMCast/RMCast.dsp:
- Update the project file.
-
- * ace/RMCast/RMCast_Sender_Proxy.h:
- * ace/RMCast/RMCast_Sender_Proxy.i:
- * ace/RMCast/RMCast_Sender_Proxy.cpp:
- * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.h:
- * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.i:
- * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.cpp:
- * ace/RMCast/RMCast_Sender_Proxy_Factory.h:
- * ace/RMCast/RMCast_Sender_Proxy_Factory.i:
- * ace/RMCast/RMCast_Sender_Proxy_Factory.cpp:
- * ace/RMCast/RMCast_UDP_Receiver.h:
- * ace/RMCast/RMCast_UDP_Receiver.i:
- * ace/RMCast/RMCast_UDP_Receiver.cpp:
- * ace/RMCast/RMCast_UDP_Sender.h:
- * ace/RMCast/RMCast_UDP_Sender.i:
- * ace/RMCast/RMCast_UDP_Sender.cpp:
- Removed.
-
-Fri Aug 18 12:36:21 2000 Steve Huston <shuston@riverace.com>
-
- * ace/SUN_Proactor.cpp (find_completed_aio): Wrapped ACE_GUARD_RETURN
- with ACE_MT to build ok single-threaded.
-
-Thu Aug 17 05:48:51 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-win32-common.h: Wrapped the redefinition of FD_SETSIZE
- to #undef if it's already set to avoid a compiler/pre-processor
- warning. Thanks to Johnny Willemsen <Johnny.Willemsen@meco.nl>
- for contributing these.
-
-Wed Aug 16 06:03:11 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Select_Reactor_Base.h: Make the notify_queue_lock_ in
- ACE_Select_Reactor_Notify an ACE_SYNCH_MUTEX rather than an
- ACE_SYNCH_RW_MUTEX to be consistent. Thanks to Ivan Murphy for
- reporting this.
-
-Tue Aug 15 20:54:14 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Logging_Strategy.cpp:
- * ace/Logging_Strategy.h:
- * ace/OS.i:
- * ace/SOCK_Dgram_Mcast_QoS.cpp:
- * ace/ace_wchar.h:
-
- Fixed miscellaneous wide character support problems.
- Also [Bug 600]
-
-Mon Aug 14 21:55:54 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/OS.{h,i}:
- Added function typedefs for pace_signal for compiling
- ACE with PACE for LynxOS.
-
-Fri Aug 11 17:49:36 2000 Steve Huston <shuston@riverace.com>
-
- * ace/TP_Reactor.cpp: Add #include "ace/Thread.h" to pick up the
- definition of ACE_Thread::self ().
-
-Fri Aug 11 16:24:13 2000 Shawn Hannan <hannan@tango.cs.wustl.edu>
-
- * ace/OS.i: For VXWORKS, changed checks of errno against
- S_objLib_OBJ_TIMEOUT to S_objLib_OBJ_UNAVAILABLE after calls
- to semTake with timeout parameter set to NO_WAIT (i.e., 0).
- semTake will set errno to _UNAVAILABLE, not _TIMEOUT, if
- the semaphore is empty and the timeout parameter is 0.
- Thanks to Peter Fischer <fischer@softec.de> for reporting
- this.
-
-Fri Aug 11 13:20:40 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * apps/gperf/src/gperf_lib.dsp: Changed the format for generated
- debug info from C7 to "Program Database" to conform to rest of
- the ACE project files. Thanks to Espen Harlinn
- <espen.harlinn@seamos.no> for reporting this.
-
-Fri Aug 11 11:06:30 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU: moved
- -hidden /usr/lib/cmplrs/cxx/libcxxstd.a -non_hidden to end
- of link line by moving it from SOFLAGS to the end of LIBS.
- This allows links to succeed with -D__USE_STD_IOSTREAM. Thanks
- to Jorn Jensen <jornj@funcom.com> for finding this solution to
- the link problem, and to Michael Kramer <kramer@ave.ac.agit.de>
- for verifying that it works.
-
-Fri Aug 11 07:40:10 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (open): Removed an unnecessary ACE_UNUSED_ARG(sh).
- Thanks to Pedro Brandao <pbrandao@inescn.pt> for reporting this.
-
-Thu Aug 10 12:22:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Svc_Handler.h (close): Added some comments to help make this
- function easier to understand.
-
-Thu Aug 10 12:15:16 2000 Steve Huston <shuston@riverace.com>
-
- * ace/POSIX_Proactor.(h cpp) (ACE_POSIX_AIOCB_Proactor): Surround
- definition of mutex_ member in ACE_MT_SAFE; use ACE_MT around
- ACE_GUARD_RETURN macros to build clean without threads.
-
-Thu Aug 10 09:31:51 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-cxx-common.h: with __USE_STD_IOSTREAM, added
- #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1. Now,
- the ACE library builds with __USE_STD_IOSTREAM, thanks
- to Michael Kramer <kramer@ave.ac.agit.de>.
-
- Also, removed duplicate #define ACE_HAS_STANDARD_CPP_LIBRARY 1,
- and move the remaining one to inside the if (__DECCXX_VER >=
- 60090010) check. I don't know if it is supported on older
- versions of cxx.
-
-Thu Aug 10 04:04:31 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.cpp:
- Added pace version of thr_create and thr_exit.
-
- * ace/OS.h:
- Added pace #define for pthread_cleanup_*
- Deleted all ansi cast defines since they were
- also redundantly defined in config-all.h
-
- * ace/OS.i:
- Put all pace functions in the global scope. Minor
- fixes.
-
- * examples/Shared_Malloc/Malloc.cpp
- Removed template instantiations which are duplicated
- in ACE.cpp.
-
-Wed Aug 9 18:16:26 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/RMCast.h:
- * ace/RMCast/RMCast.i:
- * ace/RMCast/RMCast.cpp:
- Document the state transitions for the receivers, the message
- formats, and the state transitions for the senders.
-
- * ace/RMCast/RMCast_Module.h:
- * ace/RMCast/RMCast_Module.i:
- * ace/RMCast/RMCast_Module.cpp:
- Instead of using the ACE ASX framework we are using a lighter
- weight class hierarchy. The Module interface will contain
- explicit calls for all the relevant control messages, making it
- easier to implement and debug.
- In the future we may move back to the ASX framework, once all
- the implementation problems have been nailed down.
-
- * ace/RMCast/RMCast_Fragment.h:
- * ace/RMCast/RMCast_Fragment.i:
- * ace/RMCast/RMCast_Fragment.cpp:
- Use the RMCast_Module classes instead of ACE_Task.
- The header information is propagated in the RMCast::Data
- structure and put on a separate iovec entry by the bottom module
- in the stack.
-
- * ace/RMCast/RMCast_Partial_Message.h:
- * ace/RMCast/RMCast_Partial_Message.cpp:
- Fixed missing #include and corrected a number of problems in the
- implementation of the reassembly algorithm. The randomized test
- passes cleanly now, even on machines with multiple CPUs.
-
- * ace/RMCast/RMCast_Reassembly.h:
- * ace/RMCast/RMCast_Reassembly.i:
- * ace/RMCast/RMCast_Reassembly.cpp:
- Use the RMCast_Module classes instead of ACE_Task.
- The header information is propagated in the RMCast::Data
- structure and obtained from the first bytes in the message
- decoded, but all that magic is performed by the Module at the
- bottom of the stack.
-
- * ace/RMCast/RMCast_Sender_Proxy.h:
- * ace/RMCast/RMCast_Sender_Proxy.i:
- * ace/RMCast/RMCast_Sender_Proxy.cpp:
- This class is used in the receiver side to maintain information
- about one sender, and to provide an entry point to the
- per-sender module stack.
-
- * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.h:
- * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.i:
- * ace/RMCast/RMCast_Sender_Proxy_Best_Effort.cpp:
- An specialized Sender_Proxy that ignores all the control
- messages, essentially working in best effort mode.
-
- * ace/RMCast/RMCast_Sender_Proxy_Factory.h:
- * ace/RMCast/RMCast_Sender_Proxy_Factory.i:
- * ace/RMCast/RMCast_Sender_Proxy_Factory.cpp:
- Define the interface to create Sender_Proxy instances. The
- application provides an instance of this class in the receiver
- side to customize the protocol.
-
- * ace/RMCast/RMCast_UDP_Receiver.h:
- * ace/RMCast/RMCast_UDP_Receiver.i:
- * ace/RMCast/RMCast_UDP_Receiver.cpp:
- Implement a UDP based receiver.
- Applications create an instance of this class, customized
- through the Sender_Proxy_Factory, to receive messages.
- The class can be used in (timed) blocking mode or through the
- reactor (using the UDP_Event_Handler helper class).
-
- * ace/RMCast/RMCast_UDP_Sender.h:
- * ace/RMCast/RMCast_UDP_Sender.i:
- * ace/RMCast/RMCast_UDP_Sender.cpp:
- A Module that sends a single fragment using UDP multicast.
- This version does not send or receive any control messages, so
- it is best-effort.
-
- * ace/RMCast/RMCast_UDP_Event_Handler.h:
- * ace/RMCast/RMCast_UDP_Event_Handler.i:
- * ace/RMCast/RMCast_UDP_Event_Handler.cpp:
- Adapter between the Reactor and the UDP_Sender class.
-
- * tests/RMCast/RMCast_Fragment_Test.cpp:
- * tests/RMCast/RMCast_Reassembly_Test.cpp:
- Fixed to match the new interfaces
-
- * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp:
- New unit test for the best effort UDP based senders and
- receivers.
- It creates a sending thread that continuosly send messages to a
- single multicast address, meanwhile the main thread receives all
- the messages and verifies that they have the expected contents.
- It should be expandded to randomize the contents and create
- multiple sending threads.
-
- * tests/RMCast/Makefile:
- * ace/RMCast/Makefile:
- Add new files, updated dependencies
-
- * ace/RMCast/RMCast_Header_Size.h:
- * ace/RMCast/RMCast_Header_Size.cpp:
- Removed
-
-Wed Aug 9 13:28:20 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Queue_T.cpp (dequeue_head_i): Make sure to reset
- head_ and tail_ to 0 when the cur_count_ drops to 0. Thanks to
- Zoran Ivanovic <Zoran_Ivanovic@i2.com> for this fix.
-
-Wed Aug 09 18:06:40 2000 Pradeep <pradeep@cs.wustl.edu>
-
- * ACE version 5.1.8 released.
-
-Wed Aug 09 10:10:45 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/CDR_Array_Test.cpp: disabled LongLong test if
- the platform doesn't have native long long support.
- ACE's long long emulation doesn't have sufficient
- capability to support what the test needs.
- Thanks to Peter Kroener <peter.kroener@icn.siemens.de>
- for reporting this. [Bug 632]
-
-
-Tue Aug 08 10:35:04 2000 Rich Seibel <seibel_r@ociweb.com>
-
- * ace/config-sunos5.8.h: added. We have compiled successfully
- with it on Solaris 8.0 using both gcc 2.95.2 and Sun 5.0 compilers.
- It simply includes the 5.7 config.h file. I have noted that there
- are some possible efficiencies which autoconfig finds, but this
- works.
-
-Mon Aug 7 21:05:35 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * examples/QOS/server.dsp:
- * examples/QOS/client.dsp: Made changes to add the relative path
- for aced.lib.
-
-Mon Aug 07 07:31:23 2000 Peter Fischer <fischer@softec.de>
-
- * ace/OS.cpp (cond_timedwait): on VxWorks, handle
- S_objLib_OBJ_UNAVAILABLE by setting error to ETIME
- if msec_timeout is 0. This allows Message_Queue_Test
- to succeed.
-
- * tests/run_tests.vxworks: re-enabled Message_Queue_Test.
-
-Sun Aug 6 21:40:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.i:
- * ace/OS.cpp:
- * ace/OS_String.cpp:
- * ace/OS_String.h:
- * ace/OS_String.inl:
- * ace/ace_wchar.h:
- * ace/config-all.h
- * ace/config-linux-common.h:
- * ace/config-win32-common.h:
-
- Fixed up miscellaneous problems with ACE_HAS_WCHAR on Linux.
- Highlights are:
-
- - Added ACE_HAS_VFWPRINTF and ACE_HAS_VFWPRINTF to NOTSUP a
- couple of methods, since they don't seem to be available yet.
- - Added ACE_LACKS_WCSDUP_PROTOTYPE, and added the prototype.
- - Removed an extra copy of itoa_emulation (..wchar_t..).
- - Added some static_cast's to remove unsigned/signed comparison
- warnings.
- - Added ACE-HAS_SAFE_WCSTOK, since the version supplied with MSVC
- is the multi-threaded unsafe version (just like strtok). Here
- it is similar to strtok_r.
-
-Sun Aug 6 17:03:29 2000 Ossama Othman <ossama@uci.edu>
-
- * include/makeinclude/wrapper_macros.GNU (CPPFLAGS):
-
- Define ACE_HAS_SSL=1 instead of just defining ACE_HAS_SSL
- without an explicit value.
-
-Sat Aug 5 21:49:12 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.cpp:
- * ace/OS_String.h:
- * ace/OS_String.inl:
- * ace/config-win32-borland.h:
-
- Chris Kohlhoff pointed out to me that Borland does have itoa,
- but the signature is slightly different (itoa, not _itoa).
- Added it back in for Borland and added some preprocessor
- commands that will keep the emulation code from being included
- unless it is needed.
-
-Sat Aug 5 11:19:23 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-win32-common.h:
- * ace/config-win32-msvc.h:
-
- Moved ACE_HAS_ITOA to msvc.h, since it is compiler dependent (and
- Borland doesn't have it).
-
-Sat Aug 05 11:26:08 2000 Ossama Othman <ossama@uci.edu>
-
- * bin/generate_export_file.pl:
-
- Changed "#if !defined (...)" include guard to "#ifndef ..."
- since some preprocessors enable "process once" optimizations if
- the latter form is used.
-
-Sat Aug 5 01:13:01 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.cpp:
- * ace/OS_String.h:
- * ace/OS_String.inl:
-
- Added itoa, which takes in a value, string, and radix. It then
- populates the string with the representation of the value in that
- radix.
-
- * ace/config-win32-common.h:
-
- Turned on ACE_HAS_ITOA.
-
-Fri Aug 4 15:53:27 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp:
- The owner_ field has no effect in the TP reactor, but setting it
- or checking its value wakes up the leader thread. This can
- result in performance problems for applications that use both TP
- and regular reactors, such as TAO.
- Thanks to Brian Wright <bwright@paladyne.com> for detecting the
- problem and putting us in the right track to solve it.
-
-Thu Aug 3 17:50:39 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * THANKS:
- * ace/config-irix6.x-sgic++-nothreads.h:
- * include/makeinclude/platform_irix6.x_sgic++.GNU:
- Define ACE_HAS_EXCEPTION in the command line, so we can
- configure exceptions in a single spot.
- Enabled the -LANG:std option by default.
- Detect if -LANG:std is used and enable the corresponding ACE
- macros.
- Thanks to John Hiltenbrand <jhiltenb@uiuc.edu> for detecting
- this problem and suggesting the fixes.
-
-Thu Aug 03 17:40:01 2000 Eric Ding <qnd1@cs.wustl.edu>
-
- * include/makeinclude/platform_linux.GNU
- Remove ifeq($(threads),1), xt_reactor=0, fl_reactor=0,
- and add -I/usr/X11R6/include, -L/usr/X11R6/include to
- platform_GL flags.
- Patch supplied by Craig Rodrigues
- http://www.gis.net/~craigr
- rodrigc@mediaone.net
-
-Wed Aug 2 17:44:58 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/config-win32-borland.h: Suppress all warnings from the
- preprocessor so that the IDL compiler does not fail on
- TAO/tao/Policy.pidl.
-
- * ace/SSL/Makefile.bor:
- * include/makeinclude/ace_flags.bor: Add makefile support for the
- SSL and security libraries in ACE and TAO.
-
- The above patches were taken from
- http://www.tenermerx.com/programming/corba/tao_bcb/patch.html,
- which is the site maintained by Chistopher Kohlhoff
- <chris@kohlhoff.com>.
-
-Tue Aug 01 11:40:46 2000 Bala <bala@cs.wustl.edu>
-
- * ACE version 5.1.7 released.
-
-Mon Jul 31 22:51:11 2000 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.6 released.
-
-Sat Jul 29 08:41:48 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Makefile: don't build CDR_Array_Test with
- ACE_HAS_GNUG_PRE_2_8. Build it on LynxOS >= 3.1.0.
-
-Fri Jul 28 15:58:37 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * bin/pace_components:
- Deleting from CVS since it is being melded into
- bin/ace_components.
-
- * bin/ace_components:
- Adding commands for pace.
-
- * include/makeinclude/wrapper_macros.GNU:
- For PACE, modified so that it doesn't include the PACE
- library if we are inlining.
-
-Fri Jul 28 12:46:54 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.lst: disabled SOCK_Send_Recv_Test,
- Thread_Pool_Test, Cached_Conn_Test, and Process_Strategy_Test
- on LynxOS. The work on LynxOS 3.0.0 x86, but not
- on our LynxOS 3.1.0 PPC (maybe because it runs out of
- resources?).
-
-Fri Jul 28 11:12:39 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Thread_Mutex_Test.cpp (spawn): use 3 threads instead
- of 4 (ACE_MAX_THREADS) on LynxOS, otherwise the test doesn't
- seem to terminate.
-
-Fri Jul 28 10:47:27 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/ace-install: added this handy build+install script.
- Thanks to Eric Mitchell <emitchell@altaira.com> for
- initially authoring the script, and to Chad Elliott
- <elliott_c@ociweb.com> for converting it from tcsh to
- Bourne sh.
-
-Fri Jul 28 10:39:17 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Reader_Writer_Test.cpp (n_iterations): use
- default value of 25 instead of 50 on LynxOS as well
- as on VxWorks, so the test runs in a reasonable period
- of time (under 1.5 seconds on a 266 MHz PPC).
-
-Fri Jul 28 10:34:01 2000 David L. Levine <levine@cs.wustl.edu>
-
- * test/Semaphore_Test.cpp (ACE_ALLOWED_SLACK): set
- to 1100 if ACE isn't using a high resolution timer,
- such as on LynxOS/PPC.
-
-Fri Jul 28 10:23:03 2000 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile (DIRS, CLONE, CONTROLLED_FILES, RELEASE_LIB_FILES):
- added PACE, so that it will be in ACE 5.1.6.
-
-Fri Jul 28 07:42:50 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Makefile: build CDR_Array_Test, even on LynxOS.
- It builds and runs successfully on LynxOS 3.1.0.
-
-Fri Jul 28 00:23:37 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.h
- Slightly modified semaphore code for pace.
-
- * ace/OS.i
- Updated cond_timedwait in ACE_HAS_PACE to
- initialize name_ to null.
-
- Linux uses native gettimeofday.
-
- * docs/ACE-SSL.html
- Updated with new information about obtaining ACE+SSL.
-
-Thu Jul 27 18:03:24 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * include/makeinclude/platform_linux_lxpthread.GNU:
-
- Updated to include the current correct platform_linux.GNU.
-
-Thu Jul 27 18:17:36 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Future.h: Added some comments to ACE_Future_Rep<>::set and
- ACE_Future<>::set to say they only have an effect on the first
- call for that object. Thanks to Andres Kruse <Andres.Kruse@cern.ch>,
- Douglas C. Schmidt <schmidt@cs.wustl.edu>, and
- John Tucker <jtucker@infoglide.com> for their insight on the
- original intentions.
-
-Thu Jul 27 08:32:58 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.i
- Qualified two pace functions with the correct
- pace_ name. Added preliminary pace implementation
- for ACE_OS::gettimeofday. See PACE/ChangeLog for
- other changes relevant to ACE_OS compiled with pace.
-
-Wed Jul 26 18:08:11 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * ace/Log_Record.cpp
- * ace/ACE.cpp
- * ace/Handle_Set.cpp
- * ace/Capabilities.{cpp, h}
- Cosmetic changes required for split-cpp.
-
-Wed Jul 26 13:20:00 2000 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.h
- (ACE_Bounded_Cached_Connect_Strategy): Added a typedef member
- which I assumed wrongly would be inherited from the superclass.
-
-Tue Jul 25 22:41:53 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (ACE_Log_Msg::log): Replace use of C++ 'true'
- value with '1' so old compilers still work.
-
-Tue Jul 25 22:35:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Future.cpp (ACE_Future_Rep<T>::set): If two threads compete
- to set the value, make sure only one notifies waiters. Thanks to
- Joseph Weihs <yossi@bandwiz.com> for this fix.
-
-Tue Jul 25 20:27:26 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * ace/Naming_Context.cpp:
- Cosmetic change required for split-cpp.
-
-Tue Jul 25 18:20:37 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
- Changed pace=1 code to check for inline=1, and
- include libPACE correctly.
-
-Tue Jul 25 16:42:02 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * ace/Logging_Strategy.cpp:
- Changed #include "Logging_Strategy.h" to
- #include "ace/Logging_Strategy.h"
-
-Tue Jul 25 16:12:31 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * ace/Log_Msg.h:
- More cosmetic changes, similar to previous ChangeLog entry.
-
-Tue Jul 25 15:58:27 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * ace/Capabilities.{h, cpp}:
- * ace/Filecache.cpp:
- More fixes to allow to be used by $ACE_ROOT/bin/split-cpp.
- These changes are merely cosmetic.
-
-Tue Jul 25 13:30:00 2000 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.{h, cpp}: Added
- ACE_Bounded_Cached_Connect_Strategy which provides a bound on the
- cache which is checked before creating new handlers. Thanks to
- Edan Ayal <edana@bandwiz.com> for contributing this class and
- Susan Liebeskind <shl@janis.gtri.gatech.edu> for brainstorming
- about it.
-
-Tue Jul 25 05:46:29 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log): Optimized the check to make sure that
- ACE_Log_Msg isn't too long. Now we can keep it in "non-debug" code!
- Thanks to Tomer for this suggestion.
-
-Mon Jul 24 22:49:09 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS_String.inl
-
- The emulation functions still need system libraries,
- which were not being included when ace was enabled.
-
-Mon Jul 24 21:22:03 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * ace/Remote_Tokens.cpp:
- * ace/Signal.{cpp,h}:
- * ace/Priority_Reactor.cpp:
- * ace/Object_Manager.{cpp,h}:
- * ace/OS.cpp:
- * ace/Parse_Node.{cpp,h}:
-
- The script $ACE_ROOT/bin/split-cpp makes some assumptions about the
- source code that it is working with. These changes allow split-cpp
- to be used with ACE. These fixes are all mostly code formatting changes.
- The functionality should not be changed in any case.
-
-Mon Jul 24 20:21:47 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU
- * include/makeinclude/rules.local.GNU
- * include/makeinclude/rules.lib.GNU
- Added support for make split=1 which will use the split-cpp script
- when compiling. This should be considered an extremely beta,
- use-at-your-own-risk feature for the time being.
-
-Mon Jul 24 20:13:59 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * bin/split-cpp:
- Initial check-in. This script is used to split up C++ source files
- into smaller C++ source files, each containing one static data
- declaration or one function definition. For more information, see
- the comments at the top of the file.
-
-Mon Jul 24 20:02:03 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager: Replaced ACE_Thread_Mutex with
- ACE_Recursive_Thread_Mutex to avoid nasty self-deadlocks!
- Thanks to Tom Arbuckle's <arbuckle@uran.informatik.uni-bonn.de>
- for reporting this.
-
- * ace/Log_Msg.cpp (log): Added a sanity check to make sure that
- long messages don't corrupt the memory. Thanks to Tomer
- Amiaz <Tomer@bandwiz.com> for contributing this.
-
-Mon Jul 24 14:03:59 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU
-
- Added the PENTIUM and PENTIUMPRO CPU's for x86 VxWorks.
-
-Mon Jul 24 10:30:35 2000 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * OS_Dirent.inl: Added the deletion of the DIR.directory_name_
- and the DIR struct itself for the Win32 emulation.
-
-Sat Jul 22 22:10:35 2000 Marina Spivak <marina@cs.wustl.edu>
-
- * config-win32-common.h
- * config-win32-visualage.h:
-
- By default WIN32 has FD_SETSIZE of 64, which places the limit
- between 61 and 64 on the number of clients a server using the
- Select Reactor can support at the same time (i.e., 64 - standard
- in, out, error). Raised the limit to 1024.
-
-Fri Jul 21 21:24:09 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Parse_Node.cpp: Updated the ACE_Object_Name and
- ACE_Function_Node constructors to use the new ACE::ldname()
- method rather than ACE::strnew(). Thanks to Chris Kohlhoff for
- this fix.
-
- * ace/ACE.cpp: Added a new method called ACE::ldname() so that
- dynamic loading performed by the service configurator work the
- same with BCB as with other compilers. With BCB, exported
- functions from a DLL all have a "_" prepended. Previously you
- had to explicitly add the "_" into the svc.conf or when you
- called ACE_Service_Config::process_directive. This change
- removes that need and makes BCB stuff source/config compatible
- with other compilers. This change was prompted by Lothar
- Werzinger <werzinger.lothar@krones.de> and was provided by
- Christopher Kohlhoff <chris@kohlhoff.com>.
-
-Fri Jul 21 19:22:20 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Use a .txt extension instead of .log for the log files, that
- makes it possible to view them in web browsers without
- downloading.
-
-Fri Jul 21 14:46:37 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/QoS_Decorator.h: Added ACE_Export for decorator classes for
- WinNT.
- * ace/QoS_Decorator.cpp: Removed an extra semi-colon.
-
-Fri Jul 21 09:11:36 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager: Updated the documentation to reflect the recent
- change in the notify() implementation.
-
-Thu Jul 20 23:21:11 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * examples/IPC_SAP/SSL_SAP/SSL-client.dsp:
- * examples/IPC_SAP/SSL_SAP/SSL-server.dsp:
-
- Fixed up the include paths in these projects.
-
-Fri Jul 21 00:29:38 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * examples/QOS/Receiver_QoS_Event_Handler.h:
- * examples/QOS/Receiver_QoS_Event_Handler.cpp: Added this event
- handler to handle QoS and socket data for the receiver.
-
- * examples/QOS/Sender_QoS_Event_Handler.h:
- * examples/QOS/Sender_QoS_Event_Handler.cpp: Added this event
- handler to handle QoS and socket data for the Sender.
-
- * examples/QOS/QoS_Util.h:
- * examples/QOS/QoS_Util.cpp: This class provides utility funtions
- like parsing QoS parameters for the QoS enabled applications.
-
- * examples/QOS/QoS_Signal_Handler.h:
- * examples/QOS/QoS_Signal_Handler.cpp: Used to gracefully close
- QoS sessions and shutdown RSVP signalling.
-
- * examples/QOS/FlowSpec_Dbase.h: Provides a name-Flowspec mapping
- for the standard QoS flowspecs like g711. Typical QoS flowspecs
- required for different video encoding/decoding schemes can be
- listed here.
-
- * examples/QOS/Fill_ACE_QoS.h:
- * examples/QOS/Fill_ACE_QoS.cpp: This class helps users to add
- new flow specs and provides utility functions for filling up the
- flow specs for simplex/duplex sessions.
-
- * examples/QOS/server.cpp: QoS enabled receiver application.
- * examples/QOS/client.cpp: QoS enabled sender application.
-
- * examples/QOS/Makefile:
- * examples/QOS/README
- * examples/QOS/QOS.dsw:
- * examples/QOS/client.dsp:
- * examples/QOS/server.dsp: Updated these files to reflect changes
- to the test. The above test demonstrates the use of various
- aspects of AQoSA (ACE QoS API).
-
-Thu Jul 20 23:04:30 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp
- * ace/OS_String.inl
- Added pace functionality.
-
-Thu Jul 20 18:28:43 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SV_Message_Queue: Made the get_id() method const. Thanks
- to Mike Winter for suggesting this.
-
- * ace/Typed_SV_Message_Queue: Added a get_id() accessor. Thanks
- to Mike Winter <Mike.Winter@Schwab.com> for reporting this.
-
-Thu Jul 20 14:19:06 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Thread_Manager.h: Updated the comments on the various *kill*()
- methods to clarify what they do and where they are not portable.
- Thanks to Steve Huston for motivating this.
-
-Thu Jul 20 11:00:00 2000 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Caching_Utility_T.cpp: To get rid of egcs warnings on Linux,
- static casted both fields of ACE_MAX in method <clear_cache>.
- Thanks to David Levine <levine@cs.wustl.edu> for pointing this
- out. Also changed ssize_t to size_t in the cast.
-
-Thu Jul 20 08:04:13 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Rearranged some code so that the operator *=
- and the ACE_Time_Value copy constructor appear in the right
- order... Thanks to David for reporting this.
-
-Wed Jul 19 22:51:42 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (ACE_OS::cond_timedwait): For pSOS, convert absolute
- time value to relative, expressed in ticks. Account for pSOS
- behavior on timeout - returns with mutex unlocked. Thanks to
- Sarmeesha Reddy <sarmeesha@bigfoot.com> for this fix.
-
-Wed Jul 19 19:30:00 2000 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Caching_Utility_T.cpp: Rectified a typo made in method
- <clear_cache>.
-
-Wed Jul 19 17:12:50 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.h
- * ace/OS.i
- Wrapped most pace calls with ACE_OSCALL to handle EINTR
- correctly, minor corrections and adjustments to pace
- functions.
-
-Wed Jul 19 16:50:00 2000 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Caching_Utility_T.cpp: Changed the formula to calculate the
- <entries_to_remove> as per the contribution by Edan Ayal
- <edana@bandwiz.com>. Thanks to Edan for discovering this bug and
- contributing the solution for it.
-
-Wed Jul 19 08:40:10 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.i: Moved the new operator *= so that it's *after*
- the inlined sec() and usec() members.
-
-Tue Jul 18 23:30:59 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.h
-
- Modified earlier changes to improve support for LynxOS
- signals using pace.
-
- * ace/ACE.cpp
- * ace/OS_Memory.h
-
- Use pace system calls instead of regular calls
- when pace is enabled.
-
-Tue Jul 18 12:55:55 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * include/makeinclude/platform_lynxos.GNU:
- Added PACE_SYSVER assignment to distinguish different
- versions of LynxOS in the future.
-
-Mon Jul 17 23:44:36 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/Makefile (OTHER_FILES): Moved SOCK_Dgram_Mcast_QoS to the
- other files category. It really belongs to a separate category
- that I'll create later.
-
-Mon Jul 17 12:41:25 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (LOCAL_EXTERN_PREFIX):
-
- Changed #define LOCALEXTERN_PREFIX to #define LOCAL_EXTERN_PREFIX
-
-Mon Jul 17 05:38:15 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager.cpp (open): Zapped a stray register_handler()
- call that was mistakenly left around during the recent merge.
- Thanks to Darrell Brunsch for reporting this.
-
-Sun Jul 16 18:53:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/TTY_IO: Removed the #define for ACE_BUILD_DLL, since it
- is already defined in the .dsp file.
-
-Sun Jul 16 19:36:17 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/QoS_Session.h:
- * ace/QoS_Session_Impl.{cpp,h,i}:
- * ace/SOCK_Dgram_Mcast_QoS.cpp: Changed these files to accomodate
- the new QoS decorator classes.
-
- * ace/QoS_Decorator.{cpp,h}: Added the QoS decoration for the
- ACE_Event_Handler that enables it to catch the RAPI events along
- with the usual socket events.
-
-Sun Jul 16 08:49:44 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS: Added multiplication operators to ACE_Time_Value. Thanks
- to Tomer Amiaz <Tomer@bandwiz.com> for contributing these.
-
- * ace/Process_Manager: To fix deadlocks with the Process_Manager
- on UNIX applied the following fixes:
-
- Use the notify() capability of the reactor from the signal
- handler. This allows the signal handler to notify the reactor
- (over a pipe) that the signal should be processed. This is done
- completely without MT locks. If
- ACE_HAS_REACTOR_NOTIFICATION_QUEUE is defined,
- ACE_Select_Reactor_Notify::notify_queue_lock_ is now made a
- recursive mutex.
-
- Thanks to Roger Larsson <larssoro@hotmail.com> for contribution
- these fixes.
-
- * ace/TTY_IO: Added additional support for the ACE serial line I/O
- wrapper facades. Thanks to Martin Stack <mstack@cambertx.com>
- for contribution this.
-
- * ace/Service_Repository.h,
- * ace/Service_Object.h,
- * ace/Service_Config.h: Added the following aliases:
-
- #define ACE_Component ACE_Service_Object
- #define ACE_Component_Config ACE_Service_Config
- #define ACE_Component_Repository ACE_Service_Repository
-
- to be consistent with the terminology in the POSA2 book.
-
-Fri Jul 14 19:31:39 2000 Eric Ding <qnd1@cs.wustl.edu>
-
- * ace/config-linux.h
- * ace/config-linux-lxpthreads.h
- * include/makeinclude/platform_linux.GNU
- * include/makeinclude/platform_linux_lxpthreads.GNU
-
- Changing the default config/platform setting to thread enable on Linux
-
-Fri Jul 14 19:03:49 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
- Added -DPACE_HAS_ALL_POSIX_FUNCS to the pace flag.
-
- * ace/OS.h:
- Changed typedef of ACE_SignalHandler on LynxOS to
- use pace_sig_pf when pace is enabled. Also changed
- SIG_IGN accordingly.
-
-Fri Jul 14 17:25:29 2000 Steve Huston <shuston@riverace.com>
-
- * tests/UNIXserver.conf:
- * tests/UNIXclerk.conf:
- * tests/UNIXtokens.conf:
- * tests/Win32server.conf:
- * tests/Win32clerk.conf:
- * tests/Win32tokens.conf: Look for _make_ACE_Logging_Strategy in
- ACE, not netsvcs. It was moved there recently.
-
-Fri Jul 14 12:00:26 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.h (ACE_Log_Msg): Replaced class comments with some new
- text submitted by Jerry D. DeMaster <jdemaster@ritesolutions.com>
- that explain the per-thread and per-process logging enablement
- clearly.
-
-Fri Jul 14 00:28:07 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.i
-
- Updates to srand and qsort to eliminate return (for pace).
-
-Thu Jul 13 20:25:51 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ACE-INSTALL.html: Updated this file to reflect current reality
- wrt Borland C++. Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for reporting this.
-
-Thu Jul 13 16:34:36 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
-
- Added 'pace' flag to use pace as the underpinnings
- of ACE_OS.
-
-Thu Jul 13 14:50:39 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS.h: Undid the change
- Mon Jun 19 17:33:28 2000 Douglas C. Schmidt
-
- This was creating problems in the IRIX builds. Moreover this
- also busted the 'thread-per-connection' strategy in TAO. The
- change actually removed a conditional check. I have added that
- back. Thanks to Nanbor Wang for guiding me through this.
-
-Thu Jul 13 14:41:58 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.i:
-
- Minor updates to PACE functions which used to use
- double parenthesis.
-
-Thu Jul 13 12:58:26 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/ACE_SSL.dsp:
-
- Added `SSL_Export.h' to the list of headers.
-
- * ace/SSL/SSL_Context.cpp:
-
- Moved preprocessor conditional that checks if ACE_HAS_SSL is
- defined after the inclusion of SSL_Context.h. This fixes a link
- error that occurs when ACE_HAS_SSL is defined in the config
- header instead of on the command line.
-
-Thu Jul 13 10:55:44 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: changed ssl check from ifneq null to
- ifeq 1, to allow ssl = 0.
-
-Thu Jul 13 10:10:54 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: move ssl check to after include of wrapper_macros.GNU,
- so that ssl=1 can be set in platform_macros.GNU.
-
-Thu Jul 13 09:33:45 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (send, recv):
-
- Fixed typos where size of buffer being sent/received was passed
- to the OpenSSL SSL_get_error() function, instead of the return
- status of the SSL_write()/SSL_read() call. This will fix
- some broken error handling.
- Reported by Craig Perras <cperras@watchguard.com>
-
-Thu Jul 13 07:55:41 2000 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added general guideline to not
- end text lines with spaces, and the .emacs incantation
- that removes them. Thanks to Craig Rodrigues <crodrigu@bbn.com>
- for suggesting this addition, which we already check for
- when committing to our CVS repository.
-
-Wed Jul 12 09:42:21 2000 Giga Giguashvili <gregoryg@paradigmgeo.com>
-
- * ace/CDR_Stream.h: added forward declaration of
- ACE_InputCDR before ACE_OutputCDR class definition.
-
-Wed Jul 12 07:26:25 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Service_Config_Test.cpp (instance): cast the u_short to
- u_long before casting to void *, to avoid KCC warning about
- casting to pointer from integer of different size.
-
-Tue Jul 11 17:20:48 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Local_Tokens.cpp (ACE_TPQ_Entry ctor): try a reinterpret cast
- of ACE_Thread::self () to u_long. We need u_long on Linux.
-
-Tue Jul 11 16:09:14 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: don't run LongUpcalls test
- with minimum CORBA. Thanks to Irfan for reporting
- that the test needs AMI to run, and minimum CORBA
- doesn't have AMI.
-
-Tue Jul 11 16:03:58 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Local_Tokens.cpp (ACE_TPQ_Entry ctor): don't cast result
- of ACE_Thread::self (), because it might be a structure.
- Thanks to Ossama for reminding me of that.
- Changed format specifier to be %u instead of %lu, to avoid
- mismatch, at least on some platforms.
-
-Tue Jul 11 14:47:48 2000 Chris Kohlhoff <chris@kohlhoff.com>
-
- * ace/config-win32-common.h:
- Use default value of 0 for ACE_USE_RCSID on Win32 since RCS IDs
- should probably not be required on this platform.
-
- * include/makeinclude/build_core_exe.bor:
- * include/makeinclude/build_core_library.bor:
- * include/makeinclude/build_dll.bor:
- * include/makeinclude/build_exe.bor:
- * include/makeinclude/build_lib.bor:
- * include/makeinclude/make_flags.bor:
- * include/makeinclude/outputdir.bor:
- * include/makeinclude/recurse.bor:
- * include/makeinclude/install.bor:
- * ace/Makefile.bor:
- Added support for 'make install'.
-
- * include/makeinclude/build_dll.bor:
- * include/makeinclude/build_exe.bor:
- * include/makeinclude/build_lib.bor:
- * include/makeinclude/clean.bor:
- Changed clean target so that files generated by the IDL compiler
- are removed.
-
- * ace/ace_wchar.h:
- * ace/config-win32-borland.h:
- * ace/OS.h:
- * ace/OS_String.h:
- * ace/OS.i:
- Bring certain types and functions into the global namespace. This
- is necessary so that the ACE headers will work the same regardless
- of any standard C++ headers that may be included beforehand.
-
-Tue Jul 11 14:21:51 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (ACE_Log_Msg::log): Added an ACE_Errno_Guard to
- prevent errors in this function from destroying errno. This function
- should be benign, just reporting, and leaving errno alone for
- further checks/logging by apps.
-
-Tue Jul 11 14:20:35 2000 Steve Huston <shuston@riverace.com>
-
- * tests/SOCK_Send_Recv_Test.cpp: Added some additional output
- to replace an assert - helps track problems quicker. Thanks to
- David Levine for this suggestion.
-
-Tue Jul 11 11:06:45 2000 Craig Rodrigues <rodrigc@mediaone.net>
-
- * ace/config-linux-common.h: in glibc 2.2, the function
- prototypes for msgsnd() and msgrcv() were changed to be POSIX
- compliant. So, ACE_LACKS_SOME_POSIX_PROTOTYPES breaks
- compilation.
-
-Tue Jul 11 11:03:50 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: chmod of kits to 664, and chgrp to doc,
- after creation.
-
-Tue Jul 11 10:45:46 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/generate_man_pages: don't try generate man pages for
- RMCast_Reassembly.h, either, because it trips up class2man.
- [Bug 608]
-
-Tue Jul 11 10:40:48 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: robustness improvements:
- 1) set CVSROOT and ACE_ROOT environment variables, and $logname,
- to reasonable default values if they were null.
- 2) Always prepend /project/danzon/pkg/gnu/bin to PATH. Before,
- -d was first used to check to see if it existed. But, it
- might not have been mounted, and -d won't cause it to automount.
-
-Tue Jul 11 08:24:33 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/POSIX_Asynch_IO.h,
- * ace/SUN_Proactor.h: Fixed these files so that class2man
- now generates proper manual pages. [Bug 608]
-
-Tue Jul 11 08:07:23 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/generate_man_pages: don't try generate man pages for
- RMCast_Export.h, because it's a generated file and doesn't
- have any man page formatting info. It trips up class2man.
- [Bug 608]
-
-Tue Jul 11 07:42:57 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Local_Tokens.cpp (ACE_TPQ_Entry ctor): cast result
- to ACE_Thread::self () to u_long, to avoid mismatch with
- %lu sprintf parameter.
-
-Tue Jul 11 06:21:35 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.cpp (transmit): The last two arguments to
- Event_Header were reversed! Thanks to Kim Lester
- <Kim_R_Lester@rta.nsw.gov.au> for reporting this.
-
-Mon Jul 10 20:35:08 2000 Marina Spivak <marina@cs.wustl.edu>
-
- * ACE version 5.1.5 released.
-
-Mon Jul 10 13:15:10 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/Makefile (ACE_SHLIBS):
-
- Added "-lACE" to the list of libraries that should be linked in
- to libACE_SSL, since the ACE SSL wrappers depend on ACE.
-
-Sun Jul 09 21:38:03 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/ACE_SSL.dsp:
-
- Fixed library path in "Release" configuration.
-
-Sun Jul 09 14:20:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ace_wchar.h:
-
- Added support for wchar_t on VxWorks. It now compiles, but
- unfortunately VxWorks doesn't come with any C library support
- beyond conversion to/from multi-byte character strings.
-
- This will only take effect when ACE_HAS_WCHAR is defined (it
- isn't by default). Emulation for the missing str* functions
- will be added soon.
-
-Sun Jul 09 14:00:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ace_wchar.h:
-
- Added two macros for straight out conversion of strings:
- ACE_TEXT_CHAR_TO_WCHAR and ACE_TEXT_WCHAR_TO_CHAR.
-
- * ace/adapter/README: (Added)
- * ace/adapter/ace/ACE.h: (Added)
- * ace/adapter/ace/ARGV.h: (Added)
- * ace/adapter/ace/Arg_Shifter.h: (Added)
- * ace/adapter/ace/ATM_Addr.h: (Added)
- * ace/adapter/ace/DEV_Addr.h: (Added)
- * ace/adapter/ace/Dirent.h: (Added)
- * ace/adapter/ace/DLL.h: (Added)
- * ace/adapter/ace/Dynamic_Service.h: (Added)
- * ace/adapter/ace/FIFO.h: (Added)
- * ace/adapter/ace/FIFO_Recv.h: (Added)
- * ace/adapter/ace/FIFO_Recv_Msg.h: (Added)
- * ace/adapter/ace/FIFO_Send.h: (Added)
- * ace/adapter/ace/FIFO_Send_Msg.h: (Added)
- * ace/adapter/ace/FILE_Addr.h: (Added)
- * ace/adapter/ace/Functor.h: (Added)
- * ace/adapter/ace/High_Res_Timer.h: (Added)
- * ace/adapter/ace/INET_Addr.h: (Added)
- * ace/adapter/ace/Malloc_T.h: (Added)
- * ace/adapter/ace/Memory_Pool.h: (Added)
- * ace/adapter/ace/MEM_Addr.h: (Added)
- * ace/adapter/ace/OS_Dirent.h: (Added)
- * ace/adapter/ace/OS_String.h: (Added)
- * ace/adapter/ace/Service_Config.h: (Added)
- * ace/adapter/ace/Service_Object.h: (Added)
- * ace/adapter/ace/SOCK_Dgram_Bcast.h: (Added)
- * ace/adapter/ace/SOCK_Dgram_Mcast.h: (Added)
- * ace/adapter/ace/SPIPE_Addr.h: (Added)
- * ace/adapter/ace/System_Time.h: (Added)
- * ace/adapter/ace/Task_T.h: (Added)
- * ace/adapter/ace/Trace.h: (Added)
-
- This is a initial shot at the implementation of an adaptation
- layer for ACE that provides a Wide character interface with
- a character library and vice versa.
-
- Right now the above files contain classes ending with _W that
- correspond to the actual classes (such as ACE_W). This class
- will have methods that take in wchar_t instead of char, and
- then convert the parameters and return value when calling
- the actual char implementation.
-
- Note, this is an initial implementation that isn't complete
- across all interfaces and there are memory management issues that
- still must be dealt with.
-
-Sat Jul 08 14:50:34 2000 David L. Levine <levine@cs.wustl.edu>
-
- * all Makefiles: updated dependencies.
-
-Fri Jul 7 20:24:30 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Reactor/Multicast/server.cpp: The last character 0x0D in the
- message was messing up the display. Thanks to Zoran Ivanovic
- <Zoran_Ivanovic@i2.com> for this fix.
-
-Fri Jul 07 17:17:21 2000 George Reid <greid@entrenet.com>
-
- * ace/config-mvs.h: long long support was introduced in os/390
- version 2.6, so only #define ACE_LACKS_LONGLONG_T with
- if __COMPILER_VER__ < 0x22060000.
-
- * ace/config-mvs.h: added #define ACE_LACKS_PLACEMENT_OPERATOR_DELETE,
- even though it doesn't seem to have an effect on
- ace/Svc_Handler.cpp.
-
-Fri Jul 7 09:47:36 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp (open_common): Don't
- pass in the length to the ACE_CString constructor -- just let is
- copy what's already there. Thanks to Valery Arkhangorodsky
- <valerya@servicesoft.com> for reporting this.
-
- * ace/ACE.cpp (timestamp): Make sure to insert a NUL byte at the
- end of yeartmp and timetmp. Thanks to David Levine and Purify
- for reporting this.
-
-Fri Jul 07 09:36:05 2000 David L. Levine <levine@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (handle_client):
- cast result of ACE_OS::getpid () to int, and print as an int, to
- avoid compiler warning about mismatched format specifier.
-
-Thu Jul 6 10:36:46 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.cpp: Fixed the timestamp() call so that it returns a string
- with the date that also contains the year. Thanks to Nicoletta Viale
- <nicoletta.viale@sodalia.it> for reporting this.
-
-Thu Jul 06 10:59:41 2000 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Misc/test_naming (bind,rebind,unbind,find):
- changed ACE_ASSERTs to statements that are always executed,
- even with ACE_NDEBUG set. Added ACE_ERRORs to report errors.
-
-Thu Jul 06 10:51:19 2000 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Reactor/Misc/test_time_value.cpp (main): added
- some ACE_UNUSED_ARGS with ACE_NDEBUG to eliminate warnings
- about unused variables with debug=0.
-
-Wed Jul 5 23:36:12 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.i:
- Added PACE functionality to functions whose counterparts were
- recent additions to PACE.
-
-Wed Jul 5 14:04:50 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SUN_Proactor: Added yet another handle_events() method to keep
- SunC++ from complaining! Thanks to David for reporting this.
-
-Wed Jul 05 13:19:52 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: Don't typedef pid_t for ACE_PSOS_DIAB_PPC - it's defined
- in sys/types.h.
-
-Wed Jul 05 12:06:17 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: make the pSOS section adapt better to different pSOS
- versions which seem to define different sets of errno values.
- Also merge in some additions supplied by Matt Emerson
- <memerson@escient.com> to define needed types based on the
- ACE_PSOS_CANT_USE_SYS_TYPES config macro. (I think this macro
- may have been added a while back by someone else working on the
- pSOS port, but was not noted in this ChangeLog).
-
-Wed Jul 05 11:24:51 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-psos-diab-ppc.h: Added ACE_HAS_EXCEPTIONS in the
- non-g++ section.
-
-Tue Jul 4 10:12:12 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SUN_Proactor: Added a new method with the name/signature
-
- virtual int handle_events (ACE_Time_Value &);
-
- so that we get the appropriate overloading/overriding behavior.
- Thanks to Marina for reporting this.
-
- * ace/POSIX_Proactor.cpp: Removed unnecessary parens around
- aiocb * and ACE_POSIX_Asynch_Result * to make certain compilers
- happy. Thanks to Marina for reporting this.
-
- * ace/SUN_Proactor.cpp (handle_events): Fixed an ACE_ERROR that
- should have been ACE_ERROR_RETURN. Thanks to Marina for
- reporting this.
- (start_aio): Fixed capitalization of "Op" to be "op".
-
- * ace/POSIX_Proactor.cpp,
- * ace/SUN_Proactor.cpp: Fixed improper use of TCHAR to be ACE_TCHAR
- and also fixed another stray use of "int result". Thanks to
- David Levine for reporting this.
-
-Mon Jul 3 08:04:00 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/POSIX_Proactor.h (ACE_POSIX_AIOCB_Proactor): Fixed another
- syntax error. Thanks to David Levine for reporting it.
-
-Mon Jul 3 00:22:57 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.{cpp,h}:
- Made changes to support changes made to PACE. All
- changes occured inside #ifdef ACE_HAS_PACE.
-
-Sun Jul 2 17:38:25 2000 Douglas C. Schmidt <schmidt@siesta.cs.wustl.edu>
-
- * ace/POSIX_Proactor.cpp,
- * ace/POSIX_Asynch_IO.cpp: Fixed some bugs with the integrated code,
- in particular, the use of the legacy ASYS_TEXT has been fixed.
-
-Sat Jul 1 11:33:45 2000 Alex Libman <alibman@baltimore.com>
-
- * ace/SUN_Proactor: Added new files that specialize the
- POSIX_Proactor to use the Sun-specific versions of aioread() and
- aiowrite(), which are much faster than the POSIX versions.
-
- * ace/POSIX_Proactor: Added public virtual method ProactorType get_impl_type ()
- where enum ProactorType {
- PROACTOR_POSIX, // base class type
- PROACTOR_AIOCB,
- PROACTOR_SIG ,
- PROACTOR_SUN
- };
-
- This has been done with purpose not to develop additional
- classes ACE_SUN_Asynch_Read/Write_Stream/File and to take into
- account differencies in ACE_POSIX_Asynch_Operation::cancel ()
- method.
-
- * ace/POSIX_AIOCB_Proactor: The public constructor now defines max
- number asynchronous operations which can be started at the same time:
-
- ACE_POSIX_AIOCB_Proactor ( size_t nMaxOp = 256 );
-
- ACE_RTSIG_MAX ( usually 8 ) is too small for real job.
-
- Also added proctected constructor
-
- ACE_POSIX_AIOCB_Proactor ( size_t nMaxOp , int Flg);
-
- This constructor is used by ACE_SUN_Proactor. The difference
- between constructors: public constructor calls
- create_notify_manager (see 3.) and protected does not. The
- reason: it is necessary to create ACE_AIOCB_Notify_Pipe_Manager
- instance when the virtual table for derived class is biult.
-
- Added protected method:
-
- void create_notify_manager () ;
-
- The method is called from public ACE_POSIX_AIOCB_Proactor
- constructor and ACE_SUN_Proactor constructor
- ACE_AIOCB_Notify_Pipe_Manager should be created after
- building the virtual table for the final subclass.
-
- Added protected method:
-
- void delete_notify_manager () ;
-
- The method is called from ACE_POSIX_AIOCB_Proactor and
- ACE_SUN_Proactor destructors. It is possible to call it twice,
- as it deletes ACE_AIOCB_Notify_Pipe_Manager and sets pointer to
- zero.
-
- Replaced the protected method
-
- int register_aio_with_proactor (ACE_POSIX_Asynch_Result *result)
-
- with two protected following methods:
-
- virtual int register_and_start_aio( ACE_POSIX_Asynch_Result *result,
- int Op );
- virtual int start_aio (ACE_POSIX_Asynch_Result *result, int Op );
-
- where Op means : 0-read, 1- write
-
- These methods are made both as virtual to overwrite in
- ACE_SUN_Proactor. register_and_start_aio shoud be called
- instead of old register_aio_with_proactor and it locks access to
- aiocb lists. start_aio is called only from register_and_start_aio.
-
- Added protected method to find and extract the results of the
- completed aio operation:
-
- ACE_POSIX_Asynch_Result * find_completed_aio (int & error_status,
- int & return_status );
-
- This method is called from int handle_events (unsigned long milli_seconds)
- and locks access to aiocb lists.
-
- Replace the following members :
-
- aiocb *aiocb_list_ [ACE_RTSIG_MAX];
- ACE_POSIX_Asynch_Result *result_list_ [ACE_RTSIG_MAX];
-
- with
-
- aiocb ** m_pAIOCB_list_ ;
- ACE_POSIX_Asynch_Result ** m_pResult_list_ ;
-
- The listsd are be allocated dynamically.
-
- Added thread mutex to protect the work with lists.
- ACE_Thread_Mutex m_MtxAIOCB ;
-
- * ace/POSIX_AIOCB_Asynch_Operation: The method
-
- int register_aio_with_proactor (ACE_POSIX_Asynch_Result *result);
-
- is replaced by
-
- int register_and_start_aio (ACE_POSIX_Asynch_Result *result,int Op);
-
- where Op means operation : 0 - read , 1 - write
-
- The method
-
- int cancel (void);
-
- is modified according to the type of Proactor's implementation.
-
- The following methods are changed as shown below:
-
- int ACE_POSIX_AIOCB_Asynch_Read_Stream::shared_read
- (ACE_POSIX_Asynch_Read_Stream_Result *result)
- {
- result->aio_sigevent.sigev_notify = SIGEV_NONE;
- return register_and_start_aio ( result , 0 ) ; // read
- }
-
- and
-
- int ACE_POSIX_AIOCB_Asynch_Read_Stream::shared_write
- (ACE_POSIX_Asynch_Read_Stream_Result *result)
- {
- result->aio_sigevent.sigev_notify = SIGEV_NONE;
- return register_and_start_aio ( result , 1 ) ; //write
- }
-
-Sat Jul 01 11:46:23 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-cxx-common.h: moved ACE_HAS_STANDARD_CPP_LIBRARY
- and ACE_HAS_CPLUSPLUS_HEADERS defines out of Linux-only
- section, to minimize the differences between Linux and Tru64.
- Those defines don't hurt on Tru64.
-
-Fri Jun 30 16:51:48 2000 Steve Huston <shuston@riverace.com>
-
- * tests/CDR_Array_Test.cpp: Add template type specifiers to copy
- ctor and operator= to satisfy IBM C/C++.
-
-Fri Jun 30 10:59:23 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * include/makeinclude/platform_lynxos.GNU:
- Added PACE_SYSNAME = LynxOS so that PACE can set the
- appropriate platform subdirectory when building.
-
-Fri Jun 30 03:21:58 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.{h,i}:
- * ace/OS_Dirent.{h,inl}:
- Added more pace calls. OS.i is now mostly complete.
-
-Thu Jun 29 18:44:07 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.{i,cpp,inl}:
- * ace/OS_Dirent.{inl,h}:
- Began integration of pace with ACE_OS. #define
- ACE_HAS_PACE to activate. About 25% is complete.
-
-Thu Jun 29 15:49:16 2000 Steve Huston <shuston@riverace.com>
-
- * ace/INET_Addr.h (ACE_INET_Addr (const ACE_TCHAR [])):
- * ace/DEV_Addr.h (ACE_DEV_Addr (const ACE_TCHAR *)):
- * ace/Dirent.h (ACE_Dirent (const ACE_TCHAR *)):
- * ace/FILE_Addr.h (ACE_FILE_Addr (const ACE_TCHAR *)):
- * ace/Local_Tokens.h (ACE_Mutex_Token (const ACE_TCHAR *),
- ACE_RW_Token (const ACE_THCAR *)):
- * ace/MEM_Addr.h (ACE_MEM_Addr (const ACE_THCAR [])):
- * ace/Parse_Node.h (ACE_Parse_Node (const ACE_TCHAR *),
- ACE_Static_Function_Node (const ACE_TCHAR *)): Added ACE_EXPLICIT
- to prevent unintended conversion of strings to these objects.
- Thanks to Joseph Weihs <yossi@bandwiz.com> for this correction.
-
- * ace/OS.h, config-all.h: Move setups for ACE_EXPLICIT and
- ACE_MUTABLE macros from OS.h to config-all.h. ACE_EXPLICIT was
- needed for the above (Dirent triggered the need to move it) and
- ACE_MUTABLE seemed like the same sort of compiler setting thing to
- be more properly in config-all.h.
-
-Wed Jun 28 19:35:23 2000 Jerry D. De Master <jdemaste@rite-solutions.com>
-
- * netsvcs/lib/Client_Logging_Handler.cpp:
- Currently, the client logging daemon attempts to connect to a
- server logging daemon to which all logging records are
- forwarded. In the event that a connection cannot be established
- at initialization, or if the connection is lost during daemon
- execution, logging output "rolls-over" to STDERR. This seems
- like reasonable behavior, however....
-
- One interesting use case of the client logging daemon is to use
- it to collect all logging output from all clients, on a single
- node system. For this use case, there is no need for a server
- logging daemon. One could run the client logging daemon without
- a server logging daemon and redirect STDERR to a logfile,
- however, this methodology does not allow the use of the
- ACE_Logging_Strategy class to configure the client daemon's
- logging behavior (especially the new -i and -m options). This
- problem can be easily fixed by first testing if the client
- daemon is already logging to a msg_ostream - if it is, do not
- roll-over logging to STDERR upon connection failure.
-
-Wed Jun 28 11:20:08 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * bin/pace_components:
- Modified to make PACE_ROOT $(ACE_ROOT)/PACE rather than the
- previous value of $(ACE_ROOT)/pace.
-
-Wed Jun 28 11:42:53 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-psos-diab-ppc.h: Added ACE_LACKS_PRAGMA_ONCE for the
- non-g++ situation. The newer Diab compiler (at least) needs this.
- Corrected a '#defined' directive to '#define'.
-
-Tue Jun 27 13:01:37 2000 Steve Huston <shuston@riverace.com>
-
- * tests/CDR_Array_Test.cpp: Moved the 'digits' array inside the
- function which used it. With the array at module scope, the template
- instantiation didn't find it for debug=0 optimize=1 on Sun C++ 4.2.
-
-Tue Jun 27 11:11:41 2000 Steve Huston <shuston@riverace.com>
-
- * tests/OS_Test.cpp: Remove more output which triggers false fails
- in test scripts. Thanks to David Levine for his patience and help
- with this.
-
-Tue Jun 27 09:23:01 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_g++.GNU:
- Changed optimization flag from -O2 to -O3 to get rid of
- function declared but not used warnings for PACE.
-
-Tue Jun 27 08:55:21 2000 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * ace/OS_Dirent.cpp: Fixed the algorithm of reading a directory
- in the readdir_emulation () method. Thanks to Zoran Ivanovic
- <Zoran_Ivanovic@i2.com> for pointing this out.
-
-Tue Jun 27 08:30:21 2000 Steve Huston <shuston@riverace.com>
-
- * netsvcs/servers/main.cpp: Add "ace/" to #include Logging_Strategy.h
- to find it in it's new home.
-
-Tue Jun 27 08:24:49 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Makefile:
- * netsvcs/lib/Makefile: Updated dependencies.
-
-Mon Jun 26 18:26:47 2000 Ossama Othman <ossama@uci.edu>
-
- * netsvcs/lib/Makefile.am (libnetsvcs_la_SOURCES, noinst_HEADERS):
- * netsvcs/lib/Makefile.bor (OBJFILES):
-
- Removed Logging_Strategy.* from these make variables. The
- Logging_Strategy files have been moved to ACE.
-
-Mon Jun 26 17:42:15 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/SSL/ACE_SSL.dsw:
- Add a new workspace for the SSL adaptation library.
-
- * ace/SSL/ACE_SSL.dsp:
- Fixed include paths, removed ACE_HAS_SSL from the command line
- (it should be in config.h), but still has problems with the link
- phase when SSL is not around.
-
-Mon Jun 26 17:01:35 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU (CC_VERSION):
- use $(CXX) instead of hardcoding CC, in case the user overrides
- CXX. Thanks to Alexander Belopolsky <alexander.belopolsky@gs.com>
- for reporting this.
-
-Mon Jun 26 13:31:39 2000 Steve Huston <shuston@riverace.com>
-
- * tests/OS_Test.cpp: Don't use the word 'fail' when the test
- succeeds... the test scripts look for that word to mean test fail.
-
-Mon Jun 26 12:09:33 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: use _POSIX_VERSION to detect the
- LynxOS version, instead of trying to rely on the g++
- version. Thanks to Chad Elliott <elliott_c@ociweb.com>
- for this suggestion.
-
-Mon Jun 26 12:01:17 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/run_tests.sh
- Removed the -p option from the #!/bin/sh line. Tru64's Bourne
- Shell doesn't seem to like that option.
-
-Sat Jun 24 19:58:22 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ace/OS.h
- * ace/OS.i
- * ace/config-macosx.h
- * include/makeinclude/platform-macosx.GNU
- Added preliminary support for Mac OS X Developer Preview 4. Quite
- a bit is still broken, but the core ACE library works great. Grep
- for __MACOSX__ in OS* to see the changes.
-
-Thu Jun 22 17:27:35 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (ACE_Log_Msg_Attributes::inherit_hook): Use a
- temporary void * to hold the reference - this keeps Sun C++ 4.2
- from complaining you can't static_cast a void *& to a
- ACE_Log_Msg_Attributes*.
-
-Thu Jun 22 17:58:21 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Handle_Set.cpp: Added pSOS-specific changes to deal with pSOS's
- ordering of fd_set bits reversed from all other platforms. Thanks
- to Matt Emerson <memerson@escient.com> for figuring this out.
-
-Thu Jun 22 15:16:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.cpp: Added pSOS implementation for ACE_OS::uname.
- Added pSOS implementation for ACE_OS::inet_ntoa - this one is not
- inlined, whereas all other platforms' ACE_OS::inet_ntoa are in
- OS.i, inlined (if enabled). Thanks to Matt Emerson
- <memerson@escient.com> for these.
-
- * ace/OS.i (ACE_OS::inet_ntoa): Disabled this for pSOS - pSOS's version
- is in OS.cpp now.
-
-Thu Jun 22 14:03:53 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * netsvcs/servers/svc.conf: Changed the library name where the
- Logging_Strategy could be found.
-
- * netsvcs/lib/netsvcs.dsp: Removed Logging_Strategy.* from the
- project file.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Added Logging_Strategy.*.
-
- * ace/Logging_Strategy.h: Removed ACE_SVC_BUILD_DLL. It's now
- under ACE. Changed ACE_SVC_FACTORY_DECLARE to
- ACE_FACTORY_DECLARE.
-
- * ace/Logging_Strategy.cpp: Changed ACE_SVC_FACTORY_DEFINE to
- ACE_FACTORY_DEFINE.
-
-Thu Jun 22 13:59:26 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp: Removed an extra 'g' from the very beginning of the
- file.
-
-Thu Jun 22 14:11:26 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.cpp (ACE_OS::thr_keycreate): Add some type cast to compile
- clean on pSOS. Thanks to Matt Emerson <memerson@escient.com>.
-
-Thu Jun 22 12:46:43 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace: Added Logging_Strategy.{h,cpp} to ACE and the Makefile.
-
- * netsvcs/lib: Zapped the Logging_Strategy.{h,cpp}
- files from netsvcs and moved them into ACE, where they can be
- reused more readily. Thanks to Martin Krumpolec
- <krumpo@pobox.sk> for this suggestion.
-
-Thu Jun 22 13:29:22 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): Added cleanup code for
- pSOS tasks at the end of the function. The code is from ISI's
- documentation. Thanks to Matt Emerson <memerson@escient.com> for
- pointing out this problem and supplying the fix.
-
-Thu Jun 22 09:47:56 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/OS_Dirent.h
- Added include of unistd.h before dirent.h. The lack of the
- STATUS typedef was causing a build failure on VxWorks with the
- GNU compiler.
-
-Thu Jun 22 08:28:48 2000 Steve Huston <shuston@riverace.com>
-
- * tests/OS_Test.cpp: Fixed unused argv warning for g++.
-
-Wed Jun 21 14:40:15 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.i:
- Removed unused arg warnings in ACE_OS::rename()
-
-Wed Jun 21 13:41:27 2000 Steve Huston <shuston@riverace.com>
-
- * tests/OS_Test.cpp: New test for OS things. All it tests now is
- ACE_OS::rename.
- * tests/OS_Test.dsp: MSVC project file for new test.
- * tests/tests.dsw: Added OS_Test.dsp.
- * tests/Makefile: Add new OS_Test.
- * tests/run_tests.lst: Added OS_Test.
- * trests/version_tests/OS_Test.dsp: MSVC project file for new test.
- * tests/version_tests.dsp: Added new OS_Test.dsp.
-
-Wed Jun 21 13:25:41 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (rename): On ACE_HAS_WINNT4 systems (Win NT, 2000), the
- rename is accomplished via MoveFileEx, which allows an existing
- destination file to be replaced. This makes the behavior in this
- case the same on NT/2000 as on *NIX systems (the file is replaced).
-
-Wed Jun 21 13:23:18 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h (rename): Added a 3rd argument (int flags) which defaults
- to -1 (meaning to use ACE-default flags inside the function). The
- flags are only useful on NT/2000 for supplying values to the
- MoveFileEx function's flags argument.
-
-Wed Jun 21 03:02:37 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (set_errno_to_last_error):
- * ace/OS.i (set_errno_to_wsa_last_error): The RTL for IBM
- VisualAge C++/NT has the same problem as Borland 4. Thanks to
- Boris Kaminer <kaminer.boris@cherus.msk.ru> for reporting this.
-
-Wed Jun 21 01:12:59 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE.cpp: Changed all the timed versions of the "_n_i()"
- methods so that they are more optimistic. Previously, these
- methods would check with select() before issuing the data
- transfer call. There was really no need to do this since the
- socket is already in non-blocking mode and will therefore not
- block in transferring the data. This change should make these
- methods faster in the case when there is no blocking since
- select() will not be called.
-
- As a side effect of this change, checking for EWOULDBLOCK now
- happens after the call to send()/recv(). This automatically
- fixed bug 594 though I am still not sure why send()/recv() would
- EWOULDBLOCK right after select() indicated that the socket was
- ready. Either way, thanks to Viatcheslav A. Batenine
- <slavikb@iname.com> for reporting the bug and providing an
- example illustrating the bug.
-
-Tue Jun 20 19:37:53 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CORBA_macros.h:
- Fixed the definition of ACE_RE_THROW_EX, there was a space
- between the macro name and the ( that starts its arguments.
-
- * ace/RMCast/Makefile:
- * ace/RMCast/RMCast_Header_Size.h:
- * ace/RMCast/RMCast_Header_Size.i:
- * ace/RMCast/RMCast_Header_Size.cpp:
- A simple control message, still unused.
-
- * ace/RMCast/RMCast_Partial_Message.cpp:
- Verify that all fragments report the same total size.
-
-Tue Jun 20 14:55:26 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp: Applied patches for ACE_BEGINTHREADEX and
- ACE_ENDTHREADEX for using IBM VisualAge C++ 4.0 on NT. Thanks
- to Boris Kaminer <kaminer.boris@cherus.msk.ru> for providing the
- patches.
-
-Tue Jun 20 12:04:24 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile (ssl):
-
- Reverted change that causes the SSL wrappers to be built when
- SSL support isn't explicitly disabled. It caused SSL support to
- always be built, which was not the desired effect.
-
-Tue Jun 20 12:57:12 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Undefined ACE_LACKS_SETSCHED if we
- are compiling on R4.0 or above. Thanks to Sergey A. Osokin
- <osa@freebsd.org.ru> for reporting this for Nick Logvinov
- <nl@rpb.ru>.
-
-Tue Jun 20 07:37:18 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Select_Reactor_T.h,
- * ace/Select_Reactor_T.cpp,
- * ace/Reactor.h,
- * ace/Reactor.i,
- * ace/Reactor_Impl.h,
- * ace/WFMO_Reactor.h,
- * ace/WFMO_Reactor.cpp:
- Added a new method to access the Reactor's timer queue. Also
- renamed the accessors timer_queue(ACE_Timer_Queue *) and
- ACE_Timer_Queue *timer_queue() to be more consistent with ACE
- naming conventions. Thanks to Jody Hagins for reporting this.
-
-Tue Jun 20 02:06:15 2000 Craig Rodrigues <crodrigu@bbn.com>
-
- * include/makeinclude/platform_sunos5_g++.GNU
- * include/makeinclude/platform_sunos5_sunc++.GNU
-
- Updated PLATFORM_X11_CPPFLAGS to include the standard
- include path for X11 and Motif headers under Solaris.
-
-Mon Jun 19 22:14:26 2000 Alex Arulanthu <Alex.Arulanthu@sylantro.com>
-
- * ace/POSIX_Asynch_IO.h:
- * ace/POSIX_Asynch_IO.cpp:
- * ace/POSIX_Proactor.h:
- * ace/POSIX_Proactor.cpp:
- * examples/Reactor/Proactor/Makefile
- * examples/Reactor/Proactor/test_proactor2.cpp:
-
- Thanks to Alex Libman <alibman@baltimore.com>, the following
- changes have been integrated onto POSIX Proactor.
-
- - Enabling the completion call backs even if aio_return
- fails. We will call the completion call back methods with 0
- transferred data parameter.
-
- - MT safe'ing AIOCB proactor. It would not improve the
- efficiency.
-
-Mon Jun 19 19:44:05 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile (ssl):
-
- Fixed conditional so that the SSL wrappers are built when SSL is
- not explicitly disabled, i.e. when the "ssl" make variable is
- not equal to zero. Note that the default is not to build the
- SSL wrappers.
-
- * ace/OS.i (thr_yield):
-
- Corrected typo in comment.
-
- * m4/platform.m4 (ACE_CPPFLAGS):
-
- Define necessary feature test macros on the command line, not in
- the configuration header. This allows ACE applications to
- utilize those macro definitions without having to worry about
- header inclusion ordering.
-
- (ACE_DEFAULT_SELECT_REACTOR_SIZE):
-
- It is no longer necessary to hard-code the default reactor size
- for older Linux kernels that had a file descriptor limit less
- than FD_SETSIZE since the Select Reactor now falls back on the
- run-time file descriptor limit for the given process.
-
- (ACE_HAS_IRIX62_THREADS):
-
- Removed redundant definition. Only define
- ACE_HAS_IRIX62_THREADS for IRIX 6.2.
-
-Mon Jun 19 17:33:28 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Removed the special case check for
-
- # if defined (ACE_HAS_IRIX62_THREADS)
- # define THR_SCOPE_SYSTEM 0x00100000
- # else
-
- and just used this:
-
- # define THR_SCOPE_SYSTEM THR_BOUND
-
- Thanks to John Foresteire <John_J_Foresteire@res.raytheon.com>
- for this suggestion.
-
-Mon Jun 19 12:38:58 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/config-all.h:
- * ace/OS.h:
- * ace/OS.cpp:
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
- In Win32 we have to pass the structured exception handlers
- around.
-
-Mon Jun 19 11:43:43 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * Decouple the Log_Msg inheritance from the ACE_OS layer: the
- Log_Msg class registers hooks with the ACE_OS layer that are
- invoked when a new thread is created.
- The callback is used to first copy the state from the current
- thread to a temporary object and then copy (in the created
- thread) the temporary object state to the TSS Log_Msg object.
- The temporary holder for the Log_Msg state is allocated in the
- heap, and destroyed as soon as we don't need it anymore.
-
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
- New ACE_Log_Msg_Attributes class used as the temporary holder of
- the Log_Msg state during thread creation.
-
- * ace/config-all.h:
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS.cpp:
- Define the new hooks used to inherit the Log_Msg state.
-
-Mon Jun 19 12:45:45 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: removed the ACE_LACKS_PTHREAD_SIGMASK,
- and added back the pthread_sigmask () declaration. With
- extern "C", this time.
-
- * include/makeinclude/platform_lynxos.GNU: moved our LynxOS
- cross development kit to where it belongs, so that
- ENV_PREFIX is now the same as with 2.5.0 and 3.0.0.
-
-Mon Jun 19 11:49:43 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_lynxos.GNU: export environment
- variables that are set on the host (for cross-compilation).
- The cross-compile g++ needs ENV_PREFIX in order to link
- properly.
-
- * ace/config-lynxos.h: added ACE_LACKS_PTHREAD_SIGMASK with
- LynxOS 3.1.0. In addition to not be declared in the system
- headers, pthread_sigmask () isn't in the threads libs.
-
-Mon Jun 19 10:43:27 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_lynxos.GNU: use -mthreads
- with LynxOS 3.1.0, as well as with prior versions.
-
-Mon Jun 19 02:47:12 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CORBA_macros.h: Fixed misspellings of deprecated. Thanks to
- Ossama for pointing this out.
-
-Sun Jun 18 11:39:48 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_lynxos.GNU: rework environment
- variables to better support LynxOS 3.1.0.
-
-Sun Jun 18 10:54:59 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/INET_Addr: Added operator < to ACE_INET_Addr so that it
- can be used in an STL map. Thanks to Tomer Amiaz
- <Tomer@bandwiz.com> for this suggestion.
-
-Sun Jun 18 03:18:21 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CORBA_macros.h: The definition of ACE_RETHORW is flawed
- because it requires all ACE_RETHROW statements be the last
- statement executed within the ACE_CATCH block as this example:
-
- ACE_CATCH ( /* whatever */ )
- {
- // Do something else
- ACE_RETHROW;
- }
- ACE_ENDTRY;
- ACE_CHECK;
-
- However, if this is not the case, programs may exhibit different
- behavior on platforms with/without native C++ exceptions, as
- shown in the following example:
-
- ACE_CATCH ( /* whatever */ )
- {
- if (foo == bar)
- ACE_RETHROW;
- foo = bar;
- }
- ACE_ENDTRY;
- ACE_CHECK;
-
- Although the problem is easy to fix, unfortunately, I can't find
- a way to fix it without changing the macro name because the
- program flow may get completely messed up if ACE_TRY and
- ACE_TRY_EX are used together. Therefore, I have added two new
- macros ACE_RE_THROW and ACE_RE_THROW_EX.
-
- The old macro is now deprecated. If you are absolutely sure
- that you are not using the old ACE_RETHROW macro as mentioned
- above, you can define ACE_HAS_DEPRECATED_ACE_RETHROW in your
- ace/config.h file and continue to use ACE_RETHROW. However,
- you should move to the new macros as soon as possible.
-
-Sat Jun 17 18:15:00 2000 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Makefile.DLL:
- * tests/Makefile.DLL_Test:
- Renamed Makefile.DLL since on NT it appeared as if there was a
- dll version of the Makefile. Also did a make depend. Thanks to
- James Megquier <jmegq@bbn.com> for reporting this and to
- Darrell brunsch <brunsch@cs.wustl.edu> for suggesting that the
- name be changed.
- * tests/Makefile: Updated the Makefile to now have
- Makefile.DLL_Test.
-
-Sat Jun 17 08:03:53 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * docs/tutorials/Chap_5/ex02.html: Fixed a typo where
- peer() should have been peer_i(). Thanks to Keo Kelly
- <kkelly@fallschurch.esys.com> for reporting this.
-
-Sat Jun 17 07:46:44 2000 Chris Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/ace_flags.bor:
-
- Added support for new LoadBalancing orbsvcs library.
-
-Fri Jun 16 17:30:18 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/Makefile:
- * ace/RMCast/RMCast.dsp:
- * ace/RMCast/RMCast.dsw:
- * ace/RMCast/RMCast_Export.h:
- In this library we will implement a simple, small scale reliable
- multicast protocol for ACE. The library is based on the ASX
- classes in ACE (Task, Module and friends).
-
- * tests/RMCast/Makefile:
- * tests/RMCast/RMCast_Tests.dsw:
- The unit test directory for the RMCast library components.
-
- * ace/RMCast/RMCast_Fragment.h:
- * ace/RMCast/RMCast_Fragment.i:
- * ace/RMCast/RMCast_Fragment.cpp:
- The fragmentation task. It divides a message block chain in
- small fragments. The fragments are limited by the number of
- bytes and the number of entries in the chain (for platforms with
- limited IO vectors).
-
- * tests/RMCast/RMCast_Fragment_Test.cpp:
- * tests/RMCast/RMCast_Fragment_Test.dsp:
- Unit test for the fragmentation layer.
-
- * ace/RMCast/RMCast_Partial_Message.h:
- * ace/RMCast/RMCast_Partial_Message.i:
- * ace/RMCast/RMCast_Partial_Message.cpp:
- A simply class to maintain a partial received messages, keeps
- track of the missing bytes and detects when the complete message
- has been received.
-
- * ace/RMCast/RMCast_Reassembly.h:
- * ace/RMCast/RMCast_Reassembly.i:
- * ace/RMCast/RMCast_Reassembly.cpp:
- The reassembly layer. Uses the Partial_Message class to do a
- great deal of the work.
-
- * tests/RMCast/RMCast_Reassembly_Test.cpp:
- * tests/RMCast/RMCast_Reassembly_Test.dsp:
- Unit test for the reassembly layer.
-
-Fri Jun 16 17:00:03 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/rules.bin.GNU:
- * include/makeinclude/wrapper_macros.GNU:
- Joe's change does not work. A *LOT* of makefiles in TAO do not
- include the rules.bin.GNU file.
-
-Fri Jun 16 16:18:21 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile (DIRS):
-
- Descend into and build the newly added SSL directory if "make
- ssl=1" is issued.
-
- * ace/SSL/ACE_SSL.dsp:
- * ace/SSL/Makefile:
- * ace/SSL/SSL_Context.cpp:
- * ace/SSL/SSL_Context.h:
- * ace/SSL/SSL_Export.h:
- * ace/SSL/SSL_SOCK.cpp:
- * ace/SSL/SSL_SOCK.h:
- * ace/SSL/SSL_SOCK_Acceptor.cpp:
- * ace/SSL/SSL_SOCK_Acceptor.h:
- * ace/SSL/SSL_SOCK_Connector.cpp:
- * ace/SSL/SSL_SOCK_Connector.h:
- * ace/SSL/SSL_SOCK_Stream.cpp:
- * ace/SSL/SSL_SOCK_Stream.h:
-
- Integrated the ACE SSL wrappers into the ACE mainline
- distribution. Enable using "make ssl=1." The library that is
- generated is called "libACE_SSL.so" on UNIX, and ACE_SSL{d}.dll on
- Win32.
-
- * examples/IPC_SAP/Makefile:
-
- Build SSL_SAP example if "make ssl=1" is issued.
-
- * examples/IPC_SAP/SSL_SAP/SSL_SOCK_SAP.dsw:
- * examples/IPC_SAP/SSL_SAP/Makefile:
- * examples/IPC_SAP/SSL_SAP/README:
- * examples/IPC_SAP/SSL_SAP/SSL-client.dsp:
- * examples/IPC_SAP/SSL_SAP/SSL-server.dsp:
- * examples/IPC_SAP/SSL_SAP/SSL-client-simple.cpp:
- * examples/IPC_SAP/SSL_SAP/SSL-client-simple.h:
- * examples/IPC_SAP/SSL_SAP/SSL-client.cpp:
- * examples/IPC_SAP/SSL_SAP/SSL-client.h:
- * examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp:
- * examples/IPC_SAP/SSL_SAP/SSL-server-poll.cpp:
- * examples/IPC_SAP/SSL_SAP/SSL-server-simple.cpp:
- * examples/IPC_SAP/SSL_SAP/SSL-server.cpp:
- * examples/IPC_SAP/SSL_SAP/dummy.pem:
- * examples/IPC_SAP/SSL_SAP/key.pem
- * examples/IPC_SAP/SSL_SAP/local_data:
- * examples/IPC_SAP/SSL_SAP/summarize:
-
- Integrated example that demonstratres use of the ACE SSL
- wrappers.
-
- * include/makeinclude/wrapper_macros.GNU (ssl):
-
- Added make flag to enable compilation of OpenSSL support in
- ACE. (e.g. make ssl=1)
-
-Fri Jun 16 14:40:34 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/run_all_list.pm:
- * bin/auto_run_tests.lst:
- Add the LongUpcalls to the run_test lists.
-
-Fri Jun 16 16:00:45 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * include/makeinclude/{rules.bin.GNU,wrapper_macros.GNU}:
- Moving VLDLIBS definition from wrapper_macros.GNU to rules.bin.GNU
- to allow unsetting ACE_LIB. Needed for PACE builds that don't need
- the ACE library.
-
-Fri Jun 16 14:24:36 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.00.h:
- * include/makeinclude/platform_hpux_aCC.GNU: Allow user to do make
- exceptions=0 to disable exception handling. This is not a safe
- thing to do since the C++ runtime throws exceptions, but if you
- must, and you know what you're doing, here's the rope.
-
-Fri Jun 16 08:40:38 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Moved the print statement for a project file from Build_Config
- to Build, so it will be executed for the -CORE target.
-
- This was causing incorrect headers in nightly build reports.
-
-Fri Jun 16 08:12:37 2000 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added a section for PACE.
-
-Thu Jun 15 21:30:37 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile.am (pkgincludedir):
-
- Corrected value for this variable. It should have been
- "$(includedir)/ace" instead of "$(prefix)/include/ace." In any
- case, this was more of a consistency change than anything else,
- since this variable is actually commented out.
-
-Thu Jun 15 20:01:35 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (ACE_OS::tempnam): Made the (__IBMCPP__) a 'defined' check
- and combined it with defined (ACE_WIN32) so it works right on AIX.
- Moved the NOTSUP stuff for ACE_HAS_WINCE to the section with the
- other platforms that don't support it.
-
-Thu Jun 15 16:10:51 2000 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix4_cset++.GNU: Force exceptions=1
- because IBM C/C++ doesn't have a way to disable exceptions.
-
- * ace/config-aix-4.x.h: Add #if !defined around ACE_HAS_EXCEPTIONS
- to avoid compile errors if exceptions=1 explicitly stated.
-
-Thu Jun 15 16:03:11 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_lynxos.GNU: removed
- -mthreads from CFLAGS with LynxOS 3.1.0.
-
-Thu Jun 15 15:56:27 2000 Michael Ravits <miquel@bitsmart.com>
-
- * ace/OS_String.inl (strtoul): removed cast to unsigned
- long on Linux. It's no longer needed with current glibc.
-
-Thu Jun 15 15:18:31 2000 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix4_g++.GNU: Add default setting for
- exceptions (off by default); added proper handling for turning off
- threads. Thanks to Soren Schmidt <ssc@dde..dk> for these.
-
-Thu Jun 15 12:49:50 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h:
-
- Do not define priority range related macros
- (ACE_{PROC,THR}_PRI_{FIFO,RR,OTHER}_{MIN,MAX}) to use
- sched_get_priority_{min,max}() unless _POSIX_PRIORITY_SCHEDULING
- is defined.
-
- Include <unistd.h> prior to using _POSIX_PRIORITY_SCHEDULING
- since that macro is supposed to be defined there.
-
- * ace/Malloc_T.cpp (trybind, bind, find):
- * ace/Process_Manager.cpp (register_handler, spawn, remove):
- * ace/Service_Repository.cpp (insert, remove):
- * ace/Thread_Manager.cpp (spawn, insert_thr, check_state):
-
- Fixed "control reaches end of non-void function" warnings issued
- by g++ 2.95.2.
-
- * ace/config-linux-lxpthreads.h (PTHREAD_MIN_PRIORITY,
- PTHREAD_MAX_PRIORITY):
-
- Removed definition of these macros. They aren't used, nor
- should they be, since priority ranges for each scheduling policy
- are determined at run-time when creating a thread by invoking
- the sched_get_priority_{min,max}() OS functions. This is only
- done when ACE is configured for platforms that support the
- Pthreads final standard (ACE_HAS_PTHREADS_STD), which glibc >=
- 2.0.x does.
-
-Thu Jun 15 13:15:06 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: fixed 3.1.0 support. Rely on the
- GNU compiler version instead of __LYNXOS_SDK_VERSION,
- because that's not defined with 3.1.0. And added a
- declaration of pthread_sigmask (), because that's missing
- from the system headers.
-
- * include/makeinclude/platform_lynxos.GNU: fixed 3.1.0 support.
- Removed the extra $(LYNXTARGET) from the PATH, and
- added a -I/usr/lynx/$(VERSION)/usr/include (which shouldn't
- be necessary, but apparently is).
-
- * ace/OS.i (thr_sigsetmask): don't call ::pthread_sigmask ()
- if ACE_LACKS_PTHREAD_SIGMASK is defined.
-
-Thu Jun 15 10:28:05 2000 Martin Stack <mstack@cambertx.com>
-
- * ace/TTY_IO.cpp (control): Added
-
- dcb.fDtrControl = DTR_CONTROL_ENABLE;
-
- for Win32 so that it will have the same default semantics as
- Linux.
-
-Thu Jun 15 07:35:57 2000 Roger Larsson <larssoro@hotmail.com>
-
- * ace/Process_Manager.cpp: Make sure to grab the lock inside the
- terminate() methods and also call remove_proc() rather than
- remove().
-
-Thu Jun 15 12:41:05 2000 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ACE version 5.1.4 released.
-
-Wed Jun 14 18:15:43 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in (ACE_HAS_UCONTEXT_T):
-
- Check if ucontext_t gets defined by including <signal.h>, if the
- check in <ucontext.h> fails. Some platforms define ucontext_t
- in <sys/ucontext.h>, but ACE doesn't explicitly include that
- header. However, it is very likely that <signal.h> does, either
- directly or indirectly. This should fix a configuration problem
- that was occuring on FreeBSD 4.0.
-
-Wed Jun 14 17:54:18 2000 Ossama Othman <ossama@uci.edu>
-
- * Makefile.am:
-
- Moved generation of aceConf.sh and ace-config.1 to configure
- script. There was no reason for them to be generated in the
- Makefile. This also fixes a problem where the Solaris sed
- command didn't understand a substitution.
-
- * acconfig.h (PTHREAD_MIN_PRIORITY, PTHREAD_MAX_PRIORITY):
-
- Removed macros related to these macros. The configure script
- will automatically add them.
-
- * configure.in:
-
- Generate aceConf.sh and ace-config.1 at configure time, rather
- than make time. See above entry for details.
-
- Fixed tests for PTHREAD_MAX_PRIORITY and PTHREAD_MIN_PRIORITY.
- These macros should only be used if the sched_get_priority_max()
- and sched_get_priority_min() functions are not available. If
- PTHREAD_{MAX,MIN}_PRIORITY isn't available, then check if
- PX_PRIO_{MAX,MIN} is available. If so, then define
- PTHREAD_{MAX,MIN}_PRIORITY to be those values. These changes
- fix some configuration problems experienced IRIX.
-
- Improved test for ACE_Addr::sap_any support. ACE_Addr:sap_any
- is now passed as an argument to the ACE_FILE_Addr constructor.
-
- * ace/Cached_Connect_Strategy_T.cpp:
-
- This file was still including a file that was removed from the
- distribution, i.e. `ace/Cached_Connect_Strategy_T.i', which
- caused compile-time errors to occur when building with inlining
- disabled.
-
-Wed Jun 14 11:55:56 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Cleanup_Strategies_T.cpp:
-
- This file was still including a file that was removed from the
- distribution, i.e. `ace/Cleanup_Strategies_T.i', which caused
- compile-time errors to occur when building with inlining
- disabled.
-
-Wed Jun 14 10:24:02 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Logging_Strategy.cpp (handle_timeout): Removed a
- couple of non-referenced parameters. Thanks to David and Yamuna
- for reporting this.
-
-Wed Jun 14 07:43:27 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp: Added ACE_TEXT macros
- to the appropriate places in this file.
-
- * netsvcs/lib/Logging_Strategy.cpp: Removed the legacy
- ASYS_TEXT and replaced them with ACE_TEXT.
-
-Wed Jun 14 08:30:53 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * */Makefile:
- Updated dependencies (again), the last time I had
- static_libs_only enabled that broke a number of things.
-
-Tue Jun 13 17:46:42 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Connector.cpp:
-
- - handle_close(): cleanup_AST() will unbind an entry from the
- map. This change of state in the map invalidates any iterators
- currently iterating over the map. Therefore, the code in
- handle_close() was changed such that a new iterator is created
- after every call to cleanup_AST().
-
- - cancel(): Cannot use the <entry> after cleanup_AST() is called
- as cleanup_AST() will unbind the <entry> from the map.
-
- Thanks to Roland Fischer <roli@gugus.com> for pointing out this
- bug.
-
-Tue Jun 13 15:31:21 2000 Ossama Othman <ossama@uci.edu>
-
- * ltcf-c.sh:
- * ltcf-cxx.sh:
- * ltconfig:
- * ltmain.sh:
-
- Updated to latest upstream versions.
-
-Tue Jun 13 15:51:33 2000 Jerry D. De Master <jdemaste@rite-solutions.com>
-
- * netsvcs/lib/Logging_Strategy: Enhanced the Logging Strategy so
- it can be used to limit log file size at any logging point
- (i.e., application, client logging daemon, or server logging
- daemon) by specifying the -i <sample_interval_in_secs> and -m
- <max_size_in_KB> options for the Logging_Strategy class in a
- svc.conf file.
-
-Tue Jun 13 12:56:36 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * */Makefile:
- Updated dependencies.
-
-Tue Jun 13 09:47:25 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Fixed some typos related to the static build core.
-
-Mon Jun 12 20:45:18 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/Process_Win32.pm:
-
- Changed the $newwindow check to check to see if the variable
- was defined before comparing it to "yes". This removes a
- perl warning.
-
- * bin/msvc_auto_compile.pl:
-
- The TAOACE[_static].dsw files were changed, so I altered the
- CORE option to use the TAOACE.dsw file with -DLL, and added
- some missing dsp files for the -LIB build.
-
- * bin/create_vt_dsps.pl:
-
- Changed the runtime library type used in the static versions
- and added ACE_OS_HAS_DLL=0.
-
- * ace/ace_lib.dsp:
- * apps/gperf/src/gperf.dsp:
- * apps/gperf/src/gperf_lib.dsp:
- * examples/IPC_SAP/ATM_SAP/CPP_client.dsp:
- * examples/IPC_SAP/ATM_SAP/CPP_server.dsp:
-
- Miscellaneous fixes to get the static versions working again.
- Mainly just adding ACE_OS_HAS_DLL=0.
-
- * tests/version_tests/CDR_Array_Test.dsp: (added)
- * tests/version_tests/Atomic_Op_Test.dsp:
- * tests/version_tests/Auto_IncDec_Test.dsp:
- * tests/version_tests/Barrier_Test.dsp:
- * tests/version_tests/Basic_Types_Test.dsp:
- * tests/version_tests/Buffer_Stream_Test.dsp:
- * tests/version_tests/CDR_File_Test.dsp:
- * tests/version_tests/CDR_Test.dsp:
- * tests/version_tests/Cache_Map_Manager_Test.dsp:
- * tests/version_tests/Cached_Accept_Conn_Test.dsp:
- * tests/version_tests/Cached_Conn_Test.dsp:
- * tests/version_tests/Capabilities_Test.dsp:
- * tests/version_tests/Collection_Test.dsp:
- * tests/version_tests/Conn_Test.dsp:
- * tests/version_tests/DLL_Test.dsp:
- * tests/version_tests/DLList_Test.dsp:
- * tests/version_tests/Dynamic_Priority_Test.dsp:
- * tests/version_tests/Enum_Interfaces_Test.dsp:
- * tests/version_tests/Env_Value_Test.dsp:
- * tests/version_tests/Future_Set_Test.dsp:
- * tests/version_tests/Future_Test.dsp:
- * tests/version_tests/Handle_Set_Test.dsp:
- * tests/version_tests/Hash_Map_Bucket_Iterator_Test.dsp:
- * tests/version_tests/Hash_Map_Manager_Test.dsp:
- * tests/version_tests/High_Res_Timer_Test.dsp:
- * tests/version_tests/IOStream_Test.dsp:
- * tests/version_tests/Lazy_Map_Manager_Test.dsp:
- * tests/version_tests/MM_Shared_Memory_Test.dsp:
- * tests/version_tests/MT_Reactor_Timer_Test.dsp:
- * tests/version_tests/MT_SOCK_Test.dsp:
- * tests/version_tests/Malloc_Test.dsp:
- * tests/version_tests/Map_Manager_Test.dsp:
- * tests/version_tests/Map_Test.dsp:
- * tests/version_tests/Mem_Map_Test.dsp:
- * tests/version_tests/Message_Block_Test.dsp:
- * tests/version_tests/Message_Queue_Notifications_Test.dsp:
- * tests/version_tests/Message_Queue_Test.dsp:
- * tests/version_tests/Naming_Test.dsp:
- * tests/version_tests/New_Fail_Test.dsp:
- * tests/version_tests/Notify_Performance_Test.dsp:
- * tests/version_tests/Object_Manager_Test.dsp:
- * tests/version_tests/OrdMultiSet_Test.dsp:
- * tests/version_tests/Pipe_Test.dsp:
- * tests/version_tests/Priority_Buffer_Test.dsp:
- * tests/version_tests/Priority_Reactor_Test.dsp:
- * tests/version_tests/Priority_Task_Test.dsp:
- * tests/version_tests/Process_Manager_Test.dsp:
- * tests/version_tests/Process_Mutex_Test.dsp:
- * tests/version_tests/Process_Strategy_Test.dsp:
- * tests/version_tests/RB_Tree_Test.dsp:
- * tests/version_tests/Reactor_Exceptions_Test.dsp:
- * tests/version_tests/Reactor_Notify_Test.dsp:
- * tests/version_tests/Reactor_Performance_Test.dsp:
- * tests/version_tests/Reactor_Timer_Test.dsp:
- * tests/version_tests/Reactors_Test.dsp:
- * tests/version_tests/Reader_Writer_Test.dsp:
- * tests/version_tests/Recursive_Mutex_Test.dsp:
- * tests/version_tests/Reverse_Lock_Test.dsp:
- * tests/version_tests/SOCK_Connector_Test.dsp:
- * tests/version_tests/SOCK_Send_Recv_Test.dsp:
- * tests/version_tests/SOCK_Test.dsp:
- * tests/version_tests/SPIPE_Test.dsp:
- * tests/version_tests/SString_Test.dsp:
- * tests/version_tests/SV_Shared_Memory_Test.dsp:
- * tests/version_tests/Semaphore_Test.dsp:
- * tests/version_tests/Service_Config_Test.dsp:
- * tests/version_tests/Sigset_Ops_Test.dsp:
- * tests/version_tests/Simple_Message_Block_Test.dsp:
- * tests/version_tests/Svc_Handler_Test.dsp:
- * tests/version_tests/TSS_Test.dsp:
- * tests/version_tests/Task_Test.dsp:
- * tests/version_tests/Thread_Manager_Test.dsp:
- * tests/version_tests/Thread_Mutex_Test.dsp:
- * tests/version_tests/Thread_Pool_Reactor_Test.dsp:
- * tests/version_tests/Thread_Pool_Test.dsp:
- * tests/version_tests/Time_Service_Test.dsp:
- * tests/version_tests/Time_Value_Test.dsp:
- * tests/version_tests/Timeprobe_Test.dsp:
- * tests/version_tests/Timer_Queue_Test.dsp:
- * tests/version_tests/Tokens_Test.dsp:
- * tests/version_tests/UPIPE_SAP_Test.dsp:
- * tests/version_tests/Upgradable_RW_Test.dsp:
- * tests/version_tests/version_tests.dsw:
-
- Regenerated.
-
-Mon Jun 12 18:17:42 2000 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: (added)
- * bin/auto_run_tests.pl: (added)
- * tests/run_test.lst: (added)
- * tests/run_test.pl: (added)
-
- New scripts to facilitate the auto_build testing on NT.
-
-Sun Jun 11 18:12:12 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * examples/QOS/QoSEvent.h: Removed a warning on Win2K.
-
-Sat Jun 10 23:34:16 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * docs/CE-status.txt:
-
- Updated to reflect my current plans for Windows CE.
- Unfortunately, ACE on CE will not be working with the
- next beta kit of ACE. :-( Need to get an autobuild
- set up for CE sometime...
-
-Sat Jun 10 20:51:56 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-win32-common.h:
-
- Changed the "You must link with Multithreaded DLL" error
- to make it sound less like it is a problem with the ACE
- project file instead of the application project file.
-
- * docs/ACE-guidelines.html:
-
- Updated the section on wchar support in ACE.
-
-Sat Jun 10 17:33:55 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Configuration.cpp:
- Fixed warnings under Linux/KCC
-
- * bin/auto_compile:
- Add separators between the different sections of the log.
- Darrell script would be able to generate nice color coded
- summaries based on that.
-
- * include/makeinclude/platform_linux_kcc.GNU:
- Add support for the math library.
-
-Fri Jun 09 11:31:24 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.cpp (close_singletons): Applied Tom
- Arbuckle's <arbuckle@uran.informatik.uni-bonn.de> patch so the
- Process_Manager singleton is closed before Reactor singleton.
-
-Fri Jun 9 09:28:18 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/platform_linux_kcc.GNU:
- More fixes to make sure that shared and static libraries are
- generated with the right configuration (threads, exceptions,
- etc.).
-
-Fri Jun 9 07:19:10 2000 Toshio Hori <toshi@etl.go.jp>
-
- * ace/Stream.h (class ACE_Stream): Added an updated version an
- insert() and replace() that make it possible to replace the
- stream head and tail.
-
-Fri Jun 09 02:34:07 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (floor and ceil): Added new methods.
-
-Thu Jun 8 20:58:17 2000 Darrell Brunsch <brunsch@uci.edu>
-
- Patched for IBM VAC++ 4.02 for WinNT applied on behalf of
- Boris Kaminer <kaminer.boris@cherus.msk.ru>
-
- * config-win32-visualage.h:
-
- Remove dupplicate definition of ACE_HAS_TYPENAME_KEYWORD.
-
- * Auto_Ptr.h:
- * Auto_Ptr.i:
-
- Copy constructors bodies into class declarations from Auto_Ptr.i
- to Auto_ptr.h for constructors with ACE_EXPLICIT. (workaround
- for explicit bug in VAC++ 4.02)
-
- * Malloc.cpp:
-
- Changed ACE_ASSERT (0 == "not implemented!"); to
- ACE_ASSERT (!"not implemented!");
- (get over codestore fault)
-
- * OS.i: (chdir)
-
- Added !defined (ACE_WIN32) to the check for IBM CPP
-
- * ace-dll.icc:
-
- Changed the order of hpp files, and added a define for
- _INTEGRAL_MAX_BITS = 64.
-
-Thu Jun 8 18:35:30 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Date_Time.h:
- * ace/Date_Time.i:
- Made a bunch of accessors const, thanks to Derek Dominish
- <Derek.Dominish@Australia.Boeing.com> for pointing this out.
-
-Thu Jun 08 14:17:20 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process_Manager.{h,cpp} (close_singleton):
- * ace/Service_Config.cpp (close_singletons): Applied Tom Arbuckle's
- <arbuckle@uran.informatik.uni-bonn.de> patch to clean up
- Process_Manager singleton at program exit.
-
-Thu Jun 8 13:00:38 2000 Toshio Hori <toshi@etl.go.jp>
-
- * ace/Stream.h (class ACE_Stream): Added support for an insert()
- and replace() to make it easier to insert and update the
- contents of an ACE_Stream.
-
-Thu Jun 8 09:52:36 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * bin/pace_components:
- Adding this file to handle setup and cleanup of PACE components
- just like the ace_components file does for ACE.
-
-Thu Jun 08 01:53:03 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Message_Queue.i (peek_dequeue_head): Fixed typo.
-
-Wed Jun 7 20:41:33 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Queue: Added some "no-op" impls for the new
- pure virtual methods added to ACE_Message_Queue recently.
- Thanks to Darrell for pointing this out.
-
-Wed Jun 7 13:24:22 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- For KCC under linux we have to define ACE_DEFAULT_SHLIB_MODE as
- RLTD_LAZY (RTLD_GROUP and RTLD_NODELETE are not defined in that
- configuration).
-
- * ace/OS_Dirent.inl:
- Removed unreachable statement.
-
- * ace/config-linux-common.h:
- KCC does not have LLSEEK or LLSEEK64
-
- * include/makeinclude/platform_linux_kcc.GNU:
- Fixed the configuration file so the default settings for
- debugging, optimization and exceptions can be overriden by the
- user.
-
-Wed Jun 7 12:05:23 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- Dropped the level for the TCHAR check to 4, so it runs
- by default.
-
- Also added a new test to check for mismatch of ace/pre.h
- and ace/post.h in header files (level 4).
-
- * ace/ace_wchar.h:
-
- Added a FUZZ: disable for the TCHAR check, since we need
- to define the ASYS_TCHAR type macros for backwards
- compatiblity here.
-
-Wed Jun 07 13:22:01 2000 David L. Levine <levine@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (twoway_client_test):
- replaced ASYS_TEXT with ACE_TEXT, see
- Tue Jun 6 12:39:23 2000 Phil the Build Czar <mesnier_p@ociweb.com>
- :-)
-
-Wed Jun 7 12:09:50 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU:
- Changed position-independent-code option from -PIC to -KPIC since
- the C++ compiler recognizes either and the C compiler only
- recognizes -KPIC.
- * include/makeinclude/rules.local.GNU:
- Added a compilation rule for C (i.e., .c) files.
-
-Tue Jun 6 22:32:16 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.i:
- * ace/OS_TLI.h:
- Moved the explicit declaration of t_getname() from OS.i to OS_TLI.h
-
-Tue Jun 6 20:02:18 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS_TLI.cpp:
- * ace/OS_TLI.h:
- * ace/OS_TLI.inl:
- * ace/config-all.h:
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/ace-dll.icc:
- * ace/ace-lib.icc:
- * ace/ace.icc:
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Moved the TLI wrappers to ACE_OS_TLI.
-
-Tue Jun 6 17:57:14 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * examples/QOS/server.cpp:
- * examples/QOS/client.cpp:
- Changed these to reflect changes to the ACE QoS API.
-
-Tue Jun 06 15:44:03 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: added support for LynxOS 3.1.0.
- It uses ACE_HAS_PTHREADS_STD instead of ACE_HAS_PTHREADS_DRAFT4 +
- ACE_HAS_STDARG_THR_DEST. Thanks to Dorr H. Clark
- <dhclark@Lynx.COM> for reporting this.
-
-Tue Jun 6 12:39:23 2000 Phil Mesnier <mesnier_p@ociweb.com>
-
- Ported ACE & TAO to Unixware 7.1, using GNU C++ compiler gcc 2.95.2.
- See ACE-INSTALL for specific information on configuring the build
- environment.
-
- * ACE-INSTALL.html
- * ace/OS.h
- * ace/config-unixware-7.1.0.h
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp
- * examples/Threads/tss1.cpp
- * include/makeinclude/platform_unixware_g++.GNU
- * include/makeinclude/wrapper_macros.GNU
-
-Tue Jun 6 10:32:51 2000 Edan Ayal <edanayal@yahoo.com>
-
- * ace/Message_Queue.h: Added the following two pure
- virtual methods to class 'ACE_Message_Queue_Base':
-
- virtual ACE_Notification_Strategy *notification_strategy (void) = 0;
- virtual void notification_strategy (ACE_Notification_Strategy *s) = 0;
- virtual int peek_dequeue_head (ACE_Message_Block *&first_item,
- ACE_Time_Value *timeout = 0);
-
- These methods allow the 'ACE_Message_Queue_Base' to be used as a
- base class (without specifying the synch method or templatizing
- on it) and access/alter the notification strategy.
-
-Tue Jun 6 09:42:39 2000 Chris Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/ace_flags.bor:
- Added support for new orbsvcs libraries.
-
-Mon Jun 05 20:59:42 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: protected definitions
- of shared_libs and static_libs with ifeq null. Users can still
- override the settings in their platform_macros.GNU, because
- that's included after these definitions, or in their environment.
- But this makes the code look more consistent. Thanks to Jody
- Hagins <jody@atdesk.com> for this suggestion.
-
-Mon Jun 5 14:54:46 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Select_Reactor_T.cpp (ACE_Select_Reactor_T):
-
- There is no need to deallocate resources from the previous call
- to open() since the open() method deallocates any resources
- prior to exiting if an error was encountered.
-
-Mon Jun 5 14:18:18 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Select_Reactor_T.cpp (ACE_Select_Reactor_T):
-
- If the Reactor fails to open with the hard-coded default size
- then set the Reactor size to be the current run-time limit on
- the number of file descriptors available to the process. This
- size is not necessarily the maximum limit. On platforms that do
- not support run-time evaluation of the current file descriptor
- limit, a default value of FD_SETSIZE will be used. This
- corrects a problem on Solaris in 32 bit mode, and on any other
- platform where the per-process file descriptor limit is less
- than FD_SETSIZE.
- Reported by Marvin Allen Wolfthal <maw@ziplink.net>.
-
- * ace/config-linux-common.h (ACE_DEFAULT_SELECT_REACTOR_SIZE):
-
- It is no longer necessary to hard-code the default reactor size
- for older Linux kernels that had a file descriptor limit less
- than FD_SETSIZE since the Select Reactor now falls back on the
- run-time file descriptor limit for the given process.
-
-Mon Jun 5 10:22:22 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_Memory.h:
-
- Just like in OS_String.h, added an include for stddef.h to
- get the definition of size_t.
-
-Mon Jun 5 09:55:20 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.h:
- * ace/OS_String.inl:
- * ace/OS_String.cpp:
-
- Removed some unnecessary *_emulation methods, and fixed some
- other miscellaneous mistakes (like using ACE_OS instead of
- ACE_OS_String).
-
- During my last checkin, it seems like the strncasecmp_emulation
- versions were lost, so I resurrected them.
-
- Also changed the use of u_char in memchr_emulation to unsigned
- char, since we shouldn't depend on definitions of u_char (since
- on some platforms we don't have a definition of u_char at that
- time). Thanks to David Levine for reporting this.
-
-Sun Jun 4 14:58:37 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh:
- * apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh:
- * apps/Orbix-Examples/Logger/logger.hh:
- * docs/ACE-categories.html:
- * docs/tutorials/guide-tutorials.html:
- * docs/tutorials/online-tutorials.html:
- * docs/tutorials/templates.html:
- * docs/tutorials/Chap_2/ex01.html:
- * docs/tutorials/Chap_2/ex02.html:
- * docs/tutorials/Chap_2/ex03.html:
- * docs/tutorials/Chap_2/ex04.html:
- * docs/tutorials/Chap_2/ex05.htm:
- * docs/tutorials/Chap_2/ex05.html:
- * docs/tutorials/Chap_2/ex06.html:
- * docs/tutorials/Chap_3/ex01.html:
- * docs/tutorials/Chap_3/ex02.html:
- * docs/tutorials/Chap_4/ex01.html:
- * docs/tutorials/Chap_4/ex02.html:
- * docs/tutorials/Chap_4/ex03.html:
- * docs/tutorials/Chap_4/ex04.html:
- * docs/tutorials/Chap_4/ex05.html:
- * docs/tutorials/Chap_4/ex06.html:
- * docs/tutorials/Chap_4/ex07.html:
- * docs/tutorials/Chap_4/ex08.html:
- * docs/tutorials/Chap_5/ex01.html:
- * docs/tutorials/Chap_5/ex02.html:
- * docs/tutorials/Chap_5/ex03.html:
- * docs/tutorials/Chap_5/ex04.html:
- * docs/tutorials/Chap_5/ex05.html:
- * docs/tutorials/Chap_6/ex01.html:
- * docs/tutorials/Chap_6/ex02.html:
- * docs/tutorials/Chap_6/ex03.html:
- * docs/tutorials/Chap_6/ex04.html:
- * docs/tutorials/Chap_6/ex05.html:
- * docs/tutorials/Chap_6/ex06.html:
- * docs/tutorials/Chap_6/ex07.html:
- * docs/tutorials/Chap_6/ex08.html:
- * docs/tutorials/Chap_6/ex09.html:
- * docs/tutorials/Chap_6/ex10.html:
- * docs/tutorials/Chap_7/ex01.html:
- * docs/tutorials/Chap_7/ex02.html:
- * docs/tutorials/Chap_7/ex03.html:
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.i:
- * os-patches/lynxos-patches.html:
- * performance-tests/Synch-Benchmarks/context.c:
- * psosim/drv_conf.c:
- * rpc++/callback.cc:
- * rpc++/request.cc:
- * rpc++/service.cc:
- * rpc++/stub.cc:
- * rpc++/version.h:
- * rpc++/xdr++.cc:
- * rpc++/StdHdrs/rpc/auth.h:
- * rpc++/StdHdrs/rpc/c_types.h:
- * rpc++/StdHdrs/rpc/clnt.h:
- * rpc++/StdHdrs/rpc/pmap_clnt.h:
- * rpc++/StdHdrs/rpc/svc.h:
- * rpc++/StdHdrs/rpc/xdr.h:
- * rpc++/example/calcsvc.cc:
- * rpc++/example/calcsvc.h:
- * rpc++/example/client.cc:
- * rpc++/example/server.cc:
- * rpc++/rpc++/callback.h:
- * rpc++/rpc++/request.h:
- * rpc++/rpc++/service.h:
- * rpc++/rpc++/stub.h:
- * rpc++/rpc++/xdr++.h:
-
- Added missing CVS Id strings.
-
-Sun Jun 4 14:55:46 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- Added html files to the list of files checked for
- ending with a newline.
-
-Sun Jun 4 14:38:43 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.inl:
-
- Some platforms (like QNX Neutrino) need strings.h to get
- the declaration of strcasecmp.
-
- * ace/config-qnx-neutrino.h:
-
- Added a definition of ACE_HAS_STRINGS so strings.h will be
- included in OS_String.inl.
-
-Sun Jun 04 09:40:43 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-cxx-common.h: with __USE_STD_IOSTREAM, added
- #define ACE_HAS_STANDARD_CPP_LIBRARY 1. Thanks to
- Warren Miller <wmiller@stsci.edu> for reporting this [Bug 582].
-
-Sat Jun 3 21:18:43 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS_Memory.cpp: (added)
- * ace/OS_Memory.h: (added)
- * ace/OS_Memory.inl: (added)
-
- Another bit of OS split off. Memory contains all the
- malloc, calloc, etc. stuff.
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/ace-dll.icc:
- * ace/ace-lib.icc:
- * ace/ace.icc:
- * ace/ace_dll.dsp:
- * ace/ace_dll_ce.dsp:
- * ace/ace_lib.dsp:
-
- Needed to add OS_Memory to the makefiles/projects.
-
- * ace/OS_Dirent.cpp:
- * ace/OS_Dirent.h:
- * ace/OS_Dirent.inl:
- * ace/OS_String.cpp:
- * ace/OS_String.h:
- * ace/OS_String.inl:
-
- Over the years, the functions in OS.i have gotten way too
- large and complicated to make sense being inlined. But the
- problem is too many were complicated only on some platforms,
- while being really simple (and inline-able) on others.
-
- So the question is, how to separate two versions of a function
- into the .cpp and .inl files. The latest solution is to do
- this. For the simple stuff, keep it in the .inl file, but for
- complicated versions, add another method to the class (like
- foo_emulation for foo) and call that from the .inl file.
-
- This gives us the best of both worlds, and should be
- the easiest to understand of the possible ways of doing
- this.
-
-Sat Jun 3 18:51:46 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Changed the way libraries were detected to remove false
- positives when the dsps are in a directory with DLL in
- its name. Now it will search for " DLL " or " LIB "
- instead of "DLL" or "LIB".
-
- * bin/fuzz.pl:
-
- Was giving false positives for TEXT, changed it to search
- for "TEXT (" to remove it (so it will not detect "MUTEXTYPE"
- like words.
-
- Also disabled the 80 character check for ACE_RCSID lines,
- since they are difficult to reduce in size, since they contain
- the CVS ID string.
-
-Sat Jun 3 17:00:11 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- Added two new tests:
- - a check to see if a file ends with a newline
- - a check to detect use of TCHAR, LPTSTR, LPCTSR, TEXT
- ASYS_TEXT, and ASYS_TCHAR
-
- Changed to look at more files, including those ending with
- .cc, .c, .pl, .htm, .html, .hxx, .cxx, .hpp, .idl and .pidl.
-
- Changed to keep track of the number of errors and warnings
- and prints out the totals at the end of the run. Also will
- exit with an exit code of 1 if there are any errors.
-
- Added a new flag, -c, which will tell fuzz.pl to get the list
- of files from ARGV instead of from searching or cvs.
-
- Finally, also added support for the usage of
- "FUZZ: disable check_for_xxxx" and
- "FUZZ: enable check_for_xxxx" in files so the detection can
- be turned off for files where the "offending" usage is needed.
- This can be used with:
- - check_for_inline
- - check_for_math_include
- - check_for_tchar
-
-Fri Jun 02 22:33:32 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Priority_Reactor.cpp (init_bucket): Removed extra inline
- directive. Thanks to Darrell for pointing this out.
-
-Fri Jun 2 11:06:33 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- Bumped up the levels for the 80 char lines and preprocessor
- comment tests. The latter should now not run by default.
-
-Thu Jun 2 12:30:00 2000 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Caching_Utility.cpp: Changed the cache entries limit to 0 so
- that when the Purge_Percent is 100, all the entries are purged
- from the cache. Thanks to Edan Ayal <edana@bandwiz.com> for
- reporting this bug and sending in the fix too!
-
-Thu Jun 1 15:16:26 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/config-linux-common.h:
-
- The change that allowed more than 256 file descriptors to be
- opened for non-root processes on Linux only works for more
- recent Linux kernels, such as the 2.2.x series. As such, the
- default Select Reactor size is now set to 256 for Linux kernels
- older than 2.2.0. Thanks to David for pointing out this
- limitation.
-
- * m4/platform.m4 (ACE_DEFAULT_SELECT_REACTOR_SIZE):
-
- Added test that sets the default Select Reactor size to 256 if
- the Linux kernel version is less than 2.2.0. This change is
- related to the 256 file descriptor limit described above.
-
-Thu Jun 01 12:35:00 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp: Fixed typos in ACEMFC configuration. Thanks
- to Steve for pointing this out.
-
-Thu Jun 1 10:08:31 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- Was printing out "line test" when doing the preprocessor
- comment test.
-
-Thu Jun 1 08:43:14 2000 Darrell Brunsch <brunsch@uci.edu>
-
- Fuzz is a script whose purpose is to check through ACE/TAO
- files for easy to spot (by a perl script, at least) problems.
-
- Usage is:
- fuzz.pl [-dhm] [-l level]
-
- -d turn on debugging
- -h display this help
- -l level set detection level (default = 5)
- -m only check locally modified files (uses cvs)
-
- It currently has checks for these:
-
- - ACE/ASYS_INLINE in .cpp files (level 2+)
- - $ID string in .h/.i/.cpp files (level 2+)
- - Bare inline in a .i file (level 2+)
- - Inclusion of math.h in a .h/.i/.cpp file (level 3+)
- - Check for lines of > 80 chars in .h/.i/.cpp (level 6+)
- - Check for use of // in a preprocessor directive (level 3+)
-
-Wed May 31 16:30:44 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in (AC_REVISION):
-
- The RCS ID had to be quoted, otherwise the generated configure
- script would end up having a mangled version of the RCS ID.
-
-Wed May 31 16:18:35 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in:
-
- Fixed the informational message that is displayed when the
- configuration integrity check fails so that the shell will no
- longer interpret the RCS ID as a variable. This was done by
- removing the dollar '$' signs from the RCS ID by using the M4
- translit() built-in.
-
- (LIBS):
-
- Removed "-lrt" from the hardcoded list of libraries for OSF/1
- {3,4,5}. The ACE_CHECK_ASYNCH_IO test should be able to detect
- this library.
-
- (AC_REVISION):
-
- Changed revision string to be the RCS ID.
-
- (AC_OUTPUT):
-
- Removed the commented out TAO output files from the list files
- the configure script should create. The latest CVS Autoconf
- flagged them as problems when generating the configure script.
-
-Wed May 31 18:08:12 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * examples/QoS/QosEvent.h:
- * examples/QoS/server.cpp:
- * examples/QoS/client.cpp:
- * examples/QoS/Receiver_QOS_Event_Handler.{cpp,h}:
- * examples/QoS/Sender_QOS_Event_Handler.{cpp,h}:
-
- Fixed the calls to subsribe() and qos () methods that
- broke because of changes to ACE QoS API.
-
-Wed May 31 12:29:12 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * apps/JAWS2/JAWS/jaws.dsp:
-
- Added a couple of files that were in the Makefile but not
- in this file.
-
-Wed May 31 14:49:36 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): Revert change from Thu May 25 17:39:22 2000.
- Add #if !defined (ACE_LACKS_UNIX_SIGNALS) to ACE_Log_Msg_Sig_Guard
- ctor which matches a similar check in the dtor. This makes it work
- on pSOS same as on other platforms without UNIX-like signals.
-
- * ace/Signal.i (ACE_Sig_Guard::ACE_Sig_Guard): Added compile-time
- check for !defined (ACE_LACKS_UNIX_SIGNALS) to not try to manipulate
- the signal mask for platforms that don't do it. Matches an existing
- check in the dtor.
-
-Wed May 31 11:51:46 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * apps/gperf/src/gperf.dsp:
- * apps/gperf/src/gperf_lib.dsp:
-
- Fixed the output directories to be relative to ".\". Thanks
- to Francois Bernier <fbernier@gel.ulaval.ca> for pointing
- this out.
-
-Wed May 31 10:31:18 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * examples/ConfigViewer/ConfigurationViewer.dsp:
-
- Changed the configuration type to "Win32 wxWindows Debug"
- instead of "Win32 Debug" (and the same for Release).
- This will prevent this project from being picked up by
- the msvc_auto_compile.pl, since we do not have wxWindows
- installed with the auto builds.
-
-Wed May 31 10:13:10 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * examples/Export/export_dll.dsp:
- * examples/Export/test.dsp:
-
- Fixed the relative paths for ace includes and libraries.
-
-Wed May 31 11:25:34 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Reactor/WFMO_Reactor/test_handle_close.cpp: Fixed
- signed/unsigned comparison warning.
-
-Tue May 30 14:23:22 2000 Ossama Othman <ossama@uci.edu>
-
- * apps/Gateway/Gateway/gatewayd.cpp:
- * examples/ASX/UPIPE_Event_Server/Options.cpp:
- * examples/Naming/test_multiple_contexts.cpp:
-
- Added missing "ace/Log_Msg.h" include.
-
-Tue May 30 10:41:34 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Makefile.bor:
- * include/makeinclude/ace_flags.bor:
-
- ACE_OS_BUILD_DLL and ACE_OS_HAS_DLL were not being set correctly
- in Borland.
-
-Mon May 29 16:49:25 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Changed all 'ACE_Errno_Guard (errno, 0)' to
- 'ACE_Errno_Guard (errno)' in the following methods.
-
- ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv),
- ACE_OS::rw_unlock (ACE_rwlock_t *rw),
- ACE_OS::rw_trywrlock (ACE_rwlock_t *rw),
- ACE_OS::rw_unlock (ACE_rwlock_t *rw)
-
- Thus, if a critical section of code is guarded using an
- ACE_Read_Guard, and errno is set inside, the value is not
- overridden with 0 when the section is exited in
- ACE_OS::rw_unlock. Thanks to Edan Ayal <edanayal@yahoo.com> for
- reporting this.
-
- * ace/Connector.h: Added a new typedef defined as follows:
-
- typedef ACE_TYPENAME _ACE_PEER_CONNECTOR::PEER_ADDR
- ACE_TYPENAME_ACE_PEER_CONNECTOR_PEER_ADDR;
-
- This fixes some problems on some platforms due to problems with
- the typename in a cast expression. Thanks to Ingo Dahm
- <ingo.dahm@sun.com> for reporting this.
-
- * ace/IO_Cntl_Msg.h: Changed the ACE_IO_Cntl_Cmds enum to be
- a typedef u_short so that users could create their own values.
- Thanks to vsg@ivl.kiev.ua for this suggestion.
-
- * ace/ACE.h,
- * ace/ACE.h: Make the documentation consistent for both
- sockets and "normal" I/O methods!
-
-Mon May 29 11:36:28 2000 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * ace/OS_Dirent.cpp: Fixed the memory allocation in open_dir,
- which allocated one char too little.
-
-Sun May 28 17:26:28 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Timer_Heap_T.cpp:
- * ace/Timer_Queue_T.cpp:
- * apps/JAWS/server/HTTP_Helpers.cpp:
- * apps/JAWS/server/HTTP_Response.cpp:
- * apps/drwho/BS_Client.cpp:
- * examples/ASX/Event_Server/Event_Server/Options.cpp:
- * examples/Logger/simple-server/Logging_Handler.cpp:
- * examples/Logger/simple-server/server_loggerd.cpp:
- * examples/Mem_Map/IO-tests/test_io.cpp:
- * examples/Naming/test_non_existent.cpp:
- * examples/Naming/test_writers.cpp:
- * examples/Reactor/Dgram/CODgram.cpp:
- * examples/Reactor/Dgram/Dgram.cpp:
- * examples/Reactor/FIFO/server.cpp:
- * examples/Reactor/Misc/pingpong.cpp:
- * examples/Reactor/Misc/test_signals_1.cpp:
- * examples/Reactor/Misc/test_timer_queue.cpp:
- * examples/Reactor/Multicast/server.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h:
- * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h:
- * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h:
- * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h:
- * examples/Service_Configurator/IPC-tests/server/server_test.cpp:
- * examples/Service_Configurator/Misc/Timer_Service.cpp:
- * examples/Service_Configurator/Misc/main.cpp:
- * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp:
- * examples/Threads/process_mutex.cpp:
- * examples/Threads/process_semaphore.cpp:
- * examples/Threads/tss2.cpp:
- * netsvcs/clients/Naming/Client/main.cpp:
- * netsvcs/clients/Naming/Dump_Restore/main.cpp:
- * performance-tests/Misc/test_naming.cpp:
- * performance-tests/UDP/udp_test.cpp:
-
- Added missing "ace/Log_Msg.h" include. This fixes a series of
- compile-time errors with Compaq C++.
-
-Sat May 27 20:55:24 2000 Ossama Othman <ossama@uci.edu>:
-
- * tests/test_config.h:
-
- Added missing include for "ace/Log_Msg.h." This fixes a
- compile-time error from Sun C++ 5.0.
-
-Sat May 27 20:41:14 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Hash_Map_Manager_T.h:
-
- Added missing include for "ace/Log_Msg.h." This fixes a
- compile-time error on Tru64.
-
-Sat May 27 17:09:03 2000 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added const to example
- accessor declaration.
-
-Sat May 27 14:17:35 2000 Ossama Othman <ossama@uci.edu>
-
- * apps/JAWS2/HTTPU/parse_url.cpp:
- * examples/Web_Crawler/URL_Addr.cpp:
- * examples/Reactor/Multicast/client.cpp:
- * examples/OS/Process/process.cpp:
- * examples/IPC_SAP/ATM_SAP/CPP-client.cpp:
- * examples/IPC_SAP/ATM_SAP/CPP-server.cpp:
- * examples/DLL/Newsweek.cpp:
- * examples/DLL/Today.cpp:
- * examples/DLL/test_dll.cpp:
- * websvcs/tests/Test_URL_Addr.cpp:
-
- Added missing `ace/Log_Msg.h' include.
-
- * examples/Web_Crawler/URL_Addr.cpp (ACE_URL_Addr):
-
- Fixed warning about missing base class initialization in copy
- constructor base member initializer list.
-
- (~ACE_URL_Addr, addr_to_string):
-
- Changed use of "LPTSTR" to "ACE_TCHAR *". This fixes an error
- on UNIX builds.
-
-Sat May 27 14:59:08 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Signal_Test.cpp (worker_parent): Yet another fix of this...
- Now we add an ACE_static_cast to long, as well as doing the %ld!
- Thanks to Yamuna for fixing this!
-
- * ace/SOCK_Stream.h: Improved the documentation of recv_n() et al.
- Thanks to Sami Aario <saempylae@hotmail.com> for this
- suggestion.
-
-Sat May 27 01:07:01 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-win32-common.h:
-
- Added a semicolon to the definitions of
- ACE_EXPORT_SINGLETON_DECLARE
- ACE_IMPORT_SINGLETON_DECLARE
-
- Since the default definition for this is nothing, the semicolon is
- better off in the definitions themselves. Otherwise, one needs to
- add a semicolon after the use of these macros, which can cause
- warnings when the macro expands to nothing.
-
-Fri May 26 20:00:22 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.inl (strcasecmp, strncasecmp):
-
- I have no idea how this worked before, but in these two functions
- we were using _stricmp/_strnicmp for Win32. Borland doesn't define
- these by default, instead they use stricmp/strnicmp. So instead
- of trying to figure out how this all worked before, I just added
- an #elif for __BORLAND__ and called the stricmp/strnicmp.
-
-Fri May 26 19:26:34 2000 Ossama Othman <ossama@uci.edu>
-
- * netsvcs/clients/Logger/direct_logging.cpp:
-
- Added missing include of `ace/Log_Msg.h'.
-
-Fri May 26 18:14:47 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.inl:
-
- Moved the ACE_OS_String::to_lower () methods up in the file, since
- they are used in other inlined functions.
-
-Fri May 26 16:13:08 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS_String.cpp:
- * ace/OS_String.h:
-
- Moved the strptime back to OS.h, because it is more a time
- thing than a string thing.
-
-Fri May 26 15:58:52 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Select_Reactor_Base.cpp (open):
-
- Re-enabled the change that added ability to set the handle limit
- to a value greater than FD_SETSIZE on platforms that support
- this functionality. This was made possible by Steve Huston's
- change to the ACE::max_handles() method described several
- ChangeLog entries below.
-
-Fri May 26 14:27:02 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.inl:
-
- Changed the strncasecmp methods to not use ssize_t inside of
- them. This required a reworking of the loop, since it
- depended on negative values. This was needed since ssize_t
- is more difficult to get defined than size_t, so it seemed
- less obtrusive to do it this way.
-
-Fri May 26 12:30:56 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/TLI_Connector.h:
- * ace/TLI_Connector.cpp:
-
- Moved include of ace/Log_Msg.h to the header file.
- TLI_Connector.i utilizes some of the ACE_Log_Msg macros.
-
-Fri May 26 14:25:31 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- Added OS_String.h to project for convenience.
-
-Fri May 26 12:23:55 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/TLI_Acceptor.cpp:
- * ace/TLI_Connector.cpp:
-
- *sigh* These files also needed to include "ace/Log_Msg.h."
-
-Fri May 26 12:13:26 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Singleton.cpp:
- * ace/TLI.cpp:
-
- These files needed to explicitly include "ace/Log_Msg.h," too.
-
-Fri May 26 12:04:39 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/ARGV.cpp:
- * ace/Capabilities.cpp:
- * ace/Dump.cpp:
- * ace/Filecache.cpp:
- * ace/Local_Tokens.h:
- * ace/Log_Msg.cpp:
- * ace/Malloc.h:
- * ace/Map_Manager.h:
- * ace/Memory_Pool.cpp:
- * ace/Name_Proxy.cpp:
- * ace/Process.cpp:
- * ace/Process_Manager.cpp:
- * ace/QoS_Manager.cpp:
- * ace/QoS_Session_Factory.cpp:
- * ace/QoS_Session_Impl.cpp:
- * ace/Remote_Name_Space.cpp:
- * ace/SOCK_Acceptor.cpp:
- * ace/SOCK_Dgram.cpp:
- * ace/Select_Reactor_Base.cpp:
- * ace/Service_Repository.cpp:
- * ace/Signal.cpp:
- * ace/Stats.h:
- * ace/Synch.cpp:
- * ace/TP_Reactor.h:
- * ace/Thread_Manager.h:
- * ace/Token.cpp:
-
- These files needed to explicitly include "ace/Log_Msg.h," too.
-
-Fri May 26 11:29:44 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/ACE.cpp:
- * ace/Malloc.h:
-
- Include "ace/Log_Msg.h" to pull in the appropriate definition of
- the ACE llessogging macros. This fixes a problem on Solaris.
-
-Thu May 25 19:39:59 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in:
-
- Re-enabled test for ACE_HAS_SIGNAL_SAFE_OS_CALLS. The fixes to
- the ACE_OSCALL* macros below make it possible to enable this
- feature.
-
- * ace/config-all.h (ACE_OSCALL, ACE_OSCALL_RETURN):
-
- Removed call to "ACE_LOG_MSG->restart()" from these macros in
- the "ACE_HAS_SIGNAL_SAFE_OS_CALLS" case.
-
- * ace/OS.h:
-
- Remove inclusion of "ace/Log_Msg.h" when the
- ACE_ONLY_LATEST_AND_GREATEST preprocessor macro is defined.
- This reduces the number of extraneous header interdependencies
- in much of the ACE source files.
-
- Added a forward declaration for ACE_Log_Msg to compensate for
- the declaration that was initially pulled in by "ace/Log_Msg.h"
- It was only needed for "friend" declaration inside the
- ACE_OS_Object_Manager class.
-
- * ace/Addr.cpp:
- * ace/Addr.h:
- * ace/Auto_Ptr.h:
- * ace/DEV_Addr.cpp:
- * ace/DEV_Connector.h:
- * ace/DEV_Connector.i:
- * ace/DEV_IO.cpp:
- * ace/DLL.cpp:
- * ace/FIFO.cpp:
- * ace/FIFO_Recv.cpp:
- * ace/FIFO_Recv_Msg.cpp:
- * ace/FIFO_Send.cpp:
- * ace/FIFO_Send_Msg.cpp:
- * ace/FILE_Addr.cpp:
- * ace/FILE_Connector.h:
- * ace/FILE_IO.cpp:
- * ace/Get_Opt.cpp:
- * ace/Handle_Set.cpp:
- * ace/INET_Addr.cpp:
- * ace/IO_SAP.cpp:
- * ace/IPC_SAP.cpp:
- * ace/LSOCK.cpp:
- * ace/LSOCK_Acceptor.cpp:
- * ace/LSOCK_CODgram.cpp:
- * ace/LSOCK_Connector.cpp:
- * ace/LSOCK_Dgram.cpp:
- * ace/LSOCK_Stream.cpp:
- * ace/Log_Record.cpp:
- * ace/MEM_Addr.cpp:
- * ace/Makefile:
- * ace/Mem_Map.cpp:
- * ace/Name_Request_Reply.cpp:
- * ace/OS.cpp:
- * ace/Pipe.cpp:
- * ace/SOCK.cpp:
- * ace/SOCK_CODgram.cpp:
- * ace/SOCK_Connector.cpp:
- * ace/SOCK_Dgram_Bcast.cpp:
- * ace/SOCK_Dgram_Mcast_QoS.cpp:
- * ace/SPIPE_Acceptor.cpp:
- * ace/SPIPE_Connector.cpp:
- * ace/SV_Message_Queue.cpp:
- * ace/SV_Semaphore_Complex.cpp:
- * ace/SV_Semaphore_Simple.cpp:
- * ace/SV_Shared_Memory.cpp:
- * ace/Time_Request_Reply.cpp:
- * ace/Trace.cpp:
- * ace/Typed_SV_Message_Queue.cpp:
- * ace/UNIX_Addr.h:
- * apps/Gateway/Peer/Options.cpp:
- * apps/JAWS/server/Parse_Headers.cpp:
- * apps/drwho/Binary_Search.cpp:
- * apps/drwho/CM_Client.cpp:
- * apps/drwho/CM_Server.cpp:
- * apps/drwho/Hash_Table.cpp:
- * apps/drwho/Multicast_Manager.cpp:
- * apps/drwho/Options.cpp:
- * apps/drwho/PMC_All.cpp:
- * apps/drwho/PMC_Flo.cpp:
- * apps/drwho/PMC_Ruser.cpp:
- * apps/drwho/PMC_Usr.cpp:
- * apps/drwho/PMS_All.cpp:
- * apps/drwho/PMS_Flo.cpp:
- * apps/drwho/PMS_Ruser.cpp:
- * apps/drwho/PMS_Usr.cpp:
- * apps/drwho/PM_Client.cpp:
- * apps/drwho/Protocol_Manager.cpp:
- * apps/drwho/Protocol_Record.cpp:
- * apps/drwho/SMR_Client.cpp:
- * apps/drwho/SMR_Server.cpp:
- * apps/drwho/SM_Client.cpp:
- * apps/drwho/SM_Server.cpp:
- * apps/drwho/Search_Struct.cpp:
- * apps/drwho/Single_Lookup.cpp:
- * apps/drwho/client.cpp:
- * apps/drwho/server.cpp:
- * examples/IOStream/client/iostream_client.cpp:
- * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp:
- * examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp:
- * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp:
- * examples/IPC_SAP/SPIPE_SAP/NPClient.cpp:
- * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp:
- * examples/IPC_SAP/SPIPE_SAP/producer_read.cpp:
- * examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp:
- * examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp:
- * examples/IPC_SAP/TLI_SAP/CPP-client.cpp:
- * examples/IPC_SAP/TLI_SAP/CPP-server.cpp:
- * examples/IPC_SAP/TLI_SAP/db-client.cpp:
- * examples/IPC_SAP/TLI_SAP/ftp-client.cpp:
- * examples/Log_Msg/test_callback.cpp:
- * examples/Log_Msg/test_log_msg.cpp:
- * examples/Log_Msg/test_ostream.cpp:
- * examples/Logger/client/logging_app.cpp:
- * examples/Mem_Map/IO-tests/IO_Test.cpp:
- * examples/Mem_Map/file-reverse/file-reverse.cpp:
- * examples/Misc/test_get_opt.cpp:
- * examples/Misc/test_profile_timer.cpp:
- * examples/Misc/test_sstring.cpp:
- * examples/Reactor/FIFO/client.cpp:
- * examples/Reactor/Misc/test_early_timeouts.cpp:
- * examples/Reactor/Misc/test_time_value.cpp:
- * examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp:
- * examples/Shared_Malloc/Options.cpp:
- * examples/Shared_Memory/test_MM.cpp:
- * examples/Shared_Memory/test_SV.cpp:
- * examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp:
- * netsvcs/clients/Logger/indirect_logging.cpp:
- * netsvcs/lib/Logging_Strategy.cpp:
- * performance-tests/Misc/basic_perf.cpp:
-
- Include "ace/Log_Msg.h" to pull in the appropriate definition of
- the ACE logging macros.
-
-Fri May 26 09:16:21 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_Dirent.cpp:
-
- I shall not put ACE_INLINE's in a .cpp file.
- I shall not put ACE_INLINE's in a .cpp file.
- I shall not put ACE_INLINE's in a .cpp file.
- I shall not put ACE_INLINE's in a .cpp file.
- I shall not put ACE_INLINE's in a .cpp file.
- I shall not put ACE_INLINE's in a .cpp file.
- I shall not put ACE_INLINE's in a .cpp file.
- I shall not put ACE_INLINE's in a .cpp file.
- I shall not put ACE_INLINE's in a .cpp file.
- I shall not put ACE_INLINE's in a .cpp file.
-
- :-)
-
-Thu May 25 20:23:45 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/Process_Win32.pm:
-
- The timed_wait wasn't returning the correct value if the
- server actually timed out.
-
-Thu May 25 18:21:41 2000 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (max_handles): If an ACE_LACKS_RLIMIT platform, let
- it try sysconf or FD_SETSIZE instead of always getting ENOTSUP.
-
-Thu May 25 17:39:22 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Event_Handler.cpp (register_stdin_handler): On pSOS, do
- stdin using another thread (like Win32) because ACE_STDIN is not
- a handle that select() can demux on. It only does sockets.
-
- * ace/Log_Msg.cpp (log): Don't do a ACE_Log_Msg_Sig_Guard on pSOS.
- It doesn't have signals to block out anyway.
-
-Thu May 25 16:57:16 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Select_Reactor_T.cpp (handle_error, check_handles): For pSOS,
- select() sets errno to EBADS for invalid socket handle. And, we
- need to use select() (not fstat) to weed out the bad ones.
-
-Thu May 25 15:19:14 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.cpp:
-
- Added an include for stddef.h, since we use size_t here. Also
- moved the OS_Export.h include after the #pragma once stuff.
-
-Thu May 25 12:26:36 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * examples/IPC_SAP/ATM_SAP/Makefile:
- Removed libraries that FORE used to need.
-
-Thu May 25 09:07:16 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS_String.cpp:
- Removed a few ACE_INLINEs.
-
-Wed May 24 20:27:26 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/OS_String.h:
-
- Changed "u_long" to "unsigned long." The u_long typedef wasn't
- being pulled in, so just use the basic type. This avoids having
- to pull in a header, and fixes a compile time problem.
-
-Wed May 24 20:18:59 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Select_Reactor_Base.cpp (open):
-
- Temporarily backed out change that added ability to set handle
- limit to value greater than FD_SETSIZE. It breaks platforms
- that don't support getrlimit().
-
-Wed May 24 18:56:16 2000 Darrell Brunsch <brunsch@uci.edu>:
-
- * ace/OS_Export.h: (added)
-
- In preparation for an eventual splitting up of the ACE DLLs,
- I'm starting to split up the Export macros also. OS_Export will
- be used for the lowest level OS library.
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/ace-dll.icc:
- * ace/ace-lib.icc:
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS_String.cpp: (added)
- * ace/OS_String.h: (added)
- * ace/OS_String.inl: (added)
-
- Moved the string methods of ACE_OS to ACE_OS_String.
-
- * ace/OS_Dirent.cpp:
- * ace/OS_Dirent.h:
- * ace/OS_Dirent.inl:
-
- Separated the Win32 versions of some of the methods into the
- cpp file. The Win32 versions were a bit too complicated to make
- sense having inlined.
-
- Also changed to use ACE_OS_Export.
-
-Wed May 24 10:22:18 2000 Ossama Othman <ossama@uci.edu>
-
- * THANKS:
-
- Added Håkon Innerdal <hakoni@funcom.com> to the list of
- contributors.
-
- * ace/config-linux-common.h (ACE_DEFAULT_SELECT_REACTOR_SIZE):
-
- Commented out the definition of this macro. Its setting
- unnecessarily limited the default size of the Select_Reactor to
- 256 file descriptors. `ace/OS.h' correctly sets the default
- size to FD_SETSIZE. Thanks to Håkon Innerdal
- <hakoni@funcom.com> for pointing this out.
-
- * ace/Select_Reactor_Base.cpp (open):
-
- Do not check if the desired size of the repository, i.e. the
- maximum number of file descriptors, is greater than FD_SETSIZE.
- The same check is effectively done in the call to
- ACE::set_handle_limits(). The redundant check also prevented
- the Reactor from supporting file descriptors numbering more than
- FD_SETSIZE on platforms that support them (e.g. via
- setrlimit(RLIMIT_NOFILE, ...)). Thanks to Håkon Innerdal
- <hakoni@funcom.com> for reporting the problem, and for providing
- a fix.
-
- * m4/platform.m4 (ACE_DEFAULT_SELECT_REACTOR_SIZE):
-
- No longer set the default size to 256 file descriptors.
- `ace/OS.h' correctly set it to FD_SETSIZE.
-
-Wed May 24 10:08:37 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * THANKS:
- Added Pedro Brandao <pbrandao@inescn.pt> name for his additions
- to support ATM for Linux.
-
-Wed May 24 10:01:26 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Acceptor.{h,i,cpp}
- * ace/ATM_Addr.{h,i,cpp}
- * ace/ATM_Connector.{h,i,cpp}
- * ace/ATM_Params.h
- * ace/ATM_QoS.{h,i,cpp}
- * ace/ATM_Stream.cpp:
- Added support for ATM on Linux. Thanks to Pedro Brandao
- <pbrandao@inescn.pt> for providing this.
-
- * ace/TLI.{h,i,cpp}
- * ace/TLI_Connector.{h,i,cpp}
- * ace/TLI_Stream.{h,i,cpp}:
- Changed hard-coded "inline" to "ACE_INLINE"
-
-Wed May 24 08:10:21 2000 Steve Huston <shuston@riverace.com>
-
- * ace/WFMO_Reactor.h: Wrapped the !WinSock2 defs in defined(ACE_WIN32)
- to prevent compile errors on non-win32 platforms. It may be better to
- wrap the whole file in #if defined (ACE_WIN32), but this will solve
- the immediate problem.
-
-Tue May 23 20:13:52 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.h: Moved the definition of WSANETWORKEVENTS to
- before its use. Thanks to Craig Perras <cperras@watchguard.com>
- for reporting this.
-
-Tue May 23 17:59:06 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ACE_wrappers/pace/pace:
- Source files added.
- Changes to pace subdirectory will be noted in
- ACE_wrappers/pace/ChangeLog.
-
-Tue May 23 17:55:17 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): For %t on MVS, use the old ACE 5.0 cast.
- The pthread_t is a struct on MVS.
-
-Tue May 23 17:21:37 2000 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_psos_diab_ppc.GNU: Add -ei1676 to
- CCFLAGS to turn off the gazillion messages about not overriding
- pure virtual functions in derived classes. Thanks to Matt Emerson
- <memerson@escient.com> for this.
-
-Tue May 23 16:37:27 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ACE_wrappers/pace directories added to ACE_wrappers:
-
- ACE_wrappers/pace/docs
- ACE_wrappers/pace/examples
- ACE_wrappers/pace/pace
- ACE_wrappers/pace/pace++
- ACE_wrappers/pace/tests
-
-Mon May 22 15:26:42 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Synch.(cpp h i): ACE_Process_Mutex, ACE_Process_Semaphore -
- changed to using ACE_Mutex and ACE_Semaphore for the underlying
- synch. mechanism (same as Win32 and POSIX semaphores). Process
- and thread are the same thing (synch-wise) on pSOS, and the
- underlying mechanisms Do The Right Thing.
-
-Wed May 10 16:47:31 2000 Steve Huston <shuston@riverace.com>
- (actually committed on Tue May 23)
- * ace/OS.(h i): pSOS changes:
- - Use ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL ()) rather than using
- return func() == 0 ? 0 : -1 to avoid losing errno values.
- - ACE_OS::thr_getspecific, copy existing code from the TSS-emulated
- section to the native TSD-using section.
- - Use u_long as ACE_condattr_t and set its flags in
- ACE_OS::condattr_init rather than in ACE_OS::cond_init to
- avoid strange return errors in other parts of ACE that use
- ACE_OS::condattr_init and expect it to work.
-
-Mon May 22 15:25:33 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.{h,cpp} (ACE_Thread_Exit):
- * ace/Thread_Manager.cpp (~ACE_Thread_Exit): Moved the reset of
- ACE_Thread_Exit::is_constructed_ from the Thread_Exit's
- destructor to ACE_OS_Object_Manager::fini (). Otherwise, the
- singleton ACE_Thread_Exit may get created multiple times.
- Thanks to Eric Yee <eyee@authentica.com> for reporting the
- problem.
-
- Notice that ACE 5.1.1, 5.1.2 and 5.1.3 all have the same problem
- of creating TSS keys unnecessarily without cleaning them up.
- This will most likely cause a long running server process
- creating a lot of threads to crash eventually (at least on NT.)
- Therefore, you should not use these versions in a production
- environment.
-
-Mon May 22 11:23:19 2000 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * ACE version 5.1.3 released.
-
-Sun May 21 17:11:12 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Configuration.cpp:
-
- Fixed some ACE_USES_WCHAR problems.
-
-Sun May 21 12:29:11 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/run_all_list.pm:
- Removed the Connection_Purging test from the single threaded
- builds, the test cannot work in that configuration.
-
-Sun May 21 11:39:11 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/Signal_Test.cpp (worker_parent): My earlier fix on May 18th, 2000
- was incorrect. The right fix is to make the format specifier be
- %ld, rather than cast the pid_t to (int).
-
-Sat May 20 18:34:05 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in (ACE_HAS_BROKEN_T_ERROR):
-
- Fixed the test that checks if t_error() correctly accepts a
- "const char *" parameter. This should fix a problem that was
- occuring on Solaris.
-
-Sat May 20 19:47:52 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Memory_Pool.cpp: Added the seh_selector method for
- ACE_Pagefile_Memory_Pool so it can be used with ACE_Malloc.
- Thanks to Charlie Duke <cduke@cuseeme.com> for pointing this
- out.
-
-Fri May 19 16:19:11 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/run_all_list.pm:
- Removed the InterOp-Naming test from the Minimum CORBA builds.
-
-Thu May 18 20:40:37 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Makefile:
- More tweaking to get CDR_Array_Test *not* to compile on LynxOS
- but to compile in other platforms.
-
-Thu May 18 15:59:10 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/CDR_File_Test.cpp:
- Fixed so it works on platforms that lack native 64 bit types.
-
-Thu May 18 13:56:49 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Configuration.cpp:
- Removed an unused variable from import_config().
-
-Thu May 18 13:28:41 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Makefile:
- More tweaking to disable the CDR_Array_Test on LynxOS, the 3.0
- version of Lynx has a newer g++ compiler, but it is still
- broken.
-
-Thu May 18 12:48:54 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Signal_Test.cpp (worker_parent): Added a cast of
- pid_t to int to make G++ happy. Thanks to David Levine for
- reporting this.
-
-Thu May 18 10:37:30 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_Dirent.h:
-
- It looks like LynxOS needed sys/types.h to be included
- before dirent.h.
-
-Thu May 18 10:29:49 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Makefile:
- Disable the CDR_Array_Test with older versions of g++ because
- the test breaks the templates there.
-
- * tests/CDR_File_Test.cpp:
- Use ULongLong instead of LongLong because the former is better
- supported.
-
-Thu May 18 10:11:20 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/streams.h:
-
- For !ACE_HAS_STANDARD_CPP_LIBRARY, iomanip wasn't being included
- (except for MSVC). So I moved it outside of the _MSC_VER block
- so platforms like IRIX will now include it.
-
-Thu May 18 09:49:12 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Configuration.h:
- * ace/Configuration.cpp:
- Chris Hafey's <chafey@stentorsoft.com> bug fixes and
- enhancements to ACE_Configuration. Set_string_value
- and set_integer_value now work when the value already
- exists, memory leaks have been plugged, and a new
- function added called find_value, which checks for the
- existence in a section of a field by name, and returns
- the data type stored there if it is found.
-
-Wed May 17 20:37:49 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Makefile.am:
- Add missing CDR_File_Test_SOURCES and CDR_Array_Test_SOURCES
- definitions.
-
-Wed May 17 20:25:21 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.h:
- * ace/config-all.h:
-
- Needed to move another define from OS.h to config-all
- (the ENOSYS to EFAULT define) since Borland doesn't
- have ENOSYS defined.
-
-Wed May 17 20:02:25 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Dirent.h:
- * ace/Dirent.i:
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS_Dirent.cpp: (added)
- * ace/OS_Dirent.h: (added)
- * ace/OS_Dirent.inl: (added)
- * ace/ace-dll.icc:
- * ace/ace-lib.icc:
- * ace/ace.icc:
- * ace/ace_dll.dsp:
- * ace/ace_dll_ce.dsp:
- * ace/ace_lib.dsp:
- * ace/config-all.h:
-
- Ladies and Gentlemen, you are witnessing the beginning of the
- end of ACE_OS as we know it. That's right, I am taking on the
- bazillion lines of stuff in OS.*, and separating it into bite
- size pieces.
-
- So this is the first step, kind of a test of concept. I took
- the dirent methods and separated them out into a separate class
- (in its own files), ACE_OS_Dirent. So now if one only wishes
- to use the dirent static methods, one only has to include
- OS_Dirent.h.
-
- But what about all the code that thinks it is still in ACE_OS?
- Glad you asked, since ACE_OS now inherits from ACE_OS_Dirent,
- meaning using ACE_OS::opendir () and family still works.
-
- So eventually everything will be moved out, and ACE_OS will
- just be a shell of a class that inherits from the ACE_OS_*
- classes (with maybe an ACE_ONLY_LATEST_AND_GREATEST thrown
- in here and there).
-
- Let's just hope that this works....
-
-Wed May 17 19:01:52 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Fixed minor typos in the -smart_proxies option.
-
- * bin/run_all_list.pm:
- The path for one of the tests (InterOp-Naming) was broken, my
- fault.
-
-Wed May 17 16:20:30 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Future.cpp:
- * ace/Future.h:
- * ace/Future_Set.cpp:
- * ace/Future_Set.h:
- * ace/LOCK_SOCK_Acceptor.cpp:
- * ace/config-pharlap.h:
-
- While searching for the cause of a warning being undisabled,
- I noticed there were several places where we were using
- #include /**/ "ace/some-header.h". The #include /**/ is only
- for system headers, so it doesn't need to be used with ACE
- headers.
-
- * ace/streams.h:
-
- If ACE_HAS_STANDARD_CPP_LIBRARY is defined, then we include
- the .h-less versions of the header files. This is all fine
- and good, except that these headers in MSVC will disable some
- warnings with #pragma warning, but then set them back to
- default at the end. So if we disabled a warning in the config
- file, it would get reenabled because of these headers.
-
- So I added a #pragma warning(push/pop) pair around the includes
- in this file to localize the warning settings.
-
-Wed May 17 14:32:50 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/CDR_Array_Test.cpp:
- Fixed warnings in KAI-3.4 (and other EDG based compilers), it
- makes no sense to return 'const int'
-
-Wed May 17 12:03:41 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * Msg_WFMO_Reactor.cpp:
- * Msg_WFMO_Reactor.h:
- * Msg_WFMO_Reactor.i:
- * ace/README:
- * ace/config-WinCE.h:
- * ace/config-pharlap.h:
-
- Added an ACE_LACKS_MSG_WFMO macro that is used when ACE_WIN32
- is defined but MsgWaitForMultipleOjbects isn't. This replaces
- the checking for Pharlap and Windows CE. Thanks to David Hauck
- <davidh@realtimeint.com> for this suggestion.
-
-Wed May 17 13:34:22 2000 Steve Huston <shuston@riverace.com>
-
- * tests/Thread_Pool_Reactor_Test.cpp: Added a little more diagnostic
- info that was useful in diagnosing a previous problem in the
- ACE_TP_Reactor.
-
-Wed May 17 12:48:24 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/CDR_File_Test.cpp:
- More workarounds for compiler bugs, this time egcs-1.1.1 is at
- fault.
-
-Wed May 17 10:58:23 2000 Steve Huston <shuston@riverace.com>
-
- * ace/WFMO_Reactor.(cpp h): Changed complex_dispatch_handler() and
- upcall() to redo upcall(s) when the handler returns 1. This adds
- ACE_WFMO_Reactor functionality equivalent to the ACE_Select_Reactor
- family. To do this, the upcall() function's signature was changed
- to accept a WSANETWORKEVENTS structure by reference. upcall()
- updates the lNetworkEvents flags to indicate which requested a
- callback. If the handler is not marked for deletion, the upcall
- is done again. To properly support this, the call to
- WSAEnumNetworkEvents is done once in complex_dispatch_handler and
- the events flags are updated on each call to upcall().
- Thanks to Irfan Pyarali <irfan@cs.wustl.edu> for his guidance
- in designing this change.
-
-Wed May 17 10:54:05 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * examples/ConfigViewer/ConfigTreeCtrl.cpp:
- * examples/ConfigViewer/ConfigTreeCtrl.h:
- * examples/ConfigViewer/ConfigurationViewer.cpp:
- * examples/ConfigViewer/ConfigurationViewer.dsp:
- * examples/ConfigViewer/ConfigurationViewer.dsw:
- * examples/ConfigViewer/ConfigurationViewer.rc:
- * examples/ConfigViewer/MainFrame.cpp:
- * examples/ConfigViewer/MainFrame.h:
- * examples/ConfigViewer/README:
- * examples/ConfigViewer/ValueDlg.cpp:
- * examples/ConfigViewer/ValueDlg.h:
- * examples/ConfigViewer/ValueListCtrl.cpp:
- * examples/ConfigViewer/ValueListCtrl.h:
- * examples/ConfigViewer/mondrian.ico:
- * examples/ConfigViewer/mondrian.xpm:
- * examples/ConfigViewer/stdafx.cpp:
- * examples/ConfigViewer/stdafx.h:
- Chris Hafey's ACE_Configuration viewer/editor for vxWindows.
- For details, see the README file or email Chris at
- <chris@stentorsoft.com>.
-
-Wed May 17 09:02:45 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/CDR_Array_Test.cpp:
- Workaround problems with old versions of g++, in some cases it
- gets confused with sizeof(T) inside a template.
-
-Tue May 16 12:01:56 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Msg_WFMO_Reactor.cpp:
- * ace/Msg_WFMO_Reactor.h:
-
- Applied some patches that Bruce Trask <BTRASK@contactsystems.com>
- sent for building ACE on Pharlap.
-
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/Process.cpp:
- * ace/ace_wchar.h:
-
- GetEnvironmentStrings is the only Windows API function that I've
- seen that doesn't follow the same FuncA/FuncW naming that the
- rest do. So I added a wrapper in ACE_OS (getenvstrings) and it
- does the appropriate magic in the .cpp file to get this to work.
-
- This only showed up when UNICODE was defined but ACE_USES_WCHAR
- wasn't.
-
- * ace/Process.cpp:
-
- Removed a comment that stated that the WinCE version of
- inherit_environment () was in Process.i. Actually, there isn't
- a version for CE at all.
-
- * tests/CDR_Array_Test.cpp:
-
- Updated the test so it works with ACE_USES_WCHAR.
-
-Tue May 16 10:02:33 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/CDR_File_Test.cpp:
- The test was removing the file even when the user requested not
- to do so.
-
-Tue May 16 09:53:19 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CDR_Stream.i:
- Change swap_8 again, this time it compiles with -O2 and -O3,
- using the assembly instructions for full performance.
-
- * tests/CDR_Array_Test.cpp:
- Fixed several problems reported during the last night builds.
- Mostly template quirks and the ever annoying problems of Sun/CC
- 4.2 with static_casts
-
- * tests/CDR_File_Test.cpp:
- Don't use ?: operators when the arguments are of different
- types.
-
-Mon May 15 21:00:31 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CDR_Stream.i:
- The swap_8 operator was not working when debugging was
- disabled.
-
-Mon May 15 16:06:01 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/CORBA_macros.h:
-
- Added Support for Exception::_downcast () by modifying _narrow
- to _downcast (). Thanks to William Horn <whorn1984@my-deja.com>.
-
-
-Mon May 15 15:49:37 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/run_all_list.pm:
- Add Connection_Purging to the list.
-
-Mon May 15 15:23:27 2000 Ossama Othman <ossama@uci.edu>
-
- The following are primarily consistency related updates.
-
- * ace/LSOCK.i (ACE_LSOCK):
-
- Initialize "aux_handle_" member to ACE_INVALID_HANDLE in the
- base member initializer list.
-
- * ace/Thread_Manager.i (ACE_At_Thread_Exit):
-
- Initialize "next_" member to 0 in the base member initializer
- list.
-
- (ACE_Thread_Descriptor_Base):
-
- Initialize "next_" and "prev_" members to 0 in the base member
- initializer list.
-
-Mon May 15 15:14:41 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
- Cristian Ferretti <cristian_ferretti@yahoo.com> has contributed
- a number of optimizations to the byte swapping code for CDR
- streams. The optimizations include loop unrolling for 32-bit
- and 64-bit architectures, use of especial assembly instructions
- for x86-based platforms and use of bit operations (instead of
- memory manipulation) for other processors.
-
- * tests/Makefile:
- * tests/Makefile.am:
- * tests/Makefile.bor:
- * tests/run_tests.bat:
- * tests/run_tests.lst:
- * tests/run_tests.vxworks:
- * tests/tests.dsw:
- * tests/CDR_Array_Test.cpp:
- * tests/CDR_Array_Test.dsp:
- * tests/CDR_Array_Test.icc:
- New test to verify that the array operations in the CDR classes
- actually work, this is specially critical because the new
- versions unroll loop, perform assembly instructions that work
- best when the alignment is right, etc.
-
- * tests/CDR_File_Test.cpp:
- The test was extended. Now we can save a file in one platform
- and load it (manually) in another platform, to verify that byte
- swapping actually works.
- Both tests were contributed by Cristian Ferretti
- <cristian_ferretti@yahoo.com>, which is good because all this
- voodoo programming needs testing.
- The changes were tested using PA-RISC, Alphas, Sparcs and
- finally Pentiums in various forms and using several compilers.
-
-Mon May 15 14:01:23 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h:
-
- QNX Neutrino has the <sys/resource.h> header, so include it.
-
- * ace/config-qnx-neutrino.h:
-
- QNX supports the {get,set}rlimit() functions. ACE's autoconf
- support detected this support.
-
-Mon May 15 12:32:05 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Log_Record.cpp (print):
-
- Added a "%s" format specifier to the fprintf() call. This was
- needed to allow strings containing percent signs '%' to be
- printed. This problem was inadvertently introduced during some
- UNICODE related updates. The "%s" format specifier can handle
- UNICODE strings. Thanks to Edan Ayal <edana@bandwiz.com> for
- reporting this problem and providing a fix.
-
-Mon May 15 10:25:38 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/create_vt_dsps.pl:
-
- I got tired of creating the version tests for the ACE tests,
- so why not script it?
-
- * tests/version_tests/ACE_Init_Test.dsp: (removed)
-
- This test is tricky. It uses MFC, which gets complicated when
- also using the static version of ACE. Since this is the only
- test that does this, I just disabled it in the create_vt_dsps.pl.
-
- * tests/version_tests/Reactor_Exception_Test.dsp: (removed)
- * tests/version_tests/Sigset_Op_Test.dsp: (removed)
-
- These two were named differently than their parents in
- tests/, so they have been renamed.
-
- * tests/version_tests/Atomic_Op_Test.dsp:
- * tests/version_tests/Auto_IncDec_Test.dsp:
- * tests/version_tests/Barrier_Test.dsp:
- * tests/version_tests/Basic_Types_Test.dsp:
- * tests/version_tests/Buffer_Stream_Test.dsp:
- * tests/version_tests/CDR_File_Test.dsp:
- * tests/version_tests/CDR_Test.dsp:
- * tests/version_tests/Cache_Map_Manager_Test.dsp:
- * tests/version_tests/Cached_Accept_Conn_Test.dsp:
- * tests/version_tests/Cached_Conn_Test.dsp:
- * tests/version_tests/Capabilities_Test.dsp:
- * tests/version_tests/Collection_Test.dsp:
- * tests/version_tests/Conn_Test.dsp:
- * tests/version_tests/DLL_Test.dsp:
- * tests/version_tests/DLList_Test.dsp:
- * tests/version_tests/Dynamic_Priority_Test.dsp:
- * tests/version_tests/Enum_Interfaces_Test.dsp:
- * tests/version_tests/Env_Value_Test.dsp:
- * tests/version_tests/Future_Set_Test.dsp:
- * tests/version_tests/Future_Test.dsp:
- * tests/version_tests/Handle_Set_Test.dsp:
- * tests/version_tests/Hash_Map_Bucket_Iterator_Test.dsp:
- * tests/version_tests/Hash_Map_Manager_Test.dsp:
- * tests/version_tests/High_Res_Timer_Test.dsp:
- * tests/version_tests/IOStream_Test.dsp:
- * tests/version_tests/Lazy_Map_Manager_Test.dsp:
- * tests/version_tests/MM_Shared_Memory_Test.dsp:
- * tests/version_tests/MT_Reactor_Timer_Test.dsp:
- * tests/version_tests/MT_SOCK_Test.dsp:
- * tests/version_tests/Malloc_Test.dsp:
- * tests/version_tests/Map_Manager_Test.dsp:
- * tests/version_tests/Map_Test.dsp:
- * tests/version_tests/Mem_Map_Test.dsp:
- * tests/version_tests/Message_Block_Test.dsp:
- * tests/version_tests/Message_Queue_Notifications_Test.dsp:
- * tests/version_tests/Message_Queue_Test.dsp:
- * tests/version_tests/Naming_Test.dsp:
- * tests/version_tests/New_Fail_Test.dsp:
- * tests/version_tests/Notify_Performance_Test.dsp:
- * tests/version_tests/Object_Manager_Test.dsp:
- * tests/version_tests/OrdMultiSet_Test.dsp:
- * tests/version_tests/Pipe_Test.dsp:
- * tests/version_tests/Priority_Buffer_Test.dsp:
- * tests/version_tests/Priority_Reactor_Test.dsp:
- * tests/version_tests/Priority_Task_Test.dsp:
- * tests/version_tests/Process_Manager_Test.dsp:
- * tests/version_tests/Process_Mutex_Test.dsp:
- * tests/version_tests/Process_Strategy_Test.dsp:
- * tests/version_tests/RB_Tree_Test.dsp:
- * tests/version_tests/Reactor_Notify_Test.dsp:
- * tests/version_tests/Reactor_Performance_Test.dsp:
- * tests/version_tests/Reactor_Timer_Test.dsp:
- * tests/version_tests/Reactors_Test.dsp:
- * tests/version_tests/Reader_Writer_Test.dsp:
- * tests/version_tests/Recursive_Mutex_Test.dsp:
- * tests/version_tests/Reverse_Lock_Test.dsp:
- * tests/version_tests/SOCK_Connector_Test.dsp:
- * tests/version_tests/SOCK_Send_Recv_Test.dsp:
- * tests/version_tests/SOCK_Test.dsp:
- * tests/version_tests/SPIPE_Test.dsp:
- * tests/version_tests/SString_Test.dsp:
- * tests/version_tests/SV_Shared_Memory_Test.dsp:
- * tests/version_tests/Semaphore_Test.dsp:
- * tests/version_tests/Service_Config_Test.dsp:
- * tests/version_tests/Simple_Message_Block_Test.dsp:
- * tests/version_tests/Svc_Handler_Test.dsp:
- * tests/version_tests/TSS_Test.dsp:
- * tests/version_tests/Task_Test.dsp:
- * tests/version_tests/Thread_Manager_Test.dsp:
- * tests/version_tests/Thread_Mutex_Test.dsp:
- * tests/version_tests/Thread_Pool_Reactor_Test.dsp:
- * tests/version_tests/Thread_Pool_Test.dsp:
- * tests/version_tests/Time_Service_Test.dsp:
- * tests/version_tests/Time_Value_Test.dsp:
- * tests/version_tests/Timeprobe_Test.dsp:
- * tests/version_tests/Timer_Queue_Test.dsp:
- * tests/version_tests/Tokens_Test.dsp:
- * tests/version_tests/UPIPE_SAP_Test.dsp:
- * tests/version_tests/Upgradable_RW_Test.dsp:
- * tests/version_tests/version_tests.dsw:
- * tests/version_tests/Reactor_Exceptions_Test.dsp: (added)
- * tests/version_tests/Sigset_Ops_Test.dsp: (added)
-
- These files were regenerated.
-
-Mon May 15 12:28:32 2000 Aviad Eden <Aviad_Eden@icomverse.com>
-
- * ace/Object_Manager.h: In the paragraph that describes the
- behavior of ::exit function (starting with the words "NOTE
- on the use of ::exit --"). The first sentence states that
- using ::exit "does not destroy static objects" while it
- should be "does not destroy automatic objects".
-
-Mon May 15 12:25:59 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (thr_join): removed comments about possible
- implementation using ::taskSafe ()/::taskUnsafe () on
- VxWorks. Join functionality is better implemented
- in the Thread_Manager. Thanks to Umar for asking about
- this comment.
-
-Mon May 15 09:09:49 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Local_Name_Space_T.cpp:
- * ace/Remote_Name_Space.cpp:
- * netsvcs/lib/Name_Handler.cpp:
-
- Changed my use of ACE_Auto_Array_Ptr for ACE_USHORT16
- to ACE_Auto_Basic_Array_Ptr. Thanks to Andy Gokhale for
- reporting this.
-
-Mon May 15 08:31:13 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/streams.h:
-
- Undid the commenting out of #include <iomanip.h> for
- ACE_USES_OLD_IOSTREAMS. It had previously been commented
- out because of a problem with Qt. A better solution would
- be to not include it only when ACE is used with Qt.
-
- This problem was showing up with Explicit_Event_Loop.
-
-Sun May 14 12:43:35 2000 Darrell Brunsch <brunsch@uci.edu>
-
- (On behalf of Christopher Kohlhoff <chris@kohlhoff.com>)
-
- * ace/Makefile.bor:
- * include/makeinclude/ace_flags.bor:
-
- Added new file, moved ACE_BUILD_DLL macro into ACE library's
- makefile. Thanks also to Mogens Hansen <mogens_h@dk-online.dk>.
-
- * include/makeinclude/recurse.bor:
-
- Arguments like -i should now be propogated with makefile
- recursion
-
-Sun May 14 12:19:41 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Added a -TAO option to specify that the TAO subdirectory
- should be compiled.
-
-Sat May 13 19:05:23 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/SString.cpp:
-
- Forgot to add a base member initialization for the allocator
- in the new ACE_USHORT16 constructor for ACE_WString. Thanks
- to Chris Kohlhoff <chris@kohlhoff.com> for noticing this.
-
-Sat May 13 19:07:32 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-kcc-common.h: Added ACE_HAS_STRING_CLASS. This fixed
- the IOStream_Test.
-
-Sat May 13 13:01:08 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/SString_Test.cpp:
-
- So yesterday I changed a type from ACE_USHORT16 to
- wchar_t. Rather, it should have been ACE_WSTRING_TYPE.
-
-Sat May 13 01:06:22 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Local_Name_Space_T.cpp:
- * ace/Remote_Name_Space.cpp:
-
- SunCC 5 didn't like the template instantiations in the
- Local_Name_Space_T file, so I moved them to
- Remote_Name_Space.cpp.
-
-Fri May 12 17:48:17 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/generate_export_file.pl:
-
- Found a new way to write this script using map and a __DATA__
- block.
-
-Fri May 12 17:52:22 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): Reverted James'
- previous change for now. It's causing problem with MSVC.
-
-Fri May 12 15:04:58 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/run_all_list.pm:
- * bin/auto_compile_win32.pl:
- Updated to include the new TAO test.
-
-Fri May 12 11:25:10 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Basic_Types.h:
-
- Didn't understand at first why ACE_SIZEOF_WCHAR wasn't
- defined to just "sizeof (wchar_t)". So I changed it, but
- now I realize that this will not work if ACE_SIZEOF_WCHAR
- is used in a #if. Bleh. Since wchar_t is always different,
- I just defined it as 2 for WIN32 and 0 for others (so the
- tests/Basic_Types_Test will catch it). [Bug 560]
-
- * ace/ACE.cpp:
-
- Chris Kohlhoff <chris@kohlhoff.com> reported that Borland
- didn't like "sizeof wchar_t", but adding parenthesis worked.
- Applied this patch, and changed the cast to an ACE_static_cast.
- [Bug 560]
-
- * ace/High_Res_Timer.cpp:
-
- Borland was giving some warnings here since a const method
- was calling this->global_scale_factor (), which is a static
- method. Changed it to ACE_High_Res_Timer::global_scale_factor ()
- and things compiled cleanly.
-
- * ace/config-win32-borland.h:
- * ace/README:
- * ace/SString.cpp:
- * ace/SString.h:
- * ace/Local_Name_Space_T.cpp:
- * ace/Remote_Name_Space.cpp:
- * netsvcs/lib/Name_Handler.cpp:
-
- On Borland BCB 5, wchar_t is (correctly) a separate type than
- unsigned short, so all the implicit casting between the two in
- the ACE Name Space. So added a new macro,
- ACE_WSTRING_HAS_USHORT_SUPPORT, that enables another constructor
- for ACE_WString.
-
- Chris Kohlhoff <chris@kohlhoff.com> also reported this problem
- and a solution, but unfortunately ACE_Name_Space requires that
- this type is 2 bytes so we couldn't just use ACE_WSTRING_TYPE
- here. Instead I added in both the new constructor and a
- ushort_rep method on ACE_WString. I changed the Name Space stuff
- to use this instead. BTW, old code shouldn't need to be changed
- on MSVC, just if you use BCB. [Bug 561]
-
- * tests/SString_Test.cpp:
-
- We were using ACE_USHORT16 as the single character type for
- ACE_WString. This has been changed to wchar_t. Thanks to Chris
- for this one also. [Bug 561]
-
-Fri May 12 10:12:05 2000 James Hu <jxh@entera.com>
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke):
- If the TSS instance of the ACE_Thread_Exit class fails to
- create, the application will crash. The new code will
- detect the failure, and use an instance created off the
- stack if it happens. This mimics how ACE does it in
- the case of platforms that do not support TSS.
-
-Thu May 11 18:07:53 2000 Chris Cleeland <cleeland_c@ociweb.com>
-
- * ace/OS.i (malloc): Bug 566.
- * ace/OS.i (realloc):
- * ace/OS.i (calloc):
- * ace/OS.i (free): Use the new macros (below) instead of directly
- calling malloc-like functions, thereby allowing an installation to
- substitute an alternate mallocator for the global (see comment for
- OS.h below).
-
- * ace/OS.i (strdup): Changed the emulation of strdup() to use
- ACE_OS::malloc() rather than ::malloc().
-
- * ace/OS.h: Added the four macros ACE_MALLOC_FUNC,
- ACE_CALLOC_FUNC, ACE_REALLOC_FUNC, and ACE_FREE_FUNC which default
- to the names of the global ::malloc, ::calloc, ::realloc and
- ::free. Using this, a site can define these in their config.h in
- order to substitute an alternate malloc-like allocator.
-
-Thu May 11 17:23:14 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- Removed non-existent file Configuration.i from project.
-
-Thu May 11 15:21:34 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.i (dlsym):
-
- I was checking for ACE_HAS_WIN32 instead of ACE_WIN32,
- so this wasn't doing what it was supposed to with
- ACE_USES_WCHAR turned on.
-
-Thu May 11 02:04:58 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h
- * ace/OS.cpp
- * ace/SOCK_Stream.h
- * ace/SOCK_Stream.i
- * ace/TLI_Stream.h
- * ace/TLI_Stream.i
- * ace/ACE.cpp
- * ace/ACE.h
- * ace/ACE.i
-
- In order to make the return values of recv_n() and send_n()
- match the return values of recv() and send(), the following
- changes were made to the interface:
-
- old interface:
-
- static ssize_t recv_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- const ACE_Time_Value *timeout = 0,
- int error_on_eof = 1);
-
- new interface:
-
- static ssize_t recv_n (ACE_HANDLE handle,
- void *buf,
- size_t len,
- const ACE_Time_Value *timeout = 0,
- size_t *bytes_transferred = 0);
-
- Return value are:
-
- - On complete transfer, <len> is returned.
- - On timeout, -1 is returned, errno == ETIME.
- - On error, -1 is returned, errno is set to appropriate error.
- - On EOF, 0 is returned, errno is irrelevant.
-
- On partial transfers, i.e., if any data is transferred before
- timeout/error/EOF, <bytes_transferred> will contain the number
- of bytes transferred. These return values now closely match the
- return values from the non "_n" methods.
-
- Thanks to Douglas Schmidt, Chris Cleeland, Steve Huston, James
- Hu, and Rich Seibel for helping out!
-
-Thu May 11 01:59:10 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Pipe.cpp: Reader and writer handles were being left open
- when there was an error in ACE_Pipe::open(). This fixes bug
- 549. Thanks to Rick Ohnemus <rjohnemus@systemware-inc.com> for
- reporting this bug and providing patches.
-
-Wed May 10 18:36:58 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * THANKS:
- Add a new contributor
-
- * bin/msvc_auto_compile.pl:
- * bin/auto_compile_win32.pl:
- Upgraded to use the new libraries in orbsvcs.
-
-Tue May 9 20:02:41 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Asynch_Acceptor.cpp:
-
- Was still including "Asynch_Acceptor.i" which has been removed.
-
- * apps/JAWS2/JAWS/Cache_Manager_T.cpp:
-
- Removed iostream.h include here. This is not good since ACE
- already includes it, and ACE might already include <iostream>,
- which is incompatible with <iostream.h>.
-
- * examples/Reactor/WFMO_Reactor/test_talker.cpp:
-
- Looks like the constructor to Proactor was changed, but this
- test didn't get changed also. Removed one of the arguments
- being passed to it.
-
- * websvcs/lib/websvcs_export.h:
-
- Regenerated it. It seems like I changed the websvcs library
- based on what I thought was in this file. This didn't work,
- since I was assuming that ACE_WEBSVCS_HAS_DLL was automatically
- defined (and older versions of these export files did not do
- that).
-
- * apps/JAWS/server/HTTP_Helpers.cpp:
- * examples/Shared_Malloc/test_malloc.cpp:
-
- Changed empty ;'s in if statements to {} to remove warnings.
-
-
- * bin/msvc_auto_compile.pl:
-
- Added a -u option that tells the script to pass the /USEENV
- flag to msdev when it runs.
-
- Added a -ACE option that tells the script just to compile the
- ACE directories.
-
- Changed -core to -CORE to be consistent with -ACE (and the
- upcoming -TAO).
-
- * apps/Gateway/Gateway/Gateway.dsp:
- * apps/Gateway/Gateway/gatewayd.dsp:
- * apps/Gateway/Peer/Peer.dsp:
- * apps/Gateway/Peer/peerd.dsp:
- * apps/JAWS/clients/Caching/Caching.dsp:
- * apps/JAWS/server/jaws.dsp:
- * apps/JAWS2/server.dsp:
- * apps/JAWS2/HTTPU/HTTPU.DSP:
- * apps/JAWS2/HTTPU/HTTPU.DSW:
- * apps/JAWS2/JAWS/jaws.dsp:
- * examples/ASX/Event_Server/Event_Server/Event_Server.dsp:
- * examples/ASX/Event_Server/Transceiver/transceiver.dsp:
- * examples/ASX/Message_Queue/Bounded_Buffer.dsp:
- * examples/ASX/Message_Queue/Buffer_Stream.dsp:
- * examples/ASX/Message_Queue/Priority_Buffer.dsp:
- * examples/ASX/UPIPE_Event_Server/UPIPE_Event_Server.dsp:
- * examples/Bounded_Packet_Relay/Bounded_Packet_Relay.dsp:
- * examples/Configuration/Test.dsp:
- * examples/Connection/blocking/SPIPE.dsp:
- * examples/Connection/blocking/acceptor.dsp:
- * examples/Connection/non_blocking/non_blocking.dsp:
- * examples/Connection/non_blocking/server.dsp:
- * examples/IPC_SAP/ATM_SAP/CPP_client.dsp:
- * examples/IPC_SAP/ATM_SAP/CPP_server.dsp:
- * examples/IPC_SAP/SOCK_SAP/CPP_inclient.dsp:
- * examples/IPC_SAP/SOCK_SAP/CPP_inserver.dsp:
- * examples/IPC_SAP/SOCK_SAP/CPP_memclient.dsp:
- * examples/IPC_SAP/SOCK_SAP/CPP_memserver.dsp:
- * examples/IPC_SAP/SOCK_SAP/C_inserver.dsp:
- * examples/IPC_SAP/SOCK_SAP/SOCK_SAP.dsp:
- * examples/Log_Msg/Callback.dsp:
- * examples/Log_Msg/Log_Msg.dsp:
- * examples/Log_Msg/Ostream.dsp:
- * examples/Logger/Acceptor-server/server_loggerd.dsp:
- * examples/Mem_Map/file-reverse/file_reverse.dsp:
- * examples/Naming/Naming.dsp:
- * examples/Naming/multiple_contexts.dsp:
- * examples/Naming/non_existent.dsp:
- * examples/OS/Process/Process.dsp:
- * examples/OS/Process/imore.dsp:
- * examples/QOS/client.dsp:
- * examples/QOS/server.dsp:
- * examples/Reactor/Dgram/CODgram.dsp:
- * examples/Reactor/Dgram/Dgram.dsp:
- * examples/Reactor/Misc/Misc.dsp:
- * examples/Reactor/Misc/demuxing.dsp:
- * examples/Reactor/Misc/early_timeouts.dsp:
- * examples/Reactor/Misc/notification.dsp:
- * examples/Reactor/Misc/reactors.dsp:
- * examples/Reactor/Misc/signals_1.dsp:
- * examples/Reactor/Misc/signals_2.dsp:
- * examples/Reactor/Ntalker/ntalker.dsp:
- * examples/Reactor/Proactor/post_completions.dsp:
- * examples/Reactor/Proactor/test_cancel.dsp:
- * examples/Reactor/Proactor/test_end_event_loop.dsp:
- * examples/Reactor/Proactor/test_multiple_loops.dsp:
- * examples/Reactor/Proactor/test_proactor.dsp:
- * examples/Reactor/Proactor/test_timeout.dsp:
- * examples/Reactor/WFMO_Reactor/Handle_Close.dsp:
- * examples/Registry/Registry.dsp:
- * examples/Registry/update.dsp:
- * examples/Service_Configurator/Misc/Timer.dsp:
- * examples/Service_Configurator/Misc/main.dsp:
- * examples/Shared_Malloc/malloc.dsp:
- * examples/Shared_Malloc/multiple_mallocs.dsp:
- * examples/Shared_Malloc/persistence.dsp:
- * examples/Shared_Malloc/position_independent_malloc.dsp:
- * examples/Web_Crawler/Web_Crawler.dsp:
- * performance-tests/Misc/basic_perf.dsp:
- * performance-tests/Misc/childbirth_time.dsp:
- * performance-tests/Misc/context_switch_time.dsp:
- * performance-tests/Misc/test_mutex.dsp:
- * performance-tests/Misc/test_naming.dsp:
- * performance-tests/Misc/test_singleton.dsp:
- * performance-tests/Server_Concurrency/Leader_Follower/Leader_Follower.dsp:
- * performance-tests/Server_Concurrency/Queue_Based_Workers/Queue_Based_Workers.dsp:
- * performance-tests/TCP/TCP.dsp:
-
- While testing the -ACE flag in msvc_auto_compile, I found that
- there were many dsps that were either creating precompiled
- headers, didn't have the correct include paths, or even weren't
- in the CRLF format. Fixed them up.
-
- * apps/JAWS/clients/Caching/testing.dsp:
- * performance-tests/Synch-Benchmarks/Synch_Tests.dsp:
-
- These project files didn't look like they are used anymore,
- so I removed them.
-
-Tue May 9 17:38:47 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile_win32.pl:
- Include the new library used in the RT CORBA tests.
-
-Tue May 9 09:01:24 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * examples/Export/README: (added)
- * examples/Export/dll.cpp: (added)
- * examples/Export/dll.h: (added)
- * examples/Export/export_dll.dsp: (added)
- * examples/Export/export_test.dsw: (added)
- * examples/Export/run_test.pl: (added)
- * examples/Export/test.cpp: (added)
- * examples/Export/test.dsp: (added)
- * examples/Export/test_export.h: (added)
-
- The export example is an example of how to use the ACE_Export
- type macros for DLLs.
-
-Mon May 8 14:37:32 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task.h: Cleaned up the documentation so that it will
- work correctly with class2man. Thanks to Charlie Duke
- <cduke@www.cuseemeworld.com> for reporting this.
-
-Mon May 08 22:56:28 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ACE version 5.1.2 released.
-
-Mon May 8 11:02:49 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * docs/CE-status.txt:
-
- I will not get a chance to update this before the beta, so
- I just put in a note mentioning that it is out of date and
- will be updated next time.
-
-Mon May 8 12:30:15 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_kcc.GNU: Added
- "--once_instantiation_per_object" flag for both compiler and
- linker to avoid some warnings about duplicate symbol
- definitions.
-
-Sun May 7 19:50:21 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU:
-
- Undid Doug's change on "Wed May 3 18:07:16 2000".
- The fix wasn't working in our SUNCC 5 builds.
-
-Sat May 6 17:49:01 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
-
- Changed the signature of log_priority_enabled to have both the
- char * and wchar_t * versions when using ACE_USES_WCHAR. The
- reason why this has to be done is because of ACE_HEX_DUMP.
-
- ACE_HEX_DUMP calls both log_priority_enabled and log_hexdump,
- and it doesn't make sense to change the signature of log_hexdump.
- If it were to take in a wchar_t buffer, it should print the
- entire wchar_t. But if we have a buffer that is a char *, then
- it doesn't make sense to convert it to a wchar_t * buffer, since
- it adds all those extra bytes that would show up with hexdump.
-
- And now that we have 3 versions of this method which do the same
- things, I changed the ones that is used by the macros to call
- the one that just takes in the priority. An extra function call,
- but if that is a problem, then they can be inlined.
-
-Sat May 6 19:33:49 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/platform_freebsd.GNU: Removed definition
- BIN_TRUE. It's no longer used.
-
-Thu May 4 14:53:45 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-all.h:
- * ace/config-win32-common.h:
- * bin/generate_export_file.pl:
-
- Changed the ACE_EXPORT_SINGLETON_DECLARE and
- ACE_IMPORT_SINGLETON_DECLARE to take in arguments, but
- this time it takes in 3, the singleton type, the class,
- and then the lock. So we have:
-
- ACE_EXPORT_SINGLETON_DECLARE (ACE_Singleton, foo, ACE_Null_Mutex);
-
-Thu May 4 13:59:58 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-all.h:
- * ace/config-win32-common.h:
-
- Added two new macros, ACE_EXPORT_SINGLETON_DECLARE and
- ACE_IMPORT_SINGLETON_DECLARE. They do the same thing as the
- *_DECLARATION macros except they do not take arguments.
-
- So instead of
- ACE_EXPORT_SINGLETON_DECLARATION (foo);
- you use
- ACE_EXPORT_SINGLETON_DECLARE foo;
-
- This was needed since foo may be a template, and if so, the
- comma that can be between multiple arguments causes problems.
-
- * bin/generate_export_file.pl:
-
- Now creates the above DECLARE macros in addition to the rest.
-
-Thu May 4 14:47:09 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/platform_freebsd.GNU: Defined BIN_TRUE as
- /usr/bin/true.
-
-Wed May 3 19:35:48 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Log_Msg.cpp:
- The implementation of the log_priority_enabled function did not
- match its declaration.
-
-Wed May 3 17:21:50 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-win32-common.h:
-
- After many reports of not having _MT defined (and then not
- quite knowing what to do about it), I felt we needed a bit
- more descriptive error and comment.
-
- * docs/ACE-FMM.html:
- * docs/ACE-bug-process.html:
- * docs/ACE-development-process.html:
- * docs/ACE-guidelines.html:
- * docs/ACE-lessons.html:
- * docs/ACE-porting.html:
- * docs/ACE-subsets.html:
- * docs/exceptions.html:
- * docs/index.html: (added)
- * docs/usage-bugzilla.html:
-
- Added an index for the files in this directory. Added
- backlinks to the other files.
-
-Wed May 3 18:07:16 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Malloc_T (memory_pool): Found another bug with SunC++ 5.0...
- Moved the ACE_Allocator_Adapter::protect() into the Malloc_T.cpp
- file.
-
-Wed May 3 17:16:12 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Log_Msg.h (log_priority_enabled):
-
- Corrected use of "ASYS_TCHAR." "ACE_TCHAR" should be used
- instead.
-
-Wed May 3 18:07:16 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Log_Msg: Added the new log_priority_enabled() method. Thanks
- to Ossama for reporting this ;-).
-
- * include/makeinclude/platform_sunos5_sunc++.GNU (CC_VERSION):
- The keywords to check if the version if greater than 5 is "C++"
- on Solaris, not "Compilers." Thanks to Rick Weisner
- <Rick.Weisner@East.Sun.COM> for reporting this.
-
-Wed May 3 15:08:03 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/platform_freebsd.GNU: Changed to set
- versioned_so only when building on version 2 of FreeBSD. Thanks
- to Henrik Kai <hka@ddk.de> for pointing this out.
-
-Wed May 3 12:31:32 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile.am (INLINE_FILES):
-
- Removed deprecated inline files from the list.
-
-Wed May 3 11:59:14 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/macros.GNU:
- * include/makeinclude/rules.common.GNU:
- * include/makeinclude/rules.local.GNU:
- New <idl_stubs> target that recusively builds all the IDL
- generated files.
-
-Wed May 3 11:43:05 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Log_Msg.h: Only call set() in the ACE_{ERROR,DEBUG} macros if
- the log_priority_enabled() is non-0, which avoids making
- unecessary strcpy() calls. Thanks to Ganesh Pai
- <gpai@voicetek.com> for reporting this.
-
- * ace/Timer_Queue_Adapters (schedule): Make sure to pass
- the act to the schedule() method. Also, updated the header file
- so that it explains that interval timers aren't implemented.
- Thanks to Umar Syyid for reporting these.
-
-Wed May 3 09:49:57 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Caching_Utility_T.cpp:
- * ace/Map.cpp:
- * ace/Pair.cpp:
- * ace/Svc_Handler.cpp:
- * ace/Win32_Asynch_IO.cpp:
- * ace/Win32_Proactor.cpp:
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Removed inclusion of non-existent .i files from corresponding
- .cpp files and from the project files.
-
-Tue May 2 19:33:57 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * Updated all the dependencies.
-
- * ace: Removed all the following files because they were empty and
- yet were being #included into various other *.h files, which
- slowed down compilation unnnecessarily! Thanks to Espen Harlinn
- <espen@harlinn.no> for reporting this.
- * ace/Acceptor.i
- * ace/WIN32_Proactor.i:
- * ace/WIN32_Asynch_IO.i:
- * ace/Token_Invariants.i:
- * ace/TLI_Acceptor.i:
- * ace/Svc_Handler.i:
- * ace/Proactor.i:
- * ace/Stream_Modules.i:
- * ace/Select_Reactor.i:
- * ace/Map.i:
- * ace/Priority_Reactor.i:
- * ace/Pair.i:
- * ace/Hash_Map_Manager.i:
- * ace/LSOCK_Acceptor.i
- * ace/CORBA_Ref.i:
- * ace/Configuration.i:
- * ace/Connector.i:
- * ace/Cleanup_Strategies_T.i;
- * ace/SPIPE_Acceptor.i:
- * ace/Trace.i:
- * ace/Log_Msg.i:
- * ace/IO_Cntl_Msg.i:
- * ace/Dynamic_Service.i:
- * ace/Caching_Utility_T.i:
- * ace/Cached_Connect_Strategy_T.i:
- * ace/Asynch_IO.i:
- * ace/Asynch_Acceptor.i:
-
- * ace/OS.i (readdir_r): Apparently the GNU compiler on DEC UNIX
- defines a macro for readdir_r() that was breaking things.
- Therefore, we #ifdef for that! Thanks to Jean-Marc Strauss
- <jms97@club-internet.fr> for reporting this.
-
-Tue May 2 12:48:00 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/g++dep:
- Use `pwd` instead of $PWD to get the currenct directory because
- some shell don't get that one right.
-
-Tue May 02 13:51:21 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/create_ace_build: updated comments at top to reflect
- the fact that dead symlinks are removed when run on an
- existing build tree.
-
-Tue May 2 10:24:10 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/auto_compile_win32.pl:
-
- Fixed a couple of release configurations that were out of date.
-
-Tue May 2 10:05:21 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * websvcs/lib/URL_Addr.cpp:
- * websvcs/lib/URL_Addr.h:
- * websvcs/lib/URL_Addr.i:
- * websvcs/lib/websvcs.dsp:
-
- The changes to the new wchar style wasn't completely correct,
- and I missed quite a few LPCTSTRs in the .i file. Also corrected
- my earlier attempt at doing the export stuff the "right way".
-
- Also changed the use of the variable passwd to password. passwd
- is also used as a structure so it confused MSVC when used in the
- FTP class constructor
-
-Tue May 2 09:34:31 2000 Steve Huston <shuston@riverace.com>
-
- * tests/SOCK_Send_Recv_Test.cpp: Fix signed/unsigned warnings.
-
-Mon May 1 16:51:07 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Now gets the current directory for the default of ACE_ROOT
- instead of using ".". Also only tries compiling files ending
- with dsp, not just ones with .dsp in their name (like *.dsp.bak).
- Finally, added a print_status options (-s) that will output
- status messages to STDERR, so you can see how much far it has
- progressed when you are redirecting stdout to a file.
-
-Mon May 01 12:41:39 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.cpp (close_i): Restored freeing of the
- table memory which had been mistakenly removed. Thanks to David
- for pointing this out.
-
-Mon May 1 10:27:48 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/auto_compile_win32.pl:
-
- Some minor changes that should make the Win32 builds clean
- ( which I want to see once before bugging Nanbor to switch
- to my script :-) )
-
-Mon May 01 02:06:02 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc_T.cpp (avail_chunks): Changed to use do-while loop to
- go over all freelist when calculating the avail_chunks to make
- sure all nodes in the freelist are accounted for. <freep_>
- doesn't always point to the anchoring Malloc_Header in the
- control block. Thanks to Ivan Murphy
- <Ivan.Murphy@med.siemens.de> for reporting the problem.
-
- Also we must reduce the header size count by one when
- calculating the avail_chunks because each returning allocated
- memory chunk takes at least two Malloc_Header's. This change
- made the result of <avail_chunks> more realistic.
-
- * ace/Malloc.h: Added more documentation explaining how Malloc_T
- works.
-
-Sun Apr 30 23:20:00 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/SString.h:
-
- SunCC 5 had problems with ACE_TString when it was typdefed,
- but not when it was #defined.
-
- * ace/ace_wchar.h:
-
- Noticed I was including tchar.h still, which is no longer
- necessary since ACE's use of wchar_t is separate from
- tchar.h's.
-
-Sat Apr 29 20:02:39 2000 Ossama Othman <ossama@uci.edu>
-
- * bin/autoconf_compile (BUILD_LIST):
-
- Remove TAO from the build list. It's autoconf support hasn't
- been fully integrated yet.
-
-Sat Apr 29 19:45:41 2000 Ossama Othman <ossama@uci.edu>
-
- * netsvcs/lib/Log_Message_Receiver.cpp (attach, detach):
-
- Fixed warning that occured when
- ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES was not defined.
-
- Use ACE_GUARD{_RETURN} macro instead of naked ACE_Guard.
-
-Sat Apr 29 19:17:25 2000 Ossama Othman <ossama@uci.edu>
-
- * ace-dll.icc:
- * ace_dll.dsp:
- * ace_lib.dsp:
-
- These files still referred to the deprecated `inc_user_config.h'
- header. The header is now called `config-all.h'.
-
-Sat Apr 29 19:09:00 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/QoS_Manager.h:
-
- Moved inclusion of one of the ACE headers prior to the check for
- ACE_LACKS_PRAGMA_ONCE. The definition of ACE_LACKS_PRAGMA_ONCE
- wasn't pulled before the check, so it ended up being defined
- twice.
-
-Sat Apr 29 16:15:29 2000 Ossama Othman <ossama@uci.edu>
-
- * bin/autoconf_compile:
- * bin/autoconf_compile_wrapper:
-
- The ACE+autoconf counterparts to the auto_compile* scripts.
- These scripts are used to run automatic builds of the ACE's
- autoconf support.
-
-Sat Apr 29 15:59:53 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile.am (HEADER_FILES):
-
- Removed `inc_user_config.h' from the list of headers. It no
- longer exists.
-
- Added `config-all.h', `ACE_export.h' and `svc_export.h' to the
- list of headers.
-
-Sat Apr 29 17:13:55 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/Makefile.am: Added the SOCK_Dgram_Mcast_QoS.{cpp,h,i}
-
-Sat Apr 29 14:49:13 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * examples/DLL/Newsweek.dsp:
- * examples/Threads/barrier1.dsp:
- * examples/Threads/barrier2.dsp:
- * examples/Threads/cancel.dsp:
- * examples/Threads/future1.dsp:
- * examples/Threads/future2.dsp:
- * examples/Threads/manual_event.dsp:
- * examples/Threads/process_mutex.dsp:
- * examples/Threads/process_semaphore.dsp:
- * examples/Threads/reader_writer.dsp:
- * examples/Threads/recursive_mutex.dsp:
- * examples/Threads/task_five.dsp:
- * examples/Threads/task_four.dsp:
- * examples/Threads/task_one.dsp:
- * examples/Threads/task_three.dsp:
- * examples/Threads/task_two.dsp:
- * examples/Threads/test.dsp:
- * examples/Threads/thread_manager.dsp:
- * examples/Threads/thread_pool.dsp:
- * examples/Threads/thread_specific.dsp:
- * examples/Threads/token.dsp:
- * examples/Threads/tss1.dsp:
- * examples/Threads/tss2.dsp:
- * examples/Timer_Queue/Async_Timer_Queue_Test.dsp:
- * examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp:
- * examples/Timer_Queue/Thread_Timer_Queue_Test.dsp:
- * examples/Web_Crawler/Web_Crawler.dsp:
- * performance-tests/Synch-Benchmarks/synch_driver.dsp:
- * performance-tests/Synch-Benchmarks/Base_Test/Base_Test.dsp:
- * performance-tests/Synch-Benchmarks/Perf_Test/Perf_Test.dsp:
- * performance-tests/Synch-Benchmarks/Synch_Lib/Synch_Lib.dsp:
- * websvcs/lib/websvcs.dsp:
- * websvcs/tests/Test_URL_Addr.dsp:
-
- I started to test out my msvc_auto_compile.pl script and after
- testing it for the whole thing, found out that I soon ran out
- of disk space. By the time I ran out of space, the PCH files
- made up 3 GB of disk. So I removed them from these projects.
-
-Sat Apr 29 14:15:12 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/clean_dsp.pl:
-
- Was still some bugs in this script. In general, beware
- of using it. There is no guarantess that it does or ever
- will work.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- Having said that, I went and used it on these project files
- anyway. Reduced their size by a good 50%.
-
- * ace/ace_dll_ce.dsp:
-
- Made the x86 emulation release configuration build correctly
- by ingoring default libraries. Also cleaned this dsp, which
- had an improvement of 98%.
-
-Sat Apr 29 13:20:11 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * apps/drwho/PMS_All.cpp:
- * apps/drwho/PMS_Ruser.cpp:
-
- Was still using some ACE::strecpy, changed to ACE_OS::strecpy.
-
-Fri Apr 28 21:30:46 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Fixed the build core logic to work correctly when more than
- one configuration is specified.
-
- * bin/vc_filter.pl:
-
- Now ignores the LINK4089 warnings. We haven't quite figured
- out how to fix them yet.
-
-Fri Apr 28 21:11:32 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/clean_dsp.pl: (added)
-
- This script should clean out excess baggage from DSP files.
-
-Fri Apr 28 13:11:20 2000 Ossama Othman <ossama@uci.edu>
-
- * include/makeinclude/platform_linux_lxpthread.GNU:
- * include/makeinclude/platform_linux_lxpthreads.GNU:
-
- Renamed `platform_linux_lxpthread.GNU' to
- platform_linux_lxpthreads.GNU to be consistent with the name of
- its corresponding config header `config-linux-lxpthreads.h'.
- Thanks to Ken Weinert <kenw@ihs.com> for reporting this.
-
- `platform_linux_lxpthread.GNU' now includes the newly renamed
- file for backward compatibility.
-
-Fri Apr 28 11:54:21 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SString.cpp: Fixed the delimiter_replace() method so that
- it actually does what it's comment implies... Thanks to Martin
- Krumpolec <krumpo@pobox.sk> for reporting this.
-
-Thu Apr 27 18:19:19 2000 James Hu <jxh@entera.com>
-
- * ace/Dirent.i: Added checks to see if dirp_ is initialized
- before calling into ACE_OS.
-
-Thu Apr 27 16:53:49 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.cpp (unbind_all_i): Added new method
- unbind_all() for removing all the entries in one shot. Thanks
- to Boris Sukholitko <boris@WebGlide.com> for providing this
- enhancement.
-
- * tests/Hash_Map_Manager_Test.cpp: Added test for unbind_all().
-
-Thu Apr 27 14:17:52 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.i:
-
- isatty (): Messed up on my CE change, so the version that
- takes an int was hidden by a ACE_WIN32 block. This has been
- moved outside again.
-
- * ace/OS.cpp:
-
- Weird, somehow part of a section that should have been removed
- with the CE changes was still present. Removed again.
-
-Thu Apr 27 13:08:00 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Changed the code style and made it consistent.
-
- Also changed the core build to build all of the orbsvcs and
- do the static builds in the right order.
-
- * ace/OS.cpp:
- * ace/OS.i:
-
- For some reason, I had trouble with the libraries when the
- ACE_Cleanup destructor was in the .i file. So I moved it to
- the .cpp file instead.
-
- * ace/ace_dll.dsp:
-
- Was defining ACE_ACE_HAS_DLL=1, which is #1, not needed and,
- #2, the wrong macro name.
-
- * ace/ace_lib.dsp:
-
- Changed the static configs to be of type Win32 Static Release/
- Debug instead of Win32 Release/Debug.
-
- * apps/gperf/src/gperf.dsp:
- * apps/gperf/src/gperf_lib.dsp:
-
- Added Win32 Static Release/Debug configs.
-
-Thu Apr 27 14:32:45 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ACE-INSTALL (make): Updated the documentation. Thanks to
- Ken Weinert <kenw@ihs.com> for reporting this.
-
-Thu Apr 27 12:41:42 2000 James C. Hu <jxh@entera.com>
-
- * ace/OS.i:
- * ace/OS.cpp:
- * ace/config-freebsd-pthread.h:
- * ace/README:
-
- Removed ACE_HAS_TIME_R in favor of using existing
- mechanism of ACE_HAS_REENTRANT_FUNCTIONS, and then
- adding ACE_LACKS_NETDB_REENTRANT_FUNCTIONS and
- also ACE_LACKS_PWD_REENTRANT_FUNCTIONS. Created a
- new lacks called ACE_LACKS_RAND_REENTRANT_FUNCTIONS
- to match the previous two. FreeBSD can now use its
- native *time_r functions.
-
-Thu Apr 27 10:55:11 2000 Darrell Brunsch <brunsch@uci.edu>
-
- These changes bring the Windows CE port up to date. It currently
- supports Windows CE 2.11 on the H/PC Pro. I am looking into the 2.11
- P/PC port, but there are other problems with it still. Hopefully
- the WinCE 3.0 SDK will be more mature.
-
- * ace/ace_dll_ce.dsp: (added)
- * ace/ace_ce_dll.dsp: (removed)
- * ace/ace_ce.dsw:
-
- Created a new dsp file from scratch from CE to see how the
- toolkit sets up the projects. Removed the old one.
-
- * ace/ACE.cpp:
-
- format_hexdump (): Changed usage of isprint to ACE_OS::ace_isprint.
-
- get_ip_interfaces (): Changed use of deprecated ACE_TEXT_STRING to
- ACE_TString. Also added an ACE_TEXT_CHAR_TO_TCHAR to a use
- of the ACE_INET_Addr constructor.
-
- * ace/ARGV.cpp:
-
- create_buf_from_queue (): We were not adjusting the size of a
- ACE_TCHAR buffer by sizeof ACE_TCHAR when we did a memcopy.
- Thanks to Valery Arkhangorodsky <valerya@servicesoft.com>
- for reporting this.
-
- * ace/Memory_Pool.cpp:
-
- seh_selector (): Changed use of LPEXCEPTION_POINTERS to
- EXCEPTION_POINTERS * since it seems like that definition is
- missing in some WinCE configs.
-
- * ace/ace_wchar.h:
-
- Added deprecated definition of ACE_TEXT_STRING.
-
- convert (): Changed the conversions from CharToOem to
- MultiByteToWideChar, since it is more widely supported in Win32.
- Also removed the loading of user32.lib since it was only needed
- for CharToOem.
-
- * ace/config-win32-common.h:
-
- Changed the _MT check so it doesn't do anything on CE. Some
- CE targets do not have the Multithreaded DLL generation option.
-
- * ace/config-WinCE.h:
-
- Changed ACE_DEFAULT_LD_SEARCH_PATH to use ACE_TEXT.
-
- Added a define for ACE_HAS_WCHAR and a check to always define
- ACE_USES_WCHAR.
-
- Commented out the ACE_HAS_MFC check.
-
- Defined FILE, since it seems to be missing from CE 2.11 H/PC Pro.
-
- Added a definition for EXCEPTION_ACCESS_VIOLATION that was in
- older SDK's.
-
- Removed some UNDER_CE < 2.11 defines. < 2.11 CE will not be
- supported anymore.
-
- Removed definition of is_print, since it was moved into ACE_OS.
-
- Added a definition for the operator placement new, which is
- missing when MFC isn't used.
-
- * ace/OS.h:
-
- Enabled is_atty for Windows CE. Added ace_isprint and made
- ace_isspace an ACE_TCHAR method.
-
- * ace/OS.i:
-
- chdir (): NOTSUP on CE 2.11
-
- tempnam (): Also NOTSUP on CE 2.11
-
- abort (): changed ::exit to exit to get it to compile.
-
- ace_isspace (): Changed to use ACE_TCHAR, but also made it
- NOTSUP on CE 2.11.
-
- ace_isprint (): Added, but NOTSUP on CE 2.11.
-
- sema_init (): Needed to cast an void *arg to ACE_mutexattr_t.
-
- dlsym (): Changed the way ACE declares symbolname so it uses the
- right one on Win32 (WinNT always uses char *, CE always uses
- wchar_t *). The function still takes in ACE_TCHAR * though.
- Thanks to Jeff Greif <jmg@trivida.com> for reporting this.
-
- Removed a few global function definitions that were just for
- CE (like fwrite, fread, getc, etc.). These are either supported
- in newer CE's or is disabled in the ACE_OS methods.
-
- is_atty (): Enabled on CE.
-
- * ace/OS.cpp:
-
- Enabled fopen on CE by using _wfopen (but not sure if this will
- work correctly, since on other Win32 platforms we have a lot more
- stuff.
-
- Enabled several printf methods on CE.
-
- open (): Removed the use of FILE_SHARE_DELETE on CE.
-
- * ace/Service_Config.i:
-
- initialize (): Added an ACE_TEXT_CHAR_TO_TCHAR and replaced
- an ACE_WIDE_STRING with it also.
-
- * ace/Svc_Conf.h:
- * ace/Svc_Conf.y:
- * ace/Svc_Conf_y.cpp:
-
- ace_yyerror (): Takes an ACE_TCHAR * instead of char * now.
- Thanks to Valery Arkhangorodsky <valerya@servicesoft.com>
- for also reporting this.
-
- * ace/Svc_Conf.l:
- * ace/Svc_Conf_l.cpp:
-
- Changed to use ACE_OS::isatty () and ACE_OS::ace_isprint.
-
-Thu Apr 27 11:49:52 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.i (memchr): Do not cast away constness when emulating
- memchr(). Thanks to Rick Ohnemus <rjohnemus@systemware-inc.com>
- for reporting this.
-
- * ace/Select_Reactor_Base.cpp (open): The notification pipe handlers
- created by the ACE_Select_Reactor_Notify::open were being left
- open after fork() and exec(). Thanks to Rick Ohnemus
- <rjohnemus@systemware-inc.com> for reporting this.
-
-Wed Apr 26 23:47:31 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Process_Manager.cpp (open): Make sure that the dummy I/O
- handle is not inherited by child processes. Thanks to Rick
- Ohnemus <rjohnemus@systemware-inc.com> for reporting this.
-
-Wed Apr 26 20:32:59 2000 James C. Hu <jxh@entera.com>
-
- * ace/OS.cpp:
- * ace/OS.i:
- * ace/README:
- * ace/config-freebsd-pthread.h:
- Added a new define ACE_HAS_TIME_R. FreeBSD supports
- *time_r() calls, but not gethostbyname_r, so a new feature
- specification was needed to get these functions into
- ACE_OS.
-
-Wed Apr 26 12:21:16 2000 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (send_n_i (ACE_HANDLE, const void *, size_t, int) and
- send_n_i (ACE_HANDLE, const void *, size_t): If the send fails
- with EWOULDBLOCK, wait for the handle to become writeable again
- before retrying the send. Thanks to Edan Ayal <edana@bandwiz.com>
- for reporting this.
-
- * tests/SOCK_Send_Recv_Test.cpp: Added test 3 for send_n to verify
- fix for writing to nonblocking handle.
-
-Wed Apr 26 08:43:21 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * apps/drwho/PMC_Flo.cpp:
- * apps/drwho/PMC_Usr.cpp:
- * apps/drwho/PMS_All.cpp:
- * apps/drwho/PMS_Flo.cpp:
- * apps/drwho/PMS_Ruser.cpp:
- * apps/drwho/PMS_Usr.cpp:
-
- Was still using ACE::strecpy, changed to ACE_OS::strecpy.
-
-Tue Apr 25 15:11:41 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * THANKS:
- Add new member to the list.
-
-Tue Apr 25 11:35:07 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Local_Name_Space.cpp:
-
- The hash function was using the wrong length of the USHORT16
- string representation. The len_ actually is the length in bytes,
- not characters.
-
-Tue Apr 25 08:57:59 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ASNMP/tests/test_config.h:
-
- Was using XXX_A and XXX_W macros which really do not make sense
- anymore. Removed them and replaced with just the XXX macro which
- uses ACE_TEXT.
-
- * examples/Naming/test_multiple_contexts.cpp:
- * examples/Naming/test_non_existent.cpp:
- * examples/Naming/test_writers.cpp:
- * performance-tests/Misc/test_naming.cpp:
- * tests/Naming_Test.cpp:
- * tests/SString_Test.cpp:
-
- All of these were still being disabled when ACE_HAS_WCHAR wasn't
- defined. Since the naming stuff was changed to work without
- ACE_HAS_WCHAR, these were reenabled.
-
-Tue Apr 25 00:02:08 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Log_Msg.h (ACE_Log_Msg): Split msg_ostream() into two functions,
- one of which allows the delete_ostream_ flag to be reset and the
- other that doesn't. Thanks to Boris Sukholitko
- <palisander@hotmail.com> for reporting this.
-
- * ace/Message_Block.i (replace_data_block): If a data block is replaced
- with a NULL pointer then don't bother doing certain operations!
- Thanks to Boris Sukholitko <palisander@hotmail.com> for
- reporting this.
-
- * ace/OS.i (dlerror): Changed sizeof buf to sizeof buf / sizeof buf[0]
- to avoid over-allocating a buffer in the
- ACE_TEXT_FormateMessage() function. Thanks to Valery
- Arkhangorodsky <valerya@servicesoft.com> for reporting this.
-
- * ace/Service_Repository.cpp: The fini() method was claiming
- it was the close() method. Likewise, changed the close() method
- so that it keeps decrementing the current_size each time through
- the look to allow checking the respository size or doing other
- work from inside the fini() call. Thanks to Valery
- Arkhangorodsky <valerya@servicesoft.com> for reporting this.
-
-Mon Apr 24 17:44:21 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Object_Manager.cpp:
-
- Ai Carumba! I disabled some stuff here a while back when
- I first disabled the Naming Service, but forgot to enable
- it again once I fixed that.
-
-Mon Apr 24 16:44:22 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/SString.i:
-
- A couple of compilers were having problems with some
- casting I was doing in a const hash method. Changed the
- types of casts to hopefully make the compilers happy.
-
-Mon Apr 24 10:04:51 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.cpp:
-
- Another problem with a missing parenthesis.
-
-Mon Apr 24 09:15:03 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.i:
-
- Forgot a couple of ')'s that showed up on Lynx builds.
-
- Also, ACE_const_char doesn't exist, ACE_const_cast does.
-
-Sun Apr 23 19:51:41 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ACE.cpp:
- * ace/Naming_Context.cpp:
- * ace/SOCK_Dgram_Mcast_QoS.cpp:
-
- Just tried the ACE_USES_WCHAR build and there were a couple
- of things that needed updating. Mainly some missing ACE_TEXT's
- or char's used instead of ACE_TCHAR's.
-
- * tests/Process_Mutex_Test.cpp:
-
- Was still using an old ACE_DEFAULT_MUTEX_A macro (updated to
- ACE_DEFAULT_MUTEX).
-
- * ace/ace_lib.dsp:
-
- Added "static" to the config names (Win32 Debug => Win32 Static
- Debug) so it is easier for the msvc_auto_compile.pl script to
- figure out which is which.
-
-Sun Apr 23 18:14:33 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ace_wchar.h:
-
- Added compatibility for all the old ASYS_* macros by default.
- But no part of ACE/TAO should still use them anymore. This
- compatibility can be turned off by defining
- ACE_ONLY_LATEST_AND_GREATEST.
-
- * ace/SString.cpp:
- * ace/SString.h:
- * ace/SString.i:
- * ace/Local_Name_Space.cpp:
- * ace/Local_Name_Space.h:
- * ace/Local_Name_Space_T.h:
- * ace/Name_Space.cpp:
- * ace/Name_Space.h:
- * ace/Naming_Context.cpp:
- * ace/Naming_Context.h:
- * ace/Remote_Name_Space.cpp:
- * ace/Remote_Name_Space.h:
-
- Found a better way of support for the ACE_Name_Space classes when
- there isn't a wchar_t. We now define the ACE_WString to internally
- use a type called ACE_WSTRING_TYPE, which is defined to wchar_t
- unless ACE_USES_WCHAR is not defined (in which case it is defined
- to ACE_USHORT16).
-
-Sun Apr 23 14:27:11 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/CLASSIX/CLASSIX_Port.cpp:
- * tests/IOStream_Test.cpp:
- * tests/SOCK_Connector_Test.cpp:
-
- Found some old ASYS macros still hanging around in code that wasn't
- enabled on NT.
-
-Sat Apr 22 22:01:15 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Local_Name_Space_T.cpp:
- * ace/Naming_Context.cpp:
-
- Fixed some wchar related changes.
-
-Sat Apr 22 20:53:11 2000 Darrell Brunsch <brunsch@uci.edu>
-
- This is my first checkin of my Unicode changes. They should be
- mostly harmless, since most platforms and build do not use Unicode
- stuff, in which these changes *should* result in the exact same
- behavior as before.
-
- But, if Unicode was being used, then chances are it is not going
- to work without a few changes. A summary of the changes are:
-
- - Standardized wide char support to the following macros:
-
- ACE_HAS_WCHAR - if not defined, ACE will not use the type wchar_t
- or provide any of the functions that use it.
- ACE_USES_WCHAR - if defined, ACE will use wchar_t instead of char
- for its strings (but not its buffers).
-
- This support has been mostly completed, but there are still some
- loose ends that need to be cleaned up.
-
- Note also that even if ACE_USES_WCHAR is defined or not, both
- wide and narrow versions of the string operations will be
- available.
-
- - Removed all the ASYS_* macros (besides ASYS_INLINE). So all code
- using ASYS_TEXT and ASYS_TCHAR should now use ACE_TEXT and
- ACE_TCHAR. And unlike their predecessers, these *will* turn into
- wide character versions when ACE_USES_WCHAR is defined.
-
- - Removed the macros ACE_HAS_WCHAR_TYPEDEFS_USHORT and
- ACE_HAS_WCHAR_TYPEDEFS_CHAR since ACE will not depend on what
- wchar_t defaults to.
-
- - Messed around with Windows CE support, most likely it broke it
- even more. I've halted my work on Windows CE until after this
- change, so I'll be fixing it up in upcoming checkins.
-
- - Since ACE_WString was changed, everything using it will now
- not be available when ACE_HAS_WCHAR is not defined.
-
- The motivation for this change was that the Unicode support was
- a mess and was very unintuitive. Since I was given the job of
- maintaining it (since I'm doing Windows CE stuff now), I decided
- to fix it instead of try to figure out what was currently
- happening. A consistent design is much easier to explain and
- maintain.
-
- * ace/ACE.h:
- * ace/ACE.i:
- * ace/ACE.cpp:
- * ace/ARGV.cpp:
-
- Removed ACE's strecpy since all it did was call ACE_OS's strecpy.
-
- * ace/ace_wchar.h: (added)
-
- Moved all the unicode specific stuff here.
-
- * ace/SString.cpp:
- * ace/SString.h:
- * ace/SString.i:
-
- ACE_WString used to use ACE_USHORT16 instead of wchar_t. I
- changed it so it does, since it will be more useful and intuitive
- this way.
-
- * ace/Log_Record.cpp:
-
- We were using ACE_OS::fwrite to print the string. This didn't work
- when the string was wchar_t, so this was changed to ACE_OS::fprintf
- instead.
-
- * TODO:
- * acconfig.h:
- * configure.in:
- * ace/ACE.cpp:
- * ace/ACE.h:
- * ace/ACE.i:
- * ace/ARGV.cpp:
- * ace/ARGV.h:
- * ace/ARGV.i:
- * ace/ATM_Addr.cpp:
- * ace/ATM_Addr.h:
- * ace/ATM_Connector.i:
- * ace/ATM_QoS.cpp:
- * ace/Acceptor.cpp:
- * ace/Acceptor.h:
- * ace/Activation_Queue.cpp:
- * ace/Addr.cpp:
- * ace/Arg_Shifter.cpp:
- * ace/Arg_Shifter.h:
- * ace/Asynch_Acceptor.cpp:
- * ace/Asynch_IO.cpp:
- * ace/Based_Pointer_T.cpp:
- * ace/Basic_Types.h:
- * ace/CORBA_Handler.cpp:
- * ace/Cache_Map_Manager_T.cpp:
- * ace/Cached_Connect_Strategy_T.cpp:
- * ace/Caching_Strategies_T.i:
- * ace/Capabilities.cpp:
- * ace/Capabilities.h:
- * ace/Capabilities.i:
- * ace/Configuration.cpp:
- * ace/Configuration.h:
- * ace/Connector.cpp:
- * ace/Connector.h:
- * ace/Containers_T.cpp:
- * ace/DEV_Addr.cpp:
- * ace/DEV_Addr.h:
- * ace/DEV_Addr.i:
- * ace/DEV_Connector.i:
- * ace/DLL.cpp:
- * ace/DLL.h:
- * ace/Dirent.h:
- * ace/Dirent.i:
- * ace/Dynamic_Service.cpp:
- * ace/Dynamic_Service.h:
- * ace/Env_Value_T.h:
- * ace/Env_Value_T.i:
- * ace/FIFO.cpp:
- * ace/FIFO.h:
- * ace/FIFO.i:
- * ace/FIFO_Recv.cpp:
- * ace/FIFO_Recv.h:
- * ace/FIFO_Recv_Msg.cpp:
- * ace/FIFO_Recv_Msg.h:
- * ace/FIFO_Send.cpp:
- * ace/FIFO_Send.h:
- * ace/FIFO_Send_Msg.cpp:
- * ace/FIFO_Send_Msg.h:
- * ace/FILE_Addr.cpp:
- * ace/FILE_Addr.h:
- * ace/FILE_Addr.i:
- * ace/FILE_Connector.cpp:
- * ace/FILE_Connector.i:
- * ace/Filecache.cpp:
- * ace/Filecache.h:
- * ace/Functor.h:
- * ace/Functor.i:
- * ace/Future.cpp:
- * ace/Get_Opt.cpp:
- * ace/Get_Opt.h:
- * ace/Handle_Set.cpp:
- * ace/Hash_Map_Manager_T.cpp:
- * ace/Hash_Map_Manager_T.i:
- * ace/High_Res_Timer.cpp:
- * ace/High_Res_Timer.h:
- * ace/INET_Addr.cpp:
- * ace/INET_Addr.h:
- * ace/INET_Addr.i:
- * ace/IO_SAP.cpp:
- * ace/IPC_SAP.cpp:
- * ace/LSOCK.cpp:
- * ace/LSOCK_CODgram.cpp:
- * ace/LSOCK_Connector.cpp:
- * ace/LSOCK_Dgram.cpp:
- * ace/Local_Name_Space.cpp:
- * ace/Local_Name_Space.h:
- * ace/Local_Name_Space_T.cpp:
- * ace/Local_Name_Space_T.h:
- * ace/Local_Tokens.cpp:
- * ace/Local_Tokens.h:
- * ace/Local_Tokens.i:
- * ace/Log_Msg.cpp:
- * ace/Log_Msg.h:
- * ace/Log_Record.cpp:
- * ace/Log_Record.h:
- * ace/Log_Record.i:
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Acceptor.h:
- * ace/MEM_Acceptor.i:
- * ace/MEM_Addr.cpp:
- * ace/MEM_Addr.h:
- * ace/MEM_Addr.i:
- * ace/MEM_Connector.cpp:
- * ace/MEM_SAP.cpp:
- * ace/MEM_SAP.h:
- * ace/Malloc.cpp:
- * ace/Malloc_T.cpp:
- * ace/Malloc_T.h:
- * ace/Malloc_T.i:
- * ace/Map_Manager.cpp:
- * ace/Map_Manager.i:
- * ace/Mem_Map.cpp:
- * ace/Mem_Map.h:
- * ace/Mem_Map.i:
- * ace/Memory_Pool.cpp:
- * ace/Memory_Pool.h:
- * ace/Message_Block.cpp:
- * ace/Message_Queue.cpp:
- * ace/Message_Queue_T.cpp:
- * ace/Module.cpp:
- * ace/Module.h:
- * ace/Module.i:
- * ace/NT_Service.cpp:
- * ace/NT_Service.h:
- * ace/NT_Service.i:
- * ace/Name_Proxy.cpp:
- * ace/Name_Request_Reply.cpp:
- * ace/Name_Space.cpp:
- * ace/Name_Space.h:
- * ace/Naming_Context.cpp:
- * ace/Naming_Context.h:
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
- * ace/Object_Manager.cpp:
- * ace/Obstack.cpp:
- * ace/Obstack.h:
- * ace/POSIX_Asynch_IO.cpp:
- * ace/Parse_Node.cpp:
- * ace/Parse_Node.h:
- * ace/Pipe.cpp:
- * ace/Proactor.cpp:
- * ace/Process.cpp:
- * ace/Process.h:
- * ace/Process.i:
- * ace/Process_Manager.cpp:
- * ace/QoS_Manager.cpp:
- * ace/QoS_Session_Factory.cpp:
- * ace/QoS_Session_Impl.cpp:
- * ace/RB_Tree.cpp:
- * ace/RB_Tree.i:
- * ace/README:
- * ace/Read_Buffer.cpp:
- * ace/Registry.cpp:
- * ace/Registry.h:
- * ace/Registry_Name_Space.cpp:
- * ace/Remote_Name_Space.cpp:
- * ace/Remote_Name_Space.h:
- * ace/Remote_Tokens.cpp:
- * ace/Remote_Tokens.h:
- * ace/Remote_Tokens.i:
- * ace/SOCK.cpp:
- * ace/SOCK_Acceptor.cpp:
- * ace/SOCK_CODgram.cpp:
- * ace/SOCK_Connector.cpp:
- * ace/SOCK_Dgram.cpp:
- * ace/SOCK_Dgram_Bcast.cpp:
- * ace/SOCK_Dgram_Bcast.h:
- * ace/SOCK_Dgram_Mcast.cpp:
- * ace/SOCK_Dgram_Mcast.h:
- * ace/SOCK_Dgram_Mcast_QoS.cpp:
- * ace/SOCK_Dgram_Mcast_QoS.h:
- * ace/SPIPE_Acceptor.cpp:
- * ace/SPIPE_Addr.cpp:
- * ace/SPIPE_Addr.h:
- * ace/SPIPE_Addr.i:
- * ace/SPIPE_Connector.cpp:
- * ace/SString.cpp:
- * ace/SString.h:
- * ace/SString.i:
- * ace/SV_Message_Queue.cpp:
- * ace/SV_Semaphore_Complex.cpp:
- * ace/SV_Semaphore_Simple.cpp:
- * ace/SV_Shared_Memory.cpp:
- * ace/Select_Reactor_Base.cpp:
- * ace/Select_Reactor_T.cpp:
- * ace/Service_Config.cpp:
- * ace/Service_Config.h:
- * ace/Service_Config.i:
- * ace/Service_Manager.cpp:
- * ace/Service_Manager.h:
- * ace/Service_Object.cpp:
- * ace/Service_Object.h:
- * ace/Service_Object.i:
- * ace/Service_Repository.cpp:
- * ace/Service_Repository.h:
- * ace/Service_Types.cpp:
- * ace/Service_Types.h:
- * ace/Service_Types.i:
- * ace/Shared_Memory_MM.cpp:
- * ace/Shared_Memory_MM.h:
- * ace/Shared_Memory_MM.i:
- * ace/Shared_Object.cpp:
- * ace/Shared_Object.h:
- * ace/Singleton.cpp:
- * ace/Stats.cpp:
- * ace/Stats.h:
- * ace/Stats.i:
- * ace/Strategies_T.cpp:
- * ace/Strategies_T.i:
- * ace/Stream.cpp:
- * ace/Stream.h:
- * ace/Stream_Modules.cpp:
- * ace/Stream_Modules.h:
- * ace/Svc_Conf.h:
- * ace/Svc_Conf.l:
- * ace/Svc_Conf.y:
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Handler.cpp:
- * ace/Svc_Handler.h:
- * ace/Synch.cpp:
- * ace/Synch.h:
- * ace/Synch.i:
- * ace/Synch_T.cpp:
- * ace/Synch_T.h:
- * ace/Synch_T.i:
- * ace/System_Time.cpp:
- * ace/System_Time.h:
- * ace/TLI.cpp:
- * ace/TLI_Acceptor.cpp:
- * ace/TLI_Connector.i:
- * ace/TP_Reactor.cpp:
- * ace/TP_Reactor.i:
- * ace/Task_T.cpp:
- * ace/Task_T.h:
- * ace/Template_Instantiations.cpp:
- * ace/Thread_Manager.cpp:
- * ace/Time_Request_Reply.cpp:
- * ace/Timeprobe_T.cpp:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Heap_T.cpp:
- * ace/Timer_List_T.cpp:
- * ace/Timer_Queue_Adapters.cpp:
- * ace/Timer_Queue_T.cpp:
- * ace/Timer_Wheel_T.cpp:
- * ace/Token.cpp:
- * ace/Token.h:
- * ace/Token_Collection.cpp:
- * ace/Token_Collection.h:
- * ace/Token_Collection.i:
- * ace/Token_Invariants.cpp:
- * ace/Token_Invariants.h:
- * ace/Token_Manager.cpp:
- * ace/Token_Manager.h:
- * ace/Token_Request_Reply.cpp:
- * ace/Token_Request_Reply.h:
- * ace/Token_Request_Reply.i:
- * ace/Trace.cpp:
- * ace/Trace.h:
- * ace/UPIPE_Acceptor.cpp:
- * ace/UPIPE_Connector.cpp:
- * ace/UPIPE_Connector.i:
- * ace/WFMO_Reactor.cpp:
- * ace/WFMO_Reactor.i:
- * ace/WIN32_Asynch_IO.cpp:
- * ace/WIN32_Proactor.cpp:
- * ace/XTI_ATM_Mcast.i:
- * ace/config-WinCE.h:
- * ace/config-all.h:
- * ace/config-ghs-common.h:
- * ace/config-tandem.h:
- * ace/config-win32-borland.h:
- * ace/config-win32-common.h:
- * ace/config-win32-msvc.h:
- * ace/config-win32-visualage.h:
- * ace/CLASSIX/CLASSIX_CLD_Connector.cpp:
- * ace/CLASSIX/CLASSIX_CO_Acceptor.cpp:
- * ace/CLASSIX/CLASSIX_Port.cpp:
- * ace/CLASSIX/CLASSIX_Port.h:
- * ace/CLASSIX/CLASSIX_Select_Reactor.cpp:
- * apps/Gateway/Gateway/Options.cpp:
- * apps/JAWS/PROTOTYPE/JAWS/JAWS.h:
- * bin/envinfo.cpp:
- * docs/ACE-guidelines.html:
- * docs/tutorials/Chap_3/mm.cpp:
- * examples/Connection/blocking/SPIPE-acceptor.cpp:
- * examples/Connection/blocking/SPIPE-acceptor.h:
- * examples/Connection/blocking/SPIPE-connector.cpp:
- * examples/Connection/blocking/SPIPE-connector.h:
- * examples/Connection/non_blocking/test_lsock_acceptor.cpp:
- * examples/Connection/non_blocking/test_lsock_connector.cpp:
- * examples/IPC_SAP/ATM_SAP/CPP-client.cpp:
- * examples/IPC_SAP/ATM_SAP/CPP-server.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp:
- * examples/IPC_SAP/UPIPE_SAP/ex3.cpp:
- * examples/Naming/test_multiple_contexts.cpp:
- * examples/Naming/test_non_existent.cpp:
- * examples/Naming/test_writers.cpp:
- * examples/Reactor/WFMO_Reactor/test_console_input.cpp:
- * examples/Reactor/WFMO_Reactor/test_directory_changes.cpp:
- * examples/Reactor/WFMO_Reactor/test_handle_close.cpp:
- * examples/Reactor/WFMO_Reactor/test_registry_changes.cpp:
- * examples/Registry/test_registry_iterator.cpp:
- * examples/Service_Configurator/Misc/Timer_Service.cpp:
- * examples/Service_Configurator/Misc/Timer_Service.h:
- * examples/Service_Configurator/Misc/main.cpp:
- * examples/Service_Configurator/Misc/main.dsp:
- * examples/Web_Crawler/Options.cpp:
- * examples/Web_Crawler/Options.h:
- * examples/Web_Crawler/URL_Addr.cpp:
- * examples/Web_Crawler/URL_Addr.h:
- * netsvcs/clients/Logger/indirect_logging.cpp:
- * netsvcs/clients/Naming/Client/main.cpp:
- * netsvcs/lib/Logging_Strategy.cpp:
- * netsvcs/lib/TS_Clerk_Handler.cpp:
- * netsvcs/lib/TS_Clerk_Handler.h:
- * performance-tests/Misc/test_naming.cpp:
- * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp:
- * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp:
- * performance-tests/TCP/tcp_test.cpp:
- * tests/ACE_Init_Test.dsp:
- * tests/ARGV_Test.cpp:
- * tests/Atomic_Op_Test.cpp:
- * tests/Auto_IncDec_Test.cpp:
- * tests/Barrier_Test.cpp:
- * tests/Basic_Types_Test.cpp:
- * tests/Buffer_Stream_Test.cpp:
- * tests/CDR_File_Test.cpp:
- * tests/CDR_Test.cpp:
- * tests/Cache_Map_Manager_Test.cpp:
- * tests/Cached_Accept_Conn_Test.cpp:
- * tests/Cached_Conn_Test.cpp:
- * tests/Capabilities_Test.cpp:
- * tests/Collection_Test.cpp:
- * tests/Conn_Test.cpp:
- * tests/DLL_Test.cpp:
- * tests/DLL_Test.h:
- * tests/DLList_Test.cpp:
- * tests/Dynamic_Priority_Test.cpp:
- * tests/Enum_Interfaces_Test.cpp:
- * tests/Env_Value_Test.cpp:
- * tests/FlReactor_Test.cpp:
- * tests/Future_Set_Test.cpp:
- * tests/Future_Test.cpp:
- * tests/Handle_Set_Test.cpp:
- * tests/Hash_Map_Bucket_Iterator_Test.cpp:
- * tests/Hash_Map_Manager_Test.cpp:
- * tests/High_Res_Timer_Test.cpp:
- * tests/IOStream_Test.cpp:
- * tests/Lazy_Map_Manager_Test.cpp:
- * tests/Log_Msg_Test.cpp:
- * tests/MM_Shared_Memory_Test.cpp:
- * tests/MT_Reactor_Timer_Test.cpp:
- * tests/MT_SOCK_Test.cpp:
- * tests/Malloc_Test.cpp:
- * tests/Map_Manager_Test.cpp:
- * tests/Map_Test.cpp:
- * tests/Mem_Map_Test.cpp:
- * tests/Message_Block_Test.cpp:
- * tests/Message_Queue_Notifications_Test.cpp:
- * tests/Message_Queue_Test.cpp:
- * tests/Naming_Test.cpp:
- * tests/New_Fail_Test.cpp:
- * tests/Notify_Performance_Test.cpp:
- * tests/Object_Manager_Test.cpp:
- * tests/OrdMultiSet_Test.cpp:
- * tests/Pipe_Test.cpp:
- * tests/Priority_Buffer_Test.cpp:
- * tests/Priority_Reactor_Test.cpp:
- * tests/Priority_Task_Test.cpp:
- * tests/Process_Manager_Test.cpp:
- * tests/Process_Mutex_Test.cpp:
- * tests/Process_Strategy_Test.cpp:
- * tests/Process_Strategy_Test.h:
- * tests/RB_Tree_Test.cpp:
- * tests/Reactor_Exceptions_Test.cpp:
- * tests/Reactor_Notify_Test.cpp:
- * tests/Reactor_Performance_Test.cpp:
- * tests/Reactor_Timer_Test.cpp:
- * tests/Reactors_Test.cpp:
- * tests/Reader_Writer_Test.cpp:
- * tests/Recursive_Mutex_Test.cpp:
- * tests/Reverse_Lock_Test.cpp:
- * tests/SOCK_Connector_Test.cpp:
- * tests/SOCK_Send_Recv_Test.cpp:
- * tests/SOCK_Test.cpp:
- * tests/SPIPE_Test.cpp:
- * tests/SString_Test.cpp:
- * tests/SV_Shared_Memory_Test.cpp:
- * tests/Semaphore_Test.cpp:
- * tests/Service_Config_Test.cpp:
- * tests/Signal_Test.cpp:
- * tests/Sigset_Ops_Test.cpp:
- * tests/Simple_Message_Block_Test.cpp:
- * tests/Svc_Handler_Test.cpp:
- * tests/TSS_Test.cpp:
- * tests/Task_Test.cpp:
- * tests/Thread_Manager_Test.cpp:
- * tests/Thread_Mutex_Test.cpp:
- * tests/Thread_Pool_Reactor_Test.cpp:
- * tests/Thread_Pool_Test.cpp:
- * tests/Time_Service_Test.cpp:
- * tests/Time_Value_Test.cpp:
- * tests/Timeprobe_Test.cpp:
- * tests/Timer_Queue_Test.cpp:
- * tests/TkReactor_Test.cpp:
- * tests/Tokens_Test.cpp:
- * tests/UPIPE_SAP_Test.cpp:
- * tests/Upgradable_RW_Test.cpp:
- * tests/XtReactor_Test.cpp:
- * tests/test_config.h:
- * websvcs/lib/URL_Addr.cpp:
- * websvcs/lib/URL_Addr.h:
- * websvcs/lib/URL_Addr.i:
- * websvcs/tests/Test_URL_Addr.cpp:
-
- Made all the appropriate changes to support the new wide char
- policy. Most changes were macro changes, changing ASYS_* to
- ACE_*, changing char's to ACE_TCHAR's, adding in ACE_TEXT ()'s
- when necessary, etc.
-
-Sat Apr 22 18:41:06 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.h:
- * ace/SOCK_Dgram_Mcast.cpp:
- * ace/SOCK_Dgram_Mcast.i: Removed the QoS enabled overloaded
- methods.
-
- * ace/SOCK_Dgram_Mcast_QoS.h:
- * ace/SOCK_Dgram_Mcast_QoS.cpp:
- * ace/SOCK_Dgram_Mcast_QoS.i: Added this new class that derives from
- ACE_SOCK_Dgram_Mcast and handles all the QoS functionality that
- was being done by the latter.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Added the ace/SOCK_Dgram_Mcast_QoS.{cpp,i,h}
-
-Fri Apr 21 10:23:19 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Removed all chdir's and fixed a bug with specifying multiple -dir's.
-
-Fri Apr 21 09:13:20 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * websvcs/lib/URL_Addr.cpp:
- The URL schemes are supposed to be case insensitive, thanks to
- Paul Carreiro <pcarreir@genuity.com> for pointing this out.
-
-Thu Apr 20 21:05:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Added a -core for only the core libraries. Also fixed a problem
- with specifying incorrect directories and the -DLL/-Debug/etc.
- macros.
-
-Thu Apr 20 18:11:48 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * examples/DLL/Main.dsp:
- * examples/DLL/Newsweek.dsp:
- * examples/DLL/Today.dsp
- * examples/Configuration/Configuration.dsw:
- * examples/Bounded_Packet_Relay/Bounded_Packet_Relay.dsp:
- * examples/Configuration/Test.dsp:
- * examples/IPC_SAP/ATM_SAP/ATM_SAP.dsw:
- * examples/IPC_SAP/ATM_SAP/CPP_client.dsp:
- * examples/IPC_SAP/ATM_SAP/CPP_server.dsp:
- * examples/IPC_SAP/SOCK_SAP/CPP_memclient.dsp:
- * examples/Mem_Map/file-reverse/file_reverse.dsp:
- * examples/NT_Service/NT_Service.dsp:
- * examples/NT_Service/NT_Service.dsw:
- * examples/OS/Process/Process.dsp:
- * examples/OS/Process/imore.dsp:
- * examples/QOS/client.dsp:
- * examples/QOS/server.dsp:
- * examples/Reactor/Misc/demuxing.dsp:
- * examples/Reactor/Multicast/client.dsp:
- * examples/Reactor/Multicast/server.dsp:
- * examples/Service_Configurator/Misc/Timer.dsp:
- * examples/Service_Configurator/Misc/main.dsp:
- * examples/Timer_Queue/Async_Timer_Queue_Test.dsp:
- * examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp:
- * examples/Timer_Queue/Thread_Timer_Queue_Test.dsp:
- * examples/Timer_Queue/Timer_Queue.dsw:
- * examples/Web_Crawler/Web_Crawler.dsp:
-
- Fixed miscellaneous problems with these projects and workspaces.
- Some projects were missing from workspaces or listed incorrectly.
- Many project didn't have the correct include paths or definitions.
-
- * examples/Reactor/Proactor/post_completion.dsp: (removed)
-
- There was already a post_completions.dsp that was being used.
-
- * examples/OS/Process/imore.cpp:
- * examples/OS/Process/process.cpp:
-
- Changed the type of the variables used with Process::wait from
- int to ACE_exitcode.
-
- * examples/Reactor/WFMO_Reactor/test_abandoned.cpp:
- * examples/Reactor/WFMO_Reactor/test_apc.cpp:
-
- Missing parentheses.
-
- * Synch-Benchmarks/Synch_Lib/Synch_Lib.dsp:
-
- Changed the name of the project so win32_auto_compile.pl works
- with it properly.
-
- * bin/msvc_auto_compile.pl: (added)
-
- This is a new script for autocompiling with MSVC 6.
- Eventually this should replace auto_compile_win32.pl. It still
- needs more directories added to it and tested before we put it
- into production
-
- * bin/vc_filter.pl:
-
- Updated to properly color code output from msvc_auto_compile.pl
- also.
-
-Thu Apr 20 09:50:49 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RB_Tree.h:
- * ace/RB_Tree.i:
- Fixed implementation of the end() method. It should return a
- singular iterator that is different from all valid iterator, not
- an iterator pointing to the last element in the collection.
-
-Thu Apr 20 08:53:31 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CDR_Stream.i:
- Fixed problem in the align_write_ptr() method. It was optimized
- for the case where there was enough room in the current buffer,
- but the optimization broke with a previous fix from Feb 29.
-
-Thu Apr 20 08:40:00 2000 Chris Gill <cdgill@cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/BPR_Drivers_T.h,
- examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp:
- Fixed warnings from g++
-
-Wed Apr 19 21:53:52 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay: Added some missing template
- instantiations and other assorted problems. Thanks to Aoxiang
- Xu <axu@cim.mcgill.ca> for reporting these.
-
-Wed Apr 19 07:04:13 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Containers_T.cpp (copy_nodes): insert_head() should have
- been insert_tail(). Thanks to Umar Syyid for clarifying this.
- Also, added some comments to explain what's going on in
- insert_tail() since the code was somewhat non-intuitive ;-).
-
-Wed Apr 19 15:00:44 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * apps/Makefile:
- * apps/drwho/Makefile:
- * performance-tests/Makefile:
- * performance-tests/Server_Concurrency/Leader_Follower/Makefile:
- * performance-tests/Server_Concurrency/Queue_Based_Workers/Makefile:
- More Makefiles that were not in the default compilation path,
- added them and update dependencies.
-
- * bin/Makefile:
- * examples/Bounded_Packet_Relay/Makefile:
- * examples/QOS/Makefile:
- * performance-tests/RPC/Makefile:
- * performance-tests/Synch-Benchmarks/Base_Test/Makefile:
- * performance-tests/Synch-Benchmarks/Perf_Test/Makefile:
- * performance-tests/Synch-Benchmarks/Synch_Lib/Makefile:
- * ASNMP/asnmp/Makefile:
- * ASNMP/examples/get/Makefile:
- * ASNMP/examples/next/Makefile:
- * ASNMP/examples/set/Makefile:
- * ASNMP/examples/trap/Makefile:
- * ASNMP/examples/walk/Makefile:
- * ASNMP/tests/Makefile:
- Just updated dependencies. More fixes are needed to put them in
- the normal compilation path.
-
- * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp:
- * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp:
- They wouldn't compile on platforms that lack context switch
- counters in rusage. Conditionally compile that code to avoid
- the problem.
-
-Wed Apr 19 14:09:29 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * etc/Svc_Conf_l.cpp.diff: Fixed the diff so it generates
- the correct Svc_Conf_l.cpp.
-
-Wed Apr 19 12:48:21 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Added a missing pointer in the signature of
- ACE::t_rcv_n_i ().
-
-Wed Apr 19 10:11:23 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/Atomic_Op_Test.dsp:
- * tests/Auto_IncDec_Test.dsp:
- * tests/Barrier_Test.dsp:
- * tests/Basic_Types_Test.dsp:
- * tests/Buffer_Stream_Test.dsp:
- * tests/CDR_File_Test.dsp:
- * tests/CDR_Test.dsp:
- * tests/Cache_Map_Manager_Test.dsp:
- * tests/Cached_Accept_Conn_Test.dsp:
- * tests/Cached_Conn_Test.dsp:
- * tests/Capabilities_Test.dsp:
- * tests/Collection_Test.dsp:
- * tests/Conn_Test.dsp:
- * tests/DLList_Test.dsp:
- * tests/Dynamic_Priority_Test.dsp:
- * tests/Enum_Interfaces_Test.dsp:
- * tests/Env_Value_Test.dsp:
- * tests/Future_Set_Test.dsp:
- * tests/Future_Test.dsp:
- * tests/Handle_Set_Test.dsp:
- * tests/Hash_Map_Bucket_Iterator_Test.dsp:
- * tests/Hash_Map_Manager_Test.dsp:
- * tests/High_Res_Timer_Test.dsp:
- * tests/IOStream_Test.dsp:
- * tests/Lazy_Map_Manager_Test.dsp:
- * tests/MM_Shared_Memory_Test.dsp:
- * tests/MT_Reactor_Timer_Test.dsp:
- * tests/MT_SOCK_Test.dsp:
- * tests/Malloc_Test.dsp:
- * tests/Map_Manager_Test.dsp:
- * tests/Map_Test.dsp:
- * tests/Mem_Map_Test.dsp:
- * tests/Message_Block_Test.dsp:
- * tests/Message_Queue_Notifications_Test.dsp:
- * tests/Message_Queue_Test.dsp:
- * tests/Naming_Test.dsp:
- * tests/New_Fail_Test.dsp:
- * tests/Notify_Performance_Test.dsp:
- * tests/Object_Manager_Test.dsp:
- * tests/OrdMultiSet_Test.dsp:
- * tests/Pipe_Test.dsp:
- * tests/Priority_Buffer_Test.dsp:
- * tests/Priority_Reactor_Test.dsp:
- * tests/Priority_Task_Test.dsp:
- * tests/Process_Manager_Test.dsp:
- * tests/Process_Mutex_Test.dsp:
- * tests/Process_Strategy_Test.dsp:
- * tests/RB_Tree_Test.dsp:
- * tests/Reactor_Exceptions_Test.dsp:
- * tests/Reactor_Notify_Test.dsp:
- * tests/Reactor_Performance_Test.dsp:
- * tests/Reactor_Timer_Test.dsp:
- * tests/Reactors_Test.dsp:
- * tests/Reader_Writer_Test.dsp:
- * tests/Recursive_Mutex_Test.dsp:
- * tests/Reverse_Lock_Test.dsp:
- * tests/SOCK_Connector_Test.dsp:
- * tests/SOCK_Send_Recv_Test.dsp:
- * tests/SOCK_Test.dsp:
- * tests/SPIPE_Test.dsp:
- * tests/SString_Test.dsp:
- * tests/SV_Shared_Memory_Test.dsp:
- * tests/Semaphore_Test.dsp:
- * tests/Service_Config_Test.dsp:
- * tests/Sigset_Ops_Test.dsp:
- * tests/Simple_Message_Block_Test.dsp:
- * tests/Svc_Handler_Test.dsp:
- * tests/TSS_Test.dsp:
- * tests/Task_Test.dsp:
- * tests/Thread_Manager_Test.dsp:
- * tests/Thread_Mutex_Test.dsp:
- * tests/Thread_Pool_Reactor_Test.dsp:
- * tests/Thread_Pool_Test.dsp:
- * tests/Time_Service_Test.dsp:
- * tests/Time_Value_Test.dsp:
- * tests/Timeprobe_Test.dsp:
- * tests/Timer_Queue_Test.dsp:
- * tests/Tokens_Test.dsp:
- * tests/UPIPE_SAP_Test.dsp:
- * tests/Upgradable_RW_Test.dsp:
- * tests/pharlap/Atomic_Op_Test.dsp: (added)
- * tests/pharlap/Auto_IncDec_Test.dsp: (added)
- * tests/pharlap/Barrier_Test.dsp: (added)
- * tests/pharlap/Basic_Types_Test.dsp: (added)
- * tests/pharlap/Buffer_Stream_Test.dsp: (added)
- * tests/pharlap/CDR_File_Test.dsp: (added)
- * tests/pharlap/CDR_Test.dsp: (added)
- * tests/pharlap/Cache_Map_Manager_Test.dsp: (added)
- * tests/pharlap/Cached_Accept_Conn_Test.dsp: (added)
- * tests/pharlap/Cached_Conn_Test.dsp: (added)
- * tests/pharlap/Capabilities_Test.dsp: (added)
- * tests/pharlap/Collection_Test.dsp: (added)
- * tests/pharlap/Conn_Test.dsp: (added)
- * tests/pharlap/DLList_Test.dsp: (added)
- * tests/pharlap/Dynamic_Priority_Test.dsp: (added)
- * tests/pharlap/Enum_Interfaces_Test.dsp: (added)
- * tests/pharlap/Env_Value_Test.dsp: (added)
- * tests/pharlap/Future_Set_Test.dsp: (added)
- * tests/pharlap/Future_Test.dsp: (added)
- * tests/pharlap/Handle_Set_Test.dsp: (added)
- * tests/pharlap/Hash_Map_Bucket_Iterator_Test.dsp: (added)
- * tests/pharlap/Hash_Map_Manager_Test.dsp: (added)
- * tests/pharlap/High_Res_Timer_Test.dsp: (added)
- * tests/pharlap/IOStream_Test.dsp: (added)
- * tests/pharlap/Lazy_Map_Manager_Test.dsp: (added)
- * tests/pharlap/MM_Shared_Memory_Test.dsp: (added)
- * tests/pharlap/MT_Reactor_Timer_Test.dsp: (added)
- * tests/pharlap/MT_SOCK_Test.dsp: (added)
- * tests/pharlap/Malloc_Test.dsp: (added)
- * tests/pharlap/Map_Manager_Test.dsp: (added)
- * tests/pharlap/Map_Test.dsp: (added)
- * tests/pharlap/Mem_Map_Test.dsp: (added)
- * tests/pharlap/Message_Block_Test.dsp: (added)
- * tests/pharlap/Message_Queue_Notifications_Test.dsp: (added)
- * tests/pharlap/Message_Queue_Test.dsp: (added)
- * tests/pharlap/Naming_Test.dsp: (added)
- * tests/pharlap/New_Fail_Test.dsp: (added)
- * tests/pharlap/Notify_Performance_Test.dsp: (added)
- * tests/pharlap/Object_Manager_Test.dsp: (added)
- * tests/pharlap/OrdMultiSet_Test.dsp: (added)
- * tests/pharlap/Pipe_Test.dsp: (added)
- * tests/pharlap/Priority_Buffer_Test.dsp: (added)
- * tests/pharlap/Priority_Reactor_Test.dsp: (added)
- * tests/pharlap/Priority_Task_Test.dsp: (added)
- * tests/pharlap/Process_Manager_Test.dsp: (added)
- * tests/pharlap/Process_Mutex_Test.dsp: (added)
- * tests/pharlap/Process_Strategy_Test.dsp: (added)
- * tests/pharlap/RB_Tree_Test.dsp: (added)
- * tests/pharlap/Reactor_Exceptions_Test.dsp: (added)
- * tests/pharlap/Reactor_Notify_Test.dsp: (added)
- * tests/pharlap/Reactor_Performance_Test.dsp: (added)
- * tests/pharlap/Reactor_Timer_Test.dsp: (added)
- * tests/pharlap/Reactors_Test.dsp: (added)
- * tests/pharlap/Reader_Writer_Test.dsp: (added)
- * tests/pharlap/Recursive_Mutex_Test.dsp: (added)
- * tests/pharlap/Reverse_Lock_Test.dsp: (added)
- * tests/pharlap/SOCK_Connector_Test.dsp: (added)
- * tests/pharlap/SOCK_Send_Recv_Test.dsp: (added)
- * tests/pharlap/SOCK_Test.dsp: (added)
- * tests/pharlap/SPIPE_Test.dsp: (added)
- * tests/pharlap/SString_Test.dsp: (added)
- * tests/pharlap/SV_Shared_Memory_Test.dsp: (added)
- * tests/pharlap/Semaphore_Test.dsp: (added)
- * tests/pharlap/Service_Config_Test.dsp: (added)
- * tests/pharlap/Sigset_Ops_Test.dsp: (added)
- * tests/pharlap/Simple_Message_Block_Test.dsp: (added)
- * tests/pharlap/Svc_Handler_Test.dsp: (added)
- * tests/pharlap/TSS_Test.dsp: (added)
- * tests/pharlap/Task_Test.dsp: (added)
- * tests/pharlap/Thread_Manager_Test.dsp: (added)
- * tests/pharlap/Thread_Mutex_Test.dsp: (added)
- * tests/pharlap/Thread_Pool_Reactor_Test.dsp: (added)
- * tests/pharlap/Thread_Pool_Test.dsp: (added)
- * tests/pharlap/Time_Service_Test.dsp: (added)
- * tests/pharlap/Time_Value_Test.dsp: (added)
- * tests/pharlap/Timeprobe_Test.dsp: (added)
- * tests/pharlap/Timer_Queue_Test.dsp: (added)
- * tests/pharlap/Tokens_Test.dsp: (added)
- * tests/pharlap/UPIPE_SAP_Test.dsp: (added)
- * tests/pharlap/Upgradable_RW_Test.dsp: (added)
- * tests/pharlap/pharlap_tests.dsw: (added)
-
- Moved all the pharlap configurations to their own dsp files in
- their own subdirectory. This was done so those of us who don't
- have pharlap can load tests.dsw and do a select all in the Build
- All window and only get the relavant builds.
-
- * tests/run_pharlap_tests.bat: (removed)
- * tests/pharlap/run_pharlap_tests.bat: (added)
-
- Moved this file to the pharlap directory also.
-
-Wed Apr 19 10:03:10 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/SOCK_Stream.i:
- The new <error_on_eof> flag was present but not used in several
- methods, just forward them to the ACE::xxx() operation.
-
-Wed Apr 19 08:18:30 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * */Makefile:
- Updated all the dependencies
-
-Wed Apr 19 09:44:14 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Log_Msg.cpp:
- Changed the signature of a (WIN32-specific) call to
- send_n, to resolve a function overload ambiguity on NT.
-
-Wed Apr 19 00:00:29 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace: There are two general use cases of the _n() methods:
-
- (1) The method keeps looping, until all the data has been
- transmitted, or until timeout occurs, or until the handle is
- closed. This use case occurs when one does not know how much
- data is coming across in the case of a recv(), or one wants to
- know exactly how much data was sent in the case of a send().
- And one don't want to treat a premature eof as an error but
- wants to know the exact number of bytes that have been
- transferred so far.
-
- (2) In other cases when one knows exactly how much data is
- coming across in the case of recv(), or how much data needs to
- be transmitted in the case of a send(). Premature closing of the
- handle is usually an error.
-
- By adding an additional <error_on_eof> parameter to all the _n()
- methods, the above two use cases can be distinguished. The
- following files were modified:
-
- - OS
- - ACE
- - SOCK_Stream
- - TLI_Stream
-
- The other IO classes such as FIFO, MEM_IO, PIPE, etc., should
- also include this change. However, they should first get fixed
- with respect to timeouts. If <error_on_eof> comes before
- timeouts, ordering of the parameters will get messed up.
-
- Thanks to Steffen Winther Sorensen <sts@siimnet.dk> for
- reporting this second use of the _n() methods.
-
- * ace/OS.h: t_snd() interface was fixed. The buffer parameter
- should be const.
-
- * ace/ACE: Added support for TLI I/O functions to the ACE class.
-
-Tue Apr 18 19:08:37 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-all.h: (added)
- * ace/inc_user_config.h: (removed)
- * ace/Codeset_IBM1047.h:
- * ace/NT_Service.h:
- * ace/config-win32-common.h:
- * ace/OS.h:
-
- Started moving several of the macros from OS.h to config-all.h.
- The plan is to eventually split up OS.h, and config-all is a
- place where the macros (which are not specific to any part of
- ACE_OS) can go. config-all.h also ate inc_user_config.h.
-
- * ASNMP/agent/main.cpp:
- * ace/iosfwd.h:
- * ace/streams.h:
- * apps/JAWS/PROTOTYPE/JAWS/Assoc_Array.cpp:
- * tests/OrdMultiSet_Test.cpp:
- * tests/Time_Value_Test.cpp:
- * tests/test_config.h:
-
- Since inc_user_config.h was eaten, needed to change includes of
- it to config-all.h.
-
- * bin/generate_export_file.pl: (added)
- * bin/GenExportH.BAT: (removed)
-
- Replaced the batch file with a perl file so
- - people can generate on other platforms
- - it can generate Word_export and WORD_BUILD_DLL
- (the batch file couldn't change the case of the key)
-
- * ace/ACE_export.h: (added)
- * ace/svc_export.h: (added)
-
- Took the existing ACE_Export and ACE_Svc_Export macro and
- moved them to separate files. Also tested out the new
- generate_export_file.pl.
-
- * ace/ACE.cpp:
- * ace/ARGV.cpp:
- * ace/ATM_Acceptor.cpp:
- * ace/ATM_Addr.cpp:
- * ace/ATM_Connector.cpp:
- * ace/ATM_Params.cpp:
- * ace/ATM_QoS.cpp:
- * ace/ATM_Stream.cpp:
- * ace/Acceptor.cpp:
- * ace/Activation_Queue.cpp:
- * ace/Active_Map_Manager.cpp:
- * ace/Addr.cpp:
- * ace/Arg_Shifter.cpp:
- * ace/Asynch_Acceptor.cpp:
- * ace/Asynch_IO.cpp:
- * ace/Asynch_IO_Impl.cpp:
- * ace/Auto_IncDec_T.cpp:
- * ace/Auto_Ptr.cpp:
- * ace/Based_Pointer_Repository.cpp:
- * ace/Based_Pointer_T.cpp:
- * ace/Basic_Types.cpp:
- * ace/CDR_Stream.cpp:
- * ace/CORBA_Handler.cpp:
- * ace/CORBA_Ref.cpp:
- * ace/Cache_Map_Manager_T.cpp:
- * ace/Cached_Connect_Strategy_T.cpp:
- * ace/Capabilities.cpp:
- * ace/Cleanup_Strategies_T.cpp:
- * ace/Configuration.cpp:
- * ace/Connector.cpp:
- * ace/Containers.cpp:
- * ace/Containers_T.cpp:
- * ace/DEV.cpp:
- * ace/DEV_Addr.cpp:
- * ace/DEV_Connector.cpp:
- * ace/DEV_IO.cpp:
- * ace/DLL.cpp:
- * ace/Date_Time.cpp:
- * ace/Dirent.cpp:
- * ace/Dump.cpp:
- * ace/Dynamic.cpp:
- * ace/Dynamic_Service.cpp:
- * ace/Event_Handler.cpp:
- * ace/Event_Handler_T.cpp:
- * ace/FIFO.cpp:
- * ace/FIFO_Recv.cpp:
- * ace/FIFO_Recv_Msg.cpp:
- * ace/FIFO_Send.cpp:
- * ace/FIFO_Send_Msg.cpp:
- * ace/FILE.cpp:
- * ace/FILE_Addr.cpp:
- * ace/FILE_Connector.cpp:
- * ace/FILE_IO.cpp:
- * ace/Filecache.cpp:
- * ace/FlReactor.cpp:
- * ace/Functor.cpp:
- * ace/Functor_T.cpp:
- * ace/Future.cpp:
- * ace/Future_Set.cpp:
- * ace/Get_Opt.cpp:
- * ace/Handle_Set.cpp:
- * ace/Hash_Cache_Map_Manager_T.cpp:
- * ace/Hash_Map_Manager.cpp:
- * ace/High_Res_Timer.cpp:
- * ace/INET_Addr.cpp:
- * ace/IOStream.cpp:
- * ace/IOStream_T.cpp:
- * ace/IO_SAP.cpp:
- * ace/IPC_SAP.cpp:
- * ace/LSOCK.cpp:
- * ace/LSOCK_Acceptor.cpp:
- * ace/LSOCK_CODgram.cpp:
- * ace/LSOCK_Connector.cpp:
- * ace/LSOCK_Dgram.cpp:
- * ace/LSOCK_Stream.cpp:
- * ace/Local_Name_Space.cpp:
- * ace/Local_Name_Space_T.cpp:
- * ace/Local_Tokens.cpp:
- * ace/Log_Msg.cpp:
- * ace/Log_Record.cpp:
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Addr.cpp:
- * ace/MEM_Connector.cpp:
- * ace/MEM_IO.cpp:
- * ace/MEM_SAP.cpp:
- * ace/MEM_Stream.cpp:
- * ace/Malloc.cpp:
- * ace/Malloc_T.cpp:
- * ace/Managed_Object.cpp:
- * ace/Map.cpp:
- * ace/Map_Manager.cpp:
- * ace/Mem_Map.cpp:
- * ace/Memory_Pool.cpp:
- * ace/Message_Block.cpp:
- * ace/Message_Block_T.cpp:
- * ace/Message_Queue.cpp:
- * ace/Message_Queue_T.cpp:
- * ace/Method_Request.cpp:
- * ace/Module.cpp:
- * ace/Msg_WFMO_Reactor.cpp:
- * ace/Multiplexor.cpp:
- * ace/NT_Service.cpp:
- * ace/Name_Proxy.cpp:
- * ace/Name_Request_Reply.cpp:
- * ace/Name_Space.cpp:
- * ace/Naming_Context.cpp:
- * ace/OS.cpp:
- * ace/Object_Manager.cpp:
- * ace/Obstack.cpp:
- * ace/POSIX_Proactor.cpp:
- * ace/Pair.cpp:
- * ace/Parse_Node.cpp:
- * ace/Pipe.cpp:
- * ace/Priority_Reactor.cpp:
- * ace/Proactor.cpp:
- * ace/Process.cpp:
- * ace/Process_Manager.cpp:
- * ace/Profile_Timer.cpp:
- * ace/QoS_Manager.cpp:
- * ace/QoS_Session_Factory.cpp:
- * ace/QoS_Session_Impl.cpp:
- * ace/Reactor.cpp:
- * ace/Read_Buffer.cpp:
- * ace/Registry.cpp:
- * ace/Registry_Name_Space.cpp:
- * ace/Remote_Name_Space.cpp:
- * ace/Remote_Tokens.cpp:
- * ace/SOCK.cpp:
- * ace/SOCK_Acceptor.cpp:
- * ace/SOCK_CODgram.cpp:
- * ace/SOCK_Connector.cpp:
- * ace/SOCK_Dgram.cpp:
- * ace/SOCK_Dgram_Bcast.cpp:
- * ace/SOCK_Dgram_Mcast.cpp:
- * ace/SOCK_IO.cpp:
- * ace/SOCK_Stream.cpp:
- * ace/SPIPE.cpp:
- * ace/SPIPE_Acceptor.cpp:
- * ace/SPIPE_Addr.cpp:
- * ace/SPIPE_Connector.cpp:
- * ace/SPIPE_Stream.cpp:
- * ace/SString.cpp:
- * ace/SV_Message.cpp:
- * ace/SV_Message_Queue.cpp:
- * ace/SV_Semaphore_Complex.cpp:
- * ace/SV_Semaphore_Simple.cpp:
- * ace/SV_Shared_Memory.cpp:
- * ace/Sched_Params.cpp:
- * ace/Select_Reactor.cpp:
- * ace/Select_Reactor_Base.cpp:
- * ace/Select_Reactor_T.cpp:
- * ace/Service_Config.cpp:
- * ace/Service_Manager.cpp:
- * ace/Service_Object.cpp:
- * ace/Service_Repository.cpp:
- * ace/Service_Types.cpp:
- * ace/Shared_Memory.cpp:
- * ace/Shared_Memory_MM.cpp:
- * ace/Shared_Memory_SV.cpp:
- * ace/Shared_Object.cpp:
- * ace/Signal.cpp:
- * ace/Singleton.cpp:
- * ace/Stats.cpp:
- * ace/Strategies.cpp:
- * ace/Strategies_T.cpp:
- * ace/Stream.cpp:
- * ace/Stream_Modules.cpp:
- * ace/Svc_Conf.y:
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Handler.cpp:
- * ace/Synch.cpp:
- * ace/Synch_Options.cpp:
- * ace/Synch_T.cpp:
- * ace/System_Time.cpp:
- * ace/TLI.cpp:
- * ace/TLI_Acceptor.cpp:
- * ace/TLI_Connector.cpp:
- * ace/TLI_Stream.cpp:
- * ace/TP_Reactor.cpp:
- * ace/TTY_IO.cpp:
- * ace/Task.cpp:
- * ace/Task_T.cpp:
- * ace/Thread.cpp:
- * ace/Thread_Manager.cpp:
- * ace/Time_Request_Reply.cpp:
- * ace/Timeprobe.cpp:
- * ace/Timer_Hash.cpp:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Heap.cpp:
- * ace/Timer_Heap_T.cpp:
- * ace/Timer_List.cpp:
- * ace/Timer_List_T.cpp:
- * ace/Timer_Queue.cpp:
- * ace/Timer_Queue_Adapters.cpp:
- * ace/Timer_Queue_T.cpp:
- * ace/Timer_Wheel.cpp:
- * ace/Timer_Wheel_T.cpp:
- * ace/TkReactor.cpp:
- * ace/Token.cpp:
- * ace/Token_Collection.cpp:
- * ace/Token_Invariants.cpp:
- * ace/Token_Manager.cpp:
- * ace/Token_Request_Reply.cpp:
- * ace/Trace.cpp:
- * ace/Typed_SV_Message.cpp:
- * ace/Typed_SV_Message_Queue.cpp:
- * ace/UNIX_Addr.cpp:
- * ace/UPIPE_Acceptor.cpp:
- * ace/UPIPE_Connector.cpp:
- * ace/UPIPE_Stream.cpp:
- * ace/WFMO_Reactor.cpp:
- * ace/WIN32_Asynch_IO.cpp:
- * ace/WIN32_Proactor.cpp:
- * ace/XTI_ATM_Mcast.cpp:
- * ace/XtReactor.cpp:
- * include/makeinclude/ace_flags.bor:
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- The definition of ACE_BUILD_DLL was moved from the .cpp files
- to the project files - so it is now handled like most of the
- other libraries in ACE and TAO.
-
-Tue Apr 18 21:32:21 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (sema_init): Fixed another problem that required
- a cast to ACE_mutexattr_t *. Thanks to Priyanka for
- reporting this.
-
-Tue Apr 18 19:39:41 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Synch.cpp,
- * ace/OS.cpp: Added a cast to ACE_mutexattr_t *. Thanks to
- Darrell for pointing this out.
-
-Tue Apr 18 15:18:53 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h,
- * ace/OS.i,
- * ace/Synch.h,
- * ace/Synch.cpp: Updated the ACE_OS::*mutex_init() methods (and the
- corresponding ACE_Thread_Mutex, ACE_Mutex, and
- ACE_Recursive_Thread_Mutex classes) so that they now take an
- optional ACE_mutexattr_t * rather than just a void *. This is
- nice because it makes it possible to pass in special attributes,
- such as the mutex prioceiling attribute, to the underlying
- pthreads mutex (assuming we're running on pthreads, of course).
- Thanks to lafortg@res.raytheon.com for motivating this.
-
- * ace/Containers_T.cpp (copy_nodes): Added a call to the
- allocator->malloc() rather than new. Thanks to Umar Syyid
- <usyyid@hns.com> for reporting this.
-
-Tue Apr 18 14:06:32 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp:
- Patch to ACE_CDR::consolidate() sent in by Carlos, that
- fixes a bug reported by Harald Finster <finster@ave.ac.agit.de>,
- and an added check for 0 value of the 'length' arg in
- read_array() and write_array(), that fixes [Bug 540],
- reported by Mathew Samuel <Mathew.Samuel@msdw.com>.
-
-Tue Apr 18 11:47:57 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/SOCK_Connector.cpp:
-
- Removed inclusion of `ace/Handle_Set.h'. The ACE_SOCK_Connector
- doesn't directly use an ACE_Handle_Set.
-
- * ace/Makefile:
-
- Updated dependencies.
-
-Tue Apr 18 08:54:04 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/vc_filter.pl:
-
- Brand spankin' new filter script for Win32 auto build results.
-
-Sun Apr 16 22:24:34 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ACE-INSTALL.html: Updated the link for GNU make to be more
- specific. Thanks to Xiaojun Wu <depender@yahoo.com> for
- reporting this. BTW, Xiaojun was the 900th contributor to
- ACE+TAO, so he gets a free copy of ACE+TAO!
-
-Mon Apr 17 20:10:18 2000 Vishal <vishal@cs.wustl.edu>
-
- * ACE version 5.1.1 released.
-
-Mon Apr 17 16:33:17 2000 Ossama Othman <ossama@uci.edu>
-
- * acconfig.h (ACE_LACKS_ACE_OTHER, ACE_LACKS_ACE_SVCCONF,
- ACE_LACKS_ACE_TOKEN):
-
- Added support for these macros. They are used when enabling
- subsetting.
-
- * configure.in:
-
- lseek64() and llseek() test has been moved to
- `m4/acinclude.m4'.
-
- Include `sys/types.h' when running the TLI/XTI tests. Some
- platforms use typedefs such as "ulong" but such typedefs may not
- be defined in the TLI/XTI headers.
-
- (ACE_HAS_BROKEN_T_ERROR):
-
- Corrected test for broken t_error(). A variable, "errmsg" was
- being passed to the t_error() call in the test, but the variable
- was declared as "ace_errmsg." Thanks to Roland Gigler
- <roland@mch.pn.siemens.de> for pointing this out.
-
- (ACE_MAJOR, ACE_MINOR, ACE_BETA):
-
- If any of these variables is evaluates to the empty string, then
- set it to zero. This fixes a problem that was occuring when the
- the ACE version contained no beta number (e.g. "5.1" instead
- "5.1.0"). Libtool didn't like the fact that one of the numbers
- was an empty string.
-
- * ace/Makefile.am (libACE_IPC_la_SOURCES, libACE_Other_la_SOURCES,
- HEADER_FILES, INLINE_FILES):
-
- Synchronized the sources associated with these Makefile
- variables with those in the classical ACE Makefile.
-
- * m4/acinclude.m4 (ACE_CHECK_LSEEK64):
-
- Moved checks for lseek64() and llseek() from configure.in to
- this file. The beginnings of a test for a 64 bit offset type
- have also been added, but that test is currently not in use.
-
- * m4/ace.m4 (ACE_COMPILATION_OPTIONS):
-
- Removed check for exception support in C compiler. It didn't
- make too much sense to check for exception support in a C
- compiler.
-
- Since exception support is disabled by default, make sure
- "-fno-exceptions" is set when using g++ with the default ACE
- exception configuration value.
-
- * m4/compiler.m4 (ACE_SET_COMPILER_FLAGS):
-
- Fixed typos where "$GXX" was used instead of "$CXX." "$GXX" is
- set to yes when GNU C++ is being used, and "$CXX" is set to the
- compiler being used (e.g. "c++"). Thanks to Rich Seibel
- <seibel_r@ociweb.com> for pointing this out.
-
- This also fixes a problem where "-fcheck-new" wasn't being added
- to the C++ flags ($CXXFLAGS).
-
- * m4/subsets.m4 (ACE_LACKS_ACE_OTHER, ACE_LACKS_ACE_SVCCONF,
- ACE_LACKS_ACE_TOKEN):
-
- When disabling the "Other," "SvcConf" and/or the "Token" subset,
- then define the corresponding preprocessor macro.
-
-Sat Apr 15 21:49:04 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ACE.cpp:
- * apps/Gateway/Gateway/Options.cpp:
-
- Nick Pratt <npratt@microstrategy.com> reported two cases where
- we were using sizeof some_string to figure out its length. This
- of course doesn't work when the string is a wide string, so they
- have been changed to account for the character size.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- * apps/gperf/src/gperf.dsp:
- * apps/gperf/src/gperf_lib.dsp:
-
- Changed around the order of the configurations so that in the
- default case (such as out of the box) the regular Debug version
- will be the current configuration.
-
-Sat Apr 15 19:35:57 2000 Darrell Brunsch <brunsch@uci.edu>
-
- (On behalf of Christopher Kohlhoff <chris@kohlhoff.com>)
-
- * ace/Makefile.bor:
-
- Added new file QoS_Manager.cpp.
-
- * ace/Basic_Types.h:
- * ace/Timer_Queue_Adapters.h:
-
- Added missing pre/post includes.
-
- * include/makeinclude/ace_flags.bor:
- * include/makeinclude/build_example.bor:
-
- Updated for new orbsvcs libraries.
-
-Sat Apr 15 18:17:02 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp:
- Fixed the handle_output() function so that it does the "Right
- Thing"[TM] on Windows NT. Win32 Winsock doesn't trigger
- multiple "You can write now" signals, so we have to assume that
- we can continue to write until we get another EWOULDBLOCK.
- Thanks to Nick Pratt
-
-Thu Apr 13 16:30:01 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.7.h: added #undef ACE_NEEDS_LWP_PRIO_SET.
- SunOS 5.7 no longer needs it, as shown by
- performance-tests/Misc/preempt (run as superuser). Thanks
- to John Foresteire <John_J_Foresteire@res.raytheon.com>
- for reporting this.
-
-Tue Apr 11 21:41:20 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/auto_compile_win32.pl: Updated the lists of
- workspaces/projects to build.
-
-Tue Apr 11 16:15:31 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp: moved ACE_Thread_Exit::is_constructed_
- definition so that it's seen on all platforms, not just
- those that are ACE_MT_SAFE. Fixes:
- Mon Apr 10 07:30:22 2000 John Rodgers <jrrodgers@acm.org>
- Thanks to Vishal for reporting it.
-
-Tue Apr 11 13:57:11 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch_T.cpp: Make sure to cast the "type" argument to
- "short" to avoid overload confusions by certain compilers.
- Thanks to Charles Taurines <ctaurines@amadeus.net> for reporting
- this.
-
-Tue Apr 11 12:52:04 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp (subscribe): Removed the #ifdef
- for template instantiation.
-
-Tue Apr 11 11:32:03 2000 Chad Elliott <elliott_c@ociweb.com>
- * bin/ACEutils.pm
-
- Refactored duplicate test code into ACEutils.pm
-
-Mon Apr 10 19:45:32 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp (subscribe): Added a #ifdef to
- get past a g++ error. I am looking into the right way to
- do this.
-
-Mon Apr 10 17:37:53 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Addplied John Aughey
- <ajh4@cec.wustl.edu>'s patch for FreeBSD 4.0.
-
-Mon Apr 10 07:30:22 2000 John Rodgers <jrrodgers@acm.org>
-
- * ace/OS.{h,cpp},Thread_Manager.cpp (instance,~ACE_Thread_Exit):
- added a state variable, is_constructed_, to ACE_Thread_Exit.
- instance () sets it, ~ACE_Thread_Exit () clears it. This
- allows ACE::init () to be called after ACE::fini (), because
- a new ACE_Thread_Exit instance will be created. [Bug 526]
-
-Sun Apr 9 14:16:23 2000 James CE Johnson <jcej@mobsec.com>
-
- * docs/tutorials/015/page01.html : Thanks to Conrad Hughes for
- pointing out that a real implementation would compress before
- encrypting since encrypted data shouldn't really be compressible
- anyway.
-
- * docs/tutorials/015/Protocol_Stream.cpp (open): Reorder the
- module pushing so that encryption happens before compression.
-
- * docs/tutorials/015/Crypt.cpp :
- * docs/tutorials/015/Compressor.cpp :
- Add a few extra bytes when creating the new message blocks. A
- real implementation would probably need that.
-
-Sun Apr 09 00:04:25 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc_T.cpp (remove): Removed invocation of destructor to
- <malloc_stats_>. It is a member of Control_Block and does not
- require explicit initialization/destruction. This was causing
- ACE not to compile when ACE_HAS_MALLOC_STATS was defined.
- Thanks to John Smyder <jsmyder@salient.com> for reporting the
- problem.
-
- * ace/Malloc_T.cpp (open): Removed invocation of contructor to
- <malloc_stats_> for the same reason.
-
-Fri Apr 07 23:32:16 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Added QoS_Manager.* into project files.
-
-Thu Apr 6 07:29:48 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Token.h (ACE_Token): Clarified the recursive semantics of
- ACE_Token. Thanks to Antti Valtokari
- <Antti.Valtokari@iocore.fi> for reporting this.
-
-Wed Apr 5 22:59:58 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-sunos5.5.h: Moved the ACE_HAS_USING_KEYWORD into
- the part of this header file that's enabled when
- __SUNPRO_CC_COMPAT >= 5 is defined. Thanks to Susan Liebeskind
- <susan.liebeskind@gtri.gatech.edu> for reporting this.
-
-Tue Apr 4 23:50:02 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.cpp (sock_error): Changed "int error" to "ssize_t error"
- to be consistent...
-
-Tue Apr 4 20:19:36 2000 <schmidt@rumba.ece.uci.edu>
-
- * ace/Acceptor.cpp: Modified the implementation of
- ACE_Acceptor::open() and ACE_Acceptor::accept_svc_handler() so
- that the peer acceptor's handle is set into non-blocking mode.
- This is a safe-guard against the race condition that can
- otherwise occur between the time when <select> indicates that a
- passive-mode socket handle is "ready" and when we call <accept>.
- During this interval, the client can shutdown the connection, in
- which case, the <accept> call can hang!
-
-Mon Apr 3 11:09:26 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/QoS_Manager.cpp: Added the #if defined
- (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION).
-
-Mon Apr 3 08:00:00 2000 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * bin/auto_compile: Added <smart_proxies> flag.
-
-Mon Apr 3 04:07:47 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Added a #define for
- ACE_HAS_ALT_CUSERID so that ACE will build on recent FreeBSD
- releases. Thanks to Raymond Wiker <raymond@orion.no> for
- reporting this.
-
-Sun Apr 2 21:32:20 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/SOCK.cpp: removed the extra #ifdef
- ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA
- * ace/QoS_Manager.{h,cpp}: removed the obsolete #pragma once.
- * ace/QoS_Session_Impl.i: fully qualified the ACE_End_Point_Type.
- * ace/Makefile: Added the QoS_Manager.
-
-Sun Apr 2 20:19:36 2000 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/QoS_Manager.{h,cpp}: Added these two files. They define
- a QoS Manager that manages the QoS for a socket. This was being
- done earlier by the ACE_SOCK classes.
-
- Changed the following files to accomodate the new classes added
- above.
- * ace/SOCK.{h,cpp}: Removed the heavy container from ACE_SOCK.
- * ace/SOCK_Dgram_Mcast.{h,cpp}: Changed the QoS management from
- ACE_SOCK to ACE_QoS_Manager.
-
- * ace/QoS_Session_Impl.{h,cpp}:
- * ace/QoS_Session.h: Changed the interface to use the
- ACE_QoS_Manager class
-
-Sun Apr 2 05:36:04 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Containers_T.cpp: There were a number of incorrect uses
- of ACE_NEW_MALLOC that I replaced with ACE_ALLOCATOR. Thanks to
- Francisco Bravo <emefjbm@madrid.es.eu.ericsson.se> and Chris
- Uzdavinis <chris@atdesk.com> for clarifying the error of my
- ways!
-
-Thu Mar 30 19:25:14 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (suspend_handler_i and resume_handler_i):
-
- If a handle is resumed, then:
-
- - check current handles to undo suspension (*)
- - check suspended handles to resume
- - check to_be_added handles to undo suspension
-
- If a handle is suspended, then:
-
- - check current handles to suspend
- - check suspended handles to undo resumption (*)
- - check to_be_added handles to suspend
-
- (*) were missing. Thanks to Ji Wuliu <jiwuliu0952_cn@sina.com>
- for pointing this out!
-
-Thu Mar 30 15:54:23 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h: Only set ACE_HAS_SIGTIMEDWAIT for AIX
- 4.3.x. 4.2.x doesn't have it. Thanks to Johnny Chen
- <jchen@informatica.com> for reporting this.
-
- * THANKS: Added Johnny Chen to the Hall of Fame.
-
-Wed Mar 29 00:01:39 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp (handle_input):
- ACE_OS::closesocket() was being used to do some very "low-level"
- closing of handles without assigning a handle to
- ACE_INVALID_HANDLE. This was causing problems. Therefore, we
- now try to use this->peer ().close () if it's different from
- handle. Thanks to Alexander Dergatch <dergy@websci.ru> for
- reporting this. This fixes [BUGID 520].
-
-Tue Mar 28 12:13:12 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Containers_T.h: Fixed the mismatching filename in preamble.
-
-Tue Mar 28 12:06:31 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Array.h: Simply include "ace/Containers_T.h" would work.
- Removed all other template kludge since they should be handled
- in Containers_T.h. Thanks to Airat A. Sadreev
- <airat@hq.tatenergo.ru> for report this problem.
-
-Tue Mar 28 11:56:56 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Dirent.h"
- * ace/Dirent.cpp: The meaning of __ACE_INLINE__ is just the
- opposite of ACE_LACKS_INLINE_FUNCTIONS (my fault.) Rearrange
- the logic for checking __ACE_INLINE__ and include "ace/Dirent.h"
- in Dirent.cpp.
-
-Tue Mar 28 06:00:00 2000 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * Dirent.cpp,
- * Dirent.h: Renamed ACE_LACKS_INLINE_FUNCTIONS into __ACE_INLINE__ which
- is the correct way of handling inlining differences.
-
- * ace/OS.h,
- ace/OS.i: Win32 does not support <dirent> a set of functions to
- retrieve the content of a directory. However, the Win32 functions
- FindFirstFile and FindNextFile provide similar behavior. This change
- added an emulation of dirent based on these functions. Changes were
- made to ACE_OS::opendir, ACE_OS::readdir, and ACE_OS::closedir.
-
- * ace/config-win32-common.h: Added the defines ACE_HAS_DIRENT,
- ACE_LACKS_TELLDIR, ACE_LACKS_SEEKDIR, ACE_LACKS_REWINDDIR and
- ACE_LACKS_READDIR_R.
- This was necessary to enable the above mentioned <dirent> emulation.
-
-Mon Mar 27 16:58:03 2000 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/TkReactor.cpp:
- Fixed the unused variable warning and ACE_Select_Reactor_Token
- undeclared error.
-
-Fri Mar 24 10:30:44 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/LSOCK.cpp (recv_handle): For some reason, Linux allocates an extra
- handle when doing a recvmsg() with the MSG_PEEK flag set.
- Therefore, we need to close this. Thanks to Rick Ohnemus
- <rjohnemus@systemware-inc.com> for reporting this. Fixed [BUGID
- 511].
-
- * examples/IPC_SAP/FILE_SAP/client.cpp. Fixed the formatting
- to conform to ACE guidelines. Thanks to Steve Luoma
- <stevel@dvc400.com> for motivating this.
-
-Thu Mar 23 20:37:19 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: removed leading "./" from log file names.
-
-Thu Mar 23 17:38:34 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_SAP.cpp: Removed a redundant "defined". Thanks to David
- Wicks <swicks@continuum-corp.com> for noticing this.
-
-Thu Mar 23 15:26:52 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * PROBLEM-REPORT-FORM:
- Modified the text to encourage users to report real bugs to
- Bugzilla, that way we don't have to enter them ourselves. Only
- dubious stuff should be reported to the mailing list.
-
-Thu Mar 23 14:34:26 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/*.h: Moved the inclusion of <pre.h> down after the
- definition of header guard macro. The original order violated
- the ACE programming guideline. Thanks to Carlos for catching
- this.
-
-Wed Mar 23 15:10:01 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/run_tests.sh
- Fixed my fix for Chorus. It, again, supports FOR_TAO subset.
-
-Thu Mar 23 15:09:22 2000 Jody Hagins <jody@atdesk.com>
-
- * ace/Object_Manager.cpp (ACE_Static_Object_Lock::instance):
- with ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK #defined,
- use ACE_RETURN_NEW instead of ACE_RETURN so that a value
- is returned by the function.
-
-Thu Mar 23 10:39:23 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/g++dep:
- Changed the script to generate relative paths for local
- dependencies. In other words if .obj/foo.o in the foo/bar
- directory depends on $(ACE_ROOT)/foo/bar/foo.h we just generate
- .obj/foo.o: foo.h
- instead of the full path. This solves some problems with
- parallel builds and IDL generated files.
-
-Thu Mar 23 04:31:50 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Reactor.i (register_handler): There was a very subtle bug in
- all versions of <register_handler>. The problem was that once
- the <event_handler> has been successfully registered with the
- Reactor, it is available for processing events. In the problem
- case, input arrived from the client, the handler handled it, and
- eventually closed down. All this happened in the other thread
- running the Reactor, and all before this line got executed:
-
- event_handler->reactor (this);
-
- By the time this thread came around to set the <reactor>, the
- <event_handler> had packed up and gone home. The fix is to set
- the <reactor> before registering the <event_handler> with the
- <reactor>. Thanks to Steve Huston for report this bug.
-
-Wed Mar 22 12:01:22 2000 Steve Huston <shuston@riverace.com>
-
- * ace/NT_Service.{h i cpp}: Added support for operating on services
- on a host other than the local host. Thanks to Stephen Moon
- <smoon@oxmol.co.uk> for adding this new functionality!
-
-Wed Mar 22 10:19:47 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Thread.i: In ACE_Thread::setcancelstate() the code is
- checking to see if thr_setcancelstate and thr_setcanceltype
- return 0 and if so returning an error condition to the user.
- Instead, both of these routines should be checked to see if they
- return -1 on failure. Thanks to Umar Syyid for reporting this.
-
-Wed Mar 22 09:29:09 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-chorus.h, ace/ACE.cpp
- Correction for Chorus 4.0 support on the Ultra-SPARC.
-
-Wed Mar 22 09:24:12 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Configuration.cpp: Fixed a link error with SunCC5. This
- error only shows up when ACE is built with debug=0 and
- exceptions=1. The fix was to move all the template
- instantiations from the end of the file to the top of the
- file. Thanks to Dr.Levine for helping me fix this and thanks to
- Manuel Benche <mbenche@jazz.cs.utsa.edu> for reporting this
- problem.
-
-Wed Mar 22 09:16:48 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.i:
- Initialized a local variable inside the << operator
- for wstring. It was producing a warning on Linux g++
- (charanga).
-
-Tue Mar 21 14:24:07 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-chorus.h,
- include/makeinclude/platform_chorus.GNU,
- include/makeinclude/platform_chorus4.x_g++.GNU,
- tests/run_tests.sh:
- Expected ACE tests work. Added support for Chorus 4.0
- on the Ultra-SPARC.
-
-Tue Mar 21 10:37:17 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * Merged the non_interpretive branch.
- This fixes [BUGID:135]
-
- Fri Mar 10 11:27:04 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CDR_Stream.i:
- Fixed the << operators for ACE_OutputCDR::from_string and
- ACE_OutputCDR::from_wstring. They did not work with null
- strings.
-
-Mon Mar 20 17:54:15 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ACE.cpp:
-
- The ascii version of get_temp_dir () was calling the wchar_t
- version, which doesn't work on Win95/98 since the GetTempPathW
- isn't supported. So I just called GetTempPathA directly.
-
- Thanks to David Hauck <davidh@realtimeint.com> for first pointing
- this out, Shalabh Bhatnagar <shalabh_b@hotmail.com> for informing
- me that it doesn't work on Win95, and Torsten Pfuetzenreuter
- <torsten_pf@geocities.com> for pointing out this doesn't work on
- Win98 either.
-
- [BUG 499]
-
-Mon Mar 20 12:45:17 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/platform_linux_lxpthread.GNU:
- Updated support for X11 and GL
-
- * ace/CDR_Stream.i:
- A small performance improvement for ACE_InputCDR. If the
- current message block in not writable we call grow_and_adjust
- immediately.
-
-Sun Mar 19 22:11:47 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/ACE.cpp (recv_n_i, send_n_i, recvv_n_i, sendv_n_i):
-
- Loop should continue if EWOULDBLOCK is set. Previously, calls
- to these methods returned right away on error, even if errno was
- set to EWOULDBLOCK, instead of continuing until all of the data
- was received or sent.
-
- If the number of bytes received/transfered during the current
- iteration of the loop is zero, then break out of the loop so
- that the actual number of bytes received/transfered is used as
- the return value. Prior to this change, a value of zero was
- returned, which may not always be the number of bytes
- received/transfered.
-
-Sun Mar 19 23:52:33 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.cpp: Reformatted some code.
-
-Sun Mar 19 14:30:56 2000 James CE Johnson <jcej@mobsec.com>
-
- * docs/tutorials/002/handler.h:
- * docs/tutorials/008/broadcast_client.cpp:
- * docs/tutorials/015/Compressor.cpp:
- * docs/tutorials/006/server.cpp:
- * docs/tutorials/005/server.cpp:
- * docs/tutorials/007/server.cpp:
- * docs/tutorials/009/server.cpp:
- * docs/tutorials/015/Protocol_Task.h:
- * docs/tutorials/015/Protocol_Task.cpp:
- * docs/tutorials/015/Crypt.cpp:
- * docs/tutorials/015/Handler.cpp:
- A whole batch of ACE_UNUSED_ARGs were applied keep the compiler
- quiet.
-
- * docs/tutorials/018/Test_T.cpp (send):
- Explicit creating of MB_HANGUP instance to avoid casting
- confustion on the ACE_Message_Block constructor.
-
- * docs/tutorials/005/client_handler.cpp:
- * docs/tutorials/006/client_handler.cpp:
- * docs/tutorials/007/client_handler.cpp:
- Added a null-terminator to the strings received from the client
- so that they look reasonable when printed. Thanks to Steven
- Boelens <steven@casema.net> for catching this.
-
- * docs/tutorials/*/hdr:
- * docs/tutorials/*/*.pre:
- * docs/tutorials/*/*.pst:
- * docs/tutorials/*/*.cpp:
- Eliminating trailing whitespace and \r to make CVS happy. The
- relevant combine.shar files were also rebuilt.
-
- * docs/tutorials/combine: Mutated to include CVS Id tag in every
- page.
-
- * docs/tutorials/*/*.html: Everything rebuilt due to changes
- above.
-
-Sat Mar 18 20:51:06 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: added -u option, to provide a
- URL prefix. If enabled, it will print the URL of
- each log file, prepending the URL prefix.
-
-Sat Mar 18 18:37:19 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Added inclusion of pre.h and post.h. It got left out
- by the script. Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for noticing this.
-
-Sat Mar 18 05:42:06 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/pre.h:
- * ace/post.h: Added two new file. <pre.h> preserves the current
- alignment setting of the compiler and <post.h> restores the
- alignment setting. They are used to make ACE a better team
- player with other library on NT platforms.
-
- * include/makeinclude/compiler.bor:
- * include/makeinclude/make_flags.bor: Applied the changes for the
- updated Borland makefiles.
-
- When using ACE+TAO on Win32 (using either MSVC or BCB) you
- currently must ensure that your application's compiler options
- are set to be the same as those used to build ACE+TAO. For
- example, since ACE+TAO is built using 8-byte alignment, your
- application must also use this alignment otherwise bad things
- can happen.
-
- Other libraries on Win32 free the developer from this burden by
- explicitly setting these options in the source code. For
- example, the Windows SDK header files contain things like
-
- #include <pshpack4.h>
- ...
- #include <poppack.h>
-
- where these header files contain the appropriate #pragmas for
- setting alignment options. (BTW, structure alignment is not the
- only option that may be set, I'm just using it as an
- example. Warnings could be disabled, and - my ulterior motive -
- I have a few problematic BCB compiler options that I would like
- to control.)
-
- This sort of thing helps a library to play nicely with any other
- libraries or source code someone may be using. It somewhat
- simplifies the instructions for setting up project that uses
- ACE+TAO, and it lets developers change their compiler options
- with abandon without breaking ACE+TAO.
-
- Thanks to Christopher Kohlhoff <chris@kohlhoff.com> for
- providing the patches.
-
-Fri Mar 17 23:28:20 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/OS/Process/process.cpp (tokenize): Fixed a typo in the
- code. Thanks to Byron Harris <harris_b@ociweb.com> for noticing
- this.
-
-Fri Mar 17 20:43:20 2000 Sangwoo Jin <swjinjin@sei.co.kr>
-
- * ace/Makefile,Reactor.cpp,Object_Manager.{h,cpp}:
- Added ACE_LACKS_ACE_SVCCONF support.
-
-Fri Mar 17 09:39:52 2000 Steve Huston <shuston@riverace.com>
-
- * Makefile.am: Added ChangeLog-99b to the EXTRA_DIST list.
-
-Fri Mar 17 00:18:40 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/QOS/Sender_QOS_Event_Handler.cpp (handle_qos):
- Make sure to cast the const char* to void* to avoid compiler
- warnings. Thanks to Craig Rodrigues <rodrigc@mediaone.net> for
- reporting this.
-
-Thu Mar 16 11:51:49 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/MEM_SAP.i:
- * ace/Malloc_T.cpp:
-
- The ACE_TRACE macros were incompatible with SEH. Conditionally
- compiled the ACE_TRACE statements in places where this was a
- problem. Thanks to Edan Ayal <edanayal@yahoo.com> for reporting
- this.
-
-Thu Mar 16 13:40:53 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: just #define ACE_USES_OLD_IOSTREAMS,
- don't #define it explicitly to 1. This removes a source
- of confusion: changing the 1 to 0 didn't disable the feature.
- Thanks to Charles Scott <Charles.P.Scott@jpl.nasa.gov> for
- reporting this.
-
-Thu Mar 16 13:01:02 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ACE-INSTALL.html: Clarified some of the installation instructions for
- building ACE. Thanks to Jeff Graham <jgraham@lincom-asg.com> for
- contributing these.
-
- * ace/Event_Handler.h: Clarified the comments for handle_timeout().
- Thanks to Jonathan Reis <reis@stentorsoft.com> for this
- suggestion.
-
-Thu Mar 16 12:47:01 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): check for stacksize <
- ACE_HAS_HUGE_THREAD_STACKSIZE on all platforms,
- not just those with PTHREADS. Thanks to
- Richard L. Johnson <Richard.L.Johnson@jpl.nasa.gov>
- for reporting this.
-
-Wed Mar 15 23:21:04 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Configuration.cpp: Changed from using ACE_TString::rep() to
- ACE_TString::fast_rep() to avoid memory leaks. Thanks to for
- reporting this and suggesting the fix.
-
- Also removed a call to add_ref() from the constructor of
- ACE_Section_Key_Win32. It was causing another memory leak.
-
-Wed Mar 15 21:18:19 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_lynxos.GNU: set
- ACE_HAS_GNUG_PRE_2_8 to 1 for LynxOS 2.5.0, because
- its g++ doesn't support -fno-exceptions.
-
-Wed Mar 15 20:51:21 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/OS.h,ace/ACE.cpp,ace/config-chorus.h,
- include/makeinclude/platform_chorus4.x_g++.GNU:
- added Chorus 4.0 support.
-
-Wed Mar 15 20:47:12 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.h: moved #include of OS.h inside the #ifndef ACE_ACE_H
- protection. OS.h no longer depends on ACE.h, so there's no
- circular include problem. Thanks to Espen Harlinn
- <espen.harlinn@seamos.no> for reporting this.
-
-Wed Mar 15 20:43:14 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (thr_keycreate): rearranged ::pthread_keycreate ()
- calls so that ACE_HAS_STDARG_THR_DEST is only used with
- ACE_HAS_PTHREADS_DRAFT4.
-
-Wed Mar 15 17:30:57 2000 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1 released.
-
-Wed Mar 15 15:17:19 2000 Charles Scott <Charles.P.Scott@jpl.nasa.gov>
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: added
- --stdle --exceptions to CCFLAGS if exceptions are enabled.
-
-Tue Mar 14 15:01:46 2000 Steve Huston <shuston@riverace.com>
-
- * tests/Malloc_Test.cpp: Disable mapping the file into different
- address ranges for HP-UX because the PA-RISC architecture does not
- allow it. See the DEPENDENCIES section of the mmap man page for
- all the details.
-
-Mon Mar 13 22:18:20 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/create_ace_build: default $directory_mode to 0777,
- because it gets modified by the umask anyways. Thanks
- to Dave Meyer <dmeyer@std.saic.com> for suggesting this.
-
-Mon Mar 13 10:16:53 2000 Bala <bala@cs.wustl.edu>
-
- * ACE version 5.0.16 released.
-
-Sun Mar 12 21:10:13 2000 David L. Levine <levine@cs.wustl.edu>
-
- * many Makefiles: updated dependencies.
-
-Fri Mar 10 00:17:37 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/ACE-netsvcs.html: Updated this document. Thanks to
- Charles Meier <cmeier@concentus-tech.com> for contributing this.
-
- * ace/WIN32_Proactor.cpp (ACE_WIN32_Proactor): Replaced
- this->completion_port_ with 0 in the call to
- CreateIoCompletionPort() to make it more clear what's going on.
-
- * ace/SPIPE_Acceptor.cpp: Very minor reformatting of the code to
- conform to ACE guidelines.
-
-Thu Mar 09 23:12:39 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (flock_init): On Win32, the hEvent in strut overlapped
- should initialized to NULL. This was causing Naming_Test to
- fail on Windows 2000. Thanks to <cody.dean@mindspring.com> for
- pointing this out. [Bug 485]
-
-Thu Mar 9 19:49:00 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Reactor.h: Clarified that ACE_Reactor::end_event_loop() should
- only be used for the "singleton reactor" and not for user defined
- reactors. Thanks to Adrian Miranda <ade@psg.com> for motivating
- this.
-
-Thu Mar 09 18:20:00 2000 Angelo Corsaro <corsaro@cs.wustl.edu>
-
- * ace/Asynch_IO.h:
- * ace/Asynch_IO_Impl.h:
- * ace/POSIX_Asynch_IO.h:
- * ace/POSIX_Proactor.h:
- * ace/Proactor.h:
- * ace/Proactor_Impl.h:
- * ace/WIN32_Asynch_IO.h:
- * ace/WIN32_Proactor.h:
- * ace/config-aix-4.1.x.h:
- * ace/config-aix-4.2.x.h:
- * ace/config-aix-4.3.x.h:
-
- These files were using the #if !defined (WHATEVER) as multiple
- inclusion guard instead of #ifndef WHATEVER. Thanks to Paul
- Calabrese <calabrese_p@ociweb.com> for reporting that.
-
- * ace/config-visualage.h:
- * ace/CLASSIX/CLASSIX_Port_Default.h:
- * ace/Svc_Conf_Tokens.h:
-
- While this file were missing multiple inclusion guard. Thanks to
- Paul Calabrese <calabrese_p@ociweb.com> for reporting that.
-
-Thu Mar 09 18:06:52 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.00.h: Added ACE_HAS_SIGTIMEDWAIT and the
- ACE_PI_CONTROL_BLOCK_ALIGN_LONGS that Nanbor did for
- config-hpux-10.x.h Wed Mar 8. There is still an assert failure
- in Malloc_Test, so something is wrong there.
-
-Thu Mar 09 17:47:41 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h: Added ACE_HAS_SIGTIMEDWAIT.
-
-Thu Mar 09 17:35:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): Related to Tue Mar 7 and Wed Mar 8; change the
- static cast to a C-style cast and put in comments explaining that
- depending on the underlying type of thread ID, sometimes a static
- cast is needed, and sometimes a reinterpret cast, so we dropped
- back and punted to a C-style cast. Thanks to Loren Rittle and
- Bala for working this stuff out.
-
-Thu Mar 09 17:01:23 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Naming_Context.cpp (ACE_Name_Options ctor): When allocating
- space for the temp dir path, take the size of a char into account
- to get enough for Unicode characters. Fixes Bugzilla #480.
-
-Thu Mar 09 15:30:41 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.h (init, fini): added comments that these methods
- can only be called once per program invocation. Thanks to
- Chris Hafey <chris@stentorsoft.com> for reporting that an
- init ()/fini ()/init () sequence fails.
-
-Thu Mar 09 12:57:14 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Time_Service_Test.cpp (main): Fixed several UNICODE
- related problems. Thanks to Steve H. for reporting this.
-
-Thu Mar 9 09:23:10 2000 Ossama Othman <ossama@uci.edu>
-
- * bin/make_release (create_kit):
-
- Change to the destination directory prior to invoking `md5sum'
- on the file for which an MD5 checksum is being generated. This
- was necessary to prevent the absolute path of the file from
- being used as part of the checksum.
-
- In any case, MD5 checksum generation is now working. [Bug 48]
-
- (tag):
-
- Confirmed that the missing Makefile templates now get installed
- in the ACE betas/releases (no changes, just confirmation).
- [Bug 408]
-
-Thu Mar 9 11:01:34 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Configuration.h: Changed export_config()/import_config() to
- be virtual methods so users can change how the config files are
- implemented. Thanks to Damien Dufour
- <damien.dufour@horoquartz.fr> for reporting this.
-
-Thu Mar 09 10:41:24 2000 Steve Huston <shuston@riverace.com>
-
- * ace/NT_Service.(h cpp): Added !defined(ACE_HAS_PHARLAP) to the
- if defined (ACE_HAS_WIN32) to prevent this feature from being
- built on PharLap. Thanks to David Hauck <davidh@realtimeint.com>
- for reporting this and suggesting a fix.
-
-Wed Mar 08 22:19:26 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- moved VxWorks 5.4 (Tornado II) auto detection to
- before CCFLAGS definition, so that it gets set
- properly. Thanks to Thomas Lockhart
- <Thomas.Lockhart@jpl.nasa.gov> for reporting this. [Bug 481]
-
-Wed Mar 8 19:16:56 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Time_Service_Test.cpp (main): Added the ASYS_TEXT macro
- to the "ace-malloc-XXXXXX" string to avoid an error when
- compiled with Unicode. Thanks to Steve Huston
- <shuston@riverace.com> for reporting this. This fixes BUGID
- 479.
-
-Wed Mar 8 19:19:46 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-irix6.x-common.h: Defined ACE_PI_CONTROL_BLOCK_ALIGN_LONGS
- to 2.
-
-Wed Mar 8 15:59:26 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-hpux-10.x.h: Defined ACE_PI_CONTROL_BLOCK_ALIGN_LONGS
- to 2. The alignment computing macros didn't work in this case.
- Thanks to Steve H. for reporting this.
-
-Wed Mar 08 15:26:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/ace-dll.icc: On AIX, the shared lib is now libACE.o and the
- associated archive is libACE.a. Attempting to unify ACE with the
- screwy way AIX does libraries. When the static library gets built,
- it'll be called libACEns.a.
-
- * tests/vacpp_setup.icc: On AIX, link libACE.a, not libACEshr.a
-
- * tests/libDLL_Test.icc: New file to build the library required for
- DLL_Test. Can't be built from DLL_Test.icc because the codestore
- will complain that main() is already defined.
-
-Wed Mar 08 14:46:52 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h:
- * include/makeinclude/platform_aix4_cset++.GNU: Allow building w/o
- threads by including threads=0 on build command line. Include
- -O2 compile option when optimize=1 is set on build command line.
-
-Wed Mar 8 11:13:04 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log): Reverted this change.
- Tue Mar 7 14:21:12 CST 2000 Loren Rittle
- <rittle@rsch.comm.mot.com>. The change gave compile errors on
- EGCS.
-
-Wed Mar 8 01:33:21 2000 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * tests/Makefile.bor: Added new test Process_Manager_Test.
-
- * include/makeinclude/compiler.bor, make_flags.bor: Added support
- for BCB's codeguard memory checking tool.
-
- * include/makeinclude/outputdir.bor: Allow a different directory
- creation tool to be substituted for "mkdir" on Win9x.
-
-Tue Mar 07 18:37:26 2000 Tom Ziomek <tomz@cc701.comm.mot.com>
-
- * ace/Singleton.h: added comment to ACE_Unmanaged_Singleton
- description to clarify that friend declaration must be
- be for ACE_Unmanaged_Singleton.
-
-Tue Mar 7 14:21:12 CST 2000 Loren Rittle <rittle@rsch.comm.mot.com>
-
- * ace/Log_Msg.cpp (log): Correct cast usage, a reinterpret
- cast was needed.
-
-Tue Mar 07 11:00:10 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_proactor.cpp: Updated the comments
- to make it clear how the ACE_Message_Block buffers are reused.
- Thanks to Dong-Yueh Liu <dyliu@ms1.hinet.net> for suggesting
- this.
-
-Tue Mar 07 10:28:16 2000 bala <bala@cs.wustl.edu>
-
- * ACE version 5.0.15 released.
-
-Mon Mar 6 17:56:56 2000 Ossama Othman <ossama@uci.edu>
-
- * bin/make_release (release_tag_files):
-
- Added missing declaration of this variable.
-
-Mon Mar 6 13:30:00 2000 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/run_tests.vxworks: Removed Cached_Conn_Test from the
- list as this test fails for the current configuration. Until
- researched completely, it has been disabled on vxworks.
- Thanks to David Hall <David.Hall@grc.nasa.gov> for reporting
- this bug.
-
-Sun Mar 5 21:32:45 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp:
- When allocating a new buffer in ACE_CDR::grow() we must leave
- enough room for the buffer required by the user *and* space to
- adjust the alignment. Thanks to Bala and Jeff for tracking this
- down.
-
-Fri Mar 03 17:01:54 2000 Steve Huston <shuston@riverace.com>
-
- * tests/Malloc_Test.cpp: Changed a couple of straggling
- ACE_HAS_POSITION_INDEPENDENT_MALLOC to
- ACE_HAS_POSITION_INDEPENDENT_POINTERS.
-
-Fri Mar 03 11:52:10 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.nested.GNU: added -f $(MAKEFILE)
- to $(MAKE) invocation, to support overriding of the default
- Makefile name. Added definition of MAKEFILE, if it is null.
- Thanks to Wei Chiang <wei.chiang@nokia.com> for suggesting this.
-
- * include/makeinclude/rules.local.GNU: changed test to see if
- MAKEFILE macro isn't set from ifndef to ifeq null, for consistency
- with above addition to rules.nested.GNU.
-
-Thu Mar 2 13:23:39 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/TLI.cpp, TLI_Connector.cpp, TLI_Stream.cpp: Removed comments
- regarding the quality of SunOS 4... Thanks to Malcolm Spence
- <spence_m@ociweb.com> for reporting this!
-
-Wed Mar 1 22:39:04 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Log_Record.cpp:
-
- Thanks to Valery Arkhangorodsky <valerya@servicesoft.com>,
- who took the time to figure out the code in round_up () and
- spotted a mistake in it.
-
- * examples/Shared_Malloc/test_persistence.cpp:
-
- The last bug in my changes. Changing a pointer to an array
- is not something to be done on a whim. Needed to change a
- couple of "== 0" to strcpy's, etc.
-
-Wed Mar 01 19:25:39 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Based_Pointer_T.cpp:
- * ace/Malloc.cpp: Replaced ACE_ASSERT (!"A STRING") with
- ACE_ASSERT (0). Some brain-damaged compilers (i.e., Diab DCC
- 4.2b) can't handle this. Thanks to Bob Bouterse
- <BBouterse@escient.com> for reporting and fixing this.
-
-Wed Mar 1 16:29:55 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in (ACE_HAS_ALT_CUSERID):
-
- Wrapped the test for this macro with
- ACE_CONVERT_WARNINGS_TO_ERRORS to cause implicit prototype
- declaration warnings to be converted to errors when using
- gcc < 2.95.2 (including egcs <= 1.1.x). This fixes a warning on
- Red Hat 6.1 systems. Thanks to Rich Seibel
- <seibel_r@ociweb.com> for providing a fix.
-
-Tue Feb 29 23:36:29 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/README:
- * ace/Thread_Manager.h:
- * ace/Thread_Manager.i:
- * ace/Thread_Manager.cpp (append_thr): Moved thread descriptor
- reset statement into reset.
-
- (reset): Added reset methods to
- ACE_Thread_Descriptor and ACE_Thread_Descriptor_Base to reset
- Thread_Descriptor back to its initialized state.
-
- (ACE_Thread_Descriptor): Removed reset statements for
- cleanup_info_. They are handle by ACE_Cleanup_Info's contructor
- already.
-
- (acquire_release): Added a macro
- ACE_THREAD_MANAGER_USES_SAFE_SPAWN to disable double-checked
- locking. When this macro is defined, a spawned thread will
- always acquire the release the <sync_> lock before starting any
- other initialization. This should avoid a potential race
- condition on some platforms (i.e., DEC Alpha, Marced) using
- aggressive read/write reordering strategies.
-
- (spawn_i): Call <reset> method on the "new" thread descriptor
- after acquiring a thread descriptor from the freelist. This
- change moved most of the thread descriptor initialization code
- from append_thr into <reset>, before spawning the thread.
-
- Thanks to John Hickin <hickin@nortelnetworks.com> for motivating
- these changes.
-
-Tue Feb 29 21:18:12 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ACE.cpp:
-
- One more warning cleaned up from my get_temp_dir () change.
- Hopefully the last (crossing my fingers).
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- Missing some header files, thanks to Andres Kruse
- <andres.kruse@creaturelabs.com> for noticing.
-
- * ace/OS.h:
-
- Even when ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS was not defined,
- ACE_SEH_TRY and family was still being defined to the seh
- commands (like __try) on Win32. When the above macro is not
- defined, they are now noops. Thanks to Natarajan Kalpathy
- <Natarajan_Kalpathy@mw.3com.com> for reporting this.
-
-Tue Feb 29 16:40:43 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
- Fixed alignment problems when inserting message blocks without
- copying. The same fix was a good excuse to optimize the
- OutputCDR class, as described in bug #160.
-
- * ace/OS.h:
- Use the ACE_ prefix in a couple of naked macros.
-
- * ace/ACE.cpp:
- Fixed the crc32 routine, it seems we inherited a bug from the
- FreeBSD code. Thanks to Jonathan Reis <reis@stentorsoft.com>
- for finding the bug and providing a patch for it.
-
-Tue Feb 29 16:23:41 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Handle_Set.h: Added some explanation to a few ACE_Handle_Set
- member functions to clarify their purpose and use.
-
-Tue Feb 29 13:48:24 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Updated a comment about using ACE_Malloc for class-specific
- allocations. Thanks to Boris Sukholitko <boris@webglide.com>
- for reporting this.
-
-Tue Feb 29 08:48:28 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/Time_Service_Test.cpp: Enabled the test on Win32 and removed
- a use of ACE_DEFAULT_BACKING_STORE.
-
-Tue Feb 29 08:56:51 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- reverted this change:
-
- Mon Feb 28 20:42:17 2000 David L. Levine <levine@cs.wustl.edu>
-
- because it caused static constructors not to be called.
- Thanks to Elias Sreih <sealstd1@nortelnetworks.com> for
- reporting this.
-
-Mon Feb 28 20:04:23 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/Time_Service_Test.cpp: Missed a semicolon.
-
-Mon Feb 28 20:42:17 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- with Tornado 2 (VxWorks 5.4) and later, use
- ld$(TOOLENV) instead of ace_ld. Apparently, munch
- is no longer required. Thanks to Elias Sreih
- <sealstd1@nortelnetworks.com> for reporting that
- ace_ld/munch caused undefined symbols for calls to
- global ctors with Tornado 2.
-
-Mon Feb 28 17:34:00 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ACE.h:
- * ace/ACE.cpp:
-
- The Unix and Win32 behavior for get_temp_dir () wasn't consistent.
- Now both will return -1 if there is any problem such as the buffer
- not being long enough.
-
-Mon Feb 28 09:20:27 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ACE.h:
- * ace/ACE.cpp:
-
- Added get_temp_dir () method that fills a buffer with the path
- for the temporary directory. ACE has previously hardcoded the
- path. The right way is to find the path at runtime, especially on
- Win32 where the TEMP directory can be different from machine to
- machine (or even different for each user).
-
- * ace/OS.h:
- * ace/FILE_Addr.cpp:
- * ace/MEM_Acceptor.cpp:
- * ace/Memory_Pool.cpp:
- * ace/Naming_Context.cpp:
- * ace/Naming_Context.h:
- * ace/System_Time.cpp:
- * ace/System_Time.h:
- * examples/Shared_Malloc/test_persistence.cpp:
- * netsvcs/lib/Logging_Strategy.cpp:
- * netsvcs/lib/Logging_Strategy.h:
- * netsvcs/lib/TS_Clerk_Handler.cpp:
- * tests/Time_Service_Test.cpp:
-
- Removed the macro definitions that used C:\\temp:
- ACE_DEFAULT_BACKING_STORE
- ACE_DEFAULT_TEMP_FILE
- ACE_DEFAULT_LOGFILE
- ACE_DEFAULT_NAMESPACE
-
- The default path in these cases are now found by using the
- ACE::get_temp_dir method. The macros are still supported in
- that they can still be used to override the default case.
-
- * tests/test_config.h:
- * tests/MM_Shared_Memory_Test.cpp:
- * tests/Mem_Map_Test.cpp:
- * tests/Process_Strategy_Test.cpp:
- * tests/Process_Strategy_Test.h:
-
- Removed the macro definitions for:
- ACE_DEFAULT_TEST_FILE
- ACE_TEMP_FILE_NAME
- ACE_LOG_DIRECTORY
-
- and replaced with ACE::get_temp_dir.
-
- Also changed the default log file directory on Win32 to be in
- the log subdirectory. So now both Unix and NT have the same
- behavior, the logs will be written to $ACE_ROOT/tests/log.
-
- * tests/ACE_Init_Test.res: (removed)
-
- This file was giving me warnings when I built, and since it
- should be generated from the .rc file, I don't think it should
- be in the repository.
-
- * tests/Process_Manager_Test.cpp:
- * tests/Process_Manager_Test.dsp: (added)
- * tests/version_tests/Process_Manager_Test.dsp: (added)
- * tests/tests.dsw:
- * tests/version_tests/version_tests.dsw:
-
- Enabled the Process_Manager_Test on NT and created a MSVC
- workspace for it. Also fixed some miscellaneous UNICODE issues.
-
- * tests/run_tests.bat:
-
- Added the Process_Manager_Test and changed the location of the
- log files.
-
- * tests/README:
-
- Changed the location of the output of the log files.
-
-Mon Feb 28 09:16:40 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Local_Tokens.cpp (ACE_TPQ_Entry):
-
- Removed cast of ACE_thread_t to long unsigned int since some
- platforms (e.g. HPUX) declare the underlying thread type as a
- structure. This change reverts back to the version prior to
- Steve's change.
-
-Mon Feb 28 08:33:43 2000 Zoran Ivanovic <Zoran_Ivanovic@i2.com>
-
- * docs/ACE-guidelines.html: fixed typo, in example
- #include directive (Foo_T.i instead of Active_Map_Manager_T.i).
-
-Sun Feb 27 16:20:43 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch_T.h: Made the ACE_TSS_Type_Adapter operator TYPE() a const
- to avoid overloading ambiguities. Thanks to Bruce McIntosh
- <Bruce.McIntosh@australia.boeing.com> for reporting this.
-
- * ace/TP_Reactor.h: Improved the comments.
-
-Sat Feb 26 19:52:01 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CDR_Stream.cpp:
- The grow() function was re-allocating the buffer even when there
- was just enough memory, i.e. this was an off-by-one error, in
- the form of a < instead of <= comparison. When it finally
- decided to grow the buffer it was using the global heap instead
- of the allocators in the message block, which may be more
- efficient.
-
-Sat Feb 26 19:47:05 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Local_Tokens.cpp (ACE_TPQ_Entry):
-
- Needed to go a step further. Taking the jackhammer approach by
- switching to a C style cast until a better solution presents
- itself.
-
-Sat Feb 26 13:40:57 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Local_Tokens.cpp (ACE_TPQ_Entry):
-
- Compaq C++ doesn't like the static cast from ACE_thread_t to
- long unsigned int. Take the sledgehammer approach and use a
- reinterpret cast instead.
-
-Sat Feb 26 13:20:13 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h (INADDR_LOOPBACK):
-
- Define this macro to hexidecimal value of the loopback address
- 127.0.0.1 (0x7f000001). LynxOS doesn't define this constant.
-
-Fri Feb 25 16:50:37 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Profile_Timer.cpp (ACE_Profile_Timer ctor):
- * ace/Log_Msg.cpp (format_msg):
- * ace/Local_Tokens.cpp (ACE_TPQ_Entry::ACE_TPQ_Entry):
- Fixed to avoid a gcc 2.95 warning about mismatch format/arg types.
-
-Fri Feb 25 14:56:41 2000 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix_vacpp.GNU: New file for use
- with Visual Age C++ on AIX. It isn't really needed for much at this
- point except building the tests via Makefile. If you like doing
- everything directly with vacbld without the aid of ACE's make
- scheme, you don't need to use this.
-
-Fri Feb 25 14:48:31 2000 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/rules.bin.GNU: Add a rule to build a binary
- based on a Visual Age C++ configuration (.icc file) and sources.
- This allows building using Makefile, but defers all the real work
- to Visual Age C++ builder (vacbld). Useful for building the ACE
- tests especially.
-
-Fri Feb 25 14:44:37 2000 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/rules.local.GNU: Add *.ics to files deleted
- in cleanup. This cleans up Visual Age C++ codestores.
-
-Fri Feb 25 13:06:14 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_{ghs,g++}.GNU:
- updated platform information to reflect that these
- files are intended for VxWorks 5.3.1 and later.
-
-Fri Feb 25 13:03:35 2000 Fernando D. Mato Mira <matomira@iname.com>
-
- * include/makeinclude/platform_vxworks5.x_{diab,g++}.GNU:
- added PPC603 support.
-
-Fri Feb 25 10:47:33 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-win32-msvc.h,
- * ace/config-win32-borland.h: Added ACE_INT64_FORMAT_SPECIFIER
- for both platforms. Thanks to Christopher
- Kohlhoff <chris@kohlhoff.com> for providing the fix.
-
-Thu Feb 24 15:55:16 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Timer_Heap_T.cpp: Added "&& defined (_WINDOWS)" to all the places
- where memory alloc sizes had been faked out on conditionals selecting
- Visual Age C++. The reported issues that originated the conditions
- are not problems for AIX; with the conditional code in, tests
- failed due to memory corruptions.
-
-Thu Feb 24 15:44:42 2000 Steve Huston <shuston@riverace.com>
-
- * ace/ace-dll.icc: Added Capabilities.h and Capabilities.cpp.
-
-Thu Feb 24 12:35:31 2000 Steve Huston <shuston@riverace.com>
-
- * tests/ARGV_Test.icc:
- * tests/Auto_IncDec_Test.icc:
- * tests/CDR_File_Test.icc:
- * tests/Cache_Map_Manager_Test.icc:
- * tests/Cached_Accept_Conn_Test.icc:
- * tests/Cached_Conn_Test.icc:
- * tests/Capabilities_Test.icc:
- * tests/FlReactor_Test.icc:
- * tests/Future_Set_Test.icc:
- * tests/Hash_Map_Bucket_Iterator_Test.icc:
- * tests/Lazy_Map_Manager_Test.icc:
- * tests/Log_Msg_Test.icc:
- * tests/Malloc_Test.icc:
- * tests/New_Fail_Test.icc:
- * tests/Object_Manager_Test.icc:
- * tests/Process_Manager_Test.icc:
- * tests/Reverse_Lock_Test.icc:
- * tests/SOCK_Send_Recv_Test.icc:
- * tests/Signal_Test.icc:
- * tests/Svc_Handler_Test.icc:
- * tests/TkReactor_Test.icc:
- New test configuration files for use w/ Visual Age C++, NT and AIX.
-
- * tests/Aio_Platform_Test.icc:
- * tests/Atomic_Op_Test.icc:
- * tests/Barrier_Test.icc:
- * tests/Basic_Types_Test.icc:
- * tests/Buffer_Stream_Test.icc:
- * tests/CDR_Test.icc:
- * tests/Collection_Test.icc:
- * tests/Conn_Test.icc:
- * tests/DLL_Test.icc:
- * tests/DLList_Test.icc:
- * tests/Dynamic_Priority_Test.icc:
- * tests/Enum_Interfaces_Test.icc:
- * tests/Env_Value_Test.icc:
- * tests/Future_Test.icc:
- * tests/Handle_Set_Test.icc:
- * tests/Hash_Map_Manager_Test.icc:
- * tests/High_Res_Timer_Test.icc:
- * tests/IOStream_Test.icc:
- * tests/MM_Shared_Memory_Test.icc:
- * tests/MT_Reactor_Timer_Test.icc:
- * tests/MT_SOCK_Test.icc:
- * tests/Map_Manager_Test.icc:
- * tests/Map_Test.icc:
- * tests/Mem_Map_Test.icc:
- * tests/Message_Block_Test.icc:
- * tests/Message_Queue_Notifications_Test.icc:
- * tests/Message_Queue_Test.icc:
- * tests/Naming_Test.icc:
- * tests/Notify_Performance_Test.icc:
- * tests/OrdMultiSet_Test.icc:
- * tests/Pipe_Test.icc:
- * tests/Priority_Buffer_Test.icc:
- * tests/Priority_Reactor_Test.icc:
- * tests/Priority_Task_Test.icc:
- * tests/Process_Mutex_Test.icc:
- * tests/Process_Strategy_Test.icc:
- * tests/Purgable_Map_Manager_Test.icc:
- * tests/RB_Tree_Test.icc:
- * tests/Reactor_Exceptions_Test.icc:
- * tests/Reactor_Notify_Test.icc:
- * tests/Reactor_Performance_Test.icc:
- * tests/Reactor_Timer_Test.icc:
- * tests/Reactors_Test.icc:
- * tests/Reader_Writer_Test.icc:
- * tests/Recursive_Mutex_Test.icc:
- * tests/SOCK_Connector_Test.icc:
- * tests/SOCK_Test.icc:
- * tests/SPIPE_Test.icc:
- * tests/SString_Test.icc:
- * tests/SV_Shared_Memory_Test.icc:
- * tests/Semaphore_Test.icc:
- * tests/Service_Config_Test.icc:
- * tests/Sigset_Ops_Test.icc:
- * tests/Simple_Message_Block_Test.icc:
- * tests/TSS_Test.icc:
- * tests/Task_Test.icc:
- * tests/Thread_Manager_Test.icc:
- * tests/Thread_Mutex_Test.icc:
- * tests/Thread_Pool_Reactor_Test.icc:
- * tests/Thread_Pool_Test.icc:
- * tests/Time_Service_Test.icc:
- * tests/Time_Value_Test.icc:
- * tests/Timeprobe_Test.icc:
- * tests/Timer_Queue_Test.icc:
- * tests/Tokens_Test.icc:
- * tests/UPIPE_SAP_Test.icc:
- * tests/Upgradable_RW_Test.icc:
- * tests/XtReactor_Test.icc:
- Changed to work for both NT and AIX Visual Age C++, using new
- vacpp_setup.icc file, added below.
-
-Thu Feb 24 12:15:46 2000 Steve Huston <shuston@riverace.com>
-
- * tests/makeicc.pl: Corrected to write Id variable in new .icc
- file properly.
-
-Thu Feb 24 01:52:51 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (append_thr): Moved the setting of
- THR_SPAWNED state down to right before releasing the thread
- creation lock. Hopefully, this will eliminate a warning about a
- non-existing race condition from KAI Assure. Thanks to John
- Hickin <hickin@nortelnetworks.com> for reporting this.
-
-Wed Feb 23 23:52:15 2000 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/Log_Msg.h: Added a hack to work around nasty libraries
- that #define THREAD 1. Thanks to Pierre Oberson
- <oberson@nagra-kudelski.ch> for reporting this.
-
-Wed Feb 23 19:37:29 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Dynamic_Priority_Test.cpp:
- More stuff that is not used unless ACE_HAS_TIMED_MESSAGE_BLOCKS
- is defined.
-
-Wed Feb 23 18:58:06 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch.i (lock): Make sure that ACE_File_Lock::set_handle()
- sets this->removed_ = 0. Thanks to Sanwoo Jin
- <swjinjin@sei.co.kr> for reporting this.
-
- * tests/FlReactor_Test.cpp (main): Minor reformatting.
-
- * ace/config-win32-borland.h: When you define _DEBUG the orbsvcs
- dll exports all "inline" functions, and this seems to be too
- much for BCB4 linker. Thaddeus L. Olczyk
- <olczyk@interaccess.com> reported this problem and Christopher
- Kohlhoff <chris@kohlhoff.com> provided the fix.
-
- * ace/OS,
- ace/Synch: Added a new parameter to flock_destroy() and
- ACE_File_Lock::remove() that controls whether the lockfile is
- removed when the filelock is destroyed. By default, this is
- "enabled" so the existing semantics don't change. Thanks to
- Sanwoo Jin <swjinjin@sei.co.kr> for suggesting this.
-
-Wed Feb 23 17:02:34 2000 Steve Huston <shuston@riverace.com>
-
- * tests/vacpp_setup.icc: Settings for Visual Age C++ which are included
- in the individual tests' VAC++ configurations. Captures all of the
- platform (AIX vs. NT) differences in one place.
-
- * tests/makeicc.pl: Changed to generate .icc files that work on either
- NT or AIX, using the above vacpp_setup.icc.
-
-Wed Feb 23 16:54:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Based_Pointer_Repository.cpp (ACE_Based_Pointer_Repository_Rep):
- Moved typedefs for MAP_MANAGER, MAP_ITERATOR, MAP_ENTRY inside
- the class definition so they don't conflict with other types of
- the same name (Visual Age C++ sees all of them at once, even if
- other compilers may never see those two definitions in the same
- compilation unit ever).
-
-Wed Feb 23 14:48:52 2000 Steve Huston <shuston@riverace.com>
-
- * ace/ace-dll.icc: Platform-specifics further segmented out to make
- Visual Age C++ builds work for both NT and AIX. Removed Multiplexor.h
- and Multiplexor.cpp since those files are not used. Added
- Based_Pointer_Repository.(cpp h).
-
- * ace/OS.i (getpwnam_r): Add a condition for the Visual Age C++ on
- AIX compiler - it can't correctly handle the ::getpwnam_r call.
-
-Wed Feb 23 14:45:21 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Message_Block.cpp:
- * tests/Dynamic_Priority_Test.cpp:
- Fixed warnings when compiling without
- ACE_HAS_TIMED_MESSAGE_BLOCKS defined.
-
-Wed Feb 23 12:19:51 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.i (ACE_LACKS_SETREUID_PROTOTYPE,
- ACE_LACKS_SETREGID_PROTOTYPE):
-
- If either _BSD_SOURCE, _XOPEN_SOURCE or _XOPEN_SOURCE_EXTENEDED
- is defined then do not allow the prototypes corresponding to
- these macros to become visible since defining any of these
- macros may make the real prototypes in the system headers
- visible. Thanks to Rich Seibel <seibel_r@ociweb.com> for
- pointing this out.
-
-Tue Feb 22 21:11:03 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in (ACE_HAS_XPG4_MULTIBYTE_CHAR):
-
- Added test for wcslen(). Only define this macro if both the
- wchar_t type and the wcslen() function exist. This fixes a link
- problem on a ACE+autoconf QNX build.
-
-Tue Feb 22 20:56:51 2000 Ossama Othman <ossama@uci.edu>
-
- * config.guess:
-
- Updated to latest version from the GNU CVS repository.
-
- * config.sub:
-
- Merged my QNX Neutrino patches into the latest version from the
- GNU CVS repository.
-
-Tue Feb 22 20:09:14 2000 Ossama Othman <ossama@uci.edu>
-
- * config.sub:
-
- Added support for QNX Neutrino. Hosts specifications such as
- "i386-nto," "i386-qnx," "i386-qnx-nto," etc, will now be
- accepted by the configure script's "--host" command line
- option. A patch has been sent to the upstream maintainers of
- this script.
-
- * ace/OS.cpp (unique_name):
-
- Fixed warning about mismatched format specifier by explicitly
- casting the result of ACE_OS::getpid(), a "pid_t," to an "int."
-
- * ace/OS.h (ACE_LOFF_T):
-
- QNX Nuetrino has a 64-bit offset type, "off64_t."
-
- * m4/platform.m4 (ACE_SET_PLATFORM_MACROS):
-
- Added support for QNX Neutrino.
-
-Tue Feb 22 17:42:09 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch.cpp: Reset the ACE_File_Lock::remove_ data member to
- 0 in the open() method so that it can be reused. Thanks to
- Sanwoo Jin <swjinjin@sei.co.kr> for reporting this.
-
-Tue Feb 22 13:57:32 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE.cpp (send_n and recv_n): Reduced the number of calls to
- message_block->length () by caching the value. Also inlined
- some of the smaller functions.
-
-Tue Feb 22 12:29:44 2000 Ossama Othman <ossama@uci.edu>
-
- * m4/threads.m4 (ACE_CHECK_THREAD_FLAGS):
-
- Added run-time tests to this M4 macro to get around the annoying
- fact that some platforms implement no-op thread function stubs,
- which cause link-time tests to pass. The run-time tests check
- the return value of pthread_create() and/or thr_create() to
- determine if the function is working or not. The cross-compiled
- case falls back on the link-time test. This fixes a problem on
- Solaris with both Sun C++ and g++.
-
-Tue Feb 22 14:00:38 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (cond_timedwait): added pSOS support. Thanks
- to Sarmeesha Reddy <sarmeesha@bigfoot.com> for the
- implementation.
-
-Tue Feb 22 09:52:50 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/config-linux-common.h (ACE_HAS_PROC_FS):
-
- A conflict appears when including both <ucontext.h> and
- <sys/procfs.h> with recent glibc headers, so don't define it.
- However, at some point we should redefine this macro since the
- latest glibc fixes this problem.
-
-Tue Feb 22 09:16:29 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/streams.h: Commented out an inclusion of the file
- <iomanip.h> as this was causing problems with Qt.
-
- * ace/Signal.h: One of the variables for the constructors of
- ACE_Sig_Action was named as "signals". This apparently causes
- conflict with the Qt library as the library has a macro by that
- name. So it was changed as "signalss". Thanks to James Briggs
- <James.Briggs@dsto.defence.gov.au> for reporting this.
-
-Tue Feb 22 01:52:09 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Block.cpp: Refactored the code in duplicate()
- and clone() so that it doesn't have macro within macros.
- Thanks to Nanbor for reporting this.
-
-Tue Feb 22 01:19:40 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_IO.h: Added more comments.
-
-Tue Feb 22 00:39:03 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_IO.h: Changed method fetch_recv_buf as protected and
- added some missing comments.
-
- * ace/MEM_Acceptor.h:
- * ace/MEM_Connector.h: Added some missing comments.
-
-Mon Feb 21 20:40:37 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/MEM_*: Minor modifications to formatting here.
-
- * tests/Dynamic_Priority_Test.cpp: Only run this test if
- ACE_HAS_TIMED_MESSAGE_BLOCKS is enabled.
-
- * ace/Message_Block: By default, the deadline_time_ and execution_time_
- data members are now omitted and their accessor/mutator
- operations rendered "no-op"s unless ACE_HAS_TIMED_MESSAGE_BLOCKS
- is enabled. This is necessary to avoid an unnecessary 16 bytes
- per-Message_Block. Thanks to Irfan for pointing this out.
-
-Mon Feb 21 17:22:33 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in (ACE_LACKS_SETREUID):
-
- Fixed typo.
-
- (ACE_HAS_SOCKADDR_MSG_NAME):
-
- Fixed broken test. A `struct sockaddr' was being cast to a
- `struct sockaddr *', which is obviously broken. This fix has
- the side effect of causing ACE_HAS_SOCKADDR_MSG_NAME to be
- defined on platforms where the "msg_name" field of the "msghdr"
- structure is a `void*', such as Linux and Solaris. This isn't
- necessarily a bad thing since it is perfectly valid.
-
- (ACE_HAS_VOIDPTR_SOCKOPT, ACE_HAS_CHARPTR_SOCKOPT):
-
- Fixed the tests for these two macros. The fifth "optlen"
- argument to setsockopt() was being passed in as a pointer to
- some integral type. The "optlen" argument to setsockopt() is
- not a pointer. Rather, it should be one of the following:
- socklen_t, size_t or int. The appropriate type for "optlen"
- will be determined from previous tests, such as the test for
- socklen_t.
-
- The test for ACE_HAS_CHARPTR_SOCKOPT will now only be run if the
- test for ACE_HAS_VOIDPTR_SOCKOPT fails.
-
-Mon Feb 21 16:23:03 2000 Ossama Othman <ossama@uci.edu>
-
- Thanks to Rich Seibel <seibel_r@ociweb.com> for providing the
- highly detailed feedback that led to the following changes/fixes:
-
- * THANKS:
-
- Added Rich Seibel <seibel_r@ociweb.com> to the list of
- contributors.
-
- * acconfig.h (ACE_HAS_IOMANIP_NO_H):
-
- Removed this macro since it isn't used anywhere.
-
- (ACE_LACKS_SETREGID_PROTO, ACE_LACKS_SETREUID_PROTO):
-
- These should have been ACE_LACKS_SETREGID_PROTOTYPE, and
- ACE_LACKS_SETREUID_PROTOTYPE, respectively.
-
- * configure.in (ACE_HAS_IOMANIP_NO_H):
-
- Removed the test for this macro. It isn't used anywhere.
-
- (ACE_HAS_SIZET_SOCKET_LEN):
-
- Only test for this macro if ACE_HAS_SOCKLEN_T isn't defined.
-
- (ACE_LACKS_SETREGID_PROTO, ACE_LACKS_SETREUID_PROTO):
-
- These should have been ACE_LACKS_SETREGID_PROTOTYPE, and
- ACE_LACKS_SETREUID_PROTOTYPE, respectively.
-
- Added "-U_BSD_SOURCE" to list of macros to undefine for each of
- the tests for these macros. Defining "_BSD_SOURCE" on some
- platforms may make the prototypes corresponding to the above
- macros visible, so we need to explicitly undefine it.
-
- * ace/config-linux-common.h (ACE_HAS_PROCFS):
-
- Corrected typo. This macro should have been ACE_HAS_PROC_FS.
-
-Mon Feb 21 16:19:36 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- Protect the definitions of the CDR macros, so users can override
- them in their config.h file. Thanks to Jim Scheller
- <csoftware@iname.com> for pointing this out.
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
- Fixed the algorithm to allocate new CDR blocks in the chain. In
- all but a few weird cases it was allocating fixed sized blocks,
- while the intention was to grow the size of the blocks to
- minimize the number of allocations. Thanks to Jim Scheller
- <csoftware@iname.com> for finding this problem.
- Also added a new ACE_CDR::consolidate() method to reduce a
- message block chain into a single message block (with proper
- alignment). This is useful in the implementation of the CDR
- streams and Anys.
-
-Mon Feb 21 14:35:39 2000 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/Makefile.bor: Added new files.
-
- * tests/*.cpp, tests/test_config.h: Removed macros that had been
- used by C++Builder 3.
-
- * include/makeinclude/compiler.bor: Added support for C++Builder 5
- VCL libs.
-
- * include/makeinclude/recurse.bor, lots of Makefile.bor files:
- Added support for makefile recursion.
-
-Mon Feb 21 14:35:39 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude/compiler.bor: Increased the limit of
- LIB_LFLAGS from 2048 to 4096. Thanks to Mogens Hansen
- <mogens_h@dk-online.dk> for reporting this.
-
-Mon Feb 21 15:43:01 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_SAP.h:
- * ace/MEM_SAP.cpp (create_shm_malloc): Renamed the typedef
- <MALLOC> to <MALLOC_TYPE> to avoid name clashing problem on GHS
- cross compilers. Thanks to Bill Tovrea
- <gwtovrea@west.raytheon.com> for reporting this and the help in
- tracking this down.
-
-Mon Feb 21 12:51:52 2000 Ossama Othman <ossama@uci.edu>
-
- * Makefile (RELEASE_TAG_FILES):
-
- Added `man/Makefile.am' to the list of files to be tagged at
- release time.
-
-Mon Feb 21 08:35:58 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-hpux-11.00.h
- Corrected a build problem with KCC. Things were lost in the
- transition to the new header file.
-
-Sun Feb 20 18:31:46 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Removed ACED.cpp and ACER.cpp. These were only
- needed by Borland C++Builder 3.0, which is not supported by ACE
- (i.e., you need to upgrade to BCB 4.0 or later). Thanks to
- Christopher Kohlhoff <chris@kohlhoff.com> for this fix.
-
-Sun Feb 20 23:43:22 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Changed Base_Pointer_T.cpp to Based_Pointer_T.cpp.
- Also synced ace_lib with ace_dll to bring up to date.
-
-Sun Feb 20 11:33:09 2000 Ossama Othman <ossama@uci.edu>
-
- * THANKS:
-
- Added Todd Gruhn <tgruhn2@mail.com> to the list of
- contributors.
-
- * ace/config-netbsd.h:
-
- Defined ACE_HAS_DIRENT, and undefined ACE_LACKS_SIGSET. Thanks
- to Todd Gruhn <tgruhn2@mail.com> for confirming that these
- changes were necessary.
-
-Sat Feb 19 17:53:47 2000 Ossama Othman <ossama@uci.edu>
-
- * bin/make_release (create_kit):
-
- Another attempt to fix MD5 checksum generation at release time:
- The problem was that an attempt to get the MD5 checksum for a
- file in the current directory was being made, but that file had
- already been moved to the destination FTP directory. Prepending
- the destination directory to the filename should correct the
- problem. MD5 checksum generation has been re-enabled.
-
-Sat Feb 19 17:32:28 2000 Ossama Othman <ossama@uci.edu>
-
- * Makefile (RELEASE_TAG_FILES):
-
- Added this new variable. It contains a list of files that
- should be tagged at release time, but shouldn't be listed in any
- of the release/controlled file lists. This is necessary to
- prevent multiple instances of the same file from being passed to
- the `.zip' file creation command line. For example,
- ACE_wrappers/man, ACE_wrappers/man/man3/Makefile.am and
- ACE_wrappers/man/html/Makefile.am were all being passed to the
- `.zip' file creation command line, resulting in duplicate file
- names on that command line. Thanks to David for pointing this
- out.
-
- The `bin/make_release' script will use this new list of files
- when tagging a release.
-
- (show_release_tag_files):
-
- Makefile target that lists files that should be tagged at
- release time.
-
- * bin/make_release:
-
- Invoke "$make show_release_tag_files" to determine if there are
- any additional files to tag at release time.
-
- (tag):
-
- Added "$release_tag_files" to list of files to be tagged by CVS
- at release time. This fixes a problem where the man page
- Makefile.am files were not being tagged, which also prevented
- them from being distributed with the ACE distribution. [Bug 408]
-
-Sat Feb 19 15:33:05 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 5.0.14 released.
-
-Fri Feb 18 20:58:08 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Do not send email if the build completed without errors.
-
-Fri Feb 18 17:30:26 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.00.h: Filled out with the known compiler settings
- for g++, KCC, HP CC, and HP aC++. This is now the official HP-UX 11
- config.h file for all compilers.
-
- * ace/config-hpux-11.x-hpc++.h: This file is no longer in use. It
- generates a compiler error if used. It is planned to go away
- for ACE 5.1.
-
-Fri Feb 18 10:25:45 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- Workaround MSVC5 bug when invoking explicit destructors. Thanks
- to Achim Stindt <stindt@conbis.de> for this fix.
-
-Thu Feb 17 18:32:05 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * OS.h:
- Removed the ACE_GLOBAL_COLONS macro I added yesterday.
- Found another way to generate code with the IDL compiler
- that doesn't need it.
-
-Thu Feb 17 09:38:06 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Reader_Writer_Test.cpp: use default n_iterations
- of 25 and n_loops of 10 on VxWorks. With the old defaults,
- the test took too long, e.g., 7 minutes on a 450 MHz
- Pentium. With the new defaults, it takes about 20 seconds.
- Thanks to Dave Hall <David.Hall@grc.nasa.gov> for reporting this.
-
-Thu Feb 17 08:10:08 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp (close_singletons): Don't bother calling
- ACE_Proactor::close_singleton() on WinCE, Win95/98, or if
- these's no support for AIO calls. Thanks to Sanwoo Jin
- <swjinjin@sei.co.kr> for reporting this.
-
-Wed Feb 16 17:03:31 2000 Steve Huston <shuston@riverace.com>
-
- * tests/version_tests/version_tests.dsw: Add Capabilities_Test.dsp.
-
-Wed Feb 16 14:53:05 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/OS.h:
- Added ACE_GLOBAL_COLONS macro. In certain cases in IDL files
- where nested scoped names repeat (after skipping a scope so
- it's legal), all comilers except SucCC 5.0 need the fully
- scoped name with the global double colon in order to resolve
- the name. SunCC 5.0, on the other hand, not only doesn't
- need it, but outputs an error whenever it sees these global
- double colons just inside an open paranthesis, for example,
- (::foo::...). This macro is used in generating code in
- just these instances so all comilers can be happy.
-
-Tue Feb 15 22:57:59 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_IO.h:
- * ace/MEM_IO.cpp (send): Added a new method that sends a chain of
- Message_Block. This function aggregates the data in
- Message_Block and copies them directly into shared memory.
-
-Tue Feb 15 21:26:00 2000 David L. Levine <levine@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp,CPP-unserver.cpp (main),
- examples/Reactor/Multicast/server.cpp (main),
- examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp (main),
- examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp (main),
- wrapped final return with ACE_NOTREACHED to please cxx T6.3-003.
-
-Mon Feb 14 16:52:24 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_linux_cxx.GNU:
- no longer need to explicitly link all of the
- template instantiation files into shared libs.
- -shared works properly with T6.3-003.
-
-Mon Feb 14 12:21:01 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-hpux-11.x-hpc++.h
-
- Added a conditional include for the KCC common include file.
- Modified the values of ACE_HAS_EXCEPTIONS and
- ACE_LACKS_LINEBUFFERED_STREAMBUF to match those of the KCC
- common header. This will not affect non-KCC builds on HP.
-
- * include/makeinclude/platform_hpux_kcc.GNU
-
- Added this file for building on HPUX with KCC.
-
- * include/makeinclude/platform_sunos5_kcc.GNU
-
- Modified to allow building static libraries.
-
- * include/makeinclude/platform_linux_kcc.GNU
-
- Modified to allow building static libraries.
-
-Mon Feb 14 08:43:31 2000 Ossama Othman <ossama@uci.edu>
-
- * acconfig.h:
-
- Changed ACE_HAS_POSITION_INDEPENDENT_MALLOC macro to
- ACE_HAS_POSITION_INDEPENDENT_POINTERS since the name changed in
- ACE as well.
-
- * configure.in (AC_LANG_CPLUSPLUS):
-
- Set the test language to C++ earlier in the configure script to
- make sure all tests are done using the C++ compiler.
-
- (ACE_CONFIGURATION_OPTIONS, ACE_COMPILATION_OPTIONS):
-
- Moved configure script option macros to new `m4/ace.m4' M4
- macros file.
-
- (ACE_TEMPLATES_REQUIRE_SOURCE,
- ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION,
- ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA):
-
- Overhauled the tests for these macros. Since there may be a
- tight dependency between some of these macros, the
- ACE_TEMPLATES_REQUIRE_SOURCE test also tests if either of the
- other two macros are required. This fixes a problem that was
- occurring with Sun C++ 5.0.
-
- Corrected a syntax error in the previous
- ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA test, which is now part of
- the ACE_TEMPLATES_REQUIRE_SOURCE test.
-
- (ACE_TEMPLATES_REQUIRE_PRAGMA):
-
- Added a test for this macro. It is only run if the
- ACE_TEMPLATES_REQUIRE_SOURCE test failed. This should improve
- AIX support.
-
- * m4/ace.m4 (ACE_CONFIGURATION_OPTIONS, ACE_COMPILATION_OPTIONS):
-
- Moved all configure script command line option macros to this
- file and placed them in the above M4 macros. This makes things
- a bit cleaner, and it also allows other macros to AC_REQUIRE the
- above macros.
-
- * m4/compiler.m4 (ACE_SET_COMPILER_FLAGS):
-
- Made this macro depend on ACE_COMPILATION_OPTIONS
- (i.e. AC_REQUIRE it).
-
- Moved more compiler specific variable settings from configure.in
- to this macro.
-
-Sun Feb 13 11:17:33 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Shared_Malloc/test_multiple_mallocs.cpp:
- * examples/Shared_Malloc/test_position_independent_malloc.cpp:
- * tests/Malloc_Test.cpp: Changed
- ACE_HAS_POSITION_INDEPENDENT_MALLOC to
- ACE_HAS_POSITION_INDEPENDENT_POINTERS.
-
-Sat Feb 12 20:35:23 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp (initialize):
- Zapped several temporary variables that were causing warnings
- when ACE_ASSERT is disabled. Thanks to David Levine for
- reporting this.
-
-Sat Feb 12 17:06:20 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/Thread_Manager.cpp (ACE_Thread_Exit): Removed member
- <status_> and its accessors. They don't seem to be used
- anywhere in ACE and can't be accessed by users. Thanks to
- "Elias Sreih" <sealstd1@nortelnetworks.com> for noticing this.
-
-Sat Feb 12 15:15:01 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/README (ACE_HAS_POSITION_INDEPENDENT_POINTERS): Renamed
- the deprecated ACE_HAS_POSITION_INDEPENDENT_MALLOC to
- ACE_HAS_POSITION_INDEPENDENT_POINTERS.
-
- * ace/OS.h: Made ACE_HAS_POSITION_INDEPENDENT_POINTERS=1 the default
- if it is not defined already. If you don't want the support of
- position independent pointers (which means you don't care about
- position independent malloc,) define
- ACE_HAS_POSITION_INDEPENDENT_POINTERS to 0.
-
- * ace/MEM_SAP.h:
- * ace/MEM_SAP.cpp:
- * ace/Malloc.h:
- * ace/Malloc.cpp:
- * ace/Malloc.i:
- * ace/Malloc_T.i:
- * ace/Memory_Pool.cpp: Changed ACE_HAS_POSITION_INDEPENDENT_MALLOC
- to ACE_HAS_POSITION_INDEPENDENT_POINTERS.
-
- * ace/config-sunos5.5.h:
- * ace/config-win32-common.h: Removed deprecated
- ACE_HAS_POSITION_INDEPENDENT_MALLOC.
-
-Sat Feb 12 14:40:20 2000 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Connection/misc/Connection_Handler.cpp,
- examples/Logger/Acceptor-server/server_loggerd.cpp,
- examples/Logger/simple-server/Logging_Handler.cpp (handle_timeout):
- added ACE_UNUSED_ARG (arg), only with ACE_NDEBUG.
-
-Sat Feb 12 00:27:45 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Changed to conditionally define
- ACE_DEFAULT_TEMP_DIR_ENV according to whether the unicode is
- supported or not.
-
- * ace/MEM_SAP.h:
- * ace/MEM_SAP.cpp:
- * ace/MEM_Acceptor.cpp (accept):
- * ace/MEM_Connector.cpp (connect): Made UNICODE friendly. Thanks
- to Steve for reporting the problem.
-
-Fri Feb 11 13:26:49 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_Acceptor.cpp (accept): Changed to use
- ACE_reinterpret_cast to cast (sockaddr *) to (sockaddr_in *).
- This eliminate the warning on HPUX aCC compiler.
-
-Fri Feb 11 01:16:15 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Acceptor.h: Changed to use ACE_LACKS_INLINE_FUNCTIONS to
- determine where to include MEM_Acceptor.i file as ASYS_INLINE is
- used. Thanks to Marina and SunCC 5 for reporting the problem.
-
-Thu Feb 10 21:57:04 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_SAP.h
- * ace/MEM_SAP.i (set_buf_len): Removed the const'ness of argument
- <buf>.
-
-Thu Feb 10 14:09:56 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Added MEM_* files.
-
-Thu Feb 10 13:49:34 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_SAP.h:
- * ace/MEM_SAP.i:
- * ace/MEM_SAP.cpp: Implemented the adaptation layer for managing
- shared memory in shared memory transport.
-
- * ace/MEM_Addr.h:
- * ace/MEM_Addr.i:
- * ace/MEM_Addr.cpp: Implemented the "endpoint" addressing
- mechanism for shared memory transport. The ACE_MEM_Addr make
- sure the "endpoint" is not on an interface that is accessable
- outside of the running host. It also serves as endpoint
- identification and provides the <same_host> checking method.
-
- * ace/MEM_IO.h:
- * ace/MEM_IO.i:
- * ace/MEM_IO.cpp: Implemented the IO routines for shared memory
- transport. Currently, these IO routines treat shared memory
- transport as a streaming devide and copy the data into its own
- buffer before sending the data over. We'll add method for
- acquiring and sending the internal buffer later.
-
- * ace/MEM_Acceptor.h:
- * ace/MEM_Acceptor.i:
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Connector.h:
- * ace/MEM_Connector.i:
- * ace/MEM_Connector.cpp:
- * ace/MEM_Stream.h:
- * ace/MEM_Stream.i:
- * ace/MEM_Stream.cpp: These classes emulate SOCK_* classes but use
- shared memory as their transport mechanism.
-
- * ace/Malloc_T.cpp: Fixed a mis-matched ACE_TRACE message.
-
- * ace/OS.h: Added definitions of ACE_MEM_ACCEPTOR,
- ACE_MEM_CONNECTOR and, ACE_MEM_STREAM.
-
- * ace/Makefile: Aded MEM_* files and updated dependencies.
-
- * tests/Malloc_Test.cpp: Removed explicit template instantiations
- for ACE_Malloc[_T] as they are taken care of in MEM_SAP.cpp
- now.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP_memclient.dsp:
- * examples/IPC_SAP/SOCK_SAP/CPP_memserver.dsp:
- * examples/IPC_SAP/SOCK_SAP/SOCK_SAP.dsw: Added a simple example
- on how to use the shared-memory transport.
-
-Thu Feb 10 10:18:00 2000 Ossama Othman <ossama@uci.edu>
-
- * THANKS:
-
- Added Hajdukiewicz Markus <MHajdukiewic@heyde.de> and Gerwin
- Robert <RGerwin@heyde.de> to the list of fame.
-
- * configure.in (ACE_LACKS_SETSCHED):
-
- Fixed test so that it defines ACE_LACKS_SETSCHED when
- sched_setscheduler() isn't found. This was the intended
- behavior. Thanks to Hajdukiewicz Markus <MHajdukiewic@heyde.de>
- and Gerwin Robert <RGerwin@heyde.de> for providing a patch for
- this problem.
-
- (ace_cv_feature_cxx_std_template_specialization):
-
- It appears that this variable had to be quoted when testing if
- it was set to "yes" on AIX. Thanks again to Markus and Robert
- for providing a patch.
-
-Wed Feb 09 00:41:36 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Pipe_Test.cpp (main): Spawn command should be
- "./Pipe_Test" and not "Pipe_Test". Otherwise the test will fail
- if the user does not have "." in his/her PATH. Thanks to Ossama
- for reporting this problem.
-
-Tue Feb 08 21:22:45 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Token: Yesterday's change caused one problem. There was no
- way to distinguish which thread was going to be the next owner.
- So the following happened:
-
- Thread A had a read lock and was waiting in select(). Thread B
- wanted a write lock, therefore it executed the sleep hook, and
- then waited on the condition. Thread A got up through the sleep
- hook, signaled thread B, released the lock and went back to grab
- the read lock. Even though thread B was runnable, it hadn't
- gotten a chance to become the owner and <in_use_> was still
- zero. When thread A tried to reacquire the read lock, it
- succeeded. Thread B finally ran to find out that the token was
- in use and went back to sleep, and hence got starved in the
- process.
-
- Therefore, the following changes were made to fix the above:
-
- - wakeup_next_waiter() always reset <in_use_> and <owner_>. If
- there is a waiter, it sets <in_use_> and <owner_> for the next
- owner.
-
- - release() doesn't reset <in_use_> and <owner_> since
- wakeup_next_waiter() now does.
-
- - renew() doesn't set or reset <in_use_> and <owner_> since
- wakeup_next_waiter() now does.
-
- - shared_acquire() doesn't set <in_use_> and <owner_> since
- wakeup_next_waiter() now does.
-
- - The while loops in shared_acquire() and renew() now loop until
- the calling thread becomes the owner.
-
- Note that this version of the Token implementation is still
- better than the previous one since it does not double delete on
- timeouts and wakes up the next waiter if it timed out and became
- the owner simultaneously.
-
-Tue Feb 08 21:46:51 2000 Girish Birajdar <birajdar@lucent.com>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- added SIMSPARCSOLARIS support.
-
-Tue Feb 8 16:29:38 2000 Ossama Othman <ossama@uci.edu>
-
- * ltcf-cxx.sh:
- * ltconfig:
- * ltmain.sh:
-
- Updated from latest libtool multi-language branch versions.
-
-Tue Feb 8 14:25:46 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/config-sunos5.5.h (ACE_HAS_TYPENAME_KEYWORD):
-
- According to ACE's configure script, Sun C++ 5.0 also supports
- the typename keyword.
-
-Tue Feb 8 16:17:21 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Thread_Manager.h: Added comment text to ACE_Thread_Manager::wait
- noting that it doesn't wait during ACE_Object_Manager rundown.
-
-Tue Feb 8 14:16:50 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/config-sunos5.5.h (ACE_HAS_USING_KEYWORD):
-
- Sun C++ 5.0 supports the `using' keyword. Thanks to David Wicks
- <wicks@swbell.net> for pointing this out.
-
-Mon Feb 07 21:11:32 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Token: Bug 416
- (http://ace.cs.wustl.edu/bugs/show_bug.cgi?id=416) was causing
- problems for TAO/tests/Leader_Followers. The current owner of
- the token was in the process of waking up the next thread. In
- the meantime, the thread that was going to be woken up next
- timed out. This lead to double deletes from queues and double
- decrements of counters: one by the thread doing the signaling
- and the other by the thread timing out. In addition, the other
- threads waiting for token never woke up since there was nobody
- to wake them up.
-
- The following changes were made to rectify this problem:
-
- - ACE_Token::ACE_Token_Queue::insert_entry() factored out common
- code for adding followers to the queue.
-
- - The thread adding itself to the waiter queue and changing the
- counters is the one responsible for undoing the state
- changes. The thread doing to wake up is only responsible for
- the signaling.
-
- - When a thread timeouts, it must check if it was also selected
- as the next owner. If it was, it must wakeup another waiter.
-
- - renew() was simplified and made consistent with
- shared_acquire() and release().
-
- - wakeup_next_waiter() abstracted out the code for the selection
- of the next owner.
-
- - Improved state management including values for <this->owner_>
- and <this->in_use_>.
-
- - The wait() loop was not correct. We now loop until the token
- is no longer in use. This way if the token ownership was taken
- by another (new) waiter thread by the time we wake up, we simply
- go back to sleep.
-
-Mon Feb 7 17:54:06 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * bin/run_all_list.pm:
- Added TAO/tests/DynAny_Test/run_test.pl to the general
- and single-threaded test groups.
-
-Mon Feb 7 17:30:00 2000 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/ACE.cpp (out_of_handles): Added ENOTSUP (Operation not
- supported) check for SunOS. This helped in solving a bug when
- the Cached_Conn_Test was executed using a single-threaded build.
- Thanks to Steve Huston <shuston@riverace.com> for reporting this
- bug.
-
-Mon Feb 7 17:28:40 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/clients/Naming/Client/main.cpp (main): Removed two
- warnings that crept in recently. Thanks to David Levine
- for reporting this.
-
-Mon Feb 7 08:34:26 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * docs/ACE-subsets.html:
- Removed the instructions for subsets on Win32. Subsets are not
- supported under MSVC Project files.
-
-Sun Feb 6 20:44:26 2000 Ossama Othman <ossama@uci.edu>
-
- * ace-config.1.in:
-
- Updated e-mail address of author (me).
-
- * configure.in:
-
- Updated e-mail address of configure script maintainer (me again).
-
- (PURE_CACHE_DIR):
-
- Fixed syntax of shell script variables. This fixes a problem
- that occurred on FreeBSD.
-
- (LIBS):
-
- Removed manual addition of some thread related libraries. They
- are now in the auto-detection list in threads.m4.
-
- * m4/compiler.m4 (ACE_SET_COMPILER_FLAGS):
-
- Improved support for HP aCC, and corrections. Set WERROR to
- "+We67" to cause use of "#pragma once" to be an error instead of
- a warning.
-
- * m4/features.m4 (ACE_CHECK_ASYNCH_IO):
-
- Reduce timeout value in test program from INT_MAX to 5 seconds.
-
- * m4/threads.m4 (ACE_CHECK_THREADS):
-
- Add "-xnolib" to CXXFLAGS when testing thread flag support using
- Sun C++. Sun C++ links a thread function stub library in the
- single-threaded case. The stubs are no-ops but they exist,
- nonetheless. This causes the link tests used to determine if a
- thread flag is needed to incorrectly pass.
-
-Sun Feb 6 14:52:28 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile.am (libACE_Demux_la_SOURCES):
-
- Added `QtReactor.cpp' to list of sources.
-
- (libACE_Other_la_SOURCES):
-
- Added `QoS_Session_Impl.cpp' and `QoS_Session_Factory.cpp' to
- the list of sources.
-
- (HEADER_FILES):
-
- Added `Min_Max.h', `QoS_Session_Impl.h' and
- `QoS_Session_Factory.h' to the list of headers.
-
- (INLINE_FILES):
-
- Added `QoS_Session_Impl.i' to the list of inline files.
-
- * ace/OS.h (ACE_LOFF_T):
-
- HP-UX has a 64 bit offset type "off64_t."
-
-Sat Feb 5 20:49:50 2000 Ossama Othman <ossama@uci.edu>
-
- * ltcf-c.sh:
- * ltcf-cxx.sh:
- * ltconfig:
- * ltmain.sh:
-
- Updated from latest libtool multi-language CVS branch.
-
- * m4/compiler.m4 (LDFLAGS):
-
- Remove "-xildoff" from the Sun C++ linker flags. It doesn't
- seem to be needed since the compiler is smart enough to know
- when to use it.
-
-Fri Feb 4 23:12:36 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp (handle_input): Added code to
- handle the case where all the data isn't available when we do a
- "recv()" from the socket. Thanks to David X. Callaway
- <david.x.callaway@intel.com> for reporting this.
-
- * ace/Log_Msg.cpp (open): Add a special-purpose case for NT to make sure
- that handles are reused in the client logging daemon. Thanks to
- David X. Callaway <david.x.callaway@intel.com> for reporting
- this.
-
-Fri Feb 4 19:29:31 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Process.h:
- * ace/Process.cpp:
- The method command_line_argv () now returns a LPTSTR const *
- instead of a char * const *. This enables it to compile under
- UNICODE. Thanks to Steve Huston for pointing this out.
-
-Fri Feb 4 16:46:42 2000 Steve Huston <shuston@riverace.com>
-
- * tests/run_tests.sh: Added . to PATH to be sure that tests which
- fork/exec and rely on PATH to find the program (like Pipe_Test)
- run correctly.
-
-Fri Feb 4 16:31:22 2000 Steve Huston <shuston@riverace.com>
-
- * tests/Message_Queue_Notifications_Test.cpp: Use ACE_HAS_THREADS
- rather than ACE_MT to leave out the ACE_Barriers in Watermark_Test
- class when building without threads to avoid compile errors on
- Sun C++ 4.2.
-
-Fri Feb 4 15:11:53 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.00.h: New config file to handle building on
- HP-UX 11.00 with aCC, CC, or g++ (tested on 2.95.2). This file
- will be the new file for this platform when autoconf is not used.
- The other config-hpux-11* files will go away soon (maybe before
- ACE 5.1 is released).
-
-Fri Feb 4 15:56:31 2000 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_gcc.GNU: Added -fstrict-prototype
- for HP-UX 11 - it resolves a pthread_atfork dispute between two
- slightly different declarations in pthread.h and unistd.h.
-
-Thu Feb 3 11:38:15 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc_T.cpp (unbind): Removed the != 0 test since it was
- causing ambiguity problems for G++. Thanks to David Levine for
- reporting this.
-
- * ace/Malloc_T.cpp (unbind): Make sure to update the prev_ pointer
- so that we don't end up with an improperly linked list. Thanks
- to Sandro Doro <doro.s@flashnet.it> for reporting this.
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp: Only
- explicitly instantiate a template for ACE_Malloc_T if we've got
- ACE_HAS_POSITION_INDEPEDENT_MALLOC enabled. Thanks to David
- Levine for reporting this.
-
-Thu Feb 3 11:40:27 2000 Ossama Othman <ossama@uci.edu>
-
- * docs/ACE-subsets.html:
-
- Added some notes about building ACE subsets using MSVC++.
- Thanks to Paul von Behren <vonbepd@lmy-deja.com> for providing
- the tips.
-
-Thu Feb 3 11:38:15 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i,
- * ace/Synch.cpp: Added a cast of (short) to the use of USYNC_THREAD
- in order to prevent ambiguity problems for KAI C++. Thanks to
- Chad Elliott <elliott_c@ociweb.com> for reporting this. This
- fixes bugid 418.
-
- * ace/OS.cpp (thr_create): Added yet another cast to (long) for
- PRIORITY_MAX so that the types will be consistent for the
- ace_min() function. Thanks to Stephen Moon <smoon@oxmol.co.uk>
- for reporting this.
-
-Thu Feb 3 08:38:22 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/run_all_list.pm:
- Disable the $TAO_ROOT/orbsvcs/tests/Event/* tests under single
- threaded builds because the tests do indeed use threads.
-
-Wed Feb 2 23:35:19 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): Added a cast to (long) for
- PRIORITY_MAX so that the types will be consistent for the
- ace_min() function. Thanks to James Briggs
- <James.Briggs@dsto.defence.gov.au> for reporting this.
-
-Wed Feb 02 21:56:32 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: added -p option to check Purify
- output for anomaly and leak reports.
-
-Wed Feb 02 16:29:19 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (lwp_getparam): if the LWP is in the TS
- class, set the policy to ACE_SCHED_OTHER instead of
- ACE_SCHED_RR. That's the only thread scheduling policy
- that's supported in TS class on Solaris, where this function
- can be used. Thanks to Chris Gill for tracking this bug down.
-
-Wed Feb 02 12:46:53 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (open): Changed to determine whether files should be
- opened using FILE_SHARE_DELETE flag on Win32 at runtime. This
- allows ace libraries built for Win95/98 work correctly on NT.
- Thanks to Alex Chachanashvili <achacha@panix.com> for reporting
- this. [Bug 419]
-
- * ace/OS.{h,i,cpp}: Added a static data member of type
- OSVERSIONINFO on win32 and initialize it in
- ACE_OS_Object_Manager::init to cache the OS version
- informaiton.
-
-Wed Feb 2 11:08:33 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Thread.h: Clarified that cancel() is only portable
- on platforms that support cancellation. Thanks to Jason
- Czavislak <jczavislak@osprey.smcm.edu> for motivating this.
-
-Wed Feb 2 08:43:29 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/platform_linux_lxpthread.GNU:
- Add support for gprof, not very useful when compared to
- Quantify, but helps.
-
- * bin/auto_compile:
- Some tests print ERROR to indicate a failure.
-
-Tue Feb 1 12:59:28 2000 Ossama Othman <ossama@uci.edu>
-
- * ltcf-cxx.sh:
-
- Added HPUX shared library support for the aCC C++ compiler.
-
-Tue Feb 1 09:40:50 2000 Ossama Othman <ossama@uci.edu>
-
- * tests/Pipe_Test.cpp (main):
-
- Exit with error if child exited with error. Previously, the
- test returned successfully which was misleading.
-
- * ltcf-cxx.sh:
- * ltconfig:
- * ltmain.sh:
-
- Updated from latest libtool multi-language branch sources.
-
-Mon Jan 31 00:09:11 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Added the following changes for Borland C++Builder 4:
-
- ace/OS.cpp: Removed processor architecture "hack" since
- Borland C++Builder 4 supports the required structure definition,
- and earlier versions are no longer supported.
-
- ace/OS.h: Do not define the ACE_No_Heap_Check class when
- building with Borland C++Builder.
-
- ace/OS.h, OS.i, config-win32-borland.h: Updated compiler version
- numbers for macro definitions.
-
- ace/Thread_Manager.h: ACE_Thread_Descriptor_Base class needs to
- be exported when building a DLL.
-
- include/makeinclude/build_dll.bor, build_exe.bor, build_lib.bor:
- Added makefile target for "clean".
-
- include/makeinclude/compiler.bor: Added -D_DEBUG compiler flag
- when building debug configuration.
-
- include/makeinclude/outputdir.bor: Allow object directory to be
- overridden.
-
- Thanks to Christopher Kohlhoff <chris@kohlhoff.com> for
- contributing these.
-
- * ace/OS.i: Minor reformatting.
-
- * ace/SOCK_Dgram_Mcast: Updated the implementation comments related to
- the subscribe_ifs() return value of 1 to indicate why this is
- needed. Also, updated the documentation to indicate to check
- for -1 on failure. Thanks to Mark Boriac for motivating this.
-
- * etc/Svc_Conf_l.cpp.diff: The context diff was incorrectly
- written, therefore, the wrong ACE_YY_BREAK was being commented
- out. This is now fixed. Thanks to David Levine for reporting
- this.
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp:
- Added a typedef to handle cases where
- ACE_HAS_POSITION_INDEPENDENT_MALLOC is not set. Thanks to David
- Levine for reporting this.
-
- * examples/Service_Configurator/Misc/main.cpp (main): Changed
- int i to size_t i to avoid complaint about signed/unsigned
- mismatch. Thanks to David Levine for reporting this.
-
-Sun Jan 30 12:35:20 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Token.cpp (remove_entry): <tail_> should point to <prev>
- entry if we are removing the last entry in the queue. Thanks to
- Irfan for pointing this out.
-
-Sat Jan 29 12:56:16 2000 bala <bala@cs.wustl.edu>
-
- * ACE version 5.0.13 released.
-
-Fri Jan 28 20:14:20 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RB_Tree.h:
- * ace/RB_Tree.i:
- current_size() was not const.
-
-Fri Jan 28 13:57:37 2000 Fred Kuhns <fredk@cs.wustl.edu>
-
- * fixed QoS realted bugs in QoS_Session_Impl.cpp QoS_Session_Impl.h
- SOCK_Dgram_Mcast.cpp. Just added some error checking and
- check errno after call to join_leaf.
-
-Thu Jan 27 20:25:37 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Token.cpp (shared_acquire and renew): Must decrement
- <waiters_> in case of condition variable wait errors and
- timeouts.
-
- * ace/TP_Reactor.cpp (handle_events): If the user gives us a
- timeout, we must call <token_.acquire_read> with that timeout.
- Also, we must be more careful when dealing with the return value
- from <token_.acquire_read> to distinguish timeouts from errors.
-
-Thu Jan 27 16:52:40 2000 James Hu <jxh@entera.com>
-
- * ace/Message_Block.*:
- Added a ACE_Message_Block::reset() method that puts the
- rd_ptr() and wr_ptr() back to the beginning of the message
- block.
-
-Thu Jan 27 16:38:03 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Asynch_IO.h: Updated comments for ACE_Asynch_Read_Stream::read
- and ACE_Asynch_Write_Stream::write to state that the affected
- message block's wr_ptr and rd_ptr, respectively, are updated upon
- successful completion of the operation.
-
-Thu Jan 27 11:06:22 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Parse_Node.cpp: Strings duplicated using ACE::strnew() must
- be deleted using delete[] instead of delete. Thanks to
- Christopher Kohlhoff <chris@kohlhoff.com> for catching this.
-
-Thu Jan 27 09:11:52 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Message_Block.h: Tried to clarify the comments regarding the
- handling of the data block pointer in the <ACE_Data_Block>
- manipulating functions. Thanks to Defang Zhou <dzhou@zoo.uvm.edu>
- for pointing out the lack of documentation regarding this.
-
- * THANKS: Added Defang Zhou to the Hall of Fame.
-
-Thu Jan 27 00:15:08 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE.cpp (recv_n and send_n): There was a bug in these
- methods introduced by the double while loops and the use of a
- single break ;-) Changed break to a return. Thanks to the
- HPUX_aCC auto compile build for leading me to this bug!
-
-Wed Jan 26 21:49:16 2000 James Hu <jxh@entera.com>
-
- * ace/Message_Block.*:
- Added new methods mark(), capacity(), and ::total_capacity().
- mark() points at base_ + cur_size_, capacity_ returns
- max_size_, and total_capacity_ sums all capcity()'s for all
- MBs in the continuation. Changed space() to return
- mark() - wr_ptr().
-
-Wed Jan 26 21:03:43 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/High_Res_Timer.cpp: Thanks to Adamo, Vince <adamo@vignette.com>
- who noticed that global_scale_factor_ wasn't being set on ACE_WIN32
- when QueryPerformanceFrequency () worked. Now the code sets it
- to one when that happens.
-
-Wed Jan 26 17:04:24 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Proactor.h: Changed some comments to work better with the
- HTML man page generator.
-
-Tue Jan 25 16:23:52 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp: Updated
- this example to use the ACE_Malloc_T<> template with the
- ACE_PI_Control_Block so that we get true "position-independent"
- malloc behavior. Thanks to Rick Ohnemus
- <rjohnemus@systemware-inc.com> for reporting this.
-
-Tue Jan 25 14:05:42 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Connector.cpp (connect_i): In addition to checking <sh_copy>
- for a zero value, <*sh_copy> should also be checked for a zero
- value.
-
-Mon Jan 24 12:09:14 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Connector.cpp (connect_i):
- * ace/Strategies_T.cpp (ACE_Cached_Connect_Strategy::connect_svc_handler):
-
- Cannot use <sh> after the connector lock has been released since
- other threads now have access to <sh> and can reset it. We must
- use <sh_copy> instead (even when activating the newly connected
- svc_handler). This should help with TAO/tests/MT_Client
- crashes.
-
-Sun Jan 23 14:08:12 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h (setgid):
-
- Added prototype for ACE_OS::setgid() method.
-
- * ace/OS.i (setgid):
-
- Added wrapper for setgid() system call.
-
- (getgid):
-
- Removed duplicate getgid() wrapper, and fixed it so that it
- returns with ENOTSUP on Win32 platforms, just like the getuid()
- wrapper.
-
-Sat Jan 22 21:10:49 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in:
-
- Moved check for old GNU C++ to m4/compilers.m4.
-
- * m4/acinclude.m4 (ACE_CONVERT_WARNINGS_TO_ERRORS):
-
- This macro depends on the compiler settings performed by the
- ACE_SET_COMPILER_FLAGS macro, so added an
- AC_REQUIRE([ACE_SET_COMPILER_FLAGS]).
-
- * m4/compiler.m4 (ACE_SET_COMPILER_FLAGS):
-
- Moved check for old GNU C++ from configure.in to here.
-
-Sat Jan 22 15:27:39 2000 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp: Updated this file to use the new
- "warning-free" generated file.
-
- * etc/Svc_Conf_l.cpp.diff: Commented out a YY_BREAK macro that was
- causing an "unreached statement" warning on some C++ compilers.
- Thanks to David Levine for reporting this.
-
- * tests/Thread_Pool_Test.cpp: In the method
- test_empty_message_shutdown() we don't need to allocate a new
- message block when sending a "null" message. This removes
- another memory leak. Thanks to David Levine for reporting this.
-
-Sat Jan 21 12:30:33 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/ACE.cpp:
- * ace/Service_Config.cpp:
- * ace/Template_Instantiations.cpp:
-
- Moved ACE_LOCAL_MEMORY_POOL/ACE_Null_Mutex related template
- instantions to ACE.cpp. This fixes a single threaded build
- problem.
-
-Thu Jan 20 09:15:50 2000 Ossama Othman <ossama@uci.edu>
-
- * bin/bootstrap:
-
- Create NEWS file before automake is run. Automake complains
- about missing NEWS file.
-
-Thu Jan 20 09:03:37 2000 Ossama Othman <ossama@uci.edu>
-
- * NEWS:
-
- This file is currently generated during the autoconf support
- bootstrapping process. As such, it shouldn't be placed under
- version control. Removed this file from the repository.
-
- * configure.in:
-
- Added thread related preprocessor flags to CPPFLAGS prior to
- running the tests that check for the pthread_cancel() strtok_r()
- prototypes in case such flags are needed on some platforms.
-
- If the configure script determines that no usable thread library
- was found it then removes any thread related preprocessor flags
- from the CPPFLAGS preprocessor flags variable.
-
- * ace/README:
-
- Added description of ACE_HAS_ALT_CUSERID.
-
- * m4/threads.m4 (ACE_CHECK_THREADS):
-
- Remove any definitions of _REENTRANT and _THREAD_SAFE from the
- preprocessor flags prior to checking if the compiler defines
- either one, and prior to searching for compiler thread flags by
- using the sed stream editor. This is done instead of using the
- "-U" preproccesor flag since using that flag may undefine the
- same preprocessor macros potentially defined by the thread flag
- being tested.
-
- Added "kthread" to the list of thread flags to be searched.
- FreeBSD uses "-kthread" to enable support for kernel threads.
-
- (ACE_CHECK_THREAD_FLAGS):
-
- Relaxed criteria used to determine if compiler provides thread
- support by removing requirement that either _REENTRANT or
- _THREAD_SAFE should be defined.
-
- (ACE_CHECK_THREAD_CPPFLAGS):
-
- Added this test. It checks if the compiler defines thread
- related preprocessor flags, such as _REENTRANT and
- _THREAD_SAFE. The test is a compile-time test that is performed
- after the thread flag search test so that the thread flag (if
- any) is used during this test in case it defines any
- preprocessor flags.
-
-Wed Jan 19 23:21:07 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Thread_Pool_Test.cpp (test_queue_deactivation_shutdown): Make
- sure to release the message block once we've decided to shutdown
- the message queue to avoid a memory leak. Thanks to David
- Levine for reporting this.
-
-Tue Jan 19 13:33:08 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Addr.cpp, ATM_QoS.cpp:
- Fixing format characters for ACE_Log_Msg::log() method.
-
-Tue Jan 18 20:56:58 2000 Ossama Othman <ossama@uci.edu>
-
- * THANKS:
-
- Added Daniel Lang <dl@leo.org> to the list of contributors.
-
- * acconfig.h (ACE_HAS_ALT_CUSERID):
-
- Added this ACE macro to the list of macros.
-
- * configure.in:
-
- Thanks to Daniel Lang <dl@leo.org> for motivating the following
- ACE+autoconf related FreeBSD 3.4 fixes.
-
- (ACE_LACKS_SEMBUF_T):
-
- Improved the test for this macro by including <sys/types.h> and
- <sys/ipc.h> prior to <sys/sem.h>. It incorrectly failed on
- FreeBSD. Presumably this change should correct the problem.
-
- (ACE_HAS_ALT_CUSERID):
-
- Added test for this macro. It should get defined for platforms
- that lack support for or have deprecated support for the
- cuserid() function, and have POSIX password file functions.
-
- (ACE_LACKS_PWD_FUNCTIONS):
-
- Added getpwuid() to list of functions necessary for
- ACE_LACKS_PWD_FUNCTIONS to *not* be defined.
-
- (ACE_LACKS_PTHREAD_CANCEL):
-
- Added check for the pthread_cancel() prototype. If it doesn't
- exist then don't use pthread_cancel(), i.e. define
- ACE_LACKS_PTHREAD_CANCEL. It it probably a bad idea to create a
- prototype for pthread_cancel in ACE, so just don't use
- pthread_cancel(). FreeBSD 3.4 appears to have the
- pthread_cancel() function but no prototype for it.
-
- * ace/OS.i (cuserid):
-
- Changed Linux implementation so that it can be used for other
- platforms by simply defining ACE_HAS_ALT_CUSERID.
-
- Added preprocessor error if ACE_HAS_ALT_CUSERID and
- ACE_LACKS_PWD_FUNCTIONS are both defined. ACE's alternate
- cuserid() implementation requires that password file related
- functions exist.
-
- * ace/config-linux-common.h:
-
- Define ACE_HAS_ALT_CUSERID on glibc 2.1.x since the use of the
- system cuserid() is discouraged.
-
- * m4/acinclude.m4:
-
- Cosmetic updates.
-
-Tue Jan 18 22:53:18 2000 Toshio HORI <toshi@etl.go.jp>
-
- * include/makeinclude/platform_vxworks_5.x_g++.GNU:
- added support for compiling ACE for VxWorks/SPARC target.
-
-Tue Jan 18 15:55:54 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/ACE-netsvcs.html: Fixed a typo. Thanks to
- Brian Jones <bjones@edgemail.com> for reporting this.
-
- * ACE-INSTALL.html: Updated the text from
- Dr. Toshio HORI <toshi@etl.go.jp>.
-
-Tue Jan 18 15:37:25 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Connector.{cpp,h,i}, ATM_QoS.{cpp,h}, ATM_Stream.{cpp,i}:
- Adding changes to support FORE's latest WinSock2 ATM support.
-
-Tue Jan 18 13:44:34 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Thread_Pool_Test.cpp: Replaced int with size_t to
- prevent compiler warnings comparing signed and unsigned
- quantities.
-
-Tue Jan 18 09:13:43 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: ACE works just fine on RedHat 5.1 and
- later, not just 5.1 through 6.1. Thanks to Raj Narayanaswamy
- <rnarayanaswamy@hologic.com> for asking about this.
-
-Mon Jan 17 18:03:17 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager.cpp: Under WIN32, the ACE_Process_Manager
- registered itself as an event handler with ACE_Reactor, but did
- not properly unregister itself when it closed. For error to be
- noticed, you must instantiate ACE_Process_Manager with an
- ACE_Reactor. ACE_Process_Manager should *not* be run as a
- singleton. It must be instantiated such that it will be
- destroyed *before* the ACE_Reactor is destroyed.
-
- When you call ACE_Process_Manager::spawn, the newly created
- process is added to the ACE_Process_Manager's process table and
- (under WIN32) the ACE_Process_Manager is registered as an event
- handler for the new process (ace/Process_Manager.cpp, line 523)
- using this call:
-
- r->register_handler (this, proc->gethandle ());
-
- This will happen for every process spawned. Thus,
- ACE_Process_Manager will potentially be associated with more
- than one WIN32 process handle.
-
- When the ACE_Process_Manager was destroyed, the dtor calls
- ACE_Process_Manager::close which (for WIN32) attempts to remove
- ACE_Process_Manager as an Event_Handler from the ACE_Reactor
- using the following code (ace/Process_Manager.cpp, line 256)
-
- this->reactor ()->remove_handler (this, 0);
-
- This version of ACE_Reactor::remove_handler is:
-
- int ACE_Reactor::remove_handler
- (
- ACE_Event_Handler *event_handler,
- ACE_Reactor_Mask mask
- );
-
- It calls event_handler->get_handle() to obtain the handle to
- which 'event_handler' is associated. The problem is that
- ACE_Process_Manager::get_handle returns ACE_INVALID_HANDLE, so
- the ACE_Reactor never properly unregistered the
- ACE_Process_Manager. This is now fixed and should work correctly
- on Win32 and other platforms.
-
- Thanks to Greg Gallant <gcg@intercap.com> for tracking all this
- down and providing the fix.
-
- * ace/Process_Manager.cpp (open): Wrapped the setpgid() call with a
- #if !defined (ACE_LACKS_SETPGID) to remove spurious run-time
- warnings on platforms that don't support setpgid(). Thanks to
- Craig Perras <cperras@watchguard.com> for reporting this.
-
- * ace/NT_Service: Reformatted this header to conform to the ACE
- programming guidelines. Also, replaced
-
- #if defined (ACE_HAS_WINNT4) && ACE_HAS_WINNT4 != 0)
-
- with
-
- #if defined (ACE_WIN32)
-
- This change allows a single dll to be built that supports both
- NT and Win9x. The app can use GetVersionEx() to check whether
- the platform is NT or not dynamically, or it can just call the
- various service functions, which will return a function not
- supported error. Thanks to Craig Perras
- <cperras@watchguard.com> for reporting this.
-
- * tests/Thread_Pool_Test.cpp: Enhanced this test to illustrate how
- to shut down Tasks using either the "empty message" strategy or
- the "queue deactivation" strategy.
-
- * ace/Message_Queue.h: Updated the documentation of the enqueue*()
- and dequeue*() methods to clarify which errno values are set
- when the calls return -1.
-
- * examples/Threads/thread_pool.cpp: Updated this example to
- remove the use of the now-defunct "wait_for_threads_to_shutdown"
- feature of ACE_Task.
-
- * ace/Task_T: Removed the recent feature added on
-
- Sat Jan 8 09:44:51 2000 Douglas C. Schmidt
- <schmidt@tango.cs.wustl.edu>
-
- that allowed to an ACE_Task's destructor to wait for threads in
- a task to exit. It turns out this is practically impossible to
- use correctly because of the way that destructors are destroyed
- from the "top down". However, it's trivial to get the same
- behavior by simply calling the Tasks's wait() method whenever
- you want to implement barrier synchronization on a Task's thread
- exits.
-
- * tests/Thread_Pool_Test.cpp: Updated this test to illustrate
- various strategies to wait for threads to exit. Thanks to Mark
- C. Barnes <marcus@muse3d.com> for motivating this example.
-
-Mon Jan 17 14:20:17 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i: Changed the signature of isatty to (int) and added a
- (ACE_HANDLE) version for Win32.
-
- * ace/Makefile:
- * ace/Svc_Conf_l.cpp: Removed the explicit casting of fileno()
- from int to ACE_HANDLE.
-
- * ace/config-WinCE.h: Added ACE_LACKS_ISATTY.
-
- * ace/OS.i (isatty): Removed WinCE specific section.
-
-Mon Jan 17 00:53:37 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Added a cast to (long) for ACE_THR_PRI_FIFO_MIN,
- ACE_THR_PRI_FIFO_MAX ACE_THR_PRI_RR_MIN, ACE_THR_PRI_RR_MAX,
- ACE_THR_PRI_OTHER_MIN, ACE_THR_PRI_OTHER_MAX since these are all
- used as priority values, which is defined as a long. This
- should solve a problem with the ACE_MAX()/ACE_MIN() templates on
- Linux with G++. Thanks to Bala for reporting this problem.
-
- * netsvcs/lib/Logging_Strategy: Added a new '-w' option that
- instructs the logging strategy to "wipeout", rather than append
- to, an existing logfile. Thanks to David X. Callaway
- <david.x.callaway@intel.com> for reporting this.
-
-Sun Jan 16 21:32:18 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Moved the #defines for ACE_MIN and ACE_MAX into the
- new $ACE_ROOT/Min_Max.h file, along with their template function
- definitions.
-
- * ace: Added a new file called Min_Max.h that uses templates, rather
- than macros, to implement the ACE_MIN and ACE_MAX macros. This
- is a "Good Thing" because the use of macros has undesirable
- side-effects due to the "call-by-name" semantics of macro
- paramter expansion... If for some reason your compiler can't
- handle this, please #define ACE_LACKS_MIN_MAX_TEMPLATES in your
- config.h file. Thanks to Derek Dominish
- <Derek.Dominish@Australia.Boeing.com> for contributing this.
-
-Sun Jan 16 16:43:10 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/config.h.in:
-
- Removed this file from the repository. It is automatically
- generated when autoconf support is bootstrapped into a
- workspace.
-
-Sun Jan 16 16:13:00 2000 Ossama Othman <ossama@uci.edu>
-
- * acconfig.h:
- * configure.in:
-
- Added support/tests for:
-
- ACE_LACKS_SETREGID
- ACE_LACKS_SETREUID
- ACE_LACKS_SETREGID_PROTO
- ACE_LACKS_SETREUID_PROTO
-
- * ace/ACE.cpp:
- * ace/Configuration.cpp:
-
- Moved template instantiations related to ACE_LOCAL_MEMORY_POOL
- to ACE.cpp, and fixed them so that they work in the single
- threaded case. The idea is to place this set of template
- instantiations in a "common" area, since TAO also needs these
- templates instantations.
-
-Sun Jan 16 10:49:26 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Makefile (Svc_Conf_l.cpp): Fixed the "isatty()" sed hack to
- use fileno and then add a cast to (ACE_HANDLE) since this is
- what the ACE_OS::isatty() wrapper expects Thanks to Nanbor and
- Bala for reporting this.
-
- * etc/Svc_Conf_l.cpp.diff: Added a #define for ACE_YY_NO_UNPUT
- to supress an unnecessary warning.
-
- * tests/ARGV_Test.cpp (main): Fixed several warnings.
-
- * ace/Process.i: Rearranged the order of the process_name() methods
- so they are defined before being used/inlined.
-
-Sat Jan 15 19:59:00 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Reran flex on Svc_Conf.y to generate the Svc_Conf_l.cpp file
- with Darrell's fixes.
-
-Sat Jan 15 15:49:28 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-win32-common.h:
- Readded the ACE_LACKS_FCNTL macro, since it seems to have been
- missed in the latest changes to the config-win32 files.
-
- * ace/Makefile:
- With Doug's help, added a couple of new commands to the generation
- of the Svc_Conf_l.cpp, because the generated files were causing
- a warning on NT.
-
-Sat Jan 15 00:41:12 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ARGV: Added a new add() method that adds an entire argv
- array in one fell swoop.
-
- * netsvcs/clients/Naming/Client/main.cpp (main): Replaced
- the ad hoc use of argc/argv processing with the ACE_ARGV
- approach.
-
- * examples/Service_Configurator/Misc/main.cpp (main): Replaced
- the ad hoc use of argc/argv processing with the ACE_ARGV
- approach. Note that this required the enhancement shown in the
- following bullet.
-
- * ace/Svc_Conf.l: Updated the Service Configurator lexer so that
- it will also accept strings that are delimited by single quotes,
- as well as double quotes. This helps to simplify the use of
- ACE_ARGV to create svc.conf entries "on-the-fly".
-
- * tests: Added a new test ARGV_Test.cpp that illustrates how to
- use advanced features of <ACE_ARGV>. Thanks to Suresh Kannan
- <kannan@uav.ae.gatech.edu> for contributing this.
-
- * ace/config-win32-common.h: Added
-
- #define ACE_LACKS_SETREGID
- #define ACE_LACKS_SETREUID
-
- Thanks to Christopher Kohlhoff <chris@kohlhoff.com> for
- reporting this.
-
- * ace/Task.h: Added a comment to the suspend() and resume() methods
- encouraging developers not to use these methods unless
- absolutely necessary. Thanks to Mark C. Barnes <marcus@muse3d.com>
- for motivating this.
-
- * ace: Reorganized the config-win32*.h files
- to insulate the different compiler configurations from each
- other. The changes are as follows:
-
- * Concatenated config-win32.h and config-win32-common.h to form
- the new config-win32-common.h.
-
- * Moved MSVC-specific language defines from config-win32-common.h
- into config-win32-msvc.h
-
- * Updated the other compilers' files to add required language
- defines originally in config-win32-common.h.
-
- Thanks to Christopher Kohlhoff <chris@kohlhoff.com> for
- contributing this.
-
-Fri Jan 14 15:42:28 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Select_Reactor_T.cpp (work_pending): Made the code more
- general such that any thread can call it, i.e., it is not
- limited to the owner thread. This change alleviated the need
- for the specialization in TP_Reactor.
-
-Fri Jan 14 01:48:26 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process: Moved the command_line_argv() from the
- non-Win32 part of the ACE_Process class to the generic
- part since it shouldn't depend on the platform. Thanks
- to Michael Kircher for reporting this.
-
- * ace/Process: Consider a process that spawns a number of
- processes using a same executable name but with different
- arguments <say svc.conf file..>. Depending on the arguments,
- each process does different things. Currently
- <ACE_Process::spawn> calls <execvp> with argv[0] as the
- exeutable name. Therefore, if you do a <ps> command now, all
- these processes will look the same, since they are all launched
- with the same command.
-
- But for <execvp> call, you could actually give a different
- executable name and a different argv[0]. This helps us to have
- the name for a process to be different from the executable
- name. In this case, <ps> command will show the processes with
- different argv[0] names.
-
- Therefore, we added a method called <process_name> to
- ACE_Process_Options to specify the executable name. If you do
- not call <process_name> method, argv[0] is taken as the
- executable name. Thanks to Alex Arulanthu <alex@sylantro.com>
- for these enhancements.
-
-Thu Jan 13 20:11:55 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (work_pending): This version is similar to
- the select reactor except there is no owner check.
-
- * ace/Select_Reactor_T.cpp (work_pending): The handle set must be
- copied before calling select().
-
-Thu Jan 13 16:06:19 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_compile:
- * bin/run_all.pl:
- * bin/run_all_list.pm: Added an AMI test case for testing in the
- nightly builds.
-
-Wed Jan 12 23:46:36 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.h: Updated the
- ACE_Service_Config::close_singletons() method documentation to
- reflect the fact that it no longer deletes the Allocator, which
- is deleted by the ACE_Object_Manager now. Thanks to Craig
- Perras <cperras@watchguard.com> for reporting this.
-
-Wed Jan 12 09:49:57 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: don't create diffs if not installing
- the kit.
-
-Wed Jan 12 07:22:42 2000 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile (CONTROLLED_FILES): removed
- man/man3/Makefile.am and man/html/Makefile.am. There
- addition in
- Tue Jan 4 12:58:54 2000 Ossama Othman <othman@cs.wustl.edu>
- caused creation of .zip files to break. zip doesn't like
- multiple occurrences of a file, apparently. [Bug 408]
-
-Tue Jan 11 21:59:34 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release (create_kit): disable creation of
- md5 files, because it didn't work: just empty files
- were created. I think that it was looking in the wrong
- directory.
-
-Tue Jan 11 21:26:14 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release (check_workspace): removed the bootstrap
- invocation. That is done in create_kit (), and should only
- be done once. (create_kit): set umask to 2, so that the
- kits will have group write permission.
-
-Tue Jan 11 17:39:10 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.h: Updated the ACE_Service_Config::close()
- method documentation to reflect the fact that it no longer
- closes the singletons (these are closed by the
- ACE_Object_Manager now). Thanks to Craig Perras
- <cperras@watchguard.com> for reporting this.
-
-Tue Jan 11 17:22:21 2000 bala <bala@cs.wustl.edu>
-
- * ACE version 5.0.12 released.
-
-Mon Jan 10 12:50:10 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Select_Reactor_T.h (class ACE_Select_Reactor_T): Reformatted the
- documentation a bit...
-
-Mon Jan 10 15:37:22 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Pair_T: Added const accessors to the pair class. Also,
- changed the Reference_Pair accessors to be const. Thanks to
- Serge Kolgan <skolgan@cisco.com> for reporting this.
-
-Sun Jan 9 00:25:58 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process.i (setreugid): Added an ACE_UNUSED_ARG for the
- ACE_LACKS_PWD_FUNCTIONS case. Thanks to David for catching
- this!
-
- * ace/Process.i (setreugid): Guard against the case where
- ACE_LACKS_PWD_FUNCTIONS. Thanks to David Levine for
- reporting this problem with VxWorks.
-
- * ace/Pair_T.h: Reformatted to conform to the ACE style.
-
-Sat Jan 8 09:44:51 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Threads/thread_pool.cpp: Revised the example to
- illustrate the new "wait_for_threads_in_destructor" feature of
- ACE_Task.
-
- * examples/Threads/task_four.cpp: Reformatted the code.
-
- * ace/Task_T: Added a new flag to the constructor that enables
- applications to request that an ACE_Task will wait in its
- destructor for any and all threads in the task to exit before
- returning. Thanks to Valery Arkhangorodsky
- <valerya@servicesoft.com> for suggesting this.
-
- * ace/OS.i: Needed to add an extern "C" {} block around the
- setregid() and setreuid() functions. Thanks to David Levine
- for reporting this.
-
-Fri Jan 7 20:01:48 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i,
- ace/config-sunos5.5.h: Some platforms seem to lack function
- prototypes for setreuid() and setregid(), even though they are
- in the library. Therefore, I've added
-
- #define ACE_LACKS_SETREGID_PROTOTYPE
-
- and
-
- #define ACE_LACKS_SETREUID_PROTOTYPE
-
- macros to handle this case.
-
- * ace/Process: Added support to allow UNIX applications to
- automagically set the real and effective user/group ids when
- ACE_Process::spawn() is called. Thanks to Craig Perras
- <cperras@watchguard.com> for contributing this.
-
- * ace: Updated the following files to include
-
- #define ACE_LACKS_SETREGID
- #define ACE_LACKS_SETREUID
-
- config-chorus.h
- config-cray.h:168
- config-cygwin32-common.h
- config-freebsd-pthread.h
- config-freebsd.h:33
- config-hpux-9.x.h
- config-lynxos.h
- config-netbsd.h
- config-sunos4-g++.h
- config-sunos4-sun4.1.4.h
- config-win32-common.h
-
- Ideally, Ossama's autoconf stuff will auto-detect anything that
- I'm missing.
-
- * ace/OS: Added wrapper facade methods for setregid() and
- setregid().
-
-Fri Jan 7 16:05:32 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in:
-
- Only define ACE_HAS_XT if both the Xt headers and libraries are
- available. Previously, the existence of the Xt libraries was
- not part of the XtReactor enable criterion.
-
- * m4/compiler.m4 (ACE_SET_COMPILER_FLAGS):
-
- Added C++ preprocessor flag documentation and trivial support.
-
- Many AIX related compiler flag updates.
-
- * m4/platform.m4 (ACE_SET_PLATFORM_MACROS):
-
- Moved/consolidated platform-specific settings from configure.in
- to here.
-
- Improved AIX support (updates, fixes, etc).
-
-Fri Jan 7 10:48:55 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/run_all_list.pm: Added missing commas.
-
-Thu Jan 06 22:26:42 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (fcntl): There was a special fcntl() for Win32.
- Removed that special version and added ACE_LACKS_FCNTL to
- config-win32-common.h.
-
- * ace/ACE.cpp: Removed the non-"_n" versions of send/recv
- functions that deal with message blocks. Since we deal with
- continuation chains and linked messages, we are essentially
- dealing with "_n" style functions. Also, improved the error
- handling in case of timeouts.
-
- * ace/Strategies_T.cpp
- (ACE_Cached_Connect_Strategy::connect_svc_handler): If an error
- occurs while activating the handler, the <activate_svc_handler>
- method will close the handler. We must set the handler to zero
- to make sure that the higher layer doesn't try to close the
- handler again!
-
-Thu Jan 6 15:00:56 2000 Ossama Othman <othman@cs.wustl.edu>
-
- * aclocal.m4:
- * configure:
- * All Makefile.in:
-
- Removed these files. They are automatically generated, so they
- should not be in the repository. Thanks to David for pointing
- out that my ACE+autoconf updates caused CVS conflicts when
- updating existing workspaces.
-
-Wed Jan 5 10:09:35 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Dirent.h: Added an ACE_Export on the ACE_Dirent class. I'm
- surprised this hasn't been a problem before... Thanks to
- Dominic Williams <dom@connected-place.co.uk> for indirectly
- motivating this change.
-
- * ace/SString.h: Updated the documentation for the various string
- wrapper facades to clarify that they don't perform any locking.
- Thanks to Jerry Jiang <javalist@21cn.com> for motivating this.
-
-Wed Jan 05 09:53:04 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/SOCK_Stream.[hi] (sendv_n): added const to iov[]
- argument declaration. Thanks to Rob Ruff <rruff@scires.com>
- for reporting that TAO's AV service failed to compile
- with Sun CC 5.0 because of this.
-
-Tue Jan 4 15:06:41 2000 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
-
- Added note that asks user to use stock ACE build procedure
- detailed in ACE-INSTALL.html in the event that the configure
- script fails.
-
-Tue Jan 4 14:40:17 2000 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.h:
-
- AIX defines "off64_t" as its 64 bit offset type. Typedef
- ACE_LOFF_T as that type if ACE_HAS_LLSEEK or ACE_HAS_LSEEK64 is
- defined. This should correct a problem that occurred during an
- AIX configure script run. Thanks to Mike Winter for pointing
- this out.
-
-Tue Jan 4 14:09:51 2000 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
-
- Fixed test that checks if sched.h is needed for thread
- scheduling definitions. This should correct problems discovered
- on RedHat 6.1 installations. Thanks to
-
- Improved sys_nerr and sys_errlist[] tests by checking for
- external global variables in libraries. This should correct a
- problem discovered in an AIX configure script run. Thanks to
- Mike Winter for providing feedback.
-
-Tue Jan 4 13:23:26 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config: Updated the documentation for the various
- open() methods and the constructors. Thanks to Christopher
- Kohlhoff <chris@kohlhoff.com> for reporting this.
-
-Tue Jan 4 12:58:54 2000 Ossama Othman <othman@cs.wustl.edu>
-
- * Makefile (CONTROLLED_FILES):
-
- man/man3/Makefile.am and man/html/Makefile.am previously weren't
- being labelled. Thanks to David for pointing this out.
-
-Mon Jan 3 21:01:53 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests: Updated the
- README file so it'll point to the right documentation! Thanks
- to John Buttitto for reporting this.
-
-Tue Jan 04 07:26:24 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 5.0.11 released.
-
-Mon Jan 03 07:34:38 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (gmtime_r): return res instead of *res, because
- the function returns a struct tm *, not a struct tm.
-
-Sun Jan 2 11:02:54 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (gmtime_r): We should return *res rather than
- *result to make the behavior correct for Win32. Thanks to
- J. Afshar <jafshar@vignette.com> for reporting this.
-
-Sun Jan 02 00:50:00 2000 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/OS.{cpp, h, i}
- ace/Signal.cpp
- ace/Synch.cpp
- ace/config-psos-diab-ppc.h: Added support for native mutexs,
- condition variables, and thread-specific storage in pSOS. Native
- pSOS mutexes, where available, support several cool features,
- including lock recursion and priority inheritance protocol and
- priority ceiling protocol support.
-
-Sat Jan 01 09:16:39 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ChangeLog,Makefile: moved to ChangeLog-99b.
diff --git a/ChangeLogs/ChangeLog-00b b/ChangeLogs/ChangeLog-00b
deleted file mode 100644
index 333c85f7a1e..00000000000
--- a/ChangeLogs/ChangeLog-00b
+++ /dev/null
@@ -1,3845 +0,0 @@
-Sun Dec 31 14:12:08 2000 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added TAO's "ForwardRequest" PortableInterceptor test to the
- list of tests to run.
-
-Sun Dec 31 13:59:02 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Refcounted_Auto_Ptr_Test.cpp: on DIGITAL_UNIX
- only, added a call to ACE_OS::exit () at the end of
- the test so that it will terminate. [Bug 758]
-
-Sun Dec 31 10:28:43 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU (LIBS):
- wrapped /usr/lib/cmplrs/cxx/libcxxstd.a with
- $(wildcard), so that is ignored on systems on which
- it doesn't exist, such as Tru64 5.1.
-
-Sun Dec 31 09:23:09 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_tru64_cxx.GNU: added
- support for Tru64 5.1 (DIGITAL_UNIX 0x510).
-
- * ace/config-tru64.h: added ACE_LACKS_CUSERID with
- DIGITAL_UNIX >= 0x510, because cuserid () is a macro
- in Tru64 5.1.
-
- Thanks to Carlos for tracking down this source of compilation
- failure.
-
-Sat Dec 30 16:21:49 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.h:
- * ace/Map_T.i: Fixed errors in g++ that were introduced while
- applying the patches.
-
-Sat Dec 30 15:10:00 2000 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.{cpp, h, i}:
- tests/RB_Tree_Test.cpp: Fixed a bug in RB_delete_fixup that
- occurs when the pointer to be fixed up is zero - solution is to
- pass in a pointer to its parent, and maintain the parent pointer
- and fixup pointer in tandem during the fixup function. Also
- added a few functions to test the red-black invariant(s) at each
- node of the tree, and added an invariant test call after each
- bind and unbind in a new stress test in RB_Tree_Test.cpp.
-
- Thanks to Klaus H. Wolf <hw@cyland.com> for pointing out the
- problem and for contributing the stress test (which in a
- slightly modified form is now part of the RB_Tree_Test.cpp code)
- that reproduced the problem.
-
-Sat Dec 30 11:12:08 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.h:
- * ace/Map_T.i:
- * ace/Message_Block_T.cpp: Added patches provided by J. Russell
- Noseworthy <rnosewor@objectsciences.com> for SPRO 5.1. The patch
- to config-sunos-5.5.h has not been applied as it breaks builds
- on SunCC 5.0.
-
-Fri Dec 29 17:08:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/auto_compile:
-
- Added a -sendreport option to enable the sending of email at all.
- Now by default it will not.
-
-Fri Dec 29 16:53:22 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp (main),
- * performance-tests/TTCP/C/new-ttcp.cpp (main),
- * tests/Conn_Test.cpp: Incorrect use of %r, which caused
- problems... Thanks to Mike Curtis <mccurry@my-deja.com> for
- pointing this out.
-
-Fri Dec 29 14:21:01 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_SAP.cpp: Fixed incorrect ACE_RCSID identifier. Thanks
- to Jerry Odenwelder <jerryo@atl.fundtech.com> for noticing this.
-
-Thu Dec 28 16:02:51 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/sandbox.cpp:
- This program executes a child process (and its children), in a
- new session and process group. If the process tree does not
- finish before a given timeout (the first argument) the whole
- tree is terminated.
- The program is useful for test scripts and programs,
- occasionally they hang the whole auto build.
-
- * bin/auto_compile:
- Add new options '-sandbox' and '-sandbox_timeout' to support the
- sandbox program.
-
-Thu Dec 28 16:10:59 2000 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * performance-tests/UDP/udp_test.cpp:
- * performance-tests/Server_Concurrency/Latency_Stats.h:
- * performance-tests/Server_Concurrency/Queue_Based_Workers/workers.cpp
- * performance-tests/Server_Concurrency/Leader_Follower/leader_follower.cpp
- Fixed compile problems under VxWorks when handling
- 64 bit integers. Basically, truncated the 64 bit integers
- to 32 bit integers for operations not supported by
- ACE_U_LongLong.
-
-Wed Dec 27 15:32:43 2000 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * examples/Reactor/WFMO_Reactor/test_network_events.cpp:
- Added missing ;
-
-Wed Dec 27 11:11:02 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * examples/Map_Manager/test_hash_map_manager.cpp:
- * examples/Misc/test_trace.cpp:
- * performance-tests/Misc/test_singleton.h:
- * performance-tests/Misc/test_singleton.cpp:
- Fixed problems in single threaded builds, basically I use the
- ACE_SYNCH_* macros instead of using the class directly.
-
-Tue Dec 26 18:53:06 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * performance-tests/Server_Concurrency/Makefile:
- The tests make no sense if threads are disabled, so they are not
- compiled under that configuration.
-
-Tue Dec 26 18:31:08 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * examples/Naming/test_open.cpp:
- Fixed compilation problems under Sun/CC 4.2, the Log_Msg.h file
- was not #included
-
-Tue Dec 26 14:45:50 2000 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added TAO's "Dynamic" and "IORInterceptor" PortableInterceptor
- tests to the list of tests to run.
-
-Tue Dec 26 11:49:49 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/IPC_SAP/SPIPE_SAP/server.cpp: Fixed a statement not
- reachable warning on KCC.
-
-Sat Dec 23 18:11:02 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SString.cpp: Enhanced the implementation so that it works
- correctly when binary data (i.e., data that may contain NUL
- characters) is stored in a string. Thanks to Michael Lindner
- <mikel@att.net> for reporting this.
-
-Fri Dec 22 15:18:49 2000 Steve Huston <shuston@riverace.com>
-
- * ace/ace-dll.icc: Added Basic_Stats.{h cpp} to build clean.
-
-Fri Dec 22 14:00:41 2000 Steve Huston <shuston@riverace.com>
-
- * ace/config-all.h: On HP-UX 11, when figuring ACE_bad_alloc exception
- class, account for older compilers that don't define __HP_aCC.
-
-Fri Dec 22 12:56:06 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE.cpp (process_active): Call CloseHandle before return to
- avoid handle leaks on Win32. Thanks to Arnaud Compan
- <compan@ipanematech.com> for the fix.
-
-Fri Dec 22 13:04:58 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/run_all_list.pm: Added the bidirectional test to the list.
-
-Fri Dec 22 12:43:54 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Fixed a typo.
-
-Fri Dec 22 09:12:37 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: ACE_DEFAULT_FILE_PERMS - added FILE_SHARE_DELETE to the
- bits if building on Win NT4 or greater. Thanks to Nanbor Wang
- for calling attention to this.
-
-Fri Dec 22 08:06:10 2000 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Refcounted_Auto_Ptr_Test.cpp: Fixed the problem with an
- undefined ACE_Auto_Basic_Ptr<Scheduler> by adding an explicit
- template instantiation. Thanks to Frank A. Hunleth
- <fhunleth@cs.wustl.edu> for reporting this.
-
-Thu Dec 21 18:12:38 2000 Steve Huston <shuston@riverace.com>
-
- * ace/ace-dll.icc, ace-lib.icc: Added OS_Errno.(cpp h) to the files
- list. Thanks to Jerry Odenwelder for pointing out the need for these.
-
-Thu Dec 21 16:45:28 2000 Steve Huston <shuston@riverace.com>
-
- * tests/Capabilities_Test.cpp: Added missing \n to a ACE_ERROR
- statement, and added ACE_DEFAULT_FILE_PERMS to the ACE_OS::open
- call to create the test file. It used to be 0600, but that was
- removed to satisfy Win32 which now pays attention to that arg.
-
-Thu Dec 21 05:50:51 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Timer_Wheel_T.cpp (expire): Fixed a mistake where
- next_earliest_time should have been next_earliest. Thanks to
- Keith Brown <kalbrown@ix.netcom.com> for reporting this.
-
- * examples/IPC_SAP/SOCK_SAP/Makefile.bor: Reenable CPP-inserver-fancy.cpp
- now that it compiles! Thanks to Johnny Willemsen
- <johnny.willemsen@meco.nl> for confirming this.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp (handle_events): Added
- casts for (SOCKET) when using FD_SET to work around problems
- with Borland. Thanks to Johnny Willemsen
- <johnny.willemsen@meco.nl> for reporting this.
-
- * ace/Message_Block.h (ACE_Dynamic_Message_Strategy): Fixed a bunch
- of non-const accessor methods to be const. Thanks to Johnny
- Willemsen <johnny.willemsen@meco.nl> for reporting this.
-
- * examples/Naming/Makefile (BIN2): Added the test_open.cpp file
- to the Makefile. Thanks to Johnny Willemsen
- <johnny.willemsen@meco.nl> for reporting this.
-
- * docs/tutorials/016/page02.html: Clarify that signal() or
- broadcast() don't release the mutex. Thanks to Mike Curtis
- <mccurry@my-deja.com> for pointing this out.
-
-Wed Dec 20 19:44:16 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * examples/Reactor/WFMO_Reactor/test_abandoned.cpp,
- * examples/Reactor/WFMO_Reactor/test_directory_changes.cpp,
- * examples/Reactor/WFMO_Reactor/test_network_events.cpp,
- * examples/Reactor/WFMO_Reactor/test_prerun_state_changes.cpp,
- * examples/Reactor/WFMO_Reactor/test_registration.cpp,
- * examples/Reactor/WFMO_Reactor/test_registry_changes.cpp,
- * examples/Reactor/WFMO_Reactor/test_talker.cpp,
- * examples/Reactor/WFMO_Reactor/test_window_messages.cpp:
-
- * ace/Sock_Connect.cpp: The ACE 5.1.11 implementation of
- ACE_Sock_Connect::get_ip_interfaces() fails when run on Windows
- 2000 when ACE_HAS_WINSOCK2 = 0. This is because
- get_ip_interfaces() checks the registry for the available
- interfaces and fails when it encounters a new entry in windows
- 2000 named "Device\NDisWanIP". The patch is to ignore invalid
- devices and continue checking. Thanks to Chris Hafey
- <chris@stentorsoft.com> for contributing this fix.
-
-Wed Dec 20 15:57:32 2000 Phil Mesnier <mesnier_p@ociweb.com>
-
- * ace/RMCast/RMCast_IO_UDP.cpp
- * ace/RMCast?RMCast_IO_UDP.h
- * ace/RMCast/RMCast_IO_UDP.i : cleaned up tabs and trailing ws from
- last submission...
-
-Wed Dec 20 16:18:49 2000 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/Proactor/simple_test_proactor.cpp: Removed unused
- 'initial_read_size' variable from file scope.
-
- * examples/Reactor/Proactor/test_aiosig_ace.cpp (setup_signal_handler):
- * examples/Reactor/Proactor/post_completions.cpp:
- * examples/Reactor/Proactor/test_end_event_loop.cpp:
- * examples/Reactor/Proactor/test_cancel.cpp (Receiver::open):
- Fixed unused variable warnings for gcc.
-
-Wed Dec 20 15:42:36 2000 Phil Mesnier <mesnier_p@ociweb.com>
-
- * ace/RMCast/RMCast_IO_UDP.cpp
- * ace/RMCast?RMCast_IO_UDP.h
- * ace/RMCast/RMCast_IO_UDP.i : The g++ cross compiler 2.9-gnupro-98r2
- for target Lynx 3.0.1 host Solaris 2.6 was breaking with an internal
- error at the end of handle_input(). Replacing a couple of lines of
- code with the private, inline method allocate_and_bind_proxy() gets
- around the problem.
-
-Wed Dec 20 15:32:44 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * examples/Threads/wfmo.cpp: Move the function calls etc. out of
- the ACE_ASSERT() macros. Thanks to Mike Curtis
- <mccurry@my-deja.com> for pointing this out.
-
-Tue Dec 19 15:08:40 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Logging_Strategy.cpp: If ACE_LACKS_IOSTREAM_TOTALLY we'll
- use a "regular" file. Thanks to Sangwoo Jin for contributing
- this fix.
-
- * ace/Mem_Map.cpp (map_it): In using ACE_Mem_Map, if the
- ACE_Mam_Map::map's <offset> parameter is set to non-zero and the
- <len> parameter is set to -1 then the right value to map should
- be <mapped file size> - offset. Thanks to Sangwoo Jin for
- reporting this and suggesting the fix!
-
- * ace/INET_Addr.{h,i}: Make operator < const. Thanks to
- Michael Lindner <mikel@att.net> for reporting this.
-
-Tue Dec 19 18:39:27 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (simple_dispatch_handler):
-
- When ACE_HAS_PACE on NT, ACE must use pace_siginfo_t instead
- of creating and using its own. The ACE version of siginfo_t
- happens to use constructors and so, the code that uses
- this ACE siginfor_t instantiates the struct via a constructor.
- When ACE_HAS_PACE, the pace_siginfo_t cannot be instantiated
- via constructor.
-
- My edit just chooses the correct method of instantiation
- based on ACE_HAS_PACE.
-
-Tue Dec 19 18:21:52 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ace/Thread.h (ACE_Thread):
-
- Removed the default value on the overriden join (...)
- function that took three parameters.
-
-Tue Dec 19 14:50:38 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: If on ACE_WIN32, set ACE_DEFAULT_FILE_PERMS to
- (FILE_SHARE_READ | FILE_SHARE_WRITE), not 0666.
-
-Tue Dec 19 14:40:26 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Filecache.cpp: Changed definition of R_MASK and W_MASK to
- 0 for ACE_WIN32; used to be for __BORLANDC__. This is related
- to the change below because the third arg to ACE_OS::open is
- not ignored any longer for Win32.
-
- * tests/Capabilities_Test.cpp: On ACE_OS::open, don't supply a
- <perms> arg - let it default. The file gets deleted at the end of
- the test and has nothing to be protected. Related to the below
- change as well.
-
- * tests/Mem_Map_Test.cpp: Changed all the 0666 args to ACE_OS::open
- to ACE_DEFAULT_FILE_PERMS.
-
-Tue Dec 19 11:02:41 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.{h cpp} (open(char), open(wchar)): Changed the <perms>
- argument to be used in the CreateFile call on Win32. Made the
- default value of the argument match the old behavior (defaults
- to FILE_SHARE_READ | FILE_SHARE_WRITE (and FILE_SHARE_DELETE on
- NT4 and Win2K)). Thanks to Edan Ayal <edana@bandwiz.com> for this
- suggestion!
-
-Mon Dec 18 20:47:40 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/POSIX_Asynch_IO.h:
-
- Reverted previous change. It introduced compile-time errors.
-
-Mon Dec 18 19:07:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Asynch_IO.h, ace/POSIX_Asynch_IO.h: Clarified/corrected some
- comments regarding the write() operation getting its data from
- the message block's rd_ptr.
-
-Mon Dec 18 11:44:11 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp (connect_client): Fixed an unused
- argument warning on KCC compiler.
-
-Mon Dec 18 11:00:14 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp: Fixed problems when threads are not
- supported and when explicit template instantiation is required.
-
-Sun Dec 17 20:11:08 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp:
- * tests/MEM_Stream_Test.dsp:
- * tests/Makefile:
- * tests/Makefile.am:
- * tests/Makefile.bor:
- * tests/run_test.lst:
- * tests/run_tests.bat:
- * tests/run_tests.lst:
- * tests/run_tests.psosim:
- * tests/tests.dsw:
- * tests/version_tests/MEM_Stream_Test.dsp:
- * tests/version_tests/version_tests.dsw: Added a new
- MEM_Stream_Test.
-
-Sun Dec 17 19:32:58 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc_T.cpp (shared_malloc): After a win32 structural
- exception occurs, we need to re-execution the expression that
- causes the exception. Thanks to Roger Beck
- <roger_beck@royalsun.com.au> for reporting this.
-
- * ace/MEM_IO.i (fetch_recv_buf, recv): Differentiate the
- cases of end of message and errors.
-
- * ace/Malloc_T.h:
- * ace/Malloc_T.i: Added a base_addr method to return the base
- address of the ACE_Malloc so we don't have to depend on MMAP's
- base_addr method.
-
- * ace/MEM_SAP.i (set_buf_len,get_buf_len): Changed to computer
- buffer location using the base_addr method in ACE_Malloc as the
- one in Memory_Pool only indicates the fixed based addr.
-
- * ace/MEM_Acceptor.i:
- * ace/MEM_Acceptor.h: Added a method to set the prefix of MMAP
- filename.
-
- * ace/MEM_Acceptor.cpp (ACE_MEM_Acceptor):
- * ace/MEM_Connector.cpp (ACE_MEM_Connector): Changed to MMAP
- Options to allow MMAP files to be mapped at any address.
-
-Sun Dec 17 18:42:13 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Refcounted_Auto_Ptr.h: Need to add "ace/Auto_Ptr.h" here to
- get the definition of ACE_Basic_Auto_Ptr.
-
- * tests: Added the Refcounted_Auto_Ptr_Test.cpp, which tests
- the new ACE_Refcounted_Auto_Ptr class. Thanks to Johnny Tucker
- <JTucker@infoglide.com> for contributing this.
-
- * tests/Refcounted_Auto_Ptr_Test.dsp,
- tests/Refcounted_Auto_Ptr_Test.dsw
- tests/Refcounted_Auto_Ptr_Test.icc: Added the projects to
- compile the Refcounted_Auto_Ptr_Test.cpp.
-
- * tests/Makefile,
- * tests/run_test.lst,
- * tests/run_tests.lst: Added the Refcounted_Auto_Ptr_Test.
-
-Sun Dec 17 11:00:47 2000 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Date_Time.i (update): Fixed a typo.
-
-Sun Dec 17 08:52:04 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * etc/tao_smartproxies.doxygen:
- This file was left out from a previous commit.
-
-Sat Dec 16 09:36:56 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Date_Time: Added a new method update() to reset the current
- date/time and also added a new constructor that calls update()
- to initialize an ACE_Date_Time implicitly, rather than having to
- pass all the values into the constructor. Thanks to Jerry
- Odenwelder <jerryo@atl.fundtech.com> for contributing this.
-
-Fri Dec 15 15:27:02 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- * bin/make_pretty.pl:
- The DU/CXX compiler has three levels, 'Error', 'Warning' and
- 'Info:', the latter was being ignored.
-
-Fri Dec 15 14:36:33 2000 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/clean.bor:
- * include/makeinclude/recurse.bor:
-
- Added new 'realclean' target to Borland makefiles for
- removing all generated files (both intermediate and final).
- Thanks to Johnny Willemsen <johnny.willemsen@meco.nl> for
- suggesting this.
-
-Fri Dec 15 14:32:06 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Log_Msg.h (ACE_Log_Msg): Changed the documentation
- to reflect the fact that the %a option causes the program to
- abort() rather than exit(). Thanks to Mike Curtis
- <mccurry@my-deja.com> for pointing this out.
-
-Fri Dec 15 14:29:44 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/generate_doxygen.pl:
- Generate documentation for the new TAO_SmartProxies library.
-
-Fri Dec 15 10:22:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/auto_run_tests.pl:
-
- Included PerlACE::Run_Test instead of ACEUtils and
- ConfigList.
-
-Fri Dec 15 09:22:05 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * examples/Connection/non_blocking/Makefile:
- Fixed dependencies between the binaries and the library
- generated in this directory, otherwise parallel builds can
- fail.
-
-Thu Dec 14 10:36:45 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/auto_run_tests.lst:
- * tests/run_test.lst:
-
- Converted to the new PerlACE::ConfigList style of .lst
- files (can now say stuff like "Test: MSVC !Borland")
-
- * bin/auto_run_tests.pl:
- * bin/auto_compile:
- * tests/run_test.pl:
-
- Changed to use PerlACE::ConfigList.
-
- [Bug 729]
-
- * bin/ACEutils.pm:
-
- Made sure it would eat the -Config option so it will not
- be a problem if old run_test.pl's don't get updated
- immediately.
-
- * bin/msvc_auto_compile.pl:
-
- Added -d flag for debugging (just prints out what would be
- compiled)
-
- * bin/fuzz.pl:
-
- Added a rudimentary run_test.pl out-of-date test.
-
-Thu Dec 14 10:20:49 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_lynxos.GNU
- Allow users to set the debug option without using
- 'override debug='. debug=0 now works properly.
-
-Thu Dec 14 06:00:12 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace: Removed makefile-light since it's no longer needed.
- Thanks to Johnny Willemsen <johnny.willemsen@meco.nl> for
- reporting this.
-
-Wed Dec 13 18:33:19 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * html/README:
- Add README file explaining why the directory is empty and why
- the index.html URLs don't work unless you download or generate
- the Doxygen files.
-
- * html/index.html:
- Add entry for the smart proxies library.
-
-Wed Dec 13 18:27:29 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * THANKS:
- Add 'Pedro Ferreira' to the hall of fame.
-
-Thu Dec 13 18:18:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/PerlACE/ConfigList.pm: (added)
- * bin/PerlACE/Process.pm: (added)
- * bin/PerlACE/Process_Unix.pm: (added)
- * bin/PerlACE/Process_Win32.pm: (added)
- * bin/PerlACE/Run_Test.pm: (added)
-
- These are a couple of Perl modules that will be used
- to simplify current run_test.pl's and the auto_builds
- and to allow us to run tests on Win32 for configurations
- that output executables into subdirs (Win32 Release,
- Win32 Static *, Borland). The conversion of scripts over
- to the new style will occur in separate checkins.
-
- ConfigList provides a more powerful *.lst format for
- specifying test lists. Process is a newer version of
- the old bin/Process.pm that has a different interface
- and a couple of extra methods for common tasks for
- our scripts. And Run_Test.pm will replace the
- bin/ACEutils.pm and be the main module for our
- run_test.pl scripts. It contains some common subroutines
- and automatically parses some arguments via ARGV.
-
- * docs/run_test.txt: (added)
-
- A bit of documentation on how new run_test.pl's will
- look.
-
-Wed Dec 13 18:15:03 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CDR_Stream.h:
- Made some of the adjust() methods public, this is used to
- optimize TAO's implementations of CORBA::Any.
-
-Wed Dec 13 12:59:49 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/PerlACE/Process_Unix.pm:
-
- Fixed PerlACE::Process on Unix to have the same interface as
- the Win32 version.
-
-Tue Dec 12 09:52:00 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * Well, it looks like we finally have a new president in the
- US, yow!
-
-Tue Dec 12 04:53:17 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Service_Config.{h,i}: Added an inequality operator.
- Thanks to Mike Curtis <mccurry@my-deja.com> for pointing this
- out.
-
- * ace/Service_Config.cpp (process_commandline_directives): Changed
- a check for error values being -1 to being != 0 since process_directive()
- can return
-
- 1) a positive number of parse errors
- 2) and -1 on a certain ACE_NEW_RETURN call
- 3) but always zero on success.
-
- Thanks to Mike Curtis <mccurry@my-deja.com> and
- Munagala Ramanath <Munagala.Ramanath@PostX.com>
- for pointing this out.
-
-Tue Dec 12 01:07:39 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Log_Msg.cpp:
-
- Changed a comment to remove a false warning by fuzz.
-
-Mon Dec 11 15:10:00 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Get_Opt.h:
- In some platforms 'optind', 'optarg' and 'opterr' are defined as
- macros, undefine them because we use the same identifiers as
- variable names.
-
- * ace/OS.h:
- If 'timezone' is defined as a macro in the system header files
- then define ACE_TIMEZONE and #undef timezone.
- The ACE_OS::timezone() method cannot be compiled otherwise, but
- unfortunately this forces us to disable support for the method
- under that sort of platform.
-
- * ace/OS.h:
- Do not include sys/shm.h if ACE_LACKS_SYSV_SHMEM is defined,
- there is no reason to #include the file if we are not using it
- anyway.
-
- * ace/ACE.cpp:
- Check the return value from getrlimit() before accepting its
- results.
-
-Mon Dec 11 00:50:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ace_wchar.h:
-
- Created an ACE_ANTI_TCHAR and ACE_TEXT_ANTI_TO_TCHAR.
- ACE_ANTI_TCHAR has the opposite behavior of ACE_TCHAR.
-
- * ace/Process.cpp:
- * ace/Process.h:
- * ace/Process.i:
-
- Added wchar_t versions of:
-
- - ACE_Process_Options::working_directory (wd)
- - ACE_Process_Options::command_line (format, ...)
-
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
-
- Added wchar_t versions of:
-
- - ACE_OS::cond_init () - 2 versions
- - ACE_OS::mutex_init ()
- - ACE_OS::thread_mutex_init ()
- - ACE_OS::event_init ()
- - ACE_OS::sema_init ()
-
- On Win32, these should be implemented using the *W version
- of the APIs. On other platforms, they call the char version
- of the same ACE_OS call with a converted string.
-
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
-
- Changed the first parameter to set and conditional_set from
- being ACE_TCHAR to just char. We'll assume filenames are
- always ansi strings (since __FILE__ seems to act this way).
- There was actually a dangling pointer problem in the
- conditional_set when ACE_USES_WCHAR was defined before.
-
- Added an ANTI_TCHAR version of log (priority, format, ...).
- What this means is now we can use either narrow or wide
- format strings with Log_Msg, regardless of whether ACE_USES_WCHAR
- is defined or not. Hopefully this means we can get rid of a lot
- of the ACE_TEXT and ACE_LIB_TEXT's in our code.
-
- Added a couple of more specifiers, %C and %w. So for characters
- and strings we have:
-
- %c : print out an ansi character
- %C : print out an ansi string
- %s : print out an ACE_TCHAR * string
- %w : print out a wide character
- %W : print out a wide string
-
- An example, which will also function correctly even when
- ACE_USES_WCHAR is defined:
-
- void print (char *a_str, wchar_t *w_str, ACE_TCHAR *t_str)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%C %s %W\n",
- a_str,
- t_str,
- w_str));
- }
-
- Unfortunately this only really takes care of the string
- specifiers. There is still work to be done with the other
- implicit string specifiers (%p, %N, etc.).
-
- * ace/RMCast/RMCast_IO_UDP.cpp:
- * ace/RMCast/RMCast_Reassembly.cpp:
- * ace/SSL/SSL_Context.cpp:
- * ace/SSL/SSL_SOCK_Acceptor.cpp:
- * ace/SSL/SSL_SOCK_Connector.cpp:
- * ace/SSL/SSL_SOCK_Stream.i:
-
- Removed unnecessary ACE_TEXT's to see how things go.
-
- * docs/wchar.txt:
-
- Updated the documentation.
-
-Fri Dec 8 13:47:58 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- Added Refcounted_Auto_Ptr.{h,i} to these projects.
-
-Fri Dec 8 10:34:32 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Makefile: Added Refcounted_Auto_Ptr to the list of template
- files.
-
- * ace/Auto_Ptr.{h,i}:
- * ace/Refcounted_Auto_Ptr.{h,i}: Moved the new
- ACE_Refcounted_Auto_Ptr into a separate file to reduce
- unnecessarily coupling in ACE. Thanks to Darrell Brunsch for
- pointing this out.
-
-Fri Dec 8 09:27:01 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_chorus4.x_g++.GNU:
-
- Modified to build only static libraries. Something changed
- between the time of the port and now, which caused it to try
- to build shared libraries (which Chorus 4.0 doesn't support).
-
-Fri Dec 8 06:47:12 2000 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * tests/Makefile.bor:
-
- Use variable called TARGET_NAME instead of NAME to
- prevent clash with nightly build scripts.
-
-Thu Dec 7 13:16:23 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * examples/IPC_SAP/SPIPE_SAP/server.cpp:
-
- Removed PERMS global variable, since it wasn't being
- used (which KCC noticed).
-
- * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp:
- * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp:
- * examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp:
- * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp:
-
- When calling ACE_OS::cuserid and passing a NULL pointer, it
- should be cast to something like char * or wchar_t *. In
- this case it should be a char *, so I added a
- ACE_static_cast for it.
-
-Thu Dec 7 02:31:44 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-WinCE.h:
-
- Disabled inlining for SH3 Release configuration. The SH3 compiler
- has problems with inlined functions (in this case, ACE_OS::dlerror's
- static variable was staying unresolved). Thanks to Ricardo Chan
- <ricchan@nortelnetworks.com> for pointing this out to me.
-
-Thu Dec 7 03:33:49 2000 Marina Spivak <marina@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added RTCORBA MT test.
-
-Wed Dec 6 19:52:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
-
- * ace/Auto_Ptr.i:
-
- Added a couple of ACE_INLINEs and an include of Synch_T.h.
-
-Wed Dec 06 20:12:35 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Containers_T.cpp (operator=): In case the existing array is
- larger than the rhs (right hand side), we don't have to free and
- reallocate the existing array. However, we do need to run the
- destructor on the array elements that will be replaced. Hence,
- I added a call to ACE_DES_ARRAY_NOFREE for the elements being
- replaced.
-
- This fixes bug 704. Thanks to Martin Krumpolec
- <krumpo@pobox.sk> for reporting the bug and for providing an
- example illustrating the problem.
-
-Wed Dec 6 14:29:13 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Auto_Ptr.{h,i}: Added a new set of class (ACE_Refcounted_Auto_Ptr_Rep,
- ACE_Refcounted_Auto_Ptr) that implements support for a reference
- counted auto_ptr. Thanks to Johnny Tucker
- <JTucker@infoglide.com> for contributing this.
-
- * ace/Managed_Object.h: Added ACE_UNIMPLEMENTED_FUNC macros for
- copy constructor and assignment operator in class
- ACE_Cleanup_Adapter. Thanks to Johnny Willemsen
- <johnny.willemsen@meco.nl> for reporting this.
-
- * tests/run_tests.sh: Prevent null or zero-length string test name from being
- passed into the run() function. Thanks to Jon Loeliger
- <jloeliger@chiaro.com> for reporting this.
-
- * tests/Log_Msg_Test.cpp,
- * examples/Log_Msg/test_log_msg.cpp (main):
- Replaced int with u_long to make compilers happy. Thanks to
- Mike Curtis <mccurry@my-deja.com> for pointing this out.
-
-Tue Dec 5 11:45:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp:
-
- Added ACE_TEXT to a debug message.
-
-Tue Dec 5 10:07:14 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * performance-tests/Misc/childbirth_time.cpp:
- Use &function instead of just function, hopefully that will make
- Sun/CC 5.0 happy.
-
-Tue Dec 5 09:38:22 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- Return "-1" instead of the result of the
- ACE_SSL_SOCK_Stream::close() method. The latter may actually,
- and most likely will return without error.
-
-Tue Dec 05 05:39:39 2000 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * tests/Makefile.bor:
-
- Implemented 'clean' support in the ACE tests makefile.
-
-Tue Dec 05 02:02:51 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/IPC_SAP.cpp (disable): Reverted this change:
-
- Tue Nov 21 17:42:36 2000 Pradeep Gore <pradeep@cs.wustl.edu>
-
- The change seemed too low level where it might end up effecting
- more code than was intended. However, as I discussed with Chris
- Uzdavinis <chris@atdesk.com>, the correct solution is to
- specialize the activation of the Svc_Handler rather than its
- accepting.
-
-Mon Dec 04 23:54:10 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_proactor.cpp:
-
- - Receiver::open(): Only duplicate the message block when we are
- faking the result. Otherwise, initiate_read_stream will create
- its own message block.
-
- - Receiver::open(): Delete the fake result.
-
- - Receiver::handle_read_stream(): When there is no more data to
- read, release the message block and delete the receiver.
-
- - Sender::transmit_file(): No need to duplicate the trailer.
-
- * ace/Proactor.cpp (~ACE_Proactor_Timer_Handler):
-
- The following was changed:
-
- this->thr_mgr ()->wait ();
-
- to:
-
- this->thr_mgr ()->wait_grp (this->grp_id ());
-
- since Thread_Manager::wait() if called while the
- ACE_Object_Manager is shutting down (as a result of program
- shutdown or ACE::fini), it will not wait for any threads to
- complete.
-
- Also, the timer_handler thread was not created detached since
- Thread_Manager::wait_grp() does not wait on detached threads.
-
-Mon Dec 04 16:32:11 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv):
-
- Shutdown the SSL connection if SSL_read() returns with an
- SSL_ERROR_ZERO_RETURN OpenSSL error condition.
- SSL_ERROR_ZERO_RETURN indicates that the peer is shutting down,
- and that a "close_notify" message SSL message has been issued by
- the peer. A "close_notify" message indicates that no further
- data will be sent through the given connection, so there is no
- need to keep the connection open.
-
- Removed SSL_ERROR_WANT_{WRITE,X509_LOOKUP} switch statement
- cases. They are apparently not necessary when performing a SSL
- read.
-
- (send):
-
- Removed SSL_ERROR_WANT_{READ,X509_LOOKUP} switch statement
- cases. They are apparently not necessary when performing a SSL
- write.
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- Check that the X.509 verification didn't fail. If the
- verification failed then do not continue.
-
- * ace/SSL/SSL_Context.cpp:
- * ace/SSL/SSL_SOCK_Connector.cpp:
- * ace/SSL/SSL_SOCK_Stream.cpp:
-
- Added missing ACE_RCSID macros.
-
- * ace/SSL/SSL_Context.h:
- * ace/SSL/SSL_SOCK.h
- * ace/SSL/SSL_SOCK_Acceptor.h:
- * ace/SSL/SSL_SOCK_Connector.h:
- * ace/SSL/SSL_SOCK_Stream.h:
-
- Doxygenated these headers.
-
- * ace/SSL/SSL_Context.i:
- * ace/SSL/SSL_SOCK.cpp:
-
- Cosmetic updates.
-
-Mon Dec 04 12:45:46 2000 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.cpp: Corrected some problems with Linux on
- Pentium that were introduced by this:
- Fri Nov 10 10:42:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.cpp: Replaced all occurrences of
- "defined (ACE_HAS_PENTIUM)" with "defined (ACE_WIN32)" since
- there is nothing Pentium-specific any longer in the Win32
- sections.
-
- Thanks to David Levine and Carlos O'Ryan for weeding this bug out.
-
-Mon Dec 4 07:39:16 2000 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * examples/Service_Configurator/IPC-tests/clients:
- Added Borland C++ Builder specific makefile.
-
-Sun Dec 3 20:03:16 2000 Ossama Othman <ossama@uci.edu>
-
- * examples/Web_Crawler/Command_Processor.cpp:
-
- Removed duplicate template instantiations. Thanks to Paul Rubel
- <prubel@bbn.com> for pointing out this bug, and for providing a
- fix.
-
- * THANKS:
-
- Added Paul to the Hall-of-Fame.
-
-Sun Dec 3 15:23:50 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * performance-tests/Misc/childbirth_time.cpp:
- Use 'extern "C"' for the thread entry point, this should make
- Sun/CC 5.0 (and other compilers) happy.
-
-Sun Dec 3 08:50:15 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS.i: Fixed a cut and paste error. This was from the BUG#
- 734 in bugzilla. Thanks to Martin Krumpolec <krumpolec@pobox.sk>
- for reporting this.
-
-Sat Dec 2 05:58:37 2000 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/config-win32-borland.h:
-
- Automatically define WIN32 macro if we are able to
- determine that it is the target platform from pre-
- defined compiler macros.
-
- * ace/Makefile.bor:
-
- Added missing template source file for install target.
-
-Sat Dec 2 00:19:38 2000 Marina Spivak <marina@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added RTCORBA/Explicit_Binding test.
-
-Fri Dec 01 21:17:35 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Thread_Manager.cpp:
- More ACE_LEGACY_MODE fixes.
-
-Fri Dec 1 13:49:36 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Log_Msg.cpp:
- Fixed problems on non-legacy Win32 builds.
-
-Fri Dec 1 09:46:15 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
- The structured exception handler methods should show up on
- ACE_LEGACY_MODE builds. Unfortunately, the change from
- ACE_LATEST_AND_GRATEST to LEGACY_MODE didn't work here because
- the LATEST_AND_GREATEST macro was misspelled.
-
-Fri Dec 1 09:30:08 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/platform_linux.GNU:
- Add support for wxWindows under linux.
-
-Fri Dec 1 10:56:42 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * include/makeinclude/ace_flags.bor:
-
- Added definitions necessary for the new smart proxies
- library and its Borland makefile.
-
-Fri Dec 01 09:21:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Reactor.h: Clarified some comments.
-
-Thu Nov 30 22:49:10 2000 pradeep@cs.wustl.edu <pradeep@cs.wustl.edu>
-
- * ACE version 5.1.11 released.
-
-Wed Nov 29 23:55:37 2000 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * apps/drwho/server.cpp:
- * apps/drwho/BS_Client.cpp:
- Used casts to quiet VxWorks/LynxOS.
- * bin/auto_run_tests.lst:
- Commented out this test - its broken.
-
-Wed Nov 29 10:35:26 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp (parse_args):
- Removed the colon after the "r" in the parse-args list. Thanks
- to Mike Curtis <mccurry@my-deja.com> for pointing this out.
-
- * ace/Method_Request.h: Added ACE_UNIMPLEMENTED_FUNC to the
- assignment operator and copy constructor of ACE_Method_Request.
- Thanks to Johnny Willemsen <johnny.willemsen@meco.nl> for
- pointing this out.
-
-Wed Nov 29 09:41:51 2000 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * examples/Reactor/Multicast/*.bor
- Added Borland C++ Builder specific makefiles. Thanks to
- Albert Wijna <albert.wijnja@meco.nl> for creating these.
-
-Tue Nov 28 15:39:51 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Print out an error message when the script returns a non-zero
- code. The errors where reported by email, but they didn't show
- up in the make_pretty output.
-
-Tue Nov 28 15:36:10 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/generate_doxygen.pl:
- Don't generate inline code for releases, it bloats the
- documentation, and does not make things any clearer.
-
- * html/index.html:
- Fixed URLs
-
- * etc/ace.doxygen:
- * etc/ace_man.doxygen:
- * etc/ace_rmcast.doxygen:
- * etc/ace_ssl.doxygen:
- * etc/tao_dynamicany.doxygen:
- * etc/tao_dynamicinterface.doxygen:
- * etc/tao_esf.doxygen:
- * etc/tao_implrepo.doxygen:
- * etc/tao_iormanip.doxygen:
- * etc/tao_iortable.doxygen:
- * etc/tao_portableserver.doxygen:
- * etc/tao_rtevent.doxygen:
- * etc/tao_strategies.doxygen:
- Make sure that ACE_THROW_SPEC is properly defined.
-
- * etc/tao.doxygen:
- Also fix the relative path to the ace doxygen files.
-
-Tue Nov 28 13:31:47 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_test.pl: prefix exec of run_tests.sh with
- $EXEPREFIX, so that it works without . in the user's
- PATH. Thanks to Carlos for pointing this out.
-
-Tue Nov 28 08:09:35 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_test.pl: added some more diagnostics to try
- to figure out why run_tests.sh can't be exec'd on
- UCI machines.
-
-Mon Nov 27 17:02:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ACE-INSTALL.html:
- While following up on Johnny Willemsen's
- <johnny.willemsen@meco.nl> suggestion to make sure I removed all
- references to .mdp files, I noticed that some of the Win32
- instructions could use some updating.
-
-Mon Nov 27 17:44:52 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_test.pl: if run_tests.sh doesn't exist, print
- a diagnostic message and continue with the run_test.pl
- version of the tests. For unknown reasons, this change:
- Mon Nov 27 11:58:43 2000 David L. Levine <levine@cs.wustl.edu>
- doesn't work on the UCI Linux machines, run_tests.sh can't
- be exec'd.
-
-Mon Nov 27 10:17:58 2000 Ossama Othman <ossama@uci.edu>
-
- * docs/tutorials/005/005.dsp:
-
- Corrected name of output binary. It should have been
- `server.exe' not `client.exe'. Thanks to David Channon
- <djc@uq.net.au> for reporting this problem.
-
-Mon Nov 27 09:56:09 2000 Ossama Othman <ossama@uci.edu>
-
- The following updates are based on feedback from David Channon
- <djc@uq.net.au>. Thanks David!
-
- * docs/tutorials/003/client.cpp:
- * docs/tutorials/003/page01.html:
- * docs/tutorials/004/client.cpp:
- * docs/tutorials/004/page01.html:
- * docs/tutorials/008/broadcast_client.cpp:
- * docs/tutorials/008/directed_client.cpp:
- * docs/tutorials/008/page02.html:
- * docs/tutorials/008/page03.html:
- * docs/tutorials/008/page04.html:
- * docs/tutorials/008/server.cpp:
- * docs/tutorials/009/broadcast_client.cpp:
- * docs/tutorials/009/directed_client.cpp:
- * docs/tutorials/009/page02.html:
- * docs/tutorials/009/page03.html:
- * docs/tutorials/009/page04.html:
- * docs/tutorials/009/server.cpp:
- * docs/tutorials/019/client.cpp:
- * docs/tutorials/019/client2.cpp:
- * docs/tutorials/019/page02.html:
- * docs/tutorials/019/page03.html:
- * docs/tutorials/019/page04.html:
- * docs/tutorials/019/page05.html:
- * docs/tutorials/019/server.cpp:
- * docs/tutorials/019/server2.cpp:
- * docs/tutorials/019/shmem.cpp:
- * docs/tutorials/020/client.cpp:
- * docs/tutorials/020/client2.cpp:
- * docs/tutorials/020/mmap.cpp:
- * docs/tutorials/020/page02.html:
- * docs/tutorials/020/page03.html:
- * docs/tutorials/020/page04.html:
- * docs/tutorials/020/page05.html:
- * docs/tutorials/020/server.cpp:
- * docs/tutorials/020/server2.cpp:
-
- Include "ace/Log_Msg.h" to pull in the ACE_{DEBUG,ERROR}
- macros. The example code in the HTML files was also updated.
-
- * docs/tutorials/011/message_queue.cpp:
- * docs/tutorials/011/page02.html:
-
- Removed unnecessary line of code that NULL terminated a string.
- It didn't serve any purpose since the string is already
- terminated. If it wasn't terminated then that point in the code
- would never have been reached since the code prior to it assumes
- that the string is NULL terminated.
-
-Mon Nov 27 11:58:43 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_test.pl: on platforms other than Win32, simply
- exec run_tests.sh. run_tests.sh properly handles all of
- the current ACE tests. [Bug 729]
-
-Mon Nov 27 14:12:09 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Activation_Queue.h: Added ACE_UNIMPLEMENTED_FUNC to the
- assignment operator and copy constructor of
- ACE_Activation_Queue. Thanks to Johnny Willemsen
- <johnny.willemsen@meco.nl> for pointing this out.
-
-Sun Nov 26 19:07:48 2000 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * examples/Map_Manager/test_hash_map_manager.cpp:
- * examples/Shared_Malloc/Malloc.cpp:
- * examples/Shared_Malloc/test_position_independent_malloc.cpp:
-
- Removed extraneous explicit template instantiation declarations
- causing "multiply defined" errors on VxWorks and LynxOS.
-
-Sat Nov 25 22:08:46 2000 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * apps/drwho/Makefile:
- Disabled drwho compilation on Vxworks - it doesn't have
- protocols/rwhod.h.
-
-Fri Nov 24 16:58:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/IPC_SAP.cpp:
-
- WSAEventSelect is not available on Windows CE, so the #ifdefs
- were changed so it calls ioctl on Windows CE also.
-
-Fri Nov 24 15:43:20 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * docs/ACE-categories.html:
- Fixed URLs to Doxygen documents, I used the absolute URL to our
- Doxygen site, but in the future we may want to do that
- configurable.
-
- * bin/auto_run_tests.lst:
- Disable the Connection_Purging test in TAO, it never worked and
- the features are disabled while we continue to improve the
- Connection Cache.
-
-Fri Nov 24 11:42:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ACE-INSTALL.html:
-
- Updated sections about Windows CE and MSVC. CE stuff
- is documented in CE-status.txt, and removed references to old
- MSVC 4.2 projects. Thanks to Johnny Willemsen
- <johnny.willemsen@meco.nl> for pointing this out.
-
-Fri Nov 24 05:48:26 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Signal.h: Enhanced the documentation to clarify the role of
- sigkey. Thanks to Oscar Rodriquez <Oscar.Rodriquez@eln.ericsson.se>
- for motivating this.
-
- * ace/SOCK_Connector.h: Updated the documentation to clarify the
- parameters to the constructors and the connect() method. Thanks
- to Pierre Oberson <oberson@nagra-kudelski.ch> for suggesting this.
-
-Thu Nov 23 21:17:16 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Reactor_Notify_Test.cpp (main): added
- auto_ptr<ACE_Reactor> so that the global Reactor instance
- will be destroyed at the termination of main (). The cleans
- up memory leaks that we introduced in this change to the test:
- Tue Oct 24 12:30:47 2000 Steve Huston <shuston@riverace.com>
-
-Thu Nov 23 18:38:54 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * Makefile:
- Add ACE_wrappers/html to the list of files tagged, even though
- they are not included in the tar or zip files.
-
-Thu Nov 23 18:13:32 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- Don't use 'grep -q' because Solaris' grep does not support it.
-
-Thu Nov 23 18:27:52 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * Makefile:
- The ACE-INSTALL file is generated in the staging directory,
- there is no need to generate it locally too.
-
-Thu Nov 23 17:46:56 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Method_Request: Made the priority() method const. Thanks
- to Johnny Willemsen <jwillemsen@remedy.nl>
-
-Thu Nov 23 14:43:40 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * Makefile:
- Do not include the html directory in the release. The doxygen
- files are too big for this.
-
- * ace/config-doxygen.h:
- Improve doxygen documentation.
-
- * bin/generate_doxygen.pl:
- Add options to change the path to find dot and perl on the fly.
-
- * bin/make_release:
- Generate the HTML documentation in a separate .tar.gz (or .zip)
- file.
-
-Wed Nov 22 17:35:55 2000 Angelo Corsaro <corsaro@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added entry for Collocation test. Moved entry for Client
- Exposed Policy test from the old list file to this one.
-
-Wed Nov 22 09:29:32 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * etc/ace.doxygen:
-
- Added the docs directory and *.txt files to be looked
- at by doxygen.
-
- * docs/CE-status.txt:
- * docs/wchar.txt:
-
- Fixed up these files, so they show up correctly in the
- doxygen html pages.
-
-Tue Nov 21 19:55:49 200 0 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * ace/IPC_SAP.cpp:
- Casting param1 to SOCKET did the trick. Thanks Doug!
-
-Tue Nov 21 19:21:10 2000 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * ace/IPC_SAP.cpp:
-
- Reverted previous change applied to ACE_IPC_SAP::disable because
- of compile error.
-
-Tue Nov 21 18:54:14 2000 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * apps/drwho/CM_Client.cpp:
-
- Explicitly cast Comm_Manager::sokfd_ to int in calls to
- ACE_OS::recvfrom and ACE_OS::closesocket to quiet LynxOS.
-
-Tue Nov 21 17:42:36 2000 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * ace/IPC_SAP.cpp:
-
- Modified ACE_IPC_SAP::disable to call ::WSAEventSelect on Win32.
- Thanks to Chris Uzdavinis <chris@atdesk.com> for contributing
- these changes.
-
-Tue Nov 21 11:00:14 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/run_test.lst:
-
- Borland shouldn't be running ACE_Init_Test.
-
-Tue Nov 21 10:15:15 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.inl:
-
- Changed ::towlower to towlower since it can be a macro.
-
-Tue Nov 21 09:57:53 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/Reactor_Exceptions_Test.cpp:
-
- Code style fix.
-
- * tests/run_test.lst:
-
- New_Fail_Test just eats up memory when run, and it only tests
- the behavior of new. Not really something we need to run
- everynight (and as David Levine reports, using up all the
- memory can cause problems in other processes on the nightly
- build machines). Commented out the New_Fail_Test.
-
- * tests/run_test.pl:
-
- Fixed to clean up some of the backing_store_* files in the
- tests directory after running the tests.
-
- * bin/ACEutils.pm:
-
- Added the ability to pick -ExeSubDir <dir> from the command
- line to alter $EXEPREFIX. This should allow us to start
- running tests with different configurations (ie. Win32 Release)
- and on Borland.
-
-Tue Nov 21 07:24:54 2000 Chris Kohlhoff <chris@kohlhoff.com>
-
- * ace/SSL/Makefile.bor:
- * include/makeinclude/build_dll.bor:
- * include/makeinclude/build_exe.bor:
- * include/makeinclude/build_lib.bor:
-
- Prevent SSL libraries from being built unless SSL_ROOT is defined.
-
- * include/makeinclude/build_example.bor:
-
- Add missing libraries required for statically linking TAO examples.
-
-Mon Nov 20 21:52:57 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile.am:
-
- Added more missing files to the source lists.
-
-Mon Nov 20 19:16:12 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.i (mutex_init):
-
- Fixed an unused argument warning that was showing up in
- ACE+Autoconf builds.
-
- * ace/Makefile.am (libACE_Utils_la_SOURCES):
-
- Updated "Init.cpp" to "Init_ACE.cpp." For some reason this
- file wasn't updated when the name change was made.
-
- (libACE_Utils_la_SOURCES):
-
- Moved `Sock_Connect.cpp' to this list of sources. Similar to
- the above change, this files wasn't updated when the
- corresponding to changes was made to the classical Makefile.
-
-Mon Nov 20 15:00:26 2000 Marina Spivak <marina@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added RTCORBA/Private_Connection, updated options for other
- RTCORBA tests.
-
-Sun Nov 19 15:26:56 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/sslconf.h
- (ACE_DEFAULT_SSL_CERT_FILE, ACE_DEFAULT_SSL_CERT_DIR):
-
- On Win32, do not use UNIX-specific directories in certificate
- paths.
-
-Sun Nov 19 10:37:48 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Add the new files to the MSVC projects.
-
- * ace/Dynamic_Service_Base.h:
- Add missing file.
-
- * ace/Dynamic_Service_Base.cpp:
- Removed template-like protections, this is a regular class.
-
- * ace/Dynamic_Service.i:
- * ace/Dynamic_Service.cpp:
- Cosmetic fixes.
-
-Sun Nov 19 08:05:08 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Makefile:
- Updated.
-
- * ace/Dynamic_Service.cpp:
- * ace/Dynamic_Service.h:
- * ace/Dynamic_Service_Base.cpp:
- * ace/Dynamic_Service_Base.h:
- Not all methods in Dynamic_Service were based on the SERVICE
- types. Moved those to the base class 'Dynamic_Service_Base' and
- the Dynamic_Service inherits from the base class.
-
-Sat Nov 18 15:39:49 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp:
- Fixed a mistake in the "usage" string. Thanks to Mike Curtis
- <mccurry@my-deja.com> for pointing this out.
-
-Sat Nov 18 11:35:53 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/OS_Test.cpp:
-
- Changed the signature of main to use ACE_TCHAR. Although
- I don't consider this the "right" way of doing this, it
- will make the builds happy with ACE_USES_WCHAR until we
- implement something better.
-
-Sat Nov 18 09:58:17 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Basic_Types.h:
- * ace/OS_Log_Msg_Attributes.h:
- * ace/config-all.h:
- Under LynxOS we must #include stdarg.h before stdio.h.
- Thanks to David for letting us know about this.
-
-Fri Nov 17 14:24:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * include/makeinclude/clean.bor:
-
- Added the removal of *Cli.cpp, *Ser.cpp, etc. files which
- is the output style of the TAO Param_Test.
-
- * tests/Reactor_Exceptions_Test.cpp:
-
- Put the handler in its own scope so it must be cleaned up
- before the reactor. For whatever reason, it wasn't happening
- in the right order on MSVC before.
-
- Also changed the exception error to a debug message, since
- it really doesn't seem an error (we explicitly cause one).
-
-Fri Nov 17 11:22:08 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/platform_sunos5_kcc.GNU:
- Same fix as for platform_linux_kcc.GNU.
- A little more detail has surfaced: apparently under this
- compiler we attempted to link the static run-time and system
- libraries if static_libs_only=1 was set. Not only this would be
- unique (in that we don't do this for other compilers), but it
- fails when only one directory is compiled with
- static_libs_only=1, hile only the dynamic version of ACE (or any
- other of our libraries) is compiled.
- IMHO it is better to make it consistent with all the other
- platforms, and leave the extra optimization of using static
- system libraries for a future makefile option.
-
- * include/makeinclude/platform_linux_kcc.GNU:
- Remove obsolete comment
-
-Fri Nov 17 03:37:37 2000 Marina Spivak <marina@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added RTCORBA/Banded_Connections test.
-
-Fri Nov 17 01:16:25 2000 Ossama Othman <ossama@uci.edu>
-
- * include/makeinclude/wrapper_macros.GNU (ssl):
-
- Removed definition of the ACE_HAS_SSL macro. It is no longer
- used.
-
-Thu Nov 16 16:14:03 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * Makefile:
- * html/doxygen.css:
- * html/index.html:
- New html directory. People normally don't expect html documents
- to show up under the man directory.
-
- * configure.in:
- * bin/bootstrap:
- * man/Makefile.am:
- * man/html/Makefile.am:
- Remove the man/html directory.
-
- * bin/make_release:
- Insert code to generate the man pages index.
-
- * docs/ACE-categories.html:
- Change references to man/html so they point to the new doxygen
- generated files.
-
- * bin/README.html:
- * bin/class2hxxcxx:
- * bin/class2hxxcxxsingle:
- * bin/class2info:
- * bin/class2info.awk:
- * bin/class2man:
- * bin/class2mml:
- * bin/class2src:
- * bin/classinfo.ps:
- * bin/generate_html_windex:
- * bin/generate_man_pages:
- * bin/hiding.fmt:
- * bin/html-windex:
- * bin/info2doc.awk:
- * bin/info2doc.fmt:
- * bin/info2head:
- * bin/info2head.fmt:
- * bin/info2headsrc:
- * bin/info2man:
- * bin/info2mml:
- * bin/info2src:
- * bin/info2src.awk:
- * bin/man2html:
- * bin/man2html1.awk:
- * bin/man2html2.awk:
- * bin/vendor.fmt:
- Remove old scripts used in man page and html document
- generation. We do everything with doxygen now.
-
-Thu Nov 16 17:55:18 2000 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * apps/JAWS/clients/Blobby/Blob.{h,cpp}:
- * apps/JAWS/clients/Blobby/Blob_handler.{h,cpp}:
- * apps/drwho/Rwho_DB_Manager.h:
- * apps/drwho/Multicast_Manager.{.h,cpp}:
- * apps/drwho/Options.{h,cpp}:
- Follow const correctness to make suncc5 happy.
-
- * examples/IOStream/server/iostream_server.h
- Use ACE_HAS_TEMPLATE_TYPEDEFS rather than ACE_HAS_TYPENAME_KEYWORD
- Thanks to Steve Huston <shuston@riverace.com> for the fix.
-
-Thu Nov 16 15:31:20 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/platform_linux_kcc.GNU:
- Builds with static libraries under Linux/KCC were failing due to
- some magical -Bstatic options in the configuration file. When
- the options are removed the problem went away.
-
-Thu Nov 16 15:31:20 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/platform_linux_kcc.GNU:
- Builds with static libraries under Linux/KCC were failing due to
- some magical -Bstatic options in the configuration file. When
- the options are removed the problem went away.
-
-Thu Nov 16 15:09:25 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/TkReactor_Test.cpp:
- Fixed 'char*' vs. 'const char *' conflict.
-
-Wed Nov 15 14:23:54 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in:
-
- Fixed bug in the auto_ptr / C++ std namespace test where the
- template argument for the auto_ptr being instantiated was
- a non-existent type.
- Reported by Kevin Marshall <KCMarshall@att.net>
-
- * THANKS:
-
- Added Kevin to the hall of fame list.
-
-Wed Nov 15 10:19:45 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * examples/Threads/thread_specific.cpp:
- Fixed warning under linux
-
-Wed Nov 15 08:32:58 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * apps/JAWS/server/Makefile:
- * performance-tests/Misc/Makefile:
- Change dependencies to ensure that the libraries are created
- before we attempt to link the binaries, otherwise the
- compilation fails with parallel builds.
-
-Tue Nov 14 17:55:52 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * Makefile:
- PACE is disabled by default, unless pace=1 is set in the command
- line or the platform_macros.GNU file.
-
-Tue Nov 14 19:36:47 2000 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/Proactor/test_siosig_ace.cpp: Don't log
- the read/written file using ACE_DEBUG - it will usually overflow
- the ACE_Log_Record max message length and do bad things.
-
-Tue Nov 14 19:19:16 2000 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/Proactor/simple_test_proactor.cpp: Don't log
- the read/written file using ACE_DEBUG - it will usually overflow
- the ACE_Log_Record max message length and do bad things.
- Thanks to John Buckman <john@lyris.com> for reporting this.
-
-Tue Nov 14 18:43:51 2000 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/Proactor/test_proactor3.cpp: Replace use of
- list<Sender *> with Sender * [] so it builds without inifintely
- complicated explicit instantiations on gcc. KISS ;-)
-
-Tue Nov 14 17:43:26 2000 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/Proactor/test_aiocb_ace.cpp: Fixed to work
- correctly if one of the aio ops completes, but not the other,
- during a pass through the Test_Aio::do_aio loop. Thanks to
- John Buckman <john@lyris.com> for reporting this.
-
-Tue Nov 14 14:19:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Log_Record.cpp:
-
- In ACE_Log_Record::print, changed the call to ACE_OS::fprintf
- to use ACE_TEXT("%s") as the second argument instead of just
- "%s". This should make logging under ACE_USES_UNICODE readable.
- Thanks to James Buck <jim@nowsol.com> and Nick Pratt
- <npratt@microstrategy.com> for both reporting this problem and
- submitting patches.
-
-Tue Nov 14 09:19:16 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * examples/Threads/thread_specific.cpp:
- Simply use %u to print an ACE_hthread_t. This is what we seem
- to be doing in other places in the code. However, this seems to
- be non-portable, the code in ACE_Log_Msg to print the thread ID
- is a lot more complicated.
-
-Mon Nov 13 15:13:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Object_Manager.cpp:
-
- Protected the assert dialog box disable with _MSC_VER
- since it is only for MSVC.
-
-Mon Nov 13 03:46:21 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * docs/CE-status.txt:
- * docs/wchar.txt: (added)
-
- Updated documentation == good thing.
-
-Mon Nov 13 03:39:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-win32-borland.h:
-
- It looks like Borland also uses _wcsdup, so added the
- ACE_WCSDUP_EQUIVALENT here.
-
-Mon Nov 13 01:07:36 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.cpp:
- * ace/config-win32-borland.h:
- * ace/config-win32-msvc.h:
-
- Christopher Kohlhoff <chris@kohlhoff.com> mentioned to me
- that Borland did have a wcsdup, but it was named differently
- than the _wcsdup in MSVC. I took his suggestion and added
- a ACE_WCSDUP_EQUIVALENT for MSVC's version and enabled
- wcsdup for Borland's config.
-
-Mon Nov 13 00:36:29 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Obstack.cpp:
- * ace/Obstack.h:
-
- Nanbor mentioned to me the other day that the interfaces to
- this class probably should remain as char *. After looking
- at it, I agreed and changed it to that. But since Svc_Conf
- uses this class in such a way that it is passing wchar_t
- strings to it when ACE_USES_WCHAR is defined, I also added
- a wchar_t version of copy to make things happy.
-
-Sun Nov 12 17:00:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ace_ce.dsw: (removed)
- * ace/ace_dll_ce.dsp: (removed)
- * ace/ace.vcw: (added)
- * ace/ace_dll.vcp: (added)
- * ace/ace_os_dll.vcp: (added)
-
- Removed the old Windows CE project files, and replaced
- them with ones created by the eMbedded Visual C++ from
- MS.
-
- * ace/OS_Errno.cpp: (added)
- * ace/OS_Errno.h: (added)
- * ace/OS_Errno.inl: (added)
- * ace/config-all.h:
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
-
- Moved the Errno stuff from ACE_OS to a separate class,
- since it needed to be in its own layer for Windows CE.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
-
- Added OS_Errno.* files.
-
- * ace/ACE.cpp:
- * ace/Sock_Connect.cpp:
-
- Moved get_reg_value () to Sock_Connect since that is where
- it is being used.
-
- * ace/ARGV.cpp:
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
-
- Added ACE_LACKS_ENV for platforms (like Windows CE) which
- doesn't have an environment. Maybe in the future this can
- be emulated, for now, we do nothing.
-
- * ace/Base_Thread_Adapter.h:
- * ace/OS.h:
-
- Replace ACE_Export with ACE_OS_Export.
-
- * ace/Base_Thread_Adapter.inl:
- * ace/Thread_Adapter.inl:
-
- Moved some of the ACE_OS_Thread_Descriptor methods to
- Base_Thread_Adapter, since they were declared in
- Base_Thread_Adapter.h.
-
- * ace/SUN_Proactor.cpp:
-
- Removed ACE_BUILD_DLL from this file, since it should only
- be defined in the project file.
-
- * ace/OS_Dirent.h:
-
- Added ACE_WINCE to the #if block around some of the includes.
-
- * ace/OS_Memory.h:
- * ace/OS_Dirent.inl:
- * ace/OS_String.inl:
- * ace/OS.h:
-
- Added /**/ to the #includes of pace, since they seem to
- totally confuse EVC's automatic dependency generation.
-
- * ace/OS_String.cpp:
- * ace/OS_String.h:
- * ace/OS_String.inl:
-
- Added strerror. On machines without it, just returns
- "Unknown Error" all the time.
-
- Added strspn_emulation, strpbrk_emulation, strtol_emulation,
- and strtoul_emulation.
-
- New compile time defines:
- - ACE_LACKS_STERROR
- - ACE_LACKS_STRPBRK
- - ACE_LACKS_STRSPN
- - ACE_LACKS_STRTOL
- - ACE_LACKS_STRTOUL
- - ACE_LACKS_STRTOD
-
- * ace/Log_Msg.cpp:
-
- Since there is now strerror in ACE, removed the !ACE_HAS_WINCE
- blocks and replaced them with direct calls to ACE_OS_String's
- version.
-
- * ace/config-win32.h:
-
- Changed check for #include-ing config-wince.h to be based on
- _WIN32_WCE because this definition has been automatically added
- to the default projects by the misc WinCE editors.
-
- * ace/Service_Config.i:
-
- The char versions of the following fuctions (which are defined
- only under WinCE) were recursive and would fail miserably if
- ever used. I added ACE_CHAR_TO_TCHAR to resolve the infinate
- recursion.
- - ACE_Service_Config::initialize ()
- - ACE_Service_Config::resume ()
- - ACE_Service_Config::suspend ()
- - ACE_Service_Config::remove ()
-
- * ace/config-win32-msvc.h:
-
- We were defining ACE_HAS_GNU_CSTRING_H. I doubt that MSVC has
- GNU's cstring.h, so I removed it.
-
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
-
- Added ACE_LACKS_CUSERID and ACE_LACKS_CHDIR.
-
- Added writev and readv emulation methods to ACE_OS, since they
- were just being defined as global functions. This is more
- consistent with what we are doing elsewhere.
-
- Added ACE_LACKS_SYS_NERR emulation.
-
- * ace/config-WinCE.h:
-
- Added all the necessary defined to get ACE compiling for Windows
- CE 3.0. As for previous versions, they do not currently compile,
- although that could change in the future
-
-Sun Nov 12 12:29:31 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Cache_Map_Manager_T.h:
- * ace/Codeset_IBM1047.h:
- * ace/Date_Time.h:
- * ace/Dump_T.h:
- * ace/Flag_Manip.h:
- * ace/Hash_Cache_Map_Manager_T.h:
- * ace/LSOCK_Acceptor.h:
- * ace/Memory_Pool.h:
- * ace/QoS_Decorator.h:
- * ace/SV_Semaphore_Complex.h:
- * ace/Strategies_T.h:
- * ace/Synch_Options.h:
- * ace/Time_Request_Reply.h:
- * ace/Timer_Wheel_T.h:
- * ace/WIN32_Proactor.h:
- * ace/ace_wchar.h:
-
- Fixed @file comments.
-
-Sat Nov 11 18:55:04 2000 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * ace/Profile_Timer.cpp:
- Included Log_Msg.h to fix compile error.
-
-Fri Nov 10 19:41:38 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- Added a check for the @file comments used by doxygen.
- They must be the same as the actual filename, or doxygen will
- not pick up the comments for that file.
-
-Fri Nov 10 20:26:01 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Profile_Timer.cpp: Replaced ACE_OS::perror() with
- ACE_ERROR macros so that the output can be redirected to the
- same place that the ACE logging output is configured to go.
- Thanks to Jeff Greif <jgreif@befree.com> for reporting this.
-
-Fri Nov 10 17:15:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- Made the output look a little closer to MSVC's.
-
-Fri Nov 10 17:08:52 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * etc/tao_strategies.doxygen:
- New doxygen configuration file for the TAO_Strategies library.
-
- * bin/generate_doxygen.pl:
- Add tao_strategies.doxygen to the list.
-
- * etc/ace_man.doxygen:
- Generate man pages in the man directory instead of doxygen_man.
-
-Fri Nov 10 12:58:53 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/generate_doxygen.pl:
- * etc/tao_implrepo.doxygen:
-
- New Implementation Repository documentation.
-
-Fri Nov 10 12:53:28 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Format test output so make_pretty.pl can recognize where each
- test starts.
-
- * etc/ace_rmcast.doxygen:
- * etc/ace_ssl.doxygen:
- * etc/tao.doxygen:
- * etc/tao_dynamicany.doxygen:
- * etc/tao_dynamicinterface.doxygen:
- * etc/tao_esf.doxygen:
- * etc/tao_iormanip.doxygen:
- * etc/tao_iortable.doxygen:
- * etc/tao_portableserver.doxygen:
- * etc/tao_rtevent.doxygen:
- Don't define the macros explicitly, use the config-doxygen.h
- file.
- Must define ACE_RCSID and ACE_UNDEFINED_FUNC properly, so
- doxygen does not get confused.
-
-Fri Nov 10 14:26:41 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-sunos5.6.h: The AIO definitions were missing the #if
- !defined guards that are present in the solaris 2.7 config
- header. Thanks to Alex Hornby <alex@anvil.co.uk> for reporting
- this.
-
-Fri Nov 10 11:44:15 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * examples/RMCast/Send_File/Receiver.cpp:
- Fixed errors in Tru64/DUCXX builds.
-
-Fri Nov 10 10:42:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (ACE_OS::gethrtime): Removed the ACE_HAS_PENTIUM check
- from the #if defined (ACE_WIN32) line surrounding the use of
- QueryPerformanceCounter - it works fine on 486 also, per
- Bernd Annamaier <bernd.annamaier@de.adtranz.com>. Thanks to
- Bernd for testing this out.
-
- * ace/High_Res_Timer.cpp: Replaced all occurrences of
- "defined (ACE_HAS_PENTIUM)" with "defined (ACE_WIN32)" since there
- is nothing Pentium-specific any longer in the Win32 sections.
-
- * THANKS: Added Bernd Annamier to the Hall of Fame.
-
-Fri Nov 10 12:28:42 2000 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * examples/log_msg/makefile.bor:
- * examples/map_manager/makefile.bor:
- * examples/makefile.bor:
- * performance-tests/makefile.bor:
- * performance-tests/Server_Concurrency/makefile.bor:
- New Borland makefiles for ACE
-
-Thu Nov 9 18:39:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-sunos5.5.h:
-
- Added ACE_LACKS_MEMORY_H for SunCC 5, since it seems there is
- a bad interaction between memory.h and string.h on that config.
-
-Thu Nov 9 17:47:37 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp:
- Antoher missing Log_Msg.h
-
- * examples/Threads/thread_specific.cpp:
- Tru64 does not like the convertion from ACE_hthread_t to
- unsigned long. I'm trying with a reinterpret_cast, but I don't
- have much hope for it.
-
- * examples/Service_Configurator/IPC-tests/server/Makefile:
- * examples/Service_Configurator/Misc/Makefile:
- * examples/Timer_Queue/Makefile:
- * apps/Gateway/Gateway/Makefile:
- * apps/Gateway/Peer/Makefile:
- Avoid problems where the library is linked twice, once for the
- required dependency in parallel builds an another for the LDLIBS
- flag.
-
- * etc/ace.doxygen:
- * etc/ace_man.doxygen:
- Use a separate file to generate man pages. We don't want to
- document .cpp files or include code in man pages, but that looks
- great in HTML documents.
-
- * etc/tao.doxygen:
- * etc/tao_dynamicany.doxygen:
- * etc/tao_dynamicinterface.doxygen:
- * etc/tao_esf.doxygen:
- * etc/tao_iormanip.doxygen:
- * etc/tao_iortable.doxygen:
- * etc/tao_portableserver.doxygen:
- * etc/tao_rtevent.doxygen:
- Update the replacement path to some of the tag files, the
- generated documents did not get the right cross references.
-
- * bin/make_pretty.pl:
- Add yet another linker error.
-
- * bin/generate_doxygen.pl:
- Parse the man page generation code to create its output path too.
-
-Thu Nov 9 15:10:28 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/make_pretty.pl:
- In the HTML we replace < with &lt; and > with &gt; otherwise the
- output for templates makes no sense.
-
-Thu Nov 9 12:11:52 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Makefile (UTILS_FILES):
- Modified the Makefile to help when building subsetted shared
- libraries. Specifically, moved Addr, INET_Addr, and Sock_Connect
- into the Sockets component. That removes the dependancy of the
- Utilities and Sockets components on the non-socket IPC component.
-
- Committing on behalf of Phil Mesnier <mesnier_p@ociweb.com>
-
-Thu Nov 9 10:38:33 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * examples/Makefile:
- ACE_HAS_GNUG_PRE_2_8 should be used only after
- wrapper_macros.GNU is included.
-
-Thu Nov 9 10:26:01 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/make_pretty.pl:
- Add yet another link error message.
-
-Thu Nov 9 08:51:04 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/rules.local.GNU:
- It seems like I cannot get the rules to create the .obj and
- .shobj directories right. This last iteration seems to be
- happier, it works fine with parallel builds, it works fine for
- static and shared libraries, it does not recompile everything
- just because the .obj or .shobj directories changed, it creates
- the Templates.DB file when needed.
- The only problem that I'm aware off is that it can potentially
- produce a warning on parallel builds: two separate rules can try
- to create the .obj directory simultaneously, adding a dependency
- to have only one rule do it results in full-recompilations when
- a .obj directory is modified for whatever reason.
- I'm using ACE_NUL_STDERR to avoid such warnings, and it seems to
- work correctly.
-
-Thu Nov 9 10:14:06 2000 Jeff Parsons <parsons@cs.wustl.edu>
-
- * include/makeinclude/ace_flags.bor:
-
- Added the line
-
- TAO_DYNAMICINTERFACE_LIB =
- $(CORE_BINDIR)\TAO_DynamicInterface$(LIB_DECORATOR).lib
-
- that I had overlooked when doing the BCB makefile changes
- related to the DynamicInterface library. Thanks to
- Johnny Willemsen <Johnny.Willemsen@meco.nl> for sending
- in the patch.
-
-
-Wed Nov 8 16:11:11 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/RMCast/RMCast_Membership_Test.cpp:
- Remove unused variables
-
- * bin/make_pretty.pl:
- Add regular expression to detect more linker errors.
-
-Wed Nov 8 14:10:20 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp:
- * examples/IPC_SAP/SPIPE_SAP/client.cpp:
- * examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp:
- * examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp:
- * examples/IPC_SAP/SPIPE_SAP/server.cpp:
- * examples/RMCast/Send_File/Sender.cpp:
- * examples/Reactor/Misc/test_event_handler_t.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.h:
- We must explicitly #include "ace/Log_Msg.h", unfortunately the
- errors were only detected on platforms that do not define
- ACE_TEMPLATES_REQUIRE_SOURCE.
-
- * include/makeinclude/rules.local.GNU:
- More fine tuning, the Templates.DB directory must be created by
- the Makefile because SunCC 4.2 generates a warning if it is not
- present.
-
-Wed Nov 8 14:40:25 2000 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-all.h
-
- Fix a build problem on HP-UX 11.00 with aCC A.03.25. The macro
- used to determine the use of the std namespace changed from
- RWSTD_NO_NAMESPACE to _NAMESPACE_STD. NOTE: I did preserve the
- check for RWSTD_NO_NAMESPACE with aCC versions less than A.03.25.
-
-Wed Nov 8 10:27:00 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/generate_doxygen.pl:
- Automates the invocation of doxygen. It modifies the doxygen
- templates in $ACE_ROOT/etc and creates the right directory
- hierarchy to receive the files.
-
- * ace/config-doxygen.h:
- Configuration file used to generate the doxygen files.
- Notice that this is not a valid configuration for any platform,
- for example, it enables both the Win32 and the POSIX AIO calls.
-
- * etc/ace.doxygen:
- * etc/ace_rmcast.doxygen:
- * etc/ace_ssl.doxygen:
- * etc/tao.doxygen:
- * etc/tao_dynamicany.doxygen:
- * etc/tao_dynamicinterface.doxygen:
- * etc/tao_esf.doxygen:
- * etc/tao_iormanip.doxygen:
- * etc/tao_iortable.doxygen:
- * etc/tao_portableserver.doxygen:
- * etc/tao_rtevent.doxygen:
- Minor mods to make the generate_doxygen.pl job easier.
-
-Wed Nov 8 09:02:10 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * apps/Gateway/Gateway/Makefile:
- * apps/Gateway/Peer/Makefile:
- * examples/Timer_Queue/Makefile:
- * examples/Service_Configurator/IPC-tests/server/Makefile:
- * examples/Service_Configurator/Misc/Makefile:
- When generating a library and a binary that uses it in the same
- Makefile we must add explicit dependency between them, otherwise
- parallel builds can fail.
-
- * apps/JAWS/server/HTTP_Helpers.cpp:
- * examples/IPC_SAP/FILE_SAP/client.cpp:
- * examples/Naming/test_multiple_contexts.cpp:
- * examples/Threads/thread_specific.cpp:
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
- Fixed warnings about mismatches between printf-like strings and
- their arguments.
-
-Wed Nov 8 02:57:15 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * Local_Name_Space.cpp:
- * Local_Name_Space.h:
-
- Conversion between ACE_WString and ACE_NS_String depended on
- ACE_WString storing two byte char's (because it was using
- fast_rep ()) Changed to ushort_rep (), but this required
- ACE_NS_String to clean up the string once it is done. Added
- a destructor and a flag to ACE_NS_String for this purpose.
-
-Tue Nov 7 11:47:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/Cached_Accept_Conn_Test.cpp:
- * tests/Cached_Conn_Test.cpp:
- * tests/Collection_Test.cpp:
-
- Protected some of the explicit template instantiations with #if's
- to make sure we don't get duplicate ones with ACE_INT32 == int
- (since ACE_HANDLE and DATA are also int in some configurations).
-
-Tue Nov 7 09:04:15 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/RMCast.h:
- Undefine macro MT_DATA if defined already.
-
-Tue Nov 7 09:00:08 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- By default build everything under ACE_wrappers and
- ACE_wrappers/TAO, we used to build just a subset of ACE.
- We need to provide full coverage because this script is
- replacing all nightly builds, if auto_compile does not test it,
- nothing will.
-
- * bin/show_log_dir.pl:
- The script was removing the second and third most recent logs
- from the list, this used to be required to remove the brief and
- html files, but now we filter those earlier on the script.
-
-Mon Nov 6 16:23:56 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/RMCast/RMCast_Fragment_Test.cpp:
- * tests/RMCast/RMCast_Reassembly_Test.cpp:
- * tests/RMCast/RMCast_Retransmission_Test.cpp:
- Fixed warnings reported by DU/CXX
-
-Sun Nov 5 17:23:55 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * etc/ace.doxygen:
- * etc/ace_rmcast.doxygen:
- * etc/ace_ssl.doxygen:
- * etc/tao.doxygen:
- * etc/tao_dynamicany.doxygen:
- * etc/tao_dynamicinterface.doxygen:
- * etc/tao_esf.doxygen:
- * etc/tao_iormanip.doxygen:
- * etc/tao_iortable.doxygen:
- * etc/tao_portableserver.doxygen:
- * etc/tao_rtevent.doxygen:
- Commit doxygen templates, I'm still writing the script to use
- them effectively.
-
-Sun Nov 5 14:37:13 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Make log files world readable, under Solaris they are created
- with 600 mode by default.
-
-Sun Nov 5 14:05:13 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/create_vt_dsps.pl:
- * tests/version_tests/Atomic_Op_Test.dsp:
- * tests/version_tests/Auto_IncDec_Test.dsp:
- * tests/version_tests/Barrier_Test.dsp:
- * tests/version_tests/Basic_Types_Test.dsp:
- * tests/version_tests/Buffer_Stream_Test.dsp:
- * tests/version_tests/CDR_Array_Test.dsp:
- * tests/version_tests/CDR_File_Test.dsp:
- * tests/version_tests/CDR_Test.dsp:
- * tests/version_tests/Cache_Map_Manager_Test.dsp:
- * tests/version_tests/Cached_Accept_Conn_Test.dsp:
- * tests/version_tests/Cached_Conn_Test.dsp:
- * tests/version_tests/Capabilities_Test.dsp:
- * tests/version_tests/Collection_Test.dsp:
- * tests/version_tests/Conn_Test.dsp:
- * tests/version_tests/DLL_Test.dsp:
- * tests/version_tests/DLList_Test.dsp:
- * tests/version_tests/Dynamic_Priority_Test.dsp:
- * tests/version_tests/Enum_Interfaces_Test.dsp:
- * tests/version_tests/Env_Value_Test.dsp:
- * tests/version_tests/Future_Set_Test.dsp:
- * tests/version_tests/Future_Test.dsp:
- * tests/version_tests/Handle_Set_Test.dsp:
- * tests/version_tests/Hash_Map_Bucket_Iterator_Test.dsp:
- * tests/version_tests/Hash_Map_Manager_Test.dsp:
- * tests/version_tests/High_Res_Timer_Test.dsp:
- * tests/version_tests/IOStream_Test.dsp:
- * tests/version_tests/Lazy_Map_Manager_Test.dsp:
- * tests/version_tests/MM_Shared_Memory_Test.dsp:
- * tests/version_tests/MT_Reactor_Timer_Test.dsp:
- * tests/version_tests/MT_SOCK_Test.dsp:
- * tests/version_tests/Malloc_Test.dsp:
- * tests/version_tests/Map_Manager_Test.dsp:
- * tests/version_tests/Map_Test.dsp:
- * tests/version_tests/Mem_Map_Test.dsp:
- * tests/version_tests/Message_Block_Test.dsp:
- * tests/version_tests/Message_Queue_Notifications_Test.dsp:
- * tests/version_tests/Message_Queue_Test.dsp:
- * tests/version_tests/Naming_Test.dsp:
- * tests/version_tests/New_Fail_Test.dsp:
- * tests/version_tests/Notify_Performance_Test.dsp:
- * tests/version_tests/OS_Test.dsp:
- * tests/version_tests/Object_Manager_Test.dsp:
- * tests/version_tests/OrdMultiSet_Test.dsp:
- * tests/version_tests/Pipe_Test.dsp:
- * tests/version_tests/Priority_Buffer_Test.dsp:
- * tests/version_tests/Priority_Reactor_Test.dsp:
- * tests/version_tests/Priority_Task_Test.dsp:
- * tests/version_tests/Process_Manager_Test.dsp:
- * tests/version_tests/Process_Mutex_Test.dsp:
- * tests/version_tests/Process_Strategy_Test.dsp:
- * tests/version_tests/RB_Tree_Test.dsp:
- * tests/version_tests/Reactor_Exceptions_Test.dsp:
- * tests/version_tests/Reactor_Notify_Test.dsp:
- * tests/version_tests/Reactor_Performance_Test.dsp:
- * tests/version_tests/Reactor_Timer_Test.dsp:
- * tests/version_tests/Reactors_Test.dsp:
- * tests/version_tests/Reader_Writer_Test.dsp:
- * tests/version_tests/Recursive_Mutex_Test.dsp:
- * tests/version_tests/Reverse_Lock_Test.dsp:
- * tests/version_tests/SOCK_Connector_Test.dsp:
- * tests/version_tests/SOCK_Send_Recv_Test.dsp:
- * tests/version_tests/SOCK_Test.dsp:
- * tests/version_tests/SPIPE_Test.dsp:
- * tests/version_tests/SString_Test.dsp:
- * tests/version_tests/SV_Shared_Memory_Test.dsp:
- * tests/version_tests/Semaphore_Test.dsp:
- * tests/version_tests/Service_Config_Test.dsp:
- * tests/version_tests/Sigset_Ops_Test.dsp:
- * tests/version_tests/Simple_Message_Block_Test.dsp:
- * tests/version_tests/Svc_Handler_Test.dsp:
- * tests/version_tests/TSS_Test.dsp:
- * tests/version_tests/Task_Test.dsp:
- * tests/version_tests/Thread_Manager_Test.dsp:
- * tests/version_tests/Thread_Mutex_Test.dsp:
- * tests/version_tests/Thread_Pool_Reactor_Test.dsp:
- * tests/version_tests/Thread_Pool_Test.dsp:
- * tests/version_tests/Time_Service_Test.dsp:
- * tests/version_tests/Time_Value_Test.dsp:
- * tests/version_tests/Timeprobe_Test.dsp:
- * tests/version_tests/Timer_Queue_Test.dsp:
- * tests/version_tests/Tokens_Test.dsp:
- * tests/version_tests/UPIPE_SAP_Test.dsp:
- * tests/version_tests/Upgradable_RW_Test.dsp:
- * tests/version_tests/version_tests.dsw:
-
- Updated to use the new ACE_AS_STATIC_LIBS macro.
-
- * ace/Sample_History.cpp:
- * ace/SSL/SSL_Context.cpp:
- * ace/SSL/SSL_SOCK_Stream.i:
-
- Fixed miscellaneous ACE_USES_UNICODE problems with ACE_LIB_TEXT.
-
-Sat Nov 4 19:33:39 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Fixed the mail message, the path to the CGI script was garbled.
-
- * include/makeinclude/rules.local.GNU:
- My last fixed did not work for static builds, the SOLINK rules
- got in the way. It works correctly for both static and shared
- builds now.
-
-Sat Nov 4 18:19:46 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/RMCast_IO_UDP.cpp:
- * ace/RMCast/RMCast_Reassembly.cpp:
- * tests/Reactor_Notify_Test.cpp:
- Add missing template instantiations, they only showed up in
- builds with disabled inlining.
-
-Sat Nov 4 17:05:08 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- New revision of the script. It can copy log files directly to
- the destination directory, and it also runs the make_pretty
- script to generate both the HTML and HTML summary of the log.
-
- * bin/show_log_dir.pl:
- Corrections to the document and more fixes to make it Apache
- friendly.
-
- * include/makeinclude/rules.local.GNU:
- Add special target to force the creation of the .shobj and .obj
- directories, even with parallel builds. The faster our
- computers get the more often we get failures due to this
- problem.
-
-Sat Nov 4 14:53:39 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/make_pretty.pl:
- This is a modified version of Darrell's script to beautify our
- auto_compile logs. This version works better with Unix builds
- and is going to be invoked by bin/auto_compile to generate
- summary logs.
-
- * bin/show_log_dir.pl:
- A CGI script to present all the logs for a particular builds in
- a single page. It is a modified version of Darrell's script,
- but this time it works better on Unix web servers.
-
-Fri Nov 3 17:22:10 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: Backed of changes given by Russ
- Noseworthy through bug id #710. This was breaking SunCC5.0
- builds.
-
-Fri Nov 3 09:41:20 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/RMCast/RMCast_Membership_Test.cpp:
- Fixed warning about variables possibly uninitialized before
- their first use. In fact the variables are initialized before
- their first use, but the code flow is too complex for the
- compiler to figure that out.
-
-Fri Nov 3 09:34:39 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile:
- * tests/Makefile:
- * examples/Makefile:
- Disable the RMCast builds for old versions of g++
-
-Thu Nov 2 12:11:43 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Name_Request_Reply.h:
- * ace/Timer_Hash_T.h:
- * ace/Map_Manager.h:
- * ace/Log_Record.h:
- Minor adjustments to make doxygen happier.
-
-Thu Nov 2 11:57:37 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile:
- * tests/Makefile:
- * examples/Makefile:
- Enable the RMCast library, tests and examples by default.
-
-Wed Nov 1 17:24:59 2000 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * tests/RMCast/Makefile.bor:
- Added Makefile, thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> and Johnny.Willemsen <Johnny.Willemsen@meco.nl>
- for contributing.
-
-Wed Nov 1 14:11:48 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/*.h:
- Change all the header files to generate better docs with
- Doxygen. Thanks to Darrell for his wonderful script to automate
- this process.
-
-Tue Oct 31 19:01:19 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp (handle_input): Added
- a comment explaining why we don't go to heroic lengths to recv()
- all the data if it fails after the second recv(). Thanks to
- Steve Sivier <Steven.Sivier@Eng.Sun.COM> for motivating this.
-
-Tue Oct 31 14:21:11 2000 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: sort the output file names, so
- that guajira's cxx build shows up first (locally).
- Limit total number of lines to 2000 to keep below
- majordomo's size limit.
-
-Tue Oct 31 10:54:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Process.i:
-
- Changed the CREATE_UNICODE_ENVIRONMENT section to be only
- in ACE_WIN32 environments.
-
-Tue Oct 31 11:35:31 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/config-sunos5.5.h:
- * ace/Log_Msg.cpp: Added patches provided by Russ. Bugzilla id 710.
-
-Tue Oct 31 08:14:33 2000 Chris Cleeland <cleeland_c@ociweb.com>
-
- * wrapper_macros.GNU:
-
- Set defaults for exceptions, rtti, and fast to all be zero
- (0),i.e., off. Henceforth, if you're creating a new port and
- you want exceptions to be on, you must explicitly have
- "exceptions=1" in your platform_*.GNU file.
-
- * platform_irix6.x_common.GNU:
-
- Added an "exceptions=1" directive per the comment above.
-
-Mon Oct 30 18:56:33 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
-
- Changed several of the socket calls to use char instead
- of ACE_TCHAR, seeing that no OS supports anything but char.
- But I am keeping the ACE_TCHAR or dual char/wchar_t
- interfaces on classes higher up the stream.
-
- Methods changed are:
-
- - gethostbyaddr
- - gethostbyname
- - gethostbyname2
- - gethostbyaddr_r
- - gethostbyname_r
- - getprotobyname
- - getprotobyname_r
- - getservbyname
- - getservbyname_r
- - inet_addr
- - inet_ntoa
- - inet_aton
- - inet_ntop
- - inet_pton
-
- This should take care of a couple of things. First we don't
- have to worry about returning a wchar_t * static buffer
- instead of a char * static buffer from something like
- inet_ntoa and this should remove some slowdowns reported from
- gethostbyname. Thanks to Nick Pratt <npratt@microstrategy.com>
- for reporting both of these.
-
- * ace/INET_Addr.cpp:
- * ace/INET_Addr.h:
- * ace/INET_Addr.i:
-
- Fixed references to interface changes and added dual
- char/wchar_t interfaces to replace some ACE_TCHAR ones.
-
- * ace/MEM_Addr.cpp:
- * ace/MEM_Addr.h:
- * ace/MEM_Addr.i:
-
- Changed get_host_name and get_host_name to return char *
-
- * ace/SOCK_Dgram_Mcast.cpp:
- * ace/SOCK_Dgram_Mcast_QoS.cpp:
-
- Fixed all the references to the interface changes.
-
- * ace/Object_Manager.cpp:
-
- Added ERROR to the output for AV's and Unhandled Exceptions.
-
-Mon Oct 30 18:51:40 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * examples/IPC_SAP/SSL_SAP/SSL-client.dsp:
- * examples/IPC_SAP/SSL_SAP/SSL-server.dsp:
-
- Removed hardcoded OpenSSL include directories.
-
- * ace/ssl/SSL_Context.cpp:
- * ace/ssl/SSL_Context.h:
- * ace/ssl/SSL_SOCK.cpp:
- * ace/ssl/SSL_SOCK_Acceptor.cpp:
- * ace/ssl/SSL_SOCK_Acceptor.h:
- * ace/ssl/SSL_SOCK_Connector.cpp:
- * ace/ssl/SSL_SOCK_Connector.h:
- * ace/ssl/SSL_SOCK_Connector.i:
- * ace/ssl/SSL_SOCK_Stream.cpp:
- * ace/ssl/SSL_SOCK_Stream.h:
- * ace/ssl/SSL_SOCK_Stream.i:
-
- Removed the ACE_HAS_SSL #ifdefs, since ACE_SSL is a
- separate library, so it isn't really needed.
-
-Mon Oct 30 16:34:33 2000 Chris Cleeland <cleeland_c@ociweb.com>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
-
- More exceptions/fast/rtti canonicalization fixes. Thanks again,
- Carlos.
-
-Mon Oct 30 11:56:13 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile.am:
- * ace/Makefile.bor:
- Add missing files to the Borland and Automake makefiles.
-
-Mon Oct 30 11:38:07 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Basic_Stats.cpp:
- * ace/Basic_Stats.inl:
- * ace/Sample_History.cpp:
- * ace/Stats.cpp:
- Fixed problems on platforms that lack 64-bit integers.
-
-Mon Oct 30 11:10:26 2000 Chris Cleeland <cleeland_c@ociweb.com>
-
- * include/makeinclude/platform_linux.GNU:
- * include/makeinclude/platform_chorus_ghs.GNU:
-
- The change to canonicalize the values used for
- exceptions/fast/rtti caused the default for "exceptions" on these
- two platforms to change from exceptions off to exceptions on.
- There may be others, but without access to the compiler itself
- it's hard to tell what the default behavior is for the compiler
- and thus set the value for exceptions/rtti/fast accordingly.
-
- Thanks to Carlos O'Ryan <coryan@uci.edu> for pointing this out.
-
-Mon Oct 30 00:57:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/OS_Test.cpp:
-
- Was a bit overzealous on a previous [] to * change,
- so switched one back to [] to remove a segfault
- with the strncmp section.
-
-Sun Oct 29 23:46:54 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ace_wchar.h:
-
- Removed the definitions for LPTSTR and LPCTSTR. They
- will need to be defined outside of ace or in config.h
- to be made available on other platforms. Here is a
- sample block which can be added to a non-Win32 config.h:
-
- typedef char *LPSTR;
- typedef const char *LPCSTR;
- typedef wchar_t *LPWSTR;
- typedef const wchar_t *LPCWSTR;
-
- #if defined (UNICODE)
- typedef const wchar_t *LPCTSTR;
- typedef wchar_t *LPTSTR;
- typedef wchar_t TCHAR;
- #define __TEXT(literal) L##literal
- #else
- typedef const char *LPCTSTR;
- typedef char *LPTSTR;
- typedef char TCHAR;
- #define __TEXT(literal) literal
- #endif
-
- #define TEXT(literal) __TEXT(literal)
-
- * ace/config-vxworks5.x.h:
-
- Added ACE_LACKS_WCSDUP.
-
-Sun Oct 29 01:59:11 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/doxygen-convert-h.pl: (added)
-
- New script to convert old header files to new doxygen
- style commented files. Works well, but some things
- do throw it for a loop, be sure to check output before
- checking in.
-
-Sat Oct 28 15:02:40 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Stats.h:
- Cosmetic fixes to make doxygen happier.
-
-Fri Oct 27 17:21:56 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/OS_Test.cpp:
-
- Darrell learned how to use strtok_r properly. 'nuff said.
-
-Fri Oct 27 17:04:02 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/OS_Test.cpp:
-
- Changed the arrays ([]) to array pointers (*) since the
- pointer arithmatic I do doesn't seem to work with the
- arrays.
-
-Fri Oct 27 15:45:57 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Add the new files to the MSVC projects.
-
-Fri Oct 27 15:02:56 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/Sample_History.h:
- * ace/Sample_History.inl:
- * ace/Sample_History.cpp:
- Add new class to keep a full history of all the samples in a
- performance test.
-
- * ace/Basic_Stats.h:
- * ace/Basic_Stats.inl:
- * ace/Basic_Stats.cpp:
- * ace/Stats.h:
- * ace/Stats.cpp:
- Refactor code to compute minimum, maximum, average and jitter
- into its own class. It used to be part of ACE_Througthput_Stats
-
- * performance-tests/TCP/Makefile:
- * performance-tests/TCP/tcp_test.cpp:
- Use the new ACE_Sample_History class.
-
-Fri Oct 27 12:04:17 2000 Chris Cleeland <cleeland_c@ociweb.com>
-
- * platform_chorus.GNU:
- * platform_chorus4.x_g++.GNU:
- * platform_chorus_ghs.GNU:
- * platform_cray.GNU:
- * platform_hpux_kcc.GNU:
- * platform_linux_cxx.GNU:
- * platform_osf1_4.0.GNU:
- * platform_sunos5_ghs.GNU:
- * platform_sunos5_kcc.GNU:
- * platform_sunos5_sunc++.GNU:
- * platform_vxworks5.x_diab.GNU:
- * platform_vxworks5.x_g++.GNU:
- * wrapper_macros.GNU:
-
- Changed the way that 'rtti', 'exceptions', and 'fast' makeflags
- get processed in wrapper_macros.GNU. There was a discrepancy
- between the "command line" value and the "platform_macros file"
- value each needed in order to turn the feature off, e.g., zero
- on the command line and "null" in the file. After
- investigation, the discrepancy seemed to be without reason, so
- I've canonicalized them. You can now put "exceptions=0" on
- either the command line OR in the platform_macros.GNU file.
-
-Fri Oct 27 10:51:26 2000 Steve Huston <shuston@riverace.com>
-
- * tests/Reactor_Notify_Test.cpp: Moved definition of 'int status'
- outside the auto_ptr-scoping block.
-
-Fri Oct 27 02:06:29 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ace/OS.cpp:
- * ace/OS.i:
-
- Fixed some warnings due to int ace_result_ declared for NT.
-
-Thu Oct 26 22:18:42 2000 Alex Arulanthu <Alex.Arulanthu@sylantro.com>
-
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
- * ace/Service_Config.h:
- * ace/Service_Config.cpp:
- * ace/Service_Config.i:
-
- Setting the right default values for process and thread level
- priority masks. I had already talk to Steve H about this
- change. I just forgot to get this in.
-
-Thu Oct 26 14:04:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.h:
-
- Reverted Doug's change which defined ACE_MAX_USERID to
- L_cuserid on all platforms. It ended up that this
- is only valid on Windows when _POSIX_ is defined.
-
-Thu Oct 26 11:20:43 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/RMCast/RMCast_IO_UDP.cpp:
- * ace/RMCast/RMCast_Reassembly.cpp:
- * tests/CDR_Array_Test.cpp:
- * tests/RMCast/RMCast_Fragment_Test.cpp:
- * tests/RMCast/RMCast_Membership_Test.cpp:
- * tests/RMCast/RMCast_Reassembly_Test.cpp:
- * tests/RMCast/RMCast_Reordering_Test.cpp:
- * tests/RMCast/RMCast_Retransmission_Test.cpp:
- * tests/RMCast/RMCast_UDP_Best_Effort_Test.cpp:
-
- The usual additions of ACE_TEXT to make ACE_USES_WCHAR builds
- happy.
-
-Thu Oct 26 12:19:45 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Memory_Pool.cpp (unmap): Fixed a bug that was preventing
- the handle from being closed. Thanks to Ivan Murphy and Dieter
- Quehl for reporting this.
-
-Thu Oct 26 10:56:36 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (ACE_OS::rename): Added && (ACE_HAS_WINNT4 == 1) to the
- defined (ACE_HAS_WINNT4) to avoid this code section on Win95/98.
-
-Thu Oct 26 07:39:22 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- ace/OS.h: Added a new macro called ACE_MAX_USERID that is 32 on
- Win32 and L_cuserid on other platforms.
-
- * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp,
- examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp,
- examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp,
- examples/Service_Configurator/IPC-tests/server/Handle_R_Stream:
- Fixed the calls to cuserid() so they don't pass in 0, but
- instead pass in a buffer of size ACE_MAX_USERID. This fixes a
- problem that occurs on WinNT. Thanks to Mike Curtis
- <mccurry@my-deja.com> for pointing this out.
-
- * tests/Reactor_Notify_Test.cpp: Fixed an unused args warning
- and also added the use of auto_ptr to ensure that dynamic memory
- is deleted no matter what return path is taken.
-
-Thu Oct 26 04:00:00 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS.cpp:
- * ace/OS_Dirent.inl:
- Fixing more ACE_HAS_PACE over NT. Most fixes just skip the
- PACE call. NT doesn't implement much of posix and so
- many ACE calls will skip pace until PACE/WINNT emulates
- more posix functionality.
-
-Wed Oct 25 20:38:33 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/SSL/ACE_SSL.dsp:
-
- Removed the include/lib directories put here. Instead
- we rely on the fact that OpenSSL should be in
- DevStudio's global include and library directories.
-
-Wed Oct 25 13:20:24 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Purgable_Map_Manager_Test: Removed this deprecated test.
- The following files were effected:
-
- - Makefile.am
- - icc.bat
- - t.icc
-
- These files were removed:
-
- - Purgable_Map_Manager_Test.cpp
- - Purgable_Map_Manager_Test.icc
-
-Wed Oct 25 11:24:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/adapter/README: (removed)
- * ace/adapter/ace/ACE.h: (removed)
- * ace/adapter/ace/ARGV.h: (removed)
- * ace/adapter/ace/ATM_Addr.h: (removed)
- * ace/adapter/ace/Arg_Shifter.h: (removed)
- * ace/adapter/ace/Capabilities.h: (removed)
- * ace/adapter/ace/DEV_Addr.h: (removed)
- * ace/adapter/ace/DLL.h: (removed)
- * ace/adapter/ace/Dirent.h: (removed)
- * ace/adapter/ace/Dynamic_Service.h: (removed)
- * ace/adapter/ace/FIFO.h: (removed)
- * ace/adapter/ace/FIFO_Recv.h: (removed)
- * ace/adapter/ace/FIFO_Recv_Msg.h: (removed)
- * ace/adapter/ace/FIFO_Send.h: (removed)
- * ace/adapter/ace/FIFO_Send_Msg.h: (removed)
- * ace/adapter/ace/FILE_Addr.h: (removed)
- * ace/adapter/ace/Functor.h: (removed)
- * ace/adapter/ace/High_Res_Timer.h: (removed)
- * ace/adapter/ace/INET_Addr.h: (removed)
- * ace/adapter/ace/MEM_Addr.h: (removed)
- * ace/adapter/ace/Malloc_T.h: (removed)
- * ace/adapter/ace/Memory_Pool.h: (removed)
- * ace/adapter/ace/OS.h: (removed)
- * ace/adapter/ace/OS_Dirent.h: (removed)
- * ace/adapter/ace/OS_String.h: (removed)
- * ace/adapter/ace/SOCK_Dgram_Bcast.h: (removed)
- * ace/adapter/ace/SOCK_Dgram_Mcast.h: (removed)
- * ace/adapter/ace/SOCK_Dgram_Mcast_QoS.h: (removed)
- * ace/adapter/ace/SPIPE_Addr.h: (removed)
- * ace/adapter/ace/Service_Config.h: (removed)
- * ace/adapter/ace/Service_Object.h: (removed)
- * ace/adapter/ace/Stats.h: (removed)
- * ace/adapter/ace/System_Time.h: (removed)
- * ace/adapter/ace/Task_T.h: (removed)
- * ace/adapter/ace/Trace.h: (removed)
-
- The adapter classes were removed since they were
- not ready for prime time and their main purpose was
- invalidated. If need be, they can be brought back in
- the future.
-
-Wed Oct 25 12:26:25 2000 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/RMCast/RMCast_UDP_Reliable_Sender.cpp:
- Yet another missing #include
-
-Wed Oct 25 09:50:48 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/RMCast_IO_UDP.h:
- * ace/RMCast/RMCast_IO_UDP.cpp:
- * ace/RMCast/RMCast_UDP_Reliable_Receiver.h:
- * ace/RMCast/RMCast_UDP_Reliable_Receiver.i:
- * ace/RMCast/RMCast_UDP_Reliable_Receiver.cpp:
- * ace/RMCast/RMCast_UDP_Reliable_Sender.h:
- * ace/RMCast/RMCast_UDP_Reliable_Sender.i:
- * examples/RMCast/Send_File/Makefile:
- * examples/RMCast/Send_File/Sender.cpp:
- * examples/RMCast/Send_File/Receiver.cpp:
- Change several open() methods to init() because the base class
- already has a virtual open() method, but with a different
- signature, some compilers generate warnings when this happens.
- Add #include required in platforms that do not define
- ACE_TEMPLATES_REQUIRE_SOURCE
-
-Wed Oct 25 09:32:10 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Object_Manager.cpp:
-
- Changed to only use the CRT_ERROR disabling under
- ACE_DISABLE_WIN32_ERROR_WINDOWS when _DEBUG is defined,
- since crtdbg.h is only included by ACE when _DEBUG is
- defined.
-
-Wed Oct 25 10:51:26 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Select_Reactor_Base.cpp (purge_pending_notifications): Added
- ACE_UNUSED_ARG (eh) for the non-ACE_HAS_REACTOR_NOTIFICATION_QUEUE
- case to quiet g++'s unused argument warning.
-
-Tue Oct 24 23:14:55 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.cpp:
- * ace/config-win32-borland.h:
-
- Added ACE_LACKS_WCSDUP to do something similar to
- ACE_HAS_STRDUP_EMULATION. Added this to Borland's config,
-
- Also fixed several warnings in OS_String's emulation
- functions that show up with g++.
-
- * ace/Object_Manager.cpp:
-
- Added code in the Object Manager to disable some of the
- error windows that pops up in Win32 apps. If
- ACE_DISABLE_WIN32_ERROR_WINDOWS is defined, then
- ACE_ASSERT's and Access Violations will not pop up
- error box's anymore. This was mainly added for auto
- build purposes.
-
- * ace/Select_Reactor_Base.cpp:
-
- Changed ACE_TEXT's to ACE_LIB_TEXT.
-
- * ace/WFMO_Reactor.cpp:
-
- In ACE_WFMO_Reactor_Notify::purge_pending_notifications
- there was an instance of this type of code:
-
- for (size_t index = 0; index < ....)
- ...
- for (index = 0; index ....)
-
- On Borland, the index is scoped within the for loop, so
- the second use of it produces an error. I moved the
- declaration outside of the loop to fix this.
-
-Tue Oct 24 23:40:33 2000 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/SString_Test.cpp (main): Added tests for string
- assignments.
-
-Tue Oct 24 19:30:16 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Select_Reactor_Base.cpp (purge_pending_notifications): Correct
- erroneous use of 'index' as a variable when it's also a function.
-
-Tue Oct 24 13:54:49 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile (TEMPLATE_FILES):
-
- Added missing Test_and_Set source file to the list.
-
- * ace/Makefile.am (libACE_Utils_la_SOURCES, HEADER_FILES,
- INLINE_FILES, TEMPLATE_FILES):
-
- Updated these lists of sources with the newly added sources.
-
-Tue Oct 24 12:30:47 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Reactor.h (ACE_Reactor):
- * ace/Reactor_Impl.h (ACE_Reactor_Notify and ACE_Reactor_Impl):
- * ace/Select_Reactor_Base.h (ACE_Select_Reactor_Notify and
- ACE_Select_Reactor_Impl):
- * ace/WFMO_Reactor.h (ACE_WFMO_Reactor_Notify and ACE_WFMO_Reactor):
- Added new function, purge_pending_notifications (ACE_Event_Handler *)
-
- * ace/Reactor.i (ACE_Reactor):
- * ace/Select_Reactor_Base.i (ACE_Select_Reactor_Impl):
- Added implementation of purge_pending_notifications that forwards
- the call on to the proper implementation/handler object.
-
- * ace/Select_Reactor_Base.cpp (ACE_Select_Reactor_Notify): Added
- implementation of purge_pending_notifications. Works when
- ACE_HAS_REACTOR_NOTIFICATION_QUEUE is defined. Else it does
- ACE_NOTSUP_RETURN.
-
- * ace/WFMO_Reactor.cpp (ACE_WFMO_Reactor, ACE_WFMO_Reactor_Notify):
- Added implementation of purge_pending_notifications.
-
- Thanks to Edan Ayal <edana@bandwiz.com> for supplying the code for
- this new feature.
-
- * ace/Reactor.i (notify): Set the event handler's reactor pointer if
- it doesn't already have one. Enables the event handler to purge
- its notifications upon destruction.
-
- * ace/Event_Handler.cpp (~ACE_Event_Handler): Call reactor's
- purge_pending_notifications function to avoid delivering notifies
- to a deleted handler.
-
- * tests/Reactor_Notify_Test.cpp: Added the run_notify_purge_test
- function to exercise the above new purge_pending_notifications.
-
-Tue Oct 24 12:05:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.inl:
-
- Removed an extra } after an #endif that was producing
- warnings on OSF.
-
-Tue Oct 24 09:27:04 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Test_and_Set.cpp:
- Removed the repeated inclusion of the header file.
- Thanks to Darrell.
-
-Tue Oct 24 03:24:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Basic_Types.h:
- * ace/config-win32-common.h:
-
- Moved the code that defines ACE_SIZEOF_WCHAR to the config file,
- so it is easier to add it to other platforms.
-
- * ace/config-linux-common.h:
-
- Added ACE_SIZEOF_WCHAR, ACE_LACKS_ITOW, ACE_LACKS_WCSICMP, and
- ACE_LACKS_WCSNICMP definitions.
-
- * ace/Synch.h:
-
- Moved the ACE_LEGACY_MODE includes further down in the file. It
- was producing errors the way it was, since Test_and_Set needed
- the Guard classes defined before it was included.
-
-Mon Oct 23 15:31:52 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Malloc_Allocator.cpp:
- Yet another calloc() method that was declared but not defined.
-
-Mon Oct 23 11:37:06 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Init_ACE.cpp:
- Removed the semicolon at the end of ACE_RCSID.
-
-Mon Oct 23 11:20:53 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Malloc_T.i:
- Add missing function, now things actually link.
-
-Mon Oct 23 10:02:36 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Malloc_T.h:
- Add missing prototype, now the code actually compiles.
-
-Mon Oct 23 10:59:21 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS_String.cpp: Fixed a compile error in gcc 2.95.2.
-
- * ace/Cached_Connect_Strategy_T.h
- * ace/Cached_Connect_Strategy_T.cpp: Added fixes provided by Edan
- Ayal <edana@bandwiz.com>.
-
-Mon Oct 23 08:37:49 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Malloc_T.{h,cpp}
- * ace/Malloc_Base.h,
- * ace/Malloc_Allocator.{h,cpp}: Added a new calloc() method that
- has the same (default) signature as the one in the C/C++
- standard library. Thanks to Shourya Sarcar
- <Shourya.Sarcar@geind.ge.com> for reporting this.
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp (handle_input):
- Fixed a mistake where we were calling release() via a NULL
- pointer! Thanks to Pedro Brandao <pbrandao@inescn.pt> for
- reporting this.
-
-Sun Oct 22 18:01:34 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.cpp:
-
- strtok_r_emulation wasn't protected by #if !defined
- (ACE_HAS_REENTRANT_FUNCTIONS).
-
-Sun Oct 22 17:30:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ACE.i:
-
- wcslen was used directly here, changed it to
- ACE_OS_String::strlen.
-
- * ace/ace_wchar.inl:
-
- Moved around some of the inline functions to
- remove warnings.
-
- * ace/config-vxworks5.x.h:
-
- Added all the ACE_LACKE_WCS* that VxWorks needs.
-
-Sun Oct 22 17:22:32 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/OS_Test.cpp:
-
- Borland complained about memchr (NULL, ...), since
- it couldn't figure out whether to use the void * or
- const void* verison of ACE_OS_String::memchr.
- Added an explicit cast to help out.
-
-Sun Oct 22 17:09:26 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/MT_SOCK_Test.cpp:
-
- Missed an ACE_ALPHABET in a previous checkin.
-
- And based on this part of the description in the file:
-
- "Note that most of the connections will fail since
- we're overrunning the size of the listen queue for
- the acceptor-mode socket."
-
- I changed the connection_failed ACE_ERROR_RETURN to an
- ACE_DEBUG and return. Now it will not show up as an error
- via run_test.pl.
-
-Sun Oct 22 16:32:24 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.cpp:
- * ace/OS_String.h:
- * ace/OS_String.inl:
- * ace/config-linux-common.h:
-
- Renamed ACE_HAS_SAFE_WCSTOK to ACE_LACKS_WCSTOK to be
- consistent with the rest of the ACE_LACKS_WCS* macros.
-
- Fixed a signature for wcsncmp_emulation, as it was taking
- in const wchar_t as the first arg instead of const
- wchar_t *.
-
- Added wcscspn_emulation and an implementation for
- wcsncmp_emulation.
-
-Sun Oct 22 15:35:38 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Makefile.bor:
-
- Changed ACE_Sock_Connect.obj to Sock_Connect.obj, since
- it appears that it has been renamed.
-
-Sun Oct 22 15:07:42 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ace_dll.dsp:
-
- While playing with doxygen, I found some old .h files listed
- in the project but no longer existed. Removed these.
-
- * ace/OS_String.cpp:
- * ace/OS_String.h:
- * ace/OS_String.inl:
-
- Added quite a few emulation macros for wcs* functions that
- often do not exist on platforms. Since these wcs* functions
- just play with wchar_t's, they are not difficult to put in.
- Some, such as to_upper and strtod/l/ul are more difficult,
- so they are not present on platforms without support for
- them.
-
- Also updated the docs to doxygen style. Someday I'll get
- around to writing a script to do this...
-
- * ace/config-win32-borland.h:
- * ace/config-win32-msvc.h:
-
- Added a couple of macros:
- - ACE_HAS_STRCASECMP_EQUIVALENT
- - ACE_HAS_STRNCASECMP_EQUIVALENT
- - ACE_ITOA_EQUIVALENT
-
- These are used to specify different names for functions
- that differ in names across different compilers.
-
- * tests/OS_Test.cpp:
-
- Added tests to test OS_String methods so I can make sure
- the emulations work.
-
- * tests/Buffer_Stream_Test.cpp:
- * tests/Conn_Test.cpp:
- * tests/MM_Shared_Memory_Test.cpp:
- * tests/Mem_Map_Test.cpp:
- * tests/Priority_Buffer_Test.cpp:
- * tests/Priority_Reactor_Test.cpp:
- * tests/Reactor_Performance_Test.cpp:
- * tests/SOCK_Test.cpp:
- * tests/SPIPE_Test.cpp:
- * tests/test_config.h:
-
- In order to get the test_config.h to work when a project
- has more than one .cpp file that includes it (and some
- compilers give warnings about a static char[]) I moved
- ACE_ALPHABET into the tests that need it. Also I changed
- it to a static const char[] in places that allowed it.
-
- So it could be possible to move it back to test_config.h
- now that it can be static const char[], but I'm not 100%
- sure that will keep all compilers from complaining.
-
- * tests/run_test.lst:
-
- Added OS_Test to the list of tests run.
-
-Sun Oct 22 17:11:16 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Malloc_T.h: Added a default value of sizeof (T) to the
- malloc() method of class ACE_Cached_Allocator. Thanks to
- Shourya Sarcar <Shourya.Sarcar@geind.ge.com> for reporting this.
-
-Sun Oct 22 10:08:31 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile.bor:
- Update file names for the ACE_ components.
-
-Sun Oct 22 08:57:33 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/test_config.h: implemented these changes to remove
- g++ warnings introduced by:
-
- Thu Oct 19 13:17:41 2000 Darrell Brunsch <brunsch@uci.edu>
-
- 1) Moved ace_file_stream typedef to end of file.
- 2) Moved inline definition of ACE_Test_Output::output_file ()
- to before first use.
- 3) Removed static qualifier from ACE_ALPHABET.
-
-Sat Oct 21 12:52:58 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * Makefile*:
- Update dependencies.
-
-Fri Oct 20 20:46:37 2000 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (chdir): Added !defined (AIX) to the !defined (ACE_WIN32)
- && defined (<Visual Age C++>) to get it to build clean on AIX.
-
- * ace/ace-dll.icc: Added Base_Thread_Adapter, Thread_Adapter,
- Flag_Manip, Handle_Ops, Init_ACE, Lib_Find, Sock_Connect,
- OS_Log_Msg_Attributes, Malloc_Allocator, PI_Malloc,
- Thread_Exit, Log_Msg_IPC, OS_Thread_Adapter, Log_Msg_Backend,
- Thread_Control (h and cpp).
-
- * ace/Handle_Ops.cpp:
- * ace/PI_Malloc.cpp: Corrected ACE_RCSID args.
-
-Fri Oct 20 16:38:55 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Update MSVC projects
-
-Fri Oct 20 16:23:40 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/ACE.h:
- Modified to include the renamed files.
-
-Fri Oct 20 14:13:43 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Sock_Connect.i:
- * ace/Sock_Connect.h:
- * ace/Sock_Connect.cpp:
-
- * ace/Lib_Find.i:
- * ace/Lib_Find.h:
- * ace/Lib_Find.cpp:
-
- * ace/Init_ACE.i:
- * ace/Init_ACE.h:
- * ace/Init_ACE.cpp:
-
- * ace/Handle_Ops.i:
- * ace/Handle_Ops.h:
- * ace/Handle_Ops.cpp:
-
- * ace/Flag_Manip.i:
- * ace/Flag_Manip.h:
- * ace/Flag_Manip.cpp:
- Renamed the recently added ACE_* files as above to follow
- the naming convention.
-
- * ace/IPC_SAP.h:
- * ace/IO_SAP.h:
- * ace/FILE_Connector.cpp:
- * ace/FILE_Addr.h:
- Changed the include files to reflect the above change.
-
- * ace/Makefile:
- Added the new files and updated dependencies.
-
-Fri Oct 20 11:40:31 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Makefile:
- Updated dependencies.
-
-Fri Oct 20 02:52:17 2000 Marina Spivak <marina@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added RTCORBA Server_Declared test.
-
-Thu Oct 19 18:02:54 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/OS_Log_Msg_Attributes.h :
- Modified u_long to 'unsigned long' as the compiler was
- complaining.
-
-Thu Oct 19 13:52:49 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Malloc_Allocator.cpp:
- * ace/Naming_Context.cpp:
- * ace/PI_Malloc.cpp:
-
- Needed to change some ACE_TEXT's to ACE_LIB_TEXT.
-
- * ace/OS.h:
- * ace/OS_Log_Msg_Attributes.h:
-
- Moved the definition of ACE_OSTREAM_TYPE from OS.h to
- OS_Log_Msg_Attributes.h, since some include paths in
- ACE_LEGACY_MODE needed it there.
-
-Thu Oct 19 13:17:41 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/run_test.pl:
-
- Changed the method used to detect errors in a log file. Since
- the log contains the log message type (such as LM_ERROR),
- I changed the detection to look for this.
-
- * tests/ACE_Init_Test.cpp:
-
- Added ACE_START_TEST and ACE_END_TEST so the run_test.pl
- script won't think ACE_Init_Test failed.
-
- * tests/test_config.h:
-
- With the way ACE_ALPHABET and some functions were defined,
- they would cause duplicate symbols if test_config.h was
- included in more than one object file. Changed them so
- the symbols are static to the file.
-
- * tests/Reactors_Test.cpp:
-
- When the reactor was shutting down, it was returning a
- information message with ACE_ERROR_RETURN. Since it really
- wasn't an error condition, changed this to a ACE_DEBUG
- and return 0.
-
- * tests/SOCK_Send_Recv_Test.cpp:
-
- The test was checking errno without checking a return value.
- As a result, it was getting an out-of-date errno and
- incorrectly interpreted that as an error. Fixed.
-
-Thu Oct 19 12:12:00 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ACE_Lib_Find.h:
-
- Added missing static specifier for the wchar version of
- strrepl.
-
-Thu Oct 19 12:03:41 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * apps/JAWS2/HTTPU/HTTPU.DSP:
- * apps/JAWS2/JAWS/jaws.dsp:
-
- These two projects were placing their DLL's in the wrong
- directory.
-
-Thu Oct 19 14:23:52 2000 Steve Huston <shuston@riverace.com>
-
- * ace/ace-dll.icc: Removed extraneous ',' from Win32 section.
-
-Thu Oct 19 12:08:45 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.cpp: Fixed compile errors with old
- g++.
-
-Thu Oct 19 09:56:44 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Basic_Types.h:
- Must #include stdio.h for platforms that lack 'long long'
-
-Thu Oct 19 09:50:30 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Log_Msg.cpp:
- Fixed problems during TSS cleanup, the ipc_backend_ object was
- used after being destroyed. Apparently this only happens on some
- platforms, but fortunately David's build detected the bug.
-
-Thu Oct 19 09:07:47 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/RMCast_Copy_On_Write.h:
- Fixed problem in 'friend' declaration, most compilers let it go
- through, but not the newer gcc snapshots. Thanks to Craig
- Rodrigues <crodrigu@bbn.com> for providing this patch.
-
-Wed Oct 18 15:44:14 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * OS.h:
- * OS.i:
- * OS.cpp:
-
- Modifications to sem_open debugging ACE_HAS_PACE over NT.
-
-Wed Oct 18 09:45:12 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.h :
- * ace/Cached_Connect_Strategy_T.cpp: Added some fixes provided by
- Edan Ayal <edana@bandwiz.com>.
-
-Tue Oct 17 23:35:33 2000 David L. Levine <levine@cs.wustl.edu>
-
- * Don't use ACE_TSS_EMULATION by default with LynxOS 3.1.0
- because it's not necessary, according to
- Jessie Ragsdale <jessie.ragsdale@latuslw.com>, and breaks
- split=1. Jessie was able to create upo to 118 natvie TSS keys,
- so the 3-key limit of LynxOS 3.0.0 has been removed in 3.1.0.
- [Bug 701]
-
-Tue Oct 17 00:21:41 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h,
- examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i,
- examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h,
- examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i,
- examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h,
- examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i,
- examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h,
- examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i,
- examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h,
- examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i:
- Changed *::get_handle(), *::handle_input(), and
- *::handle_close() to use ACE_HANDLE and ACE_INVALID_HANDLE
- instead of int and -1. Thanks to Mike Curtis
- <mccurry@my-deja.com> for pointing this out.
-
-Mon Oct 16 14:05:13 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: removed spurious 3D characters from
- VxWorks section.
-
-Mon Oct 16 11:17:08 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile.am:
- Fixed misnamed file.
-
-Mon Oct 16 11:07:34 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Log_Msg.cpp:
- Fixed memory leak, or rather, make sure that the default Log_Msg
- IPC backend is destroyed when the Log_Msg class is closed.
-
- * ace/Object_Manager.cpp:
- Fixed typo in #endif, the final comment was not really a
- comment.
-
-Sun Oct 15 19:14:13 2000 Marina Spivak <marina@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
- Excluded tests/RTCORBA/Client_Propagated from running in
- Exceptions build since it's a linux build.
-
-Sat Oct 14 15:04:16 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- * ace/Naming_Context.h:
- Static services must be exported from the library, so they
- require the right export directives.
- Added a new ACE_STATIC_SVC_DECLARE_EXPORT() macro for that
- purpose and use it for the Naming_Context.
-
-Sat Oct 14 09:55:43 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile.bor:
- Fixed typo in file name.
-
-Sat Oct 14 03:32:54 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/ACE_Flag_Manip.h:
- * ace/Service_Templates.h:
- Added a missing header file.
-
-Fri Oct 13 22:40:27 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Add new files to the project.
-
- * ace/Log_Msg.cpp:
- Fixed typo in management of structured exception handling
- callbacks.
-
-Fri Oct 13 21:49:54 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- Add the new Log_Msg files to the Makefiles.
-
- * ace/ACE_Lib_Find.cpp:
- Add ACE_RCSID macro
-
- * ace/config-all.h:
- * ace/OS_Log_Msg_Attributes.h:
- * ace/OS_Log_Msg_Attributes.inl:
- * ace/OS_Log_Msg_Attributes.cpp:
- * ace/Base_Thread_Adapter.h:
- * ace/Base_Thread_Adapter.cpp:
- We pre-allocate the Log_Msg attributes in the Thread_Adapter, to
- minimize memory allocations during thread creation.
-
- * ace/Log_Msg_Callback.h:
- * ace/Log_Msg_Callback.cpp:
- Move the Log_Msg callback interface to its own file.
-
- * ace/Log_Msg_Backend.h:
- * ace/Log_Msg_Backend.cpp:
- Define the interface for Log_Msg backend strategies.
-
- * ace/Log_Msg_IPC.h:
- * ace/Log_Msg_IPC.cpp:
- Implement a Log_Msg backend based on IPC.
- The intention is to decouple Log_Msg from IPC components, thus
- Log_Msg only uses the abstract class ACE_Log_Msg_Backend.
- In the future we could implement other backends, such as logging
- to syslog or the NT event log directly.
- We need to use a dynamically loaded factory to complete the
- decoupling, but that would take a little more effort.
-
- * ace/Log_Msg.h:
- * ace/Log_Msg.cpp:
- Use the attributes directly.
- Use the new Log_Msg_Backend classes.
-
- * tests/Log_Msg_Test.cpp:
- * examples/Log_Msg/test_callback.cpp:
- #include Log_Msg_Callback.h, the file is not included unless
- ACE_LEGACY_MODE is set.
-
- * tests/Malloc_Test.cpp:
- Add missing #include
-
- * examples/Shared_Malloc/test_position_independent_malloc.h:
- * examples/Shared_Malloc/test_position_independent_malloc.cpp:
- Reordered #includes to make them more standard.
-
-Fri Oct 13 22:34:59 2000 Marina Spivak <marina@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added new TAO/tests/RTCORBA/Client_Protocol test to the list.
- Removed TAO/tests/Endpoint_Per_Priority because
- TAO::Client_Priority_Policy is now disabled in builds by
- default. Enabled TAO/tests/RTCORBA/Server_Protocol for linux
- builds (it was disabled for some reason).
-
-Fri Oct 13 19:12:31 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Malloc_T.h: Added #include "ace/Malloc.h" because the definition
- of ACE_Control_Block is needed, and it's in Malloc.h.
-
-Fri Oct 13 18:47:51 2000 Steve Huston <shuston@riverace.com>
-
- * ace/Caching_Strategies_T.cpp:
- * ace/Dynamic_Service.cpp:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Wheel_T.cpp:
- * netsvcs/lib/Log_Message_Receiver.cpp: Added #include "ace/Log_Msg.h"
- else IBM C++ can't compile the template at instantiation time.
-
- * tests/Process_Strategy_Test.h: Added #include "ace/File_Lock.h" to
- see ACE_File_Lock, so IBM C++ can compile the templates.
-
-Fri Oct 13 18:43:24 2000 Steve Huston <shuston@riverace.com>
-
- * tests/MM_Shared_Memory_Test.cpp: Changed SYNCHRONIZER ctor for
- ACE_SV_Semaphore_Simple case to specify
- ACE_SV_Semaphore_Simple::ACE_CREATE, not ACE_SV_Semaphore_Complex::
- ACE_CREATE. Else it got compile failures on Solaris, Sun CC,
- in PACE build (why in just PACE build? Dunno...)
-
-Fri Oct 13 13:57:40 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Process_Manager.h :
- * ace/Process_Manager.cpp :
-
- * ace/Service_Config.h :
- * ace/Service_Config.cpp:
-
- Removed dependency of Service_Config on Process_Manager by
- registering the Process_Manager singleton with the
- Object_Manager when it is instantiated. This way we need not call
- ACE_Process_Manager::close_singleton () in Service_Config
- implementation.
-
-Mon Oct 9 10:34:18 2000 Ossama Othman <ossama@uci.edu>
-
- * configure.in:
-
- Corrected comments regarding the ACE_HAS_STREAM_PIPES run-time
- test.
-
-Fri Oct 13 11:41:29 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Makefile.bor (OBJFILES):
- * ace/Makefile.am (libACE_Utils_la_SOURCES):
- Updated to include the new files.
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp:
- Included a header file.
-
-Fri Oct 13 11:43:56 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated supported platforms list.
-
-Fri Oct 13 11:39:54 2000 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added Jaffar Shaikh's <Jaffar_Shaikh@Mitel.COM>
- notes for building for VxWorks target on NT host.
-
-Fri Oct 13 06:26:18 2000 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * examples/RMCast/Send_File:
- Added makefiles for Send_File multicast example.
-
- * include/makeinclude/build_dll.bor:
- * include/makeinclude/build_exe.bor:
- * include/makeinclude/build_lib.bor:
- Added support for compilation of C source files.
-
- * include/makeinclude/ace_flags.bor:
- Added IORManip and FaultTolerance libraries for TAO.
-
- Thanks to Christopher Kohlhoff for providing these fixes.
-
-Thu Oct 12 23:33:21 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Synch.h:
- * ace/Synch_T.h:
- * ace/Test_and_Set.cpp:
- Fixed order of includes to compile under gcc.
-
-Thu Oct 12 22:58:13 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/ACE_Lib_Find.h:
- * ace/ACE_Lib_Find.cpp:
- * ace/ACE.cpp:
- Move the wchar version of strrepl and strsplit_r to the
- ACE_Lib_Find class, the other versions where there already.
-
- * ace/FILE_IO.h:
- * ace/FILE_Connector.cpp:
- Add missing #include in FILE_IO.h that is used in FILE_IO.i
-
- * ace/Test_and_Set.h:
- * ace/Test_and_Set.cpp:
- Fixed the guards for the .cpp file. Add the #include for
- platforms that requires template source visible, and add the
- #pragma implementation for (really) old g++ versions.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Move Test_and_Set.cpp to the "Template Files" folder, and
- disable compilation for it.
-
-Thu Oct 12 23:09:17 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/OS.i:
- Added a !defined (__Lynx__) check for ACE_HAS_PACE in the
- ACE_OS::mmap function. ACE does some special things for Lynx
- for mmap since Lynx's mmap is deficient. Probably should
- move this fix from ACE to PACE at some point.
-
-Thu Oct 12 19:38:00 2000 Ossama Othman <ossama@uci.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- Added new files introduced by Priyanka's footprint reduction
- effort.
-
-Thu Oct 12 18:19:46 2000 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Makefile:
- Made the corresponding changes.
-
- * ace/System_Time.cpp:
- * ace/UPIPE_Connector.cpp :
- * ace/Timer_Queue_T.h :
- * ace/Task.cpp :
- * ace/POSIX_Asynch_IO.cpp:
- * ace/OS.h:
- * ace/Memory_Pool.cpp:
- * ace/MEM_SAP.h:
- * ace/MEM_Acceptor.cpp:
- * ace/Logging_Strategy.cpp:
- * ace/FIFO.h:
- * ace/DLL.cpp:
- * ace/IO_SAP.h:
- * ace/Malloc_T.h :
- Cosmetic changes. Ex: Change the included header files to the
- new header files and similar changes.
-
- * ace/Naming_Context.h:
- * ace/Naming_Context.cpp:
- * ace/Object_Manager.cpp:
-
- Removed the dependency of Object_Manager on Naming_Context.
-
- * ace/Test_and_Set.h:
- * ace/Test_and_Set.cpp:
- * ace/Test_and_Set.i:
-
- Moved the class Test_and_Set from Synch_T to here. This helped
- remove the dependency on Event_Handler.
-
- * ace/Service_Templates.h:
- * ace/Service_Templates.cpp:
-
- Moved the template instantiations from Service_Config.cpp and
- Service_Types.cpp since these templates were not needed by the
- respective files.
-
- * ace/Malloc_Allocator.h :
- * ace/Malloc_Allocator.cpp:
- * ace/Malloc_Allocator.i :
-
- * ace/PI_Malloc.h :
- * ace/PI_Malloc.cpp:
- * ace/PI_Malloc.i :
-
- * ace/Malloc.h :
- * ace/Malloc.cpp :
- * ace/Malloc.i :
-
- Moved the ACE_PI_Control_Block, ACE_New_Allocator and
- ACE_Static_Allocator_Base classes to new files: PI_Malloc and
- Malloc_Allocator.
-
- This move helps in reduction in size of Malloc.i since the
- template instantiations which were included only for
- ACE_PI_Control_Block are now moved to the new file: PI_Malloc.
- In addition, is the effect of clear and minimized dependencies.
-
- * ace/ACE.h :
- * ace/ACE.cpp :
- * ace/ACE.i :
-
- Moved several functions in ACE to new classes to minimize the
- dependencies on and by ACE. Each of the following files
- have the listed functions.
-
- * ace/Malloc_Instantiations.cpp:
- Moved the template instantiations to this file.
-
- * ace/ACE_Sock_Connect.h :
- * ace/ACE_Sock_Connect.cpp :
- * ace/ACE_Sock_Connect.i :
-
- Has the socket connection establishment function calls :
- bind_port, get_bcast_addr, get_ip_interfaces, count_interfaces
- and get_handle.
-
- Helps remove the dependency on INET_Addr.
-
- * ace/ACE_Handle_Ops.h:
- * ace/ACE_Handle_Ops.cpp:
- * ace/ACE_Handle_Ops.i:
-
- Has the <handle_timed_open> operation on handles.
- Helps remove the dependency of FILE_Connector, SPIPE_COnenctor,
- UPIPE_Conenctpr and DEV_Connector on ACE.
-
- * ace/ACE_Lib_Find.h :
- * ace/ACE_Lib_Find.cpp :
- * ace/ACE_Lib_Find.i :
-
- Includes all the functions to search and open shared
- libraries and realted functions :
- ldfind, ldopen, ldname, get_temp_dir, open_temp_file,
- strrepl, strsplit_r.
-
- Removes the dependency of DLL, Logging_Strategy and FILE_Addr on
- ACE. Effects few other classes too but doesnt remove the
- dependency on ACE for those classes.
-
- * ace/ACE_Flag_Manip.h :
- * ace/ACE_Flag_Manip.cpp:
- * ace/ACE_Flag_Manip.i :
-
- The Flag Manipulation functions:
- set_flags (), clr_flags () and get_flags ().
-
- Removes the dependency of IO_SAP and IPC_SAP on ACE.
-
- * ace/ACE_Init.h :
- * ace/ACE_Init.cpp:
- * ace/ACE_Init.i :
-
- The init () and fini () functions which are used
- for the initialization and shutting down of ACE.
-
- Removes dependency on Object_Manager.
-
-Thu Oct 12 15:41:46 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/rules.bin.GNU:
- List the LDFLAGS before the name of the program, this seems to
- work better for some of our sponsors.
-
-Thu Oct 12 15:40:51 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.cpp (ACE_OS_GUARD):
- Use explicit names for the OS guards, otherwise the SGI compiler
- (7.30 + several patches) crashes. Thanks to Philip Miller
- <pwmiller@sarnoff.com> for reporting the problem and providing
- the patch.
-
-Thu Oct 12 12:15:23 2000 Angelo <corsaro@cs.wustl.edu>
-
- * ACE version 5.1.10 released.
diff --git a/ChangeLogs/ChangeLog-01a b/ChangeLogs/ChangeLog-01a
deleted file mode 100644
index 2c80dd6896a..00000000000
--- a/ChangeLogs/ChangeLog-01a
+++ /dev/null
@@ -1,8155 +0,0 @@
-Sun Jul 01 11:16:34 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.18 released.
-
-Sun Jul 1 11:03:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/generate_doxygen.pl: Removed SSLIOP from the list.
- * etc/tao_ssliop.doxygen: Removed the file as it was creating
- problems for the beta.
-
-Sat Jun 30 12:44:11 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/FIFO_Send_Msg.cpp (send): Fixed another errant use of
- putmsg(). Thanks to David Trusty <david.trusty@westwave.com>
- for reporting this.
-
-Fri Jun 29 22:31:56 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Reverted the changes in this entry.
- "Thu Jun 28 13:44:52 2001 Chad Elliott
- <elliott_c@ociweb.com>". The changes seem to be breaking builds
- on Sun.
-
-Fri Jun 29 10:14:03 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/config-macosx.h: Removed some macros that don't apply to
- MacOSX. Thanks to John Zorko <j.zorko@att.net> for contributing
- this.
-
- * include/makeinclude/platform_macosx.GNU (CC): Changed
- the -fno-implict-templates to -fimplicit-templates. Thanks to
- John Zorko <j.zorko@att.net> for contributing this.
-
-Wed Jun 27 12:00:34 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/FIFO_Send_Msg.i (send): Make sure that when we use the
- putmsg() variant of this call that we correctly return the
- length. Thanks to David Trusty <david.trusty@westwave.com> for
- reporting this.
-
- * ace/FIFO_Recv_Msg.i (recv): Make sure that when we use the
- getmsg() variant of this call that we correctly return the
- length. Thanks to David Trusty <david.trusty@westwave.com> for
- reporting this.
-
- * ace/Log_Record.{h,cpp}: Added support for extending the
- names of the types of logging requests. Thanks to Kelly
- F. Hickel <kfh@mqsoftware.com> and Jonathan Reis
- <reis@stentor.com> for this fix.
-
-Thu Jun 28 13:44:52 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-sunos5.5.h:
-
- Add include of sys/feature_tests.h to ensure that certain macros
- are set up correctly. This is mainly important to SunOS 5.7 and
- later, but may be useful to the earlier versions.
-
- Also, added a check for the correct value of _POSIX_C_SOURCE to
- set ACE_HAS_POSIX_GETPWNAM_R. This use to be a conditional in
- config-sunos5.7.h based on gcc 3.0, but it is not specific to gcc.
-
- * ace/config-sunos5.6.h:
-
- Added a check for _XPG4_2 before defining
- ACE_HAS_4_4BSD_SENDMSG_RECVMSG. This used to be a conditional in
- config-sunos5.7.h based on gcc 3.0, but it is not specific to gcc.
-
- * ace/config-sunos5.7.h:
-
- Removed the gcc 3.0 specific section and dispersed the macro
- definitions to the correct config files (based on os version and
- other macros).
-
- Added a definition of ACE_HAS_SOCKLEN_T since SunOS has had
- socklen_t since 5.7. This use to be a conditional based on gcc
- 3.0, but it is not specific to gcc.
-
-Thu Jun 28 13:05:12 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.{h,i,cpp}:
-
- Update to_(w)string and from_(w)string to conform to the
- latest C++ mapping (00-01-02). Extra constructors have
- been added, taking a const (w)string, and the val_
- member of from_(w)string has been made const. The constructor
- taking a non-const (w)string for to_(w)string has been
- deprecated, and will be removed from the spec at some point.
- Thanks to Andy Alvarez <andy_alvarez@baxter.com> for pointing
- this out.
-
-Thu Jun 28 07:08:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Added a sanity check. The check involves
- invalidating the handle when the handler is removed from the
- repository in notify_handle (). We also check for an invalid
- handle before we go ahead and resume the handle. Thanks to
- Alexander Libman <alexander.libman@baltimore.com> for suggesting
- this check.
-
-Wed Jun 27 14:07:43 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * ace/CDR_Stream.{cpp,h}:
-
- Changed write_wstring() and read_wstring() to partially comply
- with GIOP 1.2.
-
-Wed Jun 27 07:13:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS_TLI.inl: Fixed a compile error in Win32 builds.
-
-Tue Jun 26 17:56:05 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/Message_Block_Test.cpp: Changed the test to use
- ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY and
- ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY + 1 rather than priorities 0
- and 1. Thus, the test works properly when users override the
- ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY in config.h. Thanks to Ivan
- Murphy for reporting this.
-
- * examples/Connection/blocking/SPIPE-acceptor.cpp: Added several
- fixes so that this stuff runs correct when called by multiple
- clients. Thanks to Rich Newman <RNewman@directv.com> for
- contributing this.
-
-Tue Jun 26 17:37:51 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Proactor.h: Fixed a compile error with g++. There were two
- return types. Retained the return type as int.
-
-Tue Jun 26 16:22:24 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS_TLI.h: Zapped a dummy declaration of struct rlimit { }.
- Thanks to Bala for reporting this.
-
- * ace/TLI_*, OS_TLI.*: Added a number of fixes for TLI so that it'll
- compile properly on Win32 platforms. Thanks to Andreas Geisler
- <andreas.geisler@erls.siemens.de> for reporting this.
-
- * ace/Proactor.h: Added a static reset_event_loop() to the ACE_Proactor
- class. Thanks to Rich Newman <RNewman@directv.com> for
- reporting this.
-
- * ace/config-sunos5.7.h: Removed an errant #endif. Thanks to
- Craig Ching <cching@mqsoftware.com> for reporting this.
-
-Mon Jun 25 15:36:55 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/config-sunos5.7.h: Added support for GCC 3.0. Thanks to
- Craig Ching <cching@mqsoftware.com> for contributing this.
-
-Mon Jun 25 12:18:41 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/aix_shr:
-
- Added to filter the duplicate symbol warnings from the compilation
- of the shr.o file for AIX shared libraries.
-
- * include/makeinclude/platform_aix_ibm.GNU:
-
- Added the definition of SHR_FILTER. It is defined to be
- $(ACE_ROOT)/bin/aix_shr.
-
- * include/makeinclude/rules.lib.GNU:
-
- Added the GNU Make macro SHR_FILTER which will be used when
- compiling the shr.o file. This will only have an affect if
- SHR_FILTER is defined.
-
-Mon Jun 25 10:05:37 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc_T.cpp (avail_chunks): Guarded againt the case when a
- Malloc_Header contains 0 available header for allocation as it
- caused an assignment of negative number to an unsigned number.
- Thanks to Ben Howard <Benn_Howard@raytheon.com> for pointing
- this out.
-
-Sun Jun 24 21:51:10 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Obstack.h: Moved the trailing semicolon into the
- ACE_EXPORT_SINGLETON_DECLARATION macro to avoid a warning from
- Tru65.
-
-Sun Jun 24 08:57:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added Oneways_Invoking_Twoways to the
- daily builds.
-
-Sat Jun 23 08:34:54 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Max_Default_Port_Test.cpp: Fixed a unused warning in
- Single Threaded builds.
-
- * tests/run_tests.lst: Prevented the above test from running in
- Single Threaded configurations.
-
-Sat Jun 23 06:19:39 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS.i: For some god knows why reason, _POSIX_C_SOURCE doesn't
- get us the right behavior for getpwnam_r() on some platforms...
- Therefore, we'll need to define an ACE_HAS_POSIX_GETPWNAM_R
- macro instead -- grrr.... Thanks to Bala for pointing this out.
-
- * ace/OS.i: Fixed the getpwnam_r() wrapper so that it conforms to
- POSIX on platforms that support POSIX. Thanks to
- Craig L. Ching <cching@mqsoftware.com> for reporting this.
-
-Fri Jun 22 18:35:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS_TLI.inl: Fixed a compile error in win 32.
-
-Fri Jun 22 18:06:50 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Added a solaris 8 build to the
- scoreboard.
-
-Fri Jun 22 18:00:51 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * examples/Log_Msg/test_ostream.cpp (main):
-
- Removed the flags variable and added the file open mode flags
- directly to the constructor. There doesn't see to be a portable
- way of fixing this as a lot of compilers don't have a compliant
- standard library. This fixes the compile error on gcc-3.0
-
-Fri Jun 22 13:10:13 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * examples/Log_Msg/test_ostream.cpp (main):
-
- Reverted the change as it seems to break VC++. Will fix it
- shortly.
-
-Fri Jun 22 10:31:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Configuration.{h cpp}: Added back the ACE_Configuration::
- import_config and export_config functions and marked them
- deprecated. They're needed for backwards compatibility with
- ACE 5.1.
-
-Fri Jun 22 07:33:45 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS_TLI.{h,inl}: Changed the signature of the t_open() and
- t_accept() wrappers to use ACE_HANDLE rather than int. Thanks
- to Steffen Hieber <Steffen.Hieber@erl9.siemens.de> for reporting
- this.
-
-Fri Jun 22 09:31:04 2001 Ossama Othman <ossama@uci.edu>
-
- * html/index.html:
-
- Corrected hyperlink for SSLIOP documentation.
-
-Fri Jun 22 10:27:01 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * html/index.html:
-
- Add missing directories for Doxygen docs.
-
-Fri Jun 22 00:26:34 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * examples/Log_Msg/test_ostream.cpp (main):
-
- Changed the type of flags to ios::openmode from int to fix
- errors under gcc-3.0.
-
- * examples/IOStream/client:
- * examples/IOStream/server:
-
- Added ACE_UNUSED_ARG to fix a couple of warnings.
-
-Thu Jun 21 13:57:09 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * apps/JAWS/clients/Caching/http_handler.h:
-
- Fix a warning with g++.
-
-Thu Jun 21 09:01:09 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_aix_ibm.GNU:
-
- Fix for 64-bit AIX builds. The ARFLAGS definition must have -X64
- before any of the other options.
-
-Thu Jun 21 08:27:40 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-aix-4.x.h:
-
- Fix for 64-bit AIX builds.
-
-Thu Jun 21 08:00:01 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * apps/Gateway/Peer/Peer.h:
- * apps/JAWS/clients/Blobby/Blob.h:
- * apps/JAWS/clients/Caching/http_handler.h:
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp:
- * examples/Connection/misc/test_upipe.cpp:
-
- Moved #include "ace/Connector.h" to be after #include
- "ace/SOCK_Connector.h" to fix compile error on AIX, Visual
- Age C++ 5. Thanks to David Sperry <sperryd@res.raytheon.com>
- for reporting this.
-
- * apps/JAWS/server/Makefile:
-
- Move include of wrapper_macros.GNU below the check of the
- ACE_BUILD_COMPONENTS to avoid a warning about overriding commands
- for target libJAWS.a for AIX, Visual Age C++, 5.
-
- * include/makeinclude/platform_aix_ibm.GNU:
-
- Added warning suppression for possible use of uninitialized
- variables and possible infinite loops. Added support for 64 bit
- builds with Visual Age C++ 5.
-
- * include/makeinclude/rules.lib.GNU:
-
- Fixed shared lib making rule. Remove shr.o after building the lib
- to make sure subsequent builds are correct.
-
-Wed Jun 20 17:31:32 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Base.cpp:
- * ace/CDR_Base.h:
-
- Added some stuff to help the higher layers deal with
- longlongs, without the guards for the platforms that
- don't have this native type. Expanded and exported the
- LongLong struct (added == and != operators). Defined the
- NONNATIVE_LONGLONG flag, if platform does not have a
- native longlong type. Added ACE_CDR_LONGLONG_INITIALIZER,
- to portably initialize a local longlong variable.
-
-Wed Jun 20 10:42:02 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Disabled the TAO/tests/Exposed_Policies test from being
- run under minimum builds, since it needs CORBA messaging
- and RTCORBA.
-
-Wed Jun 20 09:17:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Max_Default_Port_Test.dsp (SOURCE): Fixed the release
- builds.
-
-Wed Jun 20 08:47:46 2001 Chanaka Liyanaarachchi <chanaka@ociweb.com>
-
- * tests/Max_Default_Port_Test.cpp:
-
- Replaced char * with ACE_TCHAR * in main function signature to
- make the test WChar friendly.
-
-Wed Jun 20 08:05:19 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- Added the AIX Visual Age C++ 5.0 nightly build.
-
-Tue Jun 19 21:24:41 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS.i (mutex_lock): Fiddled around with the #else so that
- we'll avoid "statement not reached" warnings on KCC. Thanks to
- J Shane Culpepper <pepper@channelogics.com> for reporting this.
-
-Wed Jun 20 07:35:04 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * tests/Makefile.bor
- Added the new Max_Default_Port_Test
-
-Tue Jun 19 16:01:01 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * include/makeinclude/platform_hpux_aCC.GNU (THR_DEFS):
- Suppressed error 908 complaining about use of 'export' which
- might be used as a C++ keyword in future by aCC compiler.
-
-Tue Jun 19 16:20:52 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp:
-
- Just fixing a typo. Removed ACE_INLINE from skip_wchar ().
-
-Tue Jun 19 16:08:34 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * ace/CDR_Stream.{i,cpp}:
-
- Fixed the skip_wchar() according to the changes in WChar
- implementation of GIOP 1.2. Thanks to
- Peter Phillips <pphillip@opentext.com> for reporting the problem
- the fix. This fixes BUGID 945.
-
-Tue Jun 19 08:13:52 2001 Chanaka Liyanaarachchi <chanaka@ociweb.com>
-
- * tests/Max_Default_Port_Test.cpp:
- * tests/Max_Default_Port_Test.h:
- * tests/Max_Default_Port_Test.dsp:
-
- Added a test to verify if ACE_MAX_DEFAULT_PORT value is
- set correctly.
-
- * tests/Makefile:
- * tests/tests.dsw:
-
- Added Max_Default_Port_Test.
-
- * tests/run_test.lst:
- * tests/run_tests.bat:
-
- Added Max_Default_Port_Test.
-
-Tue Jun 19 08:03:38 2001 Chanaka Liyanaarachchi <chanaka@ociweb.com>
-
- * ace/OS.h:
-
- Changed the value of ACE_MAX_DEFAULT_PORT to 65535. This had
- been set to 0 (zero) previously to avoid a problem on NT4.0 SP3.
- The problem was that beyond ports 65279, a bind call would
- succeed but the handle returned would be junk. This problem does
- not seem to exist on NT4.0 SP6, and Windows 2000.
-
-Tue Jun 19 07:20:56 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/INET_Addr.cpp:
-
- Set the inet_addr_.sin_family to AF_INET when the ACE_Addr type is
- set to AF_INET.
-
-Mon Jun 18 21:33:54 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the Big_Reply tests to the nightly
- builds.
-
-Mon Jun 18 16:20:51 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Thread_Manager_Test.cpp: Added a new function,
- test_task_record_keeping(), that tests task-related record
- keeping in the ACE_Thread_Manager. Motivated by a report of
- ACE_Thread_Manager::task_all_list() not working correctly.
-
-Mon Jun 18 15:29:38 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace.icc: Replace Obstack.cpp with Obchunk.cpp; added
- Obchunk.h
-
- * ace/Thread_Manager.cpp (task_all_list): Don't put duplicate
- ACE_Task_Base pointers in the returned list.
-
- * ace/Malloc_T.cpp (ACE_Malloc<>::ACE_Malloc (3 args): Add \n
- to the failure ACE_ERROR statement.
-
- * tests/Refcounted_Auto_Ptr_Test.cpp: Print the instance count
- of the refcounted variable before asserting on it in order to
- leave interesting info in the log if it bombs.
-
-Mon Jun 18 10:06:37 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * etc/tao_ssliop.doxygen: New configuration file for
- SSLIOP-related files.
-
- * bin/generate_doxygen.pl: Added new SSLIOP configuration file to
- the list of things to be documented for TAO.
-
-Sun Jun 17 21:26:27 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Message_Block.i: Fixed Fuzz errors.
-
-Sat Jun 17 17:33:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Base.cpp (grow): Cleared the DONT_DELETE flag of the
- message block whose data block is expanded.
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.cpp: Added a new method clone_from () in the
- ACE_InputCDR class. This method is used in the bug #575 fix.
-
-Sun Jun 17 17:11:36 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/Timer_Queue_Adapters.cpp (schedule):
-
- Fixed a warning by reorganizing return statement.
-
-Sat Jun 16 15:21:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp: Fixed some stupid typos.
-
-Sat Jun 16 10:36:58 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Message_Block.h:
- * ace/Message_Block.cpp:
- * ace/Message_Block.i: This set of changes are to get around one
- of the problems that we have with the message blocks. For some
- reason the message blocks assume that the underlying data blocks
- are always allocated of the heap. If we try to construct a
- message block using a data block on the stack, the message
- blocks tries to delete that data block which gives problems. We
- have now added a flag in the class that indicates whether the
- data_block can be deleted or not. An extra flag argument has
- been added to the constructor that constructs a message block
- from a data block. The default value is from the heap. Added
- more methods to the ACE_Message_Block to query and change the
- flag values.
-
- * ace/CDR_Stream.cpp:
- * ace/CDR_Stream.h: Added an extra flag argument to the
- constructors which constructs a InputCDR stream from a
- ACE_Data_Block.
-
-Sat Jun 16 00:09:14 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB):
-
- Added IA-64 to the nightly builds. The tests are disabled for
- now. They will be enabled after TAO 1.2 is released.
-
-Fri Jun 15 20:46:01 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * ace/CDR_Stream.{cpp,h,i}:
-
- WChar implementation of GIOP 1.2. Made changes in some of the
- ACE_InputCDR constructors, exchange_data_blocks () and steal_from ().
-
-Fri Jun 15 20:18:07 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/Active_Map_Manager_T.i:
- * ace/Map_Manager.cpp:
- * ace/Map_Manager.h:
- * ace/Map_Manager.i:
-
- Fixed a bug in the Active_Map_Manager caused due to size_t being of
- different size under 32-bit platforms versus 64-bit platforms.
- The bug was triggered under Tru64. This has resulted in changing
- the implementation to use ACE_UINT32 throughout while
- maintaining a backward-compatible interface.
-
- Many thanks to Irfan for his help in finding a solution.
-
-Fri Jun 15 17:40:51 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * examples/Shared_Malloc/Malloc.cpp:
-
- Removed need for explicit instantiation of symbols when the
- compiler supports template specialization for the
- Single-threaded case.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp:
-
- Removed warning about conversion from pointer to integer of
- different size on IA-64.
-
-Thu Jun 14 16:20:57 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * ace/Stats.cpp:
-
- Changed formula to convert ticks to seconds to use
- ACE_HR_SCALE_CONVERSION to account for the fact that
- Win32 has different scale factor units than every
- other platform.
-
-Thu Jun 14 16:21:35 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-all.h (ACE_UNUSED_ARG):
-
- Changed the way we define ACE_UNUSED_ARG to be more compatible
- with picky compilers.
-
-Thu Jun 14 16:10:54 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/Makefile:
- * ace/RMCast/Makefile:
-
- Updated the dependencies as they seem to have gone out of sync.
-
-Thu Jun 14 15:42:57 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Obstack_T.cpp (release): Forgot to reset the <block_> in
- Obchunk.
-
-Thu Jun 14 14:35:09 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Added Strategies, RTCORBA, and RTPortableServer to the core build
- list so that they get built before the tests that use them on
- the Win32 static builds.
-
-Thu Jun 14 08:24:03 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/Makefile.bor:
- Added missing source file Obchunk.cpp.
-
-Thu Jun 14 03:10:11 2001 Krishnakumar B <kitty@danzon.cs.wustl.edu>
-
- * tests/TSS_Test.cpp:
-
- Fixed a error in the compile caused due to ACE_reinterpret_cast
- applied to a const int.
-
-Wed Jun 13 21:50:01 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Obstack_T.cpp (ACE_Obstack_T): Fixed a mismatched ACE_TRACE
- fuzz warning.
-
-Wed Jun 13 14:10:17 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.cpp:
- * ace/SSL/SSL_SOCK_Acceptor.cpp:
-
- Explicitly include "ace/Log_Msg.h" to pull in ACE_DEBUG/ERROR
- macro definitions. This fixes a compile-time problem on
- SunWorkshop 3.0 builds. Thanks to Andrew Finnell
- <Andrew.Finnell@esecurityinc.com> for reporting this problem and
- suggesting the fix.
-
-Wed Jun 13 15:43:43 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Obchunk.cpp: Fixed include filename capitalization.
-
-Wed Jun 13 11:31:27 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Makefile.am:
-
- Synchronized the source lists with those in the stock ACE
- Makefile.
-
-Wed Jun 13 14:18:22 2001 Steve Huston <shuston@riverace.com>
-
- * ACE-INSTALL.html: Modified the platforms/compilers section to
- reflect the new roles of DOC, Riverace, OCI. Fixed up the
- Solaris section a bit.
-
-Wed Jun 13 11:08:26 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Thread_Pool_Test.cpp: Casted message block pointers to
- ACE_TCHAR* to compile with UNICODE on.
-
-Wed Jun 13 10:22:10 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp: Need to read the sizeof (ACE_TCHAR) of bytes
- to handle UNICODE svc.conf correctly.
-
- * ace/Svc_Conf.h: Changed the macro ACE_YY_INPUT to handle
- ACE_TCHAR instead of char. Thanks to Allen Kelly
- <akelly@postx.com> for sending the patches.
-
- * ace/Obstack_T.{h,i,cpp}: Templatized ACE_Obstack on the char
- type it handles.
-
- * ace/Obchunk.{h,i,cpp}: New files containing the non-template
- class ACE_Obchunk.
-
- * ace/Obstack.{h,cpp}: All the class definitions were moved to
- Obchunk.* and Obstack_T.*. These files typedef'ed
- ACE_Obstack_T<char> to ACE_Obstack for backward compatibility.
-
- * ace/Obstack.i: Removed file.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- * ace/Makefile: Added Obchunk and Obstack_T.
-
- * ace/Service_Config.cpp:
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf.h: Changed ACE_Obstack to ACE_Obstack_T<ACE_TCHAR>
- to handle UNICODE files when needed.
-
- * ace/Configuration.cpp (set_string_value): When storing wchar
- strings, the datasize passed to RegSetValueEx is the total size
- in bytes, not the string length.
-
-Wed Jun 13 08:42:31 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/ace_flags.bor:
- Added support for new RTCORBA libraries.
-
- * include/makeinclude/build_lib.bor:
- Suppress noisy warnings when creating a static library.
-
- * tests/Makefile.bor:
- Added Thread_Pool_Reactor_Resume_Test.
-
-Tue Jun 12 21:22:19 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
-
- Added the new gcc 3.0 build to nightly build list.
-
-Tue Jun 12 23:06:36 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * examples/ASX/Event_Server/Event_Server/Options.cpp:
- * examples/ASX/Event_Server/Event_Server/Options.cpp:
- * examples/ASX/Message_Queue/buffer_stream.cpp:
- * examples/ASX/UPIPE_Event_Server/Options.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i:
- * examples/Shared_Malloc/test_malloc.cpp:
- * examples/Shared_Malloc/test_position_independent_malloc.cpp:
- * examples/Threads/thread_manager.cpp:
- * examples/Threads/thread_specific.cpp:
-
- Fixes for warnings under IA-64 Linux. This involves using the
- new ACE_[S]SIZE_T_FORMAT_SPECIFIER and appropriate uses of
- ACE_reinterpret_cast. This completes the fixes needed to compile
- ACE and TAO on IA-64 Linux (as of today). Now the tests remain
- examples/examples/to be fixed.
-
-
-Tue Jun 12 18:53:25 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-linux-common.h:
-
- Added new printf specifier ACE_SIZE_T_FORMAT_SPECIFIER,
- ACE_SSIZE_T_FORMAT_SPECIFIER for use with types size_t and
- ssize_t.
-
- * ace/Basic_Types.h:
-
- 1. Changed default base address on IA-64 to be 64-bit little endian.
- 2. Added default values for ACE_SIZE_T_FORMAT_SPECIFIER,
- ACE_SIZE_T_FORMAT_SPECIFIER.
- 3. Changed size of LONG_DOUBLE for IA-64.
-
- * ace/Configuration.cpp:
- * ace/Naming_Context.cpp:
- * ace/Task.cpp:
-
- Added a reinterpret_cast to silence gcc.
-
- * tests/MEM_Stream_Test.cpp:
- * tests/MT_Reactor_Timer_Test.cpp:
- * tests/Message_Block_Test.cpp:
- * tests/TSS_Test.cpp:
- * tests/Thread_Manager_Test.cpp:
- * tests/Thread_Pool_Test.cpp:
-
- 1. Fixed usage of ACE_DEBUG with types size_t and ssize_t.
- 2. Added ACE_reinterpret_cast to silence warnings about
- conversion from integer to pointer of different size.
-
- ACE runs on Intel IA-64/Linux.
-
-Tue Jun 12 15:06:06 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * tests/run_test.lst:
-
- Thread_Pool_Reactor_Resume_Test should not run on Single
- threaded configurations.
-
-Tue Jun 12 11:07:18 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Synch_T.{h,i}: Added "const" to the locked() method.
-
-Mon Jun 11 21:06:43 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/SOCK_Connector_Test.cpp (find_another_host): Pre-increment,
- rather than post-increment, the candidate_count loop counter to
- avoid "off-by-one" errors. Thanks to Scott Snyder
- <snyder@fnal.gov> for reporting this.
-
- * ace/OS.h: Added some default values of 0 to the wr_fds and
- ex_fds parameters to ACE_OS::select(). This helps simplify for
- the "common case" and is consistent with what we show in our book ;-).
-
- * ace/OS.i (read): Fixed a nasty bug where "count = len" should
- have been "count == len" in the PSOS arm of the code. Thanks to
- James Maynard <James.Maynard@ot.com.au> for reporting this.
-
-Thu Jun 7 19:26:05 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Auto_Ptr.cpp: Instantiate the "alloc" template typedef explicitly.
- Thanks to Cristian Ferretti <cristian_ferretti@yahoo.com> for
- pointing this out.
-
- * examples/Timer_Queue/Thread_Timer_Queue_Test.{h,cpp}: Removed
- the unused cancelled() method. Thanks to Ron Heald
- <rheald@nrao.edu> for reporting this.
-
- * include/makeinclude/platform_irix6.x_sgic++.GNU,
- * include/makeinclude/platform_osf1_4.0.GNU,
- * ace/config-irix6.x-sgic++.h,
- * ace/config-osf1-4.0.h,
- * ace/Log_Msg.cpp: Added support for threads=0 on Tru64. Thanks
- to Steve Vranyes <steve.vranyes@veritas.com> for contributing
- these fixes.
-
- * ace/Timer_Wheel_T.cpp (expire): earliest_pos_ was never set in
- the expire() method, and maintains its value until another timer
- event is scheduled/cancelled/etc. Thanks to Gil Rapaport
- <grapaport@comgates.co.il> for fixing this.
-
-Mon Jun 4 14:33:08 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Synch.h: Clarified that ACE_Event only supports "global naming"
- on Win32. Thanks to Jerry Thomas <jto@consegna.co.uk> for reporting
- this.
-
-Mon Jun 11 16:53:55 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.17 released.
-
-Mon Jun 11 13:08:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/platform_tru64_kcc.GNU: Fixed a spurious
- newline in the file. Thanks to Scott Snyder <snyder@fnal.gov>
- for reporting this.
-
-Sun Jun 10 16:03:19 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_test.lst: Time_Service_Test will not run in static
- configurations. It looks for ACE_DLL's.
-
-Sun Jun 10 06:56:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Removed a few AVStreams tests from the
- nightly builds. They seem to be crashing with a SEGV.
-
-Sat Jun 09 17:03:37 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Acceptor.cpp (open):
-
- Fixed problem where the handle of an uninitialized peer acceptor
- was set into non-blocking mode, resulting in a failed ioctl()
- call. The acceptor member in the "accept strategy" should be
- used instead, since it was the one that was just opened.
-
-Sat Jun 09 10:07:06 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- Moved call to SSL_peek() within the do/while(SSL_pending())
- loop. A full record must be read before returning to an event
- loop (e.g. in a Reactor).
-
- If a SSL_ERROR_SYSCALL error occurs, only interpret it as an
- error if an EOF did not occur. Thanks to Boris Temkin
- <borist@allcharge.com> for providing an example that
- demonstrated the problem.
-
- (send_i):
-
- Shutdown the SSL session if an SSL_ERROR_ZERO_RETURN error
- occurs.
-
-Sat Jun 9 07:16:12 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/QoS/QoS_Session_Impl.cpp:
- Do not hard code the max sdu size. This should be a
- configurable parameter through the ACE_Flow_Spec::max_sdu_size.
-
- This change was made by Craig Rodrigues
- <crodrigu@bbn.com>. Just checking in the changes for him.
-
-Fri Jun 08 08:17:15 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i):
-
- Fixed "fuzz" errors.
-
-Fri Jun 08 07:33:03 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.cpp (send):
-
- Fixed an "unused argument" warning.
-
-Fri Jun 08 07:01:59 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.h:
- * ace/SSL/SSL_Accept_Handler.cpp:
- * ace/SSL/SSL_Connect_Handler.h:
- * ace/SSL/SSL_Connect_Handler.cpp:
-
- New event handlers that are designed to complete non-blocking
- SSL passive (accepts) and active connections (connects). They
- are registered with the Reactor (either the singleton Reactor or
- a user-supplied one) after the TCP 3-way handshake is
- completed. Once registered, the Reactor does its voodoo and
- invokes the appropriate event handler.
-
- This fixes several inter-related problems:
- (1) the ACE_SSL wrappers now work with the
- ACE_WFMO_Reactor, [Bug 614]
- (2) non-blocking SSL accepts/connects and finally work,
- (3) fixes a CORBA::TRANSIENT exception in TAO's SSLIOP
- pluggable protocol that occured when the client attempted
- to connect to the server.
-
- Thanks to Andrew Finnell <Andrew.Finnell@esecurityinc.com> for
- suggesting that an event loop was necessary to complete the SSL
- connection after 3-way handshake was necessary, and for
- persisting in his effort to hammer that point into me. :-)
-
- * ace/SSL/SSL_SOCK_Stream.h (send_i, recv_i):
-
- New low-level helper methods that refactor the common underlying
- SSL IO calls.
-
- * ace/SSL/SSL_SOCK_Stream.i (send):
-
- Fixed problem where one of the low-level send() methods returned
- zero instead of the number of bytes sent. Thanks to Boris
- Temkin <borist@allcharge.com> and Dan Levi <DanL@webmap.com> for
- reporting the problem.
-
- (send_i, recv_i):
-
- Refactored code common to all send()/recv() methods. Thanks to
- Boris for suggesting this. This will help prevent problems such
- as the one that was described above from happening again since
- there is no code duplication.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (sendv_n, recv_n):
-
- Greatly improved the speed of these methods by removing all
- allocations and copies. The allocations and copies were
- unnecessary. These methods are now zero-copy implementations.
-
- (send):
-
- Don't bother attempting to implement this method using a scatter
- write (sendv). The SSL_SOCK_Stream scatter write implementation
- simply emulates this functionality. That emulation does not
- work well when using non-blocking IO. Instead, just use
- send_n().
-
- Added missing "va_end()."
-
- * ace/SSL/SSL_SOCK_Acceptor.h (reactor):
- * ace/SSL/SSL_SOCK_Acceptor.i (reactor):
- * ace/SSL/SSL_SOCK_Connector.h (reactor):
- * ace/SSL/SSL_SOCK_Connector.i (reactor):
-
- New methods to set and get the Reactor to use when completing
- non-blocking SSL passive/active connections.
-
- * ace/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL_SOCK_Connector.cpp (ssl_connect):
-
- Added new overload methods that accept a timeout value. These
- new methods will register the event handlers described above in
- order to complete a non-blocking SSL connection.
-
- (shared_connect_start, shared_connect_finish):
-
- Removed these unused methods.
-
- (connect):
-
- Actually do a non-blocking SSL connect if the timeout value is
- non-zero. This code was previously broken. Even though the
- underlying TCP connect was non-blocking, the SSL connect was
- always blocking.
-
- * THANKS:
-
- Added Andrew Finnell and Dan Levi to the "Hall of Fame." Boris
- Temkin (see above) was already on it. :-)
-
-Fri Jun 08 07:52:48 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * Makefile: Removed PACE from the list of directories.
- (There are problems on FreeBSD.) Thanks to cuma
- <cuma@dslab.csie.ncu.edu.tw> for reporting this.
-
-Wed Jun 06 10:16:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.00.h: Fixed the settings for ACE_MALLOC_*
- and ACE_PI_MALLOC_* so that both the malloc header and the
- control block are multiples of 8 bytes (required alignment for
- larger datatypes, i.e double). Malloc_Test now runs clean.
-
-Wed Jun 6 07:04:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Removed all the AVStream tests from the
- daily builds. Looks like they are not getting fixed.
-
-Mon Jun 4 05:53:57 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/File_Lock: Added an "unlink_in_destructor" flag to
- ACE_File_Lock to control whether or not the underlying file is
- unlinked in the destructor. Thanks to Yuval Yosef
- <yuvi@isdn.net.il> and Crawford Lodge
- <crawford.lodge@xmlglobal.com> for suggesting this.
-
-Sun Jun 3 18:08:39 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Configuration_Import_Export.cpp,
- * ace/Configuration.cpp: Added ACE_ASSERTS to make sure that
- open() is called... Thanks to Jerry Odenwelder
- <jerry.o@mindspring.com> for fixing this.
-
-Sat Jun 2 13:05:20 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Connector.cpp: Removed the ACE_Errno_Guard from the
- create_AST() method and instead have the connect_i() method
- check to see if create_AST() succeeded and explicitly set errno
- = EWOULDBLOCK in this case. Thanks to Boris Temkin
- <borist@allcharge.com> for motivating this change.
-
- * ace/Timer_Wheel_T.cpp: Since we removed the call to
- is_empty() from earliest_time() we need to modify the code in
- reschedule() to test for is_empty.
-
- * tests/Cached_Accept_Conn_Test.cpp (accept_svc_handler): Use the
- ACE_Accept_Strategy::acceptor() accessor method rather than
- accessing the acceptor_ directly.
-
- * TAO/rules.tao.GNU (TAO_IDL_DEP),
- * include/makeinclude/rules.local.GNU: Added support for the new EXEEXT
- Makefile macro. Thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com> for pointing this out.
-
- * include/makeinclude/platform_gnuwin32_common.GNU: Added a number of
- fixes for the mingw platform. Thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com> for pointing this out.
-
- * ace/Configuration.{h,cpp}: "Un-inlined" the == and != operators for
- the ACE_Configuration_Win32Registry class.
-
- * ace/Configuration.cpp (get_binary_value): Changed the type of "data"
- from "unsigned char" to "BYTE". Thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com> for pointing this out.
-
- * ace/config-win32-mingw.h: Removed the #define ACE_AS_STATIC_LIBS
- macro. Thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com> for pointing this out.
-
- * ace/config-win32-common.h: Protect certain DLL export macros with
- #if !defined (__MINGW32__). Thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com> for pointing this out.
-
- * ace/ACE.cpp (handle_timed_complete): Added an ACE_UNUSED_ARG
- for the is_tli flag for ACE_WIN32 to keep the compiler happy.
- Thanks to Cristian Ferretti <cristian_ferretti@yahoo.com> for
- pointing this out.
-
- * ace/Acceptor.cpp: Fixed the comment and logic in
- accept_svc_handler() so that it now cleans up the svc handler
- whenever accept() returns -1. Thanks to Boris Temkin
- <borist@allcharge.com> for suggesting this and to Irfan for
- helping clarify what needed to be done.
-
- * ace/Strategies_T.cpp: When the number of clients
- connecting to a server exceeds the process handle limit the
- server would busy loop. The ACE_Accept_Strategy
- accept_svc_handler() method is called which (1) constructs a
- handler and (2) attempts to accept the connection, which fails
- (because there is no available handle). The handler is
- destructed, but the connect request is still queued and so the
- acceptor gets called back again.... and so on until one of the
- client which is already connected disconnects and frees up a
- descriptor. Changed the accept_svc_handler() method in
- ACE_Accept_Strategy to close and reopen the connection when
- accept() fails. A check is done to make sure address reuse is
- set. So this fix will only work in case where it is set. Thanks
- to Dominic Hughes <dominic@aersoft.ie> for this fix and to Irfan
- for recognizing that it ought to be added to ACE_Accept_Strategy.
-
- * ace/Strategies_T.cpp (open): Fixed the strategy acceptor so that it
- uses non-blocking semantics to handle certain failure cases
- correctly. This is a safe-guard against the race condition that
- can otherwise occur between the time when <select> indicates
- that a passive-mode socket handle is "ready" and when we call
- <accept>. During this interval, the client can shutdown the
- connection, in which case, the <accept> call can hang! Thanks
- to Irfan for pointing this out.
-
-Fri Jun 1 13:04:31 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Makefile:
- Removed the moc compiler path definition from ace/Makefile
- since it is now in include/makeinclude/wrapper_macros.GNU
- Thanks to Hans Utz <hans.utz@informatik.uni-ulm.de> for
- reporting this.
-
- * include/makeinclude/wrapper_macros.GNU (YACC): Added the moc
- compiler path definition to include/makeinclude/wrapper_macros.GNU
- Thanks to Hans Utz <hans.utz@informatik.uni-ulm.de> for
- reporting this.
-
- * ace/Timer_Wheel_T.cpp: Removed check to see if Timer_Wheel was
- empty from earliest_time().
-
- * ace/Timer_List_T.h,
- * ace/Timer_Hash_T.h,
- * ace/Timer_Heap_T.h,
- * ace/Timer_Queue_T.h,
- * ace/Timer_Wheel_T.h:
- Added a comment to point out that earliest_time() can only be
- called on a non-empty queue. Thanks to Gil Rapaport
- <grapaport@comgates.co.il> for reporting this.
-
-Tue May 29 17:38:15 2001 Douglas C. Schmidt <schmidt@lambada.cs.wustl.edu>
-
- * ace/OS.h: Moved the VMIN and VMAX macros to the right place.
- Thanks to Hans Utz <hans.utz@informatik.uni-ulm.de> for
- reporting this.
-
-Fri Jun 1 16:11:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Acceptor.cpp (open): Enabled the socket to be non-blocking
- mode in the ACE_Strategy_Acceptor::open () call. Thanks to Singh
- Kirat <kirat.singh@gs.com>, for reporting this through a problem
- in TAO.
-
-Thu May 31 17:29:33 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Refcounted_Auto_Ptr_Test.cpp:
-
- Removed duplicate template instantiation. Fixes a build error.
-
-Thu May 31 15:25:19 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Refcounted_Auto_Ptr.i (ACE_Refcounted_Auto_Ptr_Rep::detach):
- If the object needs to be deleted, release the guard first to
- avoid later unlocking a lock residing in memory that had been
- freed and potentially reallocated. Thanks to Steve Witten
- <steve_witten@hp.com> for noticing this bug, and Purify for making
- it relatively easy to track down.
-
- * tests/Refcounted_Auto_Ptr_Test.cpp: Rearranged to verify things
- which should happen, and improve the logging and thread rundown
- sequence.
-
- * THANKS: Added Steve Witten to the Hall of Fame.
-
- * ACE-INSTALL.html: Fixed the section about how to build on AIX
- to account for the new ace.icc file, and Visual Age C++ 5.
-
-Thu May 31 08:59:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/config-g++-common.h:
-
- Only define ACE_LACKS_AUTO_PTR for gcc versions <= 2.91
-
-Wed May 30 23:54:27 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp:
-
- Fixed the subscribe method so things worked even when no qos
- was specified.
-
-Wed May 30 11:13:16 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Singleton.cpp (instance):
-
- Integrated David's suggested changes that deal with potential
- problems related to registering Singletons in the presence of
- multiple ACE_Object_Manager instances.
-
-Wed May 30 00:37:57 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Singleton.cpp (instance):
-
- Fixed memory leak that occured due to the singleton instance not
- being registered with the ACE_Object_Manager when built without
- thread support. Thanks to Kitty and David for helping with
- this problem.
-
-Tue May 29 15:06:48 2001 Ossama Othman <ossama@uci.edu>
-
- * include/makeinclude/platform_linux.GNU (CFLAGS, CPPFLAGS):
-
- Do not set preprocessor flags in the "CFLAGS" variable. They
- should instead be set in the CPPFLAGS variable. The
- preprocessor need not be the same as the compiler!
-
-Mon May 28 18:11:20 2001 Douglas C. Schmidt <schmidt@enz.cs.wustl.edu>
-
- * ace/OS.i (mutex_init): Using pthreads and passing attributes
- into mutex_init(), the function will always fail because the
- local variable result is initialized to -1 and then tested
- against 0. Thanks to Brodie Thiesfield
- <brodie.thiesfield@activesky.com> for this fix.
-
-Tue May 29 13:08:33 2001 Phil Mesnier <mesnier_p@ociweb.com>
-
- * ace/Process.i (handle_inheritence):
- * ace/Process.h:
-
- Exposed the interface for handle_inheritence to non-win32 builds to
- allow it to be used as part of the solution to bug 902. Since this is
- a win32 only feature, the method will invoke the NOTSUP macro to
- document its use, but failure is benign, returning 0. This is part 3
- of the 3 part solution to bug 902.
-
-Mon May 28 18:43:51 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Thread_Pool_Reactor_Resume_Test.icc: Visual Age C++ config
- for this new test.
-
- * tests/tests.icp: Added Thread_Pool_Reactor_Resume_Test.icc.
-
- * include/makeinclude/platform_aix_ibm.GNU: Added $(ACELIB) to
- LIBS to get netsvcs stuff to build clean. Thanks to Erik
- Toubro Nielsen <enielsen@mdsproteomics.dk> for this fix.
-
- * THANKS: Added Erik Nielsen.
-
-Mon May 28 14:44:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Timer_Heap_T.{h cpp}: Add new member, cur_limbo_ to keep track
- of timer entries removed from the heap, but not reclaimed (caller
- must call either reschedule() or free_node() to finish up the
- work).
-
- * ace/Timer_Queue_T.cpp (expire): When expiring a ACE_Timer_Node,
- either reschedule it or free it prior to doing the upcall.
- This necessitates having a copy of the TYPE element, not a
- reference. In the vast majority of cases, this is an
- ACE_Event_Handler pointer, and should make no difference in
- performance.
-
-Sat May 27 10:40:27 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/QoS/QoS_Session_Impl.cpp:
-
- Added an adhoc fix for propagating the right service type when
- a PATH message is received.
-
-Sat May 26 16:36:27 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Switched off TAO/examples/PluggableUDP/tests/Basic/run_test.pl
- from the Single Threaded builds. Added
- TAO/examples/PluggableUDP/tests/SimplePerformance/run_test.pl
- instead to run on all the builds.
-
-Fri May 25 20:51:33 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * netsvcs/build.bor:
- Changed contents of file back to its original state.
-
-Fri May 25 13:38:21 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Message_Block.h: Added a better explanation of what "crunch()"
- does. Thanks to Masaoud T. Moonim <masaoud@mailandnews.com> for
- motivating this.
-
-Fri May 25 19:06:51 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Map_T.i (create_key): Added a new method to the maps. This
- method allows the user to create a key without binding to the
- map. For the linear and hash maps, this call simply forwards to
- the key generators. This method is not supported by the active
- map since the key encodes the slot position which cannot come
- without occupying a slot in the map.
-
-Fri May 25 08:37:37 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Message_Block.cpp:
-
- Fixed an error in ACE_Data_Block::clone, where ACE_NEW_RETURN
- is used without a constructor as one of the arguments. Besides,
- it is a mistake to allocate, because the call to clone_nocopy
- has already done an allocation. All we need to do is check for
- a 0 return from clone_nocopy.
-
-Fri May 25 05:42:39 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Message_Block.cpp (clone): Make sure to check for memory failure
- and return 0 in this case. Thanks to Airat A. Sadreev
- <airat@hq.tatenergo.ru> for reporting this.
-
-Thu May 24 22:06:45 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * tests/CDR_Test.cpp: Changed the initialization of WChar variable, to
- remove the warning "integer conversion resulted in a change of sign"
- by some compilers.
-
-Thu May 24 20:26:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Timer_Heap_T.{h cpp}: Fixed some problems in managing the
- free timer ID list.
-
- * ace/Timer_Hash_T.cpp (expire): Changed this to peek at the first
- timer node from each table, do reschedule iterative timers, and
- do the upcall, then _cancel_ the original, rather than try to
- manage a remove_first()/reschedule-or-free sequence. The ID
- assigned by the underlying table is not important, since its not
- seen by the ACE_Timer_Hash_T caller anyway, and that's the main
- impetus for using remove_first/reschedule (or free_node).
-
- * tests/Timer_Queue_Test.cpp (test_functionality): Added a test
- to verify empty timer queue after adding/removing two timers
- right at the start.
-
-Thu May 24 12:15:35 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS.h: Added #defines for RTLD_LAZY, RTLD_NOW, RTLD_GLOBAL.
- Thanks to Kobi Cohen-Arazi <kobic@bvr.co.il> for suggesting
- this.
-
- * ace/OS.h: Updated the ACE_Time_Value class to point out that the
- values are in secs and usecs. Thanks to Israel Illescas Gomez
- <illescas@dycsa.es> for motivating this.
-
-Thu May 24 18:08:27 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.lst: Re-enable MT_Reactor_Timer_Test.
-
-Thu May 24 15:34:48 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp: Changed <gets> to
- <fgets> to avoid warnings on some platforms. <gets> is not safe
- to use.
-
-Thu May 24 15:28:19 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Removed this test from being run on single-threaded configurations
- since this test uses the ACE_Thread_Manager.
-
-Thu May 24 15:12:16 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-tru64.h:
-
- Added ACE_HAS_NONSTATIC_OBJECT_MANAGER to the default builds to
- work around hangs in some of the tests which load a dynamic
- library. This fixes some more of the problems reported in Bug Id
- 912.
-
-Thu May 24 13:42:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: We dont have Red Hat 7.0
- anymore. So changed it as Red Hat 7.1.
-
-Thu May 24 10:51:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Resume_Test.dsp:
- * tests/tests.dsw: Files for Win32.
-
-Thu May 24 10:35:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Resume_Test.cpp
- * tests/Thread_Pool_Reactor_Resume_Test.h: A new test that tests
- the resumption of handler at the application level. This test is
- an adaptation of the famous Thread_Pool_Reactor_Test.
-
- * tests/Makefile: Added the test for compilation.
- * tests/run_test.lst: Added the above test for the nightly
- builds.
-
-Thu May 24 10:26:35 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Event_Handler.cpp:
- * tao/Event_Handler.h: A starter for bug #575. Please see the
- documentation of bug 575 for details of this change. In short
- the Event Handler class has an extra method called
- resume_handler (). Applications that use the TP_Reactor and
- would like to take control of resuming the handler can overload
- this method in their implementation and return a value other
- than zero.
-
- * tao/TP_Reactor.cpp: Added a check by calling the resume_handler
- () on the event handler object before resuming the handler.
-
-Wed May 23 16:35:15 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Sock_Connect.h,
- * ace/Flag_Manip.h,
- * ace/config-all.h: Make sure that all ACE include file have a
- "ace/" prefix. Thanks to John Lindal <jafl@cco.caltech.edu> for
- reporting this.
-
- * ace/config-win32-common.h: Fixed a problem where FD_SETSIZE wasn't
- getting reset properly. Thanks to Roger Tragin
- <rtragin@cuseeme.com> for reporting this.
-
-Wed May 23 17:37:30 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
- * tests/run_test.lst:
-
- Removed some tests from being run on Single Threaded
- Configuration as they were spawning threads. The tests removed
- are:
-
- TAO/performance-tests/AMI_Latency/run_test.pl
- TAO/tests/AMI_Timeouts/run_test.pl
- and
- tests/Logging_Strategy_Test
-
- This is related to Bug Id 912.
-
-Wed May 23 17:33:59 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/make_pretty.pl:
-
- Seems to have missed my previous update. Add the code to remove
- the bogus warning associated with SunCC5. Check the ChangeLog
- tag Mon May 21 16:37:18 2001 Krishnakumar B
- <kitty@cs.wustl.edu> for more.
-
-Wed May 23 18:22:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Reactor.cpp (run_reactor_event_loop (ACE_Time_Value&, eh)):
- It is possible for rounding/conversion fudges in calculating
- the WFMO/select wait time to cause the wait to time out, but the
- timer queue be not quite ready to expire the next timer. In this
- case, the ACE_Time_Value won't have been reduced to 0, so the
- handle_events call is repeated. Fixes Bugzilla # 153.
-
-Wed May 23 15:55:21 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Containers_T.h: Fixed comment directing reader to include
- ace/Unbounded_Queue.h (rather than _Set.h) for ACE_Unbounded_Queue.
-
- * ace/Timer_Heap_T.{cpp h}: Changed the free IDs list from a stack
- to a round-robin list. Newly-allocated IDs keep increasing til
- there aren't any more, then wrap around to the lowest numbered
- free ID and start again. This is a ease-of-use improvement to
- help applications catch their timer-related errors easier,
- which is apparantly important, especially in multi-threaded
- applications.
- Also, when remove_first() is called, remove the ACE_Timer_Node
- from the heap, but do not release its ID back to the free list.
- remove_first() must be followed by a call to reschedule() or
- remove(). The latter just reinserts the timer node in the heap,
- and the latter cleans up the timer ID.
-
-Wed May 23 14:41:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * netsvcs/ACE-netsvcs.html:
- * netsvcs/Makefile:
- * netsvcs/Makefile.am:
- * netsvcs/Makefile.bor:
- * netsvcs/README:
- * netsvcs/build.bor: Resurrected the files from the repo.
-
-Wed May 23 11:13:00 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Removed TAO/performance-tests/Latency from the nightly builds.
- This test has been superseeded by Single_Threaded_Latency and
- friends. In fact it is no longer used to generate performance
- results.
- This is part of the fixes for [BUGID:324]
-
-Tue May 23 11:53:24 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * docs/exceptions.html: Fix bad reference to OCI devguide:
- the link was broken and the chapter # was incorrect.
-
-Wed May 23 8:23:20 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/QoS/QoS_Session.h:
- * ace/QoS/QoS_Session_Impl.h:
- * ace/QoS/QoS_Session_Impl.cpp:
-
- Added a method to propagate the rsvp event type to the application.
-
-Wed May 23 06:52:44 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Moved the FORTE builds to ace.
-
-Tue May 22 21:57:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Added NO_AMI_MESSAGING to the
- builds.
-
-Mon May 21 18:34:52 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * include/makeinclude/platform_linux.GNU: Added default macros for:
-
- PLATFORM_QT_LIBS
- PLATFORM_QT_LDFLAGS
- PLATFORM_QT_LDFLAGS
-
- Thanks to Hans Utz <hans.utz@informatik.uni-ulm.de> for
- contributing this.
-
- * performance-tests/Misc/Makefile (LDLIBS): Added back
- -lPerf. Thanks to Hans Utz <hans.utz@informatik.uni-ulm.de> for
- reporting this.
-
-Mon May 21 16:37:18 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/Timer_Queue_Adapters.cpp:
- * bin/make_pretty.pl:
-
- Changed the make_pretty script to remove the false warning on
- SunCC5. Added documentation in the affected files. This fixes
- Bug Id 879.
-
-Sun May 20 08:48:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Added FORTE 6.1 to the list.
-
-Sun May 20 07:37:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/POSIX_Proactor.cpp: Fixed a compile error with g++.
-
-Sun May 20 01:38:59 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h:
- * ace/POSIX_Proactor.cpp: Applied patches from Russell L. Carter
- <rcarter@pinyon.org> that introduce FreeBSD 4.3 to AIO
- (compiling at least). [Bug 917]
-
-Sat May 19 10:28:56 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/make_pretty.pl: Ignore the mktemp () messages on Linux.
-
-Fri May 18 20:58:59 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added TAO's security tests to the list of tests to run in the
- nightly builds. They will only be run on platforms that support
- the "SSL" build configuration.
-
-Fri May 18 14:39:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h: Removed ACE_LACKS_SETSCHED for AIX 4.3.
- Fixes Bugzilla # 47.
-
- * ace/OS.h: AIX's ACE_THR_PRI_*_{MIN MAX} values are 1 and 127,
- respectively. PRIORITY_{MIN MAX} are process priorities,
- and the range is not legal for pthread_attr_setschedparam.
-
- * ace/Makefile.vac:
- * tests/Makefile.vac: Use -sev=w instead of -severity=warning
- to avoid tripping the scoreboard error detector unnecessarily.
-
-Fri May 18 10:50:55 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * Configuration.cpp:
-
- Reverted a change made to the validate_name() function that
- added '/' as an illegal character. This breaks the Interface
- Repository completely.
-
-Fri May 18 06:11:49 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/config-cxx-common.h: Changed
- # if defined (DIGITAL_UNIX) && DIGITAL_UNIX >= 0x40F
- to:
- # if defined (DIGITAL_UNIX) && DIGITAL_UNIX >= 0x40D
- This gets rid of a very annoying informational message. Thanks
- to Steve Vranyes <steve.vranyes@veritas.com> for reporting this
-
- * ace/config-tru64.h: Changed 0x40E to 0x40D in the check for
- DIGITAL_UNIX to disable the use of systime.h. Thanks to
- Steve Vranyes <steve.vranyes@veritas.com> for reporting this
- and for David Levine for suggesting the fix.
-
-Thu May 17 23:36:18 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added TAO's Request_Interceptor_Flow test to the list of tests
- to run in the nightly builds.
-
-Fri May 18 01:31:47 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Timeprobe.h: Reordered the include files: Timeprobe_T.h
- should come after Synch.h. Thanks to Bruce McIntosh
- <Bruce.McIntosh@Australia.Boeing.com> for reporting this
- problem.
-
-Fri May 18 00:36:35 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Map_Manager.cpp (unbind_all): Added a new method that
- unbinds all entries in the map. Also, refactored out some code
- into unbind_slot().
-
- BTW, this functionality is somewhat redundant since one can also
- do the following:
-
- // Unbind one at a time.
- MAP_MANAGER::iterator end = map.end ();
- while (1)
- {
- MAP_MANAGER::iterator iter = map.begin ();
- if (iter == end)
- break;
- map.unbind ((*iter).ext_id_);
- }
-
- However, the following should be much faster:
-
- // Unbind in one swoop.
- map.unbind_all ();
-
- Another reason to add the unbind_all() is that the method is
- available on the other map_managers and that it is now easier to
- convert a hash map to a normal map and back without changing any
- real code.
-
- * tests/Map_Manager_Test.cpp (test_map_manager): Added test for
- unbind.
-
- Thanks to Johnny Willemsen <johnny.willemsen@meco.nl> for
- suggesting this.
-
-Thu May 17 21:34:28 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/POSIX_Asynch_IO.cpp: Added an ACE_UNUSED_ARG to keep G++
- happy.
-
-Thu May 17 16:52:17 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * tests/CDR_File_Test.cpp (run_test):
- Modified ACE_OutputCDR instantiation to follow the new modified
- constructor.
-
-Thu May 17 17:01:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Re-enabled Core and Full builds on
- RedHat 7.1.
-
-Thu May 17 14:36:57 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Asynch_IO.cpp
- ace/Asynch_IO.h
- ace/Asynch_IO_Impl.cpp
- ace/Asynch_IO_Impl.h
- ace/Asynch_IO_Impl.i
- ace/POSIX_Asynch_IO.cpp
- ace/POSIX_Asynch_IO.h
- ace/POSIX_Asynch_IO.i
- ace/POSIX_Proactor.cpp
- ace/POSIX_Proactor.h
- ace/POSIX_Proactor.i
- ace/Proactor.cpp
- ace/Proactor.h
- ace/Proactor_Impl.h
- ace/WIN32_Asynch_IO.cpp
- ace/WIN32_Asynch_IO.h
- ace/WIN32_Proactor.cpp
- ace/WIN32_Proactor.h: Added more fixes and improved comments
- from Roger Tragin <rtragin@cuseeme.com>.
-
- * ace/SString.cpp: Fixed a bug in the check_allocate() method.
- Thanks to Wayne Erchak <wayne@stentor.com> for reporting this.
-
-Thu May 17 12:16:57 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/CDR_Stream.h (ACE_InputCDR):
- * ace/CDR_Stream.cpp:
- Modified so that even the Message_Block_Allocators are also
- allocated from TSS memory. The constructor of ACE_OutputCDR
- changes.
-
-Thu May 17 11:51:03 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/rules.local.GNU:
- Removed misuse of CC_OUTPUT_FLAG in the middle of an 'if' shell
- statement. Chances are that this was the result of a global
- search and replace. Thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com> for pointing this out.
-
-Thu May 17 12:43:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Removed the beguine builds for
- some time till we get Redhat machine in place.
-
-Thu May 17 11:36:02 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Configuration.cpp: Fixed an inconsistency in the
- enumerate_sections() method so that
- ACE_Configuration_Win32Registry and ACE_Configuration_Heap will
- behave the same. ACE_Configuration_Win32Registry was returning
- -2 upon no more sections to enumerate, rather than 1. This is
- because it is not checking for a return of ERROR_NO_MORE_ITEMS
- from ACE_TEXT_RegEnumKeyEx. Thanks to Kevin Burge
- <kcburge@systemware-inc.com> for reporting this.
-
-Thu May 17 10:46:31 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- Adding the HP-UX 11.00 build back to the list.
-
-Thu May 17 10:16:03 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/POSIX_Asynch_IO.{h,cpp}: There are some weird inconsistencies
- between the declaration and definition of the recv() methods in
- ACE_POSIX_SIG_Asynch_Read_Dgram and
- ACE_POSIX_AIOCB_Asynch_Read_Dgram. I've made a fix that
- compiles, but we need feedback from Roger Tragin to really fix
- this...
-
-Thu May 17 10:00:59 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * ace/Proactor_Impl.h:
- Added interfaces for create_asynch_read_dgram_result and
- create_asynch_write_dgram_result.
-
-Thu May 17 06:23:59 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Proactor_Impl.h: Added two missing factory methods to
- ACE_Proactor_Impl. Thanks to Bala for reporting this.
-
- * ace/WIN32_Proactor.h (ACE_WIN32_Proactor): The signal_number
- parameter was missing. Thanks to Andy Gokhale for reporting this.
-
-Thu May 17 06:23:59 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Asynch_IO.cpp
- ace/Asynch_IO.h
- ace/Asynch_IO_Impl.cpp
- ace/Asynch_IO_Impl.h
- ace/Asynch_IO_Impl.i
- ace/POSIX_Asynch_IO.cpp
- ace/POSIX_Asynch_IO.h
- ace/POSIX_Asynch_IO.i
- ace/POSIX_Proactor.cpp
- ace/POSIX_Proactor.h
- ace/POSIX_Proactor.i
- ace/Proactor.cpp
- ace/Proactor.h
- ace/WIN32_Asynch_IO.cpp
- ace/WIN32_Asynch_IO.h
- ace/WIN32_Proactor.cpp
- ace/WIN32_Proactor.h: Added Async IO support for UDP dgrams
- on NT so they can be used via the Proactor. Thanks to
- Roger Tragin <rtragin@cuseeme.com> for contributing this.
-
-Wed May 16 22:43:19 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Synch.i (ACE_Mutex::remove): Properly clean up the shared
- memory object and file backing for interprocess mutex.
-
- * tests/run_test.lst: Added Config_Test so run_test.pl runs it.
-
-Wed May 16 18:30:42 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Config_Test.cpp: Added a test to verify the ability to set
- a new integer value.
-
-Wed May 16 17:05:29 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp:
-
- In ACE_OutputCDR::write_wchar(), casting int to ACE_CDR::Octet and
- passing the pointer to that to write_1() instead of casting the
- pointers - to avoid little Endian and big Endian issues. Thanks to
- Krishnakumar B <kitty@cs.wustl.edu> in tracking this.
-
- * tests/CDR_Test.cpp:
-
- Added test for writing and reading ACE_CDR::WChar.
-
-Wed May 16 14:51:37 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/Config_Test.cpp: Updated this test to include Chris
- Hafey's improvements.
-
- * ace/Configuration.{h,cpp},
- * ace/Configuration_Import_Export.cpp: Added a number of fixes from
- Chris Hafey and Jonathan Reis that had been lost when Jerry
- Odenwelder added his changes.
-
-Wed May 16 09:49:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (handle_timed_complete): On Win32, interpret exception
- handle bit set as failure, regardless of what getsockopt says about
- an error. NT always reports 0 for error.
-
- * tests/SOCK_Connector_Test.cpp: Changed some LM_DEBUG to LM_ERROR and
- LM_WARNING to more easily interpret the log file.
-
-Wed May 16 02:40:00 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
-
- Added the PPC 403 CPU to the list of supported CPUs.
-
-Tue May 15 20:37:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process_Mutex.{h cpp inl}: (Follow up to Thu May 10 change
- later reverted on Mon May 14). Changed the preprocessor macros
- that select use of ACE_SV_Semaphore_Complex over ACE_Mutex
- as the underlying mechanism for ACE_Process_Mutex. If
- ACE_HAS_SYSV_IPC is set in config.h, ACE_SV_Semaphore_Complex
- is used, unless the new macro ACE_USES_MUTEX_FOR_PROCESS_MUTEX
- is also set. If ACE_HAS_SYSV_IPC is not enabled, ACE_Mutex
- is used, regardless of any other setting.
- Also, doxygen-ized the member function comments.
-
- * ace/Malloc.h: If ACE_Process_Mutex is to be used with
- ACE_HAS_MALLOC_STATS, include ace/Process_Mutex.h, not Synch_T.h.
-
- * tests/libDLL_Test.icc: Changed this to correctly generate shr.o,
- not libDLL_Test.o, for insertion into libDLL_Test.a. This lets
- it get picked up correctly from DLL_Test.
-
-Tue May 15 18:00:49 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-win32-common.h: Added support for a new config macro,
- ACE_NO_WIN32_LEAN_AND_MEAN. If this is set, WIN32_LEAN_AND_MEAN
- will not be defined before including windows.h. This is needed
- when code makes use of non-lean things like COM, which get
- included only when WIN32_LEAN_AND_MEAN is not defined.
-
- * ace/README: Added description of ACE_NO_WIN32_LEAN_AND_MEAN.
-
- * bin/make_pretty.pl (is_error): Don't report AIX's ld message to
- please check the -bloadmap as an error. It gets generated when
- there are multiple defines, which we filter out, so we don't
- want to see this follow-up message either.
-
-Tue May 15 10:14:56 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS.i (mmap): Added an extra check for an empty
- string. Thanks to Edan Ayal <edana@bandwiz.com> for reporting
- this problem and suggesting an easy fix.
-
-Mon May 14 22:38:06 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.16 released.
-
-Mon May 14 14:45:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.h (ACE_InputCDR): Somehow the removed
- steal_data () got back into the header file. Removed the
- method.
-
-Mon May 14 11:02:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Strategies_T.i: Removed the ACE_ERROR statement from the
- destructor of ACE_Accept_Strategy. This created problems when
- the destructor was called during shutdown if the object was
- statically allocated. Thanks to Jonathan Reis <reis@stentor.com>
- for reporting this problem.
-
-Mon May 14 07:48:16 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Process_Mutex.{h,cpp,inl}: Reverted the change "Thu May 10
- 18:37:41 2001 Steve Huston <shuston@riverace.com>". The change
- was breaking SHMIOP in TAO.
-
-Fri May 11 10:25:00 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS_Dirent.h (ACE_OS_Dirent): Missed a conversion of "DIR" to
- "ACE_DIR".
-
- * ace/Synch.cpp (get_nesting_level): Added better protection for the
- case where ACE_HAS_RECURSIVE_MUTEXES -- only return
- RecursionCount if ACE_WIN32 is defined. Thanks to Corey Trager
- <corey.trager@tradingtechnologies.com> for reporting this.
-
- * ace/OS.cpp: Reformatted all the ACE_reinterpret_cast() macros so their
- arguments are on the same line to avoid tickling a bug with
- SunC++'s preprocessor. Thanks to Corey Trager
- <corey.trager@tradingtechnologies.com> for reporting this.
-
-Fri May 11 07:14:50 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/CDR_Test.cpp: Reverted this change "Wed May 9 23:19:30
- 2001 Sharath R. Cholleti "
-
-Fri May 11 06:47:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/ARGV_Test.cpp: One of those extra ")".
-
-Fri May 11 06:14:58 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Dirent.h (ACE_Dirent),
- * ace/OS.cpp (uname),
- * ace/OS.h (ACE_OS),
- * ace/OS.i (hostname),
- * ace/OS_Dirent.cpp (readdir_emulation),
- * ace/OS_Dirent.h (ACE_OS_Dirent),
- * ace/OS_Dirent.inl (ACE_OS_Dirent),
- * ace/config-win32-common.h (ACE_LACKS_STRUCT_DIR),
- * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp (Notification_Receiver_Handler),
- * apps/Orbix-Examples/Logger/Logger.cpp (Logger),
- * bin/envinfo.cpp (main),
- * examples/Reactor/Multicast/Log_Wrapper.cpp (open),
- * performance-tests/Misc/basic_perf.cpp (main),
- * tests/Dirent_Test.cpp (main),
- * tests/Enum_Interfaces_Test.cpp (main),
- * tests/SOCK_Connector_Test.cpp (find_another_host):
- Updated all of ACE and its tests to use ACE_DIR rather than DIR
- to avoid conflicts with other programs (like Perl) that also
- define an enumation with DIR. Thanks to Gonzo Diethelm
- <Gonzalo.Diethelm@sonda.com> for contributing these fixes.
-
- The following fixes are all thanks to Ingo Dahm <ingo.dahm@sun.com>
-
- * ace/config-sunos5.6.h: Added support for SunC++ 5.2.
- * ace/IOStream.h: Added support for SunC++ 5.2.
- * ace/config-sunos5.8.h: Added Solaris 8 support for native
- POSIX RW locks.
- * include/makeinclude/platform_sunos5_sunc++.GNU: Added support
- for Sun C++ 5.2.
-
-Thu May 10 19:33:03 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/ARGV_Test.cpp:
- Fixed argv, it should be an ACE_TCHAR, add missing ACE_TEXT()
- and removed superfluous one.
-
-Thu May 10 18:19:09 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ACE-INSTALL.html:
- Add documentation for the mingw support, thanks Cristian Ferretti
- <cristian_ferretti@yahoo.com> for providing this info.
-
-Thu May 10 16:55:20 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Add the new Latency and Throughput tests to the nightly
- regression testsuite.
-
-Thu May 10 18:37:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/POSIX_Asynch_IO.cpp (ACE_POSIX_Asynch_Result ctor): Added
- initializers for bytes_transferred_ and error_. Thanks to
- Itzhak Briskman <ibriskman@ndsisrael.com> for this fix.
-
- * THANKS: Added Itzhak Briskman to the Hall of Fame.
- Updated David Brock's email address.
-
- * ace/SString.cpp (ACE_CString::substring): If requesting a substring
- longer than the string is, return only what's left. Thanks to
- David Brock <dbrock@momsdesk.com> for reporting this.
-
- * tests/SString_Test.cpp: Add a substring extraction test to catch
- the above problem (returning a substring with more than is left
- in the original string).
-
- * ace/Process_Mutex.{h cpp inl}: Changed the "uses mutex" vs
- "uses SV_Semaphore_Complex" decision to make use of a private
- macro defined in Process_Mutex.h. Further, the platforms that
- use mutexes are now Win32, PSOS, Pthreads, Sthreads.
-
- * ace/config-sunos5.6.h:
- * ace/config-hpux-11.00.h: Added ACE_HAS_SHM_OPEN since these
- platforms support shm_open, and ACE_Mutex wants to use it for
- cross-process mutexes.
-
- * ace/Proactor.h: Updated handle_events comments to note that the
- ACE_Time_Value is relative and is updated before return.
-
- * ace/Synch.(h cpp) (ACE_Mutex): Added ACE_HAS_PTHREADS and
- ACE_HAS_STHREADS to the platforms which handle inter-process mutex
- by allocating it in shared memory.
-
- * tests/Process_Mutex_Test.cpp: Made the child process create an
- exclusive access file after acquiring the mutex and delete it
- before releasing. If the file can't be created, it means the
- mutex is acquired twice, and that's a no-no.
- When the parent is checking child process exit, also check the
- status - if the child exited with something other than 0 status,
- note that so the test procedure will see a LM_ERROR in the log
- and flag it.
-
- * tests/MEM_Stream_Test.cpp: Changed some debug text to match the
- function it is in.
-
- * ace/Parse_Node.{h cpp}: Handle dynamic libraries using ACE_DLL,
- not ACE_OS::dlopen, etc. and handles. This is a proper refactoring
- of the code (ACE_DLL didn't exist when this was first written)
- and is needed to properly support dynamic services on AIX.
-
- * ace/DLL.cpp (open): (AIX only) If the dlopen fails and we're
- trying to open an archive lib, tack on "(shr.o)" and retry
- with the RTLD_MEMBER option set in the mode. This is to
- properly support AIX shared libraries which get built as
- .o files and loaded into an archive.
-
-Thu May 10 16:12:02 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/ACE.cpp (timestamp): The abbreviation of thursday should be
- "Thu" not "Thr". Thanks to Munagala Ramanath
- <amberarrow@yahoo.com> for pointing this out.
-
-Thu May 10 10:06:57 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/tests.dsw:
- * tests/ARGV_Test.dsp:
- Add project file for ARGV_Test, thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com> for pointing this out.
-
-Thu May 10 06:36:08 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/CDR_File_Test.cpp: Fixed a compile error with g++.
-
-Thu May 10 08:13:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * tests/Makefile.bor
- * tests/Misc/Makefile.bor
- * tests/Naming/Makefile.bor
- * tests/Reactor/Makefile.bor
- * tests/Reactor/Dgram/Makefile.bor
- * tests/Reactor/Ntalker/Makefile.bor
- * tests/Registry/Makefile.bor
- * tests/Synch/Makefile.bor
-
- Added or updated the above BCB makefiles so that the tests are
- build with BCB
-
-Wed May 9 23:19:30 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * ace/CDR_Streams.h:
- * ace/CDR_Streams.cpp:
- * ace/CDR_Streams.i:
- * ace/CDR_Base.h: Changed the WChar implementation to suit GIOP
- 1.2.
-
- * tests/CDR_Test.cpp:Added test for wchar.
-
- Thanks to Bala (bala@cs.wustl.edu) for helping me out.
-
-Wed May 9 16:06:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TTY_IO.cpp (control):
- * ace/OS.h: Corrected this change "Wed May 9 14:03:01 2001
- Douglas C. Schmidt". The problem was with the definition of the
- macro ACE_VTIME. Looks more like a cut and paste error.
-
-Wed May 9 16:00:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/TTY_IO.cpp: Reverted this change "Wed May 9 14:03:01 2001
- Douglas C. Schmidt".
-
-Wed May 9 14:03:01 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/TTY_IO.cpp (control): Use the new ACE_VMIN and ACE_VTIME
- macros. Thanks to Hans Utz <hans.utz@informatik.uni-ulm.de> for
- suggesting this.
-
- * ace/OS.h: Added support for the new ACE_VMIN and ACE_VTIME
- macros. Thanks to Hans Utz <hans.utz@informatik.uni-ulm.de>
- for suggesting this.
-
-Wed May 9 14:25:35 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Darren Griffith <darren.griffith@esecurityinc.com>
- to the hall of fame.
-
-Wed May 9 11:40:06 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.i:
- Don't use OpenFileMapping for WindowsCE.
-
- * ace/OS.i:
- * ace/config-win32-mingw.h:
- Use the /**/ trick for #includes with angle brackets, otherwise
- the Embedded C++ compiler gets angry.
-
-Wed May 09 10:02:10 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.15 released.
-
-Mon May 7 07:14:08 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Commented out OctetSeq test from running
- in static configurations.
-
-Mon May 7 06:40:44 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * examples/Shared_Memory/test_SV.cpp: Cast SHM_KEY to (key_t) to
- make BCB happy. Thanks to Johnny Willemsen for this.
-
-Sat May 5 15:30:40 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * THANKS: Just added the 1,200th contributor to the ACE+TAO.
- Thanks to Alexandre Cervieri <alexandre.cervieri@terra.com.br>
- for helping us hit a new milestone!
-
-Sat May 5 08:51:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Just commented the HP_UX
- builds. OCI seems to be having problems with their HP
- machine. We will get it online once the builds start running.
-
-Sat May 5 08:01:30 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/Thread_Mutex_Test.cpp: Added a series of tests that exercise
- the new functionality of the ACE_Guard. Thanks to Christopher
- Kohlhoff <chris@kohlhoff.com> for providing the enhancements.
-
-Fri May 4 15:42:20 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/OS.h
- Changed ACE_SERVICETYPE_CONTROLLEDLOAD from 2 to 1
- This is necessary to work with RAPI.
-
-Fri May 4 06:28:19 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS.h: Changed the typedefs of uid_t, gid_t, and mode_t to
- match those in standard POSIX. Thanks to Gonzalo Diethelm
- <Gonzalo.Diethelm@sonda.com> for reporting this.
-
-Fri May 4 06:28:19 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/ace_wchar.h: Add a new macro (ACE_USES_L_PREFIX) that allows
- users to control whether wide character strings use the "L"
- prefix via their config.h files. Thanks to Albert Wijnja for
- this fix.
-
- * examples/Misc/test_read_buffer.cpp (main): Changed <int> to
- <ACE_HANDLE> so this will work properly on Win32 platforms.
- Thanks to Johnny Willemsen for reporting the problem.
-
- * examples/Misc/test_XtReactor2.cpp (main): Fixed a stray ')'.
- Thanks to Johnny Willemsen for reporting the problem.
-
-Thu May 3 17:33:45 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.h: Fixed a mistake in the setsockopt() comment. Thanks
- to Craig Rodrigues for reporting this.
-
-Thu May 3 17:43:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Acceptor.cpp (ACE_Acceptor): Fixed a warning in g++ builds.
-
-Thu May 3 16:00:15 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc.h:
- * ace/PI_Malloc.h: Fixed the [PI_]Control_Block size estimation
- macros. I added a new member to control block.
-
-Thu May 3 14:52:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.h (ACE_InputCDR):
- * ace/CDR_Stream.cpp: Removed the method steal_data () as it did
- not serve the purpose. Added a new method exchange_data_blocks
- (). This method exchanges data_blocks between two CDR
- streams. The write and read pointers are also exchanged. This
- method performs no allocation and no releases and is lock free.
-
-Thu May 3 06:58:29 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Acceptor.{h,cpp},
- * ace/SOCK_Acceptor.{h,cpp}: When the number of clients
- connecting to a server exceeds the process handle limit the
- server would busy loop. The Acceptor accept_svc_handler()
- method is called which (1) constructs a handler and (2) attempts
- to accept the connection, which fails (because there is no
- available handle). The handler is destructed, but the connect
- request is still queued and so the acceptor gets called back
- again.... and so on until one of the client which is already
- connected disconnects and frees up a descriptor. Changed the
- Acceptor the close and reopen the connection when accept()
- fails. A check is done to make sure address reuse is set. So
- this fix will only work in case where it is set. Thanks to
- Dominic Hughes <dominic@aersoft.ie> for this fix.
-
- * ace/Unbounded_Queue.h: The comment was incorrect for
- ~ACE_Unbounded_Queue. Thanks to Johnny Willemsen for
- reporting this.
-
-Thu May 3 08:00:56 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * examples/ASX/Event_Server/Event_Server/Options.cpp:
- * examples/ASX/UPIPE_Event_Server/Options.cpp: Warning fixes that
- missed my earlier fix. This warning will appear only in the
- evening SUNOS EGCS build result. Just a proactive fix. :)
-
-Thu May 3 07:42:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * examples/IPC_SAP/FILE_SAP/client.cpp: Fixed a warning with Linux
- builds.
-
-Wed May 2 22:55:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * examples/ASX/Event_Server/Event_Server/Options.cpp:
- * examples/ASX/UPIPE_Event_Server/Options.cpp:
- * examples/IPC_SAP/FILE_SAP/client.cpp:
- * examples/Naming/test_open.cpp:
- * examples/Naming/test_writers.cpp: Fixed warnings in g++ builds.
-
-Wed May 2 18:36:29 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/README: Clarified that the shared memory tests now
- work fine on Win9x! Thanks to Cristian Ferritti for reminding
- me to do this.
-
-Wed May 2 15:10:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.h (ACE_InputCDR):
- * ace/CDR_Stream.cpp: Added a new constructor for ACE_inputCDR
- class. This constructor would take the data block with a
- pre-determined read and write pointer positions. This is helpful
- when an application would like to create a CDR stream with a
- smei-processed data block.
-
-Wed May 2 11:10:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added a colon to seperate the
- run_test.pl specification from "!" that is used to indicate
- where the scripts shouldn't be run.
-
-Wed May 02 05:40:47 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Use Queued_Message_Test/run_test.pl
-
-Wed May 2 06:31:46 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Makefile: Make it possible to set where the QTDIR is located.
- Thanks to Thomas Groth <groth.th@nord-com.net> for this
- enhancement.
-
-Tue May 1 21:38:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Process.cpp (spawn): When an application running with user
- ID=0 (i.e. root) spawns a new process using
- ACE_Process_Manager::spawn(), which in turn calls
- ACE_Process::spawn() and tries to set a user ID and a group ID
- for the new process different from root/other, the call to
- setreuid() succeedes but the call to setregid() made thereafter
- fails, because the process has no longer UID=0 and thus it
- cannot change to a different group. To fix this, it was
- necessary to swap the order of the calls to setreuid() and
- setregid(). Thanks to Ramiro Penataro <penataro@ll.iac.es> for
- reporting this.
-
-Tue May 1 11:05:48 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/MEM_Stream_Test.cpp (handle_input):
-
- Fixed syntax error. "ACE_TCHAR," not "ACE_CHAR."
-
-Tue May 1 09:57:30 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Activation_Queue.cpp (enqueue): Clarified the behavior
- of passing sizeof (*mr). Thanks to Guy Bolton King
- <guy_bolton_king@non.agilent.com>
-
-Tue May 1 07:13:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst : Sun CC 5.1 cannot work with
- Simple_Naming test. Made sure that this test does not run with
- Sun CC 5.1.
-
-Tue May 1 06:15:26 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Hash_Map_Manager_T.h (class ACE_Hash_Map_Manager_Ex): Fixed
- an erroneous comment. Thanks to Mark Drijver
- <mdrijver@remedy.nl> for finding this.
-
- * ace/Local_Name_Space_T.cpp (create_manager_i): It's now valid
- to use fixed mmap addresses on Win9x. Thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com> for these fixes.
-
- * ace/Mem_Map.{h,i},
- * ace/ace_wchar.h,
- * ace/OS.{h,i}: Added support to the ACE_OS::mmap() function and
- ACE_Mem_Map class so they work properly on Win9x. Thanks to
- Cristian Ferretti <cristian_ferretti@yahoo.com> for these fixes.
-
- * tests/Malloc_Test.cpp (main): Updated this test so that it
- doesn't try to do any remapping or alternative child address
- ranges on Win9x. Thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com> for pointing this out.
-
- * tests/MEM_Stream_Test.cpp (handle_input): Make sure to multiple
- MAXPATHLEN * sizeof (ACE_CHAR) to handle Unicode properly.
- Thanks to Cristian Ferretti <cristian_ferretti@yahoo.com> for
- pointing this out.
-
-Mon Apr 30 12:56:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst : Removed RAPI of the scoreboard.
-
-Sun Apr 29 15:20:00 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * bin/auto_run_tests.lst:
-
- Added a flag to the Pluggable UDP test, so that it does not
- get run in environments using only statically linked libraries.
-
-Sun Apr 29 11:44:26 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/ace_wchar.h: Reverted the following change
-
- Tue Apr 24 06:28:00 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
- * ace/ace_wchar.h: Fixed some code for VxWorks. Thanks to
- Albert Wijnja <Albert.Wijnja@meco.nl> for reporting this.
-
- This change is confusing since it's inconsistent with other
- platforms that enable ACE_TEXT_WIDE.
-
-Thu Apr 26 20:14:48 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.h (ACE_InputCDR):
- * ace/CDR_Stream.cpp: Added a new method steal_data () which
- replaces data blocks from one InputCDR stream to another. This
- is a slightly modified form of steal_from () which basically
- creates a new data block for the source stream. Creating a new
- data block incurs the unwanted malloc overhead.
-
-Thu Apr 26 12:37:45 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/README: Updated the list of tests that do not work on
- windows 9x/ME for their limited shared memory support. Thanks
- to Cristian Ferretti <cristian_ferretti@yahoo.com> for pointing
- them out.
-
-Thu Apr 26 12:30:19 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Containers_T.h Updated documentation for
- ACE_DLList_*Iterator's on the use of method
- <advance_and_remove>. Users are responsible for release
- (free'ing) the returned element. Thanks to Rachel G. Smith
- <Rachel_G_Smith@raytheon.com> for motivating the change.
-
-Thu Apr 26 07:58:56 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Prevented the BiDirectional tests from
- running in the Minimum nightly builds.
-
-Thu Apr 26 07:48:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/MEM_IO.h (ACE_MEM_IO): Some cosmetic fixes.
-
-Thu Apr 26 07:38:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp: Fixed a compile
- error. The ACE_MEM_IO::fini () was taking an integer
- value. There was no method with a signature fini (int). Removed
- the integer argument.
-
-Wed Apr 25 23:24:25 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp: Changed the error message on SysV
- semaphores to LM_WARNING and moved it up before executing the MT
- test.
-
- * ace/MEM_IO.cpp:
- * ace/MEM_IO.h:
- * ace/MEM_IO.i: Do not compile MT signaling code if only SysV
- semaphores are available.
-
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Connector.cpp: Force the other party to use Reactive
- signaling if we don't support MT signaling.
-
-Wed Apr 25 19:48:48 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Remove the tests/Oneway_Buffering/run_timeout.pl test from the
- list. It is giving spurious errors, but fixing them would take
- me too long.
-
-Wed Apr 25 20:23:44 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-linux-common.h: Revert my previous change:
-
- Wed Apr 25 03:45:55 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- Linux's POSIX semaphores is broken. Thanks to Ossama for
- noticing this.
-
-Wed Apr 25 18:32:54 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ACE-INSTALL.html: Make sure to mention that ACE (and TAO) run
- on Solaris 8. Thanks to Richard Hardgrave
- <hardgrav@ttd.teradyne.com> for motivating this.
-
- * include/makeinclude: Zapped the platform_sunos5_egcs.GNU
- file. Thanks to Craig Rodrigues for the suggestion.
-
-Wed Apr 25 15:30:18 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Malloc_Test.cpp: The reference counter needs to be release
- if we want it to work.
-
-Wed Apr 25 03:45:55 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp: Temporarily changed the informational
- message about the use SYSV semaphores to LM_ERROR so we can find
- those platforms out quicker. Many of them may actually support
- POSIX semaphores. We need to enable them in that case.
-
- * ace/config-linux-common.h: Added ACE_HAS_POSIX_SEM and
- ACE_LACKS_NAMED_POSIX_SEM. Linux actually support them. I'm
- not sure if there are any version of linux that don't.
-
-Wed Apr 25 03:15:34 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc.h: Added new variables to reference counting the
- Malloc.
-
- * ace/PI_Malloc.h: Added new variables to reference counting the
- Malloc and removed a ton of duplicated code that had already
- been defined in Malloc.h.
-
- * ace/Malloc_T.cpp:
- * ace/Malloc_T.h:
- * ace/Malloc_T.i: Added 2 new methods to query the reference
- counter and to release the reference counter. The reference
- counter is created with 1 when the malloc first use a new
- backing store. Later malloc that attaches to the same backing
- store will increase the reference counter. It's the user's
- responsibility to invoke release when the malloc is no longer
- needed. The reference counter provides a way to indication it's
- safe to clean up the backing store without upsetting other
- malloc that might still need it. Note, however, the malloc will
- not cleanup the backing store automatically when the reference
- counter drops to 0 because we may want to attach another malloc
- to it in some later point.
-
- * ace/MEM_IO.cpp:
- * ace/MEM_IO.h:
- * ace/MEM_SAP.cpp:
- * ace/MEM_SAP.h: Use the aforementioned reference counter to
- cleanup the backing store automagically.
-
- * ace/MEM_Stream.h:
- * ace/MEM_Stream.i: Removed cleanup method as it is no longer
- needed with the previous changes. Removed unnecesary <remove>
- argument from fini () method.
-
- * ace/MEM_Stream.cpp: Simply calling fini () without worrying
- about cleaning up the backing store.
-
- * tests/MEM_Stream_Test.cpp: No longer need to hint for cleanup.
-
- * tests/Malloc_Test.cpp: Added ACE_ASSERT to check for proper
- operation of reference counter.
-
-Tue Apr 24 17:54:00 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile:
- Add 'Timer' to the default list of ACE components, without many
- a test, application or example do not compile.
-
-Tue Apr 24 16:39:29 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Add Reliable_Oneways, Blocking_Sync_None, Oneway_Buffering,
- Big_Oneways, Big_Twoways, Big_Request_Muxing and
- Queued_Message_Test to the nightly builds. Most of these tests
- are part of the 132 regression test suite.
-
-Tue Apr 24 06:28:00 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Makefile: Refactored some stuff to improve the
- ACE subsetting as follows:
-
- . Moved Malloc_Instantiations.cpp from libACEUtils to the
- component libACE_Memory.
-
- . Moved Handle_Set.* to libACE_Utils to satisfy ACE.*
-
- . Moved Dynamic_Service_Base to libACE_Svcconf
-
- . Build a new component libACE_Timer with :
- Timer_Wheel.*,Timer_Queue.*,Timer_List.*,Timer_Heap.*,Timer_Hash.*
- Timeprobe.* Time_Request_Reply.* System_Time.* Profile_Timer.*
- High_Res_Timer.*
-
- Thanks to Thomas Groth <groth.th@nord-com.net> for these
- suggestions.
-
- * docs/ACE-guidelines.html: Updated the discussion of using
- open() rather than constructors. Thanks to Stan Pinte
- <spinte@latinia.com> for motivating this.
-
-Sat Apr 14 10:51:39 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Log_Msg.h:
- Document the lock related functions in a separate Doxygen
- section.
-
-Mon Apr 23 17:18:35 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (ACE::handle_timed_complete): Set need_to_check for
- any non-success result, or on a system where you can't tell (AIX).
- Also, to check, use getsockopt to retrieve the status/error if
- SOL_SOCKET and SO_ERROR are defined; else use the old recv method.
- This gets you a real error code on a failed connect, if the platform
- supports it.
-
- * tests/SOCK_Connector_Test.cpp: For an expected success, allow test
- to pass if socket gets a reset but not if it says ENOTCONN. If there
- are platforms that can't do SOL_SOCKET/SO_ERROR (above) then this
- other code may need to be re-enabled.
-
-Mon Apr 23 13:36:27 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (ACE::handle_timed_complete): Winsock (ACE_WIN32) sets
- the exception bit (not the read bit) for a failed async connect.
- So on fail, don't bother to do the recv trick to see if the socket
- really did fail.
-
- * ace/Connector.cpp (ACE_Connector::handle_output):
- * ace/SOCK_Connector.cpp (complete): Apparantly, Win2000 has
- fixed the problem where a connection succeeds but can't be used
- for a time. So, the sleep workaround is restructured for ACE_WIN32
- to try the new socket first, and only do the sleep if it fails.
- Don't try to do this check (e.g. building on Win2000) at compile
- time, since we want to be able to build on NT and run on Win2000.
-
- * ace/README:
- * ace/config-win32-common.h: Removed the macro,
- ACE_HAS_BROKEN_NONBLOCKING_CONNECTS. It was only used in the two
- cases above, and is not needed any longer.
-
-Mon Apr 23 07:08:09 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Based_Pointer_T.h: Updated the documentation to
- explain how ACE_Based_Pointer<T> (NULL) behaves. Thanks to Tom
- Moog <tmoog@polhode.com> for motivating this.
-
-Sun Apr 22 14:26:56 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- Some warnings are automatically disabled, but the pragmas only
- make sense for MSVC.
-
- * ace/streams.h:
- Fixed problems for Sun/CC-4.2, the trick is to include
- strstream.h on MINGW32 *and* unix-like platforms, while
- strstrea.h is included for all other WinXX-based compilers.
-
-Sat Apr 21 19:02:27 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * netsvcs/clients/Naming/Dump_Restore/Makefile:
- * netsvcs/clients/Naming/Client/Makefile: Removed duplicated ACE
- library. I thought I removed them all.
-
-Sat Apr 21 15:31:27 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/ACE.cpp:
- * ace/Basic_Types.h:
- * ace/Configuration.cpp:
- * ace/Handle_Gobbler.i:
- * ace/Lib_Find.cpp:
- * ace/Local_Name_Space_T.cpp:
- * ace/Log_Msg.cpp:
- * ace/Makefile:
- * ace/Mem_Map.cpp:
- * ace/Memory_Pool.cpp:
- * ace/Message_Queue.i:
- * ace/NT_Service.cpp:
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS_String.cpp:
- * ace/Process.cpp:
- * ace/Process_Manager.cpp:
- * ace/Registry.cpp:
- * ace/SOCK_Connector.i:
- * ace/Sock_Connect.cpp:
- * ace/TTY_IO.cpp:
- * ace/WFMO_Reactor.cpp:
- * ace/WFMO_Reactor.i:
- * ace/WIN32_Asynch_IO.cpp:
- * ace/config-cygwin32-common.h:
- * ace/config-g++-common.h:
- * ace/config-win32-common.h:
- * ace/config-win32-mingw.h:
- * ace/config-win32.h:
- * ace/streams.h:
- * examples/NT_Service/Makefile:
- * examples/NT_Service/main.cpp:
- * examples/NT_Service/ntsvc.cpp:
- * include/makeinclude/platform_cygwin32.GNU:
- * include/makeinclude/platform_gnuwin32_common.GNU:
- * include/makeinclude/platform_mingw32.GNU:
- * include/makeinclude/rules.local.GNU:
- * include/makeinclude/wrapper_macros.GNU:
- * tests/CDR_File_Test.cpp:
- * tests/Cached_Accept_Conn_Test.cpp:
- * tests/Cached_Conn_Test.cpp:
- * tests/Conn_Test.cpp:
- * tests/Handle_Set_Test.cpp:
- * tests/MEM_Stream_Test.cpp:
- * tests/MEM_Stream_Test.h:
- * tests/MM_Shared_Memory_Test.cpp:
- * tests/MT_SOCK_Test.cpp:
- * tests/Malloc_Test.cpp:
- * tests/Mem_Map_Test.cpp:
- * tests/OS_Test.cpp:
- * tests/Priority_Reactor_Test.cpp:
- * tests/Process_Strategy_Test.cpp:
- * tests/Reactor_Exceptions_Test.cpp:
- * tests/Reactor_Notify_Test.cpp:
- * tests/SOCK_Send_Recv_Test.cpp:
- * tests/SOCK_Test.cpp:
- * tests/SPIPE_Test.cpp:
- * tests/Svc_Handler_Test.cpp:
- * tests/run_tests.bat:
- * tests/run_tests.sh:
- * tests/RMCast/RMCast_Fragment_Test.cpp:
- Add support for mingw (www.mingw.org) and partial support for
- cygwin (http://cygwin.com/). Many thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com>
-
-Fri Apr 20 18:21:41 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/CDR_Stream.i (align_write_ptr):
- Don't use grow_and_adjust() here because it forces an
- allocation, using simply adjust() is better.
-
-Fri Apr 20 19:37:53 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Get_Opt.h: Updated the documentation to match the constructor
- arguments for ACE_Get_Opt. Thanks to Benot Desmeules
- <bdesmeules@eurekium.com> for reporting this.
-
- * ace/TP_Reactor.cpp: Added a workaround for compiling ACE on
- Linux for the OS/390 OS. Thanks to James Dorsey
- <James.Dorsey@acxiom.com> for reporting this.
-
-Fri Apr 20 00:57:24 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Containers_T.cpp (operator=): Added a missing assignment to
- this->size_ = s.size_. Thanks to Juan Jose Comellas
- <jcomellas@novamens.com> for reporting this.
-
- * ace/SOCK_Dgram: One of the send() methods was lacking a "const"
- in front of the ACE_Addr &. This has been fixed. Thanks to
- Victor Poznyak <VictorP@Webley.COM> for reporting this.
-
-Thu Apr 19 16:18:33 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.h: Doxygen-ized some function arguments; other
- minor doc cleanups.
-
-Thu Apr 19 11:08:15 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ACE-INSTALL.html: Point out that ACE supports Solaris 8.
- Thanks to Logan Modahala <lmodahal@cisco.com> for motivating
- this.
-
-Wed Apr 18 13:57:40 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/ACE.cpp:
-
- Modification to check errno for ENOBUFS (in addition to
- EWOULDBLOCK) after writing to a file descriptor. This will happen
- on VxWorks when a client sends data faster than the server can
- receive it. This modification causes this to be a retry situation
- instead of an error. [Bug 866]
-
-Wed Apr 18 11:33:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the BiDirectional tests to the
- nightly builds. There is no reason why it did not go in so far.
-
-Wed Apr 18 10:25:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Changed the name of the -config option
- for SUNCC5.1. Removed the dot and replaced it with a '_'.
-
-Wed Apr 18 05:23:53 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/Config_Test.cpp: Fixed several warnings related to
- not using ACE_TEXT for wide-strings. Thanks to Bala for
- reporting this.
-
-Wed Apr 18 02:08:16 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Synch/proc_sema.dsp: Fixed release build settings.
-
-Tue Apr 17 12:33:49 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Service_Config.cpp (open_i): If the caller supplies a
- logger key, enable the ACE_Log_Msg::LOGGER bit when opening
- the ACE_Log_Msg instance, else the logger key is ignored.
-
-Tue Apr 17 06:15:00 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * bin/auto_run_tests.lst:
-
- Added the UDP Pluggable Protocol test to the list of executed tests.
-
-Mon Apr 16 20:42:46 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/platform_qnx_rtp_gcc.GNU:
- Remove obsolete comments and raise the optimization level from
- -O2 to -O3, the latter disables a huge number of warnings for
- PACE.
-
-Mon Apr 16 22:15:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Commented out some tests that are
- failing on SUNCC 5.1. The failure is because of a compiler
- bug. The problem is that the compiler seems to have difficulty
- in calling the virtual method in a class hierarchy which is
- built with multiple inheritance.
-
-Mon Apr 16 20:24:11 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/Config_Test.cpp (main): Remoted the test_io() function.
- Thanks to Jerry Odenwelder <jerry.o@mindspring.com> for
- confirming this.
-
-Mon Apr 16 16:18:57 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/config-qnx-rtp.h:
- Add support for gperf under QNX
-
- * include/makeinclude/platform_qnx_rtp_gcc.GNU:
- The -fexceptions flag has no place in the CPPFLAGS macros, it
- should go in CCFLAGS (though I could be convinced to put it in
- CFLAGS)
-
-Mon Apr 16 16:13:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Configuration.h (ACE_Configuration::root_section): Made this
- method 'const'; makes today's changes easier to deal with.
-
- * ace/Configuration_Import_Export.cpp (string_has_white_space):
- * ace/Configuration.cpp (operator==): Replaced 'true' with 1 and
- 'false' with 0; replace const_cast<> with ACE_const_cast (),
- per docs/ACE-guidelines.html, and IBM C++ :-) Also, use two
- non-const local variables instead of const_casting 'this' and
- 'rhs' on every use.
- Made ACE_Configuration::root_section (void) const.
-
- * ace/ace.icc: This was an early hack attempt to use library or DLL
- build for Visual Age C++ 4. It is now the Visual Age C++ 5
- configuration for building ACE on AIX. The ace-dll.icc and
- ace-lib.icc are still around for Visual Age C++ 4 users, but may
- not work and will be removed in a future ACE release. This
- config is for Visual Age C++ 5 only and can/will be extended to
- do subset builds as well as debug/optimize/etc variants.
-
- * bin/make_pretty.pl: Pick out AIX ld errors correctly.
-
- * include/makeinclude/platform_hpux_aCC.GNU: Note HP problem report
- number and disposition for inability to use -AA and +noeh together.
-
-Mon Apr 16 12:32:48 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp: Limited the concurrent connections
- used in the multithreaded test on platforms without POSIX or
- Win32 semaphores. In this case, SysV semaphores are used and
- a user can only instantiate very limited number of them. The
- test will also print out an INFO in this case as it implies
- there can only be one "multithreaded" connection in one host at
- any instance. This fixed the test on some obsolete UNIX
- platforms.
-
-Mon Apr 16 09:58:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Config_Test.cpp: Fixed a warning with g++ builds. The
- warning was because of an unused function.
-
-Sun Apr 15 21:27:19 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Added new Configuration_Import_Export.{h,cpp}
- files.
-
-Sun Apr 15 19:33:19 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Configuration.cpp,
- * ace/Configuration_Import_Export.cpp: Fixed some warnings
- that show up with G++. Thanks to Carlos for reporting this.
-
-Sun Apr 15 17:13:40 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Disabled TAO/tests/Client_Leaks on all configurations, it is
- failing systematically because it cannot create processes fast
- enough.
-
-Sat Apr 14 18:08:16 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Configuration_Import_Export.h:
- Fixed small typo in the @file comment for
- Configuration_Import_Export.h
-
-Sat Apr 14 18:31:15 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Makefile.bor: Added new Configuration_Import_Export.obj file.
-
- * tests/Config_Test.cpp: Added tests for the new ACE_Configuration*
- stuff. Thanks to Jerry Odenwelder <jerry.o@mindspring.com> for
- contributing these.
-
- * ace/Configuration_Import_Export.{h,cpp}: Added two new files that
- do the following:
-
- 1. Remove the import and export functionality from the
- ACE_Configuration object.
- 2. Provide two new classes to import/export ACE_Configuration
- objects:
-
- * ACE_Registry_ImpExp import and exports in the Win32
- Registry format - this was the old import/export routine on
- ACE_Configuration.
- * ACE_Ini_ImpExp imports and exports in an INI format. The
- import part of this was called import_config_as_strings in
- the old ACE_Configuration object. While this object will
- export any ACE_Configuration object, it can only import data as
- strings. This is due to the inability to distinguish type
- in the INI format.
- 3. Added operator== to ACE_Configuration. This is to compare
- contents not type.
- 4. Test programs were modified to exercise this new functionality.
-
- Thanks to Jerry Odenwelder <jerry.o@mindspring.com> for
- contributing these.
-
-Sat Apr 14 12:44:17 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/MEM_IO.i:
- Reorder operations to eliminate warnings on Tru64/CXX
-
-Sat Apr 14 11:12:26 2001 Steve Huston <shuston@riverace.com>
-
- * tests/CLASSIX_Addr_Test.icc:
- * tests/CLASSIX_CLD_Connector_Test.icc:
- * tests/CLASSIX_Con_Acc_Test.icc:
- * tests/CLASSIX_Group_Test.icc:
- * tests/CLASSIX_Notify_Test.icc:
- * tests/CLASSIX_OS_Test.icc:
- * tests/CLASSIX_Reactor_Test.icc:
- * tests/CLASSIX_Select_Reactor_Test.icc:
- * tests/CLASSIX_Stream_Test.icc:
- Removed these files. They were moved/copied to tests/CLASSIX some
- time back and don't belong here.
-
- * tests/t.icc: Removed. This is not used for anything.
-
- * tests/Makefile.vac: Corrected 'realclean' actions.
-
-Sat Apr 14 09:17:32 2001 Steve Huston <shuston@riverace.com>
-
- * examples/QOS/Change_Sender_TSpec/sender.dsp: Added extra level of
- directory for include and lib - missed this one in yesterday's
- set of changes.
-
-Sat Apr 14 09:08:33 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Array_Base.h: Added forward declaration for ACE_Allocator.
- * ace/Array_Base.cpp: Added #include "Malloc_Base.h" so IBM C++
- can find ACE_Allocator when instantiating templates.
-
- * ace/config-hpux-10.x-hpc++.h: When using standard C++ lib,
- set the value of ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB to 1.
-
- * netsvcs/clients/Naming/Dump_Restore/Makefile:
- * netsvcs/clients/Naming/Client/Makefile: Add ACELIB to LIBS. This
- allows IBM C++ compilers to build the library clean.
-
- * tests/Makefile.vac: Don't try to use vacbld_r on the entire
- project. It can take so long that make gives up and kills
- off the build, making a real mess of the .ics files and leaving
- random numbers of tests unbuilt. Instead, run vacbld_r on
- each .icc file in the directory. Similarly for clean, don't
- reply on vacbld_r on the project file - run through all the
- ics files and executables based on existing .icc files.
-
-Fri Apr 13 12:44:21 2001 Steve Huston <shuston@riverace.com>
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record):
- If logging to STDERR is not enabled, don't dump the log record
- there either.
-
-Fri Apr 13 12:21:01 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc_T.h: Added an explanation on the requirement about
- sizeof (TYPE)link of ACE_Cached_Allocator and a link to
- ACE_Cached_Mem_Pool_Node where this stuff was explained. Thanks
- to Rachel G. Smith <Rachel_G_Smith@raytheon.com> for motivating
- the change.
-
-Fri Apr 13 12:05:38 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.h:
- * tests/MEM_Stream_Test.cpp: Borland C++ has problem cleaning up
- the static Atomic_Op object in Echo_Handler in the right order.
- Made that an ACE_Singleton and re-organized the test a big.
- Thanks to Chris Kohlhoff <chris@kohlhoff.com> for reporting and
- suggesting the fix. [Bug 862]
-
-Fri Apr 13 11:58:58 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.i (gethrtime):
- Add support for the the clock tick register as a high resolution
- timer under KCC/Linux. Thanks to David Levine for help on this.
-
-Fri Apr 13 05:30:04 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS.i: Make sure that the PTHREADS version of ACE_OS::thr_yield()
- gets top priority over the STHREADS version. Thanks to Munagala
- Ramanath <amberarrow@yahoo.com> for reporting this.
-
- * ace/Malloc_T.{h,i}: Added support for one of the calloc() methods
- to ACE_Cached_Allocator. Thanks to Rachel G Smith
- <Rachel_G_Smith@raytheon.com> for motivating this change.
-
- * ace/Malloc_Allocator.h: Updated the comments for ACE_New_Allocator
- to indicate that the calloc() methods are also supported.
- Thanks to Rachel G Smith <Rachel_G_Smith@raytheon.com> for
- motivating this change.
-
- * docs/ACE-bug-process.html: Updated this document to explain how
- bugs pertaining to OCI's TAO releases should be handled. Thanks
- to Georg Lohrer <GeorgLohrer@web.de> for motivating this.
-
-Thu Apr 12 20:36:30 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS.i (thr_getspecific): Reorder the way in which we check
- the flags so that ACE_HAS_PTHREADS takes precedence over
- ACE_HAS_STHREADS. Thanks to Munagala Ramanath
- <amberarrow@yahoo.com> for reporting this.
-
-Thu Apr 12 21:18:44 2001 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_aCC.GNU: Added
- -D_RWSTD_MULTI_THREAD -D_REENTRANT to CCFLAGS for stdlibcpp build.
- Makes execution clean, no core dump on program init.
-
-Thu Apr 12 17:31:36 2001 Steve Huston <shuston@riverace.com>
-
- * examples/IOStream/server/iostream_server.h: Wrap the guts of this
- in #if !defined (ACE_LACKS_ACE_IOSTREAM) to build clean on platforms
- that can't handle ACE_IOStream.
-
-Thu Apr 12 17:02:41 2001 Steve Huston <shuston@riverace.com>
-
- * examples/QOS/Change_Sender_TSpec/sender.dsp:
- * examples/QOS/Change_Sender_TSpec/receiver.dsp:
- * examples/QOS/Change_Receiver_FlowSpec/sender.dsp:
- * examples/QOS/Change_Receiver_FlowSpec/receiver.dsp:
- * examples/QOS/Simple/sender.dsp:
- * examples/QOS/Simple/receiver.dsp: Changed project names from 002
- and 003 to sender and receiver. Corrected relative paths for include
- and library lookup (add another ..).
-
- * examples/QOS/QOS.dsw: Change project names from 002/003 to sender
- and receiver.
-
-Thu Apr 12 15:48:22 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/CDR_Stream.i (length):
- Moved definition of length method above any of the methods
- that call into it. Was producing warnings on Tru64 platform.
-
-Thu Apr 12 13:06:27 2001 Joel Sherrill <joel@OARcorp.com>
-
- * include/makeinclude/Makefile.rtems: Replaced debug version
- with real version that queries RTEMS application Makefile
- infrastructure.
-
- * include/makeinclude/platform_rtems.x_g++.GNU: Added
- --no-print-directory option to all invocations of recursive
- make to determine information from Makefile.rtems. This
- avoids getting the "entering/exiting directory" messages
- included in the results.
-
- * ACE-RTEMS.README: Added requirement to configure C++
- support in RTEMS. Updated to reflect also compiling for mc68360
- target.
-
-Wed Apr 11 20:36:36 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Synch/proc_sema.cpp (main): Fixd an assigning string
- literal to char* warning.
-
-Wed Apr 11 18:04:33 2001 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/rules.bin.GNU: Change the Visual Age C++
- incremental build command to use vacbld_r, the thread-enabled
- variant of vacbld.
-
-Wed Apr 11 11:00:50 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ACE-INSTALL.html: Added a section illustrating how to build
- ACE+TAO for RTEMS. Thanks to Joel Sherrill <joel@OARcorp.com>
- for this build procedure.
-
-Wed Apr 11 11:38:37 2001 Steve Huston <shuston@riverace.com>
-
- * ace/IOStream.h: Reverted change from
- Tue Apr 10 18:35:22 2001 Steve Huston <shuston@riverace.com>
- and replaced it with a section that sets ACE_LACKS_ACE_IOSTREAM
- if ACE_HAS_STANDARD_CPP_LIBRARY is set and ACE_USES_OLD_IOSTREAMS
- is not. This restriction is noted and tracked in Bugzilla # 857.
-
- * ace/IOStream.cpp:
- * tests/IOStream_Test.cpp: Reverted change from
- Tue Apr 10 18:35:22 2001 Steve Huston <shuston@riverace.com>
-
-Wed Apr 11 09:44:32 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * examples/Misc/test_trace.cpp:
-
- Fixed a strange compiler error with Tornado II.
- My_Task::recursive was inline which caused an internal compiler
- error.
-
-Wed Apr 11 08:04:21 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * include/makeinclude/platform_linux.GNU: By default, we build
- ACE+TAO with exceptions enabled on Linux. Thanks to Craig
- Rodrigues <crodrigu@bbn.com> for motivating this change.
-
- * ace/SString.i (operator+): Fixed an "inlined before use" warning.
- Thanks to Bala for reporting this.
-
-Tue Apr 10 16:58:54 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h (ACE_DEFAULT_FILE_PERMS, ACE_DEFAULT_DIR_PERMS):
-
- Changed the default values on UNIX from 0666 and 0777 to 0644
- and 0755, i.e. removed global write permissions. This addresses
- some security issues. Now, only the owner has write permissions
- by default.
-
-Tue Apr 10 18:35:22 2001 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: Added a new
- build option, stdcpplib, which defaults to 1. If set to 1,
- Sun Workshop 5 and Forte 6 compilers will use the standard
- C++ library, including standard iostreams. Set to 0 to
- use the old, classic iostreams.
-
- * include/makeinclude/platform_hpux_aCC.GNU: Added support for
- the stdcpplib build option. It defaults to 1 if using aC++
- x.27, or 0 if not. Thanks very much to Istvan Buki <ibuki@fedex.com>
- for these changes.
-
- * ace/config-aix-4.x.h: For Visual Age C++ 5, turn on
- ACE_HAS_STANDARD_CPP_LIBRARY and
- ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB.
-
- * ace/config-sunos5.5.h: For Sun Workshop 5 and Forte 6 compilers,
- take the ACE_USES_OLD_IOSTREAMS setting from the platform_macros.GNU
- file; don't set it here.
-
- * ace/config-hpux-11.00.h:
- * ace/config-hpux-10.x-hpc++.h: If the stdcpplib=1 option was used,
- then turn on ACE_HAS_STANDARD_CPP_LIB and
- ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB. Else turn on
- ACE_USES_OLD_IOSTREAMS.
-
- * ace/IOStream.{h cpp}: Only try to build this stuff if
- ACE_LACKS_ACE_IOSTREAM is not defined and ACE_USES_OLD_IOSTREAMS
- _is_ defined. The check on ACE_USES_OLD_IOSTREAMS can be removed
- when ACE_IOStream gets ported to standard iostreams.
-
- * tests/IOStream_Test.cpp: Only try this if ACE_USES_OLD_IOSTREAMS
- is defined. Remove this if/when ACE_IOStream is ported to new
- iostreams.
-
-Tue Apr 10 17:51:25 2001 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
- Added TAO/tests/OctetSeq/run_test1{2}.pl to auto testing.
-
-Tue Apr 10 16:33:42 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
- Added sanity checks for sizes of strings and arrays.
-
-Tue Apr 10 15:14:52 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
-
- Added missing else/endif from previous support addition.
-
-Tue Apr 10 11:48:51 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: Added support
- for the M68k line of CPUs. Thanks to Albert Pariante
- <albert@sw.bev.etn.com> for reporting this.
-
-Tue Apr 10 02:14:55 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/PerlACE/Run_Test.pm (check_n_cleanup_files): Added a new
- PerlACE function that checks for unwanted files and spits out a
- warning before removing the file. It makes sure that we not
- only clean up resource leaks but also notice their existence.
-
- * tests/run_test.pl (delete_temp_files): Used the new
- <check_n_cleanup_files> to remove the temp files for
- MEM_Stream_Test, if there are any.
-
-Tue Apr 10 1:44:02 2001 Yamuna Krishnamurthy <yamuna@ace.cs.wustl.edu>
-
- * examples/QOS/Change_Sender_TSpec/receiver.cpp:
- * examples/QOS/Change_Sender_TSpec/receiver.dsp:
- * examples/QOS/Change_Sender_TSpec/sender.cpp:
- * examples/QOS/Change_Sender_TSpec/sender.dsp:
- * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.h:
- * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp:
- * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.h:
- * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Change_Sender_TSpec/QoS_Util.h:
- * examples/QOS/Change_Sender_TSpec/QoS_Util.cpp:
- * examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.h:
- * examples/QOS/Change_Sender_TSpec/QoS_Signal_Handler.cpp:
- * examples/QOS/Change_Sender_TSpec/FlowSpec_Dbase.h:
- * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.h:
- * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp:
- * examples/QOS/Change_Sender_TSpec/README:
- * examples/QOS/Change_Sender_TSpec/Makefile:
-
- Added a test to dynamically change the Sender flow spec in
- order to continuously change the PATH messages.
-
- * examples/QOS/Change_Receiver_FlowSpec/receiver.cpp:
- * examples/QOS/Change_Receiver_FlowSpec/receiver.dsp:
- * examples/QOS/Change_Receiver_FlowSpec/sender.cpp:
- * examples/QOS/Change_Receiver_FlowSpec/sender.dsp:
- * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.h:
- * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp:
- * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.h:
- * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Change_Receiver_FlowSpec/QoS_Util.h:
- * examples/QOS/Change_Receiver_FlowSpec/QoS_Util.cpp:
- * examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.h:
- * examples/QOS/Change_Receiver_FlowSpec/QoS_Signal_Handler.cpp:
- * examples/QOS/Change_Receiver_FlowSpec/FlowSpec_Dbase.h:
- * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.h:
- * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp:
- * examples/QOS/Change_Receiver_FlowSpec/README:
- * examples/QOS/Change_Receiver_FlowSpec/Makefile:
-
- Added a test to dynamically change the Receiver flow spec in
- order to continuously change the RESV messages.
-
- * examples/QOS/Simple/receiver.cpp:
- * examples/QOS/Simple/receiver.dsp:
- * examples/QOS/Simple/sender.cpp:
- * examples/QOS/Simple/sender.dsp:
- * examples/QOS/Simple/Sender_QoS_Event_Handler.h:
- * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp:
- * examples/QOS/Simple/Receiver_QoS_Event_Handler.h:
- * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Simple/QoS_Util.h:
- * examples/QOS/Simple/QoS_Util.cpp:
- * examples/QOS/Simple/QoS_Signal_Handler.h:
- * examples/QOS/Simple/QoS_Signal_Handler.cpp:
- * examples/QOS/Simple/FlowSpec_Dbase.h:
- * examples/QOS/Simple/Fill_ACE_QoS.h:
- * examples/QOS/Simple/Fill_ACE_QoS.cpp:
- * examples/QOS/Simple/README:
- * examples/QOS/Simple/Makefile:
-
- Moved the original QOS example to Simple.
-
- * examples/QOS/Makefile:
- * examples/QOS/QOS.dsw:
-
- Updated the Makefile to compile the constituent tests.
-
-Mon Apr 9 18:48:02 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * include/makeinclude/Makefile.rtems: Zapped
-
- export RTEMS_MAKEFILE_PATH=/opt/rtems/sparc-rtems/erc32/
-
- so that the environment variable is obtained from the users
- environment. Thanks to Joel Sherrill <joel@OARcorp.com> for
- this fix.
-
- * ace/Log_Msg.h: Only define the ACE_ASSERT macro if it's not
- already defined. This make it easy for developers to override
- this macro in their config.h file. Thanks to Nathalie D'Amours
- <nathalie@stentor.com> for motivating this change.
-
-Mon Apr 9 15:36:04 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/High_Res_Timer.cpp:
- Use the 'cpu MHz' line from /proc/cpuinfo in favor of the
- 'bogomips' line, because the latter gives the wrong number on
- multi-CPU boxes.
-
-Mon Apr 9 14:37:30 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp:
-
- Removed extraneous template instantiations.
-
-Mon Apr 09 09:19:37 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/SString.cpp:
- Fixed Fuzz error
-
-Mon Apr 9 08:28:47 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/SString.{h,i,cpp}: Added improved support for ACE_WString:
- . The magic number 32 has been changed to ACE_DEFAULT_GROWSIZE.
- . ACE_WString only allocates memory when it is needed.
- . The grow strategy can be modified by setting the ACE_GROW_LINEAR define.
- the string does not double the memory then, but increases the memory by
- ACE_DEFAULT_GROWSIZE.
- Thanks to Eric Zuur <Eric.Zuur@meco.nl> for contributing these
- enhancements.
-
- * ace/High_Res_Timer.cpp (get_cpuinfo): Added support for the Pentium
- III and IV. Thanks to Stephane Pion
- <PION_Stephane@stna.dgac.fr> for contributing this fix.
-
-Mon Apr 9 07:50:08 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/Makefile:
- Fixed a typo in the Makefile and added "CPP-inclient.h" include to
- CPP-memclient.cpp.
-
-Mon Apr 9 07:42:29 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Basic_Types.cpp:
- Changed format flags from ios::fmtflags to unsigned long.
- This typedef is not supported by all platforms. Thanks Carlos
- <coryan@uci.edu> for suggesting this change.
-
-Mon Apr 09 08:08:11 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Timer_Queue_T.h
- Declared private copy constructor and assignment operator
- for class ACE_Event_Handler_Handle_Timeout_Upcall
-
-Sun Apr 08 18:55:58 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/DLL_Test.cpp:
- Use ACE::ldname() instead of keeping a local function to
- decorate the name.
- Use the "d" suffix only on MSVC debug builds.
-
- * tests/Makefile.bor:
- * tests/DLL_Test.bor:
- New Borland Makefile for the shared library in DLL_Test. Thanks
- to Christopher Kohlhoff <chris@kohlhoff.com> for providing the
- patches.
-
- * tests/run_test.pl:
- Add ExeSubDir to the path, required in Borland builds to find
- the shared libraries created locally.
-
-Sun Apr 8 13:12:54 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/SString.cpp: Reordered various constructor initializers so
- G++ doesn't complain. Thanks to Bala for reporting this.
-
- * ace/SString.{h,i,cpp}: Added various optimizations to ACE_WString
- so it will perform certain operations as efficiently as
- ACE_CString. Thanks to Eric Zuur <Eric.Zuur@meco.nl> for
- contributing these enhancements.
-
-Sun Apr 08 12:10:30 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-memclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-memserver.cpp:
- * examples/IPC_SAP/SOCK_SAP/Makefile: Updated obsolete
- shared-memory transport functions.
-
-Sun Apr 8 09:49:26 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * bin: Added a new shell script called "make-components" that enables
- each ACE component to be built in a simple manner using the
- following change from Arturo.
-
- * ace/Makefile: Generalized the libACE.a and libACE.$(SOEXT) targets
- to simplify subsettings. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for reporting this.
-
-Sat Apr 7 16:00:48 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests: Added a new rtems_init.c file. Thanks to Joel Sherrill
- <joel@OARcorp.com> for contributing this port.
-
- * include/makeinclude: Added the new platform_rtems.x_g++.GNU file.
- * ace: Added the new config-rtems.h file.
-
- * ace/OS.cpp: Added support for RTEMS, which is an open-source
- real-time operating system that can be downloaded from
- ftp://ftp.oarcorp.com/pub/rtems. Thanks to Joel Sherrill
- <joel@OARcorp.com> for contributing this port.
-
- * ace/OS.cpp: The return type for ACE_OS::readv_emulation()
- should have been ssize_t, not int, to be consistent with its
- definition in the header file. Thanks to Joel Sherrill
- <joel@OARcorp.com> for reporting this.
-
-Sat Apr 7 21:16:49 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Add the new Crash_On_Write and MT_Timeout tests to the nightly
- builds.
-
-Fri Apr 6 21:02:05 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * examples/Synch/proc_sema.cpp:
- Add missing #include for "ace/Log_Msg.h", on platforms that
- define ACE_TEMPLATES_REQUIRE_SOURCE this include is magically
- obtained, but this is not the case for SunCC 4.2, and
- True64/CXX.
-
-Fri Apr 06 16:22:24 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/SString.h (ACE_Tokenizer): Updated documentation and added
- some examples. Thanks to Jody Hagins <jody@atdesk.com> for
- providing the original example.
-
-Fri Apr 6 17:11:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the Single_Read test to the
- nightly build list.
-
-Fri Apr 6 14:45:52 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Basic_Types.h:
- * ace/Basic_Types.cpp:
- Changed the as_string() method to avoid using floor() which
- required math.h and ACE_CString which caused unnecessary coupling.
-
-Fri Apr 6 08:34:15 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/make_pretty.pl:
- Do no give out warnings for the 'nocompatwarnings' option in
- HP-UX.
-
-Fri Apr 6 08:23:02 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Basic_Types.cpp:
- * ace/Basic_Types.h:
- * tests/Process_Strategy_Test.cpp:
- * examples/Connection/misc/Connection_Handler.cpp:
- Remove build warnings for platforms that don't support unsigned
- long long types and have unsigned char's.
-
-Fri Apr 6 02:02:01 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i: The implementation for process semaphore on platforms
- lacking named POSIX semaphores was broken. On these platforms,
- semaphores are allocated in MMAP file so they should never be
- deleted. Added a flag <new_sema_> to remember if a semaphore
- can be deleted (USYNC_THREAD) or not (USYNC_PROCESS).
-
- * ace/config-sunos5.6.h: According to the man pages, SunOS started
- supporting POSIX semaphores from 5.6. Defined ACE_HAS_POSIX_SEM
- and ACE_LACKS_NAMED_POSIX_SEM.
-
-Thu Apr 5 11:23:05 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * html/index.html:
- Add link to the new QoS library documentation.
-
-Thu Apr 05 03:26:13 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Makefile:
- * examples/Synch/Makefile:
- * examples/Synch/README:
- * examples/Synch/Synch.dsw:
- * examples/Synch/proc_sema.cpp:
- * examples/Synch/proc_sema.dsp: Added a new example to play with
- process semaphores.
-
-Thu Apr 05 02:48:51 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_IO.cpp (write): My earlier change was causing the test
- to crash.
-
- * ace/MEM_Stream.h:
- * ace/MEM_Stream.i:
- * ace/MEM_Stream.cpp: Added a new method to inform the stream to
- clean up its resources when closing down.
-
- * tests/MEM_Stream_Test.cpp (handle_close): Handle_close should
- only inform it's peer to destroy the mmap file instead of
- removing the file itself.
-
-Wed Apr 4 16:21:13 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added the ImplRepo tests.
-
-Wed Apr 4 12:13:52 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_IO.h: Declared ACE_INLINE_FOR_GNUC for
- ACE_MT_MEM_IO::Simple_Queue's constructor to eliminate a bogus
- warning reported by vxworks' gcc compiler.
-
-Wed Apr 04 07:47:48 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * etc/ace_qos.doxygen:
- * bin/generate_doxygen.pl:
- Generate doxygen documentation for ACE QoS API
-
-Tue Apr 03 19:55:26 2001 Steve Huston <shuston@riverace.com>
-
- * bin/auto_compile: Added a -make_type option - the argument to
- the option is the suffix of Makefile to use. Example:
- -make_type vac would use Makefile.vac instead of Makefile
- when building.
-
- * bin/make_pretty.pl: Corrected tests for AIX errors/warnings.
-
- * ace/ace.icp: (new) Visual Age C++ 5 project file for libACE.
-
- * ace/ace.icc: (new) Visual Age C++ 5 configuration file for
- libACE. Replaces ace-dll.icc. It will eventually have the
- stuff added to make debug/optimize as well as subsets.
-
- * ace/ace_vacpp_options.icc: Visual Age C++ file for setting ACE
- build options.
-
- * ace/Makefile.vac: Makefile to build libACE using the Visual
- Age C++ 5 incremental compiler. It only has "all" and "realclean"
- targets, and uses vacbld_r to do the build.
-
- * tests/tests.icp: Visual Age C++ 5 Project file for making all the
- tests.
-
- * tests/Makefile.vac: Makefile to drive vacbld_r for Visual Age C++.
-
- * tests/Config_Test.icc:
- * tests/Dirent_Test.icc:
- * tests/Logging_Strategy_Test.icc:
- * tests/MEM_Stream_Test.icc:
- * tests/Message_Queue_Test_Ex.icc:
- * tests/OS_Test.icc:
- New files for building tests with Visual Age C++.
-
- * tests/libDLL_Test.icc: Changed to use up-to-date source file.
-
-Tue Apr 03 13:45:02 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_IO.cpp: Fixed mismatched ACE_TRACE messages. Thanks to
- the all mighty fuzzmasterd for reporting this.
-
-Tue Apr 3 11:40:42 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * examples/IPC_SAP/SSL_SAP/dummy.pem:
- * examples/IPC_SAP/SSL_SAP/key.pem:
- The previous certificates expired. So, generated them
- again.
-
-Tue Apr 03 09:30:10 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_IO.cpp (write): Fixed a compilation error for Borland
- compiler. Thanks to Johnny Willensen for reporting this.
-
-Mon Apr 02 23:41:34 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_SAP.cpp:
- * ace/MEM_SAP.h:
- * ace/MEM_SAP.i:
- Generalized the ACE_MEM_SAP class to allocate memory in the new
- memory wrapper class ACE_MEM_SAP_Node.
-
- * ace/MEM_IO.cpp:
- * ace/MEM_IO.h:
- * ace/MEM_IO.i:
- Separated the different signaling mechanisms into a different
- class in ACE_MEM_IO so it can determine the "right" signaling
- strategy allowed. Currently, we implement the Reactive strategy
- (ACE_Reactive_MEM_IO) which uses sockets for signaling and
- multithreaded strategy (ACE_MT_MEM_IO) which uses semaphores for
- signaling.
-
- * ace/MEM_Stream.cpp:
- Sending an empty buffer over to wake up the "other" end when we
- are closing down.
-
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Acceptor.h:
- * ace/MEM_Acceptor.i:
- * ace/MEM_Connector.cpp:
- * ace/MEM_Connector.h:
- * ace/MEM_Connector.i: Added facility to specify the "preferred"
- signaling strategy so the acceptor and connector can negociate
- and agree on the best signaling mechanism to use.
-
- * ace/MEM_Stream_Test.h:
- * ace/MEM_Stream_Test.cpp:
- Added the test for the new MT signaling MEM_Stream transfer.
- This part of the test seems to be failing on system that depends
- on SysV semaphores (because we need more semaphore than the
- system can provide.)
-
-Mon Apr 2 15:17:13 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-chorus.h:
-
- Chorus 4.x supports unsigned long long's.
-
-Mon Apr 2 14:23:31 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/Makefile:
- only build QoS directory under UNIX if rapi is installed
- * ace/QoS/README:
- add installation instructions and GQOS/RAPI information
-
-Mon Apr 2 09:57:31 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/PerlACE/MSProject.pm:
-
- Made a change to the tao_idl depencency checking.
- It was only checking for tao_idl and $(InputName) where
- some places we use $(InputPath) instead.
-
- * ace/config-win32-msvc-5.h:
- * ace/config-win32-msvc-6.h:
-
- Disabled the Inheritance by Dominance informational
- warning that MSVC gives. We have cases of this all over
- the place, and normally we just disable the warning on
- a file by file basis, but now we just do a blanket disable.
-
-Mon Apr 2 08:45:24 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- Renamed the Debian_Full_WU build, its most important feature is
- not that it is at WashU nor that it enables most components. It
- is the fact that interceptors are disabled on its configuration.
-
-Sun Apr 1 17:20:22 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/INET_Addr.h:
-
- Added /**/ around for the inclusion of inetLib.h, since some
- MS compilers pick this up in dependency generation.
-
- * bin/PerlACE/MSProject.pm:
-
- Used \Q\E around the library names when matching, otherwise
- the backslashes were interpreted as escaping, and weird
- unicode errors popped up.
-
- * bin/pippen.pl:
-
- Pippen was being case sensitive, so tao.lib was different
- than TAO.lib. Changes to store only lowercase.
-
-Sat Mar 31 10:16:01 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ACE-INSTALL.html:
- Removed broken link, the web page does not exist anymore. Thanks
- to John R. Ashmun <john.ashmun@esca.com> for pointing this out.
- This fixes [BUGID:833]
-
-Fri Mar 30 14:08:18 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * performance-tests/TTCP/C/new-ttcp.cpp:
- * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp:
- Zapped the gettimeofday() method since it didn't seem to be
- used. Also, #include "ace/Log_Msg.h". Thanks to Thomas Groth
- <groth.th@nord-com.net> for reporting this.
-
- * ace/OS.h: Changed all the ACE_DEFAULT_* default ports of the
- various services to start with 200xx rather than 100xx to avoid
- conflicts on AIX, which apparently hijacks port 10002 for
- various things. Thanks to David Sperry
- <sperryd@res.raytheon.com> for reporting this.
-
-Sat Mar 31 02:06:09 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/config-win32-borland.h:
- * include/makeinclude/ace_flags.bor:
- Fixed up use of inline functions in DEBUG build.
-
- * include/makeinclude/ace_flags.bor:
- Added macros for the TAO_BiDirGIOP and TAO_TypeCodeFactory
- libraries.
-
-Fri Mar 30 11:17:39 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/fuzz.pl:
- Add a couple of TODO entries
-
- * html/index.html:
- Add the Audio/Video Streaming service to the index file.
-
-Fri Mar 30 11:12:53 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/*/Makefile:
- * apps/*/Makefile:
- * docs/*/Makefile:
- * examples/*/Makefile:
- * netsvcs/*/Makefile:
- * performance-tests/*/Makefile:
- * tests/*/Makefile:
- * websvcs/*/Makefile:
- * ASNMP/*/Makefile:
- Regenerate dependencies.
-
-Fri Mar 30 08:15:26 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/QoS/QoS_Session.h:
- Add #include for ACE_QoS_Export
-
-Fri Mar 30 07:31:54 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/QoS/QoS_Session.h:
- Fixed export macro
-
-Thu Mar 29 20:14:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/SOCK.h:
- Remove include of QoS_Session.h, since it is not used here.
-
-Thu Mar 29 19:48:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/QoS_Session.h:
- * ace/QoS/QoS_Manager.h:
- * ace/QoS/QoS_Session_Impl.h:
- * ace/QoS/QoS_Session_Factory.h:
- * examples/QOS/QoS_Signal_Handler.h:
- * examples/QOS/Receiver_QoS_Event_Handler.h:
- * examples/QOS/client.cpp:
- * examples/QOS/QoS_Util.h:
- * examples/QOS/Sender_QoS_Event_Handler.h:
- * examples/QOS/server.cpp:
- * examples/QOS/Makefile:
-
- Move QoS_Session.h to the ace/QoS directory.
-
-Thu Mar 29 19:12:38 2001 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/rules.lib.GNU: AIX-specific changes to
- build shared libraries by making a shared shr.o file and putting
- that into an archive. Seems weird, but that's the way AIX does
- things. This makes ACE consistent with other AIX software.
-
- * include/makeinclude/platform_aix4_cset++.GNU: Made some changes
- to attempt to work with the new scheme for shared lib creation on
- AIX. Did not test it, and don't plan to. The CSet++ compiler is not
- supported by IBM any longer, and Riverace is not supporting ACE
- with it. If someone out there sends patches for this, I'll put
- them in, but this file is going away after ACE 5.2 is released.
- All uses of IBM-supported compilers (IBM C/C++ and Visual Age C++
- in batch mode) should be with the platform_aix_ibm.GNU file.
-
-Thu Mar 29 16:16:07 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Token.cpp (renew): A conditional expression used an && rather
- and ||, which was causing problems with ACE_Token. Thanks to
- Carsten Madsen <com@navicon.dk> for reporting this.
-
- * ace/Message_Queue_T.cpp: If any of the various ACE_Message_Queue_Ex
- enqueue*() methods fail then make sure to release the message
- blocks! Thanks to Boris Kolpackov <bosk@ipmce.ru> for reporting
- this.
-
-Wed Mar 28 21:39:26 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/NT_Service.h:
-
- Changed the ACE_NT_SERVICE macros to use ACE_TEXT_* API
- calls for those that can take in unicode strings.
-
- * examples/NT_Service/main.cpp:
-
- Fixed use of ACE_NT_SERVICE to work with ACE_USES_WCHAR.
-
- * examples/OS/Process/process.cpp:
- * examples/Reactor/WFMO_Reactor/test_directory_changes.cpp:
-
- Changed some Win32 API calls to use ACE_TEXT_* equivalents.
-
- * ace/ace_wchar.h:
-
- Added all the ACE_TEXT_* API macros needed above.
-
- Thanks to Nick Pratt <npratt@microstrategy.com> for
- reporting the first of these errors.
-
-Wed Mar 28 22:07:03 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/tests.dsw: Fixed project dependencies between DLL_Test and
- DLL_Test_Impl. Thanks to Alain Decamps <Alain.Decamps@PIDPA.be>
- for reporting this.
-
-Wed Mar 28 20:33:28 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/ACE.cpp: Further improved the implementation of
- handle_ready() by simply calling poll() with the timeout
- pointer. Thanks to Przemyslaw Marciniak <pmarciniak@lucent.com>
- for reporting this.
-
-Wed Mar 28 17:45:22 2001 Steve Huston <shuston@riverace.com>
-
- * bin/make_pretty.pl: Adjust the error detector for IBM C/C++ 3.6.6.
-
- * ace/Containers_T.cpp: Add #include "ace/Log_Msg.h" so IBM C/C++
- can see ACE_DEBUG when compiling template instantiations.
-
-Wed Mar 28 16:40:24 2001 Luther Baker <luther@cs.wustl.edu>
-
- * ace/config-all.h
-
- Removed ACE_WIN32 support for ACE_HAS_POSIX_SEM just because
- ACE_HAS_PACE. This can be defined for ACE_WIN32 after we
- write more WIN32 emulation.
-
- * ace/OS.h
- * ace/OS.i
- * ace/OS.cpp
-
- PACE updates.
-
-Wed Mar 28 11:37:09 2001 Fuzz Master D <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- There are several instances where fuzz gives false
- positives, and the code is impossible to fix without
- creating compiler warnings. Example:
-
- void function (CORBA::Environment &ACE_TRY_ENV)
- {
- #if FOO
- some_other_function (ACE_TRY_ENV);
- ACE_CHECK;
- #else
- ACE_UNUSED_ARG (ACE_TRY_ENV);
- #endif
- }
-
- So normally ACE_UNUSED_ARG errors can be fixed by keeping
- the CORBA::ENvironment unnamed and removing the ACE_UNUSED_ARG,
- but in this case it isn't possible. So fuzz now accepts
- an ignore command for single line use. The above can be fixed
- by changing to:
-
- void function (CORBA::Environment &ACE_TRY_ENV)
- {
- #if FOO
- some_other_function (ACE_TRY_ENV);
- ACE_CHECK;
- #else
- ACE_UNUSED_ARG (ACE_TRY_ENV); // FUZZ: ignore check_for_ace_check
- #endif
- }
-
-Tue Mar 28 13:03:07 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/make_pretty.pl:
- Modification to recognize HP's future errors as warnings.
-
-Wed Mar 28 11:34:54 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * ace/CDR_Base.inl:
- Removed memset in ACE_CDR::mb_align when ACE_HAS_PURIFY ==
- 1, since it was causing some TAO unit tests to break (in
- particular, the Portable_Interceptors/Service_Context_Manipulation
- test). After running Cubit and a few other tests, Purify didn't
- notice any more uninitialized memory accesses. Fixes bug #828.
-
-Wed Mar 28 11:55:39 2001 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix_ibm.GNU: New file, replaces
- platform_aix_vacpp.GNU for Visual Age C++ 5. Also replaces
- use of platform_aix4_cset++.GNU for IBM C/C++ Compilers 3.6.6.
- So, for the supported, IBM-supplied compilers (IBM C/C++ 3.6.6
- and Visual Age C++ 5) use this file. If you want to try to keep
- using CSet++ 3.4 or earlier, you can keep using
- platform_aix4_cset++.GNU, but it's not tested any longer and
- will disappear at the next ACE version. If you want to use
- Visual Age C++ 4, you should reconsider, and upgrade to version 5.
-
- * include/makeinclude/platform_aix_vacpp.GNU: Deleted.
-
- * netsvcs/lib/TS_Clerk_Handler.h: Moved #include "ace/Connector.h"
- to be after #include "ace/SOCK_Connector.h" to fix compile error
- on AIX, Visual Age C++ 5.
-
- * ace/config-aix-4.x.h: Clarified comments that this file is for
- Visual Age C++ also. Added ACE_DLL_SUFFIX ".a" to match what
- is now generated from platform_aix_ibm.GNU.
-
- * bin/auto_compile:
- * bin/make_pretty.pl: Add detection of compile/link warnings and
- errors for AIX using the IBM compilers' code. Ignores the multiply
- defined symbol warnings from ld if it's an ACE symbol.
-
- * docs/ACE-development-process.html: Changed to link to Bugzilla so
- it works from anywhere.
-
-Wed Mar 28 10:13:16 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Makefile.bor: Don't try to build the SSL directory if
- SSL_ROOT is not set.
-
-Wed Mar 28 08:39:26 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * etc/tao_av.doxygen:
- New configuration file for the AV streaming service. Many
- thanks to Craig Rodrigues <crodrigu@bbn.com> for converting that
- directory.
-
- * bin/generate_doxygen.pl:
- Add the new configuration file.
-
-Tue Mar 27 19:54:11 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Disable POA/On_Demand_Loading and POA/Loader for Linux/KCC
- builds, because that compiler has problems with destructors
- after dynamic loading.
- Also add the new Hello test to the nightly regression tests.
-
-Tue Mar 27 19:43:39 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/platform_linux.GNU:
- Add support for Insure++
-
- * include/makeinclude/rules.local.GNU:
- Add new macro to let developers change the default destination
- for the dependencies.
-
- * include/makeinclude/wrapper_macros.GNU:
- Let the user override the default VDIR directory, and define the
- default values for the IDL generated code extensions.
-
- Thanks to Jody Hagins <jody@atdesk.com> for all these
- improvements.
-
-Tue Mar 27 19:15:36 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Unbounded_Queue.h:
- Add required #include for Chorus builds.
-
-Tue Mar 27 15:28:56 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/ACE.cpp (handle_ready): Don't try to dereference through
- a NULL timeout pointer! Thanks to Przemyslaw Marciniak
- <pmarciniak@lucent.com> for reporting this.
-
-Tue Mar 27 10:08:44 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Select_Reactor_Base.h:
- Add missing #include for builds that define
- ACE_HAS_REACTOR_NOTIFICATION_QUEUE.
-
-Tue Mar 27 05:35:38 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/make_flags.bor:
- Prevent PASCAL build by default with BCB5 since it is not
- required. Since both VCL and non-VCL applications share a common
- run-time library you can simply link your VCL code with a
- non-PASCAL build of the ACE+TAO libraries. This behaviour can be
- overridden by defining the FORCE_PASCAL flag.
-
- * include/makeinclude/build_core_exe.bor:
- * include/makeinclude/build_core_library.bor:
- * include/makeinclude/build_dll.bor:
- * include/makeinclude/build_exe.bor:
- * include/makeinclude/build_lib.bor:
- * include/makeinclude/clean.bor:
- Build all executables into a directory below the source directory.
- Core executables are then copied to the common bin directory. This
- is to allow the test scripts to assume all executables can be
- found relative to the source directory.
-
- * include/makeinclude/recurse.bor:
- Removed definition of OBJFILES since Borland make doesn't seem to
- support recursive macro expansion.
-
- * ace/config-win32-borland.h:
- * include/makeinclude/ace_flags.bor:
- Always explicitly define __ACE_INLINE__, with it defaulting to 1.
- This change will allow the same compiler flags to be used in user
- applications regardless of whether a debug or non-debug build of
- ACE is being used.
-
-Tue Mar 27 09:48:33 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * include/makeinclude/ace_flags.bor
- Corrected the smartproxies_cflags
-
- * examples/IPC_SAP
- Added new BCB makefiles for these examples
-
- * ace/Timer_Hash_T.cpp
- * ace/Timer_Hash_T.h
- * ace/Timer_Heap_T.cpp
- * ace/Timer_Heap_T.h
- * ace/Timer_List_T.cpp
- * ace/Timer_List_T.h
- * ace/Timer_Wheel_T.cpp
- * ace/Timer_Wheel_T.h
- Made the isdone method on the iterator classes constant
-
- * ace/Timer_Queue_T.h
- * ace/Timer_Queue_T.i
- Several get methods are now const
- Argument of set_timer_value and set_interval is now passed by const reference
-
- * ace/Unbounded_Set.h
- * ace/Unbounded_Set.cpp
- * tests/Collection_Test.cpp
- Added the ACE_Unbounded_Set_Const_Iterator which can be used
- to iterate over an const set
-
-Mon Mar 26 21:02:24 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Log_Msg_NT_Event_Log.cpp:
-
- Fixed a compilation problem with RegSetValueEx when
- ACE_USES_WCHAR and UNICODE were defined. Thanks to Nick
- Pratt <npratt@microstrategy.com> for reporting this.
-
- * ace/ace_dll.dsp:
-
- Unchecked the "separate types" option for debug linking.
- Thanks to Nick Pratt for this suggestion also.
-
-Mon Mar 26 13:00:37 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Node.h:
- * ace/Node.cpp:
- * ace/Array_Base.h:
- * ace/Array_Base.inl:
- * ace/Array_Base.cpp:
- * ace/Unbounded_Queue.h:
- * ace/Unbounded_Queue.inl:
- * ace/Unbounded_Queue.cpp:
- * ace/Unbounded_Set.h:
- * ace/Unbounded_Set.inl:
- * ace/Unbounded_Set.cpp:
- * ace/Containers_T.h:
- * ace/Containers_T.i:
- * ace/Containers_T.cpp:
- Move several containers to their own file. This reduces the
- amount of code that needs to be parsed, improving compilation
- time (not to mention the fact that the code becomes more
- readable.)
- For backwards compatibility the Containers file still includes
- the new smaller files.
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- Add new files to the install rules.
- Since they are templates they do not need to be compiled on MSVC
- so no changes to the project files are required.
-
- * ace/ARGV.h:
- * ace/ARGV.cpp:
- * ace/Future.h:
- * ace/Handle_Gobbler.h:
- * ace/Local_Name_Space.h:
- * ace/Malloc_Base.h:
- * ace/Memory_Pool.h:
- * ace/Name_Space.h:
- * ace/Priority_Reactor.h:
- * ace/Remote_Name_Space.h:
- * ace/Service_Config.h:
- * ace/Signal.cpp:
- * ace/Signal.h:
- * ace/Stats.h:
- * ace/Thread_Manager.h:
- * ace/Timeprobe_T.h:
- * ace/Timer_Heap_T.h:
- * ace/Timer_Queue_Adapters.h:
- * ace/TkReactor.cpp:
- To reduce compilation and recompilation times we only include
- the header file that includes the container used in each case,
- instead of the full containers class.
-
-Fri Mar 23 12:40:34 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp: Make sure
- to delete the Consumer_Dispatch_Set * that we get back from
- unbind(). Thanks to the ever vigilant Mike Winter
- <mwinter@sonic.net> for reporting this.
-
-Thu Mar 22 10:18:24 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SString.h: Make the various data members protected
- rather than private so subclasses can access them. Thanks to
- Martin Krumpolec <krumpo@pobox.sk> for this suggestion.
-
- * tests/README: Clarified some things about the tests.
- Thanks to Eric Desamore <Eric.Desamore@idtv.bull.net> for
- motivating this.
-
-Mon Mar 26 11:03:22 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.14 released.
-
-Sat Mar 24 07:02:35 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * ace/INET_Addr.i (get_host_addr): Added a const_cast to the
- VxWorks-only arm that casts away const on the this ptr so that
- inet_ntoa_b can access and fill in the buffer data member that's
- used to hold the result from inet_ntoa_b. Thanks to Erik Johannes
- <ejohannes@oresis.com> for point this out.
-
-Fri Mar 23 18:01:05 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Some of the tests cannot be run in
- Single threaded configurations. Prevented such tests from
- running in the nightly builds.
-
-Fri Mar 23 16:25:18 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/New_Fail_Test.cpp: Reverted the change from "Fri Mar 23
- 06:34:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>". The
- change fails to comipile when exceptions are on.
-
-Fri Mar 23 08:47:29 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * apps/Gateway/Gateway/Options.cpp:
- Explicitly #include Log_Msg.h, on platforms that do not define
- ACE_TEMPLATES_REQUIRE_SOURCE the header file is not implicitly
- included. This should fix compilation problems on Tru64/CXX and
- SunCC/4.2
-
-Fri Mar 23 06:34:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/New_Fail_Test.cpp: Fixed a stupid warning in g++,
- No_AMI_Messaging builds. Surprising that it showed up only in
- this build.
-
-Thu Mar 22 21:33:37 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * ace/INET_Addr.h: VxWorks' inet_ntoa doesn't behave like most
- others, and our use was causing memory leaks. VxWorks prefers
- that you use its own inet_ntoa_b, which takes the buffer to fill
- as an argument. Thus, for VxWorks, added a data member char buf
- of the appropriate length so that get_host_addr can use
- inet_ntoa_b to fill that in.
-
- * ace/INET_Addr.i (get_host_addr): For VxWorks only, changed this
- to use the preferred inet_ntoa_b. This eliminate memory leaks
- under VxWorks. Thanks to Erik Johannes <ejohannes@oresis.com> for
- the suggested fix.
-
-Wed Mar 21 19:20:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.cpp (nonblk_put): Fixed a compile error
- in g++.
-
-Wed Mar 21 17:28:26 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Message_Queue.h:
- * ace/Message_Queue_T.h: Moved definition of typedef for
- ACE_DEFAULT_MESSAGE_QUEUE_TYPE from Message_Queue.h to
- Message_Queue_T.h, just after defining ACE_Message_Queue<>.
- Fixes the case where Message_Queue_T.h is included first,
- it includes Message_Queue.h before ACE_Message_Queue<> is
- defined, and that breaks the compile. IBM C/C++ hit this.
-
-Wed Mar 21 16:42:19 2001 Steve Huston <shuston@riverace.com>
-
- * bin/auto_compile: Added an option: -notao to ignore the TAO aspects
- of the non-configurable things, like looking at the TAO/ChangeLog.
- Also, now looks for auto_run_tests.lst in the $BUILD/bin directory,
- not the $MODULE/bin directory - this allows some builds to specify
- their own lists.
-
-Wed Mar 21 16:00:56 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- The followings are contributions from Scott Snyder
- <snyder@fnal.gov> to make ACE happy on Digital UNIX with KCC
- 3.4d.
-
- * include/makeinclude/platform_tru64_kcc.GNU:
- * include/makeinclude/platform_osf1_4.0_kcc.GNU: Added KCCOPTS and
- support for tru64 unix.
-
- * ace/OS.h: On this platform, we ran into problems with sigwait
- being a macro. The fix that had been added for this was keyed
- on __DECCXX_VER, so it isn't picked up on this platform.
-
- * ace/Sock_Connect.cpp: Enum_Interface_Test failed on this
- platform. The code in Socket_Connect.cpp that implements this
- is conditional on `__unix' being defined. However, with this
- compiler, we get `unix' and `__unix__' defined, but not
- `__unix'. Fixed by testing for `__unix__' too.
-
- * ace/ACE.cpp: Cache_Conn_Test was failing. It looks like the
- code in ACE::out_of_handles doesn't have a case to handle osf1.
-
-Wed Mar 21 12:08:35 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- The followings are contributions from Scott Snyder
- <snyder@fnal.gov> to make ACE happy on IRIX 6.x with KCC 3.4d.
-
- * include/makeinclude/platform_irix6.x_kcc.GNU:
- Disable the following warings and separate common options into
- $(KCCOPTS).
-
- 280: declaration of a member with the same name as its class Get
- this from <netinet/in.h>.
-
- 608: this pragma must immediately precede a declaration or
- statement Get this from <ucontext.h>.
-
- * ace/OS.h: Changed to only request RTLD_GROUP and RTLD_NODELETE
- if they are actually available.
-
- * ace/config-irix6.x-kcc.h: Undefined
- ACE_LACKS_PLACEMENT_OPERATOR_DELETE since KCC actually supports it.
-
- Config_Test was failing because with the default setup, ace
- tries to locate the shared memory pool at 0x04000000. But it
- turns out that this is the same address at which irix likes to
- load the KCC shared library, libKCC.so. So the memory pool ends
- up blowing away all the library code. Fixed by shifting the
- default base address to 0x05000000 for this configuration.
-
- OS_Test was failing because on irix, kcc 4.0d miscompiles
- memchr_emulation if +K3 optimization is used. I worked around
- this by just using the library version of memchr instead:
-
- * ace/ACE.cpp: Cached_Conn_Test was failing because the code in
- ACE::out_of_handles doesn't have a case to handle irix.
-
- * tests/DLL_Test.cpp: It died trying to run object dtors. Fixed by
- turning off the close-on-destruction flag for this test.
-
-Wed Mar 21 13:33:58 2001 Ossama Othman <ossama@uci.edu>
-
- * examples/IPC_SAP/SSL_SAP/SSL-server-fancy.cpp:
-
- Patched this file so that the example actually works. It now
- correctly interacts with the SSL client in this example. Thanks
- to Defang Zhou <dzhou@inktomi.com> for contributing the
- patch/changes necessary to make it work.
-
-Wed Mar 21 07:23:15 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/SOCK_Connector_Test.cpp (find_another_host): Make the
- test a bit more resilent against errors with gethostbyname().
- Thanks to Lu Yunhai <luyunhai@huawei.com> for this fix.
-
-Tue Mar 20 17:31:21 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/run_test.lst:
- The Logging_Strategy_Test dynamically loads the Logger service
- (from netsvcs), therefore it does not work on static builds.
-
-Tue Mar 20 18:17:24 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.i: Fixed the USYNC_PROCESS arm of CreateMutex() in
- ACE_OS::mutex_init() so that it calls
- ACE_OS::set_errno_to_last_error(). Thanks to Ram Ben-Yakir
- <Ram@bandwiz.com> for reporting this.
-
-Tue Mar 20 01:33:24 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i (send, close):
-
- Wrap the underlying OpenSSL calls in a do-while(SSL_pending())
- loop. I decided to wrap the SSL_write() calls just in case.
- This should fix the last of the non-blocking IO issues in ACE's
- SSL wrappers. [Bug 393]
-
-Tue Mar 20 00:40:43 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv):
-
- Fixed non-blocking IO support for this method. It was necessary
- to ensure that a full SSL record was read before returning
- control to the caller. Note that the send() method doesn't need
- modification since OpenSSL always writes a full record before
- returning. [Bug 393]
-
-Mon Mar 19 19:53:34 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/ace_flags.bor:
- Define macros for the RT Event Service test library
-
-Mon Mar 19 16:57:43 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (handle_events): Return value from
- handle_events() after the Reactor has been deactivated should be
- -1. We just need to remember that as illustrated in
- ACE_Reactor::run_reactor_event_loop(), this is not an error:
-
- if (result == -1 && this->implementation_->deactivated ())
- return 0;
-
- * tests/Thread_Pool_Reactor_Test.cpp (svr_worker): Changed this
- function to call ACE_Reactor::run_reactor_event_loop() instead
- of ACE_Reactor::handle_events(). In the previous revision, we
- were not handling return values from
- ACE_Reactor::handle_events() correctly when
- ACE_Reactor::deactivated() had been called.
-
-Mon Mar 19 09:14:12 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_chorus4.x_g++.GNU:
-
- Added an output option to the link command. Linking would fail
- in cases where the output was specified in another directory.
-
-Sun Mar 18 22:12:16 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (close):
-
- Commented out debugging output that was inadvertently committed
- to the repository.
-
- Don't bother invalidating the handle. Doing so can potentially
- cause some side-effects in the underlying OpenSSL
- implementation since setting the handle in the SSL_SOCK_Stream
- also causes the OpenSSL SSL_set_fd() function to be called.
-
- Fixed a socket leak caused by the fact that the handle was
- invalidated before the underlying ACE_SOCK_Stream was closed.
-
-Sun Mar 18 09:46:47 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/New_Fail_Test.cpp: Fixed warnings in g++.
-
-Sun Mar 18 08:31:34 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * apps/Gateway/Gateway,
- * apps/Gateway/Peer: Added a number of fixes to the Gateway and Peer
- applications. Thanks to Lu Yunhai <luyunhai@huawei.com> for
- contributing these.
-
-Sun Mar 18 08:31:34 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * examples/IPC_SAP/FILE_SAP/client.cpp (main): Added a couple of
- casts so that the arguments passed to printf() will match the
- format specifier types.
-
-Sat Mar 17 18:02:28 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h: Fixed settings for exceptions and
- placement delete to be ok for Visual Age C++ 5.
-
- * include/makeinclude/platform_aix_vacpp.GNU: Basically new,
- works with the Visual Age C++ 5 batch mode build on AIX.
-
- * include/makeinclude/rules.lib.GNU: Added aix_build piece to
- the section for linking a shared library. It uses the linker
- to generate a shr.o (shared) file, then inserts that into
- the library that's being built. This new section is only
- used with platform_aix_vacpp.GNU at this point.
-
-Fri Mar 16 15:07:23 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.h (set_mode):
-
- Changed the default mode from SSLv3 to SSLv23, i.e. support
- SSLv2 and SSLv3 by default. This fixes interoperability
- with applications that use Sun's JSSE, which only supports
- SSLv2. Thanks to Max Khon <fjoe@newst.net> for providing the
- patch.
-
-Thu Mar 15 17:47:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Log_Msg_Test.cpp: Changed a ERROR message as a DEBUG
- message. If it is an error message the scripts that run the
- build gets confused.
-
-Thu Mar 15 17:42:54 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Changed the "-s" option in the
- test to write the output in to the output generated in the "log"
- directory. This is just a hack to make the scoreboard clean.
-
-Thu Mar 15 15:55:37 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Message_Queue_T.h: Add #include "ace/Message_Queue.h" so
- IBM Visual Age C++ sees ACE_Message_Queue_Base when instantiating
- templates.
-
- * ace/ace-dll.icc: Fixed after being munged in a previous commit.
- Also, corrected libACE.a generation and cleanup, and incorporated
- fixes from Steve Ige <steve.ige@reuters.com> and Jerry
- Odenwelder <jerryo@atl.fundtech.com>.
-
- * THANKS: Added Steve Ige to the Hall of Fame.
-
-Thu Mar 15 11:26:35 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Acceptor.i (ACE_SSL_SOCK_Acceptor):
-
- Make sure the handle is set for the ACE_SSL_SOCK_Acceptor, after
- initializing the underlying ACE_SOCK_Acceptor. This ensures
- that OpenSSL has the proper handle. Thanks to Greg McCain
- <greg.mccain@veritas.com> for suggesting this fix.
-
- * THANKS:
- Added Greg to the hall of the fame.
-
-Thu Mar 15 05:46:59 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/FILE_Addr.cpp (ACE_FILE_Addr): Make sure to divide the size of
- the filename_ by the sizeof (ACE_TCHAR) to handle unicode
- correctly. Thanks to the ever vigilant Ivan Murphy for catching
- this!
-
-Wed Mar 14 01:47:10 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Makefile:
- * apps/Gateway/Peer/Makefile:
- * apps/JAWS/server/Makefile:
- * apps/gperf/tests/Makefile:
- * examples/ASX/CCM_App/Makefile:
- * examples/Service_Configurator/IPC-tests/server/Makefile:
- * examples/Service_Configurator/Misc/Makefile:
- * examples/Timer_Queue/Makefile:
- * netsvcs/clients/Naming/Client/Makefile:
- * netsvcs/clients/Naming/Dump_Restore/Makefile: Removed
- unnecessary 'LIBS += $(ACELIB)'. They were causing link problem
- for the latest KCC. compiner.
-
-Tue Mar 13 20:56:10 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (remove_to_be_added_handler_i):
- * ace/WFMO_Reactor.cpp (remove_suspended_handler_i):
- * ace/WFMO_Reactor.cpp (remove_handler_i):
-
- If a user tried to (a) remove a "to be suspended handle" from
- either the current info set or the to be added set, the handle
- was correctly removed but the "to be suspended handle" count was
- not reduced; (b) remove a "to be resumed handle" from the
- suspended set, the handle was correctly removed but the "to be
- resumed handle" count was not reduced. Since the "to be resumed
- handle" and the "to be suspended handle" were not adjusted
- properly, the reactor kept waking up thinking that changes were
- required. Thanks to Lu Yunhai <luyunhai@huawei.com> for
- reporting this problem.
-
- * examples/Reactor/WFMO_Reactor/test_suspended_removals.cpp: Added
- an extensive example for regression testing the above use cases.
-
-Tue Mar 13 15:23:04 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Manager.cpp (list_services): Fixed Unicode bugs.
-
-Tue Mar 13 15:13:48 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Fixed Unicode related bugs.
-
-Tue Mar 13 10:04:06 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * performance-tests/TCP/run_test.pl:
- Fixed the path to the $ACE_ROOT/bin directory, now the script
- runs again.
-
-Tue Mar 13 06:04:03 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Service_Manager.cpp (list_services): Add an indication of whether
- a service is active or paused. Thanks to Mike Curtis for this
- improvement.
-
- * ace/Reactor.h: Clarified that the remove_handler (handle, mask)
- method also removes the event handle. Thanks to Pierre Fayolle
- <fayolle@enseirb.fr> for reporting this.
-
- * tests/Logging_Strategy_Test.cpp (get_statistic): Replace struct stat
- with ACE_stat. Thanks to Johnny Willemsen for reporting this.
-
-Tue Mar 13 00:35:35 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Select_Reactor_T.i (deactivated): Reverted this change
- regarding Select_Reactor_T::deactivated():
-
- Thu Feb 22 12:28:15 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- Though my change improved correctness of access and change to
- the <deactivated_> variable, it had a negative consequence: the
- event loop calls Select_Reactor_T::deactivated() before calling
- Select_Reactor_T::handle_events() to make sure that the reactor
- is not closed yet. Unfortunately, if
- Select_Reactor_T::deactivated() has a guard, it will send a null
- event waking up the current leader and thus lead to unnecessary
- thrashing. For now, I have removed the guard from the
- Select_Reactor_T::deactivated() methods. We should revisit this
- issue some time again. This fixes bug 816.
-
-Mon Mar 12 16:30:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp (main): Fixed the rest of the
- warnings in VxWorks builds.
-
-Mon Mar 12 16:21:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp (main): Fixed a couple of
- warnings in VxWorks build. Couple of more warnings are left.
-
-Mon Mar 12 14:16:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Local_Name_Space_T.cpp (create_manager_i): Fixed a compile
- error on Win32 Unicode platforms.
-
-Mon Mar 12 12:12:36 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE-INSTALL.html: Also mentioned Windows 2000 explicitly in the
- document. Thanks to Rahul Shukla <rshukla@ggn.aithent.com> for
- raising the question.
-
-Mon Mar 12 00:49:24 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/tests.dsw:
- * tests/Logging_Strategy_Test.dsp: Added a new dsp file.
-
-Sun Mar 11 21:00:16 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Print out the config.h and platform_macros.GNU files, this is
- useful when debugging builds.
-
-Sun Mar 11 18:41:08 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/CDR_Stream.h: Updated a comment to clarify that the buffer()
- method just returns a pointer to the first block in the chain.
- Thanks to Johnny Willemsen for pointing this out.
-
-Sun Mar 11 17:46:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Local_Name_Space_T.cpp: Fixed a compiler error on Win32
- Unicode platforms.
-
-Sun Mar 11 17:28:40 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/QoS/QoS_Session_Impl.cpp (rsvp_callback): <errflags> was unused.
-
-Sun Mar 11 08:31:05 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Makefile.bor (NAMES): Added Logging_Strategy_Test.
-
-Sun Mar 11 07:32:18 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp (order): Fixed a warning in g++
- builds.
-
-Sat Mar 10 23:15:10 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Fixed name of Crashed_Callback test
-
-Sat Mar 10 19:28:30 PST 2001 Mayur Deshpande <mayur@ics.uci.edu>
-
- * include/makeinclude/platform_qnx_rtp_gcc.GNU:
- Fixes to enable debugging on QNX without ACE crashing.
- Thanks to Andy Olson for the suggestions.
-
-Sat Mar 10 19:05:38 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-win32.h:
-
- Include config-win32-common.h even on Windows CE.
-
- * ace/config-win32-msvc-6.h:
-
- If ACE_ENDTHREADEX is already defined, don't define it.
-
- * ace/OS_Dirent.h:
-
- Changed the use of ACE_WINCE to ACE_HAS_WINCE.
-
- * ace/Service_Manager.cpp:
-
- Fixed a couple of ACE_TCHAR/ACE_LIB_TEXT problems.
-
- * ace/ace_wchar.h:
-
- On Windows CE, #include wtypes.h.
-
- * ace/ace_dll.vcp:
- * ace/ace_os_dll.vcp:
-
- Redid the output files and directories. Now intermediate
- files go into Release/PLATFORM and Debug/PLATFORM (where
- PLATFORM = MIPS/ARM/X86EM/SH3/SH4). The *.lib files go
- into ../Lib/PLATFORM and the *.dll into ../bin/PLATFORM.
- Also, the DLL's were renamed from ace_dll.dll and
- ace_os_dll.dll to ace[d].dll and ace_os[d].dll.
-
- * bin/pippen.pl:
-
- Changed the environment variables from DEFAULT_COMPILER and
- DEFAULT_CONFIGS to PIPPEN_COMPILER and PIPPEN_CONFIGS. Also
- used \Q\E for the configs because some of the Windows CE
- configs confused the script because they use parentheses.
-
-Sat Mar 10 16:59:51 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ACE-INSTALL.html:
- Remove references to the now obsolete config-linux-lxpthreads.h
- and platform_linux_lxpthread.GNU
-
-Sat Mar 10 16:38:22 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/run_test.lst:
- Running the Recursive_Mutex_Test on single-threaded builds makes
- very little sense.
-
-Sat Mar 10 16:35:19 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Add new tests: Muxing, Crashed_Callback, Client_Leaks and
- Server_Leaks to the nightly runs.
-
-Sat Mar 10 17:55:53 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude: Zapped the platform_linux_pthread.GNU,
- platform_linux_lxpthread.GNU, and platform_linux_lxpthreads.GNU
- files since they are confusing and shouldn't not be used in
- favor of platform_linux.GNU.
-
- * ace: Zapped the config-linux.pthread.h and config-linux-lxpthreads.h
- file since they are confusing and shouldn't not be used in favor
- of config-linux.h. Thanks to Craig Rodrigues for this
- suggestion.
-
-Sat Mar 10 12:39:16 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/Reactor.h:
- * ace/WFMO_Reactor.h:
- * ace/Select_Reactor_T.h:
- * ace/Reactor_Impl.h:
- Cleaned up comment for schedule_timer()
-
-Sat Mar 10 07:05:16 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests: Added Logging_Strategy_Test.cpp. Thanks to Orlando
- Ribeiro <oribeiro@inescporto.pt> for contributing this.
-
- * tests/Makefile (BIN): Added Logging_Strategy_Test.
-
- * tests/run_test.lst: Added Log_Msg_Test and
- the new Logging_Strategy_Test.
-
- * tests/Log_Msg_Test.cpp: Added ACE_TEXT macros to all the ACE_DEBUG and
- ACE_ERROR calls.
-
- * ace/Service_Manager.{h,cpp}: Refactored the request processing
- code so that it's in a single place. Also, added support to
- enable remote reconfiguration. Thanks to Mike Curtis
- <mccurry@my-deja.com> for contributing this.
-
- * ace/Logging_Strategy.cpp (parse_args): Fixed a mistaken
- re-initialization of the thread_priority_mask_ and the
- process_priority_mask_. Thanks to Martin Krumpolec
- <krumpo@pobox.sk> for reporting this.
-
- * ace/Local_Name_Space_T.cpp (create_manager_i): Fixed this code so that
- it doesn't fail if run on a directory that doesn't support locks
- (like some NFS mounts). Thanks to scott snyder
- <snyder@fnal.gov> for reporting this.
-
- * tests/SOCK_Connector_Test.cpp: Split up a loop so that the test
- doesn't hang on RedHat Linux 7.0. Thanks to Michael Searles
- <msearles@base16.com> for this fix.
-
-Fri Mar 9 22:39:28 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Svc_Conf.h:
- * ace/Service_Config.h:
- * ace/Service_Config.cpp:
- Add new method to the Service Configurator to add static
- services into the repository, this factors out common code used
- in the ORB and ACE. In general it fixes the hacks done this
- past Feb 20th
-
-Fri Mar 9 16:47:15 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * bin/nightlybuilds/builds.lst (LIST):
- Added HPUX to the scoreboard.
-
-Fri Mar 9 14:34:34 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * PACE/Makefile:
- * apps/drwho/Makefile:
- * bin/PerlACE/Process_Unix.pm:
- * include/makeinclude/platform_chorus4.x_g++.GNU:
-
- Modifications to make things build and run correctly with
- Chorus 4.0.1.
-
-Thu Mar 8 08:38:01 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- The Single_Threaded_POA test cannot run with minimum CORBA or
- (isn't this ironic) on single threaded configurations.
-
-Wed Mar 07 20:25:51 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- Add QNX to the configurations in the scoreboard.
-
-Wed Mar 7 12:41:05 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Select_Reactor_T.h,
- * ace/Reactor_Impl.h,
- * ace/WFMO_Reactor.h,
- * ace/Reactor.h: Updated the comments to be more accurate. Thanks
- to Craig Rodrigues for reporting this.
-
-Wed Mar 7 08:57:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Asynch_IO.h:
- Changed use of ACE_UNIMPLEMENTED_FUNC to just defining the
- assignment operators outright. The point here is to just
- provide any implementation, since the default one is flagged as
- causing infinite recursion.
-
- Thanks to David Levine for pointing out this incorrect usage of
- the macro.
-
- * ace/config-win32-msvc-5.h:
- * ace/config-win32-msvc-6.h:
-
- @file comments were mismatched.
-
- * ace/config-win32.h:
-
- Changed config-win32-wince.h to config-WinCE.h.
-
- * ace/ace_wchar.h:
- * ace/Log_Msg_NT_Event_Log.cpp:
-
- Changed several system calls to ACE_TEXT_* (and needed to
- add some to ace_wchar.h) since they need the ACE_TEXT
- treatment.
-
-Wed Mar 7 08:20:01 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/ARGV.cpp:
-
- Removed a warning about possible use of uninitialized variable.
-
- * bin/ace_ld:
-
- Added new functionality to filter out the harmless symbol size
- change warnings for VxWorks 5.4.
-
- * examples/Shared_Malloc/test_multiple_mallocs.cpp:
- * examples/Shared_Malloc/test_persistence.cpp:
- * examples/Shared_Malloc/test_position_independent_malloc.cpp:
-
- Renamed the typedef MALLOC to TEST_MALLOC. A MALLOC macro is
- defined by a VxWorks system header.
-
-Wed Mar 7 06:11:52 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Asynch_IO.h: Removed the unnecessary/improper ';' at the
- end of the line. Thanks to Johnny Willemsen and Chris Kohlhoff
- for reporting/fixing this.
-
- * ace/*_Connector.h: Clarified in the comments that the
- ACE_Time_Value *timeout represents the *maximum* amount of time
- to wait. If the server is not running, however, connect() can
- return much sooner. Thanks to Dipti Jain <dijain@hss.hns.com>
- for motivating this.
-
-Tue Mar 6 14:14:06 2001 Darrell Brunsch <brunsch@uci.edu>
-
- Here are some fixes for MSVC 7 beta. Note that no project files
- are checked in. Right now they will have to be generated from
- the MSVC 5/6 files (The devenv.exe will do this automatically).
- When MSVC 7 becomes released, we'll probably have to deal with
- including their files (even if only for nightly builds).
-
- * ace/OS.h:
- * ace/config-win32-msvc.h:
-
- Moved the inclusion of the crtdbg.h file to where it is being
- used. This is mainly to alleviate some excessive inclusions.
-
- * ace/config-WinCE.h:
- * ace/config-win32.h:
- * ace/config-win32-msvc-5.h: (added)
- * ace/config-win32-msvc-6.h: (added)
- * ace/config-win32-msvc-7.h: (added)
- * ace/config-win32-borland.h:
- * ace/config-win32-common.h:
- * ace/config-win32-ghs.h:
- * ace/config-win32-msvc.h:
- * ace/config-win32-visualage.h:
-
- Added a new config-win32-msvc-7.h with some new settings. While
- doing this I also rearranged the files a bit. Everything now
- goes through config-win32.h (and an error will occur if you
- include the others directly).
-
- * ace/config-hpux-10.x-hpc++.h:
- * ace/config-hpux-11.00.h:
- * ace/config-win32-msvc-5.h:
- * ace/config-win32-msvc-6.h:
- * ace/README:
-
- Removed ACE_HAS_ONE_DEFINITION_RULE. Could not find this
- actually used anywhere so I'm assuming it can be safely
- removed.
-
- * ace/Asynch_IO.h:
-
- Added some dummy assignment operators. It seems that the default
- ones produce infinite recursion (at least with MSVC 6 SP5 and
- MSVC 7 beta)
-
- * ace/Future.h:
-
- Future_Holder needs to be ACE_Export-ed.
-
-Tue Mar 6 16:58:17 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp (format_hexdump): The format_hexdump () was missing
- a space if the remaining message that needs dumping was less
- than 16 bytes. Thansk to Johnny Willemsen"
- <johnny.willemsen@meco.nl> for giving this fix.
-
-Tue Mar 6 11:25:53 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/PerlACE/Process_Unix.pm:
- Ignore SIGABRT too, because it is used by abort() and we call
- that function to test the ORB under fault conditions.
-
-Tue Mar 6 12:25:34 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * configure.in:
-
- The configure script was broken on major releases (i.e. those with
- no beta numbers). A test for an empty string should have double
- quotes around the variable.
-
-Tue Mar 6 10:16:31 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-win32-common.h:
- Removed old comment about ACE_HAS_WINSOCK2 being related to
- ACE_HAS_WINNT4. Thanks to Johnny Willemsen
- <jwillemsen@remedy.nl> for pointing this out.
-
-Tue Mar 6 10:13:03 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/RMCast/RMCast_Fragment_Test.cpp:
- * tests/RMCast/RMCast_Membership_Test.cpp:
- * tests/RMCast/RMCast_Reassembly_Test.cpp:
- * tests/RMCast/RMCast_Reordering_Test.cpp:
- * tests/RMCast/RMCast_Retransmission_Test.cpp:
- Use ACE_OS::time(0) to initialize the pseudo-random numbers
- seed. It is good enough for our purposes, and it works on
- platforms without 64-bit integer support.
-
-Mon Mar 5 13:56:33 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch_T.{h,i}: Further simplified the new ACE_Guard constructor.
- Thanks to Chris Kohlhoff <chris@kohlhoff.com> for contributing
- this.
-
-Mon Mar 5 19:20:45 2001 Fuzz Master D <brunsch@uci.edu>
-
- * bin/fuzz.pl:
- As Ossama pointed out, the ACE_CHECK test was seeing
- problems in the tao_idl files since it has uses of ACE_TRY_ENV
- inside quotes. Made sure not to detect problems in this case.
-
-Mon Mar 5 18:58:32 2001 Fuzz Master D <brunsch@uci.edu>
-
- * bin/fuzz.pl:
- Fixed some false positives in the resolve_initial_reference
- test and also added an ACE_CHECK test by Carlos's request.
-
-Mon Mar 5 18:54:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/PerlACE/Process_Unix.pm:
- Updated the signal detection to not pay attention to TERM and
- KILL. Will print out better output when signals cause a process
- to exit during most calls like Kill () or TerminateWaitKill ().
-
-Mon Mar 5 13:56:33 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch_T.{h,i}: Added a new ACE_Guard constructor that
- allows the caller to select whether the guard owns/acquires the
- lock or not. Thanks to Chris Kohlhoff <chris@kohlhoff.com> for
- contributing this.
-
- * ace/Synch_T.{h,i}: Added a disown() method that relinquishes
- ownership of the lock so that it is not released implicitly in
- the destructor. Thanks to Chris Kohlhoff <chris@kohlhoff.com>
- for contributing this.
-
- * ace/Event_Handler.h: Updated the comment on handle_close() so that
- it more accurately reflects what is going on. Thanks to Defang
- Zhou <dzhou@inktomi.com> for suggesting this.
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.{h,cpp}: Added
- handle_close() operations to solve problems with certain
- concurrency models. Thanks to Defang Zhou <dzhou@inktomi.com>
- for reporting this.
-
-Mon Mar 5 11:29:36 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * docs/ACE-categories.html:
- Fixed links to the doxygen files.
-
- * ace/Pipe.cpp:
- Fixed what looks like a typo, we want to *disable* the stream
- pipes under QNX, not to enable them just on that platform.
-
-Mon Mar 5 08:20:21 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/RMCast/RMCast_Fragment_Test.cpp:
- * tests/RMCast/RMCast_Reassembly_Test.cpp:
- Undo Doug's changes. They broke the test.
-
-Mon Mar 5 07:52:52 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Record.cpp (priority): Clarified the behavior of the
- priority() set/get methods. Thanks to Christian Schuhegger
- <Christian.Schuhegger@cern.ch> for reporting this.
-
- * tests/RMCast/RMCast_Fragment_Test.cpp,
- * tests/RMCast/RMCast_Reassembly_Test.cpp,
- * tests/Dynamic_Priority_Test.cpp,
- * tests/Thread_Pool_Test.cpp: Make sure to write into the
- wr_ptr() rather than the rd_ptr(). Thanks to Gonzalo Diethelm
- <Gonzalo.Diethelm@sonda.com> for reporting this.
-
-Mon Mar 5 08:00:23 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- Added new VxWorks 5.4 and Chorus 4.0.1 nightly builds.
-
-Mon Mar 05 00:10:15 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/fuzz.pl:
-
- Updated to detect missing ACE_TRY_ENV parameters in
- ORB::resolve_initial_references() calls when emulated exceptions
- are used. Thanks to Darrell for providing this update.
-
-Mon Mar 5 07:57:07 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * tests/Makefile.bor:
-
- Added missing Refcounted_Auto_Ptr_Test to the build
-
-Sun Mar 4 19:31:16 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added the run_test_mt.pl for Leader_Follers.
-
- * bin/PerlACE/Process_Unix.pm:
- * bin/PerlACE/Process_Win32.pm:
-
- Added a destructor to detect if a process wasn't explicitly
- killed before the object went out of scope. Will print out
- an error and kill it.
-
- * bin/PerlACE/Run_Test.pm:
-
- Turned on autoflush for all scripts.
-
- * docs/run_test.txt:
-
- Updated run_test.pl instructions to fit all the changes I
- just made.
-
- * examples/Export/run_test.pl:
- * performance-tests/RPC/run_test.pl:
- * performance-tests/TCP/run_test.pl:
- * performance-tests/UDP/run_test.pl:
-
- Updated to use PerlACE::Run_Test;
-
- * tests/Atomic_Op_Test.dsp:
- * tests/Auto_IncDec_Test.dsp:
- * tests/Barrier_Test.dsp:
- * tests/Basic_Types_Test.dsp:
- * tests/Buffer_Stream_Test.dsp:
- * tests/CDR_Array_Test.dsp:
- * tests/CDR_File_Test.dsp:
- * tests/CDR_Test.dsp:
- * tests/Cache_Map_Manager_Test.dsp:
- * tests/Cached_Accept_Conn_Test.dsp:
- * tests/Cached_Conn_Test.dsp:
- * tests/Capabilities_Test.dsp:
- * tests/Collection_Test.dsp:
- * tests/Config_Test.dsp:
- * tests/Conn_Test.dsp:
- * tests/DLL_Test.dsp:
- * tests/DLList_Test.dsp:
- * tests/Dirent_Test.dsp:
- * tests/Dynamic_Priority_Test.dsp:
- * tests/Enum_Interfaces_Test.dsp:
- * tests/Env_Value_Test.dsp:
- * tests/Future_Set_Test.dsp:
- * tests/Future_Test.dsp:
- * tests/Handle_Set_Test.dsp:
- * tests/Hash_Map_Bucket_Iterator_Test.dsp:
- * tests/Hash_Map_Manager_Test.dsp:
- * tests/High_Res_Timer_Test.dsp:
- * tests/IOStream_Test.dsp:
- * tests/Lazy_Map_Manager_Test.dsp:
- * tests/Log_Msg_Test.dsp:
- * tests/MEM_Stream_Test.dsp:
- * tests/MM_Shared_Memory_Test.dsp:
- * tests/MT_Reactor_Timer_Test.dsp:
- * tests/MT_SOCK_Test.dsp:
- * tests/Malloc_Test.dsp:
- * tests/Map_Manager_Test.dsp:
- * tests/Map_Test.dsp:
- * tests/Mem_Map_Test.dsp:
- * tests/Message_Block_Test.dsp:
- * tests/Message_Queue_Notifications_Test.dsp:
- * tests/Message_Queue_Test.dsp:
- * tests/Message_Queue_Test_Ex.dsp:
- * tests/Naming_Test.dsp:
- * tests/New_Fail_Test.dsp:
- * tests/Notify_Performance_Test.dsp:
- * tests/OS_Test.dsp:
- * tests/Object_Manager_Test.dsp:
- * tests/OrdMultiSet_Test.dsp:
- * tests/Pipe_Test.dsp:
- * tests/Priority_Buffer_Test.dsp:
- * tests/Priority_Reactor_Test.dsp:
- * tests/Priority_Task_Test.dsp:
- * tests/Process_Manager_Test.dsp:
- * tests/Process_Mutex_Test.dsp:
- * tests/Process_Strategy_Test.dsp:
- * tests/RB_Tree_Test.dsp:
- * tests/Reactor_Exceptions_Test.dsp:
- * tests/Reactor_Notify_Test.dsp:
- * tests/Reactor_Performance_Test.dsp:
- * tests/Reactor_Timer_Test.dsp:
- * tests/Reactors_Test.dsp:
- * tests/Reader_Writer_Test.dsp:
- * tests/Recursive_Mutex_Test.dsp:
- * tests/Refcounted_Auto_Ptr_Test.dsp:
- * tests/Reverse_Lock_Test.dsp:
- * tests/SOCK_Connector_Test.dsp:
- * tests/SOCK_Send_Recv_Test.dsp:
- * tests/SOCK_Test.dsp:
- * tests/SPIPE_Test.dsp:
- * tests/SString_Test.dsp:
- * tests/SV_Shared_Memory_Test.dsp:
- * tests/Semaphore_Test.dsp:
- * tests/Service_Config_Test.dsp:
- * tests/Sigset_Ops_Test.dsp:
- * tests/Simple_Message_Block_Test.dsp:
- * tests/Svc_Handler_Test.dsp:
- * tests/TSS_Test.dsp:
- * tests/Task_Test.dsp:
- * tests/Thread_Manager_Test.dsp:
- * tests/Thread_Mutex_Test.dsp:
- * tests/Thread_Pool_Reactor_Test.dsp:
- * tests/Thread_Pool_Test.dsp:
- * tests/Time_Service_Test.dsp:
- * tests/Time_Value_Test.dsp:
- * tests/Timeprobe_Test.dsp:
- * tests/Timer_Queue_Test.dsp:
- * tests/Tokens_Test.dsp:
- * tests/UPIPE_SAP_Test.dsp:
- * tests/Upgradable_RW_Test.dsp:
- * tests/version_tests/Atomic_Op_Test.dsp: (removed)
- * tests/version_tests/Auto_IncDec_Test.dsp: (removed)
- * tests/version_tests/Barrier_Test.dsp: (removed)
- * tests/version_tests/Basic_Types_Test.dsp: (removed)
- * tests/version_tests/Buffer_Stream_Test.dsp: (removed)
- * tests/version_tests/CDR_Array_Test.dsp: (removed)
- * tests/version_tests/CDR_File_Test.dsp: (removed)
- * tests/version_tests/CDR_Test.dsp: (removed)
- * tests/version_tests/Cache_Map_Manager_Test.dsp: (removed)
- * tests/version_tests/Cached_Accept_Conn_Test.dsp: (removed)
- * tests/version_tests/Cached_Conn_Test.dsp: (removed)
- * tests/version_tests/Capabilities_Test.dsp: (removed)
- * tests/version_tests/Collection_Test.dsp: (removed)
- * tests/version_tests/Config_Test.dsp: (removed)
- * tests/version_tests/Conn_Test.dsp: (removed)
- * tests/version_tests/DLL_Test.dsp: (removed)
- * tests/version_tests/DLList_Test.dsp: (removed)
- * tests/version_tests/Dirent_Test.dsp: (removed)
- * tests/version_tests/Dynamic_Priority_Test.dsp: (removed)
- * tests/version_tests/Enum_Interfaces_Test.dsp: (removed)
- * tests/version_tests/Env_Value_Test.dsp: (removed)
- * tests/version_tests/Future_Set_Test.dsp: (removed)
- * tests/version_tests/Future_Test.dsp: (removed)
- * tests/version_tests/Handle_Set_Test.dsp: (removed)
- * tests/version_tests/Hash_Map_Bucket_Iterator_Test.dsp: (removed)
- * tests/version_tests/Hash_Map_Manager_Test.dsp: (removed)
- * tests/version_tests/High_Res_Timer_Test.dsp: (removed)
- * tests/version_tests/IOStream_Test.dsp: (removed)
- * tests/version_tests/Lazy_Map_Manager_Test.dsp: (removed)
- * tests/version_tests/Log_Msg_Test.dsp: (removed)
- * tests/version_tests/MEM_Stream_Test.dsp: (removed)
- * tests/version_tests/MM_Shared_Memory_Test.dsp: (removed)
- * tests/version_tests/MT_Reactor_Timer_Test.dsp: (removed)
- * tests/version_tests/MT_SOCK_Test.dsp: (removed)
- * tests/version_tests/Malloc_Test.dsp: (removed)
- * tests/version_tests/Map_Manager_Test.dsp: (removed)
- * tests/version_tests/Map_Test.dsp: (removed)
- * tests/version_tests/Mem_Map_Test.dsp: (removed)
- * tests/version_tests/Message_Block_Test.dsp: (removed)
- * tests/version_tests/Message_Queue_Notifications_Test.dsp: (removed)
- * tests/version_tests/Message_Queue_Test.dsp: (removed)
- * tests/version_tests/Message_Queue_Test_Ex.dsp: (removed)
- * tests/version_tests/Naming_Test.dsp: (removed)
- * tests/version_tests/New_Fail_Test.dsp: (removed)
- * tests/version_tests/Notify_Performance_Test.dsp: (removed)
- * tests/version_tests/OS_Test.dsp: (removed)
- * tests/version_tests/Object_Manager_Test.dsp: (removed)
- * tests/version_tests/OrdMultiSet_Test.dsp: (removed)
- * tests/version_tests/Pipe_Test.dsp: (removed)
- * tests/version_tests/Priority_Buffer_Test.dsp: (removed)
- * tests/version_tests/Priority_Reactor_Test.dsp: (removed)
- * tests/version_tests/Priority_Task_Test.dsp: (removed)
- * tests/version_tests/Process_Manager_Test.dsp: (removed)
- * tests/version_tests/Process_Mutex_Test.dsp: (removed)
- * tests/version_tests/Process_Strategy_Test.dsp: (removed)
- * tests/version_tests/RB_Tree_Test.dsp: (removed)
- * tests/version_tests/Reactor_Exceptions_Test.dsp: (removed)
- * tests/version_tests/Reactor_Notify_Test.dsp: (removed)
- * tests/version_tests/Reactor_Performance_Test.dsp: (removed)
- * tests/version_tests/Reactor_Timer_Test.dsp: (removed)
- * tests/version_tests/Reactors_Test.dsp: (removed)
- * tests/version_tests/Reader_Writer_Test.dsp: (removed)
- * tests/version_tests/Recursive_Mutex_Test.dsp: (removed)
- * tests/version_tests/Refcounted_Auto_Ptr_Test.dsp: (removed)
- * tests/version_tests/Reverse_Lock_Test.dsp: (removed)
- * tests/version_tests/SOCK_Connector_Test.dsp: (removed)
- * tests/version_tests/SOCK_Send_Recv_Test.dsp: (removed)
- * tests/version_tests/SOCK_Test.dsp: (removed)
- * tests/version_tests/SPIPE_Test.dsp: (removed)
- * tests/version_tests/SString_Test.dsp: (removed)
- * tests/version_tests/SV_Shared_Memory_Test.dsp: (removed)
- * tests/version_tests/Semaphore_Test.dsp: (removed)
- * tests/version_tests/Service_Config_Test.dsp: (removed)
- * tests/version_tests/Sigset_Ops_Test.dsp: (removed)
- * tests/version_tests/Simple_Message_Block_Test.dsp: (removed)
- * tests/version_tests/Svc_Handler_Test.dsp: (removed)
- * tests/version_tests/TSS_Test.dsp: (removed)
- * tests/version_tests/Task_Test.dsp: (removed)
- * tests/version_tests/Thread_Manager_Test.dsp: (removed)
- * tests/version_tests/Thread_Mutex_Test.dsp: (removed)
- * tests/version_tests/Thread_Pool_Reactor_Test.dsp: (removed)
- * tests/version_tests/Thread_Pool_Test.dsp: (removed)
- * tests/version_tests/Time_Service_Test.dsp: (removed)
- * tests/version_tests/Time_Value_Test.dsp: (removed)
- * tests/version_tests/Timeprobe_Test.dsp: (removed)
- * tests/version_tests/Timer_Queue_Test.dsp: (removed)
- * tests/version_tests/Tokens_Test.dsp: (removed)
- * tests/version_tests/UPIPE_SAP_Test.dsp: (removed)
- * tests/version_tests/Upgradable_RW_Test.dsp: (removed)
- * tests/version_tests/run_all_tests.bat: (removed)
- * tests/version_tests/version_tests.dsw: (removed)
-
- Moved the version_tests back into the tests/*.dsp files. The
- reason they were originally moved is because it was easier to
- select all the debug versions during a batch build. But now we
- have pippen.pl and msvc_auto_compile.pl, so this is no longer an
- issue, while this strange setup would compilicate the nightly
- builds. Thus, it was standardized back.
-
- * bin/create_vt_dsps.pl: (removed)
-
- No need for this anymore.
-
-Sun Mar 4 19:27:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Log_Msg.cpp:
- * ace/Log_Msg_NT_Event_Log.h:
- * ace/OS.cpp:
-
- Disabled Log_Msg_NT_Event_Log on Windows CE.
-
-Sun Mar 04 13:19:35 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * etc/tao.doxygen:
- Add .txt files, so we can add web pages to the basic TAO
- documentation.
-
-Sun Mar 04 10:58:08 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Added Log_Msg_NT_Event_Log.{h,cpp} to NT
- project files.
-
-Sun Mar 4 10:41:57 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Msg.cpp,
- ace/Log_Msg.h,
- ace/Logging_Strategy.cpp,
- ace/Makefile.bor,
- ace/OS.cpp,
- ace/OS.h,
- ace/OS.i,
- ace/ace.rc: Added support for the new NT event logging capability.
- Thanks to Chris Kohlhoff <chris@kohlhoff.com> for contributing this.
-
- * ace/Log_Msg_NT_Event_Log.cpp
- ace/Log_Msg_NT_Event_Log.h
- ace/ace_message_table.bin: Added these files to support the new
- NT event logging capability.
- Thanks to Chris Kohlhoff <chris@kohlhoff.com> for contributing
- this.
-
-Sun Mar 4 04:46:44 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
-
- Added new Windows CE nightly build.
-
-Sun Mar 04 03:12:17 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/generate_export_file.pl: ACE_AS_STATIC_LIBS was incorrectly
- typed in as ACE_STATIC_LIBS.
-
- * ace/svc_export.h:
- * ace/RMCast/RMCast_Export.h:
- * ace/SSL/SSL_Export.h:
- * websvcs/lib/websvcs_export.h: These files didn't check for
- ACE_AS_STATIC_LIBS to determine if they should define their
- export macros for static build. Thanks to Chris Kohlhoff
- <chris@kohlhoff.com> for reporting this. [Bug 813]
-
-Sat Mar 3 19:07:31 2001 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * ace/QoS/QoS_Session_Impl.cpp:
- * ace/QoS/QoS_Session_Impl.i:
- * examples/QOS/Fill_ACE_QoS.cpp:
- * examples/QOS/Fill_ACE_QoS.h:
- * examples/QOS/Makefile:
- * examples/QOS/QoS_Util.cpp:
- * examples/QOS/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Sender_QoS_Event_Handler.cpp:
- Fixed various compile warnings when compiling with rapi=1 on
- Redhat Linux 6.2
-
-Sat Mar 3 16:47:53 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- Changed the detection pattern a bit to pick up
- stuff like:
-
- void
- operator < (...)
-
- better.
-
- * ace/Auto_Ptr.i:
- * ace/Base_Thread_Adapter.cpp:
- * ace/Based_Pointer_T.i:
- * ace/Connector.cpp:
- * ace/Containers_T.cpp:
- * ace/DEV_Addr.i:
- * ace/Dynamic.i:
- * ace/FILE.cpp:
- * ace/Flag_Manip.i:
- * ace/Handle_Set.i:
- * ace/Hash_Map_Manager_T.cpp:
- * ace/Lib_Find.cpp:
- * ace/Local_Name_Space_T.cpp:
- * ace/Local_Tokens.cpp:
- * ace/MEM_Addr.i:
- * ace/Malloc.cpp:
- * ace/Malloc_Allocator.cpp:
- * ace/Malloc_T.cpp:
- * ace/Memory_Pool.cpp:
- * ace/Message_Block.cpp:
- * ace/Message_Block.i:
- * ace/Message_Block_T.cpp:
- * ace/Message_Queue.i:
- * ace/Message_Queue_T.cpp:
- * ace/Message_Queue_T.i:
- * ace/Naming_Context.cpp:
- * ace/OS.cpp:
- * ace/OS.i:
- * ace/PI_Malloc.cpp:
- * ace/POSIX_Asynch_IO.cpp:
- * ace/Process_Manager.cpp:
- * ace/QtReactor.cpp:
- * ace/RB_Tree.i:
- * ace/RW_Process_Mutex.cpp:
- * ace/Reactor.cpp:
- * ace/Remote_Name_Space.cpp:
- * ace/Remote_Tokens.cpp:
- * ace/SOCK_Dgram.i:
- * ace/SString.cpp:
- * ace/SUN_Proactor.cpp:
- * ace/Select_Reactor_Base.cpp:
- * ace/Select_Reactor_T.cpp:
- * ace/Service_Object.i:
- * ace/Service_Repository.cpp:
- * ace/Signal.cpp:
- * ace/Signal.i:
- * ace/Svc_Handler.cpp:
- * ace/Synch.cpp:
- * ace/Synch_T.cpp:
- * ace/Thread_Adapter.cpp:
- * ace/Thread_Manager.cpp:
- * ace/Timer_Heap_T.cpp:
- * ace/TkReactor.cpp:
- * ace/Token.cpp:
- * ace/Token_Manager.cpp:
- * ace/CLASSIX/CLASSIX_CO_Acceptor.i:
- * ace/CLASSIX/CLASSIX_Select_Reactor.cpp:
- * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp:
- * netsvcs/ACE-netsvcs.html:
- * netsvcs/lib/Server_Logging_Handler_T.cpp:
- * netsvcs/lib/Token_Handler.cpp:
-
- Fixed bad ACE_TRACE and ACE_OS_TRACE's. (fuzz errors)
-
- * docs/ACE-categories.html:
- * docs/ACE-porting.html:
- * docs/ACE-subsets.html:
- * docs/tutorials/new-tutorials.html:
-
- Changed references to
- http://www.cs.wustl.edu/~schmidt/ACE_wrappers/* to
- relative paths instead (Fixes the last of the fuzz errors).
-
-Fri Mar 2 20:08 Angelo Corsaro <corsaro@cs.wustl.edu>
-
- * include/makeinclude/platform_qnx_rtp_gcc.GNU:
- Added macros tha expand to multiple libraries
- on QNX RTP to fix most of the link problems.
-
-Fri Mar 2 16:35:58 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/config-win32-borland.h:
-
- Added /**/ to #include <vcl.h> so it isn't picked up by
- MSVC-based dependency generators.
-
-Fri Mar 02 19:36:22 2001 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (ACE_OS::send): (only non-Win32), if call fails and
- errno is EAGAIN, change it to EWOULDBLOCK. Improve portability
- for platforms where EAGAIN and EWOULDBLOCK are different values
- and both used, like HP-UX. Thanks to Michael Grove
- <snowymike@aol.com> for reporting this problem.
-
- * ace/ACE.i (send_i): Call ACE_OS::send, not ACE_OS::write, on HP-UX.
- This makes it pick up the EAGAIN->EWOULDBLOCK change.
-
- * tests/TSS_Test.cpp: Avoid doing ACE_Thread::keyfree on where
- ACE_HAS_PTHREADS_DRAFT4 or ACE_HAS_PTHREADS_DRAFT6 (unless
- ACE_HAS_TSS_EMULATION is also defined) since ACE_Thread::keyfree
- will get ENOTSUP anyway.
-
-Fri Mar 02 17:50:40 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * ace/QtReactor.cpp:
- Thanks to Stefan Scherer <stefan_scherer@sepp.de> for reporting
- and fixing the problem - crashing of TAO/tests/QtTests/ client
- example after moving the slider.
-
-Fri Mar 02 15:35:40 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Acceptor.h:
- * ace/MEM_Addr.cpp:
- * ace/MEM_Addr.h:
- * ace/MEM_Connector.cpp:
- * ace/MEM_Connector.h:
- * ace/MEM_IO.cpp:
- * ace/MEM_IO.h:
- * ace/MEM_SAP.cpp:
- * ace/MEM_SAP.h:
- * ace/MEM_Stream.cpp:
- * ace/MEM_Stream.h: Disabled MEM_Stream support if one chooses
- not to support position independent pointers.
-
-Fri Mar 02 13:17:36 2001 Steve Huston <shuston@riverace.com>
-
- * examples/IOStream/server/iostream_server.cpp (main): Removed the
- call to register peer_acceptor with the reactor. The
- acceptor::open call already registers for ACCEPT_MASK. Prevents
- leaving a hanging READ_MASK registered after the acceptor is
- destroyed when main() returns. This fixes Bugzilla # 801. Thanks
- to Pim Philipse <pph@rogan-medical.com> for reporting this.
-
- * THANKS: Added Pim Philipse to the Hall of Fame.
-
-Fri Mar 02 12:24:27 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x-hpc++.h: If compiling without exceptions
- (+noeh) then don't set ACE_HAS_EXCEPTIONS (don't set
- ACE_NEW_THROWS_EXCEPTIONS either).
-
- * ace/Thread_Manager.cpp (join_thr): Moved the code for
- ACE_HAS_PTHREADS_DRAFT4 that does a pthread_detach from here to
- ACE_OS::thr_join (which this function calls) so that
- ACE_Thread::join also causes a pthread_detach. This is needed on
- Pthreads Draft 4 (HP-UX 10.x) to properly clean up the thread
- storage and avoid leaking memory. Thanks to Vladimir Kondratiev
- <vladimir.kondratiev@intel.com> for reporting this and providing
- excellent test cases to help resolve it quickly.
-
- * ace/OS.i (ACE_OS::thr_join): Added the code that was removed from
- ACE_Thread_Manager::join_thr, above.
-
- * ace/Event_Handler.cpp (~ACE_Event_Handler): Add an ACE_Errno_Guard
- around purge_pending_notifications to prevent against an ENOTSUP
- from purge_pending_notifications.
-
-Thu Mar 1 17:02:10 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/PerlACE/Process_Unix.pm:
- * bin/PerlACE/Process_Win32.pm:
-
- Fixed up the Spawn code to use the Executable () instead of
- {EXECUTABLE}, since that's how we get the adjusted name (with
- .exe and stuff). And also skipped the file existance with
- IgnoreExeSubDir, since IgnoreExeSubDir is often used when you
- need to find the program in the path.
-
-Thu Mar 1 15:48:10 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- Fuzz was being a bit to eager with the class matching in the
- TRACE test. It was having problems with something like:
-
- char *foo::bar ()
-
- since it thought the class was "char *foo" instead of just
- "foo".
-
- But it is feeling muuuuuuch better now.
-
-Thu Mar 1 13:18:07 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/fuzz.pl:
-
- Added two new tests:
-
- - absolute ACE_wrappers test:
-
- Check for ~schmidt/ACE_wrappers in html files. These should
- be relative links since these html files already exist in
- their own ACE_wrappers tree.
-
- - TRACE test:
-
- Does a check on whether the ACE_TRACE or ACE_OS_TRACE actually
- refers to the function/method it is in.
-
- And expanded the checks in the bad run_test test (level 6)
-
- * bin/PerlACE/Process_Unix.pm:
- * bin/PerlACE/Process_Win32.pm:
-
- - Added checks for file existence before running.
- - Added IgnoreExeSubDir option.
- - Added TerminateWaitKill method.
-
- * bin/pippen.pl: (added)
- * bin/PerlACE/MSProject.pm: (added)
- * bin/PerlACE/MSProject/DSP.pm: (added)
- * bin/PerlACE/MSProject/VCP.pm: (added)
-
- There is nothing to see here...please be on your way.
-
- It isn't like this is a super top secret project to
- replace msvc_auto_compile.pl with something that works
- better and also has a cool code-name that is shorter
- than "msvc_auto_compile.pl".
-
- But remember, you didn't hear that from me.
-
-Thu Mar 1 10:54:23 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added the TAO Codec to the list of tests to run.
-
- * include/makeinclude/wrapper_macros.GNU:
-
- Fixed all incorrect uses of CFLAGS and CCFLAGS where
- preprocessor macros were defined. Preprocessor macros should be
- defined in the CPPFLAGS variable.
-
- Define ACE_USE_RCSID in non-debug builds (i.e. debug=0).
-
-Thu Mar 01 07:29:58 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Fixed typos in the Service_Context_Manipulation test. It was
- running in platforms where it shouldn't.
-
-Thu Mar 01 07:07:03 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/recurse.bor:
- Added support for makefiles which contain multiple targets.
-
- * examples/IPC_SAP/SOCK_SAP/Makefile.bor:
- * examples/Log_Msg/Makefile.bor:
- * examples/Map_Manager/Makefile.bor:
- * examples/Mem_Map/file-reverse/Makefile.bor:
- * examples/RMCast/Send_File/Makefile.bor:
- * examples/Service_Configurator/IPC-tests/client/Makefile.bor:
- * examples/Threads/Makefile.bor:
- * netsvcs/clients/Logger/Makefile.bor:
- * tests/Makefile.bor:
- * tests/RMCast/Makefile.bor:
- Updated to work with new multi-target makefile support.
-
-Wed Feb 28 22:58:50 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * html/index.html:
- Reference */index.html directly, instead of assuming that the
- web browser will use index.html as the default file, this also
- works better when browsing locally. Thanks to Alain Decamps
- <Alain.Decamps@pidpa.be> for pointing this out.
-
-Wed Feb 28 16:41:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * docs/bugzilla-build-setup.html:
-
- Updated the section about the scoreboard and added a
- placeholder for Win32 nightly build information.
-
-Wed Feb 28 16:04:14 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (TYPE): Added a build with AMI and
- Messaging support disabled for the nightly builds.
-
-Wed Feb 28 15:35:59 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * docs/bugzilla-build-setup.html:
- Added html file outlining steps for adding a bugzilla nightly
- build.
-
-Wed Feb 28 00:25:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- The examples/POA/Adapter_Activator/run_test.pl test was being
- run twice. In fairness to all the other tests that only get to
- run once, I removed the second instance.
-
-Tue Feb 27 17:31:48 2001 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_aCC.GNU: Turn on -D_REENTRANT for
- the threads=0 build - this enables the reentrant functions which
- are present, threads or not. It does not turn on threads, which
- are instead enabled by -D_POSIX_C_SOURCE=199506L.
-
- * ace/config-hpux-11.00.h: Added ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-
- * ace/OS.i (rand_r): Added 'defined (HPUX_11)' to the ways to get to
- the POSIX.1c-conformant version of rand_r. Allows clean compile
- on HP-UX 11 without thread support. Also lined up some
- misaligned #if/else/endif lines to make it easier to find one's
- way through.
-
- * ace/OS_Dirent.inl (readdir_r): Added 'defined (HPUX_11)' to the
- ways to get the POSIX.1c-conformant version of readdir_r. Allows
- clean compile on HP-UX 11 without thread support.
-
-Tue Feb 27 11:38:38 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * performance-tests/TCP/tcp_test.cpp (main): Zapped the
- non-existent '-f' option. Thanks to Mike Curtis for reporting
- this.
-
- * performance-tests/TCP/tcp_test.cpp (main): Check for improper
- bufsz. Thanks to Mike Curtis for reporting this.
-
- * performance-tests/TCP/tcp_test.cpp (main): Documented the '-t'
- option, which specifies the number of threads.
-
- * performance-tests/TCP/README: Fixed a typo. Thanks to
- Mike Curtis for reporting this.
-
-Tue Feb 27 10:51:18 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the AMI tests to the daily
- builds.
-
-Tue Feb 27 10:23:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Makefile: Changed the ChangeLog listing in the CONTROLLED_FILES
- to ChangeLog*. This should help us to avoid missing ChangeLog
- entries in the beta distribution, just about every time we split
- and add a ChangeLog.
-
-Mon Feb 27 07:39:16 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_hpux_aCC.GNU:
-
- Removed suppression of Future Error 129.
- Removed the use of CFLAGS.
-
- * ace/OS.h:
- * ace/config-hpux-11.00.h:
- Modification to remove system header macro definition conflicts.
- This change does not suppress the conflicts, but does an undef
- of the two conflicting macros before includeing tcp.h. Thanks
- to Sam Chong <sam@i2i-inc.com> for reporting this problem.
-
-Mon Feb 26 19:01:16 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Logging_Strategy.{h,cpp}: Added a new -k option to
- set the logging key via the ACE_Logging_Strategy. Thanks to
- Chris Kohlhoff <chris@kohlhoff.com> for contributing this.
-
-Mon Feb 26 18:18:38 2001 Steve Huston <shuston@riverace.com>
-
- * ace/SString.i
- (ACE_CString::find (const char *s, int pos) const):
- (ACE_CString::find (char c, int pos) const):
- (ACE_SString::find (const char *s, int pos) const):
- (ACE_SString::find (char c, int pos) const):
- (ACE_WString::find (const ACE_WSTRING_TYPE *s, int pos) const):
- If match is found, return index from start of string, not from
- 'pos'. Matches the C++ string standard, which was the model for
- these classes. Thanks to Glen Osterhout <gosterho@elronsw.com>
- for this fix.
-
- * ace/SString.h: Clarified comments on return value for above
- functions.
-
- * tests/SString_Test.cpp: Changed to look for the correct return
- from the npos tests of the functions above.
-
- * THANKS: Added Glen Osterhout to the Hall of Fame.
-
-Mon Feb 26 15:01:55 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/DLL_Test_Impl.dsp:
- * tests/version_tests/DLL_Test_Impl.dsp: (removed)
- Me thinks that the Release and Static configurations should
- also compile, and me thinks that it is now fixed.
-
-Mon Feb 26 12:29:45 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/ARGV.h: Clarify that the int add (const ACE_TCHAR *next_arg)
- method assumes ownership of <next_arg>, rather than copying it.
- Thanks to Steve Hespelt <shespelt@bear.com> for reporting this.
- Fixes [Bug 807].
-
- The generated version_tests dsp didn't work (since DLL_Test_Impl
- creates a library). Manually created the configurations in the
- tests/DLL_Test_Impl.dsp version instead.
-
-Mon Feb 26 15:54:33 2001 Phil Mesnier <mesnier_p@ociweb.com>
-
- Port to Unixware 7 (7.1.1) Using UDK CC (7.1.1.b)
-
- * docs/tutorials/013/message_queue.cpp:
- * tests/Malloc_Test.cpp:
-
- Fixed errors in #pragma instiate lines including removal of ';',
- mispellings
-
- * ace/config-all.h:
-
- Added definition of Unixware UDK for definition of ACE_NOTREACHED()
-
- * ace/config-unixware-7.1.0.udk.h:
- * include/makeinclude/platform_unixware_udk.GNU:
-
- New configuration files for building on Unixware 7 with UDK CC.
-
-Mon Feb 26 12:29:45 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/ARGV.h: Clarify that the int add (const ACE_TCHAR *next_arg)
- method assumes ownership of <next_arg>, rather than copying it.
- Thanks to Steve Hespelt <shespelt@bear.com> for reporting this.
- Fixes [Bug 807].
-
-Mon Feb 26 12:27:46 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- Added method to reset the byte order in class OuputCDR. This
- will be used by a gateway to set the byte order of a reply to a
- reqest it has handled to one different than the gateway's own
- byte order, if necessary. It should be called while the stream
- is still empty, that is, before any part of the reply, including
- the header, has been marshaled.
-
-Mon Feb 26 12:07:00 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Memory_Pool.cpp: Moved the copying of MMAP flags up before
- setting the MAP_FIXED flag. Thanks to <rhuber@amadeus.net> for
- reporting this. [Bug 752]
-
-Mon Feb 26 09:29:36 2001 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/RB_Tree.h:
- Fully qualified enum name. This fixes problems on gcc-272 builds.
-
-Mon Feb 26 00:19:28 2001 Darrell Brunsch <brunsch@uci.edu>
-
- Time to do some spring cleaning...
-
- * tests/version_tests/Config_Test.dsp: (added)
- * tests/version_tests/DLL_Test_Impl.dsp: (added)
- * tests/version_tests/Log_Msg_Test.dsp: (added)
- * tests/version_tests/Message_Queue_Test_Ex.dsp: (added)
- * tests/version_tests/version_tests.dsw:
-
- Updated the version_tests dir with create_vt_dsps.pl.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- * netsvcs/lib/netsvcs.dsp:
- * netsvcs/servers/servers.dsp:
- * tests/ACE_Init_Test.dsp:
- * tests/Atomic_Op_Test.dsp:
- * tests/Auto_IncDec_Test.dsp:
- * tests/Barrier_Test.dsp:
- * tests/Basic_Types_Test.dsp:
- * tests/Buffer_Stream_Test.dsp:
- * tests/CDR_Array_Test.dsp:
- * tests/CDR_File_Test.dsp:
- * tests/CDR_Test.dsp:
- * tests/Cache_Map_Manager_Test.dsp:
- * tests/Cached_Accept_Conn_Test.dsp:
- * tests/Cached_Conn_Test.dsp:
- * tests/Capabilities_Test.dsp:
- * tests/Collection_Test.dsp:
- * tests/Config_Test.dsp:
- * tests/Conn_Test.dsp:
- * tests/DLL_Test.dsp:
- * tests/DLList_Test.dsp:
- * tests/Dirent_Test.dsp:
- * tests/Dynamic_Priority_Test.dsp:
- * tests/Enum_Interfaces_Test.dsp:
- * tests/Env_Value_Test.dsp:
- * tests/Future_Set_Test.dsp:
- * tests/Future_Test.dsp:
- * tests/Handle_Set_Test.dsp:
- * tests/Hash_Map_Bucket_Iterator_Test.dsp:
- * tests/Hash_Map_Manager_Test.dsp:
- * tests/High_Res_Timer_Test.dsp:
- * tests/IOStream_Test.dsp:
- * tests/Lazy_Map_Manager_Test.dsp:
- * tests/Log_Msg_Test.dsp:
- * tests/MEM_Stream_Test.dsp:
- * tests/MM_Shared_Memory_Test.dsp:
- * tests/MT_Reactor_Timer_Test.dsp:
- * tests/MT_SOCK_Test.dsp:
- * tests/Malloc_Test.dsp:
- * tests/Map_Manager_Test.dsp:
- * tests/Map_Test.dsp:
- * tests/Mem_Map_Test.dsp:
- * tests/Message_Block_Test.dsp:
- * tests/Message_Queue_Notifications_Test.dsp:
- * tests/Message_Queue_Test.dsp:
- * tests/Message_Queue_Test_Ex.dsp:
- * tests/Naming_Test.dsp:
- * tests/New_Fail_Test.dsp:
- * tests/Notify_Performance_Test.dsp:
- * tests/OS_Test.dsp:
- * tests/Object_Manager_Test.dsp:
- * tests/OrdMultiSet_Test.dsp:
- * tests/Pipe_Test.dsp:
- * tests/Priority_Buffer_Test.dsp:
- * tests/Priority_Reactor_Test.dsp:
- * tests/Priority_Task_Test.dsp:
- * tests/Process_Manager_Test.dsp:
- * tests/Process_Mutex_Test.dsp:
- * tests/Process_Strategy_Test.dsp:
- * tests/RB_Tree_Test.dsp:
- * tests/Reactor_Exceptions_Test.dsp:
- * tests/Reactor_Notify_Test.dsp:
- * tests/Reactor_Performance_Test.dsp:
- * tests/Reactor_Timer_Test.dsp:
- * tests/Reactors_Test.dsp:
- * tests/Reader_Writer_Test.dsp:
- * tests/Recursive_Mutex_Test.dsp:
- * tests/Refcounted_Auto_Ptr_Test.dsp:
- * tests/Reverse_Lock_Test.dsp:
- * tests/SOCK_Connector_Test.dsp:
- * tests/SOCK_Send_Recv_Test.dsp:
- * tests/SOCK_Test.dsp:
- * tests/SPIPE_Test.dsp:
- * tests/SString_Test.dsp:
- * tests/SV_Shared_Memory_Test.dsp:
- * tests/Semaphore_Test.dsp:
- * tests/Service_Config_Test.dsp:
- * tests/Sigset_Ops_Test.dsp:
- * tests/Simple_Message_Block_Test.dsp:
- * tests/Svc_Handler_Test.dsp:
- * tests/TSS_Test.dsp:
- * tests/Task_Test.dsp:
- * tests/Thread_Manager_Test.dsp:
- * tests/Thread_Mutex_Test.dsp:
- * tests/Thread_Pool_Reactor_Test.dsp:
- * tests/Thread_Pool_Test.dsp:
- * tests/Time_Service_Test.dsp:
- * tests/Time_Value_Test.dsp:
- * tests/Timeprobe_Test.dsp:
- * tests/Timer_Queue_Test.dsp:
- * tests/Tokens_Test.dsp:
- * tests/UPIPE_SAP_Test.dsp:
- * tests/Upgradable_RW_Test.dsp:
-
- Removed the Alpha configurations. I don't think we've actually
- looked at these for over a year, and they are missing from a lot
- of projects. Thankfully, they are easy to recreate if they are
- needed.
-
- * ACE-INSTALL.html:
-
- Changed the Windows NT Alpha section to mention that we no
- longer have configurations out of the box for Win32/Alpha, they
- must be recreated if needed.
-
- * WindozeCE/ACEApp.cpp: (removed)
- * WindozeCE/ACEApp.h: (removed)
- * WindozeCE/README: (removed)
- * WindozeCE/StdAfx.cpp: (removed)
- * WindozeCE/StdAfx.h: (removed)
- * WindozeCE/WindozeCE.aps: (removed)
- * WindozeCE/WindozeCE.clw: (removed)
- * WindozeCE/WindozeCE.cpp: (removed)
- * WindozeCE/WindozeCE.dsp: (removed)
- * WindozeCE/WindozeCE.h: (removed)
- * WindozeCE/WindozeCE.rc: (removed)
- * WindozeCE/WindozeCEDlg.cpp: (removed)
- * WindozeCE/WindozeCEDlg.h: (removed)
- * WindozeCE/resource.h: (removed)
- * WindozeCE/res/WindozeCE.ico: (removed)
- * WindozeCE/res/WindozeCE.rc2: (removed)
-
- No longer used.
-
- * Makefile:
-
- Removed WindozeCE from CONTROLLED_FILES.
-
- * tests/WinCE/Atomic_Op_Test.dsp: (removed)
- * tests/WinCE/Barrier_Test.dsp: (removed)
- * tests/WinCE/Basic_Types_Test.dsp: (removed)
- * tests/WinCE/Buffer_Stream_Test.dsp: (removed)
- * tests/WinCE/Conn_Test.dsp: (removed)
- * tests/WinCE/DLL_Test.dsp: (removed)
- * tests/WinCE/Enum_Interfaces_Test.dsp: (removed)
- * tests/WinCE/Future_Test.dsp: (removed)
- * tests/WinCE/Handle_Set_Test.dsp: (removed)
- * tests/WinCE/Hash_Map_Manager_Test.dsp: (removed)
- * tests/WinCE/MT_Reactor_Timer_Test.dsp: (removed)
- * tests/WinCE/MT_SOCK_Test.dsp: (removed)
- * tests/WinCE/Map_Manager_Test.dsp: (removed)
- * tests/WinCE/Mem_Map_Test.dsp: (removed)
- * tests/WinCE/Message_Block_Test.dsp: (removed)
- * tests/WinCE/Message_Queue_Notifications_Test.dsp: (removed)
- * tests/WinCE/Message_Queue_Test.dsp: (removed)
- * tests/WinCE/Notify_Performance_Test.dsp: (removed)
- * tests/WinCE/OrdMultiSet_Test.dsp: (removed)
- * tests/WinCE/Priority_Buffer_Test.dsp: (removed)
- * tests/WinCE/Priority_Task_Test.dsp: (removed)
- * tests/WinCE/Reactor_Exceptions_Test.dsp: (removed)
- * tests/WinCE/Reactor_Notify_Test.dsp: (removed)
- * tests/WinCE/Reactor_Performance_Test.dsp: (removed)
- * tests/WinCE/Reactor_Timer_Test.dsp: (removed)
- * tests/WinCE/Reactors_Test.dsp: (removed)
- * tests/WinCE/Reader_Writer_Test.dsp: (removed)
- * tests/WinCE/Recursive_Mutex_Test.dsp: (removed)
- * tests/WinCE/SOCK_Connector_Test.dsp: (removed)
- * tests/WinCE/SOCK_Test.dsp: (removed)
- * tests/WinCE/SString_Test.dsp: (removed)
- * tests/WinCE/Semaphore_Test.dsp: (removed)
- * tests/WinCE/Sigset_Ops_Test.dsp: (removed)
- * tests/WinCE/Simple_Message_Block_Test.dsp: (removed)
- * tests/WinCE/TSS_Test.dsp: (removed)
- * tests/WinCE/Task_Test.dsp: (removed)
- * tests/WinCE/Thread_Manager_Test.dsp: (removed)
- * tests/WinCE/Thread_Mutex_Test.dsp: (removed)
- * tests/WinCE/Thread_Pool_Test.dsp: (removed)
- * tests/WinCE/Time_Value_Test.dsp: (removed)
- * tests/WinCE/Timer_Queue_Test.dsp: (removed)
- * tests/WinCE/ce_tests.dsw: (removed)
-
- Removed these Windows CE Toolkit for Visual C++ files.
-
-Mon Feb 26 00:15:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/DLL_Test_Impl.dsp:
-
- Made sure the Code Generation settings were correct.
-
-Sun Feb 25 19:40:11 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/ACEutils.pm (CheckForConfig):
- This routine was not removing all the -Config options from the
- command-line, causing problems in some of the tests.
-
-Sun Feb 25 16:33:26 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/DLL_Test.cpp:
-
- Left the DLL end with a d in debug mode, but changed
- the test to add the d when _DEBUG and ACE_WIN32 is
- defined. Test should now work again on Win2000_Debug.
-
-Sun Feb 25 11:28:06 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/run_test.pl:
-
- When there are errors in the log, print out the entire
- log. This should make it much easier to understand
- problems in the nightly build logs.
-
-Sun Feb 25 09:04:43 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/DLL_Test.cpp:
- Accidentally left the 'd' suffix in the name of the DLL.
-
-Sat Feb 24 22:58:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
- * TAO/TAOACE.dsw:
- * TAO/TAOACE_Static.dsw:
- * Static_Performance.dsw:
-
- Removed references to gperf_lib.dsp
-
- * TAO/version_tests.dsw: (removed)
-
- This was still referring to orbsvcs.dsp, which shows that
- it is way out of date (and not used). Zapped.
-
-Sat Feb 24 20:59:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * apps/gperf/src/gperf.dsp:
- * apps/gperf/src/gperf.dsw:
- * apps/gperf/src/gperf_lib.dsp: (removed)
-
- Merged gperf into one project. This will bring the
- structure in line with the Makefiles.
-
-Sat Feb 24 19:28:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.i:
-
- Fixed my recent changes to ACE_OS::dlsym () to work on
- Windows CE.
-
-Sat Feb 24 17:50:38 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/DLL_Test.cpp:
-
- OBJ_PREFIX was being created by attaching a char string to
- a ACE_TCHAR string. Needed to add ACE_TEXT to the first
- string for compilation on ACE_USES_WCHAR.
-
- * tests/DLL_Test_Impl.dsp:
-
- Changed the internal name to "DLL_Test DLL" to make sure
- this gets compiled in the first pass by msvc_auto_compile.pl.
-
- * tests/run_test.pl:
-
- Added a check for LM_WARNINGs in log files. Let's see if
- there have been any hidden (DLL_Test actually was producing
- a warning on Windows, but Carlos's fix already got rid of it,
- Yay!).
-
-Sat Feb 24 15:44:58 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/tests.dsw:
- * tests/DLL_Test_Impl.dsp:
- Add new project file for the shared library used in the test.
-
- * tests/DLL_Test.cpp:
- * tests/DLL_Test_Impl.cpp:
- Change the Win32 version to load a shared library instead of the
- exe.
-
-Sat Feb 24 14:07:11 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/Thread_Pool_Reactor_Test.cpp:
-
- Did a careful study of what this test was doing in regards to
- sending wide-character strings, and made it consistent. The
- most troublesome aspect was the fact that the length is encoded
- in the shutdown string ("\011shutdown") which meant that I had
- to send the length in characters, not in bytes. This should
- really fix [Bug 537].
-
-Sat Feb 24 14:37:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/config-g++-common.h
- gcc 2.97 and higher require the use of the std namespace for
- iostrams
-
-Sat Feb 24 10:27:04 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Disable the interceptor tests when the ORB is compiled without
- interceptor support.
-
- * tests/run_test.lst:
- Disable the Reactor_Notify_Test on single threaded builds, it
- uses threads.
-
- * bin/nightlybuilds/scoreboard_update.pl:
- Fixed usage message.
-
-Sat Feb 24 09:45:18 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/run_test.lst:
- Disable the DLL_Test on KCC/Linux builds. The test runs
- normally, but crashes on shutdown(), it appears as if the
- run-time system is invoking the destructors after the library is
- unloaded.
-
- * tests/Makefile:
- * tests/Makefile.DLL_Test:
- * tests/DLL_Test.h:
- * tests/DLL_Test.cpp:
- * tests/DLL_Test_Impl.h:
- * tests/DLL_Test_Impl.cpp:
- Cleanup code, and truly separate the shared library code to a
- completely new separate file.
-
-Sat Feb 24 09:51:45 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Pass the -Config options to each script, this helps the
- $ACE_ROOT/bin/run_test.pl script that needs to disable some
- tests in certain configurations.
-
-Sat Feb 24 08:21:48 2001 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- added -fno-implicit-templates on Tornado II for Intel 386
- family targets. Thanks to Albert Wijnja <Albert.Wijnja@meco.nl>
- for reporting that static template data members weren't really on
- VxWorks/386, and to Greg Holtmeyer <greg.holtmeyer@windriver.com>
- for confirming that -fno-implicit-templates should work with
- the Tornado II g++. [Bug 658]
-
-Thu Feb 22 15:59:04 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: The ACE_TRACE call for ACE_OS::gmtime identified the
- function as "localtime". This is now fixed. Thanks to Mason
- Deaver <mason.deaver@tripointglobal.com> for reporting this.
-
-Fri Feb 23 19:44:36 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ACE version 5.1.13 released.
-
-Thu Feb 22 12:28:15 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (handle_events): Here is the description of
- how things were working and where the problem was: In the
- TP_Reactor there is one leader thread waiting in select() and
- the others waiting on the token. During deactivation(), the
- <deactivation_> flag is set on the reactor, signal_all_threads()
- is called on the token, and an empty notification is send to the
- current leader thread. signal_all_threads() sets the
- <signal_all_threads_> flag on the Token when there are waiters
- on the Token (does nothing if there are no waiters). This
- scheme worked fine when there were leader and follower threads
- waiting. When a new leader is chosen, it returns the magic
- number 2 from token.acquire_read() and hence exits gracefully
- from the handle_events(). However, the problem was that when
- some (or all) of the TP threads are busy running upcalls,
- signal_all_threads() was a no-op and the magic number 2 was not
- returned from token.acquire_read() and hence the exit from
- handle_events() was flagged as an error.
-
- The fix is as described below:
-
- (1) ACE_Token::signal_all_threads() does not make sense. The
- token is a mutex, not a condition variable. Therefore, it does
- not make sense to have a signal_all_threads() methods. Plus I
- believe that the method does not do as advertised. Therefore, I
- removed this method from the token class.
-
- (2) There is no need to signal all the threads in the
- TP_Reactor. Marking the Reactor as closed and signaling the
- leader thread is enough. The leader thread will wake up to
- handle the empty event, the next leader will see that the
- Reactor is closed and exit gracefully. This will continue until
- all the waiters are drained.
-
- (3) With the above change, there is no need to check for an
- magic returns from token.acquire_read(). When a thread gets the
- token, it checks the deactivation flag before proceeding. If
- the Reactor is closed, it gracefully exits. Otherwise, it
- continues as leader.
-
- (4) Since there is no need to call token.signal_all_threads(),
- ACE_TP_Reactor::wakeup_all_threads() can be removed since it is
- now the same as ACE_Select_Reactor_T::wakeup_all_threads().
-
- Note that this change should help with making
- Thread_Pool_Reactor_Test run without shutdown errors.
-
- * ace/Select_Reactor_T.i (deactivate): The setting of the
- <deactivated_> flag and waking up of all the threads should be
- atomic. I am being picky about this one but I think am I right.
- Also added the guard to the accessor.
-
-Thu Feb 22 08:51:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.i:
-
- Bleh. Changed an && to || to make sure we get a symbolname
- variable for non-Unicode Win32.
-
- "He who lives without committing any folly is not so
- wise as he thinks" - La Rochefoucauld
-
-Thu Feb 22 08:43:30 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/rules.local.GNU:
- Add SunWS_cache and ir.out to the list of files removed by
- the realclean pseudo-target. This directory is used by Sun/CC
- 5.0 (and Forte), if not removed the information there can become
- stale, and break the builds.
- This should fix the Sun/CC 5.0 nightly builds.
-
-Thu Feb 22 07:51:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS.i: Reverted the change "Thu Feb 22 03:31:06 2001
- Krishnakumar B <kitty@ace.cs.wustl.edu> ".
-
-Thu Feb 22 03:31:06 2001 Krishnakumar B <kitty@ace.cs.wustl.edu>
-
- * ace/OS.i (dlsym):
- Hopefully fixed the Win32 builds. Removed a extra ! in the
- #ifdef.
-
-Thu Feb 22 02:58:36 2001 Krishnakumar B <kitty@ace.cs.wustl.edu>
-
- * VERSION:
- * PROBLEM-REPORT-FORM:
- * ace/Version.h:
- Reverted the changes and restored the old versions of
- these files as the beta build script was killed. Pain :-(
-
-Wed Feb 21 20:10:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.i:
- * tests/DLL_Test.cpp:
- * tests/Thread_Pool_Reactor_Test.cpp:
-
- Fixed the remaining problems with the Win2000_Unicode tests.
- [Bug 537]
-
-Tue Feb 20 21:19:39 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Svc_Conf.h:
- Add ACE_Export macro for ace_create_service_type() it is used
- outside the library now.
-
-Tue Feb 20 06:34:26 2001 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_g++.GNU: Make sure to explicitly
- set ACE_HAS_GNUG_PRE_2_8. Thanks to Christian von Mueffling
- <cvm@aiss.de> for reporting this.
-
- * ace/Thread_Manager.cpp (cancel_grp): Fixed a typo in
- the ACE_TRACE macro. Thanks to Mike Curtis for reporting this.
-
-Mon Feb 19 16:38:08 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/Asynch_Acceptor.{h,cpp}:
- Added method void handle (ACE_HANDLE) and made it call the base
- class's handle(ACE_HANDLE) method to remove warning about
- partial overloading. Fix suggested by Irfan.
-
-Sun Feb 18 21:55:16 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/OS.h:
- Added an extern "C" void ace_mutex_lock_cleanup_adapter before
- the definition of ACE_PTHREAD_CLEANUP_PUSH to avoid warnings on
- SunCC 5.x.
-
-Sun Feb 18 17:16:41 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * netsvcs/clients/Tokens/manual/manual.cpp (main),
- * tests/Tokens_Test.cpp (main): Reordered the #ifdefs for the
- ACE_HAS_TOKENS_LIBRARY stuff. Thanks to Kitty for reporting
- this.
-
-Sun Feb 18 16:28:45 2001 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.h: Changed order of method declarations to (hopefully)
- dodge an internal compiler error on VxWorks.
-
-Sun Feb 18 09:59:18 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * netsvcs/clients/Tokens:
- * netsvcs/servers/main.cpp (main):
- * netsvcs/servers/svc.conf:
- * netsvcs/lib/Token_Handler: Only compile this stuff if the
- ACE_HAS_TOKENS_LIBRARY macro is enabled. Thanks to Carlos
- for reporting this.
-
- * ace/Object_Manager.cpp: Added a check for ACE_HAS_TOKENS_LIBRARY
- so we can skip initializing certain things if that macro is
- undefined.
-
- * ace/Token_Collection.*:
- * ace/Token_Invariants.*:
- * ace/Token_Manager.*:
- * ace/Local_Tokens.*:
- * ace/Remote_Tokens.*:
- * ace/Token_Request_Reply.*:
- Only compile these files if ACE_HAS_TOKENS_LIBRARY is enabled
- since this functionality does not appear to be widely used and
- yet it takes up space.
-
- * tests/Tokens_Test.cpp (main): Only run this test if
- ACE_HAS_TOKENS_LIBRARY is defined.
-
-Sat Feb 17 17:23:46 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp:
-
- Integrated a fix from Keith Nicewarner <knicewar@erg.sri.com>
- In effect, this reverts the multicast code changed on
- Fri Jan 26 11:18:15 2001 Douglas C. Schmidt ...
- for all platforms except linux.
-
-Sat Feb 17 15:52:09 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/run_all_list.pm:
- * tests/run_tests.pl:
- Remove obsolete scripts.
-
-Sat Feb 17 13:26:17 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/POSIX_Asynch_IO.cpp (thread_function): Make sure to cast
- -1 to void * since that's the signature of the method. Thanks
- to Bala for reporting this.
-
- * ace/POSIX_Asynch_IO.cpp (thread_function): Zapped the unused
- result local variable and also changed the logic to bailout if
- handle_events() returns -1. This fixes a warning reported by
- KCC.
-
-Fri Feb 16 17:39:16 2001 Mayur Deshpande <mayur@ics.uci.edu>
-
- * ace/config-qnx-rtp.h: Commented out ACE_HAS_NONSTATIC_OBJECT_MANAGER.
- Thanks to Andrew Olson <andrew.olson@lmco.com> for the suggestion.
-
- * include/makeinclude/platform_qnx_rtp_gcc.GNU: Added -fexceptions to
- CCFLAGS and 'exceptions=1' at end of file.
- Thanks to Andrew Olson <andrew.olson@lmco.com> for the suggestion.
-
-Fri Feb 16 05:37:47 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Logging_Strategy.h: Updated the documentation to explain what
- the various options mean.
-
- * tests/Log_Msg_Test.cpp (test_log_msg_features): Added
- ACE_Log_Msg::PROCESS to a couple of priority_mask() calls to
- make the test work correctly. Thanks to Kitty for reporting
- this.
-
-Thu Feb 15 17:53:31 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * ace/Thread_Manager.i: Simplified casting in
- ACE_Thread_Descriptor::get_next per suggestion from Carlos.
-
-Thu Feb 15 14:57:59 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * ace/Thread_Manager.i: Fixed typo in ACE_Thread_Descriptor::get_next.
-
-Thu Feb 15 11:33:55 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/Refcounted_Auto_Ptr_Test.cpp (main): Always call ACE_OS::exit(0)
- to make sure that this test terminates...
-
- * ace/Thread_Manager.i (get_next): Added an ACE_const_cast() to
- make certain compilers happy.
-
- * ace/Logging_Strategy.cpp: Fixed some Unicode problems on Win32.
-
-Thu Feb 15 08:49:44 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- Rename WashU builds so all the Debian builds appear together.
-
-Thu Feb 15 07:15:39 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Logging_Strategy.{h,cpp}: Added support to generate multiple
- log files, rather than just two. Thanks to Orlando Ribeiro
- <oribeiro@inescporto.pt> for this fix.
-
-Thu Feb 15 03:36:46 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB):
- Added a new build with TAO_MINIMUM linked statically.
-
-Wed Feb 14 05:28:59 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Thread_Manager.{h,i}: Added const to state(), grp_id(),
- task(), get_next(), and self(). Thanks to Johnny Willemsen
- <jwillemsen@remedy.nl> for reporting this.
-
-Tue Feb 13 17:51:47 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/Makefile.bor (TESTS): Added Dirent_Test to list of TESTS.
- Thanks to Mike Curtis for reporting this.
-
- * tests/run_tests.bat: Fixed a typo so that Dirent_Test will run.
- Thanks to Mike Curtis for reporting this.
-
-Wed Feb 14 12:08:10 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * ace/Read_Buffer.cpp: Fixed boundary condition in rec_read.
- If record was a multiple of BUFSIZ and the record was
- terminated with an EOF instead of a "term" character,
- rec_read would return 0 instead of the actual data read in.
- The problem was that the partial buffer fill size was being
- checked instead of the total number of bytes read in. This
- issue was noticed when trying to read in an IOR file in TAO
- that was exactly 512 bytes (BUFSIZ * 2 on Win2k) long.
-
-Tue Feb 13 14:44:28 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_wchar.inl: Changed several variable from type <size_t>
- to type <int> as on 64-bit whistler, size_t and int are not the
- same size which confuses 64-bit compiler. (Per Kitty's
- request.)
-
-Tue Feb 13 10:23:31 2001 Steve Huston <shuston@riverace.com>
-
- * apps/JAWS/server/IO.{h cpp}: (Side-affect necessitated by addition of
- handle () method and handle_ member to ACE_Handler). Moved the
- handle_ member to the JAWS_Synch_IO class - it needs it, and
- JAWS_Asynch_IO class has it by inheritance from ACE_Handler. Left
- the handle () methods in JAWS_IO, but made them pure virtual,
- implemented in JAWS_Synch_IO (implementation moved from JAWS_IO)
- and in JAWS_Asynch_IO, where they forward up to ACE_Handler's
- handle () methods.
-
-Mon Feb 12 18:18:05 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * tests/Thread_Mutex_Test.cpp:
- Modified test to use process mutexes for Win32 platforms
- so that timed mutexes could be tested.
-
-Sun Feb 11 15:33:39 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/QoS/ACE_QoS_Export.h:
-
- Added ACE_AS_STATIC_LIBS support.
-
- * ace/QoS/ACE_QoS.dsp:
- * ace/QoS/ACE_QoS_Lib.dsp:
-
- Fixed to comply with ACE standards.
-
-Sun Feb 11 10:50:10 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_g++.GNU (exceptions):
- Only set the -fno-exceptions option if we're *not* using GCC
- 2.7.2! Thanks to Pradeep for explaining how to do this.
-
-Sun Feb 11 10:15:08 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Makefile.bor:
- * ace/QoS/Makefile.bor:
- * include/makeinclude/ace_flags.bor:
- Added build support for QoS library with Borland compiler.
-
-Sat Feb 10 15:29:08 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Message_Block.h:
- Improved documentation for the lenth(), size() and space()
- methods.
-
-Sat Feb 10 07:19:37 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/outputdir.bor:
- Removed the now out-of-date comment about pascal/non-pascal
- build directories.
-
- * ace/config-win32-borland.h:
- Added support for new ACE_HAS_VCL define to enable inclusion
- of VCL header files.
-
-Fri Feb 9 16:47:44 2001 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * ace/Makefile.am:
- Removed references to the AQoSA files.
-
-Fri Feb 9 16:42:10 2001 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * examples/QOS/client.dsp:
- * examples/QOS/server.dsp:
- Updated the corrected project files.
- Thanks to Darrell for pointing this out.
-
-Thu Feb 8 19:25:03 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * performance-tests/RPC/run_test.pl:
- * performance-tests/TCP/run_test.pl:
- * performance-tests/UDP/run_test.pl:
- Add driver strings
-
-Thu Feb 08 19:18:36 2001 Angelo Corsaro <corsaro@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Removed comment from Exposed Policies test. The test has been fixed.
-
-Thu Feb 8 14:11:36 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ws2tcpip.h: [Removed]
-
- I don't see any reason to have this file in ace; it is a system
- header file. And from [Bug 722], our version is out of date anyway.
-
- * ace/OS.h:
-
- Changed to include system version of ws2tcpip.h
-
- * ace/Makefile.am:
- * ace/ace-dll.icc:
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- Removed references to ws2tcpip.h.
-
- * ace/SOCK_Connect.cpp:
-
- Changed get_ip_interfaces to remove a memory error. Thanks to
- Viatcheslav Batenine <slavikb@infra2000.com> for helping out with
- this.
-
- * ace/SOCK_Dgram_Mcast.cpp:
-
- It looks like the change made on:
-
- Fri Jan 26 11:18:15 2001 Douglas C. Schmidt ...
-
- doesn't work on Win32. Reverted back to the old scheme for Win32
- only.
-
-Thu Feb 8 00:34:57 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_g++.GNU: Added support for
- -fno-exception when exceptions=0 is given to the Makefile.
- Thanks to Christian v. Mueffling <cvm@aiss.de> for reporting
- this.
-
-Wed Feb 7 23:02:46 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SUN_Proactor.cpp: Fixed the cancel_aiocb() method and added a
- new overridden cancel_aio() method. Thanks to Alexander Libman
- <Alibman@baltimore.com> for contributing this.
-
-Thu Feb 8 02:09:05 2001 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * examples/QOS/Makefile:
- * examples/QOS/client.dsp:
- * examples/QOS/server.dsp:
- Modified to use the ACE_QoS lib.
- * Receiver_QoS_Event_Handler.cpp:
- * Sender_QoS_Event_Handler.cpp:
- Added missing Log_Msg.h for ACE_DEBUG.
- Other files were modified to reflect changed directory location
- of AQosA imclude files.
-
-Thu Feb 8 00:17:43 2001 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * ace/QoS_Decorator.cpp:
- * ace/QoS_Session_Factory.cpp:
- * ace/SOCK_Dgram_Mcast_QoS.cpp:
- * ace/QoS_Decorator.h:
- * ace/QoS_Session_Factory.h:
- * ace/SOCK_Dgram_Mcast_QoS.h:
- * ace/QoS_Manager.cpp:
- * ace/QoS_Session_Impl.cpp:
- * ace/SOCK_Dgram_Mcast_QoS.i:
- * ace/QoS_Manager.h:
- * ace/QoS_Session_Impl.h:
- * ace/QoS_Session_Impl.i:
- Moved the AQoSA classes to ace/QoS directory.
-
- * ace/Makefile:
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Removed the QoS related files, added QoS directory to build.
-
- * ace/Qos/Makefile
- * ace/QoS/ACE_QoS.dsw:
- * ace/QoS/ACE_QoS.dsp:
- * ace/QoS/ACE_QoS_Lib.dsp:
- * ace/QoS/ACE_QoS_Export.h:
- Added Makefile and MSVC project files.
- Thanks to Craig Rodrigues <crodrigu@bbn.com> for suggesting this
- change and providing the patch.
-
-Wed Feb 7 11:34:56 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Message_Queue_Test_Ex.cpp:
- Fix build problems for single threaded environments.
-
-Wed Feb 7 09:03:22 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * apps/Gateway/Gateway/Event_Channel.cpp (initiate_acceptors): Fixed
- incorrect if/else branching. Thanks to Lu Yunhai
- <luyunhai@huawei.com> for reporting this.
-
-Tue Feb 6 23:43:49 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.cpp (await_events): Fixed the use of
- %s to be %*s since the string may not be nul terminated! Thanks
- to Lu Yunhai <luyunhai@huawei.com> for reporting this.
-
-Tue Feb 6 20:11:28 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU:
-
- Remove double inclusion of $(CFLAGS) for Sun CC 5.0.
-
-Tue Feb 6 19:30:26 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/Malloc_T.cpp (shared_malloc):
- Added a #ifdef to remove the warnings from Digital Tru64 cxx. This
- is a temporary workaround. TODO: Change ACE_SEH_* macros so that such
- hacks are unnecessary.
-
-Tue Feb 6 19:23:16 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU:
- Complete reverting the changes made by Irfan on Sat Jan 27
- 01:06:09 2001. This file was missed in the last revert done by me.
-
-Tue Feb 06 19:03:35 2001 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: For C++ 5, make sure
- to add CFLAGS into CCFLAGS, even if no other options are added. Else
- things get built without -mt.
-
-Tue Feb 06 18:37:41 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Thread_Mutex_Test.cpp: Changed wording of the message for
- "timed acquire" not supported so as not to trip the error catcher
- in run_tests.pl.
-
-Tue Feb 06 17:55:28 2001 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/Proactor/post_completions.cpp: Allow this to
- run with AIOCB_Proactor.
-
- * ace/Asynch_IO.{h cpp}: Added ACE_Handler::handle (ACE_HANDLE)
- function to set the handle; changed ACE_HANDLE ACE_Handler::handle
- to return the actual value.
-
- * ace/Asynch_Acceptor.cpp (handle_accept): Call ACE_Handler::handle
- to set the handle value for the new handler before calling its
- open() method.
-
-Tue Feb 06 17:16:43 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp:
- * tests/MEM_Stream_Test.h: New file; moved definition of Echo_Handler
- from MEM_Stream_Test.cpp to this file to make it visible to AIX
- C++ 3.6.6 at template instantiation time.
-
-Mon Feb 5 16:19:20 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/ACE.cpp: ACE_TRACE ("ACE::basename") should be ACE_TRACE ("ACE::diname").
- Thanks to Lu Yunhai <luyunhai@huawei.com> for reporting this.
-
- * ace/Basic_Types.h: Changed the ACE_BIG_ENDIAN and ACE_LITTLE_ENDIAN
- macros to use the form 0x0123 rather than 0123X. Thanks to
- Craig Rodrigues <crodrigu@bbn.com> for helping find this
- problem.
-
-Mon Feb 5 18:20:11 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-sunos5.5.h (ACE_USES_OLD_IOSTREAMS):
-
- Reverted the change to config-sunos5.5.h and turned on
- ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION,
- ACE_TEMPLLATES_REQUIRE_SOURCE and ACE_USES_OLD_IOSTREAMS for the
- SunCC 5.0 compiler.
-
-Mon Feb 5 16:19:20 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * examples/RMCast/Send_File/Receiver.cpp (init): Replaced
- a hard-coded file permission of 0644 with
- ACE_DEFAULT_FILE_PERMS. Thanks to Chris Kohlhoff
- <chris@kohlhoff.com> for reporting this.
-
-Mon Feb 5 13:00:17 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * tests/Thread_Mutex_Test.cpp: (reported_notsup)
- Removed a warning about defined but not used.
-
-Sat Feb 3 14:41:17 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.h:
- * ace/config-win32-msvc.h:
-
- Fixed problems with LLSEEK and ACE_stat on Windows CE.
-
-Sat Feb 3 14:12:36 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/Config_Test.cpp:
- * tests/Config_Test.h:
- * tests/Log_Msg_Test.cpp:
-
- Fixed ACE_USES_WCHAR problems.
-
-Fri Feb 02 18:36:42 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-linux-common.h: Added #define ACE_POSIX_AIOCB_PROACTOR
- unless the user #defines ACE_POSIX_SIG_PROACTOR before including
- config-linux.h. (At least prior to 2.4 kernels) queueing signals
- across threads does not work - it fails silently, which breaks
- basic functionality of the async model - like asynchronously
- accepting TCP connections - and pretty much prevents multi-threaded
- work with timers and probably other async operations.
-
- * examples/Reactor/Proactor/test_proactor.cpp: Disabled the ACE_DEBUG
- calls that display message buffers - they're often too large and
- overrun the ACE_Log_Msg buffers and crash the program.
-
-Fri Feb 2 08:38:37 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (handler): Set the existing_masks variable to 0
- to avoid warnings from static analysis tools. Thanks to Ivan
- Murphy for reporting this.
-
-Thu Feb 01 22:00:17 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * tests/Message_Queue_Test_Ex.cpp
-
- Fixed the bugs which were giving runtime error on
- Win32 - removed "queue_type" from single_thread_performance_test
- and performance_test functions. Now these funtions dont
- have args.
-
- * tests/tests.dsw
-
- Just an update of the workspace.
-
-Thu Feb 1 21:00:57 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * bin/auto_compile_win32.pl:
- * bin/run_all_list.pm:
-
- Added TAO RT Mutex unit tests to auto build and test
- lists.
-
-Thu Feb 01 18:52:27 2001 Angelo Corsaro <corsaro@cs.wustl.edu>
-
- * RTJava:
- Added Directory for RTJava related research. Check the
- ChangeLog included in the newly directory for more info.
-
-Thu Feb 01 18:23:17 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * tests/Log_Msg_Test.dsp:
- * tests/Config_Test.dsp:
-
- Added these files.
- * tests/tests.dsw:
-
- Added the above two projects to the workspace.
-
-Thu Feb 1 18:01:26 2001 Luther J Baker <luther@cs.wustl.edu>
-
- * ace/OS.i (mutex_init):
-
- Removed call into PACE.
-
-Thu Feb 01 18:21:15 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Thread_Mutex_Test.cpp: Only report "operation not supported"
- once for a failed ACE_Thread_Mutex::acquire (ACE_Time_Value &).
- Also, if it reports ENOTSUP while ACE_HAS_MUTEX_TIMEOUT is
- defined, warns the user that it's probably the wrong setting.
-
-Thu Feb 01 17:36:28 2001 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/Proactor/test_proactor3.cpp: Fixed a non-constant
- array dimension and some output formatting.
-
-Thu Feb 01 17:07:35 2001 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/Proactor/post_completions.cpp: Removed extraneous
- 'd' from the 'count' display.
-
-Thu Feb 01 15:33:26 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Reactor.h (purge_pending_notifications):
- * ace/WFMO_Reactor.h (purge_pending_notifications):
- * ace/Select_Reactor_Base.h (purge_pending_notifications):
- Removed the default argument value - callers must now explicitly
- specify a 0 ACE_Event_Handler* to remove all handler notifications.
- Thanks to Edan Ayal <edana@bandwiz.com> for arguing this point.
-
-Thu Feb 1 09:57:41 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/SString.i:
-
- Changed behavior of ACE_WString::rep to be the same
- as ACE_CString::rep, that is, to return an empty
- (w)string rather than a null (w)string when the length
- is 0. Thanks to Johnny Willemsen <johnny.willemsen@meco.nl>
- for pointing out this discrepancy.
-
-Thu Feb 1 09:42:41 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_chorus4.x_g++.GNU:
-
- Modification to allow building for Chorus 4.x on x86. CPU will be
- set to x86, but CLX_TYPE will be set to i486-elf-sysv4.
-
-Thu Feb 01 10:29:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Synch.i (ACE_Null_Mutex::acquire (ACE_Time_Value&)): Removed
- the arg name to fix "unused argument" warning from g++.
-
-Wed Jan 31 22:01:00 2001 Rick Stille <stille_r@ociweb.com>
- * ace/OS.cpp(operator FILETIME): Corrected an error in the Jan 26 GHS
- revision. The term "ACE_Time_Value::FILETIME_to_timval_skew" had been
- omitted from the calculation.
-
-Wed Jan 31 18:43:26 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * tests/Message_Queue_Test_Ex.cpp (single_thread_performance_test):
- Removed the warning about queue_type using ACE_UNUSED_ARG.
-
-Wed Jan 31 17:27:35 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Acceptor.cpp (ACE_Oneshot_Acceptor::handle_input): Unregister
- the acceptor from the reactor before doing the shared_accept call
- to guard against the use-case where the acceptor is destroyed during
- the service handler activation sequence.
-
-Wed Jan 31 15:55:23 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * ace/Synch.i:
- Added ACE_Null_Mutex::acquire (ACE_Time_Value &tv)
- to fix link error.
-
-Wed Jan 31 15:12:00 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
-
- Made method do_byte_swap() public. If ACE_ENABLE_SWAP_ON_WRITE
- is defined, TAO_GIOP_Message_Base::format_message() and
- TAO_GIOP_Message_Lite::format_message() both call this method.
- Thanks to Paul Rubel <prubel@bbn.com> for reporting this bug.
-
-Wed Jan 31 12:19:51 2001 Steve Huston <shuston@riverace.com>
-
- * docs/tutorials/Chap_2/ex03.html, ex04.html: Fixed these example
- programs to 1) send the Nul terminators with the strings,
- 2) allow enough space on the recv to get it all, 3) return a
- value from main.
-
- * docs/tutorials/Chap_2/Chap_2.zip: Updated the above examples.
-
-Wed Jan 31 06:43:27 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Message_Queue_T.cpp: Make sure that dequeue_head() returns
- the number of items still on the queue. Thanks to Johnny
- Willemsen for reporting this.
-
-Tue Jan 30 21:39:15 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * tests/Log_Msg_Test.cpp: In funtion test_ostream(), removed the
- if condition to check if ACE_OS::unlink() succeeds. Also set
- the ostream to NULL before calling ACE_ERROR_RETURN(). Thanks
- to Mike Curtis <mccurry@my-deja.com> for pointing out problem
- caused when ACE_OS::unlink() fails. Thanks to Doug in helping
- fix the problem.
-
-Tue Jan 30 18:04:08 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/Message_Queue_Test_Ex.cpp (single_thread_performance_test):
- Zap the Win32 and VxWorks-specific code from this function.
- Thanks to Sharath for reporting this.
-
-Tue Jan 30 11:34:26 2001 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/Proactor/test_aiosig_ace.cpp: Fixed a bunch
- of mis-coded ACE_ERROR_RETURNs; added a explicit queued completion,
- and disabled the display of buffers that may overrun ACE_Log_Msg's
- internal buffers to prevent spurious crashes.
-
-Tue Jan 30 11:26:42 2001 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/Proactor/post_completions.cpp: Added a count
- to be sure that all expected completions are delivered, and
- print error message if not.
-
-Tue Jan 30 10:47:52 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Select_Reactor_Base.cpp
- (ACE_Select_Reactor_Notify::purge_pending_notifications):
- * ace/WFMO_Reactor.cpp
- (ACE_WFMO_Reactor_Notify::purge_pending_notifications): Changed
- to not purge notifications destined for the reactor only
- (notification buffer with 0 handler value). Thanks to Edan
- Ayal <edana@bandwiz.com> for this fix.
-
-Tue Jan 30 01:05:51 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/Message_Queue_Test_Ex.cpp (single_thread_performance_test):
- Add cases for VxWorks and NT. Thanks to Sharath for reporting
- this.
-
- * ace/OS.h: #define _SC_AIO_MAX to 1 if it's not set by default.
- Thanks to Jean-Francois Daune <Daune@IBA.be> for reporting this
- fix for VxWorks.
-
-Mon Jan 20 18:36:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Message_Queue_T.h (ACE_Message_Queue_Ex): Use _USE
- rather than _DECL to define the ACE_Message_Queue - fixes
- compile error.
-
-Mon Jan 29 17:29:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Message_Queue_T.{h i cpp}: Corrected a bunch of references
- to Message_Queue_Ex's queue_ member to use . rather than ->
- and removed the ACE_NEW to allocate it (follow-ups from Doug's
- Sun Jan 28 08:32:07 2001 change). Fixed other compile
- errors to allow tests/Message_Queue_Test_Ex.cpp to build.
- FYI... whomever added this, it probably should have been named
- Message_Queue_Ex_Test to conform.
-
-Mon Jan 29 15:30:27 2001 Steve Huston <shuston@riverace.com>
-
- * ace/POSIX_Proactor.{h cpp} (ACE_POSIX_SIG_Proactor): Don't
- mask/block all signals, just the one(s) being used for this
- sig proactor instance. Blocking everything can break other
- things, such as debuggers and the ability to kill a program.
- Also, don't setup a handler for the signals being blocked/waited
- as this is a combination whose behavior is undefined.
-
-Sun Jan 28 08:39:17 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Thread_Mutex_Test.cpp:
- Fixed use of ACE_TEXT and string concatenation.
-
-Sun Jan 28 08:03:08 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/tests.dsw:
- * tests/Message_Queue_Test_Ex.dsp:
- Add NT project files for the new test
-
-Sun Jan 28 08:32:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp: Fixed the order in which
- the iostream messages are logged so that we don't bomb out when
- the VERBOSE option is enabled. Thanks to Craig Rodrigues
- <crodrigu@bbn.com> for helping find this problem.
-
- * ace/Message_Queue_T.h: Make sure the lock() forwarding method
- forwards to queue_.lock().
-
- * ace/Message_Queue_T.{h,i,cpp}: There's no reason to dynamically
- allocate the implementation of ACE_Message_Queue_Ex -- instead
- it can be simply an instance of ACE_Message_Queue.
-
- * ace/Message_Queue_T.h: Make sure that the methods on
- ACE_Message_Queue_Ex are properly virtual. Thanks to Kitty for
- pointing this out.
-
-Sat Jan 27 19:40:36 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added TAO's Portable Interceptor "Service_Context_Manipulation"
- test to the list of tests to run.
-
-Sat Jan 27 19:34:20 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/Config_Test.{h,cpp}: Fixed the use of "bool," which is
- not supported on older compilers. Thanks to Kitty for reporting
- this.
-
-Sat Jan 27 15:22:03 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Thread_Mutex_Test.cpp (test):
-
- Added code that tests mutex timeout functionality.
-
-Sat Jan 27 15:16:33 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/POSIX_Proactor.h: Replace ACE_Thread_Mutex with ACE_SYNCH_MUTEX
- to avoid the need for conditional compilation.
-
- * ace/SUN_Proactor.h: Don't use ACE_Condition<ACE_Thread_Mutex>
- but instead use the ACE_SYNCH_CONDITION, which also avoids the
- need to conditionally compile for threaded platforms.
-
-Sat Jan 27 13:29:51 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/config-linux.h:
-
- Declare the pthread_mutex_timedlock() prototype as an
- 'extern "C"' function. This fixes an "unresolved symbol" link
- error.
-
-Sat Jan 27 10:39:28 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- Apparently the blank in 'RedHat 7.0' breaks the scoreboard.
-
-Sat Jan 27 01:06:09 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: SPRO 5.0
- compiler should be able to support automatic template
- instantiation. Also, standard C++ library should be ok. -g was
- added to DCCFLAGS.
-
- * ace/config-sunos5.5.h: Turned off
- ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION,
- ACE_TEMPLATES_REQUIRE_SOURCE and ACE_USES_OLD_IOSTREAMS for the
- SPRO 5.0 compiler.
-
- Thanks to J. Russell Noseworthy <rnosewor@objectsciences.com>
- for contributing the above patches.
-
-Sat Jan 27 00:37:26 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i:
-
- - (mutex_lock): Windows code must use relative time since that
- is what WaitForSingleObject() expects. Also, fixed extra
- "return" before ACE_NOTSUP_RETURN.
-
- - (thread_mutex_lock): Made thread_mutex_lock() with timeout
- close to the thread_mutex_lock() without timeouts.
-
-Fri Jan 26 21:53:45 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h:
- * ace/OS.i (thread_mutex_lock):
-
- Added an overloaded version of this method that accepts a
- timeout argument. It delegates to the standard
- ACE_OS::mutex_lock() method on non-Windows platforms.
- Otherwise, it returns with an ENOTSUP.
-
- The addition of this method was necessary to fix a compile
- problem related to the ACE_Thread_Mutex class.
-
- * ace/Synch.i (acquire):
-
- In ACE_Thread_Mutex::acquire() that accepts a timeout argument,
- call the corresponding ACE_OS::thread_mutex_lock() method. This
- fixes compile-time error on MS Windows builds due to the fact
- that ACE_mutex_t and ACE_thread_mutex_t are different types on
- that platform.
-
-Fri Jan 26 17:31:26 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.i (mutex_lock):
-
- Fixed unused argument warnings that occured when compiling for
- the single threaded case.
-
-Fri Jan 26 16:58:03 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/config-linux.h:
-
- glibc 2.1.x doesn't have the (very useful) __GLIBC_PREREQ
- macro. Use a preprocessor test that doesn't rely on it.
-
-Fri Jan 26 16:48:06 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/config-qnx-neutrino.h (ACE_HAS_MUTEX_TIMEOUTS):
- * ace/config-qnx-rtp.h (ACE_HAS_MUTEX_TIMEOUTS):
-
- QNX supports pthread_mutex_timedlock(). Yes!
-
-Fri Jan 26 17:50:38 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-win32-common.h:
- ace/config-vxworks-5.x.h: Added ACE_HAS_MUTEX_TIMEOUTS macro.
-
- * ace/OS.i: Added timed mutex operations for Win32, VxWorks, and
- pSoS.
-
-Fri Jan 26 16:31:15 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h (mutex_lock):
-
- Updated documentation for the version of this method that
- accepts a timeout value.
-
- * ace/OS.i (mutex_lock):
-
- If the platform does not support timed mutexes, then return with
- an ENOTSUP.
-
- * ace/Process_Mutex.h:
- * ace/Process_Mutex.inl (acquire):
-
- Added version of this method that accepts a timeout value.
-
-Fri Jan 26 17:50:38 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.cpp (report_stats):
- Fixed some unintentional tabs. Thanks to Mike Curtis for
- reporting this!
-
-Fri Jan 26 15:34:01 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h:
- * ace/OS.i (mutex_timedlock, mutex_lock):
- * ace/Synch.i (acquire):
-
- Renamed the ACE_OS::mutex_timedlock() to the overloaded
- ACE_OS::mutex_lock().
-
-Fri Jan 26 14:13:32 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h:
- * ace/OS.i (mutex_timedlock):
-
- Wrapped the pthread_mutex_timedlock() function. It times out if
- a lock hasn't been acquired by the given absolute time.
-
- * ace/Synch.h:
- * ace/Synch.i (acquire):
-
- Added versions of this method that accept an ACE_Time_Value.
- They are used to prevent blocking definitely while waiting for a
- given mutex to become available.
-
- * ace/config-linux.h (ACE_HAS_MUTEX_TIMEOUTS):
-
- glibc 2.2.x supports the pthread_mutex_timedlock() function.
-
- * ace/config-linux-common.h:
-
- Undefine ACE_LACKS_{LLSEEK,LSEEK64}_PROTOTYPE prior to include
- the KCC configuration file. Thanks to Jeff Greif
- <jgreif@befree.com> for reporting this.
-
- * ace/README:
-
- Added ACE_HAS_MUTEX_TIMEOUTS to the list of ACE macros.
-
-Fri Jan 26 11:18:15 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Log_Msg.cpp (dump): Fixed some unintentional tabs. Thanks
- to Mike Curtis for reporting this!
-
- * ace/SOCK_Dgram_Mcast.cpp (open): Modified the call to
- ACE_SOCK_Dgram::shared_open() to just pass in this->mcast_
- rather than making a local copy that just contained the port
- number. Thanks to Keith Nicewarner <knicewar@erg.sri.com> for
- reporting this.
-
- * tests/Makefile.bor (TESTS): Added Message_Queue_Test_Ex.cpp.
-
-Fri Jan 26 13:37:30 2001 Luther J Baker <luther@cs.wustl.edu>
-
- * ace/OS.h:
-
- If using PACE, ACE_stat typedefs to pace_stat_s.
-
-Fri Jan 26 11:18:15 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/Message_Queue_Test_Ex.cpp: Fixed some ASYS_* macros with
- ACE_* stuff. Thanks to Darrell for reporting this.
-
- * ace/Message_Queue_T.h,
- * ace/Message_Queue_T.i,
- * ace/Message_Queue_T.cpp:
- Added the ACE_Message_Queue_Ex, which provides a message queue
- abstraction whose type is templatized. Thanks to Michael Vitalo
- <mvitalo@sprynet.com> for contributing this.
-
- * tests/run_tests.lst:
- * tests/run_test.lst:
- * tests: Added support for the new Message_Queue_Test_Ex.cpp file.
- Thanks to Michael Vitalo <mvitalo@sprynet.com> for contributing
- this.
-
-Fri Jan 26 09:33:20 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Add TAO/tests/Object_Loader to the list
-
- * include/makeinclude/rules.lib.GNU:
- Allow both .cpp and .c files in the LSRC macro. This should
- let the PACE guys use the real name for their files, and
- generate proper dependencies.
-
-Fri Jan 26 02:16:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/OS_Test.cpp:
-
- Changed a use of struct stat to ACE_stat.
-
-Thu Jan 25 19:16:48 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/config-linux.h:
-
- Only define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS and
- ACE_LACKS_THREAD_STACK_SIZE for glibc < 2.1. glibc 2.1+ has the
- netdb reentrant functions (albeit with funky signatures), and it
- has pthread_attr_setstacksize().
-
- * ace/OS.h:
-
- Removed trailing whitespace.
-
- * ace/OS.i (getprotobyname_r, getprotobynumber_r, gethostbyaddr_r,
- gethostbyname_r, getservbyname_r):
-
- Added glibc-specific calls to these functions. This allows us
- to avoid grabbing a lock! Thanks to Ben Strong
- <bstrong@bluelark.com> for providing the patch.
-
- * THANKS:
-
- Added Ben Strong to list of contributors.
-
-Thu Jan 25 20:10:24 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.x_sgic++.GNU:
- * include/makeinclude/platform_irix5.3_sgic++.GNU:
-
- Removed -rpath "$(ACE_ROOT)/ace" from LDFLAGS.
-
- * ace/Message_Queue_T.{h,i}: Moved code from .i to .h to work
- around a compiler bug. The Sun Forte 6 (CC 5.1) compiler is
- only happy if this is in the header file.
-
- * ace/Message_Block_T.cpp: Fixed template parameter name mismatch
- between declaration and definition.
-
- Thanks to J. Russell Noseworthy <rnosewor@objectsciences.com>
- for contributing the above patches.
-
-Thu Jan 25 10:50:35 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Reactor.h: Add comments to schedule_wakeup/cancel_wakeup that
- they don't cause an immediate re-examination of the masks like
- register_handler does. Thanks to Oscar Rodriquez
- <Oscar.Rodriquez@eln.ericsson.se> for prompting this clarification.
-
- * ace/WFMO_Reactor.cpp (ACE_WFMO_Reactor_Notify::handle_signal):
- The call to ACE_Message_Queue::dequeue_head may change the
- ACE_Time_Value passed to it, so don't override ACE_Time_Value::zero's
- const-ness, lest ACE_Time_Value::zero take on some strange new value.
- Thanks to Edan Ayal <edana@bandwiz.com> for this fix.
-
-Thu Jan 25 05:34:58 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Connector.cpp (connector): Added an ACE_const_cast() to
- get rid of the const for the accessor method!
-
- * ace/Acceptor.cpp (acceptor): Added an ACE_const_cast() to
- get rid of the const for the accessor method!
-
- * ace/Log_Msg.{h,cpp},
- * ace/Trace.{h,cpp}: The Log_Msg -I flag now uses the current
- ACE_Trace nesting level rather than always using 1. Thanks to
- Mike Curtis for providing this.
-
-Wed Jan 24 19:43:24 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (lstat,stat): Separated win32 cases out.
-
-Wed Jan 24 18:15:59 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (fstat): Oops, wrong version of this function was
- modified.
-
-Wed Jan 24 14:44:12 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/FILE.cpp:
- * ace/Filecache.cpp:
- * ace/Filecache.h:
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS.cpp: Changed the signature of <stat>, <fstat>, and
- <lstat> to use ACE_stat instead of "struct stat". Also changed
- to use _fstat and _stat on win32 instead of <fstat> and <stat>
- directly. Also replaced several use of "struct stat" to
- ACE_stat. Thanks to Mike Anderson <manderson@sonusnet.com> for
- reporting this. [Bug 762]
-
-Wed Jan 24 16:13:10 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS_Dirent.cpp: Fixed a bug in the readdir_emulation() method.
- Thanks to Yung Trinh <ytrinh@email.com> for reporting this.
-
- * ace/Connector.{h,cpp}: Added a new connector() accessor to
- return the underlying ACE_PEER_CONNECTOR. Thanks to Pedro
- Brandao <pbrandao@inescn.pt> for suggesting this.
-
-Wed Jan 24 10:17:03 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile:
- Add dependencies (again). They were lost is a previous commit.
-
- * */Makefile:
- Update dependencies (yet another time).
-
-Wed Jan 24 09:41:54 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Configuration.cpp:
- Fixed warning under gcc. Also made the for() loop more
- ACE-like, not better, but at least consistent.
-
-Wed Jan 24 08:56:16 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- The changed to document the ACE_SVC_* macros were accidentally
- lost, fixed.
-
- * ace/Service_Config.cpp:
- New debug message when processing an explicit directive, useful
- to find out when and why TAO invokes
- ACE_Service_Config::process_directive() directly.
- As with all other debug messages in this file it only shows up
- if ACE::debug() returns non-zero.
-
-Wed Jan 24 01:44:47 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Configuration.cpp (expand_path): Fixed a bug with assignment to
- temp in the loop. Thanks to Jonathan Reis for reporting this!
-
-Tue Jan 23 17:02:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Removed PACE until we figure out how to handle it in the
- DLL builds.
-
-Tue Jan 23 16:50:35 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/Dirent_Test.dsp:
-
- Updated to make consistent with the rest of the dsps in
- this directory in regards to output directories and non-use
- of ACE_ROOT.
-
- * tests/Dirent_Test.cpp:
-
- Updated wide character compatibility and removed the use
- of ACE_ROOT (now looks at ../tests", which should give
- the same results).
-
- * tests/run_test.lst:
-
- Added the Dirent_Test to the list
-
- * tests/version_tests/Dirent_Test.dsp: (added)
- * tests/version_tests/Refcounted_Auto_Ptr_Test.dsp: (added)
- * tests/version_tests/version_tests.dsw:
-
- Used the create_vt_dsps.pl script to update this directory.
-
-Tue Jan 23 18:03:26 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp:
-
- Added patches to read_8 and write_8 sent in by
- Keith Nicewarner <knicewar@erg.sri.com> to deal
- with the ARM byte format for doubles
-
-Tue Jan 23 15:06:18 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Configuration.cpp:
- * ace/OS_Dirent.cpp:
-
- Updated wide character compatibility.
-
- * ace/ace_dll.dsp:
-
- Removed unneeded verbose library option.
-
-Tue Jan 23 10:54:14 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/config-doxygen.h:
- * bin/autoconf_compile:
-
- Removed all occurrences of 'smart_proxies' and 'interface_repo'.
- These are no longer necessary.
-
- * include/makeinclude/ace_flags.bor:
-
- Added necessary variables to go along with the Borland
- makefiles for the new libraries tao/Domain and
- tao/IFR_Client.
-
-Mon Jan 22 17:01:17 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS_String.cpp:
- * ace/OS_String.inl:
- * ace/ace_wchar.inl:
- * ace/config-qnx-rtp.h:
-
- ACE_HAS_WCHAR fixes. Support is really bad on QNX RTP
- so we just end up emulating most everything. As far as
- I could tell, there isn't even a way to convert between
- the two types of strings.
-
- * ace/OS_Dirent.cpp:
-
- Rewrote a paragraph to remove the use of "/*" in a larger
- /*...*/ comment, since gcc complains about it.
-
- * tests/Message_Queue_Test.cpp:
-
- Backed out some changes to it on Jan 21, since it had
- problems and I couldn't find any ChangeLog entry for the
- changes (mistakenly checked in?).
-
-Mon Jan 22 13:51:11 2001 Phil Mesnier <mesnier_p@ociweb.com>
-
- * ace/OS_Dirent.cpp (opendir_emulation): Added code to make the
- emmulation work properly on Win32. Thanks to Edwin Wrench
- <edwin.wrench@itt.com> for finding this.
-
- * tests/Dirent_Test.cpp:
- tests/Makefile:
- tests/run_tests.bat:
- tests/run_tests.lst: Added test to verify correctness of above
- fix. This test attempts to scan $ACE_ROOT/tests and will fail if
- the number of entries is 0 or 1.
-
-Mon Jan 22 10:21:20 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Map_Manager.h: Clarify that find() returns 0, rather than
- saying "a non-negative number". Thanks to Albert Wijna
- <albert.wijnja@meco.nl> for clarifying this.
-
-Mon Jan 22 15:38:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Containers_T.h:
- ace/Containers_T.cpp:
- Added operator* to the ACE_Ordered_Multiset_Iterator class
-
- * tests/Ordmultiset_test.cpp
- Expanded test for the new operator* of the ACE_Ordered_Multiset_
- Iterator class
-
-Sat Jan 20 14:53:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Configuration.{h,cpp}: Fixed some problems with const char *
- that was busting the compilation. Thanks to Carlos for pointing
- this out.
-
- * ace/Configuration.{h,cpp}: Added several fixes for
- mistakes with memory management and other minor problems.
- Thanks to Jonathan Reis <reis@stentorsoft.com> for contributing
- these fixes!
-
-Sat Jan 20 10:49:05 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * docs/ACE-guidelines.html:
- Update the guidelines to point people to the Doxygen
- documentation, instead of the now abandoned OSE tools.
-
-Sat Jan 20 10:21:08 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.cpp:
- Another pass fixing problems with ACE_BEGINTHREADEX() under
- Win32, this time Win32 is working fine.
-
-Sat Jan 20 10:20:50 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * doc/tutorials: Integrated the new Service Configurator tutorial
- into the main tutorials page.
-
-Fri Jan 19 16:57:43 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Svc_Handler.h: Updated the comments to explain why
- operator new is overloaded. Thanks to Kirill Kuolechov
- <Kirill.Koulechov@gmx.net> for reporting this.
-
-Fri Jan 19 15:39:43 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.cpp:
- QNX/RTP has the same problem that LynxOS has, after fork() is
- invoked trying to destroy the preallocated objects in
- ACE_OS_Object_Manager fails.
- Factor out this variation in a new macro:
- ACE_HAS_BROKEN_PREALLOCATED_OBJECTS_AFTER_FORK
-
- * ace/config-lynxos.h:
- * ace/config-qnx-rtp.h:
- Define the new macro for the two relevant platforms.
-
- * ace/README:
- Document the macro.
-
-Fri Jan 19 15:08:37 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.cpp:
- I disabled too much in the commit at 10:50am... Now it seems to
- be OK.
-
- * ace/Makefile:
- Remove extra -v
-
-Fri Jan 19 13:16:49 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * include/makeinclude/platform_hpux_aCC.GNU:
- Added new options to the CCFLAGS so that the known future errors
- arising because of HPUX are suppressed.
-
-Fri Jan 19 13:01:13 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SSL/Makefile:
- Put a check for defining ACE_SHLIBS to get it compiled on HPUX.
-
- * ace/RMCast/Makefile:
- * ace/Makefile :
- Updated dependencies
-
- * ace/config-all.h
- Fix a build problem on HP-UX 11.00 with aCC A.03.25. The macro
- used to determine the use of the std namespace changed from
- RWSTD_NO_NAMESPACE to _NAMESPACE_STD. NOTE: I did preserve the
- check for RWSTD_NO_NAMESPACE with aCC versions less than A.03.25.
-
- Thanks to Chad Elliott <elliott_c@ociweb.com> for making this fix.
-
-Fri Jan 19 11:22:42 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * docs/tutorials/022/client_handler.cpp :
- * docs/tutorials/022/client_hander.h :
- * docs/tutorials/022/Acceptor_Service.cpp :
- * docs/tutorials/022/Acceptor_Service.h :
- * docs/tutorials/022/server.cpp :
- * docs/tutorials/022/Makefile :
-
- * docs/tutorials/022/client/Makefile:
- * docs/tutorials/022/client/client.cpp:
-
- * docs/tutorials/022/page01.html:
- * docs/tutorials/022/page02.html:
- * docs/tutorials/022/page03.html:
- * docs/tutorials/022/page04.html:
- * docs/tutorials/022/page05.html:
-
- Developed a new tutorial for the ACE_Service_Configurator.
- Based on the ACE tutorial 005.
-
-Fri Jan 19 10:50:11 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.cpp:
- Use the Green Hills specific tricks *only* if we are compiling
- under Green Hills, and only for the platform where they make
- sense (in this case Win32).
-
-Thu Jan 18 23:21:53 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- Document the infamous ACE_STATIC_SVC macros.
-
-Thu Jan 18 23:50:35 2001 Rick Stille <stille_r@ociweb.com>
-
- The Green Hills(GHS) Native x86 compiler does not provide support
- for 64-bit integers, structural exceptions, or DLL's. Thus the
- keywords __int64, __try, __dllimport, etc., are not defined. In
- addition, exceptions do not work in a multi-threaded environment.
- The following changes were made to address these shortcomings.
-
- * ace/Basic_Types.h: Because the GHS compiler has both
- ACE_LACKS_LONGLONG_T and ACE_WIN32 defined, the
- ACE_LACKS_LONGLONG_T macro must appear first, so the order of
- these two macros has been reversed in the defines of both
- ACE_UINT64_LITERAL(n) and ACE_UINT64_DBLCAST_ADAPTER(n).
-
- * ace/config-win32-common.h: The typedef of ACE_UINT64 as an
- unsigned __int64 and the define of ACE_HAS_LLSEEK are blocked
- out for ghs.
-
- * ace/config-win32-ghs.h: This is the new configuration file for
- Green Hills/Win32.
-
- * ace/Configuration.cpp(resolve_key): The "return 0" at the end of
- this function has been blocked out for ghs to eliminate an
- "unreachable code" warning.
-
- * ace/Event_Handler_T.h(handle_signal): The type of the "signum"
- parameter has been changed to "int" so that it matches the type
- in the Event_Handler class.
-
- * ace/Event_Handler_T.i(handle_signal): The type of the "signum"
- parameter has been changed to "int" so that it matches the type
- in the Event_Handler class.
-
- * ace/High_Res_Timer.cpp(global_scale_factor): The Native x86
- compiler defines "QuadPart" in the LARGE_INTEGER union as a
- "double," so it cannot be used in the calculation of
- "global_scale_factor." Instead, for GHS, the low and high parts
- of the LARGE_INTEGER structure are copied into an ACE_UINT64
- structure (which is actually an ACE_U_LongLong) and the
- ACE_U_LongLong operators are used. The code segment if
- (ACE_High_Res_Timer::global_scale_factor_ == 1u) // Failed to
- retrieve CPU speed from system, so calculate it.
- ACE_High_Res_Timer::calibrate (); is unreachable hen ACE_WIN32
- is defined, so it has been blocked out for Win32 platforms to
- silence the Green Hills "unreachable code" warning.
-
- * ace/High_Res_Timer.i(hrtime_to_tv): There is no assignment
- operator that converts an ACE_U_LongLong to a "long," so an
- intermediate ACE_U_LongLong variable "usec64" has been
- introduced. The type of "msec" and "usec" have been changed from
- "long" to ACE_UINT32, as have been the casts. The conversion is
- then carried out by using the lower part of "usec64."
-
- * ace/Local_Name_Space_T.cpp(remap): The "DWORD" cast has been
- removed from both EXCEPTION_CONTINUE_SEARCH and
- EXCEPTION_CONTINUE_EXECUTION beause the function return value is
- of type "int" and the cast was causing an "integer conversion
- resulted in a change of sign" warning.
-
- * ace/Memory_Pool.cpp(map): Removed references to the "mem_offset"
- variable because it was not being used and the compiler was
- issuing a warning to this effect.
-
- * ace/NT_Service.cpp(startup): This function was returning "-1"
- when svc_sc_handle() failed, and returning a "0" when
- QueryServiceConfig() failed. Since the return type of this
- function is "DWORD," the compiler was issuing an "integer
- conversion resulted in a change of sign" warning for the "-1"
- value. Upon investigation of this issue, it was discovered that
- "0" is a valid service type value, and thus the use of "0" to
- indicate failure is a bug. The return value for svc_sc_handle()
- failure has been changed to "MAXDWORD - 1," which is the DWORD
- equivalent of "-2," and the return value for failure of
- QueryServiceConfig() has been changed to "MAXDWORD," which is
- the DWORD equivalent of -1.
-
- * ace/OS.cpp: The compiler cannot handle a 64-bit literal, so the
- literal passed to FILETIME_to_timval_skew has been created as
- ACE_U_LongLong(0xd53e8000, 0x19db1de).
-
- * ace/OS.cpp(set): The Native x86 compiler defines "QuadPart" in
- the LARGE_INTEGER union as a "double," so it cannot be used in
- the calculations of tv_sec and tv_usec. Instead, the low and
- high parts of the LARGE_INTEGER structure are copied into an
- ACE_U_LongLong structure, and the ACE_U_LongLong operators are
- used.
-
- * ace/OS.cpp(operator FILETIME): The Native x86 compiler defines
- "QuadPart" in the LARGE_INTEGER union as a "double," so it
- cannot be used in the calculation of file_time. Instead, tv_sec
- and tv_usec are converted iinto ACE_U_LongLong structures and
- the ACE_U_LongLong operators are used.
-
- * ace/OS.cpp(uname): The Native x86 compiler names both the union
- and the structure within the SYSTEM_INFO structure, so the
- "wProcessorArchitecture" member within the "s" structure, which
- is itself within the "u" union, must be accessed by using
- ".u.s."
-
- * ace/OS.cpp(ACE_BEGINTHREADEX): Green Hills compiler gets
- confused when __stdcall is imbedded in parameter list, so the
- type ACE_WIN32THRFUNC_T has been defined, then used within the
- parameter list of ::_beginthreadex().
-
- * ace/OS.h(ACE_Time_Value): The Native x86 compiler defines
- "DWORDLONG" as type "double," so FILETIME_to_timval_skew is
- instead defined as type ACE_U_LongLong.
-
- * ace/OS.h: The pragmas "#pragma warning( disable : ... " are
- unknown to the Native x86 compiler, so it produces warnings to
- this effect. These pragma have been blocked out for ghs.
-
- * ace/OS.h: Because the Native x86 compiler does not support the
- __int64 keyword, the typedef of ACE_hrtime_t has been changed
- from "unsigned __int64" to "ACE_UINT64" for ghs. Because no
- usage of "ACE_QWORD" could be foound, its definition has been
- blocked out for ghs.
-
- * ace/OS.i(gettimeofday):The code at the end of this function is
- not reachable if either ACE_HAS_WINCE or ACE_WIN32 is
- defined. In order to quiet the Green Hills compiler warnings
- about unreachable code, this code has been blocked out for
- ACE_HAS_WINCE and ACE_WIN32. With this code blocked out,
- however, the variables "tv" and "result" are not used, and the
- compiler warns about about variables defined, but never used. In
- order to quiet these warnings, the definitions of these two
- variables have been blocked out for ACE_HAS_WINCE and ACE_WIN32.
-
- * ace/OS.i(gethrtime): The ACE_gethrtime() function is not meant
- to be used by a Win32 platform, but because both "ghs" and
- "ACE_HAS_PENTIUM" are defined for the Native x86 platform, a
- call to ACE_gethrtime() was included in the code. This problem
- has been solved by adding "&& !defined(ACE_WIN32)" to the two
- "... defined (ghs) && defined (ACE_HAS_PENTIUM)" statements
- which block out references to ACE_gethrtime().
-
- The Native x86 compiler defines "QuadPart" in the LARGE_INTEGER
- union as a "double," so it cannot be used as the return
- value. Instead, because the return type is "ACE_hrtime_t," which
- is type "ACE_UINT64," the low and high parts of the
- LARGE_INTEGER structure are copied into an ACE_UINT64, which is
- then returned.
-
- * ace/Process_Manager.cpp(wait): The "result >= WAIT_OBJECT_0"
- test within the ACE_ASSERT statement causes the Native x86
- compiler to produce a pointless comparison of unsigned
- integer with zero warning because "result" is of type
- "DWORD," which is defined by the Native x86 compiler as type
- "unsigned int." This test has been blocked out for ghs.
-
- * ace/Profile_Timer.cpp(elapsed_time): Because the "__int64"
- keyword is not defined by the Native x86 compiler, it cannot be
- used to cast the value of "delta_t" in the calculation of
- "real_time." But "delta_t" is of type "ACE_hrtime_t," and
- ACE_hrtime_t is typedefed as ACE_U_LongLong, so the division
- operator defined for in the ACE_U_LongLong class can be used
- directly with a divisor of type "double." Thus the "__int64"
- cast has been removed for ghs.
-
- * ace/Sock_Connect.cpp(get_reg_value): This function is used
- within the function get_ip_interfaces() function only when
- either ACE_HAS_WINSOCK2 is not defined or when ACE_HAS_WINSOCK2
- is defined as "0." Because ACE_HAS_WINSOCK2 is defined on the
- Native x86 platform, the compiler was issuing a defined, but
- never used warning. This warning has been eliminated by
- blocking out the definition of get_reg_value() when
- ACE_HAS_WINSOCK2 is defined as a value other than "0."
-
- * ace/Stats.cpp(accumulate): The comparison "rhs.samples_count ()
- == 0" was producing a warning because rhs.samples_count()
- returns an ACE_UINT32, but is being compared to the signed
- literal "0." The "0" has been changed to "0u."
-
- * ace/WFMO_Reactor.cpp(ok_to_wait): The comparison of the "switch"
- statement parameter "result" to "DWORD" values in the case
- statements elicited an "integer conversion resulted in a change
- of sign" warning from the compiler, so the type of "result" has
- been changed to "DWORD."
-
- * ace/WFMO_Reactor.cpp(dispatch): The comparison of the "switch"
- statement parameter "wait_status" to "DWORD" values in the case
- statements elicited an "integer conversion resulted in a change
- of sign" warning from the compiler, so the type of "wait_status"
- has been cast to "DWORD."
-
- * ace/WFMO_Reactor.cpp(dispatch_handles): The "wait_status >=
- WAIT_OBJECT_0" comparison was producing a pointless
- comparison of unsigned integer with zero warning because
- "wait_status" is an unsigned integer. This was a known problem
- with Borland, so the blocking out of this comparison has been
- extende to ghs.
-
- * tests/Basic_Types_Test.cpp(main): Because both the
- ACE_LACKS_LONGLONG_T and ACE_WIN32 macros are defined, the
- ACE_LACKS_LONGLONG_T macro must appear first, so the order of
- these two macros has been reversed.
-
- * tests/Cached_Accept_Conn_Test.cpp: The template class
- ACE_Node<ACE_HANDLE> must be explicitly instantiated for this
- platform.
-
- * tests/Cached_Conn_Test.cpp: The template class
- ACE_Node<ACE_HANDLE> must be explicitly instantiated for this
- platform.
-
- * tests/Handle_Set_Test.cpp: The template class
- ACE_Node<ACE_HANDLE> must be explicitly instantiated for this
- platform. This was already being done for the _CRAYMPP, so it
- has been extended to ghs.
-
- * tests/Malloc_Test.cpp: Because the Native x86 compiler does not
- support structural exceptions, it cannot support the "remap"
- function, so the blocking of the ACE_TEST_REMAP_ON_FAULT macro
- definition, which was already in effect for linux, has been
- extended to ghs.
-
-Thu Jan 18 12:49:53 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SUN_Proactor.cpp: Added support for cancel_aiocb(). Thanks
- to Alexander Libman <Alibman@baltimore.com> for contributing
- this.
-
- * tests/Makefile.bor (TESTS): Added Config_Test so that this test
- runs on Borland.
-
- * tests: Moved the config_test stuff (which tests ACE_Configuration*
- classes) from the examples/Configuration/ directory to the
- tests/ directory and made it a one-button test.
-
- * ace/Future.h: Changed the order of the thread mutex and the condition
- variable to avoid confusion in the future regarding "order of
- initialization." Thanks to Edan Ayal <edan@bandwiz.com> for
- reporting this.
-
- * examples/Configuration: Updated this example to include the new
- test for the ACE_Configuration_Heap methods. Thanks to Michael
- Searles <msearles@base16.com> for contributing this.
-
-Thu Jan 18 18:55:37 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- Add the RedHat_Implicit_Templates build.
-
-Thu Jan 18 18:48:33 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Log_Msg.cpp:
- Declare sys_nerr as const int under QNX/RTP (and NTO).
-
- * ace/Pipe.cpp:
- Use pipe() under QNX because it lacks both socketpair() and it
- cannot open a socket to itself.
-
- * ace/config-qnx-rtp.h:
- Remove ACE_NTRACE hacks.
-
- * include/makeinclude/platform_qnx_rtp_gcc.GNU:
- Do not enable the repo by default it breaks QNX.
- Instead of removing the definition of DCFLAGS by default we
- set debug=0 all the time, that seems like a cleaner way to
- disable debugging.
-
-Thu Jan 18 09:34:35 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * include/makeinclude/platform_linux.GNU:
- The -fno-implicit-templates flag was hardcoded, but this gave
- the users no recourse to remove should they want to use
- -fimplicit-templates.
- The macro IMPLICIT_TEMPLATES_FLAG is used to set the flag now,
- unless the user provides a value for the macro the makefiles
- continue to work as they did before this change, i.e., adding
- -fno-implicit-templates to CCFLAGS.
- Notice that this functionality was available in
- platform_linux_lxpthreads.GNU, but dissapeared when everything
- was rolled into platform_linux.GNU.
-
-Thu Jan 18 06:26:42 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Configuration.{h,cpp}: Added functionality to read in all
- values in a config file without requiring a type prefix on each
- value, skips whitespace and allows comments on the end of lines.
- Thanks to Michael Searles <msearles@base16.com> for contributing
- this.
-
-Wed Jan 17 11:48:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/msvc_auto_compile.pl:
-
- Added PACE to the list of ACE directories so PACE is
- compiled in full auto builds.
-
-Wed Jan 17 10:00:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Handle_Ops.cpp: (handle_timed_open)
-
- Removed the use of ACE_NONBLOCK on Win32. This use
- didn't function as expected, since ACE_NONBLOCK would
- be interpreted as O_WRONLY. Also, the CreateFile API
- call doesn't support any nonblocking option, so
- redefining ACE_NONBLOCK would not seem to fix anything.
-
- Thanks to Matthias Wittig <m.wittig@com-on.de> for reporting
- a problem report form about this.
-
- * bin/PerlACE/Process_Unix.pm:
-
- Fixed up the use of the RUNNING state, so wait and kill
- work properly. Also made Kill automatically use waitpid
- (since I can't think of any time we'd kill without wanting to
- clean up the resources).
-
-Wed Jan 17 07:44:29 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (send): Set errno to
- EWOULDBLOCK if n < len so that the caller will initiate a
- handle_output()-driven reply. Thanks to Klaus H. Wolf
- <hw@cyland.com> for reporting this.
-
- * ace/Log_Msg.h (ACE_Log_Msg): Clarified that only the current message
- is stored in TSS. Thanks to Pierre Oberson
- <oberson@nagra-kudelski.ch> for pointing out the need for this
- clarification.
-
- * examples/Log_Msg/test_log_msg.cpp (main): Fixed the example by
- adding ACE_Log_Msg::PROCESS so that the messages do not print
- out (which is the correct behavior for this test). Thanks to
- Mike Curtis <mccurry@my-deja.com> for reporting this.
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (send): Set errno to
- EWOULDBLOCK if n < len so that the caller will initiate a
- handle_output()-driven reply. Thanks to Klaus H. Wolf
- <hw@cyland.com> for reporting this.
-
- * ace/Log_Msg.h (ACE_Log_Msg): Clarified that only the current message
- is stored in TSS. Thanks to Pierre Oberson
- <oberson@nagra-kudelski.ch> for pointing out the need for this
- clarification.
-
- * examples/Log_Msg/test_log_msg.cpp (main): Fixed the example by
- adding ACE_Log_Msg::PROCESS so that the messages do not print
- out (which is the correct behavior for this test). Thanks to
- Mike Curtis <mccurry@my-deja.com> for reporting this.
-
-Tue Jan 16 15:28:22 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp:
- The formal parameter names must match in the .h and .cpp file
- to make Sun/CC 6.0 happy.
-
-Tue Jan 16 11:25:32 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log): Convert strerror() text string to a
- TCHAR so that this call will work correctly with Unicode.
- Thanks to Matthias Wittig <m.wittig@com-on.de> for reporting
- this.
-
-Tue Jan 16 09:58:20 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ace_wchar.inl:
-
- Updated ACE_Ascii_To_Wide and ACE_Wide_To_Ascii to
- preserve null pointers.
-
- Thanks to Matthias Wittig <m.wittig@com-on.de> for
- reporting this and suggesting a fix.
-
-Tue Jan 16 10:47:33 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * ace/config-win32-common.h:
- * ace/config-win32-msvc.h:
- Moved #define ACE_HAS_LLSEEK from config-win32-common.h to
- config-win32-msvc.h, since _lseeki64 isn't defined for
- Borland. Also implicitly removed ACE_HAS_LLSEEK for the
- VisualAge compiler - it might have worked (didn't know,
- couldn't test)
-
-Mon Jan 15 15:22:42 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Asynch_IO.h: Changed the ACE_Asynch_Read_Stream::read()
- method's "bytes_to_read" parameter to "num_bytes_to_read" to
- workaround a weird problem with some compilers. Thanks to Chris
- Kohlhoff <chris@kohlhoff.com> for this fix.
-
- * examples/Service_Configurator/IPC-tests/README: Updated this
- file so that it's now up-to-date and also explains how to
- reconfigure a server if SIGHUP isn't supported. Thanks to Mike
- Curtis <mccurry@my-deja.com> for reporting this.
-
-Mon Jan 15 12:13:48 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * bin/nightlybuilds/builds.lst: [Added]
- * bin/nightlybuilds/scoreboard_update.pl: [Added]
-
- Moved the scoreboard stuff from the internal cvs repos
- to this one, so it is easier for people to edit the
- list.
-
-Mon Jan 15 12:29:53 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-macosx.h: Fixed typo so that ACE_HAS_CLOCK_GETTIME
- is spelled correctly. Thanks to Mike Curtis
- <mccurry@my-deja.com> for reporting this.
-
- * ace/Strategies_T.cpp (open): Replace the ACE_OS::strncpy() functions
- with ACE_OS::strcpy() functions. Thanks to Ron Hashimshony
- <Ron@bandwiz.com> for reporting this.
-
-Mon Jan 15 09:44:16 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RMCast/Makefile:
- Fixed Makefile to link the ACE library, otherwise we get
- undefined symbols under certain platforms (AIX). Thanks to
- Scott Bolin <scott.bolin@pgs.com> for pointing this out.
-
-Mon Jan 15 09:11:12 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-win32-common.h: Added support for ACE_HAS_LLSEEK, though
- this should probably be changed to be compiled only on some
- Win32 platforms.
-
- * ace/OS.{h,i}: Added support for ACE_OS::llseek() on Win32. Thanks
- to Nick Lin <nicklin@vantech.com.tw> for contributing this.
-
- * ace/Log_Priority.h: Clarified the fact that we only use 12 bits
- for ACE_Log_Priority. Thus, the remaining bits are available
- for application use. Thanks to David Singer
- <David_P_Singer@res.raytheon.com> for motivating this comment.
-
-Sun Jan 14 16:53:11 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Configuration.{h,cpp}: Fixed a memory leak that occurred
- with transient heaps. Also added a list of current limitations
- to import/export routine. Thanks to Chris Hafey
- <chafey@stentor.com> for contributing this stuff.
-
-Fri Jan 12 20:46:05 2001 Angelo Corsaro <corsaro@cs.wustl.edu>
-
- * include/makeinclude/platform_qnx_rtp_gcc.GNU:
- Platform macros needed to run ACE on QNX RTP.
-
- * ace/config-qnx-rtp.h:
- Configuration file needed to run ACE on QNX RTP.
-
- * ACE-INSTALL.html:
- Added documentation on how to install ACE on QNX RTP,
- and the issue with the current version of QNX RTP.
-
-
-Fri Jan 12 14:59:15 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/RMCast/RMCast_Fragment_Test.cpp:
- Fixed conversion from 64-bit ulong to 32-bit ulong under some
- VxWorks compilers where 64 bits are emulated. Thanks to Edwin
- McKay <mckayea@betalasermike.com> for pointing this out.
-
-Fri Jan 12 07:18:16 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.{h,i}: Moved some "using std::*" definitions from OS.i to
- OS.h. Thanks to Mike Curtis <mccurry@my-deja.com> for reporting
- this and to Christopher Kohlhoff <chris@kohlhoff.com> for
- suggesting the fix.
-
-Fri Jan 12 15:34:28 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Managed_Object.h: Added <TYPE> to the unimplemented operator=
- declaration. Fixes compile w/ IBM C/C++ 3.6 on AIX.
-
-Fri Jan 12 07:59:19 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * Makefile:
- Add the PACE directory back into the build. PACE should
- not generate any build failures for the platforms
- currently supported.
-
-Wed Jan 10 23:30:21 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/FILE_Addr.cpp (set): Replace (sizeof this->filename_)
- with (sizeof this->filename_ / sizeof (ACE_TCHAR)). Thanks to
- Matthias Wittig <m.wittig@com-on.de> for reporting this.
-
-Tue Jan 9 07:27:19 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Containers_T.h: Clarified that the ACE_Ordered_Multiset class
- allows duplicates. Thanks to Albert Wijna
- <albert.wijnja@meco.nl> for clarifying this.
-
-Sat Jan 6 10:20:55 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/File_Lock.{h,inl}: Made the get_handle() method const.
- Thanks to Johnny Willemsen <johnny.willemsen@meco.nl> for
- reporting this.
-
- * ace/TP_Reactor.h:
- * ace/Get_Opt.h:
- * ace/Caching_Utility_T.h: Added "ACE_UNIMPLEMENTED_FUNC" macros
- for all copy constructors and assignment operators. Thanks to
- Johnny Willemsen <johnny.willemsen@meco.nl> for reporting this.
-
-Fri Jan 5 01:09:28 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * performance-tests/Misc/context_switch_time.cpp (get_options),
- * performance-tests/Misc/preempt.cpp (open),
- * examples/Reactor/Misc/pingpong.cpp (run_svc),
- * examples/Reactor/Misc/notification.cpp (main),
- * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp (main),
- * examples/Shared_Malloc/Options.cpp (print_usage_and_die),
- * examples/Service_Configurator/IPC-tests/client/: Updated all
- these programs so that don't abort via %a, but instead call
- ACE_OS::exit(). Thanks to Mike Curtis <mccurry@my-deja.com> for
- suggesting this.
-
- * apps/Gateway/Peer/Options.cpp (print_usage_and_die): Make sure to
- actually *die* when we're done with this function! Thanks to
- Mike Curtis <mccurry@my-deja.com> for suggesting this.
-
-Thu Jan 4 00:10:26 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Select_Reactor_T.i: The cancel_timer() method should return the
- number of events canceled, rather than 0 or 1. Thanks to Joe
- Guan <jguan@mistwireless.com> for reporting this and providing
- the fix.
-
- * ace/Synch.h: Added an acquire (ACE_Time_Value &) method to ACE_Null_Mutex
- so that this will work properly when
- ACE_HAS_OPTIMIZED_MESSAGE_QUEUE is enabled. Thanks to Yuriy
- Zaporozhets <zaz@internet-zahav.net> for reporting this.
-
-Wed Jan 3 23:00:52 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Lib_Find.cpp (ldfind),
- * ace/Makefile.bor (CFLAGS),
- * include/makeinclude/outputdir.bor (OBJDIR),
- * ace/config-win32-msvc.h: Added support for the new ACE_LD_DECORATOR_STR
- macro which is used to work around the fact that Borland
- attaches a so-called "decorator suffix" to all library names.
- Thanks to Chris Kohlhoff <chris@kohlhoff.com> for reporting
- this.
-
- * ace/Lib_Find.h: Fixed a typo where ACE_LIB_FIND_H was misspelled.
- Thanks to Chris Kohlhoff <chris@kohlhoff.com> for reporting
- this.
-
- * ace/SOCK_Stream.i,
- ace/MEM_Stream.i: Updated the calls to ACE_OS::shutdown() to use
- the new macros described below!
-
- * ace/OS.h: Added better support for the ACE_OS::shutdown() second
- parmeter in the form of new macros ACE_SHUTDOWN_READ,
- ACE_SHUTDOWN_WRITE, and ACE_SHUTDOWN_BOTH. Thanks to Mike
- Curtis <mccurry@my-deja.com> for suggesting this.
-
- * ace/SOCK_Stream.h: Clarified the role of the timeout parameters in
- the various methods. Thanks to Allen Broadman
- <broadmana@plural.com> for motivating this.
-
-Thu Jan 11 17:24:30 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * Makefile:
- Add new target 'Core' to quickly compile the basic ACE+TAO
- components.
-
-Thu Jan 11 09:56:43 2001 Frank <fhunleth@cs.wustl.edu>
-
- * ACE version 5.1.12 released.
-
-Thu Jan 11 05:38:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Reverted the change that was made for SPRO
- 5.1 compilers. The change that was reverted is this
-
- Thu Jan 4 17:14:33 2001 Balachandran Natarajan
- <bala@cs.wustl.edu>
-
- * ace/Handle_Set.cpp: Changed the macro
-
- ACE_DIV_BY_WORDSIZE(x) ((x) >> (ACE_Handle_Set::WORDSIZE)) to
-
- ACE_DIV_BY_WORDSIZE(x) ((x) >> ((int)
- ACE_Handle_Set::WORDSIZE)). This seems to be a better
- fix. Thanks to David Allen <dallen@storm.com> for suggesting
- this.
-
-Tue Jan 9 09:53:53 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/MEM_Stream_Test.cpp:
- Run the event loop for at most 1 minute. After that we know
- that something is amiss with the client threads, and we should
- exit. This fixes the deadlock problems we were seeing in the
- nightly builds.
- The real cause of the problem is something broken with the way
- MEM_Addr objects compare local addresses, sometimes they fail to
- compare equal. In the test this results in failed connections.
-
-Mon Jan 8 18:53:39 2001 Sharath R. Cholleti <sharath@cs.wustl.edu>
-
- * examples/Map_Manager/test_hash_map_manager.cpp:
- Removed template instantiations for
- ACE_Guard<ACE_SYNCH_RW_MUTEX>,
- ACE_Read_Guard<ACE_SYNCH_RW_MUTEX>, and
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> to fix linker
- errors under Lynx_I386.
-
-Mon Jan 8 10:44:57 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.h:
-
- Added some more protection (!VXWORKS) around the cuserid
- inline statement since VXWORKS doesn't have cuserid.
-
-Mon Jan 08 10:04:55 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (terminate): Reordered some statements so
- we get the thread descriptor's log_msg pointer before we delete
- the thread descriptor. Thanks to Tomer Amiaz
- <Tomer@bandwiz.com> for reporting this.
-
-Sun Jan 7 16:51:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ace_dll.dsp:
-
- Removed the PACE libraries from linking. We are going to come
- up with a different solution for pace.
-
- * docs/run_test.txt:
-
- Changed the instructions a little to use PerlACE::LocalFile
- for the server's IOR file.
-
-Sun Jan 7 08:59:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/DLL_Test.cpp: Added a message in a ACE_ERROR statement.
- * tests/run_test.lst: Disabled MEM_Stream_Test in Linux.
-
-Thu Jan 4 17:14:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (dispatch_i): Eliminate a portion of the
- code from SunCC5 builds. This piece of code was trying to set
- things right when it sees all the masks clear and the <size_>
- greater than zero. This seems to be creating problems with SunCC
- 5 builds alone. Commenting out this piece for SunCC5 helps. This
- should also be a work around for the bug #750 in bugzilla.
-
-Thu Jan 04 17:07:48 2001 Luther Baker <luther@cs.wustl.edu>
-
- * ace/ace_dll.dsp
-
- Consistent typography (win32 specific backslash).
-
-Thu Jan 4 15:34:14 2001 Luther J Baker <luther@cs.wustl.edu>
-
- * ace/ace_dll.dsp
-
- Added PACE library to the ACE DLL project file.
- (also changed the library search path)
-
-Wed Jan 3 17:24:11 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.h:
-
- Mistakenly changed the ace_timezone () method to use
- timezone () instead of timezone. Changed back.
-
-Wed Jan 3 16:00:22 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/ACE.cpp
-
- Changed the types of day_of_week_name and month_name in
- ACE::timestamp to ACE_TCHAR (since that was the data
- being assigned to it and the type that is later expected).
- This fixed errors in Win32's Unicode build.
-
-Wed Jan 3 15:44:31 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/OS.i:
-
- Removed ACE_TIMEZONE since we found another workaround for
- platforms that define timezone () as a macro.
-
- * ace/OS.h:
- * ace/OS.i:
-
- Moved much of the code from ACE_OS::timezone and
- ACE_OS::difftime into ace_timezone and ace_difftime. Since
- some platforms don't have timezone or difftime, we needed
- to do something here so those methods aren't used. Instead
- of figuring out what larger #if !... should be, it is easier
- (and less error prone) to just move the code here.
-
-Wed Jan 3 13:10:39 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * apps/JAWS/server/HTTP_Helpers.cpp:
-
- Added ACE_MT around an ACE_Guard to remove an unused var
- warning in the single threaded builds.
-
-Wed Jan 3 12:56:13 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * ace/Timer_Wheel_T.cpp:
- * ace/Timer_Wheel_T.h:
-
- Doug noticed some redundant code in expire while making his
- change on the 21st. I checked and he was right, it looks like
- I was moving around the loop termination conditionals and left
- some around. Removed them and also added some better comments
- and made it more doxygen complient.
-
-Wed Jan 3 12:06:20 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/Refcounted_Auto_Ptr_Test.dsw:
-
- Projects are listed in tests.dsw, so this is unneeded.
-
- * tests/tests.dsw:
-
- Added Refcounted_Auto_Ptr_Test.dsp.
-
-Tue Jan 3 10:30:42 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * docs/msvc_notes.txt:
-
- Added this file explaining some issues or explanations on how
- ACE/TAO are set up for use with MSVC. Mainly I'm thinking of
- this as a place to put random stuff about ACE and TAO on MSVC.
-
- Plus I think we need more nifty doxygen documents. ;-) A tip of
- the hat goes to Letha Etzkorn <letzkorn@cs.uah.edu> and
- Shivakumar Patil <shivakumar.patil@stdc.com> for bringing up
- questions that led to the dump of info to this file.
-
- * ACE-INSTALL.html:
-
- Added a reference to msvc_notes.txt.
-
-Wed Jan 3 09:15:24 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/ACE.cpp:
-
- Replaced these lines
-
- SYSTEMTIME local;
- ::GetLocalTime (&local);
-
- in the timestamp() method.
- They were removed the last time this file was
- modified, breaking the Win32 builds.
-
-Wed Jan 03 05:49:11 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- The ace_cuserid() helper cannot be defined in Win32
-
-Wed Jan 03 05:42:20 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- Remove broken #include of unistd.h, it was a debug statement
- that sneaked through the commit.
-
-Tue Jan 2 18:33:03 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- Workaround platforms that define timezone, difftime or cuserid
- as macros. Instead of just dropping support for the ACE_OS::XXX
- method we create an inline ace_XXX() function, that uses the
- original macro expansion, then we #undef the offending macro,
- and use the inline function in the code.
-
- * ace/config-tru64.h:
- Enable cuserid() again, with the new workaround it should work
- without problems.
- This fix should remove some of the redness in the TRU64_CXX
- builds.
-
-Tue Jan 2 14:22:21 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Add the DII version of Param_Test to the nightly builds.
-
-Tue Jan 2 10:25:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.cpp: Added the patch provided by
- Edan Ayal <edan@bandwiz.com> for
- ACE_Bounded_Cached_Connect_Strategy::find_or_create_svc_handler_i ().
-
-Tue Jan 2 09:03:18 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Asynch_Acceptor.{h,cpp},
- ace/POSIX_Async_IO.{h,cpp},
- ace/POSIX_Proactor.{h,cpp},
- ace/SUN_Proactor.{h,cpp}: Added enhanced versions of ACE_POSIX_Proactor
- and ACE_SUN_Proactor to fix various problems uncovered and fixed by
- Alexander Libman <Alibman@baltimore.com>.
-
- * ace/ACE.{h,cpp}: Fixed the timestamp() method so that it works
- identically on Win32 and on UNIX. Also provided a new option
- that'll make it possible to return a pointer to the beginning of
- the time portion of "date and time." Thanks to Michael Searles
- <msearles@base16.com> for contributing these fixes.
-
-Mon Jan 01 16:35:00 2001 Michael Kircher <Micahel.Kircher@mchp.siemens.de>
-
- * tests/Reader_Writer_Test.cpp: Added a #ifdef to check for native
- RW lock support. If the platform supports native RW locks we should
- not report a failure on upgrading, because native RW locks do not
- support upgrading, only our RW lock emulation does this.
- Thanks to Frank and Doug for pointing out this failure.
diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a
deleted file mode 100644
index f665defb9a8..00000000000
--- a/ChangeLogs/ChangeLog-02a
+++ /dev/null
@@ -1,5826 +0,0 @@
-Mon Nov 19 11:03:07 2001 Ossama Othman <ossama@uci.edu>
-
- * ACE-INSTALL.html:
-
- Added missing build instructions for the ACE_SSL library, and
- updated the list of "make" flags recognized by ACE's Makefile
- scheme.
-
-Mon Nov 19 00:53:54 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_Tokens.h:
-
- Fixed some bugs introduced by my previous checkin because of
- patch confusion. Replaced all the standard C system calls with
- ACE_OS calls. Made it more wchar friendly.
-
- * ace/Makefile:
-
- Removed the dependency on /pkg/gnu/bin/flex. It was broken. We
- now use $(LEX) and $(YACC) defined in
- $ACE_ROOT/include/makeinclude/wrapper_macros.GNU.
-
- * include/makeinclude/wrapper_macros.GNU:
-
- Changed the definition of YACC to bison (by default). If people
- want to change this, it can be overridden by a variable in the
- Makefile. But things are most likely to break if you use yacc.
-
- * etc/Svc_Conf_l.cpp.diff:
- * etc/Svc_Conf_y.cpp.diff:
-
- Regenerated the diffs.
-
- *Sigh* This patching business is ugly.
-
-Fri Nov 16 07:22:19 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/make_release: Updated the script to copy the beta to a
- different location. Have tested this by creating a dummy
- repository and a dummy export directory. Things worked
- fine. Hopefully the beta should go through without any hassle.
-
- The script is tied to its usage on ace.cs. Needs to be
- changed. Will do that after this beta goes out. Having too many
- changes at the same time may not be good.
-
-Thu Nov 15 20:44:40 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * etc/Svc_Conf_l.cpp.diff: Updated. Thanks to Kitty for reporting it.
- * etc/Svc_Conf_y.cpp.diff: Added. We need it for uses of ACE_LIB_TEXT.
- * ace/Makefile: Added rule to apply patch to Svc_Conf_y.cpp.
-
-Thu Nov 15 08:26:57 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/*.cpp: Changed all remaining uses of ACE_TEXT to ACE_LIB_TEXT
- to be consistent... Thanks to Johnny Willemsen for reporting
- the inconsistencies and for Darrell Brunsch for clarifying what
- the right behavior should be.
-
-Wed Nov 14 07:43:20 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * docs/ACE-guidelines.html: Updated the guidelines to explain
- the use of ACE_TCHAR for the argv parameter to main(). Thanks
- to Johnny Willemsen for reporting this.
-
- * ace/OS_Dirent.inl (opendir): Replace char * const cast with
- ACE_TCHAR * const cast. Thanks to Nick Pratt for reporting
- this.
-
- * tests/Upgradable_RW_Test.cpp (main): Fixed the test to avoid
- dividing by 0 and also initialized all pointers to NULL. Thanks
- to Johnny Willemsen for reporting this. Thanks fixes BudID 650.
-
-Tue Nov 13 15:25:04 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/ACE.h (ACE): Clarified what the time_len parameter is used for.
- Thanks to Tompa <safdsfd@adsffda.com> for reporting this.
-
-Sun Nov 11 09:50:52 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Naming_Context.cpp (info): Added an ACE_UNUSED_ARG to
- silence warning about "length" parameter and changed buf from
- char to ACE_TCHAR. Thanks to Johnny Willemsen for reporting
- this.
-
- * tests/Aio_Platform_Test.cpp: The argv parameter of main() should
- be ACE_TCHAR rather than char. Thanks to Johnny Willemsen for
- reporting this.
-
-Thu Nov 15 15:43:20 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/Naming_Context.cpp (info): Wrapped sprintf() arguments with
- ACE_LIB_TEXT. Fix supplied by Johnny Willemsen.
-
-Thu Nov 15 12:43:31 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * docs/wchar.txt: Added a writeup for ACE_LIB_TEXT and ACE_TEXT
- from "the authority."
-
-Wed Nov 14 21:36:42 2001 Ossama Othman <ossama@uci.edu>
-
- * docs/usage-bugzilla.html:
-
- Corrected link to the DOC Center's bugzilla site.
-
-Wed Nov 14 23:11:59 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/Naming_Context.cpp (info): Fixed Unicode build problems
- by consistently using ACE_TCHAR instead of char, and by
- using Unicode aware string functions in ACE_OS_String
- instead of ACE_OS.
-
- * ace/Svc_Conf_l.cpp: Default intialized ace_yy_c_buf_p to ACE_TCHAR
- instead of char. Default initialized ace_yy_cp, ace_yy_bp to 0.
-
- * ace/Svc_Conf_y.cpp: Wrap string literals passed to ace_yyerror
- with ACE_LIB_TEXT().
-
-Wed Nov 14 06:38:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/ACE-bug-process.html (HREF): Changed references from ace.cs
- to deuce.doc. Thanks to Johnny Willemsen for reporting this.
-
-Tue Nov 13 15:04:15 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * html/Stats/index.shtml:
- * html/Stats/detailed_performance.shtml:
- Improved documentation about the test location, ORB and network
- configuration used. Thanks to David Yongqiang Wang
- <davidyw@avaya.com> for pointing out the problems.
-
-Tue Nov 13 11:46:11 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * tests/Collection_Test.cpp (iterate_const): Fixed ACE_DEBUG print
- statements that were accessing the element of the unbounded set
- as an int rather than an UglyThing. Thanks to Ossama for
- pointing this out.
-
-Mon Nov 12 11:41:35 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.cpp (send, recv):
-
- In the va_arg versions of these methods, do not use
- send/recv_n() to as the underlying send/recv() method. It
- forces unnecessary blocking.
-
- Corrected return value semantics in versions of these methods
- that use loop to send/receive multiple buffers. If data was
- sent or received than do not return -1 on error. Instead return
- the amount of bytes sent/received. This is necessary to allow
- the caller to keep track of sent or received data. [Bug 882]
-
-Sun Nov 11 23:50:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tests/Date_Time_Test.cpp: Remove argv variable from
- main() to eliminate unused variable compiler warning.
- * tests/Arg_Shifter_Test.cpp: Same.
-
-Sun Nov 11 10:00:56 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.h (ACE_SSL_SOCK_Stream):
-
- Removed unused class members.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (sendv):
-
- If an error occurs but data was sent on a previous loop
- iteration then return the amount of bytes sent, not the error.
- This extends previous check for EWOULDBLOCK and ETIME. All
- errors are now caught. The caller must always know if any data
- was successfully sent. [Bug 882]
-
- Do not continue on to the next loop iteration if the amount of
- data sent was less than the amount data given. This avoids a
- subtle problem where "holes" in the data stream would occur if
- partial sends of a given buffer in the iovec array occured.
- [Bug 882]
-
-Sun Nov 11 07:58:07 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.cpp (sendv):
-
- Fixed unused variable warnings.
-
-Sat Nov 10 23:25:50 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added new SSLIOP "Big_Request" test to the list of regression
- tests to automatically run during the nightly builds.
-
-Sat Nov 10 22:13:54 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_Tokens.h:
-
- Regenerated the files after fixing the warnings that showed up
- under Sun CC Forte Update. They were caused because Sun CC's
- preprocessor doesn't like the #line statements generated by flex
- and bison. Since these files are not modified on a daily basis,
- people debugging the lexer can turn it on by removing the flags
- '-l' and '-L' to bison and flex respectively in the Makefile.
- For now, this removes a lot of noise.
-
- * ace/Makefile:
-
- Added flags '-l' to bison and '-L' to flex.
-
- * etc/Svc_Conf_l.cpp.diff:
-
- Regenerated the diff to match the current version.
-
- * etc/Svc_Conf_y.cpp.diff:
-
- This file held the stuff which have been obsoleted by the move
- to use bison. So removed this file to avoid causing confusion in
- the future. Thanks to Ossama for pointing this out.
-
- Let's see some green :-)
-
-
-Sat Nov 10 19:27:36 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
-
- If data is still buffered within OpenSSL's internal buffer, then
- force the Reactor to invoke the event handler (with
- the appropriate mask) before waiting for more events
- (e.g. blocking on select()) by returning a value greater than
- one. All pending data must be processed before waiting for more
- events to come in on the SSL handle.
-
- * ace/SSL/SSL_SOCK_Stream.h (reactor, handler, notify):
-
- These methods are no longer needed. Removed them.
-
- (sendv):
-
- Added missing timeout parameter.
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i (notify, recv_i, send_i, close):
-
- Reverted code that notify()ed the Reactor if data was still
- pending in OpenSSL's internal buffers. The idea was to force
- the reactor to call the appropriate event handler before polling
- for events (e.g. blocking on select()). However, notifications
- are not dispatched until after events are polled which meant
- that there is no point in notify()ing the Reactor.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler):
-
- These methods are no longer needed. Removed them.
-
- (sendv):
-
- Fixed/improved the writev() semantics and emulation in this
- method. Previously, if an iov_base buffer was successfully
- sent, that success was not reported to the caller if subsequent
- sends in the emulation loop failed. The caller would end up
- thinking that no part of the message was sent. The improved
- semantics are now the following if the underlying send() call
- returns with an EWOULDBLOCK or ETIME error condition:
-
- - If no data was sent, then return -1.
- - If some data was sent on a previous loop iteration then
- return the number of bytes successfully sent.
-
- In both cases, errno is unchanged. [Bug 882]
-
- Incidentally, this fixes a problem in TAO's SSLIOP pluggable
- protocol when sending very large requests. Thanks to Andrew
- Finnell <Andrew.Finnell@esecurityinc.com> for providing an
- example that exhibited the problem.
-
- Lastly, the missing timeout support has been added. The timeout
- is decremented on each loop iteration.
-
-Sat Nov 10 17:16:59 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (fopen): Removed redundant parentheses.
-
-Sat Nov 10 09:29:48 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.i (pipe): Replaced the _pipe() call on Win32 with the
- CreatePipe() call. Thanks to Bo Balders <bba@post.utfors.se>
- for reporting this.
-
- * ace/Log_Msg.cpp (log): The "format" string was omitted. Thanks
- to Martin Krumpolec for noticing this.
-
-Sat Nov 10 08:48:24 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Arg_Shifter.{h,cpp}: Added a new constructor to ACE_Arg_Shifter
- so that it can handle both const char ** and char ** arguments.
-
-Fri Nov 9 07:42:41 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Arg_Shifter.cpp: Made the argv parameter to ACE_Arg_Shifter
- a "const" ACE_CHAR **.
-
- * tests/Arg_Shifter_Test.cpp (main): Added "const" to the
- args local variable to remove a warning from SunC++.
-
-Fri Nov 9 11:23:01 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * tests/Collection_Test.cpp: Fixed up things that caused problems
- on several platforms. Added the ARRAY tests back in.
-
-Thu Nov 8 14:52:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.h: Added a new 'M' option to print out the name of
- the log priority. Thanks to Vladimir Chovanec
- <Vladimir.CHOVANEC@asset.sk> for reporting this.
-
-Thu Nov 8 10:41:44 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS_String.h: Enhanced the documentation so that it explains
- the differences between ACE_OS::strsncpy() and ACE_OS::strcpy()
- more precisely. Thanks to Alain Decamps for contributing this.
-
- * ace/Naming_Context.{h,cpp}: The info() method should have ACE_TCHAR **
- rather than char **. Thanks to Johnny Willemsen for reporting
- this.
-
- * ace/OS.cpp: Added support for Borland's idiosyncratic _wfdopen()
- method. Thanks to Johnny Willemsen for reporting this.
-
-Wed Nov 7 05:17:03 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Message_Queue_T.{h,cpp}: Changed the typo DEFUALT_PRIORITY
- to DEFAULT_PRIORITY.
-
- * ace/OS.i: In BCB the _wtempnam() has the following signature:
- wchar_t *_wtempnam(wchar_t *dir, wchar_t *prefix)
-
- This means that the arguments must be made non-const by a cast. The
- fix is to add some defines so that with BCB and no wchar the
- _tempnam is used (with the casts) and with BCB and wchar then
- the _wtempnam is used with the casts. Thanks to Johnny
- Willemsen for this fix.
-
-Thu Nov 8 14:52:39 2001 Steve Huston <shuston@riverace.comy>
-
- * ace/Arg_Shifter.h: Doxygen-ized some comments.
-
- * ace/Date_Time.i (update): Add 1900 to years value to convert from
- localtime's years-since-1900 value to now. Add 1 to the month
- to convert localtime's 0-11 range to 1-12. Thanks to Syed
- Wasim Ali <syed.ali@neustar.com> for reporting this.
-
- * tests/Date_Time_Test.(cpp dsp icc): New test for ACE_Date_Time.
-
- * tests/tests.dsw:
- * tests/tests.icp:
- * tests/Makefile[.bor]: Added Date_Time_Test.
-
- * tests/run_test.lst: Added Arg_Shifter_Test and Date_Time_Test.
-
-Thu Nov 8 11:53:00 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Arg_Shifter_Test.(cpp dsp icc): New test for ACE_Arg_Shifter.
-
- * tests/tests.dsw:
- * tests/tests.icp:
- * tests/Makefile[.bor]: Added Arg_Shifter_Test.
-
-Thu Nov 8 13:05:12 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_irix6.x_sgic++.GNU:
-
- Added an option to suppress warnings about #pragma pack.
-
-Thu Nov 8 10:43:22 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/OS.cpp:
-
- Correct a build problem for GHS on Win32.
-
-Wed Nov 07 13:50:39 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Task_T.h (ACE_Task): Decorated ACE_Task with ACE_Export to
- avoid VC7's internal compiler error. Thanks to Darrell for
- submitting the change.
-
-Wed Nov 7 10:59:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * include/makeinclude/platform_sunos5_g++.GNU: Append -D_REENTRANT
- to CPPFLAGS if threads=1
-
-Wed Nov 7 08:09:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Changed the name CC5 build as
- CC51. It uses version 5.1 of the compiler anyway.
-
-Tue Nov 6 14:39:28 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/SString.i (find),
- * ace/Local_Name_Space_T.cpp (resolve_i): Fixed "off-by-one"
- bugs with ACE_OS::strscpy(). Thanks to Alain Decamps
- <Alain.Decamps@PIDPA.be> for contributing this.
-
-Tue Nov 6 13:25:40 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * tests/Collection_Test.cpp: Committed an old change that uses an
- actual class as the element in the Unbounded_Set rather than an
- int. I wrote this to get a better understanding of how the
- iterator and accessors on the iterator worked.
-
- * tests/SString_Test.cpp (main): Added a test for the rep() method
- that insures that the char array returned is equivalent to the
- string in the ACE_CString from which it's obtained.
-
-Mon Nov 5 10:12:01 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.cpp,
- * ace/Local_Name_Space_T.cpp,
- * ace/FILE_Addr.cpp,
- * ace/Acceptor.cpp,
- * ace/ACE.cpp: Changed uses of strncpy() to ACE_OS::strsncpy().
- Thanks to Alain Decamps for these fixes.
-
-Sun Nov 4 12:11:31 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Reactor.cpp: Enhanced all the Reactor's event loop methods
- to first check and see if the Reactor's been deactivated and to
- bailout immediately in this case. Thanks to Don Hinton for
- suggesting this.
-
- * ace/Reactor.i: Moved the reactor_event_loop_done() method from
- the *.cpp file into the *.i file and made inlineable.
-
- * ace/Select_Reactor_T.cpp: Be more careful about error handling in the
- dispatch_notification_handlers() method. If a failure occurs,
- when dispatch_notifications() is called, return -1, rather than
- erroneously "incrementing" the count of the number of handlers
- dispatched. Thanks to Don Hinton for reporting this.
-
-Sat Nov 3 11:15:43 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * The following fixes are from Joachim Achtzehnter <joachima@netacquire.com>:
-
- In ace/config-pharlap.h we had to explicitly #undef
- ACE_HAS_WCHAR after the #include "ace/config-win32.h"
- directive. Without this change the resulting DLL depended on
- several wide character versions of Win32 system functions, such
- as _CreateMutexW. At least some of these dependencies were
- caused by ace/OS.i.
-
- In ace/Log_Msg.cpp we had to add !defined(ACE_HAS_PHARLAP) to a
- few more places in addition to the ones Bruce Trask had posted
- to avoid reference to the NT Eventlog functionality.
-
- At the top of ace/Log_Msg_NT_Event_Log.h and
- ace/Log_Msg_NT_Event_Log.cpp we added !defined(ACE_HAS_PHARLAP)
- to completely bypass the contents of these two files.
-
- * ace/DEV_Addr.i (addr_to_string):
- * ace/Local_Tokens.i (name):
- * ace/Module.i (name):
- * ace/OS.i (asctime_r):
- * ace/SPIPE_Addr.i (addr_to_string):
- * ace/UNIX_Addr.i (addr_to_string):
- * ace/SString.i (rep): Changed uses of strncpy() to ACE_OS::strsncpy().
- Thanks to Alain Decamps for these fixes.
-
-Fri Nov 2 14:38:49 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Task.h (ACE_Task_Base): Clarify the meaning of the put()
- hook method. Thanks to Tommy Svensson <tommysvensson@yahoo.com>
- for motivating this.
-
-Mon Nov 5 14:23:12 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/ACE.cpp:
-
- Remove a build warning for gcc 2.95.3 on SunOS 5.6.
-
-Mon Nov 5 14:21:30 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- Added the HP-UX nightly build back to the list.
-
-Mon Nov 5 13:31:15 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/ACE.cpp:
-
- Fix a build warning for 64-bit HP-UX.
-
- * ace/Active_Map_Manager_T.i:
-
- Cast the free list id to ACE_UINT32 to match up with the
- slot_index () type. On 64-bit HP-UX, the free list id type
- (size_t) is a 64 bit number and must be cast down to 32 bits.
- Otherwise, the slot_index is cast up to 64 bits and does not give
- the correct results.
-
- * include/makeinclude/platform_hpux_aCC.GNU:
-
- Add a -L./ to allow the 64-bit HP-UX builds to link properly.
-
-Mon Nov 5 11:17:20 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Add support for the new status.txt file in the scoreboard.
-
-Mon Nov 5 13:02:50 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-hpux-11.00.h:
-
- Added #define of ACE_HAS_CHARPTR_DL. This corresponds with the
- declaration of dlopen(char*,unsigned int).
-
- * ace/OS.cpp:
-
- Changed the default thread scope to system (similar to Linux).
- Process thread scope is not supported in HP-UX.
-
-Sun Nov 04 11:18:31 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (fopen): Changed to forward call to fopen instead of
- _fopen on non-borland compilers when not using UNICODE. This
- change allows the code to compile on Win98. Thanks to Jstwo
- <jstwo@writeme.com> for submitting the fix.
-
-Thu Nov 1 16:21:51 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * bin/auto_run_tests.pl: Added snippet of code that puts the
- current directory ('.') in the PATH environment variable since
- auto_run_tests.pl depends on the current directory being there.
-
-Thu Nov 1 15:49:04 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.x_cxx.GNU: Moved the
- CXX_VERSION definition to the global scope.
-
- * include/makeinclude/platform_tru64_cxx.GNU: Added
- -D_PTHREAD_ENV_DECCXX flag to the CPPFLAGS. This is done only
- for v5.1, 1885. The pthreads.h in 1885 is messed up. The
- conditional include of c_asm.h is busted for DECCXX and
- v1885. Hence the change. We need to do this to protect ACE and
- TAO applications on this platform and compiler
- combinations. Thanks to Don Hinton <dhinton@gmx.net> for
- reporting the problem.
-
-Thu Nov 1 14:25:52 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/config-win32-borland.h:
-
- Added fix sent in by Chris Kohlhoff <kohlhoff@pop.ihug.com.au>
- to ACE_CC_PREPROCESSOR_ARGS to enable the recognition of a
- filename to which the preprocessor output is to be directed.
- There is also a corresponding fix in TAO_IDL/driver/drv_preproc.cpp
- that carries out the redirection.
-
-Thu Nov 1 10:27:21 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Select_Reactor_Base.h (open):
- * ace/Select_Reactor_T.h (ACE_Select_Reactor_T, open):
-
- Added a note about the "size" of the Select_Reactor on Unix
- platforms. On Unix platforms, the size parameter should be as
- large as the maximum number of file descriptors allowed for a
- given process. This is necessary since a file descriptor is
- used to directly index the array of event handlers maintained by
- the Reactor's handler repository. Direct indexing is used for
- efficiency reasons.
-
-Thu Nov 1 06:38:30 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/ACE.cpp: Fixed some minor formatting problems so that
- format_hexdump() works properly. Thanks to Kyle Brost
- <Kyle.Brost@quest.com> for reporting this.
-
- * ace/config-win32.h: Include the config-cygwin32.h file when
- __CYGWIN32__ is enabled. Thanks to Johnny Willemsen for
- reporting this.
-
- * ace/Synch.i (remove): Added some casts to make certain compilers
- happy? Thanks to Guillaume Renaud <guillaume.renaud@valtech.fr>
- for reporting this.
-
- * ace/OS.i: Updated the Win32 version of ACE_OS::llseek(). Thanks to
- Doron Rajwan <doron@BANDWIZ.COM> for reporting this.
-
-Wed Oct 31 11:25:40 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.h: The ACE_OS::llseek() method must be static! Thanks to
- Doron Rajwan <doron@BANDWIZ.COM> for reporting this.
-
-Tue Oct 30 08:30:16 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/RB_Tree.cpp (operator=): Make sure to check for self-assignment
- in the operator=. Thanks to Johnny Willemsen for reporting
- this.
-
-Mon Oct 29 05:23:56 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Naming_Context.{h,cpp}: Moved ACE_STATIC_SVC_REQUIRE from the
- .h file to the .cpp file to avoid multiple definitions. Thanks to
- Boris Kaminer <boris.kaminer@orcsoftware.com> for reporting this.
-
-Sun Oct 28 10:05:32 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/config-macosx.h:
- * include/makeincludes/platform_macosx.GNU
- Added new fixes to get this to work on MacOS X. Thanks to John
- Michael Zorko <j.zorko@att.net> and Fikri Pribadi
- <fikri@ugotacall.com> for contributing this.
-
-Wed Oct 24 23:59:13 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Configuration_Import_Export.cpp: Fixed a bug where a
- check of a pointer was made rather than the character pointed to
- by the pointer. Thanks to Juan Jose Comellas
- <uanjo@comellas.org> for reporting this.
-
-Tue Oct 30 22:53:57 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_l.cpp:
-
- Fixed incorrect #line preprocessor directives.
-
- * etc/Svc_Conf_l.cpp.diff:
-
- Regenerated this diff so that it includes recent updates.
-
-Mon Oct 29 20:12:40 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/run_test.lst:
-
- Added the Proactor test to the list of one-button tests to run.
-
-Mon Oct 29 20:04:40 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- More patches from Alexander Libman. The Proactor_Test appears
- to finally work on Linux.
-
-Mon Oct 29 17:49:21 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Added some error checks at places where
- token where acquired.
-
-Mon Oct 29 16:59:58 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (acquire_token): The acquire_token () called
- acquire with a sleep hook. It was wrong. It should just unblock
- the thread by sending notify. A bad cut and paste error
- :(. Thanks to Graeme Clark <gclark@opentext.com> for reporting
- this. This closes [BUGID 1077].
-
-Sun Oct 28 20:36:56 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Map_T.i (clone):
-
- Fixed syntax errors.
-
- * ace/Svc_Handler.cpp (new):
-
- Reverted Michael's change. It incorrectly altered the semantics
- of the new operator, particularly when compiling with native
- exception support enabled. Fixes a warning.
-
-Sun Oct 28 16:44:20 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Timer_Hash_T.cpp (ACE_Timer_Hash_T):
-
- Corrected syntax error that was introduced in the changes
- described below by removing extraneous trailing bracket.
-
-Sun Oct 28 13:15:00 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * ace/ACE.i:
- * ace/Activation_Queue.cpp:
- * ace/Bound_Ptr.i:
- * ace/Configuration.cpp:
- * ace/Configuration_Import_Export.cpp:
- * ace/Containers_T.cpp:
- * ace/Future.cpp:
- * ace/Handle_Gobbler.h:
- * ace/Local_Tokens.i:
- * ace/MEM_SAP.i:
- * ace/Map_T.i:
- * ace/Message_Block.cpp:
- * ace/OS_Errno.cpp:
- * ace/Object_Manager.cpp:
- * ace/Obstack_T.cpp:
- * ace/Refcounted_Auto_Ptr.i:
- * ace/Remote_Tokens.i:
- * ace/Strategies_T.cpp:
- * ace/Stream.cpp:
- * ace/Svc_Handler.cpp:
- * ace/Synch_T.cpp:
- * ace/TLI.cpp:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Queue_T.cpp:
- * ace/Unbounded_Queue.cpp:
- * ace/Unbounded_Set.cpp:
-
- Changed almost all direct usages of operator new in ACE to use
- ACE_NEW_RETURN (Exceptions is Dump_T.h). In one case in
- Stream.cpp the semantics changed slightly if operator new would
- have been overloaded, see the "@@ Michael" comment.
-
- When new got used with placement most of the usages got
- replaced with ACE_NEW_MALLOC_RETURN. In some cases as in
- Malloc_T.cpp, Map_Manager.cpp, PI_Malloc.i, Array_Base.cpp
- special cases exist, where the macros would have incurred
- different semantics and performance penalties.
-
-Fri Oct 26 07:37:43 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Quoter example will not run in
- minimum_corba builds.
-
-Wed Oct 24 08:04:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor.h: Improved the documentation of the
- end_reactor_event_loop ().
-
-Tue Oct 23 10:04:25 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Replaced uses of a static global lock with the
- ACE_Static_Object_Lock singleton.
-
- Fixed incorrect uses of the "%l" format specifier. "%d" is the
- expected format specifier.
-
- (Acceptor):
-
- Initialize the "sessions_" member in the base member initializer
- list. Corrects a problem where the session number initially
- contained a "garbage" value.
-
-Mon Oct 22 17:55:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/Svc_Conf_l.cpp: Remove include of stdlib.h, fix g++/Solaris
- build.
-
-Mon Oct 22 15:54:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x-hpc++.h: Remove hard-coded setting of
- ACE_HAS_EXCEPTIONS. It is controlled by platform_hpux_aCC.GNU.
-
-Mon Oct 22 15:50:35 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Chris Hughes name to the Hall of Fame
-
-Sun Oct 21 16:44:41 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp (disable_signal):
-
- Fixed warnings regarding a method that "hid" virtual function
- with the same name, in addition to unused argument warnings.
-
-Sun Oct 21 15:22:57 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Fixed warning about deprecated conversion of "const char *" to
- "char *" exhibited by GCC 3.0.x builds.
-
-Sun Oct 21 12:50:39 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/LSOCK.cpp: The ACE_LSOCK::recv_handle() was returning success
- without setting the I/O handle. Thanks to Rick Ohnemus
- <rick.ohnemus@systemware.com> for reporting this.
-
- * ace/config-freebsd-pthread.h: Changed
- #if (__FreeBSD_version > 430000) to
- #if (__FreeBSD_version > 440000) to get ACE to work with FreeBSD 4.4.
- Thanks to Gu Song <gusong_m@yahoo.com> for reporting this.
-
-Fri Oct 19 06:44:17 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/Reactor/WFMO_Reactor/test_window_messages.cpp:
- Don't use a global Event_Handler object since this violates the
- design rules for the ACE_Reactor.
-
-Sun Oct 21 13:39:27 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the Quoter example in
- $TAO_ROOT/examples to the list of tests in the daily builds.
-
-Thu Oct 18 20:56:53 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Added no-op main() function for platforms that do not support
- asynchronous IO.
-
-Thu Oct 18 22:46:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp: Fixed warnings in Sun CC and TRU 64 builds.
-
-Thu Oct 18 20:42:55 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Fixed Unicode build errors.
-
-Thu Oct 18 19:52:44 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/SString.h: clarify example in comments to ACE_Tokenize
- so that constant strings are not passed in its constructor.
-
- * examples/OS/Process/process.cpp: do not pass constant strings
- to ACE_Tokenize constructor. Thanks to
- Werner Buchert <w.buchert@medat.de> and
- Don Hinton <dhinton@swan.fr>.
-
-Wed Oct 17 23:56:45 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
- * tests/Proactor_Test.dsp:
-
- Proactor test contributed by Alexander Libman
- <alibman@baltimore.com>.
-
- * tests/tests.dsw:
-
- Added Proactor_Test project to the tests workspace.
-
-Wed Oct 17 18:59:53 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/install.bor:
- Borland makefile fix to ensure that, when doing the install
- target, core executables are built correctly if they don't
- already exist.
-
-Wed Oct 17 09:15:10 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-linux-common.h: Clarified that this file should
- not be included directly! Thanks to Suresh N
- <suresh.n@vergiltech.com> for reporting this.
-
-Wed Oct 17 16:00:19 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Graeme Clark to the Hall of Fame.
-
-Wed Oct 17 15:49:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp:
- * ace/TP_Reactor.h: Added remove_handler () calls to the
- TP_Reactor. Before this, the call on the reactor used to be
- handled by the Select_Reactor's implementation. The
- implementation has a problem. It tries to call handle_close ()
- (an upcall) as one of the calls after holding the token. This
- was asking for trouble. This could lead to deadlocks as
- mentioned in [BUG ID 1055].
-
- The method in the TP_Reactor now calls remove_handler () on the
- Select_Reactor (its base class) with a DONT_CALL flag. Then it
- calls handle_close () on the Event_Handler if the user did not
- pass in the DONT_CALL mask. This two step process would get
- around the problem that was mentioned before. Thanks to Graeme
- Clark <gclark@opentext.com> for reporting the problem and
- testing this fix.
-
- This should close [BUG ID 1055].
-
-Wed Oct 17 10:40:17 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
-
- If errno is set to EWOULDBLOCK for the SSL_ERROR_SYSCALL case,
- then continue the connection establishment loop. Do not return
- right away. Fixes non-blocking connection establishment on AIX.
- Thanks to Vladimir Chovanec <Vladimir.CHOVANEC@asset.sk> for
- providing this fix.
-
- * ace/SSL/SSL_SOCK_Stream.h (notify):
-
- Made this method protected. It isn't intended to be used
- internally by the ACE_SSL_SOCK_Stream class.
-
-Wed Oct 17 12:15:15 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * ace/Select_Reactor_T.cpp (handle_error, check_handles): Add
- vxworks to the ever-growing list of OSs which return
- unpredictable values in errno when there's a bad file descriptor
- in a select mask. [Bug 1058].
-
- Thanks to Dave Arndt <darndt@oresis.com>, Tad Hetke
- <thetke@oresis.com>, and Erik Johannes <ejohannes@oresis.com>
- for tracking down and providing this fix.
-
-Tue Oct 16 23:08:27 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.h (ACE_Svc_Conf_Param):
-
- Added a new ACE_Obstack attribute that is passed down to the
- parser and scanner. This obviates the need for the global
- pointer to the ACE_Obstack that was formally used, which in turn
- avoids a race condition.
-
- (ace_obstack):
-
- No longer a need to maintain a global pointer to the ACE_Obstack
- instance used during parsing/scanning.
-
- * ace/Svc_Conf.y:
- * ace/Svc_Conf.l:
-
- Retrieve the Obstack from the parameter passed down to yyparse()
- and yylex() instead of using the (now non-existent) global
- instance. This is part of a race condition fix.
-
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_l.cpp:
-
- Updated to pull in the changes made to the source files from
- which these files were generated.
-
- * ace/Service_Config.cpp (process_directives_i):
-
- The global ACE_Obstack pointer used during each Service
- Configurator parse has been removed. An ACE_Obstack instance is
- now passed down to the parser and scanner in a
- reentrant/thread-safe manner via the new ACE_Svc_Conf_Param
- parameter. As such, there is no longer any need to maintain a
- global pointer to the ACE_Obstack instance in use, nor is it
- necessary to store/restore the previous value when performing
- nested or parallel Service Configurator directive processing.
- This fixes a race condition that was causing some memory
- corruption when parsing Service Configurator directives in
- parallel.
-
- Note that the ACE_Obstack is now instantiated on the stack
- rather than the heap, thus improving Service Configurator
- directive processing performance.
-
-Mon Oct 15 23:16:55 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Service_Config.h (process_directives_i):
-
- Updated the signature of this method to accept a parameter that
- will eventually passed to the parser and the scanner.
-
- * ace/Service_Config.cpp:
-
- No need to include "ace/Svc_Conf_Lexer_Guard.h" and
- "ace/Object_Manager.h".
-
- (process_directives_i):
-
- Updated the signature of this method to accept a parameter that
- will eventually passed to the parser and the scanner.
-
- Pass the "ACE_Svc_Conf_Param" parameter to the yyparse() call.
- This is reentrant/thread-safe.
-
- Check the error count found in the "ACE_Svc_Conf_Param" object.
- It's count is incremented in a thread-safe/reentrant manner.
-
- (process_directive, process_directives):
-
- The ACE_Svc_Conf_Lexer_Guard and its accompanying
- synchronization has been moved to the generated scanner code.
- This makes locking finer grained. Specifically, instead of
- holding a lock for the duration of the scope within which
- service configurator directive parsing and scanning is
- performed (e.g. for the duration of the yyparse() call), the
- lock is only held for the duration of the scope where service
- configurator directive scanning occurs (i.e. the entire yylex()
- call is synchronized). This is part of the core fix that
- corrects a deadlock that occurred when activating an ACE_Task,
- in conjunction with the singleton instance of the
- ACE_Thread_Manager, during Service Object initialization.
- [Bug 1036]
-
- * ace/Service_Config.i:
-
- Cosmetic update.
-
- * ace/Svc_Conf.h:
-
- Added declaration and method definitions for the
- ACE_Svc_Conf_Param class. Instances of this class contain the
- state used when parsing/scanning a given service configurator
- file or service configurator directive.
-
- (ACE_SERVICE_DIRECTIVE_STACK_DEPTH):
-
- There is no longer any hard-coded limit on the maximum depth
- nested service configurator directives may be processed. Only
- process resource limits limit the maximum nesting depth.
-
- (ace_yyparse, ace_yylex):
-
- Updated the parser and lexer entry points to accept an
- additional parameter, i.e. a pointer to an ACE_Svc_Conf_Param
- object.
-
- (ace_yy_push_buffer, ace_yy_pop_buffer):
-
- Pass a pointer to the buffer that will be "switched" in our out
- when processing nested service configurator directives those
- that are processed in parallel.
-
- * ace/Svc_Conf.l:
-
- Removed array that implemented the service configurator
- directive stack. The "stack" is now implemented using the
- function call stack itself. Hence there is no hard-coded limit
- to the stack size.
-
- Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE,
- COLON, STAR}. Just return their corresponding symbolic integer
- constants (e.g. ACE_COLON --> ':').
-
- Increment error and line count in the ACE_Svc_Conf_Param object
- passed to the yylex() function from yyparse(). This improves
- reentrance/thread-safety when tracking error counts.
-
- (yy_push_buffer, yy_pop_buffer):
-
- Pass a pointer to the buffer that will be "switched" in our out
- when processing nested service configurator directives those
- that are processed in parallel.
-
- * ace/Svc_Conf.y:
-
- Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE,
- COLON, STAR}. Just use their corresponding symbolic integer
- constants (e.g. ACE_COLON --> ':').
-
- Increment error and line count in the ACE_Svc_Conf_Param object
- passed to the yylex() function from yyparse(). This improves
- reentrance/thread-safety when tracking error counts.
-
- * ace/Svc_Conf_Lexer_Guard.h:
-
- Store a pointer the lexer buffer currently being scanned.
-
- * ace/Svc_Conf_Lexer_Guard.cpp:
-
- Updated constructor to accept a pointer to an ACE_Svc_Conf_Param
- object. If the buffer in that object is zero, it will be
- initialized.
-
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_Tokens.h:
-
- Regenerated these files in order to pull in the updates made to
- their corresponding source files (i.e. Svc_Conf.{l,y}).
-
-Mon Oct 15 11:26:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv2: New directory for examples in "C++ Network
- Programming, Volume 2: Systematic Reuse with ACE and Frameworks"
- Moved these changes to the new directory, and reverted the
- C++NPv1 files to their ACE 5.2 state:
- Sun Oct 14 17:05:14 2001 Douglas C. Schmidt
- Tue Oct 9 07:46:20 2001 Douglas C. Schmidt
-
-Sun Oct 14 17:05:14 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/C++NPv1/Logging_Handler.{h,cpp}: Changed log_file_ from
- a reference to a pointer so that it can be initialized
- correctly. Thanks to Kitty for reporting this.
-
-Fri Oct 12 14:54:58 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/OS.i:
- Remove extraneous check for macro ACE_HAS_WINSOCK2_GQOS,
- which was breaking various builds under Windows.
- Thanks to Jeff McNiel <JMcNiel@datacrit.com> for pointing it out.
-
-Fri Oct 12 12:15:22 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- The QNX machine is no longer running that OS, plus attempts to
- bring it back to life failed. The build is removed until
- further notice.
-
-Thu Oct 11 17:52:32 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp:
- Somehow the file didnt get committed yesterday. So, committing
- the following change now.
-
- Wed Oct 10 16:56:18 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
-Thu Oct 11 10:57:58 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RB_Tree.h:
- * ace/RB_Tree.i:
- * ace/RB_Tree.cpp:
- Reverted to the 5.2 release state. The proposed changes were
- breaking some builds, and they were not bug fixes in any case.
-
-Wed Oct 10 16:56:18 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp:
- Reverted the following change as it ended up with some problems
- for multicast services.
-
- Fri Oct 5 14:40:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
-
-Wed Oct 10 06:16:52 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Activation_Queue.{h,cpp}: Added support for two ACE_Allocator that
- will control how the message blocks and data blocks are
- allocated. Thanks to Gil Rapaport <grapaport@comgates.co.il>
- for contributing this.
-
- * examples/Reactor/WFMO_Reactor/test_apc.cpp (main):
- * examples/Reactor/WFMO_Reactor/test_abandoned.cpp (main): Don't
- use a global Event_Handler since this violates the design rules
- for the ACE_Reactor. Thanks to Heping He
- <heping.he@riskmetrics.com> and Hartmut Quast
- <HartmutQuast@t-online.de> for reporting this and to Irfan for
- suggesting where the problem arose.
-
-Tue Oct 9 07:46:20 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/C++NPv1/Logging_Handler.h: Added a new constructor to
- class Logging_Handler that just takes an ACE_SOCK_Stream. We
- need to use this in C++NPv2.
-
- * ace/Message_Queue_T.cpp (wait_not_full_cond): Thanks to Leo Kov
- <leo_kov@hotmail.com> for reporting this.
-
- * ace/TTY_IO.cpp (control): Inserted some useful
- ACE_OS::set_errno_to_last_error() calls. Also, for Win32 made
- readtimeoutmsec == 0 cause no timeout, whereas readtimeoutmsec
- == MAXDWORD causes infinite timeout. Thanks to Lars Steubesand
- <Lars_Steubesand@hsgmed.com> for reporting this.
-
-Mon Oct 8 20:19:44 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/DLL/test_dll.cpp: There's no need to specify
- ACE_DLL_SUFFIX as it prevent ACE_Lib_Find to figure out the
- correct DLL name.
-
- The ACE_ERROR_RETURN macro store and reset the errno so there's
- no need to use dll.error() with it. Changed to use "%p" to
- display the error.
-
- Thanks to Heping He <heping.he@riskmetrics.com> for reporting
- the problem.
-
-Mon Oct 8 11:15:21 2001 Angelo Corsaro <corsaro@doc.ece.uci.edu>
-
- * ace/RB_Tree.h (class ACE_RB_Tree_Node):
- * ace/RB_Tree.i:
-
- Changed access privilege on the operator new/delete to be
- public, and added assertion in those method implementation to
- make sure that wrong use of these method are promptly notified.
- This changes should fix the problem that some compiling were
- still having with RB_Trees.
-
-Sat Oct 06 23:06:41 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i, close):
-
- Removed the do/while(SSL_pending()) loop. Its introduction into
- the code was a bit misguided. There is no need to flush the SSL
- buffer before returning to the Reactor's event loop since the
- code now sends a notification to the Reactor to force the
- Reactor to invoke the event handler before waiting in the event
- loop. This fixes some SSL protocol errors that manifested
- during multithreaded SSL communication. [Bug 943]
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- It is no longer necessary to call SSL_accept()/connect() to
- flush the SSL buffer before running the Reactor's event loop
- since the Reactor is notified that it should call the
- appropriate event handler before blocking on select() for
- WaitForMultipleObjects(), for example.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler):
-
- New methods to set the Reactor and event handler associated with
- the ACE_SSL_SOCK_Stream. If each of these is set, then the
- Reactor will be notified if data is still pending in the SSL
- buffer.
-
- (~ACE_SSL_SOCK_Stream):
-
- Uninlined the destructor. There is no need for it to be
- inlined, and doing so only caused unnecessary code bloat.
-
- * ace/SSL/SSL_SOCK_Stream.h (notify, reactor, handler):
-
- Added these new method declarations, in addition to the
- corresponding attributes.
-
- Updated documentation.
-
- * ace/SSL/SSL_SOCK_Stream.i (notify):
-
- Method that pushes the event handler on to the Reactor's
- notification pipe when necessary. Invoked by recv_i() and
- send_i().
-
- * ace/SSL/SSL_SOCK_Acceptor.h:
- * ace/SSL/SSL_SOCK_Connector.h:
- * ace/SSL/SSL_Accept_Handler.h:
- * ace/SSL/SSL_Connect_Handler.h:
-
- Updated documentation.
-
-Sat Oct 6 16:04:29 2001 Angelo Corsaro <corsaro@doc.ece.uci.edu>
-
- * ace/RB_Tree.h:
- * ace/RB_Tree.i:
-
- The operator new and delete were declared to be No-Op but were
- not implemented as such. This was breaking some builds. Now the
- operator are declared as private and they also have a no-op
- implementation. This should solve some linking error that were
- occurring.
-
-Sat Oct 6 11:17:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Adrian Mercieca to the hallf of fame.
-
-Fri Oct 05 18:30:59 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/RW_Process_Mutex.cpp: Added inclusion ACE.h and fixed member
- initialization.
-
-Fri Oct 5 18:16:53 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SString.h:
- * ace/SString.cpp: Changes the usage of ostream to
- ACE_OSTREAM_TYPE. Thanks to Russ Noseworthy for letting us
- know.
-
-Thu Oct 4 07:10:01 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/RB_Tree.*: Added support for using the "ACE_Allocator" parameters
- to manage memory. Thanks to Airat A. Sadreev <airatsa@nm.ru>
- for reporting contributing this.
-
-Wed Oct 3 07:20:06 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/RW_Process_Mutex.{h,cpp}: Added the ability to create a
- unique name if the user doesn't supply one. Thanks to Tom
- Wagner <TomW@CoManage.net> for suggesting this.
-
- * ace/Synch.h: Clarified that the timed wait capabilities of
- ACE_Semaphore only work on Solaris if ACE_HAS_PTHREAD is enabled
- *and* ACE_HAS_POSIX_SEM/ACE_HAS_STHREAD are disabled. Thanks to
- Bonifides Bautista <earlboy@my-deja.com> for reporting this.
-
-Fri Oct 5 12:48:48 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (close):
-
- Reset the SSL object to allow another connection to be made
- using the existing ACE_SSL_SOCK_Stream instance. This prevents
- the previous SSL session state from being associated with the
- new SSL session/connection. Thanks to Vladimir Chovanec
- <Vladimir.CHOVANEC@asset.sk> for pointing out this problem and
- suggesting a course of action.
-
-Fri Oct 5 14:40:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp (open): Removed the #if defined (linux)
- from the code. Looks like this had to be removed to get it
- working for RTI under Linux. The other ChangeLog entries that
- this change is concerned with are "Sat Feb 17 17:23:46 2001
- Darrell Brunsch <brunsch@uci.edu>" and "Fri Jan 26 11:18:15 2001
- Douglas C. Schmidt". Looks like the patch provided by Keith
- Nicewarner <knicewar@erg.sri.com> is being reverted. I remember
- a communication from Keith which seemed to hint that this may
- not be required.
-
- Thanks to Russ Noseworthy for suggesting this.
-
-Fri Oct 5 14:04:39 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Hagen Ulrich to the Hall of Fame.
-
-Fri Oct 5 13:55:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Makefile: Removed the SUPPRESS_DASH_G option. Not really
- sure where it is used. Further, added a tab to the place where
- rules for CHORUS are set. This should fix BUGID 1049. Thanks to
- Hagen Ulrich <ulrich.hagen@siemens.com> and Dr.David Levine for
- reporting and verifying the fix.
-
-Fri Oct 05 05:56:50 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.2 released.
-
-Thu Oct 4 17:38:21 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Synch.h: Added some comments to explain the rationale for
- the different return values from the blocking and timed
- versions of ACE_Null_Semaphore::acquire(). Thanks to Doug
- Schmidt for explaining this.
-
-Thu Oct 4 17:27:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Handler.cpp (recv_log_record): Insure that
- the payload message block is properly aligned for any CDR
- extraction. Many thanks to Bala for noticing this problem and
- sending code for the fix.
-
-Thu Oct 4 17:08:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp:
- In prepare(), call ACE_Process_Options::command_line() rather
- than ACE_Process_Options::process_name() to set the program
- path for the child process.
-
-Thu Oct 4 13:18:37 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Handler.cpp: Use a ACE_Message_Block,
- rather than hijacking a CDR block, to read the payload into.
-
-Thu Oct 4 10:14:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Donald Acton to the Hall of Fame.
-
-Thu Oct 4 06:39:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: Added ACE_LACKS_MKSTEMP as SunOS 5.5 does
- not support mkstemp ().
-
- * ace/config-sunos5.6.h: Undefined ACE_LACKS_MKSTEMP as Sun 5.6
- and above support it.
-
- Thanks to Don Hinton <dhinton@swan.fr> for reporting this
- problem and Chad Elliott for testing this out on a Sun OS 5.5
- box.
-
-Wed Oct 3 16:37:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (read_1): Reverted this change "Wed Oct 3
- 15:05:43 2001 Jeff Parsons <parsons@cs.wustl.edu>". This
- change is alone not enough to fix the problem that Brad
- reported. The sample program for the text needs to be fixed to
- get it working right.
-
-Wed Oct 3 15:05:43 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (read_1);
-
- Reverted changed made in
-
- Fri Aug 17 16:56:16 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- to read_1(). A similar change made in several other methods is
- ok, but in this case bytes can be copied into the input CDR
- stream without changing wr_ptr, so the check will fail
- unnecessarily. Thanks to Brad Hoskins <BHoskins@slo.newport.com>
- for pointing this out.
-
-Wed Oct 2 12:18:37 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Server.cpp: Fixed spelling error.
- * examples/C++NPv1/Logging_Handler.cpp: Comment length adjustment.
-
-Tue Oct 2 21:52:31 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Client.cpp: Reverted this:
- Mon Oct 1 18:27:41 2001 Steve Huston <shuston@riverace.com>
-
-Tue Oct 2 19:52:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Makefile: Removed some of the files that no longer exist in the
- repository. The inclusion of these files in the Makefile added
- noise during the beta cutting process.
-
-Tue Oct 02 15:34:49 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * etc/tao_cosevent.doxygen:
- * etc/tao_cosnotification.doxygen:
- Fixed typos in the tag file names.
-
-Tue Oct 2 15:52:27 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Sunny Leung to the Hall of Fame.
-
-Tue Oct 2 15:33:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Removed one instance of Peter Phillips
- <pphillip@opentext.com> from the Hall of Fame.
-
-Tue Oct 2 15:00:37 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (clone_from): Copied the GIOP major and minor
- versions from the incoming CDR stream. Thanks to Sunny Leung
- <sleung@opentext.com> for reporting this. This closes bugzilla
- #1043.
-
-Tue Oct 2 09:45:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/libDLL_Test.icc:
- * tests/libService_Config_DLL.icc: Add link(exportAll) to the link
- options to export the entrypoints needed for the tests.
-
-Mon Oct 1 20:04:14 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * THANKS:
- Added Tushar Nair to the THANKS file.
-
-Mon Oct 1 18:06:48 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Object_Manager.cpp (ACE_UnhandledExceptionFilter):
- Removed the un-needed #if 0's. Left them before as a safety
- measure (in case something doesnt work) and forgot to remove
- them later.
-
- * ace/Log_Msg.cpp (instance):
- Fixed the seg faults that are raised when ace is compiled with
- ACE_NTRACE=0 on SunOS. Added a check before locking and
- releasing a lock.
-
- Thanks to Tushar Nair <ntushar@yahoo.com> for reporting the
- problem and for providing a fix.
-
-Mon Oct 1 18:27:41 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Client.cpp: Remove the third (optional)
- arg from getline(). Using a char literal without further
- qualification causes confusion in Unicode builds.
-
-Mon Oct 1 14:44:13 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.cpp (ssl_library_init):
-
- Initialize the locking callbacks in the crypto library before
- initializing the OpenSSL library. OpenSSL may require the
- locking callbacks to be initialized before its own
- initialization.
-
- * ace/SSL/SSL_Context.cpp (ssl_library_fini):
-
- Perform crypto library resource cleanup before reclaiming the
- locks used by the locking callbacks. Crypto library resource
- cleanup makes use of the locking callbacks.
-
-Mon Oct 1 15:19:11 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/C++NPv1/README: Added a section that illustrates the
- mapping of chapters onto files in the directory.
-
-Mon Oct 1 12:58:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (handle_socket_events): A fix for the problem
- that started showing up this time is like this. One of the
- threads was dispatching an upcall. In the intermediate time the
- Reactor woke up another thread to close the handler, remember
- that this is possible with the TP_Reactor if the application
- resumes the handles (the way TAO does that). Now when the thread
- that that dispatched the upcall returned it tries to invoke a
- method on the already closed handle. To prevent that from
- happening we make an extra check to see whether the handle
- associated with the handler is still available in the internal
- map of the Reactor. As this check is done in the return path of
- the thread this should have less performance impact. This is
- another reason why we should have #1031 in place ASAP.
-
-Mon Oct 1 12:23:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB): Changed the name of the
- Sun's EGCS build. We have not been using EGCS but 2.95.x for a
- long time now.
-
-Mon Oct 1 10:46:15 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/PerlACE/Run_Test.pm (check_n_cleanup_files): Removed the
- word "ERROR" when files are left behind. This was creating noise
- in the daily builds. We have captured the problem in the
- bugzilla with id #1014. After 1.2 goes out, if someone is
- looking at this problem again we need to add this back so that
- our daily builds can pick them up.
-
-Sun Sep 30 17:25:33 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i):
-
- Reset errno to prevent previous values (e.g. EWOULDBLOCK) from
- being associated with a fatal SSL error (e.g. an alert).
-
-Sun Sep 30 16:52:22 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_Stream.cpp (do_SSL_shutdown):
-
- Return the "retval" variable instead of always returning -1.
- The actual return value may not always be -1. Thanks to Alain
- Totouom <atotouom@gmx.de> for providing this fix.
-
- * THANKS:
-
- Added Alain to the list of contributors.
-
-Sun Sep 30 09:13:04 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
-
- Made reactor mask constant to emphasize the fact that it is
- indeed a constant.
-
-Sat Sep 29 08:07:07 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Configuration.{h,cpp}: Changed "allocator" to "alloc" to
- avoid bugs with MSVC++ 5.0. Thanks to Munagala Ramanath
- <amberarrow@yahoo.com> for reporting this.
-
- * ACE-INSTALL.html: Yet more improvements courtesy of Chris
- Kohloff.
-
-Fri Sep 28 23:38:07 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
-
- Cleaned up the code.
-
- Do not attempt to verify the X.509 certificate. Only the
- application knows how best to do that.
-
- * ace/SSL/SSL_Context.cpp (ssl_library_init):
-
- Fixed some Unicode problems. Wrap strings within an ACE_TEXT
- macro.
-
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i:
-
- Corrected some comments.
-
- * ace/SSL/SSL_SOCK_Stream.h (send_n, recv_n):
-
- Added a "bytes transferred" pointer parameter. This allows the
- amount of bytes transferred to returned via this parameter, thus
- matching the semantics of their ACE_SOCK_Stream counterparts.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (send):
-
- Do not block attempt a timed send() if data is available in
- OpenSSL's internal buffer. This prevents a condition where
- needlessly blocking on select() would occur. A similar fix for
- recv() was made earlier. See Fri Aug 24 16:54:02 2001 Ossama
- Othman <ossama@uci.edu> for details.
-
- (send_n, recv_n):
-
- If the "bytes transferred" pointer parameter is non-zero then
- return the amounts of bytes transferred through it. This makes
- these methods better match the semantics of their
- ACE_SOCK_Stream counterparts.
-
-Fri Sep 28 19:24:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.00.h: Moved the definitions for ACE_HAS_WCHAR
- and ACE_HAS_XPG4_MULTIBYTE_CHAR from the compiler-independent
- section to the aC++ section. (at least) gcc 3.0 distributed from
- HP can't handle compiling wide char stuff... it refers to
- wctype.h, only available in aC++.
-
-Fri Sep 28 12:46:25 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.cpp (report_error):
-
- Don't bother displaying an error message if the error code is
- zero (i.e. no error).
-
-Fri Sep 28 12:31:39 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- Transfer ownership of the Reactor to the previous owner for the
- SSL_ERROR_ZERO_RETURN case. Thanks to Vladimir Chovanec
- <Vladimir.CHOVANEC@asset.sk> for pointing out this problem.
-
- Remove the SSL event handler from the reactor for the
- SSL_ERROR_ZERO_RETURN case. Previously, this method returned
- without removing it, resulting in a seg fault.
-
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
-
- Ported the updates made to the ssl_accept() counterpart to this
- method.
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i (send_i):
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
-
- In the event a SSL_ERROR_SYSCALL error condition occurs, call
- ACE_OS::set_errno_to_last_error() to make sure errno is updated
- appropriately since OpenSSL does not do that. Fixes some
- "misbehaving" Reactor interactions. Thanks to Andrew Finnell
- <Andrew.Finnell@esecurityinc.com> for tracking down the problem
- and suggesting these fixes.
-
-Fri Sep 28 09:37:28 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.h (report_error):
- * ace/SSL/SSL_Context.cpp (report_error):
-
- New SSL error reporting functions that use the ACE_Log_Msg
- facilities to dump error information.
-
- * ace/SSL/SSL_Context.cpp (set_mode):
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i):
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
-
- Use the new report_error() static method to display error
- information instead of OpenSSL's ERR_print_error_fp().
-
- * ace/SSL/SSL_SOCK_Connector.cpp:
-
- Include 'ace/Log_Msg.h' to pull ACE_ERROR macro definitions.
- Fixes compile-time problems on Tru64. Thanks to Martin
- Krumpolec for providing this fix. [Bug 1034]
-
- (ACE_SSL_SOCK_Connector):
-
- Wrap format specifier string in ACE_ERROR call with ACE_TEXT.
- Fixes mismatched Unicode/non-unicode strings.
-
-Fri Sep 28 06:17:27 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/SPIPE_Acceptor.{h,cpp}: Fixed the use of "char" for
- "already_connected_" to be "int". Thanks to Johnny Willemsen
- for reporting this.
-
- * ACE-INSTALL.html: Improved the installation instructions for BCB 4/5.
- Thanks to Chris Kohloff for contributing this and to
- Jan Kalin <jan.kalin@zag.si> for motivating this.
-
- * ace/TTY_IO.cpp: Fixed numerous bugs in the control() method.
- Thanks to Airat A. Sadreev <airatsa@nm.ru> for reporting this.
-
- * ace/TTY_IO.h: Add a new field for Win32. Thanks to
- Airat A. Sadreev <airatsa@nm.ru> for reporting this.
-
-Thu Sep 27 06:12:21 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/config-win32.h: Added a special-case for Borland C++ Builder,
- which must include vcl.h before windows.h. Thanks to Chris
- Kohloff for reporting this. This fixes Bug ID 899 for the time
- being.
-
- * ace/Module.cpp (ACE_Module): The line
-
- this->name ("<unknown>");
-
- was be replaced with
-
- this->name (ACE_TEXT("<unknown>"));
-
- Thanks to Airat A. Sadreev <sadreevaa@hq.tatenergo.ru> for
- reporting this. This fixes bug id 1041.
-
-Thu Sep 27 13:09:19 2001 Bala <bala@cs.wustl.edu>
-
- * ACE version 5.1.21 released.
-
-Tue Sep 25 16:12:14 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- Use ACE_OS::set_errno_to_last_error() set errno instead of doing
- so manually to get around broken compilers that reset the last
- error when assigning to errno. Thanks to Chris Kohloff for
- pointing out the problem and suggesting this fix.
-
-Tue Sep 25 13:00:37 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Obstack.h: Fixed a typo when declaring ACE_Obstack
- exportable. I mistakenly used the underlying
- ACE_EXPORT_SINGLETON_DECLARATION macro directly.
- ACE_SINGLETON_DECLARATION is the right macro to use here.
- Thanks to Martin Krumpolec <krumpolec@asset.sk> for reporting
- the bug.
-
-Tue Sep 25 09:12:28 2001 Andrew Finnell <Andrew.Finnell@esecurityinc.com>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- On MS Windows, OpenSSL does not store the last error in errno so
- explicitly do so. This corrects problems where a server is
- unaware that a client has forcefully disconnected.
-
-Tue Sep 25 00:01:59 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Service_Repository.cpp (instance): There are three stages of
- the Object Manager: (a) starting up; (b) running; (c) shutdown.
- ACE_Service_Repository::instance() was not creating a new
- instance in (a) and (c). It was changed to allow creation (a).
-
-Mon Sep 24 01:55:29 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added TAO's PICurrent test to the list of automated regression
- tests.
-
-Sun Sep 23 19:28:06 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Reactor.h (ACE_Reactor): Fixed comments for
- <end_reactor_event_loop> and <reactor_event_loop_done>. Both
- methods work on an instance of reactor, not the global singleton
- reactor. Thanks to Doug for noticing this.
-
-Sun Sep 23 10:02:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/High_Res_Timer.h: Removed a question mark "?", in a line
- which read "or sometimes 3.579 Mhz??". This seems to remove the
- warning in VXWORKS builds. I have no clue about the problem that
- VXWORKS compiler sees. It took only more than an hour to figure
- this out. :(.
-
-Sat Sep 22 08:59:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Service_Manager.cpp (handle_input): Added some logic to
- strip off newlines and carriage returns for Windows platforms.
- Thanks to Kyle Brost <Kyle.Brost@quest.com> for contributing
- this.
-
-Sat Sep 22 12:28:21 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/ACE_SSL_LIB.dsp:
-
- Corrected code generation settings to use the multi-threaded DLL
- version of the run-time library. Corrects "legacy" build
- problems.
-
-Sat Sep 22 08:59:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/High_Res_Timer.{h,i,cpp}: Added comments to explain how
- to configure the timers properly on various platforms. Thanks
- to Alain Decamps <Alain.Decamps@PIDPA.be> for reporting this.
-
- * ace/OS.i (ACE_Flow_Spec): Added a check for ACE_HAS_WINSOCK2_GQOS
- so that things will compile properly on MinGW32. Thanks to Jeff
- McNiel <JMcNiel@datacrit.com> for reporting this.
-
-Fri Sep 21 15:54:55 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS_Dirent.cpp: Fixed all the allocations so they work properly
- when used with ACE_TCHAR! Thanks to Olof Lindfors
- <olof.lindfors@protegrity.com>.
-
-Tue Sep 18 06:25:22 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/*Reactor*: Changed all uses of "delta_time" to "delay_time".
- Thanks to Johnny Willemsen for reporting this.
-
-Sun Sep 16 11:53:38 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Connector.cpp (handle_output): Fixed the comment to be
- ACE_WIN32. Thanks to Kobi Cohen-Arazi <kobi@mivzak.com> for
- reporting this.
-
-Fri Sep 21 17:11:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Message_Block.h: Tried rewording some comments in the
- ACE_Message_Block. Thanks to Tom Wagner <TomW@CoManage.net> for
- suggesting this.
-
- * THANKS: Added Tom Wagner <TomW@CoManage.net> to the Hall of
- Fame.
-
-Fri Sep 21 22:11:53 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/ACE_SSL_LIB.dsp:
-
- Removed hardcoded user-specific include paths, and user-specific
- preprocessor macro definitions.
-
-Thu Sep 20 18:15:49 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Config_Test.cpp: Added some more tests to verify correct
- string value reset and enumerate values/sections.
-
-Thu Sep 20 12:29:09 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/ACE_SSL_LIB.dsp:
- * ace/SSL/ACE_SSL_LIB.dsw:
-
- New static build MSVC++ project and workspace files for the
- ACE_SSL library contributed by Jonathan Reis <reis@stentor.com>.
- [Bug 1032]
-
-Thu Sep 20 12:16:13 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK.cpp (enable, disable):
-
- Removed unreachable "return" statements. [Bug 1033]
-
- * ace/SSL/SSL_SOCK_Stream.i (ACE_SSL_SOCK_Stream):
- * ace/SSL/SSL_SOCK_Stream.cpp:
-
- Moved constructor to the ".cpp" file since to prevent inclusion
- of `ace/Log_Msg.h' in `SSL_SOCK_Stream.h'. This fixes problems
- with some platforms needing the Log_Msg include to pull in the
- ACE_ERROR macros without needlessly increasing inter-header
- dependencies and inclusions. [Bug 1034]
-
-Thu Sep 20 14:44:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (ACE_Process_Options): Moved avoid_zombies_
- initialization outside the !Win32 section. Thanks to Johnny
- Willemsen <johnny.willemsen@meco.nl> for this fix.
-
-Thu Sep 20 06:28:50 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-hpux-11.00.h:
-
- Reverting the change from "Wed Aug 29 15:32:10 2001 Douglas C.
- Schmidt <schmidt@macarena.cs.wustl.edu>". HP-UX 11.00 does
- not actually support pread/pwrite.
-
-Wed Sep 19 16:56:02 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h (THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM): Added
- definitions for THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM on
- platforms that do not support threads.
-
-Wed Sep 19 16:54:04 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Containers_T.cpp:
-
- In copy constructor for ACE_Double_Linked_List, added line to
- copy the size of the rhs to the lhs. The new list was ending
- up with a garbage value for its size.
-
-Wed Sep 19 14:15:08 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Enabled generation of debug info even for
- release configurations. Thanks to Jonathan Reis
- <reis@stentor.com> for suggesting this.
-
-Wed Sep 19 10:23:06 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * html/index.html:
- Add couple of missing links to the RT-CORBA components
-
-Wed Sep 19 12:00:04 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ACE-INSTALL.html:
- Added BCB5 to some places as supported/used compiler
-
- * ace/Future.h:
- * ace/Test_and_Set.h:
- Removed the ACE_EXPORT from the templates ACE_Future_Holder and
- ACE_Test_and_Set
-
- * ace/Service_Config.{h,cpp}:
- Changed the type of the members be_a_daemon_ and no_static_svcs_
- from char to int
-
-Tue Sep 18 13:57:36 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * */Makefile:
- * */Makefile.*:
- Updated dependencies, some of the paths were absolute leading to
- ambiguities in parallel builds.
-
-Tue Sep 18 12:18:26 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/footprint_stats.sh:
- Fixed bug in footprint charts generation.
-
-Tue Sep 18 10:50:15 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * html/index.html:
- Add COS Event and COS Notification services to the index.
-
-Mon Sep 17 19:00:00 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h:
-
- - THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM were not defined
- for NT. Added them.
-
- - Moved the following definitions of VxWorks around such
- that these defines are available even when PACE is not
- used.
-
- THR_INHERIT_SCHED
- THR_EXPLICIT_SCHED
- THR_SCHED_IO
- THR_SCOPE_SYSTEM
- THR_SCOPE_PROCESS
-
- * ace/OS.cpp: LinuxThreads do not have support for
- PTHREAD_SCOPE_PROCESS; only PTHREAD_SCOPE_SYSTEM is supported.
- Therefore, PTHREAD_SCOPE_PROCESS is ignored when setting the
- thread scheduling scope.
-
- * ace/Sample_History.cpp: Added accessors for <sample_count> and
- <max_samples>.
-
- * bin/auto_run_tests.lst: Added new RTCORBA tests. Removed
- Minimum CORBA dependency on these tests.
-
-Mon Sep 17 13:49:07 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * etc/tao_cosevent.doxygen:
- * etc/tao_cosnotification.doxygen:
- Add new Doxygen files for the Notification and COS Event
- Services
-
- * bin/generate_doxygen.pl:
- Add new doxygen files to the automatically generated
- documentation.
-
-Mon Sep 17 11:36:54 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_tests.lst: This is the script used by the shell
- script in that directory. As the name is confusing this is being
- moved as a new file.
-
- * tests/run_tests_remote.lst: Renamed the run_tests.lst as
- run_tests_shell.lst. This is invoked by run_tests.sh
-
- * tests/run_tests.sh: Renamed as a new file.
-
- * tests/run_tests_remote.sh: Renamed the file run_tests.sh as this
- one. This script can be used to run tests remotely on a
- CHORUS/ClassiX/MVME targets. Further this can also be used to
- run tests on platforms that dont support perl or do not have
- perl.
-
-Sun Sep 16 11:19:01 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.20 released.
-
-Sat Sep 15 16:58:08 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/High_Res_Timer_Test.cpp: Fixed compile problem with Sun CC
- 4.2.
-
-Fri Sep 14 05:28:13 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * THANKS: We now have over 1,300 contributors to ACE+TAO!
-
- * ace/Basic_Types.{h,i}: Added "const" to various operators and
- methods. Thanks to Alain Decamps for reporting this.
-
-Thu Sep 13 11:02:41 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Singleton.cpp: If we're not compiling with threading enabled,
- don't call the get_singleton_lock() code. Thanks to Charles
- Frasch <cfrasch@spawar.navy.mil> for contributing this.
-
-Tue Sep 11 06:23:08 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Array_Base.h: Changed current_ from u_int to size_t. Thanks
- to Johnny Willemsen for reporting this.
-
-Fri Sep 14 17:18:37 2001 Steve Huston <shuston@riverace.com>
-
- * tests/High_Res_Timer_Test.cpp (check_micro_nano): If the
- nanointerval is 0, change it to 1 to prevent divide-by-zero.
-
-Fri Sep 14 17:02:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/High_Res_Timer_Test.cpp: Replaced some (u_int) casts with
- ACE_U64_TO_U32, which is correct. Thanks to Alain Decamps, yet
- again!, for this fix.
-
-Fri Sep 14 11:39:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Mahesh Varadarajan and Kevin Clien to the Hall of
- Fame.
-
-Thu Sep 13 22:43:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the new Cache_Growth_Test to the
- daily tests.
-
-Thu Sep 13 20:38:44 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.h (ACE_Thread_Manager): Changed the default
- argument <prealloc> for the constructor from 0 to
- ACE_DEFAULT_THREAD_MANAGER_PREALLOC. Thanks to Doug for
- pointing this out.
-
- Added better documentation to explain the purpose of each
- argument in ACE_Thread_Manager's constructor. Thanks to Nick
- Pratt <npratt@microstrategy.com> for motivating the change.
-
-Thu Sep 13 13:38:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds),
- elapsed_time_incr (ACE_hrtime_t&nanoseconds): Instead of using
- "nanoseconds >>= 10", use "nanoseconds = nanoseconds >> 10" to
- work around a Borland C++Builder bug. Thanks very much to
- Johnny Willemsen, Christopher Kohlhoff, and Alain Decamps
- for solving this problem.
-
-Thu Sep 13 13:33:29 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Service_Config_Test.cpp: Added #include "ace/Log_Msg.h".
- This was probably to get AIX to build clean, but it's been a
- while.
-
-Thu Sep 13 12:04:04 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Werner Buchert to the Hall of Fame.
-
-Wed Sep 12 15:10:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds),
- elapsed_time_incr (ACE_hrtime_t&nanoseconds): Changes to account
- for very fast clocks (> 1GHz). Thank you to Derek Dominish
- <derek.dominish@boeing.com> and Alain Decamps
- <Alain.Decamps@PIDPA.be> for identifying the problem and coming
- up with a good solution. This fixes Bugzilla #1024 (how
- appropriate! ;-)
-
- * ace/High_Res_Timer.i (elapsed_microseconds (ACE_hrtime_t &usecs):
- More adjustment to the Win32 scale factor adjusting. Thanks (again!)
- to Alain Decamps <Alain.Decamps@PIDPA.be> for identifying and
- supplying a fix for this. This fixes Bugzilla #948 (again).
-
-Wed Sep 12 14:33:29 2001 Steve Huston <shuston@riverace.com>
-
- * tests/High_Res_Timer_Test.cpp: Incorporated some additional tests
- for usec/nsec sanity checks on the calculated ACE_High_Res_Timer
- values. Thank you very much to Alain Decamps
- <Alain.Decamps@PIDPA.be> for this test.
-
-Tue Sep 11 12:40:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Terror unleashed. The World Trade Center and the Pentagon
- attacked today. Looks like there could be lots of loss to
- precious lives. This is too horrible. We convey our condolences
- to the bereaved families. God save this world.
-
-Tue Sep 11 06:41:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: Fixed a
- typo. This should fix most of the errors in the scoreboard.
-
-Mon Sep 10 18:59:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.cpp (nonblk_put):
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (nonblk_put):
- Reverted Bala's changes below since the original code was
- correct. Also, added comments to clarify things to prevent
- confusion in the future.
-
-Mon Sep 10 17:31:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added a new platform to the list.
-
-Mon Sep 10 12:54:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp:
- Changed the condition that checks for EWOULDBLOCK after a
- send. It was erroneously written. Thanks to Nick Pratt
- <npratt@microstrategy.com> for pointing this out.
-
-Mon Sep 10 12:36:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.cpp (nonblk_put): Changed the condition
- that checks for EWOULDBLOCK after a send. It was erroneously
- written. Thanks to Nick Pratt <npratt@microstrategy.com> for
- pointing this out.
-
-Mon Sep 10 08:17:08 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Will not run the File_IO test in the
- Minimum CORBA configuration.
-
-Mon Sep 10 08:05:39 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Prevented the DLL_ORB test from running
- in static builds.
-
-Sun Sep 9 10:20:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * */Makefile: Updated dependencies.
-
-Sun Sep 9 08:43:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Handle_Set.i: Added a check in set_bit () and clr_bit () for
- ACE_INVALID_HANDLE. If we pass a ACE_INVALID_HANDLE we were
- crashing which is not good and hence the fix.
-
-Sun Sep 9 08:28:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor_Impl.h:
- * ace/Select_Reactor_Base.h:
- * ace/Select_Reactor_Base.cpp (is_dispatchable): Added a new
- method. This method, just figures out whether the buffer has any
- dispatchable info or not.
-
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp: Added the above method in the WFMO
- Reactor.
-
- * ace/TP_Reactor.cpp: The handle_notify_events () method now
- checks whether the buffer it has read is dispatchable or not. If
- it is then it gives up the token to make an upcall. Else, it
- just sits around to remove messages of the pipe, till it find
- one with a dispatchable info. The fix was necessary so that
- wake-up calls that are unanswered are removed of the
- pipe. Unanswered wakeup calls were filling up the pipe and they
- were blocking some application from writing further to the
- pipe. This should be in all probability be the final fix to the
- Reactor.
-
-Sat Sep 8 09:34:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Fixed a typo that was giving
- compile errors in VXWORKS builds.
-
-Fri Sep 7 16:40:37 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/OS.h:
- Added an if-def case for IP_MULTICAST_TTL too.
-
-Fri Sep 7 17:09:04 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Resume_Test.cpp: Initialised the lock
- to null in the constrcutor before allocating memory for
- it. This was done to remove the ABW errors in
- purify. This should remove the problem that we see with this
- test in our daily builds with SunCC 4.2.
-
-Fri Sep 7 15:51:48 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Included Auto_Ptr.h.
-
-Fri Sep 07 15:29:37 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp::
- * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp:
-
- * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp::
- * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp:
-
- * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp:
- * examples/QOS/Simple/Fill_ACE_QoS.cpp:
-
- Fixed compile errors.
-
-Fri Sep 7 14:17:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Do not clear the notify handle bit when
- trying to dispatch notify calls. This shoudl fix the long
- pending problems with TRU 64 builds.
-
-Fri Sep 07 12:12:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Iterative_Logging_Server.dsp:
- * examples/C++NPv1/Logging_Client.dsp:
- * examples/C++NPv1/Process_Per_Connection_Logging_Server.dsp:
- * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.dsp:
- * examples/C++NPv1/Reactive_Logging_Server.dsp:
- * examples/C++NPv1/Reactive_Logging_Server_Ex.dsp:
- * examples/C++NPv1/Thread_Per_Connection_Logging_Server.dsp:
- Use relative paths to include and library files rather than
- $(ACE_ROOT). Makes it easier to use in place regardless of
- ACE version.
-
- * examples/C++NPv1/Logging_Client.cpp: Fixed scoping of the getline()
- method call.
-
-Thu Sep 6 21:14:05 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Changed the usage of auto_ptr
- <> to ACE_Auto_Basic_Ptr<>. Thanks to Carlos O'Ryan for this
- suggestion.
-
-Thu Sep 06 18:42:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1: New directory that contains all of the example
- code for Doug/my book, C++ Network Programming, Vol 1.
-
-Thu Sep 6 12:01:15 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/OS.h:
- Added a if-def case for IP_MULTICAST_IF. Seems like it is not
- defined in some of the OS versions.
-
-Thu Sep 06 12:36:43 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/QoS/QoS_Session_Impl.cpp:
- * ace/QoS/QoS_Session.h:
-
- Fixed compile errors.
-
-Thu Sep 6 10:24:15 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Acceptor.cpp (accept_svc_handler):
- * ace/Strategies_T.cpp (accept_svc_handler):
-
- Do not close and reopen the peer acceptor on failed attempts to
- accept a connection. Several problems were fixed by removing
- this code:
-
- - A race condition existed where another thread or process
- could acquire the port that the peer acceptor was
- listening on before it was closed. Note that it is not
- enough to attempt to synchronize this code with a lock
- since an external process could still acquire the port.
-
- - If the port in the peer acceptor (assuming it is an
- ACE_INET_Addr based one) is the wildcard port (zero), then
- there is no guarantee that the acceptor will be opened on
- the same port upon which it is was previously listening.
- In such a case, IORs generated by TAO (for example) can be
- rendered invalid since the addressing information embedded
- in those IORs will no longer contain the actual port to
- connect to when making invocations. [Bug 962]
-
- - The above two problems actually introduced a
- denial-of-service attack vulnerability (now closed by this
- fix) since it was relatively easy to force a failed
- connection attempt, which would then cause the peer
- acceptor to be reopened on potentially a different port,
- or to shutdown completely if reopening failed.
-
- * ace/SSL/SSL_SOCK_Acceptor.i (close):
-
- Invalidate the handle stored within the ACE_SSL_SOCK_Acceptor
- instance. Corrects problems arising from attempts to use a
- listening socket that has been shut down.
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- Perform an OpenSSL SSL_accept() in case OpenSSL buffered data
- that must be handled before entering the Reactor event loop used
- to complete a non-blocking SSL passive connection.
-
- If the OpenSSL error status is SSL_ERROR_ZERO_RETURN shut down
- the partially initialized SSL stream/session since the peer has
- itself shut down.
-
-Thu Sep 6 11:00:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: The timer events are not included as a part
- of number of active handles from wait_for_multiple_events
- (). The check for event_count > 0 before processing timer events
- was wrong. Removed the check. Thanks to Chad Elliott for
- pointing this out.
-
- Further did some cosmetic changes like adding comments, removing
- comments that was not valid etc.
-
-Thu Sep 6 07:50:56 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: The AMI buffering test should not be run
- Single threaded builds.
-
-Thu Sep 6 02:30:14 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * examples/Export/Makefile.bor:
- * examples/Export/export_dll.bor:
- * examples/Export/test.bor:
- * examples/Export/dll.h:
- Added makefiles for this example and fixed a template problem with
- Borland C++. Thanks to Charles Frasch <cfrasch@spawar.navy.mil> for
- contributing this.
-
-Wed Sep 5 19:48:34 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram.cpp (set_nic):
- Fixed the errors that raised in Win.
-
-Wed Sep 5 20:38:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/QoS/QoS_Session_Impl.cpp:
- * ace/QoS/QoS_Session.h: Reverted the change "Wed Sep 5 18:58:00
- 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>". The change
- broke builds. Further there was no reason why the QoS
- information should come inside OS.* files. Talk about increasing
- foot print.
-
-Wed Sep 5 18:58:00 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/QoS/QoS_Session.h:
- * ace/QoS/QoS_Session_Impl.h:
- * ace/QoS/QoS_Session_Impl.cpp:
-
- Added rapi_sender and rapi_reserve calls with null tspec and
- flow spec respectively to facilitate the tearing down of PATH
- and RESV messages.
-
- * ace/OS.h:
- * ace/OS.i:
-
- Changed the sending_flowspec_ and receiving_flowspec_ members of
- the ACE_QoS class to pointers so they can be initialized to null
- flow specs.
-
-Wed Sep 5 16:50:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Peter Phillips <pphillip@opentext.com> to the Hall
- of Fame.
-
- * ace/OS_String.cpp: Fixed a warning in TRU64 builds.
-
-Wed Sep 5 11:29:59 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram.h:
- * ace/SOCK_Dgram.cpp:
-
- Added a new method to set the NIC address in the socket.
-
-Wed Sep 05 12:00:42 2001 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix4_g++.GNU: Sets ACE_AIX_VERS rather
- than separate major/minor; see entry below for further info.
-
-Wed Sep 05 11:52:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix5.1.h: New config file for AIX 5L, version 5.1,
- using Visual Age C++ 5.
-
- * ace/config-aix-4.1.x.h:
- * ace/config-aix-4.2.x.h:
- * ace/config-aix-4.3.x.h:
- * ace/config-aix-4.x.h: Use ACE_AIX_VERS (which has both major and
- minor version) rather than ACE_AIX_MAJOR_VERS and ACE_AIX_MINOR_VERS.
-
- * include/makeinclude/platform_aix_ibm.GNU: Rather than making
- separate major/minor OS version variables, use one that incorporates
- both to make it easier for config.h files to set upwardly-compatible
- feature flags.
-
-Wed Sep 5 06:55:44 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/Log_Msg_Test.cpp:
-
- Add ACE_TEXT() around the default program name for the Windows
- WChar Unicode build.
-
-Tue Sep 4 18:48:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Changed the value returned from
- ACE_Select_Reactor_Notify_Handler::handle_input (). This now
- returns a 0 if we did not dispatch any handles or the number of
- handles dispatched. We were returning a -1 if we did not
- dispatch any handles, after reading the notification from the
- pipe. This should fix the Reactor_Notify_Test in the Implicit
- templates build.
-
-Tue Sep 4 12:46:50 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Reverted this change "Tue Sep 4 07:37:17 2001
- Balachandran Natarajan <bala@cs.wustl.edu>". Thanks to Irfan
- for pointing that this change, changes the semantics of the
- methods.
-
-Tue Sep 4 09:14:36 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
-
- Work around a compiler bug in the latest Green Hills Multi200.
- Casting a float to an ACE_CDR::ULong* caused internal compiler
- errors if the code was inlined.
-
- * ace/config-vxworks5.x.h:
- * include/makeinclude/platform_vxworks5.x_ghs.GNU:
-
- Updated support for Green Hills Multi2000.
-
-Tue Sep 4 07:41:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Eyal Neuman <eyal@tradertools.com> to the Hall of
- Fame.
-
-Tue Sep 4 07:37:17 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Fixed a bug with recv_n_i (). The problem was form
- returning the exact number of bytes from the for loop. If the
- loop had executed once and if we get 0 in the next recv_i ()
- call, then we should be returning the number of bytes read in
- the previous iteration and not 0. Thanks to Eyal Neuman
- <eyal@tradertools.com> for this fix. This closes bug 1015.
-
-Tue Sep 4 07:08:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Fixed a unicode error in teh Win32 builds. Acted as
- a dumbo when I made this change yesterday:(
-
-Mon Sep 3 20:08:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Fixed a warning in TRU 64 builds.
-
-Mon Sep 3 09:58:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * */Makefile: Updated dependencies
-
-Mon Sep 3 09:44:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a warning in Implicit
- template builds.
-
-Mon Sep 3 08:21:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Replaced L with ACE_TEXT_WIDE.
-
-Mon Sep 3 07:54:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS_String.cpp: Fixed compile errors in win32 builds. Thanks
- to Johnny Willemsen for sending in patches for replacing L with
- ACE_TEXT_WIDE.
-
-Sun Sep 2 19:33:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a small problem with the
- select reactor's notify () handling mechanism. This was more of
- a problem with me not checking the while () loop condition
- properly. This should fix most of the reactor problems seen in
- the daily builds.
-
-Sat Sep 1 14:10:08 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/System_Time.cpp,
- * ace/Stream_Modules.cpp,
- * ace/Service_Types.cpp,
- * ace/Service_Manager.cpp,
- * ace/SPIPE_Addr.cpp,
- * ace/OS.cpp,
- * ace/Memory_Pool.cpp,
- * ace/Mem_Map.cpp,
- * ace/Local_Name_Space_T.cpp,
- * ace/FILE_Addr.cpp,
- * ace/FIFO.cpp,
- * ace/Connector.cpp,
- * ace/Acceptor.cpp,
- * ace/Token_Collection.cpp,
- * ace/Name_Request_Reply.cpp,
- * ace/Local_Tokens.cpp,
- * ace/ACE.cpp,
- * ace/Log_Record.cpp,
- * ace/Log_Msg.cpp: Added the use of the new ACE_OS::strsncpy()
- method. Thanks to Alain for reporting this.
-
- * ace/OS_String.{h,cpp}: Added a "safe" c string copy method:
- strsncpy(dst,src,maxlen). Changing an occurence off strncpy()
- to strsncpy() is less errorprone, but could break somebody's
- code if he/she is using the fact that the strncpy's where
- nul-padding the destination, but this is extremely
- unlikely. Using strsncpy() is also almost always (a lot) faster
- than strncpy(). Thanks to Alain Decamps
- <Alain.Decamps@PIDPA.be> for this method.
-
-Sat Sep 1 09:54:55 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Bound_Ptr_Test.cpp: Added a patch from Chris Kohlhoff that
- fixes the problem with VXWORKS builds. The old gcc compiler
- seems to have problems with forward declared types as template
- parameters. Chris solves the problem by defining a ABC properly
- and making the offending class inherit from it. This should fix
- our daily VXWORKS builds.
-
-Sat Sep 1 08:07:51 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a compilation error in the
- Notification queue portion of the code. Thanks to our daily
- builds for helping me with this testing.
-
-Fri Aug 31 22:12:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp:
- * ace/Select_Reactor_Base.cpp: Fixed fuzz errors.
-
-Fri Aug 31 22:07:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp: Added the method read_notify_pipe () to
- the WFMO_Notify_Handler.
-
-Fri Aug 31 19:14:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor_Impl.h: Added a new method by name read_notify_pipe
- (). Also changed the dispatch_notify () to take in a
- Notification buffer instead of a ACE_HANDLE.
-
- * ace/Select_Reactor_Base.cpp:
- * ace/Select_Reactor_Base.h: Made the following changes
-
- - Implemented read_notify_pipe (). Will read just one message from
- the notify pipe or one message from the notification queue.
-
- - Reimplemented dispatch_notify (). This method would just
- dispatch the upcall using the information in the notification
- buffer.
-
- - The handle_input () now uses the read_notify_pipe () and
- dispatch_notify () to achieve what it was doing before.
-
- - The notify () call now sends one notify message on the pipe
- for every message in the notification queue.
-
- * ace/TP_Reactor.cpp (handle_socket_events):
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.i: We had a race condition. The race condition
- was because two threads were trying to read from the notify_pipe
- at the same instance. This race condition was fixed by adding a
- call to read_notify_pipe () with the lock held and then calling
- dispatch_notify () with the buffer read after releasing the
- lock. Did the following minor modifications
-
- - Changed dispatch_socket_events () as dispatch_socket_event ()
- as we were dispatching only one event.
-
- - We dont grab the token in the constructor of the token. We
- have to make a call specfically to grab_token () to get the
- token.
-
- The above checkins should fix the correctness of the reactor
- problems that we have been seeing.
-
-Fri Aug 31 18:30:28 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added Blocking_Sync_None to the list of tests to be run on
- Tru64.
-
- * ACE-INSTALL.html:
-
- Added Linux/IA64 to the list of platforms supported.
-
-Fri Aug 31 15:27:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Bound_Ptr.i: Fixed a problem with Sun CC42 builds. Used 1
- instead of true.
-
-Fri Aug 31 14:57:42 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Fixed usage of ACE_SYNCH meta-class
- to work correctly with templates.
-
-Fri Aug 31 11:53:05 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/Timer_Queue_T.h:
- * ace/Timer_Queue_T.h:
- * ace/config-hpux-11.00.h:
- * ace/config-hpux11.h:
- * ace/config-irix6.x-common.h:
- * ace/config-linux-common.h:
- * ace/config-lynxos.h:
- * ace/config-osf1-4.0.h:
- * ace/config-pharlap.h:
- * ace/config-sunos4-g++.h:
- * ace/config-sunos4-lucid3.2.h:
- * ace/config-sunos4-sun3.x.h:
- * ace/config-sunos4-sun4.1.4.h:
- * ace/config-sunos4-sun4.x-orbix.h:
- * ace/config-sunos5.4-centerline-2.x.h:
- * ace/config-sunos5.4-g++.h:
- * ace/config-sunos5.4-sunc++-4.x-orbix.h:
- * ace/config-sunos5.4-sunc++-4.x.h:
- * ace/config-sunos5.5.h:
- * ace/config-tandem.h:
-
- Fixed up documentation of ACE_TIMER_SKEW. Fixed bogus values in
- all the above files. Should help in removing some of the errors
- in TAO tests. Any test in ACE/TAO which breaks because of this
- change is broken and should be fixed.
-
-Fri Aug 31 12:00:00 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Bound_Ptr_Test.icc: New Visual Age C++ config for this test.
- * tests/tests.icp: Added Bound_Ptr_Test.icc, Service_Config_Test.icc,
- and libService_Config_DLL.icc.
-
-Fri Aug 31 11:40:31 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.(cpp h): Fixed single-threaded builds.
-
-Fri Aug 31 08:13:26 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/perltest2cpp.pl:
-
- Added a -t option to set the timeout factor.
-
-Thu Aug 30 18:08:32 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-linux-common.h:
-
- Added some more missing stuff which might break compilations.
- The previous change also removed the existing definition for
- ACE_TIMER_SKEW so add it back till the new version is checked in.
-
-Thu Aug 30 17:54:40 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-linux-common.h:
-
- This file was checked in inadvertently when checking in fixes
- for ACE_NEEDS_HUGE_THREAD_STACKSIZE.
-
-Thu Aug 30 13:04:38 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.lst: Added Bound_Ptr_Test.
-
-Thu Aug 30 11:40:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.pl (run_program): Fixed the 'unlink' to get
- all of a test's log files; prevents seeing previous sub-logs
- from a test such as MEM_Stream_Test and falsely reporting errors.
-
-Thu Aug 30 10:46:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.cpp (global_scale_factor ()): When checking for
- a high-res timer mechanism, don't set the global_scale_factor_status_
- away from 0 until _after_ getting the scale factor, to avoid
- a second parallel thread from using a bogus value. Thanks very much
- to Alain Decamps for this fix.
-
-Thu Aug 30 09:30:19 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/Log_Msg_Test.cpp:
-
- Fix for VxWorks when ace_main() is called with argc == 0.
-
- * tests/run_test.lst:
-
- Update the list of tests that run on VxWorks.
-
- * tests/Makefile:
- * tests/run_test.pl:
-
- Update the script to output VxWorks commands to a file.
-
-Thu Aug 30 09:58:38 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.i (elapsed_microseconds): For Win32, isolate the
- msec modulus before converting it up to usecs. Thanks to Francois
- Rioux <rioux01@gel.ulaval.ca> for reporting this.
-
-Thu Aug 30 00:42:41 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/Service_Config.cpp:
- Service_Object instances are now inserted into the Service_Repository
- only after they have been successfully initialised, to provide better
- support for recursive use of the service configurator. With this
- change, a service loaded from 'inside' another services's init() will
- be inserted into the repository first and unloaded last. This ensures
- that any recursively loaded services on which the original service
- depends still exist when the original service's fini() function is
- called.
-
-Thu Aug 30 00:27:05 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ChangeLog:
-
- Removed bogus files from the previous entry. I should not play
- around with a lot of tasks at once.
-
-Wed Aug 29 19:57:29 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h:
-
- Remove definition of ACE_NEEDS_HUGE_THREAD_STACKSIZE. The
- default value seems to be good enough.
-
- * ace/config-vxworks5.x.h:
- * ace/config-lynxos.h:
- * ace/config-qnx-neutrino.h:
- * ace/config-rtems.h:
-
- Standardized the values to 64KB on these platforms. Don't know
- if these platforms need it. But I don't have access to any of
- these so playing it safe.
-
-
-Wed Aug 29 18:52:12 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * tests/Bound_Ptr_Test.cpp:
- Removed a stray asterisk that was causing compilation failures.
-
-Wed Aug 29 17:54:52 2001 Steve Huston <shuston@riverace.com>
-
- * tests/libDLL_Test.icc:
- * tests/libService_Config_DLL.icc: Fixed the "run after" directives
- to correctly build the lib*.a files. Also, fixed the cleanup
- directives to properly clean up both .a and shr.o files.
-
-Wed Aug 29 15:32:10 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/config-aix-4.x.h:
- * ace/config-hpux-11.00.h:
- * ace/config-osf1-4.0.h: Added better support for pread()/pwrite().
- Thanks to Steve Vranyes <steve.vranyes@veritas.com> for these fixes.
-
-Wed Aug 29 15:47:33 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.lst: Re-enabled MEM_Stream_Test.
-
-Wed Aug 29 12:15:01 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Added Bound_Ptr.* to the projects.
-
- * tests/tests.dsw:
- * tests/Bound_Ptr_Test.dsp: Added a new project for
- Bound_Ptr_Test.
-
-Wed Aug 29 11:01:22 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Fixed a cut/paste error and now runs the
- proper number of threads/processes for the MT case, avoiding a
- hang.
-
-Wed Aug 29 07:08:23 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/run_tests.lst:
- * tests/Makefile
- * tests/Makefile.bor
- * ace/Makefile
- * ace/Bound_Ptr.{h,i}
- * tests/Bound_Ptr_Test.cpp
- * examples/Smart_Pointer: Added a pair of new smart pointer classes,
- ACE_Strong_Bound_Ptr and ACE_Weak_Bound_Ptr. Thanks to
- Christopher Kohlhoff <chris@kohlhoff.com> for contributing
- these.
-
-Tue Aug 28 17:51:19 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.pl: If a test has log files associated with the
- main log of the form <test>-<other>.log, e.g. MEM_Stream_Test-331.log
- the check_log function will scan those for errors/warnings too.
-
-Tue Aug 28 16:48:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i: We (the current thread) should not release the
- token unless we own it. This simple mistake just took 3 days to
- figure out. An 'if' condition was mixing and have added
- it. Shows how a small problem at lower levels can take days to
- fix.
-
-Tue Aug 28 17:45:22 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Fixed compile warning on gcc.
-
-Tue Aug 28 13:16:31 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/vxworks_modify.pl:
- * bin/perltest2cpp.pl:
-
- Generated c++ files now pass the fuzz check.
-
-Tue Aug 28 11:02:08 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
-
- Renamed the GCC 3.0 build to "Debian_GCC_3.0.1." since we're
- actually compiling with GCC 3.0.1, not GCC 3.0. The latter has
- bugs that prevent it from compiling ACE/TAO at the "-O3"
- optimization level.
-
-Tue Aug 28 10:19:18 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- Corrected Borland warning using a more efficient fix (i.e. less
- function calls).
-
-Tue Aug 28 10:36:10 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/vxworks_modify.pl:
- * bin/perltest2cpp.pl:
-
- Added these scripts for use with VxWorks and the newly added TAO
- TestUtils. These scripts modify c++ and perl to generate
- "one-button" modules for TAO testing on VxWorks.
-
-Tue Aug 28 11:07:26 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Be sure to close the stream from the
- client end.
-
-Mon Aug 27 20:16:38 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_test.lst: Removed the MEM_Stream_Test from the daily
- builds as they were hanging. This was causing the builds to
- choke. I will keep Steve Huston informed on this so that he can
- reenable them once he has fixed the test.
-
-Mon Aug 27 18:33:59 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB):
-
- Removed the stray yoda part of LIST which is causing the wrong
- results to show up.
-
-Mon Aug 27 18:14:38 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB):
-
- Added the IA-64 builds back again. We now have a faster machine
- running a better version of Linux.
-
-Mon Aug 27 09:39:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.i (get_dispatch_info):
- * ace/Timer_Queue_T.h: Fixed the compile problem in VXWORKS
- builds. How could I forget that there are a few compilers which
- cannot grok traits?
-
-Mon Aug 27 09:39:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * examples/Makefile.bor:
- * examples/NT_Service/Makefile.bor
- Added BCB makefile for this example
-
-Sun Aug 26 22:08:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i: Reordered methods to fix warnings in TRU 64
- builds.
-
-Sun Aug 26 20:50:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i: Fixed a warning (hopefully) in
- Borland builds. The warning was because a temporary variable was
- created.
-
-Sun Aug 26 20:45:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp: Fixed a unused variable warning in
- Borland.
-
-Sun Aug 26 08:13:12 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/test_config.h: Added a new ACE_CLOSE_TEST_LOG macro. Thanks to
- Edan for this.
-
-Sun Aug 26 09:07:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Fixed a compile error with SunCC4.2
-
-Sun Aug 26 08:28:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.cpp: Fixed a warning from an unused variable
- reported by KCC compilers.
-
-Sun Aug 26 08:13:12 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Applied the following fixes from
- Edan:
-
- - Included ace/Logging_Strategy.h
- - Addition of -w switch to enable initial wipeout of logfile
- - Removal of the redundant ACE_LOG_MSG->open()
- - Explicitly close the previous log before applying the changes to the
- ACE_LOG_MSG
- - Moved remove_files() call higher, just before logfile close
-
- * ace/Logging_Strategy.{h,cpp}: Added the following fixes from
- Edan Ayal:
-
- - Logging_Strategy now supports any ACE_Log_Msg, not just the
- ACE_LOG_MSG singleton.
- - Added a check for success (ios::goodbit) of new ofstream
- creation.
- - Changed default values for max_size and interval. Now the
- default interval is 10 minutes (instead of 0) and the default
- log file size is 0 (was 16K). The timer is now activated only
- if both are non-zero.
- - Added a mutator to set the ACE_Log_Msg to work with, and a
- member variable
- - Added definition for ACE_DEFAULT_LOGFILE_POLL_INTERVAL
- - Removed definition of ACE_DEFAULT_MAX_LOGFILE_SIZE
-
- * ace/Log_Record.{h,cpp}: Enhanced this implementation to (1)
- be consistent with recent changes to Log_Msg.h and (2) to
- replace problematic use of strncpy(). Thanks to Alain
- Decamps for these fixes.
-
-Sat Aug 25 20:58:22 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/FILE_IO.i (send_n): Changed to use ACE::write_n to send the
- chain of Message_Blocks. The originally used ACE::send_n was
- causing problem on NT because send_n was restricted for sockets
- I/O on NT. Thanks to Doug for pointing this out.
-
-Sat Aug 25 10:16:21 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Svc_Handler_Test.cpp (main): The destructor of svc_handler
- will close file_io, so we don't need to do it explicitly!
-
- * ace/Log_Msg.cpp (log): Changed range check from
-
- this->msg_ + ACE_Log_Record::MAXLOGMSGLEN
-
- to
-
- this->msg_ + sizeof this->msg_
-
- to correspond to the change below.
-
- * ace/Log_Msg.h (ACE_Log_Msg): Increased the size of the buffer
- used to store log records to account for the NUL-terminator.
-
- * tests/Svc_Handler_Test.cpp (main): Changed the buffer size
- and NUL-terminated the buffer so that things print correctly.
- Thanks to Nanbor for finding this.
-
-Sat Aug 25 09:00:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp:
- * ace/TP_Reactor.h (ACE_TP_Reactor): Fixed a warning in KCC
- builds.
-
-Sat Aug 25 08:42:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Configuration_Import_Export.cpp: Fixed warnings with g++. I
- am not sure how this fix will be accepted on different
- compilers. Things are always dicy when you want to delete a
- void *.
-
-Fri Aug 24 23:29:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added File_IO test to our daily builds.
-
-Fri Aug 24 23:12:15 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp (dispatch_notify): Fixed a compile error on
- MSVC.
-
-Fri Aug 24 23:07:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Configuration_Import_Export.cpp: Fixed a compile error with
- g++.
-
-Fri Aug 24 21:55:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/QoS/QoS_Session_Impl.cpp:
- Check for null parameters in rsvp_callback().
- Thanks to Yamuna Krishnamurthy <yamuna@cs.wustl.edu>.
-
-Fri Aug 24 20:32:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Changed this test to use multiple
- processes on any platform without ACE_LACKS_FORK. It actually
- could be broader than this if desired. This is motivated by the
- fact that HP-UX can't mmap() (the call underlying ACE_MEM_IO)
- the same file more than once in the same process. With this,
- MEM_Stream_Test goes a lot better on HP-UX, though not perfectly
- yet.
-
-Fri Aug 24 16:54:02 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.h (recv_i):
-
- Added a timeout parameter. See below for details.
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- Perform an SSL_read() before attempting to block on select()
- with a timeout. OpenSSL may buffer more data than requested
- since it is a record-oriented protocol. Fixes a problem where
- subsequent calls to ACE_SSL_SOCK_Stream::recv() could timeout
- when needlessly blocking on select() because the expected data
- has already been buffered by OpenSSL. Thanks to Martin
- Krumpolec <krumpo@pobox.sk> for reporting and diagnosing the
- problem. [Bug 1006]
-
- * ace/SSL/SSL_SOCK_Stream.cpp (recv):
-
- Moved the timed recv() code to the lower level recv_i() method
- since timeout support must now be more tightly integrated with
- do/while(SSL_pending()) SSL_read() loop.
-
-Fri Aug 24 18:33:09 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Parse_Node.cpp (ACE_Function_Node): Make sure to dynamically
- allocate the pathname_ so we can delete it! Thanks to
- Don Hinton for reporting this.
-
- * ace/Configuration_Import_Export.cpp: Changed a couple of
- delete (char *) buf to delete (char *) [] buf. Thanks to
- Don Hinton for reporting this.
-
-Fri Aug 24 16:10:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- Merged in changes from the reactor_deadlock branch. This set of
- changes actually fixes a long standing problem with the
- TP_Reactor. The TP_Reactor was holding the token too long and
- this created all sorts of problems for TAO. The changes have been
- merged from the branch <reactor_deadlock> and here are the relevant
- ChangeLog entries.
-
- Fri Aug 24 14:59:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (dispatch_socket_events): Cosmetic changes.
-
- Fri Aug 24 14:19:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.i:
- * ace/Timer_Queue_T.h:Removed the default constructor and
- destructor for ACE_Timer_Node_Dispatch_Info_T allowing the
- compiler to do the job.
-
- Fri Aug 24 12:05:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.cpp: Removed some vague debug statements.
-
- Fri Aug 24 11:34:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.h:
- * ace/Timer_Queue_T.cpp:
- * ace/Timer_Queue_T.i: Added a new class
- ACE_Timer_Node_Dispatch_Info_T that has the dispatch information
- needed to make the upcall. Added methods, dispatch_info () and
- dispatch_info_i () in ACE_Timer_Queue_T. These methods return
- the dispatch information if there is a node in the queue whose
- timer value <= current time. Changed the expire () method to use
- this method to get dispatch information.
-
- * ace/Timer_Queue.h: Added a template specialisation for
- ACE_Timer_Node_Dispatch_Info_T.
-
- * ace/Timer_Queue.cpp: Added template instantiations for the
- specialisation.
-
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp: Added a new method handle_timer_events ()
- that would handles timer events.
-
- Thu Aug 23 11:50:18 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor_Impl.h: Added two new methods notify_handle () and
- dispatch_notify () to the ACE_Reactor_Impl class.
-
- * ace/Select_Reactor_Base.h:
- * ace/Select_Reactor_Base.cpp: Implemented the above two
- methods in the ACE_Select_Reactor_Notify class. The
- notify_handle () method returns the handle of the pipe on which
- it is listening. The dispatch_notify () call does a dispatch of
- just one notify () call in the notify pipe. The handle_input ()
- call that used to process all the notify calls now calls the
- dispatch_notify () in a loop. The change essentially allows
- some extrenal client of this class to just process one notify at
- a time if needed.
-
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.i:
- * ace/TP_Reactor.cpp (handle_events): Fixed a bug with
- handle_events (ACE_Time_Value &). This should be calling the
- handle_events () of the TP_Reactor and not the select reactor.
-
- Added a whole slew of new methods that basically allows us to do
- this
- - handle one event at a time
-
- - once the thread knows the event that needs handling it should
- release the token before dispatching the events
-
- The new methods that have been added are
-
- - handle_signals (), which handle signals that interrupted the
- select (). The implementation of this method is busted. The
- implementation has been copied from the existing setup
-
- - handle_notify_events (), which handles one notify on the
- notify_pipe at a time
-
- - handle_socket_events (), which handles socket events.
-
- Quite a few helper methods have also been added. They are
- get_notify_handle (), get_socket_event_info (), and
- dispatch_socket_events (). Removed the methods dispatch_i (),
- dispatch_i_protected () and notify_handle (). This checkin fixes
- the problem in 1002. But we still have to add handling timeouts
- into the TP_Reactor.
-
-
- Tue Aug 21 17:21:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i:
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp: Made lots of changes which havent been
- compiled yet. Added a new class ACE_TP_Token_Guard that helps
- in obtaining and releasing tokens. Moved the grab_token () from
- the ACE_TP_Reactor class to the TP_Token_Guard class. Added a
- new method for handling signals. They havent been compiled yet
- and this checkin is to put files from work to my home box.
-
- Tue Aug 21 07:58:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i:
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp (handle_events): Started refactoring some of
- the code to help with this bug. This change has not been
- compiled. This is just being done to transfer files from home
- to work.
-
-Fri Aug 24 14:25:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Massimo Pichini <massimo@webbridges.it> to the
- Hall of Fame.
-
-Fri Aug 24 13:40:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Removed HPUX and AIX_VAC for the
- timebeing. Looks like OCI is running different versions of the
- OS for their internal use.
-
-Fri Aug 24 10:17:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log_hexdump): Added a patch provided by Massimo
- Pichini <massimo@webbridges.it>. This prevents overflows with
- long strings that are used in printing hexdumps. Previously we
- had a buffer of 80 bytes on the stack.
-
-Fri Aug 24 10:03:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/INET_Addr.(h cpp): Applied changes submitted by
- Alain Decamps <Alain.Decamps@PIDPA.be> to insure that
- get_host_name (char hostname[], size_t len) const always
- nul-terminates the hostname string. If the host lookup is
- successful, but the supplied buffer is too short, the function
- returns -1, errno == ENOSPC.
-
-Thu Aug 23 22:01:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Reverted this change "Thu Aug
- 23 05:24:57 2001 Douglas C. Schmidt" as this was giving
- warnings with MSVC 6.0
-
-Thu Aug 23 11:49:15 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * bin/msvc_auto_compile.pl:
-
- Revert changes from Mon Aug 20 15:48:30 2001.
- Thanks to Darrell to showing me the error in my ways.
-
-Thu Aug 23 09:17:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (file): Reduced the number of bytes copied in
- ACE_Log_Msg::file () and ACE_Log_Msg::msg () by one. Thanks to
- Alain Decamps <Alain.Decamps@PIDPA.be> for pointing this out.
-
-Thu Aug 23 08:11:22 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Configuration_Import_Export.cpp (process_previous_line_format):
- Prepend ACE_OS:: to atoi to work with both narrow and wide chars.
-
-Thu Aug 23 08:03:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/QoS/QoS_Session_Impl.cpp:
- Improve debugging messages. Return -1 inside rsvp_callback()
- if flowspec type is unknown.
-
-Thu Aug 23 05:24:57 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Added new and improved test that
- it better documented and fixes some minor bugs. Thanks to
- Edan Ayal for this.
-
-Wed Aug 22 19:04:57 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Enable this test to work
- on platforms that don't support DLLs. Thanks to Edan Ayal
- <edana@bandwiz.com> for suggestion this and providing the code.
-
- * tests/Logging_Strategy_Test.cpp (parse_args): Changed 'n' for 'N'
- since that controls the max number of log files. Thanks to Edan
- Ayal <edana@bandwiz.com> for reporting this.
-
-Thu Aug 23 07:30:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/SString.{h,i}: Added clear() method to the ACE_CString and
- ACE_WString so that it is possible to clear a string in just one
- call
- * tests/SString_Test.cpp: Extended to test clear() method
-
-Wed Aug 22 15:30:05 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Use the print_config.pl script to print out the configuration.
-
-Wed Aug 22 17:33:29 2001 Steve Huston <shuston@riverace.com>
-
- Applied fixes submitted by Jerry D. Odenwelder, to fix
- Bugzilla #953:
-
- * ace/Configuration.cpp (import_config, export_config): Changed
- from using a ACE_Ini_ImpExp object to an ACE_Registry_ImpExp
- to preserve type information in the import/export files, and
- retain the ability to read an ACE 5.1-format file (with the
- changes next...)
-
- * ace/Configuration_Import_Export.(h cpp): Added a new
- ACE_Registry_ImpExp::process_previous_line_format() method that
- knows how to read an ACE 5.1-format config line. If
- ACE_Registry_ImpExp::import_config finds a line that does not
- begin with one of <"[#;> it calls process_previous_line_format
- to try to convert it using ACE 5.1-format rules.
- Note that the auto conversion works on import. If the
- object is subsequently exported, the new registry format
- will be used to write the file, effectively updating it
- from old to new format.
-
-Wed Aug 22 12:04:04 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/WFMO_Reactor.h (ACE_WFMO_Reactor): Clarified that the
- work_pending() method isn't implemented and suggest what to do
- for a workaround. Thanks to Michelangelo Riccobene
- (michelangelo.riccobene@marconi.com) for reporting this.
-
-Wed Aug 22 10:38:08 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/print_config.pl:
- Add new perl script to print out the build configuration, the
- script will be shared by the Unix and Win32 builds.
-
-Wed Aug 22 11:30:13 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/OS_Memory.h:
- Removed include of pace/stddef.h. PACE does not have this
- file. There are no POSIX functions that typically reside
- in this header. Maybe PACE will need this later but it
- doesn't now.
-
- * ace/OS.h (ACE_cond_t):
- Modified #if guard to include ACE_cond_t class if we're
- on Win32. If we're using PACE then we don't want this method
- (since PACE takes care of it) unless we're on Windows. Win32
- mutexes, semaphores, and condition variables are not yet
- supported in PACE.
-
- * ace/OS.cpp (ACE_OS::cond_destroy):
- Modified #if guard to include ACE_cond_t::cond_destroy
- if we're on Win32. If we're using PACE then we don't want
- this method (since PACE takes care of it) unless we're on
- Windows. Win32 mutexes, semaphores, and condition variables
- are not yet supported in PACE.
-
- * ace/OS.i (ACE_OS::waiters):
- Modified #if guard to include ACE_cond_t::waiters if
- we're not on Win32. If we're using PACE then we want
- this method (since PACE defines cond_t) unless we're
- on Windows. Win32 mutexes, semaphores, and condition
- variables are not yet supported in PACE.
-
-Tue Aug 21 08:26:30 2001 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: changed the example referenced
- in:
- Sun Aug 19 08:17:14 2001 David L. Levine <levine@cs.wustl.edu>
- to be a bit more realistic.
-
-Tue Aug 21 06:58:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Fixed problematic uses of strncpy. Thanks to
- Alain Decamps <Alain.Decamps@advalvas.be> for giving this patch.
-
-Tue Aug 21 10:40:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Map.i: Made the return value of ACE_Incremental_Key_Generator
- getCurrentValue() const
-
- * ace/Map_Manager.*: Added a const iterator for the
- ACE_Map_Manager
-
-Mon Aug 20 18:20:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (pass_handle): Only try to compile the
- DuplicateHandle stuff when !ACE_HAS_WINCE... I think it's
- right this time...
-
-Mon Aug 20 15:54:46 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SUN_Proactor.cpp: Removed the instantiation of
- ACE_Condition<ACE_Thread_Mutex>. Thanks to David Trusty
- <david.trusty@westwave.com> for reporting this.
-
-Mon Aug 20 15:48:30 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * bin/msvc_auto_compile.pl:
-
- Modify script to print config.h contents.
-
-Mon Aug 20 13:14:00 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Fixed chdir commands for the auto_compile scripts.
-
-Mon Aug 20 14:33:31 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Message_Queue_T.cpp: If we timeout in the semaphore implementation
- of the message queue in wait_not_full_cond() or
- wait_not_empty_cond() make sure to decrement the "waiters" count
- accordingly! Thanks to Patrick Rabau <Patrick.Rabau@htc.com>
- for noticing this in the C++NPv1 book version!
-
-Mon Aug 20 07:01:31 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Synch_T.i (release): If owner_ == -1 then return
- -1. Thanks to Don Hinton <dhinton@swan.fr> for suggesting this.
-
-Mon Aug 20 13:18:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/SOCK.h: Corrected comment on ACE_SOCK ctor being protected,
- not private. Thanks to Don Hinton <dhinton@swan.fr> for
- pointing this out.
-
- * THANKS: Added Don Hinton to the Hall of Fame.
-
-Mon Aug 20 11:00:50 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/OS.h:
-
- Set the ACE_DEFAULT_FILE_PERMS to the correct value for VxWorks.
-
- * tests/run_test.lst:
-
- Removed tests for VxWorks for which the platform has no support.
-
- * tests/CDR_File_Test.cpp:
- * tests/Svc_Handler_Test.cpp:
-
- Add VxWorks to the list of platforms that can't unlink the file
- in advance of the test completing.
-
-Mon Aug 20 01:49:12 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/build_dll.bor:
- Build non-core DLLs into the common bin directory. This is necessary
- so that the tests can find all the DLLs they need on the path.
-
- * tests/run_test.pl:
- Removed the append of the ExeSubDir to the path, since it is no
- longer needed and never really worked properly anyway.
-
-Mon Aug 20 00:01:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/SOCK_Connector.h: Clarify the conditions under which errno
- will be ETIME (caller-specified timeout expires w/o connect)
- vs. ETIMEDOUT (protocol layer timed out the connect).
-
- * ace/SOCK_Connector.cpp: Add "|| errno == ETIME" to a couple
- places where an ACE_ERROR is _not_ done for certain conditions.
-
- * ace/ACE.cpp (handle_timed_complete): If the user-specified timeout
- expires before the connect is resolved one way or the other,
- set errno to ETIME, not ETIMEDOUT. This makes it match the
- documented behavior in the ACE_SOCK_Connector man page.
-
-Sun Aug 19 20:33:39 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- Update build list
-
-Sun Aug 19 15:36:23 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Add new 'Config' section at the end of the build, useful for the
- next generation scoreboard.
-
-Sun Aug 19 13:25:51 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/footprint_stats.sh:
- * bin/performance_stats.sh:
- * bin/generate_footprint_chart.sh:
- * bin/generate_performance_chart.sh:
- * html/Stats/Stats.css:
- * html/Stats/configuration.shtml:
- * html/Stats/detailed_footprint.shtml:
- * html/Stats/detailed_performance.shtml:
- * html/Stats/footer.html:
- * html/Stats/index.shtml:
- * html/Stats/navigation.html:
- Put the scripts and HTML documents used to generate the Stats
- pages under CVS control. Now it is easier for people to add
- their own libraries and tests, as well as let our user community
- examine the way the pages are generated.
-
- * bin/auto_run_tests.lst:
- Remove TAO/tests/LongUpcalls/run_ami_test.pl, the tests have
- been incorporated into the run_test.pl script.
-
- * bin/sandbox.cpp:
- Minor changes to the sandbox script, actually not very useful,
- the ACE classes to create processes start a new process group by
- default, therefore there is no simple way to kill all the
- subprocesses if a test fails.
-
-Sun Aug 19 08:17:14 2001 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: replaced function call in
- ASSERT with simple comparison of a variable value. Thanks
- to Tino Schwarze <tino.schwarze@informatik.tu-chemnitz.de>
- for suggesting this.
-
-Sat Aug 18 18:26:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Removed the ASYS_INLINE macro from the definition
- of write_n ().
-
-Sat Aug 18 13:18:10 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/ACE.{h,cpp}: Added a new write_n(...ACE_Message_Block *...)
- for file transfers that's the dual of
- send_n(...ACE_Message_Block *...). This helps out the C++NPv1
- book symmetry. Thanks to Alain Decamps <Alain.Decamps@PIDPA.be>
- for motivating this.
-
-Fri Aug 17 18:17:38 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * bin/clone.cpp: Only use extern char *sys_errlist[] if we're not
- compiling on Linux. Thanks to Thomas Groth
- <groth.th@stn-atlas.de> for reporting this.
-
-Fri Aug 17 19:04:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (ACE_Process_Options::pass_handle): For WinCE,
- just do ACE_NOTSUP_RETURN (-1). It can't dup a handle.
-
-Fri Aug 17 16:56:16 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
-
- Added wr_ptr() accessor method to ACE_InputCDR, and added its
- use to adjust(), align_read_ptr(), read_1(), skip_string() and
- skip_bytes() instead of end(). Also added reset of good_bit_
- to 0 upon failure in read_string() and read_wstring(). Thanks to
- Peter Phillips <pphillip@opentext.com> for reporting this bug,
- which was causing excessive memory allocation is some cases.
- [Bug 591, 944, 983]
-
-Fri Aug 17 13:31:45 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/run_test.pl:
-
- Added the ability to generate windsh commands to load and run
- the ace tests.
-
- * tests/Makefile:
-
- Added a rule to generate run_test.vxworks, using run_test.pl,
- which can be used to run the tests selected for the VxWorks OS.
-
- * tests/run_test.lst:
-
- Update this list to take into account the limitations of VxWorks.
-
- * tests/test_config.h:
-
- Change the permissions of the log file open (for VxWorks only) to
- use the symbolic permission names instead of 0x644. The
- permissions differ from the standard UNIX modes.
-
- * tests/run_tests.vxworks:
-
- This file was out of date and no longer needs to be maintained.
- So, it has been removed.
-
-Fri Aug 17 09:44:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Map_T.{h,i}: Reverted this change "Fri Aug 17 08:07:12 2001
- Johnny Willemsen <jwillemsen@remedy.nl>" as this was giving too
- much of warnings in the builds.
-
-Fri Aug 17 09:30:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * gperf/apps/tests/Makefile: Fixed the problem that was causing
- the builds to fail.
-
-Fri Aug 17 08:07:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Map_T.(h i): made the return value of
- ACE_Incremental_Key_Generator::current_value const T& instead
- of T&. Added uppercase traits to the ACE_Map class.
-
-Thu Aug 16 19:27:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (ACE_Process_Options::pass_handle): Add
- "::" to front of "DuplicateHandle" so the WinCE compiler
- sees the right function.
- Also added ctor/dtor for ACE_Managed_Process to try and fix the
- can't find vtable error on Linux.
-
- * ace/Process.h: Added a constructor for ACE_Managed_Process
- to fix "can't find vtable" error on Linux.
-
- * ace/Process.i: Moved ACE_Managed_Process dtor to .cpp file.
-
-Thu Aug 16 15:10:42 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.h (pass_handle): Clarify comments for this method.
-
- * ace/Process_Manager.cpp:
- * ace/Process.(h i): Moved the ACE_Managed_Process class out
- of Process_Manager.cpp, exposing it for general use.
-
-Thu Aug 16 10:34:20 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/POSIX_Proactor.cpp (allocate_aio_slot): Added a fix so that
- the POSIX Proactor compiles with FreeBSD 4.4. Thanks to Yev
- Omenzel <omenzel@yahoo.com> for reporting this and to Craig
- Rodrigues <crodrigu@bbn.com> for fixing it and to
- John E Hein <jhein@timing.com> for fixing the fix ;-)
-
-Thu Aug 16 08:09:53 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/run_test.lst:
-
- Added the OTHER requirement to the Thread_Pool_Reactor_Test and
- the Thread_Pool_Reactor_Resume_Test. These are only built if
- OTHER is part of the ACE components list.
-
-
-Wed Aug 15 15:50:38 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp: Don't try to purge the notifications if
- notify_handler_ is 0. Thanks to Edan Ayal
- <edanayal@hotmail.com> for reporting this.
-
-Wed Aug 15 11:33:26 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- Remove one build from the list, the machine is being retargeted
- for performance testing.
-
-Wed Aug 15 11:10:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Added $(VDIR) for
- OBJDIRS. This prevents hardcoding the value of OBJDIRS. This has
- been tested for a dynamic and a static library on Linux. If
- there are other platforms that gives problems, please feel free
- to revert the changes to the version 4.114 of the file.
-
-Wed Aug 15 09:35:19 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Dirent_Test.cpp:
-
- Added #define's for VXWORKS that allow this test to function
- properly. Avoid hard-coded relative paths that may not exist on
- VxWorks.
-
-Wed Aug 15 09:08:40 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Sock_Connect.cpp:
-
- Added an implementation to ACE_Sock_Connect::get_ip_interfaces().
- With this, the Enum_Interfaces_Test works correctly.
-
-Wed Aug 15 07:54:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Unravelled the mystery a
- bit. The patch that was applied to remove the hard coding of
- OBJDIRS seems to be the problem. The OBJDIRS has been hardcoded
- again. This should fix the problems that we have been seeing in
- the builds. If at all we need to remove hardcoding the OBJDIRS,
- we either need to put the value of VDIR or VSHDIR. If we put
- both we are going to end up with duplicate targets. Now the
- killer, what do we add to the OBJDIRS? Me thinks it is VDIR. I
- have test that out else I would be breaking builds again.
-
-Wed Aug 15 07:30:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Reverted the change "Tue
- Aug 14 21:42:24 2001 Balachandran Natarajan". Thought that was a
- typo. But looks like it is not.
-
-Wed Aug 15 06:39:50 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Process.cpp: Fixed a warning with g++.
-
-Tue Aug 14 23:57:42 2001 Steve Huston <shuston@riverace.com>
-
- * A set of changes to encapsulate passing handles to spawned
- processes. Thanks very much to Eamonn Saunders
- <Esaunders@softricity.com> for suggesting that this could work
- and pointing out the Win32 details!
-
- * THANKS: Added Eamonn Saunders to the Hall of Fame
-
- * ace/Handle_Set.h: Replace include ace/ACE.h with ace/OS.h. This
- class is part of the OS subset.
-
- * ace/Process.h: Added the following methods:
- - ACE_Process_Options::pass_handle (ACE_HANDLE). Cause the specified
- handle to be passed to a child process when it's spawned. Has
- meaning mainly for Win32. The handle value will be included
- in the spawned process's command line as +H <handle>. The passed
- handle value will be duplicated if on Win32 less than NT4.
-
- - ACE_Process_Options::dup_handles (ACE_Handle_Set set) const
- Get a copy of the handles the ACE_Process_Options duplicated
- for the spawned process.
-
- - ACE_Process_Options::passed_handles (ACE_Handle_Set set) const
- Get a copy of the handles passed to the spawned process. This
- will be the set of handles previously passed to pass_handle().
-
- - ACE_Process::close_dup_handles (). Close all the handles in
- the set obtained from ACE_Process_Options::dup_handles.
-
- - ACE_Process::close_passed_handles (). Close all the handles in
- the set obtained from ACE_Process_Options::passed_handles.
-
- Also moved the avoid_zombies() functions and flag out of the
- non-Win32 section - it can safely be ignored, maintain the
- intended semantics, and help apps stay portable.
-
- * Process.cpp: Implement the above new methods. Also, after spawning
- a process, the parent will call the above dup_handles/passed_handles
- methods to get any passed handles. The close_*_handles() methods
- can then close them. Also, the destructor will call close_dup_handles
- to be sure that no handles leak on Win32 less than NT4.
-
- * Process.i (command_line_buf ()): Added a new arg to receive the
- maximum length of the buffer pointed to on return. To maintain
- backward compatibility, the arg defaults to 0 (don't return
- the max length).
-
- * ace/Makefile: Moved Handle_Set from the UTILS group to the OS group.
-
- * ace/ace.icc: Moved Handle_Set from DEMUX to OS.
-
- * docs/ACE-subsets.html: Move Handle_Set from DEMUX to OS.
-
-Tue Aug 14 21:42:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Fixed a typo.
-
-Tue Aug 14 21:30:04 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Makefile: Removed JAWS2 and JAWS from the Makefile. There
- are several reasons for reverting. This breaks the builds. The
- Makefiles in the recursed directories are all messed up. The
- library dependencies doesnt seem trivial. Nobody may have time
- to fix this. Further, our daily builds return too quickly and we
- just needed more files to compile :-).
-
-Tue Aug 14 14:19:49 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Memory_Pool.i (ACE_Local_Memory_Pool dtor): Call release()
- here to free up the blocks allocated by the pool, else they're
- stranded and can't be freed.
-
- * ace/Memory_Pool.cpp (ACE_Local_Memory_Pool::release): After
- freeing up the blocks, reset the allocated_chunks_ set to be
- sure they are also freed, and the chunks can't be freed again.
-
-Tue Aug 14 14:19:37 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Applied the patches sent by Tibor Kiss
- <tkiss@mindmaker.hu> for ACE_Log_Msg::close ()
-
-Tue Aug 14 13:55:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/platform_macosx.GNU: Added a patch from John
- Michael Zorko <j.zorko@att.net>.
-
-Tue Aug 14 10:21:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.h: Clarified the defaults for the per-process and
- per-instance default priority masks.
-
-Mon Aug 13 14:01:35 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Fixed some hard-coded
- uses of .shobj and .obj. Thanks to Shashi Bhushan
- <Shashi.Bhushan@lmco.com> for contributing these.
-
- * ace/CDR_Stream.h: Added comments warning about the deletarious
- effects of not aligning buffers to ACE_InputCDR and
- ACE_OutputCDR properly. Thanks to Alain Decamps
- <Alain.Decamps@PIDPA.be> for reporting this.
-
-Sun Aug 12 14:46:07 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.cpp (sched_params): Make sure to set errno for Win32 so
- that callers can figure out what's going wrong in a consistent
- way.
-
- * ace/Select_Reactor_Base.i (purge_pending_notifications): Don't
- try to purge the notifications if notify_handler_ is 0. thanks
- to Steve Rahn <SRahn@rim.net> for reporting this.
-
-Mon Aug 13 20:09:04 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.19 released.
-
-Sun Aug 12 02:17:01 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Connector.cpp: On non-Win32 platforms, disable
- multithreaded MEM_IO if _ACE_USE_SV_SEM is defined.
-
-Sun Aug 12 01:27:51 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Log_Msg_Test.cpp: Correct const-ness of a pointer
- retrieved from ACE_Log_Record::msg_data().
-
-Sun Aug 12 00:34:42 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Record.h:
- * ace/Log_Record.i (msg_data()): Changed ACE_TCHAR *msg_data()
- to: const ACE_TCHAR *msg_data (void) const. Makes it safer,
- and conforms to all current usage inside ACE. Also makes
- C++ Network Programming examples simpler :-)
-
-Sat Aug 11 09:01:11 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Thread.h:
- * ace/Task.h: Added a list of other flags that can be passed to
- activate().
-
-Fri Aug 10 19:39:48 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Disabled the Blocking_Sync_None test from running under Tru64.
- Also changed the config parameter passed to the auto_compile
- script from TRU_64 to Tru64 in
- ~bugzilla/bin/auto_compile_tru64_cxx.
-
- This is so that the test is disabled only for the WashU builds.
- The reason being that Bala was not too happy with changing the
- default values for all the platforms and we also wanted to avoid
- more #ifdefs in the code. Other builds might have better values
- and the test might succeed. Have to confirm this though.
-
-Fri Aug 10 17:59:47 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Svc_Conf_y.cpp:
- * ace/OS.h: Added /**/ between #include and <sys/modem.h> and
- <alloca.h> to avoid warning from CE compiler.
-
- * ace/ace_dll.vcp: Added Svc_Conf_Lexer_Guard.* to the project.
-
-Fri Aug 10 13:40:46 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- I didn't realize the LIST definition was needed. I have
- added it for the Tru64 4.0f Compaq C++ 6.3-10 build.
-
-Fri Aug 10 11:45:03 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- Added the Tru64 4.0f Compaq C++ 6.3-10 build.
-
-Fri Aug 10 11:06:23 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * apps/drwho/CM_Client.cpp:
- * apps/drwho/CM_Server.cpp:
- * apps/drwho/server.cpp:
-
- Changes to avoid warnings on HP-UX with aCC.
-
-Thu Aug 9 16:56:05 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.i:
- * ace/Hash_Map_Manager_T.cpp: We seem to be re-inventing wheels
- again and again. A few months back we had a show stopper in a
- beta which was caused by usage of static cast. The cast was not
- to the liking of SunCC 4.2. Looks like we had to change a bunch
- of static cast sprayed in these two files to a C style cast as
- 4.2 doesnt like them. Compilers like Borland handle these
- better, but not 4.2.
-
-Thu Aug 9 11:51:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/platform_hpux_aCC.GNU: On popular mandate we
- have the -w flag removed from CCFLAGS in the above file. Looks
- like the -w disables lots of warnings that may be useful.
-
-Thu Aug 9 11:41:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.h (ACE_OutputCDR): Fixed the ambigous constructor
- problem. The InputCDR class had two constructors which were
- similar if the default values for the arguments were
- exercised. Thanks to Torbjorn Backstrom
- <torbjorn.k.backstrom@volvo.com> for reporting this.
-
-Thu Aug 9 12:31:21 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS_String.cpp (strtok_r_emulation): Make sure to check
- for a NULL return from strtok() before calling strlen()! Thanks
- to Boris Sukholitko <boriss@richfx.com> for reporting this.
-
-Wed Aug 08 21:27:50 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/nightlybuilds/builds.lst (Debian_Wchar, Debian_GCC_3.0):
-
- The host these nightly builds were built on is now called
- "rumba" (previously "valinor"). Updated the build list
- accordingly.
-
-Wed Aug 08 21:19:09 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_Test.UTF-16.conf:
-
- Removed extraneous characters from this file that were causing
- the Service Configurator's underlying lexer to "choke."
-
-Wed Aug 8 16:23:31 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Add the AMI_Buffering tests to the nightly regression testsuite.
-
-Wed Aug 8 16:07:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: The GIOP lite tests will not work in the
- static builds. It was adding more complications to the test
- than what is already there to get it working for the static
- builds.
-
-Wed Aug 8 14:06:36 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-tru64.h:
-
- Define ACE_HAS_NONSTATIC_OBJECT_MANAGER for all DEC Unix 4.x
- versions.
-
- * ace/config-cxx-common.h:
-
- Define ACE_AUTO_PTR_LACKS_RESET if __DECCXX_VER == 60190027.
- Thanks to Robert Burke <c-robert.burke@wcom.com> for reporting
- this.
-
- * include/makeinclude/platform_osf1_3.2.GNU:
- * include/makeinclude/platform_osf1_4.0.GNU:
- * include/makeinclude/platform_osf1_4.0_g++.GNU:
- * include/makeinclude/platform_osf1_4.0_kcc.GNU:
- * include/makeinclude/platform_osf1_4.0_rcc.GNU:
-
- Removed the following files.
-
- * include/makeinclude/platform_osf1_3.2_cxx.GNU:
- * include/makeinclude/platform_osf1_4.x_cxx.GNU:
- * include/makeinclude/platform_osf1_4.x_g++.GNU:
- * include/makeinclude/platform_osf1_4.x_kcc.GNU:
- * include/makeinclude/platform_osf1_4.x_rcc.GNU:
-
- Added new versions of the removed files.
-
- * include/makeinclude/platform_tru64_pre.GNU:
- * include/makeinclude/platform_tru64_post.GNU:
-
- Moved a lot of duplicated code into these new files.
-
- * include/makeinclude/platform_tru64_cxx.GNU:
- * include/makeinclude/platform_tru64_g++.GNU:
- * include/makeinclude/platform_tru64_kcc.GNU:
-
- Removed a lot of old *cruft* like setting up compilation with
- cxx when gcc was asked for etc. etc. Somebody went overboard
- with cut'n paste and copied David's changes blindly. Still not
- completely satisfied. But it works and is better than before.
- This also fixes Bug Id 989.
-
-Wed Aug 08 11:30:26 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_Test.cpp (run_test):
-
- Don't check if "ACE_USES_WCHAR == 1" since some configurations
- neglect to set it an integer value. Instead, just check if it
- is defined.
-
-Wed Aug 8 12:31:51 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp: Changed a ACE_DEBUG statment with an
- LM_WARNING to an LM_DEBUG.
-
-Wed Aug 08 11:59:45 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Do not redefine ACE_IOV_MAX if it has already been
- defined.
-
-Wed Aug 8 06:21:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Makefile: Moved Message_Block from STREAMS_FILES to
- UTILS_FILES.
-
- * ace/OS_Dirent.inl (closedir): Changed delete d->directory_name_ to
- delete [] d->directory_name_. Thanks to Olivier Brunet
- <obrunet@groupama-ccama.tm.fr> for reporting this.
-
-Tue Aug 7 21:59:42 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Svc_Handler_Test.cpp: Modified the test to dump the contents
- of the temporary file to the log file.
-
-Tue Aug 7 19:14:24 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/CDR_Stream.i:
- * ace/SOCK_Stream.h: Fixed incorrect comments.
- Thanks to Alain Decamps <Alain.Decamps@PIDPA.be> for reporting
- these.
-
-Tue Aug 7 15:19:38 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace: Changed all uses of IOV_MAX to use the new ACE_IOV_MAX.
- * ace/OS.h: Added a new ACE_IOV_MAX that makes it clear this is
- an ACE-level #define. We use this in C++NP v1.
-
-Tue Aug 7 14:16:57 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Svc_Handler.cpp: Reimplemented the flush() method to use
- the new send_n() method on the various ACE I/O classes.
-
- * ace/SOCK_Stream.{h,i}:
- * ace/FILE_IO.{h,i}: Added a new send_n() method that sends all
- the <message_block>s chained through their <next> and <cont>
- pointers using the underlying OS gather-write operation to
- reduce the domain-crossing penalty.
-
-Tue Aug 7 17:27:16 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Collection_test.cpp: Fixed a compile error with g++. This
- is a patch that Johnny Willemsen sent as a part of his last
- checkin.
-
-Tue Aug 07 11:25:36 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Made the following definition
- valid only for pre-4.2-RELEASE.
-
- #define ACE_LACKS_GETPGID
- #define ACE_LACKS_SETPGID
- #define ACE_LACKS_SETREGID
- #define ACE_LACKS_SETREUID
-
- Thanks to Robert Burke <rburke2002@yahoo.com> for reporting
- this.
-
-Tue Aug 07 16:40:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Hash_Map_Manager_T.*:
- Added const_iterator to the Hash_Map_Manager so that it is
- possible to iterate over a hash map in a const method
-
- The operator= of the iterator now check the value of this to
- check that the iterator instance is assigned to itself
-
- * tests/Hash_Map_Manager_Test.cpp
- Extended this test to test the new const_iterator capabilities
- of the hash map
-
- * ace/Unbounded_Set.cpp:
- Implemented missing operator* for the const iterator
-
- * tests/Collection_test.cpp:
- Extended test to test the operator* of the
- Unbounded_Set_Const_Iterator
-
-Mon Aug 6 19:58:48 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/config-hpux-11.00.h: Added #define for ACE_HAS_TERM_IOCTLS.
- Thanks to Torbjorn Backstrom <torbjorn.k.backstrom@volvo.com>
- for reporting this.
-
- * ace/OS.h: Added a #include for <sys/modem.h> for HP/UX. Thanks
- to Torbjorn Backstrom <torbjorn.k.backstrom@volvo.com> for
- reporting this.
-
-Mon Aug 6 12:51:35 2001 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Synch.h (ACE_Null_Mutex>): Fixed a cut&paste error
- where acquire_write() should be acquire_read(). Thanks to
- Russell Mora <rd.mora@router.econz.co.nz> for fixing this.
-
-Mon Aug 06 17:17:33 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Service_Config.cpp:
-
- Fixed some debugging messages that were not wrapped within an
- ACE_LIB_TEXT macro.
-
- * tests/Service_Config_Test.UTF-16.conf:
-
- Interim UTF-16 encoded version of the UTF-8 encoded
- Service_Config_Test.conf. It was generated on a little-endian
- host. Its current purpose is simply to keep our Unicode
- regression testing happy until the on-the-fly generation is
- implemented. Once we start generating this file on-the-fly
- this file should disappear.
-
- * tests/Service_Config_Test.cpp (run_test):
-
- When using full Unicode support, use the version of the Service
- Configurator file that is UTF-16 encoded (as described above).
-
-Mon Aug 06 11:10:24 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_l.cpp:
-
- More Unicode fixes. Flex's allocation function uses malloc() as
- its underlying allocator. Since it only accepts the size in
- bytes, allocate "size * sizeof (ACE_TCHAR)" when allocating
- string buffers. This should clear up some strange looking text
- "unknown character" messages emanating from the Service
- Configurator's underlying text scanner.
-
- Note that these changes do not fix the cause of the "unknown
- character." Those fixes should soon follow.
-
-Mon Aug 06 09:04:04 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.l:
-
- Unicode updates. Wrap debugging text within an ACE_LIB_TEXT
- macro.
-
-Sun Aug 5 14:31:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_tests.lst: Ossama suggested that we dont run the
- Service_Config_Test in static builds.
-
-Fri Aug 04 3:33:31 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/QoS/SOCK_Dgram_Mcast_QoS.h:
- * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp:
-
- Made the open method public so we can open UDP sockets for
- non-multicast addresses.
-
-Fri Aug 03 22:19:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.00.h: Added ACE_HAS_WCHAR to build in the
- wide char handling since Darrell so nicely straightened all
- the muck out throughout ACE. Thanks Darrell!
-
-Fri Aug 03 22:15:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): For 'W' and 'w' on HP-UX, the 'ls' and
- 'lc' forms are not allowed; HP-UX requires 'S' and 'C'.
-
-Fri Aug 3 13:10:59 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/config-linux-common.h (ACE_UINT64_FORMAT_SPECIFIER,
- ACE_SSIZE_T_FORMAT_SPECIFIER, ACE_SIZE_T_FORMAT_SPECIFIER):
-
- Removed unnecessary and some incorrect format specifiers for the
- 32-bit platform case. In particular, the format specifier for
- an unsigned 64-bit integer was incorrectly set to "%Lu." "%L"
- is the format specifier for a "long double," not a "long long"
- integer on 32-bit platforms. "%llu" is the correct format
- specifier which `ace/Basic_Types.h' already defines.
-
-Fri Aug 3 09:55:38 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added the new TAO "DLL_ORB" test to the list of tests to run.
-
-Fri Aug 3 08:26:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/RW_Process_Mutex.cpp: Added a missing comma in the
- constructor. This should fix Win32 compile errors.
-
-Fri Aug 3 08:07:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Base.cpp: Added a check for a memory allocation failure
- in grow (). Thanks to Francis Paul <FranciP@navcanada.ca> for
- pointing this out.
-
-Thu Aug 2 18:37:23 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/RW_Process_Mutex.cpp: Added ACE_DEFAULT_OPEN_PERMS
- to the constructor call to ACE_RW_Process_Mutex so that it does
- the right thing on Win32. Thanks to Wayne Erchak
- <werchak@stentor.com> for reporting this. This fixes
- bugid 996.
-
-Thu Aug 02 13:04:19 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace.icc: Added Intrusive_List.cpp to the TEMPLATE_FILES
- section.
-
-Thu Aug 02 06:59:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Basic_Types.h (ACE_SIZEOF_WCHAR): If ACE_HAS_XPG4_MULTIBYTE_CHAR
- is defined, use sizeof(wchar_t) to set ACE_SIZEOF_WCHAR.
-
-Wed Aug 1 16:05:49 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * Merged changes from the fix_886 branch
-
- Tue Jul 31 09:17:49 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Intrusive_List.h:
- * ace/Intrusive_List.inl:
- Add new methods to access the head and tail of the list.
-
- * ace/Intrusive_List.cpp:
- Fixed the implementation of remove(), if the element to be
- removed was the last on the list it wasn't removed at all.
- Left some code to check invariants, have to find a way to keep
- that code around with some optional compilation flags.
-
- Thu Jul 26 16:50:54 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/Intrusive_List.h:
- * ace/Intrusive_List.inl:
- * ace/Intrusive_List.cpp:
- Add new template to implement intrusive lists, i.e. lists that
- assume their elements implement the next() and prev() methods.
-
- * ace/Intrusive_List_Node.h:
- * ace/Intrusive_List_Node.inl:
- * ace/Intrusive_List_Node.cpp:
- Helper class to add the requirements of ACE_Intrusive_List to
- any other class, simply do:
- class Foo : public ACE_Intrusive_List_Node<Foo>
-
-Wed Aug 1 15:57:35 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Message_Block.cpp (release, release_i):
-
- Obtain the pointer to the allocator from the object that will be
- destroyed before calling ACE_DES_FREE on the object. Previously
- we were obtaining the allocator after the object was destroyed,
- due to the way the ACE_DES_FREE macro works. Thanks to Hyman
- Rosen <hyrosen@mail.com> for reporting the problem, and to
- Carlos for suggesting a fix. [Bug 992]
-
-Wed Aug 1 15:00:21 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Log_Record.{h,i}: Changed msg_data_len() from a "setter"
- to a "getter" method, which makes more sense. Thanks to Patrick
- Rabau <Patrick.Rabau@htc.com> for reporting this.
-
-Wed Aug 1 12:43:57 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_l.cpp:
-
- Reintegreated Nanbor's change (Wed Jun 13 10:22:10 2001 Nanbor
- Wang <nanbor@cs.wustl.edu>) that enables proper handling of
- UNICODE Service Configurator directives.
-
-Wed Aug 1 07:14:42 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: Checked in a new
- version of this file, which includes support for the Hitachi
- chip. Thanks to Frank Wolf for this.
-
- * ace/Log_Record.cpp (format_msg): Added a cast to fix a warning.
- Thanks to Bala for reporting this.
-
-Tue Jul 31 22:53:26 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/libService_Config_DLL.icc:
-
- New Visual Age project file for the libService_Config_DLL
- library.
-
- * tests/Makefile.am:
-
- Added build targets/dependencies for the libService_Config_DLL
- library.
-
-Tue Jul 31 22:46:33 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_DLL.dsp:
- * tests/Service_Config_Test.dsp:
-
- Removed the static library configurations. The
- Service_Config_Test currently requires dynamically loadable
- objects. Fixes Win32 "LIB" build failures.
-
-Tue Jul 31 22:10:48 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_Test.cpp (run_test):
-
- Wrap strings passed to ACE_ARGV::add() within an ACE_TEXT
- macro. Fixes Unicode conversion problems.
-
-Tue Jul 31 16:53:57 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.h (ace_yyrestart, ace_yy_delete_parse_buffer,
- ace_yydirective):
-
- Remove these global function and variable declarations. They
- are no longer used.
-
-Tue Jul 31 16:43:33 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Basic_Types.h:
-
- If "__LITTLE_ENDIAN__" is defined then assume that the
- architecture is little endian. Some compilers/platforms define
- that macro. Suggested by Frank Wolf" <fwolf@gum.de>.
-
- * ace/Svc_Conf.h (yy_push_buffer):
- * ace/Svc_Conf.l (yy_push_buffer):
- * ace/Svc_Conf_l.cpp (ace_yy_push_buffer):
- * ace/Svc_Conf_Lexer_Guard.cpp (ACE_Svc_Conf_Lexer_Guard):
- * ace/Svc_Conf_Lexer_Guard.h (ACE_Svc_Conf_Lexer_Guard):
-
- The Service Configurator directive is an "ACE_TCHAR *" not a
- "char *". Updated these method/function parameters to accept
- the former. Fixes a compile-time problem on "wchar/Unicode"
- builds.
-
-Tue Jul 31 05:34:48 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS.h: Removed a spurious WNOHANG definition. Thanks to
- Christina Junru <junruli@lucent.com> for reporting this.
-
-Mon Jul 30 15:31:42 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Log_Msg.{h,i,cpp}: Fixed this class so that all of its fields
- are ACE_UINT32 or ACE_INT32 internally so that it'll always be
- the same on all platforms. Thanks to Fabris
- <fabris65@my-deja.com> for reporting this.
-
-Tue Jul 31 10:22:38 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Makefile:
-
- Only build the Service_Config_Test if shared libraries are
- enabled, since it attempts to dynamically load a shared
- library.
-
-Tue Jul 31 10:16:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Dump.h: Clarified the use of ACE_NDEBUG for turning this
- feature off, not on. Thanks to Don Hinton <dhinton@swan.fr>
- for noticing this.
-
-Mon Jul 30 13:41:00 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_Time_Value::FILETIME_to_timval_skew): Updated
- docuementation to better explain the meaning of this constant.
- Thanks to Mike Vitalo <mvitalo@sprynet.com> for motivating the
- change.
-
-Mon Jul 30 09:43:06 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.i (mutex_lock): Missing an argument to the ACE_OSCALL macro.
- Thanks to Bala for reporting this.
-
-Mon Jul 30 05:43:23 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Synch.h (ACE_Semaphore): Corrected the comment on
- how to get POSIX Pthreads "implementation" of semaphores (which
- supports the timed acquire() option). Thanks to Grzegorz
- Sikora <GSikora1@era.pl> for reporting this.
-
-Sun Jul 29 19:03:56 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/Thread_Mutex_Test.cpp (test): Fixed this test to be
- consistent wrt the errno for the timed acquire(), which should
- now always be set to ETIME rather than ETIMEDOUT and EBUSY.
-
- * ace/Message_Queue_T.cpp (wait_not_full_cond,
- wait_not_empty_cond): Fixed a nasty bug with the semaphore
- version of ACE_Message_Queue that would have reared it's ugly
- head if ACE_NULL_SYNCH were used when
- ACE_HAS_OPTIMIZED_MESSAGE_QUEUE was enabled. Fixing this bug
- also triggered the following changes.
-
- * ace/OS.{h,i}: Added support for ACE_OS::sema_wait(),
- ACE_OS::mutex_lock(), ACE_OS::thread_mutex_lock() that take
- ACE_Time_Value *.
-
- * ace/OS.i: For some odd reason the timeouts for the timed version
- of mutex_lock() were returning a random smattering of errnos.
- I've changed them to all be consistent with the
- ACE_Condition_Thread_Mutex::wait() errno, which is ETIME.
-
- * ace/Synch.h: Updated the documentation of all the timed
- acquire() methods to explain what the various return values
- mean.
-
-Sun Jul 29 22:10:40 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_DLL.cpp:
- * tests/Service_Config_DLL.h:
- * tests/Service_Config_DLL.dsp:
- * tests/Service_Config_DLL_Export.h:
- * tests/Service_Config_Test.conf:
-
- New files associated with the existing Service_Config_Test.
- They are used when testing the reentrance/thread-safety of the
- Service Configurator, in addition to testing the Service
- Configurator's ability to handle nested processing of Service
- Configurator directives.
-
- * tests/Service_Config_Test.cpp (run_test):
-
- Add arguments to the Service Configurator argument vector to
- make it process the newly added `Service_Config_Test.conf'
- file.
-
- (main):
-
- Make the ACE_Thread_Manager wait for all running threads before
- exiting the test. Processing the `Service_Config_Test.conf'
- file causes some threads to be spawned.
-
-Sun Jul 29 19:19:20 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Service_Config.cpp (process_directive, process_directives):
-
- Wrap the ACE_GUARD_RETURN macro within an ACE_MT block. The
- ACE_Static_Object_Lock declaration is only visible if
- ACE_HAS_THREADS is defined. This truly fixes the
- single-threaded build problems.
-
-Sun Jul 29 19:06:11 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.y (ace_obstack):
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_l.cpp:
-
- UNICODE updates and fixes.
-
-Sun Jul 29 10:50:45 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_Lexer_Guard.cpp:
-
- There is no longer any need to include "ace/Object_Manager.h"
-
- * ace/Service_Config.cpp:
-
- Include "ace/Object_Manager.h" to pull in the definition of
- ACE_Static_Object_Lock. Fixes a problem found in Sun builds and
- single-threaded builds.
-
-Sat Jul 28 23:03:24 2001 Ossama Othman <ossama@uci.edu>
-
- The following are changes that make the Service Configurator
- reentrant and thread-safe.
-
- * ace/Svc_Conf.y:
-
- Generate a pure (reentrant) parser using Bison. BYACC doesn't
- support generation of reentrant parsers.
-
- * ace/Svc_Conf.l:
-
- Implemented "buffer stack" support. This feature makes it
- possible to process Service Configurator directives within a
- Service Object's init() method, i.e. support nested directive
- processing.
-
- (ace_yyerrno):
-
- Moved declaration of ace_yyerrno from this file to
- `Svc_Conf.y'. ace_yyerrno was not used in the generated
- scanner. It was only used in the generated parser.
-
- (yy_delete_parse_buffer):
-
- There is no longer any need for this function. The lexer buffer
- stack implementation handles memory management of lexer buffers.
-
- (yywrap):
-
- Do not call yy_delete_parse_buffer(). It is no longer necessary
- to do so, in addition to the fact that that function was
- removed (as described above).
-
- (<<EOF>>):
-
- Do not call ACE_YY_NEW_FILE in this rule. The new buffer stack
- implementation handles the buffer switching that ACE_YY_NEW_FILE
- did, and more.
-
- * ace/Svc_Conf_Tokens.h:
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
-
- Regenerated these files using updated Bison/YACC and FLEX input
- files to pull in support for reentrant parsing and nested
- processing of Service Configurator directives.
-
- * ace/Svc_Conf.h (ace_yy_push_buffer, ace_yy_pop_buffer):
-
- Added function prototypes for the newly implemented lexer buffer
- stack manipulation functions.
-
- (ace_yylex):
-
- Added ACE_YYSTYPE parameter to this functions signature, as
- required by the new reentrant parser support.
-
- (ACE_SERVICE_DIRECTIVE_STACK_DEPTH):
-
- New symbolic constant that defines the maximum supported depth
- for nested Service Configurator processing. The current default
- is 8.
-
- (ACE_YY_INPUT):
-
- No longer any need to redefine this macro to support scanning of
- Service Configurator directive strings. The new lexer buffer
- stack implementation provides support for lexer buffer scanning
- from a string instead of a pointer to "FILE."
-
- (ace_yydirective):
-
- This global variable is no longer needed due to the fact that
- the new buffer stack implementation handles directives read from
- both a string and a file.
-
- * ace/Service_Config.cpp:
-
- (process_directive, process_directives):
-
- Obtain a recursive lock before manipulating the lexer buffer
- stack, and invoking the parser and scanner. This makes
- invocation of the scanner thread-safe.
-
- The new lexer buffer stack implemenation obviates the need to
- call yyrestart() since buffer switching is handled by the stack
- implementation.
-
- (open_i, close):
-
- No need to deallocate the lexer buffer since the buffer stack
- implementation handles that.
-
- * ace/Svc_Conf_Lexer_Guard.h:
- * ace/Svc_Conf_Lexer_Guard.cpp:
-
- New "guard" class that makes lexer buffer stack pushing and
- popping exception-safe.
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/ace.icc:
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- Added Svc_Conf_Lexer_Guard.* sources to these Makefiles and
- project files.
-
-Sat Jul 28 14:58:30 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp: Reran BYACC and FLEX on the Svc_Conf.l and
- Svc_Conf.y files to regenerate them. Thanks to Bala for
- motivating this.
-
- * netsvcs/clients/Tokens/collection/Makefile,
- netsvcs/clients/Tokens/deadlock/Makefile,
- netsvcs/clients/Tokens/invariant/Makefile,
- netsvcs/clients/Tokens/mutex/Makefile,
- netsvcs/clients/Tokens/rw_lock/Makefile,
- examples/ASX/CCM_App/Makefile,
- examples/Logger/Acceptor-server/Makefile,
- examples/Reactor/Multicast/Makefile,
- examples/Reactor/Ntalker/Makefile,
- examples/Shared_Malloc/Makefile,
- performance-tests/TCP/Makefile,
- performance-tests/UDP/Makefile: Removed the line
- include $(ACE_ROOT)/include/makeinclude/rules.LIB.GNU
- so that these projects will build correctly on VxWorks with
- Make 3.79.1. Thanks to Frank Wolf for reporting this.
-
-Fri Jul 27 11:24:50 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Svc_Conf.y: Allow quoted strings as the pathname. Thanks
- to Kevin Burge <kcburge@systemware-inc.com> for suggesting this
- and providing the fix.
-
- * ace/Svc_Conf.l: Added support for "~" in pathnames to support
- Win32isms. Thanks to Kevin Burge <kcburge@systemware-inc.com>
- for suggesting this and providing the fix.
-
- * ace/Refcounted_Auto_Ptr.i (assign): Fixed the code to avoid a
- race condition. Thanks to Charlie Duke for this fix.
-
-Thu Jul 26 08:15:36 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: Changed
- $PATH to $(PATH). Thanks to Frank Wolf for reporting this.
-
-Wed Jul 25 17:46:58 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Asynch_Acceptor.{h,cpp}: Added an asynch_accept() accessor
- method. Thanks to Craig L. Ching <cching@mqsoftware.com> for
- reporting this.
-
-Wed Jul 25 17:36:09 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Refcounted_Auto_Ptr.i: Added a lock for the reference count
- to the assign() method. Thanks to Charlie Duke
- <cduke@cuseeme.com> for reporting this.
-
-Fri Jul 27 23:17:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace_wchar.h: If ACE_HAS_XPG4_MULTIBYTE_CHAR is set, then
- also set up definitions for functions that are not present
- (ACE_LACKS_ITOW, ACE_LACKS_WCSICMP, ACE_LACKS_WCSNICMP,
- ACE_LACKS_WCSDUP).
-
- * ace/ace_wchar.inl: If not ACE_WIN32, include <string.h> to see
- strlen().
-
- * ace/OS_String.inl (strstr): The XPG4 multibyte version of
- strstr() is wcswcs(), whereas the ANSI C / UNIX98 version is
- wcsstr(). So if ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, use
- wcswcs.
-
-Fri Jul 27 21:52:48 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the IDL_Cubut test with GIOP Lite
- script, to our daily builds.
-
-Fri Jul 27 16:50:49 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Log_Msg_Test.cpp: Silence a compile warning in g++.
-
-Fri Jul 27 12:18:49 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): Fixed compile error - missing "" around
- 's' for the %S case.
-
-Fri Jul 27 11:07:26 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/OS.h:
-
- After conversation with Steve Huston, I am reverting his change
- pertaining to HPUX from "Tue Jul 10 18:15:39 2001 Steve Huston
- <shuston@riverace.com>".
-
-Fri Jul 27 10:57:24 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/SOCK_Dgram_Bcast.cpp:
-
- Fix the ACE_SOCK_Dgram_Bcast::mk_broadcast() which was completely
- broken on AIX. The broadcast_client in docs/tutorials/008 now
- works with the help of this change.
-
-Thu Jul 26 22:09:19 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): Extend behavior so that all printf
- formatting conversion specifiers can be used with all legal
- ACE_Log_Msg format characters. This allows the caller to line
- up columns on any field, like line number or program name, or
- thread ID. Thanks to Paul Caffrey <pcaffrey@iel.ie> for
- motivating this extension.
-
- * tests/Log_Msg_Test.cpp: Added a new function, test_format_specs,
- that verifies the formatting. Right now it does not detect the
- correctness of the strings produced - they have to be examined
- in the log file to check. This needs to be fixed still.
-
-Thu Jul 26 11:48:16 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/count_lines:
- Add a few new file types.
-
-Wed Jul 25 23:49:43 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/platform_tru64_g++.GNU:
-
- Fixed some missing defines in the Makefile for DEC Unix versions
- 4.0D, 4.0E. We don't support or suggest this combination. Hence
- the oversight in missing the needed defines.
-
- Thanks to Martin Krumpolec <krumpo@pobox.sk> for reporting this.
-
-Wed Jul 25 23:49:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * include/makeinclude/wrapper_macros.GNU:
-
- Remove extraneous rapi = 0.
-
-Wed Jul 25 18:53:18 2001 Ossama Othman <ossama@uci.edu>
-
- * html/index.html:
-
- Added CORBA Security Service main page link to the list of
- documentation.
-
-Wed Jul 25 17:41:43 2001 Ossama Othman <ossama@uci.edu>
-
- * ltcf-c.sh:
- * ltcf-cxx.sh:
- * ltconfig:
-
- Removed these libtool related files. New versions of libtool
- (GNU libtool >= 1.4b) no longer use them.
-
- * config.guess:
- * config.sub:
- * ltmain.sh:
-
- Removed these files. We no longer need to keep custom copies
- lieing around since libtool 1.4b includes all of our local
- changes (i.e. our changes have been folded into the upstream
- libtool sources).
-
- * install-sh:
- * missing:
- * mkinstalldirs:
-
- Removed these files. Automake will automatically add these when
- necessary.
-
-Wed Jul 25 16:29:48 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Max_Default_Port_Test.cpp: ACE-ified the code and fixed
- a number of ACE_DEBUG %p directives without a corresponding
- string. Also, closed a 2 handle-per-try handle leak, which
- may have affected test results on some platforms.
- * tests/Max_Default_Port_Test.h: Added a destructor to the
- test class - it's used to close the acceptor handle down.
-
-Wed Jul 25 15:21:22 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/OS.h:
-
- Fixed the _XOPEN_SOURCE checking to _XOPEN_SOURCE < 500 to fix
- incorrect declaration of prototype. This fixes the warnings when
- compiling with gcc-3.0. Thanks to Ossama for suggesting the fix.
-
-Wed Jul 25 08:05:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Resume_Test.h:
- * tests/Thread_Pool_Reactor_Resume_Test.cpp: Fixed a subtle race
- condition. This hardly showed up in many of our daily
- builds. The race condition had to be fixed to show the users of
- the cautious approach that one needs to take if they are
- resuming the handle in the application itself.
-
-Tue Jul 24 16:41:57 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp :
- Added "&& ! defined (ACE_HAS_PACE)" ifdefs to already existing
- #if defined (VXWORKS) sections of code to get ACE_HAS_PACE to
- compile on VxWorks.
-
- * ace/OS.i :
- * ace/OS.cpp:
- Fixed formatting of some comments and added needed PACE
- calls for ACE_HAS_PACE on VxWorks.
-
- * ace/OS.h :
- Put #if !defined guards around the ACE_THR_PRI* macros
- so that we can define them in the config*.h files if
- they need to be corrected. For instance, ACE_THR_PRI_OTHER_MIN
- has a different value on SunOS 5.8 than it does on SunOS 5.7,
- i.e., -20 vs. 0 respectively.
-
- Also, added some needed typedefs and #define for ACE_HAS_PACE
- on VxWorks and updated some comments concerning ACE_OS::thr_create
- flags.
-
- * ace/Sched_Params.cpp (priority_min, priority_max):
- Changed to return correct thread priority min/max for
- Solaris threads. We now use the ACE_PRI_THR* macros
- for these values while still calling ACE_OS::priority_control
- for process and LWP priorities.
-
- * ace/config-sunos5.8.h:
- Added setting of ACE_THR_PRI_OTHER_MIN to be correct
- for SunOS 5.8.
-
-Tue Jul 24 13:47:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SSL/SSL_Asynch_Stream.h (ACE_SSL_Asynch_Stream):
- * ace/SSL/SSL_Asynch_Stream.cpp: Added a open () method that
- matches the signature of ACE_Service_Handler. This should fix
- the warnings in Borland builds that complain about hiding
- the virtual functions.
-
-Tue Jul 24 10:56:04 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/generate_doxygen.pl (TAO_DOCS):
-
- Added "tao_security" and "tao_ssliop" Doxygen configurations to
- the list of documentation to generate.
-
-Tue Jul 24 07:45:03 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Containers_T: Fixed some problems with the lack of
- const for the ACE_DLList and ACE_Double_Linked_List classes.
- Thanks to Michael Kircher for reporting this.
-
- * ace/config-cygwin32-common.h: Removed the ACE_LACKS_FORK
- macro since this is apparently working on Cygwin. Thanks tj
- Stefan Kluehspies <Stefan.Kluehspies@gmx.net> for reporting
- this.
-
- * ace/config-cygwin32.h: Removed the #define _CLOCKID_T
- macro, which should now be handled by the following change.
-
- * ace/OS.h: Added a #defined for _CLOCKID_T_. Thanks to
- Stefan Kluehspies <Stefan.Kluehspies@gmx.net> for
- reporting this.
-
-Tue Jul 24 11:10:59 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/OS.h:
-
- Fix the compile errors seen on gcc-3.0 with -pedantic and
- -Wno-long-long. This should fix all the errors.
-
-Tue Jul 24 10:07:31 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_sunos5_g++.GNU:
-
- Add an optimize override to 0 for g++ 3.0. The compiler breaks on
- a tremendous amount of files, even with -O.
-
-Tue Jul 24 10:04:52 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/INET_Addr.cpp:
-
- Corrected a run-time error on Tru64 with gcc. Any executable
- that called ACE_INET_Addr::get_host_name() would core dump.
- This was caused by the call to ACE_OS::gethostbyaddr_r().
-
-Tue Jul 24 08:20:02 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_aix_ibm.GNU:
-
- Change -O2 to -O. The optimizer seems to be a tiny
- bit broken, which is demonstrated by a few TAO and orbsvcs
- tests.
-
-Mon Jul 23 17:38:46 2001 Ossama Othman <ossama@uci.edu>
-
- * etc/tao_security.doxygen:
- * etc/tao_ssliop.doxygen:
-
- New Doxygen files for TAO's CORBA security libraries.
-
-Mon Jul 23 13:48:26 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/MEM_Connector.cpp (connect):
-
- Disable non-blocking on the stream after its handle has been
- set. Previously, non-blocking was disabled on an uninitialized
- MEM_Stream, after which the handle was set (i.e. initializing
- the stream). In order to properly disable non-blocking on a
- stream, its handle must be set first since ioctl() operations
- are typically performed on the underlying stream handle.
-
-Mon Jul 23 13:06:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/WFMO_Reactor.cpp (event_handling): Corrected the loop check
- to account for a zero ACE_Time_Value *, avoiding a crash in
- tests/Reactor_Timer_Test, as well as any other program that
- called ACE_Reactor::handle_events with a zero timer pointer.
-
-Mon Jul 23 10:39:55 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Added /**/ between #include and <sys/times.h> to
- avoid warning from CE compiler.
-
- * ace/ace_dll.vcp: Added Obchunk.cpp to the project.
-
-Sun Jul 22 08:19:43 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-cygwin32.h: ADded a #define for_CLOCKID_T. Thanks to
- Christophe Galerne <christophgalerne@earthlink.net> for
- reporting this.
-
- * ace/Log_Record.cpp (priority_names_): Added commas after the
- 'ACE_LIB_TEXT ("LM_UNK(04000)")' lines. Thanks to Steve Harris
- <harris_s@ociweb.com> for reporting this.
-
-Sat Jul 21 19:56:08 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Map_T.{h,i}: Made current_value() a const member function.
- Thanks to Johnny Willemsen for reporting this.
-
-Fri Jul 20 10:16:46 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Connector.cpp (create_AST): Replaced some calls to
- sh->get_handle () with a cached value of handle. This fixes a
- bug with gcc 2.96 on Tornado 2.1/VxWorks for SuperH. Thanks to
- Frank Wolf <fwolf@gum.de> for reporting this.
-
- * examples/Connection/non_blocking/CPP-acceptor.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
- * examples/Connection/non_blocking/CPP-connector.cpp: Changed the
- SH macro to SVH to avoid clashes with a macro in VxWorks.
- Thanks to Frank Wolf <fwolf@gum.de> for reporting this.
-
-Thu Jul 19 06:55:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-g++-common.h: Version 2.96 of g++ on VxWorks
- is missing auto_ptr, so let's add the ACE_LACK_AUTO_PTR flag
- there. Thanks to Frank Wolf for suggesting this.
-
-Fri Jul 20 09:47:38 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Fixed WinCE errors. CE does not support
- UNIX_Syslog.
-
-Thu Jul 19 22:39:32 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp:
- * ace/MEM_IO.h:
- * ace/MEM_IO.i:
- * ace/MEM_IO.cpp: On non-Win32 platforms, disable multithreaded
- MEM_IO if _ACE_USE_SV_SEM is defined.
-
-Thu Jul 19 15:25:11 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * ace/MEM_Acceptor.i (mmap_prefix):
-
- Fix case where a null pointer is passed in.
-
-Thu Jul 19 06:55:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Connector.cpp (connect_svc_handler): Missed one change...
- Thanks to Bala for reporting this!
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU (HOST_DIR): Added
- support for the SH7700 and SH7700LE. Thanks to Frank Wolf
- <WolfF@Becker.de> for reporting this.
-
- * ace/OS.i (truncate): Make sure to close the handle that we
- opens. Thanks to Lothar for reporting this.
-
- * ace/Connector.cpp: Changed the SH macro to SVH to avoid clashes
- with a macro in VxWorks. Thanks to Frank Wolf <fwolf@gum.de>
- for reporting this.
-
-Wed Jul 18 13:15:06 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS_Dirent.cpp (scandir_emulation): Removed the calls to the
- ACE_ERROR_RETURN macros to avoid dependencies on ACE_Log_Msg
- from within the ACE_OS layer. Thanks to Bala for pointing this
- out!
-
- * ace/ACE.{h,cpp}: Added a new wrapper method for ACE_OS::select()
- that uses ACE_Handle_Set *'s rather than fd_set *'s. This is
- motivated by work Steve Huston and I are doing on our new book
- "C++ Network Programming: Resolving Complexity with ACE and
- Patterns."
-
- * ace/Malloc_T.i (release): Removed an unnecessary "else" to
- make gcc 2.96 happy. Thanks to Frank Wolf <fwolf@gum.de> for
- reporting this.
-
- * Happy birthday to me and Angelo Corsaro!
-
-Tue Jul 17 00:34:40 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SString.h (ACE_Tokenizer): Make sure that the data members
- are protected, not private... Thanks to Martin Krumpolec for
- reporting this (again)!
-
-Wed Jul 18 16:40:56 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (program_name): Undid the following changes:
-
- ChangeLogTag:Tue Jul 10 11:32:26 2001 Tibor Kiss
-
- Tibor will be looking into this further since this change
- currently causes shutdown problems on Win2000.
-
-Wed Jul 18 15:59:03 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-tru64.h:
-
- Removed _LIBC_POLLUTION_H. It seems that this macro is causing
- problems for some users. Thanks to Pierre Oberson
- <oberson@nagra-kudelski.ch> for prompting this fix.
-
-Tue Jul 17 13:00:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_test.lst: Enabled the MEM_Stream test on Linux.
-
-Mon Jul 16 14:59:32 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Memory_Pool.h (ACE_Shared_Memory_Pool): Added a comment
- that discourages developer from using the ACE_Shared_Memory_Pool
- and points them to the ACE_MMAP_Memory_Pool instead. Thanks to
- Johnny Chen <jchen@huawei.com> for motivating this.
-
- * ace/OS_Dirent.cpp (readdir_emulation): Fixed a handle leak
- in the event that errors occur. Thanks to Kevin Burge
- <kcburge@systemware-inc.com> for reporting this.
-
- * ace/Log_Msg_UNIX_Syslog.cpp (open): Add an ACE_const_cast()
- to the program name for platforms like LynxOS whose openlog()
- method is char * rather than const char *. Thanks to Bala for
- reporting this.
-
-Sun Jul 15 11:06:33 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Log_Msg_NT_Event_Log.cpp: Fixed the implementation so that
- it's consistent with the new program_name() features. Thanks to
- Chris Kohloff <chris@kohlhoff.com> for this fix.
-
-Sun Jul 15 11:04:26 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/SSL/ACE_SSL.dsp:
- Removed references to $OPENSSL_ROOT, the user should configure
- those in the Tools -> Option -> Directories tab.
-
-Fri Jul 13 23:02:46 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_Stream.h:
- * ace/SSL/SSL_Asynch_Stream.cpp:
- * ace/SSL/SSL_Asynch_BIO.h:
- * ace/SSL/SSL_Asynch_BIO.cpp:
-
- Only support asynchronous SSL streams when using OpenSSL >
- 0.9.5a. The BIO method signatures changed in OpenSSL 0.9.6.
-
-Fri Jul 13 22:48:56 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_BIO.cpp (methods_ACE):
-
- Removed excess element in aggregate initializer.
-
-Fri Jul 13 22:29:01 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_Stream.cpp (print_error):
-
- The OpenSSL ERR_error_string_n() function is only supported in
- OpenSSL 0.9.6 or better.
-
-Fri Jul 13 14:59:18 2001 Alexander Libman <alexander.libman@baltimore.com>
-
- * ace/WIN32_Asynch_IO.h (ACE_WIN32_Asynch_Result):
- * ace/WIN32_Asynch_IO.cpp (set_error, set_bytes_transferred):
-
- Added new methods set_error() and set_bytes_transferred().
- Needed for below changes and new asynchronous SSL stream
- implementation.
-
- * ace/WIN32_Proactor.cpp (handle_events):
-
- Fixed error handling semantics so that it is consistent with the
- POSIX Proactor error handling semantics.
-
- (post_completion):
-
- Pass the amount of bytes transferred and the completion key to
- the Win32 PostQueuedCompletionStatus() function. The error, if
- any, will later be extracted in the handle_events() method.
-
-Fri Jul 13 15:59:45 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * netsvcs/servers/main.cpp (main): The server was always outputing
- LM_DEBUG information, even when the program was not run with the
- -d command line argument. Therefore, changed the following
- lines from:
-
- if (ACE::debug () == 0)
- ACE_Log_Msg::disable_debug_messages ();
-
- to:
-
- if (ACE::debug () == 0)
- ACE_LOG_MSG->priority_mask (~LM_DEBUG, ACE_Log_Msg::PROCESS);
-
- Thanks to Jerry D. De Master <jdemaster@rite-solutions.com> for
- reporting this fix.
-
-Fri Jul 13 12:16:03 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_BIO.h:
- * ace/SSL/SSL_Asynch_BIO.cpp:
- * ace/SSL/SSL_Asynch_Stream.h:
- * ace/SSL/SSL_Asynch_Stream.cpp:
-
- New asynchrounous SSL stream implementation contributed by
- Alexander Libman <alexander.libman@baltimore.com>.
-
- * ace/SSL/ACE_SSL.dsp:
- * ace/SSL/Makefile:
- * ace/SSL/Makefile.bor:
-
- Added new asynchronous SSL stream source files to these
- Makefiles and project files.
-
-Fri Jul 13 09:40:08 2001 Jerry D. De Master <jdemaster@rite-solutions.com>
-
- * ace/Log_Msg.*,
- ace/Logging_Strategy.*,
- ace/Log_Msg_UNIX_Syslog.*:
- Applied patches to ACE_Log_Msg, ACE_Logging_Strategy, and
- ACE_Log_Msg_UNIX_Syslog that are required to add the program
- name logging strategy option ('n') and to initialize the UNIX
- syslog facility with the program name. Also included are Boris
- Kolpackov <bosk@ipmce.ru> patches for ACE_LACKS_IOSTREAM_TOTALLY
- to ACE_Logging_Strategy.
-
-Thu Jul 12 19:54:27 2001 Ossama Othman <ossama@uci.edu>
-
- * examples/Registry/test_registry_update.cpp (main):
-
- Fixed unused argument warning.
-
-Thu Jul 12 19:57:12 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added TAO/tests/RTCORBA/ORB_init to the auto run list.
-
-Thu Jul 12 17:11:35 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB):
-
- Temporarily removed the IA-64 build till some issues get sorted
- out.
-
-Thu Jul 12 06:01:03 2001 John Michael Zorko <j.zorko@att.net>
-
- * netsvcs/lib/Server_Logging_Handler.cpp:
- Added an an additional #define in config-macosx.h called
- ACE_HAS_MACOSX_DYLIB, and checked to see if this was _not_
- defined before instantiating the offending template in
- Server_Logging_Handler.cpp. OS X has this thing about .dylibs
- (OS X version of .so) where they can't have any duplicate
- symbols, which is why libnetsvcs wasn't building on OS X
- earlier. This fixes that.
-
- * include/makeincludes/platform-macosx.GNU: Added -lACE to the
- LIBS line, which fixed the majority of the build problems.
-
- * ace/config-macosx.h: Added the ACE_HAS_MACOSX_DYLIB #define
- mentioned above.
-
-Thu Jul 12 06:01:03 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/TLI_Connector.cpp (complete): Changed ACE_OS::t_rcvconnect()
- to simply t_rcvconnect(). Thansk to Andreas Geisler for
- reporting this.
-
-Thu Jul 12 09:43:36 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/FILE_Connector.h (ACE_FILE_Connector, connect):
-
- Removed the default O_EXCL flag I added a few days ago. It is
- mostly useful for preventing symbolic link attacks in a
- directory with global write permissions. Pass the
- responsibility of using the O_EXCL flag when necessary on to the
- application developer.
-
-Wed Jul 11 22:31:50 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU (clean.local):
-
- Added ti_files to remove the template cache generated by KCC.
-
- * ace/TLI_Acceptor.cpp(open_new_endpoint):
-
- Fixed a small typo causing compilation errors under Tru64.
-
-Wed Jul 11 13:06:33 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Log_Msg_Test.cpp: Changed the ostream test to close the
- under-test ostream file before trying to open it and read the
- contents. Avoids the "already open" error now that
- ACE_FILE_Connector includes O_EXCL by default, and avoids any
- potential file buffering issues reading an already-open file.
-
-Wed Jul 11 08:31:02 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/Dirent_Test.cpp:
-
- Wrapped a string literal with ACE_TEXT, to get rid of a Win2000
- WChar build error.
-
-Wed Jul 11 06:41:43 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/TLI_Stream.cpp,
- * ace/TLI_Connector.cpp,
- * ace/TLI_Acceptor.cpp: Added enhancements so that the code would
- work on Win32. Thanks to Andreas Geisler
- <Andreas.Geisler@erl9.siemens.de> for reporting this.
-
-Tue Jul 10 19:26:15 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/ace_dll.dsp:
-
- Disabled generation of source browse information. It was
- causing problems on some existing builds that didn't use it.
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- Removed certificate verification code. It is up to the
- application, not the ACE_SSL library, to perform proper
- certificate verification.
-
-Tue Jul 10 23:02:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tests/Log_Msg_Test.cpp:
- Fix test so it doesn't open output file to write to twice.
- Thanks to Ossama for finding it.
-
-Tue Jul 10 19:10:19 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace.icc: Corrected the mis-applied patch for ace.icc in
- Mon Jul 09 19:12:42 2001 Steve Huston <shuston@riverace.com>
-
-Tue Jul 10 16:01:52 2001 Ossama Othman <ossama@uci.edu>
-
- * THANKS:
-
- Added Sangeetha Ramadurai <Sangeetha.Ramadurai@geind.ge.com> to
- the hall of fame.
-
-Tue Jul 10 18:15:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/WFMO_Reactor.cpp (event_handling): Move the logic for
- noticing that the wait timed out, but did not expire any
- timers, into this function. Will remove it from Reactor.cpp,
- to properly move the fix into handle_events() rather than
- needing to call run_reactor_event_loop to get it right.
- * ace/Select_Reactor_T.cpp - still need to add similar logic here.
-
- * ace/config-sunos5.6.h: Re the following:
- Mon Jul 2 15:26:32 2001 Nanbor Wang <nanbor@cs.wustl.edu>
- Replaced ACE_HAS_POSIX_SEM, and left ACE_LACKS_NAMED_POSIX_SEM out.
- Solaris does indeed have POSIX semaphores in 2.6 and later, but
- requires the changes to OS.i below to work right.
-
- * ace/OS.h: For ACE_PROC_PRI_OTHER_MIN (and MAX), on HP-UX,
- convert the HP-UX priority value to the POSIX range.
-
- * ace/OS.i (ACE_OS::sema_init, named POSIX semaphore): On Solaris
- and HP-UX, the name of a POSIX semaphore needs to start with
- a slash (further restricted on Solaris). Enforce that here by
- prepending a slash, or by chopping off parts of the name.
-
-Tue Jul 10 16:08:04 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU:
-
- Fixed the default flags so that it enables the user to override
- settings. Now that the long pending fix to wrapper_macros.GNU is
- through, this should work fine now.
-
-Tue Jul 10 13:37:31 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/OS_Dirent.cpp (readdir_emulation):
-
- Removed the hard cast to char* of one of the two arguments in
- a call to strcpy. In the WChar win32 build, this cast was
- causing the source and target strings to be of different widths.
-
-Tue Jul 10 11:32:26 2001 Tibor Kiss <tkiss@mindmaker.hu>
-
- * ace/Log_Msg.cpp:
- Completed the ACE_Log_Msg::close method with the
- ACE_Thread::keyfree (log_msg_tss_key_) and key_created_ = 0; to
- ensure restartability by multiple successive ACE::init and
- ACE::fini calls. This fix prevent leaks from occurring when
- ACE::init() and ACE::fini() are called multiple times.
-
-Tue Jul 10 11:12:00 2001 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/OS_Dirent.{h, inl}: refactored XDIR, dirent usage for pSOS -
- user is no longer responsible for buffer deallocation after each
- readdir call, only for passing the pointer returned from opendir
- into closedir when all done. ACE_DIR structure is now used
- consistently for all pSOS dirent calls.
-
-Tue Jul 10 06:06:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Service_Repository.h: Updated the insert() comment to
- clarify the return values. Thanks to Johnny Willemsen for
- suggesting this.
-
- * ace/Service_Repository.{h,i}: Made the current_size() and
- total_size() methods const. Thanks to Johnny Willemsen for
- suggesting this.
-
- * ace/Service_Repository.h: Fixed a typo in the comments. Thanks
- to Johnny Willemsen for reporting this.
-
-Tue Jul 10 08:39:04 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-vxworks5.x.h:
-
- Added the macro ACE_LACKS_UNIX_SYSLOG.
-
-Tue Jul 10 08:26:57 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Log_Msg_UNIX_Syslog.cpp:
-
- Added a macro, ACE_LACKS_SETLOGMASK, for platforms that have
- syslog, but don't have setlogmask().
-
- * ace/config-chorus.h:
-
- ChorusOS 4.0.1 happens to be one of them.
-
-Tue Jul 10 09:00:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/OS_Dirent.h
- Made the member 'd_name' of the 'dirent' struct non-const, because
- BCB had problems with it
-
-Mon Jul 09 22:41:43 2001 Ossama Othman <ossama@uci.edu>
-
- * include/makeinclude/wrapper_macros.GNU (exceptions):
-
- Include platform_macros.GNU before the default for "exceptions"
- is set. This fixes a problem where the default native
- exceptions setting in platform_linux.GNU was not set due to the
- fact that it was previously set in wrapper_macros.GNU. Thanks
- to Hans Utz <hans.utz@informatik.uni-ulm.de> for tracking down
- the problem.
-
-Mon Jul 9 16:40:02 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Dirent_Selector.cpp (ACE_Dirent_Selector):
-
- Correct order of initialization of members to match order of
- declaration. Fixes a warning issued from GCC.
-
- * ace/Dirent_Selector.inl:
-
- Added missing RCS ID keyword. Fuzz was whining about the lack
- of it.
-
- * ace/Dirent_Selector.h:
-
- Corrected some Doxygen comments.
-
-Mon Jul 09 19:12:42 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace.icc: Added Log_Msg_UNIX_Syslog and Log_Msg_NT_Event_Log
- modules to the LOGGING component. Added Dirent_Selector to the
- UTILS component.
-
-Mon Jul 9 15:59:56 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/config-lynxos.h:
- Added ACE_LACKS_MKSTEMP since LynxOS doesn't seem to have
- this.
-
-Mon Jul 9 15:28:29 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Dirent_Selector.cpp:
- * ace/Dirent_Selector.h:
-
- Added ACE_INLINE guards around inclusion of Dirent_Selector.inl.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- Added Dirent_Selector.{h,i,cpp} to these projects.
-
-Mon Jul 9 06:52:09 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Makefile.bor (OBJFILES): Added the Dirent_Selector.obj file.
-
- * tests/Dirent_Test.cpp: Integrated a new test for the
- ACE_Dirent_Selector class.
-
- * ace/Makefile (UTILS_FILES),
- * ace/Dirent_Selector.h,
- * ace/Dirent_Selector.inl,
- * ace/Dirent_Selector.cpp: Added support for a C++ wrapper facade that
- encapsulates ACE_OS_Dirent::scandir(). Thanks to Rich Newman for
- contributing this, as well.
-
- * ace/OS_Dirent.h,
- * ace/OS_Dirent.inl,
- * ace/OS_Dirent.cpp: Added support for the scandir() feature, which
- makes it possible to selectively pick which files in a directory
- to iterate over. Also fixed a bug in the emulation of dirent.
- Thanks to Rich Newman <RNewman@directv.com> for contributing
- these fixes.
-
-Mon Jul 09 14:39:50 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (thr_getprio and thr_setprio): Changed these two
- function such that if we are on Solaris and we have pthreads
- enabled, we should use the pthread calls rather than the native
- Solaris calls. The reasons for choosing the pthread calls is
- due to following problems with the native calls:
-
- - thr_getprio() is evil because on Solaris 5.8, a thread with
- priority -20 (SCHED_OTHER) is reported to have priority 80.
-
- - thr_setprio() is evil because it cannot set the negative
- priorities on Solaris 5.8.
-
- - Also, thr_setprio() cannot change the priority of a thread
- with negative priority to a positive priority on Solaris 5.8
- (even though there is no error reported and thr_getprio() shows
- that the change happened but pthread_getschedparam() shows that
- no change happened).
-
- - In addition, suppose a thread of policy SCHED_RR or SCHED_FIFO
- uses thr_setprio() to reset its priority, the priority will be
- reset but the scheduling policy will be dropped to SCHED_OTHER.
- This happens with both Solaris 5.7 and Solaris 5.8.
-
-Mon Jul 9 13:33:43 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
- Change PACE path to start at $PACE_ROOT rather than $ACE_ROOT/PACE
- since the latter is not as flexible. Defined PACE_ROOT if not
- already defined. Also, added inclusion of PACE library for VxWorks
- even when inlining since not all the PACE functions should be
- inlined.
-
-Mon Jul 09 10:59:22 2001 Ossama Othman <ossama@uci.edu>
-
- * THANKS:
-
- Added Mouna Seri <seri@crhc.uiuc.edu> to the hall of fame.
-
-Mon Jul 9 11:10:44 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/config-win32-msvc-5.h:
- * ace/config-win32-msvc-6.h:
-
- Added conditional definitions for ACE_LD_DECORATOR_STR
- "mfc" and "mfcd" so that the MFC release and debug versions
- of libraries can be dynamically loaded in the same way that
- the non-MFC release and debug versions are. Thanks to
- Francois Bernier <fbernier@gel.ulaval.ca> for suggesting
- this enhancement.
-
-Mon Jul 09 11:31:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/pre.h
- * include/makeinclude/compiler.bor
-
- Removed the disabling of the compiler warning 'parameter never
- used'. Unused parameters are handled by ACE_UNUSED_ARG macro.
- A missing ACE_UNUSED_ARG is now shown as warning in the BCB build
- log.
-
-Sun Jul 08 11:26:23 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h (mkstemp):
- * ace/OS.i (mkstemp):
-
- New mkstemp() wrapper. It is assumed to be available on the
- given platform, unless ACE_LACKS_MKSTEMP is defined.
-
- * ace/FILE_Connector.h:
-
- Added O_EXCL to the default flags. This is a security hole
- fix.
-
- * ace/FILE_Connector.cpp (connect):
-
- If mkstemp() is available, then use it to create a temporary
- file rather than mktemp() (via ACE_FILE_Addr) since mktemp() is
- susceptible to a denial-of-service attack.
-
- * ace/config-win32-common.h:
- * ace/config-vxworks5.x.h:
-
- mkstemp() is not supported on MS Windows and VxWorks. Define
- ACE_LACKS_MKSTEMP in these headers.
-
-Sun Jul 8 08:13:12 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Select_Reactor_Base.h: Added a comment explaining what
- the ACE_HAS_REACTOR_NOTIFICATION_QUEUE macro means. Thanks to
- Kobi Cohen-Arazi <kobic@bvr.co.il> for motivating this.
-
-Sat Jul 7 18:53:49 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU:
-
- Revert the changes made to this file. Please see the file for a
- lengthy description.
-
-Fri Jul 06 21:53:26 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/config-win32-borland.h:
- Reverted addition of ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION.
-
-Fri Jul 6 19:55:23 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * examples/Reactor/Multicast: Adding the support for UNIX Syslog
- broke this example because LOG_DEBUG was suddenly defined as a
- macro (it's in syslog.h). I've fixed this by renaming the LOG_
- enums to LM_ instead. Thanks to Bala for reporting this.
-
-Fri Jul 06 20:23:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Refcoutned_Auto_Ptr.i (null): Change const_cast<> to
- ACE_const_cast() to build on older compilers, like IBM C/C++ 3.6.6.
-
-Fri Jul 06 20:13:29 2001 Steve Huston <shuston@riverace.com>
-
- * netsvcs/lib/Name_Handler.cpp:
- * netsvcs/lib/Server_Logging_Handler_T.cpp:
- * netsvcs/lib/Token_Handler.cpp:
-
- More ACE_DEBUG disables.
-
-Fri Jul 6 15:55:54 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h (ACE_FD_SETSIZE):
-
- Integrated patch from Jody Hagins <jody@atdesk.com>. Set the
- default reactor file descriptor set size to be an integer
- constant rather than a preprocessor constant. Some third party
- software #undef FD_SETSIZE in their header files, causing build
- problems in ACE.
-
-Fri Jul 06 18:20:39 2001 Steve Huston <shuston@riverace.com>
-
- * netsvcs/lib/Client_Logging_Handler.cpp: #if 0'd out a bunch of
- ACE_DEBUG statements that aren't appropriate for use in commercial
- logging. These can be #if 1'd if there's some doubt while debugging
- this stuff, but they aren't useful once debugged, and are
- distracting since they're interespersed with application records.
-
-Fri Jul 6 13:40:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg_UNIX_Syslog.cpp: Fixed a warning in g++.
-
-Fri Jul 06 11:39:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/INET_Addr.h: Clarified (and improved doxygenation) of
- constructor and set() methods regarding byte orders.
-
- * tests/Max_Default_Port_Test.icc: New file for this test.
- * tests/tests.icp: Added Max_Default_Port_Test
-
-Fri Jul 6 08:36:20 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * netsvcs/Makefile: Don't build this if ACE_COMPONENTS does not
- contain Other. The netsvcs library requires Naming_Context.
-
-Fri Jul 6 05:44:13 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Makefile (LOGGING_FILES): Added support for
- Log_Msg_UNIX_Syslog.
-
- * ace/Log_Msg_UNIX_Syslog.{h,cpp}:
- * ace/Log_Msg.cpp,
- * ace/OS.h: Added support for a new UNIX syslog backend for the
- ACE_Log_Msg class. Thanks to Jerry D. De Master
- <jdemaster@rite-solutions.com> and Robert Davidson
- <robert@rdavidson.freeserve.co.uk>.
-
- * ace/SOCK_Dgram.h: Fixed a typo in one of the send() method
- comments. Thanks to Alain Decamps <Alain.Decamps@PIDPA.be> for
- reporting this.
-
- * ace/config-macosx.h: Added a new file courtesy of John
- Zorko so that things will work on MacOSX.
-
-Thu Jul 5 23:22:21 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- Fixes that were required for fixing bug 575. Merged in from
- branch bug_575_stage_2.
-
-Thu Jul 5 23:09:29 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (ACE_InputCDR): Fixed a long standing bug in
- the branch. This caused the DSI_Gateway test to fail. The
- problem was from setting the write pointer to a wrong position
- during the construction.
-
-Thu Jul 5 14:39:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Merged with the main trunk and moved it to a new branch by name
- bug_575_stage_2.
-
-Thu Jun 28 15:25:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor.h (ACE_Reactor):
- * ace/Reactor.cpp: Added a new method resumable_handler () to the
- reactor interface. This would indicate whether the application
- can take advantage by resuming the handlers themselves or
- not. Not all reactors can allow this feature.
-
- * ace/Reactor_Impl.h:
- * ace/Reactor_Impl.cpp: Added a pure virtual function so that all
- the implementations can decide whether the handlers are
- resumable or not.
-
- * ace/Select_Reactor_Base.h:
- * ace/Select_Reactor_Base.cpp:
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp:
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp:Implemented resumable_handlers ().
-
-Sun Jun 24 11:25:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Created this file. Got the whole stuff in ace to a new branch by
- name bug_575_stage_1. This ChangeLog file will be in branch
- bug_575.
-
-Fri Jun 22 16:52:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp: Changed the copy constructor for the
- ACE_InputCDR's. Instead of duplicating the ACE_Data_Block we
- now use the new copy constructor in the ACE_Message_Block.
-
- * ace/Message_Block.h:
- * ace/Message_Block.cpp: Added a new copy constructor to the
- ACE_Message_Block. This copy constructor does a deep copy from
- the data block if the data block of the incoming message block
- is on the stack or does a shallow copy of the data block (by
- incrementing the ref count) if it is on the heap.
-
- END of entries from bug_575_stage_2.
-
-Thu Jul 5 22:07:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the new perl script in LongUpcalls
- in the daily builds.
-
-Thu Jul 5 20:36:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/config-win32-borland.h
- define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
- * tests/Token_Test.cpp
- Fix template instantiation problem.
-
-Wed Jul 4 15:35:47 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/run_tests.vxworks:
- Removed invocation of CDR_Array_Test. According to the ace
- config files the compiler we are using is pre 2.8 (i.e.,
- ACE_HAS_GNUG_PRE_2_8 is defined). Therefore don't run
- CDR_Array_Test since the Makefile doesn't build it (due to
- the ACE_HAS_GNUG_PRE_2_8 macro).
-
-Wed Jul 04 14:26:10 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.h (class ACE_Acquire_Method): Moved the enums from
- the Reverse Lock class into ACE_Acquire_Method, a non-template
- class. These enums should have been inside the reverse lock
- class, but some lame compilers cannot handle enums inside
- template classes.
-
-Wed Jul 04 12:43:22 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.i (ACE_Reverse_Lock): Fully specified the
- ACE_ACQUIRE_METHOD type.
-
-Tue Jul 3 15:43:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a warning in g++.
-
-Tue Jul 3 14:44:00 2001 Craig Rodrigues <crodrigues@bbn.com>
-
- * ace/config-win32-common.h: Borland C++ apparently
- does not support the "extern template class" Microsoft VC++
- proprietary extension. Thanks to Chris Kohloff <chris@kohlhoff.com>
- for the fix.
-
-Tue Jul 03 12:26:33 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.h (class ACE_Reverse_Lock): Added a parameter to the
- constructor of the reverse lock. The ACE_ACQUIRE_METHOD
- parameter is used to indicate which acquire() method will be
- called on the real lock when the release() method is called on
- the reverse lock. REGULAR indicated the acquire() method, READ
- indicates the acquire_read() method, and WRITE indicates the
- acquire_write() method. Note that the try_*() methods are not
- represented here because we have to make sure that the release()
- method on the reverse lock acquires a lock on the real lock.
-
- Thanks to Edan Ayal <edana@bandwiz.com> for suggesting this.
-
-Tue Jul 3 06:20:13 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Reactor.h,
- * ace/Reactor_Impl.h,
- * ace/Select_Reactor_Base.cpp,
- * ace/Select_Reactor_Base.i,
- * ace/Select_Reactor_Base.h,
- * ace/WFMO_Reactor.cpp,
- * ace/WFMO_Reactor.h: Added an enhancement that allows the
- Reactor to selectively purge event handlers from its
- notification queue according to their Reactor_Mask type. Thanks
- to Edan Ayal <edana@bandwiz.com> for contributing this.
-
- * tests/Reactor_Notify_Test.cpp (run_notify_purge_test):
- Added a new set of tests for the new selective notification
- purging features of the Reactor. Thanks to Edan Ayal
- <edana@bandwiz.com> for contributing this.
-
- * ace/WIN32_Asynch_IO.cpp: Removed the
- ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority,
- signal_number), initializer since we no longer use virtual
- inheritance. Thanks to Alexander Libman
- <alexander.libman@baltimore.com> for reporting this.
-
- * ace/WIN32_Asynch_IO.h: Removed the virtual inheritance from
- ACE_WIN32_Asynch_Result for the ACE_Asynch_Read_Stream_Result
- and ACE_Asynch_Read_Dgram_Result classes. Thanks to Alexander
- Libman <alexander.libman@baltimore.com> for reporting this.
-
- * ace/Refcounted_Auto_Ptr.h: Made the destructor of
- ACE_Refcounted_Auto_Ptr virtual so that users can override it
- locally. Thanks to Jenny Kowald <jkowald@oz.agile.tv> for
- reporting this.
-
-Tue Jul 3 09:40:59 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_osf1_4.0.GNU:
- * include/makeinclude/platform_osf1_4.0_g++.GNU:
-
- Allow users to set options like debug, exceptions, ... without
- using override.
-
-Tue Jul 3 08:38:47 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_dup_proactor.dsp:
-
- Fixed a mistake in the link to the ACE library.
-
-Mon Jul 2 16:23:04 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_multiple_loops.dsp:
- * examples/Reactor/Proactor/test_proactor.dsp:
- * examples/Reactor/Proactor/test_proactor.dsw:
- * examples/Reactor/Proactor/test_timeout.dsp:
- * examples/Reactor/Proactor/test_udp_proactor.dsp:
-
- Fixed settings on release version of test_udp_proactor.dsp,
- added it to the workspace, and removed unused file folders
- from the FileViews of the other projects.
-
-Mon Jul 2 15:26:32 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-sunos5.6.h: Removed ACE_HAS_POSIX_SEM and
- ACE_LACKS_NAMED_POSIX_SEM. Thanks to Glenn Popelka
- <gpp@gpopelka.com> for helping track this down.
-
-Mon Jul 02 11:45:57 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/make_release:
-
- Disabled bootstrapping of ACE's autoconf support. It isn't
- ready for general use. Doing so reduces the amount of
- confusion. Thanks to Holger P. Krekel <krekel@merlinux.de> for
- motivating this change.
-
-Mon Jul 2 13:18:14 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * Moved ACE-configurations.txt into the docs directory. Also
- removed the hopelessly out of date BIBLIOGRAPHY file.
-
- * Moved all the ChangeLog-* files into the new ChangeLogs
- directory. Thanks to Holger P. Krekel <krekel@merlinux.de> for
- this suggestion.
-
-Mon Jul 02 11:20:52 2001 Ossama Othman <ossama@uci.edu>
-
- * config.guess:
- * config.sub:
-
- Updated to the latest versions from the GNU FTP site.
-
-Mon Jul 02 11:30:20 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.i: Since the release() method on the reverse lock
- calls the simple acquire() method on the real lock, it is
- assumed that it is a simple acquire/release protocol with the
- real lock. Therefore, I think all the other methods on the
- reverse lock tryacquire(), acquire_read(), acquire_write(),
- tryacquire_read(), tryacquire_write(), and
- tryacquire_write_upgrade() should not be allowed. This falls in
- line with the original concept of using reverse locks with
- regular guards.
-
- Thanks to Edan Ayal <edana@bandwiz.com> for pointing this out.
-
-Mon Jul 2 11:17:37 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Profile_Timer.cpp:
-
- Cleaned up the conditional macros. Added method bodies for
- ACE_Profile_Timer::get_rusage() and
- ACE_Profile_Timer::elapsed_rusage() when neither ACE_HAS_PRUSAGE_T
- nor ACE_HAS_GETRUSAGE is defined.
-
- * Reverted the reverted changes in this entry.
- "Fri Jun 29 22:31:56 2001 Balachandran Natarajan
- <bala@cs.wustl.edu>". These changes are ok, I just
- needed to fix the bug in Profile_Timer.cpp.
-
-Mon Jul 2 09:40:45 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_aix_ibm.GNU:
-
- Add the output filter to the linker to avoid the duplicate symbol
- warnings on AIX.
-
-Mon Jul 2 05:40:54 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Logging_Strategy.cpp: Enhanced the code so that it works with
- ACE_LACKS_IOSTREAM_TOTALLY. Thanks to Nir Drang <nir@bandwiz.com>
- and Edan Ayal <edana@bandwiz.com> for reporting this.
-
- * ace/SPIPE_Addr.cpp (set): Added a "+ 1" to the computation of
- the size of the SPIPE_Addr to account for the trailing NUL.
- Thanks to Oren Zeev-Ben-Mordehai <oren@phonedo.com> for
- reporting this.
-
- * ace/Refcounted_Auto_Ptr.{h,i}: Added support for a "null()"
- method to check if a refcounted auto ptr is NULL. Thanks to
- Jenny Kowald <jkowald@oz.agile.tv> for reporting this.
-
- * ace/config-macosx.h,
- * ace/platform_macosx.GNU: Enhanced these files to support MacOSX.
- Thanks to John Zorko <j.zorko@att.net> for contributing this.
-
- * ace/Synch.h: Fixed the Doxygen documentation for all the
- removed_ fields, which where somehow messed up. Thanks to
- Johnny Willemsen for reporting this.
-
-Sun Jul 1 11:49:13 2001 Alexander Libman <alexander.libman@baltimore.com>
-
- * ace: Enhanced the POSIX and Sun Proactor implementations as
- follows:
-
- . POSIX_SIG_Proactor is now based on POSIX_AIOCB_Proactor
-
- . All classes ACE_POSIX_SIG_Asynch_XXXX are removed.
- POSIX_SIG_Proactor uses the ACE_POSIX_AIOCB_Asynch_XXXX
- classes now.
-
- . ACE_POSIX_AIOCB_Proactor::register_and_start_aio (...)
- now calls a new virtual method: int
- ACE_POSIX_AIOCB_Proactor::allocate_aio_slot
- (ACE_POSIX_Asynch_Result *result).
-
- . The strategy of free slot allocation in SIG_Proactor is
- a bit different from AIOCB and SUN Proactors. The
- allocate_aio_slot() method is responsible for setting
- notification information for aio request
- (SIGEV_NONE/SIGEV_SIGNAL). For SIG_Proactor, the field
- aio_sigevent.sigev_value.sival_int now contains index of aiocb
- in the aiocb_list_, not a pointer.
-
- . The ACE_POSIX_AIOCB_Proactor::find_completed_aio (int &error_status,
- int &return_status, size_t
- &index, size_t &count)
- parameter index defines initial slot to scan and the new
- parameter count tells us maximum number slots to scan. On
- return: index contains value to start scan next time, count
- contains remained number of slots. Scanning is performed in
- "wheel" style to allow all requests be handled with equal
- priorities.
-
- . ACE_POSIX_AIOCB_Proactor::check_max_aio_num () checks for
- max_number_files to open and tries to setup max_number_files
- equal to aiocb_max_size_. if we failed than cut off
- aiocb_max_size_ value to existing max_number_files.
-
- . POSIX_Proactor added member int os_id_ and constructor sets up
- os_id_ (compilation time + run_time function) to know
- OS(Sun/HP/Linux/...) and version. We need such info for
- POSIX_SIG_Proactors to take into account the behavior of
- different OS.
-
- . Delivery of simulated/"post_completed" Asynch_Results
- (Timers, AsynchAccept,Wakeup ...). As both Proactors have no
- reliable mechanizm for delivery "post_completed" results, so
- the reliable queue of "post_completed" results was
- implemented. The new member of AIOCB Proactor
- ACE_Unbounded_Queue<ACE_POSIX_Asynch_Result *> result_queue_
- has been added. Also added protected methods to the
- ACE_POSIX_AIOCB_Proactor.
-
- . We had an error in all previous versions (from major ACE 5.1):
- post_completion (int how_many) does not guarantee that all
- completions will be delivered to the different threads running
- event_loop (sometimes several completions could be delivered
- to the one thread, in another thread performs during long time
- application_spesific_code ()). Moreover, you can run now
- Proactor event_loop in any number of threads (more than
- SIGQUEMAX).
-
-Sun Jul 1 11:49:13 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * examples/Reactor/Proactor: Integrated a test that exercises the
- support for asynchronous UDP operations. Thanks to Roger Tragin
- <r.tragin@computer.org> for contributing this.
-
- * ace/Synch_T.i: Changed the implementations of all the
- acquire*() method to call release(). Thanks to Edan Ayal
- <edana@bandwiz.com> for reporting this.
-
-Sat Jun 30 12:44:11 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * examples/Connection/blocking/SPIPE-acceptor.cpp: Added better
- support for shutting down the server when a signal occurs.
- Thanks to Rich Newman <RNewman@directv.com> for this
- enhancement.
diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a
deleted file mode 100644
index f665defb9a8..00000000000
--- a/ChangeLogs/ChangeLog-03a
+++ /dev/null
@@ -1,5826 +0,0 @@
-Mon Nov 19 11:03:07 2001 Ossama Othman <ossama@uci.edu>
-
- * ACE-INSTALL.html:
-
- Added missing build instructions for the ACE_SSL library, and
- updated the list of "make" flags recognized by ACE's Makefile
- scheme.
-
-Mon Nov 19 00:53:54 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_Tokens.h:
-
- Fixed some bugs introduced by my previous checkin because of
- patch confusion. Replaced all the standard C system calls with
- ACE_OS calls. Made it more wchar friendly.
-
- * ace/Makefile:
-
- Removed the dependency on /pkg/gnu/bin/flex. It was broken. We
- now use $(LEX) and $(YACC) defined in
- $ACE_ROOT/include/makeinclude/wrapper_macros.GNU.
-
- * include/makeinclude/wrapper_macros.GNU:
-
- Changed the definition of YACC to bison (by default). If people
- want to change this, it can be overridden by a variable in the
- Makefile. But things are most likely to break if you use yacc.
-
- * etc/Svc_Conf_l.cpp.diff:
- * etc/Svc_Conf_y.cpp.diff:
-
- Regenerated the diffs.
-
- *Sigh* This patching business is ugly.
-
-Fri Nov 16 07:22:19 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/make_release: Updated the script to copy the beta to a
- different location. Have tested this by creating a dummy
- repository and a dummy export directory. Things worked
- fine. Hopefully the beta should go through without any hassle.
-
- The script is tied to its usage on ace.cs. Needs to be
- changed. Will do that after this beta goes out. Having too many
- changes at the same time may not be good.
-
-Thu Nov 15 20:44:40 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * etc/Svc_Conf_l.cpp.diff: Updated. Thanks to Kitty for reporting it.
- * etc/Svc_Conf_y.cpp.diff: Added. We need it for uses of ACE_LIB_TEXT.
- * ace/Makefile: Added rule to apply patch to Svc_Conf_y.cpp.
-
-Thu Nov 15 08:26:57 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/*.cpp: Changed all remaining uses of ACE_TEXT to ACE_LIB_TEXT
- to be consistent... Thanks to Johnny Willemsen for reporting
- the inconsistencies and for Darrell Brunsch for clarifying what
- the right behavior should be.
-
-Wed Nov 14 07:43:20 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * docs/ACE-guidelines.html: Updated the guidelines to explain
- the use of ACE_TCHAR for the argv parameter to main(). Thanks
- to Johnny Willemsen for reporting this.
-
- * ace/OS_Dirent.inl (opendir): Replace char * const cast with
- ACE_TCHAR * const cast. Thanks to Nick Pratt for reporting
- this.
-
- * tests/Upgradable_RW_Test.cpp (main): Fixed the test to avoid
- dividing by 0 and also initialized all pointers to NULL. Thanks
- to Johnny Willemsen for reporting this. Thanks fixes BudID 650.
-
-Tue Nov 13 15:25:04 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/ACE.h (ACE): Clarified what the time_len parameter is used for.
- Thanks to Tompa <safdsfd@adsffda.com> for reporting this.
-
-Sun Nov 11 09:50:52 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Naming_Context.cpp (info): Added an ACE_UNUSED_ARG to
- silence warning about "length" parameter and changed buf from
- char to ACE_TCHAR. Thanks to Johnny Willemsen for reporting
- this.
-
- * tests/Aio_Platform_Test.cpp: The argv parameter of main() should
- be ACE_TCHAR rather than char. Thanks to Johnny Willemsen for
- reporting this.
-
-Thu Nov 15 15:43:20 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/Naming_Context.cpp (info): Wrapped sprintf() arguments with
- ACE_LIB_TEXT. Fix supplied by Johnny Willemsen.
-
-Thu Nov 15 12:43:31 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * docs/wchar.txt: Added a writeup for ACE_LIB_TEXT and ACE_TEXT
- from "the authority."
-
-Wed Nov 14 21:36:42 2001 Ossama Othman <ossama@uci.edu>
-
- * docs/usage-bugzilla.html:
-
- Corrected link to the DOC Center's bugzilla site.
-
-Wed Nov 14 23:11:59 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/Naming_Context.cpp (info): Fixed Unicode build problems
- by consistently using ACE_TCHAR instead of char, and by
- using Unicode aware string functions in ACE_OS_String
- instead of ACE_OS.
-
- * ace/Svc_Conf_l.cpp: Default intialized ace_yy_c_buf_p to ACE_TCHAR
- instead of char. Default initialized ace_yy_cp, ace_yy_bp to 0.
-
- * ace/Svc_Conf_y.cpp: Wrap string literals passed to ace_yyerror
- with ACE_LIB_TEXT().
-
-Wed Nov 14 06:38:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/ACE-bug-process.html (HREF): Changed references from ace.cs
- to deuce.doc. Thanks to Johnny Willemsen for reporting this.
-
-Tue Nov 13 15:04:15 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * html/Stats/index.shtml:
- * html/Stats/detailed_performance.shtml:
- Improved documentation about the test location, ORB and network
- configuration used. Thanks to David Yongqiang Wang
- <davidyw@avaya.com> for pointing out the problems.
-
-Tue Nov 13 11:46:11 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * tests/Collection_Test.cpp (iterate_const): Fixed ACE_DEBUG print
- statements that were accessing the element of the unbounded set
- as an int rather than an UglyThing. Thanks to Ossama for
- pointing this out.
-
-Mon Nov 12 11:41:35 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.cpp (send, recv):
-
- In the va_arg versions of these methods, do not use
- send/recv_n() to as the underlying send/recv() method. It
- forces unnecessary blocking.
-
- Corrected return value semantics in versions of these methods
- that use loop to send/receive multiple buffers. If data was
- sent or received than do not return -1 on error. Instead return
- the amount of bytes sent/received. This is necessary to allow
- the caller to keep track of sent or received data. [Bug 882]
-
-Sun Nov 11 23:50:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tests/Date_Time_Test.cpp: Remove argv variable from
- main() to eliminate unused variable compiler warning.
- * tests/Arg_Shifter_Test.cpp: Same.
-
-Sun Nov 11 10:00:56 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.h (ACE_SSL_SOCK_Stream):
-
- Removed unused class members.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (sendv):
-
- If an error occurs but data was sent on a previous loop
- iteration then return the amount of bytes sent, not the error.
- This extends previous check for EWOULDBLOCK and ETIME. All
- errors are now caught. The caller must always know if any data
- was successfully sent. [Bug 882]
-
- Do not continue on to the next loop iteration if the amount of
- data sent was less than the amount data given. This avoids a
- subtle problem where "holes" in the data stream would occur if
- partial sends of a given buffer in the iovec array occured.
- [Bug 882]
-
-Sun Nov 11 07:58:07 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.cpp (sendv):
-
- Fixed unused variable warnings.
-
-Sat Nov 10 23:25:50 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added new SSLIOP "Big_Request" test to the list of regression
- tests to automatically run during the nightly builds.
-
-Sat Nov 10 22:13:54 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_Tokens.h:
-
- Regenerated the files after fixing the warnings that showed up
- under Sun CC Forte Update. They were caused because Sun CC's
- preprocessor doesn't like the #line statements generated by flex
- and bison. Since these files are not modified on a daily basis,
- people debugging the lexer can turn it on by removing the flags
- '-l' and '-L' to bison and flex respectively in the Makefile.
- For now, this removes a lot of noise.
-
- * ace/Makefile:
-
- Added flags '-l' to bison and '-L' to flex.
-
- * etc/Svc_Conf_l.cpp.diff:
-
- Regenerated the diff to match the current version.
-
- * etc/Svc_Conf_y.cpp.diff:
-
- This file held the stuff which have been obsoleted by the move
- to use bison. So removed this file to avoid causing confusion in
- the future. Thanks to Ossama for pointing this out.
-
- Let's see some green :-)
-
-
-Sat Nov 10 19:27:36 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
-
- If data is still buffered within OpenSSL's internal buffer, then
- force the Reactor to invoke the event handler (with
- the appropriate mask) before waiting for more events
- (e.g. blocking on select()) by returning a value greater than
- one. All pending data must be processed before waiting for more
- events to come in on the SSL handle.
-
- * ace/SSL/SSL_SOCK_Stream.h (reactor, handler, notify):
-
- These methods are no longer needed. Removed them.
-
- (sendv):
-
- Added missing timeout parameter.
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i (notify, recv_i, send_i, close):
-
- Reverted code that notify()ed the Reactor if data was still
- pending in OpenSSL's internal buffers. The idea was to force
- the reactor to call the appropriate event handler before polling
- for events (e.g. blocking on select()). However, notifications
- are not dispatched until after events are polled which meant
- that there is no point in notify()ing the Reactor.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler):
-
- These methods are no longer needed. Removed them.
-
- (sendv):
-
- Fixed/improved the writev() semantics and emulation in this
- method. Previously, if an iov_base buffer was successfully
- sent, that success was not reported to the caller if subsequent
- sends in the emulation loop failed. The caller would end up
- thinking that no part of the message was sent. The improved
- semantics are now the following if the underlying send() call
- returns with an EWOULDBLOCK or ETIME error condition:
-
- - If no data was sent, then return -1.
- - If some data was sent on a previous loop iteration then
- return the number of bytes successfully sent.
-
- In both cases, errno is unchanged. [Bug 882]
-
- Incidentally, this fixes a problem in TAO's SSLIOP pluggable
- protocol when sending very large requests. Thanks to Andrew
- Finnell <Andrew.Finnell@esecurityinc.com> for providing an
- example that exhibited the problem.
-
- Lastly, the missing timeout support has been added. The timeout
- is decremented on each loop iteration.
-
-Sat Nov 10 17:16:59 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (fopen): Removed redundant parentheses.
-
-Sat Nov 10 09:29:48 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.i (pipe): Replaced the _pipe() call on Win32 with the
- CreatePipe() call. Thanks to Bo Balders <bba@post.utfors.se>
- for reporting this.
-
- * ace/Log_Msg.cpp (log): The "format" string was omitted. Thanks
- to Martin Krumpolec for noticing this.
-
-Sat Nov 10 08:48:24 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Arg_Shifter.{h,cpp}: Added a new constructor to ACE_Arg_Shifter
- so that it can handle both const char ** and char ** arguments.
-
-Fri Nov 9 07:42:41 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Arg_Shifter.cpp: Made the argv parameter to ACE_Arg_Shifter
- a "const" ACE_CHAR **.
-
- * tests/Arg_Shifter_Test.cpp (main): Added "const" to the
- args local variable to remove a warning from SunC++.
-
-Fri Nov 9 11:23:01 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * tests/Collection_Test.cpp: Fixed up things that caused problems
- on several platforms. Added the ARRAY tests back in.
-
-Thu Nov 8 14:52:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.h: Added a new 'M' option to print out the name of
- the log priority. Thanks to Vladimir Chovanec
- <Vladimir.CHOVANEC@asset.sk> for reporting this.
-
-Thu Nov 8 10:41:44 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS_String.h: Enhanced the documentation so that it explains
- the differences between ACE_OS::strsncpy() and ACE_OS::strcpy()
- more precisely. Thanks to Alain Decamps for contributing this.
-
- * ace/Naming_Context.{h,cpp}: The info() method should have ACE_TCHAR **
- rather than char **. Thanks to Johnny Willemsen for reporting
- this.
-
- * ace/OS.cpp: Added support for Borland's idiosyncratic _wfdopen()
- method. Thanks to Johnny Willemsen for reporting this.
-
-Wed Nov 7 05:17:03 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Message_Queue_T.{h,cpp}: Changed the typo DEFUALT_PRIORITY
- to DEFAULT_PRIORITY.
-
- * ace/OS.i: In BCB the _wtempnam() has the following signature:
- wchar_t *_wtempnam(wchar_t *dir, wchar_t *prefix)
-
- This means that the arguments must be made non-const by a cast. The
- fix is to add some defines so that with BCB and no wchar the
- _tempnam is used (with the casts) and with BCB and wchar then
- the _wtempnam is used with the casts. Thanks to Johnny
- Willemsen for this fix.
-
-Thu Nov 8 14:52:39 2001 Steve Huston <shuston@riverace.comy>
-
- * ace/Arg_Shifter.h: Doxygen-ized some comments.
-
- * ace/Date_Time.i (update): Add 1900 to years value to convert from
- localtime's years-since-1900 value to now. Add 1 to the month
- to convert localtime's 0-11 range to 1-12. Thanks to Syed
- Wasim Ali <syed.ali@neustar.com> for reporting this.
-
- * tests/Date_Time_Test.(cpp dsp icc): New test for ACE_Date_Time.
-
- * tests/tests.dsw:
- * tests/tests.icp:
- * tests/Makefile[.bor]: Added Date_Time_Test.
-
- * tests/run_test.lst: Added Arg_Shifter_Test and Date_Time_Test.
-
-Thu Nov 8 11:53:00 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Arg_Shifter_Test.(cpp dsp icc): New test for ACE_Arg_Shifter.
-
- * tests/tests.dsw:
- * tests/tests.icp:
- * tests/Makefile[.bor]: Added Arg_Shifter_Test.
-
-Thu Nov 8 13:05:12 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_irix6.x_sgic++.GNU:
-
- Added an option to suppress warnings about #pragma pack.
-
-Thu Nov 8 10:43:22 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/OS.cpp:
-
- Correct a build problem for GHS on Win32.
-
-Wed Nov 07 13:50:39 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Task_T.h (ACE_Task): Decorated ACE_Task with ACE_Export to
- avoid VC7's internal compiler error. Thanks to Darrell for
- submitting the change.
-
-Wed Nov 7 10:59:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * include/makeinclude/platform_sunos5_g++.GNU: Append -D_REENTRANT
- to CPPFLAGS if threads=1
-
-Wed Nov 7 08:09:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Changed the name CC5 build as
- CC51. It uses version 5.1 of the compiler anyway.
-
-Tue Nov 6 14:39:28 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/SString.i (find),
- * ace/Local_Name_Space_T.cpp (resolve_i): Fixed "off-by-one"
- bugs with ACE_OS::strscpy(). Thanks to Alain Decamps
- <Alain.Decamps@PIDPA.be> for contributing this.
-
-Tue Nov 6 13:25:40 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * tests/Collection_Test.cpp: Committed an old change that uses an
- actual class as the element in the Unbounded_Set rather than an
- int. I wrote this to get a better understanding of how the
- iterator and accessors on the iterator worked.
-
- * tests/SString_Test.cpp (main): Added a test for the rep() method
- that insures that the char array returned is equivalent to the
- string in the ACE_CString from which it's obtained.
-
-Mon Nov 5 10:12:01 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.cpp,
- * ace/Local_Name_Space_T.cpp,
- * ace/FILE_Addr.cpp,
- * ace/Acceptor.cpp,
- * ace/ACE.cpp: Changed uses of strncpy() to ACE_OS::strsncpy().
- Thanks to Alain Decamps for these fixes.
-
-Sun Nov 4 12:11:31 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Reactor.cpp: Enhanced all the Reactor's event loop methods
- to first check and see if the Reactor's been deactivated and to
- bailout immediately in this case. Thanks to Don Hinton for
- suggesting this.
-
- * ace/Reactor.i: Moved the reactor_event_loop_done() method from
- the *.cpp file into the *.i file and made inlineable.
-
- * ace/Select_Reactor_T.cpp: Be more careful about error handling in the
- dispatch_notification_handlers() method. If a failure occurs,
- when dispatch_notifications() is called, return -1, rather than
- erroneously "incrementing" the count of the number of handlers
- dispatched. Thanks to Don Hinton for reporting this.
-
-Sat Nov 3 11:15:43 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * The following fixes are from Joachim Achtzehnter <joachima@netacquire.com>:
-
- In ace/config-pharlap.h we had to explicitly #undef
- ACE_HAS_WCHAR after the #include "ace/config-win32.h"
- directive. Without this change the resulting DLL depended on
- several wide character versions of Win32 system functions, such
- as _CreateMutexW. At least some of these dependencies were
- caused by ace/OS.i.
-
- In ace/Log_Msg.cpp we had to add !defined(ACE_HAS_PHARLAP) to a
- few more places in addition to the ones Bruce Trask had posted
- to avoid reference to the NT Eventlog functionality.
-
- At the top of ace/Log_Msg_NT_Event_Log.h and
- ace/Log_Msg_NT_Event_Log.cpp we added !defined(ACE_HAS_PHARLAP)
- to completely bypass the contents of these two files.
-
- * ace/DEV_Addr.i (addr_to_string):
- * ace/Local_Tokens.i (name):
- * ace/Module.i (name):
- * ace/OS.i (asctime_r):
- * ace/SPIPE_Addr.i (addr_to_string):
- * ace/UNIX_Addr.i (addr_to_string):
- * ace/SString.i (rep): Changed uses of strncpy() to ACE_OS::strsncpy().
- Thanks to Alain Decamps for these fixes.
-
-Fri Nov 2 14:38:49 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Task.h (ACE_Task_Base): Clarify the meaning of the put()
- hook method. Thanks to Tommy Svensson <tommysvensson@yahoo.com>
- for motivating this.
-
-Mon Nov 5 14:23:12 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/ACE.cpp:
-
- Remove a build warning for gcc 2.95.3 on SunOS 5.6.
-
-Mon Nov 5 14:21:30 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- Added the HP-UX nightly build back to the list.
-
-Mon Nov 5 13:31:15 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/ACE.cpp:
-
- Fix a build warning for 64-bit HP-UX.
-
- * ace/Active_Map_Manager_T.i:
-
- Cast the free list id to ACE_UINT32 to match up with the
- slot_index () type. On 64-bit HP-UX, the free list id type
- (size_t) is a 64 bit number and must be cast down to 32 bits.
- Otherwise, the slot_index is cast up to 64 bits and does not give
- the correct results.
-
- * include/makeinclude/platform_hpux_aCC.GNU:
-
- Add a -L./ to allow the 64-bit HP-UX builds to link properly.
-
-Mon Nov 5 11:17:20 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Add support for the new status.txt file in the scoreboard.
-
-Mon Nov 5 13:02:50 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-hpux-11.00.h:
-
- Added #define of ACE_HAS_CHARPTR_DL. This corresponds with the
- declaration of dlopen(char*,unsigned int).
-
- * ace/OS.cpp:
-
- Changed the default thread scope to system (similar to Linux).
- Process thread scope is not supported in HP-UX.
-
-Sun Nov 04 11:18:31 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (fopen): Changed to forward call to fopen instead of
- _fopen on non-borland compilers when not using UNICODE. This
- change allows the code to compile on Win98. Thanks to Jstwo
- <jstwo@writeme.com> for submitting the fix.
-
-Thu Nov 1 16:21:51 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * bin/auto_run_tests.pl: Added snippet of code that puts the
- current directory ('.') in the PATH environment variable since
- auto_run_tests.pl depends on the current directory being there.
-
-Thu Nov 1 15:49:04 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.x_cxx.GNU: Moved the
- CXX_VERSION definition to the global scope.
-
- * include/makeinclude/platform_tru64_cxx.GNU: Added
- -D_PTHREAD_ENV_DECCXX flag to the CPPFLAGS. This is done only
- for v5.1, 1885. The pthreads.h in 1885 is messed up. The
- conditional include of c_asm.h is busted for DECCXX and
- v1885. Hence the change. We need to do this to protect ACE and
- TAO applications on this platform and compiler
- combinations. Thanks to Don Hinton <dhinton@gmx.net> for
- reporting the problem.
-
-Thu Nov 1 14:25:52 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/config-win32-borland.h:
-
- Added fix sent in by Chris Kohlhoff <kohlhoff@pop.ihug.com.au>
- to ACE_CC_PREPROCESSOR_ARGS to enable the recognition of a
- filename to which the preprocessor output is to be directed.
- There is also a corresponding fix in TAO_IDL/driver/drv_preproc.cpp
- that carries out the redirection.
-
-Thu Nov 1 10:27:21 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Select_Reactor_Base.h (open):
- * ace/Select_Reactor_T.h (ACE_Select_Reactor_T, open):
-
- Added a note about the "size" of the Select_Reactor on Unix
- platforms. On Unix platforms, the size parameter should be as
- large as the maximum number of file descriptors allowed for a
- given process. This is necessary since a file descriptor is
- used to directly index the array of event handlers maintained by
- the Reactor's handler repository. Direct indexing is used for
- efficiency reasons.
-
-Thu Nov 1 06:38:30 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/ACE.cpp: Fixed some minor formatting problems so that
- format_hexdump() works properly. Thanks to Kyle Brost
- <Kyle.Brost@quest.com> for reporting this.
-
- * ace/config-win32.h: Include the config-cygwin32.h file when
- __CYGWIN32__ is enabled. Thanks to Johnny Willemsen for
- reporting this.
-
- * ace/Synch.i (remove): Added some casts to make certain compilers
- happy? Thanks to Guillaume Renaud <guillaume.renaud@valtech.fr>
- for reporting this.
-
- * ace/OS.i: Updated the Win32 version of ACE_OS::llseek(). Thanks to
- Doron Rajwan <doron@BANDWIZ.COM> for reporting this.
-
-Wed Oct 31 11:25:40 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.h: The ACE_OS::llseek() method must be static! Thanks to
- Doron Rajwan <doron@BANDWIZ.COM> for reporting this.
-
-Tue Oct 30 08:30:16 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/RB_Tree.cpp (operator=): Make sure to check for self-assignment
- in the operator=. Thanks to Johnny Willemsen for reporting
- this.
-
-Mon Oct 29 05:23:56 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Naming_Context.{h,cpp}: Moved ACE_STATIC_SVC_REQUIRE from the
- .h file to the .cpp file to avoid multiple definitions. Thanks to
- Boris Kaminer <boris.kaminer@orcsoftware.com> for reporting this.
-
-Sun Oct 28 10:05:32 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/config-macosx.h:
- * include/makeincludes/platform_macosx.GNU
- Added new fixes to get this to work on MacOS X. Thanks to John
- Michael Zorko <j.zorko@att.net> and Fikri Pribadi
- <fikri@ugotacall.com> for contributing this.
-
-Wed Oct 24 23:59:13 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Configuration_Import_Export.cpp: Fixed a bug where a
- check of a pointer was made rather than the character pointed to
- by the pointer. Thanks to Juan Jose Comellas
- <uanjo@comellas.org> for reporting this.
-
-Tue Oct 30 22:53:57 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_l.cpp:
-
- Fixed incorrect #line preprocessor directives.
-
- * etc/Svc_Conf_l.cpp.diff:
-
- Regenerated this diff so that it includes recent updates.
-
-Mon Oct 29 20:12:40 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/run_test.lst:
-
- Added the Proactor test to the list of one-button tests to run.
-
-Mon Oct 29 20:04:40 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- More patches from Alexander Libman. The Proactor_Test appears
- to finally work on Linux.
-
-Mon Oct 29 17:49:21 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Added some error checks at places where
- token where acquired.
-
-Mon Oct 29 16:59:58 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (acquire_token): The acquire_token () called
- acquire with a sleep hook. It was wrong. It should just unblock
- the thread by sending notify. A bad cut and paste error
- :(. Thanks to Graeme Clark <gclark@opentext.com> for reporting
- this. This closes [BUGID 1077].
-
-Sun Oct 28 20:36:56 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Map_T.i (clone):
-
- Fixed syntax errors.
-
- * ace/Svc_Handler.cpp (new):
-
- Reverted Michael's change. It incorrectly altered the semantics
- of the new operator, particularly when compiling with native
- exception support enabled. Fixes a warning.
-
-Sun Oct 28 16:44:20 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Timer_Hash_T.cpp (ACE_Timer_Hash_T):
-
- Corrected syntax error that was introduced in the changes
- described below by removing extraneous trailing bracket.
-
-Sun Oct 28 13:15:00 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * ace/ACE.i:
- * ace/Activation_Queue.cpp:
- * ace/Bound_Ptr.i:
- * ace/Configuration.cpp:
- * ace/Configuration_Import_Export.cpp:
- * ace/Containers_T.cpp:
- * ace/Future.cpp:
- * ace/Handle_Gobbler.h:
- * ace/Local_Tokens.i:
- * ace/MEM_SAP.i:
- * ace/Map_T.i:
- * ace/Message_Block.cpp:
- * ace/OS_Errno.cpp:
- * ace/Object_Manager.cpp:
- * ace/Obstack_T.cpp:
- * ace/Refcounted_Auto_Ptr.i:
- * ace/Remote_Tokens.i:
- * ace/Strategies_T.cpp:
- * ace/Stream.cpp:
- * ace/Svc_Handler.cpp:
- * ace/Synch_T.cpp:
- * ace/TLI.cpp:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Queue_T.cpp:
- * ace/Unbounded_Queue.cpp:
- * ace/Unbounded_Set.cpp:
-
- Changed almost all direct usages of operator new in ACE to use
- ACE_NEW_RETURN (Exceptions is Dump_T.h). In one case in
- Stream.cpp the semantics changed slightly if operator new would
- have been overloaded, see the "@@ Michael" comment.
-
- When new got used with placement most of the usages got
- replaced with ACE_NEW_MALLOC_RETURN. In some cases as in
- Malloc_T.cpp, Map_Manager.cpp, PI_Malloc.i, Array_Base.cpp
- special cases exist, where the macros would have incurred
- different semantics and performance penalties.
-
-Fri Oct 26 07:37:43 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Quoter example will not run in
- minimum_corba builds.
-
-Wed Oct 24 08:04:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor.h: Improved the documentation of the
- end_reactor_event_loop ().
-
-Tue Oct 23 10:04:25 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Replaced uses of a static global lock with the
- ACE_Static_Object_Lock singleton.
-
- Fixed incorrect uses of the "%l" format specifier. "%d" is the
- expected format specifier.
-
- (Acceptor):
-
- Initialize the "sessions_" member in the base member initializer
- list. Corrects a problem where the session number initially
- contained a "garbage" value.
-
-Mon Oct 22 17:55:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/Svc_Conf_l.cpp: Remove include of stdlib.h, fix g++/Solaris
- build.
-
-Mon Oct 22 15:54:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x-hpc++.h: Remove hard-coded setting of
- ACE_HAS_EXCEPTIONS. It is controlled by platform_hpux_aCC.GNU.
-
-Mon Oct 22 15:50:35 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Chris Hughes name to the Hall of Fame
-
-Sun Oct 21 16:44:41 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp (disable_signal):
-
- Fixed warnings regarding a method that "hid" virtual function
- with the same name, in addition to unused argument warnings.
-
-Sun Oct 21 15:22:57 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Fixed warning about deprecated conversion of "const char *" to
- "char *" exhibited by GCC 3.0.x builds.
-
-Sun Oct 21 12:50:39 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/LSOCK.cpp: The ACE_LSOCK::recv_handle() was returning success
- without setting the I/O handle. Thanks to Rick Ohnemus
- <rick.ohnemus@systemware.com> for reporting this.
-
- * ace/config-freebsd-pthread.h: Changed
- #if (__FreeBSD_version > 430000) to
- #if (__FreeBSD_version > 440000) to get ACE to work with FreeBSD 4.4.
- Thanks to Gu Song <gusong_m@yahoo.com> for reporting this.
-
-Fri Oct 19 06:44:17 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/Reactor/WFMO_Reactor/test_window_messages.cpp:
- Don't use a global Event_Handler object since this violates the
- design rules for the ACE_Reactor.
-
-Sun Oct 21 13:39:27 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the Quoter example in
- $TAO_ROOT/examples to the list of tests in the daily builds.
-
-Thu Oct 18 20:56:53 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Added no-op main() function for platforms that do not support
- asynchronous IO.
-
-Thu Oct 18 22:46:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp: Fixed warnings in Sun CC and TRU 64 builds.
-
-Thu Oct 18 20:42:55 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
-
- Fixed Unicode build errors.
-
-Thu Oct 18 19:52:44 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/SString.h: clarify example in comments to ACE_Tokenize
- so that constant strings are not passed in its constructor.
-
- * examples/OS/Process/process.cpp: do not pass constant strings
- to ACE_Tokenize constructor. Thanks to
- Werner Buchert <w.buchert@medat.de> and
- Don Hinton <dhinton@swan.fr>.
-
-Wed Oct 17 23:56:45 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Proactor_Test.cpp:
- * tests/Proactor_Test.dsp:
-
- Proactor test contributed by Alexander Libman
- <alibman@baltimore.com>.
-
- * tests/tests.dsw:
-
- Added Proactor_Test project to the tests workspace.
-
-Wed Oct 17 18:59:53 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/install.bor:
- Borland makefile fix to ensure that, when doing the install
- target, core executables are built correctly if they don't
- already exist.
-
-Wed Oct 17 09:15:10 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-linux-common.h: Clarified that this file should
- not be included directly! Thanks to Suresh N
- <suresh.n@vergiltech.com> for reporting this.
-
-Wed Oct 17 16:00:19 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Graeme Clark to the Hall of Fame.
-
-Wed Oct 17 15:49:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp:
- * ace/TP_Reactor.h: Added remove_handler () calls to the
- TP_Reactor. Before this, the call on the reactor used to be
- handled by the Select_Reactor's implementation. The
- implementation has a problem. It tries to call handle_close ()
- (an upcall) as one of the calls after holding the token. This
- was asking for trouble. This could lead to deadlocks as
- mentioned in [BUG ID 1055].
-
- The method in the TP_Reactor now calls remove_handler () on the
- Select_Reactor (its base class) with a DONT_CALL flag. Then it
- calls handle_close () on the Event_Handler if the user did not
- pass in the DONT_CALL mask. This two step process would get
- around the problem that was mentioned before. Thanks to Graeme
- Clark <gclark@opentext.com> for reporting the problem and
- testing this fix.
-
- This should close [BUG ID 1055].
-
-Wed Oct 17 10:40:17 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
-
- If errno is set to EWOULDBLOCK for the SSL_ERROR_SYSCALL case,
- then continue the connection establishment loop. Do not return
- right away. Fixes non-blocking connection establishment on AIX.
- Thanks to Vladimir Chovanec <Vladimir.CHOVANEC@asset.sk> for
- providing this fix.
-
- * ace/SSL/SSL_SOCK_Stream.h (notify):
-
- Made this method protected. It isn't intended to be used
- internally by the ACE_SSL_SOCK_Stream class.
-
-Wed Oct 17 12:15:15 2001 Chris Cleeland <cleeland_c@ociweb.com>
-
- * ace/Select_Reactor_T.cpp (handle_error, check_handles): Add
- vxworks to the ever-growing list of OSs which return
- unpredictable values in errno when there's a bad file descriptor
- in a select mask. [Bug 1058].
-
- Thanks to Dave Arndt <darndt@oresis.com>, Tad Hetke
- <thetke@oresis.com>, and Erik Johannes <ejohannes@oresis.com>
- for tracking down and providing this fix.
-
-Tue Oct 16 23:08:27 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.h (ACE_Svc_Conf_Param):
-
- Added a new ACE_Obstack attribute that is passed down to the
- parser and scanner. This obviates the need for the global
- pointer to the ACE_Obstack that was formally used, which in turn
- avoids a race condition.
-
- (ace_obstack):
-
- No longer a need to maintain a global pointer to the ACE_Obstack
- instance used during parsing/scanning.
-
- * ace/Svc_Conf.y:
- * ace/Svc_Conf.l:
-
- Retrieve the Obstack from the parameter passed down to yyparse()
- and yylex() instead of using the (now non-existent) global
- instance. This is part of a race condition fix.
-
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_l.cpp:
-
- Updated to pull in the changes made to the source files from
- which these files were generated.
-
- * ace/Service_Config.cpp (process_directives_i):
-
- The global ACE_Obstack pointer used during each Service
- Configurator parse has been removed. An ACE_Obstack instance is
- now passed down to the parser and scanner in a
- reentrant/thread-safe manner via the new ACE_Svc_Conf_Param
- parameter. As such, there is no longer any need to maintain a
- global pointer to the ACE_Obstack instance in use, nor is it
- necessary to store/restore the previous value when performing
- nested or parallel Service Configurator directive processing.
- This fixes a race condition that was causing some memory
- corruption when parsing Service Configurator directives in
- parallel.
-
- Note that the ACE_Obstack is now instantiated on the stack
- rather than the heap, thus improving Service Configurator
- directive processing performance.
-
-Mon Oct 15 23:16:55 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Service_Config.h (process_directives_i):
-
- Updated the signature of this method to accept a parameter that
- will eventually passed to the parser and the scanner.
-
- * ace/Service_Config.cpp:
-
- No need to include "ace/Svc_Conf_Lexer_Guard.h" and
- "ace/Object_Manager.h".
-
- (process_directives_i):
-
- Updated the signature of this method to accept a parameter that
- will eventually passed to the parser and the scanner.
-
- Pass the "ACE_Svc_Conf_Param" parameter to the yyparse() call.
- This is reentrant/thread-safe.
-
- Check the error count found in the "ACE_Svc_Conf_Param" object.
- It's count is incremented in a thread-safe/reentrant manner.
-
- (process_directive, process_directives):
-
- The ACE_Svc_Conf_Lexer_Guard and its accompanying
- synchronization has been moved to the generated scanner code.
- This makes locking finer grained. Specifically, instead of
- holding a lock for the duration of the scope within which
- service configurator directive parsing and scanning is
- performed (e.g. for the duration of the yyparse() call), the
- lock is only held for the duration of the scope where service
- configurator directive scanning occurs (i.e. the entire yylex()
- call is synchronized). This is part of the core fix that
- corrects a deadlock that occurred when activating an ACE_Task,
- in conjunction with the singleton instance of the
- ACE_Thread_Manager, during Service Object initialization.
- [Bug 1036]
-
- * ace/Service_Config.i:
-
- Cosmetic update.
-
- * ace/Svc_Conf.h:
-
- Added declaration and method definitions for the
- ACE_Svc_Conf_Param class. Instances of this class contain the
- state used when parsing/scanning a given service configurator
- file or service configurator directive.
-
- (ACE_SERVICE_DIRECTIVE_STACK_DEPTH):
-
- There is no longer any hard-coded limit on the maximum depth
- nested service configurator directives may be processed. Only
- process resource limits limit the maximum nesting depth.
-
- (ace_yyparse, ace_yylex):
-
- Updated the parser and lexer entry points to accept an
- additional parameter, i.e. a pointer to an ACE_Svc_Conf_Param
- object.
-
- (ace_yy_push_buffer, ace_yy_pop_buffer):
-
- Pass a pointer to the buffer that will be "switched" in our out
- when processing nested service configurator directives those
- that are processed in parallel.
-
- * ace/Svc_Conf.l:
-
- Removed array that implemented the service configurator
- directive stack. The "stack" is now implemented using the
- function call stack itself. Hence there is no hard-coded limit
- to the stack size.
-
- Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE,
- COLON, STAR}. Just return their corresponding symbolic integer
- constants (e.g. ACE_COLON --> ':').
-
- Increment error and line count in the ACE_Svc_Conf_Param object
- passed to the yylex() function from yyparse(). This improves
- reentrance/thread-safety when tracking error counts.
-
- (yy_push_buffer, yy_pop_buffer):
-
- Pass a pointer to the buffer that will be "switched" in our out
- when processing nested service configurator directives those
- that are processed in parallel.
-
- * ace/Svc_Conf.y:
-
- Removed all references to ACE_{LPAREN, RPAREN, LBRACE, RBRACE,
- COLON, STAR}. Just use their corresponding symbolic integer
- constants (e.g. ACE_COLON --> ':').
-
- Increment error and line count in the ACE_Svc_Conf_Param object
- passed to the yylex() function from yyparse(). This improves
- reentrance/thread-safety when tracking error counts.
-
- * ace/Svc_Conf_Lexer_Guard.h:
-
- Store a pointer the lexer buffer currently being scanned.
-
- * ace/Svc_Conf_Lexer_Guard.cpp:
-
- Updated constructor to accept a pointer to an ACE_Svc_Conf_Param
- object. If the buffer in that object is zero, it will be
- initialized.
-
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_Tokens.h:
-
- Regenerated these files in order to pull in the updates made to
- their corresponding source files (i.e. Svc_Conf.{l,y}).
-
-Mon Oct 15 11:26:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv2: New directory for examples in "C++ Network
- Programming, Volume 2: Systematic Reuse with ACE and Frameworks"
- Moved these changes to the new directory, and reverted the
- C++NPv1 files to their ACE 5.2 state:
- Sun Oct 14 17:05:14 2001 Douglas C. Schmidt
- Tue Oct 9 07:46:20 2001 Douglas C. Schmidt
-
-Sun Oct 14 17:05:14 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/C++NPv1/Logging_Handler.{h,cpp}: Changed log_file_ from
- a reference to a pointer so that it can be initialized
- correctly. Thanks to Kitty for reporting this.
-
-Fri Oct 12 14:54:58 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/OS.i:
- Remove extraneous check for macro ACE_HAS_WINSOCK2_GQOS,
- which was breaking various builds under Windows.
- Thanks to Jeff McNiel <JMcNiel@datacrit.com> for pointing it out.
-
-Fri Oct 12 12:15:22 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- The QNX machine is no longer running that OS, plus attempts to
- bring it back to life failed. The build is removed until
- further notice.
-
-Thu Oct 11 17:52:32 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp:
- Somehow the file didnt get committed yesterday. So, committing
- the following change now.
-
- Wed Oct 10 16:56:18 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
-Thu Oct 11 10:57:58 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/RB_Tree.h:
- * ace/RB_Tree.i:
- * ace/RB_Tree.cpp:
- Reverted to the 5.2 release state. The proposed changes were
- breaking some builds, and they were not bug fixes in any case.
-
-Wed Oct 10 16:56:18 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp:
- Reverted the following change as it ended up with some problems
- for multicast services.
-
- Fri Oct 5 14:40:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
-
-Wed Oct 10 06:16:52 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Activation_Queue.{h,cpp}: Added support for two ACE_Allocator that
- will control how the message blocks and data blocks are
- allocated. Thanks to Gil Rapaport <grapaport@comgates.co.il>
- for contributing this.
-
- * examples/Reactor/WFMO_Reactor/test_apc.cpp (main):
- * examples/Reactor/WFMO_Reactor/test_abandoned.cpp (main): Don't
- use a global Event_Handler since this violates the design rules
- for the ACE_Reactor. Thanks to Heping He
- <heping.he@riskmetrics.com> and Hartmut Quast
- <HartmutQuast@t-online.de> for reporting this and to Irfan for
- suggesting where the problem arose.
-
-Tue Oct 9 07:46:20 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/C++NPv1/Logging_Handler.h: Added a new constructor to
- class Logging_Handler that just takes an ACE_SOCK_Stream. We
- need to use this in C++NPv2.
-
- * ace/Message_Queue_T.cpp (wait_not_full_cond): Thanks to Leo Kov
- <leo_kov@hotmail.com> for reporting this.
-
- * ace/TTY_IO.cpp (control): Inserted some useful
- ACE_OS::set_errno_to_last_error() calls. Also, for Win32 made
- readtimeoutmsec == 0 cause no timeout, whereas readtimeoutmsec
- == MAXDWORD causes infinite timeout. Thanks to Lars Steubesand
- <Lars_Steubesand@hsgmed.com> for reporting this.
-
-Mon Oct 8 20:19:44 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/DLL/test_dll.cpp: There's no need to specify
- ACE_DLL_SUFFIX as it prevent ACE_Lib_Find to figure out the
- correct DLL name.
-
- The ACE_ERROR_RETURN macro store and reset the errno so there's
- no need to use dll.error() with it. Changed to use "%p" to
- display the error.
-
- Thanks to Heping He <heping.he@riskmetrics.com> for reporting
- the problem.
-
-Mon Oct 8 11:15:21 2001 Angelo Corsaro <corsaro@doc.ece.uci.edu>
-
- * ace/RB_Tree.h (class ACE_RB_Tree_Node):
- * ace/RB_Tree.i:
-
- Changed access privilege on the operator new/delete to be
- public, and added assertion in those method implementation to
- make sure that wrong use of these method are promptly notified.
- This changes should fix the problem that some compiling were
- still having with RB_Trees.
-
-Sat Oct 06 23:06:41 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i, close):
-
- Removed the do/while(SSL_pending()) loop. Its introduction into
- the code was a bit misguided. There is no need to flush the SSL
- buffer before returning to the Reactor's event loop since the
- code now sends a notification to the Reactor to force the
- Reactor to invoke the event handler before waiting in the event
- loop. This fixes some SSL protocol errors that manifested
- during multithreaded SSL communication. [Bug 943]
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- It is no longer necessary to call SSL_accept()/connect() to
- flush the SSL buffer before running the Reactor's event loop
- since the Reactor is notified that it should call the
- appropriate event handler before blocking on select() for
- WaitForMultipleObjects(), for example.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (reactor, handler):
-
- New methods to set the Reactor and event handler associated with
- the ACE_SSL_SOCK_Stream. If each of these is set, then the
- Reactor will be notified if data is still pending in the SSL
- buffer.
-
- (~ACE_SSL_SOCK_Stream):
-
- Uninlined the destructor. There is no need for it to be
- inlined, and doing so only caused unnecessary code bloat.
-
- * ace/SSL/SSL_SOCK_Stream.h (notify, reactor, handler):
-
- Added these new method declarations, in addition to the
- corresponding attributes.
-
- Updated documentation.
-
- * ace/SSL/SSL_SOCK_Stream.i (notify):
-
- Method that pushes the event handler on to the Reactor's
- notification pipe when necessary. Invoked by recv_i() and
- send_i().
-
- * ace/SSL/SSL_SOCK_Acceptor.h:
- * ace/SSL/SSL_SOCK_Connector.h:
- * ace/SSL/SSL_Accept_Handler.h:
- * ace/SSL/SSL_Connect_Handler.h:
-
- Updated documentation.
-
-Sat Oct 6 16:04:29 2001 Angelo Corsaro <corsaro@doc.ece.uci.edu>
-
- * ace/RB_Tree.h:
- * ace/RB_Tree.i:
-
- The operator new and delete were declared to be No-Op but were
- not implemented as such. This was breaking some builds. Now the
- operator are declared as private and they also have a no-op
- implementation. This should solve some linking error that were
- occurring.
-
-Sat Oct 6 11:17:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Adrian Mercieca to the hallf of fame.
-
-Fri Oct 05 18:30:59 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/RW_Process_Mutex.cpp: Added inclusion ACE.h and fixed member
- initialization.
-
-Fri Oct 5 18:16:53 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SString.h:
- * ace/SString.cpp: Changes the usage of ostream to
- ACE_OSTREAM_TYPE. Thanks to Russ Noseworthy for letting us
- know.
-
-Thu Oct 4 07:10:01 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/RB_Tree.*: Added support for using the "ACE_Allocator" parameters
- to manage memory. Thanks to Airat A. Sadreev <airatsa@nm.ru>
- for reporting contributing this.
-
-Wed Oct 3 07:20:06 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/RW_Process_Mutex.{h,cpp}: Added the ability to create a
- unique name if the user doesn't supply one. Thanks to Tom
- Wagner <TomW@CoManage.net> for suggesting this.
-
- * ace/Synch.h: Clarified that the timed wait capabilities of
- ACE_Semaphore only work on Solaris if ACE_HAS_PTHREAD is enabled
- *and* ACE_HAS_POSIX_SEM/ACE_HAS_STHREAD are disabled. Thanks to
- Bonifides Bautista <earlboy@my-deja.com> for reporting this.
-
-Fri Oct 5 12:48:48 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (close):
-
- Reset the SSL object to allow another connection to be made
- using the existing ACE_SSL_SOCK_Stream instance. This prevents
- the previous SSL session state from being associated with the
- new SSL session/connection. Thanks to Vladimir Chovanec
- <Vladimir.CHOVANEC@asset.sk> for pointing out this problem and
- suggesting a course of action.
-
-Fri Oct 5 14:40:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp (open): Removed the #if defined (linux)
- from the code. Looks like this had to be removed to get it
- working for RTI under Linux. The other ChangeLog entries that
- this change is concerned with are "Sat Feb 17 17:23:46 2001
- Darrell Brunsch <brunsch@uci.edu>" and "Fri Jan 26 11:18:15 2001
- Douglas C. Schmidt". Looks like the patch provided by Keith
- Nicewarner <knicewar@erg.sri.com> is being reverted. I remember
- a communication from Keith which seemed to hint that this may
- not be required.
-
- Thanks to Russ Noseworthy for suggesting this.
-
-Fri Oct 5 14:04:39 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Hagen Ulrich to the Hall of Fame.
-
-Fri Oct 5 13:55:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Makefile: Removed the SUPPRESS_DASH_G option. Not really
- sure where it is used. Further, added a tab to the place where
- rules for CHORUS are set. This should fix BUGID 1049. Thanks to
- Hagen Ulrich <ulrich.hagen@siemens.com> and Dr.David Levine for
- reporting and verifying the fix.
-
-Fri Oct 05 05:56:50 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.2 released.
-
-Thu Oct 4 17:38:21 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Synch.h: Added some comments to explain the rationale for
- the different return values from the blocking and timed
- versions of ACE_Null_Semaphore::acquire(). Thanks to Doug
- Schmidt for explaining this.
-
-Thu Oct 4 17:27:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Handler.cpp (recv_log_record): Insure that
- the payload message block is properly aligned for any CDR
- extraction. Many thanks to Bala for noticing this problem and
- sending code for the fix.
-
-Thu Oct 4 17:08:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Process_Per_Connection_Logging_Server.cpp:
- In prepare(), call ACE_Process_Options::command_line() rather
- than ACE_Process_Options::process_name() to set the program
- path for the child process.
-
-Thu Oct 4 13:18:37 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Handler.cpp: Use a ACE_Message_Block,
- rather than hijacking a CDR block, to read the payload into.
-
-Thu Oct 4 10:14:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Donald Acton to the Hall of Fame.
-
-Thu Oct 4 06:39:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: Added ACE_LACKS_MKSTEMP as SunOS 5.5 does
- not support mkstemp ().
-
- * ace/config-sunos5.6.h: Undefined ACE_LACKS_MKSTEMP as Sun 5.6
- and above support it.
-
- Thanks to Don Hinton <dhinton@swan.fr> for reporting this
- problem and Chad Elliott for testing this out on a Sun OS 5.5
- box.
-
-Wed Oct 3 16:37:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (read_1): Reverted this change "Wed Oct 3
- 15:05:43 2001 Jeff Parsons <parsons@cs.wustl.edu>". This
- change is alone not enough to fix the problem that Brad
- reported. The sample program for the text needs to be fixed to
- get it working right.
-
-Wed Oct 3 15:05:43 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (read_1);
-
- Reverted changed made in
-
- Fri Aug 17 16:56:16 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- to read_1(). A similar change made in several other methods is
- ok, but in this case bytes can be copied into the input CDR
- stream without changing wr_ptr, so the check will fail
- unnecessarily. Thanks to Brad Hoskins <BHoskins@slo.newport.com>
- for pointing this out.
-
-Wed Oct 2 12:18:37 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Server.cpp: Fixed spelling error.
- * examples/C++NPv1/Logging_Handler.cpp: Comment length adjustment.
-
-Tue Oct 2 21:52:31 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Client.cpp: Reverted this:
- Mon Oct 1 18:27:41 2001 Steve Huston <shuston@riverace.com>
-
-Tue Oct 2 19:52:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Makefile: Removed some of the files that no longer exist in the
- repository. The inclusion of these files in the Makefile added
- noise during the beta cutting process.
-
-Tue Oct 02 15:34:49 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * etc/tao_cosevent.doxygen:
- * etc/tao_cosnotification.doxygen:
- Fixed typos in the tag file names.
-
-Tue Oct 2 15:52:27 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Sunny Leung to the Hall of Fame.
-
-Tue Oct 2 15:33:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Removed one instance of Peter Phillips
- <pphillip@opentext.com> from the Hall of Fame.
-
-Tue Oct 2 15:00:37 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (clone_from): Copied the GIOP major and minor
- versions from the incoming CDR stream. Thanks to Sunny Leung
- <sleung@opentext.com> for reporting this. This closes bugzilla
- #1043.
-
-Tue Oct 2 09:45:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/libDLL_Test.icc:
- * tests/libService_Config_DLL.icc: Add link(exportAll) to the link
- options to export the entrypoints needed for the tests.
-
-Mon Oct 1 20:04:14 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * THANKS:
- Added Tushar Nair to the THANKS file.
-
-Mon Oct 1 18:06:48 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/Object_Manager.cpp (ACE_UnhandledExceptionFilter):
- Removed the un-needed #if 0's. Left them before as a safety
- measure (in case something doesnt work) and forgot to remove
- them later.
-
- * ace/Log_Msg.cpp (instance):
- Fixed the seg faults that are raised when ace is compiled with
- ACE_NTRACE=0 on SunOS. Added a check before locking and
- releasing a lock.
-
- Thanks to Tushar Nair <ntushar@yahoo.com> for reporting the
- problem and for providing a fix.
-
-Mon Oct 1 18:27:41 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Logging_Client.cpp: Remove the third (optional)
- arg from getline(). Using a char literal without further
- qualification causes confusion in Unicode builds.
-
-Mon Oct 1 14:44:13 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.cpp (ssl_library_init):
-
- Initialize the locking callbacks in the crypto library before
- initializing the OpenSSL library. OpenSSL may require the
- locking callbacks to be initialized before its own
- initialization.
-
- * ace/SSL/SSL_Context.cpp (ssl_library_fini):
-
- Perform crypto library resource cleanup before reclaiming the
- locks used by the locking callbacks. Crypto library resource
- cleanup makes use of the locking callbacks.
-
-Mon Oct 1 15:19:11 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * examples/C++NPv1/README: Added a section that illustrates the
- mapping of chapters onto files in the directory.
-
-Mon Oct 1 12:58:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (handle_socket_events): A fix for the problem
- that started showing up this time is like this. One of the
- threads was dispatching an upcall. In the intermediate time the
- Reactor woke up another thread to close the handler, remember
- that this is possible with the TP_Reactor if the application
- resumes the handles (the way TAO does that). Now when the thread
- that that dispatched the upcall returned it tries to invoke a
- method on the already closed handle. To prevent that from
- happening we make an extra check to see whether the handle
- associated with the handler is still available in the internal
- map of the Reactor. As this check is done in the return path of
- the thread this should have less performance impact. This is
- another reason why we should have #1031 in place ASAP.
-
-Mon Oct 1 12:23:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB): Changed the name of the
- Sun's EGCS build. We have not been using EGCS but 2.95.x for a
- long time now.
-
-Mon Oct 1 10:46:15 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/PerlACE/Run_Test.pm (check_n_cleanup_files): Removed the
- word "ERROR" when files are left behind. This was creating noise
- in the daily builds. We have captured the problem in the
- bugzilla with id #1014. After 1.2 goes out, if someone is
- looking at this problem again we need to add this back so that
- our daily builds can pick them up.
-
-Sun Sep 30 17:25:33 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i):
-
- Reset errno to prevent previous values (e.g. EWOULDBLOCK) from
- being associated with a fatal SSL error (e.g. an alert).
-
-Sun Sep 30 16:52:22 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_Stream.cpp (do_SSL_shutdown):
-
- Return the "retval" variable instead of always returning -1.
- The actual return value may not always be -1. Thanks to Alain
- Totouom <atotouom@gmx.de> for providing this fix.
-
- * THANKS:
-
- Added Alain to the list of contributors.
-
-Sun Sep 30 09:13:04 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
-
- Made reactor mask constant to emphasize the fact that it is
- indeed a constant.
-
-Sat Sep 29 08:07:07 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Configuration.{h,cpp}: Changed "allocator" to "alloc" to
- avoid bugs with MSVC++ 5.0. Thanks to Munagala Ramanath
- <amberarrow@yahoo.com> for reporting this.
-
- * ACE-INSTALL.html: Yet more improvements courtesy of Chris
- Kohloff.
-
-Fri Sep 28 23:38:07 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
-
- Cleaned up the code.
-
- Do not attempt to verify the X.509 certificate. Only the
- application knows how best to do that.
-
- * ace/SSL/SSL_Context.cpp (ssl_library_init):
-
- Fixed some Unicode problems. Wrap strings within an ACE_TEXT
- macro.
-
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i:
-
- Corrected some comments.
-
- * ace/SSL/SSL_SOCK_Stream.h (send_n, recv_n):
-
- Added a "bytes transferred" pointer parameter. This allows the
- amount of bytes transferred to returned via this parameter, thus
- matching the semantics of their ACE_SOCK_Stream counterparts.
-
- * ace/SSL/SSL_SOCK_Stream.cpp (send):
-
- Do not block attempt a timed send() if data is available in
- OpenSSL's internal buffer. This prevents a condition where
- needlessly blocking on select() would occur. A similar fix for
- recv() was made earlier. See Fri Aug 24 16:54:02 2001 Ossama
- Othman <ossama@uci.edu> for details.
-
- (send_n, recv_n):
-
- If the "bytes transferred" pointer parameter is non-zero then
- return the amounts of bytes transferred through it. This makes
- these methods better match the semantics of their
- ACE_SOCK_Stream counterparts.
-
-Fri Sep 28 19:24:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.00.h: Moved the definitions for ACE_HAS_WCHAR
- and ACE_HAS_XPG4_MULTIBYTE_CHAR from the compiler-independent
- section to the aC++ section. (at least) gcc 3.0 distributed from
- HP can't handle compiling wide char stuff... it refers to
- wctype.h, only available in aC++.
-
-Fri Sep 28 12:46:25 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.cpp (report_error):
-
- Don't bother displaying an error message if the error code is
- zero (i.e. no error).
-
-Fri Sep 28 12:31:39 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- Transfer ownership of the Reactor to the previous owner for the
- SSL_ERROR_ZERO_RETURN case. Thanks to Vladimir Chovanec
- <Vladimir.CHOVANEC@asset.sk> for pointing out this problem.
-
- Remove the SSL event handler from the reactor for the
- SSL_ERROR_ZERO_RETURN case. Previously, this method returned
- without removing it, resulting in a seg fault.
-
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
-
- Ported the updates made to the ssl_accept() counterpart to this
- method.
-
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
- * ace/SSL/SSL_SOCK_Stream.i (send_i):
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Connector.cpp (ssl_connect):
-
- In the event a SSL_ERROR_SYSCALL error condition occurs, call
- ACE_OS::set_errno_to_last_error() to make sure errno is updated
- appropriately since OpenSSL does not do that. Fixes some
- "misbehaving" Reactor interactions. Thanks to Andrew Finnell
- <Andrew.Finnell@esecurityinc.com> for tracking down the problem
- and suggesting these fixes.
-
-Fri Sep 28 09:37:28 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Context.h (report_error):
- * ace/SSL/SSL_Context.cpp (report_error):
-
- New SSL error reporting functions that use the ACE_Log_Msg
- facilities to dump error information.
-
- * ace/SSL/SSL_Context.cpp (set_mode):
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
- * ace/SSL/SSL_SOCK_Stream.i (send_i, recv_i):
- * ace/SSL/SSL_Accept_Handler.cpp (ssl_accept):
- * ace/SSL/SSL_Connect_Handler.cpp (ssl_connect):
-
- Use the new report_error() static method to display error
- information instead of OpenSSL's ERR_print_error_fp().
-
- * ace/SSL/SSL_SOCK_Connector.cpp:
-
- Include 'ace/Log_Msg.h' to pull ACE_ERROR macro definitions.
- Fixes compile-time problems on Tru64. Thanks to Martin
- Krumpolec for providing this fix. [Bug 1034]
-
- (ACE_SSL_SOCK_Connector):
-
- Wrap format specifier string in ACE_ERROR call with ACE_TEXT.
- Fixes mismatched Unicode/non-unicode strings.
-
-Fri Sep 28 06:17:27 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/SPIPE_Acceptor.{h,cpp}: Fixed the use of "char" for
- "already_connected_" to be "int". Thanks to Johnny Willemsen
- for reporting this.
-
- * ACE-INSTALL.html: Improved the installation instructions for BCB 4/5.
- Thanks to Chris Kohloff for contributing this and to
- Jan Kalin <jan.kalin@zag.si> for motivating this.
-
- * ace/TTY_IO.cpp: Fixed numerous bugs in the control() method.
- Thanks to Airat A. Sadreev <airatsa@nm.ru> for reporting this.
-
- * ace/TTY_IO.h: Add a new field for Win32. Thanks to
- Airat A. Sadreev <airatsa@nm.ru> for reporting this.
-
-Thu Sep 27 06:12:21 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/config-win32.h: Added a special-case for Borland C++ Builder,
- which must include vcl.h before windows.h. Thanks to Chris
- Kohloff for reporting this. This fixes Bug ID 899 for the time
- being.
-
- * ace/Module.cpp (ACE_Module): The line
-
- this->name ("<unknown>");
-
- was be replaced with
-
- this->name (ACE_TEXT("<unknown>"));
-
- Thanks to Airat A. Sadreev <sadreevaa@hq.tatenergo.ru> for
- reporting this. This fixes bug id 1041.
-
-Thu Sep 27 13:09:19 2001 Bala <bala@cs.wustl.edu>
-
- * ACE version 5.1.21 released.
-
-Tue Sep 25 16:12:14 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- Use ACE_OS::set_errno_to_last_error() set errno instead of doing
- so manually to get around broken compilers that reset the last
- error when assigning to errno. Thanks to Chris Kohloff for
- pointing out the problem and suggesting this fix.
-
-Tue Sep 25 13:00:37 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Obstack.h: Fixed a typo when declaring ACE_Obstack
- exportable. I mistakenly used the underlying
- ACE_EXPORT_SINGLETON_DECLARATION macro directly.
- ACE_SINGLETON_DECLARATION is the right macro to use here.
- Thanks to Martin Krumpolec <krumpolec@asset.sk> for reporting
- the bug.
-
-Tue Sep 25 09:12:28 2001 Andrew Finnell <Andrew.Finnell@esecurityinc.com>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- On MS Windows, OpenSSL does not store the last error in errno so
- explicitly do so. This corrects problems where a server is
- unaware that a client has forcefully disconnected.
-
-Tue Sep 25 00:01:59 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Service_Repository.cpp (instance): There are three stages of
- the Object Manager: (a) starting up; (b) running; (c) shutdown.
- ACE_Service_Repository::instance() was not creating a new
- instance in (a) and (c). It was changed to allow creation (a).
-
-Mon Sep 24 01:55:29 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added TAO's PICurrent test to the list of automated regression
- tests.
-
-Sun Sep 23 19:28:06 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Reactor.h (ACE_Reactor): Fixed comments for
- <end_reactor_event_loop> and <reactor_event_loop_done>. Both
- methods work on an instance of reactor, not the global singleton
- reactor. Thanks to Doug for noticing this.
-
-Sun Sep 23 10:02:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/High_Res_Timer.h: Removed a question mark "?", in a line
- which read "or sometimes 3.579 Mhz??". This seems to remove the
- warning in VXWORKS builds. I have no clue about the problem that
- VXWORKS compiler sees. It took only more than an hour to figure
- this out. :(.
-
-Sat Sep 22 08:59:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Service_Manager.cpp (handle_input): Added some logic to
- strip off newlines and carriage returns for Windows platforms.
- Thanks to Kyle Brost <Kyle.Brost@quest.com> for contributing
- this.
-
-Sat Sep 22 12:28:21 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/ACE_SSL_LIB.dsp:
-
- Corrected code generation settings to use the multi-threaded DLL
- version of the run-time library. Corrects "legacy" build
- problems.
-
-Sat Sep 22 08:59:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/High_Res_Timer.{h,i,cpp}: Added comments to explain how
- to configure the timers properly on various platforms. Thanks
- to Alain Decamps <Alain.Decamps@PIDPA.be> for reporting this.
-
- * ace/OS.i (ACE_Flow_Spec): Added a check for ACE_HAS_WINSOCK2_GQOS
- so that things will compile properly on MinGW32. Thanks to Jeff
- McNiel <JMcNiel@datacrit.com> for reporting this.
-
-Fri Sep 21 15:54:55 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS_Dirent.cpp: Fixed all the allocations so they work properly
- when used with ACE_TCHAR! Thanks to Olof Lindfors
- <olof.lindfors@protegrity.com>.
-
-Tue Sep 18 06:25:22 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/*Reactor*: Changed all uses of "delta_time" to "delay_time".
- Thanks to Johnny Willemsen for reporting this.
-
-Sun Sep 16 11:53:38 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Connector.cpp (handle_output): Fixed the comment to be
- ACE_WIN32. Thanks to Kobi Cohen-Arazi <kobi@mivzak.com> for
- reporting this.
-
-Fri Sep 21 17:11:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Message_Block.h: Tried rewording some comments in the
- ACE_Message_Block. Thanks to Tom Wagner <TomW@CoManage.net> for
- suggesting this.
-
- * THANKS: Added Tom Wagner <TomW@CoManage.net> to the Hall of
- Fame.
-
-Fri Sep 21 22:11:53 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/ACE_SSL_LIB.dsp:
-
- Removed hardcoded user-specific include paths, and user-specific
- preprocessor macro definitions.
-
-Thu Sep 20 18:15:49 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Config_Test.cpp: Added some more tests to verify correct
- string value reset and enumerate values/sections.
-
-Thu Sep 20 12:29:09 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/ACE_SSL_LIB.dsp:
- * ace/SSL/ACE_SSL_LIB.dsw:
-
- New static build MSVC++ project and workspace files for the
- ACE_SSL library contributed by Jonathan Reis <reis@stentor.com>.
- [Bug 1032]
-
-Thu Sep 20 12:16:13 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK.cpp (enable, disable):
-
- Removed unreachable "return" statements. [Bug 1033]
-
- * ace/SSL/SSL_SOCK_Stream.i (ACE_SSL_SOCK_Stream):
- * ace/SSL/SSL_SOCK_Stream.cpp:
-
- Moved constructor to the ".cpp" file since to prevent inclusion
- of `ace/Log_Msg.h' in `SSL_SOCK_Stream.h'. This fixes problems
- with some platforms needing the Log_Msg include to pull in the
- ACE_ERROR macros without needlessly increasing inter-header
- dependencies and inclusions. [Bug 1034]
-
-Thu Sep 20 14:44:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (ACE_Process_Options): Moved avoid_zombies_
- initialization outside the !Win32 section. Thanks to Johnny
- Willemsen <johnny.willemsen@meco.nl> for this fix.
-
-Thu Sep 20 06:28:50 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-hpux-11.00.h:
-
- Reverting the change from "Wed Aug 29 15:32:10 2001 Douglas C.
- Schmidt <schmidt@macarena.cs.wustl.edu>". HP-UX 11.00 does
- not actually support pread/pwrite.
-
-Wed Sep 19 16:56:02 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h (THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM): Added
- definitions for THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM on
- platforms that do not support threads.
-
-Wed Sep 19 16:54:04 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Containers_T.cpp:
-
- In copy constructor for ACE_Double_Linked_List, added line to
- copy the size of the rhs to the lhs. The new list was ending
- up with a garbage value for its size.
-
-Wed Sep 19 14:15:08 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Enabled generation of debug info even for
- release configurations. Thanks to Jonathan Reis
- <reis@stentor.com> for suggesting this.
-
-Wed Sep 19 10:23:06 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * html/index.html:
- Add couple of missing links to the RT-CORBA components
-
-Wed Sep 19 12:00:04 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ACE-INSTALL.html:
- Added BCB5 to some places as supported/used compiler
-
- * ace/Future.h:
- * ace/Test_and_Set.h:
- Removed the ACE_EXPORT from the templates ACE_Future_Holder and
- ACE_Test_and_Set
-
- * ace/Service_Config.{h,cpp}:
- Changed the type of the members be_a_daemon_ and no_static_svcs_
- from char to int
-
-Tue Sep 18 13:57:36 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * */Makefile:
- * */Makefile.*:
- Updated dependencies, some of the paths were absolute leading to
- ambiguities in parallel builds.
-
-Tue Sep 18 12:18:26 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/footprint_stats.sh:
- Fixed bug in footprint charts generation.
-
-Tue Sep 18 10:50:15 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * html/index.html:
- Add COS Event and COS Notification services to the index.
-
-Mon Sep 17 19:00:00 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h:
-
- - THR_SCOPE_PROCESS and THR_SCOPE_SYSTEM were not defined
- for NT. Added them.
-
- - Moved the following definitions of VxWorks around such
- that these defines are available even when PACE is not
- used.
-
- THR_INHERIT_SCHED
- THR_EXPLICIT_SCHED
- THR_SCHED_IO
- THR_SCOPE_SYSTEM
- THR_SCOPE_PROCESS
-
- * ace/OS.cpp: LinuxThreads do not have support for
- PTHREAD_SCOPE_PROCESS; only PTHREAD_SCOPE_SYSTEM is supported.
- Therefore, PTHREAD_SCOPE_PROCESS is ignored when setting the
- thread scheduling scope.
-
- * ace/Sample_History.cpp: Added accessors for <sample_count> and
- <max_samples>.
-
- * bin/auto_run_tests.lst: Added new RTCORBA tests. Removed
- Minimum CORBA dependency on these tests.
-
-Mon Sep 17 13:49:07 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * etc/tao_cosevent.doxygen:
- * etc/tao_cosnotification.doxygen:
- Add new Doxygen files for the Notification and COS Event
- Services
-
- * bin/generate_doxygen.pl:
- Add new doxygen files to the automatically generated
- documentation.
-
-Mon Sep 17 11:36:54 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_tests.lst: This is the script used by the shell
- script in that directory. As the name is confusing this is being
- moved as a new file.
-
- * tests/run_tests_remote.lst: Renamed the run_tests.lst as
- run_tests_shell.lst. This is invoked by run_tests.sh
-
- * tests/run_tests.sh: Renamed as a new file.
-
- * tests/run_tests_remote.sh: Renamed the file run_tests.sh as this
- one. This script can be used to run tests remotely on a
- CHORUS/ClassiX/MVME targets. Further this can also be used to
- run tests on platforms that dont support perl or do not have
- perl.
-
-Sun Sep 16 11:19:01 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.20 released.
-
-Sat Sep 15 16:58:08 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/High_Res_Timer_Test.cpp: Fixed compile problem with Sun CC
- 4.2.
-
-Fri Sep 14 05:28:13 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * THANKS: We now have over 1,300 contributors to ACE+TAO!
-
- * ace/Basic_Types.{h,i}: Added "const" to various operators and
- methods. Thanks to Alain Decamps for reporting this.
-
-Thu Sep 13 11:02:41 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Singleton.cpp: If we're not compiling with threading enabled,
- don't call the get_singleton_lock() code. Thanks to Charles
- Frasch <cfrasch@spawar.navy.mil> for contributing this.
-
-Tue Sep 11 06:23:08 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Array_Base.h: Changed current_ from u_int to size_t. Thanks
- to Johnny Willemsen for reporting this.
-
-Fri Sep 14 17:18:37 2001 Steve Huston <shuston@riverace.com>
-
- * tests/High_Res_Timer_Test.cpp (check_micro_nano): If the
- nanointerval is 0, change it to 1 to prevent divide-by-zero.
-
-Fri Sep 14 17:02:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/High_Res_Timer_Test.cpp: Replaced some (u_int) casts with
- ACE_U64_TO_U32, which is correct. Thanks to Alain Decamps, yet
- again!, for this fix.
-
-Fri Sep 14 11:39:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Mahesh Varadarajan and Kevin Clien to the Hall of
- Fame.
-
-Thu Sep 13 22:43:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the new Cache_Growth_Test to the
- daily tests.
-
-Thu Sep 13 20:38:44 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.h (ACE_Thread_Manager): Changed the default
- argument <prealloc> for the constructor from 0 to
- ACE_DEFAULT_THREAD_MANAGER_PREALLOC. Thanks to Doug for
- pointing this out.
-
- Added better documentation to explain the purpose of each
- argument in ACE_Thread_Manager's constructor. Thanks to Nick
- Pratt <npratt@microstrategy.com> for motivating the change.
-
-Thu Sep 13 13:38:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds),
- elapsed_time_incr (ACE_hrtime_t&nanoseconds): Instead of using
- "nanoseconds >>= 10", use "nanoseconds = nanoseconds >> 10" to
- work around a Borland C++Builder bug. Thanks very much to
- Johnny Willemsen, Christopher Kohlhoff, and Alain Decamps
- for solving this problem.
-
-Thu Sep 13 13:33:29 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Service_Config_Test.cpp: Added #include "ace/Log_Msg.h".
- This was probably to get AIX to build clean, but it's been a
- while.
-
-Thu Sep 13 12:04:04 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Werner Buchert to the Hall of Fame.
-
-Wed Sep 12 15:10:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t&nanoseconds),
- elapsed_time_incr (ACE_hrtime_t&nanoseconds): Changes to account
- for very fast clocks (> 1GHz). Thank you to Derek Dominish
- <derek.dominish@boeing.com> and Alain Decamps
- <Alain.Decamps@PIDPA.be> for identifying the problem and coming
- up with a good solution. This fixes Bugzilla #1024 (how
- appropriate! ;-)
-
- * ace/High_Res_Timer.i (elapsed_microseconds (ACE_hrtime_t &usecs):
- More adjustment to the Win32 scale factor adjusting. Thanks (again!)
- to Alain Decamps <Alain.Decamps@PIDPA.be> for identifying and
- supplying a fix for this. This fixes Bugzilla #948 (again).
-
-Wed Sep 12 14:33:29 2001 Steve Huston <shuston@riverace.com>
-
- * tests/High_Res_Timer_Test.cpp: Incorporated some additional tests
- for usec/nsec sanity checks on the calculated ACE_High_Res_Timer
- values. Thank you very much to Alain Decamps
- <Alain.Decamps@PIDPA.be> for this test.
-
-Tue Sep 11 12:40:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Terror unleashed. The World Trade Center and the Pentagon
- attacked today. Looks like there could be lots of loss to
- precious lives. This is too horrible. We convey our condolences
- to the bereaved families. God save this world.
-
-Tue Sep 11 06:41:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp: Fixed a
- typo. This should fix most of the errors in the scoreboard.
-
-Mon Sep 10 18:59:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.cpp (nonblk_put):
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (nonblk_put):
- Reverted Bala's changes below since the original code was
- correct. Also, added comments to clarify things to prevent
- confusion in the future.
-
-Mon Sep 10 17:31:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added a new platform to the list.
-
-Mon Sep 10 12:54:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp:
- Changed the condition that checks for EWOULDBLOCK after a
- send. It was erroneously written. Thanks to Nick Pratt
- <npratt@microstrategy.com> for pointing this out.
-
-Mon Sep 10 12:36:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.cpp (nonblk_put): Changed the condition
- that checks for EWOULDBLOCK after a send. It was erroneously
- written. Thanks to Nick Pratt <npratt@microstrategy.com> for
- pointing this out.
-
-Mon Sep 10 08:17:08 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Will not run the File_IO test in the
- Minimum CORBA configuration.
-
-Mon Sep 10 08:05:39 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Prevented the DLL_ORB test from running
- in static builds.
-
-Sun Sep 9 10:20:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * */Makefile: Updated dependencies.
-
-Sun Sep 9 08:43:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Handle_Set.i: Added a check in set_bit () and clr_bit () for
- ACE_INVALID_HANDLE. If we pass a ACE_INVALID_HANDLE we were
- crashing which is not good and hence the fix.
-
-Sun Sep 9 08:28:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor_Impl.h:
- * ace/Select_Reactor_Base.h:
- * ace/Select_Reactor_Base.cpp (is_dispatchable): Added a new
- method. This method, just figures out whether the buffer has any
- dispatchable info or not.
-
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp: Added the above method in the WFMO
- Reactor.
-
- * ace/TP_Reactor.cpp: The handle_notify_events () method now
- checks whether the buffer it has read is dispatchable or not. If
- it is then it gives up the token to make an upcall. Else, it
- just sits around to remove messages of the pipe, till it find
- one with a dispatchable info. The fix was necessary so that
- wake-up calls that are unanswered are removed of the
- pipe. Unanswered wakeup calls were filling up the pipe and they
- were blocking some application from writing further to the
- pipe. This should be in all probability be the final fix to the
- Reactor.
-
-Sat Sep 8 09:34:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Fixed a typo that was giving
- compile errors in VXWORKS builds.
-
-Fri Sep 7 16:40:37 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/OS.h:
- Added an if-def case for IP_MULTICAST_TTL too.
-
-Fri Sep 7 17:09:04 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Resume_Test.cpp: Initialised the lock
- to null in the constrcutor before allocating memory for
- it. This was done to remove the ABW errors in
- purify. This should remove the problem that we see with this
- test in our daily builds with SunCC 4.2.
-
-Fri Sep 7 15:51:48 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Included Auto_Ptr.h.
-
-Fri Sep 07 15:29:37 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * examples/QOS/Change_Receiver_FlowSpec/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Change_Receiver_FlowSpec/Sender_QoS_Event_Handler.cpp::
- * examples/QOS/Change_Receiver_FlowSpec/Fill_ACE_QoS.cpp:
-
- * examples/QOS/Change_Sender_TSpec/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Change_Sender_TSpec/Sender_QoS_Event_Handler.cpp::
- * examples/QOS/Change_Sender_TSpec/Fill_ACE_QoS.cpp:
-
- * examples/QOS/Simple/Receiver_QoS_Event_Handler.cpp:
- * examples/QOS/Simple/Sender_QoS_Event_Handler.cpp:
- * examples/QOS/Simple/Fill_ACE_QoS.cpp:
-
- Fixed compile errors.
-
-Fri Sep 7 14:17:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Do not clear the notify handle bit when
- trying to dispatch notify calls. This shoudl fix the long
- pending problems with TRU 64 builds.
-
-Fri Sep 07 12:12:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1/Iterative_Logging_Server.dsp:
- * examples/C++NPv1/Logging_Client.dsp:
- * examples/C++NPv1/Process_Per_Connection_Logging_Server.dsp:
- * examples/C++NPv1/RT_Thread_Per_Connection_Logging_Server.dsp:
- * examples/C++NPv1/Reactive_Logging_Server.dsp:
- * examples/C++NPv1/Reactive_Logging_Server_Ex.dsp:
- * examples/C++NPv1/Thread_Per_Connection_Logging_Server.dsp:
- Use relative paths to include and library files rather than
- $(ACE_ROOT). Makes it easier to use in place regardless of
- ACE version.
-
- * examples/C++NPv1/Logging_Client.cpp: Fixed scoping of the getline()
- method call.
-
-Thu Sep 6 21:14:05 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Changed the usage of auto_ptr
- <> to ACE_Auto_Basic_Ptr<>. Thanks to Carlos O'Ryan for this
- suggestion.
-
-Thu Sep 06 18:42:39 2001 Steve Huston <shuston@riverace.com>
-
- * examples/C++NPv1: New directory that contains all of the example
- code for Doug/my book, C++ Network Programming, Vol 1.
-
-Thu Sep 6 12:01:15 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/OS.h:
- Added a if-def case for IP_MULTICAST_IF. Seems like it is not
- defined in some of the OS versions.
-
-Thu Sep 06 12:36:43 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/QoS/QoS_Session_Impl.cpp:
- * ace/QoS/QoS_Session.h:
-
- Fixed compile errors.
-
-Thu Sep 6 10:24:15 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Acceptor.cpp (accept_svc_handler):
- * ace/Strategies_T.cpp (accept_svc_handler):
-
- Do not close and reopen the peer acceptor on failed attempts to
- accept a connection. Several problems were fixed by removing
- this code:
-
- - A race condition existed where another thread or process
- could acquire the port that the peer acceptor was
- listening on before it was closed. Note that it is not
- enough to attempt to synchronize this code with a lock
- since an external process could still acquire the port.
-
- - If the port in the peer acceptor (assuming it is an
- ACE_INET_Addr based one) is the wildcard port (zero), then
- there is no guarantee that the acceptor will be opened on
- the same port upon which it is was previously listening.
- In such a case, IORs generated by TAO (for example) can be
- rendered invalid since the addressing information embedded
- in those IORs will no longer contain the actual port to
- connect to when making invocations. [Bug 962]
-
- - The above two problems actually introduced a
- denial-of-service attack vulnerability (now closed by this
- fix) since it was relatively easy to force a failed
- connection attempt, which would then cause the peer
- acceptor to be reopened on potentially a different port,
- or to shutdown completely if reopening failed.
-
- * ace/SSL/SSL_SOCK_Acceptor.i (close):
-
- Invalidate the handle stored within the ACE_SSL_SOCK_Acceptor
- instance. Corrects problems arising from attempts to use a
- listening socket that has been shut down.
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- Perform an OpenSSL SSL_accept() in case OpenSSL buffered data
- that must be handled before entering the Reactor event loop used
- to complete a non-blocking SSL passive connection.
-
- If the OpenSSL error status is SSL_ERROR_ZERO_RETURN shut down
- the partially initialized SSL stream/session since the peer has
- itself shut down.
-
-Thu Sep 6 11:00:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: The timer events are not included as a part
- of number of active handles from wait_for_multiple_events
- (). The check for event_count > 0 before processing timer events
- was wrong. Removed the check. Thanks to Chad Elliott for
- pointing this out.
-
- Further did some cosmetic changes like adding comments, removing
- comments that was not valid etc.
-
-Thu Sep 6 07:50:56 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: The AMI buffering test should not be run
- Single threaded builds.
-
-Thu Sep 6 02:30:14 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * examples/Export/Makefile.bor:
- * examples/Export/export_dll.bor:
- * examples/Export/test.bor:
- * examples/Export/dll.h:
- Added makefiles for this example and fixed a template problem with
- Borland C++. Thanks to Charles Frasch <cfrasch@spawar.navy.mil> for
- contributing this.
-
-Wed Sep 5 19:48:34 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram.cpp (set_nic):
- Fixed the errors that raised in Win.
-
-Wed Sep 5 20:38:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/QoS/QoS_Session_Impl.cpp:
- * ace/QoS/QoS_Session.h: Reverted the change "Wed Sep 5 18:58:00
- 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>". The change
- broke builds. Further there was no reason why the QoS
- information should come inside OS.* files. Talk about increasing
- foot print.
-
-Wed Sep 5 18:58:00 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/QoS/QoS_Session.h:
- * ace/QoS/QoS_Session_Impl.h:
- * ace/QoS/QoS_Session_Impl.cpp:
-
- Added rapi_sender and rapi_reserve calls with null tspec and
- flow spec respectively to facilitate the tearing down of PATH
- and RESV messages.
-
- * ace/OS.h:
- * ace/OS.i:
-
- Changed the sending_flowspec_ and receiving_flowspec_ members of
- the ACE_QoS class to pointers so they can be initialized to null
- flow specs.
-
-Wed Sep 5 16:50:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Peter Phillips <pphillip@opentext.com> to the Hall
- of Fame.
-
- * ace/OS_String.cpp: Fixed a warning in TRU64 builds.
-
-Wed Sep 5 11:29:59 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * ace/SOCK_Dgram.h:
- * ace/SOCK_Dgram.cpp:
-
- Added a new method to set the NIC address in the socket.
-
-Wed Sep 05 12:00:42 2001 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix4_g++.GNU: Sets ACE_AIX_VERS rather
- than separate major/minor; see entry below for further info.
-
-Wed Sep 05 11:52:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix5.1.h: New config file for AIX 5L, version 5.1,
- using Visual Age C++ 5.
-
- * ace/config-aix-4.1.x.h:
- * ace/config-aix-4.2.x.h:
- * ace/config-aix-4.3.x.h:
- * ace/config-aix-4.x.h: Use ACE_AIX_VERS (which has both major and
- minor version) rather than ACE_AIX_MAJOR_VERS and ACE_AIX_MINOR_VERS.
-
- * include/makeinclude/platform_aix_ibm.GNU: Rather than making
- separate major/minor OS version variables, use one that incorporates
- both to make it easier for config.h files to set upwardly-compatible
- feature flags.
-
-Wed Sep 5 06:55:44 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/Log_Msg_Test.cpp:
-
- Add ACE_TEXT() around the default program name for the Windows
- WChar Unicode build.
-
-Tue Sep 4 18:48:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Changed the value returned from
- ACE_Select_Reactor_Notify_Handler::handle_input (). This now
- returns a 0 if we did not dispatch any handles or the number of
- handles dispatched. We were returning a -1 if we did not
- dispatch any handles, after reading the notification from the
- pipe. This should fix the Reactor_Notify_Test in the Implicit
- templates build.
-
-Tue Sep 4 12:46:50 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Reverted this change "Tue Sep 4 07:37:17 2001
- Balachandran Natarajan <bala@cs.wustl.edu>". Thanks to Irfan
- for pointing that this change, changes the semantics of the
- methods.
-
-Tue Sep 4 09:14:36 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
-
- Work around a compiler bug in the latest Green Hills Multi200.
- Casting a float to an ACE_CDR::ULong* caused internal compiler
- errors if the code was inlined.
-
- * ace/config-vxworks5.x.h:
- * include/makeinclude/platform_vxworks5.x_ghs.GNU:
-
- Updated support for Green Hills Multi2000.
-
-Tue Sep 4 07:41:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Eyal Neuman <eyal@tradertools.com> to the Hall of
- Fame.
-
-Tue Sep 4 07:37:17 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Fixed a bug with recv_n_i (). The problem was form
- returning the exact number of bytes from the for loop. If the
- loop had executed once and if we get 0 in the next recv_i ()
- call, then we should be returning the number of bytes read in
- the previous iteration and not 0. Thanks to Eyal Neuman
- <eyal@tradertools.com> for this fix. This closes bug 1015.
-
-Tue Sep 4 07:08:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Fixed a unicode error in teh Win32 builds. Acted as
- a dumbo when I made this change yesterday:(
-
-Mon Sep 3 20:08:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Fixed a warning in TRU 64 builds.
-
-Mon Sep 3 09:58:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * */Makefile: Updated dependencies
-
-Mon Sep 3 09:44:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a warning in Implicit
- template builds.
-
-Mon Sep 3 08:21:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Replaced L with ACE_TEXT_WIDE.
-
-Mon Sep 3 07:54:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/OS_String.cpp: Fixed compile errors in win32 builds. Thanks
- to Johnny Willemsen for sending in patches for replacing L with
- ACE_TEXT_WIDE.
-
-Sun Sep 2 19:33:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a small problem with the
- select reactor's notify () handling mechanism. This was more of
- a problem with me not checking the while () loop condition
- properly. This should fix most of the reactor problems seen in
- the daily builds.
-
-Sat Sep 1 14:10:08 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/System_Time.cpp,
- * ace/Stream_Modules.cpp,
- * ace/Service_Types.cpp,
- * ace/Service_Manager.cpp,
- * ace/SPIPE_Addr.cpp,
- * ace/OS.cpp,
- * ace/Memory_Pool.cpp,
- * ace/Mem_Map.cpp,
- * ace/Local_Name_Space_T.cpp,
- * ace/FILE_Addr.cpp,
- * ace/FIFO.cpp,
- * ace/Connector.cpp,
- * ace/Acceptor.cpp,
- * ace/Token_Collection.cpp,
- * ace/Name_Request_Reply.cpp,
- * ace/Local_Tokens.cpp,
- * ace/ACE.cpp,
- * ace/Log_Record.cpp,
- * ace/Log_Msg.cpp: Added the use of the new ACE_OS::strsncpy()
- method. Thanks to Alain for reporting this.
-
- * ace/OS_String.{h,cpp}: Added a "safe" c string copy method:
- strsncpy(dst,src,maxlen). Changing an occurence off strncpy()
- to strsncpy() is less errorprone, but could break somebody's
- code if he/she is using the fact that the strncpy's where
- nul-padding the destination, but this is extremely
- unlikely. Using strsncpy() is also almost always (a lot) faster
- than strncpy(). Thanks to Alain Decamps
- <Alain.Decamps@PIDPA.be> for this method.
-
-Sat Sep 1 09:54:55 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Bound_Ptr_Test.cpp: Added a patch from Chris Kohlhoff that
- fixes the problem with VXWORKS builds. The old gcc compiler
- seems to have problems with forward declared types as template
- parameters. Chris solves the problem by defining a ABC properly
- and making the offending class inherit from it. This should fix
- our daily VXWORKS builds.
-
-Sat Sep 1 08:07:51 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a compilation error in the
- Notification queue portion of the code. Thanks to our daily
- builds for helping me with this testing.
-
-Fri Aug 31 22:12:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp:
- * ace/Select_Reactor_Base.cpp: Fixed fuzz errors.
-
-Fri Aug 31 22:07:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp: Added the method read_notify_pipe () to
- the WFMO_Notify_Handler.
-
-Fri Aug 31 19:14:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor_Impl.h: Added a new method by name read_notify_pipe
- (). Also changed the dispatch_notify () to take in a
- Notification buffer instead of a ACE_HANDLE.
-
- * ace/Select_Reactor_Base.cpp:
- * ace/Select_Reactor_Base.h: Made the following changes
-
- - Implemented read_notify_pipe (). Will read just one message from
- the notify pipe or one message from the notification queue.
-
- - Reimplemented dispatch_notify (). This method would just
- dispatch the upcall using the information in the notification
- buffer.
-
- - The handle_input () now uses the read_notify_pipe () and
- dispatch_notify () to achieve what it was doing before.
-
- - The notify () call now sends one notify message on the pipe
- for every message in the notification queue.
-
- * ace/TP_Reactor.cpp (handle_socket_events):
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.i: We had a race condition. The race condition
- was because two threads were trying to read from the notify_pipe
- at the same instance. This race condition was fixed by adding a
- call to read_notify_pipe () with the lock held and then calling
- dispatch_notify () with the buffer read after releasing the
- lock. Did the following minor modifications
-
- - Changed dispatch_socket_events () as dispatch_socket_event ()
- as we were dispatching only one event.
-
- - We dont grab the token in the constructor of the token. We
- have to make a call specfically to grab_token () to get the
- token.
-
- The above checkins should fix the correctness of the reactor
- problems that we have been seeing.
-
-Fri Aug 31 18:30:28 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added Blocking_Sync_None to the list of tests to be run on
- Tru64.
-
- * ACE-INSTALL.html:
-
- Added Linux/IA64 to the list of platforms supported.
-
-Fri Aug 31 15:27:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Bound_Ptr.i: Fixed a problem with Sun CC42 builds. Used 1
- instead of true.
-
-Fri Aug 31 14:57:42 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Fixed usage of ACE_SYNCH meta-class
- to work correctly with templates.
-
-Fri Aug 31 11:53:05 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/Timer_Queue_T.h:
- * ace/Timer_Queue_T.h:
- * ace/config-hpux-11.00.h:
- * ace/config-hpux11.h:
- * ace/config-irix6.x-common.h:
- * ace/config-linux-common.h:
- * ace/config-lynxos.h:
- * ace/config-osf1-4.0.h:
- * ace/config-pharlap.h:
- * ace/config-sunos4-g++.h:
- * ace/config-sunos4-lucid3.2.h:
- * ace/config-sunos4-sun3.x.h:
- * ace/config-sunos4-sun4.1.4.h:
- * ace/config-sunos4-sun4.x-orbix.h:
- * ace/config-sunos5.4-centerline-2.x.h:
- * ace/config-sunos5.4-g++.h:
- * ace/config-sunos5.4-sunc++-4.x-orbix.h:
- * ace/config-sunos5.4-sunc++-4.x.h:
- * ace/config-sunos5.5.h:
- * ace/config-tandem.h:
-
- Fixed up documentation of ACE_TIMER_SKEW. Fixed bogus values in
- all the above files. Should help in removing some of the errors
- in TAO tests. Any test in ACE/TAO which breaks because of this
- change is broken and should be fixed.
-
-Fri Aug 31 12:00:00 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Bound_Ptr_Test.icc: New Visual Age C++ config for this test.
- * tests/tests.icp: Added Bound_Ptr_Test.icc, Service_Config_Test.icc,
- and libService_Config_DLL.icc.
-
-Fri Aug 31 11:40:31 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.(cpp h): Fixed single-threaded builds.
-
-Fri Aug 31 08:13:26 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/perltest2cpp.pl:
-
- Added a -t option to set the timeout factor.
-
-Thu Aug 30 18:08:32 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-linux-common.h:
-
- Added some more missing stuff which might break compilations.
- The previous change also removed the existing definition for
- ACE_TIMER_SKEW so add it back till the new version is checked in.
-
-Thu Aug 30 17:54:40 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-linux-common.h:
-
- This file was checked in inadvertently when checking in fixes
- for ACE_NEEDS_HUGE_THREAD_STACKSIZE.
-
-Thu Aug 30 13:04:38 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.lst: Added Bound_Ptr_Test.
-
-Thu Aug 30 11:40:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.pl (run_program): Fixed the 'unlink' to get
- all of a test's log files; prevents seeing previous sub-logs
- from a test such as MEM_Stream_Test and falsely reporting errors.
-
-Thu Aug 30 10:46:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.cpp (global_scale_factor ()): When checking for
- a high-res timer mechanism, don't set the global_scale_factor_status_
- away from 0 until _after_ getting the scale factor, to avoid
- a second parallel thread from using a bogus value. Thanks very much
- to Alain Decamps for this fix.
-
-Thu Aug 30 09:30:19 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/Log_Msg_Test.cpp:
-
- Fix for VxWorks when ace_main() is called with argc == 0.
-
- * tests/run_test.lst:
-
- Update the list of tests that run on VxWorks.
-
- * tests/Makefile:
- * tests/run_test.pl:
-
- Update the script to output VxWorks commands to a file.
-
-Thu Aug 30 09:58:38 2001 Steve Huston <shuston@riverace.com>
-
- * ace/High_Res_Timer.i (elapsed_microseconds): For Win32, isolate the
- msec modulus before converting it up to usecs. Thanks to Francois
- Rioux <rioux01@gel.ulaval.ca> for reporting this.
-
-Thu Aug 30 00:42:41 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/Service_Config.cpp:
- Service_Object instances are now inserted into the Service_Repository
- only after they have been successfully initialised, to provide better
- support for recursive use of the service configurator. With this
- change, a service loaded from 'inside' another services's init() will
- be inserted into the repository first and unloaded last. This ensures
- that any recursively loaded services on which the original service
- depends still exist when the original service's fini() function is
- called.
-
-Thu Aug 30 00:27:05 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ChangeLog:
-
- Removed bogus files from the previous entry. I should not play
- around with a lot of tasks at once.
-
-Wed Aug 29 19:57:29 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h:
-
- Remove definition of ACE_NEEDS_HUGE_THREAD_STACKSIZE. The
- default value seems to be good enough.
-
- * ace/config-vxworks5.x.h:
- * ace/config-lynxos.h:
- * ace/config-qnx-neutrino.h:
- * ace/config-rtems.h:
-
- Standardized the values to 64KB on these platforms. Don't know
- if these platforms need it. But I don't have access to any of
- these so playing it safe.
-
-
-Wed Aug 29 18:52:12 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * tests/Bound_Ptr_Test.cpp:
- Removed a stray asterisk that was causing compilation failures.
-
-Wed Aug 29 17:54:52 2001 Steve Huston <shuston@riverace.com>
-
- * tests/libDLL_Test.icc:
- * tests/libService_Config_DLL.icc: Fixed the "run after" directives
- to correctly build the lib*.a files. Also, fixed the cleanup
- directives to properly clean up both .a and shr.o files.
-
-Wed Aug 29 15:32:10 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/config-aix-4.x.h:
- * ace/config-hpux-11.00.h:
- * ace/config-osf1-4.0.h: Added better support for pread()/pwrite().
- Thanks to Steve Vranyes <steve.vranyes@veritas.com> for these fixes.
-
-Wed Aug 29 15:47:33 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.lst: Re-enabled MEM_Stream_Test.
-
-Wed Aug 29 12:15:01 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Added Bound_Ptr.* to the projects.
-
- * tests/tests.dsw:
- * tests/Bound_Ptr_Test.dsp: Added a new project for
- Bound_Ptr_Test.
-
-Wed Aug 29 11:01:22 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Fixed a cut/paste error and now runs the
- proper number of threads/processes for the MT case, avoiding a
- hang.
-
-Wed Aug 29 07:08:23 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/run_tests.lst:
- * tests/Makefile
- * tests/Makefile.bor
- * ace/Makefile
- * ace/Bound_Ptr.{h,i}
- * tests/Bound_Ptr_Test.cpp
- * examples/Smart_Pointer: Added a pair of new smart pointer classes,
- ACE_Strong_Bound_Ptr and ACE_Weak_Bound_Ptr. Thanks to
- Christopher Kohlhoff <chris@kohlhoff.com> for contributing
- these.
-
-Tue Aug 28 17:51:19 2001 Steve Huston <shuston@riverace.com>
-
- * tests/run_test.pl: If a test has log files associated with the
- main log of the form <test>-<other>.log, e.g. MEM_Stream_Test-331.log
- the check_log function will scan those for errors/warnings too.
-
-Tue Aug 28 16:48:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i: We (the current thread) should not release the
- token unless we own it. This simple mistake just took 3 days to
- figure out. An 'if' condition was mixing and have added
- it. Shows how a small problem at lower levels can take days to
- fix.
-
-Tue Aug 28 17:45:22 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Fixed compile warning on gcc.
-
-Tue Aug 28 13:16:31 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/vxworks_modify.pl:
- * bin/perltest2cpp.pl:
-
- Generated c++ files now pass the fuzz check.
-
-Tue Aug 28 11:02:08 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
-
- Renamed the GCC 3.0 build to "Debian_GCC_3.0.1." since we're
- actually compiling with GCC 3.0.1, not GCC 3.0. The latter has
- bugs that prevent it from compiling ACE/TAO at the "-O3"
- optimization level.
-
-Tue Aug 28 10:19:18 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- Corrected Borland warning using a more efficient fix (i.e. less
- function calls).
-
-Tue Aug 28 10:36:10 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/vxworks_modify.pl:
- * bin/perltest2cpp.pl:
-
- Added these scripts for use with VxWorks and the newly added TAO
- TestUtils. These scripts modify c++ and perl to generate
- "one-button" modules for TAO testing on VxWorks.
-
-Tue Aug 28 11:07:26 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Be sure to close the stream from the
- client end.
-
-Mon Aug 27 20:16:38 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_test.lst: Removed the MEM_Stream_Test from the daily
- builds as they were hanging. This was causing the builds to
- choke. I will keep Steve Huston informed on this so that he can
- reenable them once he has fixed the test.
-
-Mon Aug 27 18:33:59 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB):
-
- Removed the stray yoda part of LIST which is causing the wrong
- results to show up.
-
-Mon Aug 27 18:14:38 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB):
-
- Added the IA-64 builds back again. We now have a faster machine
- running a better version of Linux.
-
-Mon Aug 27 09:39:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.i (get_dispatch_info):
- * ace/Timer_Queue_T.h: Fixed the compile problem in VXWORKS
- builds. How could I forget that there are a few compilers which
- cannot grok traits?
-
-Mon Aug 27 09:39:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * examples/Makefile.bor:
- * examples/NT_Service/Makefile.bor
- Added BCB makefile for this example
-
-Sun Aug 26 22:08:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i: Reordered methods to fix warnings in TRU 64
- builds.
-
-Sun Aug 26 20:50:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SSL/SSL_SOCK_Stream.i: Fixed a warning (hopefully) in
- Borland builds. The warning was because a temporary variable was
- created.
-
-Sun Aug 26 20:45:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp: Fixed a unused variable warning in
- Borland.
-
-Sun Aug 26 08:13:12 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/test_config.h: Added a new ACE_CLOSE_TEST_LOG macro. Thanks to
- Edan for this.
-
-Sun Aug 26 09:07:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp: Fixed a compile error with SunCC4.2
-
-Sun Aug 26 08:28:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.cpp: Fixed a warning from an unused variable
- reported by KCC compilers.
-
-Sun Aug 26 08:13:12 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Applied the following fixes from
- Edan:
-
- - Included ace/Logging_Strategy.h
- - Addition of -w switch to enable initial wipeout of logfile
- - Removal of the redundant ACE_LOG_MSG->open()
- - Explicitly close the previous log before applying the changes to the
- ACE_LOG_MSG
- - Moved remove_files() call higher, just before logfile close
-
- * ace/Logging_Strategy.{h,cpp}: Added the following fixes from
- Edan Ayal:
-
- - Logging_Strategy now supports any ACE_Log_Msg, not just the
- ACE_LOG_MSG singleton.
- - Added a check for success (ios::goodbit) of new ofstream
- creation.
- - Changed default values for max_size and interval. Now the
- default interval is 10 minutes (instead of 0) and the default
- log file size is 0 (was 16K). The timer is now activated only
- if both are non-zero.
- - Added a mutator to set the ACE_Log_Msg to work with, and a
- member variable
- - Added definition for ACE_DEFAULT_LOGFILE_POLL_INTERVAL
- - Removed definition of ACE_DEFAULT_MAX_LOGFILE_SIZE
-
- * ace/Log_Record.{h,cpp}: Enhanced this implementation to (1)
- be consistent with recent changes to Log_Msg.h and (2) to
- replace problematic use of strncpy(). Thanks to Alain
- Decamps for these fixes.
-
-Sat Aug 25 20:58:22 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/FILE_IO.i (send_n): Changed to use ACE::write_n to send the
- chain of Message_Blocks. The originally used ACE::send_n was
- causing problem on NT because send_n was restricted for sockets
- I/O on NT. Thanks to Doug for pointing this out.
-
-Sat Aug 25 10:16:21 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Svc_Handler_Test.cpp (main): The destructor of svc_handler
- will close file_io, so we don't need to do it explicitly!
-
- * ace/Log_Msg.cpp (log): Changed range check from
-
- this->msg_ + ACE_Log_Record::MAXLOGMSGLEN
-
- to
-
- this->msg_ + sizeof this->msg_
-
- to correspond to the change below.
-
- * ace/Log_Msg.h (ACE_Log_Msg): Increased the size of the buffer
- used to store log records to account for the NUL-terminator.
-
- * tests/Svc_Handler_Test.cpp (main): Changed the buffer size
- and NUL-terminated the buffer so that things print correctly.
- Thanks to Nanbor for finding this.
-
-Sat Aug 25 09:00:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp:
- * ace/TP_Reactor.h (ACE_TP_Reactor): Fixed a warning in KCC
- builds.
-
-Sat Aug 25 08:42:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Configuration_Import_Export.cpp: Fixed warnings with g++. I
- am not sure how this fix will be accepted on different
- compilers. Things are always dicy when you want to delete a
- void *.
-
-Fri Aug 24 23:29:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added File_IO test to our daily builds.
-
-Fri Aug 24 23:12:15 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp (dispatch_notify): Fixed a compile error on
- MSVC.
-
-Fri Aug 24 23:07:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Configuration_Import_Export.cpp: Fixed a compile error with
- g++.
-
-Fri Aug 24 21:55:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/QoS/QoS_Session_Impl.cpp:
- Check for null parameters in rsvp_callback().
- Thanks to Yamuna Krishnamurthy <yamuna@cs.wustl.edu>.
-
-Fri Aug 24 20:32:39 2001 Steve Huston <shuston@riverace.com>
-
- * tests/MEM_Stream_Test.cpp: Changed this test to use multiple
- processes on any platform without ACE_LACKS_FORK. It actually
- could be broader than this if desired. This is motivated by the
- fact that HP-UX can't mmap() (the call underlying ACE_MEM_IO)
- the same file more than once in the same process. With this,
- MEM_Stream_Test goes a lot better on HP-UX, though not perfectly
- yet.
-
-Fri Aug 24 16:54:02 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_SOCK_Stream.h (recv_i):
-
- Added a timeout parameter. See below for details.
-
- * ace/SSL/SSL_SOCK_Stream.i (recv_i):
-
- Perform an SSL_read() before attempting to block on select()
- with a timeout. OpenSSL may buffer more data than requested
- since it is a record-oriented protocol. Fixes a problem where
- subsequent calls to ACE_SSL_SOCK_Stream::recv() could timeout
- when needlessly blocking on select() because the expected data
- has already been buffered by OpenSSL. Thanks to Martin
- Krumpolec <krumpo@pobox.sk> for reporting and diagnosing the
- problem. [Bug 1006]
-
- * ace/SSL/SSL_SOCK_Stream.cpp (recv):
-
- Moved the timed recv() code to the lower level recv_i() method
- since timeout support must now be more tightly integrated with
- do/while(SSL_pending()) SSL_read() loop.
-
-Fri Aug 24 18:33:09 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Parse_Node.cpp (ACE_Function_Node): Make sure to dynamically
- allocate the pathname_ so we can delete it! Thanks to
- Don Hinton for reporting this.
-
- * ace/Configuration_Import_Export.cpp: Changed a couple of
- delete (char *) buf to delete (char *) [] buf. Thanks to
- Don Hinton for reporting this.
-
-Fri Aug 24 16:10:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- Merged in changes from the reactor_deadlock branch. This set of
- changes actually fixes a long standing problem with the
- TP_Reactor. The TP_Reactor was holding the token too long and
- this created all sorts of problems for TAO. The changes have been
- merged from the branch <reactor_deadlock> and here are the relevant
- ChangeLog entries.
-
- Fri Aug 24 14:59:52 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (dispatch_socket_events): Cosmetic changes.
-
- Fri Aug 24 14:19:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.i:
- * ace/Timer_Queue_T.h:Removed the default constructor and
- destructor for ACE_Timer_Node_Dispatch_Info_T allowing the
- compiler to do the job.
-
- Fri Aug 24 12:05:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.cpp: Removed some vague debug statements.
-
- Fri Aug 24 11:34:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Timer_Queue_T.h:
- * ace/Timer_Queue_T.cpp:
- * ace/Timer_Queue_T.i: Added a new class
- ACE_Timer_Node_Dispatch_Info_T that has the dispatch information
- needed to make the upcall. Added methods, dispatch_info () and
- dispatch_info_i () in ACE_Timer_Queue_T. These methods return
- the dispatch information if there is a node in the queue whose
- timer value <= current time. Changed the expire () method to use
- this method to get dispatch information.
-
- * ace/Timer_Queue.h: Added a template specialisation for
- ACE_Timer_Node_Dispatch_Info_T.
-
- * ace/Timer_Queue.cpp: Added template instantiations for the
- specialisation.
-
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp: Added a new method handle_timer_events ()
- that would handles timer events.
-
- Thu Aug 23 11:50:18 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor_Impl.h: Added two new methods notify_handle () and
- dispatch_notify () to the ACE_Reactor_Impl class.
-
- * ace/Select_Reactor_Base.h:
- * ace/Select_Reactor_Base.cpp: Implemented the above two
- methods in the ACE_Select_Reactor_Notify class. The
- notify_handle () method returns the handle of the pipe on which
- it is listening. The dispatch_notify () call does a dispatch of
- just one notify () call in the notify pipe. The handle_input ()
- call that used to process all the notify calls now calls the
- dispatch_notify () in a loop. The change essentially allows
- some extrenal client of this class to just process one notify at
- a time if needed.
-
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.i:
- * ace/TP_Reactor.cpp (handle_events): Fixed a bug with
- handle_events (ACE_Time_Value &). This should be calling the
- handle_events () of the TP_Reactor and not the select reactor.
-
- Added a whole slew of new methods that basically allows us to do
- this
- - handle one event at a time
-
- - once the thread knows the event that needs handling it should
- release the token before dispatching the events
-
- The new methods that have been added are
-
- - handle_signals (), which handle signals that interrupted the
- select (). The implementation of this method is busted. The
- implementation has been copied from the existing setup
-
- - handle_notify_events (), which handles one notify on the
- notify_pipe at a time
-
- - handle_socket_events (), which handles socket events.
-
- Quite a few helper methods have also been added. They are
- get_notify_handle (), get_socket_event_info (), and
- dispatch_socket_events (). Removed the methods dispatch_i (),
- dispatch_i_protected () and notify_handle (). This checkin fixes
- the problem in 1002. But we still have to add handling timeouts
- into the TP_Reactor.
-
-
- Tue Aug 21 17:21:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i:
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp: Made lots of changes which havent been
- compiled yet. Added a new class ACE_TP_Token_Guard that helps
- in obtaining and releasing tokens. Moved the grab_token () from
- the ACE_TP_Reactor class to the TP_Token_Guard class. Added a
- new method for handling signals. They havent been compiled yet
- and this checkin is to put files from work to my home box.
-
- Tue Aug 21 07:58:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/TP_Reactor.i:
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp (handle_events): Started refactoring some of
- the code to help with this bug. This change has not been
- compiled. This is just being done to transfer files from home
- to work.
-
-Fri Aug 24 14:25:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * THANKS: Added Massimo Pichini <massimo@webbridges.it> to the
- Hall of Fame.
-
-Fri Aug 24 13:40:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst: Removed HPUX and AIX_VAC for the
- timebeing. Looks like OCI is running different versions of the
- OS for their internal use.
-
-Fri Aug 24 10:17:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log_hexdump): Added a patch provided by Massimo
- Pichini <massimo@webbridges.it>. This prevents overflows with
- long strings that are used in printing hexdumps. Previously we
- had a buffer of 80 bytes on the stack.
-
-Fri Aug 24 10:03:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/INET_Addr.(h cpp): Applied changes submitted by
- Alain Decamps <Alain.Decamps@PIDPA.be> to insure that
- get_host_name (char hostname[], size_t len) const always
- nul-terminates the hostname string. If the host lookup is
- successful, but the supplied buffer is too short, the function
- returns -1, errno == ENOSPC.
-
-Thu Aug 23 22:01:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Reverted this change "Thu Aug
- 23 05:24:57 2001 Douglas C. Schmidt" as this was giving
- warnings with MSVC 6.0
-
-Thu Aug 23 11:49:15 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * bin/msvc_auto_compile.pl:
-
- Revert changes from Mon Aug 20 15:48:30 2001.
- Thanks to Darrell to showing me the error in my ways.
-
-Thu Aug 23 09:17:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (file): Reduced the number of bytes copied in
- ACE_Log_Msg::file () and ACE_Log_Msg::msg () by one. Thanks to
- Alain Decamps <Alain.Decamps@PIDPA.be> for pointing this out.
-
-Thu Aug 23 08:11:22 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Configuration_Import_Export.cpp (process_previous_line_format):
- Prepend ACE_OS:: to atoi to work with both narrow and wide chars.
-
-Thu Aug 23 08:03:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/QoS/QoS_Session_Impl.cpp:
- Improve debugging messages. Return -1 inside rsvp_callback()
- if flowspec type is unknown.
-
-Thu Aug 23 05:24:57 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Added new and improved test that
- it better documented and fixes some minor bugs. Thanks to
- Edan Ayal for this.
-
-Wed Aug 22 19:04:57 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Logging_Strategy_Test.cpp: Enable this test to work
- on platforms that don't support DLLs. Thanks to Edan Ayal
- <edana@bandwiz.com> for suggestion this and providing the code.
-
- * tests/Logging_Strategy_Test.cpp (parse_args): Changed 'n' for 'N'
- since that controls the max number of log files. Thanks to Edan
- Ayal <edana@bandwiz.com> for reporting this.
-
-Thu Aug 23 07:30:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/SString.{h,i}: Added clear() method to the ACE_CString and
- ACE_WString so that it is possible to clear a string in just one
- call
- * tests/SString_Test.cpp: Extended to test clear() method
-
-Wed Aug 22 15:30:05 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Use the print_config.pl script to print out the configuration.
-
-Wed Aug 22 17:33:29 2001 Steve Huston <shuston@riverace.com>
-
- Applied fixes submitted by Jerry D. Odenwelder, to fix
- Bugzilla #953:
-
- * ace/Configuration.cpp (import_config, export_config): Changed
- from using a ACE_Ini_ImpExp object to an ACE_Registry_ImpExp
- to preserve type information in the import/export files, and
- retain the ability to read an ACE 5.1-format file (with the
- changes next...)
-
- * ace/Configuration_Import_Export.(h cpp): Added a new
- ACE_Registry_ImpExp::process_previous_line_format() method that
- knows how to read an ACE 5.1-format config line. If
- ACE_Registry_ImpExp::import_config finds a line that does not
- begin with one of <"[#;> it calls process_previous_line_format
- to try to convert it using ACE 5.1-format rules.
- Note that the auto conversion works on import. If the
- object is subsequently exported, the new registry format
- will be used to write the file, effectively updating it
- from old to new format.
-
-Wed Aug 22 12:04:04 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/WFMO_Reactor.h (ACE_WFMO_Reactor): Clarified that the
- work_pending() method isn't implemented and suggest what to do
- for a workaround. Thanks to Michelangelo Riccobene
- (michelangelo.riccobene@marconi.com) for reporting this.
-
-Wed Aug 22 10:38:08 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/print_config.pl:
- Add new perl script to print out the build configuration, the
- script will be shared by the Unix and Win32 builds.
-
-Wed Aug 22 11:30:13 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/OS_Memory.h:
- Removed include of pace/stddef.h. PACE does not have this
- file. There are no POSIX functions that typically reside
- in this header. Maybe PACE will need this later but it
- doesn't now.
-
- * ace/OS.h (ACE_cond_t):
- Modified #if guard to include ACE_cond_t class if we're
- on Win32. If we're using PACE then we don't want this method
- (since PACE takes care of it) unless we're on Windows. Win32
- mutexes, semaphores, and condition variables are not yet
- supported in PACE.
-
- * ace/OS.cpp (ACE_OS::cond_destroy):
- Modified #if guard to include ACE_cond_t::cond_destroy
- if we're on Win32. If we're using PACE then we don't want
- this method (since PACE takes care of it) unless we're on
- Windows. Win32 mutexes, semaphores, and condition variables
- are not yet supported in PACE.
-
- * ace/OS.i (ACE_OS::waiters):
- Modified #if guard to include ACE_cond_t::waiters if
- we're not on Win32. If we're using PACE then we want
- this method (since PACE defines cond_t) unless we're
- on Windows. Win32 mutexes, semaphores, and condition
- variables are not yet supported in PACE.
-
-Tue Aug 21 08:26:30 2001 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: changed the example referenced
- in:
- Sun Aug 19 08:17:14 2001 David L. Levine <levine@cs.wustl.edu>
- to be a bit more realistic.
-
-Tue Aug 21 06:58:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Fixed problematic uses of strncpy. Thanks to
- Alain Decamps <Alain.Decamps@advalvas.be> for giving this patch.
-
-Tue Aug 21 10:40:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Map.i: Made the return value of ACE_Incremental_Key_Generator
- getCurrentValue() const
-
- * ace/Map_Manager.*: Added a const iterator for the
- ACE_Map_Manager
-
-Mon Aug 20 18:20:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (pass_handle): Only try to compile the
- DuplicateHandle stuff when !ACE_HAS_WINCE... I think it's
- right this time...
-
-Mon Aug 20 15:54:46 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SUN_Proactor.cpp: Removed the instantiation of
- ACE_Condition<ACE_Thread_Mutex>. Thanks to David Trusty
- <david.trusty@westwave.com> for reporting this.
-
-Mon Aug 20 15:48:30 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * bin/msvc_auto_compile.pl:
-
- Modify script to print config.h contents.
-
-Mon Aug 20 13:14:00 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Fixed chdir commands for the auto_compile scripts.
-
-Mon Aug 20 14:33:31 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Message_Queue_T.cpp: If we timeout in the semaphore implementation
- of the message queue in wait_not_full_cond() or
- wait_not_empty_cond() make sure to decrement the "waiters" count
- accordingly! Thanks to Patrick Rabau <Patrick.Rabau@htc.com>
- for noticing this in the C++NPv1 book version!
-
-Mon Aug 20 07:01:31 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Synch_T.i (release): If owner_ == -1 then return
- -1. Thanks to Don Hinton <dhinton@swan.fr> for suggesting this.
-
-Mon Aug 20 13:18:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/SOCK.h: Corrected comment on ACE_SOCK ctor being protected,
- not private. Thanks to Don Hinton <dhinton@swan.fr> for
- pointing this out.
-
- * THANKS: Added Don Hinton to the Hall of Fame.
-
-Mon Aug 20 11:00:50 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/OS.h:
-
- Set the ACE_DEFAULT_FILE_PERMS to the correct value for VxWorks.
-
- * tests/run_test.lst:
-
- Removed tests for VxWorks for which the platform has no support.
-
- * tests/CDR_File_Test.cpp:
- * tests/Svc_Handler_Test.cpp:
-
- Add VxWorks to the list of platforms that can't unlink the file
- in advance of the test completing.
-
-Mon Aug 20 01:49:12 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * include/makeinclude/build_dll.bor:
- Build non-core DLLs into the common bin directory. This is necessary
- so that the tests can find all the DLLs they need on the path.
-
- * tests/run_test.pl:
- Removed the append of the ExeSubDir to the path, since it is no
- longer needed and never really worked properly anyway.
-
-Mon Aug 20 00:01:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/SOCK_Connector.h: Clarify the conditions under which errno
- will be ETIME (caller-specified timeout expires w/o connect)
- vs. ETIMEDOUT (protocol layer timed out the connect).
-
- * ace/SOCK_Connector.cpp: Add "|| errno == ETIME" to a couple
- places where an ACE_ERROR is _not_ done for certain conditions.
-
- * ace/ACE.cpp (handle_timed_complete): If the user-specified timeout
- expires before the connect is resolved one way or the other,
- set errno to ETIME, not ETIMEDOUT. This makes it match the
- documented behavior in the ACE_SOCK_Connector man page.
-
-Sun Aug 19 20:33:39 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- Update build list
-
-Sun Aug 19 15:36:23 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_compile:
- Add new 'Config' section at the end of the build, useful for the
- next generation scoreboard.
-
-Sun Aug 19 13:25:51 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/footprint_stats.sh:
- * bin/performance_stats.sh:
- * bin/generate_footprint_chart.sh:
- * bin/generate_performance_chart.sh:
- * html/Stats/Stats.css:
- * html/Stats/configuration.shtml:
- * html/Stats/detailed_footprint.shtml:
- * html/Stats/detailed_performance.shtml:
- * html/Stats/footer.html:
- * html/Stats/index.shtml:
- * html/Stats/navigation.html:
- Put the scripts and HTML documents used to generate the Stats
- pages under CVS control. Now it is easier for people to add
- their own libraries and tests, as well as let our user community
- examine the way the pages are generated.
-
- * bin/auto_run_tests.lst:
- Remove TAO/tests/LongUpcalls/run_ami_test.pl, the tests have
- been incorporated into the run_test.pl script.
-
- * bin/sandbox.cpp:
- Minor changes to the sandbox script, actually not very useful,
- the ACE classes to create processes start a new process group by
- default, therefore there is no simple way to kill all the
- subprocesses if a test fails.
-
-Sun Aug 19 08:17:14 2001 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: replaced function call in
- ASSERT with simple comparison of a variable value. Thanks
- to Tino Schwarze <tino.schwarze@informatik.tu-chemnitz.de>
- for suggesting this.
-
-Sat Aug 18 18:26:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/ACE.cpp: Removed the ASYS_INLINE macro from the definition
- of write_n ().
-
-Sat Aug 18 13:18:10 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/ACE.{h,cpp}: Added a new write_n(...ACE_Message_Block *...)
- for file transfers that's the dual of
- send_n(...ACE_Message_Block *...). This helps out the C++NPv1
- book symmetry. Thanks to Alain Decamps <Alain.Decamps@PIDPA.be>
- for motivating this.
-
-Fri Aug 17 18:17:38 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * bin/clone.cpp: Only use extern char *sys_errlist[] if we're not
- compiling on Linux. Thanks to Thomas Groth
- <groth.th@stn-atlas.de> for reporting this.
-
-Fri Aug 17 19:04:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (ACE_Process_Options::pass_handle): For WinCE,
- just do ACE_NOTSUP_RETURN (-1). It can't dup a handle.
-
-Fri Aug 17 16:56:16 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
-
- Added wr_ptr() accessor method to ACE_InputCDR, and added its
- use to adjust(), align_read_ptr(), read_1(), skip_string() and
- skip_bytes() instead of end(). Also added reset of good_bit_
- to 0 upon failure in read_string() and read_wstring(). Thanks to
- Peter Phillips <pphillip@opentext.com> for reporting this bug,
- which was causing excessive memory allocation is some cases.
- [Bug 591, 944, 983]
-
-Fri Aug 17 13:31:45 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/run_test.pl:
-
- Added the ability to generate windsh commands to load and run
- the ace tests.
-
- * tests/Makefile:
-
- Added a rule to generate run_test.vxworks, using run_test.pl,
- which can be used to run the tests selected for the VxWorks OS.
-
- * tests/run_test.lst:
-
- Update this list to take into account the limitations of VxWorks.
-
- * tests/test_config.h:
-
- Change the permissions of the log file open (for VxWorks only) to
- use the symbolic permission names instead of 0x644. The
- permissions differ from the standard UNIX modes.
-
- * tests/run_tests.vxworks:
-
- This file was out of date and no longer needs to be maintained.
- So, it has been removed.
-
-Fri Aug 17 09:44:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Map_T.{h,i}: Reverted this change "Fri Aug 17 08:07:12 2001
- Johnny Willemsen <jwillemsen@remedy.nl>" as this was giving too
- much of warnings in the builds.
-
-Fri Aug 17 09:30:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * gperf/apps/tests/Makefile: Fixed the problem that was causing
- the builds to fail.
-
-Fri Aug 17 08:07:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Map_T.(h i): made the return value of
- ACE_Incremental_Key_Generator::current_value const T& instead
- of T&. Added uppercase traits to the ACE_Map class.
-
-Thu Aug 16 19:27:29 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.cpp (ACE_Process_Options::pass_handle): Add
- "::" to front of "DuplicateHandle" so the WinCE compiler
- sees the right function.
- Also added ctor/dtor for ACE_Managed_Process to try and fix the
- can't find vtable error on Linux.
-
- * ace/Process.h: Added a constructor for ACE_Managed_Process
- to fix "can't find vtable" error on Linux.
-
- * ace/Process.i: Moved ACE_Managed_Process dtor to .cpp file.
-
-Thu Aug 16 15:10:42 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Process.h (pass_handle): Clarify comments for this method.
-
- * ace/Process_Manager.cpp:
- * ace/Process.(h i): Moved the ACE_Managed_Process class out
- of Process_Manager.cpp, exposing it for general use.
-
-Thu Aug 16 10:34:20 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/POSIX_Proactor.cpp (allocate_aio_slot): Added a fix so that
- the POSIX Proactor compiles with FreeBSD 4.4. Thanks to Yev
- Omenzel <omenzel@yahoo.com> for reporting this and to Craig
- Rodrigues <crodrigu@bbn.com> for fixing it and to
- John E Hein <jhein@timing.com> for fixing the fix ;-)
-
-Thu Aug 16 08:09:53 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/run_test.lst:
-
- Added the OTHER requirement to the Thread_Pool_Reactor_Test and
- the Thread_Pool_Reactor_Resume_Test. These are only built if
- OTHER is part of the ACE components list.
-
-
-Wed Aug 15 15:50:38 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp: Don't try to purge the notifications if
- notify_handler_ is 0. Thanks to Edan Ayal
- <edanayal@hotmail.com> for reporting this.
-
-Wed Aug 15 11:33:26 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/nightlybuilds/builds.lst:
- Remove one build from the list, the machine is being retargeted
- for performance testing.
-
-Wed Aug 15 11:10:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Added $(VDIR) for
- OBJDIRS. This prevents hardcoding the value of OBJDIRS. This has
- been tested for a dynamic and a static library on Linux. If
- there are other platforms that gives problems, please feel free
- to revert the changes to the version 4.114 of the file.
-
-Wed Aug 15 09:35:19 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Dirent_Test.cpp:
-
- Added #define's for VXWORKS that allow this test to function
- properly. Avoid hard-coded relative paths that may not exist on
- VxWorks.
-
-Wed Aug 15 09:08:40 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Sock_Connect.cpp:
-
- Added an implementation to ACE_Sock_Connect::get_ip_interfaces().
- With this, the Enum_Interfaces_Test works correctly.
-
-Wed Aug 15 07:54:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Unravelled the mystery a
- bit. The patch that was applied to remove the hard coding of
- OBJDIRS seems to be the problem. The OBJDIRS has been hardcoded
- again. This should fix the problems that we have been seeing in
- the builds. If at all we need to remove hardcoding the OBJDIRS,
- we either need to put the value of VDIR or VSHDIR. If we put
- both we are going to end up with duplicate targets. Now the
- killer, what do we add to the OBJDIRS? Me thinks it is VDIR. I
- have test that out else I would be breaking builds again.
-
-Wed Aug 15 07:30:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Reverted the change "Tue
- Aug 14 21:42:24 2001 Balachandran Natarajan". Thought that was a
- typo. But looks like it is not.
-
-Wed Aug 15 06:39:50 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Process.cpp: Fixed a warning with g++.
-
-Tue Aug 14 23:57:42 2001 Steve Huston <shuston@riverace.com>
-
- * A set of changes to encapsulate passing handles to spawned
- processes. Thanks very much to Eamonn Saunders
- <Esaunders@softricity.com> for suggesting that this could work
- and pointing out the Win32 details!
-
- * THANKS: Added Eamonn Saunders to the Hall of Fame
-
- * ace/Handle_Set.h: Replace include ace/ACE.h with ace/OS.h. This
- class is part of the OS subset.
-
- * ace/Process.h: Added the following methods:
- - ACE_Process_Options::pass_handle (ACE_HANDLE). Cause the specified
- handle to be passed to a child process when it's spawned. Has
- meaning mainly for Win32. The handle value will be included
- in the spawned process's command line as +H <handle>. The passed
- handle value will be duplicated if on Win32 less than NT4.
-
- - ACE_Process_Options::dup_handles (ACE_Handle_Set set) const
- Get a copy of the handles the ACE_Process_Options duplicated
- for the spawned process.
-
- - ACE_Process_Options::passed_handles (ACE_Handle_Set set) const
- Get a copy of the handles passed to the spawned process. This
- will be the set of handles previously passed to pass_handle().
-
- - ACE_Process::close_dup_handles (). Close all the handles in
- the set obtained from ACE_Process_Options::dup_handles.
-
- - ACE_Process::close_passed_handles (). Close all the handles in
- the set obtained from ACE_Process_Options::passed_handles.
-
- Also moved the avoid_zombies() functions and flag out of the
- non-Win32 section - it can safely be ignored, maintain the
- intended semantics, and help apps stay portable.
-
- * Process.cpp: Implement the above new methods. Also, after spawning
- a process, the parent will call the above dup_handles/passed_handles
- methods to get any passed handles. The close_*_handles() methods
- can then close them. Also, the destructor will call close_dup_handles
- to be sure that no handles leak on Win32 less than NT4.
-
- * Process.i (command_line_buf ()): Added a new arg to receive the
- maximum length of the buffer pointed to on return. To maintain
- backward compatibility, the arg defaults to 0 (don't return
- the max length).
-
- * ace/Makefile: Moved Handle_Set from the UTILS group to the OS group.
-
- * ace/ace.icc: Moved Handle_Set from DEMUX to OS.
-
- * docs/ACE-subsets.html: Move Handle_Set from DEMUX to OS.
-
-Tue Aug 14 21:42:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Fixed a typo.
-
-Tue Aug 14 21:30:04 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * apps/Makefile: Removed JAWS2 and JAWS from the Makefile. There
- are several reasons for reverting. This breaks the builds. The
- Makefiles in the recursed directories are all messed up. The
- library dependencies doesnt seem trivial. Nobody may have time
- to fix this. Further, our daily builds return too quickly and we
- just needed more files to compile :-).
-
-Tue Aug 14 14:19:49 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Memory_Pool.i (ACE_Local_Memory_Pool dtor): Call release()
- here to free up the blocks allocated by the pool, else they're
- stranded and can't be freed.
-
- * ace/Memory_Pool.cpp (ACE_Local_Memory_Pool::release): After
- freeing up the blocks, reset the allocated_chunks_ set to be
- sure they are also freed, and the chunks can't be freed again.
-
-Tue Aug 14 14:19:37 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Applied the patches sent by Tibor Kiss
- <tkiss@mindmaker.hu> for ACE_Log_Msg::close ()
-
-Tue Aug 14 13:55:42 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/platform_macosx.GNU: Added a patch from John
- Michael Zorko <j.zorko@att.net>.
-
-Tue Aug 14 10:21:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.h: Clarified the defaults for the per-process and
- per-instance default priority masks.
-
-Mon Aug 13 14:01:35 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Fixed some hard-coded
- uses of .shobj and .obj. Thanks to Shashi Bhushan
- <Shashi.Bhushan@lmco.com> for contributing these.
-
- * ace/CDR_Stream.h: Added comments warning about the deletarious
- effects of not aligning buffers to ACE_InputCDR and
- ACE_OutputCDR properly. Thanks to Alain Decamps
- <Alain.Decamps@PIDPA.be> for reporting this.
-
-Sun Aug 12 14:46:07 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.cpp (sched_params): Make sure to set errno for Win32 so
- that callers can figure out what's going wrong in a consistent
- way.
-
- * ace/Select_Reactor_Base.i (purge_pending_notifications): Don't
- try to purge the notifications if notify_handler_ is 0. thanks
- to Steve Rahn <SRahn@rim.net> for reporting this.
-
-Mon Aug 13 20:09:04 2001 Balachandran <bala@cs.wustl.edu>
-
- * ACE version 5.1.19 released.
-
-Sun Aug 12 02:17:01 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/MEM_Acceptor.cpp:
- * ace/MEM_Connector.cpp: On non-Win32 platforms, disable
- multithreaded MEM_IO if _ACE_USE_SV_SEM is defined.
-
-Sun Aug 12 01:27:51 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Log_Msg_Test.cpp: Correct const-ness of a pointer
- retrieved from ACE_Log_Record::msg_data().
-
-Sun Aug 12 00:34:42 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Record.h:
- * ace/Log_Record.i (msg_data()): Changed ACE_TCHAR *msg_data()
- to: const ACE_TCHAR *msg_data (void) const. Makes it safer,
- and conforms to all current usage inside ACE. Also makes
- C++ Network Programming examples simpler :-)
-
-Sat Aug 11 09:01:11 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Thread.h:
- * ace/Task.h: Added a list of other flags that can be passed to
- activate().
-
-Fri Aug 10 19:39:48 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Disabled the Blocking_Sync_None test from running under Tru64.
- Also changed the config parameter passed to the auto_compile
- script from TRU_64 to Tru64 in
- ~bugzilla/bin/auto_compile_tru64_cxx.
-
- This is so that the test is disabled only for the WashU builds.
- The reason being that Bala was not too happy with changing the
- default values for all the platforms and we also wanted to avoid
- more #ifdefs in the code. Other builds might have better values
- and the test might succeed. Have to confirm this though.
-
-Fri Aug 10 17:59:47 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Svc_Conf_y.cpp:
- * ace/OS.h: Added /**/ between #include and <sys/modem.h> and
- <alloca.h> to avoid warning from CE compiler.
-
- * ace/ace_dll.vcp: Added Svc_Conf_Lexer_Guard.* to the project.
-
-Fri Aug 10 13:40:46 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- I didn't realize the LIST definition was needed. I have
- added it for the Tru64 4.0f Compaq C++ 6.3-10 build.
-
-Fri Aug 10 11:45:03 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * bin/nightlybuilds/builds.lst:
-
- Added the Tru64 4.0f Compaq C++ 6.3-10 build.
-
-Fri Aug 10 11:06:23 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * apps/drwho/CM_Client.cpp:
- * apps/drwho/CM_Server.cpp:
- * apps/drwho/server.cpp:
-
- Changes to avoid warnings on HP-UX with aCC.
-
-Thu Aug 9 16:56:05 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.i:
- * ace/Hash_Map_Manager_T.cpp: We seem to be re-inventing wheels
- again and again. A few months back we had a show stopper in a
- beta which was caused by usage of static cast. The cast was not
- to the liking of SunCC 4.2. Looks like we had to change a bunch
- of static cast sprayed in these two files to a C style cast as
- 4.2 doesnt like them. Compilers like Borland handle these
- better, but not 4.2.
-
-Thu Aug 9 11:51:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/platform_hpux_aCC.GNU: On popular mandate we
- have the -w flag removed from CCFLAGS in the above file. Looks
- like the -w disables lots of warnings that may be useful.
-
-Thu Aug 9 11:41:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.h (ACE_OutputCDR): Fixed the ambigous constructor
- problem. The InputCDR class had two constructors which were
- similar if the default values for the arguments were
- exercised. Thanks to Torbjorn Backstrom
- <torbjorn.k.backstrom@volvo.com> for reporting this.
-
-Thu Aug 9 12:31:21 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS_String.cpp (strtok_r_emulation): Make sure to check
- for a NULL return from strtok() before calling strlen()! Thanks
- to Boris Sukholitko <boriss@richfx.com> for reporting this.
-
-Wed Aug 08 21:27:50 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/nightlybuilds/builds.lst (Debian_Wchar, Debian_GCC_3.0):
-
- The host these nightly builds were built on is now called
- "rumba" (previously "valinor"). Updated the build list
- accordingly.
-
-Wed Aug 08 21:19:09 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_Test.UTF-16.conf:
-
- Removed extraneous characters from this file that were causing
- the Service Configurator's underlying lexer to "choke."
-
-Wed Aug 8 16:23:31 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/auto_run_tests.lst:
- Add the AMI_Buffering tests to the nightly regression testsuite.
-
-Wed Aug 8 16:07:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: The GIOP lite tests will not work in the
- static builds. It was adding more complications to the test
- than what is already there to get it working for the static
- builds.
-
-Wed Aug 8 14:06:36 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-tru64.h:
-
- Define ACE_HAS_NONSTATIC_OBJECT_MANAGER for all DEC Unix 4.x
- versions.
-
- * ace/config-cxx-common.h:
-
- Define ACE_AUTO_PTR_LACKS_RESET if __DECCXX_VER == 60190027.
- Thanks to Robert Burke <c-robert.burke@wcom.com> for reporting
- this.
-
- * include/makeinclude/platform_osf1_3.2.GNU:
- * include/makeinclude/platform_osf1_4.0.GNU:
- * include/makeinclude/platform_osf1_4.0_g++.GNU:
- * include/makeinclude/platform_osf1_4.0_kcc.GNU:
- * include/makeinclude/platform_osf1_4.0_rcc.GNU:
-
- Removed the following files.
-
- * include/makeinclude/platform_osf1_3.2_cxx.GNU:
- * include/makeinclude/platform_osf1_4.x_cxx.GNU:
- * include/makeinclude/platform_osf1_4.x_g++.GNU:
- * include/makeinclude/platform_osf1_4.x_kcc.GNU:
- * include/makeinclude/platform_osf1_4.x_rcc.GNU:
-
- Added new versions of the removed files.
-
- * include/makeinclude/platform_tru64_pre.GNU:
- * include/makeinclude/platform_tru64_post.GNU:
-
- Moved a lot of duplicated code into these new files.
-
- * include/makeinclude/platform_tru64_cxx.GNU:
- * include/makeinclude/platform_tru64_g++.GNU:
- * include/makeinclude/platform_tru64_kcc.GNU:
-
- Removed a lot of old *cruft* like setting up compilation with
- cxx when gcc was asked for etc. etc. Somebody went overboard
- with cut'n paste and copied David's changes blindly. Still not
- completely satisfied. But it works and is better than before.
- This also fixes Bug Id 989.
-
-Wed Aug 08 11:30:26 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_Test.cpp (run_test):
-
- Don't check if "ACE_USES_WCHAR == 1" since some configurations
- neglect to set it an integer value. Instead, just check if it
- is defined.
-
-Wed Aug 8 12:31:51 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp: Changed a ACE_DEBUG statment with an
- LM_WARNING to an LM_DEBUG.
-
-Wed Aug 08 11:59:45 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Do not redefine ACE_IOV_MAX if it has already been
- defined.
-
-Wed Aug 8 06:21:24 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Makefile: Moved Message_Block from STREAMS_FILES to
- UTILS_FILES.
-
- * ace/OS_Dirent.inl (closedir): Changed delete d->directory_name_ to
- delete [] d->directory_name_. Thanks to Olivier Brunet
- <obrunet@groupama-ccama.tm.fr> for reporting this.
-
-Tue Aug 7 21:59:42 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Svc_Handler_Test.cpp: Modified the test to dump the contents
- of the temporary file to the log file.
-
-Tue Aug 7 19:14:24 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/CDR_Stream.i:
- * ace/SOCK_Stream.h: Fixed incorrect comments.
- Thanks to Alain Decamps <Alain.Decamps@PIDPA.be> for reporting
- these.
-
-Tue Aug 7 15:19:38 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace: Changed all uses of IOV_MAX to use the new ACE_IOV_MAX.
- * ace/OS.h: Added a new ACE_IOV_MAX that makes it clear this is
- an ACE-level #define. We use this in C++NP v1.
-
-Tue Aug 7 14:16:57 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Svc_Handler.cpp: Reimplemented the flush() method to use
- the new send_n() method on the various ACE I/O classes.
-
- * ace/SOCK_Stream.{h,i}:
- * ace/FILE_IO.{h,i}: Added a new send_n() method that sends all
- the <message_block>s chained through their <next> and <cont>
- pointers using the underlying OS gather-write operation to
- reduce the domain-crossing penalty.
-
-Tue Aug 7 17:27:16 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Collection_test.cpp: Fixed a compile error with g++. This
- is a patch that Johnny Willemsen sent as a part of his last
- checkin.
-
-Tue Aug 07 11:25:36 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Made the following definition
- valid only for pre-4.2-RELEASE.
-
- #define ACE_LACKS_GETPGID
- #define ACE_LACKS_SETPGID
- #define ACE_LACKS_SETREGID
- #define ACE_LACKS_SETREUID
-
- Thanks to Robert Burke <rburke2002@yahoo.com> for reporting
- this.
-
-Tue Aug 07 16:40:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/Hash_Map_Manager_T.*:
- Added const_iterator to the Hash_Map_Manager so that it is
- possible to iterate over a hash map in a const method
-
- The operator= of the iterator now check the value of this to
- check that the iterator instance is assigned to itself
-
- * tests/Hash_Map_Manager_Test.cpp
- Extended this test to test the new const_iterator capabilities
- of the hash map
-
- * ace/Unbounded_Set.cpp:
- Implemented missing operator* for the const iterator
-
- * tests/Collection_test.cpp:
- Extended test to test the operator* of the
- Unbounded_Set_Const_Iterator
-
-Mon Aug 6 19:58:48 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/config-hpux-11.00.h: Added #define for ACE_HAS_TERM_IOCTLS.
- Thanks to Torbjorn Backstrom <torbjorn.k.backstrom@volvo.com>
- for reporting this.
-
- * ace/OS.h: Added a #include for <sys/modem.h> for HP/UX. Thanks
- to Torbjorn Backstrom <torbjorn.k.backstrom@volvo.com> for
- reporting this.
-
-Mon Aug 6 12:51:35 2001 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Synch.h (ACE_Null_Mutex>): Fixed a cut&paste error
- where acquire_write() should be acquire_read(). Thanks to
- Russell Mora <rd.mora@router.econz.co.nz> for fixing this.
-
-Mon Aug 06 17:17:33 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Service_Config.cpp:
-
- Fixed some debugging messages that were not wrapped within an
- ACE_LIB_TEXT macro.
-
- * tests/Service_Config_Test.UTF-16.conf:
-
- Interim UTF-16 encoded version of the UTF-8 encoded
- Service_Config_Test.conf. It was generated on a little-endian
- host. Its current purpose is simply to keep our Unicode
- regression testing happy until the on-the-fly generation is
- implemented. Once we start generating this file on-the-fly
- this file should disappear.
-
- * tests/Service_Config_Test.cpp (run_test):
-
- When using full Unicode support, use the version of the Service
- Configurator file that is UTF-16 encoded (as described above).
-
-Mon Aug 06 11:10:24 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_l.cpp:
-
- More Unicode fixes. Flex's allocation function uses malloc() as
- its underlying allocator. Since it only accepts the size in
- bytes, allocate "size * sizeof (ACE_TCHAR)" when allocating
- string buffers. This should clear up some strange looking text
- "unknown character" messages emanating from the Service
- Configurator's underlying text scanner.
-
- Note that these changes do not fix the cause of the "unknown
- character." Those fixes should soon follow.
-
-Mon Aug 06 09:04:04 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.l:
-
- Unicode updates. Wrap debugging text within an ACE_LIB_TEXT
- macro.
-
-Sun Aug 5 14:31:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_tests.lst: Ossama suggested that we dont run the
- Service_Config_Test in static builds.
-
-Fri Aug 04 3:33:31 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/QoS/SOCK_Dgram_Mcast_QoS.h:
- * ace/QoS/SOCK_Dgram_Mcast_QoS.cpp:
-
- Made the open method public so we can open UDP sockets for
- non-multicast addresses.
-
-Fri Aug 03 22:19:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.00.h: Added ACE_HAS_WCHAR to build in the
- wide char handling since Darrell so nicely straightened all
- the muck out throughout ACE. Thanks Darrell!
-
-Fri Aug 03 22:15:51 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): For 'W' and 'w' on HP-UX, the 'ls' and
- 'lc' forms are not allowed; HP-UX requires 'S' and 'C'.
-
-Fri Aug 3 13:10:59 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/config-linux-common.h (ACE_UINT64_FORMAT_SPECIFIER,
- ACE_SSIZE_T_FORMAT_SPECIFIER, ACE_SIZE_T_FORMAT_SPECIFIER):
-
- Removed unnecessary and some incorrect format specifiers for the
- 32-bit platform case. In particular, the format specifier for
- an unsigned 64-bit integer was incorrectly set to "%Lu." "%L"
- is the format specifier for a "long double," not a "long long"
- integer on 32-bit platforms. "%llu" is the correct format
- specifier which `ace/Basic_Types.h' already defines.
-
-Fri Aug 3 09:55:38 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/auto_run_tests.lst:
-
- Added the new TAO "DLL_ORB" test to the list of tests to run.
-
-Fri Aug 3 08:26:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/RW_Process_Mutex.cpp: Added a missing comma in the
- constructor. This should fix Win32 compile errors.
-
-Fri Aug 3 08:07:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Base.cpp: Added a check for a memory allocation failure
- in grow (). Thanks to Francis Paul <FranciP@navcanada.ca> for
- pointing this out.
-
-Thu Aug 2 18:37:23 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/RW_Process_Mutex.cpp: Added ACE_DEFAULT_OPEN_PERMS
- to the constructor call to ACE_RW_Process_Mutex so that it does
- the right thing on Win32. Thanks to Wayne Erchak
- <werchak@stentor.com> for reporting this. This fixes
- bugid 996.
-
-Thu Aug 02 13:04:19 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace.icc: Added Intrusive_List.cpp to the TEMPLATE_FILES
- section.
-
-Thu Aug 02 06:59:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Basic_Types.h (ACE_SIZEOF_WCHAR): If ACE_HAS_XPG4_MULTIBYTE_CHAR
- is defined, use sizeof(wchar_t) to set ACE_SIZEOF_WCHAR.
-
-Wed Aug 1 16:05:49 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * Merged changes from the fix_886 branch
-
- Tue Jul 31 09:17:49 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Intrusive_List.h:
- * ace/Intrusive_List.inl:
- Add new methods to access the head and tail of the list.
-
- * ace/Intrusive_List.cpp:
- Fixed the implementation of remove(), if the element to be
- removed was the last on the list it wasn't removed at all.
- Left some code to check invariants, have to find a way to keep
- that code around with some optional compilation flags.
-
- Thu Jul 26 16:50:54 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/Intrusive_List.h:
- * ace/Intrusive_List.inl:
- * ace/Intrusive_List.cpp:
- Add new template to implement intrusive lists, i.e. lists that
- assume their elements implement the next() and prev() methods.
-
- * ace/Intrusive_List_Node.h:
- * ace/Intrusive_List_Node.inl:
- * ace/Intrusive_List_Node.cpp:
- Helper class to add the requirements of ACE_Intrusive_List to
- any other class, simply do:
- class Foo : public ACE_Intrusive_List_Node<Foo>
-
-Wed Aug 1 15:57:35 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Message_Block.cpp (release, release_i):
-
- Obtain the pointer to the allocator from the object that will be
- destroyed before calling ACE_DES_FREE on the object. Previously
- we were obtaining the allocator after the object was destroyed,
- due to the way the ACE_DES_FREE macro works. Thanks to Hyman
- Rosen <hyrosen@mail.com> for reporting the problem, and to
- Carlos for suggesting a fix. [Bug 992]
-
-Wed Aug 1 15:00:21 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Log_Record.{h,i}: Changed msg_data_len() from a "setter"
- to a "getter" method, which makes more sense. Thanks to Patrick
- Rabau <Patrick.Rabau@htc.com> for reporting this.
-
-Wed Aug 1 12:43:57 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_l.cpp:
-
- Reintegreated Nanbor's change (Wed Jun 13 10:22:10 2001 Nanbor
- Wang <nanbor@cs.wustl.edu>) that enables proper handling of
- UNICODE Service Configurator directives.
-
-Wed Aug 1 07:14:42 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: Checked in a new
- version of this file, which includes support for the Hitachi
- chip. Thanks to Frank Wolf for this.
-
- * ace/Log_Record.cpp (format_msg): Added a cast to fix a warning.
- Thanks to Bala for reporting this.
-
-Tue Jul 31 22:53:26 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/libService_Config_DLL.icc:
-
- New Visual Age project file for the libService_Config_DLL
- library.
-
- * tests/Makefile.am:
-
- Added build targets/dependencies for the libService_Config_DLL
- library.
-
-Tue Jul 31 22:46:33 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_DLL.dsp:
- * tests/Service_Config_Test.dsp:
-
- Removed the static library configurations. The
- Service_Config_Test currently requires dynamically loadable
- objects. Fixes Win32 "LIB" build failures.
-
-Tue Jul 31 22:10:48 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_Test.cpp (run_test):
-
- Wrap strings passed to ACE_ARGV::add() within an ACE_TEXT
- macro. Fixes Unicode conversion problems.
-
-Tue Jul 31 16:53:57 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.h (ace_yyrestart, ace_yy_delete_parse_buffer,
- ace_yydirective):
-
- Remove these global function and variable declarations. They
- are no longer used.
-
-Tue Jul 31 16:43:33 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Basic_Types.h:
-
- If "__LITTLE_ENDIAN__" is defined then assume that the
- architecture is little endian. Some compilers/platforms define
- that macro. Suggested by Frank Wolf" <fwolf@gum.de>.
-
- * ace/Svc_Conf.h (yy_push_buffer):
- * ace/Svc_Conf.l (yy_push_buffer):
- * ace/Svc_Conf_l.cpp (ace_yy_push_buffer):
- * ace/Svc_Conf_Lexer_Guard.cpp (ACE_Svc_Conf_Lexer_Guard):
- * ace/Svc_Conf_Lexer_Guard.h (ACE_Svc_Conf_Lexer_Guard):
-
- The Service Configurator directive is an "ACE_TCHAR *" not a
- "char *". Updated these method/function parameters to accept
- the former. Fixes a compile-time problem on "wchar/Unicode"
- builds.
-
-Tue Jul 31 05:34:48 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/OS.h: Removed a spurious WNOHANG definition. Thanks to
- Christina Junru <junruli@lucent.com> for reporting this.
-
-Mon Jul 30 15:31:42 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Log_Msg.{h,i,cpp}: Fixed this class so that all of its fields
- are ACE_UINT32 or ACE_INT32 internally so that it'll always be
- the same on all platforms. Thanks to Fabris
- <fabris65@my-deja.com> for reporting this.
-
-Tue Jul 31 10:22:38 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Makefile:
-
- Only build the Service_Config_Test if shared libraries are
- enabled, since it attempts to dynamically load a shared
- library.
-
-Tue Jul 31 10:16:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Dump.h: Clarified the use of ACE_NDEBUG for turning this
- feature off, not on. Thanks to Don Hinton <dhinton@swan.fr>
- for noticing this.
-
-Mon Jul 30 13:41:00 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_Time_Value::FILETIME_to_timval_skew): Updated
- docuementation to better explain the meaning of this constant.
- Thanks to Mike Vitalo <mvitalo@sprynet.com> for motivating the
- change.
-
-Mon Jul 30 09:43:06 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.i (mutex_lock): Missing an argument to the ACE_OSCALL macro.
- Thanks to Bala for reporting this.
-
-Mon Jul 30 05:43:23 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Synch.h (ACE_Semaphore): Corrected the comment on
- how to get POSIX Pthreads "implementation" of semaphores (which
- supports the timed acquire() option). Thanks to Grzegorz
- Sikora <GSikora1@era.pl> for reporting this.
-
-Sun Jul 29 19:03:56 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/Thread_Mutex_Test.cpp (test): Fixed this test to be
- consistent wrt the errno for the timed acquire(), which should
- now always be set to ETIME rather than ETIMEDOUT and EBUSY.
-
- * ace/Message_Queue_T.cpp (wait_not_full_cond,
- wait_not_empty_cond): Fixed a nasty bug with the semaphore
- version of ACE_Message_Queue that would have reared it's ugly
- head if ACE_NULL_SYNCH were used when
- ACE_HAS_OPTIMIZED_MESSAGE_QUEUE was enabled. Fixing this bug
- also triggered the following changes.
-
- * ace/OS.{h,i}: Added support for ACE_OS::sema_wait(),
- ACE_OS::mutex_lock(), ACE_OS::thread_mutex_lock() that take
- ACE_Time_Value *.
-
- * ace/OS.i: For some odd reason the timeouts for the timed version
- of mutex_lock() were returning a random smattering of errnos.
- I've changed them to all be consistent with the
- ACE_Condition_Thread_Mutex::wait() errno, which is ETIME.
-
- * ace/Synch.h: Updated the documentation of all the timed
- acquire() methods to explain what the various return values
- mean.
-
-Sun Jul 29 22:10:40 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Service_Config_DLL.cpp:
- * tests/Service_Config_DLL.h:
- * tests/Service_Config_DLL.dsp:
- * tests/Service_Config_DLL_Export.h:
- * tests/Service_Config_Test.conf:
-
- New files associated with the existing Service_Config_Test.
- They are used when testing the reentrance/thread-safety of the
- Service Configurator, in addition to testing the Service
- Configurator's ability to handle nested processing of Service
- Configurator directives.
-
- * tests/Service_Config_Test.cpp (run_test):
-
- Add arguments to the Service Configurator argument vector to
- make it process the newly added `Service_Config_Test.conf'
- file.
-
- (main):
-
- Make the ACE_Thread_Manager wait for all running threads before
- exiting the test. Processing the `Service_Config_Test.conf'
- file causes some threads to be spawned.
-
-Sun Jul 29 19:19:20 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Service_Config.cpp (process_directive, process_directives):
-
- Wrap the ACE_GUARD_RETURN macro within an ACE_MT block. The
- ACE_Static_Object_Lock declaration is only visible if
- ACE_HAS_THREADS is defined. This truly fixes the
- single-threaded build problems.
-
-Sun Jul 29 19:06:11 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf.y (ace_obstack):
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf_l.cpp:
-
- UNICODE updates and fixes.
-
-Sun Jul 29 10:50:45 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Svc_Conf_Lexer_Guard.cpp:
-
- There is no longer any need to include "ace/Object_Manager.h"
-
- * ace/Service_Config.cpp:
-
- Include "ace/Object_Manager.h" to pull in the definition of
- ACE_Static_Object_Lock. Fixes a problem found in Sun builds and
- single-threaded builds.
-
-Sat Jul 28 23:03:24 2001 Ossama Othman <ossama@uci.edu>
-
- The following are changes that make the Service Configurator
- reentrant and thread-safe.
-
- * ace/Svc_Conf.y:
-
- Generate a pure (reentrant) parser using Bison. BYACC doesn't
- support generation of reentrant parsers.
-
- * ace/Svc_Conf.l:
-
- Implemented "buffer stack" support. This feature makes it
- possible to process Service Configurator directives within a
- Service Object's init() method, i.e. support nested directive
- processing.
-
- (ace_yyerrno):
-
- Moved declaration of ace_yyerrno from this file to
- `Svc_Conf.y'. ace_yyerrno was not used in the generated
- scanner. It was only used in the generated parser.
-
- (yy_delete_parse_buffer):
-
- There is no longer any need for this function. The lexer buffer
- stack implementation handles memory management of lexer buffers.
-
- (yywrap):
-
- Do not call yy_delete_parse_buffer(). It is no longer necessary
- to do so, in addition to the fact that that function was
- removed (as described above).
-
- (<<EOF>>):
-
- Do not call ACE_YY_NEW_FILE in this rule. The new buffer stack
- implementation handles the buffer switching that ACE_YY_NEW_FILE
- did, and more.
-
- * ace/Svc_Conf_Tokens.h:
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
-
- Regenerated these files using updated Bison/YACC and FLEX input
- files to pull in support for reentrant parsing and nested
- processing of Service Configurator directives.
-
- * ace/Svc_Conf.h (ace_yy_push_buffer, ace_yy_pop_buffer):
-
- Added function prototypes for the newly implemented lexer buffer
- stack manipulation functions.
-
- (ace_yylex):
-
- Added ACE_YYSTYPE parameter to this functions signature, as
- required by the new reentrant parser support.
-
- (ACE_SERVICE_DIRECTIVE_STACK_DEPTH):
-
- New symbolic constant that defines the maximum supported depth
- for nested Service Configurator processing. The current default
- is 8.
-
- (ACE_YY_INPUT):
-
- No longer any need to redefine this macro to support scanning of
- Service Configurator directive strings. The new lexer buffer
- stack implementation provides support for lexer buffer scanning
- from a string instead of a pointer to "FILE."
-
- (ace_yydirective):
-
- This global variable is no longer needed due to the fact that
- the new buffer stack implementation handles directives read from
- both a string and a file.
-
- * ace/Service_Config.cpp:
-
- (process_directive, process_directives):
-
- Obtain a recursive lock before manipulating the lexer buffer
- stack, and invoking the parser and scanner. This makes
- invocation of the scanner thread-safe.
-
- The new lexer buffer stack implemenation obviates the need to
- call yyrestart() since buffer switching is handled by the stack
- implementation.
-
- (open_i, close):
-
- No need to deallocate the lexer buffer since the buffer stack
- implementation handles that.
-
- * ace/Svc_Conf_Lexer_Guard.h:
- * ace/Svc_Conf_Lexer_Guard.cpp:
-
- New "guard" class that makes lexer buffer stack pushing and
- popping exception-safe.
-
- * ace/Makefile:
- * ace/Makefile.am:
- * ace/Makefile.bor:
- * ace/ace.icc:
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- Added Svc_Conf_Lexer_Guard.* sources to these Makefiles and
- project files.
-
-Sat Jul 28 14:58:30 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp: Reran BYACC and FLEX on the Svc_Conf.l and
- Svc_Conf.y files to regenerate them. Thanks to Bala for
- motivating this.
-
- * netsvcs/clients/Tokens/collection/Makefile,
- netsvcs/clients/Tokens/deadlock/Makefile,
- netsvcs/clients/Tokens/invariant/Makefile,
- netsvcs/clients/Tokens/mutex/Makefile,
- netsvcs/clients/Tokens/rw_lock/Makefile,
- examples/ASX/CCM_App/Makefile,
- examples/Logger/Acceptor-server/Makefile,
- examples/Reactor/Multicast/Makefile,
- examples/Reactor/Ntalker/Makefile,
- examples/Shared_Malloc/Makefile,
- performance-tests/TCP/Makefile,
- performance-tests/UDP/Makefile: Removed the line
- include $(ACE_ROOT)/include/makeinclude/rules.LIB.GNU
- so that these projects will build correctly on VxWorks with
- Make 3.79.1. Thanks to Frank Wolf for reporting this.
-
-Fri Jul 27 11:24:50 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Svc_Conf.y: Allow quoted strings as the pathname. Thanks
- to Kevin Burge <kcburge@systemware-inc.com> for suggesting this
- and providing the fix.
-
- * ace/Svc_Conf.l: Added support for "~" in pathnames to support
- Win32isms. Thanks to Kevin Burge <kcburge@systemware-inc.com>
- for suggesting this and providing the fix.
-
- * ace/Refcounted_Auto_Ptr.i (assign): Fixed the code to avoid a
- race condition. Thanks to Charlie Duke for this fix.
-
-Thu Jul 26 08:15:36 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: Changed
- $PATH to $(PATH). Thanks to Frank Wolf for reporting this.
-
-Wed Jul 25 17:46:58 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Asynch_Acceptor.{h,cpp}: Added an asynch_accept() accessor
- method. Thanks to Craig L. Ching <cching@mqsoftware.com> for
- reporting this.
-
-Wed Jul 25 17:36:09 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Refcounted_Auto_Ptr.i: Added a lock for the reference count
- to the assign() method. Thanks to Charlie Duke
- <cduke@cuseeme.com> for reporting this.
-
-Fri Jul 27 23:17:31 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace_wchar.h: If ACE_HAS_XPG4_MULTIBYTE_CHAR is set, then
- also set up definitions for functions that are not present
- (ACE_LACKS_ITOW, ACE_LACKS_WCSICMP, ACE_LACKS_WCSNICMP,
- ACE_LACKS_WCSDUP).
-
- * ace/ace_wchar.inl: If not ACE_WIN32, include <string.h> to see
- strlen().
-
- * ace/OS_String.inl (strstr): The XPG4 multibyte version of
- strstr() is wcswcs(), whereas the ANSI C / UNIX98 version is
- wcsstr(). So if ACE_HAS_XPG4_MULTIBYTE_CHAR is defined, use
- wcswcs.
-
-Fri Jul 27 21:52:48 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the IDL_Cubut test with GIOP Lite
- script, to our daily builds.
-
-Fri Jul 27 16:50:49 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Log_Msg_Test.cpp: Silence a compile warning in g++.
-
-Fri Jul 27 12:18:49 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): Fixed compile error - missing "" around
- 's' for the %S case.
-
-Fri Jul 27 11:07:26 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/OS.h:
-
- After conversation with Steve Huston, I am reverting his change
- pertaining to HPUX from "Tue Jul 10 18:15:39 2001 Steve Huston
- <shuston@riverace.com>".
-
-Fri Jul 27 10:57:24 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/SOCK_Dgram_Bcast.cpp:
-
- Fix the ACE_SOCK_Dgram_Bcast::mk_broadcast() which was completely
- broken on AIX. The broadcast_client in docs/tutorials/008 now
- works with the help of this change.
-
-Thu Jul 26 22:09:19 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): Extend behavior so that all printf
- formatting conversion specifiers can be used with all legal
- ACE_Log_Msg format characters. This allows the caller to line
- up columns on any field, like line number or program name, or
- thread ID. Thanks to Paul Caffrey <pcaffrey@iel.ie> for
- motivating this extension.
-
- * tests/Log_Msg_Test.cpp: Added a new function, test_format_specs,
- that verifies the formatting. Right now it does not detect the
- correctness of the strings produced - they have to be examined
- in the log file to check. This needs to be fixed still.
-
-Thu Jul 26 11:48:16 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * bin/count_lines:
- Add a few new file types.
-
-Wed Jul 25 23:49:43 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/platform_tru64_g++.GNU:
-
- Fixed some missing defines in the Makefile for DEC Unix versions
- 4.0D, 4.0E. We don't support or suggest this combination. Hence
- the oversight in missing the needed defines.
-
- Thanks to Martin Krumpolec <krumpo@pobox.sk> for reporting this.
-
-Wed Jul 25 23:49:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * include/makeinclude/wrapper_macros.GNU:
-
- Remove extraneous rapi = 0.
-
-Wed Jul 25 18:53:18 2001 Ossama Othman <ossama@uci.edu>
-
- * html/index.html:
-
- Added CORBA Security Service main page link to the list of
- documentation.
-
-Wed Jul 25 17:41:43 2001 Ossama Othman <ossama@uci.edu>
-
- * ltcf-c.sh:
- * ltcf-cxx.sh:
- * ltconfig:
-
- Removed these libtool related files. New versions of libtool
- (GNU libtool >= 1.4b) no longer use them.
-
- * config.guess:
- * config.sub:
- * ltmain.sh:
-
- Removed these files. We no longer need to keep custom copies
- lieing around since libtool 1.4b includes all of our local
- changes (i.e. our changes have been folded into the upstream
- libtool sources).
-
- * install-sh:
- * missing:
- * mkinstalldirs:
-
- Removed these files. Automake will automatically add these when
- necessary.
-
-Wed Jul 25 16:29:48 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Max_Default_Port_Test.cpp: ACE-ified the code and fixed
- a number of ACE_DEBUG %p directives without a corresponding
- string. Also, closed a 2 handle-per-try handle leak, which
- may have affected test results on some platforms.
- * tests/Max_Default_Port_Test.h: Added a destructor to the
- test class - it's used to close the acceptor handle down.
-
-Wed Jul 25 15:21:22 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/OS.h:
-
- Fixed the _XOPEN_SOURCE checking to _XOPEN_SOURCE < 500 to fix
- incorrect declaration of prototype. This fixes the warnings when
- compiling with gcc-3.0. Thanks to Ossama for suggesting the fix.
-
-Wed Jul 25 08:05:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Resume_Test.h:
- * tests/Thread_Pool_Reactor_Resume_Test.cpp: Fixed a subtle race
- condition. This hardly showed up in many of our daily
- builds. The race condition had to be fixed to show the users of
- the cautious approach that one needs to take if they are
- resuming the handle in the application itself.
-
-Tue Jul 24 16:41:57 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp :
- Added "&& ! defined (ACE_HAS_PACE)" ifdefs to already existing
- #if defined (VXWORKS) sections of code to get ACE_HAS_PACE to
- compile on VxWorks.
-
- * ace/OS.i :
- * ace/OS.cpp:
- Fixed formatting of some comments and added needed PACE
- calls for ACE_HAS_PACE on VxWorks.
-
- * ace/OS.h :
- Put #if !defined guards around the ACE_THR_PRI* macros
- so that we can define them in the config*.h files if
- they need to be corrected. For instance, ACE_THR_PRI_OTHER_MIN
- has a different value on SunOS 5.8 than it does on SunOS 5.7,
- i.e., -20 vs. 0 respectively.
-
- Also, added some needed typedefs and #define for ACE_HAS_PACE
- on VxWorks and updated some comments concerning ACE_OS::thr_create
- flags.
-
- * ace/Sched_Params.cpp (priority_min, priority_max):
- Changed to return correct thread priority min/max for
- Solaris threads. We now use the ACE_PRI_THR* macros
- for these values while still calling ACE_OS::priority_control
- for process and LWP priorities.
-
- * ace/config-sunos5.8.h:
- Added setting of ACE_THR_PRI_OTHER_MIN to be correct
- for SunOS 5.8.
-
-Tue Jul 24 13:47:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/SSL/SSL_Asynch_Stream.h (ACE_SSL_Asynch_Stream):
- * ace/SSL/SSL_Asynch_Stream.cpp: Added a open () method that
- matches the signature of ACE_Service_Handler. This should fix
- the warnings in Borland builds that complain about hiding
- the virtual functions.
-
-Tue Jul 24 10:56:04 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/generate_doxygen.pl (TAO_DOCS):
-
- Added "tao_security" and "tao_ssliop" Doxygen configurations to
- the list of documentation to generate.
-
-Tue Jul 24 07:45:03 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Containers_T: Fixed some problems with the lack of
- const for the ACE_DLList and ACE_Double_Linked_List classes.
- Thanks to Michael Kircher for reporting this.
-
- * ace/config-cygwin32-common.h: Removed the ACE_LACKS_FORK
- macro since this is apparently working on Cygwin. Thanks tj
- Stefan Kluehspies <Stefan.Kluehspies@gmx.net> for reporting
- this.
-
- * ace/config-cygwin32.h: Removed the #define _CLOCKID_T
- macro, which should now be handled by the following change.
-
- * ace/OS.h: Added a #defined for _CLOCKID_T_. Thanks to
- Stefan Kluehspies <Stefan.Kluehspies@gmx.net> for
- reporting this.
-
-Tue Jul 24 11:10:59 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/OS.h:
-
- Fix the compile errors seen on gcc-3.0 with -pedantic and
- -Wno-long-long. This should fix all the errors.
-
-Tue Jul 24 10:07:31 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_sunos5_g++.GNU:
-
- Add an optimize override to 0 for g++ 3.0. The compiler breaks on
- a tremendous amount of files, even with -O.
-
-Tue Jul 24 10:04:52 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/INET_Addr.cpp:
-
- Corrected a run-time error on Tru64 with gcc. Any executable
- that called ACE_INET_Addr::get_host_name() would core dump.
- This was caused by the call to ACE_OS::gethostbyaddr_r().
-
-Tue Jul 24 08:20:02 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_aix_ibm.GNU:
-
- Change -O2 to -O. The optimizer seems to be a tiny
- bit broken, which is demonstrated by a few TAO and orbsvcs
- tests.
-
-Mon Jul 23 17:38:46 2001 Ossama Othman <ossama@uci.edu>
-
- * etc/tao_security.doxygen:
- * etc/tao_ssliop.doxygen:
-
- New Doxygen files for TAO's CORBA security libraries.
-
-Mon Jul 23 13:48:26 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/MEM_Connector.cpp (connect):
-
- Disable non-blocking on the stream after its handle has been
- set. Previously, non-blocking was disabled on an uninitialized
- MEM_Stream, after which the handle was set (i.e. initializing
- the stream). In order to properly disable non-blocking on a
- stream, its handle must be set first since ioctl() operations
- are typically performed on the underlying stream handle.
-
-Mon Jul 23 13:06:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/WFMO_Reactor.cpp (event_handling): Corrected the loop check
- to account for a zero ACE_Time_Value *, avoiding a crash in
- tests/Reactor_Timer_Test, as well as any other program that
- called ACE_Reactor::handle_events with a zero timer pointer.
-
-Mon Jul 23 10:39:55 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Added /**/ between #include and <sys/times.h> to
- avoid warning from CE compiler.
-
- * ace/ace_dll.vcp: Added Obchunk.cpp to the project.
-
-Sun Jul 22 08:19:43 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-cygwin32.h: ADded a #define for_CLOCKID_T. Thanks to
- Christophe Galerne <christophgalerne@earthlink.net> for
- reporting this.
-
- * ace/Log_Record.cpp (priority_names_): Added commas after the
- 'ACE_LIB_TEXT ("LM_UNK(04000)")' lines. Thanks to Steve Harris
- <harris_s@ociweb.com> for reporting this.
-
-Sat Jul 21 19:56:08 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Map_T.{h,i}: Made current_value() a const member function.
- Thanks to Johnny Willemsen for reporting this.
-
-Fri Jul 20 10:16:46 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Connector.cpp (create_AST): Replaced some calls to
- sh->get_handle () with a cached value of handle. This fixes a
- bug with gcc 2.96 on Tornado 2.1/VxWorks for SuperH. Thanks to
- Frank Wolf <fwolf@gum.de> for reporting this.
-
- * examples/Connection/non_blocking/CPP-acceptor.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
- * examples/Connection/non_blocking/CPP-connector.cpp: Changed the
- SH macro to SVH to avoid clashes with a macro in VxWorks.
- Thanks to Frank Wolf <fwolf@gum.de> for reporting this.
-
-Thu Jul 19 06:55:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-g++-common.h: Version 2.96 of g++ on VxWorks
- is missing auto_ptr, so let's add the ACE_LACK_AUTO_PTR flag
- there. Thanks to Frank Wolf for suggesting this.
-
-Fri Jul 20 09:47:38 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Fixed WinCE errors. CE does not support
- UNIX_Syslog.
-
-Thu Jul 19 22:39:32 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MEM_Stream_Test.cpp:
- * ace/MEM_IO.h:
- * ace/MEM_IO.i:
- * ace/MEM_IO.cpp: On non-Win32 platforms, disable multithreaded
- MEM_IO if _ACE_USE_SV_SEM is defined.
-
-Thu Jul 19 15:25:11 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * ace/MEM_Acceptor.i (mmap_prefix):
-
- Fix case where a null pointer is passed in.
-
-Thu Jul 19 06:55:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Connector.cpp (connect_svc_handler): Missed one change...
- Thanks to Bala for reporting this!
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU (HOST_DIR): Added
- support for the SH7700 and SH7700LE. Thanks to Frank Wolf
- <WolfF@Becker.de> for reporting this.
-
- * ace/OS.i (truncate): Make sure to close the handle that we
- opens. Thanks to Lothar for reporting this.
-
- * ace/Connector.cpp: Changed the SH macro to SVH to avoid clashes
- with a macro in VxWorks. Thanks to Frank Wolf <fwolf@gum.de>
- for reporting this.
-
-Wed Jul 18 13:15:06 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS_Dirent.cpp (scandir_emulation): Removed the calls to the
- ACE_ERROR_RETURN macros to avoid dependencies on ACE_Log_Msg
- from within the ACE_OS layer. Thanks to Bala for pointing this
- out!
-
- * ace/ACE.{h,cpp}: Added a new wrapper method for ACE_OS::select()
- that uses ACE_Handle_Set *'s rather than fd_set *'s. This is
- motivated by work Steve Huston and I are doing on our new book
- "C++ Network Programming: Resolving Complexity with ACE and
- Patterns."
-
- * ace/Malloc_T.i (release): Removed an unnecessary "else" to
- make gcc 2.96 happy. Thanks to Frank Wolf <fwolf@gum.de> for
- reporting this.
-
- * Happy birthday to me and Angelo Corsaro!
-
-Tue Jul 17 00:34:40 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SString.h (ACE_Tokenizer): Make sure that the data members
- are protected, not private... Thanks to Martin Krumpolec for
- reporting this (again)!
-
-Wed Jul 18 16:40:56 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (program_name): Undid the following changes:
-
- ChangeLogTag:Tue Jul 10 11:32:26 2001 Tibor Kiss
-
- Tibor will be looking into this further since this change
- currently causes shutdown problems on Win2000.
-
-Wed Jul 18 15:59:03 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * ace/config-tru64.h:
-
- Removed _LIBC_POLLUTION_H. It seems that this macro is causing
- problems for some users. Thanks to Pierre Oberson
- <oberson@nagra-kudelski.ch> for prompting this fix.
-
-Tue Jul 17 13:00:11 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/run_test.lst: Enabled the MEM_Stream test on Linux.
-
-Mon Jul 16 14:59:32 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Memory_Pool.h (ACE_Shared_Memory_Pool): Added a comment
- that discourages developer from using the ACE_Shared_Memory_Pool
- and points them to the ACE_MMAP_Memory_Pool instead. Thanks to
- Johnny Chen <jchen@huawei.com> for motivating this.
-
- * ace/OS_Dirent.cpp (readdir_emulation): Fixed a handle leak
- in the event that errors occur. Thanks to Kevin Burge
- <kcburge@systemware-inc.com> for reporting this.
-
- * ace/Log_Msg_UNIX_Syslog.cpp (open): Add an ACE_const_cast()
- to the program name for platforms like LynxOS whose openlog()
- method is char * rather than const char *. Thanks to Bala for
- reporting this.
-
-Sun Jul 15 11:06:33 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Log_Msg_NT_Event_Log.cpp: Fixed the implementation so that
- it's consistent with the new program_name() features. Thanks to
- Chris Kohloff <chris@kohlhoff.com> for this fix.
-
-Sun Jul 15 11:04:26 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * ace/SSL/ACE_SSL.dsp:
- Removed references to $OPENSSL_ROOT, the user should configure
- those in the Tools -> Option -> Directories tab.
-
-Fri Jul 13 23:02:46 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_Stream.h:
- * ace/SSL/SSL_Asynch_Stream.cpp:
- * ace/SSL/SSL_Asynch_BIO.h:
- * ace/SSL/SSL_Asynch_BIO.cpp:
-
- Only support asynchronous SSL streams when using OpenSSL >
- 0.9.5a. The BIO method signatures changed in OpenSSL 0.9.6.
-
-Fri Jul 13 22:48:56 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_BIO.cpp (methods_ACE):
-
- Removed excess element in aggregate initializer.
-
-Fri Jul 13 22:29:01 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_Stream.cpp (print_error):
-
- The OpenSSL ERR_error_string_n() function is only supported in
- OpenSSL 0.9.6 or better.
-
-Fri Jul 13 14:59:18 2001 Alexander Libman <alexander.libman@baltimore.com>
-
- * ace/WIN32_Asynch_IO.h (ACE_WIN32_Asynch_Result):
- * ace/WIN32_Asynch_IO.cpp (set_error, set_bytes_transferred):
-
- Added new methods set_error() and set_bytes_transferred().
- Needed for below changes and new asynchronous SSL stream
- implementation.
-
- * ace/WIN32_Proactor.cpp (handle_events):
-
- Fixed error handling semantics so that it is consistent with the
- POSIX Proactor error handling semantics.
-
- (post_completion):
-
- Pass the amount of bytes transferred and the completion key to
- the Win32 PostQueuedCompletionStatus() function. The error, if
- any, will later be extracted in the handle_events() method.
-
-Fri Jul 13 15:59:45 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * netsvcs/servers/main.cpp (main): The server was always outputing
- LM_DEBUG information, even when the program was not run with the
- -d command line argument. Therefore, changed the following
- lines from:
-
- if (ACE::debug () == 0)
- ACE_Log_Msg::disable_debug_messages ();
-
- to:
-
- if (ACE::debug () == 0)
- ACE_LOG_MSG->priority_mask (~LM_DEBUG, ACE_Log_Msg::PROCESS);
-
- Thanks to Jerry D. De Master <jdemaster@rite-solutions.com> for
- reporting this fix.
-
-Fri Jul 13 12:16:03 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/SSL/SSL_Asynch_BIO.h:
- * ace/SSL/SSL_Asynch_BIO.cpp:
- * ace/SSL/SSL_Asynch_Stream.h:
- * ace/SSL/SSL_Asynch_Stream.cpp:
-
- New asynchrounous SSL stream implementation contributed by
- Alexander Libman <alexander.libman@baltimore.com>.
-
- * ace/SSL/ACE_SSL.dsp:
- * ace/SSL/Makefile:
- * ace/SSL/Makefile.bor:
-
- Added new asynchronous SSL stream source files to these
- Makefiles and project files.
-
-Fri Jul 13 09:40:08 2001 Jerry D. De Master <jdemaster@rite-solutions.com>
-
- * ace/Log_Msg.*,
- ace/Logging_Strategy.*,
- ace/Log_Msg_UNIX_Syslog.*:
- Applied patches to ACE_Log_Msg, ACE_Logging_Strategy, and
- ACE_Log_Msg_UNIX_Syslog that are required to add the program
- name logging strategy option ('n') and to initialize the UNIX
- syslog facility with the program name. Also included are Boris
- Kolpackov <bosk@ipmce.ru> patches for ACE_LACKS_IOSTREAM_TOTALLY
- to ACE_Logging_Strategy.
-
-Thu Jul 12 19:54:27 2001 Ossama Othman <ossama@uci.edu>
-
- * examples/Registry/test_registry_update.cpp (main):
-
- Fixed unused argument warning.
-
-Thu Jul 12 19:57:12 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * bin/auto_run_tests.lst:
-
- Added TAO/tests/RTCORBA/ORB_init to the auto run list.
-
-Thu Jul 12 17:11:35 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * bin/nightlybuilds/builds.lst (WEB):
-
- Temporarily removed the IA-64 build till some issues get sorted
- out.
-
-Thu Jul 12 06:01:03 2001 John Michael Zorko <j.zorko@att.net>
-
- * netsvcs/lib/Server_Logging_Handler.cpp:
- Added an an additional #define in config-macosx.h called
- ACE_HAS_MACOSX_DYLIB, and checked to see if this was _not_
- defined before instantiating the offending template in
- Server_Logging_Handler.cpp. OS X has this thing about .dylibs
- (OS X version of .so) where they can't have any duplicate
- symbols, which is why libnetsvcs wasn't building on OS X
- earlier. This fixes that.
-
- * include/makeincludes/platform-macosx.GNU: Added -lACE to the
- LIBS line, which fixed the majority of the build problems.
-
- * ace/config-macosx.h: Added the ACE_HAS_MACOSX_DYLIB #define
- mentioned above.
-
-Thu Jul 12 06:01:03 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/TLI_Connector.cpp (complete): Changed ACE_OS::t_rcvconnect()
- to simply t_rcvconnect(). Thansk to Andreas Geisler for
- reporting this.
-
-Thu Jul 12 09:43:36 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/FILE_Connector.h (ACE_FILE_Connector, connect):
-
- Removed the default O_EXCL flag I added a few days ago. It is
- mostly useful for preventing symbolic link attacks in a
- directory with global write permissions. Pass the
- responsibility of using the O_EXCL flag when necessary on to the
- application developer.
-
-Wed Jul 11 22:31:50 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU (clean.local):
-
- Added ti_files to remove the template cache generated by KCC.
-
- * ace/TLI_Acceptor.cpp(open_new_endpoint):
-
- Fixed a small typo causing compilation errors under Tru64.
-
-Wed Jul 11 13:06:33 2001 Steve Huston <shuston@riverace.com>
-
- * tests/Log_Msg_Test.cpp: Changed the ostream test to close the
- under-test ostream file before trying to open it and read the
- contents. Avoids the "already open" error now that
- ACE_FILE_Connector includes O_EXCL by default, and avoids any
- potential file buffering issues reading an already-open file.
-
-Wed Jul 11 08:31:02 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/Dirent_Test.cpp:
-
- Wrapped a string literal with ACE_TEXT, to get rid of a Win2000
- WChar build error.
-
-Wed Jul 11 06:41:43 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/TLI_Stream.cpp,
- * ace/TLI_Connector.cpp,
- * ace/TLI_Acceptor.cpp: Added enhancements so that the code would
- work on Win32. Thanks to Andreas Geisler
- <Andreas.Geisler@erl9.siemens.de> for reporting this.
-
-Tue Jul 10 19:26:15 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/ace_dll.dsp:
-
- Disabled generation of source browse information. It was
- causing problems on some existing builds that didn't use it.
-
- * ace/SSL/SSL_SOCK_Acceptor.cpp (ssl_accept):
-
- Removed certificate verification code. It is up to the
- application, not the ACE_SSL library, to perform proper
- certificate verification.
-
-Tue Jul 10 23:02:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tests/Log_Msg_Test.cpp:
- Fix test so it doesn't open output file to write to twice.
- Thanks to Ossama for finding it.
-
-Tue Jul 10 19:10:19 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace.icc: Corrected the mis-applied patch for ace.icc in
- Mon Jul 09 19:12:42 2001 Steve Huston <shuston@riverace.com>
-
-Tue Jul 10 16:01:52 2001 Ossama Othman <ossama@uci.edu>
-
- * THANKS:
-
- Added Sangeetha Ramadurai <Sangeetha.Ramadurai@geind.ge.com> to
- the hall of fame.
-
-Tue Jul 10 18:15:39 2001 Steve Huston <shuston@riverace.com>
-
- * ace/WFMO_Reactor.cpp (event_handling): Move the logic for
- noticing that the wait timed out, but did not expire any
- timers, into this function. Will remove it from Reactor.cpp,
- to properly move the fix into handle_events() rather than
- needing to call run_reactor_event_loop to get it right.
- * ace/Select_Reactor_T.cpp - still need to add similar logic here.
-
- * ace/config-sunos5.6.h: Re the following:
- Mon Jul 2 15:26:32 2001 Nanbor Wang <nanbor@cs.wustl.edu>
- Replaced ACE_HAS_POSIX_SEM, and left ACE_LACKS_NAMED_POSIX_SEM out.
- Solaris does indeed have POSIX semaphores in 2.6 and later, but
- requires the changes to OS.i below to work right.
-
- * ace/OS.h: For ACE_PROC_PRI_OTHER_MIN (and MAX), on HP-UX,
- convert the HP-UX priority value to the POSIX range.
-
- * ace/OS.i (ACE_OS::sema_init, named POSIX semaphore): On Solaris
- and HP-UX, the name of a POSIX semaphore needs to start with
- a slash (further restricted on Solaris). Enforce that here by
- prepending a slash, or by chopping off parts of the name.
-
-Tue Jul 10 16:08:04 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU:
-
- Fixed the default flags so that it enables the user to override
- settings. Now that the long pending fix to wrapper_macros.GNU is
- through, this should work fine now.
-
-Tue Jul 10 13:37:31 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/OS_Dirent.cpp (readdir_emulation):
-
- Removed the hard cast to char* of one of the two arguments in
- a call to strcpy. In the WChar win32 build, this cast was
- causing the source and target strings to be of different widths.
-
-Tue Jul 10 11:32:26 2001 Tibor Kiss <tkiss@mindmaker.hu>
-
- * ace/Log_Msg.cpp:
- Completed the ACE_Log_Msg::close method with the
- ACE_Thread::keyfree (log_msg_tss_key_) and key_created_ = 0; to
- ensure restartability by multiple successive ACE::init and
- ACE::fini calls. This fix prevent leaks from occurring when
- ACE::init() and ACE::fini() are called multiple times.
-
-Tue Jul 10 11:12:00 2001 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/OS_Dirent.{h, inl}: refactored XDIR, dirent usage for pSOS -
- user is no longer responsible for buffer deallocation after each
- readdir call, only for passing the pointer returned from opendir
- into closedir when all done. ACE_DIR structure is now used
- consistently for all pSOS dirent calls.
-
-Tue Jul 10 06:06:07 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Service_Repository.h: Updated the insert() comment to
- clarify the return values. Thanks to Johnny Willemsen for
- suggesting this.
-
- * ace/Service_Repository.{h,i}: Made the current_size() and
- total_size() methods const. Thanks to Johnny Willemsen for
- suggesting this.
-
- * ace/Service_Repository.h: Fixed a typo in the comments. Thanks
- to Johnny Willemsen for reporting this.
-
-Tue Jul 10 08:39:04 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/config-vxworks5.x.h:
-
- Added the macro ACE_LACKS_UNIX_SYSLOG.
-
-Tue Jul 10 08:26:57 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Log_Msg_UNIX_Syslog.cpp:
-
- Added a macro, ACE_LACKS_SETLOGMASK, for platforms that have
- syslog, but don't have setlogmask().
-
- * ace/config-chorus.h:
-
- ChorusOS 4.0.1 happens to be one of them.
-
-Tue Jul 10 09:00:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/OS_Dirent.h
- Made the member 'd_name' of the 'dirent' struct non-const, because
- BCB had problems with it
-
-Mon Jul 09 22:41:43 2001 Ossama Othman <ossama@uci.edu>
-
- * include/makeinclude/wrapper_macros.GNU (exceptions):
-
- Include platform_macros.GNU before the default for "exceptions"
- is set. This fixes a problem where the default native
- exceptions setting in platform_linux.GNU was not set due to the
- fact that it was previously set in wrapper_macros.GNU. Thanks
- to Hans Utz <hans.utz@informatik.uni-ulm.de> for tracking down
- the problem.
-
-Mon Jul 9 16:40:02 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/Dirent_Selector.cpp (ACE_Dirent_Selector):
-
- Correct order of initialization of members to match order of
- declaration. Fixes a warning issued from GCC.
-
- * ace/Dirent_Selector.inl:
-
- Added missing RCS ID keyword. Fuzz was whining about the lack
- of it.
-
- * ace/Dirent_Selector.h:
-
- Corrected some Doxygen comments.
-
-Mon Jul 09 19:12:42 2001 Steve Huston <shuston@riverace.com>
-
- * ace/ace.icc: Added Log_Msg_UNIX_Syslog and Log_Msg_NT_Event_Log
- modules to the LOGGING component. Added Dirent_Selector to the
- UTILS component.
-
-Mon Jul 9 15:59:56 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/config-lynxos.h:
- Added ACE_LACKS_MKSTEMP since LynxOS doesn't seem to have
- this.
-
-Mon Jul 9 15:28:29 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Dirent_Selector.cpp:
- * ace/Dirent_Selector.h:
-
- Added ACE_INLINE guards around inclusion of Dirent_Selector.inl.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
-
- Added Dirent_Selector.{h,i,cpp} to these projects.
-
-Mon Jul 9 06:52:09 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Makefile.bor (OBJFILES): Added the Dirent_Selector.obj file.
-
- * tests/Dirent_Test.cpp: Integrated a new test for the
- ACE_Dirent_Selector class.
-
- * ace/Makefile (UTILS_FILES),
- * ace/Dirent_Selector.h,
- * ace/Dirent_Selector.inl,
- * ace/Dirent_Selector.cpp: Added support for a C++ wrapper facade that
- encapsulates ACE_OS_Dirent::scandir(). Thanks to Rich Newman for
- contributing this, as well.
-
- * ace/OS_Dirent.h,
- * ace/OS_Dirent.inl,
- * ace/OS_Dirent.cpp: Added support for the scandir() feature, which
- makes it possible to selectively pick which files in a directory
- to iterate over. Also fixed a bug in the emulation of dirent.
- Thanks to Rich Newman <RNewman@directv.com> for contributing
- these fixes.
-
-Mon Jul 09 14:39:50 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (thr_getprio and thr_setprio): Changed these two
- function such that if we are on Solaris and we have pthreads
- enabled, we should use the pthread calls rather than the native
- Solaris calls. The reasons for choosing the pthread calls is
- due to following problems with the native calls:
-
- - thr_getprio() is evil because on Solaris 5.8, a thread with
- priority -20 (SCHED_OTHER) is reported to have priority 80.
-
- - thr_setprio() is evil because it cannot set the negative
- priorities on Solaris 5.8.
-
- - Also, thr_setprio() cannot change the priority of a thread
- with negative priority to a positive priority on Solaris 5.8
- (even though there is no error reported and thr_getprio() shows
- that the change happened but pthread_getschedparam() shows that
- no change happened).
-
- - In addition, suppose a thread of policy SCHED_RR or SCHED_FIFO
- uses thr_setprio() to reset its priority, the priority will be
- reset but the scheduling policy will be dropped to SCHED_OTHER.
- This happens with both Solaris 5.7 and Solaris 5.8.
-
-Mon Jul 9 13:33:43 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
- Change PACE path to start at $PACE_ROOT rather than $ACE_ROOT/PACE
- since the latter is not as flexible. Defined PACE_ROOT if not
- already defined. Also, added inclusion of PACE library for VxWorks
- even when inlining since not all the PACE functions should be
- inlined.
-
-Mon Jul 09 10:59:22 2001 Ossama Othman <ossama@uci.edu>
-
- * THANKS:
-
- Added Mouna Seri <seri@crhc.uiuc.edu> to the hall of fame.
-
-Mon Jul 9 11:10:44 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/config-win32-msvc-5.h:
- * ace/config-win32-msvc-6.h:
-
- Added conditional definitions for ACE_LD_DECORATOR_STR
- "mfc" and "mfcd" so that the MFC release and debug versions
- of libraries can be dynamically loaded in the same way that
- the non-MFC release and debug versions are. Thanks to
- Francois Bernier <fbernier@gel.ulaval.ca> for suggesting
- this enhancement.
-
-Mon Jul 09 11:31:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * ace/pre.h
- * include/makeinclude/compiler.bor
-
- Removed the disabling of the compiler warning 'parameter never
- used'. Unused parameters are handled by ACE_UNUSED_ARG macro.
- A missing ACE_UNUSED_ARG is now shown as warning in the BCB build
- log.
-
-Sun Jul 08 11:26:23 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h (mkstemp):
- * ace/OS.i (mkstemp):
-
- New mkstemp() wrapper. It is assumed to be available on the
- given platform, unless ACE_LACKS_MKSTEMP is defined.
-
- * ace/FILE_Connector.h:
-
- Added O_EXCL to the default flags. This is a security hole
- fix.
-
- * ace/FILE_Connector.cpp (connect):
-
- If mkstemp() is available, then use it to create a temporary
- file rather than mktemp() (via ACE_FILE_Addr) since mktemp() is
- susceptible to a denial-of-service attack.
-
- * ace/config-win32-common.h:
- * ace/config-vxworks5.x.h:
-
- mkstemp() is not supported on MS Windows and VxWorks. Define
- ACE_LACKS_MKSTEMP in these headers.
-
-Sun Jul 8 08:13:12 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Select_Reactor_Base.h: Added a comment explaining what
- the ACE_HAS_REACTOR_NOTIFICATION_QUEUE macro means. Thanks to
- Kobi Cohen-Arazi <kobic@bvr.co.il> for motivating this.
-
-Sat Jul 7 18:53:49 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU:
-
- Revert the changes made to this file. Please see the file for a
- lengthy description.
-
-Fri Jul 06 21:53:26 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/config-win32-borland.h:
- Reverted addition of ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION.
-
-Fri Jul 6 19:55:23 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * examples/Reactor/Multicast: Adding the support for UNIX Syslog
- broke this example because LOG_DEBUG was suddenly defined as a
- macro (it's in syslog.h). I've fixed this by renaming the LOG_
- enums to LM_ instead. Thanks to Bala for reporting this.
-
-Fri Jul 06 20:23:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/Refcoutned_Auto_Ptr.i (null): Change const_cast<> to
- ACE_const_cast() to build on older compilers, like IBM C/C++ 3.6.6.
-
-Fri Jul 06 20:13:29 2001 Steve Huston <shuston@riverace.com>
-
- * netsvcs/lib/Name_Handler.cpp:
- * netsvcs/lib/Server_Logging_Handler_T.cpp:
- * netsvcs/lib/Token_Handler.cpp:
-
- More ACE_DEBUG disables.
-
-Fri Jul 6 15:55:54 2001 Ossama Othman <ossama@uci.edu>
-
- * ace/OS.h (ACE_FD_SETSIZE):
-
- Integrated patch from Jody Hagins <jody@atdesk.com>. Set the
- default reactor file descriptor set size to be an integer
- constant rather than a preprocessor constant. Some third party
- software #undef FD_SETSIZE in their header files, causing build
- problems in ACE.
-
-Fri Jul 06 18:20:39 2001 Steve Huston <shuston@riverace.com>
-
- * netsvcs/lib/Client_Logging_Handler.cpp: #if 0'd out a bunch of
- ACE_DEBUG statements that aren't appropriate for use in commercial
- logging. These can be #if 1'd if there's some doubt while debugging
- this stuff, but they aren't useful once debugged, and are
- distracting since they're interespersed with application records.
-
-Fri Jul 6 13:40:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Log_Msg_UNIX_Syslog.cpp: Fixed a warning in g++.
-
-Fri Jul 06 11:39:41 2001 Steve Huston <shuston@riverace.com>
-
- * ace/INET_Addr.h: Clarified (and improved doxygenation) of
- constructor and set() methods regarding byte orders.
-
- * tests/Max_Default_Port_Test.icc: New file for this test.
- * tests/tests.icp: Added Max_Default_Port_Test
-
-Fri Jul 6 08:36:20 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * netsvcs/Makefile: Don't build this if ACE_COMPONENTS does not
- contain Other. The netsvcs library requires Naming_Context.
-
-Fri Jul 6 05:44:13 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Makefile (LOGGING_FILES): Added support for
- Log_Msg_UNIX_Syslog.
-
- * ace/Log_Msg_UNIX_Syslog.{h,cpp}:
- * ace/Log_Msg.cpp,
- * ace/OS.h: Added support for a new UNIX syslog backend for the
- ACE_Log_Msg class. Thanks to Jerry D. De Master
- <jdemaster@rite-solutions.com> and Robert Davidson
- <robert@rdavidson.freeserve.co.uk>.
-
- * ace/SOCK_Dgram.h: Fixed a typo in one of the send() method
- comments. Thanks to Alain Decamps <Alain.Decamps@PIDPA.be> for
- reporting this.
-
- * ace/config-macosx.h: Added a new file courtesy of John
- Zorko so that things will work on MacOSX.
-
-Thu Jul 5 23:22:21 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- Fixes that were required for fixing bug 575. Merged in from
- branch bug_575_stage_2.
-
-Thu Jul 5 23:09:29 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (ACE_InputCDR): Fixed a long standing bug in
- the branch. This caused the DSI_Gateway test to fail. The
- problem was from setting the write pointer to a wrong position
- during the construction.
-
-Thu Jul 5 14:39:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Merged with the main trunk and moved it to a new branch by name
- bug_575_stage_2.
-
-Thu Jun 28 15:25:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Reactor.h (ACE_Reactor):
- * ace/Reactor.cpp: Added a new method resumable_handler () to the
- reactor interface. This would indicate whether the application
- can take advantage by resuming the handlers themselves or
- not. Not all reactors can allow this feature.
-
- * ace/Reactor_Impl.h:
- * ace/Reactor_Impl.cpp: Added a pure virtual function so that all
- the implementations can decide whether the handlers are
- resumable or not.
-
- * ace/Select_Reactor_Base.h:
- * ace/Select_Reactor_Base.cpp:
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp:
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.cpp:Implemented resumable_handlers ().
-
-Sun Jun 24 11:25:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Created this file. Got the whole stuff in ace to a new branch by
- name bug_575_stage_1. This ChangeLog file will be in branch
- bug_575.
-
-Fri Jun 22 16:52:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp: Changed the copy constructor for the
- ACE_InputCDR's. Instead of duplicating the ACE_Data_Block we
- now use the new copy constructor in the ACE_Message_Block.
-
- * ace/Message_Block.h:
- * ace/Message_Block.cpp: Added a new copy constructor to the
- ACE_Message_Block. This copy constructor does a deep copy from
- the data block if the data block of the incoming message block
- is on the stack or does a shallow copy of the data block (by
- incrementing the ref count) if it is on the heap.
-
- END of entries from bug_575_stage_2.
-
-Thu Jul 5 22:07:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * bin/auto_run_tests.lst: Added the new perl script in LongUpcalls
- in the daily builds.
-
-Thu Jul 5 20:36:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * ace/config-win32-borland.h
- define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
- * tests/Token_Test.cpp
- Fix template instantiation problem.
-
-Wed Jul 4 15:35:47 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/run_tests.vxworks:
- Removed invocation of CDR_Array_Test. According to the ace
- config files the compiler we are using is pre 2.8 (i.e.,
- ACE_HAS_GNUG_PRE_2_8 is defined). Therefore don't run
- CDR_Array_Test since the Makefile doesn't build it (due to
- the ACE_HAS_GNUG_PRE_2_8 macro).
-
-Wed Jul 04 14:26:10 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.h (class ACE_Acquire_Method): Moved the enums from
- the Reverse Lock class into ACE_Acquire_Method, a non-template
- class. These enums should have been inside the reverse lock
- class, but some lame compilers cannot handle enums inside
- template classes.
-
-Wed Jul 04 12:43:22 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.i (ACE_Reverse_Lock): Fully specified the
- ACE_ACQUIRE_METHOD type.
-
-Tue Jul 3 15:43:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp: Fixed a warning in g++.
-
-Tue Jul 3 14:44:00 2001 Craig Rodrigues <crodrigues@bbn.com>
-
- * ace/config-win32-common.h: Borland C++ apparently
- does not support the "extern template class" Microsoft VC++
- proprietary extension. Thanks to Chris Kohloff <chris@kohlhoff.com>
- for the fix.
-
-Tue Jul 03 12:26:33 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.h (class ACE_Reverse_Lock): Added a parameter to the
- constructor of the reverse lock. The ACE_ACQUIRE_METHOD
- parameter is used to indicate which acquire() method will be
- called on the real lock when the release() method is called on
- the reverse lock. REGULAR indicated the acquire() method, READ
- indicates the acquire_read() method, and WRITE indicates the
- acquire_write() method. Note that the try_*() methods are not
- represented here because we have to make sure that the release()
- method on the reverse lock acquires a lock on the real lock.
-
- Thanks to Edan Ayal <edana@bandwiz.com> for suggesting this.
-
-Tue Jul 3 06:20:13 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Reactor.h,
- * ace/Reactor_Impl.h,
- * ace/Select_Reactor_Base.cpp,
- * ace/Select_Reactor_Base.i,
- * ace/Select_Reactor_Base.h,
- * ace/WFMO_Reactor.cpp,
- * ace/WFMO_Reactor.h: Added an enhancement that allows the
- Reactor to selectively purge event handlers from its
- notification queue according to their Reactor_Mask type. Thanks
- to Edan Ayal <edana@bandwiz.com> for contributing this.
-
- * tests/Reactor_Notify_Test.cpp (run_notify_purge_test):
- Added a new set of tests for the new selective notification
- purging features of the Reactor. Thanks to Edan Ayal
- <edana@bandwiz.com> for contributing this.
-
- * ace/WIN32_Asynch_IO.cpp: Removed the
- ACE_WIN32_Asynch_Result (handler, act, event, 0, 0, priority,
- signal_number), initializer since we no longer use virtual
- inheritance. Thanks to Alexander Libman
- <alexander.libman@baltimore.com> for reporting this.
-
- * ace/WIN32_Asynch_IO.h: Removed the virtual inheritance from
- ACE_WIN32_Asynch_Result for the ACE_Asynch_Read_Stream_Result
- and ACE_Asynch_Read_Dgram_Result classes. Thanks to Alexander
- Libman <alexander.libman@baltimore.com> for reporting this.
-
- * ace/Refcounted_Auto_Ptr.h: Made the destructor of
- ACE_Refcounted_Auto_Ptr virtual so that users can override it
- locally. Thanks to Jenny Kowald <jkowald@oz.agile.tv> for
- reporting this.
-
-Tue Jul 3 09:40:59 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_osf1_4.0.GNU:
- * include/makeinclude/platform_osf1_4.0_g++.GNU:
-
- Allow users to set options like debug, exceptions, ... without
- using override.
-
-Tue Jul 3 08:38:47 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_dup_proactor.dsp:
-
- Fixed a mistake in the link to the ACE library.
-
-Mon Jul 2 16:23:04 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_multiple_loops.dsp:
- * examples/Reactor/Proactor/test_proactor.dsp:
- * examples/Reactor/Proactor/test_proactor.dsw:
- * examples/Reactor/Proactor/test_timeout.dsp:
- * examples/Reactor/Proactor/test_udp_proactor.dsp:
-
- Fixed settings on release version of test_udp_proactor.dsp,
- added it to the workspace, and removed unused file folders
- from the FileViews of the other projects.
-
-Mon Jul 2 15:26:32 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-sunos5.6.h: Removed ACE_HAS_POSIX_SEM and
- ACE_LACKS_NAMED_POSIX_SEM. Thanks to Glenn Popelka
- <gpp@gpopelka.com> for helping track this down.
-
-Mon Jul 02 11:45:57 2001 Ossama Othman <ossama@uci.edu>
-
- * bin/make_release:
-
- Disabled bootstrapping of ACE's autoconf support. It isn't
- ready for general use. Doing so reduces the amount of
- confusion. Thanks to Holger P. Krekel <krekel@merlinux.de> for
- motivating this change.
-
-Mon Jul 2 13:18:14 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * Moved ACE-configurations.txt into the docs directory. Also
- removed the hopelessly out of date BIBLIOGRAPHY file.
-
- * Moved all the ChangeLog-* files into the new ChangeLogs
- directory. Thanks to Holger P. Krekel <krekel@merlinux.de> for
- this suggestion.
-
-Mon Jul 02 11:20:52 2001 Ossama Othman <ossama@uci.edu>
-
- * config.guess:
- * config.sub:
-
- Updated to the latest versions from the GNU FTP site.
-
-Mon Jul 02 11:30:20 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.i: Since the release() method on the reverse lock
- calls the simple acquire() method on the real lock, it is
- assumed that it is a simple acquire/release protocol with the
- real lock. Therefore, I think all the other methods on the
- reverse lock tryacquire(), acquire_read(), acquire_write(),
- tryacquire_read(), tryacquire_write(), and
- tryacquire_write_upgrade() should not be allowed. This falls in
- line with the original concept of using reverse locks with
- regular guards.
-
- Thanks to Edan Ayal <edana@bandwiz.com> for pointing this out.
-
-Mon Jul 2 11:17:37 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * ace/Profile_Timer.cpp:
-
- Cleaned up the conditional macros. Added method bodies for
- ACE_Profile_Timer::get_rusage() and
- ACE_Profile_Timer::elapsed_rusage() when neither ACE_HAS_PRUSAGE_T
- nor ACE_HAS_GETRUSAGE is defined.
-
- * Reverted the reverted changes in this entry.
- "Fri Jun 29 22:31:56 2001 Balachandran Natarajan
- <bala@cs.wustl.edu>". These changes are ok, I just
- needed to fix the bug in Profile_Timer.cpp.
-
-Mon Jul 2 09:40:45 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * include/makeinclude/platform_aix_ibm.GNU:
-
- Add the output filter to the linker to avoid the duplicate symbol
- warnings on AIX.
-
-Mon Jul 2 05:40:54 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * ace/Logging_Strategy.cpp: Enhanced the code so that it works with
- ACE_LACKS_IOSTREAM_TOTALLY. Thanks to Nir Drang <nir@bandwiz.com>
- and Edan Ayal <edana@bandwiz.com> for reporting this.
-
- * ace/SPIPE_Addr.cpp (set): Added a "+ 1" to the computation of
- the size of the SPIPE_Addr to account for the trailing NUL.
- Thanks to Oren Zeev-Ben-Mordehai <oren@phonedo.com> for
- reporting this.
-
- * ace/Refcounted_Auto_Ptr.{h,i}: Added support for a "null()"
- method to check if a refcounted auto ptr is NULL. Thanks to
- Jenny Kowald <jkowald@oz.agile.tv> for reporting this.
-
- * ace/config-macosx.h,
- * ace/platform_macosx.GNU: Enhanced these files to support MacOSX.
- Thanks to John Zorko <j.zorko@att.net> for contributing this.
-
- * ace/Synch.h: Fixed the Doxygen documentation for all the
- removed_ fields, which where somehow messed up. Thanks to
- Johnny Willemsen for reporting this.
-
-Sun Jul 1 11:49:13 2001 Alexander Libman <alexander.libman@baltimore.com>
-
- * ace: Enhanced the POSIX and Sun Proactor implementations as
- follows:
-
- . POSIX_SIG_Proactor is now based on POSIX_AIOCB_Proactor
-
- . All classes ACE_POSIX_SIG_Asynch_XXXX are removed.
- POSIX_SIG_Proactor uses the ACE_POSIX_AIOCB_Asynch_XXXX
- classes now.
-
- . ACE_POSIX_AIOCB_Proactor::register_and_start_aio (...)
- now calls a new virtual method: int
- ACE_POSIX_AIOCB_Proactor::allocate_aio_slot
- (ACE_POSIX_Asynch_Result *result).
-
- . The strategy of free slot allocation in SIG_Proactor is
- a bit different from AIOCB and SUN Proactors. The
- allocate_aio_slot() method is responsible for setting
- notification information for aio request
- (SIGEV_NONE/SIGEV_SIGNAL). For SIG_Proactor, the field
- aio_sigevent.sigev_value.sival_int now contains index of aiocb
- in the aiocb_list_, not a pointer.
-
- . The ACE_POSIX_AIOCB_Proactor::find_completed_aio (int &error_status,
- int &return_status, size_t
- &index, size_t &count)
- parameter index defines initial slot to scan and the new
- parameter count tells us maximum number slots to scan. On
- return: index contains value to start scan next time, count
- contains remained number of slots. Scanning is performed in
- "wheel" style to allow all requests be handled with equal
- priorities.
-
- . ACE_POSIX_AIOCB_Proactor::check_max_aio_num () checks for
- max_number_files to open and tries to setup max_number_files
- equal to aiocb_max_size_. if we failed than cut off
- aiocb_max_size_ value to existing max_number_files.
-
- . POSIX_Proactor added member int os_id_ and constructor sets up
- os_id_ (compilation time + run_time function) to know
- OS(Sun/HP/Linux/...) and version. We need such info for
- POSIX_SIG_Proactors to take into account the behavior of
- different OS.
-
- . Delivery of simulated/"post_completed" Asynch_Results
- (Timers, AsynchAccept,Wakeup ...). As both Proactors have no
- reliable mechanizm for delivery "post_completed" results, so
- the reliable queue of "post_completed" results was
- implemented. The new member of AIOCB Proactor
- ACE_Unbounded_Queue<ACE_POSIX_Asynch_Result *> result_queue_
- has been added. Also added protected methods to the
- ACE_POSIX_AIOCB_Proactor.
-
- . We had an error in all previous versions (from major ACE 5.1):
- post_completion (int how_many) does not guarantee that all
- completions will be delivered to the different threads running
- event_loop (sometimes several completions could be delivered
- to the one thread, in another thread performs during long time
- application_spesific_code ()). Moreover, you can run now
- Proactor event_loop in any number of threads (more than
- SIGQUEMAX).
-
-Sun Jul 1 11:49:13 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * examples/Reactor/Proactor: Integrated a test that exercises the
- support for asynchronous UDP operations. Thanks to Roger Tragin
- <r.tragin@computer.org> for contributing this.
-
- * ace/Synch_T.i: Changed the implementations of all the
- acquire*() method to call release(). Thanks to Edan Ayal
- <edana@bandwiz.com> for reporting this.
-
-Sat Jun 30 12:44:11 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * examples/Connection/blocking/SPIPE-acceptor.cpp: Added better
- support for shutting down the server when a signal occurs.
- Thanks to Rich Newman <RNewman@directv.com> for this
- enhancement.
diff --git a/ChangeLogs/ChangeLog-93 b/ChangeLogs/ChangeLog-93
deleted file mode 100644
index 0beb8e6321f..00000000000
--- a/ChangeLogs/ChangeLog-93
+++ /dev/null
@@ -1,52 +0,0 @@
-Wed Dec 15 16:47:19 1993 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
-
- * Added a new parameter to the constructor and open() member
- functions in the SOCK_Listener and LSOCK_Listener classes. This
- parameter indicates that the SO_REUSEADDR option needs to be
- applied before attempting to bind an address.
-
-Sun Nov 21 14:46:18 1993 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
-
- * Added a new file called "testconfig.h" in the include directory.
- This file gives defaults for the hostname and server port
- numbers used in the ./tests directory.
-
-Wed Nov 3 18:41:14 1993 Douglas C. Schmidt (schmidt@cupid.ics.uci.edu)
-
- * Released version 2.12.
-
- * Included Olaf Kruger's fix for templates/shared libs on Sun OS
- 4. This solves a bunch of weird problems. Now, most of the
- tests compile and run correctly on Sun OS 4!
-
-Mon Nov 1 17:47:30 1993 Douglas C. Schmidt (schmidt@cupid.ics.uci.edu)
-
- * Split the release into two parts: (1) the documentation and
- papers and (2) the library source code and test examples.
-
- * Renamed and lightly redesigned the IPC_SAP* hierarchy. Now the
- overall C++ wrapper abstraction for local and remote IPC is
- called IPC_SAP. The specific wrappers for sockets, TLI, named
- pipes, and STREAM pipes are called SOCK_SAP, TLI_SAP, FIFO_SAP,
- and SPIPE_SAP, respectively. This cleans up the interfaces,
- shares more code, and is much easier to explain.
-
- In addition, the Server_Daemon framework has been renamed the
- Service Configurator framework, and the Server_Daemon class has
- been renamed Service_Config. The documentation is being updated
- to reflect these changes, as well.
-
- Note, the easiest way to upgrade existing apps is simply to use
- perl as follows:
-
- % perl -p -i -e 's/Local_IPC/LSOCK/g;' *.[Chi] % perl -p -i -e
- 's/IPC_SAP_FIFO/FIFO/g;' *.[Chi] % perl -p -i -e
- 's/IPC_SAP_SPIPE/SPIPE/g;' *.[Chi] % perl -p -i -e
- 's/IPC_SAP/SOCK_SAP/g;' *.[Chi] % perl -p -i -e 's/SAP_//g;'
- *.[Chi] % perl -p -i -e 's/Server_Daemon/Service_Config/g;'
- *.[Chi]
-
- etc. Note that the order in which you do this is important! In
- addition, you need to check out your Makefiles, to be sure that
- -lIPC_SAP linker lines are changed to include the appropriate
- components.
diff --git a/ChangeLogs/ChangeLog-94 b/ChangeLogs/ChangeLog-94
deleted file mode 100644
index 09465ce823f..00000000000
--- a/ChangeLogs/ChangeLog-94
+++ /dev/null
@@ -1,1027 +0,0 @@
-Fri Dec 23 01:50:50 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/ASX: Changed the behavior of Map_Manager::Map_Manager()
- to allocate a default-sized buffer.
-
- * libsrc/Reactor/Reactor.C (dispatch): Made the poll-based Reactor
- smarter about detecting POLLERR error conditions. When POLLERR
- is detected, the Reactor now shutdown down that fd...
-
-Wed Dec 21 18:29:15 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/IPC_SAP/SPIPE_SAP: Changed the name of class SPIPE_Msg to
- SPIPE_IO to reflect the fact that I/O over named pipes need not
- be message-oriented...
-
- * Changed all occurrences of {SOCK,TLI,SPIPE}_Listener to
- {SOCK,TLI,SPIPE}_Acceptor. This is a more accurate name for the
- function these classes perform. In addition, it is easier to
- explain in the context of the Acceptor and Connector patterns.
- Note that the *.h files are also changed, as well.
-
- * Changed the implementation of {SOCK,TLI,SPIPE}_SAP so that there
- is now a *_Connector class to go along with the *_Acceptor
- class. The *_Connector is a factory that produces *_Stream
- objects *actively*, in a similar way to how the *_Acceptor is a
- factory that produces *_Stream objects *passively*. This makes
- everything much more orthogonal, though it will break existing
- code... The easiest way to fix existing code is to do the
- following:
-
- 1. Find places in the code that define objects of
- type SOCK_Stream, LSOCK_Stream, TLI_Stream,
- or SPIPE_Msg (now called SPIPE_IO).
-
- 2. Replace #include "SOCK_Stream.h" with
- #include "SOCK_Connector.h" (or whatever
- C++ wrapper you have).
-
- 3. Replace definitions of the form:
-
- INET_Addr addr (port, host);
- SOCK_Stream foo (addr);
-
- with
-
- INET_Addr addr (port, host);
- SOCK_Stream foo;
- SOCK_Connector con (foo, addr);
-
- If you don't want to have an extra variable named "con",
- you can replace this with:
-
- INET_Addr addr (port, host);
- SOCK_Stream foo;
- SOCK_Connector (foo, addr); // Calls the constructor.
-
-Tue Dec 20 21:34:10 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Renamed the ./{libsrc,tests}/{Semaphores,Message_Queues}
- directories to SV_Semaphores and SV_Message_Queues to better
- reflect their true behavior and in order to prevent clashes with
- the new ASX names.
-
- * libsrc/ASX: Renamed Queue to Task to better reflect its true
- functionality. In addition, renamed Message_List to
- Message_Queue.
-
-Mon Dec 19 23:04:52 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Changed "private" to "protected" in ASX/Message_List.h at the
- request of Troy Warner (tnw1@core01.osi.com).
-
-Mon Dec 12 23:47:01 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/IPC_SAP/SOCK_SAP: changed the name of the global utility
- function "bind_port()" to ace_bind_port() to avoid polluting the
- global symbol namespace.
-
- * Fixed a descriptor leak in SOCK_Dgram::shared_open() and
- SOCK_CODgram::shared_open(). The original version didn't
- automatically close down the socket descriptor if bind failed.
- The new version does close the descriptor down.
-
-Sat Dec 10 00:53:20 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Reactor/Reactor.C (mask_ops): Fixed a stupid bug... The
- test should have been
-
- if (this->invalid_handle (handle) ||
- this->poll_handles_[handle].fd == -1)
-
- rather than:
-
- if (this->invalid_handle (handle) ||
- this->poll_handles_[handle].fd != -1)
-
- * libsrc/Reactor/Reactor: Modified the semantics of
- Reactor::remove_handler() such that calling it with a value of
- Event_Handler::DONT_CALL or'd into the Reactor_Mask instructs
- the Reactor to remove the handler *without* calling the object's
- handle_close() method!
-
-Fri Dec 9 12:53:31 1994 Douglas C. Schmidt (schmidt@tango)
-
- * include/Synch: some C++ compilers (e.g., Centerline) barf when
- the see the following in an inline function:
-
- if (foo == bar)
- {
- errno = result;
- return -1;
- }
- result result;
-
- I fixed this by doing the following:
-
- if (foo == bar)
- {
- errno = result;
- result = -1;
- }
- result result;
-
-Wed Dec 7 22:23:47 1994 Douglas C. Schmidt (schmidt@tango)
-
- * include/Synch.h: Added additional methods in the Null_Mutex
- class in order to be consistent with the RW_Mutex interfaces...
-
- * libsrc/ASX/Message_List: Added new a set of methods called
- "try_enqueue_head" and "try_enqueue_tail" that will only insert
- a message into the queue if it is not already full. If it is
- full, return EWOULDBLOCK.
-
-Tue Dec 6 13:58:28 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Reactor/Event_Handler: added default values of -1 to the
- handle_input(), handle_output(), and handle_exception() methods.
-
-Mon Dec 5 23:30:28 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/ASX/Message_List: Added a new method called set_length to
- Message_Block. This method sets the length of the "active"
- portion of the message. This is defined as the offset from
- RD_PTR to WR_PTR.
-
-Sat Dec 3 20:40:53 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Threads/Synch: Added two new class called Write_Guard and
- Read_Guard, which provide functionality a la the Guard class,
- only that they acquire and release readers/writer locks.
-
- * libsrc/Threads/Synch: For interface uniformity with other
- synchronization wrappers I added an acquire() method. This is
- implemented as a write-lock to be on the safe-side...
-
-Fri Dec 2 13:33:39 1994 Douglas C. Schmidt (schmidt@tango)
-
- * include/Synch.i (Mutex::tryacquire): Modified the behavior of
- Mutex::tryacquire so that it will return -1 and set errno to the
- appropriate return value of tryacquire(3T) if various types of
- "problems" occur (such as the Mutex already being held).
-
- * include/Message_List.i: Rearranged the order of the
- Message_Block::get_rd_ptr and Message_Block::set_wr_ptr methods
- to deal with inlining problems that some cfront-based C++
- compilers have...
-
- * libsrc/Reactor/Signal.[hi]: Changed set_handler/get_handler to
- "handler" to avoid a collision with Rogue Wave libraries. This
- new version is more consistent with other usage in ACE anyhow...
-
- * Modified the behavior of Service_Config::Service_Config() so
- that it makes the initialize size of the Reactor be the same
- size as the Service_Repository. This was done at the suggestion
- of Bob Sayle and Steve Warwick at ARINC Research.
-
-Sun Nov 20 00:59:06 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/ASX/Message_List: Added two new methods
- (is_full() and is_empty()) to the public interface
- of Message_List. These methods check whether the queue is full
- or empty *while holding the lock*.
-
- * libsrc/ASX/Queue.h: Made the svc() method a pure virtual
- function. This is much cleaner than not doing it, particularly
- when we've already got to define open(), close(), and put()...
-
- * Added a new method to the IPC_SAP/Addr inheritance hierarchy.
- The method is called addr_to_string() and it converts the
- address of a subclass (e.g., either UNIX domain or Internet
- domain) into a string. This functionality is particularly
- useful in parameterized types (such as Acceptor), which should
- be oblivious of the type of communication domain they are
- using...
-
- * Reorganized the ./apps/Logger/Service_Configurator_Logger
- directory in order to reuse more code. Now, all the Acceptor
- pattern classes have been moved to a new subdirectory called
- ./libsrc/Acceptor. In addition, this code has been generalized
- to work with the ASX framework!
-
-Sat Nov 19 15:19:19 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Released version 2.15.5 (added a couple of minor fixes and some
- additional software to the release. In particular, I've added
- the RPC++ C++ wrappers for Sun RPC. See the README file for
- more info on this.
-
- * apps/Synch-Benchmarks: Reorganized all the synchronization tests
- so that they would be easier to understand and extend.
-
- * include/sysincludes.h (ACE_NONBLOCK): Fixed a stupid typo in the
- ./include/makeinclude/wrapper_macros.GNU file that accidentally
- used ACE_NONBLOCKING instead of ACE_NONBLOCK... Jaysus
-
- * Fixed up the Service_Config.[Chi] source so that it no longer
- allocates statically linked services via static variables.
- Stacy Mahlon (mcs@contour.mayo.edu) recommended this change to
- workaround bugs in compilers that fail to initialize static
- objects appropriately.
-
-Tue Nov 15 11:55:03 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Fixed a portability problem in the ./libsrc/Service_Configurator
- that was caused by certain compilers failing to initialize
- global variables correctly. In particular, the Obstack object
- ace_obstack is now a pointer that is allocated dynamically by
- Service_Config.process_directive(). Thanks to Stacy Mahlon
- (mcs@contour.mayo.edu) for noticing this!
-
-Mon Nov 14 12:16:14 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Threads/Thread.h: added C++ wrappers for
- thr_getconcurrency() and thr_setconcurrency().
-
- * Fixed a dumb typo in ./tests/IPC_SAP/SOCK_SAP/CPP-nbclient.C
- that failed to conditionally compile for different variants of
- siginfo...
-
- * Added some test programs that benchmark the performance of
- Solaris synchronization mechanisms. See ./apps/Synch-Benchmarks
- for details...
-
- * Extended the methods of the Queue class to take advantage of the
- new Message_List methods that perform timed waits! This
- involves changing many of the existing methods in this class to
- add an extra parameter of type timestruc_t *, which defaults to
- 0.
-
- * Added some new comments in the
- ./include/makeinclude/wrapper_macros.GNU file that indicate what
- the various macros defined by the Makefile scheme actually mean.
- This should help people who are porting to a new system...
-
- * Fixed a dumb bug in ./tests/Shared_Memory that directly included
- system header files. Everything in ACE should include
- "sysincludes.h" instead... Thanks to Stacy Mahlon
- (mcs@contour.mayo.edu) for noticing this!
-
- * include/Memory_Pool.i (round_up): Fixed a typo where PAGESIZE
- should have been ACE_PAGE_SIZE.
-
-Sat Nov 12 01:32:52 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Generalized the Shared_Memory_Pool class for Malloc so that it
- doesn't require the base addresses for multiple processes to all
- start at the same location.
-
- * libsrc/Service_Configurator/Thread_Spawn.i (Thread_Spawn):
-
- Fixed a stupid bug in the constructor. Note that we should
- be checking if this->tm_ == 0, rather than != 0...
-
-Fri Nov 11 00:11:41 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Released version 2.15.4 (added a couple of minor fixes).
-
- * Added a new test program in the ./tests/ASX/Message_List
- directory. This program illustrates how thread-safe
- Message_Lists work using ASX.
-
- * libsrc/Threads/Thr_Manager.i: Added a new method called
- insert_thr() to Thr_Manager that is used in conjunction with
- Thr_Cntl::Thr_Cntl to make sure that a thread is added to the
- Thr_Manager's table correctly.
-
-Thu Nov 10 20:14:11 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Log_Msg/Log_Record.C (print): Fixed the following very
- subtle (and very stupid) bug:
-
- return ::fprintf (fp, this->msg_data_);
-
- if this->msg_data_ contains '%', then this call will
- fail since fprintf tries to treat the percent sign as
- a format code. The obvious fix is:
-
- return ::fprintf (fp, "%s", this->msg_data_);
-
- * libsrc/ASX/Message_List.i (is_empty): Fixed a braino that failed
- to check if there was a 0-sized buffer in the list. It is now
- possible to enqueue a 0-sized buffer, which is helpful for
- things like signaling end of transmission by a producer.
-
- * libsrc/ASX/Message_List.C: Improved the robustness of the
- Message_List abstraction by detecting the case where the newly
- inserted Message_Block is a NULL pointer. Before, this would
- crash the program, where now it returns -1 from the
- enqueue_head() or enqueue_tail() methods.
-
- * libsrc/Threads/Synch.h: added timedwait_signal() and timedwait()
- methods to class Condition. These are wrappers around the
- cond_t cond_timedwait() function.
-
- * Improved the documentation of the class interfaces in the
- Synch.h C++ wrapper for Solaris 2.x threads mechanisms.
-
- * Changed the name of class Condition methods wait_signal() and
- timedwait_signal() to wait_alert() and timedwait_alert() to
- remove confusion with UNIX signals and the regular condition
- variable signal.
-
-Wed Nov 9 23:49:24 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/IPC_SAP/Addr/UNIX_Addr.i (UNIX_Addr): Fixed another
- couple brainos in UNIX_Addr.i (thanks for Irfan
- (ip1@cs.wustl.edu) for noticing this).
-
- * libsrc/IPC_SAP/SOCK_SAP/SOCK.i (get_local_addr): Fixed a braino
- that didn't reset the Addr size after a call to getsockname().
-
-Tue Nov 8 00:25:02 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Service_Configurator/Svc_Conf.y (create_service_type):
- Fixed a bug on lines 323 and 324, and 330 and 331. The "#if
- defined" needs to be INSIDE the "case" statements. Thanks to
- mcs@contour.mayo.edu for finding this!
-
- * Improved the interfaces for all the synchronization wrappers so
- that they can be given all the parameters for the underlying
- SunOS 5.x *_init calls. Default values are given to keep the
- normal usage concise...
-
-Mon Nov 7 21:41:13 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Changed all occurrences of Mutex_Rec to Recursive_Lock. This is
- much more descriptive since by using templates, the recursive
- logic applies to a number of synchronization mechanisms (e.g.,
- Semaphores, RW_Mutex, Mutex, Null_Mutex, etc.) rather than just
- the Mutex class.
-
- * Changed all occurrences of Mutex_Block to Guard. This is more
- standard terminology and reflects Booch's terms more closely, as
- well.
-
-Sun Nov 6 14:31:44 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Majorly improved the modularity and structure of the Reactor
- class. Much duplicate code has been coalesced and several new
- features have been added.
-
- * Changed the name of the Reactor method set_ready() to
- ready_ops(). Added a new method called mask_ops(). These
- methods make it possible to manipulate the "dispatch masks" and
- the "ready masks" (e.g., READ_MASK, WRITE_MASK, etc.) at a much
- finer level of granularity without loss of efficiency or
- correctness.
-
-Sat Nov 5 16:48:55 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Changed the name of three methods in the Semaphore class to
- mirror the terms used for Mutex and RW_Mutex. This will help
- support the use of semaphores along with templates (e.g.,
- Rec_Lock) much better... The old names were "wait", "trywait",
- and "signal". The new names are "acquire", "tryacquire", and
- "release."
-
- * Added a new class called Signal_Block in Signal.[hiC] This class
- operates similar to Mutex_Block, in that it holds a set of
- signals over the duration of a C++ statement block. The
- constructor masks out the signals and the destructor restores
- the signals.
-
- * Changed the name of files Signal_Handler.[hiC] to Signal.[hiC]
- to reflect a broadening of the functionality of the ACE wrappers
- for Signals. For example, the new C++ classes wrap the sigset_t
- API, as well as the struct sigaction structure.
-
-Fri Nov 4 00:41:48 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Yow, got the new Shared_Malloc/Malloc class to work correctly on
- SunOS 4.x, as well as SunOS 5.x. It's a bit more clunky on
- SunOS 4.x since we have to use System V semaphores rather than
- Solaris synchronization mechanisms. However, it now seems to
- function correctly!
-
- * Added a new method called "tryacquire" to Semaphore_Complex and
- Semaphore_Simple. This method provides the same "non-blocking"
- semantics as it does in the Mutex, Semaphore, and RW_Mutex
- classes.
-
- * Added a new method called "remove()" to all the C++ wrappers in
- the Synch.[hi] file. This improves the symmetry with the System
- V semaphore wrappers, and also gets around a nasty bug with
- cfront 3.x and its handling of templates and explicitly called
- destructors...
-
- * Added a new C++ wrapper class for Threads (Thread.h). The
- eventual purpose of this class is to hide the differences
- between POSIX pthreads and Solaris threads.
-
- * Added new parameters to Thr_Manager::spawn to enable the stack
- and stack_size to be passed in.
-
- * Modified the Synch.h file so that the Null_Mutex and Mutex_Block
- classes will both be compiled, even if we are building ACE on a
- platform that doesn't support threads!
-
- * Added a timed event-loop method to the public interface of the
- Service_Config class. This basically forwards the request to
- the underlying Reactor->handle_events method. Thanks to Brad
- Needham (bneedham@arinc.com) of ARINC research for the
- suggestion!
-
-Wed Nov 2 14:47:25 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Changed the interface for one of the Reactor's
- {register,remove}_handler methods. These methods
- had previously taken a sigset_t &, but for some reason the Sun
- C++ 3.0 compiler can't seem to recognize that this is different
- from an int! Therefore, I changed the interface to take a
- sigset_t *.
-
- * Fixed some portability bugs that crept into the SunOS 4 version
- of ACE, particularly with the siginfo_t extended signal handler
- stuff.
-
-Tue Nov 1 21:46:07 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Log_Msg/Log_Msg.C (log): Fixed a braino on line 175.
- "int sig" was undefined outside the conditional (duhhh ;-)).
-
-Thu Oct 27 17:23:37 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Fixed up some problems with Semaphore_Complex and
- Semaphore_Simple. The new design should be more functional,
- particularly for Semaphore_Complex, which now generalizes to
- arrays of semaphores.
-
-Wed Oct 26 16:38:42 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Shared_Malloc/: Created a .i file for Malloc and
- Memory_Pool to handle inlines.
-
- * Fixed a fence-post error in Mem_Map::map_it(). The new version
- should correctly set the length of the file *and* also do the
- appropriate memory mapping.
-
- * bin/clone.C: Fixed the clone program so that it now compiles
- with the C++ compiler rather than the C compiler.
-
-Tue Oct 11 20:01:16 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Reactor/Reactor.h (Reactor): Changed the order of the
- arguments to the Reactor's register_handler() method used to
- register signal handler objects. The new order puts both "new"
- components first, and any
- (optional) old components following this. This is
- a more natural set of default values...
-
- * libsrc/Shared_Malloc: split out the Local and Shared memory
- pools for class Malloc into the Memory_Pool.[hC] files.
-
-Mon Oct 10 22:54:53 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Threads/Synch.i: Reworked the Thread_Mutex and
- Process_Mutex classes to inherit their interface and
- implementation code from Mutex... Thanks to Irfan Payrali for
- the suggestion!
-
-Wed Sep 28 11:26:34 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Moved some of the tests directories around to better reflect
- precisely which ACE components are being tested. In particular,
- the {client,server} directories that were originally under the
- ./tests/Reactor subtree are now located in the
- ./tests/Service_Configurator subtree.
-
-Tue Sep 27 23:05:32 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Added a bunch of constructors/destructors for
- ./tests/Reactor/server to make g++ happy.
-
- * libsrc/Service_Configurator/Service_Object.[ih]
- (Service_Object): Added a constructor and destructor to
- Service_Object to make g++ happy. Also, removed the #if for
- broken versions of g++ 2.5.8.
-
- * include/Reactor: Added a constructor and destructor for
- Null_Callback to make G++ happy...
-
- * libsrc/Message_Queues/: Added support for G++ templates.
-
- * Changed the handling of _sys_siglist in the sysincludes.h file
- to try and handle the weird SunOS 4 header file problems...
-
- * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram_Brdcast.C (mk_broadcast):
- Removed the "struct" from new struct ifnode in order to
- compile...
-
-Tue Sep 20 11:17:23 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Fixed a couple of minor typos in the Windows NT C++ wrappers for
- sockets.
-
- * Released version 2.15.2 so that Mark Frutig could have access to
- the latest source in order to write man pages!
-
-Thu Sep 15 20:47:36 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Extended the Event_Handler interface to support the additional
- siginfo_t-style parameters for extended SVR4 signal handling.
- Note that for backwards compatibility, this new interface only
- enabled if the -DACE_HAS_SIGINFO flag is set in the
- wrapper_macros.GNU config file. Making this change affected
- several of the existing ACE classes such as Service_Config and
- Signal_Handler.
-
-Mon Sep 12 17:07:10 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Improved the modularity of the Reactor by creating a new class
- called Signal_Handler. This new class basically encapsulates
- the signal handling mechanism provided by UNIX within a nice OO
- abstraction. The new arrangement is particularly useful since
- the Signal_Handler class may be used in applications
- (e.g., the Malloc class abstraction) that do not require the
- other features of the Reactor.
-
-Sun Sep 11 14:40:06 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Changed the default value for Semaphore_Simple and
- Semaphore_Complex from OPEN to CREATE. This is more closely
- related to how SunOS thread synchronization variables work.
-
- * Changed the methods of the Semaphore_Simple class to be
- syntactically equivalent to the Process_Mutex and Thread_Mutex
- classes. This makes it easier to write code that uses
- parameterized types to instantiate the appropriate type of
- synchronization primitive.
-
- * include/makeinclude/rules.local.GNU (OBJDIRS): Fixed the
- "depend" target so that it generates the correct dependencies
- for remaking .so files after they are changed.
-
- * Added a new pair of methods to the Reactor so that it is now
- possible to register/remove a sigset_t of signals in one
- operation.
-
-Sat Sep 10 03:11:34 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Mem_Map/Mem_Map.i (map_it): Fixed a few minor bugs with
- how the Mem_Map::map() method handles lseek()'s.
-
- * Changed the name of the Mem_Map::open() methods to
- Mem_Map::map(). This seems like a more reasonable name! Also,
- removed the close() method. This is trivial to implement via
- ::close (mmap.get_fd ());
-
-Fri Sep 9 22:04:25 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Provided a new implementation of a flexible memory allocation
- scheme (Shared_Malloc/Malloc.[HiC]). This memory allocation can
- be parameterized by the following:
-
- 1. The pool from which memory is allocated (e.g.,
- local memory vs. shared memory).
-
- 2. The type of synchronization used when allocating
- the memory (e.g., no synchronization, thread-based
- synchronization, process-based synchronization).
-
- * libsrc/Threads/Synch.i (Proc_Mutex): Added new classes to the
- Synchronization library. These classes are wrappers around the
- USYNC_PROCESS and USYNC_THREAD flags to mutex_init().
-
-Wed Sep 7 20:29:00 1994 Douglas C. Schmidt (schmidt@tango)
-
- * include/sysincludes.h (MT): Added check to see if _REENTRANT was
- already defined, and if so, avoid redefining it!
-
-Sun Sep 4 16:23:17 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Released version 2.15.1 to the world...
-
- * Added support for the Windows NT version of SOCK_SAP.
-
- * Fixed a few minor bugs involved with the order of linking
- libraries.
-
- * Fixed an oversight in ./testsReactor/server/server_test.C where
- I was still including the "Server_Test.h" file (ugh).
-
-Wed Aug 31 13:27:10 1994 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/IPC_SAP/SOCK_SAP/SOCK_Stream.C (open): Fixed a bug
- whereby the I/O descriptor wasn't being closed if connect()
- failed. Thanks to Charles Eads
- (eads@synoptics.com) for reporting this.
-
-
- * Recompiled everything on SunOS 4.x using SunC++ 3.x and SunOS
- 5.x using SunC++ 3.x and 4.x. Everything seems to compile fine
- now.
-
- * Released version 2.15
-
-Mon Aug 29 00:14:04 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Finished up a preliminary set of tests for ASX. See the
- $WRAPPER_ROOT/tests/ASX/Event_Server directory for more details.
-
- * wrapper_macros.GNU (CC): Removed the ARCHFLAG from the CCFLAGS
- macro in the Makefile system. Henceforth, all conditional
- compilation should be performed on a "per-feature" basis, rather
- than a "per-platform" basis...
-
- * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram_Brdcast.C (send):
- Automatically convert the port number to htons format before
- using it to initialize the sin_port field of the addressing
- structure. This is consistent with the behavior of other parts
- of IPC_SAP (particularly INET_Addr::set()).
-
-Sun Aug 28 00:02:53 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Changed version number of 2.15 to reflect all the major
- modifications to the structure of ACE.
-
- * include/sysincludes.h: Started to fix up the conditional
- compilation scheme to be much smarter about the features that
- are available from both the compiler and the OS environment.
-
- * Added a fix suggested by Leslee Xu (lxu@ics.uci.edu) to better
- handle the normalization of Timer_Values.
-
- * Continued to make ACE coding conventions more consistent by
- removing get_/set_ prefix from all the accessor/manipulator
- methods. Also, added an underbar at the end of all class and
- object instance variables.
-
-Sat Aug 27 20:28:13 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Continued to improve error handling by replacing all uses of
- perror with the Log_Msg macros.
-
- * include/sysincludes.h: Continued to improve the namespace
- utilization in ACE by prefixing stand-along Misc functions with
- ace_.
-
- * include/FD_Set.h: Changed the name FD_Set_Iter to
- FD_Set_Iterator.
-
- * typedef'd int to HANDLE in Event_Handler.h in preparation for
- merging in the Windows NT support along with the regular ACE
- package. I need to update all the other code in the entire
- release to be consist with this!
-
-Thu Aug 25 19:49:57 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Fixed a bug with Thr_Manager.i that occurred if a thread created
- by ::thr_create() exits prior to the acquisition of the lock and
- the subsequent bookkeeping.
-
-Wed Aug 24 17:34:49 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Updated SOCK_Dgram_Brdcast to return the average number of bytes
- sent. This isn't necessarily the most useful info, but it
- doesn't hurt either. Thanks to Mark Frutig (mfrutig@fnbc.com)
- for the suggestion.
-
-Mon Aug 22 01:18:14 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Added a new test for the Service Configurator framework. This
- test illustrates the dynamic configuration of an entire stream
- of Modules.
-
-Sun Aug 21 03:16:00 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Cleaned up the ./tests/Reactor/server example to be more robust.
- In particular, it doesn't really make sense to have the same
- object be configured both statically and dynamically *at the
- same time*! This was causing problems since each constructor
- was getting called twice for the same object -- once when it was
- created statically, and again when it was linked in
- dynamically... Things work much better now.
-
-Sat Aug 20 01:07:24 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Heavily revised the structure of the ./apps/Logger
- subdirectories to test out the new Makefile scheme. Everything
- is working fine on Solaris!
-
- * Updated all the ./apps/Logger subdirectories to use the Acceptor
- name rather than the Client_Listener name. This is consistent
- with recent papers...
-
- * Fixed all the Makefiles to utilize the new simplified build
- strategy. The Makefiles are *far* more automated now!
-
- * Added support to all the libsrc Makefiles to produce both shared
- libraries (*.so) and traditional archives
- (*.a).
-
-Fri Aug 19 16:13:42 1994 Douglas C. Schmidt (schmidt@tango)
-
- * Majorly improved the Makefile support for building shared
- objects that will be dynamically linked explicitly. No longer
- will we have to do the horrible hack of compiling all the source
- code using -pic. Instead, only that code that will be linked
- dynamically must be compiled with -pic! Note that this only
- works if the shared object is entirely self contained (i.e., it
- does *not* reference any statically linked symbols that are not
- defined in itself)!
-
- * Started to add changes to the source code to make its
- configation driven by features rather than by OS. This should
- make everything much more portable soon!
-
- * Fixed IPC_SAP.h so that the constructor is protected (prevents
- accidental definition of an instance of this class).
-
-Thu Aug 11 08:31:33 1994 Douglas C. Schmidt (schmidt at valentine.ics.uci.edu)
-
- * Fixed Reactor::schedule_timer() so that it will unblock the
- Reactor if it is currently blocked. This is necessary so that
- the Reactor will recompute the amount of time that it needs to
- wait before dispatching timer-based events. Thanks to Todd Hoff
- for noticing this...
-
- * Fixed a stupid bug in the handle_input() method of
- Client_Listener in both the Reactor and Service_Configurator
- version of the Server Logging Daemon. This routine was not
- explicitly returning 0 when it worked..., which might cause the
- Reactor to deregister the listener handler!
-
- * Added casts to the ::select() call in the Reactor to ensure that
- the FD_Set * -> fd_set * conversion operators are properly
- involved. Thanks to Todd Hoff for this fix (thm@ictv.com).
- Todd noticed that the DCE pthreads implementation on AIX was
- confusing the compiler...
-
-Mon Aug 8 18:11:03 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Added a new constructor for the FD_Set class that will convert
- an fd_set into an FD_Set.
-
- * Removed the default value for the Service_Repository constructor
- since this was ambiguous with the default constructor.
-
-Tue Aug 2 18:25:28 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Fixed a bunch of minor "warning-causing" nits that were caused
- by #endif __INLINE__ in certain header files...
-
- * Added a new set of interfaces to the Reactor to retrieve a
- registered handler. These interfaces are also useful for
- checking whether a handler is registered at a particular fd.
-
-Sun Jul 10 17:43:19 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Improved the implementation of the Profile_Timer and
- High_Res_Timer classes. In particular, the High_Res_Timer class
- now works quite nicely using SunC++ 4.0.
-
-Mon Jul 4 12:49:14 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Changed the order of the base class inheritance list for the
- Service_Object class as a workaround for a bug in SunC++ 4.0's
- handling of pointers to member functions (ugh).
-
-Sun Jul 3 18:07:16 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Added a bunch of changes (courtesy of
- george@truffula.fp.trw.com). These changes fix minor
- portability problems with the new SunC++ 4.0 compiler.
-
-Fri Jun 24 08:59:02 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Removed operator() from all the IPC_SAP listener classes.
- Defining this operator was causing more trouble than it is worth
- since C++ doesn't allow operator() to have default arguments
- (ugh). The "right" thing to do is to simply use the accept()
- method in those classes instead of operator().
-
-Wed Jun 22 16:54:05 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Fixed some problems with TLI_Listener that involved lax scoping
- of nested classes with cfront 3.x-based C++ compilers.
-
-Tue Jun 14 11:56:56 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Added a bunch of changes to get portions of ACE up and running
- on SCO UNIX, on HP-UX, and on OSF/1.
-
-Tue Jun 7 14:32:50 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Added support for FLEX's <<EOF>> symbol to properly cleanup when
- a configuration file has been parsed by the Service
- Configurator's lexer/parser.
-
-Sun May 22 10:37:14 1994 Douglas C. Schmidt (schmidt at valentine.ics.uci.edu)
-
- * Modified the semantics of explicit dynamic linking on SunOS 4.x.
- Now, if there is no _init or _fini function defined in a shared
- library, it isn't an error (we simply don't call the function!).
-
-Mon May 9 07:58:35 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Included more fixes for GNU G++ courtesy of Aniruddha Gokhale
- <gokhale@cs.wustl.edu>.
-
-Thu May 5 16:47:25 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Reimplemented the ./apps/Logger/Reactor_Logger to provide an
- illustration of how the Reactor works.
-
- * Added finishing touches to the new version of the Service
- Configurator framework. This framework now permits completely
- automated configuration and reconfiguration of Service_Objects
- and Streams. The next step is to add some more complete
- examples that illustrate how these features are used...
-
-Tue May 3 10:17:12 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Fixed a bug in the Service Repository that would cause an
- extraneous dlclose on a shared library handle under some
- circumstances...
-
-Mon May 2 11:07:52 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Modified the semantics of Service_Object_Type in the Service
- Configurator framework so that it does not automagically
- register the service object with the instance of the Reactor.
- The original behavior involved too much "over-specification" of
- the behavior of Service Objects. Moreover, I can finally omit
- the crazy semantics of DONT_REGISTER_SVC and REGISTER_SVC!
-
- * Fixed some subtle bugs involved with pop'ing a remove'ing a
- Module from a Stream. Note that we need to use Module::link
- rather than Module::set_next in order to ensure that all the
- necessary pointers get rearranged....
-
- * Fixed a couple of minor problems with deleting const objects in
- the Service_Repository.i file. These were caught by G++, but
- not caught by SunC++!
-
-Sun May 1 11:43:52 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Fixed subtle bug in Server_Config::run_event_loop(). This bug
- prevented reconfiguration from occurring under certain
- circumstances.
-
- * Added a new feature to the Service_Manager class in the Service
- Configurator framework. This new feature enables the Service
- Configurator to be reconfigured remotely by clients.
-
- * Fixed a bug in Service_Manager that caused the Service
- Configurator to crash if SIGPIPE occurred if a client closed
- down ungracefully while retrieving information on active
- services.
-
- * Added a new argument to the Reactor::register_handler() method
- that is used to register signal handling Event_Handlers. This
- new argument returns the current Event_Handler (if any) that is
- registered for this signal.
-
- * Fixed a potential bug in Service_Config::process_directives that
- behaved improperly when there was no svc.conf file present in a
- directory.
-
-Wed Apr 27 12:55:46 1994 Douglas C. Schmidt (schmidt at mabillon.ics.uci.edu)
-
- * Changed the name of Service_Directory to Service_Manager to
- reflect its intended functionality
-
-Mon Apr 25 10:53:01 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Updated the Service Configurator framework to use the new signal
- handling facilities provided by the Reactor. This cleans up a
- lot of the code in Service_Config.i and removes the need for
- ugly non-reentrant static class variables.
-
- * Released version 2.14
-
-Sat Apr 23 14:29:11 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Changed the representation of the select()-based Reactor to be
- more similar with the poll()-based Reactor. In particular,
- there is only one array of Event_Handlers rather than three...
-
-Sun Mar 13 16:49:59 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Fixed a bug with the select-based version of the Reactor. This
- bug caused problems when dispatching the handle_output() member
- function.
-
- * Fixed a bug with the select-based version of the Reactor. This
- bug resulted in a failure to call the handle_close() member
- function on the write_fds and except_fds.
-
- * Changed the interface for Event_Handler::handle_close() so that
- the second parameter is a Reactor_Mask. This allows the
- call-back routine to determine which side of a connection (i.e.,
- read-side vs. write-side or both) to close down. Be careful
- since this change may break existing code that used the original
- 1 argument handle_close() member function.
-
- * Changed the location of the Reactor_Mask. It was originally an
- enum in Reactor.h. It is now a typedef in Event_Handler. This
- change will break existing code but it easily spotted since the
- compiler will give an error!
-
-Sat Mar 12 15:16:59 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Continued to modify the grammar of the svc.conf file language.
- The latest version (illustrated in configuration files in the
- ./tests/Reactor/server and
- ./apps/Logger/Service_Configurator_Logger file) is both easier
- to read and to parse automatically.
-
-Tue Mar 8 10:19:40 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Changed the behavior of the Get_Opt class so that it will
- perform option processing starting from argv[0] rather than
- argv[1] if the SKIP argument to the constructor is set to 0.
- Note that the default value is 1, so the behavior is the same
- for backwards compatibility. Incidentally, this new change is
- necessary to support the Service Configurator stuff...
-
- * Changed the names of some of the Service_Record member functions
- to conform to the new idiom for naming get/set-style of member
- function accessors...
-
-Sun Mar 6 12:47:03 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Removed libGet_Opt.a and merged it in with libMisc.a
-
-Sat Mar 5 18:37:43 1994 Douglas C. Schmidt (schmidt at tango.ics.uci.edu)
-
- * Updated the Service_Config class to use a flex/yacc based parser
- rather than an ad hoc parser and lexer. This is useful since
- the new syntax for configuring a complete Stream into a Service
- Configurator-based application is more complicated...
-
- * Made a small change to the syntax of a svc.conf file. Now any
- parameters that are passed to the Service_Object::init() member
- function of a dynamically linked service must be enclosed inside
- of double quotes. In other words, service config entries such
- as
-
- dynamic ./dev_adapter.so:_alloc () Device_Adapter -p 3000
-
- now become
-
- dynamic ./dev_adapter.so:_alloc () Device_Adapter "-p 3000"
-
- This change makes it easier to parse the input using flex/yacc.
-
-Sat Feb 12 18:53:14 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
-
- * Modified the Reactor so that it now also demultiplexes signals,
- as well as timer events and I/O events. This required making a
- few sections of the Reactor code signal-safe, as well as
- thread-safe.
-
- * Changing the Reactor to handle signals also required a slight
- change to its interface. For example, it is now mandatory to
- give the Event_Handler::{READ_MASK,WRITE_MASK,EXCEPT_MASK} when
- registering a handler...
-
-Sat Feb 5 12:10:53 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
-
- * Changed the Condition and Monitor classes to use templates that
- parameterize them with the appropriate type of Mutex (i.e.,
- either Mutex or Mutex_Rec). This greatly cleans up the code...
- Made a number of changes in other files
- (such as the Reactor) to account for the changes.
-
- * Added a new class called Mutex_Rec which implements a recursive
- Mutex abstraction on SunOS 5.x. Recursive Mutexes may be
- acquired multiple times from a single thread. Basically, this
- supports an efficient and clean way of handling nested locking
- conditions.
-
-Thu Feb 3 12:37:34 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
-
- * Fixed a bug in Service_Config.i that was causing SIGHUP-driven
- reconfiguration not to work correctly.
-
- * Added a set of new member functions to the Reactor class to
- suspend() and resume() an event handler. Also added suspend()
- and resume() member functions to the Server_Object class to take
- advantage of these new facilities automagically...
-
-Mon Jan 31 09:47:06 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
-
- * Modified the no-args constructor for the Reactor to initialize
- it to the DEFAULT_SIZE. The prior behavior was *not* to
- initialize it at all, which seems rather dumb in retrospect...
-
- * Improved the Reactor's support for multi-threading by adding a
- pipe() call that is used to force the Reactor to reconfigure
- itself everytime a new handler is registered or removed.
- Previously, any new changes wouldn't take place until the
- Reactor was triggered by some external event. This old behavior
- was too non-deterministic...
-
-Sun Jan 2 12:35:39 1994 Douglas C. Schmidt (schmidt@net4.ics.uci.edu)
-
- * Modified the inheritance hierarchy for Service_Object so that it
- derives from both Shared_Object and Event_Handler.
- Shared_Object is a new abstract base class the provides an
- interface for dynamic linking of objects. When RTTI is widely
- available for C++ the Service Configurator will be much more
- functional since we can automatically figure out whether an
- object is a Service_Object or just a Shared_Object and do the
- right thing with it!
-
diff --git a/ChangeLogs/ChangeLog-95 b/ChangeLogs/ChangeLog-95
deleted file mode 100644
index 429e5681fdc..00000000000
--- a/ChangeLogs/ChangeLog-95
+++ /dev/null
@@ -1,4179 +0,0 @@
-Sun Dec 31 01:02:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS (mmap): Added a new parameter to the argument list for
- mmap(). This parameter is an ACE_HANDLE * and is used in the
- Win32 implementation, which requires CreateFileMapping to open a
- new HANDLE. This handle is passed back to the caller, which is
- then responsible for freeing it... I'll probably need to modify
- the ACE_Mem_Map class to manage this new handle for the WIN32
- version.
-
- * ace: Updated all the SPIPE files in preparation to porting them
- to Windows NT, where they will be implemented using Win32 Named
- Pipes!
-
- * ace/Typed_SV_Message: Fixed a mysterious braino where the method
- definitions for Typed_SV_Message were actually within
- Typed_SV_Message_Queue.cpp. I'm not sure why this happened, but
- it's clearly been this way for eons... Also, changed the name
- of the method "max" to "max_size" to avoid conflicts with macros
- on Windows NT...
-
- * ace: Added a new config symbol: ACE_HAS_SYSV_IPC. If this is
- *not* set (e.g., Win32) then don't try to compile any of the
- System V IPC mechanisms (e.g., shared memory, message queues,
- semaphores).
-
- * ace/Malloc: Reimplemented the Malloc-family to factor out common
- code. Also added a new method called "trybind" which atomically
- tries to bind a new void *pointer to a char *name. If there is
- no name with the same value, the bind succeeds. Otherwise, the
- bind "fails", but returns the existing pointer.
-
- * ace/Map_Manager: Reimplemented the Map_Manager to factor out
- common code. Also added a new method called "trybind" which
- atomically tries to bind a new int_id to an ext_id. If there is
- no ext_id with the same name, the bind succeeds. Otherwise, the
- bind "fails", but returns the existing int_id.
-
- * ace/Memory_Pool.cpp: Commented out all the diagnostic messages
- in the various ACE_*_Memory_Pools. Now that we're actually
- using this within ACE, they were distracting.
-
- * ace/CORBA_Handler.cpp (ACE_ST_CORBA_Handler): Gave iterations_
- an initial value of "5" for backwards compatibility. Thanks to
- Irfan for doing this.
-
- * ace/Map_Manager.cpp (ACE_Map_Manager): Fixed some more braino in
- the constructors of Map_Manager. During the recent changes I'd
- forgotten to initialize the Map_Manager's instance variables to
- 0. Thanks to Irfan for finding this out the hard way... ;-)
-
- * ace/OS.i (gettimeofday): Added a WIN32 implementation of
- gettimeofday. This is pretty nasty, but it should centralize
- all of this processing in one place in ACE!
-
-Sat Dec 30 00:50:20 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Timer_Queue: Removed the current_time() method from the
- Timer_Queue class. All uses will be replaced with calls to
- ACE_OS::gettimeofday(). Not only does this factor out more
- code, but it is also reentrant!
-
- * ace/ACE.cpp (handle_timed_accept): Consolidated code so that
- select() is always used, rather than poll().
-
- * ace: Generalized the ACE file locking wrappers (both at the
- Synch-level and the ACE_OS class level) to enable them to lock
- arbitrary regions (aka "records") of a file. Before, they could
- only lock the entire file (which remains the default behavior).
- This new behavior works for both NT and UNIX.
-
- * ace/Synch: Removed the definition and use of the
- ACE_SYNCH_ERROR_RETURN macro from all the ACE Synch* methods.
- This behavior has been integrated into the ACE_OS class instead
- since it cleans up lots of code that would otherwise have been
- hard to write.
-
- * ace/INET_Addr.cpp (get_host_name): Fixed a bug that arose by
- trying to use the reentrant version of gethostbyaddr all the
- time. In order to fix this, I've added a new get_host_name()
- method that allows the caller to supply a buffer for the
- hostname.
-
- * ace: Cleaned up all the POSIX_TIMER junk that permeated ACE.
- Now all platforms will have the POSIX timer structures (e.g.,
- timestruc_t and timespec), though only those that actually
- support nano-second timing will be able to do anything useful
- with this... As part of this cleanup, the poll, select, and
- cond_timedwait method in ACE_OS now take ACE_Time_Value * rather
- than int, timeval *, and timestruc_t, respectively. This
- *greatly* cleans up the clutter throughout the rest of ACE.
-
- * ace/ACE: Added two new methods called tv2msec and msec2tv that
- converts ACE_Time_Value format into millisecond format and vice
- versa. This will make it easier to port code between NT and
- UNIX.
-
- * ace/Reactor: Removed the code in the Reactor that previously
- allowed it to be resized after it had been initialized. This
- code no longer was used due to the recent enhancements that
- ensure the Reactor is only initialized once per-process.
-
- * ace/Reactor: Modified the Reactor so that it now compiles on NT.
- It doesn't work yet, but at least it compiles!
-
- * ace/Reactor: Moved the "max3" method from the Reactor to OS.h,
- where it has become a template function usable throughout ACE.
-
- * ace/OS.cpp: Added extern "C" before the NT implementations of
- readv() and writev().
-
- * ace/OS.i: Fixed the declaration of ::readv() and ::writev() for
- cases where the OS doesn't provide them natively.
-
- * ace/Event_Handler: Modified handle_signal() to take an int
- rather than an ACE_HANDLE. The old way broke under NT...
-
- * ace: Made lots of minor changes to resolve signed int
- vs. unsigned int mismatches. Thanks to the MSVC++ 4.0 compiler
- for pointing these out. At least it's good for
- something... ;-).
-
-Fri Dec 29 15:01:10 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/ACE.cpp (handle_timed_accept): Reimplemented the core
- select() loop to make the code portable to Win32.
-
- * ace/Map_Manager.cpp (ACE_Map_Manager): Fixed a minor bug caused
- by recent changes (forgot to initialize max_size_ in the
- constructor...).
-
- * Updated all the manual pages to reflect the latest changes.
-
- * ace/ACE.cpp: Fixed up the ACE class so that all of the methods
- should compile on both Windows NT and UNIX!
-
- * ace/OS: Moved the get_file_size() method from class ACE and put
- it into class ACE_OS, where it's been renamed to filesize().
- This is really more of an "OS" function, e.g., it's supported on
- Win32 directly.
-
- * ace/OS.cpp: added readv() and writev() implementations for those
- platforms (e.g., Windows NT) that require them.
-
- * ace/Makefile: Added a new regex to the Svc_Conf_l.cpp target
- that will substitute <stdio> for <unistd>. This should solve a
- portability problem with Windows NT...
-
- * ace/Malloc: Modified the sync() and protect() methods to use
- void * rather than char *. This is now consistent with the OS
- classes.
-
- * ace/OS: Changed things so that all the mmap() related OS
- wrappers use void * in their external interface. Any
- discrepancies between platforms are now dealt with internally,
- in the implementation of the methods. Thanks to Chris Lahey
- (clahey@ix.netcom.com) for suggesting this.
-
- * ace/Local_Name_Space: Modified how ACE_NS_String is used to
- instantiate ACE_Map_Manager in order to work around problems
- with AIX C++. Thanks to Chris Lahey (clahey@ix.netcom.com) for
- reporting this.
-
- * ace/Synch.i: Added a definition for ACE_RW_Mutex::acquire().
-
-Fri Dec 29 00:34:16 1995 Chris Lahey (clahey@ix.netcom.com)
-
- * ace/OS.h: Changed the #ifdef for ACE_HAS_COMPLEX_LOCKS to
- ACE_HAS_COMPLEX_LOCK.
-
- Changed prototypes for ACE_OS:mprotect(), msync(), and munmap()
- to accept ACE_MMAP_TYPE for their first arg. The AIX versions
- of these calls all expect void * for their pointer variable.
- Note that madvise() takes a caddr_t for its 1st arg and
- therefore does not need to be altered. (See related changes in
- OS.i and Mem_Map.i)
-
- Changed prototype for ACE_OS::getsockname(), arg3 to int * (See
- related change in OS.i)
-
- Changed prototype for ACE_OS::setsockopt(), arg4 to const char *
- and arg 5 to int (See related change in OS.i)
-
- * ace/OS.i: Changed function definition for ACE_OS::mprotect(),
- msync(), and munmap() to accept ACE_MMAP_TYPE as their 1st arg.
-
- The following changes relate to the inconsistencies in the
- sockets calls on AIX. I thought it would make more sense to
- leave the public interfaces alone and then handle the
- differences internally. That way it won't break any exisiting
- code.
-
- Changed function definition for ACE_OS::getsockname() to accept
- arg3 as int *. Made similar changes in ACE_OS::setsockopt() -
- change definition to accept const char * for arg4 and int for
- arg5. Add the following code at the start of the function:
- Also made changes to ACE_OS::recvfrom() - change arg 6 back so it is
- int *.
-
- * ace/Mem_Map.i: In ACE_Mem_Map::advise(), cast 1st arg to
- ACE_OS:madvise() to (caddr_t).
-
- * ace/Memory_Pool.cpp: In ACE_MMAP_Memory_Pool::acquire(), make
- cast to char * in the return statement. In
- ACE_MMAP_Memory_Pool::handle_signal(), also make same cast in
- the ACE_DEBUG statement near the top of the function.
-
- * ace/Reactor.cpp and ace/Reactor.h: ACE_Reactor::handler_i()
- doesn't return properly if *eh != 0. Remove last "else" so
- function always returns 0 if handler != 0.
-
- In ACE_Reactor::owner(), we need to change signature since
- thread_t is not an integer. This has been changed to int
- ACE_Reactor::owner(thread_t *t_id); The last two lines have been
- changed to: *t_id = this->owner_; return 0;
-
- * ace/Synch.cpp: In ACE_Condition_Mutex::wait(), the call to
- cond_timedwait() does not exist, but ACE_OS::cond_timedwait()
- does exist. It takes the same arguments.
-
- * ace/Synch.h and ace/Synch_T.h: At the end of both files, before
- the #define INLINE check for this define's existence to avoid
- causing compilers to choke.
-
- * ace/Mem_Map.i: In ACE_Mem_Map::operator(), the return statement
- looked very odd. In the assignment to addr, why is the ", 0" in
- the statement?
-
-Fri Dec 29 00:34:16 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu)
-
- * ace: Fixed up many minor problems with the various types of
- Shared_Memory wrappers. This mostly entailed changing from char
- * to void * to be more consistent with the other parts of ACE.
- In addition, I now only include the *.i files if __INLINE__ is
- enabled.
-
- * ace/Memory_Pool.cpp (map_file): Fixed a minor bug by enabling
- MAP_FIXED if we're trying to map a file using a fixed address.
-
-Thu Dec 28 18:39:16 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu)
-
- * ace/Local_Name_Space.cpp: Finished implementing changes to the
- ACE_Malloc stuff and the Local_Name_Space that Irfan had begun
- last semester.
-
- * ace/SString.cpp: Added new optimizations to the assignment
- operators of the ACE_[WCS]String classes to avoid
- freeing/allocating memory if the current size is large enough.
-
- * ace/SString: Added copy constructors...
-
- * ace/Local_Name_Space.cpp: Modified the implementation of bind()
- to avoid a race condition.
-
- * ace/Map_Manager.cpp (bind): Changed the semantics of bind() so
- that callers can control whether or not INT_IDs are reassigned.
- Also changed things so that callers can get back the existing
- value if they choose not to reassign.
-
- * ace/SString.cpp: Removed the "P" (persistent) versions of all
- these classes and merged them into the default versions. The
- persistence is now determined by the type of allocator passed in
- as a parameter to the constructor (or by using the "default"
- allocator that is accessible via
- ACE_Service_Config::allocator()).
-
- * ace/Map_Manager.cpp: Removed the "P" (persistent) versions of
- all these classes and merged them into the default versions.
- The persistence is now determined by the type of allocator
- passed in as a parameter to the constructor (or by using the
- "default" allocator that is accessible via
- ACE_Service_Config::allocator()).
-
- * ace/Malloc_T: Modified the bind() algorithm so that it will
- allow the caller to determine whether duplicates are allowed or
- not... Also changed things so that callers can get back the
- existing value if they choose not to allow duplicates. Irfan
- questions the sanity of this... ;-)
-
- * ace/Synch: To be consistent, added acquire_write and
- acquire_read methods to ACE_Mutex. These are useful for cases
- where we are going to be parameterizing classes like ACE_Malloc
- with some type of mutex wrapper (e.g., ACE_RW_Mutex, ACE_Mutex).
-
- * ace/Malloc_T.cpp (calloc): Added a new method called "calloc"
- that will not only allocate the memory dynamically, but will
- also give it an initial value (e.g., '\0').
-
-Thu Dec 28 01:10:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.i: Modified the implementation of the TLI methods so that
- they are conditionally compiled away if the platform doesn't
- support TLI... Thanks to Neil Cohen for pointing out the need
- for this...
-
- * ace/OS.i: Modified the implementation of dlopen() and dlsym() to
- account for limitations with SunOS 4.x...
-
- * ace/Service_Repository.cpp: Modified this class to use the
- ACE_OS::dlclose method.
-
- * ace/Parse_Node.cpp: Modified this class to use the
- ACE_OS::dlopen and ACE_OS::dlsym methods.
-
-Wed Dec 27 23:25:03 1995 Jesper S. M|ller (stophph@diku.dk)
-
- * Added appropriate flags in OS.h for successful inclusion of
- several header files, such as Malloc.h and friends. Also added
- mprotect to ACE_OS for Win32 to avoid linker errors.
-
- * Added a return value (from map_file) to
- ACE_MMAP_Memory_Pool::handle_signal. The compiler was
- complaining. Likewise on
- ACE_MMAP_Memory_Pool::commit_backing_store (there 0 seemed like
- the correct off-the-end return value).
-
- * Removed include of some SV semaphore file, if not needed in
- Malloc.h. Worse for Memory_Pool.h, since the SV_Semaphore
- wrappers consistently differ completely from the other
- synchronization routines. I guess we'll need some variant of
- ACE_Process_Semaphore that takes an integer as a key instead of
- a string, and does not perform automatic init/destroy.
-
- * Also upgraded fd's from int to ACE_HANDLEs and changes -1 to
- ACE_INVALID_HANDLE where appropriate.
-
- * By help of aggresive preprocessor conditionals, made Handle_Set
- work with Win32. There is a fd_set abstraction with appropriate
- FD_xxx macros for WinSock, and it requires no sync'ing. The
- Handle_Set_Iterator should also work. The good looks of
- Handle_Set was impaired, though. Right now, the trigger is the
- ACE_WIN32 flag, although it should be something like
- ACE_FD_SET_USES_BITS for the unix approach, or like
- ACE_FD_SET_USES_VECTOR for the WinSock approach.
-
- * Reactor almost compiles now, but not quite: Handlers are
- addressed by fd, this is no longer possible - what a mess - we
- need to step through the handle indices somehow. This will
- likely get into some nasty quadratic complexities when iterating
- the handles to find the event_handler for each file
- handle. Mabye we can circumvent this with a hash table lookup
- for those opaque handles.
-
- * There was a problem with the Svc_Conf.l.cpp and the
- Svc_Conf.y.cpp and the extremely lame MSVC++ 2.0. I had to
- rename them to Svc_Conf_y.cpp, etc. Awful!
-
- * Added code to inquire the 'host' name for Win32 in the ACE_Client_Id
- class. Another candidate for ACE_OS.
-
- * About 60 or so ACE .cpp files compile now, which reminds me that
- I'll be working on some precompiled header scheme soon, since it
- takes for ever and ever, even on my 32meg system with pretty
- good SCSI drives. Mabye it's because I'm only running a 66MHz
- i486 DX2 (yawn).
-
- * Dozens of other changes have been made to various files, all
- pertaining to int vs. ACE_HANDLE. In Service_Manager.h, a signal
- number was an ACE_HANDLE, but just close by, some fd's were
- ints. Fixed that, too.
-
-Sat Dec 23 14:15:16 1995 Jesper S. M|ller (stophph@diku.dk)
-
- * I've also grouped the .i and .cpp functions by class,
- and #if'ed the sbrk and SysV pools out, since
- Win32 cannot support those.
-
- * Added 'inline' to day accessor functions in Date_Time.
-
- * Two things that missed me in Trace.cpp:
- 1) The inclusion order was so that I couldn't
- build Trace.o, since it didn't know the MALLOC_HOOK thing.
- I moved the #include of Trace.h down below that of ACE.h.
- 2) The declaration and definition of the ACE_Trace constructor
- differed by a const, which I added.
- 3) When linking, multiple symbols were found for some
- OS calls like mutex_init, corresponding to the larger
- OS Win32 functions. I has ACE_INLINED_OS_CALLS off,
- so sometimes the OS functions were inlined, sometimes
- not.
- I disabled the inline hack in Trace.cpp for WIN32 for now.
- This seemed to resolve matters.
-
- * There was a major problem in OS.i, where Synch.h was needed for
- mutex support (in conjunction with TSS info linked list). I
- chose to make thr_keycreate and some others non-inlined.
-
- * More 'is-it-a-handle-or-success' confusion in SOCK*.* Changed
- ACE_SOCK_Dgram to use int status. Changed ACE_SOCK_CODgram to
- use int status. Changed ACE_LSOCK to use int status. Also
- changed a few derived classes
-
-Fri Dec 22 14:03:15 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu)
-
- * ace/OS.h: Added a new type for rwlock_t for platforms that don't
- support threading... Thanks to Neil Cohen for reporting this.
-
- * ace: Merged in all of Jesper's changes for NT and Chris Lahey's
- changes for AIX.
-
- * ace: Merged tli.h into OS.h to avoid name conflicts on Win32.
-
- * Fixed duplicated names where case is the only difference.
- ace/thread.cpp
- ace/Thread.cpp
- ace/TLI.h
- ace/tli.h
- apps/Token_Server/mutex_example/simple_token_client.cpp
- apps/Token_Server/mutex_example/Simple_Token_Client.cpp
- apps/Token_Server/script_example/scripting_token_client.cpp
- apps/Token_Server/script_example/Scripting_Token_Client.cpp
- tests/IPC_SAP/SOCK_SAP/FD-client.cpp
- tests/IPC_SAP/SOCK_SAP/fd-client.cpp
- tests/IPC_SAP/SOCK_SAP/FD-server.cpp
- tests/IPC_SAP/SOCK_SAP/fd-server.cpp
-
-Wed Dec 20 22:26:24 1995 Jesper S. M|ller (stophph@diku.dk)
-
- * FIFO.cpp: One last comparison of 'open' return status where and
- ACE_INVALID_HANDLE should be changed to -1.
-
- * One more last wrong comparison in FIFO_Recv_Msg.cpp.
- (Never say never again!)
-
- * Put an appropriate conditional around the inclusion of
- Handle_Set.h for ACE_WIN32 (for now).
-
- * Introduced a few backslashes in the macros of Dump.h that were
- somehow left out... Had to add a really stupid constructor for
- struct Tuple. I haven't a clue why MSVC++ wants this! Replaced
- 'return ACE_ODB;' with 'return ACE_ODB::instance_;' in the
- Singleton access function.
-
- * Added a constructor for ACE_ODB. It may be private, but it still
- needs to be defined...
-
- * Stack and Set compiles fine for Win32 (not surprisingly)
-
- * If'ed out the guts of ACE_IPC_SAP enable/disable calls for
- Win32, since async IO doesn't work that way on there.
-
- * Event_Handler now uses ACE_INVALID_HANDLE for default args.
-
- * SOCK compiles except for the ACE_SOCKET <> ACE_HANDLE
- problem. Refer to issue #3 above.
-
- * We're swamping the ace directory with .mak files. I used the
- winntace.mak file, which is compilable and linkable.
-
-Thu Dec 21 15:37:42 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu)
-
- * ace: Greatly simplified the include files so that (1) compilers
- are faster and (2) the ACE_Trace mechanism works correctly.
-
- * ace/Trace: Modified the ACE_Trace_TSS class so that it is no
- longer a template. This was overkill since we know the type
- head of time (i.e., ACE_Trace_State).
-
- * ace: Added a number of new changes to ACE to make things work on
- AIX. Thanks to Chris Lahey <clahey@ix.netcom.com> for these
- changes.
-
- * ace/Thread_Manager.cpp: Removed the get_max_thr_id() method
- since it was not portable to NT or POSIX pthreads. Nothing in
- ACE depended on it anyway...
-
- * ace/OS: Added a new static data member called NULL_thread that
- is a "zero'd" out thread id. This is necessary to deal with the
- POSIX pthread implementation of a thread id, which is not always
- implemented as a number... By using this new approach, all the
- special-case code in Synch.cpp disappears...
-
- * ace/OS: Added a new method to class ACE_OS called thr_equal()
- that masks the differences between comparing thread ids using
- the threading libraries. This simplifies the code in Synch.cpp
- and Reactor.cpp.
-
- * ace: Updated all uses of mmap() to use the new ACE_MMAP_TYPE
- typedef. This deals with the fact that different versions of
- UNIX define mmap() inconsistently (e.g., some use void * and
- some use char *...).
-
- * ace: Removed testconfig.h and merged all of those #defines into
- OS.h. This centralizes changes in one place and also eliminates
- the need for ./apps and ./tests to include extraneous files...
-
- * ace/testconfig.h: Changed all uses of 0666 to ACE_DEFAULT_PERMS.
- Also, removed all PERMS enums and substituted ACE_DEFAULT_PERMS
- instead.
-
-Wed Dec 20 17:29:55 1995 Tim H. Harrison (harrison@merengue.cs.wustl.edu)
-
- * Rewrote the Token deadlock detection algorithm. It now performs
- "best-effort" detection of deadlock for remote acquires and
- complete deadlock detection for local acquires.
-
-Wed Dec 20 02:37:39 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.h: The select() system call has its own include file on
- AIX: <sys/select.h>. We can wrap the #include with a variable
- #if defined (ACE_HAS_SELECT_H).
-
- * include/makeinclude/platform_aix.GNU: Added new support for AIX.
- Thanks to Chris Lahey <clahey@ix.netcom.com> for these changes.
- Added a number of other minor changes, as well.
-
- * ace: Made a bunch of minor changes to get ACE to compile on
- SunOS4.x, Linux, and SGI.
-
- * ace/config-linux.h: added ACE_HAS_MSG (thanks to Neil Cohen
- for this).
-
- * ace/OS.h: Conditionally compile for ACE_HAS_UTIME for
- <sys/utime.h>.
-
- * Released an alpha version of ACE containing the new Windows NT
- port.
-
- * Integrated and tested all the new Windows NT changes in class
- ACE_OS, as well as the Synch* and Threads* classes. We're now
- able to build Jesper's win32_test.cpp file in ./ace! A complete
- NT port should be just around the corner...
-
-Tue Dec 19 17:59:04 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Move the remaining contents of sysincludes.h into ACE.h.
- There is no more sysincludes.h (at long last!).
-
- * ace: Rearranged things so that the OS.[hi] files contain all the
- OS-specific #defines and #includes that were previously in
- sysincludes.h.
-
- * ace: Renamed the ACE_Misc class to class ACE, which is more
- representative of what it does.
-
- * INSTALL: updated the installation instructions to explain how
- the new directory structure works. Thanks to Neil Cohen for
- pointing out the discrepancy beteen the source and the
- documentation ;-).
-
- * Reorganized (by flattening) the ACE library directory structure
- to make it work for both Windows NT and UNIX. Note that Windows
- NT does not have symbolic links, so the old way of doing things
- didn't port... The consequences of these changes is there is
- now a single directory called $WRAPPER_ROOT/ace that contains
- the *.[hi] and *.cpp source files. This is also where the
- libACE.a and libACE.so libraries are built by default. Also,
- note that the suffix used by ACE has been changed from *.C to
- *.cpp to deal with the lame Visual C++ compiler...
-
-Tue Dec 19 01:26:54 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu)
-
- * tests/ASX/Event_Server/Event_Server/Supplier_Router.cpp (put):
- Fixed up a problem with the Event_Server. Somewhere along the
- way it stopped being concurrent! The new version fixes this.
- Thanks to Alex V Maclinvosky <alexm@teltrunk1.tait.co.nz> for
- noticing this...
-
- * Added a billion new changes to class OS to integrate the Windows
- NT port with the rest of ACE. We are getting very close...
-
-Mon Dec 18 12:45:13 1995 Jesper S. Møller (stophph@diku.dk)
-
- * Major problems in the IPC_SAP. First, I detected that some open
- calls returned handles, some returned -1 or 0. For instance
- ACE_SOCK has a constructor, that calls this->open and expects a
- handle (which it even sets as the current handle
- value!). Unfortunately, the return from open is either 0 or -1,
- depending on how well the open went. ACE_HANDLE being
- typedef'ed to a void* really reveals some problems! I have
- solved the problem for the FIFO*.* family and for SOCK.*
-
-Mon Dec 18 12:43:46 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu)
-
- * tests/Reactor/CODgram/CODgram.C (main): Fixed a bug in main()
- caused by initializing the Reactor twice. Thanks to Aurelio
- Nocerino <aurelio@irsipcs2-27-le0.irsip.na.cnr.it> for reporting
- this.
-
- * libsrc/Service_Configurator/Service_Config.C Added a new
- constructor to ACE_Service_Config that can be used to initialize
- internal variables without performing a full configuration.
-
-Mon Dec 18 01:22:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Service_Config: renamed tokens.h to sc_tokens.h to avoid
- file name collision on Win32. Thanks to Jesper S. M|ller
- <stophph@diku.dk> for reporting this.
-
- * tests/Mem_Map/IO_Test: renamed io_test.C to test_io.C to avoid
- file name collision on Win32. Thanks to Jesper S. M|ller
- <stophph@diku.dk> for reporting this.
-
- * libsrc/Misc/OS: Implemented condition variables for Windows NT.
-
-Sun Dec 17 21:23:32 1995 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu)
-
- * libsrc/Misc/Trace: Fixed up the ACE_Trace class so that it
- doesn't include any calls that will improperly trigger infinite
- recursion! This allows the ACE library to be traced completely.
-
-Sat Dec 16 19:12:37 1995 Jesper S. Møller (stophph@diku.dk)
-
- * Changes to OS.*:
- * Added conditionals to the OS.h for Win32, for the special ACE/Win32
- thr_destroy_tss(), which is automatic for Solaris.
- * Changed declarations of thr_create, thr_suspend, thr_continue,
- thr_join and thr_[gs]etprio to use hthread_t instead of thread_t.
- * Changed return type of OS::open from int to ACE_HANDLE.
- * Provided non-obtrusive handling of thr_handle in OS::thr_create
- for non-Win32.
- * Copied ACE::writev to OS::writev for Win32. Something similar
- should happen for other systems...
-
- * Changes to Thread.*:
- * Changed join, suspend and continue to take handles.
- * Added thread handle return address to spawn.
-
- * Changes to Thread_Manager.*:
- * Added thread handles to the Thread_Descriptor structure.
- * Modified insert_thr and append_thr functions to also take
- handles.
- * Made ACE_Thread_Descriptor::Thread_State (a enum) public
- so Thread_Manager::append_thr could use it as a formal
- parameter (I suspect this is a bug in MSVC++).
- * Changes the various flavours of suspend, continue, etc. to
- use handles instead of id's. Keep in mind that none of this
- is destructive for Unix, but vital for Win32.
- * There is still a problem with ACE_Thread_Control registering
- itself with the Thread_Manager - the thread does not have means
- of finding it's own handle. In this particular case, we could
- have the thread duplicate it's pseudohandle into a real one,
- and pass that one along. I'd really, really, really rather not
- have to maintain a thread id->handle mapping myself; It would
- slow down thread manipulation and give some troublesome memory
- overhead.
-
- * Changes to Log_Msg.*:
- * OS::getpid instead of ::getpid.
-
- * Changes to Misc.*:
- * Sections inappropriate for Win32 #if'd out...
- * Provided naive timestamp function (No date) for Win32.
-
- * Changes to IPC_SAP.*:
- * Uses OS::ioctl instead of ::ioctl
- * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
-
- * Changes to FIFO.*, :
- * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
-
- * Changes to FIFO_Send.*:
- * open now returns an int insted of an ACE_HANDLE.
- * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
-
- * Changes to FIFO_Send_Msg.*:
- * open now returns an int insted of an ACE_HANDLE.
- * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
- * Uses OS::writev instead of ::writev
-
- * Changes to FIFO_Recv.*:
- * open now returns an int insted of an ACE_HANDLE.
- * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
-
- * Changes to FIFO_Recv_Msg.*:
- * open now returns an int insted of an ACE_HANDLE.
- * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
-
- * Changes to sysincludes.h:
- * Uses ACE_INVALID_HANDLE instead of ACE::INVALID_HANDLE
-
-Sat Dec 16 12:29:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/Addr/INET_Addr.C: Changed the implementation so
- that the reentrant versions of the library calls are always used
- (class OS sorts this all out). This reduces the amount of
- clutter in the code.
-
- * libsrc/Threads/Synch: Added a new implementation of
- "readers/writer" locks for both Windows NT and POSIX pthreads.
- By default, these threads packages don't have this feature.
-
- * libsrc/Threads/Synch: Added a new macro called
- ACE_SYNCH_ERROR_RETURN that greatly simplifies the definition of
- the synchronization wrappers.
-
- * include/ace/sysincludes.h: Removed the pthreads_map.h file and
- integrated this into sysincludes.h.
-
-Fri Dec 15 02:39:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Misc/OS.i: Finished updating class OS so that it will
- compile correctly for OS platforms that don't support threads,
- as well as platforms that support POSIX Pthreads vs. Solaris
- threads, etc.
-
- * libsrc/Misc/OS: integrated Jesper S. M|ller <stophph@diku.dk>
- support for POSIX regular expressions (e.g., compile() and
- step()) and sysinfo() into ACE.
-
- * Integrated and tested all of Irfan's changes to ACE to support
- the new persistence Name_Server. This added some new classes in
- various places that use the ACE_Allocator.
-
-Thu Dec 14 00:23:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * tests/ASX/Event_Server/Event_Server: Fixed an "off by 1" bug in
- the declaration of char *argv[3] in the open() methods of
- Supplier_Router.C and Consumer_Router.C. Thanks to the "ever
- dissatisfied" Alex V Maclinvosky <alexm@teltrunk1.tait.co.nz>
- for reporting this.
-
- * libsrc/Service_Configurator/Service_Config: Added a new
- "Singleton" access point for the global ACE_Allocator.
-
- * libsrc/Naming/Name_Options.C (parse_args): Made it possible to
- change the name of the process on the command line via the -P
- option. The default is still to use argv[0] as the process
- name.
-
- * include/ace/testconfig.h (ACE_DEFAULT_GLOBALNAME): Changed the
- value from "/localnames" to "/globalnames" to avoid a conflict.
-
- * libsrc/Misc/SString.C: Added Irfan's new "persistent" string
- mechanisms that use the ACE_Allocator_Manager. We may
- eventually update the existing SS* stuff to use this.
-
- * Merged in Jesper S. M|ller <stophph@diku.dk> updates for Windows
- NT.
-
- * include/ace/Malloc.h: Added a forward declaration for
- ACE_Malloc_Iterator right before ACE_Malloc. Thanks to Antonio
- Tortorici <antonio@rh0011.roma.tlsoft.it> for reporting it.
-
- * libsrc/Threads/Synch_T.h: Fixed a small typo in
- ACE_Null_Condition. Thanks to Antonio Tortorici
- <antonio@rh0011.roma.tlsoft.it> for reporting it.
-
- * include: Added new config-linux.h and platform_macros.GNU config
- files for Linux. Thanks to Timothy Newell
- <910430n@dragon.acadiau.ca> for this stuff.
-
-Wed Dec 13 23:08:11 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/Addr/INET_Addr.C (set): Fixed a small typo in the
- ACE_INET_Addr::set (const char port_name[], ACE_UINT32
- inet_address) method where the test should be != rather than ==
- 0. Thanks to Bill Lear (rael@anarchy.cybercom.net) for
- reporting this.
-
-Sun Dec 10 12:23:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Service_Configurator/Service_Record.C (init): Fixed a
- small problem where a NULL pointer was being returned if a user
- passes a non-existent config file (using the -f option) to
- ACE_Service_Config::open(). Thanks to Dieter Quehl
- (quehl@erlh.siemens.de) for noticing this.
-
- * libsrc/Log_Msg/Log_Msg.C (log): added a new option (%T) that
- causes the current timestamp to be inserted into the log msg.
- Thanks to Dieter Quehl (quehl@erlh.siemens.de) for suggesting
- this.
-
- * libsrc/Misc/Misc: Added a new timestamp() method that returns
- the current timestamp in the form
- "hour:minute:second:microsecond." The month, day, and year are
- also stored in the beginning of the date_and_time array.
-
- * tests/Shared_Malloc: Added Irfan Pyarali <ip1@cec.wustl.edu> new
- test program that exercises the new features of ACE_Malloc that
- are described in the following bullet.
-
- * libsrc/Shared_Malloc: Added Irfan Pyarali <ip1@cec.wustl.edu>
- cool new versions of ACE_Malloc and ACE_MMAP_Memory_Pool. These
- new versions provide the following enhancements:
-
- 1. Persistence -- via the sync() method
- 2. Protection -- via the prot() method
- 3. Named malloc chunks -- via bind(), find(), unbind().
- 4. Named iteration -- via ACE_Malloc_Iterator
-
-Thu Dec 7 00:31:26 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Signal.C: Replaced ACE_Guard with ACE_TSS_Guard
- to ensure that locks are correctly released even if
- Event_Handler::handle_signal() callbacks invoke
- ACE_Thread::exit(). Thanks to Detlef Becker
- (beckerd@erlh.siemens.de) for suggesting this.
-
- * libsrc/Threads/Synch_T: Used inheritance to factor out the
- shared code between ACE_Guard, ACE_Read_Guard, and
- ACE_Write_Guard in order to reduce unnecessary duplication.
-
- * libsrc/Threads/Synch_T: Changed the implementation of ACE_Guard
- to keep a pointer to the LOCK rather than a reference. This
- makes the code more flexible and aids in factorization.
-
- * libsrc/Threads/Synch_T: Changed the implementation of ACE_Guard
- to incorporate ACE_Try_Guard semantics. This reduces the amount
- of classes and duplicate code in ACE.
-
-Wed Dec 6 21:36:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * include/ace/Trace: Changed the type of the string passed into
- ACE_Trace from char * to const char *.
-
- * libsrc/Reactor/Reactor.C: Had forgotten to initialize the
- initialized_ and requeue_position_ members appropriately in the
- constructor of the ACE_Reactor if ACE_MT_SAFE is *disabled*.
- Thanks to Mark Zusman <marklz@topaz.technion.ac.il> for pointing
- this out.
-
- * libsrc/Threads/Synch_T.C: changed the order of some methods so
- they would be properly defined if ACE_HAS_THREADS and
- ACE_HAS_THREAD_SPECIFIC are *not* enabled. This should fix
- remaining problems with ACE on SunOS 4 and SGI. Thanks to
- Aniruddha Gokhale <gokhale@cs.wustl.edu> for noticing this.
-
-Tue Dec 5 01:06:14 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Changed things around so that the Name_Server and Token_Server
- client interfaces are include in libACE.
-
- * libsrc/Shared_Malloc: added a const char *pool_name to
- ACE_Malloc::ACE_Malloc. This is passed into the constructor of
- the MEMORY_POOL to make it easier to dynamically name memory
- pools.
-
-Mon Dec 4 21:20:28 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Synch_T: Modified the place that the
- ACE_Thread_Specific methods are defined so that they will be
- compiled correctly for platforms without threads or
- thread-specific storage.
-
-Sun Dec 3 23:04:41 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/ASX/Message_Block: Modified clone() so that it takes an
- extra parameter that specifies which flags SHOULD NOT BE
- TRANSFERED to the clone. This defaults to
- ACE_Message_Block::DONT_DELETE. Thanks to Alex V Maclinvosky
- <alexm@teltrunk1.tait.co.nz> for suggesting this.
-
-Sun Dec 3 17:43:11 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * The number of files in the Token library has been reduced. As a
- result, many of the files have been renamed. Also, the .i files
- have been purged of relatively large methods (these have been
- moved to the .C files.) Lastly, most uses of dynamic memory
- allocation have been removed from the library. This was
- important to reduce the amount of serialization in threaded
- applications caused by the dynamic allocation.
-
-Sun Dec 3 17:29:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Synch: Modified all the synchronization classes
- so that they disallow assignment and initialization!
-
- * libsrc/Threads/Synch: Moved the ACE_Thread_Specific class from
- its own files into the Threads/Synch.[Chi] files. This should
- eliminate a set of horrible interdependencies among files.
-
-Sat Dec 2 16:07:40 1995 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu)
-
- * libsrc/Misc/SString.C (ACE_CString): Added a destructor to
- CString. Thanks to Tim for noticing this...
-
-Tue Nov 28 17:25:02 1995 Prashant Jain (pjain@tango.cs.wustl.edu)
-
- * apps/Name_Server/client/lib/Name_Proxy: Changed Name_Proxy to
- inherit from ACE_Service_Object rather than ACE_Event_Handler.
- This will allow a Name_Proxy to be dynamically linked into an
- application via the svc.conf file.
-
- * apps/Name_Server/client/lib/Name_Proxy: Added new methods
- init, fini, and info.
-
-Tue Nov 28 00:56:52 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * tests/Threads/test_thread_specific.C: Added code to test the new
- ACE_TSS_Guard class...
-
- * libsrc/Threads/Synch_T: Added the new ACE_TSS_Guard class. This
- class is similar to the existing ACE_Guard, except that it uses
- thread-specific storage to ensure locks are released even if a
- thread exits via thr_exit()!
-
-Mon Nov 27 20:39:58 1995 Prashant Jain (pjain@tango.cs.wustl.edu)
-
- * apps/Name_Server/{client,server}/tests: Added new tests to
- exercise the key features of the name server.
-
- * apps/Name_Server/client/lib: Simplified access to the nameserver
- database. For example, all the network-byte ordering code was
- moved out of the Local and Remote Name_Spaces. This code is no
- longer necessary since we'll be providing a different means to
- get portable name service repositories via a tool that extracts
- the "key/value/type" tuples and stores them in a
- machine-independent format. The result of this change is that
- the Name_Server code is much easier to understand and modify.
-
- * apps/Name_Server/client/lib: Split local and remote name spaces
- into two classes to simplify usage. This approach uses the
- Bridge pattern to have a baseclass called Binding and then have
- subclasses called Local_Name_Space and Remote_Name_Space. The
- constructor of Naming_Context then allocates the right one
- (i.e., it serves as a factory). This approach remove all the
- switch statements in the code and makes it much easier to use
- and extend.
-
- * apps/Name_Server: updated all the Name_Server components to
- use ACE naming conventions.
-
- * apps/Name_Server/client/lib: Changed ACE_Name_Options to use the
- Singleton pattern rather than the global variable...
-
-Mon Nov 27 00:47:32 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Shared_Malloc/Malloc.h: Named the previously anonymous
- struct inside of ACE_Malloc_Header to be
- ACE_Malloc_Control_Block in order to keep the OSE tools working.
- Thanks to Karlheinz for reporting this.
-
- * libsrc/Threads/Synch: Fixed a major bug in the ACE_Semaphore
- wrappers. Apparently, these had slipped between the cracks and
- were not correctly mapping onto the ACE return value scheme
- where -1 corresponds to an error with errno set to indicate the
- type of error.
-
- * tests: Cleaned up some files that mistakenly were defining
- LSOCK* objects even for platforms (i.e., Linux) that don't
- support them. Thanks to Timothy Newell
- <910430n@dragon.acadiau.ca> for noticing this.
-
-Sun Nov 26 12:42:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Shared_Malloc/Malloc: Added a new accessor method
- (memory_pool) that returns a reference to the MEMORY_POOL object
- used to configure ACE_Malloc.
-
- * libsrc/Shared_Malloc/Malloc: Changed the constructor of
- ACE_Malloc to take advantage of the new init_release method on
- all the ACE_*_Memory_Pools.
-
- * libsrc/Shared_Malloc/Memory_Pool: Added a new method to all the
- ACE_*_Memory_Pool classes called "init_release". This is called
- when ACE_Malloc finishes initializing the dynamic memory
- manager. This method is necessary in order to initialize the
- ACE_MMAP_Memory_Pool correctly if there are multiple processes
- that try to initialize ACE_Malloc simultaneously. In addition,
- also added an ACE_SV_Semaphore_Complex to the
- ACE_MMAP_Memory_Pool in order to serialize initialization
- correctly.
-
- * libsrc/Shared_Malloc/Memory_Pool: Added sync() and protect()
- methods to all of the ACE_*_Memory_Pool classes in order to
- support a uniform interface for use with the "robust memory"
- mechanism we're building.
-
- * libsrc/Mem_Map/Mem_Map: Added two new "protect" methods to
- ACE_Map_Manager in order to allow clients to change the
- protection of memory-mapped regions.
-
- * libsrc/ASX/Map_Manager: Changed Map_Manager methods to use
- "const" for EXT_ID and INT_ID at request of Prashant Jain
- (pjain@cs.wustl.edu).
-
- * libsrc/Shared_Malloc/Memory_Pool: Revised the
- ACE_Shared_Memory_Pool so that it would actually work
- correctly... This code hadn't been reviewed carefully before
- and there were some bugs...
-
- * libsrc/Shared_Malloc/Malloc: added "INLINE" to the
- ACE_Allocator_Adapter components.
-
- * libsrc/Shared_Malloc/Memory_Pool: Greatly simplified and
- consolidated the mmap(2) code for ACE_MMAP_Memory_Pool.
-
- * libsrc/Shared_Malloc/Memory_Pool.i (release): Removed the
- vestigal this->mmap_.remove() call in release(), but added the
- appropriate code to close the fd and unmap the region. Thanks
- to Irfan Pyarali <ip1@cec.wustl.edu> for noticing this.
-
-Sat Nov 25 18:12:55 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/CORBA/CORBA_Handler.C (activate_service):
- Modified activate_service so that
-
- if (service_name != 0
- && this->register_service (service_name, marker_name,
- service_location) == -1)
- return -1;
-
- is changed to
-
- if (service_name != 0 && service_location != 0
- && this->register_service (service_name, marker_name,
- service_location) == -1)
- return -1;
-
- Irfan Pyarali <ip1@cec.wustl.edu> requested this.
-
-Sat Nov 25 16:41:15 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu)
-
- * libsrc/Misc/Set: Changed all the find() and size() methods to
- be const member functions. Thanks to Irfan Pyarali
- (ip1@cec.wustl.edu) for requesting this.
-
-Fri Nov 24 02:51:59 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Reactor.C: Fixed the Reactor so that if we're
- compiling with DEADLOCK_DETECTION enabled it will create a
- uniquely named mutex by stringifying "this".
-
-Thu Nov 23 21:45:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP: Changed
-
- * libsrc/Service_Configurator/Service_Config: Added three new
- methods to allow programmers to set the process-wide Singletons
- for Reactor, Service_Repository, and Thread_Manager.
-
-Tue Nov 21 01:59:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Mem_Map/Mem_Map.C: Fixed a stupid typo in map_it() that
- was causing problems due to unsigned arithmetic semantics...
- This should make the file_reverse.C Mem_Map tests work correctly
- now... Thanks to Bill Lear <rael@anarchy.cybercom.net> for
- noticing the problem.
-
- * tests/Mem_Map/IO-tests/io_test.C (parse_args): Fixed a
- classic C/C++ braino in io_test.C:
-
- The for loop in parse_args()
-
- for (int c; (c = get_opt () != -1); )
-
- should be
-
- for (int c; ((c = get_opt ()) != -1); )
-
- How embarrassing. Maybe Bertrand Meyer is right -- C++ is too
- dangerous for its own good... ;-). Thanks to Bill Lear
- <rael@anarchy.cybercom.net> for finding this!
-
- * Removed all traces of ACE_Condition<ACE_Mutex> from the library.
- This should make life much easier for compilers (like G++) that
- can't grok templates very well...
-
- * libsrc/Threads/Thread_Specific.C (ts_object): Added a new method
- that allows you to simultaneously "test and set" thread-specific
- data! This is used to support a neat new trick that ensures
- locks are released even if a thr_exit() is called!
-
- * libsrc/Service_Configurator/Service_Repository: Removed the
- Recursive_Mutex from Service_Repository and replaced it with a
- regular (non-recursive) mutex. Had to rewrite the code a bit so
- that it wouldn't try to call internal methods that acquired the
- mutex (this leads to instant deadlock!)
-
-Mon Nov 20 01:05:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Synch: Finally gave in and accepted the fact that
- GNU G++ is a horrible, horrible blight on mankind... Changed
- the internals of Synch.[Chi] to completely remove any
- dependencies on templates. I hope this fixes some portability
- problems deep in the libraries... Added several new classes to
- reflect this change: ACE_Mutex_Guard, ACE_Mutex_Condition, and
- ACE_Recursive_Mutex.
-
- * libsrc/IPC_SAP/UPIPE_SAP/UPIPE_Acceptor.C (ACE_UPIPE_Acceptor):
- Fixed a stupid typo that was causing the constructor of
- UPIPE_Acceptor to become inlined!!!
-
- * apps/Gateway/Gateway: Fixed up the Makefile so that the gatewayd
- executable would compile with G++.
-
- * include/ace/config-irix5.3-sgic++.h: Changed the SGI config.h
- file so that it uses select() rather than poll() by default.
- The select() version of the Reactor is implemented more
- efficiently in ACE...
-
- * include: Added config files for AIX courtesy of Byron Walton
- <bwalton@hughes.scg.hac.com>.
-
- * libsrc/Reactor/Signal.C: #ifdef'd out some code in Signal.[hC]
- that was causing problems for the HPUX C++ compiler. What a
- *horrible* compiler!
-
- * libsrc/Reactor/Event_Handler.h: Added two new methods to
- ACE_Event_Handler: get_priority() and set_priority(). These
- will be used to control the behavior of the ACE_Reactor's
- dispatching. This also required added a new data member to
- ACE_Event_Handler that stores the priority (which defaults to
- MIN_PRIORITY).
-
- * libsrc/Misc/Stack.C (enqueue): Added a new class called
- ACE_Unbounded_Queue. This is required for Tim's Token_Server
- connection repository stuff...
-
- * libsrc/CORBA/CORBA_Handler.C: Added new support to both the
- single-threaded and multi-threaded versions of CORBA_Handler so
- that it will now suspend/resume the services associated with a
- CORBA_Handler.
-
- * libsrc/CORBA/CORBA_Handler.C (ACE_MT_CORBA_Handler): Updated the
- constructor to use the associated Thread_Manager to spawn a new
- thread. This will allow the suspend() and resume() methods to
- atomically resume and suspend the daemon thread and its event
- handler.
-
- * libsrc/Threads/Synch.h: Fixed up the order of #includes to solve
- problems with circular header dependencies!
-
- * Had to add zillions of little changes to avoid problems with
- circular includes for G++...
-
- * tests/ASX/Event_Server/Event_Server/Peer_Router.C (bind_peer):
- Fixed a typo that had been dormant for ages due to C++'s very
- late binding of templates... G++ picked this right up!
-
-Sun Nov 19 11:55:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Signal: Replaced the static HANDLER_SET stuff
- withing ACE_Sig_Handlers with a different implementation using
- ACE_Fixed_Set. This should fix nasty problems with static
- variables on HP/UX...
-
- * Fixed the entire library so that all occurrences of ace_log_msg
- are changed to use the ACE_LOG_MSG macro. This macro has magic
- properties that should greatly simplify the effort required to
- compile ACE robustly on platforms with lame C++ compilers...
-
- * libsrc/Log_Msg/Log_Msg: Finally got my act together with respect
- to thread-specific data and the ACE_Log_Msg class. The new
- version can be conditionally compiled such that it won't use the
- ACE_Thread_Specific smart-pointer wrapper mechanism unless the
- platform supports thread-specific storage and threads. This
- will make life much easier for lame C++ compilers that can't
- handle static data member templates correctly...
-
- * apps/Name_Server/{client,server}/lib/Makefile (LIBS): Added a
- reference to -lACE in the Makefiles of the ./lib directories in
- order to get GCC to work correctly...
-
- * Added a bunch of fixes courtesy of Bill Lear
- <rael@anarchy.cybercom.net> to make ACE compile more cleanly
- with GNU GCC 2.7.x.
-
-Sat Nov 18 11:27:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Misc/Trace.C: Fixed up the ACE_Trace class so that it
- will compile better on platforms that don't support
- thread-specific storage. The trick was to make a new Singleton
- called ACE_Nest_Depth and then conditionally compile it
- according to whether the platform supports thread-specific data
- or not!
-
- * include/makeinclude/platform_sunos5_g++.GNU: Added the new
- config file that should allow ACE to build correctly with GCC
- 2.7.x. Todd L. Montgomery <tmont@cerc.wvu.edu> deserves a big
- round of applause for getting this stuff to work! If I had a
- budget, I'd give him a raise ;-)
-
- * libsrc/Misc/Set.C (remove): Tightened up the semantics of all
- the *Set::remove() methods so that they return 1 if they
- succeed, 0 if the item isn't in the set, and -1 if they fail.
- Thanks to Tim Harrison for noticing the inconsistencies.
-
-Fri Nov 17 01:34:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/Logger/Reactor_Logger: Fixed up this example app so that it
- would compile with GNU G++ correctly. There was a problem with
- the order of include files! Thanks to Todd L. Montgomery
- <tmont@cerc.wvu.edu> for reporting this.
-
- * libsrc/ASX/Module.C (writer): Fixed ACE_READER so that it is
- properly qualified with ACE_Task_Flags::ACE_READER. Thanks to
- Neil Cohen (nbc@metsci.com) for finding this!
-
- * apps/Gateway/Gateway/Routing_Entry: Replaced ACE_Fixed_Set with
- ACE_Unbounded_Set to get around the seemingly endless problems
- with HP/UX...
-
- * libsrc/Misc/Set: Fixed a braino in ACE_Unbounded_Set, where I'd
- forgotten to define cur_size_. Thanks to Todd L. Montgomery
- <tmont@cerc.wvu.edu> for reporting this.
-
- * libsrc/Connection/Acceptor.C: Change the #undefs of the
- shorthand names PA_AC_1, PA_AC_2, and PA_AD in
- libsrc/Connection/Acceptor.C to PR_AC_1, PR_AC_2, and PR_AD
- (same as in Connector.C and Strategies.C). Thanks to
- Dieter Quehl <quehl@erlh.siemens.de> for reporting this.
-
-Thu Nov 16 02:14:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Misc/Trace: Fixed the ACE_Trace stuff by making the
- "nesting_indent_" a static data member. This will undoubtedly
- break some lame C++ compilers, but it's easy enough to remove
- this stuff via conditional compilation using the ACE_NTRACE
- #define in ./include/ace/config.h.
-
- * libsrc/Threads/Thread_Specific.C (cleanup): Under no
- circumstances should ACE_Thread_Specific be allowed to
- called ACE_Trace. Otherwise, chaos will result!
-
- * apps/Name_Server/{client,server}/tests/Makefile: Switched the
- order of the -lACE and -lName* so that -lACE came *afterwards*
- in order for the SGI linker to pick up the symbols correctly.
-
- * libsrc/Reactor/Signal: I'd accidentally put the "dump" methods
- in the *.i file rather than the *.C file. This was causing
- problems for G++.
-
- * libsrc/ASX/Task: Changed all "Q_" prefixes to "ACE_" prefixes in
- order to work around a bug with HP/UX...
-
- * Recompiled everything on SunOS 4.x with SunC++ 4.0.1. It seems
- to work!
-
-Thu Nov 16 18:05:03 1995 Tim H. Harrison (harrison@tango.cs.wustl.edu)
-
- * I moved around some class declarations so that g++ can properly
- instantiate templates for ACE_Token_Collection and
- ACE_Token_Manager.
-
-Wed Nov 15 00:26:40 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * The token library should now compile on platforms which do not
- support threads. All token components will be compiled into the
- library, but use null mutexes and condition variables. The
- remote mutex library shall run properly on single-threaded
- platforms, so it compiles as usual.
-
-Wed Nov 15 01:05:38 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Fixed a bunch of minor problems with the SGI port. Things
- should work now on IRIX 5.3!
-
- * man/man3: Completely regenerated all the manual pages to
- reflect all the recent updates.
-
- * libsrc: Added ACE_TRACE macros to every single method in ACE!
- This will help with debugging...
-
-Wed Nov 15 00:26:40 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * The token library should now compile on platforms which do not
- support threads. All token components will be compiled into the
- library, but use null mutexes and condition variables. The
- remote mutex library shall run properly on single-threaded
- platforms, so it compiles as usual.
-
-Tue Nov 14 01:58:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * tests/CORBA: Added a new test to illustrate the
- ACE_MT_CORBA_Handler.
-
- * libsrc/ASX/Task.C (ACE_Task_Exit): Fixed a niggling problem with
- ACE_Task_Exit. Originally, if a thread exited via an implicit
- ACE_Thread::exit() (i.e., "falling off the end of the
- ACE_Task::svc_run function) then the ACE_Thread_Control on the
- thread stack would automatically unregister the thread from the
- ACE_Thread_Manager. However, this did *not* occur if a thread
- explicitly called ACE_Thread::exit() since in that case the
- destructor for ACE_Thread_Control never got called. The
- solution to this is a trivial change to ACE_Task_Exit, which now
- maintains an instance of ACE_Thread_Control internally, which
- will automatically be released when the thread-specific
- thread-exit-hook destructor gets called to cleanup upon thread
- exit. Since this happens regardless of whether the thread
- terminates implicitly or explicitly the ACE_Thread_Manager will
- always be able to clean up it's internal resources (unless the
- process exit()s, which is a whole different issue... ;-)).
-
- * Changed all occurrences of ACE_CORBA_Handler to
- ACE_ST_CORBA_Handler. Now we've got two types of
- CORBA_Handlers: single-threaded (ST) and multi-threaded (MT).
- Take a look at ./apps/Orbix-examples/Event_Comm/{Supplier,Consumer}
- for an example of how to leverage this in a portable manner!
-
- * libsrc/CORBA/CORBA_Handler: Totally redesigned the ACE
- CORBA_Handler stuff so that it now uses the Singleton pattern
- explicitly, rather than using the half-baked static method
- version... Changed the test code to reflect this update!
-
- * libsrc/CORBA/CORBA_Handler.C (activate_service): Changed the
- check so that if <service_name> == 0 then we don't try to do a
- putit (previously, this check used <marker_name>, which is less
- useful...).
-
- * libsrc/CORBA/CORBA_Handler.C (activate_service): Removed the
- <default_iterations> flag from the constructor so that we can
- make the CORBA_Handler and the MT_CORBA_Handler equivalent.
-
- * include/ace/sysincludes.h: Added a new macro called
- ACE_THREAD_EXIT_HOOK that enables application threads
- (including the main thread) to register a Task * who's
- close method will automatically be called when the thread
- exits, either implicitly (by falling off the end) or explicitly
- (by a thread calling ACE_Thread::exit ()).
-
- * libsrc/ASX/Task: Moved ACE_Task_Exit into the interface part of
- ACE_Task so that Irfan can maybe use this in his stuff ;-).
-
- * libsrc/Misc: Incorporated the ACE_Date_Time class into the
- release. This is an *interface* for a system independent
- representation of date and time. Implementation will follow...
-
- * libsrc/CORBA: Added a new MT_CORBA_Handler, which makes it
- very straightforward to integrate the ACE_Reactor with
- multi-threaded (MT) Orbix.
-
- * libsrc/Threads/Token.C: Yow, fixed a dumb problem in Tokens.C
- where I was failing to include the *.i file if we weren't
- compiling with inlining on!!!!
-
-Mon Nov 13 01:13:37 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/ASX/Message_Block: Added several new methods to
- Message_Block to allow users to access and set various flags.
- Thanks to Alex V Maclinvosky <alexm@teltrunk1.tait.co.nz> for
- suggesting this and providing a prototype implementation.
-
- * include/ace/sysincludes.h: Added a new macro called ACE_NDEBUG
- that can be used to toggle support for "live object dumping".
- If this macro is enabled then
-
- * libsrc/Misc/Dump.h: Added support for "live object dumping" into
- ACE. This technique is implemented with the "External
- Polymorphism" pattern described in a paper available at
- http://www.cs.wustl.edu/~schmidt/EuroPLoP-96.ps.Z.
-
- * libsrc/Threads: Added new classes called *_Process_* and
- *_Thread_* for ACE_RW_Mutex, ACE_Barrier, ACE_Condition, and
- ACE_Semphaore. This will allow programmers explicitly state the
- scope of their locks more explicitly and will also facilitate
- portability to Windows NT...
-
- * libsrc/Threads: Updated the constructors of all the Synch and
- Synch_T classes to take an option const char * called "name."
- At the moment, this doesn't do anything, but when we port to
- Window NT it will be used to ensure that we can name our
- process-global synchronization objects.
-
- * libsrc/Threads/Synch: Added a new tryacquire method to
- ACE_RW_Mutex to be consistent with acquire and release...
-
- * libsrc/Threads/Synch.C (ACE_Mutex): Added a new "name" parameter
- to an ACE_Mutex in order to support process-semantics on NT...
-
- * include/ace/sysincludes.h: Added a #define for EDEADLK in case
- some systems don't support it (this is needed by the new
- ACE_*_Token stuff).
-
-Sun Nov 12 14:17:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/Name_Server: Modified the client and server test programs
- so that they can both be linked statically and/or dynamically.
- If svc.conf is present then dynamic linking is used, otherwise
- static linking is used. This makes it much easier to test!!!
-
- * apps/Name_Server/client/lib/Naming_Context.C (local): Changed
- things a bit so that if our server host name is "localhost" then
- we assume we are local no matter what...
-
- * apps/Name_Server: Moved directories around a bit so that all the
- tests and libs for the client/server portions of the
- ACE_Name_Server build correctly...
-
- * apps/Name_Server/server: Replaced the ad hoc Name_Acceptor and
- Name_Handler to use the official ACE_Acceptor and
- ACE_Svc_Handler... This cleans up the code considerably...
-
- * libsrc/Threads/Synch: Added a new wrapper for the the UNIX file
- locking mechanism called ACE_File_Lock. This has the same
- interface as the other locking mechanisms (e.g., ACE_Mutex and
- ACE_Semaphore). Therefore, it can be used in the ACE_Guard
- class!
-
-Sat Nov 11 13:53:48 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Shared_Malloc/Memory_Pool: Improved MMAP_Memory_Pool so
- that it will be smarter about remapping the file if we aren't
- trying to force a fixed addr to be used for the mapping. In
- particular, if we *aren't* forcing a particular address, the new
- solution will be more flexible and allow the OS to determine
- where to remap the memory should we need to grow the backing
- store and the mapping range...
-
- * libsrc/Misc/Set: Implemented a simple version of the
- Unbounded_Set class and its iterator.
-
- * libsrc/Misc/SString: Changed all the implementations of methods
- in SString classes to use new/delete rather than
- strdup()/free().
-
- * apps/Name_Server/client/Name_Proxy: Changed rcv_reply() to
- recv_reply().
-
- * apps/Name_Server/client/Name_Proxy: Modified ACE_Name_Proxy so
- that the constructor and open take an ACE_Synch_Options.
-
- * apps/Name_Server/client/Name_Options.C (ACE_Name_Options): Added
- a default for the Name_Space directory called
- (ACE_DEFAULT_NAMESPACE_DIR) to the testconfig.h file...
-
-Sat Nov 11 00:24:37 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * tests/Tokens/test_token_manager/test_token_manager.C: The token
- manager has a working deadlock detection algorithm.
- ACE_Local_Mutex uses this to report deadlock situations.
- Changes were made to ACE_Local_Mutex to fix a couple bugs which
- were causing deadlock. Also, a new test application has been
- added to test deadlock detection using the local mutex.
-
-Fri Nov 10 17:16:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Mem_Map/Mem_Map.h: Changed the type of <length_> from
- long to size_t.
-
- * tests/Threads/test_thread_manager.C (main): Added a main() for
- the case when there's
-
- * tests/ASX/UPIPE_Event_Server/event_server.C (main): Fixed a
- typo that was causing problems on SunOS 4.x.
-
- * tests/Service_Configurator/IPC-tests/client/local_spipe_client_test.C:
- added #include "ace/Log_Msg.h" (why was this working?!).
-
- * include/makeinclude/rules.lib.GNU: Changed the order of operations
- in rules.lib.GNU from
-
- $(AR) $(ARFLAGS) $@ $?
- -$(RANLIB) $@
- -chmod a+r $@
-
- to
-
- $(AR) $(ARFLAGS) $@ $?
- -chmod a+r $@
- -$(RANLIB) $@
-
- to keep ranlib happy on SunOS 4.x.
-
- * apps/Time_Server: Added a Makefile
-
- * include/ace/sysincludes.h: Removed the <termios.h> include
- since it was causing major problems on SunOS 4.x...
-
- * apps/Name_Server/Naming_Context.C: Fixed up a couple of problems
- with casts. Thanks to Jack Erickson <jack@cibc.com> for
- pointing this out.
-
-Thu Nov 9 15:49:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Synch_T: moved Atomic_Op from ./Misc to ./Threads
- and merged it into the Synch_T files. This makes more sense as
- a place to put it...
-
- * libsrc/Misc/SString.C (operator +=): Fixed a typo that would
- have caused mistakes when memcpy() was used. Thanks to Prashant
- Jain <pjain@wuerl.wustl.edu> for noticing this.
-
-Wed Nov 8 22:36:51 1995 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * libsrc/Reactor/Reactor.C (TOKEN_GUARD): The reactor now uses the
- TOKEN_GUARD macro. The Reactor can now be conditionally
- compiled with ACE_REACTOR_HAS_DEADLOCK_DETECTION to use the new
- ACE_Local_Mutex in conjunction with the ACE_Token_Manager to
- detect deadlock. The deadlock detection algorithm has not yet
- been implemented, but the hooks are now in place.
-
- * libsrc/Tokens: This subdir includes ACE's new Token library.
- Check out libsrc/Tokens/README for more info.
-
- * tests/Tokens: There are a couple test applications for the new
- Token library. See tests/Tokens/README for more info.
-
- * apps/Token_Server: This directory contains some new client
- interfaces to the old ACE TokenServer, now Token_Server. There
- are also some example use cases included in this directory. As
- always, see apps/Token_Server/README for more info.
-
-Wed Nov 8 00:14:55 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/IO_SAP: Added the new classes for IO_SAP from
- Gerhard Lenzer (lenzer@csaserv.erlh.siemens.de). This
- eliminates UNIX I/O-specific features from ACE.
-
- * libsrc/Misc/Set: Added a new find() method to each of the
- ACE_*_Set classes...
-
- * include/ace/sysincludes.h (ACE_ALLOC_HOOK_DECLARE): Changed
- enum __Ace { __ACE } to struct __ACE {}. I think this
- will cause less problems with M.I...
-
- * libsrc/ASX/Message_Block: Added a new "allocator" parameter to a
- Message_Block. This allows the memory stored by a Message_Block
- to come from someplace besides the normal heap (e.g., a shared
- memory segment!).
-
- * libsrc/ASX/Message_Block.C (ACE_Message_Block): Yow, fixed a bug
- in the destructor where ACE_BIT_ENABLED was being used in place
- of ACE_BIT_DISABLED! I think this was causing a memory leak...
-
- * libsrc/Reactor/Reactor: added a pair of methods that allow a
- thread to set/get the notion of who "owns" the event loop. Only
- the owner of the loop can do a handle_events() call. Also
- changed things so that the requeue_position() are available for
- both threaded and non-threaded implementations (just to have a
- uniform interface...).
-
- * libsrc/ASX/Message_Block: added a new constructor and a new
- init() method that just assume ownership of a char * passed
- as the parameter. Note that this does *not* set any other
- fields in the Message_Block and is only used to ferry around
- totally opaque data in the Message Block!
-
-Tue Nov 7 00:52:15 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * tests/Log_Msg/test_log_msg.C (main): Added some new tests to
- make sure that op_status() and errnum() work on ace_log_msg.
- Thanks to Tim Harrison for these tests.
-
-Mon Nov 6 12:55:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Thread_Specific: Changed a couple of places in
- the Thread_Specific code so that key_ is initialized to 0 and
- the ts_obj * is initialized to 0. If these *aren't* 0 then
- weird bugs happen on Solaris... Thanks to Tim Harrison for
- noticing this and suggesting the fix!
-
- * libsrc/Threads/Synch_T: Added an accessor method to obtain
- the underlying mutex within ACE_Condition.
-
- * libsrc/Threads/Synch.C (ACE_Process_Mutex): Added a dummy
- argument of type const char * to ACE_Process_Mutex. This is in
- anticipation of the info required in Windows NT to support a
- named process-wide Mutex. On UNIX, this argument is ignored...
-
-Fri Nov 3 19:02:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/SOCK_SAP: Back from C++ World... Fixed a couple
- of typos in SOCK_Dgram_Bcast and SOCK_CODgram that included the
- *.i files multiple times... Thanks to Alex V Maclinvosky
- <alexm@teltrunk1.tait.co.nz> for reporting this.
-
-Tue Oct 31 02:12:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Reactor: Modifed the MT_SAFE Reactor so that the
- its open() method keeps track of which thread originally created
- it. This thread is then considered the "owner" of the Reactor.
- If a different thread tries to run the handle_events() method
- then an error is returned.
-
- * libsrc/ASX/Task.C: Added a "group id" field to the ACE_Task.
- This can be used to suspend and resume a group of tasks
- atomically. Also added default suspend() and resume() methods
- that do just that!
-
- * libsrc/Reactor/Reactor: Made the open() method
- thread-safe. Thanks to Detlef Becker (beckerd@erlh.siemens.de)
- for pointing out the need for this.
-
-Mon Oct 30 00:02:53 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Shared_Malloc/Memory_Pool.C (ACE_MMAP_Memory_Pool):
- Made it possible to configure the ACE_MMAP_Memory_Pool with a
- (backing_store_) file name so that it is possible for multiple
- processes to share one wellknown file, as well as to have
- multiple pools per process. Check out the
- ./tests/Shared_Malloc/test_malloc.C file for an example of how
- this works (try the -p -e -L10000 -t3 options).
-
- * libsrc/Reactor/Reactor: Moved handler_i into the *.C file to
- avoid problems with inline functions on HP/UX.
-
- * libsrc/Misc/SString: Added a new class called ACE_CString. This
- class is similar to ACE_WString (which has "wide character"
- size), though CString has regular "char" size. Note that both
- of these classes are "true" string classes, unlike ACE_SString,
- which is a very simple string class that is only to be used for
- very specific purposes...
-
- * libsrc/Shared_Malloc/Memory_Pool.C (acquire): Fixed an
- "off-by-one" error in ACE_MMAP_Memory_Pool::acquire() that was
- causing an extra byte to be written to the backing store file...
- This was causing the ./tests/Shared_Malloc/test_malloc.C program
- to fail when -p was given. After this fix the test works
- again... (thank God!).
-
-Sun Oct 29 22:43:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Shared_Malloc/Malloc: Added two new classes:
- ACE_Allocator and ACE_Allocator_Adapter. ACE_Allocator uses
- inheritance and dynamic binding to provide extensible mechanisms
- for allocating and deallocating memory. ACE_Allocator_Adapter
- implements the Adapter pattern to enable ACE_Allocator to be
- used with instantiations of the ACE_Malloc<> template class.
-
-Sat Oct 28 13:51:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * tests/ASX/Event_Server: Added a new directory called
- UPIPE_Event_Server, which tests a version of the Event_Server
- that is instantiated with ACE_UPIPE_* IPC mechanisms,
- rather than by the ACE_SOCK_* mechanisms.
-
- * libsrc/IPC_SAP/Addr: Created a new file called UPIPE_Addr.h.
- This file contains a typedef of ACE_SPIPE_Addr to
- ACE_UPIPE_Addr. The purpose of doing this is to "logically"
- decouple the ACE_UPIPE* classes from the ACE_SPIPE* classes
- (even though they share the same *physical* representation at
- this point...).
-
- * libsrc/IPC_SAP: Fixed a small bug in TLI_Connector.connect() and
- SOCK_Connector.connect() that failed to set the
- new_stream::handle_ to ACE::INVALID_HANDLE when the connection
- failed. Thanks to the ever-astute Mark Patton
- (mark_patton@tx72.mot.com) for noticing this.
-
-Thu Oct 26 15:08:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * tests/Threads: created a new test program called
- test_thread_manager.C that tests the new semantics for managing
- groups of threads.
-
- * libsrc/Reactor/Signal.C (ACE_Sig_Action): Added a new method
- that allows me to create a Sig_Action object that contains both
- the handler and the signal to register for. This handler is
- register to handle the signal in the constructor of the
- object...
-
- * libsrc/Threads/Thread_Manager: enhanced the Thread_Manager to
- add support for operations (i.e., suspend, resume, kill) on a
- group of threads.
-
- * libsrc/Threads/Thread_Manager: Added a new method that allows
- the Thread_Manager to resize itself automatically when it's
- internal table gets full.
-
- * libsrc/Threads/Thread_Manager: Updated the return value of
- Thread_Manager::spawn() and Thread_Manager::spawn_n() so that
- they return -1 on failure *and the group id* on success.
- Originally, they returned 0 on success, but this new return
- value is more useful since it can be used to control groups of
- threads atomically.
-
-Wed Oct 25 01:03:32 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/Name_Server: Began integrating the newly donated name
- server into ACE. There are a number of dependencies on
- RogueWave that must be removed, but things are looking good so
- far.
-
- * libsrc/Misc/Set: Changed the name of ACE_Unordered_Set to
- ACE_Fixed_Set to be consistent with the ACE Stack classes...
-
- * libsrc/Misc/Set: Added new ACE classes called ACE_Unbounded_Set,
- ACE_Bounded_Set, ACE_Unbounded_Set_Iterator, and
- ACE_Bounded_Set_Iterator to deal with ACE name service
- stuff.
-
- * libsrc/Misc/SString: Added a new class called ACE_WString that
- gives a very simple "wide-character" string representation for
- ACE. This is needed for the ACE name service stuff.
-
- * libsrc/Misc/SString.C (operator =): Fixed this so that ::strdup
- is matched up with ::free, rather than with delete...
-
- * libsrc/Log_Msg/Log_Msg.C (log): Updated the ACE_Log_Msg class to
- store an ostream * in thread-specific storage. This can be used
- in conjunction with the dump() method on each ACE class, as well
- as with the ACE_ERROR and ACE_DEBUG logging macros.
-
-Tue Oct 24 00:19:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added a definition of the dump() method to every class in ACE in
- anticipation of the changes requested for Siemens.
-
- * Changed all occurrences of ACE_Signal_* to ACE_Sig_* to make the
- ACE naming of signal handling wrappers consistent.
-
- * libsrc/Threads/Thread: Fixed some obscure bugs with the way that
- ACE_Thread was compiling on platforms that don't support
- threads.
-
- * include/ace/config-irix*.h: Removed all TLI support from the SGI
- platform. It seems to be totally screwed up from the tests that
- I've run and there's no sense in bending over backwards to
- support an IPC API that is brain-damaged to begin with...
-
- * apps/Logger/Service_Configurator_Logger/Thr_Server_Logger: Fixed
- up the code so that the Thr_Logging_Server stuff will compile
- correctly even for platforms that lack threads!
-
- * libsrc/Connection/Strategies: Added new strategies that provide
- Singleton creation and Process concurrency policies.
-
- * libsrc/Connection/Connector.C (handle_close): Make sure that all
- pending timer objects are removed from the Reactor's timer queue
- when a Connector shuts down. In addition, make sure to remove
- and delete all dynamically allocated ASTs, as well. Thanks to
- Karl-Heinz Dorn (kdorn@erlh.siemens.de) for suggesting this.
-
- * libsrc/Threads/Thread_Manager.C (wait): Modified wait() so that
- it now takes an ACE_Time_Value *, which can be used to wait
- until all threads terminate or a timeout occurs...
-
- * libsrc/Threads/Thread_Manager: Moved Thr_Descriptor from within
- the ACE_Thread_Manager class to become ACE_Thr_Descriptor at
- file scope. This is in anticipation of the cool new thread
- manager stuff on the way...
-
- * libsrc: Updated every class in ACE to include a "dump" method
- with the signature "void dump (void);" This method soon will be
- tied into the ACE_Dump mechanism to allow all live objects in
- ACE to have their state dumped automagically on-demand. This is
- useful for debugging and tracing etc.
-
- * libsrc: Updated every class in ACE to include a "Alloc hook."
- This hook will enable all ACE classes to be allocated from a
- particular memory pool.
-
- * include/makeinclude/rules.local.GNU: fixed the clean target to
- delete the *.rpo files (else gcc -frepo can get some crazy
- errors) and combines all rm-commands for the target realclean
- into one command (in some cases the last two lines do not have
- any files to delete, in which case rm produces an usage
- message). Thanks to John Huchinson (hutchiso@epi.syr.ge.com)
- for the patch.
-
- * libsrc/IPC_SAP/Addr/INET_Addr: Fixed all the uses of gethost*
- and getserv* to use the reentrant get*_r functions if
- ACE_HAS_REENTRANT_FUNCTIONS is set and ACE_MT_SAFE is set.
- Thanks to Bill Tang <tang@tekats.com> for suggesting this.
-
- * libsrc/Misc/OS: Started adding support for the POSIX *_r
- functions to the OS class.
-
- * include/ace: Added a new #define called
- ACE_HAS_REENTRANT_FUNCTIONS. This indicates that the platform
- supports reentrant functions (i.e., all the POSIX *_r functions
- like gethostbyname_r).
-
-Mon Oct 23 21:15:50 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * include/makeinclude/platform_irix5.3.GNU (LIBS): Removed the
- link of the nsl lib since it seems not to be present on this
- platform. Thanks to Karel Zuiderveld
- <Karel.Zuiderveld@cv.ruu.nl> for noticing this.
-
- * libsrc/IPC_SAP/Addr/INET_Addr.i (operator ==): Enhanced the
- semantics of comparison to check both the port number and IP
- address. Thanks to Mark Patton (mark_patton@tx72.mot.com) for
- suggesting this.
-
-Thu Oct 19 00:10:28 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/Addr/INET_Addr.C (set): Fixed a stupid bug that
- failed to set errno appropriately if things go wrong with this
- method. Thanks to Mark Patton (mark_patton@tx72.mot.com) for
- noticing this!
-
-Sat Oct 14 12:07:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Thread_Manager: Modified the Thread_Manager so
- that even in the case where we are compiling for non-MT systems
- the Thread_Manager still has the same method interface (all of
- which are no-ops).
-
-Wed Oct 11 00:12:57 1995 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu)
-
- * Finished commenting all the classes in ACE. Updated all manual
- pages accordingly.
-
-Fri Oct 6 14:17:17 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * tests/ASX/Event_Server/Event_Server: Changed
-
- ACE_SOCK_Acceptor &sa = (ACE_SOCK_Acceptor &) *this->acceptor_;
-
- to
-
- ACE_SOCK_Acceptor &sa = this->acceptor_->acceptor();
-
- Thanks to Dieter Quehl (quehl@erlh.siemens.de) for suggesting
- this.
-
-Thu Oct 5 00:22:56 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/ASX/Map_Manager: Added a new find() method to the
- Map_Manager. This method only checks for the existence of an
- EXTERNAL_ID, and doesn't return the INTERNAL_ID.
-
- * Introduced the new "trait"-based *_Connector, *_Acceptor, and
- *_Stream interfaces for all the IPC_SAP classes. Basically, for
- each class like
- {SOCK,TLI,SPIPE,etc,}_{Acceptor,Connector,Stream}, there's now a
- typedef for the appropriate type of ACE_*_Addr subclass and the
- appropriate type of ACE_*_Stream class. For example, here's
- what's in ACE_SOCK_Acceptor (same goes for ACE_SOCK_Connector):
-
- class ACE_SOCK_Acceptor
- {
- public:
- // ...
-
- // = Traits.
- typedef ACE_INET_Addr PEER_ADDR;
- typedef ACE_SOCK_Stream PEER_STREAM;
- };
-
- Once C++ compilers can grok template typedefs correct, this new
- approach will allow much greater simplification of code, so that
- template classes like
-
- template <class SVC_HANDLER, class PEER_ACCEPTOR, class PEER_ADDR>
- class ACE_Acceptor { /* ... */
- virtual int open (const PEER_ADDR &);
- };
-
- that are currently used like this:
-
- ACE_Acceptor <My_Svc_Handler, ACE_SOCK_Acceptor, ACE_INET_Addr> acc;
-
- can be replaced with
-
- template <class SVC_HANDLER, class PEER_ACCEPTOR>
- class ACE_Acceptor { /* ... */
- virtual int open (const PEER_ACCEPTOR::PEER_ADDR &);
- };
-
- that are used like this:
-
- ACE_Acceptor <My_Svc_Handler, ACE_SOCK_Acceptor> acc;
-
- i.e., the ACE_SOCK_Acceptor maintains a "trait" that the
- ACE_Acceptor uses to determine the appropriate addr. This is
- more concise and less error-prone than the current scheme that
- requires you to pass into the ACE_INET_Addr separately (ugh).
-
- Note that the trick to making all this work is to typedef the
- PEER_ADDR trait into the ACE_SOCK_Acceptor class, as follows:
-
- class ACE_SOCK_Acceptor {
- public:
- typedef ACE_INET_Addr PEER_ADDR; // Trait...
- };
-
- Unfortunately, none of the C++ compilers (e.g., SunC++ 4.0.1,
- G++ 2.7.0) support this stuff yet... Therefore, I've added
- a set of macros that that will toggle back and forth between
- whichever approach works, depending on the setting of
- ACE_HAS_TEMPLATE_TYPEDEFS. Hopefully, over time compilers will
- support this stuff correctly and life will become easier.
-
- * libsrc/ASX/Message_Queue: Changed all occurrences of the S_MUTEX
- and S_CONDITION macros to ACE_SYNCH_MUTEX and
- ACE_SYNCH_CONDITION in order to conform to the new ACE namespace
- control conventions.
-
- * libsrc/Connection/Acceptor: Modified the Acceptor class to split
- it into two classes: ACE_Acceptor (which implements a very
- simple, very concise version of the Acceptor pattern, without
- all the extra strategy mechanisms, etc.). These strategies have
- now been factored out into a new class called
- ACE_Strategy_Acceptor. The point of these changes is to "keep
- simple things simple, but enable powerful extensions when
- necessary." All the test programs that utilized the earlier
- strategy version of the Acceptor have been updated to the the
- Strategy_Acceptor instead.
-
- * libsrc/Connection/Connector: added two new protected methods,
- connect_svc_handler() and activate_svc_handler(). These methods
- allow subclasses to override the Connector's strategies for
- connection establishment and concurrency. In addition, it makes
- the pattern much easier to explain via the Connector pattern and
- also is more similar to the Acceptor.
-
-Wed Oct 4 18:45:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/Orbix-Examples/Event_Comm: Fixed the examples in this
- directory so that they compile with the new ACE.
-
-Tue Oct 3 17:33:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * include/makeinclude/rules.nested.GNU: Added support so that
- ACE can now be built in parallel using the -jN option of GNU
- make. To accomplish this, just type
-
- % make MAKEFLAGS=-j2
-
- on the command line and the "-j2" flag will be passed through to
- the make hierarchy. Once the SunC++ compiler supports parallel
- makes correctly (Template.DB causes problems) this will allow me
- to tke advantage of my new dual-CPU SPARCstation 20!!!
-
-Mon Oct 2 13:34:14 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Connection: Cleaned up some of the code related to
- Time_Values * by adding a new method call time_value() to the
- ACE_Synch_Options class.
-
- * libsrc/Service_Config/Service_Record: Changed things a bit so
- that we don't have to include "ace/Stream.h" in
- Service_Record.h, but instead use forward decls of the
- appropriate types. This breaks a circular dependency that was
- causing problems for GNU C++. Thanks to John Hutchinson
- (hutchiso@epi.syr.ge.com) for finding this problem.
-
-Sat Sep 30 13:45:08 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Changed all uses of typedef PARENT to inherited, which is less
- obtrusive.
-
-Fri Sep 29 01:33:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Misc: Completed the new OS class, which will be used
- shortly to remove all direct UNIX system calls in ACE.
-
- * libsrc: Completed redocumented the header files for almost all
- of ACE. The goal was to document all the methods in all the
- classes. This has most been achieved (only a few minor changes
- remain). The result is *much* better manual page entires in
- ./man/man3, as well as much more consistent header files and
- overall documentation for ACE.
-
- * libsrc/Reactor/Reactor: Changed all uses of get() to
- handler_i(). Also changed the check_connections() method to
- check_handles(). Note that all these changes are invisible to
- apps...
-
-Thu Sep 28 01:22:36 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/Addr/SPIPE_Addr: Changed all occurrences of
- {get,set}_user_id() and {get,set}_group_id() to user_id() and
- group_id() in order to be more consistent with other parts of
- ACE.
-
- * libsrc/ASX/Task.C (module): Modified the implementation of
- several Task helper methods (e.g., sibling()) so that they don't
- crash if there is not Module associated with the Task.
-
- * libsrc/ASX/Stream: Removed the sync_ data member from the
- private part of Stream since it didn't seem to be used for
- anything.
-
- * libsrc/ASX/Map_Manager.C (bind): Changed the type of the INT_ID
- to bind() from INT_ID to const INT_ID &.
-
- * libsrc/IPC_SAP/Addr/Addr: Moved some methods around in the *.i
- file to the *.C file in order to be smarter about inlining.
-
- * libsrc/Misc/Auto_Ptr.h: Added a new pair of classes called
- "auto_ptr" and "auto_array_ptr". These implement the ANSI/ISO
- C++ standard auto_ptr mechanism, which helps to write
- exception-safe code. The code is based on material from Jack
- Reeves (jack@fx.com) and Dr. Harald M. Mueller
- (mueller@garwein.hai.siemens.co.at).
-
- * libsrc/Threads/Synch_T.h (ACE_Null_Condition): Changed the
- behavior of Null_Condition::{signal,broadcast} so that they
- return 0 rather than setting errno = ETIME and returning -1.
-
-Wed Sep 27 00:16:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Synch: Fixed a bug with class ACE_Barrier: count_
- wasn't being set properly.
-
- * tests/Threads/test_barrier.C (main): Fixed a stupid bug
- in the ACE_Barrier -- the main function was exiting, thereby
- destroying the barrier!
-
- * tests/IPC_SAP/{SOCK,TLI}_SAP: Added test cases to exercise the
- new reuse_addr feature of SOCK_Connector and TLI_Connector.
-
- * libsrc/IPC_SAP/{SOCK,TLI}_SAP/{SOCK,TLI}_Connector: Implemented
- the new behavior for reusing a local address. Also fixed a few
- error cases that would have lead to descriptor leaks.
-
- * libsrc/IPC_SAP/SOCK_SAP/SOCK.C (open): Modified a few return
- values and comparisons to ease the transition to WIN32.
-
- * libsrc/ASX/Task.C (ACE_Task): Changed the behavior of
- Task::activate() so that it uses the
- ACE_Service_Config::thr_mgr() Singleton if no thread manager has
- been associated with a Task when it becomes an active object.
-
- * libsrc/Service_Configurator/Service_Config: Added a new static
- method to class Service_Config called thr_mgr(). This static
- method behaves as a "Singleton" and provides a convenient
- default thread manager that is available to all threads
- throughout a process.
-
- * libsrc/IPC_SAP: Changed all the IPC_SAP/*_SAP/*_Connector.[hiC]
- files and the Connection/Connector.[Chi] class in order to add
- "reuse_addr" behavior consistent with the Reactor. This enables
- the client to specify that the "local_addr" should be reused
- (e.g., via SOCKREUSEADDR), even if its "2 minute wait" time
- hasn't elapsed yet. The libsrc/Connection/Connector.[Chi] files
- were also changed to support this new interface.
-
- * libsrc/Log_Msg/Log_Msg.C (log): Fixed a mistake in Log_Record
- caused by the new thread-safe storage enhancement. The data
- being logged was being rounded up incorrectly. Thanks to Daniel
- Proulx (daproulx@qc.bell.ca) for reporting this.
-
- * libsrc/Reactor/Signal.i (operator): Made a minor change to the
- definition of operator struct sigaction * to work around a bug
- with the HP/UX C++ compiler (lame, lame, lame)...
-
- * libsrc/Service_Config: Changed all occurrences of
- ACE_Service_Config::reactor (which was originally a globally
- accessible public method of class ACE_Service_Config) to
- ACE_Service_Config::reactor () (i.e., made the reactor a
- Singleton implemented by a static method). This was long
- overdue and will fix all sorts of niggling problems with order
- of initialization since the reactor() method can do "lazy
- creation" of Reactors now, i.e., create one the first time it is
- referenced. In addition, changed the
- ACE_Service_Config::svc_rep to ACE_Service_Config::svc_rep () in
- the same manner.
-
- * Changed all occurrences of the form:
-
- *_Stream stream;
- *_Connector con (stream, remote_addr);
-
- if (stream.get_handle () == ACE::INVALID_HANDLE)
- ...
-
- To
-
- *_Stream stream;
- *_Connector con;
-
- if (con.connect (stream, remote_addr) == -1)
- ...
-
- which is cleaner and less error prone with respect to
- UPIPE_Stream (which doesn't have a valid handle once it's
- connected).
-
- * Changed all occurrences of get_handle () == -1 to get_handle ()
- == ACE::INVALID_HANDLE to help smooth the move to WIN32...
-
- * libsrc: Created a new directory called Shared_Memory and moved
- the Shared_Malloc_MM and Shared_Malloc_SV classes from the
- ./Shared_Malloc directory to here, where they are now called
- Shared_Memory_MM and Shared_Memory_SV. This is a better
- name/place for them since they never really had anything to do
- with malloc in the first place! What remains the Shared_Malloc
- is the Malloc.* and Memory_Pool.* classes, which are typically
- used for truly shared malloc/free.
-
- * apps/Gateway/Gateway: added new logic to the Gateway to enable
- it to specify which local port to bind() to.
-
-Tue Sep 26 21:17:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Connection/Strategies.C (open): Added a return 0; at the
- end of the ACE_Thread_Strategy::open method.
-
- * tests/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.C:
- Made CLI_Stream a template so that we don't have to worry about
- multiple includes of classes...
-
-Mon Sep 25 01:41:27 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP: Revised the close() method of TLI_SAP and
- SOCK_SAP so that they don't try to close down a handle that ==
- ACE::INVALID_HANDLE.
-
- * Changed all uses of ::free ((char *) ...) to ::free
- (ACE_MALLOC_T (...)) to work around inconsistent prototype
- problems with some compilers.
-
- * include/ace/sysincludes.h: Changed ACE_MALLOC_TYPE to
- ACE_MALLOC_T which is a bit less verbose...
-
- * libsrc/Service_Configurator/Makefile (BUILD): Fixed the argument
- to sed from -s (which is invalid) to -e (which is valid).
- Thanks to Doug Ritter (dougr@guilder.datalytics.com) for
- noticing this. Also used sed to do a more elegant fix on the
- age-old problem of inconsistent prototypes for free() and
- realloc()...
-
- * libsrc/IPC_SAP/UPIPE_SAP: Rewrote all the UPIPE_* classes to
- remove any dependencies on class UPIPE. This class appears to
- be unnecessary since it mimics the behavior of class SPIPE. To
- simplify the behavior of the UPIPE_* classes, they now inherit
- from the SPIPE_* classes where appropriate.
-
- * libsrc/IPC_SAP/UPIPE_SAP: Changed the semantics of the
- UPIPE_Connector and UPIPE_Acceptor connection methods so that
- they close down the SPIPE_Stream after a connection is
- established successfully. This is important to conserve
- descriptors.
-
- * libsrc/Misc: Created a new class called OS, which encapsulates
- *all* of the UNIX system calls and library routines within a
- single class. The rest of ACE will program only to the methods
- in this interface, which will make it much easier to port to
- other versions of UNIX (and WIN32!).
-
-Sun Sep 24 11:49:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/SOCK_SAP: Conditionally compile the LSOCK_* stuff
- if the OS platform (e.g., Linux) doesn't support it.
-
- * Changed all occurrences of ACE_HAS_NO_... to ACE_LACKS_... in
- all the config*.h files and the headers/source. This reads
- better...
-
- * Changed all uses of (1) Acceptor::peer_acceptor_ to
- Acceptor::acceptor(), (2) Svc_Handler::peer_ to
- Svc_Handler::peer(), and (3) Connector::peer_connector_ to
- Connector::connector() to make the code more abstract and
- resilient to future changes.
-
- * include/ace/sysincludes.h: Added a new macro called
- ACE_NEW_RETURN that provides a useful abstraction for
- expressions involving operator new since we can change memory
- allocation error handling policies (e.g., depending on whether
- ANSI/ISO exception handling semantics are being used).
-
- * libsrc/Threads/Thread.C: Changed things a bit so that if
- ACE_MT_SAFE == 0 then Thread::self() returns 1, regardless of
- whether the platform supports threads.
-
- * Went through the entire library and (hopefully) made sure that
- all calls to global system calls and library routines are
- prefixed with "::".
-
- * libsrc/Misc/Get_Opt.C: Changed this class to use the Log_Msg
- logging mechanism rather than stderr...
-
- * tests/Misc: Added a new test program to test the Profile_Timer.
-
- * tests/Reactor/misc: Added a new test program to test the
- Handle_Set.
-
- * libsrc/Service_Configurator: Changed the error messages in
- Svc_Conf.y and Svc_Conf.l to go to the ACE Log_Msg logging
- mechanism rather than stderr...
-
- * libsrc/Connection/Acceptor: Modified the Acceptor and
- Oneshot_Acceptor classes so that they take advantage of the new
- ACE_Creation_Strategy, ACE_Accept_Strategy, and
- ACE_Concurrency_Strategy components. This will make is easy to
- define Acceptors that can be flexibly configured to use various
- creation strategies (e.g., dynamic linking, singletons, dynamic
- memory creation, etc.) for making Svc_Handlers.
-
- * libsrc/Connection/Svc_Handler: Added several new classes --
- ACE_Creation_Strategy, ACE_Accept_Strategy, and
- ACE_Concurrency_Strategy -- that form the heart of the new
- ACE_Acceptor implementation. These classes define the creation,
- passive connection acceptance, and concurrency strategies
- employed by the Acceptor factory when it receives a connection
- from a client.
-
- * libsrc/Connection/Acceptor: Modified the implementation of the
- Acceptor and the Oneshot_Acceptor. These classes are no longer
- related by inheritance since they behave in fundamentally
- different ways and sharing code was making it hard to write and
- use these classes correctly.
-
- * libsrc/Misc/Misc: Moved the enum INVALID_HANDLE from IPC_SAP.h
- to Misc.h since this is actually more general than just the
- sockets stuff and we need to be portable to WIN32... Therefore,
- any code that originally said ACE_IPC_SAP::INVALID_HANDLE should
- now be ACE::INVALID_HANDLE.
-
- * Removed the ACE_OMIT_SERVICE_CONFIGURATOR flags. These are
- annoying -- anyone who wants to subset ACE should be responsible
- for doing this stuff.
-
-Fri Sep 22 22:36:33 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Thread_Spawn.C: Greatly simplified the
- implementation of Thread_Spawn by leveraging the new class Task
- semantics for activate(). Now, all the concurrency activation
- mechanisms necessary to create active objects are associated
- with a Task and all the Thread_Spawn needs to do is to define a
- new make_svc_handler() Factory Method to create a SVC_HANDLER
- and activate it!
-
- * libsrc/ASX/Task.C: Tightened up the semantics of Task::activate
- (which turns a passive object into an active object, i.e., one
- with its own thread). Now, if an object is activated more than
- once it ignores the other requests, unless the force_active
- parameter is enabled. Moreover, activate() now takes a
- parameter that indicates the number of threads to allocate for
- the Task. This makes it simple to have a "thread pool"
- associated with a Task.
-
-Thu Sep 21 00:49:55 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * tests/Connection: Updated the CPP-acceptor and CPP-connector to
- use the underlying Acceptor and Connector patterns more
- robustly. Also added new hooks to include a Service_Config
- component so that integrating this with the ACE dynamic linking
- scheme will be a snap!
-
- * libsrc/Connection/Acceptor.C: Revised the Oneshot_Acceptor to be
- robust in situations where it isn't given a Reactor *...
-
- * apps/Logger: Fixed a couple of minor problems with *.i files
- being included when __INLINE__ is set. This should help G++
- compiler ACE better...
-
- * libsrc/Reactor/Reactor: Enhanced the Reactor::notify() method so
- that it takes both an Event_Hander * and a Reactor_Mask, which
- it passes to the Reactor's main event loop thread via the pipe.
- The event loop thread uses this mask to determine which method
- to invoke. This new feature is due to the insight of Karl-Heinz
- Dorn (kdorn@erlh.siemens.de).
-
- * libsrc/Connection/Connector: Fixed a braino in
- Connector::handle_output, which was using ::getpeername() to
- check whether a connection has been established with a peer.
- Naturally, this only works for sockets, and doesn't work at all
- for TLI or SPIPEs...
-
- * libsrc/IPC_SAP/Addr/SPIPE_Addr.C (set): Changed the return type
- of this method to "int" in order to conform to the types
- expected by the Acceptor/Connector patterns.
-
- * Removed all uses of the global scope "::" for all variables and
- methods that are not UNIX system calls or library calls in
- preparation to change over to the new OS class (requested by
- Siemens).
-
-Wed Sep 20 14:39:08 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/SPIPE_SAP: Renamed the SPIPE_IO classes to
- SPIPE_Stream to be consistent with the other parts of the ACE
- library. Updated all parts of the library to reflect this
- change.
-
- * tests/Service_Configurator: Moved the current contents of this
- directory into a new directory called IPC-tests. Created a new
- directory called Connection-tests where the dynamic linking
- examples for Siemens will go.
-
- * libsrc/Reactor/Signal: Made a bunch of minor changes to support
- signal handling on SunOS 4.x platforms. Thanks to Aniruddha
- Gokhale <gokhale@cs.wustl.edu> for help with this.
-
- * libsrc/Threads/Synch.h: Modified the #ifdefs a bit so that
- Synch_T.h gets included regardless of whether ACE_HAS_THREADS.
-
- * libsrc/Threads/Synch_Options: Added a new set() method to make
- it possible to initialize the Synch_Options from outside the
- constructor.
-
- * libsrc/Connection/Svc_Handler.C: Added checks within the
- ACE_Svc_Handler so that if we are given a NULL Reactor we don't
- crash!
-
- * libsrc/Mem_Map: Tidied up this class and added comments to the
- header so that the class2man has something to generate manual
- pages from!
-
- * libsrc/Misc/Misc: Added a new method called "round_to_pagesize",
- which was previously in Mem_Map. This is a better place for it
- since other parts of ACE (e.g., Shared_Memory) use it.
-
- * libsrc/Misc/Misc: Added a new method called "get_file_size",
- which was previously in Mem_Map. This is a better place for it
- since other parts of ACE might want to use it.
-
-Tue Sep 19 00:24:41 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released a beta version of ACE 3.3.1 for G++ testing.
-
- * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram.C: Removed a stray INLINE
- that was causing problems for G++. Thanks to E. Jason Scheck
- <jasons@ims.com> for reporting this.
-
- * libsrc/IPC_SAP/Addr/INET_Addr: Improved the documentation for
- this class and also added new semantics to the constructor and
- set() method so that a "ip_addr:port_number" tuple can be given
- as a single string (e.g., "1234:tango.cs.wustl.edu" or
- "1234:128.252.166.57"). This is useful since it gives a uniform
- interface for addressing for Internet domain, UNIX domain, and
- SPIPE domain addresses... Updated the ./tests/Connection tests
- to use this form (which is nice since now they are all very
- orthogonal!)
-
- * tests/Connection: Created a whole new suite of tests that
- exercise the connection patterns for all of the relevant IPC
- mechanisms (e.g., SOCK_SAP, TLI_SAP, SPIPE_SAP, and UPIPE_SAP).
-
- * bin/clone.C: fixed the first #include so that it uses #include
- "ace/sysincludes.h". Thanks to Alex V Maclinvosky
- <alexm@teltrunk1.tait.co.nz> for noticing this.
-
-Mon Sep 18 01:52:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/ASX/Message_Queue.C (close): Fixed yet another problem
- with variables being defined in for loops. G++ is good for
- detecting this ;-).
-
- * libsrc/Threads: Moved all the template classes from Synch.* into
- Synch_T.* in order to make it possible to compile templates with
- G++. Thanks to E. Jason Scheck <jasons@ims.com> for suggesting
- this.
-
- * libsrc/IPC_SAP/UPIPE_SAP: Make a number of changes to ensure
- that all the UPIPE_SAP classes conform to the same interface as
- all the other ACE IPC classes.
-
- * Changed all occurrences of THR_FUNC to ACE_THR_FUNC to protect
- the global namespace better.
-
-Sun Sep 17 13:36:23 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * tests/ASX/Message_Queue: Fixed a typo in these test programs
- that caused a segfault since a vararg parameter was omitted on a
- call to the Log_Msg::log() method. Maybe iostreams isn't so bad
- after all... ;-)
-
- * apps/Logger/Service_Configurator_Logger/Thr_Server_Logger: fixed
- a stupid error that was caused by some mods I made after ECOOP
- to update the threaded logging server. When I changed the
- Thr_Logging_Acceptor so that it no longer inherited from the
- Logging_Acceptor I forgot to redefine the init() method...
-
- * man: Totally regenerated the ACE manual pages using the new
- versions of the OSE tools provided by Karl-Heinz Dorn
- (kdorn@erlh.siemens.de).
-
- * Changed all occurrences of MT_SYNCH and NULL_SYNCH to
- ACE_MT_SYNCH and ACE_NULL_SYNCH, respectively. This is
- consistent with the ACE naming conventions and had been an
- oversight when I renamed everything earlier.
-
- * Fully built and tested ACE with the __INLINE__ flag enabled.
- This will generate code with many small methods in the library
- inlined. Had to fix a bunch of minor things to allow this to
- work without compilation-order dependency problems.
-
- * libsrc: Made a bunch of changes to the way that header files are
- included internally to ACE in order to break compilation-order
- dependencies. This is necessary to support GNU G++'s lame
- handling of templates. None of this stuff should affect
- application code.
-
- * tests: Added a whole new slew of tests for the remaining parts
- of ACE that weren't currently included in ./tests. This stuff
- exercises ACE components like the Log_Msg logger and factors all
- the #if defined (DEBUGGING) code out of the ./libsrc directory
- tree and puts it in the ./tests directory tree, where it
- belongs.
-
- * Changed all uses of the error macros LM_* to ACE_* in order to
- avoid name collisions with other libraries, frameworks, and
- toolkits. In addition, changed all uses of the error enumerals
- LOG_ to LM_ in order to avoid a conflict with system #defines in
- <sys/syslog.h>.
-
- In order to change these automatically, I used the following
- UNIX command sequence:
-
- % find . -type f -print | xargs perl -p -i -e 's/LM_/ACE_/g'
- % find . -type f -print | xargs perl -p -i -e 's/LOG_/LM_/g'
-
-Sat Sep 16 11:55:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * tests/Threads: Added a new test for Thread_Specific storage.
-
- * Added a new platform/compiler configuration flag called
- ACE_TEMPLATES_REQUIRE_SOURCE that must be set for compilers
- (e.g., GNU G++) whose template mechanism must be able to
- see the source code (i.e., the *.C files). Changed *lots* of
- header files to enable this... Also had to change the
- corresponding *.C files so that they wouldn't get included
- twice...
-
- * libsrc/Connection: redid the implementation of Acceptor,
- Connector, and Svc_Handler to get more control over the scope of
- #defines like #define SH SVC_HANDLER, etc.
-
- * libsrc/Threads/Thread_Spawn: Totally redid the implementation of
- Thread_Spawn to use the Acceptor class template. This greatly
- reduces the amount of code to implement the Thread_Spawn!
-
- * libsrc/Threads/Thread_Spawn: Moved the Thread_Spawn
- implementation into the ./libsrc/Threads directory rather than
- in the ./libsrc/Service_Configurator directory since it deals
- with threading and thus belongs in the other place.
-
-Fri Sep 15 00:25:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Token.i (tryacquire): Added a cast to fix passing
- a const pointer to a function that was expecting a non-const.
- Thanks to E. Jason Scheck <jasons@ims.com> for reporting this.
-
- * libsrc: Added a bunch of changes to enable G++ to compile ACE.
- A lot of this involves moving around info in header files so
- that templates can be dealt with using the relatively lame GNU
- C++ repository scheme. Thanks to E. Jason Scheck
- <jasons@ims.com> for all his help in this.
-
- * libsrc/Synch: created Synch_Options.C out of Svc_Handler.C, so
- that Svc_Handler.C could be "template pure"; all the other files
- were already separated. Thanks to E. Jason Scheck
- <jasons@ims.com> for recommending this.
-
- * Makefile (clone): Added a tiny fix that solves a weird problem
- that arises with symbolic links on HP/UX. Thanks to Jam Hamidi
- (jh1@osi.com) for tips on how to fix this.
-
-Thu Sep 14 10:55:30 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/Gateway/Gateway/Channel.C (route_message): Updated the main
- routing code to check for whether a channel is_active()
- (i.e., is actually connected) before trying to send messages
- to it. This was originally done in the Set class iterator, but
- I revised that to make it more reuseable and to workaround bugs
- in the HP/UX compiler so I had to update the main code...
-
- * libsrc/Threads/Thread_Specific: Added a new method to called
- ts_object () to class ACE_Thread_Specific that get the
- thread-specific object for the key associated with this object.
- Returns 0 if the data has never been initialized, otherwise
- returns a pointer to the data. This is useful since now you can
- query a thread-specific storage mechanism to see if there's ever
- been a thread-specific object created *without* having to
- actually create one if one hasn't been created yet! Thanks to
- Detlef Becker (beckerd@erlh.siemens.de) for pointing this out.
-
- * include/makeinclude/platform_sunos5_sunc++_orbix.GNU (LIBS):
- Changed the default compilation strategy for SunOS 5.x machines
- to use -mt. This seems to be necessary to build robust
- libraries that are thread-safe. Thanks to Phil Mesnier
- <phil@yakko.envision.com> and Chris Cleeland
- <chris@envision.com> for hounding me until I changed the
- existing solution. If you *don't* want this behavior you need
- to remove -mt from the platform_macros.GNU file and and remove
- the ACE_HAS_THREADS and ACE_MT_SAFE flags, etc. from the
- config-sunos5.*.h files.
-
- * libsrc/Shared_Malloc/Memory_Pool.C (ACE_MMAP_Memory_Pool): Added
- a new parameter to the constructor called write_each_page that
- if enabled forces a write to each page to ensure that space is
- allocated from the file system (otherwise, we can end up failing
- due to optimisitic resource allocation...). Thanks to Phil
- Brooks <phil_brooks@mentorg.com> for detecting this issue and
- implementing a solution.
-
- * include/ace/sysincludes.h: Added #ifdef support for HP/UX, which
- fails to properly wrap <sys/mman.h> with an extern "C" block.
-
-Mon Sep 11 01:39:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Connection/Connector.C (handle_input): Changed the call
- to Svc_Handler::close() to accept the default value of 0 rather
- than -1... Thanks to Mark Seaborn
- <mseaborn@itthp1.comm.mot.com> for noticing this.
-
- * libsrc/Connection: Changed all uses of ADDR to PEER_ADDR to
- avoid a name clash in Linux... Thanks to James Morris
- <jmorris@aurora.apana.org.au> for finding this.
-
-Sun Sep 10 03:56:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Synch: Added support for "barrier
- synchronization" to ACE in the form of ACE_Barrier. Thanks to
- Bruce Worden (bruce@betsy.gps.caltech.edu) for suggesting this
- and pointing me in the right direction.
-
- * tests/Threads: Added a test for the new barrier synchronization
- mechanism.
-
-Sat Sep 9 11:58:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Reactor: Changed Reactor::max to Reactor::max3 to
- avoid problems with conflicting names of macros in Sun header
- files!
-
-Mon Sep 4 14:34:52 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Signal: The new ACE_Signal_Handlers mechanism
- appears to be working! There's a test in ./tests/Reactor/misc
- called test-signal.C that illustrates how all this works.
-
- * libsrc/Reactor/Signal: Added several new methods to
- ACE_Sig_Action to make life easier to implement the new
- ACE_Signal_Handler code...
-
- * libsrc/Reactor/Signal.C (ACE_Sig_Action): Changed the order of
- the arguments to the ACE_Sig_Action constructor. It's almost
- always the case that you want to vary the SignalHandler, but
- only rarely do you want to vary the mask or flags. By
- reordering this, it's easier to get the correct default values
- without adding extra junk...
-
-Mon Sep 4 01:11:29 1995 Tim Harrison (harrison@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/SOCK_SAP/SOCK_Dgram_Multicast: added support to
- allow a port to be reused for multicast sockets. This is useful
- if you are multicasting to multiple processes, some of which are
- on the same host!
-
- * libsrc/ASX/Map_Manager: Fixed an odd bug that must have gone
- undetected for a long time somehow. Basically, the "is_free_"
- field of the ACE_Search_Structure struct was never being set to
- it's correct initial value of 1. I don't know how this didn't
- surface before... At any rate, it is fixed now...
-
- * include/ace/sysincludes.h: Changed the inline methods for
- SET'ing and CLR'ing bits to be macros in order to get cheap
- polymorphic behavior... Also changed them to use the prefix
- "ACE_" to avoid namespace pollution. Changed all dependencies
- in the source code (only a few...).
-
- * libsrc/Reactor/Signal: Added a new class called
- ACE_Signal_Handlers, which subclasses from ACE_Signal_Handler.
- This new class implements the semantics required for Siemens.
- For example, this class allows multiple signal handlers to be
- registered for the same signal. It also makes SA_RESTART the
- default mode. Note that by default, the Reactor uses the
- original ACE_Signal_Handler semantics. If you want the new
- semantics, simply pass the Reactor a pointer to
- ACE_Signal_Handlers.
-
- * include/ace/sysincludes.h: Removed the automatic inclusion of
- ./libsrc/Misc/Misc.h from sysincludes.h since this was causing
- problems with include file ordering.
-
-Sun Sep 3 00:22:11 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Signal.C (remove_handler): Moved a definition of
- ACE_Sig_Action out of an inner block to avoid portability
- problems.
-
- * libsrc/ASX/Map_Manager: Improved the documentation of this class
- and fixed up a couple of problems with the scope of loop
- indexes.
-
- * libsrc/Misc/{Stack,Set}: Added this new file that contains a set
- of Stack and Unordered Set implementations. The Unordered Set
- is used in various places in ACE (e.g., libsrc/Reactor/Signal
- and apps/Gateway/Gateway/Routing_Entry).
-
- * libsrc/Log_Msg/Log_Msg: Moved the definition and declaration of
- Thread_Specific<Log_Msg> ace_log_msg from this directory to
- ./libsrc/Misc/Misc.h in order to cleanup the namespace and also
- to help make this work on DEC platforms...
-
- * libsrc/Reactor/Signal: Changed ACE_Signal_Handler from a static
- class to a non-static class in order to allow subclassing. This
- is necessary to support the Siemens requirements.
-
- * libsrc/Shared_Malloc/Memory_Pool: Modified ACE_MMAP_Memory_Pool
- so that it no longer stores the name of the backing store in a
- static character array (which made it impossible to have more
- than one of these at a time...). The new version stores the
- name in each ACE_MMAP_Memory_Pool object. It also selects a
- name that won't conflict with other names by using ::mktemp.
-
- * tests/Shared_Malloc/test_malloc.C (parse_args): Fixed two stupid
- omissions of "break" when parsing command-line arguments. Isn't
- C++ great?! (NOT)...
-
- * apps/Synch-Benchmarks: Came up with a killer solution to the
- nagging problem of POSIX Pthread's lack of an integral thread id
- (a la Solaris threads thr_self()). The solution leverages off
- of our new ACE_Thread_Specific wrapper to provide the necessary
- functionality. Thanks to Reginald S. Perry (perry@zso.dec.com)
- for triggering the thoughts that lead to this solution...
-
-Sat Sep 2 17:00:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/TLI_SAP/TLI_Acceptor: Changed the implementation
- of ACE_TLI_Acceptor so that ACE_TLI_Request is defined inside
- the TLI_Acceptor.C file (this is the so-called "Cheshire Cat"
- technique). This clean up the code and the global namespace a
- bit.
-
-Fri Sep 1 00:53:47 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released new version of ACE 3.3
-
- * libsrc/IPC_SAP/UPIPE_SAP/UPIPE.C: Fixed a small problem with
- failing to #ifdef this file correctly if we don't have
- threads... Thanks to John Morey (jmorey@hitel.com) for
- reporting this.
-
- * tests/ASX/CCM_App/svc.conf: Fixed the svc.conf file so that it
- looked in the .shobj directory rather than the .obj directory.
-
- * Released new version of ACE 3.2.9...
-
- * libsrc/Log_Msg/Log_Msg: Added a new field called "restart_" to
- the thread-specific storage. This will be used to control
- whether system calls are restarted when interrupted.
-
- * Changed inheritance syntax from
-
- class xxx
- : public yyyy
- {
- };
-
- to
-
- class xxx : public yyyy
- {
- };
-
- so that the OSE tools would work correctly.
-
-Thu Aug 31 00:12:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/UPIPE_SAP: Changed all uses of UPIPE_Addr to
- SPIPE_Addr since they were the same thing. This also allows
- much reuse of code...
-
- * libsrc/IPC_SAP/{TLI_SAP,SOCK_SAP,SPIPE_SAP}: fixed the
- "complete" method for these classes so that it uses the new
- ACE::handle_timed_complete() method in libsrc/Misc. This cleans
- up the code by merging common logic.
-
- * libsrc/IPC_SAP/{DEV_SAP,FILE_SAP,SPIPE_SAP}: fixed the "connect"
- method for these classes to conform to the API used by the
- SOCK_SAP and TLI_SAP wrappers. In addition, cleaned up the code
- so that common logic was pushed into a new method in libsrc/Misc
- called ACE::handle_timed_connect().
-
-Wed Aug 30 00:20:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Connection/Acceptor.C (open): Fixed this method so that
- it returns a value on all paths through the code...
-
- * libsrc/IPC_SAP/TLI_SAP/TLI.C (ACE_TLI): Moved the option
- allocation code from the TLI::open() method into the TLI
- constructor in order to make sure it is always called!
-
- * libsrc/IPC_SAP/DEV_SAP/DEV_Connector: Changed the signature of
- the DEV_Connector::connect method to allow users to specify
- flags, permissions, and timeouts (this is now consistent with
- other parts of ACE).
-
- * libsrc/IPC_SAP/FILE_SAP/FILE_Connector: Changed the signature of
- the FILE_Connector::connect method to allow users to specify
- flags, permissions, and timeouts (this is now consistent with
- other parts of ACE).
-
- * tests/IPC_SAP/TLI_SAP: Updated the test code to check the new
- timer support for connection establishment.
-
- * libsrc/IPC_SAP/TLI_SAP: Updated the code to make it conform to
- the interfaces provided by SOCK_SAP. This primarily affected
- the TLI_Acceptor and TLI_Connector classes in order to add
- support for timed connects and accepts.
-
- * libsrc/Reactor/Signal.C: Modified Signal_Handler::dispatch so
- that it saves/restores errno to prevent it from being corrupted
- by the handle_signal callback. Thanks to Detlef for suggesting
- this.
-
- * libsrc/Shared_Malloc/Memory_Pool: Changed the name of
- ACE_Local_Memory_Pool to ACE_Sbrk_Memory_Pool. Then added a new
- version of ACE_Local_Memory_Pool that uses the C++ operator new
- to acquire chunks of memory. This enables the ACE Malloc class
- to integrate with existing programs that use new/delete. Thanks
- to Karlheinz for suggesting this.
-
- * libsrc/IPC_SAP: Added the UPIPE mechanism donated by SIEMENS.
- This provides an intra-process IPC mechanism that has the same
- API as the interprocess and network mechanisms.
-
- * Reran catman on ./man/windex. Thanks to Dieter Quehl
- (quehl@csaserv.erlh.siemens.de) for reporting the need for this.
-
- * Released new version of ACE 3.2.9...
-
- * tests: Fixed a bunch of minor problems that occurred when
- building on HP/UX. Thanks to John Morey
- (jmorey@hitel.com) for reporting these.
-
- * apps/Gateway/Gateway/Peer_Message.h: Changed the default values
- of the parameters to Peer_Addr so they aren't trying to assign
- negative values to unsigned chars! Thanks to John Morey
- (jmorey@hitel.com) for noticing this...
-
-Tue Aug 29 18:52:17 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Thread/Thread_Specific: Changed the constructor so
- that it will take an initial TYPE *, which will be used to
- initialize the thread-specific object. This is necessary to
- support the changes to ACE_Task described in the following
- bullet.
-
- * libsrc/ASX/Task: Added a new class called ACE_Task_Exit to
- Task.C. This class is used in conjunction with
- ACE_Thread_Specific to keep exit information for a Task in
- thread-specific storage. This ensures that the Task::close()
- method will get called no matter how the thread exits (e.g., via
- Thread::exit() or by "falling off the end of Task::svc_run").
-
-Mon Aug 28 09:54:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released new version of ACE 3.2.9...
-
- * libsrc/Reactor/Handle_Set.C: changed the type of MSB_MASK from
- u_long to ACE_UINT32 to handle problems with the Alpha's 64 bit
- longs...
-
- * libsrc/Threads/Thread_Specific: Continued to try and get this
- class to build correctly on other platforms... I think I've
- just about got it working right now...
-
- * libsrc/IPC_SAP/IO_SAP/IO_SAP: Added installation flags that
- indicate whether the platform has terminal ioctl flags like
- TCGETS and TCSETS. I know that SunOS 5.x has these, but I'm not
- sure about other platforms...
-
-Sat Aug 26 13:55:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released new version of ACE 3.2.9...
-
-Fri Aug 25 09:05:09 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Thread_Specific.h: Fixed a typo that was causing
- this file to fail on HP/UX. Thanks to Neil Cohen
- (nbc@metsci.com) for finding this!
-
- * libsrc/IPC_SAP/DEV_SAP/DEV_IO: Added conditional support for
- getmsg/putmsg calls in the DEV_IO class. This will make things
- work correctly for platforms that don't support SVR4 STREAM
- pipes.
-
- * libsrc/IPC_SAP/FILE_SAP/FILE_IO: Added the same fixes to FILE_IO
- that I added to DEV_IO...
-
- * include/ace/sysincludes.h (MAXNAMELEN): Fixed a typo in
- sysincludes.h that caused problems for the G++ compiler.
-
- * libsrc/Connection/Acceptor.C (handle_close): Removed a
- diagnostic message that was getting printed if a
- Oneshot_Acceptor had already been removed from the reactor (it's
- ok for this call to fail). Thanks to Irfan Pyarali
- (ip1@cec.wustl.edu) for noticing this!
-
- * libsrc/ASX/Task.C (ACE_Task): Fixed a bug in the constructor
- that prevented a Message_Queue from being allocated
- automagically.
-
-Thu Aug 24 16:47:14 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * include/ace/sysincludes.h: added support for 64 bit machines so
- that Internet addresses are 32 bits, as they must be!
-
- * libsrc/Shared_Malloc/Malloc: Changed things so that MALLOC_STATS
- is now *off* by default... (also changed the name to
- ACE_MALLOC_STATS).
-
-Wed Aug 23 15:21:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * include/ace/config-osf1.h: Added support for thread-specific
- storage. Please let me know if this breaks on OSF/1!
-
- * libsrc/Threads/Thread: Added support for the thread-specific
- storage wrappers for both Pthreads and Solaris threads. Also,
- rearranged some of the code to emphasize similarities between
- Pthreads and Solaris threads.
-
- * libsrc/Threads/Thread_Specific: Updated this to remove "static"
- from all the data members in this class since those should be
- specific to an *instance* rather than to an instantiation of the
- particular template class. Tim claims this works...
-
- * libsrc/Threads/Token.C: Fixed a couple of typos that misspelled
- "assert" (jaysus...). Thanks to David Trumble
- (trumble@cvg.enet.dec.com) for noticing this.
-
- * libsrc/Threads/Token.C (release): Fixed a very stupid bug that
- was causing the Token never to become "unused"... No excuses
- for this, except that Pthreads is partly responsible ;-)
-
-Tue Aug 22 11:36:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/ASX/Task: Changed the behavior of task so that it doesn't
- try to delete the Message_Queue or Thread_Manager if it didn't
- allocate them! Thanks to Karl-Heinz Dorn
- (kdorn@erlh.siemens.de) for suggesting this fix.
-
- * libsrc/ASX/Message_Block: Changed the semantics for
- Message_Block::end() so that it returns a pointer to 1 past the
- end of the data. This is more consistent with toolkits like
- STL. Also changed the behavior of Message_Block::copy() so that
- it checks to make sure the data will fit in its buffer.
-
- * tests and apps: Revised a bunch of files to add #ifdef so that
- TLI tests and apps are not compiled if the platform doesn't
- support it...
-
- * Fixed a bunch of minor problems for HP/UX (which lacks TLI and
- other common OS features). Thanks to Mark Seaborn
- (mseaborn@itthp1.comm.mot.com) for noticing these.
-
-Mon Aug 21 00:19:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Misc: Changed the name of the class Argument_Vector to
- ACE_ARGV. This is a bit more concise... UNIX programmer will
- know precisely what argv is...
-
- * Updated all of ACE to use the new naming scheme, which prepends
- all ACE classes with "ACE_". This is an important change since
- it prevents ACE from polluting the namespace of applications
- (unless they also prefix "ACE_" in front of their classes, which
- is not very likely!).
-
- Since this change basically affects every single file in the
- entire release, as well as all existing user code I've written a
- perl script called "rename-ace.pl" to automate all of this.
- This script is in $WRAPPER_ROOT/bin. To use it, simply type:
-
- % find . -type f -print | egrep '[Chi]$' | xargs rename-ace.pl
-
- Note that you will need to change the first line of
- rename-ace.pl to point it to whereever perl is located on your
- system.
-
- I've tested this on the entire ACE source code base and it seems
- to work fine. Please be careful using it on your code, however,
- since it may conflict with names that you use. When in doubt,
- remove the '-pi' from the first line of the rename-ace.pl perl
- script and replace it with '-p' (which is non-destructive).
- Then run the commands above and check the output carefully.
- When you're convinced that everything is ok, add the '-pi' back
- again. Let me know immediately if you find any problems with
- this scheme!
-
- * libsrc/Connection/Acceptor.C: Added a virtual destructor to the
- Oneshot_Acceptor to make sure that descriptors are closed down
- correctly. Thanks to Irfan (irfan@wuerl.wustl.edu) for
- suggesting this.
-
- * libsrc: Change all occurrences of Shared_Memory to
- SV_Shared_Memory to firmly indicate the origins of this
- wrapper...
-
-Sun Aug 20 23:12:03 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP: added the IO_SAP, DEV_SAP, and FILE_SAP
- components donated by SIEMENS to the ACE release.
-
- * libsrc/ASX: Split the Message_Queue.* files into Message_Block.*
- and Message_Queue.* in anticipation of the Windows NT port...
-
-Fri Aug 18 13:54:09 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Thread_Specific: Move the operator->()
- method back into the *.C file in order to make HP/UX
- happy...
-
- * apps/Gateway/Peer: Removed the Options.* files since they
- weren't being used and they were causing problems on OSF/1...
-
- * libsrc/Misc/Profile_Timer: Factored common code together by
- making a new typedef called Rusage that defaults to either
- struct rusage or prusage_t, depending on installation flags.
- Fixed a couple places in the code that were depending on the
- prusage_t type (which is now the Profile_Timer::Rusage type...).
-
-Thu Aug 17 14:31:11 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Connection/Connector.h: Changed some typedefs in order to
- keep the Centerline compiler from crapping out. I can't
- *believe* how screwed up that compiler is when it comes to
- templates...
-
- * Released new version of ACE 3.2.9...
-
- * libsrc/Threads/Synch: Fixed a bunch of typos that showed up
- on OSF/1. Also tried to fix some other problems by removing
- "const" from all the methods...
-
-Wed Aug 16 22:26:24 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Thread_Specific.h: Fixed another stupid bug
- caused by a braino that failed to unconditionally include
- Thread_Specific.i. Stuart Powell found this also... (thanks!).
-
- * libsrc/Threads/Thread_Specific.h: In Thread_Specific.h the
- inlining macros were only included if threads were used. This
- obviously didn't work for people without threads... I
- moved the #endif for ACE_HAS_THREADS... back before the #ifdef
- __INLINE__ stuff (e.g. to line 71). Thanks to Stuart Powell
- (stuartp@ot.com.au) for suggesting this.
-
- * libsrc/Threads/Synch.h: Fixed a typo that manifested itself for
- pthreads: Condition count_nonzero_ should obviously be
- Condition<Mutex> count_nonzero_. Thanks to Rob Clairmont
- (rclairmo@bnr.ca) for reporting this.
-
-Tue Aug 15 00:31:44 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Log_Msg/Log_Msg.C (log): Fixed a stupid typo (*format++
- should have been format++...).
-
- * libsrc/Misc/Trace.h: Move the class TSS_Int from within class
- Trace to file scope and changed the name to ACE_TSS_Int to
- handle problems with the HP/UX compiler.
-
- * include/ace/sysincludes.h: Added the word "struct" in front
- of rusage to make things work on HP/UX. Thanks to Neil Cohen
- (nbc@metsci.com) for reporting this fix.
-
- * apps/TokenServer/server/TokenMap.C: Fixed yet another problem
- with scope of variables defined in for loops...
-
- * Released new version of ACE 3.2.9...
-
- * libsrc/Connector: Fixed a braino whereby I didn't use consistent
- naming for my #defines (PA should have been PRC). Thanks to
- Alex (alexey@ace.elektra.ru) for noticing this.
-
-Mon Aug 14 18:13:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/SPIPE_Acceptor: Modified the interface of open()
- and accept() so they would conform to the SOCK_Acceptor and
- TLI_Acceptor. This makes it possible to use SPIPE_Acceptor in
- similar situations (e.g., Acceptor and Connector patterns).
-
- * libsrc/ASX/Stream: Fix a bug that occurred when trying to dump()
- a linked Stream.
-
- * libsrc/Connection/Acceptor: Moved the body of the init() method
- out of this class since it was unnecessarily dependent on the
- INET_Addr domain addressing types. This required changes to the
- ./apps and ./tests directory in order to add the init() method
- to classes that used the default behavior.
-
- * libsrc/IPC_SAP/SPIPE_SAP/SPIPE_Acceptor.C: Fixed close() so that
- it will call fdetach(2) *before* closing down the descriptor. I
- hope this will fix a problem noticed by people at SIEMENS.
-
- * tests/ASX/Event_Server/Event_Server/Options: Fixed a problem
- with the default port numbers (they weren't using the values
- from ./include/ace/testconfig.h).
-
- * include/ace/sysincludes.h (MAXNAMELEN): If MAXNAMELEN is not
- defined by a platform then ACE sets it to be FILENAME_MAX,
- which should be defined in stdio.h. Thanks to Todd Blanchard
- (tblancha@evolving.com) for this suggestion.
-
-Sun Aug 13 17:02:57 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Service_Configurator/Parse_Node: Changed the name of
- Function_Node::symbol (const void *) so that it won't give
- those annoying warnings anymore...
-
- * libsrc/Reactor/Handle_Set: Moved the definition of MSB_MASK from
- the header file into a static const within the .C file in order
- to avoid overflow problems on certain compilers.
-
- * libsrc/Threads/Synch: Implemented bare-bones versions of
- Semaphore and RW_Mutex for the POSIX Pthreads wrappers so that
- they'll be more compatible with the Solaris threads wrappers.
- The semaphore implementation uses a Condition object and a
- Mutex, which should be a reasonable solution. The RW_Mutex is a
- cop-out for now and just uses a Mutex (i.e., no extra
- parallelism for readers...). If anyone has a good
- implementation of RW_Mutex that they'd like to share please let
- me know.
-
- * libsrc/Threads/Thread_Specific: Fixed the prototypes for copy
- constructor and operator=, which were broken... Thanks to Alex
- (alexey@ace.elektra.ru) for noticing this.
-
- * libsrc/Shared_Malloc/Memory_Pool.C: Added some casts to
- MAP_FAILED to handle OSF/1. Thanks to Alex
- (alexey@ace.elektra.ru) for noticing this.
-
- * libsrc/Threads/Token: Fixed things so that threads waiting for a
- token wouldn't get screwed up by signals that occur...
-
- * include/ace/sysincludes.h: Changed the #ifdef
- ACE_SELECT_USES_LONG to ACE_SELECT_USES_INT for HP/UX since
- believe it or not, it really does use int, not long!
-
- * libsrc/SV_Semaphores: Fixed some weird problems that the HP/UX
- compiler was having when trying to inline methods in this class.
- As a consequence, I've rearranged the class to avoid inlining
- non-trivial methods. Thanks to John Morey (jmorey@hitel.com)
- for reporting these problems.
-
-Wed Aug 9 01:29:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Token: Added a tryacquire() method to become
- interface compliant with other LOCK mechanisms.
-
-Sat Aug 5 09:18:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Connection: Fixed a couple of bugs when using
- the Acceptor and Svc_Handler when ACE_OMIT_SERVICE_CONFIGURATOR
- is enabled. Thanks to Stuart Powell (stuartp@ot.com.au) for
- bringing this to my attention.
-
- * include/ace/sysincludes.h: Added a #ifdef for MAXNAMELEN to
- handle systems (like HP/UX) that don't support it.
-
-Thu Aug 3 22:59:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released new version of ACE 3.2.9...
-
- * libsrc/Reactor/Time_Value.i (normalize): Added new code to
- perform normalization of Time_Values. Thanks to Hans Rohnert
- (Hans.Rohnert@zfe.siemens.de) of SIEMENS for the suggestion.
-
-Tue Aug 1 00:19:00 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Changed all code that used Log_Msg::log() directly to use
- LM_ERROR or LM_DEBUG. This will ensure that logging will work
- with the new thread-specific storage implementation.
-
- * libsrc/Threads/Thread_Manager.i (open): Fixed this method so
- that it is thread-safe when a Thread_Manager is resized.
-
- * libsrc/ASX/Map_Manager.i (open): Fixed this method so that it is
- thread-safe when a Map_Manager is resized.
-
-Mon Jul 31 12:56:17 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Misc/Trace: Reimplemented the ACE Trace class to use the
- new thread-specific storage wrapper.
-
- * libsrc/Log_Msg: Reimplemented the Log_Msg class to use the new
- thread-specific storage wrapper. This shouldn't affect any
- existing code that was careful to only use the LM* macros...
-
- * libsrc/Threads: Added a new class called Thread_Specific which
- implements a C++ wrapper for SunOS 5.x thread-specific data
- (this will also work for POSIX pthreads I believe). Thanks to
- Tim Harrison (harrison@cs.wustl.edu) for coming up with the idea
- for using C++ "smart pointers" to implement this.
-
- * libsrc/Reactor/Timer_Queue.h: Moved Timer_Node from within
- Timer_Queue to outside Timer_Queue and renamed it to
- ACE_Timer_Node. Unfortunately, some compilers still don't like
- nested classes (ugh)...
-
- * Changed ACE_Synch_Options to be simply Synch_Options since it
- is *not* an ACE private class...
-
-Sun Jul 30 00:07:28 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * include/makeinclude/README: Added a new #define called
- ACE_HAS_THREAD_SPECIFIC_STORAGE, which does exactly what it
- sounds like! So far, I know that Solaris defines this. I'm not
- sure which other platforms do (perhaps OSF/1 does?).
-
-Fri Jul 28 14:53:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Fixed a bunch more problems with loop variables that were
- uncovered with GCC 2.7. Thanks to Matt Stevens
- (mstevens@ent.mrj.com) for noticing this.
-
- * apps/Logger/Service_Configurator_Logger: Added a new flag called
- ACE_HAS_NO_STATIC_DATA_MEMBER_TEMPLATES which is necessary to
- workaround bugs with GNU G++... Thanks to Matt Stevens
- (mstevens@ent.mrj.com) for noticing this.
-
- * libsrc/Connection/Connector.C (cleanup_AST): Changed the
- parameter list just a tad to try and fix a problem with
- G++ (which doesn't seem to like unscoped typedefs in
- argument lists or return values.
-
- * libsrc/Misc/Profile_Timer.i: Changed ::getrusage to be getrusage
- to avoid problems with macros and scope operators...
-
- * include/ace/testconfig.h (ACE_DEFAULT_RENDEZVOUS): Changed the
- value from /tmp/foo to /tmp/fifo.ace. Thanks to Neil B. Cohen
- (nbc@metsci.com) for suggesting this.
-
-Thu Jul 27 12:30:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/TokenServer/server/TokenHandler.C (abandon): Fixed a minor
- bug that caused assert() to fail when a client abandoned a
- Token.
-
- * libsrc/Reactor: Fixed a bug with the design of the Reactor's
- Timer_Queue cancellation mechanism. The new mechanism is much
- more robust since it ensures that timer_ids (used to cancel
- pending timers) are unique up to values of greater than 2
- billion timers! As long as timers don't stay around longer than
- this there should be no problems with accidentally deleting the
- wrong timer. Thanks to Bill Sears (wsears@world.std.com) for
- noticing this problem.
-
- One nice consequence to this change is that legacy code that
- would have broken with the previous change is now 100%
- compatible!
-
- * Provided a definition of ACE_Synch_Options::arg(const void *),
- which I'd forgotten to define before (darn templates...).
- Thanks to Tim Harrison (harrison@cs.wustl.edu) for finding this!
-
- * include/ace/sysincludes.h: Added a total hack to get HP/UX to
- understand getrusage(). The trick is to use the following
- undocumented syscall:
-
- #define getrusage(a, b) syscall(SYS_GETRUSAGE, a, b);
-
- What a hack (but it works...).
-
-Tue Jul 25 13:20:58 1995 Douglas C. Schmidt (schmidt@kavita.cs.wustl.edu)
-
- * libsrc/Misc/Profile_Timer: Fixed a typo in Profile_Timer.h
- (ACE_HAS_RUSAGE_T should have been ACE_HAS_GETRUSAGE). Thanks
- to George Reynolds (george@dvcorp.com) for noticing this.
-
- * Changed all uses of ::getopt() to use the ACE class Get_Opt
- get_opt. Also changed all uses of optarg to get_opt.optarg.
- Thanks to Bob Vistica (robertv@ims.com) for detecting and
- reporting some inconsistencies in my previous changes...
-
-Mon Jul 24 19:03:03 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * include: I've added config and platform support for SGI IRIX5.3
- for use with the SGI C++ compiler. Thanks to Stuart Powell
- (stuartp@ot.com.au) for these config files.
-
- * libsrc/Connection/Acceptor.C (handle_input): Added the
- Event_Handler::DONT_CALL flag when removing the Oneshot_Acceptor
- from the Reactor so that we don't set it's peer_acceptor_ to -1.
-
-Mon Jul 24 12:46:10 1995 Douglas C. Schmidt (schmidt@kavita.cs.wustl.edu)
-
- * libsrc/Misc/Profile_Timer: Fixed problems stemming from the fact
- that HP/UX doesn't seem to support getrusage() (how odd).
-
- * tests/Connection: a new test directory to test out the Connector
- and Acceptor pattern implementations.
-
-Sun Jul 23 12:26:37 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Connection/Acceptor.C: Fixed a minor bug with the
- Oneshot_Acceptor constructor. Thanks to John Morey
- (jmorey@hitel.com) for noticing this and the one below.
-
- * libsrc/Reactor/Timer_Queue: Moved the static method current_time
- from the Timer_Queue.i file to the Timer_Queue.C file. This
- avoids a bug with HP/UX C++.
-
-Sat Jul 22 15:54:27 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released beta version 3.2.9. Once this compiles on all major
- platforms then it's time to move to version 3.3.
-
- * Added a number of miscellaneous changes for OSF/1 courtesy of
- David Trumble (trumble@cvg.enet.dec.com). One of these changes
- involved changing all uses of Reactor::{ADD,SET,CLR,GET} to
- Reactor::{ADD,SET,CLR,GET}_MASK in order to avoid a class with
- some symbols in OSF/1.
-
-Fri Jul 21 00:21:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Finally was able to test ACE on the SunOS 4.x platform (using
- the SunC++ 4.0.1 compiler). The entire release compiled
- correctly! This is a great relief after fighting with this
- stuff for months... If you are building ACE on SunOS 4.x I'd
- *strongly* recommend you get SunC++ 4.0.1 since it is the only
- compiler that seems to be able to grok the weirdness of SunOS
- 4.x...
-
- * Finished updating all the ./tests and ./apps code so that it
- works correctly with the new Acceptor/Connector modifications.
- To see examples of these changes check out
- ./tests/IPC_SAP/SOCK_SAP/CPP-{nbclient,inserver}.C.
-
- * libsrc/Misc/Profile_Timer: Merged in the new Profile_Timer
- implementation from David Trumble (trumble@cvg.enet.dec.com).
- This will work with basically the same interface as the current
- scheme even if the OS platform doesn't support the prusage_t
- type...
-
-Thu Jul 20 01:07:23 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Connection: Added a new class called ACE_Synch_Options
- which is used in both the Acceptor and Connector classes to
- consolidate options related to synchronous and asynchronous
- behavior.
-
- * libsrc/Connection: Added a new class called Oneshot_Acceptor.
- This class inherits from the Acceptor but it only accepts one
- connection at a time (i.e., it doesn't keep itself registered
- with the Reactor). Several examples in the tests/SOCK_SAP
- directory have been added to illustrate how all this works.
-
- * libsrc/Connection/Connector: completely redid the Connector and
- Acceptor class interfaces to incorporate the new changes for
- asynchronous and synchronous behavior. The new scheme should be
- much more general (and correct...). Thanks to Tim and Irfan for
- helping out with this.
-
- * libsrc/Threads/Synch: Fixed the implementation of Recursive_Lock
- so that it won't have race conditions when testing the thread id
- and nesting level in parallel threads.
-
-Wed Jul 19 13:15:05 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Timer_Queue: Added new support for cancellation
- of individual Event_Handlers in the Reactor. In addition, it is
- now possible to cancel all Event_Handlers with a single call to
- Timer_Queue::cancel(). Note that this new scheme will break
- existing code since Timer_Queue::schedule() (and
- Reactor::schedule_timer()) now return ACE_Timer_Node *'s rather
- than ints...
-
- * libsrc/Service_Configurator/Service_Config: Fixed a problem
- where the "-s" option didn't work since it was parsed when
- "Service_Config::open" was called
- (it sets Service_Config::signum_). However, previously the
- signal handler was already setup by the constructor. By moving
- this registration to the open() method the problem was solved.
- Thanks to Bob Vistica (robertv@ims.com) for noticing this.
-
- * libsrc/Service_Configurator/Service_Manager: Changed the
- Service_Manager::reconfigure_services to use this->signum_
- rather than to hard code SIGHUP. Thanks to Bob Vistica
- (robertv@ims.com) for this insight.
-
-Mon Jul 17 12:08:08 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Threads/Token.C (renew): Fixed a typo so that we compare
- this->head_ == 0 rather than this->head_->next_ == 0.
-
- * libsrc/Reactor/Reactor.h: Changed the Reactor to use the
- Reactor_Token rather than the pure Token to make sure that the
- sleep_hook() is called to unblock the Reactor.
-
-Fri Jul 14 14:12:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Connection: Changed the default behavior of the Connector
- and Acceptor classes such that they pass a -1 to
- svc_handler_->close() when things go wrong. This is useful as a
- flag to close() (e.g., if it needs to figure out what to do if
- is shuts down prematurely).
-
- * libsrc/Connection/Svc_Handler.C: Added a default definition of
- the put() method, which is defined as a pure virtual method in
- class Task.
-
-Thu Jul 13 23:10:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * include/ace/sysincludes.h: Added support for the SGI IRIX 5.3
- OS. More screwy gettimeofday() hacks (what a pain...). Thanks
- to Matt Stevens (mstevens@kirk.softeng.infonautics.com) for
- these fixes.
-
- * include/makeinclude/platform_sunos5_centerline.GNU: Fixed a
- vexing problem that was causing the Centerline C++ compiler to
- puke when compiling ACE. Thanks to Chandra Venkatapathy
- (cvenkat@develop.bsis.com) for finding a solution!
-
-Tue Jul 11 00:01:15 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 3.2.6 for use by Karl and Detlef.
-
-Mon Jul 10 00:28:51 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/TTCP: Added support for benchmarking the performance of
- Orbix, ORBeline, ACE SOCK_SAP, and C sockets. These results are
- available at URL http://www.cs.wustl.edu/~schmidt/COOTS-95.ps.Z
-
- * libsrc/Service_Configurator/Makefile: Added new commands to the
- Service Configurator Makefile so that all automatically
- generated flex and yacc symbols (i.e., the "yy" stuff) is
- renamed "ace_yy". The purpose is to avoid conflicts with other
- uses of flex/yacc lexers/parsers with ACE. Thanks to Steve
- Ritter (ritter@titan.com) for this suggestion and code.
-
- * libsrc/IPC_SAP/TLI: Changed the TLI files so they are
- conditionally compiled only if the platform supports TLI...
-
- * libsrc/Connection: Changed the inlining strategy of Connector,
- Acceptor, and Svc_Handler so that very short methods are always
- inlined, but anything larger is never inlined...
-
-Sun Jul 9 14:07:02 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * include/ace/testconfig.h: Changed all occurrences of DEFAULT_*
- to ACE_DEFAULT_ to prevent namespace collision.
-
- * libsrc/Connection/Connector: Massively improved the Connector
- class so that its connect() method supports the following
- behavior (tv == "timeout value" and ur == "use Reactor"):
-
- Parameters | Description
- |
- tv | ur |
- -----|----------|-------------------------------
- | |
- NULL | yes | infinite timeout (using Reactor)
- | |
- time | yes | try asynch transaction for
- | | the specified time (using Reactor)
- | |
- 0,0 | yes | poll; try, if EWOULDBLOCK,
- | | then return immediately
- | | (using Reactor)
- | |
- NULL | no | block forever (don't use Reactor)
- | |
- time | no | do a blocking transaction
- | | for the specified time
- | | (don't use Reactor)
- | |
- 0,0 | no | poll; but do not initiate a
- | | nonblocking transaction
- | | (don't use Reactor)
-
- * libsrc/IPC_SAP/SOCK_SAP/SOCK_Connector: Changed the behavior of
- the SOCK_Connector::connect() method so that it uses Time_Values
- rather than a simple flag that indicates whether or not to use
- non-blocking connectors. The new scheme is an improvement since
- it allows greater control over synchronous and asynchronous
- timeouts for connection establishment. This behavior parallels
- that of SOCK_Acceptor, as well! If this works well then I'll
- update the TLI_Connector and SPIPE_Connector to match this
- interface.
-
- * libsrc: Continued to improve ACE's use of the global name space
- by prefixing all "helper" classes with "ACE_"
-
- * Updated SPIPE_Acceptor so that it would have the same basic
- interface as the SOCK_Acceptor and TLI_Acceptor.
-
- * libsrc/IPC_SAP: Consolidated the handle_timed_wait() methods
- used by the TLI, socket, and STREAM pipe wrappers so that they
- share the new ACE::handle_timed_accept() method, which is in
- libsrc/Misc.
-
- * libsrc/Misc: Modified the structure of Misc.[Ch]. Originally,
- this file contained a bunch of stand-alone C functions with the
- prefix "ace_" to keep them from conflicting with user's code.
- I've modified things now so that all the miscellaneous functions
- are now static methods in class ACE. This provides better scope
- control...
-
- * libsrc/Log_Msg/Log_Msg: Replaced the use of a Mutex in class
- Log_Msg with a Recursive_Lock<Mutex>. This is necessary to
- handle signals correctly...
-
- * libsrc/Reactor/Reactor: Modified the behavior of
- Reactor::notify() so that writers will block if the pipe is
- full. This solves some nasty flow-control problems.
-
- * libsrc/Reactor/Handle_Set: changed all uses of fd_set to
- ACE_FD_SET_TYPE * so that HP_UX would work correctly...
-
- * include/ace/config-hpux.h: Removed the ACE_HAS_XLI flag until I
- get a better idea which HP systems this is installed on.
-
- * libsrc/Threads/Thread: Added a new static method called
- spawn_n() that spawns "n" threads all running the same function.
-
-Sat Jul 8 14:14:34 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Service_Configurator: Made some miscellaneous changes to
- "const" methods and parameters in order to handle the new
- Reactor changes (C++ can be such a pain about this
- sometimes...).
-
- * libsrc/Threads: Added "yield" and "sigsetmask" methods to class
- Thread. How did I manage to omit these before?!
-
- * libsrc/Reactor: Updated the Reactor to use the new Token class
- described below. This greatly simplies the structure of the
- multi-thread support in the Reactor code. In addition, it
- should improve performance because it cuts the number of context
- switches compared with the old scheme. Many thanks to
- Karl-Heinz and Detlef for encouraging me to redo the Reactor
- implementation.
-
- * libsrc/Threads: Added a new class called Token that provides a
- flexible and efficient recursive mutex scheme. Thanks to
- Karl-Heinz Dorn (kdorn@erlh.siemens.de) and Detlef Becker
- (beckerd@erlh.siemens.de) for sharing their original code for this.
-
-Thu Jul 6 10:37:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Event_Handler_T: Conditionally compiled this so
- that it will only compile if the compiler supports template
- typedefs (e.g., G++ doesn't seem to like this...).
-
- * Started to make changes in ACE to deal with the new ANSI C++
- semantics in the scope of variables defined within for loops.
- Thanks to Aniruddha Gokhale (gokhale@cs.wustl.edu) for noticing
- this in G++ 2.7...
-
-Wed Jul 5 21:50:39 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Connection/Svc_Handler: Fixed the behavior of the
- Svc_Handler class so that it can be configured with a Reactor
- other than Service_Config::reactor, just like the Acceptor and
- Connector. Thanks to Karl-Heinz Dorn (kdorn@erlh.siemens.de)
- for suggesting this!
-
-Tue Jul 4 00:21:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added some new changes for Linux courtesy of Charles Rennolet
- (clr@thurse.mn.org).
-
- * libsrc/Reactor/Reactor.C (bit_ops): Fixed a dumb error in
- bit_ops that was caused by checking "else if (Reactor::SET)"
- rather than "else if (ops == Reactor::SET)". Thanks to Mark
- Patton (mark_patton@tx72.mot.com) for finding this bug and
- reporting it along with the fix.
-
- * include/ace/sysincludes.h: Added new fixes for M_SYNC and
- ENOTSUP on SunOS 4.
-
- * libsrc/Reactor: Added new support for integrating X and the
- Reactor. These files are called XtReactor.* and XReactor.*.
- Thanks to Eric Vaughan (evaughan@arinc.com) for providing this
- stuff...
-
-Mon Jul 3 19:44:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added support for SunOS 5.5 on i86 PC. Thanks to Bin Mu
- (mubin@wfg.com) for the config files and fixes.
-
- * libsrc/Misc/Profile_Timer: Added new support for versions of
- UNIX that don't support prusage_t. The new version of
- Profile_Timer will use gettimeofday() and getrusage() of
- prusage_t and /procfs isn't available... This code hasn't been
- tested yet (since I don't have SunOS 4.x) so I don't know if it
- works.
-
- * Hopefully fixed the SunOS4 prototype for gettimeofday(). Thanks
- to Andrew McGowan (ajm@se09.wg2.waii.com) for the suggested fix.
-
- * include/makeinclude/platform_hpux.GNU (CC): Added new support
- for building ACE and shared libraries on HP/UX. Thanks to Jam
- Hamidi (jh1@osi.com) for this code.
-
- * libsrc/Reactor/Handle_Set: Fixed Handle_Set_Iterator::operator++
- to check for index to be greater or equal than NUM_WORDS instead
- of just equal. This is better for sanity, although it may not be
- needed. Thanks to Carlos Garcia Braschi (cgarcia@caramba.tid.es)
- for suggesting this fix.
-
-Wed Jun 14 11:16:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/TLI_Acceptor: modified TLI_Acceptor so that it's
- public constructor/open() and accept() methods are more similar
- to the SOCK_Acceptor. In particular, added support for
- "SO_REUSEADDR" in TLI_Acceptor and time values for accept().
- Thanks to John P. Hearn (jph@ccrl.nj.nec.com), TLI_SAP now does
- the right thing for socket options.
-
- * libsrc/IPC_SAP: Fixed up the SOCK_Acceptor and TLI_Acceptor in
- order to add better support for "timed accepts." The new scheme
- uses Time_Values, which is more consistent with other parts of
- ACE. In addition, the Time_Value was moved from the
- constructor/open() to the accept() method, which allows more
- fine grained control over this behavior. Thanks to Irfan
- (ip1@cs.wustl.edu) for suggesting this.
-
- * libsrc/IPC_SAP: Cleaned up the SOCK_Acceptor::open and
- TLI_Acceptor::open routine. In addition to being more compact
- and robust, this routine now also let's open() determine which
- local port to bind to (if you pass in Addr::sap_any as the
- local_addr). Thanks to Irfan (ip1@cs.wustl.edu) for suggesting
- this.
-
-Tue Jun 13 16:09:13 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Timer_Queue: Fixed an odd problem with the
- Timer_Queue on Solaris. Apparently the select() call will
- return slightly earlier than the timeout dictates due to lack of
- granularity with the system clock. This was causing problems
- where the Reactor wasn't correctly dispatching the
- handle_timeout() method of Event_Handlers. The fix was to add a
- 10 Millisec "fudge factor" when calling the
- Timer_Queue::expire() method. Please let me know if this causes
- any problems. Thanks to Giang Hoang Nguyen
- (yang@titan.com) to noticing this problem.
-
- * libsrc/Connection/Acceptor: Enhanced the Acceptor class so that
- it is possible to accept a new SVC_HANDLER synchronously, rather
- than always driving this acceptance out of the Reactor's event
- loop. Thanks to Irfan (ip1@cs.wustl.edu) for suggesting this.
-
- * libsrc/IPC_SAP/Addr: Changed all occurrences of ace_sap_any to
- Addr::sap_any (i.e., sap_any is now a static data member in
- class Addr). This is an improvement since it helps to limit the
- scope of what would otherwise be global variables...
-
-Wed Jun 7 17:26:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/Logger/Reactor_Logger/Client_Acceptor.i (handle_input):
- Fixed a braino that omitted an important block of code! Thanks
- to Ken Konecki (kenk@wfg.com) for finding this.
-
-Fri Jun 2 13:59:07 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/Addr/INET_Addr.i (set): Removed the special case
- for INADDR_ANY. This should just fall right out...
-
-Thu Jun 1 19:45:21 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/SOCK_SAP/SOCK_Connector: Added support to
- SOCK_Connector so that it is possible to bind the local TCP port
- number prior to establishing the connection. Also fixed the
- TLI_Connector to be consistent with this approach. Thanks to
- Mark Patton (mark_patton@tx72.mot.com) for this idea.
-
- * Fixed a problem with Mem_Map that was caused by the fact that
- some versions of Unix (e.g., SunOS 4.x) don't support MS_SYNC...
- Thanks to Andy McGowan (mcgowan@wg2.waii.com) for noticing this.
-
- * Fixed a very stupid bug in ./libsrc/Synch.h that accidentally
- omitted this->lock_.acquire() from the Guard class constructor.
- Thanks to Bin Mu (mubin@wfg.com) for noticing this!
-
-Fri May 26 13:20:38 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Connection/Acceptor: Added a new method called
- make_svc_handler() that generalizes the dynamic creation of a
- SVC_HANDLER by the Acceptor's Template Method handle_input().
- This scheme is completely backwardly compatible with the
- original approach, but now allows transparent extension too!
-
- * libsrc/Connection/Acceptor: cleaned up the Template Method logic
- in Acceptor::handle_input. No longer do we set the listener
- socket into non-blocking mode and then rely on a -1 with
- EWOULDBLOCK to indicate there are no more connections to
- establish. This was causing problems for singleton Svc_Handlers
- since the Acceptor was setting their peer_stream_ to -1... The
- new approach should complete solve this problem.
-
-Mon May 22 15:10:27 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 3.2.3 so that Bill Sears can test the new
- #include "ace/" features.
-
- * Modified all the ACE source, tests, and apps so that all
- #includes of its headers are refixed by ace/, e.g.:
-
- #include <ace/Reactor.h>
-
- There are two reasons for have the include files be of
- this form:
-
- First, you can tell at a glance by looking at the caller where
- the library is coming from.
-
- Secondly, you can build an include tree of the form:
-
- /include/lib1
- /include/lib2
- /include/lib3
- /include/ace
-
- which then links to WRAPPER_ROOT. Now, all you have to do
- when you build a make file is point to the include root, and
- put links in the include root. This is especially helpful
- if there are multiple versions.
-
- This means just one less thing that has to be modified in the
- Makefile. Thanks to Bill Sears (wsears@world.std.com) for
- recommending this change.
-
-Sat May 20 17:12:35 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * config-irix5.3-sgic++.h: Added new configuration support for SGI
- IRIX5.3 courtesy of Stuart Powell (stuartp@ot.com.au).
-
-Sat May 13 20:44:06 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Generalized the SOCK_Connector::complete method so that it takes
- a Time_Value timeout. This allows applications to wait upto a
- certain limit before giving up on a non-blocking connection.
- Updated the tests in ./tests/IPC_SAP/SOCK_SAP/CPP-inclient.C to
- illustrate how this is used.
-
- * Added some interesting new tests to ./tests/Mem_Map that can be
- used to benchmark the performance of various strategies (e.g.,
- stdio, read/write, mmap, etc.) for copying files.
-
-Fri May 12 19:09:10 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Mem_Map/Mem_Map: Added two new overloaded methods called
- sync() that are wrappers around the msync(3c) system call. Also
- added a new unmap() method that gives access to the full
- behavior of munmap(3c).
-
-Wed May 10 14:16:16 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Tried yet another fix for the gettimeofday() botch that both
- Centerline and SunOS 5.4 screw up in different ways. Thanks to
- Medhi Tabatabai (Mehdi.Tabatabai@ed.nce.sita.int) for the latest
- fixes.
-
-Tue May 9 19:05:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Handle_Set.C: Fixed some "off-by-one" errors that
- were occurring in the Handle_Set::sync() and set_max() methods.
- Thanks to Nigel Hooke (n.hooke@trl.oz.au) for finding and fixing
- these.
-
-Mon May 8 02:01:54 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Reactor.C: Moved the Null_Callback class from
- being nested within the Reactor class to outside the Reactor
- class. This fixes a problem with the SIG compiler.
-
- * Released version 3.2.2.
-
- * libsrc/Reactor/Signal.C: Made the Signal_Handler class
- thread-safe as well as signal-safe.
-
- * libsrc/Reactor/Reactor.C: Modified the new Reactor
- implementation slightly to handle signals correctly.
-
- * libsrc/Threads/Synch.h: Added a new conversion operator to
- Recursive_Lock that returns the underlying LOCK in case we need
- it for something (e.g., to initialize a Condition object).
-
-Sun May 7 04:17:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Reactor.C: Finished what I hope will be the last
- set of changes to make the Reactor robust in multi-threaded
- programs in situations where separate threads are used to
- register and remove handlers. The final solution is elegant in
- that it does not significantly penalize the performance of
- programs that do not use separate threads to register and remove
- handlers. Moreover, if you compile without the ACE_MT_SAFE flag
- the Reactor will not include additional state information
- related to the multi-threaded implementation.
-
- * libsrc/Threads/Synch.h: Subclassed the Guard class to make a new
- class Try_Guard that uses tryacquire() to obtain a LOCK.
-
-Fri May 5 18:43:50 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 3.2.1
-
-Thu May 4 19:43:01 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/TLI_SAP/TLI_Connector.C (connect): Fixed a
- problem whereby a t_bind() was being done twice. Since I didn't
- write this code I don't know if my fix will work generically on
- all platforms supporting TLI. Please let me know if there are
- any problems.
-
-Tue May 2 17:21:53 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor: Added a new notification feature that allows
- multiple threads of control to enqueue Event_Handler * to the
- main Reactor thread via the pipe used to wake up the main
- Reactor thread. The Reactor will call the handle_exception()
- method on Event_Handler with a HANDLE == -1 to notify the
- handler. This feature is very useful if you need to have
- certain operations (such as handler termination) performed in
- the main thread.
-
-Tue Apr 25 00:34:18 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor: Fixed a stupid pair of typos in the Reactor that
- failed to cast arguments to the pipe to char *.
-
- * libsrc/Connection: Fixed a portability problem with the
- Connector: we can't use RW_Mutex for synchronization since not
- all platforms support threads. The quick fix is to use
- Null_Mutex, but a better long term approach is on the way!
-
- * Released version 3.2.
-
- * Added richer support for the TLI_Connector to make it work
- better with protocols other than TCP/IP. Thanks to Mats
- Sundvall (sundvall@perrier.embnet.se) for these enhancements.
-
-Mon Apr 24 02:26:04 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Changed the SOCK_Dgram_Brdcast class name to SOCK_Dgram_Bcast
- and the SOCK_Mcast to SOCK_Dgram_Mcast to be more consistent.
-
- * Massively improved the Reactor's support for multi-threading.
- There was actually a major problem in previous versions of ACE
- that used poll() as the underlying event demultiplexor. Poll()
- produced incorrect results when the Reactor::handle_events()
- method was run in one thread, but another thread came along and
- registered or removed an Event_Handler. The new version fixes
- this problem so that the Reactor will now work correctly in
- multi-threaded programs.
-
- One consequence of this change is that sysincludes.h and the
- SunOS 5.x configuration files have been changed so that poll()
- is no longer used as the default demultiplexor. The reason is
- that poll() doesn't work as efficiently when used in
- multi-threaded programs (ugh). See the Reactor code for
- examples of how this all works now. Basically, the trick is to
- use the select()-style implementation for most of the code, and
- transform to poll()-style implementation only when necessary.
-
-Sat Apr 22 03:35:51 1995 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu)
-
- * libsrc/ASX/Message_Queue: Added a new method to the
- Message_Queue class called unblock(). This method allows one
- thread to release all other threads that are waiting for
- messages to be enqueued or dequeued on a Message_Queue.
- Modified the return value of methods like enqueue_head() and
- dequeue_head() so that if a thread unblocks() then these methods
- return -1 with errno == ESHUTDOWN. Also changed the name of
- some of the internal methods so that they would be more
- consistent.
-
- * libsrc/Connection/Connector: Fixed a stupid bug caused by
- failing to have a destructor for Connector. Thus, there are
- cases where unconnected Svc_Handlers are left around in the
- handler_map_. This causes problems for dynamic linking in
- conjunction with the Reactor, so now the destructor iterates
- through all the unconnected Svc_Handlers and removes them from
- the Reactor.
-
-Fri Apr 21 15:28:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Signal: Changed Sig_Set::addset() and
- Sig_Set::delset() to the more appropriately named sig_add() and
- sig_del(). Also added '_' in the Sig_Set method names to be
- more consistent...
-
- * Removed the ./libsrc/IPC_SAP/SOCK_SAP/misc.[hC] file and merged
- the one function in that file (ace_bind_port) into
- ./libsrc/Misc/Misc.[hC].
-
- * Added a bunch of fixes from various people to make ACE compile
- better on SGI, SunOS 4, and HP/UX. Thanks for all the fixes!
-
- * libsrc/IPC_SAP/Addr: Changed sap_any to ace_sap_any to avoid
- problems with the namespace.
-
- * Added a new portability flag that only compiles the SOCK_Mcast.*
- stuff if the platform supports multicast!
-
- * ./libsrc/Shared_Malloc: Fixed some portability bugs with
- Memory_Pool.C and added new support for SunOS 4.x running SunC++
- 4.x. Thanks to Steve Warwick (swarwick@arinc.com) for this
- strategic help.
-
-Wed Apr 19 09:05:43 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Fixed up the ./libsrc/CORBA_Handler so that it will correctly
- compile on platforms that don't have Orbix...
-
- * libsrc/Misc: added a new "Simple String" class called SString.
- This is not really meant to be used by end-user applications.
- It is used by certain portions of ACE that need to have
- operator== and operator!= defined on a string (e.g., the
- Token_Server and the Orbix Event_Comm components that use the
- Map_Manager).
-
-Tue Apr 18 00:09:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/ASX: Fixed a stupid bug in Task::activate() that didn't
- spawn a thread if the Thread_Manager was NULL...
-
-Sat Apr 15 19:39:30 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor: Added a new class to the Reactor called
- Event_Handler_T.[hi]. This class makes it easy to integrate
- existing classes into the Reactor framework without requiring
- them to inherit from Event_Handler directly. This technique is
- a superset of the DEF_TIE approach used by IONA in Orbix as one
- of the ways to combine an existing class (that doesn't know
- anything about CORBA) with a CORBA interface. Thanks to Greg
- Lavender
- (g.lavender@isode.com) for the suggestion.
-
-Fri Apr 14 14:41:49 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Run catman on the ./man directory so that it now has a windex
- file. This facilitates "man -k".
-
-Thu Apr 13 23:39:22 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor: Made the Reactor be a stand-alone component that
- does not require any other ACE libraries.
-
- * Added two new methods to the Reactor so that you can now
- register or remove a set of HANDLEs in a single call. Thanks to
- Bill Sears
- (wsears@world.std.com) for this suggestion. Basically, now you
- can register or deregister a set of n HANDLEs with one operation
- (rather than doing n register_handler () or n remove_handler
- ()).
-
- * include/sysincludes.h: Changed the name of the macro MT to
- ACE_MT and DB to ACE_DB to avoid polluting the namespace.
-
-Wed Apr 12 11:14:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Reactor.C (close): Added code to close down the
- pipe handles when the Reactor is shut down. Thanks to Mark
- Patton (mark_patton@tx72.mot.com) for this info.
-
-Fri Apr 7 18:33:30 1995 Douglas C. Schmidt (schmidt@siesta.cs.wustl.edu)
-
- * Added a new method to CORBA_Handler so that handlers don't need
- to subclass from CORBA_Handler, but rather can call the
- CORBA_Handler::register_service() method (which is static).
- Thanks to Chris Tarr (ctarr@objectspace.co) for this suggestion.
-
-Mon Apr 3 13:09:45 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added a new static method to Service_Config.[hC] called
- end_event_loop(). This can be used to stop the run_event_loop()
- method of the Service_Config. In addition, all the methods in
- Service_Config were changed to be static to emphasize the fact
- that the Service Configurator is a singleton...
-
- * include/Trace.h (ACE_TRACE): Changed the macro T to ACE_TRACE.
- This will prevent namespace pollution.
-
- * Added support for the Orbix CORBA implementation. If you don't
- have Orbix, you'll need to remove this flag from the
- config-sunos5-sunc++.4.x.h file if you are compiling on SunOS
- 5.x.
-
-Sun Apr 2 01:12:19 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added new support for C++ wrappers around the IP multicasting.
- There are three new files in ./libsrc/IPC_SAP/SOCK_SAP called
- SOCK_Mcast.[hiC] and a new test directory in
- ./tests/Reactor/multicast and ./tests/Reactor/ntalker to
- illustrate how to use this stuff. Thanks to Tim Harrison
- (harrison@cs.wustl.edu) for this code.
-
-Sat Apr 1 18:48:40 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added support to the libsrc/Shared_Malloc/Memory_Pool.[hC] class
- for System V shared memory, as well as for mmap(2) and sbrk(2)
- memory. Please note that this has not been extensively tested
- yet, so use with caution...
-
-Thu Mar 30 21:50:00 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Misc/Atomic_Op: Added the postfix versions of the ++ and
- -- operators. This stops the Sun CC compiler from griping about
- the "anachronistic" usage when using a++ rather than ++a.
- Thanks to Bruce Worden <bruce@betsy.gps.caltech.edu> for the
- suggestion.
-
-Wed Mar 29 22:26:37 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Handle_Set: Fixed a weird problem where I was
- using NOFILE as the max number of descriptors rather than
- FD_SETSIZE. I don't know why I was doing this.
-
- * Also fixed up a problem with Handle_Set that was causing the
- iterator to go nuts when it got a strange initial value of
- fd_set in Handle_Set. Orbix triggers this kind of nonsense in
- some cases...
-
-Tue Mar 28 21:01:36 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/Reactor/Reactor.C: swapped the order of dispatching so
- that handle_exception methods are dispatched before handle_input
- methods to improve response time for exceptions (e.g., OOB
- data). Thanks to Detlef Becker
- (beckerd@erlh.siemens.de) for suggesting this.
-
- * Fixed a bug in ./ASX/Stream.i that caused problems when a Module
- was popped off a Stream. Thanks to Paul Stephenson for noticing
- this and sending me the fix.
-
- * Changed the Reactor::dispatch methods so that they dispatch the
- timers *before* dispatching the I/O-based event handlers. This
- is helpful for systems that are time-delay sensitive.
-
- * libsrc/Reactor/Time_Value: Added new += and -= operators to
- Time_Value. Thanks to Alex V. Maclinovsky
- (garyh@teleng1.tait.co.nz) for this suggestion.
-
-Thu Mar 23 15:38:23 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/Addr/SPIPE_Addr.i (set): Fixed a problem that the
- HP/UX compiler had with complex arithmetic expressions.
-
- * libsrc/Service_Configurator: fixed up the Service_Configurator
- source code so that it will compile correctly on HP/UX
- platforms.
-
-Tue Mar 21 00:28:25 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * libsrc/IPC_SAP/SOCK_SAP/LSOCK_Connector.h: Fixed an amazingly
- stupid bug with LSOCK_Connector, where I was passing in a
- default argument of PF_INET instead of PF_UNIX... Arrgh!
-
-Mon Mar 20 20:24:29 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Fixed up the $WRAPPER_ROOT/include/makeinclude/ directory to
- define a new set of platform-specific configuration files. This
- should greatly improve the portability of ACE to different
- OS/compiler platforms.
-
- * Added a bunch of changes to allow ACE to build with Lucid C++ on
- SunOs 4.x. This should also fix some other problems we've been
- having with SunOS 4.x. Thanks to Lee Baker (baker@ctis.af.mil)
- for these changes.
-
-Sun Mar 19 00:34:30 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added manual pages for all of the ./libsrc libraries. These
- manual pages are all generated automagically from the libsrc
- header files.
-
-Sat Mar 18 10:48:46 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Finally broke down and fixed the Makefile scheme so that there
- is just one shared library (libACE.so) and one archive library
- (libACE.a). This should massively simplify the application
- development process, though it may require a bit of fixing of
- Makefiles to remove all the -lReactor -lIPC_SAP stuff that was
- in there before.
-
- * libsrc/IPC_SAP/TLI_SAP/: Fixed a stupid bug that was causing
- core dumps since the TLI option pointers weren't initialized to
- 0 in the TLI::TLI constructor. Thanks to Ed Brown for noticing
- this (eebrown@netcom.com).
-
-Wed Mar 15 00:08:19 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added some new fixes to get ACE to run on OSF1 and Linux.
-
-Tue Mar 14 13:36:31 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added several changes to the source code and config-hpux.h
- configuration file based on comments from Alex Ranous
- (ranous@nsa.hp.com). In particular, changed ACE_HAS_NO_FDSET to
- ACE_SELECT_USES_LONG.
-
-Mon Mar 13 09:23:58 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Improved the Makefile scheme so that the use of PTDIRS is no
- longer required. The trick was to link the appropriate template
- *.C files into the WRAPPER_ROOT/include directory. This enables
- the compiler to find them in one single place.
-
-Sun Mar 12 22:35:50 1995 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added a new mechanism to clean up the insane number of -D's in
- the Makefile. This new mechanism requires a bit more work at
- installation time, but should greatly reduce the effort during
- normal software development
- (once ACE is installed...). See the INSTALL file
- for more details.
-
-Fri Mar 10 17:29:02 1995 Douglas Schmidt <douglas@gtcterminator>
-
- * Fixed a stupid bug in Map_Manager.i which wasn't correctly
- setting default values for fields in one of the Map_Manager
- constructors.
-
-Fri Mar 10 08:54:42 1995 Doug Schmidt <douglas@gtccipher>
-
- * /libsrc/Connection/Acceptor.i: Fixed a potential memory leak in
- handle_input().
-
-Thu Mar 9 11:59:54 1995 Doug Schmidt <douglas@gtccipher>
-
- * Changed the Map_Manager::find() method to use class Read_Guard
- so that multiple finds may proceed in parallel on a multiple
- threaded application. Likewise, changed the implementation of
- bind() and unbind() to use class Write_Guard so that destructive
- operations will be serialized correctly. One consequence of
- this is that RW_Mutex must be used instead of Mutex...
-
- * Added a new overloaded Map_Manager::unbind() method with an
- INT_ID parameter. This parameter that passes back a reference
- to the internal id being unbound. This allows the caller to
- clean up any dynamic memory associated with the INT_ID.
-
-Tue Mar 7 13:32:17 1995 Doug Schmidt <douglas@gtccipher>
-
- * Changed a bunch more things to get ACE to compile with
- Centerline C++. This should also make ACE more portable to
- other cfront-based compilers.
-
- * Had to change the ASX source in ACE to work around a stupid
- problem with templates in cfront-based C++ compilers.
- Fortunately, it was possible to mask most of the problems using
- the C++ preprocessor.
-
- * There seem to be some problems with cfront-based compilers (such
- as centerline). They don't like the new SYNCH::MUTEX usage in
- the Message_Queue.
-
- * Removed several unused local variables in the INET_Addr::set()
- method.
-
-Wed Mar 1 00:35:11 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Added a major performance boost on high-speed networks. It
- turns out that send(3) and revc(3) are slower than write(2) and
- read(2) (since the latter are system calls, and the former are
- library calls. Therefore, I added new overloaded methods to
- SOCK_IO so that write(2) and read(2) are available to the user!
-
-Tue Feb 28 10:13:09 1995 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Reactor/Reactor.C: Fixed the implementation of the
- Reactor::open and Reactor::Reactor constructor so that it is now
- possible to resize the size of the Reactor *after* the
- constructor has run (by calling open()) *without* having to shut
- down the Reactor first.
-
- * Modified the Reactor::attach() method so that it will ADD the
- new bits to the bitmask rather than SET them. Thanks to Mark
- Patton for recommending this
- (mark_patton@tx72.mot.com).
-
-Sat Feb 25 15:08:04 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Released version 3.0.5.
-
-Fri Feb 24 17:57:01 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Used the OSE class2man scripts to generate UNIX manual pages for
- IPC_SAP, Thread, Connection, and Reactor. Other manual pages
- will be forthcoming...
-
- * libsrc/IPC_SAP/Addr/INET_Addr.i: Fixed a bug in one of the
- INET_Addr::set() methods that caused a segmentation fault if
- host_name was NULL. In addition, greatly cleaned up the code so
- that all the "set" methods share a common basis of code.
-
-Tue Feb 21 19:32:28 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Updated the entire release to use the new SYNCH template
- interface for Task, Module, Stream, and Message_Queue. This is
- *much* cleaner, though it reveals some bugs with the Sun C++
- templates facility.
-
-Mon Feb 20 22:46:14 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Changed the SPIPE_SAP, SOCK_SAP, and TLI_SAP *Connector class
- methods from open() to connect(). This is a more accurate name
- and it also fits in nicely with the Acceptor::accept() method.
-
- * Started integrating new versions of various header files that
- include hooks to automatically generate documentation.
-
-Tue Feb 14 20:52:13 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Changed the order in which the Reactor dispatches descriptors.
- Originally, it dispatched the "read" descriptors *before* the
- "write" descriptors. Now, it dispatches the "write" descriptors
- first. This was necessary to handle weird behavior of sockets
- over TCP/IP when data is piggy-backed with the final ACK on a
- non-blocking connection.
-
-Mon Feb 13 15:49:21 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Changed the name of Event_Handler::get_fd() to
- Event_Handler::get_handle() to be more consistent with other
- usage in ACE.
-
-Sat Feb 4 22:47:34 1995 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Service_Configurator/Service_Object: changed the
- destructor to be virtual (thanks to Steffen Winther Sorensen
- <sts@dad.stibo.dk> for noticing this).
-
-Sat Jan 28 16:29:49 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Changed the name of class Map_Manager's Search_Structure struct
- to Map_Entry. This is more specific to what that data structure
- really does.
-
- * Began adding support for Linux, courtesy of sts@dad.stibo.dk.
-
-Sun Jan 22 23:15:38 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Changed the name of the ./libsrc/Connector-Acceptor directory to
- ./libsrc/Connection. Also changed the name of libConn_Acc.so to
- libConnection.so to be more consistent.
-
-Sat Jan 21 13:59:18 1995 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/IPC_SAP: Fixed the *Acceptor classes for SOCK_SAP and
- SPIPE_SAP so they behave just like FIFO_SAP and contain a method
- called remove(). This method closes the underlying descriptor
- and also unlinks the local address from the file system.
-
- * libsrc/ASX/Message_Queue.i (copy): Fixed this code so that it
- correctly stores starting at the wr_ptr rather than the rd_ptr.
- Thanks to Chris Cleeland
- (chris@milo.st-louis.mo.us) for pointing this out
- to me.
-
-Wed Jan 11 13:07:19 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Changed all uses of class Thr_Manager to class Thread_Manager
- and class Thr_Cntl to Thread_Control. This is more readable and
- is now consistent with the documentation...
-
-Tue Jan 10 13:49:31 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Modified the makefile scheme so that only the *.so files are
- built by default. If you want to build both *.a and *.so files,
- uncomment out the lines described in
- $WRAPPER_ROOT/include/makeinclude/rules.lib.GNU. Note that this
- will require you to run make on the ./libsrc directories twice
- in order to properly build and install both the *.a and *.so
- libraries.
-
-Mon Jan 9 22:57:29 1995 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/Reactor/Signal.h: Changed the name of the Signal_Block
- class to the Signal_Guard class to be more consistent with the
- Guard class in Synch.h.
-
-Sat Jan 7 19:49:46 1995 Douglas C. Schmidt (schmidt@tango)
-
- * tests/ASX/Event_Server/Event_Server: Revised the Event Server
- test example to use the Acceptor pattern components.
-
-Fri Jan 6 23:38:21 1995 Douglas C. Schmidt (schmidt@tango)
-
- * Added a new method to class Task that turns a task into an
- active object (i.e., associates a thread of control with the
- task). This is useful since it replaces all the places in
- application code that original said "this->thr_mgr_.spawn
- (THR_FUNC
- (&this->svc_run))", etc...
-
-Thu Jan 5 21:05:15 1995 Douglas C. Schmidt (schmidt@tango)
-
- * libsrc/ASX: Changed the capitalization of class STREAM to class
- Stream. This seems more reasonable since I don't see any
- particular reason to shout about Streams!
-
- * libsrc/ASX/Task: Changed name of method qreply() to reply() to
- reflect the fact that the name of the class is no longer Queue!
-
- * libsrc/ASX: Made both Task and Message_Queue into parameterized
- types. This greatly improves the ability to parameterized
- synchronization into an application.
-
- * Changed all occurrences of timestruc_t to use Time_Value
- instead. This helps to improve portability and reduce the
- "impedence mismatch" caused by mixing both C and C++ types in
- the ACE interfaces. Note that one drawback of this is that we
- lose nano-second timing accuracy. However, I don't know of any
- real OS platforms that support that degree of precision anyway!
-
- * libsrc/Reactor: Moved the static "zero" data member from the
- Timer_Queue class to the Time_Value class. Also added a new
- static data member called "zerop," which is a pointer to "zero".
-
- * libsrc/Threads/Synch: Changed the interface of class Condition
- so that it no longer has both wait() and a timedwait() methods.
- Since C++ has default values, these two methods were redundant.
- Now, there is only a single method called wait(). By default,
- it's argument is 0, which defaults to the original wait()
- semantics. If the argument is non-zero then the timewait
- semantics apply.
-
- * libsrc/Threads/Synch: Added a new class called Null_Condition.
- This is similar to the Null_Mutex class in the sense that it has
- the same interface as class Condition, but it's methods are all
- no-ops
- (however, wait() and signal() both set errno = ETIME
- before returning...). This class is useful for
- parameterizing synchronization into an application.
-
diff --git a/ChangeLogs/ChangeLog-96a b/ChangeLogs/ChangeLog-96a
deleted file mode 100644
index 5aa3c9b69fc..00000000000
--- a/ChangeLogs/ChangeLog-96a
+++ /dev/null
@@ -1,3889 +0,0 @@
-Sun Jun 30 15:28:43 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.i (cond_timedwait): Fixed the implementation of the
- ACE_OS::cond_timedwait() wrapper such that if the
- caller-specified timeout elapses without the condition variable
- being signaled that errno is always set to ETIME. This fixes
- some inconsistencies that occurred with POSIX pthreads and Win32
- threads. Thanks to Ross Dargahi <rossd@acm.org> for pointing
- this out.
-
- * ace/SOCK.cpp: Changed SOCK::close() to use the new
- ACE_OS::closesocket() call. This should fix some weird bugs
- that have been lurking in the code for some time now!
-
- * ace/OS: Added a new method to ACE_OS called closesocket(). This
- handles the differences between Win32 and UNIX in their
- treatment of sockets (e.g., NT requires the use of
- closesocket(), whereas UNIX requires the use of close(). Thanks
- to Irfan, Prashant, and Tim for figuring this one out!
-
-Sat Jun 29 21:23:04 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/SPIPE_Acceptor.cpp (create_new_instance): Added the flag
- (FILE_FLAG_OVERLAPPED) in call to CreateNamedPipe.
-
-Fri Jun 28 01:31:24 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Svc_Handler.cpp (open): Fixed a small typo that caused a
- compile error if the DEBUGGING macro was enabled. Thanks to
- Irfan for finding this.
-
-Wed Jun 26 03:19:27 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Synch_T.cpp (ts_get): The tss object allocated off the heap
- should be released if setspecific fails. Thanks to John Lu
- <johnlu@f1.telekurs.ch> for reporting this.
-
- * ace/CORBA_Handler.cpp (handle_input): changed ACE_OS::send and
- ACE_OS::recv to ACE::send and ACE::recv respectively in
- CORBA_Handler.cpp. Thanks to Irfan for pointing this out.
-
- * ace/Service_Config: slightly modified the Service_Config.[h,cpp]
- in order to make it possible to create an ACE_Service_Config
- with an external ACE_Reactor as a parameter. On creation I was
- handling this partly correct (i.e., not creating a new reactor).
- However, there was no flag for remembering this for a later
- deletion. Thus, on deletion I was doing a delete on the Reactor
- regardless of who created it. This is now fixed. Thanks to
- Karlheinz for pointing this out.
-
- * examples/ASX/CCM_App/CCM_App.cpp: Changed all uses of init (int,
- char **) to init (int, char *[]) to work around a "feature" with
- MSVC++ 4.x... Thanks to Karlheinz for pointing this out.
-
- * ace/OS.h: Added a new typedef of TCHAR to be compatible with
- Win32 UNICODE type names...
-
- * ace/{Mem_Map,DEV_Addr,SPIPE_Addr,FILE_Addr}: Added UNICODE
- support for Win32 to all interfaces that require filenames.
-
- * ace/{SPIPE_Stream,SOCK_IO,FILE_IO,DEV_IO}: Added a new pair of
- send()/recv() methods that take ACE_OVERLAPPED pointers in order
- to make it possible to integrate seamlessly with Win32
- overlapped I/O. Naturally, these methods are simply
- "callthroughs" to the ACE_OS versions...
-
- * ace/OS: Added a new pair of send()/recv() methods that take
- ACE_OVERLAPPED pointers in order to make it possible to
- integrate seamlessly with Win32 overlapped I/O.
-
- * ace/SPIPE_Acceptor: Factored out common code in the Win32
- implementation of ACE SPIPES (which uses Win32 Named Pipes, of
- course ;-)).
-
- * ace/SPIPE_Acceptor.h: Removed a vestige of the past --
- ACE_SPIPE_LISTENER_H should be ACE_SPIPE_ACCEPTOR_H...
-
-Wed Jun 19 19:35:12 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/SPIPE_{Acceptor,Connector}: Modified SPIPE_Acceptor and
- SPIPE_Connector to implement Named Pipes on NT. The public
- interface remains the same.
-
-Sun Jun 16 00:45:41 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Service_Config: Provided public accessor methods for the
- following data memebers of the ACE_Service_Config:
-
- reconfig_occurred_
- end_event_loop_
-
- Thanks to Steve Warwick <sjw@aesthetic.com> for suggesting this.
-
- * ace/Synch*: Added UNICODE support for the ACE synchronization
- classes (e.g., ACE_Mutex, ACE_RW_Mutex, ACE_Semaphore, etc.).
-
- * ace/OS: Added UNICODE support for the ACE_OS::dl_open()
- function, as well as the ACE_OS synchronization functions.
-
- * ace/CORBA_Handler: Added Seth's changes for Orbix 2.0.
-
-Sat Jun 1 13:30:55 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Memory_Pool.cpp (remap): Fixed a bug in
- ACE_MMAP_Memory_Pool::remap (). The test for whether or not the
- addr falls within the range had a '!' (not) missing, that is, it
- was failing when it should be succeeding and vice versa.
-
-Sun Jun 9 00:01:44 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.24 for testing.
-
- * ace: Changed all uses of ACE_Guard<LOCK> m (lock_) to ACE_GUARD
- (LOCK, lock_), which is a macro that is defined as follows:
-
- ACE_Guard<MUTEX> ace_mon (LOCK); \
- if (m.locked () == 0) return;
-
- The reason we need this is (1) detect locking failures, rather
- than have things fail silently and (2) to automatically detect
- deadlock in the Reactor. In addition, I also added
- ACE_GUARD_RETURN, which is similar to ACE_GUARD, except that it
- returns a "failure" status when the lock is not acquired.
- Thanks to Karlheinz for suggesting this.
-
- * ace/Log_Msg: Added the new thr_state() accessors to Log_Msg.
-
- * ace/Thread_Manager.cpp: factored out some common code by having
- the public interfaces (like resume() and suspend()) utilize the
- protected interfaces (like resume_thr() and suspend_thr()).
-
- * ace/Thread_Manager.cpp: Added sanity checks for suspend(),
- resume(), cancel(), etc. so that we don't blow up if someone
- tries to perform an operation on an invalid thread id.
-
- * ace/Thread_Manager: Added a suite of new methods for
- (1) cooperatively "canceling" threads and (2) testing if threads
- are cancelled (also added similar checks to test if threads are
- suspended or resumed). The cooperative cancellation mechanism
- is based on a design fleshed out with Detlef and Karlheinz.
- It's essentially a compromise between the powerful mechanisms
- available via POSIX pthreads vs. the totally lame mechanisms
- available in Win32.
-
- Here's how it all works:
-
- 1. Added several new methods to ACE_Thread_Manager:
-
- cancel(thr_id); -- cancels thr_id
- cancel_all(); -- cancels all the threads in a Thread_Manager
- cancel_grp(grp_id); -- cancels a group of threads in a Thread_Manager
- testcancel(thr_id); -- returns "true" if thr_id has been cancelled
-
- 2. Updated ACE_Log_Msg to maintain the current state of a thread
- in thread-specific-storage (TSS). Actually, it's more clever
- than that since I really keep a *pointer* to the state of a
- thread in TSS. This pointer actually points *back* to the
- ACE_Thread_State field in the ACE_Thread_Manager! I use it
- as a cache as follows:
-
- ACE_Thread_Manager::testcancel (thread_t t_id)
- {
- ACE_MT (ACE_Thread_Mutex_Guard m (this->lock_));
-
- // Try to get the cached value out of TSS to avoid lookup.
- ACE_Thread_State *thr_state = ACE_LOG_MSG->thr_state ();
-
- if (thr_state == 0)
- { // We need to init the cache.
- int i = this->find (t_id);
- if (i == -1) return -1;
- // Update the TSS cache.
- ACE_LOG_MSG->thr_state (thr_state = &this->thr_table_[i].thr_state_);
- }
- return *thr_state == ACE_THR_CANCELLED;
- }
-
- Note that this allows me to avoid searching the
- Thread_Manager on every Thread_Manager::cancel() access
- except the first one!
-
- 3. I've updated the examples/Threads/test_thread_manager.cpp
- test file to exercise the new cooperative thread cancellation
- scheme. It basically spawns a bunch of threads that go into
- their own event loops doing
-
- if (thr_mgr ()->testcancel (ACE_Thread::self ()) != 0)
- break;
-
- every so often. Naturally, the main thread cancels them by saying
-
- thr_mgr ()->cancel_grp (grp_id);
-
- when it wants to inform them to shut down.
-
- * ace/Thread_Manager: Moved the Thread_State enum from the
- ACE_Thread_Descriptor class to OS.h and renamed it to be
- ACE_Thread_State. This will make it easier to integrate the
- state of a thread in thread-specific storage...
-
-Sat Jun 8 13:35:17 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.i (sema_post): revised the implementation of the POSIX
- Pthreads semaphore implementation just a bit in order to make it
- slightly more efficient (it now releases the mutex before
- signaling the condition variable).
-
- * ace/OS.i and config-aix.4.1.h: added a fix that separates the
- decision about whether optlen is a pointer from the decision of
- the type of optlen. This fixes a problem on AIX. Thanks to Bob
- Olson <olson@mcs.anl.gov> for this fix.
-
- * ace/Proactor.h: Fixed a small glitch that was causing some
- compilers to break due to the fact that they can't grok fully
- qualified destructor syntax in the class definition. Thanks to
- Alfred Keller <kellera@pop.eunet.ch> for reporting this.
-
- * ace/OS.h: Added some Win32 macros (e.g., GENERIC_READ) to the
- UNIX side of the house in order to compile the Proactor on Win32
- and UNIX.
-
-Fri Jun 7 19:36:27 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added a new Bourne shell script called ACE-install.sh that will
- automatically download and install on UNIX machines. Thanks to
- Ajit Sagar <asagar@spdmail.spd.dsccc.com> for contributing this.
-
-Thu Jun 6 00:37:02 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.23 for testing.
-
- * ace/Local_Tokens: Updated the *.cpp and *.i files to remove
- warnings and generally improve the conformance to the ACE coding
- guidelines.
-
- * examples: Moved the Proactor directory into the Reactor
- directory since the Proactor and Reactor are really two
- implementations of the same basic pattern.
-
- * ace/Memory_Pool.cpp: Fixed an inconsistency caused by not
- updating __INLINE__ to __ACE_INLINE__. Thanks to Neil Cohen for
- finding this.
-
- * ace: Added support for the Florida State PTHREADS package.
- Thanks to Gary Salsbery <gsalsber@simsun.atsc.allied.com> and
- Eric Beser <beser@simsun.atsc.allied.com> for helping with this.
-
- * ace: Added support for the m88k OS. Thanks to Gary Salsbery
- <gsalsber@simsun.atsc.allied.com> and Eric Beser
- <beser@simsun.atsc.allied.com> for helping with this.
-
- * ace/OS.h: Added a default value of NULL to the sigwait() OS
- wrapper method to simplify the usecase in certain cases.
-
- * ace/Memory_Pool.cpp (commit_backing_store): Fixed what is
- hopefully the last typo related to the ACE_DEFAULT_BASE_ADDR
- macro. Thanks to Neil B. Cohen <nbc@metsci.com> for reporting
- this.
-
-Thu Jun 6 15:31:40 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * ace/CORBA_Handler.h: This version of the CORBA_Handler works
- with Orbix 2.0. Most of the changes involve the use of C++
- Exception Handling (the removal of IT_X), and the location of
- some CORBA system exception classes.
-
- * ace/Event_Handler.h: Added handle_*_complete methods for the
- Proactor. The Proactor now takes Event_Handlers and calls back
- the **_complete methods when overlapped I/O operations have
- completed.
-
- * ace/Service_Config.h: Added static accessors for the Proactor to
- the Service_Config object. Similar to the Reactor accessors,
- applications can now use the Service_Config object as the global
- access point to the Proactor event demultiplexor.
-
-Wed Jun 5 22:40:28 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.i (t_free): Added a check to avoid deleting a NULL ptr.
- This was causing problems for the TLI_Acceptor. Thanks to Ajit
- Sagar <asagar@spdmail.spd.dsccc.com> for reporting this.
-
- * ace/Makefile: Changed things back so that both static and
- dynamic libs are built by default... Thanks to Brad Brown
- <bbrown@rdxsunhost.aud.alcatel.com> for pointing this out...
-
-Sat Jun 1 13:49:51 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.22 for testing.
-
- * Added Tim Harrison's latest tests for Proactor.
-
-Sat Jun 1 13:30:55 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Memory_Pool.cpp (remap): Fixed a bug in
- ACE_MMAP_Memory_Pool::remap (). The test for whether or not the
- addr falls within the range had a '!' (not) missing, that is, it
- was failing when it should be succeeding and vice versa.
-
-Fri May 31 16:31:13 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Rereleased version 4.0.21 for testing.
-
- * Copied over new versions of the Proactor -- there was a small
- problem with the UNIX version that caused it not to compile...
-
-Fri May 31 00:03:41 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * examples/Proactor/test_proactor.cpp: Added a test program for
- the Proactor. Check examples/Proactor/README for more details
- on this test example.
-
- * ace/Proactor.cpp: Added first pass at the Proactor for win32.
- The Proactor is a Reactor-like abstraction that uses
- asynchronous I/O, rather than synchronous I/O. On Windows NT we
- implement the Proactor using overlapped I/O. We'll soon be
- porting the Proactor to Solaris using POSIX 4.x aio_* API for
- real-time programming.
-
- Unfortunately, the Proactor has not yet been integrated with
- Windows NT WaitForMultipleObjects since it appears that I/O
- Completion ports are not "waitable" objects on Windows NT. Does
- anyone know if this has been fixed in release 4.0?
-
-Thu May 30 05:51:23 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Synch.i: Reordered the definitions of several methods in
- Synch.i to avoid warnings from G++. Thanks to Marco Sommerau
- <sommerau@matisse.informatik.uni-stuttgart.de> for noticing
- this.
-
- * ace/Log_Msg.cpp: There was a problem having to do with the order
- in which static objects by G++. In particular, G++ was calling
- the constructor of the lock_ mutex in Log_Msg.cpp *after* it was
- being used for the first time. The right solution is to make
- lock_ be a pointer and allocate it once in the instance()
- method. Thanks to Marco Sommerau
- <sommerau@matisse.informatik.uni-stuttgart.de> for finding this
- problem.
-
- * ace/TLI_Acceptor.cpp (close): Make sure to only close down the
- TLI_Request_Queue if queue_ is non-NULL! Thanks to Ajit Sagar
- <asagar@spdmail.spd.dsccc.com> for spotting this.
-
- * ace: Changed all the enums in the various SysV wrappers from
- things like CREATE and OPEN to ACE_CREATE and ACE_OPEN to avoid
- name clashes with other systems. In addition, also changed
- NONBLOCK to ACE_NOWAIT to avoid clashes with the existing
- ACE_NONBLOCK macro! Thanks to Steve Warwick <sjw@aesthetic.com>
- for suggesting this.
-
- * ChangeLog: Changed all usages of the INLINE macro to ACE_INLINE.
- This avoids name clashes with other systems. Thanks to
- Chris Eich <Chris_Eich@optilink.optilink.dsccc.com> for
- suggesting this.
-
-Mon May 27 13:03:58 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Map_Manager.cpp (trybind): The function trybind() doesn't
- return a value as it should. A return was missing from the last
- line of the function. Thanks to Stuart Powell
- <stuartp@in.ot.com.au> for finding this problem.
-
- * ace/Acceptor.cpp (dump): The debug print referred to
- "scheduling_strategy_" which doesn't exist in the relevant
- class. Replacing it with "concurrency_strategy_" fixes the
- problem. Thanks to Stuart Powell <stuartp@in.ot.com.au> for
- finding this problem.
-
- * ace/Mem_Map.i: Make sure to close down the file mapping
- correctly when we upmap the view!
-
- * ace/OS.h: Changed the default shared memory address from 16 M to
- 64 M in order to work around problems with AIX.
-
- * ace/Memory_Pool: Moved and renamed the enums in
- ACE_Shared_Memory_Pool so that they'd be in OS.h. This makes it
- easier to remember to change them if they are incorrect. Thanks
- to Lionel Mommeja <mommeja@vnet.ibm.com> for suggesting this.
-
- * ace/Stream.cpp: Removed #if defined (ACE_HAS_THREADS)
-
- * ace/OS.cpp (svc_run): Added a Win32 try/except block to
- Spawn_Args::svc_run so that we catch all Win32 structured
- exceptions in order to make sure that we clean up correctly when
- the thread exits.
-
-Sun May 26 11:37:08 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Local_Name_Space.cpp: Used the new Win32 exception
- integration in order to ensure that the Name Server will
- transparently work correctly when the backing store is extended
- by other processes on the same machine.
-
- * ace/Memory_Pool.cpp: Revised the ACE_MMAP_Memory_Pool to export
- the mechanism for extending the virtual memory mapping. This
- can now be called by other programs (e.g., in order to integrate
- with Win32 Structure Exception Handling).
-
- * ace/Memory_Pool.cpp: Changed the use of ACE_OS::lseek() to
- ACE_OS::filesize() in order to determine the current offset when
- we're remapping the address space.
-
-Wed May 22 13:08:44 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/OS.h (ACE_DEFAULT_TIME_SERVER_STR): Added a new entry for
- ACE_DEFAULT_TIME_SERVER_STR.
-
- * ace/Malloc_T.cpp (advance): Fixed two small bugs. In
- ACE_Malloc::try_bind(), if we have a match we need to set
- pointer to node->pointer_ and not node->name_.
- Ina ACE_Malloc_Iterator::advance(), the continue in the for loop
- should be for strcmp != 0 instead of == 0.
-
-Sun May 19 12:03:11 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.20 for testing.
-
- * ace/Service_Record.cpp (remove): Fixed a very mysterious bug
- that was caused by deleteing an object and then trying to access
- it's next_ pointer. This worked on UNIX, but fortunately the
- MSVC++ compiler does special things to deleted memory and the
- bug was revealed! At long last, MSVC++ does something right
- ;-).
-
- * ace/Module.cpp: Revised the code a bit to use the ACE_SET_BITS
- and ACE_CLR_BITS macros to improve readability.
-
- * ace/SV_Semaphore_Complex.cpp (open): Fixed a race condition
- where we weren't correctly checking for EIDRM. Thanks to
- Michael Fortinsky <mike@vocaltec.com> for reporting this.
-
-Sat May 18 10:49:04 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Added a new ace.mak and ace.mdp file for Win32.
-
- * ace/Service_Record.cpp: Rewrote some code to work around a bug
- with MSVC++. This bug was causing problems since the
- ACE_Shared_Object methods were getting called, rather than the
- Test_Task methods used in the examples/ASX/CCM_App.cpp file.
- Thanks to Tom Leith for pointing out this problem!
-
- * ace/OS.h: Added a new #define for ACE_DEFAULT_SVC_CONF to deal
- with differences between NT and UNIX pathnames.
-
- * ace/Time_Value.h: Moved the definition of the INLINE macro from
- OS.h to Time_Value.h so that it will be in scope for
- Time_Value.i. Thanks to Neil Cohen for reporting this.
-
- * examples/Reactor/Misc/signal_tester.cpp: There was a typo in
- signal_test.cpp. It had mean to use handle_input() rather than
- handle_output() to exercise the asynchronous signal handling
- capabilities. This is fixed now.
-
- * apps/Synch-Benchmarks/Benchmark.cpp (thr_id): Added a new #if
- define (ACE_HAS_DCETHREADS) to make this work on AIX. Thanks to
- Greg Wilson <gvw@cs.toronto.edu> for reporting this.
-
- * ace/Local_Name_Space: Moved ACE_NS_String and ACE_NS_Internal
- from the *.cpp file to the *.h file to work around a "feature"
- of the AIX C++ compiler. Thanks to Greg Wilson
- <gvw@cs.toronto.edu> for reporting this.
-
- * ace/Reactor.h (ACE_Handler_Repository): Changed the type of
- cur_size_ from size_t to ssize_t to avoid type mismatches.
-
- * ace/Name_Request_Reply.cpp (decode): Fixed some inconsistencies
- between signed and unsigned loop counters...
-
- * ace/OS.h: Changed the typedef of pid_t on Win32 from
- DWORD to long to be consistent with UNIX.
-
-Thu May 16 18:49:14 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.19 for testing.
-
- * build/SunOS5.4/ace/ACE.cpp (ldfind): Fixed a bug in ldfind()
- that caused a segfault if we didn't resolve the filename in the
- LD_SEARCH_PATH.
-
- * ace/Reactor and Timer_Queue: Changed the interface of cancel()
- to include a const void **arg. If arg is non-NULL then it will
- be set to point to the ``magic cookie'' argument passed in when
- the Event_Handler was registered. This makes it possible to
- free up the memory and avoid memory leaks.
-
- * ace/Service_Record: Removed the #ifdefs that checked if
- ACE_HAS_THREADS because we ought to be able to build all of this
- stuff now that we've got the ACE_OS wrappers.
-
- * ace/Svc_Conf.y: Removed the #ifdefs that checked if
- ACE_HAS_THREADS because we ought to be able to build all of this
- stuff now that we've got the ACE_OS wrappers.
-
- * ace/OS.h (ACE_DEFAULT_BACKING_STORE): Made a different
- ACE_DEFAULT_BACKING_STORE for NT and for UNIX to handle the
- differences in directory separator characters...
-
-Wed May 15 18:45:48 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * examples/ASX/CCM_App/CCM_App.cpp: Fixed up the test application
- so that it should support dynamic linking on Win32. Thanks to
- Tom Leith for reporting this.
-
- * ace: Added the ACE_Export macro to class ACE and the various
- "helper" classes related to ACE_Malloc in order to have this
- work properly when use with ACE_Malloc outside of the ACE DLL.
-
- * ace/Svc_Conf.l: Added support for '\' and ':' in the regular
- expression for an ACE pathname in order to support Win32
- filenames (e.g., "C:\foobar\"). Thanks to Tom Leith
- <trl@icon-stl.net> for reporting this.
-
- * ace/Malloc_T.cpp (ACE_Allocator_Adapter): Moved the constructor
- from the *.i file to the *.cpp file and added a new constructor
- that takes both a pool_name *and* a lock_name. This is
- necessary because the ACE Malloc now has this API, as well.
-
- * examples/Threads/test_barrier.cpp (main): Fixed a bug that was
- caused by the main() thread exiting before all the other worker
- threads had finished "waiting" on their Barrier. The fix is to
- use ACE_Thread_Manager to control the thread exits...
-
-Mon May 13 00:03:09 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * examples/Connection/non_blocking/CPP-acceptor.cpp: Modified the
- implementation of the Svc_Handler::open() method so that it will
- truly behave as an iterative server (as advertised...).
- Currently, it behaves as a half-iterative server (i.e., the
- Oneshot_Acceptor is iterative, but the Svc_Handler is
- "concurrently"), which is causing problems because we're wiping
- out the values of Svc_Handler each time through the main event
- loop. Thanks to Gerolf Wendland for noticing this problem.
-
- * ace/Log_Msg: Added an alternative logging mechanism that makes
- it possible to integrate variable argument lists from other
- logging mechanisms into the ACE mechanism. Thanks to Chris
- Lahey for proposing this.
-
- * ace/Synch.h: Moved ACE_Process_Mutex so that it appears *after*
- ACE_Mutex (since it depends on ACE_Mutex). Thanks to Dieter
- Quehl for finding this.
-
- * Released version 4.0.18 for testing.
-
- * ace/Name_Space.cpp: Added the ACE_BUILD_DLL macro at the
- beginning of this file so that it will build as a DLL on NT
- correctly.
-
- * ace/Name_Space.cpp: Added a default constructor for
- ACE_Name_Binding so that it will compile when used as a template
- argument for ACE_Unbounded_Set.
-
-Sun May 12 14:23:44 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Map_Manager: Totally reworked the Map Manager so that it can
- be more flexible with respect to where the allocator comes from.
- This is necessary for certain parts of ACE (e.g.,
- Local_Name_Space) that must be very careful about which
- allocator is used to manage memory.
-
- * ace/Synch: Moved ACE_Process_Mutex and ACE_RW_Process_Mutex
- *outside* of the ACE_HAS_THREADS #ifdef since these are now
- always defined on all platforms (because the Process_Mutex stuff
- uses SV Semaphores, which are portable even if we don't have
- threads!).
-
- * ace/Naming_Context.cpp (parse_args): Removed an unnecessary call
- to strdup(). This was detected by Purify!
-
-Sun May 12 14:26:20 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Local_Name_Space.cpp (shared_bind): Fixed a small bug. In
- computing type_len in shared_bind(), we needed to add 1 to
- account for the NUL character.
-
- * ace/Local_Name_Space.cpp: (list_types): Fixed some potential
- memory leaks. In list_types() as well as list_type_entries()
- calling pattern.char_rep() was allocating memory which was never
- getting deleted. Similarly, in list_names() and list_values,
- call to char_rep was also allocating memory that was not getting
- deleted.
-
-Sat May 11 16:19:51 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Log_Msg.cpp (local_host): added a static member to
- ACE_Log_Msg that maintains the local host name. Now, instead of
- always displaying "<local host>", we can insert the actual local
- name into the object and then it will be automatically printed
- when VERBOSE mode is enabled. Thanks to Chris Lahey for
- suggesting this.
-
- * ace/Local_Name_Space.cpp: Used the new ACE_Name_Binding class to
- simplify the implementation of all the list_* methods in
- ACE_Local_Name_Space.
-
- * ace/Name_Space.cpp: Made a number of changes to the
- ACE_Name_Binding class in order to make it work more efficiently
- and concisely (e.g., reduce the amount of copying and eliminate
- the need for converting the type field back and forth to/from
- ACE_WStrings).
-
- * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp:
- Fixed a typo where #if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
- was *before* the #include of the header file that defines this
- macro! Thanks to Nigel for pointing this out, as well.
-
- * ace: Added a number of fixes to make ACE compile on SCO UNIX
- 3.2.4 using gcc 2.7.2. Thanks to Nigel Lowe <nigel@nt.com> for
- helping with this.
-
- * netsvcs/lib/Name_Handler.cpp: operation_ needs to be declared as
- just LIST_OP and not ACE_Name_Handler::LIST_OP. For some strange
- reason NT complains otherwise. Thanks to Prashant for finding
- this.
-
-Fri May 10 01:09:17 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Added new versions of ace.mak and ace.mdp to fix a couple
- of minor typos.
-
- * ace/Malloc_T.cpp (ACE_Malloc): Added a new constructor that
- takes both the pool_name and the lock_name explicitly. This is
- more flexible. Thanks to Ramesh Nagabushnam <rcn@nynexst.com>
- for suggesting this.
-
- * ace/Malloc_T: Modified the constructor of ACE_Malloc so that by
- default the name of the memory pool (which is also used as the
- name of the lock...) is ACE_DEFAULT_MUTEX.
-
- * Released version 4.0.17 for testing.
-
- * ace/Connector.cpp (create_AST): Must reset errno = EWOULDBLOCK
- to avoid making caller's think that something else has gone
- awry... Thanks to Steve Warwick <sjw@aesthetic.com> for chasing
- this down!
-
- * ace/ACE.cpp (handle_timed_complete): If you issue a non-blocking
- connect on a socket, you will have back a failure with errno =
- EINPROGRESS. Then, if for some reason, the connection could not
- be established, the select (which you have to issue to know
- about the completion of connection) will return you the fd set
- both in the read mask and in the write mask (infact select
- returns 2 in this case). The behaviour above affects the method
- ACE::handle_time_complete, so I changed the last part of the
- above method, this way:
-
- if (n <= 0)
- {
- ...
- ...
- }
- else if (rd_handles.is_set(h))
- {
- char dummy;
- // The following recv() won't block provided that the
- // ACE_NONBLOCK flag has not been turned off .
-
- if (ACE::recv (h, &dummy, 1, MSG_PEEK) <= 0)
- return ACE_INVALID_HANDLE;
- }
-
- // 1. The HANDLE is ready for writing or 2. recv() returned that
- // there are data to be read thus the connection was successfully
- // established.
- return h;
-
- That is, I reversed the sense of the tests so that the
- rd_handles() is checked first for failure along with the recv().
- Thanks to Antonio Tortorici <antonio@rh0011.roma.tlsoft.it> for
- suggesting this.
-
- * examples/Threads/test_thread_manager.cpp (main): Changed argv[1]
- to argv[2]. Thanks to Andres Kruse <kruse@cern.ch> for finding
- this problem.
-
- * examples/Connection/non-blocking: Fixed some nasty bugs that
- caused the non-blocking connector and acceptor test programs to
- crash and burn. Thanks to Steve Warwick and Gerolf Wendland for
- finding this problem.
-
- * ace/SV_Semaphore_Simple.cpp (open): Check for
- ACE_INVALID_SEM_KEY and return -1 in this case.
-
- * ace/Synch.h: Removed the default value of 0 for the name of the
- ACE_Process_Mutex and the ACE_RW_Process_Mutex and replaced it
- with a new macro called ACE_DEFAULT_MUTEX. Using 0 didn't make
- any sense on either NT or UNIX because process-wide Mutexes
- should be named!
-
- * ace/SV_Semaphore_Simple.cpp (name_2_key): Added a check for name
- == 0 and bail out of that's the case rather than crash!
-
- * ace/Reactor.cpp (wait_for_multiple_events): In the Reactor's
- wait_for_multiple_events method, the do {} while () around the
- select/poll system call is trying to wait until some "good"
- event occurs, with handle_error() taking care of unexpected
- problems. In the case of a bad file descriptor, however,
- handle_error() returns 0. This was exiting the loop because the
- loop exit condition was:
-
- do { /* ... */ } while (nfound == -1 && this->handle_error () > 0);
-
- which eventually causes ACE_Service_Config::run_event_loop() to
- exit. Since the offending file descriptor is handled by
- handle_error(), the loop should continue. Therefore, I've
- changed the while to read:
-
- while (nfound == -1 && this->handle_error () >= 0);
-
- Thanks to Eric C. Newton <ecn@clark.net> for providing this fix.
-
- * ace/INET_Addr.cpp (string_to_addr): Changed the order of the
- parameters so that the form is now "ip-address:port". This
- should (finally) be consistent for both string_to_addr() and
- addr_to_string()...
-
- * ace/Log_Msg: Changed the char * parameter of the log() method to
- const char *. Thanks to Chris for suggesting this!
-
- * ace/Synch_T.cpp: Moved the #if defined (ACE_HAS_THREADS) down to
- the right part of the file... Thanks to Alex Karev
- <akg@na47sun05.cern.ch> for finding this.
-
- * ace/Malloc.h: Added a very important #else... Thanks to Alex
- Karev <akg@na47sun05.cern.ch> for finding this.
-
- * ace/Signal.i (ACE_Sig_Guard): Changed the sense of the #ifdef
- tests in the ACE_Sig_Guard constructor and destructor from #if
- !defined (ACE_MT_SAFE) to #if 0 // !defined (ACE_MT_SAFE) in
- order to get the right semantics for signals (which should be
- blocked "process wide").
-
- * ace/Synch_T.h: put the frigging copy constructor in the public
- section of ACE_Atomic_Op because it was causing trouble for
- NT...
-
-Mon May 6 00:11:37 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.16 for testing.
-
- * ace/Log_Msg.cpp: Was defining ACE_Recursive_Thread_Mutex in the
- wrong place (i.e., outside of the #if defined (ACE_MT_SAFE).
- This was screwing up HP/UX. Thanks to Neil Cohen for pointing
- this out!
-
- * Incorported new versions of ace.mdp and ace.mak for Win32.
-
-Sun May 5 16:18:43 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * netsvcs/lib/Server_Logging_Handler.cpp (handle_input): Fixed a
- bug whereby handle_input() was returning the number of bytes
- read by handle_logging_record() rather than 0 or -1. This was
- causing problems for the logger since it was hanging in read()!
-
- * ace/Synch_T.cpp: Fixed some minor problems with the use of const
- in ACE_Atomic_Op that was causing warnings.
-
-Sat May 4 16:31:46 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu)
-
- * ace/SOCK_Dgram_Bcast: Reimplemented most of the ACE socket
- broadcast mechanism to (1) clean up the code and have it use
- other parts of ACE and (2) make it work for Windows NT. Thanks
- to Steve Weismuller <spweismu@rsoc.rockwell.com> for the basic
- ideas here.
-
- * ace/INET_Addr: Added a new method to set the port number without
- changing the host address. This is useful in the broadcast
- class.
-
- * ace/Log_Record.cpp (print): Changed the hack of replacing the
- newline with a call to flush() instead. This seems like a
- better fix. Thanks to Alex for suggesting it.
-
- * ace/Log_Msg.cpp (log): Moved the order of the print operations
- so that the ostream one goes last. This avoids a nasty problem
- due to the fact that it replaces the newline (if any). Thanks
- to Alex for pointing this out too!
-
- * ace/Log_Msg.cpp (log): Don't auto-increment bp at the end of
- the log() method, instead just terminate it:
-
- *bp = '\0'; // Terminate bp.
-
- This makes the length computation correct... Thanks to the
- ever-vigilent Alexandre Karev <akg@na47sun05.cern.ch> for
- reporting this.
-
- * examples/Shared_Malloc/test_malloc.cpp: Fixed a bug where a void
- * that was really an int was being cast incorrectly. Thanks to
- Raj for pointing this out.
-
-Sat May 4 12:51:25 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Reactor.cpp (find): Modified the ACE_Handler_Repository so
- that it doesn't crash when it isn't initialized properly.
- Thanks to Darrin for pointing this out.
-
- * ace/Synch_T.cpp (wait): Changed the call wait(ACE_Time_Value *)
- to wait(const ACE_Time_Value *) since wait() will not change the
- time value object.
-
- * ace/Thread_Manager.cpp (wait): Changed the call
- wait(ACE_Time_Value *) to wait(const ACE_Time_Value *) since
- wait() will not change the time value object. Thanks to Chris
- Lahey for suggesting this.
-
- * ace/Synch.h: Added a (const char * = 0) argument to
- ACE_Null_Mutex so that it would work correctly with
- ACE_Thread_Mutex and ACE_Process_Mutex...
-
-Fri May 3 17:26:07 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * netsvcs/lib/Name_Handler.cpp (lists_entries): Used '_' with
- name/value/type in ACE_Name_Binding to be consistent with the
- notation.
-
-Fri May 3 02:24:19 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Synch: Updated ACE_Process_Mutex to use SV_Semaphore_Complex
- as the UNIX implementation. This seems like the only portable
- and robust way to get the same semantics on UNIX and on NT!
-
- * ace/Malloc_T: It turned out there was a subtle bug with
- ACE_Malloc on NT when used with the ACE_Process_Mutex
- concurrency policy. On NT, we were storing the *HANDLE* of a
- mutex in shared memory. Naturally, this didn't make any sense
- since each HANDLE is relative to only one process!!! (duh ;-)).
- This worked fine on UNIX because mutex_t's created with
- USYNC_PROC mode can be stored in shared memory and accessed
- directly...
-
- We fixed this by changing ACE_Malloc so that the
- LOCK is allocated in non-shared memory. We then
- fixed ACE_Process_Mutex so that on UNIX it is
- implemented with SV_Semaphore_Complex. This is
- (a) portable and (b) it gives the right semantics.
-
- As a result, we were able to totally eliminate the storage of
- the lock in shared memory. Therefore, it doesn't matter of the
- host crashes anymore! In addition, we were able to totally
- remove the ugly "init_finished" lock that was previously stored
- in shared memory by ACE_MMAP_Memory_Pool. This is *much*
- cleaner!!
-
- Thanks to Karlheinz et al for pointing this problem out in the
- first place!
-
- * ace: Removed a stray file called Svc_Conf_tokens.h. This was
- causing problems on Win32 due to name clashes... Thanks to Adam
- Miller <adam@royalblueny.com> for pointing this out.
-
- * ace/SString.cpp (strstr): there were some for (size_t j; ...) {}
- if (j == x) constructs in the code that have as of recently
- become non-standard. Thanks to Darrin <darrin@jeeves.net>
- for reporting this.
-
-Tue Apr 30 00:18:46 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Thread.i (self): Commented out the ACE_Trace call in the
- ACE_Thread::self() methods to avoid infinite recursion problems
- on Win32.
-
- * ace/Token.cpp (ACE_Token): Commented out the ACE_Trace call in
- the constructor of ACE_Token to avoid infinite recursion
- problems on Win32.
-
- * ace/Log_Msg.cpp (instance): Moved the definition of the static
- variable keylock_ into the static instance() method in order to
- avoid "order of initialization" problems on Win32. Thanks
- to Tim for figuring this out!
-
-Sun Apr 28 17:07:58 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * netsvcs: Rearranged and renamed the subdirectories so that they
- are now called ./netsvcs/{lib,clients,servers}. In addition,
- moved the Logger, Naming, and Tokens examples from ./examples
- into the ./netsvcs/clients directory in order to make the
- relationships more clear.
-
-Sat Apr 27 14:23:43 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Name_Space.cpp (operator ==): Created a new file
- Name_Space.cpp and moved the definitions for
- ACE_Name_Binding::operator== and ~ACE_Name_Space in it. Also
- modified code to use '_' at the end of name/value/type in
- ACE_Name_Binding.
-
-Sat Apr 27 16:00:03 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/INET_Addr.i (get_host_addr): There was an error where
- sprintf(s,"%d:%s" ...) should have been %s:%d. Thanks to
- Raj <raj@itd.ssb.com> for pointing this out.
-
-Mon Apr 22 01:24:45 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Dump_T.h: #included "ace/Dump.h" so that this file will
- compile on HP/UX. Thanks to Neil Cohen for reporting this
- problem.
-
- * Released version 4.0.15 for testing.
-
- * ace/Synch_T: Added the appropriate "const" qualifiers to certain
- operators in ACE_Atomic_Op.
-
-Sun Apr 21 12:54:18 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Fixed a problem that Dieter was having with the Name Server
- when toggling between Naming_Contexts. Basically, what I've
- done is
-
- 1. Moved the unmap() call into the ACE_Mem_Map::close() method
- (this ensures that the region is correctly unmapped when the
- Mem_Map is deleted).
-
- 2. I've removed the call to this->allocator_->remove () within
- ~ACE_Local_Name_Space. This ensures that we don't remove the
- backing store file.
-
- * ace/Mem_Map.cpp: Modified the ACE_Mem_Map::remove method to call
- ACE_Mem_Map::close() in order to share code.
-
- * ace/Mem_Map.cpp: Modified the ACE_Mem_Map::close() method so
- that it unmaps the mapped region before closing down the backing
- store. This prevents "dangling mapping."
-
- * ace/Local_Name_Space.cpp (ACE_Local_Name_Space): Initialized all
- the pointers to NULL.
-
- * ace/Synch_T.cpp (ACE_Atomic_Op): Enhanced the Atomic_Op
- implementation by adding an assignment operator and disallowing
- the copy constructor (forcing objects of ACE_Atomic_Op to be
- passed by reference).
-
- * examples/Naming/Client/Client_Test: Reorganized the code for
- Client_Test so that it will run correctly as a Win32 netsvc
- (e.g., added the ACE_Svc_Export macro).
-
-Sun Apr 21 20:23:40 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Naming_Context.cpp (close): Added a new method to
- Naming_Context called close() that deletes the instance of
- name_space_.
-
- * ace/Local_Name_Space.cpp (ACE_Local_Name_Space): Added stuff to
- the destructor of Local_Name_Space so that it calls remove on
- the allocator_ to ensure we unmap the file. Also, we delete the
- allocator_.
-
- * examples/Naming/Client/Client_Test.cpp (set_proc_local): Changed
- set_proc_local (), set_node_local() and set_host() so that
- before we change name space, we do a close() on
- Naming_Context. The close ensures that we unmap the file as well
- as delete the instance of the name space.
-
-Sat Apr 20 12:39:20 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Removed the Name_Options.* files and merged the
- ACE_Name_Options class into Naming_Context.*. This simplifies
- some order of include problems...
-
- * ace/Naming_Context.cpp (init): Switched the code so that rather
- than always opening with ACE_Naming_Context::PROC_LOCAL, we use
- ACE_Name_Options::context(), which can be overridden by using
- the new -c command-line option (e.g., -c NODE_LOCAL). Thanks to
- Dieter for suggesting this.
-
- * ace/OS.i: Modified the Win32 implementation of all the
- ACE_OS::flock_*lock() methods so that they'd have the same
- behavior as the UNIX ones with respect to a length of 0 meaning
- "lock the entire length of the file." This works, of course, by
- having each method check if len == 0, and if so, calling
- GetFileSize() to set the size of the file.
-
- * ace/Synch.h: Changed the default len value for all the
- File_Lock::*acquire* methods to 1 rather than 0 to work around a
- problem with Win32. Thanks to Detlef for reporting this.
-
- * ace/ACE.cpp (ldfind): Added a strdup() of the LD_SEARCH_PATH
- returned by getenv() so that we don't overwrite the environment
- variable by using strtok(). Thanks very much to Prashant for
- figuring this out!
-
-Thu Apr 18 22:13:43 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * examples/Naming/Client/Client_Test.cpp (list_value_entries):
- Added check in list_name_entries and list_value_entries to see
- if type actually exists before trying to print it out.
-
-Wed Apr 17 16:40:42 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.14 for testing.
-
- * Added Tim Harrison's new instructions for building and using ACE
- as a DLL and SLL on Win32.
-
- * ace/Svc_Conf.h: Due to the new changes to the yacc code, I had
- to move the definition of YYSTYPE into the Svc_Conf.h file
- rather than have it in the Svc_Conf.y file. This solves a
- variety of multiple-inclusion problems...
-
- * ace: Modified all the yacc token symbols so that they will be
- prefixed with ACE_. This avoids namespace pollution problems.
-
- * Added the ACE_STATIC_SVC* macro support to a number of files so
- that the static versions of all the ACE services will be
- registered with the ACE Service Repository correctly. Thanks to
- Jesper for pointing this out!
-
- * ace/OS.h: the first occurence of
-
- typedef thread_t tid_t;
-
- in the OS.h file should read
-
- typedef pthread_t tid_t;
-
- Thanks to Jan Rychter <jwr@icm.edu.pl> for reporting this.
-
- * ace/Read_Buffer.cpp: Fixed rec_read() so that it will fail
- correctly when new fails!
-
-Wed Apr 17 19:05:42 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * netsvcs/lib/Name_Handler.cpp (type_request): Here is a brief
- description of the changes made to ACE_Name_Handler to simplify
- the dispatch method and make it more elegant:
-
- 1) I created a table called op_table_. It contains pointers to
- member functions of ACE_Name_Handler. This table can be
- indexed using the msg_type. However, I went one step further
- to have all the list methods be grouped under two
- methods. That is, requests for list_names, list_values, and
- list_types are handled by one method called lists() and
- similarly, requests for list_name_entries,
- list_value_entries, and list_type_entries are handled by
- another method called lists_entries(). A MASK is used to have
- the op_table_ index to the same method for these requests.
-
- 2) I also created another table called list_table_. This is
- primarily used by lists() to keep track of a couple of things:
- + pointers to member functions of Name_Handler that
- handle the actual request.
- + pointers to member functions of Name_Handler that act
- as factories to create the appropriate request to
- send back.
- + description of the message type.
-
- A different MASK is used to index into the list_table_ to
- invoke the appropriate method or get the appropriate description.
-
- 3) Within the method lists_entries(), I once again make use of
- the pointers to member functions technique. This time,
- however, I use pointers to member functions of Naming_Context
- which I assign in the switch statement.
-
-Tue Apr 16 13:03:49 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.13 for testing.
-
- * ace/INET_Addr.i: moved the get_port_number routine up to the top
- of the file so it gets defined before it is used. Linux did not
- like it where it was... Thanks to Neil Cohen for reporting
- this.
-
- * ace: Split the Dump.* files into Dump_T.* files. This is
- necessary to support the template policies of various C++
- compilers.
-
- * ace/Malloc_T.cpp (dump): Fixed an erroneous use of -> since
- guard_ is a non-pointer... Thanks to Neil Cohen for reporting
- this.
-
- * ace/Log_Record.cpp (print): Finally figured out how to do
- extensible ostream logging so that it will seamlessly work with
- ACE_Log_Msg. This required one change to ACE_Log_Record,
- however. In Log_Record.cpp:
-
- In ACE_Log_Record::print(char *, int, ostream, size_t len), added
-
- char *t = this->msg_data_[len - 1];
-
- if (t == '\n')
- *t = '\0';
-
- s << this->msg_data_ << endl;
-
- This is required because the virtual function overflow() in
- streambuf does not get called until endl is called to flush the
- buffer. Note that (at least on AIX), '\n' is treated separately
- from endl and will not cause the overflow() function to be
- called. Thanks to Chris Lahey for this idea.
-
- * ace/OS: Added a new wrapper for strrchr().
-
- * ace/Token_Collection.cpp (renew): Added a cast of
- (const char *) to token_name so that the conversion operator
- will get called correctly. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for reporting this.
-
-Tue Apr 16 13:29:32 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Name_Request_Reply.cpp (decode): Fixed a small bug in encode()
- and decode() of ACE_Name_Request. When doing ntohs and htons, we
- only ought to do it for the name and value part of data. type
- needed to be left alone since it is not a short.
-
-Mon Apr 15 02:31:00 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * include/makeinclude/platform_hpux_orbix.GNU: Added
- David.L.Sames.1@gsfc.nasa.gov (David Sames) config*.h file and
- platform_*.GNU file for HP/UX 9.x using Orbix.
-
- * ace/OS.i: Fixed all uses of pthread_cleanup_{pop,push} so that
- they will work correctly if (1) the OS implements the as macros
- and (2) if these macros must obey strict nesting rules...
- Thanks to Reginald S. Perry <perry@zso.dec.com> for pointing out
- how to do this effectively.
-
- * ace/Thread_Manager.h: Fixed a typo where the typedef
-
- typedef (ACE_Thread_Manager::*THR_FUNC)(int, int);
-
- was lacking a return value. Thanks to Reginald S. Perry
- <perry@zso.dec.com> for reporting this.
-
- * netsvcs/bin/main.cpp (main): Fixed the main program so that it
- passes the options correctly for the statically linked service
- invocations. Thanks to Jesper for reporting this.
-
- * examples/Naming/Client/Client_Test: Updated the client test
- program so that it will work on Window NT, where it's not valid
- to select() on non-socket HANDLEs (ugh). Thanks to Jesper for
- pointing this out...
-
- * Released version 4.0.11 for testing.
-
-Mon Apr 15 00:20:02 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Local_Name_Space.cpp (strstr): Fixed ACE_NS_String::strstr
- to function properly. It was assuming that length of the pattern
- as well as the string was in units of ACE_USHORT16 when in
- reality the length is number of bytes.
-
- * ace/Local_Name_Space.cpp (value_): Modified ACE_NS_Internal so
- that instead of taking an ACE_NS_String for type, it now take a
- char*. It therefore keeps type around as a char*. This should
- help solve some problems we were encountering with byte ordering
- when sending data between NT machines and Sun.
-
- * netsvcs/lib/Name_Handler.cpp: Cleaned up lists_entries by making
- use of pointer to member functions. A single call to the
- appropriate list method takes care of everything.
-
-Sun Apr 14 16:21:32 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/INET_Addr.i (addr_to_string): Swapped the order that the
- hostname and port number are printed to make this consistent
- with the way that ACE_INET_Addr::string_to_addr works. Thanks
- to Ashish Singhai <singhai@delirius.cs.uiuc.edu> for pointing
- this out.
-
- * ace/TLI_Acceptor: Changed the methods to take an ACE_Addr rather
- than an ACE_INET_Addr. This allows other address families (such
- as DECnet) to be used with the TLI wrappers. Thanks to Ajit
- Sagar <asagar@spdmail.spd.dsccc.com> for suggesting this.
-
- * ace/Local_Name_Space.cpp (list_types): Removed the use of
- regular expression matching for the name and value types of the
- name server and replaced these with substring matching instead.
- This is necessary since we're working with wide characters here,
- and it doesn't make any sense to perform regular expressions on
- these puppies...
-
- * ace/Local_Name_Space.cpp: Added a new strstr() method on all the
- ACE_NS_String class so that we can compare substrings for wide
- character types.
-
- * ace/SString: Added a new strstr() method on all the
- ACE_[WSC]String classes so that we can compare substrings,
- even for wide character types!
-
- * apps/gperf: Incorporated the GNU gperf program from the FSF.
- We're going to make some improvements to this for a subsequent
- paper.
-
-Sun Apr 14 15:30:05 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Name_Request_Reply.h: Changed the enum values for the
- Constants such as BIND, REBIND, etc. The new values allow us to
- do bitwise operations using MASK to be able to dispatch the same
- method for all the list operations. For use case of this, please
- see Name_Handler::dispatch().
-
- * netsvcs/lib/Name_Handler.cpp (dispatch): Completely changed
- dispatch() so that now it uses a table of pointer to member
- functions to call the appropriate method when a request
- arrives. In addition, requests for LIST_NAMES, LIST_VALUES, and
- LIST_ENTRIES are now handled by one method called lists() in which
- I factored out a lot of common code. Similarly, requests for
- LIST_NAME_ENTRIES, LIST_VALUE_ENTRIES, and LIST_TYPE_ENTRIES are
- handled by lists_entries(). This has really cleaned up the code.
-
-Sat Apr 13 15:26:51 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Name_Request_Reply.cpp: Made changes so that all
- byte-ordering computations take place in encode and decode
- methods of ACE_Name_Request_Reply and ACE_Name_Reply
- only. Previously some of these computations were taking place in
- Get/Set methods such as name_len() which was highly error prone.
- (init): Added new methods called init() to both ACE_Name_Request
- and ACE_Name_Reply that initialize length to size of transfer_. This
- is needed since the length gets set only once in the constructor
- and after that each call to encode() switches the byte ordering
- causing problems.
-
-Sat Apr 13 11:44:16 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.10 for testing.
-
- * ace: Removed the ACE_HAS_THREAD_T macro from various places.
- This was unnecessary given the new scheme for dealing with
- threading.
-
- * ace/config-linux-pthread.h: Fixed a typo that was preventing
- compilation from working. Thanks to Jan Rychter
- <jwr@icm.edu.pl> for finding this.
-
-Fri Apr 12 13:17:47 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/Gateway/Gateway: The gateway application appears to
- be working again!
-
- * ace/OS.cpp (thr_create): Based on conversations with Chris
- Lahey, modified the pthreads ACE_OS::thr_create implementation
- so that it doesn't try to assign the hthread_t thr_handle since
- this is meaningless in pthreads...
-
- * apps/Gateway/Gateway/Gateway.cpp: Fixed a typo that was causing
- the system to go into an infinite loop when the config file was
- empty!
-
- * apps/Gateway/Gateway/Gateway.cpp: I was forgetting to set the
- line_number to 0 before calling read_entry()...
-
- * ace/Parse_Node.cpp: Fixed a dumb error that arose because I
- forgot that you can't call dlerror() twice and get the same
- result (it returns NULL the second time). As usual, RTFM.
-
- * ace: Removed ACE_HAS_TLI from all the SunOS 4.x config*.h files
- and platform_*.GNU files. There are just too many bugs with TLI
- on SunOS 4.x to support it by default...
-
- * examples: Made some minor fixes to make the examples all compile
- with GCC.
-
- * apps/Gateway/Gateway/Gateway: Reimplemented the Gateway
- application as to be an ACE network service. This should make
- life much easier on platforms with broken C++ templates...
-
- * apps/Gateway/Gateway: Revised the Config_Parser.* files so that
- templates would be split from the non-templates. This avoids
- bugs with some C++ compilers...
-
- * ChangeLog: added the ACE_TEMPLATES_REQUIRE_SPECIALIZATION flag
- to the config-linux-pthreads.h file. Thanks to
- Jean-Francois.Ripouteau@netsurf.org for reporting this, and also
- for archiving the ACE mailing list.
-
-Thu Apr 11 01:37:25 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.9 for testing.
-
- * ace: regenerated all the manual pages and html pages.
-
- * Built ACE successfully on SGI IRIX 5.3 using GNU G++ 2.7.2.
-
- * ace/Thread_Manager: renamed the descriptor() accessor methods to
- hthread_descriptor() and thread_descriptor() to avoid
- ambiguities due to the fact that hthread_t and thread_t can now
- be the same type.
-
- * ace/Thread_Manager: revised the hthread_t so that it is always
- large enough to hold valid thread ids.
-
- * ace: Moved the config-osf1.h file to be named config-osf1-3.2.h
- in anticipation of OSF/1 4.0...
-
- * ace: Changed all occurrences of wchar_t to ACE_USHORT16, which
- is a more portable way of representing wchar_t's so that we can
- pass them across the network... Unfortunately, wchar_t tends to
- be different sizes on different machines, so we can't use the
- binary form!!!
-
- * ace: Added many, many small changes to get ACE to compile on
- OSF/1 3.2D using DEC C++ 5.3. Thanks to Tom Marrs
- <0002104588@mcimail.com> for slogging through all of this stuff!
-
- * ace/Thread_Manager.h: Fixed a stupid oversight where I forgot to
- add a -1 to the trailing argument of spawn*. Thanks to Neil
- Cohen for spotting this.
-
- * ace: Added a new ACE config file for AIX 3.2.5 courtesy of Bob
- Olson <olson@mcs.anl.gov>. In addition, I changed the name of the
- config-aix.h file to be config-aix-4.1.x.h and called the new
- file config-aix-3.2.5.h.
-
- * apps/Synch-Benchmarks/Benchmark.cpp: Added template
- specializations for ACE_TSS and ACE_Atomic_Op. Thanks to Matt
- Stevens for pointing out the need for this.
-
- * ace/CORBA_Handler: Added a number of fixes to get the ACE
- CORBA_Handler to compile on Win32 with Orbix 2.0. Thanks to
- Rich Ryan <rryan@mseng.kla.com> for these fixes.
-
- * ace/OS.cpp (thr_create): Fixed a small bug in the pthreads
- thr_create() code by dereferencing p_thr before casting it
- to hthread_t and assigning it to *thr_handle.
-
- * ace/OS.i: Backed out the previous changes of pthread_cleanup*.
- It turns out that on SunOS 5.5 these macros force a certain
- style of programming this is hard to integrate with the existing
- implementations of other ACE wrapper methods. Fortunately, none
- of this affects existing ACE code since we just use the default
- solaris threads API in this case...
-
- * ace/OS.i: Modified the order of #ifdefs in various ACE_OS::thr_*
- methods to take advantage of the pthreads features on Solaris
- 2.5.
-
- * ace: Removed the last few typos that prevented ACE from building
- on SunOS 4.x with G++...
-
- * ace/Thread_Manager: Changed spawn() and spawn_n() so that
- they optionally take a group parameter and automatically add
- this to an existing thread group. That way we don't need to
- spawn the thread(s) and then reassign them after the fact.
- The new API automatically assigns the thread(s) to the group
- you specify. Thanks to Chris Lahey for this idea.
-
- * ace: Fully integrated POSIX pthreads into the ACE build for
- Solaris 2.5.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: Rearranged the Server
- Logging files so that things will compile and link correctly
- using stock GNU G++.
-
- * ace/Log_Msg.cpp (ACE_Log_Msg): Forgot to initialize the ostream
- * to 0. This was causing problems for Win32...
-
- * ace: *Finally* got the static and dynamic ACE libraries to
- compile on SunOS 4.x using stock G++!
-
- * ace/Synch_T.h: Added a new macro called ACE_SYNCH that will
- be ACE_NULL_SYNCH if !ACE_HAS_THREADS and ACE_MT_SYNCH if
- ACE_HAS_THREADS.
-
- * ace/Service_Record.cpp: Changed this to use ACE_SYNCH. This
- will fix template problems with G++ on SunOS 4.x.
-
- * build/SunOS5.5/ace/OS.i (sema_wait): Changed all uses of
- ::pthread_cleanup_{push,pop} to pthread_cleanup_{push,pop} since
- these are implemented as macros on Solaris....
-
-Thu Apr 11 19:43:33 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * examples/Naming/Dump_Restore/Dump_Restore.cpp (init): Modified
- Dump_Restore in order to work correctly without having
- Name_Options around as a Singleton.
-
- * examples/Naming/Client/Client_Test.cpp (set_host): Modified
- Client_Test in order to work correctly without having
- Name_Options around as a Singleton. It simply uses the accessor
- provided by Naming_Context to get to Name_Options.
-
- * ace/Name_Options.cpp: Changed Name_Options so that it is no
- longer a Singleton. As a result, now there is an instance of
- Name_Options per Naming_Context. Note that for an application to
- change Name_Options, it can use the accessor function provided
- in Naming_Context. As a consequence of all these changes, we can
- now have multiple Naming_Contexts per application.
-
-Wed Apr 10 20:19:50 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.h: Incorporated a mapping for Solaris 2.5 pthreads so
- that it fits in nicely with the earlier ACE pthreads support.
- From now on, the pthreads API will be the default threading
- scheme for ACE on Solaris 2.5...
-
- * ace: Added the file name to every *.cpp and *.i file in ACE.
- This makes it easier to figure out what's what when looking at
- the source code. Thanks to Chris Lahey for suggesting this.
-
- * ace/CORBA_Handler.cpp (ACE_CORBA_Handler): Added bodies for
- the copy constructor and assignment operator of ACE_CORBA_Handler
- (which are private) since some compilers generate link errors
- for these! Thanks to Rich Ryan <rryan@mseng.kla.com> for
- pointing this out.
-
- * ace/Synch_T.cpp (ts_get): at line 270 (within
- ACE_TSS<TYPE>::ts_get (void) const) there was a keycreate() call
- that did not have an instance pointer pass in with it. The
- symptom has been that if the last active task has been finished
- all active tasks being created afterwards won't get the close()
- hook invoked. I've fixed this in order to solve a mysterious
- bug with ACE_TSS. Thanks to the ever-vigilant Detlef for
- reporting this bug and fix.
-
-Wed Apr 10 01:56:52 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu)
-
- * ace: Added the ACE_TEMPLATES_REQUIRE_SPECIALIZATION to
- config-sunos5.5-g++.h file. This should allow ACE to build
- correctly. Thanks to Adam Miller <adam@royalblueny.com> for
- pointing this out.
-
- * ace: Installed SunOS 5.5, so now we can finally test pthreads!
-
- * ace/OS: Modified the implementation of mutex_t for Win32 so that
- it automatically selects the CRITICAL_SECTION or the HANDLE form
- of Mutex depending on whether the type argument is USYNC_THREAD
- or USYNC_PROCESS, respectively. This now means that all the
- existing ACE code that used ACE_Condition<ACE_Mutex> will
- continue to work correctly on Win32 and UNIX!
-
-Tue Apr 9 23:04:30 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu)
-
- * ace/Synch: Somehow, the definitions for ACE_Thread_Semaphore and
- ACE_Process_Semaphore were MIA. I've added the implementations.
- Thanks to Bruce Worden <bruce@betsy.gps.caltech.edu> for
- noticing this...
-
-Tue Apr 9 02:16:02 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Service_Config.cpp: reordered the #includes in this file so
- that it works correctly on Win32. Thanks to Rich Ryan
- <rryan@mseng.kla.com> for help with this.
-
- * ace/Auto_Ptr.cpp (remove): added the implementations of the
- auto_ptr::remove() and auto_array_ptr::remove() static methods.
- Thanks to Chris Lahey for noticing their absence...
-
- * ace/Auto_Ptr: Added the #pragma implementation ("Auto_Ptr.cpp")
- statement if defined ACE_TEMPLATES_REQUIRE_PRAGMA to work on
- AIX. Thanks to Chris Lahey for this.
-
- * ace/Makefile: Moved Auto_Ptr from FILES to TEMPLATE_FILES to
- work on AIX. Thanks to Chris Lahey for pointing this out.
-
- * Modified a bunch of the apps and example Makefiles so that
- things will build better using G++.
-
- * ace/Name_Options.cpp (parse_args): Made the "database" name the
- same as the process name by default...
-
- * ace/Reactor.h: Changed the type of current_ in
- ACE_Handler_Repository_Iterator from size_t to ssize_t so that
- this can handle negative numbers. Thanks to Mark Zusman
- <marklz@rotem.technion.ac.il> for reporting this.
-
-Mon Apr 8 23:33:15 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * netsvcs/lib/Name_Handler.cpp (recv_request): Fixed a small
- bug. In recv_request() ntohl was being called again on length
- which was causing problems since the length was already in host
- byte order. The ACE Name Server should now be working on NT.
-
-Mon Apr 8 02:14:30 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Fixed a number of minor problems that caused duplicate
- symbols when linking ACE with G++ (no-repo) on SunOS 5.x and
- SunOS 4.x. Thanks to Andy Gokhale for help with this.
-
- * ace: Added Jan Rychter <jwr@icm.edu.pl> very nice contribution
- of pthreads and DCE threads to ACE. This should make life
- easier for Linux users and users of other pthreads packages.
-
- * ace/Service_Config.cpp (process_directives): Changed the code to
- use an auto_ptr to make sure that we always release the
- ace_obstack memory, regardless of how we exit.
-
- * ace/OS.i (strerror): Changed sys_errlist to _sys_errlist to work
- around bugs with SunOS 4.x. This will undoubted break some
- other twisted UNIX system.
-
- * ace/Local_Tokens.cpp (acquire): Added a return 0 at the very
- end... Thanks to Chris Lahey for reporting this (yet
- again... ;-)).
-
- * ace/Parse_Node: Made a bunch of small changes to deal with the
- fact that there's no dlerror() equivalent on NT...
-
- * ace/Task.h: The static function instance() should return
- ACE_Task_Exit<ACE_SYNCH_1>* (or <ACE_SYNCH_2>), not
- ACE_Task_Exit *. Thanks to Chris Lahey for spotting this.
-
- * ace/Thread_Manager.cpp: added an argument to the exit() method
- that allows applications to exit without calling thr_exit. This
- would allow the method to be called from within a pthread
- cancellation cleanup routine, without calling thr_exit a 2nd
- time. Thanks to Chris Lahey for suggesting this.
-
- * ace/Log_Record.cpp (operator <<): Changed the verbose option so
- that it is an attribute, this will allow the ostream to print
- verbose information if necessary. Thanks to Chris Lahey for
- suggesting this change.
-
- * ace/config-win32-msvc*.h: Added the
- ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES flag since it appears
- that this causes problem with some versions of MSVC++ 4.0...
-
- * Released version 4.0.6 for testing.
-
- * netsvcs/lib/Server_Logging_Handler.h: #included the
- Svc_Handler.h file, that absence of which was causing problems
- for HP/UX. Thanks to Richard Orr
- <rorr@costello.den.csci.csc.com> for reporting this.
-
- * Made a few minor changes to the source to make sure that it
- compiles correctly on SunOS 5.x with G++.
-
- * ace/Thread_Manager.h: Added the insert() method for the non-MT
- version of Thread_Manager. Thanks to Alexandre Karev
- <akg@na47sun05.cern.ch> for reporting this.
-
- * ace/Task: Renamed the static double-check lock_ to
- ace_task_lock_ to avoid a name conflict with the existing
- this->lock_ instance in each class. Thanks to Prashant for
- tracking this down...
-
-Sun Apr 7 14:40:05 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
- Rolled back a change that replaced #defines with typedefs. It
- turned out the #defines were there for a reason... Thanks Neil
- B. Cohen <nbc@metsci.com> for pointing this out...
-
- * ace/OS.h: Added a new check to deal with the fact that many
- versions of Pthreads don't support tid_t (which seems to be an
- AIXism...).
-
-Thu Apr 4 01:19:19 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Officially released version 4.0.5...
-
- * ace/OS.h (ACE_TSS_TYPE): Somehow the ACE_TSS_TYPE macros ended
- up *before* the inclusion of Time_Value.h, which meant that
- these macros weren't being expanded properly. This may help
- explain odd behavior with ACE TSS.
-
- * ace/Thread_Manager.cpp (insert): Added a new method that allows
- us to insert a thread into an ACE_Thread_Control after it's been
- constructed.
-
- * ace/Message_Block: Fixed a typo in the init() method. Thanks to
- Ross Dargahi <rossd@krinfo.com> for noticing this.
-
- * ChangeLog: Finally got all of ACE built on SunOS 5.x and SunOS
- 4.x using only the stock GNU GCC compiler (i.e., no template
- repository...). This should make it easier to port to other
- versions of G++.
-
- * ace/Task: Modified the ACE_Task and ACE_Task_Exit implemenation
- so that it only uses 1 TSS key per ACE_Task template
- instantation, rather than 1 TSS key per ACE_Task instance. This
- works around horrible limitations with Win32...
-
- * ace/Thread_Manager: Added new methods to set and get the
- Thread_Manager used in a Thread_Control.
-
- * ace/Pipe.cpp (open): Fixed a bug in where ACE_Pipe::open did not
- set this->handles_, thus a garbage handle gets registered.
- Inserted the following two lines at line 53 of Pipe.cpp:
-
- this->handles_[0] = reader.get_handle ();
- this->handles_[1] = writer.get_handle ();
-
- Thanks to Kirk Sinnard <kirk.sinnard@lawson.com> for this fix.
-
- * ace/OS.h: Added a couple of fixes for the SCO port. Thanks
- again to Matt Newhook <matthew@neweast.ca>
-
- * ace/OS.cpp: Integrated Detlef's clever scheme for freeing up
- thread-specific storage correctly on Win32...
-
- * ace/Task.cpp (ACE_Task): Made sure to initialize the
- next_-pointer of ACE_TASK and Message_Queue point to NULL.
- This fixes a problem on NT. Thanks to Karlheinz for
- noticing this...
-
- * include/makeinclude/rules.lib.GNU (VLIB): Fixed up the ACE
- makefiles so that we can now build on SunOS 4.x correctly
- without using the template repositories...
-
- * ace/Service_Config.cpp: Added a bunch of template
- specializations so that GNU G++ can be used to compile ACE on
- SunOS 4.x *without* requiring the template repository hacks...
- Thanks to Mark Zusman for helping with this.
-
-Wed Apr 3 00:55:12 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * examples/Reactor/Misc/test_reactors.cpp: Added a new torture
- test of the ACE_Reactor and ACE_Task. Thanks to Detlef for
- contributing this...
-
- * netsvcs/bin/Makefile: Removed a stray -lACE_svcs from the
- Makefile. Thanks to Matt Stevens for reporting this.
-
- * ace/Synch.cpp: Fixed two mistakes related to keeping INLINE on
- the get_thread_id() and get_nesting_level() when I moved them
- into the *.cpp file... Thanks to Matt Stevens for finding this.
-
- * ace/Reactor.cpp (owner): modified owner() so that it returns
- the original owner when setting a new owner. This makes it
- possible to write code like this:
-
- thread_t t;
-
- reactor->owner (ACE_Thread::self (), &t);
- reactor->handle_events ();
- reactor->owner (t);
-
- * ace/SOCK_Connector.cpp (connect): Added an additional check for
- errno == EWOULDBLOCK for non-blocking connects due to screwy
- semantics of Win32 non-blocking sockets...
-
- * netsvcs/lib/Client_Logging_Handler: Fixed a very obscure bug
- that arose due to the way that UNIX select() interacts with
- SVR4 MSG_BAND data. It turns out that you must use the
- ACE_Event_Handler::EXCEPT_MASK to get this to work properly
- (gag). This stuff is much easier with SVR4 poll().
-
-Tue Apr 2 13:57:05 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.i: Fixed an error compiling the new Log_Msg.cpp because
- when it inlined OS.i, there were references to
- ACE_OS::thread_mutex_*() before the functions were declared
- inline. The references were assumed to be external, and then
- when the linkage was actually declared as inline, the compiler
- choked. To fix this, in OS.i, all the thread_mutex_* calls
- where moved above the first reference, which was in
- ACE_OS::cond_broadcast(). Also moved the mutex*() calls since
- they are referenced by the thread_mutex calls. So the order is
- mutex*(), then thread_mutex*(), and then cond*(). Thanks to
- Chris Lahey for reporting this.
-
- * netsvcs/lib/Client_Logging_Handler.cpp: Added missing return
- values in some of the methods. Thanks to Tim Harrison for
- spotting this...
-
- * ace/Map_Manager.cpp (shared_unbind): It was possible that INT_ID
- could be assigned a value from a previously unbound map entry.
- The shared_unbind matches the ext_id, but does not see if the
- entry had previously been unbound. This causes a problem if the
- INT_ID type is a pointer type, and the user of the map deletes
- objects as a result of the unbind returning a 0. The correct
- solution is to include a test for is_free in the shared_unbind
- before checking the equality of the ext_id. Thanks to Phil
- Mesnier <phil@envision.com> for reporting this.
-
- * ace/Reactor.cpp (next): Fixed a bug that prevented the
- iterator's next() method from detecting the end of the
- iteration. Thanks to Mark Zusman <marklz@rotem.technion.ac.il>
- for reporting this.
-
- * ace/Reactor.cpp (advance): Fixed a bug that prevented the
- iterator from advancing. Thanks to Mark Zusman
- <marklz@rotem.technion.ac.il> for reporting this.
-
- * ace/Log_Msg.cpp (open): Added a check for logger_key being NULL,
- in which case we log to STDERR rather than segfault...
-
- * netsvcs/lib/Server_Logging_Handler.h: Fixed a typo in
- the declaration of
-
- ACE_SVC_FACTORY_DECLARE (ACE_Server_Logging_Acceptor)
-
- Thanks to Neil Cohen for finding this.
-
-Mon Apr 1 00:17:21 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu)
-
- * ace/Time_Value.i: Fixed two stupid bugs in the Time_Value
- relational operators. Thanks to Mathew Newhook
- <matthew@thor.udc.neweast.ca> for pointing this out.
-
- * ace/OS.h: Added an extern "C" block around the netdb, net/if.h,
- netinet/in.h, arpa/inet.h to work around problems with SCO.
- Thanks to Mathew Newhook <matthew@thor.udc.neweast.ca> for this.
-
- * ace/Reactor: Merged the ACE_Pipe into the Reactor
- implementation. This cleans up some nasty OS-specific code in a
- clean way.
-
- * ace/CORBA_Handler.cpp (ACE_MT_CORBA_Handler): Fixed some typos
- that arose during the transition to the ACE_Pipe.
-
- * ace/Pipe: Added a new open() method that doesn't return the
- handles, it just stashes them away for safe keeping. This is
- useful for places like the Reactor.
-
- * ace/Local_Name_Space.h: Added ACE_Export to the front of
- ACE_NS_String. Thanks to Detlef for suggesting this.
-
- * From now on, I'll be numbering each new release of ACE with a
- different minor number. However, the latest version of ACE will
- also always be available at
-
- http://www.cs.wustl.edu/~schmidt/ACE.tar.gz
-
- This is useful if you just want to get the latest one without
- having to bother with keeping track of minor numbers. For
- instance, that way you can still keep that reference in my
- bookmark list and you don't have to remodify it with every
- release. Thanks to the ever-vigilant Chris Lahey for suggesting
- this.
-
- * ace: added new a ACE project file (ace.mdp) and Makefile
- (ace.mak) to create ACE as a DLL on Win32. This should greatly
- simplify the Win32 build process...
-
- * INSTALL: Added new INSTALL file explaining how to build for
- Win32.
-
- * ace/Thread_Manager.cpp: Fixed a horrible bug with Win32. On
- reasonable systems ACE_Thread::exit() should not return.
- However, due to horrible semantics with Win32 thread-specific
- storage this call can return (don't ask...). Therefore, we need
- to reacquire the mutex so that we don't get burned when the
- Guard automatically releases it when this method returns. Thanks
- to Tim for helping me figure this out.
-
- * ace: Fixed some problems with errno in Remote_Tokens and
- Local_Tokens.
-
- * ace/Reactor.cpp: Fixed an annoying preponderance of useless
- ACE_MT_SAFE #ifdefs in the Reactor implementation. Thanks to
- Gerolf Wendland <wendland@hpp015.mch2.scn.de> for pointing this
- out!
-
-Sun Mar 31 13:09:27 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu)
-
- * ace/OS: Changed the implementation of cond_t and rwlock_t for
- Win32 to use thread_mutex_t (i.e., CRITICAL_SECTIONS) rather
- than mutex_t (i.e., Win32 Mutexes). This should improve
- performance without sacrificing generality (of which there is
- none at the moment since we don't have process-wide condition
- variables or readers/writer locks on Win32 anyway..
-
- * ace/Thread_Manager.cpp (remove_thr): Fixed bugs in the
- ACE_Thread_Manager class. The wait() member grabbed the
- Thread_Mutex lock_, then (if the current_count is not zero)
- grabs the Condition lock zero_cond_. Doing so, however
- implicitly released lock_, which meant that another thread could
- get into wait(), and wait on zero_cond_. zero_cond_ was only
- signaled from ACE_Thread_Manager::remove_thr() when the
- current_count_ is zero, but it signaled with
- ACE_Condition_Thread_Mutex::signal(), which only releases one
- thread that is waiting on the Mutex. Thus, any other threads
- waiting on zero_cond_ would never be resumed. The fix was to
- use ACE_Condition_Thread_Mutex::broadcast() rather than
- ACE_Condition_Thread_Mutex::signal() in
- ACE_Thread_Manager::remove_thr(). This fix is only reliable
- since remove_thr() is called only when ACE_Thread_Manager::lock_
- is held by the calling thread. Thank to Bruce Worden
- <bruce@seismo.gps.caltech.edu> for reporting problem and
- suggesting this fix.
-
- * ace/Token: Modified this class so that it only works with
- ACE_Thread_Mutex (which is more precise than what was going on
- before...).
-
- * ace/Synch.h: Modified ACE_RW_Process_Mutex so that on Win32 it
- uses ACE_Process_Mutex until we've got a working
- RW_Process_Mutex for Win32...
-
- * ace/Synch: Removed the ACE_Process_Barrier until we get a
- working implementation...
-
- * ace/Synch: Changed the ACE_Barrier so that it only tries to work
- within a single process.
-
- * ace: Changed all uses of ACE_Condition_Mutex to
- ACE_Condition_Thread_Mutex to reflect what's really going on
- here...
-
- * Changed all uses of ACE_Mutex to ACE_Thread_Mutex throughout
- ACE. This is *much* more meaningful and makes it possible to do
- some great optimizations on Win32!
-
- * ace: Changed all uses of ACE_Mutex_Guard to
- ACE_Thread_Mutex_Guard. This is a more accurate name for how
- this is used in ACE.
-
- * netsvcs/lib/Client_Logging_Server: Reengineered the ACE
- Client_Logging service so that fits into the ACE network service
- format. This version is particularly interesting since it
- illustrates a "Connector-driven" service. In contrast, all the
- other ACE network services are "Acceptor-driven" services.
-
- * netsvcs: Merged the implementation of all the ACE network
- services into a single ./netsvcs/lib directory. Each of these
- is now a fully dynamically linkable service. Created a single
- main.cpp program in the ./netsvcs/bin directory. This main
- illustrates how to dynamically link an or all of the ACE network
- services to form complete applications. Thanks to Prashant for
- help with this.
-
- * ace/OS.cpp: Changed readv() and writev() so that they will once
- again compile for Win32. Note, however, that if you try to
- readv() and writev() on the same descriptor you will lose since
- they are not atomic! However, this stuff is stuff useful if
- you're *not* reading/writing to a common descriptor...
-
- * ace/Synch_T.cpp: Removed the ACE_Null_Condition<> template.
- This didn't really make any sense...
-
- * ace/OS: Changed the test of lock_.get_nesting_level() in
- ACE_TSS_Cleanup::exit () to account for the fact that a
- ACE_Recursive_Thread_Mutex now starts out with a nesting level
- of 1 when it is first acquired.
-
- * ace/Synch_T: Removed the implementation of ACE_Recursive_Lock.
- It just doesn't generalize correctly to other types of
- synchronization mechanisms...
-
- * ace/Synch: Reimplemented ACE_Recursive_Thread_Mutex using Dave
- Butenhof's <butenhof@zko.dec.com> strategy. This fixes some
- latent race conditions in the original implementation.
-
- * ace: Changed the name of ACE_Recursive_Mutex to
- ACE_Recursive_Thread_Mutex since the current implementation
- really only works for Thread_Mutexes or Thread_RW_Mutexes...
-
- * ace: Removed the "Assert.h" file and moved its functionality
- into Log_Msg.h. This is more consistent with the rest of the
- error reporting and logging in ACE and also avoids some nasty
- circular include problems.
-
- * ace/Local_Tokens.cpp: Changed the use of ACE_RETURN so that it
- passes in errno.
-
- * ace/Log_Msg: Changed the arguments to the ACE_RETURN macro so
- that errno can be returned explicitly.
-
-Sun Mar 31 15:52:58 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Local_Name_Space.cpp (create_manager): Added three new
- methods -- list_name_entries, list_name_values, and
- list_name_types. They work similar to list_names, list_values,
- and list_types (respectively) except they return the entire
- tuple associated with a name binding.
-
-Sat Mar 30 16:46:32 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/SPIPE_Stream.i (send_handle): There was a typo -- the
- parameter shouldn't be "const ACE_HANDLE handle", it should
- just be ACE_HANDLE handle.
-
-Sat Mar 30 16:09:25 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu)
-
- * INSTALL: Added new Win32 installation instructions to build
- ACE as a DLL.
-
-Sat Mar 30 14:42:02 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Carefully tested ACE on SGI and SunOS 5.x using G++ and CC.
- Everything seems to work now... Released version 4.0.2.
-
- * ace/Acceptor.cpp (ACE_Strategy_Acceptor): Added default
- initializations of NULL for service_name_ and
- service_description_ in the ACE_Strategy_Acceptor's default
- constructor.
-
- * ace: Fixed a slew of warnings for HP/UX. Thanks to John Morey
- for reporting these.
-
- * ace/FILE.h (ACE_FILE_Info): Changed the type of field size_ from
- size_t to off_t to avoid warnings from C++ compilers...
-
- * ace/OS.cpp (ftruncate): Added a new function for platforms like
- SCO that lack ftruncate(). Thanks to Matthew Newhook
- <matthew@neweast.ca> for contributing this.
-
-Sat Mar 30 12:41:16 1996 Douglas C. Schmidt <schmidt@pride.cs.wustl.edu>
-
- * ace: Removed the ACE_svcs library for the time being and merged
- everything back into libACE. There were two reasons for this
- change:
-
- 1. There is a subtle dependency between the ACE_Reactor and the
- ACE_Local_Tokens* stuff when deadlock detection is enabled.
- This was causing problems.
-
- 2. This was driving GNU G++ nuts because of the need to
- do the "prelink."
-
- Sooo, for the time being, there's just one ACE library. If
- anyone wants to take the time to split everything up so that it
- works for all different platforms and send me the fixes I'll be
- glad to include this in ACE.
-
- * ace/Thread.i: Made the ACE_Thread::thr_self() methods call
- down to the ACE_OS::thr_self() methods for the case where
- the platform doesn't support threads. This means that we
- only have to set the default thread id in one place...
-
-Sat Mar 30 11:53:31 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * bin/class2info.awk: Modified the handleClass() AWK function so
- that it can correctly deal with the new ACE_Export and
- ACE_Svc_Export tags needed to build ACE DLLs... Here's the
- trick:
-
- sub( "^[\t ]*class[\t ]+(ACE_[.]*Export[\t ]+)?", "", $0 )
-
- completely intuitive, eh? ;-)
-
- * apps/Gateway: Reimplemented the Gateway prototype so that it
- uses the new Reactor cancel_wakeup() and schedule_wakeup()
- methods instead of mask_ops().
-
- * ace/Reactor: Added new high-level <Event_Handler> "scheduling"
- operations called schedule_wakeup() and cancel_wakeup(). These
- methods utilize the lower-level Reactor mask_ops() methods to
- schedule and cancel Event_Handlers for subsequent dispatching by
- the Reactor. I added these new interfaces because they are more
- intuitive than calling mask_ops(), which is a non-descriptive
- name unless you understand the Reactor implementation...
-
- * ace/config-irix5.*.h: It turns out that on IRIX 5.x the
- bi-directional SVR4 pipe semantics are *disabled* by default.
- Therefore, I've changed the config-irix4.*.h files to comment
- out ACE_HAS_STREAM_PIPES.
-
-Fri Mar 29 08:25:33 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/ACE.cpp (ldfind): Changed the character given to strtok() to
- account for the differences in UNIX and Win32 described in the
- follow bullet.
-
- * ace/OS.h: UNIX and Win32 use different characters to separate
- pathnames in their runtime LD search path (':' and ';'
- respectively). Therefore, I've added new macros to ACE OS to
- account for this stuff portably.
-
- * ace/OS.i: Changed the behavior of the ACE_OS::thr_self() methods
- so that they always return 1 if ACE_HAS_THREADS is *not*
- enabled. This makes application code work correctly across
- threaded and non-threaded platforms.
-
- * ace/OS.i: Changed the return value of the Win32 arm of the
- ACE_OS::dlopen() and ACE_OS::dlsym() functions so that they are
- now identical to the way that UNIX behaves.
-
- * ace/Svc_Conf.y: added a #define for ACE_BUILD_DLL to make Win32
- happy...
-
- * ace/Synch.i: Fixed a number of bugs in the ACE_Mutex and
- ACE_Thread_Mutex tryacquire_read() and tryacquire_write()
- methods. I was calling mutex_lock() rather than
- mutex_trylock()! Thanks to Prashant for finding this.
-
- * ace/OS.cpp (exit): Fixed a bug caused by the fact that the test
- for the nesting level of the recursive mutex should have been
- for > 0 rather than > 1. Thanks to Kirk Sinnard
- <1764@mn.lawson.lawson.com> for tracking this down!
-
- * ace/Log_Msg: Enhanced ACE_Log_Msg so that it automatically
- caches the process id. This makes it more robust even if users
- don't call open()!
-
- * examples/Connection/non_blocking/CPP-connector.cpp Fixed a bunch
- of typos that caused templates to fail on HP/UX. Thanks to Neil
- Cohen for spotting this.
-
- * ace/Shared_Memory_SV: Change all uses of "int id" to "key_t id"
- to reflect the new use of key_t in the Memory_Pool.
-
- * ace/Memory_Pool.cpp (ACE_MMAP_Memory_Pool): Fixed a potential
- but in the construction of an MMAP memory pool. Because NT uses
- strings rather than integers to name its semaphores we were
- passing in junk to the NT Process_Mutex initializer. Arrgh! I
- fixed this problem by typedef'ing key_t to be char * on Win32
- and then updating the ACE_DEFAULT_SEM_KEY to be
- "C:\\temp\ace.sem" rather than 1234.... Also added a new macro
- called ACE_INVALID_SEM_KEY, which is NULL on NT and -1 on UNIX.
-
- * ace/Log_Msg.cpp (instance): Fixed a typo for HP/UX and
- other non-threaded platforms!
-
- * ace/Synch_T.cpp (ACE_TSS_Guard): Added another small fix
- to ACE_TSS_Guard to make sure we free up the key when we
- go away.
-
-Thu Mar 28 15:28:44 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.h: changed the names of macros ACE_DYNAMIC_SVC* to new
- names that reflect their new, more general nature now that we've
- got the ACE_Static_Svcs stuff...
-
- * ace/Service_Config.cpp (load_defaults): Added a very nice
- mechanism that generalizes the configuration of statically
- linked services. This makes it possible to insert statically
- linked services into a program without changing any of the
- existing ACE_Service_Config code. These static services can
- then be enabled via the svc.conf file using the "static"
- directive. Thanks to Matthew Newhook <matthew@neweast.ca> for
- suggesting this and for doing the bulk of the implementation.
-
- * ace: Commented out the ACE_TRACE calls in ACE_Unbounded_Set,
- ACE_OS, and all the ACE synchronization wrappers to work around
- some horrible dependencies with Win32 and thread-specific
- storage... The moral here is that you have to be careful what
- you trace because circualar dependencies abound... My new
- policy is that low-level routines are not automatically traced
- because they can cause infinite recursion.
-
- * ace/Synch_T.cpp: Fixed a nasty bug with ACE_TSS_Guard. This was
- causing programs that uses ACE_TSS_Guard to segfault... Thanks
- to Kirk Sinnard <kirk.sinnard@lawson.com> for reporting this.
-
- * ace/Synch: Added "lock()" methods to all the ACE synchronization
- wrappers to return the underlying C level object... This is
- necessary at some points in ACE.
-
- * ace/Synch: Fixed a horrible bug in ACE_Recursive_Mutex and
- ACE_Recursive_Lock that was causing instant deadlock because the
- non-recursive Solaris/Pthread mutex was being acquired too
- eagerly...
-
-Thu Mar 28 12:14:57 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Map_Manager.cpp (rebind): Added a new method called resize()
- which increases the size of the map. Both open() and
- shared_bind() make use of this method to dynamically increase
- the size of the map.
-
- * ace/Local_Name_Space.cpp (shared_bind): Modified shared_bind()
- in accordance to the changes to Map_Manager. shared_bind() no
- longer has to check if the map runs out of room since
- Map_Manager dynamically grows the map.
-
- * ace/Map_Manager.cpp (shared_bind): Changed shared_bind() so that
- when the map reaches max_size_, we grow the map by DEFAULT_SIZE
- by making a call to open().
-
-Wed Mar 27 20:00:47 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Local_Name_Space.cpp (shared_bind): Fixed a bug which was
- allocating memory for a name binding which would fail on a bind
- since there already existed a binding. This was causing the
- mapped-file to grow even when binds would fail.
-
-Tue Mar 26 13:49:24 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/INET_Addr.i (addr_to_string): Moved the order of
- get_host_addr() so that it comes before addr_to_string().
- Thanks to Neil Cohen for finding this.
-
- * ace/Synch: Added a new implementation of ACE_Thread_Mutex that
- takes advantage of the new ACE_OS::thread_mutex_* mechanisms.
-
- * ace/OS: Added a new set of ACE_OS::thread_mutex_* mechanisms
- that map efficiently to either Win32 CRITICAL_SECTIONs or UNIX
- mutex_t's with type set to USYNC_THREAD. This allows ACE to
- take advantage of the lightweight Win32 synchronization
- mechanisms. When Windows NT 4.0 comes out, we'll at last have a
- perfect mapping since WinNT 4.0 supports
- TryEnterCriticalSection!
-
-Tue Mar 26 17:35:31 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Map_Manager.cpp: Added two new methods -- total_size() and
- current_size() which return the max_size and current_size of the
- map respectively.
-
-Mon Mar 25 20:22:25 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Service_Config.cpp (initialize): Updated the use of ACE_ARGV
- to use the new method names.
-
- * ace/ARGV.cpp (ACE_ARGV): Changed the name of the two main
- methods of ACE_ARGC from count() and operator&() to argc() and
- argv(). This seems much more consistent with UNIX and C/C++
- naming conventions.
-
- * ace/ARGV.cpp (ACE_ARGV): Added environment variable substitution
- to the ACE_ARGV class using the new ACE::strenvdup() method.
- This is transparently available to the ACE Service Configurator
- now, which enables the svc.conf file to include things like
- this:
-
- dynamic Name_Service Service_Object *
- name_svc.so:make_Name_Service() "-p $PORT -h $HOST"
-
- * ace/ACE: Added a new function called strenvdup() that returns a
- dynamically allocated duplicate of its <str> argument,
- substituting the environment variable if str[0] == '$'.
-
- * ace/Naming_Context: Modified this class so that it now inherits
- from ACE_Service_Config. This enables application programmers
- to dynamically link instances of ACE_Naming_Context into their
- applications via the svc.conf file.
-
- * ace/OS.i (access): Added a new wrapper for the access() method.
-
- * ace/Local_Name_Space.cpp: Fixed an error in each list_xxx
- methods. If there's an error in the for-loop we must still call
- ACE_OS::free() to release resources. Thanks to the
- ever-vigilant Karlheinz Dorn for spotting this.
-
- * ace/Strategies: added virtual methods with name dump() to
- ACE_Scheduling_Strategy, ACE_Schedule_All_Reactive_Strategy, and
- ACE_Schedule_All_Threaded_Strategy. These methods are
- referenced in ACE_Strategy_Acceptor::dump() method
- (Acceptor.cpp). Thanks to Alexandre Karev for reporting this.
-
- * include/makeinclude: Added a number of changes to allow ACE to
- build shared libraries correctly on AIX. Thanks to Chris Lahey
- for these fixes.
-
- * ace/Makefile: added tempinc to the list of directories to delete
- for "clean". Also, between the call to the two sub make files,
- added a $(RM) -rf tempinc. Since we make both libs from the
- same directory, we need to delete the tempinc directory to be
- sure we don't get the templates generated for libACE included in
- libACE_svcs.
-
- * ace/OS.i: Improved the mapping between ACE Win32 GetLastError()
- values and POSIX-like errnos. This is now centralized in the
- ACE_FAIL_RETURN macro.
-
- * examples/Threads/test_thread_specific.cpp: Added many new tests
- to exercise the ACE thread-specific storage mechanisms on Win32
- and UNIX.
-
-Mon Mar 25 4:00:01 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Name_Options.cpp (parse_args): Added a new data variable
- called database_ that keeps the name of the name server
- database. Also added accessor methods for this.
-
- * ace/Local_Name_Space.cpp (create_manager): Changed
- create_manager() to use ACE_Name_Options::instance ()->database
- () instead of ACE_Name_Options::instance ()->process_name().
-
- * ace/ACE.cpp (ldopen): Added a new method called ldopen that
- finds a file either using absolute path or using
- LD_LIBRARY_PATH. If the file is found, it opens the file and
- returns a pointer to the file.
-
- * ace/Parse_Node.cpp: used the new ACE::ldfind() method to locate
- the shared object file. This makes it possible to put
- "relative" names into svc.conf files and then allow ACE to
- locate the appropriate shared object DLL.
-
- * ace/ACE: added new methods called ldopen() and ldfind() that
- find the file <filename> either using absolute path or using
- LD_LIBRARY_PATH. If found, ldopen() opens the file and returns
- a pointer to the file.
-
-Sun Mar 24 10:41:12 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Compiled ACE successfully on Windows '95.
-
- * ace/OS: Totally redid the ACE thread-specific storage cleanup
- mechanism in OS.cpp to avoid bugs with the previous
- implementation.
-
- * ace/Synch_T: Modified ACE_TSS_Guard so that it will call
- ACE_OS::thr_keyfree () when it's finished. This should help to
- eliminate the unbounded use of thread-specific storage slots
- within a thread.
-
- * ace/Thread: added a new method keyfree() that calls down to the
- ACE_OS::thr_keyfree ().
-
- * ace/Thread_Manager.cpp: Modified the semantics of
- ACE_Thread_Manager::exit () so that it "always" calls
- ACE_Thread::exit () even if the user hasn't registered this
- thread with the thread manager. This avoids some subtle
- problems that arise typically when I forget to put an
- ACE_Thread_Control around the main() function.
-
- * examples/Threads/test_thread_specific.cpp: Added new tests to
- ensure that the Win32 TSS cleanup logic is working correctly!
-
- * ace/Log_Msg: Moved the definition of the ACE_FIFO_Send_Msg queue
- from the Log_Msg.h file to the Log_Msg.cpp file. The MSVC++
- compiler was having problems with this when building a DLL.
- Besides, this needs to be replaced with Sockets for Win32
- anyway...
-
- * ace/OS.cpp: Put a safe guard in the readv() and writev()
- emulations so that they return ACE_NOTSUP_RETURN if
- ACE_HAS_THREADS is enabled. This is necessary because the
- readv() and writev() emulations are *not* atomic if multiple
- threads are used. If someone can provide an atomic
- implementation I'll enhance the code to remove the existing
- restrictions.
-
- * ace/OS: Created a new macro called ACE_SYSCALL_FAILED, which is
- mapped to 0xFFFFFFFF on Win32 and -1 on UNIX.
-
- * ace/Synch and Synch_T: cleaned up the implementation of the
- Recursive_Lock and Recursive_Mutex to use the ACE_Guard classes.
- This simplifies the code.
-
-Sat Mar 23 16:53:14 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace: Updated all ACE classes to use the new ACE_Export macro.
- This will enable them to transparently be used to create a Win32
- DLL. Also added ACE_BUILD_DLL to all the *.cpp files.
-
- * tests/CPP-inserver.cpp (main): Modified CPP-inclient.cpp and
- CPP-inserver.cpp to use non-blocking I/O. In particular,
- CPP-inserver times out on select and then checks to see if any
- connections have arrived. Both applications are also working on
- NT.
-
-Sat Mar 23 15:02:47 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Local_Tokens.cpp (proxy_): Modified the print statement for
- local tokens to account for the fact that thread ids can be
- unsigned on some platforms.
-
- * ace/Log_Msg.cpp (log): Modified the output format of the %t
- directive to ACE_Log_Msg::log() so that it prints values in
- unsigned form rather than signed form. This fixes a bug with
- Win32 on Windows '95.
-
- * ace/ACE: Added two new methods ACE::read_n() and ACE::write_n().
- These are now necessary since Win32 distinguishes between
- operations on SOCKETs and operations on other forms of HANDLEs.
-
- * ace/ACE: Changed all uses of ACE::set_fl() and ACE::clr_fl() to
- ACE::set_flags() and ACE::clr_flags().
-
- * ace/ACE: Changed the name of ACE function handle_timed_connect()
- to handle_timed_open() since this is reall what it does...
-
-Fri Mar 22 00:11:19 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Stack: Added a "Node of last resort" to the
- ACE_Unbounded_Stack. This ensures we are graceful in the face
- of memory failures.
-
- * ace/OS.i (sleep): Fixed a bug with the Win32 ACE_OS::sleep
- mapping. This should have had an "ACE_OSCALL_RETURN" in it...
-
- * ace/ACE.h: Had forgotten to put "static" in front of "basename".
- Thanks to Neil Cohen for reporting this...
-
- * ace/Name_Options.cpp (process_name): Changed char * to const
- char * to avoid compile error. Thanks to Neil Cohen for this...
-
- * ace/IPC_SAP: Implemented the enable()/disable() methods to work
- with non-blocking I/O for SOCKETs on Windows NT.
-
- * ace/OS.i: Modified ioctl() to support the ioctlsocket() call on
- Windows NT.
-
- * ace/Log_Msg.cpp (log): Fixed a bug that was caused by not
- NUL-terminating the logging string properly when a %a is given.
- Thanks to Tim Harrison for finding this.
-
- * ace/OS: Added a new overloaded "ACE_OS::sleep" method that takes
- an ACE_Time_Value rather than a u_int. This is much more useful
- for fine-grained timers than the horrible UNIX sleep() call.
-
- * ace/OS.h: #included "sys\timeb.h" in the Win32 version of ACE.
-
-Thu Mar 21 22:18:50 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps: Fixed all incorrect usages of ACE_HANDLE = -1 to use
- ACE_HANDLE = ACE_INVALID_HANDLE in order to work with Win32...
-
- * ace/OS.i (gettimeofday): Replaced the existing implementation of
- gettimeofday with a new version that is shorter, more efficient,
- and most importantly, correct... Thanks to Todd Montgomery. and
- Mike Flinn for this stuff.
-
- * ace/ACE: added a new method called basename() that returns the
- filename portion of a pathname.
-
-Thu Mar 21 21:51:48 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/OS.h (ACE_DEFAULT_GLOBALNAME): Added some new #defines for
- NT: ACE_DEFAULT_NAMESPACE_DIR, ACE_DEFAULT_LOCALNAME, and
- ACE_DEFAULT_GLOBALNAME.
-
- * ace/Local_Name_Space.cpp (ACE_Local_Name_Space): Fixed a subtle
- bug. Instead of doing a new char [xxx], I was doing a new char
- (xxx). Also, added some #if defined (ACE_WIN32) to support
- special cases for NT (for example determining the context file
- name).
-
-Wed Mar 20 02:03:39 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Log_Msg.cpp (log): If we're writing to stdout or to an
- iostream make sure the lock is help to avoid race conditions and
- scrambled output.
-
-Tue Mar 19 00:12:25 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Thread_Manager.h: Added new default values to spawn() and
- spawn_n().
-
- * ace/OS.i (sigaction): Added support for signals to the ACE NT
- mapping.
-
- * ace/ACE: Added 4 new methods to class ACE: send(), send(),
- recv(), recv(). These calls mask some differences between UNIX
- and Win32 IPC mechanisms. Then, reimplemented the Reactor's
- notification mechanism to use this.
-
- * ace/OS.i (ACE_OSCALL_RETURN): fixed zillions of warnings on
- HP/UX by making a small change to line 151 of the OS.i file.
- Thanks to Neil Cohen for reporting this.
-
- * ace/Reactor.cpp: Rewrote the Reactor::notify() mechanism to
- avoid using readv() and writev(). These work fine on UNIX, but
- don't work correctly on Windows NT due to race conditions.
- Basically, we need to reimplement this stuff on Win32 to avoid
- the problem.
-
- * ace/OS.h: Added SIGQUIT, SIG_BLOCK, SIG_UNBLOCK, and SIG_SETMASK
- definitions to NT.
-
- * ace/Time_Value: added a new set() method to be consistent with
- the ACE_Time_Value (long, long) constructor.
-
- * ace/Service_Config.cpp (open): Fixed a bug where the
- ACE_Service_Repository and ACE_Reactor weren't being initialized
- correctly if the ACE_Service_Config::ACE_Service_Config (const
- char *) method was called.
-
- * ace/Service_Config.cpp: Changed the constructor for
- Service_Config so that it doesn't barf if the svc.conf file
- isn't found.
-
-Mon Mar 18 00:34:45 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Reactor.h: Hid the inclusion of the Local_Tokens.h file in
- the Reactor so that by default there will be no dependency
- between libACE and libACE_svcs. This should prevent compilation
- problems on some platforms.
-
- * bin: Included the html-windex shell script from Vincent Pommier
- <pommier@volnay.stortek.com>.
-
- * man: Included a shell script to automatically generate an
- acewindex.html file. This file is useful just after running
- man2html. Thanks to Vincent Pommier
- <pommier@volnay.stortek.com> for contributing this.
-
- * man/html: I've just used the man2html programs to generate the
- html documentation from the man3 directory. It seems to work
- pretty well.
-
- * ace/Assert.h: Added a forward declaration for class ACE_Log_Msg
- to fix problems NuMega preprocessing. Thanks to Mike Flinn
- <mike.flinn@smtpgate.aws.waii.com> for finding this.
-
- * ace: Implemented about 1/3rd of the "dump" methods for the
- various ACE classes.
-
- * ace/Acceptor.cpp (info): Fixed a bug -- should use PR_AD rather
- than ACE_INET_Addr since this is used for SPIPEs as well...
-
- * ace/Synch_T.cpp (ACE_TSS): If ACE_Thread::keycreate () fails
- then we do an fprintf() and return at the moment. It doesn't do
- any good to do an ACE_Log_Msg operation since those all require
- thread-specific storage and this will just cause a recursive
- problem...
-
- * ace/OS.cpp: Removed a memory leak in ACE_OS::thr_destory_tss()
- that was caused by forgetting to delete each ACE_TSS_Key_Info
- object when we no longer needed it. Thanks to Mike Flinn
- <mike.flinn@smtpgate.aws.waii.com> for finding this.
-
- * ace/OS.cpp: Added a new method to class ACE_OS called
- thr_keyfree(). This enables us to free up a thread-specific
- storage key on Win32 (it isn't implemented on the UNIX
- platforms).
-
- * ace/ACE.cpp (timestamp): In order to get ACE_OS::timestamp to
- work on Win32, the wMonth, wDay, wYear structure members were
- added to the sprintf statement. Thanks to Mike Flinn
- <mike.flinn@smtpgate.aws.waii.com> for this fix.
-
- * examples: Changed all uses of ACE::send_n (1, ...) to
- ACE_OS::write (ACE_STDOUT, ...) to avoid problems with NT's
- hacked support for sockets and HANDLEs. Thanks to Bernd Hofner
- <hofner@pd.et-inf.uni-siegen.de> for noticing this.
-
-Sun Mar 17 00:43:14 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/CORBA_Handler.cpp (handle_input): Fixed the CORBA_Handler to
- use send()/recv() rather than read()/write().
-
- * ace/Process_Manager: put the hooks in for the forthcoming ACE
- Process Manager, which will provide a service similar to the
- ACE_Thread_Manager, except that it will work for processes, not
- threads.
-
- * netsvcs: all the ACE network services appear to be working
- again...
-
- * man: Completely regenerated all the manual pages to reflect all
- the most recent changes.
-
- * ace/OS.h: Created a new macro called ACE_DEFAULT_REACTOR_SIZE.
- This is useful for two reasons (1) it centralizes this value in
- one place in ACE and (2) removes a horrible circular dependency
- between the Service_Config.h and Reactor.h...
-
- * ace/Strategies: Added new strategies to handle "scheduling" of
- Svc_Handlers launched by a Strategy_Acceptor. In this context,
- scheduling refers to "suspending" and "resuming" Svc_Handlers.
- There are several alternative strategies ranging from (1)
- suspending/resuming a single handler, (2) suspending/resuming
- all the handlers in a Reactor, and (3) suspending/resuming all
- handlers controlled by a Thread_Manager. This very powerful
- feature makes it simple to write ACE_Network_Services that can
- control all their handlers in one fell swoop...
-
- * ace/Task: Added new accessors/mutators to get/set the
- Thread_Manager and the Message_Queue associated with a Task.
- This makes life easier and more abstract in subclasses and
- elsewhere.
-
- * ace/Reactor: added an iterator to the ACE_Handler_Repository.
- This makes it possible to implement the suspend_handlers() and
- resume_handlers() very efficiently on both UNIX and Windows NT.
-
- * ace/Reactor: Added two new methods called suspend_handlers() and
- resume_handlers(). These methods suspend and resume all the
- active Event_Handlers in the Reactor in one fell swoop.
-
- * ace/Reactor.i (suspend_handler): Fixed a bug in the Reactor
- where we were not factoring out the code for suspend_handler()
- appropriately with respect to locking.
-
- * netsvcs/Logging/Server_Daemon/Thr_Logging_Handler: Enhanced the
- threaded logging service so that all active threads can be
- automatically suspended and resumed via the ACE_Service_Config
- svc.conf file.
-
- * netsvcs/Logging/Server_Daemon/Logging_Handler.cpp: Rewrote the
- ACE Logging service to use the new ACE_Strategy_Acceptor
- implementation. This greatly reduced duplicate code. There's
- almost nothing left in this directory save the actual service
- itself!
-
- * netsvcs/Tokens: Rewrote the ACE Token service to use the new
- ACE_Strategy_Acceptor implementation. This greatly reduced
- duplicate code. There's almost nothing left in this directory
- save the actual service itself!
-
- * netsvcs/Naming: Rewrote the ACE Naming service to use the new
- ACE_Strategy_Acceptor implementation. This greatly reduced
- duplicate code. There's almost nothing left in this directory
- save the actual service itself!
-
-Sat Mar 16 20:02:08 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * netsvcs: Created a new subdirectory off of $WRAPPER_ROOT and put
- all the ACE network services (e.g., Time, Logging, Naming, and
- Tokens) into that directory. These services all instantiate the
- new ACE_Strategy_Acceptor implementation, which greatly
- simplifies their behavior and code.
-
- * ace/Acceptor: Made some enhancements to the
- ACE_Strategy_Acceptor in order to make it more suitable for use
- as a generic "Service" launcher. This class now defines common
- behavior for all the ACE network services (e.g., Time, Logging,
- Naming, and Tokens).
-
- * apps/Token_Server: Made the main Token_Server application be
- dynamically linked if there's a valid svc.conf file.
-
- * apps/Name_Server/Name_Server: Made the Server_Test a
- "well-behaved" service. Previously, it block in a private event
- loop within Name_Server::run(), which was called by
- Server_Test::init() when the service was linked dynamically.
- This obviously doesn't work correctly since it means that we
- can't dynamically link any other services after this one! The
- new version is "event-loop" friendly since it uses the main
- Service_Config::run_event_loop() method.
-
- * ACE-categories: Added a new emacs "outline" file that
- illustrates how the filenames in $WRAPPER_ROOT/ace cluster into
- class categories. Thanks to Chris Eich
- <Chris_Eich@optilink.optilink.dsccc.com> and Alex V. Maclinovsky
- <alexm@teltrunk1.tait.co.nz> for helping create this.
-
- * ace: Split ACE into two libraries: libACE and libACE_svcs.
- libACE contains the "core" ACE components. libACE_svcs contains
- the client-side layered services (e.g., naming service, token
- service, etc.). There are two reasons for doing this:
-
- 1. It reduces the size of ACE for many common usecases (i.e.,
- most people aren't using the naming service or the token
- service). Any future layered services in ACE will be placed
- into the libACE_svcs library rather than libACE.
-
- 2. It works around annoying compiler bugs with lame compilers
- like HP/UX C++. Now, if those compiles can't compile the
- token service (which is very template intensive) it won't
- affect the core ACE library components. This improves the
- portability of ACE.
-
- * Added -lACE_svcs to the ./apps/{Token_Server,Name_Server} and
- ./examples/{Tokens,Naming} Makefiles to account for the new
- libraries. Note that no source code changes are required...
-
-Fri Mar 15 00:03:48 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/Name_Server/server/Name_Handler.cpp (recv_request): Fixed
- the same problem as occurred in Token_Handler (these both come
- from the same source...).
-
- * apps/Token_Server/Token_Handler.cpp (recv_request): There was a
- subtle bug in the Token_Handler that stems from my old code.
- The line
-
- n = this->peer_.recv ((void *) (((char *) &this->token_request_)
- + sizeof (ACE_UINT32)),
- length);
-
- This should actually be:
-
- n = this->peer_.recv ((void *) (((char *) &this->token_request_)
- + sizeof (ACE_UINT32)),
- length - sizeof (ACE_UINT32));
-
- since length was read already. The old way tried to read 4
- bytes too much. Thanks to Jesper for noticing this.
-
- * ace/Connector.cpp (connect_svc_handler): Modified the connector
- so that it automatically calls the close () method of the
- Svc_Handler when the connection fails abortively. This makes
- the semantics the same for synchronous and asynchronous
- connection invocation modes. Thanks to Irfan for insisting on
- this!
-
- * apps/Token_Server/Token_Acceptor.cpp (handle_input): Changed
- return type from int to ACE_HANDLE for NT compatibility. Thanks
- to Jesper for this insight.
-
- * ace/OS.h: The defines for ACE_LACKS_MODE_MASKS (OS.h) were only defined
- when !ACE_WIN32. This has been fixed. Thanks to Irfan for
- spotting this too.
-
- * ace/OS.i (mmap): made a small change to ACE_OS::mmap to fix NT
- portability problem (new variable added:nt_flags). Thanks to
- Irfan for spotting this.
-
- * ace/Local_Tokens.h: Added #include "ace/Map_Manager.h" after
- line 41 in Local_Tokens.h to allow ACE to compile correctly with
- the horrid HP/UX compiler. Thanks to Neil Cohen for figuring
- this out (what a trooper!).
-
- * ace/Local_Tokens.cpp (ACE_TPQ_Entry *): Replace
-
- return ACE_TSS<ACE_TPQ_Entry>::operator ACE_TPQ_Entry *();
-
- with
-
- return (ACE_TPQ_Entry *) (*((ACE_TSS<ACE_TPQ_Entry> *) this));
-
- to work around problems with MSVC++ 4.0 when the browse option
- is enabled. Thanks to Kirk Sinnard <1764@mn.lawson.lawson.com>
- for this fix.
-
- * ace/config-sunx86-sunc++-4.x.h: Swapped the lines
-
- // Compiler/platform supports SVR4 signal typedef.
- //#define ACE_HAS_SVR4_SIGNAL_T
- #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
- to
-
- // Compiler/platform supports SVR4 signal typedef.
- #define ACE_HAS_SVR4_SIGNAL_T
- //#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
- to avoid an error using ProWorks C++ 4.0.1 (w/ patches) which
- blow up in the Signal.x stuff with a prototyping error. Thanks
- to John P. Hearn <hearn_j@sat.mot.com> for this recommendation.
-
- * ace/Shared_Memory.h: The conditional compilation wrapper was out
- of date, so I renamed it. Thanks to Alex V Maclinovsky
- <alexm@teltrunk1.tait.co.nz> for reporting this.
-
-Thu Mar 14 23:18:59 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Thread.h: There was a bug in the ACE_Thread class. I
- attempted to make the class uninstantiable by making the
- constructor private. However, the statement was:
-
- private:
- Thread (void);
-
- which is not the definition of the ctor! The code compiled
- since it thinks Thread is a member function. As a result, you
- could instantiate a object of ACE_Thread class, but no longer...
- Also added this to the !defined (ACE_HAS_THREADS) arm of the
- conditional compilation. Thank to Sandeep Joshi
- <sandeepj@emailbox.att.com> for noticing this.
-
- * ace/Log_Record.i (decode): Fixed a stupid typo where htonl
- (this->length_) should have been htohl (this->length_)...
- Thanks to Audun Tornquist <Audun.Tornquist@iu.hioslo.no> for
- noticing this.
-
-Tue Mar 12 14:51:39 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Name_Request_Reply.cpp (decode): Added ntohl and htonl calls
- wherever data was being exchanged.
-
-Sat Mar 9 17:49:51 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * ace/OS.i (cond_wait): Updated the Win32 implementation to
- correspond precisely with the UNIX semantics where the mutex is
- always reacquired even when errors occur.
-
-Mon Mar 4 23:03:37 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * INSTALL: updated the win32 to describe building test
- applications.
-
-Mon Mar 4 16:17:05 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Local_Name_Space.cpp (resolve): Fixed a small bug. The type
- field in resolve was copying extraneous stuff (because of being
- kept around as a wchar_t). So I added a new method to the class
- ACE_NS_String called len() which simply returns len_. Using this
- I can now do a strncpy of len bytes for type (instead of a
- simple strcpy) and then null-terminate the string to remove the
- garbage.
-
-Thu Feb 29 23:41:04 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * ace/Token_Request_Reply.cpp: Fixed a byte-order bug which was
- showing up on intel platforms.
-
- * ace/Remote_Tokens.cpp: Fixed a race condition in
- ACE_TSS_Connection which was munging mt token server clients.
-
- * examples/Tokens/mutex/*: The Token Server example applications
- now use ACE_Thread_Manager, which should make them portable to
- Win32.
-
- * apps/Token_Server/Token_Server.cpp: The Token Server is now a
- Service_Object which can be dynamically linked.
-
- * ace/OS.i: Win32 ACE_OS:: signal methods now return 0 instead of
- -1. So, calls to signal code succeed, but do nothing useful.
-
-Thu Feb 29 20:38:32 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/Logger/Server_Daemon/Server_Logger.cpp
- (handle_logging_record): There was a typo where
- ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES was incorrectly spelled.
- This caused problems on HP/UX. Thanks to Neil Cohen for
- finding this.
-
-Wed Feb 28 11:41:49 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Mem_Map.cpp: Fixed a nasty bug with Win32 memory mapping...
- It turns out we need to be very careful when remapping a
- previously mapped region if the MapViewOfFile we're trying to
- establish *grows* beyond what was originally mapped with
- CreateFileMapping(). The new scheme seems to work correctly
- with both UNIX and Win32.
-
- * ace/OS.h: apparently when using MFC library functions it
- is not possible to include windows.h. Instead, users
- must include AFX.h. Therefore, I've modified OS.h to
- include the following:
-
- #if !defined (__AFX_H__)
- #include <windows.h>
- #endif /* __AFX_H__ */
-
- Thanks to Patty Genualdi (genualdp@agcs.com) for pointing this
- out.
-
- * ace/Memory_Pool.cpp: Modified init_acquire() so that it calls
- ACE_Mem_Map::open() rather than ACE_Mem_Map::map() the first
- time. This ensures that the file is mapped correctly.
-
- * ace/Mem_Map: Added a new method called open() that creates/opens
- a file without actually mapping it.
-
- * ace/SOCK_Dgram_Mcast.cpp (make_multicast_address): Added
- new support for Windows NT.
-
- * ace/Memory_Pool: reimplemented ACE_MMAP_Memory_Pool so that uses
- ACE_Mem_Map. This ensures that we can leverage all the work
- that went into making ACE_Mem_Map work on Win32.
-
- * ace/Memory_Pool.cpp (map_file): Modified the code so that we
- always unmap the file before trying to remap it. This avoids
- problems with Win32...
-
- * ace/Mem_Map: Modified the implementation of ACE_Mem_Map so that
- it takes advantage of the improved features in ACE_OS::mmap.
- Also added new a method that returns the memory-mapped addr more
- easily.
-
- * ace/OS: Modified the ACE_OS::mmap() method so that it is more
- efficient for remapping files on Win32.
-
- * ace/OS.h: renamed the type QWORD to ACE_QWORD to avoid namespace
- pollution. Thanks to Patty Genualdi (genualdp@agcs.com) for
- pointing this out.
-
- * ace/OS.h: Changed the value of the SIGPIPE emulation for Win32
- to match the UNIX value in order to avoid problems. Thanks to
- Jesper for noticing this.
-
- * apps/Token_Server: Fixed misuse of int for ACE_HANDLE in various
- places. Thanks to Jesper for noticing this.
-
- * Renamed the ./tests directory to ./examples to make way for the
- new ACE regression tests. These tests will go into the new
- ./tests directory.
-
- * ace/Mem_Map.cpp: Added a destructor and a close() method that
- closes down the file HANDLE if we allocated it. This is useful
- to prevent descriptor leaks. Thanks to Irfan for suggesting
- this.
-
- * ace: Made a number of changes to remove unreferenced parameters
- from ACE methods. This eliminates zillions of warning from the
- HP/UX compiler. Thanks to Neil Cohen for reporting this.
-
- * ace/Local_Name_Space.cpp (resolve): revised some code to work
- around bugs with the HP/UX compiler... Thanks to Neil Cohen for
- this workaround.
-
-Tue Feb 27 21:06:09 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.i: The Win32 CreateFile does not handle the return you
- would expect when the file exists. You would expect EEXISTS (17
- in UNIX) but the GetLastError is set to 80
- (ERROR_FILE_EXISTS). Therefore, I changed ACE_OS::open to map
- ERROR_FILE_EXISTS onto EEXIST. This is only a partial solution,
- however. There must be a better way to handle this!
-
- * ace/Mem_Map.cpp (ACE_Mem_Map): Fixed a bug with one of the
- ACE_Mem_Map destructors that was causing problems due to the
- fact that base_addr_ wasn't being initialized to 0. Thanks to
- Karlheinz for noticing this.
-
- * ace/Signal.i: signals on AIX cannot use sigprocmask() in any
- multithreaded programs. Instead, the call
- ACE_OS::thr_sigsetmask() should be used since it is used to
- update the thread signal mask. This comes up only in the
- Sig_Guard constructor and destructor. Therefore, I #ifdef the
- call under the ACE_MT_SAFE macro, using sigprocmask() in the
- #else case. Thanks to Chris Lahey for reporting this.
-
- * tests: removed all uses of ACE_OS::join (0, ....) in ACE and
- replaced them with ACE_Thread_Manager::wait() calls. This
- ensures that the ACE code is portable to Win32 and POSIX
- pthreads!
-
- * ace/Dynamic_Service.cpp: Added a #include of
- "ace/Service_Config.h" to work around problems with HP/UX.
- Thanks to John Morey for reporting this.
-
-Sun Feb 25 12:10:38 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * apps/Token_Server: changed the name token_server.cpp to main.cpp
- to avoid a name clash on Win32...
-
- * man/man3: updated all the ACE manual pages to reflect the
- most recent changes.
-
- * ace/OS.i: Implemented the cond_timedwait() method correctly in
- ACE_OS. This method should now do the right thing with respect
- to blocking, polling, and timewaits for Win32.
-
- * ace/OS.i: Modified the Win32 implementation of all the
- socket-related wrappers in ACE_OS. The new implementation very
- cleverly sets errno to the result of WSAGetLastError() if a
- socket-related call fails. Since all of the WinSock errors are
- mapped into their equivalent UNIX errno values this enables
- socket applications to work portably for UNIX and Win32.
-
- * ace/Malloc_T.cpp (ACE_Malloc): Improved error reporting for
- cases where the Memory_Pool::init_acquire() fails (e.g., if the
- backing store was already created by another user and we don't
- have permission to access it...).
-
- * ace/Task: modified Task.h so that it is no longer necessary to
- write #include "ace/Synch_T.h" in order to use ACE_MT_SYNCH,
- etc.
-
- * ace/SOCK.cpp (DllMain): Added a clever "Schwartz counter" to
- make sure that the WinSock library is correctly initialized,
- even if we're not using ACE as a DLL!!!
-
- * tests/Mem_Map/file-reverse: got the file reverse test program
- working. The ACE_Mem_Map class should now be ported to Win32...
-
- * ace/OS.i (open): Changed how the O_CREAT flag was handled
- to give it UNIX semantics...
-
-Sat Feb 24 12:55:27 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/UPIPE_Stream.cpp (recv): Fixed a signed/unsigned mismatch.
- There should be no more mismatches in ACE...
-
- * ace/Name_Proxy.cpp (recv_reply): Fixed a signed/unsigned
- mismatch.
-
- * ace/Message_Block.cpp (copy): Fixed a signed/unsigned mismatch.
-
- * ace/INET_Addr.cpp (get_host_name): Changed the type of the
- hostnamelen parameter from int to size_t to be more "abstract."
- This will also prevent a warning from the MSVC++ compiler.
-
- * apps/Logger/Client_Daemon/Client_Logger.i: Fixed a braino with
- network byteoder that was causing Client_Logger::send() to fail
- on INTEL boxes. Thanks to Bryon G. Rigg
- <bgrigg@opus.bcbnet.com> for finding this.
-
-Fri Feb 23 01:59:34 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.i: Enhanced mmap() to give the same semantics as UNIX
- mmap() by using MapViewOfFileEx(). Also greatly improved the
- UNIX emulation capabilities so that mmap() now has the same API
- for UNIX and Win32.
-
- * ace/Time_Value: Added functions to constructor and conversion
- from/to Win32 FILETIME. This enables us to reuse those 100ns
- conversions in ACE_Profile_Timer.
-
- * ace/Time_Value: Fixed a problem with these:
-
- // True if tv1 < tv2.
-
- INLINE int
- operator < (const ACE_Time_Value &tv1,
- const ACE_Time_Value &tv2)
- {
- ACE_TRACE ("operator <");
- return tv2 > tv1;
- }
-
- This should be "tv2 >= tv1". Same problem was fixed with
- operator <=.
-
- * ace/Profile_Timer.i, fixed the following:
-
- this->end_time_ = ACE_OS::gettimeofday ();
- this->last_time_ = this->end_time_;
- this->last_usage_ = this->end_usage_;
- ACE_OS::getrusage (RUSAGE_SELF, &this->end_usage_);
-
- This will overwrite end_time before it is saved to
- last_time...
-
- * tests/Threads: Added Jesper's test for readers/writers locks.
- The test adds a number of reader and writer threads. When
- active, writers modify a shared variable and verify that only
- one writer and no readers are active. When active, readers
- check that no writers are active and that the shared data is
- never changed. The test passes for different ratios of
- readers/writers, and debug output shows that several readers are
- allowed simultaneously. Or, in other words, we have an
- indication that it should work.
-
- * ace/OS.i: Added Win32 implementations of getpid(), fork(),
- lseek(), dup(), cond_timedwait (), getrusage ()
-
- * ace/OS.i: Modified all the ACE_OS::str* routines so that they no
- longer do an ACE_OSCALL_RETURN. This can lead to weird bugs...
- Thanks to Jesper for noticing this.
-
- * ace/config-sunos4-sun4.1.4.h: Added a new config file that
- should work with SunOS 4.x... Also added support for SunOS
- 4.1.4. Thanks to Mick Adams (eeimas@eei.ericsson.se) for help
- with this.
-
-Thu Feb 22 18:58:36 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * tests/Naming/Client/Name_Service.h (ACE_Service_Object):
- Modified test application to make use of ACE_Dynamic_Service.
-
- * ace/Dynamic_Service.h: Added a new class called Dynamic_Service
- which provides a general interface to add and retrieve arbitrary
- things into the ACE service repository.
-
- * apps/Name_Server/README: Rearranged files so that Name_Server
- and Name_Handler are now contained in the server directory under
- apps and are no longer under /ace. Also, the Dump_Restore
- directory has been moved under /tests/Naming.
-
-Thu Feb 22 01:56:46 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/INET_Addr.cpp (set): Fixed a byteorder bug in ACE_INET_Addr
- that was causing problems when ACE was used on Win32 running on
- Intel platforms...
-
- * ace/Mem_Map.cpp (map_it): Fixed ACE_Mem_Map so that it will work
- correctly on Win32.
-
- * ace/SOCK_Stream.i: Changed the implementation of the Win32
- versions of send() and recv() so that they will never use the
- read() and write() calls. This works around limitations with
- Win32, which can't do a ReadFile() or WriteFile()
- *synchronously* with a SOCKET.
-
- * Changed all occurrences of read (0, ...) to read (ACE_STDIN,
- ...) and all occurrences of write (1, ...) to write
- (ACE_STDOUT, ...) in order to be compatible across UNIX and
- Win32.
-
- * tests/ASX/Event_Server: Fixed up all the socket I/O calls so
- that they use the WinSock send()/recv() methods rather than
- ReadFile and WriteFile...
-
- * ace/OS.i: Updated open() to correctly emulated UNIX open()
- semantics on Win32.
-
- * ace/OS.cpp (thr_exit): Added support to the NT port so that
- thr_exit() doesn't endup doing multiple deletions of the same
- object. Thanks to Karlheinz for this fix.
-
- * ace/OS.h: Moved the location of ACE_MAXCLIENTIDLEN so that
- MAXHOSTNAMELEN would be correctly visible for NT.
-
- * ace/Reactor.cpp: Added a temporary fix for the fact that
- writev() and readv() don't work correctly yet on NT. The
- solution is to replace write() with two writes() and readv()
- with two reads() for the Reactor's notification scheme. A
- better solution should be forthcoming.
-
- * ace/Reactor.cpp: Made sure to initialize the timer_queue_ to 0
- in the constructors so that the Reactor's destructor can avoid
- crashing horribly if the constructor fails. Thanks to Karlheinz
- for pointing out the need for this.
-
- * ace/SOCK.cpp: Added support for WSAStartup for using WinSock
- within the ACE_SOCK class.
-
-Wed Feb 21 21:05:55 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/ACE.cpp (bind_port): Made a quick fix to work around the
- fact that NT doesn't set errno...
-
- * ace/OS.i (mmap): Fixed a bug in mmap for the NT port. It should
- return MAP_FAILED on error rather than 0 to be equivalent to the
- UNIX version. Thanks to Irfan for spotting this.
-
-Mon Feb 19 00:31:42 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Typed_SV_Message.i (ACE_Typed_SV_Message): Modified the
- constructor calls so that length_ and max_size_ are correctly
- set when created. Thanks to Alexandre Karev
- <akg@na47sun05.cern.ch> for reporting this.
-
- * ace/SV_Message_Queue.i (remove): fixed bug in
- ACE_SV_Message_Queue::remove method where `internal_id_' member
- was modified *BEFORE* it was used the last time in
- ACE_SV_Message_Queue::control. Thanks to Alexandre Karev
- <akg@na47sun05.cern.ch> for reporting this.
-
- * ace/Typed_SV_Message.i (length): Fixed a minor typo that caused
- a bigger bug ;-). Thanks to Alexandre Karev
- <akg@na47sun05.cern.ch> for reporting this.
-
- * ace/OS.h: Added new macros that allow programs to portably
- access stdin, stdout, and stderr HANDLEs on Win32 and UNIX as
- follows:
-
- #if defined (ACE_WIN32)
- #define ACE_STDIN GetStdHandle (STD_INPUT_HANDLE)
- #define ACE_STDOUT GetStdHandle (STD_OUTPUT_HANDLE)
- #define ACE_STDERR GetStdHandle (STD_ERROR_HANDLE)
- #else
- #define ACE_STDIN 0
- #define ACE_STDOUT 1
- #define ACE_STDERR 2
- #endif /* ACE_WIN32 */
-
- * ace/INET_Addr.i: modified the return value of get_port_number so
- that it returns the value in host byte order. This has actually
- been a latent bug in ACE for years, but it only surfaced
- recently after porting to NT on the Intel instruction set (which
- is "little-endian").
-
- * tests/ASX/Event_Server: Merged in the latest changes to the
- Event_Server tests, which enable it to compile on Windows NT.
- Now, I just need to get it working on NT...
-
- * Updated all of ACE to use the new ACE_ASSERT rather than assert.
-
- * ace/Assert.h: Added a new file and a new macro called
- ACE_ASSERT. This uses the ACE_Log_Msg Singleton to provide a
- more consistent means to do assertions. Thanks to Alexandre
- Karev <akg@na47sun05.cern.ch> for suggesting this.
-
- * ace/Log_Msg.cpp (log): added for method ACE_Log_Msg::log lines
- to skip the `sprintf' part for %N - file name and %l - line
- number format specifiers. Thanks to Alexandre Karev
- <akg@na47sun05.cern.ch> for reporting this.
-
- * Remote_Name_Space: Removed an initalizer to ACE_WString that was
- driving the HP/UX compiler nuts.
-
-Sun Feb 18 18:11:22 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Synch.h (ACE_Null_Condition_Mutex): Added a missing body to
- the wait() method. Thanks to Byron Riggs for noticing this.
-
-Sat Feb 17 19:10:06 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * tests/Naming/README (client): Added description for new
- features, including support for list_values and list_types. Also
- added a small description about test programs using DLL.
-
- * ace/Name_Request_Reply.cpp (decode): Fixed a small bug in
- ACE_Name_Request::decode. type_ was not null terminated causing
- some garbage to be returned.
-
-Thu Feb 15 14:57:06 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Remote_Name_Space.cpp: Changed names of some parameters to
- comply with ACE syntax.
-
-Wed Feb 14 13:36:31 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Local_Name_Space.cpp (resolve): Type support has been added
- to Name_Server. A new class called ACE_NS_Internal was created to
- keep value and type information.
-
-Fri Feb 9 17:12:00 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * "Officially" released ACE 4.0
-
- * ace/OS.i (sema_post): Fixed a bug in the NT port.
-
- #elif defined (ACE_HAS_WTHREADS)
- return ::ReleaseSemaphore (*s, 1, 0);
- #endif /* ACE_HAS_STHREADS */
-
- This returns 1 for success, and disturbs cond_broadcast...
- This was replaced by:
-
- #elif defined (ACE_HAS_WTHREADS)
- return ::ReleaseSemaphore (*s, 1, 0) ? 0 : -1;
- #endif /* ACE_HAS_STHREADS */
-
- Thanks to Jesper S. M|ller (stophph@diku.dk) for this.
-
- * ace/OS.i (cond_init): Fixed a bug in the NT condition synch
- code, as the initial count of the semaphore was 1. This gives an
- inconsistent condition: The first waiter went straight through...
- Change in ACE_OS::cond_init:
-
- if (ACE_OS::sema_init (&cv->sema_, 0, type, name, arg) != 0)
- return -1;
-
- Thanks to Jesper S. M|ller (stophph@diku.dk) for this.
-
- * ace/Singleton.cpp: Fixed a stupid bug that was caused by failure
- to #include "ace/Synch_T.h"... Thanks to Neil Cohen and Byron
- Riggs for giving me insights on what the problem was. ACE now
- compiles on HP/UX.
-
-Fri Feb 9 11:07:04 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * tests/Naming/server/Server_Test.cpp (init): Modified server
- tests to dynamically link Naming Services. Both client and
- server tests now make use of the ACE dynamic linking mechanisms.
-
- * ace/Local_Name_Space.cpp: Added list_values() to Name
- Server. The functionality is very similar to list_names (returns
- list of values that match a pattern).
-
- * tests/Naming/client/Client_Test.cpp (bind): Replaced all uses of
- cerr and cout with ACE_ERROR, ACE_ERROR_RETURN, and ACE_DEBUG.
- Split the file Client_Test.cpp into two files -- Client_Test.cpp
- and Name_Service.cpp (similarly .h file) each containing the
- corresponding class. Modified svc.conf to work with the changes.
-
-Thu Feb 8 02:05:26 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Log_Msg.cpp (log): Enhanced the Log_Msg class so that it
- supports "nested" calls via %r. If SILENT mode enabled, nested
- outputs will enclosed in {..} brackets in thread-specific
- storage. Thanks to Alexandre Karev <akg@na47sun05.cern.ch> for
- suggesting this.
-
- * ace/Synch: Added a new class called ACE_Null_Condition_Mutex.
- This is necessary to fix bugs with stupid compilers... Thanks
- to Zusman Mark <marklz@rotem.technion.ac.il> for reporting this.
-
- * tests/Naming/client: made a first pass implementation of a
- client application that dynamically links in a Naming_Context
- based on information provided by the svc.conf file.
-
- * ace/Name_Options: Fixed yet more problems with dynamic memory
- management. The old version didn't make a copy of the strings
- it was passed and this caused major problems.
-
- * ace: Fixed a whole slew of problems with the ACE Name Server
- stuff that arose from inconsistent use of const char * vs. char
- *...
-
-Wed Feb 7 00:58:45 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/CORBA_Handler.cpp (ACE_MT_CORBA_Handler): Added new
- enhancements to ACE_MT_CORBA_Handler to make it work correctly
- with Windows NT. Thanks to Irfan for making these changes.
-
- * ace/Connector.cpp (fini): Make another workaround for bugs with
- MSVC++ 2.0...
-
- * ace/SPIPE_Connector.cpp (connect): Added a call to ACE_CLR_BITS
- (flags, O_CREAT) to make darn sure that the O_CREAT flag is not
- set. Thanks to Chris Cleeland for suggesting this.
-
-Tue Feb 6 01:40:29 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.h: added a new prototype to OS.h that should help with
- portability to nasty platforms with broken rand_r() definitions.
- Thanks to Aurelio Nocerino
- <aurelio@irsipcs2-27-le0.irsip.na.cnr.it> for suggesting this.
-
- * Local_Tokens: Changed all uses of enumerals MAXTOKENNAMELEN and
- MAXCLIENTIDLEN to symbol #defines ACE_MAXTOKENNAMELEN and
- ACE_MAXCLIENTIDLEN. This works around bugs with HP/UX.
- Thanks to Neil Cohen for reporting this problem.
-
- * ChangeLog: split the ChangeLog files into 4 separate files --
- one for '96, '95, '94', and '93. Hard to believe I've been
- working on this stuff for so long!
-
- * ace/OS: Fixed the use of ::memset to replace sizeof buffer with
- sizeof (ACE_SERVENT_DATA) and sizeof (ACE_HOSTENT_DATA). This
- fixes bugs that surfaced on AIX. Thanks to Chris Lahey for
- finding these.
-
- * ace/SPIPE_Addr.cpp (ACE_SPIPE_Addr): Fixed a bug in
- SPIPE_Addr::SPIPE_Addr(const SPIPE_Addr&). What happens is that
- when the size is calculated it does not take into account the
- required zero byte at the end of the rendezvous_ member. Thanks
- to Chris Cleeland <chris@envision.com> for reporting this.
-
- * ace/Local_Tokens: Had to move all ACE_Token_Proxy methods from
- Local_Tokens.i to Local_Tokens.cpp and remove INLINE - otherwise
- gcc reported them as undefined methods during linkage stage.
- Thanks to Zusman Mark <marklz@rotem.technion.ac.il> for
- reporting this.
-
- * ace: Changed ACE_Name_Request_Reply::LAST to
- ACE_Name_Request_Reply::MAX_ENUM to avoid problems with name
- conflicts on OSF/1. Thanks to Eshel Liran
- <liran@bimacs.cs.biu.ac.il> for suggesting this.
-
- * ace/Synch_T: Fix all definitions of ACE_Atomic_Ops so that they
- compile correctly on platforms that lack threads! Thanks to
- Alexandre Karev <akg@na47sun05.cern.ch> for noticing this.
-
- * include/makeinclude: Added a new config file from Bryon G. Rigg
- <bgrigg@opus.bcbnet.com>, which should allow ACE to build on
- Linux.
-
- * ace/Remote_Tokens.cpp: Moved ACE_TSS_Connection to
- Remote_Tokens.h to avoid problems with AIX. Thanks to the
- ever-vigilant Chris Lahey for reporting this.
-
-Mon Feb 5 23:34:42 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * Added CORBA_Ref.h which contains the new class ACE_CORBA_Ref.
- This class provides a nice wrapper for making the use of Orbix
- object references more transparent. This is done by automating
- the release and duplicate calls.
-
-Mon Feb 5 15:43:17 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: added Prashant's latest changes to the Name_Handler*,
- Naming_Context*, and Remote_Name_Space*. These changes make it
- possible to retrieve lists of values based on a pattern, which
- can be a regular expression.
-
- * Moved the apps/Name_Server/Client-Server tests into tests/Naming
- and most of the apps/Token_Server/* tests into tests/Tokens to
- conform to Karlheinz's testing style.
-
- * ace: Modified a number of files in ACE to make it compile
- correctly with MSVC++ 2.0.
-
-Sun Feb 4 23:58:43 1996 Douglas C. Schmidt (schmidt@mambo.cs.wustl.edu)
-
- * ace/Reactor: Generalized ACE_Null_Callback to work correctly
- with Windows NT (which lacks pipes). The new design uses the
- ACE socket wrappers for NT. It requires very few changes to the
- code to handle NT now! Also changed the name to
- ACE_Notification_Handler, which is more descriptive.
-
-Sun Feb 4 14:47:50 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Remote_Tokens.cpp: Reworked ACE_Singleton to avoid
- portability problems on compilers like GCC.
-
-Thu Feb 1 12:47:46 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Remote_Tokens.cpp: Generalized the parameters passed into
- ACE_Singleton so they would compile on HP/UX and other platforms
- that lack threads. Thanks to Neil Cohen for noticing the
- problem.
-
-Wed Jan 31 22:49:13 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Modified a number of minor things in ACE to get it to
- compile successfully with Windows NT MSVC++ 4.0. Updated the
- INSTALL file to explain this process better...
-
-Tue Jan 30 01:12:07 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/CORBA_Handler.cpp: changed things so that no diagonistic
- messages are printed.
-
- * Regenerated all the ACE manual pages to bring them up to date
- with the recent changes.
-
- * ace/Malloc.h: Modified the ACE_Malloc header file so that it
- works correctly when ACE_MALLOC_STATS is enabled. Thanks to
- Alexandre Karev <akg@na47sun05.cern.ch> for reporting this.
-
- * ace/OS.cpp (mutex_lock_cleanup): removed the leading & before
- p_lock. Thanks to Chris Lahey for noticing this.
-
- * ace: Added the new ACE_Singleton class. This class uses the
- Adapter pattern to turn ordinary classes into Singletons
- optimized with the Double-Check pattern.
-
- * Added Tim's latest Token Server changes (which include support
- for local and remote mutexes and readers/writer locks) and
- Prashant's latest Name Server changes (which allows the contents
- of a Name Server to be dumped and restored to/from an ASCII
- file).
-
-Mon Jan 29 02:22:23 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Handle_Set: Changed MAX_SIZE and WORD_SIZE to MAXSIZE and
- WORDSIZE to avoid name collisions with HP/UX. Thanks to Byron
- Rigg <bryon_rigg@mail.telecorpsys.com> for suggesting this.
-
- * ace/Time_Value.h: Added a new config symbol ACE_HAS_SVR4_TIME to
- differentiate between UNIX platforms that support "POSIX_TIME"
- (i.e., timespec_t) and those that support "SVR4_TIME" (i.e.,
- timestruc_t). This is necessary to work around HP/UX... Thanks
- to Byron Rigg <bryon_rigg@mail.telecorpsys.com> for suggesting
- this.
-
- * ace/config-hpux-10.x.h: config-hpux.h has now been renamed to
- config-hpux-10.x.h and config-hpux-9.x.h. Thanks to Byron Rigg
- <bryon_rigg@mail.telecorpsys.com> for suggesting this.
-
- * ace/Synch_T: Added a new method called ts_get() and made both
- the operator-> and operator TYPE * call this. I hope this will
- fix a bug with HP/UX reported by Neil Cohen...
-
- * ace/OS.i (dlclose): Added Win32 support for dlclose(). Thanks
- to Todd L. Montgomery <tmont@cerc.wvu.edu> for pointing the way
- here...
-
- * ace: Split off the old class ACE_Dynamically_Allocated, renamed
- it ACE_Dynamic, put it in a separate file called Dynamic.*.
- This is necessary to solve nasty multiple definition problems
- with compilers that require the source of template.
-
- * ace/Synch_T: moved
-
- template <class TYPE> TYPE *
- ACE_TSS<TYPE>::make_TSS_TYPE (void) const
- {
- return new TYPE;
- }
-
- out from condition compilation block
-
- #if (defined (ACE_HAS_THREADS) && defined(ACE_HAS_THREAD_SPECIFIC_STORAGE))
-
- in file Synch_T.cpp. This class member called in many other
- places regardless ACE_HAS_THREADS and
- ACE_HAS_THREAD_SPECIFIC_STORAGE defined or not...
-
- * ace/Name_Handler.cpp: Changed the use of the "inherited" typedef
- to fully expand to ACE_Svc_Handler<ACE_SOCK_STREAM,
- ACE_NULL_SYNCH>. This is necessary to workaround bugs with AIX.
- Thanks to Chris Lahey for reporting this.
-
- * tests and apps: Fixed an odd problem that only surfaced recently
- with GNU G++. Apparently, it doesn't like function-style casts
- of the form ACE_SignalHandler (foo), but will accept
- (ACE_SignalHandler) foo. Since both approaches are equally good
- for what I'm doing, I've updated all the code in ACE to be more
- portable.
-
-Sun Jan 28 12:24:58 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * tests/Shared_Malloc/test_malloc.cpp (spawn): when forming
- argv[] for execv, moved
-
- argv[ ... ] = Options::instance ()->debug () ? "-d" : "";
-
- to the end of the vector just before terminator. This will
- allow to pass rest of arguments to exec if -d switch not
- specified. Thanks to Alexandre Karev <akg@na47sun05.cern.ch>
- for reporting this.
-
- * tests/Shared_Malloc/Malloc.cpp: To avoid conflict with
- ACE_DEFAULT_SEM_KEY in OS.h changed SEMA_KEY value in
- tests/Shared_Malloc/Malloc.cpp to ACE_DEFAULT_SEM_KEY + 1.
- Thanks to Alexandre Karev <akg@na47sun05.cern.ch> for reporting
- this.
-
- * ace/SV_Semaphore_Complex.i: Changed all arguments in calls like
-
- this->acquire( n+2 )
- and
- this->tryacquire( n+2 )
- to
- this->acquire( n )
- and
- this->tryacquire( n )
- .
- Since the semaphore number is incremented by 2 in
- SV_Semaphore_Complex::acquire
- and
- SV_Semaphore_Complex::tryacquire
-
- when SV_Semaphore_Simple::(acquire/tryacquire) is called.
- Thanks to Alexandre Karev <akg@na47sun05.cern.ch> for pointing
- this out.
-
-Sat Jan 27 16:14:27 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Read_Buffer: Added a new component that efficiently reads in
- an artibrarily large buffer from a file up to an including a
- termination character. Also performs search/replace on single
- occurrences a character in the buffer using the priniciples of
- Integrated Layer Processing.
-
-Fri Jan 26 12:01:06 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Thread_Manager: Made a small change to workaround the use of
- a struct type for thread_t and hthread_t in HP/UX. Thanks to
- Bryon Rigg <bryon_rigg@mail.telecorpsys.com> for noticing this.
-
-Thu Jan 25 19:54:01 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Svc_Handler: Added some minor changes to account for
- limitations with GNU G++. I think the new implementation will
- be portable across all C++ platforms.
-
- * ace/SV_Semaphore_*: Widened the interface of SV_Semaphore*
- classes to include a flags parameter. This can be used to pass
- in SEM_UNDO, which is important in many applications. Thanks to
- Andrew Gilbert <agilbert@csci.csc.com> for suggesting this.
-
- * ace/Synch_T.cpp: We are forced to "cast away const" inside of of
- the ACE_TSS const methods in order to make the ACE_Guard work.
- The right thing to do would be to make the lock "mutable" but
- that's hopelessly non-portable.
-
-Thu Jan 25 14:34:12 1996 Douglas C. Schmidt (schmidt@merengue.cs.wustl.edu)
-
- * ace/Log_Msg: Fixed a minor bug in ACE_Log_Msg that kept
- resetting the restart and iostream value no matter what we'd set
- it to before. Thanks to Prashant for finding this.
-
- * bin: Fixed up the Makefile process for the clone program. Now
- it builds without having to depend on ACE. Thanks to Brad Brown
- (bbrown@rdxsunhost.aud.alcatel.com) for suggesting this.
-
- * ace/Synch: Modified ACE_Condition*.remove so that cond_destroy()
- is called in a loop if the condition variable is BUSY. This
- avoids a condition where a condition is signaled and because of
- some timing problem, the thread that is to be signaled has
- called the cond_wait routine after the signal call. Since the
- condition signal is not queued in any way, deadlock occurs
- unless this loop is used. Thanks to Chris Lahey for pointing
- this out.
-
- * ace/CORBA_Handler: Made all the methods in ACE_CORBA_Handler
- private to make sure that users don't inherit from this class!
- Instead, the ACE_MT_CORBA_HAndler and ACE_ST_CORBA_Handler
- should be used as Singletons.
-
- * ace/CORBA_Handler: Added new support for Orbix on Windows
- NT. This requires clever use of macros in order to handle
- inherent differences between generated code.
-
- * ace/Svc_Handler: Added a clever idiom that transparently checks
- if we were allocated dynamically. This information is used by
- the <destroy> method to decide if we need to delete <this>...
- The idiom is based on a paper by Michael van Rooyen
- (mrooyen@cellnet.co.uk) that appeared in the April '96 issue of
- the C++ Report. We've spruced it up to work correctly in
- multi-threaded programs by using our ACE_TSS class.
-
- * ace/config-win32-msvc4.0.h (ACE_LACKS_RECVMSG): Fixed a typo
- in the MSVC++ config files.
-
-Thu Jan 25 02:59:22 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Finally got the frigging library built on SGI. This was a chore
- due to compiler bugs, but at least it's another datapoint for
- successful cross-platform building...
-
-Wed Jan 24 00:10:29 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Time_Value.cpp (operator-=): Changed operator += and
- operator -= to use const ACE_Time_Value & rather than
- ACE_Time_Value &. Thanks to Alex V Maclinvosky for noticing
- this. In addition, also changed *all* ACE_Time_Value parameters
- to be const ACE_Time_Value &. This should reduce the number of
- excess constructors called...
-
- * ace/OS: Added Chris Lahey's latest changes that introduce POSIX
- pthread cancellation cleanup handlers. Also added an herror()
- function that is comparable to perror().
-
- * ace/OS: (thr_join): Added a new version of thr_join() which
- works for Windows NT. Windows NT requires a HANDLE, which is
- fundamentally incompatible with other things...
-
- * ace/Thread_Manager: added two new methods that return the
- ACE_Thread_Descriptor corresponding to either a thr_id or a
- thr_handle.
-
- * ace/Thread_Manager: Made the spawn() interface compatible with
- the other spawn() interfaces in ACE_OS and ACE_Thread by adding
- the hthread_t type.
-
- * ace/Log_Msg.cpp (log): Fixed things up so that we can now print
- out the thread id for all versions of threads!
-
- * ace/OS: Added a new overloaded version of ACE_OS::thr_self()
- that returns the "kernel" thread id. This is necessary on
- systems like NT and AIX, which separate kernel thread ids from
- user thread ids. Thanks to Chris Lahey for suggesting this.
-
-Tue Jan 23 01:17:23 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.i (sigwait): Changed the parameter of sigwait() from
- const sigset * to sigset *. Thanks to Neil Cohen for chasing
- this down on SunOS 5.5....
-
- * ace/Malloc_T.cpp: Fixed a typo in bind() whereby
- the test if (duplicates == 0 || this->shared_find (name) != 0)
- should be if (duplicates == 0 && this->shared_find (name) != 0).
- Thanks to the ever vigilant Alexandre Karev
- <akg@na47sun05.cern.ch> for reporting this.
-
- * tests: Fixed all test programs that previously used the "execl"
- family of system calls to use the "execv" family instead.
-
- * ace/OS: Added support for the "execv" family of exec() system
- calls. Unlike the "execl" family, these calls are easy to
- support since they don't require variadic arguments. I've added
- the hooks for the "execl" family, as well, but haven't actually
- implemented them yet.
-
- * ace/Memory_Pool.cpp (ACE_Shared_Memory_Pool): Fixed a bug that
- was tickled when pool_name == 0. Thanks to Alexandre Karev
- <akg@na47sun05.cern.ch> for reporting this.
-
- * ace/OS.h: removed FD_SETSIZE from the ACE_WIN32 stuff since this
- is defined in winsock.h.
-
- * ace/OS.cpp (ACE_Spawn_Args): Added "f" to the parameter list.
-
- * ace/CORBA_Handler: Added a new macro called CORBA_T that masks
- the incompatibilities between the version of Orbix on NT and on
- Solaris.
-
- * ace/OS.h: Added support for compilers (like NT) that don't
- support "mode masks" (these are used to give symbolic names for
- file creation modes passed to open() and creat().
-
- * ace/SString.cpp: Added Tim's new copy constructor code for
- SString.cpp. This doesn't appear to be strictly necessary , but
- it is more explicit and therefore it useful.
-
- * ace/Map_Manager.cpp: Fixed a bug in Map_Manager that was failing
- to call the placement new operator for every element in the map
- that was dynamically created by the allocator().
-
- * ace/Synch_T: Added Tim's new ACE_TSS implementation. This
- version is more flexible than the old one.
-
-Mon Jan 22 00:03:24 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Time_Value.h: changed a few minor things to get this
- compiling again on NT. Thanks to Irfan for helping with this.
-
- * ace/Synch_Options: Changed all the "accessor" methods to be
- const member functions at the request of Irfan. I just know
- this is going to cause const cancer... ;-)
-
- * ace/Acceptor and Connector: Changed all parameters that take
- ACE_Synch_Options & to take const ACE_Synch_Options & at the
- request of Irfan.
-
- * ace/OS.i (uname): Added rudimentary support for the uname()
- function for Windows NT. If anyone has suggestions on how to
- fill in all these fields portably please let me know!
-
- * ace/Connector.h: Changed a stray -1 to ACE_INVALID_HANDLE.
- Thanks to Irfan for noticing this.
-
- * ace/Profile_Timer.h: Added the keyword "public" to handle one
- arm of the conditional compilation that is only exercised on
- NT... Thanks to Irfan for noticing this.
-
- * ace/OS.i (mutex_init): Removed the call to
- pthread_mutexattr_setkind_np() it isn't in the final POSIX
- standard.
-
- * ace/Reactor.cpp (unbind): Removed the ACE_MAX3 template function
- from OS.h and inlined its only use in the Reactor. This was
- causing problems with some C++ compilers. Thanks to Mark Zusman
- <marklz@topaz.technion.ac.il> for reporting this.
-
- * ace/OS.i: Fixed a number of omitted return results in
- gettimeofday() and ctime_r() that were masked by the
- ACE_OSCALL_RETURN macros. Thanks to Mark Zusman
- <marklz@topaz.technion.ac.il> for reporting these.
-
- * ace/config-linux.h: Added new symbolic constants to handle the
- fact that Linux seems to lack recvmsg(), sendmsg(), msync(), and
- madvise(). Thanks to Neil Cohen for noticing this.
-
- * include/makeinclude: Fixed all the *-orbix.GNU files to use
- $(ORBIX_ROOT)/lib rather than $(ORBIX_ROOT)/ace. Thanks to
- Pramod Kumar Singh <pramod@saturn.miel.mot.com> for reporting
- this.
-
- * ace/config*.h: Changed all typos of the form ACE_HAS_SVSV_IPC to
- ACE_HAS_SYSV_IPC. Thanks to Alexandre Karev
- <akg@na47sun05.cern.ch> for reporting this!
-
- * ace/OS: Changed the order of parameters passed to thr_create()
- to be consistent with all the spawn() and spawn_n() usages in
- ACE. Thanks to Chris Lahey for pointing this out.
-
-Sun Jan 21 15:06:15 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Added a new "priority" parameter to the spawn() and
- spawn_n() methods in ACE_Thread and ACE_Thread_Manager. This
- allows us to pass the priority on down to thr_create(). Thanks
- to Chris Lahey for pointing this out. Note that this change
- required reordering the parameters so that the stack and
- stack_size parameters now come last for these methods. Since
- those are not likely to change much this is a good place to put
- them (i.e., at the end).
-
- * ace/Thread.i (spawn_n): Added a new overloaded spawn_n() method
- that accepts an array of thread_t's to be filled in. This is
- useful if you want to know the thread IDs of any threads
- created.
-
- * Changed ACE_OS::signal() to ACE_Sig_Action across all of ACE to
- be portable to pthreads implementations. Thanks to Chris Lahey
- for pointing this out.
-
- * ace/OS: Added a new set of OS C++ wrappers for POSIX pthread
- cancellation routines. Thanks to Chris Lahey for these.
-
- * ace/Thread: Added a new set of ACE C++ wrappers for POSIX
- pthread cancellation routines. Thanks to Chris Lahey for
- these.
-
- * ace/Map_Manager: Revised the Map_Manager::bind method. This has
- now been split into bind() and rebind() methods. The bind()
- method is very simple -- if you try to bind() to something that
- already exists you fail. The rebind() method allows you to
- atomically update existing values in a map. It also gives you
- back the existing values so that you can delete them if
- necessary. The Local_Name_Space::bind() and rebind() methods
- have been updated to use this new interface.
-
- * ace/Malloc_T.cpp (find): Fixed a typo -- find() should have set
- its pointer parameter to node->pointer_, rather than
- node->name_! This bug was revealed during testing of the ACE
- Name Server.
-
- * ace/Local_Name_Space.cpp: Fixed bugs with computation of the
- size of ACE_NS_Strings -- they needed to count the wchar_t's
- correctly, along with several other minor fixes. These were
- revealed during testing of the ACE Name Server.
-
- * ace/SString.cpp: Fixed several bugs that prevented the
- assignment operators from working correctly. These were
- revealed during testing of the ACE Name Server.
-
-Sat Jan 20 08:33:54 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Local_Name_Space.cpp (shared_bind): The args to to the
- NS_String constructors were not in the correct order:
-
- wchar_t *value_rep = (wchar_t *) (ptr);
- wchar_t *name_rep = (wchar_t *) (ptr + name_len);
- ACE_NS_String ext_id (name.fast_rep (), name_rep, name_len);
- ACE_NS_String int_id (value.fast_rep (), value_rep, value_len);
-
- They should be:
-
- ACE_NS_String ext_id (name_rep, name.fast_rep (), name_len);
- ACE_NS_String int_id (value_rep, value.fast_rep (), value_len);
-
- Thanks to Irfan for noticing this.
-
- * ace/OS.h: defined the following in ACE_OS:
-
- #define MS_ASYNC 0
- #define MS_SYNC 0
- #define MS_INVALIDATE 0
-
- under NT so that calls to mmap will port transparently. Thanks
- to Irfan for suggesting this.
-
-Thu Jan 18 16:25:16 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Added a new symbol that indicates if the platform supports
- the new BSD sin_len field of inet_addr.
-
- * ace/OS: added new support for AIX gethostbyaddr_r(),
- gethostbyname_r(), and getservbyname_r(). This fixes some
- problems caused by improper choice of buffer size. Also changed
- the INET_Addr.cpp file to use these new changes. Thanks to
- Chris Lahey for recommending these changes.
-
-Wed Jan 17 01:10:48 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.i (printf): the ACE_OS::printf() function did not work.
- Needed to call vprintf() internally, not printf. Thanks to
- Chris Lahey for pointing this out.
-
- * Released version 4.0.
-
- * include/makeinclude: added the -lgen library to all the
- platform_sunos5.*.GNU files.
-
- * ace/Memory_Pool.cpp: removed the INLINE macros in Memory_Pool.cpp.
- Thanks to Alexandre Karev (karev@vxcern.cern.ch) for noticing
- this!
-
- * ace/Malloc_T.cpp: moved the comment "Ce n'est pas une catst"
- outside of the macro ACE_NEW_RETURN. The prepocessor truncates
- the macro expansion when it encounters the comment. Thanks to
- Greg Baker <GBaker@p01.az15m.iac.honeywell.com> for pointing
- this out.
-
- * ace/Reactor.cpp (close): added "return 0" at the end of the
- close member function. The function is prototyped to return an
- int and the compiler expects a return outside of the if clause.
- Thanks to Greg Baker <GBaker@p01.az15m.iac.honeywell.com> for
- pointing this out.
-
- * ace/Stack.cpp (free_all_nodes): Removed a spurious ACE_OS that
- was stuck on the front of ::delete. Thanks to Greg Baker
- <GBaker@p01.az15m.iac.honeywell.com> for pointing this out.
-
- * ace/OS.i: Added extern "C" to the prototype for syscall in OS.i.
- Without it, you get unresolved symbols at link time. Thanks to
- Greg Baker <GBaker@p01.az15m.iac.honeywell.com> for pointing
- this out.
-
- * ace/Message_Queue.cpp: Changed the return values for
- enqueue_head(), enqueue_tail(), dequeue_head(), and
- peek_dequeue_head() to return the number of messages that are
- still on the queue. This helps some algorithms perform better
- and avoid blocking unnecessarily. Thanks to Alex V Maclinvosky
- <alexm@teltrunk1.tait.co.nz> for suggesting this...
-
- * ace/Synch_T.cpp (ACE_Condition): Fixed a bug in
- ~ACE_Recursive_Lock and ~ACE_Recursive_Mutex that was causing
- the destructor to be called twice (once implicitly and once
- explicitly). Thanks to Chris Lahey for pointing this out.
-
-Mon Jan 15 12:44:29 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Created a new config symbol called ACE_HAS_ALLOCA_H. This
- is required to differentiate between AIX and other versions of
- UNIX. Thanks to Chris Lahey for pointing this out.
-
- * ace: moved config-hpux.h to config-hpux-9.x.h in anticipation of
- the changes required to handle HP/UX 10.0!
-
-Sun Jan 14 23:38:23 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.h (ACE_MAX3): Fixed the definition of ACE_MAX3 (it needed
- a return value of template type T). Thanks to Mark Zusman
- <marklz@topaz.technion.ac.il> for noticing this.
-
- * ace: Added a new section to all the template files called
- ACE_TEMPLATES_REQUIRE_SPECIALIZATION to deal with the screwy GNU
- G++ semantics that are required if you *don't* have the template
- repository patches. Thanks to Mark Zusman
- <marklz@topaz.technion.ac.il> for this.
-
-Fri Jan 12 00:47:57 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Time_Value.h: #included <pthreads.h> to the Time_Value.h
- class so that it would be the first file included. This fixes a
- problem with AIX. Thanks to Chris Lahey for reporting this and
- suggesting the fix.
-
- * ace: Fixed a braino with the #ifdefs in SPIPE_Stream and
- SPIPE_Acceptor. These were checking for ACE_WIN32 rather than
- ACE_HAS_STREAM_PIPES. Naturally, that failed on versions of
- UNIX (e.g., Linux) that lack STREAM pipes! Thanks to Neil Cohen
- for taking time out of fighting blizzards to report this!
-
- * ace/Svc_Handler: Added a new method for handle_timeout, which
- shuts things down by default. Thanks to Irfan for suggesting
- this.
-
- * Fixed a minor problem caused when Tim added the Double-Check
- pattern to ACE_ODB...
-
-Thu Jan 11 01:48:02 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Integrated AIX fixes from Chris Lahey <clahey@ix.netcom.com>.
- These should allow ACE to build correctly using the AIX compiler
- and it's screwy template mechanisms!
-
- * ace: Fixed some minor bugs that caused problems when compiling
- with G++.
-
-Wed Jan 10 00:17:05 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Trace.cpp: Fixed a typo that was causing problems when using
- ACE_TRACE (we were ending up with recursive tracing in the
- ACE_Trace class!). Thanks to Detlef for noticing this.
-
- * ace/ACE.cpp: Moved methods from ACE.i to ACE.cpp and removed the
- INLINE macro to deal with order of include problems with GNU
- G++.
-
-Tue Jan 9 19:00:41 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Task.i (flush): Added a check to make sure that msg_queue_
- != 0 before trying to close() the queue. This solves a problem
- if the queue has already been closed. Thanks to Alex V
- Maclinvosky <alexm@teltrunk1.tait.co.nz> for reporting this...
-
- * tests/ASX/Event_Server/Event_Server: Fixed minor bugs in
- Supplier_Router.cpp and Consumer_Router.cpp -- I was checking
- for this->getq (mb) > 0 rather than this->getq (mb) >= 0.
- Thanks to Alex V Maclinvosky <alexm@teltrunk1.tait.co.nz> for
- noticing this...
-
- * ace/Synch_T.h: Commented out the ACE_ALLOC_HOOK stuff. This is
- causing order-of-include problems on HP/UX. Also moved the
- ACE_Null_Condition::wait() method to Synch_T.i to avoid the same
- problem. Thanks to Greg Baker
- <GBaker@p01.az15m.iac.honeywell.com> for pointing this out.
-
-Sun Jan 7 18:57:49 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Makefile: Added the Dump file to ACE. Thanks to Tim for
- fixing this up to make it ready for prime time.
-
- * Thanks to Craig Rodrigues <rodrigc@ecf.toronto.edu> for sending
- me a new version of psnup that *finally* fixes the nasty
- problems with "4-up" printing of postscript! This makes it much
- easier to distribute ACE documentation...
-
-Sun Jan 7 18:31:07 1996 Tim H. Harrison (harrison@merengue.cs.wustl.edu)
-
- * ace: Used the "Double-Check" pattern to eliminate potential race
- conditions when using Singletons in multi-threaded programs.
- Classes affected included ACE_[MS]T_CORBA_Handler, Name_Options,
- Trace, and ACE_ODB.
-
-Fri Jan 5 00:03:29 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.i: Added the following to OS.i:
-
- #if defined (ACE_LACKS_SYSCALL)
- int syscall (int, ACE_HANDLE, struct rusage *);
- #endif /* ACE_LACKS_SYSCALL */
-
- This should fix some problems with HP/UX. Thanks to Walt Akers
- (akers@cebaf.gov) for pointing out the problem.
-
- * ace/Handle_Set: Fixed the Handle_Set conversion operator so that
- it returns fd_set * rather than ACE_FD_SET_TYPE *. Thanks to
- Walt Akers (akers@cebaf.gov) for pointing out the problem.
-
- * ace/Time_Value.h: I think I've fixed the problem with the order
- of #includes with respect to POSIX and SVR4 time. The trick was
- to put this test in ace/Time_Value.h and then to make sure that
- the ace/config.h file was included at this point! Also changed
- the symbol from ACE_HAS_POSIX_TIMERS to ACE_HAS_POSIX_TIME to be
- more accurate.
-
-Thu Jan 4 23:16:59 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/OS.i (gettimeofday): Changed the implementation of
- gettimeofday() to use the ::_ftime call rather than the more
- complex ::GetSystemTime(), ::SystemTimeToFileTime() duo.
-
-Thu Jan 4 9:32:38 1996 Chris Lahey (clahey@ix.netcom.com)
-
- * ace/config-aix.h: added #define ACE_TEMPLATES_REQUIRE_SOURCE
- to make ACE work with AIX C++ compiler.
-
- * include/makeinclude/platform_aix.GNU:
-
- Added -qtempinc to the CPPFLAGS
- Removed the PIC= definition completely
-
- * ace/Task.h: ACE_Task::svc() should not be declared as a pure
- virtual, removed = 0.
-
- * ace/Map_Manager.cpp: in trybind() member function, the line
- int_id = ss.int_id_;
- should be:
- int_id = search_structure[index].int_id_;
-
-Thu Jan 4 01:23:38 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Map_Manager.cpp: Fixed a braino in Map_Manager -- didn't
- need the <index> parameter to shared_bind(). Thanks to Tim for
- finding this!
-
- * ace/Log_Msg.cpp (instance): Tim Harrison did a noble service to
- humanity by fixing a potential race condition in the instance()
- Singleton of ACE_Log_Msg.
-
-Wed Jan 3 00:49:57 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Made some minor changes to fix portability problems with
- SGI. Fortunately, this should also fix some other problems with
- HP/UX another other non-thread platforms.
-
- * ace/ACE.cpp (format_hexdump): Added Todd Montgomery's amazing
- "format_hexdump" method to class ACE.
-
-Tue Jan 2 20:47:57 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/SV_Semaphore*: updated the interface of the _Simple and
- _Complex System V semaphore wrappers to include the _read() and
- _write() forms of acquire() and tryacquire(). Note that I've
- implemented these as calls to acquire() and tryacquire(), so
- they don't add any extra behavior. This is needed for interface
- conformance with other forms of ACE synchronization mechanisms.
-
- * ace/Time_Value.h: Changed the header to #include <sys/time.h>
- in order to work around nasty "order of include" problems.
-
- * tests: Created a new directory called Win32. This contains test
- programs that This directory contains test programs that have
- been compiled and tested successfully under Windows NT. As we
- get further along, we'll move this stuff into the general ACE
- $WRAPPER_ROOT/tests directory (since of course all ACE programs
- will run without any problems under Win32, right? ;-)). See
- the ./tests/Win32/README file for instructions on how to build
- these tests.
-
- * ace/Reactor.h: Moved the ACE_Handler_Repository out of the
- ACE_MT_SAFE section of the code. This was a "typo." Thanks to
- Walt Akers <akers@cebaf.gov> for reporting this.
-
-Mon Jan 1 01:18:12 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/ACE.i: Moved the recv_n() and send_n() methods from ACE.cpp
- into ACE.i and set things so that if __INLINE__ is set then
- we'll inline those too!
-
- * ace: Irfan and I got the first major part of the Win32 to work
- finally! We made two socket programs (client and server) that
- talked to each other and to UNIX. Things are really starting to
- take shape!
diff --git a/ChangeLogs/ChangeLog-96b b/ChangeLogs/ChangeLog-96b
deleted file mode 100644
index 5dd7b809a42..00000000000
--- a/ChangeLogs/ChangeLog-96b
+++ /dev/null
@@ -1,5878 +0,0 @@
-Tue Dec 31 18:27:50 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log): Added a test so that if we're
- (1) not printing to stderr and (2) aborting the program we still
- print a message to stderr.
-
- * ace/Message_Block: Added synchronization support to
- ACE_Message_Block. This is necessary now that we've got
- reference counting to ensure that we don't have race conditions
- when incrementing and decrementing the reference count in
- separate threads. The approach is very clean and uses the new
- ACE_Lock mechanism to conditionally acquire()/release() the
- locking strategy if concurrency control is necessary.
-
- * ace/Synch_T: Created a new set of ACE_Lock and
- ACE_Lock_Adapter<> classes which are similar in spirit to the
- ACE_Allocator and ACE_Allocator_Adapter<> classes. These make
- it possible to treat polymorphically synchronization mechanisms
- in ACE polymorphically, *without* creating an entire new
- parallel hierarchy of locking mechanisms.
-
- * ace/Synch: Added the full suite of acquire_{read|write}() and
- tryacquire_{read|write}() methods to ACE_Semaphore and
- ACE_Process_Semaphore so they will be consist with the other
- synchronization APIs.
-
-Tue Dec 31 00:11:56 1996 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Changed all uses of ACE_Event_Handler::RWE_MASK to
- ACE_Event_Handler::ALL_EVENTS_MASK to reflect the fact that
- we will soon have more than READ, WRITE, and EXCEPT events.
- However, I've kept RWE_MASK around for backwards
- compatibility.
-
- * examples/ASX/Message_Queue: Changed the tests so that they use
- the new ACE_Message_Block::release() method rather than calling
- delete explicitly.
-
- * apps/Gateway: Revised the implementation of the Gateway and Peer
- applications to take advantage of the new ACE_Message_Block
- reference counting scheme.
-
-Tue Dec 31 15:06:51 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Task.cpp: added comments that try to explain interaction
- between ACE_Task_Base::svc_run () and ACE_Task_Exit instance
-
- * ace/Hi_Res_Timer.h: added comment to print_total () saying it
- should only be used for incremental timings; added defaults to
- a few print_ave/print_total args
-
- * ace/Hi_Res_Timer.{i,cpp}: inlined the constructor; trimmed output
- if count is 1; rounded instead of truncated usecs portion of time
-
-Mon Dec 30 15:24:59 1996 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Message_Block: Added reference counting to ACE_Message_Block
- so that we no longer have to clone() messages when we want to
- pass them around "by reference."
-
- * apps/Gateway/Peer/Peer.cpp (init): The Peer_Acceptor had gotten
- out of date wrt newer ACE features, so I updated it.
-
-Mon Dec 30 15:24:59 1996 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.h: Added a special case for ACE_UNUSED_ARG that works
- with G++. Thanks to David Levine for this.
-
-Mon Dec 30 16:05:11 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (ace_thread_adapter): Updated ACE_TRACE arg
- names (even though they're currently commented out).
-
- * ace/Task.cpp (svc_run): If TSS isn't supported, and on
- Linux, for now, create the ACE_Task_Exit exit_hook instance
- on the stack so that it's destructor will be called when
- svc_run () completes.
-
-Sun Dec 29 18:38:03 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * apps/Gateway/Gateway/File_Parser.h: Removed the endofline()
- method declaration -- it doesn't seem to be defined anywhere.
-
- * ace/OS.h: Added an ACE_INT32 to complement the ACE_UINT32.
-
- * netsvcs/lib: Cleaned up all the ACE network services by removing
- their SIGINT signal handler. This was interferring with the
- main event loop's ability to shutdown...
-
- * apps/Gateway/Gateway: Once again changed the name of
- *IO_Handler* to *Proxy_Handler* since these things are really
- proxies, in the COS sense!
-
- * ace/Service_Record.cpp: Tidied up the implementation of
- ACE_Module_Type::fini() so that it doesn't try to call fini() on
- NULL pointers. Also, rather than explicitly deleting the reader
- and writer Tasks, we call ACE_Module<>::close(), which knows how
- to take care of all this stuff.
-
- * ace/Module.cpp: Added an extra parameter to close_i() so that we
- can correctly pass the value of "flags" from close() in order to
- prevent deleting tasks when we don't want to do this.
-
- * ace/Module.cpp: There was a bug in the open() method
- since we were potentially deleting reader_q and writer_q twice
- if memory allocation failed.
-
-Sat Dec 28 19:02:13 1996 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/ACE.cpp: Changed the implementation of ldfind() so that it
- doesn't try to add the DLL prefix (e.g., "lib") unless it
- doesn't match filename. This is necessary to keep lots
- of existing svc.conf files from breaking.
-
- * ace/Event_Handler.h: Added a new ACCEPT_MASK for use with the
- new asynchronous accept() operation support for Win32.
-
- * ace: Added a new config file for WinNT 4.0 called
- config-winnt-4.0-msvc4.x.h. This file contains #defines for new
- features in WinNT 4.0 such as non-blocking acquire for
- CRITICALSECTIONs (TryEnterCriticalSection()),
- SignalObjectAndWait(), and CancelIO(). Oddly enough, these
- functions seem to be missing from the MSVC++ 4.2 #include files,
- so I added them to the config file.
-
- * ace: Changed the name of config-win32-msvc4.0.h to
- config-win32-msvc4.x.h since this config file works for MSVC++
- 4.0, 4.1, and 4.2.
-
- * ace/Proactor: Added a new "cancel_io" method on the Proactor.
- This makes it possible to cancel all I/O that is outstanding on
- a thread. Thanks to Tim for help with this.
-
-Sat Dec 28 23:49:09 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/ReactorEx.h: Fixed some bugs with ACE_ReactorEx::dispatch.
- For instance, the index should only be incremented when handlers
- are dispatched.
-
- * ace/OS.i: Fixed some typos regarding the ACE_cond_t for NT.
-
- * examples/Reactor/Proactor/test_proactor.cpp: Dr. Schmidt and I
- hacked this to be way cool. In particular, we no longer
- have to know the size of the files to be transferred in
- advance. This scheme uses a clever protocol that shuts down
- the Peer Handler when (1) all input from the file has arrived,
- (2) all output to the remote peer handler has been sent, and (3)
- all input from the remote peer handler has been received.
- The Peer Handler now uses calls close_writer on the stream
- to notify the remote peer when its done writing. The Input
- File Handler sends an mb==0 to tell the Peer Handler when
- it's done reading from the file. The Peer Handle uses a
- state variable to OR in all the different conditions for
- exiting. It works.
-
-Fri Dec 27 23:39:19 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Stream.cpp (pop): Modified the code so that we don't delete
- the Module we are popping unless the flags request this.
-
- * ace/Service_Record.cpp (fini): Always make sure to first fini()
- each Module, then remove() (and delete) them.
-
- * ace/Stream.cpp (remove): Updated the code so that we don't
- delete the Module unless the flags request this.
-
-Thu Dec 26 18:51:22 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-lxpthreads.h: Has James CE Johnson's
- latest adjustments to this config file.
-
-Tue Dec 24 10:55:20 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.cpp (ace_thread_adapter): Changed the message that is
- printed if we exit the thread. Thanks to Luca for this
- suggestion.
-
-Tue Dec 24 15:38:43 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (cond_destroy): added call to event_destroy ()
- for waiters_done_ on WTHREADS platforms
-
- * ace/Future.cpp: added specialization of
- template class ACE_Atomic_Op<ACE_Thread_Mutex, int>;
- so that libACE is self-contained with respect to template
- instantiations (with g++, for example)
-
- * ace/Malloc.cpp: added specialization of
- template class ACE_Atomic_Op<ACE_PROCESS_MUTEX, int>;
- so that libACE is self-contained with respect to template
- instantiations (with g++, for example)
-
- * examples/Reactor/Misc/test_reactors.cpp,
- examples/Threads/future1.cpp, examples/Threads/future2.cpp,
- examples/Threads/manual_event.cpp, examples/Threads/task_two.cpp,
- performance-tests/Synch-Benchmarks/Benchmark.cpp,
- tests/Future_Test.cpp, tests/Reactors_Test.cpp: instantiate
- ACE_Atomic_Op with int instead of u_long so that it can use
- the specialization in libACE
-
-Tue Dec 24 12:49:21 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h (struct siginfo_t): added declaration of
- siginfo_t (ACE_HANDLE *handles) to match definition in
- OS.cpp. Thanks to James Johnson for pointing this out.
-
- * ace/OS.cpp (thr_create): fixed position of
- #endif /* !ACE_LACKS_THREAD_STACK_SIZE */ directive, it
- needed to be before the closing '}' of the block. Thanks to
- James Johnson for pointing this out, also.
-
- * ace/OS.cpp: don't include ace/ARGV.h except on WIN32 because
- it's only needed there, and don't compile ACE_Thread_Adapter on
- VxWorks to save space
-
- * apps/Gateway/Peer/Gateway_Handler.h: changed #include "Event.h"
- to be #include "Peer_Message.h" so that Peer_Header::ROUTING_ID
- can be referenced in the class declaration. This subproject
- still doesn't build, though; I think that Event.h is needed.
-
- * ace/OS.h (struct ACE_cond_t): declare waiters_done_ as
- ACE_sema_t on VxWorks only, to avoid recursive struct
- definition with ACE_event_t
-
- * ace/OS.i (ACE_OS::cond_*): on VxWorks only, use sema
- operations on ACE_cond_t::waiters_done_ instead of event ops
-
-Tue Dec 24 10:55:20 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Threads/task_three.cpp (main): Changed the use of
- new-style C++ casts for ACE_Sig_Action to old-style C casts so
- that more picky compilers like GCC won't complain. Thanks to
- Sandro Doro <alex@aureus.sublink.org> for reporting this.
-
- * examples/Threads/task_two.cpp: Fixed a typo where int should be
- used as the type for ACE_Atomic_Op rather than u_long. Thanks
- to David Levine for noticing this.
-
- * ace/OS.i: Generalized the implementation of ACE_OS::cond_wait()
- so that it will work with Win32 and VxWorks. Thanks to David
- Levine for pointing this out.
-
- * ace/Synch_T.cpp: Removed ACE_Process_Condition since it isn't
- really feasible to implement this as a template. At some point,
- it should be reimplemnted as a non-template that is only
- guaranteed to work on Solaris and some POSIX pthreads platforms.
-
-Sun Dec 22 21:23:57 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Acceptor.cpp: replaced two statements that looked like this:
- "ptr && ptr->foo ()" with "if (ptr) ptr-> foo()" to prevent
- compiler warnings about computed values that aren't used
-
- * netsvcs/clients/Tokens/manual/manual.cpp: added explicit "int"
- return type to declaration of handle_exception (ACE_HANDLE) so
- that compilers don't complain about no type
-
- * ASX/Event_Server/Event_Server/Options.cpp,
- ASX/UPIPE_Event_Server/Options.cpp: rearranged initializers
- in Options ctor to match declaration order
-
-Sun Dec 22 21:16:23 1996 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): added a new ACE_HAS_PTHREADS_XAVIER to
- deal with the sparam.sched_priority features of the Linux
- pthreads implementation. Thanks to James Johnson for this.
-
- * ace/OS.i (thr_setprio): I forgot to define int policy = 0;
-
- * ace/SV_Semaphore_Simple.i: Removed the frigging LUSED macro and
- updated the ACE_SV_Semaphore_Simple::name_2_key() method to
- consider *all* the characters in the name. This will help avoid
- nasty bugs when different lock names have a common prefix.
-
- * ace/Local_Name_Space_T.cpp (ACE_Local_Name_Space): Added a call
- to "delete this->lock_" since we now allocate it dynamically.
-
- * apps/Gateway/Gateway/gatewayd.cpp: Changed call to
- ACE_SVC_INVOKE from ACE_Gateway to Gateway.
-
- * ace/OS.i: In function thr_sigsetmask changed the line:
-
- #if defined (ACE_HAS_IRIX62_THREADS)
-
- to
-
- #if defined (ACE_HAS_IRIX62_THREADS) || defined (ACE_HAS_PTHREADS_XAVIER)
-
- Thanks to James CE Johnson <jcej@lads.com> for this.
-
- * ace/config-linux-[lx]pthreads.h: Added a #define for the
- ACE_HAS_THREAD_SPECIFIC_STORAGE symbol. Thanks to James CE
- Johnson <jcej@lads.com> for this.
-
- * ace: created a new config file called config-linux-lxpthreads.h.
- This contains the ACE #defines necessary to use L. Xavier's
- threading package on Linux. Thanks to James CE Johnson
- <jcej@lads.com> for this.
-
- * build/gcc/ace/Synch: Moved the definition of the ACE_*Event
- classes *outside* of ACE_HAS_THREADS so that the Proactor will
- compile correctly even when there's no threading defined.
-
- * ace/config-linux-pthread.h: Added #define ACE_MT_SAFE, which
- seems to have been missing. Thanks to James Johnson for
- suggesting this.
-
- * tests/TSS_Test.cpp: Now that we've got Chris Lahey's fixes for
- AIX we can run this test on AIX.
-
- * ace/OS.cpp (thr_create): Added a #ifdef for
- pthread_attr_setstacksize() for Linux pthreads, which doesn't
- seem to support this. Thanks to James CE Johnson
- <jcej@lads.com> for this fix.
-
- * ace/OS.i: Added DCE pthreads fixes for OSF/1 3.2. Thanks to
- Harry Gunnarsson <hg@carmenta.se> for these.
-
-Sat Dec 21 13:54:45 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch_T: Integrated a solution that will allow MVS to use
- ACE_TSS. The problem is that the MVS C++ compiler requires an
- extern "C" destructor function for pthread_key_delete and the
- ACE_TSS stuff uses a paramatized C++ destructor function
- (ACE_TSS<TYPE>::cleanup). To solve this, a new class
- (ACE_TSS_Adapter) was created that encapsulates a thread
- specific object and it's associated C++ destructor. The ACE_TSS
- methods were then modified so that they provide access to the
- thread specific object through the ACE_TSS_Adapter. Also added
- a generic extern "C" cleanup routine that takes an
- ACE_TSS_Adapter as an argument. It then calls the adapters
- cleanup method passing it the saved address of the thread
- specific object. Thanks to Chuck Gehr <gehr@sweng.stortek.com>
- for all of this.
-
- * ace/OS: Updated the code so that it will work with MFC and
- AfxBeginThread(). Thanks to Detlef for these changes.
-
- * ace/README: Added two new #defines for ACE_LACKS_COND_T and
- ACE_LACKS_RWLOCK_T to make it possible to define these in a
- fine-grained manner for various platforms.
-
- * ace/OS.h: Restructured the ACE_HAS_THREADS section so that we
- factor out the code for ACE_cond_t and ACE_rwlock_t so that it
- is only defined if we don't support these features natively.
-
- * ace/ReactorEx: Added a new "alertable" parameter to the
- handle_events() method. If alertable is true, then
- WaitForMultipleObjectsEx is used as the demultiplexing call,
- otherwise WaitForMultipleObjects is used.
-
- * ace/Signal.cpp: Had to move a few things around so that the code
- would compile for HP/UX. Thanks to Neil B. Cohen
- <nbc@metsci.com> for reporting this.
-
- * ace/Acceptor.cpp: Updated the handle_close() method so that the
- Acceptor shuts down the listen socket and prevents handle leaks.
- Thanks to Irfan for reporting this.
-
-Thu Dec 19th 03:48:26 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/Local_Name_Space_T.cpp: Made sure that the mutexes are
- getting named properly (both the mutex owned by the
- Local_Name_space and the lock owned by the backing
- store). For the time being I named these two to be the
- extensions of the backing store file name.
-
- * ace/Local_Name_Space_T.cpp: Replaced the create_manager code
- such that we use the double check pattern. This is simpiler
- and easy to understand compared to the current code.
-
- * ace/Naming_Context.cpp: Gave the database name a default value.
-
- * ace/Malloc_T.cpp: The lock_name should never be 0. This will
- cause all instances of the same pool to get different
- mutexes.
-
-Sat Dec 21 09:43:35 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i}: fixes for VxWorks introduced in 4.1, and for
- inlining: moved #include of OS.i after #defines but before
- other ace #includes
-
-Thu Dec 19 15:58:09 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks*.h, include/makeinclude/platform_vxworks*.GNU:
- enable inlining on VxWorks by default
-
-Wed Dec 18 16:44:47 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Proactor.cpp (dispatch): Changed this method to take an
- int error parameter to set errno just before dispatching.
- This allows us to better propagate overlapped I/O errors to the
- handlers.
-
-Wed Dec 18 16:21:36 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i} and ace/INET_Addr.cpp: more VxWorks
- gethostbyname () tweaks
-
-Wed Dec 18 15:24:13 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Proactor.cpp (ACE_Proactor): Initialize completion_port_ to
- 0. This is the only way that CreateIoCompletionPort works
- first time in. ACE_INVALID_HANDLE makes it break.
-
- * (ACE_Proactor): Added a call to CreateIoCompletionPort in the
- constructor so that GetQueuedCompletionStatus can be called
- before ACE_Proactor::initiate is called. This is necessary if
- an application is using the Proactor as a timer mechanism only.
-
-Tue Dec 18 7:58:07 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Proactor.i (get_handle): Changed this to return
- ACE_INVALID_HANDLE on non Win32 platforms. Also changed
- shared_event_ from an ACE_Manual_Event to an ACE_Auto_Event.
- This allows us to remove the call to reset from handle_signal.
-
- * examples/Reactor/Proactor/test_timeout.cpp: Added a new example
- application to the Proactor example suite. Check the README for
- more details.
-
- * examples/Reactor/ReactorEx/test_timeout.cpp: Added a new example
- application to the ReactorEx example suite. Check the README for
- more details.
-
- * ace/Service_Config.cpp: Fixed a bug in run_reactorEx_event_loop
- (ACE_Time_Value &) so that it doesn't return on timeout.
-
-Tue Dec 18 7:06:32 1996 <harrison@samba.cs.wustl.edu>
-
- * ace/Proactor.cpp (handle_events): Once again removed the
- timer_skew_ code. Changed the ACE_HANDLE global_handle_ to
- ACE_Manual_Event shared_event_. Added a constructor that takes
- an ACE_Timer_Queue *. Changed the implementation to use an
- ACE_OS::sleep if only timers are registered. We need to figure
- out a better approach than the sleep.
-
- * ace/Service_Config.cpp (run_proactor_event_loop): Changed this
- to only return when an error occurs. If handle_events returns a
- 0, then a timeout occurred, and we can continue to dispatch
- events. We only return when all of the time has expired.
-
- * ace/Registry_Name_Space.h (ACE_Registry_Name_Space): Moved the
- include statements below the ACE_WIN32 and UNICODE directives.
-
- * ace/OS.h (siginfo_t): Added siginfo_t (ACE_HANDLE *handle)
- constructor prototype.
-
-Wed Dec 18 06:37:22 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (cond_wait): Added the new algorithm for condition
- variable emulation on Win32. (and VxWorks). This should fix the
- nasty problems we had with earlier version (which weren't
- "fair"). Thanks to James Mansion, Karlheinz, Detlef, and Irfan
- for helping with this.
-
- * ace/Registry.h: Removed the "ACE_TURN_NOMINMAX_OFF" stuff
- in order to simplify the code. Thanks to Irfan for this.
-
- * ace/OS.i (sema_post): Added a new overloaded version of
- ACE_OS::sema_post(), which takes a "release count." This is the
- number of times to release the semaphore. Note that Win32
- supports this natively, whereas on POSIX we need to loop...
-
- * ace/Proactor.cpp (handle_events): Changed the Proactor logic so
- that it will correctly propagate any errors that occur to the
- handle_{input,output}_complete callback.
-
-Tue Dec 17 20:56:56 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i}: on VxWorks: implemented ACE_OS::gethostbyname (),
- and fixed inet_ntoa () to return -1 on failure
-
- * ace/OS.cpp: in ::spa () for VxWorks, zero out unused argv[]
- slots to overwrite args from previous invocations OS.cpp
-
-Tue Dec 17 04:27:07 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ReactorEx: Added a new feature to the ReactorEx. If we
- enable the wait_all flag when calling
- ACE_ReactorEx::handle_events() *and* we give an
- ACE_Event_Handler (this is a new final param to the call) then
- the handle_signal() call will be invoked on this
- "wait_all_callback" object when all the handles become signaled.
- Moreover, we pass in the array of signaled handled to through
- the siginfo_t parameter (see the following ChangeLog entry for
- details). If there is no wait_all_callback param, then all the
- handle_signal() methods are invoked on all the handles.
-
- * ace/OS.h (siginfo_t): Augmented the siginfo_t interface so that
- we can pass an array of signaled Win32 HANDLEs, in addition to
- just a single HANDLE. This is used in the ReactorEx.
-
- * examples/Reactor/ReactorEx/test_reactorEx.cpp: Added a number of
- enhancements to this test program based on discussions with
- Irfan, Karlheinz, Dieter, and Detlef.
-
- * ace/Task_T.i (msg_queue): If we override the existing definition
- of the Message_Queue in an ACE_Task then we need to delete the
- existing Message_queue (if necessary and mark the Message_Queue
- as no longer being a candidate for deletion (since we have
- supplied our own definition). Irfan had added this earlier, but
- it seemed to get lost...
-
- * examples/Reactor/Proactor/test_proactor.cpp: The class called
- STDIN_HANDLEr is misnamed since we don't read from stdin, we
- read from a file. Therefore, I've changed this to be
- Input_File_Handler.
-
- * examples/Reactor/ReactorEx/test_{proactor,reactorEx}.cpp:
- Changed misspellings of transfered to transferred.
-
- * ace/Memory_Pool.cpp (ACE_MMAP_Memory_Pool): Since NT doesn't support
- SIGSEGV thre's no point in even trying to register for this
- signal!
-
- * ace/OS.i: Reverted some lost UNICODE fixes -- thanks to Irfan
- for finding these.
-
- * ace/Local_Name_Space_T.cpp (create_manager_i): Removed a
- debug statement since it may be causing problems with printing
- UNICODE.
-
-Mon Dec 16 11:25:55 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (cuserid): Fixed the definition to ACE_OS::cuserid() so
- that it uses LPTSTR. Thanks to Irfan for this fix.
-
- * ace/Task.cpp (activate): In ACE_Task::activate() there is a possibility to actually
- "reactivate" the task using the <force_activate> flag. The following
- illustrates that ability:
-
- if (this->thr_count_ > 0 && force_active == 0)
- return 1; // Already active.
- else
- this->thr_count_ = n_threads;
-
- The thing is that, when the task is running and we reactivate it
- (actually we add threads) the command should be:
-
- this->thr_count_ += n_threads;
-
- rather than
-
- this->thr_count_ = n_threads;
-
- That way <this->thr_count_> holds the new number of threads currently
- associated with the task. Thanks to Hamual for this fix.
-
- * ace/OS.i (inet_aton): Placed the return 1 within the curly
- braces to make the HP/UX compiler happy. Thanks to Kenny Want
- for reporting this.
-
-Mon Dec 16 12:56:43 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i: removed spurious "*/" after an #endif. Thanks to
- Harry Gunnarsson <hg@carmenta.se> for reporting this.
-
- * ace/Svc_Conf_l.cpp: #ifdef'ed out ace_yyunput () and
- ace_yy_{push,pop,top}_state () because they're not used,
- and commented out a few "break"s after "return"s in switch
- statements to prevent compiler warnings.
-
- * ace/Typed_SV_Message.i: reordered initializations in ctor to
- match declaration order.
-
- * examples/Threads/Makefile, performance-tests/Misc/Makefile,
- tests/Makefile:
- Removed "LIBS += -lm" from these Makefiles because it doesn't
- appear to be necessary, and not all platforms have a libm.
-
- * include/makeinclude/platform_sunos4_g++.GNU, platform_sunos5_g++.GNU,
- platform_sunos5_x86_g++.GNU, platform_unixware_g++.GNU:
- added -lm to LIBS because it was removed from the Makefiles, and
- it's needed with g++.
-
- * netsvcs/lib/Makefile: removed /pkg/gnu/lib dependencies. Thanks
- to Per Andersson <Per.Andersson@hfera.ericsson.se> for pointing
- this out.
-
- * netsvcs/servers/svc.conf: changed _make_ACE_Logger() to
- _make_ACE_Logging_Strategy() svc.conf. Thanks to Per Andersson
- <Per.Andersson@hfera.ericsson.se> for reporting this.
-
-Sun Dec 15 13:01:17 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Naming_Context.cpp: reordered initializations in default ctor
- to match declaration order.
-
- * ace/Svc_Conf_y.cpp: added parens to a couple of combined
- assignments/conditionals to avoid compiler warnings.
-
- * include/makeinclude/platform_sunos5_sunc++*.GNU: reverted
- SOLINK step back to creating real .so files, because it
- seems to be necessary, sometimes, for template instantiation.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: removed ACE_INLINE's.
-
- * tests/MM_Shared_Memory_Test.cpp: declare shm_key as char[]
- instead of char *, so that the string gets put into the data
- segment rather than the text segment. The string gets modified,
- which causes a core dump with the g++/SunOS5.5 build if the string
- is in the text segment.
-
-Sun Dec 15 10:29:20 1996 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * netsvcs/servers/svc.conf: Removed the "lib" prefix for the
- netsvcs DLL. This is now added automatically by the
- ACE::ldfind() operation.
-
- * ace/SString.cpp (ACE_CString): Removed the #pragmas for Win32.
- They aren't necessary since we should replace the ACE_USHORT16
- cast with a char cast. Thanks to Amos Shapira <amos@dsi.co.il>
- for reporting this.
-
-Sat Dec 14 14:25:38 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * build/SunOS5.5/tests/UPIPE_SAP_Test.cpp (main): Fixed several
- minor bugs with UPIPE_SAP_Test.cpp.
-
- * ace/OS.i (thr_join): Added implementations for Solaris threads
- and most versions of POSIX pthreads where ACE_hthread_t and
- ACE_thread_t are the same type!
-
- * ace/OS: Began adding hooks so that we can eventually move away
- from the current split between ACE_thread_t and ACE_hthread_t
- and unify them via ACE_Thread_ID.
-
- * ace/{OS,Thread}.h: Changed the interface of thr_getprio() so
- that it takes an int & rather than an int *.
-
- * ace/OS.i (thr_getprio): Fixed a minor bug for Win32 where we
- weren't depositing the thread priority into the return value!
-
- * Makefile: Changed the order in which things are built so that
- netsvcs are built right after libACE, followed by the tests.
-
-Sat Dec 14 11:54:22 1996 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * apps/Gateway/Gateway/Consumer_Map: Change the Consumer_Map class
- so that it was no longer templatized. There isn't any point in
- doing this since we aren't going to be changing these types for
- this application.
-
- * apps/Gateway/Gateway: Factored out the code for selecting the
- concurrency strategy into a separate *.h file called
- Concurrency_Strategy.h.
-
- * apps/Gateway/Gateway: Began revising the Gateway application to
- use the new ACE Event Channel.
-
- * ace/Svc_Handler: Now that we've got put() and svc() with no-op
- defaults in class ACE_Task_Base, we don't need them in
- ACE_Svc_Handler anymore, so I removed them!
-
- * ace/Task: Finally got sick of having to provide no-op
- open()/put()/close() routines in all ACE_Task subclasses, so I
- changed these methods from pure virtual to virtual with default
- no-op behavior. Updated all the tests, as well.
-
-Sat Dec 14 11:39:15 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/{Module,Stream,Svc_Handler,Synch_T,Task_T}.cpp and Synch_T.i:
- removed ACE_INLINE qualifier from functions in .cpp files; in
- the case of Synch_T, moved ACE_INLINE functions from .cpp to .i file
-
- * apps/Gateway/Gateway/Routing_Table.cpp,
- examples/ASX/Event_Server/Event_Server/Peer_Router.cpp,
- examples/ASX/UPIPE_Event_Server/Peer_Router.cpp:
- removed ACE_INLINEs from .cpp files
-
- * ace/CORBA_Handler.h and ace/Token_Collection.{h,cpp}:
- changed __INLINE__ to __ACE_INLINE__
-
- * ace/Svc_Conf_y.cpp: commented out unused arguments to
- suppress compiler complaints
-
-Fri Dec 13 22:07:11 1996 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++*.GNU: replaced
- SOLINK step in build of shared objects for SunOS5 with SunC++
- with symlink from .so to .o file.
-
- * ace/config-vxworks*.h: added ACE_NEEDS_SYSTIME_H to VxWorks
- configs because it's needed with inlining
-
- * include/makeinclude/platform_vxworks*.GNU: cleaned up VxWorks
- config files
-
-Fri Dec 13 00:53:34 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Replaced all uses of
-
- #if defined (.....) // ....
-
- with
-
- #if defined (.....) /* ... */
-
- so that broken C++ compilers won't complain. Thanks to
- John Cosby <John.D.Cosby@cpmx.saic.com> for reporting this.
-
- * ace/Thread.i: Updated the signature of getprio() and setprio()
- so that they take ACE_hthread_t. Thanks to Wayne Vucenic
- <wvucenic@netgate.net> for finding this.
-
- * Reran all the tests on NT and Solaris. Everything seems to
- work. Therefore, incremented the version number to 4.1 and put
- it out for ftp and http.
-
-Thu Dec 12 18:51:04 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Priority_Task_Test.cpp (svc): Added a new test to exercise
- the new "priority" feature of ACE_OS::thr_create()
- (which is also available to ACE_Task).
-
- * ace/Thread: Added getprio() and setprio() methods to ACE_Thread.
-
-Fri Dec 13 13:44:12 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks*.h: added ACE_NEEDS_SYSTIME_H to VxWorks
- configs because it's needed with inlining
-
- * include/makeinclude/platform_vxworks*.GNU: cleaned up VxWorks
- config files
-
-Thu Dec 12 18:51:04 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Added a new macro called ACE_UNUSED_ARG() to keep
- the compiler from outputting warnings about unused
- arguments. So far, this is mostly done for Win32, but it
- should be easy to do it for other compilers. Thanks
- to Matthias for these changes.
-
- * ace/OS.cpp: Added support so that thread priorities will
- automatically be set when we spawn threads using
- ACE_OS::thr_create().
-
- * ace/OS.cpp: Simplified the logic for handling NULL thr_handles
- and thr_ids. Now, we set all this stuff in one place at the
- beginning of the function, rather than recomputing it all over
- the place.
-
- * ace/config-aix-{3.2.5,4.1.x}.h: Added the
- ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS flag.
-
- * ace/Thread_Manager.cpp (ACE_Thread_Control): Conditionally
- compiled the logic for calling this->exit() in the destructor
- for ACE_Thread_Control so that we only make this call if
- ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS is *not* set. This will
- prevent infinite recursion on platforms like AIX. Thanks to
- Chris Lahey for reporting this.
-
- * apps/Gateway/Gateway/Channel.cpp (recv_peer): Added the logic
- that makes sure we don't get screwed up by partial headers.
- Thanks to Chris Cleeland for this.
-
-Thu Dec 12 20:55:02 1996 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++*.GNU: removed
- SOLINK step in build of shared objects for SunOS5 with SunC++:
- it's not necessary.
-
-Thu Dec 12 03:48:26 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/Naming_Context: Modified ACE_Naming such that on Win32, you
- can use ACE_Registry_Name_Space.
-
- * ace/Registry_Name_Space: ACE_Registry_Name_Space is a Name_Space
- which uses ACE_Registry as the persistence mechanism. Win32
- clients of ACE_Naming can now start using (the more robust and
- reliable) Registry persistence without any major code changes.
-
- * tests/Naming_Test.cpp: Added the use of Registry_Name_Space to
- the test if we are on Win32 and UNICODE is turned on.
-
- * examples/Registry: Fixed UNICODE behavior of the tests
-
-Wed Dec 11 20:33:28 1996 Douglas C. Schmidt <schmidt@lindy.cs.wustl.edu>
-
- * ace/Synch_T.h: Added a warning that indicates why it isn't
- possible to use ACE_Process_Condition<ACE_Process_Mutex> on
- Win32...
-
- * tests/TSS_Test.cpp: Moved the Errno class to a file
- TSS_Test_Errno.h and replaced the Errno class with the #include
- "TSS_Test_Errno.h" to work around "features" with AIX C++'s
- template instantiation scheme.
-
- * ace/OS.i (inet_aton): Replaced the use of ((ACE_UINT32) -1) with
- ((ACE_UINT32) ~0). I expect this is more portable...
-
- * tests/run_tests.bat: Added "Service_Config_Test" to the
- run_tests.bat file.
-
-Tue Dec 10 22:59:26 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * tests: Added Service_Config_Test to Win32 makefiles.
-
- * ace/OS.i (inet_aton): We need to cast htonl to (long)
-
- * tests: Added/Fixed UNICODE behavior of the following:
-
- MM_Shared_Memory_Test.cpp
- Mem_Map_Test.cpp
- Mutex_Test.cpp
- Naming_Test.cpp
- Process_Mutex_Test.cpp
- SPIPE_Test.cpp
- Time_Service_Test.cpp
- Tokens_Test.cpp
- UPIPE_SAP_Test.cpp
-
- * netsvcs/lib: Added/Fixed UNICODE behavior of the following:
- ACE_TS_Clerk_Processor::poolname_
-
-Tue Dec 10 00:33:08 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Service_Config_Test.cpp (main): Added a new method called
- run_test() to ensure that ACE_Service_Config daemon is destroyed
- before we try to end the test.
-
- * ace/OS.i (inet_aton): We need to cast -1 to (ACE_UINT32).
-
- * tests/Process_Mutex_Test.cpp (main): Added a minor change to
- make gcc happy by moving the definition of int i *outside* the
- loop. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for reporting this.
-
- * ace/OS.h: gcc complains about memcmp, memcpy, strcmp, and strcpy
- (from ACE_OS::) being used before defined inline. This is due
- to the include of SString.h at the end of OS.h. So I reordered
- things in accordance to the changes from Thilo Kielmann
- <kielmann@informatik.uni-siegen.de>.
-
- * build/SunOS5.5/examples/Shared_Malloc/test_multiple_mallocs.cpp:
- Changed the definition of char *base_addr to void *base_addr.
-
- * ace/Memory_Pool.cpp (ACE_MMAP_Memory_Pool_Options): Changed the
- definition of char *base_addr to void *base_addr.
-
- * Put out what is hopefully the final beta release of 4.0.33.
-
- * ace/Message_Queue: Added the enqueue() method again to maintain
- backwards compatibility. Thanks to Karlheinz for pointing out
- the need for this.
-
- * ace/Service_Config.h: The svc.conf factory functions were
- begin defined as extern "C", but the function pointer defined in
- the ACE_Static_Svc_Descriptor struct is not declared as extern
- "C", therefore, there was a mismatch. Here's how to fix this:
-
- In Service_Config.h, before the struct ACE_Static_Svc_Descriptor
- add:
-
- extern "C" {
- typedef ACE_Service_Object *(*ACE_SERVICE_ALLOCATOR)(void);
- }
-
- Then in the struct alloc_ field was changed as follows:
-
- from: ACE_Service_Object *(*alloc_)(void);
- to: ACE_SERVICE_ALLOCATOR alloc_;
-
- Thanks to Chuck Gehr for this.
-
- * ace/Memory_Pool.cpp (commit_backing_store_name): Changed uses of
- "counter" from int to size_t to remove warnings.
-
- * ace/ACE.cpp: Reimplemented the ACE::daemonize() method to
- conform to the latest version in Richard Steven's new UNP book.
-
- * ace/INET_Addr.cpp (set): Replaced the use of ACE_OS::inet_addr()
- with ACE_OS::inet_aton(). Thanks to W. Richard Stevens for this
- idea ;-).
-
- * ace/OS: Added a new function called inet_aton(), which is based
- on a new POSIX socket addressing function that is non-ambiguous
- in its return value (unlike inet_addr).
-
- * tests: Added a new Service_Config_Test.cpp to make sure that the
- timeout features mentioned below work.
-
- * ace/Service_Config.cpp: Changed the implementation of
- run_{reactor,proactor,reactorEx}_event_loop so that it returns
- if the corresponding handle_events() method times out.
- Thanks to Phil Logan <phill@in.ot.com.au> for reporting
- this.
-
- * ace/LSOCK_Stream: Moved get_remote_addr() from the private part
- of the class and implemented it using get_local_addr(). This
- fixes problems that previously occurred when using the
- ACE_Connector with ACE_LSOCK_Stream. Thanks to Stuart Powell
- <stuartp@in.ot.com.au> for this suggestion.
-
-Mon Dec 9 22:03:30 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Threads: Updated the test.mak and test.mdp files to
- reflect the new name changes. Thanks to Matthias for this.
-
- * ace/ACE.cpp (ldfind): Added new code that will work if the
- "base" part of the filename to look for is the same on both UNIX
- and NT. The library name will be made up of three parts
- [ACE_DLL_PREFIX]base part[ACE_DLL_SUFFIX], where prefix is "lib"
- on UNIX and nothing on NT and suffix is ".dll" on NT and ".so"
- on UNIX. If either prefix or suffix are missing from the
- filename you supply to ldfind they will be added
- automagically. This all will work independent from the pathname,
- which will be treated completely separately from the filename
- and can contain either UNIX style or NT style separators.
-
- Examples:
- Source NT UNIX
- ===============================================================
- netsvc netsvc.dll libnetsvc.so
- (PATH will be evaluated) (LD_LIBRARY_PATH evaluated)
-
- libnetsvc.dll libnetsvc.dll libnetsvc.dll + warning
- netsvc.so netsvc.so + warning libnetsvc.so
-
- ..\../libs/netsvc ..\..\libs\netsvc.dll ../../libs/libnetsvc.so
- (absolute path used) (absolute path used)
-
- The first and the last of these 4 examples is the way the new
- functionality is supposed to be used. You simple supply the
- pathname and the base part of the filename and ldfind will
- figure everything out.
-
- Thanks to Tilo Chris for this code.
-
- * ace/OS.h: Added a new macro called ACE_DLL_PREFIX, which is
- defined to "" on Win32 and "lib" on UNIX. Thanks to Tilo for
- this.
-
- * ace/Reactor.cpp (detach): After further thought, I
- have commented out the
-
- eh->reactor (0);
-
- call since I don't think we really need it.
-
- * ace/Reactor.cpp (detach): There was a problem with
- ACE_Reactor::detach().
-
- The following lines:
-
- // Reinitialize the Reactor pointer to 0.
- eh->reactor (0);
-
- should be moved before:
-
- eh->handle_close (handle, mask);
-
- This will render the reactor handle not available in the
- handle_close method but at least handle_close can delete itself.
- Thanks to Luca for reporting this.
-
- * examples/Reactor/Ntalker: Replaced the use of ACE_OS::getopt()
- with the ACE_Get_Opt iterator. Thanks to Alexandre Karev
- <Alexandre.Karev@cern.ch> for suggesting this.
-
- * ace/OS.h: Moved the #endif /* ACE_HAS_DCETHREADS ||
- ACE_HAS_PTHREADS */ once again in order to make sure that the
- right things happen when #if defined (ACE_HAS_THREADS) is
- *false*. Thanks to Robert Lyng <RLyng@msmail.hsii.ccare.com>
- for reporting this.
-
-Mon Dec 9 02:06:48 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/SString: Made accessors return const references.
-
- * ace/OS.h: Added macro ACE_WIDE_STRING which allows the
- conversion of char* to wchar_t* when UNICODE is turned on.
-
- * ace: Added/Fixed UNICODE behavior of the following:
-
- /* Local_Name_Space */
- ACE_Local_Name_Space_T::context_file_
-
- /* ACE */
- ACE::basename
-
- /* Token */
- ACE_Token::ACE_Token
-
- /* Synch */
- ACE_File_Lock::ACE_File_Lock
-
- /* SPIPE_Addr */
- ACE_SPIPE_Addr::addr_to_string
- ACE_SPIPE_Addr::set
-
- /* FILE_Addr */
- ACE_FILE_Addr::addr_to_string
-
- /* DEV_Addr */
- ACE_DEV_Addr::addr_to_string
-
- /* Addr */
- ACE_Addr::addr_to_string
- ACE_Addr::string_to_addr
- Note: These two were removed from the base class since they are
- not common to all Address classes.
-
- /* Malloc */
- ACE_Allocator_Adapter::ACE_Allocator_Adapter
- ACE_Malloc::ACE_Malloc
-
- /* Process */
- ACE_Process::start
-
- /* Shared_Memory_MM */
- ACE_Shared_Memory_MM::ACE_Shared_Memory_MM
- ACE_Shared_Memory_MM::open
-
- /* Proactor */
- ACE_Overlapped_File::ACE_Overlapped_File
- ACE_Overlapped_File::open
-
- /* Log_msg */
- ACE_Log_Msg::open
-
- /* Naming_Context */
- ACE_Name_Options::namespace_dir
- ACE_Name_Options::process_dir
- ACE_Name_Options::database
-
- /* Registry */
- ACE_Predefined_Naming_Contexts::connect
- ACE_Predefined_Naming_Contexts::is_local_host
-
- /* SString */
- ACE_CString::ACE_CString
-
- /* Mem_Map */
- ACE_Mem_Map::ACE_Mem_Map
- ACE_Mem_Map::map
-
- /* Service_Config */
- ACE_Service_Config::logger_key_
-
- /* System_Time */
- ACE_System_Time::ACE_System_Time
-
- /* Memory_Pool */
- ACE_Sbrk_Memory_Pool::ACE_Sbrk_Memory_Pool
- ACE_Shared_Memory_Pool::ACE_Shared_Memory_Pool
- ACE_Local_Memory_Pool::ACE_Local_Memory_Pool
- ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool
- ACE_Lite_MMAP_Memory_Pool::ACE_Lite_MMAP_Memory_Pool
-
- /* OS */
- ACE_OS::strstr
- ACE_OS::strdup
- ACE_OS::hostname
- ACE_OS::open
- ACE_OS::unlink
- ACE_OS::dlopen
- ACE_OS::dlsym
- ACE_OS::cuserid
- ACE_OS::fork_exec
- ACE_OS::sprintf
- ACE_OS::access
- ACE_OS::fopen
- ACE_OS::getenv
- ACE_OS::system
- ACE_OS::mkdir
- ACE_OS::mktemp
-
-Sun Dec 8 19:00:45 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Reactor.cpp (handle_events): Updated this method to use the
- ACE_Countdown_Time::update method after the mutex has been
- acquired.
-
- * ace/Time_Value.cpp (update): Added an ACE_Countdown_Time::update
- method that calls stop and start. This is useful for methods
- such as ACE_Reactor::handle_events that need to update timeout
- values after acquiring locks, but before waiting on the
- demultiplexing mechanism (e.g. select).
-
- * ace/ReactorEx.cpp (handle_events): Modularized the
- implementation of handle_events. Now it uses helper functions
- to significantly simplify the implementation. Also updated the
- header file documentation.
-
- * ace/Timer_Queue: Added a timer_skew_ data member and accessor
- methods to ACE_Timer_Queue. Also added an expire method that
- calls gettimeofday and adds the timer_skew_ for you. These
- changes will help simplify Reactor, Proactor, and ReactorEx
- code.
-
- * ace/Reactor : Removed timer_skew_. This code now just calles
- timer_queue->expire () with no parameters. Very clean.
-
- * ace/ReactorEx : Removed timer_skew_ code.
-
- * ace/Proactor : Removed timer_skew_ code.
-
- * examples/Proactor/test_proactor.cpp: Fixed this application so
- that it exits when all the data has been sent and received.
- Previously, it used a cool timeout mechanism to "guess" when all
- the data had been received. Ahh, but we can't have too much
- fun, or people start to get nervous.
-
- * ace/Service_Config.cpp (run_reactorEx_event_loop (Time_Value)):
- Fixed the implementation of this method. It now handles
- reactorEx events until end_reactorEx_event_loop is called, or
- the specified time value expires. Also fixed the
- run_proactor_event_loop (Time_Value) method.
-
- * examples/ReactorEx/test_timeout.cpp: Added a new example
- application that shows how to use
- Service_Config::run_reactorEx_event_loop with timeouts. Check
- the examples/ReactorEx/README file for more details.
-
- * examples/Proactor/test_timeout.cpp: Added a new example
- application that shows how to use
- Service_Config::run_proactor_event_loop with timeouts. Yes, this
- screams for common dispatcher interfaces for Reactor, Proactor,
- and ReactorEx.
-
-Sun Dec 8 10:27:19 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Manager.cpp (init): Changed all uses of "int port"
- to "u_short port" to be consistent with socket types.
-
- * ace/ACE.cpp (bind_port): Changed all uses of "int port" to
- "u_short port" to be consistent with socket types.
-
- * ace/Remote_Name_Space.cpp: Changed all uses of "int port" to
- "u_short port" to be consistent with socket types.
-
- * ace/SV_Semaphore_{Simple,Complex}: Changed all uses of "int n"
- to "u_short n" to be consistent with the SYSV types!
-
- * ace/OS.h: Moved the location of the ACE_HAS_USING_KEYWORD macros
- until *after* we #include "ace/Time_Value.h". Thanks to
- Matthias for this.
-
- * ace/Signal.cpp: Finished implementing the
- ace_signal_handlers_dispatching logic, which wasn't done
- entirely earlier. Thanks to Alexandre Karev
- <Alexandre.Karev@cern.ch> for reporting this.
-
- * netsvcs/servers/main.cpp (main): Fixed several small bugs in the
- netsvcs main test program. Thanks to Alexandre Karev
- <Alexandre.Karev@cern.ch> for finding this.
-
- * ace/Reactor: Removed the timer_skew_ data member from the
- ACE_Reactor since this is now covered by the
- ACE_Timer_Queue.
-
- * ace/Reactor.cpp (handle_events): Added the new version of the
- ACE_Countdown_Time to simplify the code.
-
- * ace/Time_Value: Added a new class called ACE_Countdown_Time,
- which is used by the Reactor, ReactorEx, and Proactor to keep
- track of how much time elapsed.
-
- * ace/config-win32-msvc4.0.h: Added a change that forces the MSVC
- compiler to reference the proper Winsock - lib during linking of
- ACE. This change is necessary because a) in the release version
- the link to the winsock.lib was completly missing and b) only
- wsock32.lib has been included (which is wrong when WinSock2 is
- used). Thanks to Matthias for this.
-
- * ace/Module.cpp (ACE_Module): Added code to zero-out the
- q_pair_[2] pointers. Thanks to Matthias for this.
-
- * tests: Removed the argv name from most main() functions so that
- we don't get warnings...
-
- * examples/Threads: Fixed some errors in the threads examples
- directory, most of which are ambigious overloads. Also included
- a (MSVC 4.1) makefile for all tests in this directory. Thanks
- to Matthias for this.
-
- * examples/Threads: Renamed all the files by removing the word
- "test_" at the beginning. This is redundant!
-
- * tests/TSS_Test.cpp: If we are running AIX (i.e., if
- ACE_TEMPLATES_REQUIRE_PRAGMA), then conditionally avoid
- compiling this test program because it doesn't work unless we
- split off class Errno due to AIX's rules for generating
- templates. This is too much work to get right...
-
- * ace/OS.i (thr_self): Updated the conditional compilation tests
- so that we check for ACE_HAS_THREAD_SELF first. Thanks to Chris
- Lahey for this.
-
- * ace/{config-osf1-3.2.h,config-aix-4.1.x.h}: Updated this file so
- that is has the new ACE_HAS_THREAD_SELF macro, which indicates
- that the platform uses thread_self() rather than pthread_self().
-
- * ace/config-aix-4.1.x.h: According to Chris Lahey
- <Chris_Lahey@cccis.com>, AIX 4.1.x should have ACE_HAS_PTHREADS
- rather than ACE_HAS_DCETHREADS.
-
- * ace/Thread_Manager: Removed the thread_descriptor_i() methods
- and replaced them by generalizing the find() method to become
- find_thread() and find_hthread(). Thanks to Hamutal Yanay
- <Hamutal_Yanay@mail.icomverse.com> for suggesting this.
-
-Sun Dec 8 14:39:53 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Timer_Queue: Added a timer_skew_ data member and accessor
- methods to ACE_Timer_Queue. Also added an expire method
- that calls gettimeofday and adds the timer_skew_ for you. These
- changes will help simplify Reactor, Proactor, and ReactorEx
- code.
-
-Sat Dec 7 01:14:04 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * tests/Process_Mutex_Test.cpp: Added new test which checks the
- functionality of a ACE_Process_Mutex. Abandoned mutexes can be
- created by selecting the correct command-line arguments.
-
- * examples/Reactor/ReactorEx/test_reactorEx.cpp: Reverted back to
- old scheme which does not utilize traits.
-
- * ace/Task_T.h: Removed the synchronization trait in Task. This is
- because template typedefs are only supported by a few
- platforms. Sigh ;-)
-
-Sat Dec 7 16:55:37 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp: Because thread_descriptor_i() only returns
- 0 or -1 on failure the code for
- ACE_Thread_Manager::thr_self(ACE_hthread_t &) should read:
-
- if (-1 == this->thread_descriptor_i (id, td))
- return -1;
- handle = &td.thr_handle_;
-
- Thanks to Matthias for reporting this.
-
- * ace/OS: Added a new static instance of ACE_thread_key_t to work
- around the pthreads implementation on MVS (which doesn't store
- TSS keys as ints!). Thanks to Chuck Gehr for reporting this.
-
- * ace/config-mvs.h: Added #define ACE_TEMPLATES_REQUIRE_SOURCE for
- MVS C++. Thanks to Chuck Gehr for reporting this.
-
- * ace/Signal.cpp: ace_dispatcher was being set to
- ace_signal_handlers_dispatch() which calls
- ACE_Sig_Handlers::dispatch (when ACE_HAS_SIC_C_FUNC is defined),
- whereas it was set to ACE_SigHanlder::dispatch (no s) if not
- defined. I intended to set this to ace_signal_handler_dispatch
- (no s). Thanks to Chuck Gehr for reporting this.
-
- * ace/Makefile: Fixed a small typo where I wasn't matching char
- *getenv in the sed regular expression.
-
- * ace/{OS,Synch}: Moved various classes around so that things will
- compile correctly when ACE_WIN32 is defined but ACE_HAS_THREADS
- is *not* defined. Thanks to Robert Lyng
- <RLyng@msmail.hsii.ccare.com> for reporting this.
-
-Sat Dec 7 16:55:37 1996 Matthias Kerkhoff <make@cs.tu-berlin.de>
-
- * ace/Module: Added some values to the enum so Module clients
- can decide whether the reader, the writer or both should be
- automatically deleted.
-
- * ace/{Stream,Module,Task}: Changed some function arguments
- from u_long to int (because enums are represented as ints).
-
- * ace/Task: Added a new virtual function to ACE_Task_Base
- (module_closed), which by default calls
- ACE_Task_Base::close(1). Please note the changed flags
- argument. This allows clients to differ between calls
- originated from a Module and/or Stream from those which
- result from ~ACE_Task_Exit(). ~ACE_Task_Exit() calls
- ACE_Task_Base::close(0). This may be or not be a problem to
- existing applications. It may (hopefully not)
- be neccessary to change ACE_Task_Base::module_close back to
- calling ACE_Task_Base::close(0).
-
-Fri Dec 06 14:44:20 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp: added ::spa () function to allow command line args
- to be passed to programs in VxWorks
-
- * ace/OS.i: (ACE_OS::gettimeofday): VxWorks returns nsec instead
- of usec, so convert
-
-Fri Dec 6 01:21:48 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * examples/Reactor/ReactorEx/test_reactorEx.cpp: Rewrote the
- example such that the test now uses the new Notification
- Strategy scheme in ACE. This allows a message queue consumer to
- wait in ReactorEx without spawning a new thread, or creating
- extra Win32 events. This make the example smaller and much
- cleaner.
-
- * ace/Task_T.h: Added synchronization trait to Task.
-
- * ace/Task_T.i (msg_queue): Added a check to delete the old
- message_queue if we had created it.
-
- * ace/ReactorEx.cpp (remove_handler): Removed the call to set
- reactorEx of the event handler to zero becauses the event
- handler may no longer be there after the handle_close()
- completes.
-
-Thu Dec 05 21:18:49 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): Oops, needed to add another check if
- thr_id == 0 before assigning *thr_handle = *thr_id, for systems
- such as Solaris 2.4 that don't have PTHREADS.
-
-Wed Dec 4 09:09:56 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log): added printout to stderr before call
- to exit(). Silent calls to exit() are bad :-}
-
- * performance-tests/Synch-Benchmarks/Options.cpp (print_results):
- only use rusage if ACE_HAS_PRUSAGE_T is #defined
-
- * examples/IPC_SAP/SOCK_SAP/CPP-in{client,server}.cpp:
- use blocking connect on VxWorks
-
- * ace/config-vxworks*.h: added ACE_LACKS_MPROTECT and
- ACE_HAS_STRERROR
-
- * include/makeinclude/platform_vxworks*: removed INCLDIRS and
- added indlib.o to GreenHills LIBS
-
- * Makefile (cleanrelease and release): changed "rm -r" of
- ACE.tar.gz to "rm -f", that's probably what was meant
-
-Wed Dec 4 00:27:07 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/config-win32-msvc*.0.h: Added NOMINMAX.
-
- * ace/Registry: Removed NOMINMAX and
- VC_PLUS_PLUS_NESTED_CLASS_PROBLEM flags from the header file.
- The VC_PLUS_PLUS_NESTED_CLASS_PROBLEM flag is no longer needed
- and NOMINMAX is defined at the project level. Thanks to
- Matthias Kerkhoff <make@cs.tu-berlin.de> for suggesting this.
-
-Mon Dec 2 14:13:44 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Changed all occurrences of ACE_Event_Handler
- reactorex() to reactorEx() to be consistent. Thanks to
- Matthias for suggesting this.
-
- * ace/Message_Queue.cpp (close): We didn't allocate the memory for
- the notification_strategy_, so we darn well can't delete it!
- Thanks to Matthias for finding this.
-
- * ace/Log_Msg.cpp (ACE_TSS_cleanup): Made the ACE_TSS_cleanup
- function extern "C" for MVS C++ and compilers like it... Thanks
- to Chuck Gehr for reporting this.
-
- * tests/Naming_Test.cpp (main): Added delete ns_context to close
- things down and free up the semaphores. Thanks to David Levine
- for suggesting this.
-
- * examples/Reactor/Misc/test_demuxing.cpp (handle_input): Fixed a
- "typo" where we were accessing mb->msg_priority() *after*
- deleting it! Thanks to Matthias for finding this.
-
-Mon Dec 2 09:57:15 1996 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.*: updated lists of tests to be run
-
- * tests/*.cpp: removed trailing .cpp from argument to
- ACE_START_TEST because it would appear in the log file name
-
-Mon Dec 2 00:08:51 1996 Douglas C. Schmidt <schmidt@lambada.cs.wustl.edu>
-
- * ace/Log_Record.cpp (dump): There was an error on line 19 of
- Log_Record.cpp:
-
- ACE_DEBUG ((LM_DEBUG, "\npid_ = %s\n", this->pid_));
-
- should be changed to:
-
- ACE_DEBUG ((LM_DEBUG, "\npid_ = %d\n", this->pid_));
-
- Thanks to Sandro Doro <alex@aureus.sublink.org> for reporting
- this.
-
- * examples/Reactor/Misc/test_handle_set.cpp: Updated the test to
- remove a warning caused by sloppy nesting of loop counters.
-
-Mon Dec 2 00:23:23 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/Strategies.{h,cpp}: Update the base-class and added
- documentation.
-
- * tests/test_config.h: Added ACE_INIT_LOG, ACE_APPEND_LOG and
- ACE_APPEND_LOG to facilitate the appending of log messages to a
- file. Also changed Pipe_Test to use this new mechanism.
-
- * test/Naming_Test: Changed test to use "lite" implementation to
- speed things up.
-
- * netsvcs/lib: Fixed multiple type mismatch warnings.
-
- * ace/ReactorEx: Fixed syntax errors in recently modified
- ReactorEx.* files
-
- * ace/ace.{mdp.mak}: Added Strategies.cpp to VC++ makefile.
-
-Sun Dec 1 19:19:02 1996 Douglas C. Schmidt <schmidt@lambada.cs.wustl.edu>
-
- * ace/Service_Config: Moved the #inclusion of ace/Proactor.h and
- ace/ReactorEx.h from the *.h file to the *.cpp file to avoid
- problems with circular dependencies.
-
- * ace/Reactor: Added a new parameter to the Reactor's
- initialization methods so that we can install a subclass of
- ACE_Timer_Queue. This is in anticipation of Tim's new
- "real-time" implementation of a timer queue.
-
- * ace/Reactor: Changed the internal Reactor name
- ACE_Notification_Handler to ACE_Reactor_Notify to be consistent
- with the ACE_ReactorEx_Notify class.
-
- * examples/Reactor/Misc/test_demuxing.cpp: Revised this test so
- that it now illustrates the new notification mechanism of the
- ACE_Message_Queue class.
-
- * examples/Reactor/Misc: Changed the name of the signal_tester.cpp
- file to test_demuxing.cpp, which is really what this does.
-
- * ace/{Strategies,Message_Queue}: Created a suite of
- "Notification Strategies" that are used with the new
- ACE_Message_Queue notification scheme. This works as
- follows:
-
- 1. There's a new virtual hook method on ACE_Message_Queue
- called notify(). Whenever a new Message_Block is
- enqueued the notify() hook is called. By default, this
- does nothing.
-
- 2. If you want to do something with the notify() hook, you
- have two choices:
-
- a. You can subclass from ACE_Message_Queue and
- override this method. This is an example of the
- "Template Method" pattern.
-
- b. You can configure an ACE_Notification_Strategy *
- into an ACE_Message_Queue. An
- ACE_Notification_Strategy is the vehicle for
- extending the behavior of ACE_Message_Queue wrt
- notification *without subclassing*. Thus, it's an
- example of the Bridge/Strategy patterns.
-
- 3. ACE_Notification_Strategy is defined in
- ace/Strategies.{h,cpp}. There are two pre-defined
- subclasses:
-
- a. ACE_Reactor_Notification_Strategy -- integrates the
- ACE_Message_Queue notification into the
- ACE_Reactor::notify() method.
-
- b. ACE_ReactorEx_Notification_Strategy -- integrates
- the ACE_Message_Queue notification into the
- ACE_ReactorEx::notify() method.
-
- Both of these can be used almost identically in order to
- seamlessly integrate multiple threads of control, inserting
- ACE_Message_Blocks in one or more ACE_Message_Queues, with
- the various ACE event demultiplexors (i.e., ACE_Reactor
- and ACE_ReactorEx).
-
- * ace: Created a new pair of files called Strategies_T.cpp and
- Strategies_T.h and move the template ACE_*Strategies classes
- into those files. This was necessary since there are now new
- non-template notification strategies in Strategies.{h,cpp}.
-
- * ace/Message_Queue: Created a new "notification hook" mechanism
- that makes it possible for event demuxers (like ACE_Reactor and
- ACE_ReactorEx) to be informed automatically when a Message_Block
- is inserted into the Message_Queue. This is useful for
- sitations where you'd like to integrate multiple threads (each
- of which is pumping data into an ACE_Message_Queue) with an
- ACE_Reactor or an ACE_ReactorEx. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> and Luca for suggesting this.
-
- * ace/Synch.h: Modified the implementation of
- ACE_Null_Condition_Mutex::wait() so that it always returns -1
- and sets errno to ETIME. This reflects the fact that if you'll
- never be awakened if you "sleep" on a Null_Condition...
-
- * ace/ReactorEx: Generalized the ACE_ReactorEx so that its
- notify() method now behaves like the ACE_Reactor, i.e., it can
- queue up ACE_Event_Handlers that are dispatched in the ReactorEx
- thread of control.
-
- * tests: Renamed the Shared_Memory_MM_Test.cpp to
- MM_Shared_Memory_Test.cpp and remove the
- Shared_Memory_SV_Test.cpp since it was redundant to the
- SV_Shared_Memory_Test.cpp.
-
- * tests/SV_Shared_Memory_Test.cpp (main): Revised the SVSV IPC
- shared memory test to be more robust.
-
- * ace/SV_Semaphore_Simple.cpp (open): If the char *name == 0 then
- use ACE_DEFAULT_SEM_KEY instead.
-
- * ace/Memory_Pool: Generalized the ACE_Shared_Memory_Pool so that
- there can be more than 1 shared memory pool active at a time
- (similar to what we did for ACE_MMAP_Memory_Pool).
-
- * ace/Memory_Pool.h: There was an unnecessary
- ACE_SV_Semaphore_Complex in ACE_Shared_Memory_Pool that was left
- over from earlier days. I've removed this.
-
- * ace/Memory_Pool.cpp (ACE_Shared_Memory_Pool): Revised
- the constructor so that if we get a NULL pool_name we'll
- initialize the
-
- * examples/Makefile: Added the System_V_IPC and Shared_Memory
- directories.
-
- * ace/Message_Queue.h: Added a virtual destructor to
- ACE_Message_Queue so that it can be destroyed appropriately,
- even if subclassed.
-
- * ace/Message_Queue.h: Renamed enqueue() to enqueue_prio() to be
- consistent with the other names (e.g., enqueue_head() and
- enqueue_tail(). Updated the test programs to reflect this.
-
-Sun Dec 1 12:06:46 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks*.h: Removed #define ACE_HAS_STRBUF_T:
- copy and paste error
-
-Sun Dec 1 00:15:45 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/OS.h: ACE_NEW_RETURN and ACE_NEW were reverted back to the
- old implementation. This is temporary till the infinite loop
- problem with ACE_ERROR, ACE_DEBUG and ACE_TRACE being called
- from ACE_Log_Msg::instance() is fixed.
-
- * ace/Synch.h: Repositioned ACE_Semaphore such that there are no
- problems in compiling ACE_Process_Semaphore under Win32.
-
- * ace/config-win32-msvc4.0.h: Changed ACE_HAS_STL to
- ACE_HAS_STANDARD_CPP_LIBRARY which is more descriptive (and what
- is expected by stdcpp.h).
-
- * ace/Registry.h: Added the setting of NOMINMAX and
- VC_PLUS_PLUS_NESTED_CLASS_PROBLEM flags so that STL behaves
- properly.
-
- * ace/Log_Msg.cpp (open): Fixed a small bug such that msg_ostream
- is only set this to cerr if it hasn't already been set.
-
- * STL: Updated the STL directory will latest code from
- http://www.rahul.net/terris/ and also added the original
- readme2.stl file. Created ACE_Changes which has the list of
- changes made to the STL distribution.
-
-Sat Nov 30 12:02:00 1996 Douglas C. Schmidt <schmidt@lambada.cs.wustl.edu>
-
- * ace/OS.h: Added a new pragma that disables warning #4097 in
- MSVC++ (typedef-name used as synonym for class-name). This
- keeps Win32 clients from getting warning on Win32. Thanks to
- Matthias Kerkhoff <make@cs.tu-berlin.de> for this.
-
- * ace/Log_Msg.cpp: Created a new macro called ACE_NEW_RETURN_I,
- which is used withing ACE_Log_Msg::instance(). We can't afford
- to call ACE_LOG_MSG->instance() from within
- ACE_Log_Msg::instance() or else we will recurse infinitely!
- Thanks to Irfan for finding this.
-
- * ace/OS.i (mprotect): Added a #if !defined (ACE_LACKS_MPROTECT)
- conditional compilation directive to support the EPLX real time
- OS from CDC (based on LYNX). Thanks to Alexandre Karev
- <karev@cern.ch> for reporting this.
-
-Sat Nov 20 12:23:45 1996 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * tests/Naming_Test.cpp (main): Added code that creates a unique
- backing store name and removes the backing store every time
- the test is run.
-
-Fri Nov 29 12:54:12 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Stream.cpp (open): Changed tail->close() and head->close()
- to delete tail and delete head now that we've got our new
- changes.
-
- * ace/Module: Moved the destructor from the private part of the
- class to the public part and changed things so that close() no
- longer "deletes this." This is too confusing and error-prone.
- In addition, changed the Module destructor so that it will try
- to call close() only if close hasn't already been called.
-
- * ace/Synch.h: Moved ACE_Process_Semaphore out of the
- ACE_HAS_THREADS section since this is available on platforms
- that don't have threads.
-
- * Now that Log_Msg.h is being #included in OS.h, I removed all
- other #includes of Log_Msg.h throughout the rest of ACE.
-
- * ace/OS.h: Rearranged the definition of the ACE_NEW and
- ACE_NEW_RETURN macros so that they come at the end of OS.h.
- This enables us to #include "ace/Log_Msg.h" here, as well, so
- that we can make use of the ACE_LOG_MSG macro in the definition
- of ACE_NEW and ACE_NEW_RETURN.
-
- * ace/Singleton.cpp (instance): Updated the ACE_Singleton
- implementation to use the new ACE_NEW and ACE_NEW_RETURN macros.
-
- * ace/OS.h: Revised the ACE_NEW and ACE_NEW_RETURN macros so that
- they check to see if the constructor of the newly allocated
- object failed (i.e., by checking the ACE_LOG_MSG->op_status()
- value).
-
- * tests/Reactors_Test.cpp: Added an ACE_ASSERT() after each
- Reactor we create in order to make sure it worked.
-
- * tests/Reactors_Test.cpp: Added an ACE_Service_Config daemon
- instance within main() in order to ensure that the Reactor is
- cleaned up appropriately. This avoids problems with NT 4.0,
- where there seems to be a bug if you don't shut down sockets
- explicitly when the process exits.
-
- * tests/Pipe_Test.cpp (main): Improved the pipe test so that it
- automatically iterates multiple times in order to test whether
- there are problems with rapidly opening and closing NT socket
- handles...
-
-Thu Nov 28 03:07:48 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * netsvcs: netsvcs.mak and netsvcs.mdp were changed such that
- it becomes easier to find ace.lib while compiling netsvcs.lib.
-
- * tests/Pipe_Test.cpp: Add more instances of ACE_Pipes to the test
- and also added an option to close down the pipe.
-
-Thu Nov 28 00:53:16 1996 Douglas C. Schmidt <schmidt@lambada.cs.wustl.edu>
-
- * ace/config-sunos4-g++.h: This config file contained two
- exclusive definitions
-
- #define ACE_HAS_SVR4_SIGNAL_T
-
- and
-
- #define ACE_HAS_SUNOS4_SIGNAL_T
-
- The first one was moved out. Thanks to Alexandre Karev
- <akg@na47sun05.cern.ch> for reporting this.
-
- * ace/OS.h:
-
- #elif defined (ACE_HAS_SUNOS4_SIGNAL_T)
-
- was changed from
-
- typedef void (*ACE_SignalHandler)(void);
- typedef void (*ACE_SignalHandlerV)(void);
-
- to
-
- typedef void (*ACE_SignalHandler)(...);
- typedef void (*ACE_SignalHandlerV)(...);
-
- to make gcc happy. The first one was moved out. Thanks to
- Alexandre Karev <akg@na47sun05.cern.ch> for reporting this.
-
- * ace/Pipe.cpp (close): Arrgh! Fixed a total braino where we
- weren't using ACE_OS::closesocket() to close down the Win32
- ACE_Pipe implementation, which uses sockets... Thanks to Irfan
- and Tilo for helping me figure this one out!
-
- * tests/CPP_Test.cpp: Completely reworked this test so that it
- should run correctly on Win32 and UNIX.
-
-Wed Nov 27 16:50:17 1996 Douglas C. Schmidt <schmidt@lambada.cs.wustl.edu>
-
- * Put out a new beta of ACE 4.0.33.
-
- * tests/Mutex_Test.cpp (test): Fixed the test() function so that
- it doesn't use the ACE_Thread_Control unless we explicitly want
- to use threads.
-
- * tests/test_config.h: Added addition information about the
- process id and thread id of the main thread.
-
- * ace/Synch.h: Speed things up a bit by conditionally #including
- "ace/SV_Semaphore_Complex.h" only if we are compiling on a
- non-Win32 platform or a POSIX platform. Thanks to Matthias
- Kerkhoff <make@cs.tu-berlin.de> for this.
-
- * ace/SV_Semaphore_Complex.h: Incorporated the new ACE_USING
- macro, which is useful if you have
-
- class b {
- a()
- };
-
- class d : private b {
- b::a() // still works, but depriciated
- using b::a() // should be used instead
- };
-
- Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for this.
-
- * ace/OS.h: Added a new macro called ACE_USING, which is used to
- distinguish between platforms that support namespace "using"
- semantics and those that don't. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for this.
-
- * examples/Misc/test_XtReactor[12].cpp: Had to add the infamous
- #define String XtString before including Xm/PushB.h. Also, there
- were some references to XtReactor when the class is now
- ACE_XtReactor. Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl>
- for reporting this.
-
- * ace/XtReactor.cpp (ACE_XtReactor): timeout_ was not being
- initialized on the constructor, and that caused a core dump.
- Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl> for reporting
- this.
-
- * ace/SOCK.h: Put the open() call in the protected part of the
- class since we generally don't want clients to call this
- directly. Thanks to Eric Newton <ecn@clark.net> for pointing
- this out.
-
- * ace/ACE.cpp: Fixed a bug where sin.sin_family was being set
- rather than sin.sin_len. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for reporting this.
-
- * ace/ACE.cpp: Enhanced the ACE::{send_n,recv_n} methods so that
- they check to see if errno == EWOULDBLOCK when ACE_OS::send() or
- ACE_OS::recv() returns -1. If that's the case, then they keep
- iterating.
-
- Thanks to Mehdi TABATABAI <Mehdi.TABATABAI@ed.gva.sita.int> for
- this suggestion.
-
- * ace/Log_Msg.h: Fixed ACE_RETURN so that it only has 1 parameter
- if ACE_NLOGGING is enabled. Thanks to Antonio Tortorici
- <antonio@rh0011.roma.tlsoft.it> for reporting this.
-
- * ace/config-vxworks*.h: Added ACE_NTRACE macros so that
- tracing doesn't magically turn on!
-
- * ace/Task.cpp (activate): the &ACE_Task_Base::svc_run() argument
- needs a cast to ACE_THR_FUNC, because that's what
- ACE_Thread_Manager::spawn_n() requires. On VxWorks,
- ACE_THR_FUNC functions return an int, while svc_run() returns
- void *. Thanks to David Levine for this.
-
- * ace/Thread_Manager.cpp (kill_thr): I was mistakenly passing in
- the thr_handle_ where I should have been passing in the thr_id_.
- In addition, made sure we don't set errno to the wrong value...
- Thanks to Ross Dargahi <rossd@acm.org> for reporting this.
-
- * ace/{Synch_T,Synch}.h: If we don't actually own the lock
- anymore, don't try to do a release. Thanks to Jonathan Biggar
- <jon@sems.com> for reporting this bug.
-
- * ace/ACE.cpp (handle_timed_complete): Added an ex_handles mask so
- that non-blocking connects will work correctly on Win32. Thanks
- to Antonio Tortorici <antonio@rh0011.roma.tlsoft.it> for
- reporting this fix.
-
- * ace/Message_Queue.h: Updated the documentation to stress the
- fact that the timeouts are specified in *absolute* time, rather
- than in relative time. Thanks to Bob Dunmire <bobd@titan.com>
- for reporting this.
-
- * tests/test_config.h: Modified the ACE_END_TEST macro so that the
- log file is closed. This works around a problem on VxWorks
- where destructors of static objects don't get closed
- automatically. Thanks to David Levine for this fix.
-
- * ace/OS.i (rand_r): Added a fix for Digital UNIX so that rand_r
- works correctly in MT settings. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for this.
-
-Wed Nov 27 16:12:00 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Stream.cpp: Fixed a bug in ACE_Stream::open to
- allow applications to specify a tail or a head without
- having to specify both. This was needed by the ACE_Pipeline
- application since it only needs a Pipeline-specific tail
- (not a head).
-
-Tue Nov 26 18:00:25 1996 Douglas C. Schmidt <schmidt@lambada.cs.wustl.edu>
-
- * ace: Functions should not be declared with ACE_INLINE in a
- .cpp file. Fixed this problem in the following files:
-
- SPIPE_Acceptor.cpp:116:ACE_INLINE
- TLI_Acceptor.cpp:145:ACE_INLINE int
- TLI_Acceptor.cpp:192:ACE_INLINE
- Task.cpp:121:ACE_INLINE int
- Task.cpp:130:ACE_INLINE void
-
- * ace/{OS,Thread}: Added Chuck Gehr's suggested change for the
- pthread_keycreate() routine, which must take extern "C"
- functions on MVC C++. This fix isn't perfect, but it should
- allow the ACE library to build...
-
- * man: Updated all of the manual pages and HTML files.
-
- * ace/Signal.cpp: Updated the code so that we don't try to
- register a static C++ dispatch method if ACE_HAS_SIG_C_FUNC is
- defined. This fixes problems with the MVS C++ compiler...
- Thanks to Chuck Gehr for this suggestion.
-
- * ace/OS.h: Added extern "C" { } wrappers around the signal
- handling mechanisms if ACE_HAS_SIG_C_FUNC is defined. This
- fixes problems with the MVS C++ compiler... Thanks to Chuck
- Gehr for this suggestion.
-
- * ace/Reactor.cpp (open): Moved the initialization of the
- ACE_Timer_Queue field to *before* the handler_rep_.open() call.
- We do this first in case the handler_rep_ call fails (which it
- sometimes does on Win32 when we restart applications quickly due
- to the use of sockets as a notification mechanism). At least
- this way the timer_queue_ isn't 0, so we can still use the
- Reactor as a timer... Thanks to Tilo Christ for motivating
- me to fix this.
-
- * ace/OS.i: Apparently, DIGITAL_UNIX gethostbyname() returns
- thread-specific storage, so we can use this for
- gethostbyname_r().
-
- * ace/OS.i: Need to add:
-
- #else
-
- after line 3268: return (size_t) ACE_OS::sysconf (_SC_THREAD_STACK_MIN);
-
- otherwise we get a compile error:
-
- line 3296.1: CBC1331(W) Return value of type "unsigned int" is expected
-
- This is because no code ends up getting generated. Thanks to Chuck
- Gehr for this fix.
-
- * ace/OS.i (ACE_PTHREAD_CLEANUP_PUSH): Removed an extraneous set
- of parens. Thanks to Chuck Gehr for this fix.
-
- * ace/OS.cpp (thr_create): Oops, needed to add a check if thr_id
- == 0 before assigning *thr_handle = *thr_id! Thanks to Prashant
- for finding this.
-
-Tue Nov 26 21:06:13 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/Pipe.cpp (open): This change relates to Win32 code only.
- Removed the reuse_addr flag to acceptor.open() so that we don't
- try to reuse the acceptor socket immediately. Apparently, this
- causes no end of trouble on Win32 as the following connect()
- call fails (randomly). Now it should be possible to create
- multiple ACE_Pipes in one process and hence create multiple
- Reactors also without any problems.
-
- * tests/Pipe_Test.cpp: Added a ACE_Pipe test to check for the
- creation of multiple pipes in a process. Also changed the
- relevant makefiles and scripts.
-
-Tue Nov 26 11:27:33 1996 David L. Levine <levine@cs.wustl.edu>
-
- * tests/{CPP_Test,Mutex_Test,Shared_Memory_MM_Test,SPIPE_Test}.cpp:
- added VXWORKS support for these tests by spawning a new thread
- instead of forking a new process (the same as on Win32)
-
- * netsvcs/clients/Naming/Client/Client_Test.cpp (open): Added a
- return 0 for success.
-
- * ace/Singleton.h: Modified the use of the ACE_NEW_RETURN macro so
- we not only check if new has failed, but also check that the
- constructor has succeeded. If it hasn't, we bail out... Thanks
- to Luca for this suggestion.
-
- * ace/Log_Msg: Added a 4th parameter to log_hexdump() in order to
- print out a comment. Thanks to Luca for this.
-
- * ace/ACE.cpp (ldfind): Changed the implementation to look for
- ACE_DLL_SUFFIX rather than '.' since '.' might exist in the
- pathname already...
-
- * Removed all the NT-specific svc.conf files and updated the other
- files to use the new "auto-dll-suffix" feature in ACE.
-
- * ace/Synch_T.cpp (ts_get): Fixed a nasty bug introduced by recent
- changes to ACE_TSS<>::ts_get(). The ACE_Mutex should be
- ACE_Thread_Mutex. This should fix lots of nasty run-time bugs
- seen with recent versions of the ACE 0.33 beta...
-
-Tue Nov 26 14:40:00 1996 David L. Levine <levine@cs.wustl.edu>
-
- * Log_Msg.cpp: fake out TSS on VxWorks in Log_Msg::instance()
- by using a spare field in the task control block
-
- * tests/{CPP_Test,Mutex_Test,Shared_Memory_MM_Test,SPIPE_Test}.cpp:
- added VXWORKS support for these tests by spawning a new
- thread instead of forking a new process (the same as on
- Win32)
-
- * OS.h: VxWorks can't handle the ACE_THR_FUNC typedef if
- it's in the extern "C" block, so I moved it back out.
- Also, the horrible GreenHills hack is no longer required.
-
- * OS.i: there's an ACE_OS_CALL_RETURN before a ::strncpy() call,
- I changed it to ACE_OS_CALL.
-
- * OS.i: Added call to VxWorks ::mkdir()
-
- * Pipe.cpp: VxWorks doesn't know about TCP_NODELAY.
-
- * INET_Addr.cpp: get_host_name() is missing a return
- statement, on VxWorks only
-
- * Thread_Manager.i: in ACE_Thread_Control::thr_mgr(), there
- were two consecutive return statements, removed the first
- one.
-
- * Time_Request_Reply.{h,cpp}: GreenHills warns that "type
- qualifiers are meaningless" for declaration of const
- ACE_UINT32 time(), so I removed them.
-
- * UPIPE_Stream.cpp, line 95: warning: integer conversion
- resulted in a change of sign, so we cast n to int.
-
- * Map_Manager.cpp: in ACE_Map_Manager::resize_i(), variable
- foo is unnecessary, so we omitted it.
-
- * tests/CPP_Test.cpp (and a few others) have references to
- argv[0]:
-
-Tue Nov 26 03:15:22 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * tests: Added Map_Manager_Test and Message_Queue_Test to
- makefiles (NT and UNIX) and one-button scripts.
-
- * tests: (Barrier_Test.cpp Buffer_Stream_Test.cpp Mutex_Test.cpp
- Priority_Buffer_Test.cpp Recursive_Mutex_Test.cpp
- Shared_Memory_MM_Test.cpp) Fixed typos mainly and other small
- changes. Also fixed logging file problems so to make logging
- of tests more accurate.
-
-Mon Nov 25 00:23:40 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * performance-tests/Synch-Benchmarks/Options.cpp (Options):
- Reordered the initialization of data members to keep G++ from
- complaining.
-
- * performance-tests/Synch-Benchmarks/pipe_thr_test.cpp: Changed
- some types so that we don't get warnings.
-
- * tests/Mutex_Test.cpp (test): Added a "return 0". Thanks to
- David Levine for reporting this.
-
- * ace/TTY_IO.cpp: Rearranged some definitions so that we don't get
- "unused variable" warnings from g++.
-
- * ace/SOCK_Dgram.cpp (recv): Rearranged some definitions so that
- we don't get "unused variable" warnings from g++.
-
- * tests/Priority_Buffer_Test.cpp (consumer): Fixed a typo -- I was
- missing a *... Thanks to David Levine for reporting this.
-
- * ace/OS.h (ACE_SVC_FACTORY_DECLARE): Changed the macro so that it
- defines a function with `extern "C"' linkage in order to be
- consistent.
-
- * ace/OS.cpp (thr_create): Moved the conditional compilation test
- for ACE_HAS_THR_C_FUNC outside of ACE_HAS_SETKIND_NP since MVS
- doesn't have this! Thanks to Chuck Gehr for this info.
-
- * ace/OS.i (thr_sigsetmask): Replaced the tests for
- ACE_HAS_DCETHREADS and ACE_HAS_SETKIND_NP with
- ACE_LACKS_PTHREAD_THR_SIGSETMASK, which is more appropriate.
-
- * ace/OS.cpp (ace_mutex_lock_cleanup_adapter): Changed the
- signature so that it returns "void" rather than "void *".
- Thanks to Chuck Gehr for this.
-
- * ace/OS.h: Removed #include <sys/param.h> to avoid problems on
- MVS. Thanks to Chuck Gehr for this.
-
- * ace/config-sunos5.5-sunc++-4.1.h: It looks like SunC++ 4.1 still
- doesn't fix their template typedefs bugs. So I've commented
- this out in the config file. Thanks to Fred LaBar
- <flabar@fallschurch.esys.com> for reporting this.
-
- * ace/ACE.cpp (ldfind): Added support for a new feature that will
- append the default suffix (e.g., ".dll" or ".so") for a shared
- library on the current platform to the name of the file if it
- cannot find an suffix. It will also check that a provided
- suffix will match the default suffix for that platform and if it
- doesn't it will produce a log entry with a warning. This change
- will allow unified svc.conf-files for both UNIX and WinNT.
- Thanks to Tilo Christ <christ@swl.fh-heilbronn.de> for this.
-
- * ace/OS.cpp (thr_create): Came up with a remarkably clever scheme
- that should make it possible to utilize the ACE library *without
- change* on MVS, where the frigging C++ compiler requires all
- functions passed to pthread_create() have an extern "C" linkage.
- The trick was to generalize the thread adapter mechanism used
- for Win32.
-
- * ace/OS: Added a new macro called ACE_PTHREAD_CLEANUP_PUSH that
- selects the right mechanism (e.g., ace_spawn_adapter or not) for
- passing functions to pthread_cleanup_push().
-
- * ace/config-mvs.h: Added a new macro called ACE_HAS_THR_C_FUNC
- which expresses the fact that the MVS C++ compiler *must* have
- an extern "C" function passed to pthread_create().
-
- * ace/OS.h: Modified all uses of ACE_OS::mutex_lock_cleanup() to
- use the extern "C" ace_spawn_adapter() on platforms MVS like MVS
- that can't deal with non-C functions to pthread_create. Thanks
- to Chuck Gehr for reporting this.
-
- * ace/OS.cpp (thr_create): Added Chuck Gehr's patches for MVS.
-
-Sun Nov 24 12:30:45 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Added Chuck Gehr's <gehr@sweng.stortek.com> config-mvs.h
- file!
-
- * ace: Began adding support for WinSock 2.0. Thanks to Luca for
- this.
-
- * ace/UPIPE_{Acceptor,Connector,Stream}: Updated the UPIPE
- components so that they keep a reference count that keeps track
- of the number of "owners" (which should always be 2 -- one for
- the connector-side and one for the acceptor-side). By keeping
- this count, we can ensure that we don't close down the
- underlying ACE_Stream until both sides have called close().
- This will remove a nasty bug that was lurking in some of the
- tests.
-
- * ace/Message_Block.h: Added a new copy() method that assumes the
- buf passed in is a NUL-terminated string.
-
- * tests/UPIPE_SAP_Test.cpp: Modified this test so that threads
- exit in a well-defined order. This should prevent problems on
- Win32.
-
- * ace/OS.i: Changed SIGNAL_SAFE_OS_CALLS to
- ACE_HAS_SIGNAL_SAFE_OS_CALLS to be consistent...
-
- * ace/config-vxworks*.h: Removed the SIGNAL_SAFE_OS_CALLS #define
- from the VxWorks config files. There's no need to use this by
- default.
-
- * ace/Event_Handler: Moved all the default implementations of the
- virtual methods in ACE_Event_Handler from the *.i file to the
- *.cpp and made them no longer be inlines. This will fix some
- problems with some compilers (e.g., MSVC++ 4.1) and is also more
- reasonable since there's really no purpose for inlining these
- virtual functions since they are rarely called. Thanks to James
- Michael Dwyer <jdwyer@knox.edu> for reporting this problem.
-
-Sat Nov 23 12:39:03 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Svc_Conf.y: Changed the parser so that it accepts DLL
- pathnames that lack *.dll or *.so suffixes. This is necessary
- so that we can automatically append the correct suffix depending
- on the platform. Thanks to Tilo Christ
- <christ@swl.fh-heilbronn.de> for suggesting this.
-
- * ace/Makefile: Updated the Makefile so that it will automatically
- insert the appropriate so that conditions for include of
- ace/OS.h can be checked correctly.
-
-Fri Nov 22 18:12:49 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (thr_sigsetmask): DCE threads (at least as implemented
- by Digital) have no means for setting the signal mask on a
- per-thread basis. Therefore, modified the code so that it
- correctly returns ACE_NOTSUP_RETURN(-1) for DCEthreads. Thanks
- to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
- chasing this down.
-
- * performance-tests/Synch-Benchmarks/synch_driver.cpp (run_test):
- Fixed this implementation so that it will shut down correctly
- when a signal occurs or a timeout occurs (whichever comes
- first).
-
-Fri Nov 22 08:02:39 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace.{mdp,mak}: Changed ace.mak so that it links with the
- non-debug version of Microsoft's multithreaded dll when compiled
- with the release option
-
-Thu Nov 21 10:37:40 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config: Changed the implementation of the
- Service_Config class so that it no longer inherits from
- ACE_Event_Handler. This was causing problems because the new
- reactor() method in the ACE_Event_Handler was conflicting with
- the static reactor() method on ACE_Service_Config.
-
- * ace/OS.cpp (detach): Since we no longer use an
- ACE_Recursive_Thread_Mutex, we can remove the line
-
- else if (ACE_TSS_Cleanup::lock_.get_nesting_level () > 1)
- // ...
-
- Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
- reporting this.
-
- * ace/Thread_Manager.cpp (spawn_n): Replaced int i with size_t i
- to avoid warnings between signed and unsigned values.
-
- * ace: There is an easy way to speed up the "Update dependencies"
- in MSVC. Just keep the the compiler from complaining about
- missing header by inserting a comment like below in the
- #include-directives which are not used in Win32.
-
- Therefore, instead of
-
- #include <somefile.h>
-
- we use
-
- #include /**/ <somefile.h>
-
- Please let me know if this causes problems for any
- pre-processors. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for this suggestion!
-
- * ace/OS.cpp: Added support for AfxBeginThread in
- ACE_OS::thr_create() and ACE_OS::exit(). Now ACE should work
- with MFC when you give the THR_USE_AFX flag to
- ACE_OS::thr_create()! Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for this!
-
- * ace/Malloc_T.cpp (avail_chunks): Changed the return value to
- ssize_t so we can return -1 if we can't get the lock. Thanks to
- Tilo for reporting this.
-
- * ace/config-sunos4-sun3.x.h: Added new #ifdefs for Sun C++ 3.0.1
- on SunOS 4.1.3. Thanks to Eric Parker <eparker@credence.com>
- for these fixes.
-
- * ace/Stack.h: Added a new method called peek() to the
- ACE_Unbounded_Queue classes so that the first element can be
- retrieved without removing it. Thanks to Luca for this
- suggestion.
-
- * ace/SString.cpp (ACE_CString): Changed ACE_CString so that it
- uses memcpy() rather than str(n)cpy() so that we can store any
- structure into it. Thanks to Luca for this suggestion.
-
- * ace/Acceptor: Since we moved the reactor() accessors to
- ACE_Event_Handler we can omit these from the Acceptor and
- Svc_Handler.
-
- * ace: Updated the ACE_Reactor and ACE_ReactorEx so that they
- automatically sets the pointers in ACE_Event_Handlers. Thanks
- to Luca for this suggestion.
-
- * ace/Event_Handler: Added pointers to all the ACE demultiplexors
- (e.g., ACE_Reactor, ACE_ReactorEx, and ACE_Proactor) to
- ACE_Event_Handler, along with set/get accessor methods. This
- supports a very common use-case where an event handler keeps
- track of its demultiplexor. Thanks to Luca for this suggestion.
-
- * ace/OS.cpp: Since we do not use the recursion count from the
- Recursive Mutex any more in ACE_TSS_Cleanup::exit() we can
- replace the Recursive Mutex by a regular ACE_Thread_Mutex that
- is recursive on NT natively and more efficient. Thanks to
- Detlef for suggesting this.
-
- * ace/OS.cpp: Since we do not use the recursion count from the
- Recursive Mutex any more in ACE_TSS_Cleanup::exit() we can
- replace the Recursive Mutex by a regular ACE_Thread_Mutex that
- is recursive on NT natively and more efficient. Thanks to
- Detlef for suggesting this.
-
- * ace: Backed out all of Detlef's changes to ACE_OS and
- ACE_TSS::ts_get(). It turns out that this is unnecessary since
- he reimplemented ACE_TSS_Cleanup so that it no longer needs to
- hold the lock when callbacks are made. Once again, Detlef
- proves that he's a macho man, not a boy ;-)
-
-Thu Nov 21 08:12:51 1996 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++_4.1.GNU:
- put back the LD definition
-
- * include/makeinclude/platform_osf1_4.0_g++.GNU:
- added LD definition to work with latest wrapper_macros.GNU
-
-Wed Nov 20 10:32:52 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * tests: Mutex_Test.cpp Priority_Buffer_Test.cpp
- Reader_Writer_Test.cpp Thread_Pool_Test.cpp were changed
- slightly to remove some compile time warnings.
-
-Wed Nov 20 21:35:28 1996 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp: added #include of ace/config.h so that
- conditions for include of ace/OS.h can be checked.
-
-Wed Nov 20 02:38:40 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp: Moved the definition of logger_key_ to
- OS.h and changed it to a macro (ACE_LOGGER_KEY) so that it will
- be portable to Win32 and UNIX. Thanks to Tilo for reporting
- this.
-
- * ace/OS: Changed the return value of ACE_OS::getgid() from uid_t
- to gid_t to be POSIX compliant.
-
- * ace/OS.cpp (thr_create): Fixed a typo where we were assigning
- stacksize rather than size. Thanks Thilo.
-
- * ace/OS.cpp (thr_create): Added a new piece of code for
- ACE_NEEDS_HUGE_THREAD_STACKSIZE, which is necessary to create a
- larger per-thread stack size in order to run ACE_Log_Msg::log.
- Thanks to Thilo for this.
-
- * tests/TSS_Test.cpp: Changed the name of the static variable
- "lock" to "cout_lock" to avoid a potential namespace clash on
- Digital UNIX. Thanks to Thilo Kielmann for reporting this.
-
- * ace/SOCK_Dgram.cpp (recv): Added a cast (char *)
- io_vec->iov_base so that this would work correctly on platforms
- where iov_base is a void * (e.g., AIX and HP/UX). Thanks to
- Alan Stewart for the change.
-
- * ace/OS.h: Added a few new changes for Digital UNIX 4.0a. These
- should fix problems with ctime_r() and asctime_r(). Thanks to
- Dave Trumble for the fixes.
-
- * tests/UPIPE_SAP_Test.cpp: Disabled this test if we don't have
- threads and (STREAM Pipes or Win32). Thanks to Thilo Kielmann's
- <kielmann@informatik.uni-siegen.de> for this info.
-
-Tue Nov 19 23:09:08 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Log_Record.cpp (print): Added a call to ACE_OS::fflush
- before returning. This change was suggested by Luca in order to
- help prevent messages from getting lost when applications exit.
- We're unsure of the affects this will have on performance, so we
- may change this back in the future.
-
-Tue Nov 19 00:06:57 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Released a beta version of ACE 4.0.33 for testing.
-
- * ace/TTY_IO.h: Added the ACE_Export macro before the ACE_TTY_IO
- class to make things work correctly for Win32 DLLs. Thanks
- to William L. Gerecke <gerecke@rayva.org> for fixing this.
-
- * ace/OS.h: Improved the support for RLIMIT_NOFILE. Thanks to
- Alan Stewart <axs2@osi.com> for reporting this.
-
- * ace/OS.h: Removed the following code from OS.h because
- it is causing problems on some platforms:
-
- #if (!defined (timespec) && !defined (m88k))
- #define timestruc_t struct timespec
- #endif /* timespec */
-
- Thanks to Fred LeBar for reporting this.
-
- * ace/OS.cpp (thr_create): Needed to create an
- ACE_OS::NULL_hthread so that we can assign the "NULL thread
- handle" on POSIX platforms. Thanks to Alan Stewart
- <axs2@osi.com> for reporting this.
-
- * ace/OS.i: The HP/UX C++ compiler is unable to grok inline
- functions with multiple returns. So I recoded the
- ACE_OS::event* methods to avoid this. Thanks to Alan Stewart
- <axs2@osi.com> for reporting this.
-
- * ace/OS.h: Moved the "undef" of t_errno until after the inclusion
- of mman.h and dlfcn.h to prevent problems with DU4.0a. Thanks
- to David Trumble <trumble@steosf.nio.dec.com> for reporting
- this.
-
- * ace/Pipe.cpp (open): Fixed a typo where
- this->ACE_SOCK::set_option() was being used instead of
- writer.set_option(). Thanks to Tilo Christ
- <christ@swl.fh-heilbronn.de> for reporting this.
-
- * ace/Message_Queue.h: Fixed a bug where
-
- ACE_Message_Queue <ACE_SYNCH_1> &queue_;
-
- should be:
-
- ACE_Message_Queue <ACE_SYNCH_2> &queue_;
-
- Thanks to Rick Orr <rorr@costello.den.csci.csc.com> for
- reporting this.
-
- * apps/Makefile: Updated the Makefile so that it no longer tries
- to look for Synch-Benchmarks. Thanks to Amos Shapira
- <amos@dsi.co.il> for reporting this.
-
- * ace/Activation_Queue.cpp (dequeue): Added a sanity check to make
- sure that we actually deleted the first element in the queue.
- Thanks to Andres Kruse <Andres.Kruse@cern.ch> for reporting
- this.
-
- * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: Added a
- minor change to remove the libACE.a archive prior to creating a
- new one. This works around bugs with the SunOS 4.x C++
- compiler. Thanks to Andres Kruse <Andres.Kruse@cern.ch> for
- reporting this.
-
- * ace/Malloc_T.cpp (avail_chunks): Added Fred LeBar's code and
- comments for computing the available chunks.
-
- * tests/Mutex_Test.cpp: Rewrote the Mutex_Test so that it behaves
- correctly on UNIX and Win32. Thanks to Irfan for reporting the
- problem.
-
- * ace/Log_Msg.cpp (sync): Somehow, the statement that updated the
- pid_ after sync() is called following a fork() got removed, so I
- put it back in.
-
- * ace/config-sunos5.*-g++.h: Added the
- -D_REENTRANT flag to the config files for the G++ version of
- ACE. This fixes a nasty problem that otherwise arises when
- compiling on SunOS 5.x. Thanks to Hanan Herzog
- <hanan@wallenda.stanford.edu> for reporting this.
-
-Tue Nov 19 21:14:15 1996 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Synch-Benchmarks/Benchmark.{h,cpp}:
- use thread ID class for VxWorks as well as Pthreads.
-
- * OS.i, config-{osf1-4.0,sunos5.[45]}-g++.h: Moved GNU
- #include <cstring> out of config files and into OS.i.
-
- * ace/Svc_Conf_l.cpp: added #include of ace/OS.h for HPUX and
- VxWorks.
-
- * ace/Token.cpp: reordered initializations in Ace_Queue_Entry
- ctor to match declaration order.
-
-Mon Nov 18 00:47:27 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Added a new #define called ACE_HAS_BROKEN_CONVERSIONS
- to workaround problems with the HP/UX C++ compiler, which
- doesn't seem to be able to grok foo->operator T *(). Thanks to
- Alan Stewart <axs2@osi.com> for reporting this bug and the fix.
- Also updated the config-hpux*.h files with this define.
-
- * examples/Misc: Added a new test (test_get_opt.cpp) which
- exercises the ACE_Get_Opt class.
-
-Sun Nov 17 13:00:02 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Get_Opt: Replaced the GNU-based implementation of class
- ACE_Get_Opt with an implementation based on BSD UNIX. The
- advantage here is that the BSD version is not encumbered by the
- GNU GPL. Thus, ACE has no more dependencies on GNU GPL. Thanks
- to James Hu <jxh@cs.wustl.edu> for finding the BSD code.
-
-Mon Nov 18 00:13:25 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/stdcpp.h: Added this file to ACE. This file contains the
- portability ugliness for the Standard C++ Library. As
- implementations of the "standard" emerge, this file will need to
- be updated. Although not very useful now, we are gearing up for
- a support for STL on UNIX and NT.
-
- * ace/OS.h: Added an include "ace/stdcpp.h".
-
- * ace/Log_Record.h (ACE_Log_Record): Removed the iostream include
- mess that got accidentally committed to the release.
-
-Sun Nov 17 00:13:25 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * For some totally evil reason, MSVC++ will not allow any use of
- the "allocator" symbol. It's an STL thing. As a result, I've
- had to change all of the following files to rename allocator to
- alloc: Local_Name_Space_T.cpp, Map_Manager.cpp, Malloc_T.cpp,
- Message_Block.cpp, Read_Buffer.cpp, SString.cpp. The root
- of the problem can be seen by compiling the code below:
-
- template <class TYPE>
- class foo {};
-
- int foo; // compile error because of the foo<> class.
-
- int main () { return 0; }
-
- * Service_Config.{h,cpp}: We have to change the allocator
- accessors to alloc. This is probably going to break
- many things. If necessary, we can conditionally compile in the
- old accessors for platforms that are not using STL and MSVC++.
-
- * ace/Task.h: Added ACE_Export macros to the class definitions.
-
-Sun Nov 17 13:00:02 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Added Thilo Kielmann's <kielmann@informatik.uni-siegen.de>
- patches for OSF/1 4.0a.
-
- * ace/OS: Revised the implementation of ACE_OS::asctime_r() and
- ACE_OS::ctime_r() to simplify common cases. However, this may
- have broken some code on OSF/1 4.0a. Can someone please check
- this?
-
- * tests/SPIPE_Test.cpp: Conditionally compiled this file so that
- we only build the SPIPE test if (1) we're running on Win32 or
- (2) ACE_HAS_STREAM_PIPES. Thanks to David Levine for this
- suggestion.
-
- * ace/OS.i (ctime_r): Fixed a typo that was caused by a misplaced
- #endif. Thanks to Eshel Liran <liran@macs.biu.ac.il> for
- reporting this.
-
- * ace/Time_Value: Disabled ACE_TRACE within these method in order
- to prevent infinite recursion.
-
- * ace/Log_Record: Originally, when verbose mode was enabled you
- can get the date and time down to the seconds. However, it is
- useful for performance testings to have milliseconds displayed
- in the log. To accomplish this, I changed ACE_Log_Msg and
- ACE_Log_Record to they also keep track of and print the microsec
- time, as well. Thanks to Luca for suggesting this.
-
- * ace/Map_Manager.cpp: updated all the ACE_Map_Manager methods so
- their read and write Guards use the ACE_*_GUARD macros.
-
- * ace/Malloc_T.cpp: Updated all the ACE_Malloc methods so their
- read and write Guards use the ACE_*_GUARD macros.
-
- * ace/OS.cpp (svc_run): Added an ACE_DEBUG announcing that an
- exception has propagated beyond the outermost svc_run()
- function. Thanks to Luca for this suggestion.
-
- * tests/test_config.h: VxWorks passes in a NULL argv (arrghhh...).
- Therefore, to work around this in the ./tests directory, I changed
- the ACE_START_TEST macro to take a NAME parameter, and then I
- added the following local variable:
-
- const char *program = argv ? argv[0] : NAME;
-
- Thanks to David Levine for this fix.
-
-Sat Nov 16 12:01:08 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Threads/test_tss2.cpp: Added Detlef's new test for
- ACE_TSS.
-
- * ace/Synch_T.cpp (ts_get): Added Detlef's changes to fix deadlock
- problems with ACE_TSS on NT.
-
-Fri Nov 15 18:01:26 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE_SOCK_Stream.cpp: NT will signal an abortive close
- to the opposite party if a socket is closed before all of its
- data has been sent out. According to the NT SDK-docs, you should
- do a shutdown before the closesocket() in order to prepare a
- graceful close. Thus, I've placed an
- ACE_SOCK_Stream::close_writer() method just before the call to
- ACE_SOCK::close() in the new close() of the ACE_SOCK_Stream
- class. Thanks to Tilo Christ <christ@swl.fh-heilbronn.de> for
- this suggestion.
-
- * ace/INET_Addr.cpp: The function ACE_INET_Addr::addr_to_string
- was a virtual function that is also inline and defined in the .i
- file. Some compilers have a problem with this, so I moved it
- into the *.cpp file. In addition, its sister function was also
- virtual and is defined as:
-
- ACE_INLINE int
- ACE_INET_Addr::string_to_addr (const char s[])
-
- in the .cpp file. I removed the ACE_INLINE directive. Thanks
- to Fred LaBar <flabar@fallschurch.esys.com> for reporting this.
-
-Thu Nov 14 16:20:20 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc_T.cpp: Added a new method to ACE_Malloc that will
- return the number of chunks available on the free list. Thanks
- to Fred Labar <flabar@fallschurch.esys.com> for this.
-
-Wed Nov 13 01:22:16 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ReactorEx.cpp (handle_events): I've changed siginfo_t on
- Win32 (which was previously typedef'd to int) so that it has the
- following structure:
-
- struct siginfo_t
- {
- siginfo_t (ACE_HANDLE handle);
-
- ACE_HANDLE si_handle_;
- // Win32 HANDLE that has become signaled.
- };
-
- Then, I've changed the ACE_ReactorEx::handle_events() method to
- look like this:
-
- // Assign the ``signaled'' HANDLE so that callers can get
- // it.
- siginfo_t sig (relative_handles[relative_index]);
-
- if (relative_handlers[relative_index]->handle_signal
- (0, &sig) == -1)
-
- Thus, you can refer to the signaled handle as
-
- si_handle_
-
- within the handle_signal() call back. Thanks to Matthias
- Kerkhoff <make@cs.tu-berlin.de> for suggesting this.
-
- * ace/System_Time.h: Made ACE_System_Time::get_local_time() a
- static member function. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for suggesting this.
-
- * ace/Message_Queue.h: The internal variables for counting the
- bytes stored in the queue were declared as of type int (in
- Message_Queue.h). But they are set (e.g. with
- ACE_Message_Queue::ACE_Message_Queue) with values of size_t.
-
- When running tests/Priority_Buffer_Test, the high_water_mark_ is
- preset with the value LONG_MAX. While assigning this value from
- size_t to int, this becomes -1 and the queue is always believed
- to be full :-( The fix is to change the internal data structures
- in Message_Queue.h from int to size_t. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for reporting this.
-
- * tests: Fixed problems with the following three tests:
-
- Priority_Buffer_Test.cpp
- Reader_Writer_Test.cpp
- UPIPE_SAP_Test.cpp
-
- When these are compiled with gcc on Digital UNIX 4.0a the static
- ACE_Thread_Manager thr_mgr; was never getting initialized due to
- gcc compiler bugs. The fix is to replace the static thread
- manager with the ACE_Service_Config::thr_mgr() singleton.
- Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
- reporting this.
-
-Tue Nov 12 19:43:12 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (spawn_n): Was missing a 0 after ?.
- Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
- reporting this.
-
- * ace/Log_Msg.h: Created a new macro call ACE_ERROR_BREAK(X) {
- ACE_ERROR(X); break;} for use within switch and loop statements.
- Thanks to Luca for this idea.
-
- * ace/Pipe.cpp: Enabled the "reuse addr" flag for accepting and
- connecting the Win32 version of ACE_Pipe. Thanks to Luca for
- reporting this problem.
-
- * ace/OS.i (thr_join): ACE_Thread::join () has a default second
- parameter (the status) set to 0. This is not handled in
- ACE_OS::thr_join(). To avoid getting a system error in NT we
- handle this as we did with ACE_OS::thr_create() and the
- thr_handle parameter.
-
- * ace/config-irix6.2-sgic++.h: Updated the set of patches required
- for IRIX 6.2. Thanks to Amos Shapira for reporting this.
-
-Sun Nov 10 15:40:17 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Token_Invariants.cpp: Moved static data
- declarations out of ACE_Token_Invariant_Manager::instance and
- into the header file. This is supposed to help with a g++
- problem on VxWorks.
-
-Sun Nov 10 13:22:03 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Pipe.cpp (open): Set the loopback socket into TCP_NODELAY
- mode so that we don't block for 200 ms... Thanks to Luca
- Priorelli <lucapri@mbox.vol.it>.
-
- * ace/Thread_Manager: Created a new version of spawn_n() that
- gives parameters for stack, stack_size, and also for the
- assigned ACE_hthread_t's. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for suggesting this.
-
-Sun Nov 10 13:56:38 1996 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * tests/Reactors_Test.cpp (main): Fixed the test so that the
- output of the test goes to a log file instead of STDOUT.
-
-Sat Nov 9 11:23:13 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch.i: Fixed a bug in ACE_Thread_Mutex_Guard.
- The call:
-
- this->owner_ == block ? this->lock_.acquire () : this->lock_.tryacquire ();
-
- should be
-
- this->owner_ = block ? this->lock_.acquire () : this->lock_.tryacquire ();
-
- Thanks to Alexander Smundak <sasha@migration.com> for reporting
- this.
-
-Sat Nov 9 01:44:15 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/Message_Queue: Added forward and reverse iterators to
- Message_Queue. Also, added typedefs to Message_Queue for
- ITERATOR, and REVERSE_ITERATOR. This makes the Queue like an STL
- collection and also makes it easier to use since you don't have
- to define types for the iterators. Please see
- test/Message_Queue_Test.cpp for an example.
-
- * ace/Map_Manager: Added reverse iterator to Map_Manager. Also,
- added typedefs to Map_Manager for ENTRY, ITERATOR, and
- REVERSE_ITERATOR. This makes the Map more like an STL collection
- and also makes it easier to use since you don't have to define
- types for the iterators and the entry. Please see
- test/Map_Manager_Test.cpp for an example. Note that the new
- typedefs does not break existing code.
-
-Fri Nov 8 20:04:26 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc.h: Fixed a typo on line 176 that reads:
-
- #include "ace/Sync_T.h"
-
- It should read:
-
- #include "ace/Synch_T.h"
-
- Thanks to Todd Barkalow <todd_barkalow@stortek.com> for
- reporting this.
-
-Wed Nov 6 00:38:02 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Pipe: Added the const qualifier to the following methods:
-
- ACE_HANDLE ACE_Pipe::read_handle (void) const;
- ACE_HANDLE ACE_Pipe::write_handle (void) const;
-
- Thanks to Luca for reporting this.
-
- * ace/config-win32-msvc4.0.h: Redefined
- ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES since it looks like
- MSVC++ 4.0 still doesn't work. Maybe this is fixed in 4.2?
-
-Tue Nov 5 03:09:44 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Strategies.cpp: I'd forgotten to update one of the
- accept(*svc_handler) calls to use the new
- accept(svc_handler->peer()) syntax.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: Added a cast to
- (COUNTER) 0 when initializing ::request_count_ to avoid problems
- on Win32. Thanks to Luca for pointing this out.
-
- * ace/Thread_Manager: Added a new thr_self() method that return
- the unique ID of the thread. This is not strictly necessary
- (because a thread can always just call <ACE_Thread::thr_self>).
- However, we put it here to be complete. Thanks to Hamutal Yanay
- <Hamutal_Yanay@mail.icomverse.com> for suggesting this.
-
- * ace/OS.cpp (thr_create): I was accidentally closing down
- ::CloseHandle (thr_handle) (where thr_handle is a HANDLE *) when
- I should have been doing a ::CloseHandle (handle) instead.
- Thanks to Luca for finding this!
-
-Tue Nov 5 14:26:32 1996 David Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Changed LINK.{c,cc}
- commands to use LD instead of CXX. Changed all platform macros
- files (except for g++ on VxWorks) to correspond.
-
- * tests/run_tests.sh: changed -e test to -f for portability and
- reordered tests. Thanks to Michael Michael Rueger
- <m_rueger@SYSCOMP.DE> for originally creating run_tests.sh, and
- for maintaining it, and to Alan Stewart <axs2@osi.com> for
- suggesting fixes/enhancements.
-
- * tests/Time_Service_Test.cpp and Tokens_Test.cpp: changed to
- return 0 on success instead of 42
-
-Fri Nov 1 03:53:39 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * STL: Added STL files to $WRAPPER_ROOT/STL. This code is a
- modified version (changes for VC++ compiler) of the publicly
- available implementation of STL from HP. Currently,
- ACE_Registry uses these STL classes.
-
-Fri Nov 1 00:25:01 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/CORBA_Handler.cpp (process_events): There was a very subtle
- race condition in the ACE_MT_CORBA_Handler. process_events()
- accessed the singleton directly without taking the mutex. At
- startup the process_event thread is kicked off from the
- constructor and the instance_ is set. Hence the race. The
- solution is to attempt to take the mutex before accessing the
- instance. Thanks to David Artus <david.artus@sbil.co.uk> for
- reporting the problem and providing the fix.
-
- * ace/Log_Msg.cpp (log): Improved the performance of the Log_Msg
- mechanism by not doing any parsing of the format string if the
- user has disabled this priority.
-
- * ace/Reactor.cpp: Added a chance for the open() method of the
- Notification_Pipe failing. Thanks to Luca for pointing this
- out.
-
- * ace/Reactor.cpp (handle_events): Added a change to the semantics
- of the ACE_Reactor so that it doesn't fall out of the event loop
- when signals arrive that it handles. Thanks to Stuart Powell
- <stuartp@in.ot.com.au> for this fix.
-
- * ace/Service_Repository.cpp (remove): Fixed a bug with
- Service_Record::remove() that was failing if there were only two
- records and we are removing the first one. Thanks to Alex
- Villazon <villazon@cui.unige.ch> for reporting this.
-
- * ace: Recompiled everything on Solaris with G++ and CC and it
- seems to work fine.
-
- * ace/Module: Replaced the use of char * with const char * for
- assigning the Module a name.
-
- * ace: Split the Task.{cpp,i.h} file into Task_T.{cpp,i,h} in
- order to factor out the new non-template ACE_Task_Base and
- ACE_Task_Exit classes. This is required for GCC-based compilers
- that include the *.cpp files...
-
-Thu Oct 31 00:36:38 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc_T.h: Made the destructor of ACE_Allocator_Adapter
- virtual.
-
- * ace/Thread: Reorganized the ACE_Thread so that the
- ACE_HAS_THREADS #ifdef is no longer required...
-
- * ace/Strategies.h: Changed all the destructors to be virtual so
- that G++ will stop complaining...
-
- * ace/Thread_Manager: Reorganized the ACE_Thread_Manager so that
- the ACE_HAS_THREADS #ifdef is no longer required...
-
- * ace/config-win32-msvc4.0.h: Added Dieter Quehl's great hack to
- get ACE to compile correctly on Win32 with MFC!
-
- * ace/Task: I've rearranged the implementation of ACE_Task<>
- in the following way:
-
- 1. Defined a non-template class ACE_Task_Base from which the
- ACE_Task<...> inherits (instead of inheriting from
- Ace_Service_Object, which ACE_Task_Base now inherits from.
-
- 2. Move all methods that don't depend on the <ACE_MT_SYNCH> or
- <ACE_NULL_SYNCH> modifers from the ACE_Task template to
- ACE_Task_Base.
-
- There are two motivations for making this change:
-
- 1. It reduces ``template bloat'' by factoring out common
- code that can be shared between ACE_Task<ACE_MT_SYNCH>
- and ACE_Task<ACE_NULL_SYNCH>.
-
- 2. It makes it possible for the Thread_Manager to use
- ACE_Task_Base *'s for managing groups of ACE_Tasks
- in a fully polymorphic manner.
-
- Note that the new changes don't break any existing code that
- uses ACE_Task. Thanks to Hamutal Yanay
- <Hamutal_Yanay@hub.comverse.com> and Ari Erev's
- <Ari_Erev@comverse.com> for suggesting these changes.
-
- * ace/Thread_Manager: Changed the use of ACE_Task<ACE_SYNCH> to
- ACE_Service_Object because this avoids nasty problems with
- template type conflicts. The right solution is probably to
- create a new non-template base class for ACE_Task called
- ACE_Task_Base and move all the ACE_Task operations into there
- that don't involve the Message_Queue directly. I'll need to
- think more about this...
-
- * ace/SOCK_Stream: Added new timed send_n() and recv_n() methods,
- which use the underlying timed ACE::send() and ACE::recv()
- calls.
-
- * ace/ACE.cpp: Added new timed send_n() and recv_n() methods,
- which use the underlying timed ACE::send() and ACE::recv()
- calls.
-
-Wed Oct 30 00:27:21 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Changed MAXHOSTNAMELEN on Win32 from
- (MAX_COMPUTERNAME_LENGTH+1) (which is around 16 or so) to 256.
- Thanks to Tilo Christ <christ@swl.fh-heilbronn.de> for this
- suggestion.
-
- * ace: Made #define STRICT a compile time option if the
- ACE_HAS_STRICT flag is enabled. This prevents ACE from breaking
- existing application (i.e., non-ACE) code. Thanks to Karlheinz
- for pointing this out!
-
- * ace/Synch_T.cpp: Fixed a typo in ACE_Condition<MUTEX>::wait
- (void).
-
- return ACE_OS::cond_wait (&this->cond_, this->mutex_.lock_);
-
- should read
-
- return ACE_OS::cond_wait (&this->cond_, &this->mutex_.lock_);
-
- Thanks to Dieter Quehl <dietrich.quehl@med.siemens.de> for
- reporting this!
-
- * ace/Svc_Handler.h: Removed the operator ACE_PEER_STREAM &() from
- the ACE_Svc_Handler class since we don't need it anymore due to
- the changes below.
-
- * ace/{Acceptor,Connector}.cpp: Removed the use of operator
- ACE_PEER_STREAM &() in the Acceptor::accept() and
- Connector::connect() code and replaced it with
- svc_handler->peer(). This works much better and is more
- intuitive.
-
-Wed Oct 30 00:30:00 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * Registry: Added a Name Service implementation to ACE based on
- Win32 Registry. The ACE_Registry interface is inspired by the
- interface specified in the CORBA Naming Service Specification.
- The implementation is done through Win32 Reg*() functions.
- Other than providing an OO wrapper for the Win32 Reg*()
- functions, ACE_Registry provides an abstraction for iteration
- over the elements of the Registry. This only works on Win32
- platforms (unless you are brave enough to reimplement the
- Win32 Registry API on UNIX and link it in underneath ACE!).
-
- * ace/Local_Name_Space_T.cpp: Moved SEH out of methods of
- Name_Space_Map to the methods of Local_Name_Space. Some of
- the calls to Local_Name_Space methods used the allocator to
- either malloc or find or free shared memory. Adding SEH to these
- methods ensured that any exception raised due to remapping would
- be caught and handled appropriately.
-
- Also, to fool the stupid MFC compiler, we added _i methods
- so that it stopped bitching about destructors not getting called
- correctly.
-
- * Added three new tests to /examples/Naming. Thanks to Lothar for
- providing these tests.
-
-Tue Oct 29 18:10:09 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.cpp (send): Integrated a new and simpler version of
- timed ACE::send(). Thanks to Vital Aza <va3@cs.wustl.edu> for
- coming up with this.
-
- * ace/XtReactor.cpp: When the ACE_Reactor is constructed it
- creates the notify pipe and registers it with the attach()
- method. The XtReactor overloads this method BUT because the
- attach occurs when constructing the base class ACE_Reactor, the
- ACE_Reactor attach() is called not the XtReactor attach(). This
- means that the notify pipe is registered with the ACE_Reactor
- event handling code not the XtReactor and so notfications don't
- work. To get around this we simply close and re-opened the
- notification handler in the constructor of the XtReactor.
- Thanks to Rodney Skinner <rods@in.ot.com.au> for this fix.
-
- * ace/XtReactor.cpp (schedule_timer): The ACE_Reactor returns a
- timer_id from it's equivalent call but the XtReactor always
- returns 0. To fix this we simply replaced the "return 0;" in
- the function with "return result;" Thanks to Rodney Skinner
- <rods@in.ot.com.au> for reporting this.
-
-Tue Oct 29 00:02:44 1996 Douglas C. Schmidt <schmidt@lambada.cs.wustl.edu>
-
- * ace/config-win32-msvc4.0.h: Defined the STRICT symbol based on a
- suggestion from Luca. STRICT type checking in WINDOWS.H
- enhances type safety for Windows programs by using distinct
- types to represent all the different HANDLES in Windows. So for
- example, STRICT prevents you from mistakenly passing an HPEN to
- a routine expecting an HBITMAP. Note that if you have STRICT
- type checking enabled in one file, but not in another, the C++
- compiler will generate different external link symbols for a
- single function. This will result in link-time errors If you are
- mixing STRICT and non-STRICT code, you must be aware of linkage
- inconsistencies. In general, all MFC programming and all C++
- should be done with STRICT. If you have legacy C code, then not
- using STRICT is acceptable
-
- * ace/OS.cpp (thr_create): Added a special check for the situation
- where we have both ACE_HAS_PTHREADS and ACE_HAS_STHREADS
- defined. In this case, we are running on Solaris, where
- ACE_thread_t and ACE_hthread_t are the same. Therefore, we can
- copy the value of the *thr_id into the *thr_handle. This
- ensures that the ACE_Thread_Manager behaves correctly with
- respect to suspending and resuming threads and ACE_Tasks.
-
- * ace/Trace.cpp (ACE_Trace): Changed the use of LM_DEBUG to
- LM_TRACE in the constructor and destructor. Thanks to Luca for
- this!
-
- * ace/OS.i: Added a cast to of (HMODULE) handle so that the STRICT
- macro would work correctly for Win32. Thanks to Luca for this.
-
- * ace/config-win32-msvc4.0.h: According to Luca, ACE compiles file
- with ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES undefined on NT. So
- I undefined it! If there are any problems with this, please let
- me know.
-
- * ace/SOCK_Dgram: Added Luca Priorelli <lucapri@mbox.vol.it>
- implementation of recv() for SOCK Dgrams that allows clients to
- read from a socket without having to provide a buffer to read.
-
- * examples/Threads/test_task_four.cpp: This is a new test
- program to test the new interfaces. Thanks to Hamutal Yanay
- & Ari Erev for this.
-
- * tests/test_config.h: Added a call to the new ACE_OS::mkdir()
- wrapper to create the log directory if one doesn't already
- exist. This should solve some nasty problems with NT reported
- by Tilo Christ <christ@swl.fh-heilbronn.de>.
-
- * ace/OS.h: Added a new macro ACE_DEFAULT_DIR_PERMS and changed
- the spelling of the existing ACE_DEFAULT_PERMS to
- ACE_DEFAULT_FILE_PERMS, which is more accurate.
-
-Mon Oct 28 21:35:12 1996 Douglas C. Schmidt <schmidt@lambada.cs.wustl.edu>
-
- * ace/OS.h: Added a wrapper for the mkdir() system call. We need
- it for some of the tests.
-
- * ace/Task: Changed the name of ACE_Task_Exit<>::set_this() to
- ACE_Task_Exit<>::set_task(). Thanks to Hamutal Yanay & Ari Erev
- for suggesting this.
-
- * ace/{Task,Thread_Manager}: Integrated Hamutal
- <Hamutal_Yanay@hub.comverse.com> Yanay & Ari Erev's
- <Ari_Erev@comverse.com> enhancements to add ACE_Task support
- to the ACE_Thread_Manager. This allows the ACE_Thread_Manager to
- know about ACE_Tasks directly, rather than knowing
- indirectly via their lower-level thread IDs. The changes
- are described below:
-
- - Added a parameter to the activate() method. It is used to
- pass an ACE_Task* to spawn_n().
-
- - Modified suspend() and resume() to call
- thrMgr->suspend_task() and thrMgr->resume_task() instead of
- thrMgr->suspend_grp() and thrMgr->resume_grp().
-
- - Added an ACE_Task * parameter to spawn_n().
-
- - Added an ACE_Task * parameter to append_thr().
-
- - append_thr() uses the ACE_Task * input parameter to
- initialize the thread descriptor.
-
- - Added the following methods:
- apply_task()
- suspend_task()
- resume_task()
- kill_task()
- resume_task()
- cancel_task()
- find_task()
-
- num_tasks_in_group()
- num_threads_in_tasks()
-
- task_list()
- thread_list()
- hthread_list()
-
- set_grp() Like the current set_grp() but gets an ACE_Task *
- as input.
- get_grp() Like the current set_grp() but outputs an
- ACE_Task *.
-
- wait_task()
- wait_group()
-
-Sun Oct 27 11:25:00 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS: modified the ACE_OSCALL_RETURN macro so that we'll
- no longer have zillions of warnings about _result not
- used...
-
- * ace/Synch_T: Changed the use of ACE_Mutex for ACE_TSS to
- ACE_Thread_Mutex.
-
- * ace: Added the necessary template specializations to get ACE
- compiled correctly with G++.
-
- * ace/Log_Msg.h: There were some places in the ACE_{DEBUG,ERROR}
- macros that should have been using __ace_error but there still
- using errno (which is wrong since this might be changed due to
- side-effects of calling ACE_Log_Msg::instance()). I found this
- problem due to the use of -Wall with G++! As a result of this
- fix, ACE now compiles much more cleanly with gcc -Wall.
-
- * ace/Strategy: Improved the scheme used to define the PEER_ADDR
- type of the ACE_Accept_Strategy so that it will work correctly
- on platforms whose C++ compilers aren't quite up to handling all
- variants of template typedefs. In particular, many platforms
- don't support the use of template typedefs in parameter names...
-
- * ace/OS: HP/UX omitted the const in the prototype of
- const_timewait(). Therefore, I added a new typedef to handle
- this and updated all the HP/UX config*.h files.
-
- * ace: Added a new config file (config-sunos5.5-sunc++-4.1.h)
- which reflects the fact that SunC++ 4.1 fixes template bugs that
- prevented earlier versions from supporting template typedefs
- correctly. The new config file #defines
- ACE_HAS_TEMPLATE_TYPEDEFS.
-
-Sat Oct 26 02:22:25 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: On the advice of David Levine, I compiled ACE with gcc
- -Wall and started to fix lots of minor warnings (e.g.,
- misordered data member initializations).
-
- * ace/Local_Tokens.h: Changed the destructors of ACE_Mutex_Token,
- ACE_RW_Token, ACE_Token_Proxy, and ACE_RW_Token to be virtual.
-
- * ace/Synch_T.h: Changed the destructor of ACE_TSS to be virtual.
-
- * ace/OS: Changed the prototype of ACE_OS::select() so that it
- uses const ACE_Time_Value *.
-
- * Updated all uses of ACE_Malloc to use the new ACE_*_MEMORY_POOL
- #defines. This makes it possible to use the ACE_Malloc<> scheme
- with lame C++ compilers.
-
- * ace/ACE: Changed the interface of the new timed send/recv calls
- to use ACE_Time_Value *, which makes it easier to determine
- the blocking semantics at runtime. Thanks to Bill Fulton
- <bill@fasttrack2.bscc.bls.com> for suggesting this.
-
-Sat Oct 26 15:55:02 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/OS.h: We determined that MSVC++ is capable of supporting
- template typedefs. Therefore, we can enable the
- ACE_HAS_TEMPLATE_TYPEDEFS flag, which makes life much easier for
- end users!
-
-Fri Oct 25 23:16:16 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * examples/Shared_Malloc/test_multiple_mallocs.cpp: Added a new
- test that demonstrates the new ability of ACE_Malloc<> to to
- handle multiple mallocs rooted at different base addresses.
-
- * ace/Memory_Pool: Fixed this stuff so that it works even when C++
- compilers can't grok template typedefs.
-
- * ace: Put all the macros that handle the fact that many C++
- compilers have broken template implementations into one place
- (OS.h), rather than having this spread out in many files.
-
- * In ACE_MMAP_Memory_Pool::init_acquire (), we reset errno to 0 in
- the case where the file already exists (and errno == EEXIST).
-
- * Added an ACE_*_Memory_Pool_Options class to each Memory Pool
- class. The Options class allows detailed parameters to be passed
- to the constructor of the Memory Pool class. Since a typedef'd
- Options class was added to every Memory Pool class, this gave us
- the ability to use traits in ACE_Malloc and
- ACE_Allocator_Adapter to construct generic Memory Pools that can
- be initialized uniquely for each instance of ACE_Malloc. Note
- that this new feature only works for C++ compilers that support
- template typedefs correctly (e.g., MSVC++ 4.x, SunC++ 4.1,
- and the AIX C++ compiler).
-
- * Added additional constructors to ACE_Malloc and
- ACE_Allocator_Adapter to allow Options to be passed in to Memory
- Pool.
-
- * Added an extra field in ACE_Name_Options which allows
- specification of the base address of the memory pool. This is
- now used by ACE_Local_Name_Space::create_manager() to create an
- ACE_Allocator_Adapter. This now allows us to have multiple
- ACE_Naming_Context simultaneously in the same process address
- space.
-
- * Also added error checking for constructors (in
- ACE_Local_Name_Space and ACE_Malloc) by checking errno
- values. This is a "hack" since we currently do not use exception
- handling.
-
-Thu Oct 24 02:43:11 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Connection/misc/Makefile: The Makefile in
- ACE_wrappers/examples/Connection/misc seems to have been
- truncated. I replaced it. Thanks to Alan Stewart
- <axs2@osi.com> for reporting this.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-{inclient,inserver}.cpp: Updated
- these examples to use the new timed send()/recv() operations.
-
- * ace/SOCK_IO: Added timed send()/recv() methods, using the base
- level implementations in class ACE.
-
- * ace/ACE: Added timed send()/recv() methods.
-
-Wed Oct 23 19:56:45 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (main): Changed the
- behavior of the test program so that it doesn't take a
- local_addr, but rather will use the default (this prevents a
- common problem that happens when users run the test without
- reading the README file).
-
- * ace/ACE.cpp: Added a new method (get_flags) that returns the
- current setting of flags associated with handle.
-
- * Start of a brave new world: ACE is now under CVS version
- control... Thanks to David Levine and Chris Cleeland
- for making this happen.
-
-Sat Oct 19 12:33:56 1996 David L. Levine <levine@cs.wustl.edu>
-
- * added ACE threads mappings to VxWorks 5.2 tasks in OS.*.
- NOTE: this is _untested_ at this point, but only affects
- VxWorks code
-
- * changed name of first argument of ACE_OS::sigprocmask() and
- ACE_OS::thr_sigsetmask() from "signum" to "how" to better
- represent what it really is.
-
-Wed Oct 16 01:59:40 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Record.cpp (print): added Luca's suggestion for checking
- if host_name == 0 for the ostream version of print(), as well.
-
- * Released version of ACE 4.0.32 for testing.
-
- * ace/Synch.h: Added many small fixes for HP/UX 10.x. Thanks to
- Alan Stewart <axs2@osi.com> for providing these.
-
- * ace/OS.h: Added many new ACE_LACKS* and ACE_HAS* macros to
- support the MVS port. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for these.
-
-Tue Oct 15 11:56:59 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: in a continuing effort to protect the ACE namespace,
- I've changed ace/OS.h around lines 127-137 so that "SYNCH" and
- "SYNCH_MUTEX", etc. are prefixed with "ACE_". Thanks to Alan
- Stewart <axs2@osi.com> for suggesting this.
-
- * ace/Local_Tokens.h: Removed an unnecessary parameter name
- that was unused. Thanks to Stuart Powell <stuartp@in.ot.com.au>
- for reporting this.
-
-Tue Oct 15 17:03:37 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/ReactorEx.cpp (handle_events): Fixed a bug in handle_events
- so that the correct handlers get called when multiple handles
- become signaled simultaneously. Thanks to Ari Erev
- <Ari_Erev@comverse.com> for pointing out this bug. I also took
- this opportunity to fix a bug when handlers are removed during
- handle_events.
-
- * examples/Reactor/ReactorEx/test_remove_handler.cpp: Added a new
- application that tests how the ReactorEx services simultaneous
- events and removes handlers. This example also illustrates the
- use of the new ACE_Events wrapper. Check
- examples/Reactor/ReactorEx/README for more details.
-
-Mon Oct 14 11:43:18 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests: Added a new version of run_tests.sh, which was
- contributed by Michael Rueger <mike@SYSCOMP.DE>.
-
- * examples/Logger/simple-server/Logging_Handler.cpp (handle_input)
- and examples/Logger/Acceptor-server/server_loggerd.cpp
- (handle_input): Changed from stderr to cerr to work around bugs
- with the C run-time libraries on Win32. Thanks to Tilo Christ
- <christ@swl.fh-heilbronn.de> for suggesting this.
-
-Mon Oct 14 11:09:42 1996 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * ace/Local_Name_Space_T.cpp (remap): Added processor specific
- stuff to remap(). The code was taken from the book "Win32
- Network Programming" by Ralph Davis (p.18) and takes care of
- cases specific to the 80x86 processor. The code ensures that the
- registers are set properly when we continue execution after an
- exception.
-
-Sun Oct 13 21:18:38 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Record.cpp (print): Added a test to make sure that the
- value returned from ctime_r != 0 (e.g., if time_stamp_ == -1) in
- order to avoid crashes.
-
- * examples/Logger/client/logging_app.cpp (main): Moved the
- construction of the ACE_Log_Record log_record object into the
- loop so that it will be recreated each time through. If this
- isn't done, then we'll be continually "encoding" values into
- network byte order that have already been encoded and screwing
- things up on little-endian machines (such as Intel). Thanks to
- Irfan and Tilo Christ <christ@swl.fh-heilbronn.de> for pointing
- me in the right direction on this.
-
- * ace/Log_Record.cpp: Changed the default constructor so that it
- gives default initializations to the data members.
-
- * examples/Logger/Acceptor-server/server_loggerd.cpp (handle_input):
- Fixed a couple of typos where
-
- Logging_Handler::handle_input (int)
-
- should be:
-
- Logging_Handler::handle_input (ACE_HANDLE)
-
- and
-
- size_t len;
-
- should be:
-
- ssize_t len;
-
- Thanks to Irfan for finding these.
-
-Sat Oct 12 08:48:23 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Released a beta version of ACE 4.0.32 for testing.
-
- * ace/Log_Record.cpp: rewrote the code a bit to try and avoid
- problems on NT when host_name == 0.
-
- * ace/Log_Record.cpp: Changed the use of ACE_OS::ctime() to
- ACE_OS::ctime_r() to avoid problems that might arise when
- ACE_Log_Record::print() is called from multiple threads.
-
- * ace/Log_Record.cpp: Commented out calls to ACE_TRACE to avoid
- weird problems with circular dependencies. Thanks to Luca
- Priorelli <lucapri@mbox.vol.it> for suggesting this.
-
- * build/SunOS5.5/examples/Makefile: Added the Logger directory to
- the list of targets that are build automatically by Make.
-
-Fri Oct 11 17:13:03 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Fixed lots of small warnings revealed when using the
- Greenhills compiler on VxWorks. Thanks to David Levine for
- this.
-
- * ace/Pipe.h: In Pipe.h, the return value of ACE_Pipe::close()
- isn't explicitly declared, so some compilers gag. Thanks to
- David Levine for this.
-
-Thu Oct 10 12:05:55 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Thread.cpp: Correctly wrapped the methods in the *.cpp file
- so that they are ignored if threads *aren't* supported.
-
- * ace/Service_Repository.cpp (remove): Added the ACE_MT in front
- of all the ACE_GUARD* macros that utilize ACE_Thread* locks in
- order to ensure that ACE compiles correctly on all non-MT
- platforms.
-
- * examples/Shared_Malloc/Malloc.cpp: Removed the special purpose
- class for PROCESS_MUTEX since ACE_Process_Mutex will now work
- for non-MT platforms.
-
- * examples/Misc/test_dump.cpp: Changed all occurrences of
-
- cerr << "string " << this << endl;
-
- to
-
- cerr << "string " << (u_long) this << endl;
-
- to work around problems with IRIX 5.3. Thanks to Tilo Christ
- <christ@swl.fh-heilbronn.de> for reporting this.
-
- * ace/config-linux.h: Added a // in front of a stray comment line.
- Thanks to Neil Cohen for pointing this out.
-
- * ace/config-hpux-10.x-g++.h: Added a new config file for HP/UX
- 10.x which should fix some problems with templates by using the
- G++ compiler. Thanks to <afarahat@CCGATE.HAC.COM> for
- contributing this.
-
-Wed Oct 9 14:34:19 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS: Changed the logic of socket initialization, which has
- been moved out of ACE_SOCK and into ACE_OS. This makes it
- possible to program more fully at the ACE_OS API (if such a
- crazy thing is really necessary ;-)).
-
- * examples/IPC_SAP/SOCK_SAP/C-in{client,server}.cpp: Fixed up the
- client and server apps so they will work on NT
- (i.e., replaced the use of int with ACE_HANDLE). Thanks to Joe
- DeAngelis <bytor@faxint.com> for suggesting this.
-
- * ace/Synch.h: Now that we've got support for POSIX semaphores on
- Solaris, then we'll use them (when they are supported...) as the
- implementation of ACE_Process_Semaphore rather than using the
- slower ACE_SV_Semaphore_Complex stuff...
-
- * ace/OS.{h,i}: Added David Levine's support for named POSIX
- semaphores. If ACE_HAS_POSIX_SEM is defined, then ACE_Semaphore
- will construct a named POSIX semaphore if passed a non-null
- name, or an unamed POSIX semaphore if passed a null name. This
- is a great addition because POSIX semaphores are more powerful
- and useful than the Solaris UI semaphores. Unfortunately,
- Solaris 2.5 doesn't support them (yet).
-
-Tue Oct 8 16:00:00 1996 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/OS: Integrated Irfan's encapsulation/emulation for Win32
- Events at the ACE_OS level. A new structure ACE_event_t was
- created to support Events on non-WIN32 platforms. On WIN32
- platforms ACE_event_t is just a HANDLE. On non-WIN32 platforms,
- ACE_event_t uses a combination of mutexes, condition variables,
- and counters to emulate Events. Both auto-reset and manual-reset
- events are supported.
-
- * ace/Synch: Integrated Irfan's encapsulation/emulation for Win32
- Events at the C++ wrappers level. There are three wrappers that
- were created: ACE_Event, ACE_Auto_Event, and ACE_Manual_Event.
- ACE_Event is a wrapper for the ACE_event_t structure. It
- provides functionality for signal, wait, pulse, and reset on an
- event. ACE_Event supports both auto-reset and manual-reset
- events. However, specializations of ACE_Event were created
- (ACE_Manual_Event and ACE_Auto_Event) to make it easier to use
- Events.
-
- * examples/Threads/test_manual_event.cpp: A test for manual-reset
- events. The test involves the creation and use of a barrier
- which uses an ACE_Manual_Event.
-
- * examples/Threads/test_auto_event.cpp: A test for auto-reset
- events. The test involves the use of an ACE_Auto_Event for
- signaling threads.
-
-Tue Oct 8 15:45:01 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/DEV.cpp (ACE_DEV): Removed a stray call to
- ACE_IO_SAP::dump(). Thanks to Brad Flood <BFLOOD@tcs.lmco.com>
- for this fix.
-
- * ace/OS.i: Added ACE_HAS_CHARPTR_SOCKOPT for VxWorks. Thanks to
- David Levine for this.
-
- * ace/Dump.cpp (instance): Added an ACE_MT() macro around the
- ACE_GUARD_RETURN macro so that this will compile correctly on
- non-threaded platforms. Thanks to David Levine for this.
-
- * ace/OS.h: the declaration of ACE_OS::msgctl needs "struct
- msqid_ds" instead of just "msqid_ds" to compile with the
- Greenhills C++ compiler. Thanks to David Levine for this...
-
- * ace/Local_Name_Space_T.h: Added #include "ace/Local_Name_Space.h"
- to avoid a problem during template generation. Thanks to
- Chris Lahey for this fix.
-
- * ace/OS.i (getprotobynumber_r): Added a pair of fixes from Chris
- Lahey to get the ACE wrappers for the getprotoby*_r() methods to
- compile on AIX.
-
- * examples/Threads: Added two new examples (test_auto_event.cpp
- and test_manual_event.cpp) that exercise the new ACE_Event
- mechanisms.
-
- * ace/Synch: Integrated Irfan's encapsulation/emulation for Win32
- Events at the C++ wrappers level.
-
- * ace/OS: Integrated Irfan's encapsulation/emulation for Win32
- Events at the ACE_OS level.
-
-Fri Oct 4 08:32:47 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Added David Levine's new ACE_OS::mktemp() implementation.
-
-Wed Oct 2 13:26:20 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SV_Message_Queue.i: Changed the casts of (msgbuf *) to
- (void *).
-
- * ace/OS.i: Added David Levine's implementation of inet_addr() for
- VxWorks.
-
- * ace/OS.i: Continued to merge together various parts of Win32 and
- UNIX to reduce redundancies.
-
-Tue Oct 1 15:03:42 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Added Chuck Gehr's new changes to ACE_OS::mutex_init()
- and ACE_OS::cond_init() to handle the MVS Pthreads madness.
-
- * ace/OS.i: Added zillions of #ifdefs for VXWORKS. It's amazing
- these guys call themselves POSIX compliant -- lots of stuff is
- missing. Thanks to David Levine for doing this!
-
- * ace/OS.cpp: Added David Levine's implementation of mktemp()
- for platforms that don't support it.
-
- * ace/OS.h: Added a bunch of minor changes for VXWORKS. In
- addition, started to factor out common #ifdefs to make the code
- easier to maintain.
-
- * ace/OS.h: Added a new macro for ACE_LACKS_UTSNAME, and factored
- this out for both VxWorks and Win32.
-
- * ace/Time_Value.h: Added support for 2 VXWORKSisms: (1) we need
- to #include sys/times.h rather than the standard UNIX sys/time.h
- and (2) we need to change const timeval & to const struct
- timeval & to keep the Greenhills compiler happy. Thanks to
- David Levine for this.
-
- * ace/INET_Addr.cpp: Added support for the insane VXWORKS
- hostGetByName() function. Yikes! Thanks to David Levine for
- this.
-
- * ace/Memory_Pool.cpp: Added a new #define called ACE_LACKS_SBRK
- and ACE_LACKS_SYSV_SHMEM, which is enabled on Win32 and VxWorks.
- Thanks to David Levine for reporting this.
-
- * ace/OS.h: Added new macros that #define ETIME for platforms like
- VxWorks that don't support it, but do support ETIMEDOUT.
-
- * ace/OS.h: Added placeholder #defines for USYNC_PROCESS and
- USYNC_THREAD when !defined (ACE_HAS_THREADS). Thanks to Neil
- Cohen for reporting this.
-
-Tue Oct 1 00:42:35 1996 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu>
-
- * ace/Message_Block.cpp (size): Member base_ of ACE_Message_Block
- was being set to the new memory pointer before the old contents
- are saved in method size. So the line
-
- this->base_ = buf;
-
- was moved to a place some lines below. Thanks to Marco Sommerau
- <sommerau@informatik.uni-stuttgart.de> for detecting this.
-
- * ace/Message_Queue.cpp: Changed the implementation of the
- enqueue_i() method so that FIFO order is maintained when
- messages of the same priority are inserted consecutively.
- Thanks to Jay Denkberg <jay_denkberg@comverse.com> for
- suggesting this.
-
-Mon Sep 30 22:59:38 1996 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu>
-
- * ace/OS.i (thr_yield): Added a new macro ACE_HAS_YIELD_VOID_PTR
- to make pthread_yield work on MVS. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for this fix.
-
- * ace/OS: Added a new macro called ACE_HAS_TIMEZONE_GETTIMEOFDAY
- that handles problems on MVS. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for this fix.
-
-Mon Sep 30 13:45:10 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Local_Tokens.h: Updated some documentation in all the Token
- files.
-
-Mon Sep 30 18:01:12 1996 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * netsvcs/lib/: Renamed files Logger.{h,cpp} to
- Logging_Strategy.{h,cpp} to avoid confusion with Server_Logging
- and Client_Logging stuff. In addition, I modified the affected
- files, including Makefile, README, and the config files in the
- tests directory.
-
-Sun Sep 29 12:47:37 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Added Chuck Gehr <gehr@sweng.stortek.com> fixes for
- MVS to enable signals to work correctly.
-
- * ace/Time_Value.h: Added an extern "C" { } block around #include
- <pthreads.h> to solve a problem with Linux. Thanks to Padhu
- Ramalingam <padhu@magicnet.net> for reporting this.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: Changed the
- initialization of a static template object from ::request_count_
- (0L) to ::request_count_ = 0L. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for reporting this.
-
- * ace/Remote_Tokens.h: Moved the inclusion of "Singleton.h" from
- Remote_Tokens.cpp to Remote_Tokens.h. This should avoid
- template instantiation problems on some platforms (e.g., Irix
- 6.2).
-
- * ace/config-irix6.2-sgic++.h: Changed ACE_HAS_SIGINFO to
- ACE_HAS_SIGINFO_T and added ACE_HAS_UCONTEXT_T. Thanks to
- Gonzalo Diethelm <gonzo@ing.puc.cl> for reporting this.
-
- * ace/Token_Invariants.h: The ctor/dtor were private and the
- compiler would not allow a template of the class to be created.
- I switched them to public, but I wish there was a better way...
- Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl> for reporting
- this.
-
- * ace/Synch_T.h: #include'd "ace/Event_Handler.h". Thanks to
- Gonzalo Diethelm <gonzo@ing.puc.cl> for reporting this.
-
- * ace/Synch.h: The parameter name gives warnings when
- instantiating templates. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for reporting this.
-
- * ace/Process: Changed the definition of the get_pid() method to
- getpid() to avoid a conflict with Irix. Thanks to Gonzalo
- Diethelm <gonzo@ing.puc.cl> for reporting this.
-
- * ace/Log_Msg.cpp (log): Added another #elif !defined (ACE_WIN32)
- to handle logging for OS platforms that (1) aren't Win32 and (2)
- are versions of UNIX that don't support STREAM pipes. Thanks to
- Gonzalo Diethelm <gonzo@ing.puc.cl> for reporting this.
-
- * ace/Acceptor.cpp (handle_signal): Erased the signum parameter
- name to avoid a nasty warning about arguments not used when
- instantiating templates. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for reporting this.
-
- * ace/OS.h: Added the ACE_Export symbol to the definition of
- ACE_Str_Buf. This makes it compile and link on NT. Thanks to
- Prashant for noticing this (our favorite Win32ism...).
-
- * ace/Thread.h (ACE_Thread): Removed a default argument for one of
- the ACE_Thread::join() wrappers so this won't be ambiguous with
- the other join() wrapper.
-
- * ace/OS: Added a new wrapper for strtok_r().
-
-Sun Sep 29 16:12:01 1996 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * netsvcs/lib/: Renamed the project file for Win32 from lib.mdp to
- netsvcs.mdp. Also the original project file did not include some
- files such as Naming_Handler.cpp and Server_Logging_Handler.cpp
- and I fixed that. Finally removed two files System_Time.{h,cpp}
- which are already present in ace/.
-
-Sat Sep 28 16:34:56 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS: Added a new overloaded select() method that takes a
- const ACE_Time_Value &. This is useful for situations where you
- are passing in ACE_Time_Value::zero.
-
-Fri Sep 27 16:20:46 1996 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu>
-
- * ace/ACE: Added a fix for the fact that VxWork's write() call
- doesn't take a const char *.
-
- * ace: Started adding support for VxWorks and GreenHills compiler,
- e.g., added the config-vxwork-ghs-1.8.h file. Thanks to David
- Levine <levine@cs.wustl.edu> for getting this rolling!
-
-Thu Sep 26 00:15:46 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Timer_Queue: Changed the public interface methods to be
- virtual in order to make it possible to override them in
- subclasses. This makes it feasible to implement different types
- of Timers.
-
- * ace/OS: Added a wrapper for the strspn() string call. Thanks to
- Irfan for noticing this omission.
-
- * ace/Synch_T.cpp (wait): Changed the line:
-
- return ACE_OS::cond_wait (&this->cond_, this->mutex_);
-
- to
-
- return ACE_OS::cond_wait (&this->cond_, &this->mutex_.lock_);
-
- Thanks to Dieter Quehl <dietrich.quehl@med-iss1.med.siemens.de>
- for noticing this.
-
- * ace/config-sunos5.4-g++.h: Removed the #define for
- ACE_HAS_BROKEN_RANDR and replaced the ACE_HAS_SVR4_SIGNAL_T with
- ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES since it looks like the
- latest gcc release (2.7.2) fixes this in their own header files.
-
-Sat Sep 21 10:45:43 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Added a new #define called ACE_HAS_BROKEN_MSG_H to the
- config-osf1-3.2.h file and used it in OS.h to work around
- problems with <msg.h> prototypes on that platform.
-
-Fri Sep 20 00:15:29 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Released version 4.0.31 for testing.
-
- * ace/Pipe.cpp: Initialize handles_ to ACE_INVALID_HANDLE in
- default constructor. Thanks to Tim Harrison for pointing this
- out.
-
- * ace: Copied in new versions of ace.{mak,mdp} for Win32.
-
- * ace: Added TTY_IO.cpp to the Makefile.
-
- * ace/config-win32-msvc[24].0.h: Updated the config file so that
- it *doesn't* #define ACE_HAS_STRBUF_T since this type clearly
- isn't available on Win32!
-
- * ace: Modified all of OS.i and config-*.h files so that they
- would be consisten with respect to handling the size_t and int
- differences in socket implementations. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for helping with this for AIX.
-
- * ace/ACE.h (ACE): Added a new method called max_handles() that
- returns the maximum number of open handles currently supported
- by the process.
-
- * examples/Reactor/Misc/signal_tester.cpp: Revised the test to
- utilize the new idioms for programming with signals.
-
- * ace/OS.h: added a new #define called ACE_DEV_NULL that defaults
- to "/dev/null" on UNIX and "nul" on NT. Thanks to David Trumble
- <trumble@steosf.nio.dec.com> for reporting this fix.
-
- * ace/Log_Msg.cpp: Added some checks to make sure that we don't
- try to strdup() if we are passed a NULL pointer. Thanks to Luca
- for suggesting this.
-
- * ace/OS: Move ACE_Str_Buf into OS.{h,i} and remove the Str_Buf.h
- file.
-
- * Makefile: Added the "performance-tests" directory to the list of
- directories we build when making ACE.
-
- * ace: Moved the definition of strbuf from Str_Buf.h into OS.h.
- Thanks to Irfan for recommending this.
-
- * ace/Makefile: Added some additional sed magic on the
- Svc_Conf_y.cpp file in order to remove the very last warnings
- from MSVC++!
-
-Thu Sep 19 00:00:17 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp (open): Only initialize the logger to use
- STDERR if the user hasn't already set the ACE_Log_Msg::flags().
- Thanks to Tom Leith <trl@icon-stl.net> for suggesting this.
-
- * ace/OS: Removed all traces of the ACE_HAS_INT_SOCKNAME and
- ACE_HAS_LENPTR_SOCKOPT since Chris Lahey's new fixes for AIX
- obviate the need for these.
-
- * ace/OS.i: Only #include <rpc/rpc.h> if the platform has RPC!
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for suggesting
- this.
-
- * ace: Removed all uses of ACE_HAS_SETOWN and replaced them with
- explicit tests for F_SETOWN and FASYNC. This is more portable.
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for suggesting
- this.
-
- * ace/OS: Added a new #define called ACE_HAS_SIZET_SOCKET_LEN to
- handle platforms where the length parameter of bind(),
- connect(), accept(), etc. uses size_t rather than int. This
- helps to get ACE working on MVS. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for suggesting this.
-
- * ace/OS: Added Chris Lahey's fixes that make the
- getprotoby{name,number}_r() functions work for AIX.
-
- * ace: Changed the ACE_HAS_STRUCT_HOSTENT_DATA to
- ACE_HAS_STRUCT_NETDB_DATA because we use a single symbol to
- refer to all of the odd netdb.h stuff that AIX has...
-
- * ace: Changed all uses of:
-
- iovec *iovp = (iovec *) alloca (total_tuples * sizeof *iovp);
-
- to
-
- iovec *iovp = (iovec *) alloca (total_tuples * sizeof (iovec));
-
- to keep the AIX compiler from complaining (falsely) about using
- iovp before it is initialized. Thanks to Chris Lahey for
- reporting this.
-
- * ace/OS.h: Added Chris Lahey's changes that handle AIX's
- _XOPEN_EXTENDED_SOURCE features without polluting all the socket
- implementations!
-
- * ace/Thread.cpp (spawn_n): Removed an unreferenced local variable
- so that the Win32 compiler doesn't complain.
-
- * ace/OS.h: Added the definition for strbuf{} for NT.
-
- * ace: Removed the msg_hack.h file since it had OSF and DEC
- copyright info in it. Replaced this with Antonio Tortorici's
- <antonio@rh0011.roma.tlsoft.it> clever use of _KERNEL and the
- new ACE_LACKS_SYSV_MSQ_PROTOS.
-
- * ace/INET_Addr.h: Updated the documentation to indicate more
- clearly the use of getservbyname().
-
- * ace/OS.cpp (thr_create): Added basic hooks to support the use of
- AfxBeginThread on Win32. This is necessary to allow ACE to work
- seemlessly with MFC applications. Added an THR_USE_AFX flag
- that can be "or'd" in with the other thread flags in calls to
- ACE_OS::thr_create(). If this flag is enabled *and* if we are
- compiling with ACE_HAS_MFC enabled, then AfxBeginThread() is
- called rather than _beginthreadex().
-
- * ace/INET_Addr.h (set): Fixed a typo in the documentation for
- set() (the order of "host:port" was backwards...). Thanks to
- Brad Flood <BFLOOD@tcs.lmco.com> for reporting this.
-
-Wed Sep 18 00:36:01 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_IO.cpp: Added a new recv() method that allows a client
- to read from a socket without having to provide a buffer to
- read. This method determines how much data is in the socket,
- allocates a buffer of this size, reads in the data, and returns
- the number of bytes read. The caller is responsible for
- deleting the memory. Thanks to Luca Priorelli
- <lucapri@mbox.vol.it> for suggesting this.
-
- * ace/OS.h: Added a special #ifdef for IRIX 6.2 threads so that
- THR_BOUND and THR_SCOPE_SYSTEM are different. Thanks to Gonzalo
- Diethelm <gonzo@ing.puc.cl> for reporting this.
-
- * ace/Message_Block.i (msg_class): Added a new "class" of messages
- to ACE_Message_Block: MB_USER. This is useful for writing
- extensible applications a la Microslush Windows MSG stuff...
-
-Tue Sep 17 16:38:44 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Block: Changed the signature of the
- ACE_Message_Block constructors (and init()) so that they take
- const char * rather than char *. In addition, changed the
- definition of one of the constructors (and init()) so that it
- takes a size field in addition to the buffer.
-
- * ace/Message_Block.cpp (size): Fixed a bug in the
- ACE_Message_Block::size() method -- we were failing to deal with
- allocators and ownership correctly during a resize. Thanks to
- Amos Shapira <amos_shapira@mail.icomverse.com> for reporting
- this.
-
- * ace/Naming_Context.cpp: Removed the source of yet another
- warning about "inconsistent dll linkage. dllexport assumed."
-
- * ace/Mem_Map.cpp (map_it): Added a cast to size_t (file_len)
- because by this time we know that file_len >= 0. This avoids
- yet another warning on WinNT!
-
- * ace/Reactor.h: Fixed the remaining warnings about
- "signed/unsigned mismatch" in Win32 by changing the type of
- cur_size_ from size_t to ssize_t.
-
- * ace/Log_Msg.cpp: Modified the code so that on NT we use
- ACE_SPIPE_Msg rather than ACE_FIFO_Send_Msg. Thanks to Luca
- Priorelli <lucapri@mbox.vol.it> for suggesting this.
-
- * ace/OS.i: Implemented the and put[p]msg() wrappers by being
- smart about allocating and copying data.
-
- * ace/TTY_IO.cpp (control): There was one too many end parentheses
- on line 192 of TTY_IO.cpp. Thanks to Dave Trumble
- <trumble@steosf.nio.dec.com> for reporting this fix.
-
- * ace/Log_Msg.cpp (local_host): Fixed the use of program_name_ and
- local_host_ so that they strdup() the values passed by the
- users, rather than copying pointers. This avoids problems if
- the user doesn't pass in static memory. Thanks to Luca
- Priorelli <lucapri@mbox.vol.it> for reporting this. Somehow
- this change got lost and I've reapplied it...
-
- * ace/Log_Record.cpp (round_up): Added an extra + 1 to the length
- since otherwise the final '\0' gets lots if len is a multiple of
- 8. Thanks to Luca Priorelli <lucapri@mbox.vol.it> for reporting
- this. Somehow this change got lost and I've reapplied it.
-
- * ace/Memory_Pool.h: removed #if defined (ACE_HAS_SIGINFO_T) logic
- from both handle_signal() definitions (ACE_Shared_Memory_Pool
- and ACE_MMAP_Memory_Pool). Thanks to Chris Lahey for fixing
- this.
-
- * ace/OS.h: Moved the define of SA_RESTART below the #include for
- signal.h. Otherwise SA_RESTART will always be defined by OS.h,
- since SA_RESTART is defined on AIX in signal.h. Thanks to Chris
- Lahey for fixing this.
-
- * ace/OS.h: Added some new #pragmas to suppress harmless warnings
- for the MSVC++ compiler.
-
-Tue Sep 17 13:20:53 1996 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * ace/Local_Name_Space_T.cpp: Modified ACE_Local_Name_Space::
- create_manager () so that all three naming scopes use the
- database variable defined in Name Options. This allows us to
- specify different names for databases for all three naming
- contexts. However, it is imporant to note that this can lead to
- potential problems where, for example, a process may use the
- same name for PROC_LOCAL database as an already existing
- NET_LOCAL database.
-
-Mon Sep 16 01:31:21 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Logger/simple-server/Logging_Handler: get_handle(),
- handle_input(), and handle_close() want the right types
- (ACE_HANDLE instead of int). Thanks to Luca Priorelli
- <lucapri@mbox.vol.it> for reporting these.
-
- * examples/Logger/simple-server/Logging_Acceptor.cpp: Fixed a typo
- (Log_Mskg.h should be Log_Msg.h of course...). In addition,
- changed the use of -1 to ACE_INVALID_HANDLE. Thanks to Luca
- Priorelli <lucapri@mbox.vol.it> for reporting these.
-
-
- * ace: Changed all uses of ACE_HAS_ACE_INLINED_OSCALLS to
- ACE_HAS_INLINED_OSCALLS. This was a vestiage of a global
- replace gone amok. Thanks to Alan Stweart <Axs2@osi.com> for
- reporting this!
-
- * ace/Log_Msg.cpp (open): Added a check for the OSTREAM flag in
- the ACE logger. Thanks to Rick Orr
- <rorr@costello.den.csci.csc.com> for noticing this.
-
- * Released version 4.0.30 for testing.
-
- * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp
- (Dump_Restore): Deleted an extra "return 0;" within a
- constructor (duh...).
-
- * examples/Threads/test_process_{semaphore,mutex}.cpp (main):
- Fixed some annoying G++ compiler bug related problems. We need
- to use old-style C casts to prevent ambiguous parsing.
-
- * examples/ASX/Event_Server/Transceiver/transceiver: Rewrote this
- example to illustrate how to use the ACE_Connector and
- ACE_Svc_Handler.
-
- * examples/ASX/Event_Server/Transceiver/transceiver: Finally clued
- in and realized that it is just not suitable to implement the
- event server transceiver with separate threads for input and
- output. It is simply to non-portable to get these shut down
- gracefully. I think John Ousterhout was right -- threads are
- evil!
-
- * examples/ASX/Event_Server: Merged the Consumer/Supplier
- directories into a single Transceiver directory to reflect the
- fact that the Consumer and Supplier were completely symmetrical!
-
- * ace/Module.cpp (close): Don't delete the Tasks in a Module if
- there are still threads running in them. Otherwise we'll end up
- with a big mess.
-
-Mon Sep 16 15:50:45 1996 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * performance-tests/Misc/test_naming.cpp: Added a new test to the
- performance-tests directory called test_naming which simply does
- performance testing on Naming Service. The test runs both the
- SYNC and the NO-SYNC version of Naming Service.
-
-Mon Sep 16 15:22:52 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Proactor.cpp (initiate): Added a check for
- ERROR_NETNAME_DELETED after ReadFile/WriteFile. Now the
- initiating handler is immediately dispatched for EOF *and*
- closed connections. Thanks to Luca Priorelli
- <lucapri@mbox.vol.it> for suggesting this change.
-
-Sun Sep 15 00:55:59 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Fixed all uses of ACE_Service_Config::end_event_loop() and
- ACE_Service_Config::run_event_loop() to be
- ACE_Service_Config::end_reactor_event_loop() and
- ACE_Service_Config::run_reactor_event_loop() since we now have
- to consider the other event loops (e.g., Proactor and ReactorEx)
- and it doesn't seem right to relegate those to 2nd class status.
-
- * ace: Finally got fed up with all the #ifdefs required to deal
- with extended signals and just changed the
- ACE_Event_Handler::handle_signal() method to always use the
- extended signal interface. Fortunately, we can use default
- values to hid this from callers (though you may need to change
- your class definitions if you were assuming the
- handle_signal(int) interface.
-
- * ace/Memory_Pool.h: Changed all the methods of the various
- Memory_Pool classes to be virtual so that subclasses can
- selectively override them. This shouldn't affect performance
- since all existing use cases work directly with the "derived"
- classes themselves, so there shouldn't be any overhead since the
- compiler can use direct calls rather than virtual function
- calls.
-
- * ace/OS.cpp (thr_create): Changed the call to CreateThread() to
- _beginthreadex() and the call to ExitThread() to _endthreadex()
- for Win32 in order to make ACE threads work correctly with
- Win32. Thanks to James Mansion <james@wgold.demon.co.uk> for
- recommending this.
-
- * ace/ACE: Added two new static functions: read_adapter() and
- register_stdin_handler(). These are useful when writing code
- that must demultiplexing ACE_STDIN on both Win32 and UNIX. This
- works around Win32 limitations that don't allow us to select()
- on non-sockets (such as ACE_STDIN).
-
- * examples/ASX/CCM_App/SC_Server.cpp: Updated this
- test so that it should now work correctly on Win32, where it
- isn't possible to select() on STDIN...
-
- * ace/Synch_T: Added a new class to ACE called "ACE_Test_and_Set."
- As this name implies, this class implements an atomic ``test and
- set'' abstraction. This has all sorts of useful implications,
- particularly because it is a template that can be paramaterized
- by the type of LOCK (e.g., ACE_Null_Mutex, ACE_Thread_Mutex,
- etc.) and the type of TYPE (e.g., int, double, sig_atomic_t,
- etc.). In addition, because this "is-a" ACE_Event_Handler it
- instances can be registered with the Reactor and used to shut
- down event hoops gracefully upon receipt of certain signals
- (e.g., SIGINT). In fact, I've redone many of the example
- applications (e.g., ./examples/Logger/server/server_loggerd.cpp)
- to illustrate how this works.
-
-Sun Sep 15 20:40:17 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/ReactorEx.cpp (notify): I've redesigned this code.
- Previously, ReactorEx was explicitly managing a handle that it
- kept in handles_[0]. handles_[0] was used to implement
- ReactorEx::notify, which allowed other threads to wake up the
- thread waiting in ReactorEx::handle_events. Now ReactorEx has
- an Event_Handler (ReactorEx_Notify) that is registered in the
- constructor of ReactorEx. This allows us to treat events from
- handles_[0] just like every other event (i.e. by dispatching to
- handles_[0]->handle_signal). One of the results of this change
- is that code in remove_handler() is simplified a bit.
-
-Sun Sep 15 17:56:52 1996 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * ace/Naming_Context.cpp: Added a new flag to the constructor and
- open() method of ACE_Naming_Context that allows us to specify
- which Memory_Pool to use when creating ACE_Local_Name_Space
- (that is choose between ACE_MMap_Memory_Pool and
- ACE_Lite_MMap_Memory_Pool).
-
- * ace/Memory_Pool.cpp: Added a new class called
- ACE_Lite_MMap_Memory_Pool which subclasses ACE_MMap_Memory_Pool
- and overrides the sync method so that it is a no-op.
-
- * ace/Local_Name_Space.cpp: Made some siginificant changes in
- ACE_Local_Name_Space. Here is what the problem was:
- ACE_Name_Space_Map (which is an ACE_Map_Manager) used an
- ACE_RW_Process_Mutex for synchronization. However, since the Map
- was kept in shared memory and was shared by all the processes,
- it got instantiated only by the first process which came
- along. Therefore, only the first process got around to creating
- and initializing the lock.
-
- In fixing the problem, we made some other changes to
- ACE_Local_Name_Space and ACE_Name_Space_Map. Both classes are
- now template classes. ACE_Local_Name_Space needs to be
- parameterized with a Memory_Pool (thus giving us a hook to
- implement the NO-SYNC option) as well as a LOCK.
- ACE_Name_Space_Map needs to be parameterized by an ALLOCATOR
- which is created by ACE_Local_Name_Space. Note that the reason
- we need to parameterize ACE_Name_Space_Map is so that we can
- pass an ACE_Allocator_Adapter (which subclasses from
- ACE_Allocator) with every method. It is not possible to pass an
- ACE_Allocator since the ::remap() method relies on an
- allocator() method defined on the ALLOCATOR that is passed in
- (and ACE_Allocator does not define an allocator() method).
-
- The purpose of the class ACE_Name_Space_Map still remains the
- same. It IS_A Map_Manager and provides the hook to set the
- allocator to the process specific one. However, none of its
- methods acquire any locks. For that reason, the Map_Manager is
- parameterized with the Null_Mutex. All synchronization takes
- place inside ACE_Local_Name_Space. ACE_Naming_Context
- instantiates ACE_Local_Name_Space (depending upon the scope) and
- by default parameterizes it with ACE_MMap_Memory_Pool and
- ACE_RW_Process_Mutex.
-
- Also made some more fixes to ACE_Local_Name_Space. In
- create_manager(), after we create the allocator, we now check to
- see if the backing store was created successfully and if not, we
- return -1.
-
-Sat Sep 14 00:00:31 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Logger: Renamed the original server directory to
- "simple-server" and added a new directory called
- "Acceptor-server" which implements the Logger using the
- ACE_Acceptor. Note that almost all of the implementation code
- disappears!
-
- * ace/Local_Name_Server_T.cpp: Removed the name_server_map_ array
- and replaced it with the ACE_NAME_SERVER_MAP #define, which is
- now contained in OS.h.
-
- * ace/Malloc.h: Added "virtual ... = 0" to the bind() and
- trybind() methods of the ACE_Allocator since they should be pure
- virtual functions...
-
- * ace/Synch{_T}: Separated out the wait (ACE_Time_Value *) and
- wait (void) methods in order to optimize the call sequence for
- the common case when there is no timeout.
-
- * ace/Synch: Added a new wait(ACE_Thread_Mutex &) method to
- ACE_Condition_Thread_Mutex so that we are consistent with the
- templated ACE_Condition_Mutex.
-
- * include/makeinclude: Changed uses of -pic to -PIC because ACE is
- now creating more than 2082 symbols. It's probably time to
- split up the library...
-
- * ace/DEV_IO: Moved the ACE_DEV_Addr instance from ACE_DEV_IO into
- ACE_DEV so that it will be available for the ACE_DEV_Connector.
- This fixes a bug that prevented us from using the ACE_Connector
- in conjunction with the ACE_DEV_* classes. Thanks to Karlheinz
- for clarifying what had to occur.
-
-Fri Sep 13 00:16:32 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Changed the order of #includes so that <assert.h>
- comes before <sys/stat.h>. This fixes some bugs with the
- Siemens SVR4 C++. Thanks to Antonio Tortorici
- <antonio@rh0011.roma.tlsoft.it> for this fix
-
- * ace/ACE.cpp (handle_timed_complete): Added yet another weird
- hack to deal with the insanity that is TLI...
-
- * ace/Synch.cpp: Replaced all uses of ACE_Thread_Mutex_Guard with
- ACE_GUARD macros in order to avoid problems when mutexes fail.
-
- * ace/OS.h: Changed the definition of the ACE_*GUARD macros so
- that they are always enabled, even when we turn off ACE_MT_SAFE.
- This avoids a nasty semantic problem for components that use
- ACE_Process_Mutex. Thanks to Avraham Nash
- <Avraham_Nash@praxisint.com> for reporting this problem.
-
- * ace/OS: Removed ACE_OS::fork_exec() since its functionality has
- been subsumed by ACE_Process.
-
- * ace/Thread_Manager: Added a new thread_descriptor_i() method
- that *doesn't* grab the lock in order to avoid deadlocks.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU (CXX): had to add
- the -pta option so that we achieve template closure in ACE.
-
- * include/makeinclude: Added -lthread to the
- platform_sunos5_sunc++.GNU file. I don't know how this slipped
- through the cracks!
-
- * ace/{DEV_IO,FILE_IO,SOCK_IO,SPIPE_Stream}: Fixed a braino with
- alloca where I was failing to multiply by sizeof (iovec). Isn't
- C great? ... Thanks to Chuck Gehr <gehr@sweng.stortek.com> for
- reporting this.
-
- * ace/SOCK_Dgram_Mcast.cpp: Added two changes to the ACE multicast
- code in order to get it to work on Win32. The first change is
- to put the IP_ADD_MEMBERSHIP setsockopt() call *after* the
- bind() (in shared_open()). The second is to convert the
- ACE_INET_Addr::get_ip_address() from host byte order into
- network byte order. Thanks to Todd L. Montgomery
- <tmont@cerc.wvu.edu> and Steve Weismuller
- <spweismu@rsoc.rockwell.com> for helping with this.
-
- * examples/Threads/test_barrier2.cpp: Incorporated Karlheinz's
- new ACE_Barrier test program.
-
- * ace/Synch.h: Added Karlheinz's ACE_Null_Barrier class.
-
-Fri Sep 13 00:30:50 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * tests/{Tokens_Test,Time_Service_Test}.cpp: Updated tests to use
- ACE_Process instead of ACE_OS::fork_exec.
-
- * ace/Process.cpp: Added a new ACE_Process abstraction that is a
- Portable encapsulation for creating new processes. It allows
- assignment of STDIN, STDOUT, and STDERR of the new process. On
- UNIX, ACE_Process uses fork and exec. On Win32, it uses
- CreateProcess. Since we can set the standard handles, we can
- mimic UNIX pipes on Win32 by building chains of processes. This
- class should be used instead ACE_OS::fork_exec.
-
- * examples/OS/Process/process.cpp (main): Added new example
- application to show how to use ACE_Process.
-
-Thu Sep 12 00:55:25 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/DEV_IO: Added methods get_local_addr() and get_remote_addr()
- so that ACE_Connector will work correctly. Thanks to Brad Flood
- <BFLOOD@tcs.lmco.com> for reporting this.
-
- * ace/Thread_Manager.cpp (thr_self): Added a fix to solve the
- problem that Win32 GetCurrentThread() returns a pseudo-handle
- rather than a real handle. Now, we just look things up using
- the thread id rather than the thread handle. Thanks to Luca
- Priorelli" <lucapri@mbox.vol.it> for clarifying this.
-
- * ace/Proactor.cpp (initiate): Fixed an incorrect set of return
- values -- they were reversed. Thanks to Brad Flood
- <BFLOOD@tcs.lmco.com> for reporting this.
-
- * ace/OS.i (thr_cmp): Added a check for
- !defined(ACE_HAS_SETKIND_NP) to avoid a problem with OSF/1.
- Thanks to Martin Schoeckle <schoeckle@ike.uni-stuttgart.de> for
- reporting this.
-
- * examples/IPC_SAP/DEV_SAP: Updated these examples to use the new
- ACE_TTY_IO classes.
-
- * ace: Moved the TTY_IO code from the
- examples/IPC_SAP/DEV_SAP/{reader,writer} directories into the
- files TTY_IO.{h,cpp} in the main part of ACE and integrated Brad
- Flood's <BFLOOD@tcs.lmco.com> changes for Win32.
-
- * ace/DEV_IO.i: Changed the mapping of send_n() and recv_n()
- methods to use write_n() and read_n() respectively so they will
- work on NT. Thanks to Brad Flood <BFLOOD@tcs.lmco.com> for
- reporting this.
-
- * ace/Thread_Manager.h: Implemented a non-synchronized version of
- the lookup function for the <hthread_descriptor>. This version
- assumes that the lock is help. We need this to avoid
- intra-class method deadlock on systems (such as Solaris) that
- lack recursive mutexes.
-
- * ace/Log_Msg.cpp (ACE_Log_Msg): made sure to initialize
- ACE_Log_Msg::thr_handle_ to 0. I'm not sure how this got
- changed... Thanks to Luca Priorelli <lucapri@mbox.vol.it> for
- reporting this.
-
- * examples/Reactor/ReactorEx/test_reactorEx.cpp
- (register_thread_exit_hook): Changed hthread_t to ACE_hthread_t.
- Thanks to Luca Priorelli <lucapri@mbox.vol.it> for reporting
- this.
-
- * apps/Gateway/Gateway/Channel.h: 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 in
- conjunction with select(). Therefore, I've #if 0'd out the use
- of TLI in the Gateway application.
-
-Wed Sep 11 00:25:38 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.cpp (handle_timed_complete): Fixed a typo that was
- failing to set n = ACE::recv(...). In addition, rethought how
- we figure out if a connection completes for the nth time...
-
- * ace/TLI.cpp (open): Modified the implementation of open() so
- that if oflag == 0 it is given an initial value of O_RDWR.
- Otherwise we'll get a "badflags" t_errno.
-
- * ace/Connector.h (connect): Modified connect() so that the
- default value of the flags parameter is O_RDWR. This is
- necessary to make TLI_Connector::connect() work correctly by
- default.
-
- * examples/Logger: Updated the example logger client and server to
- illustrate more clearly how things like the Singleton Reactor
- and the ACE_Reactor timer mechanism work. Thanks to Joe
- DeAngelis <bytor@faxint.com> for suggesting this.
-
- * ace/Pipe: Added a new constructor that makes it possible to
- initialize the <ACE_Pipe> from the <read> and <write> handles.
- Thanks to Stevan Warwick (sjw@aesthetic.com) for suggesting
- this.
-
- * config-irix5.3-sgic++.h: Added #define for ACE_NEEDS_SYSTIME_H.
- Thanks to Stevan Warwick (sjw@aesthetic.com) for reporting this.
-
- * examples/Logger/server/Client_Acceptor: Fixed some stray
- mis-uses of int that should have been ACE_HANDLE. Thanks to
- Luca Priorelli" <lucapri@mbox.vol.it> for reporting this.
-
- * ace/{ACE,Log_Msg}.cpp: Added fixes for hexdump(). Thanks to
- Luca Priorelli" <lucapri@mbox.vol.it> for supplying these.
-
- * ace/Reactor.cpp (ACE_Reactor): Fixed a typo: "this->max_handlep1
- ()" should be "this->handler_rep_.max_handlep1 ()". Thanks to
- Scott Shupe <shupes@mitre.org> for reporting this.
-
- * apps/Orbix-Examples/Event_Comm: Added a bunch of changes to make
- this application compile with Orbix 2.0. Thanks to Mike
- O'Malley <momalley@caesun16.msd.ray.com> for the fixes.
-
- * ace/OS.cpp (thr_create): Added yet another fix for the IRIX 6.2
- pthreads implementation. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for reporting this.
-
- * ace/config-irix6.2-sgic++.h: Changed ACE_HAS_IRIX53_GETTIMEOFDAY
- to ACE_HAS_IRIX_GETTIMEOFDAY because this also seems to be the
- case for IRIX 6.2... Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for reporting this.
-
- * ace/TLI_{Connector,Acceptor}.cpp: Added tests against NULL
- pointers to avoid segmentation faults when the TLI
- implementation doesn't allocate memory for the udata and opt
- fields of netbuf structures.
-
- * ace/Mem_Map.i (ACE_Mem_Map): Added an accessor so that callers
- can get the name of the filename that is being used as the
- backing store. Thanks to the James Mansion
- <james@wgold.demon.co.uk> for recommending this.
-
-Tue Sep 10 00:26:52 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): Modified the thr_create()
- implementation for Win32 so that if the caller doesn't care
- about this value we can avoid a HANDLE leak. Thanks to the
- James Mansion <james@wgold.demon.co.uk> for recommending this.
-
- * ace/Thread.cpp (ACE_Thread): Moved both definitions of spawn_n()
- into the Thread.cpp since they have loops and don't benefit from
- being inlined.
-
- * ace/Svc_Handler.h: Moved operator delete() into the public part
- of the class in order to make various compilers happy...
-
- * ace/OS.i (ACE_OS): Fixed the #define that selects the (union
- wait *) alternative of wait(). This original was protected by
- ACE_LACKS_POSIX_PROTO, but it should be ACE_HAS_UNION_WAIT.
-
- * performance-tests: Created a new directory that will contain all
- of the ACE performance tests. Move the Synch-Benchmarks and the
- TTCP tests from ./apps into here, and also moved the
- test_mutex.cpp and test_singleton.cpp files from
- ./examples/{Threads,Misc}, respectively. Thanks to Tim Harrison
- for this suggestion.
-
- * ace/OS.i (ACE_OS): in WIN32 closesocket() returns 0 if call is
- OK, so I changed the return value to be the other way around.
- Thanks to Luca Priorelli <lucapri@mbox.vol.it> for reporting
- this.
-
- * ace: Changed the ACE_NO_POSIX_PROTO #define to something more
- meaningful: ACE_LACKS_POSIX_PROTO. Thanks to Jonathan Biggar
- <jon@sems.com> for suggesting this.
-
- * ace/config-sunos4-g++.h: Added the #define ACE_NEEDS_SYSTIME_H.
- Thanks to Alexandre Karev <akg@na47sun05.cern.ch> for reporting
- this.
-
- * ace/OS: Fixed a bunch of pthreads portability problems that
- showed up on OSF/1 4.0. Also added support for asctime_r() and
- ctime_r() for OSF/1 4.0. Thanks to Dave Trumble
- <trumble@steosf.nio.dec.com> for reporting these fixes.
-
- * ace/Synch_T.cpp (ACE_TSS_Read_Guard): Removed a stray "new" that
- was causing problems for the ACE_NEW macro. Thanks to Dave
- Trumble <trumble@steosf.nio.dec.com> for reporting this.
-
- * ace/Local_Tokens.h: Fixed a broken use of "friend", which was
- missing the keyword "class." Thanks to Dave Trumble
- <trumble@steosf.nio.dec.com> for reporting this.
-
- * ace/config-osf1-4.0.h: Included Dave Trumble's
- <trumble@steosf.nio.dec.com> config file for OSF/1 4.0.
-
- * include/makeinclude/platform_osf1_4.0.GNU: Included Dave
- Trumble's <trumble@steosf.nio.dec.com> platform macros file for
- OSF/1 4.0. Also renamed platform_osf1.GNU to
- platform_osf1_3.2.GNU to deal with the new version.
-
- * ace/Proactor: There wasn't a way to destroy an
- ACE_Overlapped_File object without closing the ACE_HANDLE
- attached to it. Therefore, I added a flag that keeps track of
- whether we have to delete this or not. Thanks to Amos Shapira
- <amos_shapira@mail.icomverse.com> for suggesting this.
-
- * examples/Threads/test_future[12].cpp: Updated the tests to use
- the new call() semantics in order to shut down the Scheduler's
- event loop gracefully.
-
- * ace/Method_Object.cpp: Added a return value to the call()
- routine. This can be used to indicate to the caller that it is
- necessary to shut down the event loop.
-
-Mon Sep 9 02:07:08 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp (ACE_Service_Config): #ifdef's out the
- registration of signal handling to control reconfiguration on
- Win32 since it doesn't really handle signals very well. Thanks
- to John Morey <jmorey@tbi.com> for bringing this to my
- attention.
-
- * ace/CORBA_Handler: Replaced CORBA_[123] with ACE_CORBA_[123].
-
- * examples/CORBA: Updated the test programs to work portably
- across different versions of Orbix.
-
- * ace/OS: Added a new wrapper for the getcwd() call.
-
- * examples/Threads/test_recursive_mutex.cpp: Added the use of
- ACE_Guard<> to illustrate how these work with the
- ACE_Recursive_Thread_Mutex. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for motivating me to do this.
-
- * examples/Threads/test_process_{mutex,semaphore}: Added two new
- tests to illustrate how the ACE_Process_Mutex and
- ACE_Process_Semaphore work, respectively.
-
- * ace/Synch: Replaced the implementation of ACE_Process_Semaphore
- to use SV_Semaphore_Complex on UNIX platforms in order to get
- the same semantics for Win32 and for UNIX. Thanks to the James
- Mansion <james@wgold.demon.co.uk> for recommending this.
-
- * ace/OS.h: Added some parens around the ACE BIT* macros so that
- the precedence levels would be dealt with correctly and we don't
- get any nasty surprises...
-
- * ace/{Synch_T,Synch}: Modified the implementation of all the
- *acquire()/release() methods so they keep track of whether they
- own the mutex. Thus, if a code path needs to give up the mutex
- within the lifetime of the mutex, and it calls mutex_.release(),
- then the destructor will not call it again. Thanks to the James
- Mansion <james@wgold.demon.co.uk> for recommending this.
-
- * ace/{Synch_T,Synch}: Changed the name of the field result_ to
- owner_ for the ACE_Thread_Muetx_Guard and ACE_Guard. This is
- more representative of the true purpose of this field.
-
- * ace/Synch: Updated ACE_Thread_Mutex_Guard so that it has the
- same interface and semantics of ACE_Guard. Thanks to the
- ever-vigilant James Mansion <james@wgold.demon.co.uk> for
- noticing this.
-
- * examples/Log_Msg/test_log_msg.cpp (main): Added a test of the
- new ACE_Log_Msg::priority_mask() functionality.
-
- * ace/Log_Msg.cpp: Added a new method called priority_mask(),
- which updates the new thread-specific priority_mask_ data member
- with the new mask and returns the old mask. This is useful for
- applications written using ACE_Log_Msg. Often, these have log()
- calls with low priority such as LM_DEBUG that don't need to be
- printed, but for which the logging code should not be removed.
- The priority_mask() scheme makes it possible to selective enable
- printing of certain priorities. Thanks to Rochi Febo Dommarco
- <rocky@alter.it> for suggesting this.
-
- * netsvcs/clients/Logger/indirect_logging.cpp (main): Modified the
- test program so that it randomly selects logging priorities that
- are powers of two.
-
- * ace/Log_Priority.h: Renumbered the LM_* logging flags so that
- they are all powers of two. This makes it easy to implement a
- scheme for selectively printing only certain logging values.
-
-Sun Sep 8 10:46:40 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Proactor.cpp: Fixed up the error handling in ACE_Proactor so
- that it returns an error both in case of "bad errors," as well
- as when ACE_WIN32 isn't defined. Thanks to Amos Shapira
- <amos_shapira@mail.icomverse.com> for reporting this.
-
-Sun Sep 8 14:11:08 1996 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * examples/Reactor/Proactor/README: Updated the test_proactor.cpp
- and README files to clarify the relationship between the
- Proactor and ReactorEx. This example uses the Proactor as the
- main event loop (not the Reactor or ReactorEx). Thus, this
- application can only do overlapped I/O and timers
- asynchronously. To be able to react to other Win32 events, see
- the ACE_ReactorEx and the examples/Reactor/ReactorEx/ test.
- Thanks to Amos Shapira <amos_shapira@mail.icomverse.com> for
- pointing out the ambiguity.
-
-Sat Sep 7 14:09:21 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Task.cpp: Enhanced the activate() method so that the caller
- can set the priority and the thread group id. Thanks to
- Karlheinz for this suggestion.
-
- * ace/OS.h: Added default values of 0 for the trailing arguments
- for the {mutex,sema,cond}_init() methods.
-
- * examples/Threads/test_mutex.cpp: Added a new test program that
- illustrates the difference between implementations of thread
- mutex wrappers that use inheritance and dynamic binding vs. the
- ACE approach (which doesn't use inheritance and dynamic
- binding). The results I got on my SPARCstation 20 model 712 is
- included in the source file. Thanks to James Mansion
- <james@wgold.demon.co.uk> for motivating me to write this.
-
- * examples/Misc/test_singleton.cpp: Added a new test program that
- illustrates the performance of using the Double-Checked Locking
- pattern compared with the standard "Mutex::acquire()/release()"
- approach. Thanks to Jim Coplien <cope@research.bell-labs.com>
- for encouraging me to get these performance numbers.
-
-Tue Sep 3 00:38:47 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/XtReactor: Added minor fixes to XtReactor to fix complaints
- about "bool" not being defined and the destructor
- ~ACE_XtReactor() has already having a body. Thanks to Andres
- Kruse <Andres.Kruse@cern.ch> for these fixes.
-
- * ace/Mem_Map.cpp: Make sure that this->length_ is initialized to
- 0 in ACE_Mem_Map::map (). Thanks to James Mansion
- <james@wgold.demon.co.uk> for pointing this out.
-
- * ace/Thread.i (spawn_n): In ACE_Thread::spawn_n the sense of the
- following check is wrong:
-
- for (i = 0; i < n; i++)
- // Bail out if error occurs.
- if (ACE_OS::thr_create (func, arg, flags, &t_id, 0, priority,
- stack == 0 ? 0 : stack[i],
- stack_size == 0 ? 0 : stack_size[i]) != 0)
- thread_ids[i] = t_id;
- else
- break;
-
- The '!=' should be '=='. Thanks to James Mansion
- <james@wgold.demon.co.uk> for pointing this out.
-
- * include/makeinclude/rules.local.GNU (MAKEFILE): Changed the
- $WRAPPER_ROOT/include/makeinclude/rules.local.GNU line that
- says:
-
- sed -e "s:$(WRAPPER_ROOT);$$(WRAPPER_ROOT);g" \
-
- so that the double dollar is now "\$$" (prefixed the first
- dollar sign with a backslash). If not, my shell will try to
- execute WRAPPER_ROOT for some reason. With "\$$" it works as it
- should. Thanks to Marius Kjeldahl <marius@funcom.no> for
- reporting this.
-
- * Released version 4.0.29 for testing.
-
- * ace/OS.i (thr_getspecific): Added a new case for OSF/1. Thanks
- to Martin Schoeckle <schoeckle@ike.uni-stuttgart.de> for
- reporting this.
-
- * ace/Thread_Manager.cpp (spawn_i): Removed an invalid
- initialization of ACE_hthread_t = 0, which doesn't work on all
- pthreads platforms because pthreads uses a struct in some
- implementations. Thanks to Martin Schoeckle
- <schoeckle@ike.uni-stuttgart.de> for reporting this.
-
- * man: Updated all the nroff and html documentation to conform to
- the latest version of ACE.
-
- * netsvcs/lib/{Name_Handler,TS_Server_Handler}.cpp: Fixed
- some mistakes in the ACE_TEMPLATES_REQUIRE_SPECIALIZATION
- code so that all the services can be linked together without
- multiply defined symbols.
-
- * netsvcs/lib/Name_Handler.cpp: Fixed a spot where we weren't
- passing in an lvalue to send_request(). Why this wasn't showing
- up earlier I don't know, but GCC caught it!
-
-Mon Sep 2 00:47:00 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Thread_Manager.cpp: Updated all comparisons of ACE_thread_t
- and ACE_hthread_t so that they use the ACE_OS::thr_equal() and
- ACE_OS::thr_cmp() methods, respectively. Thanks very much to
- Martin Schoeckle <schoeckle@ike.uni-stuttgart.de> for identify
- the need for this.
-
- * ace/OS: Added a new method called thr_cmp() which compares two
- ACE_hthread_t values for equality. Unfortunately, we can't just
- compare these directly via == because on some platforms they are
- implemented as structs. Right now, I'm assuming that if
- ACE_HAS_TID_T is enabled that we can compare tid_t's using ==.
- If this turns out to be incorrect (e.g., if tid_t's are also
- implemented as structs, please let me know).
-
- * ace/Future: Changed the overloaded result() method to a pair of
- get()/set() methods.
-
- * tests/test_config.h: Fixed a bug in the reset() routine. This
- was originally deleting the global static ace_file_stream.
- However, this was causing segmentation faults if destructors for
- objects local to main() were trying to write to the output file.
- Therefore, instead of deleting the ostream, we simply flush()
- it!
-
- In addition, also renamed the various functions in test_config.h
- to make sure they don't conflict with any other names by
- prefixing them with ace_test_...
-
- * ace: Added many small fixes for IRIX 6.2. Thanks to Gonzalo
- Diethelm <gonzo@ing.puc.cl> for reporting all of these!
-
- * ace/OS: Added a wrapper for the UNIX syscon() system call.
-
- * ace/LSOCK.cpp (recv_handle): Rearranged the casts so that things
- work correctly on platforms with odd definitions ot struct
- iovec. Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl> for
- reporting this.
-
- * ace/Task.cpp (ACE_Task_Exit): Rearranged the order in which we
- shut down a Task via the Task_Exit hook so that we first
- decrement the count of the threads in the task and *then* call
- its close() hook. This guards against cases where the close()
- hook does something crazy like "delete this".
-
- * ace/XtReactor.h: Changed #include "X11/Intrinsic.h" to #include
- <X11/Intrinsic.h>. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for suggesting this.
-
- * ace/Future.cpp (ACE_Future): Added some strategic "consts" to
- the assignment operator and copy constructor for ACE_Future and
- ACE_Future_Rep.
-
- * examples/Threads/test_task_three.cpp (main): Revised the test so
- that it will shut itself down automatically when all the threads
- have finished.
-
- * examples/Threads/test_task_two.cpp (main): Revised this test so
- that it doesn't run forever, but only runs either 1000 times or
- as many times as the user specifies on the command line. Thanks
- to Gonzalo Diethelm <gonzo@ing.puc.cl> for suggesting this.
-
- * ace/OS.i: Added an extra #else for thr_sigsetmask(),
- thr_min_stack(), and thr_kill() for weirdo platforms that don't
- conform to the other threading APIs...
-
-Sun Sep 1 20:15:28 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * examples/ASX/Message_Queue: Changed the use of read(0, ...) and
- write(1, ...) to ACE_OS::read(ACE_STDIN, ...) and
- ACE_OS::write(ACE_STDOUT, ...) in buffer_stream.cpp and
- bounded_buffer.cpp.
-
- * ace/OS.i: Fixed the errno mapping of the cond_timedwait()
- functions so that they set errno to ETIME rather than EBUSY when
- timeouts occur. This is necessary to support Solaris and POSIX
- pthreads semantics on Win32.
-
- * build/SunOS5.5/examples/ASX/Message_Queue/buffer_stream.cpp:
- Modified the example somewhat so that it uses the Singleton
- thr_mgr() method from ACE_Service_Config.
-
-Sun Sep 1 17:29:58 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * ace/ACE.cpp (map_errno): Added a new static method to the ACE
- class. This method allows us to map troublesome win32 errno
- values (e.g. WSAEWOULDBLOCK) to values that standard C strerr
- function understands. Thank you Microsoft.
-
- * ace/Log_Msg.cpp (log): Added a call to ACE::map_errno to the %p
- option. Now the ACE logger can begin to map Win32 error values
- into meaningful strings.
-
- * netsvcs/lib/lib.mdp: Added a project file for the netsvcs
- library. This builds a dll into ace/netsvcs.dll (not into the
- netsvcs/lib directory). This reduces the number of paths needed
- in %PATH%.
-
- * examples/Tokens: Renamed this directory netsvsc/clients/Tokens.
-
- * ace/ace.mdp: Removed wsock32.lib from the ace files listing.
- The problem is that we can't assume where MSDEV is installed. I
- added wsock32.lib and advapi32.lib to the
- build/settings/link/library_modules line.
-
- * ace/config-win32-msvc4.0.h: Disabled the "C4355: 'this' : used
- in base member initializer list" warning. Thanks to Amos
- Shapira for figuring this out for us. Although "this" is
- unneeded for win32, it is required for compilers on other
- platforms (e.g., AIX).
-
- * ace/Message_Queue.cpp (dequeue_head_i): Andres Kruse pointed out
- that we weren't doing head_->prev (0), when dequeuing!
-
-Tue Aug 27 21:00:25 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * include/makeinclude/platform_sunos5_sunc++_4.1.GNU (CXX): Added
- Andres Kruse's changes for SunC+ 4.1.
-
- * ace: Fixed line # 12 of ace/config-sunos4-sun4.1.4.h,
- which read:
-
- "#define ACE_HAS_SVSV_IPC" (ACE_HAS_ ess vee ess vee _IPC)
-
- to
-
- "#define ACE_HAS_SYSV_IPC" (ACE_HAS_ ess wye ess vee _IPC)
-
- Fix another problem:
-
- #define ACE_LACKS_THREAD_STACK_ADDR (OS.cpp)
-
- was inconsistently defined in:
-
- #define ACE_LACKS_THREAD_STACK_ADDRESS (config-aix-4.1.x.h)
-
- Thanks to Alan Stweart <Axs2@osi.com> for reporting
- this!
-
-Mon Aug 26 00:34:05 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Updated all of ACE such that the ACE_GUARD* macros now all take
- the name of the ACE_*Guard* that they will use as the scoped
- locking object. This is important for several reasons:
-
- 1. It make it more clear what is going on in the code, rather
- than hiding behind the macros!
-
- 2. It is now possible to have multiple ACE_GUARD* macros in the
- same scope by calling each scoped locking object a different
- name. This is used in the Local_Tokens.cpp file.
-
- * ace/Synch.h (ACE_Null_Mutex_Guard): Added the locked() method so
- that this signature will conform to the one expected of
- ACE_Guard.
-
- * tests: Added a new file Test_Future.cpp, which tests the new ACE
- Futures mechanism using Active Obejcts. Thanks to Andres Kruse
- <kruse@cern.ch> for contributing this test.
-
- * ace: Added three new files: Future.{h,cpp},
- Method_Object.{h,cpp}, and Activation_Queue.{h,cpp}, which
- implement Polymorphic Futures. Thanks to Andres Kruse
- <kruse@cern.ch> for contributing these.
-
- * ace/Stream.cpp (dump): Replaced LM_INFO with LM_DEBUG.
-
-Sun Aug 25 21:57:57 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace: Rather than using operator new directly, most of ACE now
- uses the ACE_NEW and ACE_NEW_RETURN macros. For instance,
- rather than writing:
-
- if (token_manager_ == 0)
- token_manager_ = new ACE_Token_Manager;
-
- we should write:
-
- if (token_manager_ == 0)
- ACE_NEW_RETURN (token_manager_, ACE_Token_Manager, 0);
-
- The reason for this is that it makes it much easier to ensure
- that all dynamic memory allocation errors are treated uniformly.
- I've updated the entire ACE library code tonight to make this
- usage consistent whenever possible.
-
-Sat Aug 24 11:51:38 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Time_Value.h: Simplified various things so that the nasty
- macros necessary to build DLLs on Win32 will be simplier. In
- addition, I will only #include <sys/time.h> for those platforms
- that don't already do this in <time.h> (i.e., if
- ACE_NEEDS_SYSTIME_H is defined in config.h). Please let me know
- if you run across any platforms like this.
-
- * ace/TLI_{Connector,Acceptor}: Added two additional parameters at
- the end of the connect() and accept() methods, respectively, so
- that the ACE TLI wrappers can be used with X.25. Thanks to Ajit
- Sagar <asagar@spdmail.spd.dsccc.com> for suggesting this fix.
-
- * ace: Integrated Eric Newton's XtReactor into the Makefile. If
- you want to include this into ACE, make sure to define
- ACE_HAS_XT in the config.h file.
-
- * examples/Misc: Integrated the XtReactor tests.
-
- * ace/OS.i (getservbyname,gethostby*): Fixed a suble omission --
- any calls to socket function should be wrapped by the
- ACE_SOCKCALL_RETURN macro in order to make the errnos work
- correctly on Win32.
-
- * ace/OS: Added support for the getprotoby{name,number} wrappers.
- Thanks to Joe DeAngelis <bytor@faxint.com> for suggesting this.
-
- * ace/Connector.cpp: Fixed a subtle bug in the ACE_Connector.
- The problem centered around the following line in
- cleanup_AST():
-
- if (this->handler_map_.find (handle, ast) == -1)
-
- This lookup always failed because the key, the handle of the
- service handler, was always -1. The service handler's handle is
- not set until a successful connection is made and connector
- transfers ownership of the handle to the service handler. The
- fix for this is to store the ACE_HANDLE in the ACE_Svc_Tuple
- *separately* from the ACE_Svc_Handler. Thanks to Bill Gerecke
- <gerecke@rayva.org> for being so persistent in tracking this
- down.
-
- * ace/ARGV.cpp (ACE_ARGV): Added a nifty new constructor that
- converts argv-style vectors of strings into a single string
- (this is the reverse of what the original constructor does!).
-
- * ace/ACE: Added a new utility method called strecpy(), which
- copies <t> to <s>, returning a pointer to the end of the copied
- region (rather than the beginning, a la <strcpy>.
-
-Thu Aug 22 15:43:58 1996 <harrison@samba.cs.wustl.edu>
-
- * ace/OS.h: Changed the interface of ACE_OS::fork_exec (char
- *const argv[]). (There is no longer a separate const char *path
- parameter. Now, argv[0] must be the full path name to the
- executable.
-
- * tests/Time_Service_Test.cpp: Updated the Time Service
- one-button test to use the new ACE_OS::fork_exec. I didn't
- event break it.
-
- * tests/Tokens_Test.cpp: Updated the Tokens one-button test to
- use the new ACE_OS::fork_exec. It actually works now.
-
- * tests/test_config.h: Added some more #defines to help simplify
- path differences between NT and UNIX. Perhaps these should be
- moved into OS.h?
-
-Thu Aug 22 13:46:58 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Thread_Manager.cpp (ACE_Thread_Control): The status_ member
- in ACE_Thread_Control() was not being initialized! This caused
- Purify to complain loudly about invalid memory accesses. I have
- added an initialiser to ACE_Thread_Control::ACE_Thread_Control
- to set status_ to 0. Thanks to Ross Dargahi <rossd@krinfo.com>
- for reporting this.
-
- * ChangeLog: The ACE configuration files "config-irix*.h" defined
- 'ACE_HAS_SIGINFO' to indicate that IRIX supports SVR4 extended
- signals. This should be 'ACE_HAS_SIGINFO_T' instead. Thanks to
- Craig Johnston <johnston@tortilla.ds.boeing.com> for reporting
- this.
-
-Wed Aug 21 21:09:01 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Time_Value.h: Added an extra condition, #if defined
- (ACE_BUILD_DLL) so that ACE_Svc_Export evaluates to
- something. Previously, it was evaluating to nothing in some
- files such as Naming_Context.cpp where we were doing #define
- ACE_BUILD_DLL and not #define ACE_BUILD_SVC_DLL.
-
-Wed Aug 21 00:33:17 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/ACE.cpp (format_hexdump): Fixed a minor bug in
- format_hexdump(). If the buffer to dump is a multiple of 16 it
- prints an extra blank line. ALso fixed the code to use spaces
- rather than tabs and put an extra space between the first 8 HEX
- bytes and the second. Thanks to Luca Priorelli
- <lucapri@mbox.vol.it> for this code.
-
- * ace/Log_Msg.h (ACE_HEX_DUMP): Added a new logging macro:
-
- #define ACE_HEX_DUMP(X) \
- do { int __ace_error = errno; \
- ACE_Log_Msg *ace___ = ACE_Log_Msg::instance (); \
- ace___->set (__FILE__, __LINE__, 0, errno, ace___->restart (),
- ace___->msg_ostream ()); \ ace___->log_hexdump X; \
- } while (0)
-
- which makes it possible to dump info in HEX. Thanks to Luca
- Priorelli <lucapri@mbox.vol.it> for suggesting this.
-
- * ace/config-win32-msvc4.0.h: Added
-
- #define _WINSOCKAPI_
-
- To avoid multiple inclusions. Thanks to Luca Priorelli
- <lucapri@mbox.vol.it> for suggesting this.
-
- * ace/OS.h: enclosed the #define of WIN32_LEAN_AND_MEAN macro
- definition between #ifndef ... #endif to avoid compiler
- warnings. Thanks to Luca Priorelli <lucapri@mbox.vol.it> for
- suggesting this.
-
- * ace/SOCK.cpp (win32_fini): Fixed a potential problem in ACE
- where any code of the form:
-
- ACE_DEBUG ((LM_DEBUG, "%d", GetLastError()));
-
- will reset errno a couple of times before GetLastError() gets
- called. So the result is always 0. The fix is to say:
-
- int ret = GetLastError();
- ACE_DEBUG ((LM_DEBUG, "%d", ret));
-
- Thanks to Luca Priorelli <lucapri@mbox.vol.it> for noticing
- this.
-
- * ace/Connector.cpp (create_AST): Was missing a return 0; if we
- successfully register a cancellation id. Thanks to William
- L. Gerecke <gerecke@rayva.org> for reporting this bug.
-
- * ace/Module.h: Added a non-existent friend class to get ACE
- to stop complaining
-
- private:
- friend class ACE_Shutup_GPlusPlus; // Turn off g++ warning
- ~ACE_Module (void);
- // *Must* use dynamic allocation.
-
- Thanks to Eric Newton for the suggestion.
-
- * ace/Svc_Conf.y (ace_create_service_type): Removed some stray
- calls to ACE_ERROR that were left over from earlier
- configurations of ACE. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for reporting this.
-
- * ace/Log_Msg.cpp (instance): Fixed the #ifdefs so that
- ACE_MT_SAFE implies ACE_HAS_THREAD_SPECIFIC_STORAGE. Thanks to
- Gonzalo Diethelm <gonzo@ing.puc.cl> for reporting the need for
- this.
-
-Tue Aug 20 13:09:55 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * INET_Addr.cpp, line 84: Irix's C++ is not able to determine
- whether to use the set(u_short,ACE_UINT32,int) or the
- set(u_short,const char [],int), since on Irix, INADDR_ANY is 0.
- I cast the value so that the call would read set(port,
- ACE_UINT32(INADDR_ANY)) and everything went fine. Thanks to
- Gonzalo Diethelm <gonzo@ing.puc.cl> for reporting this.
-
- * ace/Synch[_T]: Added a new wait() method that takes a first
- parameter which is the mutex used to serialize access to the
- condition. This is useful if you want to store the
- ACE_Condition object in shared memory (in which case, the use of
- a reference to mutex_t doesn't work!). Thanks to Mark Patton
- <mark_patton@ftw.paging.mot.com> for recommending this approach.
-
- * ace/Task.h: Added a forward template declaration for
- ACE_Task_Exit so that it will compile on HP/UX. Thanks to Tim
- Ottinger <tottinge@csci.csc.com> for pointing this out.
-
- * ace: changed line 19 of ace/Str_Buf.h from
-
- #include "OS.h"
-
- to:
-
- #include "ace/OS.h"
-
- Fixed similar problems with OS.h at line 1154 and Dump.h at line
- 150. Thanks to Alan Stewart <axs2@osi.com> for reporting this.
-
-Tue Aug 20 20:18:49 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * tests/TSS_Test.cpp (main): Fixed a small typo. I was referencing
- the wrong variable but didn't catch it since it was in the #if
- !defined (ACE_HAS_THREADS) section. Fixed the typo and also
- renamed the variable called big_count to iterations. Thanks to
- Tim Ottinger <tottinge@csci.csc.com> for pointing this out.
-
-Mon Aug 19 19:25:50 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * {examples,apps,tests}: Removed the use of zerop from these
- files, as well...
-
- * ace/{Acceptor.cpp,Name_Proxy.cpp,Token.i}: Removed the use of
- zerop from these files, as well...
-
- * ace/Connector.cpp (connect_svc_handler): It looks like our good
- friend ACE_Time_Value::zerop isn't getting initialized correctly
- on Win32. Therefore, I've replaced it with a direct use of
- &ACE_Time_Value::zero.
-
- * ace/Time_Value.cpp: Removed the static pointer variable "zerop"
- since there was no guarantee it was getting intialized before it
- is used! Instead of using ACE_Time_Value::zerop, use
- &ACE_Time_Value::zero. Thanks to William L. Gerecke
- <gerecke@rayva.org> for reporting this problem.
-
- * ace/OS: Added zillions of changes to make ACE compile with OSF/1
- and its DCE threads implementation. Thanks to Martin Schoeckle
- <schoeckle@ike.uni-stuttgart.de> for sending these.
-
- * ace/config-osf1-3.2.h: Updated this file with fixes for OSF/1 by
- Martin Schoeckle <schoeckle@ike.uni-stuttgart.de>.
-
- * ace/ACE.cpp (handle_timed_complete): Added new logic to
- ACE::handle_timed_complete() so that it sets errno to
- ECONNREFUSED if the connection is refused by the server. When
- you issue an asynchronous connect request, to complete it, you
- will use complete() with a timeout. However, complete can fail,
- and then it will deallocate any resource, (i.e. close down the
- socket handle), also for timeout expiration. So, a user
- interested in retrying to complete a connection while the
- timeout expires will not use complete(); but rather will use
- handle_timed_complete(). In fact, using handle_timed_complete()
- the user could detect the reason of a failure (by examining
- errno) and decide how to proceed. In the old ACE version the
- problem was that, if handle_timed_complete() failed because of
- the recv() returning 0, errno remained unchanged and so its
- value could be quite misleading with respect to the reasons of
- the failure. Thanks to Antonio Tortorici
- <antonio@rh0011.roma.tlsoft.it> for this fix and the explanation
- above.
-
- * ace/OS.h: Added support for Borland 5.0's uint64. Thanks to
- Hani Yakan <hani@i-online.com> for suggesting the strategy to
- accomplish this.
-
-Mon Aug 19 15:52:07 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * tests: Added new macros to the test_config.h file in order to
- simplify the testing.
-
-Mon Aug 19 00:21:22 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Re-released version 4.0.28 for testing (will change the version
- number after Tim gives me the new Token stuff).
-
- * {netsvcs/lib,tests/test_config.h}: Removed spurious dependencies
- on fstream.h and iostream.h. Thanks to Alan Stewart
- <axs2@osi.com> for reporting this.
-
-Sat Aug 17 17:25:49 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Reactor: Removed the use of "inline" in the Reactor.cpp
- files because this was causing problems with some
- compilers/linkers. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for recommending this.
-
- * examples/Misc/test_XtReactor1.cpp: Added a new test of the
- XtReactor, courtesy of Eric Newton <ecn@clark.net>.
-
- * ace/config-hpux-10.x.h: According to Eugene K. Plaude
- <jec@r-style.msk.su>, HP-UX 10.01 supports user-level threads
- based on the pthreads interface specified by POSIX in 1003.4a,
- Draft 4 (which is basically DCE threads). Therefore, I've
- enabled the ACE_HAS_DCETHREADS symbol in the config-hpux-10.x.h
- configuration file. If this isn't correct, please let me know.
-
-Sat Aug 17 02:18:39 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * examples/Tokens/manual/README: Added a new Token example
- application. The manual test gives users a text-based
- interactive interface to local or remote tokens. This is
- extremely useful for manually testing the token server and
- setting up deadlock scenarios. See the README file for more
- details.
-
- * examples/Tokens/deadlock/README: Updated the deadlock example
- application to test the new deadlock detection algorithm for
- readers/writer locks. I also added the use of Token Invariants
- to ensure correctness of the mutexes and readers/writer locks.
- See the README file for more details.
-
-Fri Aug 16 22:16:05 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * ace/Token_Manager.cpp: Updated all Token code to use
- ACE_OS::last_error instead of errno.
-
-Fri Aug 16 00:03:24 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * After a long hiatus, released version 4.0.28 for testing.
-
-Thu Aug 15 21:04:35 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * man: Updated all the ACE manual pages and html pages to reflect
- recent changes.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: Fixed an omitted
- "ACE_BUILD_SVC_DLL" that was causing linker errors on NT.
- Thanks to Luca Priorelli <lucapri@mbox.vol.it> for reporting
- this.
-
- * examples/Log_Msg/test_log_msg.cpp: Added a test for the new
- log_hexdump() function.
-
- * ace/Log_Msg.cpp (log_hexdump): Integrated the log_hexdump() code
- into the ACE Log_Msg abstraction. Thanks to Luca Priorelli
- <lucapri@mbox.vol.it> for fixing this and for Todd Montgomery
- for originally supplying the code.
-
- * ace/Signal.cpp (ACE_Sig_Handlers): Moved the #endif /* HPUX */
- down to the end of the file so that it works correctly on HPUX.
- Thanks to Eric C. Newton <ecn@clark.net> for report this bug.
-
- * ace/OS.i: Updated the behavior of thr_join() so that it will do
- a ::CloseHandle after getting the exit status. Thanks to the
- ever vigilant James Mansion
- (mansionj@lonnds.ml.com) for noticing this.
-
- * examples: Finally added Tim and Prashant's examles/OS directory,
- which contains a test that illustrates a "portable" means to
- spawn processes on NT and UNIX.
-
- * ace/Malloc_T.cpp (next): Added an overloaded next() method that
- returns the name that is bound to the pointer in the
- Malloc_Iterator. This is useful in order to differentiate
- entries in the pool based on their name. Thanks to Kim Gillies
- <gillies@noao.edu> for suggesting this.
-
- * ace: Changed all uses of thread_t, thread_key_t, mutex_t,
- rwlock_t, sema_t, cond_t, etc. to ACE_* in order to avoid
- polluting the name space. Also switched from using macros to
- using typedefs whereever possible. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for recommending this.
-
- * ace/System_Time.cpp: Added template specializations for
- templates used in the ACE_System_Time class. This should solve
- some nasty undefined templates problems with GCC... Thanks to
- Joseph DeAngelis <bytor@faxint.com> for pointing out the
- problem.
-
- * ace/Name_Space.cpp: Fixed the file Name_Space.cpp as follows:
-
- // Name_Space.cpp
- #define ACE_BUILD_DLL
- //#include "Name_Space.h"
- #include "ace/Name_Space.h"
-
- Thanks to Eugene K. Plaude <jec@r-style.msk.su> for fixing this!
-
- * ace/config-hpux-10.x.h: Added support for TLI since according to
- Eugene K. Plaude <jec@r-style.msk.su> this should work. If not,
- please let me know.
-
-Wed Aug 14 21:29:46 1996 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Reactor/Logger: rearranged the Logger directory so it
- would be more clear what the client and server programs did and
- how to run them.
-
- * examples: Merged the contents of the SVR4 examples directory
- into the IPC_SAP/SOCK_SAP directory so that we can remove the
- SVR4 directory altogether (it wasn't contributing much...).
-
- * examples: Removed the vestigal Win32 tests since ACE now runs on
- Win32 and we don't need a separate test directory.
-
- * netsvcs/client: Renamed the file remaining file in this
- directory to logging_app.cpp since I moved the other file to the
- examples/Reactor/Logger directory.
-
- * ace/Reactor.cpp (check_handles): If eh->get_handle() returns -1
- the select() code will index the [-1] element of an array. To
- fix this, I've added a check of the value returned from
- eh->get_handle(). Thanks to Eric C. Newton <ecn@clark.net> for
- reporting this.
-
- * ace/OS.i (sema_wait): Fixed a subtle bug in the Pthreads
- wrappers that surfaced on the SGI IRIX 6.2 port. There was some
- code that looked like this:
-
- pthread_cleanup_push();
- int result = 0;
- ...
- pthread_cleanup_pop();
- return result;
-
- However, on Irix 6.2, the push introduces a new scope that is
- closed by the pop, so result goes out of scope before returning.
- Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl> for pointing this
- out.
-
- * ace/OS.h: Changed the definition of pthread_mutex_t and
- pthread_cond_t to mutex_t and cond_t to be consistent with other
- usage in ACE. Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl> for
- pointing this out.
-
-Wed Aug 14 01:25:47 1996 <harrison@samba.cs.wustl.edu>
-
- * ace/SPIPE_Acceptor.cpp: Added the PIPE_TYPE_MESSAGE |
- PIPE_READMODE_MESSAGE flags to CreateNamedPipe pipe options so
- that data is received in messages rather than as a stream. This
- is consistent with the behavior of the SPIPE_Connector. When we
- have time, we need to extend the interface so that stream pipes
- are also supported, as well.
-
- * SPIPE_Acceptor.cpp: Made the ACE SPIPE in and out buffer sizes
- 10 k. The previous size was just 512 bytes. This larger buffer
- size helps decrease flow control.
-
-Tue Aug 13 23:21:46 1996 <harrison@samba.cs.wustl.edu>
-
- * examples/Connection/blocking: Updated the blocking SPIPE example
- application to use a pool of threads in the proactor to handle
- incoming client messages. The SPIPE-acceptor example
- illustrates how named pipes are used on NT. Once the server
- establishes a connection to a single client, it spawns a thread
- pool to handle incoming requests via the proactor event
- loop. That is, a separate thread from the pool is used to
- process each message sent by a client. The size of the thread
- pool can be specified by command-line arguments. This example
- leverages the queueing performed by the NT kernel to trivially
- implement a thread pool architecture. See
- examples/Connection/blocking/README for more details.
-
- * Service_Config.h: Added a <thread> parameter (with a default
- size of 0) to the proactor accessor method. This allows
- applications to specify the size of the thread pool that can
- block on Proactor::handle_events.
-
-Tue Aug 13 02:30:58 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Task: Added a new public interface called thr_count(). This
- returns a count of the number of threads running within a Task.
- If the value returned is 0, then the Task is a Passive Object.
- If the value returns is > 0 the task is an Active Object, and
- the value is a count of the number of threads running within the
- object at this snapshot of time.
-
- * ace/OS: I implemented Karlheinz's suggested optimizations for
- the ACE condition variable implementation under Win32. Here's
- the deal... The original implementation used an internal_mutex
- to ensure that access to the count of the number of waiters was
- serialized between the waiter and signaler threads. The new
- implementation is designed so that only the waiter threads
- access the waiter count. Therefore, we can utilize the
- external_mutex to serialize access to this, thus eliminating the
- need for the internal_mutex. However, this means that code
- *must* be written using the standard condition variable idiom,
- i.e.,
-
- int resources ()
- {
- external_mutex.acquire ();
-
- // ...
-
- cond.signal ();
- external_mutex.release ();
- }
-
- Rather than like this:
-
- int resources ()
- {
- external_mutex.acquire ();
-
- // ...
-
- external_mutex.release ();
- cond.signal ();
- }
-
- which is what some thread programming books recommend as an
- optimization. However, you should be careful not to use this
- form since it can lead to "lost wakeup" bugs caused by the fact
- that the implementation of ACE_OS::cond_signal will test if the
- waiter count > 0 *without holding any locks*!!!
-
- Fortunately, ensuring this shouldn't be a problem since most ACE
- code uses the following idiom:
-
- int resources ()
- {
- ACE_Guard mon (external_mutex);
-
- // ...
-
- cond.signal ();
- // Destructor of mon releases external_mutex.
- }
-
- Clearly, there are subtle tradeoffs between performance and
- programmability here...
-
- * ace/Synch: Updated all of the ACE semaphore wrappers to take the
- new "max" value as their final constructor argument.
-
- * ace/OS: Added a new default argument to the end of the
- sema_init() method. This allows us to specify the maximum value
- of the semaphore (this is only important on NT). Currently, it
- is hard-coded to 0x7fffffff in uses. The new approach makes it
- possible to set the max to a different value. Thanks to
- Karlheinz for requesting this.
-
- * ace/Message_Queue.cpp: Added an implementation of the dump().
- Thanks Karlheinz.
-
- * ace/Synch.cpp: Added an implementation of the dump() method.
- Thanks Karlheinz.
-
- * ace: Updated all usage of ACE_Thread_Mutex_Guard so that it now
- uses the ACE_GUARD* macros correctly. Thanks to Chris Eich
- <Chris_Eich@optilink.optilink.dsccc.com> for pointing out the
- need for this.
-
- * examples/Threads: Added Karlheinz's new test_barrier2.cpp test
- program that makes sure that the ACE_Message_Queues are working
- correctly when accessed by multiple threads.
-
- * netsvcs/lib/Server_Logging_Handler.cpp (handle_logging_record):
- Fixed an errant use of ACE_Guard, which wasn't properly checking
- of the Guard acquired the lock. Thanks to Chris Eich
- <Chris_Eich@optilink.optilink.dsccc.com> for pointing this out.
-
- * ace/OS.h (ACE_GUARD): Added default "ace_mon" implementations of
- type ACE_Null_Mutex even in cases where there's no threading
- defined so that code accessing ace_mon.release() and
- ace_mon.acquire() will compile correctly.
-
- * apps/Gateway/Gateway/Channel.h: Fixed the code so
- that we don't try to use TLI if the platform doesn't support it
- (instead, we'll use sockets). Thanks to Marius Kjeldahl
- <marius@funcom.no> for reporting this problem.
-
- * examples/ASX/Event_Server/{Supplier,Consumer}: Fixed the code so
- that we don't try to use TLI if the platform doesn't support it
- (instead, we'll use sockets). Thanks to Marius Kjeldahl
- <marius@funcom.no> for reporting this problem.
-
-Mon Aug 12 14:50:47 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * examples/Misc: Added Eric Newton's <ecn@clark.net> test case for
- his XtReactor integration.
-
- * ace: Included Eric Newton's <ecn@clark.net> code that integrates
- ACE with the Xt event loop. This still needs a bit of work
- (e.g., making it thread-safe and incorporating signal support), so
- I haven't added it to the Makefile yet. If someone can take the
- time to fix it up, I'll be happy to integrate it into ACE.
-
- * ace/Message_Queue.cpp (dequeue_head): Fixed the mother of all
- bugs in the ACE_Message_Queue implementation... The problem was
- that I was trying to be too clever by optimizing the number of
- Condition::signal() calls by only calling signal() when the
- queue changed state from empty to non-empty (or full to
- non-full). It turns out that this optimization works fine for a
- single producer/consumer case, but fails when there are multiple
- consumers. The fix was just to call signal() every time. This
- should be ok because the underlying Condition variable
- implementation will perform the optimization in the correct
- fashion. Thanks to the omniscient Karlheinz for detecting this
- problem and reporting it.
-
-Sun Aug 11 15:52:07 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * tests: Made minor changes to test_config.h, SPIPE_Test.cpp, and
- UPIPE_SAP_Test.cpp to accomodate the change made to SPIPE_Addr.
- SPIPE_Addr now accepts a string of the form [host:]port and then
- creates the rendezvous point. Originally, SPIPE_Addr would
- assume that the string being passed in was the actual rendezvous
- point.
-
-Sat Aug 10 18:41:21 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * netsvcs/lib/Logger.cpp (init): Added a new service to netsvcs
- called ACE_Logger which allows us to control the output of all
- the services. The ACE_Logger service can be invoked with
- different flags (such as STDERR|OSTREAM) which in turn sets
- ACE_Log_Msg to direct the output of all the services to the
- appropriate stream(s). Note that if a service needs to stay
- unaffected from ACE_Logger, it should be invoked before
- ACE_Logger gets invoked. Also note that like other services in
- netsvcs, ACE_Logger can also be dynamically linked in.
-
-Sat Aug 10 14:23:07 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added Steve Huston's <shuston@ultranet.com> patches to get ACE
- to compile on UnixWare 2.01. This mostly involved changes to
- the internal types used by the socket wrappers. Thanks Steve!
-
-Fri Aug 9 01:34:19 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * examples/ASX/UPIPE_Event_Server/Options.cpp (print_results):
- Added a typedef to avoid problems if a platform doesn't support
- prusage_t. Thanks to Marius Kjeldahl <marius@funcom.com> for
- reporting this.
-
- * include/makeinclude/platform_linux_pthread.GNU. The line that
- say:
-
- LIBS = -lpthreads -lstdc++
-
- was modified to say:
-
- LIBS += -lpthreads -lstdc++
-
- Thanks to Marius Kjeldahl <marius@funcom.com> for reporting
- this.
-
-Fri Aug 9 18:26:16 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Local_Name_Space.cpp (reset): Fixed a subtle (yet very
- annoying bug). In switching contexts a test program would hang
- after a certain number of switches. Having gone through the code
- thoroughly and with the aid of Purify, the bug was narrowed down
- to an extraneous delete taking place in
- ACE_Name_Space::reset(). Essentially, we do not need to delete
- ACE_Name_Space_Map::instance() which is actually the
- SHARED_MALLOC since it gets deleted in the destructor of
- ACE_Local_Name_Space.
-
-Thu Aug 8 17:55:20 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/SPIPE_Addr.cpp (set): Implemented
- ACE_SPIPE_Addr::string_to_addr(). Modified ACE_SPIPE_Addr::set()
- using code provided by Brad Flood to create the rendezvous
- point. Note that originally ACE_SPIPE_Addr constructor and set()
- would take the actual rendezvous point but now they rely on
- being passed a string which is of the format "[host]:port"
- (where host is optional). The rendezvous point is then created
- by extracting from the string the hostname (if any) and also
- using the port number as the unique pipe name. Note that this
- approach works on both UNIX and Win32.
-
-Mon Aug 5 20:15:59 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/OS.i (last_error): Fixed a typo. In the set and get methods
- last_error(), there should be a check for "if defined
- (ACE_WIN32)" and not "if defined (ACE_HAS_WIN32)"
-
-Wed Aug 7 00:21:42 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Log_Msg.h: Replaced all uses of errno *following calls to
- ACE_Log_Msg::instance()* so that we first cache errno in a local
- variable called __ace_errno. We need to do this because
- ACE_Log_Msg::instance() can reset errno == 0. Thanks to
- Tim for pointing this out.
-
-Mon Aug 5 20:15:59 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/OS.i (last_error): Fixed a typo. In the set and get methods
- last_error(), there should be a check for
- "if defined (ACE_WIN32)" and not "if defined (ACE_HAS_WIN32)"
-
-Sat Aug 3 14:52:32 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * examples/Win32/win32_client.cpp: Changed ACE_GUARD_RETURN to
- ACE_GUARD in the method Errno::flags since the return type is
- void.
-
- * examples/Connection/non_blocking/CPP-connector.cpp: Made some
- minor changes to get things compiling on Win32. The call to
- handle_close now takes zero as the first argument (which is
- never used). Also the arguments to ACE_SERVER_ADDRESS are now
- swapped (hostname followed by port number) to be consistent with
- the change made to the macro. Thanks to Brad Flood for
- suggesting these changes.
-
- * examples/Connection/non_blocking/CPP-acceptor.cpp: Made minor
- changes to some of the methods to make sure all control paths
- return a value. Also changed the default port number to
- ACE_DEFAULT_SERVER_PORT_STR to match what the connector tries to
- connect to. Thanks to Brad Flood <BFLOOD@slc.unisysgsg.com> for
- suggesting these changes.
-
- * ace/OS.h (ACE_SERVER_ADDRESS): Modified the macro
- ACE_SERVER_ADDRESS so that it creates a string of a server
- address with a "host:port" format. Previously the order was
- reversed. Thanks to Brad Flood for suggesting this change.
-
-Sat Aug 3 00:07:26 1996 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu)
-
- * ace: Fixed problems with recursive tracing of ACE_TRACE by
- commenting out certain constructors in IPC_SAP.cpp,
- FIFO_Send_Msg.cpp, FIFO_Send.cpp, and FIFO.cpp. Thanks to
- Karlheinz for finding and reporting these fixes.
-
-Fri Aug 2 22:19:05 1996 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu)
-
- * ace/ACE.cpp (format_hexdump): Fixed an infamous "off by one" bug
- that was causing this to fail on Win32 (time to switch to Java? ;-)).
- Thanks to lucapri@mbox.vol.it for finding this.
-
-Thu Aug 1 14:08:30 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/CORBA_Handler.cpp (activate_service): Fixed a typo caused by
- an omitted ENDTRY. Thanks to Garrett Conaty
- <gconaty@outbackinc.com> for noticing this.
-
-Mon Jul 29 10:03:16 1996 Douglas C. Schmidt (schmidt@lambada.cs.wustl.edu)
-
- * examples/Win32/win32_client.cpp: There was a typo in one of the
- ACE_GUARD macros. Thanks to Tim Ottinger
- <tottinge@csci.csc.com> for pointing this out.
-
-Mon Jul 22 12:41:22 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Local_Name_Space.cpp (reset): Added a new method
- ACE_Name_Space_Map::reset() which deletes the instance of
- ACE_Name_Space_Map. This forces instance() to create a new
- instance using a new context file in the case of the context
- having changed. I make use of this in
- ACE_Local_Name_Space::create_manager().
-
-Fri Jul 19 12:28:07 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/System_Time.cpp (get_master_system_time): Modified
- ACE_System_Time::get_master_system_time() so that if an entry
- for the time is not found in shared memory (indicating that no
- Clerk is running), then we should just return the local time of
- the host.
-
- * netsvcs/lib/TS_Clerk_Handler.cpp (update_time): Modified
- ACE_TS_Clerk_Handler::update_time() so that if the Clerk is not
- connected to any servers, is sets the delta time to zero
- allowing clients to then use the local time of the host.
-
-Wed Jul 17 22:19:53 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/UPIPE_Connector.cpp (connect): Added an #ifdef around the
- check of ACE_OS::isastream (handle) in
- ACE_UPIPE_Connector::connect() since the call is not supported
- on NT.
-
-Thu Jul 11 22:22:57 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * ace/OS.i (kill): Modified ACE_OS::kill so that it works on NT.
- It takes a process ID, creates a handle for the associated
- process, and calls TerminateProcess on the handle. This is
- actually pretty dangerous according to the NT documentation.
- Can majorly confuse DLLs. Does the same old thing on UNIX.
-
- * ace/OS.cpp (fork_exec): Added a fork_exec operation to ACE_OS.
- This works on UNIX and NT. It combines the forking and exec'ing
- into one call. This has to be combined since Win32
- CreateProcess only starts applications from scratch (unlike UNIX
- fork).
-
- * examples/OS/test_os.cpp: Added a new example application to test
- the new ACE_OS::fork_exec and ACE_OS::kill operations.
-
-Tue Jul 9 13:04:14 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Service_Manager.cpp (reconfigure_services): To improve
- portability on Win32 and UNIX I replaced the use of a signal to
- trigger reconfiguration to instead make a call to the new
- ACE_service_Config::reconfig_occurred() method. This should
- actually perform the same as the original approach, since all
- the signal handler ever did was to set this flag! Thanks to
- Karlheinz for pointing out the need for this.
-
- * ace/Service_Config.h: Added a new static public method called
- reconfig_occurred(sig_atomic_t) to set if a reconfiguration
- should take place the next time through the event loop.
-
-Mon Jul 8 14:20:01 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Time_Value.h: Added "ACE_Export" before all global operators
- to allow them to be dll-exportable on NT.
-
-Mon Jul 8 13:12:05 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/{Message_Block,DEV_IO,SPIPE_Stream}.cpp: Fixed several more
- cases of delete array that should have been delete [] array.
- Thanks to Tom Leith for pointing out some of these. I can hear
- the ghost of James Mansion coming closer... ;-)
-
- * INSTALL: Added tips on how to install ACE on a Win32 platform
- that lacks a network card.
-
- * ChangeLog: Split ChangeLog-96 into two files (ChangeLog-96a and
- ChangeLog-96b) since it was becoming quite large! Thanks to
- Chris Lahey for pointing this out.
-
- * ace/Stream.cpp: Was missing a "return 0;" at the end of the
- close() method. Thanks to Tom Leith <trl@icon-stl.net> for
- finding this.
-
-Mon Jul 8 14:20:01 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Time_Value.h: Added "ACE_Export" before all global operators
- to allow them to be exportable from Win32 DLLs.
-
-Sun Jul 7 10:34:48 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.27 for testing.
-
- * config-sunos5.5*.h: Removed all uses of ACE_HAS_SVR4_SIGNAL_T in
- the config files since Solaris 2.5 has consistent signal and
- sigaction types (at last!).
-
- * Installed and compiled ACE successfully with the new SunC++ 4.1
- compiler on Solaris 2.5. However, there seems to be major
- problems with the interaction of the SunC++ exception handling
- runtime system and the Solaris multi-threading mechanisms. This
- is causing the ACE multi-threading tests to bomb with
- segmentation faults inside of the _ex_unwind() library function.
- If you read the /opt/SUNWspro_3.1/READMEs/c++ file you'll see
- why this problem is occurring (apparently due to bugs in the
- Solaris libC.so.5 C++ runtime library).
-
- There seem to be two fixes for this problem:
-
- 1. Add the following to *all* threads (including main):
-
- #include <exception.h>
-
- void *my_thread_entry_point (void *) {
- set_terminate (abort);
- set_unexpected (abort);
-
- // Do real work...
- }
-
- This is the approach recommended by the README file in
- SUNWspro_3.1. However, it is *clearly* a horrible hack and
- very non-portable (therefore, I deem it worthy of Microsoft
- ;-)).
-
- 2. Compile ACE (and applications?) with -noex in order to avoid
- this bug. This is clearly not desirable either since it
- precludes the use of exception handling with C++ and threads
- on Solaris...
-
- Since ACE doesn't use exceptions internally on Solaris option 2
- seems like the best approach for the time being. When Sun gets
- it act together and releases a bug-free library and C++
- software, I'll fix ACE accordingly.
-
- * tests: Integrated the latest of Prashant's "one-button" tests
- into the main ACE release. These will run on both UNIX and
- Win32 now.
-
- * ace/UPIPE_Stream.cpp (recv): Changed the semantics of the
- ACE_UPIPE_Stream::recv (char *, size_t, ACE_Time_Value *)
- method. Currently, the behavior is to block until *exactly* N
- bytes are read. However, this is incorrect for 2 reasons:
-
- 1. It makes it hard to write a server that doesn't know
- precisely how big the messages are from the client. In
- particular, if the receiver doesn't know how big the buffer
- messages are from the client it will block indefinitely!
-
- 2. It is redundant with respect to the
- ACE_UPIPE_Stream::recv_n(), which also blocks until all N
- bytes are received.
-
- Therefore, I've made the new UPIPE_Stream::recv() method block
- only until it's received the first block of data that allows it
- to fulfill its size request, or anything that is smaller than
- that size.
-
- * ace/OS.cpp (thr_create): Since POSIX pthreads doesn't provide an
- equivalent of THR_NEW_LWP in the pthreads_attr_* functions, I've
- added an emulation that should work for Solaris. Basically, if
- THR_NEW_LWP is set when ACE_OS::thr_create() is called, we use
- the ACE_OS::thr_{get,set}concurrency methods to increase the
- number of LWPs by one.
-
- * ace/Message_Block: Changed the default high water mark for an
- ACE_Message_Queue from 4K to 16K. This is useful since it
- allows applications to buffer more information before blocking.
-
- * ace/Log_Msg: Added a pair of operations that allow applications
- to acquire and release the synchronization lock used internally
- by the ACE_Log_Msg implementation. This allows applications to
- hold the lock atomically over a number of calls to ACE_Log_Msg,
- which is useful for composite operations like the following:
-
- // Make sure the following operations are run atomically!
- ACE_LOG_MSG->acquire ();
-
- while (c != '!')
- {
- if (c_stream.recv (&c, 1) == -1)
- ACE_DEBUG ((LM_DEBUG,
- "(%t) buffer recv from supplier failed\n"));
- else
- ACE_DEBUG ((LM_DEBUG, "%c", c));
- }
-
- ACE_LOG_MSG->release ();
-
- * examples/IPC_SAP/UPIPE_SAP: Revised all of the UPIPE_Stream
- tests to make them more consistent and correct with respect to
- the new changes.
-
- * ace/Stream.cpp (link_i): There was a bug in the link_i() logic
- because we weren't also linking the other stream back to our
- stream.
-
- * ace/UPIPE_{Acceptor,Connector}: Modified both of these classes
- so that they don't
-
- * ace/Stream.cpp (close): Modified close() so that it now detects
- "double-closes" and ignores anything but the first one.
-
- * ace/UPIPE_Stream: Updated this class so that it no longer
- inherits from ACE_Stream (previously ACE_UPIPE_Stream had
- inherited from *both* ACE_Stream *and* ACE_SPIPE). There are
- several reasons we shouldn't inherit from ACE_Stream:
-
- 1. There are operations on ACE_Stream that don't make any sense
- on ACE_UPIPE_Stream (e.g., link(), unlink()).
-
- 2. ACE_Stream isn't really designed to be subclassed (e.g.,
- it doesn't have virtual methods).
-
- 3. Not inheriting makes the interface cleaner, e.g., we now use
- send() and recv() methods consistently, rather than
- send_msg()/put() and recv_msg()/get().
-
- 4. The return values from the I/O methods are now more
- consistent than they were before.
-
- * ace/Message_Block: The signature for the copy() method was
- incorrect. It should have been copy (const char *, .....)
- rather than copy (char *, ....).
-
- * examples/IPC_SAP/UPIPE_SAP: Together with Prashant, fixed up the
- ACE_UPIPE_Stream tests so they more cleverly
- (and correctly) utilize and illustrate various ACE concurrency
- features.
-
-Sat Jul 6 18:28:55 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Stream.cpp: Fixed some obscure bugs with Stream::unlink()
- and Stream::link(). These bugs were triggered by the
- ACE_UPIPE_Stream tests. We need to make sure that we don't have
- race conditions in the order in which ACE_UPIPE_Stream close()
- down. Prashant and I fixed this problem by (1) adding a lock to
- unlink() and link() and then creating unlink_i() and link_i() to
- perform the work and (2) being more careful about trying to
- unlink our side and the other side of a linked Stream.
-
- * ace/config-linux.h: According to Istvan Buki
- <istvan.buki@infoboard.be>, Linux now supports the
- send_msg()/recv_msg() system calls, as well as UNIX domain
- sockets. Therefore, I've updated the config-linux*.h file to
- remove the existing restrictions. If this turns out not to be
- the case, please let me know.
-
- * ace/LSOCK.cpp (recv_handle): Added a change to some casts to
- make ACE compile with Linux. Thanks to Istvan Buki
- <istvan.buki@infoboard.be> for reporting this.
-
- * apps/Gateway/Gateway/File_Parser.cpp (readword): Removed
- yet another use of:
-
- for (int x; foo(x); )
- {
- }
-
- x = 10;
-
- Which is now a deprecated feature of C++.
-
- * include/makeinclude: added the -lw library to the GNU G++
- platform*.GNU file in order to pick up the wide-character string
- functions.
-
-Fri Jul 5 18:11:44 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Re-released version 4.0.26 for testing.
-
- * ace/CORBA_Handler.cpp (activate_service): Revised the code to
- use the Orbix macros for TRY/CATCH rather than try/catch. We
- need this to make legacy code work! Thanks to Irfan for
- pointing this out.
-
- * ace/Thread_Manager: Fixed a bunch of typos that grelims snuck
- in. Thanks to Jack Erickson <jack@cibc.com> for reporting this.
-
- * examples/IPC_SAP/TLI_SAP/ftp-server.cpp: Fixed some typos that
- were causing problems on AIX. Thanks to Greg Wilson
- <gvwilson@vnet.ibm.com> for reporting this.
-
- * examples/Reactor/Misc/test_time_value.cpp (operator<<): Added a
- "const" in front of the ACE_Time_Value & in order to make things
- work correctly on AIX. Thanks to Greg Wilson
- <gvwilson@vnet.ibm.com> for reporting this.
-
- * ace/SPIPE_Acceptor: Fixed some missing "returns" that had sprung
- up in the #else arm of the SPIPE code. Thanks to Greg Wilson
- <gvwilson@vnet.ibm.com> for reporting this.
-
- * apps/Synch-Benchmarks/Benchmark: Fixed a typo that was causing
- the application to fail to compile on AIX. Thanks to Greg
- Wilson <gvwilson@vnet.ibm.com> for reporting this.
-
- * Changed all uses of virtual int init (int, char **) to virtual
- int init (int, char *[]) to workaround bugs with MSVC++...
-
- * ace/OS.h: for POSIX pthreads, changed the definition of the
- THR_SCOPE_SYSTEM macro so that it has the same value as
- THR_BOUND. If this isn't done, then things don't quite work
- right when we implement the ACE_OS::thr_create() wrapper.
-
-Thu Jul 4 13:17:35 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Thread_Manager: Added a new method called thr_self() that
- *does* return a real handle that can be used by
- WaitForMultipleObjects, etc. Note that this new approach
- cleverly caches this handle in TSS in order to cut down on
- search time. Thanks to Jesper for pointing this technique out.
-
- * ace/OS.i (thr_self): After receiving comments from Jesper, undid
- the earlier change today that was returning a duplicated handle
- for ACE_OS::thr_self(). It turns out this is a bad idea because
- the handle most typically doesn't get released, which leads to
- handle leaks.
-
- * ace/Thread_Manager: Added a new private method called
- check_state(). This method extends existing code to be smarter
- about how we check to see what "state" (e.g., suspended,
- cancelled, etc.) a thread is in. The original code
- (which was a macro called ACE_CHECK_STATE) didn't behave
- correctly if we asked about the state of a thread that was
- different from ourselves!
-
- * ace/Thread: Modified the public interface to
- ACE_Thread::spawn_n() so that it now takes a void *stack[] and
- size_t stack_size[]. If stack != 0 it is assumed to be an array
- of n pointers to the base of the stacks to use for the threads
- being spawned. Likewise, if stack_size != 0 it is assumed to be
- an array of n values indicating how big each of the
- corresponding stacks are. This is useful since now we can spawn
- a group of threads each of which has its own custom stack and/or
- stack size. Thanks to Ashish Singhai
- <singhai@delirius.cs.uiuc.edu> for pointing out the need for
- this.
-
- * apps/Synch-Benchmarks: Updated the Synch benchmarks so that most
- of them work again. The trick is *not* to use ACE_OS::sleep ()
- (which doesn't seem to be thread-friendly...) but instead to use
- ACE_OS::select() as a timer.
-
- * man: updated the manual pages and html pages to reflect all the
- recent changes.
-
- * ace/Malloc_T.cpp (open): Added a check to make sure that if
- init_acquire() fails we don't let this go by undetected...
- Thanks to Karlheinz for pointing out the need for this.
-
- * ace/OS.i (thr_getconcurrency): Fixed a subtle bug with the
- ACE_OS::thr_getconcurrency() function. I was mistakenly using
- ACE_ADAPT_RETVAL for the result of ::thr_getconcurrency(), which
- is clearly wrong!
-
- * ace/Service_Record.cpp (remove): Fixed a typo that was causing
- the removals of Modules in a dynamically configured Stream to go
- into infinite loops.
-
- * ace/OS.i (thr_self): Modified the ACE_OS::thr_self (hthread_t &)
- function so that it will return a *duplicate* of the current
- thread's pseudo-handle returned by GetCurrentThread(). This
- change is necessary because the pseudo-handle returned by
- GetCurrentThread() is pretty useless (e.g., it can't be used by
- any other thread to "wait" for this thread to exit). This new
- behavior is used in the examples/Reactor/ReactorEx test program.
-
- * ace/Service_Config.cpp: I'd forgotten to assign the
- delete_svc_rep_ flag when dynamically allocating the svc_rep_.
- This is fixed now.
-
-Wed Jul 3 20:09:44 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Added a new subdirectory called $WRAPPER_ROOT/tests that
- contains the first phase of the ACE regression tests.
-
- * ace/Reactor.cpp (check_handles): Fixed an earlier fix with the
- ACE_Reactor::wait_for_multiple_events() method. The earlier fix
- had changed the exit condition of do/while loop to be
-
- while (nfound == -1 && this->handle_error () >= 0);
-
- However, this was causing signal handling to break...
- Therefore, the right fix is to keep the exit test as:
-
- while (nfound == -1 && this->handle_error () > 0);
-
- and instead fix handle_errors() so that it returns 1 if we're
- able to fix a bad handle... Thanks to Prashant and Irfan for
- tracking this down.
-
- * ace/OS: Finally broken down and added a new pair of ACE_OS
- functions called "last_error()". These basically call
- SetLastError/GetLastError on Win32 or they set/get errno on
- UNIX.
-
- * ace/config-linux.h: Fixed an annoying problem with
- struct msghdr in Linux by adding
-
- #define msg_accrights msg_control
- #define msg_accrightslen msg_controllen
-
- to the config-linux*.h files. Thanks to Michael R"uger
- <m_rueger@syscomp.de> for suggesting this.
-
- * ace/SOCK_IO.cpp (recv): Fixed a "bug" where
- ACE_SOCK_IO::{send,recv} allocates with:
-
- iovec *iovp = new iovec[total_tuples];
-
- But deletes with:
-
- delete iovp;
-
- Thanks to the ever vigilant James Mansion
- (mansionj@lonnds.ml.com) for noticing this.
-
-Tue Jul 2 23:48:38 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * ace/Service_Config.h: Added ReactorEx to the singleton resources
- that the Service_Configurator holds. This includes accessors,
- destruction hooks, and event loop methods.
-
- * examples/Reactor/ReactorEx/README: There is a new example
- application for the ReactorEx. Please check out
- examples/Reactor/ReactorEx/README for details.
-
-Tue Jul 2 18:43:12 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * Released version 4.0.25 for testing.
-
- * examples/ASX/Message_Queue/priority_buffer.cpp: Added a new test
- program that illustrates the use of the new Message_Queue
- priority scheme.
-
- * ace/Message_Queue: Added new support for prioritized message
- enqueueing into the ACE_Message_Queue. Now, when an application
- uses ACE_Message_Queue::enqueue() the new Message_Block is
- inserted into the queue according to its msg_priority(). When
- dequeue_head() is used the item retrieved will then be the item
- of "highest priority" (priorities range from 0 to MAX_LONG).
- Note that the semantics of the existing enqueue methods,
- enqueue_head() and enqueue_tail(), remain unchanged.
-
- * ace/Message_Block: Changed the type of the priority in a message
- block to u_long rather than u_char. This gives us a much
- greater range of priorities!
-
-Mon Jul 1 01:12:08 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu)
-
- * ace/Thread.h: Changed a couple of mistyped comments. Thanks
- to the eagle eyes of Andres Kruse for noticing this.
-
- * ace/OS: added more comprehensive support for UNICODE to
- both the Win32 and UNIX OS adaptation layer. This new
- support automagically selects the appropriate implementation
- (i.e., either char * or wchar_t *) for the string comparison
- routines (which are used in places like ACE_Mem_Map).
-
- * ace/Service_Config: Split up the ACE_Service_Config::close()
- method into two parts: close_svcs() and close_singletons().
- This makes it possible to remove svc.conf services without
- destroying Singletons like the Proactor, Reactor, etc. Thanks
- to Karlheinz for recommending this.
-
- * ace/Service_Config: Added flags for remembering who created the
- Singleton Proactor, Allocator, Thread_Manager, and
- Service_Repository (in addition to the Reactor, which I did last
- week). If we created these Singletons, then we are responsible
- for freeing them up. Thanks to Karlheinz for pointing out the
- need for this.
-
-Mon Jul 1 16:26:27 1996 Prashant Jain (pjain@merengue.cs.wustl.edu)
-
- * ace/Connector.cpp: Added two new arguments to connect () namely,
- "int flags" and "int perms". The Connector can now pass these
- two arguments to its template arguments (e.g., SOCK_Connector,
- SPIPE_Connector, etc.) when calling their connect() method. A
- consequence of doing this was that we had to modify the
- signature of the connect() method on some of the IPC_SAP classes
- (e.g., TLI_Connector, SOCK_Connector, and LSOCK_Connector).
- Note that these changes may break some existing code,
- particularly with TLI_Connector (see below), so beware...
-
- * ace/TLI_Connector.cpp: Changed the order of the connect()
- arguments to be more consistent with the rest of the IPC_SAP
- classes used with the Connector. Please note that existing
- examples which use TLI_Connector may need to be modified as a
- result of this change.
-
- * ace/OS.i (open): Modified ACE_OS::open() to use the argument
- perms to turn the flag FILE_FLAG_OVERLAPPED on and off for
- Win32.
-
- * ace/Service_Config.cpp (end_proactor_event_loop): Added new
- methods run_proactor_event_loop() and end_proactor_event_loop()
- which call handle_events on the Proactor.
-
-Mon Jul 1 02:15:34 1996 Tim H. Harrison (harrison@lambada.cs.wustl.edu)
-
- * ace/Proactor.h: Made ACE_Proactor an ACE_Event_Handler so that
- it can be registered with the ACE_ReactorEx. ACE_Proactor
- associates the same global HANDLE with every overlapped I/O
- operation. This global HANDLE can be registered with the
- ACE_ReactorEx. Therefore, by using the
- ACE_Proactor::handle_signal method as an adapter, we can now
- dispatch overlapped I/O and other "waitable" objects from a one
- ACE_ReactorEx running in a single thread of control. Thanks to
- James Mansion <mansionj@lonnds.ml.com> for setting us on the
- right path!
-
- * ace/ReactorEx.h: Added a ACE_ReactorEx to encapsulate Win32
- WaitForMultipleObjects(). The ACE_ReactorEx handle_events()
- method calls ACE_Event_Handler::handle_signal when the
- corresponding Win32 HANDLE becomes signaled. This gives us a
- uniform abstraction for dispatching all "waitable" objects on
- Win32, including events related to I/O completion ports and
- events related to other forms of NT synchronization (such as
- mutexes, semaphores, threads, etc.).
-
- * ace/Timer_Queue.h (calculate_timeout): Added a calculate_timeout
- method to ACE_Timer_Queue. Also removed the same method from
- ACE_Reactor. This is so Reactor, ReactorEx, and Proactor can
- all reuse the calculations required by the Timer_Queue without
- duplicating code.
diff --git a/ChangeLogs/ChangeLog-97a b/ChangeLogs/ChangeLog-97a
deleted file mode 100644
index d845fc33c31..00000000000
--- a/ChangeLogs/ChangeLog-97a
+++ /dev/null
@@ -1,9203 +0,0 @@
-Thu Jul 3 20:36:19 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * performance-tests/Misc/childbirth_time.cpp: Changed the
- parameter type of "Profiler" from int to size_t to make g++
- happy.
-
-Thu Jul 03 20:03:18 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Reactor.cpp (remove_handler): added ACE_UNUSED_ARG
- when NSIG != 0.
-
-Wed Jul 2 23:41:43 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * performance-tests/Misc/childbirth_time.cpp: Fixed some typos.
-
-Wed Jul 2 23:13:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * performance-tests/Misc/childbirth_time.cpp: Revised the
- code to use ACE programming style.
-
-Wed Jul 02 23:02:24 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.15, released Wed Jul 02 23:02:24 1997.
-
-Wed Jul 2 22:23:49 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp: Used the new ACE_LACKS_UNIX_SIGNALS
- macro to reduce the #ifdef complexity somewhat.
-
- * ace/config-{chorus,win32-common}.h: Added #define for
- ACE_LACKS_UNIX_SIGNALS.
-
- * ace/OS.h: If a platform (e.g., Chorus) doesn't support signals
- then #define NSIG 0.
-
- * ace/Reactor.cpp: Chorus does not support signals. Make the call
- to register/remove_handler(sig_set, evnet_handler) return
- succesfully so that some of the examples and test programs do
- not need to be changed. Thanks to Wei Chiang for this.
-
- * ace/config-chorus.h: Added a new macro for
- ACE_LACKS_NAMED_POSIX_SEM to handle Chorus. Thanks to Wei
- Chiang for this.
-
- * ace/OS.i: Define macros ACE_PTHREAD_CLEANUP_* so that the
- related code does not need to be surrounded with #ifdefs.
- Thanks to Wei Chiang for this.
-
- * ace/OS.i: Chorus does not support named semaphores. The code
- that to do with names in sema_init() and sema_destory() is
- therefore disabled. Thanks to Wei Chiang for this.
-
- * ace/config-chorus.h: Added support for ACE_LACKS_PTHREAD_CLEANUP
- and ACE_HAS_POSIX_SEM to the Chorus port. Thanks to Wei Chiang
- for this.
-
-Wed Jul 2 17:37:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp: Clarified the behavior of close_i() a
- bit more.
-
-Wed Jul 2 09:54:36 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp: Fixed a couple more size_t->u_long
- conversions for ACE_Hash_Map_Manager::hash(). This didn't harm
- anything but it's good to be consistent.
-
-Wed Jul 2 16:46:59 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * performance-tests/Misc/childbirth_time.cpp: Added this program
- to measure child process/thread creation mechanisms on various
- platforms. Native thread creation test only supports Solaris
- and NT threads so far. But you can still use ACE_OS::thr_create
- method on your platform if not supported.
-
-Wed Jul 2 15:59:53 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp: Created a function get_registry_scale_factor
- that finds out the speed of the processor using the NT registry (in
- megahertz). This means that ACE_High_Res_Timers should automatically
- get the correct scale factor.
-
- * tests/Timer_Queue_Test.cpp: Removed the call to
- get_env_global_scale_factor().
-
-Wed Jul 2 15:39:33 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
-
- * ace/Process.cpp: Modified spawn to check for the NO_EXEC
- flag after forking on UNIX. If it's set, spawn returns the
- child pid without exec'ing. Updated the NT version to
- always return the child pid on success.
-
-Wed Jul 02 10:55:23 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/SPIPE_Test.cpp,UPIPE_SAP_Test.cpp: tweaked the static
- functions a bit to avoid warnings about unused statics on VxWorks.
-
-Wed Jul 02 00:16:07 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.14, released Wed Jul 02 00:16:07 1997.
-
-Tue Jul 1 22:49:58 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Strategies_T.h: Changed the return value of all the hash()
- methods to be u_long.
-
- * tests/Map_Manager_Test.cpp (hash): Changed the return value of
- all the hash() methods to be u_long.
-
- * ace/SString.cpp: Changed the return value of all the hash()
- methods to be u_long.
-
- * ace/Hash_Map_Manager: Changed the return value of hash()
- to return a u_long in order to (1) be consistent with
- the return value of hash_pjw() and (2) give the maximal
- range for the hash function. Thanks to Marina Spivak
- <marina@cs.wustl.edu> for reporting this.
-
-Tue Jul 01 14:47:22 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.{h,i} (gettime): use gettime () static function
- to wrap all calls to ACE_OS::gethrtime (). On ACE_WIN32, if the
- global scale factor has not been set, then gettime () uses
- ACE_OS::gettimeofday () instead of ACE_OS::gethrtime (), because
- gettimeofday doesn't need the scale factor.
-
-Mon Jun 30 17:28:53 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Makefile (RELEASE_FILES): Removed the rpc++ directory from the
- main release since this doesn't seem to be widely used and the
- GPL copyleft confuses people.
-
-Mon Jun 30 15:08:04 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: added -lgcc
- to LDFLAGS.
-
-Mon Jun 30 12:00:02 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.13, released Mon Jun 30 12:00:02 1997.
-
-Sat Jun 28 08:27:27 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: added definitions of ACE_SHLIB_HANDLE and
- ACE_DEFAULT_SHLIB_MODE on platforms other than
- ACE_HAS_SVR4_DYNAMIC_LINKING and hpux.
-
- * ace/OS.i: split definitions of ACE_OS::cond_* member
- functions into two: for ACE_WIN32/VXWORKS and all others.
- That allows us to break the circular dependencies between
- those functions and the ACE_OS::sema_* member functions.
-
- * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
- assignments in "if" conditionals with parenthesis to avoid
- g++ warnings.
-
- * ace/{ACE,INET_Addr,OS}.cpp (VxWorks only): added ACE_UNUSED_ARG
- calls.
-
- * ace/Parse_Node.cpp (ACE_Stream_Node,ACE_Dynamic_Node,ACE_Dummy_Node
- constructors): reordered initializers to match declaration order.
-
- * ace/Profile_Timer.h (elapsed_time): commented out unused arg "et".
-
- * ace/Read_Buffer.cpp (rec_read): initialized local variable "c" to
- make sure that it is always defined before use.
-
- * ace/SPIPE_Acceptor.cpp (remove): don't declare local variable
- "result" if ! ACE_HAS_STREAM_PIPES, because it's not used in
- that case.
-
- * ace/config-vxworks5.x-g++.h: added ACE_LACKS_IOSTREAM_FX,
- ACE_LACKS_LINEBUFFERED_STREAMBUF, and ACE_LACKS_SIGNED_CHAR.
-
- * ace/IOStream_T.h (ipfx): comment out unused variable "need".
-
- * platform_vxworks5.2_g++.GNU: added -Wall now that the ACE library
- builds cleanly with it.
-
- * platform_vxworks5.x_g{++,hs}.GNU: renamed 5.x instead of 5.2.
-
- * netsvcs/lib/Token_Handler.cpp: reordered initializers to match
- declaration order.
-
- * tests/SV_Shared_Memory_Test.cpp: moved template specializations
- so that they're not done on platforms that don't support SV IPC.
-
- * examples/IOStream/client/iostream_client.cpp,
- examples/IOStream/server/iostream_server.cpp:
- use ACE_HAS_STRING_CLASS rather than __GNUC__ to determine whether
- the platform has a String class.
-
-Fri Jun 27 13:10:46 1997 Douglas C. Schmidt <schmidt@merengue.cs.wustl.edu>
-
- * ace: Changed the name of config-vxworks5.2-g++.h to
- config-vxworks5.x-g++.h since it works with 5.2 and 5.3.
-
- * examples/Mem_Map/IO-tests/IO_Test.cpp: Fixed some bugs that were
- preventing this from running correctly.
-
-Fri Jun 27 13:37:37 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Svc_Conf.y: Finished the sanity checks started below.
-
-Fri Jun 27 11:55:13 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Queue_T.cpp: added a check for an empty queue in expire
-
-Fri Jun 27 07:53:58 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Message_Queue_Notifications_Test.cpp (handle_output,
- handle_exception,main): added ACE_UNUSED_ARG (fd) to avoid
- compilation warnings about unused arguments.
-
-Fri Jun 27 01:08:54 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Connector.cpp (create_AST): Replaced the gratuitous #ifdef
- for ACE_WIN32 and EXCEPT_MASK with the new CONNECT_MASK. This
- is much cleaner!
-
- * ace/Event_Handler.h: Added a new CONNECT_MASK that defaults to
- READ_MASK | WRITE_MASK (with | EXCEPT_MASK thrown in for Win32).
- Thanks to Irfan for this suggestion.
-
-Thu Jun 26 19:53:11 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
-
- * ace/OS.i (strtok_r): Added check on a null string so we won't go
- past the end of a string.
-
- * performance-tests/Misc/context_switch_time.cpp (main): Added
- get_env_gloval_scale_factor() at the very beginning so that high
- resolution timer can return correct time in millisecond.
-
-Thu Jun 26 15:29:55 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/Timer_Queue_Test.cpp: Changed the random scheduling to use
- past times instead of future time. This should fix some unusual
- behavior of this test. Thanks to Gonzalo A. Diethelm
- <gonzo@ing.puc.cl> for reporting this.
-
-Thu Jun 26 12:38:16 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.12, released Thu Jun 26 12:38:16 1997.
-
-Thu Jun 26 01:11:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Svc_Conf.y: Added some sanity checks to make sure we don't
- segfault when things go wrong during the svc.conf file parsing.
- Thanks to Steve Huston for this suggestion.
-
-Thu Jun 26 08:36:37 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: fix UPTODATE check (for release target) by not
- running it in a sub-shell. Also, added ACE-lessons.html
- to RELEASE_FILES.
-
- * performance-tests/Misc/context_switch_time.cpp: use same priority
- values on Win32 platforms as on Solaris, because thread priority
- increases with increasing priority values on both of those platforms.
-
-Thu Jun 26 01:34:46 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
-
- * performance-tests/Misc/misc.{mak,mdp}: Added makefile for NT.
-
- * ace/{FILE,DEV}.{h,i}: Added the disable(int signum) function to
- prevent NT from disabling a FILE/DEV using socket calls.
-
-Wed Jun 25 12:59:00 1997 <irfan@TWOSTEP>
-
- * ace/Synch_T.h (ACE_SYNCH_PROCESS_MUTEX and
- ACE_SYNCH_NULL_MUTEX): Added new template typedef to the list.
-
- * tests/Message_Queue_Notifications_Test.cpp: New test for
- demonstrating notification qualities of Message_Queue.
-
- * ace/Strategies.h: Added accessors to these classes to make them
- more usable.
-
-Wed Jun 25 10:47:34 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Parse_Node.cpp: Insure that ACE_Object_Node::symbol(void)
- returns 0 if the underlying shared library can't be loaded.
-
- * ace/OS.h: Added a new type, ACE_SHLIB_HANDLE to allow dynamic
- linking using correct types on all platforms that support it.
- Also added a const ACE_SHLIB_DEFAULT_MODE for the 'mode' argument
- when doing a dlopen-like operation.
- Moved the ACE_OSCALL_* macros to this file from OS.i
-
- * ace/OS.i: Moved ACE_OSCALL_* macros out of here and into OS.h.
- Added support for dlopen/close/sym/error on HP-UX. Note - the
- Service_Configurator tests do not run yet on HP - I'm working on
- that.
-
- * ace/Service_Record.{h, i, cpp}: Use new ACE_SHLIB_HANDLE type for
- dynamic loading operations.
-
- * ace/Parse_Node.{h, cpp}: Use new ACE_SHLIB_HANDLE where appropriate.
-
- * ace/Strategies_T.cpp: Use new ACE_SHLIB_HANDLE type.
-
-Wed Jun 25 02:36:05 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
-
- * ace/OS.i (gmtime_r): Modified the implementation of gmtime_r
- when OS doesn't provide one. Notice that the implementation
- only simulate the semantic and is not thread-safe.
-
- * ace/OS.h: Moved definition of ACE_SHLIB_HANDLE typedef and
- ACE_DEFAULT_SHLIB_MODE global variable for Win32 to where it
- belongs.
-
- * ace/OS.i: Changed the return type of dlopen() when ACE_HAS_UNICODE to
- ACE_SHLIB_HANDLE.
-
- * ace/OS.{h,i}: Moved ACE_OSCALL and ACE_OSCALL_RETURN for WIN32
- from OS.i to OS.h.
-
-Wed Jun 25 01:23:58 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * ace/OS.i (strtok_r): Modified the implementation when OS does
- not provide reentrant strtok_r so that our imp. comforms with
- the semantic of strtok_r ().
-
-Wed Jun 25 00:37:56 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.11, released Wed Jun 25 00:37:56 1997.
-
-Tue Jun 24 21:30:53 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
- assignments in "if" conditionals with parenthesis to avoid
- g++ warnings.
-
-Tue Jun 24 18:15:46 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * ace/Reactor.cpp (wait_for_multiple_events): Modified the way to
- manipulate timeout value so that we can differentiate when there
- are timeout events to be handle from no timer and we want to
- wait indefinitely.
-
-Tue Jun 24 16:52:22 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: reverted ACE_hrtime_t to unsigned __int64 with VC++.
- This might break something, but we need to know what.
-
-Tue Jun 24 16:38:52 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * Added Visual C++ 5.0 specific workspace (.dsw) and project (.dsp)
- files to both the ace and tests subdirectory. ACE.DSW in the root
- directory contains all the project files, so a batch build should
- be able to build all the project files.
-
-Tue Jun 24 14:27:47 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_{Hash,Heap,List,Wheel}_T.cpp: Changed cancel (type..)
- to call cancellation() even if there are no timers to cancel.
- This causes the correct behavior of calling handle_close ()
- during expire when handle_timeout() returns -1. Thanks to
- Hamutal Yanay <hamutal_yanay_at_quantum@mail.icomverse.com> for
- pointing this out.
-
- * tests/Timer_Queue_Test.cpp: Updated to correctly test this.
-
-Tue Jun 24 13:02:51 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/SString.h (ACE_SString ctor): changed "allocator" to "alloc".
- Thanks to Brian Mendel <bmendel@mdc.com> for reporting this.
-
-Tue Jun 24 12:58:28 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.4*: Shuts up useless warnings
- about multiply defined template instances.
-
-Tue Jun 24 12:50:52 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.10, released Tue Jun 24 12:50:52 1997.
-
-Tue Jun 24 00:44:30 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
-
- * ace/SPIPE.{h,i}: Added the disable(int signum) function to
- prevent NT from disabling an SPIPE using socket calls.
-
-Mon Jun 23 22:14:39 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Svc_Conf*: Changed the name of the YYSTYPE field
- ACE_Static_Node_ to static_node_ to be consistent with the other
- fields.
-
-Mon Jun 23 18:28:55 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.cpp: added auto_basic_array_ptr specialization.
-
- * ace/Service_Config.cpp, tests/Future_Test.cpp,
- examples/Threads/future[12].cpp: added auto_basic_ptr
- specializations.
-
- * include/makeinclude/platform_vxworks5.2_g++.GNU:
- reworked to supported different targets, instead of only PowerPC.
-
-Mon Jun 23 16:06:35 1997 James C. Hu <jxh@swarm.cs.wustl.edu>
-
- * ace/OS.i: Moved definition of sema_* methods to follow cond_*
- methods to remove compiler warnings on SGI.
-
-Mon Jun 23 09:42:08 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/Timer_Queue_Test.cpp: added testing for cancellation
- during expire (when of handle_timeout() in an event handler
- returning -1).
-
-Mon Jun 23 09:18:39 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: added up-to-date check for "make release" from
- /project/adaptive/ACE_wrappers. Also, "make release" now
- adds release entry to latest ChangeLog.
-
- * ace/Makefile: build shared library before static library.
- This appears to fix a problem with Sun C++ 4.{1,2} possibly
- related to its template instantiation scheme. If the
- static library is built first, then .shobj/Reactor.so
- and .shobj/Timer_Hash.so (and possibly others) fail to
- build due to ACE_TimeValue::normalize () "relocations remain
- against allocatable but non-writable sections".
- Thanks to Steve Huston <shuston@riverace.com> and
- Satoshi Ueno <satoshi.ueno@gs.com> for reporting this, and
- to Satoshi for verifying the fix.
-
- * ace/ACE.cpp (terminate_process): removed used of
- ACE_OSCALL_RETURN macro because its defined in OS.i, and so
- not available if inlining is disabled.
-
- * ace/Auto_Ptr.{h,i}: made "p_" protected instead of private
- so that it can be accessed with the new class arrangement.
- Also, made the auto_array_ptr operator-> const.
-
- * ace/Sched_Params.cpp (previous_priority, VxWorks only):
- removed ACE_UNUSED_ARG (policy) because policy is used in
- this function.
-
- * netsvcs/lib/TS_Clerk_Handler.cpp (parse_args): wrapped TCHAR
- argument to sizeof in parenthesis.
-
-Mon Jun 23 09:12:04 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
-
- * ace/Auto_Ptr.i (auto_array_ptr): Fixed a typo.
-
-Mon Jun 23 08:03:46 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Auto_Ptr.h: changed inheritance of auto_basic_array_ptr in
- auto_array_ptr to include the template parameter X.
-
- * ace/IOStream_T.i: removed default parameter in the definition
- of ACE_Streambut_T::recv_n() and ACE_SOCK_Dgram_SC::recv_n()
-
-Mon Jun 23 01:13:15 1997 <irfan@TWOSTEP>
-
- * ace/OS.cpp (fork_exec): Fixed the usage of ACE_WIDE_STRING.
-
- * test_registry_iterator.cpp (main): Fixed the usage of
- ACE_WIDE_STRING.
-
- * netsvcs/lib/TS_Clerk_Handler.cpp (parse_args): Fixed the usage
- of ACE_WIDE_STRING.
-
- * ace/Auto_Ptr.h: Added support for basic types by seperating the
- auto_ptr classes into two. One that requires the -> operator
- support and the other that does not. The former inherits from
- the latter.
-
- * ace/{FILE,DEV,SPIPE}_Addr.h: Added support for multibyte and
- wide character addr_to_string and string_to_addr functionality.
-
- * ace/Connector.cpp && ace/Acceptor.cpp (info): Fixed sizeof bug.
-
- * examples/Connection/blocking/SPIPE: Added UNICODE support for
- this example.
-
- * ace/OS.h: Added new macro ACE_MULTIBYTE_STRING.
-
- * ace/ACE.cpp (terminate_process): Fixed unused args errors.
-
-Sun Jun 22 09:58:36 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Released version 4.2.9 for testing.
-
- * ace/Log_Msg.cpp (open): Changed the use of ACE_LOG_MSG-> within
- the open() method to use this-> in order to avoid deadlocks.
- Thanks to Per Andersson for reporting this.
-
- * ace/ACE.cpp: Changed the use of __SVR4 and __unix to sparc and
- unix to work better with various UNIX environments. Thanks to
- Michael R. MacFaden <mrm@cisco.com> for these changes.
-
- * ace/Handle_Set.cpp (count_bits): Added special code to handle
- the case where fdmask is typedef'd as a long rather than an int.
- Thanks to Eric Newton <ecn@smart.net> and James Johnson for
- reporting this.
-
- * ace/IOStream.h: Changed the name of QuotedString to
- ACE_Quoted_String to be consistent with the ACE naming scheme.
- Thanks to James Johnson for suggesting this.
-
- * ace/IOStream_T.i: Added this new file to split off the inlined
- code from the header file.
-
- * ace/ACE.cpp (terminate_process): Remove the
- ACE_UNUSED_ARG(signum) from terminate_process(). Thanks to Wei
- Chiang for reporting this.
-
-Sun Jun 22 17:19:18 1997 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Threads/process_manager.cpp (main): replaced call to
- kill with terminate.
-
-Sat Jun 21 10:48:34 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Reactor/FIFO: Added a new example that illustrates
- how the Reactor and the FIFO wrappers work together. Thanks
- to Johannes Gutleber <Johannes.Gutleber@cern.ch> for sending
- this.
-
- * tests/Time_Service_Test.cpp (main): Replaced the kill() call
- with the terminate() call since kill() isn't portable across
- platforms.
-
- * ace/Process: The kill() method on this class was being used
- incorrectly. I've created a new method called terminate() that
- terminates the process.
-
- * ace/Process_Manager: Renamed the kill() method to terminate()
- and updated the implementation to use the new
- ACE::terminate_process() call.
-
- * ace/ACE: Moved the incorrect Win32 and Chorus implementations of
- ACE_OS::kill() and put them in a new static method called
- ACE::terminate_process().
-
- * ace/ACE: Changed the name of the is_process_active() to the
- more concise process_active().
-
- * ace/OS.i: Added an implementation of ACE_OS::kill() for Chorus.
- Note that this doesn't behave as UNIX does -- it kills the
- process id rather than sending a signal! Thanks to Wei Chiang
- <chiang@tele.nokia.fi> for these fixes.
-
- * examples/Reactor/Misc/notification.cpp: Added patches to run
- this example under Chorus. Thanks to Wei Chiang
- <chiang@tele.nokia.fi> for these fixes.
-
- * ace/Connector.cpp (create_AST): Changed the order of some
- instructions in Connector::create_AST method to make it more
- safer to use in multi-thread environment. Thank to Paul Han
- <phan@CCGATE.HAC.COM> for reporting the problem and the fix.
-
- * ace/Connector.cpp (create_AST): Make sure to pass in the "mask"
- when calling remove_handler() so that we get the right set of
- bits removed from the Reactor.
-
- * tests/Reactor_Timer_Test.cpp (class Time_Handler): Changed int
- to long to avoid type conversion problems on 64 bit SGI. Thanks
- to Fred LaBar <flabar@fallschurch.esys.com> for reporting this.
-
- * examples/Reactor/FIFO: Added a test program to illustrate the
- interaction of the ACE Reactor with the FIFO IPC mechanism.
- Thanks to Johannes Gutleber <Johannes.Gutleber@cern.ch> for this
- test.
-
- * examples/Reactor/Misc/pingpong.cpp: Added support for Chorus.
- Thanks to Wei Chiang <chiang@tele.nokia.fi> for this.
-
- * ace: Added a number of minor changes to signal assignment
- code so that ACE will compile with Tandem NonStop. Thanks
- to Jan Perman <uabjjpp@osd.ericsson.se> for these fixes.
-
- * ace/config-tandem.h: Added a new config file for the
- Tandem NonStop-UX 4.2MP platform. Thanks to Jan Perman
- <uabjjpp@osd.ericsson.se> for contributing this.
-
- * include/makeinclude/platform_tandem.GNU: Added a new platform
- file for the Tandem NonStop-UX 4.2MP platform. Thanks to
- Jan Perman <uabjjpp@osd.ericsson.se> for contributing this.
-
- * ace/config-unixware-2.1.2-g++.h: Added a new config file for
- UNIXWARE 2.1.2. Thanks to Ganesh Pai (gpai@voicetek.com) for
- contributing this.
-
- * include/makeinclude/platform_unixware_g++.GNU: Updated the
- UNIXWARE platform config file to work for version 2.1.2. Thanks
- to Ganesh Pai (gpai@voicetek.com) for contributing this.
-
- * ace/Handle_Set.cpp (count_bits): Added another 0xff mask to
- prevent problems with sign extension on machines with 32 bit
- ints and 64 bit longs. Thanks to James Johnson for reporting
- this.
-
- * ace/OS.h: Updated all of the ACE_DEFAULT* macros in OS.h so that
- they can be overridden by #defines in the config.h file. Thanks
- to Chuck Gehr for suggesting this.
-
-Thu Jun 19 22:20:20 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h (VxWorks/g++ only): added horrible hack to work around
- mismatch of memcmp, etc., prototypes in <string.h>.
-
- * ace/OS.i: reordered many function definitions to avoid use
- before definition. Building with g++ 2.7.2 on VxWorks 5.3.1
- revealed them.
-
- * ace/config-vxworks5.2-g++.h: removed ACE_HAS_STRING_CLASS and
- ACE_HAS_GNU_CSTRING_H, because those aren't distributed with
- Tornado 1.0.1.
-
-Thu Jun 19 15:31:53 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Wheel_T.cpp: Fixed problem with expire () not
- expiring timers with a timeout of the current time. This was
- causing problems with Timer_Queue_Test when high profile
- timers were disabled (such as Windows NT when the
- environment variable ACE_SCALE_FACTOR was undefined)
-
-Wed Jun 18 19:43:35 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Signal.cpp: 'removed "const" from #define of
- ACE_MAX_SIGNAL_HANDLERS because it broke Irix 6.2 build. Thanks
- to Gonzalo A. Diethelm <gonzo@ing.puc.cl> for reporting this.
-
- * examples/Threads/task_four.cpp (Invoker_Task::svc): fixed typo,
- n_tasks instead of ntasks.
-
-Wed Jun 18 11:25:14 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
-
- * examples/Threads/{task_four,token}.cpp: Changed the use of
- cerr/cout to ACE_DEBUG macro. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for pointing these out.
-
-Tue Jun 17 15:11:09 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5-sunc++-4.x.h,
- include/makeinclude/platform_sunos5_sunc++.GNU: support enabling of
- exception handling via "exceptions=1" make flag. Exception handling
- does seem to work with Sun C++ 4.2, even on MP machines, if patch
- 104631-02 "C++ 4.2: Jumbo Patch for C++ 4.2 on Solaris SPARC"
- is applied. Please beware that enabling of exception handling can
- adversely affect peformance, even if the program doesn't use it.
- So, we haven't enabled it by default. Thanks to Chris Cleeland
- for suggesting not to enable it by default.
-
- * ace/IOStream.h: added #include of "ace/config.h" so that
- ACE_LACKS_ACE_IOSTREAM can be checked. Thanks to Ganesh Pai
- <gpai@voicetek.com> for reporting this problem.
-
- * ace/ACE.cpp (get_handle): use /dev/udp instead of /dev/ip on
- SVR4 machines because it has other read permission by default
- (on Solaris 2.x).
-
- * ace/ACE.cpp (get_ip_interfaces): use auto_array_ptr instead of
- auto_ptr so that the array gets deleted properly, and zero it
- out to avoid unitialized memory read reports from Purify.
-
- * ace/Timer_Hash_T.cpp (cancel): added "[]" to delete of timer_ids
- array. Purify rules.
-
- * Timer_Queue_Test.cppc (test_performance): added "[]" to delete of
- times array. Purify rules.
-
-Tue Jun 17 15:31:01 1997 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp: Fixed get_ip_interfaces (and count_interfaces) to
- work properly on HP-UX (and probably other similar UNIXes). Needed
- to work with non-IP interfaces present, and fixed to copy the
- IP address without the fudge factor being applied.
-
-Tue Jun 17 14:02:01 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
-
- * ace/{Free_List.h,Free_List.cpp,Timer_Queue_T.h}: Added #include
- "ace/Synch_T.h" to Free_List.h and removed related inclusion
- from Free_List.cpp and Timer_Queue_T.h. Thanks to
- Jack Erickson <jack@cibc.com> for reporting this problem.
-
-Tue Jun 17 09:41:48 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Enum_Interfaces_Test.cpp: changed name of log file to match
- the program name, so that the one-button test can easily find it.
-
-Tue Jun 17 04:58:38 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
-
- * ace/Timer_Queue_T.h: Added include file "ace/Synch_T.h" to avoid
- compilation errors in SC 4.1. We didn't notice this because
- most of us have moved to SC 4.2. Don't know why this didn't
- cause any problem in SC 4.2. Thanks to Jack Erickson
- <jack@cibc.com> for reporting this bug.
-
-Mon Jun 16 22:25:18 1997 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp: Fixed conditional compiles to compile the
- interface counting code for HP - it reports 0 interfaces,
- so it needs more debugging still.
-
- * include/makeinclude/platform_hpux_aCC.GNU: added -g to link
- command for building shared library.
-
- * tests/Buffer_Stream_Test.cpp: fixes to execute correctly and only
- fail assertions on real failures.
-
-Mon Jun 16 19:05:13 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Free_List.cpp: added #include ace/Synch.h, needed by
- Free_List.i. Fixes compile errors on HP-UX.
-
-Mon Jun 16 10:59:55 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Wheel_T.cpp: Changed expire () so it doesn't
- access past the end of an array when it finds nothing to
- expire. Thanks to Norbert Rapp
- <norbert.rapp@nexus-informatics.de> for catching this.
-
-Sun Jun 15 03:44:21 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * examples/Threads/thread_specific.cpp (worker): Changed the
- output of diagnostics from using cout to using printf. Also
- corrected several portability problems. Thanks for Chuck Gehr
- <gehr@sweng.stortek.com> for pointing these out.
-
- * ace/OS.i (thread_mutex_trylock): Corrected the code for NT. Now
- this function returns 0 if lock is obtained and -1 otherwise.
- Thanks to Robert V. Head <rhead@virtc.com> for noticing this.
-
- * performance-tests/Synch-Benchmarks/Synch_Tests.{mdp.mak}:
- Added project workspace and makefile for NT to this directory.
-
- * performance-tests/Synch-Benchmarks/svc.conf:
- * performance-tests/Synch-Benchmarks/{Options,Benchmark}.h:
- * performance-tests/Synch-Benchmarks/*.cpp: Reworked these
- files to have them compiled on NT.
-
-Sat Jun 14 03:53:13 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * performance-tests/Synch-Benchmarks/pipe_proc_test.cpp (class
- Pipe_Proc_Test): Changed the type of pipe_handles[] from int to
- ACE_HANDLE.
-
- * performance-tests/Synch-Benchmarks/sysvsema_test.cpp: When
- creating the semaphore, explicitly cast the key value to (key_t)
- since NT couldn't handle the conversion.
-
-Fri Jun 13 19:32:03 1997 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp: Fixed count_interfaces to compile on non-SVR4
- systems such as HP-UX. Not tested yet.
-
- * ace/OS.i: Fixed mis-arranged conditional compile for HP-UX in
- asctime_r.
-
-Fri Jun 13 03:13:51 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * ace/config-win32-common.h: Added a "pragma comment" directive to
- direct MSVC to link in mswsock.lib automatically. Thanks to
- Bill Tang <btang@magellan.com> for reminding this.
-
- * ace/ace.{mak,mdp}: Removed explicit inclusion of mswsock.lib.
- Thanks to Bill Tang <btang@magellan.com> for reminding this.
-
- * examples/OS/Process/Process.{mdp,mak}: For some reasons, I got
- an "unknown link error, please refer to documentation for
- appropriate technical supports" when building this example on NT
- (didn't help much, did it?) Reassigning the linked library
- solved the problem.
-
- * examples/OS/Process/process.cpp: Updated class name
- ACE_ProcessEX to ACE_Process because ACE_ProcessEX no longer
- exists. Also, all exec'ed programs' absolute names have been
- changed and let the environment variable "path" to decide which
- program(s) to exec.
-
-Thu Jun 12 15:48:16 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/ACE.cpp (get_ip_interfaces): Corrected code in the BSDish
- section so that it at least compiles on Linux. I haven't tested
- this AT ALL.
-
- * ace/Timer_Queue_T.cpp (calculate_timeout): When this was called
- with the default argument from handle_events(), max_timeout was
- passed as zero, which would cause a SEGV when attempts were made
- to deref it. Added protection to simply return a zero ptr in that
- case.
-
-Thu Jun 12 13:18:03 1997 Steve Huston <shuston@riverace.com>
-
- * ace/OS.{h,i,cpp}: Changes for HP-UX 10 primarily. Threads
- support for DCE Draft 4 threads (bundled with HP-UX 10).
- Correct usage of reentrant C library functions for HP-UX.
-
- * ace/OS.i: Changed timeout argument to 2nd select function to
- allow the compiler to pick a conversion operator. As it was,
- HP compiler would not compile it.
-
- * ace/Service_Object.cpp: When deleting the service memory pointed
- to by a void *, use "operator delete" rather than deleting a void,
- which is prohibited by the current ANSI C++ draft.
-
- * ace/config-hpux-10.x.h: This is now a compiler-independent header
- file, and is included by config-hpux-10.x-hpc++.h. This file
- contains all correct settings for HP-UX 10.x, and compiler-specific
- config files should use this - see config-hpux-10.x-hpc++.h.
-
- * ace/config-hpux-10.x-hpc++.h: New config file for either of the HP
- compilers (HP C++ or HP aC++). It figures it out internally, and
- uses config-hpux-10.x.h for OS details.
-
- * include/makeinclude/rules.lib.GNU: Allow for doing a PRELIB step
- when building a shared library, and not using .shobj/*.so files.
- This allows HP aC++ to close all template instantiations for the
- entire library at once, rather than separately, reducing the
- size of the resultant library significantly.
-
- * include/makeinclude/platform_hpux-aCC.GNU: build libraries with
- templates instantiated all at once. Compile with flags for using
- the reentrant versions of C library functions.
-
-Wed Jun 11 15:20:15 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/Timer_Queue_T.{h,cpp} (calculate_timeout): Changed the
- second parameter the_timeout from a ref. to a ptr. to a ptr in
- order to avoid compilation warning. Since the pointer itself is
- not modified within the function, it's ok to change this.
-
- * ace/Reactor.cpp (wait_for_multiple_events): Added ACE_Time_Value
- the_timeout as a place holder for timeout value when
- max_wait_time is NULL. Otherwise,
- Timer_Queue::calculate_timeout won't process the timer queue
- even it's not empty.
-
-Wed Jun 11 11:14:29 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * include/makeinclude/platform_mvs.GNU (RANLIB): Requested change
- from Check Gehr (gehr@sweng.stortek.com), RANLIB = echo
-
-Wed Jun 11 04:47:52 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * ACE.cpp (count_interfaces): Two bugs were corrected here. Both
- were typo.
-
- * tests/Timer_Queue_Test.cpp: Added include file ace/Timer_Queue.h
-
-Tue Jun 10 16:02:52 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/SString.{h,cpp}: Changed the parameters in CString::substring()
- and WString::substring(). Removed const and changed length to a
- ssize_t because of signed/unsigned comparison warnings.
-
- * ace/ACE.cpp: Changed a loop variable in get_ip_interfaces() to
- a size_t because of a signed/unsigned comparison warning.
-
-Tue Jun 10 12:47:49 1997 <irfan@TWOSTEP>
-
- * ace/SString.cpp (operator = and operator +=): There were two
- bugs here. operator= forgot to tack on the NULL terminator
- after the memcpy() and operator+= appended the second string
- incorrectly. Thanks to Michael R. MacFaden <mrm@cisco.com> for
- pointing these out.
-
-Tue Jun 10 12:16:04 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Makefile: Updated to reflect newly added files
-
- * ace/Proactor.cpp: Removed template specializations.
-
- * ace/Reactor.cpp: Removed some template specializations.
-
- * ace/Timer_Hash.h: Added an include for Timer_Heap.
-
- * ace/Timer_Hash_T.cpp: Changed a reference to ACE_Timer_Node
- to ACE_Timer_Node_T<TYPE>
-
- * ace/Timer_{Hash,Heap,List,Wheel}_T.h: Changed #include
- "ace/Timer_{...}.h" to "ace/Timer_{...}_T.h".
-
- * ace/Timer_Queue.cpp: Removed some template specializations.
-
- * ace/Timer_Queue.h: Removed the including of Timer_Queue.cpp
- since there are no templates to warrant it.
-
- * ace/Timer_{Hash,Heap,List,Wheel}.cpp: Added these and put the
- appropriate template specializations here.
-
-Tue Jun 10 02:08:25 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
-
- * examples/Log_Msg/README: Revised.
-
- * examples/Log_Msg/test_log_msg.cpp: Revised program output so
- that it's clearer to explain.
-
-Mon Jun 09 15:46:41 1997 <irfan@TWOSTEP>
-
- * OS.i (mutex_lock): When WaitForSingleObject returns
- WAIT_ABANDONED, the lock is held by the calling thread.
- Therefore we must return 0 from the method. I have added a new
- mutex_lock() method that takes an extra "abandoned" parameter.
- This is set wehen the mutex is abandoned. Thanks to Dieter
- Quehl <dietrich.quehl@med.siemens.de> for pointing this out.
-
-Mon Jun 9 02:31:36 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
-
- * tests/Sigset_Ops_Test.cpp (main): Comment out testing of invalid
- sigset checking for most platforms don't seem to support it.
- Perhaps the ACE's sigset* functions should remove this check for
- compatibility.
-
-Sun Jun 8 11:39:06 1997 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/OS.i (set): There was a typo here where
-
- ((long) (d - (double) l)) * 1000000
-
- should be
-
- (long) ((d - (double) l) * 1000000)
-
- since otherwise the values are always 0. Thanks to Jim Crossley
- <jim@lads.com> for reporting this.
-
- * tests/Enum_Interfaces_Test.cpp (main): Changed ACE_UINT32 to
- size_t to be consistent with the class definition. Thanks to
- Nanbor Wang for reporting this.
-
- * ace/Token.h: Added some no-op method for ACE_Token so that it
- will still compile even if ACE_HAS_THREADS isn't defined.
-
-Sun Jun 8 01:37:52 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
-
- * examples/Log_Msg/README: Added a README file.
-
- * tests/Sigset_Ops_Test.cpp (main): bug fixed.
-
-
-Sat Jun 7 16:40:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/SString.h (string.): Added a substring() member function to
- ACE_*String classes. Thanks to Michael MacFaden <mrm@cisco.com>
- for contributing this.
-
- * ace/ACE: Added a new method called
-
- int get_ip_interfaces(count, address_array)
-
- which will query the OS kernel for the IP addresses for each network
- interface found and return a count and array of ACE_INET_Addr objects.
- The reason for adding this method is that most client apps
- assume gethostbyname(uname|gethostname)) will work. If the
- nameservices is misconfigured/broken or the machine is multi-homed,
- the client apps have alot of coding to do to figure out if an inteface
- represents a local address or not. On UNIX, this includes
- the loopback addr. On NT, the loopback addr is not added
- (but may change the impl if others think this useful).
- Thanks to Michael MacFaden <mrm@cisco.com> for contributing
- this.
-
- * ace/Synch[_T]: Changed all the classes so that internal instance
- variables are now protected rather than private. This allows
- greater flexibility if there's a need to subclass
- (which shouldn't occur very much...). Thanks to
- Reza Roodsari <reza@sprynet.com> for suggesting this.
-
-Fri Jun 06 21:30:57 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Timer_{Hash,Wheel}_T.cpp: added #includes of
- ace/High_Res_Timer.h. Also, in Timer_Wheel_T.cpp (cancel),
- moved the declaration of "i" out of the loop because it's
- used in two different loops.
-
-Fri Jun 06 17:11:13 1997 <irfan@TWOSTEP>
-
- * OS.i (sleep): If ACE_POLL_IS_BROKEN is defined, use select() to
- do micro second sleeps.
-
- * ace/CORBA_Handler.h (ACE_CORBA_*): The new version of Orbix
- (2.2C01) on NT finally supports namespaces. So now the macros
- ACE_CORBA_n need to be defined using the "::" and not the "_"
- for NT if the new Orbix is being used. Thanks to John Morey
- (jmorey@tbi.com) for the changes.
-
-Fri Jun 06 02:16:08 1997 <nw1@COYOTE>
-
- * Sigset_Ops_Test.cpp: Added to test correct implementation of
- sigset manipulating functions.
-
- * run_tests.{sh,bat}, Makefile: Added Sigset_Ops_Test.
-
-Thu Jun 05 20:32:39 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Timer_Queue_Test.cpp (randomize_array): removed static
- qualifier now that it's a template function. It caused a warning
- with Sun C++.
-
-Thu Jun 05 18:28:36 1997 <irfan@TWOSTEP>
-
- * ace/Asynch_Acceptor.cpp (open): The Proactor was beening passed
- implicitly. I have made this explicit by making this a parameter
- to open. Thanks to MehulM@spa-marketing.com (Mehul Mahimtura)
- for this.
-
-Thu Jun 5 12:06:45 1997 Chris Cleeland <cleeland@merengue.cs.wustl.edu>
-
- * ace/Timer_Queue_T.h (ACE_Timer_Queue_T): Overloaded
- calculate_timeout with a version that accepts a pointer to
- storage for the ACE_Time_Value as an argument. This has a small
- performance win over the other b/c it does not take a lock. The
- change was made after examining Quantify output for TAO and
- observing that this lock caused
- Reactor::wait_for_multiple_events() to consume a substantial
- percentage of processing time.
-
- * ace/Reactor.cpp (wait_for_multiple_events): This now uses a
- different version of calculate_timeout() that doesn't require
- taking a lock.
-
-Thu Jun 05 08:48:49 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Reactor.cpp: added template specializations.
-
- * ace/Timer_Queue_T.cpp (ACE_Timer_Queue_T ctor): rearranged
- initializers to match declaration order.
-
-Thu Jun 5 06:08:06 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * ace/OS.i (sigaddset, sigdelset, sigismember): NSIG itself is
- invalid and must be excluded.
-
-Wed Jun 04 21:24:35 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5-g++.h: fixed typo: #define instead of
- #defined ACE_HAS_CLOCK_GETTIME.
-
- * ace/config-sunos5.5-sunc++*.h: Combined
- config-sunos5.5-sunc++-4.x.h and config-sunos5.5-sunc++-4.1.h,
- and removed the latter. The Orbix config file now #includes
- config-sunos5.5-sunc++-4.x.h and adds its differences.
-
- * include/makeinclude/platform_sunos5_sunc++*.GNU: Combined
- platform_sunos5_sunc++.GNU and platform_sunos5_sunc++-4.1.GNU,
- and removed the latter. platform_sunos5_sunc++_orbix.GNU now
- includes the non-orbix file and adds its differences. Also,
- added optional CC -fast support. To enable, just add "fast=1"
- to your "make" invocation.
-
-Wed Jun 04 12:21:41 1997 <irfan@TWOSTEP>
-
- * tests: Made the following config files consistent:
- UNIXclerk.conf UNIXtokens.conf Win32clerk.conf Win32server.conf
- Win32tokens.conf
-
- * ace/OS.h: Made sure that some #defines were guarded for
- redefinition specially for the Bristol (that provides Win32 API
- on AIX) headers. Thanks to Rich Christy (rchristy@cccis.com) for
- suggesting these changes.
-
- * ace/Handle_Set.h: Changed the type of handle_index from int to
- u_int on Win32. Thanks to Jack Erickson (jack@cibc.com) for
- suggesting this.
-
- * ace/FILE.h (ACE_FILE_STREAM): Fixed this #define from
- ACE_FILE_Stream to ACE_FILE_IO.
-
-Tue Jun 3 21:23:48 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Timer_{Queue,Hash}: Fixed some uses of template typedefs
- since GCC is too lame to handle them correctly. Therefore, I
- had to expand TIMER_QUEUE into the ugly fully expanded name.
-
- * ace/Timer_Queue_T.cpp: Moved the implementation of
- ACE_Event_Handler_Handle_Timeout_Upcall from Timer_Queue.* into
- Timer_Queue_T.* since only template classes should go into *_T.*
- files.
-
-Tue Jun 3 18:16:02 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Queue.*:
-
- Templatized ACE_Event_Handler_Handle_Timeout_Upcall with LOCK
-
- Added deletion() to Upcall Functors. This gets called if there
- are any nodes in a queue and the queue's destructor is called
-
- * ace/Timer_Queue_T.*:
-
- Changed iterator accessor to public
-
- Removed two template parameters from ACE_Timer_Node_T so only
- EVENT is left. Added accessors instead of using friendships,
- and deleted the constructor (use set() instead)
-
- Changed iterator into a general iterator (with first(), next(),
- isdone() and item () methods)
-
- Added remove_first () method that removes and returns the
- earliest timer in the queue
-
- Added ACE_Free_List support
-
- * ace/Timer_Heap*:
-
- Added upcall functor deletion() support
-
- Added remove_first () method that removes and returns the
- earliest timer in the queue
-
- * ace/Timer_List*:
-
- Changed to double-linked circular list and changed the timer_id
- to be a pointer to the node (like it is in Timer Wheel and Timer
- Hash)
-
- Added upcall functor deletion() support
-
- Added remove_first () method that removes and returns the
- earliest timer in the queue
-
- Added check for timer_id of -1 so we don't try to delete the
- error code if it is passed into cancel
-
- Changed Timer_List_Iterator_T constructor parameter from list to
- listParm to resolve a conflict with STL. Thanks to Todd
- Barkalow <barkate@louisville.stortek.com> for this fix
-
- * ace/Timer_Wheel*:
- Added HighRes timer support
-
- Added upcall functor deletion() support
-
- Added earliest_pos_ variable to keep track of the list with
- the earliest node
-
- Created an expire that is specialized for ACE_Timer_Wheel
-
- Added remove_first () method that removes and returns the
- earliest timer in the queue
-
- Added check for timer_id of -1 so we don't try to delete the
- error code if it is passed into cancel
-
- * ace/Timer_Hash*:
-
- Added Timer Hash Queue - This is a class that can take another
- timer queue type (Timer List, Timer Heap...) as a template
- parameter (BUCKET) and then do an intermediate hash of a timer
- to determine which queue among a table of timer queues to put
- the timer into. ACE_Timer_Hash is typedefed to the Timer List
- version and ACE_Timer_Hash_Heap is typedefed to the Timer Heap
- version
-
- Added HighRes timer support
-
- Added upcall functor deletion() support
-
- Created an expire that is specialized for ACE_Timer_Hash
-
- Added remove_first () method that removes and returns the
- earliest timer in the queue
-
- Added check for timer_id of -1 so we don't try to delete the
- error code if it is passed into cancel
-
- * ace/Free_List.*
-
- Added ACE_Free_List<T> and ACE_Locked_Free_List<T, LOCK>. These
- are used to maintain free lists of nodes. ACE_Free_List is a
- abstract class where ACE_Locked_Free_List is a concrete one that
- has a mutex parameter (LOCK).
-
- * ace/OS.h:
-
- Added ACE_DEFAULT_TIMER_HASH_TABLE_SIZE constant
-
- Added ACE_DEFAULT_FREE_LIST_* constants
-
- * ace/Proactor.*:
-
- Added deletion() to Upcall Functors. This gets called if there
- are any nodes in a queue and the queue's destructor is called.
-
- * tests/Timer_Queue_Test.cpp:
-
- Added HighRes timer support
-
- Changed the array of timer queues into a list (to more easily
- add/remove/comment out an entry)
-
- Added some more performance tests with randomization
-
-Tue Jun 3 00:26:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Changed the access protection for ACE_cond_t,
- ACE_sema_t, ACE_event_t, and ACE_rwlock_t so that it is
- protected rather than private. In addition, added ACE_Export to
- all of these classes so that they are visible outside of a DLL.
- Thanks to Ivan Murphy for these suggestions.
-
- * ace/OS.h: Changed the value of ACE_MAX_DEFAULT_PORT on Win32 to
- 0 in order to work around a nasty NTism... Thanks to Jon Biggar
- <jon@sems.com> for reporting this.
-
-Mon Jun 2 16:29:48 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * ace/Process.*:
- - Fixed ACE_Process::spawn to close descriptors after having
- been duped.
- - Fixed ACE_Process::spawn to exit () after an error is
- encountered in the child process, rather than returning.
- - Fixed ACE_Process_Options::set_handles to duplicate handles
- that are passed in, and then to close them in the destructor.
-
-Sun Jun 01 22:21:28 1997 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Threads/tss1.cpp: made some globals non-static or
- const so that tss1 will link with Sun C++ 4.2 -O3. I don't
- know what the problem is; it only shows up with optimization
- enabled. These fixes work around it.
-
-Sun Jun 01 20:29:20 1997 James CE Johnson <jcej@lads.com>
-
- * ace/IOStream*:
- - removed the old 4/5/97 comments
- - made operator>>, << on QuotedString a template
-
- This last makes QuotedString much more functional. As
- templated functions, the QuotedString can now be used on
- other iostream-type objects. The previous method of
- defining the function only for the type of ACE_IOStream
- being created was didn't provide this flexibility.
-
-Sat May 31 07:01:22 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Msg.cpp (open): To avoid handle leaks, we need to
- shutdown the message_queue before trying to reopen it. Thanks
- to Per Andersson for this suggestion.
-
- * include/makeinclude/platform_osf1_4.0.GNU: Added a new platform
- config file. Thanks to James Johnson for this.
-
-Fri May 30 16:25:25 1997 <irfan@TWOSTEP>
-
- * CPP-inclient.cpp (main): Properly compare to the "quit"
- string. Thanks to "Andre Arpin" <arpin@adan.kingston.net> for
- reporting this.
-
- * tests/UPIPE_SAP_Test.cpp (connector): Changed the eof marker in
- the strings.
-
-Fri May 30 14:04:44 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.4_sgic++.GNU: added to make
- things compile on latest SGI machines. Removed +pp and -woff...
- flags from the CCFLAGS variable. Added new -woff flags to hide
- other warnings.
-
- * ace/config-irix6.4-sgic++*.h: copied corresponding configs from
- irix6.2 and removed ACE_HAS_SVR4_TIME, since this seems to be no
- longer true of irix6.4.
-
-Fri May 30 02:39:39 1997 <irfan@TWOSTEP>
-
- * ace/Connector.cpp
-
- (create_AST): On Win32, added the except mask when registering
- with the Reactor to find out when asynchronous connects
- complete.
-
- (Svc_Tuple): Made sure that the default value for the timer_id
- in AST is not 0. 0 is a valid timer_id. I have changed this to
- be -1.
-
- (handle_exception): Added this method. On
- Win32, the except mask must also be set for asynchronous
- connects.
-
-Thu May 29 21:28:25 1997 <harrison@samba.cs.wustl.edu>
-
- * Process.*: Removed the ACE_Process_Old class.
-
- * Local_Tokens_T.*: Removed all these files. They have not been
- used by the token library for some time. They were mistakenly
- put in the release.
-
-Thu May 29 02:00:14 1997 <irfan@TWOSTEP>
-
- * ACE.cpp (is_process_active): Added this method which checks if a
- process is still alive. Thanks to Chris (CLahey@cccis.com) for
- this code.
-
- * ace/OS.i (kill): Changed PROCESS_ALL_ACCESS to
- PROCESS_TERMINATE.
-
- * ace/ACE.cpp (bind_port): Changed the implementation of this
- method such that a recently used port is not used again in the
- next call to this method on Win32, i.e., upper limit is
- decreased even in the successful case. This fixes the problem on
- Win32 where binding to a recently used port works but the
- following connect fails.
-
- * ace/Acceptor.cpp (close): Added a close method that allows us
- to shutdown the Acceptor (without having to destroy it).
-
- * ace/Connector.cpp (close): Added a close method that allows us
- to shutdown the Connector (without having to destroy it).
-
- * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp
-
- (handle_close): Removed this method. This code seemed to be
- duplicating the code in the handle_close of the proxies.
-
- (initiate_connection): Removed the code that did
- rescheduling. The proxies are responsible for this.
-
- * apps/Gateway/Gateway/Event_Channel.cpp
-
- (initiate_proxy_connection): Must *always* use the correct synch
- options while connecting.
-
- (reinitiate_proxy_connection): Always register for timeouts if
- we are not disconnecting. This allows us to remove duplicated
- logic in Proxy_Handler_Connector.
-
- The new logic of close() allows us to remove the code that use
- to remove the proxy from the map to prevent double deletes.
-
- (close): Changed the shutdown logic to: Tell everyone that the
- spaceship is here (behind the comet), close down the connector,
- close down the acceptor, tell everyone that it is now time to
- commit suicide.
-
- * apps/Gateway/Gateway/Proxy_Handler.cpp (handle_timeout): Must
- return 0, or else the timer queue will cancel the handler and
- *all* its timeouts.
-
- * apps/Gateway/Peer/svc.conf,Makefile: We now generate a Peer
- shared library (instead of just an .so). The svc.conf was
- changed to reflect this.
-
- * tests/UPIPE_SAP_Test.cpp: Fixed output message.
-
- * Handle_Set.i (operator): Fixed typo.
-
-Thu May 29 11:09:52 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU: check for directory
- write permission before attempting to install. This helps
- support shared ACE workspaces. There are two easy ways
- to not install "private" libraries in the shared workspace:
- 1) remove write permission from $WRAPPER_ROOT/ace, or
- 2) add "INSTALL=" to invocations of "make".
-
-Thu May 29 06:07:18 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (thr_join): Revised some code in the #ifdef'd out
- version of ACE_OS::thr_join() so that it will compile correctly.
- Note that this code isn't currently used, but someday it will
- be. Thanks to Hamutal Yanay for reporting this.
-
-Wed May 28 16:37:57 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i} (ACE_Time_Value): added default constructor,
- which does not call normalize (). ACE_Time_Value::normalize ()
- was showing up as a relatively minor, but signficant hot
- spot in Event Channel latency tests.
-
-Wed May 28 16:02:53 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * ace/OS.i: Changes to strdup and getpid for CHORUS, as per Wei
- Chiang's suggestions.
-
-Tue May 27 18:26:51 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-hpux-10.x-decthreads.h: Added support for HP/UX 10.10
- with DCE threads. Thanks to Shankar Krishnamoorthy
- <kshankar@lucent.com> for these fixes.
-
- * ace/Local_Tokens_T.h: #if def'd out all of this file since it
- doesn't seem to be used anymore. Thanks to Shankar
- Krishnamoorthy <kshankar@lucent.com> for reporting this.
-
- * ace/Makefile (TEMPLATE_FILES): Removed Local_Tokens_T since it
- doesn't appear to be used anywhere.
-
-Tue May 27 18:47:34 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * tests/*.cpp: Various changes for EBCIDIC compatibility.
- Thanks to Chuck Gehr for pointing out the need for this!
-
- * tests/test_config.h: Added ACE_ALPHABET to aid a-z sending and
- comparing.
-
-Tue May 27 15:03:25 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Future_Test.cpp: added ACE_Future{_Rep}<int> template
- specializations.
-
-Tue May 27 07:49:03 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Future.cpp: Made a few minor reformatting changes to Per's
- new Future enhancements.
-
-Tue May 27 14:19:14 1997 Per Andersson <Per.Andersson@hfera.ericsson.se>
-
- * ace/Future: Fixed self assignment bug in ACE_Future<>::operator=().
- Fixed bug in ACE_Future<>::set(). It is now possible to do a
- ACE_Future<>::set() followed by a ACE_Future<>::get() without
- hanging forever.
-
- Moved all handling of the ACE_Future_Rep<> reference count
- into three new static ACE_Future_Rep<> member functions,
- create, attach, assign and detach.
-
- Removed one mutex from ACE_Future_Rep<> by changing the
- reference count from an ACE_Atomic_Op<int> into a plain
- int. The ACE_Future_Rep<>::value_ready_mutex_ mutex is
- instead used for serializing changes to the reference count.
- (ACE_Future_Rep<>::attach, ACE_Future_Rep<>::detach())
-
- Removed mutex from ACE_Future<> the serialization is
- performed by the ACE_Future_Rep<>::attach,
- ACE_Future_Rep<>::detach() and ACE_Future_Rep<>::assign()
- functions.
-
- Changed the ACE_Future<> default constructor to always
- create a ACE_Future_Rep<>
-
- * tests/Future_Test.cpp: Added test case for
- ACE_Future<>::set() followed by ACE_Future<>::get(). Added
- test for working ACE_Future::operator=(). The test is not
- fool proof but it crashes or hangs the test process with the
- old ACE_Future<> implementation.
-
-Mon May 26 14:19:14 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * ace/OS.{h,i}: Fixed difftime implementation for cases where
- systems implement it as a macro. Fixed tempnam by adding
- ACE_LACKS_TEMPNAM.
-
-Sun May 25 11:36:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/Reactor/Misc: Removed test_handle_set.cpp since it
- is now completed subsumed by tests/Handle_Set_Test.cpp.
-
- * tests/Handle_Set_Test.cpp: Updated the test of
- the ACE_Handle_Set so that it shows how fast the iterator works.
-
- * ace/Reactor.cpp: Updated the Reactor to use the new
- ACE_Handle_Set_Iterator (whic no longer requires calling
- operator++ to advance the iterator).
-
- * ace/Handle_Set: Rewrote the ACE_Handle_Set_Iterator to speed it up.
- The result seems to be about 15% faster than the original.
-
- * ace/OS.h: Changed the MSB_MASK static constant into a macro and
- moved it from Handle_Set.cpp into OS.h, changing its name to
- ACE_MSB_MASK.
-
- * ace/Sched_Params.cpp (priority_max): Added another #ifdef for
- Chorus. Thanks to Wei Chiang for reporting this.
-
- * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: added -l
- in front of orbixmt. Thanks to Wei Chiang for pointing this
- out.
-
- * ace/ACE.cpp: Changed the default port for NT so that it starts
- at 65279 rather than 65535. Hopefully, this will fix that
- annoying bug that has been plaguing us on NT 4.0 for months.
- Thanks to Goran Lowkrantz <Goran.Lowkrantz@Infologigruppen.se>
- for reporting this.
-
-Sat May 24 23:42:32 1997 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Misc/test_naming.cpp (do_testing): replaced
- strlen () calls in character array size with constant expression.
-
-Sat May 24 12:07:48 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Released version 4.2.1 for testing.
-
- * ace/Reactor.cpp (bind): Fixed a stupid typo where I was using
- the ACE_REACTOR_EVENT_HANDLER macro instead of the
- ACE_REACTOR_HANDLE macro. Thanks to Detlef for reporting this.
-
- * ace/OS.i: Added a new macro called ACE_HAS_THR_MINSTACK to deal
- with weirdo mangling of names by Tandem. Thanks to Jan Perman
- <uabjjpp@osd.ericsson.se> for reporting this.
-
- * ace/OS.h: Added a new macro ACE_LACKS_PRI_T for those platforms
- using STHREADS (e.g., Tandem NonStop OS) that don't have pri_t
- defined. Thanks to Jan Perman <uabjjpp@osd.ericsson.se> for
- reporting this.
-
- * ace/Connector.cpp (connect): Make sure to save/restore errno
- since svc_handler->close() may change it. Thanks to Michael
- Hartman <c62nt57@ibx.com> for reporting this.
-
- * include/makeinclude/platform_chorus.GNU: Added a new platform
- macros file for Chorus. Thanks to Wei Chang for this.
-
- * ace/OS.cpp (sched_params): Reordered the #ifdefs so that Chorus
- comes first.
-
- * ace/OS.i (sleep): If the platform defines ACE_HAS_CLOCK_GETTIME
- then we'll use the nanosleep() method rather than sleep().
-
- * ace/OS.h: disabled THR_NEW_LWP for Chorus. Thanks to Wei Chang
- for reporting this.
-
- * ace/Sched_Params.cpp: ACE_SCHED_OTHER and ACE_SCHED_RR have the
- same value on Chorus. Thanks to Wei Chang for reporting this.
-
-Sat May 24 09:21:08 1997 David L. Levine <levine@cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler.cpp: protected second
- ACE_Svc_Handler specialization for case that ACE_HAS_THREADS,
- when ACE_HAS_TLI. It had gotten lost in the last pass of
- that module. Thanks to Sandro Doro <doros@aureus.sublink.org>
- for reporting this problem.
-
-Sat May 24 03:19:38 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * ace/OS.i (sigaddset, sigdelset, sigemptyset, sigfillset,
- sigismember): Modified the implementation of these function so
- as to conform with POSIX standard. Basically all functions do
- the same things they did but more conservative protections are
- added. The modified semantic becomes,
-
- sigemptyset, sigfillset, sigaddset, sigdelset: return 0 if
- succeed, -1 otherwise.
- sigismember: returns 0 if signum is not in the set, 1 if signum
- is in the set, and -1 if error occurs.
-
- If error occured, errno will be set to one of the following
- value:
- EFAULT: sigset is not a valid address.
- EINVAL: signum is not a valid signal number.
-
- Notice that, so far, this is for NT only.
-
-Sat May 24 01:53:22 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * performance-tests/Misc/test_naming.cpp (do_testing): Thanks to
- Sandro Doro, squashed a bug where we were trying to concatenate
- onto a string constant.
-
-Fri May 23 01:01:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-hpux-9.x.h: Added
-
- #define ACE_HAS_BROKEN_ENUMS
- #define ACE_HAS_IP_MULTICAST
- #define ACE_LACKS_GETPGID
-
- Thanks to Neil Cohen for reporting these.
-
- * ace/Thread_Manager.h: Made the private methods and data members
- protected so that subclasses can extend it. Thanks to Hamutal
- Yanay for this suggestion.
-
-Fri May 23 21:27:05 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Process.{h,cpp} (env_argv): added "const" to char * type in
- return type, for argument compatibility in call to ACE_OS::execve ().
-
- * ace/Process.cpp (spawn): removed unreachable return statement at
- end of function.
-
- Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
- reporting the above two problems.
-
- * ace/{IOStream*,Makefile}: Split out templates into
- ace/IOStream_T.{h,cpp} files. This way, automatic template
- instantiation systems that require templates to be in separate
- files, such as on Irix 6.2, will be able to build IOStream_Test
- and the ACE_IOStream examples without warnings. (The
- ACE_IOSTREAM_BUILDING_TEMPLATE macro that did this only worked
- if ACE_TEMPLATES_REQUIRE_SOURCE was defined. It's no longer
- needed with the separate template files.)
-
- * tests/IOStream_Test.cpp,
- examples/IOStream/client/iostream_client.cpp,
- examples/IOStream/server/iostream_server.cpp:
- swapped ACE_Streambuf and ACE_Streambuf_T class names so that
- the template class has the "_T". And renamed ACE_IOStream_T
- for consistency.
-
- * ace/{IOStream.*,README},
- tests/IOStream_Test.cpp,
- examples/IOStream/client/iostream_client.cpp,
- examples/IOStream/server/iostream_server.cpp,
- config-hpux-9.x*.h:
- Added ACE_LACKS_ACE_IOSTREAM protection
- so that these can easily be built on platforms that have
- trouble with ACE_IOStream.
-
- * Priority_Task_Test.cpp: removed close () because it didn't really
- close the Task, and added printout to main () after all tasks have
- been spawned to help debug non-termination.
-
- * ace/OS.cpp: (thr_create, with STHREADS only): *thr_handle was
- used but *thr_id had been set by ::thr_create, so threads never
- got activated. Fixed by using *thr_id instead of *thr_handle
- in the calls to ACE_OS::thr_setprio and ACE_OS::continue.
- Thanks to Jan Perman <uabjjpp@osd.ericsson.se> for reporting
- this problem.
-
-Fri May 23 20:12:33 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * tests/SV_Shared_Memory_Test.cpp: Thanks to Chuck Gehr, fixed
- ASCII dependent code in the parent and child routines.
-
-Fri May 23 02:58:28 1997 Nanbor Wang <nw1@siesta.cs.wustl.edu>
-
- * ace/OS.i (dlsym): Added ACE_USES_ASM_SYMBOL_IN_DLSYM, support
- for platforms (FreeBSD) which use assembly symbols instead of C
- symbols in dlsym ().
-
- * ace/config-freebsd[-pthread].h: Added flag ACE_HAS_CHARPTR_DL
- and ACE_USES_ASM_SYMBOL_IN_DLSYM.
-
-Thu May 22 08:14:21 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Tokens_Test.cpp: added deletes to avoid memory leaks.
-
-Wed May 21 16:15:48 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/{config-irix6.2*.h,README}: removed ACE_LACKS_IOSTREAM_SETGET
- because tests won't build with it. Also, added
- ACE_LACKS_SIGNED_CHAR.
-
- * ace/IOStream.h: removed "const" from PUT_PROT of
- u_char * and void *. This should allow the IOStream test
- and examples to build and run on Irix platforms. Thanks
- to Torbjorn Lindgren <tl@funcom.com> and Amos Shapira
- <amos@dsi.co.il> for reporting this, and to James Hu for
- helping fix it.
-
- * ace/{OS.cpp,Sched_Params.cp} (Solaris only): use 0 min priority
- again, with workaround in ACE_OS::thr_create to not use
- ::pthread_attr_setschedparam () if the priority is 0. Instead,
- the priority of the newly created thread is set to 0 (if it
- wasn't created with 0) after the thread is created, with
- ::pthread_setschedparam ().
-
-Wed May 21 15:23:37 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/Strategies_T.* (ACE_Hash_Addr): Eliminated the ADDR_T
- template parameter as a base class. It is now a wholly-contained
- member of the ACE_Hash_Addr<> with conversion operators.
- This caused problems on certain compilers, notably HP-UX.
-
-Wed May 21 14:13:36 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * ace/OS.{h,i} (difftime): Added implementation to ACE_OS. I
- don't expect any problems since it is in ANSI.
-
- * ace/OS.{h,i} (tempnam): Added implementation to ACE_OS.
-
-Wed May 21 01:17:40 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Released version 4.2.
-
- * ace/Acceptor.cpp (activate_svc_handler ): Removed an unnecessary
- return 0. Thanks to Amos Shapira <amos@dsi.co.il> for reporting
- this.
-
- * ace/Message_Block.cpp (release): I believe that
- ACE_Message_Block::release() should return something other than
- 0, i.e., it should return the result of release_i(). Thanks to
- Amos Shapira <amos@dsi.co.il> for reporting this.
-
-Wed May 21 01:17:40 1997 Per Andersson <Per.Andersson@hfera.ericsson.se>
-
- * Moved most code from netsvcs/lib/Server_Logging_Handler.* to
- Server_Logging_Handler_T.*. Made template out of
- ACE_Server_Logging_Handler and ACE_Server_Logging_Acceptor.
- Factorised out as much as possible to reduce code
- duplication. The log record processing was moved from
- ACE_Server_Logging_Handler it should now be handled by the
- Log_Message_Receiver class. It is now possible to change
- how log records processed without changing code in
- Server_Logging_Handler* and it is possible to have several
- Server_Logging_Handlers that processes log records
- in different ways without duplicating all the server code.
- All that is needed is to write a new/change
- Log_Message_Receiver and instantiate a couple of templates.
-
- * netsvcs/lib/Server_Logging_Handler.h added lots of typedefs
- for making template instantiations easier.
-
- * netsvcs/lib/Server_Logging_Handler.h addad lots template
- instatiations, there are now 58 all together.
-
- * Added netsvc/lib/Log_Message_Receiver.{h,cpp}, implementstwo
- simple log message receivers that prints the log record to
- stderr.
-
-Tue May 20 13:50:17 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-hpux-9.x.h: Added a #define for ACE_HAS_BROKEN_ENUM,
- ACE_HAS_IP_MULTICAST, and ACE_LACKS_GETPGID. Thanks to Neil
- Cohen for reporting this.
-
- * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: Replaced
- the use of -lITsrv with -lorbixmt. Thanks to Wei Chiang for
- this.
-
- * include/makeinclude/platform_osf1_3.2.GNU: Make sure that all
- the template repositories are in the same directory to work
- around problems with the C++ compiler. Also added -lrt to get
- the apps and tests to run. Thanks to Tom Dobridge for this
- help.
-
-Tue May 20 17:13:15 1997 Carlos O'Ryan <coryan@charlie>
-
- * ace/config-hpux-10.x-nothread.h:
- * ace/config-hpux-10.x-aCC.h:
- * ace/Stream_Modules.cpp:
- ACE_LACKS_STREAM_MODULES is no longer needed, moving the inclusion
- of "ace/Task.h" to the beginning of "ace/Stream_Modules.h" solved
- the problem nicely.
-
- * ace/config-hpux-10.x.h:
- * ace/config-hpux-10.x-aCC.h:
- ACE_HAS_BROKEN_HPUX_TEMPLATES is not needed on newer HP/CXX
- compilers; further, old ones will not compile ACE even if the
- macro is defined.
-
- * ace/Timer_List_T.h:
- * ace/Timer_Queue_T.i:
- I moved the definition of ACE_Timer_Queue_T::lock() from the .i
- file to the .h file, HP/CXX gets completely confused otherwise.
- I also added a number of ACE_INLINE missing in the .i file.
-
- * ace/Stream_Modules.h:
- * ace/Stream_Modules.cpp:
- I had to move the inclusion of "ace/Task.h" outside of the
- protections against multiple inclusion for Stream_Modules.h.
- That seems to solve the ciclyc dependancy for
- Task->Module->Stream_Module->Task.
- BTW, the same thing was already done in "ace/Log_Record.h".
- I'll try to remove the ACE_LACKS_STREAM_MODULES macro, it seems
- that the last change makes it redundant.
-
- * ace/Signal.cpp:
- HP/CXX compiler will not close the library unless
- ACE_MAX_SIGNAL_HANDLERS is defined as "const size_t". The previous
- definition ("size_t") did compile tough.
-
- * ace/Log_Record.h:
- We need to include "ace/ACE.h" before "ace/Log_Priority.h".
-
- * ace/Log_Priority.h:
- HP/CXX compiler seems to reserve a few bits in enums, so the
- ENSURE_32_BITS trick would result in a compile time error.
- Since HP enums are always 32 bits we could skip the definition for
- ENSURE_32_BITS altogether, but I prefer to keep a consistent
- namespace across plaforms, I have found a value for ENSURE_32_BITS
- that seems to work.
-
- * include/makeinclude/platform_hpux.GNU:
- Some options to improve compile time, since we use explicit
- template instantiation there is no need for a ptcomp o ptlink
- phase.
-
-Tue May 20 09:10:18 1997 Nanbor Wang <nw1@number.wustl.edu>
-
- * ace/config-freebsd-pthread.h:
- * ace/config-freebsd.h: Removed "FreeBSD" directive because gcc on
- FreeBSD defines __FreeBSD__ automatically.
-
- * ace/OS.i (sigaddset, sigdelset, sigismember): Added range
- checking to these functions in order to avoid disasters. Sig
- number should be between 1 and NSIG.
- (sigwait): Changed ifdef (FreeBSD) to ifdef (__FreeBSD__) since
- compiler does it for us.
-
-Tue May 20 08:41:11 1997 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Threads/tss2.cpp: added #include of ace/Thread.h
- because Sun C++ 4.1 needs it.
-
-Mon May 19 16:04:32 1997 David L. Levine <levine@cs.wustl.edu>
-
- * bin/create_ace_build: changed startup line for compatibility
- with bash. This startup line lets the script run without
- hard-coding the full path to the perl executable, as long as
- perl is on the user's PATH.
-
-Mon May 19 12:45:21 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Threads/reader_writer.cpp: Changed the code so that we
- don't try to treat thread ids as ints! Thanks to Chuck Gehr for
- reporting this.
-
-Sun May 18 21:57:54 1997 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Threads/tss2.cpp: added second parameter to
- ACE_TSS_Singleton template specialization.
-
-Sun May 18 09:20:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Threads/TSS_Data.h: Added the second parameter for
- ACE_SYNCH_MUTEX since Rich and Chris updated ACE_TSS_Singleton.
-
- * ace/Singleton.cpp: Added the updated version of
- ACE_TSS_Singleton that implements the Double-Checked Locking
- pattern. Thanks to Rich Christy and Chris Lahey for this.
-
- * ace/Strategies_T.cpp (activate_svc_handler): Fixed the logic so
- that a value is always returned. Thanks to David Levine for
- noticing this.
-
-Sun May 18 07:25:11 1997 David L. Levine <levine@cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler.cpp: removed second
- ACE_Svc_Handler specialization for non-threaded, has-TLI case.
- That's because it is the same as the first; the only difference
- was that one specialized with ACE_SYNCH and the other with
- ACE_NULL_SYNCH. Without threads, those macros expand to the
- same thing. Thanks Sandro Doro <doros@aureus.sublink.org> for
- reporting this.
-
- * examples/Threads/tss2.cpp: added ACE_TSS<TSS_Data> template
- specialization.
-
-Sat May 17 23:24:34 1997 Nanbor Wang <nw1@number.wustl.edu>
-
- * ace/OS.i (sigismember): Corrected the code when
- ACE_LACKS_SIGSET.
-
-Sat May 17 00:06:04 1997 <irfan@TWOSTEP>
-
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp
- (Event_Transceiver): Corrected signal registration for Win32.
-
- * apps/Gateway/Gateway/Gateway.cpp (parse_args): Since the
- Connector is now fixed, non-blocking is now working fine.
-
- * ace/Connector.cpp (handle_close,create_AST): Made sure we close
- down the svc_handler on error.
-
- * ace/{Acceptor.cpp,Connector.cpp} (activate_svc_handler): The
- if statement logic in these methods was incorrect.
-
- * ace/SOCK_Connector.cpp (connect): Just like in complete(), we
- start out with non-blocking disabled on the <new_stream>.
-
- * ace/OS.h: When ACE_LACKS_SIGSET is defined, changed the
- definition of sigset_t from void * to unsigned int.
-
-Sat May 17 12:25:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/{Acceptor,Connector,Strategies_T}: Make sure to either
- enable or disable ACE_NONBLOCK (depending on the flags). This
- ensures that we always start with the I/O mode set to a
- deterministic state. Thanks to Irfan for suggesting this.
-
- * ace/Connector: Added a new "flags" parameter to the
- ACE_Connector and ACE_Strategy_Connector which keeps track of
- flags that control how Svc_Handler are initialized prior to
- being activated.
-
- * ace/Strategies_T.cpp (activate_svc_handler): Make sure to set
- the peer's handle into non-blocking mode *before* calling the
- Svc_Handler's open() method. This ensures that things are set
- up correctly when this hook is called.
-
-Sat May 17 02:19:27 1997 Nanbor Wang <nw1@number.wustl.edu>
-
- * ace/config-freebsd.h (ACE_HAS_BROKEN_TIMESPEC_MEMBERS):
-
- * ace/OS.i (set, timestruct_t, nanosleep):
-
- * ace/High_Res_Timer.cpp (elapsed_time):
-
- * ace/README: Added ACE_HAS_BROKEN_TIMESPEC_MEMBERS so that we can
- fix that problem FreeBSD 2.1.x brings by defining timespec as {
- time_t ts_sec ; long ts_nsec }. Notice: This is highly
- non-portable. Please refer to ACE code and see how to write
- portable. Fortunately, only older versions of FreeBSD have
- this. Yesterday's hack didn't work, so, it's removed. Thanks
- to Satoshi Ueno <satoshi.ueno@gs.com> for reporting and helping
- debug on his FreeBSD 2.1.7R box.
-
-Sat May 17 00:06:04 1997 <irfan@TWOSTEP>
-
- * apps/Gateway/Gateway/Proxy_Handler.cpp (open): Turn on
- non-blocking I/O only after the Channel is done sending the id
- to the Peer.
-
- * apps/Gateway/Gateway/Gateway.cpp:
-
- - Added necessary DLL build macros.
-
- - Removed error checking for Reactor::remove_handler() for STDIN
- as STDIN is never registered with the Reactor on Win32.
-
- - Fixed the registration of SIGINT.
-
- - blocking_semantics_ should be 1 when blocking is on and not 0.
-
- - Since the Connector is currently broken with respect to
- non-blocking connects, I have put a temporary fix such that
- only blocking connects are done. Revert this after the
- Connector is fixed.
-
- * apps/Gateway/Gateway/Event_Channel.cpp:
-
- - Only if socket_queue_size > 0, do we set a new value.
-
- - In reinitiate_proxy_connection(), we must unbind the proxy
- from the proxy_map_ as we are no longer responsible for
- this. The Connector should now be responsible for this.
-
- * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp: Added
- necessary DLL build macros.
-
- * apps/Gateway/Peer/Peer.cpp:
-
- - Added include file and necessary DLL build macros.
-
- - Removed error checking for Reactor::remove_handler() for STDIN
- as STDIN is never registered with the Reactor on Win32.
-
- - Fixed the registration of SIGINT.
-
- * apps/Gateway/{Peer,Gateway}: Added Win32 makefiles.
-
- * ace/ACE.cpp (read_adapter): Handle for the read_adapter should
- always be STDIN.
-
-Fri May 16 18:43:17 1997 Nanbor Wang <nw1@number.wustl.edu>
-
- * ace/config-freebsd.h: Minor modification for working on FreeBSD
- 2.1.x platform. Added includion of <sys/time.h> and
- <sys/types.h>. Defined ACE_HAS_POSIX_TIME for 2.1.x. Redefine
- timespec to timeval to hack around a bug on 2.1.x. Thanks to
- Satoshi Ueno <satoshi.ueno@gs.com> for reporting this.
-
-Fri May 16 12:25:32 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * netsvcs/lib: Reverted back to the original Server_Logging_Handler
- behavior since the new version is breaking GCC's templates.
-
- * ace/Log_Record.h: need to #include "ace/ACE.h" before
- "ace/Log_Priority.h" so that "Log_Priority.h" sees the
- configuration stuff (otherwise the following fix won't work).
-
- * ace/Log_Priority.h: Added a workaround for lame C++ compilers
- like the one on HP/UX that can't support large enums. Thanks to
- Robert Head for reporting this.
-
- * ace/Singleton: Added the new ACE_TSS_Singleton, which stores
- Singletons in thread-specific storage. Thanks to Chris Lahey
- and Rich Christy <rchristy@cccis.com> for this.
-
- * ace/OS.h: Removed the ACE_Singleton_Strategy since we don't need
- it anymore.
-
- * netsvcs/lib: Added the new Server_Logging_Handler_T.* and
- Log_Message_Receiver.* netsvcs. Thanks to Per Andersson for
- contributing these.
-
- * examples/Misc/Makefile: Removed the XtReactor tests from the
- Makefile until we figure out a good way to get them integrated
- with the appropriate libraries.
-
- * ace/config-irix6.2-sgic++-nothread.h: Added the following:
-
- ACE_LACKS_LINEBUFFERED_STREAMBUF
- ACE_HAS_SETOWN
- ACE_HAS_SYSENT_H
- ACE_HAS_SYSINFO
-
- Thanks to Torbjorn Lindgren <tl@funcom.com> for reporting
- this.
-
- * ace/Proactor.cpp: Changed the use of lock() to mutex() since we
- changed the name in Timer_Queue.
-
- * ace/Timer_Queue_T.i: Changed the name of the lock() method to
- mutex() to work around compile problems with HP/UX. Thanks to
- Robert Head <rhead@mail.virtc.com> for reporting this
- workaround.
-
- * ace/config-irix5.3-sgic++.h: Made a few changes to get ACE to
- work on IRIX 5.3. Thanks to Eugene R. Somdahl <gene@endo.com>
- for these fixes.
-
- * ace/OS: Added calloc() implementation. I don't know how
- this managed to fall through the cracks!
-
- * include/makeinclude/platform_osf1_4.0.GNU: Added a few more
- tweaks courtesy of James Johnson.
-
- * include/makeinclude/platform_osf1_3.2.GNU: Added a few more
- tweaks courtesy of Tom Dobridge.
-
- * include/makeinclude/platform_osf1_4.0.GNU (DLD): Added -shared
- -expect_unresolved '*' so that calls to the linker via cxx will
- work correctly. Thanks to Thilo for this.
-
- * include/makeinclude/platform_chorus.GNU: Removed CLASSIXDIR =
- /usr/home/chiang/chorus/merge/extended-i386at, added the
- nostdinc flag, and removed extra whitespace. Thanks to Wei
- Chiang for reporting this.
-
-Fri May 16 00:02:33 1997 <irfan@TWOSTEP>
-
- * ace/ReactorEx: Even though changes to the owner field are very
- well synchronized within the class code, the owner()
- accessor is public and can be called from out side the
- class. Therefore, I have added a owner_i() that does not do
- locking. All internal calls to check the owner will use the
- new accessor, whereas application code outside the class can
- still use the old synchronized accessor.
-
-Fri May 16 11:39:51 1997 Nanbor Wang <nw1@cs.wustl.edu>
-
- * ace/OS.i (sigaddset, sigdelset, sigemptyset, sigfillset,
- sigismember): Added implementation when ACE_LACKS_SIGSET so that
- platforms (NT?) without these functions can still manipulate
- sigset_t variables.
-
-Thu May 15 22:19:59 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/ASX/Event_Server/Event_Server: Removed the THR_DETACHED
- flag from options so that we can wait on the threads
- correctly.
-
- * ace/Stream_Modules.cpp: Changed the logic for determining when
- to compile the Stream_Modules.cpp code. Now, we compile it
- unless ACE_LACKS_STREAM_MODULES is defined (i.e., we're on HP/UX
- 10.x using aCC).
-
- * netsvcs/lib/Server_Logging_Handler.cpp (handle_input): Fixed
- a bug in handle_input() where we need to return the result, not
- just 0 or 1. Thanks to Per Andersson for reporting this.
-
- * ace/Log_Priority.h: Changed the values of the enums in
- ACE_Log_Priority so that they can be dealt with via bitwise
- operations. Thanks to Per Andersson for this.
-
- * include/makeinclude/platform_osf1_4.0.GNU: Added support for
- templates. Thanks to Steve Huston and James Johnson for
- verifying this.
-
- * include/makeinclude/platform_osf1_3.2.GNU: Got rid of all
- unresolved symbol warnings using cxx 5.5 on DEC/OSF v3.2 by
- using the linker flag "-expect_unresolved '*'." In addition, I
- added -threads to the DCFLAGS macro. Thanks to Tom Dobridge
- <dobridge@persimmon.com> for this.
-
- * ace/Strategies_T: Added a minor ACE_Reactive_Strategy extension
- to enable non-blocking I/O in active_svc_handler(). Thanks to
- Arturo Montes <mitosys@colomsat.net.co> for contributing this.
-
- * ace/config-osf1-4.0[-g++].h: Added a #define for
- ACE_POLL_IS_BROKEN since DEC UNIX's poll() doesn't seem to work
- correctly as a highres timer. Thanks to James Johnson and Thilo
- for reporting this.
-
- * examples/Threads/thread_specific.cpp (worker): Changes
- size_t i back to int i to avoid a signed/unsigned complaint.
- Thanks to David Levine for reporting this.
-
- * ace/config-chorus.h: Added ACE_LACKS_MPROTECT,
- ACE_HAS_IP_MULTICAST, and ACE_LACKS_SOCKETPAIR to the Chorus
- port. Thanks to Wei Chiang <chiang@erebor.tele.nokia.fi> for
- reporting this.
-
- * ace/OS.i: Added ACE_LACKS_ACCESS to the Chorus config file
- and VxWorks config file, as well as to OS.i.
-
-: * ace/OS.i: Added ACE_LACKS_GETSERVBYNAME to the Chorus config
- file and VxWorks config file, as well as to OS.i.
-
- * ace/OS.i: Added ACE_LACKS_SBRK to the Chorus config file, as
- well as to the definition of the ACE_OS::sbrk() function.
-
- * ace/OS.h: Removed #include /**/ <pwd.h> from the Chorus-specific
- part of OS.h since it's already included elsewhere. Thanks to
- Wei Chiang <chiang@erebor.tele.nokia.fi> for reporting this.
-
- * ace/Reactor: Added a typedef for ACE_Reactor_Token to
- ACE_Null_Mutex for situations where ACE_MT_SAFE is *disabled*.
- This makes the code more consistent.
-
- * ace/Reactor: Added an interface that makes it possible to
- acquire a reference to the <ACE_Reactor_Token> that is used to
- serialize the internal Reactor's processing logic. This can be
- useful for situations where you need to avoid deadlock
- efficiently when <ACE_Event_Handlers> are used in multiple
- threads. Thanks to Detlef for pointing out the utility of this.
-
-Thu May 15 23:34:30 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
-
- * ace/Process_Manager.cpp (spawn_n): Changed
- ACE_Process_Manager::start_n to ACE_Process_Manager::spawn_n.
-
-Thu May 15 15:39:13 1997 Carlos O'Ryan <coryan@charlie>
-
- * include/makeinclude/platform_hpux.GNU:
- * ace/config-hpux-10.x.h:
- * ace/config-hpux-10.x-nothread.h:
- HP/CXX cannot achieve template closure, not even using the
- dummy exec trick: apparently the repository gets a bit
- corrupted. HP/CXX (version 10.24) support explicit template
- instantiation, I believe this to be a superior method for
- ensuring library closure (and it works).
-
- * ace/Task_T.cpp:
- * ace/Stream_Modules.cpp:
- I have changed the hack to compile under HP-UX,
- "ace/Module.h" is once more included in ace/Task_T.cpp, but
- "ace/Stream_Modules.cpp" is protected: it will be empty
- under HP-UX unless included from the
- "ace/Stream_Modules.h". I still believe that there is a
- problem in the cyclic dependancy Task -> Module -> Thru_Task
- -> Task; but it seems that the current hack works better.
-
- * ace/OS.h:
- Defining ACE_UNUSED_ARG as (a) for HP/CXX does not work so I
- moved it to the SGI and GCC definition.
-
- * ace/OS.i:
- More unused args.
-
- * ace/Handle_Set.h:
- Removed the extra qualification for ACE_Handle_Set::NBITS,
- HP/CXX sends a lot of warnings with that.
-
- * ace/IOStream.h:
- It included "IOStream.cpp" I think that "ace/IOStream.cpp"
- is better.
-
- * ace/Local_Name_Space_T.h:
- Ditto for "Local_Name_Space.h"
-
-Thu May 15 17:40:06 1997 <irfan@TWOSTEP>
-
- * ace/ReactorEx.i (owner): Since changes to the owner field are
- very well synchronized, we do not need to synchronize this
- accessor.
-
- * ace/IOStream.h: Added /**/ after #include directives.
-
- * ace: Update Win32 makefiles to include UNICODE make option.
-
-Thu May 15 08:54:53 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile (release, cleanrelease): use -prune option to "find"
- instead of filtering its output. Thanks to Chris Cleeland for
- suggesting this.
-
-Wed May 14 21:52:22 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/UPIPE_Stream.cpp (control): We need to "cast away const" so
- that this method can call the Stream's control() method
- (which is non-const). Thanks to David Levine for locating this.
-
- * ace/Singleton.cpp: Finished re-implementing ACE_Singleton.
-
- * examples/ASX/Message_Queue/buffer_stream.cpp: Updated this
- example to illustrate (1) how filters work in an ACE_Stream and
- (2) to make sure that resizing buffers work.
-
- * ace/UPIPE_Stream.h: Changed the signature of control()
- to take an int so that it will match the base class
- signature.
-
- * ace/Singleton.h: The new ACE_SingletonEx isn't working yet.
- I've #ifdef'd it out until it works.
-
- * examples/Threads/tss2.cpp: Updated this test program to
- illustrate the use of the new ACE_SingletonEx class.
-
- * ace/Singleton.h: Added a new instance() method to the ACE
- Singleton that can be used to set the Singleton. This is useful
- for situations where the type being used as the Singleton
- doesn't have a default constructor. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for this suggestion.
-
- * ace/Singleton: Factored out common code in the Singleton and
- SingletonEx implementations so they will be cleaner and more
- portable.
-
- * ace/Local_Name_Space_T.h,
- ace/Map_Manager.h,
- ace/Hash_Map_Manager.h,
- ace/SString.h,
- ace/Hash_Map_Manager.cpp:
-
- Changed all uses of the identifier "allocator" to "alloc" to
- avoid conflicts with MSVC++ STL 5.0. Thanks to William
- L. Gerecke <gerecke@rayva.org> for reporting this.
-
- * ace/config-aix-4.[12].x.h: Replaces
- ACE_LACKS_PTHREAD_THR_SIGSETMASK with ACE_HAS_SIGTHREADMASK.
- Thanks to Chris Lahey for this.
-
- * ace/OS.i (thr_sigsetmask): Added the ACE_HAS_SIGTHREADMASK
- support for AIX. Thanks to Chris Lahey for this.
-
- * ace/Singleton: Added the new ACE_SingletonEx, which supports
- both heap-based and thread-specific storage-based Singletons.
- Thanks to Chris Lahey for this.
-
- * ace/OS.h: Added the new ACE_Singleton_Strategy to OS.h. Thanks
- to Chris Lahey for this.
-
-Wed May 14 16:32:57 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: use cpio instead of tar to allow easy filtering
- of CVS files from the release.
-
-Wed May 14 15:00:58 1997 <irfan@TWOSTEP>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (main): Fixed code.
-
- * examples/Naming: Replaced multiple makefiles with one makefile.
-
- * ace/OS.h: Added UNICODE support for some #defines.
-
- * OS.i (vsprintf): Added support for this in ACE_OS.
-
- * OS.cpp (socket_init && socket_fini): It is ok to print out cout
- and cerr messages from here (as the C runtime library is still
- attached) but it is *not* ok to print out ACE_DEBUG
- messages. God only knows the state of the thread specific LogMsg
- instance when the process reaches this piece of code.
-
- Also added a (handy) sprintf that has the following prototype:
-
- sprintf (wchar_t *buf, const char *format, ...)
-
- * ace/Process: UNICODE fixes.
-
- * tests: Fixed the following such that they work with UNICODE:
-
- Pipe_Test.cpp
- Process_Mutex_Test.cpp
- Process_Strategy_Test.cpp
- Time_Service_Test.cpp
- Tokens_Test.cpp
-
- * Time_Service_Test.cpp (main): Fixed typo in the svc.conf
- filename for the clerk.
-
-Tue May 13 18:56:27 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/IOStream.h: To make C++ compilers happy I added
- the following changes by modifying
-
- ACE_IOStream & operator>>( ACE_Time_Value *& tv );
-
- to be
-
- ACE_IOStream<STREAM> & operator>>( ACE_Time_Value *& tv );
-
- Thanks to Chuck Gehr for this fix.
-
-Tue May 13 21:32:12 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Process.cpp (~ACE_Process_Options): delete
- command_line_buf_ was missing the [].
-
- * examples/Threads/process_manager.cpp (main): avoid compiler
- warning due to implicit creation of temporary by explicitly
- creating an ACE_Process_Options instance. It gets passed to
- ACE_Process_Manager::spawn (ACE_Process_Options &), which
- takes a non-const reference.
-
-Tue May 13 18:08:32 1997 <irfan@TWOSTEP>
-
- * examples/ASX/UPIPE_Event_Server: Made enough fixes for this to
- compile on Win32 but more work need to be done for this to
- work on Win32.
-
- * ace/OS.i (kill): The error result for ::OpenProcess() is null
- and *not* invalid handle.
-
- * ace/Process.i (kill): Changed the implementation to remove the
- ACE_OS::kill() code from ACE_Process::kill() for Win32. This
- allows us to avoid calling ::OpenProcess() unnecessarily.
-
- * tests: For Win32, added Reactor_Exceptions_Test and
- Priority_Tasks_Tests. Files changes include run_tests.bat,
- tests.mak, and tests.mdp.
-
- * tests/Future_Test.cpp (main): Fixed memory leaks in main() and
- in name_i().
-
- * tests/Thread_Pool_Test.cpp (open): The loop was messed up
- causing memory leaks. I fixed it.
-
- * ace/UPIPE_Stream.cpp (close): I am not sure why the stream was
- closed with M_DELETE_NONE. This indicates that close() should
- not delete any Tasks. This caused a memory leak as the Tasks in
- the Tail and Head modules were not deleted. I have removed this
- to fix the memory leak.
-
- Also added a destructor such that mb_last_ is released if it is
- still around.
-
-Tue May 13 16:48:18 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * ace/Process.cpp: Added implementations to new interfaces
- to ACE_Process_Options::setenv (char *envp[]), and
- ACE_Process_Options::command_line (char *argv[]).
-
- * apps/JAWS/server/HTTP_Response.cpp: Required changes so that CGI
- processing will work with the new ACE_Process class.
-
- * apps/JAWS/stress_testing/benchd.cpp: Requried changes due to
- changes in the ACE_Process interface.
-
-Tue May 13 15:22:01 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
-
- * ace/Process_Manager.h: Changed ACE_Process_Manager::start to
- ACE_Process_Manager::spawn.
-
- * ace/Process.cpp (spawn): The check for a null environment argv
- was incorrect. Thanks to Nanbor for finding this.
-
-Mon May 12 18:59:39 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-mvs.h: conditionally use ACE_HAS_UCONTEXT_T or
- ACE_LACKS_UCONTEXT_H depending on __COMPILER_VER__. Thanks to
- Chuck Gehr <gehr@sweng.stortek.com> for this fix.
-
- * OS.h, OS.cpp (thr_create), Task.h, Thread.h, Thread_Manager.h:
- use ACE_DEFAULT_THREAD_PRIORITY instead of -1, because -1 is a
- valid priority on Win32. Thanks to Irfan for discovering this
- problem with Priority_Task_Test.
-
- * ace/Thread_Manager.cpp (wait_grp,wait_task): changed type of loop
- index "i" from size_t to int to avoid signed/unsigned comparison.
-
-Mon May 12 18:41:19 1997 Nanbor Wang <nw1@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h:
- * ace/config-freebsd.h: Added ACE_LACKS_RWLOCK_T to FreeBSD config
- files. Thanks to Amancio Hasty <hasty@rah.star-gate.com> for
- noticing this.
-
-Mon May 12 17:11:50 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
-
- * ace/Process.h: Changed ACE_Process::start to
- ACE_Process::spawn. Added new argv-style methods for
- ACE_Process::setenv and ACE_Process::command_line. These new
- argv-style methods do not have implementations yet.
-
-Mon May 12 15:27:41 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-aix-4.[12].x.h: Added ACE_HAS_EXCEPTIONS to
- the AIX 4.* config files. Thanks to Chris Lahey for this.
-
-Mon May 12 13:49:54 1997 <irfan@TWOSTEP>
-
- * ace/Thread_Manager.cpp (wait): We have to make sure that while
- we wait for these threads to exit, we do not have the
- lock. Therefore we make a copy of all interesting entries and
- let go of the lock. We then do the join().
-
- * ace/Task.cpp (wait): Removed the extra locking in wait(). The
- Thread Manager will handle this correctly.
-
- * ace/ACE.cpp (register_stdin_handler): Changed the options such
- that the Thread Manager used for the adapter is passed along to
- the method executed by the new thread. We can then notify the
- thread manager when this adapter thread exits.
-
- * examples/ASX/Event_Server/Event_Server: Changed the way the
- reference count was being kept on the context. Now, the
- reference count starts with zero and every instance and every
- active Task increments it. This works well as Task::close() is
- called one from the module being deleted and from the active
- thread going away.
-
-Mon May 12 11:11:51 1997 <harrison@samba.cs.wustl.edu>
-
- * ace/Process.*: Removed the old ACE_Process and replaced it with
- what was ACE_ProcessEx.
-
- * ace/Process_Manager.{i,cpp}: Updated to use the new ACE_Process
- API.
-
-Mon May 12 08:16:38 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-freebsd*.h: added support for FreeBSD 2.1.7R.
- Thanks to Satoshi Ueno <satoshi.ueno@gs.com> for figuring
- out the differences and to Nanbor Wang <nw1@cs.wustl.edu>
- for updating the config files.
-
-Sun May 11 17:36:59 1997 <harrison@samba.cs.wustl.edu>
-
- * tests/{Pipe_Test.cpp, Process_Mutex_Test.cpp,
- Time_Service_Test.cpp, Token_Service_Test.cpp}: Updated these
- files to use the new ACE_Process API.
-
-Sun May 11 14:40:51 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h: put back ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS.
-
- * ace/ACE_Process.cpp (ACE_Process_Options ctor): reordered
- initializers to match declaration order.
-
-Sat May 10 19:44:28 1997 <harrison@samba.cs.wustl.edu>
-
- * Process.h: ACE_ProcessEx now works on Solaris and NT. There
- have been some changes to the API. ACE_ProcessEx::cl_options
- and ACE_ProcessEx::path have been combined into
- ACE_ProcessEx::command_line. ACE_ProcessEx::command_line must
- be used to specify path and command-line arguments. There is
- also a second ACE_ProcessEx::setenv method that allows
- applications to set environment variables in a "VAR=VALUE"
- format.
-
-Sat May 10 10:51:11 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-osf1-3.2.h: Added three new flags to the config file
- for OSF/1 3.2:
-
- #define ACE_LACKS_SETSCHED
- #define ACE_LACKS_RWLOCK_T
- #define ACE_LACKS_GETPGID
-
- Thanks to Tom Dobridge <dobridge@persimmon.com> for reporting
- this.
-
-Fri May 09 16:37:48 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h: added DEC_CXX.
-
- * ace/config-osf1-4.0-g++.h: removed commented-out
- ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS.
-
- Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
- patches for the above two OSF config files.
-
- * ace/Sched_Params.cpp (priority_min): On Solaris (with STHREADS),
- don't return priority of 0 because ::pthread_attr_setschedparam ()
- will refuse to use it (with EINVAL). So, bump priority of 0 up to 1.
-
- * tests/Priority_Task_Test.cpp: retry the task activation with
- priority 0 if it fails with non-zero priority. This lets the
- test run on platforms such as Linux that only let the superuser
- set non-zero priority.
-
- * ace/ACE_Process.cpp (ACE_Process_Options ctor): reordered
- initializers to match declaration order.
-
- * examples/Connection/non_blocking/test_lsock_acceptor.cpp: fixed
- typo in template specializations: ACE_LSOCK_ACCEPTOR instead of
- ACE_SOCK_LACCEPTOR.
-
-Fri May 9 13:07:20 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/UNIX_Addr: Changed the return values of all the set()
- methods so that they conform to the signature used by the
- INET_Addrs.
-
- * examples/Connection/non-blocking: Added two new test programs,
- test_lsock_{connector,acceptor}.cpp that
-
-
- * ace/LSOCK_Stream.cpp: Revised the get_remote_addr() method so
- that it uses the underlying ACE_SOCK::get_remote_addr() method
- rather than the get_local_addr() method. Hopefully, this will
- fix an ACE bug with UNIX domain sockets. Thanks to Paul Han
- <phan@CCGATE.HAC.COM> for reporting the problem and the fix.
-
- * include/makeinclude/platform_aix4.2.GNU (LLIBS): Changed
-
- LLIBS = -lC_r -lC -lpthreads -lbsd -ltli_r -ldl -lc_r -lm -lc $(ACELIB)
-
- to
-
- LLIBS = -ltli_r -ldl $(ACELIB)
-
- MakeC++SharedLib_r includes all the other libs automatically in
- the search.
-
- * apps/Gateway/Gateway/Proxy_Handler.h: Moved the handle_close()
- method into the public section since the Connector now calls it.
-
- * ace/Containers.cpp: Updated all the operator= methods so
- that they no longer try to return *this. Thanks to Chris Lahey
- for reporting this.
-
- * ace/IOStream.h: Replaced __alpha with DIGITAL_UNIX && DEC_CXX.
- Thanks to Thilo for reporting this.
-
- * build/gcc/tests/Simple_Message_Block_Test.cpp (main): Changed
- the use of ACE_Mutex to ACE_SYNCH_MUTEX so that everything will
- build correctly on non-MT platforms.
-
- * ace/Timer_{Heap,List}_T.cpp: To ensure backwards compatibility
- with the old "int" return value of Timer_*::schedule() we must
- cast the long value to int before returning it. Thanks to Thilo
- Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
-
- * ace/Acceptor.cpp,
- ace/Connector.cpp:
- If an active or passive connection times out and the Connector
- or Acceptor calls the handle_timeout() method of the
- Svc_Handler, we now keep track of whether the handle_timeout()
- method returns -1. If so, we call handle_close() on the
- Svc_Handler automatically. Thanks to Michael Hartman
- <c62nt57@ibx.com> for suggesting this.
-
- * tests/IOStream_Test.cpp: Fixed this test so that it runs on
- non-MT platforms.
-
- * ace/Module.cpp: Changed the implementation of the close_i()
- method so that it will wait for all active threads in a Task to
- exit before deleting the task.
-
- * ace/Task: Added a wait() method on an ACE_Task that will use the
- new ACE_Thread_Manager::wait_task() method to block until all
- threads have shutdown in a Task.
-
- * ace/Thread_Manager: Finally implemented the wait_task() and
- wait_grp() interfaces on ACE_Thread_Manager.
-
- * ace/SOCK_Dgram.cpp: Added a timed recv() operation. Thanks
- to Hongbo Xu <hxu@mas.co.nz> for contributing this.
-
- * ace/Timer_Queue_T.cpp: Added #include "ace/Synch.h" to keep the
- DEC C++ compiler happy. Thanks to James CE Johnson
- <jcej@lads.com> for this.
-
- * ace/Containers.i (size): Changed <TYPE> to <T> so that this
- compiles on the Alpha. Thanks to James CE Johnson
- <jcej@lads.com> for this.
-
- * ace/IOStream.h: Include the std_macros header on the Alpha.
- Thanks to James CE Johnson <jcej@lads.com> for this.
-
- * include/makeinclude/platform_osf1_4.0.GNU (SOBUILD): Removed
- -lACE from the link line. Thanks to James CE Johnson
- <jcej@lads.com> for this.
-
- * tests/Timer_Queue_Test.cpp: Changed all the int timer ids to
- long so that the test will work on DEC ALPHAs. Thanks to Thilo
- Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
-
- * ace/Process: Fixed a number of compile problems for UNIX.
-
- * ace/Process.h: Changed the methods named stdin/stdout/stderr to
- std_in/std_out/std_err to avoid name clashes with the standard C
- library.
-
- * ace/OS: Changed the use of ACE_Unbounded_Set to
- ACE_Unbounded_Stack in order to get the appropriate semantics
- for TSS cleanup on NT.
-
- * ace/Containers: Enhanced the ACE_Unbounded_Stack class so
- that it supports insert()/remove()/find() methods. These
- rather unorthodox methods are useful for implementing the
- TSS semantics required by OS.cpp.
-
- * ace/Containers: Revised all the interfaces for the various
- containers so that they all have the same "look and feel."
-
-Fri May 9 00:00:21 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * apps/JAWS/server/HTTP_Request.{h,cpp}: Added a uritopath
- translation method, so that CGI location can be computed as it
- is searched. Added methods to access the parsed headers.
-
- * apps/JAWS/server/HTTP_Response.{h,cpp}: Flushed out the
- implementation of cgi_response () method. If all goes well, it
- should be able to execute a CGI program. I don't set the IO
- handles to point at the socket handle yet.
-
- * apps/JAWS/server/README: Updated description of JAWS behavior.
-
-Thu May 8 18:04:14 1997 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Containers: Made the return values of Container methods
- more consistant with other components of ACE (i.e., 0 for
- success, -1 for failure).
-
- * ace/Containers (ACE_Unbounded_Stack<T>::delete_all_nodes):
- Fixed subtle bug in delete_all_nodes.
-
- * ace/OS.cpp (ACE_TSS_Cleanup::exit): Changed because of
- return value changes in ACE containers.
-
- * Containers: Added size methods to stack containers and
- consolidated friendship between ACE_Unbounded_Stack_Iterator and
- ACE_Unbounded_Stack
-
- * tests/Message_Block_Test.cpp: I was incorrect about each data
- block having its own lock. Since *many* data blocks can share
- the same lock, for the case of message block chains, we would
- like to optimize locking.
-
- Therefore, the first guy in the chain grabs the lock and passes
- it to the continuation chain. When each guy in the chain gets
- it, it compares the passed lock to its own locking strategy. If
- it is the same lock, no need to acquire the lock again. If our
- lock is different, then we do our own locking.
-
- * tests/Simple_Message_Block_Test.cpp: This test program is a
- torture test that illustrates how ACE_Message_Block reference
- counting works, how and when locks are used, how memory is
- managed, and how continuation chains of message blocks are
- made. Ideally used with purify :-)
-
- * tests: Added new test. Following changed:
- Makefile run_tests.bat run_tests.sh tests.mak tests.mdp
-
-Thu May 8 18:04:14 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.2_sgic++.GNU: Moved SGI C++
- options out of CPPFLAGS into CCFLAGS so that gcc won't emit
- diagnostics during a make depend.
-
-Thu May 8 11:52:41 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/{Task,Thread}.h: Added documentation describing
- thread priority determination to methods where priority
- is an [optional] argument. Note that if you want to inspect
- the REAL documentation, you should look at the code for
- ACE_OS::thr_create(). But that's convoluted and touchy.
-
- * ace/Strategies_T.h (ACE_Cached_Connection_Strategy): Added
- documentation for this class.
-
-Thu May 08 00:10:00 1997 <harrison@samba.cs.wustl.edu>
-
- * ace/Process.*: This is the first pass at the new ACE_Process
- class. It is now called ACE_ProcessEx. When it is completely
- ported to Solaris, we'll replace the current ACE_Process with
- ACE_ProcessEx.
-
- * examples/OS/Process/process.cpp: Added some examples for the
- new ACE_ProcessEx.
-
-Wed May 07 21:58:29 1997 <irfan@TWOSTEP>
-
- * ace/Message_Block.h: ACE_Data_Block calling delete on the
- ACE_Message_Block was incorrect. This was a hack to simplify
- the locking issues! However this optimization leaded to
- incorrect code. Therefore I have taken this behavior out. The
- new implementation will lock and unlock multiple times in the
- case when there are message_blocks in the continuation field,
- all of which point to same data block. However, this is a
- strange case that can be optimized later. For now correct code
- is more important.
-
- Also, the continuation message blocks are only deleted in the
- release() method and not in the destructor. This will ensure
- that if message blocks of the stack are chained together, we
- will not call release on message blocks of the stack.
-
- Also note that release() should only be called on message blocks
- that have been dynamically allocated. Message blocks of the
- stack will clean up properly when the activation record of the
- method completes. Dynamically allocated messages blocks should
- *never* be chained with message blocks allocated of the stack.
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.h: Removed
- empty definitions of assignment operator and copy constructor.
-
- * examples/ASX/Event_Server/Event_Server/event_server.cpp
- (handle_input): Added code here will make sure we actually wait
- for the user to type something. On platforms like Win32,
- handle_input() is called prematurely (even when there is no
- data).
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Changed
- a log message.
-
-Wed May 7 22:55:00 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * JAWS/server/*: Debugging changes! GET and HEAD both work
- now. As well as changes to make it compile cleanly on
- VXWORKS, as reported by David.
-
-Wed May 07 16:05:39 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: added Timer_Wheel to FILES. Thanks to Thilo
- Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
-
- * include/makeinclude/platform_irix6.2_sgic++.GNU: enabled CPPFLAGS
- to instantiate all templates so that gatewayd will build.
- Thanks to Nathan N. Vuong <nvuong@mail08.mitre.org> for reporting
- this problem and Eric Dean Russell <edrusse@somnet.sandia.gov>
- for supplying and the fix.
-
- * ace/Map_Manager.h: updated comments to indicate that find
- functions return a non-negative integer if the item is found.
-
- * ace/Map_Manager.cpp (find_i (const EXT_ID &, INT_ID &)): return
- index instead of 0 if the item is found, to be consistent with
- find_i (const EXT_ID &).
-
- * ace/IOStream.cpp (ACE_Streambuf_T ctor): added initializations of
- eback_saved_ and pbase_saved_ to avoid unitialized memory read
- reports from Purify.
-
-Tue May 6 07:39:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp (open): Make sure to perform the
- daemonization logic first so that we get a new process created
- before initializing reactors, etc. Thanks to Adrian Salt
- <acsalt@magi.com> for reporting this.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp (main):
- Changed ACE::INVALID_HANDLE to ACE_INVALID_HANDLE.
- Thanks to Dani Flexer <danif@alice.actcom.co.il> for
- reporting this.
-
- * tests/Conn_Test.cpp (compare_i): Changed the comparison from
- a1 == a2 to a1 != a2 since this appears to be what is needed.
- We need to improve the comments here!
-
- * tests/Conn_Test.cpp: Split the definition of the Svc_Handler
- template into its own Conn_Test.h file to work around "features"
- with AIX C++. Thanks to Chris Lahey for reporting this.
-
- * ace/Containers.cpp: Fixed a bug in the set() method for
- ACE_Unbounded_Queue. Again, thank goodness for cs242!
-
- * ace/Containers.cpp: Fixed a bug in the enqueue_head() logic for
- ACE_Unbounded_Queue. Thank goodness for cs242 ;-).
-
- * ace/Containers.cpp: Added a destructor for ACE_Node to keep the
- compilers happy.
-
-Tue May 06 11:31:49 1997 David L. Levine <levine@cs.wustl.edu>
-
- * netsvcs/lib/*.cpp: removed break statements after
- ACE_RETURNs to avoid unreachable statement warnings from
- GHS.
-
- * ace/OS.cpp (mktime): added time_t cast of -1 (error) return
- to avoid compiler warning.
-
- * ace/config-vxworks-ghs-1.8.h: added ACE_LACKS_SIGNED_CHAR.
-
- * ace/Containers.cpp (dequeue_head): fixed typos in variable names.
-
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
- removed #ifdef ACE_HAS_TLI around some template specializations so
- that this subproject will build on platforms non-TLI platforms such
- as Linux.
-
-Tue May 6 17:02:54 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * ace/OS.{h,i}: Added strftime (). Also, enhanced strcasecmp
- implementation to account for lexicographical ordering for
- mismatches.
-
- * apps/JAWS/server/Parse_Headers.{h,cpp} (class Headers_Map):
- Changed signature of casting operator to return a pointer
- rather than a reference to a constant pointer, to fix
- anachronism warning Doug found.
-
- * apps/JAWS/server/HTTP_Config.{h,cpp}: Added class
- HTTP_Config to be a container for HTTP server options
- such as locations of directories, port, etc.
-
- * apps/JAWS/server/HTTP_Helpers.{h,cpp}: Added code to enhance
- support for CGI scripts:
- - Added HTTP_decode_string to HTTP_Helper class, to deal
- with percent codes.
-
- * apps/JAWS/server/HTTP_Request.{h,cpp}: Added code to enhance
- support for CGI scripts:
- - Added cgi_, cgi_env_, and cgi_args_ data members to
- and corresponding accessors.
- - Added nice accessors to the important data members to
- simplify other parts of the code.
- - Added method to parse URI to determine the name of the CGI
- executable if present.
-
- * apps/JAWS/server/HTTP_Response.{h,cpp}: Added code to
- enhance support for CGI scripts:
- - Hooks are now present to make the appropriate calls
- to activate a CGI program.
-
- * apps/JAWS/server/*.{h,cpp}
- Various changes from the ACE mailing list incorporated.
- Cosmetic changes for ACE coding style.
-
- SGI fixes.
-
-Tue May 6 00:00:54 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/Message_Block.cpp: Added template specialization for
- ACE_Guard<> that prevented ACE from compiling under Linux.
-
-Mon May 5 22:17:15 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
-
- * apps/JAWS/stress_testing: Removed the usleep definition from
- global.h, it was unused by the program.
-
-Mon May 05 21:01:42 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux*.h: added ACE_HAS_STRING_CLASS. Thanks to
- Luis Lopes <llopes@tick.rcc.Ryerson.CA> for reporting this.
-
-Mon May 05 19:58:16 1997 <irfan@TWOSTEP>
-
- * ace/ace.{mak,mdp}: Readded IOStream.cpp to the makefile.
-
- * ace/Synch_T.h: Added ACE_SYNCH_RECURSIVE_MUTEX.
-
- * ace/Timer_Queue: Added an extra template parameter to
- Timer_Queues that specifies the type of locking to be used
- inside of the timer queue.
-
- Also changed the functor callback routines so that they are more
- descriptive compared to operator ().
-
-Mon May 5 21:37:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Block: Revised the release() logic for
- ACE_Message_Block and ACE_Data_Block so that we will delete both
- within the same block of code in order to hold the lock. This
- should prevent nasty race conditions in multi-threaded programs.
- Thanks to Craig Perras <craig.perras@CyberSafe.COM> for
- reporting this problem.
-
- * ace/Message_Block.cpp: Replaced an explicit acquire()/release()
- of ACE_Lock::locking_strategy_ with a call to an ACE_Guard.
-
- * ace/Containers.cpp (set): Optimized for the common case where
- we're increasing the size of the set by 1.
-
- * ace/Containers: Merged the ACE_Set_Node, ACE_Stack_Node, and
- ACE_Set_Node into a single "ACE_Node" class. This tidies up the
- code quite a bit.
-
- * ace: Removed the Set.* and Stack.* files and replaced them with
- the Containers.* files. This file contains the ACE_*Stack,
- ACE_*Queue, and ACE_*Set classes. If this revised file scheme
- breaks existing code please let me know and I'll provide
- backwards compatibility.
-
- * ace/Stack: Changed the name of ACE_Unbounded_Queue::enqueue() to
- ACE_Unbounded_Queue::enqueue_tail() and also added
- ACE_Unbounded_Queue::enqueue_head().
-
- * ace/OS: Changed the names of the parameters of the ACE_OS::mem*
- methods from ACE_OS::mem* (void *s, const void *t) to
- ACE_OS::mem* (void *t, const void *s) since "t" should stand for
- "target" and "s" for "source." Thanks to Andres Kruse
- <Andres.Kruse@cern.ch> for pointing this out.
-
- * ace/Stack: Removed the peek() method from ACE_Unbounded_Queue.
- This functionality is now subsumed by the get(..., 0) method.
- If this breaks any existing code please let me know.
-
- * ace/Stack.h: Moved all the functionality from ACE_Unbounded_Set
- into ACE_Unbounded_Queue. That's really where this belonged in
- the first place. Thanks to David Levine for noticing this.
-
- * ace/Set.h: Moved ACE_Set_Node from the *.cpp file into the *.cpp
- file in anticipation of AIX C++ compiler bugs ;-).
-
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp:
- Rearranged the location where we register to receive standard
- input so that the socket handle will not be initialized at this
- point. Thanks to craig perras <craigp@wolfenet.com> for
- reporting this.
-
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp
- (Event_Transceiver): Make sure to #ifdef around SIGQUIT for
- WIN32 since it lacks this signal. Thanks to craig perras
- <craigp@wolfenet.com> for reporting this.
-
- * ace/config-osf1-4.0-g++.h: Removed the ACE_LACKS_SIGNED_CHAR
- since this seems to be compiler specific. Thanks to Thilo for
- this insight.
-
- * ace/Strategies_T: Added a number of fixes and enhancements to
- the new Hash_Addr and ACE_Cached_Connect_Strategy classes.
-
- * ace/Strategies_T.h: Added #include for "Hash_Map_Manager.h".
- Thanks to Amos Shapira <amos@dsi.co.il> for reporting this.
-
- * ace/config-hpux-10.*.h: Applied a number of patches courtesy of
- Carlos O'Ryan.
-
- * ace/Dump.cpp: Changed a cast from
-
- delete (ACE_Dumpable_Ptr *) this->dumper_;
-
- to
-
- delete (ACE_Dumpable *) this->dumper_;
-
- This fixes a potential bug. Thanks to Carlos O'Ryan for this
- bug report.
-
- * ace/DEV_IO.h,
- * ace/SPIPE_Stream.h: Removed the = 0 default value for one send()
- method to avoid ambiguity with the other send() method. Thanks
- to Carlos O'Ryan for this bug report.
-
- * ace/Map_Manager.cpp (advance): Removed a cast to size_t since
- that is always true. Thanks to David Levine for pointing this
- out.
-
- * ace/XtReactor: Moved the remove_handler_i() and
- register_handler_i() methods into the protected portion
- of the class. Since these should never be called by the
- client I've moved them into protected portion to ensure this
- is the case.
-
- * ace/XtReactor: Changed the implementation of the XtReactor to
- use long for dealing with timers. Thanks to Stuart Powell
- <stuartp@in.ot.com.au> for reporting this.
-
-Mon May 5 17:16:41 1997 Carlos O'Ryan <coryan@mat.puc.cl>
-
- * ace/config-hpux-10.x.h, config-hpux-10.x-nothread.h:
- Some patches are needed to compile ACE under HP-UX (using HP/C++),
- I documented those patches.
-
-Mon May 05 11:50:39 1997 David L. Levine <levine@cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler.cpp: fixed ACE_Svc_Handler
- specializations, yet again, for Linux w/LXPthreads. Thanks to
- Luis Lopes <llopes@tick.rcc.Ryerson.CA> for reporting this
- problem with sufficient detail for us to track it down.
-
- * ace/Stack.* (ACE_Unbounded_Queue):
-
- 1) made peek () const.
- 2) added another peek (u_int index = 0) function that can peek
- at any queue item, not just the first. It returns a pointer
- to the item (or 0 if not found), to avoid copying.
- 3) changed return type of size () from int to size_t.
- 4) inlined size ().
-
- * ace/Strategies_T.cpp (connect_svc_handler, operator==):
- added return type.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: fixed template
- specializations for platforms that have neither THREADS nor
- TLI. Thanks to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
-
-Sun May 4 12:34:09 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.cpp: If ACE_HAS_THREADS isn't defined then we'll just
- use mktime() without the locking.
-
- * ace/Set: Removed the get() methods from the ACE_Fixed_Set and
- ACE_Bounded_Set since they don't make much sense on these
- abstractions.
-
- * ace/Set: Changed the new "find" method to be called "get" to
- correspond to the new "set" method I'm adding.
-
- * ace/SString.cpp: Added a operator << for ACE_CString in
- order to print it with iostreams.
-
- * ace/Set.cpp: Added a reset method to the ACE_Unbounded_Set to
- remove all the nodes without completely destroying the set.
-
- * ace/SString: Added friend operator+ to both ACE_CString and
- ACE_WString in order to provide a concatenation operator.
-
- * ace/SString: Added a compare() method to all the ACE String
- classes. This behaves just like the Standard C library strcmp()
- function.
-
- * ace/Message_Queue.i: Oddly, there were a bunch of methods
- defined in this *.i file that didn't have ACE_INLINE in front of
- them. I'm surprised this didn't give compile errors on some
- platforms. I've fixed this by moving these methods into the
- *.cpp file.
-
- * ace/Stream,
- ace/Service_Repository,
- ace/Reactor,
- ace/Message_Queue,
- ace/Map_Manager,
- ace/Malloc_T,
- ace/Hash_Map_Manager,
- ace/Set: Added a done() method on all the iterators so that
- we can check within the iteration itself to see if there are any
- remaining elements. In addition, updated the return value of
- advance() on all iterators so that it returns 1 if we're not
- done and 0 if we're done.
-
-Sun May 04 07:22:49 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Timer_Heap_T.cpp: changed some more int declarations to longs.
-
-Sat May 3 17:38:19 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Changed all uses of Reactor::{scheduler_timer,cancel}() and
- Timer_{Queue,List,Heap,Wheel}::{schedule,cancel}() to use
- long rather than int. This is important since it ensures that
- we can make the Timing Wheels trick of casting the
- Timer_Node * to long work correctly on machines that have 64
- bit pointers, 64 bit longs, and 32 bit ints (e.g,. DEC
- ALPHA). Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for pointing this out,
- even though he finds this solution distasteful ;-).
-
- * netsvcs/lib/TS_Clerk_Handler.cpp (initiate_connection): I
- believe there was also a bug here -- if schedule_timer() returns
- 0 that's not an error!
-
- * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp
- (initiate_connection): I believe there was a bug here -- if
- schedule_timer() returns 0 that's not an error!
-
- * tests/IOStream_Test.cpp: Added some minor changes for DEC UNIX.
- Thanks to James CE Johnson <jjohnson@lads.com> for reporting
- this.
-
- * ace/IOStream: Added a number of minor changes for DEC UNIX.
- Thanks to James CE Johnson <jjohnson@lads.com> for reporting
- this.
-
- * ace/config-osf1-4.0.h: Added
- ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS to the config.h file.
- Thanks to James CE Johnson <jjohnson@lads.com> for reporting
- this.
-
- * ace/SString: Made the ace_string_null_string_ a static data
- member rather than an external constant. This should control
- the name space a bit better.
-
- * ace/SString.cpp: Fixed the ACE_CString::operator += so that it
- won't screw up if this->rep_ initially points to the
- ACE_String_null_string_.
-
- * examples/Misc: Added a new test_set.cpp program that exercises
- the ACE_*_Set classes.
-
-Sat May 03 06:56:10 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Map_Manager.cpp (dtor): removed void return (typo).
-
- * ace/Set.cpp (ACE_Fixed_Set<T>::operator =): typo: fs instead of bs.
-
- * ace/Set.cpp (ACE_Fixed_Set<T, SIZE>::find): typo: index instead of i.
-
- * ace/IOStream.cpp: fixed typo: "#if defined" instead of just "#if".
-
- * tests/Conn_Test.cpp,
- netsvcs/lib/{Client_Logging_Handler,TS_Clerk_Handler}.cpp,
- netsvcs/clients/Tokens/manual/manual.cpp,
- apps/Gateway/Gateway/Event_Channel.cpp,:
- apps/JAWS/client/Blob.cpp,
- examples/ASX/Event_Server/Event_Server/Peer_Router.cpp,
- examples/ASX/Event_Server/Transceiver/transceiver.cpp,
- examples/ASX/UPIPE_Event_Server/{Consumer,Supplier}_Router.cpp,
- examples/Connection/misc/test_upipe.cpp,
- examples/Connection/non_blocking/test_*_connector.cpp: added
- ACE_Map_Entry template specialization. It's needed now that the
- destructor is explicit.
-
-Fri May 2 14:57:56 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Map_Manager.cpp: Added a no-op destructor to ACE_Map_Entry
- just to keep some compilers happy. Thanks to Chuck Gehr for
- reporting this.
-
- * ace/config-osf1-4.0.h: Added
-
- #define ACE_LACKS_IOSTREAM_FX
- #define ACE_LACKS_LINEBUFFERED_STREAMBUF
- #define ACE_LACKS_SIGNED_CHAR
-
- Thanks to James CE Johnson <jjohnson@lads.com> for reporting
- this.
-
- * ace/Timer_{Wheel,Heap,List}_T.h: Fixed a typo in all these
- classes that was failing to put the keyword "class" after
- "friend." Also, replaced the use of the typedef with the
- expanded name of the class to work around problems with DEC
- C++. Thanks to James CE Johnson <jjohnson@lads.com> for
- reporting this.
-
- * ace/Set: Added a find() method that will return the "ith"
- element in the set.
-
- * ace/Set: Added copy constructors and assignment operators to all
- the ACE_*_Set classes.
-
- * ace/Set.cpp: Changed the implementation of ACE_Unbounded_Set to
- use a dummy node and a circular list. This improves performance
- and also makes it possible to implement "queue" semantics for
- inserting at the tail of the set.
-
- * ace/config-osf1-4.0.h: Added the ACE_HAS_STRING_CLASS macro.
- Thanks to James CE Johnson <jcej@lads.com> for this.
-
- * ace/IOStream: Added the ACE_HAS_STRING_CLASS macro to
- replace the nasty #ifdefs we had previously. Thanks to
- James CE Johnson <jcej@lads.com> for this.
-
- * ace/config*.g++: Added ACE_HAS_STRING_CLASS for all the GNU
- compilers and Win32.
-
- * ace/config-mvs.h: Added a new version that contains support for
- IBM OS/390 r2. Thanks to Chuck Gehr for this.
-
-Fri May 02 08:14:30 1997 David L. Levine <levine@cs.wustl.edu>
-
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp: removed
- specializations of ACE Guards because they're in libGateway.
- Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting this problem.
-
- * examples/ASX/Event_Server/Transceiver/{Makefile,transceiver.cpp}:
- added template specializations to transceiver.cpp so that it no
- longer needs to be linked with libGateway.
-
- * examples/ASX/Event_Server/Event_Server/{Makefile,Peer_Router.cpp}:
- added template specialization to Peer_Router.cpp so that event_server
- no longer needs to be linked with libGateway.
-
- Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting the above
- link problems.
-
- * apps/Gateway/Peer/{Makefile,Peer.cpp}: added template
- specialization to Peer.cpp so that peerd no longer needs to
- be linked with libGateway.
-
- * Log_Msg.cpp (VxWorks only): fixed used of ::taskDeleteHookAdd (it
- should only be called once for all Log_Msg instances) and added call
- to ::taskDeleteHookDelete to clean up when the last task exits.
- Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
- reporting this.
-
- * tests/Conn_Test.cpp: changed some fprintf print specifiers to avoid
- g++ warnings about printing pointer values.
-
-Thu May 01 00:05:59 1997 <irfan@TWOSTEP>
-
- * tests/Time_Service_Test.cpp (main): Made sure that the backing
- store is not there at the start of the program. We need to make
- sure because this test kills the Time Clerk and on some
- platforms the Clerk is not allowed to do a graceful shutdown. By
- cleaning the backing store here, we are sure that we get a fresh
- start and no garbage data from a possible aborted run.
-
- The old code deleting the backing store at the end of the test
- is still there but does not work on Win32 as unlink fails with
- ERROR_ACCESS_DENIED. I am not sure why this is happening! For
- now the unlink at the start of the program will do.
-
- Also added a wait for the clerk before deleting the backing
- store. This way we are sure that we do not delete the backing
- store before the clerk is done with it.
-
- * netsvcs/lib/TS_Clerk_Handler.cpp: Fixed an obscure bug with
- ACE_TS_Clerk_Processor. ACE_TS_Clerk_Processor (which is an
- ACE_Connector) and all its pending connection objects are still
- registered with the Reactor when the process exits and the
- Service_Object is deleted. After this the destructor of the
- Reactor then calls handle_close on ACE_TS_Clerk_Processor
- (which does not exist anymore), causing a seg fault. The
- solution is to call ACE_Connector::fini from
- ACE_TS_Clerk_Processor::fini. ACE_Connector::fini will
- unregister ACE_TS_Clerk_Processor and all pending connects from
- the Reactor.
-
-Wed Apr 30 17:47:11 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (getpwnam_r): Changed the expression to check if
- getpwnam_r() returns -1 for AIX. Thanks to Chris Lahey for
- this.
-
- * ace/Timer_Wheel_T.h: changed
-
- // = Don't allow these operations for now.
- ACE_Timer_Wheel_T (const ACE_Timer_Wheel_T &);
- void operator= (const ACE_Timer_Wheel_T &);
-
- to:
-
- // = Don't allow these operations for now.
- ACE_Timer_Wheel_T (const ACE_Timer_Wheel_T<TYPE, FUNCTOR> &);
- void operator= (const ACE_Timer_Wheel_T<TYPE, FUNCTOR> &);
-
- Thanks to Chuck Gehr for reporting this.
-
- * ace/OS.cpp: Made mktime() thread-safe. If any platforms support
- multi-thread safe versions of mktime() please let me know so we
- can set the ACE_HAS_MT_SAFE_MKTIME macro for that config file.
-
- * ace/OS.i: Added a new special case for getpwnam_r() on AIX.
- Thanks to Chris Lahey for reporting this.
-
-Wed Apr 30 16:01:04 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * ace/OS.i, ace/OS.h: added mktime().
-
-Wed Apr 30 14:17:34 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks*.h: added ACE_LACKS_PWD_FUNCTIONS. Thanks
- to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting
- this.
-
- * ace/OS.i: cleaned up ACE_LACKS_PWD_FUNCTIONS comments a bit.
-
- * ace/Array.{h,i}: added const operator [].
-
- * ace/Array.cpp (ctors): reordered initializers to match declaration
- order.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: protect against multiple
- inclusion. Thanks to Kevin Martindale
- <kevin_martindale@stortek.com> for reporting this problem.
-
-Wed Apr 30 08:42:55 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace: Added a new generic Array class, which we'll use until
- STL becomes more widely portable.
-
- * ace: Added a new macro ACE_LACKS_GETPGID to clean up the code
- in ACE_OS::getpgid().
-
- * ace: Added new config*.h files and platform*.GNU files for
- FreeBSD. Thanks to Nanbor Wang <nw1@cs.wustl.edu> for these.
-
-Wed Apr 30 07:44:36 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0*.h: removed ACE_HAS_SIGWAIT.
-
- * ace/OS.{h,i}: applied Thilo's patch for sigwait on Digital
- Unix 4.0, which defines sigwait as a macro. Thanks to
- Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
- this and the above config file patches.
-
- * ace/IOStream.{h,cpp}: James CE Johnson <jcej@lads.com> updated
- the IOStream class; see comments in IOStream.h.
-
- * examples/Logger/client/logging_app.cpp (main),
- performance-tests/Misc/test_naming.cpp (*): replaced sprintf
- with ACE_OS::sprintf. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for reporting these.
-
-Tue Apr 29 20:03:38 1997 <sumedh@cs.wustl.edu>
-
- * apps/JAWS/stress_testing/http_tester.cpp : Removed usage
- of pow (), and changed method of calculating throughput/latency
- to use straight multiplication instead of pow (). Updated
- Makefile to not link -lm.
-
-Tue Apr 29 19:57:52 1997 <irfan@TWOSTEP>
-
- * config-win32-common.h (ACE_HAS_TEMPLATE_SPECIALIZATION): Win32
- supports this option. Added to config file.
-
- * ace: Removed tracing for the following to make things work with
- tracing on:
-
- ACE::timestamp
- ACE_FIFO_Send_Msg::send
- ACE_SPIPE_Stream::send
- ACE_Sig_Guard::ACE_Sig_Guard
- ACE_Sig_Guard::~ACE_Sig_Guard
-
- * netsvcs/servers/main.cpp (main): Added special code for Win32
- such that only SIGINT is being registered with the Signal
- Handler. SIGQUIT is not supported on Win32.
-
- * netsvcs/lib/Token_Handler.cpp (init): Removed the registration
- of the Acceptor for SIGINTs.
-
- * netsvcs/lib/TS_Server_Handler.cpp (init): Same as above.
-
- * netsvcs/lib/Client_Logging_Handler.cpp (open): Removed the
- registration of SIGPIPE for Win32. Win32 does not support
- SIGPIPE.
-
- * tests/Process_Strategy_Test.cpp (server): The new thread must
- become owner before it can call Reactor::handle_events. Also
- fixed #define typo.
-
- * ace/OS.cpp (socket_fini): Remove the ACE error message as the IO
- Stream objects are already gone by this point in the program.
-
- * examples/Registry/Registry.mak: Replaced the old makefiles with
- this one. Also added _AFXDLL as a preprocessor define, forcing
- the correct inclusion of header files that give a consistent
- definition of HKEY. This is a hack till we have a better
- solution.
-
- * ace/Event_Handler: Removed the old Proactor callback methods.
-
-Tue Apr 29 17:39:40 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-mvs.h: Added #define ACE_LACKS_LINEBUFFERED_STREAMBUF
- for MVS. Thanks to Chuck Gehr <gehr@sweng.stortek.com> for
- reporting this.
-
- * ace: Commented out ACE_TRACE calls in constructors in
- several ACE classes in order to avoid problems with circular
- initialization dependencies related to mutexes that are
- breaking code on WinNT when ACE_NTRACE is set to 0. Thanks
- to Lothar Hermann <hermann@csaserv.med.siemens.de> for
- reporting these.
-
- * ace/Reactor.cpp: It looks as if Windows NT isn't returning
- the number of bytes requested by a WinSock recv() used in
- the ACE_Reactor::notify() in some situations. This is
- causing problems for test programs under heavy load. The
- fix appears to be to add an additional ACE::recv() to obtain
- the remaining bytes. Thanks to Karlheinz for reporting this
- and to Irfan for helping to fix it.
-
- * ace/OS.i: Fixed a very subtle bug with ACE_OS::cond_wait() and
- ACE_OS::cond_signal() that only manifests itself when
- ACE_HAS_SIGNAL_OBJECT_AND_WAIT is enabled (which isn't the
- default). The problem stemmed from the fact that we were
- assuming that if we used condition variables it implied that the
- external mutex had USYNC_PROCESS scope. In fact, the external
- mutexes typically have USYNC_THREAD scope, so
- SignalObjectAndWait() was hanging indefinitely. Fortunately,
- the fix was easy -- just add a run-time check for the type of
- the external mutex and take the appropriate action. Thanks to
- Irfan for noticing this.
-
- * tests/Reader_Writer_Test.cpp: Added a parse_args() function that
- allows us to override the default number of reader/writer
- threads + the number of iterations.
-
- * ace/OS: Added patches for Digital UNIX to handle the
- getpwnam_r() name. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for these patches.
-
-Tue Apr 29 14:27:19 1997 <harrison@samba.cs.wustl.edu>
-
- * OS.h: Added ACE_HAS_SVC_DLL. If you write a library and
- want it to use ACE_Svc_Export, this will cause those macros
- to build dlls. If you want your ACE service to be a static
- library, comment out this line. As far as I know, the only
- reason to have a library be an ACE "service" is to leverage
- the ACE_Svc_Export macros. It's just as easy to define your
- own export macros.
-
-Tue Apr 29 07:25:25 1997 David L. Levine <levine@cs.wustl.edu>
-
- * apps/JAWS/server/HTTP_Request.h (HTTP_Request): added destructor
- declaration.
-
- * apps/JAWS/server/Parse_Headers.cpp (parse_header_line): assign local
- "value" to value_ field of map_[header].
-
- * apps/JAWS/server/HTTP_Request.cpp (HTTP_fix_path): commented this
- static function out because it's not used, and g++ warns about that.
-
- * apps/JAWS: added CVS header to all .h, .i, and .cpp files.
-
-Tue Apr 29 00:33:46 1997 <irfan@TWOSTEP>
-
- * examples/Reactor/Misc/notification.cpp: Add this test to the
- Win32 makefile.
-
- * ace: Removed config-win32-msvc2.0.h, config-win32-msvc4.0.h
- config-win32-msvc4.x.h, and config-winnt-4.0-msvc.h from the
- repository. These files have been replaced by config-win32.h
- and config-win32-common.h.
-
- * IOStream_Test.cpp (main): Added return 0 at the end of main().
-
- * examples/Reactor/Proactor/test_proactor.mak: Added wsock32.lib
- to the link line. I am not sure why we have to do this again
- since ace.lib already includes it. Without this library in the
- link line, GetAcceptExSockaddr is not defined. Go figure!
-
- * apps/JAWS/server/jaws.mak: Same as above.
-
- * ace/ace.{mak,mdp}: Fixed the generation of the release version
- of ace.dll such that wsock32.lib is automatically included.
-
-Tue Apr 29 00:16:27 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * JAWS: Changes to support CGI scripts
-
- Changed the following files --
- HTTP_Handler.cpp HTTP_Handler.h HTTP_Helpers.cpp
- HTTP_Helpers.h HTTP_Request.cpp HTTP_Request.h IO.cpp IO.h
-
- Added the following files --
- HTTP_Response.cpp HTTP_Response.h Parse_Headers.cpp
- Parse_Headers.h
-
- Removed the file --
- JXH_String.h
-
- * JAWS/stress_testing: Changed the Makefile to link in the math
- library (-lm).
-
- * ace/OS.h and ace/OS.i: Added support for memmove().
-
-Mon Apr 28 21:35:35 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/IOStream.h: Added a new macro called
- ACE_LACKS_IOSTREAM_SETGET, which works around bugs with SGI C++
- on IRIX 6.2. Thanks to Torbjorn Lindgren <tl@funcom.com> for
- reporting this.
-
- * ace/Timer_List_T.h: Replaced the use of
- ITERATOR with ACE_Timer_Queue_Iterator_T<TYPE, FUNCTOR> to
- work around problems with SGI C++. Thanks to
- Torbjorn Lindgren <tl@funcom.com> for reporting this.
-
- * ace/Timer_List_T.cpp: Removed the use of NODE * and replaced it
- with ACE_Timer_Node_T<TYPE, FUNCTOR> in order to work around
- bugs with certain C++ compilers (i.e., SGI). Thanks to Torbjorn
- Lindgren <tl@funcom.com> for reporting this.
-
- * tests/Conn_Test.cpp: Removed some extraneous template
- specializations. Thanks to Nanbor Wang <nw1@cs.wustl.edu> for
- reporting these.
-
- * apps/JAWS/client/Blob.cpp: Rearranged some of the template
- specializations in the hope of fixing a linker problem with
- SunC++ 4.2.
-
- * ace/config-irix-6.2*.h. It appears that SGI IRIX 6.2 supports
- pread() and pwrite() so I enabled the ACE_HAS_P_READ_WRITE macro
- in the IRIX 6.2 config file.
-
- * ace/OS.cpp: Implemented ACE_OS::pread() and ACE_OS::pwrite() for
- systems that lack this feature. The implementation uses the new
- ACE_Thread_Mutex monitor lock in order to ensure atomicity
- between the lseek() and the read()/write().
-
- * ace/OS.cpp: Finally broke down and added a ACE_Thread_Mutex
- monitor lock to the ACE_OS implementation file. This is useful
- for situations where we need to serialize certain ACE_OS
- emulation calls (e.g., ACE_OS::{pwrite,pread}).
-
-Mon Apr 28 15:42:48 1997 David L. Levine <levine@cs.wustl.edu>
-
- * apps/JAWS/client/blobby.cpp: updated template specializations.
-
- * apps/JAWS/stress_testing/global.h: removed #includes of system
- headers because ace/OS.h takes care of them. They were causing
- warnings with g++ (because they were #included before OS.h).
-
- * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: fixed
- typos in template specializations.
-
- * tests/Conn_Test.cpp,Message_{Block,Queue}_Test.cpp,
- Process_Strategy_Test.cpp: fixed template specializations
- for platforms without threads. Thanks to Nanbor Wang
- <nw1@cs.wustl.edu> for pointing out this problem.
-
- * ace/Connector.h: use ACE_SYNCH_RW_MUTEX in Map typedefs
- instead of old ACE_RW_Mutex (which should have been
- ACE_Thread_RW_Mutex) and ACE_Null_Mutex (depending on
- whether the platform has threads).
-
- * ace/Service_Record.cpp: added ACE_NULL_SYNCH template
- specializations with threads, because they're still needed even
- with threads. This way, individual programs don't have to
- specialize these.
-
- * ace/Task.cpp: added ACE_TSS<ACE_Task_Exit> and
- ACE_TSS<ACE_Dynamic> template specializations, if the platform
- has threads and TSS. This way, individual programs don't have
- to specialize them.
-
- * apps/Gateway/Gateway/Event_Channel.cpp,
- Proxy_Handler{,_Connector}.cpp,apps/JAWS/server/HTTP_Server.cpp,
- examples/ASX/Event_Server/Transceiver/transceiver.cpp,
- examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp,
- examples/Connection/blocking/SPIPE-connector.cpp,
- examples/Connection/misc/{Connection_Handler,test_upipe}.cpp,
- examples/Connection/non_blocking/test_*.cpp,
- examples/IOStream/server/iostream_server.cpp,
- examples/Logger/Acceptor-server/server_loggerd.cpp,
- examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp,
- netsvcs/lib/Client_Logging_Handler.cpp,
- netsvcs/lib/TS_{Clerk,Server}_Handler.cpp:
- removed template instantiations that are now in
- ace/Service_Record.cpp and ace/Task.cpp. This should help
- on platforms without threads.
-
- * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: fixed
- typos in template specializations.
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: protected
- the ACE_*Guard template instantiations with #ifdef ACE_HAS_THREADS.
-
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp: protected
- the ACE_*Guard template instantiations with #ifdef ACE_HAS_THREADS.
-
- * apps/JAWS/stress_testing/benchd.cpp (serve): added return -1 if
- the strcmp () fails so that the function always returns a value.
-
-Mon Apr 28 18:53:58 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.h: Added ACE_DEFAULT_TIMER_WHEEL_SIZE and
- ACE_DEFAULT_TIMER_WHEEL_RESOLUTION constants.
-
- * ace/Timer_Wheel_T.h: switched to use these constants
-
- * tests/Timer_Queue_Test.cpp: switched to use these constants
-
- * ace/Timer_Wheel: added a new strategy for Timer Queues, one
- based on a hash table of ordered lists.
-
- These files were added:
-
- - ace/Timer_Wheel.h
- - ace/Timer_Wheel_T.h
- - ace/Timer_Wheel_T.cpp
-
- These files were also changed to accomodate Timer Wheel
-
- - ace/Timer_Queue.cpp
- - ace/Timer_Queue_T.h
- - ace/Timer_Queue_T.cpp
- - tests/Timer_Queue_Test.cpp
-
-Mon Apr 28 17:32:04 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Added
- template specializations.
-
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp: Added
- template specializations.
-
- * ace/OS.cpp (thr_create): Hopefully resolved tension
- btw. priority determination algorithms for IRIX, LinuxThreads, and
- DEC UNIX 4.0. Thanks to Thilo for information that lead to this.
-
-Mon Apr 28 00:25:17 1997 <irfan@TWOSTEP>
-
- * apps/JAWS/client: Removed ACE_Export macro from class
- declarations. Fixed buffer size bug in
- ACE_Blob_Reader::receive_reply ().
-
-Sun Apr 27 22:22:14 1997 <irfan@TWOSTEP>
-
- * ace/Proactor: The Proactor can now be registered with ReactorEx
- and both of them can be run from ReactorEx's event loop. Added a
- flag to Proactor's constructor that indicates whether the
- Proactor will be used in conjunction with ReactorEx event
- loop. Only if this flag is set will the event in the Proactor be
- used by the Asynch IO components. This will help with
- performance.
-
- * examples/Reactor/Proactor/test_multiple_loops.cpp: Added a new
- test that shows the integration of the event loops of Proactor
- and ReactorEx.
-
- * ace/Asynch_IO: Added an ACE_EVENT parameter to the constructors
- of classes that inherit from the OVERLAPPED structure. This way
- the Proactor's event_ can be set in the OVERLAPPED structure.
-
- Also changed the open methods on the Asynch IO classes to take a
- Proactor as an extra parameter.
-
- Changed ACE_Handler's handle_timeout() to handle_time_out() in
- ACE_Handler. This is temporary till we decide on the argument
- about mixing the interface of ACE_Event_Handler and
- ACE_Handler. This change allows user to inherit from ACE_Handler
- and ACE_Event_Handler and use the different handle_timeout()
- method, one of which returns void and the other return an int.
-
- * examples/Reactor/Proactor/test_timeout.cpp: This file got
- affected by the above change.
-
-Sun Apr 27 17:44:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.h: Added a new #define called ACE_DEFAULT_HTTP_SERVER_PORT.
- Naturally, this defaults to 80...
-
- * apps/JAWS/client/blobby.cpp: Cleaned up the blobby example so
- that it conforms more closely to the ACE style guide.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-in{server,client}.cpp: Took out
- the VxWorks-specific #ifdefs. I believe this is fixed in ACE_OS
- now. If not, the burden of proof is on the VxWorks testers to
- prove me wrong ;-).
-
- * ace/Synch_T.h: Added a new macro ACE_SYNCH_RW_MUTEX to
- complement the existing ACE_SYNCH_MUTEX and ACE_SYNCH_CONDITION
- macros. This will clean up lots of code in various test
- programs.
-
- * ace/Synch_T.h: Added two new macros, ACE_SYNCH_MUTEX and
- ACE_SYNCH_CONDITION. These default to ACE_MT_SYNCH::MUTEX and
- ACE_MT_SYNCH::MUTEX if template typedefs are supported and
- ACE_HAS_THREADS is enabled. If template typedefs *aren't*
- supported but ACE_HAS_THREADS is enabled these macros turn into
- ACE_Thread_Mutex and ACE_Thread_Condition. Finally, if
- ACE_HAS_THREADS is disabled these macros turn into
- ACE_Null_Mutex and ACE_Null_Condition. These macros make it
- possible to write code that is more portable across platforms
- and configurations. Thanks to Carlos O'Ryan for this
- suggestion.
-
- * ace/OS.h: Replaced all uses of ACE_SYNCH_MUTEX and
- ACE_SYNCH_CONDITION with ACE_SYNCH_MUTEX_T and
- ACE_SYNCH_CONDITION_T since (1) this usage relates to templates
- and (2) it frees up the namespace for the new ACE_SYNCH_MUTEX
- and ACE_SYNCH_CONDITION macros.
-
- * ace/Timer_Queue.cpp: Added yet more template specializations for
- the benefit of GCC (ugh).
-
- * ace/Timer_Wheel_T.cpp: Had to revise things just a bit to
- compile with GCC and it's lame template mechanism. This
- required changing NODE * to ACE_Timer_Node_T<TYPE, FUNCTOR> * in
- several method definitions.
-
- * apps/JAWS/server/HTTP_Server.h: Changed the use of ACE_WIN32 to
- ACE_HAS_THREAD_SAFE_ACCEPT since this is a more precise way to
- determine if the platform allows multiple threads to call
- accept() on the same port. If other platforms support this
- feature please make sure to add it to their config*.h files.
-
- * ace/config-win32-common.h: Defined ACE_HAS_THREAD_SAFE_ACCEPT,
- since Win32 allows multiple threads to call accept() on the same
- port.
-
- * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: The mutex
- should be ACE_RW_Mutex, not ACE_Null_Mutex...
-
-Sun Apr 27 18:13:24 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/Proactor.h: Added Timer_Wheel support.
-
-Sun Apr 27 18:13:24 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
-
- * apps/JAWS/client: Removed blobby.h, and replaced it with
- blobby_options.{h,cpp}.
-
- * apps/JAWS/stress-testing: Removed unused argument warnings
- etc.
-
-Sun Apr 27 07:41:44 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Timer_Queue.cpp: added #includes for template specializations,
- and removed some unused specializations.
-
- * ace/Timer_Wheel_T.cpp: added newline at end of file.
-
- * ace/Timer_Wheel_T.cpp (ACE_Timer_Wheel_T ctor): reordered
- initializers to match declaration order.
-
- * ace/Log_Msg.cpp (log): added support for indenting output according
- to the current nesting level by adding a new format specifier, I,
- which indents the output according to the current trace_depth_.
- If a width is also specified it is taken as multiplier (so that
- the indentation is n*trace_depth_). Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for providing the code for this feature!
-
- * examples/Reactor/Misc/test_timer_queue.cpp: fixed typos in
- #includes, and added #include of ace/Timer_Heap.h.
-
-Sat Apr 26 17:19:56 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/Timer_Queue.cpp: The correct Timer_Queue.cpp file was not
- checked in. Also the necessary #include was missing.
-
- * ace/Proactor.h: Proactor need all three Timer include files.
-
- * ace/ace.{mdp,mak}: Updated for changes to Timer files.
-
- * ace: Updated the following files to include /**/ before an
- include file directive: OS.h, config-win32-common.h,
- bstring.h. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de>
- for reporting this.
-
-Sat Apr 26 13:41:15 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-sco-5.0.0-mit-pthread.h: Added
- ACE_LACKS_PTHREAD_CANCEL. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for reporting this.
-
- * ace: Came up with a scheme that allowed us to remove the
- ace/Timers.{h,i,cpp} files by adding
- ACE_Timer_{Queue,Heap,List}_T.{h,i,cpp} files instead. Thus, no
- existing code should break.
-
-Fri Apr 25 17:17:06 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): Fixed the fix from Thilo so that it
- compiled properly on Linux. Hopefully I didn't break his, and I
- should have detected the problem earlier. Mea culpa.
-
-Fri Apr 25 12:45:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Added a new macro called ACE_HAS_SIG_MACROS for the
- case where the frigging OS defines things like sigismember and
- sigfillset as macros (ugh).
-
- * ace/FILE_IO.h: Removed a trailing default initializer from the
- send() method since it was ambiguous. Thanks to Carlos O'Ryan
- for reporting this bug.
-
- * ace/OS.i (select): Unfortunately the (operator timeval*) defined
- for ACE_Time_Value was not used in ACE_OS::select (int width,
- fd_set *rfds, fd_set *wfds, fd_set *efds, const ACE_Time_Value
- *timeout) because the operator cannot be applied for a
- ACE_Time_Value*. Therefore, I fixed this as follows:
-
- ACE_SOCKCALL_RETURN (::select (width,
- (ACE_FD_SET_TYPE *) rfds,
- (ACE_FD_SET_TYPE *) wfds,
- (ACE_FD_SET_TYPE *) efds,
- timeout == 0 ? 0 : (timeval *) *timeout) , int, -1);
-
- Thanks to Carlos O'Ryan for reporting this bug.
-
- * ace: Applied a slew of patches from Carlos O'Ryan in order to
- get ACE to compile on HP/UX 10.x with the aCC compiler.
-
- * ace/Shared_Memory_MM: Export the filename in
- ACE_Shared_Memory_MM class in order to aid debugging. Thanks to
- Ashish Singhai <singhai@delirius.cs.uiuc.edu> for reporting
- this.
-
-Fri Apr 25 14:58:38 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/Timers: Updated the following files to make it compile on
- g++. The following files were updated:
-
- Proactor.cpp Timer_Heap.cpp Timer_List.cpp Timer_Queue.cpp
- Timers.cpp
-
-Thu Apr 24 21:13:51 1997 <irfan@TWOSTEP>
-
- * ace/Timer_Queue: Decoupled the Timer Queue from
- ACE_Event_Handler and the callback routines in the handler
- (handle_timeout and handle_close). The new Timer Queue is
- parameterized by the type of data to store and a FUNCTOR on
- which methods are invoked by the Timer Queue when timeouts and
- cancellations occur.
-
- No changes occured to the algorithms of the different
- implementations of the Timer Queues (Timer List and Timer
- Heap). Timer Queues, Timer List, and Timer Heap were all renamed
- as <class>_T. However, typedef were added such that there is now
- an ACE_Timer_Queue, ACE_Timer_Heap, and ACE_Timer_List, each
- being an instantiation of the respective template classes. The
- instantiation is done with ACE_Event_Handler as the type of data
- to be stored in Timer Queue and
- ACE_Event_Handler_Handle_Timeout_Upcall as the FUNCTOR that does
- the appropriate upcall to ACE_Event_Handler.
-
- Due to these typedefs, 99.9% of existing code should not
- break. However, the following two will cause problems:
-
- (a) Forward declarations of Timer_Queue will not work! This is
- because Timer_Queue is now a typedef and not a class.
-
- (b) #include "ace/Timer_Queue.h" will not be enough to get the
- ACE_Timer_Queue typedef. The new typedefs are in a new file
- called Timers.h. This file also has typedefs for ACE_Timer_Heap
- and ACE_Timer_List.
-
- Currently Proactor is the only class that uses a different
- instantiation of the Timer Queue class. Proactor's Timer Queue
- class is instantiated with ACE_Handler as the type of data to be
- stored in Timer Queue and ACE_Proactor_Handle_Timeout_Upcall as
- the FUNCTOR that does the appropriate posting to the Proactor's
- completion port.
-
- The Upcall Strategy is not needed any more cause it is replaced
- by the FUNCTORs. Thus this is removed.
-
- Small modifications were made to the following files
- because of the changes to Timer_Queue.
-
- - examples/Reactor/Misc/test_timer_queue.cpp
- - examples/Reactor/Proactor/test_timeout.cpp
- - tests/Timer_Queue_Test.cpp
- - ace/Makefile (both UNIX and Win32)
- - ace/Connector.h
- - ace/Reactor.h
- - ace/ReactorEx.h
- - ace/Proactor.h
-
- * ace/Proactor: Proactor now uses the new timer queues. Proactor's
- Timer Queue class is instantiated with ACE_Handler as the type
- of data to be stored in Timer Queue and
- ACE_Proactor_Handle_Timeout_Upcall as the FUNCTOR that does the
- appropriate posting to the Proactor's completion port. This will
- help reduce the overhead of creating new act for each
- timer. This also enables the cancellation of entire
- ACE_Handlers.
-
- * examples/Reactor/Misc: Added Win32 makefiles.
-
- * ace/Shared_Memory_MM.i: Fixed typo.
-
- * ace/SOCK_Connector.cpp: Fixed typo.
-
-Thu Apr 24 13:56:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/SOCK_Dgram.cpp: Added support for FreeBSD (i.e., BSD 4.4)
- features for passing file descriptors between processes. Thanks
- to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
-
- * ace/LSOCK_Stream.cpp: Added support for FreeBSD (i.e., BSD 4.4)
- features for passing file descriptors between processes. Thanks
- to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
-
- * ace/LSOCK.cpp: Added support for FreeBSD (i.e., BSD 4.4)
- features for passing file descriptors between processes. Thanks
- to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
-
- * ace/SOCK_Connector.cpp (complete): There's a bug in WinNT that
- causes non-blocking connects to fail. The workaround is to
- sleep for 1 millisecond. Thanks to Steve Huston
- <shuston@riverace.com> for reporting this.
-
- * ace/Connector.cpp (handle_output): There's a bug in WinNT that
- causes non-blocking connects to fail. The workaround is to
- sleep for 1 millisecond. Thanks to Steve Huston
- <shuston@riverace.com> for reporting this.
-
- * tests/Conn_Test.cpp: Changed from operator != to operator == to
- be consistent with what is required by the ACE_Hash_Map_Manager.
-
- * ace/Hash_Map_Manager: Factored out the equality comparison into
- an equal() method in order to facilitate template
- specialization. In addition, rather than using the != operator
- we now default to using the operator== operator and negating the
- result. This is consistent with the behavior of the
- ACE_Map_Manager.
-
- * ace/Map_Manager: Factored out the equality comparison into an
- equal() method in order to facilitate template specialization.
-
- * ace/OS.i: Added a new #ifdef called ACE_LACKS_PTHREAD_CANCEL.
- I'm not sure which platforms should set this, but it fixes
- a bug with ACE_OS::thr_cancel(). Thanks to Eric Dean
- Russell <edrusse@somnet.sandia.gov> for reporting this.
-
- * tests/Process_Strategy_Test.cpp (handle_input): We were
- comparing EOF to a char, which gets complaints on platforms
- where char is unsigned by default. I added a cast of EOF to
- char to fix this. Thanks to Amos Shapira <amos@dsi.co.il> for
- reporting this.
-
- * apps/JAWS/server/HTTP_Helpers.cpp (instance): Changed the
- return type from const char * to const char **. Thanks to
- Amos Shapira <amos@dsi.co.il> for reporting this.
-
- * ace/OS.i (getpwnam_r): Added a missing #else. Thanks to
- Amos Shapira <amos@dsi.co.il> for reporting this.
-
- * ace/Timer_Heap: Made many minor enhancements to ACE_Timer_Heap
- in an effort to figure out why we're getting memory leaks.
-
-Thu Apr 24 09:33:53 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: modified the TIMESTAMP macro to update the third
- component, if there is one, of the version number in the VERSION
- file. This assumes that alpha/beta releases are numbered with
- three components, and that final releases are not. So, if the
- version number is, e.g., 4.2, it will not be modified because it
- is assumed to be for a final release. Manual switching between
- alpha/beta and final release "modes" is therefore still required.
-
- * ace/Timer_Heap.cpp (copy): added cast of max_size_ to int to avoid
- signed/unsigned comparison.
-
- * ace/config-sunos5.4-g++.h: removed
- ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES because it caused compile
- warnings about conversion from `(int)' to `(...)' at Signal.i:113.
- (And the other sunos5.4 config files don't have it.)
- Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting this.
-
- * tests/Timer_Queue_Test.cpp (main): added delete of timer_ids array
- to avoid memory leak.
-
-Wed Apr 23 22:56:57 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
-
- * apps/JAWS/client/*: Fixed warnings due to size_t
- * apps/JAWS/client/Blob_Handler: Fixed error by passing
- pointer to base class ACE_Blob_Handler instead
- of pointing to ACE_Blob_Reader, in call to connect
-
-Wed Apr 23 20:57:35 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * ace/OS.i and ace/OS.h: added methods for getpwnam and
- getpwnam_r, with hooks for NT.
-
- * ace/config-irix6.2.*: added ACE_LACKS_PWD_REENTRANT_FUNCTIONS.
-
-Wed Apr 23 14:27:48 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Timer_Queue.cpp (ACE_Timer_Queue ctor): reordered initializers
- to match declaration order.
-
- * tests/Process_Strategy_Test.cpp: added ACE_Singleton template
- specialization. In function client (), null terminated "buf"
- before call to ACE_OS::strrchr () to avoid uninitialized memory
- read. Also, fixed typo in test name (argument to ACE_START_TEST).
-
- * examples/Service_Configurator/Misc/Timer_Service.cpp (init): changed
- type of loop index to int to avoid signed/unsigned comparison, and
- initialized "interval" so that it has a value even if one isn't
- specified on the command line.
-
-Wed Apr 23 10:52:45 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): Removed errant preprocessor conditional
- for determining the scheduling priority. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for reporting this.
-
-Wed Apr 23 09:06:52 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Process_Strategy_Test.cpp: Finished updating this program
- so that it is an automated test.
-
- * ace/Acceptor.h: Moved get_handle() into the public portion of
- the Acceptor.
-
- * include/makeinclude/platform_irix6.2_sgic++.GNU (SOBUILD): There
- was an extra @ in $@@. Thanks to Amos Shapira <amos@dsi.co.il>
- for reporting this.
-
- * apps/JAWS/client/Blob[_Handler].cpp: Added casts for free ((void
- *) filename_);. Thanks to Amos Shapira <amos@dsi.co.il> for
- reporting this.
-
- * apps/JAWS/server/HTTP_Helpers.h (class HTTP_Status_Code):
- Removed an extraneous const * from the definition of instance().
- Thanks to Amos Shapira <amos@dsi.co.il> for reporting this.
-
-Wed Apr 23 03:15:11 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * apps/JAWS/server/README: Updated to add some clarity and more
- useful information.
-
-Tue Apr 22 20:17:00 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Synch.cpp: Added a new method called open() to ACE_File_Lock
- so that we don't have to initialize it solely in the
- constructor.
-
- * tests/Process_Strategy_Test.cpp: Added new test code that
- exercises the ACE_Process_Strategy, ACE_Thread_Strategy, and
- ACE_Reactive_Strategy classes.
-
- * ace/Strategies_T: Added a new class called
- ACE_Reactive_Strategy, which inherits from
- ACE_Concurrency_Strategy and registers new Svc_Handlers with the
- Reactor.
-
- * ace/Strategies_T.cpp (ACE_Thread_Strategy): Added a check for
- failed open() methods and call ACE_ERROR.
-
- * tests/Map_Manager_Test.cpp: Added a template specialization for
- the ACE_Hash_Map_Manager::hash() method, which is enabled if the
- compiler supports template specializations.
-
- * ace/Hash_Map_Manager.h (pool): Moved the ext_id.hash() call into
- a separate method so that we can perform template specialization
- of it more easily.
-
- * ace/README: Added a new #define called
- ACE_HAS_TEMPLATE_SPECIALIZATION so that we can work around funky
- compilers that don't support this advanced template feature.
-
- * ace: Added Nanbor Wang's port to FreeBSD. The port is done
- at FreeBSD 3.0-current as of 2/9/97, which is the
- latest stable system before Lite2 merge. Since the merge is
- current under testing and changes are introduced in a daily
- basis, I don't recommend using -current after the date. You
- can specified the date in your "supfile", run CVSup to get the entire
- source tree and do a 'make world' to update (or reverse) your
- system.
-
- Pthread library is provided by John Birrell. There is a
- bug fix at mid April so you may want to CVSup the latest libc_r
- library and re-make the pthreaded library.
-
- A shared library must be name as lib<name>.so.<version
- number> (e.g. libACE.4.1.0). I would recommend adding a
- post-compile hook in the Makefile so we FreeBSDers can
- rename the shared library to it's proper name with correct
- major and minor version number attached. (which is a trick
- BSD library makefiles use.)
-
- * examples/OS/Process/process.cpp (main): Replaced the use of
- "/bin/cat" with "cat" since we are now using execvp(). Thanks
- to Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
-
- * ace/Process.cpp (start): Changed the use of execv() to execvp()
- in order to avoid having to pass in the full pathname.
-
- * ace/OS.i (sigwait): Added an #ifdef for FreeBSD so that we
- return ACE_NOTSUP_RETURN(-1) for ACE_OS::sigwait(). Thanks to
- Nanbor Wang <nw1@cs.wustl.edu> for reporting this.
-
-Tue Apr 22 17:46:30 1997 <harrison@samba.cs.wustl.edu>
-
- * Process.cpp (start): We must pass in 0 instead of "" to
- CreateProcess for the current working directory.
-
-Tue Apr 22 01:38:14 1997 <irfan@TWOSTEP>
-
- * ace/Timer_Queue: Added ACE_Upcall_Strategy as a parameter to the
- constructor. <expire> will call <upcall_strategy->upcall> if
- <upcall_strategy> is not 0. Else it will call <handle_timeout>
- on the <Event_Handler>. Thus ACE_Upcall_Strategy becomes a
- vehicle for extending the behavior of ACE_Timer_Queue wrt the
- upcall (callback) *without subclassing*. Hence, it's an example
- of the Bridge/Strategy patterns.
-
- This also affected ACE_Timer_List and ACE_Timer_Heap
-
- * ace/Strategies: Added ACE_Upcall_Strategy.
-
- * ace/Proactor: Added timing support to the <handle_event> calls.
-
- * ace/Asynch_IO: ACE_Handler now supports handle_timeout.
-
- * ace/Proactor: Added timer support for the new Proactor. This
- new scheme allows any of the threads in the "thread pool"
- waiting on the completion port of the Proactor to execute the
- callback routine of the handler.
-
- The implementation included adding ACE_Proactor_Timer_Handler
- class that has a thread that will wait on the earliest time in a
- timer queue and an event. When a timer expires, the thread will
- post a completion event on the port and go back to waiting on
- the timer queue and event. If the event is signaled, the thread
- will refresh the time it is currently waiting on (in case the
- earliest time has changed).
-
- The ACE_Proactor::Asynch_Timer class is posted to the completion
- port when a timer expires. When the <complete> method of this
- object is called, the <handler>'s handle_timeout method will be
- called.
-
- * examples/Reactor/Proactor/test_timeout: This example illustrates
- the new timer features in the Proactor
-
- * examples/Reactor/Proactor/test_proactor.{mdp,mak}: Added new
- example.
-
-Mon Apr 21 18:14:32 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/config-win32-common.h: Added checks around _AFXDLL before
- defining it. Thanks to Bruce Meyer <bmeyer1@gte.net> for
- pointing this out.
-
-Mon Apr 21 11:31:16 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
- Removed some unnecessary explicit template instantiations.
-
- * examples/Threads/barrier1.cpp (main): Explicitly converted
- n_threads to int.
-
-Sun Apr 20 23:08:37 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/{Local,Remote}_Tokens.h: Added a private declarations of the
- copy constructor and assignment operator for classes that
- inherit from ACE_TSS. This is necessary since the compiler will
- auto generate these two operations that will end up using the
- non-existent copy constructor and assignment operator from the
- TSS class and cause linker errors.
-
-Sun Apr 20 20:47:34 1997 Sumedh Mungee <sumedh@cs.wustl.edu>
-
- * apps/JAWS/client: Reworked the ACE_Blob* classes to work
- with the new Connector behavior. Added README for this
- directory. Added comments.
-
- * apps/JAWS/stress-testing: Added README file
-
-Sun Apr 20 13:11:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * apps/Makefile: By default, we now compile JAWS along with the
- rest of ACE. I've also added some README files that explain
- what JAWS is all about.
-
- * examples/Service_Configurator/Misc/Timer_Service: Improved the
- Timer_Service test so that it makes more sense and is better
- documented.
-
-Sat Apr 19 11:56:35 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude: Removed the platform_irix6.2_sgiCC.GNU
- from the release. Thanks to Torbjorn Lindgren
- <tl@funcom.no> for these fixes.
-
- * include/makeinclude/platform_irix6.2_sgic++.GNU: Updated the SGI
- C++ platform config file. Thanks to Torbjorn Lindgren
- <tl@funcom.no> for these fixes.
-
- * ace/Log_Msg.cpp (log_hexdump): The char * arguments should be
- const char *'s. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for reporting this.
-
-Sat Apr 19 18:52:44 1997 David L. Levine <levine@cs.wustl.edu>
-
- * (format_hexdump): changed type of first arg to const char *
- for compatibility with Log_Msg::log_hexdump ().
-
-Thu Apr 17 08:25:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Memory_Pool.h: Fixed a couple of typos in Memory_Pool
- classes. Thanks to Neil B. Cohen <nbc@metsci.com> for reporting
- this.
-
- * netsvcs/lib/Name_Handler.h: Arrgh, there was still one more
- missing #include that I forgot to move into the *.h file.
- Thanks to David Levine for noticing this.
-
- * ace/Synch.cpp (wait): There was a bug in
- ACE_Condition::wait(MUTEX& mutex, const ACE_Time_Value
- *abstime.) Basically when abstime is zero, it ignores the
- parameter "mutex" that has been passed to it and instead goes on
- to call "ACE_Condition<MUTEX>::wait()" which uses "this->mutex_"
- as the mutex to be released and not the mutex that the caller
- has given. The fix is to change the call "this->wait()" in the
- if-clause to:
-
- return ACE_OS::cond_wait (&this->cond_, &mutex_.lock_);
-
- Thanks to Ashish Singhai <Ashish.Singhai@ACM.ORG> for reporting
- this.
-
-Thu Apr 17 16:33:21 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Memory_Pool.cpp: fixed typos in ACE_MMAP_Memory_Pool_Options
- constructor declaration and initializer list. In init_acquire,
- added cast of minimum_bytes_ to size_t to avoid signed/unsigned
- comparison.
-
- * include/makeinclude/{platform*,wrapper_macros}.GNU:
- moved -g out of wrapper_macros.GNU and into each platform
- file so that -gstabs can be used on SCO. Thanks to
- Ganesh Pai <gpai@voicetek.com> for reporting that problem.
-
- (The real change was getting rid of the CFLAGS += DCFLAGS
- default. We could have left DCFLAGS=-g in wrapper_macros.GNU
- and overridden for SCO. But the way I changed things, the
- C/CFLAGS pieces are together in each platform file, so they're
- easier to find.)
-
-Wed Apr 16 17:05:55 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Memory_Pool.cpp (acquire): Added code to enable a minimum
- bytes field with the Shared_Memory_Pool. Thanks to Fred LaBar
- <flabar@fallschurch.esys.com> for these enhancements.
-
- * tests/Process_Strategy_Test.cpp: Only compile this test if
- ACE_LACKS_EXEC is *not* defined since ACE_Process_Strategy
- requires fork(). Thanks to Irfan for pointing this out!
-
- * netsvcs/lib: Fixed a couple o' typos that had escaped detection
- last night. Thanks to David Levine for reporting this.
-
- * ace/Synch[_T].h: removed the use of {} rather than ; for
- the private copy constructors and assignment operators.
- Hopefully this won't break code on older C++ compilers. Thanks
- to Berni Merkle <merkle@io.freinet.de> for suggesting this.
-
- * Added a whole slew of minor fixes for unused variables in
- the tests and examples. Thanks to Torbjorn Lindgren
- <tl@funcom.no> for reporing these.
-
- * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator): The order of
- the clause
-
- this->handles_.mask_.fds_bits[this->index_] == 0
- && this->num_ < ACE_Handle_Set::MAXSIZE
-
- was backwards. It should be:
-
- this->index_ < ACE_Handle_Set::NUM_WORDS
- && this->handles_.mask_.fds_bits[this->index_] == 0
-
- Thanks to Michael Newton <michaeln@in.ot.com.au> for
- reporting this.
-
-Wed Apr 16 21:34:53 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Process_Strategy_Test.cpp: added template specializations.
-
-Wed Apr 16 15:46:58 1997 <irfan@TWOSTEP>
-
- * tests/Process_Strategy_Test: Added test to batch files and
- MSVC++ Makefiles.
-
- * tests/Process_Strategy_Test.cpp (open): Added UNICODE support.
-
- * ace/OS.h: Added SIGCHLD to Win32 section.
-
- * ace/config-win32-common.h: UNICODE should not be automatically
- defined if ACE_HAS_UNICODE is defined. ACE_HAS_UNICODE signifies
- that the OS has UNICODE support. It does not mean that your code
- must be UNICODE. UNICODE must be defined at the project level.
-
-Wed Apr 16 16:55:47 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/SString.{h,cpp}: Modified CString to not allocate 1 byte for
- a 0 length string. Instead, set the internal representation to
- the address of static class character null_string_.
-
-Wed Apr 16 11:47:35 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/Map_Manager.cpp (free_search_structure): Added the loop
- variable back in that must have been inadvertently deleted in the
- previous entry.
-
-Wed Apr 16 09:35:39 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Map_Manager.cpp (free_search_structure): changed type of
- loop index to size_t to avoid signed/unsigned mismatch.
-
-Wed Apr 16 04:07:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Strategies_T: Widened the constructor interface for
- ACE_Process_Strategy based on the feedback I got from
- implementing the Process_Strategy_Test.cpp program.
-
- * tests/Process_Strategy_Test.cpp: Added an interesting new test
- that illustrates the use of the ACE_Process_Strategy and the
- ACE_File_Lock. To exercise this program, you can telnet to it
- and type "read" and "inc" to query and change the count of
- the numbers in the file, respectively.
-
- * ace/Connector.cpp (create_AST): I fixed a couple of things
- in Connector.cpp:
-
- - In create_AST, it needs to save and restore errno, else it
- gets wiped on Win32 and other platforms.
-
- - On Win32 when a non-blocking connect completes and handle_output is
- called, it tries to get the peer address. If done too quickly, it
- fails. I put in a Sleep(0) call. I think this is not a great
- solution, but I don't have a better one yet.
-
- Thanks to Steve Huston <shuston@riverace.com> for fixing
- these bugs.
-
-Tue Apr 15 17:09:33 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/SOCK_Stream.cpp (close): Removed the call to close_writer()
- on UNIX since that doesn't do the correct thing in many
- cases since it causes a protocol transmission which isn't
- what we want if we're using fork().
-
- * ace/Strategies_T.cpp (activate_svc_handler): Added a call to
- svc_handler->destroy() in the parent since we don't need it and
- we're leaking descriptors and memory otherwise... Thanks to
- Kevin Boyle <kboyle@sanwafp.com> for reporting this.
-
- * ace/OS.i (thr_sigsetmask): Replaced the use of
- PTHREADS_1003_DOT_1C with ACE_HAS_PTHREAD_SIGMASK. Thanks to
- Arturo Montes <mitosys@colomsat.net.co> for suggesting this.
-
- * ace: Changed all uses of ACE_HAS_PTHREADS_XAVIER to
- ACE_HAS_PTHREAD_SIGMASK, which is more descriptive. Thanks to
- Arturo Montes <mitosys@colomsat.net.co> for suggesting this.
-
- * ace/config-aix-4.2.x.h: Added #define ACE_LACKS_RWLOCK_T to make
- things compile with AIX 4.2. Thanks to Jeremy Buch
- <davinci@nortel.ca> for reporting this.
-
- * ace/XtReactor.cpp (register_handler_i): Added "[]" to delete
- this->ids_ since it is an array. Thanks to Jean-Marc Strauss
- <strauss@club-internet.fr> for reporting this.
-
- * netsvcs/lib: Moved all the class definitions into the *.h files
- to avoid complaints from the IBM C++ compiler.
-
- * ace/OS.h: Added a #define for WNOHANG since this is missing on
- NT. Thanks to Brian Mendel <bmendel@mdc.com> for reporting
- this.
-
- * examples/Connection/non_blocking/test_sock_connector.cpp: Added
- a typedef for ACE_RW_Mutex so that the code compiles on non-MT
- platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
- reporting this.
-
- * examples/Connection/non_blocking/test_tli_connector.cpp: Added a
- typedef for ACE_RW_Mutex so that the code compiles on non-MT
- platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
- reporting this.
-
- * examples/Connection/misc/test_upipe.cpp: Added a typedef for
- ACE_RW_Mutex so that the code compiles on non-MT platforms.
- Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
-
- * performance-tests/Synch-Benchmarks/Options.cpp: Added a #ifdef
- for ACE_Thread_Mutex so that the code compiles on non-MT
- platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
- reporting this.
-
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp: Added a
- typedef for ACE_RW_Mutex so that the code compiles on non-MT
- platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
- reporting this.
-
- * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp: Added a
- typedef for ACE_RW_Mutex so that the code compiles on non-MT
- platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
- reporting this.
-
- * examples/ASX/Event_Server/Event_Server/Options.cpp
- (print_results): Although rusage struct is defined on SCO, there
- is no getrusage(), rusage is used only by wait()
- etc. internally. Therefore, we had to move some #ifdefs around.
- Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
-
- * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: Added a
- typedef for ACE_RW_Mutex so that the code compiles on non-MT
- platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
- reporting this.
-
- * tests/Conn_Test.cpp: Added a typedef for ACE_RW_Mutex so that
- the code compiles on non-MT platforms. Thanks to Ganesh Pai
- <gpai@voicetek.com> for reporting this.
-
- * tests/SPIPE_Test.cpp (main): Removed the VXWORKS arm of the
- #ifdef, which is not correct since this stuff only works if
- we're working with a version of VxWorks that has STREAM pipes.
-
- * include/makeinclude/platform_sco5.0.0-nothread.GNU: Changed
-
- LIBS = -lsocket -lnsl -ldl
-
- to
-
- LIBS += -lsocket -lnsl -ldl
-
- Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
-
- * netsvcs/lib/Client_Logging_Handler.cpp: Added a typedef for
- ACE_RW_Mutex so that the code compiles on non-MT platforms.
- Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
-
- * netsvcs/lib/TS_Clerk_Handler.cpp: Added a typedef for
- ACE_RW_Mutex so that the code compiles on non-MT platforms.
- Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Added a
- typedef for ACE_RW_Mutex so that the code compiles on non-MT
- platforms. Thanks to Ganesh Pai <gpai@voicetek.com> for
- reporting this.
-
-Tue Apr 15 23:16:43 1997 <harrison@samba.cs.wustl.edu>
-
- * ace/[Hash_]Map_Manager.cpp: The [Hash_]Map_Manager now
- explicitly calls the destructors of Map_Entry objects before
- freeing up the space. Not sure why we were not doing this
- before...
-
-Tue Apr 15 17:09:33 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * examples/Logger: Added MSVC++ makefile to Acceptor-server
- and client.
-
-Tue Apr 15 21:51:45 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * apps/JAWS/server/IO.cpp: Added a template instance for
- ACE_Singleton so it would link using GCC. Removed GCC
- warnings.
-
- * apps/JAWS/server/HTTP_Server.cpp: Added template instances for
- LOCK_SOCK_Acceptor, ACE_Task, ACE_Thru_Task, ACE_Message_Queue,
- ACE_Module so it would link using GCC. Removed GCC warnings.
-
- * apps/JAWS/server/HTTP_Server_T.cpp: Removed template instance of
- LOCK_SOCK_Acceptor, since it was not really being compiled.
-
-Tue Apr 15 21:51:45 1997 James C Hu <jxh@polka.cs.wustl.edu>
-
- * apps/JAWS/server/IO.cpp: Added a template instance for
- ACE_Singleton so it would link using GCC. Removed GCC
- warnings.
-
- * apps/JAWS/server/HTTP_Server.cpp: Added template instances for
- LOCK_SOCK_Acceptor, ACE_Task, ACE_Thru_Task,
- ACE_Message_Queue, ACE_Module so it would link using GCC.
- Removed GCC warnings.
-
- * apps/JAWS/server/HTTP_Server_T.cpp: Removed template
- instance of LOCK_SOCK_Acceptor, since it was not really
- being compiled.
-
- * apps/JAWS/server/HTTP_Handler.cpp: Removed GCC warnings.
-
-Tue Apr 15 13:01:13 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Token_Request_Reply.cpp (ctor): added initialization of
- transfer_.data_ to avoid unitialized memory read.
-
- * tests/test_config.h: removed "static" qualifier from
- randomize () to avoid warning from g++ when it's not called
- in a test.
-
- * examples/IPC_SAP/SPIPE_SAP/server.cpp (main): moved
- declaration of local variable "handle" up before its first
- use.
-
-Tue Apr 15 17:09:33 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * examples/Connection/blocking/Makefile: Removed the Makefile
- for this test. This example is only suppose to work on WIN32
- and therefore the Makefile is not necessary. I have replace
- this file with a MSVC++ make file.
-
-Mon Apr 14 23:08:27 1997 <irfan@TWOSTEP>
-
- * INSTALL: Updated install files for Win32.
-
- * ace/SPIPE_Stream: Changed the use of ACE::send_n to ACE::write_n
- and ACE::recv_n to ACE::read_n.
-
- * ace/OS.h (WNOHANG): Added WNOHANG to OS.h for Win32.
-
- * ace/OS.i (getpgid): Fixed extra return.
-
- * examples/Connection/blocking/SPIPE-acceptor: Updated the code to
- use the new Proactor and the new asynchronous IO.
-
-Mon Apr 14 21:32:24 1997 David L. Levine <levine@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (handle_client):
- ACE_OS::sprintf instead of sprintf.
-
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp
- (svc): declare "t" as time_t instead of long.
-
- Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
- reporting both of these.
-
-Mon Apr 14 00:02:39 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.i (getpgid): Removed the extraneous return in front of
- ACE_NOTSUP_RETURN. Thanks to Mike Bernat <sagmb@sagus.com> for
- reporting this.
-
- * ace/Process.cpp: Replaced the use of ACE_OS::fork(void) with
- ACE_OS::fork(const char *) so that we can pass in the name of
- the process we're exec'ing.
-
- * examples/Threads/process_manager.cpp: Added a test program that
- exercises the features of the new ACE_Process_Manager.
-
- * ace/Process_Manager: Finished a rudimentary implementation of
- ACE_Process_Manager. There's still plenty of work to be done on
- this, however...
-
- * ace/Thread_Manager.cpp (dump): Added dump() methods for
- ACE_Thread_Descriptor and ACE_Thread_Manager.
-
-Sun Apr 13 11:40:26 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS: Added a getpgid() call to ACE_OS.
-
- * ace/Thread_Manager: Changed the 'int n' of spawn_n() to size_t n
- since this is more appropriate because we can't spawn a negative
- number of threads...
-
- * ace/Thread_Manager.cpp (close): Make sure to lock the calls to
- close() in case things get amiss.
-
- * ace/Process.cpp (start): Updated ACE_Process::start() to that it
- doesn't try to exec() a program if argv == 0. This allows us to
- use ACE_Process to fork() a process without exec'ing.
-
- * tests/Timer_Queue_Test.cpp (randomize_array): Added a new
- "randomization" test that determines the performance of randomly
- canceling items in the array. Thanks to Darrell Brunsch
- <brunsch@cs.wustl.edu> for this enhancement.
-
- * tests/test_config.h: Moved the randomize() function from
- Naming_Test.cpp to test_config.h so that we can use it in other
- tests (e.g., the new Timer_Queue_Test.cpp that Darrell is
- working on).
-
- * ace/OS: Added a new #define called ACE_HAS_NONCONST_MSGSND which
- can be used for platforms (e.g., SCO) that don't have a const
- parameter for msgsend(). Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for reporting this.
-
- * ace/config-sco-5.0.0-mit-pthread.h: Added some fixes to make
- this work on SCO. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for reporting this.
-
- * ace/OS.i (cond_timedwait): There is a *small* chance for a
- context switch before ACE_OS::cond_timedwait() is reached. In
- this case, the current time *may* advance by some milliseconds.
- The code in ACE_OS::cond_timedwait() then converts the given
- absolute time to a relative time. In the described situation
- this will be a very, very long t ime (0xfffffffn). Therefore, I
- added a check to avoid the "negative timespan" case. Thanks to
- Matthias Kerkhoff <make@cs.tu-berlin.de> for suggesting this.
-
- * ace/Set: Moved all the size() methods out of the *.i file and
- into the *.cpp file to avoid problems with quirky compilers
- (e.g., SGI) that can't handle this. Thanks to Torbjorn Lindgren
- <tl@funcom.no> for pointing this out.
-
- * examples/Threads/process_semaphore.cpp (main): Removed a stray
- ^M that was causing the SGI C++ compiler some grief. Thanks to
- Torbjorn Lindgren <tl@funcom.no> for pointing this out.
-
- * ace/OS.i (gettimeofday): Rearranged the code a bit to return
- errors correctly if they occur (which should be *very*
- unlikely). Thanks to Torbjorn Lindgren <tl@funcom.no> for
- pointing this out.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: Replaced the use of
- ACE_TLI* with LOGGING_PEER*. Thanks to Tom Wright
- <twright@gem-net.demon.co.uk> for reporting this.
-
- * ace/Connector.cpp: Made sure to initialize all of the instance
- variables for the ACE_Strategy_Connector and ACE_Connector.
- Thanks to David Levine for pointing this out.
-
- * ace/Synch.h: Changed protected: to private: so that we can
- ensure that we never copy classes like ACE_File_Lock, etc.
- Thanks to Berni Merkle <merkle@io.freinet.de> for reporting
- this.
-
- * examples/Shared_Malloc/test_malloc.cpp (malloc_recurse): Added
- the print_stats() call back into the test since Sandro's fixes
- should now support this.
-
- * ace/Malloc[_T]: Added patches to enable ACE_Allocator's to print
- malloc statistics. Thanks to Sandro Doro
- <alex@aureus.sublink.org> for these fixes.
-
-Sat Apr 12 20:42:11 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Priority_Task_Test.cpp (open): only use THR_SCHED_FIFO
- if it is defined. (It isn't on Solaris without PTHREADS.)
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp
- (make_svc_handler): added return statement.
-
-Sat Apr 12 11:53:49 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp (main):
- The first argument to connect () is now a SVC_HANDLER *&.
- Therefore, we can no longer allows us to pass the address of a
- SVC_HANDLER on the stack (or in the data segment).
- Fortunately, the fix is easy, as shown below:
-
- Event_Transceiver transceiver, *tp = &transceiver;
-
- connector.connect (tp, ACE_INET_Addr (port_number, host_name));
-
- Thanks to David Levine for reporting this problem.
-
-Fri Apr 11 15:14:59 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Conn_Test.cpp: moved declaration of "result" out of
- loop because it's used after the loop. Thanks to
- Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
- reporting this. Also, removed a few unnecessary template
- specializations.
-
- * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: fixed template
- specializations for no-thread platforms. Thanks to Ganesh Pai
- <gpai@voicetek.com> for reporting this.
-
- * performance-tests/Misc/context_switch_time.cpp (main):
- removed call to ACE_High_Res_Timer::supported ().
-
-Fri Apr 11 14:31:42 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * tests/Conn_Test.cpp: Added several explicit template
- instantiations.
-
-Fri Apr 11 13:49:04 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: VxWorks changes only: added taskHookLib.h. Thanks
- to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting
- that. Also rearranged the VxWorks #includes and such a bit.
-
- * ace/Log_Msg.cpp (atexit): VxWorks changes only: added cast
- of spare1 to ACE_Log_Msg *. Thanks to Dave Mayerhoefer
- <mayerhoefer@svappl36.mdc.com> for reporting that. Also,
- in exists () and instance (), replaced double indirection
- of the ACE_Log_Msg instance with indirection through a pointer
- reference.
-
- * ace/High_Res_Timer.{h,i}: removed supported () because
- ACE_OS::gettimeofday () is used if a high-res timer isn't available.
-
- * ace/OS.i (thr_sigsetmask),config-sunos5.4-*.h: swapped order of
- #ifdefs to that ACE_LACKS_PTHREAD_THR_SIGSETMASK is checked before
- ACE_HAS_STHREADS. Added that #define to all SunOS 5.4 configs.
- Thanks to Joey Zhu <joey.zhu@wcom.com> for reporting this.
-
- * ace/Token_Request_Reply.cpp (ctor): added a initializations to 0
- of requeue_position_, notify_, and arg_. With this change, all
- of the ACE tests run without any Purify access anomalies!
- (There are still some memory leaks, though.)
-
- * include/makeinclude/rules.local.GNU: added -DMAKEDEPEND to
- invocation of g++dep. This allows users to get proper
- dependencies if they have conditional #includes in their code.
- They can added #if defined (MAKEDEPEND) as necessary to make
- sure that all headers are seen by g++dep.
-
-Fri Apr 11 10:46:56 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * config-linux*.h: Added ACE_HAS_IP_MULTICAST as the default for
- all Linux configurations. If you're a 1.x user, or you didn't
- config that into your 2.x kernel, you'll have to remove this from
- your version of the file.
-
-Thu Apr 10 00:34:10 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/Logger/simple-server/Logging_Acceptor.cpp
- (handle_input): We need to call svc_handler->close() if accept()
- or open() fails. Thanks to Ganesh Pai <gpai@voicetek.com> for
- reporting this.
-
- * ace/Service_Config.cpp (close): Moved the call to
- ACE_Service_Config::close_singletons() to outside the check for
- ACE_Service_Config::svc_rep_ since the Singletons can be used
- independently of the services. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for suggesting this.
-
-Wed Apr 9 21:11:38 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * apps/Gateway/Gateway/Gateway.cpp (handle_signal): Evil demons
- added bugs to my code that were causing segfaults when signals
- shutdown the gateway. This is now fixed.
-
- * apps/Gateway/Gateway/Proxy_Handler.h: Changed ACE_Event_Channel
- & to ACE_Event_Channel * to keep the compiler happy.
-
- * examples/Connection/non_blocking/CPP-connector.h: Added a
- do-nothing default constructor to keep ACE_Connector happy.
-
- * examples/Connection/misc/test_upipe.cpp: Added a do-nothing
- default constructor to keep ACE_Connector happy.
-
- * examples/Connection/blocking/SPIPE-connector.h: Added a
- do-nothing default constructor to keep ACE_Connector happy.
-
- * apps/Gateway/Gateway/Proxy_Handler: Added a do-nothing default
- constructor to keep ACE_Connector happy.
-
- * netsvcs/lib: Added some default arguments to
- TS_Clerk_Handler.cpp and Client_Logger_Handler.cpp to keep the
- compiler from complaining about the new ACE_Connector features.
- Thanks to David Levine for reporting this.
-
- * ace/Timer_Heap.cpp (reheap_down): Fixed a *very* subtle bug in
- reheap_down() where parent was starting off at 0 whereas it
- should have been starting off at child_index / 2.
-
- * examples/Logger/simple-server/Logging_Handler: Removed the use
- of the operator ACE_SOCK_Stream &() and replaced it with the
- more intuitive peer() approach used in ACE_Svc_Handler et al.
- Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
-
- * ace: Added a bunch of changes to improve ACE support on SCO 5.0.
- Thanks to Ganesh Pai <gpai@voicetek.com> for these fixes.
-
- * tests/Conn_Test.cpp: Completely reworked this test so that it
- illustrates how to use the ACE_Strategy_Connector, which is
- customized with a special Caching_Connect_Strategy that recycles
- connections.
-
- * ace/Connector: Finished implementing the new
- ACE_Strategy_Connector. This is similar in design to the
- ACE_Strategy_Acceptor.
-
- * ace: Changed the signature of all the make_svc_handler() methods
- so that they return int (rather than SVC_HANDLER *) and they
- pass back a SVC_HANDLER * by reference. This makes it possible
- to totally control the creation of svc handlers (which is useful
- for the new ACE_Strategy_Connector).
-
- * ace/Connector.cpp: Factored out the active_svc_handler() call
- from the connect_svc_handler() method into the connect() method
- so that it would behave correctly as a Template Method and
- Strategy.
-
- * ace/Connector: Removed the explicit use of the Reactor data
- member from the ACE_Connector since it's inherited from the
- ACE_Service_Object.
-
- * ace/Log_Msg.cpp: The MVS compiler doesn't like the call to
- atexit() in ACE_Log_Msg::instance() because atexit() requires an
- a function pointer of type extern "C" for its parameter. I've
- fixed this via an adapter. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for reporting this.
-
- * ace/Strategies_T: Added a new ACE_Connect_Strategy that
- complements the ACE_Strategy_Connector in the same manner that
- the ACE_Accept_Strategy complements the ACE_Strategy_Acceptor.
-
- * ace/Connector.h: The destructor for ACE_Connector should have
- been virtual. Now it is.
-
- * ace/Connector: Added a new factory method called
- make_svc_handler(). This behaves similiarly to the
- ACE_Acceptor::make_svc_handler(). However, for the
- ACE_Connector we only use this when the SVC_HANDLER * is NULL.
-
- * ace/Connector: Changed the signature for connect() to take a &
- to a SVC_HANDLER * in anticipation of our new
- ACE_Strategy_Connector. This new connector will make it easy to
- implement cached connections.
-
- * ace/config-win32-common.h: Added a new #include for <mswsock.h>,
- which contains the declarations for TransmitFile() data
- structures. They are in WINSOCK.H if you do not use
- ACE_HAS_WINSOCK2. Thanks to Norbert Rapp
- <norbert.rapp@nexus-informatics.de> for reporting this.
-
- * ace/OS.i: Fixed a typo in the new condition variable
- implementation for Win32. Thanks to Norbert Rapp
- <norbert.rapp@nexus-informatics.de> for reporting this.
-
-Wed Apr 09 22:06:23 1997 <harrison@samba.cs.wustl.edu>
-
- * Memory_Pool.h: Modified ACE_MMAP_Memory_Pool and
- ACE_MMAP_Memory_Pool_Options to include the new guess_on_fault
- option. This is only for platforms that can not report which
- address caused a segmentation fault (via signal or exception).
- When guess_on_fault is set (via ACE_MMAP_Memory_Pool_Options),
- ACE_MMAP_Memory_Pool::handle_signal calls
- ACE_MMAP_Memory_Pool::remap "guessing" that the segmentation
- fault was caused by an access to memory not yet mapped.
-
-Wed Apr 09 16:46:16 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i}: fixed readPPCTimeBase declaration and return
- value (for now: it really needs to return a 64 bit quantity).
- Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
- reporting these.
-
-Wed Apr 9 03:12:24 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/config-win32-common.h: Defining _WIN32_WINNT as 0x0400
- implies ACE_HAS_WINSOCK2.
-
- * ace/Asynch_IO: The implementation of ACE_Asynch_Transmit_File
- and ACE_Asynch_Accept are only supported if ACE_HAS_WINSOCK2 is
- defined or you are on WinNT 4.0 or higher. Therefore, added
- appropriate #defines. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for suggesting this.
-
-Tue Apr 8 22:45:28 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * java/src/SOCKStream.java (SOCKStream): Made two small changes to
- the two send(). Instead of doing a println, I now do a
- print. This was really a bug!
-
-Tue Apr 08 22:08:12 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: removed
- "rm -f $@" from AR command so that archive won't be removed
- during incremental updates. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for reporting this.
-
-Tue Apr 8 00:04:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Task_T.cpp: Added a hack to work around the new weird HP/UX
- aCC template semantics. Thanks to Neil B. Cohen
- <nbc@metsci.com> for reporting this.
-
- * ace/config-hpux-10.x[-g++].h: Added #define
- ACE_HAS_CLOCK_GETTIME. Thanks to Neil B. Cohen <nbc@metsci.com>
- for reporting this.
-
- * ace/config-hpux-10.x[-g++].h: Added ACE_HAS_IP_MULTICAST and removed
- ACE_LACKS_STRRECVFD. Thanks to Neil B. Cohen <nbc@metsci.com>
- for reporting this.
-
- * ace/config-hpux-10.x.h: Apparently some HP/UX 10.x C++ compilers
- don't support volatile, so I #defined it away as a macro.
- Thanks to Neil B. Cohen <nbc@metsci.com> for reporting this.
-
- * ace/Log_Msg.cpp: Put a #if defined (ACE_MT_SAFE) around the
- entire Log_Msg destructor. Thanks to Neil B. Cohen
- <nbc@metsci.com> for reporting this.
-
- * ace/config-hpux-10.x[-g++].h: Added #define ACE_HAS_STREAMS on
- the recommendation of Neil B. Cohen <nbc@metsci.com>.
-
-Mon Apr 07 12:08:21 1997 <harrison@samba.cs.wustl.edu>
-
- * ace/Set.cpp: For some reason, VC++ 5.0 doesn't like to have the
- constructors X::X(X&) and X::X(X*). We can change the X::X(X*)
- constructor to take in an extra argument with a default value.
- This seems to have sufficiently satisfied the VC++ 5.0 for the
- time being. There were no changes necessary to other Set.cpp
- code (as the extra argument has a default value).
-
-Mon Apr 07 08:05:03 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-win32.h: enabled ACE_HAS_UNICODE by default.
- Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
- suggesting this.
-
- * ace/config-sunos5.4-g++.h: enabled ACE_HAS_BROKEN_RANDR and
- disabled ACE_HAS_SVR4_SIGNAL_T. Thanks to Joey Zhu
- <joey.zhu@wcom.com> for reporting these problems and testing
- the fix.
-
- * ace/Proactor.h (ACE_Proactor): commented out unused arguments
- in non-WIN32 version.
-
-Sun Apr 06 22:51:02 1997 <irfan@TWOSTEP>
-
- * ace/Proactor: Complete rewrite of Proactor that pushes all the
- differences in asynchronous I/O to the edges of the framework -
- i.e., into the new Asynch_IO classes. This allows the Proactor
- to easily support new asynchronous operations.
-
- Currently, the new Proactor supports minimal functionality. In
- the future, we will complete this.
-
- The Proactor is used in conjunction with the new Asynch_IO
- classes. There is a different class for each operation. Please
- see Asynch_IO.h for details.
-
- There is also a new ACE_Asynch_Acceptor that uses AcceptEx.
-
- Example is in:
- ACE_wrappers/examples/Reactor/Proactor/test_proactor.cpp.
-
- This example illustrates how the ACE_Proactor can be used to
- implement an application that does various asynchronous
- operations.
-
- * apps/JAWS/server: Complete rewrite of JAWS. The new JAWS has
- support for Asynch-Thread-Pool (on WIN32), Synch-Thread-Pool,
- and Thread-per-Request. Different models can be configured using
- the svc.conf file. The server now supports both GET and PUT
- commands.
-
- 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.
-
- * apps/JAWS/client: This is an example of the implementation of
- BlobStreaming in ACE. This version of BlobStreaming uses HTTP as
- a transport protocol.
-
- Blobby :-) is a simple application written using the ACE_Blob
- class, which is capable of doing both file uploads and
- downloads. If a file is downloaded, the downloaded data is sent
- to standard output, so that it can be piped as necessary.
-
- * ace/Mem_Map.cpp (map_it): This method now uses ACE_OS::pwrite
- (if ACE_HAD_P_READ_WRITE is defined) instead of
- ACE_OS::lseek/ACE_OS::write to write the end-of-file byte. The
- old scheme does not work if the file is in OVERLAPPED mode.
-
- * ace/OS: Added pread and pwrite to the OS class (if
- ACE_HAD_P_READ_WRITE is defined). On Win32, these functions use
- the OVERLAPPED structure to specify the offset. This
- implementation will block until the write/read completes (even
- if the file is in OVERLAPPED mode).
-
- * ace/config: Added ACE_HAS_P_READ_WRITE to the following
- platforms that support pread() and pwrite() calls:
- config-sunos4-g++.h
- config-sunos4-lucid3.2.h
- config-sunos4-sun3.x.h
- config-sunos4-sun4.1.4.h
- config-sunos4-sun4.x-orbix.h
- config-sunos4-sun4.x.h
- config-sunos5.4-centerline-2.x.h
- config-sunos5.4-g++.h
- config-sunos5.4-sunc++-4.x-orbix.h
- config-sunos5.4-sunc++-4.x.h
- config-sunos5.5-g++.h
- config-sunos5.5-sunc++-4.1.h
- config-sunos5.5-sunc++-4.x-orbix.h
- config-sunos5.5-sunc++-4.x.h
- config-sunx86-sunc++-4.x.h
- config-win32-common.h
-
-Sun Apr 6 14:16:18 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * tests/Timer_Queue_Test.cpp: Added tests to make sure that the
- new ACE_Timer_Queue::cancel() logic is working correctly. So
- far, it seems to be fine.
-
- * ace/Timer_{Heap,List}.cpp (cancel): Changed the comparison for
- dont_call_handle_close to be correct.
-
- * ace/OS.cpp: Deleted a useless return. Thanks to Gonzalo
- A. Diethelm <gonzo@ing.puc.cl> for reporting this.
-
- * ace/config-irix6.2-sgic++.h: Added the following definitions:
-
- + ACE_LACKS_PTHREAD_THR_SIGSETMASK
- + ACE_HAS_PTHREAD_EQUAL
- + ACE_HAS_PTHREAD_T
- + ACE_HAS_SYSENT_H
- + ACE_HAS_SYSINFO
- + ACE_HAS_TEMPLATE_TYPEDEFS
-
- Deleted the following definitions:
-
- + #define ACE_HAS_SYS_SIGLIST (Irix's compiler only has a
- _sys_siglist array when compiling their own internal
- functions).
-
- Thanks to Gonzalo A. Diethelm <gonzo@ing.puc.cl> for this.
-
- * ace/Process: Added new support for setting the environment
- variable and the current working directory. Thanks to Gonzalo
- A. Diethelm <gonzo@ing.puc.cl> for this enhancement.
-
- * ace/OS.h: "sys/stat.h" was being included more than once, so I
- fixed this. Thanks to Gonzalo A. Diethelm <gonzo@ing.puc.cl>
- for reporting this.
-
- * ace/XtReactor.cpp: Added the register_handler_i() method, which
- just delegates to the one defined in the Reactor. This is
- necessary to adjust to the C++ type system rules. Thanks to
- Gonzalo A. Diethelm <gonzo@ing.puc.cl> for reporting this.
-
- * ace/Service_Config.cpp: Added the Double-Checked Locking
- Optimization pattern to all the ACE_Service_Config Singletons
- (e.g., thr_mgr(), reactor(), etc.) so that they behave correctly
- in multi-threaded programs. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for insisting on this.
-
- * ace/OS.i (nanosleep): If the nanosleep() system call isn't
- supported by the OS platform we'll just use ACE_OS::sleep(const
- ACE_Time_Value &) instead.
-
- * ace/Log_Msg.cpp: Changed the logic of
- ACE_Log_Msg_Manager::remove() so that it returns the number of
- remaining registered instances. When this goes to 0 we'll
- cleanup.
-
- * ace/OS.i: Enhanced the ACE_OS::cond_[timed_]wait() methods so
- that they use SignalObjectAndWait() whenever possible to avoid
- potential problems with unfairness. See
- http://www.cs.wustl.edu/~schmidt/editorial-15.html for more
- details. Thanks to David Holmes <ltdholmes@mri.mq.edu.au> for
- pointing out this subtlety.
-
-Sun Apr 06 20:01:57 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: added "purify" and
- "quantify" make command options. To build Purified versions
- of all executables in the current direction, for example:
-
- % make clean; make purify=1
-
- These options assume that purify or quantify are in your PATH.
-
- * ace/Task.{h,cpp}: removed ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
- from ACE_Task_Exit declaration and ACE_Task_Exit::instance ().
- ACE_Task_Exit is no longer a template class, so we don't need that.
-
- * ace/Task_T.h: added missing "*/" at end of comment after #endif.
-
- * tests/IOStream.cpp (server): added check for 0 strlen of
- "buf" to avoid out-of-bound array reference.
-
- * ace/Svc_Conf_l.cpp, Makefile: added #define ACE_BUILD_DLL.
- Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
- reporting this.
-
- * ace/Set.cpp(ACE_Set_Node ctor): commented out unused arg MS_SUCKS.
-
-Sat Apr 5 14:21:29 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * java/: Changed package name from ACE to JACE across all directories.
-
-Sat Apr 5 13:12:37 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/MM_Shared_Memory_Test.cpp: Removed the use of dynamic
- memory allocation to avoid memory leaks.
-
- * ace/Service_Config: Changed _defaults to _static_svcs since this
- more accurately reflects what they do.
-
- * examples/Shared_Malloc/test_malloc.cpp: Removed the
- print_stats() call since it doesn't work via this API. Thanks
- to Sandro Doro <alex@aureus.sublink.org> for reporting this.
-
- * ACE-install.sh: Tweeked the install script by changing the
- "gunzip; tar; gzip" sequence into "gunzip -c | tar xvf -" to
- speed it up a little. Thanks to Per Andersson
- <Per.Andersson@hfera.ericsson.se> for this fix.
-
- * examples/Threads/future1.cpp: Make sure to delete the char *name
- that is retrieved from the future in order to avoid a memory
- leak. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
- figuring this out.
-
- * examples/Threads/future1.cpp: Make sure to delete this->name_ in
- the Scheduler destructor to avoid a memory leak.
-
- * examples/Threads/task_four.cpp (close): Enhanced the close()
- method so that it will actually delete the memory for the
- Worker_Task.
-
- * ace/XtReactor.cpp (register_handler_i): Added the
-
- if (mask & ACE_Event_Handler::ACCEPT_MASK)
- ACE_SET_BITS (condition, XtInputReadMask);
-
- Thanks to Jean-Marc Strauss <strauss@club-internet.fr> for
- reporting this.
-
- * ace/Timer_Queue.cpp (expire): This is the only method that calls
- ACE_Timer_Queue::cancel() with dont_call_handle_close set to 0.
-
- * ace/Reactor: Modified the cancel_timer() methods so that they
- also take a dont_call_handle_close parameter and pass it on to
- the Timer_Queue::cancel() method.
-
- * ace/Timer_{List,Heap}.cpp: Modified all the cancel() methods so
- that they will not call handle_close() unless the new parameter
- dont_call_handle_close is 0 (it is 1 by default). This will
- avoid nasty problems with recursion. Thanks to Paul Han
- <phan@CCGATE.HAC.COM> for suggesting this.
-
- * ace/Timer_{List,Heap}.cpp (schedule): If a user tried to
- schedule a NULL ACE_Event_Handler then we return -1 with errno
- set to EINVAL.
-
- * ace/Message_Block.cpp: Somehow the file got screwed up and was
- reverted back to an earlier incarnation where we didn't use
- ACE_Service_Config::alloc()... Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for figuring this out.
-
-Sat Apr 5 19:11:46 1997 Tim H. Harrison <harrison@waltz.cs.wustl.edu>
-
- * ace/Signal.i (ACE_Sig_Guard): Changed the constructor of
- ACE_Sig_Guard so that it doesn't call ACE_OS::sigprocmask for
- Win32. This keeps errno from being set to ENOSYS at random
- times.
-
-Sat Apr 05 17:27:02 1997 <irfan@TWOSTEP>
-
- * Registry.cpp (resolve): Type and size of the object is only set
- if RegQueryValueEx() returns success. Thanks to Alan
- (Alan_Cabrera@fp.cibc.com) for reporting this.
-
-Sat Apr 05 13:11:04 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (instance): Added another ACE_NO_HEAP_CHECK.
- Matthias provided the fix.
-
- * ace/config-win32.h: Disable ACE_HAS_STRICT by default, because
- it will break existing application code.
-
- * ace/OS.{h,cpp},Log_Msg.{h,cpp}: fixes from Matthias Kerkhoff
- <make@cs.tu-berlin.de> to avoid memory-leak reports when MFC
- or (the CrtHeapXXX()-functions of the Win32 runtime library)
- are used.
-
- The problem is, that MFC (and so may other Win32 applications
- do) allocates a thread specific storage slot for each running
- thread which contains various control and debug informations.
- Part of this information is an object, which when constructed
- makes a snapshop of the heap. When this object is destroyed,
- the snapshot is compared to the actual heap. All object still
- existing on the heap are reported as memory leaks (which
- is in most situations correct). Because the object is deleted
- when the thread (or programs main) is left and this happens
- before atexit is called, some leak reports are false (because,
- e.g., all these ACE_Log_Msg's will be deleted in atexit).
-
- The fix for ACE_Log_Msg consists of three changes (two only
- relevant for Win32, one relevant for all platforms.)
- Description of changes:
-
- a) Introduced a new macro ACE_NO_HEAP_CHECK, which turns
- off the built in heap checking until the current code block
- is left. (defined for all platforms, but only does something
- for Win32). This changes os.h and config-win32-common.h.
-
- b) Added a static member function to ACE_Log_Msg. The function
- (exists) returns 0 if the calling thread don't have an ACE_Log_Msg
- and non-null if an ACE_Log_Msg exists. This changes Log_Msg.h
- and Log_Msg.cpp.
-
- c) Changed ACE_Thread_Adapter in a way that creating a new
- thread does not automatically create an ACE_Log_Msg for the
- calling thread. This happened until now, because the new
- thread inherited the log settings of the calling thread.
- This behaviour makes no sense, if the calling thread does
- not have an ACE_Log_Msg, so i use ACE_Log_Msg::exists() (see
- above) to prevent the implicit creation of an ACE_Log_Msg
- for the calling thread.
-
- Thanks, Matthias!
-
- * ace/config-win32.h and config-win32-common.h: new, consolidated
- Win32 config files. Thanks, again, Matthias!
-
- * ace/OS.h (ACE_UNUSED_ARG): determine whether we're building
- on an Irix platform by looking for ACE_HAS_IRIX_GETTIMEOFDAY
- instead of ACE_HAS_IRIX62_THREADS.
-
- * ace/Log_Msg.cpp: VxWorks (only!) change: no longer strdups
- program_name and local_host to avoid memory leaks. Instead,
- the addresses of these are copied by ACE_Log_Msg. So, only
- strings in the text segment should be passed to its functions!
- Again, this change is for VxWorks only.
-
- * ace/Sched_Params.cpp: moved memsets of pcinfo so that entire
- pcinfo structure is zeroed out, to _really_ avoid Purify warnings.
-
-Fri Apr 04 12:28:40 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-mvs.h: removed ACE_HAS_IP_MULTICAST because MVS
- doesn't define ip_mreq. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for reporting this.
-
- * ace/OS.i (mutex_init): fixed the extra braces once and for all.
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting it.
-
- * ace/OS.i, config-sco-5.0.0*.h: fixed for SCO so that it uses
- single-argument gettimeofday () prototype, but calls two-arg
- (SVR4) version in ACE_OS::gettimeofday (). Thanks to Ganesh
- Ganesh Pai <gpai@voicetek.com> for solving this problem.
-
- * ace/Log_Msg.{h,cpp}: added ACE_Log_Msg destructor. In
- instance (), added call to ::atexit () (::taskDeleteHookAdd ()
- on VxWorks) to register cleanup handler. Each new instance
- of an ACE_Log_Msg is inserted into an ACE_Unbounded_Set; the
- cleanup handler iterates over the Set and deletes the
- ACE_Log_Msgs at program exit.
-
- Also, the two strings that are allocated get cleaned up after
- the last ACE_Log_Msg instance is deleted. Many thanks to
- Matthias Kerkhoff <make@cs.tu-berlin.de> for figuring this out
- and cranking out the code.
-
- It works differently on VxWorks, because it doesn't have
- ::atexit (). VxWorks has ::taskDeleteHookAdd (), which is
- called when each task exits. So, the Set isn't used. Instead,
- the cleanup hook is called for each task when it exits, passing
- the task control block (TCB) of the exiting task. A pointer to
- the ACE_Log_Msg instance is contained in one of the spare fields
- of the TCB, so the cleanup handler simply deletes it.
-
- * ace/IOStream.h: specify template parameter (ACE_IOStream<STREAM>)
- to ACE_OPERATOR{G,P}_SET macros. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for providing this fix.
-
-Thu Apr 3 22:17:53 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/Registry.cpp: Changed STRING_SEPARATOR from Istring to
- LPCTSTR. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
- suggesting this.
-
-Thu Apr 3 21:39:45 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.i (mutex_init): Removed errant open-brace ('{'). Thanks
- to Chuck Gehr (gehr@sweng.stortek.com) for the fix!
-
-Thu Apr 03 08:52:34 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h,OS.cpp,Sched_Params.cpp: added /**/ to some #include
- directives. Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de>
- for reporting these.
-
- * ace/OS.cpp (writev, readv): changed type of local variable "i"
- from size_t to int to avoid signed/unsigned mismatch. Thanks
- to Matthias Kerkhoff <make@cs.tu-berlin.de> for reporting this.
-
- * ace/OS.cpp (readv), SOCK_Dgram.cpp (recv): added casts of
- iov_len and copyn because iov_len is int on some platforms and
- size_t on others. This avoids compiler (MSVC 4.1) warnings.
- Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for reporting
- this.
-
- * include/makeinclude/platform_sco5.0.0-nothread.GNU:
- updated CCFLAGS and added LD=$(CXX). Thanks to
- Ganesh Pai <gpai@voicetek.com> for these fixes.
-
- * ace/OS.h: added #include of <sys/regset.h> for SCO only.
- Thanks to Ganesh Pai <gpai@voicetek.com> for this fix.
-
- * ace/config-sco-5.0.0*.h: added #define ACE_HAS_IP_MULTICAST.
- Thanks to Ganesh Pai <gpai@voicetek.com> for this fix.
-
- * ace/config-{chorus,linux*,sco*}.h: removed #define of
- ACE_HAS_INLINED_OSCALLS because it's no longer needed in the
- config files: it's #defined in OS.h if needed.
-
-Thu Apr 3 01:48:01 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Malloc.i (malloc): ACE_New_Allocator::malloc only calls new
- if nbytes is > 0. Purify was complaining that 0 bytes were
- allocated but never deleted. Go figure.
-
-Wed Apr 2 22:24:48 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.cpp: Moved the ACE_OS::inet_aton() method into the *.cpp
- file and made it non-inline to work around a bug with HP/UX C++.
- Thanks to Neil Cohen for this fix.
-
-Wed Apr 02 10:09:37 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5-sunc++-4.1.h: added template specialization
- with Sun C++ 4.2.
-
- * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: removed +w
- and added comments about Sun C++ 4.2 support.
-
- * include/makeinclude/platform_chorus.GNU, platform_hpux_gcc.GNU,
- platform_irix5.{2,3_g++}.GNU, platform_linux{_,pthread}.GNU,
- platform_m88k.GNU,platform_osf1_4.0_g++.GNU,
- platform_sco-nothread.GNU,platform_sco5.0.0-*.GNU,
- platform_sunos{4,5}_g++.GNU, platform_sunos5_x86_g++.GNU,
- platform_unixware_g++.GNU, platform_vxworks5.2_g++.GNU:
- added -fno-implicit-templates to CCFLAGS. See INSTALL file
- for discussion of the g++ option. Also, added -O2 because
- it dramatically reduces object file sizes.
-
- * netsvcs/clients/Tokens/manual/manual.cpp: made
- STDIN_Token::TID typedef public so that template
- specialization (w/ Sun C++ 4.2) can access it.
-
-Wed Apr 2 10:02:47 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.h: Added definitions for THREAD- and PROCESS-LEVEL
- priorities because some implementations define these while
- others don't. These are now
- ACE_{THR,PROC}_{FIFO,RR,OTHER}_{MIN,MAX,DEF}. The only really
- NEW concept is the *_DEF, which is a default value assigned by
- ACE_OS::thr_create() if one isn't given. Of special note is that
- we don't redefine a default values if it's already been
- defined, which allows individual programs to have their
- own ACE-wide "default".
-
- * ace/OS.cpp (thr_create): Uses ACE_{THR,PROC}_* macros
- rather than the PRI_* macros.
-
- * ace/Sched_Params.cpp (priority_min,priority_max): These now
- use ACE_{THR,PROC}_* macros to ignore OS-specific priority
- assignments.
-
- * ace/config-linux-lxpthreads.h: Removed definitions of
- PRI_{FIFO,RR,OTHER}_{MIN,MAX}.
-
- * include/makeinclude/platform_linux*.GNU (CCFLAGS): Added
- -fno-implicit-templates now that it's supported. This
- eliminates messages of the sort 'ld: Warning size of
- <mangled template specialization name> change from xx to yy'
- when linking libACE.so. Thanks to David Levine for making
- this possible!
-
-Tue Apr 1 15:27:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * bin/g++dep: Removed the "/bin" prefix so that this won't fail on
- platforms that don't have sed in /bin. Thanks to Sandro Doro
- <alex@aureus.sublink.org> for this fix.
-
-Tue Apr 01 09:55:07 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: protected definition of struct flock on VxWorks,
- because it defines that type in sys/fcntlcom.h. (It doesn't
- appear to support flock (), though.) Thanks to Dave
- Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting this.
-
- * ace/OS.h: define ACE_hrtime_t as u_longlong_t gcc, because
- its long long types are only 4 bytes long. Its longlong_t
- types are 8 bytes. Also made ACE_hrtime_t unsigned for
- other than gcc on Unix platforms.
-
- * ace/OS.* (gethrtime), config-vxworks-ghs-1.8.h: added support
- for PowerPC with Green Hills compiler. Thanks to Dave
- Mayerhoefer <mayerhoefer@svappl36.mdc.com> for providing the
- readPPCTimeBase assembler routine.
-
- * ace/config-vxworks*.h: removed #include of vxWorks.h because
- its no longer necessary with the TimeValue.h merged into OS.h.
-
- * ace/High_Res_Timer.cpp (elapsed_time): added cast to
- initialization of nseconds to avoid compiler warning from
- MSVC 4.1 about narrowing from unsigned __int64.
- Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
- reporting this.
-
-Mon Mar 31 18:18:35 1997 Carlos O'Ryan <coryan@charlie>
-
- * ace/config-hpux-10.x-g++.h:
- It was tuned to HP-UX 10.10 (and further) using g++ 2.7.2 without
- DCE/Threads.
-
- * ace/Task_T.cpp:
- Another iteration on the Module.h file, this time it is not
- included *only* under HPUX and when using HP/aCC. Still IMHO
- problems will arise as template sintax checking becomes more
- popular.
-
- * ace/Local_Name_Space_T.h:
- * ace/Local_Name_Space_T.cpp:
- Replaced MAXNAMELEN with MAXPATHLEN since some platforms
- (e.g., HP/UX) have a very low value (e.g., 14 bytes) for
- MAXNAMELEN.
-
- * ace/config-hpux-10.x-aCC.h:
- The comment did not make clear what was compiler/platform
- target. It also included some remarks that only applied to
- HP/C++.
-
- * tests/Future_Test.cpp:
- * tests/Message_Block_Test.cpp:
- * tests/Thread_Pool_Test.cpp:
- Will not compile if ACE_HAS_THREADS was not defined and
- ACE_TEMPLATES_REQUIRE_SPECIALIZATION was: they tried to
- instantiate templates that were only defined when ACE_HAS_THREADS.
-
- * ace/config-hpux-10.x-aCC.h:
- More fine tuning: ACE_HAS_EXCEPTIONS,
- ACE_LACKS_LINEBUFFERED_STREAMBUF,
- ACE_HAS_STREAM_PIPES.
-
- * ace/TLI_Stream.h:
- * ace/TLI_Acceptor.h:
- No "Meta-type info" was defined (the PEER_ADDR and PEER_STREAM
- typedefs).
-
- * ace/Signal.h:
- * ace/Signal.cpp:
- With HP/aCC we can enable ACE_Sig_Handlers.
-
-Mon Mar 31 22:36:55 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp (process_directives): Return -1 if
- ace_yyerrno > 0. Thanks to Alan Cabrera
- <Alan_Cabrera@fp.cibc.com> for reporting this.
-
-Mon Mar 31 17:38:08 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): Moved priority determination after
- policy determination because it's possible for setting of the
- priority to fail if it's not a valid priority for the [default]
- policy.
-
-Mon Mar 31 09:00:54 1997 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Misc/context_switch_time.cpp: this test no
- longer worked. So, reverted to revision 4.5, plus minimum
- changes necessary to support build on platforms without threads.
-
- * examples/Threads/Makefile, performance-tests/Misc/Makefile:
- moved context_switch_time.cpp from examples/Threads to
- performance-tests/Misc.
-
- * examples/Logger/Acceptor-server/server_loggerd.cpp,
- examples/Reactor/Misc/pingpong.cpp,
- examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp,
- examples/Shared_Malloc/Malloc.cpp:
- added template specializations.
-
- * include/makeinclude/platform_sunos5_g++.GNU: removed dependency
- of CCFLAGS on CFLAGS to avoid duplicate -g in build command.
- Also, added -fno-implicit-templates in comment.
-
-Sun Mar 30 12:52:58 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Malloc.h: The block begining with:
- #if defined (ACE_MALLOC_STATS)
- and ending with end of struct ACE_Malloc_Stats
- must be moved (up) after line 107
-
- Thanks to Sandro Doro <alex@aureus.sublink.org> for pointing
- this out.
-
- * ace/Malloc_T.cpp: The line
- this->malloc_stats_.dump ();
- must be changed in:
- this->cb_ptr_->malloc_stats_.dump ();
-
- Thanks to Sandro Doro <alex@aureus.sublink.org> for pointing
- this out.
-
- * ace/Malloc_T.cpp: the line
- this->cb_ptr_->malloc_stats_.print (); // print not exists
- may be changed in:
- this->cb_ptr_->malloc_stats_.dump ();
-
- Thanks to Sandro Doro <alex@aureus.sublink.org> for pointing
- this out.
-
- * ace/Malloc_T.h: Added "virtual" to the ACE_New_Allocator methods
- to reinforce the fact that they are indeed virtual. Thanks to
- Sandro Doro <alex@aureus.sublink.org> for pointing this out.
-
- * ace/Malloc.h: Added "virtual" to the ACE_New_Allocator methods
- to reinforce the fact that they are indeed virtual.
-
-Sat Mar 29 20:26:54 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: moved #defin of RTLD_LAZY after #include of dlfcn.h.
- Thanks to Chris Lahey <CLahey@cccis.com> for this fix.
-
- * ace/Task_T.h: replaced #include of "ace/Module.h" because some
- Task_T methods use ACE_Module methods.
-
- * examples/Connection/non_blocking/test_{sock,spipe,tli}_{acceptor,
- connector}.cpp,
- examples/System_V_IPC/SV_Semaphores/Semaphores_{1,2}.cpp:
- added template specializations.
-
-Sat Mar 29 17:08:33 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.cpp: Added many new ACE_UNUSED_ARGS macros to eliminate
- warnings when we are compiling without threads.
-
-Fri Mar 28 11:34:38 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Task.{h,cpp},Thread_Manager.h: changed remaining
- priority types to long and defaults to -1.
-
- * ace/Thread_Manager.cpp (spawn_i): don't clobber errno!
- ACE_OS::thr_create () sets errno and returns -1. So,
- its return value should not be used to set errno.
-
- * ace/OS.cpp (thr_create): fixed PTHREADS_1003_DOT_1C thread
- priority logic. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for the patch.
-
- * ace/config-sunos5.5*.h,README,OS.cpp (thr_create): added
- ACE_HAS_ONLY_SCHED_OTHER to indicate that platform (Solaris 2.5)
- only supports POSIX SCHED_OTHER scheduling policy.
-
- * tests/Priority_Task_Test.cpp (open): added THR_SCHED_FIFO flag.
- Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
- for this suggestion.
-
- * examples/ASX/Event_Server/Event_Server/Makefile,
- Transceiver/Makefile:
- added -lGateway to LIBS to pick up its template
- instantiations during links.
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp,
- Transceiver/transceiver.cpp,
- Connection/blocking/SPIPE-{acceptor,connector}.cpp,
- misc/Connection_Handler.cpp,test_upipe.cpp,
- Logger/simple-server/server_loggerd.cpp,
- UPIPE_Event_Server/{Consumer,Supplier}_Router.cpp,
- performance-tests/Synch-Benchmarks/Options.cpp:
- added template specializations.
-
-Thu Mar 27 21:10:59 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/IOStream.h: only use built-in ipfx{0,1} () with __GNUC__,
- because that's the only compiler we know of that has them.
- Thanks to Carlos O'Ryan <coryan@mat.puc.cl> for pointing this
- out, and to James CE Johnson <jcej@lads.com> for providing the fix.
-
- * ace/OS.i: rearranged order of ACE_Time_Value functions (moved
- set ()'s up, moved arithmetic operators down) so that they are
- defined before use.
-
- * ace/Task_T.cpp: removed ACE_TEMPLATES_REQUIRE_SOURCE around
- #include of "ace/Module.h" so that it will build with Sun C++ 4.1.
-
- * apps/Gateway/Peer/Makefile: added -lGateway to LIBS to
- pick up its template instantiations during links.
-
- * apps/Gateway/Peer/Peer.cpp: added template instantations.
-
-Thu Mar 27 14:10:39 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.h: Added two new accessors to ACE_Time_Value:
-
- operator timeval *() const;
- // Returns a pointer to the object as a timeval.
-
- const operator timeval *() const;
- // Returns a pointer to the object as a timeval.
-
- Thanks to Carlos O'Ryan <coryan@mat.puc.cl> for this suggestion.
-
- * ace/OS.i (ACE_Time_Value): Inlined many of the ACE_Time_Value
- accessors.
-
- * ace/OS.h: Reimplemented ACE_Str_Buf at
-
- struct ACE_Export ACE_Str_Buf : public strbuf
- {
- // = Initialization method
- ACE_Str_Buf(void* b = 0, int l = 0, int max = 0);
- // Constructor.
- };
-
- this makes the casting from ACE_Str_Buf* to strbuf* a "safe"
- cast and makes it more portable (say on platforms where the
- fields in strbuf are not in the right order). Thanks to Carlos
- O'Ryan <coryan@mat.puc.cl> for this fix.
-
- * ace/OS.h: Moved the definition of imr_multiaddr to just before
- class ACE_OS so that it picks everything up appropriately.
- Thanks to Hakan Kallberg <hk@simulina.se> for reporting this.
-
- * ace/config-aix-4.[12].x.h and config-mvs.h: Fixed the
- ACE_HAS_MULTICAST macros, which should have said
- ACE_HAS_IP_MULTICAST. Thanks to Daniel Montalibet
- <daniel_montalibet@stortek.com> for reporting this.
-
-Thu Mar 27 15:54:10 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/{Thread,Thread_Manager}.{h,i,cpp} (ACE_Thread): Changed
- type for priority arg to spawn*() from u_int to long to
- support changes in thr_create indicated below. Thanks to
- Thilo Kielmann <kielmann@informatik.uni-siegen.de> for these
- changes.
-
- * ace/OS.cpp: Ensure that whenever either a priority of a
- scheduling policy is set explicitly, with POSIX threads, the
- other argument and the flag THR_EXPLICIT_SCHED is set
- automatically. A range check for priority values for POSIX
- 1003.1c is also included. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for these changes.
-
- * ace/OS.h: Changed type and default value of priority arg to
- thr_create from u_int to long and 0 to -1. Thanks to Thilo
- Kielmann <kielmann@informatik.uni-siegen.de> for these
- changes. Also added ACE_MAX and ACE_MIN macros.
-
-Thu Mar 27 11:25:38 1997 David L. Levine <levine@cs.wustl.edu>
-
- * netsvcs/servers/Makefile: removed SHOBJ so that main.so is not
- built, because it wasn't needed. Thanks to Sandro Doro
- <alex@aureus.sublink.org> for this fix.
-
- * ace/config-aix-4.[12].x.h,config-mvs.h: changed
- ACE_HAS_MULTICAST to ACE_HAS_IP_MULTICAST. Thanks to Daniel
- Montalibet <daniel_montalibet@stortek.com> for reporting
- this.
-
- * include/makeinclude/platform_sunos5_g++.GNU,
- platform_sunos5_x86_g++.GNU,
- platform_unixware_g++.GNU:
- removed "-L$(WRAPPER_ROOT)/ace -L./" from LDFLAGS because it
- is added to LDFLAGS in include/makeinclude/wrapper_macros.GNU.
-
- * apps/Gateway/Gateway/{Event_Channel.cpp,Gateway.cpp,
- Proxy_Handler.cpp,Proxy_Handler_Acceptor.cpp,
- Proxy_Handler_Connector.cpp,
- examples/IPC_SAP/UPIPE_SAP/ex{2,3}.cpp,
- netsvcs/clients/Naming/Client/Client_Test.cpp,
- netsvcs/clients/Tokens/manual/manual.cpp:
- added template specializations.
-
-Thu Mar 27 10:05:59 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * netsvcs/lib/TS_Clerk_Handler.cpp: Fixed two things:
- 1) In TS_Clerk_Processor::parse_args() changed
- "%n:\n[-p hostname:port] [-t timeout] [-p poolname]\n%a", 1),
- to
- "%n:\n[-h hostname:port] [-t timeout] [-p poolname]\n%a", 1),
-
- 2) In TS_Clerk_Processor::alloc() changed
- void *temp = 0;
- // Only create the state if it doesn't already exist.
- if (this->shmem_->find (ACE_DEFAULT_TIME_SERVER_STR, temp) == -1)
- {
- // Allocate the space out of shared memory for the system time entry
- temp = this->shmem_->malloc (sizeof (this->system_time_));
-
- to:
-
- // Only create the state if it doesn't already exist.
- if (this->shmem_->find (ACE_DEFAULT_TIME_SERVER_STR) == -1)
- {
- // Allocate the space out of shared memory for the system time entry
- void *temp = this->shmem_->malloc (sizeof (this->system_time_));
-
- Thanks to Sandro Doro (alex@aureus.sublink.org) for suggesting these changes.
-
-Thu Mar 27 01:00:18 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.2_sgiCC.GNU: Added a new
- platform config file for SGI Irix 6.2 using the CC compiler (not
- NCC nor the MipsProcompiler). Thanks to Eric Dean Russell
- <edrusse@somnet.sandia.gov> for these changes.
-
- * ace/OS.h: Moved the ACE_LACKS_UTSNAME_T block into the right
- part of the code. Thanks to Jonathan Biggar <jon@sems.com> for
- this fix.
-
- * ace/Malloc.h: Added an enhancement so that the new alignment
- features will work regardless of the size of ACE_MALLOC_ALIGN.
- Thanks to Fred LaBar <flabar@fallschurch.esys.com> for this fix.
-
- * ace/Synch_Options.cpp: We now automatically set the USE_TIMEOUT
- flag if a non-0 timeout value is supplied. Thanks to Tim
- Liddelow <tim@cst.com.au> for this suggestion.
-
-Wed Mar 26 08:47:24 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/{ACE.cpp,Log_Msg.cppOS.cpp},
- tests/{Message_Queue_Test.cpp,Naming_Test.cpp}:
- Changed ::sprintf calls to ACE_OS::sprintf. Thanks to
- Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
- reporting this.
-
- * netsvcs/lib/{Client_Logging_Handler.cpp,Name_Handler.cpp,
- Server_Logging_Handler.cpp,TS_Service_Handler.cpp,
- Token_Handler.cpp}: added template specializations.
-
-Tue Mar 25 06:47:14 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Moved config.h to the top of OS.h so that we don't
- have to worry about not defining things in the right place.
- Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing
- this out.
-
-Tue Mar 25 22:54:49 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/OS.i: Added UNICODE support for ACE_OS::chdir(). Thanks to
- Ivan Murphy <Ivan.Murphy@med.siemens.de> for the code.
-
-Tue Mar 25 21:26:10 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/TTY_IO.{h,cpp},README, and these config files:
- config-aix-*.h, config-hpux-*.h, config-irix5.*.h,
- config-mvs.h, config-osf1-*.h, config-sun*.h (except for g++
- and config-sunos5.5-sunc++-4.1.h), config-win*.h:
- Added ACE_NEEDS_DEV_IO_CONVERSION to conditionally compile the
- ACE_DEV_IO & conversion operator for ACE_TTY_IO, which is a
- subclass of ACE_DEV_IO. Thanks to Fred LaBar
- <flabar@fallschurch.esys.com> and Gonzalo Diethelm
- <gonzo@ing.puc.cl> for reporting warnings without this on
- Irix 6.2 with the mipsPro compiler.
-
- * ace/OS.cpp (thr_create): on VxWorks, always pass 0 as first arg to
- ::taskSpawn () so that VxWorks will generate the task ID.
- Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com>
- for providing this fix, without which random task names would
- be assigned.
-
- * ace/ACE.cpp (get_bcast_addr): added return 0 at end of non-WIN32
- code to avoid compile warning from g++.
-
- * tests/IOStream_Test.cpp: removed extra "(%P|%t)" from output.
- I couldn't get ACE_ERROR_RETURN to work on g++: it complained
- about mismatched return types when returning an int from a
- function that returns a void *, and about mismatched arguments
- to an ACE_Log_Msg function if I cast the int to a void *. So,
- I used ACE_ERROR instead.
- Added ACE_UNUNSED_ARG (arg). Removed unused variables
- error_at_server and error_at_client.
-
- * netsvcs/lib/TS_Clerk_Handler.cpp: added another template
- specialization.
-
- * examples/Reactor/Multicast/client.cpp: Log_Wrapper::LOG_DEBUG
- instead of LM_DEBUG.
-
- * examples/Threads/context_switch_time.cpp: use ACE_Sched_Params
- to get platform-dependent thread priorities. Also, moved #includes
- so that config.h is read before testing for ACE_HAS_THREADS.
-
- * examples/Threads/{auto_event.cpp,barrier2.cpp,future1.cpp,
- future2.cpp,reader_writer.cpp,tss1.cpp,tss2.cpp}:
- added template specializations.
-
-Tue Mar 25 10:01:05 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * config-linux.h: Added
- ACE_HAS_{SVR4_DYNAMIC_LINKING,AUTOMATIC_INIT_FINI}. Thanks to
- alex@aureus.sublink.org (Sandro Doro) for the change.
-
- * platform_linux.GNU: Added -ldl to LIBS. Thanks to
- alex@aureus.sublink.org (Sandro Doro) for the change.
-
-Tue Mar 25 16:01:34 1997 Carlos O'Ryan <coryan@charlie>
-
- * ace/Svc_Handler.cpp:
- I forgot to comment this: "operator delete" used to call ::delete
- on a void*, on ANSI/C++ this is not allowed. Since "operator new"
- calls ::new for a char[] I do a casting to char* and call
- ::delete[] on the char pointer.
-
- * ace/config-hpux-10.x-aCC.h:
- HP-UX 10.10 supports CLOCK_GETTIME, my guess is that it should
- work with g++ and HP/C++, but I won't mess with those files yet.
-
- * ace/Connector.h:
- The default address parameter for "connect" is a bit tricky, from
- the comments in the file:
- //
- // If the compiler supports 'typename' we cannot use
- //
- // PEER_CONNECTOR::PEER_ADDR::sap_any
- //
- // because PEER_CONNECTOR::PEER_ADDR is not considered a
- // type. But:
- //
- // typename PEER_CONNECTOR::PEER_ADDR::sap_any
- //
- // will not work either, because now we are declaring sap_any a
- // type, further:
- //
- // (typename PEER_CONNECTOR::PEER_ADDR)::sap_any
- //
- // is considered a casting expression. All I can think of is
- // using a typedef, I tried PEER_ADDR but that was a source of
- // trouble on some platforms. I will try:
- //
- typedef ACE_PEER_CONNECTOR_ADDR ACE_PEER_ADDR_TYPEDEF;
-
- * ace/OS.h:
- The stock HP C++ compiler (cfront based) gives lots of warnings in
- <net/if.h>. I used to define volatile to avoid this warnings. Now
- I think I'll rather like to see them.
-
- * ace/SPIPE_Stream.h:
- * ace/SPIPE_Connector.h:
- There was no meta-type info (PEER_ADDR) for SPIPE_Stream and
- SPIPE_Connector.
-
- * ace/Stream_Modules.h:
- * ace/Stream_Modules.cpp:
- Fixed a "bug" introduced in my last change: a couple of
- ACE_ALLOC_HOOK_* were commented but shouldn't.
-
- * examples/Connection/non-blocking/CPP-acceptor.cpp (open):
- PR_AD cannot be used in this context, it expands to
- _ACE_PEER_ACCEPTOR::PEER_ADDR (via ACE_PEER_ACCEPTOR_ADDR), but
- the template parameter is _ACE_PEER_STREAM (aka PR_ST_1, aka
- ACE_PEER_STREAM_1).
- The right macro was ACE_PEER_STREAM_ADDR.
-
- * ace/Connector.h:
- * ace/Connector.cpp:
- The typedef trick I used (PEER_ADDR) did not work on every
- platform.
- I also broke some examples since ACE_PEER_CONNECTOR_ADDR did not
- include ACE_TYPENAME on its definition. Hopefully this new trick
- will work everywhere.
-
- * I finally sorted out the mistery of including "ace/Module.h"
- into "ace/Task_T.cpp": when compiling "ace/Stream_Modules.cpp" you
- get the following include sequence:
- Stream_Modules.cpp
- Stream_Modules.h
- Task.h
- Task.i
- Task_T.h
- Message_Queue.h (descendants removed)
- Synch_T.h (descendants removed)
- Task.h (already included).
- Task_T.i
- Task_T.cpp
- Module.h
- ACE.h (descendants removed)
- Task.h (already included).
- Module.i
- Module.cpp
-
- At this point Module.cpp uses ACE_Thru_Task declared on
- Stream_Modules.h, but after the #include "ace/Task.h";
- in fact Module.cpp tries to #include "ace/Stream_Modules.cpp" but
- that second #include expands to nothing due to the canonical
- protection on Stream_Modules.h.
- That explains the removal of Module.h in Task_T.cpp.
- If you are wondering why so long an explanation for this change
- the answer is simple: just because I was curious on now it worked.
-
-Mon Mar 24 14:08:48 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): Cleaned up the code a
- bit.
-
- * ace/ACE: Added a new method called get_bcast_addr() which will
- get the broadcast address for a host. Thanks to Paul Han
- <phan@CCGATE.HAC.COM> for suggesting this.
-
- * ace/UNIX_Addr: Added another set method in UNIX_Addr class:
-
- void set (const ACE_UNIX_Addr &sa);
- // Creates an ACE_UNIX_Addr from another <ACE_UNIX_Addr>.
-
- Thanks to Paul Han <phan@CCGATE.HAC.COM> for this.
-
- * ace/SOCK_Dgram: Removed the #if defined (ACE_HAS_IP_MULTICAST)
- since this is now handled at the ACE_OS level.
-
- * ace/OS.h: Added support for IP multicast macros and structs even
- on platforms that don't support it so that the tests will
- compile without having lots of #ifdefs.
-
- * tests/Future_Test.cpp: Added a check for platforms that lack
- threads. Thanks to Hakan Kallberg <hk@simulina.se>
- for reporting this.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: Added a check for
- platforms that lack threads. Thanks to Hakan Kallberg
- <hk@simulina.se> for reporting this.
-
- * examples/Threads/context_switch_time.cpp: Added an #ifdef for
- ACE_HAS_THREADS to this test so that it will compile on
- platforms that don't have threading. Thanks to Scott Halstead
- <scott.halstead@gs.com> for reporting this.
-
- * tests/IOStream_Test.cpp: Fixed up this test so that it works
- correctly on platforms that lack multi-threading. Thanks to
- Scott Halstead <scott.halstead@gs.com> for reporting this.
-
- * netsvcs/lib/Makefile: Reincluded the LIB target so that we'll
- build a static library. Thanks to Scott Halstead
- <scott.halstead@gs.com> for reporting this.
-
- * ace/SOCK_Dgram.cpp (recv): Added a check to make sure that we
- don't try to copy more into the recv buffer than we've really
- got. Thanks to Alan_Cabrera@fp.cibc.com for this fix.
-
- * ace/OS.cpp (readv): Added a check to make sure that we don't try
- to copy more into the recv buffer than we've really got. Thanks
- to Alan_Cabrera@fp.cibc.com for this fix.
-
- * ace/Malloc.h: Modified the alignment strategy to define
- ACE_MALLOC_ALIGN to a number of bytes. (it gets rounded to a
- number of long's). This makes it easier to work with more
- complex buffer alignment strategies (e.g., DMA). Thanks to Fred
- LaBar <flabar@fallschurch.esys.com> for this.
-
- * ace/OS.cpp (readv): Added several more changes for the readv()
- emulation. Thanks to Alan Cabrera <Alan_Cabrera@fp.cibc.com>
- and Adam Porter <aporter@cs.umd.edu> for these fixes.
-
-Mon Mar 24 14:22:17 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): For VxWorks, fixed call to ::taskSpawn ().
- ACE's arguments are in an array, not individual arguments.
- Also, set flags to VX_FP_TASK if it's 0, to match behavior
- of ::sp (). Thanks to Dave Mayerhoefer
- <mayerhoefer@svappl36.mdc.com> for reporting these and providing
- the fix.
-
- * ace/High_Res_Timer.cpp (elapsed_time (struct timespec &):
- fixed, using same approach as in elapsed_time
- (ACE_hrtime_t &nanoseconds), to get nanosecond resolution.
-
- * netsvcs/lib/TS_Clerk_Handler.cpp (handle_close): added
- ACE_UNUSED_ARG (mask). Also, added template specializations.
-
- * examples/Reactor/Multicast/server.cpp (Server_Events ctor):
- rearranged initializers to match declaration order.
-
- * examples/IOStream/server/iostream_server.cpp,
- client/iostream_client.cpp:
- added template specializations.
-
-Mon Mar 24 13:21:31 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp (elapsed_time): Added an
- ACE_High_Res_Timer::elapsed_time (ACE_hrtime_t &nanosecond)
- method that returns the number of elapsed nanoseconds. This is
- accomplished even with the scale factors converting to
- microseconds. It also does not use floating point
- calculations.
-
-Sun Mar 23 13:25:39 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/High_Res_Timer.h: Removed <scale_factor> from the
- constructor of High_Res_Timer. All High_Res_Timers now use
- global_scale_factor_ directly. Hopefully, this will not break
- any existing code!
-
-Sat Mar 22 12:06:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.h: The include statement for config.h was too low. Some
- defines for key_t, needed for NT, didn't work. Thanks to Alan
- Cabrera <Alan_Cabrera@fp.cibc.com> for these fixes.
-
- * examples/Reactor/Multicast: Improved the multicast client and
- server programs to work better.
-
- * ace/Connector.cpp: Modified the ACE_Connector::handle_close()
- method to prevent recursive calls to itself. Thanks to Paul Han
- <phan@CCGATE.HAC.COM> for reporting this.
-
- * ace/Svc_Handler.cpp: Put the check (closing_ == 0) in the
- destructor as well as in the destroy() method. This prevents a
- possible core dump when the timer exists. The instruction
- reactor::remove_handler in the shutdown method currently will be
- called twice when ACE_Svc_Handler object is being deleted. Core
- dump occurs when it tries to execute ACE_Reactor::remove_handler
- method the second time because the ACE_Svc_Handler object
- pointer has already been deleted by the previous instruction
- ACE_Reactor::cancel_timer. Thanks to Paul Han
- <phan@CCGATE.HAC.COM> for reporting this.
-
- * ace/OS.cpp: Added new thread-safe implementations of writev()
- and readv() for platforms that lack these functions.
-
- * ace/SOCK_Dgram.cpp: Added new implementations of
- ACE_SOCK_Dgram::{send,recv} that define methods for
- send(iovec[], ...) and recv(iovec[], ...) for systems that
- don't have sendmsg() and recvmsg(). Thanks to Alan Cabrera
- <Alan_Cabrera@fp.cibc.com> for these fixes.
-
- * apps/jaws/HTTP_Handler.cpp: Removed some problematic template
- specializations that were left over from an earlier version of
- JAWS. Thanks to Adam Porter <aporter@cs.umd.edu> for reporting
- this.
-
- * examples/Logger/Acceptor-server/server_loggerd.cpp: Revised the
- code to use the new ACE_Svc_Handler logic that checks to ensure
- that we don't recurse infinitely in handle_close().
- Thanks to Jean-Marc Strauss <strauss@club-internet.fr> for
- reporting this problem.
-
- * examples/Logger/simple-server/Logging_Handler.cpp
- (handle_close): Added a check to make sure we don't end up
- recursively calling handle_close(). This will prevent
- a segfault.
-
-Sat Mar 22 07:30:49 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.*: Changed scale factor to convert
- platform-dependent clock units to microseconds instead of
- nanoseconds. That way, it should be greater than 1 for
- all supported platforms. So, it's now an unsigned long
- instead of a double.
-
- * ace/OS.h: Changed ACE_hrtime_t to unsigned __int64 with
- _MSC_VER. Also, fixed typo: "uint64" instead of "unit64"
- without _MSC_VER.
-
-Fri Mar 21 08:37:34 1997 Carlos O'Ryan <coryan@charlie>
-
- * makeinclude/rules.lib.GNU:
- I use the macro SOEXT to support HP non-standard extension for
- shared library names (.sl instead of .so).
- I also changed the rule to build shared libraries: under HP-UX you
- cannot pass extra libraries (-lXXX options) when building a shared
- lib. Before HP-UX 10.10 it wasn't a problem because no library was
- needed with ACE, but to support XLI the '-lxti' flag must be used
- on binaries (but not on shared libs).
-
- * include/makeinclude/platform_hpux.GNU:
- The PIC option (+Z) was used always, clearly not intended.
-
- * include/makeinclude/platform_hpux_gcc.GNU:
- Added a config file for g++ under HP-UX.
-
- * include/makeinclude/platform_hpux_aCC.GNU:
- Added a config file for HP/aCC compiler under HP-UX.
-
- * ace/Makefile:
- * netsvcs/lib/Makefile:
- Changed to support the SOEXT macro.
-
- * config-hpux-10.x.h:
- * config-hpux-10.x-aCC.h:
- * config-hpux-10.x-g++.h:
- I updated the files to HP-UX 10.10, AFAIK since that version HP-UX
- uses fd_set instead of int in select(2) (so ACE_SELECT_USES_INT is
- not needed) and the OS supports siginfo_t and ucontext_t so
- ACE_HAS_SIGINFO_T and ACE_HAS_UCONTEXT_T are defined.
- I *do not* have threads at my site nor the infamous PHSS_6246
- patch so I couldn't test the threaded version nor the HP cfront
- based one.
- ACE compiled fine with g++ and HP/aCC though.
-
- * ace/OS.h:
- * ace/Malloc_T.h:
- HP/aCC supports the typename keyword. I added a new config macro
- 'ACE_HAS_TYPENAME_KEYWORD', when it is defined ACE_TYPENAME
- expands to 'typename' when not it expands to nothing.
- On the cases where HP/aCC requires the usage of 'typename' I added
- a 'ACE_TYPENAME'.
-
- * ace/OS.i:
- * ace/OS.cpp:
- ACE_OS::inet_aton cannot be inlined under HP-UX.
-
- * ace/Connector.h:
- * ace/Connector.cpp:
- I have decided to use a typedef (PEER_ADDR) instead of
- ACE_PEER_CONNECTOR_ADDR, mainly because the second form
- requires a ACE_TYPENAME before each usage.
-
- * ace/Event_Handler_T.i:
- Much to my surprize ACE_TYPENAME is required when using a template
- typedef as a return value.
-
- * ace/Local_Name_Space_T.h:
- HP/aCC does not like the usage of a private typedef from another
- class.
-
- * ace/Strategies_T.h:
- * ace/Strategies_T.cpp:
- ACE_Process_Strategy declared two defaults constructors:
- ACE_Process_Strategy(void) and ACE_Process_Strategy(int = 1).
- The constructor code was wrong, it called open() with parameters:
- open(thr_mgr, thr_flags, n_threads)
- none of which were defined, worse, open() receives just one
- parameter (the number of processes) just as the constructor, I
- believe that C-w programming is lurking here.
-
- * ace/Signal.cpp:
- Though the header file does not declare ACE_Sig_Handlers under
- HP-UX (and the code is not defined too) some auxiliary functions
- that use ACE_Sig_Handlers were defined. I removed their
- definition.
- Some day I'll try to take a look at the code, trying to find out
- was wrong with them.
-
- * ace/Stream_Modules.h:
- * ace/Stream_Modules.cpp:
- By mistake I commented out the ACE_ALLOC_HOOK_* macros; have to
- fix it *real soon*.
-
- * ace/Task_T.cpp:
- No need to include "ace/Module.h" since only the template
- declaration is used. When ACE_TEMPLATES_REQUIRE_SOURCE is defined
- you end up using ACE_Thru_Task before it gets defined.
- This is no problem unless your compiler checks template sintax
- before instantiation as the HP/aCC compiler do.
-
- * examples/Reactor/Misc/test_demuxing.cpp:
- ACE_MT_SYNCH was used, but it is only defined if ACE_HAS_THREADS,
- I used ACE_SYNCH instead, which is defined as ACE_MT_SYNCH if
- ACE_HAS_THREADS and as ACE_NULL_SYNCH if not.
- Maybe the semantics are wrong, but the thing compiles.
-
-Fri Mar 21 15:10:59 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Makefile (FILES): Moved Log_Msg to the beginning of the
- source list in the ace Makefile. This is nice because it forces
- the compilation of OS.i and that, obviously, is where you get
- the complaints for the port. It's nice to have it at the
- beginning so you catch the errors very early on before you've
- compiled 30 or 40 files. Thanks to Scott Halstead
- <scott.halstead@gs.com> for this suggestion.
-
- * ace/Memory_Pool.cpp: Added #if !defined
- (ACE_LACKS_SYSV_SHMEM) to handle systems like Chorus that
- lack this feature.
-
-Thu Mar 20 18:58:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Svc_Handler.cpp (destroy): Added a state variable to keep
- track of when we are closing down the Svc_Handler. This is
- necessary to prevent endless recursive calls to handle_close()
- due to the recent enhancements to ACE_Timer_{List,Heap}. Thanks
- to Bert Craytor <Bert_Craytor@peoplesoft.com> for reporting
- this.
-
- * tests/Conn_Test.cpp: Added a new test that makes sure the
- Acceptor, Connector, and Svc_Handler are working correctly.
-
- * ace: Added some more changes for Chorus. Thanks to Wei Chiang
- <chiang@tele.nokia.fi> for these changes.
-
- * ace/OS.h: Added #define for SIGSEGV for platforms that lack it
- (e.g., Chorus).
-
- * ace: Made a bunch of minor changes to support SunOS 4.x better.
- Thanks to Scott Halstead <scott.halstead@gs.com> for reporting
- these problems.
-
- * tests/Conn_Test.cpp: Added ACE_TEMPLATES_REQUIRE_SPECIALIZATION
- for the various templates used in this test. Thanks to Thilo
- Kielmann <kielmann@informatik.uni-siegen.de> for reporting this.
-
- * ace/Connector.cpp (connector): Fixed some minor bugs that
- prevented the ACE_Connector from compiling. Thanks to David
- Levine for noticing this.
-
- * ace/OS.h: Moved the ACE_LACKS_SIGACTION block so that it will
- work on Win32. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for pointing this out.
-
-Thu Mar 20 22:38:27 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Timer_Heap.cpp: added template specializations.
-
- * netsvcs/lib/Client_Logging_Handler.cpp,
- Name_Handler.cpp
- Server_Logging_Handler.cpp
- TS_Clerk_Handler.cpp
- TS_Server_Handler.cpp
- Token_Handler.cpp: added template specializations.
- There are still many missing from libnetsvcs.
-
- * tests/Conn_Test.cpp,
- Future_Test.cpp
- IOStream_Test.cpp
- Map_Manager_Test.cpp
- Message_Block_Test.cpp
- Message_Queue_Test.cpp
- Reader_Writer_Test.cpp
- SV_Shared_Memory_Test.cpp
- Thread_Pool_Test.cpp}: added template specializations.
- Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
- for providing these.
-
- * ace/Log_Msg.cpp: removed commented-out template specialization.
-
- * include/makeinclude/platform_{chorus,hpux,hpux_gcc}.GNU:
- split out CFLAGS and CCFLAGS from CC and CXX.
-
- * ace/config-aix-4.[12].x.h: added back ACE_HAS_THREAD_SELF and
- and ACE_HAS_SVR4_DYNAMIC_LINKING; removed ACE_HAS_PTHREAD_T.
- Thanks to Chris Lahey <CLahey@cccis.com> for figuring these out.
-
-Thu Mar 20 12:25:30 1997 <harrison@samba.cs.wustl.edu>
-
- * ace/ace.{mak,mdp}: Build->Settings->Code Generation->Processor is
- now set to "Pentium" instead of "Blend*" for Debug and Release
- builds.
-
- * ace/config-win32-msvc4.x.h:
- * ace/config-win32-msvc2.0.h:
- * ace/config-winnt-4.0-msvc4.x.h: Only define ACE_HAS_PENTIUM when
- _M_IX86 == 500. Projects must specify Pentium in
- Build->Settings->Code Generation->Processor to use the RDTSC
- instruction in ACE_OS::gethrtime.
-
- * ace/High_Res_Timer.{cpp,i}: By default, High_Res_Timer is
- constructed with a scale_factor == 1. This allowed me to remove
- all the checks for scale_factor == 0 in the code.
-
- * ace/High_Res_Timer.h (static gettimeofday): If
- global_scale_factor_ is not set, and we're on a platform that
- requires global_scale_factor_ (e.g., Win32),
- ACE_OS::gettimeofday will be used instead of ACE_OS::gethrtime.
- This allows the scale_factor of 1 to still result in correct
- values.
-
-Wed Mar 19 15:02:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace: Added zillions of minor changes so that ACE will compile on
- the new aCC compiler for HPUX. Thanks to Gonzalo A. Diethelm
- <gonzo@ing.puc.cl> and Carlos O'Ryan <coryan@mat.puc.cl> for
- help with this.
-
- * ace/SOCK_Dgram_Mcast.cpp (subscribe): In addition to the
- SO_REUSEADDR option, Irix has a SO_REUSEPORT option that must
- also be set to allow multiple sockets to bind to the same
- multicast address. Thanks to Robert V. Head <rhead@vtcs20a> for
- reporting this.
-
- * ace: Added a slew of changes to support CHORUS. Thanks to
- Wei Chiang <chiang@tele.nokia.fi> for these changes.
-
- * ace/config-sunos4.*.h: Added #define ACE_HAS_UNION_WAIT based
- on the recommendation of Kumar Neelakantan
- <kneelaka@painewebber.com>.
-
- * ace/Log_Msg.cpp (log_hexdump): Replaced the use of ::sprintf()
- with ACE_OS::sprintf() so that the return value would be correct
- on SunOS 4.x!
-
- * ace/OS: Added ACE_HAS_CHARPTR_SPRINTF and ACE_SPRINTF_ADAPTER
- to ACE_OS::sprintf() for SunOS 4.x platforms. Thanks to Kumar
- Neelakantan <kneelaka@painewebber.com> for reporting this.
-
- * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator): If the bound was
- reached in the following loop, we should set this->num_ =
- this->handles_.max_handle_ + 1 rather than go into the 2nd loop.
- Thanks to Michael Newton <michaeln@in.ot.com.au> for reporting
- this.
-
- * ace/Handle_Set.cpp (ACE_Handle_Set_Iterator):
- ACE_Handle_Set_Iterator::ACE_Handle_Set_Iterator did not work
- properly if called with a zero handleset, as there was no bounds
- check on the first loop therein. Thanks to Michael Newton
- <michaeln@in.ot.com.au> for reporting this.
-
-Wed Mar 19 16:06:32 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h,README: added ACE_HAS_AIX_BROKEN_SOCKET_HEADER to wrap
- #include of sys/socket.h with #undef/#define of __cplusplus.
-
- * ace/config-aix-4.[12].x.h: added ACE_HAS_AIX_BROKEN_SOCKET_HEADER,
- ACE_HAS_PTHREAD_T, ACE_LACKS_TCP_H, and ACE_LACKS_SETSCHED.
- Removed ACE_HAS_SVR4_DYNAMIC_LINKING and ACE_HAS_THREAD_SELF.
-
- Thanks to Daniel Montalibet <daniel_montalibet@stortek.com> for
- both of the above modifications.
-
- * platform_{dgux4_epc,irix5.3_g++,linux*,m88k,osf1_3.2,sco*,
- sunos4_g++,sunos5_centerline*,sunos5_g++,sunos5_sunc++*,
- unixware_g++,vxworks5.2_g++}.GNU: split out CFLAGS and CCFLAGS.
- Also, removed -lstdc++/-lm from g++ versions, because we now set
- CXX to g++ instead of gcc, so those libraries are picked up.
-
- * include/makeinclude/platform_osf1_4.0{,_g++}.GNU:
- added -lrt to support ACE_Sched_Params. Thanks to
- Thilo Kielmann <kielmann@informatik.uni-siegen.de> for
- suggesting this. Also, split out CFLAGS and CCFLAGS.
-
- * ace/OS.h: removed SVR4_DYNAMIC_LINKING protection around
- #define of RTLD_LAZY because it's used in ace/Parse_Node.cpp.
- Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing
- this out.
-
- * ace/OS.i (thr_setcanceltype): added ACE_UNUSED_ARGS for STHREADS
- case. Thanks to Chuck Gehr <gehr@sweng.stortek.com> for
- providing this fix.
-
-Tue Mar 18 21:53:03 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/SOCK_Dgram_Bcast.cpp (mk_broadcast): Modified the
- SOCK_Dgram_Bcast class by adding a const char *host_name to the
- contructor, and open, and mk_broadcast methods. If the user
- passes in the host_name, then only the broadcast address of an
- interface that has a matching ip address with the host will be
- added to the if_list_. Otherwise, nothing changes. Thanks to
- Paul <phan@CCGATE.HAC.COM> for this feature.
-
-Tue Mar 18 13:20:59 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/ace.mdp: Reverted the change for DllMain as the entry point
- to ace.dll. This is causing problems in multi-threaded
- applications.
-
- * netsvcs/lib/Client_Logging_Handler.cpp: Added a check in fini()
- to make sure we have a valid handler. If the connect attempt
- failed, this->handler_ will be set to 0.
-
- * tests/Mem_Map_Test.cpp: Added code that removes all temporary
- files created by the test.
-
- * tests/Time_Service_Test.cpp: Made sure we remove the backing
- store file left behind by a aborted clerk process.
-
- * examples/Reactor/Ntalker/ntalker.cpp: The ntalker now uses
- ACE::register_stdin_handler to register the STDIN. This function
- allows for portability.
-
-Tue Mar 18 08:12:22 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Svc_Conf_y.cpp,Makefile: replaced "y.tab.c" string with
- "Svc_Conf_y.cpp" to ease debugging. Thanks to Luca Priorelli
- <lucapri@mbox.vol.it> for suggesting this.
-
- * ace/IOStream.cpp (close): replaced call to
- ACE_SOCK_Stream::close () with one to generic STREAM::close ().
- Thanks to Kumar Neelakantan <kneelaka@painewebber.com> for
- reporting this problem.
-
- * ace/OS.h,README,config-*.h: removed ACE_HAS_RTLD_LAZY_V, and
- replaced with #define of RTLD_LAZY macro only if it's not
- already defined (and if ACE_HAS_SVR4_DYNAMIC_LINKING is defined).
- Thanks to Chris Lahey <CLahey@cccis.com> for providing this fix.
-
- * ace/OS.i (thr_setcancelstate, thr_setcanceltype, thr_cancel):
- added ACE_UNUSED_ARG calls to avoid compiler warnings. Thanks
- to Chuck Gehr <gehr@sweng.stortek.com> for suggesting them.
-
- * ace/Local_Name_Space_T.h: moved #include of Local_Name_Space.h up
- because this file needs declaration of ACE_NS_String. There
- _shouldn't_ be a circular include problem because the #includes are
- protected. Thanks to Daniel Montalibet
- <daniel_montalibet@stortek.com> for reporting this problem and
- providing the fix.
-
- * ace/Local_Name_Space.h: removed #include of ace/Service_Config.h.
-
- * include/makeinclude/wrapper_macros.GNU: put -I. before
- -I$(WRAPPER_ROOT) instead of after.
-
- * tests/IOStream_test.cpp: added checks for receipt of proper values.
-
-Tue Mar 18 01:38:14 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/ace.mdp: Add DllMain as the entry point of ace.dll. This
- allows us to call WSAStartup when ace.dll is loaded in and
- WSACleanup when ace.dll is unloaded. People using ace as a
- static library are still out in the cold with respect of getting
- WSACleanup called before the process exits.
-
- I am not sure of two cases: (1) What happens when an application
- crashes and was not able to call WSACleanup and (2) if the
- application wants to continue using sockets when ace.dll is
- unloaded. I hope this solves more problems than it creates ;-)
-
-Tue Mar 18 01:38:14 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/Parse_Node.cpp: Added END_OF_LINE characters to some
- ACE_ERRORs.
-
- * netsvcs/{lib,servers}: Fixed the project files to produce and
- use the dll in the correct place (which is netsvcs/lib).
-
- * ace/Log_Record.cpp: Corrected format string for fprintf().
-
- * examples/Threads/test.mdp: Added context_switch_time.cpp to the
- project.
-
- All of the above bugs were reported by Luca Priorelli
- <lucapri@mbox.vol.it>. Thanks for the contribution.
-
-Mon Mar 17 12:59:56 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i}: added nanosleep (), currently supported only
- on POSIX platforms (if ACE_HAS_CLOCK_GETTIME is defined).
-
- * examples/Mem_Map/IO-tests/{IO_Test.cpp,test_io.cpp):
- LM_ERROR instead of ACE_ERROR, and fixed call to ACE::basename ().
-
- * ace/OS.cpp (sched_params): return -1 if not supported,
- instead of ENOTSUP.
-
- * ace/OS.cpp (fork): added ACE_UNUSED_ARG (program_name) for WIN32
- and VxWorks.
-
- * ace/Sched_Params.cpp (priority_min, priority_max, next_priority,
- previous_priority): not supported on MVS, via ACE_LACKS_SETSCHED.
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for figuring this
- out and providing the fix.
-
- * tests/Timer_Queue_Test.cpp (test_performance): changed type of
- local variable "i" to (signed) int to avoid signed/unsigned
- comparison, and eventual seg fault because a loop would never
- terminate.
-
-Sun Mar 16 11:31:46 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Timer_{List,Queue,Heap}.h: Defined copy constructors and
- assignment operators in the private part of the class so that
- users won't accidentally make mistakes.
-
-Sat Mar 15 21:44:45 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Timer_{Queue,List}.cpp (cancel): handle_close() should be
- called only once (especially when handle_close() implements
- "delete this;" ). Since it is possible that the EH will be
- registered more than once, I changed the code to do the
- following:
-
- if (number_of_cancellations == 1)
- // Call the close hook.
- curr->handler_->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::TIMER_MASK);
-
- Thanks to Hamutal Yanay <Hamutal_Yanay@mail.icomverse.com> for
- suggesting this.
-
- * examples/Mem_Map/IO-tests/test_io.cpp (run_tests): Removed all
- uses of ::perror and replaced them with calls to ACE_ERROR
- macros.
-
- * ace/Mem_Map.i (unmap): The ACE_Mem_Map::close method does not
- work properly if the value of file_mapping_ is equal to
- ACE_INVALID_HANDLE. In this case the method calls a useless
- close (-1). Therefore, I changed:
-
- if (this->file_mapping_ != this->handle_)
- ACE_OS::close (this->file_mapping_);
-
- in:
-
- if (this->file_mapping_ != this->handle_ &&
- this->file_mapping_ != ACE_INVALID_HANDLE)
- ACE_OS::close (this->file_mapping_);
-
- Thanks to Sandro Doro <alex@aureus.sublink.org> for reporting
- this.
-
-Thu Mar 13 18:21:15 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/ReactorEx.h: Change protection of methods/variables of
- ReactorEx from private to protected. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for suggesting this.
-
-Thu Mar 13 16:31:54 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (thr_getprio): Added missing ACE_NOTSUP_RETURN
- for the case of pthreads && !defined (ACE_LACKS_SETSCHED).
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for
- reporting this.
-
-Thu Mar 13 00:12:15 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/Local_Name_Space_T.cpp (dump): Added ACE_UNUSED_ARG around
- fake_this to stop the compiler from complaining about unused
- variables.
-
- * ace/Message_Block.cpp (ACE_Data_Block::size): Moved the copying
- of the old base before freeing it up. Thanks to Dieter Quehl
- (dietrich.quehl@med.siemens.de) for pointing this out.
-
- * ace/Local_Name_Space_T.cpp: Added code to the list methods such
- that structured exceptions are handled correctly. Thanks to
- Karlheinz Dorn (karlheinz.dorn@med.siemens.de) for reporting
- this.
-
-Wed Mar 12 21:31:51 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * examples/Reactor/Ntalker/ntalker.cpp: Made changes to the
- program which allows it to run under Win32.
-
- * ace/SOCK_Dgram_Mcast.cpp: Made changes to the setting of the
- interface address so that it works correctly under Win32.
- Thanks to Todd L. Montgomery (tmont@cs.wvu.edu), Anton van
- Straaten (anton@appsolutions.com), Ole O. Johnsen
- (Ole.Johnsen@gpi.telemax.no), Mike Flinn
- (mike.flinn@smtpgate.aws.waii.com), Steve Weismuller
- (spweismu@rsoc.rockwell.com) and others who helped out.
-
-Wed Mar 12 17:05:52 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/config-linux-lxpthreads.h: Added ACE_HAS_IP_MULTICAST.
-
-Wed Mar 12 16:07:07 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (gethrtime): Added support for VxWorks and
- other platforms that support ACE_HAS_CLOCK_GETTIME.
-
-Tue Mar 11 21:38:42 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/OS.i (open): Improved support for passing flags through to
- CreateFile ().
-
-Tue Mar 11 14:30:12 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks-ghs-1.8.h: added ACE_LACKS_SYS_NERR.
- Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
- reporting this.
-
- * ace/OS.{i,cpp} (uname, hostname): added VxWorks support.
- Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
- providing this. (Also, uninlined ACE_OS::uname on WIN32
- and VxWorks because it contains string literals.)
-
- * ace/High_Res_Timer.{i,cpp}: fixed interpretation of units:
- ACE_hrtime_t is in nanoseconds, so it should be divided by
- 1000000000 to get seconds. Fixed divs/mods to first divide
- by 1000, then div/mod. Thanks to Luca Priorelli
- <lucapri@mbox.vol.it> for identifying this problem.
-
- Also, removed some casts that are no longer necessary, and
- added some casts of ACE_hrtime_t values to longs to avoid
- compiler warnings. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for pointing this out.
-
- * ace/Reactor.cpp (unbind): cast "index" to int to avoid
- signed/unsigned comparison. Thanks to Matthias Kerkhoff
- <make@cs.tu-berlin.de> for pointing this out.
-
- * ace/ReactorEx.cpp (bind): changed type of "current_size" to
- size_t to avoid signed/unsigned comparison. Thanks to Matthias
- Kerkhoff <make@cs.tu-berlin.de> for pointing this out.
-
- * ace/Timer_Heap.cpp (ctor, grow_heap): cast unsigned value
- (i + 1) to int before negating to avoid compiler warning.
- Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing
- this out.
-
- * examples/Threads/context_switch_time.cpp (main): added
- ACE_SCOPE_PROCESS param to ACE_Sched_Params instances so
- that the test works on WIN32. Thanks to Luca Priorelli
- <lucapri@mbox.vol.it> for identifying this problem.
-
- * ace/Registry.{h,cpp},Registry_Name_Space.{h,cpp},Svc_Conf_Tokens.h,
- Svc_Conf_{l,y}.cpp,Timer_{Heap,List}.cpp,config-aix-4.2.x.h,
- config-dgux-4.11-epc.h,config-mvs.h,config-sco-5.0.0-fsu-pthread.h,
- config-sco-5.0.0-mit-pthread.h,config-sco-5.0.0-nothread.h:
- added CVS header (Id wrapped in $).
-
- * netsvcs/clients/Logger/indirect_logging.cpp (main): declare loop
- index as signed int to avoid signed/unsigned comparison.
-
-Tue Mar 11 07:34:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Timer_Queue_Test.cpp: Added some code to illustrate how
- the new handle_close() hook for ACE_Timer_{Heap,List} work.
-
- * ace/Timer_Heap.cpp (cancel): Modified the Timer_Heap and
- Timer_Queue so that it will call the handle_close() hook when
- Event_Handler's are cancelled. This is necessary to reclaim
- resources. Thanks to Hamutal Yanay
- <Hamutal_Yanay@mail.icomverse.com> for suggesting this.
-
- * ace/Event_Handler.h (signal): Added a TIMER_MASK, which is
- passed to handle_close() when a timer is cancelled.
-
- * ace/Log_Msg.cpp (log): Fixed a bug by setting LPTSTR lpMsgBuf =
- 0 on line 524. Thanks to Mark Wright <markw@odi.com.au> for
- reporting this.
-
-Sun Mar 10 13:06:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Mem_Map/IO-tests: Fixed a small bug in "IO_Test.cpp"
- file. In the "int Mmap1_Test::run_test" method I inserted an
- lseek to rewind the output file. With this correction the speed
- go up due to IO cache. Thanks to Sandro Doro
- <alex@aureus.sublink.org> for reporting this.
-
-Sun Mar 9 18:24:37 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * java/src/IOCntlMsg.java (IOCntlMsg): Added two new
- classes/files, namely IOCntlCmds and IOCntlMsg.
-
- * java/src/Task.java: Added accessors to get/set the flags of the
- Task.
-
-Sun Mar 9 13:06:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Reactor: Fixed an evil bug where the expression
-
- if (handle >= 0 || handle < this->max_handlep1_)
-
- should be
-
- if (handle >= 0 && handle < this->max_handlep1_)
-
- Thanks to Mark Wright <markw@odi.com.au> for reporting this.
-
-Sun Mar 9 13:06:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * apps/Gateway: Updated the Peer and Gateway applications so that
- they don't try to register ACE_STDIN with the Reactor on Win32.
-
- * apps/Gateway: Changed a bunch of calls to
- ACE_Reactor::remove_handler() so that it no longer tries to
- remove descriptor 0, but instead uses ACE_STDIN. Naturally,
- this doesn't work due to the way that Win32 implements select()
- but at least it compiles... Thanks to Elliot Lau
- <eeklau@post1.com> for reporting this.
-
- * apps/Gateway/Gateway/File_Parser: Changed the enumerated type
- ERROR to PARSE_ERROR to avoid a name clash with a symbol
- reserved by Win32 (barf). Thanks to Elliot Lau
- <eeklau@post1.com> for reporting this.
-
-Sat Mar 8 12:37:44 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Changed the implementation of ACE_Log_Msg so
- that all accesses to the lock_ are now through a Singleton.
- This makes it possible to define multiple instances of
- ACE_Log_Msg within the same thread. Thanks to Jeff Morgan
- <jeff@audioactive.com> for helping track this down.
-
- * Added support for SCO 5.0. Thanks to Auturo
- <mitosys@colomsat.net.co> for these patches.
-
-Thu Mar 06 13:24:04 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (gettimeofday): moved declaration of "result" so
- that it's not declared on VxWorks, where it's not needed;
- (stat): added cast of file arg to char * for VxWorks;
- (thr_getprio): added missing "#else" before ACE_NOTSUP_RETURN (-1).
- Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
- reporting these.
-
- * ace/OS.cpp (sched_param): with STHREADS, map ACE_SCOPE_THREAD
- to ACE_SCOPE_PROCESS'.
-
- * ace/Svc_Conf_l.cpp: commented out YY_BREAK after ace_yyterminate ()
- to avoid GHS compiler warning about unreachable statement.
- Thanks to Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for
- reporting this.
-
- * ace/ace.mak: removed Thread_Priority and renamed Scheduling_Params
- to Sched_Param.
-
- * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (handle_client):
- added "l" qualifier for sprintf of ACE_OS::getpid ().
-
- * tests/Priority_Task_Test.cpp,
- examples/Threads/{context_switch_time.cpp,Makefile}:
- adapted to new thread priority/ACE_Sched_Params.
-
-Wed Mar 5 14:33:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/UNIX_Addr.cpp: Enhanced the implementation of set() so
- that it works correctly on MVS, which has a different definition
- of struct sockaddr_un:
-
- struct sockaddr_un {
- unsigned char sun_len;
- unsigned char sun_family;
- char sun_path[108];
- };
-
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
- this.
-
-Wed Mar 05 14:47:14 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp},Makefile; also, renamed Scheduling_Params.* to
- Sched_Params.* and removed Thread_Priority.*:
-
- Major change in scheduling parameters interface:
- The key change is that there is no longer a special thread priority
- enum. Thread_Priority was changed to int, so applications can do
- whatever they want. The ACE_Sched_Params class has some static
- functions to help do this portably.
-
- Here are the changes from the ACE 4.1.3:
-
- 1) ACE_Thread_Priority: removed this class.
-
- It contained "priority class" and "thread priority".
- "Priority class" is platform-specific and doesn't
- need to be visible in ACE; it is subsumed by scheduling policy,
- see below. "Thread priority" is replaced by the global
- ACE_Sched_Priority typedef in ace/OS.h, see next change.
-
- 2) ace/OS.h: added ACE_Sched_Priority typedef (to int)
- and ACE_SCOPE_THREAD.
-
- 3) ace/OS.h: added scheduling policy #defines: ACE_SCHED_OTHER,
- ACE_SCHED_FIFO, and ACE_SCHED_RR. There's an ACE_Sched_Params::
- Policy typedef that can take one of these values.
-
- 4) ACE_Sched_Params: added priority_min (), priority_max (),
- next_priority (), and previous_priority () functions. All
- require an ACE_Sched_Params::Policy argument and take an
- optional scope argument (to support the distinct thread
- and process priorities on DEC UNIX).
-
- min_priority () and max_priority () have platform-specific
- and policy-specific values, and direction (the min value may
- be higher than the max value). The increment and decrement
- operations allow applications to iterate over them, etc.,
- without explicitly specifying the direction of the priority
- (0 for high or low priority).
-
- 5) The only way to apply ACE_Sched_Params is through
- ACE_OS::sched_params (const ACE_Sched_Params &).
- (This is not really a change, except for the name change from
- ACE_OS::set_sched_params ().
-
- It sets both policy and priority of current thread or
- process (depending on the scope in ACE_Sched_Params).
- Not all combinations of policy, priority, and scope are
- legal on all platforms. Unfortunately, I see no way around
- this, because the intersection of legal ranges
- on our supported platforms is empty. If an illegal request
- is made, ACE_OS::sched_params () sets errno to EINVAL and
- returns -1.
-
- 6) added ACE_OS::thr_setprio (const ACE_Sched_Priority prio)
- to set the current thread's priority, only.
-
- Many thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
- for his careful review of this class design, thoughtful comments,
- and assistance with implementation, especially for PTHREADS
- platforms.
-
-Wed Mar 5 14:36:59 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * SString.cpp: Fixed ACE*String initialization bugs. Thanks to
- jmorey@tbi.com (John Morey) for reporting this.
-
-Wed Mar 5 14:33:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Fixed a bug in gethrtime
-
- const ACE_Time_Value now = ACE_OS::gettimeofday (void);
-
- which should be
-
- const ACE_Time_Value now = ACE_OS::gettimeofday ();
-
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
- this.
-
-Tue Mar 4 16:37:26 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp (main): Make life
- easier by doing an unlink(rendezvous) before reopening the
- UNIX-domain socket. Thanks to Jeff Morgan
- <jeff@audioactive.com> for suggesting this.
-
-Sun Mar 02 19:58:00 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config*.h: removed #define of ACE_HAS_INLINED_OSCALLS
- because it's no longer needed in the config files: it's
- #defined in OS.h if needed.
-
-Sun Mar 2 17:14:29 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude: Updated all the platform-*g++.GNU files so
- that they no longer -D__ACE_INLINE__ (since this is handled in
- the the config-*g++.h files).
-
- * ace: Updated all the config-*g++.h files so that they now
- #define __ACE_INLINE__ rather than having this set in the
- platform_*.GNU file. This makes ACE easier to build and
- integrate with other software packages.
-
-Fri Feb 28 02:22:33 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_*: There were problems starting UDP broadcast servers
- (all using the same well known port number) multiple times on
- one machine (this is very useful test distributed applications
- on one single machine). Setting the SO_REUSEADDR option for the
- broadcast socket allows binding of a socket that is already in
- use and thus allows us to start more than one broadcast servers
- in parallel on one machine. Thanks to Dieter Quehl
- <dietrich.quehl@med.siemens.de> for this fix.
-
- Therefore, I patched ACE_SOCK_Dgram_Bcast, ACE_SOCK_Dgram and
- ACE_SOCK to include this feature. In addition, I also changed
- ACE_SOCK_Connector/ACE_SOCK_Acceptor to use this feature instead
- of calling setsockopt() there explicitly.
-
- * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp (main): Fixed up the
- use of ACE_OS::fork() here to use the new "named" version.
-
- * ace/OS.h: Added a clever new wrapper function called fork (const
- char *program_name), which calls fork() and then automatically
- calls ACE_LOG_MSG->sync (program_name) to sync up the program
- name. This eliminates a common source of error when forking
- children and using ACE_Log_Msg::log().
-
- * examples/IPC_SAP/SOCK_SAP/FD-un{client,server}.cpp: Updated the
- FD client and FD server programs so that it is now a concurrent
- server.
-
- * ace/config-mvs.h: Added #define ACE_LACKS_TCP_H for MVS. Thanks
- to Chuck Gehr for pointing this out.
-
- * ace/OS.h: Added a new #define ACE_LACKS_TCP_H that skips the
- inclusion of the netinet/tcp.h file if it isn't on the platform.
-
- * ace/OS.i (thr_cancel): Changed the line
-
- ACE_UNUSED_ARG (t_id);
-
- to
-
- ACE_UNUSED_ARG (thr_id);
-
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
- this.
-
- * ace/SString.cpp: Fixed up all the ACE_[CSW]String code so that
- always allocates a rep_ even in the null constructor. This
- saves us from having to handle odd special cases later on...
- Thanks to John Morey <JMOREY@tbi.com> for reporting this.
-
- * ace/Service_Repository.cpp (close): Changed the order in which
- services are destroyed when the Service Configurator is closed.
- Currently, services are destroyed in the order in which they are
- created according to the svc.conf file. Now, we shut them down
- in reverse order. This makes more sense when services are
- related, i.e., one service has to be started before another.
- Thanks to Karlheinz for this suggestion.
-
-Fri Feb 28 12:13:09 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: fixed definition of ACE_TIMER_SKEW. Thanks
- to Chuck Gehr <gehr@sweng.stortek.com> for pointing this out.
-
-Thu Feb 27 21:36:28 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{i,cpp} (gethrtime): support on all platforms by
- using ACE_OS::gettimeofday () if there is no native high
- resolution timer. Moved ACE_OS::getimeofday () definition
- toward top of OS.i so that it is always defined before
- being called. Finally, expanded gethrtime () support from
- linux to __GNUC__ with ACE_HAS_PENTIUM; it should work on
- platforms such as VxWorks with gcc on Pentiums.
-
- * ace/config-osf1-4.0-{,g++}.h: added ACE_HAS_CLOCK_GETTIME.
- Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
- for pointing this out.
-
-Thu Feb 27 17:06:12 1997 <harrison@samba.cs.wustl.edu>
-
- * ace/High_Res_Timer.h (get_env_global_scale_factor): This static
- method will set the global_scale_factor to the value in an
- environment variable (ACE_SCALE_FACTOR by default).
-
- * ace/High_Res_Timer.*: Changed all calculations to divide by
- scale_factor before doing / and %. This must be done before the
- mod for correctness.
-
- * ace/Profile_Timer.i (start): Changed start and stop methods to
- call ACE_High_Res_Timer::gettimeofday. This should allow
- greater timing accurracy.
-
- * ace/High_Res_Timer.h (global_scale_factor): Added a static
- global_scale_factor that allows applications to set one scale
- factor for all high res timers. This is important for platforms
- like intel where the scale factor will vary based on the
- processor clock speed.
-
- * ace/High_Res_Timer.i (gettimeofday): This static method calls
- ACE_OS::gethrtime and converts to an ACE_Time_Value based on the
- global_static_factor.
-
-Wed Feb 26 18:28:35 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ACE-install.sh: Added some fixes for the ACE-install.sh script.
- Thanks to Eugene R. Somdahl <gene@endo.com> for reporting these.
-
- * ace/Connector.cpp (handle_close): Added a test to see if the
- reactor_ is NULL and if it is, don't bother trying to use it to
- clean up. Thanks to Paul Han <phan@CCGATE.HAC.COM> for this
- suggestion.
-
-Tue Feb 25 21:19:57 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h,config-sunos*.h: default ACE_TIMER_SKEW to 0,
- and override to 10 ms in all Solaris config files.
-
- * ace/Svc_Conf_l.cpp,Makefile: #undef ACE_HAS_TERM_IOCTLS
- so that /usr/include/sys/termios.h won't be included; it
- #defines ECHO, and Svc_Conf_l.cpp has an ECHO symbol.
-
- * ace/ACE.cpp (sock_error): added ACE_UNUSED_ARG (error);.
-
- * ace/Timer_Queue.cpp (ctor): rearranged initializers to
- match declaration order.
-
-Tue Feb 25 19:57:54 1997 <harrison@samba.cs.wustl.edu>
-
- * ace/Timer_Queue.cpp (gettimeofday): Added gettimeofday accessors
- on the Timer_Queue. The default implementation calls
- ACE_OS::gettimeofday. Applications can specify, via pointers to
- functions, that a timer queue use an alternate gettimeofday
- implementation (e.g., a high resolution timer).
-
- * ace/Reactor.cpp (schedule_timer): The Reactor no longer calls
- ACE_OS::gettimeofday. Instead, it calls
- Timer_Queue::gettimeofday.
-
- * ace/ReactorEx.cpp (schedule_timer): The ReactorEx no longer calls
- ACE_OS::gettimeofday. Instead, it calls
- Timer_Queue::gettimeofday.
-
-Tue Feb 25 17:40:57 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Updated the 'p' option of the log() method to
- use the new ACE::sock_error() method for cases where
- FormatMessage() fails.
-
- * ace/ACE: Added a new sock_error() method to class ACE which
- returns the appropriate message for each WinSock error code.
- This makes up for an apparent oversight in Win32. Thanks to
- Michael R. MacFaden" <mrm@cisco.com> for this.
-
-Tue Feb 25 01:33:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Moved <netinet/tcp.h> outside of the VXWORKS #ifdef
- since it seems to be available on other platforms (e.g.,
- Solaris). If people find this not to be the case on all
- platforms please let me know and I'll #ifdef it. Thanks to
- Sumedh Mungee <sumedh@cs.wustl.edu> for reporting this.
-
-Tue Feb 25 16:20:29 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * examples/Connection/non_blocking/CPP-acceptor.cpp: Added a
- specific checl for timeouts. Also, changed
- ACE_PEER_ACCEPTOR_ADDR to ACE_PEER_STREAM_ADDR
-
- * examples/Connection/non_blocking/non-blocking.{mak,mdp}: New
- project files for Win32.
-
- * ace/Log_Msg.cpp: Minor changes.
-
-Mon Feb 24 17:16:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Msg.cpp (ACE_Log_Msg): Enable the thread-specific
- tracing flag by default. This ensures that tracing will work
- "out of the box."
-
- * ace/config-sunos5.[45]-g++.h: Added a #define for
- ACE_HAS_TERM_IOCTLS. Thanks to Joey Zhu <joey.zhu@wcom.com> for
- reporting this.
-
- * ace/Synch.cpp (acquire): Simplified the recursive mutex logic
- for acquire(). Thanks to Arthur J. Lewis" <hfdh99a@prodigy.com>
- for reporting this.
-
- * examples/Connection/non_blocking/CPP-acceptor.cpp (init): Added
- a #ifdef for ACE_WIN32 so that we don't register the signal
- handler for SIGPIPE since it's not supported on Win32. Thanks
- to Ivan Murphy <Ivan.Murphy@med.siemens.de> for reporting this
- problem.
-
- * examples/Connection/non_blocking: The SPIPE examples in
- (test_spipe_{acceptor,connector}.cpp) aren't ported to Win32
- yet. They currently don't work because ACE_SPIPE*'s can't be
- registered with the ACE_Reactor (which only works with sockets).
- I've #ifdef'd these examples so that they don't get compiled on
- Win32. Thanks to Ivan Murphy <Ivan.Murphy@med.siemens.de> for
- reporting this problem.
-
-Mon Feb 24 20:28:10 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: use signed __int64 for ACE_hrtime_t because VC++
- won't convert unsigned __int64 to double. Thanks to Irfan
- <irfan@cs.wustl.edu> for reporting this.
-
- * include/makeinclude/platform_{irix5.3_g++,linux*,m88k,
- osf1_4.0_g++,sco-nothread,sunos*g++,unixware_g++}.GNU:
- changed C++ compiler (CXX) from gcc to g++ so that libg++
- will be linked in. Thanks to James CE Johnson <jcej@lads.com>
- for suggesting this.
-
- * examples/IOStream/{client,server}/Makefile,tests/Makefile:
- removed -lg++, when gcc is the compiler, because it's no
- longer needed with g++ as the compiler.
-
-Sat Feb 22 23:03:45 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i: restored version 4.89 and 4.90 changes that
- were lost in version 4.91.
-
- * ace/OS.{i,cpp},config-linux*.h: added ACE_OS::gethrtime ()
- support for Linux on Pentiums.
-
- * ace/High_Res_Timer.*: changed scale_factor type from
- u_long to double so that it can be less than 1.
-
- * ace/Thread_Priority.cpp: "linux" instead of "LINUX".
-
- * tests/Priority_Task_Test.cpp (open): set this->priority_ because
- an assertion uses it. Also, use ACE_NORMAL_PRIORITY_CLASS so that
- root doesn't have to run the test on Solaris.
-
-Sat Feb 22 22:07:35 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * tests/Priority_Task_Test.cpp (open): Now use
- ACE_Thread_Priority while setting the priority of the new
- thread.
-
- * ace/Thread_Priority.cpp (convert_to_os_priority): Changed
- return type for this to 'int' from 'long' on Linux. Thanks
- to James CE Johnson <jjohnson@lads.com> for pointing this
- out!
-
- * ace/OS.i (thr_cancel): Corrected erroneous macro argument.
- Thanks to James CE Johnson <jjohnson@lads.com> for pointing
- this out!
-
-Sat Feb 22 17:00:59 1997 <harrison@samba.cs.wustl.edu>
-
- * ace/OS.i (gethrtime): Added support for intel's RDTSC
- instruction for pentium architectures.
-
-Sat Feb 22 10:57:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Stream.cpp (open): Make sure that if we allocate the Tasks
- in the Stream head and the Stream tail that we set the M_DELETE
- flag so that the close() method will clean up the memory.
- Thanks to David Levine and Purify for noticing this problem.
-
-Fri Feb 21 08:06:41 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Yikes, it looks like the Solaris and the POSIX version
- of sigwait() are different! The Solaris version returns the
- signal number, whereas the POSIX version returns 0 on success,
- errno on failure, and sets a parameter with the signal on
- success. I've fixed the ACE_OS C++ wrapper so that the right
- thing happens, i.e., errno is always set to the error (if
- sigwait() returns -1) and the signum is always returned as the
- argument and the return value on success ... Thanks to Harry
- Gunnarsson <hg@carmenta.se> for reporting this.
-
-Fri Feb 21 11:01:22 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Thread_Priority.cpp: fixed return type of
- convert_to_os_priority () for Linux. Thanks to
- James CE Johnson <jcej@lads.com> for pointing this out.
-
- * examples/Shared_Malloc/test_malloc.cpp,
- examples/System_V_IPC/SV_Message_Queues/{T,}MQ_Server.cpp (main):
- added ACE_UNUSED_ARG (sa);.
-
-Fri Feb 21 04:12:31 1997 <irfan@TWOSTEP>
-
- * ace/OS.h: Added ACE_SEH_FINALLY.
-
- * ace/ReactorEx.h: Added ACE_ReactorEx_Test as a friend class. I
- think we should have one such friend class for all classes in
- ACE.
-
- * examples/Reactor/ReactorEx/test_exceptions.cpp: New test which
- checks how ReactorEx deals with structured exceptions thrown by
- user code
-
- * ace/ReactorEx.cpp (safe_dispatch): Added protection against
- structured exceptions caused by user code when dispatching
- handles
-
-Thu Feb 20 17:32:54 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * apps/Gateway: Added a new -v flag to the peerd and gatewayd
- applications so that they will print out the strings that are
- passed to them. This makes it easier to debug and see what's
- happening.
-
-Wed Feb 19 19:39:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp (recv): Removed
- the VERBOSE #ifdefs since they weren't used and were causing
- compile errors. Thanks to Bert Craytor
- <Bert_Craytor@peoplesoft.com> for reporting this.
-
-Wed Feb 19 00:39:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/ASX/Event_Server: Updated the README file a bit to
- clarify some loose ends. The documentation now explains
- precisely how to start up the transceivers correctly. Thanks to
- Patty Genuald <genualdp@agcs.com> for suggesting this.
-
- * include/makeinclude: Removed the default symlink for
- platform_macros.GNU since it is "Solaris-biased" ;-). Thanks to
- Amos Shapira <amos@dsi.co.il> for reporting this.
-
-Wed Feb 19 14:41:18 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Reactor.cpp: Modified to use timer_queue_->gettimeofday().
-
- * ace/Proactor.cpp: Modified to use timer_queue_->gettimeofday().
-
- * ace/ReactorEx.cpp: Modified to use
- timer_queue_->gettimeofday(). Also had to modify the
- ReactorEx_Notify mechanism to use the ReactorEx's timer queue to
- call gettimeofday.
-
- * ace/Timer_Queue.h: Added a gettimeofday method. This allows
- applications to replace the timer mechanism used by the
- Reactors. The default implementation returns
- ACE_OS::gettimeofday. However, a real-time application can
- inherit from Timer_Queue and override gettimeofday to return a
- value from a high resolution timer.
-
- * STL/bool.h: Changed the defines for type bool. First, bool is no
- longer defined for WIN32 since yvals.h typedefs it already.
- Also, I moved the defines out the namespace. I'm not sure if
- that's the right thing to do.
-
-Tue Feb 18 16:41:02 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * include/makeinclude: Added minor enhancements to rules.local.GNU
- and wrapper_macros.GNU so that it works with MVS. Thanks to
- Chuck Gehr <gehr@sweng.stortek.com> for this.
-
- * include/makeinclude: Added a new platform_mvs.GNU file that
- supports builds on MVS! Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for this.
-
- * tests/TSS_Test.cpp (worker): To get TSS_Test.cpp to compile on
- MVS we changed line 69 from:
-
- ACE_thread_key_t key = 0;
-
- to:
-
- ACE_thread_key_t key = ACE_OS::NULL_key;
-
- and line 122 from:
-
- key = 0;
-
- to:
-
- key = ACE_OS::NULL_key;
-
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
- this.
-
- * ace/Reactor.cpp (dispatch): Fixed the dispatching logic so that
- we bail out as soon as we discover that our state has changed.
- Thus, we'll recompute the fd_sets used for select().
-
-Tue Feb 18 19:02:53 1997 <irfan@cha-cha.cs.wustl.edu>
-
- * ace/ReactorEx:
-
- (a) Made wakeup_all_threads() public. Thanks to Hamutal Yanay
- <Hamutal_Yanay@mail.icomverse.com> for suggesting this.
-
- (b) Change closed_for_business_ to open_for_business_. Also made
- sure that open and close can potentially be called multiple
- times from multiple threads.
-
- (c) Changed unbind and unbind_all such that they iterate through
- all the handles.
-
- (d) Added a check to see if the handle has been scheduled for
- deletion before dispatching it.
-
-Tue Feb 18 21:24:57 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/IOStream.h,README: replaced ACE_WIN32 conditional with
- ACE_LACKS_IOSTREAM_FX.
-
- * ace/config-{mvs,win*}.h: added #define ACE_LACKS_IOSTREAM_FX.
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for pointing
- out the need for this support for MVS.
-
- * examples/Reactor/Misc/test_demuxing.cpp: removed unused
- variable "done".
-
- * examples/Reactor/Misc/test_signals_1.cpp (main),
- examples/Reactor/Ntalker/ntalker.cpp (main):
- added ACE_UNUSED_ARG (sig);.
-
-Tue Feb 18 17:15:24 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/ace.mdp, ace/mak: Modified release configuration to build
- acer.dll.
-
-Tue Feb 18 11:43:04 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: removed destructor because it's not declared
- and it's empty.
-
- * ace/OS.i (thr_setprio): added another case (that is NOTSUP)
- for platforms with Pthreads and with LACK_SETSCHED. Thanks to
- Chuck Gehr <gehr@sweng.stortek.com> for pointing this out.
-
- * tests/Reactor_Notify_Test.cpp (main): added shutdown flag so
- that normal termination reaches ACE_END_TEST.
-
- * tests/Reactors_Test.cpp (worker): changed "timeout" message to
- "Reactor shutdown" because that indicates normal termination,
- and won't fool the one-button test.
-
- * examples/Mem_Map/IO-tests/test_io.cpp (main): added
- ACE_UNUSED_ARG (sa);.
-
- * examples/Misc/test_trace.cpp (main): added ACE_UNUSED_ARG
- for sig1 and sig2.
-
-Tue Feb 18 03:50:10 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/ReactorEx:
-
- (a) Added a closed_for_business_ flag so that handle_events()
- cannot be called after the ReactorEx has been closed down.
-
- (b) Transfer of ownership of the ReactorEx to a new owner has
- changed. The transfer will not complete until all threads
- are ready for it (just like the handle set).
- ReactorEx->update_state() now looks out for changes in
- ownership.
-
- * examples/Reactor/ReactorEx/test_MT.cpp:
-
- (a) The test now terminates and number of iterations can be
- specified on the command line.
-
- (b) Graceful shutdown of ReactorEx is now exercised in the
- test. This is a change for the earlier infinite loop. This
- also shows how to gracefully close ReactorEx which is being
- shared by multiple threads.
-
- (c) Timers were added to the test.
-
- * ace/config{win32}: Added flag ACE_LACKS_LINEBUFFERED_STREAMBUF.
-
-Mon Feb 17 22:37:35 1997 Tim H. Harrison <harrison@lambada.cs.wustl.edu>
-
- * ace/Log_Msg.h (ACE_RETURN): Modified all ACE_RETURN macros to
- use ACE_OS::last_error instead of errno. This makes these more
- portable to Win32.
-
- * ace/Log_Msg.cpp (log): Modified Win32 version to use
- FormatMessage if errnum is greater than sys_nerr.
-
- * ace/OS.i (last_error): Modified Win32 version to return
- GetLastError if errno == 0.
-
-Mon Feb 17 18:32:29 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.h: Protected the #ifdef for CLOCK_REALTIME so that it
- won't conflict with an existing macro in AIX. Thanks to Chris
- Lahey <CLahey@cccis.com> for this.
-
- * ace/Local_Name_Space_T.h: Added Local_Name_Space.h to
- Local_Name_Space_T.h so that templates will work correctly on
- AIX. Thanks to Chris Lahey <CLahey@cccis.com> for this.
-
- * tests: Added a new test, Reactor_Notify_Test.cpp, which tests
- out the new max_notify_iterations() method on the Reactor.
-
- * ace/Reactor: Finished rewriting and testing the new dispatching
- logic of the Reactor. The new implementation guards against
- pathological cases where ACE_Event_Handler::handle_*() methods
- remove registered ACE_Event_Handler objects whose handles are
- pending in the dispatch_set. Previously there was no good way
- to guard against this. Now, it should be handled automatically.
-
- * ace: Added many minor fixes to remove warnings with the SGI C++
- compiler. Thanks to Gonzalo Diethelm <gonzo@ing.puc.cl> for
- suggesting this.
-
- * include/makeinclude/platform_irix6.2_sgic++.GNU: Turned on all
- the warnings for the SGI C++ compiler. Thanks to Gonzalo
- Diethelm <gonzo@ing.puc.cl> for suggesting this.
-
-Mon Feb 17 20:59:47 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/IOStream.h: added null ipfx (), etc., methods for ACE_WIN32
- because its iostream class doesn't have them.
-
- * ace/OS.h: added #include of <netinet/tcp.h> on VxWorks.
-
- * ace/Pipe.cpp (open): enabled TCP_NODELAY on VxWorks now that
- OS.h #includes <netinet/tcp.h>.
-
- * ace/ReactorEx.h: made ACE_ReactorEx_Handler_Repository destructor
- virtual because the class has other virtual functions.
-
- * tests/IOStream_Test.cpp: removed ACE_WIN32 #ifndef, and
- removed q_char bool conversion operator because it shouldn't
- be needed.
-
- * examples/Reactor/Misc/pingpong.cpp (handle_input): cast buf_len
- to ssize_t to avoid signed/unsigned comparison.
-
- * examples/Service_Configurator/IPC-tests/client/\
- remote_dgram_client_test.cpp (main): cast mmap.size () to
- ssize_t to avoid signed/unsigned comparison.
-
-Mon Feb 17 09:25:08 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/config-linux-lxpthreads.h: Bumped the Linux kernel version
- number assigned to the symbol LINUX. Also added conditional
- defines for PTHREAD_{MAX,MIN}_PRIORITY when using Xavier Leroy's
- LinuxThreads.
-
- * ace/Thread_Priority.cpp: Added convert_to_os_priority() for Linux.
-
-Mon Feb 17 03:15:48 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * tests/SOCK_Test.cpp (server): Changed recv_n() to recv().
-
- * tests/tests.{mak,mdp}: Added two new tests: IOStream and
- Reactor_Notify.
-
- * ace/Reactor: Removed all special checks for setting
- ACE_Reactor::max_notify_iterations_ on WIN32 to be 1. This was
- made possible after we figured out that the errno was being
- reset after the recv() call in handle_input(). This allows
- ACE_Reactor_Notify::handle_input() to serve upto
- ACE_Reactor::max_notify_iterations_ notifications in one shot
- rather than just 1 on WIN32. This should speed up the Reactor on
- WIN32 platforms.
-
-Sun Feb 16 12:23:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Reactor.cpp: Totally rewrote the ACE_Reactor's dispatching
- mechanism so that it now keeps track of whether the state of the
- wait_set_ has changed during a dispatch (i.e., whenever
- register_handler_i() or remove_handler_i() is called). If the
- wait_set_ state *has* changed, then we bail out and rerun
- select() in order to get the latest changes.
-
- * ace/Reactor.cpp: Changed the implementation of the
- ACE_Reactor_Notify class so that (1) it short-circuits a trip
- through the ACE_Reactor::notify_handle() method (after all, it's
- just going to call its own handle_input() method back) and (2)
- the ACE_Reactor_Notify::handle_input() method now returns a
- count of the number of handlers that it dispatched.
-
- * ace/Log_Msg.h: Added a (%P|%t) so that we now print out the
- process id and thread number for failed ACE_ASSERT() calls.
-
- * tests: Removed the unnecessary template specializations of
- ACE_Atomic_Op<ACE_Thread_Mutex, int> since this is already done
- in libACE.
-
- * ace/Reactor.cpp: Removed the #ifdef preventing the enabling of
- non-blocking mode for the recv() side of the Reactor's
- notification pipe (socket) for Win32. I believe that with the
- new max_notify_iterations scheme we should be all set.
-
- * ace/ReactorEx.cpp: Added an identical API for bounding the
- max_notify_iterations() for ReactorEx.
-
- * ace/Reactor.cpp: Enhanced the Reactor's notify() mechanism so
- that it is now possible to set the max_notify_iterations(),
- which limits the number of times that the
- ACE_Reactor_Notify::handle_input() method will iterate and
- dispatch the ACE_Event_Handlers that are passed in via the
- notify pipe before breaking out of its recv() loop. This is
- necessary to keep from starving out other Event_Handlers.
- Thanks to Rod Skinner <rods@in.ot.com.au> for pointing out the
- need for this.
-
- * ace/Reactor.cpp: Fixed a bug in the WIN32
- ACE_Reactor_Notify::handle_input() logic. We were calling
- requeue_position(0) when we should have been calling renew().
-
-Sat Feb 15 11:46:39 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.cpp: It appears that VxWorks doesn't support fcntl().
- However, it does seem to support ioctl(). Therefore, that's how
- we'll set the descriptors into non-blocking mode. Thanks to
- Dave Mayerhoefer <mayerhoefer@svappl36.mdc.com> for reporting this.
-
- * ace/SOCK_Stream.h: Corrected the documentation for
- ACE_SOCK_Stream::recv_n (void *buf, size_t len, int flags, const
- ACE_Time_Value *timeout). Thanks to Paul Roman
- <proman@npac.syr.edu> for reporting this.
-
- * ace/SOCK_Stream.i (recv_n): Fixed a minor bug in the
- SOCK_Stream.i line 38:
-
- ACE_TRACE ("ACE_SOCK_Stream::send_n");
-
- should be
-
- ACE_TRACE ("ACE_SOCK_Stream::recv_n");
-
- Thanks to Paul Roman <proman@npac.syr.edu> for reporting this.
-
-Fri Feb 14 00:40:14 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/TTY_IO.cpp (control): Moved the drop out timer value from
- the ACE struct to the WinNT struct. Thanks to Brad Flood
- <BFLOOD@tcs.lmco.com> for this fix.
-
-Thu Feb 13 21:24:17 1997 <irfan@cha-cha.cs.wustl.edu>
-
- * ace/OS.i (event_wait): Fixed the missing check for success.
-
- * ace/Synch: Fixed problems with multiple removal of
- resources. Thanks to Bert (Bcraytor@aol.com) for pointing this
- out.
-
- * examples/Threads/test.{mdp,mak}: Reorganized project so that it
- is easier to use.
-
- * examples/Threads: Small changes to make tests run faster.
-
-Thu Feb 13 01:49:38 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/OS.i (stat): Added stat() to ACE_OS.
-
- * apps/jaws: The ACE web server has now been ported to Win32.
-
- * ace/ReactorEx: Add a new version of remove_handler().
-
- * examples/Reactor/ReactorEx/test_MT.cpp: Fixed stuff so that only
- <concurrent_threads> are activated.
-
-Wed Feb 12 22:58:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ReactorEx: Made minor changes to the ReactorEx.
-
- * examples/Reactor/ReactorEx/test_MT.cpp: Updated Irfan's new
- ReactorEx test to use ACE_Tasks.
-
-Wed Feb 12 00:08:42 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/ReactorEx: Finished a complete rewrite of
- ReactorEx. The new version allows multiple threads of
- control to wait simultaneously in
- ::WaitForMultipleObjects(). This was difficult because the
- set of ACE_HANDLEs used in ReactorEx->handle_events() is
- shared between all threads. We devised a clever protocol
- that ensures all changes to the handle set are
- serialized. This serialization was achieved by using
- multiple (auto and manual) events and mutexes and by taking
- advantage of the "waitAll" semantics of
- WaitForMultipleObjects().
-
- Concept of "owner" thread is introduced in ReactorEx. We
- need to keep track of the "owner" because we don't want
- multiple threads to try to expire timers. Therefore the
- "owner" thread is the only one allowed to expire
- timers. Also, the owner thread is the only thread which
- waits on the internal notify handle (which is used to
- dispatch explicit calls to
- ACE_ReactorEx::notify(). Initially, the creator thread of
- ReactorEx becomes the "owner" thread. Ownership can later be
- transferred among threads, just as with the standard
- ACE_Reactor.
-
- We also updated the Handler Repository since it now
- keeps track of <handle, event_handler> tuples to be added
- and deleted from the current handle set at the appropriate
- time (i.e., when all threads are out of
- WaitForMultipleObjects() and have completed all necessary
- dispatching). The Handler_Repository implements the update
- protocol that is used to serialize changes to its internal
- state.
-
- Two slots were added to the <size> parameter in the
- constructor and open methods of ReactorEx that will store
- handles used for internal management. Therefore, users can add
- upto MAXIMUM_WAIT_OBJECTS - 2 handles into ReactorEx. On
- current WinNT platforms (e.g., 3.51 and 4.0)
- MAXIMUM_WAIT_OBJECTS is 64.
-
- Note that the interface to ReactorEx did not change in this
- process. Your existing code should work without changes.
- Moreover, we've optimized the implementation so that if only
- 1 thread calls ACE_ReactorEx::handle_events() the code is
- very efficient. Moreover, you can dynamically add or remove
- threads without having to register them with the ReactorEx.
-
- * examples/Reactor/ReactorEx/test_MT.cpp: This application tests
- multiple threads simultaneously calling
- ReactorEx->handle_events(). It also shows how different threads
- can update the state of ReactorEx.
-
-Wed Feb 12 00:08:42 1997 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu>
-
- * ace/Synch: Added a remove() call to ~ACE_Thread_Mutex so that it
- will be removed (and resources cleaned up) automatically when an
- ACE_Thread_Mutex object goes out of scope. Thanks to Jay
- Denkberg <jay_denkberg@mail.icomverse.com> for reporting this.
-
- * ace: Added a new config file (config-irix6.2-sgic++-nothreads.h)
- that works for non-Pthread versions of SGI 6.2. Thanks to Fred
- LaBar <flabar@fallschurch.esys.com> for this.
-
- * ace/XtReactor: Fixed a bunch of minor bugs that crept into the
- ACE_XtReactor. Thanks to Fred LaBar
- <flabar@fallschurch.esys.com> for reporting this.
-
- * ace/OS.i (thr_getprio): Fixed a typo in the #ifdefs so that we
- return ACE_NOTSUP_RETURN(-1) if threading isn't enabled. Thanks
- to Fred LaBar <flabar@fallschurch.esys.com> for reporting this.
-
-Tue Feb 11 11:26:03 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i},config-vxworks*.h,README: added ACE_HAS_CLOCK_GETTIME,
- and only support ACE_OS::clock_gettime if that's defined.
- It can be supported on Solaris 2.5, but -lposix4 is then required.
-
- * ace/Thread_Priority.*: added increment () and decrement ()
- operations.
-
- * include/makeinclude/platform_sunos5_sunc++_4.1.GNU:
- added -pta back to avoid link problems with template classes
- that have virtual functions that are all inline, if inlining
- is disabled. Though we don't see the problem, other 4.1 users do.
- Thanks to mscallinan@CCGATE.HAC.COM for reporting this.
-
- * examples/Logger/simple-server/Logging_Handler.cpp (handle_input):
- cast "len" to ssize_t to prevent mixed signed/unsigned comparison.
-
- * examples/Logger/simple-server/server_loggerd.cpp (main):
- added ACE_UNUSED_ARG (sa);.
-
- * examples/Reactor/Misc/notification.cpp (Thread_Handler ctor):
- changed type of n_threads argument from int to size_t to avoid
- signed/unsigned comparison.
-
-Mon Feb 10 15:27:02 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Timer_Queue: Added a virtual destructor so that subclasses
- deleted via ACE_Timer_Queue *'s will call the right destructor.
- Thanks to Stuart Powell <stuartp@in.ot.com.au> for reporting
- this.
-
- * ace/Timer_Heap.cpp: Added support for automatically growing
- ACE_Timer_Heaps. This allows heaps to grow automatically as new
- ACE_Event_Handlers are added dynamically. Thanks to Stuart
- Powell <stuartp@in.ot.com.au> for this enhancement.
-
- * ace/Memory_Pool: Added support that allows flags to be passed in
- to the MMAP_Memory_Pool. This can be used to set the
- appropriate type of backing store semantics (e.g., MAP_PRIVATE
- and MAP_SHARED). Thanks to Fred LaBar
- <flabar@fallschurch.esys.com> for providing this.
-
-Sun Feb 9 11:56:37 1997 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu>
-
- * ace/Map_Manager.cpp (bind_i): A recent change to Map_Manager
- broke the Connector since errno was getting set to ENOENT rather
- than EWOULDBLOCK. Thanks to Mark Rabotnikov
- <mark@usp.elscintcorp.co.il> for finding this.
-
-Sun Feb 09 21:44:34 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.{h,cpp}: added static u_long is_prime ().
-
- * ace/{OS.cpp,Thread_Priority.cpp}: added comment about thread
- priorities only being tested for 1003.1C version of Pthreads.
- Thanks to Thilo Kielmann <kielmann@informatik.uni-siegen.de>
- for suggesting this.
-
- * ace/OS.{h,i}: added ACE_OS::clock_gettime (). It allows
- applications to get high-resolution time on POSIX systems.
-
- * ace/Future.cpp (dump): cast ref_count_ to an int because
- g++ doesn't figure it out (it's an ACE_Atomic_Op<ACE_Thread_Mutex,
- int>, which does have an int conversion operator).
-
- * ace/Timer_List.cpp (constructor): added initializer for
- timer_id_ to prevent unitialized memory read report from Purify.
-
- * tests/IOStream_Test.cpp,Makefile: added IOStream_Test,
- complements of James CE Johnson <jcej@lads.com>. Very cool!
-
- * tests/Future_Test.cpp: replaced call to ::sin ()
- with one to ACE::is_prime () to remove dependency on libm.
-
- * examples/IPC_SAP/UPIPE_SAP/ex1.cpp (peer1, peer2): removed
- unused variables c_addr and serv_addr: they were replaced by
- a global.
-
- * examples/Threads/future{1,2}.cpp: replaced call to ::sin ()
- with one to ACE::is_prime () to remove dependency on libm.
-
- * netsvcs/clients/Naming/Dump_Restore/createfile.cpp: removed
- #include of math.h, it wasn't needed.
-
-Sat Feb 08 15:19:50 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ReactorEx.h: commented out ACE_ReactorEx_Notify::message_queue_
- declaration if not ACE_WIN32 because Sun C++ chokes on it.
-
- * examples/IPC_SAP/{FILE,SPIPE}_SAP/client.cpp: declare "len" as
- ssize_t to avoid signed/unsigned comparison.
-
-Fri Feb 7 01:13:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (select): Simplified Chris' fixes for the weird
- Linux select() semantics.
-
- * ace/OS: Added a new accessor method called waiters() in
- ACE_cond_t that returns the number of waiters on the condition
- variable. Thanks to Karlheinz for suggesting this.
-
- * ace/OS: Changed all the ACE_cont_t, ACE_rwlock_t, etc. so that
- their fields are private, but made class ACE_OS a friend.
- Applications should not be mucking with these fields since they
- may change.
-
- * ace/OS.h: Fixed a minor typo where friend class ACE_rwlock_t
- should be friend class ACE_OS. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for reporting this.
-
- * ace/Log_Msg.cpp: Added a destructor to ACE_Log_Msg and changed
- ACE_TSS_cleanup so that it calls delete (ACE_Log_Msg *) ptr.
- Thanks to Per Anderson <Per.Andersson@hfera.ericsson.se> for
- reporting this.
-
- * tests/Map_Manager_Test.cpp: Create a file Map_Manager_Test_Key.h
- and move the class Key into the include file. Include this *.h
- file in Map_Manager_Test.cpp. This is needed for template
- generation on AIX. Thanks to Chris Lahey <CLahey@cccis.com> for
- pointing this out.
-
-Fri Feb 7 17:29:40 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.cpp (set_sched_params): added support for POSIX
- threads. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for figuring it out and
- for providing the code.
-
- * tests/Naming_Test.cpp (test_find): Changed final delete[] to
- not try to delete a static buffer. :-(
-
- * tests/SOCK_Test.cpp (server): Added assertion test for
- modified select timeval.
-
-Fri Feb 07 13:56:24 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/{OS.cpp,Thread_Priority.cpp}: added ACE_Thread_Priority
- support for Digital Unix. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for figuring the priorities
- and priority classes out and for providing the code.
-
- * ace/High_Res_Timer.{h,cpp},config-linux*.h,README:
- use struct timespec instead of timespec_t, because not all
- platforms have the timespec_t typedef. Thanks to
- Marius Kjeldahl <marius@funcom.com> for reporting this on Linux
- and Chris Lahey <CLahey@cccis.com> for reporting it on AIX.
-
- * ace/IOStream.h: use "ssize_t send (...)", etc., instead of exact
- function prototypes.
-
- * examples/IPC_SAP/TLI_SAP/db-server.cpp: declare struct member as
- const char * instead of const char [] because it's not static and
- the struct doesn't have constructors.
-
- * examples/Reactor/Multicast/server.cpp (Server_Events ctor):
- reordered initializers to match declaration order.
-
-Fri Feb 07 05:08:51 1997 <irfan@cha-cha.cs.wustl.edu>
-
- * ace/Synch.cpp (dump): Fixed access error.
-
- * ace/OS.h: Fixed ACE_rwlock_t friend declaration.
-
- * ace/OS.i: Moved ACE_cond_t::waiters() such that it is now
- visiable to NT. Also fixed ACE_OS::cond_timed_wait by returning
- the correct return value on a TIMEOUT. Also fixed typo in
- ACE_OS::sema_wait.
-
-Thu Feb 6 20:25:13 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.i (select): Adapted ACE_OS::select methods for use on
- platforms (such as Linux) that allow select(2) to modify its
- struct timeval arg. New behavior is triggered by the define
- ACE_HAS_NONCONST_SELECT_TIMEVAL. Thanks to Jorn Jensen
- <jornj@funcom.com> for reporting this!
-
-Thu Feb 06 09:48:43 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos-sun*.h,README: added
- ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR.
-
- * ace/IOStream.{h,cpp}: support
- ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR
- so that this builds with SunC++.
-
- * examples/IOStream/client/iostream_client.cpp:
- reordered args and fixed argv indexes.
-
- * examples/IOStream/server/iostream_server.cpp:
- use ACE_DEFAULT_SERVER_PORT for default port.
-
- * tests/Naming_Test.cpp (randomize): changed type of "size" arg to
- size_t to avoid compiler warnings about signed/unsigned comparison.
-
-Thu Feb 06 09:40:47 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/config-linux*.h: added typedef of timespec_t.
-
-Wed Feb 5 01:45:03 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Changed the Win32 implementation of all methods that call
- WaitForMultipleObjects() so that errno is set to
- WAIT_ABANDONED if the mutex is abandoned. This makes it
- possible for users to understand why ACE_OS methods that use
- synchronization operations fail. Thanks to Ivan Murphy
- <Ivan.Murphy@med.siemens.de> for reporting this problem.
-
- * ace/IOStream.cpp (ACE_Streambuf): Moved the const initialization
- from the header file to the constructor since this is the only
- portable way to do this. Thanks to Michael Maxie
- <maxie@acm.org> for reporting this.
-
- * ace/OS.i: Updated the call to thr_setprio() for pthreads so that
- it first determines the existing scheduling parameters and then
- updates the priority. Thanks to Thilo Kielmann
- <kielmann@informatik.uni-siegen.de> for help with this.
-
- * ace/config-osf1-4.0*.h: Updated ACE_NEEDS_HUGE_THREAD_STACKSIZE
- to be 1 mega to minimize porting surprises. Thanks to Thilo
- Kielmann <kielmann@informatik.uni-siegen.de> for help with this.
-
- * tests/Naming_Test.cpp: Cleaned up a few minor things related to
- int i = 0 vs. size_t i = 0.
-
- * ace/SOCK_Dgram.cpp: Added a new macro called
- ACE_HAS_SOCKADDR_MSG_NAME, which is used on platforms (e.g.,
- DG/UX) that require a cast to (struct sockaddr *) for the
- msg_name field of struct msghdr.
-
-Wed Feb 05 10:45:41 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/IOStream.h: replaced __*manip with expanded types, because
- Sun C++ doesn't have those typedefs; and added complete prototypes
- for send, recv, send_n, and recv_n.
-
- * ace/IOStream.cpp: fixed "#define ACE_IOSTREAM_C" to keep g++ sane.
-
- * ace/Hash_Map_Manager.{h,cpp},Map_Manager.{h,cpp}: replaced
- DEFAULT_SIZE with ACE_DEFAULT_MAP_SIZE so that Naming_Test runs
- on SunC++ 4.1.
-
- * ace/High_Res_Timer.*: added optional scale factor.
-
- * examples/IOStream/{client,server}/Makefile: addd -g++ if building
- with gcc.
-
- * tests/Naming_Test.cpp: moved declaration of "i" out of for loop
- because it is used after the loop.
-
- * examples/ASX/UPIPE_Event_server/{Consumer,Supplier}_Router.cpp
- (open): return 1 if init () succeeds. There's a commented-out
- call to activate the objects that would (should?) return a value.
-
- * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp (main): declare n
- as ssize_t instead of size_t to avoid compiler warning about
- signed/unsigned comparison.
-
-Tue Feb 4 19:06:52 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Signal.cpp: Fixed all the ACE_Sig_Handler[s] methods so that
- they now use ACE_Guard, rather than ACE_TSS_Guard, *unless* they
- are actually performing callbacks to user-code. Not only is
- this faster, but it also avoids thread-specific storage key
- leaks on platforms like Solaris!
-
- * ace/OS.cpp (thr_keyfree): Added a new #ifdef for
- ACE_HAS_THR_KEYDELETE, which is defined for UNIXWARE. This
- fixes a nasty problem with leaking thread-specific keys. Thanks
- to Nigel Owen <Nigel@voicelink.co.nz> for reporting this.
-
- * ace/Message_Block.cpp: Added a #include for
- "ace/Service_Config.h".
-
- * ace/Malloc.i: Fixed a few warnings by removing the names of
- unused parameters.
-
- * ace: Added many minor changes to ACE so that it will work on
- DG/UX. Thanks to Michael Maxie <maxie@acm.org> for all these.
-
- * ace/LSOCK_Stream.cpp: Applied the same fix as to LSOCK.cpp.
-
- * ace/LSOCK.cpp: Removed the cast of 0 to (char *) for msg_name
- since some platforms use (struct sockaddr *). By omitting the
- cast the compiler will figure it out correctly. Thanks to
- Michael Maxie <maxie@acm.org> for this.
-
- * ace/IOStream: Added a new template adapter for creating an
- iostream-like object using an ACE IPC Stream for the actual I/O.
- Thanks to James CE Johnson <jcej@lads.com> for this.
-
- * examples/Misc/test_iostreams.cpp: Added a test that illustrates
- how the new ACE_iostreams mechanism works. Thanks to James CE
- Johnson <jcej@lads.com> for this.
-
- * ace/Message_Block: Updated the ACE_Message_Block implementation
- to use ACE_Service_Config::alloc() if the user doesn't supply a
- customize version. This also means that we never delete the
- allocator_strategy_, so we can remove this flag and reduce the
- amount of storage by 4 bytes. Thanks to Irfan for noticing that
- we can do this.
-
- * ace/platform_dgux4_epc.h: Added a new platform config file
- for DG/UX. Thanks to Michael Maxie <maxie@acm.org> for
- this.
-
- * ace/config-dgux-4.11-epc.h: Added a new config file for DG/UX.
- Thanks to Michael Maxie <maxie@acm.org> for this.
-
-Tue Feb 04 18:26:01 1997 <irfan@cha-cha.cs.wustl.edu>
-
- * ace/Service_Config.cpp (alloc): The implementation now creates a
- ACE_New_Allocator rather than a ACE_Allocator_Adaptor. If
- you still want the old behavior, simply provide your own
- custom allocator singleton for ACE_Service_Config.
-
- * ace/OS.i (mktemp): Added the missing ACE_INLINE directive.
-
- * ace/OS.h: ACE_HAS_INLINED_OSCALLS is now automatically defined
- when __ACE_INLINE__ is defined. This avoids mysterious linking
- problems that occur otherwise.
-
- * ace/Malloc: Added a virtual destructor to ACE_Allocator. Also
- added a new class ACE_New_Allocator which is a sub-class of
- ACE_Allocator. This class uses the new/delete operators to
- allocate and free up memory. Please note that the only methods
- that are supported are malloc() and free(). All other
- methods are no-ops. If you require more functionality, please use:
- ACE_Allocator_Adapter <ACE_Malloc <ACE_LOCAL_MEMORY_POOL,
- MUTEX>> This will allow you to use the added functionality of
- bind/find/etc. while using the new/delete operators.
-
-Mon Feb 3 15:35:24 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-aix-*.h: Added a (char *) cast to
- ACE_DEFAULT_BASE_ADDR. Thanks to John Cosby
- <John.D.Cosby@cpmx.saic.com> for reporting this.
-
- * ace/OS.cpp: Added a new set() method that sets the Time_Value
- from a double. Thanks to Brad Flood for this suggestion.
-
- * ace/OS: Changed ACE_OS::flock_t to ACE_OS::ace_flock_t to avoid
- a name clash on DG/UX. Thanks to Michael Maxie <maxie@acm.org>
- for reporting this.
-
-Tue Feb 4 03:02:52 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * tests/Naming_Test.cpp: Added timing and made debug print outs
- optional. Also added randomization of the test data.
-
- * ace/OS.h: Fixed prototype for gethrtime ()
-
-Mon Feb 03 21:00:56 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: define ACE_SCOPE_PROCESS and ACE_SCOPE_THREAD
- even if ACE_HAS_THREADS is not defined. Thanks to
- Michael Maxie <maxie@acm.org> for pointing this out.
-
- * examples/Threads/{process_mutex.cpp,process_semaphore.cpp,
- task_three.cpp,thread_manager.cpp,thread_specific.cpp} (main):
- added ACE_UNUSED_ARG (sa);.
-
- * examples/Threads/reader_writer.cpp: fixed declaration of
- "shared_data" to be "static volatile" instead of "volatile
- static", and removed unused variable "n".
-
- * examples/Threads/thread_pool.cpp: removed unused variable "result".
-
-Sun Feb 02 21:24:02 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: changed hrtime_t to ACE_hrtime_t.
-
- * ace/{config-win*.h,README}: added #define ACE_HAS_PENTIUM to
- enable gethrtime () support.
-
- * ace/High_Res_Time.{h,i,cpp}: removed platform-specific #ifdef's,
- instead added "unsupported ()" static member function; changed
- changed signature of elapsed_time to take time reference as
- argument instead of return value; added elapsed_time
- (ACE_Time_Value &) and elapsed_time_incr (ACE_Time_Value &).
-
- * examples/Thread/context_switch.cpp: use ACE_High_Res_Timer
- instead of the old Timer adapter.
-
- * ace/config-aix-4.1.x.h: fixed typo: #defind ACE_HAS_LONGLONG_T.
-
- * ace/config-aix-4.2.x.h: added #define ACE_HAS_LONGLONG_T.
-
- * ace/Thread_Priority.{h,cpp}: moved #include of OS.h from .cpp
- to .h file.
-
-Sun Feb 02 10:30:29 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Local_Name_Space.cpp: removed ACE_Map_Manager, ACE_Map_Iterator,
- and ACE_Map_Entry: they don't appear to be used and, without
- including their headers, this file won't compile.
-
- * ace/Hash_Map_Manager.cpp (Hash_Map_Manager (ACE_Allocator *)):
- reordered initializers to match declaration order.
-
-Sat Feb 1 15:11:28 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude/platform_aix4.2.GNU (LD): Removed the -qnoro
- flag since it is no longer needed. Thanks to Rob Jordan
- <jordan@hursley.ibm.com> for reporting this.
-
-Sat Feb 1 03:25:21 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/SString.cpp: Added two methods to the wide string
- implementation for high-performance. Even though these methods
- are somewhat ugly and not the "OO" way of doing things,
- performance was at stake here.
-
- * ace/Registry_Name_Space.cpp (resolve): Fixed the implementation
- by correctly figuring out the size of the value in the
- Registry. This allows us to dynamically allocated the correct
- amount of memory.
-
- * ace/Registry: Fixed the constant MAX_CONTEXT_NAME_SIZE to be the
- maximum path length.
-
- * ace/Naming_Context.cpp: Fixed various memory leaks.
-
- * ace/Local_Name_Space_T.h: Replaced the simple-minded Map_Manager
- with the new (improved) Hash_Map_Manager.
-
- * ace/Local_Name_Space.cpp: Added new methods operator!= and hash
- required by the map.
-
- * ace/Hash_Map_Manager.cpp (ACE_Hash_Map_Manager): Added an extra
- constructor.
-
- * tests/Naming_Test.cpp: Removed memory leaks.
-
-Fri Jan 31 19:39:48 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (ctor): reordered initializers
- to match declaration order.
-
- * tests/Time_Value_Test.cpp: cast double argument to long
- because there no longer is a constructor that takes a double.
-
- * ace/Hash_Map_Manager.{h,cpp}: removed #include of
- ace/Hash_Map_Manager.i because it doesn't exist.
- Protected .cpp file against multiple includes. Moved
- #include of "ace/Malloc.h" from .h to .cpp file.
-
- * ace/Map_Manager.cpp (current_size, total_size): cast -1 to
- size_t to avoid warning about signed-to-unsigned conversion.
-
- * ace/OS.h: moved hrtime_t typedef for ACE_WIN32 so it doesn't
- get defined twice.
-
- * ace/OS.i (getservbyname): one last ACE_HAS_NONCONST_GETBY change:
- missed "lproto" to "proto".
-
- * bin/create_ace_build: added checks for existing symlinks, so
- now the script can be re-run safely at any time on a build
- tree to update it.
-
-Fri Jan 31 02:16:30 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-aix-*.h: Made the default value for
- ACE_DEFAULT_BASE_ADDR 0x80000000 to work around restrictions
- with AIX. Thanks to Rob Jordan <jordan@hursley.ibm.com> for
- this.
-
- * examples/Map_Manager: Added a new example of the
- Hash_Map_Manager.
-
- * tests/Map_Manager: Integrated the Hash_Map_Manager into the
- Map_Manager test and greatly improved the test (e.g., by adding
- timing).
-
- * ace: Added a new implementation of the Map_Manager called
- Hash_Map_Manager. This, of course, uses hashing rather than
- linear search. The result should be a much faster
- implementation for many types of applications.
-
-Thu Jan 30 13:55:08 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Map_Manager: Changed the return type of total_size() and
- current_size() to size_t.
-
- * ace/OS: Had to remove the ACE_Time_Value (double) constructor
- since it caused ambiguities with ACE_Time_Value (long). Thanks
- to Per Andersson for figuring this out.
-
- * include/makeinclude/platform_linux_lxpthread.GNU (CXX): Added
- -D_REENTRANT to make things work correctly in MT programs.
- Thanks to Marius for this fix.
-
- * ace/OS.h: Added several extra constructors for ACE_Time_Value so
- that it won't cause problems with the new ACE_Time_Value
- (double) constructor.
-
- * ace/Log_Record.cpp (ACE_Log_Record): Added an "L" to the 0
- initial value used for time_stamp_. Thanks to Marius for
- reporting this.
-
- * ace: Added the new config-aix-4.2.x.h file, which supports the
- AIX4.2 platform. Thanks to Rob Jordan <jordan@hursley.ibm.com>
- for this.
-
- * include/makeinclude/platform_aix4.2.GNU: Added support for the
- new AIX4.2 platform. Thanks to Rob Jordan
- <jordan@hursley.ibm.com> for this.
-
- * ace/OS.h: It's now possible to override ACE_DEFAULT_BASE_ADDR in
- a config.h file. This is important for platforms that need to
- put shared memory segments at particular address ranges. Thanks
- to Rob Jordan <jordan@hursley.ibm.com> for suggesting this.
-
-Thu Jan 30 16:01:37 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/{config-aix-4.1.x.h,README}: added ACE_HAS_AIX_HIRES_TIMER,
- see change to gettimeofday in OS.i below; and ACE_HAS_LONGLONG_T.
-
- * ace/OS.i (gettimeofday, gethrtime): use read_real_time () if
- ACE_HAS_AIX_HIRES_TIMER. Thanks to Bob Olson
- <olson@mcs.anl.gov> for this suggestion.
-
- * ace/OS.h: define hrtime_t as long long if ACE_HAS_AIX_HIRES_TIMER.
-
- * ace/OS.{i,cpp}: uninlined ACE_OS::gethostbyname (),
- and ACE_OS::inet_ntoa () on VxWorks, because they have
- static char arrays.
-
- * ace/OS.i (gethostbyaddr, getservbyname, gethostbyaddr,
- gethostbyname, getservbyname_r): with ACE_HAS_NONCONST_GETBY,
- instead of copying the const argument, just cast it to (char *).
- Thanks to Michael Maxie <maxie@acm.org> for pointing out the
- problem with the nonstatic char arrays with sizes determined at
- runtime.
-
- * ace/High_Res_Timer.*: added ACE_HAS_AIX_HIRES_TIMER support.
- Also, renamed get_time () to elapsed_microseconds ().
-
- * examples/Threads/{Timer.h,context_switch_time.cpp}:
- ACE_High_Res_Timer::elapsed_microseconds () instead of
- ACE_High_Res_Timer::get_time ().
-
- * bin/create_ace_build: added this script: it creates an ACE build
- tree in directory "build/<build name>" below the current
- directory, which must be a ACE "top level" directory (such as
- $WRAPPER_ROOT). The build tree directory structure mirrors that
- of the ACE top level directory structure, except that instead of
- containing any plain files, it contains only symlinks to the files
- in the ACE top level structure.
-
-Thu Jan 30 06:57:50 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Thread_Priority.cpp (convert_to_os_priority): changed
- switch (priority_class) to switch (priority_class_).
- Thanks to Chris Lahey <CLahey@cccis.com> for pointing this out.
- Also, return -1 on other than Solaris, Win32, and VxWorks.
-
-Wed Jan 29 22:05:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Naming_Test.cpp: Added the prefix "test_" to the bind(),
- find(), rebind(), and unbind() functions. This avoids name
- clashes with the bind() call from the socket API. Thanks to
- Marius for this info.
-
- * ace/OS.cpp (ACE_Time_Value): Added a new constructor that makes
- it possible to construct an ACE_Time_Value from a double.
- Thanks to Brad Flood <BFLOOD@tcs.lmco.com> for this.
-
- * ace/OS.i (thr_join): If ACE_HAS_THREADS is defined, but none of
- the threading APIs match (e.g., AIX) then we'll return
- ACE_NOTSUP_RETURN(-1). Thanks to Chris Lahey for help with
- this.
-
- * include/makeinclude/platform_aix.GNU: Made some changes to the
- type of dynamic linker and libraries used by AIX 4.1. Thanks to
- Chris Lahey for help with this.
-
- * ace/config-aix-4.1.x.h: Changed from BSD 4.3 to 4.4. Thanks
- to Chris Lahey for help with this.
-
-Wed Jan 29 09:03:48 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: moved ACE_id_t and ACE_pri_t typedefs out of the
- ACE_HAS_THREADS section.
-
- * ace/OS.cpp: fixed ACE_OS::set_sched_params on Win32 and VxWorks.
-
- * ace/Scheduling_Parameters.*, ace/Thread_Priority.*: updated
- comments.
-
- * examples/Threads/{context_switch_time.cpp,Timer.h,Makefile}:
- added context switch timing test. Currently only works on
- Suns because that's the only platform for which ACE has a
- high-resolution timer.
-
- * Makefile: added chmod of VERSION file in TIMESTAMP macro.
-
-Wed Jan 29 00:59:12 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude/platform_linux_lxpthread.GNU (CXX): Removed
- the -D_MIT_POSIX_PTHREADS symbol since we're using Xavier's
- threads instead. Thanks to Marius Kjeldahl <marius@funcom.com,
- mariusk@sn.no> for reporting this.
-
- * ace/config-linux-lxpthreads.h: Removed the _MIT_POSIX_PTHREADS
- symbol since we're using Xavier's threads instead. Thanks to
- Marius Kjeldahl <marius@funcom.com, mariusk@sn.no> for reporting
- this.
-
-Tue Jan 28 23:32:58 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SString: Added hash() methods to each ACE String class so
- that we can use this with the new ACE_Hash_Set implementation of
- ACE_Map_Manager.
-
- * ace/ACE.h (ACE): Added a UNICODE version of hash_pjw() so that
- we can use it to hash ACE_WString.
-
- * ace/OS.i (thr_setprio): Fixed a typo that was left over from a
- previous change. Thanks to Fred LaBar
- <flabar@fallschurch.esys.com> for reporting this.
-
- * apps/Gateway/Gateway/{proxy_config,consumer_config}: Added
- comments to these config files so they are easier to understand.
- Thanks to Chuck Gehr for motivating this.
-
- * apps/Gateway/Peer/Peer.cpp: Changed the name from connection_id_
- to proxy_id_, which is more accurate.
-
- * apps/Gateway/Peer/Peer.cpp: Added a destructor to Peer_Handler
- so that it can clean itself up properly when shutdown with a
- signal. This fixes a nasty bug.
-
- * ace/config-win32-msvc4.x.h (ACE_HAS_MFC): By default, ACE now
- enables ACE_HAS_MFC. This makes it possible to use
- AfxBeginThread() with the ACE_THR_AFX flag.
-
- * ace/OS.cpp: Fixed a typo in the call to ::AfxBeginThread()
- function. Thanks to Karlheinz for reporting this.
-
- * apps/Gateway/Peer/Peer.cpp: Removed all uses of the Map_Manager
- from the Peer. There's only ever one connection from a Gateway
- per-Peer, so what was this doing here anyway?! It was causing
- problems due to multiple deletions, so removing it improves
- robustness of the tests.
-
- * ace/OS.i: Commented out the "extern char **_sys_siglist"
- definition since this was conflicting with the definition in
- Solaris. If some platforms needs this, we'll need to add a
- specific #ifdef.
-
-Tue Jan 28 21:57:45 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp}: added ACE_OS::set_sched_params (). It permits
- platform-independent setting of thread priorities and
- priority classes. It is currently supported on Solaris,
- Win32, and VxWorks.
-
- * ace/Scheduling_Parameters.{h,i,cpp},
- ace/Thread_Priority.{h,i,cpp}, ace/Makefile:
- Added these two classes to support ACE_OS::set_sched_params ().
-
-Tue Jan 28 12:42:39 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/ace.mdp: Added the "Using MFC in a Shared DLL" flags.
-
- * tests/test_config.h (ACE_INIT_LOG): Made this UNICODE safe.
-
- * tests/Pipe_Test.cpp (main): Added an iteration count to control
- the number of children created by the main process.
-
- * ace/Memory_Pool.cpp (init_acquire): cast this->minimum_bytes_ to
- size_t to avoid compiler warning if size_t is unsigned.
-
- * ace/OS.h: Added strncat to the OS class.
-
-Tue Jan 28 09:13:00 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.cpp (ACE::ldfind),
- ace/Local_Name_Space_T.cpp,
- ace/Local_Token.cpp (ACE_TPQ_Entry::ACE_TPQ_Entry),
- ace/Log_Msg.cpp (ACE_Log_Msg::msg, ACE_Log_Msg::find),
- Memory_Pool.cpp (ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool),
- ace/Naming_Context.cpp (ACE_Naming_Context::open),
- ace/Parse_Node.cpp (ACE_Location_Node::open_handle),
- ace/Registry.cpp (ACE_Predefined_Naming_Contexts::is_local_host,
- ACE_Registry::Binding_Iterator::Object_Iteration::next_n,
- ACE_Registry::Binding_Iterator::Context_Iteration::next_n),
- tests/UPIPE_SAP_Test.cpp:
- changed "sizeof char" to "sizeof (char)" because g++ and Sun C++
- (properly) choked on it.
-
- * ace/Local_Name_Space_T.cpp (create_manager_i):
- -- ::strncat () instead of ACE_OS::strcat ()
- -- "lock_name_for_backing_store" instead of
- "lock_name_for_local_name_space"
-
- * ace/Naming_Context.cpp (both constructors): reordered
- initializers to match declaration order.
-
- * include/makeinclude/platform_sunos5_g++.GNU: removed
- -fno-strict-prototypes because it's not needed with SunOS 5.5.1.
-
-Mon Jan 27 21:33:00 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * tests/Naming_Test.cpp (main): Made modifications to the test to
- make it more dynamic. Also made it work with UNICODE and
- ACE_Naming_Context.
-
- * ace/Local_Name_Space_T.cpp (create_manager_i): Added a better
- naming scheme for the locks.
-
- * ace: Changed the calculations of string lengths such that the
- size of the character type is carefully considered.
-
- The following were affected:
-
- ACE.cpp (ACE::ldfind)
- Local_Token.cpp (ACE_TPQ_Entry::ACE_TPQ_Entry)
- Log_Msg.cpp (ACE_Log_Msg::msg, ACE_Log_Msg::find)
- Memory_Pool.cpp (ACE_MMAP_Memory_Pool::ACE_MMAP_Memory_Pool)
- Naming_Context.cpp (ACE_Naming_Context::open)
- Parse_Node.cpp (ACE_Location_Node::open_handle)
- Registry.cpp (ACE_Predefined_Naming_Contexts::is_local_host,
- ACE_Registry::Binding_Iterator::Object_Iteration::next_n,
- ACE_Registry::Binding_Iterator::Context_Iteration::next_n)
-
- * ace/OS.h: Added UNICODE support for ACE_DEFAULT_LOCALNAME.
-
- * ace/Proactor.cpp: Redid "lost" changes to add UNICODE support to:
-
- /* Proactor */
- ACE_Overlapped_File::ACE_Overlapped_File
- ACE_Overlapped_File::open
-
- * ace/Registry_Name_Space.h: Changed the order of #include and
- #define as that the correct set of MACROS are defined for the
- include files.
-
- * tests/MM_Shared_Memory_Test.cpp: Added UNICODE support.
-
-Mon Jan 27 09:16:03 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU,
- include/makeinclude/platform_sunos5_sunc++_orbix.GNU,
- ace/config-sunos5.5-sunc++-4.x-orbix.h
- ace/config-sunos5.5-sunc++-4.x.h:
- disabled exception handling by commenting out ACE_HAS_EXCEPTIONS
- in the config files and adding -noex to the platform files,
- because it causes trouble, at least on MP machines.
-
-Mon Jan 27 14:54:31 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Memory_Pool.h: Added code to ACE_MMAP_Memory_Pool_Options to
- take a minimum_bytes parameter. This is needed to prevent mmap
- remapping when a large segment is requested. Thanks to Fred
- LaBar <flabar@fallschurch.esys.com> for this.
-
-Sun Jan 26 13:39:13 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Changed the typo sis_siglist to sys_siglist. Also,
- changed the logic from #if !defined (ACE_HAS_SYS_SIGLIST) to
- #if defined (ACE_HAS_SYS_SIGLIST) since this makes more sense...
- Thanks to Nanbor Wang <nw1@cs.wustl.edu> for noticing this.
-
-Sat Jan 25 20:30:23 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5-sunc++-4.1.h: commented out ACE_HAS_EXCEPTIONS
- #define because -noex is required with it, and that causes core
- dump during thread exit on multiprocessor UltraSparcs.
-
- * include/makeinclude/platform_sunos5_sunc++_4.1.GNU: added -noex
- back because of core dump during thread exit on
- multiprocessor UltraSparcs.
-
- * examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp,
- examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp (control):
- added "default" case to switch statement to eliminate compiler
- warnings about enumeration values not being handled in switch.
-
- * examples/ASX/UPIPE_Event_Server/event_server.cpp (consumer):
- removed unused variable "iter".
-
-Sat Jan 25 12:50:24 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Updated all the cond_timedwait() and cond_wait()
- methods so that they decrement the count of waiters by one even
- when errors occur. Thanks to Irfan for finding this.
-
- * ace/Map_Manager.cpp: Updated the ACE_Map_Iterator code so that
- it no longer crashes if the Map has been closed. Thanks to
- Slawomir Kuzniar <kuzniar@Bear.COM> for reporting this.
-
-Sat Jan 25 11:34:56 1997 Irfan Pyarali <irfan@flamenco.cs.wustl.edu>
-
- * ace/SOCK_Connector.cpp (complete): Added a sleep of zero seconds
- which allows non-blocking connects to work properly on NT.
-
- * ace/config-winnt-4.0-msvc4.x.h and config-win32-msvc4.x.h:
- Added ACE_HAS_BROKEN_NON_BLOCKING_CONNECTS.
-
- * ace/OS.i: Moved out all code for Time_Value from #if region. It
- is common to all.
-
- * ace/Reactor: Added helper routines to stop the VC++ compiler from
- bitching about destructors in exception handling code.
-
- * ace/ace.{mak,mdp}: Removed Time_Value.cpp from project.
-
- * tests/tests.{mak,mdp}: Corrected the creation of SOCK_Test and
- Message_Blob_Test executables and temporary files.
-
-Fri Jan 24 09:01:50 1997 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Connection/misc/Connection_Handler.cpp: added
- specialization of ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
- so that subproject will build with g++ without optimization.
-
- * apps/Gateway/Gateway/Proxy_Handler.cpp: added specializations
- of ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_SYNCH> and
- ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
- so that subproject will build with g++ without optimization.
-
- * tests/Reactor_Exceptions_Test.cpp (main): added ACE_UNUSED_ARG
- for argc and argv when ACE_HAS_EXCEPTIONS is not defined.
-
- * performance-tests/Misc/test_mutex.cpp: made destructor of
- Thread_Mutex_Derived virtual because the class has other virtual
- functions.
-
-Thu Jan 23 11:51:45 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5-g++.h: commented out ACE_HAS_EXCEPTIONS because
- -fhandle-exceptions is broken in g++ 2.7.2 (and is required in order
- to use exception handling); also, added ACE_HAS_INLINED_OSCALLS, if
- __ACE_INLINE__ is #defined.
-
- * ace/config-sunos5.5-sunc++-4.1.h: added ACE_HAS_INLINED_OSCALLS,
- if __ACE_INLINE__ is #defined.
-
-Wed Jan 22 15:04:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Moved the ACE_TIMER_SKEW macro to below the #inclusion
- of config.h and updated it so that it can be overridden in the
- config.h file if necessary. Thanks to Bob Olson
- <olson@mcs.anl.gov> for motivating this.
-
- * ace/OS.cpp: Fixed the implementation of
- ACE_Thread_ID::operator== so that it works correctly when thread
- ids and thread handles aren't ints. Thanks to Chuck Gehr for
- reporting this.
-
- * ace/OS.i (thr_getprio): Moved a stray #else into the right
- place. Thanks to Chuck Gehr for reporting this.
-
- * ace/OS.i (sema_post): this->count_++ should have been
- s->count_++. Thanks to Chuck Gehr for reporting this.
-
- * ace/Synch_T.cpp: Added an extern "C" definition for
- ACE_TSS_C_cleanup(). Thanks to Chuck Gehr for reporting this.
-
- * ace: Added a new #define called ACE_LACKS_SYS_NERR to the
- config files for MVS and VxWorks. This is used in OS.cpp
- as follows:
-
- #if defined (ACE_LACKS_SYS_NERR)
- int sys_nerr = ERRMAX + 1;
- #endif /* ACE_LACKS_SYS_NERR */
-
- Thanks to Chuck Gehr for reporting this.
-
- * Removed all #inclusions of "ace/Time_Value.h." This file
- no longer contains anything besides a #include "ace/OS.h"
- and is only kept around due to backwards compatibility.
-
- * ace: Moved the contents of Time_Value.h into OS.h to reduce the
- confusion that arises from the #inclusion of "config.h" in
- Time_Value.h. Also merged the contents of Time_Value.{i,cpp}
- into OS.{i,cpp}. Thanks to the MDA guys for motivating this.
-
- * tests/Reactor_Exceptions_Test.cpp: Added a new test that
- exercises the Reactor with C++ exceptions. Thanks to Luca for
- the test.
-
- * ace/Reactor.cpp (handle_events): Added Win32 structured
- exception handling support to the ACE_Reactor::handle_events()
- method so that it correctly releases the token lock when Win32
- SEH occur in callback routines. Thanks to Luca for reporting
- this problem.
-
- * ace: Added a new macro called ACE_HAS_EXCEPTIONS, which
- indicates that the compiler supports C++ exception handling.
-
- * include/makeinclude/platform_sunos5_sunc++*.GNU: Commented out
- the -noex flag for now. Hopefully, things will work correctly
- now.
-
- * ace/Thread_Manager.cpp (exit): Removed the final acquire() on
- ace_mon, which is no longer necessary since the Guard classes
- now keep track of whether they are "owned". Thanks to Karlheinz
- and Detlef for this fix.
-
-Wed Jan 22 09:05:31 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile,VERSION: modified top-level Makefile (and VERSION)
- to add a timestamp to the VERSION file if creating a release
- from the /project/adaptive/ACE_wrappers directory. If it
- causes problems, this will disable it:
- % make TIMESTAMP= release.
-
- * ace/Local_Tokens.cpp (dump): replaced "ACE_TSS<ACE_TPQ_Entry>"
- with "ACE_TPQ_ENTRY" so that ACE_NO_TSS_TOKENS is supported.
-
- * ace/Synch.h: fixed typo in comment header for ACE_Thread_Semaphore
-
- * ace/config-vxworks-ghs-1.8.h,config-vxworks5.2-g++.h,
- config-unixware-2.01-g++.h:
- protect ACE_HAS_INLINED_OSCALLS #defined with
- #if defined (__ACE_INLINE__).
-
- * apps/Gateway/Gateway/Event_Channel.cpp (open): added
- ACE_UNUSED_ARG (sig);.
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.h:
- declared a friend of class Peer_Router_Context because it
- has a private destructor, to eliminate compiler warning
- about not having any friends.
-
- * examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp
- (open): added return 0 in "true" branch of if statement so
- that the function always returns a value.
-
-Tue Jan 21 09:19:44 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Reader_Writer_Test.cpp (reader): commented out unused
- variable "n"; also, commented out unused function
- print_usage_and_die.
-
- * tests/TSS_Test.cpp, Thread_Manager_Test.cpp (main): added
- ACE_UNUSED_ARG (sa);.
-
- * tests/Thread_Pool_Test.cpp (open): added return 0 at end.
-
-Tue Jan 21 11:00:12 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * apps/Gateway/Gateway/Gateway.cpp (parse_args): There was a small
- bug in parse_args (latest beta), it mixed proxy and consumer
- conf files. Thanks to Per Andersson
- <Per.Andersson@hfera.ericsson.se> for reporting this.
-
-Mon Jan 20 13:29:28 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i, ace/Task.h, and ace/Thread_Manager.h: changed a few
- occurrences of NULL to 0 (for other than Win32 platforms),
- primarily to avoid compiler warnings on VxWorks if ACE.h isn't
- #included before stddef.h.
-
- * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp
- (handle_input): replaced %d format with %hu for u_short arg.
-
- * netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp
- (run_writer): initialized variable "t" to avoid compiler warning.
-
- * examples/Connection/misc/Connection_Handler.cpp (handle_timeout):
- added ACE_UNUSED_ARG (tv); also, added explicit int return type
- to definition of Connection_Handler::close (u_long).
-
- * examples/Threads/task_four.cpp (Invoker_Task::svc):
- moved declaration of "task" out of for loop because it is
- also used after the for loop.
-
- * netsvcs/lib/Name_Handler.cpp, Server_Logging_Handler.cpp,
- TS_Clerk_Handler.cpp, TS_Server_Handler.cpp, Token_Handler.cpp:
- added ACE_UNUSED_ARG (sig);.
-
-Sun Jan 19 11:10:49 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU,
- platform_sunos5_sunc++_4.1.GNU:
- added comment about compiler warnings with +w option.
- Also, added +w to platform_sunos5_sunc++_4.1.GNU. With the
- other changes in this ChangeLog entry, there no longer should
- be significant warnings from Sun C++ when building ACE.
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp
- (Peer_Handler::put): added ACE_UNUSED_ARG (tv);.
-
- * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp (main),
- netsvcs/clients/Tokens/invariant/invariant.cpp (main):
- commented out argc and argv.
-
- * examples/Mem_Map/file-reverse/file-reverse.cpp (main):
- removed unused variable "cp".
-
- * netsvcs/clients/Tokens/manual/manual.cpp (handle_input,
- handle_exception): added ACE_UNUSED_ARG (fd); and
- (create_proxy): added return statement at end: even
- though it should never be reached, it eliminates a
- compiler warning.
-
- * examples/OS/Process/process.cpp,
- examples/Reactor/Misc/test_reactors.cpp,
- netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp,
- netsvcs/clients/Tokens/mutex/test_mutex.cpp,
- netsvcs/clients/Tokens/rw_lock/rw_locks.cpp,
- performance-tests/TTCP/ORBeline/ttcp_i.cpp,
- performance-tests/TTCP/Orbix/ttcp_i.cpp (main):
- return 0 instead of 42.
-
-Sat Jan 18 10:54:25 1997 Prashant Jain <pjain@merengue.cs.wustl.edu>
-
- * java/src/README: Updated the README file to indicate how
- documentation for Java ACE cab be automatically generated.
-
-Fri Jan 17 11:47:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Added an equivalent set of
- ACE_LSOCK_{STREAM,ACCEPTOR,CONNECTOR} macros to complement the
- ones for ACE_SOCK_*. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> for suggesting this.
-
- * ace/OS.cpp (ACE_Thread_Adapter): Added a new feature that allows
- logging features to be inherited by threads. It works with
- those OSs (e.g., Win32) that use ACE_Thread_Adapter class. At
- some point, we might do this for all the OSs. Thanks to Luca
- for this.
-
- * examples/Connection/misc/Connection_Handler.cpp: Added a
- new example that illustrates how to use the Acceptor pattern
- to create multiple threads, each running its own Reactor.
-
- * ace/Log_Msg.cpp (dump): Some of the variables in the dump()
- method have the wrong format specification type. These are:
- restart_ (%d), flags_ (%x), priority_mask_ (%d). They are now
- fixed, thanks to Luca.
-
- * tests/Priority_Task_Test.cpp (open): Add an ACE_ASSERT to make
- sure that the tasks activate() correctly. Thanks to David for
- finding this.
-
- * ace/config-linux-lxpthreads.h: Added #defines for
- ACE_HAS_AUTOMATIC_INIT_FINI and ACE_HAS_SVR4_DYNAMIC_LINKING.
- Thanks to Marius for this.
-
- * ace/Malloc.h: Changed the typedef of ACE_Malloc_Align to a macro
- called ACE_MALLOC_ALIGN to allow users to override this value in
- their config.h file. This is necessary for platforms that don't
- have "long" word alignments. Thanks to Fred LaBar
- <flabar@fallschurch.esys.com> for this suggestion.
-
- * ace/OS.h: Added an #ifdef check for ACE_HAS_IRIX62_THREADS and
- if so, we'll use the if (&a) /* null */; } form of the
- ACE_UNUSED_ARG macro to avoid unnecessary warnings. Thanks to
- Fred LaBar <flabar@fallschurch.esys.com> for testing this out.
-
-Fri Jan 17 16:33:25 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.*: added elapsed_time () and get_time ().
-
- * netsvcs/clients/Tokens/collection/collection.cpp, rw_locks.cpp:
- commented out unused variables to avoid compiler warnings; and
- return 0 from main ().
-
- * include/makeinclude/rules.local.GNU,
- netsvcs/lib/Makefile,
- examples/Service_Configurator/IPC-tests/server/Makefile:
- fixed ESOBUILD mechanism to work on all platforms, not just Linux.
- Thanks to Marius Kjeldahl <marius@funcom.com> for this fix.
-
- * ace/OS.i and OS.cpp: uninlined functions that use varargs, because
- they usually won't get inlined anyways.
-
- * ace/OS.cpp (thr_create): added #else clause to be sure that
- always sparam.sched_priority always get set to the priority argument.
-
- * netsvcs/clients/Naming/Client/Client_Test.cpp: commented out
- unused parameters and wrapped combined assignments/conditional
- values to avoid compiler (g++) warnings.
-
- * tests/Priority_Task_Test.cpp: added check for successful thread
- spawn, and ACE_NEW_THREAD to svc () so that messages get logged.
-
-Thu Jan 16 17:03:47 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * include/makeinclude: Added support for shared object files
- on Linux. Thanks to Marius Kjeldahl <mariusk@sn.no,
- marius@funcom.com> for his help with this.
-
- * ace: Merged in the IRIX support, mainly the missing netdb
- reentrant functions. Thanks to Gonzalo Diethelm
- <gonzo@ing.puc.cl> and Carlos O'Ryan <coryan@mat.puc.cl> for
- their help.
-
- * ace/Timer_{List,Heap,Queue}: Changed iterator() to iter() to
- avoid name clashes with STL (ugh).
-
- * ace/Timer_{Heap,List}.cpp: Added ACE_BUILD_DLL so that things
- will link. Thanks to John Morey for reporting this.
-
- * ace/Synch_T.h: Fixed: class ACE_Write_Guard: method:
- tryacquire_write so that it will call
- ...->lock_->tryacquire_write() and not
- ...->lock_->acquire_write(). Thanks to Alexandre Karev
- <Alexandre.Karev@cern.ch> for this fix.
-
-Thu Jan 16 15:51:16 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Dump.cpp (register_object): initialized "slot" so that g++ doesn't
- complain about uninitialized use.
-
- * Reactor.cpp (initialized): use ACE_GUARD_RETURN instead of
- ACE_GUARD because the function returns a value;
- (find): initialize "i" if handle is out of range so that g++
- doesn't complain about uninitialized use.
-
- * Service_Repository.cpp (remove): removed unused variable "handle".
-
- * Thread_Manager.h: made destructor virtual now that spawn_i () is
- virtual.
-
- * Timer_Heap.cpp: changed some int loop indicies to size_t to
- make sure that comparisons are consistently signed or unsigned.
-
- * OS.h, config-vxworks*.h: removed ACE_HAS_GREENHILLS_SOCKETS
- ACE macro because the code it wrapped applies to all VxWorks
- compilers, not just GreenHills.
-
-Wed Jan 15 02:06:21 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/ACE.cpp (round_to_pagesize): If _SC_PAGESIZE is enabled then
- we set the ACE::pagesize_ variable using sysconf(2). Thanks to
- James Mansion for this suggestion.
-
-Wed Jan 15 02:06:21 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Timer_Queue.cpp (expire): Changed a line of code from
-
- ACE_Timer_Queue_Iterator &iterator (this->iterator ());
-
- to
-
- ACE_Timer_Queue_Iterator &iterator = this->iterator ();
-
- so that the Visual C++ compiler can grok it. Thanks to John
- Morey for reporting this.
-
- * ace/Reactor.cpp: Modified the close() method so that it can be
- called multiple times with no bad side-effects.
-
- * ace/Pipe.cpp: Modified the close() method so that it can be
- called multiple times with no bad side-effects.
-
- * ace/Reactor: Added an initialized() method that indicates
- whether the Reactor was successfully initialized. Also
- rearranged the code in ACE_Reactor::open() so that initialized_
- is only set at the end of the method when everything succeeds.
- If things *don't* succeed, we call close() on the way out.
- Thanks to Luca for these suggestions.
-
- * ace/Reactor.cpp (close): When closing down the ACE_Reactor, we
- now set initialized_ back to 0 so that it can be reopened again
- later.
-
- * tests/Reader_Writer_Test.cpp: There were some problems with this
- test due to the fact that on many pthreads platforms pthread_t
- isn't an int (it's a struct). Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for the fix.
-
- * ace/OS.i (exit): In WIN32 when the process exits through an
- ExitProcess() call, some process resources (e.g., file handles)
- are freed before the static variable destructors are
- called. This results in an application error when tracing is
- enabled. Removing the ACE_TRACE call in ~ACE_Event_Handler
- seems to fix this. Thanks to Luca for this fix.
-
- * ace/OS: Fixed the implementation of semaphores for the POSIX
- port (POSIX lacks semaphores). The trick was to add a "waiters"
- field, along with the semaphore count. Thanks to John Bossom
- <John.Bossom@Cognos.COM> for reporting this.
-
- * examples/Threads/wfmo.cpp: Added a new test program that seems
- to indicate that the Win32 WaitForMultipleObjects() function can
- be called in multiple threads, all of which wait on the same set
- of HANDLEs. Note that the dispatching of the threads is
- relatively "fair" (i.e., everyone gets a chance to process the
- various HANDLEs as they become active). Thanks to Ari Erev
- <Ari_Erev@comverse.com> for suggesting this and providing the
- initial code.
-
- * ace/Thread_Manager.h: Made the spawn_i() method virtual and
- moved it into the protected section of the class so that it can
- be over-ridden by subclasses. Thanks to Tim Harrison for
- suggesting this.
-
-Tue Jan 14 15:57:55 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.h: Changed the default size of ACE_DEFAULT_TIMERS to
- _SC_TIMER_MAX (which is typically around 40 or so).
- Thanks to Stuart Powell <stuartp@in.ot.com.au> for
- suggesting this.
-
- * tests/Timer_Queue_Test.cpp (main): Added some additional logic
- so that we can test the performance of the preallocated and
- non-preallocated ACE_Timer_Heap.
-
- * ace/Timer_Heap: Added a new "preallocate nodes" mechanism to the
- ACE_Timer_Heap. If this is enabled by the constructor, then we
- preallocate as many ACE_Timer_Nodes as there are slots in the
- heap. This allows us to completely remove the need for dynamic
- memory allocation, which is important for real-time systems.
-
- * ace/Thread_Manager.cpp (remove_thr): Optimized the code just a
- tad by decrementing the current_count_ *first*. Thanks to Per
- Andersson <Per.Andersson@hfera.ericsson.se> for suggesting this.
-
- * ace/ReactorEx: Updated the implementation so that the
- handle_events() method now in fact *does* return the number of
- event handler's dispatched (i.e., the implementation matches the
- documentation...). Thanks to Hamutal Yanay
- <Hamutal_Yanay@mail.icomverse.com> for reporting this.
-
- * ace/Service_Repository.cpp (remove): Removed an extra call to
- ACE_OS::dlclose(). This is already being called in the
- destructor of ACE_Service_Record. Thanks to Karlheinz for
- reporting this.
-
- * man: Updated all the nroff and html documentation.
-
- * ace/Timer_Heap: Implemented the spiffy new timer cancellation
- algorithm that requires only O(log N) time to remove a timer
- from the ACE_Timer_Heap. This is about 50 to 100 times faster
- than using the ACE_Timer_List implementation.
-
-Tue Jan 14 21:01:36 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: Replace "Linux" preprocessor symbol with "linux".
-
-Mon Jan 13 17:57:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Synch: Added lock() accessor methods to both
- ACE_Process_Semaphore and ACE_Process_Mutex. Thanks to Hamutal
- Yanay <Hamutal_Yanay@mail.icomverse.com> for suggesting this.
-
- * ace/config-mvs.h: Added a #define for ACE_HAS_GETPAGESIZE.
- Thanks to Chuck Gehr for this information.
-
- * ace/LSOCK_Stream.h: Added a new typedef for PEER_ADDR that is
- associated with ACE_UNIX_Addr. Thanks to Mark Rabotnikov
- <mark@usp.elscintcorp.co.il> for suggesting this.
-
-Mon Jan 13 22:24:09 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: Added #undefs of sigemptyset and sigfillset on Linux
- when __OPTIMIZE__ is enabled. Yes, the system header on Linux
- really #defines them when optimizing! Thanks to an anonymous
- ACE user for pointing this out.
-
- * tests/tests_config.h: Dropped ACE_MAX_ITERATIONS back to 10.
-
-Sun Jan 12 16:59:52 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Timer_List.cpp (schedule): Cleanup the code so that (1)
- timer_id never == -1 (in order to distinguish it from error
- return values and (2) so that we avoid an unnecessary check for
- operator new failure.
-
- * ace/OS.h: Added a new #define called ACE_DEFAULT_MAX_TIMERS,
- which specifies the maximum number of ACE_Event_Handlers
- supported by ACE_Timer_Heap.
-
- * ace/Proactor.cpp (ACE_Proactor): Updated the allocation of
- ACE_Timer_Queue so that it really points to an ACE_Timer_List by
- default. Naturally, this can be overridden by users.
-
- * ace/ReactorEx.cpp (open): Updated the allocation of
- ACE_Timer_Queue so that it really points to an ACE_Timer_List by
- default. Naturally, this can be overridden by users.
-
- * ace/Reactor.cpp (open): Updated the allocation of
- ACE_Timer_Queue so that it really points to an ACE_Timer_List by
- default. Naturally, this can be overridden by users.
-
- * ace: Added two new classes called ACE_Timer_List and
- ACE_Timer_Heap, which derive from ACE_Timer_Queue.
- ACE_Timer_List is essentially the old behavior of
- ACE_Timer_Queue, i.e., it uses an implementation of a linked
- list of ACE_Timer_Nodes. ACE_Timer_Heap, on the other hand,
- uses a heap-based callout queue, which is more appropriate for
- certain real-time applications.
-
- * ace/Timer_Queue: Revised the ACE_Timer_Queue implementation so
- that it's now an abstract base class with most of the
- implementation details pushed into the ACE_Timer_List and
- ACE_Timer_Heap subclasses.
-
- * ace/Timer_Queue.h: Made all the ACE_Timer_Queue methods public
- so that we can override them in a subclass (e.g., the new
- ACE_Timer_Heap).
-
- * examples/Logger/Acceptor-server/server_loggerd.cpp: Fixed this
- example application so that it only uses a single Reactor (the
- REACTOR::instance()) rather than two Reactors. Thanks to Sandro
- Doro <alex@aureus.sublink.org> for reporting this.
-
- * netsvcs/lib/Logging_Strategy.cpp: Fixed the #include of
- fstream.h and iostream.h to use the '<' '>' notation rather than
- the '"' and '"' notation. This avoids problems with running
- "make depend". Thanks to Rino Simioni <sir@necsy.it> for
- reporting this fix.
-
-Sun Jan 12 18:20:49 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.cpp (round_to_pagesize): fixed typo in reference to
- ACE::pagesize_.
-
- * ace/ACE.cpp: initialize ACE::pagesize_ to 0.
-
- * ace/config-irix*.h and config-win*.h: removed ACE_PAGE_SIZE
- definition because these platforms no longer use it.
-
- * tests/UNIX*.conf and Win32server.conf: replaced net_svcs
- with netsvcs.
-
-Sat Jan 11 15:11:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.i (thr_setprio): The POSIX implementation of
- ACE_OS:thr_setprio did not set the priority. It calls:
-
- pthread_setschedparam( thr_id, &policy, &param )
-
- and then does
-
- prio = param.sched_priority.
-
- instead of
-
- param.sched_priority = prio;
-
- This is now fixed. Thanks to John Bossom <John.Bossom@Cognos.COM>
- for reporting this.
-
- * ace/config-irix*.h: Modified all the IRIX config files to
- use the new ACE_HAS_GETPAGESIZE feature since this is necessary
- to differentiate between IRIX and IRIX64.
- Thanks to Fred LaBar <flabar@fallschurch.esys.com> for
- reporting this.
-
- * ace/ACE.cpp: Modified the round_to_pagesize() so that if
- a config.h file enables ACE_HAS_GETPAGESIZE then we use
- that function in preference to the value in config.h.
- Thanks to Fred LaBar <flabar@fallschurch.esys.com> for
- suggesting this.
-
- * ace/ACE.cpp: Modified the round_to_pagesize() so that on
- platforms that allow the page size to be obtained dynamically
- we'll get that rather than replying on what it set in the
- config.h file. We'll cache this value in a static variable
- to speedup searches. Thanks to James Mansion for suggesting
- this.
-
- * apps/Gateway/Gateway: Finished adding support for thread-safe
- reference counting to the uses of ACE_Message_Block.
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp: Replaced
- the use of ACE_MT_SYNCH with ACE_SYNCH so that this will compile
- correctly on non-MT platforms.
-
-Fri Jan 10 12:38:42 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Added a COPYING file that explicitly states the copyright status
- of ACE.
-
- * ace/config-win32-msvc4.x.h and ace/config-winnt-4.0-msvc4.x.h:
- By default, we'll revert to *not* enabling
- ACE_HAS_TEMPLATE_TYPEDEFS for MSVC++ 4.2, even though this is
- well-support by the compiler since it breaks some application
- code that expects to use 3 template parameters for
- ACE_Svc_Handler<>. The "fix" is to use the ACE_SOCK_STREAM
- macros (rather than using the "ACE_SOCK_Stream, ACE_INET_Addr"
- tuple) in order to achieve portability in either case. Thanks
- to Karlheinz for pointing out the need for backwards
- compatibility.
-
-Wed Jan 8 01:00:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Message_Block_Test.cpp: Enhanced the torture test of the
- ACE_Message_Block so that it stresses the reference counting
- implementation in a multi-threaded environment.
-
-Wed Jan 08 10:26:45 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Message_Block.cpp (~ACE_Data_Block): assigned 0 to
- allocator_strategry_ after deleting it; fixed template
- specializations (for g++) by using macros instead of class names;
- commented out template specializations because Service_Record.cpp
- already has them, and they should only appear once in the library
- in order to avoid link clashes
-
- * ace/Service_Object.cpp (ACE_Service_Object): reordered
- initializations in constructor
-
- * ace/Service_Record.cpp (ACE_Service_Record): reordered
- initializations in constructor
-
- * ace/config-linux-lxpthreads.h: added
- ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS, thanks to
- James CE Johnson <jcej@lads.com> for tracking down this
- problem and testing the fix.
-
-Tue Jan 7 13:03:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Block: Continued to improve the
- ACE_Message_Block/ACE_Data_Block implementation.
-
- * ace/Message_Block: Added a new constructor to ACE_Message_Block
- that takes an ACE_Data_Block * and "owns" it. Thanks to Tim for
- this idea.
-
- * ace/Log_Msg.cpp: Now that we've prevented signal handlers from
- occurring within critical sections of ACE_Log_Msg::log() we
- don't need to use the ACE_Recursive_Thread_Mutex anymore.
- Instead, we just need ACE_Thread_Mutex.
-
- * ace/Log_Msg.cpp (log): Added an ACE_Sig_Guard to the block in
- ACE_Log_Msg::log() that acquires the mutex that serializes
- output. This prevents nasty problems with recursive to
- ACE_Log_Msg::log() from within signal handlers.
-
- * ace/Service_Config.cpp (end_reactor_event_loop): Added a timeout
- of ACE_Time_Value::zero to the ACE_Reactor::notify() method when
- called in the ACE_Service_Config::end_reactor_event_loop().
- This prevents the Reactor from blocking indefinitely if there's
- no longer a thread to receive from the notification pipe.
-
- * netsvcs/clients/Naming/Dump_Restore: Removed the vestigal
- nametest.cpp and nametest.h files. I'm not sure why they were
- still there, but they shouldn't have been!
-
- * ace/Synch.i (remove): this->owner_ should be set to -1 before
- calling this->release(). Thanks to Per Andersson
- <Per.Andersson@hfera.ericsson.se> for suggesting this.
-
- * ace/Thread_Manager.cpp (exit): Added a flag called "do_thr_exit"
- to the ACE_Thread_Control::exit() method. This controls whether
- we call ACE_OS::thr_exit() after removing the thread from the
- Thread Manager's internal table. This is necessary to work
- around pthread bugs on certain platforms (e.g., AIX and Linux).
-
- * ace/Synch.h: Removed the
- ACE_Recursive_Thread_Mutex::set_nesting() method since this
- isn't being used and is potentially dangerous. Thanks to Per
- Andersson <Per.Andersson@hfera.ericsson.se> for suggesting this.
-
- * ace/XtReactor: Updated the XtReactor so that it uses the next
- internal Reactor implementation. Thanks to Mark Rabotnikov
- <mark@usp.elscintcorp.co.il> for reporting this.
-
- * ace/Task.i: Updated the grp_id(int) method to cache the group id
- in the task and then set it in the Thread_Manager, if there is
- one. Thanks to Hamutal Yanay <Hamutal_Yanay@mail.icomverse.com>
- for suggesting this.
-
- * ace/Log_Record.h: Updated the ACE_Log_Record class to use the
- new ACE_MAXLOGMSGLEN macro.
-
- * ace/OS.h: Added a new #define called ACE_MAXLOGMSGLEN. By
- default this is 4k. However, you can reset it in the config.h
- file if you'd like to increase or decrease the size. Thanks to
- Anthony McConnell for suggesting this.
-
- * examples/Threads/tss[12].cpp: Tidied up the tss1.cpp and
- tss2.cpp examples and improved the comments. Thanks to Luca for
- suggesting this.
-
- * ace/Service_Object.cpp (fini): Added the "virtual" keyword to
- the new destructor of ACE_Service_Type. Thanks to David for
- reporting this.
-
- * ace/Message_Block.i: Rearranged the order of the ACE_Data_Block
- and ACE_Message_Block locking_strategy() methods so that they'd
- be defined as inline before being used. Thanks to David for
- reporting this.
-
-Mon Jan 6 16:46:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Manager.cpp (fini): Only try to remove the
- ACE_Service_Manager from the Reactor if it's actually been
- registered in the first place (i.e., if it's get_handle() method
- does not return ACE_INVALID_HANDLE).
-
- * netsvcs/servers/svc.conf: Changed the name of the net services
- .so file from libnet_svcs to netsvcs so that it will work
- correctly with our new "cross-platform" svc.conf ACE::ldfind()
- strategy. Thanks to Marius Kjeldahl <marius@funcom.com> for
- reporting this.
-
- * ace/Reactor.cpp (find): Added a strategic break and a check for
- handle_in_range(). Thanks to Tim for this help!
-
- * netsvcs/clients/Naming/Client/svc.conf: Removed the "lib" part
- from the executable shared object file names in the svc.conf
- file so that it will work with the new "cross-platform" svc.conf
- ACE::ldfind() strategy. Thanks to Marius Kjeldahl
- <marius@funcom.com> for reporting this.
-
- * ace/Service_Record.cpp (fini): Added an extra assignment to a
- temporary const void *obj to avoid problems with MSVC++ and it's
- cast mechanism.
-
- * ace/ReactorEx.h: Added a default parameter to
- ACE_ReactorEx::notify(). Thanks to Tim for noticing this.
-
-Sun Jan 5 10:48:23 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests: Added a new test for ACE_Message_Block, which is called
- Message_Block_Test.cpp (no surprise there ;-)). This test
- exercises the reference counting mechanisms.
-
- * ace/Message_Block.h: Made the destructors for ACE_Message_Block
- and ACE_Data_Block virtual, so that these classes can be
- subclassed and ACE_Message_Blocks can delete these
- subclasses (either via release() or delete). Thanks to Tilo
- Christ for suggesting this.
-
- * ace/Message_Block.cpp: Modified the implementation
- of ACE_Message_Block/ACE_Data_Block so that we always create
- an allocator_strategy_. By default, this strategy will be
- ACE_Allocator_Adapter <ACE_Malloc <ACE_Local_Memory_Pool, ACE_Null_Mutex> >;
- This greatly simplifies the code.
-
- * ace/Message_Block.h: It's now possible to assign a
- Message_Block's priority when you create it.
-
- * ace/Reactor: Sped things up some more by merging the Reactor's
- any_ready() and fill_in_ready() methods together. This reduces
- redundant computations.
-
- * ace/Reactor: Changed the name of ACE_Reactor::detach() to
- ACE_Reactor::remove_handler_i() and changed the name of
- ACE_Reactor::attach() to ACE_Reactor::register_handler_i().
- This is more consistent with the other naming schemes.
-
- * ace/Reactor.cpp: Reworked the implementation of the Handler
- Repository's unbind() method in order to simplfy the logic.
- Also merged in all the Reactor's detach() functionality into the
- unbind() method in order to localize all the handler removal
- processing.
-
- * ace/Reactor[Ex].cpp: Added more descriptive errno entries for
- failed operations in the handler repository.
-
- * ace/Reactor.cpp: Modified the implementation of the Handler
- Repository's bind() method so that it reports an error if you
- try to register an Event_Handler for an invalid HANDLE.
-
- * ace/Reactor.cpp: Reimplemented the internals of the Reactor to
- prepare for the upcoming merge of the Reactor and ReactorEx to
- use a single code base.
-
- * ace/Timer_Queue.cpp: Modified the behavior of the expire()
- methods so that they return the number of ACE_Event_Handlers
- whose handle_timeout() method was called.
-
-Sat Jan 4 11:47:05 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Reactor.h: Removed the #ifdefs for ACE_HAS_POLL. This will
- be recast as a strategy in subsequent implementations.
-
- * ace/Reactor.cpp: Added a new call,
- ACE_Handler_Repository::handle_in_range(), which checks to make
- sure that the HANDLE is within the range of 0 .. max_handlep1_.
- This factors out some redundant code.
-
- * ace/Reactor.cpp: Sped up the performance of the Reactor by
- removing redundant calls to
- ACE_Handler_Repository::invalid_handle() and
- ACE_Handler_Repository::find().
-
- * tests/Reactors_Test.cpp: Added a test for
- the new Reactor::notify() method with timeouts.
-
- * examples/Reactor/Misc/notification.cpp (svc): Added a test for
- the new Reactor::notify() method with timeouts.
-
- * ace/Reactor[Ex]: Modified the Reactor and ReactorEx so that they
- use timed send() operations for their notify() methods. This
- makes it possible for users to bound the amount of time they're
- willing to wait to try and notify the Reactor. This is mostly
- useful to avoid infinite blocking if there is congestion in the
- Reactor's notification mechanism.
-
- * ace/ACE.cpp: Added a new timed send() method that uses the
- write() system call on UNIX and the socket send() call on Win32.
- This new method is used in the new ACE_Reactor::notify() method,
- which now supported timed notifications.
-
- * ace/Reactor.cpp (ACE_Handler_Repository): To simplify the code
- and reduce unnecessary #ifdefs, I've merged the max_handlep1_
- and cur_size_ fields (which are now called max_handlep1_).
-
-Fri Jan 3 10:47:15 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Replaced all uses of "delete mb" with mb->release ();
-
- * ace/Stream_Modules.cpp: Replaced the use of explicit bit
- twiddling with the ACE_BIT* macros.
-
- * ace/Message_Block.cpp: Make sure that we use the
- allocator_strategy_ to create the memory for the reference count
- since this may need to go into shared memory if that's the
- memory pool where the Message_Block allocations are coming from.
-
- * ace/OS.h: Added two new macros, ACE_ALLOCATOR_RETURN and
- ACE_ALLOCATOR, which are similar to ACE_NEW_RETURN and ACE_NEW,
- except that these
-
- * ace/Message_Block.cpp (release): Make sure to "delete this"
- outside the scope of the locking_strategy_.
-
- * ace/Service_Object.cpp: Added a destructor to ACE_Service_Type.
- Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for
- suggesting this.
-
- * ace/Service_Object.i: Be smarter about how we reassign the name_
- pointer, i.e., delete the old one and make a copy. Thanks to
- Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting
- this.
-
- * ace/Module.cpp (open): Rearranged the assignments to
- reader_q->mod_ and writer_q->mod_ so that we don't try to
- initialize through NULL pointers. Thanks to
- Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting
- this.
-
- * ace/Service_Record.cpp (ACE_Service_Record): Initialized name_
- to NULL so that the following change works correctly now.
- Thanks to Per.Andersson@hfera.ericsson.se (Per Andersson) for
- reporting this.
-
- * ace/Service_Record.i (name): Make sure to delete [] (char *)
- this->name_ before allocating a new one. Thanks to
- Per.Andersson@hfera.ericsson.se (Per Andersson) for reporting
- this.
-
- * ace/Message_Block: Reworked the reference counting implemention
- so that reference counts are shared correctly amongst their
- various owners. This requires making a deep copy the "header"
- portion, but a shallow copy of the "data."
-
- * ace/Message_Block.cpp (ACE_Message_Block): Updated all three
- ACE_Message_Block constructors so that they all call the init()
- method. This centralizes all the initialization logic in one
- place.
-
-Thu Jan 2 00:42:21 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Block.cpp (ACE_Message_Block): Make sure to set the
- cont_ field to 0 after "releasing" it so that we don't
- mistakenly think it's still around later on. This problem arose
- in the ACE_Message_Queue::close() method, which was trying to
- count the number of bytes being freed.
-
- * ace/Message_Queue.cpp (close): Fixed a subtle bug where we
- weren't actually deleting messages from the
- ACE_Message_Queue::close() routine. This should work now...
-
- * ace/Message_Queue.cpp (close): Replaced the use of "delete mb"
- with "mb->release()" since the Message_Blocks are now reference
- counted.
-
- * ace/Message_Block: Enhanced the reference counting scheme so
- that you can increment and decrement the count by an arbitrary
- amount. This is particular useful when you know you'll be
- sending the same Message_Block to N consumers.
-
- * ace/Singleton: The dump() must be used same as instance()
- (without supplying an object) so it must be declarated *static*,
- i.e.,
-
- static void dump (void);
-
- Thanks to Sandro Doro <alex@aureus.sublink.org> for reporting
- this.
-
- * examples/ASX/Event_Server: Completely rewrote and retested the
- ACE Event Server example. The new code is *much* easier to
- understand, has many more comments, is more robust, and compiles
- much faster since I removed many of the templates.
-
- * examples/ASX/Event_Server/Tranceiver/tranceiver.cpp: Fixed the
- tranceiver so that it shuts down correctly when the Event_Server
- exits.
-
- * examples/Connection/non_blocking/CPP-connector.cpp: Fixed a
- problem where we were trying to select() on ACE_STDIN on Win32.
- Naturally, this doesn't work, so we used the
- ACE::register_stdin_handler() to fix this. Thanks to
- Samuel_Bercovici <Samuel_Bercovici_at_EFT__AD2@mail.icomverse.com>
- for reporting this.
-
- * examples/ASX/Event_Server/Event_Server/Options: Changed the
- Options class to be a Singleton...
-
- * ace/Task.h: Added "const" method qualifier to accessor methods
- like is_reader() and is_writer().
-
-Wed Jan 1 00:10:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Block: Added a new static release() method that
- behaves like the non-static method release(), except that it
- checks if <mb> is 0. This is similar to CORBA::release(), which
- is useful if you want to eliminate lots of checks for NULL
- pointers before calling release() on them.
-
- * Updated all places in ACE where we use
- ACE_Event_Handler::READ_MASK when we should be using
- ACE_Event_Handler::ACCEPT_MASK.
-
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
- Changed the name of the acceptor class from Handle_Thr_Stream to
- Handle_Thr_Acceptor, which is more accurate.
-
- * ace/Reactor: Since we've now got an
- ACE_Event_Handler::ACCEPT_MASK (intended primarily to accept
- connections asynchronously using Win32 overlapped I/O) we can
- now use this with the ACE_Reactor, as well. In particular, any
- time that we are registering a "passive-mode" socket acceptor we
- can now specify ACE_Event_Handler::ACCEPT_MASK. This is much
- more intuitive than using the READ_MASK (which never made any
- sense...). The ACE_Reactor now treats the ACCEPT_MASK as a
- READ_MASK internally, so you can still use READ_MASK if you'd
- like (i.e., this change doesn't break any existing code).
-
- * ace/Event_Handler: Changed "get_priority" and "set_priority" to
- simply "priority(void)" and "priority(int)" to be more
- consistent with other parts of ACE.
-
- * apps/Gateway/Gateway: Updated the Gateway so that the
- concurrency strategies can now be specified on the
- command-line (or in the svc.conf file), rather than being
- determined at compile-time. This is much more flexible.
- See the ./apps/Gateway/Gateway/README file for details.
-
- * apps/Gateway/Gateway: Verified that all the multi-threading
- strategies still work.
-
- * ace/Message_Block.cpp (ACE_Message_Block): Make sure that we
- "release" the continuation field, rather than delete it, since
- its reference count may be > 1.
-
- * ace/Log_Msg.cpp (log): Change the abort_prog logic a bit so that
- we always print a message to stderr if we're exiting,
- regardless... Thanks to David Levine for pointing this out.
-
- * apps/Gateway/Gateway: Moved all of the configuration file
- parsing logic *outside* of the Event_Channel into the Gateway
- class so that we wouldn't have unnecessary dependencies.
-
- * apps/Gateway/Gateway: Redesigned the Gateway so that the
- Proxy_Handlers (i.e., the Consumer_Proxy and Supplier_Proxy)
- most of their work to the Event_Channel. This "lightweight
- proxy" design is an improvement since it is now possible to
- emulate the COS Event Channel semantics within the Event_Channel
- "kernel."
-
- * Happy new year! Let's start a new ChangeLog to celebrate the
- new year.
diff --git a/ChangeLogs/ChangeLog-97b b/ChangeLogs/ChangeLog-97b
deleted file mode 100644
index da7e8bf2f84..00000000000
--- a/ChangeLogs/ChangeLog-97b
+++ /dev/null
@@ -1,9182 +0,0 @@
-Tue Nov 25 16:18:49 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.4, released Tue Nov 25 16:18:49 1997.
-
-Tue Nov 25 16:03:09 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: fixed Version.h generation to work properly when
- $$beta is undefined.
-
-Mon Nov 24 10:33:34 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.56, released Mon Nov 24 10:33:34 1997.
-
-Sun Nov 23 13:32:02 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/IOStream.h: removed DIGITAL_UNIX from #include decision,
- so now it just depends on DEC_CXX and its version. Thanks to
- Dani Flexer <danif@ivory-sw.com> for this fix.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: updated template
- instantiations to match recent change to Server_Logging_Handler_T.h.
-
-Sat Nov 22 19:16:35 1997 <irfan@TWOSTEP>
-
- * tests/Process_Strategy_Test.cpp:
-
- main: Removed signal handling code. It is unnecessary since we
- do not use kill() anymore.
-
- Process_Strategy: This subclass of ACE_Process_Strategy
- overwrites the process creation method to include connection
- counting.
-
- connection_completed: Made sure that the Reactor is woken up
- after all the connections have completed.
-
- * ace/Priority_Reactor.cpp (init_bucket): Removed extra code.
-
- * ace/Acceptor.cpp (activate_svc_handler): open svc_handler only
- if result is 0. Also removed extra tracing code.
-
- * ace/Handle_Set.i (reset): Purify is reporting a UMR
- (uninitialized memory copy) when copying a Handle_Set. This
- comes from the mask fd_set not being memset to 0 by FD_ZERO.
- This is therefore a harmless error.
-
- * tests/Priority_Reactor_Test.cpp (main): The ordering of
- auto_ptrs is very subtle.... "auto_ptr<ACE_Reactor> reactor"
- should come before "auto_ptr<ACE_Select_Reactor> impl", i.e.,
- the implementation should be destroyed *before* the forwarding
- class. This is apparent when the implementation class is
- removing registered event handlers that hold a pointer to the
- forwarding class.
-
-Sat Nov 22 16:04:07 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/Message_Queue.cpp:
- Fixed some formating problems in the ACE_Message_Queue::dump
- method, thanks to Arturo Montes <mitosys@colomsat.net.co> for
- finding this one.
-
-Sat Nov 22 14:38:22 1997 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.2.x.h: Added ACE_TLI_TCP_DEVICE "/dev/xti/tcp".
- This fixes Riverace problem ID P32; AIX now joins HP-UX in
- supporting XTI/TLI, but not everything (problem P27).
-
- * ace/UPIPE_Connector.h:
- * ace/TLI_Connector.h: Added meta-type information PEER_ADDR and
- PEER_STREAM. Fixes Riverace problem ID P37.
-
- * apps/JAWS/server/HTTP_Server.cpp: Added 'const' to "char *prog".
- Fixes Riverace problem P36.
-
- * examples/Connection/misc/test_upipe.cpp:
- * examples/Connection/non_blocking/CPP-connector.cpp:
- * examples/Threads/process_mutex.cpp:
- * examples/Threads/process_semaphore.cpp:
- Added 'const' to "char *" - can't initialize a char * with
- a const string. Fixes Riverace problem ID P38, P40.
-
- * examples/Threads/thread_specific.cpp, tss1.cpp: Moved the Errno
- class out to a new file, thread_specific.h. AIX xlC needs to have
- the class in a .h file for template generation. Fixes Riverace
- problem P42.
- * examples/Threads/Makefile: Make sure that, on AIX, the tempinc
- directory is cleared before building each new program.
-
- * performance-tests/Synch-Benchmarks/Makefile: Changed SHLIB to use
- $(SOEXT) rather than .so. Fixes Riverace problem ID P41.
-
- * tests/Thread_Pool_Test.cpp: Moved 'this->getq(mb)' out of an
- ACE_ASSERT. Thanks to Arturo Montes <mitosys@colomsat.net.co>
- for finding this.
-
-Sat Nov 22 05:44:10 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * tests/Process_Strategy_Test.cpp (main): Shuffled things around
- in fork() block. This is fun.
-
- * ace/Strategies_T.cpp (activate_svc_handler): Added an
- ACE_UNUSED_ARG macro to muffle g++.
-
- * tests/Process_Strategy_Test.cpp (handle_close): Added a return
- type specifier. Without it, g++ laments.
-
- * ace/Acceptor.cpp (activate_svc_handler): Should be if (open (...) ==
- -1) then error, not if (open (...) != -1) then error.
-
- * ace/ACE.cpp (set_handle_limit): Removed a duplicated ACE_TRACE
- macro.
-
-Sat Nov 22 00:26:11 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (close): Activated automatic wait on
- close functionality. I think I get it right this time.
-
-Fri Nov 21 19:59:37 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/IPC_SAP.cpp:
- Added a couple of ACE_NOTREACHED protections. Thanks to Brian
- Mendel <bmendel@mdc.com> for reporting this.
-
-Fri Nov 21 17:12:48 1997 <nw1@CHA-CHA>
-
- * ace/Thread_Manager.cpp (close): Deactivated automatic wait on
- close for now. It doesn't seem to work on Solaris.
-
- * ace/Thread_Manager.{h,cpp} (wait): Added codes to remove detached
- threads. This function can be activated selectively. I added
- this so we can ignore detached threads when closing down the
- default thread manager.
-
- (close): Activated the code to wait (join) all threads managed
- by the thread manager. It will ask wait function to remove all
- detached thread first (and so they won't be counted into threads
- we are waiting for.)
-
-Fri Nov 21 13:22:25 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.55, released Fri Nov 21 13:22:25 1997.
-
-Fri Nov 21 12:18:28 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Acceptor.cpp,Strategy_T.cpp: Removed the use of gotos. See
- Dijkstra '67 for motivation...
-
- * tests/Process_Strategy_Test.cpp (open): Make sure that we set
- the Reactor of the Svc_Handler to 0 if we're running the
- threading test.
-
- * tests/Reactor_Notify_Test.cpp: Added back THR_BOUND to
- make things work on Solaris.
-
-Fri Nov 21 02:23:47 1997 <irfan@TWOSTEP>
-
- * tests/Process_Strategy_Test.cpp:
-
- - The event loop execution was based on a fragile timeout
- mechanism. This was changed to a more robust mechanism that
- counts the connections.
-
- - The unlinking of the file was moved from the server to the
- client. This is necessary since there maybe multiple server
- processes that cannot really coordinate when the file should
- be removed.
-
- * ace/Strategies_T.cpp (ACE_Concurrency_Strategy):
- ACE_Concurrency_Strategy and all three of the subclasses
- (ACE_Reactive_Strategy, ACE_Process_Strategy, and
- ACE_Thread_Strategy) were messed up. Only ACE_Reactive_Strategy
- was (trying) to set the correct blocking mode of the socket.
- Therefore, moved the socket mode setting code to the base class,
- ACE_Concurrency_Strategy, so that all the classes can share it.
-
- This did create one problem though. If the implementation of
- the reactor uses event associations (i.e., WFMO_Reactor), we
- cannot try to set the socket mode since the registration of the
- svc_handler caused an event association to be created for the
- socket and by default (thanks Microslush) the socket is set to
- non-blocking mode. If the user is excepting to have a socket in
- blocking mode, he is in for a surprise. Maybe we should return
- a failure if the user is expecting a socket in blocking mode.
- This is probably too harsh for now.
-
- * tests/Future_Test.cpp (open): Added THR_DETACHED since we don't
- wait for this thread.
-
- * tests/Reactor_Notify_Test.cpp (open): Changed THR_BOUND to
- THR_DETACHED since we don't wait for this thread.
-
- * tests/IOStream_Test.cpp (server): Make sure to close the socket
- in ACE_SOCK_Acceptor and ACE_SOCK_IOStream.
-
- * ace/WFMO_Reactor.cpp (open): When I changed open() last, I
- ignored the order of the registeration of notify_handler_ and
- wakeup_all_threads_handler_. Unfortunately, the order of the
- two registrations is very important since the optimization for
- owner thread takes advantage of this ordering. Therefore,
- revert the order of registertion to notify_handler_ followed by
- wakeup_all_threads_handler_.
-
- * tests/version_tests/run_all_tests.bat: Added new bat file to
- make the running of all the different configurations easier.
-
- * tests/version_tests/version_tests.{mak,mdp}: Added a mammoth
- testing scheme that is used to test all 8 configurations of the
- tests under Win32. These 8 configurations are:
-
- DLL Debug
- DLL Release
- DLL Unicode Debug
- DLL Unicode Release
- static Debug
- static Release
- static Unicode Debug
- static Unicode Release
-
- run_tests.bat from the test directory can then be used to run
- these various configurations. run_tests.bat was also extended
- to allow the user to purify the tests. Simply execute
- run_tests.bat with the purify command line option.
-
-Thu Nov 20 17:43:15 1997 <nw1@COYOTE>
-
- * ace/Thread_Manager.cpp (kill_thr): Changed to prevent thread
- manager from "discard" a thread when a certain operation is not
- supported by the operation system. Removed the mechanism that
- preserves errno during "thread removal." We no longer remove
- thread right after an error occured.
-
-Thu Nov 20 17:53:35 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/Shared_Malloc/test_multiple_mallocs.cpp (main): Make
- sure make sure that the semaphores created by the program are
- released as well as the storage files deleted. Thanks to Tom
- Arbuckle <arbuckle@uran.informatik.uni-bonn.de> for reporting
- this.
-
- * ace: Added a new version of config-osf1-3.2.h. Thanks to Dani
- Flexer <danif@ivory-sw.com> for updating this.
-
-Thu Nov 20 18:22:24 1997 Steve Huston <shuston@riverace.com>
-
- * ace/README
- ace/TLI.h
- ace/TLI_Acceptor.h
- ace/TLI_Connector.h
- Changed from using hardcoded "/dev/tcp" as the XTI device name to
- a new config-related define, ACE_TLI_TCP_DEVICE. If the config
- doesn't set one, it defaults to "/dev/tcp". Thanks to Steve Coy
- <stevec@magna.com.au> for zeroing in on this problem in HP-UX.
-
- ace/config-hpux-10.x.h: ACE_TLI_TCP_DEVICE is "/dev/inet_cots".
- Note that XTI won't work 100% well on HP still - this is Riverace
- problem ID P27.
-
- * netsvcs/lib/Server_Logging_Handler_T.h: Hardcoded to always use
- ACE_SOCK_Stream (and friends) rather than ACE_TLI_Stream and friends.
- XTI doesn't work real well on some platforms (particularly HP-UX
- and AIX). When they're fixed, this can be undone (Riverace problem
- ID P28).
-
- * examples/IPC_SAP/TLI_SAP/CPP-client.cpp: Changed 'char *host' to
- 'const char *host' so it can be initialized from a const char string.
-
-Thu Nov 20 14:19:57 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * tests/Priority_Reactor_Test.h:
- * tests/Priority_Reactor_Test.cpp:
- The test has a limited execution time now, and only reports a
- warning if runs out of time. This may be due to some failed
- connections, but it is hard to avoid that. On the other hand
- the default time should be large enough, in our machines the
- test only takes 14 seconds, so 60 seconds should be enough.
- NOTE: this problem reveals a problem *only* in the test itself
- not in ACE_Priority_Reactor.
-
-Thu Nov 20 11:29:51 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Timer_{Heap,List}_T.{h,cpp}: added
- ACE_Timer_{Heap,List}::get_first () accessors. Thanks to
- Stephen Henry <shenry@mdc.com> for this suggestion.
-
-Thu Nov 20 11:27:44 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.54, released Thu Nov 20 11:27:44 1997.
-
-Thu Nov 20 10:45:08 1997 <irfan@TWOSTEP>
-
- * tests/MT_SOCK_Test.cpp: Uncommented socket close call.
-
- * ace/WFMO_Reactor.cpp (open): Open the notification handler
- *after* the timer queue has been created.
-
- * ace/ACE.cpp (get_ip_interfaces): Changed rep() to fast_rep() to
- prevent memory leak.
-
- * ace/Reactor.cpp (ACE_Reactor): Fixed error of not creating any
- Reactors on UNIX.
-
-Thu Nov 20 08:36:54 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/Thread_Manager.{h,cpp}: Added a dummy argument to internal
- thread functions. Without them, MSVC wrongly optimizes codes
- and the stack were all clobbered when entering these functions.
-
-Wed Nov 19 23:24:03 1997 <nw1@CHA-CHA>
-
- * ace/Reactor.cpp: Rearragned macros so we use Select_Reactor as
- default if we don't have Winsock2. Irfan did it, not me.
-
-Wed Nov 19 22:11:20 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.53, released Wed Nov 19 22:11:20 1997.
-
-Wed Nov 19 15:55:52 1997 Sumedh Mungee <sumedh@lindy.cs.wustl.edu>
-
- * config-netbsd.h: NetBSD 1.3alpha has a better MSYNC. Commented out
- ACE_HAS_BROKEN_NETBSD_MSYNC
-
-Wed Nov 19 14:26:36 1997 Nanbor Wang <nw1@lindy.cs.wustl.edu>
-
- * stdcpp.h, OS.h: Changed ACE_CONFIG_H to ACE_USER_CONFIG_H. It
- conflicts with the macro in various configuration files.
-
-Wed Nov 19 15:55:45 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-sunos5.*.h: Replaced all uses of ACE_HAS_UNICODE with
- ACE_HAS_XPG4_MULTIBYTE_CHAR. At this point, I think only NT has
- the UNICODE macro now. Thanks to Steve Huston for validating
- this.
-
- * STL/bstring.h: Added a special-case for BorlandC++. However, I
- think this can be generalized for all compilers. Thanks to
- Valik Solorzano Barboza <valik@xs4all.nl> for reporting this.
-
- * ace/OS: Fixed strpbrk() to handle the const char * and char *
- cases of ANSI C++. Thanks to Valik Solorzano Barboza
- <valik@xs4all.nl> for reporting this.
-
- * ace/OS.h: Added a special case for _MSC_VER since BC++ doesn't
- have wchar.h! Thanks to Valik Solorzano Barboza
- <valik@xs4all.nl> for reporting this.
-
-Wed Nov 19 13:43:33 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * Merged the purify testing into run_tests. Just use
-
- "run_tests purify ..."
-
- to purify instead of running the tests. If you thought this
- batch file looked bad before....
-
-Wed Nov 19 12:17:50 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/{OS,stdcpp}.h (ACE_CONFIG_H): Added this macro to protect
- config.h from getting included multiple times.
-
- * ace/stdcpp.h: Reverted include OS.h back to config.h.
-
-Wed Nov 19 09:20:05 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.52, released Wed Nov 19 09:20:05 1997.
-
-Wed Nov 19 07:54:44 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.cpp (crc32): Reverted the COMPUTE macro back to its
- original value. For some reason, the version given by Valik was
- failing.
-
- * ace/SV_Semaphore_Complex.cpp (open): Make sure initialize the
- sem_number_ data member, though this isn't actually used for
- anything.
-
- * ace/ACE.cpp: Added a #ifdef for __unix since this is the only
- case where we'll actually have the ifreq autoptr. Thanks to
- Valik Solorzano Barboza <valik@xs4all.nl> for reporting this.
-
- * ace/Log_Record.cpp (print): Added a work around for a really
- lame bug with BORLANDC. Thanks to Valik Solorzano Barboza
- <valik@xs4all.nl> for reporting this.
-
-Wed Nov 19 04:22:38 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.51, released Wed Nov 19 04:22:38 1997.
-
-Wed Nov 19 04:02:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU (show_uninit): It seems
- there was a missing '@' at the beginning of the line. Thanks to
- Hans Rohnert for reporting this.
-
- * tests/Process_Strategy_Test.cpp (handle_input): Fixed Irfan's
- code, which keeps breaking ACE ;-).
-
-Wed Nov 19 01:55:06 1997 <irfan@TWOSTEP>
-
- * ace/WFMO_Reactor.cpp (resume_handler_i, suspend_handler_i,
- unbind_i): Since things don't happen immediately in the
- WFMO_Reactor world, we must make sure that this request is not a
- duplicate. If so we must ignore it.
-
- * ace/Asynch_Acceptor.cpp (open): Fixed addr type mismatch problem.
-
- * tests/UPIPE_SAP_Test.cpp (main): Make sure to close the socket
- in ACE_UPIPE_Acceptor.
-
- * tests/SPIPE_Test.cpp (server): Make sure to close the socket in
- ACE_SPIPE_Acceptor.
-
- * tests/SOCK_Test.cpp (spawn): Make sure to close the socket in
- ACE_SOCK_Acceptor.
-
- * tests/Reactor_Notify_Test.cpp (Supplier_Task): Make sure to
- close the pipe down.
-
- * tests/Process_Strategy_Test.cpp (handle_input): Fixed ACE_DEBUG
- statement to pass the correct number of arguments.
-
- * tests/MT_SOCK_Test.cpp (spawn): Make sure to close the socket in
- ACE_SOCK_Acceptor.
-
- * tests/Reactor_Exceptions_Test.cpp (main): Make sure to close the
- socket in ACE_SOCK_Dgram.
-
- * tests/run_purify_tests.bat: Added "mkdir purify_results".
-
- * tests/run_tests.bat, run_purify_tests.bat: Changed explicit name
- of bat file (e.g., run_tests, run_purify_tests) to %0. This
- will allow the bat file to be used from other directories.
-
- * ace/config-win32-common.h: Removed extraneous define of
- ACE_HAS_TEMPLATE_INSTANTIATION.
-
-Wed Nov 19 00:37:22 1997 <nw1@COYOTE>
-
- * ace/stdcpp.h: Changed to use "ace/OS.h" instead of using
- "ace/config.h" directly to avoid redefinition of user defined
- macros.
-
- * ace/Log_Msg.cpp (close): Disable Win32 to delete
- ACE_Log_Msg::instance (). On Win32, this should be done by
- ACE_TSS_Cleanup.
-
- * ace/OS.cpp (cleanup_tss): Enabled Win32 to call
- ACE_Log_Msg::close. This is required to properly release
- resourses held by ACE_Log_Msg_Manager.
-
-Tue Nov 18 19:28:36 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Select_Reactor.cpp (unbind),
- ace/WFMO_Reactor.cpp (handle_signal): Fixed a large number of
- bugs with non-portable "scope of the for loop counter"...
- Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for
- reporting this.
-
- * ace/Thread_Manager: Added == and != operators for
- ACE_Thread_Descriptor to fix things with BORLANDC's template
- mechanism. Thanks to Valik Solorzano Barboza <valik@xs4all.nl>
- for reporting this.
-
- * ace/Select_Reactor: Added == and != operators for
- ACE_Event_Tuple to fix things with BORLANDC's template
- mechanism. Thanks to Valik Solorzano Barboza <valik@xs4all.nl>
- for reporting this.
-
- * ace/OS.i (tempnam): Fixed a typo -- WIN32 should be ACE_WIN32.
- Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for
- reporting this.
-
- * ace/OS.h: Reordered the ACE_SEH_* macros so they work correctly
- with BORLANDC. Thanks to Valik Solorzano Barboza
- <valik@xs4all.nl> for reporting this.
-
- * ace/OS: Added operator== and operator!= for ACE_Cleanup_Info so
- that it will work correctly with BORLANDC's template mechanism.
- Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for
- reporting this.
-
- * ace/config-win32-common.h: Added
- ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION for BORLANDC. Thanks to
- Valik Solorzano Barboza <valik@xs4all.nl> for reporting this.
-
- * ace/Filecache.cpp: Fixed a bug with BORLANDC. Thanks to Valik
- Solorzano Barboza <valik@xs4all.nl> for reporting this.
-
- * ace/ACE.cpp (crc32): Added some parens to the COMPUTE macro to
- make it easier to grok. Thanks to Valik Solorzano Barboza
- <valik@xs4all.nl> for reporting this.
-
-Tue Nov 18 16:27:32 1997 <irfan@TWOSTEP>
-
- * ace/Log_Msg.cpp (log): Added a %D option to Log_Msg for
- "month/day/year hour:minute:second:microsecond". Thanks to John
- Mulhern <9107@MN3.LAWSON.lawson.com> for suggesting this.
-
- * ace/config-win32-common.h: If __ACE_INLINE__ is defined to be 0,
- we will undefine it.
-
-Tue Nov 18 15:59:37 1997 Steve Huston <shuston@riverace.com>
-
- * ace/IOStream.cpp: In underflow() and overflow(), use base() to
- check for buffer in use in every case - not just without
- ACE_HAS_STANDARD_CPP_LIBRARY==1. Thanks to James CE Johnson
- (jcej@lads.com) for this fix.
-
- * tests/MT_SOCK_Test.cpp: Allow the test to run even if not all of
- the proceses can be forked.
-
-Tue Nov 18 15:27:37 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/Timer_Queue_Adapters.cpp: Reordered include files. Thanks
- to Torbjorn Lindgren <tl@funcom.no> for noticing the problem.
-
-Tue Nov 18 11:40:18 1997 Steve Huston <shuston@riverace.com>
-
- * ace/IOStream.(cpp h): Added: &&(ACE_HAS_STANDARD_CPP_LIBRARY != 0)
- to the #if defined (ACE_HAS_STANDARD_CPP_LIBRARY) lines to only use
- the new iostreams things if that's been selected by the config file.
- In ACE_Streambuf::overflow(), changed:
- if (!eback()) to if (!pbase())
-
-Tue Nov 18 08:23:53 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Thread_Pool_Test.cpp (open): Moved the activate() method
- from the Thread_Pool constructor to the open() hook since the
- Thread_Pool class invoked ACE_Task::activate, indirectly invokes
- Thread_Pool::svc. There existed a miniscule probability this
- code would have crashed since on extremely broken C++ compilers
- the virtual member function Thread_Pool::svc may not correctly
- initialized in Thread_Pool constructor (i.e., it might point to
- ACE_Task_Base::svc() at this point). The chance of this
- happening is incredibly remote, but it's still a good ideal to
- put the call in the open() method so we can check the return
- value in the application. Thanks to Arturo for pointing this
- out.
-
-Tue Nov 18 05:40:53 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (inet_aton): on Chorus only, use the native
- ::inet_aton (). Thanks to Wei for pointing this out.
-
- * ace/OS.cpp (gethostby{addr,name}): on VxWorks only, don't htonl
- the input address because it already should be in network byte
- order. Store the output address in network byte order. Thanks
- to Wei for noticing this error.
-
- * include/makeinclude/wrapper_macros.GNU: add -DACE_PURIFY to
- CFLAGS if purify make flag is set, and -DACE_QUANTIFY if
- quantify is set. Thanks to Chris Cleeland for this suggestion.
-
- * ace/Memory_Pool.cpp (ACE_Shared_Memory_Pool): reordered
- initializers to match declaration order.
-
- * etc/purify.solaris2: added suppression of pthread_setcanceltype
- BSW.
-
-Tue Nov 18 00:11:26 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.50, released Tue Nov 18 00:11:26 1997.
-
-Mon Nov 17 22:35:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/Shared_Malloc/test_malloc.cpp: Added some additional
- calls to Malloc::instance ()->remove () to cleanup all the
- semaphore locks. Thanks to Tom Arbuckle
- <arbuckle@uran.informatik.uni-bonn.de> for reporting this.
-
- * ace/Memory_Pool.cpp (init_acquire): Fixed a problem caused by
- failing to initialize the minimum_bytes_ field in the
- ACE_Shared_Memory_Pool class. Thanks to Tom Arbuckle
- <arbuckle@uran.informatik.uni-bonn.de> for reporting this.
-
- * examples/Shared_Malloc/test_malloc.cpp: Updated the Shared
- Malloc test program to use the Singleton Thread Manager.
-
-Mon Nov 17 18:09:06 1997 <nw1@CUECA>
-
- * All eight different configurations of ACE passed all tests on
- our Alpha/NT.
-
-Mon Nov 17 15:37:52 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/INET_Addr.cpp (get_host_name): on VxWorks only, moved
- ::hostGetByAddr code block to _after_ the check for the
- address being INADDR_ANY. Without that check, get_host_name ()
- never returns the caller's own hostname.
-
- * netsvcs/lib/Makefile: the first line of the Local Target
- (Server_Logging_Handler.*) override mysteriously disappeared.
-
-Mon Nov 17 02:09:57 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.49, released Mon Nov 17 02:09:57 1997.
-
-Mon Nov 17 02:03:21 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/IOStream_T.cpp: Added a few more fixes for KCC C++ and its
- standard C++ library support.
-
-Mon Nov 17 01:34:34 1997 <nw1@COYOTE>
-
- * netsvcs/servers/main.cpp (main): Removed daemon and changed to
- use the singleton service configurator. Thanks to John Mulhern
- and Stephen Coy for tracing this down and Irfan for coming out
- with the fix.
-
-Sun Nov 16 21:58:51 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/*.dsp, ace/*.dsp: Added Release, Unicode Debug, and
- Unicode Release versions for each of the tests.
-
- Also found out that precompiled headers take up insane
- amounts of disk space when used with ACE and also slows
- the compilation down. I turned it off for the tests and
- for the ace libraries
-
-Sun Nov 16 13:34:29 1997 Douglas C. Schmidt <schmidt@merengue.cs.wustl.edu>
-
- * tests/SOCK_Connector_Test.cpp (fail_no_listener_nonblocking):
- Changed the line
-
- status = con.complete (sock);
-
- to
-
- if (sock.get_handle () != ACE_INVALID_HANDLE)
- status = con.complete (sock);
-
- The change worksaround a core dump due the the following
- conditions:
-
- - the find_another_host function in SOCK_Connector_Test comes
- up with the entry for an NT machine.
-
- - the ACE_OS::connect call at line 64 of SOCK_Connector.cpp
- "successfully" fails returning -1 but in this case
- errno is set to ECONNREFUSED.
-
- - Since errno is not EINPROGRESS or EWOULDBLOCK the
- ACE_SOCK_Stream 'new_stream' close member function is called
- which, besides closing the "handle", also sets it to
- ACE_INVALID_HANDLE.
-
- - Since the errno was ECONNREFUSED the 'if' test at line 97 of
- SOCK_Connector_Test.cpp is true and the next statement
-
- status = con.complete (sock);
-
- is called causing a core dump since sock.get_handle() is
- ACE_INVALID_HANDLE (-1 on Solaris).
-
- Thanks to Jack Erickson <jack@pinion.com> for reporting this.
-
- * ace/OS: Cast away the constness of the parameters to _tempnam()
- for Borland C++. Thanks to Valik Solrzano Barboza
- <valik@xs4all.nl> for this.
-
- * ace/config-unixware-2.1.2-g++.h: Changed
- ACE_HAS_OSF1_GETTIMEOFDAY to ACE_HAS_SVR4_GETTIMEOFDAY. Thanks
- to John Connett <jrc@skylon.demon.co.uk> for reporting this.
-
- * ace/SPIPE_Addr.cpp (set): Fixed a problem where we were
- potentially writing into character constants. Thanks to Darrell
- Brunsch for finding this.
-
- * ace/Get_Opt.cpp (operator): We need to make sure that all uses
- of ACE_OS::strchr() are consistent with respect to const
- correctness. Thanks to Darrell Brunsch for finding this.
-
- * ace/config-win32-common.h: Added a few minor changes for Borland
- C++. Thanks to Valik Solrzano Barboza <valik@xs4all.nl> for
- this.
-
- * ace/Log_Record.cpp (print): Changed the formal parameter from
- "const char host_name[]" to "const char *hostname" so that we
- can assign this in the function if necessary. Thanks to Valik
- Solrzano Barboza <valik@xs4all.nl> for this.
-
- * ace/OS.cpp: Moved the constructor for ACE_Cleanup_Info into the
- OS.cpp since it doesn't really need to be inline.
-
- * ace/WFMO_Reactor.cpp (notify): Replaced a "sizeof
- ACE_Notification_Buffer" with "sizeof
- (ACE_Notification_Buffer)". It's odd that the first approach
- (which is incorrect) isn't flagged by MSVC++... Thanks to Valik
- Solrzano Barboza <valik@xs4all.nl> for this.
-
- * ace/OS.i (sema_init): Added an ACE_ALLOCATOR_RETURN in the
- appropriate spot.
-
- * ace/ACE.cpp: Moved the implementation of strsplit_r() into the
- ACE.cpp file since it's rather long...
-
- * ace/OS: To be more conformant to the standard C++ library,
- I've added a pair of methods for strstr(), strchr(), strrchr(),
- etc. e.g., the function signature strstr(const char*, const
- char*) is replaced by the two declarations:
-
- const char *strstr (const char* s1, const char* s2);
- char *strstr (char* s1, const char* s2);"
-
- Thanks to Valik Solrzano Barboza <valik@xs4all.nl> for this.
-
- * ace: Added "ace.idl", which is a config file for Borland C++
- 5.x. Thanks to Valik Solrzano Barboza <valik@xs4all.nl> for
- this.
-
- * include/makeinclude/platform_linux_kcc.GNU (SOFLAGS): Improved
- this file a bit to work better with NULL pointers. Thanks to
- Ben Eng <ben@jetpen.com> for reporting this.
-
- * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp (main):
- Changed allocator to alloc to avoid conflicts with STL. Thanks
- to Ben Eng <ben@jetpen.com> for reporting this.
-
- * ace/config-linux-kcc.h: Added some fixes for the KCC compiler.
- Thanks to Ben Eng <ben@jetpen.com> for reporting this.
-
- * ace/IOStream: Added fixes for the standard C++ library. Thanks
- to Ben Eng <ben@jetpen.com> for reporting this.
-
-Sat Nov 15 17:31:58 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * Ran "make depend" on all of ACE.
-
-Sat Nov 15 15:55:52 1997 Steve Huston <shuston@riverace.com>
-
- * tests/Priority_Reactor_Test.cpp: Removed the writer->peer().close()
- call from client() that I added yesterday. ACE_Svc_Handler::destroy
- will end up doing the close - thanks to Irfan for pointing this out.
-
-Sat Nov 15 01:31:58 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.48, released Sat Nov 15 01:31:58 1997.
-
-Fri Nov 14 23:36:12 1997 Chris Cleeland <cleeland@tango.cs.wustl.edu>
-
- * ace/{OS,ACE}.{h,i} (strsplit_r): Moved strsplit_r from ACE_OS to
- ACE, which is where it should go.
-
- * ace/ACE.cpp (ldfind): Changed uses of strsplit_r to be scoped
- under ACE rather than ACE_OS.
-
-Fri Nov 14 22:57:04 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks*.h: added ACE_LACKS_NETDB_REENTRANT_FUNCTIONS.
- This is necessary for the gethostby{addr,name}_r support added
- yesterday.
-
-Fri Nov 14 18:42:23 1997 Steve Huston <shuston@riverace.com>
-
- * tests/Priority_Reactor_Test.cpp: Fixed client to close its socket
- before exiting from the thread/process.
-
-Fri Nov 14 17:41:40 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.i: Fixed some typos in strsplit_r().
-
- * ace/OS.h: Moved the ACE_ALLOCATOR* stuff from Malloc_T.h to
- OS.h, which is where it belongs.
-
- * examples/Reactor/Dgram: Reformatted some of the example
- code to make it more readable.
-
-Fri Nov 14 17:08:00 1997 Chris Cleeland <cleeland@tango.cs.wustl.edu>
-
- * ace/OS.i (strsplit_r): Added fixes so that this properly returns
- the last piece. Thanks to Scott Herscher <scott@expersoft.com> for
- submitting this! Also beefed up the comments.
-
- * ace/OS.h: Added definitions to work around VxWorks' lack of
- proper ANSI C/C++ prototypes for the functions found in
- <arpa/inet.h>. The definitions were taken from Solaris 2.5.1, but
- appear to work just fine. For now this is only in effect when
- compiling with the Green Hills (ghs) environment, but it should
- probably be used for others (such as g++) as well.
-
-Fri Nov 14 01:10:33 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.47, released Fri Nov 14 01:10:33 1997.
-
-Fri Nov 14 00:14:21 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.* (gethostbyaddr_r,gethostbyname_r): added VxWorks
- support.
-
-Thu Nov 13 20:29:18 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.46, released Thu Nov 13 20:29:18 1997.
-
-Thu Nov 13 19:11:36 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-sunos5.4.*: Solaris 2.4 doesn't support the ualarm()
- call unless you use the (broken) /usr/ucb/cc compiler. Here's a
- patch for $ACE_ROOT/ace/config-sunos5.4-sunc++-4.x.h to fix the
- problem. Thanks to Caleb Epstein
- <epstein_caleb_unix@jpmorgan.com> for reporting this.
-
-Thu Nov 13 19:25:50 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.x-sgic++.GNU:
- Updated comment on when should the user disable the use of
- -lpthread
-
-Thu Nov 13 18:18:16 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Containers.h, Containers.cpp, Hash_Map_Manager.cpp, Malloc_T.h:
- Removed the conditional code for the macro
- ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR. The workaround for
- this compiler bug is to remove "this->" from the object pointer
- used in the ACE_DES_FREE_TEMPLATE macro invocation. This compiler
- bug is HP case SR5003396259 for future reference.
-
- * ace/config-hpux-10.x-hpc++.h: Added ACE_HAS_ANSI_CASTS; removed
- ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR (both for aC++ only).
-
- * ace/README: Removed ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR, as
- it is no longer used.
-
-Thu Nov 13 16:51:40 1997 <nw1@CHA-CHA>
-
- * ace/OS.h: Added two new macros ACE_FACTORY_DECLARE and
- ACE_FACTORY_DEFINE. Changed definitions of
- ACE_SVC_FACTORY_DECLARE AND ACE_SVC_FACTORY_DEFINE to use these
- two macros. Refer to changes of the ACE_Export related macros
- below, you can now declare/define your service factories as,
-
- ACE_FACTORY_DECLARE (FOOBAR, fac_class);
- ACE_FACTORY_DEFINE (FOOBAR, fac_class);
-
- This will ensure they get define properly and proper decoration
- will be added.
-
-Thu Nov 13 16:52:31 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp: Removed all ! defined
- (ACE_HAS_FSU_PTHREAD). Thanks to ARTURO MONTES
- <mitosys@colomsat.net.co> for reporting this.
-
- * ace/config-gcc-2.7.2.h: Added ACE_HAS_TEMPLATE_SPECIALIZATION.
- Thanks to ARTURO MONTES <mitosys@colomsat.net.co> for reporting
- this.
-
- * ace/config-fsu-pthread.h: added ACE_LACKS_THREAD_PROCESS_SCOPING.
- Thanks to ARTURO MONTES <mitosys@colomsat.net.co> for reporting
- this.
-
- * ace/OS.h: Separate definition of proper export flag for
- platforms from setting these flags for building/not building
- DLL. I keep ACE_Export and ACE_Svc_Export to remain backward
- compatibality but now, they are defined using the new "common"
- definition. This changes is made in hope that it will simplify
- codes generated by TAO_IDL compiler.
-
- Several new directives are added to these file. These common
- directives will be set to proper values (macros) according to
- the platform we use. They are:
-
- ACE_Proper_Export_Flag
- ACE_Proper_Import_Flag
- ACE_EXPORT_SINGLETON_DECLATATION(T)
- ACE_IMPORT_SINGLETON_DECLARATION(T)
- ACE_PROPER_SINGLETON_INSTANTIATION(T)
-
- I use them to define ACE_Export and ACE_Svc_Export. I hope it
- is easier to define your own export decoration flag now. Here
- is an example. Say you want to define an export flag for your
- DLL file : foobar.dll. First, you need to add the following to
- a common header file:
-
- // Here are definition for FOO_BAR library.
- #if defined (FOOBAR_HAS_DLL) && (FOOBAR_HAS_DLL == 1)
- # if defined (FOOBAR_BUILD_DLL)
- # define FOOBAR_Export ACE_Proper_Export_Flag
- # define FOOBAR_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
- # define FOOBAR_SINGLETON_INSTANTIATION(T) ACE_PROPER_SINGLETON_INSTANTIATION (T)
- # else
- # define FOOBAR_Export ACE_Proper_Import_Flag
- # define FOOBAR_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
- # define FOOBAR_SINGLETON_INSTANTIATION(T)
- # endif /* FOOBAR_BUILD_DLL */
- #else /* ! FOOBAR_HAS_DLL */
- # define FOOBAR_Export
- # define FOOBAR_SINGLETON_DECLARATION(T)
- # define FOOBAR_SINGLETON_INSTANTIATION(T)
- #endif /* FOOBAR_HAS_DLL */
-
- Be sure to include "ace/OS.h" before these definitions so that
- the macros they use will be properly initialized. After you've
- done this, on Win32, define "FOOBAR_HAS_DLL=1" if you want to
- build DLL, define it as "FOOBAR_HAS_DLL=0" if you want to build
- static library. In your library project file, you must define
- the directives FOOBAR_BUILD_DLL and decorate classes/objects you
- want to export with FOOBAR_Export so that they can be declared
- automatically according whether you are building/linking with
- static library or dynamic library.
-
-Thu Nov 13 05:47:42 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp: added ACE_TSS_Singleton<ACE_Dynamic,
- ACE_Null_Mutex> instantiation, for the recent Svc_Handler
- change.
-
- * ace/Object_Manager.h (default_mask): moved out of ACE_MT_SAFE
- protection.
-
- * ace/OS.{h,i},config-vxworks-ghs-1.8.h,README (strlen,strcpy):
- protect declarations of wchar versions with
- ACE_HAS_WCHAR_TYPEDEFS_CHAR. GreenHills typedefs wchar to char.
-
- * ace/Singleton.cpp: register ACE_TSS_Singletons for cleanup with
- Object_Manager.
-
- * ace/OS.{i,cpp} (gethostbyaddr): added VxWorks support.
-
-Thu Nov 13 02:06:58 1997 Chris Cleeland <cleeland@macarena.cs.wustl.edu>
-
- * ace/Signal.i: Changed to use new Object Manager member.
-
- * ace/Object_Manager.cpp: Added a new member to the Object
- Manager--default_mask. This is the default signal mask employed
- by ACE_Sig_Set. Moving the object into the OM saves cycles b/c we
- only construct it once and just re-use every time.
-
- * ace/Handle_Set.cpp: Added two new macros--ACE_DIV_BY_WORDSIZE and
- ACE_MULT_BY_WORDSIZE--which either divide or multiply the argument
- by ACE_Handle_Set::WORDSIZE. The manner in which this is
- accomplished is governed by the #define
- ACE_USE_SHIFT_FOR_EFFICIENCY--when defined, ACE tries to use
- shifts to implement multiplication and division rather than actual
- multiply and divide operations. Currently this is disabled.
-
-Wed Nov 12 19:13:05 1997 <irfan@TWOSTEP>
-
- * ace/Svc_Handler: Changed hand written tss singleton to
- ACE_TSS_Singleton. Lot of (unnecessary) code disappeared.
- Thanks to David Levine for suggesting this.
-
- * ace/Object_Manager: Removed ACE_SVC_HANDLER_LOCK.
-
-Wed Nov 12 16:29:15 1997 Sumedh Mungee <sumedh@lindy.cs.wustl.edu>
-
- * platform_netbsd.GNU: added /usr/lib/c++rtO.o to SOBUILD to
- insure that static objects' ctors are called.
-
-Wed Nov 12 00:20:38 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{i,cpp} (inet_ntoa): use VxWorks' native inet_ntoa. It's
- not documented but it works.
-
- * ace/OS.cpp (gethostbyname): on VxWorks, load static first_addr on
- every call, not just the first.
-
- * include/makeinclude/rules.local.GNU: removed extra "fi" in
- install operation.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: removed +w from
- CFLAGS because it generates too many spurious warnings.
-
- * ace/TTY_IO.cpp (control): commented out unused local variable
- c_line. Thanks to Amos Shapira <amos@gezernet.co.il> for
- reporting this.
-
- * ace/OS.{h,i} (hostname): added Chorus support. Thanks to Wei
- for the patches.
-
-Tue Nov 11 23:44:17 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.45, released Tue Nov 11 23:44:17 1997.
-
-Tue Nov 11 21:26:36 1997 Douglas C. Schmidt <schmidt@lindy.cs.wustl.edu>
-
- * platform_sunos5_sunc++.GNU, platform_irix6.x-sgic++.GNU, rules.local.GNU:
- Added some minor fixes.
-
-Tue Nov 11 20:18:27 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * Makefile: Added the tests and netsvcs directory to
- RELEASE_LIB_FILES since this is pretty important to determine
- whether ACE works. Thanks to Chuck Gehr and Steve Coy for this
- suggestion.
-
- * tests/UNIXclerk.conf: Changed "merengue" to "localhost."
- Thanks to Steve Coy for this suggestion.
-
- * ace/config-lynxos.h (getopt): Missing 't' from const => see
- getopt prototype parameter list. Thanks to Manojkumar Acharya
- <mja@cvsf325.gpt.co.uk>.
-
-Tue Nov 11 08:09:16 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (inet_aton): declare local ip_addr as an ACE_UINT32
- instead of a long. Real programmers have 64-bit longs.
-
- * ace/INET_Addr.cpp (get_host_name): added ACE_UNUSED_ARG (len);
- for VxWorks only.
-
-Tue Nov 11 13:19:46 1997 Torbjorn Lindgren <tl@funcom.com>
-
- * include/makeinclude/rules.local.GNU: Fixed so that the ACE
- makefiles doesn't create circular symlinks (happens if
- something fails when building libACE.* with "make -k", or when
- doing parallel builds). It's now possible to do parallel
- builds of libACE.* without having to clean up a mess afterwards.
-
- * include/makeinclude/platform_irix6.x-sgic++.GNU: Removed
- .so build with links instead (ace/apps/examples/tests and my own
- programs all work well with this, and the manual seems to suggest
- that it hasn't ever been necessary on this platform)
-
- * ace/config-irix6.x-sgic++-nothreads.h: Added
- ACE_HAS_XPG4_MULTIBYTE_CHAR for SGI IRIX 6.[2-5].
-
-Tue Nov 11 04:50:06 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * examples/Reactor/Multicast/server.cpp (handle_timeout): Fixed a
- typo. Thanks to Sandro Doro <doros@aureus.sublink.org> for
- reporting this.
-
-Tue Nov 11 04:20:09 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.44, released Tue Nov 11 04:20:09 1997.
-
-Tue Nov 11 01:44:39 1997 <irfan@TWOSTEP>
-
- * examples/Naming/test_open.cpp (main): Added a new naming test
- that binds to the net_local server and tries to bind entries to
- it.
-
- * netsvcs/lib/Name_Handler.cpp: Added a new class called
- Naming_Context. This helper class adds the correct default
- constructor to the ACE_Naming_Context class so that we can use
- it in ACE_Singleton.
-
- Previously, each Name_Handler was getting its own
- Naming_Context. This is obviously incorrect as the mapping
- address in already occupied by the first Name_Handler.
- Therefore, the Naming_Context was changed into a Singleton
- accessable by all Name_Handlers.
-
- * ace/WFMO_Reactor.cpp (handle_additions && handle_deletions):
- Changed code to make sure that we should not make the upcall
- until all the internal data structures have been updated. This
- is to protect against upcalls that try to deregister again.
-
-Tue Nov 11 01:28:50 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.43, released Tue Nov 11 01:28:50 1997.
-
-Mon Nov 10 21:30:04 1997 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu>
-
- * INET_Addr.cpp: In the ACE_INET_Addr::get_host_name (char
- hostname[], size_t len) method, an unnecessary local variable
- called "name" was being used and the actual parameter "hostname"
- was never getting updated. The local variable is now removed and
- we use the actual parameter everywhere.
-
-Mon Nov 10 20:44:43 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * etc/ACE-guidelines.html: Added a section for ACE Design Rules,
- and added a design rule about sentinels.
-
-Mon Nov 10 18:11:05 1997 Sumedh Mungee <sumedh@lindy.cs.wustl.edu>
-
- * ace/Singleton.h (ACE_TSS_Singleton): Changed ACE_TSS<TYPE> to
- ACE_TSS_TYPE (TYPE), so that the ACE_TSS_TYPE macro (defined in
- OS.h) gets used. (Irfan's suggestion.)
-
-Mon Nov 10 17:02:40 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS.h: Reformatted the #ifdef structure of the
- ACE_HAS_XPG4_MULTIBYTE_CHAR to conform to ACE usage.
-
- * ace/Service_Repository.cpp: The close() method needed a '\n' in
- one of the debug messages. Thanks to Steve Coy for reporting
- this.
-
-Mon Nov 10 14:09:24 1997 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h, OS.i, README: Added new macro, ACE_HAS_XPG4_MULTIBYTE_CHAR
- for platforms which supply wchar.h and wide character functions.
- Added the use if it in OS.h, and use the functions in OS.i,
- strlen and strcpy with wchar_t arguments.
-
- * ace/config-hpux-10.x.h, config-aix-4.2.x.h, config-mvs.h,
- config-sunos5.5-sunc++-4.x.h: Added ACE_HAS_XPG4_MULTIBYTE_CHAR.
-
-Mon Nov 10 13:33:02 1997 <irfan@TWOSTEP>
-
- * ace/OS.h (ACE_WRITE_GUARD): Added macros for ACE_WRITE_GUARD and
- ACE_READ_GUARD. Thanks to Brian Raven <Brian.Raven@liffe.com>
- for suggesting this.
-
- * tests/Thread_Mutex_Test.cpp: Modified version of Mutex_Test that
- exclusively works on a Thread_Mutex.
-
- * tests/Mutex_Test.cpp: Removed this test. It have been
- superseded by Thread_Mutex_Test and Process_Mutex_Test.
-
- * ace/OS.i (thread_mutex_trylock): Fixed the return value and
- errno for this system call such that it is consistent with other
- trylock calls.
-
-Mon Nov 10 10:21:55 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/INET_Addr.cpp: updated gethostbyname/addr support for
- Chorus. Thanks to Wei Chiang <chiang@tele.nokia.fi> for
- the patches for this fix.
-
- * ace/config-chorus.h: disabled ACE_LACKS_SOCKETPAIR. Thanks
- to Wei for this fix, also.
-
- * tests/Thread_Mutex_Test.cpp (test): don't compile this function
- if ACE_HAS_THREADS is not defined.
-
- * tests/IOStream_Test.cpp (main): removed extra % at end of
- ACE_ERROR_RETURN message.
-
- * etc/ace_ld,include/makeinclude/platform_vxworks5.x_g++.GNU:
- added ace_ld, a drop-in replacement for ld that supports munching.
- We need to munch for VxWorks/g++.
-
- * ACE-INSTALL.html: updated VxWorks info to mention requirement
- for perl with VxWorks/g++. And, LD_LIBRARY_PATH must be set
- to find the ACE libraries on the host if using TAO.
-
-Sun Nov 09 23:29:43 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.42, released Sun Nov 09 23:29:43 1997.
-
-Sun Nov 09 22:18:30 1997 <irfan@TWOSTEP>
-
- * ace/config-win32-common.h (ACE_HAS_ANSI_CASTS): VC++ compilers
- support ANSI style casts.
-
- * ace/OS.h (ACE_static_cast): Added ANSI style cast macros to ACE.
- Thanks to Stephen Coy <stevec@magna.com.au> for suggesting this.
-
-Sun Nov 9 21:34:16 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/OS: Enhanced ACE_OS so that it *always* defines
- implementations for the wchar_t versions of strlen() and
- strcpy(), even if the platform doesn't explicitly support
- UNICODE. This is necessary since TAO needs these functions.
-
- * ace/OS.h: Added a typedef for wchar_t to handle the case where
- the OS doesn't support UNICODE.
-
- * ace/ACE.cpp: Added hex character routines from TAO since they
- are generally useful.
-
- * ace/OS.h: Moved the TAO-specific #defines into TAO, where they
- belong. Thanks to David Levine and Chris Cleeland for insisting
- on this...
-
-Sun Nov 09 17:55:50 1997 <nw1@COYOTE>
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp (open):
- Removed codes that reset a socket's non-blocking flag. This has
- been taken care of by ACE_Acceptor::activate_svc_handler now and
- resetting this flag twice on NT caused us grief. Thanks to
- Georges Ata <George_ata@srt.ccmail.compuserve.com> for reporting
- the bug.
-
- * ace/ACE.i (hex2byte,nibble2hex): Replaced ACE_INLINE to inline
- for these two functions. Functions in this file are always
- inlined.
-
- * ace/config-win32-common.h (ACE_LACKS_RLIMIT): Added this flags
- so we don't need to treat ACE_WIN32 specially.
-
- * ace/OS.i (getrlimit,setrlimit): Removed unnecessary conditional
- flag ACE_WIN32.
-
- * ace/Thread_Manager.cpp (wait): Merged the two blocks within this
- function so that we can avoid relase/acquire lock
- unnecessarily. Thanks to Doug for his careful scrutiny.
-
-Sun Nov 09 09:27:24 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Thread_manager.cpp (wait): removed unused local,
- threads_waited_on.
-
-Sat Nov 08 23:20:50 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.41, released Sat Nov 08 23:20:50 1997.
-
-Sat Nov 8 15:46:30 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/INET_Addr.cpp: Enhanced the get_host_name() functions so
- that if the sin_addr.s_addr == INADDR_ANY we assume that we're a
- server, and we return our "hostname".
-
- * Added a number of minor fixes for UNIXWARE with G++. Thanks to
- Michael Rueger <m_rueger@syscomp.de> for reporting these.
-
- * ace/Thread_Manager.h: Both Irix5 and VxWorks have problems with
- local typedefs with GCC. Thanks to Laura Paterno
- <lpaterno@d0chb.fnal.gov> for reporting this.
-
- * ace/Timer_Queue_Adapters.cpp: Changed some errant uses of lock_
- to mutex_. Thanks to David Levine for reporting this.
-
- * ace/ACE.cpp: set_handle_limit() was buggy because it never
- increased the handle limit. With this change we do not need
- special code in ACE_Select_Reactor with ACE_LACKS_RLIMIT because
- this is managed in ACE::set_handle_limit. Thanks to Arturo for
- this fix.
-
- * ace/Select_Reactor.cpp (open): We no longer need to
- conditionally compile for ACE::set_handle_limit(). Thanks to
- Arturo for this fix.
-
-Fri Nov 7 18:53:13 1997 Sumedh Mungee <sumedh@macarena.cs.wustl.edu>
-
- * ace/config-netbsd.h: Added file for NetBSD 1.2G.
-
- * tests/SOCK_Connector_Test.cpp (fail_no_listener_nonblocking):
- Added ECONNREFUSED as a "valid failure", alongwith EWOULDBLOCK.
-
- * ace/OS.i (msync): msync on NetBSD takes only two parameters as
- opposed to the usual three. (It doesnt have the "flags"
- parameter.) The ACE_HAS_BROKEN_NETBSD_MSYNC flag works around
- that.
-
-Fri Nov 7 16:04:35 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp: Added a missing '>' for one of the
- template specializations. Thanks to Torbjorn Lindgren
- <tl@funcom.no> for reporting this.
-
- * ace/OS.cpp: ACE_OS::ACE_OS is defined in OS.cpp, which causes
- the compiler to complain about multiple definitions. Other
- ACE_CLASS_IS_NAMESPACE doesn't have constructors, which is why
- they work. Thanks to Torbjorn Lindgren <tl@funcom.no> for
- reporting this.
-
-Fri Nov 07 15:14:51 1997 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Threads/tss1.cpp: replaced ACE_SYNCH_1 and _2 with
- _DECL and _USE.
-
- * ace/config-linux{,-common}.h: created config-linux-common.h
- and moved alpha-specific defines to it.
-
- * ace/FILE_Addr.cpp (set): explicitly declare int return type.
-
- * performance-tests/Misc/preempt.cpp (get_options): DEC CXX didn't
- like conversion of -1 to u_int, so changed return type to int and
- all ACE_ERROR_RETURNs to return -1.
-
-Fri Nov 07 10:05:12 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.40, released Fri Nov 07 10:05:12 1997.
-
-Fri Nov 7 09:58:09 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Connector.cpp (fini): Added a call to
- ACE_Map_Manager::close() in fini() since the destructor may not
- be called. Thanks to Eric C. Newton <ecn@smart.net> for
- reporting this.
-
- * ace/{FILE,SPIPE}_Addr.cpp (set): Added a return value. Thanks
- to Marios Zikos <zikos@csi.forth.gr> for reporting this.
-
-Fri Nov 07 02:45:55 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.39, released Fri Nov 07 02:45:55 1997.
-
-Fri Nov 7 01:06:08 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Message_Queue: Added a new method called deactivated(),
- which returns true if the queue has been deactivated. Thanks to
- Wei Chiang <chiang@tele.nokia.fi> for reporting this.
-
- * ace/{config-chorus.h,OS.cpp}: Added a new macro called
- ACE_CHORUS_DEFAULT_MIN_STACK_SIZE. Thanks to Wei Chiang
- <chiang@tele.nokia.fi> for reporting this.
-
- * ace/DEV_Addr.cpp,
- ace/FILE_Addr.cpp,
- ace/SPIPE_Addr.cpp,
- ace/INET_Addr.cpp,
- ace/UNIX_Addr.cpp: Fixed the set(const Foo &) method so that
- it correctly detects cases where we're passed in a
- ACE_Addr::sap_any. This is a total hack...
-
- * ace/{OS.h,Addr.cpp}: Added a new AF_ANY flag, which is set to -1.
-
-Thu Nov 6 23:05:14 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * Changed the obtusely named ACE_SYNCH_1 and ACE_SYNCH_2 macros to
- ACE_SYNCH_DECL and ACE_SYNCH_USE, respectively. Thanks to Mike
- Kamrad <J.M.KAMRAD.II@cdev.com> for suggesting this.
-
- * ace/Select_Reactor.cpp, ace/ACE.cpp: Broaded the comparison so
- that we only try to use {set|get}rlimit() if ACE_LACKS_RLIMIT is
- *false*. Thanks to Arturo Montes <mitosys@colomsat.net.co> for
- reporting this.
-
- * ace/Object_Manager: Added support for
- get_singleton_lock(ACE_Mutex *). Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for reporting this.
-
- * ace/Connector.cpp: If connect_n() fails make sure to return -1.
- Thanks to Stephen Coy <stevec@magna.com.au> for pointing out the
- problem.
-
- * ace/config-sco-5.0.0.h: Removed the ACE_LACKS_RLIMIT flag.
- Thanks to Arturo Montes <mitosys@colomsat.net.co> for reporting
- this.
-
- * tests: Changed all uses of "localhost" to
- ACE_DEFAULT_SERVER_HOST. This solves some problems with MVS.
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
- this.
-
- * examples/Timer_Queue: Changed COMMAND to CMD so it won't
- conflict with the HP/YUX compiler. Thanks to Sandro Doro
- <doros@aureus.sublink.org> for reporting this.
-
-Thu Nov 06 22:13:01 1997 <irfan@TWOSTEP>
-
- * examples/Connection/blocking/SPIPE-connector.cpp (init): Fixed
- odd looking typecast.
-
- * ace: Changed the comparison &local_sap == &ACE_Addr::sap_any to
- local_sap == ACE_Addr::sap_any. Thanks to Steve Coy
- <stevec@magna.com.au> for pointing out that the default
- parameter const ACE_Addr &local_sap = ACE_Addr::sap_any will
- cause a copy of sap_any to be made and passed to the method,
- invalidating the memory address comparison.
-
- The following files were effected:
-
- Asynch_Acceptor.cpp
- SOCK_Acceptor.cpp
- SOCK_CODgram.cpp
- SOCK_Dgram.cpp
- TLI_Acceptor.cpp
- TLI_Connector.cpp
-
- * ace/Addr.cpp: Made sure that the type and size of
- ACE_Addr::sap_any does not match the type and size of any other
- Addr type. This is necessary for local_addr==ACE_Addr::sap_any
- to return 0 when local_addr is anything other than
- ACE_Addr::sap_any.
-
- * ace/Synch_T.h: Fixed all the ACE_SYNCH_* defines. Thanks to
- Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing the
- problems.
-
-Thu Nov 06 18:30:42 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Addr.(h i), DEV_Addr.(h i), FILE_Addr.(h i), INET_Addr.(h
- cpp), SPIPE_Addr.(h i), UNIX_Addr.(h i): Changed the operators
- == and != to be non-virtual, and to accept the 'sap' argument as
- its own type (not ACE_Addr for all of them). The
- implementations of the operators compare type-specific data
- without having to check the inherited type member. Thanks to
- Steve Coy <stevec@magna.com.au> and Irfan and Nanbor for a huge
- amount of work on these changes. *** NOTE - there is still some
- SOCK_Connector problems related to these changes on HP-UX. The
- hunt continues.
-
- * ace/Connector.cpp (connect_n): return -1 if any of the connect
- attempts fail.
-
- * tests/Reactor_Performance_Test.cpp: Don't crash if any of the
- client's connect attempts fail.
-
- * ace/Reactor.h: Added #include "ace/Handle_Set.h" - AIX needs the
- class definition when generating templates in programs.
-
- * tests/Map_Manager_Test.cpp: Don't even try if the compiler doesn't
- have template specialization working correctly.
-
- * tests/Priority_Reactor_Test.h: Added #include "ace/SOCK_Stream.h"
- so AIX could generate template code correctly.
-
- * tests/Reactor_Performance_Test.cpp: Moved class definitions out to
- Reactor_Performance_Test.h (new file) to allow AIX to generate
- templates.
-
- * tests/SOCK_Connector_Test.cpp: Added a couple more checks to make
- sure the local host is not the test target, and changed from using
- port 4242 to 42000 (there is actually a program on AIX which listens
- at port 4242).
-
- * tests/Thread_Manager_Test.cpp: Moved a class definition out to
- Thread_Manager_Test.h (new file) to allow AIX to use it in template
- generation.
-
- * tests/Timer_Queue_Test.cpp: Limit the number of iterations to 2000.
-
-Thu Nov 6 16:51:36 1997 Sumedh Mungee <sumedh@lindy.cs.wustl.edu>
-
- * tests/SOCK_Connector_Test.cpp (find_another_host): Added
- ACE_NETBSD to the #if define around gethostent.
-
-Thu Nov 06 00:08:01 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.38, released Thu Nov 06 00:08:01 1997.
-
-Wed Nov 5 21:32:36 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/Service_Repository.cpp (close): Looking in the
- Service_Repository while shutting it down does really bad
- things. Some careful changes to the loop in
- Service_Repository::close() fixed this. Thanks to Eric
- C. Newton <ecn@smart.net> for reporting this.
-
- * Added new support for SCO UNIX with no threads. Thanks to
- Arturo Montes <mitosys@colomsat.net.co> for reporting this.
-
-Wed Nov 05 20:31:36 1997 <irfan@TWOSTEP>
-
- * ace/Connector.cpp (close): Added an explicit close() method for
- the Strategy_Connector. This closes down all Strategy_Connector
- specific things and then calls close() on the base class. Also
- modified the destructor to call this routine.
-
-Wed Nov 5 17:09:05 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.cpp (cleanup_tss): Rearranged how TSS'es get cleanup on
- Win32. This was causing a tiny memory leak on NT.
-
-Wed Nov 5 15:03:31 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Thread_Manager.{h,cpp}: Changed the data type of
- terminated_thr_queue_ back to
- ACE_Unbounded_Queue<ACE_Thread_Descriptor>.
-
-Wed Nov 05 14:16:27 1997 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (mutex_trylock): Fixed code for ACE_HAS_DCE_DRAFT4_THREADS
- (HP-UX) to process the returned status correctly. Thanks to
- Robert Head <rhead@virtc.com> for reporting this.
-
-Wed Nov 05 13:01:49 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.cpp (daemonize): added ACE_UNUSED_ARG (close_all_handles)
- if ACE_LACKS_FORK.
-
-Wed Nov 05 01:06:53 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.37, released Wed Nov 05 01:06:53 1997.
-
-Tue Nov 04 23:11:41 1997 <nw1@COYOTE>
-
- * ace/Thread_Manager.h: Added an ACE_Unbounded_Queue to
- collect threads that need to be removed. We can no longer
- remove thread descriptors directly from <thr_list_> because that
- would clobber the integrity of the double-linked list. Changed
- the data type of <terminated_thr_queue_> from
- ACE_Unbounded_Queue<ACE_Thread_Descriptor> to
- ACE_Unbounded_Queue<ACE_Descriptor*> to reduce the codes
- generated.
-
- * ace/Thread_Manager.cpp: Reordered several thread operations so they
- won't remove thread descriptor directly while traversing the
- <thr_list_>. Removed #ifdef <VXWORKS> from template
- instantiation section because now VxWorks needs it too.
-
- * ace/Container.{h,cpp}: Added more check on validities of passed in
- node to ACE_Double_Linked_List::remove_element. Also changed
- the function to reset a node's <prev_> and <next_> to prevent
- double removal of a node, which messes up the list structure.
-
- * ace/ace_{dll,lib}.dsp: Excluded Acceptor.cpp from make
- explicitly. Moving this file to "template file folder" was not
- enough.
-
-Tue Nov 4 18:03:51 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/config-sco*.h: Added #define ACE_DEFAULT_CLOSE_ALL_FILES 0
- to the SCO Unix config files.
-
- * ace/ACE.cpp: Added a new macro called
- ACE_DEFAULT_CLOSE_ALL_FILES to workaround a bug with SCO Unix.
- Thanks to Arturo Montes <mitosys@colomsat.net.co> for reporting
- this.
-
- * The ACE developer's drinking song:
-
- 100 little bugs in the code,
- 100 bugs in the code,
- fix one bug, compile it again,
- 101 little bugs in the code.
- 101 little bugs in the code.....
-
- Thanks to Steve Huston for appreciating the humor in this ;-).
-
- * ace/Containers.cpp (insert_head): Added some minor stylistic
- fixes.
-
- * apps/Gateway/Gateway/Event_Channel.cpp (initiate_acceptor):
- Changed
-
- if (ACE_Reactor::instance ()->register_handler
- (&this->acceptor_, ACE_Event_Handler::ACCEPT_MASK) == -1)
-
- to:
-
- if (this->acceptor_.open(this->options ().acceptor_port_,
- ACE_Reactor::instance (), this->options ().blocking_semantics_) == -1)
-
- Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
-
- * apps/Gateway/Gateway/Gateway.cpp (parse_args): Changed
-
- ACE_Get_Opt get_opt (argc, argv, "abC:cdP:pq:t:vw:", 0);
-
- to:
-
- ACE_Get_Opt get_opt (argc, argv, "abC:cdP:p:q:t:vw:", 0);
-
- Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
-
-Tue Nov 4 18:13:52 1997 Sergio Flores <sergio@macarena.cs.wustl.edu>
-
- * examples/Timer_Queue/Async_Timer_Queue_Test.cpp (cancel):
- Initialized act pointer variable to 0, which was causing
- core dump in linux. In general, all pointers should be
- initialized. This should have been warned by the compiler.
- Thanks to Sandro Doro <doros@aureus.sublink.org> for
- pointing this out.
-
-Tue Nov 4 11:14:35 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Containers.cpp: Fixed some stylistic ambiguities.
-
-Tue Nov 04 10:12:21 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_hpux.GNU: added +a1 to CFLAGS
- to select ANSI C, instead of the default K+R C. This is
- required with the current ace/Object_Manager.cpp, because
- it initialized autos using aggregates (via the
- ACE_STATIC_SVC_DEFINE macro). Thanks to Neil B. Cohen
- <nbc@metsci.com> for helping to sort this out.
-
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: changed
- another lock () to mutex ().
-
- * tests/run_tests.vxworks: added MT_SOCK_Test.
-
-Tue Nov 04 04:13:23 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.36, released Tue Nov 04 04:13:23 1997.
-
-Tue Nov 04 03:50:57 1997 <irfan@TWOSTEP>
-
- * ace/Addr.i (operator == && operator !=): Comparison of
- sap.addr_type_ should be with this->addr_type_ and not with 0.
-
-Mon Nov 3 23:18:33 1997 Sergio Flores <sergio@macarena.cs.wustl.edu>
-
- * ace/Synch_T.cpp (dump): change the field lock_ to mutex_.
-
-Mon Nov 3 22:37:58 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Timer_Wheel_T.cpp:
- * ace/Timer_List_T.cpp:
- * ace/Timer_Hash_T.cpp: Changed the use of lock_ to mutex_.
-
- * ace/OS.cpp (cleanup_tss): Added TSS cleanup codes for Win32 when
- non-main threads are exiting. Without them, Thread_Manager won't
- cleanup its thread table correctly.
-
- * ace/SV_Semaphore_Complex.cpp (close): Changed to return 0
- only when this->key_ == -1 instead of <= -1. This was causing
- semaphore leaks on Solaris.
-
- * ace/UNIX_Addr.i (operator ==):
- * ace/SPIPE_Addr.i (operator ==):
- * ace/FILE_Addr.i (operator ==):
- * ace/DEV_Addr.i (operator ==):
- * ace/INET_Addr.cpp (operator ==): Added checking for the same
- Addr types for addresses under comparison. Thanks to Stephen
- Coy <stevec@magna.com.au> for pointing out the problem.
-
-Mon Nov 03 18:32:42 1997 Carlos O'Ryan <coryan@MILONGA>
-
- * ace/Proactor.cpp:
- * ace/Timer_Queue_T.h:
- * ace/Timer_Queue_T.cpp:
- * ace/Timer_Heap_T.cpp:
- * ace/Synch_T.h:
- * ace/Synch_T.cpp:
- * ace/Atomic_Op.i:
- Changed the method name from lock() to mutex(), otherwise the
- lame HP/C++ compiler gets completely confused. Also changed the
- field from lock_ to mutex_
-
-Mon Nov 3 17:15:17 1997 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: Removed "class ace_dewarn_gplusplus;" from the
- ACE_CLASS_IS_NAMESPACE macro. Produces warnings on AIX and
- shouldn't be needed.
-
-Mon Nov 3 15:49:18 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/Connector.cpp (connect): "Fixed" so that the service handler
- pointer passed in by the caller doesn't change until the connect
- completes without errors.
-
-Mon Nov 03 08:15:21 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Managed_Object.[hi] (get_preallocated_{object,array}):
- inlined function definitions into the class header so that
- it compiles on AIX 4.1 w/ xlC 3.01. Thanks to Bob Lyng
- <rlyng@synertech.highmark.com> for reporting this problem,
- at to Steve H. for testing the fix.
-
- * include/makeinclude/{platform_linux*.GNU,wrapper_macros.GNU},
- netsvcs/lib/Makefile: suppress -g when compiling ace/Timer_Hash.cpp
- and netsvcs/lib/Server_Logging_Handler.cpp on Linux only.
- (It really only needs to be suppressed on Linux/Alpha.)
-
- * apps/Gateway/Gateway: protect instantiation of
- ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_MT_SYNCH>
- with ACE_HAS_THREADS.
-
- * ace/{Naming_Context.cpp,Service_Config.cpp,Object_Manager.cpp}:
- moved ACE_Naming_Service and ACE_Service_Manager static service
- objects to ACE_Object_Manager.
-
- With this change, the ACE library no longer has any static
- objects that require destruction.
-
- * ace/Object_Manager.h: added documenation of
- ACE_HAS_NONSTATIC_OBJECT_MANAGER config #define.
-
- * performance-tests/Misc/preempt.cpp: cleaned up cleanup so that
- it compiles cleanly.
-
-Sun Nov 02 18:09:14 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.35, released Sun Nov 02 18:09:14 1997.
-
-Sun Nov 2 15:31:45 1997 Douglas C. Schmidt <schmidt@polka.cs.wustl.edu>
-
- * ace/Select_Reactor.i (cancel_timer): Make sure that we don't try
- to call cancel() through a NULL this->timer_queue_. Thanks to
- Stephen Coy <stevec@wsa.com.au> for reporting this.
-
- * ace/ACE.cpp (set_handle_limit): Fixed a subtle bug that occurs
- if the OS doesn't like non-initialized rlimit structs. Thanks
- to Stephen Coy <stevec@wsa.com.au> for reporting this.
-
- * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp (main):
- Renamed allocator to my_alloc to work around wonderful STL and
- GCC problems... Thanks to Ben Eng <ben@jetpen.com> for
- reporting this.
-
- * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: Removed
- unused constant SHMSZ. Thanks to Ben Eng <ben@jetpen.com> for
- reporting this.
-
- * examples/Reactor/Misc/test_time_value.cpp (operator<<): Removed
- the "dec" stream manipulator since it isn't portable. Thanks to
- Ben Eng <ben@jetpen.com> for reporting this.
-
- * performance-tests/Misc/preempt.cpp (main): Cleaned up this test
- so it compiles on non-threaded platforms. Thanks to Ben Eng
- <ben@jetpen.com> for reporting this.
-
- * examples/Timer_Queue/main_*.cpp (main): std::auto_ptr does not
- have an operator= that accepts a raw pointer. Therefore, we
- must assign raw pointers to an auto_ptr via the constructor.
- Thanks to Ben Eng <ben@jetpen.com> for reporting this.
-
- * apps/Gateway/Gateway/Proxy_Handler.cpp: Make sure we distinguish
- between ACE_NULL_SYNCH and ACE_MT_SYNCH since these will be
- different on all platforms, whereas ACE_SYNCH will be the same
- as ACE_NULL_SYNCH on platforms without threads. Thanks to Ben
- Eng <ben@jetpen.com> for reporting this.
-
- * ace: Removed lots of uses of NULL and replaced them with 0.
- This works around bugs with lame C++ compilers that treat NULL
- as (void *). Thanks to Ben Eng <ben@jetpen.com> for reporting
- this.
-
- * ace/Thread.i (spawn): Replaced "stack" with "thr_stack" to work
- around bugs with lame C++ compilers and STL. Thanks to Evgeny
- Beskrovny <evgeny_beskrovny@icomverse.com> for reporting this.
-
-Sat Nov 1 11:55:05 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/config-irix5.3-g++.h,
- ace/config-irix5.3-sgic++.h: Removed the ACE_HAS_SYS_SIGLIST
- macro since it doesn't seem to be working. Thanks to Laura
- Paterno <lpaterno@d0chb.fnal.gov> for reporting this.
-
- * include/makeinclude/platform_chorus.GNU: Tidied up
- platform_chorus.GNU a bit. Thanks to Wei Chiang
- <chiang@tele.nokia.fi> for this.
-
-Fri Oct 31 14:35:37 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): on Chorus, double the stack size to
- avoid bad problems. Thanks to Wei Chang <chiang@tele.nokia.fi>
- for diagnosting this.
-
- * ace/Hash_Map_Manager.cpp (unbind_i): set the int_id
- reference argument instead of ignoring it. Thanks to
- Wei Chang <chiang@tele.nokia.fi> for providing the patch.
-
- * ace/OS.h,README: wrapped #include of dlfcn.h with
- ACE_HAS_DLFCN_H_BROKEN_EXTERN_C to support RedHat 4.2
- Linux 2.0.30/Alpha.
-
- * ace/OS.i,README: added ACE_HAS_GETRUSAGE_PROTO support, for
- platforms that have a getrusage () prototype that is
- different from the one in OS.i.
-
- * ace/config-linux.h: added added some #defines to enable
- builds on RedHat 4.2/Linux 2.0.30/Alpha.
-
- * include/makeinclude/platform-linux.GNU: added -pipe and
- bumped optimization level up to -O3.
-
- * ace/Thread_Manager.cpp (wait_task): no-op if thr_list_
- size is 0. wait_task () can be called under that condition
- (after Thread_Manager::wait () has returned) from an
- ACE_Stream destructor, through ACE_Module::close () and
- ACE_Task_Base.wait (). Without this change, wait_task ()
- allocated a copy_table array of size 0. Sun C++ leaked
- that array, according to Purify.
-
- * ace/Service_Config.*,Object_Manager.cpp: moved static
- ACE_Service_Config::signal_handler_ to Object_Manager.
-
- * include/makeinclude/rules.local.GNU (show_statics,show_uninit):
- added $(TOOLENV) to allow specification of full path to nm.
- Thanks to Wei Chiang <chiang@tele.nokia.fi> for this suggestion.
-
- * include/makeinclude/platform_chorus.GNU: added trailing "/"
- to TOOLENV definition, so that it can be empty when not used.
-
- * ACE-INSTALL.html,include/makeinclude/wrapper_macros.GNU:
- added documentation for ACE show_statics and show_uninit targets.
- These are only supported with g++.
-
-Fri Oct 31 00:53:52 1997 <irfan@TWOSTEP>
-
- * The following five changes were suggested by Stephen Coy
- <stevec@wsa.com.au>. Thanks Stephen.
-
- * ace/OS.h (ACE_CLASS_IS_NAMESPACE): Changed friend
- ace_dewarn_gplusplus to friend class ace_dewarn_gplusplus.
-
- * ace/Malloc_T.h: Move the #include files to just after the
- declaration of the macros, otherwise Containers.cpp will be
- #included before the definition of the various allocator macros
- (such as ACE_ALLOCATOR_RETURN) have been seen (when
- ACE_TEMPLATES_REQUIRE_SOURCE is defined).
-
- * ace/Hash_Map_Manager.cpp (close_i): Changed &table[i] to
- &table_[i].
-
- * ace/Containers.h: The ACE_Node destructor needs to be publicly
- accessible in order to support the
- ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR fix. Unfortunately,
- making the template function
- ACE_Destructor_Template_For_HPUX_aCC_Only a friend does not seem
- to work (although it should).
-
- * ace/ACE.cpp (ldfind): Changed path_entry from char* to
- const char*.
-
- * tests/Priority_Reactor_Test.cpp (main): Fixed auto_ptr usage.
- Thanks to Jack Erickson (jack@pinion.com) for pointing this out.
-
- * ace/OS.h (ACE_CLASS_IS_NAMESPACE): Changed the macro to not
- include the destructor. This causes undefined destructor
- problems on Win32. Also added ACE_UNIMPLEMENTED_FUNC macros
- around the remain functions.
-
-Thu Oct 30 21:22:47 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: added auto Svc_Conf_[ly].cpp patches.
-
- * etc/Svc_Conf_[ly].cpp.diff,README: the ace/Svc_Conf_[ly].cpp
- patches, and instructions for updating them.
-
-Thu Oct 30 19:54:50 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.34, released Thu Oct 30 19:54:50 1997.
-
-Thu Oct 30 17:49:56 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * tests/Priority_Task_Test.cpp (main): Moved "int status" out of
- the #if defined (ACE_HAS_THREADS) so that it will compile when
- the platform *doesn't* have threads.
-
- * ace/Synch_T.i (ACE_TSS): Added a missing ':' that was causing
- problems on platforms that lack threads. Thanks to Laura
- Paterno <lpaterno@d0chb.fnal.gov> for helping to track this
- down.
-
- * ace/Signal.cpp (register_handler): Make sure not to use
- SA_SIGINFO if we're running on LynxOS. At some point, we'll
- want to generalize this, once enough OS platforms support POSIX
- real-time signals. Thanks to Kirill.Rybaltchenko
- <Kirill.Rybaltchenko@cern.ch> for reporting this.
-
- * include/makeinclude/platform_chorus.GNU (CXX): Replaced
- DCFLAGS += -g with DCFLAGS += -gstabs+. Thanks to
- Wei Chiang for this.
-
- * ace/OS.cpp: It's not valid to set the NULL_key to anything other
- than implicit initialization. In particular, if we set it to -1
- it breaks on pthreads systems... Thanks to Check Gehr for
- reporting this.
-
- * ace/config-irix5.3*++.h: Added ACE_NEEDS_SYSTIME_H. Thanks to
- Laura Paterno <lpaterno@d0chb.fnal.gov> for reporting the
- problem.
-
- * ace/OS.h: Moved the unistd.h files back down to where
- they originally were defined since this was unnecessary.
-
- * include/makeinclude/platform_chorus.GNU (CXX): Replaced
- DCFLAGS += -g with DCFLAGS += -gstabs+. Thanks to
- Wei Chiang for this.
-
-Thu Oct 30 17:41:19 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * ace/OS.h: Stray semi-colon removed from ACE_CLASS_IS_NAMESPACE
- macro.
-
-Thu Oct 30 17:04:52 1997 <irfan@TWOSTEP>
-
- * ace/OS.h (ACE_CLASS_IS_NAMESPACE): Changed the macro to not
- include the destructor. This causes undefined destructor
- problems on Win32. Also added ACE_UNIMPLEMENTED_FUNC macros
- around the remain functions.
-
-Thu Oct 30 10:50:21 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.h: Added new macro--ACE_CLASS_IS_NAMESPACE ()--to
- designate that a class is being used as a pseudo-namespace. It
- declares private CTOR, Copy CTOR, and DTOR, as well as a friend
- declaration in order to de-warn on g++. Typical usage would be
- something like:
-
- class FooBarNamespace
- {
- ACE_CLASS_IS_NAMESPACE (FooBarNamespace);
-
- public:
- static ...
- };
-
- The ACE_OS class has been updated to use this.
-
- * ace/ACE.h: Updated class ACE to use the new
- ACE_CLASS_IS_NAMESPACE ().
-
- * ace/OS.i (getopt): Changed ACE_LACKS_SOME_POSIX_PROTOTYPES back
- to ACE_LACKS_POSIX_PROTOTYPES so that a clean build on Linux is
- achievable now.
- (msgsnd): Corrected errant spelling from
- ACE_LACKS_POSIX_SOME_PROTOTYPES to
- ACE_LACKS_SOME_POSIX_PROTOTYPES.
-
-Thu Oct 30 06:14:58 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile,ACE-INSTALL: removed ACE-INSTALL from CVS control.
- It will only be created when a release is made in
- /project/adaptive/ACE_wrappers, and not put under CVS control.
-
- * ace/Manager_Object.h: added ACE_INLINE specifier to
- get_preallocated_object/array declarations. Thanks to
- Torbjorn Lindgren <tl@funcom.no> for reporting this.
-
- * ace/Synch.cpp: removed duplicate
- ACE_Write_Guard<ACE_RW_Thread_Mutex> instantiation. Thanks to
- Torbjorn Lindgren <tl@funcom.no> for reporting this.
-
- * tests/Conn_Test.cpp: fixed template instantiation pragmas.
- Thanks to Torbjorn Lindgren <tl@funcom.no>, again.
-
- * tests/SPIPE_Test.cpp: replaced ACE_UNUSED_ARG of client and server
- with conditional compilation of those functions. Thanks to
- Torbjorn Lindgren <tl@funcom.no> for snagging this.
-
- * ace/OS.{h,cpp},Object_Manager.cpp (tss_open,tss_close): removed
- tss_open () dynamic allocation option because it wasn't used.
- Removed tss_close() because it was a no-op without tss_open ()
- dynamic allocation.
-
- * ace/OS.cpp (tss_open): On VxWorks, don't check for 0 tss_base ().
- It's not always 0 on program startup, especially if a program
- has been previously run by the shell directly, without spawning
- a new task to run it.
-
- * ace/OS.*: added ACE_TSS_EMULATION support for non-scalar
- ACE_thread_key_t. Thanks to Chuck Gehr <gehr@sweng.stortek.com>
- for motivating this.
-
- * ace/config-mvs.h: added ACE_HAS_NONSCALAR_THREAD_KEY_T. It
- is only used with ACE_HAS_TSS_EMULATION, which currently is
- not supported on MVS.
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): cleaned up this function.
-
-Thu Oct 30 03:25:13 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (close_i): Can't use ACE_DES*
- template. Have I been here before?
-
-Thu Oct 30 03:03:41 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (close_i): Changed to use ACE_DES* macros.
-
- * ace/OS.h: Moved ACE_Allocator related macros to Malloc_T.h
-
- * ace/Malloc_T.h: Moved ACE_Allocator related macros from OS.h.
- Added two macros ACE_DES_NOFREE and ACE_DES_NOFREE_TEMPLATE to
- call objects' destructors explicitly. This is required to
- take care of some "broken" compilers. Thanks to Stephen Coy
- <stevec@magna.com.au> for providing the fix for HP-UX aCC.
-
- * ace/README:
- * ace/config-hpux-10.x-hpc++.h: Added flag
- ACE_HAS_HPUX_ACC_BROKEN_TEMPLATE_DESTRUCTOR.
-
-Thu Oct 30 02:56:25 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.33, released Thu Oct 30 02:56:25 1997.
-
-Thu Oct 30 01:03:21 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/LOCK_SOCK_Acceptor.cpp: Added a #include of "ace/Synch.h" so
- that the Conn_Test.cpp will compile on HP/UX. Thanks to Stephen
- Coy <stevec@magna.com.au> for reporting this.
-
-Wed Oct 29 22:55:15 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/config-vxworks5.x-g++.h:
- * ace/config-unixware-2.1.2-g++.h:
- * ace/config-unixware-2.01-g++.h:
- * ace/config-sunos5.5-g++.h:
- * ace/config-sunos5.4-g++.h:
- * ace/config-sunos4-g++.h:
- * ace/config-osf1-4.0.h:
- * ace/config-osf1-4.0-g++.h:
- * ace/config-linux.h:
- * ace/config-linux-pthread.h:
- * ace/config-linux-lxpthreads.h:
- * ace/config-irix6.x-g++.h:
- * ace/config-irix5.3-g++.h:
- * ace/config-hpux-10.x-g++.h:
- * ace/config-gcc-2.7.2.h:
- * ace/config-freebsd.h:
- * ace/config-freebsd-pthread.h:
- * ace/config-chorus.h:
- * ace/config-aix-4.1.x.h:
- * ace/README: Removed ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR.
- It is no longer in use.
-
-Wed Oct 29 21:12:55 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/README: Added a new macro called ACE_LACKS_SOCKET_BUFSIZ,
- which is enabled on VxWorks.
-
- * ace/OS.h: Added a new macro called
- ACE_DEFAULT_MAX_SOCKET_BUFSIZ, which is set to 65536.
-
- * ace/OS: Changed the tolower() method to to_lower() so that it
- won't conflict if there's a macro with the same name.
-
- * ace/OS.h: #include <unistd.h> before ACE_Time_Value as long as
- ACE_LACKS_UNISTD_H is false. Added this flag to the VxWorks and
- Win32 config.h files.
-
- * ace/OS.h: Added a special #define for IRIX5, which seems to put
- timeval in a strange file... Also, moved this #include to
- *before* ACE_Time_Value. Thanks to Carlos O'Ryan for suggesting
- this and to Laura Paterno <lpaterno@d0chb.fnal.gov> for
- reporting the problem in the first place.
-
- * ace: Changes all uses of the overly long
- ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCS to
- ACE_LACKS_SOME_POSIX_PROTOTYPES. However, I'm not really sure
- how this relates to the ACE_LACKS_POSIX_PROTOTYPES macro. I
- suspect we probably only need one of these...
-
- * ace/OS.h: Added a new ACE_HAS_STDARG_THR_DEST to handle
- weirdness with LynxOS. Thanks to Kirill.Rybaltchenko
- <Kirill.Rybaltchenko@cern.ch> for reporting this.
-
- * ace: OS.h,config-lynxos.h: Added a new ACE_LACKS_GETOPT_PROTO
- for LynxOS. Thanks to Kirill.Rybaltchenko
- <Kirill.Rybaltchenko@cern.ch> for reporting this.
-
- * ace/config-lynxos.h: Replaced
- ACE_LACKS_POSIX_PROTO_FOR_SOME_FUNCS with
- ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCTIONS. Thanks to
- Kirill.Rybaltchenko <Kirill.Rybaltchenko@cern.ch> for reporting
- this.
-
-Wed Oct 29 22:17:03 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/config-hpux-10.x-hpc++.h (ACE_HAS_TEMPLATE_SPECIALIZATION):
- Moved to C++ section. Restored ACE_TEMPLATE_REQUIRE_SOURCE in
- C++ section. Thanks to Stephen Coy <stevec@magna.com.au> for
- providing the fix (patiently.)
-
-Wed Oct 29 20:30:55 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * ace/OS.i (strlen): Moved it earlier so that it would be declared
- inline before use.
-
- * ace/OS.i (strcasecmp): Removed spurious semi-colons (how did
- they get in there?).
-
-Wed Oct 29 18:51:12 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.{h,i}: Added strcasecmp functionality for NT
-
-Wed Oct 29 15:56:01 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp: replaced ACE_TSS_REF_TABLE with a reference count to
- remove dynamic allocation from ACE_TSS_Info. Also, enabled call
- of ACE_Task close hook before calling TSS destructors.
-
- * ace/OS.cpp: changed a few TSS 0 keys to ACE_OS::NULL_key.
-
- * ace/Thread_Manager.cpp (ace_thread_manager_adapter): with
- TSS_EMULATION, moved the call of tss_close () from here to
- ACE_Thread_Adapter::invoke () so that it can be called after
- the task's close hook, if any.
-
- * ace/{OS.h,Log_Msg.h,Object_Manager.cpp} (cleanup_tss): added
- an argument to indicate whether the main thread is calling or not.
-
- * ace/OS.i (ACE_TSS_Emulation::next_key): start key values at
- 0 instead of 1, because it's easier to deal with arrays of
- keys then. That also corresponds with the starting key value
- on Windows NT.
-
- * ace/IOStream.h: DEC_CXX #includes now depend on compiler version.
- Thanks to James Johnson <jcej@lads.com> for providing the fix.
-
-Wed Oct 29 10:32:16 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: fixed ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCS
- and added getopt () declaration.
-
- * include/makeinclude/platform_lynxos.GNU: updated LIBS.
-
- Thanks to Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch> for
- the above fixes.
-
- * etc/purify.solaris2: added another _thrp_exit UMR.
-
- * include/makeinclude/wrapper_macros.GNU: added login (LOGNAME)
- and compiler (CXX) to Purify/Quantify cache names.
-
-Wed Oct 29 08:40:38 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.32, released Wed Oct 29 08:40:38 1997.
-
-Wed Oct 29 07:39:38 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch.cpp: Added an explicit template instantiations for
- ACE_Guard<ACE_Process_Mutex>.
-
- * ace/LOCK_SOCK_Acceptor.h: Removed the typedef of
- ACE_SOCK_Acceptor with a full expansion of the name to fix a G++
- bug.
-
- * tests/Conn_Test.cpp: Fixed a template instantiation problem.
-
- * ACE-INSTALL.html: Pointed out that ACE is ported to LynxOS and
- Chorus.
-
- * ACE-INSTALL.html: Added information about cloning that explains
- how you must to build a config.h and platform_macros.GNU in
- cloned directory. Thanks to Arturo for this.
-
- * bin/Makefile: Added
- $(ACE_ROOT)/include/makeinclude/platform_macros.GNU to Makefile
- so we can compile clone on any ACE platform. Thanks to Arturo
- for this.
-
- * include/makefiles: Added new platform file for SCO UNIX with
- nothreads. Thanks to Arturo for this.
-
- * ace: Added new config files for SCO UNIX with nothreads.
- Thanks to Arturo for this.
-
- * apps/JAWS/server/HTTP_Server.cpp: Fixed the typedef for
- ACE_LOCK_SOCK_Acceptor. Thanks to Hans Rohnert for reporting
- this.
-
- * tests/Conn_Test.cpp: Changed template instantiations from
- SOCK_ACCEPTOR to LOCK_SOCK_ACCEPTOR. Thanks to Han Rohnert for
- reporting this.
-
-Wed Oct 29 02:10:37 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.31, released Wed Oct 29 02:10:37 1997.
-
-Wed Oct 29 01:25:54 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Conn_Test.cpp: Modified Conn_Test to fully integrate
- Irfan's new LOCK_SOCK_Acceptor. This new implementation is
- truly the "mother of all Conn_Tests" ;-).
-
- * ace/LOCK_SOCK_Acceptor.cpp (lock): Added a lock() accessor
- method to the new ACE_LOCK_SOCK_Acceptor so that we can remove
- the lock (somehow).
-
-Wed Oct 29 00:29:52 1997 <irfan@TWOSTEP>
-
- * apps/JAWS/server: Fixed Win32 related compilation errors.
-
- * ace/OS.h (SIGUSR1 and SIGUSR2): Added new defines for these two
- signals.
-
- * ace/LOCK_SOCK_Acceptor: New class added to ACE (it was
- originally a class in JAWS). It specialize ACE_SOCK_Acceptor to
- lock around <accept>. This class is particular useful if you
- want to have multiple threads accepting on the same endpoint and
- the system does not support have thread safe accept. Thanks to
- James Hu who initially wrote this class for JAWS. Thanks also
- to Johannes Gutleber <Johannes.Gutleber@cern.ch> who decided to
- use this in the Conn_Test.
-
- * tests/Conn_Test.cpp: Updated to use the new LOCK_SOCK_Acceptor.
-
- * apps/JAWS/server/HTTP_Server.h: Updated to use the new
- LOCK_SOCK_Acceptor.
-
- * apps/JAWS/server/HTTP_Server_T.*: These files are no longer
- necessary since this class has been absorbed into ACE.
-
- * tests: Fixed auto_ptr use in:
-
- Notify_Performance_Test.cpp
- Priority_Reactor_Test.cpp
- Reactor_Performance_Test.cpp
-
- Thanks to Jack Erickson (jack@pinion.com) for pointing this out.
-
-Tue Oct 28 11:26:39 1997 Nanbor Wang <nw1@CHA-CHA>
-
- * ace/ace_{dll,lib}.dsp: Moved Acceptor.cpp from Source file
- folders to Template file folders. Thanks to Satheesh Kumar
- <satheesh@aspectdv.com> for pointing this out.
-
-Tue Oct 28 05:44:56 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): use pthread_attr_setprio instead of
- *_setsched with DCETHREADS, and check return values of
- ACE_OS::thr_[gs]etconcurrency (). Thanks to Stephen Coy
- <stevec@magna.com.au> for tracking these problems down.
-
- * tests/Priority_Task_Test.cpp (svc): removed ACE_ASSERT and
- replaced with setting of error flag. This allows the test
- to continue and gather more possibly useful information.
-
- * tests/Conn_Test.cpp: 1) Added template instantiations.
- 2) Re-enabled with DEC_CXX. 3) Removed THR_DETACHED flags.
-
- * include/makeinclude/platform_osf1_4.0.GNU: suppress warnings
- about unreachable statments.
-
- * ACE-INSTALL.html: Conn_Test now runs with DEC_CXX 6.0.
-
-Tue Oct 28 00:38:58 1997 <irfan@TWOSTEP>
-
- * ace/Strategies_T:
-
- ACE_Recycling_Strategy - Added new class ACE_Recycling_Strategy.
- It defines the interface (and default implementation) for
- specifying a recycling strategy for a SVC_HANDLER. This
- strategy acts as a consular to the Svc_Handler, preparing it for
- the tough times ahead when the Svc_Handler will be recycled.
-
- ACE_NOOP_Concurrency_Strategy - Added new class
- ACE_NOOP_Concurrency_Strategy. It implements a no-op activation
- strategy in order to avoid calling open on a recycled
- svc_handler multiple times.
-
- ACE_Cached_Connect_Strategy - Added a ACE_Creation_Strategy,
- ACE_Concurrency_Strategy, and ACE_Recycling_Strategy to the
- cached connector. This gives it more flexibility than by simply
- providing template methods. This is similar to the Strategy
- Connector.
-
- ACE_Cached_Connect_Strategy - Added new template methods for
- certain key occasions in the cached connector: make_svc_handler,
- activate_svc_handler, assign_recycler, and
- prepare_for_recycling.
-
- * tests/Conn_Test.cpp (client): Updated the tests such that it
- uses a null activation strategy.
-
-Mon Oct 27 22:17:54 1997 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu>
-
- * OS.h: Added the ACE_NESTED_CLASS macro to deal with those
- compilers that do not allow a fully scoped type name appearing
- inside a scope in which it was defined.
-
-Mon Oct 27 22:17:32 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (exit): don't use the cache when finding
- the thread ID. The cache is in the ACE_Log_Msg instance, and
- it might have been deleted already.
-
-Mon Oct 27 20:33:07 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.30, released Mon Oct 27 20:33:07 1997.
-
-Mon Oct 27 18:03:06 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ACE-INSTALL.html (HREF): Added NT/Alpha to supporting platforms
- list. Added hyperlink to ACE newsgroup. Added hyperlink to
- FreeBSD homepage. Minor changes to Win32 intstallation guide.
-
-Mon Oct 27 17:50:16 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU (PRELIB):
- Changed PRELIB in platform_sco5.0.0-mit-pthread.GNU,
- platform_sco5.0.0-fsu-pthread.GNU to @true, so we can generate
- the TAO_IDL compiler. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for reporting this.
-
-Mon Oct 27 14:26:10 1997 <irfan@TWOSTEP>
-
- * ace/Synch_T (ACE_TSS): When ACE does not have thread specific
- storage, ACE_TSS will be a simple pointer holder. Previously, it
- had a instance as a member, now it has a pointer to an instance.
-
- * ace/WFMO_Reactor.cpp (update_state): Fixed a bug in the
- WFMO_Reactor. wakeup_all_threads() used to be an internal
- method that was called when changes were made to the state of
- the reactor. When wakeup_all_threads() became public, there was
- no code in place to handle explicit user wakeups. In
- particular, the wakeup_all_threads event was never reset.
- Thanks to Evgeny Beskrovny <evgeny_beskrovny@icomverse.com> for
- pointing out this bug.
-
- * ace/OS.i (ACE_FAIL_RETURN): Added mapping from
- ERROR_PATH_NOT_FOUND to ENOENT. Thanks to David Brackman
- <dbrackma@OhioEE.com> for suggesting this.
-
-Mon Oct 27 11:36:39 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (exit_cleanup_i): removed protection against recursive
- calls. This protection no longer is necessary, because
- ACE_TSS_Cleanup () is only called by ACE_Thread_Adapter::invoke ().
- It was problematic because it used the ACE_Allocator instance.
-
- * ace/config-vxworks*.h,README: added ACE_LACKS_FCNTL.
-
- * ace/OS.i,ACE.cpp: replaced #ifdef VXWORKS with #ifdef
- ACE_LACKS_FCNTL.
-
- * ace/ACE.i (get_flags): return 0 if ACE_LACKS_FCNTL. It would
- be better to store ACE's notion of the flags associated with
- the handle so that they could be returned, but this works for now.
-
- * tests/run_tests.vxworks: re-enabled Reactors_Test, because it
- works with the ACE_LACKS_FCNTL mods.
-
- * include/makeinclude/platform_osf1_4.0.GNU: -pthread instead of
- -lpthread in LIBS. Thanks to James Johnson <jcej@lads.com> for
- pointing this out.
-
- * ACE-INSTALL.html: added info on bin/create_ace_build.
-
-Mon Oct 27 11:11:33 1997 Nanbor Wang <nw1@CUECA>
-
- * netsvcs/servers/servers.dsp
- * netsvcs/lib/netsvcs.dsp:
- * tests/*.dsp:
- * ace/ace_{dll,lib}.dsp: Added project configurations for Alpha
- machines. Configurations are named by adding "Alpha" in front
- of the original config names, e.g., "Win32 Alpha Unicode Debug.
-
-Mon Oct 27 06:40:18 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU (show_uninit): Added a
- missing semi-colon for one of the install rules. Thanks to
- Manojkumar Acharya <mja@cvsf325.gpt.co.uk> for reporting this.
-
- * ace/Synch_T.h: Make sure that ACE_Guard::remove() calls
- this->lock_->remove() rather than this->lock_->release().
- Thanks to Johannes Gutleber <Johannes.Gutleber@cern.ch> for
- reporting this.
-
-Mon Oct 27 00:20:13 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/config-hpux-10.x-hpc++.h: Added directive
- ACE_HAS_TEMPLATE_SPECIALIZATION. Thanks to Stephen Coy
- <stevec@wsa.com.au> for reporting this.
-
-Sun Oct 26 22:17:57 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.29, released Sun Oct 26 22:17:57 1997.
-
-Sun Oct 26 20:03:57 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/IPC_SAP.cpp,
- ace/IO_SAP.cpp: Make sure that we don't use fcntl() when
- we're compiling on VXWORKS since it's not defined...
-
- * examples/Connection/non_blocking/CPP-connector.cpp: Changed the
- method named idle() to uninitialized() since idle() is now
- defined on ACE_Svc_Handler.
-
- * ace/OS.h: Added the TAO_DEFAULT_SERVER_PORT to OS.h.
-
- * tests/Conn_Test.cpp (cached_connect): Added a new variable
- called "n_client_iterations" to control how many times each
- client thread tries to connect with the Cached_Connector.
-
-Sun Oct 26 16:56:32 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * include/makeinclude/platform_linux_lxpthread.GNU (CFLAGS): Added
- -pipe to the compile options.
-
-Sun Oct 26 11:04:21 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (unbind): added ACE_UNUSED_ARG (int_id).
-
- * tests/Conn_Test.cpp (server): added ACE_UNUSED_ARG (options).
- And, added template instantations.
-
- * tests/Conn_Test.cpp (cached_connect): changed type of loop index i
- to int to avoid signed/unsigned comparison.
-
- * ace/Strategies_T.h: added #include of ace/Strategies.h. Thanks to
- James Johnson <jcej@lads.com> for reporting this.
-
-Sun Oct 26 10:01:01 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Connector.cpp (open): The original fix failed to replace
- strategies under some circumstances.
-
- * ace/OS.{h,cpp} (sprintf): Removed ACE_OS::sprintf (wchat_t, char).
- It didn't ever work.
-
- * ace/Connector.cpp (open): Added check if we had previously
- allocated various strategies and deleted these objects before
- allocating new objects. The original codes caused memory leaks
- and possible segmentation faults if it got called twice. We
- probably need a do-nothing constructor (the current constructor
- calls open.) However, this may break other codes.
-
-Sun Oct 26 01:00:07 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.28, released Sun Oct 26 01:00:07 1997.
-
-Sun Oct 26 00:50:00 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tests/Conn_Test.cpp (close): Since the connect() method on
- ACE_Connector closes the svc_handler if failure occurs, we
- shouldn't do that again unless we succeed in connecting.
-
- * ace/OS.h: Moved the CORBA portability macros from
- CORBA_Handler.h into OS.h so they will be accessible from TAO.
-
- * ace/Filecache.cpp (finish): Replaced filename_ with filename()
- so that "const correctness" would work with template
- specialization. Go figure!
-
- * TAO/tests/IDL_Cubit/Makefile: Enhanced the "realclean" target to
- remove the generated IDL stubs and skeletons.
-
- * ace/OS.cpp (ace_sysconf_dump): Made a minor change to OS.cpp
- to fix some typos. Thanks to Wei Chiang <chiang@tele.nokia.fi>
- for reporting this.
-
-Sun Oct 26 00:06:17 1997 <irfan@TWOSTEP>
-
- * ace/Strategies_T.cpp (~ACE_Cached_Connect_Strategy): Must set
- recycler to 0 before calling close, else the svc_handler will
- try to purge itself from the cache.
-
- * tests/Conn_Test.cpp (client): Updated to use the new connection
- recycling scheme.
-
- * ace/Hash_Map_Manager:
-
- - ACE_Hash_Map_Reverse_Iterator: Added reverse iterator.
-
- - ACE_Hash_Map_Entry: Added a prev pointer to the entry. Thus
- changing the bucket chains into doubly linked lists. Because of
- this, it was necessary to change the way the list was being
- managed. Sentinels were created for each bucket.
-
- This also changed (a) the way the iterators worked, (b) made it
- easy to delete entries when you have one (this scheme allows the
- entries to be easily used as ACTs).
-
- - New methods (bind, trybind, rebind, find): These methods allow
- the users to get access to ACE_Hash_Map_Entry of the node in
- question. This allows the user to treat the entry as an ACT and
- get access to the key (in case the user is interested in
- changing the key). These methods are only valid since the
- implementation of Hash_Map_Manager uses linked lists where nodes
- are never copied. These methods cannot be added to Map_Manager
- since it uses an array of nodes, where the your data may get
- copied to another node when the size of the Map_Manager changes.
-
- * ace/Strategies (ACE_Connection_Recycling_Strategy): Added a new
- abstract strategy for recycling connections.
-
- * ace/Strategies_T:
-
- - ACE_Cached_Connect_Strategy: ACE_Cached_Connect_Strategy now
- implements the ACE_Connection_Recycling_Strategy interface.
- This allows Svc_Handlers to cache themselves with
- ACE_Cached_Connect_Strategy when they become idle. It also
- allows them to purge themselves from the connection cache when
- the Svc_Handlers close down.
-
- Also added ~ACE_Cached_Connect_Strategy that will cleanup up the
- connection cache.
-
- - ACE_Hash_Addr: ACE_Hash_Addr is the key for the hash map used by
- ACE_Cached_Connect_Strategy. Previously it kept the Svc_Handler
- pointer in the key in order to find out if it was busy or not.
- Now the <in_use> flag has been moved from the Svc_Handler into
- the key. The also saves the Hash_Addr from requiring
- Svc_Handler as a template parameter.
-
- Also updated ACE_Hash_Addr::operator== such that if the
- Svc_Handler is busy, it does not bother to check compare the
- addresses but simply returns false.
-
- * ace/Svc_Handler.cpp: Added the ability for a Svc_Handler to
- recycle itself. idle() can be called when the Svc_Handler is
- done serving a particular connection and can how be recycled.
- The Svc_Handler now also has a pointer to a recycler that is
- responsible for managing the connections. The recycler is
- usually a Cached_Connector.
-
- * ace/Filecache.cpp (ACE_Hash_Map_Entry): Added a new constructor
- specialization as the ACE_Hash_Map_Entry now has two
- constructors.
-
- * tests/Hash_Map_Manager_Test.cpp (ACE_Hash_Map_Entry): Added a
- new constructor specialization as the ACE_Hash_Map_Entry now has
- two constructors.
-
- * tests/Reactor_Exceptions_Test.cpp (class My_Reactor): Added the
- other handle_events method. Thanks to Stephen Coy
- (coys@mail.ns.wsa.com.au) for pointing this out.
-
- * ace/Strategies_T.cpp (hash_i): This default routine is no good.
- It uses a complicated scheme that calculate a hash value.
- Unfortunately, there is no guarantee that this hash algorithm
- will produce the same hash value for the same address.
- Therefore, it is better just to return a consistent hash value
- rather than an erroneous one. I have choosen 0 of the return
- value. Even though this will cause all the entries to be hashed
- to the 0 bucket, atleast they will be found. Users should
- override this to provide better hashing.
-
- (compare_i): Memcmp is not the correct default action.
- !(b1==b2) is the correct comparison, though this will assume
- that the addresses will have a comparison operation.
-
- * ace/Mem_Map.cpp (close and close_handle): close() is doing too
- much. It is closing the handle and unmapping the file.
- Changing this method might effect code that depends on this
- behavior. Therefore, we create a seperated method
- close_handle() that only closes down the handle, and does not
- unmap the file. Thanks to Jeff Richards (jrichard@OhioEE.com)
- for pointing this out.
-
- * ace/Strategies_T.cpp (connect_svc_handler): If connect() failed
- because of timeouts, we have to reject the connection entirely.
- This is necessary since currently there is no way for the
- non-blocking connects to complete and for the <Connector> to
- notify the cache of the completion of connect(). Therefore if
- errno is EWOULDBLOCK, it is changed to ENOTSUP and -1 is
- returned.
-
-Sat Oct 25 17:41:57 1997 Sergio Flores <sergio@macarena.cs.wustl.edu>
-
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
- * examples/Timer_Queue/Async_Timer_Queue_Test.cpp:
- * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp:
- * examples/Timer_Queue/main_async.cpp:
- * examples/Timer_Queue/main_reactor.cpp:
- * examples/Timer_Queue/main_thread.cpp:
- Added "#pragma instantiate" for template instantiations on
- platforms that use pragmas instead, like SGI.
-
-Sat Oct 25 4:44:00 1997 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * Today at 06:44 hours (Santiago, 04:44 St. Louis) Fernanda O'Ryan
- has joined the ACE family. She was born 3040 gr in weight and
- 50 cm length. She has absolutely no experience in CORBA, C++ or
- programming in general. Therefore, she is the ultimate Java
- programmer.
-
-Sat Oct 25 10:13:56 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Singleton.h: added comment about best ACE_LOCK types to use.
-
- * Makefile (TIMESTAMP): replace tab with spaces in ChangeLog entry.
-
- * tests/Conn_Test.cpp (main): fixed typo, spawn_threads instead of
- spawn_thread. Also, protected definitions of spawn_processes ()
- and spawn_threads () to avoid compiler warnings about unused static
- functions.
-
-Sat Oct 25 01:02:34 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.27, released Sat Oct 25 01:02:34 1997.
-
-Fri Oct 24 17:39:08 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ace/ACE.cpp: Changed all the ACE_BIT_ENABLED () == 0 macros to
- ACE_BIT_DISABLED() since the logic is clearer.
-
- * ace/SOCK_Acceptor.cpp (shared_accept): Improved the handling of
- timed accepts. The original implementation was prone to race
- conditions if there were multiple processes all doing timed
- connects on the *same acceptor socket*! That's because select()
- and accept() are not performed atomically. Now, we're smarted
- about handling this...
-
- * tests/Conn_Test.cpp: Simplified the shutdown logic, which
- appeared to have race conditions.
-
- * tests/Conn_Test.cpp: Modified this test to spawn off a number of
- server processes, all of which will listen for connections on
- the same acceptor port. This demonstrates a useful idiom for
- writing connection-oriented concurrent server pools.
-
- * netsvcs/lib/Server_Logging_Handler_T: Fixed this code so that if
- we're on an HP/UX that has broken templates we don't use the
- Base_Optimizer. Thanks to Per Andersson for providing this fix.
-
- * ace/Thread_Manager: Added a destructor for ACE_Thread_Descriptor
- to keep some compilers happy. Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for reporting this.
-
- * ace/Task.cpp (ACE_Task_Base_cleanup): Changed
- ACE_Task_Base::cleanup (object);
-
- to:
-
- ACE_Task_Base::cleanup (object, 0);
-
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
- this.
-
- * ace/Thread_Manager.cpp (find_thread): Fixed another problem with
- == being used to compare threads rather than
- ACE_OS::thr_equal(). Thanks to Chuck Gehr
- <gehr@sweng.stortek.com> for reporting this.
-
-Fri Oct 24 17:11:14 1997 Sergio Flores <sergio@polka.cs.wustl.edu>
-
- * Thread_Timer_Queue_Test.cpp (shutdown_timer): added logic to
- cancel preemptively or voluntarily, the dispatching thread,
- depending on whether the platoform supports pthread_cancel().
-
- * Timer_Queue_Adapters.cpp (ACE_Thread_Timer_Queue_Adapter): Added
- initialization of <active_> flag to 1, active mode. We assume
- we start in active mode. Added an internal variable <thr_id_>
- that stores the thread id of the currently running thread. The
- motivation behind this is to be able to cancel this thread
- whenever we are shutting down. It is initialized to
- ACE_OS::NULL_thread.
-
- * Timer_Queue_Adapters.cpp (svc): Assign the <thr_id_> with the
- current running thread ID, using ACE_Thread::self ().
-
- * Timer_Queue_Adapters.h (ACE_Thread_Timer_Queue_Adapter): Added
- default <ACE_Thread_Manager> to be
- ACE_Thread_Manager::instance()
-
- * Timer_Queue_Adapters.h (activate): Override the default
- <activate> method to be able to enforce one thread of execution
- per timer queue. Does make much sense to have more than one
- managing the timer queue, and like Doug said too many weird
- things can happen...
-
- * Timer_Queue_Adapters.i (thr_id): Added this method to access the
- thread ID of this task.
-
- * Timer_Queue_Adapters.i (activate): Call
- ACE_Task_Base::activate() with n_threads = 1 to ensure that a
- single thread is spawned.
-
-Fri Oct 24 10:00:02 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (wait_grp): Fixed a bug. Should wait on
- threads with same grp_id, not task.
-
-Fri Oct 24 09:24:14 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Select_Reactor.cpp (open): cast return value of
- ACE_::max_handles () to size_t to avoid signed/unsigned comparison.
-
- * ace/Singleton.cpp,Object_Manager.{h,cpp}: (get_singleton_lock):
- dynamically allocate ACE_Thread_Mutex and ACE_RW_Thread_Mutex locks,
- so we end up with one lock per ACE_Singleton instantiation.
-
- * ace/OS.cpp (ACE_TSS_Info, Win32 and VxWorks only): changed type
- of ACE_TSS_TABLE from ACE_Unbounded_Stack to fixed-size ACE_Array.
- With this change, we avoid some use of ACE_Allocator when
- destroying TSS objects. There are two more changes required to
- completely remove the ACE_Allocator use.
-
- * tests/TSS_Test.cpp (worker): added printout of iteration count.
-
-Fri Oct 24 01:53:58 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.26, released Fri Oct 24 01:53:58 1997.
-
-Thu Oct 23 19:05:08 1997 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * netsvcs/clients/Naming/Client/Makefile
- netsvcs/clients/Naming/Dump_Restore/Makefile
-
- The lines:
-
- SHLIB = libClient_Test.so
- SHLIB = libDump_Restore.so
-
- need to be
-
- SHLIB = libClient_Test.$(SOEXT)
- SHLIB = libDump_Restore.$(SOEXT)
-
- Thanks to Stephen Coy <stevec@magna.com.au> for reporting this.
-
- * ace/Thread_Manager.cpp (find_hthread): Replaced the call
-
- if (iter.next ()->thr_handle_ == h_id)
-
- to
-
- if (ACE_OS::thr_equal (iter.next ()->thr_handle_, h_id))
-
- since the other one isn't portable to Pthreads. Thanks to
- Stephen Coy <stevec@magna.com.au> for reporting this.
-
- * ace/Hash_Map_Manager.cpp: Removed the sentinel in the
- Hash_Map_Manager. Sentinels are evil since they require us to
- hold write locks, even when we're doing finds!
-
- * ace/ACE.cpp (max_handles): By default, we now try to use the
- getrlimit() function before sysconf() since sysconf() doesn't
- work "correctly" for NO _SC_OPEN_MAX (i.e., it just returns the
- original value, which might have been changed by setrlimit().
- What a pain...
-
- * ace/ACE.cpp (max_handles): If FD_SETSIZE is enabled return
- this as the number of handles. This isn't perfect, but it's
- probably better than returning -1.
-
- * ace/Select_Reactor.cpp (open): Added a call to
- ACE::set_handle_limit() if the requested size for the Reactor is
- greater than the current max number of descriptors in the
- process. Also check to make sure that the user isn't ask for
- more than the FD_SETSIZE. Thanks to Neil Lavelle
- <nlavelle@imcl.com> for motivating this.
-
- * ace/Thread_Manager: Changed the name THR_FUNC to
- ACE_THR_MEMBER_FUNC since it's now a global typedef on VxWorks
- and we don't have to have clashes with other names.
-
- * ace/Thread_Manager.h: There are mutually incompatible bugs with
- VxWorks and MVS. Therefore, we have to conditionally compile
- the THR_FUNC differently for these two platforms. Thanks to
- Chuck Gehr <gehr@sweng.stortek.com> for reporting this.
-
- * ace/OS.cpp (thr_create): Added a fix to set the Chorus stack
- size correctly. Thanks to Wei Chiang <chiang@tele.nokia.fi> for
- reporting this.
-
- * ace/OS.cpp: Added a new method ace_sysconf_dump() to dump the
- state of the configuration. Thanks to Wei Chiang
- <chiang@tele.nokia.fi> for reporting this.
-
- * ace/Singleton.cpp (dump): There was a typo in the dump() method
- for ACE_TSS_Singleton, it should be
- ACE_TSS_Singleton::instance_i(). I've fixed this.
-
-Thu Oct 23 23:19:24 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * ace/Filecache.cpp: Removed template method specialization of
- shared_find. No longer needed since Hash_Map_Manager has been
- changed to no longer rely on sentinel_.
-
- * ace/Thread_Manager.cpp (various):
- Hacked 'til it compiled. (Chased down syntax errors.)
-
-Thu Oct 23 22:52:17 1997 Sergio Flores <sergio@polka.cs.wustl.edu>
-
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp (shutdown_timer):
- Added a line to call the cancel method on the timer queue task
- when we are shutting down; this is wrapped around #if's to only
- include this only when the platformm supports pthread_cancel().
-
- * ace/Timer_Queue_Adapters.cpp (svc): Added some POSIX thread
- cancellation points to make sure the mutex that the condition
- variable uses is unlocked before the thread is cancelled.
-
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp (list_timer):
- Deleted unnecessary cancellation points. Since we are not
- blocking on a condition variable, we don't need to guard the
- code.
-
-Thu Oct 23 22:07:03 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (wait_task,wait_grp): We should also
- check for thread creation flags when collection information for
- threads belong to this group and don't try to join those threads
- created with THR_DETACHED or THR_DAEMON.
-
-Thu Oct 23 21:22:16 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ACE-INSTALL.html: Copied some documentation about makefile flags
- from include/makeinclude/wrapper_macros.GNU and added a section
- for this.
-
-Thu Oct 23 20:37:44 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Array.*: added ACE_Array_Iterator.
-
-Thu Oct 23 17:28:11 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/Mem_Map.i (close_filemapping_handle): Moved this above its
- uses in the file so that g++ would de-warn.
-
-Thu Oct 23 15:30:17 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Timer_Hash_T.h, Timer_Hash.cpp, Timer_Heap_T.h, Timer_Heap.cpp,
- Timer_List_T.h, Timer_List.cpp, Timer_Queue_T.h, Timer_Queue.cpp,
- Timer_Wheel_T.h, Timer_Wheel.cpp: Replaced all occurences of
- ACE_HPUX_BROKEN_TEMPLATES with ACE_HAS_BROKEN_HPUX_TEMPLATES.
-
-Wed Oct 22 23:23:29 1997 Nanbor Wang <nw1@COYOTE>
-
- * ace/ACE_Library.*, ace_lib.dsp: Made naming convention uniform
- for some less used ACE library. They are called: aced.dll,
- ace.dll, aceud.dll, aceu.dll, acesd.lib, aces.lib, aceusd.lib
- and aceus.lib. If you are using ACE on NT, you know what they
- mean. ;-)
-
-Wed Oct 22 21:22:35 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Object_Manager.{h,cpp}: Added support for ACE_RW_Thread_Mutex
- ACE_Singleton lock type. Thanks to Nanbor for suggesting this,
- because TAO needs it.
-
- Also, removed at_exit registration of dynamically allocated
- ACE_Static_Object_Lock because Object_Manager instance isn't
- available for registration when it's created. Instead, handle
- this lock as a special case in the Object_Manager destructor.
-
- * ace/Singleton.cpp,Object_Manager.cpp: check for shutting_down ()
- as well as starting_up () when deciding whether to use a
- preallocated lock. Preallocated locks are not available at those
- times.
-
- * tests/Reactor_Performance_Test.cpp (client): removed declaration
- of loop index "i" because it shadowed a local. Also, the loop
- index declaration caused a signed/unsigned comparison.
-
- * ace/Singleton.cpp: temporarily disabled ACE_Guards until
- the lock acquistion is fixed.
-
-Wed Oct 22 17:53:26 1997 Steve Huston <shuston@riverace.com>
-
- * ace/SOCK_Connector.cpp: In connect(), changed the
- (local != ACE_Addr::sap_any) to be value comparison,
- not pointer comparison. Works on compilers which construct
- temporaries when a const reference is passed (like HP aC++), and
- also when a user passes an ACE_Addr which they construct to look
- just like an ACE_Addr::sap_any. Thanks to Stephen Coy
- <stevec@magna.com.au> for finding this.
-
-Wed Oct 22 16:43:25 1997 Chris Cleeland <cleeland@tango.cs.wustl.edu>
-
- * tests/Reactor_Performance_Test.cpp (client): Corrected some code
- that wasn't logical (but compiled!) in the connect_n() test.
-
-Wed Oct 22 13:27:47 1997 Douglas C. Schmidt <schmidt@watusi.cs.wustl.edu>
-
- * tests/Reactor_Performance_Test.cpp (client): Revised the
- connection portion of this test to use the newly revised
- connect_n() method on Connector.
-
- * ace/Connector.cpp (connect_n): Revised the connect_n() method so
- that it keeps track of which connections succeeded and which
- failed.
-
-Wed Oct 22 07:23:21 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (getpgid): fixed (commented) ACE_TRACE identifer.
- Thanks to Eric Newton <ecn@smart.net> for reporting this.
-
- * ace/Singleton.{h,cpp},Object_Manager.{h,cpp}: moved
- ace_singleton_lock_ to Object_Manager. ace_singleton_lock_
- was a static data member: in addition to the usual troubles
- associated with being a static, it was a static member of a
- template class. g++ can't handle those, so we used a local
- static; initialization of that static was not thread safe.
-
- The fix relies on knowledge from the Object_Manager about
- whether the program is in static construction phase or not.
- A critical assumption is that construction of static objects
- does not spawn threads. With that assumption, we know that
- there is only one (main) thread in the program prior to the
- Object_Manager instance being constructed. At that time,
- locking is not needed. The ACE_{TSS_}Singleton::instance ()
- methods rely on the state of the Object_Manager: if it has
- not been constructed yet, then they don't guard allocation
- of their singleton instance.
-
- The Object_Manager constructs four locks (of types ACE_Null_Mutex,
- ACE_Thread_Mutex, ACE_Recursive_Thread_Mutex, and
- ACE_RW_Thread_Mutex) for use only by ACE_Singleton classes.
- After the Object_Manager has been constructed, ACE_{TSS_}Singleton
- instantiations use one of those locks to guard their allocation of
- a new instance, via double-checked locking.
-
- This change has one impact, then:
- ACE_{TSS_}Singleton users are limited to the following types
- for their ACE_LOCK instantiation parameters: ACE_Null_Mutex,
- ACE_Thread_Mutex, ACE_Recursive_Thread_Mutex, and
- ACE_RW_Thread_Mutex. If another type is needed, it can be
- easily added to the ACE_Object_Manager: another overloaded
- get_singleton_lock () function and preallocated lock would
- have to be added.
-
- As noted in Singleton.h, the best types of ACE_LOCKs to use
- for instantiating ACE_Singleton are ACE_Recursive_Thread_Mutex
- and ACE_Null_Mutex.
-
- In addition to the above change, I made these two other
- changes:
- 1) ACE_Static_Object_Lock::instance (): dynamically allocate
- a lock if the Object_Manager has not been constructed yet.
- This approach replaces the static lock that was necessary
- to allow the static services to be constructed.
-
- 2) Consolidated the singleton_ access in ACE_TSS_Singleton
- via a singleton_i () internal accessor function. Now,
- ACE_TSS_Singleton looks just like ACE_Singleton.
-
- * ACE-INSTALL.html: updated DEC CXX 6.0 build/test status.
-
- * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i
- (handle_timeout): convert arg to long if ACE_HAS_64BIT_LONGS.
-
- * examples/Shared_Malloc/test_malloc.cpp (worker): convert arg to
- long if ACE_HAS_64BIT_LONGS.
-
- * examples/Timer_Queue/Driver.cpp (run_test,parse_commands):
- added ACE_NOTREACHED.
-
- * examples/Logger/simple-server/Logging_Handler.cpp (handle_close):
- removed declaration of unused arg "mask".
-
- * include/makeinclude/rules.local.GNU: added show_statics and
- show_uninit targets. They show the statics (that have static
- destructor calls) and uninitialized data in the object files
- in the current directory. They work best (or at all) on object
- files compiled by g++.
-
-Wed Oct 22 05:04:07 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.25, released Wed Oct 22 05:04:07 1997.
-
-Tue Oct 21 22:55:36 1997 <irfan@TWOSTEP>
-
- * ace/WFMO_Reactor: Removed ACE_Event_Handler::CLOSE_MASK and the
- explicit registration for the closing of sockets from
- WFMO_Reactor. This is essentially for compatibility with UNIX
- programs. UNIX does not have a CLOSE_MASK and the notification
- of the closing of a socket is implicit in the socket becoming
- read ready. Therefore when you register for
- ACE_Event_Handler::READ_MASK with WFMO_Reactor, you will
- register for FD_READ and FD_CLOSE. When FD_CLOSE is triggered,
- handle_input() will be called on the Event_Handler. As on UNIX,
- read() will return 0 and the programmer will be able to tell
- that the socket has actually closed down.
-
- Arguably, this is lame for Win32 programmers as they have the
- explicit close notification, but portability and existing code
- base wins in this case.
-
- One other change. When an event_handler returns -1 from the
- callback, unbind() is called with ALL_EVENTS_MASK rather than
- the NULL_MASK.
-
- The upcall routine still needs to threat the two masks
- separately. (FD_CLOSE | FD_READ) will not work as both maybe
- simultaneously enabled. Therefore handle_input() maybe be called
- twice (once for FD_READ and once for FD_CLOSE) unless the user
- returns -1 from the first callback.
-
- * ace/Event_Handler: Removed the CLOSE_MASK.
-
- * examples/Logger/simple-server/Logging_Handler.cpp: Minor fixes.
-
- * examples/Logger/Acceptor-server/server_loggerd.cpp: Minor
- changes. No need to register the acceptor with the
- Reactor. Acceptor::open() does that.
-
- * examples/Reactor/ReactorEx/test_network_events: Removed the use
- of CLOSE_MASK.
-
- * tests/Reactor_Performance_Test: Removed the use of CLOSE_MASK.
-
-Tue Oct 21 21:48:54 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.[hi]: moved ACE_PTHREAD_CLEANUP_PUSH/POP definitions from
- OS.i to OS.h. Also, added #ifdef ACE_HAS_PTHREADS protection
- before ! defined ACE_LACKS_PTHREAD_CLEANUP so that only PThreads
- platforms need add ACE_LACS_PTHREAD_CLEANUP.
-
- * tests/Notify_Performance_Test.cpp: added #include of
- ace/Thread_Manager.h. It's needed on OSF-1.
-
-Tue Oct 21 21:09:35 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Memory_Pool.cpp (ACE_MMAP_Memory_Pool): Oops. Souldn't
- access options when it is 0.
-
-Tue Oct 21 12:58:30 1997 Nanbor Wang <nw1@CHA-CHA>
-
- * ace/Log_Msg.{h,cpp}: (thr_desc): Modified the method so it take
- an extra argument of type ACE_Thread_Manager* and uses it to
- block execution until thread manager release its lock.
-
- * ace/Thread_Manager.{h,cpp} (acquire_release): Added this new
- method whose only function is to grab the thread manager's
- lock. This function ensure that a newly spawned thread won't
- try to access its thread descriptor before it is fully built.
-
- * ace/OS.cpp (inherit_log_msg): Modified to cache the thread
- descriptor of spawned thread in TSS Log_Msg after it has been
- created and block the execution of new thread until thread
- manager releases the lock (i.e., fills in all the information.)
-
- * ace/OS.h (ACE_Thread_Adapter): Added one more argument of type
- ACE_Thread_Descriptor* to the constructor with default value 0.
-
- * ace/OS.cpp (invoke): If the thread descriptor ptr is not zero
- in thread arguemnt, then, we'll wait till the thread manger
- fills in the formation and cache the value in TSS Log_Meg.
-
- * ace/Thread_Manager (spawn_i): Changed to pass in the thread
- descriptor of the newly spawned thread to thread adapter so it
- can cache it in TSS Log_Msg. This must be created before
- spawning the thread. If all goes well, we'll need to append the
- thread descriptor into the double-linked list in the thread
- manager.
- (append_thr): Added a new argument of type Thread_Descriptor*
- with default value 0. If we pass in a thread descriptor,
- append_thr won't try to create on itself.
-
-Tue Oct 21 21:34:35 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.24, released Tue Oct 21 21:34:35 1997.
-
-Tue Oct 21 14:14:33 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * examples/Timer_Queue/Thread_Timer_Queue_Test.h:
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
- Use the typedef for Upcall to define the base Timer_Queue.
- Input_Task inherits from ACE_Task_Base, no need for ACE_Task<>
- here.
-
-Tue Oct 21 13:45:53 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-irix6.x-sgic++-nothreads.h: Added ACE_HAS_TERM_IOCTLS
- for SGI. Thanks to Jeffrey Peterson
- <jpeterson@fallschurch.esys.com> for reporting htis.
-
- * TAO/tests/Thruput_test/server.cpp (main): Changed BOA_init()
- to POA_init().
-
-Tue Oct 21 12:58:30 1997 <nw1@CHA-CHA>
-
- * ace/OS.h (ACE_SINGLETON_DECLARATION):
- (ACE_SINGLETON_INSTANTIATION):
- (ACE_SVC_SINGLETON_DECLARATION):
- (ACE_SVC_SINGLETON_INSTANTIATION): Added these new macros. Each
- of them takes one argument which is the ACE_Singleton class.
- All these craps are needed because MSVCs very kindly instantiate
- the template codes for you. This ends up producing two
- ACE_Singleton objects, one in DLL and one in user program. What
- these macros do is to supress the template code instantiation in
- user program and force compilers to instantiate these codes in
- DLL. On other platforms, these macros simply expand to empty
- strings. Here is a simple use case. Say we have a class
- called <foobar> which we want to make it a singleton using
- ACE_Singleton template in our own DLL. In file <foobar.h>, add
- a line like this,
-
- ACE_SVC_SINGLETON_DECLARATION (ACE_Singleton<foobar>);
-
- and it will be expanded to suitabe code to export the class or
- supress another template instantiation outside DLL depending on
- whether ACE_BUILD_SVC_DLL is defined or not. In file
- <foobar.cpp>, add a line,
-
- ACE_SVC_SINGLETON_INSTANTIATION (ACE_Singleton<foobar>);
-
- at the end of the file to instantiate the template object in
- DLL. Notice that there is a bug in MSVC 4.2 and you'll have to
- write up a DEF file to export the template interface
- explicitly.
-
- These macros should be integrated with the case when
- ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION but because of the VC
- 4.2's bug, it will cause too much trouble to export all these
- symbols for external access. Therefore, I'll leave them as they
- are now.
-
- BTW, these is no templatized singleton object within ACE that
- needs to be exported at this moment.
-
-Tue Oct 21 07:14:24 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp: fixed compile warnings on g++.
-
- * ace/Timer_{Heap,List,Wheel}_T.cpp: replaced NULL with 0 because
- some compilers, such as GHS, define NULL as (void *) 0. So, it
- sometimes needs to be cast to be used. Thanks to Brian Mendel
- for reporting this.
-
- * ace/Thread_Manager.cpp (wait): removed thr_yield () hack because
- it's not needed with Nanbor's Thread_Manager fix.
-
- * tests/test_config.h (ACE_END_TEST): removed sleep hack with
- threading because it's not needed with Nanbor's Thread_Manager fix.
-
- * include/makeinclude/platform_vxworks*.GNU: added VXWORKS=1 macro,
- for use by individual Makefiles to suppress VxWorks builds.
-
- * examples/System_V_IPC: suppress VxWorks builds because the builds
- fail, and the examples wouldn't run anyways.
-
- * netsvcs/lib/TS_Server_Handler.cpp: only instantiate
- ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> if ! ACE_HAS_TLI
- because without TLI, the instantiation is in
- Client_Logging_Handler.cpp.
-
- * examples/Shared_Malloc/test_persistence.cpp: added #include of
- iostream.h with ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
-
- * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp: removed
- instantiation of ACE_TSS<ACE_Dynamic> because it is in
- ace/Thread_Manager.cpp.
-
-Tue Oct 21 02:23:26 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.23, released Tue Oct 21 02:23:26 1997.
-
-Tue Oct 21 02:18:56 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/Makefile: Things are happier now, so we've added back
- the Timer_Queue directory to the Makefile.
-
- * examples/Timer_Queue: Added lots of annoying template
- specializations so that the timer queue tests now work with GCC.
-
- * ace/Svc_Conf.l: Changed the regular expression for a
- {string} so that it maches the null string (i.e., "").
-
-Tue Oct 21 01:07:58 1997 Sergio Flores <sergio@polka.cs.wustl.edu>
-
- * examples/Timer_Queue:
- Added documentation and fixed some warnings from the unused
- arguments in some member functions. Cleaned up some .h files of
- unnecessary template instantiations.
-
-Tue Oct 21 01:01:12 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Thread_Manager.h: Added more comments.
-
- * ace/Thread_Manager.{h,cpp}: Added a parameter <size> to
- Thread_Manager's constructor with default value 0. This
- parameter is currently unused and put in for backward
- compatibility.
- (open): Putting back this method for backward compatibility.
- This is currently a no-op. Thanks to David for reporting this.
- Also modify some mis-inform comments.
-
-Mon Oct 20 22:34:46 1997 <irfan@TWOSTEP>
-
- * ace/OS.i (open): Moved Win32 specific errno mappings from open()
- to ACE_FAIL_RETURN. Also updated the wide-character version of
- open().
-
-Mon Oct 20 14:07:37 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-hpux-10.x.h: Added #define ACE_DEFAULT_BASE_ADDR
- ((char *) 0x80000000) so that the various mmap() tests
- will work on HP/UX. Thanks to Stephen Coy <stevec@magna.com.au>
- for reporting this.
-
- * ace/OS.i: Fixed the implementation of ACE_OS::cond_timedwait()
- so that it will work on VxWorks. Thanks to David Levine for
- chasing this down and doing most of the changes.
-
- * ace/OS.h: Added a new special case for _KCC so that its
- ACE_UNUSED_ARG will work properly. Thanks to Torbjorn Lindgren
- <tl@funcom.no> for reporting this.
-
-Mon Oct 20 22:23:42 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * tests/Sigset_Ops_Test.cpp (main): It is not legal too for
- sigismember to return 0 if we pass an invalid signal to it.
- Thanks to Stephen Coy <stevec@magna.com.au> for fixing this.
-
- * Thread_Manager.*: Replace the thr_table_ with a double-linked
- list thr_list_. With this change, we can cache the thread
- descriptor entries in TSS area. Then, when accessing thread
- descriptor from a spawned thread's context, we don't have to
- search thru the whole list in order to find the corresponding
- thread descriptor. Double-linked list and caching also make
- adding/removing thread descriptor entries very fast. At this
- moment, we need to do a linear search when we try to access the
- cached pointer the first time. This overhead is expected to
- removed shortly. The will be some memory leaks at this moment
- because I haven't implemented the code to clean up the list when
- a thread manager gets deleted. Will fix it soon.
-
- * Log_Msg.{h,cpp}: Removed thr_state methods, variable, and thr_id
- methods and variable and replace them with thr_desc which cache
- the pointer to the thread descriptor structure.
-
- * Containers.*: Added two new template classes
- ACE_Double_Linked_List and ACE_Double_Linked_List_Iterator.
- These two classes implement the very fundamental data structure
- of double-linked list. Although this is not actually a
- container class, I couldn't find a better place to put these
- classes.
-
- * ace/Filecache.*
- * ace/FIFO.*
- * ace/FIFO_Send.*
- * ace/FIFO_Recv.*
- * ace/FIFO_Send_Msg.*
- * ace/FIFO_Recv_Msg.*
- * ace/Memory_Pool.* (ACE_MMAP_Memory_Pool_Options,
- ACE_MMAP_Memory_Pool): Added one member variable to these class
- so users can specify the LPSECURITY_ATTRIBUTES object they want
- to use with them.
- (map_file, init_inquire): Pass the security attribute to
- underlying memory map object.
-
- * ace/Mem_Map.* (ACE_Mem_Map, map, open, map_it): Added a new
- function parameter LPSECURITY_ATTRIBUTES. It will be passed
- down to ACE_OS::mmap or ACE_OS::open. This is only used on
- Win32.
-
-Mon Oct 20 08:48:28 1997 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h, config-hpux-10.x.h: Added a new definition,
- ACE_HAS_TIUSER_H_BROKEN_EXTERN_C - HP-UX's tiuser.h has
- def for t_errno/_terrno() outside of an extern "C" block,
- so in this case, wrap #include <tiuser.h> in our own
- extern "C" block. HP support call W3711856.
-
-Mon Oct 20 07:49:54 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile (TIMESTAMP): moved chmod after cvs commit.
-
- * include/makeinclude/platform_sunos{4,5}_sunc++*.GNU: don't
- create Templates.DB/Modules.DB, because that should have been
- Module.DB, and it's not needed anyways.
-
- * ace/config-vxworks-ghs-1.8.h: removed ACE_HAS_VERBOSE_NOTSUP.
-
- * tests/run_tests.vxworks: re-enabled Buffer_Stream_Test now that
- ACE_OS::cond_timedwait () is supported on VxWorks.
-
- * examples/IPC_SAP/TLI_SAP/ftp-server.cpp (main): removed call
- to ACE_Thread_Manager::open () because it no longer is available.
-
-Mon Oct 20 02:04:19 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.22, released Mon Oct 20 02:04:19 1997.
-
-Mon Oct 20 02:01:43 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/Makefile: Removed the Timer_Queue directory from the
- Makefile until Sergio has fixed all the examples for GCC.
-
-Sun Oct 19 21:15:10 1997 Sergio Flores <sergio@polka.cs.wustl.edu>
-
- * examples/Timer_Queue: Added a new testing framework for
- various types of ACE_Time_Queue usecases, e.g., threaded,
- reactive, and asynchronous.
- The new classes are:
- <Timer_Queue_Test_Driver> which factors out the common code for
- different type of Timer queue implementations, for example the parsing,
- the input reading, and leaves the implementation of display_menu() for
- example, to subclasses.
- <Async_Timer_Queue_Test_Driver> the asynchronous version of the timer
- queue, uses signals.
- <Reactor_Timer_Queue_Test_Driver> implements the reactive timer queue
- test driver using <ACE_Reactor>
- <Thread_Timer_Queue_Test_Driver> the threaded implementation of the
- timer queue.
- <Command> this class is used to specify operations on the timer queue
- independently of their implementation. Thsi allows different
- implementations of the timer queue to have different ways of
- doing the operations without the base class having to know that.
- See the Command pattern.
- Added some helper functions into the <Input_Task> class.
-
-
-Sun Oct 19 18:07:31 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace: Added new config files for SCO OpenServer with a new initial scheme
- to make config files:
-
- - The config to SCO OpenServer has been changed to separate OS
- specific flags, threads and compiler flags.
-
- - For SCO OpenServer the base config file is config-sco-5.0.0.h
-
- - Pthreads base files are config-fsu-pthread.h and
- config-mit-pthread for FSU and MIT pthreads.
-
- - The compiler file has been named config-gcc-2.7.2.h, this is
- base config file for GNU gcc 2.7.2
-
- To build a config file for SCO using GNU gcc 2.7.2 would be:
-
- #include "ace/config-gcc-2.7.2.h"
- #include "ace/config-sco-5.0.0.h"
-
- We would obtain ACE config file for SCO OpenServer with GNU gcc
- 2.7.2 with no threads. To build a config file for SCO using GNU
- gcc 2.7.2 with FSU pthread would be:
-
- #include "ace/config-gcc-2.7.2.h"
- #include "ace/config-sco-5.0.0.h"
- #include "ace/config-fsu-pthread.h"
-
- Thanks to Arturo Montes <mitosys@colomsat.net.co> for these
- changes.
-
- * ace/OS.i (open): Modified ACE_OS::open() so that it sets errno
- to EACCES when the requested file is in use. Thanks to Edan
- Ayal <edana@vdo.net> for reporting this.
-
-Sun Oct 19 17:55:34 1997 David L. Levine <levine@cs.wustl.edu>
-
- * etc/purify.solaris2: the contents of my ~/.purify file
- for Solaris 2.x. The ACE tests purify cleanly with it.
-
-Sun Oct 19 13:49:17 1997 Carlos O'Ryan <coryan@MILONGA>
-
- * ace/Proactor.cpp:
- The mutex vs lock name change strikes back, this time under NT.
-
- * tests/Conn_Test.h:
- * tests/Conn_Test.cpp:
- The Svc_Handler was cached, but it had the default
- handle_close() method, which destroys the object. The new
- version leaks a bit of memory, but it seems that it never
- crashes.
-
-Sat Oct 18 09:13:29 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch_T.cpp (lock): Moved the frigging lock method of
- Atomic_Op into the *.cpp file to work around bugs with earlier
- versions of the horribleHP/UX C++ compiler. Thanks to Neil
- Cohen for reporting this.
-
-Sat Oct 18 07:43:29 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile (release): oops, removed "echo" that was used to
- disable CVS commit, for testing.
-
- * ace/Thread_Manager.{h,cpp},Object_Manager.{h,cpp}: moved
- ace_thread_exit_lock_ to Object_Manager.
-
- * include/makeinclude/rules.local.GNU: added $(TEMPLATE_REPOSITORY)
- to OBJDIRS, so that individual platforms can add template
- repository directories for creation.
-
- * include/makeinclude/platform_sunos{4,5}_sunc++*.GNU: added
- TEMPLATE_REPOSITORY with Templates.DB and Templates.DB/Modules.DB.
- We can build without any warnings with Sun C++ now.
-
-Sat Oct 18 00:17:26 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.21, released Sat Oct 18 00:17:26 1997.
-
-Fri Oct 17 22:51:46 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/Timer_Queue_Adapters.h:
- * ace/Timer_Queue_Adapters.i:
- * ace/Timer_Queue_Adapters.cpp:
- * ace/Timer_Queue_T.h:
- * ace/Timer_Queue_T.i:
- * ace/Timer_Queue_T.cpp:
- * ace/Timer_List_T.cpp:
- * ace/Timer_Wheel_T.cpp:
- * ace/Timer_Hash_T.cpp:
- Changed the accessor name for the lock_ field from mutex() to
- lock(), we know this can cause trouble on HP-UX, but only if the
- function is inline; so it was moved to the .cpp file.
-
- * ace/Timer_Queue_Adapters.h:
- * ace/Timer_Queue_Adapters.i:
- Changed the method name from lock() to mutex(), this should
- workaround a bug in the HP/C++ compiler.
-
- * ace/Timer_Hash.cpp:
- * ace/Timer_Hash_T.h:
- * ace/Timer_Heap.cpp:
- * ace/Timer_Heap_T.h:
- * ace/Timer_List.cpp:
- * ace/Timer_List_T.h:
- * ace/Timer_Queue.cpp:
- * ace/Timer_Queue_T.h:
- * ace/Timer_Wheel.cpp:
- * ace/Timer_Wheel_T.h:
- Workaround HP/C++ compiler bug, we cannot include the .cpp file
- from the header file, but it must be included in the point of
- instantiation.
-
-Fri Oct 17 18:34:00 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Atomic_Op.i (lock): Added an accessor to ACE_Atomic_Op to
- return a reference to the underlying lock. Thanks to Janusz
- Stopa <jstopa@Bear.COM> for suggesting this.
-
-Fri Oct 17 15:36:26 1997 <nw1@CHA-CHA>
-
- * ACE/config-win32-common.h: Added a directive to disable warning
- of using Microsoft template instantiation control extension.
-
-Fri Oct 17 06:31:20 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Atomic_Op.i (operator=): rsh.value () instead of just rhs.
-
- * Makefile (release): added ACE_VERSION string to ace/Version.h.
- The MS Resource-Compiler doesn't implement the preprocessor
- # operator, so ACE_VERSION supplies the concatenated version
- string. Thanks to Matthias for suggesting this.
-
- * ace/Svc_Handler.{h,cpp},Object_Manager.{h,cpp}: moved
- ace_svc_handler_lock_ to Object_Manager. This lock was
- created once per Svc_Handler instantiation. It has been
- replaced by a single lock for all instantiations. That
- shouldn't be a problem because there are so few Svc_Handler
- instantiations, and the lock is only used for singleton
- creation using double-checked locking.
-
-Fri Oct 17 01:19:35 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.20, released Fri Oct 17 01:19:35 1997.
-
-Fri Oct 17 00:05:55 1997 <irfan@TWOSTEP>
-
- * ace/OS: Added ACE_Export to declarations to:
- ace_mutex_lock_cleanup_adapter, ftruncate, ace_thread_adapter
-
- * ace/OS.cpp (readv, writev): Moved ACE_Export directive from
- OS.cpp to OS.i.
-
- * ace/Atomic_Op (operator TYPE): operator TYPE() of Atomic_Op has
- been deprecated and removed. Because both user-defined
- conversions and user-defined operators were defined on
- Atomic_Op, it was possible to get ambiguities between the
- user-defined operators and the built-in operators. Therefore,
- operator TYPE() has been removed and explicit accessor value()
- has been added. Thanks to Stephen Coy <stevec@magna.com.au> for
- suggesting this.
-
- * ace/Atomic_Op (operator!=): Add new operator.
-
- * tests/Atomic_Op_Test.cpp: Previously we had foo.operator== (5).
- It was necessary to resolve the ambiguities between the
- user-defined operators and the built-in operators. Since we have
- removed the automagic type conversion, we can go back to writing
- foo == 5.
-
- * ACE: Atomic Op related minor changes:
-
- ace/Malloc.cpp (dump):
- tests/Future_Test.cpp (main):
- tests/Reactors_Test.cpp (handle_input):
- example/Threads/{future1.cpp future2.cpp manual_event.cpp task_two.cpp tss2.cpp}:
- examples/Reactor/Misc/test_reactors.cpp:
-
- * tests/Notify_Performance_Test.cpp:
- * tests/Reactor_Performance_Test.cpp:
-
- Moved explicit template instantiation code to ACE_HAS_THREADS
- part for the test. Thanks to Stephen Coy <stevec@magna.com.au>
- for pointing this out.
-
-Thu Oct 16 20:44:40 1997 James C Hu <jxh@cs.wustl.edu>
-
- * ace/Message_Block.cpp: Changed how continuations are released in
- the Message_Block::release_i() method to use an iteration rather
- than recursion. This is to avoid a stack overflow problem
- encountered by Janusz Stopa.
-
- * ace/OS.cpp: Added ACE_Export to the declarations of ::writev and
- ::readv. These are emulation implementations for systems that
- don't support them natively. Was not being resolved correctly
- on NT. Hopefully this will fix it. Fix suggested by Rob Head
- (rhead@virtc.com).
-
-Thu Oct 16 14:21:34 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Proactor.cpp: Replaced #include "ace/Servie_Config.h" with
- #include "ace/Object_Manager.h" for declaration of
- ACE_Static_Object_Lock.
-
-Thu Oct 16 10:22:48 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/Timer_Heap_T.h:
- Fixed comment on the Heap_Iterator, it said "Iterates over an
- <ACE_Timer_*Hash*_T>").
-
-Thu Oct 16 08:43:50 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (sema_trywait): on VxWorks only, fixed to set errno to
- EBUSY if the semaphore couldn't be taken. Thanks to Doug for
- suggesting this fix.
-
- * performance-tests/Misc/preempt.cpp (main): fixed program name.
-
- * include/makeinclude/platform_osf1_4.0.GNU: OCFLAGS instead of OFLAGS.
-
- * tests/test_config.h (VxWorks): restored the removal of the log
- file, because it again appears to be necessary.
-
- * tests/run_tests.vxworks: updated VxWorks tests status.
-
- * ace/OS.cpp,Token_Invariants.{h,cpp},Object_Manager.{h,cpp}:
- moved ace_os_monitor_lock and ACE_Token_Invariants_Creation_Lock
- to Object_Manager.
-
-Thu Oct 16 02:26:12 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.19, released Thu Oct 16 02:26:12 1997.
-
-Thu Oct 16 02:07:54 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * tests/Priority_Reactor_Test.cpp: Added a "max_retries" flag to
- keep the test from hanging forever... Thanks to Stephen Coy
- <stevec@magna.com.au> for motivating this.
-
- * tests/Priority_Reactor_Test.h: Changed
-
- class Read_Handler : public ACE_Svc_Handler<<ACE_SOCK_Stream, ACE_INET_Addr, ACE_SYNCH>
-
- to
-
- class Read_Handler : public ACE_Svc_Handler<<ACE_SOCK_STREAM, ACE_SYNCH>
-
- and the same for the Write_Handler. Thanks to the ever vigilant
- Stephen Coy <stevec@magna.com.au> for reporting this.
-
-Thu Oct 16 01:18:48 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.cpp (socket_init): Changed to use ACE_UNUSED_ARG.
-
- * ace/SV_Semaphore_Simple.cpp (name_2_key): Explicitly cast the
- return value to (key_t). It was causing problem on Win32.
-
-Wed Oct 15 22:47:30 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/ACE.h:
- * ace/ACE.cpp:
- Added an implementation of the ISO 8802-3 standard 32 bits CRC,
- but for strings only. The implementation was taken from the
- FreeBSD code.
-
- * ace/SV_Semaphore_Simple.cpp: Improved the hashing algorithm to
- assign a "unique" key for semaphore keys using an string. This
- solves a problem detected by Mark L. Boriack
- (Mark.L.Boriack@cpmx.saic.com): under OSF/1 the were too many
- collitions with the default arguments for ACE_Process_Mutex.
- Note that this is only a problem if no name is given to it.
-
- * ace/Log_Msg.cpp: ACE_Log_Msg_message_queue_ was not initialized
- in platforms without threads.
-
- * ace/Containers.h: Added a duplicate ACE_Ubounded_Stack_Iterator
- to the NANBOR_EXP_CHANGES block.
-
- * ace/OS.h (ACE_DES_FREE_TEMPLATE): Removed unneeded concatenation
- that was getting the HP/aCC compiler a bit confused. Thanks to
- Stephen Coy <stevec@magna.com.au> for pointing out the problem
- and then reminding me of actually adding the solution to ACE.
-
-Wed Oct 15 11:07:47 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.i: Fixed the flock_trywrlock() and flock_tryrdlock() so
- that they both set errno = EBUSY if they lock is already held.
-
- * ace/OS.i (mutex_trylock): Make the VxWorks version consistent
- with the other versions by returning -1 and setting errno to
- EBUSY. Thanks to David Levine for reporting this.
-
- * ace/Synch.h: Updated the documentation to clarify what the
- return value is from the tryacquire() methods.
-
- * ace/OS.i (mutex_trylock): On NT, if we try to acquire a mutex
- that's already locked we'll return -1 and set errno to EBUSY
- rather than ETIME to be consistent with Pthreads. Please see
- the following entry to understand why this doesn't break
- existing code ;-).
-
- * ace/OS.h: Added a #define for EBUSY on NT. We'll make it the
- same as ETIME to avoid breaking existing code!
-
- * tests/Process_Strategy_Test.cpp (main): Ignore SIGCHLD in the
- child.
-
-Wed Oct 15 14:59:41 1997 <nw1@CHA-CHA>
-
- * tests/run_tests.bat: Added Reactor_Performance_Test and
- Notify_Performance_Test to one button test script.
-
- * tests/tests.dsw: Added Reactor_Performance_Test.dsp and
- Notify_Performance_Test.dsp.
-
-Wed Oct 15 07:21:05 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.{h,i},Version.h: added ACE version macros, and static
- functions to access them in class ACE.
-
- * Makefile (release): updates ace/Version.h based on contents of
- VERSION.
-
- * tests/Time_Value_Test.cpp: added test of ACE version accessors.
-
- * ace/OS.cpp,Object_Manager.cpp: changed ACE_TSS_CLEANUP_LOCK
- from an ACE_Thread_Mutex to an ACE_Recursive_Thread_Mutex.
-
- * ace/OS.h: define ACE_NOTREACHED as empty on DEC_CXX (and
- on ghs instead of VXWORKS).
-
- * tests/TSS_Test.cpp (worker): convert void *c to long if
- ACE_HAS_64BIT_LONGS to avoid DEC cxx compiler warning.
-
- * examples/Threads/thread_specific.cpp (worker): convert void *c
- to long if ACE_HAS_64BIT_LONGS. Changed name of "lock" to
- "printf_lock" to avoid collision with lock () in DEC cxx
- iostream.hxx.
-
- * examples/threads/tss1.cpp: removed unused static "lock".
-
- * examples/IPC_SAP/TLI_SAP/ftp-server.cpp (read_file): convert
- void *fd to long if ACE_HAS_64BIT_LONGS. And, put "n" in
- ACE_UNUSED_ARG. (main): put "return 0" in ACE_NOTREACHED.
-
- * include/makeinclude/platform_osf1_4.0.GNU: minor cleanup, incl.
- addition of -use_ld_input to SOFLAGS.
-
- * include/makeinclude/platform_osf1_4.0_g++.GNU: added "c" to
- ARFLAGS.
-
- * tests/Future_Test.cpp,examples/Threads/future[12].cpp
- (Method_Object_Name): removed extraneous ";" after function
- definition.
-
- * netsvcs/lib/Base_Optimizer.h: adding missing, default "public"
- access specifier.
-
- * apps/JAWS/Server/HTTP_Config.h: added "class" to friend HTTP_Config
- declaration in HTTP_Config_Info.
-
- * examples/IPC_SAP/TLI_SAP/ftp-client.cpp: removed unused variable
- "MAXLINE".
-
- * examples/IPC_SAP/TLI_SAP/db-server.cpp (main): wrapped "return 0"
- with ACE_NOTREACHED.
-
- * examples/Reactor/Misc/test_timer_queue.cpp (handle_timeout):
- convert void *arg to long if ACE_HAS_64BIT_LONGS.
-
- * examples/Service_Configurator/IPC-tests/client/
- local_fifo_client_test.cpp: removed unused variable BUF_LEN.
-
- * examples/Shared_Malloc/test_persistence.cpp:
- removed unused Employee ostream << operator.
-
- * tests/Conn_Test.cpp: neutered Conn_Test on DEC_CXX. It
- doesn't build on DEC cxx 5.5 due to apparent template
- instantiation problems. Thanks to James Johnson for
- reporting that. And it doesn't terminate when built with
- DEC cxx (beta) 6.0.
-
- * ace/Thread_Manager.h: removed parens from (???) because
- g++ got upset about encountering a trigraph.
-
- * tests/{Notify,Reactor}_Performance_Test.cpp: added
- ACE_UNUSED_ARG (handle).
-
- * tests/Makefile,run_tests.sh: added Reactor_Performance_Test and
- Notify_Performance_Test.
-
- * tests/run_tests.vxworks: added test status of
- Reactor_Performance_Test (doesn't appear to do anything,
- but doesn't return) and Notify_Performance_Test (fcntl
- not supported).
-
-Wed Oct 15 01:48:36 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Containers.{h,i,cpp}:
- * ace/Thread_Manager.{h,i,cpp}: Start modifying these files.
- Will work on them for a day or two. You guys shouldn't worry
- about these changes affecting anything because I surround my
- changes with #ifdef (NANBOR_EXP_CHANGES) my changes #else
- original codes #endif. More details change log will be added
- once I get them all working.
-
-Tue Oct 14 23:54:21 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.18, released Tue Oct 14 23:54:21 1997.
-
-Tue Oct 14 20:27:28 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * tests/Priority_Reactor_Test.cpp:
- Added a debug message to find out who terminates the reactor
- thread.
-
- * tests/Priority_Reactor_Test.cpp:
- The children could not connect sometimes, this will cause the
- test to hang, waiting for those failed connections.
- I added a simple exponential backoff strategy to retry
- connections until they succeed.
-
-Tue Oct 14 17:48:28 1997 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x-hpc++.h: Set ACE_LACKS_SIGNED_CHAR for
- both C++ and aC++, not just C++. Thanks to Stephen Coy and
- David Levine for finding this.
-
-Tue Oct 14 03:26:17 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.h: Moved <sys/types.h> to earlier in the file so that
- u_int will be defined. Thanks to Neil B. Cohen <nbc@metsci.com>
- for reporting this.
-
- * ace/OS.cpp (uname): Added a workaround for the fact that
- Chorus doesn't support uname(). Thanks to Wei Chiang for
- this fix.
-
-Tue Oct 14 08:02:20 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Managed_Object.{h,cpp} (ACE_Cleanup_Adapter): added virtual
- destructor, needed by some compilers for vtable placement.
- Thanks to Stephen Coy <stevec@magna.com.au> for this patch.
-
- * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
- assignments in "if" conditionals to avoid g++ warnings.
-
- * ace/Object_Manager.{h,cpp},Synch.{h,cpp}: moved
- ACE_Static_Object_Lock from Synch.{h,cpp} to Object_Manager.{h,cpp}.
- This allows it to be absorbed into the ACE_Object_Manager's
- preallocated locks. The ACE_Static_Object_Lock interface
- isn't really needed any more, but has been kept for backward
- compatibility.
-
- * ace/Object_Manager.cpp: use a static ACE_Static_Object_Lock,
- temporarily, because the ACE static services needs it.
-
- * ace/Malloc.cpp,Reactor.cpp,Service_Repository.cpp: added
- #include "ace/Object_Manager.h" for ACE_Static_Object_Lock.
-
- * ace/Thread_Manager.h: moved ACE_Thread_Manager::THR_FUNC typedef
- outside the class declaration to avoid compilation problems on
- g++/VxWorks/i960 with -g. THR_FUNC is only used by protected
- ACE_Thread_Manager methods so this doesn't widen the public
- interface. Thanks to Aaron Valdivia <avaldivia@hns.com> for
- reporting this and verifying the fix.
-
- * tests/IOStream_Test.cpp (client): multiply floats by 1.0 instead
- of 1 to avoid bad code generation on g++/VxWorks/i960. Thanks to
- Aaron Valdivia <avaldivia@hns.com> for reporting this.
-
- * tests/Buffer_Stream_Test.cpp: removed unused static thread_manager.
- It caused core dump during destruction of static objects with
- ACE_HAS_NONSTATIC_OBJECT_MANAGER.
-
- * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp (handle_timeout):
- removed declaration of unused arg "tv".
-
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp (main):
- removed declarations of unused args "argc" and "argv". And,
- updated template instantiations.
-
- * ace/OS.h: use "complex" ACE_UNUSED_ARG for DEC_CXX.
-
- * ace/Reactor.i (implementation): moved definition to top of
- file to prevent use before definition.
-
- * ace/ARGV.cpp (ACE_ARGV): removed extraneous ; function definition.
-
- * ace/config-osf1-4.0.h: removed ACE_NEEDS_DEV_IO_CONVERSION.
-
- * tests/Time_Value_Test.cpp: ACE_HAS_64BIT_LONGS instead of
- ACE_HAS_64BIT_LONG.
-
-Tue Oct 14 03:13:38 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.17, released Tue Oct 14 03:13:38 1997.
-
-Tue Oct 14 03:10:00 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Service_Types.cpp (fini): Backed out the following change
- until we figure out how to keep existing Svc_Handler code from
- dying... Thanks to Nanbor for reporting this.
-
- * ace/Service_Types.cpp: Changed the implementation so that we
- bypass the default cleanup originally done in
- ACE_Service_Type_Impl::fini() and instead perform the cleanup in
- ACE_Service_Object_Type::fini (void). Thanks to Alex Chan
- <Alex.Chan@Aspect.com> for reporting this.
-
- * ace/Svc_Conf.y: Make sure that the Module has the same name as
- the Module_Type object from the svc.conf file. We need to do
- this because the Stream_Type::fini() method removes each module
- by the name given in the configuration file (stored in the
- Module_Type object). But the Stream::remove() method compares
- this name against the name stored in the Module. So the object
- is deleted, but never removed from the list. Another traversal
- of the list causes a crash... Thanks to Eric Newton for
- suggesting this fix.
-
- * ace/OS.cpp (invoke): Added call to AfxEndThread insides
- ACE_TSS_Cleanup::exit() such that the same cleanup would not be
- executed again when threads exit in ace_thread_adapter() in
- OS.cpp. Thanks to Alex Chan <Alex.Chan@Aspect.com> for
- reporting this.
-
- * ace/Service_Config.cpp (process_directives): Avoid reporting
- lex/yacc leakage since there is nothing we could do about it.
- Thanks to Alex Chan <Alex.Chan@Aspect.com> for reporting this.
-
- * ace/Svc_Conf.y: Removed duplicate call to symbol() to avoid the
- problem that dynamic service objects are created twice. Thanks
- to Alex Chan <Alex.Chan@Aspect.com> for reporting this.
-
- * examples/Reactor/FIFO/client.cpp (main): Fixed the call to
- fifo_sender.send () so that it passes msg rather than &msg.
- Thanks to Sandro Doro <doros@aureus> for reporting this.
-
-Tue Oct 14 02:49:02 1997 <irfan@TWOSTEP>
-
- * tests/Notify_Performance_Test.cpp: New performance test. This
- test is used to time the notification mechanisms of the
- ACE_Reactors. Both the WFMO_Reactor and Select_Reactor can be
- tested. The notify() mechanism can also be tested with or
- without data.
-
- * tests/Reactor_Performance_Test.cpp: New performance test. This
- test is used to time the dispatching mechanisms of the
- ACE_Reactors. Both the WFMO_Reactor and Select_Reactor can be
- tested.
-
- * ace/Svc_Handler.cpp (shutdown): Change READ_MASK | WRITE_MASK to
- ALL_EVENTS_MASK.
-
- * ace/Atomic_Op (value): Added an explicit value accessor.
-
-Mon Oct 13 23:07:15 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * tests/Process_Strategy_Test.cpp (handle_signal): Removed the
- ACE_DEBUG calls in the child reader signal handler. This was
- causing all sorts of random problems due to the asynchronous
- nature of signals. Thanks to David Levine for pointing this
- out.
-
-Mon Oct 13 16:27:46 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * tests/Priority_Reactor_Test.h:
- * tests/Priority_Reactor_Test.cpp:
- Fixed wrong header file, thanks to Irfan (irfan@cs.wustl.edu)
-
- * examples/Shared_Malloc/test_persistence.cpp:
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
- Added a couple of ACE_NOTREACHED, thanks to Torbjorn Lindgren
- <tl@funcom.no> for pointing out this one.
-
- * ace/Priority_Reactor.cpp:
- Added some more template specializations.
-
- * tests/Priority_Reactor_Test.cpp:
- Fixed a number of bugs: hostname not initialized when creating
- the server address.
- The Svc_Handler base class should be instantiated using the
- ACE_*_STREAM macros.
- The code for non-threaded platforms was broken.
- Thanks to Irfan <irfan@cs.wustl.edu>
-
- * tests/Priority_Task_Test.cpp:
- We use the new ACE_Sched_Priority_Iterator.
-
- * include/makeinclude/platform_irix6.x-32_sgic++.GNU:
- * include/makeinclude/platform_irix6.x-n32_sgic++.GNU:
- Removed this old config files, they have been superseeded by
- platform_irix6.x_sgic++.GNU.
-
-Mon Oct 13 15:41:32 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Select_Reactor.i, Priority_Reactor.i: Moved code for the
- ACE_Event_Tuple struct from Priority_Reactor.i to Select_Reactor.i.
-
- * ace/Priority_Reactor.cpp: added #include Malloc_T.h to build on AIX.
-
- * ace/Synch_T.h, Timer_Queue_Adapters.h - added a template argument
- to the non-ACE_HAS_TEMPLATE_TYPEDEFS, multi-threaded version of
- the ACE_SYNCH_CONDITION macro - of the 3 possibilities for its
- definition, this is the only case which requires a template
- argument. Timer_Queue_Adapters.h is the only user of the definition,
- and it was changed to not supply the template argument.
-
- * tests/Conn_Test.h:
- * tests/Process_Strategy_Test.h: Added #include "ace/SOCK_Stream.h"
-
-Mon Oct 13 13:42:05 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp (svc):
- Added a macro to define L_cuserid on Win32.
-
-Mon Oct 13 13:44:40 1997 <irfan@TWOSTEP>
-
- * ace/Priority_Reactor: Fixed a gross violation of ACE coding
- standard. Changed bucket to bucket_.
-
-Mon Oct 13 12:58:01 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i: moved ACE_OS::strcasecmp () definition after
- ACE_OS::strlen () to prevent use before definition.
-
- * ace/Priority_Reactor.i: reordered initializers to match
- declaration order.
-
- * ace/Sched_Params.i: reordered function definitions to prevent
- uses before definitions.
-
- * ace/Thread_Manager.cpp (ACE_Thread_Descriptor ctor): reordered
- initializers to match declaration order. (spawn_i): added
- ACE_UNUSED_ARG (t_handle) without WTHREADS.
-
- * ace/Thread_Manager.cpp (wait): moved all of the "join" block
- inside the #ifndef VXWORKS so that it compiles on VxWorks.
-
- * ace/Strategies_T.cpp (ACE_NOOP_Creation_Strategy<SVC_HANDLER>::
- make_svc_handler): removed unused arg declaration to avoid
- compiler warning.
-
- * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
- assignments in "if" conditionals to avoid g++ warnings.
-
- * tests/Priority_Reactor_Test.cpp (handle_input): added
- ACE_UNUSED_ARG (h).
-
- * examples/Connection/non_blocking/CPP-connector.cpp (handle_signal):
- added ACE_UNUSED_ARG (signum).
-
-Mon Oct 13 03:25:45 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.16, released Mon Oct 13 03:25:45 1997.
-
-Mon Oct 13 03:18:33 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Thread_Manager.h: Removed the following code from
- ACE_Thread_Control:
-
- #if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
- static ACE_Thread_Mutex ace_thread_lock_;
- // Lock the creation of the Singleton.
- #endif /* defined (ACE_MT_SAFE) */
-
- What on earth was this doing here?! Thanks to Stephen Coy
- <stevec@magna.com.au> for reporting this.
-
-Mon Oct 13 00:10:00 1997 <irfan@TWOSTEP>
-
- * tests/Atomic_Op_Test.cpp (main): Changed "foo == 5L" to
- "foo.operator== (5L)" because the former was breaking some
- compilers (e.g., HP/UX aCC).
-
- * ace/Connector.h (open): Removed the defaults arguments since
- some compilers complain about the two open()s being
- indistinguishable.
-
-Sun Oct 12 23:51:57 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/{Synch_T,Atomic_Op}: All the relational operators should
- return int (really return bool) rather than TYPE.
-
-Sun Oct 12 18:41:01 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * tests/Priority_Reactor_Test.cpp:
- Added several missing template specializations.
-
- * ace/Priority_Reactor.cpp:
- Fixed typo (#pragme for #pragma).
- Added several missing template instantiation.
-
- * ace/Timer_Queue_Adapters.cpp:
- The includes were missing and there was a minor syntax error.
-
-Sun Oct 12 16:16:15 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/ace_{dll,lib}.dsp: Added Timer_Queue_Adapters.cpp into
- project files.
-
- * tests: Added a new test Priority_Reactor_Test.
-
- * ace/Timer_Queue_Adapters.{h,i}: Added or moved the line that
- instructs edit mode to use on emace to the first line. Also
- added ACE_Export to classes in this file.
-
- * ace/Timer_Queue_Adapters.cpp: Added proper inclusion of the
- header file. Corrected a syntax error.
-
- * examples/Timer_Queue/Timer_Queue.dsw: Added a new project
- Thread_Timer_Queue_Test.dsp.
-
- * tests/run_tests.{bat,sh}: Added MT_SOCK_Test and
- Priority_Reactor_Test into one-buttoned test set.
-
-Sun Oct 12 16:53:32 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/examples/Service_Configurator/IPC-tests/server: Reformatted
- and recommented the code a bit.
-
- * ace/OS: Added 3 new ACE #defines:
-
- #define ACE_ONE_SECOND_IN_MSECS 1000L
- #define ACE_ONE_SECOND_IN_USECS 1000000L
- #define ACE_ONE_SECOND_IN_NSECS 1000000000L
-
- This is much easier to read than trying to keep track of the
- 000s! Then, replaced all uses of the original values with the
- new symbolic constants.
-
- * ace/Timer_List.cpp: Removed an explicit template instantiation
- of ACE_Async_Timer_Queue_Adapter<>. Why was it here in the
- first place?
-
- * ace: Created a new group of Timer_Queue_Adapters files and moved
- the Async and Thread adapters into this file. This reduces the
- amount of coupling in the ACE library and removes problems with
- circular includes.
-
- * ace/Timer_Queue_T: Added a new ACE_Thread_Timer_Queue_Adapter,
- which makes it possible to use a timer queue in a thread
- automagically. Thanks to Carlos O'Ryan for writing this.
-
- * examples/Timer_Queue: Began to integrate Carlo's new thread
- timer queue test.
-
- * examples/Timer_Queue/Async_Timer_Queue_Test.cpp: Changed the
- timer queue from a Timer_List to a Timer_Heap.
-
- * examples/Makefile (DIRS): Added Timer_Queue to the list of DIRS
- to build.
-
-Sun Oct 12 16:45:47 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/Sched_Params.h:
- Added some comments.
-
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
- Added some comments and template specializations.
-
- * examples/Naming/Makefile:
- There is no need to set LDLIBS to add local object files
- anymore, using FILES is enough.
-
-Sun Oct 12 03:35:37 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * examples/Timer_Queue: Added a new directory for testing of
- various usages of timer queue.
-
- * tests/Async_Timer_Queue_Test: Moved to examples/Timer_Queue.
- It doesn't really belong to tests/ directory.
-
- * ace/ACE.cpp (register_stdin_handler): Must register the reactor
- we are using to the event handler.
- (read_adapter): Must notify the reactor when we are done with
- handling stdin event.
-
-Sun Oct 12 00:26:56 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/Makefile:
- * ace/Priority_Reactor.h:
- * ace/Priority_Reactor.i:
- * ace/Priority_Reactor.cpp:
- Augmentes Select_Reactor, adding priority based dispatching for
- the I/O Event_Handlers, the only feature supported is
- dispatching in the order defined by the priorities.
- Each Event_Handler defines its priority, if the priority is out
- of range the culprit is "punished" by dispatching at the lowest
- priority.
- Care has been exercised to avoid dynamic memory allocation.
-
- * tests/Makefile:
- * tests/Priority_Reactor_Test.h:
- * tests/Priority_Reactor_Test.cpp:
- Added small tests of the Priority_Reactor, the test runs an
- Acceptor on the main thread and creates several threads (or
- processes if the plaform does not support threads) that connect
- to this Acceptor. The writing threads send several short
- messages, the main thread receives them using one Svc_Handler
- per writer, dispatched at different priorities.
- The test itself is interesting, it shows how to write very
- simple Svc_Handler, Connectors and Acceptors.
-
- * ace/Select_Reactor.h:
- * ace/Select_Reactor.cpp:
- The dispatching of all the handles in a "group" (READ, WRITE or
- EXCEPT) was encapsulated in a single routine.
-
- * ace/Malloc_T.cpp:
- In the Cached_Allocator memory was allocated as an arrays of
- char, it must be released the same way.
-
- * ace/Sched_Params.h:
- * ace/Sched_Params.i:
- Added a new class (ACE_Sched_Priority_Iterator) to iterate over
- the priorities.
-
- * tests/Priority_Task_Test.cpp:
- Added some comments.
-
-Sat Oct 10 16:23:49 1997 Steve Huston <shuston@riverace.com>
-
- * tests/SOCK_Connector_Test.cpp: Passes the test if the should-fail
- non-blocking test fails for any reason - not limited to ECONNREFUSED
- or ENOTCONN.
-
-Sat Oct 11 16:02:33 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.15, released Sat Oct 11 16:02:33 1997.
-
-Sat Oct 11 14:38:16 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/SOCK_Connector.cpp (complete): Fixed a typo with
- ACE_NON_BLOCKING_BUG_DELAY. Thanks to John Zeb Dhom"
- <zeb@ibm.net> for reporting this.
-
- * tests/MT_SOCK_Test.cpp (client): Slightly revised the client
- function so that it doesn't try to use non-blocking connects if
- it's on a Win32 platform that has bugs with non-blocking
- connects.
-
- * ace/SOCK_Connector.cpp: It appears that connect() can set the
- ETIMEDOUT errno if the connection times out (whatever that
- means). Therefore, I need to check for that errno, rather than
- ETIME after calling connect().
-
- * tests/SOCK_Connector_Test.cpp: Added a check for ETIMEDOUT
- since this appears to be set by some platforms (e.g.,
- SGI).
-
-Sat Oct 11 02:52:10 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.14, released Sat Oct 11 02:52:10 1997.
-
-Sat Oct 11 02:10:29 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * examples/Logger/simple-server/Makefile:
- * examples/Mem_Map/IO-tests/Makefile:
- * examples/Reactor/Multicast/Makefile:
- * examples/Service_Configurator/Misc/Makefile:
- Fixed some more problems with the Makefiles for binaries; I took
- the chance and added RCS ids on the Makefiles
-
-Fri Oct 10 18:39:39 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * tests/Service_Config_Test.cpp: Moved the static member function
- called cleanup() out into a stand-alone extern "C" function
- called test_singleton_cleanup() to workaround MVS C++ compiler
- bugs. Thanks to Chuck Gehr for reporting this.
-
- * ace/Task.cpp: Solved the age old MVS C++ problem where we can't
- register C++ static member functions as C callback functions.
- The solution here was to create a C wrapper to do the callback.
- Thanks to Chuck Gehr for reporting this.
-
- * tests/Service_Config_Test.cpp: Made the destructor of
- Test_Singleton public to work around bugs with the MVS C++
- compiler. Thanks to Chuck Gehr for reporting this.
-
- * ace/ACE,
- ace/Proactor,
- ace/SOCK_Connector,
- ace/SPIPE_Connector,
- ace/Acceptor,
- tests/Conn_Test: Changed ETIMEDOUT errno to ETIME errno to be
- consistent throughout ACE. There should be no uses of
- ETIMEDOUT in ACE or the test apps and examples.
-
- * ace/ACE.cpp (handle_timed_complete): Only assume that we've
- timed out if the return value from select() == 0 *and* the
- timeout value isn't NULL...
-
- * ace/Object_Manager.h: Replaced the use of ACE_MT() in the header
- file with a #ifdef. This solves problems that arise when ACE_MT
- is defined as "nothing" when MT_SAFE is not defined. As a code
- which has "ACE_MT();" becomes just ";" and fail to compile.
- Thanks to Avraham Nash <ANash@Engagetech.com> for reporting
- this.
-
-Fri Oct 10 19:55:50 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * examples/ASX/CCM_App/Makefile:
- * include/makeinclude/rules.bin.GNU:
- I have re-applied Steve Huston changes from Oct 01, the change
- was (IMHO) useful and made compilation cleaner.
-
- * examples/ASX/Event_Server/Event_Server/Makefile:
- Fixed problem that made compilation fail.
-
-Fri Oct 10 19:52:44 1997 <nw1@CHA-CHA>
-
- * ace/OS.h:
- * ace/Connector.cpp:
- * ace/SOCK_Connector.cpp: Added new #define
- ACE_NON_BLOCKING_BUG_DELAY and replace their uses from some
- magic numbers to this constant.
-
-Fri Oct 10 19:27:28 1997 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/rules.bin.GNU
- examples/ASX/CCM_App/Makefile
- Removed the changes to these files added Oct 01.
-
-Fri Oct 10 15:21:07 1997 <irfan@TWOSTEP>
-
- * examples/Connection/non_blocking/CPP-connector.cpp
- (disconnecting): Remove this method. It was not being used. Also
- rewrote some parts of handle_close to make the code simple.
-
- * ace/Connector.cpp (create_AST): The register_handler() method
- now needs to explicitly be given the handle to wait on. This is
- because the get_handle() method of Connector has been
- depricated.
-
- * examples/Connection/non_blocking/test_sock_connector.cpp (main):
- Since this test waits on the STDIN handle to become ready, we
- have to make sure that the WFMO_Reactor is used on Win32. This
- is necessary since select() on NT does not support waiting on
- STDIN.
-
- * examples/Connection/non_blocking/CPP-connector.cpp (open): On
- Win32, the std handle must be registered directly (and not as a
- socket). On non-Win32, the std handle must be registered as a
- normal handle with the READ mask. Since on Win32, STDIN is used
- directly as an waitable handle, handle_signal will be called
- instead of handle_input. Therefore, we had to add handle_signal
- to the event_handler.
-
-Fri Oct 10 15:16:47 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/WFMO_Reactor.{h,cpp}:
- * ace/Select_Reactor.{h,cpp}:
- * ace/Reactor_Impl.h:
- * ace/Reactor.h: Added 2 new functions in ACE_Reactor class so we
- can replace the signal handler and timer queue the reactor is
- using. Notice that you should do this before you start the
- reactor, otherwise, you may loose your scheduled timed events.
-
-Fri Oct 10 14:49:40 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * bin/man2html: Added a new set rul -e 's/^$/<P>/g', which
- correctly preserves paragraph boundaries. Regenerated all of
- the ACE html documentation so that it is much better formatted.
-
-Fri Oct 10 11:08:02 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * tests/run_tests.sh:
- We remove the log file before running a test, we also check for
- the log file existance before running run_test.check on
- it. Thanks to Dean Clamons <dean@n5170a.nrl.navy.mil> for
- helping us with this.
-
- * tests/run_tests.check:
- IRIX egrep does not support -q, we redirect the output the
- /dev/null instead.
-
-Fri Oct 10 01:46:07 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.13, released Fri Oct 10 01:46:07 1997.
-
-Thu Oct 9 22:23:56 1997 Douglas C. Schmidt <schmidt@merengue.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp: Moved the explicit template
- instantiations for ACE_Unbounded_Queue out of the complicated
- #ifdef since we also want this to compile even if we don't have
- threads.
-
- * tests/MT_SOCK_Test.cpp: Revised the code so that it uses
- processes on UNIX rather than threads.
-
- * tests/SOCK_Test.cpp (spawn): Cleaned up the code to make it
- correct.
-
- * ace/Get_Opt.cpp (ACE_Get_Opt): Changed the third argument to the
- ACE_Get_Opt constructor be changed from `char *' to `const char
- *'. Thanks to Eric Newton for suggesting this.
-
-Thu Oct 09 18:43:14 1997 <irfan@TWOSTEP>
-
- * ace/Strategies_T.cpp (connect_svc_handler): Added
- synchronization to the method as the setting of the in_use bit
- in the service handler must be done atomically with the finding
- and binding of the service handler in the cache.
-
- * tests/Conn_Test.cpp (client_connections): Added multithreading
- to the test in order to test out the new MT features of the
- Connector.
-
- * ace/OS.cpp (invoke): Somehow there was a bug introduced in
- ACE_Thread_Adapter::invoke where the user entry point was being
- called twice!
-
-Thu Oct 09 17:54:31 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.12, released Thu Oct 09 17:54:31 1997.
-
-Thu Oct 9 17:46:59 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp:
- Added explicit instantiation of
- ACE_Unbounded_Queue_Iterator<ACE_Thread_Descriptor>, it seems to
- be needed on Linux and other platforms; thanks to Huiying Shen
- <shen@environ.org> for pointing out this one.
-
- * ace/OS.h:
- * ace/OS.i:
- Reverted the change that added support for
- pthread_setconcurrency on IRIX, the function was supposed to be
- undocumented, but present on the libraries, I could not find it
- in any of the SGI machines we have access to.
-
- * ace/Thread_Manager.cpp:
- On IRIX/SGIC++ we need to instantiate ACE_Node too.
-
- * ace/SOCK.h:
- Moved the open() method to the public interface, it is used by
- ACE_SOCK_Connector.
-
-Wed Oct 8 20:01:35 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/SOCK_Connector: Modified the ACE_SOCK_Connector so that it
- doesn't maintain state and doesn't inherit from ACE_SOCK.
- Therefore, we can have multiple threads using the same
- ACE_SOCK_Connector simultaneously without any reentrancy
- problems.
-
- * ace/SOCK.h: Moved the open() method into the public part of the
- class so it can be used in ACE_SOCK_Connector::connect().
-
- * ace/Connector.h: Removed the this->connector_ from the
- ACE_Connector class in order to make this pattern work correctly
- with multi-threaded programs. Also removed the connector()
- accessor (which was never useful anyway).
-
- * ace/SOCK.cpp (open): Explicitly test setsockopt() for -1 in case
- of failure.
-
- * tests/SOCK_Test.cpp (server): Revised this test to reflect the
- fact that it doesn't iterate, but only runs one client and one
- server.
-
- * tests: Added a new test for multi-threaded sockets called
- MT_SOCK_Test.cpp. Thanks to Bob Laferriere
- <laferrie@gsao.med.ge.com> for motivating this test.
-
-Wed Oct 8 12:09:46 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.i (strcasecmp): Oops, we forgot to compare the strlen
- first. Thanks to Murphy Ivan <Ivan.Murphy@med.siemens.de> for
- fixing the bug.
-
- * ace/OS.h: Added THR_DAEMON macro definition for Win32 (et. al.?)
- to avoid compilation error.
- Removed ACE_HAS_BROKEN_TEMPLATE_DESTRUCTOR and related macros.
-
-Wed Oct 8 09:52:20 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/Parse_Node.cpp:
- Fixed the minor syntax error *again*.
-
-Tue Oct 7 17:10:51 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * ace/Token_Manager.cpp:
- Added a defined(ACE_MT_SAFE) protection around the lock creation
- on ACE_Token_Manager::instance(), otherwise it would not work on
- platforms without threads. Thanks to "Neil B. Cohen"
- <nbc@metsci.com> for pointing this one out.
-
-Tue Oct 7 07:07:45 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Parse_Node.cpp (symbol): Added an ACE_ERROR_RETURN instead
- of an ACE_RETURN to bail out if an error occurs. Thanks to Eric
- Newton for reporting this.
-
-Tue Oct 7 10:57:48 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * ace/OS.h:
- Added a prototype for pthread_setconcurrency when
- ACE_HAS_IRIX62_THREADS is defined. This function is undocumented
- but was needed by some users.
-
- * ace/Parse_Node.cpp:
- Fixed a minor syntax error.
-
-Tue Oct 07 06:58:40 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.11, released Tue Oct 07 06:58:40 1997.
-
-Tue Oct 7 02:51:55 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * tests/TSS_Test.cpp (main):
- * tests/Task_Test.cpp (main):
- * tests/Barrier_Test.cpp (main): Removed thread_handles[] since we
- don't need to join the thread explicitly anymore.
-
- * ace/Thread_Manager.{h,cpp}: Added an ACE_Unbounded_Quque to
- collect terminated threads so that we can later join the threads
- automatically by issuing a ACE_Thread_Manager::wait(). Some
- typos are also fixed. Next step will be to replace current
- thr_table_ with a hash table and store an index to this table
- in TSS.
-
-Mon Oct 6 22:16:45 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Thread_Manager: Added a new task() method to
- ACE_Thread_Manager that returns a pointer to the current
- ACE_Task_Base we're executing in if this thread is indeed
- running in an ACE_Task_Base, else return 0. Thanks to Ari Erev
- <ari_erev@icomverse.com> and John Neystadt for suggesting this.
-
- * ace/Thread_Manager: Moved the task_ pointer from the public part
- of the ACE_Thread_Descriptor class into the private part of the
- class and added an inline accessor instead.
-
- * ace/{Parse_Node.{h,cpp},Svc_Conf.y}: Added support to enable
- dynamically allocate objects from factory functions that have
- been pre-registered with the Service Configurator instead of
- relying on dynamic loading. The new config file syntax would be
- (note the colons):
-
- dynamic joe Service_Object * : make_queue() active
- dynamic bob Service_Object * : make_queue() active
-
- Functions are found in the list of statically defined functions
- for static services. Thanks to Eric C. Newton <ecn@smart.net>
- for this fix.
-
-Mon Oct 6 13:00:19 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/CORBA_Handler.cpp: Removed the use of reactor_ in the .cpp
- file too; we are using the ACE_Event_Handler reactor_ (which is
- a base class).
-
-Sat Oct 04 17:40:30 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.10, released Sat Oct 04 17:40:30 1997.
-
-Sat Oct 4 11:57:25 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * apps/Orbix-Examples/Event_Comm/{Supplier,Consumer}/Makefile:
- Changed a typo where /src/ was being used instead of /libsrc/.
- Thanks to Jean-Marc STRAUSS <strauss@objectif.fr> for reporting
- this.
-
- * examples/Connection/non_blocking/CPP-connector.cpp (init):
- Removed the initialization of the local address. This is
- error-prone and confusing to use. Thanks to Huiying Shen
- <shen@environ.org> for reporting this.
-
- * ace/SV_Semaphore_Simple: Added support for IPC_EXCL in order to
- determine, upon creating the semaphore, if it already exists
- (which means a bad key was selected), another daemon is still
- running or the previous daemon didn't remove its resources. I
- have this implemented now by first opening the semaphore and if
- that fails then creating it. To support this, added another
- enum, ACE_EXCL = IPC_EXCL, to the class header.
- Also, changed the ACE_SV_Semaphore_Simple::open( key_t, ... )
- method to use
-
- if (ACE_BIT_ENABLED (flags, IPC_CREAT))
-
- rather than
-
- if (flags == IPC_CREAT)
-
- Thanks to Michael McKnight <mcknight@signalsoftcorp.com> for
- reporting this.
-
- * ace: Replaced all uses of the template param LOCK with ACE_LOCK
- to avoid conflicts with some systems that have a macro named
- LOCK.
-
- * ace/IOStream_T.h: Added ACE_LACKS_ACE_IOSTREAM to the
- IOStream_T.* files. Thanks to Torbjorn Lindgren <tl@funcom.no>
- for reporting this.
-
- * ace/{Proactor,Service_Config,ACE_Sig_Handler}: Removed the use
- of sig_atomic_t as a return type. Thanks to Torbjorn Lindgren
- <tl@funcom.no> for reporting this.
-
-Sat Oct 04 03:14:46 1997 <irfan@TWOSTEP>
-
- * ace/WFMO_Reactor.cpp (add_network_events_i): While looking
- through all entries in the current (and suspended) handles for a
- matching handle, we need to skip those that have been scheduled
- for deletion). Also changed ACE_BIT_STRICTLY_ENABLED to
- ACE_BIT_ENABLED.
-
- * ace/Select_Reactor.cpp (bit_ops): Since CONNECT is no longer a
- logical OR of READ and WRITE, we have to explicitly make sure
- that enable the handle in the correct wait sets.
-
- * ace/Event_Handler.h: Changed the values of the event
- masks. CONNECT is no longer a logical OR of READ and WRITE. It
- was its own unique value.
-
- * ace/OS.h: Removed ACE_BIT_STRICTLY_ENABLED. It did not do what I
- thought it would do.
-
- * ace/Connector.cpp (handle_output): Added code that tries to find
- out if the reactor uses event associations for the handles it
- waits on. If so we need to reset it. This is necessary for
- asynchronous connects.
-
- * ace/SOCK_Connector.i (reset_new_handle): Added new method on all
- connectors to reset event associations of handles.
-
-Fri Oct 03 21:20:26 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: disable INSTALL in $(ACE_ROOT)/ace Makefile,
- because it's not needed and it creates circular symlinks when
- the library build fails.
-
-Fri Oct 3 11:39:45 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Thread_Manager: Added a new flags_ field to
- ACE_Thread_Descriptor and changed the insert_thr() and
- append_thr() methods to update this flag so that we can keep
- track of whether the thread was created "detached" or not.
-
- * ace/Reactor.cpp (event_loop_done): Replaced the use of
- sig_atomic_t with int to workaround bugs with KAI C++. Thanks
- to Torbjorn Lindgren <tl@funcom.no> for reporting this.
-
- * ace/CORBA_Handler: Removed the reactor() accessors since they
- are subsumed by the methods in ACE_Event_Handler. Thanks to
- Jean-Marc STRAUSS <strauss@objectif.fr> for reporting this.
-
-Thu Oct 02 15:38:34 1997 <irfan@TWOSTEP>
-
- * Reactor: Renamed reset_new_handle to uses_event_associations.
-
- * ace/FIFO_Recv.cpp (ACE_FIFO_Recv): aux_handle_ must correctly be
- initialized to ACE_INVALID_HANDLE. Thanks to Sandro Doro
- <doros@aureus> for reporting this.
-
-Thu Oct 02 11:21:37 1997 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_{aix aix4.2}.GNU: added the
- shared_libs_only = 0 and static_libs = 1 settings since C Set++
- builds the shared libs from the static.
-
- * ace/OS.h: Removed spaces around '##' in ACE_DES_FREE_TEMPLATE macro.
-
- * ace/Strategies_T.cpp: added #include "ace/Thread_Manager.h"
-
- * ace/Managed_Object.h: Added <TYPE> template arg in the "unimplemented
- function" section.
-
-Thu Oct 02 10:46:18 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Malloc.h: added some comments on rationale and use of
- ACE_MALLOC_ALIGN.
-
-Wed Oct 01 19:08:26 1997 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/rules.bin.GNU: correctly builds programs
- with multiple object modules.
-
- * examples/ASX/CCM_App/Makefile: needed some adjustment to work with
- new rules.bin.GNU, above.
-
-Wed Oct 01 14:11:03 1997 <nw1@CHA-CHA>
-
- * ace/Remote_Name_Space.cpp (resolve): We need to allocate one more
- space than what strlen reports.
-
-Wed Oct 01 12:45:51 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.cpp (count_interfaces, get_handle): changed "unix" to
- "__unix" because DEC CXX doesn't #define "unix". Thanks to
- Billy Quinn <bquinn@lads.com> for reporting this.
-
- * ace/High_Res_Timer.h: added comment from Gabe
- <begeddov@proaxis.com> about ACE_OS::gethrtime () drift on MP
- machines.
-
- * ace/OS.i (gethrtime, Solaris only): removed ACE_OSCALL_RETURN
- wrapper around ::gethrtime () because it was broken (the type
- was int) and not necessary (::gethrtime () should never fail),
- so we can remove its overhead.
-
- * tests/Time_Value_Test.cpp: undef ACE_NO_INLINE in the
- ACE_U_LongLong test hacks.
-
- * tests/SV_Shared_Memory_Test.cpp: delay construction of allocator
- until first needed because it needs something that the
- ACE_Object_Manager constructs.
-
- * tests/run_tests.vxworks: added console printout before each test.
-
-Tue Sep 30 21:42:58 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.9, released Tue Sep 30 21:42:58 1997.
-
-Tue Sep 30 17:15:14 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * ace/Filecache.{h,cpp}: I removed the static locks in the
- Filecache and made them local member objects. Since Filecache
- is usually a singleton, no more memory is required this way.
-
- * tests/Hash_Map_Manager_Test.cpp: Added some code to test the
- Hash_Map_Manager_Iterator. This is to show Bob Laferriere that
- it works.
-
-Tue Sep 30 13:41:14 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i
- (handle_input):
- * examples/Reactor/ReactorEx/test_network_events.cpp (handle_input):
- * examples/Logger/simple-server/Logging_Acceptor.cpp
- (handle_input): Changed to use reset_new_handle () for querying
- whether we need to reset handles or not.
-
-Tue Sep 30 08:35:15 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Atomic_Op.i: added CVS header.
-
- * ace/Object_Manager.{h,cpp}: removed Filecache arrays, because
- Filecache no longer needs them.
-
- * ace/Filecache.{h,cpp}: removed unused static Filecache::lock_.
-
- * tests/test_config.h: Added 1 second sleep to ACE_END_TEST to
- allow all threads to terminate gracefully.
- VxWorks only: removed the hack removal of the log file, because
- it no longer appears to be necessary.
-
- * tests/TSS_Test_Errno.h,TSS_Test.cpp: dynamically allocate
- Errno::lock_ to try to avoid problem with cleanup of statics
- on VxWorks. It doesn't solve the problem, all of the time.
- There are still statics in the ACE library, which could be
- causing it.
-
-Tue Sep 30 01:35:28 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Naming_Context.cpp (close, close_down): Separated these two
- functions calls. Close now only release the name_space_
- resource and close_down release all resources. Close should be
- use when changing the name_space.
-
-Mon Sep 29 22:29:46 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Strategies_T.cpp (accept_svc_handler ):
- * ace/Service_Manager.cpp (handle_input):
- * ace/Acceptor.cpp (handle_input, accept_svc_handler): Changed to
- use reset_new_handle () for querying whether we need to reset
- handles or not.
-
- * ace/Reactor.{h,i} (reset_new_handle):
- * ace/Reactor_Impl.h (reset_new_handle):
- * ace/Select_Reactor.{h,i} (reset_new_handle):
- * ace/WFMO_Reactor.{h,i} (reset_new_handle): Added this new method
- so we can determine whether the implementation of the reactor
- requires us to decouple the event a handle inherit from accept.
- This scheme doesn't depend on the RTTI support of compilers.
- Thanks to Irfan for the tips.
-
-Mon Sep 29 21:28:02 1997 <irfan@TWOSTEP>
-
- * ace/Synch (ACE_Recursive_Thread_Mutex): Methods were added to
- ACE_Recursive_Thread_Mutex so that it has a consistent interface
- with other locking mechanisms. Thanks to Phil Logan
- <phill@in.ot.com.au> for submitting these changes.
-
-Mon Sep 29 13:28:05 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (thr_setconcurrency): added support on Irix 6.x, using
- its ::pthread_setconcurrency (). Thanks to Felix Popp
- <fxpopp@immd9.informatik.uni-erlangen.de> for letting us know
- about this Irix 6.2/3 system function, and for testing it out.
-
- * ace/ACE.cpp (handle_timed_complete) force recv check on VxWorks
- because its read handle is always not set. Thanks to Steve for
- helping track down the problem. We might want to consider doing
- it this way on Unix platforms, as well, according to Steve.
-
- * apps/JAWS/server/HTTP_Server_T.cpp (accept): fixed typo,
- "remote_address" instead of "remote_adrress".
-
- * tests/Time_Value_Test.cpp (test_ace_u_longlong): replaced
- ACE_ASSERTs with calls to a static function that prints out
- why the test failed. Also, disabled test of ACE_U_LongLong
- if ACE_HAS_64BIT_LONG.
-
- * ace/OS.h: 1) Use u_long for ACE_hrtime_t if ACE_HAS_64BIT_LONGS.
- 2) Added ACE_NO_INLINE support to allow wrapper_macros.GNU to
- disable inlining from the command line. 3) Added
- ACE_HAS_VERBOSE_NOTSUP support.
-
- * include/makeinclude/wrapper_macros.GNU: added "inline" flag to
- allow enabling/disabling of inlining from the command line or
- platform_macros.GNU.
-
- * ace/config-vxworks*.h: added ACE_HAS_VERBOSE_NOTSUP.
-
-Mon Sep 29 11:15:10 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.h (ace_cleanup_destroyer): Made this an export function.
-
-Sat Sep 27 17:04:48 1997 <irfan@TWOSTEP>
-
- * ace/Reactor: Added new methods to be able to set and get the
- implementation class being used by the reactor. The set method
- is protected and should be used with care, specially while
- changing the implementation class midway through an
- application. Also both the methods are virtual, and user can
- subclass to change their behavior. The internal code of the
- reactor also changed to now use these methods exclusively rather
- than the the raw data variables.
-
- * ace/Acceptor.cpp (handle_input): When using the WFMO_Reactor, we
- need to reset the event association for the newly created
- handle. This is because the newly created handle will inherit
- the properties of the listen handle, including its event
- associations. Therefore two changes were made:
-
- - A new directive (flag) was added to all the acceptors
- (LSOCK_Acceptor, SOCK_Acceptor, SPIPE_Acceptor, TLI_Acceptor,
- and UPIPE_Acceptor) to reset the event associations of the
- newly created handle. Currently only the SOCK_Acceptor pays
- attentions to this directive, others just ignore it. This flag
- had to be added to all the acceptors for interface
- compatibility and also to make sure that the Acceptor template
- code works correctly.
-
- - A dynamic_cast was necessary to determine at run-time which
- implementation of the Reactor we are using. But because this
- code is limited to Win32, there should be no problems doing
- the dynamic_cast.
-
- The same thing as above needed to be done to:
-
- - ACE_Accept_Strategy::accept_svc_handler (ace/Strategies_T.cpp)
-
- - ACE_Service_Manager::handle_input (ace/Service_Manager.cpp)
-
- - LOCK_SOCK_Acceptor::accept (apps/JAWS/server/HTTP_Server_T.h)
-
- - Logging_Acceptor.cpp::handle_input (examples/Logger/simple-server/Logging_Acceptor.cpp)
-
- - Network_Listener::handle_input (examples/Reactor/ReactorEx/test_network_events.cpp)
-
- - Handle_R_Stream::handle_input (examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i)
-
-Sat Sep 27 20:03:29 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++_orbix.GNU:
- Activated exceptions by default too, since they are used by
- Orbix anyway.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU:
- Some libraries were missing and the locations were not
- completely accurate.
-
- * ace/config-sunos5.5-sunc++-4.x-orbix.h:
- I let the MT Orbix as the default, since that is the
- configuration here and that was implicit in the platform*.GNU
- files.
-
- * include/makeinclude/wrapper_macros.GNU:
- Added flags to the IDL compiler to emit support for both
- CORBA::Any (-A) and the BOAImpl (-B) approach for the server
- side implementations.
-
- * ace/CORBA_Handler.cpp:
- The full definition for Thread_Manager was missing, I added an
- include for it.
-
-Sat Sep 27 07:59:18 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU,
- platform_{chorus,lynxos,vxworks*}.GNU:
- default to building shared libs only, except on Chorus,
- LynxOS, and VxWorks. While the "shared_libs_only=1" make
- flag is still supported, it is no longer necessary because
- it is the default.
-
- To revert to the prior behavior of building both shared and
- static libraries, add "static_libs=1" to either your make
- command invocation or your include/makeinclude/platform_macros.GNU.
-
-Sat Sep 27 00:45:10 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * examples/OS/Process/README (imore):
- * examples/OS/Process/Makefile:
- * examples/OS/Process/imore.cpp: Added a new example: imore.
-
- * ace/SOCK_Stream.cpp (close, close_reader, close_writer): Moved
- invalid handlers checking from close to close_reader and
- close_writer.
-
-Fri Sep 26 14:28:36 1997 Nanbor Wang <nw1@CHA-CHA>
-
- * tests/SPIPE_Test.cpp:
- * tests/Process_Strategy_Test: Changed the macro "ACE_LACKS_EXEC"
- to "ACE_LACKS_FORK".
-
- * ace/SOCK_Stream.cpp (close): Added checking for invalid handle
- before shutting down the write end.
-
-Fri Sep 26 11:55:27 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Malloc.h: Use signed math in the preprocessor calculations
- for ACE_CONTROL_BLOCK_ALIGN_LONGS (and all of its contributing
- factors).
-
- * ace/ACE.cpp: Fixed the TLI/BSD checks in handle_timed_complete.
-
- * tests/SOCK_Connector_Test.cpp: Added ENOTCONN as a valid fail
- condition (in addition to ECONNREFUSED).
-
-Fri Sep 26 05:11:40 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/SOCK_Acceptor.cpp (shared_accept): Made the newly added
- WSAEventSelect code unreachable. It caused several test program
- hung when performing socket recieving. Don't know why this is
- happening. According to the online manual, this should be the
- right thing to do. Some more Access Violations to be fix
- tomorrow. Oh, I mean, today.
-
-Fri Sep 26 01:22:28 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS: Made a few changes to OS.h and OS.i to stop compiler
- warnings. Thanks to Wei Chiang <chiang@tele.nokia.fi> for
- reporting this.
-
- * ace/config-chorus.h: Added ACE_LACKS_RLIMIT and removed
- ACE_LACKS_SIGACTION. Thanks to Wei Chiang
- <chiang@tele.nokia.fi> for reporting this.
-
- * ace/TLI_Connector.cpp (complete): Changed the call to
- ACE::handle_timed_complete() to use the new parameter.
-
- * ace/ACE: Added an extra parameter to the call to
- ACE::handle_timed_complete() to indicate (at run-time) that this
- is being called via a TLI interface. Thanks to the
- ever-vigilant Steve Huston for suggesting this.
-
- * tests/SOCK_Connector_Test.cpp: "ACEified" the new test program.
-
-Thu Sep 25 23:27:38 1997 <irfan@TWOSTEP>
-
- * ace/config-win32.h: Error in directives: it should be "Define
- ACE_HAS_WINSOCK2 to 0 in your config.h file if you do *not* want
- to compile with WinSock 2.0.". The typo was a 1 instead of the
- 0. Thanks to Gonzalo A. Diethelm <gonzo@ing.puc.cl> for pointing
- this out.
-
-Thu Sep 25 20:33:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Message_Queue.h: Changed the *_i() methods to be virtual so
- that we can change the queueing mechanism by subclassing from
- ACE_Message_Queue. Thanks to Eric Newton <ecn@smart.net> for
- this suggestion.
-
- * ace/Timer_List_T.cpp (ACE_Timer_List_Iterator_T): Changed
- listParam to timer_list to keep programming style consistent...
-
-Thu Sep 25 17:06:42 1997 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i - ACE_OS::cond_timedwait - HP's threads return
- EAGAIN on timeout from pthread_cond_timedwait, so adjust that
- to ETIME.
-
- * tests/SOCK_Connector_Test.cpp - will now try to find another
- host to run the connect to. Won't try on Win32 or VxWorks
- though.
-
-Thu Sep 25 15:25:53 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Object_Manager.cpp,OS.cpp: moved socket_init to Object_Manager
- ctor and socket_fini to Object_Manager dtor, to be sure that
- WinSock gets initialized early and closed late.
-
- * ace/SOCK.{h,cpp}: removed dummy_ static now that the
- Object_Manager initializes WinSock.
-
- No, I'm not a Win32 wizard all of the sudden. Thanks to
- Irfan and Nanbor for directing these changes.
-
- * tests/run_tests.vxworks: commented out tests that don't run
- productively on VxWorks: SV_Shared_Memory_Test,
- Reactor_Exceptions_Test, SPIPE_Test, and UPIPE_SAP_Test.
-
-Thu Sep 25 03:50:27 1997 <irfan@TWOSTEP>
-
- * ace/OS.i (thr_getspecific): Must restore errno if no errors have
- occured.
-
- * ace/Log_Msg.cpp (close): Must close the message queue *before*
- destruction since there is no destructor for the queue.
-
- * netsvcs/lib/Client_Logging_Handler.cpp (fini): fini must close
- and unregister the acceptor. Closing the socket is simply not
- enough.
-
-Thu Sep 25 01:39:47 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Containers.{i,cpp}: Commented out all ACE_TRACE macros in
- ACE_Unbounded_Queue<T> so that they won't cause SIGSEGV when we
- turn the tracing on. Unbounded_Queue is used in Object_Manager
- which must be initialize before most of other objects.
-
-Wed Sep 24 23:37:19 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.i (thr_getspecific): On NT, added check whether
- ::GetLastError() is NO_ERROR when ::TlsGetValue() return 0.
-
-Wed Sep 24 13:37:02 1997 <irfan@TWOSTEP>
-
- * ace/config-win32-common.h (ACE_LACKS_FORK): Added in macro to
- distinguish between ACE_LACKS_FORK and ACE_LACKS_EXEC. Also
- updated config-chorus.h, config-vxworks-ghs-1.8.h, and
- config-vxworks5.x-g++.h.
-
- * ace/OS.h (ACE_WIN32CALL_RETURN && ACE_WIN32CALL): Added new
- macros to distinguish between Win32 calls that set GetLastError
- and those that set errno. Also updated ACE_OSCALL_RETURN and
- ACE_OSCALL such that they do not set errno to GetLastError. This
- is because these calls automatically set errno.
-
- Updates OS.* files to reflect these changes.
-
- * ace/SOCK_Acceptor.cpp (shared_accept): Make sure to reset the
- event association inherited by the new handle.
-
- * ace/WFMO_Reactor.i (unbind): Added a check for invalid handles
- being passed in for removals.
-
-Wed Sep 24 10:34:29 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/OS.h:
- Under HP-UX and g++ <dl.h> must be included for dynamic loading,
- not <cxxdl.h>; thanks to Warren Thompson (wthompson@altaira.com)
- for helping us with this one.
-
-Wed Sep 24 09:36:21 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Managed_Object.{h,i},Object_Manager.{h,cpp}: removed
- ACE_Managed_Object get_object () interface. It wasn't
- used anywhere; it was originally intended to support preallocated
- objects but turned out to not be necessary. I think that it would
- be more useful to make it possible to instantiate
- ACE_Managed_Object instead, and have it implicitly register
- with the ACE_Object_Manager.
-
- * ace/Timer_List_T.cpp (ACE_Timer_List_Iterator_T):
- changed name of "list" argument ot "listParam" to resolve name
- conflict with STL. Thanks to Brian Mendel for reporting this.
-
- * tests/run_tests.check: print out filename with error messages.
-
-Tue Sep 23 17:11:44 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/config-hpux-10.x-g++.h:
- Added A ACE_LACKS_TIMESPEC_T, thanks to Warren Thompson
- (wthompson@altaira.com) for this one.
-
- * include/makeinclude/platform_hpux_gcc.GNU:
- Added a -D_REENTRANT define, to enable reentrant methods, thanks
- to Warren Thompson (wthompson@altaira.com) and Steve Huston
- (shuston@riverace.com) for pointing out this.
-
- * ace/config-hpux-10.x.h:
- Added an small comment to clarify that DCE/threads must be
- installed if threading is wanted, they are an optional product
- for HP-UX.
-
-Tue Sep 23 10:13:57 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Select_Reactor.cpp: added #include of ace/Thread.h.
- Thanks to Vladimir Schipunov <vlad@staff.prodigy.com> for
- reporting this.
-
- * ace/Object_Manager.cpp: added #include of ace/Malloc.h.
- Thanks to Vladimir Schipunov <vlad@staff.prodigy.com> for
- reporting this.
-
- * ace/config-aix-4.1.x.h: added ACE_HAS_PTHREAD_T and
- ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR #defines.
- Thanks to Vladimir Schipunov <vlad@staff.prodigy.com> for
- reporting the build problem on AIX 4.1, and to
- Torbjorn Lindgren <tl@funcom.no> for providing these fixes.
-
- * ace/Token_Manager.{h,cpp},Object_Manager.{h,cpp}:
- preallocate ACE_Token_Manager creation lock.
-
- * ace/Object_Manager.cpp: use ACE_Cleanup_Adapter<TYPE[COUNT]>
- for preallocated arrays.
-
-Mon Sep 22 16:51:44 1997 <irfan@TWOSTEP>
-
- * ace/OS.i (open): Changed code so that (_O_CREAT | _O_TRUNC)
- means CREATE_ALWAYS. Thanks to Dave Brackman
- (dbrackma@OhioEE.com) for pointing this out.
-
-Mon Sep 22 11:01:28 1997 Steve Huston <shuston@riverace.com>
-
- * tests/SOCK_Connector_Test.cpp, Makefile, run_tests.sh - added new
- test to exercise ACE_SOCK_Connector focusing on fail conditions.
-
-Mon Sep 22 07:11:21 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Message_Block.cpp (clone): check this block's cont ()
- instead of the new block's cont_ when cloning the continuation
- messages. Thanks to Eric Newton <ecn@smart.net> for tracking
- down this problem with failing to clone continuation blocks,
- and for providing the fix.
-
- * ace/OS.{h,i} (ACE_U_LongLong): added operator!=, and made args
- const to ctor, operator/, hi, and lo member functions.
-
- * ace/Managed_Object.[hi]: renamed ACE_Managed_Cleanup to
- ACE_Cleanup_Adapter because it doesn't implicitly register
- itself with the ACE_Object_Manager.
-
- * ace/ACE.cpp: moved ACE_Object_Manager_Destroyer to
- Object_Manager.cpp because the ACE_Object_Manager should
- always be linked into executables now, even if libACE is
- statically linked.
-
- * ace/Filecache.{h,cpp},Signal.{h,cpp} preallocate locks for
- Filecache and Signal in ACE_Object_Manager.
-
- * ace/Object_Manager.{h,cpp}: 1) renamed ACE_Managed_Cleanup to
- ACE_Cleanup_Adapter. 2) Moved ACE_Object_Manager_Destroyer from
- ACE.cpp to Object_Manager.cpp. 3) Added Filecache and Signal locks.
-
- * ace/Singleton.*: removed instance (TYPE *) member function because
- it wasn't being used. And, it allows us to store the contained
- instance_ as an object instead of a pointer, saving a dynamic
- memory allocation on construction.
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: added $(MUNCHED)
- to PRELINK, to allow applications to add libraries or object
- files to be munched.
-
- * ace/stdcpp.h: stdarg.h must be #included before stdio.h on LynxOS.
-
-Sat Sep 20 17:32:23 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Object_Manager.{h,cpp},Managed_Object.*,
- CORBA_Handler.{h,cpp},Dump.{h,cpp},Log_Msg.cpp,OS.cpp
- revised ACE_Object_Manager interface for preallocated objects.
-
- Also, added documentation of ACE_Object_Manager interface to
- Object_Manager.h and Managed_Object.h.
-
- * ace/CORBA_Handler.cpp,Dump.cpp,OS.cpp: use ACE_MT with
- preallocated locks.
-
- * include/makeinclude/platform_*.GNU,wrapper_macros.GNU:
- moved -O out of wrapper_macros.GNU and into each platform
- file's OC[C]FLAGS to support "optimize" make flag.
-
- I moved -O and similar compile flags out of CFLAGS and/or
- CCFLAGS and into OCFLAGS and/or OCCFLAGS. This allows the
- ACE make system to support the "optimize" flag. It operates
- similar to the "debug" flag, i.e., you can set "optimize=1"
- or "optimize=0" in your platform_macros.GNU file to enable
- or disable optimization. You can use the same syntax to
- get the same effect from the "make" command line, e.g.,
- "make optimize=1 debug=0".
-
- I added optimize=1 to platform_*.GNU files that had -O, etc.,
- in their C[C]FLAGS. Therefore, there should be no net effect
- from this change on any platform.
-
- * include/makeinclude/wrapper_macros.GNU:
- I _removed_ the disabling of "debug" when "optimize=1" is
- enabled. This _will_ have a net effect: if you were relying
- on "debug" to be disabled when you enabled "optimize=1",
- you'll be surprised. The change supports platforms that
- allow "debug" and "optimize" simultaneously.
-
- Because I had added the disabling of "debug" recently,
- and because "optimize=1" wasn't supported well, if at all,
- I'd be suprised if any is actually affected by this change.
-
-Sat Sep 20 11:47:14 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/Timer_Queue_T.cpp:
- Changed the return type to <int>, to match its declaration. The
- intent was to error error values, which are declared as <int>
- throughout ACE.
-
-Sat Sep 20 08:07:36 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (gethrtime): on Linux only, removed "volatile" qualifier
- from declaration of local variable "now". I don't think that
- it's necessary. It causes compilation failure with g++ because
- the ACE_U_LongLong copy constructor won't take a volatile
- argument. Thanks to Sandro Doro <doros@aureus.sublink.org> for
- tracking down this problem.
-
- * tests/Time_Value_Test.cpp: reverted to test ACE_U_LongLong on
- all platforms except WIN32. It works properly on Linux with
- the removal of volatile from ACE_OS::gethrtime's "now". Thanks
- to Sandro Doro <doros@aureus.sublink.org> for figuring this one
- out.
-
-Fri Sep 19 18:49:50 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/config-irix6.x-g++.h:
- * include/makeinclude/platform_irix6.x_g++.GNU:
- Added support for IRIX 6.x w/gcc, thanks to Celeste E. Copeland
- (celeste@altaira.com) for this.
-
-Thu Sep 18 19:33:02 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * Douglas added the following changes while going through the
- Async_Timer_Queue.
-
- * ace/Timer_Queue_T.h: Factored out the code for handling
- ualarm().
-
- * ace/Timer_Queue_T.cpp (handle_signal): Cleanedup the logic
- for rescheduling a ualarm() after expiring a timer.
-
- * tests/Async_Timer_Queue_Test.cpp (signal_handler): Changed the
- use of ACE_DEBUG to ACE_ERROR to ensure that the call doesn't
- magically disappear if ACE_NDEBUG is enabled.
-
-Fri Sep 19 18:05:48 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log): Changed the send() to a send_n() so that
- all the data gets written...
-
-Fri Sep 19 14:52:53 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp (get_handle): Can't use
- ACE_ERROR_RETURN here because ACE_HANDLE is a void* on NT, not
- int.
-
- * examples/Reactor/Misc: Added reactors.dsp signals_1.dsp
- signals_2.dsp.
-
- * ace/OS.cpp (thr_exit): Commented out the call to
- ACE_TSS_Cleanup::exit () because ACE_OS::thr_exit is actually
- called from ACE_TSS_Cleanup::exit ().
-
-Fri Sep 19 12:50:37 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL*,ace/README: added more documentation of requirement
- for explicit main (int, char *[]) arguments and int return type
- with ACE_HAS_NONSTATIC_OBJECT_MANAGER (on VxWorks).
-
-Thu Sep 18 22:45:09 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp (close): Fixed a
- typo: it's output_ not outout_. Thanks to David for
- pointing this out.
-
- * netsvcs/lib/Client_Logging_Handler.cpp: Make sure to clean up
- all our resources (e.g., acceptor-mode and data-mode sockets)
- when we close down.
-
- * netsvcs/servers/main.cpp (main): Restored the entire contents of
- main().
-
- * tests/Semaphore_Test.cpp: Updated the test to use a temporary
- ACE_Time_Value variable that is passed to
- ACE_Semaphore::acquire() so that we don't have problems with
- reference anachronisms... Thanks to David Levine for reporting
- this.
-
- * ace/Log_Msg.cpp: Changed over to using ACE_SPIPEs for the
- logging mechanism rather than ACE_FIFOs to conform to the
- changes to Client_Logging_Handler.
-
- * netsvcs/lib/Client_Logging_Handler.cpp:
- Completely rewrote the Client Logging Daemon so that it uses
- ACE_SPIPEs by default, rather than ACE_FIFOs. This is more
- portable and makes it easier to write a generic client logging
- daemon... If a platform doesn't support ACE_SPIPEs, then we
- revert to using sockets.
-
-Thu Sep 18 21:56:33 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.cpp (ACE_TSS_Cleanup::exit): Masked out codes that relate
- to freeing TSS keys and remove key entries from TSS cleanup
- table. I removed it here to avoid race condition.
- (ACE_TSS_Cleanup::free_all_key_left): Added this function to
- free all left over TSS keys and remove them from TSS cleanup
- table when the program exits. It is only called from
- ACE_OS::cleanup_tss.
- (ACE_OS::cleanup_tss): Added call to
- ACE_TSS_Cleanup::free_all_key_left when ACE_WIN32 or
- ACE_HAS_TSS_EMULATION are defined.
-
-Thu Sep 18 16:30:24 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Semaphore_Test: protected declarations of test_timeout_count
- and timeouts because they're not used on Solaris.
-
- * netsvcs/lib/Client_Logging_Handler.cpp: added template
- instantiations.
-
-Thu Sep 18 09:04:40 1997 <irfan@TWOSTEP>
-
- * ace/Dynamic: Changed the way ACE_Dynamic worked. Instead of
- keeping the "this" pointer of the object in question, we are now
- simply keeping a flag that indicates whether the object was
- dynamically created. The trick to this approach is to make sure
- to reset the flag in the constructor. The "this" pointer
- approach was broken when used with multiple inheritance, because
- of "shearing" of the "this" pointer to get to the base
- Svc_Handler class.
-
-Thu Sep 18 01:12:36 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.8, released Thu Sep 18 01:12:36 1997.
-
-Wed Sep 17 22:47:20 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE: Added two new varargs methods for send() and recv().
- These are modeled after the ones that are in, e.g., ACE_SOCK_IO.
-
- * ace/Log_Msg.cpp (open): In the UNICODE version the compiler
- complains about mixed wchar/char usage in Log_Msg.cpp:
-
- Log_Msg.cpp(468) : error C2665: 'ACE_INET_Addr::ACE_INET_Addr' :
- none of the 8 overloads can convert parameter 1
- from type 'const unsigned short *'
-
- I fixed it modifing the connect() call from
-
- status = con.connect (*ACE_Log_Msg_message_queue,
- ACE_INET_Addr (logger_key));
-
- to
-
- status = con.connect (*ACE_Log_Msg_message_queue,
- ACE_INET_Addr
- (ACE_MULTIBYTE_STRING(logger_key)));
-
- Thanks to Dieter Quehl <dietrich.quehl@med.siemens.de> for
- reporting this.
-
- * ace/SV_Semaphore_Simple.h: By default, we want the flags to
- perform a SEM_UNDO. Thanks to Sandro Doro
- <doros@aureus.sublink.org> for reporting this.
-
- * tests/Makefile (BIN): Added Semaphore_Test.cpp to the Makefile.
- Thanks to Sandro Doro <doros@aureus.sublink.org> for reporting
- this.
-
- * tests/Async_Timer_Queue_Test.cpp: If you want to print a '\',
- you need to make it a \\... Thanks to David for noticing this.
-
- * apps/JAWS/clients/Blobby/Blob_Handler.h: There was a missing
- #include for "ace/SOCK_Stream.h".
-
- * netsvcs/lib/Client_Logging_Handler: Reimplemented this service
- so that it uses sockets on Win32 to receive logging messages
- from clients.
-
- * ace/Log_Msg.cpp: Enhanced ACE_Log_Msg::log() so that it now uses
- sockets on Win32 platforms to work around the lack of FIFOs.
-
- * ace/Log_Record.h: Revised the field layout of the ACE_Log_Record
- so that the length field comes first. This is necessary for the
- framing mechanisms used throughout ACE in various
- configurations.
-
-Wed Sep 17 15:17:38 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * ace/Filecache.cpp: ACE_Filecache::finish should check to see if
- the file passed in is NULL before attempting to grab the
- associated hash lock. Reported by Samuel Melamed
- <sam@vdo.net>.
-
-Wed Sep 17 13:51:25 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * bin/auto_compile:
- I setup autoflush on the logfile, it makes debugging and non
- crontab usage a bit easier.
-
-Wed Sep 17 12:59:34 1997 <irfan@TWOSTEP>
-
- * ace/Local_Name_Space_T.cpp: Fixed warnings caused by SEH macros.
-
-Wed Sep 17 01:07:40 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.7, released Wed Sep 17 01:07:40 1997.
-
-Tue Sep 16 23:34:36 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/servers/main.cpp (main): The use of braces was incorrect
- so that some services were being prematurely closed...
-
- * ace: Added a new flag called ACE_LACKS_FIFO to distinguish the
- (lack of) features on Win32...
-
- * ace/Timer_Queue_T: Added an expire() wrapper for the
- Async_Timer_Queue_Adapter.
-
- * ace/OS: Added a wrapper for strpbrk() and wcspbrk(). Thanks to
- Bob Olson <olson@jeeves.mcs.anl.gov> and Irfan for pointing out
- the need for this.
-
-Tue Sep 16 18:03:58 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * bin/auto_compile:
- It wouldn't report an error when run_tests.sh scream "FAILED",
- now it does.
-
-Tue Sep 16 08:30:28 1997 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i: Changed a couple of ACE_UNUSED(arg) to ACE_UNUSED_ARG(arg)
-
-Mon Sep 15 12:08:38 1997 <irfan@TWOSTEP>
-
- * ace/Reactor (register_handler): Originally this interface was
- available for all platforms, but because ACE_HANDLE is an int on
- non-Win32 platforms, compilers are not able to tell the
- difference between
- register_handler(ACE_Event_Handler*,ACE_Reactor_Mask) and
- register_handler(ACE_Event_Handler*,ACE_HANDLE). Therefore, we
- have restricted this method to Win32 only.
-
- * ace/WFMO_Reactor.h: Removed non-Win32 version of the
- WFMO_Reactor. This is no longer required in the new scheme.
-
- * ace/XtReactor:
-
- Added remove_handler_i(const ACE_Handle_Set &,ACE_Reactor_Mask)
- to make the compiler happy.
-
- Also changed ACE_Reactor_Handle_Set to ACE_Select_Reactor_Handle_Set.
-
- * ace/Select_Reactor.cpp (ACE_Select_Reactor_Token): Added set/get
- select_reactor methods.
-
- * ace/OS.h (ACE_SEH_TRY): Changed ACE_SEH_TRY from nothing to
- "if(1)" on non-Win32 platforms. This should stop some compilers
- from complaining about unreachable code.
-
-Mon Sep 15 11:37:49 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * include/makeinclude/platform_hpux.GNU:
- Added -D_REENTRANT to enable the _r functions.
-
-Mon Sep 15 09:40:57 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu>
-
- * bin/auto_compile:
- Enabled the shared_libs_only flags to speed up compilations (and
- reduce disk space usage).
-
-Sun Sep 14 22:36:17 1997 <irfan@TWOSTEP>
-
- * ace/Select_Reactor.h: Added a no-op constructor for
- ACE_Select_Reactor_Token to make the compiler happy.
-
-Sun Sep 14 21:02:31 1997 David L. Levine <levine@cs.wustl.edu>
-
- * all Makefiles: ran "make depend" to update all ACE Makefiles.
-
- * include/makeinclude/platform_irix6.x-32_sgic++.GNU,
- platform_tandem.GNU: added debug = 1, to disable ACE_NDEBUG.
-
- * ace/Acceptor.cpp: added #include of ace/Handle_Set.h so that
- it will compile on g++/Solaris.
-
- * ace/Managed_Object.h: added #include of ace/OS.h because
- ACE_Cleanup class is used.
-
- * ace/Managed_Object.cpp: only #include ace/Synch.h if
- ACE_TEMPLATES_REQUIRE_SOURCE is not defined. The #include
- appears to be necessary with Digital Unix. But, it causes
- inline functions warnings with g++, both with inlining
- enabled and disabled. Circular #includes are evil :-)
-
- * ace/Select_Reactor.h: removed "," at end of DEFAULT_SIZE
- enum definition.
-
- * ace/Select_Reactor.i (register_handler): added ACE_UNUSED_ARGS.
-
- * ace/Select_Reactor.i: moved ACE_Select_Reactor::size () after
- ACE_Select_Reactor_Handler_Repository::size () to prevent use
- before definition.
-
- * ace/Select_Reactor.cpp: added template instantiation.
-
- * ace/Svc_Conf_y.cpp: commented out unused args and wrapped
- assignments in "if" conditionals to avoid g++ warnings.
-
- * ace/Token_Manager.h: inserting missing "public" access control
- specifier for ACE_Cleanup.
-
- * ace/OS.{h,cpp} (gethrtime, Linux only): inlined and added Alpha
- support.
-
- * ace/config-linux*.h: only define ACE_HAS_PENTIUM if i386 is defined.
-
-Sun Sep 14 10:35:57 1997 <irfan@TWOSTEP>
-
- * ace/Reactor: The Reactor classes (ACE_Reactor and ACE_ReactorEx)
- have changed. The motivation for this change was to allow users
- to program abstractly and use the most efficient implementation
- available on their platform. At the same time, we wanted to
- make the changes required by the users kept to a minimal.
-
- Here is a layout of the new Reactor hierarchy in ACE (an example
- of the GOF Bridge Pattern). Thanks to Thomas Jordan
- (Thomas_Jordan@deluxedata.com) for suggesting this new design.
-
-
- Reactor -----> Reactor_Impl
- ^
- |
- --------------------
- ^ ^
- | |
- Select_Reactor WFMO_Reactor
-
- Reactor:
-
- The Reactor class now becomes an interface class that contains
- a pointer to an implementation class. All methods of the
- Reactor class forward all calls to the appropriate
- implementation class. Users can pass in their own
- implementation class. If an implementation class is not
- supplied at creation time, the following default rules apply:
-
- On non-Win32 platforms: An instance of the Select_Reactor
- class will be created and used as the implementation.
-
- On Win32 platforms: An instance of the WFMO_Reactor class will
- be created and used as the implementation. This default
- behavior can be overwritten at compile-time by setting the
- ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL flag. In this case, an
- instance of the Select_Reactor class will be created and used
- as the implementation.
-
- Reactor_Impl:
-
- Reactor_Impl is an abstract class (i.e., the Bridge).
- Select_Reactor and WFMO_Reactor inherit from this class.
-
- Select_Reactor:
-
- Previously known as the Reactor class. This class implements
- the Reactor_Impl interface by using the select() system
- call. This implementation is available on all platforms
- (including Win32).
-
- WFMO_Reactor:
-
- WFMO (Wait For Multiple Objects) Reactor, previously known as
- the ReactorEx class. This class implements the Reactor_Impl
- interface by using the WaitForMultipleObjects() system call.
- This implementation is currently only available on Win32
- platforms.
-
- Code changes for users:
-
- The higher authorities of ACE have decided that ReactorEx was
- a "goofy" name and made little sense in the new hierarchy.
- Therefore users using the old ReactorEx will have to change
- over to start using the Reactor class (and make sure that the
- implementation class being used is WFMO_Reactor).
-
- Also users that have extended Reactor or ReactorEx must
- now subclass from Select_Reactor or WFMO_Reactor,
- respectively.
-
- * ace/ReactorEx:
-
- The ReactorEx interface has been extended to be identical to the
- Reactor interface. Some of these new operations will not be
- supported in this version. However, we will have interface
- compatability at this point. This allows the creation of the new
- Reactor hierarchy in ACE.
-
- Removed all static (singleton) methods from ReactorEx. These are
- not necessary anymore since ReactorEx will become an
- implementation class. Reactor will take over this functionality.
-
- Changed methods names from resume_all to resume_handlers and
- suspend_all to suspend_handlers. This increases the similarity
- between ReactorEx and Reactor.
-
- Add a lock_adapter so that we can return an ACE_Lock form of our
- internal lock.
-
- Added signal handling capabilities to ReactorEx.
-
- Added handler, requeue_position, mask_ops, and ready_ops
- operations. However, they are not supported in this
- version. They are mostly here for interface compatibility with
- Reactor.
-
- Added a size() accessor that returns the current size of the
- ReactorEx's internal descriptor table.
-
- Added an initialized() accessor that returns true if ReactorEx
- has been successfully initialized, else false.
-
- * ace/Reactor:
-
- The Reactor interface has been extended to be identical to the
- ReactorEx interface. Some of these new operations will not be
- supported in this version. However, we will have interface
- compatability at this point. This allows the creation of the new
- Reactor hierarchy in ACE.
-
- Added resume_handler(ACE_Handle_Set &) and
- suspend_handler(ACE_Handle_Set &) to the Reactor. This
- increases the similarity between ReactorEx and Reactor.
-
- Add a lock_adapter so that we can return an ACE_Lock form of our
- internal lock. This changes the signature of the return type
- from ACE_Reactor_Lock to ACE_Lock.
-
- Added a size() accessor that returns the current size of the
- Reactor's internal descriptor table.
-
- Added wakeup_all_thread() operation. Currently it just does a
- notify.
-
- Added alertable_handle_events() operation. Currently it just
- calls handle_events().
-
- Added register_handler (that take event handles) operations.
- However, they are not supported in this version. They are mostly
- here for interface compatibility with ReactorEx.
-
- * ace/XtReactor: Now inherits from Select_Reactor instead of
- Reactor.
-
- * ace/Timer_Queue_T.h: Removed the inclusion of Time_Value.h. This
- file does not exist anymore
-
- * ace/Synch_T (ACE_Lock_Adapter): Changed the implementation of
- the adapter such that the user is allowed to (optionally) pass
- in the locking mechanism.
-
- * ace/Strategies: Removed ACE_ReactorEx_Notification_Strategy.
-
- * ace/Service_Config: Updated Service_Config so that all ReactorEx
- and Proactor methods are removed. ReactorEx does not exist any
- longer and Proactor methods are available as statics methods on
- the Proactor class.
-
- * ace/OS.h (ACE_DEFAULT_SELECT_REACTOR_SIZE): Changed
- ACE_DEFAULT_REACTOR_SIZE to ACE_DEFAULT_SELECT_REACTOR_SIZE.
- There is no default size dictated by the Reactor class anymore.
-
- * ace/Local_Tokens,Token: Added new methods: acquire_read,
- acquire_write, tryacquire_read, tryacquire_write. These methods
- allow the Tokens to be used by the ACE_Lock_Adapter class.
-
- * ace/Handle_Set.h (MAXSIZE): Changed ACE_DEFAULT_REACTOR_SIZE to
- ACE_DEFAULT_SELECT_REACTOR_SIZE. There is no default size
- dictated by the Reactor class anymore.
-
- * ace/Event_Handler: Removed the Proactor and ReactorEx pointers
- from Event_Handler. The Proactor has its own event handler
- (ACE_Handler), and the ReactorEx does not exist anymore.
-
- * ace/Proactor:
-
- Changed Proactor to work with the new Reactor.
-
- Updated Proactor to bring it upto date with the recent changes
- to the Timer_Queue.
-
- * tests:
-
- Removed the ACE_NEW_THREAD macro. With the new thread adapter,
- the log stream for the new thread will automatically be set to
- the creator thread's stream. Therefore, this macro is not
- needed.
-
- Removed the inclusion of Service_Config.h. All tests are now
- accessing the singletons that are supported by the class directly.
-
- * examples/Reactor/Proactor: Updated examples to use and access
- the new Reactor class instead of the old ReactorEx.
-
- * examples/Reactor/ReactorEx: Updated examples to use and access
- the new Reactor class instead of the old ReactorEx.
-
-Sun Sep 14 09:50:22 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Singleton.i (ACE_Singleton): Moved the definition of the
- ACE_Singleton default constructor into the *.i file. In
- general, it's not a good idea to put definitions in *.h files.
-
- * tests/test_config.h: Improved the #undef scheme for ACE_NDEBUG.
-
-Sat Sep 13 23:51:55 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * ace/ACE_Library.{mak,mdp}: Removed Service_Record.cpp and added
- Service_Type.cpp in project file.
-
- * ace/: Removed ace.{mak,mdp} and replaced them with
- ACE_Library.{mak,mdp}. MSVC 4.2 insists to change the release
- version DLL from our original setting "ace.{dll,lib}" to "ACE
- dynamic Library.{dll,lib}". This is so far the only known
- method to get around this.
-
- * netsvcs/servers/servers.{dsw,dsp}: Changed the output filenames
- of debug version from maind.exe to main.exe.
-
- * netsvcs/lib/netsvcs.{dsw,dsp}: Changed the output filenames of
- debug version from netsvcsd.{dll,lib} to netsvcs.{dll,lib}.
-
- * ace/ace.dsw:
- * ace/ace_{dll,lib}.dsp: Removed Service_Record.cpp and added
- Service_Type.cpp.
-
- * ace/Log_Msg.cpp (open): Fixed a typo.
-
- * ace/Reactor.cpp: Fixed a typo.
-
-Sat Sep 13 17:23:22 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.6, released Sat Sep 13 17:23:22 1997.
-
-Sat Sep 13 12:11:50 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * tests: #include "test_config.h" before all the other files so
- that we always have the ACE_ASSERT enabled... Thanks to Carlos
- for noticing this.
-
- * ace/Reactor.cpp: Added Arturo's improvements for suspending and
- resuming Event_Handlers.
-
- * tests/Reactors_Test.cpp: As a result of the new changes to
- ACE_Thread_Manager, the Reactors_Test now seems to be working
- fine.
-
- * ace/Thread_Manager.cpp (append_thr): When we append a new
- Thr_Descriptor make sure to zero-out the cleanup_info_ fields
- since otherwise horrible things will happen...
-
- * ace/Reactor: Added a new ACE_Reactor_Handle_Set called
- suspend_set_ and updated the suspend_i() and resume_i() method
- to use this set to store the ready bits that are enabled when we
- suspend and resume and Event_Handler, respectively. Thanks to
- Arturo for this suggestion.
-
- * tests/TSS_Test.cpp (main): Had to move the allocation and
- deletion of TSS_Error into the ACE_HAS_THREADS section since
- otherwise this test doesn't work when threading is disabled.
-
- * tests/Thread_Manager_Test.cpp: Move the template specialization
- inside of the ACE_HAS_THREADS macro since otherwise this test
- doesn't work when threading is disabled.
-
- * ace/Thread_Manager.cpp: Arrgh! Must initialize the cleanup_info
- fields to 0 in the constructor for ACE_Thread_Descriptor! This
- should fix a nasty bug...
-
- * tests/Async_Timer_Queue_Test.cpp: Continued to improve the
- documentation in the test of the ACE_Async_Timer_Queue_Adapter.
-
- * ace/Timer_Queue_T.cpp (schedule): Oops, must pass &this->mask_
- to ACE_Sig_Set rather than this->mask_.
-
- * ace/Object_Manager.cpp: Changed #include
- "ace/Service_Repository.h" to #include "ace/Service_Config.h"
- since we now call ACE_Service_Config::close().
-
- * ace/Service_Types: Removed a nasty circular dependency by simply
- having each of the ACE_Service_Type_Impl subclasses take const
- void *'s rather than their specific type (i.e., ACE_Stream or
- ACE_Module, etc.). This turns out not to be a problem since we
- treated them as const void *'s internally anyhow...
-
- * ace/Strategies_T.cpp: Fixed a bug in ACE_DLL_Strategy:
-
- ACE_Service_Type_Impl stp = new ACE_Service_Object_Type (svc_handler, this->svc_name_);
-
- should be
-
- ACE_Service_Type_Impl *stp = new ACE_Service_Object_Type (svc_handler, this->svc_name_)
-
- I wonder how this ever compiled?!
-
-Fri Sep 12 13:26:50 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Mem_Map.cpp (close): Removed the following code in the
- close() method that appears to be redundant with the code in
- unmap():
-
- if (this->file_mapping_ != this->handle_
- && this->file_mapping_ != ACE_INVALID_HANDLE)
- ACE_OS::close (this->file_mapping_);
-
- Also cleaned up the close() code so that it doesn't try to close
- the handle multiple times, even if close() is called more than
- once. Thanks to Beged-Dov <begeddov@proaxis.com> for reporting
- this.
-
- * tests/Async_Timer_Queue_Test.cpp: Improved the structure of the
- program and finished implementing the new feature that makes it
- possible to avoid blocking SIGQUIT.
-
- * ace/Timer_Queue_T: Added support for an ACE_Sig_Set that can be
- passed into the constructor of ACE_Async_Timer_Queue_Adapter.
- This will enable us to selectively block only certain signals.
-
- * ace/Signal: Added a new constructor for ACE_Sig_Set that takes
- ACE_Sig_Set * and also improved the documentation of the
- constructor interfaces.
-
-Fri Sep 12 13:46:04 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.[hi],Log_Msg.h,config-lynxos.h,
- include/makeinclude/platform_lynxos.GNU: added LynxOS port,
- provided by Dave Mayerhoefer <davem@lynx.com>. Note how few
- files were affected. What's even more amazing is the very small
- number, 8, of very minor code changes to OS.[hi] and Log_Msg.h.
- This is a tribute to the maturity of
- <a href="http://www.lynx.com>LynxOS</a>, a POSIX-conforming,
- multiprocess, and multithreaded real-time operating system.
- And to the maturity of ACE.
-
-Fri Sep 12 12:53:20 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h: added
- ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR.
-
- * ace/Managed_Object.cpp: added #include "ace/Synch.h".
-
- * ace/Strategies_T.cpp: added #include "ace/Service_Types.h".
-
- Thanks to James Johnson for the three fixes above.
-
- * ace/Service_Types.cpp: #include Service_Types.i instead of
- Service_Record.i.
-
- * ace/Synch_T.cpp: added #include "ace/Log_Msg.h". I don't know
- what change caused this to be necessary, but tests/TSS_Test
- wouldn't build without it.
-
- * ace/Log_Msg.cpp (instance): preallocate ACE_Log_Msg instance lock.
-
-Thu Sep 11 21:07:25 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Service_Object.h: Moved the ACE_Service_Type class into the
- Service_Object.h file since this is "publically" visible to
- applications.
-
- * ace/Service_Types.h: Improved the documentation of the
- ACE_Service_Type subclass implementations.
-
- * ace/Service_Types: Changed the name next_ to link_ to be
- consistent with the accessor name.
-
- * ace: Renamed Service_Record.{h,i,cpp} to Service_Types.{h,i,cpp}
- to reflect the recent change in names.
-
- * ace/Service_Object.h: Renamed ACE_Service_Type to
- ACE_Service_Type_Impl and ACE_Service_Record to ACE_Service_Type
- in order to emphasize the use of the Bridge pattern. Thanks to
- Eric Newton for motivating this.
-
- * ace/Svc_Conf.y: Removed the warning about Service name being
- different from Module name. I'm not sure why this was
- complaining in the first place. Thanks to Eric Newton for
- pointing this out.
-
- * netsvcs/lib/README: The entry point for the time service client
- is _make_ACE_TS_Clerk_Processor and not
- _make_ACE_TS_Clerk_Connector. Thanks to Ivan for pointing this
- out.
-
-Thu Sep 11 10:59:12 1997 <nw1@CHA-CHA>
-
- * ace/Connector.cpp (handle_output): Increased the idle time
- before we check the status of a non-blocking connection from 1
- ms to 35 ms when ACE_HAS_BROKEN_NON_BLOCKING_CONNECTS is
- defined (i.e., Win32.) This is very odd but wait a whole lot
- longer seems to solve the problem.
-
- * ace/Log_Msg.cpp (close): On Win32, ACE_Log_Msg_Manager needs to
- delete main thread's ACE_Log_Msg instance also.
-
-Thu Sep 11 10:37:00 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu>
-
- * ace/ACE.cpp:
- * ace/INET_Addr.cpp:
- * ace/Log_Msg.h:
- * ace/Memory_Pool.h:
- * ace/OS.h:
- * ace/OS.i:
- * ace/Parse_Node.cpp:
- * ace/Strategies_T.h:
- * bin/clone.cpp:
- * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h:
- 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.
-
-Thu Sep 11 08:52:36 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (thr_key_detach): check to see if the
- ACE_TSS_Cleanup lock has been constructed, and not
- destructed, before attempting to use it. Statics are evil.
-
- * ace/Log_Msg.cpp (~ACE_Log_Msg): release guard before calling
- ACE_Log_Msg_Manager::close (), because that deletes the lock.
-
- * ace/Managed_Object.{h,cpp} (get_object): changed type of "id"
- to int because it will often be passed an enum. Pass "id" by
- value to get_object (int id), for preallocated objects.
-
- * ace/Object_Manager.{h,cpp}: added ACE_LOG_MSG_INSTANCE_LOCK,
- and ACE_PREALLOCATE_OBJECT macro.
-
- * include/makeinclude/wrapper_macros.GNU: ignore shared_libs_only
- in modules that only build a static lib. Fixed shared_libs_only
- by removing OBJDIRS, unless BIN is undefined, and VDIR. Removed
- SHOBJ from both shared_libs_only and static_libs_only because
- they're unused.
-
- * include/makeinclude/rules.local.GNU: added lib*.*_pure* to
- clean.local target, to remove Purified libraries.
-
- * examples/Connection/non_blocking/Makefile,
- examples/Service_Configurator/IPC-tests/server/Makefile:
- removed -L./ from LDFLAGS because it's redundant:
- wrapper_macros.GNU adds it.
-
-Wed Sep 10 22:58:10 1997 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (exit): Reordered the code so that it
- will keep the lock held long enough to copy out the thread exit
- hook but will release the lock before calling this hook.
-
-Wed Sep 10 11:04:08 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5-g++.h: added
- ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS.
-
- * include/makeinclude/wrapper_macros.GNU: added PIC= with
- static_libs_only, and added list of supported make flags.
-
- * include/makeinclude/wrapper_macros.GNU: added support for
- debug=0, etc. Also, made debug, optimize, and profile
- flags independent instead of exclusive. Thanks to Per
- Andersson for suggesting this.
-
- * include/makeinclude/platform_*.GNU: replaced "CFLAGS +=
- $(DCFLAGS) with debug=1 so that debugging can easily be
- disabled. Thanks to Per Andersson and James CE Johnson
- for noticing this deficiency.
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: removed
- "-I. -I$(ACE_ROOT)" from CFLAGS because it duplicates the
- INCLDIRS set in wrapper_root.GNU.
-
-Wed Sep 10 10:35:06 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.3.5, released Wed Sep 10 10:35:06 1997.
-
-Wed Sep 10 10:25:41 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (exit): copy the thread exit hook before
- releasing the guard, and call it after releasing the guard.
-
- * examples/Shared_Malloc/test_malloc.cpp (spawn): added (char *)
- cast of slave_name () to avoid compilation warnings on Solaris.
-
-Wed Sep 10 00:43:04 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * ace/Makefile: Added Managed_Object to template sources.
-
- * ace/Object_Manager.{h,cpp}: * ace/Managed_Object.{h,cpp}:
- Separate ACE_Managed_Object to a new set of file.
-
-Tue Sep 9 23:41:56 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Reactors_Test.cpp (main): Check to see if wait() returns
- -1 and then test to see what's gone wrong!
-
- * ace/OS.h: Added a "fake" #define for SIGALRM so that programs
- will *compile* on platforms like Chorus. Thanks to Wei Chiang
- for reporting this.
-
- * examples/Shared_Malloc/test_malloc.cpp (spawn): HP/UX doesn't
- seem to like const char *const argv[] being given an initializer
- list. I've fixed this to be just plain ol' char *argv[].
- Thanks to Sandro Doro for reporting this.
-
- * ace/Handle_Set.i (clr_bit): Replaced SOCKET with ACE_SOCKET so
- this will compile on UNIX.
-
-Tue Sep 09 17:16:21 1997 <irfan@TWOSTEP>
-
- * ace/Proactor: Updated Proactor to bring it upto date with the
- recent changes to the Timer_Queue.
-
- * ace/Handle_Set.i (clr_bit and set_bit): These methods now change
- the size_ member of the class on Win32. This is necessary since
- the ACE_Handle_Set::operator fd_set *() accessor has been
- optimized for size_ == 0.
-
-Tue Sep 09 09:14:07 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (cleanup_tss): On WIN32 and with ACE_HAS_TSS_EMULATION,
- delete the ACE_TSS_Cleanup instance instead of registering it for
- cleanup via the ACE_Object_Manager's at_exit (). This should allow
- applications to use ACE_Log_Msg in their at_exit () hooks. Thanks
- to Wei Chiang <chiang@tele.nokia.fi> for reporting this problem.
-
- * ace/Object_Manager.{h,cpp}: added guard of internal structures.
- (dtor): call at_exit hooks before calling cleanup_tss, now that
- the ACE_TSS_Cleanup instance is no longer registered for an at_exit
- call. (at_exit): set errno instead of returning different values
- on error. Added ACE_Managed_Object template class, intended for
- use in replacing static instances.
-
- * ace/Thread_Manager.cpp (exit): release guard before running the
- thread exit hooks. This should help avoid deadlocks, in case
- one of those hooks needs to operate on the Thread_Manager.
-
- * ace/CORBA_Handler.{h,cpp},Dump.{h,cpp},Object_Manager.{h,cpp}:
- preallocate locks for CORBA_Handler and Dump in ACE_Object_Manager.
- Statics are evil.
-
- * ace/Synch.{h,cpp},OS.cpp,Object_Manager.{h,cpp}: removed
- ACE_TSS_Cleanup_Lock and replaced it with a preallocated mutex
- in OS.cpp. Thanks to Nanbor for reporting problems at shutdown
- with the old ACE_TSS_Cleanup_Lock static instance.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: when building
- libraries only, don't use CC to create individual .shobj/*.so
- files. The .so files are not needed to build libraries, because
- libraries are built with -G. (They are needed to avoid upsetting
- the ACE make rules, so they're created as links to their
- corresponding .o files.) The .so files are still needed when
- building executables in order to get all template instantiations.
-
- * include/makeinclude/platform_sunos5_g++.GNU: removed unused
- SOLINK definitions.
-
-Mon Sep 8 18:38:22 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Handle_Set_Test.cpp: It is possible for the order to get
- the handles (using the iterator) will not agree with insert
- order in ACE_Unbounded_Queue. It's best to use
- ACE_Unbounded_Set. Thanks to Arturo for this fix.
-
-Mon Sep 8 17:43:43 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_{List,Wheel,Hash,Heap}_T.cpp: The iter() method now
- returns a pointer to an iterator that is in a reset state
- instead of an unknown one.
-
-Mon Sep 8 14:05:15 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/ACE.cpp (read_adapter): Removed ACE_Thread_Control object in
- this function. This is now taken care of by ACE_Thread_Manager.
- (register_stdin_handler): This function no longer uses
- ACE_Stdin_Args to pass in thread manager into read_adapter.
-
- * ace/ACE.h (ACE): Removed class ACE_Stdin_Args, because it is no
- longer needed.
-
-Mon Sep 08 11:49:02 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.sh: moved log file checks out to separate file,
- run_tests.check.
-
- * tests/run_tests.vxworks: added one-button test for VxWorks.
- Check it out, Darrell.
-
- * ace/Filecache.cpp: commented out unused constants [RW]COPY_FLAGS.
-
-Mon Sep 08 08:26:52 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.3.4, released Mon Sep 08 08:26:52 1997.
-
-Sat Sep 6 10:41:17 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu>
-
- * ace/Malloc.h:
- sizeof() must be casted to int in ACE_CONTROL_BLOCK_ALIGN_LONGS
- otherwise unsigned int arithmetic is used, thus obtaining
- unexpected results.
-
-Sat Sep 06 09:07:02 1997 David L. Levine <levine@cs.wustl.edu>
-
- * OS.{h,cpp}: added ACE_Cleanup base class and
- ace_cleanup_destroyer adapter.
-
- * Object_Manager.*: added at_exit () interface for ACE_Cleanup objects.
-
- * Singleton.{h,cpp},Token_Invariants.{h,cpp},Token_Manager.{h,cpp}:
- base on ACE_Cleanup, so that simpler ACE_Object_Manager::at_exit ()
- can be used.
-
- * performance-tests/Misc/Makefile: moved $(BIN) files from FILES
- to SRC so that they don't get put into libPerf.
-
-Sat Sep 6 02:36:31 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * tests/test_config.h (set_output): Added openning flag ios::trunc
- explicitly if we are not appending to the opening ofstream.
- This is required by standard CPP iostream libraries on NT (i.e.,
- we can't use ios::out alone when ofstream.open a file.)
-
-Sat Sep 6 00:21:33 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch_T.h: Added new constructors:
-
- ACE_Guard(ACE_LOCK& l) : lock_(&l)
- { this->owner_ = this->acquire(); }
-
- ACE_Read_Guard(ACE_LOCK& m) : ACE_Guard(&m)
- { this->owner_ = this->acquire_read(); }
-
- ACE_Write_Guard(ACE_LOCK& m) : ACE_Guard(&m)
- { this->owner_ = this->acquire_write(); }
-
- Remove default argument to current Guard classes.
-
- ACE_Guard(ACE_LOCK&l, int block)
- ACE_Read_Guard(ACE_LOCK& m, int block)
- ACE_Write_Guard(ACE_LOCK&m, int block)
- with the current semantic.
-
- This change allows OS platforms with
- ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION or ACE_HAS ??? PRAGMA
- ???, to> invoke common case constructor in a more efficient
- way. Thanks to Arturo for this.
-
- * ace/Synch_T.h: ACE_Guard's destructor should be:
-
- ~ACE_Guard() { this->release(); }
-
- and not
-
- ~ACE_Guard() { if (this->owner_ != -1) this->release(); }
-
- because ACE_Guard::release has this test. Thanks to Arturo for
- reporting this.
-
- * ace/ARGV.cpp: Declared the char* parameters for the ACE_ARGV
- class constructors as const. Since they are copied in the
- constructors, this is a safe thing to do. This makes it easier
- to pass the result of string::c_str() to it. Thanks to Stephen
- Coy <stevec@magna.com.au> for this suggestion.
-
- * ace/Thread_Manager.cpp: We were missing a Guard in the
- ACE_Thread_Manager::at_exit() method.
-
- * ace/config-sunos5.5-sunc++-4.x.h: It appears that we need to set
- ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS for Solaris 2.5 since otherwise
- wierd things happen randomly. This is based on the following man
- page entry for pthread_exit():
-
- Do not call pthread_exit() from a cancellation cleanup handler
- or destructor function that will be invoked as a result of
- either an implicit or explicit call to pthread_exit().
-
- * ace/Thread_Manager.cpp (run_thread_exit_hooks): Once the cleanup
- hook(s) are called we set the value of the cleanup hook variable
- to 0 to avoid false matches later on.
-
-Fri Sep 5 21:57:44 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Containers.i (is_empty):
- * ace/Malloc.cpp (instance): Commented out ACE_TRACE in these
- routines. They were causing recursive call if we used TRACE.
- Thanks to Craig Perras <craig.perras@CyberSafe.COM> for solving
- this.
-
- * ace/Handle_Set.i (fd_set *): Added conditional compilation code
- for Win32 platforms. This is because we don't maintain <size_>
- on Win32 and, therefore, can't depend on it.
-
-Fri Sep 5 19:05:02 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * tests/Thread_Manager_Test.cpp (main): moved delete
- signal_catcher into the ACE_HAS_THREADS part of the main()
- function.
-
- * ace/Reactor.cpp (check_handles): When handle_error was optimized
- with fstat we put NULL value to second argument. It requires a
- value to SCO OpenServer to work. Therefore, I added struct stat
- temp and changed ACE_OS::fstat(handle, NULL) by
- ACE_OS::fstat(handle, &temp); Thanks to Arturo for fixing this.
-
- * examples/Threads/process_manager.cpp (sig_handler): Fixed a bug
- where the thread was exiting if no more children existed.
- Thanks to Avraham Nash <ANash@Engagetech.com> for reporting
- this.
-
- * ace/Handle_Set: Added the following performance enhancements:
-
- . Assignment operator to optimize size == 0.
-
- . min_handle to manage the case when the Handle_Set start in
- handle different of zero.
-
- . A new iterator algorithm tuned for select function calls.
-
- Thank to Arturo for these enhancements.
-
- * ace/config-aix-4.1.x.h: Added ACE_LACKS_TIMESPEC_T. Thanks to
- Rob Head (rhead@virtc.com) for reporting this.
-
- * ace/OS.cpp (fork_exec): Changed the logic so that we don't
- create a new console window on Win32. This isn't done on UNIX,
- so there's no point in doing it here. Thanks to Jeff Richard
- <jrichard@OhioEE.com> for pointing this out.
-
- * ace/Reactor.cpp: The call to
- ACE_Reactor_Handler_Repository::open() in the constructor of
- ACE_Reactor should check for == -1! Thanks to Brian Mendel for
- reporting this.
-
- * ace/Reactor.cpp (remove_handler): Fixed a braino where the
- conditional compile for NSIG should have been > 0 rather than ==
- 0. Thanks to fixing this codeKaren Amestoy
- <kamestoy@CCGATE.HAC.COM> for reporting this fix.
-
-Fri Sep 05 16:17:50 1997 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Misc/preempt.cpp: added command line options,
- and explanation on how to interpret the results.
-
-Thu Sep 04 10:26:11 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp: (tss_open): removed paren from around type in "new"
- statement, because GHS (and ANSI C++) compilers will choke on it.
- Thanks to Brian Mendel <brian.r.mendel@boeing.com> for reporting
- this.
-
- * ace/Thread_Manager.cpp: (ACE_Thread_Descriptor ctor): zero out
- cleanup_hook_ in cleanup_info_ because we read it later on.
- (dump): added guard because thr_table_ is accessed. (wait):
- hacked in thr_yield () to give waited threads a chance to clean
- up before continuing.
-
- * ace/OS.h (ACE_Cleanup_Info): added default ctor.
-
- * ace/Log_Msg.cpp (close): delete main thread's Log_Msg instance,
- on Solaris if ACE_HAS_EXCEPTIONS is not defined, because main
- thread TSS dtors apparently don't get called.
-
- * ace/Token_Manager.{h,cpp}: register ACE_Token_Manager singleton
- for deletion with ACE_Object_Manager.
-
- * ace/Token_Invariants.{h,cpp}: register ACE_Token_Invariant_Manager
- singleton for deletion with ACE_Object_Manager.
-
- * ace/Naming_Context.cpp (close) moved deletion of "name_options_"
- from dtor to close (), because when Service_Repository is closed,
- it calls close () instead of deleting the service.
-
- * ace/Process_Strategy.cpp (handle_signal): suppress printouts during
- shutdown, to prevent using ACE_Log_Msg while it's being deleted.
-
- * ace/Timer_List.cpp: replace ACE_Recursive_Thread_Mutex with
- ACE_SYNCH_RECURSIVE_MUTEX, for non-threaded platforms.
-
- * tests/Reactors_Test (~Test_Task): moved ASSERT after the printout,
- so we can see why it failed. (svc): added printout with thread ID.
- (main): deleted reactor at end of test to prevent leak.
-
- * tests/SPIPE_Test (client): increased sleep time to 10 sec,
- because a long delay is needed with Purify.
-
- * tests/UPIPE_Test (connector): added 5 second sleep to give
- acceptor a chance to start up.
-
- * include/makeinclude/wrapper_macros.GNU: added -max_threads=100 to
- Quantify options.
-
- * include/makeinclude/rules.local.GNU: added *.sym to clean target.
-
-Thu Sep 04 09:39:08 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.3.3, released Thu Sep 04 09:39:08 1997.
-
-Thu Sep 04 08:48:13 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: added shared_libs_only
- and static_libs_only build options. Only static_libs_only
- has been tested successfully.
-
- * include/makeinclude/rules.lib.GNU: added INSTALL support for
- shared_libs_only and static_libs_only.
-
- * include/makeinclude/platform_vxworks*.GNU: use static_libs_only.
-
- * ace/OS.cpp: moved tss_open ()/tss_close () calls from invoke ()
- to ace_thread_adapter.
-
- * examples/Threads/auto_event.cpp,manual_event.cpp,
- process_manager.cpp,reader_writer.cpp,tss2.cpp:
- cast spawn entry point to ACE_THR_FUNC.
-
- * examples/Threads/task_four.cpp (Invoker_Task): rearranged
- initializers to match declaration order.
-
- * examples/Threads/thread_specific.cpp (worker): use
- ACE_OS::printf () instead of printf (), and print out the
- ACE_hthread_t instead of the ACE_thread_t.
-
- * examples/IPC_SAP/SPIPE_SAP/client.cpp,consumer_msg.cpp,
- consumer_read.cpp,producer_msg.cpp,producer_read.cpp,server.cpp:
- moved #include of shared.h inside ACE_HAS_STREAM_PIPES protection
- to avoid compilation warnings on unsupported platforms.
-
- * examples/Reactor/Ntalker/ntalker.cpp (main): removed unused "argc".
-
- * examples/*/*.cpp,netsvcs/clients/Tokens/mutex/test_mutex.cpp:
- added args to main ().
-
-Wed Sep 3 21:38:18 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu>
-
- * ace/config-irix6.x-sgic++.h:
- IRIX uses pthread_sigmask to manage per-thread signal mask,
- thanks to Gonzalo Diethelm (gonzo@ing.puc.cl) for pointing out
- this one.
-
- * ace/OS.h:
- Removed an initial '#' for a comment line, thanks to Gonzalo
- Diethelm (gonzo@ing.puc.cl) for pointing out this one.
-
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Hash_T.h:
- * ace/Timer_Heap_T.cpp:
- * ace/Timer_Heap_T.h:
- * ace/Timer_List.cpp:
- * ace/Timer_List_T.cpp:
- * ace/Timer_List_T.h:
- * ace/Timer_Queue_T.cpp:
- * ace/Timer_Queue_T.h:
- * ace/Timer_Wheel_T.cpp:
- * ace/Timer_Wheel_T.h:
- In the word of its author: Modified the iterators kept in
- each of these classes so that they are constructed
- dynamically on the heap after the Queue has been properly
- initialized. Otherwise, the iterators try to iterate over a
- non-initialized queue, and fail miserably (usually dumping
- core). Once more thanks to Gonzalo Diethelm
- (gonzo@ing.puc.cl) for this changes.
-
- * tests/UPIPE_SAP_Test.cpp:
- Gonzalo improved the error message.
-
- * ace/README:
- Gonzalo updated the documentation for some macros.
-
-Wed Sep 03 15:21:46 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: define ACE_TSS macros with ACE_HAS_TSS_EMULATION,
- and renamed some ACE_TSS_Emulation methods.
-
- * ace/OS.i: allow TSS_Emulation storage to be on thread stack,
- instead of always dynamically allocating it.
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): allocate TSS_Emulation
- storage on thread stack. (ACE_TSS_Cleanup::exit): only call
- a TSS destructor if the thread's value is non-zero.
-
- * ace/Thread_Manager.cpp: support TSS_Emulation.
-
- * ace/Thread_Manager.cpp (resize): zero out unused cleanup_hooks
- in thr_table_; (run_thread_exit_hooks): check for zero cleanup
- hook before calling.
-
- * ace/Synch_T.*: allow ACE_HAS_TSS_EMULATION _or_
- ACE_HAS_THREAD_SPECIFIC_STORAGE.
-
- * ace/Object_Manager.{h,cpp}: allocate main thread's TSS_Emulation
- storage in the ACE_Object_Manager instance.
-
- * ace/Log_Msg.h: befriend ACE_OS::cleanup_tss () instead of
- ACE_Object_Manager, because the cleanup path is now indirect
- from the ACE_Object_Manager.
-
- * ace/Log_Msg.cpp: use TSS_Emulation on VxWorks, so
- VxWorks-specific code was removed.
-
- * ace/Task.cpp: removed unused #include of ace/Dynamic.h. (It had
- been used for template instantiations, but they were moved.)
- Also, removed unused #include of ace/Object_Manager.h.
-
- * ace/Svc_Handler.{h,cpp}: register Svc_Handler singleton for
- deletion with the ACE_Object_Manager.
-
- * tests/Process_Strategy_Test (Options): added a destructor so that
- the dynamically allocated concurrency_strategy_ can be deleted.
-
-Wed Sep 3 08:05:26 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Message_Block.h: Corrected comment on release(void) - the
- underlying ACE_Data_Block's refcount is decremented; the
- ACE_Message_Block is always deleted.
-
-Tue Sep 2 18:26:22 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task: Revised the ACE_Task_Base::svc_run() method to
- register a thread exit hook (ACE_Task_Base::cleanup())
-
- * ace/Task: Added a static method called cleanup() that can serve
- as a thread exit hook to ensure that close() is always called
- when a task exits a thread.
-
- * ace/Thread_Manager: Added the first-cut implementation of the
- thread exit hooks. This one is butt-simple -- just allowing a
- single hook per-thread, but that should be enough to get us over
- the hump...
-
- * ace/OS.h: Moved the object_info_t type from Object_Manager.h and
- renamed it to ACE_Cleanup_Info since we will use it with the
- Thread_Manager and the Object_Manager.
-
- * ChangeLog-97b: Emptied out the ChangeLog-97b file until
- we move the ChangeLog to this file...
-
- * ace/OS.h: Moved the <ACE_CLEANUP_FUNC> typedef from the
- ACE_Object_Manager into global scope so that it can also be used
- by the ACE_Thread_Manager.
-
- * ace/DEV_IO: Moved the get_remote_addr() and get_local_addr()
- from the DEV class to the DEV_IO class, which seems to be more
- consistent with how they should be used.
-
- * ace/FILE_IO: Added the get_remote_addr() and get_local_addr()
- methods to FILE_IO. Now we should be able to use this with the
- Connector pattern. Thanks to Stephen Coy
- <coys@mail.ns.wsa.com.au> for reporting this.
-
- * ace/DEV_Connector*h, ace/FILE*.h: Added "traits" for PEER_ADDR
- and PEER_STREAM. Now we should be able to use this with the
- Connector pattern. Thanks to Stephen Coy
- <coys@mail.ns.wsa.com.au> for reporting this.
-
- * tests/Async_Timer_Queue_Test.cpp (main): Replaced the use of
- fputs() with read() so that it will be signal-safe. Thanks to
- Carlos for pointing out the need for this.
-
- * ace/Task: All the complex ACE_Task_Exit logic has been moved out
- of the Task file and into the Thread_Manager file. This will
- both simplify and generalize the behavior of cleanups on thread
- exit.
-
-Tue Sep 2 14:42:52 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/config-chorus.h (ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR):
- Added this directive for Chorus uses g++. Thanks to David
- Levine for pointing this out.
-
-Mon Sep 01 21:31:25 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ChangeLog-97b,Makefile,bin/create_ace_build: ChangeLog is no longer
- a symbolic link, but instead is the most recent ChangeLog file.
- ChangeLog-97b was moved to ChangeLog.
-
- * ace/Timer_Queue_T.cpp (schedule): added ACE_UNUSED_ARGs for act
- and interval.
-
- * ace/OS.h: changed ACE_SEH_EXCEPT and ACE_SEH_FINALLY from null
- to "while (0)" on all platforms except ACE_WIN32. Thanks to
- Nanbor for this bit of macro wizardry.
-
- * ace/OS.i (tss_base): cast VxWorks TCB spare field to a void **&
- instead of a void **, because the function returns a reference
- to it.
-
- * ace/OS.cpp: protected definition of
- ACE_TSS_Emulation::tss_collection_ on VxWorks, where it's not used.
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke) don't exit the thread
- with TSS_EMULATION, except on WIN32. (thr_create) On VxWorks,
- use thread adapter as entry point instead of func (via macros).
-
- * ace/config-vxworks*.h: added ACE_HAS_TSS_EMULATION, with
- ACE_DEFAULT_THREAD_KEYS set to 16, and ACE_LACKS_UNIX_SIGNALS.
-
- * tests/Async_Timer_Queue_Test.cpp: added template instantiations.
-
- * tests/IOStream_Test.cpp: no longer need to dynamically allocate
- the ACE_SOCK_IOStreams with the recent ACE_Thread_Manager changes.
- That was causing occasional problems with unsafe deletion of the
- underlying ostreams. Thanks to James Johnson for consulting on
- this intermittent (nasty) problem.
-
- * tests/SPIPE_Test.cpp: (main) added ACE_UNUSED_ARG of client
- and server.
-
- * tests/Thread_Manager_Test (worker): added ACE_UNUSED_ARG (thr_mgr)
- if ACE_LACKS_UNIX_SIGNALS, and added template instantiations.
-
- * tests/Thread_Manager_Test.cpp: dynamically allocate the
- signal_catcher so that we can destroy it before the main
- thread's TSS is cleaned up.
-
- * tests/TSS_Test.cpp: dynamically allocate TSS_Error so that we
- can ensure its deletion before that of ACE_Object_Manager.
- Also, makde the code a little easier to change the number of threads.
-
- * include/makeinclude/wrapper_macros.GNU: added Purify options to
- ignore SIGINT and set max threads to 100.
-
-Mon Sep 1 10:53:39 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Handle_Set: Added an assignment operator that is optimized
- for the case when the right-hand side is 0.
-
- * ace/OS: The ACE_THR_C_FUNC macro was confusing for Win32. We've
- replaced this with the original UNIX typedef and will just use
- LPTHREAD_START_ROUTINE for Win32.
-
- * tests/Thread_Manager_Test.cpp (main): Revised this test so that
- we don't have race conditions for suspend() and resume().
-
- * tests/Tokens_Test.cpp (run_test): Removed the use of
- THR_SUSPENDED and resume_all() since this is broken due to race
- conditions and other hazards implicit in using suspend() and
- resume() on threads.
-
- * ace/Handle_Set.cpp: There were several ACE_INLINE methods in the
- Handle_Set.cpp file. I've removed the ACE_INLINE flag.
-
- * tests/SPIPE_Test.cpp: If ACE doesn't have STREAM pipes on a
- platform (or we aren't on NT) then don't try to run this test.
- Thanks to James CE Johnson <ace-users@lads.com> for reporting
- this.
-
- * ace/config-sunos5.[45]-g++.h: ACE defines _REENTRANT in
- config.h. Application using classes of ACE can conflict by
- using compilation option as -D_REENTRANT. I fixed this by
- surrounding the define as:
-
- #if !defined (_REENTRANT)
- #define _REENTRANT
- #endif /* _REENTRANT */
-
- Thanks to Jean-Marc Strauss <strauss@limeil.cea.fr> for
- reporting this.
-
- * ace/Timer_Queue_T.h: We need to #include "ace/Signal.h" since
- our Async_Timer_Queue_Adapter needs it. Thanks to Neil Cohen
- for reporting this.
-
- * ace/Reactor.cpp (check_handles): Optimized the check for invalid
- handles by using fstat() rather than select() on non-Win32
- platforms. Thanks to Arturo for suggesting this optimization.
-
-Mon Sep 1 17:52:10 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Heap_T.cpp: Changed cancel (id ...) to check for
- previously expired/cancelled timers
-
-Mon Sep 01 08:43:37 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Synch.cpp: added #include of Object_Manager.h.
- Thanks to Edan Ayal <edana@vdo.net> for reporting this.
-
-Mon Sep 1 00:46:05 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * ace/README: Added explanation for ACE_HAS_STL_MAP_CONFILICT.
-
- * ace/OS.h: Added conditional compilation directive
- ACE_HAS_STL_MAP_CONFLICT. This is used when users want to
- compile ACE with STL library and the STL map class conflicts
- with map structure in <net/if.h>.
-
- * ace/config-unixware-2.1.2-g++.h:
- * ace/config-unixware-2.01-g++.h:
- * ace/config-osf1-4.0-g++.h:
- * ace/config-irix5.3-g++.h:
- * ace/config-hpux-10.x-g++.h:
- * ace/config-linux-pthread.h:
- * ace/config-linux-lxpthreads.h:
- * ace/config-linux.h:
- * ace/config-freebsd.h:
- * ace/config-freebsd-pthread.h:
- Added ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR flag for all
- config files which apparently use g++.
-
- * ace/config-vxworks-g++.h:
- * ace/config-vxworks5.x-g++.h:
- * ace/config-sunos4-g++.h:
- * ace/config-sunos5.4-g++.h:
- * ace/config-sunos5.5-g++.h:
- Moved ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR closer to
- other template-related directives.
-
-Sun Aug 31 22:56:30 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.2, released Sun Aug 31 22:56:30 1997.
-
-Sun Aug 31 22:36:08 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Async_Timer_Queue_Test.cpp: Need to #include "Timer_List.h"
- rather than "Timer_Queue.h".
-
- * ace: Added ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT for all
- config.h files.
-
- * ace/Handle_Set.cpp (count_bits): Continued to optimize this
- method. Now, if ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT enabled
- it will use a very fast loop that only runs for as many bits
- that are enabled in the bitset. This approach also doesn't have
- to access the Global Offset Table in shared libraries, which is
- a win. Thanks to Arturo for contributing this.
-
- * tests/Async_Timer_Queue_Test.cpp: Generalized this test to use
- the new ACE_Async_Timer_Queue_Adapter.
-
- * ace/Timer_Queue_T: Added the new ACE_Async_Timer_Queue_Adapter,
- which makes it possible to encapsulate any of the ACE Timer
- Queue mechanisms into a asynchronous signal-handling context.
-
- * ace/OS.i: If the platform doesn't support ualarm() (and it
- doesn't lack UNIX signals) then we'll use alarm() rather
- than ualarm(). Clearly, this isn't as good as ualarm(),
- but it's better than nothing.
-
- * ace/OS.i: I'd missed replacing
-
- ACE_LACKS_POSIX_PROTO_FOR_SOME_FUNCS
-
- with
-
- ACE_LACKS_POSIX_PROTOTYPES_FOR_SOME_FUNCS
-
- in OS.i. Thanks to James CE Johnson <ace-users@lads.com> for
- pointing this out.
-
-Sun Aug 31 09:58:35 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Princess Diana was killed today in a senseless auto accident in
- Paris, France. This is a very tragic ending to a very promising
- life ahead of her.
-
-Sun Aug 31 15:08:00 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Async_Timer_Queue_Test.cpp: fixed and added some
- ACE_UNUSED_ARG's.
-
- * netsvcs/clients/Tokens/invariant/invariant.cpp (run_mutex,
- run_reader_writer),
- netsvcs/clients/Tokens/mutex/test_mutex.cpp (run_test),
- netsvcs/clients/Tokens/rw_lock/rw_locks.cpp (run_thread):
- removed unused argument "vp".
-
- * ace/ACE.i (log2): moved "log" declaration outside of the
- for loop because its used after the loop.
-
- * ace/Task.cpp (instance) only register for destruction with
- ACE_Object_Manager when creating a new instance_.
-
- * ace/Thread_Manager.cpp (ACE_Thread_Control::exit) with TSS
- emulation, don't exit the thread. Instead,
- ACE_Thread_Adpater::invoke () will do it after cleaning up TSS.
-
- * ace/Synch{h,cpp}: (ACE_TSS_Cleanup_Lock) register for
- destruction with ACE_Object_Manager.
-
- * ace/OS.*: major cleanup of ACE_TSS_Emulation, esp. how it
- interacts with ACE_TSS_Cleanup::exit ().
-
-Sat Aug 30 17:30:24 1997 Steve Huston <shuston@riverace.com>
-
- * Removed these config files:
- config-hpux-10.x-aCC.h
- config-hpux-10.x-decthreads.h
- config-hpux-10.x-nothread.h
- config-hpux-10.x-hpc++.h should be used with HP compilers on
- HP-UX 10.x.
-
-Sat Aug 30 14:58:42 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Signal.cpp (ACE_Sig_Action): Added a new constructor that
- also takes an ACE_Sig_Set & *and* registers the handler...
-
- * ace/Handle_Set.cpp (count_bits): Added a newly optimized
- algorithm for cases where
- ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT. Thanks to Arturo for
- this suggestion.
-
- * ace/config-sco-5.0.0*.h: Added ACE_HAS_LONG_FDMASK for all the
- SCO files. Thanks to Arturo for suggesting this.
-
- * ace/Signal: Added a new mutator method to reassign an
- ACE_Sig_Set to an ACE_Sig_Action.
-
- * ace/Handle_Set.i: If the size of the fd_set is 0 then operator
- fd_set *() just returns 0. This will help to optimize the
- performance of the Reactor. Thanks to Arturo for suggesting
- this.
-
- * ace/Handle_Set.cpp (count_bits): Added yet another improvement
- to remove the "i" iterator. Thanks to Arturo for this!
-
- * ace/Log_Msg.cpp (log): Used the new ACE_Log_Record::priority()
- method in place of the type() method so that the priorities are
- handled correctly.
-
- * ace/Log_Record: Added two new methods that get/set the
- "priority" of an ACE_Log_Record. This value computed as the
- base 2 log of the value of the corresponding ACE_Log_Priority
- enumeral (which are all powers of two). We need this mapping
- function so that we can use the priorities as parameters to the
- putpmsg() function (which can only map between 0-255). Thanks
- to Per Andersson for finding this stuff!
-
- * ace/ACE: Added a new method to compute the base2 logarithm of a
- number.
-
- * Replaced all uses of ACE_Thread_Control since this is now
- handled by the ACE_Thread_Manager.
-
- * ace/Thread_Manager.cpp (spawn_i): Make sure to pass "this" to
- the ACE_Thread_Adapter if we're constructing it in the
- ACE_Thread_Manager::spawn_i() method.
-
- * ace/OS.i (cond_timedwait): Added a special check to see if
- timeout != 0, in which case we just call ACE_OS::cond_wait().
- Therefore, VxWorks can now use ACE_OS::cond_timedwait(), as long
- as the timeout == 0! This simplifies certain internal ACE code.
- Thanks to David Levine for pointing this out.
-
- * ace/Handle_Set.cpp (count_bits): Changed the code from
-
- for (int i = 0; i < sizeof (u_long); i++)
- {
- rval += ACE_Handle_Set::nbits_[n & 0xff];
- n >>= 8;
- }
-
- to
-
- for (int i = 0; n != 0; i++)
- {
- rval += ACE_Handle_Set::nbits_[n & 0xff];
- n >>= 8;
- }
-
- in order to speed it up in the "best case." Thanks to Arturo
- Montes <mitosys@colomsat.net.co> for reporting this.
-
- * ace/Thread.cpp (spawn_n): Added a test to make sure that the
- thread_ids is != 0 before we assign into this.
-
-Fri Aug 29 22:45:21 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/config-vxworks-g++.h:
- * ace/config-vxworks5.x-g++.h:
- * ace/config-sunos4-g++.h:
- * ace/config-sunos5.4-g++.h:
- * ace/config-sunos5.5-g++.h:
- Added flag ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR to these
- config files.
-
- * ace/README: Added explanation of flag
- "ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR."
- When calling a template class'es destructor explicitly, if you
- must use "ptr->FOO<BAR>::~FOO ();" but not
- "ptr->FOO<BAR>::~FOO<BAR> ();" then, you must add this flag to
- your config file.
-
- * ace/OS.h (ACE_DES_FREE_TEMPLATE): Added this new macro to cope
- with the fact that compilers require different syntax when
- calling destructor of template classes explicitly. This macro
- takes four arguments, POINTER, DEALLOCATOR, CLASS, and
- TEMPLATE_PARAMETER. To deallocate a pointer allocated by
- ACE_NEW_MALLOC and you need to call FOO<BAR> class'es
- destructor, you'll write:
-
- ACE_DES_FREE_TEMPLATE (ptr, alloc->free, FOO, <BAR>);
-
- * ace/Containers.cpp: Changed to use ACE_DES_FREE_TEMPLATE to iron
- out differences among compilers.
-
-Fri Aug 29 15:31:50 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.*,Synch.{h,cpp},Object_Manager.cpp: started adding
- support for TSS emulation.
-
- * ace/OS.h: declare class ostream if
- ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
-
- * tests/Async_Timer_Queue_Test.cpp (parse_commands): fixed
- sscanf format specifiers to match argument types; (main):
- fixed ACE_ERROR_RETURN parens; protected bulk of code with
- ACE_HAS_UALARM so that the test will build cleanly on
- platforms without it.
-
-Fri Aug 29 00:43:27 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Synch.cpp (wait): Simpified the call to
- ACE_OS::cond_timedwait() to avoid an extra test. Thanks to
- Arturo for pointing this out.
-
- * ace/TTY_IO: Added native support for TSETA. Thanks to Arturo for
- this.
-
- * ace/Strategies_T.cpp: Finished integrating the ACE_DLL_Strategy
- implementation, which is used in TAO. Thanks to Satheesh Kumar
- MG <satheesh@india.aspectdv.com> for motivating this.
-
- * ace/Synch_T.h: Clarified the constructor for ACE_TSS that takes
- a TYPE * as an argument. Note that this only initializes the
- TSS value in the *calling* thread, but not any other threads
- that may come along later on. Thanks to Bob Laferriere
- <laferrie@gsao.med.ge.com> for helping to clarify this.
-
- * ace/Synch_T.h: Removed stray semi-colons from some of the
- ACE_SYNCH_* macros. Thanks for Wei Chiang for reporting this.
-
-Fri Aug 29 11:40:10 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.cpp: Added cast for ace_thread_adapter.
-
- * ace/OS.h: Changed name of ACE_Thread_Adapter's constructor's
- fourth parameter from tm to tmgr since tm conflicted with
- another tm.
-
- * ace/Thread_Manager.cpp: In spawn_i, changed the last parameter
- given to spawn to thread_args. Also had to add a cast for
- ace_thread_adapter.
-
-Fri Aug 29 06:44:05 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.h (ACE_DES_FREE): Added this macro which will call
- designate destructor before freeing the memory. This is a
- matching macro that should go with ACE_NEW_MALLOC and
- ACE_NEW_MALLOC_RETURN which allocate memory using designate
- allocator then call the user specified constructor explicitly.
-
- * ace/Containers.cpp: Many memory deallocations of container's
- nodes were changed to use the new macro which deletes objects
- correctly.
-
- Thanks very, very much to Ivan Murphy for torturing various
- test programs and reporting those tests which fail the
- excruciation.
-
-Fri Aug 29 01:26:38 1997 <irfan@TWOSTEP>
-
- * ace/ReactorEx.cpp: Added two new methods to ReactorEx -
- schedule_wakeup() and cancel_wakeup(). Also fixed some bugs
- related to our local copy of network_events_ not getting updated
- properly. Thanks to Edan Ayal <edana@vdo.net> for pointing out
- the two missing functions.
-
-Thu Aug 28 20:12:23 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp: Added a new ace_thread_manager_adapter()
- function, which is similar to the ace_thread_adapter function
- used in ACE_OS::thr_create(). However, the new function ensures
- that threads spawned by an ACE_Thread_Manager are automatically
- registered and deregistered from the Thread Manager.
-
- * ace/ACE.h (inherit_log_msg): Factored out the functionality to
- inherit the logging features if the parent thread has an
- ACE_Log_Msg instance in thread-specific storage. This function
- is called in several places (e.g., OS.cpp and
- Thread_Manager.cpp), so it pays to factor it out.
-
- * ace/OS.h (ACE_Thread_Adapter): Added a new data member that
- keeps track of which thread entry point function we will pass to
- the underlying OS thread creation routine. The default value is
- ace_thread_adapter, but this can be overridden to do different
- things...
-
- * ace/OS,
- ace/Thread: Extended thr_create() so that if an
- ACE_Thread_Adapter is passed to it this is used in lieu of the
- func and arg parameters. This reduces the amount of dynamic
- allocation and indirection required with the new
- ACE_Thread_Manager.
-
- * ace/Task.h: Removed the ACE_Thread_Control data member from the
- ACE_Task_Exit class since it now belongs to the
- ACE_Thread_Manager instead...
-
- * ace/OS.cpp: Move the ACE_Thread_Adapter out of the OS.cpp file
- and made it a first-class citizen of ACE. We can put this
- to good use in the new ACE_Thread_Manager.
-
- * ace/OS.cpp: The ACE_Thread_Adapter is now the default behavior
- in ACE. If you don't want to use it for whatever reason,
- you'll need to set the ACE_NO_THREAD_ADAPTER macro.
-
- * ace/config-sco-5.0.0-fsu-pthread.h: Added
- ACE_LACKS_CONST_TIMESPEC_PTR. Thanks to Arturo for this.
-
- * ace/Synch.cpp (wait): Removed the reference assignment and just
- take the address of this->mutex_.lock_. Also, removed the
- additional check for abstime == 0 in order to speed up the
- common case. Thanks to Arturo for these suggestions.
-
-Thu Aug 28 20:02:03 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3.1, released Thu Aug 28 20:02:03 1997.
-
-Thu Aug 28 00:21:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Strategies_T.cpp (ACE_Thread_Strategy): Added reasonable
- values to the default constructor. Thanks to Stephen Coy
- <stevec@wsa.com.au> for reporting this.
-
- * ace/config-irix6.x-sgic++-*.h: Added ACE_HAS_UALARM. Thanks to
- Amos Shapira <amos@gezernet.co.il> for reporting this.
-
- * ace/config-aix-4.*.h: Added ACE_HAS_UALARM. Thanks to Cary
- Clark for reporting this.
-
- * ace/config-hpux-10.x*.h: Added ACE_HAS_UALARM. Thanks to Cary
- Clark for reporting this.
-
- * ace/config-osf1*.h: Added ACE_HAS_UALARM. Thanks to Thilo
- for reporting this.
-
- * ace/config-mvs.h: Added ACE_HAS_UALARM. Thanks to Chuck Gehr
- for reporting this.
-
- * tests/Async_Timer_Queue_Test.cpp: Added a new test that will
- illustrate how to implement an asynchronously invoked
- Timer_Queue using UNIX SIGALRM signals.
-
-Thu Aug 28 19:32:07 1997 <irfan@TWOSTEP>
-
- * examples/Reactor/ReactorEx: Added two new applications
- (test_registry_changes.cpp and test_console_input.cpp) to show
- some more features of ReactorEx. test_registry_changes.cpp shows
- how to monitor the Registry using ReactorEx.
- test_console_input.cpp shows how to use ReactorEx to get
- notified when input shows up on the console.
-
-Thu Aug 28 18:07:37 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_{List,Heap,Wheel,Hash}_T.cpp: Changed the behavior
- of the iterator to automatically initialize when the iterator
- is constructed.
-
-Thu Aug 28 10:43:35 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Task.{h,cpp} (ACE_Task_Exit::instance) added call to
- ACE_Object_Manager::at_exit () to clean up the singleton at
- program termination.
-
-Thu Aug 28 03:25:52 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
-
- * tests/Task_Test.cpp (Barrier_Task):
- * tests/TSS_Test.cpp (main): Added an array to collect thread
- handles in order to clean them up. Thanks to Ivan Murphy
- for pointing this out.
-
- * ace/Thread_Manager.{h,cpp} (spawn_n):
- * ace/Task.{h,cpp} (activate):
- Added an extra argument ACE_hthread_t thread_handles[] with
- default value 0. We need this argument to collect handles of
- spwaned/activated threads. On NT, we have to join terminated
- threads explicitly to prevent handles leak. Thanks to Ivan
- Murphy for digging this out.
-
-Wed Aug 27 10:48:25 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace: Changed all occurrences of ACE_LACKS_RLIMIT_PROTO to
- ACE_LACKS_RLIMIT_PROTOTYPE, ACE_LACKS_POSIX_PROTO to
- ACE_LACKS_POSIX_PROTOTYPES, and ACE_LACKS_SYSV_MSQ_PROTOS to
- ACE_LACKS_SYSV_MSQ_PROTOTYPES to be more consistent.
-
- * ace/config-sunos5.x*.h: Added ACE_HAS_UALARM to all the Solaris
- config files. However, also had to add ACE_LACKS_UALARM_PROTOTYPE
- since Solaris strangely doesn't provide this prototype.
-
- * ace/OS.h: Added an ACE_Time_Value version of ACE_OS::ualarm().
-
- * ace/Signal: Added a new constructor for ACE_Sig_Action that
- takes an ACE_Sig_Set parameter.
-
- * ace/Signal: Added a sigset() accessor method.
-
- * ace/config-unixware-2.1.2-g++.h: Added ACE_HAS_UALARM. Thanks
- to Ganesh Pai <gpai@voicetek.com> for reporting this.
-
- * ace/OS.h: Added a default value of 0 to ACE_OS::time().
-
- * ace/Synch.i (ACE_Thread_Mutex_Guard): Rearranged the code so
- that we can inline the acquire(), tryacquire(), and release()
- methods properly. Thanks to David Levine for pointing this out.
-
- * ace/OS.h: Added ACE_OS support for the ualarm() method. If your
- platform supports ualarm() please send me email so I can set the
- ACE_HAS_UALARM flag in your config.h file.
-
- * tests/Makefile: Added an asynchronous timer queue test.
-
- * examples/IOStream/server/iostream_server.cpp: Added a new macro
- to work around the fact that some C++ compiles don't grok
- template typedefs. Thanks to Oleg Krivosheev <kriol@fnal.gov>
- for pointing this out.
-
- * ace/OS,
- ace/Task.cpp:
- Installed a bunch of patches for FSU pthreads. Thanks to Arturo
- Montes <mitosys@colomsat.net.co> for sending this.
-
- * Makefile: Added a line to the release script that will
- automatically generate an ACE-INSTALL text file from the
- ACE-INSTALL.html file. Thanks to Oleg Krivosheev
- <kriol@fnal.gov> for suggesting this.
-
- * performance-tests/Misc/Makefile: Added $(BIN) to the FILE target
- so that "make depend" will work. Thanks to David Levine for
- pointing this out.
-
- * ace/Synch.i: Eliminated unnecessary assignment to this->owner_.
- Thanks to Chris for pointing this out.
-
- * ace/OS.i (msgctl): Added a "struct" to the definition of
- msqid_ds. Thanks to Steve Hickman <SHICKMAN@cobra.mcit.com> for
- reporting this.
-
-Thu Aug 28 01:07:21 1997 <irfan@TWOSTEP>
-
- * examples/Reactor/ReactorEx/test_directory_changes.cpp: Added a
- new example application. This application tests the working of
- ReactorEx when users are interested in changes in the
- filesystem.
-
-Wed Aug 27 22:06:23 1997 Nanbor Wang <nw1@lambada.cs.wustl.edu>
-
- * *.{mak,mdp,dsw,dsp}: Updated ACE's library names on Win32 as
- below. Only Microsoft's Win95 and Windows NT are effected.
-
- Version Dynamic Library Static Livrary
- ------------------ -------------------- -----------------
- Debug aced.lib, aced.dll acesd.lib
- Release ace.lib, ace.dll aces.lib
- Debug w/ UNICODE aceud.lib, aceud.dll acesud.lib
- Release w/ UNICODE aceu.lib, aceu.dll acesu.lib
-
- Thanks to John Morey <jmorey@tbi.com> for suggesting this and
- Darrell for updating VC 5.0's makefiles.
-
- * ace/config-freebsd[-pthread].h (ACE_HAS_UALARM): FreeBSD does has
- ualarm.
-
-Wed Aug 27 10:52:59 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/Synch_T.h (CTOR): Eliminated unnecessary assignment to
- this->owner_.
-
-Wed Aug 27 09:32:57 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Singleton.cpp (instance): removed full qualification of
- "instance_" in ACE_NEW_RETURN macro, because it confused
- the Sun C++ 4.2 preprocessor.
-
- * ace/Singleton.cpp: added support for ACE_HAS_SIG_C_FUNC platforms,
- e.g., on MVS. At least I tried to. The cleanup function,
- on ACE_HAS_SIG_C_FUNC platforms only, doesn't call the object's
- destructor. It just deallocates the storage. That should be
- good enough; I don't think it's worth trying to do more than that.
-
- * ace/Synch.cpp (close_singleton): removed call to
- ACE_Allocator::close_singleton (), because this method is
- only called if ACE_HAS_THREADS.
-
- * ace/Object_Manager.cpp (dtor): added call to
- ACE_Allocater::close_singleton (), and protected call to
- ACE_Static_Object_Lock::close_singleton () with ACE_HAS_THREADS.
-
- * tests/Time_Value_Test.cpp: disabled ACE_U_LongLong test
- on ACE_WIN32 platforms, because that class is never used
- there. Thanks to Nanbor for finding this.
-
- * performance-tests/Misc/preempt.cpp,Makefile: added preempt
- test, which tests for thread preemption.
-
-Tue Aug 26 13:59:01 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp: Changed the symbol
- "SS" to "SST" to avoid a namespace collision with UnixWare.
- Thanks to Ganesh Pai <gpai@voicetek.com> for pointing this out.
-
- * ace: Added a new config file to sco using FSU pthreads. Thanks
- to Arturo Montes <mitosys@colomsat.net.co> for sending this.
-
- * include/makeinclude: Added a new platform macros file to sco
- using FSU pthreads. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for sending this.
-
-Tue Aug 26 22:06:14 1997 <irfan@TWOSTEP>
-
- * examples/Reactor/ReactorEx: Added two new applications for
- testing some of the new features of ReactorEx. Added
- documentation and renamed some of the older test files to make
- it easier to comprehend the examples.
-
-Tue Aug 26 11:47:29 1997 <irfan@TWOSTEP>
-
- * ace/OS.i (mutex_trylock): Changed this method to make it deal
- correctly with abandoned mutexes. Also added a new mutex_trylock
- method that allows the user to know if the mutex was abandoned
- (through an extra out parameter). Also fixed
- ACE_OS::cond_timedwait(), ACE_OS::cond_wait(),
- ACE_OS::event_wait(), ACE_OS::event_timedwait() and
- ACE_OS::sema_wait() to remove extra checks for WAIT_ABANDONED,
- since we are not dealing with mutexes in these methods. Thanks
- to Ivan Murphy <Ivan.Murphy@med.siemens.de> for pointing this
- out.
-
-Tue Aug 26 11:06:45 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h,config-vxworks5.x-g++.h:
- split ACE_HAS_RENAMED_MAIN into ACE_MAIN and
- ACE_HAS_NONSTATIC_OBJECT_MANAGER.
-
- * ace/ACE.cpp: only create the ACE_Object_Manager_Destroyer
- if not ACE_HAS_NONSTATIC_OBJECT_MANAGER.
-
- * ace/Object_Manager.{h,cpp}: dynamically allocated the
- contained ACE_Unbounded_Queue to so that it can be deallocated
- before the ACE_Allocator is destroyed.
-
- * ace/Singleton.{h,cpp}: register all ACE_Singletons for
- cleanup with the ACE_Object_Manager.
-
- * ace/Synch.{h,cpp}: renamed ACE_Static_Object_Lock::atexit () to
- close_singleton (), and removed the unused atexit hook.
-
- * ace/Log_Msg.cpp (ACE_Log_Msg_Manager::close): delete the
- main thread's Log_Msg.
-
- * ace/config-vxworks-ghs-1.8.h: added ACE_HAS_NONSTATIC_OBJECT_MANAGER.
-
- * tests/Time_Value_Test.cpp: added tests of ACE_U_LongLong.
-
- * tests/Atomic_Op_Test.cpp (main): added arguments to main ().
-
- * tests/Barrier_Test.cpp (main): delete thread_handles array
- to prevent memory leak.
-
- * examples/Reactor/Misc/test_signals_2.cpp (main): changed
- type of second arg from "char *" to "char *[]".
-
-Mon Aug 25 14:13:57 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu>
-
- * ace/OS.h:
- Changed the return type of sendmsg_timedwait from sszie_t to
- ssize_t, this should only affect platforms where
- ACE_LACKS_TIMEDWAIT_PROTOTYPES, further it was definitely wrong
- before.
- Thanks to ARTURO MONTES <mitosys@colomsat.net.co> for pointing
- out this one.
-
-Mon Aug 25 10:15:06 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Message_Queue.cpp (notify): fixed ACE_TRACE message.
-
- * examples/ASX/UPIPE_Event_Server/event_server.cpp,
- examples/Connection/misc/test_upipe.cpp,
- examples/Connection/non_blocking/test_*.cpp,
- examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp,
- examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp,
- examples/Misc/test_dump.cpp,
- examples/Reactor/FIFO/client.cpp,
- examples/Reactor/Misc/test_*.cpp,
- examples/Reactor/Proactor/test_multiple_loops.cpp,
- examples/Reactor/Proactor/test_timeout.cpp,
- examples/Reactor/ReactorEx/test_timeout.cpp,
- examples/Reactor/ReactorEx/test_exceptions.cpp,
- examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp,
- examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp,
- examples/Shared_Malloc/test_multiple_mallocs.cpp,
- examples/System_V_IPC/SV_Message_Queues/*MQ_*.cpp,
- examples/System_V_IPC/SV_Semaphores/Semaphores_?.cpp,
- examples/Threads/process_mutex.cpp,
- examples/Threads/recursive_mutex.cpp,
- examples/Threads/tss1.cpp,
- examples/Threads/thread_specific.cpp,
- examples/Threads/token.cpp,
- examples/Threads/wfmo.cpp,
- tests/Simple_Message_Block_Test.cpp,
- tests/Hash_Map_Manager_Test.cpp:
- added arguments to main () to support redeclaring it on VxWorks.
-
- From now on, we should always declare main () with arguments, e.g.,
- int
- main (int, char *[])
-
-Sun Aug 24 10:27:33 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * tests/Future_Test.cpp (Scheduler): Removed the non-existent
- friend class Method_ObjectWork. Thanks to Sandro Doro
- <doros@aureus.sublink.org> for reporting this problem.
-
- * ace/Message_Block.h: Clarified in the comments that the length()
- of a Message_Block is 0 until the wr_ptr() is explicitly set.
- Thanks to Amos Shapira <amos@gezernet.co.il> for pointing out
- the need for this.
-
-Sat Aug 23 14:43:27 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.3, released Sat Aug 23 14:43:27 1997.
-
-Sat Aug 23 14:40:32 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Released the long-awaited ACE 4.3. Good night sweet prince:
- And flights of angels sing thee to thy rest.
-
-Sat Aug 23 00:44:09 1997 Douglas C. Schmidt <schmidt@merengue.cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler.cpp: Make sure that we
- explicitly instantiate ACE_Svc_Handler<LOGGING_PEER_STREAM,
- ACE_NULL_SYNCH> whether or not we're building with threads
- since otherwise we get link errors.
-
-Fri Aug 22 20:58:49 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.cpp (ACE_TSS_Cleanup): Changed the lock for
- ACE_TSS_Cleanup from a static object to a singleton to avoid the
- nasty detruction order problem. This only effects Win32.
-
- * ace/Synch.{h,cpp}: Added a new singleton lock
- "ACE_TSS_Cleanup_Lock" for Win32 platform. This object is
- expect to be put under ACE_Object_Manager's control and will
- probably gone/changed in the near future.
-
-Fri Aug 22 18:48:17 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu>
-
- * ACE-install.sh:
- I updated the information on IRIX. Now we know for a fact it
- compiles on IRIX 6.x, but we are not certain on IRIX 5.X.
-
- * bin/auto_compile_wrapper:
- I have tried to make it clear that auto_compile_wrapper must be
- tailored on each site. The email address is invalid and the
- script should just crash the
-
- * ace/OS.i (cond_timedwait):
- It used to always dereference the timeout parameter, which could
- be 0 (heading for a
- Sthreads use timestruc_t instead of timespec_t, thanks to
- Ganesh Pai <gpai@voicetek.com> for pointing out this one and to
- Steve Huston <shuston@riverace.com> for explaining to us what
- was going on.
-
-Fri Aug 22 08:46:39 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks*.GNU:
- unset SHLIB to fix builds without PRELIB.
-
- * netsvcs/lib/Logging_Strategy.cpp,
- examples/Threads/task_three.cpp: include fstream.h and
- iostream.h if ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
-
- * examples/ASX/UPIPE_Event_Server/event_server.cpp,
- examples/Log_Msg/test_log_msg.cpp,
- examples/Reactor/Misc/test_time_value.cpp,
- examples/Logger/Accepter-server/server_loggerd.cpp:
- #include iostream.h if ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
-
- * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp (svc):
- replaced an iostream printout with an ACE_DEBUG call.
-
- * examples/Misc/test_read_buffer.cpp,
- test_dump.cpp,
- Mem_Map/IO-tests/test_io.cpp:
- replaced bare OS calls with ACE_OS calls.
-
- * examples/Reactor/Misc/notification.cpp (Thread_Handler):
- added cast of svc_run to ACE_THR_FUNC.
-
-Thu Aug 21 22:38:19 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu>
-
- * bin/auto_compile:
- This tool will checkout ACE_wrapper from CVS, use
- bin/create_ace_build to update a clone directory, compile ace
- and tests in that clone directory and then run run_tests.sh.
- If there is any problem it will report it to email.
-
- * bin/auto_compile_wrapper:
- The former needs some configuration information and a proper
- enviroment, hence it may not be invoked directly from your
- crontab. This tool is used for that purpose.
-
- * apps/Gateway/Gateway/Makefile:
- * apps/JAWS/server/Makefile:
- * examples/Connection/non_blocking/Makefile:
- * examples/IPC_SAP/DEV_SAP/reader/Makefile:
- * examples/IPC_SAP/DEV_SAP/writer/Makefile:
- * examples/Service_Configurator/IPC-tests/server/Makefile:
- * netsvcs/clients/Naming/Client/Makefile:
- * netsvcs/clients/Naming/Dump_Restore/Makefile:
- * performance-tests/Synch-Benchmarks/Makefile:
- No need to defines LIBS=-lACE here, it is already done in
- wrapper_macros.GNU. Thanks to Cary Clark <claca@iccokc.com> for
- pointing out this one.
-
- * bin/create_ace_build:
- New flag -a to create all symlinks using absolute paths, it
- helps when the build directory is a symlink too.
-
- * include/makeinclude/platform_irix6.x-sgic++.GNU:
- ACE now compiles with little or no warnings, I kept the linker
- warnings deactivated though.
- -ptall does not work any more. I added a comment on that.
-
- * ace/OS.h:
- * apps/Gateway/Gateway/Concrete_Proxy_Handlers.cpp:
- * apps/JAWS/clients/Blobby/Blob_Handler.cpp:
- * apps/JAWS/server/HTTP_Server.cpp:
- * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp:
- * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp:
- * examples/IPC_SAP/SPIPE_SAP/producer_read.cpp:
- * examples/Reactor/Dgram/CODgram.cpp:
- * examples/Reactor/Dgram/Dgram.cpp:
- * examples/Reactor/Misc/test_demuxing.cpp:
- * examples/Reactor/Misc/test_reactors.cpp:
- * examples/Reactor/Misc/test_signals_2.cpp:
- * examples/Threads/barrier2.cpp:
- * examples/Threads/process_manager.cpp:
- * examples/Threads/task_three.cpp:
- * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp:
- * netsvcs/clients/Tokens/collection/collection.cpp:
- * netsvcs/clients/Tokens/mutex/test_mutex.cpp:
- * performance-tests/Misc/childbirth_time.cpp:
- * tests/Reactor_Exceptions_Test.cpp:
- * tests/Reactors_Test.cpp:
- * tests/SOCK_Test.cpp:
- New macro ACE_NOTREACHED. Some compilers will issue warnings on
- unreached statements with things like:
- int foo()
- {
- if (bar) {
- return 0;
- } else {
- return 1;
- }
- return 0; // warning here
- }
- but if we remove the last return some other compiler will issue
- warnings on leaving the function with no return value.
- This macro tries to deal with that, all we have to do is to
- write the last line like:
- int foo()
- {
- if (bar) {
- return 0;
- } else {
- return 1;
- }
- ACE_NOTREACHED(return 0); // No warning now!!!
- }
- IMHO it also serves as a form of documentation.
-
-Thu Aug 21 21:00:35 1997 <irfan@TWOSTEP>
-
- * ace/Auto_Ptr: Changed auto_ptr implementation to be as close
- to the C++ specification as possible. Things that are still
- missing are:
- (a) std namespace
- (b) member templates implementations
- (c) making the constructors explicit
-
- * ace/OS.h (ACE_BIT_STRICTLY_ENABLED): Added new macro to check if
- a bit is strictly enabled in a word. This is necessary when the
- bit would be a combination of bits, and therefore, just
- comparing against != 0 (like ACE_BIT_ENABLED does) is not enough
- and comparing == BIT is necessary.
-
-Thu Aug 21 19:28:28 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU (depend.local): If TAO_ROOT
- is not set, don't try using it in sed.
-
- * bin/g++dep: Check the existence of the TAO_ROOT environment
- variable before adding it to the relative pathname replacement
- strategy.
-
-Thu Aug 21 16:29:02 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: added THR_JOINABLE and THR_SCHED_FIFO/RR/DEFAULT
- to STHREADS, WTHREADS, and non-threaded platforms. On VxWorks
- only, set NSIG to _NSIGS + 1.
-
- * ace/config-vxworks*.h: removed ACE_HAS_POSIX_SEM now that we
- emulate it for VxWorks.
-
- * tests/Priority_Task_Test.cpp: use THR_SCHED_FIFO unconditionally
- now that it's defined on all platforms.
-
- * include/makeinclude/platform_chorus.GNU,
- platform_hpux_gcc.GNU,
- platform_linux*.GNU,
- platform_m88k.GNU,
- platform_osf1_4.0_g++.GNU,
- platform_sco*.GNU,
- platform_sunos*_g++.GNU,
- platform_unixware_g++.GNU,
- g++ only: replaced PRELIB with "true" because it's not
- needed for template instantiation. The old PRELIB no longer
- worked without -lACE being added to LIBS in individual Makfiles.
- The only reason to leave PRELIB defined to something is so that
- the shared object definitions will be correct in rules.lib.GNU.
- That should be fixed after 4.3 is released.
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU:
- PRELIB no longer needed with explicit template instantiation.
-
-Thu Aug 21 12:38:26 1997 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x.h: Removed extraneous #endif
-
-Thu Aug 21 12:21:16 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.h (THR_JOINABLE): Defined this macro for Win32 as 0.
-
-Wed Aug 20 22:36:52 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.44, released Wed Aug 20 22:36:52 1997.
-
-Wed Aug 20 18:28:28 1997 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x.h: Made some definitions dependent on the
- HP-UX version that is compiling the code.
-
- * ace/Filecache.(cpp h): Moved the definition of ACE_Filecache_Object
- from .cpp to .h to help AIX xlC's template instantiator along.
-
- * apps/Gateway/Peer/Peer.(cpp h): Moved the definition of Peer_Handler
- from .cpp to .h to help AIX xlC's template instantiator along.
-
- * include/makeinclude/platform_(hpux hpux_aCC hpux_gcc).GNU: Added
- a compiler option to define HPUX_VERS with the current OS version.
- Used in the config-hpux-10.x.h file.
-
-Wed Aug 20 13:44:16 1997 Carlos O'Ryan <coryan@mambo.cs.wustl.edu>
-
- * ace/config-unixware-2.1.2-g++.h:
- Unixware does not define timespec_t. Thanks to Ganesh Pai
- <gpai@voicetek.com> for pointing out this one.
-
-Wed Aug 20 11:37:44 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.bin.GNU,platform_vxworks5.x_g++.GNU:
- added POSTLINK to build symbol table.
-
-Wed Aug 20 07:43:14 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.43, released Wed Aug 20 07:43:14 1997.
-
-Tue Aug 19 08:25:28 1997 Steve Huston <shuston@riverace.com>
-
- * tests/Barrier_Test.cpp: Added THR_JOINABLE to the flags for
- creating threads - allows join to work on platforms that create
- threads detached by default (i.e. AIX).
-
- * tests/Process_Strategy_Test.cpp: If the final ACE_OS::kill() fails,
- don't ACE_OS::wait() for the process.
-
- * ace/config-aix-4.2.x.h: Added ACE_HAS_BROKEN_POSIX_TIME. Commented
- out ACE_HAS_AIX_BROKEN_SOCKET_HEADER. Added ACE_HAS_PTHREAD_T,
- and will now not use tid_t for any ACE types. Rearranged things
- to start clarifying items.
-
- * ace/config-hpux-10.x.h: Removed ACE_HAS_SETKIND_NP and adjusted
- other, more meaningful, threads-related definitions to match what
- HP 10.10 and 10.20 have for threads. This matches changes to OS.*
-
- * ace/OS.(h i cpp): Removed use of ACE_SETKIND_NP in an effort to
- simplify the variety of threads-capability definitions. The only
- platforms which used ACE_HAS_SETKIND_NP were HP-UX (see above) and
- OSF/1 V3.2 (which has the same threads package as HP-UX). OSF/1
- V3.2 may require some adjustments per this change - it probably
- should be changed to match HP-UX. OSF/1 V4 (aka Digital UNIX)
- is not affected by this change.
-
- * ace/Log_Msg.cpp: Changed the 't' format (thread ID) to call
- thread_self() directly on AIX.
-
-Mon Aug 18 21:39:33 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.42, released Mon Aug 18 21:39:33 1997.
-
-Mon Aug 18 20:22:14 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * apps/Gateway/Peer/Makefile:
- No need to define LIBS=-lACE here, its already done in
- wrapper_macros.GNU. Thanks to Cary Clark <claca@iccokc.com>
- for helping in this effort.
-
-Mon Aug 18 19:54:36 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.{h,i} (open, mutex_init, sema_init, event_init, mmap):
- Added an extra argument LPSECURITY_ATTRIBUTE with default value
- 0 to all these methods so that we can modify objects' security
- attributes when needed. Thanks to Ivan Murphy for pointing this
- out.
-
-Mon Aug 18 19:50:13 1997 Carlos O'Ryan <coryan@mambo.cs.wustl.edu>
-
- * examples/Service_Configurator/Makefile:
- * examples/Service_Configurator/IPC-tests/server/Makefile:
- * apps/Gateway/Gateway/Makefile:
- * examples/Connection/non_blocking/Makefile:
- $(SOEXT) must be used instead of just .so, the former does not
- work on all platforms, notably HP-UX. Thanks to Cary Clark
- <claca@iccokc.com> for helping in this effort.
-
-Mon Aug 18 19:46:27 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * ace/OS.i:
- Added support for the missing netdb reentrant functions, even
- under IRIX 6.2 with no threads. Thanks Paul Roman
- <proman@npac.syr.edu> for reporting this.
-
-Mon Aug 18 12:53:16 1997 David Levine <levine@merengue.cs.wustl.edu>
-
- * tests/Barrier_Test.cpp (tester): VxWorks doesn't support
- thr_join(). Therefore, we need to work around it for now.
- Maybe Wind River will fix it at some point.
-
-Mon Aug 18 12:38:52 1997 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.2.x.h: Removed ACE_HAS_SVR4_TIME, added
- ACE_LACKS_TIMESPEC_T.
-
-Mon Aug 18 12:00:31 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * ace/config-mvs.h:
- MVS does not define timespec_t either. Thanks to Chuck
- Gehr for reporting this.
-
-Mon Aug 18 10:41:05 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * ace/OS.h:
- * ace/README:
- On some platforms timespec_t is not defined. We added a new
- config macro (ACE_LACKS_TIMESPEC_T) to handle that and we do a
- typedef to solve the problem.
-
- * ace/config-freebsd-pthread.h:
- * ace/config-freebsd.h:
- * ace/config-linux-lxpthreads.h:
- * ace/config-linux-pthread.h:
- * ace/config-linux.h:
- These are *some* config files that needed changes due to the new
- timespec_t stuff.
-
-Mon Aug 18 09:34:11 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_Thread_Adapter): rearranged initializers to
- match declaration order.
-
- * ace/Log_Record.h: declare "class ostream" if
- ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION Log_Record.h.
-
- * ace/IOStream.h,Log_Msg.cpp,Log_Record.cpp,
- tests/test_config.h: include iostream.h instead of ace/stdcpp.h
- if ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
-
- * ace/config-vxworks*.h: added ACE_LACKS_TIMESPEC_T.
-
-Sun Aug 17 20:58:56 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.41, released Sun Aug 17 20:58:56 1997.
-
-Sun Aug 17 17:02:53 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * ace/config-irix6.x-sgic++-nothreads.h:
- * ace/config-irix6.x-sgic++.h:
- * include/makeinclude/platform_irix6.x-sgic++.GNU:
- Finally a single config.h and platform_macros.GNU file can be use
- for all the IRIX 6.X versions.
- On SGI machines we need a higher value for
- ACE_DEFAULT_BASE_ADDR, we used 1024*1024*1024, which works on
- our site, but your mileage may vary.
-
- * include/makeinclude/platform_irix6.2_sgic++.GNU:
- * include/makeinclude/platform_irix6.4_sgic++.GNU:
- * ace/config-irix6.2-sgic++-nothreads.h:
- * ace/config-irix6.2-sgic++.h:
- * ace/config-irix6.4-sgic++-nothreads.h:
- * ace/config-irix6.4-sgic++.h:
- These files are no longer needed, see above.
-
- * ace/README:
- * ace/ACE.cpp:
- * ace/OS.h:
- * ace/OS.i:
- * ace/Profile_Timer.cpp:
- * ace/Profile_Timer.h:
- We no longer use timestruct_t in ACE, it is a SYSVism; we use
- timespec_t instead. Hence we have no need for the config
- macro ACE_HAS_SVR4_TIME, but we keep it there for future
- reference.
-
- * tests/Reader_Writer_Test.cpp:
- On IRIX using ACE_Thread::yield() degraded performance for
- multiprocessor machines, but worse, the test will not behave as
- expected: instead of interleaving read/write locks over the
- RW_Mutex it will make all the write locks first and then the read
- locks. The test uses ACE_OS::sleep() for yielding the CPU,
- and it uses different pauses for each thread (see code for
- details). Further, it yields the CPU *before* taking the
- lock, to give other threads a chance.
-
-Sat Aug 16 18:17:10 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.40, released Sat Aug 16 18:17:10 1997.
-
-Sat Aug 16 18:13:22 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ReactorEx.cpp (add_network_events_i): Revised the code to
- use the ACE_BIT_CMP_MASK and ACE_SET_BITS macros to simplify the
- code.
-
- * ace/OS.h: Added a new macro called ACE_BIT_CMP_MASK which checks
- if a "bit-wise" & with a word == a particular mask.
-
- * ace/OS.cpp (thr_create): If we're in the Pthreads implementation
- then we assume that ACE_thread_t and ACE_hthread_t are the same.
- If this *isn't* correct on some platform, please let us know.
- Thanks to Carlos O'Ryan <coryan@cs.wustl.edu>.
-
- * ace/Auto_Ptr.cpp: Reverted the changes of ACE_Auto_Ptr to
- auto_ptr since we want to be Standard C++ Library compliant.
- However, we only define auto_ptr if ACE_HAS_STANDARD_CPP_LIBRARY
- is *not* enabled.
-
- * Removed the INSTALL file since this is redundant with the HTML
- version of this file (ACE-INSTALL.html). Thanks to David Levine
- for doing the legwork to merge this.
-
-Sat Aug 16 15:11:24 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Auto_Ptr.h: Put in an #include <memory> (for auto_ptr) if
- the standard C++ library is being used.
-
- * ace/Auto_Ptr.*: Changed the checks for ACE_HAS_STANDARD_CPP_LIBRARY
- to also check to see if it is defined to 0 (which means the same
- as it not being defined).
-
- * ace/ReactorEx.cpp: Changed the use of auto_ptr to work with
- the one in the Standard C++ library.
-
- * ace/config-win32-common.h: Added ACE_HAS_BROKEN_NESTED_TEMPLATES
- and ACE_LACKS_STL_DEFAULT_TEMPLATE_PARAMETER for the MSVC versions
- that need them.
-
- * ace/Registry.cpp: changed some variable names from iterator to
- iter to prevent conflicts with another variable
-
- * ace/Registry.cpp:
- STL/bstring.h:
-
- Changed references of NPOS to Istring::npos
-
-Sat Aug 16 14:17:07 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * ace/Auto_Ptr.i:
- * ace/Auto_Ptr.cpp:
- Some code was only included if ACE_HAS_STANDARD_CPP_LIBRARY was
- defined; but the intention was exactly the opposite.
-
-Sat Aug 16 14:33:26 1997 David L. Levine <levine@cs.wustl.edu>
-
- * README,FAQ,Makefile: changed references from INSTALL file
- to ACE-INSTALL.html.
-
-Fri Aug 15 19:51:52 1997 <irfan@TWOSTEP>
-
- * ace/Auto_Ptr.h: A rarely used piece of ACE code has changed
- names because of name conflicts with the Microsoft Standard C++
- Library. The change is from auto_ptr to ACE_Auto_Ptr. A perl
- script ($ACE_ROOT/bin/auto_ptr.perl) is provided for users to
- change their code accordingly.
-
- The following files were effected:
-
- ace: ACE.cpp Auto_Ptr.cpp Auto_Ptr.h Auto_Ptr.i OS.h
- ReactorEx.cpp Service_Config.cpp Service_Object.h
-
- examples/Threads: future1.cpp future2.cpp test_future1.cpp
- test_future2.cpp
-
- tests: Future_Test.cpp
-
-Fri Aug 15 17:41:28 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.39, released Fri Aug 15 17:41:28 1997.
-
-Fri Aug 15 13:33:04 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.h (ACE_DEFAULT_GLOBALNAME_W): Moved pathname delimiter
- from ACE_DEFAULT_{LOCAL|GLOBAL}NAME_* to
- ACE_DEFUALT_NAMESPACE_DIR on NT. We need to append local/global
- name to get a unique mutex name for naming service. NT won't
- let us put a backslash in lock name. ;(
-
-Fri Aug 15 14:50:26 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Makefile: Moved ARGV from the TEMPLATES section to the FILES
- section; now builds on AIX.
-
- * ace/config-hpux-10.x.h: Don't redefine _HPUX_SOURCE. Move the
- ACE_HAS_REENTRANT_FUNCTIONS and ACE_CTIME_R_RETURNS_INT to the
- build-with-threads section. Thanks to Neil Cohen <nbc@metsci.com>
- for helping to flush these problems out.
-
- * tests/Makefile: If building on AIX, wipe out the tempinc directory
- before each compilation to keep the driver from compiling all
- prior programs' template instantiations in every link step.
-
-Fri Aug 15 13:07:26 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Signal.cpp (remove_handler): Added some additional
- parameters to ACE_Sig_Action usages in order to get this stuff
- to compile with G++ on SunOS 4.1.4. Thanks to Kumar Neelakantan
- <kneelaka@PaineWebber.COM> for reporting this.
-
- * ACE version 4.2.38, released Thu Aug 14 23:07:26 1997.
-
-Fri Aug 15 13:33:04 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Naming_Context.cpp (ACE_Naming_Context): Moved the deletion
- of name_options_ from close to dtor of this class so that we can
- reconfigure the naming context.
-
-Fri Aug 15 10:28:14 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.cpp: Changed uname() for Win32 so it returns information
- for Windows 95 and NT.
-
-Thu Aug 14 18:06:37 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.[hi] (strsplit_r): Added a new method which splits a
- string separated by tokens, similar to the way that perl's
- split() works. This is different from the strtok() family b/c
- for the string ":/foo:/bar::boo", strtok() would return "/foo",
- "/bar", "boo", while strsplit_r() returns "", "/foo", "/bar",
- "", "boo". This method is also properly re-entrant, and thus
- safe to use among multiple threads.
-
- * ace/ACE.cpp (ldfind): Fixed this so that it now properly deals
- with paths containing empty components intended to indicate
- 'current directory'.
-
-Thu Aug 14 17:30:36 1997 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x.h - Add ACE_LACKS_CONST_STRBUF_PTR, remove
- ACE_HAS_POSIX_SEM, clarify comments regarding setting of
- _CMA_NOWRAPPERS_ - thanks to Cary Clark <claca@iccokc.com> for
- helping in this effort.
-
-Thu Aug 14 16:14:47 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp (print_ave,print_total): fixed format
- specification for total_secs to be lu instead of lld.
-
-Thu Aug 14 14:06:37 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/ARGV.cpp: Completed the explicit template instantiations for
- this component.
-
-Thu Aug 14 11:27:03 1997 Edward Everett Anderson <eea1@polka.cs.wustl.edu>
-
- * ace/ARGV.* (argv):
-
- * Added another behavior to ACE_ARGV -- a user can iteratively
- build the parameter set with add(). Made the class more
- consistent so that accessors work no matter which constructor is
- used.
-
-Thu Aug 14 10:14:37 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * Made several changes to allow ACE to work with the new standard
- C++ header files, such as <cstdio> and the built in STL. Thanks
- to Matthias Kerkhoff <make@cs.tu-berlin.de> for these changes.
- The default is to use the old headers, unless the
- ACE_HAS_STANDARD_CPP_LIBRARY is defined as 1.
-
- * ace/config-win32-common.h:
- ace/config-win32.h:
-
- - Added ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB flag to
- distinguish compilers who have the standard C++ library
- declared in the namespace std and those who use the global
- namespace for it
-
- - Enabled ACE_HAS_SIG_ATOMIC_T and ACE_HAS_TYPENAME_KEYWORD for
- MSVC 5
-
- - Changed the semantics of ACE_HAS_STANDARD_CPP_LIBRARY from
- [defined/undefined] to [(undefined or defined as 0)/defined != 0]
- to allow the choice between the old iostream and standard C++
- library for those platforms that support both
-
- - Don't define the ACE_LACKS_IOSTREAM_FX when building with MSVC
- 5.0 and the standard C++ library.
-
- - If __ACE_INLINE__ is defined as 0, config-win32-common.h
- undefines __ACE_INLINE__ to decrease the size of libraries and
- executables.
-
- * ace/IOStream.cpp: Moved the #ifdef ACE_LACKS_ACE_IOSTREAM up to the
- proper place
-
- * ace/IOStream.h:
- ace/IOStream_T.h:
- ace/Log_Msg.cpp:
- ace/Log_Msg.h:
- ace/Log_Record.cpp:
- ace/Log_Record.h:
- examples/ASX/Message_Queue/*.dsp:
- examples/OS/Process/*.dsp:
- examples/Threads/*.dsp:
- examples/Threads/barrier2.cpp:
- examples/Threads/task_three.cpp:
- netsvcs/lib/Logging_Strategy.cpp:
-
- Updated to including stdcpp.h instead of <iostream.h>,
- <iomanip.h>, <fstream.h>, etc.
-
- * ace/OS.h: Updated to use stdcpp.h instead of including the
- normal C headers. Moved the includes into stdcpp.h to allow
- switching between the old and new versions
-
- * ace/Registry.h: Changed to use the standard C++ headers for STL
- and added a typedef Name_Component and Binding to
- ACE_Registry::* to help some unresolved problems.
-
- * tests/Hash_Map_Manager_Test.cpp:
- tests/test_config.h:
-
- Updated to #include ace/stdcpp.h instead of <iostream.h> and
- <fstream.h>
-
- * ace/stdcpp.h: Updated to include more of the new standard C++
- header files, and also promote some of the iostream classes to
- the global namespace.
-
- * ace/ace.dsp:
-
- - Added some folders like Templates and Documentation
- - Added some files that were missing to the project
- - Enabled function level linking for debug projects
- - Set it to "Not using MFC"
- - Removed wsock32.lib from the project settings (since
- config-win32-common.h will tell the linker to use the correct
- winsock library)
- - Removed some other unnecessary libraries (OLE) from the
- project.
-
-Wed Aug 13 23:02:45 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.37, released Wed Aug 13 23:02:45 1997.
-
-Wed Aug 13 13:26:27 1997 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * tests/Barrier_Test.cpp (main): Fixed the test of the ACE_Barrier
- class so that it doesn't leak handles. This also illustrates
- the use of the ACE_Thread::join() and
- ACE_Thread_Manager::spawn_n() methods. Thanks to Ivan Murphy
- for pointing this out.
-
- * ace/Thread_Manager.cpp (spawn_n): Note that if we get a null
- thread_ids parameter we shouldn't try to index into it!
-
- * include/makeinclude/rules.local.GNU (OBJDIRS): Added
- so_locations to the list of directories cleaned up during a make
- clean/realclean. Thanks to Amos Shapira for reporting this.
-
- * ACE version 4.2.36, released Wed Aug 13 07:30:10 1997.
-
- * include/makeinclude/platform_irix6.[x-]32_sgic++.GNU: Added a
- -Wl,-woff,133 to LDFLAGS to make the linker shutup about branch
- instructions that might degrade performance
- (what does this mean?). Thanks to Amos for this.
-
- * tests/test_config.h: Fixed a typo (ourput_file() should be
- output_file()). How on earth did this ever work?! Thanks to
- Amos Shapira for reporting this.
-
- * ace/Message_Queue.cpp: Added a couple of new ACE_UNUSED_ARGs
- Thanks to Amos Shapira for reporting this.
-
- * ace/OS.cpp (gethrtime): ACE_OS::gethrtime should cast its return
- value to ACE_hrtime_t instead of (u_long long). Thanks to
- Amos Shapira for reporting this.
-
-Wed Aug 13 14:51:47 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/SString.[i,cpp]: moved some inline methods from the .i into
- the .cpp so the Win32 Unicode Release compiles with inlining.
-
-Wed Aug 13 01:14:08 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * tests/test_config.h (ACE_NEW_THREAD): Removed
- ACE_Log_Msg::set_flags/clr_flags from this macro because
- ACE_Log_Msg::flags is a static variable. We really don't need
- to reset them when creating new threads. Once VxWorks can also
- inherit ACE_Log_Msg's properties, we no longer need this macro.
-
- * ace/Log_Msg.h: Added trace_depth() functions. They are required
- for inheriting ACE_Log_Msg's properties.
-
- * ace/OS.cpp: Changed ACE_Thread_Adapter implementation so that
- newly created threads will inherit properties from their parent
- threads. This is the default behavior and is valid on all
- platform except VxWorks. If you don't want it and would like to
- arrange the properties propagation yourself, you must define
- ACE_THREADS_DONT_INHERIT_LOG_MSG in your ace/config.h file. Now,
- creating a new thread will go thru ace_thread_adapter on all
- platform except VxWorks. If ACE_THREADS_DONT_INHERIT_LOG_MSG is
- defined but your platform defines ACE_HAS_THR_C_FUNC or
- ACE_WIN32, creating new threads still need to use
- ace_thread_adapter. This change also fixes a previous problem
- which let threads access another thread's TSS.
-
-Tue Aug 12 21:57:30 1997 David L. Levine <levine@cs.wustl.edu>
-
- * etc/ACE-guidelines.html: added.
-
-Tue Aug 12 16:54:33 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Added Chuck Gehr's explanation of how to build ACE for MVS to
- the ACE-INSTALL.html file at http://www.cs.wustl.edu/~schmidt/.
-
- * ace/OS.i: changed the name of ACE_U_LongLong::dump() to
- ACE_U_LongLong::output(). Also moved some of the code that was
- inlined in the class definition into the *.i file.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: Added a template
- specialization for ACE_Atomic_Op<ACE_Thread_Mutex, u_long> to
- make things link with SGI and other systems that have long
- different than int. Thanks to Amos Shapira for reporting this.
-
- * ace/Reactor.cpp (close): Removed the #ifdefs around
- notify_handler_.open () and notify_handler_.close() since this
- is now supposed to be available on all build configurations.
- Thansk to Stefan Ericsson for reporting this.
-
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
- Removed a static variable that seemed to be causing problems for
- SGI C++. Also, removed the now unnecessary "inherited" from
- Handle_Thr_Acceptor.
-
- * examples/ASX/UPIPE_Event_Server/Peer_Router.h,
- * netsvcs/lib/Log_Message_Receiver.h: Added an
- ACE_UNIMPLEMENTED_FUNC macro for the assignment operator to work
- around silly "features" of SGI C++...
-
- * include/makeinclude/platform_irix6.[x-]32_sgic++.GNU: Added some
- additional patches to suppress warning code. Thanks to Torbjorn
- Lindgren <tl@funcom.no> for this fix.
-
- * include/makeinclude/platform_mvs.GNU: Changed all occurrences of
- "MVSLIB" to "ACELIB". Thanks to Chuck Gehr for reporting this.
-
-Tue Aug 12 15:03:42 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Timer_Hash_T.cpp, Timer_Wheel_T.cpp: Replaced references to
- ACE_High_Res_Timer::gettimeofday with ACE_OS::gettimeofday.
- The High Res version is deprecated, and doesn't work
- correctly on HP-UX.
-
-Tue Aug 12 07:51:02 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.35, released Tue Aug 12 07:51:02 1997.
-
-Mon Aug 11 22:30:39 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: disabled
- automatic template instantiation, because we use explicit
- template instantiation, via a #pragma, with Green Hills.
- Thanks to Brian Mendel <brian.r.mendel@boeing.com> for
- finding the compiler options.
-
-Mon Aug 11 17:45:44 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.cpp (ace_thread_adapter): Changed the code so that TSS
- ACE_Log_Msg will get created and put into cleanup stack first no
- matter there is other ACE_Log_Msg instances or not. This fixed
- the "order of destruction" problem on Win32 platform. Thanks to
- Irfan for digging this out and helping solving it.
-
-Mon Aug 11 07:25:29 1997 <irfan@TWOSTEP>
-
- * examples/Reactor/ReactorEx/test_reactorEx.cpp: Updated this
- example to use the new Proactor and Asynch IO interfaces.
-
- * ace/Connector.cpp (activate_svc_handler): Fixed the "leak" of
- svc_handler in case of error. Thanks to Wei Chiang
- <chiang@tele.nokia.fi> for reporting this.
-
-Mon Aug 11 01:11:26 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.34, released Mon Aug 11 01:11:26 1997.
-
-Mon Aug 11 01:06:02 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Queue.cpp (enqueue_tail_i): Inadvertantly
- added "signal_dequeue_waiters()" where I meant
- "signal_enqueue_waiters()."
-
- * include/makeinclude/wrapper_macros.GNU: Fixed a typo in the
- wrapper_macros.GNU file that was causing link errors.
-
-Sun Aug 10 11:35:06 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Queue.cpp: To make sure that we have correctly
- signaled waiters the signal_enqueue_waiters() and
- signal_dequeue_waiters() methods now check the return value from
- the semaphore release if ACE_HAS_OPTIMIZED_MESSAGE_QUEUE is
- enabled.
-
- * include/makeinclude/wrapper_macros.GNU (VLDLIBS): Added a
- new macro called ACELIB that can be used to make it easier
- to enable static linking for ACE, i.e.:
-
- ACELIB = -Bstatic -lACE -Bdynamic
-
- or
-
- ACELIB = $(ACE_ROOT)/ace/libACE.a
-
- Can be added to the individual platform_macros.GNU file. This
- allowed us to remove special code for MVS in wrapper_macros.GNU.
- Thanks to Chuck Gehr for this fix.
-
- * netsvcs/lib: Added some comments after the #endifs.
-
- * ace/Filecache.cpp (insert_i): Updated the code so that we use
- ACE_NEW_RETURN rather than operator new. This macro will
- protect against failed allocations.
-
-Sat Aug 9 22:08:50 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Added two new config files:
-
- config-irix6.x-sgic++.h
- config-irix6.x-sgic++-nothreads.h
-
- This should hopefully consolidate the SGI platform
- configuration. Thanks to Torbjorn Lindgren <tl@funcom.no> for
- this fix.
-
- * include/makeinclude: Added two new platform macro files:
-
- platform_irix6.x-n32_sgic++.GNU:
- platform_irix6.x-32_sgic++.GNU
-
- This should hopefully consolidate the SGI platform macros.
- Thanks to Torbjorn Lindgren <tl@funcom.no> for this fix.
-
- * ace/Filecache.cpp: Fixed the syntax of the SGI pragma stuff.
- Thanks to Torbjorn Lindgren <tl@funcom.no> for reporting this.
-
- * ace/Name_Request_Reply.h: Changed MAX_NAME_LEN to MAX_NAME_LENGTH
- to avoid problems with Solaris 2.6. Thanks to Thanh Ma <tma@encore.com>
- for reporting this.
-
-Sat Aug 9 12:10:35 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/config-win32-common.h (ACE_HAS_WINSOCK2):
- * ace/config-win32.h (ACE_HAS_WINSOCK2): Rearranged definition of
- this so that users can overwrite the default setting and choose
- older Winsock if they want. No action needed for most NT
- useres. Thanks to jmorey@tbi.com (John Morey) for pointing this
- out.
-
-Sat Aug 09 11:28:36 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Profile_Timer.i: ACE_HAS_GETRUSAGE and !ACE_HAS_PRUSAGE
- platforms now use ACE_OS::gettimeofday rather than
- ACE_High_Res_Timer::gettimeofday in start() and stop() methods.
-
- * tests/Sigset_Ops_Test.cpp: adjusted test for sigismember() with
- out-of-range signum to separately test return value and errno.
- Also, returns non-zero from program on failed test.
-
-Fri Aug 08 17:39:43 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.33, released Fri Aug 08 17:39:43 1997.
-
-Fri Aug 08 02:50:31 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ace/Message_Queue: Factored out the code that differs depending
- on whether we are using the optimized ACE_Message_Queue
- implementation (i.e., VxWorks and NT). This change makes it
- easier to maintain the code. Thanks to Darrell for helping with
- this.
-
- * ace/Log_Msg.cpp (close): Fixed a couple of typos in this code,
- in particular, we need to make sure that we don't call
- ACE_Log_Msg_Manager::close() if we aren't multi-threaded.
-
- * ACE version 4.2.32, released Fri Aug 08 02:50:31 1997.
-
-Fri Aug 8 13:17:21 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.* (strtoul): Added the OS function strtoul() to turn
- strings into unsigned longs.
-
-Fri Aug 8 12:26:54 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp: Fixed some comments and removed unused code
- I erroneously added August 6.
-
- * ace/config-hpux-10.x.h: Fixed to not always compile tracing code.
-
- * tests/test_config.h: ACE_END_TEST and ACE_END_LOG macros direct
- log output back to stderr when shutting off the file output.
-
- * tests/TSS_Test.cpp: Removed ACE_Thread_Control object from the main
- thread - it served no purpose and didn't work on HP-UX (due to
- a documented pthread_exit restriction). Also changed a 'delete
- ptr' to a call on operator delete (void *).
-
-Fri Aug 8 09:17:21 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/Service_Repository.h (operations.): Improved documentation
- on find().
-
-Fri Aug 8 00:01:43 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Log_Msg.cpp (close): Moved ACE_Log_Msg::close() out of
- ACE_MT_SAFE block so it always exists. This function only takes
- care of non-VxWorks platforms.
-
- (instance): Removed at_exit() call since the instances will be
- taken of by TSS_Cleanup.
-
- * ace/Object_Manager.cpp (~ACE_Object_Manager): Removed condition
- compilation so it always calls ACE_Log_Msg::close().
-
-Thu Aug 7 23:36:26 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Reactor.h: Added the renew() method and the notify_handler_
- data member to all compilation cases, not just for
- multi-threading.
-
- * ace/Service_Config.h: Clarified the fact that argv[0] is the
- program name. Thanks to Chris Cleeland for pointing this out.
-
- * ace/config-mvs.h: Added the ACE_HAS_TEMPLATE_SPECIALIZATION flag
- thanks to Chuck Gehr.
-
- * include/makeinclude/platform_irix6.2_sgic++.GNU: Turned on
- exceptions and turned off implicit template instantiation.
- Thanks to Amos Shapira <amos@gezernet.co.il> for reporting the
- former.
-
- * ace/config-irix6.2-sgic++.h: Also added the
- ACE_HAS_TEMPLATE_SPECIALIZATION flag and changed the
- platform_irix6.2.GNU file to not implicitly initialize
- templates. If this breaks something, please let me know.
-
- * ace/config-irix6.2-sgic++.h: Added the ACE_HAS_EXCEPTIONS flag.
- Thanks to Amos Shapira <amos@gezernet.co.il> for reporting this.
- However, there is some question as to whether this will work.
- If it doesn't, please let me know.
-
- * ace/Reactor: Moved the ACE_Reactory_Notify class out from the
- ACE_MT_SAFE section into the main code since this should work
- for non-threaded builds, as well. Thanks to Stefan Ericsson
- <uabsjen@osd.ericsson.se> for reporting this.
-
- * ace/config-chorus.h: Added the ACE_HAS_TEMPLATE_SPECIALIZATION
- flag. Thanks to Wei Chiang for this.
-
-Thu Aug 7 19:09:35 1997 Steve Huston <shuston@riverace.com>
-
- * tests/Hash_Map_Manager_Test.cpp - split definition of Dumb_String
- class to a new header, Hash_Map_Manager_Test.h. This makes AIX
- C Set ++ happy.
-
- * tests/Process_Strategy_Test.cpp - split definitions of Options
- and Counting_Service classes to Process_Strategy_Test.h for AIX
- C Set ++'s benefit.
-
-Thu Aug 7 15:27:28 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.h: Fixed typo in the definition of ACE_SYNCH_1 and
- ACE_SYNCH_2 for ACE_HAS_OPTIMIZED_MESSAGE_QUEUE
-
-Thu Aug 7 13:05:20 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/Strategies_T.h: Changed the argument to ACE_DLL_Strategy
- from ACE_Service_Config to ACE_Service_Repository, which is more
- concrete.
-
- * bin/g++dep (REL): Added sed rule so that TAO's dependencies are
- set relative to $TAO_ROOT as well as $ACE_ROOT when the '-r'
- option is utilized.
-
- * include/makeinclude/platform_linux_lxpthread.GNU (CCFLAGS): The
- -Wall option can now be used. It only generates two warnings
- throughout all of ACE!
-
- * include/makeinclude/rules.local.GNU (depend.local): Modified
- this target so that TAO's dependencies are set relative to
- $TAO_ROOT as well as $ACE_ROOT.
-
-Thu Aug 7 12:03:48 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * ace/Filecache.{h,cpp}: Fixed unused variable found by Amos
- Shapira. Fixed TEMPLATE_SPECIALIZATION dependency, sort of. Do
- not attempt to use Filecache if you do not support
- TEMPLATE_SPECIALIZATION.
-
-Thu Aug 07 00:19:12 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.31, released Thu Aug 07 00:19:12 1997.
-
-Wed Aug 6 22:20:54 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch_T.h: Replaced all uses of ACE_Null_Condition_Mutex
- with ACE_Null_Condition, which is much more straightforward...
-
- * ASNMP: Added Mike MacFaden's changes for IRIX.
-
-Wed Aug 6 16:37:51 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp: Changed implementation back to use a
- single sentinel_ rather than an array of them.
-
- * ace/Filecache.{h,cpp}: Total re-implementations. Fewer locks
- acquired and released when there is a cache hit.
-
-Wed Aug 06 12:55:26 1997 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.(h cpp):
- (ACE_Log_Msg_Manager) - Removed most of the non-VxWorks
- pieces - there's just a lock left; the instances_ was removed
- (ACE_Log_Msg) - Use ACE_Object_Manager to remove per-thread
- instances of ACE_Log_Msg rather than using ACE_Log_Msg_Manager.
- The use of an ACE_Unbounded_Set to hold the ACE_Log_Msg pointers
- in previous versions caused some non-tail recursion problems when
- tracing was enabled.
- Uses an instance count to know when it's safe to free the dynamically
- allocated class-static memory.
-
- * ace/Trace.(h cpp): Added new static member function:
- int is_tracing(void) - returns 1 if tracing is enabled, else 0.
-
- * ace/Object_Manager.(h cpp): Added a flag to indicate the object is
- being destroyed - during destruction, ACE_Object_Manager now refuses
- to register any new memory pointers. Also turns tracing off during
- destruction - ACE_Log_Msg makes use of ACE_Object_Manager, so we
- don't want ACE_Log_Msg instance being deleted, then created for a
- ACE_TRACE, then deleted, then created,...
-
-Wed Aug 06 03:35:41 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.30, released Wed Aug 06 03:35:41 1997.
-
-Wed Aug 6 00:13:27 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler.cpp: We only need to
- instantiate ACE_Svc_Handler<LOGGING_PEER_STREAM, ACE_SYNCH> when
- ACE_HAS_THREADS. Otherwise, we'll have duplicate symbols
- defined on platforms that do not support threads.
-
-Tue Aug 5 19:52:36 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Containers: Added a new reset method for ACE_Unbounded_Set.
- Thanks to Arturo Montes <mitosys@colomsat.net.co> for
- reporting this.
-
- * ace: Changed most uses of ACE_LACKS_COND_T to
- ACE_HAS_OPTIMIZED_MESSAGE_QUEUE to make it possible to toggle
- between the emulated condition variable implementation of
- ACE_Message_Queue and the semaphore implementation. We need
- this until we fully test out the semaphore implementation of
- ACE_Message_Queue.
-
- * ace/Object_Manager.cpp (ACE_Object_Manager): Only call the
- ACE_Log_Msg::close() method if ACE_MT_SAFE is enabled! Thanks
- to Satoshi Ueno <satoshi.ueno@gs.com> for reporting this.
-
- * ace/Malloc.h: Added a fix for misalignment of data in the
- ACE_CONTROL_BLOCK_ALIGN_LONGS macro. Thanks to Fred LaBar
- <flabar@fallschurch.esys.com> for this fix.
-
- * ace/ACE.cpp: (enter_recv_timedwait,enter_send_timedwait): Always
- give val a default value of 0 to make Purify happy. Thanks to
- David Levine for reporting this.
-
- * netsvcs/clients/Tokens/rw_lock/rw_locks.cpp,
- netsvcs/clients/Tokens/manual/manual.cpp,
- netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp:
- Removed unreachable statements. Thanks to Cherif Sleiman
- <sleiman@research.moore.com> for reporting this deficiency and
- testing the fix.
-
-Tue Aug 5 16:41:06 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Synch_T.h: Added some more ACE_LACKS_COND_T changes for compilers
- without template typdefs.
-
-Tue Aug 5 11:50:43 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Message_Queue.h: Fixed typos for the case when
- ACE_LACKS_COND_T.
-
-Tue Aug 05 11:02:11 1997 <irfan@TWOSTEP>
-
- * tests/Atomic_Op_Test.cpp (main): Made sure that on platforms
- without threads, we don't try to run this test.
-
-Tue Aug 05 09:15:40 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: removed
- -no_prelink from LDFLAGS because ghs 1.8.8 doesn't support it.
- Thanks to Cherif Sleiman <sleiman@research.moore.com> for
- reporting this.
-
- * ace/Service_Record.cpp: added #include "ace/Stream_Modules.h"
- to support template instantiation on GreenHills, at least.
- Thanks to Cherif Sleiman <sleiman@research.moore.com> for
- reporting this deficiency and testing the fix.
-
- * ace/config-vxworks-ghs-1.8.h: added
- ACE_LACKS_LINEBUFFERED_STREAMBUF. Thanks to Cherif Sleiman
- <sleiman@research.moore.com> for reporting this.
-
-Mon Aug 4 22:47:54 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Queue: Fixed consistency problems in naming notfull
- vs. not_full. Thanks to David Levine for finding this.
-
- * ace/Message_Queue: Added specialized support for cases where
- ACE_LACKS_COND_T (e.g., VxWorks and NT). This scheme uses
- ACE_Thread_Semaphores in this case, which should be more
- efficient).
-
- * ace/Synch_T.h: Added a new set of macros and typedefs for
- ACE_SYNCH_SEMAPHORE.
-
- * examples/ASX/Message_Queue: Cleaned up all the Message_Queue
- examples.
-
- * examples/ASX/Message_Queue/buffer_stream.cpp: Added a
- NUL-terminator to the program so that it won't break. Thanks to
- Darrell for finding this.
-
- * ace/Reactor.cpp (wait_for_multiple_events): Fixed some
- stylistic problems in the Reactor.
-
- * ace/Synch.cpp (ace_static_object_lock_atexit): Changed from:
-
- extern "C" static void
-
- to:
-
- extern "C" void
-
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for this.
-
-Mon Aug 4 14:03:22 1997 Steve Huston <shuston@riverace.com>
-
- * tests/Enum_Interfaces_Test.cpp: return non-zero if test fails.
-
-Mon Aug 4 12:03:29 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/Semaphore_Test: Redid to test timed waits in a more
- reasonably fashion.
-
-Mon Aug 4 11:43:09 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS: Continued to cleanup the problems with inconsistent
- variants of sendmsg() and writev() on VxWorks. Thanks to Cherif
- Sleiman <sleiman@research.moore.com> for reporting this.
-
- * ace/OS.i (sema_wait): Fixed the implementation on NT so that
- errno = ETIME.
-
- * tests/Semaphore_Test.cpp: Cleaned up the programming style a
- bit.
-
- * ace/OS (writev): Removed the ACE_WRITEV_TYPE from the
- ACE_OS::writev() method and instead put this as a cast on the
- internal call to ::writev(). This is much cleaner and should
- fix a bug introduced last night. Thanks Cherif Sleiman
- <sleiman@research.moore.com> for reporting this.
-
- * ace/Synch: Added a new release() method to ACE_Semaphore that
- enables a caller to release multiple waiters. Thanks to Darrell
- Brunsch <brunsch@cs.wustl.edu> for noticing this.
-
-Mon Aug 4 12:03:29 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/Semaphore_Test: Redid to test timed waits in a more
- reasonably fashion.
-
-Sun Aug 03 23:47:13 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.29, released Sun Aug 03 23:47:13 1997.
-
-Sun Aug 3 22:18:33 1997 Douglas C. Schmidt <schmidt@cumbia.cs.wustl.edu>
-
- * tests/Atomic_Op_Test.cpp: Added template specialization so that
- David won't have to ;-)
-
- * ace/ACE: Added a new, complete set of send/recv operations with
- timeouts. These implement the following methods:
-
- read, readv, write, writev, recv, recvfrom, recvmsg, send, sendto, sendmsg.
-
- The implementation provides two flavors: MIT pthread support, an
- ACE portable support. To use MIT pthread support, you must to
- define ACE_HAS_READ_TIMEDWAIT, ACE_HAS_READV_TIMEDWAIT,
- ACE_HAS_WRITE_TIMEDWAIT, ACE_HAS_RECV_TIMEDWAIT,
- ACE_HAS_RECVFROM_TIMEDWAIT, ACE_HAS_RECVMSG_TIMEDWAIT,
- ACE_HAS_SEND_TIMEDWAIT, ACE_HAS_SENDTO_TIMEDWAIT and
- ACE_HAS_SENDMSG_TIMEDWAIT respectively. See the config.h file
- for SCO UNIX for an example.
-
- This new approach is not only more powerful (since it takes
- advantage of OS-level mechanisms when they exist), but it also
- greatly improves the modularity of the code and provides a
- wider range of supported functionality. Thanks to Arturo
- Montes <mitosys@colomsat.net.co> for this new feature.
-
- * ace/ACE.cpp: Added comments to the ACE_Object_Manager_Destroyer
- class.
-
- * ace/OS.h: Redid all the function prototypes for class ACE_OS so
- that it's easier to read the arguments.
-
- * ace/config-sco-5.0.0-mit-pthread.h: Added the new macros that
- enable timed reads and writes. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for this new feature.
-
- * ace: Added a corresponding #endif /* FOO */ for all #if defined
- (FOO) in ACE.
-
- * ace: Changed all uses of ACE_IOStream_T to ACE_IOStream to
- be more consistent with other uses of templates in ACE.
- Thanks to Thilo for reporting this (and thanks to David
- for not being offended ;-)).
-
- * ace/OS.i (operator/): Removed "const" from both the OS.h and
- OS.i files for ACE_U_LongLong::operator/. It is redundant,
- potentially confusing, and gives warnings on some compilers!
-
-Sun Aug 03 21:20:12 1997 <irfan@TWOSTEP>
-
- * tests/Atomic_Op_Test.cpp: Added new test to test the Atomic
- Operations Class in ACE. On platforms like Win32, ACE uses
- template specialization to use native implementations provided
- by the OS to accelarate these operations.
-
- * ace/config-win32-common.h (ACE_HAS_INTERLOCKED_EXCHANGEADD):
- Added macro to config file. This macro is automatically set true
- for NT4.0 systems or greater.
-
- * ace/Atomic_Op.i: On Win32 platforms, this code will be included
- as template source code and will not be inlined. Therefore, we
- first turn off ACE_INLINE, set it to be nothing, include this
- code, and then turn ACE_INLINE back to its original setting. All
- this nonsense is necessary since the generic template code that
- needs to be specialized cannot be inlined, else the compiler
- will ignore the specialization code. Also, the specialization
- code *must* be inlined or the compiler will ignore the
- specializations.
-
- The creation of this new file is necessary for non-Win32
- platforms to continue to inline the code as before.
-
- * ace/Synch_T.cpp: This file must include Atomic_Op.i if
- ACE_INLINE has not be turned on. If it is, this file must be
- included by Synch_T.h.
-
- * ace/Synch.cpp: Moved the specialization code from Synch.cpp to
- Atomic_Op.i. This is necessary, otherwise the compiler will
- ignore the specialization.
-
-Sun Aug 03 10:51:34 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0*.h: added #define ACE_HAS_LONGLONG_T.
- Thanks to Thilo for reporting that OSF1-4.0 does.
-
-Sat Aug 02 23:51:19 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.28, released Sat Aug 02 23:51:19 1997.
-
- * ace/TTY_IO.cpp (control): Fixed a bug when using 8 bits for
- character due to ISTRIP flag setting for device. Thanks to
- Arturo Montes <mitosys@colomsat.net.co> for reporting this bug.
-
- * ACE-categories: Updated the list of ACE classes to reflect
- recent changes.
-
- * ASNMP: Added the new ACE+SNMP release courtesy of Mike
- MacFaden <mrm@cisco.com>. This builds cleanly on Solaris,
- but it looks like there are a bunch of non-portable features
- that won't compile cleanly on all the other platforms.
- Therefore, until Mike or others get this stuff fully portable,
- it won't be build by default in the top-level ACE Makefile.
-
- * ace/OS.h (class ACE_U_LongLong): Reformatted this a bit.
-
- * ace/SV_Semaphore_Simple.i: Removed the #include of
- SV_Semaphore_Simple.h since it seems unnecessary and is causing
- problems for TAO.
-
- * ace/IOStream_T.h (ACE_IOStream_T): Removed the unneeded ';' at
- the end of the ACE_UNIMPLEMENTED_FUNC macros since this was
- causing compiler errors.
-
-Sat Aug 02 13:11:22 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Synch.cpp (ACE_Static_Object_Lock::instance): commented
- out call to ::atexit () because it causes shutdown problems
- on DEC CXX, HP/UX, and AIX. Many thanks to James Johnson
- for tenaciously tracking this one down, to Thilo and Steve
- for assisting, and to all who reported the problem.
-
- * ace/Log_Msg.cpp (ACE_Log_Msg_Manager::open,close): neutered
- on VxWorks, only, so that it will compile.
-
-Fri Aug 1 21:33:18 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * netsvcs/lib/netsvcs.mak: Added post compilation command that
- copies DLL to ace/ directory because netsvcs/main.exe must have
- this file in search path.
-
- * ace/Read_Buffer.cpp (ACE_Read_Buffer): Used ACE_OS::fdopen
- instead of ::fdopen because it caused compilation error on NT.
-
-Fri Aug 1 17:25:04 1997 Chris Cleeland <cleeland@swarm.cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.4_sgic++.GNU (CCFLAGS): Used
- -ptnone and -no_prelink in order to get SGI to compile properly.
-
- * ace/config-irix6.4-sgic++.h (ACE_HAS_EXCEPTIONS): Added
- ACE_HAS_EXCEPTIONS to this config.
-
- * ace/IOStream_T.h (ACE_IOStream_T): Wrapped send, recv, send_n,
- and recv_n with the ACE_UNIMPLEMENTED_FUNC macro.
-
-Fri Aug 1 17:08:32 1997 Nanbor Wang <nw1@waltz.cs.wustl.edu>
-
- * ace/ace.mak: Put OS.cpp back into the makefile.
-
- * ace/config-win32-common.h: Commented out checking of
- ACE_HAS_WINSOCK2 when we are using NT 4.0 and above. The
- original check prevented us from using winsock2.
-
- * ace/Thread_Manager.cpp:
- * ace/Service_Repository.cpp:
- * ace/ReactorEx.cpp:
- * ace/Reactor.cpp:
- * ace/Proactor.cpp:
- * ace/Malloc.cpp:
- * ace/Synch.{h,cpp}: Changed the lock held by
- ACE_Static_Object_Lock from ACE_Thread_Mutex to
- ACE_Recurssive_Thread_Mutex.
-
- * ace/Timer_Heap_T.cpp (ACE_Timer_Heap_T): Something was missing
- here.....
-
-Fri Aug 1 13:39:13 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/TTY_IO.cpp (control): Removed the special M_UNIX code for
- SCO_OpenServer. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for reporting this.
-
- * ace/Read_Buffer.cpp (ACE_Read_Buffer): Mistakenly used int
- rather than ACE_HANDLE for one of the constructors in
- ACE_Read_Buffer.
-
- * ace/OS.cpp (readv): Fixed a braino that manifests itself on
- Chorus because I put the ACE_READV_TYPE in the wrong place.
- Thanks to Wei Chiang for reporting this.
-
-Fri Aug 1 14:31:22 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/Timer_Queue_Test.cpp: removed casts from pointers to ints
- (when a act was compared with a number) and instead used a cast
- on the integer values. This gets rid of warnings on platforms
- where the sizeof a pointer is larger than the sizeof an int.
-
-Fri Aug 01 12:10:28 1997 <irfan@TWOSTEP>
-
- * ace/Synch_T: Changed parameter passing for ACE_Atomic_Op from
- const TYPE to const TYPE &.
-
- * ace/Synch.cpp: These specializations have been added to
- ACE_Atomic_Op to make the implementation faster on Win32 that
- has OS support for doing this quickly through methods like
- InterlockedIncrement and InterlockedDecrement.
-
- * ace/SV_Semaphore_Complex.cpp (open): Fixed more compiler
- warnings:
-
- IOStream.cpp Naming_Context.cpp Read_Buffer.cpp
- SV_Semaphore_Complex.cpp SV_Semaphore_Complex.i
-
-Fri Aug 1 11:57:45 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/Containers.h (ACE_Fixed_Set): Eliminated declaration for
- unnecessary ACE_Fixed_Set(size_t) CTOR.
-
- * ace/OS.h: Simplified the typedef of ACE_hrtime_t so that it's an
- unsigned long long whenever ACE_HAS_LONG_LONG_T is defined.
-
-Fri Aug 01 10:12:26 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h: added ACE_HAS_TEMPLATE_SPECIALIZATION.
- Thanks to Thilo for verifying that this is supported with DEC CXX.
-
- * ace/config-irix6.4-sgic++*.h: added ACE_TEMPLATES_REQUIRE_SOURCE
- and ACE_REQUIRES_FUNC_DEFINITIONS.
-
- * ace/OS.h,README: added ACE_REQUIRES_FUNC_DEFINITIONS support.
-
- * ace/{Free_List.h,Remote_Tokens.h,Synch_T.h,Timer_*_T.h}:
- wrapped unimplemented template class copy constructors and
- assignment operators with ACE_UNIMPLEMENTED_FUNC.
-
- * tests/Service_Config_Test.cpp: removed templates to avoid
- problems with finicky compilers, and added check of destruction
- ordering.
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: added
- -no_prelink to LDFLAGS.
-
-Fri Aug 01 00:14:46 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.27, released Fri Aug 01 00:14:46 1997.
-
-Thu Jul 31 21:51:01 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (open): fixed memory leak.
-
-Thu Jul 31 21:41:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Service_Config_Test.cpp (run_test): You won't shout as I...
-
- * ace/Object_Manager.cpp (instance): ... fiddle about ;-)
-
-Thu Jul 31 17:39:56 1997 <irfan@TWOSTEP>
-
- * ace: The following files were modified to avoid the
- "unreferenced formal parameter" and other warnings from the
- compiler:
-
- ACE.cpp Asynch_IO.cpp Asynch_IO.h INET_Addr.cpp OS.cpp OS.h OS.i
- Proactor.cpp Reactor.cpp ReactorEx.cpp ReactorEx.i
- SOCK_Dgram_Bcast.cpp Service_Config.cpp
-
-Thu Jul 31 16:46:44 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config*.h: replaced "ACE_REQUIRES_TEMPLATE_SPECIALIZATION"
- with "ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION".
-
- * ace/config-vxworks-ghs-1.8.h,config-irix6.4-sgic++*.h: added
- ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA.
-
- * all .cpp files that had "ACE_REQUIRES_TEMPLATE_SPECIALIZATION":
- replaced with "ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION" and
- added #pragma instantiate for Edision Design Group compilers,
- e.g., SGI and Green Hills.
-
-Thu Jul 31 16:25:33 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Synch.i (acquire): Added the timed acquire() interface to
- ACE_Semaphore.
-
-Thu Jul 31 11:10:17 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/run_tests.bat: Redid this file completely making it
- much smarter about running tests. Instead of just blindly
- executing the tests, it checks the return values to see if
- an error occured and also outputs relevant errors from the
- log file if the test was unsuccessful.
-
- It's a remarkable example of batch programming wizardry.
-
-Thu Jul 31 10:39:04 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/INET_Addr.cpp: initialized error variable in
- gethostname to stop warnings when inlining is on.
-
-Thu Jul 31 09:46:50 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Heap_T.cpp: changed cancel(id) to check the timer
- id to make sure it is in range (not negative and not larger
- than the current size of the heap)
-
-Thu Jul 31 07:32:26 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Malloc_T.{i,cpp},Timer_Queue_T.i: replaced LOCK with ACE_LOCK.
- Thanks to Thilo for supplying patches.
-
- * ace/config-sunos5.5-g++.h: #define ACE_MALLOC_ALIGN to be 8.
-
- * ace/Object_Manager.*: renamed cleanup () to at_exit ().
-
- * Log_Msg.{h,cpp},Object_Manager.cpp: let ACE_Object_Manager
- clean up the global ACE_Log_Msg_Manager.
-
- * Service_Config_Test.cpp: added test of
- ACE_Object_Manager::at_exit ().
-
-Wed Jul 30 20:30:25 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_Dgram.h: Added an = 0 to the flags parameter to recv().
- Thanks to Michael MacFaden for pointing out the inconsistency.
-
- * ace/OS.cpp (thr_create): Added support for the SCHED_IO policy,
- which is supported by MIT Pthreads. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for this fix.
-
- * ace/SOCK_Dgram.h: Added a comment to clarify how to delete the
- elements of the iovec array. Thanks to Mike MacFaden for
- clarifying this.
-
- * ace/Reactor.h: Changed the comment for schedule_timer() to use
- delta_timer rather than delay.
-
- * ace/Connector: Updated the timer cancellation id to be long
- rather than int.
-
- * examples/Reactor/Misc/notification.cpp: Timers are now working
- happily on Chorus, so we can revert the Chorus-specific patches.
- Thanks to Wei Chiang for reporting this.
-
- * ace/SOCK_Dgram.cpp (recv): The timed recv() method must return
- -1 on a timeout to meet its documented specification. Thanks to
- Joseph Cross <joseph.k.cross@lmco.com> for reporting this
- problem.
-
- * ace/OS.i (readv): Added a fix for Chorus, which has a different
- readv() prototype than normal operating systems. Thanks to Wei
- Chiang for reporting this.
-
-Wed Jul 30 20:02:21 1997 James C Hu <jxh@lambada.cs.wustl.edu>
-
- * ace/Hash_Map_Manager.{h,cpp}: changed the *_i methods to use
- shared_find() method to ease template specialization efforts.
- Also, added a new shared_find() method. Added a parameter to
- each to allow the passing in of the calculated hash value.
-
-Wed Jul 30 16:43:34 1997 <irfan@TWOSTEP>
-
- * ace/config-win32-common.h: If _DEBUG is not set (that is, we are
- building the Release version), we will turn on __ACE_INLINE__.
- Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for
- suggesting this.
-
-Wed Jul 30 06:53:30 1997 Matthias Kerkhoff <make@cs.tu-berlin.de>
-
- * The use of the following configuration #defines in the entire
- ACE distribution has been changed:
-
- - ACE_HAS_WINNT4
- - ACE_HAS_MFC
- - ACE_HAS_STRICT
- - ACE_MT_SAFE
- - ACE_HAS_DLL
- - ACE_HAS_SVC_DLL
- - ACE_HAS_WINSOCK2
- - ACE_HAS_ORBIX
- - ACE_HAS_MT_ORBIX
-
- In previous ACE-versions, code blocks depending on one of these
- defines have been guarded by an #if defined(ACE_XXX_OPTION).
- Therefore it has been necessary to define the default
- configuration unconditionally in config-win32.h.
-
- The #if statements in the source files have been changed to
-
- #if defined(ACE_XXX_OPTION) && (ACE_XXX_OPTION != 0)
-
- while the default configuration in config-win32.h will only be used,
- if it has not been overridden from the compilers command line (i.e.) :
-
- #if !defined(ACE_XXX_OPTION)
- #define ACE_XXX_OPTION 1
- #endif
-
-Wed Jul 30 14:46:33 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Malloc.cpp:
- * ace/Proactor.cpp:
- * ace/ReactorEx.cpp:
- * ace/Reactor.cpp:
- * ace/Service_Repository.cpp:
- * ace/Thread_Manager.cpp:
- * ace/Synch.{h,cpp}: Changed ACE_Static_Object_Lock::get_lock ()
- to instance () to emphasize that it's a singleton.
-
- * ace/Containers.cpp: Fixed the problem caused by
- ACE_Unbounded_Stacknotkeeping its size currectly. Thanks for
- Matthias Kerkhoff <make@cs.tu-berlin.de> for sending us the
- patch.
-
- * ace/OS.cpp (exit): Corrected a bug in ACE_TSS_Cleanup::exit ().
- It innocently uses default ctor to copy info_arr. And things
- get out of hand when info_arr[] gets destructed. Thanks very
- much for Matthias Kerkhoff <make@cs.tu-berlin.de> for digging
- this out and sending us the patch.
-
-Wed Jul 30 13:36:55 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks-ghs-1.8.h: added #ifdef ppc wrapper around
- #define of ACE_HAS_POWERPC, because GreenHills #defines that.
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: replaced
- indlib.o LIBS with newer ghsbltin.o and ghsmath.o.
-
- * ace/OS.h: use the same ACE_UNUSED_ARG definition with ghs as
- with other compilers.
-
- * ace/Object_Manager.*: revised interface, but still in flux.
- cleanup () should work for process-wide registration, but is
- untested.
-
-Wed Jul 30 11:13:57 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/config-linux*.h (ACE_HAS_LONGLONG_T): These configs
- file incorrectly had ACE_HAS_LONGLONG rather than
- ACE_HAS_LONGLONG_T.
-
- * ace/OS.cpp (gethrtime): Added 'volatile' keyword to insure that
- the automatic variables 'most' and 'least' don't get put into
- registers. Putting this in stopped the SIGSEGV that was occurring
- in Linux.
-
-Wed Jul 30 06:53:30 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.26, released Wed Jul 30 06:53:30 1997.
-
-Wed Jul 30 04:36:39 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Containers.{h,cpp}: Added back new parameterized allocation
- strategy version. Finally.
-
- * ace/Synch.cpp (atexit): Moved ACE_Allocator here because only
- here, we can be sure that no other user defined memory
- activities are going on. This is becoming even more
- interesting now.... Perhaps we should move all
- close_singleton's here?
-
- * ace/Service_Config.cpp (close_singletons): Removed
- ACE_Allocator::close_singleton () from this function because we
- still need ACE_Allocator to "free" static objects' memory.
-
- * ace/Synch.{h,cpp}: Added a new class ACE_Static_Object_Lock
- which provides a lock when instantiating static objects.
-
- * ace/Thread_Manager.cpp: Removed ace_thread_manager_lock_,
- * ace/Service_Repository.cpp: Removed ace_service_repository_lock_,
- * ace/ReactorEx.cpp: Removed ace_reactorex_lock_,
- * ace/Reactor.cpp: Removed ace_reactor_lock_,
- * ace/Proactor.cpp: Removed ace_proactor_lock_,
- * ace/Malloc.cpp: Removed ace_malloc_lock_,
- and replace them with a global single lock
- ACE_Static_Object_Lock::get_lock ().
-
-Tue Jul 29 16:25:48 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): Explicitly flagged 'stack' and 'size'
- as unused arguments.
-
- * ace/Memory_Pool.cpp (handle_signal): Explicitly flagged siginfo
- as an unused argument, and moved the decl of offset into the
- conditional block in which it's used.
-
- * ace/OS.i (dlerror): Added explicit cast of the return value to
- (char*) because on Linux dlerror() returns const char*, while on
- Solaris it's char*.
-
- * ace/config-linux-lxpthreads.h: Created new flag
- ACE_LACKS_POSIX_PROTO_FOR_SOME_FUNCS that can be used when only
- certain functions are missing POSIX prototypes. This eliminates
- more warnings with -Wall
-
- * ace/ACE.cpp (max_handles): Added return statement for the
- RLIMIT_NOFILE case.
- (count_interfaces): Removed unused variables.
-
-Tue Jul 29 15:10:35 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.i: Changed sema_wait to take in a const ACE_Time_Value
-
-Tue Jul 29 12:41:27 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-sco-5.0.0-mit-pthread.h: Added the
- ACE_LACKS_PWD_FUNCTIONS macro. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for reporting this.
-
-Tue Jul 29 13:10:00 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Signal.h: Moved inclusion of "Containers.h" to the bottom of
- this file so everything is defined properly before use.
-
-Tue Jul 29 12:36:24 1997 <irfan@TWOSTEP>
-
- * tests/Message_Queue_Test.cpp (main): Removed dynamic allocation
- of the string array.
-
-Tue Jul 29 12:15:49 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Proactor.cpp
- * ace/Reactor.cpp:
- * ace/ReactorEx.cpp: Changed the default Timer Queue to
- Timer Heap instead of Timer List.
-
-Tue Jul 29 07:59:04 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile,TAO/Makefile: change mode of updated ChangeLog-*
- file to 644 after updating it, when building a release
- with TIMESTAMP enabled.
-
- * ace/OS.cpp (sched_params): added some more initializations
- to 0 to avoid Purify warnings about unitialized memory reads.
-
- * ace/Object_Manager.cpp (~ACE_Object_Manager): removed unused
- variable "i". Thanks to Amos Shapira <amos@gezernet.co.il>
- for reporting this.
-
- * ace/Service_Record.{h,i} Parse_Node.{h,cpp} (handle,open_handle):
- removed "const" from ACE_SHLIB_HANDLE return value. Thanks
- to the several people who noted compiler warnings from this.
-
- * ace/Naming_Context.cpp: added delete of this->name_options_;
- (dtor,fini): call this->close ().
-
- * tests/IOStream_Test.cpp (client,server): use ACE_NEW_RETURN
- instead of new.
-
-Tue Jul 29 01:53:18 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/OS.h: Added two new macros ACE_NEW_MALLOC_RETURN and
- ACE_NEW_MALLOC. Theses are similiar to ACE_ALLOCATOR_RETURN and
- ACE_ALLOCATOR that allow memory allocation using user defined
- functions. However, these two macros will call specified
- constructor after memory is being allocated.
-
- * ace/Containers.{h,cpp}: Decoupled memory allocation strategy for
- ACE_Unbounded_Stack, ACE_Unbounded_Set, ACE_Unbounded_Queue.
- Users can now specified their own memory allocation strategies
- if needed. If not specified, the default ACE_Allocator will be
- used.
-
-Tue Jul 29 00:56:54 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.25, released Tue Jul 29 00:56:54 1997.
-
-Mon Jul 28 16:23:26 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.nested.GNU: added missing
- semicolon at end of last statement. Thanks to Amos
- Shapira <amos@gezernet.co.il> for providing this fix.
-
- * ace/OS.h (VxWorks only): only #include <stdarg.h> before
- <vxWorks.h> for GreenHills. Thanks to Dave Moore
- <dave.moore@gecm.com> for reporting a problem without this
- fix with g++/VxWorks 5.3.1 for PowerPC target.
- Also, commented out g++ string.h hack. It no longer appears
- to be necessary.
-
- * tests/README: added VxWorks 5.3.1 test status.
-
- * tests/SPIPE_Test.cpp (main): fixed #ifdefs so that it compiles.
-
- * ace/OS.i: (strtok_r): replaced NULL with 0. NULL is #defined
- as (void *) 0 on VxWorks, so it causes compile warnings.
- Thanks to Dave Mayerhoefer <davem@lynx.com> for reporting
- this problem.
-
- * ace/Object_Manager.{h,cpp},Makefile: added this class to
- shutdown ACE library services, and reclaim their storage,
- at program termination.
-
- * ace/ACE.cpp: added hook to call ACE_Object_Manager destructor
- in this file. It's in this file so that it's sure to be
- linked in to executables that statically link libACE.a.
-
- * ace/Service_Config.{h,cpp}: (close): delete ACE_STATIC_SVCS
- instance, which is now saved in static_svcs_. Also, removed
- LM_SHUTDOWN call, because the logger apparently gets shutdown
- now with everything else (with ACE_Object_Manager).
-
- * ace/Object_Manager.* (delete_at_exit,delete_array_at_exit):
- made these (inline) static functions, with return values.
-
- * tests/IOStream_Test.cpp (client,server): explicitly destroy
- (and create) ACE_SOCK_IOStream instances, because they don't
- get destroyed on Solaris. They're on the stack of separate
- threads, so maybe the problem is related to not cleaning up
- TSS on Solaris. Thanks to James CE Johnson <jcej@lads.com>
- for some efficient debugging work, and for verifying that the
- original code works properly on Linux.
-
-Mon Jul 28 21:59:09 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/ace.mak: Added file Object_Manager.cpp.
-
- * ace/OS.h: Added #define RTLD_LAZY when
- ACE_HAS_SVR4_DYNAMIC_LINKING and RTLD_LAZY is not defined.
- FreeBSD 2.2.1 "forgot" to put in this definition. Thanks to
- Satoshi Ueno for reporting this.
-
-Mon Jul 28 13:27:21 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Object_Manager: Made a few minor stylistic updates.
-
- * netsvcs/servers/main.cpp (main): Updated this test program to
- utilize the new ACE_Service_Object_Ptr class.
-
- * ace/Service_Object.h: Added a new smart pointer call
- ACE_Service_Object_Ptr, which generalizes functionality that was
- previously in the ./netsvcs/server/main.cpp file. Thanks to Wei
- Chiang for this suggestion.
-
- * examples/Threads/process_manager.cpp (parse_args): Removed the
- unused n_processes global variable. Thanks to Amos Shapira for
- reporting this.
-
- * tests/SPIPE_Test.cpp (main): Cleaned up the #ifdef structure
- to remove compiler warnings. Thanks to Amos Shapira for
- this.
-
- * tests/Handle_Set_Test.cpp (test_performance): Removed an unused
- ACE_HANDLE handle definition. Thanks to Amos Shapira for
- reporting this.
-
- * ace/OS.i (sema_init): Swapped else and #endif to avoid
- a compile error when ACE_LACKS_NAMED_POSIX_SEM is false.
- Thanks to Wei Chiang for reporting this.
-
- * ace/OS.cpp (rwlock_init): Added a cast to (const void *) to keep
- certain compilers from complaining. Thanks to Thilo and
- Amos Shapira for reporting this.
-
- * ace/OS.i (sema_wait): *tv should have been &tv. Thanks to Thilo
- for reporting this.
-
-Mon Jul 28 13:57:21 1997 James C Hu <jxh@swarm.cs.wustl.edu>
-
- * ace/config-irix6.4-sgic++.h: Added template specialization #def.
-
-Sun Jul 27 20:47:01 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Handle_Set_Test.cpp: Instantiate templates with
- ACE_HANDLE instead of int.
-
- * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp (main): use
- ACE_OS::fprintf () instead of cerr.
-
-Sun Jul 27 20:10:26 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.2.24, released Sun Jul 27 20:10:26 1997.
-
-Sun Jul 27 16:03:30 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * tests/Handle_Set_Test.cpp (test_boundaries): Changed class of
- queue from ACE_Unbounded_Queue<int> to
- ACE_Unbounded_Queue<ACE_HANDLE> so it declares the right data
- type.
-
- * ace/Synch.cpp (ACE_Process_Mutex):
- * ace/OS.cpp (rwlock_init):
- * ace/ACE.cpp (unique_name): Memories for placing unique_name are
- now declared using ACE_UNIQUE_NAME_LEN. When calling
- ACE::unique_name, the length is also specified using
- ACE_UNIQUE_NAME_LEN because using "sizeof (buffer)" also caused
- problem if we are using UNICODE.
-
- * ace/OS.h: Added a new directive ACE_UNIQUE_NAME_LEN to specified
- the maximum length of an "unique name."
-
-Sun Jul 27 15:32:08 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Handle_Set_Test.cpp (main): uncommented
- test_duplicates () and test_performance () calls, and added
- ACE_Unbounded_Queue_Iterator<int> specialization.
-
-Sun Jul 27 14:25:33 1997 Douglas C. Schmidt <schmidt@merengue.cs.wustl.edu>
-
- * tests/Handle_Set_Test.cpp (test_boundaries): Added a better test
- to ensure that the ACE_Handle_Set_Iterators are working
- correctly. This works by inserting the handles in a queue and
- then making sure that they are the same values we receive from
- the iterator.
-
- * ace/Handle_Set.i (operator): Fixed a subtle bug in the
- ACE_Handle_Set_Iterator implementation. We need to make
- sure that we increment the handle_index_ to the beginning
- of the next word whenever we've examined all the bits in
- the current word. Thanks to David Levine for noticing this
- problem.
-
-Sun Jul 27 09:06:29 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.lib.GNU: replaced hard-coded ".so"
- with "$(SOEXT)".
-
- * include/makeinclude/rules.local.GNU: added/completed support
- for "$(SOEXT)", and "$(VSHDIR)" instead of always hard-coding
- them as ".so" and ".shobj/".
-
- * include/makeinclude/wrapper_macros.GNU: added support for
- override of "$(VSHDIR)" in platform_macros.GNU.
-
- * apps/JAWS/clients/{Blobby,Caching}/Makefile,
- apps/JAWS/stress_testing/Makefile,
- apps/Orbix-Examples/Event_Comm/{Consumer,Supplier}/Makefile,
- examples/ASX/Event_Server/Event_Server/Makefile,
- examples/ASX/UPIPE_Event_Server/Makefile,
- examples/Logger/simple-server/Makefile,
- examples/Mem_Map/IO-tests/Makefile,
- examples/Naming/Makefile,
- examples/Reactor/Multicast/Makefile,
- examples/Service_Configurator/Misc/Makefile,
- examples/Shared_Malloc/Makefile:
- replaced hard-coded ".shobj" with "$(VSHDIR)" in LDLIBS definitions.
-
- * include/makeinclude/platform_vxworks5.x_{g++,ghs}.GNU:
- added overrides of .so build rules to change them .o builds.
-
- The above changes allow builds of modules that specify .shobj/*.so
- on VxWorks, by mapping those objects to .obj/*.o.
-
-Sun Jul 27 03:07:35 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/ACE.cpp (unique_name): Added __TEXT macro to the format
- string in sprintf to avoid a nasty problem when using UNICODE on
- NT.
-
-Sat Jul 26 21:12:07 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ReactorEx.cpp: added a couple of ACE_UNUSED_ARG's.
-
- * examples/Logger/simple-server/Logging_Handler.cpp (handle_input):
- replace use of cerr with stderr (by using default arg of
- ACE_Log_Record::print ()).
-
- * examples/Shared_Malloc/test_multiple_mallocs.cpp (main): use
- ACE_OS::printf () instead of cout.
-
- * examples/Shared_Malloc/test_persistence.cpp: added #include
- of iostream.h with ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
-
-Sat Jul 26 15:55:43 1997 <irfan@TWOSTEP>
-
- * ace/Malloc_T.cpp (ACE_Cached_Allocator): Changed (T *) to
- (T*). VC++ did not like the former.
-
- * The entire ACE distribution was updated to use the new singleton
- methods. The old singleton methods in Service_Config have been
- deprecated and users are encouraged not to use these methods
- anymore. It may not be supported in future releases. The
- replacement is the instance() methods in the individual classes.
- For example, ACE_Service_Config::reactor() is replaced by
- ACE_Reactor::instance(). A perl script has been added
- (ACE_wrappers/bin/Service_Config.perl) to allow users to change
- their code over to the new methods.
-
- These changes will hopefully help in reducing the compile-time
- dependencies in ACE source files and allow smaller custom ACE
- libraries to be compiled.
-
- Thanks to Matthias Kerkhoff <make@cs.tu-berlin.de> for making
- these changes.
-
-Sat Jul 26 15:44:45 1997 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/Malloc_T.cpp (ACE_Cached_Allocator): I think we want to
- say "sizeof (T)" rather than "sizeof (T *)".
-
- * ace/FILE_IO.i (recv_n): There is a minor bug fix to be made in
- FILE_IO.i. The method ACE_FILE_IO::recv_n() should call
- ACE::read_n(), not ACE::recv_n(). Similarly, the method
- ACE_FILE_IO::send_n() should call ACE::write_n(), not
- ACE::send_n(). The functions ::recv() and ::send() are intended
- only for *socket* I/O, and return failure conditions when
- applied to *file* I/O. Thanks to David Brackman
- <dbrackman@OhioEE.com> for reporting this.
-
- * ace: Changed all LOCK names to ACE_LOCK to avoid clashes
- with macros in the KAI C++ compiler. Thanks to Jeff
- R. Hayes <Jeff.Hayes@osi.com> for pointing this out.
-
- * ace/Malloc_T.i: Added ACE_INLINE to some methods that weren't
- getting inlined.
-
- * ace/OS.i: Added an implementation of timed semaphores for the
- POSIX threading APIs. Also cleaned up the return values from
- sema_wait() so that it always returns -1 if an error occurs
- (originally, it was returning -2, which is confusing). Also
- cleaned up the rd_lock() and wr_lock() methods in the same way.
-
-Sat Jul 26 16:00:05 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Malloc_T.cpp (ACE_Cached_Allocator): fixed typo, sizeof (T*)
- instead of sizeof (*T).
-
- * Proactor.cpp (instance): fixed signature in non-WIN32
- version. (run_event_loop): added ACE_UNUSED_ARG (tv).
-
-Fri Jul 25 12:08:47 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.[hi]: finished VxWorks (non-POSIX) semaphore implementation.
-
- * ace/Process.cpp (spawn): with GreenHills compiler only (for
- VxWorks), call ACE_NOTSUP_RETURN instead of spawning via execve.
- GreenHills 1.8.8 loses its lunch on the ACE_OS::execve () call.
- Thanks to Dave Mayerhoefer <davem@lynx.com> for reporting
- this problem.
-
- * tests/Mem_Map_Test.cpp (create_test_file): delete array "mybuf"
- to prevent memory leak.
-
- * tests/Message_Queue_Test.cpp (main): delete "buffer"
- elements at end of test to prevent memory leaks.
-
- * performance-tests/Misc/context_switch_time.cpp: use
- ACE_Sched_Params for platform-independent thread priority
- assignment. Also, modified Yield_Test so that only one thread
- writes the test's timer.
-
- * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp (svc):
- replaced an iostream printout with an ACE_DEBUG call.
-
- * examples/ASX/UPIPE_Event_Server/event_server.cpp: added
- #include of iostream.h with ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
-
- * examples/IPC_SAP/FILE_SAP/client.cpp: require 2 args instead
- of 1; mask file mode with 0777 (octal); and use
- ACE_OS::printf () instead of cout.
-
-Fri Jul 25 00:46:22 1997 <irfan@TWOSTEP>
-
- * ace/Synch: Added documentation for Condition variables. Thanks
- to Jeff <jmg@trivida.com> for pointing out the lack of
- documentation.
-
-Thu Jul 24 11:48:05 1997 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile,TAO/Makefile: added a filter to exclude backup and
- [.]#* files from releases. Thanks to Carlos O'Ryan
- <coryan@mat.puc.cl> for reporting this problem.
-
- * include/makeinclude/platform_*.GNU: inserted CVS/RCS
- keyword string.
-
- * performance-tests/Misc/basic_perf.cpp (per_iteration):
- added support for ACE_U_LongLong.
-
- * performance-tests/Misc/childbirth_time.cpp:
- (prof_fork,prof_native_thread): added ACE_UNUSED_ARGs
- for unsupported platforms. (prof_ace_os_thread): added
- (ACE_THR_FUNC) cast of first arg to ACE_OS::thr_create () call.
-
- * performance-tests/Misc/test_naming.cpp (find): replaced cerr
- statement with an ACE_DEBUG.
-
- * examples/Misc/test_read_buffer.cpp: replaced bare OS calls
- with ACE_OS calls.
-
-Thu Jul 24 11:35:37 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Heap_T.cpp: Fixed a problem with reschedule()
- corrupting the free list in Timer Heap. Thanks to
- James Crawford <jamesc@in.ot.com.au>, Silvano Peruzzi
- <silvanop@in.ot.com.au>, and Stuart Powell <stuartp@in.ot.com.au>
- for the fix.
-
-Wed Jul 23 23:29:15 1997 <irfan@TWOSTEP>
-
- * ace/Message_Block.cpp (size): Changed the comparison from
- (length < this->max_size_) to (length <= this->max_size_).
- Thanks to Paul <proman@npac.syr.edu> for suggesting this change.
-
-Wed Jul 23 21:54:23 1997 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Shared_Malloc/test_malloc.cpp (spawn): cast argv
- argument to (char *const *) for call to ACE_OS::execv ().
-
-Wed Jul 23 16:40:39 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/ACE.cpp (get_ip_interfaces): ACE'ified codes for NT. UNIX
- part will come later.
-
- * ace/Malloc_T.cpp (ACE_Cached_Allocator): Changed to use raw
- memory allocation method for memory pool.
-
- * ace/OS.h (ACE_TEXT_STRING): Added this #define macro to switch
- between ACE_WString and ACE_CString according to the usage of
- UNICODE.
-
-Wed Jul 23 14:43:11 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Timer_Queue_Test.cpp(main): delete timer_id array at
- the end of the test to avoid a memory leak.
-
-Wed Jul 23 13:40:39 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Process.cpp (ACE_Tokenizer::next): Moved checking of string
- termination after checking delimiter and preserve_designator so
- that we can use this class to tokenize multiple null terminated
- strings cascaded together (using \0 as delimitor.) Notice tne
- combined strings must be terminated with two null chars. I need
- to use this class in ACE::get_ip_interfaces.
-
- * ace/Malloc_T.{h,i}: Changed the implementation of
- ACE_Cached_Mem_Pool_Node from using union to a plain pointer.
- This is because some C++ compilers don't allow union member to
- have copy constructor. Thanks to Tim to dig this out.
-
-Wed Jul 23 12:58:04 1997 Steve Huston <shuston@riverace.com>
-
- * ace/CORBA_Ref.cpp: Added #include "ace/Log_Msg.h" to catch the
- ACE_DEBUG macro.
diff --git a/ChangeLogs/ChangeLog-98a b/ChangeLogs/ChangeLog-98a
deleted file mode 100644
index c5daa4d7ee1..00000000000
--- a/ChangeLogs/ChangeLog-98a
+++ /dev/null
@@ -1,6588 +0,0 @@
-Wed Apr 29 18:55:13 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5 released.
-
-Wed Apr 29 12:25:05 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: added ACE_POLL_IS_BROKEN so that
- ACE_OS::sleep () uses select () instead of poll ().
-
- * tests/Map_Manager_Test.cpp: added a ssize_t loop index that's
- used to avoid signed/unsigned comparisons.
-
-Tue Apr 28 23:08:10 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp: Bugs fixed.
-
- * tests/Map_Manager_Test.cpp: Added assertion tests on the number
- of iterations to ensure the test does run correctly.
-
- * tests/Map_Manager_Test.cpp (main): Disabled the VERBOSE_LITE
- Log_Msg flag before starting the real test and reenabled it
- after the tests.
-
-Tue Apr 28 06:49:50 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html,os-patches/linux-patches.html: updated
- Linux glibc-2 info. ACE works with glib-2.0.7-7, unmodified.
-
- * ace/config-g++-common.h: added
- ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES with egcs. egcs 1.0.2
- won't compile netsvcs/lib without it.
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: fixed location
- of parenthesis in ppc check. Thanks to Brian Mendel
- <bmendel@mdc.com> for reporting this.
-
- * ace/High_Res_Timer.cpp: initialize global_scale_factor_ to 1000
- on Linux.
-
-Mon Apr 27 07:18:54 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Types.cpp: Changes to use typedef
- ACE_Service_Object_Exterminator to define <gobbler>. Thanks to
- Chuck Gehr for reminding this.
-
- * ace/Service_Object.h (ACE_Service_Object_Ptr):
- * netsvcs/servers/main.cpp (main): Added more comments on how to
- use ACE_Service_Object_Ptr with ACE_SVC_INVOKE correctly.
-
- * ace/OS.h (ACE_Service_Object_Exterminator): Define the type as
- extern "C" function pointer to make MVS happy. Thanks to Chuck
- Gehr for pointing this out.
-
- * ace/Service_Object.i (ACE_Service_Object_Ptr): Delete the
- underlying Service_Object after calling its fini() method.
- Thanks to Tom Arbuckle <arbuckle@uran.informatik.uni-bonn.de>
- for pointing this out.
-
-Sun Apr 26 21:50:07 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp,etc/Svc_Conf_[ly].cpp.diff,etc/README:
- updated the patch files. Thanks to J. Russell Noseworthy
- <rnosewor@objectsciences.com> for reporting problems with
- them.
-
-Sun Apr 26 01:05:20 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.43 released.
-
-Sat Apr 25 17:47:31 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_FACTORY_DECLARE): Added explicit casting for
- gobbler to prevent some weird compiler from complaining too
- much.
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp
- (ACE_Server_Logging_Acceptor_T): We can't initialize the
- <scheduler_> with a temporary object. Its content gets deleted
- right after the constructor exits.
-
-Sat Apr 25 11:55:01 1998 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
-
- * ace/Containers.h (class ACE_Double_Linked_List): Added
- comments.(<class T>, the parameter for this class should have
- T* next_ and T* prev_ fields in it.
-
- * ace/Containers.h (class ACE_Double_Linked_List): Corrected the
- documentation for the insert_head and insert_tail functions.
-
-Fri Apr 24 22:36:37 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Service_Config.cpp (process_directive): added
- ACE_UNUSED_ARG (directive).
-
-Fri Apr 24 18:40:08 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Asynch_Acceptor.cpp (handle_accept): Fixed this method so
- that it has better flexibility and error checking. Also, added
- hooks so that users can do validation of remote connections.
- Also, a flag is checked before accept is reissued. Thanks to
- Jason Katz <Jason@rtswireless.com> for reporting these upgrades.
-
-Fri Apr 24 16:33:14 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: ACE_FACTORY_DEFINE - in the generated gobble function,
- use the indicated object type to do the delete so 1) the aC++
- compiler won't complain, and 2) so the service object is
- destructed properly.
-
- * tests/Env_Value_Test.cpp: Made it compile on Solaris.
-
-Fri Apr 24 15:45:38 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5-*.h: set ACE_THR_PRI_FIFO_DEF to 30, because
- sched_get_priority_min is not implemented on Solaris 2.5.x.
-
-Fri Apr 24 09:12:39 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Env_Value_Test.cpp: Made it UNICODE safe.
-
- * tests/version_tests/version_tests.dsw:
- * tests/version_tests/OrdMultiSet_Test.dsp: Added new project
- file.
-
-Fri Apr 24 09:09:49 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-common.h: added ACE_HAS_4_4BSD_SENDMSG_RECVMSG.
- Thanks to Sandro Doro <doros@aureus.sublink.org> for recommending
- this.
-
-Fri Apr 24 04:12:39 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/version_tests/version_tests.dsw:
- * tests/version_tests/OrdMultiSet_Test.dsp: Added new project
- file.
-
-Thu Apr 23 22:52:20 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/tests.dsw: Somehow, Thread_Mutex_Test.dsp got removed from
- the workspace.
-
- * tests/Thread_Mutex_Test.dsp: Update include/lib path.
-
-Fri Apr 24 00:12:32 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.42 released.
-
-Thu Apr 23 22:28:02 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Service_Config: Began adding support for the new service
- configurator feature that will make it possible to dynamically
- configure services that are read in from the command-line.
- Thanks to Karlheinz for requesting this.
-
- * ace/Parse_Node.cpp (open_handle),
- ace/Svc_Conf.l: The line for the service object for the service
- configurator contains the DLL specifications. Previously, it
- was possible to specify either the absolute path name of the DLL
- or only the name of the DLL itself. For the latter, the service
- configurator is searching for the DLL using the PATH environment
- variable. If we used the absolute path name it was not
- possible to use environment variables in the string. It is now
- possible to do this for Win32 using their %foo% notation.
- Thanks to Andreas Schuelke <Andreas.Schuelke@med.siemens.de> for
- providing these fixes.
-
- * etc/Svc_Conf_y.cpp.diff,
- etc/Svc_Conf_l.cpp.diff,
- ace/Makefile: Change the YY* symbols to ACE_YY* symbols to
- avoid clashes if we link with other flex/yacc generated code.
-
- * apps/Gateway/Gateway/gatewayd.cpp,
- apps/Gateway/Peer/peerd.cpp: Added a check to see if the
- svc.conf file exists before trying to parse the arguments.
- Thanks to Dani Flexer <danif@ivory-sw.com> for reporting this.
-
- * apps/Gateway/Peer/Options.cpp (parse_args): Added the "C:"
- qualifier to the get_opt string. Thanks to Dani Flexer
- <danif@ivory-sw.com> for reporting this.
-
- * ace/Activation_Queue.h: Extended ACE_Activation_Queue so that it
- can be a proper base class by making the destructor virtual and
- putting the methods into the protected section. Thanks to Garry
- Brother <gmbroth@romulus.ncsc.mil> for this.
-
- * ace/XtReactor.cpp: Commented out most of the logic if we're
- running on Win32 because (1) it doesn't work correctly since
- HANDLEs are not ints and (2) there's no X windows on Win32
- anyhow...
-
- * ace/XtReactor.h: Made ACE_XtReactor be ACE_Export'd. Thanks to
- Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch> for reporting
- this.
-
-Thu Apr 23 13:54:33 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Malloc.i (free): added ACE_UNUSED_ARG (ptr) if ACE_NDEBUG.
-
- * include/makeinclude/platform_chorus.GNU: include dtool/htgt-cf.rf
- from $(MERGEDIR) instead of $(CLASSIXDIR). Thanks to
- Wei Chiang <chiang@horizon.nokia.com> for this update.
-
-Wed Apr 22 22:13:57 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/ace_bcc.ide: Added a new IDE for the Borland C++ compiler.
- Thanks to Valik Solorzano Barboza <valik@geodan.nl> for
- this.
-
- * ace/Msg_WFMO_Reactor.cpp (wait_for_multiple_events): Fixed a
- missing semi-colon. Thanks to Jorn Jensen <jornj@funcom.com>
- for reporting this.
-
-Wed Apr 22 21:53:12 1998 David L. Levine <levine@cs.wustl.edu>
-
- * config-linux-kcc.h: added #define ACE_SIZEOF_LONG_DOUBLE
- to 12 on i386. Thanks to Ben Eng <ben@jetpen.com> for
- reporting this.
-
-Tue Apr 21 18:38:22 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_ce_dll.dsp: Removing a deprecated /windowsce:noconvert
- linker flag.
-
-Mon Apr 20 15:39:42 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Handle_Set.cpp: Access fds_bits elements using an fd_mask
- pointer rather than array indexing of the fds_bits array itself.
- HP-UX 11 plays some games with the fd_mask type - fd_mask is defined
- as an int32_t, but the fds_bits is an array of longs. This makes
- plainly indexing through the array by hand tricky, since the FD_*
- macros treat the array as int32_t. So the bits are in the right
- place for int32_t, even though the array is long. This, they say,
- is to preserve the same in-memory layout for 32-bit and 64-bit
- processes. So, we play the same game as the FD_* macros to get
- the bits right. See /usr/include/sys/_fd_macros.h.
- On all other systems, this amounts to practically a NOP, since this
- is what would have been done anyway, without all this type jazz.
-
-Sat Apr 18 13:59:55 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Naming_Context.h: removed trailing ';' at end of
- ACE_FACTORY_DECLARE.
-
- * ace/OS.*,Sched_Params.{h,cpp}: added support on Solaris
- for setting the LWP priority. It is necessary to set the
- LWP priority for bound threads in the Real-Time scheduing
- class. Thread priority is essentially ignored. See the
- pthread_setschedparam man page for more info. Thanks to
- Fred Kuhns <fredk@arl.wustl.edu> for helping track this problem
- down.
-
- There is one drawback: to set the LWP priority, in ACE,
- a thread must set its own priority. There are examples
- in performance-tests/Misc/preempt.cpp:
-
- High_Priority_Task::svc (void)
- {
- // On Solaris 2.5.x, the LWP priority needs to be set.
- // This is the ACE way to do that . . .
- ACE_OS::thr_setprio (priority_);
-
- I don't know of a way to set the LWP priority for another
- thread. The problem is that there is no way that I know of
- to find the LWP ID of another (bound) thread. A thread can
- find the ID of its own LWP using _lwp_self ().
-
- * ace/config-sunos5*,README: added ACE_HAS_PRIOCNTL and
- ACE_NEEDS_LWP_PRIO_SET.
-
- * ace/config-osf1-4.0.h: added ACE_HAS_PRIOCNTL and
- ACE_LACKS_PRI_T.
-
- * performance-tests/Misc/preempt.cpp (svc): set LWP priority
- (on Solaris) by having the thread set its own priority.
- This test now passes on Solaris 2.5.1!
-
- * ace/High_Res_Timer.cpp (reset): initialize by assignment with
- 0 instead of using memset. Thanks to Carlos for noticing this.
-
- * ace/Object_Manager.cpp (ACE_Object_Manager ctor): allocate
- registered_objects_ after the allocation of ACE_STATIC_OBJECT_LOCK,
- just to be safe.
-
-Sat Apr 18 01:28:36 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Timeprobe.h (class ACE_Timeprobe): Changed ACE_Timeprobe to
- use ACE_OS::gethrtime().
-
-Sat Apr 18 01:14:30 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.cpp (start and stop): start and stop should only be done
- when ACE_Countdown_Time::max_wait_time_ is non-zero.
-
- * ace/Acceptor.cpp (open): Only set the reactor if calls to open()
- and register_handler() succeeds.
-
-Fri Apr 17 21:00:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux11.h: Changes and comments around the
- ACE_DEFAULT_BASE_ADDR definition for 64-bit HP-UX 11.
-
- * ace/Naming_Context.cpp
- * ace/Malloc_T.cpp
- * ace/Memory_Pool.cpp: Hacks to work around bugs in HP-UX aC++ in
- 64-bit mode on HP-UX 11.
-
- * ace/OS.i: Addition of a facility that allows config.h to specify
- additional flags for ACE_OS::mmap, above what's set by the caller.
- It's done using a new definition, ACE_OS_EXTRA_MMAP_FLAGS.
- This was added primarily to allow setting of the MAP_ADDR32 flag
- on HP-UX 11 if the ACE_DEFAULT_BASE_ADDR is set in the 32-bit range
- to allow 32-bit and 64-bit programs to map the same region.
-
-Fri Apr 17 11:40:38 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (invoke): Should check against null thr_desc, not
- thr_desc->flag (). Thanks to "Erickson, Jack (CICG - NY GFX)"
- <JErickson@exchange.ml.com> for reporting this.
-
- * ace/OS.h (ACE_Service_Object_Exterminator): Typedef of ACE
- factory cleanup funciton.
- (ACE_FACTORY_{DECLARE,DEFINE}): Added an extra argument to pass
- back destructor for the object created by the factory. Changed
- the ACE_FACTORY_DEFINE to generate this destructor function to
- pair with factory function so that we can deallocate the object
- in the same heap it was created.
- (ACE_SVC_INVOKE): This will now pass in 0, which means we don't
- want to use the destructor function.
-
- * ace/Parse_Node.{h,cpp} (symbol): Added an extra argument to get
- back the destructor function from ACE_FACTORY. Only
- Function_Node actually uses it.
- (ACE_Function_Node::symbol): Initialize the Service_Object with
- added destructor function ptr so it will get destructed in the
- "right place".
-
- * ace/Service_Config.{h,cpp} (load_static_svcs): Invoke the
- factory method with added argument to get back the destructor
- function and then, pass it in to ace_create_service_type
- function.
- (ACE_Service_Manager): Changed to use the more generic
- ACE_FACTORY_DEFINE than using ACE_SVC_FACTORY_DEFINE.
- (ACE_SERVICE_ALLOCATOR): Must match with signature of the
- new factory method.
-
- * ace/Service_Type.{h,cpp}
- (ACE_Service_Object_Type,ACE_Service_Type_Impl): Keep the
- destruction function in these object, if use provides one, then
- use it to destruct the object, otherwise, just use delete.
-
- * ace/Naming_Context.{h,cpp}: Changed to use
- ACE_FACTORY_{DEFINE,DECLARE}.
-
- * ace/Object_Manager.cpp: Changed the signature of
- Service_Manager.
-
- * ace/Svc_Conf.h: Changed the signature of
- ace_create_service_type.
-
- * ace/Svc_Conf_y.cpp:
- * ace/Svc_Conf.y: Try to get the destruction function from
- factories in svc_location.
- (ace_create_service_type): Pass in the destruction function if
- provided one.
-
-Fri Apr 17 08:31:38 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Signal.cpp (dispatch): Fixed a typo. Thanks for David
- Levine's help pointing this out.
-
-Thu Apr 16 21:12:48 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Signal.cpp: There was a major portability violation in the
- ACE_Sig_Handler::dispatch() method, which was previously
- acquiring a mutex lock. This is NOT permitted in the POSIX
- signal handler spec. In addition, the implementation had other
- nasty consequences related to dynamic allocation of memory in
- the signal handler, which has a bad habit of breaking
- non-reentrant uses of "new". The consequence of all this is
- that you really shouldn't be modifying signal handlers via the
- Reactor in multiple threads of control. In general, threads and
- signals are just plain evil, so they are best addressed via
- sigwait() anyhow...
-
- Thanks to Sumedh and Naga for first tracking this down.
-
-Thu Apr 16 20:51:42 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-pthread.h: added ACE_HAS_THREADS.
- ace/config-irix6.x-g++.h: added ACE_HAS_THREADS and ACE_MT_SAFE.
- Thanks to Dave Tallman <tallman@acsys.com> for reporting these.
-
-Thu Apr 16 04:14:53 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Timeprobe:
-
- This class is used to instrument code. This is accomplished by
- inserting time probes at different location in the code.
- ACE_Timeprobe then measures the time difference between two time
- probes.
-
- This class provides a lightweight implementation for measuring
- the time required to execute code between two time probes. When
- a time probe executes, it records the time, the id of the
- calling thread, and an event description. The event description
- can either be an unsigned long or a string (char *). If string
- are used, care must be taken cause only pointer copies are done
- and the string data is *not* copied.
-
- The recorded time probes can then be printed by calling
- print_times(). If you have used unsigned longs as event
- descriptions in any of your time probes, you must provide an
- event description table that maps the unsigned longs to readable
- strings. This map is a simple array of strings, and the event
- number is used as the index into the array when looking for the
- event description. If you have only used strings for the event
- description, this map is not necessary.
-
-Wed Apr 15 23:01:08 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (exit): Don't delete the ACE_Thread_Exit
- object of the thread here. ACE_Thread_Manager::exit will be
- called back again when performing TSS cleanup. Thanks to Dave
- Tallman <tallman@acsys.com> for the bug report.
-
-Wed Apr 15 17:12:14 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.x-hpc++.h: Explicitly set ACE_SIZEOF_LONG based
- on compiler switch for processor/memory model.
-
-Wed Apr 15 16:25:38 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (handle_signal): Changed break to return 0.
-
- * ace/OS.cpp (uname): We have to make sure that the size of
- (processor + subtype) is not greater than the size of
- name->machine. So we give half the space to the processor and
- half the space to subtype. The -1 is necessary for because of
- the space between processor and subtype in the machine name.
-
- Thanks to Andrew Marchewka
- (Andrew_Marchewka@SRT.CCMAIL.compuserve.com) for suggesting
- these changes.
-
-Wed Apr 15 08:52:52 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Reactor_Exceptions_Test (handle_input): removed
- ACE_NOTREACHED wrapper around return statement at end.
- Now that the previous statement is a function call, the
- compiler (cxx) doesn't detect that the statement can't
- be reached.
-
-Wed Apr 15 01:03:42 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (ACE_SOCKCALL_RETURN): Added a work-around for a
- Borland 5.02 compiler bug. The key turns out to be the
- throw-away intermediate assignment statement to correctly keep
- the value of WSAGetLastError(). Thanks to Dave Tallman
- <tallman@acsys.com> for reporting this.
-
-Tue Apr 14 23:35:19 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Profile_Timer.cpp (elapsed_rusage): The differences of user
- time and system time for GETRUSAGE were not calculated.
-
- * performance-tests/Synch-Benchmarks/Options.cpp (print_results):
- Added dump code for ACE_HAS_GETRUSAGE.
-
- * ace/ace_{dll,lib}.dsp: Removed Service_Main.cpp from the
- projects. We don't really need them in ACE DLL.
-
- * ace/Service_Main.cpp: Removed the file from CVS. Lots of
- Service_Config examples can be found all round ACE directories
- so we really don't need it here anymore.
-
-Tue Apr 14 20:30:53 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (mutex_init, cond_init): Added sections to properly
- handle error conditions on platforms which claim
- ACE_HAS_PTHREADS_1003_DOT_1C.
-
-Tue Apr 14 16:39:42 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE.cpp (ldfind): Fixed a miscalculated string size.
- Thanks to Jason Katz <Jason@rtswireless.com> for reporting the
- bug.
-
-Tue Apr 14 14:33:33 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Thread_Manager_Test.cpp (main): don't try to suspend/resume
- DCE threads, because they don't support it. Added a start barrier,
- to ensure that worker threads set up their signal handlers before
- the main thread tries to signal them. Drop DEFAULT_ITERATIONS from
- 100000 to 10000 because 100000 takes a long time on a 200 MHz
- Pentium.
-
-Tue Apr 14 12:59:04 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Hash_Map_Manager_Test.cpp: Changed the consts to
- size_t, as well...
-
-Tue Apr 14 11:40:23 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Hash_Map_Manager.cpp: made type, size_t, of String_Table_size
- explicit, instead of using the default type of int.
-
-Tue Apr 14 10:10:46 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.41 released.
-
-Tue Apr 14 07:19:25 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release (create_kit): ACE+TAO instead of ACE_TAO.
- Thanks to Doug for reporting this.
-
- * ace/OS.h (ACE_Thread_Adapter): added friend class declaration
- to avoid g++ warning: only defines a private destructor and
- has no friends.
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): only declare local
- thr_desc if ACE_HAS_WIN32 and ACE_HAS_MFC.
-
-Tue Apr 14 00:46:05 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.40 released.
-
-Mon Apr 13 19:19:13 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS: Made the destructor of ACE_Thread_Adapter private to
- keep people like Russ from abusing this class... ;-)
-
- * ace/OS.cpp (invoke): We were incorrectly deleting this and then
- using one of its fields! Thanks to the ever-vigilant Russ
- Noseworthy <rnosewor@objectsciences.com> for reporting this.
-
- * ace/Log_Record.cpp (print): Added VERBOSE_LITE support to the
- code so we don't spew out quite so much information.
-
- * ace/Log_Msg.cpp (log): Replaced all calls to
- ACE_Log_Record::print() so that they pass the
- ACE_Log_Msg::flags_ parameter.
-
- * ace/Log_Record.h: Changed the 'int verbose' parameter to 'u_long
- verbose_flag' parameter so that we can pass in the
- ACE_Log_Msg::flags_ and check to see what they are enabled with!
-
- * tests/test_config.h: Changed VERBOSE to VERBOSE_LITE so we don't
- have quite so much junk printed out for the tests!
-
- * ace/Log_{Priority,Record}: Added a new flag called VERBOSE_LITE
- that isn't quite as verbose as VERBOSE (it only prints things
- that can change between calls to the ACE_Log_Msg::log() method).
- In addition, also changed the ACE_Log_Record::print() method so
- it prints the string format for the ACE_Log_Priority types.
- This is a lot more legible than printing the numbers.
-
- * ace: Removed all uses of ACE_HAS_WILDCARD_BIND. This is now the
- default behavior. If there's some weird platform that DOESN'T
- have this behavior, we'll deal with that by setting the
- ACE_LACKS_WILDCARD_BIND flag.
-
- * ace/OS.cpp (invoke): Removed the (void *) cast on delete this.
- It wasn't necessary. Thanks to Steve Huston and David Levine
- for reporting this.
-
-Mon Apr 13 19:12:49 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/DEV_Connector.i (ACE_DEV_Connector):
- * ace/Asynch_IO.cpp (accept,addresses): UNICODE changes.
-
-Mon Apr 13 18:05:26 1998 Steve Huston <shuston@riverace.com>
-
- * tests/Thread_Manager_Test.cpp: Disabled the suspend/resume action
- for Pthreads platforms.
-
-Mon Apr 13 10:18:59 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.i (hrtime_to_tv): in tv.usec calculation,
- moved the cast to long to after the division by global_scale_factor_.
- This is necessary for compatibility with ACE_U_LongLong.
-
- * bin/make_release (get_versions): use $KIT instead of hard-coded
- ACE, so that it works with TAO. (tag): translate dots to
- underscores, because CVS doesn't allow dots in tags. Thanks to
- Doug and Hans Rohnert <rohnert@scr.siemens.com> for reporting these.
-
-Sun Apr 12 21:11:53 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Prevent using ACE_HAS_MOSTLY_UNICODE_APIS without UNICODE.
-
- * ace/OS.cpp (thr_create):
- * ace/Thread_Manager.cpp (spawn_i): Removed directive
- ACE_NO_THREAD_ADAPTER and its related code.
-
-Sat Apr 11 22:20:51 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Thread_Manager_Test.cpp (main): Don't check execute result
- of kill_grp statement if we are running on Win32 platforms.
- thr_kill is not supported there.
-
-Sat Apr 11 20:00:12 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.39, released Sat Apr 11 20:00:12 1998.
-
-Sat Apr 11 19:58:56 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Nanbor removed a bunch of *.MAK files, which were quite large
- and taking up lots of space.
-
-Sat Apr 11 18:58:24 1998 Steve Huston <shuston@riverace.com>
-
- * ace/INET_Addr.cpp: Fixed missing paren.
-
- * netsvcs/servers/servers4.mdp: Added ..\lib to include directories
- for Release build.
-
-Sat Apr 11 13:28:19 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.38, released Sat Apr 11 13:28:19 1998.
-
-Sat Apr 11 12:46:08 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-mvs.h: Added some ACE_SIZEOF_* macros for MVS.
- Thanks to Chuck Gehr <gehr@sweng.stortek.com> for reporting
- this.
-
- * ace/INET_Addr.cpp: Added a newline and a better explanation of
- what went wrong if an error occurs. Thanks to Luca for
- reporting this.
-
-Fri Apr 10 02:42:35 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Log_Msg.{h,cpp} (log_hexdump):
- * ace/ACE.{h,cpp} (format_hexdump): The buffer to be hex-dumped should
- always be of type (const char *) no matter we have UNICODE
- system strings or not.
-
- * ace/OS.{h,cpp} (ACE_CE_Bridge): This new class bridges
- a text-based ACE programs with a default window that prints out
- the default ACE_Log_Msg output.
-
- CE always uses non-static object manager and we replace the
- original main function with a well know entry that the main
- window program can call back from to invoke the ACE program in a
- separate thread.
-
- * ace/Log_Record.{h,cpp}: Added support for passing strings as
- windows messages.
-
- * ace/Log_Msg.cpp (log): Specialized CE support.
-
- * windoezCE: The template windows program that receives ACE
- messages. See CE-Status or README file for more info.
-
-Fri Apr 10 00:41:23 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Reactor_Exception_Test: Tidied the test up a bit. Thanks
- to Bob Laferriere <laferrie@gsao.med.ge.com> for suggesting
- this.
-
- * tests/test_config.h: Enabled ACE_Log_Msg::VERBOSE since it gives
- more information that can be useful for debugging.
-
-Fri Apr 10 00:04:03 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Proactor.cpp (post_completion): Added a new method to the
- Proactor. It can be used to post a result to the completion port
- of the Proactor. If errors occur, the result will be deleted by
- this method. If successful, the result will be deleted by the
- Proactor when the result is removed from the completion port.
- Therefore, the result should have been dynamically allocated and
- should be orphaned by the user once this method is called.
-
- Changed the timer mechanism to use this new method rather than
- posting to the completion port directly.
-
- Thanks to Jason Katz <Jason@rtswireless.com> for the
- improvements.
-
-Thu Apr 9 17:31:47 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Updated all the Makefile dependencies and also added the
- appropriate CVS strings to all Makefiles.
-
- * examples/IPC_SAP/SOCK_SAP: Improved both the CPP-unserver.cpp
- and CPP-inserver.cpp programs so they work identically wrt
- concurrency and logic.
-
- * ace/LSOCK_Stream.cpp: Fixed the get_remote_addr() and
- get_local_addr() methods to work correctly. Apparently,
- getpeername() doesn't work appropriately for UNIX domain
- sockets, so we simply have both methods call getsockname().
- Thanks to Chuck Gehr for pointing out this problem.
-
- * ace/FILE_IO.cpp (get_local_addr): The RHS has an additional
- field that is the FILE name, which did not get copied. Added an
- ACE_dynamic_cast() to do the right thing here. Thanks to Ganesh
- Pai for reporting this.
-
- * ace/Malloc*: Factored out all the code in ACE_Static_Allocator
- into a new non-templatized base class called
- ACE_Static_Base_Allocator so that we don't trigger multiply
- defined symbols when we use this in TAO. Thanks to Carlos for
- this very insightful trick!
-
- * tests/Thread_Manager_Test.cpp (main): Added ACE_ASSERT
- statements so that we bailout if things go awry. Thanks to
- Robert J. Laferriere <laferrie@gsao.med.ge.com> for reporting
- this.
-
-Thu Apr 09 18:06:53 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/High_Res_Timer.i (hrtime_to_tv): Cast the parameter for usec
- to long. It can be fixed because of Darrell's vigilance.
-
-Thu Apr 09 17:55:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x.h, config-hpux11.h, config-aix-4.2.x.h:
- Added ACE_HAS_WILDCARD_BIND.
-
-Thu Apr 09 16:43:26 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE.*: Changed *_version() functions to be non-inlined.
- After this change, inclusion of ace/Version.h can be moved into
- ACE.cpp. This change helps as all of ACE doesn't have to be
- compiled after Version.h changes (Version.h changes every time a
- new beta is produced).
-
-Thu Apr 9 12:27:23 1998 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * tests/Hash_Map_Manager_Test.cpp: POOL_SIZE was simple "const
- POOL_SIZE" I changed that to "const int POOL_SIZE". Added
- missing template instantiation for Static_Allocator.
-
-Thu Apr 09 10:50:18 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (dump): Fixed signed/unsigned mismatched
- warnings on NT. Thanks to Darrell for noticing the bug.
-
-Thu Apr 9 09:37:08 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc_T: Moved the ACE_Static_Allocator::dump() method into
- the Malloc_T.cpp file so we'd get a vtable... Thanks to David
- Levine for reporting this.
-
- * tests/Hash_Map_Manager_Test.cpp (run_test): Added a return
- value to make G++ and David Levine happy ;-).
-
-Thu Apr 09 10:50:18 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (dump): Fixed signed/unsigned mismatched
- warnings on NT. Thanks to Darrell for noticing the bug.
-
-Wed Apr 08 17:29:01 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/SOCK_Acceptor.cpp (open): There was a boo-boo in open() as
- we were only calling bind_port() and ignoring the port supplied
- by the user. Call bind_port only if port == 0.
-
-Wed Apr 8 01:09:52 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc_T: Added a new ACE_Static_Allocator class, which is
- highly optimized for allocations where (1) all the memory size
- is known in advance and (2) no deletions are done. This class
- will ultimately be used in TAO to improve it's startup
- performance for operation tables initialization.
-
- * tests/Hash_Map_Manager_Test.cpp: Enhanced the test so that it
- uses the new ACE_Static_Allocator feature.
-
- * ace/OS: Added support for the rename() method. Thanks to Ganesh
- Pai for suggesting this.
-
- * ace/config-win32-common.h,
- config-sunos*.h:
- config-irix-6*.h:
- Enable the ACE_HAS_WILDCARD_BIND macro.
-
- * ace/ACE.cpp: Modified the bind_port() method so that it is more
- efficient on platforms that interpret a 0 port to bind() as a
- request for the kernel to select the port. Thanks to Chris
- Cleeland for pointing this out.
-
- * ace/Hash_Map_Manager: Made a bunch of minor changes to fix some
- subtle deadlocks with intra-class locking.
-
- * tests/Map_Manager_Test.cpp: Restructured the tests so that we
- don't keep recomputing end() and rend() of the map in each loop
- iteration!
-
-Wed Apr 08 10:02:16 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: added this script that creates ACE and/or
- TAO releases.
-
- * Makefile: added support for make_release. See comments at
- the top of the Makefile. The old release mechanism has
- been retained; to use it: make release-old or
- make releaseall-old.
-
-Wed Apr 08 00:37:33 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE.cpp (bind_port): This call was not flexible enough as it
- always assumed that the user wanted INADDR_ANY. Added an extra
- parameter to this function where the user can pass in the addr
- that she is interested in. This extra parameter defaults to
- INADDR_ANY, so no existing should break.
-
- * ace/SOCK_Acceptor.cpp (open): Not enough information was being
- passed to the new ACE::bind_port() call. Changed open() so that
- the sin_addr part of the address is passed along to
- ACE::bind_port().
-
-Tue Apr 07 15:25:08 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-irix*.h: fixed determination of ACE_SIZEOF_LONG_DOUBLE,
- depending on system release and ABI. Thanks to Robert J.
- Laferriere <laferrie@gsao.med.ge.com> for figuring it all out.
-
-Mon Apr 06 01:29:35 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_ce_dll.dsp: Update project files. Rearrange dll filenames a
- bit so that it's eaier to have various ACE libraries for various
- CE supported CPUs. Files for every supported CPU are generated
- under CPU specific directory as follow:
-
- CPU Directory Name
- Sh3 series ace/WCE/SH aced.{lib,dll} ace.{lib,dll}
- MIPS series ace/WCE/MIPS aced.{lib,dll} ace.{lib,dll}
- x86 emulation ace/WCE/x86em aced.{lib,dll} ace.{lib,dll}
-
- * ace/config-win32-common.h: Prevent CE from using wsock32.lib.
-
-Sun Apr 05 16:44:31 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ASYS_ONLY_MULTIBYTE_STRING): New macro. Used to
- activate wchar string to char string conversion only under CE,
- under other cases, the argument to this macro is treated as
- a regular char string.
-
- * ace/INET_Addr.cpp (set): Changed to use
- ASYS_ONLY_MULTIBYTE_STRING. This has gotten out of control
- now. I need to think of a better name for these macros.
-
-Tue Apr 07 09:30:28 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_lynxos.GNU: set up PATH when
- cross-compiling. With this change, users don't need to
- do anything special to their platform_macros.GNU or
- environment to cross-compile for LynxOS (assuming that
- the default platform_lynxos.GNU configuration is suitable).
-
-Mon Apr 06 16:28:32 1998 Steve Huston <shuston@riverace.com>
-
- * examples/Service_Configurator/IPC-tests/server/svc.conf: Corrected
- library name to load tests from. Thanks to Sandro Doro
- <XDS@necsy.it> for noticing there was a problem here.
-
-Sun Apr 05 10:20:26 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_lynxos.GNU: only define
- CROSS-COMPILE if not building on LynxOS.
-
- * ace/OS.h: fixed ACE_CAST_CONST definition with Sun CC.
-
-Sun Apr 05 00:20:52 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE.h: Moved "#include "ace/OS.h" out of _ACE_H_ block to
- resolve the circular inclusion that occured when building ACE
- Unicode Release version.
-
-Sat Apr 04 21:19:32 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.37, released Sat Apr 04 21:19:32 1998.
-
-Sat Apr 04 19:41:03 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (thr_exit): Forgot to access creation flags thru
- the access function.
-
-Sat Apr 04 14:01:53 1998 Steve Huston <shuston@riverace.com>
-
- * performance-tests/Makefile: Put UDP back in dir list.
-
-Sat Apr 04 07:45:33 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.h,config-sunos4*.h,README: don't use
- u_longlong_t on Suns if ACE_LACKS_U_LONGLONG_T is defined.
- Define ACE_LACKS_U_LONGLONG_T in all SunOS4 config files.
- Thanks to John Lindal <jafl@cco.caltech.edu> for reporting
- this.
-
-Sat Apr 4 02:06:57 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (invoke,thr_exit): (*Win32*) We also need to consider
- threads that are not spawned by ACE_Thread_Manager by checking
- the validity of cached ACE_Thread_Descriptor. In any rate,
- please avoid using thread functions in ACE_Thread::* and
- ACE_OS::thr_* directly.
-
-Sat Apr 4 01:03:17 1998 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
-
- * ace/Map_Manager.cpp (map): Added map method for the iterator interface.
-
-Sat Apr 4 00:55:30 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/clients/Naming/{Client,Dump_Restore}/Makefile:
- Moved all program source names to PSRC, not SRC, for
- 'make depend'.
-
-Fri Apr 3 21:18:51 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.cpp (cleanup): Moved ACE_Cleanup::cleanup() back into the
- *.cpp file so that we have at least one non-inline virtual
- function.
-
- * ace/OS (cleanup): Created a dummy ACE_Cleanup constructor since
- the lack of this may be causing a bug with CC and the linker for
- TAO's IDL compiler. Also moved the constructor and destructor of
- ACE_Cleanup into the OS.i file and made them inline. We'll fix
- this bug yet!!!!
-
-Fri Apr 03 18:45:35 1998 Steve Huston <shuston@riverace.com>
-
- * apps/JAWS/clients/Blobby/Makefile
- * apps/JAWS/clients/Caching/Makefile
- * examples/ASX/Event_Server/Event_Server/Makefile
- * examples/ASX/UPIPE_Event_Server/Makefile
- * examples/Logger/simple-server/Makefile
- * examples/Mem_Map/IO-tests/Makefile
- * examples/Reactor/Multicast/Makefile
- * examples/Service_Configurator/Misc/Makefile
- * examples/Shared_Malloc/Makefile
- * performance-tests/Synch-Benchmarks/Makefile
- Adjusted for corresponding changes to rules.bin.GNU and/or
- rules.lib.GNU, below.
-
- * examples/Connection/non_blocking/Makefile
- * examples/Service_Configurator/IPC-tests/server/Makefile
- * examples/Timer_Queue/Makefile
- * performance-tests/Misc/Makefile
- Moved all program source names to PSRC, not SRC, for
- 'make depend'.
-
- * performance-tests/Makefile: Removed UDP from list of dirs to build.
-
- * include/makeinclude/rules.bin.GNU: Set OBJEXT and VOBJS from the
- SRC files in the Makefile (LSRC sets VLOBJS in rules.lib.GNU;
- SRC sets VOBJS in rules.bin.GNU).
-
- * include/makeinclude/rules.local.GNU: depend rule will also operate
- on $(PSRC) in addition to $(SRC). PSRC is new - if you have more
- than one program to build in a makefile, set PSRC to the source
- files for make depend.
-
- * include/makeinclude/rules.lib.GNU: Use VLOBJS for archive lib object
- files; using VOBJS gets it confused with VOBJS in rules.bin.GNU and
- makes it very difficult to build lib and exe from same Makefile.
-
-Fri Apr 3 10:40:10 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (invoke): We were using AfxGetThread to determine
- whether a thread was created with AfxBeginThread or
- _beginthreadex. This seemed to cause some subtle problem with
- MSVC 4.2. Since we always cached the Thread_Descriptor in TSS
- now, we can just check how a thread was created and use the
- appropriate thread exiting method. Thanks to Detlef Becker
- <Becker.Detlef@med.siemens.de> for tracing down this obscure
- bug.
-
- * ace/Thread_Manager.{h,i} (flags): Added this new access function
- into ACE_Thread_Descriptor to get the creation flags for a
- thread.
-
-Fri Apr 03 10:01:32 1998 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (handle_timed_complete): On AIX, always check a
- completed non-blocking connect() because AIX sets only the write
- handle from select regardless of whether the connect succeeded
- or not.
-
- * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: Removed
- the #include <fstream.h> - this is taken care of via ace/OS.h.
- Having the #include in Dump_Restore.cpp caused some very weird
- compile errors on DG/UX.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: Fixed template instantiations
- for Base_Optimizer, non-static logging cases.
-
-Fri Apr 03 09:16:24 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_TSS_Info::key_in_use): return true if
- thread_count_ > 0, not if it is != -1. Thanks to Chris
- Lahey <CLahey@cccis.com> for finding and reporting this.
-
- * ace/OS.i (thr_yield): on VxWorks, changed argument of
- ::taskDelay () from 0 to 1. With an argument of 0,
- ::taskDelay () doesn't appear to yield the current thread.
-
- * tests/run_tests.vxworks: Reactor_Notify_Test is OK on
- VxWorks now.
-
- * ace/OS.h,config-sunos5.5-sunc++-4.x.h: added ACE_CAST_CONST,
- so that we can work around broken cast constness requirements
- with Sun CC 4.2. It requires, for example, that a reinterpret
- cast to a local pointer variable in a const member function be
- const. Wrong.
-
- * ace/Basic_Types.i (operator/ and %): fixed comments: former
- instead of latter.
-
-Thu Apr 02 16:23:12 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.i (dump): Also changed the method from HANDLE
- to ACE_HANDLE.
-
-Thu Apr 2 15:36:20 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Added
-
- #define ACE_HAS_STL_QUEUE_CONFLICT
-
- to the config files which had ACE_HAS_STL_MAP_CONFLICT defined,
- i.e.,
- config-sunos5.5-g++.h
- config-sunos5.5-sunc++-4.x.h
-
- Thanks to Russ Noseworthy <rnosewor@objectsciences.com> for
- reporting this.
-
-Thu Apr 2 15:14:35 1998 Sumedh Mungee <sumedh@lindy.cs.wustl.edu>
-
- * ace/WFMO_Reactor.h (dump): Renamed HANDLE to ACE_HANDLE.
-
-Thu Apr 02 14:23:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Reactor_Notify_Test.cpp (Supplier_Task::handle_output):
- added a thr_yield () so that the Supplier_Task always gets a
- chance to run.
-
- * tests/run_tests.sh: Reactor_Notify_Test is OK on Chorus now.
-
-Wed Apr 01 18:59:42 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (dump): Added dump() methods.
-
- * ace/Msg_WFMO_Reactor.cpp (wait_for_multiple_events): Reverted
- Nanbor's change. The flag is properly set in
- ACE_Msg_WFMO_Reactor::alertable_handle_events().
-
-Wed Apr 1 15:40:01 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace: Made the WMFO_Reactor and Select_Reactor's dump() methods
- virtual to underscore the fact that the Reactor_Impl's new
- dump() method is also virtual.
-
- * ace/OS.h: Changed ACE_HAS_STL_MAP_CONFLICT to
- ACE_HAS_STL_QUEUE_CONFLICT for the appropriate cases in ACE.
- Thanks to Russ Noseworthy <rnosewor@objectsciences.com> for
- reporting this.
-
- * ace/CORBA_Handler.cpp (ACE_CORBA_Handler): The reference_count_
- data member wasn't being initialized correctly. Thanks to
- Mahesh Chandwani <chandwani@lucent.com> for reporting this.
-
- * ace: Renamed config-sunos5.5-sunc++-4.x-orbix.h to
- config-sunos5.x-sunc++-4.x-orbix.h since this config file works
- with SunOS 5.5 and 5.6. Thanks to Mahesh Chandwani
- <chandwani@lucent.com> for reporting this.
-
-Wed Apr 01 16:28:30 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Reactor.{h,cpp},Reactor_Impl.h (dump): added dump ()
- method, which calls the (existing) dump () in the reactor
- implementation.
-
- * ace/High_Res_Timer.* (hrtime_to_tv): fixed conversion of
- ACE_hrtime_t to ACE_Time_Value to be compatible with
- ACE_U_LongLong.
-
-Wed Apr 01 09:32:27 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Msg_WFMO_Reactor.cpp (wait_for_multiple_events): Should not
- wait for all objects in this function.
-
-Tue Mar 31 15:27:25 1998 Steve Huston <shuston@riverace.com>
-
- * apps/JAWS/server/JAWS_Pipeline_Handler.cpp: Defined 'status' in
- the put() function.
-
- * ace/config-dgux-4.x-ghs.h: Removed settings for ACE_SIZEOF_LONG_LONG
- since the compiler doesn't really support a long long that ACE
- is looking for (64-bit). Use the ACE-supplied ACE_ULongLong type.
-
-Tue Mar 31 10:46:23 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Msg_WFMO_Reactor.cpp: Changed to use
- MsgWaitForMultipleObjects if we are not under NT. Also in
- MsgWaitForMultipleObjectsEx, we should use NT defined flags
- instead of the boolean "alertable" directly.
-
-Tue Mar 31 07:22:09 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (cond_timedwait): restored ACE_HAS_DCE_DRAFT4_THREADS
- behavior to use absolute time. Special-case only on LynxOS,
- which requires a relative time. Thanks to Steve Coy
- <stevec@magna.com.au> for reporting this on HP-UX.
-
- * tests/Thread_Manager_Test.cpp (worker): cache the thread's
- Signal_Catcher on entry. That way, we don't have to
- dereference it in the worker's loop. It seems that a worker
- thread can continue to run after main exits (and cleans up
- TSS). That shouldn't happen, but it looks like it does on
- Linux, LynxOS, and Digital Unix. Thanks to James CE Johnson
- <jcej@lads.com> for verifying that the fix works on Linux/
- Intel and DU 4.0.
-
- * examples/Threads/task_five.cpp (main): wrapped return statement
- at end with ACE_NOTREACHED. This will prevent compiler warnings
- from Green Hills and DEC CXX, and maybe SGI cc.
-
-Fri Mar 27 23:04:08 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-common.h: added ACE_DEFAULT_MAX_SOCKET_BUFSIZ
- 65535, because some Linux 2.1.x kernels fail setsockopts if
- bigger than that. Thanks to Ravi Nagabhyru <ravi@future-minds.com>
- for reporting that. Also changed hard-code ACE_PAGESIZE to
- ACE_HAS_GETPAGESIZE, even though getpagesize () doesn't get
- used. ACE_OS::getpagesize () uses sysconf on Linux.
-
- * performance-tests/UDP/udp_test.cpp (main): getopt.optarg instead
- of optarg, for -f option.
-
- * ace/IPC_SAP.cpp (enable,disable): removed the ACE_NOTREACHED
- wrappers around the return statements. Seems that some versions
- of Green Hills complain about an unreachable statement, but
- we'll live with it. This change is only visible with SGI,
- DEC CXX, and Green Hills.
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: added missing
- close paren after ppc conditional. Thanks to Brian Mendel for
- reporting this.
-
-Fri Mar 27 16:47:26 1998 Steve Huston <shuston@riverace.com>
-
- * tests/tests.mdp: Made settings for Env_Value_Test consistent with
- other tests, so that run_tests.bat can find it.
-
- * netsvcs/servers/servers4.mdp: Added ..\lib to Include directories
- when building in Release mode.
-
-Fri Mar 27 13:55:13 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/High_Res_Timer.i (gettime): ACE_OS::gettimeofday doesn't
- take any argument.
-
-Fri Mar 27 09:50:52 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Strategies_T.cpp: Added #include "ace/Service_Repository.h" for
- compile on HP. Thanks to Steve Coy <stevec@magna.com.au> for this.
-
-Fri Mar 27 09:21:21 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/test_config.h: with Green Hills on VxWorks, rename
- main to ace_main for compatibility with run_tests.vxworks.
-
- * ace/OS.{h,i},High_Res_Timer.* (gethrtime): added an optional
- argument to allow specifying start/increment/stop to a timer.
- It is currently only used on Chorus. On Chorus, using
- the default ACE_HRTIMER_GETTIME will use clock_gettime ()
- instead of sysBench (). sysBench () disables interrupts,
- so it must be used with care.
-
-Thu Mar 26 21:18:57 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.h,config-g++-common.h,config-freebsd*.h,
- config-netbsd.h: moved setting of ACE_SIZEOF_LONG_DOUBLE to 12
- from Basic_Types.h to config-g++-common.h and the FreeBSD/NetBSD
- config files.
-
-Thu Mar 26 20:53:30 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Containers.{h,i,cpp}: Changed the template parameter name
- <SIZE> to <ACE_SIZE> to avoid namespace polution. Thank to John
- Mulhern <9107@MN3.LAWSON.lawson.com> for suggestion this.
-
-Thu Mar 26 17:23:38 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.36, released Thu Mar 26 17:23:38 1998.
-
-Thu Mar 26 12:54:57 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/IPC_SAP.cpp (enable,disable): wrapped return statement
- at end with ACE_NOTREACHED.
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: added support
- for x86 targets.
-
- * ace/Basic_Types.h: sizeof (long double) is 8 on ghs/VxWorks/i386,
- not 12.
-
-Wed Mar 25 10:10:04 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_{chorus,vxworks5.x}_ghs.GNU:
- change OFLAGS to OCFLAGS.
-
- * include/makeinclude/platform_chorus_ghs.GNU: if debug is enabled,
- link with crth_d.s.o instead of crth.s.o.
-
- * ace/config-g++common.h: don't #define
- ACE_HAS_TEMPLATE_SPECIALIZATION with egcs 2.91. Thanks to
- Sudish Joseph <sj@eng.mindspring.net> and
- Loren Rittle <rittle@comm.mot.com> for reporting this
- apparent bug with egcs 2.91. (egcs 2.90 builds ACE cleanly
- with ACE_HAS_TEMPLATE_SPECIALIZATION.)
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: add VxWorks
- host bin directory to PATH if its not already there.
-
-Tue Mar 24 19:48:44 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Proactor.cpp (timeout): Changed comparison from || to
- &&. Thanks to Jason Katz <Jason@email.rts-inc.com> for reporting
- this.
-
-Tue Mar 24 18:14:18 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Env_Value_T.h: added #include "ace/OS.h" to get the definition
- for ACE_static_cast - AIX xlC needs it for auto template generation.
-
-Tue Mar 24 09:00:36 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Missing newline after the "DISABLED" message.
-
-Tue Mar 24 07:38:44 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5-g++.h: replaced ACE_PAGE_SIZE with
- ACE_HAS_GETPAGESIZE, and added ACE_HAS_STL_MAP_CONFLICT.
- Thanks to Loren Rittle <rittle@comm.mot.com> for reporting
- these.
-
-Mon Mar 23 12:06:30 1998 David L. Levine <levine@cs.wustl.edu>
-
- * performance_tests/UDP/udp_test.cpp: made use of the Reactor
- optional. With this change, the performance is comparable
- to the original C version.
-
- * ace/OS.{h,i} (wslen,wscpy): added these, and WChar typedef,
- for TAO.
-
- * include/makeinclude/platform_chorus_ghs.GNU: moved directories
- to /project/doc/mvme/.
-
- * ace/config-vxworks5.x.h: protected #define of ACE_MAIN so that
- it can be #defined on the command line.
-
-Mon Mar 23 11:38:43 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (MAXPATHLEN): Guard the MAXPATHLEN definition with
- #ifndef in case if has already been defined. Thanks to "Patrick
- J. McNerthney" <pat@thememedia.com> for reporting this.
-
-Mon Mar 23 03:18:50 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.35, released Mon Mar 23 03:18:50 1998.
-
-Mon Mar 23 00:03:37 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Reactor/ReactorEx/test_abandoned.cpp: Tests the
- WFMO_Reactor's ability to handle abandoned mutexes.
-
- * examples/Reactor/ReactorEx/test_apc.cpp: Tests the
- WFMO_Reactor's ability to handle regular APC notifications.
-
-Sun Mar 22 23:47:00 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp: Added code to the Reactor to make it more
- resilient when the wait() function returns WAIT_IO_COMPLETION
- and WAIT_ABANDONED.
-
- ok_to_wait: Keep waiting if wait() returns WAIT_IO_COMPLETION.
-
- dispatch: Return <handlers_dispatched> if wait() returns
- WAIT_IO_COMPLETION.
-
- dispatch_handles: Added code to correctly handle WAIT_ABANDONED
- and to correctly figure out the index of the handler to be
- dispatched.
-
- Thanks to Beskrovny Evgeny (evgeny_beskrovny@icomverse.com) of
- Comverse Network Systems for pointing out the problem with
- WAIT_IO_COMPLETION.
-
- * ace/Reactor.cpp (run_alertable_event_loop): Added new function
- that runs the Reactor using alertable_handle_events() instead of
- handle_events().
-
-Sat Mar 21 19:58:42 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (flock_destroy): lock->lockname_ should be cast to
- LPTSTR instead of char*. Thanks to Goran Lowkrantz
- <Goran.Lowkrantz@infologigruppen.se> for reporting this.
-
- * examples/Threads/task_five.cpp: Allow users to set thread stack
- size from command lines. If a user doesn't give one, it will be
- set to 8k on non-Windows platforms.
-
-Fri Mar 20 22:07:15 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE_Library.{mak,mdp}: Added Msg_WFMO_Reactor.
-
- * ace/Asynch_IO.cpp (cancel): Added version check because MSVC 4.2
- doesn't support CancelIo.
-
-Fri Mar 20 21:46:16 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.34, released Fri Mar 20 21:46:16 1998.
-
-Fri Mar 20 20:53:27 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Parse_Node.cpp: Fixed typos.
-
-Fri Mar 20 14:18:53 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * performance-tests/UDP/udp_test.cpp: Completed the ACE'ification
- of this test.
-
-Fri Mar 20 09:31:22 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: with ACE_LACKS_WCHAR_T, changed wchar_t typedef
- from long to ACE_UINT32 to ensure that it is 4 bytes on
- any platform.
-
- * performance-tests/UDP/udp_test.cpp: added this test, which
- provides UDP performance statistics. Thanks to Fred Kuhns
- <fredk@arl.wustl.edu> for contributing the test.
-
-Thu Mar 19 10:15:27 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i: Changed the dynamic library load/unload code so that
- on HP-UX, g++ does the same thing as aC++ (not like HP C++), using
- <dl.h> and shl_(un)load. Thanks to Kirill Rybaltchenko
- <Kirill.Rybaltchenko@cern.ch> for this change.
-
-Thu Mar 19 10:13:35 1998 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Misc/preempt.cpp: 1) Added -f option to fork
- instead of spawning new threads. 2) Added -l option for
- specifying number of iterations of low priority thread/process.
- 3) On Solaris, print LWP ID.
-
-Thu Mar 19 02:47:42 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp: Link against user32.lib for all configurations
- for we now use Msg_WFMO and related APIs in ACE. (We should do
- the same to ace_lib.dsp.)
-
- * ace/config-WinCE.h: Added dummy definition of stdin and stdout.
- They don't have any real effect.
-
- * ace/ACE.{h,cpp} (ldopen,ldfind): Made these functions visible
- under CE. Modified them to work under CE.
-
- * ace/OS.cpp: Added scope name to day_of_week_name and
- month_name. They are used only on CE.
-
- * ace/OS.{h,i}: Added some dummy C methods for CE. Yacc and Lex
- generated codes use these functions, although we don't really
- use them in ACE.
-
- * ace/OS.i (exit): Added implementation of ACE_OS::exit under CE. Since
- there's no ExitProcess available, I use TerminateProcess, which
- is not exactly the same as using ExitProcess but that's the
- closest thing I can think of.
- (open): Made the char version unsupported under CE.
- (fread,fwrite,...): Added dummy C methods definition for CE.
-
- * ace/Parse_Node.cpp: Regular CE stuff. There's a boundary
- of char/wchar functions somewhere in this file. Most Svc_Conf
- stuff uses char functions but the information gets converted to
- wchar later.
-
- * ace/Service_Config.{h,i}: Added char version function for
- Service_Type under CE. Service_Type (and its subclasses) are
- the boundary of char/wchar functions.
-
- * ace/Service_Object.{h,i}: Added the chname method which always
- returns char value of a Service_Object under all platforms.
-
- * ace/Svc_Conf.y:
- * ace/Svc_Conf_y.cpp:
- * ace/Object_Manager.{cpp}: Regular CE stuff.
-
- * ace/Svc_Conf_l.cpp: Regular CE stuff. Haven't figure out a way
- to modify this from Svc_Conf.l yet.
-
- * ace/Service_Config.cpp
- * ace/Object_Manager.{cpp}: Ifdef'ed inclusion of Naming Context
- related header files out. Naming context uses Registry which
- uses iostream and STL, both are not available on CE (yet?).
-
- * ace/WFMO_Reactor.{h,cpp}:
- * ace/Proactor.{h,i,cpp}:
- * ace/Asynch_IO.{h,cpp}: Ifdef'ed the body so they are not visible
- under CE. CE doesn't have asynchronous IO.
-
-Wed Mar 18 21:30:39 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.33, released Wed Mar 18 21:30:39 1998.
-
-Wed Mar 18 16:36:17 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Makefile (releaseall): There is no more TAO.tar.gz. There are
- now two tar files, ACE.tar.gz and ACE+TAO.tar.gz.
- ACE+TAO.tar.gz contains ALL of ACE. In particular, it will
- always have the same version number and same ACE contents as
- ACE.tar.gz. The intent here is that people who just want to use
- ACE will use ACE.tar.gz and people who want to use ACE and TAO
- will use ACE+TAO.tar.gz. Thanks to David Levine and Irfan for
- helping with this.
-
-Wed Mar 18 15:50:30 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (ACE_Log_Msg): Added codes to grab
- ACE_Log_Msg_Manager's lock while updating the instance_count_.
- There was a race condition without the change. Thanks to Detlef
- Becker's <Detlef.Becker@med.siemens.de> thread creation stress
- test to reveal the bug.
-
-Tue Mar 17 17:20:00 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Threads/test.dsw:
- * examples/Threads/task_five.cpp:
- * examples/Threads/task_five.dsp:
- * examples/Threads/Makefile: Added a new ACE_Task testing
- program. Thanks to Detlef Becker <Detlef.Becker@med.siemens.de>
- for providing the source.
-
-Wed Mar 18 11:00:11 1998 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (map): This method has been added to
- the ACE_Hash_Map_Iterator_Base class.
-
-Wed Mar 18 09:25:30 1998 Chris Gill <cdgill@tango.cs.wustl.edu>
-
- * ace/ace.dsw: added user32.lib to link for dynamic library on NT
- for all builds.
-
-Wed Mar 18 09:22:13 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Containers.cpp,Hash_Map_Manager.cpp,Map_Manager.cpp
- (operator *): initialize retv to 0 to avoid warning about
- using it before setting its value.
-
- * tests/Thread_Mutex_Test.cpp (test): added no-op statement to
- suppress GHS warning about unused local variable "mutex".
-
- * tests/Priority_Buffer_Test.cpp (consumer): added no-op statement
- to suppress GHS warning about unused local variable "cur_priority".
-
- * ace/README: removed ACE_HAS_BOOL. It was unused.
-
- * performance-tests/Misc/basic_func.{h,cpp},basic_perf.cpp:
- With MSVC 5.0, do something in the empty iteration because
- otherwise it gets completely optimized away. Thanks to
- Alexander Ovsiankin <sasha@technologist.com> for providing
- this fix.
-
-Tue Mar 17 23:53:56 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Threads/task_five.cpp (main): Reformatted Detlef's new
- torture test so that it conforms to ACE programming conventions.
-
-Tue Mar 17 23:22:20 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Reactor.cpp (ACE_Reactor): If
- ACE_USE_MSG_WFMO_REACTOR_FOR_REACTOR_IMPL is defined, use
- ACE_Msg_WFMO_Reactor for ACE_Reactor::instance().
-
- * examples/Reactor/ReactorEx/test_window_messages.cpp: Tests
- Msg_WFMO_Reactor's ability to handle regular events and window
- messages.
-
-Tue Mar 17 21:41:57 1998 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Threads/task_five.cpp (svc): use ACE_OS::sleepq
- instead of ::Sleep. (main): declare "ii" outside of the
- first loop because it is used in other loops.
-
-Tue Mar 17 16:02:26 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor: Changes were made to WFMO_Reactor to make it
- easier to extend it to handle window messages:
-
- - dispatch_handler() checks if there are window messages that
- need to be dispatched if the <index> matches <max_handlep1>.
- If there are, they are dispatched by calling
- dispatch_window_messages().
-
- - dispatch_window_messages() is a noop for WFMO_Reactor.
-
- - Checking the return values from Wait*() functions was changed
- as (WAIT_OBJECT_0 + nCount) is now a valid index.
-
- - Checking for remaining handles was abstracted into
- poll_remaining_handles().
-
- - Expiring of timer was abstracted out into expire_timers().
- Only the owner thread expires the timers.
-
- - calculate_timeout() was removed from
- wait_for_multiple_events().
-
- * ace/Msg_WFMO_Reactor: A new Reactor that specializes the
- WFMO_Reactor. WFMO_Reactor uses WaitForMultipleObjects while
- Msg_WFMO_Reactor uses MsgWaitForMultipleObjects. This allows
- the Msg_WFMO_Reactor to react to Windows and COM/DCOM messages
- in addition to the regular WFMO_Reactor events.
-
- Thanks to Beskrovny Evgeny (evgeny_beskrovny@icomverse.com) of
- Comverse Network Systems for contributing this to ACE.
-
-Tue Mar 17 13:15:11 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Future.cpp: Added missing ACE_MT macros so that we now
- compile correctly if we don't have threads. Thanks to Laura
- Paterno <lpaterno@d0chb.fnal.gov> for reporting this.
-
-Tue Mar 17 15:13:17 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp (dump): fleshed out the implementation.
-
- * ace/Profile_Timer.{h,cpp} (dump): implemented for platforms
- w/o ACE_HAS_PRUSAGE_T and ACE_HAS_GETRUSAGE.
-
- * ace/OS.i (gethrtime): with ACE_HAS_CLOCK_GETTIME, carefully
- construct return value to avoid arithmetic overflow if
- ACE_LACKS_LONGLONG_T.
-
-Mon Mar 16 22:18:07 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/IPC_SAP.cpp: Moved return values outside of the #ifdefs to
- quiet warning messages with KAI C++. Thanks to Laura Paterno
- <lpaterno@d0chb.fnal.gov> for reporting this.
-
-Tue Mar 17 00:04:53 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Svc_Conf.y:
- * ace/Svc_Conf_y.cpp: Applied "Regular CE Tricks [TM]".
-
-Mon Mar 16 23:34:39 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/README:
- * ace/config-WinCE.h: Added ACE_LACKS_STRRCHR.
-
- * ace/OS.i: Added implementation of ACE_OS::strrchr () when
- platforms don't provide one.
-
-Mon Mar 16 16:08:45 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp: set global_scale_factor_ to 1000 with
- ACE_HAS_CLOCK_GETTIME, because clock_gettime has nanosecond
- resolution, and with PSOS.
-
- * ace/Profile_Timer.{h,cpp},tests/Handle_Set_Test.cpp: use units
- of microseconds instead of seconds if ACE_LACKS_FLOATING_POINT.
-
- * ace/OS.i (hostname): on Chorus, try the HOST environment variable
- if ::gethostname () returns an empty string.
-
-Mon Mar 16 13:04:58 1998 Seth Benjamin Widoff <sbw1@waltz.cs.wustl.edu>
-
- * ace/OS.h:
- Extended the ACE_HAS_STL_MAP_CONFLICT to include 'queue' as well
- as 'map.' 'queue' is defined in sys/stream.h, which is included in
- OS.h by netinet/in.h and sys/timod.h.
-
-Mon Mar 16 00:22:40 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * CE-status: Updated CE port status.
-
- * ace/config-WinCE.h: Added macro definitions for EOF and BUFSIZ.
-
- * ace/OS.{h,i} (ace_isspace): Added both char and wchar version
- functions. Notice that this can't be called isspace because
- most compilers implement isspace as a macro.
- (dlerror,dlsym): Added wchar version of these functions under CE.
-
- * ace/OS.cpp (fork_exec): Modified parameters passed to
- CreateProcess under CE.
-
- * ace/ARGV.{h,i,cpp}: Unicodize this class under CE. Notice that
- under CE, you won't be able to use environment variable
- substitution since there's no environment variable at all.
-
- * ace/Reactor.cpp: Don't include Service_Config.h and
- WFMO_Reactor.h under CE for now. Prevent Reactor from
- reconfigure the service configurator.
-
- * ace/Task.cpp: Don't include Service_Config.h under CE for now.
- Prevent Task_Base from reconfigure the service configurator.
-
- * ace/SString.cpp: Don't include Service_Config.h under CE for
- now.
-
- * ace/Svc_Conf.h:
- * ace/Shared_Object.{h,cpp}:
- * ace/Service_Type.{h,i,cpp}:
- * ace/Service_Repository.{h,cpp}:
- * ace/Service_Object.{h,i,cpp}:
- * ace/Service_Manager.{h,cpp}:
- * ace/Service_Config.{h,i,cpp}: Unicodize service configurator
- related classes. I still need to find a point which breaks the
- usage of char functions that flex and yacc use and wchar
- functions that most CE functions use.
-
- * ace/Get_Opt.{h,cpp}:
- * ace/Local_Token.{h,i,cpp}:
- * ace/Map_Manager.cpp:
- * ace/Message_Queue.cpp:
- * ace/Module.{h,i,cpp}:
- * ace/Parse_Node.cpp:
- * ace/Pipe.cpp:
- * ace/Stream.{h,cpp}:
- * ace/Stream_Module.{h,cpp}:
- * ace/Token_Manager.{h,cpp}:
- * ace/Activation_Queue.cpp: Unicodize classes. Regular CE stuff.
-
-Sat Mar 14 06:43:32 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.h,config-win32-common.h,config-irix*.h:
- moved WIN32 and SGI-specific code out of Basic_Types.h and
- into their respective config files.
-
- * ace/Object_Manager.h: changed ACE_HAS_NON_STATIC_OBJECT_MANAGER
- to ACE_HAS_NONSTATIC_OBJECT_MANAGER in comments. Thanks to
- Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch> for reporting
- this.
-
- * include/makeinclude/platform_chorus_ghs.GNU: set PATH, and
- remove /tmp/gh_*.[os] files that GreenHills leaves.
-
- * ace/INET_ADDR.cpp (get_host_name): on Chorus, save errno in
- error so that it gets propagated back to the caller.
-
-Sat Mar 14 00:13:22 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task.h (ACE_Task_Base): Give a default value of 0 for the
- Thread Manager so we can use this as a base class.
-
- * tests/Future_Test.cpp: Since the Scheduler provides its own
- activation queue it doesn't make sense to inherit from ACE_Task
- (which provides its own queue) but instead ACE_Task_Base
- (which doesn't define its own queue). Thanks to Loren Rittle
- <rittle@comm.mot.com> for reporting this.
-
- * examples/Threads/future[12].cpp: Since the Scheduler provides
- its own activation queue it doesn't make sense to inherit from
- ACE_Task (which provides its own queue) but instead
- ACE_Task_Base (which doesn't define its own queue). Thanks to
- Loren Rittle <rittle@comm.mot.com> for reporting this.
-
- * examples/Threads/future[12].cpp: Removed the explicit call to
- scheduler_->close() to avoid closing the scheduler down twice.
- Thanks to Loren Rittle <rittle@comm.mot.com> for reporting this.
-
-Fri Mar 13 23:41:44 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.cpp (ACE_Process_Options): Moved column out of
- ifdef'ed area.
-
-Fri Mar 13 21:17:51 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Process.cpp (ACE_Process_Options): reordered initializers
- to match declaration order.
-
-Fri Mar 13 17:30:16 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.{h,i,cpp}: As CE's CreateProcess is basically
- broken, you can only start a new process using ACE_Process. You
- cannot set any of environment, process attributes, thread
- attributes, current directory, stratup info, and security
- attributes. I have modified these files so that most attribute
- access functions just do nothing. Some of "do nothing"
- functions were defined as ACE_INLINE on CE.
-
- * ace/Memory_Pool.cpp: Regular CE stuff.
-
-Fri Mar 13 17:42:17 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (handle_signal): If there are still
- notification in the queue, we need to wake up again.
-
-Fri Mar 13 09:09:08 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Profile_Timer.*,config-chorus.GNU,README,
- tests/Handle_Set_Test.cpp (test_performance): added
- ACE_LACKS_FLOATING_POINT support.
-
- * include/makeinclude/platform_chorus_ghs.GNU: removed
- -X445 from CFLAGS. I don't know what it does.
-
-Fri Mar 13 01:10:36 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor: The following changes were made to make the
- registration and removal of event_handlers from WFMO_Reactor
- more robust. Thanks to Jonathan Biggar <jon@floorboard.com> for
- helping out.
-
- - ACE_WFMO_Reactor_Handler_Repository::Common_Info now contains
- the delete_entry_ and close_masks_ fields as these were now
- common to all three structures.
-
- - handle_additions() and handle_deletions() were changed to
- make_changes_in_current_infos(),
- make_changes_in_suspension_infos(), and
- make_changes_in_to_be_added_infos()
-
- - Correct range for suspend_handlers() is 0 to max_handlep1_
- rather than (max_handlep1_ - 1)
-
- - suspend_handlers(),
- resume_handlers(),
- add_network_events_i(),
- unbind_i(),
- suspend_handler_i(),
- resume_handler_i(),
- unbind_all(),
-
- now go through the to_be_add_info_ array when making changes.
-
- * examples/Reactor/ReactorEx/test_prerun_state_changes.cpp: New
- test added to check the Reactor's ability to handle state
- changes before getting a chance to run.
-
- * examples/Reactor/ReactorEx/test_talker.cpp (main): Remove the
- Procator from the Reactor so that the Proactor is not called
- after it has been destroyed.
-
-Thu Mar 12 19:36:43 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ACE-INSTALL.html: Tidied up a bunch of things in this file.
- Also, created a new $ACE_ROOT/os-patches/ directory and moved
- the patches for Linux and LynxOS into this in order to
- consolidate the patches into one location.
-
- * ace/WFMO_Reactor.cpp (upcall): Cleaned up a bunch of code to (1)
- avoid a nasty "dangling else" bug and (2) simplify a bunch of
- if/if statements. Thanks to Jonathan Biggar
- <jon@floorboard.com> for pointing this out.
-
-Thu Mar 12 18:21:15 1998 James C Hu <jxh@cs.wustl.edu>
-
- * ace/config-linux-common.h: Incorporated changes that were
- suggested by Robert Hanzlik <robi@codalan.cz> to get ACE to
- compile on Linux using glibc 2.1 and libg++/gcc 2.8.
-
-Thu Mar 12 17:25:28 1998 James C Hu <jxh@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added a table to Supported Platforms and
- Compilers.
-
-Thu Mar 12 16:28:32 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * Apply regular string manipulation for CE to following files:
- ACE.cpp ARGV.cpp Acceptor.cpp Activation_Queue.cpp
- Asynch_Acceptor.cpp Asynch_IO.cpp CORBA_Handler.cpp
- Connector.cpp Containers.cpp DEV_Addr.cpp Dynamic_Service.cpp
- FIFO.cpp FIFO_Recv.cpp FIFO_Recv_Msg.cpp FIFO_Send.cpp
- FIFO_Send_Msg.cpp FILE_Addr.cpp FILE_Connector.cpp Filecache.cpp
- Future.cpp Get_Opt.cpp Hash_Map_Manager.cpp LSOCK.cpp
- LSOCK_CODgram.cpp LSOCK_Connector.cpp LSOCK_Dgram.cpp
- Local_Name_Space_T.cpp Local_Tokens.cpp Local_Tokens.i
- Malloc_T.cpp Map_Manager.cpp Mem_Map.cpp Memory_Pool.cpp
- Message_Queue.cpp Module.cpp Name_Proxy.cpp
- Name_Request_Reply.cpp Naming_Context.cpp Obstack.cpp
- Parse_Node.cpp Pipe.cpp Priority_Reactor.cpp Proactor.cpp
- Process_Manager.cpp Read_Buffer.cpp Registry_Name_Space.cpp
- Remote_Name_Space.cpp Remote_Tokens.cpp SPIPE_Acceptor.cpp
- SV_Semaphore_Complex.cpp SV_Semaphore_Simple.cpp
- Select_Reactor.cpp Service_Config.cpp Service_Main.cpp
- Service_Manager.cpp Service_Repository.cpp Service_Types.cpp
- Singleton.cpp Strategies_T.cpp Stream.cpp Svc_Handler.cpp
- TLI.cpp TLI_Acceptor.cpp TLI_Connector.i Task_T.cpp
- Time_Request_Reply.cpp Timer_Queue_Adapters.cpp
- Token_Collection.cpp Token_Invariants.cpp Token_Manager.cpp
- Token_Request_Reply.cpp WFMO_Reactor.cpp WFMO_Reactor.i
- XtReactor.cpp.
-
-Thu Mar 12 15:37:14 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Read_Buffer.* (read): null terminate the result buffer.
- Also, changed "inline" to "ACE_INLINE" and updated #includes
- so that ACE inlining works.
-
-Thu Mar 12 02:19:53 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (upcall): In the Select_Reactor, when it
- upcalls to an event_handler which returns a -1, the
- Select_Reactor only clears the specific mask bit for the
- handler. For example, for a call to
- Event_Handler::handle_input() which returns -1, the
- Select_Reactor clears the READ_MASK bit.
-
- In the WFMO_Reactor, if any handler returns a -1, then it clears
- ALL of the mask bits for the event handler.
-
- So, fixed WFMO_Reactor so that it works like Select_Reactor in
- this regard.
-
- Thanks to Jonathan Biggar <jon@floorboard.com> for pointing this
- discrepancy out.
-
- * ace/WFMO_Reactor.cpp (dispatch_handles): The correct range check is
- {WAIT_OBJECT_0,WAIT_OBJECT_0 + this->handler_rep_.max_handlep1 () - index}
- and not
- {WAIT_OBJECT_0,WAIT_OBJECT_0 + this->handler_rep_.max_handlep1 ()}
-
- Thanks to Evgeny Beskrovny evgeny_beskrovny@icomverse.com for
- pointing this out.
-
-Wed Mar 11 15:20:09 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (thr_getspecific): Added comments to the code to
- explain the unusual step of saving errno across calls to
- TlsGetValue() on Win32. Thanks to Tim Harrison for clarifying
- this.
-
-Wed Mar 11 00:39:29 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * CE-status: A temporary file to trace the progress of the CE
- port.
-
- * ace/ace_ce_dll.dsp: Added more .cpp files.
-
- * ace/High_Res_Timer.{h,cpp}: Undefined functions print_ave and
- print_total. These two function use STDOUT which is not
- supported on CE. We should probably modify the functions so
- they write results to Log_Msg.
- (get_register_scale_factor): This function always returns 1 on
- CE to prevent the use of High_Res_Timer.
- (get_env_global_scale_factor): Always returns -1 on CE because
- environment variables are not supported.
-
- * ace/Thread_Manager.cpp (spawn_i): WinCE doesn't support
- DuplicateHandle, therefore the best we can do now is just pass
- back the handle to the spawned thread. Notice that you *can't*
- close the handle by yourself under CE. Perhaps we shouldn't
- even try to pass this info back. ???
- Applied regular CE porting tricks.
-
- * ace/SOCK_Dgram_Mcast.{h,cpp}:
- * ace/SOCK_Dgram_Bcast.{h,cpp}: Changed some function signatures
- to use wchar on CE. Applied regular CE porting tricks.
-
- * ace/IO_SAP.cpp:
- * ace/SOCK_CODgram.cpp:
- * ace/SOCK_Dgram.cpp:
- * ace/Select_Reactor.cpp:
- * ace/Timer_{Hash,Heap,List,Queue,Wheel}_T.cpp: Applied regular CE
- porting tricks. Erm, I'm running out of tricks.
-
-Tue Mar 10 20:27:57 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Reactor.h (reset_event_loop): Made the signature match with
- its definition in .cpp file.
-
-Tue Mar 10 15:07:00 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Svc_Handler.cpp,
- ace/Module.cpp:
- Fixed some problems where Svc_Handlers in Modules were being
- deleted prematurely. Thanks to Steve Coy <stevec@magna.com.au>
- for reporting this.
-
- * ace/Reactor.h (ACE_Reactor): Added a "reset_event_loop" method
- so that it's possible to reset the loop again once the
- end_event_loop() method is called. Thanks to Eric Hopper
- <ehopper@globalmt.com> for reporting this.
-
- * ace/IOStream_T.cpp (ACE_IOStream): Moved some code to work
- around some bugs with MSVC++ 5.0. Thanks to James CE Johnson
- <ace-users@lads.com> for reporting this.
-
-Tue Mar 10 15:57:54 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Handle_Set.cpp (dump): Cast mask_.fd_count to size_t.
- Depend on whether you are using standard C++ library, the type
- of fd_count count be size_t or ssize_t. Thanks to Darrell for
- discovering this.
-
-Tue Mar 10 13:22:24 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Asynch_IO.cpp (cancel): CancelIo is not supported on Win95.
-
- * ace/SString.cpp (set): Use ACE_WString::wstrlen().
-
-Tue Mar 10 06:59:42 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/SString.cpp (WString::set): added support for platforms
- that don't have wchar_t, or that treat wchar_t and ACE_USHORT16
- as different types.
-
- * ace/OS.h,Basic_Types.h: moved ACE_USHORT16 typedef from OS.h to
- Basic_Types.h.
-
- * ace/High_Res_Timer.h: fixed comment: timer.start () instead of
- timer.stop () (twice).
-
-Mon Mar 09 22:15:43 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/SString.cpp (ACE_CString::operator=): Special cases have to
- considered carefully so that memory is managed properly. This
- is specially true when the ACE_CString::NULL_CString_ is used.
-
- * ace/SString.h (ACE_CString and ACE_WString): Added set methods
- that allows the user to set the strings without having to use
- the assignment operator.
-
-Mon Mar 09 16:11:16 1998 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Map_Manager/test_hash_map_manager.cpp: added #include
- of ace/SString.h and template instantiations. Replaced gets
- with ACE_OS::fgets.
-
- * examples/Makefile,examples/Map_Manager/Makefile: added
- Map_Manager to examples DIRS and added RCS keyword string.
-
-Mon Mar 9 14:59:20 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.x-sgic++.GNU:
- Added the definition for MATHLIB.
-
-Mon Mar 09 01:23:49 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_ce.dsw:
- * ace/ace_ce_dll.dsp: New project/workspace files for WinCE. This
- is a temporary workspace only and should be merged into ACE mail
- Win32 project/workspace when the port is stable enough.
-
- * ace/config-WinCE.h: Added ACE_LACKS_GETS.
-
- * ace/Synch.i (get_nesting_level): Defined it as not supported on
- CE. CE's CriticalSections don't have RecursionCount defined.
- We should be able to simulate this, however.
-
- * ace/Process.{h,cpp}:
- * ace/SString.{h,cpp}: Moved class ACE_Tokenizer from Process.* to
- SString.*. Although ACE_Tokenizer is used in
- ACE_Process[_Options], it really is a more general utility
- class.
- (operator<<): Conditionally compile these functions only when we
- are not running ACE on CE.
-
- * ace/OS.i (atoi): Added inline implementation for wchar version.
- (gets): Remove condition !defined (ACE_HAS_WINCE). This should
- be taken care of by ACE_LACKS_GETS.
-
- * ace/OS.h (atoi): Added wchar version of this function.
- (ASYS_WIDE_STRING): This macro converts char strings to
- wchar strings when ACE_HAS_MOSTLY_UNICODE_APIS is defined.
- (ASYS_MULTIBYTE_STRING): This macro converts wchar strings back
- to char strings *only* when ACE_HAS_MOSTLY_UNICODE_APIS is
- defined.
-
- * ace/INET_Addr.{h,cpp}: Redefined interface signatures on WinCE
- using ASYS_* macros. The principle here is to pass wide char
- strings in and get char strings out. That's because we will use
- mostly wchar strings in CE but most winsock APIs return (or uses
- char strings.) Doing so should reduce conversion between them
- to minimum.
- Converting debug messages with ASYS_TEXT.
-
- * ace/Log_Msg.cpp (open):
- * ace/ACE.cpp (get_ip_interfaces): Only convert the wide character
- string to a char string when ACE_HAS_MOSTLY_UNICODE_APIS flag is
- not set using the ASYS_MULTIBYTE_STRING macro.
-
- * ace/SOCK.cpp:
- * ace/SOCK_Acceptor.cpp:
- * ace/Malloc.cpp:
- * ace/Malloc_T.cpp:
- * ace/Synch.cpp:
- * ace/Message_Block.cpp:
- * ace/IPC_SAP.cpp:
- * ace/Handle_Set.cpp:
- * ace/Addr.cpp: Converting debugging messages to wchar strings for
- CE using the ASYS_TEXT macro.
-
-Sun Mar 08 14:29:30 1998 David L. Levine <levine@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Event_Channel.cpp (initiate_acceptors):
- changed SUPPLIER_CONNECTOR to SUPPLIER_ACCEPTOR. Thanks
- to Dani Flexer <danif@ivory-sw.com> for reporting this.
-
- * ace/OS.i (cond_timedwait): removed "struct" from declaration
- of local timespec_t relative_time, because timespec_t can
- be a typedef. Thanks to Steve Coy <stevec@magna.com.au> for
- reporting this.
-
- * Makefile: tag from ACE_wrappers, not its parent directory,
- to avoid confusing CVS.
-
-Sat Mar 07 16:46:58 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.4.32, released Sat Mar 07 16:46:58 1998.
-
-Fri Mar 06 08:37:44 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/ace_ld: made perl4-compatible. Thanks to
- Jerry Bickle <glbick@most.fw.hac.com> for reporting this.
-
- * ace/os.i: (sigwait): removed "::" from before sigwait () call
- with ACE_HAS_ONEARG_SIGWAIT, in case it's a macro. Thanks
- to Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch> for
- reporting this.
-
- * bin/create_ace_build: made perl4-compatible. Thanks to
- Carlos for noticing this.
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: added
- WIN32 host support. Thanks to Paul von Behren
- <Paul_von_Behren@stortek.com> for providing the patches.
-
- * ACE-INSTALL.html: added information from Paul von Behren
- <Paul_von_Behren@stortek.com> on building on NT hosts for
- VxWorks targets.
-
- * tests/Recursive_Mutex_Test.cpp: 50 iterations instead of 100
- on Chorus.
-
- * include/makeinclude/platform_chorus_ghs.GNU: added -G to
- LDFLAGS.
-
- * tests/run_tests.sh: added capability for executing the tests
- on a remote (Chorus) target.
-
- * examples/System_V_IPC/Makefile: added clean and realclean targets
- for VXWORKS.
-
- * Makefile: cd .. before tagging.
-
-Thu Mar 05 12:36:52 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_TRACE): Added a missing right paren.
-
-Thu Mar 05 10:04:06 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_chorus_ghs.GNU: this works,
- though it may not be optimum.
-
-Thu Mar 05 01:33:08 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-WinCE.h: Added more CE stuff. Ostream is now
- redefined as FILE on CE.
-
- * ace/OS.{i,cpp}:
- * ace/Synch_T.cpp
- * ace/Message_Queue.cpp:
- * ace/SOCK_Connector.i: Added ASYS_TEXT to numerous
- ACE_DEBUG/ACE_ERROR macros. We must use wide char strings in
- CE.
-
- * ace/ACE.{h,cpp}: Redefined sock_error to return wchar string on
- CE. Added ASYS_TEXT to debugging messages.
-
- * ace/Trace.{h,cpp}:
- * ace/Log_Msg.{h,cpp}: Made it UNICODE compatible.
-
- * ace/Log_Record.cpp: Changed how ostream is used on CE. Although
- the code here become some how platform dependent, fortunately,
- it can be shielded out from the users thru various macros.
- Added ASYS_TEXT.
-
- * ace/SString.h: Undefined friend relations of ACE_?String with
- ostream on CE. CE doesn't support <iostream>.
-
- * ace/OS.h: Changed the definition of ASYS_TEXT to use _TEXT.
- This macro can be used with other compiler defined macros
- (e.g. __FILE__.) Added ASYS_TEXT to adorn parameters of
- ACE_TRACE so we don't need to modify our codes to make it
- portable to CE.
-
- * ace/Log_Msg.cpp: Removed macro definition of ACE_WSPRINTF. It
- didn't appear to be used anywhere.
-
-Wed Mar 04 09:32:32 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (readv,writev): added static cast of iov_len to int,
- to avoid unsigned comparison < 0.
-
- * ace/Containers.cpp (ACE_Fixed_Set_Iterator::done),
- ace/Map_Manager.cpp (ACE_Map_Iterator_Base::done):
- removed const from static cast to avoid warnings about
- meaningless type qualifier from GreenHills.
-
- * ace/Basic_Types.i (ACE_U_LongLong): added missing ACE_INLINE's.
-
- * ace/Svc_Conf.y,Svc_Conf_y.cpp, etc/Svc_Conf_y.cpp.diff
- (svc_location): delete svc_initializer after initializing
- svc_location. Thanks to Tom Arbuckle
- <arbuckle@uran.informatik.uni-bonn.de> for reporting this.
-
- * include/makeinclude/platform_linux_lxpthreads.GNU: separated
- SOBUILD into compile and link steps because the
- Service_Configurator/server/* examples are unable to
- use files compiled with -fPIC and just labeled as .so as shared
- ELF objects. Thanks to Tom Arbuckle
- <arbuckle@uran.informatik.uni-bonn.de> for reporting this.
-
- * include/makeinclude/platform_chorus_ghs.GNU: explicitly link
- in ioassign.o to resolve _cerr.
-
- * tests//SOCK_Connector_Test.cpp,
- ace/config-{chorus,lynxos,netbsd,psosim-g++,vxworks5.x,
- win32-common}.h:
- added ACE_LACKS_GETHOSTENT, so that SOCK_Connector_Test doesn't
- have to enumerate the platforms that don't have ::gethostent ().
-
- * tests/Basic_Types_Test.cpp (main): if ACE_LACKS_LONGLONG_T, use
- ACE_U_LongLong instead of long long.
-
-Tue Mar 03 22:15:16 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Remote_Name_Space.cpp: Replaced a bunch of usages of
- ACE_WString::rep (). They were passed to ACE_Name_Request which
- creates another copy for itself and nobody ever cleans up these
- memories. Thanks to John Mulhern <9107@MN3.LAWSON.lawson.com>
- for reporting this.
-
- * ace/OS.h (THR_DETACHED): Defined this macro so that we can
- simulate detached threads on NT (Hi Irfan! ;-). Thanks to Andre
- Arpin <arpin@adan.kingston.net> for prividing the use case of
- detached threads.
-
- * ace/Thread_Manager.cpp (exit): Added detached threads
- manipulating codes here. We now can simulate behaviros of UNIX
- detached threads on NT (no one cares about their return status.)
-
-Tue Mar 03 15:05:42 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.{h,i} (ACE_U_LongLong::operator *=): updated
- with James Hu's implementation. Now it's fast :-)
-
- * tests/Time_Value_Test.cpp (test_ace_u_longlong): added another
- test of operator *=.
-
-Mon Mar 2 19:21:36 1998 Douglas C. Schmidt <schmidt@waltz.cs.wustl.edu>
-
- * ace/OS.h: Changed all uses of "/localname" and "/globalname" to
- "localname" and "globalname" to avoid problems on UNIX. Thanks
- to John Mulhern <9107@MN3.LAWSON.lawson.com> for reporting this.
-
- * ace/OS.h: Changed "C:\\temp\\" to "C:\\temp" to avoid some minor
- problems on NT. Thanks to John Mulhern
- <9107@MN3.LAWSON.lawson.com> for reporting this.
-
- * netsvcs/lib/Log_Message_Receiver.cpp
- (Log_Message_Receiver_Impl): Removed some stray inline keywords.
- Thanks to Russ Noseworthy <rnosewor@objectsciences.com> for
- reporting this.
-
- * ace/OS.i (sigwait): Added support for POSIX sigwait(). Thanks
- to Russ Noseworthy <rnosewor@objectsciences.com> for reporting
- this.
-
- * ace/Containers.cpp (done):
- ace/Map_Manager.cpp (done): Corrected some misplaced "consts" in
- the ACE_static_cast macro. Thanks to Russ Noseworthy
- <rnosewor@objectsciences.com> for reporting this.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU (CXX): Commented
- out the -pta option since it might not be necessary. If this
- breaks code then we'll need to reevaluate this change. Thanks
- to Russ Noseworthy <rnosewor@objectsciences.com> for suggesting
- this.
-
-Mon Mar 02 17:06:46 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (exit): Added Win32 thread exit
- functionality. When a thread function falls out of scope, this
- functions is called by ACE_Thread_Control::exit and it will not
- call ACE_OS::thr_exit from here. Under this scenario, the
- ACE_Thread_Manager::exit simply falls thru the end. If a user
- call this function directly, this function will delete
- ACE_Thread_Exit::instance() first, which simulate the cleanup
- routine executed when a thread fall out of end by calling
- ACE_Thread_Manager::exit recursively. After this is done
- (returned from the second call,) this function will then call
- ACE_OS::exit, which clean up the TSS objects and then really
- exit the thread. Thanks to Gordon Watts <gwatts@FNAL.GOV> for
- pointing this out.
-
- * ace/OS.cpp (thr_exit): Added Win32 thread exit functionality.
- ACE_OS::thr_exit now will try to clean up TSS objects by calling
- ACE_OS::cleanup_tss. You really should _not_ calling this
- function directly. Esp. from the main thread because I don't
- know how to tell if you are calling it from main thread thread
- or not and thus memory leak might occur.
-
-Mon Mar 02 09:13:26 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5-sunc++-4.x.h: replaced ACE_PAGE_SIZE with
- ACE_HAS_GETPAGESIZE, and added ACE_HAS_STL_MAP_CONFLICT.
- Thanks to J. Russell Noseworthy <rnosewor@objectsciences.com>
- for these recommendations.
-
- * ace/config-sunos5.6-sunc++-4.x.h: just #include
- config-sunos5.5-sunc++-4.x.h. There's no difference between
- the two at this point.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: added -R./ and
- -mt to LDFLAGS. Added -fast to LDFLAGS if "fast" flag is
- enabled. Thanks to J. Russell Noseworthy
- <rnosewor@objectsciences.com> for these recommendations.
-
- * include/makeinclude/platform_sunos5.6_sparc_sunc++.GNU: just
- include platform_sunos5_sunc++.GNU. There's no difference between
- the two at this point. There is one significant net change to
- the 5.6 platform: -s is no longer included in LDFLAGS.
-
- * ace/config-chorus.h: added ACE_LACKS_ACE_IOSTREAM with ghs, because
- its iostream doesn't have separate operators for signed/unsigned
- char.
-
-Sun Mar 1 13:54:02 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * Makefile: Added cvs commands to automatically tag the CVS
- repository with version number 'ACE_9_9_99' tag and 'Current'
- tag.
-
-Sun Mar 1 12:26:13 1998 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (reset_i):
- * ace/Hash_Map_Manager.h:
- Added reset () method for the Hash_Map_Iterator.
-
-Sun Mar 01 10:59:27 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Asynch_IO.cpp (cancel): Changed CancelIO to CancelIo.
-
- * ace/Synch.h (ACE_Lock): Added a virtual destructor to ACE_Lock.
-
-Sun Mar 01 08:38:00 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: use the new ACE_DEFAULT_SYNCH_TYPE for the default
- mutex, etc., type, so that it can be set VxWorks. The ACE default
- type on VxWorks is SEM_Q_FIFO, the same as VxWorks' default.
- The ACE default can be easily overridden in config.h by
- defining ACE_DEFAULT_SYNCH_TYPE.
-
- * ace/OS.i (sema_init): on VxWorks, use the type argument for the
- sema type, instead of hard-coding to SEM_Q_FIFO.
-
- * ACE-INSTALL.html: updated Linux/alpha "as" patch.
-
-Sat Feb 28 12:20:57 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Message_Queue.cpp: Fixed the implementation of
- wait_not_{full,empty}_cond() so that they utilize the
- ACE_Time_Value it's passed. In addition, revised the
- implementation of peek_dequeue_head() so that it uses the new
- wait_not_empty_cond() implementation. Thanks to Tom Venturella
- <tventurell@mdc.com> for reporting this.
-
-Fri Feb 27 15:47:15 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added very useful information from
- Chris Ryan <cryan@qualcomm.com> about build ACE with
- NT/Tornado for VxWorks.
-
- * ace/config-chorus.h: use ACE_NEEDS_READV/WRITEV with GHS as well
- as with g++.
-
- * ace/Basic_Types.{h,i} (ACE_U_LongLong): added a bunch of arithmetic
- operators for Carlos :-) The operator *= is _very_ slow, until we
- come up with the right way to do it.
-
- * tests/Time_Value_Test.cpp (test_ace_u_longlong): added some tests
- of the new operators.
-
-Fri Feb 27 13:42:09 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.cpp (recv_n): Removed the MSG_PEEK flag since it didn't
- seem to work correctly.
-
-Fri Feb 27 11:18:28 1998 Chris Cleeland <cleeland@lambada.cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Added three new conversion operators: "%{"
- calls inc() to increase the trace_depth, "%}" calls dec() to
- decrease the trace_depth, and "%$" is used in place of "\n" to
- insert a newline followed by appropriate current indentation.
-
-Thu Feb 26 21:36:27 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.31, released Thu Feb 26 21:36:27 1998.
-
-Thu Feb 26 16:48:53 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.h: Added new macros for ACE_FILE_STREAM and
- ACE_FILE_CONNECTOR to be consistent with the ACE_SOCK_* stuff,
- etc. Thanks to Ganesh Pai <gpai@voicetek.com> for reporting
- this.
-
-Thu Feb 26 11:14:21 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Parse_Node.cpp (ACE_Location_Node): reordered initializers
- to match declaration order.
-
-Thu Feb 26 02:42:57 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.cpp (load_static_svcs): Removed explicit
- constness cast from the allocation function.
-
-Wed Feb 25 23:08:44 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/MT_Reactor_Timer_Test.cpp: Made this test compile on
- platforms that lack threads and also updated the programming
- style to be consistent with other parts of ACE.
-
- * tests/Priority_Task_Test.cpp: Made this test compile on
- platforms that lack threads.
-
- * ace/Svc_Conf.h: Fixed the prototype for
- ace_create_service_type() to reflect the elimination of "const
- void *".
-
- * ace/Parse_Node: Eliminated more uses of "const void *" and
- changed them to plain ol' "void *".
-
- * ace/Service_Types.cpp (fini): Changed the "const void *" to be
- simply "void *" since it didn't seem to make any sense they way
- it was! Thanks to Stephen Coy <stevec@magna.com.au> for
- insisting on this...
-
- * ace/config-sunos5.*.h: Moved the ACE_HAS_REENTRANT_FUNCTIONS
- into the section of #defines that should be commented out if
- we're not building a multi-threaded library.
-
- * ace/Service_Config.cpp (open): Tightened up the comparison of
- the key with the ACE_DEFAULT_LOGGER_KEY to use string equality
- rather than pointer equality. Thanks to Stephen Coy
- <stevec@magna.com.au> for reporting this.
-
-Wed Feb 25 10:50:17 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU: added suppression of
- "no corresponding delete" warning, until that is fixed in libTAO.
- Added -lm to LIBS for MT_Cubit client.
-
- * include/makeinclude/platform_chorus_ghs.GNU: we can link now.
-
- * ACE-INSTALL.html: added information on Linux v. 2.0.x
- getsockname () bug.
-
-Tue Feb 24 15:07:50 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/test.{mdp,mak}: Added Env_Value_Test and OrdMultiSet_Test
- into the workspace.
-
- Removed all odbc libraries from all projects. We don't really
- need them to run ACE. Thanks to gonzo@ing.puc.cl (Gonzalo
- A. Diethelm) for pointing this out.
-
-Tue Feb 24 07:14:16 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Asynch_Acceptor.cpp (handle_accept): Update the
- event_handler's proactor pointer once it is accepted. Thanks to
- Jason Katz <Jason@email.rts-inc.com> for reporting this.
-
- * apps/Gateway/Gateway/Event.h (class Subscription): Moved the
- htonl of total_consumers_ to *after* the loop that uses it!
- Thanks to Jorn Jensen <jornj@funcom.com> for reporting this.
-
-Tue Feb 24 05:08:31 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Asynch_Acceptor.i: Filled in some missing keywords.
-
- * ace/Log_Record.h (ACE_Log_Record): Hacked it to work for CE.
- Undefined the ostream version of print (). I'm planning to drop
- iostream support on WinCE. (Then, I don't have to write my
- own. ;-)
-
- * ace/ACE.{h,i} (timestamp, format_hexdump): Removed UNICODE_ONLY version.
- Changed to use ASYS_TCHAR to differentiate this condition.
-
- * ace/OS.h (ACE_OS): Undefined shm_{open,unlink} if
- ACE_HAS_MOSTLY_UNICODE_APIS.
-
- * ace/OS.cpp (ctime,ctime_r): Added CE implementation.
-
- * ace/streams.h: Added /**/ between #include and <..> in several
- places.
-
- * ace/*: Changed ACE_HAS_UNICODE_ONLY to
- ACE_HAS_MOSTLY_UNICODE_APIS.
-
-Mon Feb 23 19:41:53 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Asynch_Acceptor.i (bytes_to_read): Added an inline accessor
- for the bytes_to_read_ field. Thanks to Jason Katz
- <Jason@email.rts-inc.com> for suggesting this.
-
-Mon Feb 23 12:26:06 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (sched_params): removed ACE_ADAPT_RETVAL from PTHREADS
- ::sched_setscheduler () call, because it returns the old scheduling
- policy, not 0, on success.
-
- * ace/config-osf1-4.0.h: removed ACE_HAS_EXCEPTIONS because that is
- enabled by platform_osf1_4.0{,_rcc}.GNU.
-
- * include/makeinclude/platform_osf1_4.0.GNU: added suppression of
- warning 835 because /usr/include/cxx/memory, line 505, triggers
- a warning about an unreferenced parameter.
-
- * include/makeinclude/platform_osf1_4.0{,_rcc}.GNU: added
- "exceptions = 1" so that ACE exception handling can be
- disabled on the make command line.
-
-Mon Feb 23 11:27:10 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.4.30, released Mon Feb 23 11:27:10 1998.
-
-Mon Feb 23 11:11:18 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.h: Define ACE_Process_Options::NO_EXEC as 0 on
- Win32. It has no effect on NT anyway.
-
-Sun Feb 22 21:37:43 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: updated
- comments to reflect that WIND_BASE and WIND_HOST_TYPE
- environment variables must be set. Thanks to Nanbor for
- reporting that. Also, set CROSS-COMPILE flag.
-
- * include/makeinclude/rules.lib.GNU: updated VOBJS so that it
- will build the fancy new TAO/orbsvcs hierarchy.
-
- * include/makeinclude/platform_{chorus*,lynxos,vxworks5.x_g*}.GNU:
- set CROSS-COMPILE flag. It's only used by TAO at this point.
-
- * ace/Svc_Conf_y.cpp: updated based on new Svc_Conf.y.
-
- * etc/Svc_Conf_y.cpp.diff: regenerated for latest Svc_Conf_y.cpp.
-
- * ACE-INSTALL.html,include/makeinclude/platform_lynxos.GNU: moved
- LynxOS installation info from its platform file to ACE-INSTALL.html.
-
-Sun Feb 22 21:26:19 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * tests/IOStream_Test.cpp (server): break out of while loop if
- read from client_handler fails.
-
-Sun Feb 22 13:06:20 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Asynch_Acceptor.h (class ACE_Asynch_Acceptor): Made the
- accept method virtual so that users can override it and do
- things like enforce limits on the maximum number of simultaneous
- connections. Thanks to Jason Katz <Jason@email.rts-inc.com> for
- suggesting this.
-
-Sun Feb 22 13:22:30 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Moved definition of ACE_MAP_{PRIVATE,SHARED,FIXED}
- down to where every platform can see.
-
-Sun Feb 22 13:06:20 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Svc_Conf.y: Fixed a couple of places where we were
- potentially dereferencing NULL pointers when services failed to
- load. Thanks to Eric C. Newton <ecn@smart.net> for reporting
- this.
-
-Sat Feb 21 12:44:51 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.4.29, released Sat Feb 21 12:44:51 1998.
-
-Sat Feb 21 11:53:45 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (close_i): Remember to reset the
- current size to 0 after deallocating all entries in the map.
- Thanks to Alex for noticing this.
-
-Fri Feb 20 06:36:04 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Timer_Queue_Adapters (activate): added thread_names argument.
-
- * ace/OS.{h,i} (cond_timedwait): fixed on LynxOS (DCE_DRAFT4_THREADS),
- where pthread_cond_timedwait () expects a relative instead of
- absolute time.
-
- * tests/Buffer_Stream_Test (Consumer::svc): removed thr_yield for
- LynxOS, now that ACE_OS::cond_timedwait () is fixed.
-
- * ace/OS.i (mmap): use ACE_DEFAULT_FILE_PERMS on LynxOS for the
- shared memory object.
-
- * ace/Mem_Map.* (unmap): on LynxOS, write back the shared object to
- the plain file, if the mmap () protection included PROT_WRITE.
-
- * ace/README: added ACE_HAS_BOOL, which can be used by TAO.
-
-Thu Feb 19 17:59:53 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * apps/JAWS/clients/Caching/*: Reworked and cleaned up these files a
- bit. Added a test_URL.cpp file. Notice that these file will
- finally be moved to other directory.
-
-Thu Feb 19 15:52:50 1998 Stanley D Leeson <STANLEY.D.LEESON@cdev.com>
-
- * ace/Task.{h,cpp} (activate): added optional thread_names array
- argument.
-
-Thu Feb 19 12:55:00 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Added /**/ between #include and '<', Thanks to
- gonzo@ing.puc.cl (Gonzalo A. Diethelm) for providing the
- patches.
-
-Thu Feb 19 11:18:08 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: added ACE_MAP_{PRIVATE,SHARED,FIXED}, and
- ACE_OS::shm_{open,unlink}.
-
- * ace/OS.i: added ACE_OS::shm_{open,unlink}, and mmap support on
- LynxOS.
-
- * ace/Mem_Map.*,Shared_Memory_MM.h,Filecache.cpp: default share
- value to ACE_MAP_PRIVATE instead of MAP_PRIVATE, to allow easy
- overriding in config files.
-
- * ace/config-lynxos.h: added ACE_HAS_SHM_OPEN, and map
- ACE_MAP_PRIVATE to ACE_MAP_SHARED because MAP_PRIVATE is
- not supported on LynxOS 2.5.0.
-
- * tests/Mem_Map_Test.cpp: replace file_size with line_length because
- that's more accurate.
-
- * tests/SOCK_Connector_Test.cpp: use ACE_DEFAULT_SERVER_HOST on
- LynxOS, and removed #include of sys/utsname.h because it's in OS.h.
-
- * include/makeinclude/platform_lynxos.GNU: added LYNXOS so that
- other Makefiles can easily know if where building for LynxOS.
-
- * ace/ACE.cpp (recv_n): commented out the MSG_PEEK flag check because
- it caused IOStream_Test to not terminate.
-
- * ace/Env_Value_T.{h,i}: moved ACE_Convert specializations from .i
- file to .h file, because the resulted in multiple instantiations
- with ACE_INLINE disabled, and missing specializations without
- ACE_HAS_TEMPLATES_REQUIRE_SOURCE and inlining enabled.
-
- * tests/TSS_Test.cpp: weakened to work with LynxOS. It has a very
- limited number of keys, maybe 16, and can't free them. And, the
- test always core dumps if we try to request more keys than it has
- available.
-
- * tests/run_tests.sh: disabled some tests on LynxOS.
-
-Thu Feb 19 10:41:05 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/SOCK.cpp (open): It appears that we don't need to do
- SO_REUSEADDR if protocol_family != PF_UNIX. Thanks to Chuck
- Gehr <gehr@sweng.stortek.com> for reporting this.
-
-Wed Feb 18 22:34:40 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Reactor/Dgram/Dgram.dsw:
- * examples/Reactor/Dgram/Dgram.dsp:
- * examples/Reactor/Dgram/CODgram.dsp: Newly added files for NT.
-
- * examples/Reactor/Dgram/Dgram.cpp:
- * examples/Reactor/Dgram/CODgram.cpp: Made them runnable on NT.
-
- * ace/Process.h (ACE_Process_Options): Changed the definition of
- ACE_Process_Options::NO_EXEC to 0 for Win32 because it doesn't
- mean anything on NT (you must exec a new program on NT, no fork
- syntax available.) With this, we can simulate the fork effect
- more or less (still not portable thou. See
- examples/Reactor/Dgram/ for some examples.)
-
-Wed Feb 18 16:07:14 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * netsvcs/lib/Log_Message_Receiver.cpp (log_output): There was a
- problem where "outputfile" can be NULL, which causes problems
- when it is dereferenced. Thanks to Stephen Coy
- <stevec@magna.com.au> for reporting this.
-
- * ace/ACE.cpp (ldfind): modified the code to allow it to
- consistently return a status indicating whether or not a
- potential shared library file was found. Thanks to Patrick
- J. McNerthney <pat@thememedia.com> for reporting this.
-
-Wed Feb 18 15:30:48 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/rules.lib.GNU:
- Now we can create libraries with some files in
- subdirectories. Though the Makefile still needs to set VPATH.
-
-Wed Feb 18 12:22:48 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Buffer_Stream_Test.cpp (Consumer::svc): added a
- thr_yield so that the test magically works on LynxOS.
- ACE_OS::cond_timedwait is busted on LynxOS, we're investigating it.
-
-Wed Feb 18 11:53:00 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Added netsvcs to auto_compile list.
-
-Tue Feb 17 18:27:15 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.28, released Tue Feb 17 18:27:15 1998.
-
-Tue Feb 17 17:59:32 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Reactor/Multicast/Multicast.dsw:
- * examples/Reactor/Multicast/client.dsp:
- * examples/reactor/multicast/server.dsp: New project files.
-
-Tue Feb 17 15:53:41 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/ACE.cpp (recv_n): Added a check to drop out if the MSG_PEEK
- flag is set! Thanks to Keith Brown <kalbrown@ix.netcom.com> for
- reporting this.
-
-Tue Feb 17 12:56:24 1998 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Broke the "purify"
- command out of PRELINK into its own variable: PURELINK. This was
- done to quiet purify when building shared libraries. It wasn't
- possible simply to remove the PRELINK reference from SOLINK.cc
- because PRELINK is also used for specifying quantify.
-
- Also added two new variables: PURE_CACHE_DIR and
- PURE_CACHE_BASE_DIR. PURE_CACHE_DIR is the value of the
- purify/quantify '-cache-dir=' option, and PURE_CACHE_BASE_DIR is
- used as the base directory to build a user/compiler-specific cache
- directory. In general, you probably want to use them like this:
- "make PURE_CACHE_BASE_DIR=~/mypurecache", which will end up
- creating the directory ~/mypurecache-<username>-<compiler>.
-
-Tue Feb 17 09:23:05 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: there were two SIGCHLD #defines, if it was not
- already #defined. I changed the second one to be SIGCLD instead.
-
- * ace/config-linux-common.h: removed ACE_LACKS_TCP_H on alpha because
- it's not necessary with glibc-2.0.6.
-
-Tue Feb 17 08:41:06 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h (ACE_PROPER_SINGLETON_INSTANTIATION): Changed spelling
- of SINGLETONE to SINGLETON. Thanks to Mark Maris
- <maris@scgp.com> for reporting this.
-
-Tue Feb 17 07:41:32 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.27, released Tue Feb 17 07:41:32 1998.
-
-Tue Feb 17 03:32:30 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE.*: Changes for Windows CE just keeps going and going and
- going... All following functions are member functions of class
- ACE.
-
- This member funcion has wchar version _only_ when
- ACE_HAS_UNICODE_ONLY is defined:
-
- timestamp
-
- I've added wchar version of the following member functions:
-
- strecpy
- strsplit_r
- strrepl
- basename
- execname
- format_hexdump
-
- These functions are not defined on CE because they make no sense
- on CE.
-
- strenvdup
- daemonize
-
- There is no stdin defined on CE. Before we implement a stdin
- for CE, these functions don't make any sense.
-
- read_adapter
- register_stdin_handler
- remove_stdin_handler
-
- Changing these functions to UNICODE will need to change the
- svc.conf parser. Therefore, I'll leave them to a later point.
-
- ldopen
- ldfind
-
- * ace/README: Added a new directive ACE_HAS_UNICODE_ONLY which
- indicates that most APIs must use wchar instead of char. (Note
- that on WinCE, only WinSock functions use the traditional char
- interfaces. Most other functions only support wchar
- interfaces, include str* functions.)
-
-Mon Feb 16 14:57:26 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Priority_Task_Test.cpp (open): fallback to minimum
- ACE_SCHED_OTHER priority instead of 0.
-
- * tests/Priority_Task_Test.cpp (open): suppress warning message
- about retrying task activation with fallback priority unless -d
- option is specified.
-
- * ace/High_Res_Timer.cpp: initialize global_scale_factor_ to 1 if
- ACE_HAS_{,AIX_}HI_RES_TIMER and ACE_WIN32 are not defined.
- Thanks to Robert Olson <olson@mcs.anl.gov> for reporting a
- problem with bad hires time values on Irix.
-
-Mon Feb 16 10:51:28 1998 Oliver Kellogg <Oliver.Kellogg@vs.dasa.de>
-
- * include/makeinclude/platform_osf1_4.0_rcc.GNU: added this
- new platform file for Rational rcc (2.4.1) on DU 4.0.
-
- * ace/config-osf1-4.0.h: added ACE_LACKS_SIGNED_CHAR to
- RATIONAL section.
-
- * ace/OS.h: added __rational__ to list of users of long
- ACE_UNUSED_ARG.
-
- * ace/OS.i (gethostbyname_r): added some ACE_UNUSED_ARGs for
- Digital Unix.
-
-Sun Feb 15 16:32:52 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * netsvcs/clients/Naming/Client/svc.conf: Removed "-s" flag, which
- set the database name for local namespce. This was causing
- grief if users forgot to set this environment variable. Thanks
- to Johannes Gutleber <Johannes.Gutleber@cern.ch> for reporting
- this.
-
-Sun Feb 15 15:55:47 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Hash_T.{cpp,h}: Timer Hash wasn't keeping the earliest
- node pointer up to date with cancels.
-
-Sat Feb 14 21:12:52 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Synch_T.h (class ACE_Guard): this->acquire() already sets
- the owner, so we don't need to do it in the constructor.
-
-Sat Feb 14 20:57:59 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * netsvcs/lib/Log_Message_Receiver.{h,cpp} (log_output): Added this to
- all receiver classes. It allows writing messages to a user
- specified ostream.
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp
- (handle_logging_record): * netsvcs/lib/Client_Logging_Handler.cpp
- (send): Use the above change to avoid missing data on NT. Thanks
- to Greg White <gwhite@northlink.com> for providing the fix.
-
-Sat Feb 14 18:34:37 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_{Wheel,Hash}_T.cpp: Fixed a bug with earliest time
- pointers not being set correctly. Thanks to Mark Evans
- <mark.evans@tandem.com> for reporting this.
-
- * tests/Timer_Queue_Test.cpp: Added a quick test to check to
- make sure the earliest time is reported correctly.
-
-Sat Feb 14 18:28:19 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp (subscribe): Fixed a problem with the
- ACE_SOCK_Dgram_Mcast subscription method. Originally, each time
- the ACE_SOCK_Dgram_Mcast subscribe() method was invoked, it
- created a new socket, did appropriate setsockopt calls
- (e.g. SO_USEPORT), did a bind() to that socket, and then did the
- setsockopt call that actually joins the mcast group. The
- problem with this was that is wasn't possible to a single socket
- to subscribe to more than one multicast group. Multiple calls
- to ACE_SOCK_Dgram_Mcast.subscribe() didn't work because the new
- socket descriptor that was issued didn't listen to the old
- multicast group(s). The fix was to change the subscribe()
- method to only create, set up, and bind the socket if
- get_handle() == ACE_INVALID_HANDLE. Thanks to Dave Meyer
- <dmeyer@std.saic.com> for reporting this.
-
-Sat Feb 14 03:29:50 1998 Sergio Flores <sergio@tango.cs.wustl.edu>
-
- * ace/ACE.cpp (set_handle_limit): Fixed a couple of bugs
- setting the maximum number of file descriptors. If we use
- setrlimit, we should first get the hard limit before calling
- it, or we get an EINVAL for trying to set a hard limit of 0
- and a soft limit greater than that. Also, for -1 the call
- was not setting the limit to the maximum allowable.
-
- * ace/OS.h (ACE_MAX_DGRAM_SIZE): Moved the #define
- ACE_MAX_DGRAM_SIZE from the PSOS specific part of OS.h.
-
-Fri Feb 13 19:25:55 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Log_Record.cpp (ACE_Log_Record): Changed the "set" method
- for priority() so that it doesn't convert the priority into the
- base two logarithm of the parameter. Instead, this is handled
- by the "get" method of priority(). Thanks to Eric C. Newton
- <ecn@smart.net> for reporting this.
-
- * ace/OS.h: Added a new #define called ACE_MAX_DGRAM_SIZE, which
- is set to 8k by default. Naturally, this can be overwritten in
- platform-specific config.h files.
-
-Fri Feb 13 10:40:36 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.4.26, released Fri Feb 13 10:40:36 1998.
-
-Thu Feb 12 14:33:12 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (mktemp): I missed this one in Win32 section.
-
-Fri Feb 13 09:04:13 1998 Oliver Kellogg <Oliver.Kellogg@vs.dasa.de>
-
- * ace/config-osf1-4.0.h: added Rational RCC support.
-
-Wed Feb 11 09:50:27 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-dgux-4.x-ghs.h
- * include/makeinclude/platform_dgux4_ghs.GNU: Configs for ACE on
- DG/UX 4 using Green Hills Multi C++ compiler, and draft 10 pthreads.
-
- * ace/README
- * ace/OS.h: New macro ACE_NEEDS_SCHED_H for platforms which needs to
- #include <sched.h> to get complete defs for thread scheduling.
-
- * ace/OS.cpp: Added a DG/UX-specific pthread_wait function for use with
- draft 10 pthreads on DG/UX.
-
-Wed Feb 11 09:32:10 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated DU CXX and Linux info.
-
- * ace/Makefile: moved INSTALL= to before include of rules.local.GNU,
- so that the (unused) install command doesn't show up with make -n.
-
- * include/makeinclude/platform_chorus_ghs.GNU: put posix -I before
- stdc -I.
-
- * ace/OS.h: removed include of stdfileio.h on ghs/Chorus. It's not
- necessary with the above change to platform_chorus_ghs.GNU.
-
-Wed Feb 11 09:24:51 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.4.25, released Wed Feb 11 09:24:51 1998.
-
-Tue Feb 10 14:58:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Containers.cpp : removed unreachable break;
-
-Tue Feb 10 09:34:27 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/INET_Addr.cpp (get_host_name): moved declaration of local
- "hentry" so that it's not seen on Chorus.
-
- * ace/OS.i (getprotoby{name,number}{,_r}): not supported on Chorus.
-
- * ace/Makefile: build Select_Reactor.o without -g on ghs/Chorus,
- because it causes GreenHills 1.8.8 to core dump.
-
- * ace/config-chorus.h: adjusted to work with GreenHills 1.8.8.
-
- * include/makeinclude/platform_chorus_ghs.GNU: use Gnu ar instead
- of ax, because we don't have a license for ax.
-
- * Timer_Queue_Adapters.{h,i} (activate): added stack and stack_size
- parameters to match declaration in ACE_Task_Base.
-
- * include/platform_linux{,_lxpthread}.GNU: removed
- -fno-strict-prototypes from CFLAGS because it is no longer needed.
-
- * include/makeinclude/platform_sunos5_g++.GNU: added -lposix4, to
- be consistent with the Sun C++ platform file. Some of the TAO
- tests need it.
-
-Mon Feb 09 18:10:37 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Containers.{cpp,h} : made next () a const member function in
- ACE_Ordered_MultiSet_Iterator<T>
-
-Mon Feb 09 14:52:25 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_chorus_ghs.GNU: added include path.
-
- * ace/config-chorus.h: with GreenHills, removed
- ACE_HAS_WCHAR_TYPEDEFS_CHAR and ACE_LACKS_UNISTD_H. We'll
- see if --multibyte_chars --wchar_t_keyword work.
-
- * ace/OS.h: added #include <stdfileio.h> with GreenHills/Chorus.
-
- * netsvcs/clients/Naming/Client/Client_Test.cpp (handle_input):
- get input from stdin, not ACE_STDIN. Thanks to Jack Erickson
- <JErickson@exchange.ml.com> for reporting this.
-
-Sun Feb 8 15:33:33 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
- * include/makeinclude/rules.lib.GNU:
- * include/makeinclude/rules.local.GNU: Rename
- ACE_LDSO_Major_Minor_Version_Number to ACE_LDSO_Version_Number.
-
- * include/makeinclude/rules.local.GNU: Put back checking of
- current directory into library installation rules but with an
- extra check for null ACE_LDSO_Version_Number.
-
-Sun Feb 08 12:06:30 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added Scott Snyder's egcs 1.0.1 patch, which
- allows netsvcs/lib/Server_Logging_Handler.cpp to build on
- Linux/RedHat 5.0.
-
- * include/makeinclude/wrapper_macros.GNU: protected ACE_ROOT...
- additions to INCLDIRS and LDFLAGS so they're only added once.
- Thanks to James CE Johnson <jcej@lads.com> for this addition.
-
- * ace/config-linux-common.h: added ACE_HAS_TERM_IOCTLS. Thanks
- to James CE Johnson <jcej@lads.com> for this addition.
-
- * examples/Naming/test_multiple_contexts.cpp,test_non_existent.cpp,
- test_writers.cpp:
- replaced uses of cout with ACE_DEBUG.
-
- * examples/performance-tests/Misc/basic_perf.cpp,
- context_switch_time.cpp,preempt.cpp:
- divide ACE_hrtime_t by ACE_UINT32, to prevent ambiguity with
- ACE_U_LongLong operator / overloading.
-
-Sun Feb 8 01:45:59 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU (versioned_so): Added
- a new directive to allow automatic installing of so libraries
- with version number. This flag is default to 0. Put this line,
-
- versioned_so = 1
-
- in your platform_*.GNU file to enable this feature.
-
- (ACE_LDSO_Major_Minor_Version_Number): Define the version number
- to be appended to versioned so libraries (Notice: it include a
- dot at the beginning.) If versioned_so == 0, this macro expand
- to nothing.
-
- * include/makeinclude/rules.lib.GNU (INSTALL):
- * include/makeinclude/rules.local.GNU (INSTALL rules): Modified
- installation rules to allow installing so libraries with version
- numbers.
-
- * include/makeinclude/platform_netbsd.GNU:
- * include/makeinclude/platform_freebsd[_pthread].GNU: Enabled
- new versioned_so feature.
-
-Sat Feb 07 05:51:15 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Synch_T.cpp (ACE_TSS): Changed to use MessageBox on WinCE.
- Because there's no console in WinCE, we can't output warning
- messages to stderr.
-
- * ace/README (ACE_HAS_UNICODE_ONLY): This new directive is used to
- removed some char version function definitions because it
- doesn't make too much sense to support these function when most,
- if not all, strings in the system are wchar strings.
-
- * ace/OS.{h,i} (ACE_DEFAULT_LOGGER_KEY): Added wchar definition if
- we are using UNICODE.
- (ACE_SHE_{TRY,FINALLY,EXCEPT}): WinCE doesn't support Win32
- structual exception, so these macros should be defined as on
- UNIX platforms.
- (mktime): Removed this function from WinCE. Don't even think
- about using them.
- (ACE_HAS_UNICODE_ONLY): If this directive is defined, the char
- version of the following functions are not defined in ACE_OS:
-
- chdir
- mkdir
- mkfifo
- mktemp
- getcwd
- unlink
- tempnam
-
- Some of them has wchar version.
-
- (chdir,mkdir,getcwd): Added wchar version. Unfortunately, getcwd
- still doesn't work for WinCE.
-
- * ace/OS.cpp (mktemp): Added wchar version of this function.
- Other changes added. Please refer to the entry above. If
- platform/compiler supports this function, then both char and
- wchar versions are defined as inline functions in OS.i.
- (socket_{init,fini}): Removed leading :: from WSAStartup and
- WSACleanup because these two are implemented as macros on
- WinCE. Changed to use MessageBox instead of cerr for outputing
- error messages.
-
- * ace/config-win32-common.h: Don't defined ACE_HAD_P_READ_WRITE on
- WinCE.
-
- * ace/config-WinCE.h: Defined directive ACE_HAS_UNICODE_ONLY.
-
- * ace/ace_dll.dsp: Adjusted CE project settings.
-
-Fri Feb 06 15:28:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5-sunc++-4.x.h: disable explicit template
- instantiations with CC 4.2, because it still does implicit
- instantiation. We need to figure out how to disable that.
- Then, we can enable -instances=global to get the real
- benefits of explicit template instantiation with CC.
-
- * tests/Barrier_Test.cpp: updated a comment re. the VxWorks
- task names test.
-
-Fri Feb 06 10:42:22 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.4.24, released Fri Feb 06 10:42:22 1998.
-
-Fri Feb 06 10:30:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Containers.cpp: fixed error in
- ACE_Doubly_Linked_List_Iterator<T>::first (void);
-
-Fri Feb 06 08:27:32 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Containers.{cpp,h} : added "first" methods to all container
- iterators: each positions the iterator at the first element
- in the container and returns 1, or if the container is empty
- positions the iterator at a well defined "null" position for
- that container and returns 0:
-
- template <class T> int
- ACE_Unbounded_Set_Iterator<T>::first (void);
-
- template <class T> int
- ACE_Unbounded_Queue_Iterator<T>::first (void);
-
- template <class T> int
- ACE_Unbounded_Stack_Iterator<T>::first (void);
-
- template <class T> int
- ACE_Bounded_Set_Iterator<T>::first (void);
-
- template <class T> int
- ACE_Fixed_Set_Iterator<T>::first (void);
-
- template <class T> int
- ACE_Doubly_Linked_List_Iterator<T>::first (void);
-
-Wed Feb 04 22:23:24 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_linux*.GNU: commented out or
- removed SUPPRESS_DASH_G, because it's not needed with hacked
- gas on Linux/Alpha.
-
- * ACE-INSTALL.html: added some comments on Linux/RedHat 5.0,
- for both Intel and Alpha. Thanks to James CE Johnson
- <jjohnson@lads.com>, Torbjorn Lindgren <tl@funcom.com>,
- and Oleg Krivosheev <kriol@fnal.gov> for this information.
-
- * ace/config-linux-common.h: replaced #define of ACE_HAS_EXCEPTIONS
- with a compile time check for egcs, which supports exceptions.
- Exceptions can now be enabled on the make command line. Also,
- moved some comments on Linux system configuration up to
- ACE-INSTALL.html.
-
- * ace/config-linux-common.h,config-g++-common.h: moved
- ACE_HAS_EXCEPTIONS #define from config-linux-common.h to
- config-g++-common.h.
-
- * include/makeinclude/wrapper_macros.GNU: disabled exception handling,
- the default, on g++ >= 2.8.0. On both Linux/alpha and
- Solaris 2.5.1/sparc, exception handling increased the size of
- libACE.so by about 25 percent. Exception handling can easily
- be enabled on the make command line or by editing your
- include/makeinclude/platform_macros.GNU.
-
- * netsvcs/lib/TS_Server_Handler.cpp: instantiate
- ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> if
- ACE_HAS_STREAM_PIPES, not if ACE_HAS_TLI. Thanks to Oliver
- Kellogg <Oliver.Kellogg@vs.dasa.de> for reporting this problem.
-
- * Makefile: made ACE-INSTALL a dependency of release and
- cleanrelease so that it is only updated when necessary.
-
- * ace/OS.{h,i},README (gets): wrapped with !ACE_LACKS_GETS.
-
- * ace/config-g++-common.h: added ACE_LACKS_GETS for egcs. It
- supports ::gets (), but warns about it at link time on Linux.
- The Solaris gets () man pages recommends using fgets () instead.
-
- * netsvcs/clients/Naming/Client/Client_Test.cpp: replaced use of
- ACE_OS::gets () with ACE_OS::fgets ().
-
-Wed Feb 04 11:07:46 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Containers.cpp : fixed my "fix" to new_position pointer in
- ACE_Ordered_MultiSet<T>::find_from () - now checks the pointer
- before assigning something to it.
-
-Tue Feb 03 15:11:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Containers.cpp : fixed order of member initialization list
- in ACE_DNode ctor, added update of new_position pointer in
- ACE_Ordered_MultiSet<T>::find_from ()
-
-Mon Feb 02 21:26:30 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Map_Manager_Test.cpp (test_map_manager): print out
- item.int_id_ instead of local i so that item gets used (CXX
- warned that it wasn't).
-
- * include/makeinclude/platform_osf1_4.0.GNU: added suppression of
- warning 610, nonoverriding_function_decl.
-
- * ace/config-chorus.h,config-freebsd*.h,,config-hpux-10.x-g++.h,
- config-irix{5.3,6.x}-g++.h,config-osf1-4.0.h,config-m88k.h,
- config-netbsd.h,config-psosim-g++.h,config-sco-4.2-nothread.h,
- config-sco-5.0.0-mit-pthread.h,config-sunos4-g++.h,
- config-sunos5.4-g++.h,config-unixware-2.*.h:
- migrated to config-g++-common.h.
-
- * ace/config-sunos5.5-egcs*.h: removed. config-sunos5.5-g++.h
- now supports egcs, via config-g++-common.h.
-
- * ace/config-sco-5.0.0*.h: added RCS keyword string.
-
- * include/makeinclude/wrapper_macros.GNU: support "exceptions"
- make flag on all platform. If enabled, it adds
- -DACE_HAS_EXCEPTIONS to CCFLAGS. Not all platforms support
- exception handling, of course, and that is noted in the
- description of the "exceptions" make flag.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU,
- platform_sunos5.6_sparc_sunc++_4.2.GNU:
- removed -DACE_HAS_EXCEPTIONS, because it's now done in
- wrapper_macros.GNU.
-
- * examples/Reactor/Misc/test_event_handler_t.cpp: renamed
- ACE_Sig_Handler to ACE_Test_Sig_Handler to avoid collision
- with ACE_Sig_Handler in ACE library.
-
- * tests/Env_Value_Test.cpp (main): print out signed instead of
- unsigned values.
-
-Mon Feb 02 14:40:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * tests/OrdMultiSet_Test.cpp: added explicit template instantiation
- for ACE_DNode<int>
-
- * tests/OrdMultiSet_Test.dsp: new MSVC++ project for the test
-
- * tests/tests.dsw: added OrdMultiSet_Test.dsp project to workspace
-
- * tests/run_tests.{bat,sh,psosim,vxworks} : added OrdMultiSet_Test
-
- * tests/Makefile : added OrdMultiSet_Test
-
-Mon Feb 02 02:42:30 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_NOTSUP_RETURN): Moved its definition to the end of
- this file where __TEXT has already been defined. WinCE needs to
- use wchar.
-
- (struct utsname): Moved this definition after all datatypes are
- filled in. Reverted my previous changed on it.
-
- Win32 only: Added wchar version of ACE_OS::{perror,fprintf,
- vsprintf,sprintf}.
-
- Windows CE only: Undefined some char version function in class
- ACE_OS. They are of no use on CE anyway.
-
- * ace/OS.i (fdopen): Added wchar version of ACE_OS::fdopen, it is
- only available on Win32.
-
- Windows CE only: Added implementation for c-styled file
- functions. Type FILE * is mapped to Win32 HANLDE under the hood
- and Win32 API's are used to emulate these functions.
-
- * ace/OS.cpp: Removed some char version functions and added some
- wchar functions.
-
-Sun Feb 01 15:12:49 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * tests/OrdMultiSet_Test.cpp: added an ACE test for the
- ACE_Ordered_MultiSet and ACE_Ordered_MultiSet_Iterator
- class templates.
-
- * ace/Containers.i (ACE_Ordered_MultiSet<T>::is_empty ()):
- changed to return 1 rather than cause a SEGV when the
- container is in fact empty (the above test discovered the bug).
-
-1998-02-01 Nanbor Wang <nanbor@fennec.wolfpack.cs.wustl.edu>
-
- * ace/OS.h (struct utsname): Separated WCE's definition from
- ACE_LACKS_UTSNAME_T bacause VxWorks doesn't have TCHAR type.
-
-Sun Feb 01 12:09:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Containers.cpp (ACE_Ordered_MultiSet::insert and find):
- expanded ITERATOR type of second argument, because g++ couldn't
- deal with it. It can in the class declaration in Containers.h,
- so I didn't change that.
-
- * ace/config-sunos5.5-g++.h,config-lynxos.h,config-vxworks5.x.h:
- migrated to config-g++-common.h.
-
- * tests/run_tests.vxworks: disabled Message_Queue_Test because
- it sometimes page faults or hangs the target.
-
-Fri Jan 30 15:35:30 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Containers.{cpp,h,i} : added class templates
- ACE_Ordered_MultiSet and ACE_Ordered_MultiSet_Iterator
- which respectively implement abstractions for containment
- of and iteration over an ordered set that allows multiple
- identical instances of a given item.
-
-Fri Jan 30 02:42:30 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (uname): Made it comform with Unicode.
-
- * ace/OS.h (struct utsname): Changed the internal string type to
- TCHAR.
-
- * ace/OS.i (gettimeofday): Added Windows CE implementation.
-
-Thu Jan 29 21:02:24 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5-g++.h: revert so that ACE_HAS_STRING_CLASS
- is #defined, regardless of g++ version.
-
- * ace/config-g++-common.h,config-gcc-2.7.2.h: replaced
- config-gcc-2.7.2.h with config-g++-common.h, which will support
- all g++ versions, including egcs.
-
- * ace/config-linux-common.h,config-sco-5.0.0-{fsu-pthread,nothread}.h:
- migrated to config-g++-common.h.
-
-Thu Jan 29 20:28:30 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.23, released Thu Jan 29 20:28:30 1998.
-
-Thu Jan 29 16:17:28 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (open): Always close down the logger connection
- before changing the setting. Added codes to allow resetting
- logging endpoint back to STDERR from LOGGER.
-
- * ace/OS.h (ACE_DEFAULT_LOGGER_KEY): Changed to localhost:10012
- so it can be used in both netsvcs/lib/ and netsvcs/client/.
-
- * netsvcs/client/Logger/indirect_logger.cpp: Added code to reset
- logging endpoint back to stderr.
-
- * netsvcs/lib/Client_Logging_Handler.cpp
- (ACE_Client_Logging_Acceptor): Changed to initialize
- logger_key_ with ACE_DEFAULT_LOGGER_KEY.
-
- * netsvcs/lib/Client_Logging_Handler.h: Removed DEFAULT_LOGGER_KEY
- definition.
-
-Thu Jan 29 12:32:32 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.x-sgic++.GNU:
- Added support for debugging, somehow the DCCFLAGS were missing.
-
-Thu Jan 29 10:52:34 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: added putenv () declaration.
-
- * include/makeinclude/platform_sunos5_g++.GNU: added comment
- about disabling optimization with g++ 2.8.0.
-
- * ace/config-sunos5.5-g++.h: don't #define ACE_HAS_STRING_CLASS
- with g++ 2.8.0.
-
- * include/makeinclude/platform_sunos5_egcs.GNU: include
- the g++ platform file, it works just fine. The net effect
- on egcs is these three changes:
-
- 1) -fno-implicit-templates is included in CPPFLAGS. That
- option is necessary with the egcs (egcs-2.90.23 980102
- (egcs-1.0.1 release)) that we use to save _much_ text
- space.
-
- 2) Use -G instead of -shared in SOFLAGS. That way,
- libstc++.so, etc., need not be built.
-
- 3) The compiler is called g++ instead of c++. I don't
- think this hurts anything. And Purify knows about g++,
- but not g++.
-
- These (and any other) options can be overridden in
- platform_sunos5_egcs.GNU if necessary. See the commented
- example there.
-
- * ace/config-sunos5.5-egcs.h: added
- ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION to match
- -fno-implicit-templates in the platform_sunos5_egcs.GNU.
-
- * tests/Env_Value_Test.cpp: updated comment to explain why we
- can't use spawn with ACE_HAS_NONSTATIC_OBJECT_MANAGER. We
- can, in general, but we can't on VxWorks because it doesn't
- have fork ().
-
-Thu Jan 29 10:32:28 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU:
- The posix4 library is needed in some TAO examples.
-
- * ace/Module.h:
- * ace/Message_Queue.h:
- Workaround HP/C++ compiler bug, it does not support enums inside
- templates so we move them into base classes. Thanks to Sundar
- T.J <tjsundar@cisco.com> for reporting this problem.
-
-Thu Jan 29 10:14:03 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/FIFO.h: Revised the comment at the beginning of ACE_FIFO to
- clearly indicate that it doesn't work portably to Win32. Thanks
- to Thomas Hampson <thomas.hampson@lmco.com> for suggesting this.
-
-Wed Jan 28 15:36:55 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- We can use the top level Makefile on TAO now.
-
-Wed Jan 28 11:59:41 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (isatty): Added conversion from a Win32 HANDLE to a C
- file handle. It works correctly now. Thanks to Chuck R. Gehr
- <GehrCR@louisville.stortek.com> for noticing the problem.
-
-Tue Jan 27 20:32:07 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Block: Added an accessor to retrieve the reference
- count on an ACE_Data_Block. Thanks to Dave Meyer
- <dmeyer@std.saic.com> for contributing this.
-
-Tue Jan 27 15:09:08 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.i,
- * ace/Timer_Queue_Adapters.cpp:
- When using ACE_CLEANUP_???_POP macros, it was being called with
- argument 1, which should be 0 (don't execute the cleanup).
- Thanks to Arturo Montes <mitosys@colomsat.net.co> for reporting
- argument 1, which should be 0 (don't execute the cleanup).this.
-
-Tue Jan 27 14:56:49 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.*: more cleanup: got rid of ACE_USES_ACE_U_LONGLONG,
- replaced VXWORKS && ghs with ACE_HAS_WCHAR_TYPEDEFS_CHAR, and
- factored out some common #defines. Rearranged ACE_SIZEOF_LONG_LONG
- and ACE_UINT64 logic so that it works on NT.
-
-Tue Jan 27 08:28:34 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Basic_Types.h: Simplified and changed so that the config.h file
- can pre-specify the ACE_SIZEOF_* macros in case the preprocessor
- has trouble calculating them.
-
-Tue Jan 27 06:45:07 1998 David L. Levine <levine@cs.wustl.edu>
-
- * examples/IOStream/server/iostream_server.cpp: for egcs, use
- ACE_SOCK_IOSTREAM instead of its expansion in the ACE_Svc_Handler
- template instantiation.
-
- * ace/Event_Handler_T.h,examples/Reactor/Misc/test_event_handler_t.cpp:
- removed special-case support for ACE_HAS_SIGNFO_T, because ace/OS.h
- declares a siginfo_t without it.
-
- * tests/run_tests.vxworks: enabled Priority_Reactor_Test and
- Message_Queue_Test, because they appear to run successfully now.
- Most of the time, anyways. Message_Queue_Test occasionally
- pages faults; there appears to be a memory management problem.
-
-Tue Jan 27 02:38:16 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.{i,cpp}:
- * ace/config-WinCE.h: More Windows CE insanities.
-
-Mon Jan 26 13:20:58 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0_g++.GNU: added $(ACELIB)
- to SOFLAGS. Thanks to Oliver Kellogg <Oliver.Kellogg@vs.dasa.de>
- for reporting the problem with building shared libraries on
- g++/DU 4.0.
-
- * ace/config-linux-common.h: moved ACE_LACKS_TCP_H so that it is
- only seen on alphas (with glibc2). Thanks to Edgar Villanueva
- <edgarvil@ix.netcom.com> for reporting this.
-
- * performance-tests/Misc/childbirth_time.cpp (prof_native_thread,
- prof_ace_os_thread): changed type of local j to int to avoid
- signed/unsigned comparison.
-
- * tests/Reactors_Test (Test_Task): changed type of member
- handled_ from int to size_t to avoid signed/unsigned comparison
- in Test_Task::handle_input ().
-
-Mon Jan 26 11:35:54 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Added TAO_ROOT to the environment.
-
-Mon Jan 26 10:28:57 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.22, released Mon Jan 26 10:28:57 1998.
-
-Mon Jan 26 02:53:10 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Namespace related macros are now ifdef'ed by
- ACE_HAS_BROKEN_NAMESPACES instead of ACE_ORBIX_HAS_NAMESPACES.
-
- * ace/README
- * ace/config-win32-common.h: Added a new flag
- ACE_HAS_BROKEN_NAMESPACES to deal with MSVC's broken namespace
- support.
-
- * ace/config-win32.h: Re-enable defining ACE_ORBIX_HAS_NAMESPACES
- for Win32.
-
- * ace/config-WinCE.h: Temporary file to hold WinCE specific
- configurations. It will probably be merged with
- config-win32-common.h in some point.
-
- * ace/ace_dll.dsp: Added WinCE x86 emulation mode project
- definition.
-
- * ace/OS.{h.i} (ACE_OS): Added Windows CE macros madness.
-
- * ace/config-win32-common.h: Ifdef'ed out ACE_HAS_SIG_ATOMIC_T for
- WinCE. Prevent repeat definition of STRICT.
-
-Sun Jan 25 17:31:49 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32.h: Disabled setting ACE_ORBIX_HAS_NAMESPACES by
- default on NT. MSVC's namespace support is buggy.
-
-1998-01-25 Nanbor Wang <nanbor@fennec.wolfpack.cs.wustl.edu>
-
- * tests/Conn_Test.cpp: Rearranged explicit template instantiations
- order to avoid errors from egcs. Thanks to Gonzo for reporting
- the bug.
-
-Fri Jan 23 12:24:05 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (sleep): Fixed a typo where tv_sec was being set rather
- than tv_usec. Thanks to Gonzo for pointing this out.
-
-Fri Jan 23 06:27:51 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/IOStream.h: use std::string if
- ACE_USES_STD_NAMESPACE_FORSTDCPP_LIB IOStream.h. Thanks
- to Gonzo <gonzo@ing.puc.cl> for the patch. Also, changed
- DEC_CXX to __DECCXX_VER because that's more accurate.
-
- * tests/Barrier_Test.cpp: specify thread name and stack size
- on VxWorks. Thanks to Stan Leeson <STANLEY.D.LEESON@cdev.com>
- for suggesting this.
-
- * tests/Env_Value_Test.cpp (TEST_THIS): cast val to (type)
- before casting to (u_int), to try to avoid DEC CXX compiler
- warning about integer overflow. Thanks to Frederic Andres
- <andres@rd.nacsis.ac.jp> for reporting this.
-
- * ace/config-osf1-4.0.h: added ACE_HAS_EXCEPTIONS, etc., with
- CXX 6.0. Thanks to Torbjorn Lindgren <tl@funcom.com> for
- the patch.
-
- * ace/OS.i (thr_kill): removed ACE_ADAPT_RETVAL because
- ::taskNameToID returns the task ID, not success/fail.
- Thanks to Richard Keizer <RICHARD.L.KEIZER@cdev.com> for
- diagnosing the problem and providing the fix.
-
- * tests/run_tests.vxworks: enabled Thread_Manager_Test and
- Message_Block_Test now that they succeed. Thanks to Richard Keizer
- <RICHARD.L.KEIZER@cdev.com> for the ACE_OS::thr_kill fix.
-
- * ace/OS.cpp (thr_create), ace/Thread_Manager.cpp (kill_thr):
- on VxWorks, use strncmp instead of strcmp to check for allocated
- thread ID.
-
-Thu Jan 22 16:34:18 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Connection/misc/Connection_Handler.cpp (svc): Fixed a
- bug in the example where the global Singleton Reactor was being
- used rather than the object's Reactor. Thanks to Peter Gross
- <pag@kokako.probita.com> for reporting this.
-
-Thu Jan 22 09:04:13 1998 David L. Levine <@cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (ACE_Hash_Map_Iterator_Base ctor):
- added a cast of mm.total_size_ to ssize_t, to try to avoid
- a compiler warning. Thanks to Brian Mendel <bmendel@mdc.com>
- for reporting this.
-
- * ace/config-osf1-4.0.h: updated g++ support. Thanks to
- Oliver Kellogg <Oliver.Kellogg@vs.dasa.de> for the patch.
-
- Thanks to Tom Venturella <tventurell@mdc.com> and Dave Mayerhoefer
- <davem@lynx.com> (!) for requesting the following three changes:
-
- * ace/Thread_Manager.cpp: added support for a user-supplied
- thread (VxWorks task) name. By itself, that means just passing
- the ACE_thread_t along to ACE_OS::thr_create (). The tricky
- part was then handling the case where the user doesn't supply
- a name. It would be cleaner if the ACE_thread_t and ACE_hthread_t
- typedefs were swapped on VxWorks, because the ACE_Thread_Manager
- keys off of the ACE_thread_t. And in addition to being cleaner,
- it would be safer because ACE_thread_t's currently aren't
- guaranteed to be unique on VxWorks.
-
- * ace/OS.cpp (thr_create): on VxWorks only, use the t_id (task
- name) and stack_size if supplied. Also added support for setting
- the stack, but commented it out because it doesn't seem to work.
-
- * tests/Conn_Test.cpp: on VxWorks, assign thread (VxWorks task)
- names to server and client threads, to test that feature.
-
- * ace/OS.cpp (spa [VxWorks only]): use ::taskSpawn () instead
- of ::sp () so that the task name, ace_main, can be specified.
-
- * ACE-INSTALL.html: added note about not linked the ACE library
- into every VxWorks executable. It should work when running
- multiple ACE executables on a target, though I haven't tried it.
-
- * include/makeinclude/rules.local.GNU: set SOEXT if it was not set,
- so that it's always non-null for make depend.
-
- * ace/OS.h: #define ACE_THR_PRI_FIFO_DEF on all threaded platforms,
- if not already defined in OS.h or in the individual platform config
- file. It should be used by applications for a default real-time
- thread priority.
-
- * ace/config-chorus.GNU: added GreenHills support.
-
- * include/makeinclude/platform_chorus_ghs.GNU: added platform file.
-
-Wed Jan 21 21:37:03 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (close_i): Removed the HPUX_11
- destructor madness by saving the location to be destructed in a
- temporary reference instead of calling the destructor from the
- array directly. Thanks to Istvan Buki <ibuki@fedex.com> for
- providing the patch.
-
-Wed Jan 21 20:36:43 1998 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ACE version 4.4.21, released Wed Jan 21 20:36:43 1998.
-
-Wed Jan 21 10:39:12 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Task.cpp (activate): for builds without threads only,
- added ACE_UNUSED_ARG of stack and stack_size.
-
- * ace/High_Res_Timer.cpp: used unsigned constants instead of
- signed, to allow resolution of overloaded
- ACE_U_LongLong::operator/ ().
-
-Tue Jan 20 21:15:01 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.20, released Tue Jan 20 21:15:01 1998.
-
-Tue Jan 20 20:31:27 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/test_config.h:
- Changed several buffer sizes from BUFSIZ to MAXPATHLEN, they
- were used for storing pathnames, so the later is a proper size
- for them.
-
-Tue Jan 20 15:54:44 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Heap_T.cpp: Fixed a bug that was introduced on
- Sunday because of the non-use of position 0 (we have to
- grow the heap one node early).
-
- * ace/Timer_Queue_T.{h,cpp}: Added a return_node () method
- which is used to return a ACE_Timer_Node back into the
- control of the Timer Queue after it leaves via
- remove_first ().
-
-Tue Jan 20 15:52:31 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.19, released Tue Jan 20 15:52:31 1998.
-
-Tue Jan 20 12:49:05 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (ACE_Hash_Map_Manager): Member table_
- needs to be initialized to prevent deleting invalid memories.
-
-Tue Jan 20 11:57:24 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Added several TAO components to the compile list.
- The regular expression for make errors was missing several of
- them.
-
-Tue Jan 20 03:36:54 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (open): We should call close_i () to
- ensure previously allocated memory gets release before we
- allocate new one.
-
-Mon Jan 19 22:21:34 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Env_Value_Test.cpp (main): Added test codes for unsigned
- short.
-
- * ace/Env_Value_T.i (ACE_Convert): Added conversion function for
- unsigned short.
-
-Mon Jan 19 15:13:47 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * bin/Makefile: Fixed a problem with the CCFLAGS definition that
- was causing circular macro expansion. Thanks to Philippe
- O'Reilly <philippe@robot.ireq.ca> for reporting this.
-
-Sun Jan 18 14:32:42 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Heap_T.cpp: Problems were arising because of the
- use of negative numbers in the timer_id array of the timer
- heap for the free list. When the 0th index is in the free
- list, pointers to it will show up as 0 (because 0 == -0).
- This will look the same as a timer_id for the top of the
- heap, and if cancel () was attempted on this invalid
- timer_id, bad things would happen. To prevent this, index
- 0 is now ignored so it doesn't show up in the free list.
-
-Sun Jan 18 18:12:52 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Service_Configurator/Misc/*.ds?: Added new project
- files for this example.
-
-Sun Jan 18 17:27:52 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Wheel_T.cpp: Fixed a problem with Timer Wheel's
- expire(). The problem occured when the handle_timeout() method
- of the event handler used would return a 0. This causes the
- Timer Queue to cancel all timers using that event handler.
- Because Timer Wheel's expire caches the position of some timers
- that will be expired, it was trying to expire timers that were
- already cancelled. Now it checks the timer before it expires.
-
-Sun Jan 18 16:08:36 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Thread_Manager: Modified the signature to the spawn_n()
- method so that it's possible to pass in an array of stack
- pointers and stack sizes. Thanks to Thomas Venturella
- <tventurell@mdc.com> for requesting this.
-
- * ace/Task: Modified the signature to the activate() method so
- that it's possible to pass in an array of stack pointers and
- stack sizes. Thanks to Thomas Venturella <tventurell@mdc.com>
- for requesting this.
-
-Sun Jan 18 15:54:16 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Timer_Wheel_T.h:
- ace/Timer_Hash_T.h:
- ace/Timer_Queue_T.h:
- ace/Timer_Wheel_T.cpp:
- ace/Timer_Hash_T.cpp: Added pure virtual get_first() method to
- Timer_Queue_T. Added implementations to Timer_Wheel and Timer_Hash.
- Timer_Heap and Timer_List already had implementations.
-
-Sat Jan 17 23:40:02 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * netsvcs/VCAUTO.MAK:
- * netsvcs/lib/VCAUTO.MAK: Added directory information for easier
- debugging.
-
-Sat Jan 17 16:10:04 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/Service_Configurator/Misc/main.cpp (main): Replaced the
- buggy use of ACE_Service_Config daemon; with
- ACE_Service_Config::open(). We'll have to fix this properly
- some day, but for now this is the best solution. Thanks to
- Pawel Roman <proman@npac.syr.edu> for reporting this.
-
-Sat Jan 17 00:42:13 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/SString.cpp (substring): Fixed bug. count should be
- initialized to length and not len_.
-
-Fri Jan 16 15:52:34 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/IOStream.h (ACE_Streambuf):
- * ace/config-win32-common.h:
- * ace/iosfwd.h:
- * ace/streams.h: Applied IOStream patches from James CE Johnson
- <jcej@chiroptera.tragus.org>.
-
-Fri Jan 16 01:42:52 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h: Changed the definition of ACE_CORBA_* macros so that
- on non-Win32 platforms, they will be expand to the nested
- classes. Thanks to Jonathan Reis <reis@minniemouse.cemax.com>
- for reporting this.
-
- * ace/SString.h: Added the correct export macros.
-
-Thu Jan 15 15:45:48 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * etc/ACE-guidelines.html: Reformatted this page a bit.
-
- * ace/Message_Queue.cpp (open): The fix from Slawomir Kuzniar was
- incorrect. I reverted the change.
-
-Thu Jan 15 12:43:23 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * /: Added a bunch of makefiles (*.MAK) for one button
- make-and-test on NT.
-
- * Makefile (FILTER): Added filter to remove VC one button related
- makefile from ACE release.
-
- * ace/ACE_Library.{mdp,mak}: Added Shared_Memory.cpp file into the
- project makefile.
-
-Thu Jan 15 09:12:26 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Barrier_Test.cpp,Message_Block_Test.cpp,Priority_Task_Test.cpp,
- Reactor_Exceptions_Test.cpp,Reactors_Test.cpp,Thread_Mutex_Test.cpp:
- (main): changed some local variables from int to size_t to avoid
- signed/unsigned comparison.
-
- * ace/OS.i,config-linux-common.h,README: aded ACE_HAS_SOCKLEN_T
- support for Linux/glibc2, which has a socklen_t type.
-
- * include/makeinclude/rules.local.GNU (depend.local): produce all 4
- combinations of .obj, .shobj, .o, and .so dependency targets. This
- should take care of the problem of not rebuilding when a dependency
- has changed, after we regenerate all the Makefiles.
-
- * include/makeinclude/rules.local.GNU (depend.local): removed the sed
- rule that wiped out each Makefile line ending with :. I don't know
- why that rule was there. With it, if a Makefile had a target such
- as clean:, it got deleted. Not any more.
-
- * many Makefiles: updated dependences with revised depend.local.
-
- * bin/g++dep: added lib/g++-include path to gcc -MM invocation, so
- that gcc can find all of its headers. (It didn't help to replace
- gcc with g++, though I would have expected that to solve the
- problem.)
-
- * ace/Timer_Heap_T.cpp (get_first): fixed ACE_TRACE id string.
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp,
- * apps/Gateway/Peer/Peer.cpp (recv):
- changed type of HEADER_SIZE to size_t to avoid signed/unsigned
- comparison.
-
-Wed Jan 14 20:41:35 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Signal.i (is_member):
- Fixed typo in new cast, the type is sigset_t not sigset.
-
-Wed Jan 14 20:27:44 1998 <coryan@MILONGA>
-
- * ace/OS.h:
- The new location for AF_ANY and AF_FILE was in the middle of a
- big #if !ACE_WIN32, hence it was not working for NT, I moved it
- further down and now NT is happy.
-
-Wed Jan 14 19:01:59 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Message_Queue.cpp (open): In Message_Queue::open
- deactivated_ flag is being set to 0 instead of
- WAS_INACTIVE. This is causing incorrect return value from
- first-time call to activate(). Thanks to Slawomir Kuzniar
- <kuzniar@Bear.COM> for reporting this.
-
- * ace/Signal.i (is_member): Added an ACE_const_cast(). Thanks to
- Oleg Krivosheev <kriol@fnal.gov> for reporting this.
-
-Wed Jan 14 06:45:52 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i: Fixed typo in ACE_Time_Value::operator const timeval *
- definition. (select's): cast the ACE_Time_Value to a
- const timeval * and then to a timeval * so that they will
- compile.
-
- * tests/Time_Value_Test.cpp (test_ace_u_longlong): made divisors of
- operator/ tests explicitly unsigned, to avoid overloading problems
- now that there are two division operators.
-
-Tue Jan 13 16:31:48 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.i: Changed the signature of ACE_Time_Value::operator
- timeval *() to return operator const timeval *(). Thanks to
- Oleg Krivosheev <kriol@fnal.gov> for reporting this. Changed
- several other unsafe casts to use the ACE_const_cast() macro.
-
-Tue Jan 13 13:30:23 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Profile_Timer.cpp (elapsed_time): use floating point
- arithmetic for real_time calculation, in case delta_t is
- less than ACE_ONE_SECOND_IN_NSECS (and for more precision
- otherwise). Thanks to Brian Mendel for tripping over this.
-
- * ace/Basic_Types.{h,i} (ACE_U_LongLong): added
- operator/ (const double).
-
- * ace/OS.h: moved definition of AF_FILE, etc., to _after_ the
- #include of sys/socket.h. That way, the #ifndef AF_FILE
- protection will work properly on Linux/glib2. Thanks to
- Amos Shapira <amos@gezernet.co.il> for breaking silence and
- reporting this.
-
-Mon Jan 12 20:19:54 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/SString.i: Replaced all uses of NULL with 0 since NULL
- causes problems with some lame C++ compilers.
-
- * ace/SString.i: Moved one of the inline find() methods down
- so that GCC doesn't complain anymore.
-
- * tests/Reactor_Timer_Test.cpp (main): Changed long i to size_t i
- to be consistent.
-
- * ace/Select_Reactor.h: Updated the explanation of how the
- ACE_Select_Reactor_Token works. Thanks to Detlef Becker for
- explaining this in great detail.
-
- * tests/test_config.h: Changed the type of all the consts to
- size_t rather than int. This may cause a bit of upheaval at
- first since we'll need to fix some other types. But it's the
- "Right Thing"[TM] to do.
-
-Mon Jan 12 18:31:23 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * Start renaming MSVC 4.2 workspace/makefile names.
-
- * apps/Gateway/Peer/Peer4.{mdp,mak}:
- * apps/Gateway/Gateway/Gateway4.{mdp,mak}: Made them in synch with
- VC 5.0's status.
-
-Mon Jan 12 12:30:34 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-common.h: moved
- ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES so that it isn't used
- with egcs. Thanks to Gonzo for testing this.
-
- * tests/Service_Config.test: changed type of VARIETIES to u_int to
- avoid signed/unsigned comparison in main. Thanks to Gonzo for
- reporting this.
-
- * ace/config-linux-common.h: added ACE_HAS_TEMPLATE_TYPEDEFS and
- ACE_HAS_TYPENAME_KEYWORD. Thanks to Oleg Krivosheev
- <kriol@fnal.gov> for reporting these.
-
- * ace/config-vxworks5.x.h: merged the two VxWorks configs (g++ and
- ghs) into this new config for easier maintenance. Added
- ACE_THR_PRI_FIFO_DEF, set to 6.
-
- * tests/Reactor_Timer_Test.cpp (main): cast i to u_long to avoid
- signed/unsigned comparison.
-
-Sun Jan 11 23:02:07 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/SString_Test.cpp (main): Removed the "silly" strings from
- the tests. They are annoying and cause memory leaks.
-
-Sun Jan 11 22:16:28 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.{h,cpp} (transmit): Changed the function
- to return the result of transmission.
- (transmit_stdin): Make sure the function returns proper results
- of transmission.
-
-Sun Jan 11 16:18:15 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.18, released Sun Jan 11 16:18:15 1998.
-
-Sun Jan 11 00:00:26 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * apps/Gateway/Gateway/Gateway.cpp (parse_connection_config_file):
- Fixed a typo, == should be =. Thanks to David Levine for
- reporting this.
-
- * apps/Gateway/Peer/Peer.cpp (recv),
- apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (recv):
- Added a cast to remove a GCC warning about signed/unsigned
- comparisons. Thanks to David Levine for reporting this.
-
- * ace/Log_Msg.cpp (log): Made a minor change to move where the
- message is copied from thread-specific storage into the transfer
- buffer. Thanks to Patrick J. McNerthney <pat@thememedia.com>
- for reporting this.
-
- * apps/Gateway/Peer/Peer: Added new logic to transmit subscription
- requests to the Gateway.
-
- * apps/Gateway/Gateway/Event.h (class Event_Header): Make sure
- that we correctly encode/decode the connection_id.
-
-Sat Jan 10 18:17:06 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * apps/Gateway/Gateway/Event.h: Added the event priority_ field to
- the Event_Key. We don't currently use this, but we may some
- day.
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (put):
- Changed the forward() method to process() since our new scheme
- will need to do more than just forward, e.g., it will need to
- handle subscriptions.
-
- * apps/Gateway/Gateway/Connection_Handler: Made the accessors
- const member functions and also added accessors for the
- Event_Channel * so this can be set by the
- Connection_Handler_Acceptor::accept_svc_handler() method.
-
- * apps/Gateway/Gateway/Connection_Handler: Added mutators so that
- we can set the local and remote addresses outside of the
- constructor.
-
- * apps/Gateway/Gateway/Options: Added a connection_id() accessor
- to set/get the connection id. This makes it possible to allow
- Peers to connection with the Gateway.
-
- * apps/Gateway/Gateway/Gateway.cpp (parse_connection_config_file):
- Added a sanity check to ensure that the connection ids start at
- 1 and increment by 1.
-
-Sat Jan 10 22:37:37 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/SString.i (find): changed type of local i to size_t to
- avoid signed/unsigned comparison.
-
-Sat Jan 10 14:57:01 1998 <coryan@MILONGA>
-
- * ace/Env_Value_T.h:
- The return value for the assignment operator had no template
- parameter, ditto for the arguments of the copy constructor and
- the already mentioned operator.
-
-Sat Jan 10 13:20:08 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * tests/Conn_Test.cpp: Moved template instantiation codes around
- to avoid warnings.
-
-Sat Jan 10 01:36:08 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/SString: Made the following changes to make the ACE string
- class look more like the STL string class:
-
- - Added npos to all classes.
-
- - Added non-const reference operator[].
-
- - Changed operator= and operator+= to return *this.
-
- - Added STL like find and rfind routines
-
- - Made the three classes be a similar as possible.
-
- - Changed the implementation of strstr to use the C library
- strstr function.
-
- - Added constructors from single characters.
-
- - Made substring a const method.
-
-Fri Jan 9 19:11:39 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * tests/Map_Manager_Test.cpp (test_hash_map_manager): Added
- ACE_UNUSED_ARG to eliminate warnings.
-
- * ace/Hash_Map_Manager.cpp (rbegin): Added more static cast to
- eliminate warning messages.
-
-Fri Jan 9 11:35:53 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/server/server_test.cpp:
- Fixed a syntax error. Thanks to John Mulhern
- <9107@MN3.LAWSON.lawson.com> for reporting this.
-
- * ace/Log_Msg.cpp (log): Changed abort_prog == 0 to abort_prog so
- that STDERR would be printed correctly.
-
- * ACE-categories: Added all the ACE files into the ACE-categories
- listing. Thanks to Andres Kruse for motivating this.
-
- * include/makeinclude/platform_sunos5_egcs.GNU (CXX): Removed
- -pipe from CC and CXX. It was already in CCFLAGS.
-
-Fri Jan 09 11:56:44 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/config-win32.h (ACE_ORBIX_HAS_NAMESPACES): By default, you
- will get the proper namespace usage for Orbix. If you don't
- like this, comment out the #define ACE_ORBIX_HAS_NAMESPACES line
- or #undef ACE_ORBIX_HAS_NAMESPACES in your config.h file after
- including this config-win32.h.
-
-Fri Jan 09 07:04:47 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_g++.GNU: removed
- -pipe from CC and CXX. It was already in CCFLAGS.
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: added
- target-dependent support for symbol table extractor, and
- disabled symbol table extraction (POSTLINK) by default.
- Thanks to Keith Nicewarner <knicewar@sanders.com> for
- reporting problems with this on PPC604 targets.
-
- * ace/config-linux-common.h: added ACE_HAS_STDCPP_STL_INCLUDES
- and removed ACE_LACKS_ACE_IOSTREAM. Thanks to James CE Johnson
- <jcej@lads.com> for reporting these.
-
- * tests/run_tests.vxworks: added Env_Value_Test.
-
-Fri Jan 09 00:14:20 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp:
- * apps/Gateway/Gateway/Config_Files.cpp: Defined
- ACE_BUILD_SVC_DLL flag. All declarations of an exported class
- must be declared with the same exporting flag.
-
- * apps/Gateway/Peer/Options.h: Updated the path of include file
- Event.h.
-
-Thu Jan 08 22:11:57 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * ace/Env_Value_T.i (ACE_Convert): Added static cast for int and
- short conversion funcions.
-
-Thu Jan 08 21:37:30 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.17, released Thu Jan 08 21:37:30 1998.
-
-Thu Jan 8 19:50:43 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task: Added a virtual destructor for ~ACE_Task_Base. Thanks
- to Oleg Krivosheev <kriol@fnal.gov> for suggesting this.
-
- * ace: Added a new config-sunos5.5-egcs.h for the EGCS compiler.
- Thanks to Oleg Krivosheev <kriol@fnal.gov> for contributing
- this.
-
- * include/makeinclude: Added a new platform macros file for the
- EGCS compiler on Solaris 2.x. Thanks to Oleg Krivosheev
- <kriol@fnal.gov> for contributing this.
-
- * include/makeinclude/platform_sunos5_g++.GNU (CXX): Added the
- -pipe flag.
-
- * man: Updated all the manual pages.
-
- * ace/Log_Msg: Added changes to allow the logging of custom built
- log records. The main reason for these changes is to allow code
- to handle the logging of out of memory conditions without
- allocating any additional memory. Thanks to Patrick
- J. McNerthney <pat@thememedia.com> for this feature.
-
- * ace/Log_Msg: Added a new method called log_priority_enabled(),
- which returns true if the priority is enabled (gee, is *that*
- what it does? ;-)). Thanks to Patrick J. McNerthney
- <pat@thememedia.com> for this feature.
-
- * examples/Service_Configurator/IPC-tests/server/server_test.cpp
- (main): Revised the driver program so that it doesn't create an
- explicit ACE_Service_Config object. Thanks to John Mulhern
- <9107@MN3.LAWSON.lawson.com> for reporting this.
-
- * apps/Gateway/{Gateway,Peer}/Options.cpp: Oops, ACE_BUILD_DLL
- should be ACE_BUILD_SVC_DLL, yikes! Thanks to Jeff Hellzen
- <JHellzen@hwdcsaws.cahwnet.gov> for reporting this.
-
- * apps/Gateway/{Peer,Gateway}/Options.{h,cpp}: Added a missing
- #define ACE_BUILD_DLL and a missing ACE_Svc_Export. Thanks to
- Jeff Hellzen <JHellzen@hwdcsaws.cahwnet.gov> for reporting this.
-
- * ace/Select_Reactor.cpp (suspend_i): The clr_bit call was
- mistakenly made on the write mask, rather than the read mask.
- Thanks to Billy Quinn <ace-users@lads.com> for reporting this.
-
-Thu Jan 08 16:02:33 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * ace/Hash_Map_Manager.{h,cpp}: Added STL-styled iterator
- functions.
-
- * tests/Map_Manager_Test.cpp:
- * tests/Hash_Map_Manager_Test.cpp:
- * tests/Conn_Test.cpp:
- * ace/Local_Name_Space.cpp:
- * ace/Filecache.cpp: Added missing template instantiation codes.
-
-Thu Jan 08 11:05:15 1998 <coryan@CHA-CHA>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Added the new Shared_Memory.cpp file to the project.
-
-Wed Jan 07 20:40:45 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: protect #define of AF_FILE, because Linux/RedHat 5.0
- #defines it in /usr/include/socketbits.h. Thanks to James CE
- Johnson <jcej@lads.com> for reporting this.
-
- * tests/test_config.h (set_output): "if (! test_dir)" instead of
- "if (test_dir)" so the output filename ends up non-null.
-
- * ace/Shared_Memory.{h,cpp},Makefile (~ACE_Shared_Memory): made
- virtual and non-line. Added file Shared_Memory.cpp to contain
- the definition.
-
-Wed Jan 07 17:59:57 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * ace/Free_List.i (add): Only delete freeed item when we hit the
- high water mark, not the other way around. Thanks to Stuart
- Myles <smyles@wsj.dowjones.com> for pointing this out.
-
-Wed Jan 7 17:46:09 1998 James C Hu <jxh@cs.wustl.edu>
-
- * examples/Timer_Queue/Thread_Timer_Queue_Test.h:
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
- * examples/Timer_Queue/Reactor_Timer_Queue_Test.h:
- * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp:
- * examples/Timer_Queue/Driver.h:
- * examples/Timer_Queue/Driver.cpp:
- Added virtual destructors to classes that needed them.
-
-Wed Jan 7 16:28:16 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Event_Handler_T.cpp: Reordered the initializers in the
- ACE_Event_Handler_T constructor so G++ doesn't complain. Thanks
- to Oleg Krivosheev <kriol@fnal.gov> for reporting this.
-
- * ace/Shared_Memory.h: Added a virtual destructor to the
- ACE_Shared_Memory abstract base class so that EGCS won't
- complain. Thanks to Oleg Krivosheev <kriol@fnal.gov> for
- reporting this.
-
- * ace/Event_Handler_T.h: Had to include the *.cpp file into .h
- when ACE_TEMPLATES_REQUIRE_SOURCE is defined. Thanks to Oleg
- Krivosheev <kriol@fnal.gov> for reporting this.
-
-Wed Jan 07 14:31:34 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.16, released Wed Jan 07 14:31:34 1998.
-
-Wed Jan 7 13:38:28 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * tests/test_config.h (set_output): Added an environment variable
- to specify where to put the log directory: ACE_TEST_DIR. Thanks
- to Keith Nicewarner <knicewar@sanders.com> for reporting this.
-
- * ace/Service_Repository.cpp (close): Removed a fragment of
- redundant code. Thanks to Eric Newton <ecn@smart.net> and Alex
- Chan <Alex.Chan@Aspect.com> for reporting this.
-
-Tue Jan 06 17:19:13 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * ace/Containers.{h,cpp} (ACE_Unbounded_Set[_Iterator]): Added
- STL-styled iterator functions. Changed the internal
- representation of ACE_Unbounded_Set within iterators from a
- reference to a pointer. We need this to compare if two
- iterators are refering to the same set or not.
-
-Tue Jan 6 14:11:54 1998 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * tests/Reader_Writer_Test.cpp:
- Reverted to revision 4.21 since the latest one (4.23) fails;
- thanks to Irfan for this solution.
-
-Tue Jan 06 10:37:49 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (rw_trywrlock_upgrade): moved the #if 0 up a bit so
- that it builds on Linux/non-glibc. For some reason, its
- preprocessor was getting confused.
-
- * ace/OS.i (nanosleep): convert nanoseconds to microseconds
- by dividing by 1000, not multiplying. Thanks to
- Mitch Kuninsky <Mitch_Kuninsky@avid.com> for reporting this.
-
- * ace/config-mvs.h: added ACE_LACKS_LONGLONG_T because MVS doesn't
- support it. Thanks to Chuck Gehr <gehr@sweng.stortek.com> for
- confirming that.
-
-Mon Jan 5 01:20:51 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * ace/Map_Manager.{h,cpp}: Made operator == and != and their
- arguments const.
-
-Sun Jan 04 19:45:47 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/IPC_SAP.cpp (enable,disable): moved return 0 at end
- to inside the #endif, to avoid warning about unreachable
- return statement on ghs/VxWorks. Thanks to Brian Mendel
- for reporting this.
-
- * ace/OS.i (rw_trywrlock_upgrade): moved return 0 inside the
- #if 0 block to avoid warning about unreachable return statement
- on ghs/VxWorks. Thanks to Brian Mendel for reporting this.
-
- * ace/OS.i (rw_trywrlock_upgrade): added ACE_UNUSED_ARG (rw)
- to temporary code.
-
- * ace/Basic_Types.{h,i},README: replaced ACE_HAS_LONGLONG_T with
- ACE_LACKS_LONGLONG_T. ACE_HAS_LONGLONG_T was no longer
- being used on many platforms with the scheme in Basic_Types.h.
- From now on, we'll assume that a platform has long long
- (unless ACE_LACKS_LONGLONG_T is #defined), which should help
- porting to new platforms.
-
- * ace/config-aix-4.{1,2}.x.h,config-dgux-4.11-epc.h,
- config-linux-{common,kcc}.h,config-lynxos.h,config-m88k.h,
- config-osf1-*.h,config-sunos5.*.h,config-tandem.h:
- removed ACE_HAS_LONGLONG_T.
-
- * ace/config-chorus.h,config-psosim-g++.h,config-vxworks*.h:
- added ACE_LACKS_LONGLONG_T.
-
- * ace/Basic_Types.{h,i} (ACE_U_LongLong): fixed operator/, and
- added operator% and operator--.
-
- * ace/High_Res_Timer.*: changed type of global_scale_factor_ from
- u_long to ACE_UINT32. Removed some hacks now that ACE_U_LongLong
- has operator%.
-
- * tests/Time_Value_Test.cpp: added tests of ACE_U_LongLong
- operator/ and operator%.
-
- * ACE-INSTALL.html: added link to Cygus repo patches. Thanks
- to Achint Sandhu <sandhu@nortel.ca> for providing the URL.
-
- * ace/OS.{h,i}: added ACE_OS::putenv ().
-
- * tests/Env_Value_Test.cpp: use ACE_OS::putenv ().
-
- * tests/Env_Value_Test.cpp: expect (unsigned long) -10 for
- TEST_VALUE_NEGATIVE converted to an unsigned long.
- Thanks to Jack Erickson <JErickson@exchange.ml.com> for
- verifying that it _should_ return (unsigned long) -10.
-
- * ace/OS.i (strtoul): on Linux with glibc, use ::strtol instead of
- ::strtoul and cast the result to an unsigned long. Its ::strtoul
- always seems to return 0 for a negative number, at least on
- RedHat 4.2/Linux 2.0.30/Alpha with glibc 2.0 (0.961212-5).
-
- * ace/config-linux-common.h: factored out
- ACE_LACKS_SOME_POSIX_PROTOTYPES from glibc and non-glibc
- sections to common section.
-
- * etc/purify.solaris2: added suppression of MIU from putenv.
-
-Sun Jan 04 17:19:31 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.15, released Sun Jan 04 17:19:31 1998.
-
-Sun Jan 4 10:11:53 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (rw_trywrlock_upgrade): Temporarily comments out this
- method since we need to finish implementing it correctly.
-
- * ace/OS.i (rw_trywrlock_upgrade): Fixed a minor bug where we
- weren't releasing the lock correctly if there were competing
- readers.
-
- * apps/Gateway/Gateway/Event_Channel.cpp (put): Uncommented the
- code that sets the appropriate locking strategy for the Message
- Blocks.
-
- * apps/Gateway/Gateway/Connection_Handler.h: Made the
- remote_addr() and local_addr() accessor methods return
- const-correct values.
-
- * build/SunOS5.5/ace/OS: Revised a bunch of #ifdefs so that we can
- selectively enable the ACE rwlock emulation, even if we're
- compiling with ACE_HAS_STHREADS in order to get the native
- Solaris semaphores.
-
- * apps/Gateway/Peer/Makefile: Tweaked the Makefile rules to fix
- some minor problems. Thanks to David Levine for showing the
- way...
-
-Sun Jan 04 12:37:02 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Env_Value_Test.cpp: hacked to work with
- ACE_HAS_NONSTATIC_OBJECT_MANAGER. With that, it uses ::putenv (),
- which we should wrap in ACE_OS. Also, expanded TEST_THIS to
- provide a more helpful log message than just the ASSERT output.
-
- * ace/config-vxworks5.x-g++.h: removed
- ACE_HAS_TEMPLATE_SPECIALIZATION.
-
- * tests/Hash_Map_Manager_Test.cpp (main): added casts of i->ext_id_
- and i->int_id_ to (char *) to force g++/VxWorks to apply the
- conversion from Dumb_String to char *.
-
-Sun Jan 04 09:51:59 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Options.{h,cpp}: Removed macros to export
- this class out of DLL. They are no longer needed.
-
- * apps/Gateway/Gateway/Gateway.dsp: Updated source file listings.
-
-Sat Jan 3 22:25:15 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * apps/Gateway/Gateway: Changed the name of the ACE_Event_Channel
- class to Event_Channel since this class wasn't a part of the ACE
- library.
-
- * apps/Gateway/Gateway/Event_Channel.h: Updated the inheritance
- relationship for Event_Channel so that it inherits from
- ACE_Event_Handler rather than ACE_Task. ACE_Task was
- overkill...
-
- * apps/Gateway/Gateway: Removed the supplier_id from all the
- files. We didn't use this anyway and it was just confusing.
- Also, renamed Proxy_* to Connection_* to underscore the fact
- that the Supplier_Handler and Consumer_Handler work atop
- *connections*. The previous naming scheme was too abstract for
- its own good.
-
-Sat Jan 03 14:16:40 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * ace/Map_Manager.cpp (ACE_Map[_Reverse]_Iterator): Fixed the
- initial iterator position.
-
-Fri Jan 02 18:43:14 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.14, released Fri Jan 02 18:43:14 1998.
-
-Fri Jan 2 17:39:04 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * apps/Gateway/Peer/Options.cpp (Options): Rearranged the order of
- the parameters in the base/member initialization section to make
- GCC happy. Thanks to David Levine for getting on me about this.
-
- * apps/Gateway/Gateway/Options.h: Changed DEFAULT_TIMEOUT
- to MAX_TIMEOUT to be consistent. Thanks to David
- Levine for reporting this.
-
-Fri Jan 2 17:25:05 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * tests/Map_Manager_Test.cpp: Added codes to test STL-styled
- functions in ACE_Map_Manager.
-
- * apps/Gateway/Gateway/Proxy_Handler.cpp:
- * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp:
- * apps/Gateway/Gateway/Event_Channel.cpp:
- * apps/Gateway/Peer/Peer.cpp:
- * ace/Local_Name_Space.cpp:
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp:
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp:
- * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp:
- * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp:
- * examples/Connection/blocking/SPIPE-connector.cpp:
- * examples/Connection/misc/test_upipe.cpp:
- * examples/Connection/non_blocking/test_sock_connector.cpp:
- * examples/Connection/non_blocking/test_spipe_connector.cpp:
- * examples/Connection/non_blocking/test_tli_connector.cpp:
- * examples/Connection/non_blocking/test_lsock_connector.cpp:
- * netsvcs/clients/Tokens/manual/manual.cpp:
- * netsvcs/lib/TS_Clerk_Handler.cpp:
- * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp: Added some
- more explicit template instantiations.
-
- * ace/Map_Manager.{h,cpp}: Added back comparison operators for
- ACE_Map_Iterator and ACE_Map_Reverse_Iterator.
-
- * ace/Token_Invariants.cpp:
- * ace/Token_Collection.cpp:
- * ace/Token_Manager.cpp: Added missing ACE_Map_Reverse_Iterator.
-
- * ace/Map_Manager.h: Remove unnecessary method declarations from
- ACE_Map_Iterator adn ACE_Map_Reverse_Iterator.
-
- * examples/Connection/non_blocking/test_tli_connector.cpp:
- * examples/Connection/non_blocking/test_sock_connector.cpp:
- * examples/Connection/non_blocking/test_lsock_connector.cpp:
- * examples/Connection/non_blocking/test_spipe_connector.cpp:
- * examples/Connection/misc/test_upipe.cpp:
- * examples/Connection/blocking/SPIPE-connector.cpp:
- * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp:
- * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp:
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp:
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp:
- * apps/JAWS/clients/Caching/http_handler.cpp:
- * apps/JAWS/clients/Blobby/Blob.cpp:
- * apps/Gateway/Peer/Peer.cpp:
- * apps/Gateway/Gateway/Event_Channel.cpp:
- * apps/Gateway/Gateway/Proxy_Handler.cpp:
- * apps/Gateway/Gateway/Proxy_Handler_Connector.cpp:
- * tests/Reactor_Performance_Test.cpp:
- * tests/Priority_Reactor_Test.cpp:
- * tests/Map_Manager_Test.cpp:
- * tests/Conn_Test.cpp:
- * netsvcs/lib/TS_Clerk_Handler.cpp:
- * ace/Token_Manager.cpp:
- * ace/Token_Invariants.cpp:
- * ace/Token_Collection.cpp:
- * ace/Local_Name_Space.cpp: Added explicit template instantiation
- for ACE_Map_Iterator_Base.
-
- * ace/Map_Manager.{h,cpp}: Added a new class ACE_Map_Iterator_Base
- to abstract out most common functionalities from
- ACE_Map_Iterator and ACE_Map_Reverse_Iterator. Added some
- missing functions to both iterator classes.
-
-Fri Jan 2 12:39:45 1998 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * ace/Map_Manager.h:
- Another declaration removed from ACE_Map_Reverse_Iterator,
- operator* is defined in the base class.
-
- * tests/Conn_Test.cpp:
- * tests/Priority_Reactor_Test.cpp:
- * tests/Reactor_Performance_Test.cpp:
- The instantiation of ACE_Map_Manager *requires* instantiating
- ACE_Map_Reverse_Iterator.
-
- * ace/OS.i:
- Cannot use ACE_ASSERT in OS.i, at least it make SGI compiler
- unhappy.
-
- * ace/Map_Manager.cpp:
- Several methods for ACE_Map_Manager were not given their fully
- qualified name.
-
- * ace/OS.i:
- The error code should be stored in errno, not in "error".
-
-Fri Jan 2 17:02:36 1998 Chris Cleeland <cleeland@tango.cs.wustl.edu>
-
- * tests/run_tests.sh: Added Env_Value_Test to the list of tests to
- run.
-
- * tests/Env_Value_Test.cpp (main): Fixed wrong test for negative
- values with unsigned longs. Thanks to David Levine and
- Linux/Alpha for finding this.
-
- * tests/Env_Value_Test.cpp (main): Changed the definition of the
- TEST_THIS macro to be all on one line. While ugly, this helps in
- locating the line when ACE_ASSERT fails, since allowing the macro
- to have multiple lines skews the line # reported by ACE_ASSERT.
-
- * ace/Env_Value_T.*: Fixed lots of little bugs that got past both
- g++ and Solaris compilers, but were caught by the ever-skeptical
- SGI compiler. This included providing a definition for the missing
- 'varname(void)' method.
-
-Fri Jan 02 10:12:28 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x-g++.h: Added #define HPUX_10 to catch OS
- version-dependent code correctly.
-
-Fri Jan 02 07:06:44 1998 David L. Levine <levine@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Makefile: restored the .obj/*.o targets.
- They don't affect the build of the shared lib and are used if
- the unshared lib is built.
-
- * apps/Gateway/Gateway/Options.h: added missing , in enum definition.
-
- * apps/Gateway/Gateway/Options.cpp (Options ctor): reordered
- initializers to match declaration order.
-
- * apps/Gateway/Gateway/Config_Files.cpp (read_entry): fixed syntax
- error, missing "if" after "else". Added #include of Options.h.
-
- * ace/OS.i (rw_trywrlock_upgrade): added ACE_UNUSED_ARG (rw) with
- STHREADS.
-
- * ace/Synch.i (tryacquire_write_upgrade): only define if
- ACE_HAS_THREADS.
-
- * tests/test_config.h: hacked ACE_INIT_LOG to work on VxWorks.
- VxWorks gets upset if its asked to unlink a nonexistant file.
-
- * ace/Basic_Types.*: if using ACE_U_LongLong, #define
- ACE_USES_ACE_U_LONGLONG and use that in the .i and .cpp files
- instead of repeating all of the complex preprocessor tests
- in Basic_Types.h. Thanks to Carlos for suggesting this.
-
- * ace/Env_Value_T.cpp: added protection against multiple inclusion.
-
- * tests/Env_Value_Test.cpp: added ACE_Env_Value<long> instantiation.
-
-Fri Jan 02 00:47:33 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.13, released Fri Jan 02 00:47:33 1998.
-
-Fri Jan 2 00:17:04 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Reader_Writer_Test.cpp: Changed from an ACE_RW_Mutex to an
- ACE_RW_Thread_Mutex so that we can use the new
- tryacquire_write_upgrade() method.
-
- * ace/Env_Value_T.h: Reformatted the file a bit to conform to
- ACE coding conventions.
-
-Thu Jan 1 12:04:29 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * apps/Gateway/Peer/Options.cpp (parse_args): Changed the option
- to set the passive acceptor port from -p to -a. This is now
- consistent with the option for active connector port number,
- which is -c.
-
- * apps/Gateway/Gateway/Gateway.cpp (fini): Added a call to
- ACE::remove_stdin_handler(), which removes the handler for
- ACE_STDIN so the gatewayd will shutdown cleanly.
-
- * ace/ACE: Added a new method, remove_stdin_handler(), which is
- the inverse of the register_stdin_handler() method. However,
- I'm not sure how to make this work on NT!
-
- * examples/Reactor/Misc/notification.cpp: Removed some
- CHORUS-specific, which should be a no-op with our new signal()
- and sigaction() scheme.
-
- * ace/OS.i: Enhanced the signal() and sigaction() wrappers so that
- they simply ignore signums of 0. This means that we don't need
- to special case all this stuff throughout ACE anymore.
-
- * ace/OS.h: Changed all the #defines for various SIG* so that they
- are all 0. This way, we can ensure that the signal() functions
- in ACE_OS can correctly ignore these signals. This should clean
- up a ton of platform-dependent code throughout ACE.
-
- * apps/Gateway/Gateway/File_Parser.cpp (getint): Added a new
- special-case check for the '*' character, which indicates "use
- the default value for this field."
-
- * apps/Gateway/Gateway/Options: Added a new option to provide a
- default max retry timeout.
-
- * tests/Reader_Writer_Test.cpp: Enhanced the test so that it
- exercises the new "upgrade" feature of RW_Thread_Mutexes.
-
- * ace/{OS,Synch}: Added new methods,
- ACE_OS::rw_trywrlock_upgrade() and
- ACE_RW_Thread_Mutex::tryacquire_write_upgrade() that
- conditionally upgrade a read lock to a write lock. This only
- works if there are no other readers present, in which case the
- method returns 0. Otherwise, the method returns -1 and sets
- errno to EBUSY. Note that the caller of this method *must*
- already possess this lock as a read lock.
-
- * apps/Gateway/{Gateway,Peer}/Makefile: Removed the $(VLIB) macro
- so that we don't try to build the lib*.a files by default.
- Thanks to David Levine for explaining this.
-
- * apps/Gateway/Gateway: Added new Options.{h,cpp} files and
- rearranged the program to centralize all options processing in
- an Options Singleton.
-
- * apps/Gateway/Peer/Options.cpp (parse_args): Changed the
- connector and acceptor options to use a more generalizable
- format. Now we can set the Consumer and Supplier port numbers
- independently.
-
- * apps/Gateway/Gateway/Event.h: This is currently where the macros
- from the following bullets have been moved, so they can be
- shared by the Peer and Gateway components.
-
- * ace/OS.h: Moved the ACE_DEFAULT_{GATEWAY,PEER}_SERVER_PORT
- macros into the Gateway application, where they belong.
-
- * apps/Gateway/Peer/Options.cpp (parse_args): Changed the option
- to set the passive acceptor port from -p to -a. This is now
- consistent with the option for active connector port number,
- which is -c.
-
- * apps/Gateway/Gateway/Gateway.cpp (fini): Added a call to
- ACE::remove_stdin_handler(), which removes the handler for
- ACE_STDIN so the gatewayd will shutdown cleanly.
-
- * ace/ACE: Added a new method, remove_stdin_handler(), which is
- the inverse of the register_stdin_handler() method. However,
- I'm not sure how to make this work on NT!
-
- * examples/Reactor/Misc/notification.cpp: Removed some CHORUS-specific
- code, which should be a no-op with our new signal() and sigaction()
- scheme.
-
- * ace/OS.i: Enhanced the signal() and sigaction() wrappers so that
- they simply ignore signums of 0. This means that we don't need
- to special case all this stuff throughout ACE anymore.
-
- * ace/OS.h: Changed all the #defines for various SIG* so that they
- are all 0. This way, we can ensure that the signal() functions
- in ACE_OS can correctly ignore these signals. This should clean
- up a ton of platform-dependent code throughout ACE.
-
- * apps/Gateway/Gateway/Gateway.cpp (init): Revised the code a bit
- to factor out platform-dependent signal handling stuff in the
- right place.
-
- * apps/Gateway/Gateway/gatewayd.cpp: Cleaned up the gatewayd main
- program so that it reuses more ACE components and so that it is
- more portable.
-
-Thu Jan 01 18:24:56 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Gateway.dsp: Added new file Options.cpp.
-
- * apps/Gateway/Gateway/Options.cpp (ACE_BUILD_SVC_DLL): Added
- #define ACE_BUILD_SVC_DLL.
-
- * netsvcs/lib/Base_Optimizer.i: Removed this file.
-
- * netsvcs/lib/Base_Optimizer.h: Added codes to include in the
- source file conditionally if needed.
-
- * netsvcs/lib/Base_Optimizer.cpp: Moved template implementation
- from .i file. Removed ACE_INLINE keyword.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: Added explicit template
- instantiation macros.
-
-Thu Jan 01 17:13:06 1998 David L. Levine <levine@cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.cpp (Peer_Connector::open): added
- return 0 statement at end.
-
- * apps/Gateway/Gateway/Options.cpp (Options ctor): reordered
- initializers to match declaration order.
-
- * apps/Gateway/Gateway/Makefile: removed LOBJ and SHOBJ macros
- because they're not needed. And, restored BUILD so that static
- lib will be built if requested.
-
- * include/makeinclude/rules.lib.GNU: added OBJEXT macro, defaulted
- to "o", and use it in VOBJS definition.
-
- * include/makeinclude/wrapper_macros.GNU: if building shared libs
- only, set OBJEXT to "so" and VDIR to .shobj/, so that only shared
- objects will be built.
-
- * apps/Gateway/Peer/Peer.cpp: added template instantiations.
-
- * netsvcs/lib/Base_Optimizer.*,Makefile: moved inline functions
- to .i file and changed inline to ACE_INLINE.
-
- * netsvcs/lib/Server_Logging_Handler_T.{h,cpp}: don't use
- Base_Optimizer with g++. Some versions of g++ 2.7.x have
- trouble with its inline template member functions, especially
- if __ACE_INLINE__ is disabled.
-
-Thu Jan 01 07:56:17 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.12, released Thu Jan 01 07:56:17 1998.
-
-Thu Jan 01 00:28:46 1998 Nanbor Wang <nw1@cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer.dsp: Added a new file "Options.cpp" into
- this project.
-
- * tests/Env_Value_Test.cpp (main): Changed variable name: 'environ'
- to 'envp'. Real OSes don't understand what the word means
- and Access Violations will occur.
-
- * tests/run_tests.bat: Added Env_Value_Test.
-
- * tests/version_tests/version_tests.dsw:
- * tests/tests.dsw: Added Env_Value_Test.dsp.
-
- * tests/version_tests/Env_Value_Test.dsp:
- * tests/Env_Value_Test.dsp: New file.
-
-Thu Jan 1 00:00:00 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Happy New Year! Here's a thought for the new year, courtesy of
- Sumedh:
-
- Nothing in the world is permanent,
- and we're foolish when we ask anything to last;
- but surely we're still more foolish
- not to take delight in it while we have it.
-
- - W.Somerset Maugham (Razor's Edge)
-
-Wed Dec 31 19:10:59 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * apps/Gateway/Peer/Peer: Added the hooks for making the Peer a
- Connector, as well as an Acceptor. Now it's time to have some
- fun.
-
- * apps/Gateway/Peer/peerd.cpp: Cleaned up the peerd main program
- so that it reuses more ACE components and so that it is more
- portable.
-
- * netsvcs/servers/main.cpp (main): Revised the code a bit to
- factor out platform-dependent signal handling stuff in the right
- place.
-
- * apps/Gateway/Peer: Factored out some common initialization code
- to create an Options Singleton. Yowza!
-
- * apps/Gateway/README: Improved the documentation so that its
- easier to tell what's supposed to happen and how to configure
- the system.
-
- * apps/Gateway/Peer/Peer: Moved the Peer_Acceptor into the Peer.h
- file and updated the documentation to clarify what's going on
- better.
-
- * examples/Reactor/Dgram/: Enhanced the examples to make sure they
- close() the dgram endpoint when the object is removed from the
- Reactor. Thanks to Evgeny Beskrovny
- <evgeny_beskrovny@icomverse.com> for reporting this.
-
- * ace/Obstack.cpp: Fixed a stupid bug in the ACE_Obstack
- constructor. Thanks to David Levine for reporting this.
-
- * ace/Local_Name_Space_T.h: Updated the documentation for class
- ACE_Name_Space_Map to make it more clear.
-
-Wed Dec 31 21:21:50 1997 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Reactor/Dgram/{CO,Dgram.cpp} (handle_close): added
- ACE_UNUSED_ARG (handle).
-
- * tests/Env_Value_Test.cpp (main): removed unused arg argv and
- local envargv. undef'ed ACE_HAS_NONSTATIC_OBJECT_MANAGER because
- it can't deal with the three arguments to main ().
-
-Wed Dec 31 16:25:16 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/Env_Value_T.*: Added a new template (ACE_Env_Value) which is
- a typesafe encapsulation of environment variables with the
- ability to provide a value to be used as a default if the
- variable isn't set. An example of its use can be seen in the
- corresponding test, tests/Env_Value_Test.cpp. Thanks to Carlos
- O'Ryan for giving me the seed that started this.
-
- * tests/Env_Value_Test.cpp: Added test for the new template added
- above.
-
- * tests/Makefile: Added new Env_Value_Test test to the Makefile.
-
- * ace/OS.{h,i} (strtod): Added new function for converting strings
- to doubles.
-
-Tue Dec 30 22:07:44 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp (elapsed_time): added a cast in
- calculation of useconds to avoid MSVC++ warning about narrowing.
- Thanks to Nanbor for reporting this.
-
- * ace/OS.i (gethrtime): commented out high-res tick counter on Linux
- because it doesn't seem to work properly. Use ::gettimeofday ()
- instead.
-
- * tests/Basic_Types_Test.cpp (main): replaced #ifdef VXWORKS && ghs
- with !ifdef ACE_HAS_WCHAR_TYPEDEFS_CHAR.
-
- * ace/Map_Manager.cpp (operator*): fixed typo in "ACE_Map_Entry".
-
- * ace/OS.h: added ACE_NSIG. In addition, I removed this:
-
- // Why is this defined? It must be a std C library symbol.
- #if !defined (NSIG)
- #define NSIG 0
- #endif /* NSIG */
-
- We #define NSIG elsewhere on platforms (VxWorks, MVS) that need it.
- #defining it to be 0 isn't good; it's better to catch the lack of
- NSIG at compile time than at run time.
-
- * ace/{Log_Msg.cpp,OS.i,Select_Reactor.cpp,Signal.*,WFMO_Reactor.i},
- tests/Sigset_Ops_Test.cpp: replace NSIG with ACE_NSIG.
-
- * ace/Basic_Types.{h,i}: only use u_longlong_t on sun. Added
- operator++ to ACE_U_LongLong, and tweaked calculation in operator/.
-
- * tests/Time_Value_Test.cpp (test_ace_u_longlong_): added test of
- operator+, and one simple test of operator/.
-
- * ace/Filecache.h: removed extra , in enum ACE_Filecache_Flag definition.
-
-Tue Dec 30 20:32:03 1997 Nanbor Wang <nw1@cs.wustl.edu>
-
- * ace/Map_Manager.{h,cpp}: Added STL-styled iterator function.
- Changed the references to ACE_Map_Manager within interator
- classes to pointers so we can check errors.
-
-Tue Dec 30 14:56:18 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Obstack: Enhanced ACE_Obstack so that it can be given a
- pointer to an allocator strategy. This allows users to take
- complete control of where the memory comes from for the Obstack.
-
- * ace/Obstack: Changed the default value of "size" so that it is
- (4096 - sizeof (ACE_Obstack)).
-
- * ace/Obstack: Added a new ACE_Obchunk constructor to simplify
- some of the code.
-
-Mon Dec 29 20:21:32 1997 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/rules.lib.GNU: Adjusted dependencies on building
- a shared library to be on the object modules it will link in, not
- necessarily $(VSJOBJ).
-
-Mon Dec 29 18:53:35 1997 James C Hu <jxh@cs.wustl.edu>
-
- * ace/Filecache.h: Added an enum type, ACE_Filecache_Flag, which
- gets passed into the ACE_Filecache_Handle constuctor to help
- determine whether or not to use memory mapping (on Windows NT,
- we sometimes do not want to memory map).
-
- * ace/Filecache.cpp: Required modifications to accomodate the
- ACE_Filecache_Flag parameter.
-
-Mon Dec 29 15:37:24 1997 Nanbor Wang <nw1@cs.wustl.edu>
-
- * ace/OS.i (event_timedwait): Added codes to guard against
- negative wait time since we are passing an absolute time value
- here, we may way past the target time when it gets called.
- Thanks to Norbert Rapp <NRapp@nexus-informatics.de> for pointing
- this.
-
-Mon Dec 29 13:57:43 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/XtReactor.cpp:
- Fixed syntax error, apparently some kind of typo.
-
- * ace/OS.h:
- The ACE_*_cast() macros had (IMHO) surprizing priority, added
- some parenthesis to make them behave as the new cast operators
- are supposed to do.
-
-Mon Dec 29 08:59:28 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.h: Linux w/o glibc 2.0 doesn't have u_longlong_t,
- so use "unsigned long long" for it.
-
- * ace/Task.cpp (activate): added ACE_UNUSED_ARG (thread_handles) on
- non-threaded platforms.
-
- * ace/Thread_Manager.cpp (wait): added ACE_UNUSED_ARG
- (abandon_detached_threads) on non-threaded platforms.
-
- * performance-tests/Misc/childbirth_time.cpp (prof_ace_os_thread):
- added ACE_UNUSED_ARG (iteration) on non-threaded platforms.
-
- * performance-tests/Misc/preempt.cpp (main): added ACE_UNUSED_ARG
- for argc and argv on non-threaded platforms.
-
- * include/makeinclude/platform_linux.GNU: enabled compiler warnings
- by replacing -w with -Wall -Wpointer-arith in CFLAGS.
-
- * ace/ACE.cpp (count_interface,get_handle,get_ip_interfaces): use
- same code for LynxOS as for __unix.
-
- * ace/OS.h: on LynxOS, redefine NSIG to be one greater than the
- highest-numbered signal. LynxOS' signal.h #defines it to be
- equal to the highest-numbered signal, 64.
-
-Mon Dec 29 08:35:17 1997 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_aCC.GNU: Removed the PRELIB
- and PRELIB_USES_OBJ_ONLY stuff; merged in macros for building
- on HP-UX 11.00.
- * include/makeinclude/platform_hpux11_aCC.GNU - Removed this file.
- The 10.x and 11.x builds are now both controlled by
- platform_hpux_aCC.GNU.
-
-Sun Dec 28 10:50:54 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.11, released Sun Dec 28 10:50:54 1997.
-
-Sat Dec 27 18:03:52 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/Log_Msg.cpp (dump): Sould test if we have a valid thr_desc
- before dumping the information of it. Thanks to Luca Priorelli
- <lucapri@mbox.vol.it> for pointing this out.
-
-Sat Dec 27 16:13:59 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/{OS.i,config-linux-common.h,README} (getrusage,{get,set}rlimit):
- added ACE_HAS_RUSAGE_WHO_ENUM and ACE_HAS_RLIMIT_RESOURCE_ENUM
- support. glibc 2.0 for Linux uses enums for the first arguments
- to ::getrusage and ::{get,set}rlimit.
-
-Fri Dec 26 18:04:06 1997 <nw1@JIG>
-
- * ace/Containers.h: Added iterator traits for following classes.
- ACE_Unbounded_Set
- ACE_Unbounded_Queue
- ACE_Unbounded_Stack
- ACE_Double_Linked_List
- ACE_Fixed_Set
- ACE_Bounded_Set
- Thanks to <???> for recommending this.
-
-Fri Dec 26 12:03:05 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h: added support for DCE threads, and merged in
- config-osf1-4.0-g++.h. Thanks to Frederic Andres
- <andres@rd.nacsis.ac.jp> for the DCE threads support #defines.
-
- * ace/config-osf1-4.0-g++.h: removed. All Digital Unix 4.0 configs
- are now supported by config-osf1-4.0.h.
-
- * ace/platform_osf1_4.0.GNU: added comment on how to use DCE threads
- instead of POSIX threads.
-
- * ace/OS.i (thr_{get,set}prio): don't apply the
- !defined(ACE_LACKS_SETSCHED) test if ACE_HAS_DCETHREADS.
-
- * ace/OS.cpp (thr_create): added || ACE_HAS_DCETHREADS to
- #ifndef ACE_LACKS_SETSCHED, so that priority is set with DCETHREADS.
-
- * ace/OS.cpp (sched_params): moved paren so that DCETHREADS block
- will be executed even if ACE_LACKS_SETSCHED.
-
- * ace/Sched_Params.cpp ({next,previous)_priority): added
- ACE_HAS_DCETHREADS check before !defined(ACE_LACKS_SETSCHED).
-
- * ace/OS.i (cond_timedwait): wrapped first arg to ACE_OSCALL in
- parens because it confused cxx.
-
- * examples/System_V_IPC/SV_Message_Queues/{,T}MQ_Server.cpp: renamed
- variable msgque because it conflicted with a symbol in the DEC cxx
- w/DCE threads headers.
-
- * ACE-INSTALL.html: expanded discussion of gcc config.status file.
- Thanks to Hans Rohnert <rohnert@scr.siemens.com> for figuring
- out the role of the config.status file.
-
-Fri Dec 26 06:44:25 1997 <nw1@JIG>
-
- * ace/OS.h (ACE_OS::ace_flock_t): Added a new field "lockname_" to
- remember the lock filename.
-
- * ace/OS.i (flock_init,flock_destroy): We need to remember the
- name of the lock file when initializing the lock and unlink the
- file when destroying the lock.
-
-Thu Dec 25 18:08:42 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/XtReactor.cpp: Removed g++ warning about initialization
- order, enabled read/write masks for
- ACE_Event_Handler::CONNECT_MASK; fixed typo that checks a write
- mask, but sets a read mask; removed unused variable "zero."
- Thanks to Eric Newton for these fixes.
-
-Thu Dec 25 17:17:16 1997 <nw1@JIG>
-
- * ace/config-win32.h: * ace/config-win32-common.h: Added macro
- definitions not to use C++-styled castings on Win32 by default
- so that we don't depend on the RTTI support.
-
-Thu Dec 25 16:18:03 1997 <irfan@PACHANGA>
-
- * ace/SString.h (ACE_CString and ACE_WString): Added c_str() to
- make it similar to STL's string class.
-
-Wed Dec 24 19:59:15 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/IOStream_Test.cpp (client): changed stream error message
- from "timeout" to "timed out", so that run_tests.check won't
- complain about it.
-
-Wed Dec 24 18:37:49 1997 <nw1@JIG>
-
- * ace/Synch.i (get_thread_id,get_nesting_level): Added ACE_INLINE.
-
-Wed Dec 24 18:31:31 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.10, released Wed Dec 24 18:31:31 1997.
-
-Wed Dec 24 14:27:33 1997 <nw1@JIG>
-
- * ace/Synch.{h,i,cpp} (ACE_Recursive_Thread_Mutex): Changed
- ACE_Recursive_Thread_Mutex to inherit from ACE_Thread_Mutex on
- Win32 because ACE_Thread_Mutex is already recusive on Win32.
-
-Wed Dec 24 08:14:32 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (instance): without threads, dynamically create
- the ACE_Log_Msg instance instead of using a static. Now, without
- threads, the ACE library has no statics that require destruction
- (at least on Solaris/g++ and Linux). And, all of the ACE tests
- Purify cleanly.
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): wrapped
- rethrow_w32_structural_exception () call with #ifdef ACE_WIN32.
- It was eliminated by the ACE_SEH_EXCEPT macro on non-WIN32
- platforms, but some compilers (cxx) warned about the
- unreachable code. This call is only supported on WIN32 anyways.
-
- * ace/OS.h: LynxOS has ACE_HAS_PTHREADS_1003_DOT_1C, but not
- ACE_HAS_PTHREAD_SIGMASK.
-
- * tests/Time_Value_Test.cpp: only test ACE_U_LongLong on Solaris,
- and other platforms with STHREADS.
-
-Wed Dec 24 04:25:49 1997 <nw1@DINGO>
-
- * ace/OS.i (sema_init): Added checking for initial semaphore
- counts and set the semaphore to non-signaled state if the
- initial count is zero. Changed the internal variable lock from
- a mutex to a thread_mutex (Critical Section.)
-
-Tue Dec 23 21:06:14 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/TLI_Stream.cpp (get_remote_addr): added ACE_UNUSED_ARG
- for the arg if ! ACE_HAS_SVR4_TLI.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp (main): declare
- local "i" outside the for loop because it is used after the loop.
-
-Tue Dec 23 19:34:10 1997 <nw1@JIG>
-
- * ace/OS.i: Added comments for semaphore simulation.
-
-Tue Dec 23 19:33:59 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.9, released Tue Dec 23 19:33:59 1997.
-
-Tue Dec 23 19:05:32 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/IOStream_Test.cpp (server): Changed sleep(30) to
- sleep(5). This seems more reasonable. Thanks to
- James Johnson for this suggestion.
-
-Tue Dec 23 16:43:14 1997 Steve Huston <shuston@riverace.com>
-
- * ace/README: Added descriptions for ACE_HAS_PTHREADS_1003_DOT_1C (this
- was in use previously but not documented), ACE_HAS_XTI (new; XTI is
- the POSIX superset of TLI - this implies ACE_HAS_TLI),
- ACE_NEW_THROWS_EXCEPTIONS (new; the compiler throws bad_alloc if
- a 'new' memory allocation fails).
-
- * ace/Hash_Map_Manager.cpp - Workaround for an aC++ bug in the HP-UX 11
- version of the compiler.
-
- * ace/INET_Addr.cpp: Note the failing host name in the error message
- from ACE_INET_Addr::ACE_INET_Addr(u_short, const char []).
-
- * ace/OS.h: Changes made while porting to HP-UX 11:
- - If ACE_HAS_PTHREADS_1003_DOT_1C (POSIX.1C), it implies (by
- way of POSIX.1C) that these also be set:
- ACE_HAS_PTHREAD_SIGMASK
- ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
- This is intended to make the process of configuring a new
- new platform easier.
- - If the new config macro ACE_NEW_THROWS_EXCEPTIONS is set, include
- the file <new>. The "proper" thing to do is to include
- <stdexcept>; however, at least on HP-UX 11, this will cause
- other things to get brought in, like <memory>, which will
- screw up auto_ptr. The day that all this standard library and
- STL stuff is finally straight, there will be dancing in the
- streets...
- - Support including the proper header file for XTI when it's
- supposed to use <xti.h> rather than <tiuser.h> (POSIX specifies
- XTI, a superset of TLI, to have <xti.h>)
- - If ACE_NEW_THROWS_EXCEPTIONS is set, the ACE_NEW and
- ACE_NEW_RETURN macros handle the exception.
-
- * ace/OS.i: Fixed check for failure in ACE_OS::sema_init.
-
- * ace/config-hpux11.h:
- * ace/config-hpux11-hpc++.h: New configs for HP-UX 11.00
-
- * include/makeinclude/platform_hpux11_aCC.GNU: Platform macros for
- HP-UX 11. It is set up for 32-bit build with comments for how to
- do a 64-bit build.
-
- * examples/Makefile: Added Naming to the directory list to build.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp: Changed test from
- ACE_HAS_SVR4_POLL to ACE_HAS_POLL.
-
- * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp:
- * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp: Fixed a char * being
- initialized by a string literal.
-
- * examples/Map_Manager/test_hash_map_manager.cpp: Added #include
- "ace/SString.h"
-
- * examples/Mem_Map/IO-tests/test_io.cpp: Fixed a char * being
- initialized by a string literal. Fixed diagnostic statements.
-
- * examples/Naming/test_multiple_contexts.cpp:
- * examples/Naming/test_non_existent.cpp:
- * examples/Naming/test_writers.cpp: Added Id line for CVS.
-
- * tests/Time_Value_Test.cpp: Added #include "test_config.h"
-
-Tue Dec 23 16:12:28 1997 <nw1@DINGO>
-
- * ace/OS.i: Must use ACE_OS::sema_wait instead of waiting on the
- singling event when using simulated semaphores.
-
-Tue Dec 23 08:32:00 1997 Chris Gill <cdgill@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_g++.GNU
- Removed trailing spaces from CC and CXX macros
- (the trailing space behind CXX was giving the TAO_IDL
- make fits)
-
-Tue Dec 23 07:26:28 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/TLI.cpp (get_local_addr): return -1, instead of 0, and
- set errno (with ACE_NOTSUP_RETURN) if ! ACE_HAS_SVR4_TLI.
- ({set,get}_option): added ACE_UNUSED_ARfor all
- arguments if ! ACE_HAS_SVR4_TLI.
-
- * ace/TLI_Stream.cpp (get_remote_addr): return -1, instead of 0,
- and set errno (with ACE_NOTSUP_RETURN) if ! ACE_HAS_SVR4_TLI.
- Declare and set local "name" only if ACE_HAS_SVR4_TLI.
-
- * ace/TLI_Acceptor.cpp (handle_asynch_event): initialize local
- "event" instead of defining it in the switch condition, to
- avoid compiler warning about not using it.
-
- * examples/IPC_SAP/TLI_SAP/db-server.cpp (lookup_name): removed
- unused local variable "len".
-
- * include/makeinclude/platform_osf1_4.0.GNU: removed some warning
- suppressions that are no longer needed.
-
- * ace/Log_Msg.cpp (~ACE_Log_Msg): clean up the message queue and
- allocated strings on non-threaded platforms.
-
- * tests/test_config.h (ACE_APPEND_LOG): added a close () of the
- ace_file_stream before opening it. Forked children inherit the
- opened file stream, and fail on their attempt to open it if it
- is not explicitly closed.
-
-Mon Dec 22 22:42:57 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS: Added a few minor changes to Nanbor's Semaphore
- emulation for WinCE.
-
-Mon Dec 22 11:39:19 1997 <irfan@PACHANGA>
-
- * OS.i (event_timedwait): Added code to handle timeouts. Thanks
- to Luca Priorelli <lucapri@mbox.vol.it> for reporting this.
-
-Mon Dec 22 07:03:13 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/IOStream_Test.cpp (spawn): changed printout from
- "Process_Mutex_Test-children" to "IOStream_Test-children".
-
-Mon Dec 22 03:08:22 1997 <nw1@DINGO>
-
- * ace/OS.i: Modified ACE_OS::cond_* for WinCE.
-
- * ace/config-win32-common.h: Prevent ACE from using NT specific
- API on Win CE.
-
-Sun Dec 21 16:19:40 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/OS.{h,i} (ACE_OS::sema_*): Added semaphore simulation code
- for WinCE. This code is currently protected
- ACE_USES_WINCE_SEMA_SIMULATION for debugging the code on NT.
- This flag should soon be obsolete and changed to ACE_HAS_WINCE.
-
- Moved ACE_event_t macro definition for Win32 before ACE_sema_t
- definition for NT. I need to use it in semaphore simulation.
-
- * ace/OS.h (class ACE_Cleanup_Info::operator ==, !=): Removed
- keyword struct. ACE_Cleanup_Info is a class now.
-
- * ace/Containers.h (class ACE_Double_Linked_List): Removed
- unused function declarations.
-
- * ace/Containers.h (class ACE_DNode): Removed ACE_DNode class.
-
-Sun Dec 21 18:47:09 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.8, released Sun Dec 21 18:47:09 1997.
-
-Sun Dec 21 12:39:38 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/OS.h (ACE_OS): Made the netdb_{acquire()/release()} methods
- public to help ACE users stuck on weird OS platforms. Thanks to
- Arturo Montes <mitosys@colomsat.net.co> for this suggestion.
-
- * ace: Changed all ACE class documentation so that it puts the
- =TITLE and =DESCRIPTION comments *after* the opening '{' rather
- than before. I did this since (1) it makes emacs C++ mode
- happier and (2) it makes Rational Rose reverse-engineering tool
- happier too. Thanks to Thomas Jordan
- <Thomas_Jordan@deluxedata.com> for suggesting this.
-
- * ace/LOCK_SOCK_Acceptor.h: The accept() method of class
- ACE_LOCK_SOCK_Acceptor is no longer a virtual. I don't know why
- this was made virtual in the first place, but it was a mistake.
-
-Sun Dec 21 15:24:42 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/OS.h (class ACE_Cleanup_Info::operator ==, !=): Removed
- keyword struct. ACE_Cleanup_Info is a class now.
-
- * ace/Containers.h (class ACE_Double_Linked_List): Removed
- unused function declarations.
-
- * ace/Containers.h (class ACE_DNode): Removed ACE_DNode class.
-
-Sat Dec 20 11:05:45 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * tests/test_config.h (ACE_INIT_LOG): Added (%P|%t) to an
- ACE_DEBUG statement to make it consistent.
-
- * tests/IOStream_Test.cpp (spawn): Revised the test so that it
- prints data correctly to the child processes.
-
- * examples/Shared_Malloc/test_multiple_mallocs.cpp (main): Moved
- the final print statement inside one of the if blocks so that it
- appears only every second invocation to remind people to rerun
- the program to remove the leaks. Thanks to Tom Arbuckle
- <arbuckle@uran.informatik.uni-bonn.de> for suggesting this.
-
- * ace/Malloc*: Changed ACE_MALLOC_STATS to ACE_HAS_MALLOC_STATS
- since this is more consistent with ACE conventions. Also,
- added ACE_HAS_MALLOC_STATS to the ace/README file. Thanks
- to Tom Arbuckle <arbuckle@uran.informatik.uni-bonn.de> for
- suggesting this.
-
- * ace/Memory_Pool.cpp (ACE_Shared_Memory_Pool): Fixed the logic
- for naming the backing store if the sscanf() call fails. Thanks
- to Tom Arbuckle <arbuckle@uran.informatik.uni-bonn.de> for
- suggesting this.
-
-Sat Dec 20 15:39:00 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * tests/IOStream_Test.cpp (spawn): Changed ACE_LACKS_EXEC to
- ACE_LACKS_FORK.
-
-Sat Dec 20 09:42:06 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: changed ACE_SEH_FINALLY to be if (1) on Unix, not
- just pSOS.
-
-Fri Dec 19 23:20:42 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * tests/IOStream_Test.cpp (client): Removed an extra read.
-
- * ace/OS.h: ACE_SEH_FINALLY should always be executed on UNIX
- platforms.
-
-Fri Dec 19 18:49:26 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/IOStream_T.i: Enhanced ACE_IOStream and its companions as
- follows:
-
- - ACE_Streambuf_T<> now distinguishes recv() timeout failure from
- a "real" stream failure
-
- - ACE_IOStream::eof() honors the streambuf's recv_timeout() value
- and returns FALSE if the eof() check fails on timeout.
-
- - IOStream_Test.cpp tests the streambuf timeout via the stream eof()
- and retrys if possible.
-
- Thanks to James Johnson <jcej@lads.com> for these fixes.
-
- * ace/Log_Record.i: Removed a no-op assignment to Time_Value
- in the encode() method. Thanks to Patrick J. McNerthney
- <pat@thememedia.com> for reporting this.
-
- * ace/Log_Record.i: The time stamp put into the ACE_Log_Record
- gets all messed up when the ACE_Log_Record is transmitted to the
- Server_Logging_Handler and the client is run on a little-endian
- architecture. This is because the ACE_Log_Record::encode method
- does:
-
- this->time_stamp_ = ACE_Time_Value
-
- htonl (this->time_stamp_.sec ()),
- htonl (this->time_stamp_.usec ()));
-
- When the ACE_Time_Value is passed in the resulting values from
- "htonl", it calls "normalize" which totally messes with the
- values passed. Thanks to Patrick J. McNerthney
- <pat@thememedia.com> for reporting this.
-
- * ace/OS.i: Fixed ctime_r() so that it doesn't crash if a NULL is
- returned from ctime_r(). Thanks to Patrick J. McNerthney
- <pat@thememedia.com> for reporting this.
-
-Fri Dec 19 09:44:28 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i}: fixed sigwait for DEC cxx, yet again for cxx
- V6.0-010. cxx #defines sigwait, and was getting confused
- with ACE_OS::sigwait. I replaced Thilo's #undef sigwait,
- and updated the ::sigwait declaration to what cxx uses internally.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp (server): cast arg
- to long before casting to ACE_HANDLE, and removed function-style
- cast.
-
-Fri Dec 19 00:39:40 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.7, released Fri Dec 19 00:39:40 1997.
-
-Thu Dec 18 19:47:47 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP: Stripped the CPP-in{server,client}.cpp
- tests down to their bare essence to only test the core features
- of sockets. Thanks to Bryan and Brian for suggesting this.
-
- * ace/Message_Queue.cpp (ACE_Message_Queue_Iterator): Changed
- queue to q to avoid clashes with STL. Thanks to Brian Mendel
- <bmendel@mdc.com> for reporting this.
-
- * ace/OS.h: The server logging daemon is implemented using TCP/IP
- under Win32. Therefore, we can simplify the creation of the
- ACE_DEFAULT_LOGGER_KEY. Thanks to Patrick J. McNerthney
- <pat@thememedia.com> for reporting this problem.
-
-Thu Dec 18 22:35:45 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: fixed typo in end-of-comment marker.
-
- * ace/OS.h: on Digital Unix 4.0, only declare sigwait () with cxx,
- not with g++. Thanks to Erik Margraf <erik@asgard.gud.siemens.co.at>
- for verifying this.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-in{client,server}.cpp: tweaked
- so that they build on VxWorks (spawn needs the (ACE_THR_FUNC)
- cast), and without threads.
-
- * tests/run_tests.vxworks: updated VxWorks test status.
-
- * ace/Basic_Types.h: look for ULONGLONG_MAX, which Irix 6.x uses.
- And, hard-code ACE_SIZEOF_LONG_DOUBLE to be 16 on __sgi, because
- its float.h doesn't always allow us to distinguish them.
- Thanks to Carlos for reporting these.
-
- * ace/High_Res_Timer.cpp,Profile_Timer.cpp: removed dependence
- on ACE_U_LongLong. Thanks to Carlos for reporting this.
-
- * tests/Time_Value_Test.cpp: fixed #ifdefs so that ACE_ULongLong
- isn't tested on Irix 6.x, etc. Thanks to Carlos for tripping
- over this.
-
- * ace/IOStream_T.i (eof): made the return type, int, explicit.
-
- * ace/config-linux-common.h: started adding support for threads on
- alpha (glibc).
-
-Thu Dec 18 21:17:46 1997 <nw1@DINGO>
-
- * ace/ace_dll.dsp: Added project files for Windows CE on SH3
- series CPU and x86 emulator.
-
- * ace/streams.h:
- * ace/OS.h: Added Windows CE flags.
-
- * ace/OS.cpp (invoke): Added a dummy return to shut gcc up.
-
- * ace/OS.cpp (invoke): Added a dummy return to shut gcc up.
-
- * ace/OS.{h,cpp} (rethrow_w32_structural_exception): Added this
- function, which prints out an error message to indicate the
- occurance of structural exception and rethrow it again.
- (ACE_Thread_Adapter::invoke): Rearranged try and except block
- for Win32 and added a finally block so when a structural
- exception occurs, a thread can clean it up properly, print out
- an error message, and rethrow the exception again.
-
-Thu Dec 18 15:40:50 1997 James C Hu <jxh@cs.wustl.edu>
-
- * ace/Filecache.{cpp,h}:
- - debugged writing a file.
- - can select if mapping is desired.
-
- * ace/OS.h: Added new #defines to facilitate forward declarations
- of ACE_Export classes.
-
-Thu Dec 18 00:15:02 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.6, released Thu Dec 18 00:15:02 1997.
-
-Wed Dec 17 19:42:38 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP: Enhanced the
- CPP-{inserver,inclient}.cpp tests so that they will spawn
- multiple client and server threads to perform the data transfer.
- Thanks to Brian Mendel and Bryan Doerr for suggesting this.
-
- * ace/OS.i: Fixed some very subtle bugs with cond_signal() and
- cond_broadcast(). Thanks to Patrick J. McNerthney
- <pat@thememedia.com> for reporting these and sending the fixes.
-
-Wed Dec 17 19:27:06 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ACE-INSTALL.html (HREF): Added an advise not to use VC5.0 SP3.
-
- * examples/OS/Process/Makefile: Removed inclusion of
- rules.lib.GNU. Thanks to Avi Nash <anash@RedBrick.Com> for
- noticing this.
-
-Tue Dec 16 22:09:42 1997 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Time_Value_Test.cpp: restored #include test_config.h,
- and changed #include ace/config.h to ace/inc_user_config.h.
-
- * examples/IPC_SAP/TLI_SAP/ftp-server.cpp,
- examples/Reactor/Misc/test_timer_queue.cpp,
- examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i,
- examples/Shared_Malloc/test_malloc.cpp,
- examples/Threads/thread_specific.cpp: replaced ACE_HAS_64BIT_LONGS
- preprocessor logic with a cast through a long to an int.
- A void * is the same size as a long on all currently supported
- ACE platforms. The int cast is also there, to avoid compiler
- warnings about narrowing. As a side effect, the function-style
- casts were removed.
-
- * ace/config-osf1*.h,README: added comment stating that
- ACE_HAS_64BIT_LONGS is deprecated.
-
- * ace/config-tandem.h: removed commented-out line that mentioned
- ACE_HAS_64BIT_LONGS.
-
- * ace/OS.{h,i} (sigwait): removed DEC cxx version dependence. The
- standard two-arg POSIX ::sigwait () seems to work just fine even
- on older releases of Digital Unix 4.0, with the sigwait declaration
- that we have in OS.h. Thanks to Erik Margraf
- <erik@asgard.gud.siemens.co.at> and Thilo
- <kielmann@informatik.uni-siegen.de> for helping to sort this out.
-
- I did change the ACE_OS::sigwait () return value determination
- in OS.i. It now depends on whether or not POSIX ::sigwait ()
- returns 0, to agree with the documenation for POSIX sigwait.
- Before, the code checked for a -1 return value from ::sigwait ().
-
-Tue Dec 16 21:00:49 1997 Chris Gill <cdgill@tango.cs.wustl.edu>
-
- Single Threaded port of ACE to pSOSim - first checkin
-
- * psosim/Makefile: (new) make file for new psosim directory -
- builds the configured simulator components
-
- * psosim/drv_conf.c: (new) board driver configuration code for
- simulator
-
- * ace/sys_conf.h: (new) configuration settings for simulator, ACE
-
- * ace/config-psosim-g++.h: (new) config file for psosim w/ g++
-
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i: Added psos and psosim specific code
-
- * ace/Mem_Map.cpp: Removed function style casts which were killing
- g++
-
- * ace/Message_Block.cpp: Removed function style casts which were
- killing g++
-
- * ace/Containers.cpp: Removed function style casts which were
- killing g++
-
- * ace/Map_Manager.cpp: Removed function style casts which were
- killing g++
-
- * tests/Handle_Set_Test.cpp: Added PSOS #defines, alongside those
- for VXWORKS
-
- * tests/SOCK_Connector_Test.cpp: Added PSOS #defines, alongside
- those for VXWORKS
-
- * tests/Priority_Reactor_Test.cpp: Added PSOS #defines, alongside
- those for VXWORKS
-
- * tests/MM_Shared_Memory_Test.cpp: Added PSOS #defines, alongside
- those for VXWORKS
-
- * tests/Conn_Test.cpp: Added PSOS #defines, alongside those for
- VXWORKS
-
- * tests/run_tests.psosim: (new) script to run only those tests
- that are relevant to pSOSim, in its current single threaded
- state
-
- * include/makeinclude/platform_psosim_g++.GNU (new) make macros
- for pSOSim using g++
-
-
-Tue Dec 16 17:23:49 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * tests/Time_Value_Test.cpp: Removed inclusion of "ace/config.h".
-
- * ace/inc_user_config.h: Added this file to prevent multiple
- inclusions of config.h file. Replace `#include "ace/config.h"'
- with `#include "ace/inc_user_config.h"'.
-
- * ace/Log_Msg.cpp:
- * ace/OS.h:
- * ace/Trace.cpp:
- * ace/streams.h:
- * ace/iosfwd.h: Replace "config.h" with "inc_user_config.h".
-
-Tue Dec 16 08:30:41 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/IPC_SAP/FILE_SAP/client.cpp (main): Fixed "lines" to
- "links." Thanks to Istvan Buki <ibuki@fedex.com> for reporting
- this.
-
-Tue Dec 16 14:15:48 1997 <irfan@TWOSTEP>
-
- * ace/OS.i (fstat): Fixed Dr. Schmidt's typo.
-
-Tue Dec 16 09:17:53 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Singleton.cpp (cleanup): set instance pointer to 0 after
- deleting it. Thanks to Luca Priorelli <lucapri@mbox.vol.it>
- for suggesting this.
-
- * ace/Basic_Types.{h,i}: (ACE_U_LongLong): use ACE_UIN32 instead
- of u_long for data members, to ensure that its sizeof is 8 bytes.
-
- * ace/OS.h: except on WIN32 and Solaris (ACE_HAS_HI_RES_TIMER),
- always typedef ACE_hrtime_t to ACE_UINT64. This changes removes
- the dependence on ACE_HAS_64BIT_LONGS.
-
- * ace/OS.cpp (ACE_TSS_Keys): replaced ACE_HAS_64BIT_LONGS
- dependence with ACE_SIZEOF_LONG == 8, and similarly for
- determination of 4-byte longs.
-
- * tests/TSS_Test.cpp (worker): replaced ACE_HAS_64BIT_LONGS
- preprocessor logic with a cast of the void * argument to a long.
- A void * is the same size as a long on all currently supported
- ACE platforms. The int cast is also there, to avoid compiler
- warnings about narrowing.
-
- * tests/Time_Value_Test.cpp: replaced use of ! ACE_HAS_64BIT_LONGS
- with ACE_SIZEOF_LONG == 4.
-
-Mon Dec 15 22:47:24 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.5, released Mon Dec 15 22:47:24 1997.
-
-Mon Dec 15 20:17:10 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.cpp: Fixed pread() and pwrite() so that they work
- correctly even if we don't support threads. Thanks to Irfan for
- finding this.
-
- * ace/OS.i: Tried to fix the fstat() wrapper on Win32 so that
- it does the right think for HANDLES. Thanks to Lori Anderson
- <lori@probita.com> for pointing this out.
-
-Mon Dec 15 15:36:07 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (exit,wait): Changed these two functions
- more for Chorus. Thanks again to Wei Chian
- <chiang@tele.nokia.fi> for providing the patch.
-
-Mon Dec 15 06:42:42 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (instance): on non-threaded platforms, only
- allocate a new ACE_Log_Msg_message_queue if the (static) pointer
- is 0. Thanks to Stephen Coy <stevec@magna.com.au> for
- reporting this.
-
- * ace/config-linux-common.h: updated header comments about
- autosensing the platform capabilities.
-
- * tests/Process_Strategy_Test.cpp: (parse_args): added DEBUG
- message if an unsupported concurreny strategy is provided with
- a -c option.
-
-Mon Dec 15 01:12:33 1997 <irfan@TWOSTEP>
-
- * ace/Synch_T.h (ACE_Atmoic_Op::value_i): Explicitly return
- <value_> (by reference). This gives the user full, unrestricted
- access to the underlying value. This method will usually be
- used in conjunction with explicit access to the lock. Use with
- care ;-)
-
-Sun Dec 14 21:37:08 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (cond_wait,cond_timedwait): Fixed a missing return to
- handle the case where we're using USYNC_PROCESS for the external
- mutexes.
-
- * ace/OS: Made the use of the waiters_lock_ mutex consistent in
- the ACE_cond_t implementation. This was broken since we used
- the external_mutex to serialize access to the waiters_ count
- inconsistently. Thanks to Patrick J. McNerthney
- <pat@thememedia.com> for reporting this very subtle bug.
-
-Sun Dec 14 12:29:26 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (exit,wait): Disabled thread join
- functionality in Chorus. Thanks to Wei Chiang
- <chiang@tele.nokia.fi> for providing the fix.
-
-Fri Dec 12 21:48:38 1997 Torbjorn Lindgren <tl@funcom.com>
-
- * ace/config-linux*.h: All Linux platform files except the
- Linux-KCC modified to use the upgraded common Linux
- configuration file. Linux-KCC looks reasonably easy to do,
- if no-one that actually have KCC takes care of it I can do
- this one later.
-
- * ace/config-linux-common.h: Modernized and updated the common
- Linux configuration file to handle more of the common
- configuration stuff. Also added the beginning of proper
- glibc and egcs support for Linux.
-
-Sat Dec 13 14:22:28 1997 <irfan@TWOSTEP>
-
- * ace/Basic_Types.h: Changed _M_IX386 to _M_IX86.
-
-Fri Dec 12 19:41:42 1997 <irfan@TWOSTEP>
-
- * ace, tests, version_tests: Updated Win32 makefiles (VC4.2 and
- VC5.0) to include new Basic_Types_Tests.
-
- * tests/Basic_Types_Test.cpp (main): Updated to use
- ACE_OS::getpagesize().
-
- * ace/ACE.cpp (round_to_pagesize): Updated to use
- ACE_OS::getpagesize().
-
- * ace/OS.i (getpagesize): Added this to ACE_OS.
-
-Fri Dec 12 07:49:01 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (inet_addr): changed type of "valid" from bool to u_int.
- This code is only seen on VxWorks.
-
- * ace/IOStream.h (ACE_Quoted_String::operator <): changed return
- type from bool to int.
-
- * ace/config-vxworks*.h,README: removed ACE_LACKS_SOCKET_BUFSIZ;
- added ACE_DEFAULT_MAX_SOCKET_BUFSIZ of 32768.
-
- * examples/IPC_SAP/SOCK_SAP/C-in{client,server}.cpp: added
- support to optionally set socket buffer sizes.
-
- * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp:
- removed unused constant SHMSZ.
-
- * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp: removed
- unused constant NO_OF_IO_HANDLERS.
-
- * ace/IOStream_T.h (ipfx,ipfx1): don't call setstate () on WIN32,
- because MS VC++ 5.0 doesn't declare it. Thanks to Irfan for
- reporting this. This "fix" is temporary, maybe, until we
- figure out the proper fix.
-
- * ace/OS.h: cast the 1 in ACE_MSB_MASK to an fd_mask, to support
- 64-bit fd_masks. I suspect that with this change, the
- ACE_HAS_BROKEN_BITSHIFT used in config-tandem.h is no longer
- necessary.
-
- Added Basic_Types:
- * ace/Basic_Types.*,Makefile: Basic_Types defines the
- following preprocessor macros:
-
- Sizes of built-in types:
- ACE_SIZEOF_CHAR
- ACE_SIZEOF_WCHAR
- ACE_SIZEOF_SHORT
- ACE_SIZEOF_INT
- ACE_SIZEOF_LONG
- ACE_SIZEOF_LONG_LONG
- ACE_SIZEOF_VOID_P
- ACE_SIZEOF_FLOAT
- ACE_SIZEOF_DOUBLE
- ACE_SIZEOF_LONG_DOUBLE
-
- Wrappers for built-in types of specific sizes:
- ACE_INT16
- ACE_UINT16
- ACE_INT32
- ACE_UINT32
- ACE_UINT64
- (Note: ACE_INT64 is not defined, because there is no ACE_LongLong for
- platforms that don't have a native 8-byte integer type.)
-
- Byte-order (endian-ness) determination:
- ACE_BYTE_ORDER, to either ACE_BIG_ENDIAN or ACE_LITTLE_ENDIAN
- ACE_BIG_ENDIAN or ACE_LITTLE_ENDIAN
-
- * ace/OS.*: moved ACE_U_LongLong to Basic_Types.*.
-
- * ace/OS.h: added #include <float.h>.
-
- * ace/config-linux-common.h,README: added ACE_HAS_BYTESEX_H.
-
- * tests/Basic_Types_Test.cpp,run_tests.{bat,sh,vxworks),Makefile:
- added new Basic_Types_Test.
-
- * tests/Time_Value_Test.cpp: removed ACE Version printout because
- it is now in Basic_Types_Test.
-
-Fri Dec 12 03:00:21 1997 James C Hu <jxh@cs.wustl.edu>
-
- * ace/config-sunos5.5-egcs-1.0.h: Fundamemntally identical to g++
- version, except added ACE_HAS_STDCPP_STL_INCLUDES, which is
- taken to mean that the Standard C++ STL include files are
- supported.
-
- * IOStream.h: Added #if's to handle the case where
- ACE_HAS_STRING_CLASS, but if ACE_HAS_STDCPP_STL_INCLUDES, then
- the string class is found in <string>. Otherwise, it looks for
- it in <String.h>.
-
- * ace/OS.i: Re-implemented strcasecmp methods. Thought bad
- implementations were related to a JAWS bug, but the hand
- implementations are not used on Solaris.
-
-Thu Dec 11 23:20:57 1997 <irfan@TWOSTEP>
-
- * ace/Strategies_T.cpp (activate_svc_handler): Changed the
- parameter that was been passed into the open routine of
- Svc_Handler. The <arg> that was passed to us is passed through
- to open, rather than passing <this>. Thanks to Mats Nilsson
- <mats.nilsson@xware.se> for pointing this out.
-
- * ace/Connector.cpp (activate_svc_handler): Made sure that we pass
- the connector pointer as the void* parameter to the svc_handler.
-
-Thu Dec 11 23:35:04 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i. The code was always calling dlsum for the _init()
- hook, even if dlopen() failed. In addition to fixing this, I
- also removed a potential handle leak. Thanks to Patrick
- J. McNerthney <pat@thememedia.com> for reporting this.
-
-Thu Dec 11 13:13:17 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/LSOCK.cpp (recv_handle): fixed to remove compile errors and
- warnings on platforms with both ACE_HAS_4_4BSD_SENDMSG_RECVMSG
- and ACE_HAS_THREADS. The delta from version 4.3 of this file
- is very small. Thanks to Kirill Rybaltchenko
- <Kirill.Rybaltchenko@cern.ch> for reporting this problem and
- verifying the fix on LynxOS, the only affected platform.
-
- * ace/config-linux-kcc.h,include/makeinclude/platform_linux_kcc.GNU:
- added linuxthreads support with the linux KAI C++ config.
- Thanks to Ben Eng <ben@jetpen.com> for the patches.
-
- * ace/IOStream_T.h: iostream fx emulation now skips whitespaces and
- flushes when tied. Thanks to Ben Eng <ben@jetpen.com> for the patch.
-
- * tests/IOStream_Test.cpp (server): check for double-quote instead
- of newline as end-of-string character. Thanks to Ben Eng
- <ben@jetpen.com> for the patch.
-
- * tests/SV_Shared_Memory_Test.cpp: renamed "allocator" to
- "myallocator" to avoid conflict with STL. Thanks to Ben Eng
- <ben@jetpen.com> for the patch.
-
- * include/makeinclude/platform_linux_lxpthread.GNU: protect
- PRELIB definition with ifndef PRELIB, to allow overriding
- without modifying the platform_macros.GNU file. Thanks to
- James Johnson <jcej@lads.com> for this suggestion.
-
- * ace/IOStream_T.cpp: restored ACE_HAS_IOSTREAMH_INCLUSION
- protection around the old g++ munch hack. There's no need
- to trouble all (g++) platforms with its (4 byte) space penalty.
-
- * examples/IOStream/server/iostream_server.cpp (handle_input):
- removed unused local "addr".
-
- * examples/Reactor/Dgram/{CODgram,Dgram}.cpp (run_test): added
- return 0 at end so that the function always returns a value.
-
- * include/makeinclude/platform_lynxos.GNU: added comment indicator
- to comment describing POSTLINK.
-
- * ACE-INSTALL.html: updated DEC CXX 6.0 test status: all tests pass
- with the version of DIGITAL UNIX 4.0 and cxx 6.0 that we use.
-
-Wed Dec 10 23:57:00 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ACE version 4.4.4, released Wed Dec 10 23:57:00 1997.
-
-Wed Dec 10 16:24:09 1997 <irfan@TWOSTEP>
-
- * ace/Auto_Ptr.i: Apparently, the standard states that in order to
- access members of a templated superclass from a templated
- subclass, then the member name must be fully qualified.
- Therefore, changed access to p_ to ACE_Auto_Basic_Ptr<X>::p_.
- Thanks to Stephen Coy <stevec@magna.com.au> for reporting this.
-
-Tue Dec 09 13:05:00 1997 <nw1@CHA-CHA>
-
- * ace/Containers.cpp (copy_all_nodes): Added a temporary
- ACE_Node<T> pointer to get around the macro side effects.
-
-Sun Dec 7 10:20:46 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp (parse_args): Added an appropriate macro
- to switch from char * to UNICODE. Thanks to Timothy A. Brown
- <tabrown@montana.com> for reporting this.
-
- * ace/config-linux-*.h: Added ACE_HAS_GETRUSAGE_PROTO to all
- the linux config files. Hopefully, this will help ACE to work
- better with glibc. Thanks to Ernie Makris <emakris@ziplink.net>
- and Torbjorn Lindgren <tl@funcom.no> for their help.
-
-Sat Dec 06 13:30:11 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.3, released Sat Dec 06 13:30:11 1997.
-
-Sat Dec 6 12:02:09 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/IOStream: Revised both the client and server to
- demonstrate the ACE_IOStream functionality correctly. Also
- added a README file explaining how to run the examples. Thanks
- to James Johnson and Dustin Laurence
- <laurence@alice.wonderland.caltech.edu> for suggesting this.
-
- * ace/IOStream_T: Added a new method eof() to the ACE_IOStream_T<>
- class. This returns 1 if we've reached the end of the socket
- stream, else 0.
-
-Fri Dec 5 16:58:29 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Addr.h: Added a const ACE_Addr & instead of const ACE_Addr.
- This will avoid an extra copy. Thanks to Irfan for noticing
- this.
-
- * examples/Reactor/Dgram/CODgram.cpp: Also updated the CODgram
- test to be just like the Dgram test.
-
- * examples/Reactor/Dgram/Dgram.cpp (main): Fixed a bug where it
- was sending a huge buffer instead of just the string size.
- Also, exit once we've finished the send. Finally, revised the
- test so that it is easier to understand and so that it exits
- properly. Thanks to Michael Hoffman
- <Hoffman_Michael@mac-mailserver.atc.ll.mit.edu> for reporting
- this.
-
-Fri Dec 05 13:20:09 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: added OFLAGS.
- Thanks to Brian Mendel for suggesting these.
-
- * tests/IOStream_Test.cpp: updated to work with the standard C++
- library version of iostreams. That primarily involved not
- using operator>>(char& c) and operator>>(char* c) for C strings.
- Thanks to Ben Eng <ben@jetpen.com> for the patch.
-
- * ace/OS.{h,i},config-osf1-4.0.h: fixed sigwait on DEC CXX 6.0/
- recent DEC UNIX 4.0. The fix keys off the compiler version,
- though it probably should depend on the OS. It adds a
- sigwait declaration, which is a current signal.h deficiency.
- With this change, ACE builds and tests cleanly on DEC UNIX.
-
- * ace/config-vxworks5.x-g++.h: restored comment that explains
- ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
-
- * netsvcs/lib/Makefile: the first line of the Local Target
- (Server_Logging_Handler.*) override mysteriously disappeared, again.
-
-Fri Dec 5 12:15:49 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/Select_Reactor.cpp: Made error messages on open failure more
- verbose. Having these in place straightaway would have helped
- track down some problems at Boeing much more effectively.
-
-Fri Dec 5 11:15:17 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/Log_Msg.h (callers.): Added documentation for %I and %D
- flags. Thanks to John Morey <jmorey@tbi.com> for reosting
- this.
-
- * ace/Dynamic.h:
- * ace/CORBA_Ref.h:
- * ace/Token_Invariants.h:
- * ace/Token_Collection.h:
- * ace/Local_Tokens.h:
- * ace/Remote_Name_Space.h:
- * ace/Registry_Name_Space.h:
- * ace/Strategies.h:
- * ace/Name_Space.h:
- * ace/Name_Request_Reply.h:
- * ace/Naming_Context.h:
- * ace/Name_Proxy.h:
- * ace/Local_Name_Space.h:
- * ace/Local_Name_Space_T.h: Corrected erroneous comments. These
- files all contain incorrect filename info in the preambles which
- make erroneous auto-generated man pages.
-
-Fri Dec 05 00:00:53 1997 <irfan@TWOSTEP>
-
- * ace/OS.h: If the user wants minimum IOStream inclusion, i.e.,
- they have defined ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION, we will
- just include the forward declarations, i.e., ace/iosfwd.h. Else
- they will get all the stream header files, i.e., ace/streams.h.
- The positive thing about this change is that if your code was
- using stream classes and you were depending on OS.h to provide
- you the stream header files, you will not have to change your
- code, unless you have defined
- ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. Thanks to Dr. Schmidt for
- suggesting this and thanks to David Levine for suggesting it to
- Dr. Schmidt ;-).
-
- * ace/config-vxworks5.x-g++.h: Restored
- ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION.
-
- * ace/Asynch_IO.cpp (open): Fixed typo.
-
-Thu Dec 04 21:20:47 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.2, released Thu Dec 04 21:20:47 1997.
-
-Thu Dec 4 19:45:04 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Object_Manager.cpp (ACE_Object_Manager_Destroyer): Fixed a
- bug in the
- ACE_Object_Manager_Destroyer::~ACE_Object_Manager_Destroyer
- thread comparison routine. Thanks to Steven Coy for this. Also
- renamed _saved_main_thread_id to saved_main_thread_id_, which is
- proper ACE style.
-
- * Updated the ACE-INSTALL.html file to explain why you don't need
- to build everything all the time. Thanks to Dustin Laurence
- <laurence@alice.wonderland.caltech.edu> for suggesting this.
-
- * tests/SOCK_Connector_Test.cpp (fail_no_listener_nonblocking):
- Added a check for ENETUNREACH. Thanks to Dustin Laurence
- <laurence@alice.wonderland.caltech.edu> for reporting this.
-
- * ace/Asynch_Acceptor.cpp (open): Changed the local variable named
- sap_any to sa to avoid conflicts with the new sap_any macro.
-
- * ace/Asynch_IO: Made the ACE_Service_Hanlder::open() method
- non-virtual to work around bugs with Borland C++. Thanks to
- Valik Solorzano Barboza <valik@geodan.nl> for suggesting this.
-
- * ace/ACE.cpp (COMPUTE): Put parens around elements the COMPUTE
- macros so that it will work on Borland C++. Thanks to Valik
- Solorzano Barboza <valik@geodan.nl> for suggesting this.
-
- * ace/config-win32-common.h: Added ACE_HAS_BROKEN_SAP_ANY to deal
- with Borland C++ bugs. Thanks to Valik Solorzano Barboza
- <valik@geodan.nl> for suggesting this.
-
- * ace/Addr: Added a workaround for the Borland C++ problems. This
- introduces a new global macro called sap_any. However, this is
- only used for Borland, so it should be ok. Thanks to Valik
- Solorzano Barboza <valik@geodan.nl> for suggesting this.
-
- * ace/LSOCK.cpp (recv_handle): Make the code smarter if we've got
- both STREAMS and 4_4BSD_SENDMSG_RECVMSG.
-
- * Reran "make depend" over all of ACE.
-
- * netsvcs/clients/Logger/indirect_logging.cpp (main): Changed
- LOGGING to LOGGER. Thanks to Irfan for noticing this.
-
- * netsvcs/lib/Client_Logging_Handler: Changed "rendezvous" to
- "logger."
-
- * netsvcs/clients/Logger/indirect_logging.cpp,
- netsvcs/lib/Client_Logging_Handler: Changed DEFAULT_RENDEZVOUS
- to DEFAULT_LOGGER_KEY. Thanks to Steven Coy for pointing out
- this inconsistency.
-
- * ace/OS.h: Renamed ACE_LOGGER_KEY to ACE_DEFAULT_LOGGER_KEY to
- make it consistent with other ACE_DEFAULT_* names.
-
- * ace/OS.h: Changed the definition for ACE_LOGGER_KEY so that it
- defaults to "localhost:10015" on platforms that don't support
- ACE STREAM Pipes. Thanks to Steven Coy for suggesting this.
-
- * ace/Service_Config.cpp: Added the -k option to parse_args() so
- that the user can set the logger key. Thanks to Steven Coy for
- suggesting this.
-
- * ace/Service_Config: Added the logger_key as a parameter to the
- other open() method, as well. Thanks to Steve Coy for being
- picky ;-).
-
- * netsvcs/clients/Logger/direct_logging.cpp (main): Modified the
- code to use the new framing scheme.
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp
- (handle_logging_record): Updated the code to take advantage of
- our new framing scheme.
-
- * netsvcs/lib/Client_Logging_Handler.cpp (send): We can be smarter
- now about sending the ACE_Log_Record across the network since
- the length field is now fixed and it's guaranteed to be in the
- first 4 bytes. Thanks to Steve Coy for suggesting this.
-
- * ace/Log_Record.h (ACE_Log_Record): Replaced the horribly
- non-portable "long length_" field with the "ACE_INT32 length_"
- field, which is nice because it is portable across platforms
- with different long-word sizes.
-
-Thu Dec 04 09:57:40 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.GNU: allow enabling of
- WARNING_FLAGS by setting CXX_VER to POST_5X. Thanks to
- James Johnson for this suggestion.
-
- * ace/Svc_Conf_l.cpp: rebuilt with Doug's flex.
-
-Thu Dec 04 03:46:04 1997 <irfan@TWOSTEP>
-
- * ace/Makefile (Svc_Conf_l.cpp): Changed the sed macros to produce
- OS.h include instead of stdcpp.h.
-
- * ace/Svc_Conf_l.cpp: Updated after code was regenerated using the
- new sed changes in the Makefiles. Currently there are two
- inclusions of OS.h in this file and an extra stdlib.h. Maybe
- someone more experienced in sed can take these out by updating
- the Makefile.
-
- * ace/IOStream_T.h (stdcpp.h): Removed inclusion of stdcpp.h. It
- is redundant because IOStream.h includes it.
-
- * ace/streams.h: New file. This files tries to reduce the
- differences between the old and new stream libraries for the
- user. This is done by automatically selecting the correct
- includes depending on the ACE_HAS_STANDARD_CPP_LIBRARY variable.
- This file also helps out by making commonly used classes (e.g.,
- ios, ostream, iostream, cin, cout, etc) available in the global
- name space when used with the Standard C++ Library. Use this
- file where you would usually include <iostream.h> or <iostream>.
-
- * ace/iosfwd.h: New file. This files deals with forward
- declaration for the stream classes. Remember that since the new
- Standard C++ Library uses templates for the implementation of
- the streams, simple forward declaration will not work. Classes
- forward declared by this class include:
-
- ios
- streambuf
- istream
- ostream
- iostream
- filebuf
- ifstream
- ofstream
- fstream
-
- Use this file where you would usually forward declare the
- classes listed above.
-
- * ace/stdcpp.h: Removed this file from the repository. This file
- was trying to do too much. All the inclusion of the C Library
- headers were unnecessary. This is because the new C++ standard
- preserves the old C library include files. The functions from
- those files will still be in the global namescape. The new
- header files (e.g., cstdio), provides the same prototypes as the
- old files (e.g., stdio.h), except that all prototypes are in the
- std namespace. Since we want the old behavior and global
- prototypes (for backward compatibility), inclusion of the new
- header files was incorrect.
-
- stdcpp.h was included by OS.h. This caused almost all files to
- force the inclusion of the stream header files. This was
- changed so that OS.h only includes the ace/iosfwd.h file. This
- means that if your code was using stream classes and you were
- depending on OS.h to provide you the stream header files, you
- will have to change your code to either include iostream.h or
- iostream, or more portably ace/streams.h.
-
- * ace/OS.h: Removed stdcpp.h. Moved the standard C library
- includes from stdcpp.h to OS.h. Also added ace/iosfwd.h to give
- forward declaration for the stream classes.
-
- * ACE: Added explicit inclusion of ace/streams.h to the following
- files:
-
- ace/IOStream.cpp
- ace/Log_Record.cpp
- ace/OS.cpp
- ace/SString.cpp
- ace/Log_Msg.cpp
- tests/test_config.h
- examples/Log_Msg/test_log_msg.cpp
- examples/Reactor/Misc/test_time_value.cpp
- examples/Threads/task_three.cpp
- netsvcs/lib/Logging_Strategy.cpp
- examples/Logger/Acceptor-server/server_loggerd.cpp
- examples/ASX/UPIPE_Event_Server/event_server.cpp
- examples/Reactor/Ntalker/ntalker.cpp
- examples/Shared_Malloc/test_persistence.cpp
- examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp
- examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp
- examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp
- examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp
-
- * Updated makefile dependencies throughout ACE to reflect the
- removal of stdcpp.h and the addition of streams.h.
-
- * examples/Threads/barrier2.cpp: Removed inclusion of stdcpp.h.
-
- * ace/IOStream_T.cpp: Reorganized include files so that inclusion
- of config.h is not necessary.
-
- * ace/IOStream.cpp: Changed inclusion of config.h to OS.h.
-
- * ace: Removed config.h from the following files. It was
- redundant.
-
- Timer_Hash.cpp
- Timer_Heap.cpp
- Timer_List.cpp
- Timer_Queue.cpp
- Timer_Wheel.cpp
-
- * ace: Added code to protect against multiple inclusions of
- config.h. Following files were effected:
-
- Trace.cpp
- Log_Msg.cpp
-
- * ace/config-win32-common.h: Removed redundant definitions of
- ACE_HAS_TYPENAME_KEYWORD and ACE_HAS_SIG_ATOMIC_T. Thanks to
- Matthias Kerkhoff <make@cs.tu-berlin.de> for pointing this out.
-
-Wed Dec 3 21:37:47 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Added the new ACE-inheritance.ps and pdf files, which show the
- class structure of ACE. Thanks to John Lindal
- <jafl@cheshire-cat.caltech.edu> for generating this.
-
- * ace/Service_Config: Removed the static logger_key_ member and
- replaced it with a (defaulted) parameter to open(). This is
- more flexible. Thanks to Steve Coy for the suggestion.
-
- * ace/Service_Config.h: Addressed all the "@@" questions.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (main): Fixed a
- subtle bug in the "quit" logic. Thanks to Michael Hoffman
- <Hoffman_Michael@mac-mailserver.atc.ll.mit.edu> for reporting
- this.
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record),
- netsvcs/lib/Client_Logging_Handler.cpp (send):
- Changed the code so that we now always send ACE_UINT32 bytes
- worth of data for the length field. This ensures we're portable
- across platforms. Thanks to Steven Coy for noticing this.
-
-Wed Dec 03 18:02:09 1997 <irfan@TWOSTEP>
-
- * performance-tests/Synch-Benchmarks/Benchmark.cpp: Added template
- instantiations for Atomic_Op.
-
-Wed Dec 3 10:29:58 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/ACE.cpp:
- Use ACE_UINT32 to compute the 32-bit CRC, on Alphas (and
- probably other 64 bit machines) u_long seems to be longer than
- that.
-
-Wed Dec 03 07:39:15 1997 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux.GNU:
- * include/makeinclude/platform_hpux_gcc.GNU: Moved some compile options
- from the DCFLAGS to the CCFLAGS to compile correctly with or without
- debugging.
-
-Wed Dec 03 06:26:14 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Future.cpp,
- tests/{Future_Test,Reactors_Test,Reader_Writer_Test.cpp,
- examples/Threads/manual_event.cpp:
- moved ACE_Atomic_Op<ACE_Thread_Mutex, int> instantiation from
- ace/Future.cpp to where it is used.
-
- * ace/OS.cpp (inet_aton): return 0 if addr argument is 0. Thanks
- to Wei for reporting this.
-
- * ace/config-linux.common.h: set an ACE_DEFAULT_BASE_ADDR, on Alpha
- for now. This might be necessary on Intel as well.
-
- * ace/OS.{h,i}, config-osf1-4.0.h: fixed use of ::sigwait with
- DIGITAL_UNIX's cxx 6.0, which now uses ACE_HAS_ONEARG_SIGWAIT.
- Also, added an ACE_DEFAULT_BASE_ADDR to the config file.
-
- * tests/{Priority_Reactor_Test,Reactor_Performance_Test}.cpp:
- instantiate ACE_Map_*, for use by ACE_Connector, with ACE_HANDLE
- instead of int. That's the way it's declared in ace/Connector.h.
-
-Wed Dec 03 00:17:50 1997 <irfan@TWOSTEP>
-
- * tests/test_config.h: Removed code for
- ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION, as this option is no longer
- necessary.
-
- * ace/stdcpp.h: Removed code for
- ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION, as this option is no longer
- necessary.
-
- * ace/config-vxworks5.x-g++.h: Removed
- ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION. This flag is no longer
- required.
-
- * ace/IOStream_T.cpp: Removed ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION
- from #if defined.
-
- * ACE: Removed the explicit iostream.h inclusion from these:
-
- examples/ASX/UPIPE_Event_Server/event_server.cpp
- examples/Log_Msg/test_log_msg.cpp
- examples/Logger/Acceptor-server/server_loggerd.cpp
- examples/Reactor/Misc/test_time_value.cpp
- examples/Shared_Malloc/test_persistence.cpp
- examples/Threads/task_three.cpp
- netsvcs/lib/Logging_Strategy.cpp
-
- * ace/IOStream.h: Darrell missed removing this explicit iostream.h
- inclusion.
-
- * ace/Future.cpp: Removed template instantiation of Atomic_Op
- since Atomic_Op is not used by Future.
-
-Fri Dec 02 11:46:17 1997 <nw1@CHA-CHA>
-
- * ace/Proactor.cpp (ACE_Proactor): Reenabled Proactor's thread
- manager to wait on its Timer_Handler thread.
-
- * ace/Thread_Manager.cpp (close_singleton): Removed Win32 specific
- codes. This is no longer necessary with above changes.
- (wait): Close down thread handles when removing detached
- threads. Avoid performing wait when the program is shutting
- down.
- (remove_thr_all): Extracted out this protected member function.
- (close): Changed to use the new remove_thr_all function.
-
- * ace/Proactor.cpp (handle_events): Changed the magic number 258
- to WAIT_TIMEOUT. Thanks to Mark Rabotnikov
- <mark@netmanage.co.il> for pointing this out.
-
-Tue Dec 02 14:13:15 1997 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_aCC.GNU: Moved some compile options
- from the DCFLAGS to the CCFLAGS to compile correctly with or without
- debugging. Thanks to Istvan Buki <ibuki@fedex.com> for reporting
- the problem.
-
-Tue Dec 02 06:16:39 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Object_Manager.cpp (~ACE_Object_Manager_Destroyer): don't
- delete the ACE_Object_Manager if not destroyed by the main
- thread. That can cause problems, at least on WIN32. And
- it should only happen under exceptional conditions, at least
- on WIN32. Thanks to Ari Erev <ari_erev@icomverse.com> and
- John Neystadt <john_neystadt@icomverse.com> for suggesting this.
-
- * ace/IOStream.cpp (underflow,overflow): moved get_mode_ and
- put_mode_ accesses so that it now works on KAI C++.
- Thanks to Ben Eng <ben@jetpen.com> for the patch.
-
- * ace/config-linux-kcc.h: commented out ACE_TEMPLATES_REQUIRE_SOURCE.
- Thanks to Ben Eng <ben@jetpen.com> for this update.
-
- * ace/Profile_Timer.cpp (elapsed_time): changed
- ACE_ONE_SECOND_IN_USECS to ACE_ONE_SECOND_IN_NSECS. Thanks
- to Wei for noticing this.
-
- * ace/OS.cpp (inet_aton): removed CHORUS specialization.
- Thanks to Wei for reporting this.
-
- * include/makeinclude/platform_chorus.GNU: added CHORUS = 1,
- for use by individual Makefiles.
-
- * examples/Shared_Malloc/test_persistence.cpp: removed
- ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex>
- instantiation because it's in ace/System_Time.cpp.
-
- * ace/config-lynxos.h: removed ACE_HAS_UALARM, because LynxOS
- apparently doesn't.
-
- * include/makeinclude/platform_lynxos.GNU: added -Winline and
- removed -fno-strict-prototypes.
-
- * tests/Message_Queue_Test.cpp (main): increased queue size from
- default of 16Kb to 32Kb, so that it runs on machines with 8Kb
- pagesizes. And, added a check to see if the queue is full
- before enqueuing.
-
- * ace/OS.i, config-osf1-4.0.h: DECXX 6009006 has SIGWAIT.
-
- * ACE-INSTALL.html: updated DEC_UNIX test status. Message_Queue_Test
- and all of the Mutex_Tests now pass. Conn_Test no longer does.
-
-Tue Dec 02 00:18:04 1997 <irfan@TWOSTEP>
-
- * ace/Memory_Pool.cpp (handle_signal): If guess_on_fault_ is true,
- then we cannot call remap(0). This will always put the address
- out of range. Therefore, we will shoot in the dark (user has
- instructed us to do so as guess_on_fault_ is true) and try to
- remap the file. If the user does not want this behavior, the
- guess_on_fault_ flag should be turned off. Thanks to Jon
- Prettyman <jonp@als.ameritech.com> for pointing this out.
-
-Mon Dec 01 16:13:06 1997 <irfan@TWOSTEP>
-
- * ace/config-win32-common.h: Added back ACE_LACKS_ACE_IOSTREAM to
- the config file. The test is not compiling.
-
- * tests/run_tests.bat: Look for "Win32 structured exception" in
- the log files.
-
-Mon Dec 1 14:01:02 1997 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Log_Msg.cpp, ace/Log_Msg.h, ace/Log_Record.cpp,
- ace/Log_Record.h ace/OS.h, ace/stdcpp.h, tests/test_config.h:
-
- Changed use of ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION in stdcpp.h
- to include iostream when the above is #defined. Made
- changes to other files to accommodate this change.
-
-Mon Dec 01 12:15:00 1997 <irfan@TWOSTEP>
-
- * ace/config-win32-common.h (ACE_LACKS_ACE_IOSTREAM): James CE
- Johnson claims that ACE_LACKS_ACE_IOSTREAM is no longer not
- necessary when using the ACE_HAS_STANDARD_CPP_LIBRARY.
-
- * ace/OS.h: Changed the definition of ACE_UNIMPLEMENTED_FUNC so
- that it just evaporates on platform that have
- ACE_REQUIRES_FUNC_DEFINITIONS defined.
-
- ACE_UNIMPLEMENTED_FUNC is only required for template classes and
- not for a normal class. When the template is explicitly
- instantiated, it causes some compilers to look for the
- definition of all the declared methods.
-
- On platforms that have this behavior, we have decided to take
- out the declaration of this function. This is necessary since
- an empty definition of {} usually does not work with some
- constructors. And by providing a explicit definition of this
- function, will cause all platforms to suffer.
-
- Therefore, platforms with ACE_REQUIRES_FUNC_DEFINITIONS defined
- must be specially careful when using this.
-
-Mon Dec 01 07:56:02 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: added
- -xildoff to LDFLAGS, to avoid occasional problems with
- the incremental linker. Thanks to Hans Rohnert
- <Hans.Rohnert@mchp.siemens.de> for this suggestion.
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU,
- etc/ace_ld, bin/ace_ld, ACE-INSTALL.html:
- moved ace_ld from etc/ to bin/.
-
- * Makefile: added etc/ to CLONE and RELEASE_FILES.
-
- * include/makeinclude/platform_lynxos.GNU: added -Wall to CFLAGS.
-
- * ace/ACE.cpp (set_handle_limit): only call setrlimit if
- RLIMIT_NOFILE is #defined.
-
- * ace/OS.h: removed ACE_HAS_STDARG_THR_DEST dependence for
- ACE_THR_DEST definition.
-
- * ace/OS.cpp (thr_keycreate): with ACE_HAS_DCETHREADS only, cast
- dest argument to ::pthread_keycreate if ACE_HAS_STDARG_THR_DEST.
-
- * ace/OS.i (get{host,proto,serv}by{addr,name}_r): with
- ACE_HAS_NONCONST_GETBY only, added some ACE_UNUSED_ARGS.
-
- * examples/Shared_Malloc/Malloc.cpp: removed
- ACE_Guard<ACE_Process_Mutex> instantiation because it's in
- ace/Synch.cpp.
-
- * ace/config-lynxos.h: added ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS.
- Without it, the Thread_Manager went recursively ballistic.
-
- * performance-tests/Misc/preempt.cpp (main): fixed printout if
- ACE_OS::sched_params () call failed.
-
-Sun Nov 30 22:44:50 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.4.1, released Sun Nov 30 22:44:50 1997.
-
-Sun Nov 30 20:32:50 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_3.2.GNU: removed -ptr option
- from CCFLAGS, so the default template repository will be used.
- Thanks to Dani Flexer <danif@ivory-sw.com> for reporting this.
-
- * ace/Svc_Conf_l.cpp,Makefile:
- 1) #include ace/stdcpp.h instead of stdio.h so that anything
- that needs to be #included with/before stdio.h can be.
- 2) Changed ECHO to ACE_SVC_CONF_ECHO to avoid compiler warning if
- ECHO was #defined to be a constant.
-
- * ace/Makefile: set ACELIB to null so that it can be used to build
- shared libs, including libACE.$(SOEXT).
-
- * include/makeinclude/platform_osf1_4.0.GNU: added $(ACELIB) to
- SOFLAGS to avoid shared lib build warnings about undefined ACE
- symbols.
-
- * ace/Thread_Manager.h: declare ACE_THR_MEMBER_FUNC outside of
- ACE_Thread_Manager class with __GNUG__ instead of with
- VXWORKS || IRIX5. The problem is with older versions of g++,
- not with the OS.
-
-Sun Nov 30 14:13:09 1997 Douglas C. Schmidt <schmidt@merengue.cs.wustl.edu>
-
- * netsvcs/servers/README: Clarified a bit more about how to
- configure the client and server logging processes. Thanks to
- Neil Cohen for motivating this.
-
-Sun Nov 30 17:36:35 1997 Sergio Flores <sergio@tango.cs.wustl.edu>
-
- * ace/Synch.cpp (ACE_File_Lock): Fixed order of parameters in the
- call to this->open() and too many arguments in call to
- ACE_File_Lock::open().
-
-Sun Nov 30 16:31:41 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
-
- * ace/Synch.h:
- * ace/Synch.cpp:
- ACE_File_Lock should create the file if it does not exist, to do
- so the constructor takes the <flags> parameter to ACE_OS::open()
- and defaults to O_CREAT|O_RDWR.
-
-Sat Nov 29 21:31:07 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace/Proactor.cpp (~ACE_Proactor_Timer_Handler): Removed explicit
- call to thr_mgr_.close().
- (ACE_Proactor): Be sure to ask Thread_Manager not to wait for
- the timer_handler_ thread.
-
- * ace/Thread_Manager.cpp (close_singleton): Only reset
- exit_on_wait status if we are responsible for deleting the
- global thread manager.
-
-Sat Nov 29 15:15:04 1997 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * ace/IPC_SAP.cpp:
- Removed warning for functions not returning a value on SGI, it
- seems that the flow changed and the last return was reached
- sometimes, hence the ACE_NOTREACHED macro is no longer needed.
-
-Sat Nov 29 13:12:47 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch: Conditionally inlined all the ACE_Process_Mutex
- wrapper calls and moved them into the Synch.i file. I'm not
- sure why there weren't here before.
-
- * ace/Synch: Reimplemented ACE_RW_Process_Mutex to use
- ACE_File_Lock, which provides the proper readers/writer
- semantics that had been lacking in the previous implementation.
-
-Fri Nov 28 04:25:23 1997 Nanbor Wang <nw1@merengue.cs.wustl.edu>
-
- * ace: Removed redundant trailing commas from
- ACE_UNIMPLEMENTED_FUNC.
-
- * ace/Thread_Manager.{h,i,cpp}: Delete declaration of
- remove_thr_self. It is no longer in use.
- (wait_on_exit): Added this function to let users specify whether
- they want their Thread_Manager wait for spawned threads on exit
- or not.
- (wait): On Win32, handles should be closed if we decide to let
- the thread go wild.
- (remove_thr): Added another parameter to control whether
- remove_thr should close the handle or not. It is only used on
- Win32.
- (close): Removed the <automatic_wait> parameter for it has been
- incoporated as a member.
- (close_singleton): Reset <automatic_wait_> on Win32. We'll never
- need to wait for unfinished threads on NT.
- (ACE_Thread_Manager): Added initialization of member
- <automatic_wait_>. It is default to 1 (wait on exit.)
-
- * ace/Containers.h: Corrected erroneous comments.
-
-Wed Nov 26 10:33:22 1997 <irfan@TWOSTEP>
-
- * ace/Log_Msg (msg): Changed the parameters from char * to const
- char *.
-
- * ace: Added unimplemented copy constructors and assignment
- operators to the following classes:
-
- ACE_Map_Manager
- ACE_Message_Block
- ACE_Data_Block
- ACE_Log_Msg
- ACE_Message_Queue
- ACE_Task
- ACE_Task_Base
-
- Added ACE_UNIMPLEMENTED_FUNC macros to these classes:
-
- ACE_Mem_Map
- ACE_Priority_Reactor
- ACE_Select_Reactor
- ACE_WFMO_Reactor
- ACE_XtReactor
- ACE_Reactor
- ACE_Read_Buffer
- ACE_CORBA_Handler
- ACE_TSS_TPQ_Entry
- ACE_Object_Manager
- ACE_File_Lock
- ACE_Semaphore
- ACE_RW_Mutex
- ACE_Mutex
- ACE_Null_Barrier
- ACE_Null_Condition
- ACE_Null_Mutex_Guard
- ACE_Event
- ACE_Thread_Mutex
- ACE_Thread_Mutex_Guard
- ACE_Condition_Thread_Mutex
- ACE_Recursive_Thread_Mutex
- ACE_Barrier
- ACE_Condition
-
- Thanks to Stanley D Leeson <STANLEY.D.LEESON@cdev.com> for these
- suggestions.
-
-Sat Dec 20 14:57:30 1997 <nw1@CHA-CHA>
-
- * All MSVC 5.0 project files: Removed unnecessary library
- inclusions. Most of them are not necessary. Thanks to
- Patrick J. McNerthney <pat@thememedia.com> for suggesting
- this.
-
-Wed Nov 26 15:49:14 1997 David L. Levine <levine@cs.wustl.edu>
-
- * ace/IOStream_T.i (recv) affects WIN32 only: fixed typo,
- ACE_BIT_ENABLED instead of ACE_BIT_ENTABLED IOStream_T.i.
- Thanks to James CE Johnson <jcej@lads.com> for reporting this.
-
- * include/makeinclude/platform_lynxos.GNU: added information
- on necessary OS patches.
-
-Wed Nov 26 09:45:43 1997 Chris Cleeland <cleeland@cs.wustl.edu>
-
- * ace/OS.h (ACE_PROPER_SINGLETON_INSTANTIATION): Corrected
- misspelling in the "! defined (MSC_VER)" branch. I just happened
- to notice this, so I don't know if anybody ever tried it and it
- failed.
-
-Tue Nov 25 12:07:07 1997 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_3.2.GNU: updated for
- OSF/1 3.2g/CXX 5.7. Thanks to Dani Flexer <danif@ivory-sw.com>
- for the updates.
-
-Tue Nov 25 01:07:39 1997 <irfan@TWOSTEP>
-
- * examples/Reactor/Proactor/test_multiple_loops.cpp (main): Made
- sure that the Proactor was removed from reactor.
-
- * ace/WFMO_Reactor.cpp (remove_handler_i,
- remove_suspended_handler_i): Make sure to preserve DONT_CALL
- with normal event entries.
-
- * ace/Proactor.cpp:
-
- - A flag used to indicate when we are shutting down.
-
- - Made sure to signal the timer event when we are closing down.
-
- - Thread Manager: don't bother to wait (since the thread may have
- already gone). But make sure to close up the descriptor. This
- may not be necessary in the future when THR_DETACHED is
- correctly implemented.
-
- * ace/Asynch_IO.h: Changed some code from protected to public.
- Even though these functions are really protected, sometimes it
- simplifies user code to be able to "fake" a result. Users
- should use these with care.
-
- * examples/Reactor/Proactor/test_proactor.cpp
- (handle_write_stream): Added code for partial write to socket.
- However it ever seems to do a short write ;-). Also made sure
- that the initial data coming from the AcceptEx call is also
- dumped to the file. Thanks to Mark Rabotnikov
- (mark@netmanage.co.il) for pointing this out.
diff --git a/ChangeLogs/ChangeLog-98b b/ChangeLogs/ChangeLog-98b
deleted file mode 100644
index 13ad5c9005d..00000000000
--- a/ChangeLogs/ChangeLog-98b
+++ /dev/null
@@ -1,12943 +0,0 @@
-Thu Dec 31 13:25:53 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/019/server[2].cpp:
- Test that the segment was created. If it already existed, the
- malloc() will return 0 and we'll crash.
-
-Thu Dec 31 12:10:46 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/RB_Tree_Test.cpp:
- Added missing template instantiation, actually it seems that the
- IRIX MIPSPro compiler was not doing recursive instantiation.
-
- * ace/ACE.cpp:
- Use ACE_NOTREACHED in ACE::set_handle_limit(), the IRIX compiler
- was complaining again.
-
-Thu Dec 31 10:58:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Containers_T.cpp (ACE_Fixed_Set::insert): removed
- blank line between function header and body.
-
-Thu Dec 31 09:40:09 1998 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SOCK_Stream: Added a new ACE_SOCK_Stream constructor that
- initializes the underlying ACE_HANDLE automagically.
-
-Wed Dec 30 17:07:21 1998 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Containers_T.h: Clarified that the insert() method on
- ACE_Unbounded_Stack doesn't allow duplicates. Thanks to Susan
- Liebeskind <susan.liebeskind@gtri.gatech.edu> for reporting
- this.
-
-Wed Dec 30 14:41:56 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/ACE.cpp:
- Sometimes the get_ip_interfaces routine was returning 0.0.0.0 as
- a valid address, we explicitly avoid that now.
-
-Wed Dec 30 14:34:44 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/GenExportH.BAT: Added '\$\I\d\$' string in generated file.
- Also in generated file, make XXX_HAS_DLL defined to 1 if it
- isn't defined already.
-
-Wed Dec 30 13:22:50 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Functor.{cpp, h, i}
- ace/Functor_T.{cpp, h, i}
- ace/Hash_Map_Manager.{h, i}
- ace/Hash_Map_Manager_T.{h, i}: Moved ACE_Hash and ACE_Equal_To
- STL-style functors from the Hash_Map_Manager files into the
- Functor files (so other containers can use these from a central
- place). Added ACE_Less_Than STL-style functor. Thanks to Doug
- Schmidt, Carlos O'Ryan, and Irfan Pyarali for comments on the
- distinctions between GOF command pattern functors and STL-style
- functors.
-
- * ace/RB_Tree.{cpp, h, i}: Reworked templates so RB_Tree can take
- advantage of template specialization for strcmp semantics without
- the overhead of a virtual function call. Thanks to Carlos O'Ryan
- for his suggestions on how to achieve this.
-
- * ace/OS.h
- ace/config-psos-diab.h
- include/makeinclude/platform_psos_diab.GNU
- tests/Handle_Set_Test.cpp
- tests/Process_Strategy_Test.cpp
- tests/RB_Tree_Test.cpp
- tests/Reactor_Performance_Test.cpp
- tests/TSS_Test.cpp: A number of fixes to allow ACE pSOS tests to
- compile and link successfully.
-
-Wed Dec 30 10:36:36 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Env_Value_Test.cpp: protected tests of doubles with
- #ifndef ACE_LACKS_FLOATING_POINT, so that the test will
- build for our Chorus platform.
-
-Tue Dec 29 16:24:24 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/Service_Config.perl,auto_ptr.perl,corba-boolean.perl,
- rename-ace.pl: use perl from user's path, so we don't have
- to hard-code its location.
-
- * tests/Time_Value_Test.cpp: don't test ACE_U_LongLong if
- the platform defines ACE_LACKS_LONGLONG_T, e.g., GreenHills,
- because it makes a big mess.
-
- * bin/Hash_Map_Manager.pl,Hash_Map_Manager_Helper.csh:
- translated Hash_Map_Manager_Helper.csh from csh to sh.
- Renamed Hash_Map_Manager_Helper.csh to Hash_Map_Manager_Helper.
-
- * docs/ACE-guidelines.html: specifically disallow csh scripts.
-
-Tue Dec 29 15:09:15 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.10 released.
-
-Tue Dec 29 14:57:24 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * docs/tutorials/{019,020}: Checked out the two new tutorials
- from James Johnson.
-
-Tue Dec 29 14:37:57 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.9 released.
-
-Tue Dec 29 13:32:50 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_SELF): Changed it's definition from -1 to 0 on NT
- to avoid warings from Intel C++. ACE_SELF is not used on NT.
- Thanks to Karel Zuiderveld <kzuiderveld@vitalimages.com> for
- reporting this.
-
-Tue Dec 29 10:29:03 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Fixed a bunch of warnings produced by Intel's C++ 4.0
- compiler. Thanks to Karel Zuidrveld
- <kzuiderveld@vitalimages.com> for reporting these.
-
-Tue Dec 29 09:47:48 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos*.h,README:
- restored ACE_TIMER_SKEW, with explanatory comment.
-
-Mon Dec 28 23:12:59 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/DLL.h,
- ace/Mem_Map.h,
- ace/Read_Buffer.h:
- Added ACE_UNIMPLEMENTED_FUNC() macros to these headers.
-
-Wed Dec 28 22:55:55 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/DLL.h: Prevent copying and assignment by putting these
- methods in the private part of the class.
-
-Mon Dec 28 17:57:25 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/020/*:
- Sooner than expected... A brief and basic intro to using
- ACE_Shared_Memory_MM.
-
- * docs/tutorials/online-tutorials.html:
- Linked in 019 and 020
-
-Mon Dec 28 16:32:42 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/019/*:
- At long last, a basic Tutorial on ACE_Shared_Memory_SV. With
- luck, 020 will be added soon to cover ACE_Shared_Memory_MM
-
-Mon Dec 28 11:21:40 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Strategies.h: Put the "virtual" keyword in from of the
- ~ACE_Reactor_Notification_Strategy to make it clear
- that this destructor is virtual. Thanks to Greg Gallant
- <greg.gallant@jhuapl.edu> for pointing this out.
-
-Mon Dec 28 11:12:08 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added SunOS 5.7 (Solaris 7) info.
-
-Mon Dec 28 10:52:20 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * */Makefile:
- Updated dependencies.
-
-Mon Dec 28 02:34:59 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/server/server_test.cpp
- (main): Allow loading in static services in this application.
- Thanks to Peter J. Mason <peterm@fl.net.au> for reporting this.
-
- * ace/Service_Config.{h,i,cpp} (ACE_Service_Config): Changed the
- default value of <ignore_static_svcs> to 1. Otherwise, it is
- not consistent with the initial value of
- ACE_Service_Config::no_static_svcs_ and that's very confusing.
- (open): Added one more argument <ignore_static_svcs> with
- default value of 1. This allow us to turn off this behavior
- when opening Service_Config. Otherwise, the only other way is
- to create a fake ACE_Service_Config and use that to change the
- static variable <no_static_svcs_>.
-
-Sun Dec 27 21:51:10 1998 David L. Levine <levine@cs.wustl.edu>
-
- * etc/purify.solaris2: added a couple of MIU suppressions for
- SunOS 5.7's thread library.
-
-Fri Dec 25 08:23:51 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ACE-INSTALL.html: Fixed a broken link to the ACE FAQ. Thanks to
- Barry Hoggard <hoggardb@panix.com> for reporting this.
-
-Fri Dec 25 01:55:32 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Hash_Map_Manager: There are two problems with the current
- implementation of Hash_Map_Manager:
-
- (a) It requires a hash() method on the key type. If it is not
- possible for the key type to have a hash() function (e.g.,
- the key is a primitive type such as an int, or is a pointer
- type, or a three party class), the usual solution is to do
- partial template specialization.
-
- This is usually not a very good option since some compilers
- do not support partial template specialization.
-
- (b) The second problem is with comparing two keys.
- Hash_Map_Manager assumes that keys can be compared using
- operator==. This assumption causes problems in some cases,
- e.g., when using char * as the key. Usually with char *,
- you want to use strcmp and not compare pointers.
-
- Solution to these two problems is the new Hash_Map_Manager_Ex
- class. Problem (a) is addressed by using a function object - the
- type of which is specified by the user as an additional template
- parameter. Problem (b) is addressed by using another function
- object - the type of which is specified by the user as an
- additional template parameter. So the new Hash_Map_Manager_Ex
- takes five template parameters:
-
- <key, value, hash_key, compare_keys, mutex>
-
- Backward compatibility: Hash_Map_Manager now inherits from
- Hash_Map_Manager_Ex, fixing the hash_key function object (which
- simply calls key.hash()) and fixing compare_keys (which simply
- uses operator== on the keys).
-
- There will be one problem: Users of compilers that do not
- implicitly instantiate templates will have to update their list
- of template instantiations. To help with this, please see
- $ACE_ROOT/bin/Hash_Map_Manager_Helper.csh
-
- Other miscellaneous changes: Added two new classes: ACE_Hash<T>
- and ACE_Equal_To<T>. ACE_Hash assumes a hash() method on T.
- ACE_Equal_To compares by using operator==. However, the
- ACE_Hash class has been specialized to work with:
-
- char, signed char, unsigned char,
- short, unsigned short,
- int, unsigned int,
- long, unsigned long,
- const char *, char *,
- const wchar_t *, wchar_t *,
- const ACE_USHORT16 *, ACE_USHORT16 *,
-
- Also, ACE_Equal_To has been specialized to work with:
-
- const char *, char *,
- const wchar_t *, wchar_t *,
- const ACE_USHORT16 *, ACE_USHORT16 *,
-
- Remember, you don't have to use these specialization. You can
- always create your own.
-
- If we had default template parameters, we could default hash_key
- to ACE_Hash<key> and compare_keys could default to
- ACE_Equal_To<key>.
-
- BTW, note that the specialization with ACE_Hash and ACE_Equal_To
- is not partial template specialization. It is complete template
- specialization, and we don't know of compilers that cannot
- handle complete template specialization.
-
- Since we now have template specialization, Hash_Map_Manager_T.*
- files were created. I also took this opportunity to inline most
- of the Hash_Map_Manager functions.
-
- Also, update the makefiles and project files.
-
- BTW, these changes grossly simplified
- tests/Hash_Map_Manager_Test.cpp and tests/Map_Manager_Test.cpp.
- These tests will now work with compilers that do not support
- partial template specialization. Maybe James can change
- Filecache to take advantage of these changes.
-
- Updated the following files with the new template instantiations:
-
- ace/Filecache.cpp
- ace/Local_Name_Space.cpp
- ace/Template_Instantiations.cpp
- tests/Conn_Test.cpp
- tests/Hash_Map_Manager_Test.cpp
- tests/Map_Manager_Test.cpp
- TAO/examples/Callback_Quoter/Notifier_i.cpp
- TAO/examples/POA/On_Demand_Loading/Servant_Manager.cpp
- TAO/examples/Simple/bank/AccountManager_i.cpp
- TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp
- TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp
- TAO/orbsvcs/orbsvcs/Log/Logger_i.cpp
- TAO/orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp
- TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.cpp
- TAO/orbsvcs/orbsvcs/Trader/Service_Type_Repository.cpp
- TAO/orbsvcs/orbsvcs/Trader/Trader.cpp
- TAO/orbsvcs/orbsvcs/Trader/Trader_Utils.cpp
- TAO/tao/ORB.cpp
- TAO/tao/ORB_Core.cpp
- TAO/tao/Object_Table.cpp
- TAO/tao/Operation_Table.cpp
- TAO/tao/POA.cpp
- examples/Map_Manager/test_hash_map_manager.cpp
-
- Thanks to Carlos for suggesting these changes. Most of these
- were inspired by SGI's STL.
-
- If these changes are successful (i.e., nobody is hunting me down
- for breaking their code ;-)), we should add a similar comparison
- function object to Map_Manager, Collections in Containers_T that
- require an operator==() (typically for remove() and find()) and
- the RB_Tree.
-
- * ace/ACE (hash_pjw): hash_pjw is now available for char *,
- wchar_t *, and ACE_UINT16 *.
-
- * ace/OS (strlen, strcpy, strcmp): These functions are now
- available for char *, wchar_t *, and ACE_UINT16 *.
-
- * ace/SString.cpp (ACE_WString::strlen): Simply calls
- ACE_OS::strlen.
-
- * ace/config-win32-common.h (ACE_HAS_WCHAR_TYPEDEFS_USHORT): Since
- Win32 typedefs wchar_t as a 16 bit unsigned short, this can
- potentially cause problems with function overloading.
- Therefore, I added ACE_HAS_WCHAR_TYPEDEFS_USHORT to the Win32
- config file. This is very similar to
- ACE_HAS_WCHAR_TYPEDEFS_CHAR. Thanks to David Levine for helping
- with this.
-
-Thu Dec 24 09:37:32 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.8 released.
-
-Thu Dec 24 00:59:46 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.h (ACE_Thread_Manager): Added a more complete
- documentation of the deprecated <at_exit> method. Thanks to
- Keith Brown <kalbrown@ix.netcom.com> for reporting this.
-
-Wed Dec 23 16:37:52 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h,include/makeinclude/platform_sunos5_ghs.GNU:
- updated so that links succeed.
-
-Wed Dec 23 15:58:53 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE.cpp (ldfind): Supress changing the 'dll' name if a
- customized dll extension is used.
-
-Tue Dec 22 22:34:32 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h,include/makeinclude/platform_sunos5_ghs.GNU:
- added GreenHills compiler support.
-
- * ace/OS.h: don't use hrtime_t for ACE_hrtime_t if
- ACE_LACKS_LONGLONG_T.
-
-Mon Dec 21 16:06:07 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Shared_Memory_MM.i: Changed the remove() method to call
- ACE_Mem_Map::remove() rather than ACE_Mem_Map::unmap() so the
- code is consistent with the documentation. Thanks to James
- Johnson for reporting this.
-
-Mon Dec 21 13:55:33 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Containers_T.{i,cpp} (ACE_Bounded_Set::is_full): On LynxOS
- only, uninlined this function to avoid Internal Compiler Error
- with native (3.0.0) compiler. Thanks to Carlos for this fix,
- it had us stumped for quite a while.
-
-Sat Dec 19 18:27:07 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Timer_Queue_Adapters.cpp (handle_signal): Cleaned up an
- unused variable. Thanks to David Levine for reporting this.
-
-Fri Dec 18 09:30:57 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.h (elapsed_time_incr): added missing
- const to member function declaration.
-
- * ace/config-sunos5.5.h: removed redundant
- ACE_HAS_XPG4_MULTIBYTE_CHAR #define.
-
- * ace/config-sunos5.7.h: added this config, for Solaris 7.
-
- * apps/Gateway/Gateway/Gateway.cpp,
- examples/ASX/Event_Server/Transceiver/transceiver.cpp
- (handle_signal): added ACE_UNUSED_ARG (signum).
-
-Fri Dec 18 06:08:47 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/High_Res_Timer: Made several methods const. Thanks to Ulf
- Jaehrig <jaehrig@desys.com> for reporting this.
-
- * ace/Thread.h (ACE_Thread): Removed a stray join(ACE_Thread_ID)
- method. Thanks to Jody Hagins <jody@atdesk.com> for reporting
- this.
-
-Thu Dec 17 21:06:30 EST 1998 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/000:
- Removed. This is redundant with the Chap* directories.
-
-Thu Dec 17 17:18:21 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude/platform_sco5.0.0-{nothread,fsu-pthread}.GNU:
- This file was been modified to get rid of thread related stuff
- until we can obtain the FSU threads library. Thanks to Michael
- Preobrazhensky <mikep@xpedite.com> for this.
-
-Thu Dec 17 16:56:28 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/create_ace_build: try /bin/find if /usr/bin/find doesn't exist.
-
- * ace/High_Res_Timer.cpp (elapsed_time): rearranged terms in
- nanoseconds calculation to avoid overflow on machines that don't
- have native 64-bit ints. Thanks to Greg Holtmeyer
- <gholtmeyer@mdc.com> for helping to track this problem down.
-
-Thu Dec 17 12:43:11 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Removed the use of ACE_DEBUG within handle_signal() methods
- to avoid portability problems. Thanks to Susan Liebeskind
- <susan.liebeskind@gtri.gatech.edu> for reporting this.
-
-Tue Dec 15 14:45:49 1998 David L. Levine <levine@cs.wustl.edu>
-
- * *.h: removed () from #pragma implementation argument.
- Thanks to Christian v. Mueffling <cvm@aiss.de> for reporting
- this.
-
- * docs/ACE-guidelines.html: added Doug's warning about side effects
- in ACE_DEBUG statements.
-
-Tue Dec 15 14:43:47 1998 Ossama Othman <ossama@debian.org>
-
- * ace/OS.{h,i},README: added lstat() and readlink() methods.
- Use ACE_LACKS_LSTAT and ACE_LACKS_READLINK if lstat() and readlink()
- aren't supported.
-
-Tue Dec 15 11:55:51 1998 Steve Huston <shuston@riverace.com>
-
- * ace/ACE_Library.(mak mdp): Added Message_Queue.cpp to the files list.
-
- * examples/NT_Service/NT_Service.(mak mdp): MSVC 4.2 project file for
- the NT_Service example.
-
-Tue Dec 15 11:27:24 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-chorus.h: added ACE_LACKS_READLINK.
-
- * ace/config-psos*.h,config-vxworks-5.x.h: added ACE_LACKS_READLINK
- and ACE_LACKS_LSTAT.
-
-Tue Dec 15 08:44:18 1998 Steve Huston <shuston@riverace.com>
-
- * examples/NT_Service: New example program, shows how to create,
- manipulate, and run an NT Service using the ACE_NT_Service class.
- Muchas gracias to Gonzalo Diethelm for smashing this code into a
- good example - useful enough to show how things work, but simple
- enough to show all the useful functionality in one concise program.
-
-Tue Dec 15 07:32:49 EST 1998 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
-
- * OS.h:
-
- Moved the definition of IOV_MAX after we have included the
- limits.h file. Before make ing this change, we were getting lots
- of warnings on SunOS 5.6 about redefinition of IOV_MAX.
-
-Mon Dec 14 15:39:39 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Makefile:
- Updated dependencies.
-
-Mon Dec 14 10:49:29 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * Static_Performance.dsw: Quick and dirty workspace to build
- several static version's performance tests.
-
- * ace/ace_lib.dsp: Removed "__ACE_INLINE__=0" from the default
- static release build settings.
-
- * performance-tests/Misc/basic_perf.dsp:
- * performance-tests/Misc/context_switch_time.dsp: Added static
- build configurations.
-
- * tests/RB_Tree_Test.dsp: Redid the project file. A VC 6 only
- compiler option somehow got into the file. Thanks to Ulf
- Jaehrig <jaehrig@desys.com> for reporting this.
-
-Mon Dec 14 10:24:59 1998 Fred Kuhns <fredk@arl.wustl.edu>
-
- * ace/OS.h: Added #define for IOV_MAX 16
-
-Mon Dec 14 08:35:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * BUG-REPORT-FORM: added a few FMMs.
-
-Mon Dec 14 08:27:11 1998 Steve Huston <shuston@riverace.com>
-
- * tests/run_tests.sh: Enabled MT_Reactor_Timer_Test.
-
-Sun Dec 13 16:40:18 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MT_Reactor_Timer_Test.dsp:
- * tests/tests.dsw: Added the new project file -
- MT_Reactor_Timer_Test.
-
- * tests/run_tests.bat: Added MT_Reactor_Timer_Test into
- one-button test for NT.
-
- * tests/MT_Reactor_Timer_Test.cpp: Changed the use of
- ACE_OS::{read,write} to ACE::{recv,send}.
-
-Sat Dec 12 17:19:17 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE.cpp (ldfind): If we specified a suffix which is not the
- default suffix on the platform, the ldfind() operation should
- not try to add the default platform suffix but use ours.
-
-Sat Dec 12 07:44:02 1998 John Lindal <jafl@cco.caltech.edu>
-
- * ace/config-mklinux.h: added.
-
-Fri Dec 11 23:26:20 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Message_Queue_Test.cpp: Generalize the test to perform
- "platform specific" message queue tests when applicable.
- Currently, this only applies to VxWorks and Windows NT 4.0 or
- above.
-
- * tests/DLL_Test.cpp (main): STL's implementation of auto_ptr
- doesn't define an assignment operator that takes a pointer of T.
- Changed to use constructor to initialize the auto_ptr my_hello.
-
-Fri Dec 11 16:30:44 1998 Ossama Othman <othman@tango.cs.wustl.edu>
-
- * tests/Time_Value_Test.cpp: Removed the ACE_DISABLE_AUTOCONF_LONGLONG
- macro. It broke ACE+autoconf on non-sun platforms.
-
-1998-12-11 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * test/DLL_Test.dsp: Fixed configuration settings. Most of the
- time, it's easier to add new projects by using the
- bin/dsp2dsp.pl.
-
- * ace/Message_Queue.{h,cpp} (enqueue): Made sure all bytes in a message
- block chain are accounted for.
- (enqueue_tail,dequeue_head): Added two more methods into
- ACE_Message_Queue_Base. They are the prefered methods to use.
-
-Fri Dec 11 15:09:43 1998 Ossama Othman <ossama@debian.org>
-
- * tests/Time_Value_Test.cpp: define ACE_DISABLE_AUTOCONF_LONGLONG
- before including ace/inc_user_config.h. This will prevent
- an automatically generated ACE Configuration Project config.h
- header from defining ACE_UINT64, and thus allowing
- Time_Value_Test.cpp to compile on platforms that define
- ACE_HAS_STHREADS. Please read the comment in Time_Value_Test.cpp.
- ACE_DISABLE_AUTOCONF_LONGLONG is not meant for general use!
-
-Fri Dec 11 14:05:11 1998 Steve Huston <shuston@riverace.com>
-
- * tests/MT_Reactor_Timer_Test.(cpp h): Replaced the multithread
- timer set/cancel test with sensible tests.
-
-Fri Dec 11 08:51:07 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated egcs version information.
-
- * VERSION: added ace-users/comp.soft-sys.ace info.
-
- * include/makeinclude/platform_osf1_4.0.GNU: added suppression
- of warning 1136, conversion to integral type of smaller size
- could lose data. cxx V6.1-029 spews out a bunch of them,
- otherwise.
-
- * tests/Time_Value_Test.cpp: protected definition of __ACE_INLINE__.
- Thanks to Ossama for reporting this.
-
-1998-12-11 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Message_Queue.{h,i,cpp} (ACE_Message_Queue_Base): Added a
- bunch of pure virture functions in the class to define the
- common interface functions of a message queue. This allows up
- to experiment different message queue implementations easily.
- Most significantly, all queueing operations are simplified into
- <enqueue> and <dequeue> method in ACE_Message_Queue_Base as
- "standard" queueing operations. Inherited class, of course, can
- add fancier queueing operations (as in ACE_Message_Queue.)
-
- (ACE_Message_Queue_NT): A new adapter class inherited from
- ACE_Message_Queue_Base that implement a message queue using NT's
- IO completion ports. As it's name implies, this is a
- specialized version for NT. It is not as versatile as ACE's
- general MQ implementation. However, this implementation
- consumes less NT handles which in some circumstances may be a
- big win (because ACE_Message_Queue uses cv and on NT, cv is
- simulated and consumes 4 handles per cv. ACE_Message_Queue_NT
- only uses one handle and one critical section.)
-
- Several features inherited from IO completion port are, the
- waiting threads are release in LIFO order, and you can control
- (at initialization time,) the max number of threads that can be
- release by the message queue to run concurrently.
-
- Notice that the constructor and the <open> method have different
- signature compared with those of ACE_Message_Queue. You should
- use ACE_Message_Queue_Factory to create a message queue on the
- fly if so desired.
-
- Thanks to Mark Lucovsky <markl@microsoft.com> and Karlheinz Dorn
- <Karlheinz.Dorn@med.siemens.de> for providing the idea.
-
- * ace/Message_Queue_T.h (dequeue): Added the new method to match
- with the changes in ACE_Message_Queue_Base.
- (create_NT_message_queue): A wrapper function to manufacture an
- ACE_Message_Queue_NT.
-
-
-Thu Dec 10 09:08:26 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-chorus.h: added ACE_LACKS_FSYNC.
-
- * ACE-INSTALL.html: ACE/TAO build on Linux RedHat 5.2
- as well as 5.1.
-
- * ace/config-osf1-3.2.h: added getpgid () prototype, because
- an old comment said that it was missing from the system headers.
-
- * ace/config-linux-common.h: replaced ACE_LACKS_GETPGID with
- a getpgid () prototype.
-
- Thanks to Ivan Pascal <pascal@info.tsu.ru> for motivating the
- above two getpgid () updates.
-
- * ace/config-sunos5.5.h: updated comment on why explicit
- instantiation isn't used with Sun CC. Thanks to
- William A. Hoffman <hoffman@crd.ge.com> for introducing
- us to -instances=explicit.
-
-Wed Dec 09 22:59:38 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.6.7 released.
-
-Wed Dec 09 18:03:58 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Reactor/WFMO_Reactor/test_network_events.cpp (main):
- Removed global variables and cleaned up some minor things.
-
-Wed Dec 09 07:02:06 1998 David L. Levine <levine@cs.wustl.edu>
-
- * README, VERSION: expanded mention of BUG-REPORT-FORM.
-
- * docs/ACE-guidelines.html: strengthened mention of ACE_ASSERT danger.
- Thanks to Irfan for the example.
-
- * tests/run_tests.vxworks: re-enabled Timeprobe_Test, now that
- ACE_ASSERTs have been fixed in ACE's Containers.
-
- * ace/config-linux-common.h,config-osf1-{3.2,4.0}.h:
- removed ACE_LACKS_GETPGID. Thanks to
- Ivan Pascal <pascal@info.tsu.ru> for reporting that
- getpid () is supported on those platforms.
-
- * ace/config-linux-common.h: restored ACE_LACKS_GETPGID,
- because ::getpgid () isn't found on Alpha with glibc 2.0.7.
-
- * tests/Timeprobe_Test.cpp: disabled ACE_ENABLE_TIMEPROBES,
- because the ACE lib is built by default without them.
-
- * performance-tests/Misc/context_switch_time.cpp: disabled
- Yield_Test on VxWorks, because it doesn't run properly there.
-
- * ace/config-tandem.h,README: removed ACE_HAS_STRUCT_PROTOENT_DATA,
- because it is no longer used. Thanks to Ossama for reporting this.
-
- * tests/Collection_Test.cpp,
- examples/Reactor/Misc/test_early_timeouts.cpp:
- removed unused parameter names argc and argv.
-
- * tests/DLL_Test.cpp: added ACE_Auto_Basic_Ptr <Hello> template
- instantiation.
-
-1998-12-09 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Collection_Test.cpp: Added new test for ACE collections.
-
- * ace/Map_Manager.cpp (operator*):
- * ace/Containers_T.cpp (operator*):
- * ace/SPIPE_Acceptor.cpp (create_new_instance):
-
- Fixed ACE_ASSERT usage.
-
- * ace/config-vxworks5.x.h: Added ACE_LACKS_FSYNC.
-
- * ace/OS.i (fsync): Added ACE_NOTSUP_RETURN (-1).
-
-Tue Dec 08 21:39:16 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU,ACE-INSTALL.html:
- enable DU 4.0 cxx 6.x warnings by default. To disable, if
- you're using cxx 5.x, set CXX_VER to CXX_5 either on the
- make command line, or in your environment. Thanks to
- Gary York <gfyork@ix.netcom.com> for being that last
- cxx 6.x user to trip over this :-)
-
- * include/makeinclude/platform_lynxos.GNU: override
- ACE_HAS_GNUG_PRE_2_8 to allow builds of all TAO tests
- on LynxOS 3.0.0. Its g++ can handled nested classes, even though
- it's in the 2.7 family. Thanks to Patty Hair <patty@Lynx.COM>
- for suggesting that we try to build the tests on LynxOS.
-
-Tue Dec 8 19:50:49 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Shared_Object.cpp: Changed the various default
- implementations of init()/fini()/info() to return 0 rather than
- -1 so that users won't have to subclass Service_Object just to
- change the return value. Thanks to Eric Newton for motivating
- this.
-
-Tue Dec 8 16:52:57 1998 Ossama Othman <ossama@debian.org>
-
- * ace/OS.{h,i}, ace/README: Added a fsync() method. Define
- ACE_LACKS_FSYNC if ::fsync() isn't supported.
-
-Tue Dec 08 15:03:25 1998 Steve Huston <shuston@riverace.com>
-
- * ace/NT_Service.{h cpp i}: Added a number of methods which can be
- used to register, remove, and control an NT service. Also,
- another macro, ACE_NT_SERVICE_RUN, which simplifies the setting up
- and running the most common case, a single service. Huge thanks
- to Gonzalo Diethelm <Gonzalo.Diethelm@jda.cl> for contributing
- the bulk of this code!
-
-Tue Dec 08 11:22:56 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ACE version 4.6.6 released.
-
-Tue Dec 08 10:45:56 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/System_Time.h: Removed redundant ACE_Time_Date definition.
- Thanks to Martin Krumpolec <krumpo@pobox.sk> for reporting this.
-
-Mon Dec 07 22:58:53 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Reactor/Misc/test_early_timeouts.cpp: On some
- platforms, select() returns before the time value specified.
- This tests counts the number of times this happens and the max
- early timeout.
-
- * ace/DLL.cpp (open): Added a call to ACE::ldopen() before calling
- ACE_OS::dlopen(). The allows us to find the library is
- predefined places and also expand the file name to the correct
- syntax (prefix and suffix) according to the platform.
-
- Also, fixed a bug where the <close_on_destruction_> flag has not
- being consulted on a reopen.
-
- * ace/ACE.cpp (ldfind): Moved the code that calls
- ExpandEnvironmentStringsA() from
- ACE_Location_Node::open_handle() to ACE::ldfind(). This code is
- more general and therefore belongs in ACE::ldfind().
-
- * ace/Parse_Node.cpp and ace/Svc_Conf_y.cpp: Fixed the incorrect
- use of ASYS_WIDE_STRING. Remember that the string returned from
- ASYS_WIDE_STRING is only valid for that line of code ;)
-
-Mon Dec 7 19:10:24 EST 1998 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/
- * docs/tutorials/001/001.dsp
- * docs/tutorials/002/002.dsp
- * docs/tutorials/003/003.dsp
- * docs/tutorials/004/004.dsp
- * docs/tutorials/005/005.dsp
- * docs/tutorials/006/006.dsp
- * docs/tutorials/007/007.dsp
- * docs/tutorials/008/008.dsp
- * docs/tutorials/008/008-server/008-server.dsp
- * docs/tutorials/008/008-direct/008-direct.dsp
- * docs/tutorials/008/008-broadcast/008-broadcast.dsp
- * docs/tutorials/009/009-directed/009-directed.dsp
- * docs/tutorials/009/009-server/009-server.dsp
- * docs/tutorials/009/009-broadcast/009-broadcast.dsp
- * docs/tutorials/010/010.dsp
- * docs/tutorials/011/011.dsp
- * docs/tutorials/012/012.dsp
- * docs/tutorials/013/013.dsp
- * docs/tutorials/014/014.dsp
- * docs/tutorials/018/018.dsp
- * docs/tutorials/015/015-client/015-client.dsp
- * docs/tutorials/015/015-server/015-server.dsp
- * docs/tutorials/016/016.dsp
- * docs/tutorials/017/017.dsp
- * docs/tutorials/tutorials.dsw
- Contributed by:
- Stefan Ericsson <Stefan.Ericsson@osd.uab.ericsson.se>
-
-Mon Dec 07 14:11:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/README: added entries for ACE_LACKS_IOSTREAMS_TOTALLY
- and ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS. Thanks to
- Ossama Othman <othman@astrosun.tn.cornell.edu> for reminding
- me to do this.
-
-Mon Dec 07 09:27:04 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Stats.cpp (std_dev): added comments to not reformat
- some code. It compiles with the Diab compiler for pSoS
- the way it is.
-
-Sun Dec 06 23:59:29 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * config-sunos5.5.h: Added back ACE_HAS_TIMER_SKEW. It is really
- required. See me for an example that illustrates this need.
-
-Sun Dec 06 16:05:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- Changes for pSOS port: ACE now compiles for pSOSystem 68k targets using
- the Diab D-C++ 4.2a compiler release, and links with all but the
- following ACE tests: Conn_Test, Handle_Set_Test, OrdMultiSet_Test,
- Priority_Reactor_Test, Process_Strategy_Test, Reactor_Performance_Test,
- and TSS_Test.
-
- * ace/Log_Msg.cpp
- ace/Log_Record.{cpp, h}
- ace/streams.h
- ace/SString.cpp
- ace/config-WinCE.h
- ace/config-psos-diab.h
- tests/test_config.h: Rearranged log print methods so that logging
- can still be done on platforms where iostreams are not sufficiently
- supported. Added ACE_LACKS_IOSTREAMS_TOTALLY to select this
- behavior, and defined it in pSOS Diab config header (also added to
- Windows CE config header, to simplify factoring out Win CE specific
- logging methods).
-
- * include/makeinclude/platform_psos_diab.GNU
- ace/OS.{cpp, h, i}: Removed Diab supplied library calls so ACE now
- links directly to pSOSystem libraries.
-
- * ace/Parse_Node.cpp
- ace/Stats.cpp: Modifications to circumvent bugs in the Diab 4.2a
- compiler's handling of conditional operators.
-
-Sun Dec 06 08:32:36 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Containers_T.cpp,Local_Name_Space_T.cpp,
- Name_Request_Reply.cpp,Service_Config.cpp,Service_Manager.cpp,
- Svc_Conf.y,Svc_Conf_Tokens.h,Svc_Conf_y.cpp,
- Time_Request_Reply.cpp,Trace.cpp:
- use ACE_NLOGGING instead of ACE_NDEBUG.
-
-Sat Dec 05 21:45:00 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Containers_T.cpp,Local_Name_Space_T.cpp,
- Name_Request_Reply.cpp,Service_Config.cpp,Service_Manager.cpp,
- Svc_Conf.y,Svc_Conf_Tokens.h,Svc_Conf_y.cpp,
- Time_Request_Reply.cpp,Trace.cpp:
- added if NDEBUG protection to some local variables and
- ACE_UNUSED_ARG to some parameters to avoid compiler warnings
- when ACE_DEBUG is disabled. Thanks to Faron Dutton
- <fdutton@avxus.com> for reporting this.
-
- * ace/Makefile (Svc_Conf_Tokens.h): escaped $\I\d$ string so
- that it doesn't get expanded in the Makefile itself.
-
-Sat Dec 5 16:06:27 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Local_Name_Space_T.cpp: Protected some of the ACE_DEBUG
- statements with a ACE::debug () check.
-
-Fri Dec 04 13:46:12 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Stats.cpp (std_dev): fixed difference calculation so
- that it always calculates a non-negative value.
-
- * performance-tests/Misc/context_switch_time.cpp
- (High_Priority_Synchronized_Task::svc): check if nsec is >=
- mutex_acquire_release_time, to avoid adding in negative
- context_switch_times.
-
- * ace/config-vxworks5.x.h,
- include/makeinclude/platform_vxworks5.x_g++.GNU,
- include/makeinclude/platform_vxworks5.x_ghs.GNU: moved -DVXWORKS
- from platform_vxworks5.x_* files to config-vxworks5.x.h, to reduce
- command-line clutter a bit.
-
-Fri Dec 4 12:45:04 1998 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/linify:
- * docs/tutorials/combine:
- * docs/tutorials/fixMakefile:
- Ensure that perms are 755 and that #!/.../perl is not used
-
-Wed Dec 02 14:21:34 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (fstat): This function needs to close down the c handle
- opened by _open_osfhandle to avoid resource leaks on Win32.
- Thanks to Christian Korn <korn@gate.qaqa.com> for reporting
- this.
-
-Tue Dec 01 13:48:51 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Added ACE_HAS_SIGWAIT. Also added
- ifdef section to prevent threaded ACE from compiling on FreeBSD
- under 3.0 (excluded.)
-
-Tue Dec 1 22:22:42 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch.h: Added a comment to clarify the semantics of
- ACE_RW_Process_Mutex. Thanks to Stanislav Meduna
- <stanom@etm.co.at> for reporting this.
-
-Tue Dec 01 17:22:00 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/DLL_Test: Added the .dsp and tests.dsw to the
- repository.
-
- * tests/run_tests.bat: Added an entry for DLL_Test.
-
-Tue Dec 01 13:54:35 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: added ESUCCESS definition (to 0), if not #defined.
-
-Tue Dec 01 13:48:51 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Added ACE_HAS_SIGWAIT. Also added
- ifdef section to prevent threaded ACE from compiling on FreeBSD
- under 3.0 (excluded.)
-
- * ace/OS.i (sigwait): FreeBSD 3.0 supports sigwait. Changed the
- ifdef condition to support sigwait for 3.0 or above. Thanks to
- Bob McWhirter <bob@werken.com> and Russell L. Carter
- <rcarter@dnstoo.consys.com> for helping to track this down.
-
-Tue Dec 01 12:59:57 1998 James CE Johnson <jcej@lads.com>
-
- * ace/IOStream_T.i (recv,recv_n): set errno to ESUCCESS
- because it was never being set to ETIME when the read timed
- out. (Before entering the peer_->recv/recv_n, errno was
- ENOENT from previous activities and was the same after in
- both positive & negative tests until I did the reset.)
- (eof): cleaned up a bit.
-
- I tested against IOStream_Test for both positive and
- negative. For the positive test, I changed the sleep() at
- line 363 to a much larger value. The client worked fine.
- For the negative test, I replaced the spleep() with a
- close() & return() pair. The client saw the closure and
- exited as expected.
-
-Tue Dec 1 08:55:48 PST 1998 James Hu <jxh@entera.com>
-
- * ace/Memory_Pool.cpp: Since type key_t might be something
- other than int (e.g., a long), some additional code was needed
- to support the sscanf.
-
-Tue Dec 01 10:49:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * tests/Win32clerk.conf
- tests/Win32server.conf
- tests/Win32tokens.conf: removed explicit path for netsvcs dll, as
- this dll is now being moved to ACE_wrappers/bin after it is built
- and the explicit path was causing dlopen to fail rather than
- searching the path on NT, which caused Time_Service_Test to fail.
-
-Tue Dec 01 10:07:48 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.6.5 released.
-
-Tue Dec 1 00:07:05 PST 1998 James Hu <jxh@entera.com>
-
- * ace/Containers_T.h:
- * ace/Containers_T.i:
- Fixed a bug introduced when someone genericized the creation
- strategy for ACE_DLList. The removal routing had not been
- similarly genericized. Thanks goes to Martin Krumpolec
- <krumpo@pobox.sk> for spotting the problem.
-
-
-Mon Nov 30 19:10:23 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * examples/DLL/Makefile:
- * examples/DLL/Makefile.Today:
- * examples/DLL/Makefile.Newsweek:
-
- Added the above makefiles. Makefile internally uses
- Makefile.Today and Makefile.Newsweek to build the libraries
- seperately.
-
-Mon Nov 30 13:54:04 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_input): There
- was a friggin' bug in this code that is a violation of Reactor
- framework design rule #2, i.e., we were returning a non-0 value
- from handle_input(), which is a no-no... Thanks to Steve Huston
- for reporting this.
-
-Mon Nov 29 13:16:53 EST 1998 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/001/logger.h:
- * docs/tutorials/001/page04.html:
- * docs/tutorials/003/client.cpp:
- * docs/tutorials/003/page01.html:
- Added a blurb about the additional parameters to the recv(),
- recv_n(), send() and send_n() method calls of ACE_SOCK_Stream.
-
-Sun Nov 29 22:14:32 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i,cpp (exit): with ACE_HAS_NON_STATIC_OBJECT_MANAGER,
- call ACE_Object_Manager::fini (). Uninlined to avoid circular
- include problems with Object_Manager.h. The ACE_Object_Manager
- instantiation on main's stack is not destroyed by ::exit (),
- so this addition causes the ACE_Object_Manager to be
- properly shutdown. Thanks to Jeff Greif <jmg@trivida.com>
- for pointing out that automatic objects are not destroyed
- by ::exit ().
-
- * ace/Object_Manager.h: added Jeff Greif's ACE_OS::exit ()
- recommendations in comments.
-
-Sun Nov 29 20:13:15 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * examples/DLL/Today.cpp:
- * examples/DLL/Newsweek.cpp:
-
- Added ACE_BUILD_SVC_DLL and ACE_Svc_Export directives needed for the
- extern "C" create_magazine function.
-
-Sun Nov 29 18:22:52 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Test.cpp: Removed the use of
- "main_reactor". The "main_reactor" was added to handle incoming
- connections because this test was not working correctly without
- moving out the acceptor to another reactor. However, I recently
- found that the problem was actually due to the deadlocked
- notify_handler which I fixed a while back.
-
- * ace/OS.h: Added forward declarations of ACE_Time_Value's
- operator{+,-} so VC 6.0 won't get confused with the
- operator{+,-} in namespace std. Thanks to Victor Yu
- <victor.yu@computechnics.com.au> for reporting this.
-
-1998-11-29 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/007/page09.html:
- Added warnings about a possible core dump when an event handler
- exists in the thread pool's message queue after the handler has
- been destroyed. Jeff Donner's <JDonner@schedsys.com> work with
- Tutorial 007 on Win32 lead to this discovery.
-
-Sat NOv 28 20:02:08 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * examples/DLL/Today.cpp:
- * examples/DLL/Newsweek.cpp:
-
- Added the #ifdef directive needed to seperate out the
- functionality on NT and UNIX platforms.
-
-Sat NOv 28 20:02:08 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * examples/DLL/Dll.dsw:
- * examples/DLL/Test_dll.dsp:
- * examples/DLL/Today.dsp:
- * examples/DLL/Newsweek.dsp:
-
- Added to the repository. The test successfully executes on NT.
-
- * examples/DLL/README: Modified to add information on how to
- execute this test example on NT.
-
-Fri Nov 27 13:32:38 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * examples/DLL/test_dll.cpp (main): Added right arguments to the
- ACE_ERROR_RETURN macro.
-
-Thu Nov 26 21:04:05 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * examples/DLL/Makefile:
- * examples/DLL/Today.{h,cpp}:
- * examples/DLL/Newsweek.{h,cpp}:
- * examples/DLL/Magazine.h:
-
- Placed the comments at the right place and added an descriptive
- header wherever missing in the .h files.
-
- * examples/DLL/test_dll.cpp (main): Added auto_ptr for the
- Magazine class object pointer.
-
- * examples/DLL/README: Added to the repository.
-
-Wed Nov 25 02:02:32 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * examples/DLL/Makefile:
- * examples/DLL/Today.{h,cpp}:
- * examples/DLL/Newsweek.{h,cpp}:
- * examples/DLL/Magazine.h:
- * examples/DLL/test_dll.cpp:
-
- Added these files. This test example shows how dynamically linked
- library objects can be loaded on demand and their methods accessed
- on getting an pointer to these objects.
-
-Wed Nov 25 22:28:44 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/INET_Addr.cpp:
- Reverted the behavior to version 4.35, we don't use the first
- alias as the hostname, but the value returned in the h_name
- field.
- This change was to support TAO in our local site, but it caused
- many problems for other configurations of /etc/hosts and DNS. We
- found another workaround for our local site which makes more
- sense to the rest of the world.
-
-Wed Nov 25 20:34:12 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/DLL_Test.cpp (main): Removed ACE_OS::strcat which was
- concatenating a string literal with a defined string.
-
-Wed Nov 25 12:01:20 1998 Ossama Othman <othman@astrosun.tn.cornell.edu>
-
- * apps/gperf/gperf.texi:
- * apps/gperf/gperf.info:
- * apps/gperf/texinfo.tex:
- * apps/gperf/version.texi:
-
- updated gperf.texi to work with recent versions of makeinfo (e.g. 1.68,
- available in GNU texinfo-3.12). Regenerated gperf.info with latest
- makeinfo (1.68). Added texinfo.tex to make available certain TeX
- macros for texinfo to TeX converters. Added version.texi to centralize
- gperf update dates and versions (gets included by gperf.texi).
-
-Wed Nov 25 12:01:20 1998 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Misc/context_switch_time.cpp (main): fixed
- printouts by performing floating point division, instead of
- converted integer division to double. Added checks of
- activate () return values.
-
- * ace/OS.cpp (sched_params,lwp_getparams,lwpsetparams): set
- LWP priority on Suns, even if only using the ACE_HAS_PTHREADS
- interface. Though, we still don't get preemption if only using
- that interface. performance-tests/Misc/preempt.cpp demonstrates
- that.
-
- * ace/config-osf1-4.0.h: removed ACE_LACKS_THREAD_PROCESS_SCOPING.
- DU 4.0 seems to have process scoping, though I think only
- the superuser can use it.
-
-Wed Nov 25 10:48:42 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task.cpp: Fixed a bug whereby we weren't inheriting the
- group id correctly when joining a group of existing threads.
- Thanks to Valery Arkhangorodsky <avalery@balisoft.com> for
- pointing this out.
-
-Tue Nov 24 03:50:09 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/DLL_Test.cpp: Renamed DLL_Wrapper_Test.cpp to
- DLL_Test.cpp. Also, added ACE_OBJ_SUFFIX which takes care of the
- object code convention on NT and UNIX platforms. Changed the
- messages in ACE_ERROR to come from ACE_DLL::error().
- This is a running version tested using CC compiler too.
-
-Tue Nov 24 17:45:26 1998 Steve Huston <shuston@riverace.com>
-
- * netsvcs/clients/Naming/Dump_Restore/Makefile: Added a LIBS +=
- $(ACELIB) to help this build on AIX. Thanks to Jon Lindgren
- <jlindgren@SLK.com> for reporting this problem.
-
- * README: Added Jon Lindgren to the contributor's list. Welcome, Jon!
-
-Tue Nov 24 09:34:58 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_chorus.GNU: added support for
- exceptions=0/1 make option. Thanks to Wei Chiang for
- requesting this.
-
- * include/makeinclude/platform_chorus_ghs.GNU: removed
- trailing / from MVME_DIR definition.
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: added
- optimize=1, to enable optimization by default.
-
- * performance-tests/Misc/context_switch_time.cpp (main):
- don't print suspend-resume results if the suspend-resume
- test isn't run (because thr_suspend isn't supported).
- Process command line options before calulating hi-res timer
- scale factor.
-
- * ace/OS.h: replaced ENOTSUP with EDEADLK in a comment,
- to fix a copy-and-paste error.
-
- * ace/Stats.* (mean): removed caching. It didn't account for
- the fact that it could be called with different scale
- factors. (std_dev): fixed sum_of_squares calculation to
- always use 64-bit arithmetic. (print_summary): if the
- std dev calculation overflows, retry with smaller scale
- factor, until 0 is reached.
-
- * tests/Conn_Test.cpp: replaced #include of ace/Auto_Ptr.h,
- because ACE_Auto_Basic_Array_Ptr is used.
-
-Mon Nov 24 03:30:36 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/DLL_Wrapper_Test.cpp: Added a test example for the DLL
- wrapper class.
-
- * tests/Makefile: Added an entry for DLL_Wrapper_Test example.
-
-Mon Nov 23 23:49:36 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/DLL.h: Made the default value of the close_on_destruction
- equal to 1.
-
- * ace/DLL.cpp (~ACE_DLL): Checked whether the member variable,
- close_on_destruction_ is non-zero instead of comparing it to 1.
-
-Mon Nov 23 21:14:22 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/DLL.h (ACE_DLL): Set the default of close_on_destruction to
- 1 instead of 0.
-
- * ace/DLL.cpp (~ACE_DLL): In the close operation, made a check for
- whether the close_on_destruction_ flag was equal to 1 instead of
- 0.
-
- * ace/DLL.cpp (get_handle): Made the close_on_destruction_ flag
- equal to 0 when it gets orphaned as now the new owner has to
- explicitly close the library.
-
-Mon Nov 23 20:29:52 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/DLL: Cleaned up the comments and also fixed an unnecessary
- check to see if dll_name == 0.
-
-Mon Nov 23 10:20:22 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/DLL.h: Added a comment which specified that by default the
- library would be closed before the ACE_DLL object gets
- destroyed.
-
- * ace/DLL.cpp (get_handle): Changed the value for the member
- variable, close_on_destruction_ to 1 on orphaning the handle
- and giving it to the new owner.
-
-Mon Nov 23 17:14:40 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_proactor.cpp (open): It is even
- more neat to do this for faking the result.
- // <complete> for Accept would have already moved the <wr_ptr>
- // forward. Update it to the beginning position.
- duplicate.wr_ptr (duplicate.wr_ptr () - bytes_transferred);
-
-Mon Nov 23 17:16:46 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h: Set the value of ACE_SHLIB_INVALID_HANDLE to 0 for HP.
- Thanks to Steve Huston <shuston@riverace.com> for providing this
- information.
-
-Mon Nov 23 16:16:26 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_proactor.cpp: Updated the code to
- show that adjusting wr_ptr () to the place of rd_ptr () is the
- better way to fake results properly. Thanks to "James A. Risinger"
- <james@tsunami.com> for reporting this problem.
-
-Mon Nov 23 12:58:47 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/ASX/Message_Queue,
- tests:
- Replaced the improper (though technically correct) use of the
- rd_ptr() with wr_ptr(). Thanks to Susan Liebeskind
- <susan.liebeskind@gtri.gatech.edu> for reporting this.
-
-Mon Nov 23 10:47:38 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/generate_man_pages: added this script, which generates
- the ACE man and html pages.
-
- * Makefile (release): added call to bin/generate_man_pages.
-
-Sun Nov 22 22:58:39 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SPIPE_Addr.h: Replaced the use of an anonymous struct so
- that class2man will be happy. Thanks to David Levine for
- reporting this.
-
-Sun Nov 22 22:07:04 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Functor*: removed trailing // EOF because class2man choked
- on it.
-
-Sun Nov 22 14:36:26 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_proactor.cpp (open): Updated the
- test to show the correct way to 'fake' <complete> call.
-
-Sun Nov 22 13:57:28 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Makefile: Added Env_Value_T to the TEMPLATE_FILES macro in
- the Makefile. Thanks to Ossama for reporting this.
-
-Sat Nov 21 14:32:53 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/DLL: Cleaned up the DLL logic to handle "close on
- destruction" properly.
-
-Sat Nov 21 08:34:44 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: added ACE_LACKS_IP_ADD_MEMBERSHIP, for internal
- use only. If IP_ADD_MEMBERSHIP isn't defined, ACE defines
- ACE_LACKS_IP_ADD_MEMBERSHIP for subsequent use in
- determining whether to define ip_mreq.
-
- * bin/html-windex: updated to match Doug's ~/bin version.
-
-Fri Nov 20 00:58:35 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/DLL.h (ACE_DLL): Added a new constructor which allows auto
- opening of the dynamically linked library.
-
- * ace/DLL.h (get_handle): Added a method which returns teh handle
- to the user.
-
- * ace/DLL.cpp (ACE_DLL): Added the auto-open feature taking care
- of more than one open calls.
-
- * ace/DLL.cpp (get_handle): The orphan flag decides whether the
- handle is orphaned or given to the user temporarily.
-
- * ace/DLL.cpp (open): Added a check so that a already existing
- handle is closed before the next open is done.
-
-Fri Nov 20 23:40:12 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/00[567]/client_handler.cpp :
- * docs/tutorials/00[56]/page0[45].html
- * docs/tutorials/007/page0[56].html
- Rework the interaction of handle_input(), handle_close() and
- close(). I had this all wrong by making handle_close() invoke
- remove_handler() when it was unnecessary.
-
-Fri Nov 20 22:12:03 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Makefile: Added an entry for DLL.{h,cpp}.
-
-Fri Nov 20 15:49:04 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h: Added ACE_SHLIB_INVALID_HANDLE which is used to
- indicate a invalid shared library handle.
-
- * examples/Reactor/WFMO_Reactor/test_handle_close.cpp: This
- application tests whether handle_close() gets called and if the
- correct masks are passed along. The handler should get
- handle_close() called for all three masks (READ, WRITE, and
- EXCEPT).
-
- * ace/WFMO_Reactor.cpp (remove_handler_i,
- remove_suspended_handler_i, and remove_to_be_added_handler_i):
- There was a bug in WFMO_Reactor where handle_close() was not
- called when it is not a complete removal. Added a call to
- handle_close() for all the masks that were removed. Note that
- partial removals do not change the state of the internal tables
- of the reactor.
-
- * ace/OS.i (recvfrom): There is a bug in the Win32 implementation
- of this function. It reports an error (with errno=WSAEMSGSIZE),
- even MSG_PEEK is specified, when the message was too large to
- fit into the specified buffer and was truncated. So we fixed it
- by returning the length of the recv request when
- errno=WSAEMSGSIZE and the MSG_PEEK flag was specified.
-
-Fri Nov 20 11:15:40 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: changed comment to use
- -D_POSIX_PTHREAD_SEMANTICS to specify POSIX threads only.
- Just commenting out ACE_HAS_STHREADS in insufficient.
- See the Intro (3) man page for information on
- -D_POSIX_PTHREAD_SEMANTICS; it's the Sun-recommended
- way to specify use of POSIX threads. Thanks to
- Rich Christy <rchristy@cccis.com> for pointing out that
- removal of ACE_HAS_STHREADS doesn't work.
-
- * ACE-INSTALL.html: added notes on thread flavors on Solaris.
-
- * include/makeinclude/platform_sunos5_g++.GNU: added support
- for threads=0.
-
- * ace/OS.cpp (thr_create): added static cast of PTHREAD_STACK_MIN
- to size_t, to avoid signed/unsigned comparison on
- g++ 2.7.2.3/Solaris86 2.6.
-
-Thu Nov 19 23:04:37 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Functor.h (ACE_Command_Base): Added missing ACE_Export.
-
-Thu Nov 19 18:01:00 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/DLL.cpp (ACE_DLL): Made base-member initialisation change
- to member variable close_mode_.
-
-Thu Nov 19 10:28:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Misc/context_switch_time.cpp: fixed 64-to-32
- bit casts to work with unsigned 64 bit ACE_hrtime_t on NT.
-
-Wed Nov 18 20:56:38 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/DLL.{cpp,h} (ACE_DLL): Added the close-on-destruction
- feature in the constructor of the ACE_DLL class.
-
-Thu Nov 19 00:18:26 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (strnstr): Added a check to see if the substring is
- longer than the string being searched. Fixed both the char and
- wchar_t versions in OS.i and the ACE_USHORT16 version in
- SString.cpp. Thanks to Knut Johannessen <knutj@funcom.com> for
- pointing out the bug and providing a fix.
-
- * ace/SString.i (find): The argument to strnstr() should be the
- length of <s> instead of <this->len_ - pos>.
-
- * tests/SString_Test.cpp (main): Added tests to make sure that
- find() and strstr() work even when the substring is longer that
- the original string.
-
- * ace/Timeprobe_T.h (ACE_Timeprobe): Added accessors to the class
- so that the user can get to the internals. This allows the
- users to format the output of collecting the timeprobes
- according to their liking.
-
-Wed Nov 18 15:51:42 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.h (ACE_UINT64_DBLCAST_ADAPTER): on other
- than Win32 and without ACE_LACKS_LONGLONG_T, wrapped the
- "n" macro definition with parenthesis, to avoid insidious
- errors in equations due to removing the grouping. g++ 2.7.2.3
- noticed this on the latest context_switch_time.cpp.
-
- * ace/Svc_Handler.cpp (cleanup_hint): fixed ACE_TRACE string.
-
- * *.cpp: changed include protection from #if !defined to ifndef.
- Added #pragma once, if possible, i.e., after #include of
- an ace/ header. It can only be done after ace/config.h
- is included, because some platforms don't allow #pragma once.
-
-Wed Nov 18 15:54:09 EST 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/007/client_handler.cpp
- * docs/tutorials/007/page06.html
-
- Jeff Donner (jdonner@schedsys.com) points out that Susan Liebskind's
- fix to Tutorial 6 should also be applied to this one.
-
- The fix is:
- Don't call baseclass close() from Client_handler::close(). Doing
- so will result in double-delete of the handler object.
-
-Wed Nov 18 00:25:08 1998 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/DLL.{h,cpp} (ACE_DLL):
- Wrapper for dynamically linked library operations.
-
-Tue Nov 17 11:15:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * tests/version_tests/RB_Tree_Test.dsp
- tests/version_tests/version_tests.dsw : created RB_Tree_Test project
- for NT version tests and added it to version tests workspace.
-
-Tue Nov 17 10:15:10 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Map_Manager.cpp (resize_i): Made sure the new elements in
- resize_i get constructed properly so we can use more complex
- classes with it. Thanks to Knut Johannessen <knutj@funcom.com>
- for providing the patch. Also changed to use copy constructor
- to move data across rather than construct/assign pair.
-
-Tue Nov 17 09:37:32 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-common.h: removed
- ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR because it caused compilation
- failure with egcs 1.0.2.
-
- * ace/config-g++-common.h: added ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR,
- with egcs >= 1.1 only. Thanks to James Johnson for helping
- to sort this out.
-
- * ace/config-osf1-4.0.h: moved ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
- from common area to DEC CXX area, because config-g++-common.h now
- handles g++.
-
- * ace/IOStream_T.i (eof): fixed return value calculation
- logic. Thanks to Arturo and James Johnson for providing
- and verifying the fix.
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU:
- added -DVXWORKS to CFLAGS, because GHS 1.8.9 needs it.
- (GHS 1.8.8 had a built-in processor define for it. Adding
- -DVXWORKS doesn't seem to bother 1.8.8.) Thanks to Steve
- Kay <slk1@icore.ih.lucent.com> for reporting this.
-
- * ace/OS.h: even if ACE_HAS_IP_MULTICAST is not defined, if
- IP_ADD_MEMBERSHIP is defined, assume that the ip_mreq struct
- is also defined (presumably in netinet/in.h). This allows
- compilation to succeed on GHS 1.8.9/VxWorks. Thanks to
- Steve Kay <slk1@icore.ih.lucent.com> for reporting it.
-
-Tue Nov 17 09:12:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/SString.{h, i}: added < , > operators to string classes
-
- * apps/JAWS/PROTOTYPE/HTTPU/http_headers.cpp
- tests/RB_Tree_Test.cpp: added missing template instantiations
-
- * tests/Makefile
- tests/run_tests.sh : added RB_Tree test to UNIX makefile, test script
-
-Mon Nov 16 17:55:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Functor_T.{h, i}
- ace/RB_Tree.{cpp, h, i} : added less-than comparison functor
- (aka function object aka GOF Command Pattern) to allow ACE_RB_Tree
- to be used with key types that do not support a < operator.
- Thanks to Mark De Jong <mdj@intervu.net> for reporting the less-than
- problem and suggesting part of the solution. Also cleaned up class
- naming and comments to conform to ACE coding standards, fixed an
- access violation that occurred when deleting items from a tree.
-
- * tests/RB_Tree_Test.{cpp, dsp}
- tests/run_tests.bat
- tests.dsw: Added a test to verify correct tree
- behavior under insertion and deletion for different key and item
- types and insertion orders.
-
- * apps/JAWS/PROTOTYPE/HTTPU/http_headers.{cpp, h}: Changed type names
- for ACE_RB_Tree and associated classes.
-
-Sun Nov 15 16:34:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h,config-linux-common.h: added
- ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR #define. Thanks to
- James Johnson for reporting that it is necessary.
-
- * ace/config-kcc-common.h: removed commented-out
- ACE_HAS_BROKEN_EXPLICIT_TEMPLATE_DESTRUCTOR #define.
-
-Sun Nov 15 12:40:35 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/018/*
- * docs/tutorials/online-tutorials.html
- A new tutorial on ACE_Token.
-
-Sun Nov 15 12:10:39 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/013/*
-
- A few more tweeks now that the sun is up. Mostly simple
- documentation changes but a couple of cleanups on the code as well.
-
-Sat Nov 14 23:15:58 EST 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/013/message_queue.cpp
- docs/tutorials/013/block.cpp
- docs/tutorials/013/block.h
- docs/tutorials/013/combine.shar
- docs/tutorials/013/*.html
-
- Something changed between 4.5.x and 4.6 with the calling
- order for ACE_Lock_Adapter<>::release() and ::destroy().
-
- Specifically: In the older release, the data block's
- lock was being held across its destruction. That required
- some odd things to prevent the lock's deletion until it
- was released.
-
- In the new version, it appears that release() is called
- on the lock before the data block's destructor is called.
- Data_Block::Lock::destroy() can now simply 'delete this'
- The funky destroy_ flag is no longer necessary.
-
- Thanks to Bob McWhirter <bob@werken.com> for causing me
- to look back on this and get it fixed.
-
- I've also taken this opportunity to convert the tutorial
- to the new style colorized HTML.
-
-Sat Nov 14 22:01:52 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release (diff): fixed logic that determines
- when to use ../diffs/ instead of diffs/. Thanks to
- Doug for reporting this.
-
-Sat Nov 14 14:21:49 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.4 released.
-
-Fri Nov 13 12:03:18 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-sgic++.h:
- * ace/config-irix6.x-sgic++-nothreads.h:
- Under some versions of IRIX 6.X the readdir_r() prototype does
- not show up unless threads support (actually POSIX1c support) is
- enabled. I've change the config file to only use readdir_r() if
- threads are enabled. Thanks to Bob Olson <olson@mcs.anl.gov> for
- reporting this problem.
-
-Fri Nov 13 08:55:18 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Pipe_Test,Process_Mutex_Test.cpp: wrapped some variables
- and functions with #ifndef ACE_LACKS_FORK, to avoid warnings
- on g++/VxWorks.
-
-Thu Nov 12 09:07:28 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: use ../diffs if building ace+tao kit, so
- we no longer need a ../diffs symlink in TAO directory. Thanks
- to Hans Rohnert <rohnert@scr.siemens.com> for motivating this.
-
- * ace/README: removed ACE_LACKS_STREAM_MODULES. Thanks to
- Ossama for reporting that it's no longer used.
-
-Wed Nov 11 23:11:15 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * bin/ACEutils.pm: Updated to include $EXEPREFIX, which is used
- in front of executables in the run_test.pl's.
-
-Wed Nov 11 01:08:32 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added a link to Ossama's ACE Configuration
- Project.
-
-Tue Nov 10 22:29:00 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.3 released.
-
-Tue Nov 10 22:24:59 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * docs/tutorials: Integrated Umar's code examples from
- the ACE programmers manual.
-
-Tue Nov 10 21:53:01 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Process.cpp: added const to loop index, in CHORUS code.
-
-Tue Nov 10 19:27:32 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.[i,cpp]:
- Added checks for ACE_HAS_WINNT4 != 0 when checking for
- ACE_HAS_WINNT4 like we do elsewhere. Thanks to Valery
- Arkhangorodsky <avalery@balisoft.com> for pointing this out.
-
-Tue Nov 10 14:56:38 EST 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/index.html
- Including #17 now
-
- * docs/tutorials/017/*.html
- docs/tutorials/017/combine.shar
- Completed! Commented and converted into standared Tutorial format.
-
-Tue Nov 10 10:09:06 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Env_Value_Test.cpp (main): replaced hard-coded "/" with
- ACE_DIRECTORY_SEPARATOR_STR.
-
- * ace/config-vxworks5.x.h: removed ACE_HAS_VERBOSE_NOTSUP #define.
- Thanks to Margherita Vittone Wiersma <vittone@fndaub.fnal.gov> and
- Ramiro Penataro Blanco <penataro@ll.iac.es> for complaining
- about it.
-
-Mon Nov 9 23:27:59 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/ASX/Message_Queue/buffer_stream.cpp (main): Fixed an
- off-by-one bug. Thanks to Rainer Blome
- <rainer_blome@de.ibm.com> for reporting this.
-
-Mon Nov 09 21:31:56 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Env_Value_Test.cpp (main): prepended "./" to name of
- file to spawn. With the last round of changes to
- ace/Process.cpp, that's necessary if "." isn't in the user's
- PATH. That's because we're now using only execvp, and no
- longer using execve.
-
- * tests/Atomic_Op_Test.cpp,Barrier_Test.cpp,Buffer_Stream_Test.cpp,
- Future_Test.cpp,IOStream_Test.cpp,MT_Reactor_Timer_Test.cpp,
- Map_Manager_Test.cpp,Message_Block_Test.cpp,
- Message_Queue_Notifications_Test.cpp,Notify_Performance_Test.cpp,
- Pipe_Test.cpp,Priority_Buffer_Test.cpp,Priority_Task_Test.cpp,
- Process_Mutex_Test.cpp,Reactor_Exceptions_Test.cpp,
- Reactor_Notify_Test.cpp,Reactor_Performance_Test.cpp,
- Reactors_Test.cpp,Reader_Writer_Test.cpp,SPIPE_Test.cpp,
- SV_Shared_Memory_Test.cpp,Semaphore_Test.cpp,TSS_Test.cpp,
- Task_Test.cpp,Thread_Manager_Test.cpp,Thread_Mutex_Test.cpp,
- Thread_Pool_Reactor_Test.cpp,Thread_Pool_Test.cpp,
- Tokens_Test.cpp,UPIPE_SAP_Test.cpp,Upgradable_RW_Test.cpp,
- XtReactor_Test.cpp:
- changed Log_Priority of "not supported" messages to LM_INFO.
- Hopefully, it will help avoid confusion, especially among
- new ACE users. Thanks to Gonzo for suggesting this.
-
- * tests/run_tests.sh: added ACE version number printouts.
-
- * BUG-REPORT-FORM: added phase (compilation/linking/execution/other),
- and ACE+TAO/application/both.
-
-Mon Nov 9 02:52:11 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Signal.cpp: handle_close() wasn't being called when
- handle_signal() returns -1. It is now... Thanks to Vicentini
- Emanuele <arena.sci.univr.it> for reporting this.
-
- * ace/Event_Handler.h (ACE_Event_Handler): Added a SIGNAL_MASK so
- that we can pass this to handle_close() when handle_signal()
- returns -1.
-
- * README: Fixed a typo where ACE-install.html was misspelled as
- ACE-Install. Thanks to Michael Thomas
- <Michael.Thomas@Australia.Boeing.com> for reporting this.
-
-Sun Nov 08 22:00:22 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Message_Block.h: changed ACE_Message_Type to int, to
- avoid overload ambiguity when it's unsigned.
-
-Sun Nov 8 10:42:38 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Block.h: Changed the ACE_Message_Type from being an
- enum to being an ACE_UINT32 so that it's easier for users to add
- their own message types to an ACE_Message_Queue. Thanks to
- Martin Krumpolec <krumpo@pobox.sk> for this suggestion and to
- David Levine for catching that it should be an ACE_UINT32.
-
-Fri Nov 6 23:08:16 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process.cpp (spawn): Set result correctly when execvp() is
- called. Also, make sure to check for putenv() failing. Thanks
- to David Levine for pointing this out.
-
- * tests/Env_Value_Test.cpp: Reformatted the test a bit.
-
-Fri Nov 06 22:41:21 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Process.cpp (spawn): initialized local "result" to 0
- to avoid egcs warning about possible unitialized use. Added
- const to loop index to avoid egcs warning about discarding
- const.
-
- * ace/OS.h,Basic_Types.h: moved ACE_UINT64_FORMAT_SPECIFIER from
- OS.h to Basic_Types.h, because other 64-bit int support is
- there. Changed default ACE_UINT64_FORMAT_SPECIFIER to
- "%llu", because that's what Solaris 2.x uses.
-
- * ace/config-win32-common.h,ace/config-linux-common.h: added
- ACE_UINT64_FORMAT_SPECIFIER overrides.
-
- * ace/Log_Msg.cpp (log): added ACE_U_LongLong support.
-
-Fri Nov 6 13:29:11 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h (ACE_UINT64_FORMAT_SPECIFIER): Changed
- #define ACE_UINT64_FORMAT_SPECIFIER "%I64d"
-
- to:
-
- #define ACE_UINT64_FORMAT_SPECIFIER "%I64u"
-
- to handle the signed/unsigned stuff correctly. Thanks Zoran!
-
- * ace/Process.cpp (spawn): Replaced the use of execve() with
- execvp() by copying the environment variables manually first.
- Thanks to Avi Nash for this fix.
-
- * ace/Log_Msg.cpp (log): Added support for a `%Q' format specifier
- to the log() method. This prints out quad words, i.e.,
- ACE_UINT64's. Thanks to Zoran Ivanovic <zorani@pathcom.com> for
- contributing this.
-
- * Updated the "site map" for ACE so that it doesn't use absolute
- links. Thanks to Rainer Blome <rainer_blome@de.ibm.com> for
- contributing this.
-
- * ace/Process.h: Clarified the behavior of ACE_Process and
- ACE_Process_Options on UNIX because of the use of execve(),
- which doesn't search the path. Thanks to Avi Nash for reporting
- this.
-
-Fri Nov 06 15:01:20 1998 Rainer Blome <rainer_blome@de.ibm.com>
-
- * tests/run_tests.sh: augmented to make, run, and discard
- each test for which it doesn't find an executable.
-
- Thus, if you first say make to build the executables, all tests
- will just run (or not ;-), nothing is changed.
-
- If you start run_tests.sh without having built the executables,
- it will make, run and discard the tests one by one instead.
- Any compiler output goes to log/compilation.log.
-
-Fri Nov 06 12:58:24 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp: Removed several superfluous parens so
- the code looks clearer and less error-prone.
-
-1998-11-06 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/013/block.cpp
- * docs/tutorials/013/page05.html
- * docs/tutorials/015/Compressor.cpp
- * docs/tutorials/015/Crypt.cpp
- * docs/tutorials/015/Recv.cpp
- * docs/tutorials/015/Xmit.cpp
- * docs/tutorials/015/*.html
- Susan Liebeskind (susan.liebeskind@gtri.gatech.edu) discovered
- that you can't use the 'inherited' typedef to initialize a
- baseclass if you use the AIX C++ compiler.
-
-Fri Nov 06 08:57:49 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Mem_Map_Test.cpp (reverse_file): put the volatile
- qualifier back in. LynxOS 3.0.0/PowerPC needs it with -O2
- and without ACE_HAS_INLINE.
-
- * VERSION: added reference to BUG-REPORT-FORM. Thanks to
- Peter Nordlund <petern@nada.kth.se> for providing the new
- text.
-
- * ace/SOCK_Dgram_Mcast.cpp (unsubscribe): fixed ACE_TRACE
- string.
-
- * ACE-INSTALL.html: added note on possibly having to change
- -G to -shared in platform_macro.GNU's SOFLAGS with GNU linker.
- Thanks to Andy Gokhale and James Megquier <jmegq@bbn.com> for
- reporting this. If anyone knows of an automagic fix, that would
- be appreciated.
-
- * ACE-INSTALL.html: added note on how to enable IP multicast on
- LynxOS.
-
-Thu Nov 5 23:10:46 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (wait_task): Fixed a wrong parenthesis
- pair. Thanks to Bob McWhirter <bob@werken.com> for figuring
- this out.
-
-Thu Nov 5 21:41:26 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/017
- Began the ACE_Barrier tutorial. So far, it's just code but I'll
- add the usual heavy comments & commentary in the next few days or
- so. I'll update the docs/tutorials/index.html after that.
-
-Thu Nov 5 14:42:59 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ACE-INSTALL.html: Cleaned up a typo in the ACE-INSTALL.html
- file. Thanks to James Megquier <jmegq@bbn.com> for reporting
- this.
-
- * ace/config-sunos5.5.h: Cleaned up the comments a bit to make it
- more clear how to enable/disable threads. Thanks to Russ
- Noseworthy <rnosewor@objectsciences.com> for reporting this.
-
- * ace/Stream.h: Clarified some subtleties with subclassing from
- ACE_Stream. Thanks to Stephen Coy for reminding me of this.
-
- * include/makeinclude: Updated the platform_linux_kcc.GNU file.
- Thanks to Joseph Weihs <joseph-w@Orbotech.Co.IL> for reporting
- this.
-
- * ACE.FAQ.html: Pointed out that ACE is Y2K compliant. Thanks to
- Fredrik Lindahl <fredrik.lindahl@ausys.se> for suggesting this.
-
-Thu Nov 05 13:23:29 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_lynxos.GNU: default VERSION
- to 3.0.0. We no longer build/test for LynxOS 2.5.0. Added
- usage comments.
-
- * ACE-INSTALL.html: for LynxOS, added link to platform_lynxos.GNU
- file, for usage information. Replaced some absolute paths in
- URLs with relative paths.
-
-Wed Nov 4 23:28:55 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Stream.h: Made all the methods of ACE_Stream virtual to
- enable subclasses. Thanks to Bob McWhirter's for this
- suggestion.
-
-Tue Nov 3 16:06:23 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Logger/simple-server: Fixed the server so that it shuts
- down cleanly when ^C is given. Thanks to Avi Nash
- <anash@RedBrick.COM> for reporting this.
-
-Tue Nov 03 13:17:49 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.{h,i,cpp} (thread_desc_self): Changed this
- method to an inline function. Removed outdated comments and
- instead of searching thru the list when the current thread's
- descriptor is not found in TSS cache, place an assertion there
- for this should never happen. Thanks to Terry Rosenbaum
- <Terry.Rosenbaum@Radiology.MSU.edu> for motivating the change.
-
-Mon Nov 2 22:54:08 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/config-win32.h:
- * ace/config-win32-common.h:
- Only define ACE_LACKS_RECVMSG/SENDMSG for non-WinSock2 systems.
- Before, it was being defined for all non-NT configurations.
- Thanks to Irfan for suggesting this change.
-
-Mon Nov 2 18:18:04 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Reactor/Dgram/CODgram.cpp,
- examples/Reactor/Dgram/Dgram.cpp:
- Fixed these programs so that they will work across
- processes/machines, as well as within the same process. Thanks
- to Larry <larry@paradigmsim.com> for reporting this.
-
- * Added a "site map" for ACE. Thanks to Rainer Blome
- <rainer_blome@de.ibm.com> for contributing this.
-
-Mon Nov 2 18:13:29 EST 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/ACE-FMM.html
- Updated from Bob's <bob@netwrench.com> latest.
-
-Mon Nov 02 11:22:30 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Test.{h,cpp}: Renamed Acceptor_Handler to
- Request_Handler to better reflect what the class actually does.
-
- * docs/ACE-categories.html: Fixed erroneous html tags. Thanks to
- Rainer Blome <rainer_blome@de.ibm.com> for reporting this.
-
-Mon Nov 02 00:26:59 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace: Since connectors really don't have any state, they don't
- need to inherit from the SAP classes. Therefore, modified the
- following to be simpler:
-
- TLI_Connector
- DEV_Connector
- SPIPE_Connector
- UPIPE_Connector
-
-Sun Nov 01 21:18:24 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (upcall): Before handle_input is called
- because of FD_CLOSE, we check the return value of handle_input
- because of FD_READ. If the user had returned -1, we won't call
- handle_input again. Thanks to Gonzalo Diethelm
- <Gonzalo.Diethelm@jda.cl> for suggesting this change.
-
- * examples/Reactor/WFMO_Reactor/test_network_events.cpp
- (handle_input): Changed this method to keep reading from the
- socket until EWOULDBLOCK occurs.
-
-Sun Nov 1 17:32:50 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Hash_Map_Manager_Test.cpp (run_test): Oops, we need to
- account for compilers that lack template specialization! Thanks
- to David Levine for reporting this.
-
-Sun Nov 01 17:24:56 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-win32-borland.h,config-win32-common.h,README:
- removed ACE_LACKS_STL_DEFAULT_TEMPLATE_PARAMETER because
- it's no longer used. Thanks to Ossama for reporting this.
-
-Sun Nov 01 08:54:08 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.2 released.
-
-Sat Oct 31 18:12:36 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Hash_Map_Manager_Test.cpp (run_test): updated the test to
- validate that the trybind() operation works correctly. Thanks
- to Bill Fulton <fultonb@pcnet1.ascs.aro.allied.com> for this
- fix.
-
- * ace/Hash_Map_Manager.cpp: trybind() was doing the "Wrong
- Thing"[TM] by overwritting the INT_ID even if the entry was
- already in the map! It's fixed now... Thanks to Bill Fulton
- <fultonb@pcnet1.ascs.aro.allied.com> for reporting this.
-
-Sat Oct 31 17:15:42 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.1 released.
-
-1998-10-31 Nagarajan Surendran <naga@polka.cs.wustl.edu>
-
- * ace/Select_Reactor_T.cpp (dispatch): Added signal_occurred at
- the right return to indicate that a handle_signal () has been
- dispatched.
-
-Fri Oct 30 20:31:27 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/Semaphore_Test.cpp: Cleaned up the #if's to make it easier
- to understand, and fixed a related problem. Thanks to
- Ossama for finding this.
-
-Fri Oct 30 15:47:39 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Select_Reactor_T.cpp (dispatch): Make sure to include a
- count of 1 if the Reactor dispatched a handle_signal() method.
- This ensures we don't return 0 from handle_events() in cases
- where we didn't timeout... Thanks to Naga for chasing this
- down!
-
-Fri Oct 30 11:53:16 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.6.h: removed ACE_HAS_POSIX_SEM #define because
- it caused a seg fault in Reactor_Notify_Test on
- g++ 2.7.2.3/Solaris86 (with -D_POSIX_C_SOURCE=199506L
- -D_POSIX_PTHREAD_SEMANTICS -D__EXTENSIONS__). The seg fault is
- at the end of the test:
-
- #0 0xdfd5a809 in realfree ()
- #1 0xdfd5ad16 in cleanfree ()
- #2 0xdfd5a43a in _malloc_unlocked ()
- #3 0xdfd5a2e9 in malloc ()
- #4 0xdfd61a25 in _strdup ()
- #5 0xdfeffcd5 in ACE_Log_Msg::log (this=0x8052ec0,
- format_str=0x804f0af "(%P|%t) Ending %s test at %D\n",
- log_priority=<error type>,
- argp=0x80476ac "\nð\004\bÔÀÿß\177\023\004\bÔv\004\b§¹\004\b\001")
- at /export/home/conga/levine/ACE_wrappers/ace/OS.i:1399
- #6 0xdfeffbfa in ACE_Log_Msg::log (this=0x8052ec0,
- log_priority=<error type>,
- format_str=0x804f0ac "d\n") at Log_Msg.cpp:601
- #7 0x804c935 in main () at Reactor_Notify_Test.cpp:297
-
- It's hard to imagine how ACE_HAS_POSIX_SEM could cause that.
- But, it's perfectly repeatable. And, we can live without
- ACE_HAS_POSIX_SEM.
-
- * tests/run_tests.sh: really commented out Thread_Pool_Reactor_Test.
- It _wasn't_ commented out in the 4.6 release.
-
- * tests/Mem_Map_Test.cpp (reverse_file): removed volatile
- qualifier because it no longer seems to be necessary for LynxOS
- 3.0.0/PowerPC.
-
-Fri Oct 30 09:23:55 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SString.h: Cleaned up the ACE_SString comments to be more
- helpful. Thanks to Ivan Murphy <Ivan.Murphy@med.siemens.de> for
- motivating this.
-
-Thu Oct 29 22:19:19 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/ACE-FMM.html:
- Updated from Bob's latest version. Thanks Bob!
-
-Thu Oct 29 21:13:41 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/016/Condition_i.cpp:
- Fixed messed-up the signature on
- Condition::operator Condition::value_t(void)
-
-Thu Oct 29 18:51:19 1998 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp: Added "|| defined (_AIX)" to decision to do
- template instantiations at end of file. Thanks to Ian
- Wright <I.Wright@elsevier.co.uk> for this fix.
-
- * ace/config-aix-4.1.x.h: Added ability to use g++ in addition to xlC.
- Thanks again to Ian Wright for this addition.
-
- * include/makeinclude/platform_aix_g++.GNU: New platform_macros file
- for building on AIX with g++. And, once again, thanks to Ian Wright
- for this contribution.
-
- * ace/NT_Service.i: Added ACE_INLINE to the methods in this file.
- Thanks to Goran Lowkrantz <Goran.Lowkrantz@infologigruppen.se>
- for this fix.
-
-Thu Oct 29 17:36:29 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/Semaphore_Test: Removed the timed acquire stuff from
- the worker thread and the display at the end of the test.
- Now it shouldn't output the confusing "100% of threads
- timed out" message on platforms without timed acquire.
-
-Thu Oct 29 15:25:19 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Svc_Handler.cpp (open): Added a trailing newline to the
- error message.
-
-Thu Oct 29 15:13:07 EST 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/index.html
- * docs/tutorials/016/*
- Added Tutorial 016. This discusses ACE_Condition<> and ways
- to make it more manageable in an application.
-
-Thu Oct 29 11:44:21 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.6.h: changed ACE_THREAD_POSIX_SEM to
- ACE_HAS_POSIX_SEM. It looked like a typo.
- Only #define ACE_HAS_POSIX_SEM if _POSIX_PTHREAD_SEMANTICS is
- #defined. Thanks to Ossama for help with this.
-
- Also, removed ACE_HAS_PTHREADS_STD because it's
- #defined in config-sunos5.5.h.
-
-Wed Oct 28 14:30:01 1998 Rainer Blome <rainer_blome@de.ibm.com>
-
- * ace/Makefile: added AIX_TEMPLATE_HACK support.
- This patch helps using Rob Jordan's trick described in the
- ACE-INSTALL file. The existing description in the ACE-INSTALL
- is a little misleading. Creating a ACE_All_Tmp.h will not
- really help, because the Makefile will look for a ACE_All_Tmp.cpp.
-
- Here's how to use the patch:
-
- Use `make ACE_All' to create 0_ACE_All_Src.h, 0_ACE_All_Src.cpp and
- 0_ACE_All_Tmp.cpp. These files contain include directives for each
- of the files mentioned in the makefile variables FILES and
- TEMPLATE_FILES. Then `make AIX_TEMPLATE_HACK=1' to compile the
- library in one go. Compilation is fast then, but `ar' will still
- take a long time.
-
-Wed Oct 28 09:13:10 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: expanded discussion of non-static
- ACE_Object_Manager, including the fact that it's the
- default config on Win32 and VxWorks. And that not
- declaring main () with two arguments will lead to
- link failure due to unresolved ace_main_i.
-
- * tests/Time_Service_Test.cpp,Tokens_Test.cpp: display
- filename if ACE_Process::spawn () fails.
-
- * tests/run_tests.sh: only run Time_Service_Test if
- ../netsvcs/server/main exists. Also, exit if a command
- line argument is provided to run_tests.sh, and the argument
- is not a Chorus hostname.
-
- * ace/Object_Manager.h: declare the ACE_Object_Manager_Base
- methods to be public, instead of protected, for DEC CXX 5.6
- (in addition to Diab for PSoS). Thanks to Doug Anderson
- <doug@clark.net> for suggesting this.
-
- * ace/config-sunos5.5.h: removed ACE_HAS_TIMER_SKEW. Thanks
- to Russ Noseworthy <rnosewor@objectsciences.com> for verifying
- that it no longer seems to be necessary.
-
- * ace/config-linux-common.h: added ACE_HAS_PROCFS.
-
-Tue Oct 27 22:14:18 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.6 released.
-
-Tue Oct 27 21:54:17 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * man: Added the ACE_Service_Repository_Iterator.{html,3} files.
- Thanks to Erik Koerber <erik.koerber@siemens.at> for reporting
- this.
-
- * Updated the manual pages to reflect the latest APIs in
- the new release.
-
-Tue Oct 27 14:16:27 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/015/Recv.cpp : Changed atoi() to ACE_OS::atoi()
- * docs/tutorials/015/page22.html: Ensure that the correct cpp
- and header files are HREF'd
-
- Thanks to Susan Leibeskind <shl@cc.gatech.edu> for catching these.
-
-Tue Oct 27 12:31:28 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (cond_timedwait): Made sure the broadcaster always gets
- signaled no matter what the "wait" function return if this is
- the last waiter for this cv. In any case, the calling thread is
- no longer waiting on the cv any more.
-
-Tue Oct 27 08:22:41 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-win32.h: fixed typo in comment:
- ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER instead of
- ACE_DONT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER. Thanks to
- Olivier Lau <olivier_lau@srtelecom.com> for reporting this.
-
- * tests/Semaphore_Test.cpp (test_timeout_count,test_timeout):
- put these in #ifndef STHREADS && #ifndef POSIX_SEM protection
- to avoid compiler warnings about unused variable/function.
-
- * ace/config-sunos5.5.h: added comment to comment out
- ACE_HAS_REGEX if there are link problems with g++ or egcs on
- SunOS 5.5. Thanks to Hakan Kallberg <hk@simulina.se> for
- reporting this.
-
- * ACE-INSTALL.html: added Sun C++ version/patchlevel information,
- including a link to Sun's tech patches home patch. Thanks to
- Susan for recommending this, and for providing the URL.
-
- * ACE-INSTALL.html: added note about segfault when attempting to
- register a signal handler on LynxOS 3.0.0/PowerPC.
-
- * ace/Object_Manager.cpp (fini): added check of
- instance_->shutting_down_ on entry. This will avoid
- reentrance if fini () is called before the Object_Manager
- is (explicitly) destroyed. Thanks to Gonzo for reporting it.
-
-Tue Oct 27 05:47:21 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.65 released.
-
-Tue Oct 27 03:24:36 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/TP_Reactor.h: Added an description for TP_Reactor.
-
- * ace/OS.i (cond_timedwait): When emulating cv, there're chances
- that the "wait for being signaled" function times out and return
- an error. In this rare case, we must also signal the
- broadcasting thread to bail out of cond_broadcast to avoid
- deadlock since we are no longer waiting on the cv anymore.
- Thanks to Detlef Becker <Detlef.Becker@med.siemens.de> for
- noticing the problem and providing the patch.
-
-Mon Oct 26 20:59:15 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Synch_T.{i,cpp} (ACE_Lock_Adapter): uninlined the
- ACE_Lock_Adapter default constructor. SunPRO C++ 4.2 + patch
- 104631-07 has trouble compiling TAO with it inline.
- Thanks to Terry Rosenbaum <Terry.Rosenbaum@Radiology.MSU.edu>
- for tracking this problem down and providing the fix.
-
-Mon Oct 26 18:33:28 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * Updated the dependencies in all the Makefiles, this was required
- after the new Message_Block_T.{h,i,cpp} files.
-
-Mon Oct 26 19:16:27 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/000/index.html: This index is has a layout
- similar to Umar's ACE Tutorial document. As time progresses, we
- will be merging the examples in his document into the online
- tutorials. The current free-form tutorials will not go away but
- will be supplimented with Umar's more structured approach.
-
-Mon Oct 26 17:37:55 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/config-sunos5.4-sunc++-4.x.h:
- * ace/config-sunos5.5.h:
- Sun/CC throws the ::xalloc exception when operator new cannot
- allocate the memory, thanks to Terry Rosenbaum
- <Terry.Rosenbaum@Radiology.MSU.edu> for reporting this and
- providing a patch.
-
- * ace/Makefile:
- Updated dependencies.
-
-Mon Oct 26 17:02:48 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Test.cpp: Reduced the number of
- connector threads _ONLY_ on platforms that couldn't handle too
- many simultaneous connection.
-
- Changed to use dotted-decimal format to specify connection
- endpoint for some platforms don't have a decent DNS support.
-
-Mon Oct 26 12:04:10 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_lib.dsp: Added TP_Reactor into the project.
-
-Mon Oct 26 11:29:55 1998 Darrell E. Brunsch <brunsch@tango.cs.wustl.edu>
-
- * tests/Semaphore_Test.cpp: Changed behavior for ACE_HAS_STHREADS
- and ACE_HAS_POSIX_SEM so it still tests everything but doesn't
- test the timed waits.
-
-Mon Oct 26 08:22:18 1998 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added recommendation and
- explanation re. use of #pragma once.
-
- * docs/ACE-guidelines.html: recommend avoiding g++ 2.8.1.
-
- * tests/SV_Shared_Memory_Test.cpp: don't try to run this
- test if ACE_LACKS_FORK, because it uses ACE_OS::fork ().
- It allocates the shared memory segment before the fork,
- of course, so that was leaked if the fork was attempted
- but failed.
-
- * tests/Pipe_Test.cpp,Process_Mutex_Test.cpp: don't try
- to run these tests if ACE_LACKS_FORK, either.
-
- * tests/Mem_Map_Test.cpp (reverse_file): use a local, volatile
- variable for the array index. Without it, the test core dumps
- on LynxOS 3.0.0/PowerPC with -O2.
-
- * tests/run_tests.sh: run Timer_Queue_Test and Upgradeable_RW_Test
- on LynxOS.
-
- * tests/run_tests.vxworks: changed
- Message_Queue_Notifications_Test.cpp to
- Message_Queue_Notifications_Test.
-
-Mon Oct 26 01:49:44 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Env_Value_Test.cpp (main): Changed argv and envp to type
- LPTSTR[].
-
-Sun Oct 25 23:52:40 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.64 released.
-
-Sun Oct 25 22:18:26 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Select_Reactor_T.cpp (dispatch): Be more careful in how we
- handle dispatching when signals occur. In general, if we're
- interrupted by a non-Reactor-aware signal handler we need to
- bail out... Thanks to Naga for reporting this.
-
- * examples/Reactor/Misc/test_signals_1.cpp: Cleaned up this test
- so that it'll show off the signal handling capabilities of the
- ACE Reactor better.
-
-Sun Oct 25 14:13:31 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.i: Changed ACE_OS::sigaction to work with a null value
- for <nsa> on Windows. Thanks to Jim Buck <jim@nowsol.com> for
- reporting this.
-
- * examples/Reactor/Misc/reactors.dsp:
- * examples/Reactor/Misc/signals_1.dsp:
- * examples/Reactor/Misc/signals_2.dsp:
- Corrected the include and library paths. Thanks to
- Zoran Ivanovic <zorani@pathcom.com> for reporting this.
-
- * ChangeLog: Removed all the trailing spaces and tab characters so
- CVS's commit-check will be happy.
-
-Sun Oct 25 10:59:21 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-sunos5.5.h: Added
-
- #if defined (i386)
- #define ACE_HAS_X86_STAT_MACROS
- #endif /* i386 */
-
- to check for the [f]stat macros on Solaris for Intel. Thanks to
- Daniel Nieten <dnieten@bellsouth.net> for reporting this.
-
-Sun Oct 25 00:15:03 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.cpp (process_directives): We should use
- ASYS_WIDE_STRING to convert a <char *> to a UNICODE string.
-
-Sat Oct 24 18:39:11 1998 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (get_ip_interfaces, get_handle): Add _AIX to the list
- of macros which enable the proper code for these to work.
- ACE::get_ip_interfaces still doesn't work right on AIX, though -
- it reports one link-level interface. May need to get IBM's help
- with this.
-
-Sat Oct 24 18:07:00 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_TEXT): Consolidated various ACE_TEXT definitions
- into one and place it near the beginning of the file.
- Re-indented macros.
-
-Sat Oct 24 17:47:15 1998 Arturo Montes <mitosys@colomsat.com.co>
-
- * ace/OS.i (sigwait): Sigwait is little different with FSU
- pthreads, sigwait take two arguments and return -1 if error, 0
- in otherwise.
-
-Sat Oct 24 17:26:41 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.h (ACE_TEXT): Moved Nanbor's changes outside of
- ACE_PSOS block.
-
- * ace/config-win32.h: Defined ACE_HAS_TEXT_MACRO_CONFLICT,
- seeing that MSVC already defines __TEXT.
-
-Sat Oct 24 15:21:32 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_TEXT): Changed the macro __TEXT to ACE_TEXT to
- avoid conflicting with OS/390. __TEXT is still available for
- backward compatibility unless ACE_HAS_TEXT_MACRO_CONFLICT is
- defined. However, using ACE_TEXT is prefered for obvious
- reason. Thanks to Paul K. Fisher <pfisher@plexware.com> for
- reporting this.
-
- * ace/README: Added documentation for ACE_HAS_TEXT_MACRO_CONFLICT.
-
- * *.cpp: Replaced a bunch of __TEXT to ACE_TEXT.
-
-Sat Oct 24 08:34:08 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Updated the fstat() and stat() calls to work properly
- on the Solaris for Intel platform, which does weird things to
- the fstat() and stat() functions to handle 32 and 64 bit file
- offsets. Thanks to Daniel Nieten <dnieten@bellsouth.net> for
- reporting this.
-
-Sat Oct 24 02:13:11 1998 Detlef Backer <Detlef.Becker@med.siemens.de>
-
- * ace/OS.cpp (invoke): ACE_Thread_Adapter::invoke() swapped the
- nesting level of __except() and __finally() because if the
- selector returns EXCEPTION_EXECUTE_HANDLER a global unwind takes
- place, activating nested __finally blocks and in this case
- terminating the thread before having a chance to execute the
- handler. After reversing the logic, now the exception handler
- gets called first before the termination handler is invoked.
-
- Furthermore I added the call to GetExceptionInformation(),
- passing the result as a void* into the selector function. This
- allows a case sensitive handling startegy of the exception in
- the selector function.
-
- (inherit_log_msg): In ACE_Thread_Adapter::inherit_log_msg() I
- moved the copy operation from the selector and handler
- attributes outside of the "if (this->ostream_)" condition,
- because I don't think this condition is related to the SEH.
-
- (thr_create): In ACE_OS::thr_create() I "inherit" the current
- selector handler into the newly created ACE_Thread_Adapter in
- case that the caller did not specify one at invocation.
-
- * ace/Thread_Manager.cpp (spawn_i): In
- ACE_Thread_Manager::spawn_i() I added the initialization of
- selector and handler at the creation time of
- ACE_Thread_Adapter.
-
-Fri Oct 23 21:11:03 1998 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/OS.h: Changed a comment to be consistent. Thanks to Serge
- Kolgan <skolgan@cisco.com> for reporting this.
-
-Fri Oct 23 20:39:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * Paul Christopher Gill was born Friday October 23, 1998, at
- 20:39 CDT, weighing 6 lbs. 7 oz., at 19 3/4 inches in length.
- A true hacker in the making, Paul decided to work through the
- evening even though it was a Friday night. ;-)
-
-Fri Oct 23 11:37:38 1998 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix4.2.GNU: Removed -qinitauto=5F from
- DCFLAGS - with it, Process_Strategy_Test was going CPU bound in an
- ostream operation.
-
-Fri Oct 23 00:27:11 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.63 released.
-
-Thu Oct 22 21:32:14 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ACE-INSTALL.html: Since we've been successfully using MSVC 6.0
- for a while, might as well mention it here in the documentation.
-
-Thu Oct 22 19:48:20 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/index.html
- Reformatted it via emacs to make it more readable when editing.
- Added a comment pointing to Bob McWhirter's original FMM document
- to make it easier to update the repository in the future.
-
- * docs/tutorials/015/Client.h
- * docs/tutorials/015/Client.cpp
- * docs/tutorials/015/Server.h
- * docs/tutorials/015/Server.cpp
-
- Since Windows just *pretends* to have mixed-case names the cpp
- files conflict with client.cpp and server.cpp. I renamed these
- files to:
-
- * docs/tutorials/015/Client_i.h
- * docs/tutorials/015/Client_i.cpp
- * docs/tutorials/015/Server_i.h
- * docs/tutorials/015/Server_i.cpp
-
- Which necessitated changes to
- * docs/tutorials/015/client.cpp
- * docs/tutorials/015/server.cpp
- * docs/tutorials/015/Makefile.client
- * docs/tutorials/015/Makefile.server
- * docs/tutorials/015/Makefile
- * docs/tutorials/015/combine.shar
- * docs/tutorials/015/*.html
-
- Thanks to Darrell Brunsch for catching this.
-
-
-Thu Oct 22 16:52:21 1998 Steve Huston <shuston@riverace.com>
-
- * tests/Thread_Pool_Reactor_Test.(cpp h): Adjusted debug output to
- learn more about what's happening; added a check to be sure that
- the correct number of messages are processed by each Svc_Handler.
-
-Thu Oct 22 15:46:42 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_TSS_Emulation::tss_base): if storage for
- the TSS data must be allocated off the heap, zero all of it.
- This avoids problems after fork in the child process on
- LynxOS.
-
-Wed Oct 21 22:23:06 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.62 released.
-
-Wed Oct 21 21:19:53 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp (process_directives): Replaced a
- return -1 with a result = -1 and a break to avoid a
- memory leak. Thanks to David for pointing this out.
-
-Wed Oct 21 20:00:51 1998 Nagarajan Surendran <naga@cs.wustl.edu>
-
- * tests/Timer_Queue_Test.cpp :
- * tests/Map_Manager_Test.cpp:
- * tests/Dynamic_Priority_Test.cpp:
- Replaced double with ACE_timer_t everywhere so that it works on
- platforms like Chorus.
-
-Wed Oct 21 18:44:26 1998 Nagarajan Surendran <naga@cs.wustl.edu>
-
- * tests/run_tests.sh: Changed egrep Chorus to CHORUS to identify a
- Chorus vme board.
-
-Wed Oct 21 17:51:52 1998 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (get_ip_interfaces): If compiling on Win32 w/ Winsock 2,
- use WSAIoctl(SIO_GET_INTERFACE_LIST) to get the interfaces from the
- kernel rather than trying to fish through the registry. This should
- help TAO's naming service be somewhat more reliable on Win32, as
- well as solve some other nasties that plagued this thing.
-
- * ace/ws2tcpip.h: Filled out necessary pieces for the above change.
-
-Wed Oct 21 14:19:11 EDT 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/007/thread_pool.cpp
- * docs/tutorials/007/thread_pool.h
- Alison Greig's question caused me to look back at these and
- I find that an older g++ is unhappy about the close() methods.
- It seems to confuse the baseclass 'close(u_long flags=0)' with
- my derived 'close(void)' even though I also have 'close(u_long)'.
- Anyway, I removed my 'close(void)' and now do all of my work in
- the other method.
-
- * docs/tutorials/007/client_handler.cpp:handle_input()
- Now using ACE_OS::thr_equal() instead of operator==()
- This fixes Alison's problem. (Thanks for the solution David!)
-
-Wed Oct 21 07:12:32 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Test.cpp: moved #include of
- tests/Thread_Pool_Reactor_Test.h inside of ACE_HAS_THREADS
- protection, so that it will compile without thread support.
- Thanks to Jan Perman <Jan.Perman@osd.uab.ericsson.se> for
- reporting this.
-
- * tests/MT_Reactor_Timer_Test.cpp: moved "the_reactor" declaration
- outside of ACE_HAS_THREADS protection, so that it will compile
- without thread support. Thanks to Jan Perman
- <Jan.Perman@osd.uab.ericsson.se> for reporting this.
-
- * bin/g++dep: added -DACE_LACKS_PRAGMA_ONCE to keep it
- quiet when the config.h doesn't #define it. Thanks to
- Naga for reporting this.
-
- * ace/config-g++-common.h: protected #define of ACE_LACKS_PRAGMA_ONCE,
- because g++dep now defines it with a -D.
-
- * ACE-INSTALL.html: updated Linux and LynxOS version status,
- and egcs --enable-shared discussion.
-
- * ace/Hash_Map_Manager.cpp (operator *): only declare local "result"
- without ACE_NDEBUG, to avoid compile warning with debug=0.
-
- * ace/Synch.cpp (ACE_Recursive_Thread_Mutex::release): only
- declare local "t_id" without ACE_NDEBUG, to avoid compile warning
- with debug=0.
-
- * ace/Timer_Heap_T.cpp (reschedule): only declare local "timerID"
- without ACE_NDEBUG, to avoid compile warning with debug=0.
-
- * ace/SV_Message_Queue.h: fixed #ifndef protection to use
- ACE_SV_MESSAGE_QUEUE_H instead of ACE_MESSAGE_QUEUE_H, to
- prevent collision with the Message_Queue.h's protection.
- Thanks to Rainer Blome <rainer_blome@de.ibm.com> for
- reporting this.
-
- * ace/Object_Manager.cpp: removed some old, unused printouts.
-
-Tue Oct 20 19:40:41 1998 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_aCC.GNU: Added
- -DACE_LACKS_PRAGMA_ONCE - aCC on both 10.20 and 11.00 complain about
- #pragma once. Added it here rather than in config.h because (1) it
- can be set in one file, not two, (2) in case a #pragma gets in before
- config.h is included somehow.
-
- * include/makeinclude/platform_aix4.2.GNU: Revised flags passed to
- xlC_r - remove -qextchk because it's the cause of the mismatched
- type errors building netsvcs/lib (IBM reports this is fixed in
- compiler version 3.6.4). Removed -M - it's not needed and wastes
- disk space. Moved -qcheck to DCFLAGS and added -qinitauto=5F to
- DCFLAGS.
-
- * include/makeinclude/rules.local.GNU: Added SHLIBA to the files that
- get 'realclean'ed - this covers libACEshr.a on AIX.
-
- * netsvcs/lib/Makefile:
- * netsvcs/clients/Naming/Client/Makefile: Added ACELIB to LIBS to
- insure libACE is linked in.
-
-Tue Oct 20 19:37:42 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/014/*.html:
- * docs/tutorials/014/Makefile:
- * docs/tutorials/014/combine.shar:
- Colorized using the new and improved 'combine' script. Also
- modified the Makefile so that the HTML sources won't get destroyed
- if the shar operation failed.
-
- * docs/tutorials/015/Makefile:
- Added the same Makefile modification to prevent loss of HTML sources
-
-Tue Oct 20 16:28:12 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added recommended DU CXX version info.
- Thanks to Susan Liebeskind <shl@janis.gtri.gatech.edu>
- for suggesting this.
-
- * ACE-INSTALL.html: added AIX 4.2.1 xlC V3.1 patch info.
- Thanks to Susan Liebeskind <shl@janis.gtri.gatech.edu>
- for supplying it, in ready-to-use form.
-
- * tests/Thread_Manager._Test.cpp (main): changed debug messages
- for suspend_grp/resume_grp with Pthreads, which fail due to
- ENOTSUP. The resume_grp message was wrong (copy and paste
- error). In addition, I reworded the messages to that
- run_tests.check won't catch them. They don't indicate a
- problem, just that Pthreads doesn't support those operations;
- see Steve's Thu Oct 15 16:40:41 1998 entry.
-
-Tue Oct 20 14:31:37 EDT 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/001/Makefile
- * docs/tutorials/002/Makefile
- * docs/tutorials/003/Makefile
- * docs/tutorials/005/Makefile
- * docs/tutorials/006/Makefile
- * docs/tutorials/007/Makefile
- * docs/tutorials/008/Makefile
- * docs/tutorials/009/Makefile
- * docs/tutorials/010/Makefile
- * docs/tutorials/011/Makefile
- * docs/tutorials/012/Makefile
- * docs/tutorials/013/Makefile
- * docs/tutorials/012a/Makefile
- * docs/tutorials/Makefile
-
- Updated these makefiles to remove rules.lib.GNU
- Added the "top-level" makefile to allow building
- of all tutorials in one step.
-
-Tue Oct 20 12:54:39 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.61 released.
-
-Tue Oct 20 07:43:56 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.x_g++.GNU: added
- LIBS += -lpthread. Thanks to Peter Nordlund <petern@nada.kth.se>
- for reporting that it is needed.
-
- * ace/config-irix6.x-sgic++-nothreads.h,config-irix6.x-common.h:
- moved ACE_HAS_GPERF from SGI C++ config to common SGI C++/g++
- config. Thanks to Peter Nordlund <petern@nada.kth.se> for
- recommending this.
-
- * ace/config-aix-4.1.x.h,config-dgux-4.11-epc.h,config-dgux-4.x-ghs.h,
- config-irix5.2.h,config-irix5.3-g++.h,config-irix5.3-sgic++.h,
- config-m88k.h,config-tandem.h,config-osf1-3.2.h,
- config-sunos5.4-centerline-2.x.h,config-sunos5.4-g++.h,
- config-sunos5.4-sunc++-4.x-orbix.h,config-sunos5.4-sunc++-4.x.h,
- config-sunos5.5.h,config-unixware-2.01-g++.h,
- config-unixware-2.1.2-g++.h,config-irix6.x-common.h,README:
- removed ACE_HAS_SVR4_TIME because it is no longer used.
- Thanks to Peter Nordlund <petern@nada.kth.se> for
- reporting this.
-
- * tests/MT_Reactor_Timer_Test.cpp (handle_exception,
- handle_timeout): added ACE_UNUSED_ARG's.
-
- * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp:
- added #include of ace/streams.h, because the dump ()
- method uses ofstream.
-
- * examples/Connection/non_blocking/CPP-acceptor.cpp (handle_close):
- added ACE_UNUSED_ARG's.
-
- * ace/config-sunos5.5-sunc++-4.x.h,config-sunos5.5-g++.h:
- removed, because config-sunos5.5.h should be used instead.
-
- * performance-tests/Misc/basic_perf.cpp (iteration_time):
- added static cast 0 to ACE_hrtime_t to please g++
- on VxWorks (which uses ACE_U_LongLong for ACE_hrtime_t).
-
- * ace/config-cygwin32-common.h: removed msg_accrights{,len}
- defines, because they were commented out.
-
- * OS.h,config-aix-4.1.x.h,config-linux-common.h,README:
- added ACE_LACKS_MSG_ACCRIGHTS support. This consolidates
- code that was in both of the config files. Thanks to
- Ossama for suggesting it.
-
- * include/makeinclude/platform_vxworks*.GNU: moved our
- wind installation from /project/doc/wind to /project/doc/pkg/wind.
-
-Tue Oct 20 07:09:31 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.2.x.h: Added ACE_HAS_GPERF.
-
- * tests/tests.(mak mdp): Fixed to build clean; Added:
- DLList_Test, High_Res_Timer_Test, Dynamic_Priority_Test,
- Thread_Pool_Reactor_Test, Upgradable_RW_Test, MT_Reactor_Timer_Test.
-
-Mon Oct 19 21:40:56 1998 David L. Levine <levine@cs.wustl.edu>
-
- * *.h: changed include protection from #if !defined to ifndef.
- Added #pragma once, if possible, i.e., after #include of
- an ace/ header. It can only be done after ace/config.h
- is included, because some platforms don't allow #pragma once.
-
- * include/makeinclude/wrapper_macros.GNU: removed -DACE_LACKS_PRAGMA
- for g++ because it's now in config-g++-common.h.
-
-Mon Oct 19 20:44:33 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/015:
- Once again I've modified just about every file. Finally though
- Tutorial 015: Protocol Stream is done!
-
- * docs/tutorials/combine
- Get rid of that silly "links" file and add "bodies". The new file
- is an ordered list of files to use when assembling the HTML
- pages. This makes it easier to stuff source code into the pages.
-
- * docs/tutorials/index.html
- I could have sworn that I linked in 014 many moons ago.
- Appologies to Bob McWhirter for leaving this out for so long!
-
-Mon Oct 19 17:00:52 EDT 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/015:
- Just about everything in this directory has been touched. I'm
- in the middle of documenting it and need a checkpoint so nothing
- gets lost! ETA for completion is later tonight or sometime tomorrow.
-
-Mon Oct 19 11:47:20 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (readPPCTimeBase): wrapped each line in "".
- Otherwise, the C++ compiler on MVS complains unterminated
- strings. Even though it isn't supposed to see this code :-/
- Thanks to Chuck Gehr <GehrCR@louisville.stortek.com> for
- reporting this.
-
- * ace/config-g++-common.h: added ACE_LACKS_PRAGMA_ONCE.
- g++ doesn't need it, because it optimizes includes if the #ifndef
- header protection convention is followed. And, it
- complains about #pragma once.
-
- * ace/config-win32-common.h: added ACE_LACKS_PRAGMA_ONCE,
- unless _MSC_VER < 1000.
-
-Mon Oct 19 11:13:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Message_Block.h: Added title and description comments to
- deadline and laxity message priority strategy classes.
-
-Sun Oct 18 17:22:00 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/014/combine.shar:
- * docs/tutorials/015/combine.shar:
- The additional input files to the combine script. A shell archive
- seems to be the most economical way to keep their history.
- Individual files just create clutter and a tar.gz wouldn't be
- diff-able in the repository.
-
- * docs/tutorials/014/Makefile:
- * docs/tutorials/015/Makefile:
- Adjusted to create the HTML and combine.shar files.
-
-Sun Oct 18 16:51:43 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/combine: A perl script for combining several
- "source" files into an HTML. It was designed to combine comment
- files with .cpp and .h files in the creation of tutorials. The
- HTML output is commited to the repository, I haven't decided yet
- if it's worth saving the input.
-
- * docs/tutorials/fix.Makefile: This was pulled out of one of the
- old tutorials and made a bit more useful. It's purpose is to pull
- dependency information out of a Makefile and create a .depend file
- instead. This keeps makfiles cleaner and less confusing.
-
- * docs/tutorials/014/Makefile
- * docs/tutorials/014/Task.cpp
- Minor changes. I attempted to add THR_JOINABLE to the activate()
- call but that resulted in a permanent hangup on Linux when trying
- to exit the application
-
- * docs/tutorials/015/Client.cpp
- * docs/tutorials/015/Client.h
- * docs/tutorials/015/Compressor.cpp
- * docs/tutorials/015/Compressor.h
- * docs/tutorials/015/Crypt.cpp
- * docs/tutorials/015/Crypt.h
- * docs/tutorials/015/Handler.cpp
- * docs/tutorials/015/Handler.h
- * docs/tutorials/015/Makefile
- * docs/tutorials/015/Makefile.client
- * docs/tutorials/015/Makefile.server
- * docs/tutorials/015/Protocol_Stream.cpp
- * docs/tutorials/015/Protocol_Stream.h
- * docs/tutorials/015/Protocol_Task.cpp
- * docs/tutorials/015/Protocol_Task.h
- * docs/tutorials/015/Recv.cpp
- * docs/tutorials/015/Recv.h
- * docs/tutorials/015/Server.cpp
- * docs/tutorials/015/Server.h
- * docs/tutorials/015/Xmit.cpp
- * docs/tutorials/015/Xmit.h
- * docs/tutorials/015/client.cpp
- * docs/tutorials/015/page01.html
- * docs/tutorials/015/page02.html
- * docs/tutorials/015/page03.html
- * docs/tutorials/015/page04.html
- * docs/tutorials/015/page05.html
- * docs/tutorials/015/page06.html
- * docs/tutorials/015/server.cpp
- The beginnings of a protocol stream tutorial. The code is done but
- the tutorializing (eg -- HTML and comments) isn't complete.
-
-Sat Oct 17 21:20:44 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (gethrtime): updated comments on Alpha rpcc
- instruction. Only 32 bits of high-res tick count are
- available, even the 64 bits are read by the rpcc instruction.
- The high 32 bits are for implementation-specific use, such
- as a virtual tick counter.
-
-Sat Oct 17 13:41:57 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * test/Future_Test.cpp: Added more comments so that the structure
- and participants in the Active Object pattern would be more
- obvious.
-
- * ace/Message_Block: Added a priority parameter, which defaults to
- 0, to one of the constructor for ACE_Message_Block so that it
- simplifies the new Method_Request semantics.
-
- * ace/Method_Request.h: Added priority() accessor/mutator methods
- so that we can control where a Method_Request is placed in the
- Activation_Queue, which is just a Facade for an
- ACE_Message_Queue.
-
- * ace: Renamed ACE_Method_Object to ACE_Method_Request to
- correspond to the new version of the Active Object pattern at
- http://www.cs.wustl.edu/~schmidt/Act-Obj.ps.gz. This change
- involved renaming the Method_Object.h and Method_Object.cpp
- files to Method_Request.h and Method_Request.cpp, respectively.
- For backwards compatibility, I kept the Method_Object.h file,
- which now just includes Method_Request.h and adds a typedef of
- ACE_Method_Request to ACE_Method_Object so no applications
- should break. New applications should use the new names,
- however.
-
- * ace/Acceptor.h: Moved the
- ACE_Oneshot_Acceptor::register_handler() method into the private
- part of the class so that users won't be tempted to call it!
- Thanks to Larry <larry@paradigmsim.com> for reporting this.
-
- * examples/Connection/non_blocking/CPP-acceptor: Fixed a bug that
- occurred when timers were used in conjunction with the
- ACE_Oneshot_Acceptor and handle_close().
-
- * ace/Acceptor: Cleaned up the ACE_Oneshot_Acceptor comments.
- Boy, this was confusing ;-). Thanks to Larry
- <larry@paradigmsim.com> for reporting this.
-
-Sat Oct 17 12:54:17 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.60 released.
-
-Sat Oct 17 12:50:44 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Fixed a number of warnings that crept into the release
- yesterday. Thanks to David Levine and DEC C++ for
- reporting these.
-
-Sat Oct 17 00:35:21 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.59 released.
-
-Sat Oct 17 00:29:37 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp (process_directives): Only warn about a
- missing svc.conf file if we're debugging.
-
-Fri Oct 16 23:16:30 1998 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: 1) use complete sentences for
- comments and 2) use prefix operators where possible, such
- as on an iteration loop index.
-
-Fri Oct 16 15:45:08 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config: Added a new method called
- init_svc_conf_file_queue() that will properly initialize the new
- queue containing the list of svc.conf files.
-
- * ace/Service_Config: Added a return value to parse_args() to make
- sure we do a sanity check...
-
- * ace: Replaced all #if !defined (ACE_FOO_H) with #ifndef
- ACE_FOO_H since many C++ preprocessors can recognize this idiom
- and optimize for it.
-
- * ace/Service_Config.cpp (parse_args): Modified the -S option to
- enqueue the directives in FIFO order rather than in LIFO order.
- It's more intuitive to process them in the order they are
- received!
-
- * ace/Service_Config: It's now possible to give multiple -f
- options to the Service Configurator and it will open multiple
- files and process each one in the order specified in argv. This
- is useful if svc.conf are generated by automatic tools, e.g.,
- Wizards, that are operating independently. Thanks to David
- O'Farrell <dave.ofarrell@aersoft.ie> for suggesting this.
-
- * tests/Upgradable_RW_Test.cpp: Revised the programming style ;-).
-
- * tests/Map_Manager_Test.cpp: Replaced all uses of postfix ++
- operators with prefix ++ operators because they are faster when
- iterating over the various Maps.
-
- * ace/[Hash_]Map_Manager: Today we decided to remove the use of
- locking for the ACE[_Hash]_Map_Manager Iterators. The original
- scheme acquired the mutex of the [Hash_]Map_Manager on every
- ++operator++/--operator-- call. Not only was this very
- inefficient, but it was also essentially useless since it
- doesn't protect against arbitrary insertions/deletions in the
- underlying map during the iteration.
-
- Our first thought was to put an ACE_Read_Guard into the iterator
- itself and acquire this for the duration of the iteration.
- However, this approach is totally broken when using STL-style
- iterators since the postfix ++ and -- operators return a copy of
- the iterator, which easily causes deadlocks if non-recursive
- mutexes are used.
-
- After much discussion, we decided it's better to let users
- figure out their own locking usecase, rather than have the
- iterators guess wrong and either screw up their code or yield
- substantial inefficiencies. Therefore, the right approach is to
- do something like this:
-
- typedef ACE_Map_Manager <TYPE1, TYPE2, ACE_Thread_Mutex> MAP_MANAGER;
- typedef ACE_Map_Iterator <TYPE1, TYPE2, ACE_Thread_Mutex> ITERATOR;
- typedef ACE_Map_Entry <TYPE1, TYPE2> ENTRY;
-
- void
- foo (MAP_MANAGER &map)
- {
- // ...
- {
- // Explicitly grab the lock and hold it for the duration of
- // the iteration.
- ACE_READ_GUARD (ACE_Thread_Mutex, ace_mon, map.mutex ());
-
- ITERATOR end = map.end ();
-
- for (ITERATOR iter = map.begin ();
- iter != end;
- ++iter)
- {
- ENTRY &entry = *iter;
- ++i;
- }
- // ...
- }
-
- Note that as a general rule, it's better to use ++i rather than
- i++ to avoid unnecessary copies.
-
-Fri Oct 16 14:57:58 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Hash_Map_Manager and Map_Manager: Fixed the operator++ and
- operator--. Also, moved the guard from the individual methods
- to the iterator. Now, the read guard is held for the life time
- of the iterator.
-
-Fri Oct 16 14:51:57 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): Made sure if users don't specify
- whether to spawn threads detached or joinable, we'd change the
- creation flag for them so that they are always joinable (not
- detached.) This is important for unify the thread behavior on
- different platforms that have various default thread creation
- policies. Thanks to Susan Liebeskind
- <shl@janis.gtri.gatech.edu> for motivating the change.
-
-Fri Oct 16 01:28:17 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.58 released.
-
-Thu Oct 15 23:50:41 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.57 released.
-
-Thu Oct 15 22:05:02 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.cpp (unique_name): Moved the arguments around in the
- sprintf() in order to generate a better "unique name". Thanks
- to Bob McWhirter for suggesting this.
-
-Thu Oct 15 21:20:36 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Hash_Map_Manager.cpp (operator-- and operator++):
- * ace/Map_Manager.cpp (operator-- and operator++):
-
- Fixed by value and by reference return values.
-
-Thu Oct 15 20:16:46 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/ACE-FMM.html: Updated with Bob McWhirter's latest changes.
- Discussion of race conditions when spawning threads from within a constructor.
-
-Thu Oct 15 18:30:58 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Added ACE_HTONS(x) macros to complement ACE_HTONL(x)
- macros. Thanks to Balaji Srinivasan <balaji@cplane.com>
- for reporting this.
-
- * ace/[Hash_]Map_Manager.cpp: Postfix and prefix were inverted.
- They are correct now. Thanks to Balaji Srinivasan
- <balaji@cplane.com> for reporting this.
-
-Thu Oct 15 18:02:51 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/config-win32.h: For non-winnt systems, define
- ACE_LACKS_RECVMSG and ACE_LACKS_SENDMSG. Thanks to Bill Hall
- <hts@gte.net> for pointing this out.
-
- [BTW, Bill was the 400th individual to contribute an ACE/TAO
- bug report, thanks to everyone for all their help over the years!]
-
-Thu Oct 15 16:50:09 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.i (set_option): Need to convert the
- <optval> from char to int for Win32 because the shortest length
- of <optval> must be at least sizeof (int) on Win32. Thanks
- to Johan Lundin <johan@lundin.com> for reporting this.
-
-Thu Oct 15 16:40:41 1998 Steve Huston <shuston@riverace.com>
-
- * tests/Thread_Manager_Test.cpp: Allow suspend/resume to be tried on
- pthreads, but don't allow any error other than ENOTSUP. This
- catches a bug in Thread_Manager that lost the error values on an
- error.
-
- * ace/Thread_Manager.cpp (ACE_THR_OP macro): Don't remove a thread
- from the active threads list if an operation fails with ENOTSUP.
- This was causing calls to suspend_grp/resume_grp to erase the list
- of threads in a group on pthreads, then wait_grp didn't wait because
- it thought there weren't any more threads.
-
-Thu Oct 15 12:43:46 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Task.cpp (activate): Changed to activate new active objects
- using the same grp_id if this task has been activated before and
- no new grp_id is specified in activate method. Also, the task's
- grp_id will only get updated if it has never been updated even
- if <force_active> is set. This prevent the original <grp_id_>
- get lost but the consequence if that if users select to
- force_activate new tasks with a different grp_id, the new grp_id
- will get lost and the only way to wait for these threads is to
- either perform a wait for all threads, or wait for each
- individual thread by waiting on the thread handles returned by
- the activate method. Thanks to Bob McWhirter
- <bob@netwrench.com> for motivating this change.
- (ACE_Task_Base): Changed to initialize <grp_id_> to -1.
-
-Thu Oct 15 10:07:13 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.56 released.
-
-Thu Oct 15 09:54:07 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.sh: commented out MT_Reactor_Timer_Test because
- it doesn't halt on g++/Solaris or DU 4.0.
-
- * include/makeinclude/wrapper_macros.GNU: for g++, added
- -DACE_LACKS_PRAGMA_ONCE to CCFLAGS. Thanks to Kirk Ellet
- <kellet@mdc.com> for pointing out that is has to be done
- in CCFLAGS rather than as a #define in OS.h, because
- ace/Synch_T.h uses the pragma before config.h is #included.
-
-Wed Oct 14 23:20:45 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.55 released.
-
-Wed Oct 14 22:17:31 1998 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added guideline for protection of
- header files against multiple inclusion. Thanks to
- Eric C. Newton <ecn@smart.net> for pointing out the construct
- used by gcc/g++ to minimize unnecessary file inclusion.
- Fortunately, other compilers use the same method. And,
- thanks to Susan Liebeskind <shl@cc.gatech.edu> for being
- the last ACE user to suggest something like this, and to
- Pat McNerthney <pat@cartia.com> for spurring the search for
- such an optimization.
-
-Wed Oct 14 12:36:00 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/run_tests.sh: Added the MT_Reactor_Timer_Test.
-
- * tests/MT_Reactor_Timer_Test.cpp: Fixed a number of bugs with
- this test. It seems to work fine on Solaris now.
-
- * tests/MT_Reactor_Timer_Test.cpp (main): Added a test to make
- sure that the ACE_Reactor::handle_events() method properly
- counts the number of expired timers.
-
- * ace/Select_Reactor_T: Updated the various methods so that
- handle_events() now works as advertised, i.e., it actually
- returns the number of event handlers it dispatched.
-
- * ace: Added
-
- #if !defined (ACE_LACKS_PRAGMA_ONCE)
- #pragma once
- #endif /* ACE_LACKS_PRAGMA_ONCE */
-
- To all the header files in ACE. This should speed up
- compilation time on platforms whose C++ compilers support
- #pragma once. Thanks to Patrick J. McNerthney <pat@cartia.com>
- for suggesting this.
-
- * ace/Functor.h: Moved the definitions of the constructor and
- destructor of ACE_Command_Base into the *.i file.
-
- * ace/Select_Reactor_T: Enhanced dispatch_timer_handlers() so that
- it passes the number of timers dispatched as an out parameter to
- avoid any ambiguity.
-
-Wed Oct 14 15:30:42 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Message_Block_T.h: Removed ACE_Export from definition of template
- class ACE_Locked_Data_Block.
-
-Wed Oct 14 12:36:00 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-cygwin32-common.h,
- ace/config-cygwin32.h,
- ace/OS.h:
- Added support for Cygwin32. Thanks to Phil Feairheller
- <Phil.Feairheller@emax.com> for contributing this.
-
- * ace/config-vxworks5.x.h,
- ace/config-chorus.h,
- ace/config-psos*.h,
- ace/config-cygwin32-common.h,
- ace/OS.i:
- Added and used the new ACE_LACKS_MKFIFO macro. Thanks to Phil
- Feairheller <Phil.Feairheller@emax.com> for reporting this.
-
-Wed Oct 14 11:03:45 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.54 released.
-
-Wed Oct 14 00:28:10 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.53 released.
-
-1998-10-14 Nagarajan Surendran <naga@tango.cs.wustl.edu>
-
- * ace/Synch_T.cpp : Changed ACE_mutex_t to ACE_cond_t for CHORUS
- in ACE_Condition constructor.
-
-1998-10-13 Nagarajan Surendran <naga@tango.cs.wustl.edu>
-
- * ace/Synch.i (ACE_Mutex::remove): Added a #else for non-chorus
- cases instead of #endif to call ACE_OS::mutex_destroy.
-
- * ace/OS.cpp : Added static member definition
- KnCap ACE_OS::actorcaps_[ACE_CHORUS_MAX_ACTORS]
- for CHORUS.
-
- * ace/config-chorus.h: Added ACE_HAS_TSS_EMULATION.
-
-Tue Oct 13 22:40:40 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Makefile:
- * ace/Message_Block.h:
- * ace/Message_Block.i:
- * ace/Message_Block.cpp:
- * ace/Message_Block_T.h:
- * ace/Message_Block_T.i:
- * ace/Message_Block_T.cpp:
- Added a new variant of the ACE_Data_Block class that holds an
- instance of its locking strategy, this is useful because in some
- cases the lifetime of the lock is tied to the lifetime of the
- Data_Block itself. The Message_Block class was carefullly
- modified to support this new feature, i.e. it does not hold a
- lock while removing the data block because the hold may be part
- of the data block itself. Still all the features in the
- Message_Blocks are supported, for instance, a complete
- Message_Block chain ca be destroyed while holding a single lock,
- shared by all the Data_Blocks in the chain.
-
-Tue Oct 13 22:39:42 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/MM_Shared_Memory_Test.cpp (client): added an
- ACE_ASSERT to check that shm is non-zero.
-
- * ace/OS.h,config-chorus.h,README: added
- ACE_HAS_PTHREAD_PROCESS_ENUM support. Thanks to
- Alberto Villarica <Alberto.Villarica.rav@nt.com> and Naga
- for tracking the problem with Semaphore_Test hanging.
-
- * ace/OS.h: changed default PTHREAD_PROCESS_SHARED from 0 to 1.
- That way, it's different than PHTREAD_PROCESS_PRIVATE.
-
-Tue Oct 13 22:09:12 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Mem_Map.cpp (map_it): One more try to get this right ;)
- Thanks to Jonathan Reis <reis@minniemouse.cemax.com> for the bug
- reports, suggested fixes, and test program.
-
-Tue Oct 13 21:17:37 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Asynch_IO.cpp:
- * ace/Proactor.cpp: Fixed the problem with POSIX4 implementation
- of Asynch_Transmit_File. Thanks to James Hu and Irfan for
- reporting this problem and helped me on the fixes.
-
-Tue Oct 13 18:07:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.2.x.h: Set up so it should work with gcc as well
- as xlC. Rearranged defs and removed some duplicates.
- Enabled ACE_HAS_4_4BSD_SENDMSG_RECVMSG and removed the redefs
- of msgbuf fields.
-
- * tests/Thread_Pool_Reactor_Test.cpp: Moved the definition of
- Acceptor_Handler to a new file, Thread_Pool_Reactor_Test.h to
- satisfy AIX xlC's template instantiation.
-
-Tue Oct 13 15:56:09 1998 Nagarajan Surendran <naga@cs.wustl.edu>
-
- * ace/OS.i: Fixed a few errors on CHORUS.
-
-Tue Oct 13 08:48:36 EDT 1998 James CE Johnson <jcej@lads.com>
-
- * docs/ACE-tutorials.html
- * docs/ACE-FMM.html
- Added Bob McWhirter's <bob@netwrench.com> "Frequently Made
- Mistakes" list.
-
-Tue Oct 13 07:28:38 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp (dump): replaced ACE_static_casts with
- ACE_CU64_TO_CU32, because the method is const. Thanks to Doug
- for reporting this.
-
- * ace/Thread_Manager.cpp (join): replaced __xlC__ test with
- _AIX. That way, g++ and xlC will both use the three-arg
- join call on AIX. Thanks to Ian Wright <I.Wright@elsevier.co.uk>
- for reporting this.
-
- * ace/Makefile,examples/Bounded_Packet_Relay/Makefile:
- updated dependencies.
-
- * ace/OS.[hi],config-fsu-pthread.h,config-aix-4.[12].x.h,
- config-mit-pthread.h,config-hpux-10.x.h,config-hpux11.h,
- config-irix6.x-{g++,sgic++}.h,config-mvs.h,config-tandem.h,
- config-osf1-3.2.h,config-osf1-4.0.h,config-sco-5.0.0-mit-pthread.h,
- config-irix6.x-common.h,README:
- removed ACE_HAS_TID_T and ACE_HAS_PTHREAD_T support. ACE_hthread_t
- is now a simple typedef of pthread_t. It was before, also, but not
- so simple :-) Before, it was a typedef of tid_t on platforms
- that had ACE_HAS_TID_T but not ACE_HAS_PTHREAD_T. There were
- no such platforms; so, it was pthread_t on all PTHREADS platforms.
- Thanks to Ossama, Arturo, and Steve for sorting all this out.
- We ended up with just a single typedef, so it was worth it.
-
- * ace/OS.i (thr_cmp): use pthread_equal with PTHREADS, same as
- in ACE_OS::thr_equal (). Thanks to Ossama for pointing out that
- they were different, but shouldn't have been.
-
- * ace/config-aix-4.2.x.h,config-fsu-pthread.h,config-hpux-10.x.h,
- config-hpux11.h,config-irix6.x-{g++,sgic++}.h,config-mit-pthread.h,
- config-mvs.h,config-osf1-3.2.h,config-osf1-4.0.h,
- config-sco-5.0.0-mit-pthread.hconfig-tandem.h,README:
- removed ACE_HAS_PTHREAD_EQUAL because it's no longer used. Thanks
- to Ossama for motivating the above change to thr_cmp, which had
- been the only use of ACE_HAS_PTHREAD_EQUAL.
-
- * ace/Log_Record.h,OS.h: changed C++-style comments to C-style
- comments in preprocessor directives. Thanks to
- Fernando D. Mato Mira <matomira@acm.org> for reporting these.
-
-Tue Oct 13 00:19:42 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (sema_destroy): I believe I've fixed the rats nest of
- #ifdefs to get semaphores to work correctly on Chorus again.
- Thanks to Naga for tracking this down!
-
- * ace/High_Res_Timer.cpp: Temporarily commented out the
- ACE_static_casts so that this will compile with CC.
-
- * ace/Hash_Map_Manager,
- ace/Map_Manager:
- Added a public mutex() accessor that allows us to return a
- reference to the lock_. This is useful for cases where we're
- using ACE_Process_Mutex and need to call remove(). Thanks to
- Bob McWhirter <bob@netwrench.com> for this suggestion.
-
-Mon Oct 12 23:03:26 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Mem_Map.cpp (map_it): Added a minor fix to handle the fact
- that Chorus doesn't support filesize() on a shared memory
- segment. Thanks to Alberto Villarica
- <Alberto.Villarica.rav@nt.com> for reporting this.
-
-Mon Oct 12 22:18:03 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp (dump): cleaned up output so that it
- works and is consistent across all platforms. (long long
- printing is not portable: some platforms use %llu and
- others use %Lu).
-
-Mon Oct 12 18:39:09 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Mem_Map.cpp: Revised the code to take the offset into
- account when deciding whether to grow the backing store.
-
- Also, ACE_Mem_Map was trying to be too clever when it tries to
- make sure that your offset is a multiple of the allocation
- granularity. It ends up messing up user offset and length
- calculations. Therefore, I have taken this out of ACE_Mem_Map
- code. Users is still welcome to use
- ACE_OS::allocation_granularity and
- ACE::round_to_allocation_granularity by themselves.
-
-Mon Oct 12 14:39:15 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Parse_Node.cpp: Added some ACE_const_casts to cleanup the
- casting going on here.
-
- * examples/ASX/CCM_App/CCM_App.cpp: We need to make sure and use
- the ACE_SVC_FACTORY_* macros so that the gobbler will be set
- correctly. Purify rules!
-
- * ace/Makefile: Make sure to add the // $ Id: $ CVS string when
- recreating Svc_Conf_Tokens.h.
-
- * ace/Svc_Conf.y: Just to be paranoid, make sure to set the
- gobbler function to 0. At least this way we'll get crashes
- rather than bizarre errors if users don't use the ACE_*FACTORY*
- macros.
-
-Mon Oct 12 19:19:27 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/ACE-tutorials.html:
- Added a link to Bob McWhirter's Frequently Made Mistakes page.
-
- * docs/tutorials/014/Makefile
- * docs/tutorials/014/Task.{cpp|h}
- * docs/tutorials/014/EndTask.h
- * docs/tutorials/014/stream.cpp
- * docs/tutorials/014/page0[123456].html
- A slightly modified version of Bob McWhirter's ACE_Stream tutorial.
-
-Mon Oct 12 15:59:00 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Message_Block.cpp (size): removed unused local "old_base".
-
-Mon Oct 12 11:24:45 PDT 1998 James Hu <jxh@entera.com>
-
- * Asynch_IO.cpp: Minor changes to deal with FMR error.
-
- * Message_Block.{cpp,i,h}: Changed rd_ptr_ and wr_ptr_ to be
- byte offsets from base (). This allows one to resize a
- duplicate without trashing other Message_Blocks that may be
- referring to the same data block.
-
- * Proactor.cpp: Made the message block 64 bytes bigger to make
- purify happier.
-
-Mon Oct 12 12:14:45 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Parse_Node.cpp (ACE_Stream_Node): In error cases, the strops
- parameter can be NULL. Therefore, we need to protect against
- this case. Thanks to David O'Farrell <dave@virgo.aersoft.ie>
- for reporting this.
-
-Mon Oct 12 10:43:09 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Asynch_IO.cpp (ACE_Asynch_Result): Fixed a double deletion
- problem. Thanks to James Hu for reporting this.
-
-Mon Oct 12 09:43:07 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Containers_T.h:
- * ace/Containers_T.cpp:
- Added a new method to modify the size of an ACE_Array.
-
-Mon Oct 12 09:23:49 1998 David L. Levine <levine@cs.wustl.edu>
-
- * netsvcs/lib/Name_Handler.cpp (lists_entries): one more try
- to fix the egcs 1.1b bug: removed the ptmf temporary entirely.
-
-Sun Oct 11 17:33:22 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch.cpp: Fixed a typo, s/lock_/process_lock_/. Thanks to
- Naga for noticing this.
-
-Sun Oct 11 08:19:33 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-common.h: re-enabled msg_* undefs and defines,
- but for libc5 (non-glibc) only. Thanks to JM Strauss
- <jms97@club-internet.fr> for verifying that they're needed.
-
- * netsvcs/lib/Name_Handler.cpp (lists_entries): replaced
- switch statement with a multi-branch if statement, to
- avoid Internal compiler error 980331 with egcs 1.1b (2.91.57)
- (on Linux/alpha).
-
-Sat Oct 10 18:30:02 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch_T: Added a process condition abstraction for Chorus
- that is based on a condition variable stored in shared memory.
- Thanks Alberto Villarica <Alberto.Villarica.rav@nt.com> for
- this.
-
- * ace/Synch: Added a process mutex abstraction for Chorus that is
- based on a mutex stored in shared memory. Thanks Alberto
- Villarica <Alberto.Villarica.rav@nt.com> for this.
-
- * ace/config-chorus.h: Updated the config file for Chorus. Thanks
- Alberto Villarica <Alberto.Villarica.rav@nt.com> for this.
-
- * ace/OS.i: Added rudimentary flock support for Chorus. Thanks
- Alberto Villarica <Alberto.Villarica.rav@nt.com> for this.
-
- * ace/OS.i: Added exec*() support for Chorus. Thanks Alberto
- Villarica <Alberto.Villarica.rav@nt.com> for this.
-
- * ace/config-chorus.h: Added #include of file <am/wait.h>.
-
- * ace/Local_Name_Space_T.cpp (create_manager_i): Added a special
- case for CHORUS so that we use a base address of 0. Thanks to
- Alberto Villarica <Alberto.Villarica.rav@nt.com> for reporting
- this.
-
- * ace/Local_Name_Space_T.cpp (create_manager_i): Don't use
- ACE_OS::access() if the platform lacks it. Thanks to Alberto
- Villarica <Alberto.Villarica.rav@nt.com> for reporting this.
-
-Sat Oct 10 18:33:06 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * tests/Aio_Platform_Test.cpp: Comments.
-
-Sat Oct 10 17:42:18 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.52 released.
-
-Sat Oct 10 16:44:24 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Repository.cpp: Improved the documentation and added
- some new ACE_const_casts. Thanks to Eric Palantir
- <palantir@net56.net> for motivating this.
-
- * ace/Service_Config.cpp (open): The logger key should be set to
- the static logger key only if the key supplied is EQUAL with the
- default logger key. Thanks to Eric Palantir
- <palantir@net56.net> for reporting this.
-
-Sat Oct 10 16:28:00 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Synch.h:
- * ace/Synch.i:
- * ace/Synch.cpp:
- The ACE_Process_Mutex class was allocating one of its members
- from the heap, thus it could not be placed in shared memory.
- The problem was that the member required the creation of a
- unique name if the user did not provide one; making the buffer
- for this unique name a member of ACE_Process_Mutex allowed us to
- initialize the lock_ member while still allocating it as a
- member of the class. Thanks to Bob McWhirter
- <bob@netwrench.com> for helping to track this down.
-
-Sat Oct 10 12:45:31 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc_T.h: Added a documentation entry for class
- ACE_Cached_Allocator. Thanks to Erik Koerber
- <erik.koerber@siemens.at> for reporting this.
-
-Sat Oct 10 00:40:05 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.51 released.
-
-Fri Oct 09 23:47:42 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Mem_Map.cpp (map_it): Fixed the setting of length_ again.
- Hopefully, it will be right this time.
-
-Fri Oct 9 15:37:26 PDT 1998 James Hu <jxh@entera.com>
-
- * ace/Mem_Map.cpp: Protect against assigning 0 to length_. This
- was causing JAWS to fail.
-
-Fri Oct 9 16:59:26 1998 Nagarajan Surendran <naga@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/run_test:
- * examples/IPC_SAP/SOCK_SAP/summarize:
- Fixed the scripts to print the results correctly.Fixed
- comments and usage.
-
-Fri Oct 09 16:35:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Timer_Queue_Adapters.cpp
- ace/ace_dll.dsp
- examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{cpp, h}:
- Fixes for deferred callbacks in the BPR example on NT.
-
-Fri Oct 09 11:59:26 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: removed RM override
- because it's not necessary. Thanks to
- Tres Seaver <tseaver@palladion.com> for this suggestion.
-
- * include/makeinclude/platform_chorus_ghs.GNU,
- platform_irix6.x-sgic++.GNU,platform_osf1_3.2.GNU,
- platform_osf1_4.0.GNU,platform_osf1_4.0_rcc.GNU,
- platform_sunos5_sunc++.GNU:
- replaced hard-coded /bin/rm -f with $(RM). Thanks to
- Tres Seaver <tseaver@palladion.com> for this suggestion.
-
- * ace/Containers_T.{h,cpp}: removed unecessary (and impolite)
- argument name.
-
-Fri Oct 09 00:44:21 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (mmap): CreateFileMapping must be created with a length
- of 0 (which will get translated to the size of the file). This
- must not be <len> since <len> only deals with the mapping of the
- view and not with the file mapping object. It is ok to use 0
- since we are trying to emulate UNIX's mmap.
-
- * ace/ACE.cpp (round_to_allocation_granularity):
- ace/OS.i (allocation_granularity):
-
- New methods. We need allocation granularity when rounding off
- the offset in mmap and not the page size. Only on Win32,
- allocation granularity is different from pagesize.
-
- * ace/High_Res_Timer.cpp: Added the inclusion of Object_Manager.h.
- Otherwise, NT was picking up the definition of
- ACE_Static_Object_Lock.
-
- * ace/Mem_Map.cpp (map_it): Fixed the problem where a requested
- length of less than the filesize was being ignored. Also,
- changed round_to_pagesize() to round_to_allocation_granularity().
- Thanks to Jonathan Reis <reis@minniemouse.cemax.com> for
- pointing this bug out.
-
-Fri Oct 09 00:02:01 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Asynch_IO.cpp: The YET another problem with doing multiple
- Asynch_Accepts have been fixed. Thanks very much James Hu for
- reporting this. I was calling reactor's resume_handlers and
- suspend_handlers instead of only for one handle. Thanks very
- much Irfan! for pointing this out.
-
-Thu Oct 08 23:06:20 1998 David L. Levine <levine@cs.wustl.edu>
-
- * config-linux-common.h: on Alpha only, added ACE_POLL_IS_BROKEN.
- High_Res_Timer_Test revealed that it's necessary with
- glibc 2.0.7-13. I don't think that its necessary on
- Pentiums, but maybe it depends on glibc version.
-
- * OS.i (gethrtime),High_Res_Timer.cpp OS.i,README:
- added ACE_HAS_ALPHA_TIMER support. See the comment
- in ACE_OS::gethrtime about it being limited to 32 bits.
- I don't know why, but that severely limits the range
- of high res times. Therefore, it's not enabled by default
- in any config files.
-
-Thu Oct 08 15:22:22 1998 Arturo Montes <mitosys@colomsat.com.co>
-
- * ace/OS.{i,cpp}: Reverted FSU thread changes for now.
-
-Thu Oct 08 15:11:34 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE-INSTALL.html: Updated document about spawning new thread
- when ACE_HAS_MFC is defined. CWinBeginThread is not used
- automatically. Users have to explicitly ask for this.
-
-Thu Oct 8 12:11:08 1998 Nagarajan Surendran <naga@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/run_test:
- * examples/IPC_SAP/SOCK_SAP/summarize:
-
- Added these scripts to run the test and summarize the
- results. These scripts are modelled similar to the
- $TAO_ROOT/performance-tests/Cubit/TAO/MT_Cubit scripts.
- Thanks to David for the scripts.
-
-Thu Oct 08 08:23:09 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp (get_registry_scale_factor):
- default global_scale_factor to 1000 instead of 1,
- because ACE_OS::gethrtime () defaults to nanoseconds.
- Thanks to Peter Nordlund <petern@nada.kth.se> for
- reporting that High_Res_Timer_Test failed on Irix without
- this fix.
-
- * ace/Makefile (Svc_Conf_l.cpp): use Doug's flex to generate
- this file, if running on a DOC group machine, instead of
- using whatever flex is first on the users path.
-
- * etc/README: fixed typo.
-
- * ace/Svc_Conf_l.cpp,etc/Svc_Conf_l.cpp.diff (ACE_YY_DECL):
- initialize ace_yy_cp and ace_yy_bp to 0 to avoid egcs 1.1
- warning about possible use before initialization.
-
-Wed Oct 7 23:47:29 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * ace/Asynch_IO.cpp:
- * ace/Proactor.cpp : Fixed the problem with doing multiple
- Asynch_Accepts. Thanks to James Hu for reporting this
- problem. Thanks very much Irfan!!!, for helping me a lot in fixing
- this one.
-
-Wed Oct 07 23:14:36 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.50 released.
-
-Wed Oct 7 21:44:20 1998 Douglas C. Schmidt <schmidt@lambada.cs.wustl.edu>
-
- * ace/Stream.h: Added a default value of 0 for both put() and
- get(), which is more consistent with the underlying putq() and
- getq() methods on ACE_Task. Thanks to Bob McWhirter
- <bob@netwrench.com> for this suggestion.
-
-Wed Oct 7 18:18:14 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * README:
- * ace/config-irix6.x-g++.h:
- * ace/config-irix6.x-common.h:
- * ace/config-irix6.x-sgic++-nothreads.h:
- Peter Nordlund <petern@nada.kth.se> kindly submitted a common
- configuration file for IRIX 6.X that works with both g++ and SGI
- MIPSPro 7.X
-
-Wed Oct 7 17:21:17 1998 Arturo Montes <mitosys@colomsat.com.co>
-
- * ace/OS.{i,cpp}: FSU pthreads is draft6, but FSU in SCO is an
- special port. The API is draft6 but return values is DRAFT7
- (really I am moving to STD).
-
-Wed Oct 07 09:30:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Functor.{cpp, h, i}
- ace/Functor_T.{cpp, h, i}
- ace/Makefile:
-
- Added ACE_Command_Base abstract base class and derived class
- template ACE_Command_Callback to ACE to support the GOF Command
- design pattern.
-
- * ace/Timer_Queue_Adapters.{cpp, h}:
-
- Added registration and deferred executiton of ACE_Command_Base
- objects to ACE_Thread_Timer_Queue_Adapter. This is conditionally
- compiled if the ACE_HAS_DEFERRED_TIMER_COMMANDS symbol is defined.
-
- * examples/Bounded_Packet_Relay/BPR_Drivers.{cpp, h}
- examples/Bounded_Packet_Relay/BPR_Drivers_T.{cpp, h}
- examples/Bounded_Packet_Relay/Makefile
- examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{cpp, h}
- examples/Bounded_Packet_Relay/bpr_thread.cpp:
-
- Changed example to use ACE_Command_Callback objects, modified event
- handlers to register ACE_Command_Callback objects for deferred
- excecution of timer cancellations and registrations.
-
-Wed Oct 07 02:37:58 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.49 released.
-
-Wed Oct 7 00:11:33 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added more information on using MFC with ACE,
- some explanations about using run-time libraries and information
- about VC6.
-
- * tests/version_tests/version_tests.dsw: Removed
- MsgQueue_Notifications_Test.dsp and added
- Message_Queue_Notifications_Test.
-
- * tests/*.dsp: Changed to use DLL version of run-time libraries
- for static builds. Notice that user libraries are still linked
- in statically. Only the run-time libraries are effected.
-
- * ace/README: Added information for ACE_USES_STATIC_MFC.
-
- * ace/config-win32-common.h: Re-structured MFC related macros
- (_AFXDLL and _WINDLL) so that it allows us to use MFC in static
- ACE libraries and the setting of MFC can propagate to
- applications. By default, ACE uses MFC DLL if ACE_HAS_MFC=1.
- If you want to use MFC as a static library, besides
- ACE_HAS_MFC=1, also define ACE_USES_STATIC_MFC. Thanks to Jason
- Milley <Jason.Milley.jcmilley@nt.com> for noticing the problem
- of compiling static ACE library with MFC.
-
-Tue Oct 6 15:06:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Asynch_IO.cpp (ACE_Asynch_Accept_Handler): Removed the
- version of the ctor with no args - it's equivalent to the one
- with all defaulted args, and HP aCC complained.
-
- * ace/NT_Service.{h cpp i}: New class, ACE_NT_Service. This provides
- a class and supporting macros to integrate NT Services into the
- ACE framework at run-time. I'll work on getting an example into
- the kit soon.
-
- * ace/ACE_Library.{mak mdp}:
- ace/ace_dll.dsp, ace_lib.dsp: Added NT_Service files.
-
-Tue Oct 6 12:49:37 EDT 1998 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/006/client_handler.cpp
- * docs/tutorials/006/page05.html
- Susan Liebeskind discovered that invoking the baseclass
- close() after handle_close() in Client_Handler::close()
- causes the object to be destructed twice. I've removed
- the call to the baseclass close(). She reports success
- on Solaris, Dec and AIX. I've verified that Linux also
- works fine with this fix.
-
-Tue Oct 06 09:53:22 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-fsu-pthread.h,config-mit-pthread.h,config-mvs.h,
- config-sco-5.0.0-mit-pthread.h,config-tandem.h,README:
- removed ACE_HAS_YIELD_VOID_PTR because it's no longer used.
- Thanks to Ossama for reporting this.
-
- * config-dgux-4.x-ghs.h,config-hpux-10.x.h,config-mit-pthread.h,
- config-mvs.h,config-sco-5.0.0-mit-pthread.h,config-tandem.h,README:
- removed ACE_LACKS_KEYDELETE because it's no longer used. Thanks to
- Ossama for reporting this.
-
-Tue Oct 06 03:36:22 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.48 released.
-
-Tue Oct 06 02:53:28 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.47 released.
-
-Tue Oct 6 02:16:01 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Asynch_Acceptor.cpp:
- * ace/Asynch_IO.cpp (handle_input):
- * ace/Proactor.cpp:
- In POSIX implementation of Asynch_Accept, We dont have to read
- initial data to read on to the Message Block given to the
- Asynch_Accept. So we dont use it at all. We get local and peer
- address from using socket and pass back to the application.
-
-Mon Oct 05 23:58:16 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.46 released.
-
-Mon Oct 5 23:19:30 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (fork): Changed to use fork1 when ACE_HAS_STHREAD is
- defined. Otherwise, file descriptors get messed up and socket
- connections get lost after exec'ing a new program. Generally
- speaking, you should not simply fork a multi-threaded program
- without calling exec (). On pthread compliant platform, fork
- does what fork1 does on solaris thread.
-
-Mon Oct 05 21:21:42 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.45 released.
-
-Mon Oct 05 15:59:55 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.44 released.
-
-Mon Oct 05 15:23:04 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.43 released.
-
-Mon Oct 5 15:34:41 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/002/handler.h: Added includes for INET_Addr.h,
- SOCK_Stream.h and Reactor.h. Susan Liebeskind pointed out that
- AIX gets confused in processing templates if these aren't present.
-
-Mon Oct 05 10:02:37 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-chorus.h: added ACE_LACKS_TRUNCATE. Thanks
- to Steve Kay <slk1@icore.ih.lucent.com> for reporting this.
-
- * tests/Semaphore_Test.cpp: added some ifdefs so that it
- builds cleanly with ACE_HAS_POSIX_SEM.
-
-Sun Oct 05 03:49:09 PDT 1998 James Hu <jxh@entera.com>
-
- * ace/Asynch_Accept.*
- * ace/Asynch_IO.*
- Made some small modifications to support passing in and
- retrieving an ACT when performing asynchronous accept.
-
-Sun Oct 04 22:07:09 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-fsu-pthread.h,config-hpux-10.x.h,config-lynxos.h,
- config-mit-pthread.h,config-mvs.h,config-osf1-3.2.h,
- config-osf1-4.0.h,config-sco-5.0.0-mit-pthread.h,config-tandem.h,
- README: removed ACE_HAS_PTHREAD_GETSPECIFIC_DATAPTR, because it's
- no longer used. Thanks to Ossama for reporting this.
-
- * ace/config-tandem.h,README: removed ACE_HAS_PTHREAD_YIELD_VOIDPTR,
- because it's no longer used. It was commented out in
- config-tandem.h, anyways. Thanks to Ossama for reporting this.
-
-Sun Oct 4 20:00:44 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Fixed the regular expression to detect compile errors.
- The user can pass extra arguments to GNU make, the arguments are
- given as the script is invoked.
-
-Sun Oct 4 14:30:03 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (handle_events): Made sure we never suspend
- the <notify_handler_> without holding the <token_>. Otherwise,
- depend on how an OS schedules ready threads, we may have a
- Reactor that could never be woken up. This leads to a very
- delicate race condition when other threads which need to modify
- Reactor's state get block on the token (because they couldn't
- wake up the reactor). These threads later block the
- nofify_handler thread when it's ready to resume
- <notify_handler_.>
- (notify_handle): Since we don't suspend the <notify_handler_>,
- there's no need to resume it here.
-
-Sat Oct 3 13:11:48 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Removed some of the tests, they were crashing more often than
- not.
-
-Sat Oct 3 09:36:09 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_proactor.cpp: Comments.
-
-Sat Oct 03 09:24:45 1998 Susan Liebeskind <shl@cc.gatech.edu>
-
- * ace/Task.h,Thread.h,Thread_Manager.h,Timer_Queue_Adapters.h
- (activate,spawn,spawn_n): added THR_JOINABLE to THR_NEW_LWP
- default flags.
-
- On the boxes which implement POSIX 1003.1.b (Solaris, Digital Unix)
- threads spawned using default flags provided by those methods were,
- and still are, created *joinable*.
-
- On the box which implements Draft 7 (AIX), the spawned threads were
- *detached*. With this change, they'll be created *joinable*,
- instead.
-
- This change ensures consistent behavior across all platforms.
-
-Sat Oct 03 09:04:44 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.cpp (set_handle_limit): wrapped the final
- return statement with #ifdef __sgi. Irix complains without
- this return statement. DEC cxx (correctly) says that it's not
- reachable. ACE_NOTREACHED won't work here, because it handles
- both platforms the same.
-
- * include/makeinclude/wrapper_macros.GNU: with quantify=1
- on sparcs, add -record-register-window-traps to $(PRELINK).
- Thanks to Andy for discovering this Quantify option, for sparcs.
-
-Fri Oct 2 23:43:51 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-g++.h:
- * ace/config-irix6.x-sgic++-nothreads.h:
- * ace/OS.h:
- IRIX puts <xti.h> in <sys/xti.h> header of IRIX, it is only
- relevant for the autoconf project.
-
- * ace/ACE.cpp:
- Added an extra return to make IRIX compiler happy.
-
-Fri Oct 2 21:48:18 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Test.cpp: Send the message length
- before each message so we don't need to use time delay to
- separate consecutive requests.
-
-Fri Oct 02 16:27:07 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp: ACEified some code.
- (terminate): Do not register a thread as being terminated if it
- is being joined by another thread. Just remove it from
- Thread_Manager's thr_list_.
-
-Fri Oct 2 00:19:04 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Test.cpp: Fixed explicit template
- instantiation.
-
- * ace/Strategies_T.{h,i,cpp}: Removed classes
- ACE_Thread_Pool_Strategy and ACE_Svc_Handler_Pool_Strategy.
-
- * tests/run_tests.{sh,bat}: Added Thread_Pool_Reactor_Test into
- one-buttoned test scripts.
-
-Thu Oct 01 12:04:30 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Test.cpp: Added a command line argument
- parser.
-
-Thu Oct 1 08:51:00 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Test.cpp: Reformatted the
- code a bit.
-
- * ace/ACE.cpp (max_handles): Added yet another fix for AIX.
- Thanks to Chris Lahey for this.
-
-Thu Oct 01 01:05:49 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/tests.dsw:
- * tests/version_tests/version_tests.dsw:
- * tests/Thread_Pool_Reactor_Test.{cpp,dsp}: Added a new test that
- torture tests the new ACE_TP_Reactor.
-
-Thu Oct 01 00:09:35 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE.cpp: Fixed max_handles().
-
- * tests/Conn_Test: Removed template specialization for
- INET_Addr.hash().
-
- * ace/Addr.i (hash):
- * ace/INET_Addr.i (hash):
-
- Finally gave up with template specialization hell and freak'in
- broken compilers and simply added a hash() method to ACE_Addr
- and ACE_INET_Addr. ACE_Addr::hash() simply return 0 and should
- be overwritten by subclasses that can provide better hashing.
-
-Wed Sep 30 10:16:56 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.cpp: Modified max_handles() so that it goes the right
- thing on platforms like AIX that don't have any predefined limit
- on the number of handles. Thanks to Chris Lahey
- <CLahey@cccis.com> for reporting this.
-
-Wed Sep 30 01:56:54 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T:
-
- - ACE_Refcounted_Hash_Recyclable::operator==(const T &rhs):
- Added new method to prevent implicit type conversions.
-
- - Changed ACE_Hash_Addr::hash_i to return u_long instead of
- size_t. This makes it similar to the return value from
- hash().
-
- - Added hash caching ability to ACE_Hashable.
-
- - Removed the use of ACE_Hash_Addr inside the
- ACE_Cached_Connect_Strategy. This allows us to reduce
- implicit type conversions inside connect_svc_handler().
-
- Users are now required to specialize
- ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>::hash_i (void) instead
- of ACE_Hash_Addr<ACE_INET_Addr>::hash_i(const ACE_INET_Addr&addr)
-
- * tests/Conn_Test.cpp: Changed template specialization of
- ACE_Hash_Addr<ACE_INET_Addr>::hash_i(const ACE_INET_Addr&addr)
- to ACE_Refcounted_Hash_Recyclable<ACE_INET_Addr>::hash_i (void).
-
- * ace/OS.cpp (open): Fixed a couple of things that were broken
- with respect to when the SetFilePointer was called and when lock
- was released. Also fixed the UNICODE version of open(). BTW,
- these functions had to be moved from OS.i to OS.cpp since the
- ACE_Managed_Object is not visible from OS.i.
-
-Wed Sep 30 02:29:48 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * performance-tests/TTCP/ACE-C++/Makefile:
- * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp:
- Hacked so it would compile, don't know anything further than
- that.
-
-Tue Sep 29 21:55:52 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ace.dsw: Removed Connector.cpp from the compile list since
- it is a files with template classes only.
-
-Tue Sep 29 21:14:02 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (open): Grab a lock from the Object_Manager when
- O_APPEND is defined to simulate atomic behavior on most UNIX
- platforms. Thanks to Irfan.
-
-Tue Sep 29 19:16:57 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/007/thread_pool.h
- * docs/tutorials/007/thread_pool.cpp
- Added virtual methods for open() and close() that match the
- baseclass. This will keep some compilers from complaining about a
- partial-overload attempt. Thanks to Bob McWhirter for catching this.
-
-Tue Sep 29 16:13:10 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T:
- * ace/Connector:
-
- Added accessors for the strategy.
-
-Tue Sep 29 14:04:49 EDT 1998 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/013/page08.html: Removed link to message_queue.
- Thanks to Jeff Hellzen for pointing this out.
-
-Tue Sep 29 11:05:04 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/README: removed ACE_HAS_ONLY_TWO_PARAMS_FOR_ASCTIME_R_AND_CTIME_R
- because it is no longer used. Thanks to Ossama for reporting this.
-
- * ace/config-fsu-pthread.h,config-mit-pthread.h,config-mvs.h,
- config-sco-5.0.0-mit-pthread.h,config-tandem.h,README:
- removed ACE_HAS_PTHREAD_DSTATE_PTR because it is no longer used.
- Thanks to Ossama for reporting this.
-
-Mon Sep 28 20:35:49 1998 Sergio Flores <sergio@tango.cs.wustl.edu>
-
- * ace/Containers_T.h:
- * ace/Containers_T.cpp: Added begin () and end () to
- ACE_Unbounded_Queue.
-
-Mon Sep 28 16:06:05 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.*,Object_Manager.{h,cpp}: removed ACE_HAS_TSS_EMULATION's
- support for ACE_HAS_NATIVE_KEYS. Now, if ACE_HAS_TSS_EMULATION
- is used and ACE_HAS_THREAD_SPECIFIC_STORAGE is #defined, then
- the ACE TSS emulation will use one native TSS key.
-
- ACE_TSS_EMULATION may be useful even on platforms that
- have native thread specific storage. It offers these
- advantages:
-
- 1) ACE's TSS emulation offers a configurable number of TSS
- keys, via ACE_DEFAULT_THREAD_KEYS. Most (all?) native TSS
- implementations have a fixed number of keys. LynxOS 3.0.0,
- for example, only has three keys available to applications.
-
- ACE_DEFAULT_THREAD_KEYS defaults to 64, to match the
- number of native keys on Windows NT.
-
- 2) ACE's TSS emulation recycles deleted keys. Some native TSS
- implementations, such as POSIX Draft 4, POSIX Draft 6, and
- Solaris, do not allow deletion of TSS keys. Therefore,
- unused keys cannot be recycled.
-
- 3) ACE's TSS emulation calls destructors on TSS objects in the
- main thread. Solaris' native TSS, for example, does not.
-
- There is one known drawback to using ACE's TSS emulation: it is
- slower than using native TSS. The performance penalty is
- probably negligible for most applications, however. It involves
- just an additional function call, an array index, and three numeric
- comparisons beyond the native TSS call. The function call is
- _not_ a virtual function call. (On MVS, there's an additional
- memcpy of the TSS key with TSS emulation.)
-
- TSS emulation is enabled by default in the ACE configurations
- for VxWorks, pSOS, and LynxOS.
-
- Many thanks to Arturo Montes <mitosys@colomsat.net.co> for
- expanding TSS emulation to platform that have native TSS.
-
-Sun Sep 27 20:12:13 EDT 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/index.html: Linked in Tutorial 13
-
-Sun Sep 27 18:53:25 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Map_Manager_Test.cpp:
- Instead of clearing the capacity and size in the
- free_search_structure() method we do it on the close()
- method. The first method is also used in other places...
-
-Sun Sep 27 18:25:57 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (readdir_r): added __USE_POSIX test for three-arg
- ::readdir_r (). Thanks to james@tsunami.com for providing
- the patch.
-
-Sun Sep 27 09:35:04 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/013/*
- Completed Tutorial 013! The code is up to date and compilable on
- RedHat Linux with egcs 1.1. It may need some template help on other
- platforms. The HTML is done and in synch with the code.
-
-Sun Sep 27 01:52:36 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/INET_Addr.cpp:
- The get_host_name() method was returning the first name, and not
- looking up in the alias list for the right match with the
- address.
-
-Sun Sep 27 00:18:48 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Makefile: Updated dependency.
-
- * ace/OS.cpp (invoke):
- * ace/Thread_Manager.cpp (ace_thread_manager_adapter):
- (ACE_Thread_Exit::instance): Removed conditional macro
- ACE_HAS_PTHREAD_SIGMASK so the Thread_Exit instance can be place
- in TSS. This was guarded by ACE_HAS_PTHERAD_1003_DOT_3 which
- later merged with ACE_HAS_PTHERAD_SIGMASK. However, the
- origianl intension of this condition was to fix a bug in Xavier
- pthread implementation. The effect of merging the two macros
- forces ACE_Thread_Exit be allocated from stacks which, in turn,
- prevent threads from exiting properly when pthread_cancel is
- used.
-
- Linux is the only platform that I know which uses Xavier thread
- library. The bug has apparently been fixed. If your platform
- segfaults while spawning threads, please let me know. Thanks to
- Chris Gill for noticing the abnormal behavior when calling
- ACE_Thread::thr_cancel.
-
-Sat Sep 26 23:20:52 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Proactor.cpp: Fixed the g++ warnings.
-
-Fri Sep 25 23:19:52 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Sched_Params.cpp: use both ACE_HAS_STHREADS and
- ACE_HAS_PRIOCNTL. With just ACE_HAS_PRIOCNTL, the
- min/max priority values weren't right on DU 4.0. With
- this change, we're back to the strict POSIX interface
- on DU 4.0, and SunOS if ACE_HAS_STHREADS is not #defined.
-
-Fri Sep 25 21:58:35 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE.cpp (set_handle_limit): Added appropriate return value.
-
-Fri Sep 25 22:10:38 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Map_Manager.cpp:
- Map_Manager::close() did not reset the capacity or current size
- of the map.
-
-Fri Sep 25 18:24:17 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Proactor.{h,cpp}: Had to allow the definition of
- POSIX_COMPLETION_STRATEGY for the do-nothing constructor on
- NT.
-
-Fri Sep 25 18:07:19 EDT 1998 James CE Johnson <jcej@lads.com>
-
- * A few more minor changes to docs/tutorials/013. With luck, the
- HTML part will be done this weekend!
-
-Fri Sep 25 14:51:54 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Asynch_IO.h:
- * ace/Asynch_IO.cpp:
- * ace/Proactor.h:
- * ace/Proactor.cpp:
- Implemented Asynch_Accept to work for AIO_CONTROL_BLOCKS strategy of
- completion notification.
-
- Defined an auxillary Accept_Handler called ACE_AIO_Accept_Handler in
- addition to the ACE_Asynch_Accept_Handler. ACE_AIO_Accept_Handler
- holds the notification pipe and does a read on it to handle the
- <ACE_Asynch_Accept::Result> coming from Asynch_Accept_handler.
-
- THANKS to Doug and Irfan for suggesting this 'notification pipe' based
- implementation for AIO_CONTROL_BLOCKS strategy, so that Proactor will
- work on platforms where POSIX4 RT_Signals are broken (Solaris 2.6 !)
-
- Note : Proactor uses AIO_CONTROL_BLOACKS strategy by default on
- POSIX4 platforms. Call the constructor with RT_SIGNALS to enable
- Real Time singal implementation.
-
- This should become very easier when we finish organizing these
- files according to the Bridge pattern.
-
-Fri Sep 25 12:40:45 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.{5,6}.h: removed #define/#undef of
- ACE_THR_PRI_FIFO_DEF. They're no longer needed with the
- hard-coded ACE_THR_PRI_* values for Solaris in ace/OS.h.
-
- * ace/OS.i: removed carriage returns. Thanks to Darrell
- for noticing it.
-
- * tests/Handle_Set_Test.cpp: removed ACE_Node<ACE_HANDLE>
- template instantiation because it conflicted with the
- ACE_Node<ACE_INT32> instantiation in ace/Stats.cpp.
-
- * docs/ACE-porting.html: updated "auto configure" link. Thanks
- to Ossama for reporting this.
-
- * ace/ACE.cpp (set_handle_limit): on platforms with
- ACE_LACKS_RLIMIT or ! RLIMIT_NOFILE, don't use
- ACE_NOTSUP_RETURN if the new_limit is <= the cur_limit.
- On those platforms, the limit can't be changed anyways,
- and the request was _not_ to increase the limit. So,
- it's a no-op; just return 0.
-
-Fri Sep 25 12:15:00 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace: The following ACE_TRACE calls being made during the
- creation of the ACE_Log_Msg instance. The ACE_TRACE calls then
- try to create the ACE_Log_Msg instance which then ends up
- executing the ACE_TRACE's. Etc, etc, etc...
-
- Here are the methods with the ACE_TRACEs that I commented out to
- get ACE to run:
-
- ACE_IPC_SAP::~ACE_IPC_SAP
- ACE_SOCK::ACE_SOCK
- ACE_SOCK::~ACE_SOCK
- ACE_SOCK_IO::ACE_SOCK_IO
- ACE_SOCK_IO::~ACE_SOCK_IO
- ACE_SOCK_Stream::ACE_SOCK_Stream
- ACE_SOCK_Stream::~ACE_SOCK_Stream
- ACE_Thread::keycreate
- ACE_Thread::setspecific
- ACE_Thread::getspecific
-
- Thanks to "Patrick J. McNerthney" <pat@cartia.com> for this bug
- report.
-
-Fri Sep 25 10:10:12 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (cond_timedwait): Add EINTR to the list of errno values
- that get changed to ETIME on wait timeout. EINTR is from LynxOS.
- Thanks to David Levine for this fix.
-
- * tests/Semaphore_Test.cpp: Remove the assertion that a timed out
- semaphore will return EINTR for ACE_HAS_PTHREADS_DRAFT4. All
- platforms expect ETIME, which is normalized in
- ACE_OS::cond_timedwait.
-
-Thu Sep 24 22:31:30 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: hard-coded the ACE_THR_PRI_* values on suns.
- SunOS 5.6 could use sched_get_priority_min/max () for FIFO
- and RR. But for OTHER, it returns negative values, which
- can't be used. And, sched_get_priority_min/max () aren't
- supported in SunOS 5.5.1. It would really be helpful
- if SunOS defined PRI_FIFO_MIN, etc., in sched.h, but
- it doesn't, probably because its process scheduling is
- so flexible. Thanks to Russ Noseworthy
- <rnosewor@objectsciences.com> for helping to figure this
- out.
-
-Thu Sep 24 17:54:26 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Asynch_IO.cpp:
- Removed duplicate instantiation of a template, IRIX does not
- like this. Thanks to Ossama Othman
- <othman@astrosun.tn.cornell.edu> because his configure script
- detected the Asynch I/O calls on IRIX and enabled this ACE
- code.
-
-Thu Sep 24 16:28:32 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/config-win32-common.h: ACE_HAS_TEMPLATE_TYPEDEFS was defined
- for VC4.1 and VC4.2. Template typedefs in Strategies_T.cpp
- broke the VC4.2 compiler. Therefore, ACE_HAS_TEMPLATE_TYPEDEFS
- was deprecated for VC4.1 and VC4.2. I also checked VC5.0 and it
- didn't work. Therefore, for the time being, none of the VC
- compilers support ACE_HAS_TEMPLATE_TYPEDEFS. I didn't try
- VC6.0.
-
- * ace/Strategies_T.cpp (check_hint_i ): Changed the signature so
- that it is identical to find_or_create_svc_handler_i(). For
- some strange freakin reason, the VC4.2 could not gork
- check_hint_i() but was able to gork
- find_or_create_svc_handler_i.
-
- * ace/ACE_Library.mdp: Added Select_Reactor_Base.cpp and
- Container.cpp to make ACE build with VC4.2.
-
-Thu Sep 24 13:30:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/README
- examples/Bounded_Packet_Relay/Bounded_Packet_Relay.{dsp,dsw}
-
- Updated README, added in MSVC++ project, workspace files.
-
-Thu Sep 24 12:48:58 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Containers_T.cpp (ACE_{Bounded,Fixed}_Set_Iterator::done),
- ace/Map_Manager.cpp (ACE_Map_Iterator_Base::done):
- added ACE_CAST_CONST to the static cast. Thanks to Ossama for
- reporting a compilation failure on Sun C++ 4.2/Solaris 2.6
- without it.
-
- * ace/High_Res_Timer.cpp (global_scale_factor): on Linux,
- only use BogoMips if the CPU is an alpha. It would also
- work directly on Pentium Pro, but not other Pentiums. With
- a little effort, it could be made to work there, see the
- BogoMips mini-HOWTO. Thanks to Ossama for enlightening me
- on this corner of Linux.
-
- * tests/Upgradable_RW_Test.cpp (main): delete dynamically
- allocated reader_tasks and writer_tasks, and arrays, at end of test.
-
-Thu Sep 24 09:17:32 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Containers_T.h: Added #include "ace/Containers.h" - AIX xlC
- needs this when instantiating templates.
-
- * ace/Dirent.cpp: Do the HP check using only compiler-defined
- preprocessor macros since config.h isn't included.
-
- * ace/OS.i: Fixed comments that referenced DCE threads.
- Changed readdir_r #ifdefs to handle pthreads drafts 4 and 6
- the same, and split HP-UX 10.x off as a non-conformant player.
- Thanks to David Levine for sorting this out with LynxOS.
-
- * ace/Thread_Manager.cpp: Changed occurrences of
- ACE_HAS_DCE_DRAFT4_THREADS to ACE_HAS_PTHREADS_DRAFT4. Corrected
- a call to pthread_detach. Changed a couple of calls to
- pthread_detach on HP-UX 10.x to duplicate the thread handle before
- the call because pthread_detach on HP-UX 10.x clears the handle
- and it was still needed.
- On AIX, xlC doesn't match the call to
- ACE_Thread::join(ACE_hthread_t, void ** = 0) correctly when the
- second arg is specified. So call the 3-arg variety on AIX, knowing
- that the second arg is ignored underneath on pthreads.
-
-Wed Sep 23 22:13:04 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/006/server.cpp:
- Wrapped !defined(ACE_HAS_GNU_REPO) around the explicit template
- instantiation.
-
- * docs/tutorials/005/client_handler.cpp (handle_input):
- * docs/tutorials/006/client_handler.cpp (svc):
- * docs/tutorials/006/client_handler.cpp (handle_input):
- * docs/tutorials/007/client_handler.cpp (svc):
- * docs/tutorials/007/client_handler.cpp (handle_input):
- Use ACE_OS::memset() instead of direct call to memset()
-
- * docs/tutorials/005/Makefile:
- * docs/tutorials/007/Makefile:
- Touch .depend if it does not exist.
-
-Wed Sep 23 22:03:19 1998 Arturo Montes <mitosys@colomsat.net.co>
-
- * ace/config-sco-5.0.0.h: added ACE_LACKS_READDIR_R.
-
-Wed Sep 23 14:26:44 EDT 1998 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/005/server.cpp
- docs/tutorials/006/server.cpp
- docs/tutorials/007/server.cpp
- docs/tutorials/008/Makefile
- docs/tutorials/009/Makefile
- docs/tutorials/013/Makefile
- docs/tutorials/013/block.cpp
- docs/tutorials/013/block.h
- docs/tutorials/013/data.h
- docs/tutorials/013/message_queue.cpp
- docs/tutorials/013/mld.cpp
- docs/tutorials/013/mld.h
- docs/tutorials/013/page01.html
- docs/tutorials/013/page02.html
- docs/tutorials/013/page03.html
- docs/tutorials/013/page04.html
- docs/tutorials/013/task.cpp
- docs/tutorials/013/task.h
- docs/tutorials/013/work.cpp
- docs/tutorials/013/work.h
-
- Fixed explicit template instantiaions in
- tutorials 5, 6, 7.
-
- Fixed a nasty bug in 9's Makefile (and removed
- similar comment in 8's Makefile)
-
- Preliminary version of 013 committed. The code
- worked before I began "optimizing" and should work
- again in a couple of days. The HTML is not yet
- done but will be by the weekend (I hope).
-
-Wed Sep 23 12:15:21 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Stats.*: modified standard deviation calculation to
- help avoid overflow. Instead of keep running totals of
- the sum and sum of squares, it stores each sample in an
- dynamic structure. Then, to calculate the standard
- deviation, each sample is compared with the mean.
-
- * ace/Sched_Params.cpp: replace ACE_HAS_STHREADS with
- ACE_HAS_PRIOCNTL. Thanks to Ossama for pointing this out.
-
- * ace/Synch.h: replaced #endif /* ACE_HAS_STHREADS */ with
- #endif /* 0 */.
-
- * performance-tests/TTCP/{ACE-C++,C,Orbix}/Makefile: removed
- old Quantify LINK_COMMANDs. They don't look like they're used
- anywhere.
-
- * include/makeinclude/wrapper_macros.GNU: removed -DACE_QUANTIFY
- and -Dquantify, with quantify=1, because they're no longer used.
-
- * ace/OS.h,README: added ACE_LACKS_CMSG_DATA_{MACRO/MEMBER} support.
- It will be used by autoconf, for Linux libc5 (pre-libc). Thanks
- to Ossama for supplying it.
-
- * ace/config-g++-common.h: disable ACE_HAS_TEMPLATE_SPECIALIZATION
- with g++ 2.9. Thanks to Andrew G. Harvey <agh@cisco.com> for a
- problem with compiling ace/Filecache.cpp with g++ 2.9 on SunOS 5.5.1.
-
- * tests/Upgradeable_RW_Test.h: replaced ACE_Thread_Mutex with
- ACE_SYNCH_MUTEX. Thanks to Ossama for reporting this.
-
- * ace/config-linux-common.h: commented out the msg_accrights(len)
- #defines. Thanks to Ossama for noticing that they just don't
- look right. They no longer appear to be necessary on Linux.
-
-Wed Sep 23 11:30:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp}
- examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp}
- examples/Bounded_Packet_Relay/BPR_Drivers_T.{h,cpp}
-
- Fixed memory leaks uncovered by Purify, added large high water mark
- for packet relay's underlying message queue.
-
-Wed Sep 23 11:28:13 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/Process_Unix.pm:
- If the exec() call fails we report the name and the arguments of
- the program.
-
-Wed Sep 23 09:27:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Dirent.cpp: Fixed aCC workaround from 22-Sep so that only
- non-g++ compilers on HP-UX see it.
-
-Wed Sep 23 02:21:24 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.42 released.
-
-Tue Sep 22 21:34:31 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Dirent.cpp: Make aCC quit yacking about an empty translation
- unit.
-
- * ace/OS.i: Fix up the conditions for readdir_r on differing pthreads
- drafts.
-
- * ace/config-aix-4.2.x.h: Added ACE_HAS_DIRENT.
-
-Tue Sep 22 21:00:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp}
- examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp}
- examples/Bounded_Packet_Relay/BPR_Drivers_T.{h,cpp}
- examples/Bounded_Packet_Relay/bpr_thread.cpp:
-
- More fixes from testing on NT, added more logging features.
-
-Tue Sep 22 17:07:17 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Message_Queue_Notifications_Test.cpp (Watermark_Test):
- Repositioned a comma so it compiles on non-threaded platforms.
- Thankd to Ossama for noticing this.
-
-Tue Sep 22 17:20:53 1998 James Hu <jxh@entera.com>
-
- * ace/Containers_T.{h,i}:
- Added a remove method to the ACE_DLList_Iterator. This is
- needed since ACE_DLList is actually an abstraction over
- ACE_Double_Linked_List, so the user of ACE_DLList does not hold
- the address of the "real" node that ACE_Double_Linked_List is
- managing.
-
-Tue Sep 22 16:07:53 1998 Steve Huston <shuston@riverace.com>
-
- * bin/Makefile: Will now only build envinfo if make is invoked
- with "envinfo=1". The difference is needed to allow clone to be
- built before ACE has been built.
-
-Tue Sep 22 13:58:06 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-g++.h:
- Added some missing defines, thanks to JM Strauss
- <jms97@club-internet.fr> for pointing them out. Also fixed a
- test for the N32 ABI, it said _NABI32 and should be _ABIN32.
-
-Tue Sep 22 11:42:17 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: added ACE_HAS_POWERPC_TIMER with
- __powerpc__, but commented it out because it requires an OS patch.
-
- * ace/OS.i (fstat): put a :: in front of the call to the
- system fstat if it's not defined as a macro. Thanks to
- Ossama for reporting that MM_Shared_Memory_Test failed
- otherwise.
-
-Tue Sep 22 10:58:04 1998 Ossama Othman <othman@astrosun.tn.cornell.edu>
-
- * ace/OS.i (ACE_cond_t::waiters): only define this function if
- ACE_HAS_THREADS.
-
- Testing the autoconf integration on a Linux libc5 system w/o
- threads caused me problems since ACE_LACKS_COND_T gets
- defined by the configure script automatically since no
- condition variable support was found. The ACE_cond_t class
- appears to only get defined if ACE_HAS_THREADS is defined,
- otherwise ACE_cond_t is typedefed to an int. For
- this reason, I thought that it would be a good idea to make
- the above modification to prevent compile time errors on
- platforms without threads and when ACE_LACKS_COND_T is
- defined on those platforms.
-
-Tue Sep 22 03:09:07 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.41 released.
-
-Tue Sep 22 00:31:26 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Record.cpp (print): Make sure that the process id and
- timestamp are fixed width. Thanks to Valery Arkhangorodsky
- <avalery@geocities.com> for this fix.
-
-Mon Sep 21 22:54:44 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay: Removed a gratuitous
- parameterized type which was causing problems for SunC++.
-
-Mon Sep 21 21:47:12 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/README: added ACE_HAS_PURIFY and ACE_HAS_QUANTIFY.
-
- * include/makeinclude/wrapper_macros.GNU: added ACE_HAS_PURIFY
- and ACE_HAS_QUANTIFY support. We should use these consistently.
- In addition, added -I support for Purify and Quantify.
- This support should no longer appear in individual Makefiles.
-
- * ACE-INSTALL.html: added paragraph on Purify/Quantify support
- details, i.e., they must be on your PATH, and ACE puts the
- instrumented libraries below /tmp by default.
-
-Mon Sep 21 20:46:00 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Containers_T.cpp (ACE_Double_Linked_List): Changed
- dynamic_cast to static_cast.
-
-Mon Sep 21 18:35:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp}
- examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp}
- examples/Bounded_Packet_Relay/BPR_Drivers_T.{h,cpp} (new)
- examples/Bounded_Packet_Relay/bpr_thread.cpp:
-
- Factored out templates into separate files, fixed initialization,
- concurrency, and deadlock problems found in NT testing.
-
-Mon Sep 21 18:27:19 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Conn_Test.cpp: g++ cannot gork templates typedefs.
-
-Mon Sep 21 15:48:34 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Acceptor: It's now possible to select if you want to reuse
- the PEER_ACCEPTOR addr. Thanks to Chuck Gehr for suggesting
- this.
-
-Mon Sep 21 15:00:34 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.{h,cpp} (join): Allow passing back of thread's
- exit status of the thread being joined.
-
-Mon Sep 21 11:24:33 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * docs/ACE-categories.html (HREF): Updated the links to ace/ and
- man/ since we moved the file around. Thanks to Byron Harris for
- reporting this.
-
-Mon Sep 21 10:22:17 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Select_Reactor_T.cpp (handle_error): Check handles for all
- errors (not just EBADF) on Win32, in addition to MVS. Thanks
- to Xu Yifeng <xuyifeng@www.kali.com.cn> for this fix.
-
-Mon Sep 21 01:27:19 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T.cpp (find_or_create_svc_handler_i): g++ cannot
- gork templates...
-
- * tests/Conn_Test.cpp: Fixed template instantiations.
-
- * ace/Strategies_T.cpp (ACE_Cached_Connect_Strategy): New methods
- find_or_create_svc_handler_i and check_hint_i to simplify
- connect_svc_handler. Also added _i methods to implement
- non-locking versions.
-
- * ace/Strategies.h (ACE_Connection_Recycling_Strategy):
- New methods: mark_as_close and cleanup_hint.
-
- * ace/Strategies: Added three new classes: ACE_Recyclable,
- ACE_Hashable, and ACE_Refcountable. Also added
- ACE_Refcounted_Hash_Recyclable. Deprecated ACE_Recyclable<T> and
- ACE_Hash_Recyclable<T>
-
- * ace/Svc_Handler.h (cleanup_hint): Added new method. This can be
- used by users when they are through with using the svc_handler
- as a hint.
-
-Mon Sep 21 00:40:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp}
- examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp}
- examples/Bounded_Packet_Relay/bpr_thread.cpp
- examples/Bounded_Packet_Relay/README:
-
- Reorganized construction of input and output device objects
- and the relay object, cleaned up readme file.
-
-Sun Sep 20 22:01:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/BPR_Drivers.h:
-
- Made Bounded_Packet_Relay_Driver::display_menu (void) pure virtual:
- now it all compiles *and* links.
-
-Sun Sep 20 21:49:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp}
- examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp}
-
- Fourth checkin of bounded packet relay example: compiles.
-
-Sun Sep 20 20:41:29 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Acceptor.{h,cpp}: Added an extra argument to constructors of
- ACE_Strategy_Acceptor and open method so that we can accept only
- one connection request every time handle_input is called.
-
-Sun Sep 20 20:30:36 1998 Marina Igorevna Spivak <marina@mambo.cs.wustl.edu>
-
- * ace/OS.h : added ACE_GUARD_THROW, ACE_GUARD_THROW_RETURN,
- ACE_NEW_TRY_THROW, ACE_NEW_TRY_THROW_RETURN macros to utilize
- new exceptions macros.
-
-Sun Sep 20 19:18:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp}
- examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp}
- examples/Bounded_Packet_Relay/README
-
- Third checkin of bounded packet relay example,
- addressed remaining coding style issues.
- (very rough, still does not compile)
-
-Sun Sep 20 16:38:17 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.i (get_next): Changed to use static_cast.
-
- * ace/Thread_Manager.cpp: Shielded off terminated_thr_list_ from
- compilation on VxWorks. Thanks to David for noticing this.
-
-Sun Sep 20 12:17:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp}
- examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp}
-
- Second checkin of bounded packet relay example,
- addressed several coding style issues.
- (very rough, still does not compile)
-
-Sun Sep 20 11:25:52 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: with ACE_HAS_TSS_EMULATION, use u_long instead of
- u_int for ACE_thread_key_t. This avoids overload ambiguity
- on platforms that typedef pthread_key_t to u_int. We'll be
- in trouble if we try on one that uses u_long. In that case,
- we could try u_short, or added an ACE_HAS.
-
- * ace/Thread_Manager.i (register_as_terminated): neutered on VxWorks,
- so that it will compiled.
-
- * tests/SOCK_Connector_Test.cpp (host_is_up): don't define
- this function ifdef ACE_LACKS_GETHOSTENT, because it isn't
- used in that case.
-
-Sat Sep 19 14:29:56 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (fstat): Removed the "::" in front of the fstat() call
- since it's implemented as a macro on some platforms. Thanks to
- Frank Adcock <frank@bushlife.com.au> for reporting this.
-
- * examples/Bounded_Packet_Relay: Updated the coding style.
-
-Sat Sep 19 14:06:52 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * apps/JAWS/PROTOTYPE/JAWS/IO.cpp: Fixed typo.
-
- * apps/JAWS/PROTOTYPE/JAWS/jaws.dsp:
- * apps/gperf/src/gperf.dsp:
- * ace/ace_dll.dsp:
- * netsvcs/clients/Naming/Client/Client_Test.dsp:
- * netsvcs/lib/netsvcs.dsp:
- Changed behavior of all DLL projects and utilities (like
- gperf) to put the dll and executables in $ACE_ROOT/bin.
-
- * ace/config-win32.h: ACE_HAS_GPERF is back.
-
- * ACE-INSTALL.html: On NT, $ACE_ROOT/bin should now be in
- your path instead of $ACE_ROOT/ace.
-
-Sat Sep 19 12:27:31 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Asynch_IO.cpp: thread_function() is only for UNIX.
-
-Sat Sep 19 10:43:41 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Asynch_IO.cpp (open): Fixed the build errors with WIN32.
-
-Sat Sep 19 09:02:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * examples/Bounded_Packet_Relay/Thread_Bounded_Packet_Relay.{h,cpp}
- examples/Bounded_Packet_Relay/BPR_Drivers.{h,cpp}
- examples/Bounded_Packet_Relay/bpr_thread.cpp
- examples/Bounded_Packet_Relay/Makefile
- examples/Bounded_Packet_Relay/README:
-
- First checkin of bounded packet relay example
- (very rough, does not even compile yet)
-
-Sat Sep 19 00:42:53 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Asynch_IO.cpp: Fixed NT warnings (hopefully :-)
-
-Fri Sep 18 22:50:21 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.{h,i,cpp}: Added a join method to reclaim
- OS/ACE resources that are used to managed thread object. I
- encourage all ACE programmers to use ACE_Thread_Manager::join to
- wait for threads spawned by ACE_Thread_Manager. It is more
- portable than ACE_Thread (most significantly, wrt resource
- management.)
- (wait_grp,wait_task): Improved and corrected the
- implementations. These two methods now also clean up resources
- used by threads that has already terminated when the calls get
- invoked.
-
- Changed the terminated_thr_queue_ to terminated_thr_list_ which
- is now a double-linked list. This change allows us to
- gather/cleanup infomation of threads belong to same group/task
- in one pass.
-
- ACE_Thread_Manager::exit now tests the thread status to see if
- ACE_THR_JOINING is set or not. If set, it means the thread is
- being joined by join/wait_grp/wait_task and avoid double
- removing the thread resources from OS.
-
- * ace/OS.h (ACE_Thread_State): Added ACE_THR_JOINING to identify
- threads that are being joined by the Thread Manager.
-
- * ace/Container_T.{h,cpp} (ACE_Double_Linked_List): Added several
- dynamic_cast in several places so we can generate code for both
- base class and derived class.
- (ACE_Double_Linked_List_Iterator): Added a method
- "advance_and_delete" to allow removing double-linked list
- element while iterating thru the list. The design is very
- intrusive and you should know what you are doing before using
- the method. Notice that ACE_Double_Linked_List is _not_ a
- general purpose Container class.
-
- * tests/run_tests.bat: Added DLList_Test.
-
-Fri Sep 18 18:06:19 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Asynch_IO.h:
- * ace/Asynch_IO.cpp:
- * examples/Reactor/Proactor/test_proactor.cpp:
- Implemented Asynch_Accept for POSIX4 systems, by having only one
- thread doing <handle_events>. Asynch_Accept_Handler has been
- changed to act as Event Handler now. No problem of having threads
- blocking on the <accept> now. Thanks to Irfan for this idea.
-
-Fri Sep 18 13:26:50 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/High_Res_Timer_Test.cpp (check): raised success
- threshold from 10 to 25 percent. Ossama saw just over
- 10 percent on an Linux box, not surprising. Thanks to
- him for reporting it.
-
- * ace/SOCK_Dgram_Mcast.cpp (unsubscribe): on other than ACE_WIN32,
- added ACE_UNUSED_ARGs for protocol_family and protocol. Thanks
- to Peter Liqun Na <liqunna@cs.sunysb.edu> for reporting this.
-
- * ace/OS.cpp (ACE_TSS_Emulation_cleanup): added ACE_UNUSED_ARG (ptr).
-
- * bin/make-release: enter version number(s) into BUG-REPORT-FORM.
- Thanks to Steve for this suggestion.
-
-Fri Sep 18 01:53:38 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.40 released.
-
-Fri Sep 18 01:51:46 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE (open_temp_file): Changed the signature of this method
- to take a const char * rather than a char *.
-
-Fri Sep 18 00:07:31 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/ACE.h (ACE):
- * ace/ACE.cpp (open_temp_file): Added this method to do open for
- the temp files, so that they will get deleted when they are
- closed.
- Thanks to Nanbor and Carlos.
-
-Thu Sep 17 23:01:50 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Containers.i: resurrected the file properly.
-
- * ace/Containers.i (~ACE_DLList_Node): removed extraneous ;
- following function definition.
-
-Thu Sep 17 22:44:17 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: If the client
- doesn't connect to the server, make sure to shut down the test
- gracefully, rather than getting a segfault. Thanks to
- Margherita Vittone Wiersma <vittone@fndaub.fnal.gov> for
- reporting this.
-
-Thu Sep 17 22:33:00 1998 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/index.html
- docs/tutorials/templates.html
-
- Added templates.html to discuss issues surrounding manual vs
- automatic template instantiation.
-
-Thu Sep 17 20:01:33 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/tests.dsw:
- * tests/version_tests.dsw:
- * tests/[version_tests/]High_Res_Timer_Test.dsp:
- * tests/[version_tests/]DLList_Test.dsp: Added new project files.
-
-Thu Sep 17 19:27:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (TSS_base,some ACE_PSOS_Time_t functions):
- removed ACE_INLINE.
-
- * examples/Shared_Malloc/test_malloc.cpp (gen_size): cast
- &seed to unsigned long first, to avoid warning about
- narrowing on Alphas (cxx/DU 4.0).
-
-Thu Sep 17 18:51:08 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * examples/Reactor/Multicast/server.cpp:
- * examples/Reactor/Multicast/Log_Wrapper.cpp:
- * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp:
- Revert back to iovec instead of ACE_IO_Vector.
-
-Thu Sep 17 18:33:19 EDT 1998 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/002/server.pp
-
- Added necessary templates for explicit instantiation.
- Thanks to Krishna Padmasola for providing the proper code
- and to Clinton Carr for reminding me to do it!
-
-Thu Sep 17 16:30:00 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * This comments were lost in a previous commit.
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/ACE.cpp:
- * ace/ACE.h:
- * ace/DEV_IO.cpp:
- * ace/DEV_IO.h:
- * ace/DEV_IO.i:
- * ace/FIFO_Send_Msg.cpp:
- * ace/FILE_IO.cpp:
- * ace/FILE_IO.h:
- * ace/FILE_IO.i:
- * ace/LSOCK.cpp:
- * ace/LSOCK_Stream.cpp:
- * ace/LSOCK_Stream.h:
- * ace/SOCK_Dgram.cpp:
- * ace/SOCK_Dgram.h:
- * ace/SOCK_Dgram_Bcast.cpp:
- * ace/SOCK_Dgram_Bcast.h:
- * ace/SOCK_Dgram_Mcast.h:
- * ace/SOCK_Dgram_Mcast.i:
- * ace/SOCK_IO.cpp:
- * ace/SOCK_IO.h:
- * ace/SOCK_IO.i:
- * ace/SPIPE_Stream.cpp:
- * ace/SPIPE_Stream.h:
- * ace/SPIPE_Stream.i:
- Moved back to iovec instead of ACE_IO_Vector. Since this
- structure is defined by ACE we can make it binary compatible
- with the WSABUF structure (yet preserve the names of the UNIX
- iovec struct). This allow us to simply pass arrays of iovec to
- routines expecting WSABUF*.
- But Win32 does not provide any functions to go scatter-gather
- over files, so this is only used for sockets, new methods:
- ACE_OS::sendv() and ACE_OS::recvv() were added for this
- purpose, the old emulation is used for the other classes. Users
- writing to higher-level components (such as ACE_SOCK or
- ACE_SOCK_Dgram) will benefit from this without any changes to
- their code.
-
- * ace/SOCK_Dgram.cpp:
- * ace/SOCK_Dgram.h:
- * ace/SOCK_Dgram_Bcast.cpp:
- * ace/SOCK_Dgram_Bcast.h:
- * ace/SOCK_Dgram_Mcast.h:
- * ace/SOCK_Dgram_Mcast.i:
- Added the implementation for some send() variants that were
- declared but not implemented.
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/config-win32-common.h:
- Added support for sendmsg() and recvmsg() on NT, emulated over
- WSASendTo() and WSARecvFrom(), do data copies are made.
-
- * ace/Containers.cpp:
- * ace/Containers.h:
- * ace/Containers_T.h:
- * ace/Containers_T.i:
- Moved the non-templated code back to Containers.{h,i,cpp}, added
- the infamous ACE_Export macro.
-
- * ace/ace_dll.dsp:
- Added Containers.cpp to the project.
-
-Thu Sep 17 11:23:49 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS: Modified ACE_THR_FUNC so that its signature is always
- void *(*)(void *). We now have a new type called
- ACE_THR_FUNC_INTERNAL that is defined for each different OS
- platform, e.g., VxWorks, pSoS, et al.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp (run_server): Oops,
- we can't use ACE_THR_FUNC here since that has a different
- signature on VxWorks. So we'll just expand this a bit. Thanks
- to Raja Ati <rati@jupiter.montereynets.com> for reporting this.
-
-Thu Sep 17 09:54:56 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Svc_Handler.cpp (new): cleaned up the ACE_ASSERT check
- for ACE_Dynamic::instance () not being null.
-
- * docs/ACE-guidelines.html: added guideline to define ACE_
- typedefs to reduce the number of #ifdefs. Thanks to
- Carlos and Doug for this suggestion, and Chris for the
- example :-).
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp (run_event_loop):
- added casts to ACE_THR_FUNC to please VxWorks. Thanks to
- Raja Ati <rati@montereynets.com> for reporting this problem.
-
- It would probably be better to change the definition of
- ACE_THR_FUNC on VxWorks (and PSOS) to be the same as on
- other platforms. That will require other changes, though.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp:
- removed trailing ; from instantiation #pragma.
-
- * ace/config-lynxos.h: added ACE_HAS_TSS_EMULATION.
-
-Thu Sep 17 09:23:01 1998 Carlos O'Ryan <coryan@JIG>
-
- * ace/FIFO_Send_Msg.cpp:
- Fixed variable declaration, "struct ACE_IO_Vector_Base" is not
- the same as "ACE_IO_Vector_Base".
-
- * ace/OS.i:
- Fixed the ACE_OS::rand_r() signature for Win32.
-
- * ace/SOCK_Dgram_Mcast.cpp:
- Fixed some problems with the Win32 implementation of
- unsubscribe().
-
-Thu Sep 17 08:41:14 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * examples/Shared_Malloc/test_malloc.cpp:
- Fixed some problems with my changes to rand_r()
-
- * ace/Containers.i:
- Resurrected this file to avoid problems with dependencies in
- TAO.
-
-Thu Sep 17 08:41:24 1998 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_gcc.GNU: Added -L. to LDFLAGS.
- Thanks to Anne Blankert <anne@geodan.nl> for this fix.
-
-Thu Sep 17 07:31:13 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (truncate): added ACE_UNUSED_ARGs for NOTSUP case.
-
-Thu Sep 17 02:45:53 PDT 1998 James Hu <jxh@entera.com>
-
- * ace/Containers_T.h:
- * ace/Containers_T.i:
- * ace/Containers_T.cpp:
- Added these files so that I could include some explicit
- template instantiations inside Containers.cpp. Removed
- #if guards around ACE_DLList since it no longer relies
- on the feature that was being guarded against.
-
- * ace/Containers.h:
- Simply #includes Containers_T.h.
-
- * ace/Containers.cpp:
- Only contains some explicit template instantiations.
-
- * ace/Containers.i:
- Removed, since it was no longer needed.
-
-Thu Sep 17 01:20:53 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Msg_WFMO_Reactor.cpp (dispatch_window_messages): There was a
- slight problem in Msg_WFMO_Reactor.cpp when ACE coexists with
- MFC. Basically the dispatch_window_messages routine simply
- returns -1 when the WM_QUIT message is received. However, if
- the WFMO_Reactor and the MFC application run on the different
- threads the main thread would never shut down since it just keep
- waiting forever for the Quit message from other threads. The
- easiest way to fix the above problem to call PostQuiteMessage
- when WM_QUIT is received by WFMO_Reactor.
-
- Thanks to Hongbo Xu <hxu@mas.co.nz> for fixing this.
-
- * ace/OS.i (open): No need to find the file size since
- SetFilePointer supports FILE_END. Also fixed the UNICODE
- version of ACE_OS::open().
-
-Wed Sep 16 22:52:44 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * examples/Reactor/Multicast/server.cpp:
- * examples/Reactor/Multicast/Log_Wrapper.cpp:
- * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp:
- Use ACE_IO_Vector instead of iovec because it is more portable.
-
-Wed Sep 16 22:17:54 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/DEV_IO.cpp:
- * ace/DEV_IO.h:
- * ace/DEV_IO.i:
- * ace/FIFO_Send_Msg.cpp:
- * ace/FILE_IO.cpp:
- * ace/FILE_IO.h:
- * ace/FILE_IO.i:
- * ace/LSOCK.cpp:
- * ace/LSOCK_Stream.cpp:
- * ace/LSOCK_Stream.h:
- * ace/SOCK_Dgram.cpp:
- * ace/SOCK_Dgram.h:
- * ace/SOCK_Dgram_Bcast.h:
- * ace/SOCK_Dgram_Mcast.cpp:
- * ace/SOCK_Dgram_Mcast.h:
- * ace/SOCK_Dgram_Mcast.i:
- * ace/SOCK_IO.cpp:
- * ace/SOCK_IO.h:
- * ace/SOCK_IO.i:
- * ace/SPIPE_Stream.cpp:
- * ace/SPIPE_Stream.h:
- * ace/SPIPE_Stream.i:
- More iovec to ACE_IO_Vector_Base conversion.
-
- * ace/Containers.i:
- The ACE_DLList_Node and ACE_DLList_Iterator class are protected
- by a !defined (ACE_LACKS_TEMPLATE_AS_TEMPLATE_PARAMETER), so
- should be their inline methods.
-
- * ace/SOCK_Dgram_Mcast.cpp:
- * ace/SOCK_Dgram_Mcast.h:
- * ace/SOCK_Dgram_Mcast.i:
- Added a generic unsubscribe() method.
-
-Wed Sep 16 21:45:48 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/ACE.{h.cpp}: Changed some iovecs to ACE_IO_Vector_Base.
-
- * ace/config-win32.h: Commented out ACE_HAS_GPERF until we get
- everything working with it.
-
-Wed Sep 16 21:43:07 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (open): Added SetFilePointer to move the file pointer
- of the opened file to end of file if _O_APPEND is specified on
- Win32.
-
-Wed Sep 16 20:42:16 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS: Added a typedef for ACE_IO_Vector_Base so that it will
- shield the differences between Win32 and UNIX.
-
-Wed Sep 16 20:09:01 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- ACE_OS::rand_r() is easier to use now. Just define a variable of
- that type and invoke ACE_OS::rand_r() with it, it even works on
- broken platforms that define it as a non-pointer.
- This is a brief example on how to use it:
- ACE_RANDR_TYPE seed;
- int r1 = ACE_OS::rand_r (seed);
- int r2 = ACE_OS::rand_r (seed);
-
-Wed Sep 16 17:46:23 PDT 1998 James Hu <jxh@entera.com>
-
- * ace/Containers.{h,i}: Added comments to DLList as per Doug's
- request.
-
-Wed Sep 16 19:23:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.x-hpc++.h: Moved ACE_HAS_DIRENT to config-hpux11.h
-
-Wed Sep 16 18:21:45 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Containers.h: Reformatted the ACE_DLList* classes to conform
- to ACE programming conventions.
-
- * ace/config-hpux-11.x-hpc++.h: Added ACE_HAS_DIRENT and
- ACE_HAS_GPERF to appease John Mulhern.
-
- * ace/Asynch_Acceptor.cpp: Added ACE_reinterpret_cast()s to the
- sockaddr *'s to appease aCC on HP/UX 11. Thanks to John Mulhern
- for reporting this.
-
-Wed Sep 16 17:16:51 EDT 1998 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/012/Makefile
- docs/tutorials/012/data.h
- docs/tutorials/012/message_queue.cpp
- docs/tutorials/012/page01.html
- docs/tutorials/012/page02.html
- docs/tutorials/012/page03.html
- docs/tutorials/012/page04.html
- docs/tutorials/012/page05.html
- docs/tutorials/012/page06.html
- docs/tutorials/012/task.cpp
- docs/tutorials/012/task.h
- docs/tutorials/index.html
-
- Tutorial 12. This corrects some of the nastyness
- in number 11 by specializing the ACE_Message_Block
- to carry around the data.
-
-Wed Sep 16 16:01:53 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Select_Reactor_T.{h,i,cpp}: Disable inlining in
- Select_Reactor_T.i and always include them in .cpp file. The
- latest version of SunCC can't grok this particular file and we
- just turn it off here. We shall turn it back on once the
- problem gets fixed. Thanks to Keith Brown
- <kalbrown@ix.netcom.com> for providing this temporary fix.
-
-Wed Sep 16 13:41:50 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Added more protection for the semun definition, i.e.,
- (defined (__GLIBC__) && defined (_SEM_SEMUN_UNDEFINED)). This
- fixes problems with Linux, GLIBC 2.1, and PGCC. Thanks to
- Marc Lehmann <pcg@goof.com> for reporting this.
-
-Wed Sep 16 11:41:57 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp: added ACE_HAS_POWERPC_TIMER support.
-
- * tests/High_Res_Timer_Test.cpp: added this new test.
-
- * tests/Makefile,run_tests.{bat,psosim,sh,vxworks}:
- added High_Res_Timer_Test.
-
- * ace/OS.* (readPPCTimer): unlined readPPCTimer for
- PowerPC. If it was called more than once in a
- compilation unit, when inlined, the assembler complained
- about multiple definitions of the aclock symbol.
-
- * ace/Malloc_T.cpp (dump): fixed typo, cb_ptr instead of
- cp_ptr. Thanks to Umar Syyid <usyyid@hns.com> for reporting this.
-
- * tests/TSS_Test.cpp (worker): allow second group of TSS keys to
- be allocated, with TSS emulation.
-
- * ace/Svc_Handler.cpp (new): added check that
- ACE_Dynamic::instance () is non-null before dereferencing it.
- ACE_ASSERT/return 0 if it is null.
-
-Wed Sep 16 11:28:47 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp: In
- general, using iostreams in ACE causes more problems for us than
- it is worth since some systems do not support iostreams. I have
- rewritten this file to not use iostreams but use
- ACE_DEBUG/ACE_ERROR instead.
-
-Wed Sep 16 10:49:34 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile: Updated to the new directory hierarchy in TAO.
-
-Wed Sep 16 09:46:31 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x.h: Added ACE_HAS_DIRENT.
-
-Tue Sep 15 20:25:23 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/test_config.h: Always #undef ACE_NLOGGING so the tests
- will produce output! Thanks to Chuck Gehr for reporting this.
-
- * ace/OS.i: Added a new ACE_LACKS_TRUNCATE flag to work around
- platforms that lack the truncate() call. Thanks to
- Sergio for reporting this.
-
-Tue Sep 15 17:57:26 1998 Sergio Flores <sergio@tango.cs.wustl.edu>
-
- * ace/config-vxworks5.x.h: Added ACE_LACKS_TRUNCATE to VxWorks
- configuration.
-
-Tue Sep 15 16:58:18 1998 Nagarajan Surendran <naga@cs.wustl.edu>
-
- * include/makeinclude/platform_chorus_ghs.GNU: Changed the
- MVME_DIR to /project/doc/mvme/mvme177.
-
- * ace/ARGV.cpp (ACE_ARGV::argv_to_string): Fixed the problem where
- we were allocating space only for the length of the string whereas
- strecpy was inserting the extra '\0' leading to Array bounds write.
-
-Tue Sep 15 16:34:47 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (gethrtime): added high-res timer support with
- g++ and ACE_HAS_POWERPC_TIMER.
-
- * ace/OS.{h,cpp},config-vxworks5.x.h,README: changed ACE_HAS_POWERPC
- to ACE_HAS_POWERPC_TIMER.
-
- * ace/config-lynxos.h: added ACE_HAS_PENTIUM, to provide
- high-res timer support on LynxOS.
-
-Tue Sep 15 13:33:26 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-{WinCE,g++-common}.h:
- * ace/OS.{h,i,cpp}: Deprecated ACE_LACKS_GETS and ACE_OS::gets (void).
-
- * apps/gperf/src/gperf_lib.dsp: Enabled c++ exception handling to
- avoid warning when compiling with standard c++ libraries.
-
-Tue Sep 15 11:22:53 1998 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
-
- * ace/OS.{h, i}:
-
- Added definition for the "stat" data structure. Also added the
- definition for the "truncate" function.
-
-Mon Sep 14 23:28:24 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.39 released.
-
-Mon Sep 14 21:46:36 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Containers.h: added "class" to several ACE_DLList friend
- declarations.
-
-Mon Sep 14 21:02:30 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Mem_Map.cpp (map_it): Removed the code for
- !ACE_HAS_P_READ_WRITE since we cover it in ACE_OS::pwrite.
-
- * ace/Filecache.cpp (ACE_Filecache_Object): Changed the
- lseek/write combo to pwrite.
-
-Mon Sep 14 17:09:04 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-win32-common.h,OS.h,README: Removed all mention of
- ACE_LACKS_FIFO, which was no longer necessary. Thanks to Ossama
- Othman <othman@astrosun.tn.cornell.edu> for suggesting this.
-
- * ace/ACE.cpp (bind_port): Renamed sin to sock_addr to make the
- autoconf script happier. Thanks to Ossama Othman
- <othman@astrosun.tn.cornell.edu> for suggesting this.
-
- * include/makeinclude/platform_mvs.GNU: Updated the MVS platform
- configuration as follows:
-
- changed:
- debug = 1
- to:
- debug = 0
-
- added:
- static_libs = 1
-
- and deleted the line:
- CCFLAGS += $(CFLAGS)
-
- Thanks to Chuck Gehr <GehrCR@LOUISVILLE.STORTEK.COM> for these
- changes.
-
-Mon Sep 14 14:34:32 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * apps/gperf/src/gperf.dsp:
- * apps/gperf/src/gperf_lib.dsp:
- Fixed the project by removing new.cpp (which disappeared a
- while back) and changed the code generation to DLL. Now
- seems to work on NT.
-
- * ace/config-win32.h: ACE_HAS_GPERF now on NT.
-
-Mon Sep 14 13:41:26 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS: Fixed qsort() and bsearch() so they work correctly for
- MVS. Thanks to Chuck Gehr for reporting this.
-
- * ace/config-mvs.h: Added
-
- #define ACE_HAS_DIRENT
- #define ACE_LACKS_READDIR_R
-
- so that things will work correctly for MVS. Thanks to Chuck
- Gehr for reporting this.
-
-Mon Sep 14 10:11:18 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_ce_dll.dsp: Added Select_Reactor_Base.cpp and removed
- Array.cpp from the project. Thanks to Paul Sexton
- <pauls@ENTERPRISE.bt.co.uk> for noticing this.
-
- * ace/config-WinCE.h: Added ACE_LACKS_BSEARCH.
-
- * ace/OS.h: Added /**/ between #include and <ace/sys_conf.h> in
- pSOS section to prevent a MSVC warning.
-
- * ace/OS.i (bsearch): If the function is not supported by the
- platform, return NULL instead of -1 so it behaves compatibly
- with most common implementation.
-
-Mon Sep 14 09:37:09 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch_T.h: Fixed a deadlock condition caused by acquiring
- the internal lock in multiple places during the same call.
- Thanks to Jorn Jensen <jornj@funcom.com> for reporting this.
-
-Mon Sep 14 01:59:51 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Strategies_T.{h,i,cpp}: Added two new classes
- ACE_Thread_Pool_Strategy and ACE_Svc_Handler_Pool_Strategy for
- activating and creating Svc_Handler. They should be used with
- the new TP_Reactor. More to come...
-
-Sun Sep 13 22:31:23 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.38 released.
-
-Sun Sep 13 18:36:11 EDT 1998 James CE Johnson <jcej@.lads.com>
-
- * docs/tutorials/006/notify.cpp
- No longer applicable. This used spawn() to create the
- thread but the new version uses an ACE_Task<> derivative.
-
- * docs/tutorials/006/Makefile
- Removed dependency info.
-
- * docs/tutorials/007/thread_pool.cpp
- Removed THR_DETACHED from activate() call. I need a
- better understanding of when to include this flag...
-
- * docs/tutorials/index.html
- Setting up new Message_Queue entry points.
-
- * docs/tutorials/010/Makefile
- docs/tutorials/010/block.h
- docs/tutorials/010/message_queue.cpp
- docs/tutorials/010/page01.html
- docs/tutorials/010/page02.html
- docs/tutorials/010/page03.html
- docs/tutorials/010/page04.html
- docs/tutorials/010/page05.html
- docs/tutorials/010/page06.html
- docs/tutorials/010/page07.html
- docs/tutorials/010/task.cpp
- docs/tutorials/010/task.h
-
- A tutorial showing a simple use of the ACE_Message_Queue.
-
- * docs/tutorials/011/Makefile
- docs/tutorials/011/block.h
- docs/tutorials/011/data.h
- docs/tutorials/011/message_queue.cpp
- docs/tutorials/011/page01.html
- docs/tutorials/011/page02.html
- docs/tutorials/011/page03.html
- docs/tutorials/011/page04.html
- docs/tutorials/011/page05.html
- docs/tutorials/011/page06.html
- docs/tutorials/011/task.cpp
- docs/tutorials/011/task.h
-
- Extension of 010 adds queue-ing of non-trivial data.
-
-
-Sun Sep 13 16:29:27 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Select_Reactor_T.h:
- Use the ACE_UNIMPLETED_FUNC to make the code work on older
- versions of IRIX
-
-Sat Sep 12 22:39:47 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.i: There was a bug with strecpy() -- it should return a
- pointer to 1 byte PAST the '\0'...
-
-Sat Sep 12 21:43:07 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Timer_Hash.cpp: Removed the #pragma template instantiation
- for ACE_Timer_Node_T<ACE_Event_Handler *> because it is already
- instantiated in Timer_Queue.cpp. Thanks to Sergio for noticing
- this.
-
-Sat Sep 12 16:30:39 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Dirent.cpp: Renamed the methods to be more "abstract" by
- removing the "dir" suffixes.
-
- * ACE-INSTALL.html: Fixed a broken link. Thanks to Tom Shields
- <Shields@MarsHotel.CMPU.NET> for reporting this.
-
- * ace/OS.h (ACE_OS): Added wrappers for the passwd iterator.
-
- * ace/OS.h (ACE_OS): Added wrappers for qsort() and bsearch().
-
- * ace/README: Reformatted this file and also changed
- ACE_REQUIRES_FUNC_DEFINITIONS
- ACE_NEEDS_READV
- ACE_NEEDS_SCHED_H
- ACE_NEEDS_SYSTIME_H
- ACE_NEEDS_WRITEV
-
- to
-
- ACE_NEEDS_FUNC_DEFINITIONS
- ACE_LACKS_READV
- ACE_LACKS_SCHED_H
- ACE_LACKS_SYSTIME_H
- ACE_LACKS_WRITEV
-
- respectively.
-
-Sat Sep 12 19:18:18 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (qsort): Fixed a typo. And removed "return" for this
- is a void function.
-
-Sat Sep 12 13:13:39 EDT 1998 James CE Johnson <jcej@lads.com>
-
- docs/tutorials/003/Makefile
- Removed dependency stuff since installations may vary
-
- docs/tutorials/003/client.cpp
- docs/tutorials/003/page01.html
- docs/tutorials/004/Makefile
- docs/tutorials/004/client.cpp
- docs/tutorials/004/page01.html
-
- Converted to new style with embedded comments instead of
- line-numbered comments.
-
-Fri Sep 11 22:46:54 EDT 1998 James CE Johnson <jcej@lads.com>
-
- docs/tutorials/001/Source.tgz
- docs/tutorials/001/acceptor.h
- docs/tutorials/001/logger.h
- docs/tutorials/001/page02.html
- docs/tutorials/001/page03.html
- docs/tutorials/001/page04.html
- docs/tutorials/001/page05.html
- docs/tutorials/001/server.cpp
- docs/tutorials/002/Makefile
- docs/tutorials/002/handler.h
- docs/tutorials/002/page01.html
- docs/tutorials/002/page02.html
- docs/tutorials/002/page03.html
- docs/tutorials/002/page04.html
- docs/tutorials/002/server.cpp
-
- Updated to "new style". Corrected issues with Reactor
- based on recent mailing list discussions.
-
-Fri Sep 11 12:30:37 1998 Nagarajan Surendran <naga@cs.wustl.edu>
-
- * ace/config-chorus.h: Uncommented ACE_LACKS_SYSV_SHMEM as ace
- didn't compile on Chorus with that commented out.
-
-Fri Sep 11 09:02:00 CDT 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/OS.{h,i}
- ace/Containers.{cpp,h}
- ace/config-psos-diab.h
- include/makeinclude/platform_psos_diab.GNU:
- Fixes to compile pSOS - added #if ! defined around new templates
- as template parameters stuff in Config.* (Diab compiler can't
- grok these), played with library linkage order platform macros.
-
-Fri Sep 11 08:54:41 EDT 1998 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/001/logger.h
- Logging_Handler::open() should return 0 on success.
-
- * docs/tutorials/002/server.cpp
- docs/tutorials/002/page02.html
- Provide 'g_reactor' to the acceptor's open(). If you
- don't do this, the app will core dump on ^C
-
- Thanks to Krishna Padmasola <pkrishna@cybercash.co.in> for
- helping me see these.
-
-Thu Sep 10 16:53:21 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Upgradable_RW_Test.cpp:
- Some templates were instantiated twice if threads were enabled.
-
-Thu Sep 10 13:41:53 1998 David L. Levine <levine@cs.wustl.edu>
-
- * config-sunos4-sun3.x.h,config-tandem.h,README: removed
- ACE_HAS_SYSV_SPRINTF because it's no longer used. Thanks
- to Ossama for reporting this.
-
-Thu Sep 10 10:18:29 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp (run_event_loop):
- Changed to use ACE_Handle_Set instead of FD_SET. It is more
- portable this way. Thanks to Andre Folkers
- <folkers@informatik.mu-luebeck.de> for noticing this.
-
-Wed Sep 09 16:29:36 1998 David L. Levine <levine@cs.wustl.edu>
-
- * BUG-REPORT-FORM,Makefile: added BUG-REPORT-FORM. Thanks
- to Susan Liebeskind <shl@cc.gatech.edu> for the form.
-
-Wed Sep 9 13:22:11 1998 James Hu <jxh@entera.com>
-
- * ace/Containers.h:
- * ace/Containers.cpp: Added a new container class ACE_DLList.
-
-Tue Sep 8 23:17:11 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Thread_Mutex_Test.cpp (test):
- * tests/Priority_Buffer_Test.cpp (consumer): Changed the
- do-nothing if statements to ACE_UNUSED_ARG because NT doesn't
- like that. Thanks to David for clarifying this.
-
-Tue Sep 8 21:45:32 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * *.{dsp,dsw}: Updated for VC 6.
-
-Tue Sep 8 21:31:32 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-sgic++-nothreads.h:
- Added ACE_HAS_DIRENT and support for the envinfo tool.
-
-Tue Sep 08 18:54:28 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: Removed definitions of PTHREAD_DETACHED, PTHREAD_FLOAT,
- PTHREAD_INHERIT_SCHED from the ACE_HAS_PTHREADS_DRAFT6 section of
- mapping draft 6 names into the pthreads standard names. The first
- two aren't used anywhere and the third is already defined on the
- known draft 6 platforms. Thanks to Chuck Gehr and Arturo Montes for
- helping to straighten this out.
-
-Tue Sep 8 15:10:42 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Makefile:
- Updated dependencies.
-
-Tue Sep 8 13:16:37 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-sco-5.0.0.h: Added ACE_HAS_GPERF at the bequest
- of Arturo.
-
-Tue Sep 08 10:25:48 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace_{dll,lib}.dsp: Changed the process type to "Blend*" which
- make the project to work on any type of intel processors.
- However, this disable the bug-fix to get around the infamous
- Pentium floating point problem.
-
- * netsvcs/lib/netsvcs.dsp:
- * netsvcs/servers/servers.dsp: Perform VC 6 modification.
-
-Tue Sep 08 07:28:05 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (readdir_r): don't use the POSIX.1c ::readdir_r on
- suns without _POSIX_PTHREAD_SEMANTICS.
-
- * include/makeinclude/wrapper_macros.GNU: added
- ACE_HAS_GNUG_PRE_2_8 macro. Use it for determining
- exceptions-related flags with g++. It can also be used to
- suppress builds with old (pre-2.8) versions of g++; see
- TAO/tests/POA/TIE/Makefile for an example.
-
- * apps/Gateway/Gateway/File_Parser.cpp (getint):
- egcs 1.1b can't handle the FP_RETURN_TYPE typedef. So,
- use FP::Return_Type with __GNUG__.
-
- * ace/config-chorus.h: added ACE_HAS_DIRENT and
- ACE_LACKS_READDIR_R.
-
- * ace/config-lynxos.h: don't use ACE_HAS_STRING_CLASS with
- LynxOS >= 3.0.0. It requires that libg++ be linked in
- to the IOStream tests.
-
- * docs/ACE-guidelines.html: notify via email if a particular
- individual's attention is needed to address a comment in the code.
-
- * ace/Basic_Types.h: corrected comment: the dump method
- is named output, because it takes an argument.
-
-Mon Sep 7 22:12:02 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd.h: Added ACE_HAS_SIGINFO_T,
- ACE_LACKS_SIGINFO_H, ACE_LACKS_UCONTEXT_H, ACE_LACKS_SI_ADDR and
- ACE_HAS_DIRENT.
-
- * ace/config-freebsd-pthread.h:
- * ace/config-linux-common.h: Added ACE_HAS_DIRENT.
-
-Mon Sep 7 12:39:10 EDT 1998 James CE Johnson <jcej@lads.com>
-
- docs/tutorials/008/page01.html
- docs/tutorials/008/page02.html
- docs/tutorials/008/page03.html
- docs/tutorials/008/page04.html
- docs/tutorials/008/page05.html
- docs/tutorials/009/Makefile
- docs/tutorials/009/broadcast_client.cpp
- docs/tutorials/009/directed_client.cpp
- docs/tutorials/009/page01.html
- docs/tutorials/009/page02.html
- docs/tutorials/009/page03.html
- docs/tutorials/009/page04.html
- docs/tutorials/009/page05.html
- docs/tutorials/009/server.cpp
-
- Cleanup on Tutorial 008 and creation of Tutorial 009 which expands
- 008 by making the server more selective in who it responds to.
-
-Mon Sep 7 10:06:54 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.h (ACE): Moved strnew (wchar_t *) into an ACE_WIN32
- section to protect it properly. Thanks to David Levine for
- reporting this.
-
- * ace:config-sco-*.h: Added ACE_HAS_DIRENT on the advice of Arturo
- Montes <mitosys@colomsat.com.co>.
-
-Mon Sep 07 09:52:12 1998 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added general rule to put system
- call wrappers in ACE_OS, extensions in ACE.
-
- * ace/config-osf1-4.0.h: added ACE_HAS_DIRENT and
- _POSIX_PTHREAD_SEMANTICS. The latter was necessary
- to tell ACE_OS::readdir_r () to use the three-arg
- ::readdir_r ().
-
- * ace/config-lynxos.h: added ACE_HAS_DIRENT.
-
- * ace/Log_Msg.cpp (log): initialized local "c" to '\0' so that
- egcs 1.1b won't complain that it might be used without
- initialization.
-
- * ace/OS.i,ace/config-osf1-4.0.h (readdir_r): use
- ACE_HAS_PTHREADS_STD instead of _POSIX_PTHREAD_SEMANTICS to
- select the three-arg ::readdir_r ().
-
- * ace/config-vxworks.h: added ACE_HAS_DIRENT.
-
- * ace/OS.i,config-vxworks5.x.h (readdir_r,rewinddir,seekdir,telldir),
- README:
- added support for ACE_LACKS_READDIR_R, ACE_LACKS_SEEKDIR, and
- ACE_LACKS_TELLDIR.
-
- * ace/OS.i (opendir): added const_cast to remove constness
- from the argument, because VxWorks' header doesn't declare
- it const. This shouldn't cause a problem on other platforms.
-
-Mon Sep 7 01:02:58 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/ACE.i: Changed ACE_INLINE to ASYS_INLINE.
-
- * ace/OS.h: Added a no-op type define for DIR and struct
- dirent so compilation can continue on NT.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Added new dirent.* files and removed Array.{cpp,i} files.
-
-Sun Sep 6 15:49:46 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE: Added several new helper string functions, which were
- mined from the drwho program.
-
- * ace/OS: Moved strnew() into class ACE, which is where it
- belongs...
-
- * ace/Containers: Merged the ACE_Array class entirely into the
- Containers files, which is more consistent with the general
- design of ACE. Also, removed ace/Array.i and Array.cpp since
- they are no longer needed. We'll keep Array.h around for a
- while for backwards compatibility, but it just #includes
- "ace/Containers.h" now...
-
- * ace/config-sunos5*.h: Added ACE_HAS_DIRENT. We'll need help
- figuring this out on the other platforms...
-
- * ace/OS: Began adding "Dirent" support to ACE_OS. This will
- provide the UNIX/POSIX directory iterator routines when the
- ACE_HAS_DIRENT macro is enabled.
-
- * ace/OS: Added fputs() to ACE_OS. I'm not sure why this was
- missing...
-
- * ace/Makefile (FILES): Moved Priority_Reactor to earlier in
- the Makefile to maintain alphabetical order.
-
-Sun Sep 6 14:06:43 1998 Douglas C. Schmidt <schmidt@cumbia.cs.wustl.edu>
-
- * ace/OS.h: Moved the ACE_NEW_THROW macros that Matt Braun wrote
- into ACE so that we can use these in all applications.
-
-Sun Sep 06 12:28:40 1998 Fred Kuhns <fredk@arl.wustl.edu>
-
- * Added a simple reactor/acceptor figure to the first tutorial
- docs/tutorial/001/simple.*
-
-Sun Sep 06 08:34:57 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-g++-common.h,ace/README,tests/Conn_Test.cpp:
- renamed ACE_HAS_OLD_GNUG to ACE_HAS_GNUG_PRE_2_8.
-
-Sat Sep 5 15:31:33 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Removed ACE_HAS_IRIX_GETTIMEOFDAY and all of its uses
- throughout ACE. It was no longer necessary. Thanks to Ossama
- for reporting this.
-
- * ace/Synch.h: Added a "no-op" ACE_Barrier for cases where we
- don't have ACE_HAS_THREADS enabled.
-
-Sat Sep 5 15:25:33 EDT 1998 James CE Johnson <jcej@lads.com>
-
- docs/tutorials/index.html
- docs/tutorials/008/Makefile
- docs/tutorials/008/server.cpp
- docs/tutorials/008/broadcast_client.cpp
- docs/tutorials/008/directed_client.cpp
- docs/tutorials/008/page01.html
- docs/tutorials/008/page02.html
- docs/tutorials/008/page03.html
- docs/tutorials/008/page04.html
- docs/tutorials/008/page05.html
- docs/tutorials/008/CVS/Root
- docs/tutorials/008/CVS/Repository
- docs/tutorials/008/CVS/Entries
- docs/tutorials/009/Makefile
- docs/tutorials/009/broadcast_client.cpp
- docs/tutorials/009/directed_client.cpp
- docs/tutorials/009/server.cpp
- docs/tutorials/009/CVS/Root
- docs/tutorials/009/CVS/Repository
- docs/tutorials/009/CVS/Entries
-
- Began the next set of tutorials on the topic of Datagrams.
- Thanks to Jeff Hellzen for this suggestion.
-
-Fri Sep 4 18:56:36 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Name_Proxy.cpp:
- Fixed spurious double assignment (int foo = foo = bar;), thanks
- to thanks to John Mulhern <9107@mn3.lawson.lawson.com> for
- reporting this.
-
-Fri Sep 04 18:54:32 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Select_Reactor_T.cpp (ACE_Select_Reactor_T): Made sure that
- all references to Select_Reactor have the template argument in
- them. Thanks to Chuck Gehr <GehrCR@LOUISVILLE.STORTEK.COM> for
- sending the patches.
-
-Fri Sep 4 18:29:29 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_proactor.cpp: Changed to use
- "test_proactor.cpp" as input file.
-
-Fri Sep 4 17:51:17 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Proactor.cpp:
- * ace/Asynch_Acceptor.cpp:
- * ace/Asynch_Acceptor.h:
- * ace/Asynch_IO.cpp:
- * examples/Reactor/Proactor/test_proactor.cpp:
- First round of changes for ACE_Asynch_Accept. Makes use of
- separate thread for each accept call, each thread blocking on the
- ACE_OS::accept. Thanks to Irfan, a better implementation using
- TP_Reactor is currently being done.
-
-Fri Sep 4 16:45:36 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Removed all traces of ACE_HAS_MT_SAFE_SOCKETS -- this was a
- vestige from Solaris 2.2! Thanks to Ossama Othman
- <othman@astrosun.tn.cornell.edu> for suggesting this.
-
- * ace/Service_Config: Changed the default value of
- ACE_Service_Config::debug_ from 1 to 0. Thus, debugging is
- DISABLED by default. If you want to enable debugging, pass the
- -d option to the constructor of ACE_Service_Config.
-
- * ace/Naming_Context.cpp,
- ace/Service_Config.cpp,
- ace/Service_Types.cpp,
- ace/Service_Repository.cpp: Now we only print out service config
- information if we're ACE::debug() is non-0. This is more
- consistent with other parts of ACE. Thanks to XuYifeng
- <xuyf@pop.zg169.net> for reporting this.
-
- * ace/Service_Config: Moved the debug() stuff from here and put it
- into class ACE so that it will be more globally visible.
-
-Fri Sep 04 15:24:44 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE.i: Here, we should use ASYS_INLINE which is always
- defined as inline on most platforms.
-
- * ace/Log_Msg.h (ACE_Log_Msg): Added a new ACE_DEBUG format
- character 'A' which prints out an ACE_timer_t value. This is
- most useful when you want to print out the timers in
- ACE_Profile_Timer::ACE_Elapse_Time. Thanks to Naga for
- providing the brilliant idea.
-
- * tests/XtReactor_Test.cpp (main): Removed '.cpp' from
- ACE_START_TEST title string. Thanks to Ossama for reporting
- this.
-
- * Makefile (CONTROLLED_FILES): Removed some documents from the
- list because they are in docs/ now.
-
- * tests/run_tests.bat: Removed trailing '.cpp' from
- Message_Queue_Notifications_Test. Thanks to Jack Erickson
- <JErickson@exchange.ml.com> for reporting this.
-
- * ace/OS.i (signal): Added check for ACE_WIN32 to defeat the
- effect of !defined (ACE_LACKS_UNIX_SIGNALS). Although Win32
- does has ACE_LACKS_UNIX_SIGNALS defined, it also has limited
- support for signals. Thanks to XuYifeng <wj@public.hz.zj.cn>
- for reporting this.
-
-Fri Sep 04 07:26:57 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.bin.GNU,wrapper_macros.GNU:
- moved VBIN definition from rules.bin.GNU to wrapper_macros.GNU.
- With this change, individual Makefiles need not define VBIN.
-
- * tests/run_tests.sh: removed -f so that temp file removal
- works properly. Don't printout ipcs output unless it
- changes, for resources owned by the user.
-
-Fri Sep 04 01:01:58 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Timeprobe.h: Disable warning of using Microsoft Extensions.
-
-Fri Sep 04 02:12:03 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.37 released.
-
-Fri Sep 4 00:07:18 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp (open): Added
- template instantiations to make GCC happy. Thanks to David
- Levine for reporting this.
-
-Thu Sep 03 19:15:52 1998 Fred Kuhns <fredk@arl.wustl.edu>
-
- * docs/tutorial/006/client_acceptor.cpp: added
- typedef ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH > inherited;
-
-Thu Sep 03 17:03:46 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Dynamic.cpp (instance): Removed the typedef in the header
- file because some compiler was having problems with it. Thanks
- to baksoo@dbserver.kaist.ac.kr for reporting this.
-
-Thu Sep 03 16:43:34 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): play the zero thread priority game
- on Solaris if defined (sun), not if defined (ACE_HAS_STHREADS).
- This allows POSIX threads to be created with a thread priority
- of 0 if _POSIX_C_SOURCE=199506L and _POSIX_PTHREAD_SEMANTICS
- are defined. Thanks to Russ Noseworthy
- <rnosewor@objectsciences.com> for reporting this problem.
-
- * examples/Threads/tss2.cpp: added explicit ACE_Guard <ACE_Token>
- instantiation.
-
- * tests/Dynamic_Priority_Test.cpp (main): changed "not supported"
- to "not available" in printout that indicates that the
- test will be run in time-sharing class, instead of
- a real-time class. The test can still run in time-sharing
- class. Thanks to Ossama for reporting this.
-
-Thu Sep 03 16:14:16 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Synch.i (ACE_Process_Mutex::remove): Reset this->lock_ to 0
- after removing the lock so we can avoid destroying the same
- kernel object twice. Thanks to Detlef Becker
- <Detlef.Becker@med.siemens.de> for reporting this.
-
-Thu Sep 03 15:43:22 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Upgradable_RW_Test.cpp: Fixed this file so that it works
- with egcs.
-
-Thu Sep 3 14:51:06 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * docs: Moved ACE-{tutorials,guidelines,subsets,porting}.html
- into the docs directory from the etc directory. This is
- a more "fitting" location...
-
-Thu Sep 3 13:23:39 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * Makefile (CONTROLLED_FILES): Added docs/ into CONTROLLED_FILES.
-
-Thu Sep 03 09:24:20 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Message_Block.cpp: added ACE_Guard <ACE_Lock> instantiation.
-
- * ace/SPIPE_Stream.i (recv_handle): replaced "recvfd = recvfd" with
- ACE_UNUSED_ARG (recvfd) to avoid egcs 1.1 warning about a
- statement with no effect.
-
-Thu Sep 03 00:26:23 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Time_Request_Reply.cpp (ACE_Time_Request): The second
- parameter should be of type ACE_UINT32.
-
-Wed Sep 2 22:52:32 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Name_Handler.cpp,
- * ace/Time_Request_Reply.cpp: Fixed up yet another
- minor mismatch caused by the ACE_SUCCESS/ACE_FAILURE fixes...
- Thanks to David Levine for tracking these down.
-
-Wed Sep 02 20:55:18 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.36 released.
-
-Wed Sep 2 19:21:25 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Name_Request_Reply.cpp: Continued to cleanup the residue of
- the ACE_SUCCESS and ACE_FAILURE changes. Thanks to David Levine
- for reporting this.
-
-Wed Sep 02 19:08:29 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Template_Instatiations.cpp: commented text following
- an #endif.
-
-Wed Sep 02 16:46:45 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.35 released. BTW, these releases were aborted
- due to CVS hiccups. We've got to figure out a better way to
- roll this stuff back...
-
-Wed Sep 02 16:33:25 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.34 released.
-
-Wed Sep 02 16:31:22 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Make sure ACE_NO_INLINE is not defined before defining
- it to avoid double defining the macro. Thanks to Ossama Othman
- <othman@astrosun.tn.cornell.edu> for suggesting this.
-
-Wed Sep 2 11:10:08 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task.cpp (activate): Remmber to decrement the thr_count_ if
- spawn_n() fails. Thanks to Russ Noseworthy
- <rnosewor@objectsciences.com> for reporting this fix.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: Fixed another
- void * -> char * problem. Now this stuff all seems to build
- fine.
-
-Wed Sep 02 10:07:15 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Name_Request_Reply.{h,cpp}: reverted ACE_SUCCESS to SUCCESS
- because other ACE code depended on it.
-
- * ace/Object_Manager.cpp (~ACE_Object_Manager_Base): moved
- internal_lock_ deletion inside ACE_MT_SAFE protection. Thanks
- to Dongwook Kim <baksoo@dbserver.kaist.ac.kr> for reporting this.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: updated comments
- to recommend not using Sun C++ 4.1.
-
-Wed Sep 02 09:34:32 1998 Oliver M. Kellogg <Oliver.Kellogg@vs.dasa.de>
-
- * ace/OS.i (sigwait): use __sigwaitd10 with g++ on DU 4.0.
-
-Tue Sep 1 20:44:15 PDT 1998 James C. Hu <jxh@entera.com>
-
- * ace/Filecache.cpp:
- * ace/UPIPE_Stream.cpp: I guess nobody uses GCC anymore. Fixed
- some template instantiation problems in Filecache.cpp and
- UPIPE_Stream.cpp. I guess, eventually all of this will be moved
- into the Template_Instantiations.cpp file, but until then...
-
-Tue Sep 01 20:59:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (ts_object): commented test appearing after the #endif.
-
- * ace/OS.i (rw_trywrlock_upgrade): expanded/added comment to
- clarify the with/without ACE_LACKS_RWLOCK_T distinction.
-
- * ace/OS.i (sigwait): fixed indentation.
-
- * ace/ACE.cpp (get_ip_interfaces): removed trailing } after comment
- following #endif.
-
- * etc/ACE-guidelines.html: added section on scripts. Added rule
- to prefix constants and enum values with ACE_ or TAO_.
-
-Tue Sep 1 19:05:05 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/XtReactor_Test.cpp: Added a new version that should work
- on Linux. Thanks to Eric Newton for this fix.
-
-Tue Sep 1 19:40:03 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/XtReactor_Test.cpp:
- If ACE_LACKS_MOTIF is defined the test can use Athena
- Widgets. Thanks to Eric C. Newton <ecn@smart.net> for
- contributing this example.
-
-Tue Sep 1 19:05:05 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Shared_Malloc/test_malloc.cpp (spawn): Fixed a minor
- problem with conversions from const char * literals to char *'s.
- Thanks to John Mulhern for reporting this problem.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-in{server,client}.cpp: Fixed all
- uses of void *request with char *request to stop ANSI C++
- compilers from complaining. Thanks to John Mulhern for
- reporting this problem.
-
-Tue Sep 01 16:22:06 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Filecache.cpp (init and ~ACE_Filecache_Object): Changed
- SUCCESS to ACE_SUCCESS.
-
-Tue Sep 1 13:54:10 PDT 1998 James C. Hu <jxh@entera.com>
-
- * ace/Message_Block.h:
- * ace/Message_Block.i: Added a space () method that reports
- the amount of space remaining in the message block.
-
-Tue Sep 1 3:50:39 US/Central 1998 James CE Johnson <jcej@lads.com>
-
- * etc/tutorials/006/client_handler.cpp
- etc/tutorials/006/client_handler.h
- etc/tutorials/006/page04.html
- etc/tutorials/006/page05.html
-
- Added a close() method to Client_Handler so that it will be closed
- properly when the svc() method exits.
-
- * etc/tutorials/007/client_handler.cpp
- etc/tutorials/007/client_handler.h
- etc/tutorials/007/page05.html
- etc/tutorials/007/page06.html
- etc/tutorials/007/page09.html
-
- Added Client_Handler::close() that will be called when
- Client_Handler::svc() exits in the thread-per-connection model.
- Thread_Pool::svc() now calls the handler's handle_close() method
- to properly shut down the handler if handle_input() fails.
-
-Tue Sep 01 12:58:02 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/ACE.cpp
- ace/Basic_Types.cp
- ace/Containers.{cpp, h}
- ace/Filecache.{cpp, h}
- ace/Hash_Map_Manager.{cpp, h}
- ace/INET_Addr.cpp
- ace/Local_Tokens.cpp
- ace/Log_Record.cpp
- ace/Map_Manager.{cpp, h}
- ace/Message_Block.cpp
- ace/Name_Request_Reply.{cpp, h}
- ace/OS.{cpp, h, i}
- ace/Object_Manager.h
- ace/Process.cpp
- ace/Remote_Name_Space.cpp
- ace/SOCK_Dgram_Mcast.{cpp, h}
- ace/Service_Types.cpp
- ace/Signal.cpp
- ace/Synch_T.{cpp, h, i}
- ace/Time_Hash.cpp
- ace/Token_Request_Reply.h
- ace/UPIPE_Stream.cpp
- ace/config-psos-diab.h
- ace/config-psos-tm.h:
-
- pSOS port of ACE for the Diab 4.2 and Trimedia cross compilers.
- Thanks to Jin Lu of Philips Research for completing the ACE pSOS
- port on the Trimedia cross compiler and contributing the changes
- back to the ACE distribution.
-
-Tue Sep 1 10:43:24 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-linux-common.h,
- ace/config-sco-5.0.0-mit-pthread.h,
- ace/config-sco-5.0.0.h,
- ace/README:
- ACE_HAS_LONG_FDMASK macro has been changed to
- ACE_HAS_BIG_FD_SET. Therefore, I updated these files. Thanks
- to Ossama Othman <othman@astrosun.tn.cornell.edu> for reporting
- this.
-
-Tue Sep 01 10:21:49 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/TSS_Test.cpp (cleanup, worker): with ACE_HAS_PTHREADS_DRAFT4,
- delete the tss instances in cleanup instead of worker. This gets
- rid of the memory leaks on those platforms.
-
- * include/makeinclude/platform_osf1_4.0.GNU: added
- -hidden [...] -non_hidden magic. See comments in the file;
- this solves a problem with mutiply defined symbols between
- shared libraries and DEC's libcxxstd.a. It only affected
- tests/IO_Stream_Test.
-
-Tue Sep 01 10:03:55 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.33 released.
-
-Tue Sep 01 03:46:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Asynch_Acceptor.{h cpp}: Enable the contents for platforms
- with ACE_HAS_AIO_CALLS, not just ACE_WIN32. Thanks to John
- Mulhern for these fixes.
-
- * examples/Reactor/Proactor/Makefile: Removed include of
- platform_macros.GNU. Thanks to John Mulhern for this one too.
-
-Mon Aug 31 16:38:03 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-kcc-common.h: Added ACE_HAS_CPLUSPLUS_HEADERS to
- prevent warnings/errors. Thanks to Ben Eng <ben@jetpen.com> and
- Todd Pack <todd@rwii.com> for reporting this.
-
- * Added a bunch of patches so that ACE compiles and passes its
- tests on Chorus with gcc. Thanks to Alberto Villarica"
- <Alberto.Villarica.rav@nt.com> for reporting this.
-
-Mon Aug 31 14:02:34 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/ace.dsw:
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Updated to MSVC 6, which consisted of changing the
- version number insde to 6.00. This change gets it
- to work in both 5 and 6, without any trouble.
-
-Mon Aug 31 12:25:15 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Object_Manager.*: reorganized to provide the
- ACE_Object_Manager_Base class. This class contains
- the data structures used to support Singleton
- registration for destruction.
-
- * ace/ACE.{h,cpp}: added init () and fini (). These
- currently just call the ACE_Object_Manager's init ()
- and fini (). The might be useful for applications
- that use ACE_HAS_NONSTATIC_OBJECT_MANAGER and
- ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER, and
- therefore need to explicitly initialize and finalize
- the ACE_Object_Manager singleton.
-
- * tests/Semaphore_Test.cpp (test_timeout): a timed
- semaphore acquire fails on ACE_HAS_PTHREADS_DRAFT4
- with EINTR instead of ETIME if it times out. That's
- the way it's documented, as well as the way it behaves on LynxOS.
-
- * tests/TSS_Test.cpp (cleanup): with DRAFT4 threads,
- don't do anything in the cleanup function.
- The intended use of this function doesn't apply.
- With Draft 4 threads, this function is called implicitly
- by pthread_setspecific whenever an old value is replaced.
- This function is intended to be used with Draft 6 and later
- threads, where it is called on thread termination with the
- thread-specific value.
-
- * tests/test_config.cpp: set ACE_MAX_PROCESSES to 4 on LynxOS,
- so that Process_Mutex_Test will succeed.
-
-Sun Aug 30 23:05:34 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Select_Reactor_T.cpp: Should include ace/Thread.h also.
- Thanks to J. Russell Noseworthy <rnosewor@objectsciences.com>
- for reporting this.
-
- * ace/Select_Reactor.cpp: Added explicit template instantiation
- for ACE_Lock_Adapter<ACE_Select_Reactor_Token_T<ACE_Noop_Token>>.
- Thanks to Eric C. Newton <ecn@smart.net> for reporting this.
-
-Sun Aug 30 07:44:54 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h,ace/README,
- include/makeinclude/platform_sunos5_sunc++.GNU:
- use ACE_LACKS_RTTI instead of ACE_HAS_RTTI without rtti,
- with Sun CC on SunOS 5.5. That removes all use of ACE_HAS_RTTI
- from ACE.
-
- * netsvcs/lib/Name_Handler.h: added #include of ace/Singleton.h.
-
- * tests/run_tests.vxworks: commented out Dynamic_Priority_Test.
- It now causes VxWorks to go to never-never land.
-
- * ace/config-g++-common.h,ace/README,tests/Conn_Test.cpp:
- added ACE_HAS_OLD_GNUG. Thanks to Doug for this suggestion.
-
- * ace/Token.cpp (ACE_Token_Queue_Entry ctor): added
- ACE_UNUSED_ARG (m) ifdef ACE_TOKEN_USES_SEMAPHORE.
-
-Sun Aug 30 00:14:29 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Service_Object.cpp (fini): Make sure to check the
- <fini_already_called_> flag before proceeding. Also
- ~ACE_Service_Type() now calls this->fini().
-
- * ace/Svc_Handler:
- * ace/Dynamic:
-
- Patrick J. McNerthney <pat@cartia.com> described this problem:
- ________________________________________
-
- ACE_Svc_Handler creates an
- ACE_TSS_Singleton<ACE_Dynamic,ACE_SYNCH_NULL_MUTEX> singleton
- object to determine if the ACE_Svc_Handler is a dynamically
- created object or not. ACE_TSS_Singleton declares the internal
- single instance of the ACE_Dynamic object as a
- ACE_TSS<ACE_Dynamic> data type.
-
- The first time this object is "referenced",
- ACE_TSS<ACE_Dynamic>::ts_init() is called, which in turn calls
- ACE_Thread::keycreate and registers
- ACE_TSS<ACE_Dynamic>::cleanup with it. Since ACE_TSS is a
- template class, the vtable and the code of this object resides
- in the dynamically loaded service DLL.
-
- During termination, the Object Manager closes down the Service
- Configurator, causing all services to be shutdown, and their
- DLLs are unloaded.
-
- The Object Manager then calls ACE_OS::cleanup_tss which attempts
- to call the above registered ACE_TSS<ACE_Dynamic>::cleanup
- method. Since the DLL has already been unloaded, the
- application faults trying to access the vtable.
- ________________________________________
-
- My earlier solution addressed this problem but only in
- ~Object_Manager(), i.e., at the end of the application, by
- carefully ordering the cleanup of singletons, tss, and the
- unlinking of libraries. To solve this more generically and to
- address this problem when DLLs are unlinked arbitrarily (and not
- only at the end of applications), I moved the typedef of
- ACE_TSS_Singleton<ACE_Dynamic> from Svc_Handler.h to
- Dynamic.h. Then the access to this singleton was changed from
- DYNAMIC::instance() to ACE_Dynamic::instance().
-
- This will force the generation of the code for this class to be
- in the ACE library rather than in a user's DLL. Hence when TSS
- cleanup hooks and Object Manager are trying to clean this object
- up from ~Object_Manager, it won't crash as the code for this
- class is in ACE and not in the unlinked DLL.
-
- This issue raised a couple of interesting observations about
- ACE_Singleton and ACE_TSS_Singleton and DLLs:
-
- It is ok to use ACE_Singleton and ACE_TSS_Singleton in DLLs that
- are going to be unlinked at the end of the program. For DLLs
- that may get unlinked *before* the end of the program, they must
- not use ACE_Singleton or ACE_TSS_Singleton. ACE_Singleton
- registers with the Object_Manager for deletion and therefore is
- accessed at the end of the application. ACE_TSS_Singleton is
- very similar to ACE_Singleton. Moreover, it uses tss cleanup
- hooks to clean up the thread specific storage. Therefore, if
- the DLL lives shorter than the thread and/or the application, it
- must *not* use ACE_Singleton and ACE_TSS_Singleton.
-
- This motivates the need for ACE_DLL_Singleton<T>. As usual,
- contributions to ACE are always welcome ;-) Many, many thanks to
- Patrick J. McNerthney <pat@cartia.com> for all his help!
-
-Sat Aug 29 19:22:22 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Service_Configurator/Misc/main.cpp (main): Fixed a stray
- l_argv[3] = 0; I'm not sure why this was here...
-
-Sat Aug 29 17:31:06 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-in{client,server,server-fancy}.cpp:
- Updated these tests to be more robust and better designed.
-
- * examples/IPC_SAP/SOCK_SAP/Makefile: Added the
- CPP-inserver-fancy.cpp file. I'm not sure why I'd omitted it
- for so long...
-
- * examples/IPC_SAP/SOCK_SAP/CPP-in{client,server}.cpp: Cleaned up
- the code a bit to avoid warnings. Thanks to David Levine for
- reporting these.
-
-Sat Aug 29 14:11:25 1998 David L. Levine <levine@cs.wustl.edu>
-
- * etc/ACE-guidelines.html: added rule to not for a pointer
- being 0 before deleting it. It's always safe to delete a
- 0 pointer. Thanks to James CE Johnson <jcej@lads.com> for
- pointing this out.
-
-Fri Aug 28 23:29:51 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-in{client,server}.cpp: Enhanced
- the client and server test so that it'll be a good benchmark for
- the "best case" to compare TAO against.
-
-Fri Aug 28 21:53:13 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: Conditionalize setting of ACE_INFINITE on non-Win32
- to allow the platform config to define a value.
-
- * ace/config-hpux11.h: Define ACE_INFINITE as 10000000. This value
- was empirically determined by John Mulhern. Until we know why
- this had to be done, you may need to set a different value in
- your own config.h file.
-
-Fri Aug 28 13:14:34 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Service_Configurator/Misc/main.cpp: Made the file CE
- friendly. Added "-y" to service configurator so we can still
- test static services.
-
-Fri Aug 28 13:45:28 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_lynxos.GNU: added HOST_OS
- support for PowerPC target. It has a slightly different
- name (sunos-xcoff-ppc) than for x86 target (sunos-coff-x86).
-
- * ace/config-lynxos.h: there doesn't seem to be an
- alloca () for PowerPC target. So, only enable
- ACE_HAS_ALLOCA and ACE_HAS_ALLOCA_H ifdef __x86__.
-
-Fri Aug 28 12:30:57 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/create_ace_build:
- Now it will cleanup dead links on the build directory.
-
-Fri Aug 28 09:45:53 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch: Fixed the constructor of ACE_Null_Condition so that
- it's consistent with ACE_Condition_Thread_Mutex. Thanks to
- Mats Nilsson <mats.nilsson@xware.se> for reporting this.
-
-Fri Aug 28 08:33:20 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/OS.h (FILE_FLAG_SEQUENTIAL_SCAN): Given null definitions for
- FILE_FLAG_SEQUENTIAL_SCAN for Non Win32 platforms.
-
-Thu Aug 27 19:40:32 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i: Changed an erroneous ACE_HAS_PTHREAD_DRAFT6 to
- ACE_HAS_PTHREADS_DRAFT6. Thanks to Chuck Gehr for catching this.
-
-Thu Aug 27 15:47:34 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Proactor.cpp (handle_signal): Fixed code for looping around
- handle_events(). Thanks to Marc Penner <mpenner@rst.inri.com>
- for pointing out the problem.
-
- * ace/OS.cpp (ACE_Countdown_Time::stop): Removed the setting of
- errno to ETIME when we have used all of timeout. This was
- necessary since this errno was interfering with errno being set
- by other parts of ACE.
-
-Thu Aug 27 13:45:31 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Added /**/ between "#include" and
- "<ace/sys_conf.h>". Otherwise, MSVC spits out warnings, tons of
- them.
-
- * ace/Profile_Timer.h (ACE_Profile_Timer): Remove the Win32
- section. Win32 (except CE) actually uses the code in
- ACE_HAS_GETRUSAGE.
-
-Thu Aug 27 13:12:04 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_proactor.cpp :
- test_proactor_with_aio.cpp is removed.
- test_proactor.cpp should do well on Win as well as other
- POSIX4 compliant platforms (with some known bugs in Solaris2.6).
-
-Thu Aug 27 11:35:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * etc/ACE-guidelines.html: added rule to declare a loop index
- before the loop, if it's used after the loop.
-
- * ace/OS.h,README: added ACE_LACKS_RTTI support, for use with
- ACE_HAS_ANSI_CASTS without dynamic_cast.
-
- * ace/config-sunos5.5.h (Sun CC only), config-osf1-4.0.h:
- added conditional ACE_LACKS_RTTI.
-
- * include/makeinclude/platform_osf1_4.0.GNU: added rtti=0
- support.
-
- * ACE-INSTALL.html,include/makeinclude/wrapper_macros.GNU:
- updated comments to reflect that rtti=0 is now supported on
- OSF1-4.0. (It's not only supported on Sun CC/SunOS 5.)
-
- * tests/SOCK_Connector_Test.cpp (host_is_up): broke out
- the code to test whether a host exists, is reachable, and
- is up into host_is_up (). Consider the host up if the
- blocking connection attempt succeeds, or down if it doesn't.
-
-Wed Aug 26 23:43:42 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.32 released.
-
-Wed Aug 26 19:11:07 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/count_lines:
- A nice Perl script to count lines of code.
-
-Wed Aug 26 17:35:43 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Reactors_Test.cpp (close): Oops, the ACE_ASSERT() was
- incorrect. It should be
-
- ACE_ASSERT (Test_Task::task_count_ >= 0);
-
- Thanks to David Levine for reporting this.
-
-Wed Aug 26 07:47:57 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Select_Reactor.h: Added template specialization for
- ACE_Guard<ACE_Select_Reactor_Token_T<ACE_Noop_Token>> to speed
- thing up when using lock-freed Select_Reactor.
-
- * ace/Select_Reactor.cpp: Removed template instantiation for
- ACE_Guard<ACE_Select_Reactor_Token_T<ACE_Noop_Token>> because
- it's been specialized in .h file.
-
-Wed Aug 26 08:51:23 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.cpp (thr_keycreate): On pthreads draft 6, the call is
- pthread_key_create, not pthread_keycreate. Thanks to Arturo
- Montes <mitosys@colomsat.com.co> for this fix.
-
-Wed Aug 26 08:32:18 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Reactor_Performance_Test.cpp (create_reactor):
- wrapped block in "if" statement with {} to prevent syntax
- error. Yet another example of why we should always use
- {} in "if" statements :-)
-
-Wed Aug 26 07:54:49 1998 J. Russell Noseworthy <rnosewor@objectsciences.com>
-
- * ace/OS.{i,cpp} (rwlock_init): use native ::rwlock_init on Solaris,
- even if ACE_HAS_STHREADS isn't defined. This avoids a nasty
- bug on startup with only ACE_HAS_PTHREADS defined on Solaris.
- The ACE_Object_Manager fails to initialize its first
- preallocated object, and core dumps when trying to use
- the ACE_Log_Msg lock, which hasn't been initialized yet.
-
-Tue Aug 25 21:26:29 1998 James CE Johnson <jcej@lads.com>
-
- * include/makeinclude/platform_linux_lxpthread.GNU:
- added NO_IMPLICIT_TEMPLATES support. To disable
- -fno-implicit-templates, set NO_IMPLICIT_TEMPLATES
- to anything in either your environment or on the
- make command line.
-
-Tue Aug 25 20:04:09 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-hpux11.h: Added ACE_HAS_AIO_CALLS. Thanks to John
- Mulhern for verifying this.
-
- * etc: Began to add the ACE tutorials. Thanks to James CE Johnson
- <jcej@lads.com> for contributing this stuff.
-
- * tests/Reactor*.cpp: Fixed all the Reactor tests so that they'd
- abide by the appropriate design rules. Thanks to Hans Rohnert
- <rohnert@scr.siemens.com> for reporting this.
-
-Tue Aug 25 19:31:37 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Memory_Pool.i (~ACE_Lite_MMAP_Memory_Pool,~ACE_MMAP_Memory_Pool):
- swapped to avoid use of ~ACE_MMAP_Memory_Pool before its linline
- definition.
-
-Tue Aug 25 18:48:50 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Service_Config.cpp (parse_args): Changed the default for
- ACE_Service_Config::no_static_svcs_ to be 1. This means that by
- default static services (ACE_Naming_Context and
- ACE_Service_Manager) will *not* be loaded into the Service
- Repository. The -n option remains the same for backward
- compatibility, i.e., it sets ACE_Service_Config::no_static_svcs_
- to 1. -y is a new option that sets
- ACE_Service_Config::no_static_svcs_ to 0.
-
- The motivation for this change was to minimize the ACE
- footprint, i.e., only load them if the program requires it.
-
-Tue Aug 25 18:28:11 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (strdup): Changed ::strlen to ACE_OS::strlen so we can
- get the actual length for UNICODE strings. Thanks to Dana
- Hackman <upboms@network-one.com> for reporting this.
-
- Also, the size of the allocated memory should be
- (strlen(s)+1)*sizeof(wchar_t), not strlen(s)*sizeof(wchar_t)+1.
-
-Tue Aug 25 14:33:46 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/XtReactor.cpp:
- The lock type for the ACE_XtReactor was wrong.
-
-Tue Aug 25 13:36:10 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * tests/Aio_Platform_Test.cpp (do_sysconf): Fixed the VxWorks
- warnings.
-
-Tue Aug 25 13:04:00 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Memory_Pool: Added virtual destructors.
-
-Tue Aug 25 10:38:52 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Added orbsvcs/test/Property/run_test.pl.
- The Simple test was moved to Simple/time.
-
-Tue Aug 25 10:45:50 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * tests/Aio_Platform_Test.cpp: Fixed the SunCC errors about
- missing function prototypes. Also put the various
- <sysconf> routines under "#if defined <SYMBOL>"
- statements.
-
-Tue Aug 25 07:42:40 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Memory_Pool.cpp: changed ACE_Auto_Basic_Array_Ptr<char *>
- template instantiation to ACE_Auto_Basic_Array_Ptr<char>.
-
- * examples/IPC_SAP/UPIPE_SAP/ex3.cpp (consumer): changed
- ACE_Auto_Basic_Ptr <char> to ACE_Auto_Basic_Array_Ptr <char>.
-
- * tests/Reactor_Performance_Test.cpp,
- examples/IPC_SAP/UPIPE_SAP/ex{2,3}.cpp:
- removed explicit ACE_Auto_Basic_Array_Ptr <char> instantiation
- because it's now in libACE.
-
- * include/makeinclude/wrapper_macros.GNU: added BUILD
- definition when building static libs only. This was necessary
- to allow the TAO/orbsvcs/tests/Simulator/{EventSup,DOVEMIB}
- makes to work properly on both Solaris and VxWorks.
- It also means that BUILD is no longer necessary in most Makefiles.
-
- * tests/Message_Queue_Notification_Test.cpp (main): removed
- trailing ".cpp" from log file name.
-
- * ace/config-sunx86-sunc++-4.x.h: removed because it wasn't being
- maintained, because config-sunos5.{5,6}.h are supported on Solaris86.
-
- * include/makeinclude/wrapper_macros.GNU: fixed determination
- of whether the g++ version supports exception handling. Assume
- that it doesn't on VxWorks. Thanks to Margherita Vittone Wiersma
- <vittone@fndaub.fnal.gov> for reporting this.
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: use := instead
- of += to set PATH, because += seems to insert a space.
-
-Tue Aug 25 05:23:11 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Message_Queue_Notifications_Test.dsp: Fixed something....
-
- * tests/tests.dsw: Fixed a typo.
-
- * ace/ace_{dll,lib}.dsp:
- * ace/Makefile: Added Select_Reactor_T and Select_Reactor_Base.
- Rebuilt file dependencies.
-
- * ace/Select_Reactor[_Base,_T].{h,i,cpp}: Templatized
- ACE_Select_Reactor and gangs. The original Select_Reactor files
- are splited into three sets of files. Select_Reactor_Base
- defines common components used by Select_Reactor and defines
- Select_Reactor_Base class. Select_Reactor_T defines the
- template classes. Select_Reactor instantiates necessary
- template classes. Next step is to add template specialization
- for ACE_Guard< ACE_Select_Reactor_Token_T <ACE_Noop_Token> >.
-
- * ace/Synch.{h,i}: Added a new class ACE_Noop_Token which is a
- subclass of ACE_Null_Mutex. It supports a null renew method.
- This class should be called ACE_Null_Token but the name is
- already used.
-
-Tue Aug 25 01:38:40 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Threads/task_three.cpp (main): Fixed this example so
- that it works portably with signals. Thanks to Susan Liebeskind
- <susan.liebeskind@gtri.gatech.edu> for reporting this.
-
- * tests/Aio_Platform_Test.cpp: Removed the forward decls
- so that don't conflict with the use of "static" later on.
- Thanks to David Levine for reporting this.
-
-Mon Aug 24 22:23:33 1998 David L. Levine <levine@cs.wustl.edu>
-
- * examples/IPC_SAP/UPIPE_SAP/ex{2,3}.cpp: removed unnecessary
- includes of fstream.h.
-
-Mon Aug 24 18:11:39 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Memory_Pool.cpp (ACE_Local_Memory_Pool::release): This
- memory pool uses "new" to create memory chunks for the Malloc
- class. However, since it did not keep track of this memory,
- these chunks were leaked.
-
- The solution was to keep tarck of the chunks allocated and
- delete them in release().
-
- * ace/Object_Manager.cpp (~ACE_Object_Manager): Moved TSS cleanup
- *before* Service_Config::close(). We need this to happen since
- DLL related TSS objects need to get cleaned up *before* the DLL
- is unlinked. The only downside to this order of things is that
- Log_Msg will also get cleaned up by TSS cleanup, and we need to
- make sure that we do not access Log_Msg after TSS cleanup.
-
- For this to work, we need to make sure of two things: user code
- is not called and ACE does not use Log_Msg after this after TSS
- resources have been cleaned up. The only major code that is
- called is Service_Config::close(). Since
- Service_Config::fini_svcs() has already been called,
- Service_Config::close() only unlinks the DLLs and does not call
- into user code.
-
- * ace/Service_Repository.cpp (close): Don't access Log_Msg since
- it has already been deleted by the time this code runs.
-
- * ace/Service_Config.cpp (close): Don't access Log_Msg since it
- has already been deleted by the time this code runs.
-
-Mon Aug 24 18:13:58 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Aio_Platform_Test.cpp: Fixed a few problems due
- to the fact that we weren't carefully guarding against platforms
- that don't support AIO macros. Thanks to Dana Hackman
- <upboms@network-one.com> for reporting this.
-
-Mon Aug 24 15:18:46 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.sh: run Message_Queue_Notifications_Test
- instead of Message_Queue_Notifications_Test.cpp.
-
-Mon Aug 24 13:05:03 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-{chorus,WinCE,vxworks5.x}.h: Added
- ACE_HAS_STRDUP_EMULATION. Thanks to Chuck Gehr for this
- suggestion.
-
- * ace/OS.i (strdup): Removed complicated #ifdef and replaced it
- with ACE_HAS_STRDUP_EMULATION.
-
-Mon Aug 24 10:41:07 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/OS.h: Provided null defitions for all the <wstat> wait
- status macros for ACE_WIN32 platform.
-
-Mon Aug 24 00:11:00 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Reactor/Misc/pingpong.cpp (run_svc): Fixed a subtle
- potential "order of destruction" bug with this test. Thanks to
- Hans Rohnert for reporting this.
-
-Sun Aug 23 21:09:55 1998 Arturo Montes <mitosys@colomsat.net.co>
-
- * ace/OS.i (thr_testcancel): with ACE_HAS_PTHREAD_DRAFT6,
- use ::pthread_testintr () instead of pthread_testcancel ().
- Thats what FSU pthreads uses. Hopefully, MVS does also.
-
-Sun Aug 23 16:28:10 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process.cpp (spawn): Removed the ACE_DEBUG messages on exec
- failure, etc. If apps want to know what has failed, they need
- to check the return from spawn() or wait(). ACE shouldn't be
- generating debugging information gratuitiously...
-
-Sun Aug 23 15:42:48 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Process.cpp: Put the warning on failure on exec
- ("ACE_Process::spawn (); exec failed: exiting!!!!\n") under
- condition (ACE_Service_Config::debug_).
-
-Sun Aug 23 11:12:46 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Makefile:
- * tests/Message_Queue_Notifications_Test.cpp:
- Fixed typos.
-
-Sat Aug 22 21:52:23 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/IPC_SAP/UPIPE_SAP/ex[23].cpp: Changed the
- Auto_Basic_Ptr to the Auto_Basic_Array_Ptr to avoid compilation
- problems. Thanks to David Levine for reporting this.
-
-Sat Aug 22 20:13:37 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added instructions for adding Alpha
- configurations to MSVC 5 project files.
-
-Sat Aug 22 13:24:00 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Message_Queue_Notifications_Test.cpp: Surrounded the
- ACE_Barrier with conditional compilations for ACE_HAS_THREADS.
- Thanks to Ganesh Pai <gpai@voicetek.com> for reporting this.
-
- * tests/Message_Queue_Notifications_Test.cpp: Cleaned up the
- formatting a bit.
-
- * tests: Renamed MsgQueue_Notifications_Test.{cpp,bpr,dsp} to
- Message_Queue_Notifications_Test.{cpp,bpr,dsp} to be more
- consistent with spelling.
-
- * ace/OS.h: Moved the ACE_timer_t down a bit in the file so that
- ACE_UINT is defined. Thanks to Naga for reporting this.
-
- * ace/OS.h: Added a "no-op" typedef for ACE_Rusage for platforms
- that don't support it. Thanks to David Levine for reporting
- this.
-
-Sat Aug 22 07:59:28 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/UPIPE_SAP_Test.cpp (main): removed unused local
- variables thr_handle_acceptor and thr_handle_connector.
-
- * tests/UPIPE_SAP_Test.cpp (connector): removed leading newline
- in printout at end of thread execution.
-
- * ACE-INSTALL.html: added egcs section. Thanks to
- Ganesh Pai <gpai@voicetek.com> for a portion of it.
-
- * examples/IPC_SAP/UPIPE_SAP/ex1.cpp (peer1); removed spurious
- "new" in ACE_NEW_RETURN involcation.
-
- * examples/IPC_SAP/UPIPE_SAP/ex{2,3}.cpp: untabified.
-
- * examples/IPC_SAP/UPIPE_SAP/Makefile: updated dependencies
- so that the module will build, now that auto_builtin_ptr.h
- has been removed.
-
-Sat Aug 22 00:27:06 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Read_Buffer.i (alloc): Added new method to get to
- Read_Buffer's allocator. This is necessary because we need to
- free up the memory that it allocates for us.
-
- * ace/Service_Object.cpp (fini): New method calls fini() on
- <type_> and sets the <fini_already_called_> flag. This flag is
- tested in the destructor so that the <type_> is not fini'ed
- twice.
-
- * ace/Service_Repository.cpp (fini): New method to finalize (call
- fini() and possibly delete) all the services.
-
- * ace/Service_Config.cpp (fini_svcs): New method calls
- ACE_Service_Repository::instance ()->fini ().
-
- * ace/Object_Manager.cpp (~ACE_Object_Manager): Added a call
- to close and possibly delete all service instances in the
- Service Repository by calling ACE_Service_Config::fini_svcs.
- This call is made *before* the library singletons (such as
- the Reactor, Proactor, Thread_Manager, and Allocator) are
- destroyed since the service instances maybe accessing these
- singletons in the fini() and destructor methods. Note that
- user singletons are destroyed before the services are
- fini'ed or closed.
-
- * ace/Service_Config.cpp (fini_svcs): Disable log messages when
- appropriate.
-
-Fri Aug 21 22:26:54 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (ACE_OS::gettimeofday): On Win32, instead of _ftime,
- use GetSystemTimeAsFileTime. _ftime has a bug crossing from
- daylight time to standard time in the US.
-
-Fri Aug 21 22:13:51 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (thr_cancel, thr_setcancelstate, thr_setcanceltype,
- thr_testcancel): added #else
- case, with ACE_NOTSUP (-1), to the various threads
- types. It catches
- ACE_HAS_PTHREADS && ACE_LACKS_PTHREAD_CANCEL. Thanks
- to Naga for reporting this.
-
- * ace/OS.i (thr_setcanceltype): don't support if
- ACE_LACKS_PTHREAD_CANCEL. Thanks to Naga for reporting this.
-
- * ace/config-chorus.h: added ACE_LACKS_PTHREAD_CANCEL.
- Thanks to Naga, again.
-
-Fri Aug 21 20:23:44 1998 Douglas C. Schmidt <schmidt@cumbia.cs.wustl.edu>
-
- * examples/IPC_SAP/UPIPE_SAP/ex[123].cpp: Updated these programs
- to use the ACE_Auto_Basic_Ptr instead of the bizarre
- auto_builtin_ptr.h file, which has been removed... Also
- replaced the global thr_mgr with the ACE_Thread_Manager
- Singleton and moved the <fstream.h> include file until AFTER the
- ACE includes to avoid problems with HP/UX 11's C++ compiler.
- Thanks to John Mulhern for motivating these fixes.
-
- * ace/config-hpux-10.x.h: Added a check so that if threading is
- disabled, then timespec_t does not get defined. This seems to
- work around a bug with HP/UX 10.x. Thanks to Ganesh M. Pai
- <gpai@voicetek.com> for reporting this.
-
-Fri Aug 21 19:54:26 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
- The ACE_HAS_EXCEPTIONS macro definition goes into CPPFLAGS now,
- so make depend can use it too.
-
-Fri Aug 21 18:47:40 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.cpp (wait): Need to check if status is non-null
- before accessing the exit status on NT. Thanks to Carlos for
- pointing this out.
-
-Fri Aug 21 16:40:39 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-sgic++.h:
- * ace/OS.i:
- Some platforms (notable IRIX 6.x) do not update the timer in
- pthread_cond_timedwait(), this made the Semaphore test fail for
- those platforms.
- I modified the ACE_OS::sema_wait() function to obtain the
- desired behavior.
-
-Fri Aug 21 15:50:05 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * etc/ACE-porting.html: Updated some discussion on selecting
- versions of STL that work with ACE and TAO. Thanks to Bob
- Laferriere <robert.laferriere@gemed.med.ge.com> for reporting
- this.
-
-Fri Aug 21 14:49:31 1998 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_gcc.GNU: Changed the default
- from build without threads to build with threads. Thanks to Ganesh
- Pai <gpai@voicetek.com> for this change.
-
-Fri Aug 21 09:25:21 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Moved several #ifdefs from Profile_Timer.h into OS.h
- to clean up the code.
-
- * ace/Profile_Timer.h: Cleaned up the class definition to make the
- OSE tool happy. Thanks to Doug Anderson <doug@clark.net> for
- reporting this.
-
- * etc: Moved the ACE-subsets.html file into $ACE_ROOT/etc.
-
- * ace/Synch_Options.h: Fixed a typo that was giving the OSE tool
- fits! Thanks to Doug Anderson <doug@clark.net> for reporting
- this.
-
-Fri Aug 21 03:41:01 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/OS/Process/process.cpp:
- * examples/OS/Process/imore.cpp: Minor bug fixes. Print out of
- child processes' exit status.
-
-Thu Aug 20 23:33:15 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.cpp (wait): Allow passing back the exit status of
- the child process on NT.
-
-Thu Aug 20 19:52:21 1998 Nagarajan Surendran <naga@cs.wustl.edu>
-
- * ace/OS.i:
- ACE_INLINE int
- ACE_OS::thr_getspecific (ACE_thread_key_t key, void **data)
- ...
- #else /* this is Draft 7 or STD */
- *data = pthread_getspecific (key);
-
- changed the ::pthread_getspecific to pthread_getspecific as it
- is a macro in Chorus. Thanks to David Levine for finding this.
-
-Thu Aug 20 17:05:28 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Service_Configurator/Misc/Timer_Service.cpp: Added some
- ACE_SVC_FACTORY_* macros for Timer_Service_1 so that it'll
- compile and link properly. Thanks to David Levine for reporting
- this.
-
-Thu Aug 20 14:39:53 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.{h,cpp} (ACE_Process::wait): Added a parameter of int* to
- get back the exit status of a child process.
-
-Thu Aug 20 14:33:59 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * etc/ACE-porting.html: Generalized the discussion to cover
- porting TAO, as well as to explain what C++ features must/can be
- supported to port ACE/TAO to a new platform.
-
-Thu Aug 20 05:12:24 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.31 released.
-
-Thu Aug 20 03:10:48 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/UPIPE_SAP_Test.cpp (main): Reverted back to use
- ACE_Thread. Although it's considered the "Right Thing" to spawn
- threads using ACE_Thread_Manager, I'll keep this file to use
- ACE_Thread to serve as an example that you can also use
- ACE_Thread to do any tricks you like, and, a sanity check.
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): Don't create the
- ACE_Thread_Exit object if we are not spawning the thread using
- ACE_Thread_Manager. Otherwise, when a non-thread manager
- spawned thread exits, the TSS clean up routing gets into an
- infinite loop calling ~ACE_Thread_Exit recursively and
- eventually the stack gets overflowed and the thread then
- "appears" to exit normally. But in fact, TSS cleanup does not
- complete at all.
-
- * ace/Thread_Manager.i:
- * ace/Thread_Manager.cpp (at_exit,thr_self): Moved all at_exit
- methods into the .i file. All at_exit methods and thr_self
- don't really need to hold Thread_Manager's lock.
-
- Notice that after the newly spawned thread enters the
- ACE_Thread_Adapter::invoke routine, we can safely manipulate its
- Thread_Deacriptor because it has been registered properly. This
- change should further reduce the times a thread gets started.
-
-Wed Aug 19 20:34:25 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/README:
- * ace/OS.h: Added a new macro directive
- "ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER". By defining
- this macro, it implicitly forces ACE to use non-static object
- manager and _NOT_ instantiating ACE_Object_Manager for you and
- assumes you will take the responsibility of instantiating
- ACE_Object_Manager at the proper place in your programs. This
- is usually used when using ACE with MFC/Windows programs.
- Because the main function is defined by MFC/Windows libraries,
- ACE has no way to instantiate object manager in these programs.
- For programs using MFC, a good place to instantiate Object
- Manger will be to define ACE_Object_Manager a member of
- CApplication derived classes so it gets instantiated/destructed
- properly.
-
- * ace/config-win32.h: Revised the comment about
- ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-Wed Aug 19 17:15:00 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp: Moved the registration of the SIGHUP
- signal from the constructor to the open() method since otherwise
- it'll never get called in the typical usecase... Thanks to
- Susan Liebeskind <susan.liebeskind@gtri.gatech.edu> for
- reporting this.
-
-Wed Aug 19 14:11:22 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.30 released.
-
-Wed Aug 19 13:38:40 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_TSS_Cleanup::detach): only declare local
- temp_key ifdef ACE_WIN32, because it's only used there.
-
-Wed Aug 19 10:13:36 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_Thread_Cleanup::remove): Don't bother to check
- the <in_use_> status when the object manager is shutting down.
- Otherwise, we are creating another fresh ACE_TSS object all over
- again.
- (ACE_Thread_Cleanup::detach): When cleaning up a thread key, we
- must first remove it from the internal table before actually
- freeing the key to avoid race condition (the OS may reassigned
- the key to other the_keycreate requests.)
-
- * ace/Log_Msg.cpp (close): Removed the ACE_Thread::key_free
- statement. This should be handled by TSS cleanup mechanism.
-
- * ace/Thread_Manager.cpp (at_exit): Moved the return statement
- after #endif macros to avoid the no return compiler warning.
-
- * tests/UPIPE_SAP_Test.cpp (main): Changed to use
- ACE_Thread_Manager to spawn and wait for threads so the TSS
- object gets cleanup correctly. Using plain vanilla
- ACE_Thread::spawn and/or ACE_OS::thr_create no longer works.
-
-Wed Aug 19 10:06:25 1998 David L. Levine <levine@cs.wustl.edu>
-
- * etc/ACE-guidelines.html: @added guidelines to check for
- success of an attempted open of an existing file, and to not
- release copyrighted, etc., material with ACE/TAO.
-
- * tests/SOCK_Connector_Test.cpp (find_another_host): check to see
- if the other host is up, by attempting a blocking connection with
- it. Only return another host if the connection succeeds.
- Also, cache the other host so that multiple calls will not
- have to repeat the connection attempt.
-
-Wed Aug 19 08:25:20 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Service_Configurator/Misc/Timer_Service.cpp: Changed
- Timer_Service_2 to Timer_Service_1 since it was a typo. Thanks
- to Irfan for reporting this.
-
-Tue Aug 18 22:10:43 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-fsu-pthread.h,config-hpux-10.x.h,config-mit-pthread.h,
- config-mvs.h,config-osf1-{3.2,4.0}.h,config-sco-5.0.0-mit-pthread.h,
- config-sunos5.{5,6}.h,config-tandem.h:
- removed ACE_HAS_ONEARG_SIGWAIT. It's no longer used.
-
-Tue Aug 18 16:50:28 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Thread.i (sigsetmask): Renamed parameter name since it
- conflicts with STL class name. Thanks to Kent Watsen
- <kent@watsen.net> for pointing this out.
-
- * examples/Reactor/Proactor/test_proactor.cpp (handle_write_stream):
- Fixed incorrect unary minus operator application.
-
-Tue Aug 18 16:43:00 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.29 released.
-
-Tue Aug 18 14:15:23 1998 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix4.2.GNU: Don't link programs
- against libACE.a - just against libACEshr.a (the shared lib).
-
- * include/makeinclude/platform_hpux_aCC.GNU:
- * include/makeinclude/platform_hpux_gcc.GNU: Switch support for threads
- on and off using "make threads=0" or "make threads=1". The default
- for aCC is to use threads, and for gcc is to not. I deduced the
- defaults from the old lib settings. Sorry if the gcc one is wrong.
-
- * ace/config-hpux-10.x.h: Added ACE_HAS_SIGISMEMBER_BUG, plus...
- * ace/config-hpux11.h: Set threads things based on the setting
- of ACE_HAS_THREADS, which gets set in platform_macros.GNU (see above)
- to build with threads support.
-
-Tue Aug 18 10:57:32 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/rules.nested.GNU:
- Removed extra enter/leave messages at each directory, GNUmake
- does it for you.
-
-Tue Aug 18 08:15:30 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Aio_Platform_Test.cpp (do_sysconf): on VxWorks, don't
- call ACE_OS::sysconf () because it's not supported.
-
- * bin/make_release: added -P to cvs checkout command, to ignore
- empty diretories.
-
-Mon Aug 17 22:56:17 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/version_tests/version_tests.dsw:
- * tests/version_tests/Dynamic_Priority_Test.dsp: Added a new
- project (as shown) into the workspace.
-
-Mon Aug 17 17:17:52 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Makefile: Removed IO_Cntl_Msg from files to build. It's empty.
-
- * include/makeinclude/platform_hpux_aCC.GNU: Added '302' to warnings
- to suppress; changed LIBS from '=' to '+=' to work better with TAO
- builds. Thanks to John Mulhern for these fixes.
-
-Mon Aug 17 17:04:31 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Env_Value_Test.cpp (main): Changed to use ASYS_TCHAR* for
- arguments in main.
-
-Mon Aug 17 15:51:30 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (thr_sigsetmask): with ACE_HAS_PTHREADS_DRAFT4 or
- ACE_HAS_PTHREADS_DRAFT6, added :: in front of sigprocmask ()
- call. Without it, g++ on LynxOS was warning about use of
- sigprocmask () before definition.
-
-Mon Aug 17 14:59:13 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * etc: Added a new file, ACE-porting.html, which explains how to
- port ACE to new OS platforms. Thanks to Gabriel Lima
- <gali@enea.se> for submitting this.
-
- * ace/FILE_Connector.h: Changed ACE_FILE_Connector so that it no
- longer inherits from ACE_FILE. This relationship is unnecessary
- and was not used. Thanks to Byron Harris for reporting this.
-
-Mon Aug 17 12:14:13 1998 Steve Huston <shuston@riverace.com>
-
- Large number of small changes (all listed below) to begin aligning
- the large number of Pthreads-related definitions around the 4 supported
- drafts: 4, 6, 7, as well as the standard (also known as draft 10).
- The notation for "DCE threads" is gone. DCE threads are primarily
- draft 4, plus platform-specific modifications. Now all code must
- declare the pthreads draft, and handle any platform/implementation
- oddities as such.
- As time goes on, I will remove more of the ACE_HAS_... and ACE_LACKS...
- things that are actually changes with the pthreads drafts.
- I tested these on Solaris 2.5.1 (CC), HP-UX 10.20 and 11.00, AIX 4.2.1,
- and sanity-tested on NT/MSVC (though no changes affected the WTHREADS
- parts).
-
- * ace/README: Clarified use of Pthreads macros.
-
- * ace/config-hpux-10.x.h:
- * ace/config-lynxos.h:
- * ace/config-osf1-3.2.h:
- * ace/config-osf1-4.0.h:
- Changed from DCE threads to ACE_HAS_PTHREADS_DRAFT4.
-
- * ace/config-fsu-pthread.h:
- * ace/config-m88k.h:
- * ace/config-mvs.h: Added ACE_HAS_PTHREADS_DRAFT6.
-
- * ace/config-aix-4.1.x.h:
- * ace/config-aix-4.2.x.h: Added ACE_HAS_PTHREADS_DRAFT7.
-
- * ace/config-chorus.h:
- * ace/config-dgux-4.x-ghs.h:
- * ace/config-hpux11.h:
- * ace/config-irix6.x-g++.h:
- * ace/config-irix6.x-sgic++.h:
- * ace/config-linux-lxpthreads.h:
- * ace/config-linux-pthread.h:
- * ace/config-mit-pthread.h:
- * ace/config-osf1-4.0.h:
- * ace/config-sco-5.0.0-mit-pthread.h:
- * ace/config-sunos-5.5.h: (also remove ACE_HAS_STHREADS if
- _POSIX_PTHREAD_SEMANTICS is defined by user).
- * ace/config-sunos5.6.h:
-
- Changed to / added ACE_HAS_PTHREADS_STD.
-
- * ace/config-hpux-10.x-g++.h: Changed over to use the base file
- config-hpux-10.x.h.
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS.cpp:
- Unified the compile ifdefs for pthreads around ACE_HAS_PTHREADS,
- ACE_HAS_PTHREADS_DRAFT{4, 6, 7} and ACE_HAS_PTHREADS_STD.
- Removed all use of ACE_HAS_DCETHREADS; put in platform-specific
- settings where needed.
-
- * ace/Sched_Params.cpp:
- * ace/Synch.cpp: Removed the use of ACE_HAS_DCETHREADS.
-
-Mon Aug 17 12:10:54 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_{dll,lib}.dsp: Removed Message_Queue_T.cpp from and included
- Message_Queue.cpp into source files that get build. Hmm, I
- thought I made this change long ago.
-
- * ace/ace_ce_dll.dsp: Changed the DLL output directories for some
- configurations.
-
-Mon Aug 17 11:25:18 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Strategies_T.h:
- In some platforms we need to include "ace/Thread_Manager.h"
- because its definition is used in the inline methods of some
- templates, and a few platform actually check the syntax of
- template code, even if the template is not used.
-
-Mon Aug 17 10:06:01 1998 David L. Levine <levine@cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp: replaced
- #include <string.h> with #include "ace/OS.h", so that
- _REENTRANT gets defined with g++.
-
- * apps/Gateway/Peer/Peer.{h,cpp} (Peer_Connector::open): added
- (unused) arguments to this function. They are only provided to
- avoid a compiler warning about hiding the virtual function
- ACE_Connector<Peer_Handler, ACE_SOCK_CONNECTOR>::open (ACE_Reactor *,
- int).
-
- * tests/Dynamic_Priority_Test.cpp (run_performance_test):
- added delete of time_offsets array. The test Purifies
- cleanly now.
-
-Mon Aug 17 00:05:02 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Reactor/ReactorEx/test_removals.cpp (main): Fixed
- signed/unsigned mismatch.
-
- * examples/Reactor/ReactorEx/test_talker.cpp (handle_read_stream):
- Fixed incorrect unary minus operator application.
-
-Sun Aug 16 20:57:12 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (dlerror): Fixed a typo. Thanks to Ossama Othman
- <othman@astrosun.tn.cornell.edu> for reporting this.
-
-Fri Aug 14 18:58:29 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * tests/Aio_Platform_Test.cpp : Changed <sysconf>'s to
- ACE_OS::sysconf's.
-
-Fri Aug 14 11:41:23 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (ACE_OS::dlclose): On HP-UX 10.x and 32-bit 11.00, do
- not actually call shl_unload if the library's ref count is more than
- 1. If shl_unload is called, it unloads the library, regardless of
- the reference count. This has the affect of never unloading a
- library that's been loaded more than once, until the OS unloads it
- at process run-down. Better than invalidating references to it,
- though. The wonder of wrappers at work for you...
-
-Fri Aug 14 10:01:05 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.h (ACE_UINT64_DBLCAST_ADAPTER): with
- ACE_LACKS_LONGLONG_T, only use low 32 bits. We could devise
- a conversion from ACE_U_LongLong to double that uses all
- 64 bits; but, it's probably easier for users to upgrade
- their hardware and/or compilers to ones that support 64
- bit ints :-)
-
-Thu Aug 13 19:29:33 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Queue_T.i: Changed the is_empty_i() method to check
- if this->tail_ == 0 rather than this->cur_bytes_ <= 0 &&
- this->cur_count_ <= 0. Thanks to Dirk Broer
- <Dirk.Broer@gsfc.nasa.gov> for suggesting this.
-
-Thu Aug 13 17:45:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Basic_Types.h: added ACE_UINT64_DBLCAST_ADAPTER macro
- to patch unimplemented UINT64 to double casts
-
-Thu Aug 13 13:34:52 1998 David L. Levine <levine@cs.wustl.edu>
-
- * os-patches/linux-patches.html: the af_inet.c patch is only
- needed through Linux kernel version 2.0.34.
-
- * tests/Conn_Test.cpp: disabled ACE_Hash_Addr template
- specialization on non-egcs g++.
-
- * tests/Process_Strategy_Test.{h,cpp} (~Process_Strategy):
- added an explicit destructor. g++ 2.7.2.3 got very
- confused ("Internal compiler error") without it, apparently
- when generating it implicitly.
-
- * tests/ MsgQueue_Notifications_Test.cpp (producer): removed
- unused local "result".
-
-Wed Aug 12 22:45:50 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MsgQueue_Notifications_Test.cpp: Added an explicit
- template instantiation.
-
-Wed Aug 12 21:32:05 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Message_Block.h:
- * ace/Message_Block.i:
- * ace/Message_Block.cpp:
- Enabled the base() method, it replaces the internal buffer and
- resets the Message_Block. There were other ways to do this (like
- calling data_block->base()), but some users find it convenient.
- I also modified the Data_Block::base() method to release any
- memory held by the class before the method is called. Thanks to
- Peter.Gorgia@libnet.com for pointing this out.
-
-Wed Aug 12 17:43:33 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MsgQueue_Notifications_Test.cpp: The watermark test which
- uses cv's signaling to notify other threads is also merged into
- this file.
-
- * tests/MsgQueue_Water_Mark_Test.{dsp,cpp}: Removed.
-
-Wed Aug 12 17:12:57 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * APC.DSP:
- * Abondoned.dsp:
- * Console_Input.dsp:
- * Directory_Changes.dsp:
- * Exceptions.dsp:
- * Multithreading.dsp:
- * Network_Events.dsp:
- * Prerun_State_Changes.dsp:
- * Registration.dsp:
- * Registry_Changes.dsp:
- * Removals.dsp:
- * Talker.dsp:
- * Timeouts.dsp:
- * Window_Messages.dsp:
- * test_abandoned.cpp:
- * test_apc.cpp:
- * test_window_messages.cpp:
- Added updated versions of project files (with correct include
- directories). Also changed the <main>'s to take in argc and
- argv. Thanks to Jeff Hellzen <JHellzen@hwdcsaws.cahwnet.gov>
- for submitting these changes.
-
-Wed Aug 12 16:16:38 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MsgQueue_Notifications_Test.cpp: Since this test doesn't
- use threads at all, I removed the #if ACE_HAS_THREADS macro.
-
-Wed Aug 12 14:57:51 1998 Jonathan Biggar <jon@floorboard.com>
-
- * ace/config-sunos5.5.h: wrapped thread-related defines with
- "#ifdef _REENTRANT".
-
- * include/makeinclude/platform_sunos5_sunc++.GNU,wrapper_macros.GNU,
- ACE-INSTALL.html: added support for "threads" make option.
-
-Wed Aug 12 02:06:02 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/test_config.h (ACE_Test_Output): It seemed like redirecting
- the Log_Msg output back to stderr in close was a bit too early
- and some messages popped out after some tests ran successfully.
- Moved the redirecting code into the destructor.
-
-Tue Aug 11 22:47:49 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/TP_Reactor.cpp (dispatch_io_set): added
- ACE_UNUSED_ARG (ready_mask).
-
- * tests/test_config.h: added
- ACE_Singleton<ACE_Test_Output, ACE_Null_Mutex> template
- instantiation. This shouldn't be done in a header, and
- I wouldn't be surprised if it breaks somewhere. But, we
- don't have any other need for a .cpp file to link into all tests.
-
-Tue Aug 11 17:30:32 1998 Steve Huston <shuston@riverace.com>
-
- * tests/test_config.h: Fixed ACE_Test_Output to get torn down clean
- in all cases by changing it from a static to an ACE_Singleton.
- Re-enabled it for Win32, non-WinCE.
-
-Tue Aug 11 15:51:47 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/XtReactor.h (ACE_XtReactor): Changed the constructor so that
- the XtAppContext can be passed later. This scheme allows for a
- default constructor. Thanks to J-M Strauss
- <strauss@limeil.cea.fr> for suggesting this.
-
-Tue Aug 11 12:35:10 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (fopen): On WinCE, reset the handle to 0 if CreateFile
- fails so we can detect errors when using the emulated FILE
- pointer on CE.
-
- * tests/test_config.h (~ACE_Test_Output): Changed !defined
- (ACE_HAS_WINCE) to !defined (ACE_WIN32). When using non-static
- object manager, the singleton ACE_Log_Msg may no longer exist
- here and the reseting here just causes access violations. Other
- platforms which use non-static might suffer the same sympton.
-
-Tue Aug 11 12:29:03 1998 David L. Levine <levine@cs.wustl.edu>
-
- * os-patches/linux-patches.html: the gas patch on alphas
- isn't necessary with binutils-2.9.1.
-
-Tue Aug 11 12:23:09 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ARGV.{h,cpp}: Made a series of changes to make the file CE
- friendly.
-
- * ace/Message_Queue_T.cpp: Adjusted the indentation.
-
-Tue Aug 11 02:06:55 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (dispatch_handles): Because dispatch_index
- is absolute, nCount should be set to
- (max_handlep1 - dispatch_index) instead of (nCount -
- dispatch_index). Thanks to Alberto Villarica
- <Alberto.Villarica.rav@nt.com> for pointing this out.
-
-Mon Aug 10 20:12:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp: On HP-UX 10.x, display thread's readable number
- rather than an int represenation of a pointer.
-
- * tests/test_config.h (ACE_Test_Output): When destroying
- ACE_Test_Output, make sure to remove all traces of it from
- ACE_Log_Msg instance.
-
- * tests/Dynamic_Priority_Test.cpp: Don't try to set process-wide
- scheduling if it's not supported on the platform.
-
- * tests/Thread_Manager_Test.cpp: Don't do a kill on pthreads draft
- 4 platforms. This is a NOP for now - it will make a difference when
- I check in more threads-related changes later.
-
-Mon Aug 10 10:35:26 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Added the ACE-subsets.html file to the ACE directory so that
- we can all modify it.
-
-Mon Aug 10 10:29:29 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (shm_open): There's no need to mess with the security
- attribute here.
-
-Mon Aug 10 01:09:05 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.{h,i}: Added a new function
- "default_win32_security_attributes" to return the defualt
- security setting of kernel objects. By default, this function
- is a no-op. You must define
- ACE_DEFINES_DEFAULT_WIN32_SECURITY_ATTRIBUTES for this function
- to return a SECURITY_ATTRIBUTES object that has no access
- restriction.
-
- Modified all functions that use Win32 kernel objects to invoke
- this new function to get the appropriate security attributes.
- Thanks to Ivan Murphy <Ivan.Murphy@med.siemens.de> for
- suggesting this.
-
-
-Sun Aug 09 23:26:39 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.28 released.
-
-Sun Aug 9 23:08:51 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Checked in a bunch of files/directories that I'd neglected
- to check in before.
-
-Sun Aug 09 23:02:24 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.27 released.
-
-Sun Aug 9 15:04:41 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * netsvcs/clients/Tokens/manual/manual.cpp: Changed all instances
- of "#if (ACE_WIN32)" to "#if defined (ACE_WIN32)"
-
- * netsvcs/netsvcs.dsw: Added this workspace which contains all the
- netsvcs projects.
-
- * netsvcs/clients/Tokens/collection/collection.dsp:
- * netsvcs/clients/Tokens/collection/collection.dsw:
- * netsvcs/clients/Tokens/deadlock/deadlock.dsp:
- * netsvcs/clients/Tokens/deadlock/deadlock.dsw:
- * netsvcs/clients/Tokens/invariant/invariant.dsp:
- * netsvcs/clients/Tokens/invariant/invariant.dsw:
- * netsvcs/clients/Tokens/manual/manual.dsp:
- * netsvcs/clients/Tokens/manual/manual.dsw:
- * netsvcs/clients/Tokens/mutex/mutex.dsp:
- * netsvcs/clients/Tokens/mutex/mutex.dsw:
- * netsvcs/clients/Tokens/rw_lock/rw_lock.dsp:
- * netsvcs/clients/Tokens/rw_lock/rw_lock.dsw:
- Added these MSVC projects and workspaces. Thanks to Jeff
- Hellzen <JHellzen@hwdcsaws.cahwnet.gov> for submitting these.
-
- * netsvcs/clients/Logger/direct_logging.dsp:
- * netsvcs/clients/Logger/indirect_logging.dsp:
- * netsvcs/clients/Naming/Client/Client_Test.dsp:
- * netsvcs/clients/Naming/Client/main.dsp:
- * netsvcs/lib/netsvcs.dsp:
- * netsvcs/servers/servers.dsp:
- Mainly just updated all of these and made sure that they worked.
-
-Sun Aug 9 09:17:16 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Strategies_T.cpp (connect_svc_handler): Changed the call to
- this->CONNECT_STRATEGIES::connect_svc_handler() to avoid compile
- problems with GCC on LynxOS. Thanks to Sergio for reporting
- this.
-
-Sat Aug 8 09:37:27 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/INET_Addr.cpp:
- Reverted the operator== optimization, it turns out that the
- definition of struct in_addr is not portable after all. Maybe
- there is a set of macros to make it portable?
-
- * ace/ACE.h:
- * ace/ACE.cpp:
- Returning <const char* const> is unnecesary; and gives no more
- guarantees that <const char*>, plus it gives warnings in
- IRIX/MIPSPro compilers.
-
- * ace/Synch.cpp:
- Removed explicit instantiations of ACE_Guard<ACE_Null_Mutex>,
- the class is specialized so no instantiation is necessary. Same
- thing for ACE_Write_Guard and ACE_Read_Guard.
-
-Fri Aug 7 23:18:53 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-sunos5.5.h:
- Updated the new ACE_CC_NAME macros (and friends) so they work
- with egcs (and hopefully g++).
-
- * tests/MT_SOCK_Test.cpp:
- Removed double comma in function call.
-
-Fri Aug 7 21:39:26 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/INET_Addr.cpp:
- Compare the fields of in_addr instead of calling memcmp.
-
- * ace/Message_Block.cpp:
- * ace/Message_Block.h:
- * ace/Message_Block.i:
- The Message_Block can receive an allocator for the data block,
- so instead of creating them on the heap they can be allocated
- from a TSS allocator or other memory pool. By default we use
- ACE_New_Allocator.
-
- * apps/gperf/Makefile:
- The Id was wrong.
-
- * bin/auto_compile:
- Added gperf to the default list of directories.
-
-Fri Aug 7 13:58:58 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * bin/envinfo.cpp:
- Added this program, which will print the version information for
- ACE, the OS and C++ compiler. The idea is to use this when posting
- to the ACE mailing list.
-
- * ace/ACE.h:
- * ace/ACE.cpp:
- Added static methods to retrieve compiler information (name, major
- version, minro version, beta version).
-
- * ace/config-sunos5.5.h:
- Defined the compiler information macros for this platform.
-
- * bin/Makefile:
- Modified the Makefile to support multiple binaries in the
- directory (according to tests/Makefile).
-
- * bin/clone.cpp:
- Added RCS Id.
-
-Fri Aug 7 12:46:42 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Activation_Queue.h: Updated the documentation to indicate
- the need for absolute rather than relative time values. Thanks
- to Johannes Gutleber <Johannes.Gutleber@cern.ch> for reporting
- this.
-
-Fri Aug 07 02:06:54 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MsgQueue_Water_Mark_Test.{dsp,cpp}: Added a new test to
- make sure the water mark stuff works. It still needs to be
- clean up to compile with g++.
-
-Fri Aug 07 01:00:55 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T.i (operator==): Added a method to compare a
- ACE_Hash_Recyclable and a ACE_Recyclable. Also inlined a shit
- load of small methods.
-
- * ace/Strategies_T.cpp (connect_svc_handler): If <sh> is not
- connected to the correct address or is busy, we will not use it.
- Therefore we need to set it to zero.
-
- * ace/Synch: Added template specializations for
- ACE_Guard<ACE_Null_Mutex>, ACE_Write_Guard<ACE_Null_Mutex>, and
- ACE_Read_Guard<ACE_Null_Mutex>.
-
-Thu Aug 06 14:59:22 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Thread_Manager.cpp: Updated all uses of cancel_thr for the
- various apply*() methods so that they pass along the
- async_cancel flag.
-
- * ace/Thread_Manager.cpp: Added a new ARG to the ACE_EXECUTE_OP
- macro. Believe it or not, this change actually reduced the
- amount of special-case code because we can now treat kill_thr()
- just like the other *_thr() methods. Irfan was amazed ;-).
-
- * ace/Thread_Manager: Added a new flag called "async_cancel" to
- all the Thread Manager cancel*() methods. This flag is disabled
- by default (hence, there are no changes to the ACE Thread
- Manager semantics). If it is enabled, however, it will attempt
- to perform an asychronous thread cancellation on the
- corresponding thread id(s).
-
-Thu Aug 6 17:44:50 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Priority_Task_Test.cpp: Enhanced this test so that it runs
- correctly on platforms where you must be root to muck around
- with thread priorities. Thanks to John Mulhern
- <9107@mn3.lawson.lawson.com> for reporting this.
-
- * tests/MT_SOCK_Test.cpp: Reformatted the code to make it more
- readable and also to remove a C-style cast.
-
- * ace/Message_Queue_T.h: Improved the documentation of the low
- water mark and high water marks. Thanks to Umar for encouraging
- this.
-
-Thu Aug 6 20:41:44 1998 James C Hu <jxh@cs.wustl.edu>
-
- * ace/Filecache.cpp: Avoided a deadlock detected by Tom Dobridge
- <dobridge@persimmon.com> (thanks!).
-
-Thu Aug 06 14:59:22 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T.cpp (connect_svc_handler): If <sh> is not
- connected to the correct address or is busy, we will not use it.
- Therefore we need to set it to zero.
-
- * ace/Synch: Added template specializations for
- ACE_Guard<ACE_Null_Mutex>, ACE_Write_Guard<ACE_Null_Mutex>, and
- ACE_Read_Guard<ACE_Null_Mutex>.
-
-Thu Aug 6 14:30:11 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-sgic++-nothreads.h:
- Use template specializations instead of pragmas if the compiler
- is 7.2 or better.
-
- * ace/config-irix6.x-sgic++.h:
- The <sched.h> is not necessary in IRIX 6.4
-
-Thu Aug 06 14:11:15 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Message_Queue_T.cpp: Make sure to check if the cur_bytes_ is
- <= to the low_water_mark before signaling threads trying to
- enqueue a Message_Block.
-
- * ace/Message_Queue_T.cpp: Fixed a bunch of code to use the
- ACE_NEW_RETURN macro to ensure that errno is set correctly.
-
- * ace/Message_Queue.h: Changed the DEFAULT_LWM to be the same as
- the DEFAULT_HWM since that's the "Right Way"[TM] to handle
- this... Thanks to Umar Syyid <usyyid@hns.com> for helping to
- track this down.
-
- * ace/Message_Queue_T.i (is_empty_i): Removed the low water mark
- logic entirely because this isn't the right place to put it.
- Also reverted back to using && rather than || since we need
- to handle "0-sized" messages.
-
-Thu Aug 6 09:41:22 1998 Nagarajan Surendran <naga@cs.wustl.edu>
-
- * ace/ARGV.{h,cpp} : Added a new
- ACE_ARGV(ASYS_TCHAR *first_argv,ASYS_TCHAR *second_argv,int)
- which creates a new ARGV which is the concatenation of the 2 argvs.
-
- Also added a new private method argv_to_string
- which converts an argv to a string.
-
-Thu Aug 6 08:56:02 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Module.h: Pointed out that ACE_Module should't be subclassed
- -- ACE_Task should be subclasses. Thanks to Barney Dalton
- <barneyd@cyllene.uwa.edu.au> for pointing this out.
-
-Wed Aug 05 23:57:16 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Reactor.cpp (end_event_loop): Changed the code so that *all*
- threads are woken up. Thanks to Olivier Lau
- <olivier_lau@srtelecom.com> for pointing this bug out.
-
- * examples/Reactor/ReactorEx/test_multithreading.cpp (main):
- Changed Reactor->close() to Reactor::end_event_loop().
-
-Wed Aug 5 23:12:54 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Changed
- PURE_CACHE_DIR = $(PURE_CACHE_BASE_DIR)-$(LOGNAME)-$(CXX)
-
- to
-
- PURE_CACHE_DIR = $(PURE_CACHE_BASE_DIR)-$(LOGNAME)-$(notdir $(CXX) )
-
- Thanks to John Mulhern <9107@mn3.lawson.lawson.com> for this.
-
-Wed Aug 05 14:53:18 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T.cpp (connect_svc_handler): When using this
- method, the user was required to pass us a zero for the
- svc_handler. We would either find them a non-busy one, or will
- create a new one.
-
- Unfortunately, the svc_handler lookup was taking too long.
- Therefore, the following change was made to the
- connect_svc_handler algorithm: the user is now allowed to pass
- in the svc_handler that they used last as a "hint". The
- algorithm first checks to see if the "hint" svc_handler is
- connected to the correct address and is recyclable. If it is,
- then it recycles the "hint" svc_handler and gives it back to the
- user. This should improve the lookups in most cases.
-
- * ace/Svc_Handler.cpp (recycling_act): Added accessor to get the
- <recycling_act_>.
-
- * tests/Conn_Test.cpp (idle): Added method so that we can tell
- when a Svc_Handler is being set to idle. Also changed the test
- so that it can use the new "hint" mechanism in the cached
- connector.
-
-Wed Aug 5 16:12:34 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Replaced usage of ACE_OS::thr_* with
- ACE_Thread::*. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for sending the patches.
-
-Wed Aug 5 11:07:12 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Manager: Cleaned up the documentation and formatting
- a bit.
-
- * ace/Message_Queue_T.i: Changed the computation of is_empty_i()
- so that it's
-
- return this->cur_bytes_ <= this->low_water_mark_ || this->cur_count_ <= 0;
-
- i.e., we use an || rather than a &&. Thanks to Umar for
- reporting this.
-
- * ace/Message_Queue_T.i: Changed the computation of is_empty_i() so
- that it doesn't consider the queue to be empty unless the
- cur_bytes_ <= the low_water_mark_ (which defaults to 0 so that
- no existing code is affected). This change makes it possible
- for producer/consumer threading applications to avoid the "silly
- window syndrome." Thanks to Umar Syyid <usyyid@hns.com> for
- suggesting this.
-
-Wed Aug 05 00:10:27 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (strnstr (both Unicode and Multibyte versions)):
- * ace/SString.cpp (strstr):
- Fixed "off by one error" in searching algorithm. Thanks to
- Byron Harris <harris_b@ociweb.com> for pointing this out.
-
- * tests/SString_Test.cpp (main): Added new test cases.
-
-Tue Aug 4 21:56:16 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/TSS_Test.cpp:
- * examples/Thread/thread_specific.cpp: Replaced ACE_OS::thr_* with
- ACE_Thread::*. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for sending the patches.
-
-Tue Aug 4 18:44:54 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * ACE-INSTALL.html:
- Updated the file to recommend the creation of config.h as a
- regular file that includes the appropriate platform config file,
- instead of setting it to be a symlink. This is more flexible and
- allows the user to redefine some of the ACE configuration
- parameters.
-
- * ace/config-linux-common.h:
- As an example of the above, now the user can #define
- ACE_HAS_IP_MULTICAST in his config.h file to 0, and he won't be
- using multicast under linux. This is clearer than having to edit
- the config-linux-common.h file, which will now respect the user's
- settings (if any)..
-
-Tue Aug 4 17:39:12 1998 Steve Huston <shuston@riverace.com>
-
- * ace/ACE_Library.{mak mdp}: Added TP_Reactor.cpp to the project.
-
- * tests/Aio_Platform_Test.cpp: Don't try to sysconf() for the AIO
- values if there's no chance of AIO on the system (_POSIX_ASYNC_IO
- not defined at compile time).
-
- * examples/OS/Process/Process.dsp: Link against ace.lib for Release,
- aced.lib for Debug (these were reversed).
-
-Tue Aug 4 12:09:51 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Clarified the fact that the ACE_DEFAULT_MUITCAST_ADDR
- must be within the range for host group addresses: 224.0.0.0 to
- 239.255.255.255. Thanks to Christa Schwanninger
- <christa.schwanninger@mchp.siemens.de> for reporting this.
-
-Tue Aug 04 11:01:18 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/GenExportH.BAT: Moved from TAO/TAO_IDL/.
-
- * ace/Token.{h,cpp} (signal_all_threads): Added this method which
- changes the return values of all acquire method to 2. The last
- thread waiting for the token will reset the signal state
- (therefore, there's NO cancel_signal_all_threads method.)
- (shared_acquire): Return 2 if the token is signaled after
- acquiring the token successfully.
- (release): If the token is signaled and there's no other thread
- waiting to acquire the token, reset the signal state.
-
- * ace/TP_Reactor.{h,i,cpp} (wakeup_all_threads): Added
- implementation for this virtual function. It "signals" the
- token threads are waiting on and wake them up by notifying the
- reactor.
- (handle_events): Check to see if the reactor token is signaled
- after acquiring it. If the the token is signaled, it will not
- proceed to handle events (by calling select) but instead return
- successfully. This allow the thread the chance to check if it's
- time to shut down the event loop.
-
-Mon Aug 3 17:53:48 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * performance-tests/Makefile:
- * performance-tests/Misc/basic_func.cpp:
- * performance-tests/Misc/basic_perf.cpp:
- * performance-tests/Misc/childbirth_time.cpp:
- * performance-tests/Misc/context_switch_time.cpp:
- * performance-tests/Misc/preempt.cpp:
- * performance-tests/Misc/test_mutex.cpp:
- * performance-tests/Misc/test_naming.cpp:
- * performance-tests/Misc/test_singleton.cpp:
- * performance-tests/Synch-Benchmarks/Benchmark_Base.cpp:
- * performance-tests/Synch-Benchmarks/Benchmark_Performance.cpp:
- * performance-tests/Synch-Benchmarks/Options.cpp:
- * performance-tests/Synch-Benchmarks/Performance_Test.cpp:
- * performance-tests/Synch-Benchmarks/condb_test.cpp:
- * performance-tests/Synch-Benchmarks/conds_test.cpp:
- * performance-tests/Synch-Benchmarks/context_test.cpp:
- * performance-tests/Synch-Benchmarks/memory_test.cpp:
- * performance-tests/Synch-Benchmarks/mutex_test.cpp:
- * performance-tests/Synch-Benchmarks/pipe_proc_test.cpp:
- * performance-tests/Synch-Benchmarks/pipe_thr_test.cpp:
- * performance-tests/Synch-Benchmarks/recursive_lock_test.cpp:
- * performance-tests/Synch-Benchmarks/rwrd_test.cpp:
- * performance-tests/Synch-Benchmarks/rwwr_test.cpp:
- * performance-tests/Synch-Benchmarks/sema_test.cpp:
- * performance-tests/Synch-Benchmarks/synch_driver.cpp:
- * performance-tests/Synch-Benchmarks/sysvsema_test.cpp:
- * performance-tests/Synch-Benchmarks/token_test.cpp:
- * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp:
- * performance-tests/TTCP/C/new-ttcp.cpp:
- * performance-tests/TTCP/ORBeline/ttcp_i.cpp:
- * performance-tests/TTCP/Orbix/ttcpC.cpp:
- * performance-tests/TTCP/Orbix/ttcpS.cpp:
- * performance-tests/TTCP/Orbix/ttcp_i.cpp:
- * performance-tests/UDP/udp_test.cpp:
- Added ACE_RCSID to these files.
-
-Sun Aug 2 19:43:04 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/Reactor_Performance_Test.cpp: Made a change suggested by
- Irfan to allow this test to work in Windows 95.
-
-Sat Aug 1 20:35:32 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace:
- include/makeinclude:
- Added new config/platform files for SCO. These files enable the
- following:
-
- - TAO_IDL work newly in SCO OpenServer.
- - Fixed a compilation problem with EventService in TAO.
- - Fixed a problem with ACE and TAO shared libraries.
- - Some test with TSS_Emulation and recent changes in Thread_Manager.
-
- Thanks to Arturo for these changes.
-
-Sat Aug 01 13:34:12 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (flock_wrlock): LockFileEx() and UnLockFileEx() are not
- implemented on Win32. Therefore, the flock methods were changed
- to use the non-Ex versions on Win95. Thanks to XuYifeng
- <xuyf@pop.zg169.net> for pointing this out.
-
- While making the changes, I found that there were a couple bugs
- in the code: (a) the <whence> parameter was being ignored and
- (b) the adjustment for <len> == 0 was incorrect. I think I have
- fixed both of these also in ACE_OS::adjust_flock_params().
-
- One last thing: I changed flock_unlock() to use UnLockFile()
- instead of UnLockFileEx(). UnLockFileEx() is also not supported
- on Win95. Hopefully, it is ok to lock with LockFileEx() and
- unlock with UnLockFile() instead of UnLockFileEx().
-
- * ace/OS.cpp (pread): Changed bytes_written to bytes_read.
-
-Fri Jul 31 23:47:50 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- We now run several on-button tests in TAO, though it is still
- hard to detect any errors.
-
-Fri Jul 31 21:33:22 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Select_Reactor.cpp (open): Changed the code to ignore the
- return value from ACE::set_handle_limit(). Thanks to Zheng Han
- <zhan@glenvan.glenayre.com> for reporting this and to Arturo for
- suggesting the fix.
-
- * ace/ARGV.cpp: Enhanced the implemenation of string_to_array() so
- that it should always work correctly even if there are a large
- number of bytes in the original buf string.
-
- * ace/ARGV.cpp: Renamed string_to_array() to string_to_argv(),
- which is more intuitive.
-
- * ace/OS.h: Added a new macro called ACE_DEFAULT_ARGV_BUFSIZ,
- which is used as the default size of all the "argv" contents in
- ACE_ARGV. This defaults to 4 kbytes.
-
-Fri Jul 31 19:55:10 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * netsvcs/clients/Logger/direct_logging.cpp:
- * netsvcs/clients/Logger/indirect_logging.cpp:
- * netsvcs/clients/Naming/Client/Client_Test.cpp:
- * netsvcs/clients/Naming/Client/main.cpp:
- * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp:
- * netsvcs/clients/Naming/Dump_Restore/createfile.cpp:
- * netsvcs/clients/Naming/Dump_Restore/main.cpp:
- * netsvcs/clients/Tokens/collection/collection.cpp:
- * netsvcs/clients/Tokens/collection/rw_locks.cpp:
- * netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp:
- * netsvcs/clients/Tokens/invariant/invariant.cpp:
- * netsvcs/clients/Tokens/manual/manual.cpp:
- * netsvcs/clients/Tokens/mutex/test_mutex.cpp:
- * netsvcs/clients/Tokens/rw_lock/rw_locks.cpp:
- * netsvcs/lib/Base_Optimizer.cpp:
- * netsvcs/lib/Client_Logging_Handler.cpp:
- * netsvcs/lib/Log_Message_Receiver.cpp:
- * netsvcs/lib/Logging_Strategy.cpp:
- * netsvcs/lib/Name_Handler.cpp:
- * netsvcs/lib/Server_Logging_Handler.cpp:
- * netsvcs/lib/Server_Logging_Handler_T.cpp:
- * netsvcs/lib/TS_Clerk_Handler.cpp:
- * netsvcs/lib/TS_Server_Handler.cpp:
- * netsvcs/lib/Token_Handler.cpp:
- * netsvcs/servers/main.cpp:
- Added ACE_RCSID to these files.
-
-Fri Jul 31 19:15:58 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.cpp (pwrite and pread): There were many bugs in these two
- methods.
-
- - It was assumed that it is ok to call WriteFile/ReadFile with
- an OVERLAPPED structure. This is not true on Windows95.
- Therefore, code had to be added to make sure that on
- Windows95, WriteFile and ReadFile were called without an
- OVERLAPPED struct.
-
- - We were assuming that if we used the OVERLAPPED struct, the
- file pointer would not move. It turns out that the OVERLAPPED
- struct has nothing with whether the file pointer moves or not.
- It has to do with whether the file was opened with
- FILE_FLAG_OVERLAPPED or not. Since it is not possible to
- figure whether the file handle we got was opened with this
- flag or not, we have to program defensively and reset the file
- pointer in any case.
-
- - Also the !ACE_HAS_P_READ_WRITE implementation was not
- restoring the file pointer to its original position. This was
- also fixed.
-
-Fri Jul 31 18:33:39 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp:
- * apps/Gateway/Gateway/Config_Files.cpp:
- * apps/Gateway/Gateway/Connection_Handler.cpp:
- * apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp:
- * apps/Gateway/Gateway/Connection_Handler_Connector.cpp:
- * apps/Gateway/Gateway/Event_Channel.cpp:
- * apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp:
- * apps/Gateway/Gateway/File_Parser.cpp:
- * apps/Gateway/Gateway/Gateway.cpp:
- * apps/Gateway/Gateway/Options.cpp:
- * apps/Gateway/Gateway/gatewayd.cpp:
- * apps/Gateway/Peer/Options.cpp:
- * apps/Gateway/Peer/Peer.cpp:
- * apps/Gateway/Peer/peerd.cpp:
- * apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp:
- * apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp:
- * apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp:
- * apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp:
- * apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp:
- * apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp:
- * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp:
- * apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp:
- * apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp:
- * apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp:
- * apps/Orbix-Examples/Logger/Logger.cpp:
- * apps/Orbix-Examples/Logger/client.cpp:
- * apps/Orbix-Examples/Logger/loggerS.cpp:
- * apps/Orbix-Examples/Logger/logger_i.cpp:
- * apps/Orbix-Examples/Logger/server.cpp:
- Added ACE_RCSID to these files.
-
-Fri Jul 31 17:50:01 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * ace/TP_Reactor.cpp:
- Added ACE_RCSID to this file, and all the .cpp files in examples,
- listed below.
-
- * examples/ASX/CCM_App/CCM_App.cpp:
- * examples/ASX/CCM_App/SC_Client.cpp:
- * examples/ASX/CCM_App/SC_Server.cpp:
- * examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp:
- * examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp:
- * examples/ASX/Event_Server/Event_Server/Options.cpp:
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp:
- * examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp:
- * examples/ASX/Event_Server/Event_Server/event_server.cpp:
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp:
- * examples/ASX/Message_Queue/bounded_buffer.cpp:
- * examples/ASX/Message_Queue/buffer_stream.cpp:
- * examples/ASX/Message_Queue/priority_buffer.cpp:
- * examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp:
- * examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp:
- * examples/ASX/UPIPE_Event_Server/Options.cpp:
- * examples/ASX/UPIPE_Event_Server/Peer_Router.cpp:
- * examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp:
- * examples/ASX/UPIPE_Event_Server/event_server.cpp:
- * examples/CORBA/Test_i.cpp:
- * examples/CORBA/client.cpp:
- * examples/CORBA/server.cpp:
- * examples/Connection/blocking/SPIPE-acceptor.cpp:
- * examples/Connection/blocking/SPIPE-connector.cpp:
- * examples/Connection/blocking/test_spipe_acceptor.cpp:
- * examples/Connection/blocking/test_spipe_connector.cpp:
- * examples/Connection/misc/Connection_Handler.cpp:
- * examples/Connection/misc/test_upipe.cpp:
- * examples/Connection/non_blocking/CPP-acceptor.cpp:
- * examples/Connection/non_blocking/CPP-connector.cpp:
- * examples/Connection/non_blocking/test_lsock_acceptor.cpp:
- * examples/Connection/non_blocking/test_lsock_connector.cpp:
- * examples/Connection/non_blocking/test_sock_acceptor.cpp:
- * examples/Connection/non_blocking/test_sock_connector.cpp:
- * examples/Connection/non_blocking/test_spipe_acceptor.cpp:
- * examples/Connection/non_blocking/test_spipe_connector.cpp:
- * examples/Connection/non_blocking/test_tli_acceptor.cpp:
- * examples/Connection/non_blocking/test_tli_connector.cpp:
- * examples/IOStream/client/iostream_client.cpp:
- * examples/IOStream/server/iostream_server.cpp:
- * examples/IPC_SAP/DEV_SAP/reader/reader.cpp:
- * examples/IPC_SAP/DEV_SAP/writer/writer.cpp:
- * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp:
- * examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp:
- * examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp:
- * examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp:
- * examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp:
- * examples/IPC_SAP/FILE_SAP/client.cpp:
- * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp:
- * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp:
- * examples/IPC_SAP/SPIPE_SAP/NPClient.cpp:
- * examples/IPC_SAP/SPIPE_SAP/NPServer.cpp:
- * examples/IPC_SAP/SPIPE_SAP/client.cpp:
- * examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp:
- * examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp:
- * examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp:
- * examples/IPC_SAP/SPIPE_SAP/producer_read.cpp:
- * examples/IPC_SAP/SPIPE_SAP/server.cpp:
- * examples/IPC_SAP/TLI_SAP/CPP-client.cpp:
- * examples/IPC_SAP/TLI_SAP/CPP-server.cpp:
- * examples/IPC_SAP/TLI_SAP/db-client.cpp:
- * examples/IPC_SAP/TLI_SAP/db-server.cpp:
- * examples/IPC_SAP/TLI_SAP/ftp-client.cpp:
- * examples/IPC_SAP/TLI_SAP/ftp-server.cpp:
- * examples/IPC_SAP/UPIPE_SAP/ex1.cpp:
- * examples/IPC_SAP/UPIPE_SAP/ex2.cpp:
- * examples/IPC_SAP/UPIPE_SAP/ex3.cpp:
- * examples/Log_Msg/test_log_msg.cpp:
- * examples/Logger/Acceptor-server/server_loggerd.cpp:
- * examples/Logger/client/logging_app.cpp:
- * examples/Logger/simple-server/Logging_Acceptor.cpp:
- * examples/Logger/simple-server/Logging_Handler.cpp:
- * examples/Logger/simple-server/server_loggerd.cpp:
- * examples/Map_Manager/test_hash_map_manager.cpp:
- * examples/Mem_Map/IO-tests/IO_Test.cpp:
- * examples/Mem_Map/IO-tests/test_io.cpp:
- * examples/Mem_Map/file-reverse/file-reverse.cpp:
- * examples/Misc/test_XtReactor1.cpp:
- * examples/Misc/test_XtReactor2.cpp:
- * examples/Misc/test_dump.cpp:
- * examples/Misc/test_get_opt.cpp:
- * examples/Misc/test_profile_timer.cpp:
- * examples/Misc/test_read_buffer.cpp:
- * examples/Misc/test_set.cpp:
- * examples/Misc/test_sstring.cpp:
- * examples/Misc/test_trace.cpp:
- * examples/Naming/test_multiple_contexts.cpp:
- * examples/Naming/test_non_existent.cpp:
- * examples/Naming/test_open.cpp:
- * examples/Naming/test_writers.cpp:
- * examples/OS/Process/imore.cpp:
- * examples/OS/Process/process.cpp:
- * examples/Reactor/Dgram/CODgram.cpp:
- * examples/Reactor/Dgram/Dgram.cpp:
- * examples/Reactor/FIFO/client.cpp:
- * examples/Reactor/FIFO/server.cpp:
- * examples/Reactor/Misc/notification.cpp:
- * examples/Reactor/Misc/pingpong.cpp:
- * examples/Reactor/Misc/test_demuxing.cpp:
- * examples/Reactor/Misc/test_event_handler_t.cpp:
- * examples/Reactor/Misc/test_reactors.cpp:
- * examples/Reactor/Misc/test_signals_1.cpp:
- * examples/Reactor/Misc/test_signals_2.cpp:
- * examples/Reactor/Misc/test_time_value.cpp:
- * examples/Reactor/Misc/test_timer_queue.cpp:
- * examples/Reactor/Multicast/Log_Wrapper.cpp:
- * examples/Reactor/Multicast/client.cpp:
- * examples/Reactor/Multicast/server.cpp:
- * examples/Reactor/Ntalker/ntalker.cpp:
- * examples/Reactor/Proactor/test_multiple_loops.cpp:
- * examples/Reactor/Proactor/test_proactor.cpp:
- * examples/Reactor/Proactor/test_proactor_with_aio.cpp:
- * examples/Reactor/Proactor/test_timeout.cpp:
- * examples/Reactor/ReactorEx/test_abandoned.cpp:
- * examples/Reactor/ReactorEx/test_apc.cpp:
- * examples/Reactor/ReactorEx/test_console_input.cpp:
- * examples/Reactor/ReactorEx/test_directory_changes.cpp:
- * examples/Reactor/ReactorEx/test_exceptions.cpp:
- * examples/Reactor/ReactorEx/test_multithreading.cpp:
- * examples/Reactor/ReactorEx/test_network_events.cpp:
- * examples/Reactor/ReactorEx/test_prerun_state_changes.cpp:
- * examples/Reactor/ReactorEx/test_registration.cpp:
- * examples/Reactor/ReactorEx/test_registry_changes.cpp:
- * examples/Reactor/ReactorEx/test_removals.cpp:
- * examples/Reactor/ReactorEx/test_talker.cpp:
- * examples/Reactor/ReactorEx/test_timeouts.cpp:
- * examples/Reactor/ReactorEx/test_window_messages.cpp:
- * examples/Registry/test_registry_iterator.cpp:
- * examples/Registry/test_registry_update.cpp:
- * examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp:
- * examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp:
- * examples/Service_Configurator/IPC-tests/server/server_test.cpp:
- * examples/Service_Configurator/Misc/Timer_Service.cpp:
- * examples/Service_Configurator/Misc/main.cpp:
- * examples/Shared_Malloc/Malloc.cpp:
- * examples/Shared_Malloc/Options.cpp:
- * examples/Shared_Malloc/test_malloc.cpp:
- * examples/Shared_Malloc/test_multiple_mallocs.cpp:
- * examples/Shared_Malloc/test_persistence.cpp:
- * examples/Shared_Memory/test_MM.cpp:
- * examples/Shared_Memory/test_SV.cpp:
- * examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp:
- * examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp:
- * examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp:
- * examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp:
- * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp:
- * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp:
- * examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp:
- * examples/Threads/auto_event.cpp:
- * examples/Threads/barrier1.cpp:
- * examples/Threads/barrier2.cpp:
- * examples/Threads/cancel.cpp:
- * examples/Threads/future1.cpp:
- * examples/Threads/future2.cpp:
- * examples/Threads/manual_event.cpp:
- * examples/Threads/process_manager.cpp:
- * examples/Threads/process_mutex.cpp:
- * examples/Threads/process_semaphore.cpp:
- * examples/Threads/reader_writer.cpp:
- * examples/Threads/recursive_mutex.cpp:
- * examples/Threads/task_five.cpp:
- * examples/Threads/task_four.cpp:
- * examples/Threads/task_one.cpp:
- * examples/Threads/task_three.cpp:
- * examples/Threads/task_two.cpp:
- * examples/Threads/thread_manager.cpp:
- * examples/Threads/thread_pool.cpp:
- * examples/Threads/thread_specific.cpp:
- * examples/Threads/token.cpp:
- * examples/Threads/tss1.cpp:
- * examples/Threads/tss2.cpp:
- * examples/Threads/wfmo.cpp:
- * examples/Timer_Queue/Async_Timer_Queue_Test.cpp:
- * examples/Timer_Queue/Driver.cpp:
- * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp:
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp:
- * examples/Timer_Queue/main_async.cpp:
- * examples/Timer_Queue/main_reactor.cpp:
- * examples/Timer_Queue/main_thread.cpp:
-
-Fri Jul 31 12:07:16 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/XtReactor.cpp (XtWaitForMultipleEvents): The first select()
- is made with the correct width. In XtAppProcessEvent(), the
- descriptor set may change, so the underlying handle_max may also
- have changed. The second select() is made with an incorrect
- value for the width. The solution is to reinitialize width
- before calling select() again. Thanks to J-M Strauss
- <strauss@limeil.cea.fr> for suggesting this change.
-
-Fri Jul 31 11:18:24 1998 Steve Huston <shuston@riverace.com>
-
- * ACE-INSTALL.html: Removed the direction to set global include/library
- paths in MSVC 4.2.
-
-Fri Jul 31 08:23:14 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Misc/test_XtReactor[12].cpp: Updated these files so
- they will work correctly with the "new" Reactor structure. Boy,
- it's been a long time since anyone actually tried to use this
- stuff... ;-) Thanks to J-M Strauss <strauss@limeil.cea.fr> for
- reporting this.
-
-Thu Jul 30 21:25:31 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Svc_Conf_y.cpp: This file didn't get patched with our
- routine patch. Applied $ACE_ROOT/Svc_Conf_y.cpp.diff manually.
- This change eliminates some warnings from g++.
-
-Thu Jul 30 19:03:12 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Timer_Queue/Thread_Timer_Queue_Test.h: Changed the type
- to class Thread_Timer_Queue_Test_Driver from
- Timer_Queue_Test_Driver <Thread_Timer_Queue, Input_Task,
- Input_Task::ACTION> to work around a bug with MSVC++. Thanks to
- Gonzo for pointing this out.
-
- * examples/Connection/blocking/SPIPE-{connector,acceptor}.cpp:
- Added #include "ace/Proactor.h". Thanks to Gonzo for reporting
- this.
-
-Thu Jul 30 17:54:14 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/test_config.h: Added /**/ between #include and <condefs.h>
- to avoid MSVC warnings.
-
- * tests/WinCE/ce_tests.dsw: Renamed project
- Message_Queue_Notifications_Test to MsgQueue_Notifications_Test.
-
- * tests/WinCE/Reactor_Performance_Test.dsp: This project file was
- somehow missing.
-
- * tests/TSS_Test.cpp:
- * tests/Reader_Writer_Test.cpp:
- * tests/Message_Queue_Test.cpp: Added numerous ASYS_TEXT macros to
- make sure we use the right strings on CE.
-
-Thu Jul 30 14:56:59 1998 Gonzalo A. Diethelm <gonzo@cs.wustl.edu>
-
- * ace/ACE.h:
- * ace/ACE.cpp:
- * ace/Event_Handler.h:
- * ace/Event_Handler.cpp:
- Moved the following static functions:
-
- register_stdin_handler
- remove_stdin_handler
- read_adapter
-
- from class ACE to class ACE_Event_Handler. That breaks a
- dependency from ACE to higher-level classes.
-
- * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp:
- * netsvcs/clients/Naming/Client/Client_Test.cpp:
- * examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp:
- * examples/Timer_Queue/Async_Timer_Queue_Test.dsp:
- * examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp:
- * examples/Timer_Queue/Thread_Timer_Queue_Test.dsp:
- * examples/Reactor/Ntalker/ntalker.cpp:
- * examples/Reactor/Misc/test_demuxing.cpp:
- * examples/Reactor/Misc/notification.cpp:
- * examples/Connection/blocking/SPIPE-connector.cpp:
- * examples/ASX/UPIPE_Event_Server/event_server.cpp:
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp:
- * examples/ASX/Event_Server/Event_Server/event_server.cpp:
- * apps/Gateway/Peer/Peer.cpp:
- * apps/Gateway/Gateway/Gateway.cpp:
- All these were modified by the above change.
-
- * ace/OS.h:
- * ace/OS.i:
- Added a strnew function that works as strdup but uses new instead
- of malloc to allocate memory.
-
-Thu Jul 30 16:54:20 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.26 released.
-
-Thu Jul 30 13:01:12 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task.h (ACE_Task_Base): Changed the spelling of
- ACE_Task_Exit to ACE_Thread_Exit, which is correct.
- Thanks to Daniel Winder <Daniel.Winder@cern.ch> for
- reporting this.
-
-Thu Jul 30 08:43:41 1998 Steve Huston <shuston@riverace.com>
-
- * tests/tests.(mdp mak): Made include and library paths relative.
-
-Thu Jul 30 02:22:49 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Synch_T.cpp (ts_init): Casted away constness of key_.
- Changed to cast away constness of the pointer to once_.
-
-Thu Jul 30 01:12:30 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/TP_Reactor.i (notify_handle): Added an ASYS_TEXT where it
- was missing. Thanks to Dieter Quehl for reporting this.
-
- * ace/Synch_T.cpp: It wasn't possible to call ts_object() to set
- an initial zero pointer value. The solution is to give
- ts_object() the same ability to initialize the key as ts_get().
- I also factored out some common code into a new method called
- ts_init(). Thanks to Bob McWhirter <bob@netwrench.com> for
- reporting this.
-
-Wed Jul 29 23:58:04 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Reactor/Ntalker: Added a README file and made some
- stylistic changes to the ntalker.cpp example.
-
-Wed Jul 29 18:38:17 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.25 released.
-
-Wed Jul 29 17:46:21 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task_T.h: Updated documentation to explain that
- ACE_Time_Values are ABSOLUTE rather than relative. Thanks to
- James Johnson for reporting this.
-
-Wed Jul 29 16:05:16 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/Process_Unix.pm:
- Use SIGTERM instead of SIGHUP to kill a process, it is the Right
- Thing and SIGHUP will not work in some cases because it is usual
- to catch this signal.
-
-Wed Jul 29 14:04:49 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Asynch_Acceptor.cpp (open): Added
- <number_of_initial_accepts> as an extra parameter to
- open(). <number_of_initial_accepts> is the number of
- asynchronous accepts that are started at the end of <open>. If
- <number_of_initial_accepts> is -1, then
- <number_of_initial_accepts> is set to <backlog> and hence
- <backlog> number of asynchronous accepts are started.
-
- (get_handle): New method to get the underlying handle.
-
- (set_handle): New method to set the underlying listen handle. It
- is the user's responsibility to make sure that the old listen
- handle has been appropriately closed and the all outstanding
- asynchronous operations have either completed or have been
- canceled on the old listen handle.
-
-Wed Jul 29 12:49:09 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Makefile (FILES): Added TP_Reactor to the build list.
- Updated dependency.
-
- * ace/TP_Reactor.{h,i} (handle_events,notify_handler): Added two
- dummy methods to avoid warnings from SunCC. Thanks to Carlos
- for noticing this.
-
-Wed Jul 29 09:41:23 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-common.h: added #define
- ACE_DEFAULT_SELECT_REACTOR_SIZE 256 so that the
- ACE_Select_Reactor works with this fix:
-
- if (size > (size_t) ACE::max_handles ())
- return ACE::set_handle_limit (size);
-
- On Linux (2.0.34), only root can set RLIMIT_NOFILE above 256.
-
-Wed Jul 29 04:19:05 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * Integrate TP_Reactor into ACE. Major framwork designed by
- Irfan. Here's his changelog:
-
- * ace/TP_Reactor.h (ACE_TP_Reactor): One of the short comings of
- the Select_Reactor in ACE was that it did not support a thread
- pool based event dispatching model, similar to the one in
- WFMO_Reactor. In Select_Reactor, only thread can be blocked
- in handle_events() at any given time.
-
- A new Reactor has been added to ACE that removes this
- short-coming. TP_Reactor is a specialization of Select
- Reactor to support thread-pool based event dispatching. This
- Reactor takes advantage of the fact that events reported by
- select() are persistent if not acted upon immediately. It
- works by remembering the event handler that just got
- activated, releasing the internal lock (so that some other
- thread can start waiting in the event loop) and then
- dispatching the event handler outside the context of the
- Reactor lock.
-
- This Reactor is best suited for situations when the callbacks
- to event handlers can take arbitrarily long and/or a number of
- threads are available to run the event loops.
-
- Note that callback code in Event Handlers
- (e.g. Event_Handler::handle_input) does not have to be
- modified or made thread-safe for this Reactor. This is
- because an activated Event Handler is suspended in the Reactor
- before the upcall is made and resumed after the upcall
- completes. Therefore, one Event Handler cannot be called by
- multiple threads simultaneously.
-
- * ace/Reactor.cpp (ACE_Reactor):
- ACE_USE_TP_REACTOR_FOR_REACTOR_IMPL can be used to make the
- TP_Reactor the default Reactor implementation that will be
- used by ACE_Reactor.
-
- I still need to add the reliable shutdown method and a
- TP_Reactor_Test.
-
- * ace/Select_Reactor.{h,i,cpp} (renew): Moved decision of renew
- supression from ACE_Select_Reactor_Notify::handle_input to this
- method, which is a more appropriate place.
-
- * ace/Token.h (ACE_Token): Added more comprehensive comments about
- the recent changes of reader/writer semantic.
-
-Tue Jul 28 12:36:18 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Service_Config.cpp (~ACE_Service_Config): Removed the call
- to ACE_Service_Config::close () from the destructor. This will
- be called by the Object Manager upon destruction.
-
-Tue Jul 28 11:34:15 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.{h,i} (strpbrk): Added a const wchar_t version of this
- function. Thanks to Ivan Murphy <Ivan.Murphy@med.siemens.de>
- for providing the fix.
-
-Tue Jul 28 09:52:08 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (exit): only declare local close_handle
- if ACE_USE_ONE_SHOT_AT_THREAD_EXIT. (ACE_Thread_Descriptor):
- reordered initializers to match declaration order.
-
- * ace/Dynamic.cpp,Thread_Manager.cpp: moved
- ACE_TSS_Singleton<ACE_Dynamic, ACE_Null_Mutex> instantiation
- from Thread_Manager.cpp to Dynamic.cpp.
-
-Mon Jul 27 16:31:27 1998 Arturo Montes <mitosys@colomsat.net.co>
-
- * ace/Thread_Manager.{h,i,cpp}:
- * ace/Log_Msg.cpp: The Thread_Manager::at_exit method now provides a
- list of at_exit functions to be invoked to at thread termination
- code. If you want to maintain previous compatibility use
- ACE_USE_ONE_SHOT_AT_THREAD_EXIT. The new code maintaing
- compatibility with the old code, ACE_Task::svc_run has not been
- altered.
-
- We resolve a problem with ACE_TSS_cleanup, some platform using
- Thread_Manager could be experimenting memory corruption because
- of ACE_TSS_cleanup was being invoked before Thread_Manager exit
- code. Now, if ACE_TSS_cleanup is called before of Thread_Manager
- exit code, ACE_TSS_cleanup delegate ACE_Log_Msg delete instance
- to Thread_Descriptor.
-
- Really, at_exit code is implemented in ACE_Thread_Descriptor, I
- strongly recommend use at_exit code from Thread_Descriptor,
- however in ACE_Thread_Manager we provide at_exit hook.
-
- Use of at_exit(void* object,ACE_CLEANUP_FUNC cleanup_hook,void*
- param) is deprecated. We maitain it for compatibility and it
- will be forever, however if you want implement new at_exit hook,
- look into Thread_Manager.h and specialize ACE_At_Thread_Exit
- class for your needs.
-
- If you want to allocate an ACE_At_Thread_Exit hook in stack, you
- can do it. The at_exit code use at_exit overloading to take care
- of this. Equally dynamic creation of at_exit hook is supported
- too.
-
-Mon Jul 27 14:25:15 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * tests/Dynamic_Priority_Test.cpp: Changed C-Style casts to
- ACE_static_casts, documented argument structure members
-
-Mon Jul 27 12:23:55 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Select_Reactor.cpp (open): Changed a erroneous comparison
- to
-
- if (size > (size_t) ACE::max_handles ())
- return ACE::set_handle_limit (size);
-
- Thanks to Avi Nash <anash@RedBrick.COM> for reporting this.
-
-Sat Jul 25 20:26:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/SPIPE_Acceptor.(h cpp): Modified Win32 part to start the
- ConnectNamedPipe at open() time, in overlapped mode. Now also
- processes the timeout in accept(), if specified.
-
-Sat Jul 25 16:18:30 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Malloc_T.i (addr):
- Sun/CC does not like a reinterpret cast here, but only when T is
- a char[20]. Use a couple of static casts and added a comment.
-
-Sat Jul 25 11:34:25 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Typed_SV_Message_Queue.i (send): Fixed this call to use a
- const cast AND a reinterpret cast. Thanks to David Levine for
- reporting this.
-
-Fri Jul 24 23:14:09 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Threads/thread_specific.cpp (cleanup): Added an
- ACE_reinterpret_cast(). Thanks to John Mulhern
- <9107@mn3.lawson.lawson.com> for this.
-
- * ace/Typed_SV_Message_Queue.i: Added some necessary
- ACE_reinterpret_cast()s. Thanks to John Mulhern
- <9107@mn3.lawson.lawson.com> for this.
-
- * ace/Malloc_T.i (addr): Changed (T *) cast to
- ACE_reinterpret_cast(). Thanks to John Mulhern
- <9107@mn3.lawson.lawson.com> for this.
-
- * ace/SOCK_Dgram_Bcast.cpp: Added an ACE_reinterpret_cast() macro
- to make the HP/UX 11 C++ compiler happy. Thanks to John Mulhern
- <9107@mn3.lawson.lawson.com> for this.
-
- * ace/config-hpux11.h: Added ACE_HAS_BROKEN_XTI_MACROS and
- ACE_HAS_SIGISMEMBER_BUG.
-
- * ace/OS.i (sigismember): Sigismember works correctly in most
- respects but the Sigset_Ops_Test tests the sigismember function
- with an out-of-range signal number expecting it to fail with a
- minus one result. On HPUX 11.0 it doesn't fail; it correctly
- reports that the signal is not in the sigset. This happens
- because HP, bless their hearts, thought that it should only
- return out of range when the signal value was greater than the
- capacity of the sigset; if ACE_NSIG is forced to 257 then the
- test works as expected. But the real maximum signal is 45.
- Added a fix for this courtesy of John Mulhern
- <9107@mn3.lawson.lawson.com>.
-
- * ace/OS.h: Added a workaround for broken XTI header files on
- HP/UX. Thanks to John Mulhern <9107@mn3.lawson.lawson.com> for
- reporting this.
-
- * tests/Dynamic_Priority_Test.cpp: Reformatted this just a bit.
-
-Fri Jul 24 21:42:39 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp},Message_Block.{h,cpp}: renamed ACE_Time_Value::max
- to ACE_Time_Value::max_time, because VxWorks #defines max.
-
- * tests/Message_Queue_Test.cpp: rearranged declarations so
- that the test will build on non-threaded platforms.
-
- * tests/Dynamic_Priority_Test.cpp: changed ACE_MT_SYNCH to
- ACE_SYNCH, so that we have a chance of building on non-threaded
- platforms.
-
-Fri Jul 24 15:15:28 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Updated the manual pages to reflect recent changes.
-
- * ace/Svc_Conf.h: Change from yyerror (char *) to yyerror (const
- char *).
-
-Fri Jul 24 14:36:30 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/OS.{cpp, h} (ACE_Time_Value): Added ACE_Time_Value::max,
- for the value at the other end of the time spectrum that can
- be represented as a normalized ACE_Time_Value (LONG_MAX seconds,
- ACE_ONE_SEC_IN_USECS - 1 microseconds).
-
- * ace/Message_Block.{cpp, h} (ACE_Message_Block): Changed default
- parameters so message deadlines default to ACE_Time_Value::max
- instead of ACE_Time_Value::zero - this ensures the assigned
- static priority order is preserved in a dynamic message queue
- if deadlines are not set.
-
- * ace/Message_Queue_T.{cpp, h} (ACE_Dynamic_Message_Queue): Changed
- enqueue_tail and enqueue_head to call overloaded enqueue_prio
- instead of static message queue base class methods (fixes bug
- EC_Multiple_Test uncovered where a tail-enqueued zero length
- message is still seen in the queue by the base class, but the
- derived dynamic message queue class thinks the queue is empty)
-
- * DOC-way.html: added one on chess and sleep
-
-Fri Jul 24 12:35:12 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Token.{h,cpp}: Fixed warnings from gcc and SunCC.
-
-Fri Jul 24 09:05:24 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): with ACE_HAS_DCE_DRAFT4_THREADS and
- ACE_LACKS_SETDETACH (LynxOS and HP/UX 10.x), call
- ::pthread_detach () on the newly spawned thread. Only do
- it if the THR_DETACHED flag is enabled.
-
- * ace/Thread_Manager.cpp (join_thr,wait,wait_grp,wait_task):
- with ACE_HAS_DCE_DRAFT4_THREADS and ACE_LACKS_SETDETACH
- (LynxOS and HP/UX 10.x), call ::pthread_detach () on joined
- threads. Only do it if the THR_DETACHED flag is not enabled.
-
- Thanks to Dave Mayerhoefer <davem@lynx.com> for diagnosing the
- lack of ::pthread_detach () calls in ACE.
-
-Fri Jul 24 00:39:47 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp (Message_Queue_T.cpp): This file contains
- template definitions and should not be included while building
- ACE library.
-
- * ace/config-win32.h (ACE_HAS_NONSTATIC_OBJECT_MANAGER): Use
- non-static object manager by default on Win32 (except CE.) This
- at least fixed the problem of WSACleanup getting called too late.
-
- To disable this, define ACE_HAS_NONSTATIC_OBJECT_MANAGER to 0.
-
-Thu Jul 23 22:17:41 1998 Arturo Montes <mitosys@colomsat.net.co>
-
- * ace/OS.cpp,Task.cpp,Thread_Manager.cpp: unify the Thread
- Adapter use between general ACE threads and threads spawned
- with a Thread_Manager.
-
- With this patch we add a new flag: ACE_USE_THREAD_MANAGER_ADAPTER.
- If you set this flag in your config file, ACE will use the
- ace_thread_manager_adapter in Thread_Manager, matching the current
- behaviour. If you omit this flag, ACE will use ace_thread_adapter.
- This change save a lot of source code and will let in the future
- incorporate ACE_Thread at_exit.
-
-Thu Jul 23 15:30:41 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Token.{h,i,cpp}: On platforms that support timed acquire
- semaphores, changed to use semaphores for signaling mechanism
- for better performance.
- (shared_acquire,renew): Give priority to acquire_write over
- acquire_read.
-
-Thu Jul 23 14:05:20 1998 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Misc/context_switch_test.cpp:
- helped yield test on VxWorks by timing each yield.
- Added half-second delay between outer interations to give
- LynxOS (w/ ACE_LACKS_SETDETACH) a chance to cleanup exited threads.
-
- * ace/config-sunos5.5.h: added support for _POSIX_PTHREAD_SEMANTICS.
- If it is #defined, then #define ACE_HAS_PTHREADS_1003_DOT_1C
- instead of ACE_HAS_STHREADS. Thanks to Doug Anderson
- <doug@clark.net> for investigating this and providing the
- update.
-
- * ace/High_Res_Timer.cpp (elapsed_time (ACE_hrtime_t &nanoseconds)):
- simplified the calculation. Thanks to Tom Dobridge
- <dobridge@persimmon.com> for the fix.
-
-Wed Jul 22 19:20:43 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Proactor.h (ACE_Proactor): Since <completion_strategy> is a
- valid constructor parameter for all platforms,
- POSIX_COMPLETION_STRATEGY should be defined for all platforms.
-
- * ace/Proactor.cpp (ACE_Proactor): Only use the
- completion_strategy when ACE_HAS_AIO_CALLS is defined.
-
- * ace/Asynch_IO.cpp (ACE_Asynch_Result): Only delete
- this->aiocb_ptr_ when ACE_HAS_AIO_CALLS is defined.
-
-Wed Jul 22 17:58:27 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/OS.h: Updated the comments.
-
-Wed Jul 22 17:55:46 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/Synch-Benchmarks/token_test.cpp: A new test.
-
-Wed Jul 22 17:50:58 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/OS.h: Defiend ACE_SIG_AIO to be SIGRTMIN. This is the only
- signal used for all the <Asynch_Operation>s.
-
-Wed Jul 22 17:46:45 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Asynch_IO.h,Asynch_IO.cpp Proactor.h Proactor.cpp :
-
- First round of changes for sigtimedwait () based approach
- of completion querying.
-
- Added one more parameter to the Proactor contructor to
- decide the <aio> completion strategy for the POSIX implementation,
- either <aiocb> control blocks or the RT signals. The default is RT
- signals.
-
- Fixed Transmit file. Proactor's handle_events () is done
- with in the ACE_Asynch_Transmit_Handler so that control does not
- return to the user's application before the whole file is
- transmitted. Otherwise the user's application might start writing
- to the same socket and this might change the order of the file
- that is being transmitted.
-
-Wed Jul 22 15:51:48 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/Synch-Benchmarks/Benchmark_Base.h
- (Benchmark_Method_Base): Passing the test item into pre_run_test
- so the thread can be setup correctly. Duh!
-
- * performance-tests/Synch-Benchmarks/Performance_Test.{h,cpp}
- (pre_run_test): Added code so that it iterates thru test items
- in svc.conf properly. Duh**2!
-
-Wed Jul 22 15:48:25 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.24 released.
-
-Wed Jul 22 11:45:44 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * tests/Aio_Platform_Test.cpp: Added <aio_> calls test for
- platforms with ACE_HAS_AIO_CALLS defined.
-
-Wed Jul 22 11:32:33 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Dynamic_Priority_Test.cpp: VxWorks only, fixed a few
- minor things so that it builds now.
-
- * ace/config-linux-common.h: added ACE_HAS_GPERF.
-
-Tue Jul 21 23:09:31 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/Synch-Benchmarks/{Synch_Tests,synch_driver}.dsp:
- Updated proejct source files and renamed debug version dll.
-
- * performance-tests/Synch-Benchmarks/Performance_Test.cpp: Added
- ACE_Svc_Export directive.
-
-Tue Jul 21 20:17:31 1998 Steve Huston <shuston@riverace.com>
-
- * ace/ACE_Library.{mdp mak}: Removed ..\STL from include directories.
-
-Tue Jul 21 12:34:11 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/config-lynxos.h: Defined ACE_HAS_AIO_CALLS.
-
-Mon Jul 20 19:35:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.1.x.h: Added ACE_LACKS_RLIMIT. Thanks to Zheng
- Han <zhan@glenvan.glenayre.com> for finding this problem.
-
- * ace/ACE_Library.{mdp mak}: Set up ".." as an include file directory
- so that $ACE_ROOT doesn't have to be added to MSVC's global options.
- Allows working on more than one ACE version.
-
- * netsvcs/lib/netsvcs4.{mdp mak}: Made paths to ACE components relative
- and made Debug build netsvcsd.dll - this will work with Nanbor's new
- DLL search method (from 19-July).
-
- * netsvcs/servers/servers4.{mdp mak}:
- * netsvcs/clients/Logger/Logger.{mdp mak}:
- Made paths to ACE components relative.
-
-Mon Jul 20 11:12:44 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Object_Manager.{h,cpp}: added ACE_TSS_BASE_LOCK, to
- support ACE_HAS_TSS_EMULATION with ACE_USE_NATIVE_KEYS.
-
- * include/makeinclude/rules.lib.GNU: (INSTALL): use += to
- define INSTALL instead of =, so that applications' INSTALL
- won't be overwritten.
-
- * ace/config-osf1-4.0.h,config-linux-common.h: added
- ACE_HAS_GPERF.
-
-Mon Jul 20 11:06:44 1998 Arturo Montes <mitosys@colomsat.net.co>
-
- * ace/OS.*: added support for TSS emulation with Pthreads.
- It uses one native TSS key for its internal implementation.
- All other TSS keys, both within the ACE library and in
- applications, use keys managed by ACE.
- To enable, add these #defines to your config.h:
- #define ACE_HAS_TSS_EMULATION
- #define ACE_USE_NATIVE_KEYS
-
-Sun Jul 19 22:21:17 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: added ACE_THROW_SPEC definition.
-
-Sun Jul 19 00:48:42 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE.cpp (ldfind): Re-enabled searching for *d.dll before
- *.dll for debug version of ACE. There was a premature return
- error in the logic. This is now the default behavior and has to
- be disabled explicitly by defining ACE_DISABLE_DEBUG_DLL_CHECK.
-
-Sat Jul 18 22:51:59 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.23 released.
-
-Sat Jul 18 22:48:52 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * There was a typo in the Makefile where CE-status should have
- been CE-status.txt. Thanks to Nanbor for fixing this.
-
-Sat Jul 18 22:14:07 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.22 released.
-
-Sat Jul 18 21:11:52 1998 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_aCC.GNU: Added +W829 to suppress
- "string literal to char * is deprecated". I was going to fix these
- in ACE, but TAO just wore me down... ;-)
-
-Sat Jul 18 Michael Kircher <mk1@cs.wustl.edu>
-
- * tests/Upgradable_RW_Test.cpp: Changed the time measurement
- completely. Before we meassured end-to-end. Now we meassure
- only the time spend in actual doing things. At the end
- all the time spend is summarized.
-
- * tests/Upgradable_RW_Test.h: Added this file, which contains
- definitions for the test.
-
-Sat Jul 18 19:47:45 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/ACE.cpp: Looks like we are having some trouble with the
- loading of *d.dll before *.dll on NT, so it is now disabled
- by default (until the problem is solved). To enable use:
- ACE_USE_DEBUG_DLL_CHECK.
-
-Sat Jul 18 13:51:49 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * apps/Makefile: Always compile the gperf directory by default
- now.
-
- * ace/config-sunos5.5.h: Added a new flag called ACE_HAS_GPERF,
- which should be enabled if the OS/compiler platform can compile
- GPERF. This will determine if we can use perfect hashing in
- TAO!
-
-Sat Jul 18 10:52:49 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp:
- * ace/Svc_Conf_y.cpp:
- Move the Id and added ACE_RCSID.
- The #line commands changed their line numbers.
-
- * ace/Svc_Conf.l:
- * ace/Svc_Conf.y:
- Added an ACE_RCSID, and erased a few white spaces at the end.
-
- * etc/Svc_Conf_l.cpp.diff:
- * etc/Svc_Conf_y.cpp.diff:
- Got rid of a couple of RCS Ids that were being "replaced" by the
- patches. These were probably a maintenance problem and didn't
- really add much. I also cleaned up the patches: there were a
- couple of useless replacements (lines with white spaces at the
- ends, etc.), and some of the line offsets were wrong (but patch
- could still catch them with its fuzz factors). Now the patches
- apply cleanly.
-
-Sat Jul 18 9:00:00 1998 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * DCS: Born 36 years ago, at this moment. Yow, I've now become
- a "perfect square" ;-)
-
-Fri Jul 17 18:30:10 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T.cpp (connect_svc_handler): The activation of
- the newly created handler is moved outside the scope of the lock
- of the cached connector. This is necessary to avoid subtle
- deadlock conditions with this lock and the Reactor lock. Thanks
- to Micheal for finding this race condition.
-
-Fri Jul 17 13:53:54 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Threads/barrier2.cpp (ACE_MT_SYNCH>): Cleaned up the
- coding style in this example.
-
- * ace/TTY_IO.cpp (control): Added entries for 300 baud. Thanks to
- the ever vigilant Arturo Montes <mitosys@colomsat.com.co> for
- reporting this.
-
-Fri Jul 17 14:51:55 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * Makefile (CONTROLLED_FILES): Added CE-status to distribution.
- Thanks to David for reminding this.
-
-Fri Jul 17 12:48:26 1998 Steve Huston <shuston@riverace.com>
-
- * tests/Semaphore_Test.cpp: Removed unused variable, and disabled the
- test for platforms with POSIX semaphores since POSIX semaphores
- don't do timeouts (which this test stresses).
-
-Fri Jul 17 07:32:26 1998 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile (CONTROLLED_FILES): added ACE-inheritance.{pdf,ps}.gz
- to distribution. Thanks to Gabriel Lima <gali@enea.se> for
- reporting their absence. Also, added COPYING to distribution.
-
- * ace/IO_SAP.cpp (enable): removed unreachable break statement.
-
- * ace/OS.i (sema_wait w/time): on VxWorks and pSoS, subtract
- the current time from the time argument to get the relative
- time that the systems calls expect. Thanks to Steve Huston
- for recommending this change. Also, removed ACE_ADAPT_RETVAL
- wrap so that errno isn't disturbed. On VxWorks, convert
- S_objLib_OBJ_TIMEOUT errno to ETIME.
-
- * tests/run_tests.{sh,vxworks}: added Semaphore_Test.
-
- * ACE-INSTALL.html: updated multicast on Linux discussion.
-
-Thu Jul 16 18:28:31 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (ACE_OS::sema_wait(ACE_sema_t*, ACE_Time_Value&)):
- Changed WinCE version to use time as absolute and update it if
- the semaphore is acquired. Changed Win32 version to update the
- time if semaphore is acquired.
-
- * tests/Semaphore_Test.cpp: Added sanity checks for time that the
- semaphore waits take and for the updated time values on acquiring
- a semaphore.
-
-Thu Jul 16 15:41:08 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/IPC_SAP/UPIPE_SAP/ex2.cpp,
- examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i,
- examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i,
- examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i,
- examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i,
- examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i,
- examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i,
- examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i:
- Changed all uses of SIGIO to ACE_SIGIO.
-
-
- * ace/IPC_SAP: Cleaned up the enable() and disable() methods and
- documentation so they correctly use the new ACE_* macros
- described in the following bullet.
-
- * ace/OS.h: Added new ACE_SIGIO, ACE_SIGURG, and ACE_CLOEXEC flags
- that should be used instead of the SIGIO or SIGURG, etc., in
- order to ensure uniqueness. However, legacy code will continue
- to work.
-
- * ace/IO_SAP.cpp: Added new ACE_SIGIO, ACE_SIGURG, and ACE_CLOEXEC
- flags that should be used instead of the SIGIO or SIGURG, etc.,
- in order to ensure uniqueness. However, legacy code will
- continue to work.
-
-Thu Jul 16 15:02:55 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Synch_T.h: Use ACE_Condition_Thread_Mutex instead of
- ACE_Condition<ACE_Thread_Mutex> as the default condition
- variable (ACE_SYNCH_CONDITION), this removes some headaches wrt
- template instantiation.
-
- * ace/IPC_SAP.cpp: Added support for the close-on-exec flag. We
- use the new ACE_CLOEXEC macro for this.
-
-Thu Jul 16 12:50:42 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * netsvcs/lib/netsvcs.dsp:
- * netsvcs/servers/servers.dsp: Updated DLL names.
-
- * ace/ACE.cpp (ldfind): Conventionallly, Win32 platforms
- distinguish debug version DLL from release version DLLs by
- suffixing debug version DLL names with 'd'. (E.g., aced.dll
- v.s. ace.dll.) This was causing some problem in managing the
- svc.conf files because we need to link the matching DLL with the
- executables regarding of how they get compiled.
-
- I modified the ldfind so that when a debug version ACE is
- searching for a DLL file, it will first try to find the debug
- version of that DLL by suffixing the name with 'd'. If it can't
- be found, it then searches for the name specified. The release
- version doesn't try to do this. Now, we can specify only the
- "normal" dll names in svc.conf files and ACE can pick up the
- right dlls for you without changing svc.conf files. However,
- you need to follow the Win32 DLL naming convention as described
- above.
-
- I don't expect this feature to cause any backward compatibility
- problem. However, if in the rare event, it does cause you
- problem, you can disable it by defining
- ACE_DISABLE_DEBUG_DLL_CHECK in your config.h file. Notice that
- this change only affects Win32 platforms.
-
-Thu Jul 16 08:55:48 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Dynamic_Service.cpp (instance): removed const-ness
- from local void * obj, because the function return value
- isn't const. Sun C++ caught this.
-
- * STL,Makefile: removed STL from ACE, for good this time. There
- are no more STL dependencies in TAO's AVStreams. However, if
- you still want to use the version of STL that was in ACE, you
- can obtain it at www.cs.wustl.edu/~schmidt/ACE_wrappers/STL.
-
- * ACE-INSTALL.html: added note on enabling multicast on Linux for
- TAO's NameService. And, added note on adding a routing table
- entry to enable multicast on Linux. Thanks to Nanbor for
- discovering that.
-
-Wed Jul 15 19:00:33 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Dynamic_Service.cpp (instance): Made the error reporting
- less verbose. Thanks to Darrell for suggesting this. In
- addition, changed the use of (SERVICE *) to
- ACE_reinterpret_cast().
-
-Wed Jul 15 16:16:40 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Message_Queue_T.cpp: Fixed message/byte counting bugs.
-
-Wed Jul 15 15:42:44 1998 James C Hu <jxh@cs.wustl.edu>
-
- * ace/OS.h: Added a copy constructor for ACE_Thread_ID.
-
-Wed Jul 15 14:33:15 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Select_Reactor.cpp: Added some MVS-specific behavior in the
- error checking/recovery code so that bad handles are properly
- located and removed on MVS Open Edition. Thanks to Chuck Gehr
- for his hard work in tracking these down.
-
-Tue Jul 14 14:00:00 1998 Michael Kircher <mk1@cs.wustl.edu>
-
- * ace/Select_Reactor.cpp: Changed the handling
- of the state_changed flag. Now, it is set to "changed" (=1)
- after each run of the event loop. This fixed a nested
- upcalls bug, which was caused by overwriting this
- flag each time entering the event loop. So that,
- when poping one level of the handle_events call
- stack information was lost about changes. Now, we
- assume that information has changed and
- propagate this knowlegde down in the call
- stack. No performance overhead is caused by that.
-
-Tue Jul 14 12:02:15 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp:
- * examples/IPC_SAP/SOCK_SAP/C-inclient.cpp:
- * ace/SOCK_Dgram_Mcast.cpp:
- * ace/SOCK_Acceptor.cpp:
- * ace/ACE.cpp:
- Use ACE_reinterpret_cast in several conversions address type
- conversions (like from sockaddr* to sockaddr_in*).
- Some compilers (HP/aCC) give a warning if the old C-style cast
- operators are used; using the proper cast operator removes the
- warning. Thanks to John Mulhern <9107@mn3.lawson.lawson.com> for
- pointing out this problem.
-
-Tue Jul 14 11:26:40 1998 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: added STL back in, because TAO's AVStreams still uses it.
- Thanks to Hans Rohnert <hans.rohnert@mchp.siemens.de> for
- reporting this.
-
- * ace/Message_Queue_T.cpp (refresh_{late,pending}_queue): removed some
- breaks following ACE_ERROR_RETURNs, to avoid compiler warnings about
- unreachable statements.
-
- * tests/Dynamic_Priority_Test.cpp: commented out unused global
- FIFO_receipt_order.
-
- * ace/Basic_Types.h: added ACE_UINT64_LITERAL macro. Thanks to
- Nanbor for suggesting it.
-
- * ace/Stats.cpp: use ACE_UINT64_LITERAL to replace platform-specific
- code.
-
-Mon Jul 13 22:29:20 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Dynamic_Priority_Test.cpp: swapped "const" and "static"
- qualifiers so that "static" appears first.
- (run_performance_test): initialized random_int to 0 to avoid
- g++ warning.
-
- * ace/Message_Queue_T.h: on VxWorks, added forward declaration
- of class ACE_Message_Queue_Vx.
-
- * ace/Message_Queue_T.cpp (create_Vx_message_queue): added
- template <ACE_SYNCH_DECL>.
-
-Mon Jul 13 16:37:07 1998 Chris D. Gill <cdgill@tango.cs.wustl.edu>
-
- * Message_Queue_T.cpp:
- refined dynamic queues based on performance test results
-
-Mon Jul 13 16:35:50 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Message_Block.{cpp, h, i}
- ace/Message_Queue_T.{cpp, h}:
-
- Removed automatic deletion of beyond messages, replaced this
- with a remove_messages method to be called by an external
- "reaper" if at all. Reorganized dynamic message queues
- to remove sources of overhead, especially in checking
- message status while refreshing the queue: added separate
- head and tail pointers for pending, late, and beyond late
- protions of queue: only move these pointers, not messages
- (except at enqueue).
-
- * tests/Dynamic_Priority_Test.cpp:
-
- Added performance tests for static and dynamic queues
- which do best case, worst case, and randomized ordering
- of messages, presenting each ordering to all queues
- and clocking enqueue and dequeue performance.
-
-Mon Jul 13 11:11:56 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Svc_Handler.h (ACE_SYNCH_USE>): Changed type of member
- <dynamic_> to int. Thanks to Zoran Ivanovic
- <zorani@pathcom.com> for pointing this out.
-
-Sun Jul 12 13:25:04 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: Separated the Linux RedHat 5.1 and 5.0
- discussions into different paragraphs.
-
-Sat Jul 11 14:25:58 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Timer_Queue_Adapter.cpp: moved the ACE_RCSID inside the
- ifndef ACE_TIMER_QUEUE_ADAPTERS_C protection, because this
- file gets multiply included with g++.
-
- * ace/config-lynxos.h: added #define ACE_USE_RCS_ID 0.
-
-Sat Jul 11 03:44:00 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * ace/inc_user_config.h:
- Defined an ACE_RCSID macro to add RCS Id keywords to .cpp
- files. Also defined an ACE_USE_RCSID macro that allows turning
- this feature on and off.
-
- * ace/config-chorus.h:
- * ace/config-psosim-g++.h:
- * ace/config-vxworks5.x.h:
- These files have the RCS Id keywords off by default.
- I hope these are all (and the only) real-time OSs that could be
- impacted by the extra 40K or so of space.
-
- * ace/ACE.cpp:
- * ace/ACED.cpp:
- * ace/ACER.cpp:
- * ace/ARGV.cpp:
- * ace/Acceptor.cpp:
- * ace/Activation_Queue.cpp:
- * ace/Addr.cpp:
- * ace/Arg_Shifter.cpp:
- * ace/Array.cpp:
- * ace/Asynch_Acceptor.cpp:
- * ace/Asynch_IO.cpp:
- * ace/Auto_Ptr.cpp:
- * ace/Basic_Types.cpp:
- * ace/CORBA_Handler.cpp:
- * ace/CORBA_Ref.cpp:
- * ace/Connector.cpp:
- * ace/Containers.cpp:
- * ace/DEV.cpp:
- * ace/DEV_Addr.cpp:
- * ace/DEV_Connector.cpp:
- * ace/DEV_IO.cpp:
- * ace/Date_Time.cpp:
- * ace/Dump.cpp:
- * ace/Dump_T.cpp:
- * ace/Dynamic.cpp:
- * ace/Dynamic_Service.cpp:
- * ace/Env_Value_T.cpp:
- * ace/Event_Handler.cpp:
- * ace/Event_Handler_T.cpp:
- * ace/FIFO.cpp:
- * ace/FIFO_Recv.cpp:
- * ace/FIFO_Recv_Msg.cpp:
- * ace/FIFO_Send.cpp:
- * ace/FIFO_Send_Msg.cpp:
- * ace/FILE.cpp:
- * ace/FILE_Addr.cpp:
- * ace/FILE_Connector.cpp:
- * ace/FILE_IO.cpp:
- * ace/Filecache.cpp:
- * ace/Free_List.cpp:
- * ace/Future.cpp:
- * ace/Get_Opt.cpp:
- * ace/Handle_Set.cpp:
- * ace/Hash_Map_Manager.cpp:
- * ace/High_Res_Timer.cpp:
- * ace/INET_Addr.cpp:
- * ace/IOStream.cpp:
- * ace/IOStream_T.cpp:
- * ace/IO_Cntl_Msg.cpp:
- * ace/IO_SAP.cpp:
- * ace/IPC_SAP.cpp:
- * ace/LOCK_SOCK_Acceptor.cpp:
- * ace/LSOCK.cpp:
- * ace/LSOCK_Acceptor.cpp:
- * ace/LSOCK_CODgram.cpp:
- * ace/LSOCK_Connector.cpp:
- * ace/LSOCK_Dgram.cpp:
- * ace/LSOCK_Stream.cpp:
- * ace/Local_Name_Space.cpp:
- * ace/Local_Name_Space_T.cpp:
- * ace/Local_Tokens.cpp:
- * ace/Log_Msg.cpp:
- * ace/Log_Record.cpp:
- * ace/Malloc.cpp:
- * ace/Malloc_T.cpp:
- * ace/Managed_Object.cpp:
- * ace/Map_Manager.cpp:
- * ace/Mem_Map.cpp:
- * ace/Memory_Pool.cpp:
- * ace/Message_Block.cpp:
- * ace/Message_Queue.cpp:
- * ace/Message_Queue_T.cpp:
- * ace/Method_Object.cpp:
- * ace/Module.cpp:
- * ace/Msg_WFMO_Reactor.cpp:
- * ace/Multiplexor.cpp:
- * ace/Name_Proxy.cpp:
- * ace/Name_Request_Reply.cpp:
- * ace/Name_Space.cpp:
- * ace/Naming_Context.cpp:
- * ace/OS.cpp:
- * ace/Object_Manager.cpp:
- * ace/Obstack.cpp:
- * ace/Parse_Node.cpp:
- * ace/Pipe.cpp:
- * ace/Priority_Reactor.cpp:
- * ace/Proactor.cpp:
- * ace/Process.cpp:
- * ace/Process_Manager.cpp:
- * ace/Profile_Timer.cpp:
- * ace/RB_Tree.cpp:
- * ace/Reactor.cpp:
- * ace/Read_Buffer.cpp:
- * ace/Registry.cpp:
- * ace/Registry_Name_Space.cpp:
- * ace/Remote_Name_Space.cpp:
- * ace/Remote_Tokens.cpp:
- * ace/SOCK.cpp:
- * ace/SOCK_Acceptor.cpp:
- * ace/SOCK_CODgram.cpp:
- * ace/SOCK_Connector.cpp:
- * ace/SOCK_Dgram.cpp:
- * ace/SOCK_Dgram_Bcast.cpp:
- * ace/SOCK_Dgram_Mcast.cpp:
- * ace/SOCK_IO.cpp:
- * ace/SOCK_Stream.cpp:
- * ace/SPIPE.cpp:
- * ace/SPIPE_Acceptor.cpp:
- * ace/SPIPE_Addr.cpp:
- * ace/SPIPE_Connector.cpp:
- * ace/SPIPE_Stream.cpp:
- * ace/SString.cpp:
- * ace/SV_Message.cpp:
- * ace/SV_Message_Queue.cpp:
- * ace/SV_Semaphore_Complex.cpp:
- * ace/SV_Semaphore_Simple.cpp:
- * ace/SV_Shared_Memory.cpp:
- * ace/Sched_Params.cpp:
- * ace/Select_Reactor.cpp:
- * ace/Service_Config.cpp:
- * ace/Service_Manager.cpp:
- * ace/Service_Object.cpp:
- * ace/Service_Repository.cpp:
- * ace/Service_Types.cpp:
- * ace/Shared_Memory.cpp:
- * ace/Shared_Memory_MM.cpp:
- * ace/Shared_Memory_SV.cpp:
- * ace/Shared_Object.cpp:
- * ace/Signal.cpp:
- * ace/Singleton.cpp:
- * ace/Stats.cpp:
- * ace/Strategies.cpp:
- * ace/Strategies_T.cpp:
- * ace/Stream.cpp:
- * ace/Stream_Modules.cpp:
- * ace/Svc_Handler.cpp:
- * ace/Synch.cpp:
- * ace/Synch_Options.cpp:
- * ace/Synch_T.cpp:
- * ace/System_Time.cpp:
- * ace/TLI.cpp:
- * ace/TLI_Acceptor.cpp:
- * ace/TLI_Connector.cpp:
- * ace/TLI_Stream.cpp:
- * ace/TTY_IO.cpp:
- * ace/Task.cpp:
- * ace/Task_T.cpp:
- * ace/Thread.cpp:
- * ace/Thread_Manager.cpp:
- * ace/Time_Request_Reply.cpp:
- * ace/Timeprobe.cpp:
- * ace/Timeprobe_T.cpp:
- * ace/Timer_Hash.cpp:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Heap.cpp:
- * ace/Timer_Heap_T.cpp:
- * ace/Timer_List.cpp:
- * ace/Timer_List_T.cpp:
- * ace/Timer_Queue.cpp:
- * ace/Timer_Queue_Adapters.cpp:
- * ace/Timer_Queue_T.cpp:
- * ace/Timer_Wheel.cpp:
- * ace/Timer_Wheel_T.cpp:
- * ace/Token.cpp:
- * ace/Token_Collection.cpp:
- * ace/Token_Invariants.cpp:
- * ace/Token_Manager.cpp:
- * ace/Token_Request_Reply.cpp:
- * ace/Trace.cpp:
- * ace/Typed_SV_Message.cpp:
- * ace/Typed_SV_Message_Queue.cpp:
- * ace/UNIX_Addr.cpp:
- * ace/UPIPE_Acceptor.cpp:
- * ace/UPIPE_Connector.cpp:
- * ace/UPIPE_Stream.cpp:
- * ace/WFMO_Reactor.cpp:
- * ace/XtReactor.cpp:
- * ace/gethrtime.cpp:
- * tests/Aio_Platform_Test.cpp:
- * tests/Atomic_Op_Test.cpp:
- * tests/Barrier_Test.cpp:
- * tests/Basic_Types_Test.cpp:
- * tests/Buffer_Stream_Test.cpp:
- * tests/Conn_Test.cpp:
- * tests/Dynamic_Priority_Test.cpp:
- * tests/Enum_Interfaces_Test.cpp:
- * tests/Env_Value_Test.cpp:
- * tests/Future_Test.cpp:
- * tests/Handle_Set_Test.cpp:
- * tests/Hash_Map_Manager_Test.cpp:
- * tests/IOStream_Test.cpp:
- * tests/MM_Shared_Memory_Test.cpp:
- * tests/MT_Reactor_Timer_Test.cpp:
- * tests/MT_SOCK_Test.cpp:
- * tests/Map_Manager_Test.cpp:
- * tests/Mem_Map_Test.cpp:
- * tests/Message_Block_Test.cpp:
- * tests/Message_Queue_Test.cpp:
- * tests/MsgQueue_Notifications_Test.cpp:
- * tests/Naming_Test.cpp:
- * tests/Notify_Performance_Test.cpp:
- * tests/OrdMultiSet_Test.cpp:
- * tests/Pipe_Test.cpp:
- * tests/Priority_Buffer_Test.cpp:
- * tests/Priority_Reactor_Test.cpp:
- * tests/Priority_Task_Test.cpp:
- * tests/Process_Mutex_Test.cpp:
- * tests/Process_Strategy_Test.cpp:
- * tests/Reactor_Exceptions_Test.cpp:
- * tests/Reactor_Notify_Test.cpp:
- * tests/Reactor_Performance_Test.cpp:
- * tests/Reactor_Timer_Test.cpp:
- * tests/Reactors_Test.cpp:
- * tests/Reader_Writer_Test.cpp:
- * tests/Recursive_Mutex_Test.cpp:
- * tests/SOCK_Connector_Test.cpp:
- * tests/SOCK_Test.cpp:
- * tests/SPIPE_Test.cpp:
- * tests/SString_Test.cpp:
- * tests/SV_Shared_Memory_Test.cpp:
- * tests/Semaphore_Test.cpp:
- * tests/Service_Config_Test.cpp:
- * tests/Sigset_Ops_Test.cpp:
- * tests/Simple_Message_Block_Test.cpp:
- * tests/TSS_Test.cpp:
- * tests/Task_Test.cpp:
- * tests/Thread_Manager_Test.cpp:
- * tests/Thread_Mutex_Test.cpp:
- * tests/Thread_Pool_Test.cpp:
- * tests/Time_Service_Test.cpp:
- * tests/Time_Value_Test.cpp:
- * tests/Timeprobe_Test.cpp:
- * tests/Timer_Queue_Test.cpp:
- * tests/Tokens_Test.cpp:
- * tests/UPIPE_SAP_Test.cpp:
- * tests/Upgradable_RW_Test.cpp:
- * tests/XtReactor_Test.cpp:
- * tests/tests_bcc.ide:
- Added RCS Id keywords to all these files.
-
- * ace/ace_bcc.ide:
- Don't really know what changed here...
-
-Fri Jul 10 23:11:36 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: redirect rdiff error messages to /dev/null.
-
-Fri Jul 10 22:15:04 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.21 released.
-
-Fri Jul 10 10:29:58 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/SString.h: added ACE_INLINE specifiers to operator+
- declarations, to please Sun C++. Will AIX be able to cope?
-
-Thu Jul 09 23:27:26 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * ace/OS.h:
- Corrected definitions for ACE_Export under Borland compilers.
-
- * ace/SString.h:
- Got rid of the friend operators.
-
- * ace/Containers.cpp:
- * ace/Message_Queue_T.cpp:
- * ace/Stream.cpp:
- * ace/Timer_Heap_T.cpp:
- * tests/Buffer_Stream_Test.cpp:
- * tests/Dynamic_Priority_Test.cpp:
- * tests/Future_Test.cpp:
- * tests/Naming_Test.cpp:
- * tests/Priority_Buffer_Test.cpp:
- * tests/Thread_Pool_Test.cpp:
- Got rid of a few assignments to zero that cause warnings with
- the Borland compiler.
-
- * ace/ace_bcc.ide:
- * tests/tests_bcc.ide:
- Now Borland C++ 5.x supports building ACE as a DLL, and the tests
- are linked against the Debug DLL.
-
- * tests/tests.bpg:
- * tests/Dynamic_Priority_Test.bpr:
- * tests/Timeprobe_Test.bpr:
- * tests/Upgradable_RW_Test.bpr:
- * tests/XtReactor_Test.bpr:
- Added four new tests to the project group.
-
- * tests/Aio_Platform_Test.bpr:
- * tests/Atomic_Op_Test.bpr:
- * tests/Barrier_Test.bpr:
- * tests/Basic_Types_Test.bpr:
- * tests/Buffer_Stream_Test.bpr:
- * tests/Conn_Test.bpr:
- * tests/Dynamic_Priority_Test.bpr:
- * tests/Enum_Interfaces_Test.bpr:
- * tests/Env_Value_Test.bpr:
- * tests/Future_Test.bpr:
- * tests/Handle_Set_Test.bpr:
- * tests/Hash_Map_Manager_Test.bpr:
- * tests/IOStream_Test.bpr:
- * tests/MM_Shared_Memory_Test.bpr:
- * tests/MT_Reactor_Timer_Test.bpr:
- * tests/MT_SOCK_Test.bpr:
- * tests/Map_Manager_Test.bpr:
- * tests/Mem_Map_Test.bpr:
- * tests/Message_Block_Test.bpr:
- * tests/Message_Queue_Test.bpr:
- * tests/MsgQueue_Notifications_Test.bpr:
- * tests/Naming_Test.bpr:
- * tests/Notify_Performance_Test.bpr:
- * tests/OrdMultiSet_Test.bpr:
- * tests/Pipe_Test.bpr:
- * tests/Priority_Buffer_Test.bpr:
- * tests/Priority_Reactor_Test.bpr:
- * tests/Priority_Task_Test.bpr:
- * tests/Process_Mutex_Test.bpr:
- * tests/Process_Strategy_Test.bpr:
- * tests/Reactor_Exceptions_Test.bpr:
- * tests/Reactor_Notify_Test.bpr:
- * tests/Reactor_Performance_Test.bpr:
- * tests/Reactor_Timer_Test.bpr:
- * tests/Reactors_Test.bpr:
- * tests/Reader_Writer_Test.bpr:
- * tests/Recursive_Mutex_Test.bpr:
- * tests/SOCK_Connector_Test.bpr:
- * tests/SOCK_Test.bpr:
- * tests/SPIPE_Test.bpr:
- * tests/SString_Test.bpr:
- * tests/SV_Shared_Memory_Test.bpr:
- * tests/Semaphore_Test.bpr:
- * tests/Service_Config_Test.bpr:
- * tests/Sigset_Ops_Test.bpr:
- * tests/Simple_Message_Block_Test.bpr:
- * tests/TSS_Test.bpr:
- * tests/Task_Test.bpr:
- * tests/Thread_Manager_Test.bpr:
- * tests/Thread_Mutex_Test.bpr:
- * tests/Thread_Pool_Test.bpr:
- * tests/Time_Service_Test.bpr:
- * tests/Time_Value_Test.bpr:
- * tests/Timeprobe_Test.bpr:
- * tests/Timer_Queue_Test.bpr:
- * tests/Tokens_Test.bpr:
- * tests/UPIPE_SAP_Test.bpr:
- * tests/Upgradable_RW_Test.bpr:
- * tests/XtReactor_Test.bpr:
- Uniform options for Borland C++ and C++ Builder.
-
-Thu Jul 09 16:23:34 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Registry.h (ACE_Registry): Changed the Registry class so
- that it does not use STL containers and the string classes
- anymore. It now uses ACE containers and string classes. There
- should be no dependency on STL in ACE anymore.
-
- * STL: Removed this directory since ACE is no longer dependent on
- STL. If you still need these STL files, please refer to:
- http://www.rahul.net/terris/.
-
- * examples/Registry/test_registry_{update,iterator}.cpp (main):
- Updated files to work with modified Registry.
-
- * ace/SString.cpp (ACE_WString::operator<<): Added new operator.
-
- * Makefile: Updated Makefile so that STL is no longer released
- with ACE.
-
-Thu Jul 09 09:37:43 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types: for LONG_LONG size determination, don't use
- ULONGLONG_MAX ifdef __GNUG__. This change should fix a build
- problem on g++/Irix 6.4. Thanks to Johan Lundin <johan@lundin.com>
- for reporting the problem.
-
-Wed Jul 08 17:47:48 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T (ACE_Scheduling_Strategy,
- ACE_Schedule_All_Reactive_Strategy, and
- ACE_Schedule_All_Threaded_Strategy): The code in these classes
- was screwed up. The base class (ACE_Scheduling_Strategy) was
- keeping a pointer to the SVC_HANDLER in order to enable the
- derived classes to get to the Reactor and Thread Manager. Also,
- if the user did not pass in an instance of SVC_HANDLER, one was
- created dynamically ;-( Another problem was that the Reactor
- field was set on the SVC_HANDLER, but the SVC_HANDLER was never
- registered with the Reactor. So when the SVC_HANDLER was
- deleted, it tried to remove itself from a potentially
- non-existent Reactor.
-
- Solution: Removed scheduler_ as protected member of the base
- class. Added thr_mgr_ to ACE_Schedule_All_Threaded_Strategy and
- reactor_ to ACE_Schedule_All_Reactive_Strategy. Now these
- classes do not need the scheduler_ member anymore.
-
-Wed Jul 8 13:47:02 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunx86-sunc++-4.x.h: inserted note to not use this
- config, but to use config-sunos5.5.h instead. After we
- have installed and tested Sun C++ on Solaris86, we should
- remove this config.
-
- * ACE-INSTALL.html: added note about increasing NUM_FILES to
- 1000 in VxWorks kernel configuration. Thanks to
- Jeff Franks <Jeffrey_Franks@i-o.com> for reminding me about
- this change from the default VxWorks kernel configuration.
-
-Tue Jul 07 14:36:56 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_ce_dll.dsp: Added Stats.cpp into project.
-
- * ace/README: Added a new directive
- ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS and its documentation.
-
- * ace/config-win32-common.h: Defined
- ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS for Win32 except CE.
-
- * ace/Log_Msg.{h,cpp}:
- * ace/OS.{h,i,cpp}: Changed to use ifdef
- ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS for structural exception
- code.
-
- * ace/Token.cpp:
- * ace/Stats.cpp:
- * ace/High_Res_Timer.cpp: Made them CE friendly.
-
-Tue Jul 07 09:26:22 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Thread_Manager.h: updated comments that describe
- ACE_thread_t * argument to spawn () family.
-
- * ace/OS.{h,cpp},Thread_Manager.cpp: on VxWorks only, instead
- of using a string to mark an ACE_thread_t as being allocated
- by the ACE_Thread_Manager, use a single character (ASCII DC2).
-
- * tests/run_tests.vxworks: added Dynamic_Priority_Test.
-
- * apps/gperf/src/Makefile: added trailing $ to Id string.
-
-Tue Jul 7 10:48:42 EET DST 1998 Wei Chiang <chiang@horizon.ntc.nokia.com>
-
- * tests/CLASSIX/CLASSIX_Con_Acc_Test.cpp:
- Use a counter, max. number of unread messages, instead of wait
- to work around the blocking problem in ipcSend()
-
-Mon Jul 6 22:32:19 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * ace/ace_bcc.ide:
- Updates for Borland C++ 5.x.
-
- * ace/config-win32.h:
- Made sure ACE_HAS_WINNT4 and _WIN32_WINNT are always defined if
- they were not explicitly defined.
-
- * ace/config-win32-borland.h:
- * ace/config-win32-common.h:
- Moved all the Borland definitions to a config-win32-borland.h
- file.
-
- * ace/OS.h (ACE_SEH_TRY):
- Added correct support for Borland C++ 5.x.
-
- * ace/OS.cpp:
- Replaced the ugly hack to access wProcessorArchitecture under
- Borland compilers for an even uglier hack, but that will work on
- every Borland compiler, as long as the members of SYSTEM_INFO are
- consistent. See the code and get sick!
-
- * ace/LOCK_SOCK_Acceptor.h:
- * ace/Array.cpp:
- * ace/Arg_Shifter.cpp:
- Were missing an "ace/" in some includes.
-
- * tests/tests_bcc.ide:
- Added all (well, most) of the tests to the project file.
-
- * tests/Makefile:
- * tests/Message_Queue_Notifications_Test.cpp:
- * tests/Message_Queue_Notifications_Test.bpr:
- * tests/Message_Queue_Notifications_Test.dsp:
- * tests/MsgQueue_Notifications_Test.cpp:
- * tests/MsgQueue_Notifications_Test.bpr:
- * tests/MsgQueue_Notifications_Test.dsp:
- * tests/run_tests.bat:
- * tests/run_tests.psosim:
- * tests/run_tests.sh:
- * tests/run_tests.vxworks:
- * tests/tests.bpg:
- * tests/tests.dsw:
- * tests/tests.mak:
- * tests/WinCE/Message_Queue_Notifications_Test.dsp:
- * tests/WinCE/MsgQueue_Notifications_Test.dsp:
- * tests/version_tests/Message_Queue_Notification_Test.dsp:
- * tests/version_tests/MsgQueue_Notifications_Test.dsp :
- Changed name of Message_Queue_Notifications_Test to
- MsgQueue_Notifications_Test, to avoid problems with Borland
- compilers.
-
- * tests/Enum_Interfaces_Test.cpp:
- Added some output to test ACE_OS::uname().
-
- * tests/Basic_Types_Test.cpp:
- Changed a couple of debug lines to contain only one \n.
-
-Mon Jul 6 14:24:11 EET DST 1998 Wei Chiang <chiang@horizon.ntc.nokia.com>
-
- * tests/CLASSIX/CLASSIX_Con_Acc_Test.cpp:
- Add a pause after each send_n()(i.e. ipcSend()) as a temporary
- work around over the block problem in ipcSend() when the resources are
- exhaused.
-
-
-Mon Jul 6 03:56:49 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.h (ACE_Thread_Manager::thr_self): Instead of
- refering to ACE_Thread::thr_self, it should mention
- ACE_Thread::self.
-
-Fri Jul 03 17:02:49 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release (create_kit): remove any existing .zip
- files before trying to create new ones, because they get
- in the way. Thanks to J. Russell Noseworthy
- <rnosewor@objectsciences.com> for reporting the problem
- with new ACE+TAO.tar.gz's not being created.
-
-Fri Jul 3 14:24:59 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * apps/gperf/src/gperf.dsw:
- * apps/gperf/src/gperf.dsp:
- * apps/gperf/src/gperf_lib.dsp:
- Added MSVC5 Project files
-
- * apps/gperf/src/Key_List.cpp:
- * apps/gperf/src/Options.h:
- * apps/gperf/src/Options.cpp:
- There was a enumeration CONST, and MSVC5 didn't like it. I
- renamed it to CONSTANT.
-
- * apps/gperf/src/new.cpp
- Changed a variable from int to size_t to get rid of a MSVC
- warning.
-
- NOTE: I tried out some tests and even though gperf compiles
- on NT, it doesn't seem to work correctly yet. That
- will come later.
-
-Fri Jul 03 13:47:19 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.20 released.
-
-Fri Jul 03 08:52:13 1998 Steve Huston <shuston@riverace.com>
-
- * netsvcs/lib/Name_Handler.{cpp h}: Moved class Naming_Context from
- .cpp to .h so that AIX xlC can find it when instantiating templates.
-
-Thu Jul 2 11:49:16 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i: Added ACE_OS::fseek (). NT supports this too. Just
- defined SEEK_SET, SEEK_CUR etc, in case they are not defined. This
- is similar to what has been done for lseek.
-
-Thu Jul 02 10:58:00 1998 Michael Kircher <mk1@cs.wustl.edu>
-
- * tests/Upgradable_RW_Test.cpp: Totally new version,
- now we use linked lists on which we search to
- spend some time.
-
- * tests/Upgradable_RW_Test.dsp: Project file for this test.
-
- * tests/tests.dsw: Integrated this project.
-
- * tests/version_tests.dsw: Integrated this project.
-
- * tests/Upgradable_RW_Test.dsp: Project file for this test.
-
-Thu Jul 02 09:14:20 1998 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Reactor/Misc/test_timer_queue.cpp (test_functionality):
- use timer_id outside of an assert, so that we don't get compile
- warnings with ACE_NDEBUG about it being unused.
-
- * ace/OS.cpp (thr_create): on VxWorks only, check if thr_id
- points to a zero char *. If so, assign the VxWorks task
- name pointer to it (*thr_id). Thanks to Bill Backstrom
- <backstr@anubis.network.com> for this suggestion.
-
- * ace/Thread_Manager.cpp (spawn_i): on VxWorks only, augmented
- comment to explain the various cases for t_id and *t_id values.
-
- * ace/Thread_Manager.h (spawn*): on VxWorks only, added comment
- explaining use of ACE_thread_t * argument.
-
- * tests/Barrier_Test.cpp: on VxWorks only, added test of
- an ACE_thread_t that points to a 0 char *.
-
- * tests/Barrier_Test.cpp,Thread_Manager_Test.cpp: moved
- VxWorks task name and stack size tests from Barrier_Test
- to Thread_Manager_Test.
-
- * tests/run_tests.vxworks: on VxWorks only, enabled
- Message_Queue_Test. It's OK to run it on VxWorks, now
- that the iterator_test () is disabled in the test.
-
- * tests/SOCK_Connector_Test.cpp (succeed_nonblocking):
- if the connection completion fails, reset the status
- _before_ doing the printout. The printout causes the
- errno to be overwritten on LynxOS 2.5.0, for example.
-
- * Makefile (releaseall): use $(MAKE) instead of make for
- recursive make.
-
-Wed Jul 01 21:31:40 1998 Arturo Montes <mitosys@colomsat.net.co>
-
- * ace/IOStream_T.i (recv_n, eof): fixed calculation of
- timeout_ and return value.
-
-Wed Jul 01 08:51:33 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Service_Types.cpp
- tests/Dynamic_Priority_Test.cpp: Moved explicit template
- instantiations for ACE_Dynamic_Message_Queue and
- ACE_Message_Queue_Factory from the test into the ACE library
- (next to where the ACE_Message_Queue instantiations resided).
-
-Wed Jul 01 07:08:40 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Message_Queue.i,cpp (VxWorks only): removed args from a
- couple of unsupported functions, and added ACE_UNUSED_ARGS
- to others, to avoid compiler warnings.
-
- * tests/Message_Queue_Test.cpp (performance_test): allocate
- the send blocks in the main thread instead of in the sender.
- That way, the main thread can delete them after the
- receiver has finished. Before this change, the sender would
- sometimes delete them before the reciever finished. Thanks to
- Carlos and his friend Mr. SIGSEGV for helping to track this down.
-
-Tue Jun 30 23:48:39 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Message_Queue.h: Added /**/ between #include and <> to
- prevent warnings from MSVC.
-
-Tue Jun 30 22:05:01 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Dynamic_Priority_Test.cpp: added template
- instantiations.
-
-Tue Jun 30 18:55:45 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Message_Queue_T.{cpp, h}
-
- Added methods to ACE_Message_Queue_Factory to
- create an ACE_Dynamic_Message_Queue with the
- deadline and laxity with cleanup strategies.
-
- * tests/Dynamic_Priority_Test.cpp
-
- Added tests for the new cleanup strategy factory methods
-
-Tue Jun 30 18:03:15 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Message_Queue_T.{cpp, h}
- ace/Message_Block.{cpp, h, i}
-
- Reorganized ACE_Dynamic_Message_Queue and related classes,
- fixed bugs that turned up in testing: it's ready to put
- on the road and see how it runs ;-)
-
- * tests/Dynamic_Priority_Test.{cpp, dsp}
- tests/tests.dsw
- tests/Makefile
- tests/run_tests.{bat, sh}
-
- Added a test for the static and dynamic (both deadline and laxity
- based) message queues, which assigns various message attributes,
- pushes messages into the queue, and makes sure the resulting
- dequeue order is correct for the given kind of queue.
-
-Tue Jun 30 14:04:42 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Message_Queue_T.cpp: Fixed references to an undeclared
- priority_eval_func_ptr_ - I think I figured out what it was
- supposed to be doing, but I'm not quite sure. It compiles ;-)
-
- * ace/Synch.h (ACE_Adaptive_Lock): Removed "= 0" (pure virtual) from
- destructor decl. The function is defined in Synch.cpp.
-
-Tue Jun 30 13:13:21 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (open): Made sure that size does not exceed
- MAXIMUM_WAIT_OBJECTS. Thanks to Dr. Schmidt for pointing this
- out.
-
-Tue Jun 30 11:45:12 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Message_Queue_T.cpp: Added explicit class names where needed
- for ANSI C++. Fixed some compile errors. Still needs more work to
- compile correctly on HP-UX aCC.
-
-Tue Jun 30 09:27:25 1998 David L. Levine <levine@cs.wustl.edu>
-
- * etc/ACE-guidelines.html: added a guideline about using ACE_Export.
-
- * ace/Message_Queue.cpp (ACE_Message_Queue_Vx::dtor; VxWorks only):
- added close () call to destructor, because the one in the parent
- class will never get called because head_ is always 0 in the derived
- class.
-
- * ace/Message_Queue.i (VxWorks only): finished implementing the
- ACE_Message_Queue_Vx inline member functions.
-
- * tests/Message_Queue_Test.cpp: added performance tests and
- tests of ACE_Message_Queue_Vx.
-
-Tue Jun 30 03:39:15 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Synch.h (ACE_RW_Process_Mutex): This class no longer needs
- to inherit from ACE_Process_Mutex.
-
- * ace/Synch.cpp (ACE_RW_Process_Mutex): On non-Win32 platforms,
- the underlying ACE_File_Lock needs to be created with owner's
- read/write permission. Otherwise, other process won't be able
- to access the lock.
-
- * Makefile (CONTROLLED_FILES): Added ChangeLog-98a and
- ChangeLog-97b into release. Thanks to Ivan Murphy
- <Ivan.Murphy@med.siemens.de> for pointing this out.
-
-Tue Jun 30 00:51:32 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.19 released.
-
-Tue Jun 30 00:07:39 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Service_Configurator/Misc/main.dsp: Added macro
- definition ACE_SVC_HAS_DLL=0 in this project. DLL linkage is
- not used in this example (yet.) Thanks to Joe Covalesky
- <joe@nowsol.com> for noticing this.
-
-Mon Jun 29 21:16:39 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (invoke): wrapped final return with ACE_NOTREACHED.
- "It's the right thing to do."
-
-Mon Jun 29 19:42:12 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Timeprobe_T.cpp (ACE_Timeprobe): Changed __TEXT to ASYS_TEXT.
-
-Mon Jun 29 14:48:58 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Added UNICODE macros for non-Win32 platforms. Thanks
- to Jeff Greif <jmg@trivida.com> for pointing this out.
-
- * ace/OS.cpp (invoke): Added a return at the end to keep AIX
- happy. Thanks to CLahey@cccis.com for reporting this.
-
-Mon Jun 29 11:37:28 1998 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp: Added a 'const' to initialized ASYS_TCHAR * - string
- literal conversion to char * is deprecated in C++.
-
-Sun Jun 28 22:16:51 1998 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Service_Configurator/Misc/main.cpp (main): removed
- argc declaration because it was unused.
-
- * examples/Threads/task_five.cpp (work): added
- ACE_UNUSED_ARG (stack_size).
-
- * ace/Message_Queue_T.h: fully qualify the DEFAULT_[HL]WM
- references so that it will compile with aCC 1.07 on HPUX 10.20.
- Thanks to Avi Nash <anash@RedBrick.COM> for reporting this
- problem.
-
- * acer/Message_Queue.{h,cpp} (ACE_Message_Queue_Vx:enqueue_head/tail):
- implement these for VxWorks. enqueue_head_i just calls
- enqueue_tail_i.
-
-Sat Jun 27 18:13:05 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Timeprobe_T.cpp (ACE_Timeprobe - copy constructor): Stupid
- MSVC is forcing me to define this and make it public; it should
- really be protected; please don't use it.
-
- * ace/Timeprobe.h: Added ACE_SINGLETON_DECLARATION; otherwise all
- compilation units would get a different instantiation of the
- time probe class. Also, changed ACE_TIMEPROBE_SINGLETON to a
- #define instead of a typedef; otherwise the compiler bitched
- when it was use in ACE_SINGLETON_DECLARATION.
-
- * SINGLETON_INSTANTIATION: Removed this flag from all files in
- ACE. It is causing duplicate declaration errors.
-
-Sat Jun 27 11:29:50 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.18 released.
-
-Sat Jun 27 11:27:28 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.h: use ACE_CAST_CONST instead of const in
- ACE_CU64_TO_CU32.
-
-Sat Jun 27 11:03:52 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * README: Updated the list of people who have contributed to TAO.
-
-Sat Jun 27 07:07:43 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.17 released.
-
-Sat Jun 27 00:27:29 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Timeprobe:
-
- - Added back ACE_COMPILE_TIMEPROBES. David pointed out that
- without this flag, size of ACE increases even when time probes
- are not being used. Therefore, users must compile ACE with
- this flag defined if they want to use time probes. This can
- be achieved by doing one of the following:
-
- . Use make probe = 1, if you are using the make utility.
-
- . Define ACE_COMPILE_TIMEPROBES in config.h
-
- . Define ACE_COMPILE_TIMEPROBES in the VC project file.
-
- . Other regular methods will also work.
-
- It is not necessary to define ACE_COMPILE_TIMEPROBES when
- using time probes, you simply need ACE_ENABLE_TIMEPROBES. You
- can use the ACE_TIMEPROBE_* macros to program the time probes,
- and use the ACE_ENABLE_TIMEPROBE to enable the time probes.
- If you define ACE_ENABLE_TIMEPROBE in your code, but forget to
- compile ACE with ACE_COMPILE_TIMEPROBES, you will end up with
- linker errors.
-
- Remember that ACE_COMPILE_TIMEPROBES means that the ACE
- library will contain code for time probes. This is only
- useful when compiling ACE. ACE_ENABLE_TIMEPROBES means that
- the ACE_TIMEPROBE_* macros should spring to life.
-
- - Added inclusion of OS.h. This way the ACE_COMPILE_TIMEPROBES
- can be specified in the config file.
-
- * include/makeinclude/wrapper_macros.GNU: probe = 1 no longer
- means ACE_ENABLE_TIMEPROBE. It only means
- ACE_COMPILE_TIMEPROBES. This was changed because defining
- ACE_ENABLE_TIMEPROBE here is too broad. ACE_ENABLE_TIMEPROBE is
- cleverly designed so that it allows only some time probes to be
- enabled (where ACE_ENABLE_TIMEPROBE is defined), while others to
- be disabled (where ACE_ENABLE_TIMEPROBE is not defined).
-
- Example: IDL_Cubit time probes can be enabled without enabling
- TAO time probes. Or TAO time probes can be enabled without
- enabling IDL_Cubit time probes. TAO time probes are controlled
- through TAO/tao/Timeprobes.h.
-
- * tests/Timeprobe_Test.cpp:
-
- - Defining ACE_ENABLE_TIMEPROBES is not forced. Users can
- uncomment this at the top of the file. This relieves us from
- trying to include the symbols of ACE_Timeprobes from ACE if
- ACE was compiled without using ACE_COMPILE_TIMEPROBES (the
- #include ace/Timeprobe.cpp trick did not work on all 8
- different ways of compiling ACE on NT).
-
- - Made the registration of the description arrays similar to the
- real use cases (in TAO).
-
- - Introduced enums and took the magic numbers out.
-
-Fri Jun 26 20:37:06 1998 Matthew J Braun <mjb2@cec.wustl.edu>
- * tests/Logger/clnt.h
- * tests/Logger/clnt.cpp
- * tests/Logger/svr.cpp
- * orbsvcs/orbsvcs/Log/Logger_i.h
- * orbsvcs/orbsvcs/Log/Logger_i.cpp
- * orbsvcs/orbsvcs/Logger.idl
-
- The current status of this is incomplete. The svr* test is guaranteed
- to be nonfunctional (I cannot yet speak for the rest).
-
-
-Fri Jun 26 14:52:33 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/test_config.h: Don't close the ofstream before opening the
- log stream in ACE_APPEND_LOG on Win32. It it not necessary
- because Win32 doesn't have fork anyway and it somehow confuses
- Win32 (becuase no file was openen at that point.)
-
- * performance-tests/Makefile: Temporarily removed Synch-Benchmark
- from the targets. It should be added back once the work is
- done.
-
-Fri Jun 26 11:50:03 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: map ACE_dynamic_cast to static_cast with Sun C++,
- without RTTI, to avoid warning about using dynamic_cast
- without RTTI. Thanks to J. Russell Noseworthy
- <rnosewor@objectsciences.com> for reporting this.
-
- * include/makeinclude/wrapper_macros.GNU,ACE-INSTALL.html:
- added rtti make option.
-
- * ace/Message_Queue.*: on VxWorks, added ACE_Message_Queue_Vx,
- which wraps native VxWorks messages queues. See the header
- file for limitations.
-
- * ace/Message_Queue_T.*,Makefile: split Message_Queue into
- template and non-template files.
-
- * ace/Basic_Types.h: added ACE_CU64_TO_CU32 conversion macro,
- for converting const ACE_UINT64 to const ACE_UINT32. The old
- ACE_U64_TO_U32 wouldn't work with Sun C++'s ANSI casts.
-
- * performance-tests/Misc/basic_perf.cpp (per_iteration): use
- ACE_CU64_TO_CU32 for narrowing the const ACE_UIN64 argument.
-
- * ace/config-sunos5.5.h: added ACE_HAS_ANSI_CASTS with Sun C++ 4.2.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: added
- -features=castop to CCFLAGS, to enable use of ANSI casts.
-
- Thanks to J. Russell Noseworthy <rnosewor@objectsciences.com>
- for recommending the above two changes.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: Added
- support for rtti=1 option to make, to optionally enable RTTI.
-
-Fri Jun 26 11:39:49 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added more infomation in {Free,Net}BSD.
-
-Fri Jun 26 10:51:07 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- Fixed problem in ACE_DES_* macros, some preprocessors were
- tokenizing ::~CLASS as ":: ~CLASS" and we wanted ":: ~ CLASS"
- (were class in a macro argument).
-
-Fri Jun 26 09:48:55 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * VERSION: Updated this file to direct bug reports to
- the ACE mailing list.
-
-Fri Jun 26 10:43:02 EET DST 1998 Wei Chiang <wei.chiang@ntc.nokia.com>
-
- * ace/CLASSIX/CLASSIX_OS.cpp:
- ACE_CLASSIX_OS::ACE_CLASSIX_OS()
- After created an CLASSIX reactor as an actor-wide singleton
- reactor, delete the original reator singleton, if any.
-
-Fri Jun 26 02:18:05 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/Synch-Benchmarks/Benchmark[_Base].{h,cpp}:
- * performance-tests/Synch_Benchmarks/Makefile: Added a new class
- Benchmark_Base so we can not only load the test items
- but also the test methods dynamically.
-
-Wed Jun 24 21:37:22 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Message_Queue.cpp (refresh_queue): fixed syntax
- error: extraneous ;.
-
-Wed Jun 24 19:52:30 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/IPC_SAP.cpp (enable,disable): Fixed #define nesting.
-
-Wed Jun 24 15:36:18 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/ASX/Event_Server/Event_Server/Peer_Router.cpp
- (Peer_Router_Context): For some reason, MSVC can't grop the
- temporary objects. Therefore, I changed the ACE_INET_Addr object
- in the constructor to a local variable.
-
-Wed Jun 24 17:10:06 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Timeprobe: Removed ACE_COMPILE_TIMEPROBE. ACE library will
- always contain ACE_Timeprobe code.
-
-Wed Jun 24 16:20:02 1998 James CE Johnson <jcej@lads.com>
-
- * ace/IOStream.cpp (underflow,overflow): added protection against
- errors, when get/put buffers can be set to 0.
-
-Wed Jun 24 14:42:50 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Message_Queue.{cpp,h}: added =TITLE/=DESCRIPTION
- and method comments to ACE_Message_Queue_Factory
-
- * ace/Message_Block.h: fixed comment in ACE_Laxity_Message_Strategy
-
-Wed Jun 24 13:35:15 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Message_Queue.{cpp,h,i}
- ace/Message_Block.{cpp,h,i}: Fixed ACE_UNIMPLEMENTED_FUNC
- declarations in ACE_Dynamic_Message_Queue, moved the
- ACE_Dynamic_Message_Strategy, ACE_Laxity_Message_Strategy,
- and ACE_Deadline_Message_Strategy classes from the
- Message_Queue.* files into the respective Message_Block.*
- files (fixes link errors on platforms such as NT which
- require template source).
-
-Wed Jun 24 11:38:00 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Message_Block.{cpp,h,i}: Added worst case execution time and
- deadline absolute time ACE_Time_Value members to ACE_Message_Block.
- These default to ACE_Time_Value::zero in the constructors and
- initialization methods.
-
- * ace/Message_Queue.{cpp,h,i}: Added ACE_Dynamic_Message_Queue,
- ACE_Dynamic_Message_Strategy, ACE_Deadline_Message_Strategy,
- ACE_Laxity_Message_Strategy, and ACE_Message_Queue_Factory
- classes to facilitate adaptive use of statically or dynamically
- prioritized message queues.
-
-Wed Jun 24 10:23:27 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: 1) inserted /pkg/gnu/bin at head of
- PATH, if it exists. That way, cvs diff will use GNU diff.
- Thanks to Doug for tripping over that.
- 2) changed grep -E to egrep.
-
- * ace/OS.i,gethrtime.cpp (gethrtime): with Pentium and g++ or ghs,
- only; fixed load of 64-bit tick count into two 4-byte ints.
-
- * performance-tests/Misc/basic_perf.cpp (iteration_time): check
- for elapsed_time_ less than empty_iteration_time_, and return 0
- if so.
-
-Wed Jun 24 10:02:14 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp
- (parse_args): Fixed a warning about control reaching the end of
- a method. Thanks to David Levine for reporting this.
-
- * .cvsignore: Added "build" to make CVS happy. Thanks to
- David for this info.
-
- * ace/CLASSIX: Reran "make depend."
-
-
-Wed Jun 24 13:34:32 EET DST 1998 Wei Chiang <chiang@horizon.ntc.nokia.com>
-
- * tests/CLASSIX/*
- Attached "CLASSIX_" to all the file names in this directory
- Added Imakefile
-
- * ace/CLASSIX/CLASSIX_Select_Reactor.*
- test/CLASSIX/CLD_Connector_Test.cpp
- get_current_info() is now renamed to current_info() in compliant
- with ACE_Reactor_Impl class.
-
-Wed Jun 24 08:17:25 EET DST 1998 Wei Chiang <chiang@horizon.ntc.nokia.com>
-
- * Renamed ace/CLASSIX/CLASSIX_Reactor.* to
- ace/CLASSIX/CLASSIX_Select_Reactor.* and adujsted other files
- accordingly.
-
- * ace/CLASSIX/CLASSIX_Reactor.*
- make naming reference consistenet: all the references to
- ACE_CLASSIX_Reactor are now to ACE_CLASSIX_Select_Reactor
-
-Wed Jun 24 02:39:35 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.16 released.
-
-Wed Jun 24 00:00:44 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/ASX/Event_Server/Transceiver/transceiver.cpp: Cleaned
- up the Event_Transceiver code a bit.
-
- * examples/ASX/Event_Server/Event_Server/event_server.cpp (main):
- Cleaned up the code a bit.
-
-
-Wed Jun 24 06:54:00 EET DST 1998 Wei Chiang <chiang@horizon.ntc.nokia.com>
-
- * Attached "CLASSIX_" to all the file names in ace/CLASSIX.
-
- * Modified include statments in ace/CLASSIX/* to reflect the
- name changes.
-
- * Added Makefile in ace/CLASSIX
-
- * ace/CLASSIX/CLASSIX_Reactor.h:
- ACE_CLASSIX_Reactor_Notify is now derived from ACE_Reactor_Notify
- The private data member, select_reactor_, is now an
- ACE_CLASSIX_Reactor class instead of an ACE_Select_Reactor class.
-
- * ace/CLASSIX/CLASSIX_Reactor.cpp:
- in open()
- uses ACE_dynamic_cast() to cast <theReactor>
- parameter from ACE_Reactor_Impl to ACE_CLASSIX_Reactor
-
-Tue Jun 23 22:18:42 1998 Douglas C. Schmidt <schmidt@cumbia.cs.wustl.edu>
-
- * examples/Mem_Map/file-reverse/file-reverse.cpp: Fixed a minor
- bug where the program would ungraciously core dump if the file
- given on the command-line doesn't exist. Thanks to William
- S. Lear <rael@dejanews.com> for reporting this.
-
-Tue Jun 23 20:33:30 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch.h (ACE_Adaptive_Lock): Added ACE_Export.
-
-Tue Jun 23 18:59:31 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Acceptor.cpp (ACE_Strategy_Acceptor<>::resume()): Don't
- suspend() the object; resume() it - looked like a cut/paste error.
-
-Tue Jun 23 16:41:35 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Synch.{h,cpp} (class ACE_Adaptive_Lock): Added the new Lock
- class which allows its subclass to determine the actual locking
- mechanism it uses at run time. Notice that all subclasses must
- provide their own contructor/destructor implementation.
-
-Tue Jun 23 06:40:35 1998 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Map_Manager/test_hash_map_manager.cpp (main):
- replaced use of cerr with and ACE_ERROR_RETURN. Thanks
- to Philippe Klein <Philippe_Klein@vocaltec.com> for reporting
- this.
-
- * netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp:
- added #include of ace/streams.h. Thanks to Philippe Klein
- <Philippe_Klein@vocaltec.com> for reporting this.
-
- * tests/TSS_Test.cpp (worker): declare "u" globally so that
- we don't quickly run out of TSS keys.
-
-Mon Jun 22 09:25:32 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/XtReactor.cpp:
- The notify_handler_ is a pointer now, it was still deferenced as
- an object.
-
-Mon Jun 22 09:04:21 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU: removed suppression
- of warning 340, used reference to copied (temporary) value,
- because it's no longer needed.
-
- * ace/Message_Queue.cpp (ACE_Message_Queue_Iterator ctor):
- replaced "queue" with "q" to avoid problems with STL or on
- platforms that #define queue. Thanks to Dave Meyer
- <dmeyer@std.saic.com> for reporting this.
-
- * ace/Synch_T.h: added adapter class ACE_TSS_Type_Adapter.
- It adapts built-in types for use with ACE_TSS.
-
- * tests/TSS_Test.cpp: demonstrate/test use of ACE_TSS_Type_Adapter.
-
- * ace/Timeprobe.h: added semicolon to end of
- ACE_TIMEPROBE_EVENT_DESCRIPTIONS definition, when it's non-null.
-
- * tests/Timeprobe_Test.cpp (main): removed trailing semicolon
- from ACE_TIMEPROBE_EVENT_DESCRIPTIONS, and added ACE_UNUSED_ARGs
- to avoid compilation warnings about unused variables.
-
-Mon Jun 22 04:49:29 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * man/windex: Removed ACE_Service_Record from all the
- documentation since it is no longer relevant. Thanks
- to Ivan Murphy for reporting this.
-
-Mon Jun 22 02:59:42 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.cpp (setenv_i): Nedd to adjust the memory size to
- the actual string size.
-
-Mon Jun 22 02:32:56 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * ace/Thread_Manager.h:
- * ace/Thread_Manager.cpp:
- * ace/Thread_Manager.i:
- * ace/OS.cpp (uname):
- Moved a few things (comparison operators) from
- ACE_Thread_Descriptor to ACE_Thread_Descriptor_Base, to satisfy
- Borland compilers.
- Enabled a conditional compilation for all Borland compilers.
- Thanks to Valik Solorzano Barboza <valik@xs4all.nl> for pointing
- these things out.
-
-Mon Jun 22 01:14:36 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * ace/ACE.bpg:
- * ace/ACED.bpr:
- * ace/ACER.bpr:
- Contained ^M characters.
- I also made sure there were no absolute paths pointing to "gonzo"
- directories...
-
- * ace/ACED.cpp:
- * ace/ACER.cpp:
- Added Stats.cpp as a module in the right place.
-
- * ace/OS.h:
- Added a ACE_NOOP macro to avoid compilation warnings when "if" is
- used as a noop in certain macros.
-
- * ace/Hash_Map_Manager.cpp:
- * ace/Map_Manager.cpp:
- Replaced the use of "if" as a noop with ACE_NOOP.
-
- * ace/Signal.cpp:
- For some obscure reason, Borland needs a blank line between the
- #if and the extern "C" void ace_sig_handler_dispatch()
- definition. Don't ask...
-
- * ace/Asynch_IO.h:
- Changed (again) inheritance for ACE_Asynch_Result from protected
- to public.
-
- * tests/Aio_Platform_Test.bpr:
- * tests/Atomic_Op_Test.bpr:
- * tests/Barrier_Test.bpr:
- * tests/Basic_Types_Test.bpr:
- * tests/Buffer_Stream_Test.bpr:
- * tests/Conn_Test.bpr:
- * tests/Enum_Interfaces_Test.bpr:
- * tests/Env_Value_Test.bpr:
- * tests/Future_Test.bpr:
- * tests/Handle_Set_Test.bpr:
- * tests/Hash_Map_Manager_Test.bpr:
- * tests/IOStream_Test.bpr:
- * tests/MM_Shared_Memory_Test.bpr:
- * tests/MT_Reactor_Timer_Test.bpr:
- * tests/MT_SOCK_Test.bpr:
- * tests/Map_Manager_Test.bpr:
- * tests/Mem_Map_Test.bpr:
- * tests/Message_Block_Test.bpr:
- * tests/Message_Queue_Notifications_Test.bpr:
- * tests/Message_Queue_Test.bpr:
- * tests/Naming_Test.bpr:
- * tests/Notify_Performance_Test.bpr:
- * tests/OrdMultiSet_Test.bpr:
- * tests/Pipe_Test.bpr:
- * tests/Priority_Buffer_Test.bpr:
- * tests/Priority_Reactor_Test.bpr:
- * tests/Priority_Task_Test.bpr:
- * tests/Process_Mutex_Test.bpr:
- * tests/Process_Strategy_Test.bpr:
- * tests/Reactor_Exceptions_Test.bpr:
- * tests/Reactor_Notify_Test.bpr:
- * tests/Reactor_Performance_Test.bpr:
- * tests/Reactor_Timer_Test.bpr:
- * tests/Reactors_Test.bpr:
- * tests/Reader_Writer_Test.bpr:
- * tests/Recursive_Mutex_Test.bpr:
- * tests/SOCK_Connector_Test.bpr:
- * tests/SOCK_Test.bpr:
- * tests/SPIPE_Test.bpr:
- * tests/SString_Test.bpr:
- * tests/SV_Shared_Memory_Test.bpr:
- * tests/Semaphore_Test.bpr:
- * tests/Service_Config_Test.bpr:
- * tests/Sigset_Ops_Test.bpr:
- * tests/Simple_Message_Block_Test.bpr:
- * tests/TSS_Test.bpr:
- * tests/Task_Test.bpr:
- * tests/Thread_Manager_Test.bpr:
- * tests/Thread_Mutex_Test.bpr:
- * tests/Thread_Pool_Test.bpr:
- * tests/Time_Service_Test.bpr:
- * tests/Time_Value_Test.bpr:
- * tests/Timer_Queue_Test.bpr:
- * tests/Tokens_Test.bpr:
- * tests/UPIPE_SAP_Test.bpr:
- * tests/tests.bpg:
- Contained ^M characters.
- I also made sure there were no absolute paths pointing to "gonzo"
- directories...
-
-Mon Jun 22 01:33:12 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_SYNCH_{1,2}): These two macros were added back for
- backward compatibility.
-
-Mon Jun 22 01:12:53 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (dlerror): Just use FormatMessageA instead of
- FormatMessage. The you don't have to worry about UNICODE being
- turned on.
-
-Mon Jun 22 00:01:02 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.15 released.
-
-Sun Jun 21 23:54:28 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Defined
- ACE_LACKS_MUTEXATTR_PSHARED and ACE_LACKS_CONDATTR_PSHARED.
-
-Sun Jun 21 10:14:32 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp (server): Fixed
- another ambiguity caused by the recent SOCK_IO changes. Thanks
- to David for pointing this out.
-
-Sun Jun 21 00:16:56 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (dlerror): Have to treat UNICODE differently because
- FormatMessage takes wchar when UNICODE is defined.
-
- * ace/WFMO_Reactor.{h,i,cpp}: Changed the parent class of
- ACE_WFMO_Reactor_Notify from ACE_Event_Handler to
- ACE_Reactor_Notify.
- (dump): Added this virtual function implementation for
- ACE_WFMO_Reactor_Notify.
-
- * Ace/Proactor.cpp (timeout): Fixed a typo.
-
-Sat Jun 20 16:51:39 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Reactor*: Made a slew of changes to the Reactor and it's
- associated implementations so that we can integrate it
- seamlessly with Chorus ClassiX IPC. Thanks to Wei Chiang for
- these changes.
-
- * ace/Acceptor.cpp: Added a flag that keeps track of whether we should
- use select() in the Acceptor. This makes it easier to integrate
- this stuff with Chorus IPC. Thanks to Wei Chiang for this.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: Removed the trailing
- 0 to the send() operation to (1) avoid overload ambiguity and
- (2) to use write() rather than send()! Thanks to Chris Healey
- for reporting this.
-
- * ace/ACE: The default condition in the select switch in the
- enter_*_timed_wait functions assumed that all values returned
- from select if not 0 or 1 will be -1. This is true in those
- functions due to only 1 file descriptor flag being set. Thanks
- to Chris Healey for generalizing this a bit...
-
- * ace/SOCK_IO: Added the wrappers for the "non-flags" version of
- timed send()/recv(). Thanks to Chris Healey for this.
-
- * ace/FILE_Addr.cpp: Cleaned up the code a bit to be more
- consistent. Thanks to Chris Healey for suggesting this.
-
- * ace/FILE_Addr.cpp (ACE_FILE_Addr): Removed the memset() in the
- constructor since this is overkill...
-
- * ace/ACE.cpp (send_n): Fixed a dump cut&paste bug in the timed
- version of send_n(). Thanks to Chris Healey
- <chealey@entera.com> for reporting this.
-
-Sat Jun 20 14:58:21 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/indent_macros.perl: Instead of hardcoding perl's location in
- the script, it now invokes perl according to user's environment
- setting. Thanks to David for providing the improvement.
-
-Sat Jun 20 01:24:28 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/platform_freebsd_pthread.GNU: Changed to use
- -Wall to report all warnings.
-
- * ace/OS.cpp (thr_create): Specify <priority> as an unused
- argument when ACE_LACKS_SETSCHED.
-
- * ace/OS.{h,i,cpp}: Rearrange macro indentations.
-
- * bin/indent_macros.perl: This little perl script rearrange the
- indentation of macros so they are a bit easier to debug.
-
- * ace/config-freebsd-pthread.h: Defined ACE_LACKS_PTHREAD_CANCEL.
-
-Sat Jun 20 00:14:07 1998 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_proactor_with_aio.cpp: Test
- program for the Asynch_Transmit_File, Asynch_Read_File,
- Asynch_Read_Stream, Asynch_Write_File and Asynch_Write_Stream.
-
-Fri Jun 19 23:58:35 1998 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
- * ace/Proactor.h :
- * ace/Proactor.cpp :
- * ace/Asynch_IO.h :
- * ace/Asynch_IO.cpp :
- - Implemented Asynch_Transmit_File for POSIX4 systems.
- - Added a new class "ACE_Asynch_Transmit_Handler", which is
- an auxillary handler class for Asynch_Transmit_File. This
- does the actual transmission doing file read and stream
- write asynchronously and finally calling the
- transmit_handler in the application.
- - Aiocb list is now of size RTSIG_MAX, the maximum number
- of RT signals that can be queued in a process at a time.
-
-Fri Jun 19 22:17:35 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release (check_workspace): use cvs checkout instead
- of update, to notice any new directories that have been added
- to the repository but not to the workspace.
-
- There are .cvsignore files in /project/adaptive/ACE_wrappers
- and /project/adaptive/ACE_wrappers/java. They can be used
- to suppress tripping over any new, uncontrolled files, such
- as releases, that are added to these directories.
-
- Filter ^U from checkout output, so that release need not be
- based on the latest repository versions. Instead, the release
- is based on the contents of the /project/adapative/ACE_wrappers
- workspace. It need not be brought up-to-date with the repository,
- though it cannot contain any modified files. This change allows
- other users to continue to check in files prior to or during the
- release.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (read): added
- ACE_UNUSED_ARG (len).
-
- * Makefile: fixed build of .obj/gethrtime.o with ghs/VxWorks/i86.
-
- * tests/run_tests.vxworks: added Timeprobe_Test, but commented
- out. That test page faults when built with ghs for Pentium.
- It appears that the STL-style iterator usage in ACE_Timeprobe
- isn't handled properly by the compiler.
-
-Fri Jun 19 16:51:05 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h (ACE_HAS_NONCONST_MSGSND): Macro
- definition added.
-
- * ace/OS.i (sigwait): Suppress compiler warnings on FreeBSD.
- (msgsnd): Separated the case ACE_HAS_NONCONST_MSGSND out.
-
- Thanks to Russell L. Carter <rcarter@consys.com> for reporting
- the above fix.
-
-Fri Jun 19 11:22:27 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.13 released.
-
-Thu Jun 18 21:14:25 1998 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Threads/task_five.cpp: renamed global stack_size
- to default_stack_size, to avoid shadowing by stack_size in
- main ().
-
- * ace/OS.i (dlopen): added support for ACE_HAS_SGIDLADD.
- (dlerror): on WIN32, return a formatted message instead of 0.
- Thanks to Kent Watsen <kent@watsen.net> for the diffs.
-
- * ace/config-irix6.x-sgic++-nothreads.h: added ACE_HAS_SGIDLADD.
- Thanks to Kent Watsen <kent@watsen.net> for this addition.
-
- * Makefile: ACE-INSTALL is not a .PHONY target.
-
- * ace/Makefile: only regenerate Svc_Conf_[ly].cpp if at Wash. U.
-
-Thu Jun 18 20:46:46 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance_tests/Misc/childbirth_time.cpp: Changed to use the
- variable MULTIPLY_FACTOR in statistic calculation.
-
- * ace/config-freebsd-pthread.h: Added the following definition:
- #define ACE_HAS_SIGINFO_T
- #define ACE_LACKS_SIGINFO_H
- #define ACE_LACKS_UCONTEXT_H
- #define ACE_LACKS_SI_ADDR
-
- * include/makeinclude/platform_freebsd_pthread.GNU: Changed to
- invoke linker directly using g++. Added -pthread flag for
- linker. This implies programs will link against libc_r
- automatically now. Removed -lc_r. Other minor changes.
-
- Thanks very much for lots of help from FreeBSD team esp. Amancio
- Hasty <hasty@rah.star-gate.com> and John Birrell
- <jb@cimlogic.com.au>.
-
-Thu Jun 18 19:32:30 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Token.cpp (dump): commented out print of owner_. Is
- there a portable way to print an ACE_thread_t via ACE_DEBUG?
-
-Thu Jun 18 18:46:00 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Timeprobe.h:
- * ace/Timeprobe_T.h:
- * ace/Timeprobe_T.cpp:
- Added methods to print the absolute values, this can be used to
- mix the results of several processes: por example on Sparcs the
- high-res timer is a CPU register so the value is consistent
- across processes, there are some potential problems with
- multiple CPUs, but that's not our case.
-
-Thu Jun 18 16:25:28 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Threads/task_five.cpp (main): Extracted out the body of
- the test loop so that the delete[] gets called everytime the
- body gets executed.
-
- * ace/Thread_Manager.cpp (ACE_EXECUTE_OP,kill): We need to guard
- against non-existing target thread after searching the thread
- table. Thanks to Savas Parastatidis
- <Savas.Parastatidis@ncl.ac.uk> for noticing the problem.
-
-Thu Jun 18 09:23:39 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/config-win32-common.h: Fixed the inclusion of winsock
- related files. Thanks to Ernesto Guisado
- <eguisado@saincotrafico.com> for suggesting this.
-
-Wed Jun 17 22:47:50 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (rw_trywrlock_upgrade): moved declaration of
- local "result" before the ACE_PTHREAD_CLEANUP_PUSH.
- PTHREAD_CLEANUP_PUSH/POP are macros that contain open/
- close braces on some platforms. So, any declarations
- between them are not visible after the POP.
-
-Wed Jun 17 19:01:53 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- The following changes provide an interface for ACE programmers
- of more finer control over how Win32 structured exceptions are
- handled. Thanks to Detlef Becker <Detlef.Becker@med.siemens.de>
- for contemplating the idea and passing it to us.
-
- * ace/Log_Msg.{h,cpp} (seh_except_{selector,handler}): Added
- new methods to retrieve/set structured exception handling
- behavior. <Selector> is used to determine the "proper" action a
- thread should take upon a structured exception and <handler>
- performs the actual exception handling routine. They are
- structured as below in ace_thread_adapter:
-
- __except (ACE_LOG_MSG->seh_except_selector () (0))
- {
- ACE_LOG_MSG->seh_except_handler () (0);
- }
-
- * ace/OS.{h,cpp} (ACE_SEH_EXCEPT_HANDLER): New typedef used to
- define user win32 structured exception handler.
-
- (ACE_SEH_Exception_{Selector,Handler}): Default structured
- exception handler. Two handlers ACE_Log_Msg are initialized to
- them by default.
-
- (ACE_Thread_Adapter,inherit_log_msg): Added initializing and
- inheriting code to pass the spawning thread's structured
- exception handling behaviors.
-
- * ace/config-win32-common.h
- (ACE_SEH_DEFAULT_EXCEPTION_HANDLING_ACTION): This macro defines
- the default action taken by ACE when a win32 structured
- exception occurs. It is by default defined to
- EXCEPTION_CONTINUE_SEARCH, which does not handle the exception
- but simply pass the exception out. Users can overwrite the
- default behavior by defining the macro in their config.h files.
-
-Wed Jun 17 17:30:11 1998 Michael Kircher <mk1@cs.wustl.edu>
-
- * ace/OS.h: Added a condition variable and a flag to
- the definition of reader/writer locks.
-
- * ace/OS.i: Implemented ACE_OS::rw_trywrlock_upgrade properly
- using one condition variable and a flag. The condition
- variable is used to get in front of all the possible
- waiting writers and to wait on still working readers
- on the rw_lock. The flag is used to indicate, that
- a reader is upgrading its lock. rw_unlock obeys one more
- case now.
-
- * ace/OS.cpp: The constructor for the Reader/writer locks
- has changed slightly to initialize and destroy the
- new members.
-
- * tests/Reader_Writer_Test.cpp: Added the use of the
- rw_mutex.tryacquire_write_upgrade () method to the test.
-
-Wed Jun 17 07:34:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/IOStream_Test.cpp (server): fixed sign of constant
- used to check for valid double. Thanks to Mark Kettner
- <m.kettner@elsevier.nl> for reporting this.
-
- * performance-tests/UDP/udp_test.cpp: added a few
- ACE_U64_TO_U32 explicit conversions.
-
- * tests/Priority_Buffer_Test.cpp (consumer): re-enabled the
- statement to suppress the ghs warning about unused variable
- cur_priority.
-
-Tue Jun 16 20:29:32 1998 Steve Huston <shuston@riverace.com>
-
- * ACE-INSTALL.html: Added some comments concerning MSVC 5.0 and SP3.
- Thanks to Bill Fulton for the excellent detective work.
-
-Tue Jun 16 16:08:23 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Timeprobe_T.h (class ACE_Timeprobe): Fixed copy constructor
- signature. Thanks to Chuck R. Gehr
- (GehrCR@LOUISVILLE.STORTEK.COM) for pointing this out.
-
-Tue Jun 16 16:18:08 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/FILE_Addr.cpp (operator=): Check to make sure we
- NUL-terminate the memcpy'd filename correctly. Thanks to Istvan
- Buki <ibuki@fedex.com> for reporting this.
-
-Tue Jun 16 15:43:55 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE-INSTALL.html: Changed to instruct users to #include
- "ace/config-win32.h" instead of "config-win32.h" directly.
- Thanks to Gonzo <gonzo@ing.puc.cl> for noticing this.
-
-Tue Jun 16 10:33:20 1998 David L. Levine <levine@cs.wustl.edu>
-
- * os-patches/linux-patches.html: added RedHat 5.1 success
- report from Chanaka Liyanaarachchi <chanakal@ittc.ukans.edu>.
-
- * ace/Basic_Types.h,High_Res_Timer.cpp,
- performance-tests/Misc/basic_perf.cpp:
- added explicit ACE_U64_TO_U32 conversion macro. WIN32's __int64
- and ACE_U_LongLong need an explicit narrowing to 32 bits. This
- macro provides a consistent way to do that on all platforms.
-
- * ace/Asynch_IO.*: added trailing $ to CVS keyword string.
-
- * ace/Asynch_IO.cpp: fixed so that it will compile with Sun CC
- on Solaris 2.6. Thanks to Frederic ANDRES <andres@rd.nacsis.ac.jp>
- for reporting this.
-
- * ACE-INSTALL.html: updated Linux RedHat info.
-
-Mon Jun 15 23:17:27 1998 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: added os-patches/ to distribution.
-
-Mon Jun 15 23:07:45 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.12 released.
-
-Mon Jun 15 13:58:17 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-chorus.h: replaced comment that said that the
- config is for CHORUS using MIT threads with comment that says
- that it uses the CHORUS POSIX threads interface. Thanks to
- Leo Modica <lmodica@lucent.com> for questioning this, and Wei
- Chiang for confirming it.
-
- * os-patches/linux-patches.html: updated glibc info. Thanks
- to Bob Scott <bob_scott@broder.com> for pointing out the
- glibc-2.0.7-7 is not available from sunsite.
-
-Sat Jun 13 13:10:05 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/XtReactor_Test.cpp: moved explicit template instantiations
- inside ACE_HAS_XT, because the #includes are all inside
- ACE_HAS_XT also.
-
- * tests/XtReactor_Test.cpp: without ACE_HAS_XT, replaced
- ACE_ERROR_RETURN with ACE_ERROR. This makes it consistent
- with other tests, and allows the following ACE_END_TEST
- statement to be reached.
-
- * tests/Process_Mutex_Test.cpp (main): specify full path to
- spawned children. Removed Solaris/i386-specific code because
- it should no longer be needed now that the test is fixed by
- specifying the full path. (acquire_release): removed printout
- at top.
-
- * ACE+TAO.tgz,ACE.tgz,ACE-lib.tgz,FSU-threads.tgz: added these
- symlinks to their corresponding .tar.gz files. Thanks to
- Gonzo and Darrell for suggesting this.
-
- * ace/RB_Tree.i (clear): removed extraneous ";" following the
- function definition.
-
- * ace/Process.cpp (spawn): added an ACE_DEBUG printout before each
- call to ACE_OS::exit ().
-
- * ace/Synch_T.cpp: removed the #pragma define_template for
- ACE_Condition<ACE_Mutex> on __osf__ with cxx. It's no longer
- needed, and was causing multiply defined instantiations with
- cxx 6.1.
-
-Fri Jun 12 17:04:14 1998 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
-
- * ace/OS.h: Moved the #define's and typedef's (related to Proactor
- stuff, things like TRANSMIT_BUFFERS etc) under '#if defined
- (WIN32)' before OS.i. They were at the end of the file.
-
-Fri Jun 12 16:31:13 1998 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu>
-
- * ace/OS.h: (ACE_NTOHL, ACE_HTONL): Added macros for conversion
- between network and host byte order. Thanks to James Hu for
- contributing these.
-
-Fri Jun 12 14:29:40 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (sema_wait): Changed the code so that it always treats
- the time value argument in absolute time, even for Win32.
- Thanks to Chuck Gehr for reporting this.
-
-Fri Jun 12 14:12:25 1998 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
- The inclusion of the XtReactor is controlled on the
- platform_macros file (or the command line).
- Users simply type make xt_reactor=1 to enable this feature, or
- set xt_reactor to 1 in the platform_macros.GNU file.
- Some extra macros were added for platforms that require special
- CPP, LD or libraries when linking against X/Windows. The macros
- are described in this file.
- The platforms that already had XtReactor compiled by default
- still do.
-
- * ace/config-irix6.x-sgic++-nothreads.h:
- * include/makeinclude/platform_irix6.x-sgic++.GNU:
- Now the XtReactor configuration is controlled on the platform
- file.
-
- * ACE-INSTALL.html:
- Updated documentation for make flags.
-
- * tests/XtReactor_Test.cpp:
- Fixed a few typos.
-
- * tests/Conn_Test.cpp:
- Fixed some template instantiation pragmas.
-
-Thu Jun 11 22:05:31 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Process_Mutex_Test.cpp (main): kill children on
- Solaris/i386 instead of waiting for them. (acquire_release):
- added printout at top. It never appears, at least on
- g++/Solaris/i386.
-
- * ace/Malloc.cpp (instance): wrap declaration of local "assertion"
- with ifndef ACE_NDEBUG, to avoid warning about unused variable
- with debug=0.
-
-1998-06-11 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
-
- * ace/Proactor.h (ACE_Proactor): Put insert_aiocb_list () under
- ACE_HAS_AIO_CALLS so that it doesnt break in NT.
-
-Thu Jun 11 1998 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
-
- * ace/OS.h: Added typedef's, #define's and #include's under the
- definition ACE_HAS_AIO_CALLS for the proactor porting.
-
- * ace/config-sunos5.6.h: Defined ACE_HAS_AIO_CALLS for
- solaris2.6.
-
- * ace/Asynch_IO.h:
- * ace/Asynch_IO.cpp: Added aio call support for Asynch_Read_File. See
- the code under #if defined (ACE_HAS_AIO_CALLS)
-
- * ace/Proactor.h:
- * ace/Proactor.cpp: Added support for AIO calls in Proactor. See
- the code under #if defined (ACE_HAS_AIO_CALLS)
-
- * examples/Reactor/Proactor/test_proactor_with_aio.cpp: The test
- program for Proactor doing aio stuff.
-
-Thu Jun 11 13:34:26 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.cpp: Made change to uname to use a different structure
- if certain Borland compilers are being used. Thanks to
- Valik Solorzano <valik@geodan.nl> for this fix.
-
- * bin/make_release: create .zip files in addition to .tar.gz files.
-
-Thu Jun 11 11:15:26 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/XtReactor.cpp:
- The notify_handler_ open method requires an extra argument.
-
-Wed Jun 10 14:31:55 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Strategies_T.cpp (ACE_Recyclable ctors): reordered
- initializers to match declaration order.
-
- * tests/Conn_Test.cpp: fixed template instantiations:
- ACE_SYNCH_MUTEX instead of ACE_SYNCH_RW_MUTEX.
-
- * tests/XtReactor_Test.cpp (main): added ACE_UNUSED_ARGS for
- argc and argv without ACE_HAS_XT.
-
-Wed Jun 10 12:34:25 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T: Added two new template classes: ACE_Recyclable
- and ACE_Hash_Recyclable. ACE_Recyclable adds a recyclable flag
- to the class it is instantiated with. ACE_Hash_Recyclable
- inherits from ACE_Recyclable and forces the class it is
- instantiated with to have a hash() method.
-
- Also, the Hash_Addr was fixed so that it does not have the
- recyclable flag anymore, since the Hash_Addr can be used even
- when there is no recycling.
-
- Also updated the ACE_Cached_Connect_Strategy to reflect these
- changes.
-
- * tests/Conn_Test.cpp: Fixed the template instantiations in lieu
- of the changes to Hash_Addr.
-
-Wed Jun 10 11:05:39 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: replaced ACE_wrappers-repository/ with
- ACE_wrappers/ in diffs. Thanks to James Risinger <jrisinge@cgi.com>
- for reporting this.
-
-Wed Jun 10 01:31:46 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * tests/Tokens_Test.cpp:
- Changed how the Borland template instantiations are protected.
-
- * tests/XtReactor_Test.cpp:
- test_config.h must be included before asking for ACE_HAS_XT.
- Was missing the Borland non-sense.
-
- * tests/UPIPE_SAP_Test.cpp:
- Protected the Borland template instantiations.
-
- * tests/Timeprobe_Test.cpp:
- * tests/Time_Value_Test.cpp:
- Added the Borland non-sense.
-
- * tests/Reactor_Timer_Test.cpp:
- Added a couple of casts to avoid warnings.
-
- * tests/Priority_Buffer_Test.cpp:
- Got rid of a (seemingly) useless piece of code.
-
- * tests/Naming_Test.cpp:
- Modified a test so that it won't give warnings.
-
- * tests/Conn_Test.cpp:
- Was missing the Borland non-sense.
- Modified an #if-protected section to get rid of a warning.
- Added a few extra Borland template instantiations.
-
- * ace/WFMO_Reactor.cpp:
- * ace/SOCK_Dgram.cpp:
- Under Borland, a couple of comparisons were always true (with a
- warning) because of unsignedness.
-
- * ace/Malloc.cpp:
- Assigned the consition of an assertion to a temporary variable to
- avoid a misleading warning.
-
- * ace/Get_Opt.cpp:
- Added an explicit comparison against 0 to avoid a warning.
-
- * ace/ACED.cpp:
- * ace/ACER.cpp:
- These files had been commited with ^M at the end of lines.
-
- * ace/ACE.cpp:
- Changed a couple of run time checks for
- ACE_DIRECTORY_SEPARATOR_CHAR into compile time tests; that got rid
- of a couple of warnings under BCB3 (Borland C++ Builder 3.0).
-
- * ace/ACE.cpp:
- * tests/Conn_Test.cpp:
- Used ACE_NOTREACHED to avoid further warnings.
-
- * ace/OS.h:
- Added Borland to the empty definition of ACE_NOTREACHED.
- The definition of ACE_SEH_FINALLY for the case of Borland C++
- Builder 3.0 now uses __finally. This allowed most of the tests
- that were hanging to complete ok. Thanks to David Tallman
- <tallman@acsys.com> for pointing this out.
-
-Tue Jun 9 19:35:26 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/XtReactor: Integrated the new XtReactor, which should now
- work for Windows NT! Thanks to Kirill Rybaltchenko
- <Kirill.Rybaltchenko@cern.ch> for this.
-
- * tests: Added the new XtReactor_Test.cpp to test the features of
- the XtReactor. Thanks to Kirill Rybaltchenko
- <Kirill.Rybaltchenko@cern.ch> for this test.
-
-Tue Jun 09 16:18:54 1998 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: removed old release targets. They're no longer
- used, or maintained.
-
- * include/makeinclude/platform_sunos5_x86_g++.GNU: removed.
- Use platform_sunos5_g++.GNU instead, on both sparcs and x86.
-
-Tue Jun 09 15:25:13 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.11 released.
-
-Tue Jun 9 14:59:15 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.cpp: Made it so both Borland and Microsoft use the
- x.wProcessorArchitecture structure for system info.
-
-Tue Jun 09 14:35:28 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Tokens_Test.cpp,UPIPE_SAP_Test.cpp: only need the
- template instantiations with Borland C++.
-
- * bin/make_release: create version diffs, in background,
- when creating releases.
-
-Tue Jun 09 12:50:49 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE_Library.mak: Added Stats.cpp.
-
-Tue Jun 09 11:51:17 1998 Chris Gill <cdgill@tango.cs.wustl.edu>
-
- * tests/MM_Shared_Memory_Test: added a null pointer check so
- test complains rather than crashing when shared allocator fails.
-
-Mon Jun 8 21:03:23 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Select_Reactor.cpp (any_ready): Fixed a more unrighteous bug
- where we were assigning the values in the wait_set_ rather than
- the ready_set_. Thanks to Stefan Ericsson
- <Stefan.Ericsson@osd.uab.ericsson.se> for reporting this bug.
-
-Mon Jun 8 19:15:38 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc.h:
- * ace/Malloc_Base.h (ACE_Allocator): Moved the definition of
- abstract class ACE_Allocator from Malloc.h to a new file called
- Malloc_Base.h to resolve a circular dependency among a bunch of
- header files when compiling with UNICODE and inline enabled.
-
- * ace/SString.i: Changed to include "ace/Malloc_Base.h" to avoid
- circular inclusion.
-
-Mon Jun 08 18:35:23 1998 Steve Huston <shuston@riverace.com>
-
- * ACE-INSTALL.html: Added some updated HP-UX info (and a pointer to
- Riverace's HP-UX hints page) and removed the warning to not use
- MSVC 5.0 SP3 - per results from ace-users discussions last week,
- SP3 is getting used successfully.
-
-Mon Jun 08 13:22:47 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.h: set ACE_SIZEOF_LONG_DOUBLE to 12 if
- LDBL_MAX_EXP is 16384 and LDBL_DIG is 18. Thanks to
- Sree Oggu <dharani@sutmyn.com> for reporting this, on
- SolarisX86 with Sun C++.
-
- * ace/Malloc.cpp (instance): cleaned up comments.
-
-Mon Jun 8 12:12:39 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/UPIPE_SAP_Test.cpp:
- Template instantiation was not using the ACE_SYNCH macros.
-
-Mon Jun 8 02:17:54 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * ACE-INSTALL.html:
- Added a comment regarding the new port to Borland C++ Builder.
-
- * ace/ACE.bpg:
- * ace/ACED.bpr:
- * ace/ACED.cpp:
- * ace/ACER.bpr:
- * ace/ACER.cpp:
-
-
- * ace/ACE.cpp:
- Got rid of unused const int MAX_STRING_SZ = 4096.
-
- * ace/Asynch_Acceptor.cpp:
- * ace/Asynch_IO.cpp:
- * ace/Msg_WFMO_Reactor.cpp:
- * ace/config-win32-common.h:
- Replaced the use of _WIN32_WINNT with ACE_HAS_WINNT4. Borland C++
- Builder doesn't handle _WIN32_WINNT very well when building under
- Win95.
-
- * ace/Asynch_IO.h:
- Now ACE_Asynch_Result inherits publicly from OVERLAPPED;
- otherwise, Borland C++ Builder refuses to access OVERLAPPED
- members. I'm not sure who's right or wrong here.
-
- * ace/CORBA_Ref.h:
- Added an #include "ace/ACE.h".
-
- * ace/Future.h:
- Two cosmetic changes.
-
- * ace/LOCK_SOCK_Acceptor.cpp:
- Added an #include /**/ "ace/LOCK_SOCK_Acceptor.h".
-
- * ace/Log_Msg.cpp:
- Borland C++ Builder doesn't like extern int sys_nerr, so I
- protected against it.
-
- * ace/OS.cpp:
- A couple of hacks to handle FILETIMEs and SYSTEM_INFO structs,
- which are defined a little different under Borland C++ Builder.
-
- * ace/OS.h:
- Added support for Borland C++ Builder.
-
- * ace/OS.i:
- Borland C++ Builder handles a few functions differently: close,
- SetFilePointer, wfdopen.
-
- * ace/Synch_T.h:
- A comment on an #else spanned several lines and mixed // and /**/
- styles; hard to read.
-
- * ace/TTY_IO.cpp:
- A switch was not properly indented and, as a result, had an extra
- break that made Borland C++ Builder complain.
-
- * ace/WFMO_Reactor.cpp:
- Got rid of a couple of unused local variables called result.
-
- * ace/config-win32-common.h:
- Added a few defines for Borland C++ Builder. Don't know if
- this is the proper way to do it, but there it is.
-
- * tests/Aio_Platform_Test.bpr:
- * tests/Atomic_Op_Test.bpr:
- * tests/Barrier_Test.bpr:
- * tests/Basic_Types_Test.bpr:
- * tests/Buffer_Stream_Test.bpr:
- * tests/Conn_Test.bpr:
- * tests/Enum_Interfaces_Test.bpr:
- * tests/Env_Value_Test.bpr:
- * tests/Future_Test.bpr:
- * tests/Handle_Set_Test.bpr:
- * tests/Hash_Map_Manager_Test.bpr:
- * tests/IOStream_Test.bpr:
- * tests/MM_Shared_Memory_Test.bpr:
- * tests/MT_Reactor_Timer_Test.bpr:
- * tests/MT_SOCK_Test.bpr:
- * tests/Map_Manager_Test.bpr:
- * tests/Mem_Map_Test.bpr:
- * tests/Message_Block_Test.bpr:
- * tests/Message_Queue_Notifications_Test.bpr:
- * tests/Message_Queue_Test.bpr:
- * tests/Naming_Test.bpr:
- * tests/Notify_Performance_Test.bpr:
- * tests/OrdMultiSet_Test.bpr:
- * tests/Pipe_Test.bpr:
- * tests/Priority_Buffer_Test.bpr:
- * tests/Priority_Reactor_Test.bpr:
- * tests/Priority_Task_Test.bpr:
- * tests/Process_Mutex_Test.bpr:
- * tests/Process_Strategy_Test.bpr:
- * tests/Reactor_Exceptions_Test.bpr:
- * tests/Reactor_Notify_Test.bpr:
- * tests/Reactor_Performance_Test.bpr:
- * tests/Reactor_Timer_Test.bpr:
- * tests/Reactors_Test.bpr:
- * tests/Reader_Writer_Test.bpr:
- * tests/Recursive_Mutex_Test.bpr:
- * tests/SOCK_Connector_Test.bpr:
- * tests/SOCK_Test.bpr:
- * tests/SPIPE_Test.bpr:
- * tests/SString_Test.bpr:
- * tests/SV_Shared_Memory_Test.bpr:
- * tests/Semaphore_Test.bpr:
- * tests/Service_Config_Test.bpr:
- * tests/Sigset_Ops_Test.bpr:
- * tests/Simple_Message_Block_Test.bpr:
- * tests/TSS_Test.bpr:
- * tests/Task_Test.bpr:
- * tests/Thread_Manager_Test.bpr:
- * tests/Thread_Mutex_Test.bpr:
- * tests/Thread_Pool_Test.bpr:
- * tests/Time_Service_Test.bpr:
- * tests/Time_Value_Test.bpr:
- * tests/Timer_Queue_Test.bpr:
- * tests/Tokens_Test.bpr:
- * tests/UPIPE_SAP_Test.bpr:
- * tests/tests.bpg:
- Added these Borland C++ Builder project files.
-
- * tests/Aio_Platform_Test.cpp:
- * tests/Atomic_Op_Test.cpp:
- * tests/Barrier_Test.cpp:
- * tests/Basic_Types_Test.cpp:
- * tests/Buffer_Stream_Test.cpp:
- * tests/Enum_Interfaces_Test.cpp:
- * tests/Env_Value_Test.cpp:
- * tests/Future_Test.cpp:
- * tests/Handle_Set_Test.cpp:
- * tests/Hash_Map_Manager_Test.cpp:
- * tests/IOStream_Test.cpp:
- * tests/MM_Shared_Memory_Test.cpp:
- * tests/MT_Reactor_Timer_Test.cpp:
- * tests/MT_SOCK_Test.cpp:
- * tests/Map_Manager_Test.cpp:
- * tests/Mem_Map_Test.cpp:
- * tests/Message_Block_Test.cpp:
- * tests/Message_Queue_Notifications_Test.cpp:
- * tests/Message_Queue_Test.cpp:
- * tests/Naming_Test.cpp:
- * tests/Notify_Performance_Test.cpp:
- * tests/OrdMultiSet_Test.cpp:
- * tests/Pipe_Test.cpp:
- * tests/Priority_Buffer_Test.cpp:
- * tests/Priority_Reactor_Test.cpp:
- * tests/Priority_Task_Test.cpp:
- * tests/Process_Mutex_Test.cpp:
- * tests/Process_Strategy_Test.cpp:
- * tests/Reactor_Exceptions_Test.cpp:
- * tests/Reactor_Notify_Test.cpp:
- * tests/Reactor_Performance_Test.cpp:
- * tests/Reactor_Timer_Test.cpp:
- * tests/Reactors_Test.cpp:
- * tests/Reader_Writer_Test.cpp:
- * tests/Recursive_Mutex_Test.cpp:
- * tests/SOCK_Connector_Test.cpp:
- * tests/SOCK_Test.cpp:
- * tests/SPIPE_Test.cpp:
- * tests/SString_Test.cpp:
- * tests/SV_Shared_Memory_Test.cpp:
- * tests/Semaphore_Test.cpp:
- * tests/Service_Config_Test.cpp:
- * tests/Sigset_Ops_Test.cpp:
- * tests/Simple_Message_Block_Test.cpp:
- * tests/TSS_Test.cpp:
- * tests/Task_Test.cpp:
- * tests/Thread_Manager_Test.cpp:
- * tests/Thread_Mutex_Test.cpp:
- * tests/Thread_Pool_Test.cpp:
- * tests/Time_Service_Test.cpp:
- * tests/Time_Value_Test.cpp:
- * tests/Timer_Queue_Test.cpp:
- * tests/Tokens_Test.cpp:
- * tests/UPIPE_SAP_Test.cpp:
- Added the Borland non-sense to allow the tests to link against the
- ACE library under Borland C++ Builder. Major pain in the rear
- end...
-
- * tests/test_config.h:
- Added a couple of includes for the case of Borland C++ Builder.
-
- * tests/Hash_Map_Manager_Test.cpp:
- Changed variable name allocator to alloc, to avoid conflicts with
- STL allocators under Borland C++ Builder.
-
- * tests/Reactors_Test.cpp:
- Changed variable name tm to thr_mgr, to avoid conflicts with
- std::tm under Borland C++ Builder.
-
- * tests/Tokens_Test.cpp:
- * tests/UPIPE_SAP_Test.cpp:
- Added a few explicit template instantiations.
-
-Sun Jun 07 09:51:02 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Timeprobe_T.cpp: added #include of ace/Timeprobe.h.
- It wouldn't compile on GreenHills without it.
-
- * STL/bool.h: only #define bool, etc., if _MSC_VER is #defined.
- Thanks to Stanley Leeson <STANLEY.D.LEESON@cdev.com> for
- reporting this.
-
- * tests/Timeprobe_Test.cpp: added #include of ace/Timeprobe.cpp
- to pick up template instantiations, if ACE_COMPILE_TIMEPROBES
- was not defined. This allows the test to build on platforms
- that have explicit template instantiation when libACE was
- built without timeprobes enabled.
-
-Sun Jun 7 01:06:12 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Added the
- ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS flag to work around problems
- with pthreads on FreeBSD. Thanks to Amancio Hasty
- <hasty@rah.star-gate.com> for reporting this.
-
-Sat Jun 6 22:00:54 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Message_Queue.cpp: Added code so that advance() is more
- thread-safe.
-
- * apps/gperf/src/Options.cpp (operator): Changed ACE_OS::exit()
- to ACE_OS::_exit() so we'll leave no trace...
-
- * apps/gperf/src/Key_List.cpp (output_switch): Fixed another bug
- where strcmp() should be generated instead of strncmp().
-
- * apps/gperf/src: We no longer call the inline option "GNU" but
- now call it "INLINE".
-
- * apps/gperf/src/{Options.h,Key_List.cpp,Gen_Perf.cpp}: Revised
- the LARGE_STACK_ARRAY code so that it only gets compiled if
- we're using GCC.
-
- * apps/gperf/src/Key_List.cpp (output_switch): Fixed a bug where
- strcmp() was being used instead of strncmp(). Thanks to C++
- for finding this!
-
- * apps/gperf/src/Key_List.cpp: Removed all uses of "register"
- since C++ compilers can do this automagically...
-
- * apps/gperf/tests/test.cpp (main): Modified the test program to
- use C++ rather than C (ugh!).
-
- * ace: Added two new files: Timeprobe_T.h and Timeprobe_T.cpp in
- order to solve problems with multiply defined symbols. Thanks
- to Brian Mendel, David Levine, and Irfan for tracing this down.
-
-Sat Jun 6 19:10:54 1998 Sergio Flores <sergio@cs.wustl.edu>
-
- * ace/config-vxworks5.x.h: changes the default thread priority
- from 6 to 101.
-
-Sat Jun 06 16:43:01 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Timeprobe.cpp (dtor): inserted missing "[]" in delete of
- array.
-
-Fri Jun 5 11:53:18 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Log_Msg.{h,cpp}: Added enable_debug_messages() to do
- the opposite of disable_debug_messages().
-
- * ace/Parse_Node.cpp: Got rid of all the checks of the
- Service Configurator's debug flag. Instead, the checking
- will occur in the Service Configurator.
-
- * ace/Service_Config.cpp: Added to Stephen Coy's changes so
- that debug messages are turned back on after the Service
- Configurator is done. That way, other code can still use
- debug messages.
-
-Thu Jun 4 12:25:48 1998 Rajiv C. Gandhi <gandhi@tango.cs.wustl.edu>
-
- * apps/gperf/src/Options.h: removing the option to stack
- allocate some large arrays as CC does not seem to like it.
-
- * apps/gperf/src/Key_List.cpp (output_lookup_array): removing
- the option to stack allocate some large arrays as CC does
- not seem to like it.
-
- * apps/gperf/src/Gen_Perf.cpp: removing the option to stack
- allocate some large arrays as CC does not seem to like it.
-
-Thu Jun 04 05:03:09 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.10 released.
-
-Wed Jun 3 02:24:47 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32-common.h: Instead of defining _MT for users if
- it's not defined, spit out an error message and stop the
- compilation. Thanks to Barney Dalton
- <barneyd@cyllene.uwa.edu.au> for suggesting this.
-
-Tue Jun 02 20:03:51 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-1[01].x-hpc++.h: Added ACE_HAS_USING_KEYWORD for
- aC++ on both platforms.
-
-Tue Jun 02 12:19:29 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (wait_grp,wait_task): These two were
- still copying thread_descriptors and deleting the copies
- directly. This corrupted the cached thread_descriptor.
- Changing them to use Thread_Descriptor_Base solved the problem.
- Thanks to Zoran Ivanovic <zorani@pathcom.com> for finding
- this.
-
-Tue Jun 02 08:29:20 1998 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU,ACE-INSTALL.html:
- moved probe=1 support from individual Makefiles to
- wrapper_macros.GNU.
-
-Tue Jun 02 08:09:41 1998 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.1.x.h: Removed ACE_HAS_THREAD_SELF. It was
- causing compile failure. Thanks to Lee Nash <rnash@gulfaero.com>
- for helping to work this out.
-
-Mon Jun 01 16:19:52 1998 Steve Huston <shuston@riverace.com>
-
- * examples/Reactor/Dgram/Dgram.mdp, Dgram.mak: Added these files
- to build the examples with MSVC 4.2.
-
-Mon Jun 01 13:01:14 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Reactor/Dgram/Dgram.cpp (run_test): Because of the
- delayed de-registration in WFMO_Reactor, WFMO_Reactor was trying
- to call handle_close on the Event Handler after it was
- destroyed. Solution: dynamically created the Event Handler and
- call "delete this" in handle_close. The other alternative was
- to call remove_handler with the DONT_CALL flag and to close the
- socket in the Event Handler's destructor.
-
- * ace/Timeprobe: The vxworks compiler is lame as it cannot handle
- operator placement new for arrays. Therefore, ACE_Allocator was
- removed in favor of regular new and delete.
-
-Mon Jun 01 09:54:51 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Timeprobe_Test.cpp: removed trailing ; from template
- instantation pragmas.
-
- * tests/Conn_Test.cpp,MM_Shared_Memory_Test.cpp,
- Priority_Reactor_Test.cpp,SOCK_Test.cpp: replaced
- !defined (ACE_WIN32) && !defined (VXWORKS) with
- !defined (ACE_LACKS_FORK).
-
-Sun May 31 23:05:10 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html,include/makeinclude/wrapper_macros.GNU:
- added repo=1 make option support. It only helps when
- building ACE applications. ACE and TAO still use explicit
- instantiation when building their libraries, because it's
- easiest to avoid link collisions that way. And it already
- works.
-
-Sun May 31 18:31:24 1998 James C Hu <jxh@cs.wustl.edu>
-
- * ace/RB_Tree.i:
- * ace/RB_Tree.cpp: Changes suggested by Sergio to make it work
- with older version of GCC. Referred to RB_Tree_Node_Color
- through the parent class RB_Tree_Node_Base.
-
-Sat May 30 13:14:18 1998 James C Hu <jxh@cs.wustl.edu>
-
- * ace/RB_Tree.h: Try to put enum into a class again. This time,
- created a dummy base class to hold the RED and BLACK enums.
-
-Sat May 30 08:01:31 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/RB_Tree.h (RB_Tree_Iterator::operator =): Added explicit
- return type to the declaration. Wrapped with
- ACE_UNIMPLEMENTED_FUNC.
-
-Fri May 29 23:06:02 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/RB_Tree.{h,i}: moved enum RB_Tree_Node_Color out of the
- (template) class declaration because g++ 2.7.2.3 couldn't
- find it there.
-
- * ace/Thread_Manager.cpp (remove_thr, VxWorks only): added [] to
- delete of tid array. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for reporting this.
-
- * ace/RB_Tree.h (RB_Tree_Iterator::operator =): added explicit
- return type to the declaration. Wrapped with
- ACE_UNIMPLEMENTED_FUNC.
-
-Fri May 29 21:59:01 1998 James C Hu <jxh@cs.wustl.edu>
-
- * RB_Tree.h:
- * RB_Tree.i:
- * RB_Tree.cpp: Debugged some minor typo errors, and changes
- related to internalizing the RED and BLACK enums.
-
-Fri May 29 21:55:11 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp: don't use ACE_HAS_PENTIUM code on
- Solaris (ACE_HAS_HI_RES_TIMER) because it uses ::gethrtime ().
- (dump): on Solaris, print 64-bit ints with %llu format. Other
- platforms may need that, also.
-
- * ace/Makefile: replaced .o with $(OBJEXT) in gethrtime.o target,
- so that make depend doesn't munge it.
-
- * ace/OS.h: only use the null versions of the
- ACE_DES_FREE_TEMPLATE* macros with LynxOS 3.0.0.
-
- * include/makeinclude/platform_lynxos.GNU: commented out -Winline,
- because it complains too much with -O2, and that's now the default.
-
-Fri May 29 17:52:37 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.9 released.
-
-Fri May 29 16:19:34 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Synch_T.h (class ACE_Guard): ACE_Guard's destructor was
- changing the errno value. Fixed this to avoid doing so...
- Thanks to Arturo Montes <mitosys@colomsat.net.co> for reporting
- this.
-
-Fri May 29 15:33:41 1998 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Misc/context_switch_time.cpp:
- added Synchronized Suspend-Resume Test.
-
-Fri May 29 14:46:49 1998 James C Hu <jxh@cs.wustl.edu>
-
- * ace/Makefile
- * ace/RB_Tree.h
- * ace/RB_Tree.cpp: Added changes to RB_Tree to enable overloading
- of the comparison method. Added class RB_Tree to the UNIX
- Makefile.
-
- * ace/OS.cpp: Added some minor fixes to the difftime implementation.
-
- * ace/OS.cpp:
- * ace/OS.i:
- * ace/README:
- * ace/config-sunos4*:
- Added ACE_LACKS_DIFFTIME macro because SunOS4 does not support
- the Standard C difftime function. Added a difftime
- implementation for when such is the case.
-
-Fri May 29 08:22:36 1998 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp, Trace.cpp: Changed decision for
- order-of-include/inline from ACE_WIN32 to
- ACE_HAS_ONE_DEFINITION_RULE. This completes the changes needed
- to be able to use the newer versions of HP aC++.
-
- * ace/config-win32.h: Set ACE_HAS_ONE_DEFINITION_RULE.
-
-Thu May 28 16:17:41 1998 Steve Huston <shuston@riverace.com>
-
- * ace/README: Added ACE_HAS_ONE_DEFINITION_RULE.
- * ace/config-hpux-10.x-hpc++.h:
- * ace/config-hpux-11.x-hpc++.h: Added ACE_HAS_ONE_DEFINITION_RULE
- for aC++. This is part of a set of changes to make ACE work
- with HP aC++ A.01.09 (10.20) and A.03.05 (11.00). The other
- changes are being tested still. Thanks _very_ much to Steve Coy
- for digging through this with HP and working out a solution!
-
-Thu May 28 15:55:48 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * Added new configuration files for SCO. Thanks to Arturo for
- this.
-
-Thu May 28 13:57:50 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Filecache.cpp: removed redundant template instantiations.
-
- * ace/config-lynxos.cpp: added undef ACE_HAS_TEMPLATE_SPECIALIZATION
- for LynxOS 3.0.0.
-
- * ace/Hash_Map_Manager.cpp,Map_Manager.cpp: replaced bare explicit
- destructor calls with ACE_DES_FREE_TEMPLATE{,2} macro invocations.
-
- * ace/OS.h: #define ACE_DES_FREE_TEMPLATE to be null on LynxOS.
- Without it, the g++ that's distributed with LynxOS 3.0.0 hopelessly
- chokes on explicit calls to template class destructors. This
- hack could cause memory leaks, though currently ACE_DES_FREE_TEMPLATE
- is only used to call empty, non-virtual destructors (in
- Containers.cpp, Hash_Map_Manager.cpp, and Map_Manager.cpp).
- Also, added ACE_DES_FREE_TEMPLATE2 macro for use with two
- template arguments. There's got to be a better way.
-
- * include/makeinclude/platform_lynxos.GNU: added LynxOS Version 3.0.0
- support. It's optional at this point: add VERSION=3.0.0 to your
- make invocation to enable. Disabled -Wall with LynxOS 3.0.0.
- Enabled optimization.
-
-Thu May 28 07:47:41 1998 Steve Huston <shuston@riverace.com>
-
- * tests/SOCK_Connector_Test.cpp: Changed the "should succeed" test
- from port 25 (smtp) to 7 (echo) to try and get a higher success
- rate. Thanks to David Levine for this suggestion.
-
-Wed May 27 13:45:24 1998 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (handle_timed_complete): Fixed problem where
- successful connect was being reported as a failure (P90).
-
- * tests/SOCK_Connector_Test.cpp: Added a test for a successful
- non-blocking connect (tests fix from above).
-
-Wed May 27 07:04:42 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Service_Config.cpp: default debug_ to 1 instead
- of 0. And the -d option now disables debug messages,
- instead of enabling them. Thanks to Irfan for reporting
- that LM_DEBUG messages were lost without this fix.
-
- * ace/High_Res_Timer (calibrate): added calibrate () method
- to calculate the global scale factor on Pentiums. It's
- called by the constructor for the first instantiation
- in a process. (On WIN32, get_registry_scale_factor () is
- called instead of calibrate ().)
-
- * ace/Stats.cpp (sample): continue aggregating data even
- if there is overflow. This allows, e.g., a mean to be
- calculated even if the standard deviation calculation overflow.
-
- * performance-tests/Misc/context_switch_time.cpp: don't run the
- Yield_Test on VxWorks because it takes too long.
-
- * ace/High_Res_Timer.*: moved calibration from constructor to
- global_scale_factor () accessor.
-
- * ace/Timeprobe.cpp: no longer need to explicitly calibrate the
- High_Res_Timer.
-
-Tue May 26 22:25:18 1998 Stephen Coy <stevec@wsa.com.au>
-
- * ace/Log_Msg.{h,cpp},Service_Config.cpp: added support for
- -d in Service_Config files to enable/disable LM_DEBUG messages.
-
-Tue May 26 14:53:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/SOCK_Dgram_Mcast.cpp (subscribe): Fixed use of uninitialized
- variable, nr_subscribed. Thanks to Nanbor for finding this.
-
-Tue May 26 13:39:21 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Timeprobe.cpp:
- * tests/Timeprobe_Test.cpp:
- Now egcs and Sun/CC are happy with this files.
-
-Tue May 26 00:35:49 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Timeprobe_Test.cpp: Added new test.
-
- * ace/Timeprobe: Added the ability to have multiple event tables
- for time probes. Multiple maps can be used to chunk up the time
- probes. Each one can be added by calling event_descriptions().
- Different tables are used internally by consulting the
- minimum_id for each table. It is up to the user to make sure
- that multiple tables do not share the same event id range.
-
-Sat May 23 21:52:49 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Message_Block.h:
- * ace/Message_Block.i:
- The rd_ptr() and wr_ptr() are const methods now.
-
-Sat May 23 00:18:58 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_ce_dll.dsp: Updated settings for MIPS CPU.
-
- * tests/WinCE/*.dsp: Updated settings for MIPS CPU.
-
-Fri May 22 16:00:03 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/MT_SOCK_Test.cpp (spawn): We must check for !defined
- (ACE_LACKS_FORK) rather test for VxWorks or Win32. Thanks to
- Steven Coy for reporting this.
-
-Fri May 22 20:01:40 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: moved ACE_IO_Vector declaration ahead of OS.i #include.
-
- * ace/OS.i (ACE_IO_Vector::buffer): added static cast of new_buffer
- to char *.
-
- * ace/OS.i (writev): changed return type from int to ssize_t to
- match declaration in OS.h.
-
-Fri May 22 12:20:11 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace: Other parts of ACE were modified to use the new
- ACE_IO_Vector class.
-
- * ace/OS.h (ACE_IO_Vector): Added a new class that inherits from
- the correct IO_Vector class provided by the platform.
-
- writev() and readv() were being emulated on Win32 in ACE. A new
- ACE_OS::writev() and ACE_OS::readv() has been added to ACE
- that uses WSASend() and WSARecv() respectively. However, in
- order for you to exploit these new functions, you must use
- ACE_IO_Vector instead of iovec. The ideal situation would have
- been to totally replace iovec with ACE_IO_Vector but that would
- break too much code. So, if you keep using iovec, you will use
- the expenses and slow emulations. If you want to use WSASend()
- and WSARecv(), switch over to ACE_IO_Vector. It will work on
- both Win32 and non-Win32 platforms.
-
-Fri May 22 07:53:03 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-pthread.h: removed two
- ACE_LACKS_CONDATTR_PSHARED #defines. That leaves just
- one, that's commented out.
-
- * performance-tests/Misc/context_switch_time.cpp: create all
- threads as detached so they don't have to be joined. They
- test was using up resources on LynxOS, if a high -c option
- was used, without this change.
-
- * ace/config-sunos5.5-{g++,sunc++-4.x}.h,config-sunos5.5.h:
- merged config-sunos5.5-g++.h and config-sunos5.5-sunc++-4.x.h
- into config-sunos5.5.h. That new file should be maintained
- for both compilers from now on. The old files have been
- retained for backward compatibility. The just #include
- config-sunos5.5.h.
-
- * ace/config-sunos5.6.h: #include config-sunos5.5.h instead
- of the separate Sun C++ and g++ configs.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU:
- updated comment to reflect change to config-sunos5.5.h.
-
-Fri May 22 07:30:23 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.8 released.
-
-Fri May 22 07:26:06 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Stats.cpp: added some casts to avoid MSVC++ warnings
- about narrowing.
-
- * ace/config-osf1-4.0.h: removed commented-out
- ACE_LACKS_{COND,MUTEX}ATTR_PSHARED.
-
-Fri May 22 00:09:15 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Local_Tokens.{h,cpp} (ACE_Null_Token): Only defined default
- ctor/dtor explicitly when ACE_LACKS_INLINE_FUNCTIONS.
-
- * ace/Stats.cpp: Defined ACE_BUILD_DLL at the beginning.
- Win32 needs to define ULONGLONG literals as 999ui64.
- This is the only place that uses i64 literals.
-
-Thu May 21 21:55:09 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.7 released.
-
-Thu May 21 17:36:37 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.6.h: added support for POSIX 199506
- extensions. Thanks to J. Russell Noseworthy
- <rnosewor@objectsciences.com> for providing this support.
-
- * ace/Local_Tokens.{h,i}: inlined ACE_Null_Token ctor and dtor
- in class header because the clone () method needs the ctor
- inlined, and it's too difficult to get it right with macros.
-
- * tests/SString_Test.cpp (main): added ACE_ASSERT with s4 in
- it, because it was unused otherwise.
-
- * performance-tests/Synch-Benchmarks/Options.cpp (print_results):
- changed #else to #elif, because it has a condition after it.
-
-Thu May 21 15:28:07 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/test_config.h: Modified to write output from tests into
- log file. Notice that log files on CE have extension name
- ".txt" instead of ".log".
-
- * ace/OS.i (strrchr): Added UNICODE version of this function.
-
- * ace/Log_Record.{h,cpp}: Generalized message formatting on CE by
- adding a new method format_msg().
-
- * ace/Reactor_Impl.h: Removed an extra comma.
-
- * ace/XtReactor.cpp: Include "ace/Reactor.h"
-
- * tests/Recursive_Mutex_Test.cpp:
- * tests/Future.cpp: Removed iteration restriction on CE.
-
-Thu May 21 12:13:36 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_{dll,lib}.dsp: Added Stats.cpp into projects.
-
-Wed May 20 23:02:41 1998 Steve Huston <shuston@riverace.com>
-
- * ace/SOCK_Dgram_Mcast.cpp (subscribe): On Win32, if
- ACE::get_ip_interfaces finds less than 2 interfaces, call
- subscribe with "0.0.0.0". This is sort of a hack and is meant
- only to help get things working again until ACE::get_ip_interfaces
- can be made to work correctly in all cases.
-
-Wed May 20 10:42:12 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-mvs.h: enabled ACE_LACKS_CONDATTR_PSHARED and
- ACE_LACKS_MUTEXATTR_PSHARED. Thanks to Chuck Gehr
- <GehrCR@LOUISVILLE.STORTEK.COM> for advising on this.
-
- * ace/config-linux-lxpthreads.h,config-lynxos.h: removed
- commented-out ACE_LACKS_{COND,MUTEX}ATTR_PSHARED #defines.
-
- * ace/config-sunos5.5-{sunc++-4.x,g++}.h: removed
- commented-out ACE_LACKS_{COND,MUTEX}ATTR_PSHARED. Enabled
- ACE_HAS_CLOCK_GETTIME, because we always link with -lposix4.
- Thanks to J. Russell Noseworthy <rnosewor@objectsciences.com>
- for inspiring the ACE_HAS_CLOCK_GETTIME enable.
-
- * ace/config-osf1-4.0.h: removed uncommented
- ACE_LACKS_CONDATTR_PSHARED, so that we can test whether
- it's necessary.
-
- * ace/Stats.*,Makefile: added ACE_Stats class.
-
- * performance-tests/Misc/context_switch_time.cpp: use
- ACE_Stats to calculate standard deviations.
-
-Tue May 19 21:24:50 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Future_Test.cpp: Reduced the number of iterations on CE.
-
- * ace/Synch.i: Added #ifdef (ACE_HAS_THREADS) to make it compile
- on non-threaded platforms.
-
-Tue May 19 10:05:07 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/SString.cpp (strlen): Renamed ACE_WString::wstrlen to
- ACE_WString::strlen.
-
- * ace/SString.i: Reordered functions to make g++ happy.
-
- * ace/ACE.cpp (hash_pjw): Changed ACE_OS::strlen to
- ACE_WString::strlen.
-
-Tue May 19 09:52:08 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-g++.h:
- * ace/config-irix6.x-sgic++-nothreads.h:
- * ace/config-irix6.x-sgic++.h:
- Added ACE_LACKS_MUTEXATTR_PSHARED
-
-Mon May 18 16:37:36 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/SString.h (ACE_CString): Added the ability to hold on to
- user supplied character strings without having to make a copy.
-
- * ace/OS.h (ACE_OS): Added implementations for strrchr, strnchr,
- strnstr, and strstr.
-
- * ace/ACE.cpp (hash_pjw): Added new versions of these that work
- with user specified string length.
-
-Mon May 18 12:24:40 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-*.h: Commented out most of the
- ACE_LACKS_CONDATTR_PSHARED so we can see what platforms really
- DON'T support this...
-
- * ace/OS.i (mutex_init): Added support for
- pthread_mutexattr_setpshared() so we can initialize POSIX
- pthreads process-wide mutexes. Thanks to Ki-hyun Yoon
- <abird@nextware.co.kr> for suggesting this.
-
- * ace/config-sunos5.6.h: Added an #define for
- ACE_THREAD_POSIX_SEM. Thanks to Ki-hyun Yoon
- <abird@nextware.co.kr> for reporting this.
-
- * ace/config-sunos5*.h: Removed the ACE_LACKS_RWLOCK_T stuff since
- it's unnecessary. Thanks to Chris Lahey for reminding me of
- this...
-
-Mon May 18 13:48:14 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Synch.i: Added #ifdef (ACE_HAS_THREADS) to make it compile
- on non-threaded platforms.
-
-Mon May 18 12:31:32 1998 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Service_Config.{h,i,cpp}: Added an accessor debug() for
- external access to the <debug_> variable. More debug messages
- check this before displaying.
-
- * ace/Parse_Node.cpp: Checks Service_Config's debug flag before
- outputting debug messages.
-
-Sun May 17 23:14:32 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Wince/*.dsp: Disabled precompiled headers. They ate up
- all my disk space.
-
- * ace/Service_Config.cpp: <process_directive> takes a string of
- type ASYS_TCHAR. Use ACE_WIDE_STRING to do the conversion.
-
- * ace/Log_Msg.{h,cpp} (ACE_ASSERT): Use unicode in ACE_ASSERT.
- (log): Don't exit the program for now. Exiting program here
- destroys all debugging message in the window.
-
- * tests/Reader_Writer_Test.cpp: Reduced the number of iterations
- on WinCE.
-
- * ace/OS.i: Added ACE_OS::time () implementation for CE.
-
-Sun May 17 21:45:07 1998 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Misc/childbirth_time.cpp: changed type of
- MULTIPLY_FACTOR from int to size_t to avoid signed/unsigned
- comparison.
-
- * tests/Tokens_Test.cpp: synchronize start of thread svc ()
- routines. Occasionally, the first thread would finish before
- any others had started. The TSS objects would get cleaned
- up. Then, the remaining threads would start up and make a big
- mess.
-
-Sat May 16 15:10:46 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Service_Config.h (ACE_Service_Config): Moved the
- process_directive() into the public part of the class so this
- can be called by applications one the Service Configurator is
- open. Thanks to Tom Arbuckle
- <arbuckle@uran.informatik.uni-bonn.de> for suggesting this.
-
-Sat May 16 14:12:09 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.{h,i,cpp} (class ACE_Thread_Descriptor_Base):
- Extract thread handle and thread creation flags out from
- Thread_Descriptor into this new class. This is necessary
- because after my last round of changes to improve
- ACE_Thread_Manager, I changed the <terminated_queue_> from
- holding Thread_Descriptor's to holding pointers to descriptor.
- This was a bad move because the address of these pointers had
- already been "freed." The <terminated_queue_> now holds
- ACE_Thread_Descriptor_Base which contains only the information
- needed for manipulating <terminated_queue_>. Thanks to Arturo
- for noticing this.
-
-Sat May 16 03:23:35 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/Misc/childbirth_time.cpp (main): Added a new
- function to test the performance of ACE_Thread_Mutex in single
- thread _without_ any contention.
-
-Fri May 15 22:55:51 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Recursive_Mutex_Test.cpp: Only iterate the test 50 times
- on CE as on Chorus. Otherwise, as I'm using a CEdit to hold the
- test output, CEdit would overflow.
-
- * ace/OS.i (thr_getspecific): Don't check for return value of
- TlsGetValue on CE because CE doesn't seem to set the LastError
- correspondingly.
- (strchr): Added implementation on CE.
-
- * Added Activation_Queue.i and Strategies.i.
-
- * Combed thru all these files and added difinitions for ctor/dtor
- for a bunch of classes explicitly. CE needs them.
-
- Activation_Queue.cpp Activation_Queue.h Dynamic.h Dynamic.i
- Event_Handler.h Event_Handler.i Get_Opt.h Get_Opt.i Handle_Set.h
- Handle_Set.i High_Res_Timer.h High_Res_Timer.i INET_Addr.h
- INET_Addr.i IO_SAP.h IO_SAP.i IPC_SAP.h IPC_SAP.i Local_Tokens.h
- Local_Tokens.i Log_Record.h Log_Record.i Malloc.h Malloc.i OS.h
- OS.i Obstack.cpp Obstack.h Obstack.i Parse_Node.h Parse_Node.i
- Pipe.h Pipe.i Process_Manager.h Process_Manager.i SOCK.h SOCK.i
- SOCK_Acceptor.cpp SOCK_Acceptor.h SOCK_Acceptor.i SOCK_CODgram.h
- SOCK_CODgram.i SOCK_Connector.h SOCK_Connector.i SOCK_Dgram.h
- SOCK_Dgram.i SOCK_Dgram_Bcast.h SOCK_Dgram_Bcast.i
- SOCK_Dgram_Mcast.h SOCK_Dgram_Mcast.i SOCK_IO.h SOCK_IO.i
- SOCK_Stream.h SOCK_Stream.i SString.h SString.i Sched_Params.h
- Sched_Params.i Select_Reactor.h Select_Reactor.i
- Service_Manager.h Service_Manager.i Service_Repository.h
- Service_Repository.i Service_Types.h Service_Types.i
- Shared_Object.h Shared_Object.i Signal.h Signal.i Strategies.cpp
- Strategies.h Strategies.i Strategies_T.cpp Strategies_T.h
- Synch.cpp Synch.h Synch.i Synch_Options.cpp Synch_Options.h
- Synch_Options.i Timer_Heap_T.cpp Timer_Heap_T.h Timer_List_T.cpp
- Timer_List_T.h Timer_Queue_T.cpp Timer_Queue_T.h
- Timer_Wheel_T.cpp Timer_Wheel_T.h.
-
-Fri May 15 16:55:34 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-sunos5*.h: Automatically enable ACE_LACKS_RWLOCK_T if
- we're NOT using Solaris threads (since pthreads doesn't support
- readers/writer locks).
-
- * ace/Service_Config.cpp: Removed a duplicate template
- instantiation of template class
- ACE_Unbounded_Queue_Iterator<ACE_CString>. Thanks to Ben Eng
- <ben@jetpen.com> for reporting this.
-
- * ace/OS: Fixed a number of problems that occurred when trying to
- use the PTHREAD implementation on Solaris without using
- ACE_HAS_STHREADS. The problems related primarily to the
- ACE_OS::rw*() functions. To fix the problems, the following
- changes were made.
-
- Remove the #if defined (ACE_HAS_STHREADS) from the case where we
- have the native rw*() functions. We just use the
- ACE_LACKS_RWLOCK_T compile flag to determine whether we have the
- native functions.
-
- Without the ACE_HAS_STHREAD flag, ACE_rwlock_t comes up
- undefined. To fix this, moved the definition at approx. line
- 1868 above the #else at approx. line 1865 as the following:
-
- #if ! defined (ACE_LACKS_RWLOCK_T)
- #include <synch.h>
- typedef rwlock_t ACE_rwlock_t;
- #endif // ! ACE_LACKS_RWLOCK_T
-
- Finally, the ACE_idtype_t type was also undefined. To fix this,
- moved the typedef from within the #if defined (ACE_HAS_STHREADS) ||
- defined (DIGITAL_UNIX) block and create a new ifdef block:
-
- #if defined (ACE_HAS_IDTYPE_T)
- typedef idtype_t ACE_idtype_t;
- #else
- typedef int ACE_idtype_t;
- #endif
-
- Thanks to Chris Lahey <CLahey@cccis.com> for his through help at
- recognizing and fixing these problems.
-
-Fri May 15 09:38:37 1998 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: redirect cvs tag output to /dev/null.
-
- * performance-tests/Misc/context_switch_time (main): fixed
- printout of yield test time for other than the default
- number of iterations.
-
-Fri May 15 09:29:57 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.5.6 released.
-
-Fri May 15 08:25:19 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Service_Config.cpp: fixed and added template instantations.
-
- * ace/Svc_Conf_y.cpp,etc/Svc_Conf_y.cpp.diff: removed compile
- warnings.
-
- * include/makeinclude/platform_sunos5_g++.GNU: use PIC instead of pic,
- because the TAO orbsvcs lib needs it.
-
- * Makefile: added .PHONY for phony targets.
-
-Fri May 15 02:47:35 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.5 released.
-
-Fri May 15 02:42:06 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.4 released.
-
-Thu May 14 15:28:42 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-kcc-common.h: Added the ACE_HAS_USING_KEYWORD to the
- config file. Thanks to Ben Eng <ben@jetpen.com> for reporting
- this.
-
- * examples/Service_Configurator/Misc: Updated the Timer_Service
- test to demonstrate the new service configurator feature. It's
- AWESOME!
-
- * ace/Svc_Conf.h,
- ace/Svc_Conf.l:
- Added a super-cool new feature that allows us to parse service
- configurator directives from a string rather than from a
- svc.conf file.
-
- * ace/Svc_Conf.l (yywrap): Free up ace_yy_current_buffer in yywrap
- to prevent a memory leak. Thanks to Paul Motuzenko
- <p_motuzenko@hotmail.com> for reporting this.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp: Enhanced the
- implementation to make it easier to follow and to support the
- latest features of CPP-inclient.cpp.
-
- * ace/OS.h (ACE_OS): Added a wrapper for strcspn(3s).
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp: Added more
- cool changes to the CPP-inserver.cpp example and renamed it.
-
-Thu May 14 14:46:02 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h: Moved the definition of ACE_Export before it is used.
-
-Thu May 14 13:22:46 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Message_Block.h:
- * ace/Message_Block.cpp:
- The static duplicate() method can take pointer to a const
- Message_Block.
-
-Wed May 13 18:46:28 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-{inserver,inclient}.cpp: Added
- profile timing to the server so we can compute socket
- performance metrics. Also generalized the tests so we can
- experiment with both oneway and twoway calls.
-
-Wed May 13 19:20:27 1998 James C Hu <jxh@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS.cpp: Added a substitute gets implementation for when
- ACE_LACKS_GETS. The substitute is actually safer than gets, so
- I may end up making gets call the new routine instead of
- Standard C's.
-
- * ace/config-g++-common.h: Changed the g++ common file so that
- 2.8.1 acts like EGCS does. This worked on Solaris 2.5.1. We'll
- see how other's fare.
-
-Wed May 13 18:13:12 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.3 released.
-
-Wed May 13 11:29:56 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/Synch-Benchmarks/Options.cpp (print_results):
- My previous change to add print_results functionality when
- ACE_HAS_GETRUSAGE broke this on Win32.
-
- * ace/config-g++-common.h (ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS):
- Made this macro defined for all versions of g++.
-
-Wed May 13 09:26:48 1998 David L. Levine <levine@cs.wustl.edu>
-
- * many *.{h,i,cpp,idl} files: inserted RCS keyword string.
-
-Wed May 13 00:35:25 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace: Added ACE_Export to a bunch of class in ACE. Thanks to
- Gonzalo A. Diethelm (gonzo@ing.puc.cl) for pointing this out.
-
-Tue May 12 15:16:04 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-WinCE.h:
- * ace/OS.h: Stopped using non-static object manager for CE. This
- is causing some problem at process shutdown.
-
- * ace/Acceptor.cpp: Made CE friendly.
-
- * ace/Process.cpp ([~]ACE_Process_Options): Moved things around to
- avoid compilation errors on CE. Secret: CE doesn't have
- environment variables.
-
-Tue May 12 13:28:05 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- The ACE_INLINE_FOR_GNUC macro must be defined (as the null
- token) if ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTION is not
- defined.
-
-Tue May 12 12:30:55 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/README:
- * ace/config-g++-common.h (ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS):
- Added this new macro to get around a bug which only happens in
- GNUC 2.7.xx. It mistakenly refers to the template definition as
- the place where a function is used.
-
- * ace/OS.h (ACE_INLINE_FOR_GNUC): Added the macro to fix the GNUC
- bug.
-
- * ace/Thread_Manager.h: Added above macro to set_next and
- get_next.
-
-Tue May 12 12:11:36 1998 Bob Laferriere <laferrie@gsao.med.ge.com>
-
- * ace/Process.{h,cpp}: modifications to make the environment buffer
- and number of environment variables tunable in the constructor.
- I also fixed a logic error which previously attempted to write
- beyond an array bounds of the array of pointers into the
- environment buffer. I made the environment_argv_ buffer tunable
- as well. The new constructor takes the old hardcoded static sizes
- as the default dynamic sizes for backwards compatiblity.
- The behavior is to return -1 if the maximum buffer size or
- maximum number of environment arguments has been reached in
- following with the prior behavior. I opted not to make the members
- grow as needed so the class would still follow it's prior behavior.
- This would be simple to add, however.
-
-Tue May 12 08:29:50 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Malloc.cpp (ACE_Allocator::instance): replaced dynamic
- allocation of the default ACE_Allocator with allocation from
- the data segment. Thanks to Ben Eng <ben@jetpen.com> for
- providing the stack trace that revealed the problem.
-
- * ace/Malloc.h: added comments to not add data members to
- ACE_Allocator or ACE_New_Allocator.
-
- * bin/g++dep: changed PATH to pick up /project/doc/pkg/gnu/bin/g++,
- and removed GNUG_INCLUDE. Thanks to Ganesh Pai <gpai@voicetek.com>
- for reporting problems with the old version on Linux.
-
-Tue May 12 02:59:27 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/Misc/childbirth_time.cpp: Added ACE_OS::sleep
- (0) before all timing sections start. This ensures we own a
- fresh time slice when the timing begin and reduce the chances of
- getting preempted
-
-Tue May 12 00:42:05 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/dsp2dsp.pl: This file clones a new MSVC 5.0 dsp file based
- on setting from another dsp file. It is most useful in adding
- new project files into tests/.
-
- * tests/WinCE/*: New project files. Updated the workspace.
- Please see CE-status for the current progress.
-
- * tests/Buffer_Stream_Test.cpp:
- * tests/Conn_Test.cpp:
- * tests/Enum_Interfaces_Test.cpp:
- * tests/Handle_Set_Test.cpp:
- * tests/Hash_Map_Manager_Test.cpp:
- * tests/Message_Block_Test.cpp:
- * tests/Reactors_Test.cpp:
- * tests/Thread_Manager_Test.cpp:
- * tests/Thread_Mutex_Test.cpp: Made CE friendly.
-
- * tests/test_config.h: Moved some common definitions shared among
- CE and other platforms out.
-
- * ace/Acceptor.cpp:
- * ace/Acceptor.h:
- * ace/Connector.cpp:
- * ace/Connector.h:
- * ace/Stream.cpp:
- * ace/Svc_Handler.cpp:
- * ace/Svc_Handler.h:
- * ace/Synch.h:
- * ace/Synch.i: CE stuff.
-
- * ace/config-WinCE.h: Defined ACE_DEFAULT_SERVER_HOST in UNICODE
- here to overwrite the default setting.
-
- * ace/Synch.i (ACE_Lock): CE needs a default ctor here.
-
-Mon May 11 15:43:01 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/WinCE/ce_tests.dsw:
- * tests/WinCE/Atomic_Op_Test.dsp:
- * tests/WinCE/Barrier_Test.dsp:
- * tests/WinCE/Basic_Types_Test.dsp:
- * tests/WinCE/Map_Manager_Test.dsp: Added/Updated project files.
-
- * tests/Atomic_Op_Test.cpp:
- * tests/Barrier_Test.cpp:
- * tests/Basic_Types_Test.cpp: Made them CE friendly.
-
- * ace/config-WinCE.h: Only define ACE_LACKS_INLINE_FUNCTIONS when
- building debug version of ACE for SH series CPU.
-
- * WindozeCE/WindozeCEDlg.cpp: Updated the initial message after the
- display window but before ACE console progrm started.
-
-
-Mon May 11 15:43:01 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.{i,cpp}: Moved CE's impelmentation of ACE_OS::fprintf to
- cpp file.
-
-Mon May 11 15:15:24 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Thread_Manager.h:
- Removed bogus ACE_INLINE macros in class declaration, they were
- making the SGI compiler *very* unhappy.
-
-Mon May 11 15:11:11 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (ctime_r): Renamed the fmtstr to
- ACE_OS_CTIME_R_FMTSTR for we may need to use similar scheme to
- fix other bugs in the future.
-
-Mon May 11 14:50:47 CDT 1998 Everett Anderson <eea1@cs.wustl.edu>
-
- * ace/Name_Proxy.cpp: Changed one last recv to recv_n.
-
-Mon May 11 13:14:22 1998 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.{cpp,h,i}: (new) Red-Black Tree data structure
- implementation. A Red-Black Tree is an efficient
- self-balancing binary tree that uses recoloring to
- minimize rotations while rebalancing on insertion or
- deletion of a tree node. Items in the tree are stored
- according to a key provided at insertion. This
- implementation is an OO rendition of the ADT described
- in Cormen, Leiserson, Rivest, "Introduction to Algorithms"
- (c) 1990, MIT.
-
-Mon May 11 12:31:41 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: Made ACE_LD_SEARCH_PATH, ACE_LD_SEARCH_PATH_SEPARATOR_STR,
- ACE_DLL_PREFIX, ACE_DLL_SUFFIX settable via config.h.
-
- * ace/config-hpux-10.x.h:
- ace/config-hpux11.h: Set ACE_LD_SEARCH_PATH, ACE_DLL_SUFFIX.
- Thanks to Kirill Rybaltchenko and David Levine for identifying
- this problem.
-
-Mon May 11 12:27:05 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.cpp (send_n): retry if ACE::send () fails due to
- EWOULDBLOCK. Thanks to Dave Brackman <dbrackma@OhioEE.com>
- for reporting this.
-
- * tests/Env_Value_Test.cpp (main): check return values of
- options.setenv () calls. Thanks to Bob Laferriere
- <laferrie@gsao.med.ge.com> for recommending this.
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: instead of
- using GNU ranlib386 after using GHS ax for i386 targets, just
- use GNU ar386.
-
- * ace/gethrtime.cpp: added some comments about GHS asm support.
-
- * java/netsvcs/{Logger,Time}/Makefile,
- java/tests/netsvcs/Logger/Makefile:
- replaced WRAPPER_ROOT with ACE_ROOT.
-
-Mon May 11 05:14:18 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-WinCE.h: Added ACE_HAS_NON_STATIC_OBJECT_MANAGER. CE
- console programs have to set this flag because the main
- functions is actually renamed and running in a threads.
-
- * tests/test_config.h: Excluded class and macros to redirect
- debugging messages to files under CE. This make debugging a bit
- easier but we should eventually put them back under CE.
-
- * tests/Map_Manager_Test.cpp: Made CE friendly.
-
- * ace/Hash_Map_Manager.cpp: Some ACE_ERROR were not CE friendly.
-
- * ace/Profile_Timer.{h,i}:
- * ace/Synch.{h,i}: Moved inline function definitions to Synch.i
- file. Windows CE can't grok any inline at all.
-
-Mon May 11 02:43:45 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/Misc/childbirth_time.cpp (main): Added
- a new method for benchmarking ACE_Thread_Manager::spawn_n.
- Added other cosmetic changes.
-
-Sun May 10 23:20:36 1998 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Token.cpp: Adding more debugging statements.
-
- * ace/Asynch_Acceptor.cpp (should_reissue_accept): Added template
- method that decides whether a new asynchronous accept should be
- issued.
-
-Sun May 10 23:28:57 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp(inherit_log_msg):
- * ace/Log_Msg.cpp (thr_desc): Wait on Thread_Descriptor's lock
- instead of the "global" Thread_Manager lock.
-
- * ace/Thread_Manager.cpp: Moved acquire_release() from
- ACE_Thread_Manager to ACE_Thread_Descriptor. This method is
- called from ACE_Log_Msg::thr_desc to prevent a thread from using
- its thread descriptor before it is fully built. The change
- relieve spwaned threads from waiting for other threads created
- in the same spwan_n call to be created before it can start
- running.
-
- (insert): Added an extra argument to control whether we want to
- insert the newly created thread into ACE_Thread_Manager's thread
- table or not. Notice that it is default to 1 to remain the
- original behavior in case anyone is using this class/function
- directly in their code. However, in ACE_Thread_Manager, we
- always prevent it from inserting because we always register
- thread descriptors from spawn_i.
-
-Sun May 10 01:51:29 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Renamed ACE_OS::Time_To_The_Beginning to
- ACE_OS::FILETIME_to_timval_skew.
-
- * ace/OS.cpp: Found the problem in ACE_OS::ctime_r. An internal
- compiler bug (?) caused the bug. The solution: move the format
- string out as a const string instead of putting it in sprintf
- directly. Weird.
-
- * ace/Log_Record.{h,cpp}: Made priority_name_ and its access
- function CE friendly.
-
-Sat May 9 20:09:13 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.h: Changed the type of lock used by
- <thread_desc_freelist_> to ACE_SYNCH_MUTEX. Or else, it won't
- compile on platforms that doesn't support thread. Thanks to
- Woody Zenfell <woody@arl.wustl.edu> for reporting this.
-
-Fri May 08 22:29:01 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp (subscribe): CE UNICODE related fix.
-
-Fri May 8 14:18:46 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.h (ACE_Thread_Descriptor): Added ACE_INLINE
- to declarations of set_next and get_next to get around a bug in
- a version of g++.
-
-Fri May 8 11:57:23 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Map_Manager.cpp: Fixed a bug where we weren't calling
- close_i() when resizing the buffer.
-
- * ace/Thread_Manager.cpp (set_grp): In
- ACE_Thread_Manager::{get,set}_grp we must check to see that we
- have a valid pointer after the ACE_FIND. Otherwise a seg fault
- occurs. Thanks to Chris Lahey <CLahey@cccis.com> for reporting
- this.
-
-Fri May 08 09:47:50 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-common.h: only use ACE_HAS_POLL with glibc2.
- Thanks to Saneyasu <sane@sail.t.u-tokyo.ac.jp> for reporting
- this.
-
- * ace/OS.i (sleep): On Linux without ::poll () (prior to glibc),
- copy the ACE_Time_Value argument because the system modifies it.
-
- * include/makeinclude/platform_osf1_4.0.GNU: moved -lm from LIBS
- to MATHLIB.
-
- * performance-tests/UDP/Makefile: added $(MATHLIB) to LDLIBS.
-
- * tests/Aio_Platform_Test.cpp (have_asynchio): use
- _SC_LISTIO_AIO_MAX instead of _SC_AIO_LISTIO_MAX if it's
- #defined. It is on DU 4.0.
-
-Fri May 08 08:43:42 1998 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_gcc.GNU: Added $(PIC) to
- definition of SOFLAGS. Thanks to Kirill Rybaltchenko
- <Kirill.Rybaltchenko@cern.ch> for this fix.
-
- * ace/SOCK_Dgram_Mcast.cpp (subscribe): Added code for Win32 so that
- if a subscribe is done without specifying an interface, the mcast
- address is subscribed to on each non-loopback interface. This works
- around a bug in NT's winsock in the presence of multiple IP
- interfaces. Won't hurt 95 - will just run a bit slower than it
- otherwise would.
-
- * examples/Reactor/Multicast/Multicast.{mdp,mak}: Added MSVC 4.2
- workspace for this example.
-
-Fri May 8 03:43:25 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.{h,cpp}: Added yet one more member variable
- into Thread_Descriptor to keep track of registration of
- Thread_Descriptors. By adding this variable, we can avoid an
- extra locking in remove_thr for most cases (normal cases ;-).
- Thanks to the inspiration from Arturo Montes
- <mitosys@colomsat.net.co>.
-
-Thu May 07 22:06:13 1998 Ben Eng <ben@jetpen.com>
-
- * ace/config-kcc-common.h,config-linux-{common,kcc}.h: updated
- KCC/Linux support, and integrated into config-linux-common.h.
-
-Thu May 7 20:32:20 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp
- (main): Oops, we need to move the unlink() AFTER we create the
- file... Thanks to Sandro Doro <doros@aureus.sublink.org> for
- reporting this.
-
-Thu May 07 19:08:22 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.2 released.
-
-Thu May 7 14:10:41 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Timer_Hash_T.h:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Heap_T.cpp:
- * ace/Timer_Wheel_T.cpp:
- The classes had a INHERITED typedef for the base class, but
- Solaris defines a macro by the same name. This causes very weird
- problems with EGCS (and probably other g++ versions).
-
-Thu May 07 04:15:23 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Profile_Timer.cpp (elapsed_time): Treat Win32 differently
- so I can use this function with WinCE Emulation build. The
- problem is that Win32 can't convert __int64 to double.
-
- * ace/OS.{h,cpp} (ACE_Time_Value): (Win32 only) Added a new static
- const member (Time_To_The_Beginning) of type DWORDLONG (unsigned
- _int64) to adjust the time skew between FILETIME and POSIX time.
- Changed the type of _100ns to ULARGE_INTEGER to eliminate
- unnecessary computation.
-
-Wed May 6 23:58:40 1998 Carlos O'Ryan <coryan@swarm.cs.wustl.edu>
-
- * ace/XtReactor.cpp:
- The signature for the open() method of the notify pipe has been
- modified.
-
-Wed May 6 23:28:47 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp:
- Fixed a couple of mistakes that were causing the UNIX domain
- sockets not to work. Thanks to Sandro Doro
- <doros@aureus.sublink.org> for recommending this.
-
- * performance-tests/Misc/context_switch_time.cpp (svc): An 'i'
- was being defined twice, gorp! It's fixed now!
-
-Wed May 06 22:00:14 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-common.h: only #define
- ACE_HAS_4_4BSD_SENDMSG_RECVMSG with __GLIBC__. Thanks
- to Chanaka Liyanaarachchi <chanakal@ittc.ukans.edu> for
- reporting the lack of CMSG_DATA support on RedHat 4.2.
-
-Wed May 06 18:35:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (get_ip_interfaces): Reset buf_len before each call to
- get_reg_key to get registry value for device's IP address. It gets
- overwritten on each call to get_reg_key.
-
- * include/makeinclude/platform_mvs.GNU: Added definition for PIC.
- Though not related to position-independent-code, it is a switch that
- makes shared lib builds work right. Removed the old SOBUILD def.
- Thanks to Chuck Gehr for helping with this strategy.
-
-Wed May 06 16:32:53 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Filecache.h (ACE_Filecache_Handle): Removed
- ACE_EXPORT_DECLARE and specified ACE_Export directly for
- ACE_Filecache_Handle and ACE_Filecache in calss declarations.
-
- * ace/Thread_Manager.{h,i,cpp}: A bug was found by Arturo Montes
- <mitosys@colomsat.net.co> who noticed that when a thread was
- spawned and then exited immediately, its thread descriptor might
- get freed before even get registered into the thread table kept
- by the Thread_Manager. Although it doesn't make any sense to
- spawn a thread just to let it return immediately, a middleware
- shouldn't restrict the way how users want to use it.
-
- I got around this problem by adding a lock into
- Thread_Descriptor. Before spawning a thread, the Thread Manager
- will first grab the lock. It won't release the lock until
- calling append thread, at which point, the Thread_Descriptor of
- the thread has been stashed into the table. Removing the
- Thread_Descriptor also requires to hold this lock and release
- the lock before the Thread_Descriptor is "freed." Therefore,
- if a thread exit before its Thread_Manager ever gets a chance to
- register it, it will block and waiting.
-
- The type of the lock is defined by ACE_DEFAULT_THREAD_MANAGER_LOCK
- which, by default, is ACE_Thread_Mutex. User can change the
- definition by defining in their config.h file. For example, if
- you can be sure that all your threads will run for an extended
- long time (which, in most case, should be true,) you can disable
- this feature by defining this as a ACE_Null_Mutex to speed up
- spawning and termination of threads.
-
- (thread_desc_freelist_): Added a free list to Thread_Manager to
- recycle Thread_Descriptor. By default, this free list
- pre-allocate 0 Thread_Descriptor and has low-water-mark of 1,
- increment count 1 and a huge (25000) high water mark. That is,
- if you use a Thread_Manager for an extended period of time, you
- won't have to dynamically allocate memory for Thread_Descriptor
- for every thread after your system is stable (the thread count
- fluctuates between some certain values.)
-
- There are two ways to change the settings. First, by defining
- ACE_DEFAULT_THREAD_MANAGER_LWM, ACE_DEFAULT_THREAD_MANAGER_HWM,
- ACE_DEFAULT_THREAD_MANAGER_INC, and
- ACE_DEFAULT_THREAD_MANAGER_PREALLOC in your <config.h> file.
- This changes the default setting of your ACE. (The global
- Thread_Manager use this setting.) Or, you can specify these
- values when creating a Thread_Manager.
-
- * ace/Free_List.cpp (alloc,dealloc): Don't grab the lock in these
- two functions. They only get called from add() and remove()
- which hold the lock before making the call. Actually, they also
- gets called from the constructor and destructor. But that
- shouldn't be a problem.
-
- * tests/Reactor_Notify_Test.cpp (run_test): Moved the #endif of
- ACE_HAS_THREADS down to avoid compilation error on non-threaded
- platforms.
-
-Tue May 5 14:12:08 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU: Added a
- platform config file courtesy of Arturo Montes
- <mitosys@colomsat.net.co>.
-
-Tue May 05 08:35:18 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-irix6.x-sgic++-nothreads.h: updated the determination
- of ACE_SIZEOF_LONG_DOUBLE. Thanks to Bob Laferriere
- <laferrie@gsao.med.ge.com> for providing the fix.
-
- * include/makeinclude/platform_sunos5_g++.GNU: use -gstabs+ instead
- of -g on Solaris86.
-
- * etc/Svc_Conf_l.cpp.diff: updated. It's magic, Nanbor :-)
- The problem seems to be due to an old version left in
- /tmp/Svc_Conf_l.cpp, which confuses flex.
-
- * ace/config-linux-common.h,config-g++-common.h: moved
- ACE_HAS_PENTIUM (with i386) from config-linux-common.h
- to config-g++-common.h.
-
- * ace/config-linux-common.h: added ACE_HAS_POLL, so we
- don't use ::select () in ACE_OS::sleep (). Linux's
- ::select () modifies its timeout argument!
-
- * ace/OS.i (gethrtime): added RDTSC support for all g++
- _and_ ACE_HAS_PENTIUM platforms.
-
- * ace/config-vxworks5.x.h: added ACE_HAS_PENTIUM with GHS
- on Intel platforms.
-
- * ace/Makefile: for GHS on Intel 8086, build gethrtime.cpp.
- It's used to provide a high-resolution time using the
- Pentium RDTSC instruction. I don't know how to get
- GHS' asm to do it, so it uses g++.
-
- * ACE-INSTALL.html: added note about carefully installing
- egcs on Linux. Thanks to Kurt Sussman <kls@best.com> for
- tracking down the cause of mysterious link failures.
-
-Tue May 05 02:15:49 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Svc_Conf_l.cpp: I know, I know. I shouldn't mess with this
- file directly. But I couldn't manufacture this file even with
- the stock Svc_Conf.l using Doug's flex. So, I reckon I'll just
- check this in now and fix the Svc_Conf_l.diff later.
-
- * ace/Service_Config.{h,cpp} (process_directive): Standard CE
- stuff.
-
- * WindozeCE/WinAdapter*.*:
- * WindozeCE/WindozeCE*.*: Replaced the old adapter for CE with a
- new one. The new version allows uses to scroll thru the
- "console" output.
-
-Mon May 04 17:09:39 1998 David L. Levine <levine@cs.wustl.edu>
-
- * performance-tests/Misc/context_switch_time.cpp: lots of
- cleanup. The main changes were the use of ACE_THR_PRI_FIFO_DEF
- for the default therad priority, and removal of some
- unnecessary thr_yield () calls.
-
- * tests/Aio_Platform_Test.cpp: added arguments to main (),
- removed #includes that are already in ace/OS.h, and added
- ACE_START_TEST/ACE_END_TEST calls.
-
-Mon May 4 13:08:18 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/config-sunos5.6.h: Removed a mysterious "30" at the end of
- an #undef. Thanks to J. Russell Noseworthy
- <rnosewor@objectsciences.com> for reporting this problem.
-
-Mon May 04 08:49:09 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): with ACE_NEEDS_LWP_PRIO_SET,
- added the call to ACE_OS::thr_setprio () so that the LWP priority
- will be set if running in the RT class. Applications no longer
- have to be concerned with this.
-
- * performance-tests/Misc/preempt.cpp (svc): removed
- ACE_OS::thr_setprio () calls to set LWP priority, now that ACE
- handles that internally.
-
- * include/makeinclude/platform_*linux.GNU: added "s" to
- ARFLAGS, so that ranlib is no longer necessary.
-
-Sun May 03 22:37:38 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Parse_Node.cpp (open_handle): WinCE doesn't support
- ExpandEnvironmentStringA.
-
- * ace/config-win32-common.h: Only define ACE_HAS_GETRUSAGE when
- ACE_HAS_WINNT4 != 0. Thanks to Paul Motuzenko
- <p_motuzenko@hotmail.com> for reporting this.
-
-Sun May 03 01:58:47 1998 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.5.1 released.
-
-Sat May 2 14:35:04 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * tests/Reactor_Notify_Test.cpp: Factored out some common code to
- make the test more concise.
-
- * tests/Reactor_Notify_Test.cpp: Modified the test to check
- whether our new mechanism for disabling the notify pipe works
- correctly.
-
- * ace/{WFMO,Select}_Reactor[_Impl]: Added the
- "disable_notify_pipe" flag in the constructor in order to
- disable this feature and save on descriptors if they aren't
- required. Thanks to Tom Venturella <tventurell@mdc.com> for
- motivating this.
-
-Sat May 02 Alexander Babu Arulanthu <alex@merengue.cs.wustl.edu>
-
- * tests/Aio_Platform_Test.cpp: Included this test program for
- testing a platform for Asynchronous I/O options.
- * tests/Makefile (BIN): Added Aio_Platform_Test.
-
-Fri May 01 17:52:32 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Arg_Shifter.{h,cpp}: Added macros ACE_Export and
- ACE_BUILD_DLL respectively.
-
- * ace/ACE_Library.mak:
- * ace/ace_{dll,lib}.dsp: Added Arg_Shifter.cpp into project.
-
-Fri May 1 13:52:32 1998 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
-
- * ace/Addr: Made the destructor for ACE_Addr virtual so that
- subclasses can be deleted correctly. Thanks to Wei Chiang
- <chiang@horizon.ntc.nokia.com> for reporting this.
-
- * ace: Added Arg_Shifter from TAO and renamed it to
- ACE_Arg_Shifter.
-
- * ace/IOStream_T.i (recv_n): ACE_IOStream<STREAM>::eof (void) had
- a subtle bug if it is called when a get operation (>>) has not
- failed. Thanks to James CE Johnson <ace-users@lads.com> for
- reporting this bug.
-
- * examples/Connection/misc/Connection_Handler.cpp: Make sure to
- activate() each active object using THR_DETACHED so we don't run
- out of threading resources. Thanks to Brad Walton
- <brad.walton@transnexus.com> for reporting this.
-
- * ace/Timer_Queue_Adapters.cpp: Rather than returning the result
- of schedule_ualarm(), the
- ACE_Async_Timer_Queue_Adapter<TQ>::schedule() method should
- return the timer id. Thanks to James Garrison
- <jhg@austx.tandem.com> for reporting this.
-
- * examples/System_V_IPC/SV_Message_Queues: Renamed the so-called
- "ACE_Message_Block" to "Message_Block" so it wouldn't be as
- confusing. Thanks to Ganapathi <guns@fs.IConNet.NET> for this
- suggestion.
-
-Fri May 01 17:52:32 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE_Library.mak:
- * ace/ace_{dll,lib}.dsp: Added Arg_Shifter.cpp into project.
-
-Fri May 01 14:09:21 1998 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: Changed ACE_hrtime_t from signed to unsigned on Win32
- to insure correct results from ACE_High_Res_Timer::elapsed_time
- calculations. Fixes bug P87.
-
-Fri May 01 11:52:47 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Forgot to redefine ASYS_INLINE after #undef it.
-
- * ace/OS.i (last_error): On Win32, this should also update errno
- after calling SetLastError (). Thanks to Steve for pointing
- this out. Fixes bug P88.
-
-Fri May 01 10:01:09 1998 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.6.h: replaced config-sunos5.6-sunc++-4.x.h
- with this config file, which supports both Sun C++ and g++.
-
- * ace/OS.i (gethrtime): for the default (::gettimeofday) case,
- use 64-bit instead of 32-bit arithmetic by casting to ACE_hrtime_t.
-
- * ace/Basic_Types.{h,i}: added ACE_U_LongLong::operator *.
-
- * ace/Env_Value_T.cpp: added #include of Env_Value_T.h.
-
-Fri May 1 00:35:40 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU
- (ACE_LDSO_Version_Number): Fixed the problem of not able to
- parse a formal release number from ace/VERSION.
-
-Thu Apr 30 15:53:58 1998 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE.{h,i,cpp}:
- * DEV.{h,i,cpp}:
- * DEV_Connector.{h,i,cpp}:
- * DEV_IO.{h,i,cpp}:
- * Date_Time.{h,i,cpp}:
- * FIFO_Recv.{h,i,cpp}:
- * FIFO_Recv_Msg.{h,i,cpp}:
- * FIFO_Send.{h,i,cpp}:
- * FIFO_Send_Msg.{h,i,cpp}:
- * FILE.{h,i,cpp}:
- * FILE_Connector.{h,i,cpp}:
- * FILE_IO.{h,i,cpp}:
- * IO_SAP.{h,i,cpp}:
- * IPC_SAP.{h,i,cpp}:
- * LSOCK.{h,i,cpp}:
- * LSOCK_CODgram.{h,i,cpp}:
- * LSOCK_Connector.{h,i,cpp}:
- * LSOCK_Dgram.{h,i,cpp}:
- * LSOCK_Stream.{h,i,cpp}:
- * Log_Record.{h,i,cpp}:
- * Pipe.{h,i,cpp}:
- * SOCK.{h,i,cpp}:
- * SOCK_CODgram.{h,i,cpp}:
- * SOCK_Connector.{h,i,cpp}:
- * SOCK_Dgram.{h,i,cpp}:
- * SOCK_Dgram_Bcast.{h,i,cpp}:
- * SOCK_Dgram_Mcast.{h,i,cpp}:
- * SOCK_IO.{h,i,cpp}:
- * SOCK_Stream.{h,i,cpp}:
- * SPIPE.{h,i,cpp}:
- * SPIPE_Connector.{h,i,cpp}:
- * SPIPE_Stream.{h,i,cpp}:
- * SV_Message_Queue.{h,i,cpp}:
- * SV_Semaphore_Complex.{h,i,cpp}:
- * SV_Semaphore_Simple.{h,i,cpp}:
- * UPIPE_Acceptor.{h,i,cpp}:
- * UPIPE_Connector.{h,i,cpp}: Added inline control for these
- supposedly default inline functions.
-
- * ace/config-WinCE.h: Added ACE_LACKS_INLINE_FUNCTIONS.
-
- * ace/OS.h: Added a new macro ASYS_INLINE for platforms that don't
- support inline properly. This is controlled by the macro
- ACE_LACKS_INLINE_FUNCTIONS.
-
- Walked thru all macros and indented them properly.
-
- * ace/README: Added documentation for ACE_LACKS_INLINE_FUNCTIONS.
diff --git a/ChangeLogs/ChangeLog-99a b/ChangeLogs/ChangeLog-99a
deleted file mode 100644
index 2ad076c02b8..00000000000
--- a/ChangeLogs/ChangeLog-99a
+++ /dev/null
@@ -1,13411 +0,0 @@
-Sat Jul 31 20:29:17 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp: Moved the comment regarding *printf to where it
- belongs.
-
- * ace/OS.h: Removed an extra trailing semicolon following
- IPPROTO_TCP.
-
-Sat Jul 31 19:27:50 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp:
- Now that position-independent malloc works, I finished
- integrating all the features in this test.
-
-Sat Jul 31 19:06:05 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Pipe.cpp:
- The third argument to ACE_OS::setsockopt() is a "const char*" no
- sense in casting it to void*!
-
-Sat Jul 31 18:55:34 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Asynch_IO_Impl.{h, cpp}:
- Fixed compiler errors: redefinition of destructors of the
- classes in this file. Removed inline declaration of destructors
- and defined those which hadnt been defined.
-
-Sat Jul 31 17:54:32 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * etc/enforce_ace_try.diff:
- Apply this patch file and then compile to enforce the correct
- use of ACE_TRY macros. It renames the exception(), clear() and
- print_exception() methods in the CORBA::Environment class.
-
-Sat Jul 31 17:39:42 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Timeprobe_T.cpp:
- Print timeprobe results with higher precision (3 decimal
- digits), this is useful for extremely fine grained analysis
- where just microseconds won't cut it.
-
-Sat Jul 31 12:07:48 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace: Updated comments in all the header files so that references
- to method names like ACE_Event_Handler::handle_input() were
- changed to <ACE_Event_Handler::handle_input>. This change
- enables the class2man scripts to use the appropriate "code" font
- for these names in the auto-generated documentation.
-
- * ace/Asynch_IO_Impl: Moved the
- virtual destructors for all the ACE_Asynch_*_Impl classes into
- the *.cpp file, which is where they belong.
-
- * ace/Functor_T.h: Moved the destructor of ACE_Command_Callback
- out of the header file and into the *.cpp file.
-
- * ace/Sched_Params.h: Updated the documentation a bit to mention
- the ACE_SCHED_{FIFO,RR,OTHER} policies explicitly. Thanks to
- Peter Mueller <pmueller@decrc.abb.de> for motivating this.
-
- * ace/Synch_T: Moved the implementations of ACE_Read_Guard and
- ACE_Write_Guard out of the class header and into the *.i file,
- which is where they belong.
-
- * ace/Based_Pointer_T.i (operator *): In order to distinquish a
- "NULL" pointer we keep a value of -1 in target.
-
- * ace/Based_Pointer_T.i: I was forgetting to check if
- rhs == 0 for the ACE_Based_Pointer<> class. This leads to weird
- behavior when assigning a "NULL" pointer.
-
- * examples/Reactor/Misc/notification.cpp: Cleaned up the program so
- that it looks better and doesn't crash and burn when signals occur.
-
- * ace/Pipe.cpp (open): We now set the default size of the
- ACE_Pipes that are implemented as Internet or UNIX-domain
- sockets to ACE_DEFAULT_MAX_SOCKET_BUFSIZ. This will speed up
- the Reactor's notify() method and prevent it from deadlocking as
- quickly. Thanks to Detlef Becker <Detlef.Becker@med.siemens.de>
- for testing this out.
-
- * ace/OS.h: Added a new macro called ACE_IPPROTO_TCP that factors
- out the differences between PHARLAPs and "normal" systems.
-
- * ace/Strategies_T.{i,cpp}: Added some additional ACE_ERROR printouts
- if open() methods fail in constructors.
-
- * ace/Strategies_T: The logic for creating a new Singleton wasn't
- dynamic enough. It's now intelligent enough to create a new
- SVC_HANDLER if it's not given one. Thanks to Hao Ruan
- <hruan@lucent.com> for reporting this.
-
-Sat Jul 31 15:57:16 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ACE version 5.0 released. Party on Wayne.
-
-Sat Jul 31 12:20:59 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/version_tests/version_tests.dsw:
- * tests/version_tests/Hash_Map_Bucket_Iterator_Test.dsp:
- * tests/version_tests/Cached_Conn_Test.dsp:
- * tests/version_tests/Cached_Accept_Conn_Test.dsp: Added three
- missing version_tests project files.
-
-Sat Jul 31 00:22:46 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Basic_Types_Test.dsp:
- * tests/Collection_Test.dsp:
- * tests/Dynamic_Priority_Test.dsp:
- * tests/New_Fail_Test.dsp:
- * tests/Reverse_Lock_Test.dsp:
- * tests/SOCK_Connector_Test.dsp:
- * tests/SOCK_Send_Recv_Test.dsp:
- * tests/Thread_Mutex_Test.dsp:
- * tests/Timeprobe_Test.dsp:
- * tests/Upgradable_RW_Test.dsp: Rebuilt. ACE_Init_Test.dsp is
- still broken.
-
-Fri Jul 30 10:27:31 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x.h: Allow building w/o threads - set _REENTRANT
- if not set, to pick up _r functions; move
- ACE_HAS_NONCONST_SELECT_ TIMEVAL out of the threads-only
- section.
-
-Fri Jul 30 08:36:43 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Commented out the ACE_TRACE calls in ACE_OS::mutex_lock()
- and ACE_OS::thread_mutex_lock() to avoid infinite recursion. Thanks
- to Ulf Jaehrig <jaehrig@desys.com> for reporting this.
-
-Fri Jul 30 03:33:14 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- * bin/auto_compile_wrapper:
- * bin/run_all_list.pm:
- Added options to run only the tests that do not require threads
- (-single_threaded) and that do not require the full corba
- profile (-minimum_corba). Also added options to disable the cvs
- update, to execute realclean before compiling and to print some
- debugging info.
-
-Thu Jul 29 20:44:56 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
-
- Override minimum_corba variable if it isn't set to 1 (i.e. if
- minimum_corba is not enabled). This change was needed to make
- it easier to disable some TAO ORB services, examples and tests
- that rely on CORBA features that aren't supported in the minimum
- CORBA specification.
-
-Thu Jul 29 19:04:12 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Atomic_Op.i:
- * ace/Filecache.cpp:
-
- Replaced raw ACE_*_Guards with their corresponding
- ACE_GUARD_RETURN macros. This corrects "unused variable"
- warnings when building ACE without thread support. See David's
- ChangeLog entry from Fri May 14 16:10:29 1999 for a better
- description of why this was necessary.
-
-Thu Jul 29 18:29:46 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/run_all_list.pm: Moved the RUN_LIST definition from
- auto_compile to this file to reduce the work to maintain the
- list and allow auto_compile and run_all_win32.pl to synchronize
- the tests being run.
-
- * bin/auto_compile:
- * bin/run_all_win32.pl: Removed definition of RUN_LIST and use the
- run_all_list module.
-
-Thu Jul 29 17:30:14 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Makefile[.am] (pkginclude_HEADERS): Removed Future_Node.*
- Thanks to John Tucker <jtucker@infoglide.com> and Michael Garvin
- <mgarvin@nortelnetworks.com> for reporting this.
-
-Thu Jul 29 14:47:10 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Select_Reactor_T.cpp (dispatch_notification_handlers):
-
- This code is used for picking up updates from non-owner threads.
- However, it is also useful for picking up notifications from the
- notify pipe (even though the notify is part of the I/O handle
- set in the Select_Reactor). Therefore, we have enabled this
- code for the single-threaded case also. Thanks to Irfan for
- this fix.
-
-Thu Jul 29 14:32:28 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/ACE.cpp:
- Linux without returns a different errno (EOPNOTSUPP) if the
- connector or acceptor runs out of file descriptors.
-
- * ace/OS.i:
- The Errno_Guard constructor was not using an argument in
- platforms without exceptions.
-
-Thu Jul 29 13:59:15 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.47 released.
-
-Thu Jul 29 12:32:01 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (ACE_WFMO_Reactor):
- * ace/Select_Reactor_T.cpp (ACE_Select_Reactor_T): I forgot to
- initialize <deactivated_> flag in one of the two ctors. Thanks
- to Ruediger Franke <Ruediger.Franke@decrc.abb.de> for catching
- this one.
-
-Thu Jul 29 01:04:03 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- * bin/auto_compile_wrapper:
- Updated to include the latest round of changes, new tests and
- several improvements to send email and stuff.
-
-Wed Jul 28 18:29:46 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/config-win32.h:
- Removed ACE_HAS_STD_TEMPLATE_SPECIALIZATION
- definition. See below.
-
- * ace/config-win32-common.h:
- Added ACE_HAS_STD_TEMPLATE_SPECIALIZATION
- definition, since there is a place for MSVC 6.0 stuff like this.
- Also added ACE_HAS_BROKEN_IMPLICIT_CONST_CAST
- definition for a generated code bug fix that just didn't have one version
- that would satisfy both SunCC and MSVC.
-
-Wed Jul 28 18:26:53 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp:
- * ace/Message_Block.h:
- * ace/Message_Block.cpp:
- * ace/Message_Block_T.h:
- * ace/Message_Block_T.cpp:
- Re-implemented the clone() method without data copies in a
- backwards compatible way, a new clone_nocopy() method was added
- so classes that inherit from Data_Block and only override
- clone() will work correctly.
- Also fixed the implementation of Locked_Data_Blocked because it
- is used in TAO and we need zero-copy clone() operations in that
- case.
-
-Wed Jul 28 16:16:27 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (set): Fixed a unsigned/signed conversion problem
- that caused negative usec value in ACE_Time_Value. Thanks to
- Jerry D. De Master <jdemaste@ipdinc.com> for reporting the bug.
- (FILETIME): Removed some unused macros for dealing with older
- Borland C++ compilers. Thanks to Jody and Gonzo for confirming
- this.
-
-Wed Jul 28 13:44:15 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE-INSTALL.html: Remind users to pick the right configurations
- when building from MSVC project files. Thanks to Jerry D. De
- Master <jdemaste@ipdinc.com> for suggesting this.
-
-Wed Jul 28 13:26:36 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: for VxWorks (thru Tornado 1.0.1),
- -fno-implicit-templates is broken for x86 targets,
- not all targets.
-
-Wed Jul 28 13:09:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-subsets.html: updated libACE size breakdown.
-
-Wed Jul 28 12:08:56 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp (reset_contents):
-
- Modified call to clone() so that it uses the newly added
- zero-copy semantics. A data copy was already being made in
- ACE_InputCDR::steal_from(), which also calls
- ACE_InputCDR::reset_contents(). Two data copies were being
- performed. This change reduces the number of data copies to
- one. Thanks to Carlos for this change.
-
-Wed Jul 28 11:23:36 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Message_Block.h:
- * ace/Message_Block.cpp (clone):
-
- Added argument that allows the characteristics of an
- ACE_Data_Block to be copied without copying the data that the
- ACE_Data_Block holds. This modification is part of a zero-copy
- optimization for TAO. Thanks to Carlos for implementing this
- change.
-
-Wed Jul 28 09:48:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added guideline about testing
- for definition of a macro before using it. Thanks to
- Susan Liebeskind <susan.liebeskind@gtri.gatech.edu> for
- providing this guideline.
-
-Wed Jul 28 00:06:32 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Added a new Makefile.bor file for BCB4. Thanks to Christopher
- Kohlhoff <chris@kohlhoff.com> for contributing this.
-
-Tue Jul 27 23:25:18 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp (open): Updated a
- comment to point out that we use a thread-per-connection
- concurrency model. Thanks to Raghu Nambiath
- <raghun@wipinfo.soft.net> for reporting this.
-
-Tue Jul 27 21:05:23 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_tru64_cxx.GNU (ACE_DU_SUBVERSION):
- fixed typo: -v instead of v-. Thanks to
- Doug Anderson <dla@home.com> for reporting this.
-
-Tue Jul 27 16:58:54 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/ACE.cpp (out_of_handles): Added bug-fixes for RedHat5.2 and
- FreeBSD. Thanks to James Megquier <jmegq@bbn.com> for discovering
- and testing out the bug-fix on RedHat5.2 and Russell.L.Carter
- <rcarter@pinyon.org> for sending in a patch for FreeBSD. These
- bug fixes are for: $ACE_ROOT/tests/
- Cached_Conn_Test and Cached_Accept_Conn_Test.
-
-Tue Jul 27 16:55:44 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_kcc.GNU (MATHLIB): KCC needs
- to have this defined.
-
-Tue Jul 27 16:18:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated note about shared libraries
- on VxWorks. In particular, they don't provide copies
- of global (static) variables in the library. So, "programs"
- that share a library will also share the static variables in
- the library. [Bug 86]
-
-Tue Jul 27 14:26:37 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_Dgram: Removed the QoS_Params from open() and
- ACE_SOCK_Dgram since they don't appear to be useful. Thanks to
- Vidya Narayanan <CVN065@lmpsil02.comm.mot.com> for suggesting
- this.
-
-Tue Jul 27 14:41:26 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Codeset_IBM1047.cpp: Added a static variable only for HP aC++
- to make it stop warning of an empty translation unit.
-
-Tue Jul 27 14:16:55 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (cancel_thr): This method should return
- the result of thread cancel operation if async_cancel is used.
- Thanks to Peter Mueller <pmueller@decrc.abb.de> for suggesting
- the fix.
-
-Mon Jul 26 20:50:37 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS: Addded a new pair of priority() fields as place
- holders for the forthcoming DiffServ QoS features. Thanks to
- Vidya Narayanan <CVN065@lmpsil02.comm.mot.com> for suggesting
- this.
-
-Tue Jul 27 13:28:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (getuid): removed extra ACE_TRACE with
- ACE_WIN32 or CHORUS. Thanks to Jerry D. De Master
- <jdemaste@ipdinc.com> for reporting this.
-
-Tue Jul 27 11:10:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * examples/System_V_IPC/Makefile: on VxWorks only, fixed
- so that make all, etc., work properly (by just printing
- the message that these examples aren't used on VxWorks).
-
-Tue Jul 27 10:25:41 1999 Steve Huston <shuston@riverace.com>
-
- * ACE-INSTALL.html: Added a note about required HP-UX 10.20
- patch. Updated aC++ versions.
-
- * ace/Process.{h cpp} (ACE_Process_Options::command_line): Added
- 'const' to make the entire array and contents const. Restores
- ability for users of pre-5.0 to still pass char **. Thanks to
- Bill Tovrea <gwtovrea@west.raytheon.com> for reporting this.
-
- * examples/Connection/non_blocking/Makefile: Re-added LIBS += $(ACELIB)
- (see ChangeLog, 23-Jul-1999) but did it in the section for AIX
- C Set++ and IBM C/C++ only (ifdef TEMPINCDIR). This is needed to
- generate the shared library (libConn) using those compilers.
-
-Mon Jul 26 20:50:37 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Future.h: Moved the static methods until the bottom
- of the ACE_Future_Rep class (again) to workaround a bug with
- Borland's C++ Builder. Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for reporting this (again).
-
-Mon Jul 26 20:59:23 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * websvcs/README:
- Added a brief description of the directory and its current
- contents. Thanks to Will Skunk <willskunk@homemail.com>
- for motivating this.
-
-Mon Jul 26 20:50:37 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Added support for the 'W' (UNICODE) option for
- Win32. Thanks to Valery Arkhangorodsky
- <valerya@servicesoft.com> for contributing this.
-
-Mon Jul 26 20:58:35 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/POSIX_Asynch_IO.cpp:
- * ace/WIN32_Asynch_IO.cpp: Fixed the double deletion problem of
- the result classes. Thanks to David Digby
- <DWD15274@glaxowellcome.co.uk> and Timothy Schimke
- <Schimke.Timothy@LittonDSD.com> for reporting this.
-
-Mon Jul 26 18:09:09 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/run_tests.sh (Cached_Conn_Test and
- Cached_Accept_Conn_Test): These two tests are known to leak
- memory when compiled with old gcc (g++). Therefore, we skip
- these tests when using purify and old gcc (g++). A -p option
- was added to the script to indicate that we want to run with
- purify.
-
-Mon Jul 26 17:09:09 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Object_Manager.{h,cpp},Makefile: don't create the
- ACE_TOKEN_MANAGER_CREATION_LOCK and
- ACE_TOKEN_INVARIANTS_CREATION_LOCK preallocated objects
- if the Token component isn't build. This gets rid of
- unresolved references to the ACE_Token_Proxy compoents
- on VxWorks/g++ when Token isn't built. Thanks to
- Stephane Chatre <schatre@oresis.com> for reporting this.
-
-Mon Jul 26 17:02:08 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: don't override
- OBJDIRS on VxWorks with shared libs. This allows
- make realclean to work properly on VxWorks, when shared
- lib builds are enabled.
-
-Mon Jul 26 15:06:23 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.i:
- * ace/Map_Manager.i:
- Had to cast some return values to avoid MSVC signed/unsigned
- mismatch type warnings (level 4).
-
- * ace/config-win32.h:
- Added ACE_HAS_STD_TEMPLATE_SPECIALIZATION define, so that
- ACE_TEMPLATE_SPECIALIZATION macro adds the necessart
- 'template <>' for MSVC, and so averts many many level 4
- warnings.
-
-Mon Jul 26 14:10:56 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/DLL.cpp (get_handle): Changed the check of <become_owner>
- flag to now reset <close_on_destruction> only if the
- <become_owner> is set. Thanks to Bob McWhirter <bob@werken.com>
- for pointing this out.
-
-Mon Jul 26 12:32:41 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.46 released.
-
-Fri Jul 23 18:20:11 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-sgic++-nothreads.h:
- Enabled namespaces with MIPSPro 7.2 or higher.
-
-Fri Jul 23 16:40:15 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/ACE.cpp:
- Fixed typos in error return values for ACE::execname()
-
-Fri Jul 23 14:51:48 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/Handle_L_CODgram,
- examples/Service_Configurator/IPC-tests/Handle_L_Dgram,
- examples/Service_Configurator/IPC-tests/Handle_L_Pipe:
- Cleaned this stuff up so that it builds correctly when
- ACE_LACKS_UNIX_DOMAIN_SOCKETS is enabled. Thanks to
- David for reporting this.
-
- * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe:
- Made upper_case() a method in the Handle_L_Pipe class.
-
- * examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp,
- examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp:
- Removed the bizarre hacks for SunOS4. This stuff probably
- hasn't been tested since 1992!
-
-Fri Jul 23 14:16:22 1999 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (ACE_OS::read): (only non-Win32), if call fails and
- errno is EAGAIN, change it to EWOULDBLOCK. Improve portability for
- platforms where EAGAIN and EWOULDBLOCK are different values and
- both used, like HP-UX.
-
- * ace/Malloc_T.cpp (ACE_Malloc<> ctor): Added missing newline in error
- message.
-
-Fri Jul 23 12:09:18 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i: Fixed some mismatched ifdef/endif comments.
-
- * ace/ACE.cpp (execname): Fixed some misuses of ACE_HAS_WIN32
- macros where they should have been ACE_WIN32. Thanks to Andy
- for noticing this.
-
-Fri Jul 23 11:28:17 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Memory_Pool.cpp (init_acquire): shmat() returns -1 on
- failure, not 0. Thanks to Kevin Liu
- <kliu@fitch.math.uwaterloo.ca> for reporting this.
-
-Fri Jul 23 11:35:31 1999 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Connection/non_blocking/tests_lsock_{acceptor,
- connector.cpp}: disabled if ACE_LACKS_UNIX_DOMAIN_SOCKETS.
- Thanks to Alain Magloire <alain@qnx.com> for reporting this.
-
- * examples/Connection/non_blocking/Makefile: removed unneeded
- LIBS (=$(ACELIB)) and BUILD macro definitions.
-
-Fri Jul 23 10:07:05 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_qnx_neutrino.GNU: added
- CROSS-COMPILE macro definition. Thanks to
- Alain Magloire <alain@qnx.com> for reporting this.
-
-Fri Jul 23 08:58:56 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.h: Clarified the fact that the
- ACE_Service_Config uses the Monostate pattern, so there can only
- be one of them per-process. Thanks to Ralf Kluthe
- <kluthe@iti.mu-luebeck.de> for reporting this.
-
-Fri Jul 23 07:49:31 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: added
- comment about options for producing 64-bit binaries.
- Thanks to Jeff Franks <Jeffrey_Franks@i-o.com> for
- raising this issue.
-
-Fri Jul 23 03:10:31 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T.cpp (find_or_create_svc_handler_i):
- * ace/Cached_Connect_Strategy_T.cpp (cached_connect):
-
- I had added the new_connection() method that lets go of the lock
- for the duration of the connect(), but forgot to use it in the
- above functions ;) It should be fine now.
-
- * tests/Cached_Conn_Test.cpp (cached_connect):
- * tests/Cached_Accept_Conn_Test.cpp (cached_connect):
-
- Host of the remote address should be ACE_LOCALHOST instead of
- ACE_DEFAULT_SERVER_HOST.
-
-Thu Jul 22 23:23:26 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Handle_Gobbler.h (class ACE_Handle_Gobbler): Inlined
- declaration of the functions.
-
-Thu Jul 22 20:03:54 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Acceptor.cpp: For sanity's sake, initialize all the data
- members to 0 in the ACE_Strategy_Acceptor constructor. Thanks
- to Jody Hagins <jody@atdesk.com> for reporting this.
-
- * ace/Acceptor.cpp: The service_port_ data member in the
- ACE_Strategy_Acceptor wasn't being initialized to 0. Thanks to
- Jody Hagins <jody@atdesk.com> for reporting this.
-
- * ace/Acceptor.cpp: Modified the dump() and info() methods so that
- don't do bad things if service_name_ and service_description_
- are NULL. Thanks to Jody Hagins <jody@atdesk.com> for this
- suggestion.
-
- * ace/Message_Queue_T.h: Clarified what the errnos get set to when
- timeouts occur or queues are deactivated. Thanks to
- John Forest <forestj@res.raytheon.com> for suggesting this.
-
-Thu Jul 22 16:55:14 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Stats.cpp:
- Fixed message that had a %s but no argument!
-
-Thu Jul 22 15:12:18 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Codeset_IBM1047.{h,cpp}: wrapped with #ifdef ACE_MVS
- so that the code doesn't occupy any space on platforms
- other than MVS.
-
-Thu Jul 22 14:22:41 1999 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Shared_Malloc/Malloc.cpp: fixed explicit
- template instantiations so that there are no duplications
- with ACE_LACKS_SBRK and ACE_LACKS_SYSV_SHMEM.
-
-Thu Jul 22 12:17:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: removed ACE_LACKS_FORK on PowerPC.
- All of the ACE tests that fork now succeed.
-
-Thu Jul 22 11:54:58 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/SV_Shared_Memory_Test.cpp (child): added a one
- second sleep to give the parent a chance to create the
- semaphore. This allows the test to succeed on LynxOS/PPC
- (with fork ()).
-
- * tests/Process_Mutex_Test.cpp,Process_Strategy_Test.cpp (main):
- added a one second sleep after spawning each server, to give it
- a chance to start. Also, wrapped some string literals with
- ASYS_TEXT. Again, success on LynxOS/PPC with fork ().
-
-Thu Jul 22 10:42:06 1999 Clarence M. Weaver <clarence_m_weaver@md.northgrum.com>
-
- * ACE-INSTALL.html: added steps for running the ACE tests
- on VxWorks platforms that lack NFS.
-
-Thu Jul 22 10:25:31 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Record.cpp,SString.cpp: wrapped #include of
- ace/streams.h with #ifndef ACE_LACKS_IOSTREAMS_TOTALLY.
- [Bug 84]
-
-Thu Jul 22 09:55:10 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: updated commit message guideline
- to show ChangeLogTag example.
-
-Thu Jul 22 02:15:46 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Handle_Gobbler (class ACE_Handle_Gobbler): New class that
- gobbles up handles :) This class is useful when we need to
- control the number of handles available for a process. Mostly
- used for testing purposes.
-
- Note that even though the new files are in the ace directory,
- they are not part of the ace library. The files only contain
- inline functions and Handle_Gobbler.h is only included where
- needed.
-
- * tests/Cached_Conn_Test.cpp:
- * tests/Cached_Accept_Conn_Test.cpp:
-
- Added Handle_Gobbler to the test to reduce the iterations
- required before handles run out and purging starts.
-
-Wed Jul 21 21:45:22 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Reactor.cpp: Applied ACE_NOTREACHED to several
- run_*_event_loop methods.
-
- * docs/ACE-guidelines.html: Updated ASYS_TEXT usage.
-
- * ace/RB_Tree.cpp:
- * tests/Cache_Map_Manager_Test.cpp: Applied ASYS_TEXT liberally.
-
-Wed Jul 21 21:19:36 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added note about ACE support for
- shared libraries on VxWorks. It's still under
- development.
-
-Wed Jul 21 18:38:00 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T.h (ACE_Cached_Connect_Strategy): Renamed
- <connection_cache_> to <connection_map_>.
-
- * ace/Hash_Cache_Map_Manager_T.cpp (find): Finding and updating
- the attributes is faster through the find() that uses an entry.
- Therefore, for find (key, value) and find (key) we go to
- find (key, entry) instead of going to the base class.
-
- * ace/Cached_Connect_Strategy_T.cpp:
-
- - ACE_Cached_Connect_Strategy_Ex::check_hint_i
- - ACE_Cached_Connect_Strategy_Ex::find
-
- Update the caching attributes directly since we don't do a
- find() on the cache map.
-
-Wed Jul 21 15:54:25 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/DLL.cpp: ACE_HAS_MOSTLY_UNICODE_APIS fixes.
-
- * ace/OS.i (ctime):
- * ace/OS.cpp (ctime): One copy should only be available when
- ACE_HAS_MOSTLY_UNICODE_APIS is defined. Thanks to Steve for
- reporting this.
-
-Wed Jul 21 15:21:32 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Env_Value_Test.cpp (main): use the single-process
- version if ACE_LACKS_FORK, in addition to if
- ACE_HAS_NONSTATIC_OBJECT_MANAGER.
-
- * tests/Time_Service_Test.cpp (main): neuter if ACE_LACKS_FORK,
- because the test uses ACE_Process::spawn ().
-
- Thanks to Riaz Syed <syed@Lynx.COM> for reporting these.
-
-Wed Jul 21 11:48:53 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- use full path to $(CC) in egcs version check, to avoid
- warning if it is not on the user's PATH.
-
-Wed Jul 21 11:44:19 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- Simplified the definition of the ACE_THR_PRI_*_DEF macros from
- (MIN+(MAX-MIN)/2) to ((MIN+MAX)/2), the new definition is not
- only easier to read, makes less operations (and function calls)
- but it is also safer when the the priorities are "backwards" and
- PRI_MAX < PRI_MIN
-
-Wed Jul 21 11:40:31 1999 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix4_cset++.GNU:
- * include/makeinclude/platform_hpux_aCC.GNU: Replaced lines like
- "debug=1" with ifeq (,$(debug)) debug=1 endif.
-
- * include/makeinclude/platform_aix4_g++.GNU:
- Above change for variables, also added -Wl,-bbigtoc when linking
- TAO_IDL, else it runs out of toc space. Don't do it for all links
- because bigtoc introduces a run-time performance penalty.
-
-Wed Jul 21 10:25:07 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp} (tss_base,tss_open): with TSS emulation,
- no longer return indication of whether tss_base allocated
- the ts_storage array. Instead, added an (optional)
- argument that tss_open can use for that purpose. This
- allows threads that haven't been spawned by ACE to use
- ACE's TSS emulation. Thanks to David Hauck
- <davidh@realtimeint.com> for reporting this and testing
- the fix on NT. And, thanks to Terry Rosenbaum
- <Terry.Rosenbaum@Radiology.MSU.edu> for originally reporting it.
-
-Wed Jul 21 09:34:09 1999 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp (main):
- removed declarations of unused argc and argv.
-
-Wed Jul 21 04:32:20 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Reactor.cpp:
- * ace/Reactor.h:
- * ace/Reactor.i:
- * ace/Reactor_Impl.h:
- * ace/Select_Reactor_T.cpp:
- * ace/Select_Reactor_T.h:
- * ace/Select_Reactor_T.i:
- * ace/TP_Reactor.cpp:
- * ace/WFMO_Reactor.cpp:
- * ace/WFMO_Reactor.h:
- * ace/WFMO_Reactor.i: The change was motivated by removing a race
- condition in TP_Reactor during shutdown. There was a small time
- gap between a thread running TP_Reactor event loop checking its
- end_event_loop flag to the thread actually grabing the token in
- TP_Reactor. Since the token return to its "normal" state after
- broadcasting, this thread has no chance to notice that the
- reactor has already been shutdowned and thus a deadlock occured.
- In order to fix the problem, we must keep a state indicating
- whether the reactor has been shutdowned or not in the reactor.
-
- An added benefit of adding this state is that every reactor now
- has its own run_reactor_event_loop which mimic the behavior of
- the static ACE_Reactor::run_event_loop but instead of working on
- the singleton reactor, the added function work on an instance of
- reactor object. In fact, all event_loop control functions have
- been added. They are named *_reactor_event_loop to
- differentiate their behavior. These newly added function use
- the added state in the reactor to control the looping of event
- handling. All run_reactor_event_loop methods take an extra
- argument of a function pointer. The function will be called in
- every iteration if it is set.
-
- Notice that the singleton event loop control functions are still
- available. Although these function merely forward the call to
- the singleton reactor's *_reactor_event_loop functions, you can
- still use them to control the "main" event loop. In fact, it is
- required that you use these functions to run the main event loop
- because it facilitates Service_Configurator's "reconfigure"
- feature.
-
- All reactors now also have two extra functions namely
- "deactivated" which is used to query whether the reactor will
- handle more incoming event or not, and "deactivate" which is
- used to control this new feature.
-
- An side effect of the change is that, once a reactor get
- deactivated, calls to handle_events will return -1 immediately.
- You can use the "deactivated" method to check if there's
- actually an error in the handle_events method or it simply
- returned because the reactor has been deactivated. This is also
- how the various "run_reactor_event_loop" handle the situation.
- Notice that this should not cause any backward compatibility
- problem becuase if a user is using his own end_event_loop flag,
- he will not (and should not) invoke any more handle_events after
- the flag has been set. Also, if he is using the global
- run_event_loop methods (for controling singleton reactor,) they
- should still behave the same.
-
- To summarize the change:
-
- 1. The run_event_loop control logic has been "pushed" down into
- each individual reactor. The methods supporting the logic are
- defined in ACE_Reactor and are:
-
- run_reactor_event_loop ()
- run_alertable_reactor_event_loop ()
- end_reactor_event_loop ()
- reactor_event_loop_done ()
- reset_reactor_event_loop ()
-
- 2. The origianl run_event_loop methods in ACE_Reactor are still
- working but they now use the run_reactor_event_loop methods in
- the implementation of the reactor.
-
- 3. Reactors now keep a state to indicate handle_events should be
- called or not. They can be controlled thru:
-
- deactivated ()
- deactivate ()
-
- methods.
-
-Tue Jul 20 21:31:50 1999 Jim Rogers jrogers@viasoft.com
-
- * ace/config-mvs.h: added ACE_HAS_EXCEPTIONS.
-
-Tue Jul 20 21:23:19 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.* (next_key,total_keys): with TSS_EMULATION,
- added guard (using preallocated ACE_TSS_KEY_LOCK)
- to access of next_key_. Uninlined both of these
- functions because they now have the guards. Thanks
- to Jake Hamby <jehamby@anobject.com> for reporting this.
-
-Tue Jul 20 21:11:02 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- fixed test of g++ for whether it's egcs. Thanks to
- Erik Johannes <ejohannes@oresis.com> for reporting this.
- (The symptom was that TAO's IORManipulation.cpp wouldn't
- compile due to an internal compiler error. Adding
- -fno-exceptions works around that.)
-
-Tue Jul 20 18:30:22 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.h: All functions in
- ACE_Cached_Connect_Strategy_Ex and ACE_Cached_Connect_Strategy
- that contain specific information about the map used by the
- class should not be virtual.
-
- * ace/Future_Set.cpp (next_readable): Removed extra code that was
- left behind from a debugging stage. Thanks to author John
- Tucker <jtucker@infoglide.com> for helping with this.
-
-Tue Jul 20 12:02:47 1999 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Threads/task_five.cpp (main): removed
- ACE_NOTREACHED wrapper around the final return statement.
- It's reachable now.
-
-Tue Jul 20 11:46:09 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp:
- Completely #ifdef'd this example out until we get it working.
- Thanks to David Levine for reporting this.
-
-Tue Jul 20 11:15:23 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated memory requirements discussions.
-
-Tue Jul 20 09:43:36 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Future_Set.cpp (next_readable):
-
- Fixed unused variable warnings.
-
-Tue Jul 20 09:33:02 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i} (sigwait): only use the DIGITAL_UNIX sigwait
- massaging with cxx, not with any other compiler. Thanks to
- Doug Anderson <dla@home.com> for suggesting this, because
- egcs issued warnings with it.
-
-Tue Jul 20 07:06:28 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU:
- removed -ptr ptrepository. Let the compiler use its
- default template repository.
-
- * include/makeinclude/rules.local.GNU (realclean): added
- cxx_repository, for DU cxx.
-
-Tue Jul 20 07:01:57 1999 Doug Anderson <doug@clark.net>
-
- * ace/OS.i (sigwait,thr_sigsetmask): added support for
- Cray UNICOS 9.
-
-Mon Jul 19 22:46:54 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T.cpp
- (ACE_Cached_Connect_Strategy::new_connection):: We use a reverse
- lock to let go of the lock for the duration of the actual
- connect. This will allow other threads to hack on the
- connection cache while this thread creates the new connection.
- Thanks to James Whitledge <jwhitledge@spyglass.com> for
- suggesting this.
-
- * tests/Cached_Accept_Conn_Test.cpp
- * tests/Cached_Conn_Test.cpp
- * tests/Conn_Test.cpp
-
- Added reverse lock template instantiations.
-
- * ace/Synch_T: Since the reverse lock constructor that created the
- regular lock was removed, there was no need for the
- <delete_lock_> variable, and <lock_> could be changed into a
- reference (instead of pointer).
-
-Mon Jul 19 23:04:15 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Logging_Strategy.cpp (init): The ACE_LOG_MSG->open()
- call at the end of the ACE_Logging_Strategy::init() method
- *must* specify the flags and logger key or an application will
- not connect to the client logger daemon automatically when the
- ACE_Log_Msg::LOGGER flag is set in a svc.conf file. Thanks to
- Jerry De Master <jdemaste@ipdinc.com> for reporting this.
-
-Mon Jul 19 22:11:13 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: cleaned up instructions for building
- on NT for VxWorks target. Thanks to Stephane Chatre
- <schatre@oresis.com> for reporting that the instructions
- were out of date.
-
-Mon Jul 19 21:38:16 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/run_tests.vxworks:
- Re-enable the Cached_Conn_Test and Cached_Accept_Conn_Test, it
- works on Linux, NT, Solaris, IRIX and HP-UX so we should be
- pretty close. Thanks to Irfan for fixing the problems with this
- test.
-
-Mon Jul 19 21:26:57 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i}: reverted sigwait () changes on Digital
- Unix. They cause examples/Threads/process_manager.cpp
- to not compile on DU 5.0 with cxx 6.2-021. See
- Mon Jul 19 21:13:16 1999 Doug Anderson <doug@clark.net>.
-
-Mon Jul 19 21:13:16 1999 Doug Anderson <doug@clark.net>
-
- * ace/ACE.cpp,ace/Basic_Types.h,ace/CDR_Stream.{h,cpp},
- ace/SOCK_Dgram_Bcast.cpp,ace/config-cray.h,
- tests/Basic_Types_Test.cpp,tests/Handle_Set_Test.cpp,
- include/makeinclude/platform_cray.GNU
-
- I finally managed to get the latest and greatest to work on
- the Cray. Still no CDR support, but that will be post 5.0.
-
- * ace/OS.{h,i}: added support for egcs on Digital Unix (4.0d & e).
- Fixe problem with legacy workarounds in OS.* for sigwait() and
- cxx/GNU that don't appear to be necessary on 4.0d/e/f with
- neither cxx nor GNU.
-
- * include/makeinclude/platform_tru64_g++.GNU: added. Works
- with ace/config-tru64.h.
-
-Mon Jul 19 19:46:50 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h: Added ACE_*_cast_*_ptr and ACE_*_cast_*_ref for const,
- static, and reinterpret casts.
-
- * ace/Strategies_T.cpp (find):
- * ace/Cached_Connect_Strategy_T.cpp (find):
-
- The comparison should be between ACE_PEER_CONNECTOR_ADDR and not
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS.
-
- * ace/Svc_Handler: Changed <state> to <recycle_state>. <state>
- was too generic and in some cases a <state> method was already
- present in classes deriving from Svc_Handler.
-
- Also, added a <recycle_state> accessor.
-
- The following files were effected:
-
- - ace/Cached_Connect_Strategy_T.cpp
- - ace/Cached_Connect_Strategy_T.h
- - ace/Caching_Utility_T.cpp
- - ace/Strategies.h
- - ace/Strategies.i
- - ace/Strategies_T.cpp
- - ace/Strategies_T.h
- - ace/Strategies_T.i
- - tests/Cached_Accept_Conn_Test.cpp
- - tests/Cached_Conn_Test.cpp
-
-Mon Jul 19 20:08:15 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Strategies_T.cpp:
- Fixed lookup of connections in the Cached_Connect_Strategy,
- thanks to Irfan for providing this fix.
-
-Mon Jul 19 12:26:20 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU,
- ace/config-g++-common.h:
- don't #define ACE_HAS_GNUG_PRE_2_8 with Tornado II's
- g++. It's egcs, though it's version identifier says
- it's 2.7. Thanks to Thomas Lockhart
- <Thomas.G.Lockhart@jpl.nasa.gov> for reporting this. [Bug 80]
-
-Mon Jul 19 09:50:31 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Future.cpp: Added ACE_TYPENAME to template-qualified types.
- * ace/Future.cpp: Added #include "ace/Containers.h" to be sure the
- types necessary for this class is available at template link
- time.
-
- * apps/gperf/src/Options.h: If on PharLap ETS, clear out its definition
- of EOS to avoid compile errors. Thanks to David Hauck
- <davidh@realtimeint.com> for this fix.
-
-Mon Jul 19 08:12:30 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_tru64_cxx.GNU: added support
- for DU 4.0E and D.
-
-Mon Jul 19 08:08:25 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-(10 11).x-hpc++.h: In the aC++ section, if __HP_aCC
- is not set, set it. Some parts of TAO rely on it, but it's not set
- until the most recent versions of the compiler. Thanks to Brian
- Wallis <Brian.Wallis@sr.com.au> for helping figure this out.
-
-Mon Jul 19 07:53:59 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp (open): added unnecessary const_cast
- of mcast_addr to ACE_Addr &, so that Sun C++ 4.2 will compile
- without error. Thanks to Andy for this fix.
-
-Sun Jul 18 21:36:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * OS.cpp (sched_params): wrapped DIGITAL_UNIX preprocessor
- symbol in parenthesis.
-
-Sun Jul 18 14:30:54 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/run_tests.sh: Reenabled the Future_Set_Test. Hopefully,
- this will work on Solaris and the other platforms now!
-
- * ace/Future*: Added some fixes for Future_Set that should prevent
- it from hanging indefinitely on certain platforms. Also,
- removed the Future_Node.h and Future_Node.cpp files since they
- are no longer used. Thanks to John Tucker
- <jtucker@infoglide.com> for contributing these fixes.
-
- * ace/SOCK_Dgram_Mcast: Finished implementing the QoS-enabled APIs for
- socket datagram multicast. This required refactoring quite a
- bit of code and adding some new methods that take the
- ACE_QoS_Params.
-
- * ace/SOCK_Dgram.cpp: Finished integrating the QoS support
- for SOCK dgrams.
-
- * ace/SOCK_Dgram.cpp: Factored out common code in the
- ACE_SOCK_Dgram constructors.
-
- * ace/SOCK_Connector: Finished implementing the QoS-enabled
- connect() methods. To make this cleaner, I've created a new
- "shared_open()" method that factors out the common code.
-
- * ace/SOCK_Acceptor: Finished implementing the QoS-enabled open()
- method. To make this cleaner, I've created a new
- "shared_open()" method that factors out the common code.
-
-Sat Jul 17 13:36:03 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp (get_cpuinfo):
-
- Removed extra `FILE *cpuinfo' declaration.
-
-Sat Jul 17 12:20:25 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/High_Res_Timer: Added integrated support for Alpha and
- Pentium that will eliminate the 5sec startup delay for Linux/PII
- clients using the ACE high resolution timer. Thanks to Thomas
- Lockhart <Thomas.G.Lockhart@jpl.nasa.gov> for these fixes.
-
- * netsvcs/servers/main.cpp (main): Fixed a typo caused by recent
- integration of Jerry De Master's fixes.
-
-Fri Jul 16 19:41:05 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE.cpp (out_of_handles): Added a function to check if a
- process is out of handles (file descriptors). This is required
- to avoid repeating this code in many places. Also, note that
- all platform specific quirks can be captured in this function.
-
- * ace/Cached_Connect_Strategy_T.cpp (cached_connect):
- * tests/Cached_Conn_Test.cpp (out_of_sockets_handler):
- * tests/Cached_Accept_Conn_Test.cpp (out_of_sockets_handler):
-
- Changed the above to use the new ACE::out_of_handles() function.
-
- * ace/OS.h (ENFILE): Added ENFILE if missing on platform. In that
- case, ENFILE will equal to EMFILE.
-
-Fri Jul 16 13:55:34 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude/{build_dll.bor,build_exe.bor,compiler.bor},
- ace/{Makefile.bor,ace.rc}:
- Updated these files to add version information to the DLLs so
- when you right click them in windows explorer you can see what
- version the file is (e.g., "4.6.45"). Thanks to Christopher
- Kohlhoff <chris@kohlhoff.com> for contributing this.
-
- * netsvcs/servers/main.cpp (main): Disable debugging messages
- if the -d option isn't given to ACE_Service_Config. Thanks to
- Jerry De Master <jdemaste@ipdinc.com> for reporting this.
-
- * ace/config-win32-borland.h: Updated this file to enable some
- necessary macros. Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for reporting this.
-
- * tests/DLL_Test.cpp,
- tests/run_test.bat: Updated these to handle the appropriate
- directory where the Borland tests are built. Thanks to
- Christopher Kohlhoff <chris@kohlhoff.com> for reporting this.
-
- * netsvcs/lib/Logging_Strategy.cpp (init): When the application
- program is started, none of the log output is sent to the
- Client_Logging_Service. Further investigation shows that the
- ACE_Log_Msg::open() method is responsible for connecting to the
- client logger if the ACE_Log_Msg::LOGGER flag is set. However,
- the connections never attempted because the ACE_Log_Msg::open()
- method is called before the Logging_Strategy flags have been
- parsed. This problem was fixed by rearranging the point at
- which the ACE_LOG_MSG->open() method was called. Thanks to
- Jerry De Master <jdemaste@ipdinc.com> for contributing this.
-
- * netsvcs/lib/Client_Logging_Handler.cpp (send),
- netsvcs/lib/Log_Message_Receiver.cpp (log_output):
- All log message output in ACE is done through one of the
- ACE_Log_Record::print() methods. Each of the overloaded methods
- has a <flags> argument as the second argument. However, all
- uses of the ACE_Log_Record::print() method in
- Log_Message_Receiver.cpp and Client_Logging_Handler.cpp pass
- zero for the flags argument. To fix this, simply pass
- ACE_Log_Msg::instance()->flags() instead of 0. Thanks to Jerry
- De Master <jdemaste@ipdinc.com> for contributing this.
-
- * ace/Log_Record.cpp (format_msg): Added code for the new
- ACE_Log_Record::format_msg() method that adds the date/time
- stamp to the ACE_Log_Msg::VERBOSE_LITE output. Thanks to Jerry
- De Master <jdemaste@ipdinc.com> for contributing this.
-
- * netsvcs/lib/Logging_Strategy.cpp (init): Make sure the
- ACE_Log_Msg::VERBOSE_LITE flag is OR'd into the clr_flags()
- call. Thanks to Jerry De Master <jdemaste@ipdinc.com> for
- reporting this.
-
- * netsvcs/lib/Logging_Strategy.cpp (tokenize): Make sure that
- the ACE_Log_Msg::VERBOSE_LITE flag is correctly parsed. Thanks
- to Jerry De Master <jdemaste@ipdinc.com> for reporting this.
-
- * ace/Memory_Pool.h: Added a way to set the segment_size in
- ACE_Shared_Memory_Pool_Options and ACE_Shared_Memory_Pool.
- Thanks to Serge Kolgan <skolgan@cisco.com> for this fix. [This
- feature was actually added a couple of beta releases ago, but
- somehow the ChangeLog entry got lost.]
-
-Fri Jul 16 16:41:22 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Stats.cpp (print_summary):
-
- Fixed format specifier that was expecting an integer argument.
- It needed an additional percent specifier.
-
-Fri Jul 16 09:20:42 1999 Arturo Montes <mitosys@colomsat.net.co>
-
- * ace/OS.i: Patch the dl* family to keep ACE
- compatible in SCO OpenServer 5.0.0, 5.0.2, 5.0.4 with 5.0.5
-
- * ace/config-sco-5.0.0.h: Bring OpenServer up to date.
-
- * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU:
- Use gcc-2.95.
-
-Fri Jul 16 11:50:24 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log):
- * tests/Basic_Types_Test.cpp (main): Reverted my previous
- change. It was not a safe assumption.
-
-Fri Jul 16 02:28:10 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log): Changed (*va_arg (argp,PTF))(), which
- extracts a function pointer from va_list and makes a call using
- the pointer pointer to ACE_reinterpret_cast (PTF, va_arg (argp,
- long))(). This assumes the sizeof (long) is exactly equal to
- the size of a function pointer.
-
- * tests/Basic_Types_Test.cpp (main): Narrow down the check to
- ensure sizeof(long) == sizeof (a function pointer) (which is
- true for all the platforms that ACE runs on.)
-
-Fri Jul 16 00:07:23 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Cached_Accept_Conn_Test.cpp (test_connection_management):
- Changed the test to allow for both one listen endpoint or
- multiple listen endpoints.
-
-Thu Jul 15 22:42:36 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Message_Queue.h: (ACE_MESSAGE_QUEUE_DEFAULT_TYPE):
- * ace/Future_Set.{h,cpp} (ACE_Future_Set): Typedef'ed the
- ACE_Message_Queue to ACE_MESSAGE_QUEUE_DEFAULT_TYPE and use the
- typedef'ed name in ACE_Future_Set's contstructor to get around a
- bug in vxworks' g++ compiler.
-
-Thu Jul 15 22:14:18 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.cpp
- * ace/Cached_Connect_Strategy_T.h
- * ace/Strategies_T.cpp
- * ace/Strategies_T.h
-
- Changed find()'s signature to help g++.
-
- * tests/Cached_Accept_Conn_Test.cpp
- * tests/Conn_Test.cpp
-
- Added template instantiations.
-
-Thu Jul 15 21:32:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/create_ace_build: removed # -*- perl -*- on first
- line so that t/csh users don't trip over it. Thanks
- to Irfan for reporting this.
-
-Thu Jul 15 20:23:39 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Cached_Conn_Test.cpp (test_connection_management): Changed
- the test to allow for both one listen endpoint or multiple
- listen endpoints.
-
- * ace/Cached_Connect_Strategy_T.cpp:
- * ace/Strategies_T.cpp
-
- - find: Since the comparison of
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS doesn't work very well when
- trying to find an idle connection (because there are many idle
- states), we now use the new backet iterator to find a idle
- connection.
-
- - check_hint_i: Explicitly checks for idleness; previously it
- was simple checking !closed.
-
- * ace/Strategies.h (ACE_Recyclable): Changed ACE_Recyclable::State
- to ACE_Recyclable_State.
-
- * ace/Strategies_T.h (ACE_Refcounted_Hash_Recyclable):
-
- - Added operator!=(ACE_Refcounted_Hash_Recyclable<T>)
- - Removed operator==(T)
- - Added T &subject()
- - Change operator==(ACE_Refcounted_Hash_Recyclable<T>) to check
- for equality in state and subject.
-
- * ace/Caching_Utility_T.cpp (minimum): Entries marked
- ACE_RECYCLABLE_PURGABLE_BUT_NOT_IDLE should also be considered
- for purging.
-
- * ace/Cleanup_Strategies_T.cpp (cleanup): The hash map of the
- connection cache may contain duplicates. Therefore, we are not
- exactly sure which map entry will be removed when calling
- unbind(). Therefore, we use the other unbind() which gives us
- back the value of the entry that was removed. This way will
- close the correct handler.
-
- * ace/Svc_Handler.cpp (state): Added a new method that allows the
- user to explcitly set the state of the Svc_Handler. If the
- Svc_Handler does not have a recycler, this method will have no
- effect.
-
-Thu Jul 15 16:39:06 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * Makefile:
- * NEWS:
-
- The NEWS file is no longer a generated file so it was added to
- the list of controlled files.
-
-Thu Jul 15 16:20:43 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Manager.cpp (init): Check to see the acceptor handle
- is ACE_INVALID_HANDLE before the actual initialization to
- prevent this service from being initialized twice.
- (fini): Must call remove_handler with
- ACE_Event_Handler::DONT_CALL since the service manager won't be
- around when the reactor is being destroyed. Thanks to Gheorghe
- Aprotosoaie <gaprotosoaie@paragonms.com> for reporting this.
-
-Thu Jul 15 16:26:28 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (spa): use ACE_NEEDS_HUGE_THREAD_STACKSIZE
- instead of hard-coded value.
-
- * ace/config-vxworks5.x.h: added default
- ACE_NEEDS_HUGE_THREAD_STACKSIZE of 64000.
-
-Thu Jul 15 16:08:48 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32-common.h: Moved ACE_HAS_IP_MULTICAST down
- *after* ACE_HAS_WINSOCK2 is defined. Thanks to Marina for
- reporting this.
-
-Thu Jul 15 16:11:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.h (ACE_U_LongLong): removed user-defined
- conversion to ptr_arith_t. Replaced with new macro,
- ACE_LONGLONG_TO_PTR.
-
-Thu Jul 15 15:31:49 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/ACE.cpp (timestamp):
- * ace/High_Res_Timer.cpp (print_ave):
- * ace/Local_Tokens.cpp (open):
- * ace/Log_Msg.cpp (log):
- * ace/Log_Record.cpp (format_msg):
- * ace/Naming_Context.cpp (parse_args):
- * ace/OS.cpp (unique_name):
-
- Fixed warnings and generated by gcc 2.95; mostly due to format
- specifier mismatches and inefficient conversion operator usage.
-
-Thu Jul 15 14:21:32 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: reverted to the original
- perl magic that goes at the top of every script. The
- fix that was supposed to work on HP/UX doesn't. See
- Thu Jul 08 22:15:50 1999 David L. Levine <levine@cs.wustl.edu>
-
-Thu Jul 15 12:19:44 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: added -u option, to allow updating the
- version stamps from any directory. Also, added suppression
- of cvs checkout warning about empty ("New") directories.
-
- * Makefile: added -u to make_release invocations.
-
-Thu Jul 15 11:39:44 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.6.45 released.
-
-Thu Jul 15 11:26:43 1999 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: made NEWS a dependency of release.
-
-Thu Jul 15 10:05:40 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: removed reference to
- ACE_OS::scanf (). No such thing.
-
-Thu Jul 15 10:01:31 1999 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: TRANSMIT_FILE_BUFFERS are not defined on PharLap ETS -
- it's a Microsoft-specific extension to Winsock 1.1.
-
- * ace/config-win32-common.h: ACE_HAS_IP_MULTICAST is only set for
- Winsock 2.
-
- Thanks to David Hauck <davidh@realtimeint.com> for these fixes.
-
-Thu Jul 15 09:28:32 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_tru64_cxx.GNU: changed
- 4.0f to 4.0F, because that's what sizer -v returns
- on DU 4.0F. Thanks to Doug Anderson <dla@home.com>
- for reporting this.
-
- * ace/config-tru64.h: only #define _LIBC_POLLUTION_H_
- with DU >= 5.0. Thanks to Doug Anderson <dla@home.com>
- for reporting that it's not necessary on DU 4.0F.
-
-Thu Jul 15 09:15:11 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h: Corrected template settings for IBM C/C++
- 3.6 compiler. It does not get ACE_HAS_STD_TEMPLATE_SPECIALIZATION.
-
- * include/makeinclude/platform_aix4_cset++.GNU: Delete the
- testAIXCompilerVersion.cpp file after getting the compiler version.
-
-Thu Jul 15 07:33:30 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-tru64.h,config-osf1.h,config-osf1-4.0.h,
- include/makeinclude/platform_tru64_cxx.GNU,platform_osf1_cxx.GNU,
- ACE-INSTALL.html: moved config-osf1.h to config-tru64.h,
- and platform_osf1_cxx.GNU to platform_tru64_cxx.GNU.
- Thanks to Doug Anderson <dla@home.com> for this suggestion.
-
-Wed Jul 14 22:23:10 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-cray.h: replaced ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA
- with ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION. The standard
- "template class" explicit instantiations work with version
- 3.2.0.1 of the compiler. Thanks to Doug Anderson <dla@home.com>
- for reporting this.
-
- * ace/config-ghs-common.h: use
- ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION with Green Hills 1.8.9
- and later. Thanks to Carlos for suggesting that we give it
- whirl. It worked :-)
-
-Wed Jul 14 22:03:08 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h: enable pragma message disable declbutnotref
- with Digital Unix 4.0f, as well as 5.0. Thanks to
- Doug Anderson <dla@home.com> for reporting that
- it's necessary.
-
- * ACE-INSTALL.html: updated config/platform info for
- Digital UNIX 4.0f (and 5.0).
-
- [Bug 65]
-
-Wed Jul 14 19:44:21 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Thread_Manager.cpp (spawn_i): Defer acquiring the thread
- descriptor's lock until just before attempting to start the thread
- to avoid places where the thread descriptor could be destroyed
- while holding the lock (doing that is an undefined operation in
- pthreads, and has particularly bad results on HP-UX 11). If the
- thread creation does fail, release the lock before returning
- the error indication (taking care to guard errno). Removed an
- unreachable block of code which put the thread descriptor on the
- wrong list anyway.
- Removed the #if 1, #else, #endif around the auto_ptr for
- new_thr_desc - if it's still working this close the ACE 5 release,
- it wins. Besides, the use of the auto_ptr was ingrained in the
- rest of the function, without the #if checks.
-
-Wed Jul 14 19:03:57 1999 David L. Levine <levine@cs.wustl.edu>
-
- * etc/purify.solaris2: added another UMR suppression for
- __sigprocmask in the Solaris 2.6 threads library. Thanks
- to Andy for reporting this.
-
-Wed Jul 14 16:30:48 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.h (class ACE_Hash_Map_Bucket_Iterator):
- Added a new class that allows the iteration over the entries of
- a of a particular bucket in a hash map.
-
- * tests/Hash_Map_Bucket_Iterator_Test.cpp: A test for the new
- ACE_Hash_Map_Bucket_Iterator class.
-
-Wed Jul 14 16:37:33 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * Makefile:
-
- Added Makefile.am and NEWS to the list of controlled files. The
- file `NEWS' will get generated when a release is made.
-
- * TODO:
- * acconfig.h:
- * configure.in:
- * configure:
-
- Minor ACE Configuration Project related updates and fixes.
-
-Wed Jul 14 13:38:12 1999 Steve Huston <shuston@riverace.com>
-
- * tests/Cached_Accept_Conn_Test.cpp: Moved defs of Client_Svc_Handler
- and Server_Svc_Handler classes to new file, Cached_Accept_Conn_Test.h
- to make AIX xlC happy.
-
- * tests/Cached_Conn_Test.cpp: Moved definition of Svc_Handler class
- new file, Cached_Conn_Test.h to make AIX xlC happy.
-
- * tests/Cached_Accept_Conn_Test.cpp, Cached_Conn_Test.cpp: Don't
- even try to build these on AIX C Set++ 3.1. It can't hack the
- auto template instantiation - overwrites a template generator
- file and tosses its cookies. ACE is still the best C++ compiler
- test on the planet.
-
-Wed Jul 14 16:24:38 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.cpp:
- Added new method to efficiently steal the contents of a CDR
- stream and store them in another.
-
-Wed Jul 14 12:05:13 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU (LN_S): on WIN32
- hosts, use cp -p instead of ln -s, because symbolic
- links aren't supported.
-
-Wed Jul 14 11:22:31 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU,
- ACE_INSTALL.html: with egcs (Tornado II) and without
- exception handling, add -Wno-uninitialized to CCFLAGS.
- The version of egcs that is provided with Tornado II
- produces some spurious warnings about uninitialized
- variables (including "this" :-). This was a problem
- in older versions of egcs, but has since been fixed.
- To avoid the warning, we always disable the warning
- with VxWorks' egcs.
-
-Wed Jul 14 11:20:31 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h: Add ACE_LACKS_SETSCHED for pre-4.3 AIX.
-
-Wed Jul 14 11:15:24 1999 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Shared_Malloc/Malloc.cpp: only explicitly
- instantiate ACE_Read_Guard<ACE_SYNCH_MUTEX> and
- ACE_Write_Guard<ACE_SYNCH_MUTEX> ifndef ACE_HAS_THREADS.
- With threads, they're explicitly instantiated in
- ace/Synch.cpp.
-
-Wed Jul 14 10:58:30 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.cpp:
- Clarified the relationship between this implementation and the
- original SunSoft version.
-
-Wed Jul 14 10:47:45 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_qnx_neutrino.GNU:
- added ACE_HAS_GNUG_PRE_2_8 := 0, so that exception
- handling will be disabled by default.
-
-Wed Jul 14 10:34:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp: fixed typo,
- ACE_LACKS_UNIX_DOMAIN_SOCKETS instead of
- ACE_HAS_UNIX_DOMAIN_SOCKETS.
-
-Wed Jul 14 10:22:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Singleton.*: added ACE_Unmanaged_Singleton and
- ACE_Unmanaged_TSS_Singleton template class. They're
- identical to ACE_Singleton and ACE_TSS_Singleton,
- respectively, except that they don't register for
- cleanup with the ACE_Object_Manager. Therefore,
- the application is responsible for explicitly destroying
- the instance after it is no longer needed (if it wants to
- avoid memory leaks, at least). The close () static member
- function must be used to explicitly destroy the Singleton.
- Thanks to Valery Arkhangorodsky <valerya@servicesoft.com>
- for suggesting this and providing the code.
-
-Wed Jul 14 10:01:47 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h (ACE_{,U_}ONE_SECOND_IN*): made the trailing
- L or U upper case, for readability. Thanks to Chris
- for noticing this.
-
-Wed Jul 14 09:40:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: when setting
- ACE_HAS_GNUG_PRE_2_8, if not g++: don't override
- the value to null if it was non-null. Also, clarified
- use of ACE_HAS_GNUG_PRE_2_8: 1 for g++ < 2.8.0,
- 0 for g++ >= 2.8.0, undefined for non-g++.
-
-Wed Jul 14 09:29:57 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Makefile (realclean): remove log/compilations.log*.
-
-Tue Jul 13 22:25:18 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
- Disable the "unitialized" warnings with EGCS+exceptions, it
- gives too many bogus warnings to take care of them.
-
-Tue Jul 13 22:16:17 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/ACEutils.pm:
- Wait for non empty files, sometimes the process creates the
- files but does not have enough time to fill its contents.
-
-Tue Jul 13 21:32:44 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
- * ltconfig:
- * ltmain.sh:
- * ace/Makefile.am:
- * tests/Makefile.am:
-
- ACE Configuration Project updates. Synchronized with current
- version of ACE in CVS repository.
-
-Tue Jul 13 15:22:51 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- set ACE_HAS_GNUG_PRE_2_8 to 0 with egcs (Tornado II).
-
-Tue Jul 13 15:15:43 1999 Steve Huston <shuston@riverace.com>
-
- * ace/ace-dll.icc, ace-lib.icc: Corrected source file set; now builds
- (still with some warnings) on AIX, Visual Age C++ 4.
-
-Tue Jul 13 15:11:28 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/run_all_win32.pl: Fixed program output redirection problem.
- Unfortunately, the fix requires one to have either 'sh' or '4nt'
- to redirect output from another perl script correctly.
-
-Tue Jul 13 15:04:35 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_qnx_neutrino.GNU:
- removed full paths from commands, because they're
- prefixed with i386-nto-.
-
- * ace/config-qnx-neutrino.h: updated to build with egcs.
-
-Tue Jul 13 15:03:01 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Pipe.cpp (open): moved declaration of local variable
- "one" inside the ACE_LACKS_TCP_NODELAY #ifndef block.
-
-Tue Jul 13 14:57:56 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/SV_Semaphore_Simple.{h,cpp} (init,open,name_2_key):
- added static cast of ACE_INVALID_SEM_KEY to key_t. key_t
- is unsigned on QNX Neutrino, but we want to keep
- ACE_INVALID_SEM_KEY as -1.
-
-Tue Jul 13 11:57:53 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32.h: Changed CApplication to CWinApp. Thanks to
- John Morey <jmorey@tbi.com> for pointing this out.
-
-Tue Jul 13 11:13:52 1999 Steve Huston <shuston@riverace.com>
-
- * ACE_INSTALL.html: Added some info for building on AIX with
- Visual Age C++.
-
- * ace/config-aix-4.3.x.h: New file - these version-specific configs
- are particularly useful with Visual Age C++, which has its own
- funky make system that doesn't use the platform_macros.GNU files,
- and so doesn't pick up the ACE_AIX_MAJOR/MINOR_VERS settings which
- are used in config-aix-4.x.h.
-
- * ace/config-aix-4.x.h: Corrected template settings for Visual Age C++
- and added ACE_HAS_TYPENAME for VAC++ also.
-
-Tue Jul 13 10:40:31 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.cpp (purge_connections): There is
- no need to set the purge percentage again.
-
-Tue Jul 13 10:39:57 1999 Matthew J Braun <mjb2@cs.wustl.edu>
-
- * ace/Containers_T.h,i: Altered private member list_ of
- DLList_Iterator to be a pointer rather than a reference. This
- allows the reset method to work because it was overwriting the
- contents of list_ rather than iterating over a different list
-
-Tue Jul 13 09:14:31 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Cached_Connect_Strategy_T.cpp (dtor): Added ACE_TYPENAME
- to 'iter' declaration since its type depends on template parameters.
-
-Tue Jul 13 09:11:24 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU:
- moved LIBS setting for Green Hills 1.8.9 from
- x86-only to all targets. Thanks to Dale Wood
- <dale_wood@Mitel.com> for confirming that this
- is necessary for PowerPC targets.
-
-Tue Jul 13 08:18:56 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1.h,config-osf1-4.0.h,
- include/makeinclude/platform_osf1_cxx.GNU:
- added another significant figure to the version identifer,
- e.g., 0x40F and 0x500. [Bug 65]
-
-Tue Jul 13 06:45:53 1999 Steve Huston <shuston@riverace.com>
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp: Moved
- definition of Dummy_Data to test_position_independent_malloc.h, a
- new file, to satisfy AIX IBM C++ template instantiation.
-
- * include/makeinclude/platform_aix4_cset++.GNU: Turn on/off warnings
- based on compiler version, not OS version. Thanks to Craig
- Rodrigues <rodrigc@mediaone.net> for sending the code in!
-
- * THANKS: Added Craig Rodrigues to the hall of fame.
-
- * ace/config-aix-4.1.x.h, config-aix-4.2.x.h: Added setting for
- ACE_AIX_MAJOR_VERS and ACE_AIX_MINOR_VERS if they weren't set
- already. Eases backwards compatibility for those who don't use
- the ACE build macros (horrors! :-). Thanks to Jeff Donner
- <jdonner@schedsys.com> for this suggestion.
-
-Mon Jul 12 18:24:34 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Cached_Accept_Conn_Test.cpp:
- This tests explicit purging from the server's point of view.
- When the acceptor in either its accept_svc_handler () or open ()
- runs out of descriptors, purging of unused svc_handlers from the
- connecton cache is requested.
-
- * tests/Cached_Conn_Test.cpp:
- Defined ACE_HAS_BROKEN_EXTENDED_TEMPLATES for the
- Caching_Strategy_Adapter. If this condition is true, then only
- Least Recently Used Caching Strategy is available. This was
- necessary for compilers which dont accept long template lists,
- for example GNUC version < 8.0. Total credit for this hack
- to get through the old GNUC compiler goes to Irfan
- <irfan@cs.wustl.edu> of the DOC group.
-
- * tests/Makefile:
- Added Cached_Accept_Conn_Test.cpp.
-
- * tests/Makefile:
- * tests/run_tests.sh:
- * tests/run_pharlap_tests.bat:
- * tests/run_tests.bat:
- * tests/run_tests.psosim:
- * tests/run_tests.vxworks:
- Added Cached_Conn_Test, Map_Manager_Test and
- Cache_Map_Manager_Test to the above.
-
-Mon Jul 12 17:31:28 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/run_all_win32.pl: Fixed the missing execution output problem
- and simplified how the script gets invoked. See comments for
- more details.
-
- * ace/config-win32.h:
- * ace/Object_Manager.h: Updated some unclear comments regarding
- the use and instantiation of non-static object manager. Thanks
- to John Morey and David for pointing this out.
-
- * ace/ace_dll.dsp: Merged additional MFC configuration. Thanks to
- John Morey <jmorey@tbi.com> for submitting the patch.
-
-Mon Jul 12 15:27:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1.h,config-osf1-4.0.h,
- include/makeinclude/platform_osf1_cxx.GNU,
- ACE-INSTALL.html: added support for DU 4.0f. It needs the
- same #defines that we use on DU 5.0. [Bug 65]
-
-Mon Jul 12 14:41:14 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-win32.h,Object_Manager.h: cleaned up comments
- about the non-static ACE_Object_Manager. Thanks to
- John Morey <jmorey@tbi.com> for reporting this.
-
-Mon Jul 12 13:54:34 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Cache_Map_Manager_T.{h,i,cpp}:
- Defined ACE_T1 and ACE_T2 which contain the template parameter
- list and added ACE_HAS_BROKEN_EXTENDED_TEMPLATES macro where
- needed. This takes care of the template list for compilers which
- cant accept a long template list, for example: GCC 2.7.2.
- Also changed the purge() to now call the <caching_utility> for
- purging entries form the cache.
-
- * ace/Hash_Cache_Map_Manager_T.h:
- Added ACE_HAS_BROKEN_EXTENDED_TEMPLATES to complement the
- Cache_Map_Manager class changes.
-
- * ace/Cached_Connect_Strategy_T.cpp:
- Changed dtor to take care of the
- ACE_HAS_BROKEN_EXTENDED_TEMPLATES definition.
-
- * ace/Cached_Connect_Strategy_T.h:
- Removed CONNECTION_CACHE_ITERATOR typedef.
-
- * ace/Caching_Strategies_T.{h,i,cpp}:
- Changed template parameter list and removed dependency on the
- CONTAINER. Removed clear_cache() method.
-
- * ace/Caching_Utility_T.{h,i,cpp}:
- Added default cleanup strategies to every kind of
- caching_utiltity. ACE_Recyclable_Hanlder_Caching_Utility no
- longer derives form ACE_Pair_Caching_Utility.
-
- * ace/Cleanup_Strategies_T.{h,i,cpp}:
- Changed ACE_Svc_Cleanup_Strategy to
- ACE_Recyclable_Handler_Cleanup_Strategy.
-
- * tests/Cache_Map_Manager_Test.cpp:
- * tests/Map_Manager_Test.cpp:
- Made changes to template instantiations.
-
- * tests/Cached_Conn_Test.cpp:
- Added out_of_sockets_handler() which will do the purging.
- Added a check for ENOBUFS which arose on NT and ENOENT which
- arose on Linux + Solaris. Defined
- ACE_HAS_BROKEN_EXTENDED_TEMPLATES for GCC versions < GCC 2.8.
-
-Mon Jul 12 12:14:45 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-development-process.html: added this page, as
- a start towards a less chaotic development process.
-
-Mon Jul 12 10:05:31 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Event_Handler_T.i: Added ACE_TYPENAME on template-dependent types
- in function signatures. Quiets HP-UX aC++.
-
- * ace/Based_Pointer_Repository.h:
- * ace/Based_Pointer_T.h: Added #include "ace/OS.h" to pick up def. of
- ACE_Export when instantiating templates with AIX IBM C++.
-
- * include/makeinclude/platform_hpux_aCC.GNU: Removed definition for
- CPP_LOCATION - use aCC - cpp has too many problems, and a fix for
- the pragma warnings was checked into TAO_IDL.
-
-Mon Jul 12 09:26:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * testsr/Makefile: don't build libDLL_Test.so if not building
- shared libraries. This simplifies the build on static-libs
- only platforms, and can be used by run_tests.sh, below.
- [Bug 62]
-
- * tests/run_tests.sh: don't run DLL_Test if libDLL_Test.so
- was not built.
-
-Mon Jul 12 07:48:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: updated guideline under CVS
- section to match the other one about always testing
- on egcs.
-
-Sun Jul 11 23:59:52 1999 nanbor <nanbor@cs.wustl.edu>
-
- * ACE version 4.6.44 released.
-
-Sat Jul 10 18:05:41 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-kcc-common.h: Added ACE_NEW_THROWS_EXCEPTIONS.
- Thanks to David for pointing this out.
-
-Sat Jul 10 16:22:00 1999 Chris Gill <cdgill@tango.cs.wustl.edu>
-
- * ace/config-win32-common.h: wrapped ACE_HAS_TYPENAME_KEYWORD so it is
- only set for MSVC++ 6.0 or higher. This is to work around a compiler
- bug in MSVC++ 5.0 when trying to compile certain forms with the
- typename keyword in a template method argument list.
-
-Sat Jul 10 13:16:50 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc: Changed the type of pointer used by ACE_Name_Node
- from void * to char * so that we can integrate this cleanly with
- ACE_Based_Pointer<>, which will fail if we use void since we
- can't return from a "void" function!
-
- * tests/Thread_Pool_Test.cpp (open): Fixed another somewhat bogus
- warning from EGCS related to initialization of loop variables.
-
- * tests/New_Fail_Test.cpp (main): Make sure to initialize pointers
- so that EGCS doesn't complain.
-
- * tests/MT_Reactor_Timer_Test.cpp (main): Fixed a signed/unsigned
- mismatch.
-
- * tests: Added appropriate header comments for all the *.h files.
-
- * tests/Cache_Map_Manager_Test.cpp: Capitlized the hash_key
- class to be Hash_Key, which is standard ACE programming style.
-
- * ace/Service_Config.cpp: Added yet another set of
- changes to open_i() so that the -d option is handled
- appropriately. Thanks to Jonathan Reis
- <reis@minniemouse.cemax.com> for this fix.
-
- * ace/SOCK_Acceptor.h: Clarified the parameters for
- ACE_SOCK_Acceptor's constructor and open() methods. Thanks to
- Ron MacKenzie <ronm@SLAC.Stanford.EDU> for motivating this.
-
-Sat Jul 10 13:56:30 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/MT_Reactor_Timer_Test.cpp (main): Fixed signed/unsigned
- comparison.
-
-Sat Jul 10 08:01:36 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: THANKS instead of README.
-
-Fri Jul 9 20:54:30 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/UNIX_Addr.{h,i} (hash):
-
- Implemented a hash function for ACE_UNIX_Addr instead of relying
- on the base class no-op hash function. Thanks to Irfan for
- explaining the best way to do this.
-
-Fri Jul 9 20:39:47 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Cached_Conn_Test.cpp: Added an Svc_Handler class which
- helped in verifying the course of the program execution.
-
- * ace/Caching_Utility_T.cpp (minimum): Cleaned up code by removing
- redundant else if statement.
-
- * tests/Cache_Map_Manager_Test.cpp: Resolved some template typos
- which surfaced on compiling with VxWorks.
-
-Fri Jul 09 20:14:13 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/MT_Reactor_Timer_Test.cpp (main): Added fixes so that test
- can work with WFMO_Reactor (WFMO_Reactor needs an extra
- handle_events() to get started).
-
- * tests/Conn_Test.cpp (spawn_processes): Only printing reaping
- message when result is not -1.
-
- * ace/Strategies_T.i (ACE_Refcounted_Hash_Recyclable<T>::operator==):
- The check should be for "and", not "or".
-
- * tests/Conn_Test.cpp: Since timed accept is implemented using
- select(), and we use timed accepts with threads, we need a real
- lock when using timed accepts even if the OS has thread-safe
- accept.
-
- Also changed the default number of clients to 5. Hopefully,
- this won't overrun the backlog on the listen socket.
-
- * ace/Svc_Handler.cpp (shutdown): Remove self from Reactor only
- when we have a valid handle. Otherwise, we lose our current
- errno, since the failed remove_handler will set the errno to
- EINVAL.
-
-Fri Jul 9 14:02:52 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h: Re-enabled ACE_LACKS_SETSCHED for AIX 4.3.
- The OS defs are not aligned/matched correctly with what they mean
- in this area, but will need to wait til after ACE 5.0 is done
- before straightening it out.
-
- * ace/WFMO_Reactor.cpp (ACE_WFMO_Reactor_Handler_Repository::bind_i):
- Set errno to EMFILE if the max number of handles is registered,
- instead of leaving a stale errno for the user to figure out.
-
- * tests/MT_Reactor_Timer_Test.h (Dispatch_Count_Handler): Changed
- type of timers_fired_ from int to size_t so it matches type of
- ACE_MAX_TIMERS.
-
-Fri Jul 9 14:27:10 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp (open_i): Be default, disable debugging
- messages. Only reenable them if the -d option is given. Thanks
- to Jerry De Master <jdemaste@ipdinc.com> for reporting this.
-
- * ace/Based_Pointer_T: Factored out all but the operator-> into
- a new class called ACE_Based_Pointer_Basic so that we can use
- this for "basic types" like char *. Thanks to Irfan for
- pointing this out.
-
- * ace/Based_Pointer_Repository.cpp (unbind): Fixed a
- bug in the unbind() loop. Thanks to David Levine and DEC UNIX
- C++ for noticing this!
-
- * ace/Reactor.i (schedule_wakeup): Fixed a misplaced assignment
- of Event_Handler->reator (). Thanks to Carlos for reporting
- this.
-
-Fri Jul 09 13:11:33 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Conn_Test.cpp (spawn_threads): ACE_OS::perror takes a
- wchar_t string on CE.
-
- * tests/test_config.h (set_output): We should use non-unicode
- version of ACE_OS::getenv to initialize test_dir on "regular"
- UNICODE compilation. Thanks to Steve for reporting this.
-
- Added more WinCE/UNICODE fixes.
-
-Fri Jul 9 12:16:00 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Caching_Utility_T.cpp (minimum):
- Modified minimum () of ACE_Recyclable_Handler_Utility class so
- that the minimum value is also an entry which is purgable.
-
- * tests/Cache_Map_Manager_Test.cpp:
- SunC++4.0 compiler doesnt accept typedefs with templates and
- having ::, for example: HASH_MAP::iterator. One has to typedef
- HASH_MAP::iterator and use it to typedef something else. Fixed
- this problem in the above test.
-
-Fri Jul 9 11:39:40 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Dirent.i: Added a pair of checks to open() and close()
- to avoid double deletes. Thanks to Tom Arbuckle
- <arbuckle@uran.informatik.uni-bonn.de> for pointing this out.
-
- * ace/Reactor.i: For schedule_timer() and schedule_wakeup(),
- make sure that the Event_Handler is assigned "this" Reactor
- upon successful completion of the operation. Thanks to
- Dirk Broer <Dirk.Broer@gsfc.nasa.gov> for suggesting this.
-
-Fri Jul 9 11:10:23 1999 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_aCC.GNU: Re-suppress warning
- 829 on 10.x because there's an offending system header file.
-
- * tests/test_config.h (ACE_Test_Output::set_output): Change test_dir
- to be const because it's initialized with a string literal.
-
-Fri Jul 9 10:52:45 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Caching_Utility_T.cpp (minimum): Checked the state of the
- Refcounted_Hash_Address with ACE_Recyclable::IDLE_AND_PURGABLE.
-
-Fri Jul 09 10:49:40 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Message_Queue_Test.cpp (main): changed success
- message from timed dequeue test to not contain "timedout",
- because that trips run_tests.check.
-
-Fri Jul 09 10:25:42 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Shared_Memory_MM.h (ACE_Shared_Memory_MM): Changed the
- filename parameter from a non-const string to a const string.
- Thanks to Ulf Jaehrig <jaehrig@desys.com> for pointing out this
- problem.
-
-Fri Jul 09 03:31:34 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.i: added const to each of the static casts.
-
-Fri Jul 09 01:45:25 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/auto_compile_win32.pl: A lot of projects changed names
- recently and thus the file was not working properly.
-
-Thu Jul 8 23:15:06 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * Merging the "ami_phase3" branch on to the main branch. Change
- was done to the CDR_Stream{h,i} files to add the method
- <byte_order> to the CDR class. Other than that, no change was
- done to ACE.
-
-Thu Jul 08 22:15:50 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: changed the perl magic that
- goes at the top of every perl script, to pick up perl
- from the users path. This new version works on HP/UX.
- Thanks to Carlos for divining it.
-
-Thu Jul 08 22:05:31 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-common.h: added #define of
- ACE_DEFAULT_BASE_ADDR to 0x40000000 on __powerpc__
- only.
-
- * ace/config-linuxppcr5.h: removed. LinuxPPC can
- now use config-linux-lxpthreads.h.
-
- * ACE-INSTALL.html: added LinuxPPC info.
-
- Thanks to Andreas Tobler <a.tobler@schweiz.ch> for helping
- to factor out the code from config-linuxppcr5.h.
-
-Thu Jul 8 21:57:17 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Malloc_T.h:
- * ace/Malloc_T.cpp:
- Changed the Cached_Allocator class to use a char* as the memory
- source.
- It was allocated as char* and deallocated as a char*, but casted
- to T* to use placement new; this was actually unneeded and
- actually an error: the memory does not become a T* until
- placement new is invoked on it. [BUGID:40]
-
-Thu Jul 08 21:34:42 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: on PowerPC, set
- ACE_NEEDS_HUGE_THREAD_STACKSIZE to 32000, instead of
- its apparent default of 15000. On both x86 and ppc,
- #define ACE_MAP_FIXED to 0 and ACE_DEFAULT_BASE_ADDR to
- 0 to try to get the OS to always pick shared memory addresses.
-
- Thanks to Dan Butler <daniel.g.butler@boeing.com> for
- suggesting the use of ACE_NEEDS_HUGE_THREAD_STACKSIZE here.
-
- * tests/Recursive_Mutex_Test.cpp (main): removed explicit
- stack size setting, now that we're using
- ACE_NEEDS_HUGE_THREAD_STACKSIZE on LynxOS/PPC.
-
-Thu Jul 08 18:47:23 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.cpp:
- Changed:
- entry->ext_id_.state (ACE_Recyclable::IDLE);
- to
- entry->ext_id_.state (ACE_Recyclable::IDLE_AND_PURGABLE);
-
- * ace/Caching_Utility_T.{h,cpp}:
- Added ACE_Recyclable_Handler_Caching_Utility which takes care
- that the svc_handler to be purged is in the IDLE_AND_PURGABLE
- state.
- Made method minimum () virtual.
-
- * ace/Strategies.h:
- Added IDLE_AND_PURGABLE and IDLE_BUT_NOT_PURGABLE states and
- removed IDLE state from the enum. This change was necessary to
- take care of AMI using the Mux Strategy.
-
- * ace/Strategies_T.cpp (cache_i):
- Made entry state ACE_Recyclable::IDLE_AND_PURGABLE.
-
- * ace/Startegies_T.i (operator==):
- Added checks for the ACE_Recyclable::IDLE_AND_PURGABLE and
- ACE_Recyclable::IDLE_BUT_NOT_PURGABLE states.
-
- Thanks to Irfan <irfan@cs.wustl.edu> of the DOC group for
- helping with this.
-
-Thu Jul 08 18:47:23 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Cache_Map_Manager_Test.cpp: Simplified code and output.
-
-Thu Jul 08 14:56:22 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.{h,i} (ACE_U_LongLong): added operators
- that take ACE_UINT32 arguments corresponding to each of
- the operators that take ACE_U_LongLong & arguments. This
- solves some more overload resolution ambiguities.
-
- * ace/Stats.cpp: changed comparisons of ACE_U_LongLong with
- ints to unsigned ints, to avoid overload resolution ambiguity.
-
-Thu Jul 08 14:29:42 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (gethrtime): cast ts.tv_nsec explicitly to
- ACE_hrtime_t, instead of ACE_UINT32, to avoid overload
- resolution ambiguity now that we have that ACE_U_LongLong
- implicit conversion to ptr_arith_t.
-
-Thu Jul 8 13:50:14 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Reactor_Impl.h (dispatch_notifications): Changed ACE_Handle_Set
- arg from const to non-const. Fix in ACE_Select_Reactor_Notify
- requires the ability to change the handle set.
-
- * ace/WFMO_Reactor.{h cpp}: Corresponding removal of 'const' from
- ACE_WFMO_Reactor_Notify::dispatch_notifications. Signature change
- only - the function is a no-op in this class.
-
- * ace/Select_Reactor_Base.{h cpp}: In ACE_Select_Reactor_Notify,
- dispatch_notifications(), remove the notify pipe's handle from the
- dispatch handle set when handling a notification. Else it remained
- set and dispatchng I/O handlers came back and ran through it
- again, which artificially increased the count of dispatched
- handlers, and left some input unhandled when it was ready.
-
- * tests/MT_Reactor_Timer_Test.cpp: Added some verification checks to
- be sure that timer, notify, and input events all are handled at the
- right time.
-
-Thu Jul 08 12:35:23 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/test_config.h: Reorganized WinCE's macros and fix some
- minor unicode problems.
-
-Thu Jul 8 11:33:50 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Rebuilt the ACE+TAO.tar.gz file. For some reason, there
- was a ^M at the end of each line! Thanks to Bruce Edge
- <bedge@sattel.com> for reporting this.
-
- * ace/Based_Pointer_Repository.cpp (unbind): Rearranged the
- iterator code a bit to see if that'll make DEC C++ happy.
-
- * ace/OS.h: Moved the ACE_MALLOC_ALIGN macro into OS.h.
-
- * config-aix-4.x.h,
- config-lynxos.h,
- config-psos-diab-mips.h,
- config-psos-diab-ppc.h,
- config-psos-diab.h,
- config-psos-tm.h,
- config-psosim-g++.h,
- config-sunos5.5.h:
- Added the ACE_MALLOC_ALIGN macro back since it's used in
- an ACE test program.
-
- * ace/Malloc.cpp: Removed the trailing ';' on the #pragma
- instantiate. Thanks to David Levine for reporting this.
-
-Thu Jul 08 11:35:53 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added note about IP multicast support
- with Tornado II/VxWorks 5.4. It's not enabled by default
- in ACE.
-
-Thu Jul 8 11:31:13 1999 Steve Huston <shuston@riverace.com>
-
- * tests/Message_Queue_Test.cpp: Added a test to see the correct errno
- is set for a timed-out dequeue operation.
-
-Thu Jul 08 11:30:43 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added note about the uninitialized
- variable warnings from (the old) egcs that is
- distributed with Wind River's Tornado II.
-
-Thu Jul 08 10:40:02 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linuxppcr5.h: use config-linux-lxpthreads.h
- because thread support works.
-
- * ace/config-linuxppcr5.h, config-linux-common.h: use an
- ACE_DEFAULT_BASE_ADDR of 0x40000000, because that allows
- Naming_Test to work.
-
- With these two changes, all ACE tests pass on LinuxPPC.
- Thanks to Andreas Tobler <a.tobler@schweiz.ch> for the
- fixes and testing.
-
-Thu Jul 08 10:25:55 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h,Basic_Types.h: added ACE_U_LongLong conversion operator
- to ptr_arith_t. Moved ptr_arith_t typedef from OS.h to
- Basic_Types.h, so that it can be used by ACE_U_LongLong.
- Thanks to Chris for helping to figure this out.
-
-Thu Jul 8 08:34:22 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.cpp (log): Don't special-case the %t handling on AIX
- 4.3 - just 4.2 and earlier.
-
-Thu Jul 8 00:23:02 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc_T.cpp: Updated all the methods that check
- cp_ptr_ to return immediately if it's 0. Thanks to Dieter for
- suggesting this.
-
- * ace/Malloc.cpp (dump): Added a cast to trigger operator void
- * for freep_ (which may be a smart pointer in some
- configurations).
-
- * ace/Based_Pointer_Repository: Revised the implementation of
- this class to use the "Cheshire-Cat" technique to hide the
- implementation to avoid circular #include dependencies.
-
- * ace/Token.h (ACE_Token): Clarified that the timeouts are in
- "absolute" time, not relative time. Thanks to Everett Anderson
- <eea1@cs.wustl.edu> for reporting this.
-
- * ace/config-win32-borland.h: Only enable
- ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION if we're running on
- older versions of Borland. Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for reporting this.
-
-Wed Jul 07 22:44:22 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Recursive_Mutex_Test.cpp (main): added comment
- explaining why the stack size is now set.
-
- * tests/test_config.h: removed special ACE_MAX_PROCESSES
- and ACE_MAX_THREADS values for LynxOS, because most
- tests don't need them.
-
- * tests/Process_Mutex_Test.cpp: use only 4 processes
- instead of ACE_MAX_PROCESSES, on LynxOS only. Otherwise,
- the test's ACE_LOG_MSG->op_status assertion fails.
-
- * ACE-INSTALL.html: removed statements about some tests
- failing on LynxOS/PPC. Just Naming_Test and
- MM_Shared_Memory_Test fail now.
-
-Wed Jul 07 19:51:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/config-ghs-common.h: removed use of native auto_ptrs, as they
- implement an older specification which lacks the reset method.
-
-Wed Jul 7 17:17:10 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/ARGV.cpp (ACE_ARGV):
- * ace/OS.cpp (ACE_OS_Recursive_Thread_Mutex_Guard):
- * ace/Sched_Params.i (ACE_Sched_Priority_Iterator):
-
- Added some class members to the member initializer lists to fix
- some "Effective C++" warnings from EGCS.
-
-Wed Jul 7 16:33:29 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Cached_Conn_Test.cpp (main): Added default testing of LRU,
- LFU, FIFO caching strategies.
-
- * tests/Cached_Conn_Test.cpp (parse_args):
- * tests/Cache_Map_Manager_Test (parse_args):
- Runtime selection of different caching strategies
- (lru/lfu/fifo/null) made possible.
-
- * Caching_Strategies_T.{i,cpp}:
- Removed typos and also definied the virtual destructor for
- ACE_Caching_Strategy.
-
- * tests/Map_Manager_Test.cpp (test_cache_map_manager):
- Added <null_caching_strategy> to the construction of
- <cache_map_manager> and <hash_cache_map_manager> objects to make
- it in sync with the changes made below.
-
-Wed Jul 07 16:06:45 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Recursive_Mutex_Test.cpp: explicitly set the
- stack size. This solves the problem on LynxOS/PPC, below, so
- the 65-iteration workaround was removed. Thanks to Doug for
- this suggestion.
-
-Wed Jul 7 13:27:53 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-win32-borland.h,
- ace/config-win32.h: Added support for the ACE::major_versions(), etc.
- for PC versions of ACE, as well as UNIX. Thanks to
- Jeff Hellzen <jhellzen@my-deja.com> for suggesting this.
-
- * ace: Added a new Based_Pointer_T.i file that inlines the
- small methods.
-
- * ace/Malloc[_T]: Cleaned up the code so that we can use the
- ACE_Based_Pointer<> consistently when
- ACE_HAS_POSITION_INDEPENDENT_MALLOC is enabled and disable.
-
- * ace/Malloc.h: By default, ACE_MALLOC_PADDING is set to 1 so that
- we don't get "divide by zero" errors. However, it's only used
- in the computation of the ACE_Malloc_Header if it's > 1.
-
- * config-aix-4.x.h,
- config-lynxos.h,
- config-psos-diab-mips.h,
- config-psos-diab-ppc.h,
- config-psos-diab.h,
- config-psos-tm.h,
- config-psosim-g++.h,
- config-sunos5.5.h:
- Removed the ACE_MALLOC_ALIGN macro since it should no longer
- be necessary.
-
- * ace/Malloc.h: Changed the use of macro ACE_MALLOC_ALIGN to
- ACE_MALLOC_PADDING, which is more descriptive.
-
- * Fixed a typo in the TAO-mail.html program where ace-*
- should have been tao-*. Thanks to Pedro Alves Ferreira
- <pedro.ferreira@inescn.pt> for reporting this.
-
- * Fixed all vestiages of "BUG-REPORT-FORM" to say
- "PROBLEM-REPORT-FORM." Thanks to Neil B. Cohen <nbc@cisco.com>
- for reporting this.
-
-Wed Jul 07 12:27:32 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: added ACE_LACKS_FORK for PowerPC
- only. This cleans up most of the remaining test problems
- on LynxOS/PPC.
-
-Wed Jul 07 11:26:06 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc_T.cpp: Added ASYS_TEXT macros.
-
-Wed Jul 7 09:05:32 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Caching_Strategies_T.i (ACE_Caching_Strategy_Adapter<>::purge_
- percent): Don't return a value from a void function.
-
-Wed Jul 07 08:35:24 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Threads/future1.cpp
- * examples/Threads/future2.cpp
- * tests/Future_Set_Test.cpp
- * tests/Future_Test.cpp
-
- Fixed some template instantiations.
-
-Wed Jul 7 03:27:16 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Shared_Malloc: Added a new file called
- test_position_independent_malloc.cpp that exercises the new
- "position-independent" features of the ACE_Malloc< class.
-
- * ace/Malloc_T.cpp: All the ACE_Malloc constructors were calling
- open() without checking the results. Now, if failure occurs we
- print a message. In addition, we weren't checking in
- shared_malloc() to make sure that we'd been properly initialized
- by the constructor. Now, if we aren't initialized correctly we
- return 0. Thanks to Dietrich Quehl
- <Dietrich.Quehl@med.siemens.de> for reporting these problems.
-
- * ace/Memory_Pool: Added a new feature to ACE_Shared_Memory_Pool
- and ACE_Shared_Memory_Pool_Options that makes it possible to
- tailor the size of System V shared memory segments without
- breaking any existing ACE code. Thanks to Serge Kolgan
- <skolgan@cisco.com> for contributing this enhancement.
-
- * ace/Makefile.bor (OBJFILES): Updated this file to include
- the new Based_Pointer_Repository.obj entry.
-
- * ace/Makefile: Reran make depend.
-
- * ace/Makefile: Added the Based_Pointer_Repository.{h,cpp} and
- Based_Pointer_T.{h,cpp} files to the Makefile.
-
- * ace/Malloc.h: Added the first support for the new "Based Pointer
- Malloc" feature that's described below.
-
- * ace: Added the Based_Pointer_Repository.{h,cpp} and
- Based_Pointer_T.{h,cpp} files to the release. These classes
- make it possible to transparently use "pointers" in shared
- memory without having to ensure that the base addresses of all
- the pointers are mapped into separate processes at the same
- absolute memory base address. Thanks to Dietrich Quehl
- <Dietrich.Quehl@med.siemens.de> for contributing this software.
-
-Wed Jul 07 01:28:40 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Added the Based_Pointer_Repository.{h,cpp} and
- Based_Pointer_T.{h,cpp} files to the project files.
-
- * ace/Based_Pointer_Repository.cpp: Added define ACE_BUILD_DLL.
-
-Tue Jul 06 22:47:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: filter out Purify warning about
- non-pic R_SPARC_*.
-
- * ace/config-linuxppcr5.h: commented out #define __USE_XOPEN
- because it's not necessary with glibc 2.1.1. Thanks to
- Andreas Tobler <toa@pop.agri.ch> for reporting this.
-
- * ace/OS.i (thr_kill, thr_setprio, sema_destroy, sema_wait, chdir,
- unlink, sema_post, thr_continue, thr_getprio, thr_suspend,
- ioctl): on VxWorks only, removed ACE_ADAPT_RETVAL wrapper from
- system call, because it returns OK/ERROR (except for ioctl,
- which returns driver number/ERROR). Thanks to Elias Sreih
- <sealstd1@nortelnetworks.com> for reporting this.
-
- * tests/SOCK_Send_Recv_Test.cpp (server): added 5 second
- sleep so that the code agrees with the comments :-) It now
- passes on LynxOS. Thanks to Steve Huston for the fix. Also,
- changed an exit () call to ACE_OS::exit (), and changed a few
- C-style casts to ANSI-style casts.
-
-Tue Jul 6 19:20:16 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Cache_Map_Manager_T.h: Removed extra "ace/" from #pragma
- implementation directive.
-
- * tests/Cache_Map_Manager_Test.cpp: Changed typedefs for KEY and
- VALUE from size_t to ACE_UINT32 to they always pick up the
- specializations for ACE_Hash, etc. On HP-UX and AIX, size_t is
- not the same as ACE_UINT32, and this caused build errors.
-
- * tests/Conn_Test.cpp: Restrict range of the test on PharLap ETS,
- else it runs out of resources with default configuration.
-
-Tue Jul 6 18:21:37 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * ace/Token_Request_Reply.{h,i,cpp}: Added
- ACE_TOKEN_REQUEST_HEADER_SIZE for the fixed-length portion of
- ACE_Token_Request's Transfer struct, changing length
- calculations accordingly. Added two bytes to the buffer to
- accomodate '\0' values after the token name and client ID.
-
- * ace/Remote_Tokens.cpp: Changed the check for failure when
- receiving a reply in request_reply.
-
-Tue Jul 6 18:21:36 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Map_Manager.cpp: Made this file conform to the ACE programming
- guidelines.
-
-Tue Jul 6 18:31:34 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.x_sgic++.GNU:
- Removed pesky warnings about functions to big to optimize
- because it would be slow.
-
-Tue Jul 6 18:15:31 1999 Steve Huston <shuston@riverace.com>
-
- * ACE_INSTALL.html: Added a further note re PharLap ETS builds.
-
- * ace/config-pharlap.h: Added ACE_TIMER_SKEW of 10ms.
-
- * tests/Atomic_Op_Test.dsp:
- * tests/Barrier_Test.dsp:
- * tests/Cache_Map_Manager_Test.dsp:
- * tests/Future_Set_Test.dsp:
- Changed PharLap ETS configurations to put intermediate files in
- ETS_LIB\Debug (like all the others), not in ETS_DLL\Debug.
-
- * tests/test_config.h: Set ACE_MAX_CLIENTS to 4 for PharLap ETS.
-
- * tests/run_pharlap_tests.bat: Disabled some tests of unsupported
- facilities.
-
- * tests/SOCK_Test.cpp: Replaced "localhost" with ACE_LOCALHOST.
-
-Tue Jul 6 17:54:52 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu
-
- * ace/Caching_Strategies_T.{h,i,cpp}: Added Abstract Base class
- called ACE_Caching_Strategy and ACE_Caching_Strategy_Adaptor
- which facilitate changing of caching strategies at runtime using
- the External Polymorphism pattern.
-
- * ace/Cached_Connect_Strategy_T.{h, cpp}: Changed the signature of
- the constructor and also removed the <caching_strategy_> member.
-
- * ace/Cache_Map_Manager_T.{h, cpp}:
- * ace/Hash_Cache_Map_Manager_T.{h,cpp}:
- Changed the signature of the constructor.This was needed to be
- able to use the External Polymorphism pattern.
-
- * tests/Cache_Map_Manager_Test.cpp:
- * tests/Cached_Conn_Test.cpp:
- Made necessary changes to reflect the changes above.
- Thanks to Irfan of the DOC group for helping with this.
-
-Tue Jul 6 17:34:52 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h: Enabled ACE_HAS_PTHREADS_UNIX98_EXT and
- removed ACE_LACKS_RWLOCK_T for AIX 4.3. Moved some other
- ACE_LACKS settings to the pre-4.3 threads section to allow
- taking advantage of more capability on AIX 4.3.
-
-Tue Jul 06 16:29:32 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Moved the string conversion macros before including
- OS.i because we also use them in the file. Thanks to Carlos for
- reporting this.
-
- * OS.{h,i,cpp}:
- * Parse_Node.cpp: Windows CE fixes.
-
-Tue Jul 06 15:56:19 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.h,Object_Manager.{h,cpp},OS.{h,cpp}
- (ACE_Object_Manager*::init () and fini ()): return 1 instead
- of -1 after the first call, per program invocation. Thanks
- to Jody Hagins <jody@atdesk.com> for this suggestion.
-
-Tue Jul 6 15:04:49 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.i (sigwait): Fixed a problem with macro-itis and GCC. The
- following macro
-
- # if (__FreeBSD__ < 3) || defined (CHORUS) || defined (ACE_PSOS)
-
- was always evaluating to true, even when we're not on FreeBSD!.
- The following macro works around this:
-
- # if (defined (__FreeBSD__) && (__FreeBSD__ < 3)) ||
- defined (CHORUS) || defined (ACE_PSOS)
-
- Thanks to Elias Sreih <sealstd1@nortelnetworks.com> for
- reporting this and Carlos for suggesting the workaround.
-
-Tue Jul 6 11:39:59 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Updated the comment for ACE_ADAPT_RETVAL to
- clarify why it is needed. Thanks to Elias Sreih
- <sealstd1@nortelnetworks.com> for motivating this clarification.
-
-Tue Jul 6 10:42:02 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/test_config.h (ACE_INIT_LOG): Fixed a typo in VxWorks'
- definition of ACE_INIT_LOG. Thanks to David for reporting
- this.
-
-Tue Jul 6 10:17:19 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude/ace_flags.bor: Removed an extraneous
- "\orbsvcs". Thanks to Eugene Surovegin (surovegin@softlab.ru)
- for reporting this.
-
-Tue Jul 06 10:17:12 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: use mhmail instead of mailx on Suns.
- mailx loses the subject, when run from my cron job. Thanks
- to Naga for reporting this.
-
-Mon Jul 5 20:45:21 1999 Steve Huston <shuston@riverace.com>
-
- * ace/OS.(h i): Added code for support of pthread suspend/resume and
- pthreads reader-writer locks. These features are enabled by setting
- the ACE_HAS_PTHREADS_UNIX98_EXT and removing ACE_LACKS_RWLOCK_T.
-
- * ace/config-hpux11.h: Added ACE_HAS_PTHREADS_UNIX98_EXT and removed
- ACE_LACKS_RWLOCK_T - this enables native reader/writer locks as well
- as thread suspend and reusme.
-
- * ace/README: Added ACE_HAS_PTHREADS_UNIX98_EXT.
-
- * apps/JAWS/server/HTTP_Config.(h cpp):
- * apps/JAWS/server/HTTP_Response.( h cpp): const-corrected char *.
-
-Mon Jul 5 16:39:50 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ACE-INSTALL.html: Updated the discussion to point out
- our support for KAI C++ 3.3, Borland C++ Builder 4.0, and the
- IBM VisualAge C++ compiler.
-
- * ace/Future.h: Moved the static methods until the bottom
- of the ACE_Future_Rep class to workaround a bug with Borland's
- C++ Builder. Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for testing this fix.
-
- * ace/Timer_Heap_T.cpp (grow_heap): Removed an extra memory
- allocation that snuck in whilst integrating the IBM VisualAge
- C++ compiler patches. Thanks to David Levine for reporting
- this.
-
- * Added new Borland Makefiles. Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for these.
-
- * include/makeinclude: Added several new platform configuration
- files for Borland C++ Builder. Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for these.
-
-Mon Jul 5 13:08:36 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Cache_Map_Manager_Test.cpp: Added ACE_UNUSED_ARG macros
- for <result> to ward off warnings.
-
-Mon Jul 05 13:00:19 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Malloc.i (free): Fixed unused arg warning for <ptr>.
-
- * examples/Threads/future1.cpp:
- * examples/Threads/future2.cpp:
-
- Fixed template instantiations.
-
-Mon Jul 5 12:25:11 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.i (strspn):
- This function cannot return -1 to indicate errors, the function
- returns an unsigned integral type.
-
-Mon Jul 05 12:14:56 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i: Wchat_t version of strenvdup should only be available
- on Win32. Thanks to Bala, Carlos, and David for noticing this.
- (strspn): Ditto to this function.
-
-Mon Jul 05 09:58:07 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: in example config.h for VxWorks on NT,
- use "" style #includes instead of <>. <> should only be
- used for system headers.
-
-Mon Jul 05 04:11:05 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/version_tests/Future_Set_Test.dsp:
- * tests/version_tests/version_tests.dsw: Added Future_Set_Test
- into version tests workspace.
-
- * ace/ACE.cpp:
- * ace/ACE.h:
- * ace/DLL.cpp:
- * ace/DLL.h:
- * ace/Env_Value_T.h:
- * ace/Env_Value_T.i:
- * ace/FIFO.cpp:
- * ace/FIFO.h:
- * ace/FIFO.i:
- * ace/FIFO_Recv.cpp:
- * ace/FIFO_Recv.h:
- * ace/FIFO_Recv_Msg.cpp:
- * ace/FIFO_Recv_Msg.h:
- * ace/FIFO_Send.cpp:
- * ace/FIFO_Send.h:
- * ace/FIFO_Send_Msg.cpp:
- * ace/FIFO_Send_Msg.h:
- * ace/FILE_Connector.i:
- * ace/Filecache.cpp:
- * ace/Get_Opt.cpp:
- * ace/INET_Addr.cpp:
- * ace/Local_Name_Space_T.cpp:
- * ace/Log_Record.cpp:
- * ace/Message_Queue_T.cpp:
- * ace/Name_Proxy.cpp:
- * ace/Naming_Context.cpp:
- * ace/Naming_Context.h:
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
- * ace/Parse_Node.cpp:
- * ace/Parse_Node.h:
- * ace/Proactor.cpp:
- * ace/Process.cpp:
- * ace/RB_Tree.cpp:
- * ace/Registry_Name_Space.cpp:
- * ace/Remote_Name_Space.cpp:
- * ace/Remote_Name_Space.h:
- * ace/Remote_Tokens.cpp:
- * ace/Remote_Tokens.h:
- * ace/Remote_Tokens.i:
- * ace/SOCK_Dgram_Mcast.cpp:
- * ace/SPIPE_Connector.cpp:
- * ace/SV_Message_Queue.cpp:
- * ace/SV_Semaphore_Simple.cpp:
- * ace/SV_Shared_Memory.cpp:
- * ace/Stats.cpp:
- * ace/Stats.h:
- * ace/Strategies_T.cpp:
- * ace/Strategies_T.i:
- * ace/Svc_Conf.h:
- * ace/Svc_Conf.y:
- * ace/Svc_Conf_y.cpp:
- * ace/Token_Collection.cpp:
- * ace/Token_Collection.h:
- * ace/Token_Collection.i:
- * ace/Token_Invariants.cpp:
- * ace/Token_Invariants.h:
- * ace/UPIPE_Acceptor.cpp:
- * ace/UPIPE_Connector.cpp:
- * ace/UPIPE_Connector.i:
- * ace/WFMO_Reactor.cpp:
- * ace/WIN32_Asynch_IO.cpp:
- * ace/WIN32_Proactor.cpp:
- * ace/config-win32-common.h:
- * tests/CDR_Test.cpp:
- * tests/Cache_Map_Manager_Test.cpp:
- * tests/Collection_Test.cpp:
- * tests/DLL_Test.cpp:
- * tests/DLL_Test.h:
- * tests/DLList_Test.cpp:
- * tests/Dynamic_Priority_Test.cpp:
- * tests/Env_Value_Test.cpp:
- * tests/Handle_Set_Test.cpp:
- * tests/High_Res_Timer_Test.cpp:
- * tests/IOStream_Test.cpp:
- * tests/MT_Reactor_Timer_Test.cpp:
- * tests/Map_Manager_Test.cpp:
- * tests/Map_Test.cpp:
- * tests/Message_Queue_Test.cpp:
- * tests/Naming_Test.cpp:
- * tests/New_Fail_Test.cpp:
- * tests/Pipe_Test.cpp:
- * tests/Priority_Reactor_Test.cpp:
- * tests/Process_Mutex_Test.cpp:
- * tests/Process_Strategy_Test.cpp:
- * tests/Process_Strategy_Test.h:
- * tests/Reactor_Performance_Test.cpp:
- * tests/SOCK_Connector_Test.cpp:
- * tests/SPIPE_Test.cpp:
- * tests/SV_Shared_Memory_Test.cpp:
- * tests/Service_Config_Test.cpp:
- * tests/Thread_Manager_Test.cpp:
- * tests/Time_Service_Test.cpp:
- * tests/Tokens_Test.cpp:
- * tests/UPIPE_SAP_Test.cpp:
- * tests/Upgradable_RW_Test.cpp:
- * tests/test_config.h: Changes to make it possible to write pure
- UNICODE programs on NT. Now it is possible to compile ACE on NT
- with ACE_HAS_MOSTLY_UNICODE_APIS defined. Most tests passed
- without trouble. However, Future_Set_Test is not yet included
- in the version_tests and Dynamic_Priority_Test also
- failed. Thanks to Valery Arkhangorodsky
- <valerya@servicesoft.com> for providing a preliminary patch for
- ACE to motivate the change.
-
-Sun Jul 04 18:57:13 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: when building tao_idl on NT to be
- used for generating code for VxWorks, build without
- ACE_HAS_EXCEPTIONS. Otherwise, TAO_IDLFLAGS must
- be overridden to be null instead of -Ge 1. Thanks to
- Carlos for this suggestion.
-
-Sun Jul 4 17:06:17 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Notify_Performance_Test.cpp,
- tests/Message_Block_Test.cpp,
- tests/Priority_Task_Test.cpp,
- tests/Thread_Pool_Reactor_Test.cpp: Fixed a couple of
- warnings related to initializing char *'s with const char *'s.
- Thanks to SunC++ 5.0 for reporting this.
-
-Sun Jul 04 16:07:33 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated instructions for building on
- NT host for VxWorks.
-
-Sun Jul 04 15:41:34 1999 David L. Levine <levine@cs.wustl.edu>
-
- * many Makefiles: call ace_components via sh, instead of
- directly in the make $(shell) command. This allows it
- to work on platforms that don't have /bin/sh, such as NT.
-
-Sun Jul 4 12:34:24 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Timer_Hash_T.cpp (cancel): Reversed a comparison from
- <= to > to make the ACE_ASSERT replacement work properly.
- Thanks to David Levine for reporting this.
-
- * tests/Thread_Pool_Test.cpp (open): We need to define 'int i'
- outside of the for loop to keep EGCS from complaining for some
- reason.
-
- * ace/Timer_Heap_T.cpp: Reformatted this code to conform to
- the ACE programming guidelines.
-
- * ace/Timer_Heap_T.cpp (schedule): Replaced an ad hoc check for
- allocator failure with the ACE_ALLOCATOR_RETURN macro.
-
- * ace/RB_Tree.cpp: Modified Carlo's change so that we add an
- extra set of parens in a special way, rather than using a new
- macro. This is more consistent with how we deal with this
- problem in other parts of ACE.
-
- * ace/RB_Tree.cpp (insert_i): Removed an unreachable statement.
- Thanks to David Levine for reporting this.
-
-Sat Jul 3 22:12:07 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Object_Manager.cpp (get_singleton_lock):
- Fixed one of the ACE_Thread_Mutex version of this method. One of
- the braces after an if() statement got "accidentaly" removed;
- binding the "else" part of the statement to the previous if()
- instead.
-
-Sat Jul 3 18:54:18 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/RB_Tree.cpp:
- If the "constructor" parameter in an ACE_NEW_RETURN macro has a
- comma in it (such as Foo(x,y,z)) we need to replace it with a
- macro, so it is seen as a single token by the pre-processor.
- Otherwise it (the pre-processor) gets confused and uses
- the comma as separator. Thanks to David for detecting this one.
-
-Sat Jul 3 15:57:40 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp:
- Fixed error code return, it should be -1 not ACE_INVALID_HANDLE
-
- * ace/SOCK_Connector.cpp:
- Fixed stray comment characters.
-
-Sat Jul 03 14:04:10 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: call ace_components via sh, and use single
- instead of double quotes, so that it works with Cygwin
- on NT host.
-
-Sat Jul 3 12:05:46 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast: Modified the subscribe() method to return
- 0 or -1 rather than ACE_HANDLE. Thanks to Vidya Narayanan
- <CVN065@lmpsil02.comm.mot.com> for suggesting this.
-
- * ace/SOCK_Acceptor,
- ace/SOCK_Connector,
- ace/SOCK: Added the ACE_Protocol_Info *, ACE_SOCK_GROUP, and
- flags parameters to these classes so we can pass down the GQoS
- information. Thanks to Vidya Narayanan
- <CVN065@lmpsil02.comm.mot.com> for suggesting this.
-
- * ace/SOCK.h: Added the reuse_addr parameter to open() and the
- ACE_SOCK constructor.
-
- * tests/Future_Set_Test.cpp (main): We were casting a
- const ASYS_TCHAR * to u_int, yikes!
-
- * ace/RB_Tree.cpp: Cleaned up the code so it's conformant with the
- ACE programming style, particularly for dynamic memory
- allocation (which wasn't using ACE_NEW).
-
- * ace/ACE.cpp (get_ip_interfaces): Cleaned up the code so it conforms
- to the ACE programming guidelines.
-
- * ace/Timer_Hash_T.cpp: Fixed a number mistakes where the return
- value of new wasn't being checked.
-
- * ace/Timer_Heap_T.cpp,
- ace/Timer_Wheel_T.cpp: Removed the apparently extraneous parens
- used in the ACE_NEW* macros in order to keep EGCS 2.95 happy.
- Thanks to Jody Hagins and Arturo Montes
- <mitosys@colomsat.com.co> for reporting this. BTW, if this
- causes problems on any compilers please let me know.
-
- * ace: Reformatted all the ACE_NEW* macros so they conform to
- ACE programming style.
-
- * ace/Priority_Reactor.cpp: Cleaned up the code to conform to
- the ACE programming style.
-
- * ace/OS.cpp (tss_base): Cleaned up a loop a bit so it conforms
- to the ACE programming style.
-
-Sat Jul 3 11:09:51 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/WIN32_Asynch_IO.cpp
- * ace/WIN32_Proactor.cpp
- Addressed Doug's @@ Alex comments. It was simply making some
- debug statements conditional upon ACE::debug () flag.
-
-Fri Jul 2 19:50:29 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: There was a typo in the ACE_WIN32CALL_RETURN() macro
- for Borland C++. Thanks to Jody Hagins <jody@atdesk.com> for
- reporting this.
-
- * ace/config-win32-borland.h: Clarified the fact that this file
- shouldn't be #included directly. Thanks to Thaddeus Olczyk
- <olczyk@interaccess.com> for motivating this.
-
-Fri Jul 02 22:22:12 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.x-hpc++.h: Added
- ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION for aC++.
-
- * include/makeinclude/platform_hpux_aCC.GNU: Removed the suppression
- of warning 829 (auto convert of string literal to char * deprecated).
- With the exception of some JAWS code, all of ACE has been rid of the
- offenders.
-
- * websvcs/tests/Makefile: Replace VLDLIBS with correct LDLIBS. Now
- works on AIX.
-
-Fri Jul 2 19:37:16 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Future_Test.cpp:
- The timeout variable was declared in one scope but used in
- another one. Added another timeout variable to keep it happy.
-
- * tests/Message_Queue_Test.cpp:
- A pointer was initialize using "0x" i think it was a typo and
- should be "0".
-
-Fri Jul 02 18:28:31 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux11.h: Added ACE_HAS_BROKEN_T_ERROR.
- Enable threads by default, unless site config explicitly turns it
- off by setting ACE_HAS_THREADS to 0. Thanks to Brian Wallis
- <Brian.Wallis@sr.com.au> for motivating this change.
-
- * ace/config-hpux-11.x-hpc++.h: Added
- ACE_HAS_STD_TEMPLATE_SPECIALIZATION.
-
- * include/makeinclude/platform_hpux_aCC.GNU: If on 11.00 and the
- user requests a build w/o threads, set ACE_HAS_THREADS to 0 to
- override the config default (see config-hpux11.h, above).
-
-Fri Jul 2 11:49:12 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Cached_Conn_Test.cpp: This is a test which shows how the
- Strategy Connector can automagically as well as explicitly cache
- and purge connection from its connection cache using different
- caching strategies.
-
- * ace/Cached_Connect_Strategy_T.{h, cpp}: Added a method
- "purge_connections ()" which allows explicit purging of
- connnections from the connection cache.
-
-Fri Jul 2 13:54:14 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Future_Set.cpp,
- ace/Future.cpp: Added ACE_TYPENAME at a couple of places
- to make HP/UX aCC happy. Thanks to Eric Mitchell
- <emitchell@altaira.com> for reporting this.
-
- * ace/SOCK_Dgram: Added send() and recv() methods that take
- ACE_OVERLAPPED structures. Thanks to Vidya Narayanan
- <CVN065@lmpsil02.comm.mot.com> for suggesting this.
-
- * ace/OS.h: Added an ACE_OVERLAPPED_FLAG that's used to abstract
- away from the WSA_FLAG_OVERLAPPED macro on Win32. Thanks to
- Vidya Narayanan <CVN065@lmpsil02.comm.mot.com> for suggesting
- this.
-
- * ace/OS.cpp: Removed unnecessary ';' after ACE_BEGINTHREADEX() and
- ACE_ENDTHREADEX(). Thanks to Kris Johnson
- <kjohnson@gardnersys.com> for reporting this.
-
- * ace/Service_Config.cpp (open_i): It appears that
-
- if (ACE::debug ())
- ACE_Log_Msg::disable_debug_messages ();
-
- should really be
-
- if (ACE::debug () == 0)
- ACE_Log_Msg::disable_debug_messages ();
-
- Thanks to Jonathan Reis <reis@minniemouse.cemax.com> for
- reporting this.
-
- * tests/Future_Test.cpp (main): Make sure to use absolute time
- rather than relative time for the timeouts. Thanks to Peter
- Brandstrom <peter.brandstrom@ericsson.com> for reporting this.
-
-Fri Jul 02 13:44:17 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Thread_Pool_Reactor_Test.cpp (worker): Added const fix to
- <msg> and <rendezvous>.
-
- * tests/Priority_Task_Test.cpp: Added const fix to <usage>.
-
- * tests/Notify_Performance_Test.cpp (print_results): Added const
- fix to <reactor_type>.
-
- * tests/Message_Block_Test.cpp: Added const fix to <name_>.
-
-Fri Jul 2 11:49:12 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * Initialized some variables to zero to avoid some silly warnings
- from egcs (with exceptions):
-
- - ace/Free_List.cpp
- - ace/Malloc.i
- - tests/DLL_Test.cpp
- - tests/Mem_Map_Test.cpp
- - tests/Message_Queue_Test.cpp
- - tests/Reactor_Notify_Test.cpp
-
-Fri Jul 2 11:49:12 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Strategies_T.h (ACE_Cached_Connect_Strategy): Made "virtual"
- methods which were getting overriden in the derived
- Cached_Connect_Strategy_Ex class.
-
- * ace/Cached_Connect_Strategy_T.{h, cpp}: Added a method
- "purge_connections ()" which allows explicit purging of
- connnections from the connection cache.
-
- * tests/Cached_Conn_Test.cpp: This is a test which shows how the
- Strategy Connector can automagically as well as explicitly cache
- and purge connection from its connection cache using different
- caching strategies.
-
-Fri Jul 2 11:49:12 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Cached_Conn_Test.cpp: This is a test which shows how the
- Strategy Connector can automagically as well as explicitly cache
- and purge connection from its connection cache using different
- caching strategies.
-
- * ace/Cached_Connect_Strategy_T.{h, cpp}: Added a method
- "purge_connections ()" which allows explicit purging of
- connnections from the connection cache.
-
-Fri Jul 02 11:50:21 1999 Steve Huston <shuston@riverace.com>
-
- * ace/ace_lib.dsp: Added Pharlap ETS configurations for Debug and
- Release.
-
- * ace/config-pharlap.h: Added ACE_LACKS_* definitions to avoid some
- unimplemented memory mapped things. Added a definition for
- ACE_PAGE_SIZE because it's not obvious how to get it at run time.
- Include <embkern.h> because some of the OS functions call ETS
- kernel functions for low-level system info gathering.
- Set ACE_HAS_TSS_EMULATION. The PharLap TSS leaves some to be
- desired, according to TSS_Test.
-
- * ace/config-win32-common.h: In building for PharLap, don't bring in
- the OS-supplied wsock32.lib - need to use the PharLap one.
-
- * ace/ACE.cpp: PharLap ETS changes:
- ACE::ldfind: PharLap doesn't have expand environment strings.
- ACE::get_ip_interfaces: Use PharLap kernel functions to find
- interfaces and learn their addresses.
- ACE::terminate_process: Unsupported on PharLap.
- ACE::handle_timed_open: If the open times out, set errno to
- ETIMEDOUT, not ETIME.
- ACE::handle_timed_accept: If the select times out, set errno to
- ETIMEDOUT, not ETIME.
- ACE::sock_error: If not a known error, format a message with the
- error number in it - this is the only chance for a PharLap
- system error to indicate the error number.
-
- * ace/OS.h: Changed def of ACE_DEFAULT_SERVER_HOST to ACE_LOCALHOST.
-
- * ace/OS.cpp (ACE_OS::uname): PharLap: Use ETS kernel functions to get
- target processor class. PharLap doesn't do GetSystemInfo.
-
- * ace/OS.i (ACE_OS::hostname): PharLap: Attempt gethostname if using
- RT version, though this isn't too reliable (requires ethernet and
- BOOTP).
- (ACE_OS::dlerror): PharLap doesn't support FormatMessage,
- so format the error number.
- (ACE_OS::mmap, ACE_OS::mprotect, ACE_OS::msync): PharLap doesn't
- do memory-mapped files.
- (ACE_OS::getpagesize): PharLap - use page size set from config.h.
- Don't know a way to get this info at run time.
- (ACE_OS::hostname (whar_t *, size_t)): PharLap - no wide chars.
-
- * ace/Log_Msg.cpp (log): PharLap doesn't do FormatMessage, so print
- <unknown error> = %d for %p.
-
- * ace/Pipe.cpp (open): The protocol level for TCP_NODELAY on PharLap
- is SOL_SOCKET, as opposed to Win32, where it's IPPROTO_TCP.
-
- * ace/SPIPE_Connector.cpp (connect): PharLap doesn't have the
- SetNamedPipeHandleState function.
-
- * ace/WFMO_Reactor.cpp: PharLap ETS changes, because PharLap doesn't
- implement async I/O, or WaitForMultipleObjectsEx.
- register_handler_i: (This is a general Winsock 1.1 change) Creating
- an event handle for a socket is not supported.
- ok_to_wait, wait_for_multiple_events: Use WaitForMultipleObjects,
- not WaitForMultipleObjectsEx. Should be fine since the big
- difference is alertable, and that's not supported on ETS anyway.
-
- * tests/test_config.h: On PharLap, direct all logging to host console.
-
- * tests/tests_pharlap_msvc.lnk: Cleaned things up; extended stack size
- from 8K to 32K. Change the starting load offset to
- 0x100000 - the tests don't all fit in the default range.
- Disabled the target screen driver to make all the test output from
- all threads go to the host, thereby getting saved in the log files.
-
- * tests/run_pharlap_tests.bat: Fixed names of the executables.
-
- * tests/Atomic_Op_Test.dsp:
- * tests/Barrier_Test.dsp:
- * tests/Basic_Types_Test.dsp:
- * tests/Buffer_Stream_Test.dsp:
- * tests/CDR_Test_Test.dsp:
- * tests/Collection_Test.dsp:
- * tests/Conn_Test.dsp:
- * tests/DLList_Test.dsp:
- * tests/Dynamic_Priority_Test.dsp:
- * tests/Enum_Interfaces_Test.dsp:
- * tests/Env_Value_Test.dsp:
- * tests/Future_Test.dsp:
- * tests/Handle_Set_Test.dsp:
- * tests/Hash_Map_Manager_Test.dsp:
- * tests/High_Res_Timer_Test.dsp:
- * tests/IOStream_Test.dsp:
- * tests/Map_Manager_Test.dsp:
- * tests/Map_Test.dsp:
- * tests/Mem_Map_Test.dsp:
- * tests/Message_Block_Test.dsp:
- * tests/Message_Queue_Notifications_Test.dsp:
- * tests/Message_Queue_Test.dsp:
- * tests/MM_Shared_Memory_Test.dsp:
- * tests/MT_Reactor_Timer_Test.dsp:
- * tests/MT_SOCK_Test.dsp:
- * tests/Naming_Test.dsp:
- * tests/New_Fail_Test.dsp:
- * tests/Notify_Performance_Test.dsp:
- * tests/OrdMultiSet_Test.dsp:
- * tests/Pipe_Test.dsp:
- * tests/Priority_Buffer_Test.dsp:
- * tests/Priority_Reactor_Test.dsp:
- * tests/Priority_Task_Test.dsp:
- * tests/Process_Mutex_Test.dsp:
- * tests/Process_Strategy_Test.dsp:
- * tests/RB_Tree_Test.dsp:
- * tests/Reactor_Exceptions_Test.dsp:
- * tests/Reactor_Notify_Test.dsp:
- * tests/Reactor_Performance_Test.dsp:
- * tests/Reactor_Timer_Test.dsp:
- * tests/Reactors_Test.dsp:
- * tests/Reader_Writer_Test.dsp:
- * tests/Recursive_Mutex_Test.dsp:
- * tests/Reverse_Lock_Test.dsp:
- * tests/Semaphore_Test.dsp:
- * tests/Service_Config_Test.dsp:
- * tests/Sigset_Ops_Test.dsp:
- * tests/Simple_Message_Block_Test.dsp:
- * tests/SOCK_Connector_Test.dsp:
- * tests/SOCK_Send_Recv_Test.dsp:
- * tests/SOCK_Test.dsp:
- * tests/SPIPE_Test.dsp:
- * tests/SString_Test.dsp:
- * tests/SV_Shared_Memory_Test.dsp:
- * tests/Svc_Handler_Test.dsp:
- * tests/Task_Test.dsp:
- * tests/Thread_Manager_Test.dsp:
- * tests/Thread_Mutex_Test.dsp:
- * tests/Thread_Pool_Reactor_Test.dsp:
- * tests/Thread_Pool_Test.dsp:
- * tests/Time_Service_Test.dsp:
- * tests/Time_Value_Test.dsp:
- * tests/Timeprobe_Test.dsp:
- * tests/Timer_Queue_Test.dsp:
- * tests/Tokens_Test.dsp:
- * tests/TSS_Test.dsp:
- * tests/Upgradeable_RW_Test.dsp:
- * tests/UPIPE_SAP_Test.dsp:
- Fixed settings for PharLap ETS configurations.
-
- * tests/Conn_Test.cpp (server): If the acceptor fails, do not try to
- close the svc_handler - the failed ACE_Oneshot_Acceptor already
- closed it.
-
- * tests/SOCK_Send_Recv_Test.cpp: Use ACE_LOCALHOST, not "localhost".
-
-Thu Jul 1 21:49:39 1999 Matthew J Braun <mjb2@cs.wustl.edu>
-
- * ace/Containers_T.i,h,cpp
- Added reset () methods to the derived classes of
- ACE_Double_Linked_List_Iterator because the behavior of the base
- class's version was not sufficient (and would cause way fun
- segfaults when used).
-
- * tests/Map_Manager_Test.cpp
- * tests/DLList_Test.cpp
- ACE_const_cast'ed some string literals to char *'s to appease
- the evil monstrosity that is SC 5.0.
-
-Wed Jun 30 18:11:41 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.i (strncasecmp):
-
- Corrected ACE_TRACE statement to contain "strncasecmp" instead
- of "strcasecmp."
-
-Thu Jul 01 21:07:22 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.43 released.
-
-Thu Jul 01 10:53:33 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU:
- set INCLDIRS, so that wrapper_macros.GNU doesn't insert -I.
- Otherwise, with GHS on NT host, ACE's Signal.h gets #included
- instead of VxWorks' signal.h by target/h/private/sigLibP.h.
- Thanks to Dale Wood <dale_wood@Mitel.com> and
- Dave Steele <Dave_Steele@Mitel.COM> for helping to figure
- this out.
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU,
- bin/ace_ld: changed -c option to -C [...] --, so
- that its arguments don't need to be quoted. I
- couldn't figure out a way to quote on NT host. Thanks
- to Dale Wood <dale_wood@Mitel.com> for enlightening me
- on some of the intricacies of NT.
-
-Thu Jul 01 10:47:41 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/libsize.pl: always use `pwd`, because the PWD environment
- variable doesn't appear to get updated by recursive makes.
-
-Thu Jul 01 08:46:10 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: filter out lines from IDL_Cubit
- that contain "0 errors".
-
-Thu Jul 01 00:24:52 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: Added a table explaining how to use
- all the different ACE_*_STRING macros.
-
- * tests/DLList_Test.cpp:
- * tests/Hash_Map_Manager_Test.cpp:
- * tests/Map_Manager_Test.cpp:
- * tests/Message_Block_Test.cpp:
- * tests/Notify_Performance_Test.cpp:
- * tests/Priority_Task_Test.cpp:
- * tests/Thread_Pool_Reactor_Test.cpp:
- * tests/test_config.h: UNICODE fixes. The usage of ASYS_TCHAR and
- LPCTSTR were mistaken in many places.
-
-Wed Jun 30 16:13:58 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Future_Set_Test.cpp: Added missing template instantiation
- for ACE_Hash_Map_Reverse_Iterator_Ex. Also, added some fixes
- from John Tucker <jtucker@infoglide.com>.
-
-Wed Jun 30 12:09:22 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_bcc.ide:
- * tests/tests_bcc.ide:
- * *.{bpr,bpg}: Removed unused BCB project files.
-
-Tue Jun 29 23:12:58 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.i:
- Use ACE_CAST_CONST to keep the silly Sun/CC 4.2 from
- complaining.
-
-Tue Jun 29 22:48:43 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (strncasecmp): Changed <n> to <len>.
-
-Tue Jun 29 22:33:55 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.i:
- Fixed warnings in green hills and possibly othre EDG-based
- compilers.
-
- * tests/run_tests.sh:
- * tests/run_tests.vxworks:
- Take Future_Set_Test out, it does not work in too many
- platforms.
-
-Tue Jun 29 21:24:13 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK.cpp (open): Removed an unused variable. Thanks
- to Carlos for reporting this.
-
-Tue Jun 29 20:53:41 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix5.3-g++.h:
- IRIX 5.3 (!) has a DIRENT structure, thanks to Isaac Stoddard
- <i_stoddard@hso.link.com> for providing this fix.
-
-Tue Jun 28 20:19:11 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Manually cleaned up these projects and fixed them so they should
- work on NT Alpha again.
-
-Tue Jun 29 18:48:22 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Functor_T.h (class ACE_Pointer_Hash): Added new class for
- hashing pointers on their values.
-
- * ace/Future_Set: Restored future map to be a
- ACE_Hash_Map_Manager_Ex.
-
-Tue Jun 29 14:45:38 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/run_tests.bat: Removed New_Fail_Test from the
- run_tests.bat (the script for NT). This tests takes too long to
- run and swaps out the entire machine making is impossible to do
- useful things while the test is running. Note that the test is
- still there and can be run by hand (i.e., on its own, without
- the run_tests.bat script).
-
- * ace/Future: Changed the observer collection to be an unbounded
- set and changed the future map to map manager. These are
- temporary changes to get things compiling again. Once we figure
- out the correct hashing functions, we can restore the original
- code.
-
-Tue Jun 29 13:38:52 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * AUTHORS:
-
- Added an AUTHORS file to bring ACE closer to recent software
- distribution conventions.
-
- * Makefile:
-
- Added Carlos' websvcs directory to the release, in addition to
- the missing top-level ACE Configuration project files and
- directories.
-
- * config.guess:
- * config.sub:
- * ltconfig:
- * ltmain.sh:
- * missing:
- * mkinstalldirs:
-
- Updated from latest GNU libtool and GNU automake.
-
-Tue Jun 29 12:07:08 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * README:
- * THANKS:
-
- Moved list of contributors to the file `THANKS' to bring the
- distribution closer to conventional distribution standards.
-
- * Makefile:
-
- Added the THANKS file to the list of controlled files so that it
- gets distributed with ACE.
-
-Tue Jun 29 11:27:23 1999 Matthew J Braun <mjb2@cs.wustl.edu>
-
- * ace/Containers_T.i: Modified next method in ACE_DLList_Iterator
- to avoid segfaults (a bad thing).
-
-Tue Jun 29 10:54:15 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.i:
- Sun/CC was not pleased with a cast from "void* const" to "const
- char*", and rightly so.
-
-Tue Jun 29 09:21:06 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/SOCK_Dgram.h:
- * ace/SOCK_Dgram.i:
- Fixed the unix version ACE_OS::sendto() call.
- Also fixed the Win32 version and the Win32 version of
- ACE_OS::recvfrom, had to change the signatures to make them safe
- and fit the WinSock2 interfaces.
-
-Tue Jun 29 07:07:30 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: allow _ with -l and -m options, and
- @ and . with -m option.
-
-Mon Jun 28 21:31:58 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS: Added a constructor to ACE_Flow_Spec to initialize
- its various fields wholesale. Thanks to Kumar Surender
- <csk037@lmpsil02.comm.mot.com> for this suggestion.
-
- * ace/SOCK: Added a new constructor and a new open() method
- that pass through the QoS information required by WSASocket().
-
- * ace/{OS,SOCK_Connector,SOCK_Dgram,SOCK_Dgram_Mcast}: Renamed
- ACE_Connect_QoS_Params to ACE_QoS_Params since (1) it's used in
- ACE_OS::connect() *and* ACE_OS::join_leaf() and (2) it's used
- for Dgrams, which aren't connection oriented. Thanks to Kumar
- Surender <csk037@lmpsil02.comm.mot.com> for this suggestion.
-
- * ace/OS: Added set/get methods for time-to-live on the
- ACE_Flow_Spec classes. This is necessary since RAPI defines
- this.
-
- * ace/OS: Added a new ACE_OS::recvfrom() method that's a wrapper
- for the WSARecvFrom() on Win32 and (will be) an "emulation" on
- non-Win32 platforms.
-
- * ace/OS: Added a new ACE_OS::sendto() method that's a wrapper
- for the WSASendTo() on Win32 and an "emulation" on non-Win32
- platforms.
-
- * ace/OS.h: Updated the QoS documentation to clarify that these
- features are appropriate for IntServ (RSVP) *and* DiffServ.
- Thanks to Kumar Surender <csk037@lmpsil02.comm.mot.com>, Vidya
- Narayanan <CVN065@lmpsil02.comm.mot.com> and Pradeep Avasthi
- <Pradeep.Avasthi@motorola.com> suggesting this.
-
- * ace/SOCK_Dgram.h: Added send() and recv() methods for
- ACE_SOCK_Dgram that take overlapped I/O parameters. This is
- needed for the GQoS WinSock API.
-
-Mon Jun 28 21:53:06 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/libsize.pl: added support for liborbsvcs, and
- for shared libs (with -s option).
-
- * bin/check_build_logs: fixed command-line argument processing.
-
-Mon Jun 28 17:30:08 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (recvv): We must not passed a null pointer to <flags>
- but a pointer pointing to a real flag. This fixed the
- SOCK_Send_Recv_Test failing on NT problem. Thanks to Jody
- Hagins <jody@atdesk.com> for reporting this.
-
-Mon Jun 28 15:10:50 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T: Removed ACE_Hash_Addr which was no longer used
- in ACE and is not necessary given the new
- ACE_Hash_Map_Manager_Ex class.
-
-Mon Jun 28 15:00:01 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.cpp:
- Added new method to reset the state of a CDR stream without need
- for any memory allocations.
-
-Mon Jun 28 12:48:35 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: added this script, which checks build
- logs named *.log, of current day.
-
-Mon Jun 28 09:32:59 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/{Future_Set,Future}: Integrated new enhancements to use
- the ACE_Hash_Map_Manager rather than the ACE_DLL_Linked_List to
- speed up notifications for the Future Set. Thanks to John
- Tucker <jtucker@infoglide.com> for this enhancement.
-
- * tests: Integrated the Future_Set_Test into this directory and the
- various batch files. Thanks to John Tucker
- <jtucker@infoglide.com> for this test.
-
- * ace/Map_Manager.i: Added an ACE_const_cast to the lock_ used
- in the newly const total_size() and current_size() methods.
-
- * ace/Map_T,
- * ace/Map_Manager,
- * ace/Cache_Map_Manager_T,
- * ace/Active_Map_Manager_T,
- * ace/Hash_Map_Manager_T: The current_size() and total_size() methods
- must be const.
-
- * ace/OS.i: Fixed a type inconsistency where wchar_t should have been
- char and added a missing ';'.
-
- * ace/OS.i: Fixed a typo where last_error should have been
- lerror. Thanks to Chris Gill for reporting this.
-
- * ace/OS.cpp (ACE_BEGINTHREADEX): Oops, mistyped "_beginthreadex()"
- as "_beingthreadex()". I must be going through an existential
- phase ;-). Thanks to Chris Gill for reporting this.
-
- * ace/OS.i: Fixed a typo where last_error should have been
- lerror. Thanks to Chris Gill for reporting this.
-
- * ace/OS.cpp (ACE_BEGINTHREADEX): Oops, mistyped "_beginthreadex()"
- as "_beingthreadex()". I must be going through an existential
- phase ;-). Thanks to Chris Gill for reporting this.
-
-Sun Jun 27 18:03:24 1999 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * ACE-INSTALL.html: Updated the discussion for Borland C++
- Building 4.0 and IBM's VisualAge C++ compiler to reference the
- appropriate maintainers.
-
- * ace/WIN32_Proactor.cpp, ace/WIN32_Asynch_IO.cpp: Added back some
- initializers to keep EGCS happy.
-
- * ace/config-g++-common.h: Added ACE_LACKS_AUTO_PTR to work around
- an omission within the EGCS standard library.
-
- * ace/Auto_Ptr.h: If ACE_LACKS_AUTO_PTR is enabled then use our
- version of auto_ptr. This is necessary to work around problems
- with EGCS.
-
- * ace/config-g++-common.h: Define ACE_HAS_STANDARD_CPP_LIBRARY so
- that #include <exception> will work properly. However, this
- required that we also set ACE_USES_OLD_IOSTREAMS, as well.
- Thanks to Carlos for help with this.
-
- * ace/config-g++-common.h: The EGCS 1.1.1 compiler supports the
- template<> syntax. If this breaks older EGCS or GCC compilers
- we'll have to handle each of those cases.
-
- * ace/config-win32-borland.h:
- Added ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION.
-
- * ace/OS.h: Replaced the const's for ACE_DEFAULT_SHLIB_MODE and
- ACE_SHLIB_INVALID_HANDLE with #defines since it's more portable.
-
- * ace/OS.i: All the strcasecmp() and strncasecmp() methods were
- broken. Thanks to David Levine for reporting this.
-
- * ace/WFMO_Reactor.cpp: Updated the programming style a bit to
- conform to the ACE guidelines.
-
-Sun Jun 27 20:50:02 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- Added support for IBM's VisualAge C++ compiler.
-
- * ace: Added a new config-visualage.h file that automatically
- includes the proper configurations for IBM's VisualAge C++
- compiler on Win32 and AIX.
-
- * ace/OS.i: The IBM VisualAge C++ compiler's prototypes for _chdir(),
- _mkdir(), and _tempnam() are broken, so we must add a cast to
- char *.
-
- * ace/OS.cpp: Added new macros ACE_ENDTHREADEX and
- ACE_BEGINTHREADEX to work around a bugs with _endthreadex() and
- _beginthreadex() on IBM's VisualAge C++ compiler.
-
- * ace/OS.cpp (ACE_Time_Value::set): Replaced this expression:
-
- this->tv_.tv_usec = long ((_100ns.QuadPart % (10000 * 1000)) / 10);
-
- with this expression:
-
- this->tv_.tv_usec = long ((long (_100ns.QuadPart) % long (10000 * 1000)) / 10);
-
- to work around a bug with IBM's VisualAge C++ compiler.
-
- * ace/OS.cpp: Replaced a hard-coded MSVC++'ism for signed long long
- with a use of the ACE_UINT64_LITERAL macro, which works for all
- Win32 C++ compilers.
-
- * ace/config-win32-visualage.h,
- ace/config-aix-4.x.h: Added a workaround for an IBM VisualAge
- C++ bug with the WIFEXITED and WEXITSTATUS macro.
-
- * ace/OS.h: Added workarounds for bugs with IBM's VisualAge C++ compiler
- as it pertains to the ACE_DES_FREE_TEMPLATE and
- ACE_DES_FREE_TEMPLATE2 macros.
-
- * ace/Map_T.h: Added a workaround for a bug with IBM's VisualAge C++
- compiler. I think this workaround should help with other C++
- compilers, as well. Also reformated the code to make it
- consistent with the ACE programming guidelines.
-
- * ace/Hash_Purgable_Map_Manager_T.cpp: Added a workaround for a
- VisualAge C++ bug.
-
- * ace/config-aix-4.x.h: Added VisualAge C++ compiler support.
-
- * ace/Timer_Heap_T.cpp: We must hard code numbers like
- 1024 for an array size to workaround bugs with the IBM VisualAge
- C++ compiler.
-
- * ace/Basic_Types.h: Added #defines for ACE_INT64_LITERAL.
-
- * ace/config-win32-common.h: #include the
- config-win32-visualage.h file.
-
- * ace: Added the following files for the IBM VisualAge C++ compiler:
-
- ace-lib.icc - WinNT configuration file to create a static library
- ace-dll.icc - WinNT configuration file to create a dynamic library
- config-win32-visualage.h - VisualAge C++ defines
-
- * tests: Added the icc.bat and makeicc.pl files, which build the
- tests for the IBM VisualAge C++ compiler.
-
- * tests: Added the *.icc project files for the IBM VisualAge C++ compiler.
-
-Sun Jun 27 18:17:43 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CORBA_macros.h:
- On platforms with native C++ exceptions we use ACE_UNUSED_ARG()
- in the throw macros to avoid warnings about the unused
- ACE_TRY_ENV variable.
-
-Sun Jun 27 14:56:16 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/run_tests.bat: Added the patch for running tests compiled
- with Borland C++. Thanks to Jody Hagins <jody@atdesk.com> for
- the patch.
-
- * tests/Cache_Map_Manager_Test.dsp: The project file was
- mis-configured.
-
- * tests/version_tests/version_tests.dsw:
- * tests/version_tests/Cache_Map_Manager_Test.dsp: Added this new
- project file.
-
-Sun Jun 27 12:36:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.{h, i}: Moved non-deprecated iterator base class
- method next (RB_Tree_Node<...>) down into derived forward and
- reverse iterator classes due to method resolution conflict
- with deprecated next (void) method in forward iterator class.
- When the deprecated next method is removed, these will be
- moved out of the derived classes and into the base class.
- Thanks to Matt Braun and Carlos O'Ryan for pointing out
- this problem.
-
-Sat Jun 26 16:22:07 1999 Marina Spivak <marina@cs.wustl.edu>
-
- * ace/ace_lib.dsp
- * ace/ace_dll.dsp:
- Updated to include Hash_Map_With_Allocator_T.* files.
-
-Sat Jun 26 16:05:29 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
- * configure.in:
-
- Added support/test for ACE_HAS_MEMCHR macro.
-
- * ace/Makefile.am:
- * tests/Makefile.am:
-
- Synchronized with latest version of ACE.
-
- * m4/features.m4:
-
- Updated asynchronous IO tests.
-
-Sat Jun 26 14:41:31 1999 Marina Spivak <marina@cs.wustl.edu>
-
- * ace/Event_Handler_T.h
- Removed "ACE_Export" - it is not necessary for a template class.
-
- * ace/Hash_Map_With_Allocator.{h,i,cpp}:
- Added these files to ACE. These files contain a thin wrapper
- around ACE_Hash_Map_Manager, which is useful when
- ACE_Hash_Map_Manager is used with a shared memory (or memory
- mapped file) allocator (e.g., ACE Naming Service, and TAO Naming
- Service are example use cases). Please see header file for more
- details.
-
-Sat Jun 26 12:45:26 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Cache_Map_Manager_Test.cpp: Fixed this test so that it
- compiles with SunC++ 4.2 and its broken C++ templates... Thanks
- to David Levine for reporting this.
-
- * ace/Malloc_T.i: Make sure to put ACE_INLINE on all the methods
- in the .i files. Thank to Marina for reporting this.
-
- * ace/Hash_Map_Manager_T.h: Fixed the programming style a bit.
-
- * ace/Arg_Shifter.cpp (ACE_Arg_Shifter): Reformatted this
- stuff a bit.
-
-Sat Jun 26 12:45:26 1999 Jody Hagins <jody@atdesk.com>
-
- This is a change log for the modifications made to support
- Borland C++Builder 4.0, Patch 1. Thanks to
- Christopher Kohlhoff <chris@kohlhoff.com> and Chris Uzdavinis
- <chris@uzdavinis.com> for helping with this.
-
- First, I did not get integrate the makefiles to the BCB environment
- as it requires alot of tools and more time. I hope to fet to this
- in the somewhat near future. However, each directory that has stuff
- that I built and tested has a Makefile.bor, which will make whatever
- is there with BCB4. Note that the makefiles do not, at present,
- have a clean or anything except the default make.
-
- To build, make sure config.h points to, or simply includes
- ace/config-win32.h.
-
- Finally, not all the programs and exampales have BCB makefiles.
- However, it should not be too difficult to adapt the ones that are
- there. In addition, the .bpr files should NOT be used to build
- the libraries, or any examples. If you want to build examples,
- you will need to start with a fresh project in BCB.
-
- At present (4.6.42) all tests, except SOCK_Send_Recv_Test run
- successfully, and some of my own tests run. Also, the TAO services
- and programs seem to be operating as well.
-
- * ace/Asynch_Acceptor.cpp: Need CancelIO for BCB as well
-
- * ace/Atomic_Op.i: Need ACE_TEMPLATE_SPECIALIZE on specializations.
-
- * ace/CDR_Stream.h: Need LongLong for BCB as well
-
- * ace/Functor.i: Need ACE_TEMPLATE_SPECIALIZE on specializations.
-
- * ace/Future.h: Work around a BCB4 bug which causes the create()
- method from being seen.
-
- * ace/IOStream.h: Only want CString stuff for MSC.
-
- * ace/IOStream_T.cpp: Only want CString stuff for MSC.
-
- * ace/OS.cpp: _fdopen, in BCB, takes a non-const pointer
-
- * ace/OS.h: Differentiate between mode masks and user mode masks.
-
- BCB doesn't like initialized data in precompiled header files so
- define certain constants instead. A bug in BCB prevents calling
- a destructor explicitly on a typedef declared inside a class.
- So, TEMPLATE3 and TEMPLATE4 versions of ACE_DES_FREE are
- necessary for destruction of templates with more parameters.
-
- BCB4 has a bug in the RTL that resets the GetLastError() value
- to zero when errno is accessed. Thus, setting errno to
- ::GetLastError requires a copy. To keep from having the code
- everywhere, I added ACE_OS::set_errno_to_last_error () and
- ACE_OS::set_errno_to_wsa_last_error (), and used it everywhere
- errno was being set to GetLastError() or WSAGetLastError().
-
- BCB4 has a bug in the optimizer that screws up the return from
- certain expressions when a variable is set on both sides of an
- assignment. Thus, the definition of ACE_WIN32CALL_RETURN needed
- to change.
-
- * ace/OS.i: Use ACE_set_errno_to_last_error where appropriate.
- BCB4 bug requires splitting FILETIME dummy_1, dummy_2; into
- separate declarations.
-
- * ace/Select_Reactor.h: Need ACE_TEMPLATE_SPECIALIZE on
- specializations.
-
- * ace/WFMO_Reactor.cpp: Use ACE_set_errno_to_last_error where
- appropriate. Likewise, fix the use of auto_ptr copy ctor, which
- can not take a const ref.
-
- * ace/WIN32_Asynch_IO.cpp: Use ACE_set_errno_to_last_error
- where appropriate. Need CancelIo for BCB as well.
-
- * ace/WIN32_Proactor.cpp: Use ACE_set_errno_to_last_error
- where appropriate.
-
- * ace/config-win32-borland.h: Specific build stuff for BCB
-
- * ace/config-win32-common.h: Differences between BCB and MSC
-
- * apps/JAWS/PROTOTYPE/JAWS/Cache_Hash_T.cpp: BCB4 bug prevents
- using typedef inside class for explicit dextructor.
-
- * apps/JAWS/PROTOTYPE/JAWS/Cache_List_T.cpp:
- BCB4 bug prevents using typedef inside class for explicit
- dextructor.
-
- * apps/JAWS/PROTOTYPE/JAWS/Cache_Manager_T.cpp: BCB4 bug prevents
- using typedef inside class for explicit dextructor.
-
- * apps/JAWS/PROTOTYPE/JAWS/IO.cpp: Get rid of const warning
-
- * tests/DLL_Test.cpp: The get_hello function has calling
- convention __cdecl (by default since the calling convention is
- not mentioned). However, BCB decorates __cdecl with a leading
- underscore (and doesn't decorate __stdcall). Thus, we needed to
- add some decoration to find the function. Also, added prefix to
- find the executable.
-
- * tests/Message_Queue_Test.cpp: BCB4 defines a "messages" and by
- default sucks that namespace into the global namespace, so a new
- variable name was needed.
-
- * tests/Reactor_Exceptions_Test.cpp: The test throws a structured
- exception. The ISO does not require non C++ exceptions to be
- caught by catch (...). MSVC catches it but BCB4 does not. So,
- the code needed to be changed to catch a structured exception as
- well.
-
- * tests/run_tests.bat: Changed to allow running the BCB tests,
- when in another directory.
-
-Sat Jun 26 08:40:01 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Proactor.cpp: fixed template instantiation pragmas
- (to match explicit template instantiation directives).
-
-Sat Jun 26 08:21:52 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Signal.h: reordered #includes to avoid warning about
- #pragma once.
-
-Fri Jun 25 22:30:24 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: always test on egcs before
- commiting. It catches real problems that are missed
- by some of the other compilers we (well, some of us :-)
- use.
-
-Fri Jun 25 22:20:16 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Future.cpp (detach): changed equality comparison of
- curr_observer from itself to the observer argument.
- Thanks to egcs -W for snagging this.
-
-Fri Jun 25 21:46:46 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h,ace/Signal.h,ace/config-psos-tm.h
- (ACE_DONT_INCLUDE_ACE_SIGNAL_H): added this interlock
- diagnostic to inform the user when ace/Signal.h gets #included
- instead of signal.h. Thanks to Dale Wood <Dale_Wood@Mitel.com>
- and Timothy Canham <Timothy.Canham@jpl.nasa.gov> for tripping
- over it, on the same day, and reporting it.
-
-Fri Jun 25 17:22:02 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Select_Reactor_T.cpp (close): Don't call close() on the
- <notify_handler_> if there isn't one.
-
- * ace/SOCK_Acceptor.cpp (open): The error status was not set
- correctly if listen() failed.
-
- Thanks to Irfan for helping with this.
-
-Fri Jun 25 16:48:17 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: don't #include <signal.h> directly on VxWorks.
- When cross-compiling on NT host, the GreenHills compiler
- #includes ace's Signal.h instead of VxWorks' signal.h.
- No comment. OS.h doesn't need to #include signal.h directly,
- because it gets indirectly #included through sigLib.h. Thanks
- to Dale Wood <Dale_Wood@Mitel.com> for reporting this.
-
-Fri Jun 25 16:03:59 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Future.cpp: Fixed a couple of places where the set() method
- didn't have the new *this parameter added.
-
- * ace: Added Future_Set.{h,cpp} and Future_Node.{h,cpp}, as well
- as the new Future.{h,cpp} files to the ACE release. Thanks to
- John Tucker <jtucker@infoglide.com> for contributing these.
-
- * ace/Synch.h: Added a comment pointing out that Solaris
- threads do not support timed acquire(). Thanks to Darren
- DeRidder <darren.deridder@bridgewatersys.com> for reporting
- this.
-
-Fri Jun 25 15:07:00 1999 John Tucker <jtucker@infoglide.com>
-
- The following describes the changes to ACE_Future_Set:
-
- * I followed the Observer Pattern where the ACE_Future_Set is the
- "Observer" and the ACE_Future_Rep is the "Subject".
-
- * I created an abstract base class called ACE_Future_Observer<T>
- which contains a single pure virtual member function "update()".
-
- * The ACE_Future_Rep is modified so that it contains a list of
- ACE_Future_Observer<T> pointers and an interface for attaching
- and detaching ACE_Future_Observer<T> Observer objects. The
- "attach(...)" member function allows objects which implement the
- ACE_Future_Observer<T> interface to attach themselves to
- ACE_Future_Rep<T> objects so that they will be notified of
- changes to the ACE_Future_Rep<T> Subject. The "detach(...)"
- member function allows objects which implement the
- ACE_Future_Observer<T> interface to detach themselves from
- ACE_Future_Rep<T> objects so that they will no longer be
- notified of changes to the ACE_Future_Rep<T> Subject.
-
- * The ACE_Future_Rep::set() method is modified so that it invokes the
- "update()" method of each ACE_Future_Observer<T> object stored
- in its list of attached ACE_Future_Observer<T> Observer
- objects. It also removes each ACE_Future_Observer<T> Observer
- object from its list.
-
- * The ACE_Future_Set<T> class derives from the ACE_Future_Observer<T>
- class.
-
- * The ACE_Future_Set<T> class contains its own ACE_Message_Queue
- attribute which will be used by writer threads to notify reader
- threads that an ACE_Future is readable.
-
- * The ACE_Future_Set<T> class contains a list of ACE_Future<T>
- Subject objects which clients in the reader threads insert into
- it. When an ACE_Future<T> is inserted into an
- ACE_Future_Set<T>, the ACE_Future_Set<T> attaches itself to the
- specified ACE_Future<T>, keeping in mind the ACE_Future_Set<T>
- implements the ACE_Future_Observer<T> interface, and also
- inserts the specified ACE_Future<T> object into its list of
- ACE_Future<T> objects.
-
- * The ACE_Future_Set<T> class implements its "update()" method to
- just enqueue an ACE_Message_Block with Null data onto its
- ACE_Message_Queue. Since this "ACE_Future_Set<T>::update()"
- method will be invoked by the ACE_Future_Rep::set() method in
- the writer thread, it will allow the ACE_Future_Set<T> in the
- writer thread to signal itself that an ACE_Future has become
- readable.
-
- * The "int ACE_Future_Set<T>::next_readable(ACE_Future<T> &future,
- ACE_Time_Value *)" method in the reader thread will block via a
- call to "dequeue()" on its ACE_Message_Queue until is awakened
- by a call to "ACE_Future_Set<T>::update()" in the writer thread.
- Once awakened, the ACE_Future_Set<T> object iterates through its
- list of ACE_Future<T> objects until it encounters a readable
- one. This readable ACE_Future<T> will be removed from its list
- and assigned to the specified "future" parameter".
-
- * The ACE_Future_Set<T> destructor detaches itself from all
- ACE_Future<T> objects remaining in its list.
-
- * I did not use the ACE_Reactor since I could foresee the
- ACE_Future_Set being used by applications which did not run,or
- want to run, the event loop.
-
-Fri Jun 25 14:28:05 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/UNIX_Addr.cpp (ACE_UNIX_Addr): Moved base_set() call in
- constructor to member initializer list. This is cleaner coding
- style. The original code, before a bug fix was made, was like
- that. I just forgot to put it back in the member initializer
- list after the fix.
-
-Fri Jun 25 15:15:32 1999 Steve Huston <shuston@riverace.com>
-
- * performance-tests/Misc/Makefile: set static_libs_only so the library
- selection gets done right on AIX. Clean out the tempinc dir
- between binaries on AIX.
-
- * performance-tests/Misc/test_singleton.cpp: Moved def of DC_Singleton
- to new file, test_singleton.h so it works on AIX w/ xlC.
-
- * ace/Hash_Cache_Map_Manager_T.h: Removed the "ace/" from the
- #pragma implementation line. The compiler remembers the directory
- it came from.
-
- * examples/ASX/UPIPE_Event_Server/Peer_Router.h:
- * examples/Connection/non_blocking/CPP-connector.h:
- * examples/Connection/non_blocking/CPP-acceptor.h:
- Added #pragma implementation, for AIX IBM C++.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp:
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp:
- Split the Options class to a new file, CPP-inclient.h, to make
- IBM C++ (xlC) like it.
-
- * examples/IOStream/server/iostream_server.cpp: Split the Handler
- class off to new iostream_server.h file, to make IBM C++ (xlC)
- like it.
-
- * examples/Logger/Acceptor-server/server_loggerd.cpp: Moved the
- Options and handler classes' definitions to new server_loggerd.h
- file to build with AIX IBM C++.
-
- * examples/Misc/testr_dump.cpp: Moved the program's classes'
- definitions to new server_loggerd.h file to build with AIX IBM
- C++.
-
- * examples/IPC_SAP/SOCK_SAP/Makefile:
- * examples/Connection/non_blocking/Makefile:
- * examples/Misc/Makefile:
- On AIX w/ IBM C++, delete the tempinc directory before compiling
- each new program. Keeps the template instantiations from one
- program from conflicting with the others.
-
- * include/makeinclude/rules.lib.GNU: On AIX using IBM C++ only, don't
- try to link in the auto-instantiated template object modules if
- there aren't any.
-
- * include/platform_aix4_cset++.GNU: Removed TMPL_OBJS - not needed now.
- * examples/Misc/Makefile: On AIX w/ IBM C++, delete the tempinc
- directory before compiling each new program. Keeps the template
- instantiations from one program from conflicting with the
- others.
-
-Fri Jun 25 12:40:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added/expanded/moved discussions of
- enabling/increasing virtual memory on Linux and LynxOS. Thanks
- to Fabrice Podlyski <podlyski@clrhp04.in2p3.fr> for providing
- detailed information for LynxOS.
-
-Fri Jun 25 11:16:32 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Makefile: Updated dependencies for Cache_Map_Manager_Test
- and Map_Manager_Test.
-
-Fri Jun 25 07:41:05 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added guideline to include
- directories containing files with template definitions in a -I.
-
-Thu Jun 24 22:42:44 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp (subscribe): fixed UNICOS
- preprocessor usage so that it's not in the middle of the
- ACE_reintepret_cast.
-
-Thu Jun 24 22:18:52 1999 Doug Anderson <dla@home.com>
-
- * ace/CDR_Stream.*,ace/SOCK_Dgram_Mcast.cpp,ace/config-cray.h:
- updates for Cray UNICOS port.
-
-Thu Jun 24 21:33:11 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Caching_Strategies_T.{h, cpp} (class ACE_FIFO_Caching_Strategy):
- * ace/Caching_Strategies_T.{h, cpp} (class ACE_LRU_Caching_Strategy):
- * ace/Caching_Strategies_T.{h, cpp} (class ACE_LFU_Caching_Strategy):
- Removed the overloaded clear_cache () method with entries as an
- formal argument.
-
- * ace/Caching_Strategy_Utility_T.{h,i,cpp}: Renamed as
- Caching_Utiltity.{h, i, cpp}. Also, removed <entries> formal
- argument from the clear_cache() method, and made purge_percent
- of type double instead of unsigned int.
-
- * tests/Cache_Map_Manager_Test.cpp: Changed the purge_test and
- added a test for the Cache_Map_Manager using the Map_Manager.
-
- * tests/Map_Manager_Test.cpp: Changed the template instantiation
- in vein with the changes to the names of the Caching_Utility
- classes.
-
- * tests/Cache_Map_Manager_test.dsp:
- * tests/tests.dsw:
- Made NT project for the test and added it to the tests workspace.
-
-Thu Jun 24 20:43:54 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Reactor/WFMO_Reactor/test_multithreading.cpp
- (Task_Handler): Change loop to go from 1 to number_of_handles
- instead of 0 to number_of_handles - 1.
-
-Thu Jun 24 18:36:22 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Signal.h: Removed the still-born
- ACE_Sig_Action (struct sigaction *) method. Thanks to Umar
- Syyid for reporting this.
-
-Thu Jun 24 15:47:32 1999 Steve Huston <shuston@riverace.com>
-
- * tests/run_pharlap_tests.bat: One-button script for running the tests
- built for PharLap ETS.
-
- * tests/tests_pharlap_msvc.lnk: PharLap ETS LinkLoc input file for
- building test for ETS. Very possible that local sites will need to
- adjust this for the target environment.
-
- * tests/Atomic_Op_Test.dsp:
- * tests/Barrier_Test.dsp:
- * tests/Basic_Types_Test.dsp:
- * tests/Buffer_Stream_Test.dsp:
- * tests/CDR_Test_Test.dsp:
- * tests/Collection_Test.dsp:
- * tests/Conn_Test.dsp:
- * tests/DLList_Test.dsp:
- * tests/Dynamic_Priority_Test.dsp:
- * tests/Enum_Interfaces_Test.dsp:
- * tests/Env_Value_Test.dsp:
- * tests/Future_Test.dsp:
- * tests/Handle_Set_Test.dsp:
- * tests/Hash_Map_Manager_Test.dsp:
- * tests/High_Res_Timer_Test.dsp:
- * tests/IOStream_Test.dsp:
- * tests/Map_Manager_Test.dsp:
- * tests/Map_Test.dsp:
- * tests/Mem_Map_Test.dsp:
- * tests/Message_Block_Test.dsp:
- * tests/Message_Queue_Notifications_Test.dsp:
- * tests/Message_Queue_Test.dsp:
- * tests/MM_Shared_Memory_Test.dsp:
- * tests/MT_Reactor_Timer_Test.dsp:
- * tests/MT_SOCK_Test.dsp:
- * tests/Naming_Test.dsp:
- * tests/New_Fail_Test.dsp:
- * tests/Notify_Performance_Test.dsp:
- * tests/OrdMultiSet_Test.dsp:
- * tests/Pipe_Test.dsp:
- * tests/Priority_Buffer_Test.dsp:
- * tests/Priority_Reactor_Test.dsp:
- * tests/Priority_Task_Test.dsp:
- * tests/Process_Mutex_Test.dsp:
- * tests/Process_Strategy_Test.dsp:
- * tests/RB_Tree_Test.dsp:
- * tests/Reactor_Exceptions_Test.dsp:
- * tests/Reactor_Notify_Test.dsp:
- * tests/Reactor_Performance_Test.dsp:
- * tests/Reactor_Timer_Test.dsp:
- * tests/Reactors_Test.dsp:
- * tests/Reader_Writer_Test.dsp:
- * tests/Recursive_Mutex_Test.dsp:
- * tests/Reverse_Lock_Test.dsp:
- * tests/Semaphore_Test.dsp:
- * tests/Service_Config_Test.dsp:
- * tests/Sigset_Ops_Test.dsp:
- * tests/Simple_Message_Block_Test.dsp:
- * tests/SOCK_Connector_Test.dsp:
- * tests/SOCK_Send_Recv_Test.dsp:
- * tests/SOCK_Test.dsp:
- * tests/SPIPE_Test.dsp:
- * tests/SString_Test.dsp:
- * tests/SV_Shared_Memory_Test.dsp:
- * tests/Svc_Handler_Test.dsp:
- * tests/Task_Test.dsp:
- * tests/Thread_Manager_Test.dsp:
- * tests/Thread_Mutex_Test.dsp:
- * tests/Thread_Pool_Reactor_Test.dsp:
- * tests/Thread_Pool_Test.dsp:
- * tests/Time_Service_Test.dsp:
- * tests/Time_Value_Test.dsp:
- * tests/Timeprobe_Test.dsp:
- * tests/Timer_Queue_Test.dsp:
- * tests/Tokens_Test.dsp:
- * tests/TSS_Test.dsp:
- * tests/Upgradeable_RW_Test.dsp:
- * tests/UPIPE_SAP_Test.dsp:
- Added "PharLap ETS Debug" configurations.
-
- * ACE-INSTALL.html: Added some info about the PharLap TNT ETS port.
-
-Thu Jun 24 14:10:20 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/libsize.pl: use appropriate size command for all of
- our cross-compile platforms.
-
-Thu Jun 24 14:00:27 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.7.h: with ghs only, undef ACE_HAS_PROC_FS
- and ACE_HAS_PRUSAGE_T because the Sun's sys/procfs_isa
- requires 64-bit ints.
-
-Thu Jun 24 13:53:53 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Proactor.cpp: added missing backslash to one of
- the instantiation pragmas.
-
-Thu Jun 24 12:53:22 1999 Steve Huston <shuston@riverace.com>
-
- * ace/OS.(h i): Added check for ACE_HAS_WINSOCK2 != 0 wherever
- the check was only for ifdef ACE_HAS_WINSOCK2. Allows building on
- Winsock 1.1.
-
- * ace/config-pharlap.h: New config file for use with PharLap TNT
- Embedded ToolSuite. This is not really tested yet - that activity
- continues.
-
-Thu Jun 24 07:05:17 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h,include/makeinclude/platform_osf1_4.0.GNU,
- include/makeinclude/platform_osf1_cxx.GNU: use pragmas instead of
- command line arguments to disable specific warning messages.
- This cleans up the command line, and makes it easier to control
- warning message suppression (because the compiler version is
- available in __DECCXX_VER to the preprocessor.)
-
-Wed Jun 23 21:27:45 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: removed space from "resource requirements"
- tag to avoid problems with web browers.
-
-Wed Jun 23 20:18:42 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/WFMO_Reactor: Added a no-op work_pending()
- implementation until we figure out how to implement this.
-
- * ace/Reactor_Impl.h,
- * ace/Reactor.{cpp,h},
- * ace/Select_Reactor_T.{h,cpp}: Added a work_pending() method
- that just checks if there are I/O events "ready" for
- dispatching, but doesn't actually dispatch event handlers. This
- is needed for TAO's work_pending() API. Thanks to Irfan for
- suggesting this.
-
-Wed Jun 23 15:27:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/libsize.pl: added this script, which provide a size
- breakdown of either the ACE or TAO libraries.
-
-Wed Jun 23 14:34:27 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added link to ACE Library Size Breakdown
- in System Resource Requirements discussion.
-
-Wed Jun 23 14:09:27 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Caching_Strategies_T.cpp (ACE_LRU_Caching_Strategy):
- Checked and modified the creation and deletion logic of the
- caching utility object.
- * ace/Cache_Map_Manager_T.cpp (~Cache_Map_Manager):
- Added the close method call to avoid memory leaks.
- * tests/run_test.pl:
- * tests/run_test.bat:
- Added Cache_Map_Manager_Test.
- * tests/Cache_Map_Manager_Test: Removed extra comma.
- * ace/Caching_Strategies_T.{h, i, cpp}
- * ace/Cache_Map_Manager_T.{i,h,cpp}
- * ace/Caching_Strategy_Utility_T.{h,i,cpp}
- * ace/Cleanup_Strategies_T.{h, i,cpp}
- * ace/Hash_Cache_Map_Manager_T.{h, i,cpp}
- * ace/ace_dll.dsp:
- Added above caching related files into the NT ace workspace.
-
-Wed Jun 23 10:09:06 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated System Resource requirements discussion.
- All of ACE+TAO requires well over 1 Gb of disk now :-/.
-
-Wed Jun 23 00:03:31 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_Dgram.cpp (ACE_SOCK_Dgram): Fixed an unused args
- warning. Thanks to David for reporting this.
-
- * ace/Service_Config.h (ACE_Service_Config): Moved the
- documentation for the open() method's "argv" parameters *to* the
- open() method. Also clarified that by default we don't install
- the "statically configured services" (such as ACE_Svc_Manager).
- Thanks to Ian MacDonald <ianmacd@bg.com> for motivating this.
-
- * ace/OS.i (accept): Added a new workaround for platforms
- like VxWorks that can't handle NULL addrs to accept(). Thanks
- to James Hu <jhx@entera.com> and John Weald
- <John.Weald@sylantro.com> for this fix.
-
- * ace/config-vxworks5.x.h: Added a new macro
- ACE_HAS_BROKEN_ACCEPT_ADDR to work around VxWorks problems
- with NULL addrs to accept().
-
-Tue Jun 22 21:17:49 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Cache_Map_Manager_Test.cpp: Tests the Cache_Map_Manager
- as well as the Hash_Cache_Map_Manager which has additional
- features of caching and purging of entries along with the map
- properties.
- * tests/Makefile: Added Cache_Map_Manager_Test.cpp
-
-Tue Jun 22 15:20:53 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Thread_Manager_Test.cpp (main): removed THR_DETACHED.
- That seems to solve the libthread panic problem on Solaris,
- even with group signalling enabled. Thanks to Carlos for
- suggesting this.
-
-Tue Jun 22 15:11:34 1999 Matthew J Braun <mjb2@cs.wustl.edu>
-
- * ace/Containers_T.h,i
- Added new next(T *&) methods to the ACE_DLList_Iterator
- classes and marked the old versions as DEPRECATED.
-
-Tue Jun 22 13:40:22 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/tutorials/*/Makefile: replace rm -f with $(RM).
-
-Tue Jun 22 13:07:19 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Message_Block_Test.cpp:
- * websvcs/lib/URL_Addr.i:
- * websvcs/lib/URL_Addr.cpp:
- Removed more g++ -W warnings
-
-Tue Jun 22 11:12:42 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added System Resource Requirements
- section. Thanks to Hakan Kallberg <hk@simulina.se>
- and Eric Mitchell <emitchell@altaira.com> for the
- Linux swap space and -pipe removal suggestions.
-
-Tue Jun 22 07:45:59 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Event_Handler_T.i: fixed some occurrences of
- ACE_INLINE that were after the function return type.
-
-Tue Jun 22 07:30:12 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Stats.cpp: fixed for ACE_LACKS_LONGLONG_T platforms.
- (sample): replace return statement with an else branch, to
- make it easier to see what the code is doing.
-
-Mon Jun 21 23:36:02 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * websvcs/lib/URL_Addr.cpp:
- Fixed warnings about unused variables.
-
-Mon Jun 21 23:27:01 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/SString.h: Added ACE_TString typdef that is either a
- ACE_CString or ACE_WString, depending on whether UNICODE
- is defined.
-
-Mon Jun 21 23:22:46 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Misc/test_trace.cpp: Improved this test so it will
- work more effectively on single-threaded *and* multi-threaded
- platforms. Thanks to Hao Ruan <hruan@lucent.com> for reporting
- this. Also fixed a warnng in this test caused by failure to
- return a value on every return path. Thanks to David Levine for
- reporting this.
-
-Mon Jun 21 14:17:22 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Stats.h:
- * ace/Stats.cpp:
- Added new class to keep latency and throughput statistics.
-
-Mon Jun 21 13:24:41 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_freebsd.GNU,platform_linux.GNU,
- platform_linux_lxpthread.GNU,platform_psosim_g++.GNU,
- platform_qnx_neutrino.GNU,platform_sunos5_g++.GNU,
- platform_vxworks5.x_g++.GNU: added -W to CFLAGS. -Wall
- doesn't include the -W checks, at least with egcs 1.1.2.
-
-Mon Jun 21 10:18:01 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: moved FlReactor, Msg_WFMO_Reactor, TkReactor,
- and XtReactor from OTHER to DEMUX_FILES because TAO uses
- them in some configurations. They add negligible size
- overhead when not used. Thanks to Nanbor for pointing this
- out.
-
-Mon Jun 21 10:11:15 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Makefile:
- The TP_Reactor is used by TAO, but was listed in the OTHER
- component. Moved to the DEMUX component to make it always
- available. Thanks to David Levine for pointing this out.
-
-Mon Jun 21 09:58:42 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/QoS.{h,cpp}: Removed these files from ACE since they have a
- lot of problems. Will add back later when they compile and are
- tested.
-
-Mon Jun 21 08:40:14 1999 Steve Huston <shuston@riverace.com>
-
- * examples/Connection/misc/Connection_Handler.cpp (handle_input):
- Corrected signed/unsigned mismatch I accidentally put in last week.
-
- * ace/CORBA_macros.h: Added __HP_aCC to the compilers that need
- special handling for throwing an exception from a value-returning
- function.
-
- * include/makeinclude/platform_hpux_aCC.GNU: Added +DAportable
- to CCFLAGS if no architecture specified. Added -z to LDFLAGS
- to force SEGV on dereference 0 pointer. Added definition for
- CPP_LOCATION to not use aCC - it displays warnings for unrecognized
- #pragmas and this dirties the TAO builds. Thanks to Brian Wallis
- <Brian.Wallis@sr.com.au> for these ideas.
-
-Sat Jun 19 22:28:35 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Updated the list of tests run every night.
-
-Sat Jun 19 18:15:48 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/CORBA_macros.h:
- The ACE_GUARD macros needed some blanks to work with a template
- as the lock type parameter.
-
-Sat Jun 19 10:34:55 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Acceptor.cpp,
- ace/Connector.cpp: Modified the make_svc_handler() hook method
- in these classes to set the Reactor of the newly created
- SVC_HANDLER to the same reactor that the Acceptor or Connector
- is using. Thanks to John Aughey <jha@FreeBSD.ORG> for
- this suggestion.
-
- * man/{html,man3}: Zapped the Ace_Export.* files since
- they don't belong here. Thanks to Zoran Ivanovic
- <zorani@pathcom.com> for reporting this.
-
-Fri Jun 18 20:49:09 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch.cpp: Added template instantiations for
- ACE_Write_Guard<ACE_Thread_Mutex>.
-
-Fri Jun 18 19:30:09 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.42 released.
-
-Fri Jun 18 18:49:39 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Makefile:
- * tests/run_tests.psosim:
- * tests/run_tests.sh:
- * tests/run_tests.vxworks:
- Disabled Map_Manager_Test, it does not work with too many
- platforms and the features it tests are not used (yet).
-
-Fri Jun 18 16:54:43 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Message_Queue_Test.cpp:
- * tests/Message_Block_Test.cpp:
- Removed template instantiations for ACE_Message_Queue_Iterator
- and ACE_Message_Queue_Reverse_Iterator. They are already
- available in the ace library.
-
- * ace/Service_Types.cpp: Added explicit instantiations for
- ACE_Message_Queue_Reverse_Iterator. ACE_Message_Queue and
- ACE_Message_Queue_Iterator were already there. This addition
- will complete the set.
-
-Fri Jun 18 12:12:59 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_Dgram: Added the first set of hooks to support
- QoS-enabled data grams for Win2K GQoS.
-
-Fri Jun 18 11:37:31 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * *.{mdp,mak}: Removed all MSVC++ 4.x workspaces and makefiles.
- We are no longer supporting this version of MSVC++. If you need
- support for MSVC++ 4.x please contact Steve Huston
- <shuston@riverace.com> of Riverace to arrange a support
- contract.
-
-Fri Jun 18 12:19:42 1999 Matthew J Braun <mjb2@cs.wustl.edu>
-
- * tests/DLList_Test.cpp: Removeed unnecessary explicit template
- instantiation that mirrored ones in ace/Containers.cpp to fix
- compile errors on VxWorks. Why this _ever_ worked, I don't
- know...
-
-Fri Jun 18 11:37:31 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.h (class ACE_Static_Svc_Descriptor): Changed
- the type of <name_> from LPTCSTR to 'const ASYS_TCHAR*'.
-
-Thu Jun 17 12:46:30 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Conn_Test.cpp: Fixed a problem with explicit template
- instantiations so that this test will compile even if ACE isn't
- built with threads.
-
- * netsvcs/lib/Server_Logging_Handler.cpp: Fixed the explicit
- template instantiations so hopefully they'll work when ACE is
- compiled without threads. Thanks to Carlos for reporting this.
-
- * ace/SOCK_Dgram_Mcast.cpp: We needed to modify the return values
- of subscribe_i() so that we'd have the ability to differentiate
- a "short-circuit" return on NT. Thanks to Marina for reporting
- this.
-
- * ace/OS.h: Added an automatic test to check if we're running on
- an EBCDIC character set, and if so, set
- ACE_STANDARD_CHARACTER_SET_SIZE to 256 rather than 128. Thanks
- to Jim Rogers for this suggestion.
-
- * performance-tests/TTCP/Makefile: Zapped the Orbix and ORBeline
- directories from the Makefile. These are *way* out of date and
- have been superceeded by the versions in
- $TAO_ROOT/performance-tests/Thruput/. Thanks to Youzhong Liu
- <yoliu@cise.ufl.edu> for reporting this.
-
-Thu Jun 17 12:59:24 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- Added accessors for the codeset translators.
-
-Thu Jun 17 00:33:57 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/platform_freebsd.GNU (VERSION): Applied the
- patch to automatically detect FreeBSD version. Thanks to
- Goldshtain Dmitry <goldshtain@bank.gov.ua> for providing the
- patch.
-
- * bin/Process_Win32.pm (TimedWait):
- Get and return the exit status from the waited process.
-
-Wed Jun 16 22:03:29 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h (ACE_OS): Removed ACE_WIDE_DL_TYPE and the wide char
- versions of dlopen(), dlsym(), and dlerror(). Even Win32
- doesn't support them.
-
- Also changed the argument type of ACE_OS::dlopen(),
- ACE_OS::dlsym(), ACE_DLL::ACE_DLL(), ACE_DLL::open(), and
- ACE_DLL::symbol() from ACE_DL_TYPE to const char *. Now the
- ACE_OS wrappers do the correct const cast before calling the OS
- function. Note that since this change is only adding constness
- to the argument, the change is backward compatible.
-
-Wed Jun 16 20:47:27 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/Process_Win32.pm:
- The wait time for a process seems to be in milliseconds.
-
-Wed Jun 16 20:03:41 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Containers_T.cpp: Qualify dllist_ with 'this->' to get the
- template types looked up correctly. This is what fixes the pesky
- future error 641 on HP-UX aC++.
-
- * ace/RB_Tree.i: Qualify node_ and tree_ with 'this->' to get the
- template types looked up correctly. aC++ is really happy now,
- and so is Steve :-)
-
-Wed Jun 16 18:50:38 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.i:
- Fixed typos in single threaded code.
-
-Wed Jun 16 18:14:45 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.{h, cpp}: Added ATTRIBUTES to
- the template list for the Cached_Connect_Strategy_Ex class to
- ward off g++ compiler errors.
-
-Wed Jun 16 15:54:08 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/config-win32.h:
- Auto-detect if we are using MSVC5.0 or MSVC6.0 and define the
- ACE_HAS_WINSOCK_GQOS macro in that case. This macro is used in
- the places where the QoS data structure of both compilers are
- different.
-
-Mon Jun 14 22:52:48 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Map_Manager_Test.cpp: Removed template instantiation
- regarding ACE_Read_Mutex<Thread_Mutex>. Added template
- instantiations for ACE_Pair<VALUE, int> and
- ACE_Reference_Pair<TYPE, VALUE> to make sunc++5.0 happy.
-
- * ace/Caching_Strategy_Utility_T.{h.cpp}: Removed math.h from the
- include list since it caused problems when native exceptions were
- enabled.
-
-Mon Jun 14 21:41:40 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/Connector.h: Added a comment to clarify that if
- Connector::connect() fails the close() hook of the Svc_Handler
- is called to prevent resource leaks. Thanks to V. Lakshmanan
- <lakshman@doplight.nssl.noaa.gov> for motivating this.
-
-Mon Jun 14 20:54:09 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Synch.cpp: Declared template definitions for
- ACE_Read_Mutex<ACE_Thread_Mutex> to get around compiler errors
- while building $ACE_ROOT/tests. Thanks to Dr.Schmidt for
- suggesting this.
-
-Mon Jun 14 19:33:04 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_Acceptor.cpp (accept): Fixed a bizarre problem with
- Win32 where it's imperative that the third parameter to <accept>
- must be a NULL pointer if we want to ignore the client address.
-
- * ace/OS.i: Cleaned up warnings in join_leaf() and ioctl() due to
- unused args. Thanks to Marina for reporting this.
-
-Mon Jun 14 15:56:27 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-qnx-neutrino.h,
- include/makeinclude/platform_qnx_neutrino.GNU: added config
- files for QNX Neutrino. They support cross-compiling on a
- QNX4 host for Neutrino target. Builds are almost (but not
- completely) clean.
-
- * include/makeinclude/platform_qnx_neutrino.GNU: only
- build static libs, because they seem to work better. Many
- of the ACE tests pass with this configuration! (Some of
- the usual suspects, such as Conn_Test, don't.)
-
- * ace/config-qnx-neutrino.h: don't need ACE_HAS_PENTIUM here,
- because it's in config-g++-common.h. Removed
- ACE_HAS_USING_KEYWORD, because g++ 2.8.1 doesn't support
- namespaces.
-
-Mon Jun 14 14:33:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Reactor_Performance_Test.cpp (handle_input): removed
- printout when result == 0. It happens when the client finishes
- first, which I think is OK.
-
-Mon Jun 14 11:55:31 1999 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix4_g++.GNU: New platform file for AIX
- 4.x using GNU compiler. Been tested w/ egcs 1.1.2.
-
- * include/makeinclude/platform_aix4_cset++.GNU: Make shared libs
- correctly and without building the static one first.
- Also, for cset++, disable warnings on AIX 4.3 to shut up the
- 0-valued preprocessor warnings. This is not a great
- long-term general solution, but it'll do the job.
-
- * include/makeinclude/wrapper_macros.GNU:
- * include/makeinclude/rules.lib.GNU: On AIX, build shared lib w/o
- requiring static one first. When building shared libs, also link
- against them and install the proper files when done. The correct
- files built for libfoo are:
- libfoo.a: archive/static library
- libfoo.so: shared library, but not set up for run-time linker.
- This is the one loaded by ACE dynamic loading.
- libfooshr.a: an archive library with libfoo.so as its only
- member. This is what to link against when building
- a program/library that uses libfoo.
-
- Silly? Uh-huh. But that's life in AIX land. I tried to get things
- building/running clean using the run-time linker (-brtl) but had
- no end of trouble. And, since no other libs in /usr/lib want to
- do it that way either, it's like this.
-
-Mon Jun 14 09:58:02 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Added ACE_UNUSED_ARG() macros for all the non-WINSOCK2
- cases in the ACE_Flow_Spec and ACE_QoS methods. Thanks to David
- for reporting this.
-
- * ace/OS.i: Moved the definition of ACE_Errno_Guard's methods to
- earlier in the file to avoid problems with inline ordering.
- Thanks to David for reporting this.
-
- * ACE-INSTALL.html: Updated Barry Hoggard's CORBA page URL.
-
-Mon Jun 14 07:17:23 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: fixed typo: exceptions.
-
-Sun Jun 13 14:22:54 1999 Douglas C. Schmidt <schmidt@maxixe.cs.wustl.edu>
-
- * ace/LSOCK_Acceptor.cpp: Rewrote the accept() method to use the
- same new technique that's used in ACE_SOCK_Acceptor::accept().
- This is necessary since there's no longer a shared_accept().
-
- * ace/SOCK_Acceptor: Removed shared_accept() since it's been split
- into two parts to make the QoS features easier to maintain.
-
- * ace/SOCK_Acceptor: Added the new ACE_Accept_QoS_Params parameter
- to the ACE_SOCK_Acceptor::accept(). Also created two new
- private methods, shared_accept_start() and
- shared_accept_finish(), that factor out common code.
-
- * ace/SOCK_Connector: Added the new ACE_Connect_QoS_Params
- parameter to ACE_SOCK_Connector::connect(). Also created two
- new private methods, shared_connect_start() and
- shared_connect_finish(), that factor out common code.
-
- * ace/SOCK_Connector.cpp: Cleaned up the logic that checks for
- various types of errors and updated the code to use the new
- ACE_Errno_Guard features.
-
- * ace/OS.h: Added an equality and in-equality operator for
- ACE_Errno_Guard and moved all the methods into OS.i rather than
- OS.h. Also added an ACE_Export to the ACE_Errno_Guard class so
- that it can be used outside of the ACE library.
-
- * ace/OS.h: For Win32, added support for the WinSock2 QoS
- functions WSAAccept(), WSAConnect(), WSAJoinLeaf(), and
- WSAIoctl().
-
- * ace/OS.h: For Win32, added thin wrappers ACE_Flow_Spec and
- ACE_QoS that encapsulate the WinSock2 FLOWSPEC and QOS structs,
- respectively.
-
- * ace/OS.h: For Win32, added an implicit conversion operator from
- iovec to WSABUF since they are structurally equivalent.
-
-Sun Jun 13 14:22:54 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * bin/README.html: Updated the information about the ACE
- documentation tools to be more helpful.
-
-Fri Jun 11 20:04:37 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/Process_Unix.pm:
- Fixed problems on TimedWait().
-
-Fri Jun 11 15:28:44 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Need to add #include <signal.h> before <pthread.h>
- since pthread.h doesn't include signal.h on SunOS 5.7. Thanks
- to Rick Weisner <rick.weisner@east.sun.com> for reporting this.
-
- * ace/OS: ACE_OS::memchr() should return a const void * rather
- than a void *. Thanks to Rick Weisner
- <rick.weisner@east.sun.com> for reporting this.
-
- * ace/Dirent.i: Don't call closedir() on a NULL dirp because some
- platforms (such as SunOS 5.7) will segfault! Thanks to Tom
- Arbuckle <arbuckle@uran.informatik.uni-bonn.de> for pointing
- this out.
-
-Fri Jun 11 14:47:47 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile: Does not compile all the directories in TAO,
- because it takes too much space (and time). Run several more
- tests in TAO that are stable. Improve output.
-
- * ace/Log_Msg.cpp: Use ACE_HAS_THR_C_DEST for TSS "destructors",
- not ACE_HAS_THR_C_FUNC.
-
- * bin/ACEutils.pm:
- * bin/Process_Unix.pm:
- * bin/Process_Win32.pm: Added new routines to wait for a process
- with a timeout, ditto for the ACE::waitforfile() routine. They
- can be used to write more reliable test drivers.
-
-Fri Jun 11 14:40:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/create_ace_build: run the directory mode value through eval,
- to convert it from octal to decimal, if necessary. Thanks to
- Russ Noseworthy for providing the patch.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: only set
- TEMPLATE_REPOSITORY for Sun C++ 4.2. 5.0 doesn't need it.
- Thanks to Dennis C. De Mars <demars@mminternet.com> for
- reporting this.
-
- * tests/Reactor_Performance_Test.cpp (main): return error status
- from run_event_loop () call. And, added a few ACE_ERROR
- printouts. Thanks to Steve for mentioned this.
-
- * ace/config-sunos5.5.h: properly reverted all the changes of
- today. The comments are more helpful this way.
-
- * include/makeinclude/platform_linux_lxpthread.GNU: changed
- PLATFORM_AIO_SUPPORT to use := instead of =, so that it only
- invokes the shell once. Thanks to Lothar Werzinger
- <lwerzinger@krones.de> for suggesting this.
-
-Fri Jun 11 12:10:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * tests/RB_Tree_Test.{cpp, h (new)}: factored out class template
- declaration into a .h file to make AIX C++ happy.
-
-Thu Jun 10 23:11:36 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Cache_Map_Manager_T.{h, i, cpp}: Added Iterator
- implementations to the template parameters to be able to build
- using the g++ compiler. Also removed unnecessary HASH_KEY and
- COMPARE_KEYS from the template list.
-
- * ace/Hash_Cache_Map_Manager_T.{h, i, cpp}: Made appropriate
- changes to support changes made to Cache_Map_Manager.
-
- * ace/Caching_Strategies_T.{h, i, cpp}: Added an overloaded
- clear_cache method which allows the user to specify the total
- number of entries in the cache. Also added the
- Caching_Strategy_Utility parameter which decouples the actual
- purging from the caching strategy.
-
- * ace/Caching_Strategy_Utility.{h,i,cpp}: Added a Null version of
- the utility to be used with the Null strategy.
-
- * ace/Cleanup_Strategies_T.{h,i,cpp}: Added the ACE_UNSED_ARGS
- macro to ward of g++ warnings.
-
- * tests/Map_Manager_Test.cpp: Added performance tests for the
- Cache_Map_Manager and the Hash_Cache_Map_Manager.
-
-Thu Jun 10 20:29:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.h: Made constructors for iterator base class
- protected instead of protected, so the the base class can only
- be constructed by the derived forward and reverse iterator
- classes. Thanks to Matt Braun for pointing this out.
-
- * tests/RB_Tree_Test.cpp: Major overhaul of the test to use a test
- class template that encapsulates the test details and makes the
- code much more readable. Then, the main program merely
- instantiates a test for each of the four possible combinations
- of key/item type parameterization over int and const char *, and
- calls the run_test () method of each test instance.
-
-Thu Jun 10 12:44:22 1999 Steve Huston <shuston@riverace.com>
-
- * tests/UPIPE_SAP_Test.cpp: Disable for Win32 if !ACE_HAS_WINNT4.
- The test relies on ACE_SPIPE_Acceptor which requires NT4 to
- work.
-
-Thu Jun 10 12:47:52 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-lxpthreads.h: removed ACE_HAS_AIO_CALLS. It's
- now enabled in the platform_macros.GNU file:
-
- * include/makeinclude/platform_linux_lxpthread.GNU: added
- automatic detection of AIO support, based on existence of
- /usr/lib/librt.so.
-
- * include/makeinclude/platform_linux_lxpthread.GNU: add -lrt to
- LIBS only if $(PLATFORM_AIO_SUPPORT) is equal to
- -DACE_HAS_AIO_CALLS.
-
- Thanks to Jake Hamby <jehamby@anobject.com> for reporting that not
- all Linux platforms have AIO support.
-
-Thu Jun 10 10:17:08 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: with Sun C++ 5.0, #define
- _RWSTD_NO_EXCEPTIONS 1 if exceptions are not enabled. This
- avoids a warning about throw expressions being ignored with
- -noex. See /opt/SUNWspro_5.0/SC5.0/include/CC/stdcomp.h for
- more information.
-
- * ace/os-patches/vxworks-5.1.txt,ACE-INSTALL.html: added these
- notes for using ACE with VxWorks 5.1.
-
- * docs/ACE-guidelines.html: avoid source code filenames that
- include "Error". Avoid #include <math.h>.
-
-Wed Jun 9 21:45:24 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Svc_Handler_Test.cpp (main): Revised the test a bit to
- make it more clear what's going on.
-
- * ace/Svc_Handler.cpp: Fixed a typo in flush() -- we need to
- update the temp pointer with temp->cont() *not* entry->cont().
-
- * ace/Svc_Handler.cpp (dump): Fixed a typo -- I wasn't comparing
- the pointer to 0, I was comparing the ACE_Time_Value!
-
-Wed Jun 9 21:10:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/config-psos-diab-ppc.h: added
- ACE_HAS_NONCONST_SELECT_TIMEVAL
-
- * tests/RB_Tree_Test.cpp: fixed constness issues revealed by
- SunC++ 5.0, added return value assertions for insert calls,
- added typedefs.
-
-Wed Jun 9 20:40:50 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.cpp: Added new methods to support message
- reassembly in GIOP 1.1
-
-Wed Jun 9 15:32:37 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/Message_Queue_T: Added a lock() accessor method so that
- other components can access the lock used by a Message Queue.
-
- * ace/Svc_Handler.cpp: Added better support for timeout handling
- for the ACE_Buffered_Svc_Handler.
-
- * ace/Svc_Handler: Split the buffering portion of ACE_Svc_Handler
- off into a separate class called ACE_Buffered_Svc_Handler to
- avoid adding extra space and complexity to the existing
- ACE_Svc_Handler. Thanks to Irfan for suggesting this, as well
- as also suggesting ways to improve the performance by caching
- the current size of the buffer.
-
- * ace/OS.h: Added a patch to work around some problems with macros
- for USYNCH_THREAD. Thanks to David Levine and Russ Noseworthy
- for this.
-
- * examples/Threads/task_five.cpp (main): Improved the form and
- content of this example a bit.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU,
- * include/makeinclude/platform_sunos5_g++.GNU,
- * include/makeinclude/platform_irix6.x_g++.GNU,
- * include/makeinclude/platform_linux_lxpthread.GNU,
- * include/makeinclude/platform_irix6.x_sgic++.GNU:
- Added support to make it easier to override various settings
- in platform_macros files. Thanks to Dave Meyer
- <dmeyer@lima.arl.std.saic.com> for contributing this.
-
- * ace/SPIPE_Stream: Added sendv(), sendv_n(), and recvv_n()
- methods to SPIPE_Stream. Thank to Carlos for pointing this out.
-
- * ace/config-mvs.h: Changed the size of the ACE_SIZEOF_DOUBLE and
- ACE_SIZEOF_LONG_DOUBLE from 4 and to 8 and 16, respectively.
- Thanks to Jim Rogers for reporting this.
-
- * ace/config-mvs.h: Added ACE_HAS_NONCONST_SELECT_TIMEVAL on the
- advice of Jim Rogers <jrogers@viasoft.com>.
-
- * ace/OS.h (class ACE_Errno_Guard): Propagate the return value of
- the assignment operator to allow chaining. Thanks to Jeff for
- reporting this.
-
- * ace/OS.i: Fixed a bizzarre problem with lower-case ace_os::.
- Thanks to Andy for pointing this out.
-
- * ace/Svc_Conf.y: Don't enable YYDEBUG by default so that we can
- save some space in the generated code.
-
- * ace/OS: Added several more uses of ACE_Errno_Guard, which has
- been enhanced to support assignment. Thanks to Irfan for
- suggesting this.
-
- * tests/Svc_Handler_Test.cpp: Added a simple test for the new
- buffering feature in ACE_Svc_Handler.
-
- * ace/Strategies.cpp: Added an explicit template instantiation for
- ACE_Message_Queue_Iterator <ACE_NULL_SYNCH> since this is now
- used in ACE_Svc_Handler.
-
- * ace/Svc_Handler: Added a "buffering" feature to the
- ACE_Svc_Handler. This feature makes it possible to queue up
- ACE_Message_Blocks in an ACE_Message_Queue until (1) the queue
- is "full" or (2) a period of time elapses, at which point the
- queue is "flushed" via sendv_n() to the peer.
-
-Wed Jun 9 12:23:30 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/version_tests/version_tests.dsw:
- * tests/run_tests.bat:
- * tests/run_tests.psosim:
- * tests/run_tests.vxworks:
- Added Svc_Handler_Test to these.
-
- * tests/tests.dsw:
- Added Svc_Handler_Test.dsp (created and checked in by
- Nanbor) to the workspace.
-
-Wed Jun 9 10:46:07 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Strategies.cpp:
- Moved template instantiations to ace/Service_Types.cpp
-
- * ace/Service_Types.cpp:
- Added missing template instantiations for
- ACE_Message_Queue_Iterator<>
-
- * ace/Svc_Handler.cpp (flush):
- Removed extra characters and the end of a #endif
- Fixed warning about unused variable
- Use right iterator for the Message_Queue
-
-Wed Jun 09 10:11:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-g++-common.h: added #define of
- ACE_NEW_THROWS_EXCEPTIONS, with egcs if ACE_HAS_EXCEPTIONS is
- #defined. That allows ACE's New_Fail_Test to pass. Thanks
- to Jake Hamby <jehamby@anobject.com> for providing the fix.
-
-Tue Jun 8 22:44:18 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Hacked BYACC to generate a parser that doesn't have any
- incorrect const char *'s. This clears the last major const
- issue in libACE.
-
-Tue Jun 8 20:46:05 1999 Matthew J Braun <mjb2@cs.wustl.edu>
-
- * ace/Functor.i,h: Migrated ACE_Hash template specializations
- from native types to ACE types (ACE_UINT16, etc). This was
- necessary since native types are not portable.
-
-Tue Jun 8 15:47:06 1999 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * ace: Updated most of the places in ACE that can benefit from the
- new ACE_Errno_Guard class.
-
- * ace/OS.h: Added a new ACE_Errno_Guard class that improves
- performance when thread-specific errno must be saved/restored in
- a block of code. Thanks to Serge Kolgan <skolgan@cisco.com> for
- motivating this and to Rick Weisner <Rick.Weisner@East.Sun.COM>
- for explaining the technique to Serge.
-
- * ace/Env_Value_T.h: Added a new ACE_Convert() function that works
- for const char *'s. Thanks to David for reporting this.
-
-Tue Jun 08 18:08:41 1999 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: Added new overridable macro, ACE_LOCALHOST. This allows
- overriding of the string used to do a loopback IP socket to the
- local host. Some systems (e.g. PharLap ETS) don't have a host table
- out of the box, and require an IP address string.
-
- * ace/Pipe.cpp: Use the new ACE_LOCALHOST macro instead of a hard
- "localhost" when using a socket to emulate a pipe. Thanks to
- Bruce Trask <BTRASK@contactsystems.com> for working to get this
- ironed out for PharLap ETS.
-
- * README: Added Bruce Trask to the Hall of Fame ;-)
-
- * tests/SOCK_Connector_Test.cpp: Check for failed host lookup
- before trying to connect. Changed the way sethostent is done on
- AIX 4.3 to work around an apparent bug in AIX 4.3.
-
-Tue Jun 08 13:46:38 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (wmain): Added a new macro to tweak the wchat_t version
- of main program entry point to create the non-static
- Object_Manager. This is only enabled if UNICODE and ACE_WIN32
- is defined (although you can also use wmain under non-UNICODE
- environment).
-
-Mon Jun 07 14:34:53 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CORBA_macros.h: The member function for dumping
- TAO_Exception is changed to _tao_print_exception.
-
-Tue Jun 08 14:44:07 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Thread_Manager_Test.cpp (main): on Sun only, added 5
- second sleep before the "main thread finished" printout. It
- might help (but certainly doesn't prevent) avoid an occasional
- thread lib panic on SunOS 5.5 through 5.7.
-
-Tue Jun 08 14:01:51 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.6.41 released.
-
-Tue Jun 8 12:42:56 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Fixed lots of brokens URL links. Thanks to Eric S Rosenthal
- <esr@netcom.com> for reporting these.
-
-Mon Jun 7 17:09:56 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Naming/test_multiple_contexts.cpp (main): Added a cast
- to resolve const problems. Thanks to David for reporting this.
-
- * examples/Naming/test_writers.cpp (main): Fixed a typo. Thanks
- to David for reporting this.
-
-Mon Jun 7 14:21:48 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/DLL_Test.cpp (main): ANSI C++ spec doesnt allow void * to
- be typecasted to a function_pointer. Hence made changes to
- remove the warning due to this. Thanks to Nanbor
- <nanbor@cs.wustl.edu> for pointing it out.
-
-Mon Jun 7 14:12:02 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added a general section explaining the order
- of user defined macros and platform config file. Thanks to
- Stephen E Blake <stephen_e_blake@email.moore.com> for pointing
- this out.
-
-Mon Jun 07 10:55:12 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h: added #define ACE_HAS_BROKEN_T_ERROR
- to permit building again. Thanks to Doug for this fix.
-
-Mon Jun 7 12:35:17 1999 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * examples/Service_Configurator/IPC-tests/client: Fixed some more
- warnings related to const-correctness. I believe that ACE is
- now just about completely const-correct.
-
- * examples/Service_Configurator/Misc/main.cpp (main): Cast to
- (ASYS_TCHAR **) rather than (ASYS_THCAR *[]). Thanks to David
- for reporting this.
-
- * examples/IPC_SAP/DEV_SAP/writer/writer.cpp (main): Fixed a stray
- comma. Thanks to David for reporting this.
-
- * tests/Hash_Map_Manager_Test.cpp: Changed the use of ASYS_TCHAR *
- to LPCTSTR to ensure const-correctness.
-
- * netsvcs/lib: Reformatted all the *.h files to conform to the ACE
- programming guidelines.
-
-Sun Jun 6 22:02:43 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (t_error): Fixed the broken t_error() usage on SunOS
- 5.5 and 5.6...
-
- * ace/README: Added a new macro called ACE_HAS_BROKEN_T_ERROR to
- workaround the frigging broken prototype for t_error() on
- Solaris 2.5. Note that this macro is required for SunOS 2.5 and
- 2.6, but not SunOS 2.7 (thank goodness).
-
- * Fixed gazillions of incorrect usages of char * (which should
- have been const char *) throughout ACE.
-
- * netsvcs/clients/Tokens: Fixed some const char * inconsistencies.
-
- * netsvcs/lib/Name_Handler.h: Fixed another inconsistent use of
- char * that should have been const char *.
-
- * ace/Service_Config.h: Fixed a const incorrectness in the
- ACE_Static_Svc_Descriptor.
-
- * ace/Process.h (ACE_Process_Options): The parameter type of
- command_line() should be LPCTSTR argv[] *not* LPTSTR argv[].
- This fix should be ok as a further extension to what Carlos did
- below.
-
-Sun Jun 06 20:33:00 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/SString.h:
- Added missing ACE_Export macro
-
-Sun Jun 6 20:34:40 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Synch.h:
- * ace/Timer_Queue_T.h:
- * ace/Timer_Queue.cpp:
- * ace/Select_Reactor.cpp:
- Moved explicit template instantiations around, now ACE compiles
- and links with Sun/CC and inlining enabled. TAO does not.
-
-Sun Jun 6 18:05:48 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Process.h:
- * ace/Process.cpp:
- Added const-correct version of the command_line() method, in the
- future we should remove the non-const version, but I don't feel
- like breaking an interface today.
-
-
-Sun Jun 06 09:08:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * PROBLEM-REPORT-FORM: added requests to not send
- as attachment, or tar'red, compressed, and/or
- uuencoded, or with line lengths >= 80 characters.
-
-Sun Jun 06 08:08:11 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Functor.{h,i} (ACE_Hash<ACE_UINT64>::operator ()):
- conditionally compile only if ACE_SIZEOF_LONG is not 8,
- to avoid conflict with ACE_HASH<unsigned long> on 64-bit
- platforms (alphas).
-
-Sat Jun 5 23:34:21 1999 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * ace/Containers_T: Changed all uses of "index" to "slot" to avoid
- conflicts with broken C++ compilers that define macros named
- "index."
-
-Sat Jun 5 22:57:31 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- Added new macro (ACE_TEMPLATE_SPECIALIZATION) to handle the
- differences between compilers supporting the standard way to
- specialize a template (i.e. template<> class Foo<int>) vs. the
- old style (just saying class Foo<int>).
- Also added new macro ACE_HAS_STD_TEMPLATE_SPECIALIZATION that
- platforms must define if they want the new style.
-
- * ace/Filecache.cpp:
- * ace/Functor.h:
- Use the new ACE_TEMPLATE_SPECIALIZATION macro
-
- * ace/config-sunos5.5.h:
- Define the new ACE_HAS_STD_TEMPLATE_SPECIALIZATION for Sun/CC
- 5.0
-
- * ACE-INSTALL.html:
- Added some notes about our success with Sun/CC 5.0
-
-Sat Jun 5 16:48:47 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-common.h
- * ace/config-irix6.x-sgic++-nothreads.h
- * ace/config-irix6.x-sgic++.h
- * include/makeinclude/platform_irix6.x-sgic++.GNU
- * include/makeinclude/platform_irix6.x_common.GNU
- * include/makeinclude/platform_irix6.x_g++.GNU
- * include/makeinclude/platform_irix6.x_kcc.GNU
- * include/makeinclude/platform_irix6.x_sgic++.GNU: On IRIX 6.5 we
- must not define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS, thanks to
- Bob Laferriere <laferrie@gsao.med.ge.com> for pointing this out.
- Created a new platform_*.GNU file that auto detects the IRIX
- version (couldn't find a pre-processor macro to do it); also
- renamed the platform_irix6.x-sgic++.GNU file to use underscore
- instead of '-'; that way it is more consistent with the other
- files.
-
-Sat Jun 5 13:29:07 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Codeset_IBM1047: Minor reformatting to conform to ACE
- programming guidelines.
-
-Sat Jun 5 13:00:46 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
- New methods added to the InputCDR class to simplify the process
- of reading a buffer from a socket or file.
-
-Fri Jun 4 23:52:19 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
- Added support for codeset translators.
- Many thanks to Jim Rogers <jrogers@viasoft.com> for providing
- these fixes.
-
- * ace/Makefile:
- * ace/Codeset_IBM1047.h:
- * ace/Codeset_IBM1047.cpp:
- A pair of codeset translators between IBM1047 (aka EBCDIC) and
- ISO8859-1 (aka ISO-Latin-1)
-
- * ace/config-mvs.h:
- Define an ACE_MVS macro
-
-Fri Jun 4 15:23:18 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.{h,i,cpp}: Removed common code by
- making Cached_Connect_Strategy_Ex derive from
- Cached_Connect_Strategy class.
-
-Fri Jun 04 09:59:58 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * docs/tutorials/tutorials.dsw: Fixed "_" to "-". Thanks to Tom
- Bradley <thomas.bradley@maisel-gw.enst-bretagne.fr> for pointing
- out this problem.
-
-Fri Jun 4 09:02:35 1999 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
-
- * ace/POSIX_Asynch_IO.cpp: Fixed a syntax error. There were two
- consecutive commas in the ACE_DEBUG statement which were causing
- syntax errors while compiling.
-
-Fri Jun 4 00:28:07 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/POSIX_Asynch_IO.cpp: Fixed the Linux egcs warning.
-
-Thu Jun 3 17:05:36 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.h
- * ace/Cached_Connect_Strategy_T.i
- * ace/Cached_Connect_Strategy_T.cpp
-
- Caching connection strategy used by the Strategy Connector.
-
- * ace/Cache_Map_Manager_T.h
- * ace/Cache_Map_Manager_T.i
- * ace/Cache_Map_Manager_T.cpp
-
- Map Manager which performs caching depending on the caching
- strategy used.
-
- * ace/Hash_Cache_Map_Manager_T.h
- * ace/Hash_Cache_Map_Manager_T.i
- * ace/Hash_Cache_Map_Manager_T.cpp
-
- Hash_Map used as a specialised form of the Cache Map.
-
- * ace/Caching_Strategies_T.h
- * ace/Caching_Strategies_T.i
- * ace/Caching_Strategies_T.cpp
-
- Strategies used for caching purposes, example: Least Recently
- Used.
-
- * ace/Caching_Strategy_Utility_T.h
- * ace/Caching_Strategy_Utility_T.i
- * ace/Caching_Strategy_Utility_T.cpp
-
- Helper class for the caching strategy classes which does the
- purging of entries.
-
- * ace/Cleanup_Strategies_T.h
- * ace/Cleanup_Strategies_T.i
- * ace/Cleanup_Strategies_T.cpp
-
- Strategy which deals with destruction and cleanup in general.
-
- * ace/Makefile
-
- Added the above under the TEMPLATE_FILES.
-
- * examples/Web_Crawler/Optimal_Cache_Map_Manager_T.h
- * examples/Web_Crawler/Optimal_Cache_Map_Manager_T.i
- * examples/Web_Crawler/Optimal_Cache_Map_Manager_T.cpp
- * examples/Web_Crawler/Cached_Connect_Strategy_T.h
- * examples/Web_Crawler/Cached_Connect_Strategy_T.i
- * examples/Web_Crawler/Cached_Connect_Strategy_T.cpp
- * examples/Web_Crawler/Caching_Strategies_T.h
- * examples/Web_Crawler/Caching_Strategies_T.i
- * examples/Web_Crawler/Caching_Strategies_T.cpp
-
- Removed these files and added them to the ace library itself.
-
- * examples/Web_Crawler/Command_Processor.cpp
- * examples/Web_Crawler/Command_Processor.h
- * examples/Web_Crawler/HTTP_URL.cpp
- * examples/Web_Crawler/HTTP_URL.h
- * examples/Web_Crawler/Iterators.h
- * examples/Web_Crawler/Makefile
- * examples/Web_Crawler/Mem_Map_Stream.cpp
- * examples/Web_Crawler/Mem_Map_Stream.h
- * examples/Web_Crawler/Options.h
- * examples/Web_Crawler/URL.h
- * examples/Web_Crawler/URL_Addr.h
- * examples/Web_Crawler/URL_Status.h
- * examples/Web_Crawler/URL_Visitor.cpp
- * examples/Web_Crawler/URL_Visitor.h
- * examples/Web_Crawler/URL_Visitor_Factory.h
- * examples/Web_Crawler/Web_Crawler.h
- * examples/Web_Crawler/main.cpp
-
- Changed to include files pertaining to Caching and Connection
- management from ace library.
-
-Thu Jun 03 15:57:43 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T (ACE_Cached_Connect_Strategy): Allowed the user
- to pass in a mutex. This allows the user to pass in a
- preconfigured mutex of his/her liking. Since the parameters
- default appropriately, no existing code should break.
-
- * ace/Functor: Changed ACE_Hash<unsigned long long> specialization
- to ACE_Hash<ACE_UINT64>.
-
-Thu Jun 3 10:36:35 Matthew J Braun <mjb2@cs.wustl.edu>
-
- * ace/Functor.i
- * ace/Functor.h:
- Added ACE_Hash <unsigned long long>. It truncates the ULongLong
- to a ULong and returns it. Nothing major...
-
-Wed Jun 2 17:50:23 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/platform_mvs.GNU:
- Debugging info was not generated on the C++ files.
- The -+ flag should be added to CPPFLAGS using +=
- Thanks to Jim Rogers <jrogers@viasoft.com> for these fixes.
-
-Wed Jun 02 16:11:34 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/TTY_IO.cpp (control): Commented out odd baud rates (56000,
- 128000, 256000) which don't seem to be supported on FreeBSD.
-
-Wed Jun 02 00:07:44 1999 <alex@cs.wustl.edu>
-
- * tao/test_cancel.dsp
- * tao/post_completions.
- * tao/test_end_event_lo
- * tao/test_multiple_loo
- * tao/test_proactor.dsp
- * tao/test_proactor.dsw
- * tao/test_timeout.dsp
-
- * examples/Reactor/Proactor/test_cancel.cpp:
- * examples/Reactor/Proactor/README:
- * examples/Reactor/Proactor/Makefile:
-
- Related to ChangeLog : Tue Jun 1 16:48:58 1999 Alexander Babu
- Arulanthu <alex@cs.wustl.edu>
-
-Tue Jun 1 21:44:05 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/platform_linux_lxpthread.GNU:
- Added the rt library to the command line, ACE uses aynchronous
- I/O by default on linux.
-
-Tue Jun 1 16:48:58 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- Ported <ACE_Asynch_Operation::cancel> to POSIX platforms based
- on <aio_cancel> API. Made the return values consistent in both
- WIN32 and POSIX platforms as follows.
-
- All completion notifications for the I/O operations will occur
- normally.
-
- = Return Values:
-
- -1 : Operation failed. (can get only in POSIX).
- 0 : All the operations were cancelled.
- 1 : All the operations were already finished in this
- handle. Unable to cancel them.
- 2 : Atleast one of the requested operations cannot be
- cancelled.
-
- * ace/Asynch_IO.cpp
- * ace/Asynch_IO.h
- * ace/POSIX_Asynch_IO.cpp
- * ace/POSIX_Asynch_IO.h
- * ace/POSIX_Proactor.h
- * ace/WIN32_Asynch_IO.cpp:
- * ace/POSIX_Proactor.cpp:
-
- * ace/config-linux-lxpthreads.h: Enabled the ACE_HAS_AIO_CALLS
- flag for this platform.
-
-
-Tue Jun 1 15:02:34 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Connector.h:
- Documented the new connect() method
-
-Tue Jun 01 11:18:03 1999 <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_end_event_loop.cpp:
- * tao/post_completions.cpp
- * tao/test_end_event_loop.cpp
- * tao/test_end_event_loop.dsp
- * tao/test_proactor.dsw
- Fixed the link problems.
-
-Tue Jun 1 09:57:42 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/TTY_IO.cpp (control),
- * ace/config-freebsd.h,
- ace/config-freebsd-pthread.h: Attached is a patch that will
- allow the ACE_TTY_IO class to work with FreeBSD tty devices.
- Thanks to John Aughey <jha@FreeBSD.ORG> for contributing these.
-
- * ACE-INSTALL.html: Updated the list of platforms that ACE is
- supported on.
-
-Tue Jun 01 10:00:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated Sun C++ and DU versions in fully
- supported platforms list.
-
-Mon May 31 22:45:18 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: added ACE_HAS_GPERF.
-
-Mon May 31 16:28:27 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- Added and updated some comments.
-
-Mon May 31 16:13:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: if ACE_COMPONENTS is equal to FOR_TAO,
- override it with the proper component values. The
- override allows it to be set on the command line, e.g.,
- make ACE_COMPONENTS=FOR_TAO. Thanks to Carlos for
- reporting this.
-
-Mon May 31 14:00:21 1999 Steve Huston <shuston@riverace.com>
-
- * ace/RB_Tree.i: Reverted changes from May 21. It broke the LynxOS
- build of tests/RB_Tree_Test.
-
-Mon May 31 11:51:03 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/CORBA_Handler.h: Updated the comments to clarify how to use
- this class. Thanks to Ram Vishnuvajjala
- <rvishnuvajjala@lucent.com> for motivating this.
-
- * ace/Service_Config: Added a static variable called is_initialized
- that keeps track of whether the <ACE_Service_Config> is already
- initialized. If it is, we can't allow <yyparse> to be called
- since it's not reentrant...
-
-Sun May 30 14:08:48 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Makefile:
- * ace/Vector.{h,i,cpp}:
- * tests/Makefile:
- * tests/Vector_Test.cpp: Removed the ACE_Vector implementation
- from the distribution.
-
-Sat May 29 14:14:37 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Vector.{h,i,cpp}: Added STL Vector-style insert() and
- erase() methods. Also added a new constructor that creates an
- ACE_Vector from a specified range of iterators. ACE_Vector
- class is now Purify clean (i.e. fixed any and all memory leaks).
-
- * tests/Vector_Test.cpp: Added tests for the newly added
- ACE_Vector<T>::insert() and ACE_Vector<T>::erase() methods.
-
-Fri May 28 20:19:50 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Vector.{h,i,cpp},
- tests/Vector_Test.cpp: Implemented an ACE_Vector class based on
- the ACE_Array class. It is not derived from it, however. The
- ACE_Vector class provides an STL Vector-like interface. The
- Vector_Test tests the important features of the ACE_Vector class
- and sends output to `logs/Vector_Test.log'.
-
- * ace/Makefile,
- tests/Makefile: Added ACE_Vector related files to the makefiles
- and updated the dependencies.
-
-Thu May 27 15:50:17 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/UNIX_Addr.cpp (set), Explicitly set the sun_family to
- AF_UNIX, otherwise it will be zero by a previous call to
- memset(). AF_UNSPEC, which is zero, is what the call to
- memset() cause the sun_family to be.
-
-Wed May 26 01:46:27 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/platform_freebsd.GNU:
- * include/makeinclude/platform_freebsd_pthread.GNU: Consolidated
- platform macro files for FreeBSD.
-
- * ace/config-freebsd-pthread.h:
- * ace/config-freebsd.h: Added ACE_HAS_NONCONST_SELECT_TIMEVAL.
-
-Tue May 25 21:38:40 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/UNIX_Addr.cpp: The default constructor was not setting the
- address family to AF_UNIX. Now that we do so we can let the OS
- select a ephemeral UNIX domain endpoint for us.
-
-Tue May 25 19:20:15 1999 Steve Huston <shuston@riverace.com>
-
- * tests/run_tests.(sh bat): Added SOCK_Send_Recv_Test.
-
-Tue May 25 16:54:41 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/SOCK_Send_Recv_Test.cpp:
- Fixed a signed/unsigned mismatch warning and
- changed several uses of static_cast to
- reinterpret_cast. This is a belated entry, I put it
- first in TAO/ChangeLog by mistake.
-
-Tue May 25 15:19:06 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_ghs.GNU: added
- -Xleaveg7 to CFLAGS with threads=1. It's necessary
- to avoid execution problems in multithreaded programs.
- Thanks to Stefaan Kiebooms <stefaan@ghs.com> for providing
- this fix.
-
-Tue May 25 13:40:10 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/LSOCK_Acceptor.cpp (get_local_addr):
-
- Only the base class members of ACE_UNIX_Addr were being copied
- since the assignment lacked a dynamic cast. Thanks to Carlos and
- Irfan for clarifying this.
-
-Tue May 25 11:41:28 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Timeprobe_T.h (class ACE_Timeprobe): Moved the default size
- from Timeprobe_T.h to OS.h, where it can easily be redefined by
- the user.
-
-Tue May 25 07:37:47 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU: removed suppression
- of warning 839: no_corresponding_delete.
-
-Mon May 24 14:04:11 1999 Steve Huston <shuston@riverace.com>
-
- * tests/SOCK_Send_Recv_Test.cpp: New test to exercise ACE_SOCK send
- and receive variations. It concentrates on recvv/sendv-like things
- now in order to shake out Winsock 1.1 issues. To be complete, it
- should be added to over time.
-
- * tests/Makefile:
- * tests/version_tests/{SOCK_Send_Recv_Test.dsp, version_tests.dsw}:
- * tests/{SOCK_Send_Recv_Test.dsp, tests.dsw}: Add new test.
-
-Mon May 24 12:11:03 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (ACE_SOCKCALL_RETURN): Fixed macro by comparing against
- FAILVALUE rather than SOCKET_ERROR. Some winsock calls don't
- return SOCKET_ERROR. Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for reporting this problem.
-
-Sun May 23 11:33:07 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- Changes for the following enhancement in the Proactor
- implementation. Enhanced the semantics of the <end_event_loop>,
- so that when it is called, it wakes up all the threads blocked on
- waiting for completions and end the event loop. Thanks to Edwin
- D. Windes <ewindes@usa.net> for reporting the issue.
-
- * ace/Proactor.h:
- * ace/Proactor.cpp: Added static helper methods and states to post
- the wakeup completions to the CompletionPort.
-
- * ace/Asynch_IO.h:
- * ace/Asynch_IO.cpp: Added a method <handle_wakeup> to the
- ACE_Handler.
-
- * ace/Object_Manager.cpp
- * ace/Object_Manager.h: Added a new Thread_Mutex called
- <ACE_PROACTOR_EVENT_LOOP_LOCK> to protect the thread count in
- the event loop.
-
- * ace/POSIX_Asynch_IO.cpp
- * ace/POSIX_Proactor.cpp
- * ace/POSIX_Proactor.h
- * ace/Proactor.cpp
- * ace/Proactor.h
- * ace/Proactor_Impl.h
- * ace/WIN32_Proactor.cpp
- * ace/WIN32_Proactor.h:
- Changes for posting wakeup completions.
-
- * examples/Reactor/Proactor/test_end_event_loop.cpp:
- * examples/Reactor/Proactor/test_end_event_loop.dsp:
- * examples/Reactor/Proactor/post_completions.dsp:
- * examples/Reactor/Proactor/Makefile: Test file the
- <end_event_loop> enhancement.
-
-Sat May 22 16:57:38 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/FlReactor.cpp: Sun/CC doesn't like reinterpret cast when
- converting from an int into an int; this is silly, but I cannot
- use static_cast because on NT reinterpret_cast is the right
- thing. Use old-style casts for the moment.
-
- * tests/FlReactor_Test.cpp: Minor cosmetic fixes.
-
-Sat May 22 16:36:14 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ACE version 4.6.40 released.
-
-Sat May 22 14:53:47 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Filecache.cpp: snagged another "template <>". Thanks to
- Bala for reporting it.
-
-Sat May 22 07:30:44 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-chorus.h,ace/config-lynxos.h: added
- ACE_HAS_NONCONST_SELECT_TIMEVAL.
-
- * ace/Filecache.cpp: commented out "template<>" for now. Not all
- compilers can cope with it.
-
-Fri May 21 21:12:37 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Map_Manager.i (operator==): Since <map_man_> is a pointer
- now, we must compare by value, rather than by address.
-
-Fri May 21 12:56:38 1999 David L. Levine <levine@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp: fixed to
- build without threads: #ifdef ACE_MT_SAFE is insufficient.
- Must also check if it is 0.
-
-Fri May 21 12:45:32 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Map_Manager.i:
- Fixed minor error in previous commit. Thanks to Irfan for
- helping out with this.
-
-Fri May 21 11:18:21 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux11.h: Added ACE_HAS_NONCONST_SELECT_TIMEVAL.
-
- * ace/RB_Tree.i: Fully template-qualified references to node_ and
- tree_ in iterators; makes HP aC++ happy.
-
-Fri May 21 11:27:44 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Map_Manager.h (class ACE_Map_Iterator_Base): Changed the
- ACE_Map_Manager reference to a pointer. This way there is no
- problem in reinitializing <map_man_>, and hence the compiler
- will not have a problem in providing us a default assignment
- operator. Thanks to Knut Johannessen <knutj@funcom.com> for
- pointing out this problem.
-
- * ace/Process: A nifty ACE::fork was added several months ago
- which offers the option to avoid zombies, but it is not used in
- ACE_Process::spawn.
-
- Mark L. Boriack <mboriack@sito.saic.com> provided patches which
- adds an <avoid_zombies_> data member to ACE_Process_Options,
- appropriate accessor functions, and changes the ACE_OS::fork
- call to ACE::fork in ACE_Process::spawn, making use of the
- option. The default behavior is left unchanged, i.e., you get
- zombies. Thanks Mark.
-
-Fri May 21 10:34:10 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/gethrtime.cpp,Makefile (gethrtime on Green
- Hills/VxWorks): reverted to building gethrtime.cpp with g++, because
- the ghs assembly code didn't work properly.
-
-Fri May 21 10:10:13 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ACE-INSTALL.html: Updated information about building egcs' C++
- shared libraries with an example, and emphasized the fact that
- the `--enable-shared' configuration option is not an egcs
- run-time option. Thanks to Wallace Owen <owen@visicom.com> for
- motivating this.
-
-Fri May 21 09:15:08 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-sunos5.5.h:
- Added ACE_HAS_NONCONST_SELECT_TIMEVAL here too
-
-Fri May 21 07:53:58 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-vxworks5.x.h, config-osf1-4.0.h: Added
- ACE_HAS_NONCONST_SELECT_TIMEVAL.
-
-Thu May 20 18:01:24 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Filecache.cpp: Added "template<>" to specializations.
-
- * ace/OS.i (ACE_OS::select, ACE_OS::sleep): Removed implicit
- dependency on binary object layout with regard to using an
- ACE_Time_Value object as a struct timeval; use the timeval*
- operator instead. On platforms with ACE_HAS_NONCONST_SELECT_TIMEVAL
- don't just cast away const-ness of the ACE_Time_Value - modification
- of the timeval by select() is not consistent, and Linux is not the
- only one that modifies it (Solaris 7 does also, as well as AIX and
- possibly HP; Solaris 2.5/6 don't specify). So, play it safe.
- Inlining and optimization should prevent this from having any
- affect on performance.
-
- * ace/config-sunos5.5.h, config-hpux-10.x.h, config-aix-4.x.h:
- Added #define ACE_HAS_NONCONST_SELECT_TIMEVAL.
-
-Thu May 20 17:47:35 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h (ACE_DES_ARRAY_FREE_*): Added new macros to facilitate
- proper destruction of arrays.
-
- * ace/Containers_T.cpp (ACE_Array_Base): Changed ACE_Array_Base to
- use the new ACE_DES_ARRAY_FREE_* macros in order to prevent the
- memory leaks.
-
-Thu May 20 17:46:02 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Fixed Alpha configurations. Thanks to
- Christian Schuderer <Christian.Schuderer@erl9.siemens.de> for
- reporting this.
-
-Thu May 20 15:35:23 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/TkReactor_Test.cpp:
- It was not compiling if ACE_HAS_TK was not defined.
-
-Thu May 20 15:33:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU:
- added (and default to) LIBS for Green Hills 1.8.9.
-
-Thu May 20 14:34:59 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: with Green Hills only, added
- ACE_LACKS_ACE_IOSTREAM. ACE's IOStream_Test never halts
- when built with Green Hills 1.8.9.
-
-Thu May 20 14:21:44 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i: (t_getname): fixed comment after #endif, to
- agree with the #ifdef.
-
-Thu May 20 13:51:20 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32-common.h: I forgot to put '/**/' between
- #include and <blah.h> which caused MSVC to generate warnings
- when checking file dependencies. Thanks to Christian Schuderer
- <Christian.Schuderer@erl9.siemens.de> for reporting this.
-
-Thu May 20 13:52:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: build with threads if
- _POSIX_C_SOURCE >= 199506L or #ifdef _POSIX_PTHREAD_SEMANTICS.
- Added #define ACE_LACKS_RWLOCK_T if _POSIX_PTHREAD_SEMANTICS
- is #defined (and therefore ACE_HAS_STHREADS is not #defined).
- The rwlock functions are a Solaris threads interface, and
- are not POSIX.
-
- * include/makeinclude/platform_sunos5_ghs.GNU: default to
- building without threads support, because Green Hills 1.8.9
- is incompatible with the SunOS threads libraries.
-
-Thu May 20 12:12:01 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp},Sched_Params.cpp: with ACE_HAS_PRIOCNTL,
- moved #include of sys/{rt,ts}priocntl.h from OS.cpp and
- Sched_Params.cpp to OS.h, so that USYNC_THREAD and USYNC_PROCESS
- #defines can be protected effectively.
-
-Thu May 20 11:19:45 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Addr.cpp: Added ACE_UNUSED_ARG for selector parameter
- when appropriate.
-
-Thu May 20 09:57:57 1999 Bill Rizzi <rizzi@softserv.com>
-
- * ace/Log_Msg.{h,cpp},examples/Log_Msg/test_log_msg.cpp
- (priority_mask): added optional support for process priority
- mask, in addition to the (now default) thread priority mask.
-
-Thu May 20 09:42:54 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h (fcntl): changed type of last argument from int to
- long, to permit safer casting from pointer types.
-
- * ace/OS.i (flock_*): use ACE_OS::fcntl instead of ::fcntl.
-
- * ace/OS.cpp (ftruncate): use ACE_OS::fcntl instead of ::fcntl.
-
- Thanks to an anonymous ACE user for reporting that
- these functions weren't using ACE_OS::fcntl.
-
-Wed May 19 23:50:18 1999 Nagarajan Surendran <naga@cs.wustl.edu>
-
- * ace/TkReactor.{h,cpp}:
- * ace/Makefile:
- Added a new reactor implementation based on the Tcl/Tk Event
- loop and event handling mechanism.
-
- * ace/tests/TkReactor_Test.{cpp,tcl}:
- * ace/tests/Makefile:
- The Tk Reactor test and the tcl script for the GUI. This is
- similar to the XtReactor_Test.
-
- * ace/include/makeinclude/wrapper_macros.GNU:
- * ace/include/makeinclude/platform_sunos5_sunc++.GNU
- Added changes to Makefile flags for XtReactor.
-
-Wed May 19 21:56:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Message_Queue.h: fixed typo in comment: interrupt.
-
-Wed May 19 21:34:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU: removed these
- warning suppressions:
- 174: expr_has_no_effect
- 610: nonoverriding_function_decl
- They're certainly not needed with cxx 6.2-020, and
- hopefully not needed with earlier versions.
-
-Wed May 19 10:52:15 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/DLL/test_dll.cpp (main): Fixed auto pointer use. It
- was causing "Temporary used for non-const reference" warnings.
-
-Wed May 19 10:04:54 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/SString.i:
- Changed the default constructor to set rep_ to the
- empty string instead of the null string. Thanks to
- Knut Johannessen <knutj@funcom.com> for pointing
- this out.
-
-Wed May 19 06:34:58 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-minimal.h: added #define ACE_USE_THREAD_MANAGER_ADAPTER,
- so that ACE_Thread_Exit isn't needed in the ACE_OS layer.
-
-Tue May 18 22:03:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU,platform_osf1_cxx.GNU:
- removed suppression of warning 9 (nested comment not allowed) on
- Digital Unix 5.0 and later.
-
-Tue May 18 15:01:39 1999 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp: Added #include "ace/SString.h" to catch def for
- ACE_Tokenizer in Winsock 1.1 mode.
-
-Tue May 18 13:30:55 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/rules.nested.GNU: FOR is not an excutable on
- Win32, therefore, we must bring in the command processor in to
- use FOR. Thanks to David Hooker <DHooker@uniview.net> for
- reporting the bug.
-
-Tue May 18 11:46:55 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/FILE_Connector.h: Changed the default perms from 0 to
- ACE_DEFAULT_FILE_PERMS.
-
-Tue May 18 11:28:32 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp: forced
- ACE_TLI_Stream's recv method to call ACE_OS::t_rcv rather than
- ACE_OS::read to be compatible with XTI.
-
-Tue May 18 11:00:15 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task_T: Moved the ACE_Buffered_Task logic out of the Task
- abstraction since it doesn't belong there.
-
- * ace/Makefile: Regenerated the dependencies.
-
- * ace/FlReactor.cpp: We should be including <FL/Fl.h> rather than
- "FL/Fl.h".
-
-Tue May 18 10:42:47 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU: removed
- suppression of warning 1180, statement causes unreachable
- return, because it's no longer necessary.
-
-Tue May 18 10:38:53 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Thread_Manager_Test.cpp: replaced Hash_Map_Manager
- with a simple array. This avoids dynamic allocation in
- the signal handler. And, it avoids having to specialize
- ACE_Hash<ACE_hthread_t> on platforms that have a pthread_t
- struct.
-
-Tue May 18 09:33:46 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/FILE_IO: Added new sendv()/recvv() and sendv_n()/recvv_n()
- methods to be consistent with SOCK_IO and SOCK_Stream.
-
- * ace/SOCK_IO.cpp (recvv): Make sure to 0-out the iov_base so that
- it's always ok to delete it, even if any of the internal
- operations fail!
-
-Tue May 18 10:14:47 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Makefile:
- * ace/FlReactor.h:
- * ace/FlReactor.i:
- * ace/FlReactor.cpp:
- * include/makeinclude/platform_linux_lxpthread.GNU:
- * include/makeinclude/wrapper_macros.GNU:
- * tests/Makefile:
- * tests/FlReactor_Test.cpp:
- Added new reactor implementation based on the event loop of the
- Fast-Light toolkit, similar to the XtReactor.
- FLTK is a GUI toolkit that works on UNIX/X-Windows and on Win32,
- it is integrated to OpenGL and is pure C++.
- Check http://fltk.easysw.org for more details.
-
-Tue May 18 09:35:00 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Thread_Manager_Test.{h,cpp},Makefile:
- removed Thread_Manager_Test.h.
-
-Mon May 17 22:39:06 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Thread_Manager_Test.cpp: added a couple more
- explicit template instantiations. Thanks to Carlos
- for reporting that they're needed on Irix. And,
- added an ACE_Hash<ACE_hthread_t> specialization to
- keep DU cxx happy.
-
-Mon May 17 16:31:16 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task_T.cpp,
- ace/OS.h: Removed ACE_DEFAULT_WRITEV_MAX and replaced it
- with IOV_MAX.
-
-Mon May 17 15:49:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * config-dgux-4.x-ghs.h,config-vxworks5.x.h,config-ghs-common.h:
- factored ACE_LACKS_SIGNED_CHAR to config-ghs-common.h.
-
- * config-dgux-4.x-ghs.h: removed ACE_LACKS_ACE_IOSTREAM.
- It should work now, though we don't have that platform
- to verify it.
-
-Mon May 17 15:08:45 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CORBA_macros.h:
- Fixed implementation of the ACE_READ_GUARD_THROW_EX and
- ACE_WRITE_GUARD_THROW_EX macros.
-
-Mon May 17 15:12:54 1999 David L. Levine <levine@cs.wustl.edu>
-
- * test/Thread_Manager_Test.cpp: use a hash map, instead of
- TSS, to store each thread's indication of whether it has
- been signalled. That way, the signal handler doesn't have
- to access TSS. Increased the delay from 1 to 2 seconds after
- the signal test, which also seems to help avoid thread lib
- panics on Solaris.
-
-Mon May 17 14:02:01 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Conn_Test.cpp (handler): added comment saying that even
- the ACE_OS::exit () call isn't safe.
-
-Mon May 17 10:31:04 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Repository.cpp (find_i): A missing pointer check was
- causing the remove method to segfault. Thanks to Tom Arbuckle
- <arbuckle@uran.informatik.uni-bonn.de> for pointing this out.
-
-Mon May 17 10:21:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/TSS_Test.cpp: removed the signal handler. It
- wasn't used for the test, and contained an ACE_DEBUG.
-
-Mon May 17 10:12:45 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-chorus.h,config-dgux-4.x-ghs.h,config-sunos5.5.h,
- config-vxworks5.x.h,config-ghs-common.h:
- factored out Green Hill-specific #defines to config-ghs-common.h.
-
-Mon May 17 09:07:41 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Conn_Test.cpp (handler): commented out unused arg
- "signum".
-
-Sun May 16 20:38:58 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CDR_Stream.{h,i} (current): Added this accesor function for
- Flick IDL compiler. Thanks to Tim Stack <stack@aros.net> for
- recommending this.
-
-Sun May 16 20:08:41 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Thread_Manager_Test.cpp (handler,worker):
- moved ACE_DEBUG out of signal handler. It was
- causing occasional lockups on SunOS. Signal
- handlers must never do anything that could cause
- a lock to be acquired.
-
- * tests/Conn_Test.cpp (handler): removed ACE_DEBUG.
-
-Sun May 16 20:04:09 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: moved #include of ace/Trace.h to before #include of
- ace/OS.i.
-
- * ace/OS.{i,cpp}: enabled ACE_TRACE for most functions (except
- those that are used by ACE_TRACE).
-
-Sun May 16 19:54:10 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/config-sunos5.7.h: Comments
- * ace/config-sunos5.6.h: Comments
-
- * ace/POSIX_Asynch_IO.cpp:
- * ace/POSIX_Proactor.h:
- * ace/POSIX_Proactor.cpp: - Using ACE_dynamic_cast to get
- <ACE_POSIX_Asynch_Result *> from <aiocb *> gives build errors on
- egcs. <ACE_reinterpret_cast> is not the correct solution for
- this. Solved this problem by having one more list of
- <ACE_POSIX_Asynch_Result *> so that we dont have to do any
- casting.
- * ace/Proactor.cpp (ACE_Proactor): Indentation.
- * examples/Reactor/Proactor/post_completions.cpp: Added template
- pragma's.
-
-Sun May 16 18:35:59 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.39 released.
-
-Sun May 16 12:34:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (ACE_Log_Msg_Manager::lock_): changed
- the lock type from ACE_Thread_Mutex to
- ACE_Recursive_Thread_Mutex. This allows ACE_Log_Msg's
- methods to be called after calling ACE_Log_Msg::acquire (),
- without deadlock. Thanks to Bill Rizzi <rizzi@softserv.com>
- for suggesting this.
-
-Sat May 15 08:30:43 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Containers.h: added #include of ace/Malloc_Base.h.
- It's needed for the definition of ACE_Allocator when
- instantiating container classes.
-
-Sat May 15 03:32:02 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CDR_Stream.h: Added #include of ace/SString.h.
-
-Fri May 14 23:05:32 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Record.h: removed unnecessary #include of ace/SString.h.
-
-Fri May 14 21:11:46 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Task_T.h:
- * ace/Task_T.cpp:
- Fixed syntax errors in ACE_Buffered_Task
-
-Fri May 14 21:03:30 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * netsvcs/lib/Log_Message_Receiver.cpp:
- Changed ACE_Guard instantiations with ACE_GUARD() macros to
- avoid some warnings with egcs, similar to the problem that David
- had with Message_Queue_T.cpp
-
-Fri May 14 19:31:04 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Message_Block.cpp (total_size):
-
- Corrected warning caused by assignment to non-const from const.
-
- * ace/Message_Queue_T.cpp (close):
-
- Temporary variable wasn't declared.
-
- * ace/Message_Queue_T.cpp (remove_messages):
-
- Removed unused variable.
-
-Fri May 14 19:16:06 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Task_T.cpp (put, flush):
-
- Corrected syntax errors where return type was placed before
- template keyword.
-
-Fri May 14 16:46:42 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task_T: Added a new class called ACE_Buffered_Task that
- buffers up its ACE_Message_Blocks until (1) the buffer is full
- or (2) a timeout elapses, at which point the buffers are written
- out using some type of writev()-like mechanism.
-
- * ace/OS.h: Added a new macro called ACE_DEFAULT_WRITEV_MAX, which
- defaults to the maximum value that writev() can have.
-
- * ace/Message_Block.cpp: Added a new method called total_size()
- that returns the total number of bytes in a composite
- Message_Block (i.e., a Message_Block that has a chain of
- Message_Blocks).
-
- * ace/Message_Queue_T.cpp: Reimplemented all the hand-coded loops
- to use the new ACE_Message_Block::total_size() method.
-
-Fri May 14 16:17:27 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Synch.h (ACE_Null_Mutex>): Conditionally compiles ~ACE_Guard()
- destructor. Win32 needs this definition.
-
-Fri May 14 16:10:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Message_Queue_T.cpp: replaced raw ACE_Read_Guards
- with ACE_READ_GUARD_RETURN macros. That avoids a compiler
- warning (egcs 1.1.1/SunOS 5.7) now that the ACE_Guard<Null_Mutex>
- destructor has been removed. Thanks to Irfan and Carlos
- for suggesting this fix.
-
-Fri May 14 15:35:50 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE.cpp (clr_flags and set_flags): We should use ioctl()
- calls to implement on vxworks this rather than fcntl(). Thanks
- to Joseph A. Condlin <jac@slpmbo.ed.ray.com> for reporting this.
-
-Fri May 14 13:15:02 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * examples/IPC_SAP/TLI_SAP/Makefile: Took out FORE specific
- information. Somehow my local changes got checked in - this is
- to undo that.
-
-Fri May 14 12:58:02 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Addr.h:
- * ace/ATM_Addr.i:
- * ace/ATM_Addr.cpp: Added accessor methods for the selector byte
- of an ATM address.
-
- * examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp:
- * examples/IPC_SAP/TLI_SAP/CPP-ATM-server.cpp: Modify example code
- to have the user optionally specify the selector byte.
-
-Fri May 14 12:47:38 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Addr.cpp,ace/Synch_Options.cpp: added comments about
- the static objects.
-
-Fri May 14 11:36:05 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/SString.h:
- * ace/SString.i: Added new class to auto destroy dynamically
- allocated strings, sort of a mixing between auto_ptr and
- CString. Auto_Ptr_Array was not useful because we need to free
- using ACE_OS::free() (and in the future allocators).
-
-Fri May 14 10:37:49 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Fixed a deadlock in cond_timedwait()/cond_broadcast().
- Thanks to Brian C. Olson <bolson@rtlogic.com> for reporting
- this.
-
- * ace/Synch.h (ACE_Null_Mutex>): Commented out the ~ACE_Guard()
- destructor to prevent segfaults on certain versions of SunC++.
- Thanks to Russ Noseworthy for reporting this bizarre bug!
-
-Fri May 14 09:51:55 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Message_Block.h:
- * ace/Message_Block.cpp:
- Modified default constructor and constructor taking a Data_Block
- to also take an Allocator.
-
-Fri May 14 09:14:55 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_cxx.GNU:
- added $(ACELIB) to SOFLAGS for DU 5.x. It should
- have been there all along.
-
-Thu May 13 17:27:14 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * netsvcs/servers/svc.conf:
- * netsvcs/clients/Naming/Client/svc2.conf:
- * netsvcs/clients/Naming/Client/svc2.conf: Removed relative paths
- from all DLL's. They were hard-coded which was not portable.
- ACE should figure out the correct path automatically.
-
- * netsvcs/lib/Name_Handler.cpp: Replaced several calls to
- ACE_WString::rep with ACE_WString::fast_rep to avoid memory
- leaks. Thanks to Valery Arkhangorodsky
- <valerya@servicesoft.com> for reporting this.
-
- * ace/Registry.cpp (close): Only close <key_> when we do own a
- key.
-
- * netsvcs/lib/Name_Handler.cpp (resolve): The atype string needs
- to be delete[]'ed once we are done with it. Thanks to Valery
- Arkhangorodsky <valerya@servicesoft.com> for pointing this out.
-
-Thu May 13 09:39:17 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Makefile: added Tokens_Test to BIN2 if Tokens component
- is not configured in. This ensures that Tokens_Test gets
- cleaned up, even if the ace directory was realcleaned first
- (and ACE_BUILD_COMPONENTS is therefore empty).
-
-Thu May 13 07:24:41 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/POSIX_Proactor.cpp (handle_events): replaced
- incorrect dynamic_cast with a reinterpret cast.
-
-Wed May 12 17:42:09 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Message_Block.h:
- * ace/Message_Block.cpp:
- The message blocks can be obtained from an allocator now. Thanks
- to John Aughey <Aughey@concentric.net> for this cool feature.
-
-Wed May 12 16:24:17 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/Makefile:
- * examples/Reactor/Proactor/test_proactor.cpp:
- * ace/POSIX_Proactor.cpp:
- * ace/POSIX_Proactor.h:
- * ace/Proactor.cpp :
- * ace/POSIX_Asynch_IO.cpp: Fixed the problem with terminating the
- Timer thread. Also, fixed the places where conversion between
- void * and ACE_POSIX_Asynch_Result. Used ACE_reinterpret_cast at
- these places.
-
-Wed May 12 12:14:09 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * COPYING: Additional updates/clarifications suggested by Richard
- Stallman.
-
-Wed May 12 00:25:57 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.h (ACE_Thread_Manager): Added clarification
- for the semantics differences among wait(), wait_grp() and
- wait_task().
-
-Tue May 11 18:11:51 1999 James C. Hu <jxh@entera.com>
-
- * ace/config-sunos5.7.h: SunOS 5.7 (aka Solaris 7) does not have a
- limited select.
-
-Tue May 11 17:11:51 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Conn_Test.cpp (spawn_threads): changed some ACE_NEW
- statements to ACE_NEW_RETURN.
-
-Tue May 11 15:43:30 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: added ACE_THR_PRI_OTHER_DEF for NT, because MT_Cubit
- uses it.
-
-Tue May 11 14:45:08 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Conn_Test.cpp: fixed use of status on platforms that lack
- fork.
-
-Tue May 11 14:10:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf-4.0.h: added #define of
- ACE_NEW_THROWS_EXCEPTIONS, if exception handling is enabled.
-
- * tests/New_Fail_Test.cpp: removed workaround for DEC cxx, and
- modified error message to mention ACE_NEW_THROWS_EXCEPTIONS.
-
-Tue May 11 12:02:03 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-win32-common.h: set __ACE_INLINE__ to 1 if not
- #defined. It's scary when I trip over syntax errors on Win32
- :-)
-
-Tue May 11 10:00:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/OS.i: fixed name of unused argument for pSOS
-
- * ace/RB_Tree.{cpp, h}: moved enumerated type from template to
- non-templatized base class to make old g++ happy.
-
-Mon May 10 22:59:46 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: don't set VDIR to
- .shobj/ for VxWorks, because it uses the same .o files for
- static and shared libs.
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: disable RTTI
- for egcs, because the Tornado 1.0.x libs don't support it. No
- harm in disabling for old g++.
-
-Mon May 10 15:33:56 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/INET_Addr.cpp (string_to_addr): Fixed a mistake that
- occurred when integrating Jerry D. De Master
- <jdemaste@ipdinc.com> fix. Thanks to Zoran and Jerry for
- reporting this.
-
-Mon May 10 15:00:31 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE-INSTALL.html: Changed to use ACE_NO_INLINE to supress
- inlining to match with the recent dsp file changes. Added a
- link to Barry Hoggard's CORBA page which contains ACE related
- MSVC setting hints.
-
- * ace/Select_Reactor_Base.cpp (unbind): We need to make sure the
- reactor's suspend_set_ also gets cleaned up when unbinding a
- handler. Thanks to Casey Lucas <clucas@sabre.com> for pointing
- this out.
-
-Mon May 10 17:08:29 1999 James C. Hu <jxh@entera.com>
-
- * ace/ACE.cpp:
- * ace/config-sunos5.6.h:
- * ace/README: Added support to enter_recv_timedwait,
- enter_send_timedwait, handle_timed_complete, and
- handle_timed_accept to use poll() instead of select() if poll()
- is available and select() is known to have problems. Created
- ACE_HAS_LIMITED_SELECT macro. Certain versions of SunOS 5.6 do
- not correctly select on file descriptors that are larger than
- 1023.
-
-Mon May 10 13:32:11 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Conn_Test.cpp (spawn_threads): wait a maximum of 200
- seconds. Carlos reported that the test sometimes hangs on Irix.
-
-Mon May 10 12:14:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.cpp: fixed a dangling pointer bug in
- RB_Tree::delete_fixup. Added pointer tests to all dereferences
- in this piece of code.
-
-Mon May 10 11:35:18 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * COPYING: Made some updates suggested by Richard Stallman
- <rms@gnu.org> of the Free Software Foundation
- (http://www.fsf.org/).
-
-Mon May 10 11:01:58 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/New_Fail_Test.cpp: DEC cxx catches its default,
- NoNamedException. OK, I guess.
-
- * tests/Upgradable_RW_Test.cpp: added -f option, which enables
- FIFO thread scheduling. Some platforms require superuser
- privilege to use it. Also, wait a maximum of 1 second per
- iteration. And, replaced some u_longs with u_ints.
-
- * tests/Thread_Manager_Test.cpp (main): wait a maximum of 60
- seconds, because the test sometimes hangs on SunOS 5.5.1 and
- SunOS 5.7.
-
-Mon May 10 08:26:44 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/g++dep: added support for our Solaris 7 machines.
-
-Sun May 9 18:07:24 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
- * configure.in: Added support/tests for
- ACE_LACKS_CHAR_RIGHT_SHIFTS and
- ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS.
-
- * ace/README: Fixed typo. ACE_LACKS_LINEBUFFERED_STREAMBUF was
- used twice. Corrected the appropriate one to
- ACE_LACKS_UNBUFFERED_STREAMBUF.
-
-Sun May 09 11:45:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.cpp added explicit scoping to RB_SearchResult
- parameter in RB_Tree<...>::find_node ().
-
-Sun May 09 11:30:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Makefile
- examples/Connection/non_blocking/Makefile
- examples/IPC_SAP/SPIPE_SAP/Makefile
- examples/IPC_SAP/TLI_SAP/Makefile
- examples/Reactor/Misc/Makefile
- examples/Service_Configurator/IPC-tests/client/Makefile
- examples/Service_Configurator/IPC-tests/server/Makefile
- netsvcs/lib/Makefile
- netsvcs/servers/Makefile
- tests/Makefile: ran make depend after adding new RB_Tree
- interface.
-
-Sat May 08 19:30:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.{cpp, h, i}
- tests/RB_Tree_Test.cpp: finished implementing all methods for
- the ACE_Hash_Map_Manager_Ex compliant interface, fixed a bug in
- the internal tree search method (thanks to David Levine for
- pointing this out), and added a new section to the test that
- exercises the new bind and unbind methods.
-
-Sat May 08 17:09:10 1999 David L. Levine <levine@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Event_Channel.cpp (bind_proxy,subscribe):
- wrapped final return statement with ACE_NOTREACHED, to please DU
- cxx 6.2.
-
-Sat May 08 08:49:44 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/CDR_Stream.h: only use unsigned long for Boolean with Green
- Hills 1.8.8 on Chorus, not 1.8.9.
-
- * ace/IOStream.h,README: added ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS
- and ACE_LACKS_CHAR_RIGHT_SHIFTS support.
-
- * ace/config-chorus.h: added ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS
- #define for g++.
-
- * ace/config-vxworks5.x.h: added ACE_LACKS_CHAR_RIGHT_SHIFTS
- #define for Green Hills 1.8.9.
-
-Sat May 08 08:44:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.{cpp, h, i}
- tests/RB_Tree_Test.cpp
- apps/JAWS/PROTOTYPE/HTTPU/http_headers.cpp: Added more
- implementation code and necessary template instantiations for
- migration of RB_Tree class templates to conform to the
- ACE_Hash_Map_Manager API.
-
-Sat May 08 03:59:52 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32-common.h: Re-ordered __ACE_INLINE__ macro check
- and definition so users can turn of inlining correctly.
- However, the right thing to do is to define ACE_NO_INLINE macro.
-
- * ace/ace_{dll,lib}.dsp: Moved RB_Tree.cpp to template folder and
- excluded it from being built.
-
- * ace/ace_lib.dsp:
- * performance-tests/Misc/basic_perf.dsp:
- * performance-tests/Misc/context_switch_time.dsp:
- * tests/version_tests/*.dsp: We should have used ACE_NO_INLINE
- instead of defining __ACE_INLINE__=0 to supress the use of
- inlining. Thanks to Nick Sawadsky
- <Nick_Sawadsky@BrooksSoftware.com> for reporting this.
-
-Fri May 07 23:05:24 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks5.x.h: added ACE_LACKS_LINEBUFFERED_STREAMBUF
- for Green Hills 1.8.9.
-
- * ace/README: added ACE_LACKS_LINEBUFFERED_STREAMBUF.
-
-Fri May 7 19:39:43 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Message_Block_T.i: Found little buf in
- ACE_Locked_Data_Block<> default constructor.
-
-Fri May 07 16:54:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.{cpp, h, i}: Reorganized and optimized internal
- methods, added read and write guards, implemented all public
- find and unbind methods for the interface comparable to
- ACE_Hash_Map_Manager_Ex.
-
-Fri May 07 14:40:12 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_cxx.GNU: added, to support
- uniform use of cxx across different OS versions.
-
- * ace/config-osf1-4.0.h: conditionally #define DIGITAL_UNIX, to
- support definition in CFLAGS.
-
- * ace/config-osf1.h: added, to support easy migration to DU 5.0.
-
-Fri May 07 11:00:52 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: OK on RedHat 6.0 Linux.
-
-Fri May 07 08:58:47 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i}: added some QNX support. In OS.i, this mostly
- consisted of adding a !defined (ACE_LACKS_MUTEXATTR_PSHARED)
- check to _POSIX_THREAD_PROCESS_SHARED. Thanks to Alain Magloire
- <alain@qnx.com> for providing this support.
-
-Thu May 6 21:48:26 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
- * configure.in:
- * ace/OS.h:
- * ace/README:
- * ace/config-hpux11.h:
- * ace/config-irix6.x-g++.h:
- * ace/config-irix6.x-kcc.h:
- * ace/config-irix6.x-sgic++.h:
- * ace/config-linux-lxpthreads.h:
- * ace/config-osf1-4.0.h:
- * ace/config-sco-5.0.0-mit-pthread.h:
- * ace/config-sunos5.5.h: Removed all references to
- ACE_HAS_PTHREAD_SIGMASK. This macro has been deprecated.
-
-Thu May 6 20:12:57 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
- * configure.in: Added tests/support for ACE_LACKS_PTHREAD_SIGMASK,
- ACE_LACKS_TCP_NODELAY and ACE_LACKS_NULL_PTHREAD_STATUS. Thanks
- to David for providing a test for ACE_LACKS_NULL_PTHREAD_STATUS.
-
-Thu May 06 14:26:54 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/README,ace/Pipe.cpp (open): added support for
- ACE_LACKS_TCP_NODELAY. Thanks to Alain Magloire <alain@qnx.com>
- for providing the patch.
-
-Thu May 6 14:23:14 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Synch_T.cpp: Removed ACE_ALLOC_HOOK_DEFINE macros for the
- Guard<> objects, they don't need them (because they are
- allocated on the stack) and the HOOK_DECLARE macros where not
- used in the header file.
-
- * bin/count_lines: Several new file types, fixed computations when
- multiple modules are used.
-
-Thu May 06 12:28:54 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-FMM.html: replaced a > with &gt; and added RCS Id
- string.
-
- * ACE-INSTALL.html: added link to docs/ACE-FMM.html.
-
-Thu May 06 12:23:51 1999 Steve Huston <shuston@riverace.com>
-
- * ace/OS.i (recvv, sendv): Added code to make these functions work
- on Win32 w/ Winsock 1.1.
-
-Wed May 05 15:10:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: added ACE_U_ONE_SECOND_IN_*SECS. They're typed and
- unsigned. The old ACE_ONE_SECOND_IN_*SECS macros are retained
- for backward compatibility.
-
-Wed May 5 13:58:25 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.i: Don't use poll() for the implementation of
- ACE_OS::sleep(), it has bad resolution and it gives wrong
- results on Linux.
-
- * tests/High_Res_Timer_Test.cpp: Added new option to run several
- iterations of each interval.
-
-Wed May 05 13:14:52 1999 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp: Removed DllMain - Win32 does not have the gusto to
- handle the initialization/finalization in this way. It causes
- DLL dependency problems which result in early detachment of
- winsock, and possible network data loss in some cases.
-
- * ace/OS.cpp, Object_Manager.cpp: Clarified some comments
- regarding multiple ACE_OS_Object_Manager and ACE_Object_Manager
- objects in existence and how they're handled.
-
- * tests/ACE_Init_Test.cpp: Always does ACE::init and ACE::fini
- now. This is one example of how to handle a non-console program
- in Win32.
-
-Wed May 05 13:07:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/Makefile: replaced /bin/rm with $(RM) and removed clean
- pseudotarget.
-
-Tue May 04 20:38:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * tests/RB_Tree_Test.cpp: Added missing explicit template
- instantiations for ACE_RB_Tree_Iterator_Base. Thanks to Carlos
- O'Ryan for reporting this.
-
- * include/makeinclude/platform_psos_diab_ppc.GNU: added -g flag
- back into debug flags since it can easily be deactivated via
- make debug=0.
-
-1999-05-04 Seth Widoff <swidoff@cs.cmu.edu>
-
- * ace/Containers_T.cpp (ACE_Array_Base<T>::max_size): When
- resizing the array to be larger, the max_size method was copying
- in the contents of the older, smaller array, but not
- initializing the new elements.
-
-Tue May 4 17:37:30 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * examples/Web_Crawler/Options.cpp (parse_args): Change the
- default options from "www.cs.wustl.edu" to "tao.cs.wustl.edu".
-
-Tue May 04 16:24:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.{cpp, h, i}: Added deprecation comments to methods
- that are going to be replaced by the new Hash_Map_Manager
- compliant interface. Factored out iterator base class, added
- reverse iterator. Interim checkin since it all compiles and
- RB_Tree_Test runs clean.
-
-Tue May 04 15:56:41 1999 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp: Re-enabled DllMain (see Mon May 3 entry from Chris
- Gill).
-
- * ace/OS.cpp, Object_Manager.cpp: In ACE_OS_Object_Manager and
- ACE_Object_Manager, differentiate between The singleton instance
- and other instances when allocating and freeing per-process
- information.
-
- * tests/run_tests.bat: Added ACE_Init_Test.
-
-Mon May 3 18:04:32 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_aiocb_ace.cpp: Added this
- file. If this test is sucessful, ACE_POSIX_AIOCB_PROACTOR could
- be defined for a platform.
-
-Mon May 03 09:35:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/RB_Tree.cpp: fixed bug in ACE_RB_Tree::RB_delete_fixup in
- which a null pointer was dereferenced while trying to determine
- the color of the node that was being pointed to. Per the RB
- Tree discussion in Cormen Lieserson and Rivest's "Introduction
- to Algorithms", after which this implementation is modeled, a
- nil node is implicity treated as having been colored BLACK.
- Thanks to Long Hoang <LHoang@hwdcsaws.cahwnet.gov> for reporting
- the problem and providing a test program that showed the bug.
-
-Mon May 03 15:53:15 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU,
- tests/run_tests.vxworks,ACE-INSTALL.html: added support for
- shared lib builds. Thanks to Ramiro Penataro Blanco
- <penataro@ll.iac.es> and James D. Rucker
- <jdrucker@huey.jpl.nasa.gov> for figuring this out, and
- providing detailed instructions for others to follow.
-
-Mon May 03 15:20:00 1999 Kirthika Parameswaran <kirthika@bambuca.cs.wustl.edu>
-
- * examples/Web_Crawler/main.cpp:
- * examples/Web_Crawler/Web_Crawler.{h,cpp}:
- * examples/Web_Crawler/Cached_Connect_Strategy_T.{h,i,cpp}:
- * examples/Web_Crawler/Caching_Strategies_T.{h,i,cpp}:
- * examples/Web_Crawler/Command_Processor.{h,cpp}:
- * examples/Web_Crawler/HTTP_URL.{h,cpp}:
- * examples/Web_Crawler/Iterators.{h,cpp}:
- * examples/Web_Crawler/Mem_Map_Stream.{h,cpp}:
- * examples/Web_Crawler/Optimal_Cache_Map_Manager_T.{h,i,cpp}:
- * examples/Web_Crawler/Options.{h,cpp}:
- * examples/Web_Crawler/URL.{h,cpp}:
- * examples/Web_Crawler/URL_Addr.{h,cpp}:
- * examples/Web_Crawler/URL_Status.{h,cpp}:
- * examples/Web_Crawler/URL_visitor.{h,cpp}:
- * examples/Web_Crawler/URL_Visitor_Factory.{h,cpp}:
- * examples/Web_Crawler/Makefile
- * examples/Web_Crawler/README
-
- This example is a HTTP client which crawls over the link provided
- and checks whether the links recusively are valid or not.
- This example was used to test teh auto-purging feature where the
- connections are removed from the connection cache when the process
- runs out of file descriptors.
-
-Mon May 03 14:46:28 1999 Steve Huston <shuston@riverace.com>
-
- * tests/ACE_Init_Test.dsp: Fixed to build on all configurations (for
- Intel anyway).
-
-Mon May 03 10:30:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.6.38 released.
-
-Mon May 3 09:56:06 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/INET_Addr.cpp (get_host_name): Make sure to check if
- get_host_name() fails and do something useful in this case.
- Thanks to Frank O'Dwyer <fod@brd.ie> for reporting this.
-
-Mon May 03 09:35:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/ACE.cpp: disabled BOOL APIENTRY DllMain(HANDLE hModule,
- DWORD ul_reason_for_call, LPVOID lpReserved) by having it
- just return TRUE. This function is used only on NT. This
- is a temporary workaround for the problem of tao_idl
- crashing on NT, and will be replaced ASAP with a more
- complete fix to Object Manager initialization/cleanup at
- DLL load/unload time on NT. Thanks to David Levine for
- suggesting this fix.
-
-Mon May 03 09:27:54 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added guideline to put
- spaces around comment delimiters. Thanks to Chris
- Gill for suggesting this.
-
-Sun May 02 14:36:43 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: Added ghs back to the list of compilers for which
- ACE_NOTREACHED disappears. It was causing warnings for
- many ACE and TAO files.
-
-Sun May 02 08:21:13 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (pthread_sigmask): added ACE_UNUSED_ARGs to
- NOTSUP case.
-
- * ace/OS.i (pthread_sigmask),ace/config-chorus.h,ace/README:
- added ACE_LACKS_PTHREAD_SIGMASK.
-
-Sat May 01 17:33:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp,Object_Manager.cpp: reverted this change because
- it causes a seg fault on NT:
-
- Thu Apr 29 13:41:52 1999 Steve Huston <shuston@riverace.com>
-
- * ace/{OS.cpp Object_Manager.cpp}: Fixed leaking ACE_Object_Manager
- when config has #define ACE_HAS_NONSTATIC_OBJECT_MANAGER 0.
-
-Sat May 01 12:06:57 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE.cpp:
- * ace/config-win32.h: Reverted my previous change. I didn't
- notice David had already fixed it. Thanks David.
-
-Sat May 01 01:48:29 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ACE.cpp (DllMain): Only use DllMain to control
- Object_Manager's lifecycle when
- ACE_USES_DLL_TO_MANAGE_THE_LIFECYCLE_OF_OBJECT_MANAGER is
- defined and we are building ACE as a DLL.
-
- * ace/config-win32.h: Defining
- ACE_USES_DLL_TO_MANAGE_THE_LIFECYCLE_OF_OBJECT_MANAGER =1, when
- compiling DLL version of ACE will cause then ACE::init/fini be
- called automatically for you in DllMain when ACE gets linked
- in/unlinked.
-
- Defining ACE_USES_DLL_TO_MANAGE_THE_LIFECYCLE_OF_OBJECT_MANAGER
- =1 automatically define ACE_HAS_NONSTATIC_OBJECT_MANAGER to 1
- and define ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER.
-
-Fri Apr 30 22:53:01 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: put Object_Manager back on the stack of main,
- instead of using ACE::init () and ACE::fini (). It
- should be functionally equivalent, and then some: if
- the user's main () returns, the Object_Manager will get
- properly destroyed if it's on the stack. And, it's better
- for subset support if we avoid class ACE calls from OS.h.
-
- * include/makeinclude/rules.lib.GNU: cleaned up a bit.
-
-Fri Apr 30 17:42:11 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/OS.i (pthread_sigmask):
- * ace/OS.h (ACE_OS): Added wrapper for <pthread_sigmask> to get
- the Proactor code compile on LynxOS.
-
- * ace/config-lynxos.h (ACE_HAS_AIO_CALLS):
- Enabled ACE_HAS_AIO_CALLS for LynxOS. Also enabled
- ACE_HAS_AIOCB_PROACTOR since LynxOS 3.0.0 has not got
- <pthread_sigmask> yet, so signal proactor cannot work correctly.
-
- * ace/POSIX_Proactor.cpp:
- * examples/Reactor/Proactor/test_aiosig_ace.cpp
- (setup_signal_delivery): Added ACE_OS:: scope to pthread_sigmask
- so that it works (fails!!) correctly on LynxOS.
-
- * examples/Reactor/Proactor/post_completions.cpp:
- * examples/Reactor/Proactor/test_timeout.cpp: Added 'main'
- function for platforms where only AIOCB_Proactor is enabled so
- that the test prints out a message.
-
- * examples/Reactor/Proactor/Makefile:
-
-Fri Apr 30 14:44:12 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added a note about manually cleaning out the
- ACE_wrappers directories on Win32, which could be required for a
- true start from scratch build. Thanks to David Hooker
- <DHooker@uniview.net> for this insight.
-
-Fri Apr 30 14:06:41 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * COPYING: Updated the COPYING file to reflect the use new of
- ACE(TM) and TAO(TM).
-
-Fri Apr 30 13:23:22 1999 Steve Huston <shuston@riverace.com>
-
- * docs/tutorials/017/Barrier_i.cpp:
- * docs/tutorials/018/token.cpp: Added explicit template
- instantiations.
-
-Fri Apr 30 12:11:36 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.i (gethostbyname2):
-
- Added an IPv4-only implementation. If ACE_HAS_IP6 is not defined,
- the IPv4-only implementation will be used.
-
-Fri Apr 30 12:11:50 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Basic_Types_Test.cpp: Added checks for sizeof(long) ==
- sizeof(void*) and sizeof(long) >= sizeof (a_function_pointer).
- Certain code in ACE depends on the assumptions.
-
-Fri Apr 30 11:24:26 1999 Steve Huston <shuston@riverace.com>
-
- * tests/ACE_Init_Test.cpp: Added compile-time change to adapt to
- build w/ static ACE lib and ACE_HAS_NONSTATIC_OBJECT_MANAGER.
- * tests/version_tests/ACE_Init_Test.dsp: Changes to build clean on
- all configurations.
-
-Fri Apr 30 02:06:53 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Parse_Node.cpp (symbol): According to the new ANSI C++
- specification, casting a void* pointer to a function pointer is
- not allowed. However, casting a void* pointer to an integer
- type that is large enough to hold the pointer value is legal. I
- chose to cast the return value to long since it should be large
- enough to hold the void* pointer's value on most platforms. I am
- not sure if casting a long value to a function pointer is legal
- or not (can't find a good explanation in spec) but it prevent
- SunC++ 5.0 compilers from complaining about illegal pointer
- conversion.
-
- * ace/OS.h: Removed ACE_non_function_ptr_to_function_ptr_cast,
- it is no longer needed.
-
-Fri Apr 30 00:36:23 1999 Ossama Othman <othman@cs.wustl.edu>
-
-
- * ace/Get_Opt.cpp:
- * ace/TLI_Acceptor.cpp:
- * ace/TLI_Connector.cpp:
-
- Cast away const from string literals using ACE_const_cast to make
- Sun C++ 5.0 happier.
-
-Thu Apr 29 18:32:43 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h: Removed ghs from the list of compilers for which
- ACE_NOTREACHED disappears. It was causing warnings for
- TAO/orbsvcs/orbsvcs/Naming/Persistent_Context_Index_T.cpp.
-
-Thu Apr 29 19:48:25 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.{h,i} (ACE_OS):
-
- More IPv6 support. Added support for the new IPv4/IPv6
- inet_ntop() and inet_pton() calls. If ACE_HAS_IP6 is not
- defined, these calls will use IPv4 implementations (see
- Stevens' book "UNIX Network Programming - Volume I") and
- return an error if a family other than AF_INET is passed to
- them.
-
- * ace/OS.h:
-
- Define INET_ADDRSTRLEN and INET6_ADDRSTRLEN if they don't
- get defined after including <netinet/in.h>.
-
-Thu Apr 29 18:32:43 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/README:
- * ace/OS.h (ACE_OS):
- * ace/OS.i (gethostbyname2):
-
- Added support for the gethostbyname2() system call. It is only
- enabled if ACE_HAS_IP6 is defined. When I have time, I'll add
- more IPv6 support.
-
-Thu Apr 29 15:30:04 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/INET_Addr.cpp (string_to_addr): Added support to check for
- both "port numbers" and "port names". Thanks to Jerry D. De
- Master <jdemaste@ipdinc.com> for suggesting this.
-
- * ace/Select_Reactor_T.h,
- ace/Reactor.h,
- ace/Select_Reactor_T.h,
- ace/TP_Reactor.h (ACE_TP_Reactor): Updated the documentation to
- clarify the purpose of the <restart> flag. Thanks to Susan
- Liebeskind <shl@cc.gatech.edu> for reporting this.
-
-Thu Apr 29 13:41:52 1999 Steve Huston <shuston@riverace.com>
-
- * ace/{OS.cpp Object_Manager.cpp}: Fixed leaking ACE_Object_Manager
- when config has #define ACE_HAS_NONSTATIC_OBJECT_MANAGER 0. Now
- both ACE_OS_Object_Manager and ACE_Object_Manager remember if they
- were dynamically allocated whether the above #define is used or not
- and correctly clean up and track the singleton properly.
- Thanks to David and Irfan for identifying this and helping with the
- solution.
-
-Wed Apr 28 20:21:12 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.h (class ACE_Anti_*_Guard): I had accidentally
- checked in the anti guard classes. These are not needed since
- we decided to stick with the reverse lock class rather than the
- anti guard classes.
-
-Wed Apr 28 18:02:36 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Added a new macro called
- ACE_non_function_ptr_to_function_ptr_cast to get around some
- compiler constrain. In face, ANSI C++ standard prevents casting
- from a non-function pointer (e.g., void *) to a function
- pointer. Currently, only egcs check for this condition.
-
- * ace/Parse_Node.cpp (symbol): Changed to use the new
- ACE_non_function_ptr_to_function_ptr_cast.
-
-Wed Apr 28 16:53:16 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/Aio_Platform_Test_C.cpp: Added this
- file, a simple C version of the
- $ACE_ROOT/tests/Aio_Platforms_Test.cpp. Useful for submitting bug
- reports etc.
-
- * ace/Proactor.cpp:
- * ace/POSIX_Asynch_IO.cpp: Fixed old g++ warnings
-
-Wed Apr 28 15:39:14 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Parse_Node.cpp (symbol): Use reinterpret_cast to cast
- dlsym's return value.
-
-Wed Apr 28 12:40:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Synch_T.{i,cpp} (~ACE_Reverse_Lock): uninlined destructor.
- See docs/ACE-guidelines.html for an explanation of why a
- class should have at least one non-inline, non-pure virtual
- function if it has any virtual functions. egcs 1.1.1b
- needed this one.
-
-Wed Apr 28 09:02:26 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-sunos5.5.h: It appears that SunC++ 5.0 wants
- ACE_HAS_THR_C_DEST to be defined.
-
- * ace/SString: Clarified the comments a bit to avoid confusion.
- Also, moved the definition of ACE_SString to AFTER ACE_CString
- and ACE_WString since they are more general. Thanks to Kevin
- Lyda <kevin.lyda@trintech.com> for reporting this.
-
-Tue Apr 27 20:59:52 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/clients/Naming: Moved the README file into the Client/
- directory since that's what it described.
-
- * netsvcs/clients/Naming/Client/Client_Test.cpp: Reformatted some
- code to conform to ACE programming guidelines.
-
- * ace/Naming_Context.cpp (parse_args): Oops, fixed a braino
- related to strcmp(). Thanks to Valery Arkhangorodsky
- <avalery@balisoft.com> for reporting this.
-
-Tue Apr 27 18:00:31 1999 Steve Huston <shuston@riverace.com>
-
- * ace/OS.cpp (ACE_OS_CString, ACE_OS_WString): Fixed one-off error
- in allocating new string's memory.
-
-Tue Apr 27 17:36:28 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * m4/threads.m4:
-
- Restructured thread detection test so that it properly detects
- threads on platforms that provide PTHREADS backward compatibility
- macros, such as Digital Unix 4.0 and 5.0.
-
-Tue Apr 27 18:56:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Containers_T.{cpp, h}
- tests/OrdMultiSet_Test.cpp: added a workaround for a problem with
- implicit template instantiation and a do-nothing destructor
- definition. Thanks to Sarmeesha Reddy <sreddy@tr.comm.mot.com> and
- Steven Tine <stevent@tr.comm.mot.com> for reporting this.
-
- * include/makeinclude/platform_psos_diab_ppc.GNU: changes to use
- the board support package linker file. Thanks to Sarmeesha
- Reddy <sreddy@tr.comm.mot.com> and Steven Tine
- <stevent@tr.comm.mot.com> for contributing this change.
-
-Tue Apr 27 16:30:57 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/UNIX_Addr.h (ACE_UNIX_Addr):
-
- Corrected typographical error in comment.
-
-Tue Apr 27 12:57:06 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
-
- Removed `tests/log/Makefile' from the list of files to
- generate (i.e. removed from AC_OUTPUT macro call).
-
- * tests/Makefile.am:
-
- Corrected a typo. I neglected to add "_SOURCES" to the end
- of the Collection_Test source variable variable. Also added
- more missing tests to the list of test programs. Commented out
- Cache_Manager_Test. It appears to need a header that doesn't
- exist.
-
- * ace/Makefile.am (pkginclude_HEADERS):
-
- Removed `Timer_Queue.i' from the list of headers.
-
- * bin/autogen:
- * bin/bootstrap:
-
- Renamed the `autogen' script to `bootstrap'.
-
-Tue Apr 27 11:54:53 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
-
- Temorarily removed my experimental C++ libtool support so that
- I can get a semi-working test distribution out on the net.
-
- * ltconfig:
- * ltmain.sh:
-
- Reverted to more stable version, i.e. w/o my C++ support.
-
- * m4/threads.m4:
-
- Added KAI C++ thread flag check.
-
-Tue Apr 27 11:45:40 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Collection_Test.cpp (main): Added some additional array
- tests and fixed template instantiation errors. Thanks to David
- Levine for pointing them out.
-
- * ace/OS.h (ACE_DES_FREE): Changed all the ACE_DES* macros to
- check for zero pointers. Thanks to Torsten Kuepper
- <kuepper2@uni-wuppertal.de> for pointing this bug out.
-
-Tue Apr 27 11:08:35 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Basic_Types.h: Forced KAI compiler to use ACE_U_LongLong if
- ACE_LACKS_LONGLONG_T is defined.
-
- * ace/DLL.cpp:
- * ace/Service_Config.i:
- * ace/Service_Object.i:
- * ace/INET_Addr.cpp: Some CE related changes.
-
-Tue Apr 27 00:03:16 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Collection_Test.cpp (main): Added test code for ACE_Array.
-
-Mon Apr 26 23:55:43 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.h (class ACE_Reverse_Lock): Removed constructor that
- created the lock. There were two reasons for this: (a) it was
- unrealistic that the reverse lock would own and create the
- regular lock and (b) this constructor made it impossible that
- ACE_Reverse_Lock can be used with ACE_Lock (the abstract
- class). Thanks to Carlos for pointing this out.
-
-Mon Apr 26 21:43:23 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Makefile.am (pkginclude_HEADERS, libACE_IPC_la_SOURCES):
-
- Added ATM_Addr sources to these variables.
-
- * ace/Makefile.am (EXTRA_libACE_la_SOURCES):
-
- Accidentally removed this variable. It is needed for
- conditionally built sources, such as `gethrtime.cpp'.
-
- * tests/Makefile.am:
-
- Added newly added tests to the list of test programs to be built.
- Changed "noinst_PROGRAMS" variable to "check_PROGRAMS" so that
- tests only get built when a `make check' is issued by the user.
-
-Mon Apr 26 19:29:25 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * tests/Reverse_Lock_Test.cpp (main):
-
- ACE_START_TEST macro had "Thread_Mutex_Test" instead of
- "Reverse_Lock_Test."
-
-Mon Apr 26 17:01:22 1999 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (DllMain): Re-enabled this for use on Win32.
-
- * ace/OS.h (main): On non-pSoS, use ACE::init, ACE::fini rather than
- creating object manager instances on the stack. Allows a single
- instance regardless of program type; especially helpful on Win32.
-
- * ace/OS.cpp (ACE_OS_Object_Manager ctor):
- * ace/Object_Manager.cpp (ACE_Object_Manager ctor):
- Don't set instance_ if it was already set. So if two
- ACE_Object_Manager instances end up getting created, the first one
- stays The Instance, and the second gets used privately by its
- creator. Previously, the original was forgotten. Thanks to David
- Levine for working out this and the above details with me to get the
- Win32 crowd in business without platform-specific hacks.
-
-Mon Apr 26 16:43:32 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Asynch_IO_Impl.h (ACE_Asynch_[Read|Write]_File_Impl):
- Declared the read/write pure virtual methods of
- ACE_Asynch_[Read|Write]_Stream_Impl again in these class to
- avoid KAI compiler's overwriting pure virtual function
- warnings.
-
-Mon Apr 26 10:54:23 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/High_Res_Timer.h:
- Moved the static method hrtime_to_tv to the public section. It
- is useful outside this class.
-
- * ace/Synch_T.cpp:
- The default constructor for ACE_Reverse_Lock should not allocate
- the locking mechanism, otherwise it cannot work with ACE_Lock.
-
-Mon Apr 26 07:30:51 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (fstat): Changed to use CE's implementation and added
- some features that're supported on other Win32 platforms. The
- original implementation for Win32 closed down the file handle
- accidentally which is not a "Good Thing[TM]". Thanks to Dominic
- Williams <dom@connected-place.co.uk> for pointing this out.
-
-Sun Apr 25 21:35:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.{h,cpp},OS.{h,cpp},Object_Manager.{h,cpp} (init,fini):
- moved init_fini_count_ from ACE Object_Managers to ACE, so that
- it is only used via ACE::init () and ACE::fini (). Thanks
- to Steve Huston for pointing out that the old way didin't work
- if an Object_Manager was created prior to starting main (),
- and there were ACE::init ()/ACE::fini () calls in main ().
-
-Sun Apr 25 16:59:21 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_kcc.GNU: Fixed incorrect
- compiler flags.
-
- * ace/config-sunos5.7.h: Added definition of uint64_t on KAI.
-
- * ace/config-kcc-common.h: Changed to use non-static object
- manager.
- Defined ACE_SIZEOF_LONGLONG. KAI compiler has type long long.
-
- * ace/OS.h: ACE_NOTREACHED should expand to nothing on KAI
- compiler.
-
- * ace/CDR_Stream.h (ACE_CDR): KAI compiler doesn't have
- longlong_t.
-
- * ace/Basic_Types.h: KAI compiler should define ACE_UINT64 as
- unsigned long long.
-
-Sun Apr 25 14:52:18 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * COPYING,
- TAO/COPYING: Updated the ACE+TAO COPYING information to
- emphasize the relationship to open source. Thanks to Malcolm
- Spence <spence_m@ociweb.com> for suggesting the wording.
-
-Sat Apr 24 23:03:31 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ACE_wrappers/ace/POSIX_Asynch_IO.cpp
- * ACE_wrappers/ace/POSIX_Asynch_IO.h
- * ACE_wrappers/ace/POSIX_Proactor.cpp
- * ACE_wrappers/ace/POSIX_Proactor.h
- * ACE_wrappers/ace/Proactor.cpp
- * ACE_wrappers/ace/Proactor.h
- * ACE_wrappers/ace/Proactor_Impl.h
-
- * ACE_wrappers/examples/Reactor/Proactor/Makefile
- * ACE_wrappers/examples/Reactor/Proactor/README
- * ACE_wrappers/examples/Reactor/Proactor/test_aiocb.cpp
- * ACE_wrappers/examples/Reactor/Proactor/test_aiosig.cpp
- * ACE_wrappers/examples/Reactor/Proactor/test_aiosig_ace.cpp
- * ACE_wrappers/examples/Reactor/Proactor/test_proactor.cpp
- * ACE_wrappers/examples/Reactor/Proactor/test_timeout.cpp
-
- - Completed Multithreading of POSIX_SIG_Proactor.
-
- - Introduced another constructor for ACE_POSIX_SIG_Proactor for taking
- signal mask to be used with the Proactor.
-
- - Thanks to Dave Butenhof <butenhof@zko.dec.com> for helping a lot to
- understand the various things in the POSIX4 standard.
-
- - Thanks to Dave suggestion of keeping null_handler for the sigaction
- to real-time signals. With this and a couple of other correct POSIX
- things SIG proactor is now working with in Solaris 2.7.
-
- - Lynx OS doesnt support <pthread_sigmask>, so it couldnt be
- multithreaded. Enabled AIOCB_Proactor for this platform.
-
- - Added an example to make use of the real-time signal numbers for the
- asynchronous I/O calls.
-
- * examples/Reactor/Proactor/test_posix_sig_proactor.cpp: This
- program demonstrates how to post fake completions to The
- Proactor. It also shows the how to specify the particular
- real-time signals to post completions.
-
- * ace/config-lynxos.h: Enabled ACE_POSIX_AIOCB_PROACTOR for this
- platform, since <pthread_sigmask> was not available. Without
- <pthread_sigmask>, SIG_Proactor can not work correctly.
-
- * ace/config-linux-lxpthreads.h: Removed ACE_HAS_AIO_CALLS. Even
- simple aio calls test is hanging.
-
-Sat Apr 24 13:09:27 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Containers_T.h: Added allocator support to ACE_Array.
- Thakns to Paul Francis <pfrancis@dkl.com> for contributing this.
-
- * ace/Future.h (class ACE_Future): Make sure to mention that
- get()'s ACE_Time_Value must be in absolute, not relative, time.
- Thanks to Ian MacDonald <ianmacd@bg.com> for reporting this.
-
-Sat Apr 24 07:24:51 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Reverse_Lock_Test.cpp: removed ACE_Guard<ACE_SYNCH_MUTEX>
- instantiation because it's in ace/Synch.cpp.
-
- * ace/config-vxworks5.x.h: added ACE_THR_PRI_OTHER_DEF
- #define, for use by MT_Cubit.
-
- * ace/Object_Manager.cpp, OS.cpp (fini): unconditionally set
- instance_ to 0 at the end. This allows init () to
- work properly if called after fini (), such as for
- repeated test on VxWorks. Thanks to Todd Mullanix
- <Todd.Mullanix@sylantro.com> for reporting this.
-
-Fri Apr 23 17:53:24 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- for PPC860, changed -m=860 to -mcpu=860. Thanks to
- Todd Mullanix <Todd.Mullanix@sylantro.com> for reporting this.
-
-Fri Apr 23 15:48:31 1999 James Hu <jxh@entera.com>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/README:
- * ace/config-sunos5.5.h: added support for the memchr
- library call, and created ACE_HAS_MEMCHR macro.
-
-Fri Apr 23 10:48:31 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/New_Fail_Test.cpp (main): added uses of the
- two static functions when they're not otherwise used,
- to prevent g++ warnings.
-
-Fri Apr 23 09:11:24 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Reverse_Lock_Test.cpp:
- Fixed template instantiation problems.
-
-Thu Apr 22 21:39:44 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * tests/Makefile.am:
-
- Added support to create the `tests/log' directory after
- the tests have been built.
-
- * tests/log/Makefile.am
-
- The above change deprecates this Makefile.am file. Thanks to
- Nanbor for motivating this change.
-
-Thu Apr 22 20:50:30 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.i: Modified reset() to reset all the message
- blocks, instead of just the first one as it had previously done.
- Thanks to Jerry D. De Master <jdemaste@ipdinc.com> for pointing
- out the problem and suggesting a fix.
-
-Thu Apr 22 19:40:52 1999 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: Adjust exception thrown at out-of-memory for HP-UX, aC++.
-
- * ace/config-hpux-10.x-hpc++.h: Add ACE_NEW_THROWS_EXCEPTIONS.
-
-Thu Apr 22 19:30:01 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Synch_T.h (class ACE_Reverse_Lock): Added an interesting
- adapter class that changes a lock into a reverse lock, i.e.,
- acquire() on this class calls release() on the lock, and
- release() on this class calls acquire() on the lock.
-
- One motivation for this class is when we temporarily want to
- release a lock (which we have already acquired) but then
- reaquire it soon after. An alternative design would be to add a
- Anti_Guard or Reverse_Guard class which would release() on
- construction and acquire() destruction. However, there are
- *many* varieties of the Guard class and this design choice would
- lead to at least 6 new classes. One new ACE_Reverse_Lock class
- seemed more reasonable.
-
- * tests/Reverse_Lock_Test.cpp: Test for the new ACE_Reverse_Lock
- class.
-
- * tests/Env_Value_Test.cpp (main): Fixed UNICODE string
- concatenation problem.
-
- * tests/version_tests: Added a bunch of missing project files.
-
- * ace/ace_lib.dsp: Added missing files.
-
-Thu Apr 22 19:10:52 1999 Steve Huston <shuston@riverace.com>
-
- * ace/ATM_Addr.cpp: Put in class's consts for non-FORE platforms.
-
-Thu Apr 22 17:05:36 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/auto_compile_win32.pl: Added version_tests.
-
- * include/makeinclude/platform_sunos5_kcc.GNU: Makefile macros for
- KAI C++ compiler.
-
- * ace/config-sunos5.5.h: Added KAI C++ compiler support.
-
- * docs/exceptions.html: Explicitly state that ACE try macros will
- replace TAO try macros and advise users to take action if they
- are still using TAO try macros. Thanks to Don Busch
- <busch_d@ociweb.com> for pointing this out.
-
-Thu Apr 22 15:07:10 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- added PPC860 support. Thanks to Todd Mullanix
- <Todd.Mullanix@sylantro.com> figuring out how to
- support it, with help from Thomas Mehrkam <Thomas_Mehrkam@i-o.com>
- and Hai Vu <Hai_Vu@Mitel.Com>.
-
-Thu Apr 22 13:26:26 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/XtReactor.cpp (remove_handler_i): In the registration phase,
- we registered first with ACE_Select_Reactor and then with X.
- Now we are now doing things in reverse order. Thanks to JM
- Strauss <jms97@club-internet.fr> for contributing these changes.
-
-Thu Apr 22 13:23:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * include/makeinclude/platform_psos_diab_ppc.GNU: commented out -g
- switch which was triggering a bug in the Diab 4.2b compiler when
- compiling in debug information. This is supposed to be fixed in
- the 4.3a release of the Diab compiler. The ACE tests all compile
- now for pSOS/PPC. Thanks to Sarmeesha Reddy <sreddy@tr.comm.mot.com>
- for reporting the bug to Diab and obtaining the workaround.
-
-Thu Apr 22 10:46:17 1999 Steve Huston <shuston@riverace.com>
-
- * apps/JAWS/server: Added $(ACELIB) to LDLIBS to build libJAWS on AIX
- with xlC.
-
- * tests/New_Fail_Test.cpp: Added __GNUG__ to the platforms which do not
- actually perform the test; added some more explanation and a better
- log message for when it doesn't actually run.
-
-Thu Apr 22 10:28:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-minimal.h: removed suppression of ACE_TSS_EMULATION
- and enable of ACE_USE_THREAD_MANAGER_ADAPTER. They're no
- longer necessary with the clean OS.cpp.
-
-Thu Apr 22 08:52:48 1999 Steve Huston <shuston@riverace.com>
-
- * tests/New_Fail_Test.cpp: Fixed to compile clean without exceptions.
-
- * tests/run_tests.{sh bat}: Added New_Fail_Test.
-
-Wed Apr 21 16:41:08 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Reactor_Performance_Test.cpp (main): added 10 second
- time limit to run_event_loop () call. That prevents the
- test from hanging forever if some of the connections
- are lost.
-
- * tests/Priority_Reactor_Test.cpp: default to 5 children
- instead of 10 on LynxOS. Beyond 8, the test seems to
- take forever on LynxOS 3.0.0.
-
- * tests/run_tests.sh: enabled Reactor_Performance_Test,
- Priority_Reactor_Test, Time_Service_Test, and Tokens_Test
- on LynxOS.
-
-Wed Apr 21 16:35:21 1999 Steve Huston <shuston@riverace.com>
-
- * tests/New_Fail_Test.cpp: Test to be sure that the ACE_NEW[_RETURN]
- stuff works correctly when heap is exhausted.
- * tests/Makefile: Added New_Fail_Test.
- * tests/tests.dsw, New_Fail_Test.dsp: Add new test to MSVC.
-
-Wed Apr 21 15:35:44 1999 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp: On Win32, with ACE_HAS_NONSTATIC_OBJECT_MANAGER, use
- DllMain to do ACE::init() and ACE::fini().
-
- * tests/ACE_Init_Test.dsp,
- * tests/ACE_Init_Test.{cpp h},
- * tests/ACE_Init_TestDlg.{cpp h},
- * tests/ACE_Init_Test.(ico rc rc2 res},
- * tests/ACE_Init_Test_(Resource StdAfx}.h: New test to be sure that
- ACE DLL is initialized properly from an MFC app.
-
- * tests/tests.dsw: Added ACE_Init_Test.dsp project.
-
-Wed Apr 21 14:59:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_OS_Object_Manager::fini): on LynxOS only,
- disabled ACE_{recursive/thread}_mutex_destroy () calls, because
- they failed on LynxOS in forked children. The prevents
- the failure message from being printed, with no apparent
- ill effect.
-
-Wed Apr 21 10:06:11 1999 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: Moved -lthread from
- the all-Orbix section to the MT-Orbix section for LIBS.
-
-Wed Apr 21 09:25:16 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Upgradable_RW_Test.cpp (main): replaced ACE_SCHED_FIFO
- with THR_SCHED_FIFO in activate call. Thanks to Carlos for
- finding this subtle error.
-
-Wed Apr 21 03:34:18 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.37 released.
-
-Tue Apr 20 22:55:18 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (thr_join): ifdef ACE_LACKS_PTHREAD_NULL_STATUS,
- provide the address of a temporary variable for the status
- argument of ::pthread_join (), if the caller passed 0.
-
- * ace/config-lynxos.h,README: added ACE_LACKS_PTHREAD_NULL_STATUS.
- LynxOS 3.0.0 fails ::pthread_join () calls with EFAULT
- if the second (status) argument is 0.
-
-Tue Apr 20 21:53:32 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * examples/IPC_SAP/TLI_SAP/Makefile: Had inadvertently checked in
- local changes. Now undoing these changes.
-
-Tue Apr 20 18:25:45 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/{SOCK,TLI,LSOCK,Asynch}_Acceptor.h: Replaced the use of the
- hard-coded backlog value of 5 with ACE_DEFAULT_BACKLOG. Thanks
- to Irfan for motivating this.
-
- * ace/OS.h: Added a new (overriddable) macro called
- ACE_DEFAULT_BACKLOG that's used to control the default number of
- connections that can be accepted by an OS. The default value is
- 5.
-
-Tue Apr 20 18:22:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Map_T.i
- ace/config-psos-diab-mips.h
- ace/config-psos-diab-ppc.h
- ace/config-psos-diab.h
- include/makeinclude/platform_psos_diab_ppc.GNU
- tests/Handle_Set_Test.cpp
- tests/Process_Strategy_Test.cpp: fixed the remaining tests
- for which compiler bug workarounds were available for pSOS
- PPC with the Diab 4.2b compiler.
-
-Tue Apr 20 16:41:39 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (num_tasks_in_group): Make sure we are
- not searching for a null task. Thanks to Umar Syyid
- <usyyid@hns.com> for pointing this out.
-
-Tue Apr 20 15:10:33 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Reactor_Performance_Test.cpp: Changed the default number
- of connections (<opt_nconnection>) from 20 to 5 for NT. This
- seems reasonable since the default backlog is 5. Once we have
- the ability to set the backlog from the ACE_Acceptor class, we
- can increase this number.
-
-Tue Apr 20 13:55:34 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/OS.i: Fixed ACE_OS::t_free to free memory if pointer is not
- null.
-
- * ace/TLI.h: Added default ACE_XTI_ATM_DEVICE.
-
- * ace/TLI_Connector.cpp: Disabled non-blocking connects for XTI/ATM
- since FORE's drivers have problems with this. Also, fixed t_alloc
- memory leaks.
-
- * ace/ATM_Addr.cpp: Added code formatting change.
-
- * examples/IPC_SAP/TLI_SAP/CPP-ATM-{server,client}.cpp: Added
- the use of ACE_XTI_ATM_DEVICE
-
-Tue Apr 20 13:30:51 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ace.icc: Added a configuration file for creating a shared
- library with Visual Age C++.
-
-Mon Apr 19 23:50:25 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Time_Service_Test.cpp (main): Fixed error message.
-
- * ace/Connector.cpp (handle_close): Removed unused argument
- <mask>.
-
-Mon Apr 19 17:17:47 1999 Steve Huston <shuston@riverace.com>
-
- * docs/tutorials/tutorials.dsw: Fixed project file name for 019-021.
-
-Mon Apr 19 17:02:42 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Connector.cpp (handle_close): There is no need to call
- cancel_timer() or remove_handler() from handle_close(). Removal
- of all svc tuples from the <reactor> is done by <cleanup_AST>.
-
-Mon Apr 19 16:45:54 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp},Object_Manager.{h,cpp} (ACE_OS_Object_Manager,
- ACE_Object_Manager: added static counter to match init ()/fini ()
- calls. Don't destroy Object_Managers until final fini () call.
- Thanks to Ian MacDonald <ianmacd@bg.com> for tracking down
- the problem with multiple DLLs in a process. This change
- delays destruction of the ACE_Object_Manager until the final
- fini () call.
-
-Mon Apr 19 15:24:55 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/TLI_Stream.cpp (ACE_TLI_Stream): Make sure to set the value
- of rwflag_ to 0 so that purify is happy. Thanks to Joe Hoffert
- for reporting this.
-
-Mon Apr 19 14:35:42 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/IPC_SAP/UPIPE_SAP/ex2.cpp (supplier):
- * examples/IPC_SAP/UPIPE_SAP/ex3.cpp (consumer):
-
- Avoided annoying g++ warning about <auto_ptr> by explicitly
- making a temporary. Thanks to David for pointing this out.
-
-Sun Apr 18 21:52:43 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-common.h: moved ACE_LACKS_MADVISE to
- non-glibc section. Thanks to JM Strauss <jms97@club-internet.fr>
- for reporting that it wasn't on a Linux system with a
- 2.0.35 kernel.
-
-Sun Apr 18 16:36:30 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/config-linux-common.h (ACE_LACKS_MADVISE):
-
- Re-enabled #define ACE_LACKS_MADVISE. Linux doesn't appear
- to have an madvise() system call.
-
- * configure.in:
- * tests/Makefile.am:
-
- Added libtool support for modules (dlopened libraries).
-
-Sun Apr 18 08:48:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Auto_Ptr.i: reordered inline methods to avoid use before
- definition. Fixed a few ACE_TRACE comments.
-
-Sun Apr 18 00:26:28 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Notify_Performance_Test.cpp (main):
- * tests/Reactor_Performance_Test.cpp (main):
- * tests/Priority_Reactor_Test.cpp (main):
-
- Avoided annoying g++ warning about <auto_ptr> by explicitly
- making a temporary. Thanks to David for pointing this out.
-
-Sat Apr 17 18:52:38 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Memory_Pool.cpp (acquire): Changed use of auto_ptr.
-
- * ace/Auto_Ptr.i (operator=): Changed <a> to <rhs>. Thanks to
- David Levine and Jean-Marc Strauss <strauss@club-internet.fr>
- for reporting this.
-
-Sat Apr 17 08:34:22 1999 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Naming/Makefile,performance-tests/Misc/Makefile,
- tests/Makefile,all netsvcs Makefiles:
- updated for proper support of ACE subsets, with BIN2/LIB2/SHLIB2.
-
-Fri Apr 16 22:14:36 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Auto_Ptr: Made several changes to bring the implementation
- up to the specification:
-
- - Made the constructors take non-const parameters.
- - Made release() non-const.
- - Added reset().
-
- Thanks to Simeon Simeonov <simeons@allaire.com>, Rainer Blome
- <blome@de.ibm.com>, Jody Hagins <jody@atdesk.com>, and John
- Mulhern <John.Mulhern@lawson.com> for helping.
-
- * tests/Reactor_Performance_Test.cpp: Updated to work with new
- auto pointer implementation.
-
-Fri Apr 16 19:36:35 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Proactor.h (ACE_Proactor): Switched the order of TIMER_QUEUE
- and delete_implementation in the constructor.
-
- * examples/Reactor/Proactor/test_multiple_loops.cpp: Fixed to work
- on the WIN32 correctly. This can work only on WIN32 (combining
- Proactor with Reactor's event loop). So I have put a #if defined
- around the file.
-
-Fri Apr 16 18:09:44 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Conn_Test.cpp (server): If we timeout on accept(), it is
- not an error, and should not be reported as one. Thanks to
- Thomas Mehrkam <Thomas_Mehrkam@i-o.com> for pointing this out.
-
-Fri Apr 16 13:08:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp},ACE.{h,cpp}: (read_n,send_n,write_n): moved
- from ACE to ACE_OS, so that the uses in OS.cpp could be localized.
- The ACE versions are now just wrappers over the ACE_OS
- versions, for backward compatibility. Thanks to
- Erik Ivanenko <erik.ivanenko@utoronto.ca> for reporting
- that OS.cpp used a couple of the ACE static member functions.
-
-Fri Apr 16 10:13:14 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.nested.GNU,ACE-INSTALL.html: added
- support for recursive make invocations with Windows NT's shell.
- Thanks to Dave Steele <Dave_Steele@Mitel.COM> for diagnosing the
- problem, and Tres Seaver <tseaver@palladion.com> for providing
- the wild NT FOR command. Check it out, Darrell.
-
-Fri Apr 16 07:52:11 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp: Fixed my previous fix with
- calibrate being called on Windows NT when a high-res
- timer of 1 Mhz was being found. Calibrate should not
- be called on NT now. Thanks to Zoran Ivanovic
- <zorani@pathcom.com> for noticing this.
-
- * ace/Profile_Timer.cpp: Integrated the patch from Andy
- Marchewka <AndyM@who.net> for returning rusage information
- from elapsed_time.
-
-Thu Apr 15 16:50:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated discussion of "dir unexpected"
- error when building for VxWorks on NT. Thanks to
- Dave Steele <Dave_Steele@Mitel.COM> for providing the
- insight.
-
-Thu Apr 15 14:04:36 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.lib.GNU: don't call $(RANLIB)
- if it is null.
-
- * include/makeinclude/platform_vxworks5.x_{g++,ghs}.GNU: removed
- RANLIB definition, so that it will be null. This prevents
- calling "true" on NT hosts.
-
- Thanks to Thomas Mehrkam <Thomas_Mehrkam@i-o.com> for reporting
- that his NT host doesn't have "true".
-
-Thu Apr 15 14:00:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/OS.{h, i}: simplified the conditional compilation logic
- for a couple of the pSOS-specific ACE_OS methods, removed a
- handful of marker comments, added a conditional compilation
- branch for pid_t declaration.
-
-Wed Apr 14 22:40:08 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.sh: call run_tests.check via sh, to support
- platforms that don't have /bin/sh. Thanks to Thomas Mehrkam
- <Thomas_Mehrkam@i-o.com> for reporting that his NT host doesn't
- have /bin/sh.
-
-Wed Apr 14 18:56:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/OS.{h, i}
- ace/config-psos-diab-ppc.h
- include/makeinclude/platform_psos_diab_ppc.GNU: changes to adapt
- the pSOS Diab 68k/MIPS port to PPC. Many thanks to Sarmeesha
- Reddy <sreddy@tr.comm.mot.com> and Steven Tine
- <stevent@tr.comm.mot.com> for contributing these changes.
-
-Wed Apr 14 17:06:22 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks5.x.h: added #define ACE_HAS_DLL 0.
- Thanks to Thomas Mehrkam <Thomas_Mehrkam@i-o.com> for
- reporting that it's necessary on NT hosts.
-
-Wed Apr 14 13:10:48 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/config-sunos5.7.h:
- Enabled ACE_HAS_AIO_CALLS for Solaris
- 7. ACE_POSIX_AIOCB_PROACTOR works now on this.
- * examples/Reactor/Proactor/test_aiocb.cpp: Updated comments.
- * ace/config-sunos5.6.h: Removed the ACE_AIORETURN/ERROR macros.
- * ace/Proactor.cpp (ACE_Proactor): Removed debug print statments.
- * ace/config-lynxos.h: Removed the ACE_AIORETURN/ERROR macros.
- * ace/POSIX_Proactor.cpp:
- * ace/WIN32_Asynch_IO.h:
- * ace/WIN32_Asynch_IO.cpp:
- * ace/WIN32_Proactor.h:
- * ace/WIN32_Proactor.cpp:
- * ace/Proactor_Impl.h:
- Completed committing changes related to the <signal_number>
- additions done earlier.
-
-Wed Apr 14 09:07:38 EDT 1999 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
-
- * ace/POSIX_Proactor.cpp:
-
- Several methods were missing the "int signal_number" parameter
- that was added as mentioned in the log entry below. In addition,
- an undefined ACE_SIG_AIO flag was used. I found a log entry in
- ChangeLog-98b which says that ACE_SIG_AIO is ACE_SIGRTMIN. So I
- replaced the 5 occurrences of ACE_SIG_AIO with ACE_SIGRTMIN.
-
-Wed Apr 14 02:34:13 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- Added additional parameter <int signal_number> to all the Asynchronos
- Operation method so that we can specify which real-time signal should
- be used for each of the Asynchronous Operation. This only makes sense
- in the ACE_SIG_Proactor configuration.
-
- * ace/Asynch_IO_Impl.h:
- * ace/Asynch_IO.h:
- * ace/Asynch_IO.cpp:
- * ace/POSIX_Asynch_IO.h:
- * ace/POSIX_Asynch_IO.cpp:
- * ace/POSIX_Proactor.h:
-
- - For each asynchronous call issued, the real-time signal is
- registered with the Proactor so that it can wait for the completions
- using that signal. Previously, the signal number for all the
- operations was the same signal and it was hard coded.
-
- - <register_aio_with_proactor> method which earlier existed only for
- <AIOCB_Proactor> has been added to <SIG_Proactor>
- also. <SIG_Proactor> just takes the <signal_number> from the result
- object and registers the signal number. Registering involves,
- masking the signal, setting the signal delivery for that RT signal
- etc.
-
- - Allowing to specify signal number for each operation can be useful,
- since the order in which the completions are delivered from the
- completion queue, is based on the signal numbers in addition to the
- priority. Applications might want to leverage this.
-
- * ace/OS.h:
- OS.h has been defined with ACE_SIGRTMIN and ACE_SIGRTMAX, which are
- defined to SIGRTMIN and SIGRTMAX respectively, for POSIX4
- platforms. For others, they are 0.
-
-Tue Apr 13 15:29:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Object_Manager.cpp: moved ACE_Service_Config signal
- handler allocation from constructor to init (). Tidy,
- tidy, tidy.
-
-Tue Apr 13 14:52:15 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Addr.cpp: Fixed g++ warnings of unused parameters.
-
-Tue Apr 13 14:47:18 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Basic_Types_Test.cpp (main): replaced call to sysconf ()
- with ACE_OS::sysconf (). Thanks to Erik Ivanenko
- <erik.ivanenko@utoronto.ca> for noticing this.
-
-Tue Apr 13 14:17:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp: replaced use of ACE_TSS<T> with ACE_WIN32 or
- ACE_HAS_TSS_EMULATION with native use of ACE_OS TSS, to remove
- dependency on ace/Synch.h. Also, changed ACE_OS::NULL_key to
- be -1 instead of 0 with ACE_HAS_TSS_EMULATION.
-
-Tue Apr 13 09:05:25 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Sched_Params.i (ACE_Sched_Priority_Iterator): removed
- ACE_TRACE's, because Sched_Param is in the ACE_OS (lowest)
- component. Thanks to Erik Ivanenko <erik.ivanenko@utoronto.ca>
- for reporting this.
-
-Tue Apr 13 08:21:41 1999 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU
- * include/makeinclude/platform_sunos5_sunc++_orbix.GNU: Added a make
- option, mt_orbix, to control whether the MT or non-MT variant of
- Orbix is used. Default is MT; to use non-MT, "make mt_orbix=0".
-
- * ace/config-sunos5.x-sunc++-4.x-orbix.h: Include correct config-sunos5
- file based on OS version at compile time. Allow site config to
- specify ACE_HAS_MT_ORBIX 0.
-
-Mon Apr 12 14:24:28 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU (realclean.local):
- added BIN2, LIB2, SHLIB2, and SHLIBA2 to support
- subsetting. It allows realclean to remove old BIN,
- LIB, SHLIB, and SHLIBA targets after remove the
- ace_components information file. Also, removed explicit
- -f following $(RM). -f should be included in the RM macro
- if appropriate for the platform.
-
-Mon Apr 12 13:01:32 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/gethrtime.cpp (ACE_gethrtime),Makefile: added support for
- rdtsc instruction with GHS on Intel targets. Thanks to
- Andy Alvarez <axab@eci-esyst.com> for providing the assembly
- instructions to do this!
-
-Mon Apr 12 12:04:20 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/Makefile,ATM_Addr.cpp:
- Added ACE_ATM_Addr class back into Makefile since it's working
- now. Fixed address initialization problem in ACE_ATM_Addr.
- NOTE: This code currently only works with Solaris 2.5/2.6. Will
- need to update the code for FORE's implementation on Solaris 2.7.
- NOTE: To use FORE's XTI/ATM implementation the following #defines
- need to be included (typically in ace/config.h):
- #define ACE_HAS_FORE_ATM_XTI
- #define ACE_HAS_TIUSER_H_BROKEN_EXTERN_C
- #define ACE_TLI_TCP_DEVICE "/dev/xtisvc*" //(e.g., /dev/xtisvc0)
- AND the following flags are needed to build the ace library
- (typically in include/makeinclude/platform_macros.GNU):
- CPPFLAGS += -I$(FORE_ROOT)/include
-
-Mon Apr 12 10:04:31 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU:
- The default rule to compile .idl files is only enabled if
- TAO_ROOT is not defined, otherwise we should use the rule in
- $TAO_ROOT/rules.tao.GNU
-
-Mon Apr 12 00:18:23 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.36 released.
-
-Sun Apr 11 17:06:53 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (run_client): Fixed
- the warnings on Linux (config-linux.h).
-
-Sun Apr 11 16:09:16 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp (run_client): Made
- some fixes if ACE_MT_SAFE is false... Thanks to Alex for
- reporting these.
-
-Sun Apr 11 16:02:49 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp (create_handler):
- Fixed the warnings (control reaching end of block) and error (passing
- u_long to close) which showed up on Linux(with config-linux.h)
-
- * performance-tests/Misc/preempt.cpp,
- * examples/Threads/task_five.cpp: Replaced ACE_MT_SYNCH by
- ACE_SYNCH to get it compile on Linux.
-
-Sun Apr 11 14:38:22 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in: Added test for ACE_NEEDS_FUNC_DEFINITIONS.
- Corrected bug in ACE_TEMPLATES_REQUIRE_SOURCE test.
-
-Sat Apr 10 14:02:11 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc[_Base]: Added a new no-op constructor for
- ACE_Allocator to hopefully work around a problem with DEC UNIX
- C++.
-
-Fri Apr 09 10:08:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- enable -fno-implicit-templates for targets other than
- Intel. It appears to work for PPC targets, and is necessary
- to avoid compiler warnings about different symbol sizes
- in object files. Thanks to Thomas Mehrkam <Thomas_Mehrkam@i-o.com>
- for tracking down the source of the warnings, and verifying
- that -fno-implicit-templates works for PPC targets.
-
-Fri Apr 09 08:14:55 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU: replaced "ln -s" with
- $(LN_S), and set that to "ln -s" by default. Thanks to
- Rainer Blome <rainer_blome@de.ibm.com> for suggesting this.
-
-Fri Apr 9 00:38:03 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_Acceptor.cpp (shared_accept): Make sure to disable
- ACE_NONBLOCK on the newly accepted socket since otherwise
- applications can have weird behavior. Thanks to Margaret Reitz
- <margaret@veritas.com> and Irfan for helping to track this down.
-
-Thu Apr 08 13:47:03 1999 David L. Levine <levine@cs.wustl.edu>
-
- * BUG-REPORT-FORM,PROBLEM-REPORT-FORM,
- README,VERSION,Makefile,Makefile.am,bin/make_release,
- docs/ACE-bug-process.html: moved BUG-REPORT-FORM
- to PROBLEM-REPORT-FORM. Thanks to Thomas Lockhart
- <Thomas.G.Lockhart@jpl.nasa.gov> for suggesting this.
-
- * docs/ACE-guidelines.html: added checklist for ACE/TAO changes,
- including commit with a meaningful message, update a
- ChangeLog, and ack and respond to the requestor.
-
-Thu Apr 8 13:18:22 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/SString.h: Updated the documentation to show that "Memory is
- _not_ allocated/freed if <release> is 0".
-
-Wed Apr 7 20:24:48 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CORBA_macros.h (ACE_DECLARE_NEW_CORBA_ENV): Removed the
- trailing semi-column. Thanks to Marina for the reminder.
-
-Wed Apr 7 19:09:05 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Containers_T: Replaced all Foo &Foo::operator=() with void
- Foo::operator=() to avoid nasty problems with propagation of
- errors. Thanks to Chris Schleicher <chrissch@cnd.hp.com> for
- reporting this.
-
-Wed Apr 07 17:25:07 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * apps/Gateway/Gateway/connection_config: Changed the connection 1
- and 2 to use localhost since it would probably be the most
- common test case.
-
- * apps/Gateway/README: Replaced all references of proxy_config
- to connection_config. Also change the example port number to
- 10011 and 10012 which are the default port number used by the
- gatewayd.
-
- Thanks to Sam Rhine <rmsolution20@earchlink.net> for reporting
- this.
-
-Wed Apr 7 16:36:41 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ACE-INSTALL.html: Put a note in saying to rebuild all
- when upgrading releases.
-
-Wed Apr 07 14:25:47 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Addr.{h,cpp}: modified files to compile for
- machines without FORE XTI/ATM support.
-
- * examples/IPC_SAP/TLI_SAP/CPP-{server,client}.cpp:
- modified files to take out XTI/ATM code.
-
- * examples/IPC_SAP/TLI_SAP/Makefile,CPP-ATM-{server,client}.cpp:
- added separate test files for XTI/ATM
-
-Wed Apr 7 14:20:59 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Basic_Types.h:
- Added a signed companion to David's
- ACE_UINT64_LITERAL, to avoid MSVC warnings. If
- the platform has no 8-byte integer, this is
- useless, but we must keep all compilers happy.
- Also modified ACE_INT64_MAX tp use this, and
- added a signed companion to
- ACE_UINT64_FORMAT_SPECIFIER.
-
-Wed Apr 07 13:57:33 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated egcs shared library discussion
- with information from Tim Rose <trose@bridgewatersys.com>
- that egcs 1.1.1 statics libs work fine on Solaris 2.6.
-
-Wed Apr 07 13:14:34 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Object.{h,i} (fini_called): Accessor to the
- underlying fini_already_called_ flag.
-
- * ace/Service_Repository.cpp (find_i): Disallowed returning a
- service which fini() has been called upon.
-
-Wed Apr 7 11:30:09 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Added more tests to the script.
-
-Wed Apr 07 09:54:28 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU: instead of trying to
- overwrite an existing symlink with ln -f, remove it first.
- Thanks to Keith Rohrer <KRohrer@hnv.com> for reporting that
- Solaris' ln -f doesn't work.
-
- * ace/config-vxworks_5.x.h: added ACE_HAS_RECURSIVE_MUTEXES.
- Thanks to Tom Venturella <Thomas.Venturella@MW.Boeing.com>
- for suggesting this, because the VxWorks semaphores that
- ACE uses for mutexes are recursive.
-
- * ace/Synch.i (set_thread_id): added ACE_UNUSED_ARG (t), with
- ACE_HAS_RECURSIVE_MUTEXES.
-
-Wed Apr 07 09:37:34 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_osf1_4.0.GNU: disable warning
- 1016 when optimization is enabled. That gets rid of the
- "D:incint" warning about bzero in sys/select.h.
-
- * docs/ACE-guidelines.html: always use $(RM) instead of rm or
- rm -f in Makefiles.
-
-Wed Apr 07 02:42:50 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.35 released.
-
-Wed Apr 07 02:04:30 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.34 released.
-
-Tue Apr 6 21:09:32 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ATM_Addr: Added the ATM_Addr.* files into the CVS
- respository. However, we're not going to enable this in the
- Makefile or project files until they are tested.
-
-Tue Apr 6 20:48:16 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Basic_Types.h:
- Added max and min #defines for various ACE data types. Now,
- when using the ACE or ACE_CDR data types, we need not
- depend on the vagaries of limits.h and float.
-
-Tue Apr 6 20:39:01 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Log_Record.cpp (format_msg):
- * ace/Log_Record.cpp (print):
-
- Changed host_name[] to *host_name since null pointers were being
- passed into the host_name array. Strictly speaking, host_name
- should thus be a pointer, not an array. Also cleaned up
- ternary operator in format_msg() by parenthesizing some
- expressions.
-
-Tue Apr 6 20:19:23 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Makefile: Removed the ATM_Addr files until Joe can
- get them checked in.
-
-Tue Apr 06 19:36:24 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Active_Map_Manager.h (ACE_Active_Map_Manager_Key): Added a
- separate structure that holds the fields of the key. This
- separate structure makes it easier to manage copying the index
- and the generation to and from the user buffer.
-
-Tue Apr 6 16:07:29 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch.cpp (get_thread_id): If we have recursive mutexes then
- it's not possible to get the id of the thread that's currently
- holding the mutex. Thanks to David for reporting this.
-
-Tue Apr 6 15:50:14 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/exceptions.html:
- Updated the documentation.
-
-Tue Apr 6 15:25:56 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/High_Res_Timer.{h,i,cpp}: On Win32, don't call calibrate if
- we cannot get the scale factor. Instead, just automatically
- fall back on ACE_OS::gettimeofday ().
-
- Also added another static variable to represent the conditions
- where the global scale factor is not set yet or high resolution
- timers are not supported.
-
-Tue Apr 06 15:14:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.h: added ACE_UINT64_LITERAL for platforms
- with ACE_LACKS_U_LONGLONG_T.
-
- * tests/Basic_Types_Test.cpp: added test of ACE_UINT64_LITERAL.
-
-Tue Apr 06 14:54:56 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Message_Queue_Test.cpp (performance_test):
- * tests/Message_Queue_Notifications_Test.cpp (producer): Unicode
- related change.
-
- * ace/ace_ce_dll.dsp: Added Active_Map_Manager.cpp.
-
- * ace/OS.h:
- * ace/config-WinCE.h: CE now uses non-static object manager.
-
- * WindozeCE/WindozeCE.h: Instantiate the non-static object manager
- within the class.
-
- * WindozeCE/WindozeCEDlg.cpp: We should register the bridge window
- using its HANDLE so it would work no matter we build ACE with or
- without MFC support.
-
-Tue Apr 6 14:17:06 1999 Joe Hoffert <joeh@tango.cs.wustl.edu>
-
- * ace/OS.h: Added support for the FORE ATM XTI interface.
-
- * ace/TLI_{Acceptor,Connector}: Added support for the FORE ATM XTI
- interface.
-
- * ace/ATM_Addr: Added support for ATM address for the XTI ATM
- driver. Eventually, this class will be generalized to work on
- WinSock 2 ATM support, as well.
-
-Tue Apr 06 13:56:18 1999 Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
-
- * include/makeinclude/rules.local.GNU: added -f to ln -s commands,
- to force overwrite of old symlink. This eases moving of
- installed ACE code trees.
-
-Tue Apr 6 00:17:59 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/DLL {.h, .cpp} (set_handle): Added the set_handle () method
- which allows the user to set the ACE_SHLIB_HANDLE for the DLL.
- Thanks to Bob McWhirter for bringing up this point.
-
-Mon Apr 5 22:27:02 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-irix6.x-sgic++-nothreads.h: Added
-
- #if !defined (ACE_HAS_NETDB_REENTRANT_FUNCTIONS)
- #define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
- #endif /* ACE_HAS_NETDB_REENTRANT_FUNCTIONS */
-
- to fix a problem with SGI 6.5. Thanks to Bob Laferrie
- <laferrie@execpc.com> for reporting this.
-
-Mon Apr 5 19:42:11 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
- * m4/acinclude.m4:
-
- Created the macro ACE_CHECK_FOR_CVS_DIR to prevent the configure
- script from continuing the configuration if the current
- configuration directory is in a CVS controlled directory. The
- idea is to prevent automatically generated files from being
- checked into the repository. This will prevent accidental
- overwrites of ACE's current Makefiles by the automatically
- generated ones, for example.
-
- In addition, this should ease the transition from the current
- Makefile scheme to the new Auto{conf,make}/libtool scheme since
- the current Makefiles can remain under CVS control without
- the generate Makefiles interfering with them.
-
-Mon Apr 05 17:02:46 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp (global_scale_factor ()): removed
- comment that said we use BogoMIPS on Linux/Intel. We
- only use it on Linux/alpha. Thanks to
- Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov> for
- reporting this.
-
-Mon Apr 5 15:54:57 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Profile_Timer.i: Removed ACE_OS::gettimeofday ()
- calls from start and stop.
-
-Mon Apr 05 15:09:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: removed second #include of netdb.h. Thanks to
- John H Aughey <tmpsp499@cec.wustl.edu> for reporting this.
-
-Mon Apr 05 14:17:31 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Trace.cpp: removed unnecessary (and complicated)
- #include of ace/ACE.h.
-
-Mon Apr 5 13:21:49 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Proactor.cpp:
- (svc):
- * ace/POSIX_Proactor.cpp:
- * ace/POSIX_Proactor.h:
- * ace/Proactor.h:
- * ace/Proactor_Impl.h:
- * ace/WIN32_Proactor.cpp:
- * ace/WIN32_Proactor.h:
- * examples/Reactor/Proactor/test_timeout.cpp:
- Completed Timers implementation for POSIX platforms. Timers
- implementation is now common for POSIX and WIN32. Portable
- ACE_Auto_Event is used in the auxillary thread to wait for the
- Timer events.
- The Timer's code in WIN32 has been removed and the common code exists
- in Proactor.{h,cpp} only.
- A new factory method called create_asynch_timer has been created to
- create the Timer Result class. This is used internally by the Proactor
- to post timer completions to the Proactor completion
- queue. Application may want to use this directly to fake
- completions.
-
-Mon Apr 05 12:05:01 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.*,Thread_Manager.{h,cpp}: moved flags members from
- ACE_Thread_Descriptor to a new ACE_OS_Thread_Descriptor base
- class, to remove dependency of OS.cpp on Thread_Manager.h.
-
-Sun Apr 4 18:19:05 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
-
- Changed ANSI C++ cast test to fail on warnings. Currently,
- only g++ and Sun C++ warning/error conversion is supported.
-
- Moved the ACE_SET_COMPILER_FLAGS macro after the AC_ARG_ENABLE
- and AC_ARG_WITH calls so that user settings can influence what
- compiler flags get set.
-
- Removed some M4 comments (`dnl') that were inside of the
- template specialization test header block. The test was failing
- since `dnl' was being quoted by M4 and actually placed inside
- the test program source during test source compilation. Also
- corrected a typo in the same test.
-
- Changed test for ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION so
- that it attempts to link instead of just compile. Hopefully
- this will make the test "tougher."
-
- * m4/compiler.m4:
-
- Added `-features=castop' compiler flag and completed support for
- `-features=rtti' via `--enable-rtti'. These flags only work for
- Sun C++ 4.2. Added support for the `-noex' Sun C++ compiler flag
- when the user disables exception handling.
-
- * m4/platform.m4: Minor comment updates.
-
-Sat Apr 3 19:41:36 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/TTY_IO.cpp (control): Disabled support for higher baudrate
- for non-NT platforms.
-
-Sat Apr 3 19:37:07 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/TTY_IO.cpp (control): Added support for more modem speeds.
- Thanks to Valery Arkhangorodsky <avalery@geocities.com> for
- reporting this.
-
-Sat Apr 3 17:02:48 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/*: Regenerated all the HTML to get the hyperlinks
- into the various headers. I'm sure somebody will let me know if I
- munged it all.
-
- * docs/tutorials/(019|020|021) : Finally made myself sit down and
- add Kirthika's last abstracts.
-
-Sat Apr 3 15:27:07 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * Makefile.am
- * ace/Makefile.am
- * netsvcs/clients/Naming/Client/Makefile.am
- * netsvcs/clients/Tokens/manual/Makefile.am
- * netsvcs/lib/Makefile.am
- * tests/Makefile.am
-
- Added targets to clean up files and directories created during
- compilation. Automake will setup the `clean-local' targets to
- run automatically whenever a `make clean' is done.
-
-Fri Apr 02 23:25:11 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: added TAO/tao/Version.h. Thanks to
- Nanbor for suggesting this.
-
- * ace/OS.cpp: removed use of ACE_Array with WIN32 and
- TSS_EMULATION. In doing this, fixed an off-by-one error:
- ACE_TSS_Cleanup::remove () would try to remove key value
- "n" from an ACE_Array of size "n".
-
-Fri Apr 2 19:19:09 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * bin/autogen: Update NEWS file by copying VERSION. Temporary
- hack to make Automake happy when doing a `make dist'.
-
-Fri Apr 2 18:37:29 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in: Placed the asynchronous IO checks right after
- the thread library checks. This was done to make sure the
- library with AIO support gets added to the link list before
- the rest of the tests start, and to make sure that it doesn't
- get added if AIO isn't supported or isn't working.
-
- * Makefile.am (ACE_EXTRA_DIST): Changed directory names to use
- `$(top_srcdir)' instead of the current directory `.'. This
- allows a distribution to be made from a directory other than
- ACE's top level source directory.
-
- * m4/compiler.m4: Explicitly add the `-xildoff' flag to Sun CC's
- LDFLAGS. This is just a precautionary measure. It shouldn't
- be needed.
-
-Fri Apr 2 12:41:09 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Containers_T.h (all of the classes listed below):
- * ace/Containers_T.i (ACE_Array):
- * ace/Containers_T.i (ACE_DLList):
- * ace/Containers_T.cpp (ACE_Bounded_Stack):
- * ace/Containers_T.cpp (ACE_Fixed_Stack):
- * ace/Containers_T.cpp (ACE_Unbounded_Stack):
- * ace/Containers_T.cpp (ACE_Unbounded_Queue):
- * ace/Containers_T.cpp (ACE_Double_Linked_List):
- * ace/Containers_T.cpp (ACE_Fixed_Set):
- * ace/Containers_T.cpp (ACE_Bounded_Set):
- * ace/Containers_T.cpp (ACE_Unbounded_Set):
- * ace/Containers_T.cpp (ACE_Ordered_MultiSet):
- * ace/Handle_Set.h (ACE_Handle_Set):
- * ace/Handle_Set.i (ACE_Handle_Set):
-
- Changed assignment operators (operator=) to return a reference
- to `*this' so that assignments may be chained.
-
-Thu Apr 1 23:41:56 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp:
- Fixed write_array() to memcpy if doing a byte-swap
- and size = 1. Previously, it was falling through
- without writing anything. Thanks to Jerry De Master
- <jdemaste@ipdinc.com> for pointing this out.
-
-Thu Apr 01 22:38:25 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.33 released.
-
-Thu Apr 01 21:09:00 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * Sequence.h (TAO_Base_Sequence): Made the copy constructor and
- the assignment operator public since making them protected was
- breaking some compilers.
-
- * ace/Filecache.cpp (ACE_Filecache_Object): Fixed typo: <lock_>
- should be <lock>.
-
-Thu Apr 1 19:41:26 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/IPC_SAP.h (ACE_IPC_SAP):
- * ace/SOCK.h (ACE_SOCK):
- * ace/SOCK_IO.h (ACE_SOCK_IO):
- * ace/SV_Semaphore_Simple.h (ACE_SV_Semaphore_Simple):
- * ace/Synch.h (ACE_Barrier):
- * ace/Synch.h (ACE_Event):
- * ace/Synch.h (ACE_Guard):
- * ace/Synch.h (ACE_Null_Mutex):
- * ace/Synch.h (ACE_RW_Mutex):
- * ace/Synch.h (ACE_Semaphore):
- Reverted the changes that made these base class destructors
- virtual. They don't need to be virtual for the way they are
- being used.
-
-Thu Apr 01 19:01:20 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Containers.h (ACE_DLList_Node):
- * ace/Containers_T.h (ACE_Double_Linked_List_Iterator):
- * ace/Containers_T.h (ACE_Unbounded_Set_Iterator):
- * ace/Event_Handler.h (ACE_Event_Handler):
- * ace/Event_Handler.h (ACE_Notification_Buffer):
- * ace/Filecache.h (ACE_Filecache_Handle):
- * ace/Filecache.h (ACE_Filecache_Object):
- * ace/Local_Tokens.h (ACE_TPQ_Iterator):
- * ace/Local_Tokens.h (ACE_Token_Proxy):
- * ace/Local_Tokens.h (ACE_Token_Proxy_Queue):
- * ace/Malloc.h (ACE_Name_Node):
- * ace/Malloc.h (ACE_Static_Allocator_Base):
- * ace/Memory_Pool.h (ACE_MMAP_Memory_Pool):
- * ace/Memory_Pool.h (ACE_MMAP_Memory_Pool_Options):
- * ace/Memory_Pool.h (ACE_Shared_Memory_Pool):
- * ace/Memory_Pool.h (ACE_Shared_Memory_Pool_Options):
- * ace/OS.h (ACE_Countdown_Time):
- * ace/OS.h (ACE_Thread_Adapter):
- * ace/OS.h (ACE_Thread_Control):
- * ace/OS.h (ACE_Thread_Exit):
- * ace/Service_Object.h (ACE_Service_Type):
- * ace/Signal.h (ACE_Sig_Adapter):
- * ace/Synch.h (ACE_Adaptive_Lock):
- * ace/Synch.h (ACE_TSS_Adapter):
-
- In some cases, classes with pointers *can* use the default copy
- constructor and the assignment operator. A more careful
- screening of the egcs -Weffc++ flag need to be done before a
- copy constructor and assignment operator can be considered
- harmful/dangerous. For now, the changes Ossama made have been
- reverted.
-
- * ace/Filecache.cpp (ACE_Filecache_Object):
- * ace/Signal.i (ACE_Sig_Action):
- * ace/OS.i (ACE_Time_Value):
-
- Removed default contruction of structs. Old g++ is broken.
-
- * ace/Filecache.cpp (ACE_Filecache_Object): Fixed incorrect
- initialization of <mmap_>.
-
-Thu Apr 1 16:22:18 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Containers_T.h (ACE_Unbounded_Set_Iterator):
- * ace/Containers_T.cpp (ACE_Unbounded_Set_Iterator):
- The signatures for the prefix and postfix operators were
- switched. Prefix operators take a void and return a
- a reference and postfix operators take an int and returns a
- copy.
-
- * ace/Containers.h (ACE_DLList_Node):
- * ace/Containers_T.h (ACE_Double_Linked_List_Iterator):
- * ace/Containers_T.h (ACE_Unbounded_Set_Iterator):
- * ace/Event_Handler.h (ACE_Event_Handler):
- * ace/Event_Handler.h (ACE_Notification_Buffer):
- * ace/Filecache.h (ACE_Filecache_Handle):
- * ace/Filecache.h (ACE_Filecache_Object):
- * ace/Local_Tokens.h (ACE_TPQ_Iterator):
- * ace/Local_Tokens.h (ACE_Token_Proxy):
- * ace/Local_Tokens.h (ACE_Token_Proxy_Queue):
- * ace/Malloc.h (ACE_Name_Node):
- * ace/Malloc.h (ACE_Static_Allocator_Base):
- * ace/Memory_Pool.h (ACE_MMAP_Memory_Pool):
- * ace/Memory_Pool.h (ACE_MMAP_Memory_Pool_Options):
- * ace/Memory_Pool.h (ACE_Shared_Memory_Pool):
- * ace/Memory_Pool.h (ACE_Shared_Memory_Pool_Options):
- * ace/OS.h (ACE_Countdown_Time):
- * ace/OS.h (ACE_Thread_Adapter):
- * ace/OS.h (ACE_Thread_Control):
- * ace/OS.h (ACE_Thread_Exit):
- * ace/Service_Object.h (ACE_Service_Type):
- * ace/Signal.h (ACE_Sig_Adapter):
- * ace/Synch.h (ACE_Adaptive_Lock):
- * ace/Synch.h (ACE_TSS_Adapter):
- Explicitly disallow use of implicitly generated copy
- constructor and assignment operator to prevent inadvertent
- memory leaks.
-
- * ace/Filecache.cpp (ACE_Filecache_Object):
- * ace/OS.i (ACE_Time_Value):
- * ace/Signal.i (ACE_Sig_Action):
- * ace/Signal.i (ACE_Sig_Guard):
- * ace/Signal.i (ACE_Sig_Set):
- * ace/Synch_T.i (ACE_Guard):
- Added base member initializers for class members that weren't
- initialized. Better style and helps avoid some warnings.
-
- * ace/IPC_SAP.h (ACE_IPC_SAP):
- * ace/SOCK.h (ACE_SOCK):
- * ace/SOCK_IO.h (ACE_SOCK_IO):
- * ace/SV_Semaphore_Simple.h (ACE_SV_Semaphore_Simple):
- * ace/Synch.h (ACE_Barrier):
- * ace/Synch.h (ACE_Event):
- * ace/Synch.h (ACE_Guard):
- * ace/Synch.h (ACE_Null_Mutex):
- * ace/Synch.h (ACE_RW_Mutex):
- * ace/Synch.h (ACE_Semaphore):
- Made base class destructor virtual to ensure that it gets
- called by derived class destructor.
-
-Thu Apr 1 13:31:56 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.{i,cpp}:
- Moved the destructors and a couple of short output CDR
- functions from .cpp to .i.
-
-Thu Apr 1 03:30:19 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/tao_svcconf.pl: New perl script to help converting TAO's
- svc.conf file to use static services.
-
-Wed Mar 31 14:30:28 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Fixed mis-matched #endif comments. Thanks to Eric
- Eide <eeide@cs.utah.edu> for pointing this out.
-
-Thu Mar 31 14:30:20 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * tests/Message_Block_Test.cpp: updated some printouts.
-
-Wed Mar 31 10:46:31 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Message_Block_T.h: Add template arg to operator = definition for
- ACE_Locked_Data_Block<>.
-
- * ace/config-aix-4.x.h: Don't set _BSD for AIX 4.2 (or 4.3). Setting
- it works ok on AIX 4.2, but breaks TAO builds. Not setting it has
- caused no regressions on 4.2, and allows TAO to build more.
-
-Tue Mar 30 23:28:41 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Message_Block.cpp (init_i): This function was not releasing
- the old data block (if <data_block_> was non-zero). Fixed this
- problem and avoided the memory leak. Thanks to Sangwoo Jin
- <swjinjin@sei.co.kr> for reporting this leak.
-
- Also changed the constructors to set <data_block_> to zero.
-
- * tests/Message_Queue_Test.cpp (receiver): Fixed hacked use of
- init() to prevent memory leak. The new init_i() fixes the leak.
-
-Tue Mar 30 23:24:02 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
- * m4/features.m4:
- * m4/threads.m4:
- Updated several library checks to use a single call of my
- re/implementation of the new autoconf AC_SEARCH_LIBS test instead
- of having several AC_CHECK_LIB calls in a row. Nice!
-
- The thread detection tests were overhauled. They are now
- simpler but retain the same functionality as the previous
- tests. They were greatly reduced in size so debugging, updating
- and enhancing should be much easier now.
-
- * m4/acinclude.m4:
- Reimplemented Autoconf's AC_SEARCH_LIBS into ACE_SEARCH_LIBS.
- The functionality is the same but the ACE reimplementation
- actually works when C++ is the test language. For some reason
- Autoconf's test isn't being generated properly by GNU M4.
-
-Tue Mar 30 22:04:49 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32-common.h: Added definition of
- ACE_DEFAULT_THREAD_PRIORITY as 0. Thanks to John Morey
- <jmorey@tbi.com> for reporting this.
-
-Tue Mar 30 21:31:01 1999 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile (RELEASE_LIB_FILES): added bin/ and etc/.
- Thanks to John Lindal <jafl@alice.wonderland.caltech.edu>
- for reporting that the ACE library Makefile needs
- bin/ace_components.
-
-Tue Mar 30 18:49:58 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * bin/make_release: Added .ico to binary file types.
-
-Tue Mar 30 12:23:23 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.32 released.
-
-Tue Mar 30 11:03:31 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch.h (ACE_Adaptive_Lock): Clarified a comment about how
- to define a constructor in a subclass that initializes the
- lock_. Thanks to Michael Kircher for reporting this.
-
-Tue Mar 30 10:37:43 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.i (getpwnam_r): Added patch contributed by Roland Gigler
- <roland@mch.pn.siemens.de> for getpwnam_r on SCO UnixWare 7.
-
-Mon Mar 29 20:22:44 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
- * m4/features.m4:
- Added new M4 macro include file, and moved asynchronous IO tests
- to `m4/features.m4'. The asynchronous IO tests were improved by
- making them run-time tests. Cross-compiled platforms will fall
- back to a compile-time test. Thanks to Alex for providing
- run-time tests. The tests are based on his AIO tests found in
- the examples/Reactor/Proactor directory.
-
-Sun Mar 28 18:02:54 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
- Enabled the C++ libtool support mentioned below. Removed all
- references to CXXCPPFLAGS since the CPPFLAGS variable is used
- by autoconf for both C and C++.
-
- * ltconfig:
- Added my experimental libtool C++ support. The hacks I made
- allow it to build C++ shared libraries.
-
- * m4/acinclude.m4:
- * m4/threads.m4:
- Renamed some variables. Namespace pollution was breaking most
- of the tests.
-
-Sun Mar 28 12:20:44 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/CORBA_macros.h: Moved ACE_NEW_THROW* and ACE_GUARD_THROW*
- macros from OS.h to CORBA_macros.h. Also added
- ACE_*GUARD_THROW_EX which has the new ACE try macros semantics.
- CORBA_macros.h needs to include "OS.h" to source in the correct
- platform configuration macros.
-
-Sun Mar 28 13:27:15 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/exceptions.html:
- Added a new example
-
-Fri Mar 26 23:35:28 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Added ACE_NEEDS_SCHED_H.
-
- * ace/config-irix6.x-g++.h:
- * ace/config-irix6.x-kcc.h:
- * ace/config-irix6.x-sgic++.h:
- * ace/OS.h: Reverted changes about ACE_LASKS_SCHED_H.
-
- * ace/config-dgux-4.x-ghs.h:
- * ace/config-irix6.x-sgic++.h:
- * ace/README:
- * ace/OS.h: Renamed ACE_LACKS_SCHED_H with ACE_NEEDS_SCHED_H to
- refect what it really means. The original name was quite
- confusing.
-
-Fri Mar 26 18:16:25 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-g++.h:
- * ace/config-irix6.x-kcc.h:
- * ace/config-irix6.x-sgic++.h:
- There is no need to explicitly include <sched.h> or to define
- ACE_LACKS_SCHED_H the file is present in IRIX 6.4.
-
-Fri Mar 26 17:57:25 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Defined cuserid as an extern "C"
- function.
-
- * ace/OS.h: <sched.h> should only be included when !defined
- (ACE_LACKS_SCHED_H).
-
- Thanks to Eric Eide <eeide@cs.utah.edu> for sending the patch.
-
-Fri Mar 26 17:12:21 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Profile_Timer.{h,i,cpp}: On Win32 platforms that
- support RUsage, Profile_Timer will use both that and
- High Resolution Timers for measurements. Depending
- on the method, one or the other will be used.
-
-Fri Mar 26 17:02:00 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
- Improved ACE_HAS_USING_KEYWORD test so that it works for platforms
- that support the `using' keyword but don't have the `std' namespace.
-
- Updated ACE_HAS_TEMPLATE_SPECIALIZATION test so that it works for
- compilers that require the "template<>" syntax for specialization.
-
- Improved ACE_HAS_ONLY_SCHED_OTHER by checking for run time errors
- when a thread scheduling policy other than SCHED_OTHER is set.
- Thanks to David for suggesting this modification.
-
- * m4/acinclude.m4:
- Added support for converting warnings to errors for Sun C++.
-
- * m4/threads.m4:
- Added test to check if `-Kthread' compiler flag enables thread
- support. SCO UnixWare 7 uses this flag.
-
-Fri Mar 26 07:21:33 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Reactor_Performance_Test.cpp (handle_input): wrapped
- final return statement with ACE_NOTREACHED.
-
-Thu Mar 25 20:16:49 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * bin/make_release: I wasn't using $bin_files for the
- ACE+TAO.zip creation, so now that is fixed. Thanks to
- Greg Ross <gwross@west.raytheon.com> for pointing this out.
-
-Thu Mar 25 16:31:27 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- Added new macros for byte swapping, this are rather evil. They
- add the correct padding to use a single long to represent a
- short or char, but in such a way that the first bytes of the
- long contain the required data.
- Nobody should need that, but the IDL compiler does.
-
-Thu Mar 25 16:25:46 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in: Added test for ACE_HAS_BROKEN_MAP_FAILED.
-
- * ace/OS.h: Added __USLC__ to list of macros in the conditional that
- keeps the compiler from complaining about parameters which are not
- used. This is needed for the C++ compiler on SCO UnixWare 7.
- Thanks to Roland for letting me know about this.
-
-Thu Mar 25 14:55:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Basic_Types_Test.cpp: print out ACE version
- information even with ACE_HAS_MINIMAL_ACE_OS.
-
-Thu Mar 25 13:52:57 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Reactor_Performance_Test.cpp (handle_input): This code
- wasn't entirely correct. Well actually, I think where was some
- change in the semantics of Windows. Previously, once the handle
- was close, it seems that the application still got notified if
- there was data on the socket. With WinNT SP4, it seems that
- once the handle was closed, no additional FD_READs were issued
- by the OS, even if data was available on the socket.
-
- In ACE, both FD_READ and FD_CLOSE get mapped to handle_input().
- The way to know when the connection was closed is to do a recv()
- in handle_input() and check for a zero return. When told of new
- data, the old code in handle_input() only did one recv() of
- BUFSIZ bytes. If there was more than BUFSIZ bytes of data on the
- socket, there would be some data left on the socket. Hence,
- when notified of FD_CLOSE, it did another recv() which
- succeeded, and handle_input() never returned -1, making the test
- hang.
-
- The change made was to make handle_input() call recv() until
- EWOULDBLOCK occurs (note that the socket is in non-blocking
- mode). Hence, when FD_CLOSE occurred, the socket did not have
- any data left, recv() returned 0 and handle_input() returned -1,
- which finally closed the test down correctly.
-
-Thu Mar 25 13:13:51 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * Makefile.am (ACE.ifnames):
- Placed rule generation of ACE.ifnames within a MAINTAINER_MODE
- automake conditional. If a `--enable-maintainer-mode' option
- isn't given on the configure script command line then don't
- generate a new `ACE.ifnames' file.
-
- * configure.in:
- Added AM_MAINTAINER_MODE so that maintainer level Makefile
- features are disabled by default.
-
- * acconfig.h:
- * ace/OS.h:
- * ace/README:
- Added ACE_HAS_BROKEN_MAP_FAILED macro for platforms that do not
- cast MAP_FAILED to a (void *). Defining this macro prevents
- compilers on those platforms from complaining about assigning
- an int to a (void *). Thanks to Roland Gigler
- <roland@mch.pn.siemens.de> for providing feedback about this.
-
-Thu Mar 25 11:30:44 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/exceptions.html:
- Corrected a couple of links...
-
-Thu Mar 25 01:04:00 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/OS.h (ACE_OS): Added ACE_DEFAULT_TEMP_DIR_ENV to be "TEMP"
- for WIN32 and "TMP" for Unix.
-
-Wed Mar 24 18:30:18 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp: Added a new
- version of this program that fixes a number of bugs with the old
- one. Thanks to Hao Ruan <hruan@lucent.com> for these fixes.
-
-Wed Mar 24 15:31:27 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * High_Res_Timer.cpp:
- * High_Res_Timer.h:
- * OS.i:
-
- Changed the implementation of the High Resolution Timer on
- Win32 to use QueryPerformanceCounter instead of assembly code.
- The docs also say that this is MP-safe. Thanks to Gregory D.
- Fee <gdf2@cec.wustl.edu> for suggesting this.
-
- * Profile_Timer.cpp:
- * Profile_Timer.h:
- * Profile_Timer.i:
-
- Now uses the High Res Timer on Win32 instead of rusage.
-
-Wed Mar 24 14:36:12 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_OS_PREALLOCATE_OBJECT): Initialized obj_p to zero
- to make egcs happy.
-
-Wed Mar 24 13:23:36 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: removed note about building netsvcs before
- running the one-button test on WIN32. Thanks to Nanbor for
- hacking run_tests.bat :-)
-
-Wed Mar 24 13:16:17 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/WFMO_Reactor.i (handler):
- * ace/Select_Reactor_T.cpp (handler_i): Made sure we can safely
- pass out the event handler before we do so. Thanks to Michael
- Preobrazhensky <mikep@xpedite.com> for reporting this.
-
- * tests/run_tests.bat: Do not run Time_Service_Test if
- netsvcs/servers/main.exe doesn't exist. Thanks to
- Jeffrey_Franks@i-o.com for reporting the problem and David for
- suggesting the fix.
-
-Wed Mar 24 12:47:56 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added note to build netsvcs on Win32
- before running run_tests.bat. Thanks to Jeff Franks
- <Jeffrey_Franks@i-o.com> for suggesting this.
-
-Wed Mar 24 06:53:57 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): SunOS 5.7 allows thread priority of 0,
- so we no longer need to work around that.
-
-Tue Mar 23 22:49:15 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in: Added a test for ACE_NEEDS_DEV_IO_CONVERSION.
-
-Tue Mar 23 22:29:20 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.7.h: undef ACE_HAS_ONLY_SCHED_OTHER, because
- other scheduling policies are supported by SunOS 5.7. Thanks
- to Ossama and autoconf for noticing this.
-
-Tue Mar 23 20:42:44 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * tests/Cache_Manager_Test.cpp (main): Added missing ACE_START_TEST
- and ACE_END_TEST macros.
-
- * m4/threads.m4: Modified UNIX International threads check to include
- check for rwlock_destroy() in -lthread since thr_create() was
- found without explicitly linking to -lthread on Solaris 2.5.1.
- rwlock_destroy() should be found only by linking to -lthread which
- will cause the configure script to add -lthread to the library link
- list.
-
-Tue Mar 23 16:25:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-subsets.html: added FOR_TAO subset sizes.
-
-Tue Mar 23 15:15:20 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Map_Manager.{i,cpp} (ACE_Map_Iterator_Base::operator*):
- Moved this function to .cpp file to avoid compilation problem on
- SunOS 5.6 with SunCC 4.2. Once we know a patch that will fix
- the problem, we should move it back to .i file again. Thanks to
- James Megquier <jmegq@bbn.com> for reporting the problem.
-
-Tue Mar 23 14:56:58 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
- * configure.in:
- * ace/OS.h:
- * ace/TLI.cpp:
- * ace/config-osf1-4.0.h: Removed all references to
- ACE_HAS_BROKEN_T_ERRNO and removed the definition of the _terrno()
- function from TLI.cpp since it isn't a standard TLI function (at
- least not the Steven's books that I've read). This also fixes a
- problem on Solaris that was causing an autoconfigured build of
- TLI.cpp to fail.
-
- * ace/Makefile.am: Make sure template source files get installed for
- all cases. Previously, they only got installed if the template
- source is required by the compiler. However, they are still needed
- by compilers that don't explicitly require template sources to
- be included in a file that references them.
-
- * configure.in: Fixed the test for ACE_TEMPLATES_REQUIRE_SOURCE.
- Thanks to Carlos for his help on this. Removed the test for
- ACE_HAS_BROKEN_T_ERRNO since it is no longer needed due to the
- above change.
-
- * README: Added Konstantinos Margaritis <kmargar@cc.uoa.gr> to the
- ACE contributor list.
-
-Tue Mar 23 12:57:40 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp: Split off the logging to
- an ostream from the logging for STDERR. Thanks to Bill Rizzi
- (rizzi@softserv.com) for pointing out this problem.
-
- * netsvcs/lib/Client_Logging_Handler.cpp: Changed the default from
- ACE_STDOUT to ACE_STDERR to be consistent. Thanks to Bill Rizzi
- (rizzi@softserv.com) for pointing out the problem.
-
-Tue Mar 23 12:06:04 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_THROW_SPEC): Added prgama to disable reporting
- warning 4290 on MSVC. MSVC "supports" the exception
- specification but doesn't provide an implementation for it.
- Instead, it warns you the specification is ignored.
-
-Mon Mar 22 21:34:06 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_g++.GNU: use -m uname
- option instead of -i, because GNU uname doesn't support -i.
-
-Mon Mar 22 18:59:55 1999 Steve Huston <shuston@riverace.com>
-
- * ace/NT_Service.cpp (state): Changed the (DWORD *, ACE_Time_Value *)
- version to reliably return -1 on any error. Thanks to Martin
- Krumpolec <krumpo@pobox.sk> for keeping me honest here, and for
- sending in better code.
-
-Mon Mar 22 14:16:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp} (cleanup_tss): added tss_close (), to enable
- deleting the native key on program termination. That's not
- implemented yet, because it requires a separate
- ACE_OS::thr_keyfree (ACE_OS_thread_key_t).
-
- * ace/OS.cpp (fini), README, ace/config-linux-lxpthreads.h:
- removed ACE_FINI_HOOK support. It wasn't helping.
-
-Mon Mar 22 11:14:16 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * Makefile.am:
- Various minor updates.
-
- * configure.in:
- * m4/platform.m4
- Moved known platform specific macro checks from `configure.in'
- to `platform.m4'.
-
- * tests/Makefile.am:
- Updated to build the DLL_Test shared library. Support for the
- test is still broken (my fault :).
-
- * aclocal.m4:
- * configure:
- These are automatically generated so they shouldn't be under
- CVS control. I Removed them from the CVS repository.
-
-Mon Mar 22 09:42:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-subsets.html: added current status section.
-
-Mon Mar 22 01:04:23 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (free_all_keys_left): Changed to remove left-over
- keys using TlsFree on Win32. We can't use ACE_OS::thr_keyfree
- here because it tries to update the TSS in_use_ information
- which has already been deleted at this point.
- (cleanup_tss): Uncommented free_all_keys_left.
-
-Sun Mar 21 21:26:46 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: fixed error status when building ACE+TAO.
- Thanks to Doug for reporting this.
-
-Sun Mar 21 21:16:02 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.31 released.
-
-Sun Mar 21 20:45:57 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.30 released.
-
-Sun Mar 21 18:39:16 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ACE.ifnames:
-
- Updated with new macro list.
-
- * Makefile.am:
-
- Added the m4 directory to the distribution list and made some
- minor updates.
-
- * ace/Makefile.am:
- * m4/subsets.m4:
-
- Subsetting updates/corrections.
-
- * configure.in:
-
- Added work around for buggy glibc2.1 when including both
- <ucontext.h> and <sys/procfs.h>. Added check for auto_ptr class
- declaration since some platforms have <memory> but may not
- declare the auto_ptr class. Shortened some of the "checking"
- messages.
-
- * ace-config.1.in: ace-config script man page template
- * aceConf.sh.in: ace-config "unknown" library script
-
- Added these files to the CVS repository.
-
- * config.guess:
- * config.sub:
- * ltconfig:
- * ltmain.sh:
-
- Updated these files to the ones in the latest libtool.
-
- * libtool:
-
- Removed this since it is automatically generated for each platform.
- It shouldn't be under CVS control.
-
-Sun Mar 21 17:59:22 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp:
- Fixed a problem with ACE_OutputCDR::write_octet_array_mb, thanks
- to Dave Meyer <dmeyer@std.saic.com> for isolating and reporting
- this bug again [it was fixed in TAO and somehow it crept to the
- ACE version of the CDR classes].
-
-Sun Mar 21 17:42:08 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record):
- Use ACE_NTOHL macro instead of system ntohl() to get around bug
- in egcs-2.91.6x.
-
-Sun Mar 21 16:07:24 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/config-g++-common.h (ACE_HAS_USING_KEYWORD):
- Define ACE_HAS_USING_KEYWORD for egcs 1.1.x.
-
-Sun Mar 21 09:44:30 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Timeprobe_Test.cpp: don't test ACE_Singleton
- creation during static construction if ACE_HAS_PURIFY
- is enabled, because it notices the memory-in-use.
-
- * examples/Naming/Makefile: changed SRC to PSRC.
-
- * examples/Naming/Makefile,performance-tests/Misc/Makefile,
- tests/Makefile:
- Use ace_components instead of the current ACE_COMPONENTS
- setting to determine what should be built.
-
-Sat Mar 20 19:10:37 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Connector.h:
- * ace/Connector.cpp:
- * ace/Strategies_T.h:
- * ace/Strategies_T.cpp:
- Added new methods to the ACE_Connector, ACE_Strategy_Connector,
- ACE_Connect_Strategy and ACE_Cached_Connect_Strategy.
- The motivation for this new method is a bit convoluted:
- In TAO we store the Svc_Handler returned from connect() as a
- hint for later Cached_Connector lookups. But the location
- where we store it could be shared between multiple threads.
- To minimize the number of locks this hint is only modified and
- examined by the Cached_Connector, while the lock in the
- connection map is beign held.
-
- The problem arises when the hint is returned: another thread
- could try to use the same hint location, detect that the hint
- is in use and replace it before the thread that just requested
- the object has a chance to read the hint value.
- The solution is to use two variables: one is the hint
- location, carefully protected by the Cached_Connector lock,
- the other is a variable in the thread stack, they return the
- same thing, but the second variable is not affected by changes
- done by other threads.
-
- In short: we addeda connect() method that takes two arguments,
- the first is just intented to update the cached connector
- hint, the second is where the real connection gets returned.
-
- * tests/Makefile:
- David discovered that using SRC to list the sources does not
- work under some platforms. But using PSRC does.
-
-Sat Mar 20 15:51:14 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
- Added tests for: ACE_HAS_BROKEN_NAMESPACES
- ACE_HAS_BROKEN_CONVERSIONS
- ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS
- ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP
- ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
- ACE_HAS_PTHREAD_PROCESS_ENUM
-
- Added some minor updates and corrections.
-
-Sat Mar 20 09:06:10 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Map_Manager_Test.cpp: changed index () to slot_index ()
- and generation () to slot_generation (), to correspond to
- Active_Map_Manager interface change.
-
- * examples/ASX/Message_Queue/Makefile: changed LSRC to PSRC.
-
- * ace/Object_Manager.{h,cpp}: removed complex support from
- ACE_Object_Manager for cleanup of some ACE_Singleton locks
- during static construction/destruction, only. The affected
- lock types are ACE_Thread_Mutex, ACE_Mutex, and
- ACE_RW_Thread_Mutex. ACE_Recursive_Thread_Mutex and
- ACE_Null_Mutex will still be cleaned up if used to create
- ACE_Singletons during static construction/destruction. As
- noted in ace/Singleton.h, those are the best type of locks
- to use with ACE_Singleton, anyways.
-
- This support was tricky to get right, and increased the size of
- the Object_Manager object file by 46 to 59 percent. Now, if
- ACE_Singletons are created during static construction or
- destruction, with either an ACE_Thread_Mutex, ACE_Mutex, or
- ACE_RW_Thread_Mutex lock, those locks will be dynamically
- allocated and leaked.
-
-Sat Mar 20 02:03:53 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acinclude.m4:
-
- Split acinclude.m4 into several M4 macro files and moved those
- files into the new `m4' subdirectory, includind acinclude.m4.
-
- * m4/acinclude.m4:
- * m4/compiler.m4:
- * m4/subsets.m4:
- * m4/threads.m4:
-
- Added these M4 files.
-
- * bin/autogen:
-
- Script to regenerate auto{conf,make} and libtool related files.
- Additional functionality may be added to this script in the
- future.
-
- * Makefile.am:
- * ace/Makefile.am:
- * apps/gperf/src/Makefile.am:
- * apps/gperf/tests/Makefile.am:
- * apps/gperf/Makefile.am:
- * apps/Makefile.am:
- * netsvcs/clients/Logger/Makefile.am:
- * netsvcs/clients/Naming/Client/Makefile.am:
- * netsvcs/clients/Naming/Dump_Restore/Makefile.am:
- * netsvcs/clients/Naming/Makefile.am:
- * netsvcs/clients/Tokens/collection/Makefile.am:
- * netsvcs/clients/Tokens/deadlock/Makefile.am:
- * netsvcs/clients/Tokens/invariant/Makefile.am:
- * netsvcs/clients/Tokens/manual/Makefile.am:
- * netsvcs/clients/Tokens/mutex/Makefile.am:
- * netsvcs/clients/Tokens/rw_lock/Makefile.am:
- * netsvcs/clients/Tokens/Makefile.am:
- * netsvcs/clients/Makefile.am:
- * netsvcs/lib/Makefile.am:
- * netsvcs/servers/Makefile.am:
- * netsvcs/Makefile.am:
- * man/man3/Makefile.am: ( NOT ADDED YET )
- * man/Makefile.am: ( NOT ADDED YET )
- * tests/log/Makefile.am:
- * tests/Makefile.am:
-
- Added Automake makefile templates for ACE.
-
- * configure.in:
- * m4/subsets.m4:
- * ace/Makefile.am:
-
- Added support for David's ACE subsetting work.
-
-Fri Mar 19 23:36:37 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Active_Map_Manager.h (ACE_Active_Map_Manager_Key): Changed
- method index() to slot_index() and generation() to
- slot_generation(). These changes were motivated by the
- OpenEdition platform/compiler, which defines a macro called
- index(). Also, changed the type of <index_> and <generation_>
- from u_long to ACE_UINT32 to get consistent size across
- platforms.
-
-Fri Mar 19 22:50:19 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/ace_ld: inserted ^['"]? at beginning of patterns that check
- for -l and -L, to make sure they're at the beginning of arguments.
- Thanks to Henric Jungheim <junghelh@pe-nelson.com> for
- suggesting this.
-
- * tests/Makefile: removed SRC, because it caused link problems
- on DU 4.0.
-
-Fri Mar 19 18:56:26 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * Fixed several makefiles that did not have a SRC or LSRC variable
- defined.
-
- * Re-generated the dependencies for both ACE and TAO, this time on
- a platform that includes the template code.
-
- * include/makeinclude/rules.local.GNU:
- Now we can run make depend inside a build directory.
- Removed any $(ACE_ROOT)/ace/config*.h files from the dependency
- list, those are not used.
-
-Fri Mar 19 18:05:27 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record):
- Reverted change that was thought to work around egcs compiler bug.
- The call to ntohl() within the templates still causes the compiler
- to complain.
-
-Fri Mar 19 17:31:57 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp:
- Fixed silly error in the InputCDR constructor taking an
- ACE_Message_Block.
-
-Fri Mar 19 15:41:30 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/config-win32-common.h: Added CE fix.
-
-Fri Mar 19 15:03:54 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
- Changed CDR to ACE_CDR.
- Fixed ACE_InputCDR constructor when receiving a linked list of
- Message_Blocks.
-
- * tests/CDR_Test.cpp:
- Added a test for the constructor above.
-
-Fri Mar 19 10:29:17 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Singleton.cpp (instance): removed at_exit () calls
- from both ACE_Singleton and ACE_TSS_Singleton, only
- when the ACE_Object_Manager hasn't started or has already
- shutdown. In those cases, the singletons will leak.
-
- * ace/Object_Manager.cpp (ACE_Object_Manager ctor),
- ace/OS.cpp (ACE_OS_Object_Manager ctor): allow
- newer instances to overwrite older ones, in case an application
- #defines ACE_HAS_NONSTATIC_OBJECT_MANAGER and uses the
- Object_Manager during construction of static objects.
-
- * tests/Timeprobe_Test.cpp: added test of ACE_Singleton
- creation during construction of static objects. Timeprobes
- can do that, when they're enabled.
-
- * ace/OS.cpp (fini), README: added ACE_FINI_HOOK support.
- Applications can #define ACE_FINI_HOOK to any executable code,
- and it will be executed on program termination.
-
- * ace/config-linux-lxpthreads.h: with ACE_HAS_TSS_EMULATION,
- #define ACE_FINI_HOOK to insert a one-second sleep at
- program termination. It's necessary to avoid occasional
- segfaults of unknown origin, but they appear to be in the
- LinuxThreads library.
-
- * bin/ace_components: added. It is used to record/access
- which components were built into the ACE library. See next
- entry for files that have been updated to use it.
-
- * ace/Makefile,tests/Makefile,tests/run_tests.sh: use
- ace_components to record which components are in the ACE library.
- Suppress build/run of tests that use Token and Other.
-
- * netsvcs/{clients,servers}/Makefile: use ace_components instead of
- the current ACE_COMPONENTS setting to determine what should be built.
-
-Fri Mar 19 03:24:34 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Singleton.cpp (instance): Commented out the call to
- ACE_Object_Manager::at_exit(). Currently, this is causing
- multiple instances of ACE_Object_Manager to get created, and
- hence causing all sorts of problems.
-
- * ace/OS.cpp (cleanup_tss): Removed the call to
- free_all_keys_left() (WIN32 only), because it causes
- segmentation faults at shutdown.
-
-Fri Mar 19 00:15:21 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- The following changes are specific to WindowsCE. They are
- required to remove MFC dependency from CE port. Thanks to Eric
- Covington <eric@nowsol.com> for motivating this.
-
- * ace/config-WinCE.h: We no longer enfoce the use of MFC with ACE
- CE port anymore.
-
- * ace/config-win32-common.h: When not using MFC, CE needs to
- include <windows.h> and <wce.h> explicitly.
-
- * ace/Log_Record.cpp (print):
- * ace/OS.{h,cpp} (ACE_CE_Bridge): Changed to use HWND to record
- target window handle instead of CWnd. Also, we stop passing
- output string in a CString anymore. The string is now created
- using ACE_OS::strdup and must be released by the target window
- using ACE_OS::free.. A small smart pointer class will be added
- later. Notice that if you used ACE CE port before, the wParam
- can no longer be casted to a CString*, it should be casted to
- LPTSTR now.
-
- * WindozeCE/WindozeCEDlg.cpp: <wParam> should be casted to LPTSTR
- and it should be freed using ACE_OS::free.
-
- * ace/ace_ce_dll.dsp: CE programs (or DLL only?) not using MFC
- must specify all libraries used by the program, even msvcrt.
-
-Thu Mar 18 22:21:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: changed
- ACE_QUOTE to '"', instead of "", on win32 hosts. "" just
- evaporates to nothing; we really need one double quote.
- Thanks to Hans Rohnert for verifying this.
-
-Thu Mar 18 18:49:32 1999 Marina Spivak <marina@cs.wustl.edu>
-
- * ace/SString.i (compare): fixed the function to work properly in
- case strings have different lenghts.
-
- * ace/SString.cpp: fixed code to gracefully handle failed memory
- allocations.
-
- * ace/SString.h: added comments about strings with release=0, not
- necessarily being null terminated.
-
-Thu Mar 18 14:31:29 1999 Steve Huston <shuston@riverace.com>
-
- * tests/DLL_Test.cpp: Use the new DLL_Test.h file that contains the
- class defs - needed for AIX xlC. This should have been done
- with the Mar 15 changes but slipped through the cracks.
-
- * include/makeinclude/platform_hpux_aCC.GNU: Added support for
- building HP-UX 11 distributions with both 32 and 64 bits.
-
- * docs/tutorials/006/client_handler.cpp (Client_Handler::open): Changed
- arg name to void_acceptor to avoid redefining it inside the function.
-
- * docs/tutorials/007/client_acceptor.cpp (Client_Acceptor(Thread_Pool&)
- Fixed initialization of concurrency_.
-
- * docs/tutorials/018/Test_T.cpp (open): Fix ACE_UNUSED_ARG(arg).
-
- * ace/Message_Queue.h (ACE_Message_Queue_Base): Removed "= 0" from
- ~ACE_Message_Queue_Base. AIX xlC warns that pure virtual dtor
- needs an out-of-line definition to be a base of another class.
- There is already a definition for the dtor in Message_Queue.i.
-
-Thu Mar 18 14:30:04 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (timezone): Removed the leading '::' to cope with VC
- 5. Thanks to Lan Yaolong <lyaolong@cs.sunysb.edu> for reporting
- this.
-
-Wed Mar 17 17:23:43 1999 Vishal Kachroo <vishal@merengue.cs.wustl.edu>
-
- * ace/OS.i (timezone): Added support for timezone () on CHORUS
-
-Wed Mar 17 14:06:24 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h: Some characters got removed so I put them back.
-
-Wed Mar 17 13:59:42 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
- * acconfig.h:
- Added autoconf check for rename() system call.
-
-Wed Mar 17 07:55:38 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/platform_freebsd_pthread.GNU: Made some
- adjustment for building ELF executables which are the default on
- FreeBSD 3 and above. I'll incoporate Russell's LinuxThread
- change later.
-
-Wed Mar 17 13:36:32 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: return non-zero exit status on failure.
-
-Wed Mar 17 12:47:04 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.cpp (open_i): Also delete the parse buffer
- before exiting the function for it is no longer needed. We
- still need to deallocate the buffer at close method to prevent
- the case when uses manipulate Service_Config directly using
- process_directives.
-
-Wed Mar 17 12:33:35 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.i: Reenabed ACE_OS::rename() and we'll see which
- platforms need to have ACE_LACKS_RENAME. Thanks to Susan
- Liebeskind <shl@cc.gatech.edu> for reporting this.
-
-Wed Mar 17 10:46:26 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Message_Block.i (space): Moved ACE_Message_Block::space()
- after inline declarations of ACE_Message_Block::end() and
- ACE_Message_Block::wr_ptr() to prevent "used before it was
- declared inline" warnings on end() and wr_ptr().
-
-Wed Mar 17 10:24:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (argv_to_string): initialized temp to 0 to avoid warnings
- from VxWorks g++.
- ace/OS.i (strenvdup): initialized temp to 0 to avoid warnings from
- VxWorks g++. Thanks to Hans Rohnert for reporting these.
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU (RANLIB):
- replaced /bin/true with @true, to avoid build warning on
- NT hosts. Thanks to Hans Rohnert for reporting this.
-
-Wed Mar 17 09:58:43 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Svc_Conf.l (yy_delete_parse_buffer): Added a check for NULL
- to avoid freeing buffers multiple times. Thanks to Tom Arbuckle
- <arbuckle@uran.informatik.uni-bonn.de> for this fix and to
- Nanbor for noticing the problem in the first place!
-
-Wed Mar 17 08:30:58 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.6.29 released.
-
-Wed Mar 17 03:12:43 1999 James C. Hu <jxh@entera.com>
-
- * ace/Message_Block.i: Changed the definition of space () to be
- something more useful than it was. Thanks to Bill Rizzi
- (rizzi@softserv.com) for pointing out the problem.
-
- * ace/Cache_*: Removed by popular decree. Can be found in
- JAWS/PROTOTYPE.
-
-Wed Mar 17 03:06:20 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.cpp (close): Re-enabled cleaning up the lex
- buffer.
-
- * ace/Svc_Conf_l.cpp (ace_yy_delete_parse_buffer): We should not
- remove uninitialize buffer.
-
-Tue Mar 16 19:48:57 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Makefile and tests/Makefile: Reverted these files to the
- pre-Cache_Manager state. The Cache_Manager files don't compile
- on g++ and vxworks and we need to make a release now.
-
- * ace/Map_T.h (class ACE_Noop_Key_Generator): Added new class.
- This class makes it easy to use the map adapters when you don't
- care about generating new keys.
-
-Tue Mar 16 11:36:41 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: FreeBSD 2.2 and above also support
- threads, but siginfo_t is only supported on FreeBSD 3.0 and
- above. Thanks to Goldshtain Dmitry <goldshtain.dmitry@usa.net>
- for pointing these out.
-
-Tue Mar 16 16:46:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Hash_Bucket_T.h: added class to friend
- ACE_Hash_Bucket_DLCStack_Iterator declaration.
-
-Tue Mar 16 16:35:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: never use TRUE, true, FALSE, false, etc.
-
-Tue Mar 16 15:58:07 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.cpp (close): Don't call the
- ace_yy_delete_parse_buffer for now. It is causing access
- violation.
-
-Tue Mar 16 15:15:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/ACE.{cpp, i}
- ace/OS.{cpp, h, i}
- ace/FIFO.cpp
- ace/Log_Record.cpp
- ace/SOCK_Dgram_Mcast.cpp
- ace/SPIPE_Connector.cpp
- ace/TLI_Acceptor.cpp
- ace/config-psos-diab-mips.h (new)
- ace/config-psos-diab.h
- ace/config-psos-tm.h
- ace/streams.h: integrated pSOS/MIPS changes into ACE. Thanks to
- Jaepil Kim (jpkim@lgsoft.com) for completing the ACE pSOS port
- for the MIPS platform, and for sending these modifications.
-
-Tue Mar 16 14:25:03 1999 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (get_ip_interfaces, count_interfaces, get_bcast_addr):
- On AIX, use CSIOCGIFCONF instead of SIOCGIFCONF to retrieve
- interface information. Thanks to Eric Newton <ecn@smart.net> for
- figuring this out.
-
-Tue Mar 16 12:20:53 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Service_Config.h (ACE_Service_Config):
- Added documentation for the parse_args () method. This was in
- request to Bill Rizzi <rizzi@softserv.com>.
-
-Tue Mar 16 10:57:46 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Svc_Conf.l: Added a new method ace_yy_delete_parse_buffer()
- that frees up FLEX buffers when the program is done. Thanks to
- Tom Arbuckle <arbuckle@uran.informatik.uni-bonn.de> for
- this fix.
-
- * examples/ASX/Message_Queue/buffer_stream.cpp (main): Changed pm
- to cm and vice versa to be consistent. Thanks to Rainer Blome
- <rainer_blome@de.ibm.com> for reporting this.
-
-Tue Mar 16 10:50:42 1999 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_aix4_cset++.GNU: New file to cover
- all AIX 4.x versions with the C Set++ (xlC) compiler.
-
- * include/makeinclude/platform_aix.GNU, platform_aix4.2.GNU: These
- files are deprecated; they simply include the new file above,
- platform_aix4_cset++.GNU.
-
-Tue Mar 16 10:38:35 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Hash_Bucket_T.cpp:
- Removed default parameter declaration from the constructor for
- ACE_Hash_Bucket_Manager definition. Default parameter
- declarations can only show up in the function declaration.
-
-Tue Mar 16 10:25:53 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.1.x.h, config-aix-4.2.x.h: These now simply
- include config-aix-4.x.h. All further changes for any AIX 4.x
- version should go in config-aix-4.x.h.
-
-Tue Mar 16 08:12:54 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Thread_Manager.cpp: In thread_within(ACE_thread_t), replaced use
- of '==' with ACE_OS::thr_equal. In hthread_within (ACE_hthread_t),
- replaced use of '==' with ACE_OS::thr_cmp. Thanks very much to
- Peter Windle <peterw@ugsolutions.com> for pointing this out.
-
- * README: Added Peter Windle to the list of distinguished contributors.
-
-Tue Mar 16 03:05:22 1999 James Hu <jxh@entera.com>
-
- * ace/Cache_Hash_T.{cpp,h}:
- * ace/Cache_Heap_T.{cpp,h}:
- * ace/Cache_List_T.{cpp,h}:
- * ace/Cache_Manager.{cpp,h}:
- * ace/Cache_Manager_T.{cpp,h}:
- * ace/Cache_Object.{cpp,h}:
- * ace/Hash_Bucket_T.{cpp,h}:
- Incorporated fixes from purify and benchmarking sessions at Entera.
- Cosmetic changes coming soon (documentation strings and removal
- of magic numbers).
-
- * ace/Makefile: Added above files to Makefile.
-
- * ace/OS.i: FreeBSD does not support the timezone() function as
- documented by Vishal below. Using Chris Gill's implementation
- for LynxOS.
-
- * tests/Makefile:
- * tests/Cache_Manager_Test.cpp: Added this test to illustrate
- Cache_Manager. Still needs changes to use ACE_DEBUG instead of
- cerr.
-
-Mon Mar 15 19:05:22 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h: New config file that covers all of the AIX 4.x
- versions with C Set++ (xlC) and g++. Many thanks to Susan
- Liebeskind <shl@cc.gatech.edu> for doing to port to AIX 4.3 and
- testing, providing needed changes!
-
- * ace/OS.i (wait): Fixed to handle ACE_HAS_UNION_WAIT case correctly,
- without depending on AIX - thanks to Susan Liebeskind for this too!
-
- * ace/ACE.cpp (fork, with zombie avoidance): Fixed to work right
- with ACE_HAS_UNION_WAIT (ala AIX 4.2).
-
- * include/makeinclude/rules.lib.GNU: New template instantiation
- scheme for AIX with C Set++ (xlC); goes with...
- * etc/xlc_dummy.cpp: New file, purpose of which is to help with AIX
- xlC template instantiation. This is the new, improved method from
- IBM suport. It still generates a zillion duplicate definition
- warnings, but IBM doesn't have any better solution.
-
- * include/makeinclude/platform_aix4.2.GNU: This will work with both
- AIX 4.2 and 4.3 now. I'll take care of the naming soon.
-
- * tests/Map_Test.(cpp h): Moved template defs to new file, Map_Test.h
- to satisfy AIX xlC. Thanks to Susan for this too.
-
- * tests/DLL_Test.(cpp h): Moved template defs to new file, DLL_Test.h
- to satisfy AIX xlC.
-
- * tests/Makefile, Makefile.DLL: Fixed to build libDLL_Test correctly
- on AIX w/ xlC.
-
- * tests/run_tests.sh: Sets LIBPATH correctly for AIX (4.2 at least).
-
-Mon Mar 15 00:26:31 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/ACE-netsvcs.html: Updated this to document the current
- version. Thanks to Bill Rizzi <rizzi@softserv.com> for
- reporting this.
-
- * netsvcs/lib/Client_Logging_Handler.cpp: Make sure that debug
- messages go to stderr and log messages go to stdout. Thanks to
- Bill Rizzi <rizzi@softserv.com> for reporting this.
-
- * netsvcs/lib/Client_Logging_Handler.cpp (fini): Oops, fixed a
- minor buglet with return values. Thanks to David for reporting
- this.
-
- * netsvcs/lib/Client_Logging_Handler.cpp (send): Added a check to
- make sure we don't crash if the ostream is NULL. Thanks to Bill
- Rizzi <rizzi@softserv.com> for reporting this.
-
-Sun Mar 14 22:54:41 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp (init): Added an
- ACE_OS::unlink() to prevent STREAM pipes from getting confused
- if this application doesn't shutdown gracefully. Thanks to Bill
- Rizzi <rizzi@softserv.com> for reporting this.
-
-Sun Mar 14 19:51:25 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in: Added real-time support library `-lrt' check to
- asynchronous IO functions/libraries checks.
-
- GNU glibc 2.1 adds support for the POSIX 1b real-time
- specification in the library `librt'. The POSIX asynchronous IO
- functions may be found in that library. Currently, `-lpthread'
- must also be linked to in addition to `-lrt'.
-
-Sun Mar 14 17:20:09 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Msg: Generalized the enable_debug_messages() and
- disable_debug_messages() methods so they can be used to enable
- or disable arbitrary priorities. Thanks to Susan Liebeskind
- <shl@janis.gtri.gatech.edu> for suggesting this.
-
-Sun Mar 14 14:46:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/OS.i (tzset,timezone): pSOS doesn't support these two
- functions.
-
- * ace/OS.{cpp, h}: added comments clarifying usage for
- ACE_Time_Value::max_time, use of ACE_PSOS_TM in ACE_OS::signal ().
-
-Sun Mar 14 01:30:43 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (tzset,timezone): WinCE doesn't support these two
- functions.
-
-Sat Mar 13 12:14:34 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Thread_Manager: Changed the following methods:
-
- int task_list (..)
- int thread_list (...)
- int hthread_list (..)
- int thread_grp_list (...)
- int hthread_grp_list (...)
-
- to return actual number of fetched values.
-
- * ace/Thread_Manager: Added two new methods, task_all_list() and
- thread_all_list(), which return lists of all the tasks and
- threads in a Thread_Manager, respectively. Thanks to Zoran
- Ivanovic <zorani@pathcom.com> for contributing this.
-
- * ace/Shared_Memory_{MM,SV}.h: Clarified the relationship of
- these classes to the more powerful ACE_Malloc<> abstraction.
- Thanks to Ti Z <tiz@cisco.com> for suggesting this.
-
-Sat Mar 13 13:27:55 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (timezone,tzset): not supported on VxWorks.
-
- * include/makeinclude/ platform_osf1_4.0.GNU: added suppression
- of msg 1180, statement causes unreachble return, with cxx 6.2
- and later. It doesn't like ACE_OSCALL_RETURN and
- ACE_NOTSUP_RETURN, though it seems to be going overboard.
- The warnings appeared with cxx 6.2-009. If someone uses
- 6.2-007, they might have to manually remove the 1180 suppression.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp (handle_events),
- C-inserver.cpp (main),
- netsvcs/lib/Server_Logging_Handler_T.cpp (handle_logging_record),
- apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp (svc):
- replaced NOTREACHED comment with ACE_NOTREACHED macro. DU cxx
- started complaining about the unreached return statement.
-
-Sat Mar 13 16:16:13 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/021: Added some comments to page04 about the
- template parameters and the use of the ACE_LOCK parameter in
- particular. (Thanks to Bala for the suggestion.)
-
-Sat Mar 13 00:37:17 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.28 released.
-
-Fri Mar 12 20:17:47 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Select_Reactor_Base.cpp (handle_input):
- * ace/WFMO_Reactor.cpp (handle_signal): Added support for
- dispatching QOS_MASK and GROUP_QOS_MASK.
-
-Fri Mar 12 19:13:11 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.i:
- Implemented ACE_OS::timezone() for LynxOS.
-
-Fri Mar 12 16:31:19 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ACE-INSTALL.html (Linux): added note about non-thread safe
- glibc 2.0 dynamic loader. The dynamic loader in glibc 2.1 is
- thread safe.
-
-Fri Mar 12 13:44:54 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/DLL_Test.cpp (main): Fixed the errors on VxWorks and
- LynxOS by shifting the START_TEST before the #ifdefs began.
-
-Fri Mar 12 12:53:17 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: with CC 5.0, replaced ACE_LACKS_ACE_IOSTREAMS
- with ACE_USES_OLD_IOSTREAMS.
-
- * include/makeinclude/platform_sunos5.5_sunc++.GNU: with CC 5.0,
- added -library=iostream,no%Cstd to CCFLAGS.
-
- Thanks to Diethard Ohrt <Diethard.Ohrt@siemens.at> for the
- above two updates to support CC 5.0.
-
-Fri Mar 12 12:09:14 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: fixed comment after #endif to match its #ifdef.
-
-Fri Mar 12 11:46:55 1999 Vishal Kachroo <vishal@merengue.cs.wustl.edu>
-
- Added two new functions tzset () and timezone (). The former sets the
- timezone information based on an environment variable TZ which is
- set when the user logs on. (For St. Louis TZ=US/Central and
- timezone = 360 minutes or 6 hrs. from GMT.). timezone () retrieves
- the timezone value in seconds.
-
- * ace/OS.h (ACE_OS): Added a wrapper for timezone () and tzset ().
- * ace/OS.i (ACE_OS): Added Implementation for the above functions.
-
- The timezone information is being used in the Time Service.
-
-Thu Mar 11 20:11:13 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Get_Opt.cpp (operator): Reverted the following change since
- it will break documented behavior. Thanks to Jon Biggar for
- reporting this.
-
- * ace/Get_Opt.cpp (operator): When the getopt encountered an
- unknown option or an option with a missing required argument, it
- returned '?' and continues to allow processing with the next
- argument (no problem so far). However, if it encountered an
- argument that is not an option (i.e. no '-' in front) or if it
- encounters a double dash (i.e. '--') it returns EOF which
- disallows further processing. Now, it returns a '?' after
- advancing optind to allow further processing. Thanks to Mark
- Laffoon <mark.laffoon@centraxcorp.com> for reporting this.
-
-Thu Mar 11 15:34:24 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/ACE.cpp: removed unnecessary #includes of ace/IPC_SAP.h,
- ace/Process.h, and ace/SString.h. Thanks to Elias Sreih
- <sealstd1@nortelnetworks.com> and Liang Chen
- <chenl@nortelnetworks.com> for suggesting this.
-
- * ace/OS.cpp (ACE_OS::thr_setspecific): on ACE_WIN32 with
- ACE_HAS_TSS_EMULATION, don't register the one native key
- with ACE_TSS_Cleanup::instance (). There's no need, because
- it doesn't have a destructor. And, it prevents startup
- because the ACE_TSS_Cleanup structures haven't been set up
- completely when it is called. Thanks to Terry Rosenbaum
- <Terry.Rosenbaum@Radiology.MSU.edu> for reporting this.
-
- Thu Mar 11 14:04:15 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_chorus_ghs.GNU: added protection
- to not reset exceptions flag if it was defined.
-
-Thu Mar 11 12:53:41 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Thread_Manager.i:
- The method to return the number of threads was using thr_lists_
- as a pointer, but it isn't.
-
-Thu Mar 11 10:12:51 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Thread_Manager: Added a method to return the current number
- of threads in the ACE_Thread_Manager. Thanks to Zoran Ivanovic
- <zorani@pathcom.com> for suggesting this.
-
-Thu Mar 11 10:27:51 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/DLL_Test.cpp (main): Allowed the main to be accessible on
- all platforms by shifting the #ifdefs inside the main. The
- problem arose due to the main being declared an undefined
- reference on LynxOS.
-
-Wed Mar 10 13:31:37 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/config-linux-common.h:
- Commented out ACE_HAS_DLFCN_H_BROKEN_EXTERN_C, ACE_LACKS_MSYNC and
- ACE_LACKS_MADVISE. They are no longer needed for recent revisions
- of glibc 2.x. Thanks to <nbecker@fred.net> for pointing this out.
-
-Wed Mar 10 11:05:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Thread.h,ace/Thread_Manager.h (exit): added comment
- that exit () should not be called by main thread.
-
- * ace/OS.h: added an ACE_OS_thread_key_t typedef on WIN32
- with ACE_HAS_TSS_EMULATION. Thanks to Terry Rosenbaum
- <Terry.Rosenbaum@Radiology.MSU.edu> for reporting that
- it was missing.
-
- * include/makeinclude/platform_osf1_4.0.GNU: disable msg 1136 with
- cxx 6.1-029. Thanks to Doug Anderson <dla@home.com> for
- reporting this.
-
-Wed Mar 10 10:57:16 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Basic_Types.h:
- Fixed minor problem that would show up if sizeof(int)==2; thanks
- to Cristian Ferretti <cfs@mat.puc.cl> for reporting this
- problem.
-
-Wed Mar 10 10:13:52 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Message_Block.i (reference_count): Made sure the inline
- function is defined before used. Thanks to David for noticing
- this.
-
-Wed Mar 10 08:52:59 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_chorus.GNU: fixed
- exceptions=1 support. Thanks to Wei Chiang for
- reporting this.
-
- * include/makeinclude/wrapper_macros.GNU: added exceptions=1
- support for pre-2.8 g++. It's not recommended, because pre-2.8
- g++ doesn't support exceptions well. It's provided for
- completeness.
-
- * include/makeinclude/platform_chorus.GNU: removed
- exceptions=1 support, because now it's in wrapper_macros.GNU.
-
-Tue Mar 09 21:54:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * netsvcs/Makefile,netsvcs/clients/Makefile: updated
- ACE_COMPONENTS check to allow everything to be built
- in the default case, when ACE_COMPONENTS isn't set.
- Thanks to Carlos for noticing this.
-
- * netsvcs/Makefile,netsvcs/servers/Makefile: moved
- netsvcs/server build suppression, when ACE_COMPONENTS
- lacks Other, from netsvcs/Makefile to netsvcs/servers/Makefile.
-
- * examples/Naming/Makefile: suppress build if ACE_COMPONENTS
- is defined and doesn't contain Other.
-
- * performance-tests/Misc/Makefile: don't build test_naming
- if ACE_COMPONENTS is defined and doesn't contain Other.
-
- * ace/Log_Record.i (length): cast the long argument to ACE_UINT32,
- to avoid warning message if long is greater than 4 bytes.
- Thanks to Hao Ruan <hruan@lucent.com> for reporting this.
-
-Tue Mar 9 20:56:35 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/rules.nested.GNU:
- If the DIRS macro is not set we simply do not recurse. Before
- this change we got an error from the shell.
-
- * bin/auto_compile:
- If there are no errors then send a message when a warning was
- detected during compilation.
-
-Tue Mar 09 15:15:19 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/create_ace_build: check for ace/ and include/ directories
- in top level directory, instead of ace/, examples/ and netsvcs/.
- This allows use with trimmed-down workspaces. Thanks to Jeff
- for suggesting this.
-
- * include/makeinclude/platform_chorus_ghs.GNU: added exceptions
- make option support. Thanks to Wei Chiang for reporting that
- it wasn't supported.
-
-Tue Mar 9 12:59:09 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * docs/ACE-subsets.html: Updated the subsets to reflect what's
- actually in the ACE Makefile.
-
- * ace/Message_Block.h: Changed the private section in both
- ACE_Message_Block and ACE_Data_Block to protected allowing
- derived classes to access data members of the parent class;
- Thanks to Alexander Davidovich <sasha@ms.com> for suggesting
- this.
-
- * ace/Message_Block: Added new reference counting accessor methods
- to Message_Block and Data_Block. Thanks to Alexander Davidovich
- <sasha@ms.com> for suggesting this.
-
-Tue Mar 09 11:21:49 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Message_Block.h: For some reason, default ctor and operator=
- must be declared private instead of protected if they are not to
- be accessable. Otherwise, VC complains.
-
-Tue Mar 09 01:06:44 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.27 released.
-
-Tue Mar 09 00:39:23 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.26 released.
-
-Mon Mar 08 23:23:35 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.{h,cpp} (thread_within,hthread_within,
- thread_grp_list,hthread_grp_list): Added new functions to
- check if a thread is managed by the thread manager and collect
- the thread ids/handles in a thread group. Thanks to XuYifeng
- <wj@puclic.hz.zj.cn> for motivating the addition.
-
-Mon Mar 08 22:23:33 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: added FOR_TAO short-cut to ACE_COMPONENTS.
- If the ACE_COMPONENTS variable is set to FOR_TAO, then
- only the components necessary to support TAO will be
- built into libACE.
-
- * netsvcs/clients/Makefile: suppress build if Other
- ACE_COMPONENT isn't built.
-
- * netsvcs/Makefile: suppress server build if Other and Token
- ACE_COMPONENT aren't built.
-
-Mon Mar 8 17:35:04 1999 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * ace/NT_Service.cpp:
- * ace/NT_Service.h:
- Now the handle_control method calls separate protected virtual
- methods to do its work. That way, it is easier to override what
- must be done on each case, just by overriding one of the new
- methods.
-
-Mon Mar 08 15:41:08 1999 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux.GNU: Added -DACE_LACKS_PRAGMA_ONCE.
- Thanks to Hao Ruan for reporting this.
-
- * README: Added Hao Ruan to the list of contributors.
-
-Mon Mar 08 12:27:54 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Service_Config.cpp (handle_signal): added ACE_UNUSED_ARG (sig)
- if ACE_NDEBUG is defined, to avoid compilation warning about
- unused argument with debug=0.
-
- * docs/ACE-subsets.html: added subset characterizations on
- several platforms.
-
- * include/makeinclude/platform_sunos5_ghs.GNU: fixed AR and
- ARFLAGS to use CC to build static libs. It looks like GreenHills
- no longer supplies a separate archiver with 1.8.9.
-
-Mon Mar 08 11:58:03 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Task.cpp (activate): Made sure we don't mess with the passed
- in grp_id if the task was not previously actived. Thanks to
- XuYifeng <wj@puclic.hz.zj.cn> for noticing this.
-
-Fri Mar 05 14:15:46 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_TSS_Cleanup (),free_all_keys_left ()):
- with ACE_TSS_Emulation only, don't free the TSS key that
- ACE_TSS_Cleanup uses internally for its in_use_ member.
- The key doesn't get freed in ACE_OS::thr_key_detach (),
- because that gets called during shutdown. So,
- free_all_keys_left () would attempt to free it. But,
- the dynamic memory associated with it had already been
- deleted by ACE_TSS_Cleanup::exit (). And, there
- aren't any other resources associated with it. So,
- free_all_keys_left () can just skip over it.
-
- * ace/OS.cpp (cleanup_tss): disabled call to
- free_all_keys_left () with ACE_HAS_TSS_EMULATION, because
- we can't safely access the TSS values that were created by
- the main thread. They were destroyed when the ACE_TSS_Cleanup
- instance exit () function was called. There don't seem to
- be any leaks if free_all_keys_left () isn't called, anyways.
-
-Fri Mar 5 11:05:04 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Log_Msg/Log_Msg.dsw: Fixed the path to Callback.dsp.
- Thanks to Zoran Ivanovic <zorani@pathcom.com> for reporting
- this.
-
- * performance-tests/Misc/Makefile: Removed test_guard from the
- Makefile. This test requires having
- ACE_USES_OBSOLETE_GUARD_CLASSES defined in order to compare
- ACE_Guard to ACE_Thread_Mutex_Guard (obsolete).
-
- * ace/OS.h: Removed ACE_THREAD_GUARD*.
-
- * ace/config-psos-{diab,tm}.h: Removed
- ACE_LACKS_METHOD_DEFINITIONS_IN_CLASS_TEMPLATE. It is no longer
- needed.
-
- * ace/Synch_T.{h,i}: One would assume compilers are smart enough
- to treat _all_ in-class functions as inline. Not for template
- member functions. This is true at least for SunCC, egcs, gcc,
- and MSVC. These functions seems to impose extra overhead.
- After removing the in-class definitions for ACE_Guard, the cost
- of using ACE_Guard is now as good as using
- ACE_Thread_Mutex_Guard (which, by the way, is depricated.) So,
- there's no need for a ACE_THREAD_MUTEX_GUARD class. Afterall,
- the "ACE Way[TM]" of defining inline functions is the "Right
- Way[TM]". The motto of the change is, always put inline
- functions in .i files (even for template specialization)
- otherwise, they'll become regular functions. If you really need
- to put function definitions within class definitions, mark
- inline function explicitly.
-
- Thanks to Andy Marchewka <AndyM@who.net> for noticing the
- performance differences between ACE_Thread_Mutex_Guard and (old)
- ACE_Guard.
-
-Fri Mar 5 11:06:12 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Svc_Conf.y: Always print out an error message when we
- increment yyerror. Thanks to Ulf Jaehrig <jaehrig@desys.com>
- for reporting this.
-
-Thu Mar 4 12:26:47 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Message_Queue_Notifications_Test.cpp (svc): Made increment
- of <role_> thread-safe.
-
-Thu Mar 04 07:00:20 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-aix-4.2.x.h: added ACE_LACKS_PRAGMA_ONCE
- to xlC section. Thanks to Rainer Blome <rainer_blome@de.ibm.com>
- for reporting this.
-
- * ace/config-osf1-4.0.h: added ACE_LACKS_PRAGMA_ONCE to
- cxx section, with __DECCXX_VER < 60090010. This should
- help avoid compilation warnings from cxx 5.x. Thanks
- to Oliver M. Kellogg <Oliver.Kellogg@vs.dasa.de> for
- reporting this.
-
- * ACE-INSTALL.html: corrected name of ace/config-linux-lxpthreads.h.
- Thanks to Barry Hoggard <hoggard@cfx.com> for reporting this.
-
- * tests/Makefile,Makefile.DLL: instead of always running a
- recursive make to build libDLL_Test.so, only do that if it
- needs to be built. And, added dependencies to Makefile.DLL.
-
- * ace/Makefile: commented out use of TEMPLATE_FILES. I don't
- believe that it's needed.
-
- * ace/CLASSIX/Makefile: removed unused TEMPLATE_FILES and
- LSRC2 macros, and gethrtime build rule.
-
- * docs/ACE-subsets.html: updated, and added documentation for
- ACE_COMPONENTS and the ACE_OS adapation layer.
-
-Wed Mar 3 22:30:02 1999 James CE Johnson <jcej@lads.com>
-
- * ace/IOStream_T.{cpp|h|i}: Those last changes break (at least)
- examples/IOStream/server. I'm backing them out and restoring
- the 4.6.25 versions of these files until Chris can get back to
- me about what's going on.
-
-Wed Mar 03 21:49:58 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (socket_init,socket_fini): replaced use of
- cerr with ACE_OS::fprintf.
-
- * ace/OS.h: conditionally #include Object_Manager.h, only
- if ACE_HAS_MINIMAL_ACE_OS is not defined. Merged main ()
- #defines for Unix/NT and WinCE, to ease maintenance.
-
- * ace/config-minimal.h: removed undef of
- ACE_HAS_NONSTATIC_OBJECT_MANAGER, because OS.h now conditionally
- #includes Object_Manager.h. Added ACE_MAIN_OBJECT_MANAGER #define,
- to only instantiate the ACE_OS_Object_Manager.
-
- * ace/config-WinCE.h: added ACE_MAIN and ACE_MAIN_OBJECT_MANAGER
- #defines, to support merging of the main () #defines in OS.h.
-
- * ace/OS.{h,cpp}: added ACE_OS_Object_Manager::starting_up ()
- and shutting_down (). (ACE_TSS_Cleanup::remove): replaced
- use of ACE_Object_Manager::shutting_down () with
- ACE_OS_Object_Manager::shutting_down (). Thanks to Irfan
- for reporting that, otherwise, ace/Object_Manager.h had
- to be #included by OS.cpp on NT, if ACE_NONSTATIC_OBJECT_MANAGER
- wasn't #defined.
-
- * tests/Basic_Types_Test.cpp: hacked a bit to support building,
- and running, with ACE_HAS_MINIMAL_ACE_OS. Don't look,
- unless you want to forever ruin all of your good coding habits.
-
-Wed Mar 03 19:08:52 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Map_T.h (ACE_Map): Further degraded my code to make it
- compile with lame compilers ;-) This time it was the lame pSOS
- diab compiler that could not recongnize a typedef in the base
- template class.
-
-Wed Mar 03 11:31:00 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added guideline to try to limit
- the length of source code lines to less than 80 characters.
- And, reverted to the previous version of the file. The
- last version was apparently committed by mistake.
-
- * include/makeinclude/wrapper_macros.GNU (ACE_HAS_GNUG_PRE_2_8):
- added support for eg++. Assume that it's egcs, and therefore
- ACE_HAS_GNUG_PRE_2_8 is set to 0. Thanks to Russell L. Carter
- <rcarter@consys.com> for supplying a patch.
-
-Wed Mar 3 09:35:20 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Memory_Pool.cpp (handle_signal): Added a check to see if the
- current mapping is up to date so that faults caused by other
- mappings will be passed on. Thanks to
- Joseph Weihs <joseph-w@Orbotech.COM> for reporting this and for
- providing a fix.
-
-Wed Mar 3 05:48:24 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/ACE.cpp (fork): Added an extra pair of parens within the
- WIFE*() macros to work around GCC bugs. Thanks to Alexandre
- Karev <Alexandre.Karev@cern.ch> and Andre Folkers
- <folkers@informatik.mu-leubeck.de> for reporting this.
-
-Tue Mar 2 22:50:18 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/POSIX_Asynch_IO.h:
- * ace/POSIX_Proactor.cpp:
- Added forward declaration for ACE_Proactor_Impl. Using static cast
- to down cast from <aiocb *> to
- <ACE_POSIX_Asynch_Result *>. Thanks to John.Mulhern@lawson.com for
- reporting the warnings in HP UX.
-
-Tue Mar 02 21:17:19 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp},Object_Manager.{h,cpp}: changed Object_Manager
- state to be per-instance, instead of global. This makes
- it easier to enforce startup and shutdown ordering,
- regardless of whether the Object_Managers are static,
- created on the stack of main (), or dynamically allocated.
-
- * ace/IOStream_T.h: fixed a couple more line breaks.
-
- * Makefile: added support for suppressing man page regeneration
- on make release command line.
-
- * include/makeinclude/platform_osf1_4.0.GNU: added automated
- support for warning 1136. It's only supported by cxx 6.2.
- Thanks to James CE Johnson <jcej@lads.com> for reporting
- this, and to Andrew Hobson <ahobson@eng.mindspring.net> for
- diagnosing the problem.
-
- * ace/OS.i (thr_getspecific): added #else clause w/ACE_NOTSUP_RETURN
- to support ACE_HAS_MINIMAL_ACE_OS.
-
- * ace/config-minimal.h: added #undef of
- ACE_HAS_NONSTATIC_OBJECT_MANAGER, to avoid #include of
- Object_Manager.h. And, added #define ACE_USE_THREAD_MANAGER_ADAPTER
- so that ACE_Thread_Adapter::invoke () won't use any
- ACE_Thread_Exit functions.
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): removed
- ACE_HAS_MINIMAL_ACE_OS conditional compilation, because
- config-minimal.h now #defines ACE_USE_THREAD_MANAGER_ADAPTER.
- And, added #else clauses to three TSS-related functions.
-
-Tue Mar 02 14:43:29 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Map_T.(h i): Qualified types inherited from template base
- classes; qualified with ACE_TYPENAME where needed. Now aC++
- is happy.
-
- * ace/config-hpux-10.x-hpc++.h: Added ACE_HAS_TYPENAME_KEYWORD for
- aC++.
-
- * tests/DLL_Test.cpp: Enable on HP-UX. Generalize the library
- prefix/suffix with the platform definitions from OS.h.
-
-Tue Mar 2 12:41:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/IOStream_T.{cpp, h}: Fixed some line breaks that were
- inadvertently introduced when these files were last checked in.
-
-Tue Mar 2 10:54:16 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * Cache_{Hash,Heap}_T.{h,cpp}:
- * Cache_Manager[_T].{h,cpp}:
- * Cache_Object.cpp:
- * Hash_Bucket_T.{h,cpp}: Fixed erroneous include directives.
- Thanks to Christian.Destor@alcatel.fr for reporting this.
-
-Tue Mar 2 10:33:47 1999 James CE Johnson <jcej@lads.com>
-
- * ace/IOStream_T.{cpp|h|i}: Christopher Healey
- <chealey@entera.com> noticed occasional core dumps from
- ~ACE_IOStream on heavily loaded systems. It turns out that
- streambuf_ was being deleted out from under the object. These
- three files include his patches for this problem.
-
-Tue Mar 2 02:28:54 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CDR_Stream.h (do_byte_swap): This accessor function should
- be public accessible. Otherwise it's useless. Reorder class
- declaration so the protected members appear before private
- members/functions.
-
-Mon Mar 1 23:26:41 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/DLL_Test.cpp (ACE_HAS_SVR4_DYNAMIC_LINKING):
- Added this check to prevent this test from being run
- separately.
-
-Mon Mar 01 17:02:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.6.25 released.
-
-Mon Mar 01 16:54:02 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp,Object_Manager.cpp: fixed ObjMan state logic to
- ensure that the ACE_Object_Manager is fini'd before the
- ACE_OS_Object_Manager, even when both are static objects.
- Thanks to Carlos for reporting this problem.
-
-Mon Mar 01 14:05:46 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.6.24 released.
-
-Mon Mar 01 13:04:53 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.*,Object_Manager.{h,cpp},ACE.cpp: added class
- ACE_OS_Object_Manager. It manages the three preallocated
- locks that ACE_OS uses. Many thanks to Nanbor for
- suggesting the scheme to avoid dependency on Synch_T.h
- for the ACE_Guard instantiations: OS.cpp now has a
- couple of lightweight guards for its internal use.
-
- * ace/ACE.{i,cpp},OS.*: moved ACE::strecpy () and
- ACE::unique_name () from class ACE to ACE_OS. That
- allows ACE_OS to be self-contained. The ACE versions
- were left for backward compatibility; they now just
- wrap the ACE_OS versions.
-
- With these changes, a stand-alone ACE OS adaptation layer
- can now be built. The ace/config-minimal.h config file
- should be included in ace/config.h if you want to build
- the ACE OS adaptation layer.
-
- Two deficiencies remain with the ACE OS adaptation layer:
- the dependencies on ACE_Log_Msg have been conditionally
- compiled out by config-minimal.h. Similarly, there is
- a conditional dependency of ACE_Thread_Adapter::invoke ()
- on ACE_Thread_Exit. It would probably be best to move
- that to ACE Thread_Manager, if possible.
-
- * ace/config-minimal.h: suppress ACE_HAS_TSS_EMUATION, because
- it requires other ACE headers to be #included.
-
- * ace/Synch.{i,cpp} (~ACE_Recursive_Thread_Mutex): added
- a call to this->remove (). Without it, the mutex wasn't
- being destroyed. Uninlined both the destructor to avoid
- code bloat if there are multiple returns in a function
- that instantiates an ACE_Recursive_Thread_Mutex locally.
- And, uninlined the remove () function, to save code space,
- because it's non-trivial and not expected to be time critical.
-
-Sun Feb 28 20:21:05 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Makefile.DLL (realclean): Added the realclean target to
- the makefile.
-
- * tests/run_tests.sh (ace_version): Disabled DLL_Test for chorus,
- LynxOS, Unicos platforms as they dont support shared libraries.
-
-Sun Feb 28 20:08:54 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/POSIX_Proactor.cpp:
- * ace/POSIX_Asynch_IO.h:
- * ace/POSIX_Asynch_IO.cpp:
- Fixed to pass <ACE_POSIX_Asynch_Result *> wherever <aiocb *> is being
- passed, since it is ok to pass the derived class pointer in place of
- base class pointer.
- Defined the fields <bytes_transferred_> and <error_> in
- <ACE_POSIX_Asynch_Result> so that they can be used instead of
- <AIO_SYSERROR> and <AIO_SYSRETURN>. Because <aiocb:;aio_return> and
- <aiocb::aio_error> fields are not supported on HP yet.
-
-Sun Feb 28 14:22:38 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_linux_kcc.GNU: added
- -D_GNU_SOURCE to CFLAGS, because it's needed with
- glibc 2.1. It can't go into the config file, because
- it needs to be #defined before the #include of
- features.h. But, features.h #defines the glibc version.
- Thanks to Ben Eng <bet@jetpen.com> for reporting this.
-
- * ace/config-minimal.h: disable ACE_ASSERT, ACE_DEBUG, and ACE_ERROR.
-
-Sun Feb 28 12:57:53 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.cpp (terminate): The condition for handling
- joining thread was wrong. Thanks to Terry Rosenbaum
- <Terry.Rosenbaum@Radiology.MSU.edu> for reporting the bug.
-
-Sun Feb 28 08:37:44 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): replaced call
- to ACE_Thread::self () with call to ACE_OS::thr_self (),
- so that we don't need to #include ace/Thread.h. Thanks
- to Russ Noseworthy for reporting this.
-
-Sat Feb 27 17:25:52 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: updated dependencies. They didn't have
- any .shobj dependencies, just .obj.
-
- * tests/Makefile: ran make depend. It didn't have any
- dependencies.
-
- * include/makeinclude/platform_linux_kcc.GNU: added note that
- evaluation copies of KCC might come with libraries that were
- built with exception handling support. To use them, ACE must be
- built with exception handling support
- (exceptions=1). Thanks to John Lindal <jafl@cco.caltech.edu>
- for reporting this.
-
- Also, added support for the exceptions make flag.
-
-Sat Feb 27 13:31:17 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Fixed the remaining problems with ACE_OSCALL_RETURN
- macro usage for sem_wait(), sem_post(), and sem_trywait().
- Thanks to David Levine for reporting this.
-
- * ace/OS.h: Added a set of ACE_THREAD_GUARD macros that use
- ACE_Thread_Mutex_Guard. These seem to be faster on many
- platforms than the ACE_Guard<ACE_Thread_Mutex>. Thanks to
- Andy Marchewka <AndyM@who.net> for reporting this.
-
- * ace/Dump.cpp: Moved the explicit template instantiation of
- ACE_Guard<ACE_Thread_Mutex> out of dump and put it into
- Synch.cpp, where it's with the other instantiations.
-
-Fri Feb 26 23:58:46 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.{h,i,cpp}:
- Added some read- and write-pointer alignment
- functions, as proposed by Carlos. Also deleted some
- ACE_OutputCDR members that weren't being used.
- Checked the build on NT and suncc. Must come up with
- some kind of test for these new functions.
-
-Fri Feb 26 21:56:05 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: moved ACE_COMPONENTS to after include
- of wrapper_macros.GNU, so that users can set it in
- their platform_macros.GNU. Also, added ACE_LACKS_ACE_OTHER
- to CFLAGS if Other ACE_COMPONENT is not built.
-
-Fri Feb 26 17:48:32 1999 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_hpux_aCC.GNU: Added OCFLAGS
- value for optimize=1 builds; added support for distrib=1
- builds to build for off-site distribution.
-
-Fri Feb 26 12:38:00 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp: added #include "ace/Thread_Manager.h" on
- WIN32, for ACE_Thread_Descriptor declaration. Thanks
- to Barry Hoggard <hoggard@cfx.com> for reporting this.
-
- * ace/Managed_Object.h: fixed comments in description.
-
-Fri Feb 26 11:56:08 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Log_Priority.h (ACE_Log_Priority): Removed all references to
- ACE_HAS_BROKEN_ENUMS since it has been deprecated (see David's
- ChangeLog entries from Feb 5).
-
-Fri Feb 26 11:09:47 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.i (sema_destroy): ACE_OSCALL and ACE_OSCALL_RETURN macro
- calls for sem_destroy, sem_unlink and sem_close had too few
- arguments. Added the missing arguments for the macros.
-
-Fri Feb 26 10:59:45 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/WFMO_Reactor/test_talker.cpp (main): Fixed to
- use the new proactor interface.
-
-Thu Feb 25 22:17:58 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (spa, for VxWorks only): updated comment about
- ::sp () default values, and added comments for each argument
- to ::taskSpawn (). Thanks to Tad Jarosinski <tadj@qualcomm.com>
- for asking about spa ().
-
-Thu Feb 25 20:10:06 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Synch.h:
- * ace/Synch.i:
- * ace/Synch_T.h:
-
- Added an ACE_Null_Semaphore class. Thanks to Irfan for his guidance
- on this. Also fixed ACE_SYNCH_SEMAPHORE to be ACE_Null_Semaphore
- when ACE is built without thread support.
-
-Thu Feb 25 18:37:27 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor (cancel_wakeup and masks_ops): Fixed the
- cancel_wakeup() method. It was doing too much, i.e., if the
- masks were reduced to null, it was removing the event handler
- entry. The new version behaves more like the Select Reactor in
- that it simply plays with the masks without removing the event
- handler.
-
- Also, implemented the mask_ops() operation.
-
- Thanks to Douglas C. Schmidt <schmidt@cs.wustl.edu> and Zoran
- Ivanovic <zorani@pathcom.com> for helping in pinpointing the
- problem.
-
- * ace/Service_Config.cpp (fini_svcs and close): Since the reactor
- and proactor singletons potentially call user code (in
- handle_close()), we must shut them down *before* the log msg is
- destroyed. Therefore, moved the close_singletons() call from
- close() to fini_svcs().
-
- * ace/Select_Reactor_Base.cpp (bit_ops): Since we return the old
- masks everytime, find the old reactor masks at the start of the
- method. This automatically does the work of the GET_MASK
- operation.
-
- * ace/Proactor.cpp: Added #include "ace/Object_Manager.h"
-
- * examples/Reactor/WFMO_Reactor/test_prerun_state_changes.cpp:
- handle_close() was getting called twice; changed code to prevent
- double deletion.
-
- * examples/Reactor/WFMO_Reactor/test_handle_close.cpp: Added the
- ability to cancel reads, change masks, and check for existing
- reactor masks.
-
-Thu Feb 25 17:35:10 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/DLL_Test.cpp:
- Changed the OBJ_SUFFIX to ".so" as on Linux the .o file cannot
- be a shared object. Also the OBJ_PREFIX is now "./lib" for
- non-Win32 platforms.
- * tests/Makefile:
- Additional option DLL_TEST added so that a .so can be produced
- for DLL_Test.
- * tests/Makefile.DLL:
- This is the makefile which produces libDLL_Test.so for DLL_Test.
-
-Wed Feb 24 23:47:22 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_proactor.cpp:
- * ace/WIN32_Asynch_IO.h:
- * ace/Proactor.cpp:
- * ace/WIN32_Proactor.cpp:
- * ace/Proactor.h:
- * ace/Proactor_Impl.h:
- * ace/POSIX_Proactor.h:
- Changed the return values of the <ACE_Proactor::handle_events> API to
- return -1 on error, 0 on timeout, 1 on success. This has been done so
- that it looks like the <ACE_Reactor::handle_events>. Previously
- <ACE_Proactor::handle_events> was returning -1 on error, 0 on success
- and 0 on timeout also.
-
- Fixed the <ACE_POSIX_AIOCB_Proactor::handle_events> and
- <ACE_POSIX_SIG_Proactor::handle_events> to do indefinite blocking when
- ACE_INFINITE is passed. <sigwaitinfo> is used instead of
- <sigtimedwait>.
-
- Renamed the <ACE_AIO_Accept_Handler> class to more appropriate
- <ACE_Notify_Pipe_Manager>.
-
-Wed Feb 24 22:08:50 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Fixed all the sem_* calls so that they no longer use
- the ACE_ADAPT_RETVAL() macro, which was broken since these calls
- all return -1 on failure. Thanks to John E. Bossom
- <John.Bossom@cognos.com> for reporting this.
-
-Wed Feb 24 17:40:49 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/combine:
- * docs/tutorials/colorize:
- A few enhancements to make the colorization better. Also, when
- #include "ace/something.h" is seen by the colorizer, it will
- create a link to ../../../ace/something.h. That should give
- direct links from the tutorial pages to the ACE headers.
-
-Wed Feb 24 16:56:51 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/017/barrier2.cpp: Added this to show how you can
- change the thread count while threads are still active.
-
- * docs/tutorials/017/*.html: Regenerated due to the new file.
-
- * docs/tutorials/018/*.html: Added Kirthika's abstract &
- regenerated.
-
- * docs/tutorials/018/token.cpp: Typo in the comments...
-
-Wed Feb 24 14:57:10 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ASYS_ONLY_WIDE_STRING): New UNICODE macros to convert
- char* to wchar* when UNICODE is defined but not on CE.
-
- * ace/Service_Config.cpp (parse_args): Convert getopt.optarg using
- ASYS_ONLY_WIDE_STRING.
-
-Wed Feb 24 13:54:15 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-minimal.h: changed #include protection to
- ACE_CONFIG_MINIMAL_H, so that this config can be #included
- by others.
-
- * ace/OS.{h,cpp},Thread_Manager.h: moved ACE_Thread_Control and
- ACE_Thread_Exit class definitions from Thread_Manager.h to OS.h,
- so that Task.h no longer needs to be #included by OS.cpp.
-
- * ace/OS.cpp: protected #include of Containers_T.h with
- defined (ACE_WIN32) || defined (ACE_HAS_TSS_EMULATION).
-
-Wed Feb 24 05:30:59 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Queue_T.i (dequeue): Replaced the improper
- self-recursive call to dequeue() with dequeue_head(). Thanks to
- Marc Engel <engelm@tlse.sofreavia.fr> for reporting this.
-
-Tue Feb 23 20:58:17 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Make sure to do the right thang if we're compiling the
- ACE recursive thread mutexes on platforms that lack threading.
-
- * ace/Service_Object: Added a new ACE_Service_Object constructor
- that takes an ACE_Reactor * and passes this down to the
- ACE_Event_Handler base class.
-
- * ace/Event_Handler: Added a new ACE_Event_Handler constructor
- that takes an ACE_Reactor * and an int priority that default to
- the right values.
-
-Tue Feb 23 21:53:32 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h,README: added ACE_HAS_MINIMAL_ACE_OS support.
-
- * ace/config-minimal.h: added this config file. It defines
- ACE_HAS_MINIMAL_ACE_OS. It is designed to build only
- the minimal ACE_OS adaptation layer.
-
-Tue Feb 23 20:28:45 1999 Marina Spivak <marina@cs.wustl.edu>
-
- * ace/SString.{h,i,cpp}: Added a private member <buf_len_> to the
- ACE_CString class to keep track of the size of data buffer, and
- avoid unnecessary memory reallocations. Updated class methods
- to use buf_len_.
-
-Tue Feb 23 19:54:55 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/POSIX_Asynch_IO.h:
- * ace/POSIX_Asynch_IO.cpp:
- Fixed the potential dominance warnings in POSIX
- implementation. Updated the documentation.
-
-Tue Feb 23 18:11:11 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * examples/DLL/DLL.dsw:
- examples/DLL/Main.dsp:
- examples/DLL/Newsweek.dsp:
- examples/DLL/Today.dsp:
- Added extra include and linker options to the projects.
-
- * tests/DLL_Test:
- Added OBJ_PREFIX to cater to the problem which arose due to the fact
- that the .o is produced under the .obj directory on SunOS.
-
- * tests/run_tests.sh:
- tests/run_tests.bat:
- Made an entry for DLL_Test.
-
-Tue Feb 23 16:54:33 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (recursive_mutex_trylock and recursive_mutex_lock):
- Removed the "abandoned" versions of these routines. Abandoned
- mutexes are only supported for process mutexes, but not for
- thread mutexes.
-
-Tue Feb 23 15:50:40 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * ace/Proactor.cpp:
- * ace/Proactor.h:
- * ace/Proactor_Impl.h:
- * ace/POSIX_Proactor.h:
- * ace/POSIX_Proactor.cpp:
- * ace/POSIX_Asynch_IO.h:
- * ace/POSIX_Asynch_IO.cpp:
- * ace/WIN32_Proactor.cpp:
- Implemented <post_completion> for POSIX platforms. Thanks to Irfan
- for the cool design. This API has been changed a little bit for
- portability. <post_completion> API now exists at
- <ACE_Asynch_Result_Impl> class. To post completions, users will have
- to get hold of an <ACE_Asynch_Result_Impl> class (either get it from
- the predefined factory methods at the Proactor or derive from
- <ACE_WIN32_Asynch_Result> or <ACE_POSIX_Asynch_Result>, then call
- <post_completion> on it passing in the <Proactor_Impl *> which can
- be got through <implementation> method in the <ACE_Proactor>.
- The need for RTTI has been avioded in this design.
-
-Tue Feb 23 15:19:33 1999 Steve Huston <shuston@riverace.com>
-
- * ace/NT_Service.(h cpp): Added two new methods:
- state (DWORD *, ACE_Time_Value * = 0) as an alternate way to get the
- service's state, with definite indication of error. Also changed
- comments on the other state() method to clarify the return value.
- test_access (DWORD) tests caller's access to the service.
- Thanks to Martin Krumpolec <krumpo@pobox.sk> for these ideas and
- suggestions!
-
-Tue Feb 23 14:12:52 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Active_Map_Manager_T.h (npos): Added a new static member
- function that returns a key that cannot be found in the map.
- Thanks to Fernando D. Mato Mira <matomira@acm.org> for
- suggesting this.
-
-Tue Feb 23 12:15:09 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Svc_Conf.y:
- * ace/Svc_Conf_y.cpp:
- * ace/Parse_Node.cpp (symbol):
- * ace/OS.cpp (fork_exec):
- * ace/INET_Addr.cpp (ACE_INET_Addr): More Unicode fixes.
-
-Tue Feb 23 12:00:21 1999 Steve Huston <shuston@riverace.com>
-
- * examples/NT_Service/main.cpp: Allow -i option without a value, and
- default to AUTO_START. Also, added a README file to explain how to
- use the program. Thanks to Zoran Ivanovic <zorani@pathcom.com> for
- the change and the README file!
-
-Mon Feb 22 22:03:47 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/auto_compile_win32.pl: Perl script for compiling all the
- million different config. combination on Win32. Hey, it also
- works on Alpha. Thanks to Darrell Brunsch for testing it on
- Alpha/NT.
-
- * ace/ace_{dll,lib}.dsp: Fixed broken project settings.
-
-Mon Feb 22 21:56:27 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Sched_Params.cpp: removed #include of ACE.h because it's
- not necessary.
-
- * ace/Makefile: added ACE_COMPONENTS default definition.
- Moved Sched_Params from THREADS_FILES to OS_FILES because
- OS.cpp needs it. It only contributes 172 bytes to libACE
- on VxWorks and 248 on LynxOS.
-
-Sun Feb 21 18:52:17 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.23 released.
-
-Sun Feb 21 08:46:09 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (recursive_mutex_{init,lock,trylock}: added some
- ACE_UNUSED_ARGS.
-
- * ace/OS.{i,cpp} (cond_*): uninlined the ACE_OS:cond_* function
- versions with ACE_LACKS_COND_T. Most are too big to be
- good candidates for inlining. And the others cause use-before-
- definition problems in OS.i.
-
-Sun Feb 21 00:17:58 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * websvcs/lib/URL_Addr.i: Can now copy null Addrs. Also added
- hash function implementation.
-
- * websvcs/lib URL_Addr.h: Added hash function.
-
- * websvcs/lib/URL_Addr.cpp: Fixed a bug with
- ACE_HTTP_Addr::create_relative_address and urls beginning with
- "/". It used to copy the first '/', which wasn't needed.
-
-Sat Feb 20 15:39:16 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp},Object_Manager.{h,cpp}: changed ACE_OS::exit ()
- to call an exit hook that is registered by the ACE_Object_Manager,
- instead of directly calling ACE_Object_Manager::fini ().
-
- * ace/OS.i (thr_self): moved definitions to before first use.
-
-Sat Feb 20 11:50:30 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.i (thr_equal): Moved the body of ACE_OS::thr_equal before
- recursive_mutex methods to avoid "function redefined as inline"
- problem. Thanks to David Levine for reporting this.
-
-Sat Feb 20 09:05:20 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.cpp: Changed the ACE_static_cast() in ACE_OS_Wstring to
- first use an ACE_const_cast(). Thanks to Andy Gokhale for
- reporting this.
-
-Sat Feb 20 02:53:38 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_OS_WString): Need to add a statis cast when
- converting from wchar to char to eliminate a warning from Win98.
-
- * ace/config-win32-common.h: Do not check for library type on CE.
-
- * ace/config-WinCE.h: Defined ACE_HAS_WINCE as 1.
-
-Fri Feb 19 22:54:18 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- Fixed the return types for ACE_OS_WString and ACE_OS_CString
- assignment operators, even though they are not defined they
- should be declared to return something, otherwise egcs give us a
- ton of warnings.
-
-Fri Feb 19 21:02:49 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-win32-common.h: #define'd ACE_HAS_RECURSIVE_MUTEXES
- for Win32.
-
- * ace/OS.cpp: Removed the SString.h dependency in OS.cpp!
-
-Fri Feb 19 21:44:31 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.i: Was using two many arguments to thread_mutex_lock ()
- and ACE_OS::thread_mutex_trylock ().
-
- * ace/Synch.i: Typo in comment
-
-Fri Feb 19 18:18:13 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.{h,i,cpp}: Added ACE_OS_WString and ACE_OS_CString which
- should only be used within ACE_OS to perform conversion between
- wchar strings and char string.
- Changed the wide/multibyte conversion macros to use
- ACE_OS_?String classes and removed dependencies to Auto_Ptr.h
- and SString.h.
-
- * ace/config-win32-common.h: Removed checked for (_DLL) if
- ACE_HAS_DLL = 0. Otherwise, the static build won't compile.
-
- * ace/Token_Manager.cpp (release_token):
- * ace/Service_Manager.cpp (list_services): Changed
- ASYS_MULTIBYTE_STRING to ASYS_ONLY_MULTIBYTE_STRING. Because
- the new conversion classes have stronger type checking, these
- errors weren't found until now.
-
-Fri Feb 19 17:01:08 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: moved ACE from OS_FILES to UTILS_FILES.
-
-Fri Feb 19 15:44:23 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS,
- ace/Synch: Moved the implementation of the
- ACE_Recursive_Thread_Mutex from the Synch.* files to
- the OS.* files in order to reduce coupling in OS.* and
- other parts of ACE.
-
-Fri Feb 19 12:36:43 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.i:
- Fixed missing ACE_INLINE for ACE_OS::strenvdup()
-
-Fri Feb 19 11:35:57 1999 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: Added new option
- "distrib". If you do a "make distrib=1" the -R options won't be
- given when linking, which produces dynamic load records requiring
- objects/libraries in standard places, or use of LD_LIBRARY_PATH.
- The default is distrib=0, which is the existing behavior.
-
-Fri Feb 19 11:22:48 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (open): Don't call CreateFileA with FILE_SHARE_DELETE
- when compiled on Win95 because it doesn't support the flag. The
- implication of this change is that unlink before close will not
- work on Win95. So programs that are targeted to both NT and
- Win95 cannot depend on it. Thanks to Rod Joseph
- <rodjoseph@adt.com> for reporting the bug.
-
-Thu Feb 18 21:10:45 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.cpp (string_to_argv): We no longer have to special case
- for WinCE since this logic has been moved into
- ACE_OS::strenvdup().
-
- * ace/ACE.cpp: Implemented ACE::strenvdup() using
- ACE_OS::strenvdup().
-
- * ace/OS: Move the implementation of strenvdup() from ACE to
- ACE_OS to remove another dependency from the OS wrappers.
-
- * ace/ARGV.cpp: Rewrote the ACE_ARGV::string_to_argv() and
- ACE_ARGV::argv_to_string() methods to use the new
- ACE_OS::string_to_argv() and ACE_OS::argv_to_string().
-
- * ace/OS.h: Added string_to_argv() and argv_to_string() methods to
- ACE_OS to remove the dependency on ACE_ARGV.
-
-Thu Feb 18 19:21:03 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/005/client_handler.cpp: Replaced the leading '_'
- in the open() method so that we can cast _acceptor to acceptor.
-
-Thu Feb 18 14:12:28 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * netsvcs/clients/Naming/Client/svc.conf: Changed to start up
- ACE_Naming_Context as dynamic service. Thanks to Darren
- Whobrey <whobrey@fecit.co.uk> for reporting this problem.
-
- * ace/Name_Proxy.cpp (open): The timeout value was set upp
- ACE_Time_Value::zero accidentally when we want blocking
- connect. Thanks to Darren Whobrey <whobrey@fecit.co.uk> for
- reporting the bug.
-
- * ace/CDR_Stream.{h,i} (ACE_InputCDR::do_byte_swap): Added
- accessor function for Flick.
-
- * ace/CORBA_macros.h (ACE_THROW_INT): This should return a new
- instance of the exception. Thanks to Andy for pointing this
- out.
-
-Wed Feb 17 16:40:56 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_NEW_THROW_EX): A new ACE_NEW_THROW macro which
- makes ACE_NEW_THROW_EX behave like a exception-throwing
- function. I.e., you need to follow ACE_NEW_THOW_EX with
- appropriate ACE_CHECK* macros. The use of ACE_NEW_THROW,
- ACE_NEW_THROW_RETURN, ACE_NEW_TRY_THROW are deprecated.
-
- * docs/exceptions.html: Added documentation for
- ACE_DECLARE_NEW_CORBA_ENV.
-
- * ace/config-WinCE.h: Automatically define ACE_HAS_WINCE if it is
- not already defined.
-
- * ace/Synch.cpp: I had to shuffle the location of .i file around
- to avoid a warning from SH compiler for CE.
-
- * ace/config-win32-common.h: Disabled checking for DLL run-time,
- WIN32, and multi-threaded run-time on Windows CE.
-
- * ace/CORBA_macros.h (ACE_DECLARE_NEW_CORBA_ENV): Added this macro
- for declaring a new CORBA_Environment called ACE_TRY_ENV.
- ACE_TRY_NEW_ENV should now be avoided because it won't work if
- multiple try blocks are needed in the top-most functions.
- Instead, you can use the new macro to define the environment
- variable and use ACE_TRY/ACE_TRY_EX as usually. This is even
- more intuitive than ACE_TRY_NEW_ENV. ;) Thanks to Andy for
- reporting the problem.
-
-Wed Feb 17 10:44:29 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * examples/Reactor/Proactor/test_proactor.dsp:
- * examples/Reactor/Proactor/test_proactor.cpp:
- * examples/Reactor/Proactor/Makefile:
- rtagged these files with "new_proactor"
-
-Tue Feb 16 17:08:53 1999 Steve Huston <shuston@riverace.com>
-
- * examples/ASX/Event_Server/Transceiver: Moved Event_Transceiver
- class definition to new file, transceiver.h, to build ok on AIX (P15)
- and fixed core dump if ctor fails to connect.
-
- * examples/Connection/misc: Moved some class definitions from
- test_upipe.cpp to new file test_upipe.h to build ok on AIX (P17).
- Same thing with Connection_Handler - new file Connection_Handler.h.
-
- * examples/Connection/misc/Makefile: Clean out tempinc directory
- between program compiles so AIX xlC doesn't freak out.
-
-Tue Feb 16 16:42:23 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CORBA_macros.h (ACE_PRINT_EXCEPTION): A new macro that deal
- with printing out the exception for debugging. Thanks to Lothar
- Werzinger <lwerzinger@krones.de> for suggesting this.
-
- * docs/exceptions.html: Added documentation for the new macro
- ACE_PRINT_EXCEPTION. Since there's no portable way to print out
- the content of a CORBA_Exception, we use this macro to deal with
- differences among various ORB implementations. This macro is
- user definable.
-
- Thanks to Eric Covington <eric@nowsol.com> for figuring out the
- following.
-
- * ace/ace_ce_dll.dsp: Added Functor.cpp and Message_Queue.cpp.
-
- * ace/High_Res_Timer.cpp (dump): Fixed Unicode problem.
-
- * ace/OS.i (truncate): WinCE does not have char* version of
- truncate.
-
-Tue Feb 16 00:39:35 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * ace/ace_dll.dsp:
- * examples/Reactor/Proactor/test_proactor.dsp:
- * examples/Reactor/Proactor/test_proactor.cpp:
- Updated the files.
- * ace/WIN32_Asynch_IO.h:
- * ace/WIN32_Asynch_IO.cpp:
- * ace/WIN32_Asynch_IO.i:
- Added the files
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Updated these files
- * examples/Reactor/Proactor/Makefile:
- New make file which also compiles the test_aiosig_ace.cpp
- program.
- * ace/POSIX_Asynch_IO.i:
- Added the file.
-
-
- rTagged the ACE_wrappers repository with <before_proactor>
- After the following changes rtagged the repository with
- <after_proactor>
-
- * ace/
- Proactor.h
- Asynch_IO.cpp
- Asynch_IO.h
- Makefile
- Proactor.cpp
- Proactor.h
- config-lynxos.h
- config-sunos5.6.h
- config-sunos5.7.h
- POSIX_Asynch_IO.{h,CPP}
- POSIX_Proactor.{h,cpp}
- WIN32_Asynch_IO.{h,cpp}
- Asynch_IO_Impl.{h,cpp,i}
- Proactor_Impl.h
- Applied Bridge pattern to the POSIX implementation of the Proactor
- code. ACE_POSIX_AIOCB_Proactor works fine on Solaris
- 2.6. ACE_POSIX_SIG_Proactor works on LynxOS. Take a look at the tests
- at the $(ACE_ROOT)/examples/Reactor/Proactor/ and the README.
-
- * tests/
- Aio_Platform_Test.cpp
- *examples/Reactor/Proactor/:
- test_proactor.cpp
- test_aiocb.cpp
- test_aiosig.cpp
- test_aiosig_ace.cpp
- README
- Test files for testing out the platforms.
-
-Mon Feb 15 13:17:15 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.22 released.
-
-Sun Feb 14 15:25:27 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ACE-configuration.txt:
- * ACE.ifnames:
- * acconfig.h:
- * ace-config.in:
- * ace-diff-config.in:
- * acinclude.m4:
- * aclocal.m4:
- * config.guess:
- * config.sub:
- * configure:
- * configure.in:
- * install-sh:
- * libtool:
- * ltconfig:
- * ltmain.sh:
- * missing:
- * mkinstalldirs:
- * ace/config.h.in:
-
- Started to introduce the work done by the ACE Configuration
- Project into the official ACE distribution.
-
- To help speed development, the work being done by the ACE
- Configuration Project is being slowly introduced into the official
- ACE distribution. Some of the functionality in the work created by
- the ACE Configuration Project has been removed so that ACE may be
- built in the usual fashion. Once the ACE Configuration Project
- work stabilizes on more platforms that removed functionality may be
- added to ACE.
-
- Currently the configure script contains most of the tests that are
- necessary to properly configure ACE on most platforms. However,
- there are still some autoconf tests that are missing. As such, you
- may encounter and most likely will have compilation problems.
-
- The `configure' script that is currently being used has been
- modified from the ACE Configuration Project's `configure' script to
- prevent makefiles from being automatically generated since there are
- still some issues that must be addressed before automatically
- generated makefiles are incorporated into the official ACE
- distribution.
-
-Sun Feb 14 14:09:11 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/015/server.cpp (main): Force the singleton to use
- the Select Reactor instead of the OS-default. This should fix the
- problem this tutorial has on Win32 due to blocking vs non-blocking
- socket configuration.
-
- * docs/tutorials/015/Protocol_Task.h : Removed the ability to
- activate this task. The code is now a little simpler and less
- likely to behave in unpredicatable ways.
-
- * docs/tutorials/015/* : A few typos fixed but mostly fallout from
- removing the ability to activate the Protocol_Task.
-
- * docs/tutorials/016/page01.html : Added Kirthika's abstract.
-
- * docs/tutorials/016/condition.cpp : Made max_threads_ a
- non-static member variable that is set by open().
-
- * docs/tutorials/017/page01.html : Added Kirthika's abstract.
-
-Sun Feb 14 12:47:03 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
- Minor cosmetic changes, mostly trailing spaces.
-
-Sat Feb 13 22:06:17 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- The following changes are based on the patch Eric Covington
- <eric@nowsol.com> submitted. Thanks very much to Eric for
- bringing ACE/CE up-to-date.
-
- * ace/ace_ce_dll.dsp: Updated.
-
- * ace/OS.cpp: (open): CE doesn't support opening files with
- attribute FILE_SHARE_DELETE.
-
- * ace/OS.i (abort): CE doesn't support abort.
-
- * ace/Stats.cpp (print_summary): CE doesn't support strerror.
-
- * ace/Stats.i (dump): Changed to use ACE_DEBUG.
-
- * tests/Thread_Manager_Test.cpp (main):
- * ace/tests/SOCK_Connector_Test.cpp (find_another_host):
- * ace/Log_Msg.cpp (log):
- * ace/INET_Addr.cpp (addr_to_string): Fixed Unicode problems.
-
-Fri Feb 12 16:14:47 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Remote_Tokens.cpp: Replaced the typedef for
- ACE_TSS_CONNECTION_MUTEX with #define ACE_TSS_CONNECTION_MUTEX.
- Thanks to Arturo for reporting this.
-
-Fri Feb 12 18:41:22 1999 Steve Huston <shuston@riverace.com>
-
- * ace/SString.cpp: Added "ace/" to #include "Auto_Ptr.h" to conform
- to conding guidelines.
-
-Fri Feb 12 17:16:17 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.vxworks: commented out Message_Queue_Test and
- Timeprobe_Test, because they lockup the machine. And,
- fixed string length of DLL_Test printout.
-
-Fri Feb 12 17:06:30 1999 Arturo Montes <mitosys@colomsat.com.co>
-
- * ace/config-sco-5.0.0-CC-fsu-pthread.h: removed this config
- file, because it's not used.
-
-Fri Feb 12 16:36:55 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/SOCK_IO.{h,i,cpp} (send,recv): Added back the iovec version
- of send/recv back to maintain backward compatibility. Thanks to
- Steve for pointing this out.
-
-Fri Feb 12 15:37:10 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: split FILES up into subsets. See
- docs/ACE-subsets.html for more information.
-
-Fri Feb 12 12:31:29 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Makefile: Removed blank line that was added when troubleshooting
- the cvs log problem. The extra line cause Digital Unix's make to
- complain about a missing separator.
-
-Fri Feb 12 09:19:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: added ACE_HAS_STANDARD_CPP_LIBRARY and
- ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB #defines with Sun CC 5.0.
- Thanks to Diethard Ohrt <Diethard.Ohrt@siemens.at> for
- providing these.
-
-Thu Feb 11 15:05:42 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ACE-INSTALL.html: Reworded the first step of the Windows
- NT installation to be a bit clearer.
-
-Thu Feb 11 14:30:35 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/ace_dll.dsp: Fixed Alpha Configuration.
-
-Thu Feb 11 03:48:50 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CORBA_macros.h: Added #pragma once and ACE_CORBA_MACROS_H to
- prevent duplicate inclusion of this file.
-
- Added a new macro ACE_ANY_EXCEPTION to denote the name of the
- CORBA exception caught by the ACE_CATCHANY. Thanks to Lothar
- Werzinger <lwerzinger@krones.de> for suggesting this.
-
-Wed Feb 10 23:01:16 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/config-win32-common.h: Made a better effort at finding out
- if the files are compiled against the correct run-time
- libraries. Now _DLL is checked to see if it is defined for
- ACE_HAS_DLL != 0 builds, and if it is not defined for static
- builds.
-
- This should help diagnose the problem of not using (Debug)
- Multithreaded DLL run-time libraries in clients that use DLL
- versions of ace (one symptom of this mistake is errno not
- working correctly because of one copy being defined in the DLL
- and one in the program itself).
-
-Wed Feb 10 22:19:33 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/014/stream.cpp : Removed the __LINE__ displays.
- * docs/tutorials/014/page01.html : Added Kirthika's abstract
-
- * docs/tutorials/015/page01.html : Added Kirthika's abstract
- * docs/tutorials/015/page12.html : Oops... Wrong intro text.
- * docs/tutorials/015/Protocol_Stream.cpp : Typos fixed
- * docs/tutorials/015/Protocol_Task.cpp : Typos fixed
-
-Wed Feb 10 15:04:26 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Makefile: added Pair_T.cpp and Template_Instantiations.cpp
- to the TEMPLATE_FILES list/variable. They were missing.
- * tests/Conn_Test.cpp (spawn_processes): initialized
- pid_t *children_ptr to zero to prevent "uninitialized"
- warnings from egcs 1.1.1.
-
-Wed Feb 10 14:16:25 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * tests/Message_Queue_Test.cpp (performance_test): initialized
- ACE_Message_Block **send_block to zero to prevent "uninitialized"
- warnings from egcs 1.1.1.
-
-Wed Feb 10 14:02:46 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/ACE.cpp (get_ip_interfaces): initialized struct ifreq * ifs
- to zero to prevent "uninitialized" warnings from egcs 1.1.1.
-
-Wed Feb 10 10:53:59 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * examples/IPC_SAP/TLI_SAP/ftp-server.cpp:
- Fixed several minor syntax errors.
-
-Tue Feb 09 16:54:10 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp:
- Put the 'XXX_DISABLE_SWAP_ON_READ' code back into the
- ACE_INputCDR methods read_array(), read_2(), read_4(),
- read_8() and read_16(). I didn't realize at first how
- crucial that is to the Boeing folks. Thanks to Carlos
- for bringing this to my attention.
-
-Tue Feb 09 16:07:32 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Synch.{h,i,cpp}: Removed classes ACE_Null_Mutex_Guard and
- ACE_Thread_Mutex_Guard since there doesn't seem any need for
- them any more. They should be replaced by
- ACE_Guard<ACE_Null_Mutex> and ACE_Guard<ACE_Thread_Mutex>. If
- by any chance you still need to use them, add
- ACE_USES_OBSOLETE_GUARD_CLASSES into your config.h file.
-
- * ace/Local_Tokens.h: Replaced ACE_Null_Mutex_Guard and
- ACE_Thread_Mutex_Guard with ACE_Guard<ACE_Null_Mutex> and
- ACE_Guard<ACE_Thread_Mutex>.
-
-Tue Feb 9 16:12:42 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/{010|011}/task.{h|cpp} : barrier_ doesn't need to be a
- pointer since Doug moved n_threads to the ctor. Minor typos
- corrected also.
-
- * docs/tutorials/010/message_queue.cpp : Typos...
-
- * docs/tutorials/002/server.cpp: Added call to notify() in the
- signal handler so that ^C will exit as expected.
-
-Tue Feb 09 13:57:23 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/DLList_Test.cpp (main): The test should log the result to
- DLList_Test.log, not ACE_DLList_Test.log.
-
- * tests/run_tests.{sh,vxworks,psosim}: Added DLList_Test.
-
- * tests/run_tests.bat: Removed DLL_Test.
-
- * ace/ACE.cpp (ldfind): Win32 only. Made sure we always look for
- the DLL at the current directory first on Win32 which is the
- default behavior on Win32.
-
- * ace/ace_{dll,lib}.dsp: Removed entries of Service_Record.{h,i}.
- Thanks to David for noticing this.
-
-Tue Feb 09 10:21:33 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Service_Types.{i,cpp},README: removed obsolete references to
- Service_Record.
-
- * tests/MT_Reactor_Timer_Test.cpp (main): added printout with numbers
- of expected and actual events, if result is not ACE_MAX_TIMERS + 2
-
- * include/makeinclude/wrapper_macros.GNU: added BUILD line with both
- shared_libs and static_libs enabled, so that individual Makefiles
- don't need a BUILD line.
-
- * docs/ACE-subsets.html: updated to reflect current ACE status.
-
-Mon Feb 08 14:32:43 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * docs/exceptions.html: Added guidelines of switching from TAO try
- macros to ACE try macros. Other cosmetic changes.
-
-Mon Feb 8 13:54:32 1999 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * docs/tutorials/011/task.cpp :
- In the open return this->activate (THR_NEW_LWP,
- this->n_threads_); was taking an udefined variable threads.
-
- * docs/tutorials/011/message_queue.cpp:
- Corrected Compilation error due to a typo (static misspelt as
- statuc!!!)
-
-Mon Feb 8 09:21:10 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Map_T.h,
- ace/Pair_T.h: Aded parens around the #pragma implementation file
- names so the AIX compiler would be happy. Thanks to Martin
- Krumpolec <krumpo@pobox.sk> for reporting this.
-
-Mon Feb 08 00:39:49 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.21 released.
-
-Sun Feb 7 22:48:01 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CORBA_macros.h (ACE_THROW_RETURN): The second macro argument
- was missing.
-
-Sun Feb 7 22:32:21 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/CORBA_macros.h: It wasn't clear why the ACE_THROW_RETURN
- macro for non-NT platforms wasn't taking a second RETV
- parameter. I've fixed this, however.
-
-Sun Feb 07 13:55:15 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: added
- comment about possibly needing -compat=4 with Sun CC 5.0.
- Thanks to Sush Bankapura <Sush.Bankapura@sylantro.com> for
- reporting success with it.
-
-Sun Feb 7 00:43:32 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.cpp:
- Turns out that read_boolean_array was declared, but
- the body was missing (?).
-
-Sat Feb 6 22:38:40 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ACE_wrappers/tests/CDR_Test.cpp:
- Changed #include file name to ace/CDR_Stream.h (the new
- source file name).
-
-Sat Feb 6 22:21:14 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.cpp:
- Fixed the write_boolean_array() method; it only needs a const
- array of booleans.
-
-Sat Feb 6 22:07:45 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR.{h,i,cpp}: Renamed these as...
- * ace/CDR_Stream.{h,i,cpp}: Mustn't have files with the
- same name (the TAO files) for the sake of some compilers.
- * Makefile:
- * ace_dll.dsp:
- Changed to reflect the renaming above.
-
-Sat Feb 6 20:30:51 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR.h:
- * ace/CDR.i:
- * ace/CDR.cpp:
- Fixed some indentation and style problems.
-
-Sat Feb 06 07:47:20 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/test_config.h (~ACE_Test_Output): wrapped use of
- cerr with #ifndef ACE_LACKS_IOSTREAM_TOTALLY.
-
-Sat Feb 06 02:41:07 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/Map_Test.cpp: The hell of explicit template instantiation.
- Someone please save me from these stupid compilers.
-
- * ace/Map: Broken g++ (2.7) has deformed my beautiful code based
- on typedefs and forced me to use their basic form. However,
- users should continue to use the typedefs provided as I do in
- the Map_Test.
-
-Fri Feb 05 21:57:24 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Map_T: Added a new Map mini framework to ACE. The classes
- in this mini framework allows the Map interface to be used
- without caring about the specific Map implementation being used.
- There is the class hierarchy of the framework:
-
- forwards
- ACE_Iterator --------> ACE_Iterator_Impl (abstract)
-
- ACE_Iterator_Impl is subclassed by:
-
- - ACE_Map_Impl_Iterator_Adapter<IMPLEMENTATION>
- - ACE_Active_Map_Manager_Iterator_Adapter
- - ACE_Hash_Map_Manager_Ex_Iterator_Adapter
- - ACE_Map_Manager_Iterator_Adapter
-
- forwards
- ACE_Reverse_Iterator --------> ACE_Reverse_Iterator_Impl (abstract)
-
- ACE_Reverse_Iterator_Impl is subclassed by:
-
- - ACE_Map_Impl_Reverse_Iterator_Adapter<IMPLEMENTATION>
- - ACE_Active_Map_Manager_Reverse_Iterator_Adapter
- - ACE_Hash_Map_Manager_Ex_Reverse_Iterator_Adapter
- - ACE_Map_Manager_Reverse_Iterator_Adapter
-
- ACE_Map is subclassed by:
-
- - ACE_Map_Impl<IMPLEMENTATION>
- - ACE_Active_Map_Manager_Adapter
- - ACE_Hash_Map_Manager_Ex_Adapter
- - ACE_Map_Manager_Adapter
-
- Also included in the framework is a Key Generator class and a
- Key Adapter class. The Key Generator class is used by some map
- adapters to generate keys since the maps they adapt do not
- generate keys. The Key Adapter class is used by the active map
- adapter to allow encoding and decoding of active keys into user
- keys.
-
- Note that the iterators use the bridge pattern while the map
- class uses an abstract base class based inheritance approach.
- The reason for this is that STL containers return the iterators
- by value. An abstract base class cannot be returned by value.
-
- An alternative design would be to add an abstract base class
- that the ACE maps would derive from. Unfortunately, this would
- break many things including the ability to add these maps to
- shared memory and explicit template instantiations.
-
- This mini framework would have been idle to apply the external
- polymorphism pattern. However, the ACE map classes are
- different enough that adaption was necessary. This turned out
- to be a blessing in disguise since I was able to add extra
- common functionality such as the key generator and key adapter
- to the map adapters. I did add the external polymorphic
- subclasses to the framework for future use.
-
- The classes in this framework are as close STL containers as I
- would dare to make them ;) Thanks to Carlos for helping design
- them.
-
- * tests/Map_Test: New test to illustrate and test the workings of
- the new ACE Map classes. There are two aspect to this test:
- (a) functionality testing includes testing the iterators and
- various operations, and (b) performance testing to compare the
- relative performance of the maps.
-
- * ace/Pair: Added new Pair class to ACE that holds instances of
- the template arguments. Also, added a Reference_Pair class that
- only hold references of the template arguments.
-
- * ace/Hash_Map_Manager_T.* (ACE_Hash_Map_Manager_Ex):
- * ace/Map_Manager.* (Map_Manager):
- Added new rebind() methods to make interface compatible with
- other maps. Also, fixed the constness of some functions.
-
- * ace/Hash_Map_Manager.h: Fixed order of inclusion of template
- code.
-
- * ace/Active_Map_Manager_T.h (ACE_Active_Map_Manager): Added new
- versions of bind, find, and unbind to reduce the number of data
- copies.
-
- * ace/Active_Map_Manager.h (ACE_Active_Map_Manager_Key): Added the
- ability for the active key to encode and decode into and out of
- a data stream. This relieves the developer from concerning
- herself about the internal structure of the active key.
-
- * ace/config-win32-common.h: Define WIN32 if not already defined.
-
- * tests/SString_Test.cpp: Added testing for substring creation and
- comparisons.
-
- * ace/OS.h (ACE_dynamic_cast_*_ptr and ACE_dynamic_cast_*_ref):
- Added new macros to handle casting of template class.
-
- * tests/test_config.h: Removed global KEY class that was not being
- used anymore anyway.
-
-Fri Feb 05 21:12:56 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.20 released.
-
-Fri Feb 05 12:02:31 1999 Steve Huston <shuston@riverace.com>
-
- * tests/run_tests.sh: Added SHLIB_PATH support for HP-UX. Fixed
- the LD_LIBRARY_PATH setting to work if there was no path set
- on entry to the script.
-
- * ace/config-hpux-9.x.h, config-hpux-(10,11).x-hpc++.h:
- Removed ACE_HAS_BROKEN_ENUMS. This affects the HP C++ compiler, not
- aC++. I made this change based on David's experience with the
- enums and Green Hills, below. If it causes any problems, let me
- know and I'll reset it.
-
-Fri Feb 05 10:11:18 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Priority.h: changed ENSURE_32_BITS to LM_ENSURE_32_BITS,
- and its value from 0xffffffff to 0x7fffffff. Green Hills 1.8.9
- properly complained that 0xffffffff doesn't fit into an int.
-
- * ace/config-sco-5.0.0-CC-fsu-pthread.h,config-sunos5.5.h,
- config-vxworks5.x.h: removed ACE_HAS_BROKEN_ENUMS, because
- it's not necessary with 0x7fffffff.
-
-Thu Feb 4 23:11:26 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * websvcs/lib/URL_Addr.h:
- * websvcs/lib/URL_Addr.i:
- Added operator= to the ACE_URL_Addr classes.
-
- * websvcs/lib/URL_Addr.cpp:
- Fixed minor memory allocation problem for invalid HTTP
- addresses.
- It removes './' when creating relative addresses.
-
-Wed Feb 03 21:50:09 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks5.x.h: added ACE_HAS_BROKEN_ENUMS with
- Green Hills, because it's needed with 1.8.9. And, added
- ACE_HAS_STANDARD_CPP_LIBRARY #define to 1, for Green Hills 1.8.9
- (with __STANDARD_CXX #defined) only, because it doesn't work with
- 1.8.8. Thanks to Jacob Jones <Jacob.J.Jones@notesmta.gd-is.com> for
- reporting these.
-
- * ace/config-sunos5.5.h: with Green Hills 1.8.9 (with
- __STANDARD_CXX #defined), added ACE_HAS_STANDARD_CPP_LIBRARY
- #define to 1.
-
-Wed Feb 03 14:57:21 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Thread_Manager.h (ACE_At_Thread_Exit[_Func]): Added
- ACE_Export keywords. Thanks to Terry Rosenbaum
- <Terry.Rosenbaum@Radiology.MSU.edu> for pointing this out.
-
- * ace/Service_Config.{h,i,cpp}: Added one more argument to open
- methods that allows ignoring the default svc.conf file. You can
- still open svc.conf files using the -f option.
-
-Wed Feb 03 10:12:14 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: fixed release_filter so that it doesn't put
- CVS files into the release.
-
- * ace/Object_Manager.h: updated comments to reflect that
- ACE_HAS_NONSTATIC_OBJECT_MANAGER is now #defined in
- several ace/config files, including that for Win32.
- Thanks to Dave Meyer <dmeyer@std.saic.com> for pointing
- that out.
-
-Wed Feb 3 09:30:11 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * websvcs/lib/URL_Addr.cpp:
- Fixed some memory leaks.
- HTTP_Addr::create_relative_address supports the #label syntax.
-
-Wed Feb 03 07:02:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/CDR_Test.cpp: commented out ACE_Auto_Basic_Array_Ptr<CDR:Char>
- explicit instantiation, because it's in ace/Memory_Pool.cpp.
-
-Tue Feb 2 21:35:21 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/007/client_handler.h:
- * docs/tutorials/007/thread_pool.h:
- A couple of syntax goofs. I'm surprised it compiled for anyone!
-
- * docs/tutorials/007/thread_pool.h:
- Changed ACE_Time_Value(0.25) to ACE_Time_Value(0,250000)
-
- * docs/tutorials/*/Makefile:
- Added '.depend' to the list of files removed by the CLEAN
- target. I shoulda' done this the other day.
-
-Tue Feb 2 20:02:22 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * bin/make_release: Added .gz to the list of binary file extensions.
-
-Tue Feb 2 19:28:46 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * docs/tutorials: ACE-ified the first 11 tutorials. I hope
- James still recognizes this stuff now ;-)
-
-Tue Feb 2 19:12:50 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/001/logger.h (class Logging_Handler):
- Incorporated Pradeep's suggestion to get rid of the memset() and
- use the recv() return value to drop in the null-termination.
-
-Tue Feb 2 14:19:30 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * websvcs/websvcs.dsw:
- * websvcs/lib/websvcs.dsw:
- * websvcs/lib/websvcs.dsp:
- * websvcs/tests/tests.dsw:
- * websvcs/tests/Test_URL_Addr.dsp:
- Added MSVC project files for the websvcs library.
-
- * websvcs/lib/URL_addr.cpp:
- Now correctly exports classes in DLLs.
-
-Tue Feb 2 12:48:34 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/CDR_Test.cpp:
- Changed the template type of the auto_ptr for char. We were
- getting a Purify FMR message on Unix.
-
-Tue Feb 2 12:27:13 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.cpp: Added an ACE_UNUSED_ARG for program_name for
- ACE::daemonize(). Thanks to David Levine for reporting this.
-
- * ace/OS.h: Generalized the WIF* macros so that they will be
- defined on any platform that lacks them, not just NT. Thanks to
- David Levine for reporting this.
-
-Tue Feb 02 08:58:32 1999 Steve Huston <shuston@riverace.com>
-
- * tests/MT_Reactor_Timer_Test.cpp: Moved definition of status outside
- of ACE_HAS_THREADS condition since it's used in either case. Thanks
- to Frederic Andres <andres@rd.nacsis.ac.jp> for this fix.
-
-Mon Feb 01 23:16:34 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.19 released.
-
-Mon Feb 01 22:06:40 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release (create_kit): fixed typo, bin_files
- instead of binfiles.
-
-Mon Feb 01 21:24:45 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.18 released.
-
-Mon Feb 1 21:02:26 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/ace_dll.dsp: Some template files were being compiled
- in the Release/Unicode/Alpha configs. This is now not the
- case.
-
-Mon Feb 1 13:49:11 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-linux-common.h:
- Added a definition for ACE_TIMER_SKEW, apparently it is only
- needed in multiple CPU machines (with SMP enabled); but it did
- solve the problems with MT_Reactor_Timer_Test.
-
-Mon Feb 01 13:08:11 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/CDR_Test.cpp:
- Used an auto_ptr to manage a string sent to string_read(). I
- had included the .h file for auto ptrs (Carlos corrected my
- typo, see below), but had never checked in the code using
- auto_ptr.
-
-Mon Feb 01 12:54:11 1999 Steve Huston <shuston@riverace.com>
-
- * ace/NT_Service.(h i): Some fixes provided by Martin Krumpolec
- <krumpo@pobox.sk> - thanks to Martin for these!
- - Supplied missing ctor for name/desc variant.
- - svc() method is not pure virtual any longer to prevent SCP-type
- applications from having to override it and never use it.
-
-Mon Feb 1 12:04:35 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * bin/make_release: Added zip and gif to the binary files in
- zips.
-
-Mon Feb 01 12:00:55 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: With CC 5.0, enabled explicit template
- instantiation and added ACE_LACKS_ACE_IOSTREAM. Early versions
- of CC 5.0 seem to have problems with automatic template
- instantiation and ACE_IOStream.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: added CC 5.0
- support to enable explicit template instantiation, and disable
- inlining by default.
-
- Thanks to Diethard Ohrt <Diethard.Ohrt@siemens.at> for confirming
- that above fixes allow ACE and TAO to build with CC 5.0.
-
- * include/makeinclude/platform_sunos5_{g++,ghs}.GNU: removed -lw
- from libs. It's not necessary, and apparently causes problems
- on Solaris 2.6, because libc now includes the code that was
- formerly in libw. Thanks to Steve Coleman <Steve.Coleman@jhuapl.edu>
- for reporting this.
-
-Mon Feb 1 10:41:09 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/CDR_Test.cpp:
- There was a typo in a included filename.
-
-Mon Feb 1 08:39:15 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Synch.h: Clarified that the ACE_Semaphore::acquire() is in
- absolute, rather than relative, time. Thanks to Jacques
- Salerian <Jacques.Salerian@era.ericsson.se> for reporting this.
-
-Sun Jan 31 20:10:23 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/OS.h:
- Just renamed the CDR byte order macros to something more
- reasonable.
-
-Sun Jan 31 18:19:45 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * docs/tutorials/Makefile: Now we can build the UNSHAR SHAR HTML
- right from the top-level. Thanks James!
-
- * tests/Process_Strategy_Test: Updated the test to use ACE::fork()
- and the new "avoid zombies" feature of ACE_Process_Strategy.
-
- * ace/ACE: Added a new version of fork() that can avoid creating
- zombies. Thanks to Garry Brother <gmbroth@romulus.ncsc.mil> for
- this code.
-
- * ace/Strategies_T: Changed the ACE_Process_Strategy so that
- programmers can designate to not create zombies. Thanks to
- Garry Brother <gmbroth@romulus.ncsc.mil> for this suggestion.
-
- * ace/ACE.cpp (daemonize): Only do a chdir if pathname != 0.
-
- * ace/ACE: Added a "program_name" argument to daemonize() so that
- we can set the program name.
-
- * docs/tutorials: Reformatted all the header files to conform
- to the ACE programming style.
-
-Sun Jan 31 16:09:55 1999 Jeff Parswons >parsons@cs.wustl.edu>
-
- * ACE_wrappers/tests/CDR_Test.cpp:
- Plugged a memory leak in a string read from the CDR stream.
- Thanks to Sangwoo Jin <swjinjin@sei.co.kr> for pointing this out.
-
- * ace/CDR.{h,i,cpp}:
- Changed the name of the "base" class holding the constants to
- 'CDR' from 'ACE_CDR'. In leveraging this code in the TAO cdr
- classes, I've discovered that there are many files that
- use these constants, so probably best to keep the original
- name. Also made minor changes to read_string, read_wstring,
- append_string and append_wstring to prevent a memeory leak
- if the operation fails.
-
-Sun Jan 31 11:58:32 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/{010|011|012|013|017}:
- In all of these, I'd overridden open() as open(int) to specify
- the number of threads in a thread-pool. Steve Huston pointed
- out that this causes grief with some compilers. I've changed
- all of these open(int) overrides to start(int) instead.
-
- * docs/tutorials/017/Barrier_i.cpp (threads):
- The thr_equal() call was changed to !thr_equal().
-
- * docs/tutorials/010/taks.cpp:
- Vishal recommended some extra commentation to make things a bit
- more clear WRT barrier synch.
-
- * docs/tutorials/013/page01.html:
- Added Kirthika's abstract.
-
-Sat Jan 30 16:03:23 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * websvcs/lib/URL_Addr.h:
- * websvcs/lib/URL_Addr.cpp:
- The HTTP address class can create an URL_Addr from a path
- relative to it. This is useful when interpreting an address
- inside an HTML document.
-
-Sat Jan 30 13:34:00 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Connection/non_blocking/test_sock_connector.cpp (main):
- Prevent the program from executing if compiled on non-NT Win32
- platform without Winsock2 installed. Thanks to Greg Harrison
- <harrisog@erinet.com> for reporting ths problem.
-
-1999-01-29 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Mem_Map.cpp (map_it): NT makes no claims about replacing
- previous mapping at the specified address. Therefore, I have
- added a new macro ACE_LACKS_AUTO_MMAP_REPLACEMENT which is
- defined if there is no system support for replacing any previous
- mappings. In this case, we unmap() before (potentially) mapping
- to the same location. ACE_LACKS_AUTO_MMAP_REPLACEMENT is
- defined on NT.
-
-Fri Jan 29 17:40:34 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * websvcs/lib/URL_Addr.h:
- * websvcs/lib/URL_Addr.cpp:
- We were not checking against nil strings in several places, also
- fixed some uninitialized members in the HTTP_Addr constructors.
-
- * bin/auto_compile:
- Added protection against simultaneous executions of the script;
- it checks for .disable file on the $LOGDIR directory, if present
- it does not execute; if not present it creates one; the file is
- deleted at program termination.
-
-Fri Jan 29 16:25:22 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-10.x-hpc++.h: Added ACE_HAS_GPERF.
- * apps/gperf/src/List_Node.cpp (ctor): Added ACE_const_cast to
- a char * initializer.
- * apps/gperf/src/Options.cpp: Fixed -j processing (typo).
-
- * docs/tutorials/017/barrier.cpp: Can't init a long with a thread ID.
- On HP-UX 10.20, it's a struct.
- * docs/tutorials/017/Barrier_i.cpp: Use ACE_OS::thr_equal to check
- equality of thread IDs.
-
- * docs/tutorials/019/server/cpp: Removed redefinition of char *s from
- 'for' loop. Works around a compiler issue, but isn't needed anyway.
-
- * include/makeinclude/platform_hpux_aCC.GNU: On HP-UX 10.20, suppress
- (future)error 667 and warning 495 to stop hearing about the problems
- with the system-supplied header files. The compiler still says
- there was 1 future error, but at least it's easy to scan the output
- for real errors now.
-
-Fri Jan 29 14:49:37 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/ACE.cpp:
- * ace/Basic_Types.h:
- * ace/INET_Addr.cpp:
- * ace/Memory_Pool.cpp:
- * ace/OS.cpp:
- * ace/OS.h:
- * ace/OS.i:
- * ace/SOCK_Dgram_Bcast.cpp:
- * ace/config-cray.h:
- * examples/IPC_SAP/SOCK_SAP/C-inserver.cpp:
- * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp:
- * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp:
- * include/makeinclude/platform_cray.GNU:
- * tests/Basic_Types_Test.cpp:
- * tests/Handle_Set_Test.cpp:
- * tests/Message_Queue_Test.cpp:
- * tests/SV_Shared_Memory_Test.cpp:
- * tests/run_tests.sh:
- Thanks to Doug Anderson <dla@home.com> for this port of ACE to
- Cray machines.
-
-Fri Jan 29 13:51:40 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Removed definition of ACE_Thread_State.
-
- * ace/Thread_Manager.*: Changed the ACE_Thread_State as a bunch of
- bit-masks so we don't overwrite the thread states accidentally.
- Thanks to Tom Dobridge <dobridge@persimmon.com> for reporting
- the bug.
-
-1999-01-28 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.cpp (open): this->close_i() must be
- called *before* the allocators are changed.
-
- * ace/Map_Manager.cpp (open): Close the old map (if any) before
- creating the new map. This also make open() reentrant. Thanks
- to Zoran Ivanovic <zorani@pathcom.com> for reporting this bug.
-
-Thu Jan 28 19:08:25 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Active_Map_Manager_T.h:
- Steve's change didn't make it, so I changed BASE to
- ACE_AMM_BASE, I don't know about the pragma.
-
-Thu Jan 28 16:43:17 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Active_Map_Manager_T.(h i): Renamed BASE to ACE_AMM_BASE - BASE
- conflicted with something in AIX xlC. Also fixed #pragma
- implementatation to work on xlC.
-
-Thu Jan 28 10:04:39 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.cpp:
- Reverted to version 4.2, thanks to Kirthika for helping find
- this one.
-
-Thu Jan 28 09:11:29 1999 Andreas Tobler <toa@pop.agri.ch>
-
- * ace/config-linuxppcr5.h: added this config file, for
- LinuxPPC R5 platforms.
-
-Thu Jan 28 08:55:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-mklinux.h: replaced ACE_HAS_SOCKLEN_T, removed
- __USE_XOPEN. Thanks to Andreas Tobler <toa@pop.agri.ch> for
- these clarifying this.
-
-Wed Jan 27 19:12:48 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/008/*:
- * docs/tutorials/009/*:
- * docs/tutorials/011/*:
- * docs/tutorials/012/*:
- Updates from the reviewers.
-
-Wed Jan 27 17:06:38 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: removed some unprintable characters.
-
-Wed Jan 27 16:31:01 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Makefile: Added LOCK_SOCK_Acceptor to TEMPLATE_FILES list.
-
-Wed Jan 27 14:50:13 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Service_Configurator/Misc/main.cpp: Changed to open the
- Service_Config object with ignore_static_svc set to 0. That
- allows this example to use static service. (By default, static
- services are not loaded.) Thanks to Arturo Montes
- <mitosys@colomsat.com.co> for reporting this.
-
-Wed Jan 27 13:47:00 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: use
- double double quotes around COMPILE argument to ace_ld,
- but only on WIN32 hosts. Thanks to Peter Weat <weatp@syntron.com>
- for figuring this out.
-
-Wed Jan 27 13:04:55 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 4.6.17 released.
-
-Wed Jan 27 12:32:22 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html,include/makeinclude/platform_vxworks5.x_g++.GNU:
- default PERL_PATH to "perl", and added notes to set it to the full
- perl path if perl is not on your path.
-
-Wed Jan 27 10:16:06 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * docs/ACE-guidelines.html:
- Added an entry for the creation of files containing template
- code.
-
-Tue Jan 26 20:44:36 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/SOCK_IO.cpp (send,recv): Changed to use sendv/recvv to
- handle variable arguments send/recv.
-
- * ACE-INSTALL.html: Fixed the dead link to CE-status. Thanks to
- Mike Preradovic <michael_preradovic@epicdata.com> for reporting
- this.
-
-Tue Jan 26 14:38:11 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: expanded
- the information on the PERL_PATH environment variable for
- NT hosts. Thanks to Peter Weat <weatp@syntron.com> for
- reporting this.
-
-Tue Jan 26 13:40:51 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp (elapsed_time_incr): Rearranged the
- formula to avoid compilation errors for platforms without
- ULONGLONG. Thanks to David for the tip.
-
-Tue Jan 26 12:01:19 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ACE_wrappers/tests/CDR_Test.dsp:
- * ACE_wrappers/tests/CDR_Test.cpp:
- Added lines to the test code to send the output to
- the log file, and deleted the unnecessary Header
- Files folder in the project.
- * ace/CDR.{i,cpp}:
- Relocated the longdouble comparison operators'
- definitions, and moved a misplaced '}', which
- were causing build errors.
-
-Tue Jan 26 10:55:02 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Active_Map_Manager.h:
- The _T.h file has to be included *after* the inclusion of the .i
- file, otherwise the template may not see the inline functions;
- the problem only showed up on IRIX.
-
-Mon Jan 25 22:11:36 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ACE_wrappers/tests/CDR_Test.dsp:
- * ACE_wrappers/tests/tests.dsw:
- * ACE_wrappers/tests/versions_tests/CDR_Test.dsp:
- * ACE_wrappers/tests/versions_tests/version_tests.dsw:
- * ACE_wrappers/tests/run_tests.sh:
- * ACE_wrappers/tests/run_tests.psosim:
- * ACE_wrappers/tests/run_tests.bat:
- * ACE_wrappers/tests/run_tests.vxworks:
- Fixed the project files (they had incorrrect project
- settings, I think) and updated the workspace files.
- Also, on a tip from Nanbor, added CDR_Test to the
- various run_tests files.
-
-Mon Jan 25 20:22:01 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR.{h,i,cpp}:
- * ace/Basic_Types.h:
- * ACE_Wrappers/tests/CDR_Test.cpp:
- Better design of ACE CDR, compiles and runs on NT, g++
- and CC.
-
-Mon Jan 25 09:35:42 1999 Steve Huston <shuston@riverace.com>
-
- * ace/ACE.cpp (handle_timed_complete): If connect times out, set
- errno to ETIMEDOUT, not ETIME. Matches what will happen if a
- simple blocking connect times out.
-
- * ace/OS.i (ACE_OS::accept, ACE_OS::recv): (only non-Win32), if
- call fails and errno is EAGAIN, change it to EWOULDBLOCK.
-
- * tests/MT_SOCK_Test.cpp: Remove EAGAIN hacks; above changes fix
- this for all programs.
-
-Sun Jan 24 22:04:42 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added operator==/!= guideline.
-
-Sun Jan 24 20:25:44 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace: When a class provides operator==, it must also provide
- operator!=. Also, both these operators should be const.
-
- Fixed the above violations in:
-
- ACE_TSS_Ref
- ACE_Thread_ID
- ACE_Registry::Binding
- ACE_Registry::Name_Component
- ACE_Active_Map_Manager_Key
-
- * ace/Map_Manager: Renamed methods that may become identical if
- INT_ID is the same as size_t. Thanks to Ossama for helping with
- this.
-
-Sun Jan 24 19:46:55 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR.{h,i,cpp}:
- * ace/Basic_Types.h:
- Made some fixes to make DEC cxx happy, but I'm going to
- undo many of the typedefs and change the design. These
- changes will hopefully lead to a clean build with cxx,
- but the CDR classes are not yet in finished form.
-
-Sun Jan 24 19:26:34 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/SString.cpp (set): Fixed usage case of when the incoming
- string is not zero but the length specified is zero.
-
- * tests/SString_Test.cpp (main): Added zero sized strings and
- single character strings to the test.
-
-Sun Jan 24 19:09:45 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32-common.h
- (ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR): VC apparently
- does it right.
-
-Sun Jan 24 17:22:02 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/SString.cpp (substring): the variable "length" was misspelled
- on one of the lines in the method.
-
-Sun Jan 24 16:17:58 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/README:
- * ace/OS.h:
- * ace/config-g++-common.h:
- * ace/config-osf1-4.0.h:
- * ace/config-psos-diab.h:
- * ace/config-psos-tm.h: Replace ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
- with ACE_HAS_WORKING_EXPLITCIT_TEMPLATE_DESTRUCTOR to reflect
- the true problem. Thanks to Ossama for suggesting the name.
-
-Sun Jan 24 16:20:17 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/ACE-FMM:
- Added an entry about the DONT_CALL flag to remove_handler().
-
- * docs/tutorials/00[45789]:
- * docs/tutorials/01[012]:
- Many changes from Yamuna, Pradeep, Kirthika and Ossama. In all,
- there were 62 files changed. Mostly the .html's due to
- recombination and colorization.
-
-Sun Jan 24 14:23:07 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SString.cpp: The substring() method did not check for zero
- length. Thanks to Mike Goldman for this fix.
-
-Sun Jan 24 02:08:57 1999 Carlos O'Ryan <coryan@cs.wus...tl.edu>
-
- * websvcs/lib/URL_Addr.cpp:
- * websvcs/lib/URL_Addr.h:
- * websvcs/lib/URL_Addr.i:
- * websvcs/tests/Test_URL_Addr.cpp:
- Added support for mailto: URLs
-
-Sat Jan 23 23:53:29 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * websvcs/Makefile:
- * websvcs/lib/Makefile:
- * websvcs/lib/URL_Addr.h:
- * websvcs/lib/URL_Addr.i:
- * websvcs/lib/URL_Addr.cpp:
- * websvcs/tests/Makefile:
- * websvcs/tests/Test_URL_Addr.cpp:
- Added a small library to keep basic Web related wrappers. The
- first set is a small collection of URL address classes,
- including HTTP and FTP representations.
-
-Sat Jan 23 23:26:17 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/High_Res_Timer.{h,cpp} (elapsed_time_incr): Added a new
- function to access the incremental timer in nanosecond.
-
-Sat Jan 23 23:08:27 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR.{h,i,cpp}:
- Caught numerous inline ordering errors and mistakes in
- long double functions (not defined on NT) with g++.
-
-Sat Jan 23 21:13:47 1999 Jeff Parsons <jp4@cs.wustl.edu>
-
- * tests/tests.dsw:
- * tests/CDR_Test.dsp:
- * tests/Makefile:
- * tests/CDR_Test.cpp:
- New test in the suite for the new ACE CDR classes (see below).
-
- * TAO/TAOACE.dsw:
- * TAO/TAOACE_static.dsw:
- * ace/Makefile:
- * ace/CDR.{h,i,cpp}:
- * ace/OS.h:
- * ace/Basic_Types.h:
- CDR stuff modified from TAO library. Typedefs, default
- constants and macros added to OS.h and Basic_Types.h.
- There is now complete CDR functionality in ACE, except
- for the interpreter, and thus also no handling of Any
- or TypeCode types.
-
-Sat Jan 23 17:50:22 1999 Steve Huston <shuston@riverace.com>
-
- * tests/MT_SOCK_Test.cpp: 1. Check for EAGAIN as well as EWOULDBLOCK
- after an accept fail (this change will probably be removed at some
- point when we figure out how to handle EAGAIN/EWOULDBLOCK).
- 2. Close the ACE_SOCK_Acceptor in the server before going into
- the "reap children" loop so any half-connected clients will get
- closed.
-
-Sat Jan 23 17:25:48 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.{h,cpp}: Reverted changes made since the
- ACE_Hash_Map_Manager_Ex was getting used in shared memory and
- hence could not have "virtual" methods.
-
-Sat Jan 23 04:53:12 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Active_Map_Manager: Added a new associative container (map
- abstraction) that associates system generated keys with user
- specified values. Since the key is system generated, searches
- are very fast and take a constant amount of time. This map uses
- a key that keeps information of the index and the generation
- count of the slot it represents. Since the index information is
- part of the key, lookups are super fast and predictable.
-
- This performance of this map is truely awesome:
-
- - inserts O(1) worse case
- - lookups O(1) worse case
- - deletes O(1) worse case
-
- * ace/Map_Manager: Completely reworked the internals of the
- Map_Manager. A number of problems were addressed:
-
- (a) Finding an empty slot took O(n). New code takes O(1).
-
- (b) Resizing was lame as it increased by ACE_DEFAULT_MAP_SIZE
- everytime. The new scheme is cool since it grows
- exponentially up to 64K and after that grow in chunks of
- 32K.
-
- (c) Old scheme used a simple but inefficient <is_free_> flag.
- The new scheme uses two doubly linked list to track used and
- free slots. Note that this scheme still uses an array to
- manage the search structure but manages the two linked list
- on top of the array. Thanks to Carlos for this cool idea.
-
- (d) current_size() was broken. This is fixed in the new code.
-
- (e) Inlined a bunch of small functions.
-
- * tests/SString_Test.cpp: Added empty string test.
-
- * ace/Containers_T.h (operator=): ACE_Array_Base must be fully
- qualified: ACE_Array_Base<T>. Thanks to Susan Liebeskind
- <shl@janis.gtri.gatech.edu> for pointing this out.
-
- * tests/Map_Manager_Test.cpp (test_map_manager): Added
- Active_Map_Manager to the test.
-
-Fri Jan 22 21:27:14 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Hash_Map_Manager_T.h
- (class ACE_Hash_Map_Entry): Modified the destructor to be
- "virtual" so that it gets invoked on the destruction of its
- derived class objects.
- (class ACE_Hash_Map_Manager_Ex): Modified the destructor to be
- "virtual" so that it gets invoked on the destruction of its
- derived class objects.
- Modified shared_find () to be "virtual" so that it can be
- defined in its derived classes.
- Declared a virtual method for creating new entries for the map
- called create_entry ().
-
- * ace/Hash_Map_Manager_T.cpp
- (create_entry): Added this virtual method which creates a new
- map entry. This is necessary to allow the map to contain various
- types of map entries.
- (bind_i):
- (trybind_i):
- (unbind_i):
- Used create_entry () to obtain a new entry object.
-
- * ace/Hash_Purgable_Map_Manager_T.{h,i,cpp}:
- The ACE_Hash_Purgable_Map_Manager_Ex derives from
- ACE_Hash_Map_Manager_Ex and provides the feature of purging
- K entries from the map. The default purging algorithm is Least
- Recently Used, which has been implemented using a virtual timer
- that increments whenever an entry is looked up or used. Each
- entry has a purge_tag which is the timestamp updated by the
- timer value whenever it is referenced. The entry is an object of
- ACE_Hash_Purgable_Map_Entry class which is derived from
- ACE_Hash_Map_Entry.
- (purge): This is the method which flushes K entries from the
- map. Locks are held.
- (purge_i): This method also flushes K entries but w.o. locks
- being held.
- (create_entry): Creates an ACE_Hash_Purgable_Map_Entry object.
- (shared_find): This method is used to lookup and verify whether
- an entry is present in the map. Also, the purge_tag of the entry
- is updated with the current timer value.
-
- * tests/Purgable_Map_Manager.cpp: Added this test which
- illustrates the use of the Hash_Purgable_Map_Manager to maintain
- a cache map. Also displays the change in the map size on
- purging.
-
-Fri Jan 22 16:10:35 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Select_Reactor_Base.cpp (ACE_Select_Reactor_Notify::handle_input)
- EAGAIN is also a legit errno value (not only EWOULDBLOCK) for end
- of data on pipe. Makes count of dispatches returned from
- ACE_Select_Reactor's handle_events correct in the presence of
- notifications.
-
- * ace/OS.i (ACE_OS::sema_init): Always init s->name_ to 0, else it
- might be non-zero (and junk) when deleted.
-
- * ace/config-hpux11.h: Added an overrideable ACE_TIMER_SKEW of 10 msec.
-
-Fri Jan 22 15:07:08 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Containers_T.cpp: Yikes, don't delete the fixed stack since
- it wasn't allocated dynamically! Thanks to Mike Goldman
- <whig@by.net> for this fix!
-
-Fri Jan 22 13:08:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/ACE.{cpp, h}: added static methods ACE::gcd, which computes the
- greatest common divisor of two u_longs using Euclid's algorithm, and
- ACE::minimum_frame size, which computes the minimum enclosing frame
- size for two u_longs.
-
-Thu Jan 21 20:45:09 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/006/client_acceptor.h
- * docs/tutorials/006/client_handler.cpp
- * docs/tutorials/006/client_handler.h
- * docs/tutorials/006/page01.html
- * docs/tutorials/006/page02.html
- * docs/tutorials/006/page03.html
- * docs/tutorials/006/page04.html
- * docs/tutorials/006/page05.html
- Integrated changes from Vishal and Kirthika
-
- * docs/tutorials/008/combine.shar
- * docs/tutorials/008/page02.html
- * docs/tutorials/008/page03.html
- * docs/tutorials/008/page04.html
- * docs/tutorials/009/combine.shar
- * docs/tutorials/009/directed_client.cpp
- * docs/tutorials/009/page01.html
- * docs/tutorials/009/page02.html
- * docs/tutorials/009/page03.html
- * docs/tutorials/009/page04.html
- * docs/tutorials/009/page05.html
- * docs/tutorials/009/server.cpp
- Changes from Kirthika plus colorization.
-
-
-Thu Jan 21 16:01:50 1999 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/007/Makefile:
- * docs/tutorials/007/combine.shar:
- * docs/tutorials/007/page01.html:
- * docs/tutorials/007/page02.html:
- * docs/tutorials/007/page03.html:
- * docs/tutorials/007/page04.html:
- * docs/tutorials/007/page05.html:
- * docs/tutorials/007/page06.html:
- * docs/tutorials/007/page07.html:
- * docs/tutorials/007/page08.html:
- * docs/tutorials/007/page09.html:
- * docs/tutorials/007/thread_pool.cpp:
- * docs/tutorials/008/Makefile:
- * docs/tutorials/008/combine.shar:
- * docs/tutorials/008/directed_client.cpp:
- * docs/tutorials/008/page01.html:
- * docs/tutorials/008/page02.html:
- * docs/tutorials/008/page03.html:
- * docs/tutorials/008/page04.html:
- * docs/tutorials/008/page05.html:
- * docs/tutorials/008/server.cpp:
- * docs/tutorials/009/Makefile:
- Included Kirthika's abstract.
- Colorized both tutorials & convereted to new format.
-
-Thu Jan 21 14:25:58 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/SString.h: changed !ACE_HAS_WINCE wrap of ostream
- operators to !ACE_LACKS_IOSTREAM_TOTALLY.
-
- * ace/OS.i (getuid): added static cast of -1 to uid_t on
- Chorus, to avoid compiler warning about change in sign.
-
- * ace/OS.h: moved (protected) MAXHOSTNAMELEN #define from
- pSOS and NT-only code to where its visible on all platforms.
- When we removed the #include of rpc.h, we lost the
- #define of MAXHOSTNAMELEN on Chorus.
-
-Thu Jan 21 15:19:26 1999 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/001/Makefile:
- * docs/tutorials/001/page01.html:
- * docs/tutorials/001/page02.html:
- * docs/tutorials/001/page03.html:
- * docs/tutorials/001/page04.html:
- * docs/tutorials/001/page05.html:
- * docs/tutorials/005/client_handler.cpp:
- * docs/tutorials/005/page02.html:
- * docs/tutorials/005/page03.html:
- * docs/tutorials/005/page04.html:
- * docs/tutorials/005/page05.html:
- * docs/tutorials/005/page06.html:
- * docs/tutorials/006/client_handler.cpp:
- * docs/tutorials/006/page01.html:
- * docs/tutorials/006/page02.html:
- * docs/tutorials/006/page03.html:
- * docs/tutorials/006/page04.html:
- * docs/tutorials/006/page05.html:
- Incorporated new comments from Vishal, Yamuna and Pradeep.
-
-Thu Jan 21 13:05:31 1999 Steve Huston <shuston@riverace.com>
-
- * docs/tutorials/Makefile: Removed include .depend to allow the
- whole set of tutorials to be built from the top. Thanks to James
- Johnson for guiding this fix.
-
-Wed Jan 20 19:47:16 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.{h,i,cpp} (fopen): Reimplement fopen using Win32 APIs so
- ACE_OS::unlink behaves the same as it does on UNIX platforms.
- Both ACE_OS::open and ACE_OS::fopen have been corrected.
- There's also a ACE::open_temp_file which should be the prefered
- method to open temp files when ACE_HANDLE is used. That's
- because Win32 tries to map the file opened by
- ACE::open_temp_file to memory.
-
- * ace/Parse_Node.cpp (symbol): <func> need to be initialized.
- Thanks to David for reporting the bug.
-
-Wed Jan 20 17:37:21 1999 Steve Huston <shuston@riverace.com>
-
- * ace/Log_Msg.h: Added "do {} while (0)" as defs for ACE_HEX_DUMP,
- ACE_ERROR, ACE_DEBUG when ACE_NLOGGING is defined. Having null defs
- for these caused MSVC some problems. Thanks to Doug Schmidt for
- giving (and explaining) the correct definitions.
-
-Wed Jan 20 13:38:03 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (readdir_r): added ACE_UNUSED_ARG (entry)
- without ACE_HAS_REENTRANT_FUNCTIONS.
-
- * docs/ACE-guidelines.html: added guideline for calling
- ACE_OS::unlink () immediately after opening a temporary file.
-
- * *.h: replaced () around #pragma implementation argument. Thanks
- to Susan Liebeskind <susan.liebeskind@gtri.gatech.edu> and
- Steve Huston for reporting and confirming that it's necessary
- on AIX.
-
-Wed Jan 20 01:48:21 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Parse_Node.cpp (symbol): Remembered to pass down the
- "gobbler" in a Static_Function_Node. Thanks to Eric C. Newton
- <ecn@smart.net> for reporting and providing the fix.
-
-Tue Jan 19 17:52:49 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SString.h: Clarified the role of the <release> argument for
- the <set> method. Thanks to Sudhanshu Garg
- <sg2@ladybug.cec.wustl.edu> for suggesting this.
-
-Tue Jan 19 16:15:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * OS.i,README,config-cygwin32-common.h,config-linux-common.h,
- config-psos-diab.h,config-psos-tm.h,config-psosim-g++.h,
- config-sco-5.0.0-mit-pthread.h,config-sco-5.0.0.h,
- config-tandem.h: removed removed include of rpc/rpc.h, and
- ACE_LACKS_RPC_H. Thanks to Susan Liebeskind
- <susan.liebeskind@gtri.gatech.edu> for initially suggesting this,
- and to Russ Noseworthy for reporting another problem (on
- SunOS 5.6 w/o threads) with it. ACE doesn't need it.
-
- * bin/g++dep: removed /project/doc/pkg/gnu/bin from PATH so that
- I can run make depend on Linux.
-
-Tue Jan 19 12:14:09 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * Makefile (CONTROLLED_FILES): Added ChangeLog-98b to the
- CONTROLLED_FILES macro. Thanks to Susan Liebeskind
- <susan.liebeskind@gtri.gatech.edu> for suggesting this.
-
-Tue Jan 19 10:24:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * apps/JAWS/PROTOTYPE/HTTPU/HTTPU.{dsp, dsw}: converted to MSVC++ 6.0
- (and backward compatible) format.
-
- * apps/JAWS/PROTOTYPE/HTTPU/http_headers.{cpp, h}: fixed ACE_RB_Tree
- templates, template instantiations. Thanks to Sridhar Sabella
- (ssabbella@cemax.com) for pointing this out.
-
-Tue Jan 19 00:42:44 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Log_Msg/test_callback.cpp (log): Removed the use of
- cerr and used ACE_OS::printf() instead.
-
- * ace/Log_Record.cpp (print): Fixed comparison between signed and
- unsigned. Thanks to David Levine for pointing this out.
-
-Mon Jan 18 23:55:03 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added more info on Alpha configuration
- problems and fixes.
-
-Mon Jan 18 23:07:38 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (open): Files opened with CreateFileA (on Win32 of
- course,) are now opened with FILE_SHARE_DELETE flag set. This
- allows ACE_OS::unlink to work as it should. However, I haven't
- figured out how to make unlink work with file opened with fopen
- yet. Apparently, fopen does not open file with
- FILE_SHARE_DELETE.
-
-Mon Jan 18 22:54:18 1999 Darrell Brunsch <brunsch@cs.w...ustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Updated NT Alpha configurations.
-
- * apps/gperf/src/gperf.dsp:
- * apps/gperf/src/gperf_lib.dsp:
- Added NT Alpha configurations.
-
-Mon Jan 18 22:14:00 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/011/message_queue.cpp:
- * docs/tutorials/011/page02.html:
- ACE_Message_Block::copy() will advance the wr_ptr() for us.
- Previously, I was doing that myself in run_test(). The test only
- worked because I never wrote data to the block after that. If I
- had, things would have broken horribly.
-
-Mon Jan 18 20:41:48 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Block.h: Clarified that the wr_ptr() is incremented
- by n as a result of the copy operation. Thanks to Zoran
- Ivanovic <zorani@pathcom.com> for suggesting this.
-
- * ace/INET_Addr.h (ACE_INET_Addr): Changed the default for
- ipaddr_format to 1 (which is what it had been originally) rather
- than 0 since the original way is faster since it doesn't use
- DNS. Thanks to Zoran Ivanovic <zorani@pathcom.com> for finding
- this.
-
-Mon Jan 18 20:31:47 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/006/client_handler.cpp:
- Typo...
-
- * docs/tutorials/006/*.html:
- * docs/tutorials/006/combine.shar:
- Colorized, added Kirthika's abstract.
-
-Mon Jan 18 16:19:56 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp (open): If a file is open with _O_TEMPORARY flag set
- on Win32, we also set the FILE_ATTRIBUTE_TEMPORARY so OS will
- try to cache it in memory to speed up access.
-
- * ace/ACE.cpp (open_temp_file): On Win32, temporary file should be
- opened with _O_TEMPORARY flag set, not FILE_DELETE_ON_CLOSE.
-
- * include/makeinclude/wrapper_macros.GNU: My previous fix of
- avoiding multiple definition of ACE_NDEBUG was not correct. Now
- the macro check where should the definition go to. Thanks to
- David for showing me the right way to do this.
-
-Mon Jan 18 11:23:06 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/platform_irix6.x-sgic++.GNU:
- Added the -multigot flag when building shared libraries,
- otherwise TAO/orbsvcs is too big.
-
-Mon Jan 18 09:54:54 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: moved ACE_HAS_PRIOCNTL #define so
- that it's defined even without threads. Thanks to
- Russ Noseworthy for reporting this.
-
- * ace/OS.cpp (lwp_getparams): removed ACE_MT_SAFE check
- that Doug added Saturday. It's not necessary with the
- above fix to config-sunos5.5.h.
-
- * examples/Log_Msg/test_ostream.cpp: don't try to create the
- ofstream if ACE_LACKS_IOSTREAM_TOTALLY. Also, removed
- declarations of unused argc/argv arguments because some
- g++ versions complain about them.
-
-Mon Jan 18 08:17:49 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_IO.cpp,
- ace/SOCK_Dgram.cpp: Added
-
- ACE_UNUSED_ARG (timeout);
-
- to the #else part of the recv (iovec *) methods. Thanks to Mike
- Goldman for reporting this.
-
-Mon Jan 18 01:13:57 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CORBA_macros.h: ACE_TRY_NEW_ENV also needs to define a new
- CORBA::Environment even with native exceptions. Mark exception
- caught by ACE_CATCH as unused arg to avoid compilation warnings.
-
-Mon Jan 18 00:12:13 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.16 released.
-
-Sun Jan 17 16:40:22 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Reactor_Exceptions_Test.cpp (main): Changed the LM_INFO
- message to indicate that C++ exception support isn't ENABLED on
- a platform, rather than saying that it's not supported at all...
-
-Sun Jan 17 15:16:35 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/SString.cpp (operator<<): The operator<< used to print out
- ACE_WString caused an infinite loop on platform without UNICODE
- defined because we didn't convert the wide string on these
- platform. However, since an ACE_WString always contains a wide
- string, the conversion from wide string to char string should
- always be done here. Thanks to Scott Snyder
- <snyder@d0sgif.fnal.gov> for noticing this bug.
-
- (operator<<): Changed the ACE_SString and ACE_CString version to
- check against the case when the internal <rep_> contains 0.
- The ACE_CString version was printing out the string one char a
- time. Can't see any reason why this is done like this. Changed
- to print out the underlying <rep_> directly.
-
-Sun Jan 17 14:42:39 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/001/*:
- * docs/tutorials/002/*:
- * docs/tutorials/003/*:
- * docs/tutorials/004/*:
- * docs/tutorials/005/*:
- Converted to the new (colorized) format used by T13 and beyond.
- I will convert the remaining tutorials (6-12) as each is reviewed.
-
- * docs/tutorials/005/fix.Makefile:
- * docs/tutorials/006/fix.Makefile:
- * docs/tutorials/007/fix.Makefile: Replaced by ../fix.Makefile.
-
- * docs/tutorials/010/Makefile:
- * docs/tutorials/011/Makefile:
- * docs/tutorials/012/Makefile:
- * docs/tutorials/013/Makefile:
- * docs/tutorials/014/Makefile:
- * docs/tutorials/016/Makefile:
- * docs/tutorials/017/Makefile:
- These all referenced ../007/fix.Makefile. They now reference
- ../fix.Makefile instead.
-
-Sun Jan 17 13:50:16 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/002/handler.h:
- * docs/tutorials/002/handler.h:
- * docs/tutorials/002/page03.html:
- * docs/tutorials/003/client.cpp:
- * docs/tutorials/003/page01.html:
- * docs/tutorials/004/page01.html:
- * docs/tutorials/005/client_handler.h:
- * docs/tutorials/005/page02.html:
- * docs/tutorials/005/page04.html:
- * docs/tutorials/005/page05.html:
- * docs/tutorials/005/server.cpp:
-
- More improvements from Doug's class (and Ossama). Each "page2"
- includes an abstract by Kirthika.
-
- Reviewers to date:
- Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
- Kirthika Parameswaran <kirthika@cs.wustl.edu>
- Balachandran Natarajan <bala@cs.wustl.edu>
- Pradeep Gore <pradeep@cs.wustl.edu>
- Ossama Othman <othman@cs.wustl.edu>
-
-Sat Jan 16 19:08:12 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/High_Res_Timer.cpp: Added #ifdef so high-res timers work
- correctly on KCC. Thanks to Scott Snyder
- <snyder@d0sgif.fnal.gov> for contributing this.
-
- * tests/test_config.h: Updated randomize() so that it uses a
- "fixed" seed, so that it will produce "reusable" random numbers.
-
- * include/makeinclude/platform_linux_kcc.GNU (LD): Added the -lm
- flag. Thanks to Scott Snyder <snyder@d0sgif.fnal.gov> for
- contributing this.
-
- * tests/run_tests.sh: Added an
- LD_LIBRARY_PATH=../netsvcs/lib:$LD_LIBRARY_PATH so that we can
- use a relative name for the svc.conf files used in the
- Time_Service_Test and Tokens_Test.
-
- * ace/config-irix6.x-common.h: Added support for long double for
- KCC. Thanks to Scott Snyder <snyder@d0sgif.fnal.gov> for
- contributing this.
-
- * ace/config-irix6.x-kcc.h: Added KCC support. Thanks to Scott
- Snyder <snyder@d0sgif.fnal.gov> for contributing this.
-
- * ace/config-osf1-4.0.h: Added KCC support. Thanks to Scott
- Snyder <snyder@d0sgif.fnal.gov> for contributing this.
-
- * ace/IOStream.h: Fixed up the PUT_CODE and GET_CODE macros so
- that they work with KCC. Thanks to Scott Snyder
- <snyder@d0sgif.fnal.gov> for contributing this.
-
- * ace/Env_Value_T.h (ACE_Convert): Added a new ACE_Convert
- constructor for u_int so that TAO compiles correctly with KCC.
- Thanks to Scott Snyder <snyder@d0sgif.fnal.gov> for contributing
- this.
-
- * include/makeinclude/platform_osf1_4.0_kcc.GNU: Added a new
- platform config file for KCC. Thanks to Scott Snyder
- <snyder@d0sgif.fnal.gov> for contributing this.
-
-Sat Jan 16 18:13:29 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Commented out adding
- ACE_NDEBUG to CCFLAGS to avoid defining it twice. Most (if not
- all) platforms include CFLAGS into CCFLAGS. So, if "make
- debug=0" no longer work on your platform, then, you may need to
- add "CCFLAGS += $(CFLAGS)" into your platform_xxx.GNU.
-
-Sat Jan 16 13:40:40 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Proactor.cpp (schedule_timer): Had to add an
- ACE_SYNCH_RECURSIVE_THREAD_MUTEX in place of
- ACE_Recursive_Thread_Mutex to avoid problems when threads=0.
-
- * ace/OS.cpp (lwp_getparams): For some reason we had to
- add
-
- # if defined (ACE_HAS_STHREADS) || (defined (sun) && (ACE_MT_SAFE != 0))
-
- instead of
-
- # if defined (ACE_HAS_STHREADS) || defined (sun)
-
- to avoid problems when threads=0.
-
- * ace/Asynch_IO.cpp: Replaced some ACE_Thread_Mutex decls with
- ACE_SYNCH_MUTEX to avoid problems with threads=0.
-
- * ace/config-sunos5.6.h: If defined(_POSIX_C_SOURCE) &&
- _POSIX_C_SOURCE >= 199506L) || defined (__EXTENSIONS__) then
- #define ACE_HAS_SIGWAIT to avoid compilation errors. Thanks to
- Russ Noseworthy for reporting this.
-
- * ace/OS.i: Fixed the ACE_OS::readdir_r() so that it doesn't fail
- if threads are disabled via "make threads=0". Thanks to Russ
- Noseworthy for reporting this.
-
- * ace/FILE_Connector.h (ACE_FILE_Connector): Added the O_CREAT
- flag to the list of flags passed to connect(). This ensures
- that the file is created if it doesn't already exist. Thanks to
- Pradeep Gore <pradeep@cs.wustl.edu> for reporting this.
-
-Fri Jan 15 21:28:04 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Log_Msg (ACE_Log_Msg_Callback): Added an interface class
- used for getting logging callbacks. Users who are interested in
- getting the logging messages directly, can subclass this
- interface and override the log() method. They must then register
- their subclass with the Log_Msg class and make sure that they
- turn on the ACE_Log_Msg::MSG_CALLBACK flag.
-
- Your log() routine is called with an instance of
- ACE_Log_Record. From this class, you can get the log
- message, the verbose log message, message type, message
- priority, and so on.
-
- Remember that there is one Log_Msg object per thread.
- Therefore, you may need to register your callback object with
- many Log_Msg objects (and have the correct synchronization in
- the log() method) or have a separate callback object per
- Log_Msg object.
-
- Thanks to Chris Lahey <clahey@ix.netcom.com> for suggesting this
- and send patches.
-
- * examples/Log_Msg/test_callback.cpp: Added new example for
- Log_Msg. This program tests the Log_Msg abstraction wrt writing
- to user defined callback objects.
-
-Fri Jan 15 21:10:25 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CORBA_macros.h: Made sure ACE_CORBA_HAS_EXCEPTIONS always
- gets set properly. Added ACE_ADPOT_CORBA_ENV to reuse a
- existing CORBA::Environment variable.
-
-Fri Jan 15 17:05:12 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Log_Record: Factored out the redundant formatting code. The
- new scheme also allows the end user to get to verbose formatted
- string. Thanks to Nanbor for helping out with this.
-
-Fri Jan 15 17:15:18 EST 1999 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/templates.html
- docs/tutorials/001/acceptor.h
- docs/tutorials/001/logger.h
- docs/tutorials/001/page01.html
- docs/tutorials/001/page02.html
- docs/tutorials/001/page03.html
- docs/tutorials/001/page04.html
- docs/tutorials/001/page05.html
- docs/tutorials/001/server.cpp
- docs/tutorials/003/page01.html
-
- Many changes from Ossama plus a new abstract (for T3) from
- Kirthika.
-
-Fri Jan 15 14:40:26 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_IO,
- ace/SOCK_Dgram: Modified the recv(iovec *) and recvv(iovec *)
- methods so that they use select() to avoid spinning if no data
- is available. Thanks to Mike Goldman <whig@by.net> for this
- fix.
-
-Fri Jan 15 10:47:26 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Service_Repository.cpp: If a service being removed from the
- Service_Repository used the Service_Repository while being
- removed it could access objects that had already been deleted.
- Fix this by decrementing the current_size_ member in
- "real-time". Thanks to Eric Newton for reporting this.
-
-Fri Jan 15 08:08:31 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.15 released.
-
-Fri Jan 15 07:20:46 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/OS.i: Fixed variable names in isatty () on NT
-
-Fri Jan 15 03:45:46 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * docs/exceptions.html: Rewrote the exception handling guildlines
- based on ACE's try macros.
-
-Fri Jan 15 01:32:55 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.14 released.
-
-Fri Jan 15 00:03:32 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * examples/Log_Msg/test_ostream.cpp: Added new example for
- Log_Msg. This program tests the Log_Msg abstraction wrt writing
- to stderr and to a file.
-
-Thu Jan 14 21:50:22 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/CORBA_macros.h: Added a new set of try macros which help
- application developers write portable code that handles
- CORBA::Exception portably. The macros will work with any ORB.
-
- The total number of macros has reduces significantly and they
- should be much easier to use because the rules all follow the
- same style.
-
- The new try macros should be prefered over the original try
- macro in $TAO_ROOT/TAO/try_macros.h because those macros will
- soon be *DEPRICATED* once we finished convert TAO to use the new
- macros.
-
- Please see ACE_wrappers/docs/exceptions.html for guidelines and
- rules of using ACE's try macros.
-
-Thu Jan 14 20:41:33 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS: Moved some code around to consolidate the getuid() and
- isatty() functions.
-
- * ace/OS: Added support for the setuid() call. Thanks to Susan
- Liebeskind <susan.liebeskind@gtri.gatech.edu> for suggesting
- this.
-
-Thu Jan 14 16:18:37 EST 1999 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/001/page02.html:
- docs/tutorials/001/page03.html:
-
- Included Kirthika Parameswaran's <Kirthika@cs.wustl.edu>
- abstract and analogy. Thanks Kirthika!
-
- * docs/tutorials/001/Source.tgz:
- docs/tutorials/001/acceptor.h:
- docs/tutorials/001/logger.h:
- docs/tutorials/001/server.cpp:
- docs/tutorials/001/page[345].html:
- * docs/tutorials/002/page0[23].html:
- docs/tutorials/002/handler.h:
-
- Added improvements from Kirthika, Pradeep and Yamuna
-
-Thu Jan 14 11:46:25 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Synch_T.h: Pointed out that we can only parameterize
- ACE_Condition<> with ACE_Thread_Mutex and ACE_...Null_Mutex.
- Thanks to Knut-Havard Aksnes <knut@orion.no> for reporting
- this.
-
-Thu Jan 14 02:33:37 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.13 released.
-
-Thu Jan 14 00:07:34 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * docs/tutorials/014/stream.cpp: Added #include "ace/streams.h".
-
-Wed Jan 13 23:18:03 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h:
- * config-g++-common.h:
- * config-osf1-4.0.h:
- * config-psos-diab.h:
- * config-psos-tm.h: Revert my previous change. Removed the
- ChangeLog entry about the change.
-
-Wed Jan 13 22:30:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_chorus_ghs.GNU: removed
- explicit link with libedgnoe.a, because GreenHills adds
- that implicitly.
-
- * ace/OS.h: added quick hack to ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
- logic to allow compilation with g++.
-
-Wed Jan 13 18:48:30 EST 1999 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/004/client.cpp:
- docs/tutorials/010/message_queue.cp:
- docs/tutorials/011/message_queue.cpp:
- docs/tutorials/012/message_queue.cpp:
- docs/tutorials/013/message_queue.cpp:
- docs/tutorials/014/EndTask.h:
- docs/tutorials/019/client.cpp:
- docs/tutorials/019/client2.cpp:
- docs/tutorials/019/server.cpp:
- docs/tutorials/019/server2.cpp:
- docs/tutorials/019/shmem.cpp:
- docs/tutorials/020/client.cpp:
- docs/tutorials/020/server.cpp:
- docs/tutorials/021/client.cpp:
- docs/tutorials/021/mpool.cpp:
- docs/tutorials/021/mpool.h:
- docs/tutorials/021/server.cpp:
- Fixed many NT issues found by Irfan. Most are related to the
- fact that NT doesn't have SysV shared memory.
-
-Wed Jan 13 04:45:59 1999 James C Hu <jxh@cs.wustl.edu>
-
- * ace/Cache_Object.{h,cpp}:
- * ace/Cache_Manager.{h,cpp}:
- * ace/Cache_Manager_T.{h,cpp}:
- * ace/Cache_Hash_T.{h,cpp}:
- * ace/Cache_Heap_T.{h,cpp}:
- * ace/Hash_Bucket_T.{h,cpp}:
- Supporting infrastructure for the new Filecache. These classes
- form the basis of a generic in memory cache engine.
-
-Wed Jan 13 02:17:57 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.cpp (writev): This function should use ACE::write_n
- instead of ACE::send_n. Similarly, readv() should use
- ACE::read_n instead of ACE::recv_n.
-
- * ace/ACE.cpp (send): This function should use ACE_OS::sendv
- instead of ACE_OS::writev. Similarly, recv() should use
- ACE_OS::recvv instead of ACE_OS::readv.
-
- * docs/tutorials: Fixed all the NT project files.
-
-Tue Jan 12 22:41:05 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd.h: Uncommented ACE_HAS_SIGWAIT. This is
- required for FreeBSD 2.2.8. Thanks to John Aughey
- <jha@FreeBSD.ORG> for reporting this.
-
- * ace/SOCK_IO.{h,i}:
- * ace/SOCK_Stream.{h,i} (sendv_n/recvv_n): Moved these functions
- from SOCK_IO to SOCK_Stream where it makes more sense to have
- the semantic of sending/receiving <n> bytes.
-
-Tue Jan 12 19:52:26 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added more info on dynamically linking
- run-time libraries.
-
- * ace/SOCK_IO.{h,i,cpp} (sendv,recvv,sendv_n,recvv_n): Renamed
- vector send_n/recv_n. There were name clashing since these
- methods have similar signatures to some send_n/recv_n in
- ACE_SOCK_Stream, they got hidden by the derived methods.
- Renaming them solve the problem.
-
-Tue Jan 12 10:59:58 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_chorus_ghs.GNU: fixed location of
- libedgenoe.a, so that a symlink in $(GHS_DIR) is no longer necessary.
- Thanks to Steve Kay for reporting this.
-
- * ace/config-mklinux.h: removed ACE_HAS_SOCKLEN_T, added __USE_XOPEN.
- Thanks to Andreas Tobler <toa@pop.agri.ch> for these updates.
-
-Tue Jan 12 08:44:11 EST 1999 Aniruddha Gokhale <gokhale@sahyadri.research.bell-labs.com>
-
- * ace/Acceptor.cpp (handle_close):
-
- Since the reactor_ data member is made private, we need to use
- its accessor method to retrieve it.
-
-Tue Jan 12 02:12:38 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_DES_NO_FREE,ACE_DES_FREE): These two macros
- shouldn't be treated differently no matter
- ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR is defined or not.
- Otherwise, virtual destructor won't work in one of the original
- definitions.
-
- There shouldn't be different different definitions for calling
- template destructor explicitly either. However, we need to find
- that out. The meaning of ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
- seems to be reversed. That needs to be fixed also.
-
-Tue Jan 12 00:18:15 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Event_Handler.h: Moved the priority_ and reactor_ data
- members into the private section of the class since these can
- always be accessed via their accessor methods. Thanks to Mike
- Goldman <whig@by.net> for reporting this.
-
-Mon Jan 11 15:30:26 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.{h,i} (get_process_attributes,get_thread_attributes):
- Removed the constness from the return value to avoid Intel C++
- warnings. Thanks to Karel Zuiderveld
- <kzuiderveld@vitalimages.com> for reporting this.
-
- * bin/ADDIDL.DSM: A VB script to add new IDL files into DevStudio
- projects. Thanks to Peter <weatp@syntron.com> for contributing
- this nice tool.
-
-Mon Jan 11 12:54:26 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_IO: Added const qualifiers to all the send*() and
- recv*() methods that take ACE_Time_Value values. Thanks to Jody
- Hagins <jody@atdesk.com> for reporting this.
-
- * ace/SOCK_IO: Added a new send_n() method that uses the new
- ACE::sendv_n() method!
-
- * ace/ACE: Added a new sendv_n() and writev_n() method that sends
- all the bytes in the iovec!
-
- * ace/ACE.h (ACE): Added default values of 0 for ACE::writev() and
- ACE::readv().
-
- * examples/NT_Service: Tidied up the formatting to conform to the
- ACE programming guidelines.
-
-Mon Jan 11 10:23:06 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Added ACE_LACKS_READDIR_R.
- * ace/config-freebsd.h: Added ACE_LACKS_READDIR_R,
- ACE_HAS_NONCONST_MSGSND, ACE_LACKS_MALLOC_H. ACE_HAS_SIGINFO_T
- only applies to 3.0 and above. Thanks to Ivan Pascal
- <pascal@info.tsu.ru> for reporting the change.
-
-Sun Jan 10 21:52:57 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Message_Queue_Notifications_Test.cpp (iterator_test):
- added comment explaining why a message queue size of 32 Kb
- is used, instead of the default of 16 Kb.
-
- * docs/ACE-guidelines.html: added guidelines for boolean types
- and function return values.
-
-Sun Jan 10 17:33:29 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/Message_Queue_Notifications_Test.cpp: Replaced delete mb
- with mb->release(). Thanks to Susan Liebeskind
- <susan.liebeskind@gtri.gatech.edu> for reporting this
- inconsistency.
-
- * ace/Task_T.h,
- ace/Message_Queue_T.h: Clarified the fact that the
- ACE_Time_Value arguments to the Message_Queue methods
- use absolute, rather than relative, time. Thanks to
- Stanford S. Guillory <sguillory@vignette.com> for pointing out
- the need for this clarification.
-
-Sun Jan 10 09:18:41 1999 Martin Krumpolec <krumpo@pobox.sk>
-
- * ace/Log_Msg.cpp (log): only re-enable tracing if it had
- not been explicitly disabled.
-
-Sun Jan 10 01:06:18 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log): Change call from exit() to abort().
-
- * ace/OS.i (abort): Added new function.
-
-Sat Jan 9 22:05:07 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/tao_env.pl: A new perl script that help you translate _env
- to TAO_IN_ENV.
-
-Sat Jan 09 10:53:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Name_Proxy.cpp (open): swapped branches of conditional
- so that options.time_value () is used if USE_TIMEOUT is enabled.
- Thanks to Mike Goldman <whig@by.net> for reporting this.
-
-Fri Jan 08 19:19:17 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Applied ACE_TEXT to the definition of
- ACE_DEFAULT_TEMP_FILE on Win32. Thanks to
- <gwross@west.raytheon.com> for reporting this.
-
-Fri Jan 08 13:24:12 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Synch.h (ACE_Process_Mutex): made data members
- private instead of public. Thanks to Peter Gross
- <pgross@signalsoftcorp.com> for reporting this.
-
- * examples/Threads/reader_writer.cpp: removed volatile
- qualifier from declaration of "shared_thr_id", so that
- the file will compile on DU 4.0 with DCE threads. The
- volatile qualifier caused a type mismatch with
- ACE_thread_t. And, it's not necessary, because all
- access of the shared_thr_id is guarded.
-
- * include/makeinclude/platform_chorus_ghs.GNU: added gnuch68
- to -alttools, and removed bin from AR; use libedgnoe.a instead
- of libedg.a with GHS 1.8.9.1.
-
- * ace/config-sunos5.5.h: don't define ACE_HAS_XPG4_MULTIBYTE_CHAR
- with ghs, because its version 1.8.9 doesn't seem to support it.
- Also, with ghs, replaced the __ctype [] declaration with an
- #include of <stdlib.h>, because that's cleaner. Finally,
- added ACE_HAS_BROKEN_ENUMS for ghs (1.8.9).
-
-Thu Jan 07 09:05:27 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: added ACE_HAS_SIG_C_FUNC with
- Sun CC >= 4.2. Sun CC 5.0 needs it; Sun CC 4.2 doesn't
- object to it on SunOS 5.5.1, 5.6, and 5.7. Thanks to
- Neil Cohen <nbc@aikisoft.com> for figuring out how to
- compile ACE with Sun CC 5.0.
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: only
- use -features=castop and -rtti with Sun CC 4.2. CC 5.0
- doesn't support them; I assume that it enables RTTI by
- default. Thanks to Neil Cohen <nbc@aikisoft.com> for
- reporting this.
-
- * ACE-INSTALL.html: added ACE_HAS_REGEX #undef suggestion for
- shared lib link problems with egcs 1.1.x on Solaris 2.5.x.
- Thanks to Bob McWhirter <bob@werken.com> for reporting this
- problem.
-
-Thu Jan 07 04:45:36 1999 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.12 released.
-
-Thu Jan 07 04:01:08 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Containers_T.cpp (max_size): No need to reallocate if the
- new size is the same. Thanks to Mike Goldman <whig@by.net> for
- pointing this out.
-
- * ace/Strategies_T.cpp (check_hint_i and cleanup_hint_i):
- purge_i() should be called after the entry is closed.
-
- * Select_Reactor_Base.cpp (unbind): The next <max_handlep1_>
- should be calculated not only based on the <wait_set> but also
- the <suspend_set>.
-
- Thanks to Mark L. Boriack <mboriack@std.saic.com> for providing
- a description of this bug.
-
-Wed Jan 06 21:42:11 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (thr_create): moved #endif /* ACE_LACKS_SETDETACH */
- outside of }, to allow compilation on DU 4.0/cxx with DCE threads.
-
- * ace/config-osf1-4.0.h: with DCE threads only, added
- ACE_LACKS_THREAD_PROCESS_SCOPING.
-
-Wed Jan 06 16:36:21 1999 David L. Levine <schmidt@cs.wustl.edu>
-
- * ACE version 4.6.11 released.
-
-Wed Jan 06 15:15:37 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.cpp (process_directive,close): Moved the
- deletion of <svc_conf_file_queue_> into close method.
- Otherwise, there's no way to reconfigure the service
- configuration once it get started. Thanks to Mike Goldman
- <whig@by.net> for reporting the problem.
-
-Wed Jan 6 14:27:24 EST 1999 James CE Johnson <jcej@lads.com
-
- * docs/tutorials/021/*:
- Completed the ACE_Malloc<> tutorial. It could be a lot better
- than it is but I'm still new to ACE_Malloc...
-
- * docs/tutorials/021/online-tutorials.html:
- Added the link for #21
-
-Tue Jan 05 22:55:07 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T.cpp (cleanup_hint_i and check_hint_i): Since we
- are holding the connection cache lock in these methods, the
- Svc_Handler should not call purge(). If it does, a deadlock
- will occur (unless we have recursive locks) since we are already
- holding the connection cache lock. Therefore, we zero out the
- recycler before calling svc_handler->close() and purge out the
- svc_handler entry ourself (through purge_i()).
-
- Thanks to Mark L. Boriack <mboriack@std.saic.com> for providing
- a precise example illustrating this bug.
-
-Tue Jan 5 18:48:47 James CE Johnson <jcej@lads.com>
-
- * docs/tutorials/templates.html: Fixed a number of problems here.
- Thanks to Amos Shapira <Amos_Shapira@icomverse.com> for pointing
- them out.
-
- * docs/tutorials/colorize: I pulled out the colorization code from
- combine into this standalone script. One of these days I'll fix
- combine so that the code isn't duplicated...
-
-Tue Jan 5 16:14:00 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-common.h:
- Added ACE_TIMER_SKEW definition.
-
- * ace/FILE.cpp:
- Fixed the seek() prototype, is was declared as taking a "off_t"
- argument, but is was defined with a "long" argument,
- unfortunately in most platforms this was not a problem.
-
-Tue Jan 05 13:15:35 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.i (open): Be sure to pass down the
- <ignore_static_svcs> argument down to the real open method.
-
-Tue Jan 05 08:08:06 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/MM_Shared_Memory_Test.cpp (spawn): fixed syntax error
- by moving ) to end of ACE_ERROR invocation.
-
- * ace/config-osf1-4.0.h: added 10 ms ACE_TIMER_SKEW, so that
- MT_Reactor_Timer_Test passes.
-
- * ace/config-lynxos.h: added 10 ms ACE_TIMER_SKEW, so that
- MT_Reactor_Timer_Test comes closer to passing. It now
- chokes on the wait () near the end.
-
- * ace/OS.i (thr_getspecific): moved return 0 statement inside
- the Draft 7/STD #else block, to avoid warning about unreachable
- statement with Draft 4/6.
-
- * ace/config-osf1-4.0.h: with Draft 4 pthreads, added
- ACE_LACKS_READDIR_R.
-
- * tests/MT_Reactor_Timer_Test.cpp (main): added printout if
- wait () fails.
-
-Tue Jan 5 00:59:04 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Synch: Changed the remove() method of ACE_Thread_Mutex,
- ACE_Mutex, ACE_Semaphore, ACE_RW_Mutex, ACE_Event,
- ACE_Thread_Condition_Mutex, ACE_File_Lock, and
- ACE_Recursive_Thread_Mutex so that they check a flag to see if
- remove() has already been called. If it has, then the remove()
- call does nothing. This avoids nasty problems on platforms like
- Win95 that fail mysteriously if locks are destroyed multiple
- times. Note that our solution isn't perfect since it won't
- protect against race conditions if multiple threads call
- remove() simultaneously. However, if this happens it's a sign
- that the application was designed incorrectly... Thanks to Paul
- Felix <pef@fluent.com> and Irfan for tracking this down....
-
- * ace/FILE: Added new methods, seek() and tell(), that are more
- intuitively named than the existing position() methods. The
- position() methods have been retained for backwards
- compatiblity, but are now marked as deprecated.
-
- * ace/OS.h: Added a macro for ACE_DEFAULT_HTTP_PORT, which
- is 80 of course...
-
- * ace/INET_Addr.cpp: Make sure that addr_to_string() correctly
- checks the length of its buffer before doing a sprintf(). In
- addition, added an option to print the results in either ip-addr
- format or ip-name format.
-
- * ace/Mem_Map.cpp (map): where ace/Mem_Map.cpp mmap() will succeed
- if the length of the file mapping is 0, which will be the case
- if we've just created the file. This was the wrong place to
- make this check.
-
- * tests/MM_Shared_Memory_Test.cpp: Cleaned up a few things
- in this test so that it'll be easier to maintain.
-
-Mon Jan 04 08:45:45 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.7.h: only use the g++ hacks if the
- g++ version is prior to 2.8. Assume that later versions
- were built on SunOS 5.7 host, and/or don't have header
- files that are incompatible with the system headers.
-
- * bin/create_ace_build: changed symlink creation failure from
- error (with termination) to warning create_ace_build.
-
-Mon Jan 4 03:15:57 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Mem_Map: If we're remapping an already-mapped file
- (i.e., the base_addr_ != 0) && the addr parameter IS 0 (i.e.,
- the user isn't trying to respecify where to map this file), then
- we'll try to map over top of the existing region, which implies
- "MAP_FIXED".
-
-Sun Jan 03 23:21:46 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.cpp (initialize): Both initialize methods now
- remove the service object from the repository if its init()
- method failed.
-
-Sun Jan 3 14:39:49 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/ACE: Added a simple dirname() wrapper method.
-
- * ace/SString: The set(const char *, size_t, int = 1) and
- set(const char *, int) methods were inherently ambiguous.
- I've fixed this by changing removing the default parameters.
- Thanks to Irfan for suggesting this fix.
-
- * ace/Mem_Map.cpp: mmap() will fail if the length of the file
- mapping is 0, which will be the case if we've just created the
- file. Therefore, don't even bother trying to mmap() in this
- case and return a successful result.
-
- * ace/FILE: Moved the get_remote_addr() and get_local_addr()
- methods from the FILE_IO class to the FILE class since that's
- more properly where they belong. Also added a new remove()
- method that unlinks the file.
-
- * tests/Priority_Reactor_Test.cpp,
- tests/Conn_Test.cpp,
- tests/Notify_Performance_Test.cpp,
- Priority_Reactor_Test.cpp,
- Reactor_Performance_Test.cpp: Since the default is to skip argv0
- there's no sense explicitly saying this in the constructor of
- ACE_Get_Opt.
-
- * ace/FILE_Connector.h: Updated the comments to reflect recent
- changes.
-
- * ace/FILE.h: Added a new get_info() method that takes a reference
- to an ACE_FILE_Info rather than a pointer. This is a cleaner
- API, IMHO.
-
- * ace/FILE_Connector.cpp (connect): When the <remote_sap> argument
- is ACE_Addr::sap_any, then connect will select a temporary
- filename using the new feature of ACE_FILE_Addr described below.
-
- * ace/FILE_Addr.cpp (set): When the address is ACE_Addr::sap_any,
- then we'll select a new temporary filename using the new
- ACE_DEFAULT_TEMP_FILE macro and ACE_OS::mktemp().
-
- * ace/OS.h: Added a new ACE_DEFAULT_TEMP_FILE macro that defaults
- to "/tmp/ace-file-XXXXXX" and is used by the ACE_FILE_Connector
- to create a temporary file when it's given an ACE_Addr::sap_any.
-
- * ace/FILE_Addr.h: The <set> accessor should return an int to be
- consistent.
-
- * ace/OS.h: Added a new ACE_sap_any_cast macro, which makes it
- much easier to cast the ACE_Addr::sap_any to the right subclass.
-
- * tests/Reactor_Performance_Test.cpp,
- tests/Reactor_Exceptions_Test.cpp,
- tests/Process_Strategy_Test.cpp,
- tests/Priority_Reactor_Test.cpp,
- tests/IOStream_Test.cpp,
- tests/Conn_Test.cpp: Replaced all the C-style casts for
- ACE_Addr::sap_any with the new ACE_sap_any_cast macro.
-
-Sun Jan 03 21:48:37 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Asynch_Acceptor.cpp: Since this is a template file, I
- removed it from the ace library build on NT.
-
- * ace/Asynch_Acceptor.cpp (open): Changed C-style cast to use the
- new ACE_sap_any_cast macro from Dr. Schmidt.
-
-Sun Jan 03 09:12:23 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.5.h: with GreenHills, added
- ACE_LACKS_LINEBUFFERED_STREAMBUF and ACE_LACKS_SIGNED_CHAR.
-
- * ace/Basic_Types.* (ACE_U_LongLong): unioned the data members
- with a double, to ensure alignment on 8-byte boundaries. It
- could matter when an ACE_U_LongLong is used as a true 8-byte
- quantity, such as in a call to Solaris ::gethrtime ().
-
- * tests/Time_Value_Test.cpp: replaced remaining #ifdef
- ACE_HAS_STHREADS with #ifdef sun.
-
-Sat Jan 2 23:48:44 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/ACE-tutorials.html
- * docs/tutorials/guide-tutorials.html
- * docs/tutorials/new-tutorials.html
- * docs/tutorials/online-tutorials.html
- Converted some of the absolute URLs to relative. I only have the
- docs/tutorials tree here at home so I couldn't do any more than
- these.
-
- * docs/tutorials/021/*
- New tutorial on ACE_Malloc<>. I haven't begun the documentation
- yet but wanted to get the code commited so it doesn't get lost.
-
-Sat Jan 02 08:34:27 1999 David L. Levine <levine@cs.wustl.edu>
-
- * examples/ASX/Event_Server/Event_Server/event_server.cpp
- (handle_input),
- examples/Reactor/Misc/test_early_timeouts.cpp (main):
- added ACE_UNUSED_ARG (n), to avoid compile warning with ACE_NDEBUG.
-
- * performance-tests/Misc/test_naming.cpp (find): moved function
- call w/side effect out of ACE_ASSERT. Thanks to DU 4.0 cxx
- for noticiing it, with ACE_NDEBUG.
-
-Fri Jan 01 18:57:22 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Containers_T.i (ACE_Array,ACE_Array::operator=):
- added missing ACE_INLINE's.
-
- * ace/OS.{h,cpp} (ACE_TSS_Info::operator{==,!=}): added
- constness. It's necessary with the ACE_Array changes,
- with ACE_HAS_TSS_EMULATION.
-
-Fri Jan 1 12:22:14 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Containers_T.h:
- * ace/Containers_T.i:
- * ace/Containers_T.cpp:
- * bin/Array_Helper:
- * bin/Array.pl:
- Moved most of the implementation of ACE_Array into
- ACE_Array_Base this class does not require == or != operators
- defined for the template parameter.
- I also added methods to access and manipulate the capacity of
- the array (max_size) as opposed to always changing its size (the
- portion actually used).
-
- * ace/Object_Manager.cpp:
- * ace/Template_Instantiations.cpp:
- * ace/OS.cpp:
- * apps/JAWS/clients/Caching/URL_Properties.cpp:
- Fixed ACE_Array instantiations.
diff --git a/ChangeLogs/ChangeLog-99b b/ChangeLogs/ChangeLog-99b
deleted file mode 100644
index 2bdeb97ccd3..00000000000
--- a/ChangeLogs/ChangeLog-99b
+++ /dev/null
@@ -1,7290 +0,0 @@
-Fri Dec 31 08:07:18 1999 David L. Levine <levine@cs.wustl.edu>
-
- * all Makefiles: updated dependencies.
-
-Thu Dec 30 11:17:27 1999 David L. Levine <levine@cs.wustl.edu>
-
- * etc/ACE-development-process.html: fixed some typos.
-
-Wed Dec 29 15:42:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: added null definition of ACE_ENDLESS_LOOP,
- if not already #defined.
-
- * ace/config-cxx-common.h: added definition of ACE_ENDLESS_LOOP
- to avoid compiler warning about unreachable statement following
- the loop.
-
- * examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp (main):
- inserted ACE_ENDLESS_LOOP.
-
-Wed Dec 29 13:21:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_linux_cxx.GNU: added
- MATHLIB and test -f cxx_repository/*.o.
-
-Wed Dec 29 09:11:46 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-cxx-common.h: enable ACE_USES_OLD_IOSTREAMS
- without __USE_STD_IOSTREAM. Removed ACE_HAS_STRING_CLASS
- on Linux, because IOStream_Test won't compile with it.
-
- * include/makeinclude/platform_linux_cxx.GNU: removed
- -D__USE_STD_IOSTREAM test, because IOStream_Test failed
- with it.
-
- * include/makeinclude/platform_linux_cxx.GNU: Removed
- -use_ld_input because it has no effect on Linux. Thanks
- to Ken Block <ptr_corp@ptrsv1.pko.dec.com> for pointing
- that out.
-
-Tue Dec 28 18:32:02 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/QoS_Session_Impl.cpp: Added a comment for get qos().
-
- * examples/QOS/Receiver_QOS_Event_Handler.cpp:
- * examples/QOS/Receiver_QOS_Event_Handler.h:
- * examples/QOS/server.cpp:
-
- Changed the server of the GQoS example to use the newly added
- QoS classes of ACE. The program structure has changed to reflect
- the abstractness of the ACE QoS API. The final goal is to remove
- all the GQoSisms from the applications, even if this means
- constraining it by the granularity provided by RAPI.
-
-Tue Dec 28 15:50:46 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/test_config.h (set_output): removed the flags
- local variable, with its conditionally compiled type
- determination. The absorbed code is much cleaner.
-
-Tue Dec 28 15:37:11 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Log_Msg.cpp
- ace/Malloc.cpp
- ace/OS.{cpp, h, i}
- ace/Process_Manager.cpp
- ace/SOCK_Dgram_Mcast.cpp
- ace/Service_Config.{cpp, h}
- ace/Task.cpp
- ace/Thread.i
- ace/Thread_Manager.{cpp, h}
-
- ace/config-psos-diab-ppc.h: merged in changes for pSOS (Diab PPC)
- to support additional pHILE+ file system capabilities, and to deal
- with the limitations on sharing file and socket handles across pSOS
- tasks. Thanks to Sarmeesha Reddy and Steve Tine of Motorola for
- contributing these changes to ACE.
-
-Tue Dec 28 15:32:55 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Makefile: build libDLL_Test.so before building
- any executables, so that it doesn't see the template
- instantiations from all of the tests (after a make
- realclean, anyways).
-
-Tue Dec 28 08:55:23 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_linux_cxx.GNU:
- added -D__USE_STD_IOSTREAM.
-
- * ace/config-cxx-common.h,ace/config-linux-common.h:
- added support for __USE_STD_IOSTREAM.
-
-Tue Dec 28 02:03:11 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Container_T.i (remove): Changed to call the <remove> method
- using the <list_> in ACE_DLList[_Reverse]_Iterator, otherwise,
- the <remove> in the ACE_Double_Linked_List got called which
- incurred memory leaks. Thanks to Lorin Hochstein
- <lmh@xiphos.ca> for reporting the bug.
-
-Mon Dec 27 21:29:25 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Log_Msg_Test.cpp (test_ostream): removed local
- variable flags, because cxx X6.3/Linux doesn't like
- it as an int.
-
-Mon Dec 27 19:17:46 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/SOCK.cpp: Added #pragma template instantiations for g++.
-
-Mon Dec 27 16:24:09 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/IOStream.h (setb): commented out declaration of
- unused arg a.
-
-Mon Dec 27 15:51:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/test_config.h (set_output): with __USE_STD_OSTREAM
- (with Compaq cxx X6.3 on Linux), declare variable flags
- as std::ios_base::openmode instead of int. Otherwise,
- it complained about a type mismatch. Other compilers
- may need this eventually, as well. egcs didn't like it,
- so let's wait to see how best to generalize it.
-
-Mon Dec 27 13:03:50 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/QoS_Session_Impl.cpp: fixed the "pragma once is obsolete"
- warning thrown by Sung++.
-
-Mon Dec 27 12:27:33 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/run_tests.bat: Changed to allow _Borland 4_ users to set
- the PATH environment variable to include the path to the
- appropriate ACE dll if necessary, and it sets the PATH
- environment variable to the correct directory depending on the
- "build options". Thanks to Charles Frasch
- <cfrasch@spawar.navy.mil> for contributing this fix.
-
-Mon Dec 27 11:29:20 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_linux_cxx.GNU: removed
- -I/usr/include/g++. (It's not needed with\end{verbatim}
- ACE_HAS_CPLUSPLUS_HEADERS.) Thanks to Judy Ward
- <ptr_corp@ptrsv1.pko.dec.com> for pointing out that cxx should
- not be using the g++ headers.
-
- * ace/config-cxx-common.h: on Linux, #define
- ACE_HAS_CPLUSPLUS_HEADERS instead of ACE_LACKS_ACE_IOSTREAM.
-
-Mon Dec 27 09:28:40 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * QoS_Session_Impl.h: Fixed a warning in g++.
-
-Sun Dec 26 23:45:44 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * QoS_Session.h: Provided a definition for the virtual destructor
- of ACE_QoS_Session.
-
- * QoS_Session_Impl.{cpp,h}: Replaced the
- ACE_LACKS_INLINE_FUNCTIONS macro with __ACE_INLINE__.
-
- * ace/ace_dll.dsp: Added the new QoS files to the NT DLL project.
-
-Sun Dec 26 21:50:46 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- The following existing files were changed for the ACE QoS API.
-
- * SOCK.h:
- * SOCK.cpp:
- Added a QoS session set to the ACE_SOCK. Also methods to join
- a new QoS session.
-
- * SOCK_Dgram_Mcast.h:
- * SOCK_Dgram_Mcast.cpp:
- The QoS subscribe method was changed to accommodate QoS.
-
- The following new files were added.
-
- * QoS_Session.h: Has the abstract base class for concrete QoS
- implementations.
-
- * QoS_Session_Factory.{h,cpp}: Concrete Factory for QoS
- implementations. Currently two implementations are
- supported, RAPI and GQoS.
-
- * QoS_Session_Impl.{h,cpp,i}: Has the QoS implementation classes.
- RAPI and GQoS are supported.
-
- * ace/Makefile: Added the new QoS classes.
-
- * include/makeinclude/wrapper_macros.GNU (): Added the
- ACE_HAS_RAPI flag. For ACE to have RAPI support it should be
- built with "make rapi=1". The platform_macros.GNU should have
-
- PLATFORM_RAPI_CPPFLAGS=
- PLATFORM_RAPI_LIBS=-lrsvp
- PLATFORM_RAPI_LDFLAGS=
-
-Sun Dec 26 16:43:16 1999 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/OS.i:
- Replaced malloc with ACE_NEW_RETURN
-
-Fri Dec 24 16:33:48 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
-
- Added ACE_HAS_RECURSIVE_MUTEXES to list of macros.
-
- * configure.in:
-
- Fixed ACE_LACKS_SETSCHED test. It previously didn't check that
- sched_setscheduler() existed. Both sched_setscheduler() and
- either pthread_attr_setschedpolicy() or pthread_attr_setsched()
- must be defined. This was an AIX related fix.
-
- Initialized variables in all compile-time tests. This fixes
- compile-time test warnings on AIX.
-
-Fri Dec 24 13:06:59 1999 Ossama Othman <othman@cs.wustl.edu>
-
- The following fixes were motivated by problems discovered in a
- configure script log file (config.log) that was generated on AIX,
- and sent in by Mike Winter <Mike.Winter@Schwab.com>.
-
- * THANKS:
-
- Added my Mike Winter to the THANKS list.
-
- * acconfig.h:
-
- Removed an extraneous comment.
-
- * configure.in:
-
- Added tests for ACE_HAS_BROKEN_XTI_MACROS and
- ACE_HAS_BROKEN_T_ERROR.
-
- Updated TLI/XTI preprocessor directives in TLI/XTI related
- tests.
-
- Fixed pthread_rwlock_t and pthread_rwlockattr_t structure
- tests. Previously the tests were missing the header files to
- search in.
-
- AIX defines _THREAD_SAFE in <pthread.h>. Check if it is defined
- after including <pthread.h>.
-
- * ltcf-cxx.sh:
-
- Added Digital/Compaq C++ libtool support.
-
- Minor Sun C++ updates.
-
- * ace/OS.h:
-
- AIX defines TCP_NODELAY and TCP_MAXSEG in tiuser.h so undefine
- them if ACE_HAS_BROKEN_XTI_MACROS is defined before including
- tiuser.h.
-
- Simplified TLI/XTI related macros.
-
-Fri Dec 24 08:04:58 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace:
- tests: Moved ace/Auto_IncDec_T.cpp to
- tests/Auto_IncDec_Test.cpp, which is where it belongs. Thanks
- to David for reporting this.
-
-Thu Dec 23 13:57:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU: uncommented the
- rules for building .o files from .C and .cc files.
- They've been commented out since this file was put
- under CVS control, so it's not obvious why they can't
- be used. Thanks to Wei.Chiang@nokia.com for suggesting
- this.
-
-Thu Dec 23 12:16:38 1999 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace: Added missing files Capabilities.cpp and Configuration.cpp
- to $ACE_ROOT/ace/Makefile.bor.
-
- * ACE/tests: Added new tests Auto_IncDec_Test and
- Capabilities_test to Makefile.bor.
-
- * ACE/tests: Fixed syntax error in a Borland C++Builder specific
- section of Auto_IncDec_Test.cpp.
-
- * ACE/tests: Fixed Malloc_Test so that it does not fail with
- Borland C++Builder.
-
- * ACE/tests/ Changed run_tests.bat so that it does not invoke
- ACE_Init_Test when run with the "bor" command line
- argument. This test uses MFC and need not be built or run.
-
-Thu Dec 23 11:46:38 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Moved
-
- #if defined (ACE_HAS_SYS_FILIO_H)
- # include /**/ <sys/filio.h>
- #endif /* ACE_HAS_SYS_FILIO_H */
-
- from OS.i to OS.h so that the FIONREAD macro will be defined for
- the ACE_SOCK_Dgram::recv() method even if inline = 0. Thanks to
- Alain Sauron <sauron@syseca.thomson-csf.com> for reporting this.
-
-Wed Dec 22 11:29:43 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/auto_compile_win32.pl: Renamed ImplRepo.dsw to
- ImplRepo_Service.dsw. Thanks to Derek Dominish
- <derek.dominish@boeing.com> for reporting this.
-
-Wed Dec 22 08:44:56 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Log_Msg_Test.cpp: Conditionally compiled the iostream
- print statements so that the test builds correctly if
- ACE_LACKS_IOSTREAM_TOTALLY is defined. Thanks to David Levine
- for reporting this.
-
-Wed Dec 22 08:22:24 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/CDR_File_Test.cpp: disabled with
- ACE_LACKS_IOSTREAM_TOTALLY.
-
-Tue Dec 21 21:27:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-cxx-common.h: enable ACE_LACKS_ACE_IOSTREAM
- on Linux. cxx 6.3 generates unresolved streambuf symbols,
- otherwise.
-
- * include/makeinclude/platform_linux_cxx.GNU: added.
-
- * include/makeinclude/platform_osf1_4.0.GNU: changed comment
- now that cxx code is in ace/config-cxx-common.h.
-
-Tue Dec 21 08:02:43 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Msg.h (ACE_Log_Msg): Clarified that the
- ACE_Log_Msg_Callbacks are not inherited when a new thread is
- spawned. Thanks to Airat A. Sadreev <airat@hq.tatenergo.ru>
- for reporting this.
-
-Tue Dec 21 11:31:18 1999 bala <bala@cs.wustl.edu>
-
- * ACE version 5.0.10 released.
-
-Tue Dec 21 01:04:55 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ACE-configuration.txt:
-
- Updated information about using ACE+autoconf.
-
- * configure.in:
-
- Moved AC_{EXE,OBJ}EXT tests before C++ linker flags since these
- tests require C linker flags.
-
- * Makefile (release, releaseall):
-
- ACE-INSTALL should be a dependency of these targets in order for
- it to be generated. This fixes a "no such file or directory"
- error that occurs when making an ACE beta/release. Note that
- this fix is unrelated to the ACE+autoconf bootstrapping support
- that was recently added.
-
- * bin/bootstrap:
-
- Output message that lets the user know that bootstrapping is
- done.
-
-Mon Dec 20 23:55:18 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * Makefile (release, releaseall):
-
- Removed ACE+autoconf bootstrapping commands. Bootstrapping must
- be done later in the process (i.e. in bin/make_release).
-
- * bin/make_release:
-
- Fixed MD5 checksum generation.
-
- Added temporary hacks to bootstrap ACE+autoconf support into the
- release.
-
-Mon Dec 20 22:15:45 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * Makefile:
-
- Added ACE-configuration.txt, ltcf-c.sh, ltcf-cxx.sh and
- Makefile.in to the list of CONTROLLED_FILES.
-
- Added ACE+autoconf bootstrapping commands the release and
- releaseall targets. This allows a bootstrapped ACE+autoconf
- setup to be shipped with ACE, thus allowing the configure script
- to work "out of the box."
-
- * bin/bootstrap:
-
- Added bootstrapping options that enable or disable certain types
- of workspaces. By default, automatic dependency tracking is
- disabled by default.
-
- * bin/make_release:
-
- If path to additional GNU tools is broken, default to existing
- PATH and hope for the best.
-
- Fixed MD5 checksum generation.
-
-Mon Dec 20 21:14:41 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
-
- Disabled maintainer mode check that prevented users from running
- the configure script.
-
- Added experimental libtool C++ support.
-
- Replaced CVS directory check with top-level source directory
- check to prevent stock ACE makefiles from being overwritten
- during configuration.
-
- * ltcf-c.sh:
- * ltcf-cxx.sh:
-
- Adding these files to the CVS repository. They will soon be
- merged into the upstream libtool package. Local copies will no
- longer be necessary.
-
- * m4/acinclude.m4:
-
- Alot of M4 quoting fixes/improvements.
-
- Reduced size ACE_CONVERT_WARNINGS_TO_ERRORS Autoconf macro. It
- still needs to be refined a bit (e.g. AC_REQUIREing compiler
- flag setups).
-
- (ACE_CHECK_SETRLIMIT_ENUM, ACE_CHECK_GETRUSAGE_ENUM):
-
- Added regex for one or more spaces before function name to
- prevent functions such as "__getrusage" from matching the
- regex. This fixes a problem on platforms that have both
- "getrusage," and "__getrusage," for example.
-
- (ACE_CHECK_TOP_SRCDIR):
-
- Added this autoconf macro. It prevents ACE from being
- configured in the top-level source directory. Configuring ACE
- in the top-level source directory would cause the stock ACE
- makefiles to be overwritten. Since autoconf support in ACE is
- still in the testing stages, we need to make sure that users can
- fall back on the stock ACE build procedure. This "feature" can
- be overridden by using the "--enable-maintainer-mode" configure
- script option.
-
- * m4/compiler.m4:
-
- Set variable "WERROR" that contains the compiler flags to
- convert warnings to errors. Eventually, this support should be
- moved to its own macro that is AC_REQUIREd by
- ACE_CONVERT_WARNINGS_TO_ERRORS.
-
- * m4/features.m4 (ACE_CHECK_ASYNCH_IO):
-
- Minor M4 quoting fixes/improvements.
-
-Sun Dec 19 09:34:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/g++dep: set TAO_ROOT to $ACE_ROOT/TAO if it was
- unset. Thanks to Darrell for reporting that TAO_ROOT
- wasn't being substituted if it wasn't set.
-
-Sat Dec 18 01:16:20 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/ACE.cpp (recv_i and send_i): The selection of the next
- message block to send/recv was incorrect. The correct way is to
- chase the continuation chain and then go to the next
- continuation chain.
-
-Fri Dec 17 22:25:56 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-cxx-common.h: added, to factor out common
- configuration for Compaq cxx.
-
- * ace/config-osf1-4.0.h,config-linux-common.h: updated to
- use config-cxx-common.h.
-
-Fri Dec 17 21:32:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-linux-common.h: added support for Compaq
- (Digital) cxx. Currently, that just means allowing
- compilation to succeed.
-
-Fri Dec 17 21:29:19 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: use __DECCXX instead of DEC_CXX to detect that
- the compiler is Compaq (Digital) cxx. DEC_CXX is
- #defined in ACE config files for cxx, but __DECCXX is
- #defined by the compiler. Only the latter should be used.
-
-Fri Dec 17 21:20:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/TTY_IO.cpp (control): added static cast of TCSETS to
- int to avoid cxx 6.3 warning about conversion of unsigned
- int to int. Also added the cast to TCGETS.
-
-Fri Dec 17 14:40:02 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Local_Tokens.h (ACE_TSS_TPQ_Entry): Made the destructor
- virtual to avoid warnings from egcs.
-
-Fri Dec 17 13:27:24 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-pharlap.h: Added ACE_LACKS_TCP_NODELAY. Thanks to David
- Hauck <davidh@realtimeint.com> for this. Fixes bugzilla #270.
-
-Fri Dec 17 11:38:09 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * We just reached our 800th external contributor: Andrey
- Nechypurenko <andreynech@yahoo.com>. Andrey gets a free copy of
- ACE+TAO as a prize!
-
- * ace/config-linux-common.h: Wrapped the #define
- ACE_DEFAULT_SELECT_REACTOR_SIZE with a #if !defined() so that
- users can override this. Thanks to Charlie Duke
- <cduke@wpine.com> for suggesting this.
-
-Thu Dec 16 12:26:36 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * bin/auto_compile_win32.pl: Took out Concurrency Service from the
- build list.
-
-Wed Dec 15 21:24:05 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/config-win32-common.h (ACE_DEFAULT_MAX_SOCKET_BUFSIZ):
- Windows doesn't like 65536 ;-) If 65536 is specified, it is
- listenly ignored by the OS, i.e., setsockopt does not fail, and
- you get stuck with the default size of 8k.
-
-Tue Dec 14 08:57:03 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/OS.h: Added a #ifdef for WINSOCK2_GQOS for removing the
- errors on NT due to the previous change in ACE_Flow_Spec class.
-
-Tue Dec 14 07:49:58 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/OS.i:
- * ace/OS.h: Extended the ACE_Flow_Spec and ACE_QoS classes to
- accommodate the use of such classes for non-Win32
- platforms. These changes are motivated by the new ACE QoS
- classes that will soon be included with ACE.
-
-Mon Dec 13 16:23:22 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc.{h,cpp}: Made print_alignment_info available for all
- configuration.
-
-Mon Dec 13 02:49:04 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Memory_Pool.cpp (remap): Commented out the printout of remap
- message in MMAP_Memory_Pool as this function is called from the
- signal handler. (It didn't really cause any problem but we
- shouldn't use ACE_DEBUG from signal handlers anyway.)
-
-Mon Dec 13 01:12:00 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (update_state): make_changes() calls into
- user code which can request other changes. So keep looping
- until all requested changes are completed. Thanks to Edan Ayal
- <EdanA@cti2.com> for reporting this problem!
-
-Sun Dec 12 20:10:23 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-hpux-10.x.h: Tweaked ACE_MALLOC_PADDING,
- ACE_MALLOC_ALIGN, and ACE_CONTROL_BLOCK_ALIGN_LONGS manually for
- HPUX.
-
- * tests/Malloc_Test.cpp: Added an ACE_TEST_REMAP_ON_FAULT macro
- which is not defined on linux only. Linux seems to have problem
- calling mmap from within the signal handler.
-
-Sat Dec 11 15:00:43 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Malloc_Test.cpp (main): Alignment information should only
- be printed when ACE_NDEBUG is not defined.
-
-Sat Dec 11 14:27:27 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Makefile.am (pkginclude_HEADERS):
-
- Split header file list into `.h' files (HEADER_FILES) and `.i'
- (INLINE_FILES). This gets around a limitation on Solaris.
-
-Sat Dec 11 10:40:38 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-lynxos.h: Added ACE_HAS_TYPENAME_KEYWORD.
-
-Fri Dec 11 11:13:54 1999 James Hu <jxh@entera.com>
-
- * ace/Dirent.i:
- Constructor with a path passed in was not initializing dirp_.
-
-Fri Dec 10 17:29:54 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc.h:
- * ace/Malloc.cpp: Added <print_alignment_info> methods for both
- control block. They are only available for debug version.
-
- * tests/Malloc_Test.cpp: Removed temporary debug print out and
- changed to use <print_alignment_info>.
-
- This test no longer forces the mmap to remap. Linux doesn't
- handle the case correctly.
-
-Fri Dec 10 15:37:09 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ACE-INSTALL.html: Clarified how the clone procedure should
- work. Thank to Jerry D. De Master <jdemaste@ipdinc.com>
- for suggesting this.
-
- * ace/OS.h: Changed the value of O_NDELAY from 0 to 1 on
- Windows NT. Thanks to Craig Perras <cperras@watchguard.com> for
- reporting this.
-
-Fri Dec 10 15:55:53 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Configuration.cpp:
-
- Added a comment stating that ACE_SYNCH_MUTEX should not be used
- in the template instantiations because the resulting template
- instantiation for the single-threaded case already exists in
- ACE. Thanks to Doug for letting me know about this.
-
- * m4/compiler.m4 (CXXFLAGS):
-
- Added missing flags that fix Sun C++ 5.0 weirdness on Solaris.
-
-Fri Dec 10 14:35:26 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h (_RWSTD_NO_EXCEPTIONS):
-
- Sun CC 5.0 without exception support needs this macro to be
- defined to prevent warnings from occurring due to its broken
- <memory> header.
-
- * configure.in:
-
- Added a few "checkpoints" where the cache is saved to aid in
- debugging.
-
- (ACE_HAS_THREAD_SPECIFIC_STORAGE):
-
- Added check for pthread_keycreate(). Old POSIX threads
- implementations used pthread_keycreate() instead of
- pthread_key_create().
-
- (ACE_HAS_SIG_C_FUNC):
- (ACE_HAS_THR_C_FUNC):
- (ACE_HAS_THR_C_DEST):
-
- Added tests that check if signal handlers, thread start
- routines, and thread destructors should be declared `extern
- "C"'. These changes allow clean builds on Solaris 7 with Sun CC
- 5.0.
-
- (ACE_HAS_STDARG_THR_DEST):
-
- Check if thread destructor argument to pthread_key_create (or
- pthread_keycreate) should be of type `void(*)(...)'.
-
- * m4/compiler.m4 (_RWSTD_NO_EXCEPTIONS):
-
- Define _RWSTD_NO_EXCEPTIONS when compiling on Solaris with Sun
- CC 5.0 without exceptions.
-
-Fri Dec 10 11:43:50 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/run_tests.lst: Disabled the MT_Reactor_Timer_Test
- until Darrell can fix the timer queue.
-
-Fri Dec 10 07:24:12 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: on VxWorks, automatic
- construction/destruction of static objects should be enabled.
- Thanks to Erik Johannes <ejohannes@oresis.com> for reminding
- me of this.
-
-Thu Dec 9 17:18:57 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Acceptor.cpp (handle_input): Only printout a diagnostic
- message if ACE::debug () > 0. Thanks to Chris Uzdavinis
- <chris@atdesk.com> for reporting this.
-
-Thu Dec 9 19:55:58 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
- * configure.in:
-
- Added checks/support for the ACE_HAS_PTHREADS_UNIX98_EXT macro.
-
- * ace/OS.h (ACE_rwlock_t):
- * ace/OS.i (rw_tryrdlock, rw_trywrlock, rw_rdlock, rw_wrlock,
- rw_unlock):
-
- ACE_LACKS_RWLOCK_T should not imply !ACE_HAS_PTHREADS_UNIX98_EXT
- because the pthread_rwlock_t type exist despite the fact that
- rwlock_t doesn't.
-
-Thu Dec 09 15:53:20 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc.cpp:
- * ace/Malloc.h:
- * ace/Malloc.i: Separated the control block implementation into
- "position independent control block" and "lean and mean control
- block." Each control block implementation has its own
- definitions of Malloc_Header and Name_Node as inner classes.
- ACE_Control_Block implements the "old, lean and mean" control
- structure for ACE_Malloc_T and ACE_PI_Control_Block implements
- the "new, position independent" control structure for
- ACE_Malloc_T.
-
- Added several macros to finer control the padding and alignment
- because calculating the padding requires using some operations
- that can not be evaluated during the compile time and the
- original padding length calculation don't always work. Usually,
- you don't have to worry about the padding. But if you are
- interested in tweaking these parameters, here are some hints.
-
- - (ACE_MALLOC_PADDING): defines the minimum size of a Malloc_Header.
- The actual size of Malloc_Header should always be the a multiple
- of ACE_MALLOC_ALIGN and may be larger then ACE_MALLOC_PADDING.
-
- - (ACE_MALLOC_PADDING_SIZE): define the actual size of the array
- of long used to pad the ACE_Control_Block::ACE_Malloc_Header.
- If it is not defined by the user, ACE will try to calculate it
- for you. If it is defined as 0, there'll be no padding at all.
- This macro is compiler/platform dependent.
-
- - (ACE_CONTROL_BLOCK_ALIGN_LONGS): define the actual size of the
- array of long used to pad the ACE_Control_Block so that the
- first Malloc_Header always starts from the alignment boundary.
- If it is not defined by the user, ACE will try to calculate it
- for you. If it is defined as 0, there'll be no padding at all.
- This macro is compiler/platform dependent.
-
- - (ACE_PI_MALLOC_PADDING_SIZE): similar to ACE_MALLOC_PADDING_SIZE
- but applied to ACE_PI_Control_Block::ACE_Malloc_Header.
-
- - (ACE_PI_CONTROL_BLOCK_ALIGN_LONGS): similar to
- ACE_CONTROL_BLOCK_ALIGN_LONGS but applied to
- ACE_PI_Control_Block.
-
- * ace/Malloc_T.cpp:
- * ace/Malloc_T.h:
- * ace/Malloc_T.i: Parameterized the type of control block used in
- ACE_Malloc, which is now renamed to ACE_Malloc_T, as a template
- parameter so that we can control tradeoff between efficiency and
- flexibility.
-
- Another ACE_Malloc template class was added which simply use
- ACE_Malloc_T with ACE_Control_Block as its internal control
- structure so that we don't have to change the existing programs
- using ACE_Malloc. However, for platforms/compilers using
- explicit template instantiation, you still need to add the
- instantiations for the based template class. For example, if
- you instantiated "ACE_Malloc<A,B>", you'll need to add
- "ACE_Malloc_T<A,B,ACE_Control_Block>". Likewise for
- ACE_Malloc_LIFO_Iterator and ACE_Malloc_FIFO_Iterator.
-
- * ace/Based_Pointer_T.h: Renamed arguments "overload" to "o". KCC
- complained about using "overload" as variable names
-
- * ace/Configuration.cpp:
- * ace/Naming_Context.cpp:
- * ace/Service_Config.cpp:
- * ace/System_Time.cpp:
- * ace/Template_Instantiations.cpp:
- * docs/tutorials/021/client.cpp:
- * docs/tutorials/021/server.cpp:
- * examples/Reactor/Misc/demuxing.dsp:
- * examples/Shared_Malloc/Malloc.cpp:
- * examples/Shared_Malloc/test_persistence.cpp:
- * examples/System_V_IPC/SV_Semaphores/Semaphores.cpp:
- * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp:
- * examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp:
- * performance-tests/TCP/TCP.dsp:
- * tests/Malloc_Test.cpp:
- * tests/SV_Shared_Memory_Test.cpp: Added explicit template
- instantiations for base malloc class in corresponding with the
- above change.
-
-Thu Dec 09 15:40:03 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (mmap): on LynxOS, fixed use of file_mapping
- argument. It it was 0, set it equal to the address of
- an int on the stack. Thanks to Chad Elliott
- <elliott_c@ociweb.com> for reporting a problem with
- ACE_OS::mmap on LynxOS. And thanks to Chad for an
- explanation of why Malloc_Test and TAO's Naming_Service -f
- don't work: it's because they require that the mapped
- object be changed. LynxOS 3.0.x and earlier don't support
- that.
-
-Thu Dec 09 07:30:12 1999 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile (CONTROLLED_FILES): added ChangeLog-99a. Thanks
- to Pierre Oberson <oberson@nagra-kudelski.ch> for reporting
- that it was missing.
-
-Wed Dec 8 13:36:59 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in (ACE_SYS_RESTARTABLE_SYSCALLS):
-
- Disabled ACE_SYS_RESTARTABLE_SYSCALLS test. On platforms where
- it detects restartable system calls, it defines
- ACE_HAS_SIGNAL_SAFE_OS_CALLS. This causes the ACE_OSCALL*
- macros in OS.h to use "ACE_LOG_MSG->restart()" before
- ace/Log_Msg.h is included, ending up in ACE_LOG_MSG being an
- unknown macro. Currently, none of ACE's supported platforms
- actually define ACE_HAS_SIGNAL_SAFE_OS_CALLS so disabling this
- test okay for now.
-
- * ace/OS.i (ioctl):
-
- Commented out ACE_DEBUG call. ACE_OS should not depend on
- ACE_Log_Msg in any way.
-
-Wed Dec 8 10:15:20 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * bin/clone.cpp: The definition of mk_symbolic_link() was
- missing the third argument 'int level'. Thanks to Jerry De
- Master <jdemaste@ipdinc.com> for reporting this.
-
- * ace/Synch.h: Added comments to ACE_Thread_Mutex_Guard and
- ACE_Null_Mutex_Guard explaining that they were obsolete and
- should be replaced by ACE_Guard<ACE_Thread_Mutex> and
- ACE_Guard<ACE_Null_Mutex>, respectively. Thanks to Pierre
- Oberson for reporting this.
-
-Tue Dec 7 22:53:01 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp (send): Clarified that
- *someday* we'll improve the implementation to queue data when a
- connection is lost and automagically reinitiate the connection.
- Thanks to David X Callaway <david.x.callaway@intel.com> for
- motivating this.
-
-Tue Dec 07 22:14:15 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added a guideline about signal
- handlers.
-
-Tue Dec 7 21:39:42 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Fixed the definition of ACE_NETDBCALL_RETURN so that
-
- memcpy (TARGET,ace_result_,SIZE);
-
- is changed to
-
- memcpy (TARGET,ace_result_,
- SIZE < sizeof(TYPE) ? SIZE : sizeof(TYPE));
-
- This fixes a bug with UnixWare. Thanks to Phil Mesnier
- <mesnier_p@ociweb.com> for reporting this.
-
-Tue Dec 07 21:20:37 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Added ace.rc to project files. One can use
- GetFileVersionInfo on Win32 to get the ACE library version info
- now. Thanks to David Hauck <davidh@realtimeint.com> for
- suggesting this.
-
-Tue Dec 07 15:27:24 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added guideline to use THR_BOUND
- for time-critical threads. Thanks to Marina for reminding
- me about this, and for running some experiments on Solaris
- that demonstrate that it's necessary (and really works :-).
-
-Tue Dec 07 13:25:53 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Based_Pointer_T.{h,cpp}: Added two constructors that take a
- base pointer for base_offset_ calculation. They can be used
- when we already know the base address of the pointer to avoid an
- extra lookup from the Based_Pointer_Repository.
-
- * ace/Malloc_T.i (init_malloc_header_ptr): Changed to initialize
- the pointer using the address of control block. Notice that
- the address of the control block should never change during the
- lifetime of ACE_Malloc.
-
- Thanks to Irfan for noticing the performance issue.
-
-Mon Dec 06 21:16:53 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/SOCK_Dgram.cpp (send): Added missing timed send.
- Thanks to Yuval Yosef <yuvi@isdn.net.il> for motivating this.
-
- * ace/SOCK_IO.h (ACE_SOCK_IO): Most methods now support an
- optional timeout parameter.
-
- * ace/SOCK_Stream.h (ACE_SOCK_Stream): All methods now support an
- optional timeout parameter. Also fixed the <len> parameter type
- in recv_urg and send_urg to be size_t instead of int.
-
- * ace/ACE:
-
- - All the I/O function were made consistent in ACE. This
- included matching send and recv functions, all of which now
- support timeouts.
-
- - Many of the timed functions, e.g., ACE::readv() and
- ACE::sendto(), were changed such that the <timeout == 0> case
- was made common between the code that expected OS provided timed
- functions and the other where the timed function was simulated
- by ACE.
-
- - Certain file I/O operation were made simple by removing the
- extra <timeout> parameter. Timeouts are not supported in file
- I/O. In some cases, e.g., the timed writev and readv functions,
- the function was removed since it was not necessary as taking
- the <timeout> parameter made it redundant with the function in
- ACE_OS.
-
- - The "_n" methods were given a performance boost when they are
- used with timeouts. We only set the handle into non-blocking
- mode only once rather than for every iteration in the loop.
-
- - Added send/recv/send_n/recv/recv_n methods that take a message
- block as the data container.
-
- - Here is the description of the updated functions from the
- documentation:
- ________________________________________
-
- The <timeout> parameter in the following methods indicates how
- long to blocking trying to transfer data. If <timeout> == 0,
- then the call behaves as a normal send/recv call, i.e., for
- blocking sockets, the call will block until action is possible;
- for non-blocking sockets, EWOULDBLOCK will be returned if no
- action is immediately possible.
-
- If <timeout> != 0, the call will wait until the relative time
- specified in *<timeout> elapses.
-
- Errors are reported by -1 and 0 return values. If the operation
- times out, -1 is returned with <errno == ETIME>. If it succeeds
- the number of bytes transferred is returned.
-
- The "_n" I/O methods keep looping until all the data has been
- transferred. These methods also work for sockets in
- non-blocking mode i.e., they keep looping on EWOULDBLOCK.
- <timeout> is used to make sure we keep making progress, i.e.,
- the same timeout value is used for every I/O operation in the
- loop and the timeout is not counted down. If the transfer times
- out, the number of bytes transferred so far are returned.
-
- Methods with <iovec> parameter are I/O vector variants of the
- I/O operations.
- ________________________________________
-
- * ace/config-win32-common.h: Set IOV_MAX on Win32 to be 1024. It
- seems like Win32 does not have a limit on the number of buffers
- that can be transferred by the scatter/gather type of I/O
- functions, e.g., WSASend and WSARecv. We are arbitrarily
- setting this to be 1k for now. The typically use case is to
- create an I/O vector array of size IOV_MAX on the stack and then
- filled in. Note that we probably don't want too big a value for
- IOV_MAX since it may mostly go to waste or the size of the
- activation record may become excessively large.
-
- * ace/OS:
-
- The "faked" readv() in ACE for operating systems without it was
- calling read_n(). This was changed to call read() since readv()
- makes no guarantee that everything requested will be read. Same
- changes applied for writev().
-
- send_n() does not belong in the OS class. It belongs in the ACE
- class. Therefore, it was moved.
-
- read_n() is only called for file handles (and not for socket
- handles). Therefore, there is no point in checking for
- EWOULDBLOCK. Same change was made to write_n().
-
- * ace/Handle_Set.h (ACE_Handle_Set): Added an explicit fdset()
- function to get to the fd_set *. This eliminates the need for
- the stupid cast operator.
-
-Mon Dec 6 21:13:08 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Configuration.cpp (set_string_value): When setting a value
- in the registry, the specified length must include the NUL
- terminating character. Thanks to Chris Hafey
- <chris@stentorsoft.com> for reporting this.
-
-Mon Dec 6 11:06:43 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * m4/acinclude.m4 (ACE_TRY_COMPILE):
-
- Make choice of compiler flags to use dependent on the current
- autoconf test language. This fixes a problem with C++ compiler
- flags potentially passed as C flags to libtool.
-
- (ACE_USE_TEMP_FILE):
-
- Added checks for existing files that should be directories and
- vice versa.
-
- If the file passed as argument is in a directory and the
- directory doesn't exist then create the directory. In order to
- be as general as possible a script fragment was implemented with
- the same functionality as "mkdir -p" because "mkdir -p" may not
- be portable.
-
- * m4/threads.m4 (ACE_SEARCH_THREAD_FLAGS):
-
- Make choice of compiler flags to use dependent on the current
- autoconf test language. This fixes a problem with C++ compiler
- flags potentially passed as C flags to libtool.
-
-Mon Dec 06 08:25:22 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU: added more
- comments about support of 64-bit binaries with Sun CC 5.0.
- Thanks to Dani Flexer <dani.flexer@israel.sun.com> for
- providing them.
-
-Mon Dec 6 07:55:05 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-sunos5.7.h: Added several new #defines needed to
- port ACE to 64 bit Solaris. Thanks to Dani Flexer
- <dani.flexer@israel.sun.com> for these.
-
- * ace/ACE.cpp: Changed the implementation of count_interfaces()
- to handle the fact that size_t is a 64 bit type but the
- parameter to ioctl needs to be an int, which according to LP64
- is 32 bits. Thanks to Dani Flexer <dani.flexer@israel.sun.com>
- for reporting this.
-
- * netsvcs/lib/Client_Logging_Handler.cpp (handle_signal):
- If SIGPIPE occurs, ACE_Client_Logging_Handler::handle_signal()
- returns -1, thus removing svc handler from reactor. Since svc
- handler is implemented as a singleton here, all next incoming
- SPIPE connections operate on object that is already destroyed ->
- SIGSEGV/SIGBUS. Therefore, we now return 0 in handle_signal().
- Thanks to Alexander Dergatch <dergy@websci.ru> for reporting
- this.
-
- * netsvcs/lib/Server_Logging_Handler_T.cpp (svc): The following
- loop
-
- while ((result = this->handle_input ()) > 0)
- continue;
-
- causes server thread to leave its execution loop, because
- handle_input() always returns 0 or -1. This should be replaced
- with
-
- while ((result = this->handle_input ()) == 0)
-
- Thanks to Alexander Dergatch <dergy@websci.ru> for reporting
- this.
-
-Sun Dec 05 21:54:47 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Dump.cpp (ACE_ODB ctor): initialize current_size_
- data member, so that examples/misc/test_dump will pass
- on MSVC 6.0/NT 4.0, at least. Thanks to Soren Ilsoe
- <soren.ilsoe@tellabs.com> for reporting this.
-
-Sun Dec 5 16:50:37 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.h:
-
- Some compilers were picky about the circular dependency fix.
- Moved inclusion of ace/Log_Msg.h after ace/OS.i yet again.
-
-Sat Dec 04 21:14:37 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Malloc_Test.cpp (init_test): Need to call init_acquire to
- make sure the old mapfile does get removed.
-
- Added more printout items in the normally disabled debug
- section.
-
-Sat Dec 04 19:45:49 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Memory_Pool.cpp: Conditionally bind/unbind the
- Pagefile_Memory_Pool with the Based_Pointer_Repository depends
- on whether position independent pointers are used or not.
-
-Sat Dec 4 16:59:08 1999 Ossama Othman <othman@cs.wustl.edu>
-
- Circular dependency fixes/updates:
-
- * ace/OS.h:
-
- Include "ace/Log_Msg.h" before "ace/OS.i" because the methods in
- ACE_OS depend on ACE_Log_Msg for output and error reporting.
-
- * ace/Log_Record.h:
-
- Include "ace/OS.h" instead of "ace/ACE.h." OS.h is needed to
- pull in the definition of ACE_Export. ACE.h was overkill. This
- change is at the core of the circular dependency fix.
-
- * ace/Log_Record.cpp:
-
- Include "ace/ACE.cpp" to pull in definition of ACE::log2().
-
- The above changes made the following changes necessary. They also
- corrected an annoying circular dependency problem that was
- occurring when using an automatically generated ace/config.h. The
- below changes are actually legitimate fixes since the source files
- in question unnecessarily relied on other headers to pull in ACE
- class definitions.
-
- * ace/DLL.cpp:
-
- Include "ace/ACE.h" because ACE_DLL::open() uses ACE::ldfind().
-
- * ace/Functor.h:
-
- Include "ace/ACE.h" instead of "ace/OS.h" because
- "ace/Functor.i" needs the hash functions in the ACE class.
-
- All of the above changes nicely reduced the number of source files
- that depend on ace/ACE.{h,i}!
-
- * ace/Makefile:
- * apps/gperf/src/Makefile:
-
- Updated dependencies.
-
-Fri Dec 3 21:51:38 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc_T.cpp (shared_malloc): Changed the for loop to
- while(1) so the compilers can identify the control will never
- fall off the end of the loop and apply ACE_NOTREACHED to the
- final return statement.
-
-Fri Dec 03 12:14:31 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc_T.i (init_malloc_header_ptr): Applied ACE_UNUSED_ARG
- when we are not using position independent pointers.
-
- * ace/Malloc_T.cpp (shared_malloc): Split the structural exception
- try block into two to avoid warnings from the OSF compiler.
- Thanks to David for reporting this.
-
-Thu Dec 2 22:42:53 1999 James Hu <jxh@entera.com>
-
- * ace/TP_Reactor.cpp:
- Instead of setting suspend_set_ and wait_set_ both all the time,
- try to determine whether or not the handler is suspended and
- choose one of the sets to do the bit_ops on.
-
-Thu Dec 2 22:41:53 1999 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/OS.i:
- Added the bug fix to the SIO_GET_QOS call in ACE::ioctl () for
- RC2 release. This involved removing explicit buffer allocation
- for the provider specific buffer and just allocating one
- contiguos buffer for the QOS structure.
-
-Thu Dec 02 18:16:27 1999 James Hu <jxh@entera.com>
-
- * ace/Filecache.cpp: Make it possible to remove something from
- the Filecache.
-
-Thu Dec 02 18:03:27 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Malloc_Test.cpp (parent): Before binding the name "bar",
- do a series of small malloc and a huge malloc to make sure the
- child process will segfault and the remapping is tested on the
- child process.
-
- * ace/Memory_Pool.h:
- * ace/Memory_Pool.cpp: Added a no-op <remap> method to
- Local_Memory_Pool because we might call remap from ACE_Malloc on
- Win32.
-
- (Win32 only) Added a new <seh_selector> function that takes a
- pointer to an EXCEPTION_POINTERS and is responsible to determine
- if remapping of the memory map file is required or not.
-
- * ace/Malloc_T.h:
- * ace/Malloc_T.i (init_malloc_header_ptr): Added a new inline
- function which simply initializes a (position independent)
- pointer pointing to a Malloc_Header. This is required because
- the placement new in this function makes MSVC think we are
- creating a new object and disallow the use of ACE_SEH_TRY in
- functions that use placement new.
-
- * ace/Malloc_T.cpp: Added the use of ACE_SEH_TRY in several
- ACE_Malloc::shared_* methods so we can catch the potential
- access violations and force remapping of memory maps. On UNIX,
- this is done thru <handle_signal> in Memory_Pool.
-
-Thu Dec 2 09:17:02 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-win32-borland.h: Apparently, the Borland BC4 compiler
- lacks operator placement delete, so I added #define
- ACE_LACKS_PLACEMENT_OPERATOR_DELETE to handle this case. Thanks
- to Mike Gingell <mgingell@istar.ca>.
-
-Wed Dec 1 22:26:06 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/MM_Shared_Memory_Test.cpp: Make sure to force the test
- to use System V Semaphores if the OS platform supports POSIX
- semaphores natively (since these don't have the right semantics
- for this test). Thanks to Steve Huston for reporting this bug.
- This fix should clear BUG ID 382.
-
-Wed Dec 01 06:16:34 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc.h (ACE_MALLOC_PADDING): Restored default value to 1.
- Added a new macro ACE_MALLOC_HEADER_SIZE which serves the same
- function as ACE_MALLOC_PADDING (both specify the minimum malloc
- header size) but ACE_MALLOC_HEADER_SIZE is normalized to be
- multiple of ACE_MALLOC_ALIGN.
-
- (ACE_CONTROL_BLOCK_ALIGN_LONGS): Changed back to use
- ACE_MALLOC_ALIGN to calculate the starting malloc header
- alignment.
-
- * tests/Malloc_Test.cpp: Expanded the memory offset between parent
- and child mmap base address so there'll be no overlap even when
- we use a larger ACE_MALLOC_PADDING.
-
-Wed Dec 1 02:10:51 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Auto_IncDec_Test.cpp: The main() function was missing
- a return type. Also, don't run the test with output logged to
- stderr. Thanks to David Levine for reporting this.
-
-Tue Nov 30 16:11:52 1999 Steve Huston <shuston@riverace.com>
-
- * tests/run_tests.sh: Made the check for libDLL_Test use a
- configurable suffix rather than hardcoded .so so it works on
- platforms like HP-UX (which uses .sl).
-
-Tue Nov 30 14:24:31 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
-
- Minor cosmetic updates.
-
- * configure.in:
-
- Only enable POSIX semaphore support if process shared semaphores
- are supported. Presumably process shared semaphores are only
- available if the _POSIX_THREAD_PROCESS_SHARED macro is defined
- by the platform. [Bug 304]
-
-Tue Nov 30 00:22:48 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Malloc_Test.cpp: Changed to store the mmap allocator in an
- auto_ptr instead of as a static object so we can be absolutely
- sure about the creation order.
-
- Added an init_test method which creates a mmap memory pool and
- releases it immediately to make sure the test won't
- crash/deadlock due to previous crashes.
-
-Mon Nov 29 16:36:06 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc.h (ACE_MALLOC_PADDING): Changed the default value of
- ACE_MALLOC_PADDING to 16 to avoid some some alignment problem.
-
- Fixed the padding size calculation in ACE_Malloc_Header.
-
- * tests/Malloc_Test.cpp (main): Added some debug printout which is
- commented out for now (they are not used for regular test.)
-
-Mon Nov 29 14:34:16 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/config-win32-borland.h:
- * ace/config-win32-common.h:
-
- The ACE_HAS_BROKEN_IMPLICIT_CONST_CAST macro I previously
- removed is used in TAO's IDL_Test. Thanks to Jeff for pointing
- this out.
-
- * ace/OS.i (sema_init):
-
- The call to sem_init() for the process shared case incorrectly
- used USYNC_THREAD for the second argument. For the
- USYNC_PROCESS case, the second argument to ::sem_init() should
- be "type == USYNC_PROCESS" since it will evaluate to "1" in this
- case. A conditional is used since some platforms may not define
- USYNC_PROCESS to be a non-zero value.
-
-Mon Nov 29 12:15:56 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Auto_IncDec_Test.cpp: Updated this test to use multiple
- threads, if available. Thanks to Edan Ayal <EdanA@cti2.com> for
- this.
-
-Mon Nov 29 11:47:55 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.h:
-
- Backed out the inline related changes I made. Some compilers
- have a problem with them.
-
-Sun Nov 28 20:03:03 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.i (sema_init):
-
- According UNIX Network Programming V2 by Stevens, sem_init() is
- currently not required to return zero on success, but it *does*
- return -1 upon failure. For this reason, check for failure by
- comparing to -1, instead of checking for success by comparing to
- zero.
-
-Sun Nov 28 19:05:31 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process_Manager.cpp (open): Fixed an ASYS_TEXT usage.
- ASYS_TEXT can not enclose several string literals.
-
-Sun Nov 28 18:09:49 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * m4/acinclude.m4 (ACE_USE_TEMP_FILE):
-
- Check that the source directory is not the current directory
- before moving a file in the current directory out of the way.
- Previously an attempt to move the same file out of the way was
- performed to twice.
-
-Sun Nov 28 17:06:00 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
-
- Added ACE_HAS_POSITION_INDEPENDENT_MALLOC macro.
-
- * configure.in:
-
- Dropped AC_ISC_POSIX macro in favor of an AC_CHECK_LIB strerror
- test.
-
- Disabled exception handling support by default.
-
- Added "--enable-pi-malloc" configure script option to
- enable/disable ACE's position independent malloc feature. By
- default, this feature will be enabled.
-
- Added a run-time test for sem_open(). glibc() apparently
- defines a stub for this function in the pthread library but
- there is no entry in <gnu/stubs.h> for it. As such, the
- configure script assumed that it is a working function. It
- turns out it is not (on Linux with glibc <= 2.1.2).
-
- Generalized/improved setrlimit and getrusage tests that check if
- the first argument is an enum. The tests now determine exactly
- what the enum type is. Previously, the test was specific to
- Linux/glibc platforms.
-
- Fixed some tests that didn't initialize a const variable before
- it was used.
-
- Added a test that checks the integrity of the generated
- configuration. The test attempts to compile ace/OS.cpp. If it
- fails then the rest of ACE won't compile, indicating that the
- automatic configuration wasn't successful. Upon failure, some
- diagnostic information is output, and a request to submit a bug
- report is made.
-
- Flush the cached configuration test results to the cache file.
- This is mainly useful for configure script debugging purposes.
-
- * ace/Log_Msg.h (ACE_Log_Msg):
-
- Added additional spaces before comments describing each format
- specifier since the single quote "'" at the beginning of each
- description was interpreted as a troff comment. Thanks to Kevin
- Dalley for pointing this out and suggesting a fix.
-
- * ace/OS.h:
-
- Consolidated some ACE_INLINE macro preprocessor conditionals.
-
- Moved inclusion of Log_Msg.h and OS.i to the end of the file in
- case some declarations or definitions found earlier in OS.h are
- ever needed in the future by these two files.
-
- * ace/Trace.h:
- * ace/Trace.cpp:
-
- Removed inclusion of Log_Msg.h from Trace.cpp and included OS.h
- in Trace.h. OS.h is needed for the definition of ACE_Export.
-
- * ace/config-win32-borland.h:
- * ace/config-win32-common.h:
-
- Removed ACE_HAS_BROKEN_IMPLICIT_CONST_CAST macro. This macro
- isn't used anywhere in ACE or TAO.
-
- * ace/Makefile:
-
- Updated dependencies.
-
- * bin/am_edit:
-
- This script is generates IDL source file targets and
- dependencies in Makefile.in files. It is essentially the same
- script that the KDE developers use for their IDL sources except
- that it is has been customised for TAO_IDL generated sources.
- Thanks to Stephan Kulow <coolo@kde.org> for pointing out the
- availability of this script.
-
- * bin/make_release:
-
- Archive list should be concatenated instead replaced. This list
- is currently only used by the MD5 checksum generation support.
-
- * bin/generate_html_windex:
-
- Created this script to generate the acewindex.html file. It
- generates the acewindex.html directly from the man pages instead
- of an intermediate windex file. Some platforms don't have a
- "catman -w" equivalent command since the man database is
- generated automatically by the OS (e.g. Debian GNU/Linux). This
- script allows the acewindex.html file to be generated on such
- platforms. The windex file (not acewindex.html) isn't generated
- but this typically isn't a problem since it is not the ACE
- install system's responsibility to (re)generate a windex file at
- install time. It is up to the sysadmin to do so. Thanks to
- Kevin Dalley <kevind@rahul.net> for motivating the creation of
- this script.
-
- * bin/bootstrap:
-
- The list of ROFF and HTML man pages is now automatically
- generated and inserted into the appropriate Makefile.am file in
- this script. This allows the removal of the non-portable
- "$(shell ...)" expression from the Makefile.am files. It also
- improves build performance in the man directories since the list
- is only evaluate at bootstrap time instead of each time the
- directory is built.
-
- * man/Makefile.am (acewindex.html):
-
- Use the newly created `generate_html_windex' script to create
- the acewindex.html file since not all platforms support "catman
- -w" windex file generation.
-
- * man/html/Makefile.am (html_DATA):
- * man/man3/Makefile.am (man_MANS):
-
- Removed the commands that generate the man pages lists. The
- `bootstrap' script now takes care of substituting what each of
- the Makefile.am variables should contain.
-
- * m4/acinclude.m4:
-
- Improved ACE_USE_TEMP_FILE macro. It now checks for the
- existence of a file with the same name as the temporary file in
- the current directory, in addition to the top-level source
- directory.
-
- Moved the setrlimit and getrusage enum tests into Autoconf
- macros in this file. The macros are ACE_CHECK_SETRLIMIT_ENUM
- and ACE_CHECK_GETRUSAGE_ENUM.
-
- Fixed AC_SYS_RESTARTABLE_SYSCALLS and added it to this file.
- The patched version compiles and runs, whereas the existing/old
- version doesn't even compile on some platforms. The
- AC_SYS_RESTARTABLE_SYSCALLS test is broken in GNU Autoconf
- 2.13. I use this test to determine if the
- ACE_HAS_SIGNAL_SAFE_OS_CALLS macro should be defined for ACE. I
- patched it so that it works, at least platforms that expect a
- signal handler that expects an int argument.
-
- * m4/subsets.m4:
-
- Disable building of all subset libraries by default.
-
-Sun Nov 28 09:45:36 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * netsvcs/lib/Logging_Strategy.cpp: ACE_Logging_Strategy::fini ()
- now returns a value.
-
-Sun Nov 28 02:41:02 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Reactor_Notify_Test.cpp (run_test): Only print out the
- error message when the notification pipe is not disable.
- Otherwise, when the notification pipe gets disabled, the event
- loop depends purely on the OS scheduling policy to determine how
- many times to gets to run. Since the Supplier_Task removes
- itself from the reactor, there could be no active event handler
- available in the reactor when the <handle_events> gets called if
- the <perform_notifications> task finishes before the event loop
- has a chance to finish its iterations. Another way to solve
- this is to add a thr_yield after every notification but that
- seems to defeat the intention of the test. Thanks to Ivan
- Murphy for reporting the false error output.
-
-Sat Nov 27 22:06:26 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.cpp: Defined ACE_ENDTHREADEX and ACE_BEGINTHREADEX to use
- ExitThread and BeginThread for WinCE 2.11 and above. Thanks to
- Peter C. Chien <peter@newsol.com> for the tip.
-
- * ace/ace_ce_dll.dsp: Reworked for WinCE 2.11. More
- configurations are added and the distributed token related files
- are removed from the project.
-
- * ace/OS.{h,cpp}: WinCE 2.11 and above does implement exit method
- so we don't need to provide our own for them.
-
- * ace/config-WinCE.h: Updated configuration settings for WinCE
- 2.11.
-
- * ace/Memory_Pool.{h,i}: Added the <base_addr> method for
- accessing the base address information of the memory pool.
-
-Sat Nov 27 18:36:48 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Priority_Buffer_Test.cpp (consumer): Revised the test
- so that it doesn't bother to check the priority in the
- ACE_ASSERT macro if we're sending a shutdown message. Thanks to
- Ivan Murphy and Darrell Brunsch for narrowing this down.
-
-Thu Nov 25 13:32:00 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp (parse_args): Make sure
- to free() the host or logger key before calling strdup()!
-
- * netsvcs/lib/Logging_Strategy.cpp (parse_args): Fixed up this
- code so that we correctly allocated and deallocate filename_
- using strdup()/free() to prevent weird memory problems. Thanks
- to Alexander Dergatch <dergy@websci.ru> for reporting this.
-
-Sat Nov 27 15:01:44 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ACE version 5.0.9 released.
-
-Sat Nov 27 14:59:27 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/make_release:
- There was a non-scoped variable.
-
-Thu Nov 25 13:24:37 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/Capabilities_Test.cpp: Changed a variable from
- int to ACE_HANDLE.
-
-Thu Nov 25 02:17:34 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc.h: Added back some apparent bug fixes during the
- alignment change.
-
-Thu Nov 25 01:41:33 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc.h: Removed the alignment change for now.
-
-Wed Nov 24 14:41:14 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.i (wait): Changed to use the process handle to wait
- for process termination.
-
- * ace/OS.h:
- * ace/OS.i (wait,waitpid): Added an extra argument that takes the
- process handle of the waited process. On Win32, <pid> is
- ignored if the <handle> is not equal to 0. Passing the process
- <handle> is prefer on Win32 because using <pid> to wait on the
- project doesn't always work correctly if the waited process has
- already terminated.
-
-Wed Nov 24 08:30:52 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Shared_Malloc/test_malloc.cpp (malloc_recurse): Fixed
- the AMS macro to be ACE_MALLOC_STATS. Thanks to David Levine
- for reporting this.
-
-Tue Nov 23 12:47:39 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc.h: Modified the definition and use of
- ACE_MALLOC_PADDING_SIZE so that it works correctly and the code
- that uses it compiles... Thanks to Alexander Belopolsky
- <belopolsky@my-deja.com> for reporting this.
-
- * ace/Malloc: Replaced the AMS macro, which polluted the global
- namespace, with ACE_MALLOC_STATS, which doesn't... Thanks to
- Alexander Belopolsky <belopolsky@my-deja.com> for reporting
- this.
-
- * ace/OS.h: Modified ACE_MIN macro so that it uses the > operator to
- be consistent with the ACE_MAX macro. Thanks to Derek Dominish
- <Derek.Dominish@Australia.Boeing.com> for reporting this.
-
- * tests/Malloc_Test: Updated the Malloc_Test so that it'll
- allocate and test doubles to make sure they work correctly.
-
- * ace/Malloc.h: Modified the alignment logic to make things
- work properly for datatypes like doubles. Thanks to Alexander
- Belopolsky <belopolsky@my-deja.com> for working this out.
-
-Tue Nov 23 12:02:53 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/OS.i: Moved the inline methods for sec()/usec()/msec() so
- that are defined *before* they are used...
-
-Tue Nov 23 11:34:40 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Malloc_Test.cpp (myallocator): Applied ACE_TEXT to several
- malloc argument. Thanks to Ivan Murphy for reporting this.
-
-Tue Nov 23 11:06:13 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/CDR_File_Test.cpp (run_test): Changed <filename> to
- LPCTSTR so the test compile with UNICODE. Thanks to Ivan Murphy
- for reporting this.
-
-Mon Nov 22 18:02:19 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Strategies_T.cpp:
- * ace/Cached_Connect_Strategy_T.cpp:
-
- There was a strange interaction in
- find_or_create_svc_handler_i() because of these two changes:
-
- Fri Nov 12 00:30:41 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- and
-
- Mon Jul 19 22:46:54 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- Basically, <sh> was assigned to the newly created svc_handler.
- It had, however, not been added to the connection map nor had it
- been assigned a hint or recycler, i.e., it was partially
- initialized.
-
- However, we let go of the connector lock during the OS level
- connect call, hence exposing the partially initialized
- svc_handler to other threads.
-
- The solution is to use a temporary variable until the
- svc_handler is completely initialized. After this we can assign
- <sh> to <potential_handler>. Note that making a new svc_handler,
- connecting remotely, binding to the map, and assigning of the
- hint and recycler should be atomic to the outside world.
-
-Mon Nov 22 17:06:34 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * bin/auto_compile_win32.pl: Changed the project file for
- ImplRepo_Service. Thanks to Derek Dominish
- <Derek.Dominish@Australia.Boeing.com> for pointing this out.
-
-Mon Nov 22 14:15:23 1999 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * examples/Configuration/config_test.cpp: ACE-ified this example.
-
- * ace/OS.i: Replaced all the uses of ACE_Time_Value private methods
- within the overloaded global relational operator to use inline
- methods. This change should work around bugs with MSVC++.
- Thanks to Alok Gupta <alokg@ssind.stpn.soft.net> for reporting
- this.
-
- * ace/Service_Config.cpp (parse_args): Reverted the behavior
- of parse_args() so that it doesn't return an error when it runs
- across an option that it doesn't recognize. This is necessary
- to support certain use-cases where the Service Configurator is
- part of an application-specific configuration process. We do,
- however, print a warning message if ACE::debug() > 0. Thanks to
- Ivan Murphy <Ivan.Murphy@med.siemens.de> for reporting this and
- suggesting a fix.
-
-Sat Nov 20 10:16:07 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Configuration.cpp: Moved DEFBUFSIZE into the Win32-specific
- part of the code and changed the name to ACE_DEFAULT_BUFSIZE so
- that it won't conflict with any global names. Thanks to David
- Levine for reporting this.
-
-Fri Nov 19 17:25:13 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace: Double checked that ACE builds correctly when threads are
- disabled.
-
- * ace/Local_Tokens.cpp (client_id): Had to futz with the code
- a bit to get it to work for both the threaded and non-threaded
- case.
-
- * ace/Activation_Queue.h: Added a #define of ACE_Activation_List
- to ACE_Activation_Queue to be compatible with the terminology
- used in the POSA2 book!
-
- * ace/Message_Queue_T: Moved message_bytes(size_t) and
- message_length(size_t) from the *.i file to the *.cpp file to
- workaround bugs with SunC++ 5.0. Thanks to Rick Weisner
- <Rick.Weisner@East.Sun.COM> and John Tucker
- <jtucker@infoglide.com> for reporting this problem and providing
- the fix.
-
- * ace/Configuration.cpp: There were inconsistencies in the explicit
- template instantiations where ACE_Thread_Mutex should have been
- ACE_SYNCH_MUTEX so that the code will work when threading is
- disabled. In addition, we must be careful to conditionally
- compile certain ACE_Allocator<> and ACE_Malloc<> template
- instantiations since they are only valid when ACE_HAS_THREADS is
- defined.
-
- * include/makeinclude/platform_irix6.x_sgic++.GNU,
- * ace/Local_Tokens,
- * ace/Synch_T.i:
- Made a number of minor changes so that ACE will compile/work
- when threading is not enabled. Thanks to Extern Chatterji
- <Extern.Chatterji@kmweg.de> for reporting this.
-
- * ace/Message_Block.h: Clarified the comment for space().
- Thanks to Eric Newton for reporting this.
-
-Fri Nov 19 02:21:11 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Configuration.h:
- * ace/Configuration.cpp:
- Altered the Unicode macros used so it compiles in the two
- Unicode configurations. Thanks to Ruibiao Qiu
- <ruibiao@arl.wustl.edu> for noticing this.
-
-Thu Nov 18 22:49:09 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.lst: DISABLED Process_Manager_Test
- because it fails on Solaris and HPUX_aCC.
-
-Thu Nov 18 20:47:49 1999 Krishnakumar Elakkara Pathayapura <krish@cs.wustl.edu>
-
- * THANKS: added Marcelo Matus <mmatus@dinha.acms.arizona.edu>
-
-Thu Nov 18 19:44:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (ACE_TSS_Emulation::tss_base,ts_object): on VxWorks,
- if ACE_VXWORKS_SPARE is 0, allocate a TSS array (and
- zero it out) in tss_object () instead of tss_base ().
- This allow tss_base () to still be used on the left-hand
- side. The only way that tss_base () should be called
- on VxWorks with 0 ACE_VXWORKS_SPARE is through ts_object ().
- Thanks to Dave Steele <Dave_Steele@Mitel.com> and
- Dale Wood <Dale_Wood@Mitel.com> for further discussion and
- insight.
-
-Thu Nov 18 19:20:16 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.h (SEM_FAILED):
-
- Changed SEM_FAILED from ((sem_t *) 0) to ((sem_t *) -1).
- Although it makes more sense to have a zero fail value, it
- appears that many OSes are still brain damaged enough to use -1
- instead. This change is consistent with what ACE expected as
- the sem_open() fail value prior to my updates.
-
-Thu Nov 18 16:37:55 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.h:
-
- If a platform has named POSIX semaphores, define SEM_FAILED if
- it isn't already defined.
-
- * ace/OS.i (sema_init):
-
- Cast MAP_FAILED to (sem_t *) when comparing to sem_t pointer.
-
- Check sem_open() failure against SEM_FAILED macro instead of
- ((sem_t *) -1) since sem_open() in some named POSIX semaphore
- implementations returns ((sem_t *) 0) on failure (e.g. glibc
- 2.1.x on Linux).
-
-Thu Nov 18 08:19:39 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_Dgram_Bcast.cpp: Some systems seem to generate 0
- (AF_UNDEF) for the sa_family, even when there are no errors!
- Thus, we only print an error if this is not the case, or if
- we're in "debugging" mode. Thanks to Extern Chatterji
- <Extern.Chatterji@kmweg.de> for reporting this.
-
-Thu Nov 18 12:08:20 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Configuration.cpp: Added missing template instantiations for
- SunCC5.0
-
-Thu Nov 18 11:49:39 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * bin/make_release:
-
- Added MD5 checksum generation support. Each ACE/TAO archive
- will now have an associated file that contains its MD5
- checksum. [Bug 48]
-
-Thu Nov 18 08:19:39 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Added a new flag to win32 FormatMessage call,
- which removes unneccessary newlines in resulting message. So
- whole logged message fits on one line and logs are then nicer
- and easier to parse. Thanks to Martin Krumpolec
- <krumpo@pobox.sk> for contributing this.
-
-Wed Nov 17 22:45:01 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (ACE_TSS_Emulation::tss_base): on VxWorks,
- if ACE_VXWORKS_SPARE is 0, allocate a TSS array. This
- can happen if the task wasn't spawned through ACE,
- but then tries to use ACE's TSS emulation. Thanks
- to Dave Steele <Dave_Steele@Mitel.com> for the
- excellent detective work and patch.
-
- * ace/config-vxworks5.x.h: added ACE_VXWORKS_SPARE,
- defaulted to spare4.
-
-Wed Nov 17 17:36:25 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-hpux-11.x-hpc++.h: Added
- ACE_LACKS_PLACEMENT_OPERATOR_DELETE for aC++. This is a known bug by
- HP, at least at aC++ A.03.10.
-
-Wed Nov 17 16:33:40 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Makefile.am:
-
- Added Auto_IncDec_T.*, Capabilities.* and Configuration.* to
- list of sources.
-
- * tests/Makefile.am:
-
- Added Auto_IncDec_Test, Capabilities_Test and
- Process_Manager_Test to list of tests.
-
- * tests/Capabilities_Test.cpp:
-
- Create the config file within the test itself instead of having
- a seperate config file. This makes the test self-contained, and
- also allows the test to be run in a build environment where the
- sources are in a different directory from the binaries (e.g. a
- "VPATH" build). This change was motivated by a problem that
- occurred in an ACE+autoconf VPATH build.
-
- * tests/Capabilities_Test.cfg:
-
- Removed this file. It is now created at run-time by the
- Capablities_Test itself.
-
-Wed Nov 17 13:45:25 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
- * configure.in:
- * ace/OS.h:
- * ace/OS.i:
-
- Added support for two additional macros, namely ACE_HAS_LSEEK64
- and ACE_LACKS_LLSEEK_PROTOTYPE. This make it easier to
- customize llseek support for a given platform.
-
- * ace/config-linux-common.h:
-
- Define ACE_HAS_LSEEK64 and ACE_LACKS_LSEEK64_PROTOTYPE for glibc
- 2.1.x, and define ACE_HAS_LLSEEK and ACE_LACKS_LLSEEK_PROTOTYPE
- for glibc 2.0.x. [Bug 375]
-
-Wed Nov 17 07:36:04 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests: Removed the Cache_Manager_Test.cpp since Cache_Manager.*
- is no longer in ACE. Thanks to Airat A. Sadreev
- <airat@hq.tatenergo.ru> for reporting this.
-
- * netsvcs/lib/Client_Logging_Handler.cpp (fini): Added a void *
- cast to the arguments to ACE_OS::free(). Thanks to David Levine
- for reporting this.
-
-Tue Nov 16 07:58:11 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * netsvcs/lib/Client_Logging_Handler.cpp (fini):
- Make sure to dynamically allocate the logger_key_ and
- server_host_ so that we don't end up with weird memory problems.
- Thanks to Alexander Dergatch <dergy@websci.ru> for reporting this.
-
- * ace/config-irix6.x-common.h: Added
- ACE_LACKS_PLACEMENT_OPERATOR_DELETE to keep Irix compilers from
- complaining! Thanks to David for reporting this.
-
-Mon Nov 15 20:44:04 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.cpp (inherit_log_msg): Added a comment explaining why
- we don't inherit the callback when a new thread is created -
- since all hell would break loose otherwise if it came off the
- stack! Thanks to Sangwoo Jin <swjinjin@sei.co.kr> for
- motivating this clarification.
-
-Mon Nov 15 19:54:36 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace-config.in:
-
- Added missing "-lACE" to the library list. Thanks to Benedikt
- Eric Heinen <beh@icemark.ch> for pointing this out.
-
-Mon Nov 15 13:28:03 1999 Luther J Baker <ljb1@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (priority_mask_):
- Added delete_ostream_(0) to ctor.
-
-Mon Nov 15 09:33:49 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Synch.h (ACE_Mutex): changed protected: to public: in
- ACE_Mutex so that certain compilers would be happy. Thanks to
- Ivan Murphy for reporting this.
-
- * ace/Configuration.h (ACE_Configuration_Section_Key): The
- reserved word "operator" has a typo and is typed as "Operator".
- Thanks to Andy Gokhale for reporting this.
-
-Sun Nov 14 20:20:13 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Configuration.h: Improved the ACE-ification of this file.
-
-Sun Nov 14 18:13:37 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ACE-configuration.txt:
-
- Updated with information about bootstrapping autoconf support in
- ACE since it is currently not enabled by default in ACE.
-
- * configure.in:
-
- User must now specify the "--enable-maintainer-mode" configure
- script option in order to be able to use the configure script.
- If an attempt is made to run the configure script with this
- option, the configure script will immediately exit with a
- summary that states that ACE stock build procedure should be
- used until autoconf support is fully integrated into ACE.
-
- Once autoconf support is fully integrated into ACE, this
- requirement will be removed.
-
-Sun Nov 14 15:22:29 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Configuration.cpp: Fixed a statement unreachable in
- expand_path ().
-
-Sat Nov 13 19:55:17 1999 Luther J Baker <ljb1@cs.wustl.edu>
-
- * ace/SString.cpp (next):
- Removed a buggy line for Tokenizer.
- Thanks to Sangwoo Jin <swjinjin@sei.co.kr> for reporting this.
-
-Sat Nov 13 18:38:21 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Configuration.cpp: Fixed some compiler problems with the
- ACE_Malloc template instantiations and pointer casting.
-
-Sat Nov 13 11:29:20 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/run_tests.lst: Re-enabled the Process_Manager_Test
- to see if it Dave Madden's fixes worked.
-
-Fri Nov 12 21:26:58 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: without threads, added #ifndef protection for
- all of the THR_* macros that didn't already have it.
- And, with ACE_HAS_PRIOCNTL on sun, #include <thread.h>
- before #including sys/rtpriocntl.h. That ensures that
- the THR_* macros are defined first by the system header
- file. Thanks to Timothy Canham <Timothy.Canham@jpl.nasa.gov>
- for reporting this.
-
- Also, changed a couple of <ace/sys_conf.h> #includes
- to "ace/sys_conf.h", because that file is not a system
- header.
-
-Fri Nov 12 00:30:41 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Connector.cpp (connect_i): Since we should change <sh> only
- in the confines on the connector lock, it is not proper to use
- the <new_sh> copy of <sh> and assign it to <sh> when the connect
- succeeds. The removal of <new_sh> should not change the
- algorithm (famous last words ;) since <sh> not really be
- considered in the case of failures.
-
- * ace/Strategies_T.cpp (ACE_Cached_Connect_Strategy):
- * ace/Cached_Connect_Strategy_T.cpp:
-
- If the new connection fails, close out the svc_handler and set
- it to zero.
-
- Also in cleanup_hint_i(), reset the <*act_holder> in the
- confines and protection of the lock.
-
- * ace/Svc_Handler.cpp (cleanup_hint): Expanded the interface to
- allow the resetting of the <act_holder> in an atomic manner wrt
- the lock of the connector.
-
- The above changes should fix BUG 310. Thanks to Eric Mitchell
- <emitchell@altaira.com> for reporting it.
-
-Fri Nov 12 12:13:29 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h: Made _BSD_INCLUDES and ACE_HAS_CHARPTR_DL
- be defined only for pre-AIX 4.3. Thanks to Greg Siebers
- <gsiebers@vignette.com> for these changes.
- Set ACE_LACKS_PLACEMENT_OPERATOR_DELETE for IBM C++ 3.6 and prior.
-
-Fri Nov 12 11:50:19 1999 Nanbor Wang <nanbor@ace.cs.wustl.edu>
-
- * ACE-INSTALL.html: Added ACE lib/dll naming rules.
-
-Fri Nov 12 10:02:10 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-win32-common.h,
- * ace/config-win32.h: Fixed inconsistent use of <> and
- "" for ACE-specific #includes. Thanks to Dave Delano
- <delanod@agcs.com> for reporting this.
-
-Fri Nov 12 08:25:25 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Msg.cpp (open,log,dump): ensure that there
- is a message_queue_ by calling get_lock () in multithreaded
- applications. This solves the problem where the first
- thread that uses a Log_Msg terminates before any other
- threads create a Log_Msg instance. Thanks to
- Mike Mazurek <mmazurek@std.saic.com> for reporting this.
-
-Thu Nov 11 20:46:29 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * examples/Configuration/Makefile:
-
- Added a Makefile for this example.
-
- * examples/Configuration/config_test.cpp:
-
- ACEified this example, and corrected several errors and
- warnings.
-
-Thu Nov 11 20:28:44 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Local_Tokens.cpp:
- * ace/OS.cpp:
- Removed gcc-2.95 warnings about mismatch format and arguments,
- the warning only shows up under gcc-2.95 for alphas.
- We use <long> to print the addresses which produces correct
- results in all the platforms we have access to.
- Thanks to Cristian Ferretti <cfs@mat.puc.cl> for pointing this
- out.
-
-Thu Nov 11 19:55:52 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Configuration.h:
- * ace/Configuration.cpp:
- * examples/Configuration/config_test.cpp:
- MSVC doesn't like _export and _import so changed them to
- export_config and import_config.
-
-Thu Nov 11 18:41:24 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Configuration.h:
- * ace/Configuration.cpp:
-
- "path_" variable was allocated with strdup(), but deallocated
- with delete(). free() should be used instead.
-
- Added missing class members to member initializer lists.
-
- Changed name of export() to _export(). "export" is a C++
- keyword, and shouldn't be used as function name. The import()
- method was changed to _import() for sake of being consistent.
-
- Removed duplicate template instantiations.
-
-Thu Nov 11 17:09:19 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Configuration.h:
- * ace/Configuration.cpp:
- ACE-ified the code. Also fixed miscellaneous compiler warnings
- and put in template specialization code.
-
-Thu Nov 11 12:10:40 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager.cpp,
- ace/Process.cpp: It looks like the thread that's going to use
- the Process_Manager object must do a setpgid (0, 0) in order to
- establish a process group for its children. Apparently, when
- you run the test program from the command line, the shell sets
- the process up in a group of its own, but when you run it from
- the test script, it's a member of the script's group. In the
- latter case, when you spawn a child process, you can't add it to
- your own group (because your group doesn't exist!). Thanks to
- Dave Madden <dhm@mersenne.com> for contributing this fix.
-
-Thu Nov 11 01:54:55 1999 Luther J Baker <ljb1@cs.wustl.edu>
-
- * ace/Log_Msg.h (msg_ostream):
- * ace/Log_Msg.cpp (msg_ostream):
- * ace/Log_Msg.cpp (~ACE_Log_Msg):
-
- Added a member to flag whether or not Log_Msg object
- assumes responsibility for destroying its ostream_*.
-
-Wed Nov 10 23:29:25 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Configuration.cpp:
- * ace/Configuration.h:
- * ace/Configuration.i:
- * examples/Configuration/Configuration.dsw:
- * examples/Configuration/Test.dsp:
- * examples/Configuration/config_test.cpp:
- Added the ACE Configuration class files. Thanks to Chris
- Hafey <chafey@pacbell.net> for submitting them.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- * ace/Makefile:
- * examples/Configuration/Makefile:
- Added the Configuration files to the projects and Makefiles.
-
- * ace/config-win32.h:
- MSVC only supports operator placement delete as of version 6.
-
-Wed Nov 10 22:12:32 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
-
- Enabled the CVS directory check so that ACE's stock Makefiles
- won't get inadvertently clobbered by developers who want to
- experiment with the configure script.
-
- * m4/acinclude.m4:
-
- Made CVS directory check more verbose. It now provides an
- example of how to avoid the error it detects, i.e. it provides
- an example that demonstrates to do a build without affecting the
- source.
-
- * Makefile.in:
- * ace/Makefile.in:
- * ace/config.h.in:
- * apps/gperf/src/Makefile.in:
- * apps/gperf/Makefile.in:
- * apps/Makefile.in:
- * netsvcs/clients/Logger/Makefile.in:
- * netsvcs/clients/Naming/Client/Makefile.in:
- * netsvcs/clients/Naming/Dump_Restore/Makefile.in:
- * netsvcs/clients/Naming/Makefile.in:
- * netsvcs/clients/Tokens/collection/Makefile.in:
- * netsvcs/clients/Tokens/deadlock/Makefile.in:
- * netsvcs/clients/Tokens/invariant/Makefile.in:
- * netsvcs/clients/Tokens/manual/Makefile.in:
- * netsvcs/clients/Tokens/mutex/Makefile.in:
- * netsvcs/clients/Tokens/rw_lock/Makefile.in:
- * netsvcs/clients/Tokens/Makefile.in:
- * netsvcs/clients/Makefile.in:
- * netsvcs/lib/Makefile.in:
- * netsvcs/servers/Makefile.in:
- * netsvcs/Makefile.in:
- * man/html/Makefile.in:
- * man/man3/Makefile.in:
- * man/Makefile.in:
- * tests/Makefile.in:
-
- Added these files so that developers who don't have GNU
- Autoconf, Automake and Libtool can run the configure script and
- attempt builds to provide feedback to us.
-
-Wed Nov 10 21:35:47 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * m4/compiler.m4:
-
- Added some default flags for compilers on IRIX.
-
- * m4/threads.m4:
-
- Added more thread library checks in an effort to figure out if a
- thread library really is needed, in the case that the initial
- check for pthread_create succeeds without the need of a thread
- library. Such a problem occurred on IRIX. This modification
- should correct the problem.
-
-Wed Nov 10 10:55:34 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/OS.i (memset, thr_self, thr_getspecific):
-
- Commented the ACE_TRACE statements. On some compiler/platform
- combinations these methods get called before the Object Manager
- is initialized, which causes the ACE_TRACE call to seg fault
- when tracing is enabled in ACE.
-
-Tue Nov 9 17:50:01 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/config-hpux-10.x-hpc++.h:
- Added ACE_LACKS_PLACEMENT_OPERATOR_DELETE since it doesn't seem
- to be supported on aCC.
-
-Tue Nov 9 15:47:10 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/XtReactor.cpp (TimerCallbackProc):
-
- Fixed "unused argument" warning.
-
-Tue Nov 9 14:57:51 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * configure.in:
-
- Minor comment updates.
-
- * m4/features.m4:
-
- Fixed asynchronous IO tests. The tests now properly detect
- working asynchronous IO on Linux, for example.
-
- Force asynchronous IO tests to be performed after the thread
- detection tests in case the real time functions depend on the
- thread library.
-
-Tue Nov 9 10:11:22 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-g++-common.h: Added ACE_LACKS_PLACEMENT_OPERATOR_DELETE
- for the GCC 2.8 and earlier family of compilers since they don't
- seem to support this feature.
-
-Mon Nov 8 09:41:34 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Svc_Handler.cpp: Removed the unused parameter `n'. Thanks
- to David Levine for reporting this.
-
-Mon Nov 8 16:34:27 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * acconfig.h:
- * configure.in:
-
- Added autoconf support/tests for the following ACE macros:
-
- ACE_HAS_STRPTIME
- ACE_LACKS_NATIVE_STRPTIME
- ACE_LACKS_PLACEMENT_OPERATOR_NEW
- ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-
-Mon Nov 8 09:41:34 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-g++-common.h: Added ACE_LACKS_PLACEMENT_OPERATOR_NEW
- for older versions of G++. Thanks to David Levine for reporting
- this.
-
- * ace/config-sunos5.5.h: Added a #define for
- ACE_LACKS_PLACEMENT_OPERATOR_DELETE to handle problems with
- SunC++ 4.2.
-
- * ace/Svc_Handler: Not all C++ compilers support placement
- operator delete, so we need to #ifdef for it. Thanks to Andy
- Gokhale for reporting this.
-
-Sun Nov 07 23:36:51 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/run_tests.bat:
- * tests/tests.dsw:
- * tests/Auto_IncDec.dsp:
- * tests/version_tests/version_tests.dsw:
- * tests/version_tests/Auto_IncDec_Test.dsp: Added Auto_IncDec_Test
- for MSVC workspaces.
-
-Sun Nov 7 12:03:31 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Svc_Handler: Added two new placement operator new() and
- delete() operations so that it is possible to allocate an
- ACE_Svc_Handler from a custom allocator. Thanks to Edan Ayal
- <EdanA@cti2.com> for contributing this.
-
- * tests/run_tests.lst: Added Auto_IncDec_Test to the tests.
-
- * ace/Makefile,
- tests/Makefile: Added the new Auto_IncDec* stuff to the
- makefiles.
-
- * ace: Added Auto_IncDec_T.{h,i,cpp} to the ACE release. This class
- automatically increments and decrements a parameterized counter.
- Thanks to Edan Ayal <EdanA@cti2.com> for contributing this.
-
- * tests/Auto_IncDec_Test.cpp: Added a test for the ACE_Auto_IncDec
- class. Thanks to Edan Ayal <EdanA@cti2.com> for contributing
- this.
-
-Fri Nov 05 14:26:38 1999 Jim Buck <jim@nowsol.com>
-
- * ace/OS.cpp (ACE_Time_Value::set): fixed calculation of
- microsecond part. This change restores the correct pre-ACE 5.0
- behavior.
-
-Fri Nov 5 07:58:14 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Memory_Pool.i: Fixed stupid typos in Memory_Pool.i.
- Thanks to Jeff Parsons for reporting this.
-
- * ace/Memory_Pool.i: Default arguments shouldn't be in the
- *.i signatures. Thanks to Andy Gokhale for reporting this.
-
-Thu Nov 4 08:36:34 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Memory_Pool: Moved the sync() and protect() methods
- from ACE_Pagefile_Memory_Pool into the *.i file and made their
- parameter names anonymous since these methods are no-ops.
- Thanks to Martin Krumpolec <krumpo@pobox.sk> for suggesting
- this.
-
- * include/makeinclude/compiler.bor: Changed MISC_CFLAGS
- to -a8 -b- -Ve -Vx. Thanks to Jody Hagins for this suggestion.
-
-Thu Nov 04 15:19:54 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 5.0.8 released.
-
-Thu Nov 04 08:16:25 1999 David L. Levine <levine@cs.wustl.edu>
-
- * config-linux-common.h: only enabled ACE_HAS_SIGTIMEDWAIT
- with glibc. RedHat 5.2 doesn't have sigtimedwait.
-
-Mon Nov 01 14:29:04 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Filecache.cpp,Capabilities.cpp,Makefile: moved
- ACE_Hash<ACE_CString> and ACE_Equal_To<ACE_CString>
- explicit instantiations from Filecache.cpp to Capabilities.cpp,
- because it needs them and is used with FOR_TAO.
-
-Mon Nov 01 15:05:44 1999 Steve Huston <shuston@riverace.com>
-
- * THANKS: Added Greg Siebers <gsiebers@vignette.com>
-
-Mon Nov 01 15:02:31 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-aix-4.x.h: Added definition of ACE_LD_SEARCH_PATH.
- Thanks to Greg Siebers <gsiebers@vignette.com> for this fix.
-
-Mon Nov 01 10:11:36 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Capabilities.{i,cpp}: unlined definition of
- ~ACE_CapEntry. It caused an internal compiler error
- with g++ 2.7.2.3, and it is a good idea to not inline
- it because it's virtual. Also, prepended ACE_ to
- enum values.
-
-Sun Oct 31 22:46:17 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Capabilities_Test.cpp (main): removed declarations
- of unused argc and argv arguments.
-
-Sun Oct 31 16:39:53 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Capabilities.cpp:
- Added ACE_BUILD_DLL so the class is properly exported on NT.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp:
- Added Capabilities files to MSVC projects.
-
- * tests/Capabilities_Test.cpp:
- Was loading the wrong file, changed to loading
- Capabilites_Test.cfg instead of captest.cfg.
-
- * tests/Capabilities_Test.dsp:
- * tests/version_tests/Capabilities_Test.dsp:
- * tests/tests.dsw:
- Added Capabilities_Test project files.
-
- * tests/run_tests.bat:
- Added Capabilities_Test to the list of tests.
-
-Sun Oct 31 15:29:08 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Capabilities.cpp: Cleaned up some of the explicit template
- instantiations so they will work on all platforms. Thanks to
- Bala for pointing this out.
-
- * ace/Makefile,
- * tests/run_tests.lst,
- tests/Makefile (BIN): Added an entry for the new ACE_Capabilities
- classes.
-
-Fri Oct 29 21:09:49 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * man/html/Makefile.am:
-
- For some reason Automake couldn't automatically copy the HTML
- man pages to the distribution directory when doing a `make dist'
- so do it manually.
-
-Fri Oct 29 19:53:59 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * Makefile.am (EXTRA_DIST):
-
- Removed ACE.DSW from the distribution list.
-
- * configure.in:
-
- Removed test for necessity of _GNU_SOURCE macro. All uses and
- need of that feature test macro have been removed from ACE.
-
- If a thread library was detected, define _REENTRANT in the
- command line, not the generated config.h header. The user can
- use the ace-config script to determine what other flags are
- needed to compile ACE.
-
- Check for sched_yield in the librt library, if it exists, in
- addition to the others listed. Solaris 7 moves sched_yield from
- the libposix4 library to librt.
-
- Added libsocket to list of libraries to search for
- getservbyname().
-
- If check for socket() results in unresolved symbols, add `-lnsl'
- to library search.
-
- Improved ACE_HAS_PTHREAD_PROCESS_ENUM test.
-
- Added checks for getpgid, strtok_r, strptime and lseek64
- prototypes. The old getpgid test is superceded by a new one. A
- prototype is declared if the checks determine that certain
- feature test macros are needed to enable them.
-
- Added man directory Makefiles to list of files to generate.
-
- * ace-config.in:
-
- Minor updates. Modified so that "ace" is the default library if
- one isn't specified.
-
- * ace-config.1.in:
-
- Minor updates.
-
- * ace/config-linux-common.h:
- * ace/OS.h:
-
- Moved all prototypes to OS.h. Only macros should be defined
- config headers. Each of the moved prototypes are enabled by
- using the following newly added macros:
-
- ACE_LACKS_GETPGID_PROTOTYPE
- ACE_LACKS_STRPTIME_PROTOTYPE
- ACE_LACKS_STRTOK_R_PROTOTYPE
- ACE_LACKS_LSEEK64_PROTOTYPE
-
- All prototypes in ace/OS.h should come after the inclusion of
- ace/Basic_Types.h since the prototypes may need types that are
- only available after that inclusion. Also added a
- ACE_LACKS_PREAD_PROTOTYPE that is used to enable make both
- pread() and pwrite() protypes.
-
- Recent glibc libraries have pread() and pwrite() but only enable
- the prototypes if _XOPEN_SOURCE=500 is defined (Single Unix
- specification). Now define ACE_HAS_P_READ_WRITE and
- ACE_LACKS_PREAD_PROTOTYPE on Linux.
-
- * bin/bootstrap:
-
- Added ACE man page generation. Generating the man pages during
- the bootstrapping process allows the man page list in
- man/man3/Makefile.am to be generated by a shell command instead
- of having to explicitly specify each man page in that Makefile.
- The man pages will only be generated if the ACE.3 man page
- doesn't exist. That man page should be representative of the
- existence of the rest of the man pages.
-
- * man/Makefile.am:
- * man/html/Makefile.am:
- * man/man3/Makefile.am:
-
- Added Automake input files for the ACE man pages. The man pages
- will now be installed during a `make install'. This is an
- ACE Configuration Project specific enhancement. ACE's current
- man page scheme is unchanged, and doesn't support this feature.
-
- * m4/features.m4:
-
- Delete test_aio.log when the test is done.
-
-Fri Oct 29 17:01:58 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/OS.h: Added ACE_DEFAULT_SHLIB_MODE for KCC. Since this mode
- wasnt right the DLL_Test failed when compiled using the KAI
- compiler. This change fixes this problem too. Thanks to Nanbor
- <nanbor@cs.wustl.edu> and Michael Kircher
- <michael.kircher@mchp.siemens.de> for helping me on this task.
-
-Fri Oct 29 07:08:16 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU,
- include/makeinclude/wrapper_macros.GNU
- include/makeinclude/platform_vxworks5.x_g++.GNU:
- fixed typo: COMSPEC instead of COMPSPEC.
-
-Thu Oct 28 11:15:43 1999 Nanbor Wang <nanbor@ace.cs.wustl.edu>
-
- * docs/ACE-guidelines.html: Added a new guideline on avoiding
- multicharacter format specifiers in ACE_DEBUG/ACE_ERROR.
-
-Thu Oct 28 10:54:42 1999 Nanbor Wang <nanbor@ace.cs.wustl.edu>
-
- * ace/Message_Block.cpp:
- * ace/Name_Request_Reply.cpp:
- * ace/Time_Request_Reply.cpp:
- * ace/Token_Request_Reply.cpp:
- Replaced the use of %ld or %lu with %d or %u in
- ACE_DEBUG/ACE_ERROR.
-
- * ace/config-kcc-common.h: Undefined
- ACE_HAS_NONSTATIC_OBJECT_MANAGER. Thanks to Russ Noseworthy for
- noticing this.
-
-Thu Oct 28 10:49:51 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ACE.dsw: This is an internal file that I last updated
- in 1997 (I don't think it ever got included in the
- releases). Being out of date and not used, I removed it.
-
-Thu Oct 28 09:31:19 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/SOCK_Send_Recv_Test.cpp (client): if len is not 255,
- print out its value.
-
-Thu Oct 28 09:27:47 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.local.GNU,
- include/makeinclude/wrapper_macros.GNU
- include/makeinclude/platform_vxworks5.x_g++.GNU:
- support ComSpec as well as COMSPEC environment variable
- (on Windows). Thanks to Tom Venturella for reporting that
- ComSpec was defined on the system that he was using.
-
-Wed Oct 27 20:31:22 1999 Luther J Baker <ljb1@cs.wustl.edu>
-
- * ace/Arg_Shifter.h (ACE_Arg_Shifter): Spelling errors.
-
-Wed Oct 27 16:45:56 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): use an
- ACE_reinterpret_cast instead of an ACE_static_cast to
- cast func (of type ACE_THR_FUNC_INTERNAL) to ACE_THR_FUNC.
- Thanks to Tom Venturella for reporting that the static_cast
- didn't compile on Tornado II.
-
-Wed Oct 27 16:40:07 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h,ACE.h: added newline before ACE_CLASS_IS_NAMESPACE.
- This might solve the problem with the ACE_OS man page
- generation failure. Thanks to Samuel Stickland <sps196@hotmail.com>
- for reporting this problem.
-
-Wed Oct 27 12:53:15 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Object_Manager.h:
- * ace/config-win32.h: The instructions on how to disable the use
- of nonstatic object manager were not consistent for NT and other
- platforms. Thanks to Russ Noseworthy for reporting this.
-
-Wed Oct 27 09:48:41 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: changed check
- for whether exceptions are enabled from ifndef exceptions
- to ifeq ($(exceptions),). That allows use of
- exceptions=0. Thanks to Phil Mesnier <mesnier_p@ociweb.com>
- for reporting this.
-
-Wed Oct 27 09:46:05 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_qnx_neutrino.GNU: removed
- -Winline, because it was complaining about operator<<
- in generated code.
-
-Wed Oct 27 08:32:47 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (timezone): Added an ACE_UNUSED_ARG to please KCC.
- Thanks to Dave Madden for reporting this.
-
-Tue Oct 26 14:56:15 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/FlReactor.cpp (reset_timer_interval): Fixed a compile error
- with Sun_Egcs. Thanks to Thomas Groth <groth.th@stn-atlas.de>
- for reporting this problem & also for giving a fix.
-
-Sat Oct 23 19:11:51 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE version 5.0.7 released.
-
-Fri Oct 22 16:58:44 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Dynamic_Service.h: Added an include for OS.h so the
- Dynamic_Service.cpp will always get included on platforms
- that need it (ie. win32).
-
- Thanks to Paulo Breda Vieira <breda@inesca.pt> for spotting
- this problem in the AV Streaming code on NT.
-
-Thu Oct 21 20:21:13 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Memory_Pool.cpp (map_file): Make sure to update the
- base_addr_ with the new mem_map_.addr() before the call to
- update the ACE based pointer. Thanks to Damien Dufour
- <damien.dufour@horoquartz.fr> for reporting this.
-
-Thu Oct 21 17:10:17 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/OS.i (ioctl): Corrected the implementation of
- ACE_OS::ioctl () call with ACE_SIO_GET_QOS io control
- code. Thanks to Vidya Narayanan <CVN065@lmpsil02.comm.mot.com>
- for reporting this.
-
- * ACE_wrappers/examples/QOS/server.cpp:
- * ACE_wrappers/examples/QOS/client.cpp:
- * ACE_wrappers/examples/QOS/Sender_QOS_Event_Handler.cpp:
- * ACE_wrappers/examples/QOS/Receiver_QOS_Event_Handler.cpp:
- Changed the QOS example to GET-QOS only on receipt of a QoS
- event. Also tested the changes made to the ioctl (GET_QOS) in
- OS.i.
-
-Thu Oct 21 15:46:08 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.lst: disabled Process_Manager_Test, for now,
- because it asserts on Solaris, Irix, Linux, and HP/UX.
-
-Wed Oct 21 14:05:00 1999 Ruibiao Qiu <ruibiao@cs.wustl.edu>
-
- * ace/examples/IPC_SAP/ATM_SAP/CPP_{client,server}.dsp: Added
- configurations for building static executables on NT.
-
-Wed Oct 20 00:05:34 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Replaced 0666 wit ACE_DEFAULT_FILE_PERMS. Thanks
- to Dave Delano for reporting this.
-
-Tue Oct 19 13:31:15 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Params.h, ATM_QoS.{h,i}:
- Cleaned up comments, removed ACE_ATM_QoS::get_options_params
- method (since it's not used), and made changes for UNIX build.
-
-Tue Oct 19 12:55:16 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Codeset_IBM1047.h:
-
- Include `ace/inc_user_config.h' before check for definition of
- ACE_MVS macro since otherwise ACE_MVS may not get defined.
-
- * ace/Codeset_IBM1047.cpp:
-
- Moved inclusion of `ace/Codeset_IBM1047.h' ahead of ACE_MVS
- macro definition check, and removed inclusing of
- `ace/inc_user_config.h'
-
- * ace/OS.i (llseek):
-
- Reenabled lseek64() on Linux. If _LARGEFILE64_SOURCE is not
- defined then an external declaration for lseek64() is made in
- the config-linux-common.h header.
-
- * ace/config-linux-common.h:
-
- Minor comment update.
-
- Added extern declaration of lseek64() if _LARGEFILE64_SOURCE is
- not defined.
-
- * ace/Handle_Set.cpp:
-
- Check if _XOPEN_SOURCE is #defined instead of _GNU_SOURCE to
- determine if the fd_set structure has an fds_bits member.
-
- * ace/Makefile:
-
- Updated dependencies.
-
- * ace/Makefile.am:
-
- Added ATM files to source lists.
-
- * acconfig.h:
-
- Added entries for some additional "feature test" macros, such as
- _XOPEN_SOURCE.
-
- * bin/g++dep:
- * include/makeinclude/rules.local.GNU:
-
- Incorporated Jody Hagins <jody@atdesk.com> patches that get
- around a trailing backslash problem in generated Makefile
- dependencies. Thanks Jody!
-
-Tue Oct 19 12:30:00 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * examples/Web_Crawler.dsp: Changed the settings to make the
- executable name as main.exe.
- * examples/Web_Crawler/URL_Visitor.cpp (~URL_Validation_Visitor):
- Removed double deletion of the <strat_connector_> which is the
- Strategy Connector.
-
-Tue Oct 19 11:24:16 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Commented out an
- out-dated OBJEXT definition. If a rule requires to generated
- *.so, then it should specify the extension using SOEXT. Thanks
- to Aniruddha Gokhale <gokhale@research.bell-labs.com> for
- reporting this.
-
-Tue Oct 19 10:27:37 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/run_all_list.pm:
- Added TAO/tests/DSI_Gateway to the list of tests
-
-Tue Oct 19 00:43:34 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32-common.h: Undefined ACE_HAS_EXCEPTIONS under
- WinCE.
-
- The following changes are contributions from James Buck
- <jim@newsol.com> and Peter C. Chien <peter@newsol.com> .
-
- * ace/config-WinCE.h (ACE_LACKS_SOCKET_BUFSIZ): We cannot change
- the socket buffer size on WinCE.
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS.cpp: Added a customized TSS errno implementation for
- WinCE version 2.10 and above based on James and Peter's patch.
- ACE_Errno_Guard also had to be changed when using this
- implementation. However, this code is not active by default
- because I don't know how to detect CE's OS and platform
- configuration automatically. To use the code, define
- ACE_HAS_WINCE_BROKEN_ERRNO.
-
- * ace/OS.i(cond_wait,cond_timedwait): On WinCE, we must tweak the
- returning result from the semaphore if timeout occurred.
- Because CE uses the simulated semaphore, the returning value is
- not the same as that returned by a native semaphore.
-
-Tue Oct 19 00:03:57 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU:
- * include/makeinclude/rules.bin.GNU:
- * include/makeinclude/rules.lib.GNU:
- * include/makeinclude/rules.local.GNU: Chaged the following
- settings to be platform configurable:
-
- OBJDIRS: Names of directories to keep obj files. Default is
- '.obj' and '.shobj'.
- OBJEXT: Extension name for obj files. Default is 'o'.
- SOEXT: Extension name for so files. Default is 'so'.
- LIBEXT: Extension name for lib files. Default is 'a'.
- CC_OUTPUT_FLAG:
- LINK_OUTPUT_FLAG:
- SO_OUTPUT_FLAG: Flags to specify output file name for cc, linker
- and so_linker. Defaults are '-o'.
-
-Mon Oct 18 23:46:00 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-freebsd-pthread.h: Undefined ACE_HAS_PENTIUM for
- freebsd. The high resolution timer doesn't seem to work on this
- platfrom.
-
- * ace/OS.i (cuserid): Added missing ACE_UNUSED_ARG (maxlen)
- statement.
-
- * ace/Log_Msg.cpp (log): FreeBSD defines sys_nerr as a const int.
-
-Mon Oct 18 23:13:55 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * examples/Web_Crawler/URL_Visitor.cpp: Updated some broken
- template instantiations. Thanks to Bruce Alderson
- <balderso@triant.com> for reporting this.
-
-Mon Oct 18 21:32:29 1999 Ossama Othman <othman@cs.wustl.edu>
-
- Updates that remove need to use _GNU_SOURCE macro on Linux/glibc
- systems [Bug 167]:
-
- * ace/OS.i:
-
- Return ACE_static_cast (off_t, -1), instead of just -1 in
- ACE_OS::lseek(). (not related to _GNU_SOURCE updates)
-
- Only enable lseek64() on Linux/glibc systems if
- _LARGEFILE64_SOURCE is defined.
-
- Don't use cuserid() on Linux/glibc systems. It was dropped
- from POSIX.1 back in 1990. Instead, extract the user name from
- getpwuid(geteuid()), as suggested by the glibc cuserid() man
- pages and Stevens' Advanced programming in the UNIX
- Environment.
-
- * ace/Handle_Set.cpp:
-
- XPG4.2 declares an fds_bit member in the fd_set structure.
- Since _GNU_SOURCE is being disabled in ACE, use the __fds_bits
- member. It's not pretty, but it works.
-
- * ace/config-linux-common.h:
-
- strptime() is an XOPEN function. It is only enabled if
- _XOPEN_SOURCE or _GNU_SOURCE is defined (_GNU_SOURCE causes
- _XOPEN_SOURCE to be defined on Linux/glibc systems). If
- _XOPEN_SOURCE is not defined, create an external declaration for
- it.
-
-Mon Oct 18 18:41:38 1999 Steve Huston <shuston@riverace.com>
-
- * ace/OS.h: Add #include <dce/cma_sigwait.h> for HP-UX 10.x, and...
- * ace/OS.i (ACE_OS::sigwait): On HP-UX 10.x, call cma_sigwait
- directly. Fixes bug #66.
-
-Mon Oct 18 15:45:08 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.i (event_wait): The following changes are incorrect and
- have been reverted:
-
- http://ace.cs.wustl.edu/cvsweb/ace-cvs.cgi/ACE_wrappers/ace/OS.i?r1=4.796&r2=4.797.
-
- Remember that <is_signaled_> is only turned on to remember
- state, i.e., when <waiting_threads_> == 0. In the case when
- there are waiters, i.e., <waiting_threads_> != 0, <is_signaled_>
- is not turned on, and therefore breaks the wait function since
-
- while (event->is_signaled_ == 0)
-
- never becomes false. We need a better way to protect against to
- guard against spurious wakeups.
-
-Mon Oct 18 13:42:37 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Added extra parentheses to avoid operator precedence
- mix-up. Thanks to JM Strauss
- <jms97@club-internet.fr> for reporting this.
-
-Mon Oct 18 13:30:08 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Removed a whole bunch of extra blank in ACE_DES_*FREE*
- macro definitions. Thanks to JM Strauss
- <jms97@club-internet.fr> for pointing this out.
-
-Sun Oct 17 19:08:51 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/QtReactor.cpp: Fixed a bug in remove_handle_i () method. I
- found this when I was testing the test for the QtReactor.
-
-Sun Oct 17 11:00:46 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_sunc++.GNU (LD): Added
- a fix so that SunC++ 5.0 will work correctly when it's used in
- "compat" mode with SunC++ 4.2. Thanks to Susan Liebeskind
- <susan.liebeskind@gtri.gatech.edu> for reporting this fix.
-
- * ace/Malloc_T.cpp (remove): Need to call the destructor of
- ACE_Malloc_Stats explicitly in remove(). Thanks to Jean-Marc
- Strauss <jms97@club-internet.fr> for reporting this.
-
- * ace/Containers_T.i (get): ACE_DLList::get() didn't check
- the return value from ACE_Double_Linked_List::get() so it was
- possible for the node variable to be NULL. Now it checks for
- the error case explicitly. Thanks to Boris Sukholitko
- <palisander@hotmail.com> for reporting this bug.
-
- * ace/Containers_T.cpp (get): The ACE_Double_Linked_List::get()
- method should return -1 on error but it was returning 1. Now,
- the implementation matches the documentation. Thanks to Boris
- Sukholitko <palisander@hotmail.com> for reporting this bug.
-
-Sat Oct 16 17:10:23 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Makefile:
- * ace/Svc_Conf_l.cpp: Replace exit(1) with ACE_OS::exit(1)
- so that CodeWarrior doesn't get confused. Thanks to David
- Delano <delanod@agcs.com> for reporting this.
-
- * ace/OS.cpp: Removed the '&' in front of thread_args to make
- CodeWarrior happier. Thanks to David Delano <delanod@agcs.com>
- for reporting this.
-
- * ace/OS.cpp: Removed the table_() "initialization" for
- ACE_TSS_Cleanup since this breaks the CodeWarrior C++ compiler.
- Thanks to David Delano <delanod@agcs.com> for reporting this.
-
- * ace/OS.i: There was a bug with the ACE_OS::truncate()
- emulation for Win32. We need to check for ACE_INVALID_HANDLE
- and NOT < 0! Thanks to David Delano <delanod@agcs.com> for
- reporting this.
-
-Sat Oct 16 11:17:10 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * TAO/tao/Sync_Strategies.cpp (buffering_constraints_reached):
- Changed the signature of
- TAO_Flush_Sync_Strategy::buffering_constraints_reached() to
- match the base class.
-
-Fri Oct 15 17:28:05 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Connector.cpp (connect_i): Only close <new_sh> if we have a
- valid <new_sh>. Thanks to Yury Kuznesov <yury@websci.ru> for
- reporting this problem.
-
-Fri Oct 15 17:26:08 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Added a new flag that
- would help conditional compilation compilation of the
- QtReactor.
-
- * ace/QtReactor.cpp:
- * ace/QtReactor.h: Files for the QtReactor. Thanks to Hamish
- Friedlander <ullexco@wave.co.nz> for donating this to ACE. For
- the sake of record, Qt is a multiplatform C++ GUI toolkit.
-
- * ace/Makefile: Added the above files to Makefile. Changes were
- also made to generate files from moc (Meta Object Compiler,
- that comes with Qt libraries) and include them with the build.
-
-Fri Oct 15 01:03:13 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Activation_Queue: ACE_Activation_Queue has no methods for
- inspecting the size of the queue. The solution was to add the
- methods: method_count(), is_empty(), and is_full(). Thanks to
- Travis Shirk <travis@pobox.com> for contributing this.
-
-Fri Oct 15 00:36:35 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * tests/Process_Manager_Test.cpp (main): Replaced
- ACE_OS::exit(secs) with return secs so that Purify will be
- happy.
-
-Thu Oct 14 14:30:06 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Process_Manager_Test.cpp: use u_int instead of
- bool. Make ~Exit_Handler () public so that g++ doesn't
- complain about a private destructor with no friends.
- Commented out unused local variable child7.
-
-Thu Oct 14 14:25:44 1999 Dave Madden <dhm@mersenne.com>
-
- * tests/Process_Manager_Test.cpp: fixed the memory leaks, and
- most of the "unused variable" warnings should be gone.
- I've added, but left commented out, ASSERTs for the child
- process' exit codes. The reason is that, on Unix, the exit
- code contains extra information (exited, traced, stopped,
- signaled, etc.) that causes the exit code from wait() to be
- different from what the child's main() returned.
-
-Wed Oct 13 20:23:58 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-WinCE.h: Added ACE_LACKS_ACE_TOKEN and
- ACE_LACKS_ACE_OTHER to reduce CE dll's footprint.
-
- * ace/Memory_Pool.cpp (ACE_Pagefile_Memory_Pool::map): The
- SECURITY_DESCRIPTOR and its management routines are only
- supported on NT. Changed to pass a NULL security attribute on
- non-NT platforms (95, 98, CE.)
-
-Wed Oct 13 10:50:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.sh: use uname -s without checking to
- see if /bin/uname, etc., exist. Redirect stderr to
- the sysname string. It works.
-
-Wed Oct 13 10:39:50 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: ensure that ACE_THR_PRI_FIFO_DEF and
- ACE_THR_PRI_OTHER_DEF are defined on non-threaded platforms,
- to support application source code compatibility.
-
-Wed Oct 13 10:11:47 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Malloc_Test.cpp: fixed preprocessor logic so that
- the test is neutered on LynxOS. [Bug 224]
-
-Wed Oct 13 01:15:45 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Parse_Node.cpp: Made sure we don't try to duplicate a null
- string. This was causing problem when the initialization string
- was missing from a service entry. Thanks to Chris Hafey
- <chris@stentorsoft.com> for reporting this.
-
-Tue Oct 12 15:05:12 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/run_tests.lst: Reenabed Dave Madden's new
- Process_Manager_Test so that we can see if it works on various
- platforms.
-
- * tests/Process_Manager_Test.cpp (main): Added a new one-button
- test for the ACE_Process_Manager. Thanks to Dave Madden
- <dhm@mersenne.com> for contributing this test.
-
- * ace/Process_Manager.cpp (wait): Fixed a bug triggered by
- a process-specific wait. Thanks to Dave Madden
- <dhm@mersenne.com> for contributing this fix.
-
- * ace/ACE.cpp (format_hexdump): Replaced
-
- textver[i] = (c < 0x20 || c > 0x7e) ? '.' : c;
-
- with
-
- textver[i] = isprint (c) ? c : '.';
-
- since this is more portable. Thanks to Jim Rogers
- <jrogers@viasoft.com> for reporting this.
-
- * ace/Memory_Pool.i: Changed implementation to
- round_to_chunk_size() to ACE::round_to_pagesize(), which appears
- to be the "Right Thing"[TM] on NT.
-
-Tue Oct 12 14:49:00 1999 Ruibiao Qiu <ruibiao@cs.wustl.edu>
-
- * ace/ATM_Stream.h
- * ace/ATM_Acceptor.h: Moved #pragma after ACE include
- so that g++ would not give warning messages. Thanks to
- Dr. David L. Levine <levine@cs.wustl.edu> for pointing this out.
-
-Tue Oct 12 14:26:15 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-qnx-neutrino.h: added #define of
- ACE_THR_PRI_FIFO_DEF. This allows us to easily set a thread
- priority (10) that's lower the the TCP service threads (17) in
- tests. Thanks to Sean Boudreau <seanb@qnx.com> for suggesting
- that.
-
-Tue Oct 12 14:16:18 1999 David L. Levine <levine@cs.wustl.edu>
-
- * etc/purify.solaris2: added some more UMR suppressions
- for SunOS 5.7 (with Sun CC 4.2).
-
-Tue Oct 12 13:22:22 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5.6_sparc_sunc++_4.2.GNU:
- removed to avoid confusion. It just included
- platform_sunos5_sunc++.GNU; that should be used directly,
- instead. Thanks to Dan Butler <daniel.g.butler@boeing.com>
- for reporting this.
-
-Tue Oct 12 12:40:41 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Memory_Pool.i:
- * ace/Memory_Pool.cpp:
- Fixed some errors in Win32 specific code.
-
-Tue Oct 12 12:20:08 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-subsets.html: updated status, and added some
- missing motivation sections. Thanks to Wei Chiang
- <wei.chiang@nokia.com> for reporting that the document
- was out-of-date.
-
-Tue Oct 12 11:57:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-sunos5.6-sunc++-4.x.h: removed because it
- #included a header that no longer exists in the
- distribution. ace/config-sunos5.6.h should be used
- instead. Thanks to Dan Butler <daniel.g.butler@boeing.com>
- for reporting this.
-
-Tue Oct 12 11:48:00 1999 Ruibiao Qiu <ruibiao@cs.wustl.edu>
-
- * ace/ATM_Addr.{h,cpp,i}:
- * ace/ATM_Stream.{h,cpp,i}:
- * ace/ATM_Connector.{h,cpp,i}:
- * ace/ATM_Acceptor.{h,cpp,i}:
- * ace/ATM_QoS.{h,cpp,i}:
- * ace/ATM_Params.{h,cpp,i}: Added support for Fore ATM on Windows
- platform. Enabled when ACE_HAS_ATM and ACE_HAS_FORE_ATM_WS2
- are defined.
-
- * ace/config-win32-common.h: Added needed header include when
- ACE_HAS_FORE_ATM_WS2 is defined.
-
- * ace/ace_dll.dsp:
- * ace/ace_lib.dsp: Included ATM_* classes files in the porject files.
-
- * examples/IPC_SAP/ATM_SAP/CPP-client.cpp
- * examples/IPC_SAP/ATM_SAP/CPP-server.cpp: Changed example codes
- so that they can be run on Windows. They are now non-interactive,
- and show data rates at each end.
-
- * examples/IPC_SAP/ATM_SAP/CPP_client.dsp
- * examples/IPC_SAP/ATM_SAP/CPP_server.dsp
- * examples/IPC_SAP/ATM_SAP/ATM_SAP.dsw: Created MSVC project files
- and workspace file for these examples.
-
-Tue Oct 12 11:37:56 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.sh: export ACE_ROOT if setting it.
-
-Tue Oct 12 11:32:23 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.pl,run_tests.sh: don't print "Skipping test
- on this platform" message for DISABLED tests. Set
- ACE_ROOT to .. if it wasn't set.
-
- * tests/run_tests.sh: don't invoke uname command on
- Neutrino, because it's not supported.
-
-Tue Oct 12 08:53:52 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Message_Queue.cpp (enqueue): <cur_bytes_> and <cur_length_>
- should increase by total_size() and total_length() respectively.
- And in dequeue(), <cur_length_> should decrease by
- total_length(). Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for pointing this out.
-
-Tue Oct 12 10:00:52 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Memory_Pool (ACE_Pagefile_Memory_Pool):Added a new memory
- pool that uses the Win32 page file. Thanks to Dieter Quehl for
- contributing this.
-
-Mon Oct 11 17:07:46 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Queue.cpp (enqueue): ACE fails to compile because of
- a for-loop scoping problem in the method
- ACE_Message_Queue_NT::enqueue. Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for reporting this.
-
- * ace/Activation_Queue.cpp (enqueue): Changed the
- creation of the ACE_Message_Block so that it uses the sizeof
- (ACE_Method_Request) to ensure the queue's flow control
- mechanism works properly. Thanks to Dan Gilboa
- <dgilboa@qualcomm.com> for reporting this.
-
-Mon Oct 11 17:36:15 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- Thanks to Wei Chiang <wei.chiang@nokia.com> for the following
- patches.
-
- * ace/Thread_Manager.cpp (kill_thr): Chorus only supports
- SIGTHREADKILL here. Made sure we remove the killed thread from
- the managed thread list.
-
- * tests/Thread_Manager_Test.cpp: Changed the test to check for
- cooperative cancellation even if the platform doesn't support
- sending signaling to a specific thread. On Chorus, this signal
- has to be SIGTHREADKILL.
-
-Mon Oct 11 17:35:51 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-kcc-common.h: Added
- ACE_HAS_STD_TEMPLATE_SPECIALIZATION for KCC.
-
-Mon Oct 11 12:05:31 1999 Wei Chiang <wei.chiang@nokia.com>
-
- * ace/Signal.cpp (ACE_Sig_Action ctors),
- ace/Select_Reactor_T.cpp (register_handler,remove_handler):
- disabled signal-related operations on Chorus.
-
-Mon Oct 11 10:15:28 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: suppress some Purify warnings. Purify
- says that it's ignoring the problem; so will we.
-
-Mon Oct 11 10:09:56 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 5.0.6 released.
-
-Mon Oct 11 07:34:34 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Removed a stray '>' that was causing OS.h not to
- compile. Thanks to Marvin Allen Wolfthal <maw@ziplink.net>
- for reporting this.
-
-Fri Oct 8 07:47:08 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Removed the word "defined" since that was breaking
- SunCC 4.2. Thanks to Andy Gokhale for reporting this.
-
-Thu Oct 07 18:47:03 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/OS.h (ACE_NOTSUP): Added new macro. This one is similar to
- ACE_NOTSUP_RETURN, except that there is no return value (similar
- to ACE_GUARD and ACE_GUARD_RETURN).
-
- * ace/Message_Queue (message_length): Returns the total length on
- the queue, i.e., sum of the message block lengths.
-
- Since manual changes to these stats might be necessary,
- specially when queued message blocks change size or lengths
- (without dequeuing the messages from the queue), we also provide
- methods for setting these stats.
-
- * ace/Message_Block.i (total_length): This new method is similar
- to <total_size> except that it deals with the length of the
- message blocks and not the size of the message blocks. It
- returns the length of the message blocks, including chained
- message blocks.
-
-Thu Oct 7 13:17:29 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ACE-INSTALL.html: Changed the word "compiler" to
- "linker". Thanks to George Ball <george@jgserv.co.uk>
- for reporting this.
-
-Thu Oct 07 11:35:13 1999 Steve Huston <shuston@riverace.com>
-
- * ace/streams.h: Added #include <strstream.h> in the non-Win32
- section of the !ACE_HAS_STANDARD_CPP_LIBRARY section, for systems
- like Solaris w/ SC4.2.
-
-Wed Oct 6 21:36:18 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Log_Msg.cpp (log): Forgot to remove a stray %s.
- Thanks to Kitty Krishnakumar <kitty@neo.shinko.co.jp> for
- reporting this.
-
-Wed Oct 06 16:42:56 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Reactor/Misc/Misc.dsw:
- * examples/Reactor/Misc/demuxing.dsp: Added the demuxing test
- project file.
-
- * examples/Reactor/Misc/test_demuxing.cpp: MS Windows only
- supports a limited set of signals. Made sure we use them in the
- examples.
-
-Wed Oct 06 16:20:28 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/CDR_File_Test.cpp (run_test): when reading, ensure
- that the message block has sufficient space to properly
- align the 64-bit double on LynxOS and Neutrino. Thanks
- to Jeff for helping to track this down, and for Carlos
- for providing the fix.
-
-Wed Oct 6 15:40:11 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/OS.i : Initialised the qos_len variable to sizeof (QOS)
- within the ioctl () method for ACE_SIO_GET_QOS.
-
- * ACE_wrappers/examples/QOS/client.cpp:
- * ACE_wrappers/examples/QOS/server.cpp: Added a test for the
- ACE_SIO_GET_QOS io control code. The Sending and Receiving
- QOS flowspec parameters are extracted and printed for both the
- sender and receiver using this control code.
-
-Wed Oct 6 08:36:17 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Changed
-
- # if defined (__SUNPRO_CC < 0x500)
-
- to this
-
- # if defined (__SUNPRO_CC < 0x500) || ((__SUNPRO_CC == 0x500 && > __SUNPRO_CC_COMPAT == 4))
-
- to work around compilation problems with Sun CC 5.0 when used in
- Sun CC 4 compatibilty mode. Thanks to Erik Koerber
- <erik.koerber@siemens.at> for this fix.
-
- * ace/Log_Msg.cpp (log): Added support for a %m option that
- behaves like strerror() rather than perror(). Thanks to Kitty
- Krishnakumar <kitty@neo.shinko.co.jp> for this feature.
-
- * ace/OS.i (event_wait): We need to put the call to
- ACE_OS::cond_wait() in a loop to guard against spurious wakeups.
- Thanks to Sergey Nemanov <sergey.nemanov@intel.com> and Vladimir
- Kondratiev <vladimir.kondratiev@intel.com> for reporting this
- and suggesting a fix.
-
- * tests/Malloc_Test.cpp: Don't run the Malloc_Test on LynxOS.
-
- * tests/MM_Shared_Memory_Test.cpp: Fixed the code so that it'll
- compile correctly on platforms that lack fork(), such as
- VxWorks. Thanks to David Levine for reporting this.
-
-Tue Oct 5 16:17:57 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/MM_Shared_Memory_Test.cpp (spawn): Make sure to
- delete the synchronizer in both the parent and the child
- processes since otherwise we get a memory leak! Thanks to David
- Levine for pointing this out.
-
- * tests/Task_Test.cpp (main): Make sure to delete the thread hook
- before exiting the process to avoid a memory leak. Thanks to
- David Levine for pointing this out.
-
-Tue Oct 5 15:04:03 1999 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * ace/[Active_|Hash_]Map_Manager: Modified these classes so that the
- find() methods are all "const". Thanks to Jody Hagins
- <jody@atdesk.com> for reporting this.
-
-Tue Oct 05 21:58:06 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-WinCE.h: Reenabled ACE_HAS_MFC. This should be the
- most portable configuration. If you insist not to use MFC at
- all, define ACE_HAS_MFC=0 in your config.h file.
-
- * ace/OS.h:
- * ace/OS.cpp (set_window): Removed the MFC specific set_window
- method so we can use ACE in both MFC and non-MFC applications.
-
- * ace/INET_Addr.h: Applied ASYS_TEXT to several default
- string literals.
-
- * ace/DLL.h:
- * ace/DLL.cpp: Changed the type of <dll_name> in ctor and the open
- method to ASYS_TCHAR to minimize string conversion.
-
- * tests/DLL_Test.cpp: Applied ASYS_TEXT to the name of the DLL
- file.
-
-Tue Oct 5 19:01:43 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.i:
- Changed << for bounded (w)strings to marshal only 'length'
- bytes, instead of 'bound' bytes. The previous method could
- cause an access violation if the string fits near the end
- of a system page, but the 'bound' extends beyond it. Thanks
- to Brian Wright <bwright@paladyne.com> for reporting this
- bug.
-
-Mon Oct 4 08:31:58 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Shared_Malloc/test_persistence.cpp: Enhanced the
- list_employees() method so that it'll print the contents of
- ACE_Malloc<> in FIFO and LIFO order.
-
- * ace/Malloc[_T].{h,cpp}: Added a new iterator for ACE_Malloc<>
- called ACE_Malloc_FIFO_Iterator, which prints out the
- ACE_Name_Node entries in FIFO order. In addition, renamed
- ACE_Malloc_Iterator to be ACE_Malloc_LIFO_Iterator because it
- prints the ACE_Name_Node entries in LIFO order. Also added a
- #define of ACE_Malloc_Iterator to ACE_Malloc_LIFO_Iterator to
- ensure backwards compatibility. Thanks to Wenli Bai
- <bai@gsao.med.ge.com> for this enhancements.
-
- * tests/MM_Shared_Memory_Test.cpp: Fixed the test so that it should
- work correctly for platforms that use either processes or
- threads. Also, make sure to call remove() on the
- ACE_Process_Semaphore so that stray semaphores aren't left
- around. Thanks to David Levine for helping to track this down.
-
- * ace/Synch.h: Updated the documentation for the
- ACE_Process_Semaphore destructor to indicate that it doesn't
- remove the semaphore. Instead, you must call remove()
- explicitly. Thanks to David Levine for helping to track this
- down.
-
- * ace/Malloc_T.cpp (print_stats): Added a cast for the ACE_LOCK to
- work around the fact that the print_stats() method is const.
- Thanks to Jean-Marc Strauss <jms97@club-internet.fr> for
- reporting this.
-
- * ace/INET_Addr.cpp (set): Added ACE_UNUSED_ARG
- so the compiler won't complain about the protocol paraemter in
- parts of the code where it's not used.
-
- * tests/MM_Shared_Memory_Test.cpp (spawn): Added ACE_UNUSED_ARG
- so the compiler won't complain about process_synchronizer in
- parts of the code where it's not used.
-
-Sun Oct 3 12:47:35 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Process_Mutex_Test.cpp (main): Renamed the confusing "server" stuff
- to "parent" where appropriate.
-
- * tests/MM_Shared_Memory_Test.cpp: Don't call ACE_OS::exit()
- in the child since this won't clean up the Object_Manager
- correctly. Thanks to David Levine for reporting this. However,
- we'll still have two "end" statements, but only one begin
- statement, which is confusing. I'm not sure how to solve this,
- but it won't break anything.
-
- * tests/MM_Shared_Memory_Test.cpp: Oops, only do the
- acquire()/release() of the Process_Semaphore if we have fork()!
-
- * tests/MM_Shared_Memory_Test.cpp: Added an ACE_Process_Semaphore
- so we no longer need to sleep in order to wait for the server to
- be initialized.
-
- * tests/Process_Strategy_Test.cpp (main): Switched the processes
- in which the client and server are run so that the server is now
- run in the parent and the client is run in the child. This made
- it possible to remove the ACE_OS::sleep(1) call because the
- acceptor is created before the fork, so the client should always
- be able to connect to the server, even if the server isn't
- scheduled to run again before the client.
-
- * tests/Process_Mutex_Test.cpp,
- * tests/SV_Shared_Memory_Test.cpp:
- Fixed some improper style problems with these tests.
-
-Sun Oct 03 10:34:19 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/SV_Shared_Memory_Test.cpp (main): only delete
- parent_mutex and parent_synch in the parent, to prevent
- double deletion by the child. [Bug 91]
-
-Sun Oct 03 10:21:15 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/SV_Shared_Memory_Test.cpp: create parent_mutex and
- parent_synch before forking, to avoid race condition between
- their creation in the parent and use in the child. This
- allowed us to remove the sleep (1) in the child. [Bug 91]
-
-Sun Oct 03 10:17:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (ACE_Thread_Adapter::invoke): added casts of
- func (to ACE_THR_FUNC) and its return value (to void *)
- so that this function will compile for VxWorks and pSOS.
-
-Sat Oct 2 18:54:38 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.{cpp,h}: Added ACE_Protocol_info as a
- parameter to the QoS enabled private method subscribe_ifs. This
- allows the use of ACE_Protocol_Info->iAddressFamily in the call
- to join_leaf (). Thanks to Vidya Narayanan
- <CVN065@lmpsil02.comm.mot.com> for pointing this out.
-
-Sat Oct 2 16:20:33 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-kcc-common.h: The macro __KCC_VERSION was not
- available in 3.3e so we switched to check the existence of this
- macro to decide the availability of auto_ptr::reset(). Thanks
- to Ossama for noticing this bug.
-
-Sat Oct 2 16:10:26 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/config-linux-common.h:
-
- Linux (glibc 2.x) has lseek64() so define ACE_HAS_LLSEEK.
-
- * ace/OS.i (llseek):
-
- Removed external declaration for llseek() on Linux. Linux uses
- lseek64(), not llseek(). Updated macro checks to use lseek64()
- for Linux. [Bug 276]
-
-Sat Oct 2 16:01:50 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/INET_Addr.h (ACE_INET_Addr): Removed an unnecessary "protocol"
- string. Thanks to Jeff and Ossama for reporting this.
-
-Sat Oct 2 12:50:43 1999 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * ace/INET_Addr: Previous, it was not possible to specify the
- proto argument in the ACE_INET_Addr constructor because it was
- hard-coded to "tcp". Now, this can be passed as a parameter.
- Thanks to Jaymes Galvin <galvinj@agcs.com> for this suggestion.
-
-Fri Oct 1 14:44:12 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/OS.h : Added the Winsock2 GQOS related #defines to this
- file. The #defines are limited to the ones used in the ACE QOS
- example.
-
- * ACE_wrappers/examples/QOS/server.cpp:
- * ACE_wrappers/examples/QOS/client.cpp:
- * ACE_wrappers/examples/QOS/QosEvent.h:
- Changed the QOS example to use the ACE flags instead of Windows
- flags. Removed the #defines from the example and moved them to
- OS.h
-
-Fri Oct 1 13:14:17 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ChangeLog: Added more Borland support. Thanks to
- Christopher Kohlhoff <chris@kohlhoff.com> for this.
-
-Fri Oct 01 13:05:24 1999 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: move instructions for creating kits down in
- the file, and added note that they're intended for
- ACE+TAO developers and maintainers, only. Thanks to
- Rick Hess <rick.hess@lmco.com> for pointing out that
- that wasn't clear.
-
-Fri Oct 1 08:23:36 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Connector.{h,i}: Added add_leaf method and functionality.
-
-Thu Sep 30 16:55:41 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Task_Test.cpp (main): Added a short example illustrating
- how the new ACE_Thread_Hook mechanism works.
-
- * ace/OS.cpp: Added new support for the thread_hook to
- ACE_OS_Object_Manager.
-
- * ace/OS.cpp (invoke): Added support for a virtual "start_hook()"
- method in a new ACE_Thread_Hook class. This makes it possible
- for users to subclass ACE_Thread_Hook perform initialization
- operations before the thread entry point method is called back.
- Thanks to Chris Hafey <chris@stentorsoft.com> for this
- suggestion.
-
-Thu Sep 30 20:40:42 1999 Marina Spivak <marina@cs.wustl.edu>
-
- * bin/run_all_list.pm:
- Added TAO/examples/Load_Balancing demo to the list of daily
- executed tests.
-
-Thu Sep 30 11:36:20 1999 Charles Frasch <cfrasch@spawar.navy.mil>
-
- * include/makeinclude/wrapper_macros.GNU: in checks for
- ACE_HAS_GNUG_PRE_2_8, use $(notdir $(CXX)) to properly
- handle case where CXX has a directory part.
-
-Thu Sep 30 11:13:14 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Pipe.cpp (open): Don't use socketpair() for pipes on LynxOS
- since this doesn't work for some reason. Instead, use the
- socket emulation. Thanks to David Levine for reporting this.
-
-Thu Sep 30 10:30:00 1999 Kirthika Parameswraan <kirthika@cs.wustl.edu>
-
- * ace/README: Added documentation for:
- ACE_HAS_BROEN_EXTENDED_TEMPLATES Thanks to Fritz Bosch
- <FBosch@accatel.de> for suggesting this.
-
-Thu Sep 30 10:07:38 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Strategies_T.h: Added
-
- #define ACE_Refcounted_Hash_Recyclable ARHR
-
- to work around broken linkers that can't handle long
- symbol names. Thanks to Fritz Bosch <FBosch@acatel.de>
- for this suggestion.
-
-Wed Sep 29 20:58:45 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/config-win32.h:
- * ace/config-win32-common.h:
- Winsock2.h wasn't being included before my checks of the
- winsock version, so I moved it to -common.h instead.
-
-Wed Sep 29 16:40:45 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- The following changes fix the Service_Configurator on Windows
- CE. Thanks very much to Kirthika for her help on making this
- work.
-
- * tests/WinCE/DLL_Test.dsp:
- * tests/WinCE/ce_tests.dsw: Added the DLL_Test project.
-
- * ace/ace_ce_dll.dsp: Added DLL.cpp into the project.
-
- * ace/Service_Types.i (name):
- * ace/Service_Object.i (name): Changed to use ACE::strnew to
- duplicate the name string.
-
- * ace/Parse_Node.cpp: Changed all the ACE_*_Node classes to make
- copies of all string variables and release when they get
- destructed. This is necessary because on Windows CE, the
- strings passed into these classes are very short-lived (we use
- ASCII to UNICODE conversion macros which make temporary copies
- only.) The change shouldn't affect the performance of ACE since
- parsing the svc.conf entries should never be in the critical
- path.
-
- * ace/Parse_Node.h: The comments for <must_delete_> in
- ACE_Location_Node is completely outdated. It now specifies
- whether the Service_Object generated by this Location_Node
- should be removed or not when it is no longer in use, not the
- <pathname_>.
-
- * ace/OS.i (access): Added a temporary implementation for CE here.
- ACE::ldfind check the file accessibility using this function.
- Currently, we hard-code the method to check for read-access only
- (i.e., the argument <amode> is not used) which needs to be
- fixed.
-
- * ace/OS.cpp (fopen): Check for invalid handle and return NULL if
- handle is invalid on CE. Otherwise, CE programs get totally
- confused.
-
- * ace/Malloc.cpp (dump): I added some more operations in the dump
- methods but forgot to make them UNICODE friendly.
-
- * ace/config-WinCE.h: Added the macro definition for
- ACE_DEFAULT_LD_SEARCH_PATH since CE doesn't support environment
- variables at all and we need to hard-code the search path on
- CE.
-
- * ace/README: Added documentation for ACE_DEFAULT_LD_SEARCH_PATH.
-
- * ace/ACE.cpp (ldfind): When the macro ACE_DEFAULT_LD_SEARCH_PATH is
- defined, we should use the hard-coded search path instead of
- trying to use getenv to acquire the search path.
-
- * examples/Service_Configurator/Misc/Timer_Service.cpp:
- * examples/Service_Configurator/Misc/Timer_Service.h: Made the
- services UNICODE and CE friendly by applying ASYS_TEXT and using
- ASYS_TCHAR liberally.
-
- * examples/Service_Configurator/Misc/README: Added instructions on
- how to run the example on Windows CE.
-
-Tue Sep 28 15:46:23 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.i: Fixed some GQOS stuff for the older versions of
- WinSock 2.
-
- * ace/config-win32.h: Uses a better detection technique to
- figure out whether we are compiling with WinSock 2's newer
- headers or not.
-
-Tue Sep 28 14:48:26 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/WFMO_Reactor.cpp (handler): Implemented previously
- unimplemented function.
-
-Tue Sep 28 15:02:33 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/OS.i (ioctl): Added the #if def ACE_HAS_WINSOCK2_GQOS for
- the extra fields in struct _flowspec.
-
-Mon Sep 27 19:16:34 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (timezone): SunOS 4 needs to use gettimeofday() to find
- the current timezone. Thanks to Kamen Penev
- <penev@earthlink.net> for reporting this fix.
-
-Mon Sep 27 19:30:54 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * THANKS:
- Added Dennis to the hall of fame list.
-
-Mon Sep 27 17:12:51 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/OS.i:
- * ace/OS.h:
- Added an overloaded ioctl () that is used when the io control
- code is one of SIO_SET_QOS or SIO_GET_QOS. Thanks to Vidya
- Narayanan <CVN065@lmpsil02.comm.mot.com> for help with this
- feature.
-
- * ACE_wrappers/examples/QOS/server.cpp:
- * ACE_wrappers/examples/QOS/client.cpp:
- Made changes to the usage of ioctl () in the above files to
- reflect the corresponding changes in ACE.
-
-Mon Sep 27 13:11:02 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-sunos5.5.h: Wrap the define statement in a
- conditional that prevents declaration of #define
- ACE_HAS_STL_QUEUE_CONFLICT for gcc 2.95. We don't know if this
- is a problem in newer versions of Solaris but this will get rid
- of it for 5.5.1. Thanks to Siegurd Weber <siegurdw@hotmail.com>
- for this fix.
-
-Mon Sep 27 16:56:10 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.cpp:
- ACE_OS::cond_init() has two completely separate versions, i
- forgot to fix the NT version too, thanks to Vishal for pointing
- this out.
-
-Mon Sep 27 16:05:35 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/Object_Manager_Test.dsp:
- * tests/run_tests.bat:
- * tests/tests.dsw:
- * tests/version_tests/Object_Manager_Test.dsp:
- * tests/version_tests/version_tests.dsw:
- Added Object_Manager_Test support on Win32 and MSVC.
-
-Mon Sep 27 15:23:47 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- Fixed overloading problems for cond_init() under LynxOS and
- Chorus, thanks to John K. Black <jblack@s22ct.npt.nuwc.navy.mil>
- for reporting the problem and providing a fix.
- This fixes [BUGID:342]
-
-Mon Sep 27 13:11:02 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SString.h: Added the default value for the ACE_CString
- method set (const char *, int = 1). We had removed the default
- values from both the set() methods in order to remove an
- ambiguity. However, it appears that it's ok to give just this
- method a default value. Moreover, this prevents existing code
- from breaking. Thanks to Giga Giguashvili
- <gregoryg@ParadigmGeo.com> and Ivan Murthy
- <Ivan.Murphy@med.siemens.de> for reporting this.
-
-Sat Sep 25 17:09:57 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ACE version 5.0.5 released.
-
-Fri Sep 24 17:20:41 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-kcc-common.h: KCC does support auto_ptr<T>::reset
- after 3.4. Made sure we don't define ACE_AUTO_PTR_LACKS_RESET
- for newer version of KCC. Thanks to Ossama for reporting the
- problem.
-
-Fri Sep 24 08:59:13 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-sunos4-g++.h: Added ACE_HAS_DIRENT.
- Thanks to Kamen Penev <penev@earthlink.net> for reporting this.
-
- * tests/Handle_Set_Test.cpp (test_boundaries): Added some casts
- and parens so that the code will compile with MSVC++ 5.0.
- Thanks to Carlos O'Ryan for reporting this.
-
- * examples/Connection/blocking/SPIPE-{acceptor,connector}.cpp:
- Reformatted some of the code.
-
-Fri Sep 24 08:27:28 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.*,Synch.cpp: reverted changes of:
-
- Thu Sep 23 11:13:38 1999 Wei Chiang <wei.chiang@nokia.com>
-
- because Bug 342 proposes a more general fix.
-
-Thu Sep 23 19:02:47 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * examples/QOS/server.cpp (main):
- * examples/QOS/server.cpp (main):
-
- Removed the instantiation of ACE_OS_Object_Manager from
- the above files. This is done automagically in ACE.
-
- * examples/QOS/Sender_QOS_Event_Handler.h:
- Fixed a warning regarding the #def of MY_DEFPORT.
-
-Thu Sep 23 14:12:58 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- It was reporting success even when things failed.
-
-Thu Sep 23 11:13:38 1999 Wei Chiang <wei.chiang@nokia.com>
-
- * ace/OS.*,Synch.cpp: Chorus compiler (g++) seems to be
- confused by "int" and "int&" in overloaded operations.
- A dummy variables to full Chorus compiler is added to
- cond_init (ACE_cond_t*, ACE_condattr_t&, LPCTSTR void*).
-
- * include/makeinclude/rules.bin.GNU,platform_chorus.GNU:
- updated to support linking of TAO executables for Chorus.
-
-Wed Sep 22 19:30:49 1999 Randall Sharo <rasb@eci.esys.com>
-
- * ace/OS.i (sema_wait): on VxWorks, update tv to return
- the wait time. [Bug 339]
-
- * ace/Synch.h (ACE_Semaphore::acquire): updated comment
- to show that the absolute acquisition time is returned,
- not the elapsed time while waiting.
-
-Wed Sep 22 16:59:19 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32-common.h: Added definition of
- ACE_AUTO_PTR_LACKS_RESET when ACE_HAS_STANDARD_CPP_LIBRARY is
- defined. Thanks to Ossama for the quick hint.
-
-Wed Sep 22 13:05:55 1999 Jim Rogers <jrogers@viasoft.com>
-
- * ace/Codeset_IBM1047.cpp: added #include "ace/inc_user_config.h"
- at the beginning, to properly pick up the ACE_MVS #define
- on MVS.
-
-Wed Sep 22 11:20:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Basic_Types.h: use u_long for ptr_arith_t, even
- with 64-bit ints, with Sun CC. For unknown reasons,
- Sun CC 5.0 won't allow a reintepret cast of a 64-bit
- pointer to a 64-bit int (with -xtarget=ultra -xarch=v9a).
- Thanks to Giga Giguashvili <gregoryg@ParadigmGeo.com> for
- reporting this.
-
-1999-09-21 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/Makefile
- * docs/tutorials/???/*
- Added a number of notes about proper usage of THR_NEW_LWP and
- THR_DETACHED. Rebuilt all of the .html and .shar files. Probably
- touched too many along the way but better safe than sorry.
-
-Tue Sep 21 21:56:10 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-subsets.html: replaced absolute link to
- ../ACE-INSTALL.html#repo with a relative link. And,
- added "typically" to the 25 percent size reduction figure.
-
-Tue Sep 21 16:49:36 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * docs/ACE-subsets.html,ACE-INSTALL.html: Updated the document
- to point to the -frepo discussion. Thanks to Timothy Canham
- <Timothy.Canham@jpl.nasa.gov> for motivating this.
-
-Tue Sep 21 16:07:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-subsets.html: fixed size comparison chart; the
- For TAO entry was missing for SunOS 5.7/egcs 2.91.60.
- Thanks to Timothy Canham <Timothy.Canham@jpl.nasa.gov>
- for reporting this.
-
-Tue Sep 21 15:34:16 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Service_Config.cpp (process_directives_i): Added a fix
- so that the Service_Config allows one level of reentrancy.
- Thanks to Jonathan Reis <reis@minniemouse.cemax.com> for
- suggesting this.
-
-Tue Sep 21 11:35:57 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * examples/Threads/tss1.cpp (main): Need to rearrange where the
- explicit template instantiations are to make certain compilers
- happy. Thanks to Jeffrey Franks <Jeffrey_Franks@i-o.com> for
- reporting the problem.
-
- * tests/Makefile.bor: Updated ACE tests makefile to build (almost)
- all of the tests. Thanks to Christopher Kohlhoff
- <chris@kohlhoff.com> for this fix.
-
- * examples/Reactor/Misc/test_signals_2.cpp (main),
- * examples/Reactor/WFMO_Reactor/test_talker.cpp (STDIN_Handler):
- Preemptively fixed a couple more potential problems that might
- trigger the type of problem reported in the next entry below.
-
-Tue Sep 21 11:41:33 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * apps/Gateway/Gateway/Event_Channel.cpp (open):
- Changed cast style to make gcc 2.95.1 happy. Thanks to Jeffrey
- Franks <Jeffrey_Franks@i-o.com> for reporting the problems.
-
-Tue Sep 21 11:25:32 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Print the most recent ChangeLog entries in the log file.
- Report successful builds by default.
- Reformat email to make Darrell happier, btw, he made most of
- these suggestions.
-
-Tue Sep 21 11:13:21 1999 Steve Huston <shuston@riverace.com>
-
- * ace/streams.h: Added includes/using to pick up strstream for
- istrstream, ostrstream classes when ACE_HAS_STD_CPP_LIBRARY is set.
-
-Tue Sep 21 09:38:20 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.lst: disabled Signal_Test. [Bug 309]
-
-Tue Sep 21 08:33:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: use shared_libs=1, not shared_libs_only=1,
- to build shared libs on VxWorks. That avoids missing libACE.a,
- for example, when linking other libraries. Thanks to
- Uwe Landrock <Uwe.Landrock@med.siemens.de> for reporting this.
-
-Mon Sep 20 10:52:37 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ACE-INSTALL.html: Clarified that the --unix flag must be given for
- Cygwin tools on Vxworks and NT. Thanks to Uwe Landrock
- <Uwe.Landrock@med.siemens.de> for reporting this.
-
-Mon Sep 20 10:34:51 1999 Steve Huston <shuston@riverace.com>
-
- * ACE-INSTALL.html: Fixed broken link to Riverace's HP-UX info.
- Thanks to Doug for finding this.
-
-Sun Sep 19 12:48:31 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Signal_Test.cpp: Only send outselves a signal if we're
- running the signal handler in a separate thread.
-
-Sun Sep 19 10:39:30 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * tests/Signal_Test.cpp: Changed the type of shut_down indicator from
- ACE_Atomic_Op<> to sig_atomic_t. This prevents some nasty
- deadlocks.
-
- * tests/run_tests.lst: Reenabled Signal_Test so we can see if it's
- still working.
-
- * tests/Signal_Test.cpp: Changed the worker_child() function so that
- just before its thread exits, it will sent its process a signal
- to the signal handling thread to dislodge it if it hasn't
- shutdown on its own accord yet. Thanks to David Levine for
- reporting this. This fixes [BUGID:309].
-
- * ACE/Handle_Set.h: Updated the documentation to point out that it's
- the *caller's* responsibility to ensure handles aren't
- added/cleared from the set if their values are larger than
- ACE_DEFAULT_SELECT_REACTOR_SIZE. This behavior is necessary to
- ensure efficiency.
-
- * tests/Handle_Set_Test.cpp (test_boundaries): Fixed the test so
- that it will correctly ignore any handle values >=
- ACE_DEFAULT_SELECT_REACTOR_SIZE. Thanks to David Levine for
- reporting this. This fixes [BUGID:315].
-
-Sat Sep 18 18:49:31 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/config-win32-borland.h:
- Undefined ACE_HAS_BROKEN_IMPLICIT_CONST_CAST as
- suggested by Christopher Kohlhoff <chris@kohlhoff.com>.
-
-Sat Sep 18 17:31:52 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/QOS: Improved the conformance to ACE programming
- guidelines a bit.
-
- * ace/Message_Block.cpp: Whenever a ACE_Message_Block accepts a
- ACE_Data_Block that was produced by someone else, it should
- verify that the allocator is non-NULL and if it is, then it
- should allocate the ACE_ALLOCATOR_RETURN on it. Thanks to
- Pierre Grondin <pierre_grondin@srtelecom.com> for reporting
- this.
-
- * docs/tutorials/006: Fixed the activate() method so that it uses
- THR_DETACHED. Thanks to Shafiek Savahl
- <shafiek.savahl@ericsson.com.au> for reporting this.
-
-Sat Sep 18 16:17:34 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- The messages include the build name in the subject line. Thanks
- to Darrell for suggesting this idea.
-
-Sat Sep 18 12:00:28 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Message_Block.h: Changed all the ACE_Message_Block constructors
- so that the priority parameter defaults to
- ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY, rather than 0. Thanks to
- Detlef Becker for this suggestion.
-
- * ace/OS.h: Added a new macro called
- ACE_DEFAULT_MESSAGE_BLOCK_PRIORITY, which defaults to 0 but
- which can be overridden in a config.h file to a different value
- so it's possible to transparently choose default priorities that
- are > 0. Thanks to Detlef Becker <Detlef.Becker@med.siemens.de>
- for this suggestion.
-
-Fri Sep 17 19:49:15 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Hash_Map_Manager_Test.cpp: Repositioned template
- instantiations and static variables to make the debug=0 build
- happy with SunCC5.0.
-
-Fri Sep 17 15:34:46 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc.cpp (dump):
- * ace/Malloc_T.cpp (dump): Enriched various dump methods a bit.
-
-Thu Sep 16 17:53:57 CDT 1999 Loren Rittle <rittle@rsch.comm.mot.com>
-
- * bin/update-ace+tao.sh: Added force option.
-
-Thu Sep 16 17:43:02 CDT 1999 Loren Rittle <rittle@rsch.comm.mot.com>
-
- * bin/update-ace+tao.sh: Improve portability.
-
-Thu Sep 16 11:08:45 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ace/Makefile:
- * tests/Makefile:
-
- Updated dependencies.
-
-Wed Sep 15 21:42:08 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- Removed extra "typedef" in the declaration of the
- ACE_Protocol_Info structure, it was causing a large number of
- warnings in several platforms.
-
-Wed Sep 15 15:08:33 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * bin/run_all_list.pm:
-
- Run the newly added TAO/tests/ORB_init/run_test.pl script when
- executing the ORB_init test.
-
-Wed Sep 15 14:49:50 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Hash_Map_With_Allocator_T.h:
- * ace/Hash_Map_With_Allocator_T.i: Added a method unbind () which
- unbinds an entry by only taking a key.
-
-Wed Sep 15 13:19:36 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.cpp (process_directive): Added ace_yyrestart
- to make sure the service config parser has a valid buffer to
- work on. Thanks to Lothar Werzinger
- <werzinger.lothar@krones.de> for reporting this.
-
-Wed Sep 15 10:50:21 1999 James Hu <jxh@entera.com>
-
- * ace/TP_Reactor.{cpp,h,i} (mask_ops): Fixed a problem where
- cancel_wakeup would fail. Since an event handler is suspended
- for the duration of the up-call, the wait_mask_ was being
- over-written by the suspend_mask_ when the event handler was
- resumed. This fixes the problem by extending TP_Reactor with
- its own implementations of mask_ops that operate on both
- wait_mask_ and suspend_mask_.
-
-Wed Sep 15 10:14:21 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * docs/exceptions.html:
-
- Corrected some ACE_TRY_THROW examples. The exception being
- thrown must have a parameter list, even if it is empty
- (e.g.: ACE_TRY_THROW (CORBA::BAD_PARAM ());)
-
-Tue Sep 14 22:10:24 1999 Kristopher Johnson <kjohnson@gardnersys.com>
-
- * ace/Process_Manager.cpp (wait): changed array index from
- i to idx. Thanks to Dave Madden for confirming this fix.
-
- Reverted this change:
- Tue Sep 14 16:01:04 1999 Christopher Kohlhoff <chris@kohlhoff.com>
- because it's no longer necessary.
-
-Tue Sep 14 21:00:45 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/OS.h: Added a typedef for ACE_Protocol_Info for non-Win32
- platforms. Defined it as a struct (with limited fields) instead
- of u_long because applications using ACE_Protocol_Info on
- non-Win32 platforms expect this to be a structure instead of a
- u_long.
-
- * ACE_wrappers/examples/QOS/Makefile: Added this for the test to
- compile on non-Win32 platforms.
-
- * ACE_wrappers/examples/QOS/server.cpp:
- * ACE_wrappers/examples/QOS/client.cpp:
- * ACE_wrappers/examples/QOS/QosEvent.h:
- * ACE_wrappers/examples/QOS/Sender_QOS_Event_Handler.cpp:
-
- Removed the last remains of win32isms from the test. The QoS
- test now compiles clean on non-Win32 platforms.
-
-Tue Sep 14 17:49:33 1999 Luther J Baker <ljb1@cs.wustl.edu>
-
- * ace/Arg_Shifter.cpp (get_the_parameter): removed an errant
- return 0;
-
-Tue Sep 14 16:01:04 1999 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * ace/Process_Manager.cpp (wait): moved declaration of
- loop index i out of the loop, because it is used outside
- the scope of the loop.
-
-Tue Sep 14 15:03:21 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * bin/run_all_list.pm:
-
- Added ORB_init test to the list of tests to run.
-
- * configure.in:
- * configure:
-
- Do not define ACE_USE_POLL, even if system poll() works.
-
-Tue Sep 14 11:02:06 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * ace/Hash_Map_With_Allocator_T.h:
- * ace/Hash_Map_With_Allocator_T.cpp:Added a find () method that
- would lookup at the underlying Hash_Map_Manager_Ex to do the
- find.
-
-Sat Sep 11 12:18:22 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Pipe.cpp: Make sure to use SOCK_STREAM rather than SOCK_DGRAM
- when creating a socketpair. Thanks to Dave Madden for reporting
- this.
-
-Mon Sep 13 13:31:23 1999 Luther J Baker <ljb1@cs.wustl.edu>
-
- * ace/Arg_Shifter.cpp (get_the_parameter): continued -ORB parsing
- fixes. Allows one simple method to return a parameter value for
- defined flag is it exists.
-
-Mon Sep 13 11:01:24 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Shared_Malloc/test_persistence.cpp: Added comments on
- the use of scanf. Thanks to Wenli Bai <bai@gsao.med.ge.com> for
- reporting the problem.
-
-Sun Sep 12 19:23:51 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE version 5.0.4 released.
-
-Sat Sep 11 12:18:22 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager.cpp: Reverted the following change so that we
- just add a fake "friend" to keep G++ happy... Also, fixed a
- typo where we should have allocated an ACE_Managed_Process
- rather than an ACE_Process. Thanks to Dave Madden for reporting
- this.
-
- * ace/Process_Manager.cpp: Added the ACE_CLASS_IS_NAMESPACE method
- to ACE_Managed_Process to make G++ happy. Also, removed the
- trailing '_' since we don't need this because we've prefixed
- "ACE_" already.
-
-Fri Sep 10 16:58:34 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc_T.cpp (open,shared_malloc): Added several placement
- new's if position independent malloc is enabled to avoid reading
- uninitialized memory.
-
-Fri Sep 10 16:39:13 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * examples/QOS/README:
- * examples/QOS/server.cpp:
- * examples/QOS/client.cpp:
- * examples/QOS/Sender_QOS_Event_Handler.h:
- * examples/QOS/Sender_QOS_Event_Handler.cpp:
-
- Removed the Win32-isms from the above files and used cleaner ACE
- interfaces. Added a README file that describes the test.
-
-Fri Sep 10 16:38:51 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/WinCE/*.dsp: VC 6 changed all the dsp files format.
-
-Fri Sep 10 11:20:47 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/SOCK_Acceptor.h,
- ace/SOCK_Connector.h: Updated the documentation to clarify what
- happens wrt blocking vs. non-blocking connects and accepts.
- Thanks to Jose Rubio <jrubio@tr.comm.mot.com> for motivating
- this change.
-
-Thu Sep 9 16:27:56 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager,
- ace/Process: Added some new patches from Dave Madden to obtain
- greater control over the spawn() behavior.
-
-Fri Sep 10 14:30:17 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.i:
- * ace/SOCK_Dgram_Mcast.h:
-
- Added two send () functions using overlapped I/O to the
- ACE_SOCK_Dgram_Mcast class. These simply call the parent
- class functions with the same signature. The recv () functions
- need not be added as there is currently no recv () function
- within SOCK_Dgram_Mcast class to hide any parent class recv ()
- functions.
-
-Fri Sep 10 12:24:17 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * THANKS:
- Added Joerg Pommnitz to the list of contributors.
-
-Thu Sep 9 22:48:56 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/config-hpux-10.x-hpc++.h:
- * ace/config-hpux-11.x-hpc++.h:
- Fixed spelling of ACE_PREPROCESSOR_ARGS to
- ACE_CC_PREPROCESSOR_ARGS.
-
-Thu Sep 9 18:22:21 CDT 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Future.cpp:
- HP/aCC was giving bogus warning about function without a return
- statement (the function only has a throw).
-
-Thu Sep 09 14:56:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: we now fully support QNX Neutrino 2.0.
-
- * ACE-INSTALL.html: expanded repo=1 discussion. [Bug 248]
-
-Thu Sep 09 13:21:03 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/ace_ce.dsw:
- * ace/ace_ce_dll.dsp: Changed to use the project file format for
- CE Toolkit for VC 6.
-
- * ace/config-WinCE.h: Added some macros definitons for POSIX error
- codes. They are removed for Palm-size CE v2.01. This
- configuration is still not working because its compilers don't
- support placement new, which I don't know how to work around.
-
- * ace/Process_Manager.cpp (wait): Applied ASYS_TEXT macros.
-
- * ace/OS.cpp (init,fini): Applied ACE_TEXT macros around error
- message print out.
- (print_error_message): Added a WinCE specialized
- implementation.
-
-Thu Sep 09 12:45:06 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-qnx-neutrino.h: added ACE_HAS_SIGISMEMBER_BUG.
- Sigset_Ops_Test passes with that.
-
-Thu Sep 09 12:31:51 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Handle_Set_Test (handle_vector[]):
- limit the maximum handle in handle_vector to 31, 63, 127, and
- 254 if ACE_DEFAULT_REACTOR_SIZE is less than or equal to
- 32, 64, 128, and 256, respectively. [Bug 315]
-
-Thu Sep 9 09:39:46 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * etc/purify.solaris2: Added suppression for MLK due to OS accept
- call. [Bug 227]
-
-Thu Sep 09 09:24:29 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.lst: disabled Signal_Test. [Bug 309]
-
-Thu Sep 9 08:46:58 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Lazy_Map_Manager_Test.cpp (main): ACEified this a bit
- and fixed a typo for the argv argument in main().
-
- * Updated the ACE-mail.html file to put the *-request addresses
- first. Thanks to Lorin Hochstein <lmh@xiphos.ca> for this
- suggestion.
-
-Wed Sep 08 23:01:22 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Service_Configurator/Misc/Timer_Service.h: Added
- ACE_Svc_Export specifiers.
-
- * examples/Service_Configurator/Misc/Misc.dsw:
- * examples/Service_Configurator/Misc/Timer.dsp: Added a new
- project file for the dll file.
-
-Wed Sep 08 22:19:47 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-qnx-neutrino.h: added some magic to allow
- compilation to succeed when optimization is enabled,
- for x86 targets. The egcs 1.1.2 string.h #includes
- x86/string.h, which has anti-social #defines for
- memcmp, memcpy, and memset. Therefore, they can't be
- used as C++ member functions, such as in ACE_OS. The
- hack is to disable optimization just when #including
- string.h.
-
- * include/makeinclude/platform_qnx_neutrino.GNU: default
- both optimize and repo to 1.
-
-Wed Sep 8 17:25:07 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h (ACE_FACTORY_DEFINE): It shouldn't be necessary
- to use ACE_dynamic_cast() or ACE_static_cast() for the
- ACE_FACTORY_DEFINE macro because ACE_Service_Object's destructor
- is virtual. Thanks to Carlos for pointing this out.
-
-Wed Sep 8 16:51:45 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Acceptor.cpp (handle_close): Removed a unnecessary check
- for <concurrency_strategy_> which was causing UMR to occur.
-
-Wed Sep 08 16:48:55 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.gnu (purify): moved
- -ignore-signals option to tests/Makefile, because that's
- where it's needed.
-
- * tests/Makefile (purify): added SIGHUP and SIGTERM to
- -ignore-signals, to prevent warnings from Signal_Test.
- [Bug 309]
-
-Wed Sep 8 15:58:07 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Log_Msg_Test.cpp (test_ostream): Make sure to add 1
- to the buffer we allocate dynamically so we can put a NUL at the
- end of it! Thanks to David Levine for reporting this. [Bug 312]
-
- * examples/Service_Configurator/Misc/main.cpp (main): Changed the
- test of the -f Service Configurator option so that it links two
- different svc.conf files to avoid reentrancy problems.
-
- * examples/Service_Configurator/Misc/svc.conf: Revised this
- svc.conf file (and the application) to illustrate the use of
- both static *and* dynamic service. Thanks to Amir Bahmanyari
- <amir@peakstone.com> for motivating this.
-
-Wed Sep 8 14:05:00 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: Shifted the instantiations to the top to keep
- SunCC5.0 debug=0 build happy.
-
- * tests/Cached_Accept_Conn_Test.cpp: Repositioned global
- declarations to ward off compilation errors on HP-UX.
-
-Wed Sep 8 13:13:18 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process.h (ACE_Process): Made the spawn() method virtual
- so code can be executed just before and/or after the actual
- fork(). Thanks to Dave Madden for this fix.
-
-Tue Sep 07 19:55:52 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * ace/Map_Manager.h (ACE_Map_Manager): The old map manager (the
- one before the changes made to support the active map manager)
- used to allow deletion of entries from the map during iteration
- (note that this feature was accidental since typically changes
- to container invalidates the iterators). The new design did not
- support this "feature". However, some users had come to depend
- on this feature.
-
- The solution was to delay the movement of freed slots from the
- occupied list to the free list until we run out of free slots in
- the free list when binding new entries into the map. However,
- this change requires additional state in each entry that keeps
- track of whether this entry has been freed. Also, the time
- required for binding new entries is less predictable since the
- bind may require moving of freed slots from the occupied list to
- the free list because of the initial lazy unbind.
-
- Changes were also required to the Active_Map_Manager since it
- directly depends on the internals of the Map_Manager.
-
- Since this lazy feature is not required in the majority of cases
- and results in increased memory consumption, this feature is
- only support if ACE_HAS_LAZY_MAP_MANAGER is defined.
-
- A new test Lazy_Map_Manager_Test.cpp was added to check the new
- changes.
-
- Thanks for Dr. Schmidt for helping with this solution and to
- Murphy Ivan <Ivan.Murphy@med.siemens.de> for pointing out this
- problem.
-
- Bug fixed: id 228.
-
-Tue Sep 7 15:19:33 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Log_Msg_Test.cpp (test_ostream): NUL-terminated the buffer
- to avoid an array bounds overflow! Thanks to David Levine for
- reporting this.
-
-Tue Sep 7 12:38:37 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * tests/Reactor_Timer_Test.cpp: Purify was showing an UMR in
- test_registering_one_handler(). This was because Time_Handler
- didn't have a constructor that initialized its timer_id_ member
- and it wasn't being set in this method (like the others). I
- added a default constructor to Time_Handler. [Bug 249]
-
-Tue Sep 7 08:04:41 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (isatty): Fixed this code so that it doesn't use
- osf_handle() anymore on NT, but instead just casts the
- ACE_HANDLE to an int. Thanks to Mark Winrock
- <mwinrock@nortelnetworks.com> for suggesting this fix and
- testing it out.
-
- * tests/run_tests.lst: Added Signal_Test.
-
-1999-09-07 Douglas C. Schmidt <schmidt@cs.wustl.edu>
-
- * tests/Signal_Test.cpp (main): Fixed the test so that it won't
- try to run the "synchronous signal handler in a separate thread"
- on Linux because Linux threads are non-standard wrt signals.
-
-Mon Sep 6 21:19:27 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Signal_Test.cpp (run_test): Added an ACE_UNUSED_ARG
- for the synchronous_signal_handler pointer-to-function for the
- case where ACE_HAS_THREADS is disabled. Otherwise, we get a
- warning.
-
-Mon Sep 6 18:47:18 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Process_Manager.h: Moved handle_signal outside of a !defined
- ACE_WIN32 block and moved handle_input inside of it, and this
- fixes some errors on MSVC.
-
-Mon Sep 6 14:19:14 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/Reactor_Notify_Test.cpp (main): Added a hyphen to
- the ACE_DEBUG printout "with timeout =" so that it says "with
- time-out =" to avoid confusing the run_tests.sh script! Thanks
- to David Levine for reporting this.
-
- * ace/Process_Manager.cpp: Integrated more patches from
- Dave Madden <dhm@mersenne.com> so that the correct
- register_handler() method is used on Win32.
-
-Mon Sep 06 15:05:17 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: moved ACELIB setting (to null) to before include
- of rules.lib.GNU. That way, rules.lib.GNU can use the value of
- $(ACELIB) to determine whether the ACE library object files
- should be linked into the library, with repo=1. [Bug 248]
-
- * include/makeinclude/rules.lib.GNU: with repo=1 when building
- static libs, except for libACE, include all of the ACE lib's
- object files. The prevents multiple instantiations, by GNU
- repo, of templates that are used in the ACE library. See the
- gcc info pages, Template Instantiation node, for more information.
- [Bug 248]
-
-Mon Sep 6 08:45:31 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Reactor/WFMO_Reactor: Cleaned up some of the coding in
- the examples.
-
- * ace/Profile_Timer.cpp: Reformatted the code a bit.
-
- * examples/Threads/process_manager.cpp (main): Fixed some warnings
- and errors. Thanks to David for reporting this.
-
- * ace/OS.i: Fixed ACE_UNUSED_ARG(options) to be
- ACE_UNUSED_ARG(wait_options). Thanks to David's build logs for
- reporting this.
-
- * tests/Signal_Test.cpp: Changed the types of parameters passed
- to run_test() from int to long so that we can safely cast them
- to and from void *'s. Thanks to David Levine for pointing this
- out.
-
- * ace/Process_Manager.cpp (notify_proc_handler): Removed
- the now unused parameter h. Thanks to David for pointing this
- out.
-
-Mon Sep 06 07:25:01 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: added ACE_Export to ACE_OS_Exit_Info class
- declaration. It shouldn't be necessary, but
- Dmitry Goldshtain <Goldshtain@bank.gov.ua> reports that
- Builder 4 needs it.
-
-Mon Sep 06 03:31:34 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/Signal_Test.cpp (run_test): Removed a redundant use of
- ACE_UNUSED_ARG (synchronous_signal_handler). Thanks to KCC 3.3e
- for pointing this out.
-
-Mon Sep 6 01:03:03 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Threads/Makefile (BIN): Added process_manager.cpp
- back into the list of programs that get built automagically.
-
- * ace/Process_Manager: Added some new patches from Dave Madden
- <dhm@mersenne.com> that continue to improve the
- ACE_Process_Manager and make it portable between NT and UNIX.
-
- * examples/Threads: Readded process_manager.cpp now that
- Dave Madden <dhm@mersenne.com> has updated it.
-
-Sun Sep 05 23:52:16 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (WIFEXITED,WEXITSTATUS): On platforms that do not
- define these macros, we should always assume the child process
- exit properly because the return status does not tell us how the
- process exited. Likewise, the WEXITSTATUS macro should simply
- return the status we got from ACE_OS::wait because it only
- contains the exit status of child process.
-
-Sun Sep 5 23:40:25 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/QOS: Continued to improve the coding style so it'll
- look like normal "ACE" code.
-
-Sun Sep 05 21:32:40 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Synch.cpp: removed unnecessary #include of ace/Object_Manager.h.
-
-1999-09-05 Vishal Kachroo <vishal@cs.wustl.edu>
-
- Made the receiver of QOS test portable by removing
- Win32-isms from it. Files modified :
-
- * examples/QOS/QosEvent.h:
- * examples/QOS/server.cpp:
-
-Sun Sep 5 13:40:18 1999 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * ace/ACE.cpp: Made the status code to be of type
- ACE_exitcode instead of int. This is necessary
- because of the change on waitpid ().
-
-Sun Sep 5 10:59:18 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process.i (wait): Removed the ACE_static_cast() Michael
- had added recently because the change below makes it
- unnecessary.
-
- * ace/OS.h (ACE_OS): Modified the 3-arg wait() and the waitpid()
- methods to take an ACE_exitcode* rather than int* so this will
- work on Win32.
-
- * ace/Log_Msg.cpp: Added a new explicit template instantiation
- for template class
-
- ACE_Guard<ACE_Reverse_Lock<ACE_Recursive_Thread_Mutex> >;
-
- to fix compiler errors that showed up with EGCS.
-
- * tests/Signal_Test.cpp (run_test): Added ACE_UNUSED_ARG macros
- for several symbols that aren't used when the test is compiled
- single threaded.
-
-Sat Sep 05 02:05:00 1999 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * ace/OS.cpp: Fixed a missing "#else".
-
- * ace/Process.i,
- ace/Process_Manager.h,
- ace/Process_Manager.cpp:
- Fixed an "int" versus "ACE_exitcode" conversion
- problem.
-
-Sat Sep 4 23:37:29 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-win32-common.h: Missing a '&&' that was causing
- problems on Win32. Thanks to Michael Kircher
- <Michael.Kircher@mchp.siemens.de> for reporting this.
-
-Sat Sep 04 20:24:32 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Handle_Gobbler.i (close_remaining_handles,free_handles):
- moved the function definitions ahead of their first use in
- the file.
-
-Sat Sep 04 20:17:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Pipe.cpp (open): added ACE_UNUSED_ARG (buffer_size)
- for all platforms that #define ACE_LACKS_SOCKET_BUFSIZ.
-
-Sat Sep 4 14:43:36 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Signal_Test.cpp: Finished off the test so that it now
- works for all the various combinations of synchronous and
- asynchronous tests. Now, to make it work on Linux...
-
- * ace/OS.h: The use of ACE_static_cast in the ACE_FACTORY_DEFINE macro
- didn't make any sense, so I've replaced it with
- ACE_dynamic_cast.
-
- * ace/Process_Manager.*,
- * ace/Process.*,
- * ace/OS.h:
- Created a new typedef called ACE_exitcode that factors out the
- difference between Win32 and UNIX exit codes from wait()
- operations. Thanks to Dave Madden <dhm@mersenne.com> for
- suggesting this.
-
-Sat Sep 04 12:22:38 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (shm_open,close,filesize,ftruncate,mmap): moved
- these functions up in the file so that they're defined before
- being used by ACE_OS::sema_init ().
-
-Fri Sep 3 11:57:24 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Event_Handler.h (ACE_Event_Handler): Added the new
- handle_exit() method, which is called by the ACE_Process_Manager
- when a process exits. Thanks to Dave Madden <dhm@mersenne.com>
- for contributing this.
-
- * ace/Process.*,
- ace/Process_Manager.*: Integrated a new round of changes from
- Dave Madden <dhm@mersenne.com> that factor out most of the
- remaining differences between Win32 and UNIX.
-
- * ace/OS.h,
- * ace/config-win32-common.h: Added a #ifndef for __IBMCPP__ to
- make things work for Visual Age C++. Thanks to Boris Kaminer
- <kaminer.boris@cherus.msk.ru> for reporting this.
-
- * ace/{ACE,OS}: Added ACE_HAS_UNICODE to conditionally compile the
- strnew() definition. Thanks to Boris Kaminer
- <kaminer.boris@cherus.msk.ru> for reporting this.
-
- * ace: Added a new optimized ace-dll.icc file so that ACE will
- build better with IBM's Visual Age C++. Thanks to Boris Kaminer
- <kaminer.boris@cherus.msk.ru> for contributing this.
-
- * ace/OS.h,
- * ace/config-win32-common.h: Added a #ifndef for __IBMCPP__ to
- make things work for Visual Age C++. Thanks to Boris Kaminer
- <kaminer.boris@cherus.msk.ru> for reporting this.
-
- * ace/{ACE,OS}: Added ACE_HAS_UNICODE to conditionally compile the
- strnew() definition. Thanks to Boris Kaminer
- <kaminer.boris@cherus.msk.ru> for reporting this.
-
- * ace: Added a new optimized ace-dll.icc file so that ACE will
- build better with IBM's Visual Age C++. Thanks to Boris Kaminer
- <kaminer.boris@cherus.msk.ru> for contributing this.
-
-1999-09-03 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/OS.i:
- * ace/OS.h: Added a new overloaded ACE_OS::ioctl () function that
- takes in ACE_QoS as one of the parameters, constructs a windows
- QOS from it and passes it to WSAIoctl (). This function can be
- used when the I/O control code is SIO_SET_QOS.
-
-Fri Sep 3 14:58:51 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * config-aix-4.x.h:
- * config-hpux-10.x-hpc++.h:
- * config-hpux-11.x-hpc++.h:
- * config-mvs.h:
- * config-win32-borland.h:
- * config-win32.h:
- Moved many of the preprocessor information for various
- platforms from TAO_IDL to here (in ACE_CC_PREPROCESSOR and
- ACE_CC_PREPROCESSOR_ARGS).
-
-Fri Sep 3 13:52:43 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Fixed the implementation of the -dont_run option.
-
-Fri Sep 3 09:05:20 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Containers_T.cpp (delete_nodes): Removed the redundant check
- which was verifying that <cur_size_> was always > 0. But
- <cur_size_> itself is unsigned so thsi check was redundant
- causing warnings with egcs.
-
-Thu Sep 2 23:54:49 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Containers_T.h (class ACE_Double_Linked_List): Added more
- comments to stress that this is not a general purpose container
- class. Thanks to Rusty Conover <rconover@zootweb.com> for
- suggesting this.
-
-Thu Sep 2 18:39:23 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Process_Manager.cpp (handle_close): Did a better job of
- fixing the use of ACE_UNUSED_ARG to make EGCS happy.
-
-Thu Sep 2 12:21:41 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Select_Reactor_Base: Renamed the notify_set_, alloc_set_,
- and free_set_ to *_queue_ since that's what they really are!
-
-Thu Sep 2 17:42:22 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Malloc_T.cpp:
- Eliminated UMR problem with the position independent malloc
- support. Thanks to Doug for figuring this stuff out.
-
-Thu Sep 2 12:21:41 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Log_Msg_Test.cpp (test_log_msg_features): Changed the
- use of %p to prevent an error message from being printed that'll
- confuse the run_tests script.
-
- * Just added the 700th non-DOC group individual who has contributed
- to ACE+TAO over the years. In the last year, we've gone from
- 400 to 700 contributors, which is great!
-
- * tests/CDR_File_Test.cpp (main): Fixed a signed/unsigned warning
- and removed the unreferenced argc/argv parameters.
-
- * tests{run_tests.lst,Makefile}: Added the new ACE_Log_Msg.cpp
- test.
-
- * tests: Added a new test called Log_Msg_Test.cpp. This exercises
- the many features of the ACE_Log_Msg class.
-
- * tests/Object_Manager_Test.cpp (main): Just reformatted some
- stuff.
-
-Thu Sep 2 14:42:31 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Cached_Accept_Conn_Test.cpp: Repositioned
- ACE_HAS_BROKEN_EXTENDED_TEMPLATES macro before the inclusion of
- the header since thats where the typedefs had been shifted.
- Also, to keep both gcc2.7.3 and sunCC5.0 w.o debugging symbols
- happy it was necessary to move the definitions of
- <Accept_Startegy> methods before the instantiations.
-
-Thu Sep 2 12:21:41 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Added an ACE_static_cast in the ACE_FACTORY_DEFINE macro
- to let the compiler catch "bad casts," i.e., when X isn't allow
- to be cast from an ACE_Service_Object. Thanks to Jody Hagins
- for suggesting this.
-
- * ace/config-win32-common.h: Deleted
-
- #define ACE_LACKS_STRPTIME
-
- and added
-
- #define ACE_HAS_STRPTIME
- #define ACE_LACKS_NATIVE_STRPTIME
-
- In addition, I removed the wday and yday stuff in
- ACE_OS::strptime(). Thanks to Kevin Lyda
- <kevin.lyda@trintech.com> for suggesting this.
-
- * ace/OS.h: Make sure to add a cast to ACE_Service_Object * in the
- ACE_FACTORY_DEFINE macro so that the offset will be corrected
- automagically. Thanks to Eric C. Newton <ecn@smart.net> for
- reporting this and suggesting a fix.
-
- * ace/Log_Msg: Modified the msg_callback(ACE_Log_Msg_Callback *)
- method to return the existing ACE_Log_Msg_Callback * so we can
- support "chaining".
-
- * ace/Log_Msg.cpp: Added explicit template instantiations for
- ACE_Reverse_Lock.
-
- * ace/Log_Msg.cpp: Changed the implementation described below to
- use an ACE_Reverse_Lock, which is cool ;-). Thanks to Carlos
- for explaining how this worked.
-
- * ace/Log_Msg.cpp: Don't hold the lock during a msg_callback() to
- avoid deadlock. Thanks to Matthew Davis
- <matthew.davis@solers.com> for reporting this.
-
- * tests/Cached_Accept_Conn_Test.cpp: Removed a "static" from
- int debug so that the friggin' SunC++ compiler will link...
-
-Thu Sep 02 11:04:18 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: added /dev/null to egrep invocation
- so that it always shows the file name. Thanks to Doug for
- reporting this.
-
-Thu Sep 02 11:02:25 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-qnx-neutrino.h: added ACE_LACKS_SOCKET_BUFSIZ.
-
-Thu Sep 2 08:56:39 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- Added << and >> operators for ACE_CDR::Char. These are not
- to be used by TAO or the IDL compiler, they are solely for
- use with the ACE library, so that 1-byte values can be
- streamed without using the CORBAisms to_char and from_char.
- Otherwise, if a 1-byte value were on the rhs of a CDR operator,
- the compiler will probably promote the operator to the one
- using ACE_CDR::Short, which is not at all what we want.
-
-Wed Sep 1 21:37:59 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Makefile (BIN): Added the new CDR_File_Test.cpp to
- the list of files that are automatically built. Also, added
- this to run_tests.lst.
-
- * tests: Added a new test called CDR_File_Test, which
- exercises the ACE_CDR_Stream features in conjunction with file
- I/O. Thanks to Giga Giguashvili <gregoryg@ParadigmGeo.com>.
-
- * tests/CDR_Test.cpp: Moved the main() function to the end
- of the file.
-
- * ace/OS.i: Moved the new ACE_OS::filesize() method down in
- this file until *after* the ACE_OS::close() method to prevent a
- "used before being inlined" error on DU. Thanks to David for
- reporting this.
-
-Wed Sep 1 20:41:03 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/run_tests.lst:
- Disabled the Time_Service_Test, it was crashing the parent
- process.
-
-Wed Sep 01 19:46:30 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: allow log directory (-l option argument)
- to start with anything except -.
-
-Wed Sep 1 17:15:25 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Arg_Shifter.cpp (get_current_parameter): Removed egcs
- warnings by making <difference> int and also cleaned up the
- code.
-
-Wed Sep 1 15:51:41 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Timer_Queue/Thread_Timer_Queue_Test.cpp: Fixed a typo
- where ACE_reinterpret_cast() was misspelled. Thanks to
- David for reporting this.
-
- * examples/QOS/server.cpp: "ACE"-ified this example.
-
- * ace/OS: Added a new method called ACE_OS::filesize() that
- takes a LPCTSTR so that we can pass a file name to this.
-
- * ace/config-win32-borland.h: Changed ACE_CC_COMPILER to
- CPP32.EXE on the recommendation of Christopher Kohlhoff
- <chris@kohlhoff.com>.
-
- * ace/Synch.h: Updated the documentation of ACE_Semaphore::remove()
- to clarify that it should only be called by one thread to avoid
- race conditions. Thanks to Clarence Bishop
- <clarence.bishop@na.marconicomms.com> for mentioning this.
-
-1999-09-01 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ACE_wrappers/ace/OS.h:
- * ACE_wrappers/ace/OS.i:
- Added a wrapper ACE_OS::enum_protocols () for WSAEnumProtocols().
- Tested this function with the ACE QOS test.
-
- * examples/QOS/client.cpp:
- * examples/QOS/server.cpp:
- Replaced the occurences of WSAEnumProtocols with
- ACE_OS::enum_protocols () and successfully ran the QOS test.
-
-Wed Sep 1 15:51:41 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i: Ensure that ACE_OS::localtime_r() does the "Right
- Thing"[TM], i.e., returns the pointer in the buffer provided by
- the user, even if there's no native support for localtime_r() on
- the OS platform. In addition, added an ACE_OS_GUARD for this
- use-case so that we don't have race conditions in MT programs.
- This necessitated moving the localtime_r() wrapper facade into
- the OS.cpp file. Thanks to Jody Hagins <jody@atdesk.com> for
- these suggestions.
-
- * ace/SV_Semaphore_Complex: Improved the documentation a bit
- based on comments from Herbert <herbert@shym.com>.
-
-Wed Sep 1 15:15:00 1999 Luther Baker <ljb1@cs.wustl.edu>
-
- * ace/Arg_Shifter.h: Added function (get_current_parameter(offset)
- to return parameters that may be mangled with flags.
-
- * ace/Arg_Shifter.cpp: Implemented function above.
-
-Wed Sep 1 14:50:48 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h: Added definitions for _O_BINARY, _O_TEXT, and _O_RAW
- if they are not defined. Thanks to Kevin Lyda
- <kevin.lyda@trintech.com> for pointing this out.
-
-Wed Sep 1 14:30:58 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/Process_Manager.cpp: Typo fixed.
-
-Wed Sep 1 11:18:26 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Reactor_Notify_Test.cpp: Fixed an erroneous use of =
- rather than != and added another pair of explicit template
- instantiations for ACE_Auto_Basic_Ptr<>. Thanks to Carlos for
- reporting this.
-
- * ace/Process_Manager.cpp (handle_close): Removed a warning
- about unused parameter. Thanks to David for reporting this.
-
- * tests/Reactor_Notify_Test.cpp: I needed to add
-
- #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
- rather than
-
- #else
-
-Wed Sep 01 11:55:31 1999 Steve Huston <shuston@riverace.com>
-
- * ace/CORBA_Handler.{h cpp} (ACE_ST_CORBA_Handler): Made the
- ACE_ST_CORBA_Handler instance get cleaned up via object manager
- at rundown, giving it a chance to clean up it's reactor
- registrations and reset its Orbix callbacks. Also added a new
- capability of allowing the ACE_ST_CORBA_Handler to daisy-chain
- the Orbix callbacks - this is only enabled if
- ACE_TAKEOVER_ORBIX_CALLBACKS is set in the config.h file, and
- its use is highly discouraged unless you really know what you're
- doing and can account for all of the callbacks.
-
-Wed Sep 1 11:18:26 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- Thanks to David for reporting this.
-
- * tests/run_tests.lst: Disabled the Process_Manager_Test
- until it's stable. Thanks to David for reporting this.
-
-Wed Sep 1 00:05:04 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/config-win32-borland.h: Added a #define for ACE_CC_COMPILER
- so that things will work properly on Borland. Thanks to
- Goldshtain Dmitry <goldshtain.dmitry@usa.net> and Adrian
- Mercieca <adrian@anvil.co.uk> for reporting this.
-
-Wed Sep 01 10:45:15 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp} (ACE_OS_Object_Manager::init,fini): replaced
- use of ACE_ERROR with a new, private method (print_error_message).
- If one of the operations in init () fails, then the Log_Msg
- instance might not work properly. Thanks to Alain Magloire
- <alain@qnx.com> for noting this.
-
- print_error_message also consolidates the common const char
- strings into one place. This entire changes reduces the size
- of OS.o by about 900 bytes.
-
-Wed Sep 1 00:05:04 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Reactor_Notify_Test.cpp: Only run the iterations in
- this test for 2000 times, not 10000 times.
-
-Wed Sep 1 07:41:58 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/Process_Manager.cpp (wait):
- An ACE_NEW_RETURN needed ACE_INVALID_PID for the return
- value instead of ACE_INVALID_HANDLE.
-
-Wed Sep 1 00:05:04 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Process_Manager_Test.cpp: Made some minor changes in
- this test so that it'll compile. We still need to update it so
- it'll run correctly with the new version of ACE_Process_Manager,
- however.
-
- * ace/Process_Manager: Integrated the latest and greatest
- ACE_Process_Manager from Dave Madden <dhm@mersenne.com>. This
- should now work relatively transparently on all OS platforms
- that support processes. We'll be adding a new
- Process_Manager_Test.cpp shortly...
-
- * tests/Reactor_Notify_Test.cpp: Modified this test to exercise
- the new user-level notification queueing in the ACE_Reactor.
-
-Tue Aug 31 16:05:14 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager.cpp (handle_close): Added an ACE_UNUSED_ARG
- to keep the compiler from warning that the "handle" parameter
- isn't used.
-
- * ace/OS.h: Added a new #defined called
- ACE_REACTOR_NOTIFICATION_ARRAY_SIZE that designates the size of
- the array of ACE_Notification_Buffers used by the new Reactor
- user-level notification queue feature.
-
- * ace/Select_Reactor_Base: Added support for a user-level
- notification queue that can buffer very large amounts of pending
- notifications, i.e., well beyond the 64 kbyte limit imposed by
- the use of a socket. This feature is only enabled if
- ACE_HAS_REACTOR_NOTIFICATION_QUEUE is enabled in a config.h
- file. Thanks to Detlef Becker <Detlef.Becker@med.siemens.de>
- for suggesting this and contributing a prototype implementation.
-
-Tue Aug 31 20:10:49 1999 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * ace/OS.h: Added the ACE_HAS_NO_THROW_SPEC check in order to
- suppress the generation of throw specs to placate some compilers
- and make it easier for CORBA developers to by lazy wrt C++
- exception throw specs ;-). Thank to Andreas Geisler
- <Andreas.Geisler@erls.siemens.de> for suggesting this addition
-
-1999-08-31 Vishal Kachroo <vishal@cs.wustl.edu>
-
- Modified the ACE GQoS test to use a single handler registered
- for QOS_MASK|READ_MASK instead of two separate handlers. Had to
- remove the following files and add other files.
-
- * ACE_wrappers/examples/QOS/QOS_Event_Handler.cpp
- * ACE_wrappers/examples/QOS/Read_Handler.h
- * ACE_wrappers/examples/QOS/QOS_Event_Handler.h
- * ACE_wrappers/examples/QOS/Read_Handler.cpp
-
- Added the following files :
-
- The Sender event handler is only registered for QOS events. It
- uses the ACE_OS::sendto () as soon as it receives a QOS event.
-
- * ACE_wrappers/examples/QOS/Sender_QOS_Event_Handler.cpp
- * ACE_wrappers/examples/QOS/Sender_QOS_Event_Handler.h
-
- The Receiver event handler is registered for both QOS as well as
- READ events since it has to initially wait for a PATH RSVP
- message from the sender (QOS event, finally!!) and then read
- from the same QOS enabled socket.
-
- * ACE_wrappers/examples/QOS/Receiver_QOS_Event_Handler.cpp
- * ACE_wrappers/examples/QOS/Receiver_QOS_Event_Handler.cpp
-
- The client and server have been modified to subscribe to the
- same multicast session. The RSVP SP on the receiver side sends
- RESV messages at the earliest indication of QOS parameters AND
- existence of a matching PATH state. This state is found only if
- a multicast socket has been created (by the sender) with a
- matching "multicast session" address.
-
- * ACE_wrappers/examples/QOS/server.cpp:
- * ACE_wrappers/examples/QOS/client.cpp:
-
- Modified the following to incorporate the removal and addition
- of files listed above.
-
- * ACE_wrappers/examples/QOS/QOS.dsw
- * ACE_wrappers/examples/QOS/client.dsp
- * ACE_wrappers/examples/QOS/server.dsp
-
-Tue Aug 31 16:05:14 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Malloc_T,
- * ace/Malloc: For historical reasons, we'd had a nested class
- called ACE_Malloc_Control_Block within ACE_Malloc_Header. This
- was redundant and confusing, so I merged the fields of
- ACE_Malloc_Control_Block into ACE_Malloc_Header. In addition, I
- also added a constructor that initialized the fields to 0 so
- that we won't have problems with Purify complaining about
- uninitialized memory reads. Thanks to Carlos for reporting
- this.
-
-Tue Aug 31 15:54:56 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Process_Manager.h: There was a bizarre default value
- for the pid parameter, which was helping to cause ambiguity
- warnings from the C++ compiler. I've removed this.
-
-Tue Aug 31 00:16:34 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * build/egcs/tests/Cached_Accept_Conn_Test.h: Moved the template
- class into the header file so that IBM C++ will be happy.
-
- * tests/Cached_*_Test.h: Updated these files to include the proper
- descriptive information.
-
- * tests/Upgradable_RW_Test.h: Cleaned up the formatting for this
- test.
-
- * tests/Cached_Accept_Conn_Test.cpp,
- * tests/Cached_Conn_Test.cpp,
- * tests/Conn_Test.cpp,
- * tests/DLList_Test.cpp,
- * tests/Hash_Map_Manager_Test.cpp:
- Fixed some "order of definition" problems caused by the
- workarounds for SunC++ 5.0 -g bugs. Also replaced the use of
- ADDR and STRING with ACE_ADDR and ACE_STRING to avoid potential
- clashes with symbols in the global name space. Thanks to David
- for reporting this.
-
-1999-08-31 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ACE_wrappers/examples/QOS/server.cpp
- * ACE_wrappers/examples/QOS/client.cpp
- * ACE_wrappers/examples/QOS/QOS_Event_Handler.cpp
- * ACE_wrappers/examples/QOS/QosEvent.h
- * ACE_wrappers/examples/QOS/Read_Handler.h
- * ACE_wrappers/examples/QOS/QOS_Event_Handler.h
- * ACE_wrappers/examples/QOS/Read_Handler.cpp
- * ACE_wrappers/examples/QOS/QOS.dsw
- * ACE_wrappers/examples/QOS/client.dsp
- * ACE_wrappers/examples/QOS/server.dsp:
- These files test the new ACE GQoS features, which
- implement IntServ features over WinNT 2000.
-
-Tue Aug 31 14:47:54 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added a note on building egcs with the
- -fsquangle option contributed by Skye Sweeney
- <ssweeney@sanders.com>.
-
-Tue Aug 31 00:16:34 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * bin/clone.cpp: Modified this program so that it'll work more
- flexibly with symbolic links. In particular, clone can now
- generate symbolic links with relative pathnames to the source.
- Thus, you can now call it like this:
-
- % clone -s ../../foo .
-
- and all of the cloned links will properly refer to ../../foo
- (adding the appropriate number of extra '..'s to handle
- directory nesting). Thanks to Jonathan Biggar <jon@biggar.org>
- for these fixes.
-
- * ace/Process.cpp: Need to #include "ace/Signal.h".
-
- * Added a series of fixes that allow ACE to build and
- run cleanly with SunC++ 5.0 and Solaris 7 even when debugging is
- NOT enabled. These changes require moving the explicit template
- instantiations from the BOTTOM of the *.cpp files to near the
- top. Thanks to Robert Shewan <rshew@peri.com> for reporting
- this.
-
- * ace/Process_Manager.cpp: Fixed some warnings. Thanks to
- Carlos for reporting this.
-
-Mon Aug 30 21:14:46 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager.cpp: Added the destructor for
- ACE_Process_Descriptor. Thanks to David for reporting this.
-
-Mon Aug 30 17:20:56 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-qnx-neutrino.h: added ACE_LACKS_MUTEXATTR_PSHARED.
-
- * ace/OS.i (mutex_init): enable the ACE_UNUSED_ARG (type)
- statement with ACE_LACKS_MUTEXATTR_PSHARED.
-
-Mon Aug 30 17:10:00 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ACE-INSTALL.html: Added a note about the "-fsquangle" option
- to be used with egcs to shorten long symbol names.
-
-Mon Aug 30 16:12:36 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process.i: Oops, the implementation of gethandle() was
- in a Win32-specific part of the code...
-
- * ace/Msg_WFMO_Reactor.h: Fixed a problem that was causing
- ACE_Msg_WFMO_Reactor from being included in the documentation
- windex files. Thanks to Jody Hagins for reporting this.
-
-Mon Aug 30 16:16:46 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * PROBLEM-REPORT-FORM:
-
- Updated to point to refer reports ace-bugs mailing list.
-
-Mon Aug 30 14:27:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Cached_Accept_Conn_Test.cpp,Cached_Conn_Test.cpp,
- Map_Manager.cpp:
- use the explicit template instantiations even with
- ACE_HAS_GNU_REPO. g++ 2.91.66 misses some of them with -frepo.
-
-Mon Aug 30 15:23:12 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager: Integrated the new features that make it
- possible to notify a Reactor when a process exits. Thanks to
- Dave Madden <dhm@mersenne.com> for contributing this.
-
- * ace/Process: Added a more portable timed wait() operation for
- UNIX platforms. However, this method has the following two
- limitations: (1) on UNIX platforms this function uses <ualarm>,
- i.e., it overwrites any existing alarm and (2) it steals all
- SIGCHLDs during the timeout period, which will break another
- ACE_Process_Manager in the same process that's expecting SIGCHLD
- to kick off process reaping. If you know a good solution to
- this please let us know. Thanks to Dave Madden
- <dhm@mersenne.com> for contributing this.
-
- * ace/Process: Added setgroup() and getgroup() methods to
- ACE_Process_Options so that we can manage groups of processes.
- Thanks to Dave Madden <dhm@mersenne.com> for contributing this.
-
- * examples/OS/Process/process.cpp: Added a new version that
- tests the various wait() methods on ACE_Process. Thanks to Dave
- Madden <dhm@mersenne.com> for contributing this.
-
- * config-chorus.h,
- config-cray.h,
- config-cygwin32-common.h,
- config-freebsd-pthread.h,
- config-freebsd.h,
- config-hpux-9.x.h,
- config-hpux-9.x.h,
- config-lynxos.h,
- config-netbsd.h,
- config-sunos4-g++.h,
- config-sunos4-lucid3.2.h,
- config-sunos4-sun3.x.h,
- config-sunos4-sun4.1.4.h,
- config-sunos4-sun4.x-orbix.h,
- config-sunos4-sun4.x.h,
- config-win32-common.h:
- Added ACE_LACKS_SETPGID on the assumption that platforms lacking
- getpgid() won't have setpgid() either. If this turns out to be
- incorrect, please let me know.
-
- * ace/OS: Added a new wrapper facade method for setpgid(). Thanks to
- Dave Madden <dhm@mersenne.com> for contributing this.
-
- * ace/OS.h: Added a new macro called ACE_INVALID_PID. Thanks to
- Dave Madden <dhm@mersenne.com> for contributing this.
-
- * ace/Local_Tokens.h: Added a comment explaining that these locking
- classes aren't intended as general-purpose synchronization
- mechanisms. Thanks to Brian Wright <bwright@paladyne.com>
-
- * examples/Misc/test_trace.cpp (main): Added a call to
- ACE_OS::atexit() to make sure we test this someplace.
-
-Mon Aug 30 12:11:06 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Strategies.i:
- Once a Recyclable object reaches the ACE_RECYCLABLE_CLOSED state
- its state cannot change. This eliminates a nasty race condition
- where one thread detects that the connection is closed (and sets
- the state accordingly), but another thread changes the state to
- IDLE, based on old information.
- Thanks to Mark L Boriack <mboriack@std.saic.com> for reporting
- this problem and helping us debug it.
-
-Mon Aug 30 10:43:08 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-irix6.x-common.h:
- Added ACE_HAS_SIGSUSPEND and ACE_HAS_TIMEDWAIT
-
-Mon Aug 30 10:18:52 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * PROBLEM-REPORT-FORM:
-
- Fixed typo.
-
- * acconfig.h:
- * configure.in:
-
- Removed ACE_LACKS_ATEXIT test since the macro no longer exists.
-
- Added test for ACE_HAS_SIGSUSPEND.
-
-Mon Aug 30 07:38:11 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Message_Block_Test.cpp,
- examples/Reactor/Misc/test_event_handler_t.cpp:
- use the explicit template instantiations even with
- ACE_HAS_GNU_REPO. g++ 2.91.66 misses some of them with -frepo.
-
-Sun Aug 29 22:57:26 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Signal_Test.cpp (worker_parent): Revised the test
- so that we transmit the parent process ID in argv so that the
- child doesn't have to "guess." This solves the annoying
- problems with Linux threads...
-
-Sun Aug 29 21:35:17 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-g++-common.h:
- 1) Don't #define ACE_HAS_EXPLICIT_INSTANTIATION with
- ACE_HAS_GNU_REPO, so that -frepo can do its thing. [Bug 248]
- 2) #undef ACE_HAS_STRING_CLASS with ACE_HAS_GNU_REPO, because
- egcs 2.91.66 can't build IOStream test (due to an unresolved
- basic_string method instantiation) otherwise.
-
- * ace/config-aix-4.x.h,ace/config-cygwin32-common.h,
- ace/config-hpux-10.x-g++.h,ace/config-irix5.3-g++.h,
- ace/config-irix6.x-g++.h,ace/config-linux-common.h,
- ace/config-lynxos.h,ace/config-osf1-4.0.h,ace/config-sunos4-g++.h,
- ace/config-sunos5.4-g++.h,ace/config-sunos5.5.h,
- ace/config-unixware-2.*-g++.h:
- moved ACE_HAS_STRING_CLASS #define before #include of
- config-g++common.h, so that config-g++-common.h can #undef
- it with ACE_HAS_GNU_REPO.
-
- * include/makeinclude/rules.lib.GNU: when ace_lib_prelink is
- enabled, add a link step before building a library. This is
- used, for example, to insert template instantiations into
- object files. [Bug 248]
-
- * include/makeinclude/wrapper_macros.GNU: set ace_lib_prelink
- to 1 when repo is enabled. Added ACE_NUL and ACE_NUL_STDERR
- macros, for internal use to support the prelink step. [Bug 248]
-
-Sun Aug 29 07:53:33 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Signal_Test.cpp: Linux threads are problematic because
- getppid() isn't the process id of your parent PROCESS, it's the
- "process" id of your parent THREAD. Yikes! Therefore, I had to
- rearrange this test so that it'll work on Linux.
-
- * ace/config-qnx-neutrino.h,
- * ace/config-vxworks5.x.h,
- * ace/config-osf1-4.0.h,
- * ace/config-sunos5.5.h,
- * ace/config-linux-common.h: Added support for
- the ACE_HAS_SIGTIMEDWAIT and ACE_HAS_SIGSUSPEND macros.
-
- * ace/OS: Added a new sigsuspend() wrapper to class ACE_OS. This
- implementation is "smarter" than the default behavior of
- sigsuspend(2) because it'll handle NULL sigset_t *'s gracefully.
-
- * ace/Signal: Make the use of ACE_Sig_Set & parameters
- const-correct.
-
- * ace/Signal: Added a new method for ACE_Sig_Action that'll register
- an ACE_Sig_Set's worth of signals simultaneously.
-
- * ace/Signal: Updated the documentation to explain what the various
- constructors do.
-
- * ace/Process.h: Updated the documentation for ACE_Process::spawn()
- to explain what the return values are.
-
- * tests/Makefile: Added Signal_Test to the list of tests that are
- built automatically.
-
- * tests: Added a new test, Signal_Test.cpp, that exercises the
- various signal handling capabilities supported by ACE on various
- OS platforms.
-
- * ace/OS.h,
- * ace/README,
- * ace/config-vxworks5.x.h:
- Removed all mention of the ACE_LACKS_ATEXIT feature. This is
- now the default behavior because we ACE_OS_Object_Manager::at_exit()
- to get consistent semantics, as described below. Thanks to David
- for pointing this out.
-
- * ace/OS.i: Changed the implementation of ACE_OS::atexit() to always
- use the ACE_OS_Object_Manager::instance ()->at_exit() method so
- that we get consistent semantics across platforms.
-
-Sun Aug 29 18:27:38 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * ACE.ifnames:
- * ace-diff-config.in:
-
- Removed ace-diff-config.in and ACE.ifnames from the repository.
- They are only used for internal ACE Configuration Project
- testing.
-
- * Makefile.am:
- * configure.in:
-
- Removed references to ace-diff-config.in and ACE.ifnames.
-
- * acconfig.h:
- * configure.in:
-
- Added entries and tests for the following macros:
-
- ACE_AUTO_PTR_LACKS_RESET
- ACE_HAS_LLSEEK
- ACE_HAS_EXPLICIT_KEYWORD
- ACE_HAS_MUTABLE_KEYWORD
- ACE_HAS_STD_TEMPLATE_SPECIALIZATION
- ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION
- ACE_HAS_SIGTIMEDWAIT
- ACE_LACKS_ATEXIT
- ACE_LACKS_GETPPID
-
- * configure.in:
-
- Fixed auto_ptr test. auto_ptr was being used incorrectly.
-
-Sun Aug 29 07:53:33 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Process_Manager_Test.cpp: Changed the names of the signal
- handlers to one_child_synchronous_signal_handler() and
- multiple_children_synchronous_signal_handler() to reflect how
- they are used.
-
- * ace/OS.[hi]: Added a new wrapper for sigtimedwait() so that
- we can encapsulate this. To make programming more consistent,
- the encapsulation uses an ACE_Time_Value, rather than a struct
- timespec.
-
- * ace/config-linux-pthread.h,
- * ace/config-linux-lxpthreads.h: Removed the
-
- #define ACE_HAS_SIGWAIT
-
- macro since this was already defined in config-linux-common.h.
-
- * tests/Malloc_Test.cpp: Improved the test by printing out
- additional diagnostic information. Also validated that it works
- when ACE_DEFAULT_BASE_ADDR == 0 on Solaris using SunCC (with
- purify) and EGCS.
-
- * ace/Malloc: Added a dump() method to ACE_Malloc_Header.
-
- * ace/Process_Manager.cpp (ACE_Process_Descriptor): Changed
- a -1 to a 0 to prevent a compiler warning. Thanks to
- David Levine and DEC UNIX for reporting this.
-
-Sun Aug 29 00:14:09 1999 Luther Baker <ljb1@cs.wustle.edu>
-
- * ace/Arg_Shifter.h (cur_arg_strncasecmp): Removed and replaced earlier
- method 'is_or_contains_ignore_case' with 'cur_arg_strncasecmp.'
- This method does less and it is more self-contained, adding protection
- and greater flexibility for the program program using it.
-
- * ace/Arg_Shifter.cpp (cur_arg_strncasecmp): Implementation
- corresponding with changes in ACE_Arg_Shifter class.
-
-Sun Aug 29 00:13:35 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager.i: Moved the destructor for
- ACE_Process_Descriptor out of the *.i file since it's always
- called by vector delete and therefore inlining it is pointless.
-
-Sat Aug 28 23:46:55 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager.cpp (resize): The loop should run
- from 0 < this->current_count_ rather than 0 <
- this->max_process_table_size_.
-
-Sat Aug 28 16:28:33 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Synch_T.i: reordered some methods to avoid
- use before definition.
-
-Fri Aug 27 18:52:00 1999 Luther Baker <ljb1@cs.wustl.edu>
-
- * ace/Arg_Shifter.h (is_or_contains_ignore_case): added method
- to facilitate CORBA spec in ORB_init.
-
- * ace/Arg_Shifter.cpp (is_or_contains_ignore_case): implemented
- the method added. Part of a larger project to implement CORBA
- spec regarding -ORB parsing in ORB_init.
-
-Fri Aug 27 18:58:50 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/run_tests.lst: Reenabled the Process_Manager_Test since
- it now seems to work fine with EGCS after the fix noted below.
-
-Fri Aug 27 18:39:14 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager.cpp (wait): Fixed a mistake in the coding
- logic whereby we were returning from the function in a loop even
- when there was no error. Thanks to David Levine and DEC UNIX
- for pointing this out.
-
-Fri Aug 27 16:05:49 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.*,Log_Msg.cpp,Synch_T.i: reverted changes of
- Fri Aug 27 11:29:21 1999 David L. Levine <levine@cs.wustl.edu>
- to see if they caused problems on NT. Thanks to Michael
- and Jeff for reporting this.
-
-Fri Aug 27 12:01:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (mktime): added static cast of -1 return value
- to time_t to avoid warnings on VxWorks.
-
-Fri Aug 27 11:38:36 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Config.cpp (process_directives): Remember to close
- down the svc.conf file pointers once they are processed. Thanks
- to Lothar Werzinger <werzinger.lothar@krones.de> for pointing
- this out.
-
-Fri Aug 27 11:29:21 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.*: moved ACE_OS_Recursive_Thread_Mutex_Guard from
- OS.cpp to OS.h so that Log_Msg.cpp can use it.
-
- * ace/Log_Msg.cpp: replaced use of ACE_Guards with
- ACE_OS_Thread_Recursive_Mutex. [Bug 262]
-
- * ace/OS.h (ACE_OS_Recursive_Thread_Mutex_Guard::lock):
- added this method.
-
- * ace/OS.cpp (ACE_OS_GUARD,ACE_TSS_CLEANUP_GUARD,
- ACE_TSS_BASE_GUARD): fixed to use
- ACE_OS_Recursive_Thread_Mutex_Guard::lock. Added
- _RETURN versions.
-
- * ace/Synch_T.i: reordered some methods to avoid
- use before definition.
-
-Fri Aug 27 09:53:09 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Stream.{h,cpp}: added get_vpi_vci method.
- * examples/IPC_SAP/ATM_SAP/CPP-{client,server}.cpp: Changed tests to
- print out VPI and VCI after connected.
-
-Fri Aug 27 10:50:10 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 5.0.3 released.
-
-Fri Aug 27 09:32:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: added some diagnostics to see why
- diffs aren't being created.
-
-Fri Aug 27 07:17:58 1999 Toshio Hori <toshi@etl.go.jp>
-
- * ACE-INSTALL.html: fixed a typo, missing ; after
- &lt and &gt.
-
-Thu Aug 26 21:01:02 1999 Jim Rucker <James.D.Rucker@jpl.nasa.gov>
-
- * ace/Thread_Manager.cpp (spawn_i): on VxWorks, if t_handle
- is non-0, set it with thr_handle.
-
-Thu Aug 26 16:33:42 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Msg.cpp: removed unnecessary #include "ace/Synch_T.h".
- [Bug 262]
-
-Thu Aug 26 13:49:00 1999 David L. Levine <levine@cs.wustl.edu>
-
- * examples/Threads/Makefile: removed process_manager from BIN.
- See Sat Aug 21 12:36:40 1999 Douglas C. Schmidt.
-
-Thu Aug 26 12:22:55 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-ghs-common.h: on Sun, added
- ACE_HAS_NONSTATIC_OBJECT_MANAGER. It's necessary
- to prevent seg fault on startup. Thanks to
- David Sunwall <das@planet8.tds-eagan.lmco.com> for
- reporting this problem.
-
-Thu Aug 26 12:11:09 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added guidelines to avoid
- default arguments, and favor narrow interfaces.
-
-Thu Aug 26 11:44:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Time_Value_Test.cpp (main): added static casts
- of the doubles to longs. g++ 2.7.2.3 warned about
- passing a double to a long :-)
-
-Thu Aug 26 11:20:55 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Time_Value_Test.cpp (main): added a test showing
- that ACE_Time_Value (2.5) == ACE_Time_Value (2).
- The 2.5 gets coerced to a long with value 2. Beware . . .
-
-Thu Aug 26 10:43:04 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/config-sunos5.6.h:
- egcs-2.95 under Solaris 5.6 does not need
- ACE_HAS_STL_QUEUE_CONFLICT, thanks to Krishnakumar
- B. <kitty@neo.shinko.co.jp> for reporting this problem.
- This fixes [BUGID:264]
-
-Thu Aug 26 07:29:42 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i} (ACE_Time_Value): reverted
- Wed Aug 25 22:05:54 1999 David L. Levine <levine@cs.wustl.edu>
- change. It caused overload ambiguity when the types of
- sec and usec didn't match, and on Sun CC 4.2/SunOS 5.6.
- Thanks to Andy for reporting that.
-
-Wed Aug 25 22:05:54 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i} (ACE_Time_Value): added four new
- constructors. One takes a double, to avoid surprises
- (truncation) when constructing an ACE_Time_Value from
- a double. The other three constructors take two
- unsigned longs, ints, and unsigned ints. They avoid
- the ambiguity introduced by the new double constructor.
- Thanks to Dave Meyer <dmeyer@std.saic.com> for starting this :-)
-
- The double constructor is wrapped with
- #ifndef ACE_LACKS_FLOATING_POINT.
-
- * tests/Time_Value_Test.cpp (main): removed cast of
- 2.0 to long.
-
-Wed Aug 25 16:15:07 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-subsets.html: removed spurious LOGGING_FILES
- text.
-
-Wed Aug 25 15:55:05 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp},Object_Manager.*,Signal.i (default_mask): moved
- the default_mask () static method from ACE_Object_Manager
- to ACE_OS_Object_Manager, so that it can be used by
- Log_Msg.cpp without layer inversion. (Left a deprecated,
- inline ACE_Object_Manager::default_mask (), for backward
- compatibility.) default_mask () now returns a sigset_t *
- instead of an ACE_Sig_Set *, again to avoid layer inversion.
-
- * ace/Log_Msg.cpp (log): replaced use of ACE_Sig_Guard
- with a bare-bones ACE_Log_Msg_Sig_Guard. [Bug 262]
-
-Wed Aug 25 14:53:58 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/run_all.pl:
- * bin/auto_compile:
- The script did not start with the canonical trick to run perl
- from [t]csh, [ba]sh or perl itself.
-
-Wed Aug 25 14:45:06 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * tests/Process_Manager_Test.cpp:
-
- Explicitly include "ace/Signal.h" to make declaration of
- ACE_Sig_Set class visible.
-
- return statement at end of multiple_children_sig_handler()
- function is never reached. It was commented out to prevent
- compiler warnings.
-
-Wed Aug 25 13:34:07 1999 Narendra Ravi <naren@cs.ualberta.ca>
-
- * ACE-INSTALL.html: added information about -j GNU make option.
-
-Wed Aug 25 12:26:49 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- On Borland C++ (and other platforms) we should use
- std::bad_alloc instead of bad_alloc for the ACE_bad_alloc
- exception. We use the ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
- macro to detect this. Thanks to Jody Hagins <jody@atdesk.com>
- for this fix.
-
- * tests/run_tests.lst:
- Disabled the Token test, it is more trouble that it is worth. It
- hangs and tends to freeze the complete testsuite.
-
-Wed Aug 25 12:09:32 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * Makefile:
- Include (conditionally) the $TAO_ROOT/tao/tao_targets.GNU file,
- that defines the targets required to compile just TAO.
-
-Tue Aug 24 21:47:44 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Synch_Options.{h,cpp} (timeout): added const to
- ACE_Time_Value & argument, because it's not modified.
- Thanks to John Lindal <jafl@cco.caltech.edu> for suggesting this.
-
-Tue Aug 24 10:02:51 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Process_Manager_Test.cpp: Fixed a number of warnings
- caused by unused args and signed/unsigned mismatches. Thanks to
- David Levine for reporting this.
-
- * ace/Service_Repository.h,
- ace/Service_Config.h,
- ace/OS.h:
- Changed the default number of entries in the
- ACE_Service_Repository from ACE_DEFAULT_SELECT_REACTOR_SIZE
- to ACE_DEFAULT_SERVICE_REPOSITORY_SIZE, which defaults to
- 1024. Thanks to Ivan Murthy <Ivan.Murphy@med.siemens.de> for
- suggesting this.
-
-
-Tue Aug 24 16:23:07 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/make_release:
- Use an explicit temporary file to create the ChangeLog, i had
- some problems with the previous scheme, but it could be my
- shell.
- When tagging TAO we have to change directories.
-
-Tue Aug 24 12:19:29 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Makefile:
- Updated dependencies
-
- * performance-tests/TCP/tcp_test.cpp:
- Fixed argument parsing.
-
-Tue Aug 24 10:37:02 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/cvslog (find_changelogs): one more time: append /$file
- to `pwd`, so that we can find ChangeLogs in child directories.
- Always call basename (), again.
-
-Tue Aug 24 09:10:58 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/cvslog (find_changelogs): don't call basename () immediately
- after calling `pwd`, so that ChangeLogs in current directory
- will be found.
-
-Tue Aug 24 07:11:52 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.*,Object_Manager.{h,cpp},README: with ACE_LACKS_ATEXIT,
- use ACE_OS_Object_Manager::at_exit () to emulate atexit ().
- [Bug 246]
-
- * tests/Object_Manager_Test.cpp,tests/Makefile,
- tests/run_pharlap_tests.bat,tests/run_tests.bat,
- tests/run_tests.lst,tests/run_tests.psosim,
- tests/run_tests.vxworks,tests/t.icc,tests/icc.bat:
- added Object_Manager_Test.
-
-Mon Aug 23 22:03:24 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/rules.lib.GNU:
- * include/makeinclude/rules.local.GNU:
- When compiling both shared and static libraries only one of them
- was installed. Thanks to Paul Calabrese <calabrese_p@ociweb.com>
- for providing this fix.
-
-Mon Aug 23 21:41:43 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/run_tests.pl:
- We search for "Starting" instead of "starting" because that's
- what the tests print out now.
-
-Mon Aug 23 21:20:28 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * docs/ACE-guidelines.html:
- Added new guidelines relevant to ACE+TAO.
-
-Mon Aug 23 16:57:13 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * performance-tests/RPC/README:
- * performance-tests/RPC/client.cpp:
- Changed the options to make it more consistent with other tests
- like this one.
- Added a README file
-
-Mon Aug 23 16:53:00 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * performance-tests/Makefile:
- * performance-tests/TCP/README:
- Added a README file for the test
-
- * performance-tests/TCP/tcp_test.cpp:
- Added options to pace the events and to control the message size
- on the server side.
-
- * performance-tests/RPC/Makefile:
- * performance-tests/RPC/client.cpp:
- * performance-tests/RPC/ping.x:
- * performance-tests/RPC/server.c:
- Added a simple RPC test to compare sockets (ACE), RPC and TAO.
-
-Mon Aug 23 13:30:32 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/platform_sunos5_kcc.GNU: The optimization
- flag for KCC should be +K3, not -K2.
-
-Mon Aug 23 10:56:40 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/cvslog: added this wrapper around cvs log. It
- expands ChangeLogTags to their ChangeLog entries.
- Thanks to Luther for helping greatly with it.
-
-Mon Aug 23 08:46:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Object_Manager.{h,cpp}: replaced the use of
- ACE_Unbounded_Queue<ACE_Cleanup_Info> with a new
- ACE_Cleanup_Info_Node private helper class. The reduces
- the size of libACE by over 4 Kb, and is the first step
- towards moving the Object_Manager's atexit () support to
- OS. [Bug 246]
-
-Mon Aug 23 07:28:02 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.check: changed "starting" to "Starting",
- to match a recent change to test_config.h.
-
- * tests/test_config.h: changed one remaining "starting" to
- "Starting", to be consistent.
-
-Mon Aug 23 07:08:17 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/run_tests.lst: disabled Process_Manager_Test,
- because it never terminates when built with egcs
- on both Solaris 7 and Linux.
-
-Sun Aug 22 21:15:13 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: with Green Hills for x86 target, use
- $(MAKE) instead of make to build .obj/gethrtime.o.
- Thanks to Cliff_H_Campbell <Cliff_H_Campbell@res.raytheon.com>
- for reporting this.
-
-Sun Aug 22 21:02:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks5.x.h: added ACE_LACKS_ATEXIT.
-
-Sun Aug 22 21:01:18 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/README: added ACE_LACKS_ATEXIT.
-
-Sun Aug 22 14:51:56 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/OS.i (join_leaf): Constructed a winsock2 QOS structure
- within ACE_OS::join_leaf () from the corresponding ACE QOS
- classes. Passed this QOS structure to WSAJoinLeaf ().
-
-Sun Aug 22 12:18:42 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.i (wait): Fixed a typo.
-
- * ace/Process.cpp (ACE_Process): Removed an extra underscore.
-
- * ace/OS.i (getppid): Removed undefined variable <pid>.
-
-Sat Aug 21 12:36:40 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.h: Moved the ACE_OS::set_exit_hook() static method
- into the OS.i file so be more consistent with the other ACE_OS
- methods. Also, changed the signature of extern "C" void
- ACE_OS_Object_Manager_Internal_Exit_Hook () to void
- ACE_OS_Object_Manager_Internal_Exit_Hook (void) so that this
- will match the type declaration for ACE_EXIT_HOOK.
- [NOTE: that's not really a signature change. g++ needs the
- "void", however, to avoid a bug without -pedantic.]
-
- * ace/Process_Manager.cpp: Use the new ACE_OS::wait() method,
- which is portable to Win32, rather than ACE_OS::waitpid().
-
- * tests/Process_Manager_Test.cpp: Completed the first major
- enhancement to the test that exercises the new
- ACE_Process_Manager features. This test builds and runs cleanly
- on Solaris using CC and should run on other versions of UNIX
- that support threads and processes. It would be great if
- someone could improve it to run on Win32, as well.
-
- * ace/Process_Manager: Added support for the spawn_n() method,
- which creates N new processes.
-
- * tests: Cleaned up the use of ACE_INIT_LOG/ACE_APPEND_LOG in
- Process_Manager_Test.cpp and Malloc_Test.cpp so we don't lose
- information. Both these tests now write their child processes'
- output to "<testname>-child.log".
-
- * ace/Thread_Manager.h: Added a default value of 0 to the
- exit() method since this is a common return status.
-
- * ace/config-win32-common.h: Added ACE_LACKS_GETPPID.
-
- * ace: Added a new wrapper for getppid(). For platforms that
- don't support this system call, please add ACE_LACKS_GETPPID.
-
- * tests: Moved the $ACE_ROOT/examples/Threads/process_manager.cpp
- example into the $ACE_ROOT/tests directory, renamed it to
- Process_Manager_Test.cpp, and revised the test to illustrate the
- new ACE_Process_Manager features.
-
- * tests/run_tests.lst: Added the Process_Manager_Test to the
- list of tests to run.
-
- * tests/Malloc_Test.cpp (main): Added some necessary ASYS_TEXT
- macros.
-
- * ace/Process.i: Rather than replicate the #ifdef logic in
- ACE_OS::kill() within ACE_Process:kill(), we just forward to
- ACE_OS::kill() and let it sort this out!
-
- * ace/Process: Moved several of the short wait() methods from the
- *.cpp file to the *.i file and inlined them.
-
- * ace/Process_Manager.cpp: The logic for the implementation of
- terminate() was incorrect, i.e., the process table entry should
- be removed *if* ACE::terminate_process() succeeds but *not* if
- it fails!
-
- * ace/OS.h: Added a new method called wait() that works portably
- on Win32 and UNIX/POSIX platforms.
-
- * ace/Process: Added an optional "options" parameter to the former
- "blocking" wait() method on ACE_Process. This allows clients to
- use the WNOHANG option to avoid blocking if the child process
- hasn't exited yet. Also changed the type of the return value to
- pid_t rather than int. Finally, added an optional status
- pointer to the "timed" wait() method (which only works on
- Win32).
-
- * ace/OS.h: On platforms that do not define WNOHANG natively,
- changed #ifdef of WNOHANG to 0100 (which can be used in bitmask
- comparisons) rather than Douglas Adams favorite constant: 42.
-
-Sat Aug 21 14:13:46 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ACE version 5.0.2 released.
-
-Sat Aug 21 11:52:51 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * Makefile:
- Fixed small problem in the releaseall target.
-
- * bin/make_release:
- The shell did not like the embedded script to print the
- ChangeLog entry.
-
-Fri Aug 20 15:40:58 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Process_Manager: Added a new method called wait() that's
- just syntactic sugar for ACE_Process_Manager::reap(). Thanks to
- Dave Madden <dhm@mersenne.com> for suggesting this.
-
- * ace/OS: Added support for ACE_OS::atexit(), which necessitated
- changing the extern "C" signature for ACE_EXIT_HOOK to typedef
- void (*ACE_EXIT_HOOK) (void) so that this will be consistent
- with the signature expected by the ISO/ANSI C atexit() call. At
- the moment, ACE_OS::atexit just calls ::atexit() (unless a
- platform's config.h file #defines ACE_LACKS_ATEXIT).
- Ultimately, we might want to have this hook into the
- ACE_OS_Object_Manager's at_exit() support, which may be more
- portable and reliable.
-
- * ace/ACE_Process_Manager.h: Made the destructor virtual so it's
- possible to subclass from this class.
-
- * ace/Process_Manager.h: Updated the comments on the wait()
- method to indicate that a signal handler must be used to keep
- track of the number of remaining child processes. Thanks to
- Dave Binder <dbinder@globalmt.com> for motivating this.
-
-Thu Aug 19 18:45:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Auto_Ptr.h: modified ACE_AUTO_PTR_RESET macro, to pass the
- type of the pointer. This is needed for the case where
- ACE_AUTO_PTR_LACKS_RESET is defined, in order to explicitly
- convert the pointer into an auto_ptr for assignment.
-
-Thu Aug 19 17:26:50 1999 John Heitmann <jwh1@cs.wustl.edu>
-
- * docs/ACE-SSL.html: Cleaned up the auto generated errors.
-
-Thu Aug 19 16:47:21 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ACE-INSTALL.html: Added a reference to $ACE_ROOT/docs/ACE-SLL.html.
-
- * docs: Added a new ACE-SSL.html file that explains how to participate in the
- ACE SSL project. Thanks to John Heitmann <jwh1@cs.wustl.edu>
- for adding this.
-
-Thu Aug 19 15:31:58 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_OSTREAM_TYPE): Removed the redundant trailing *
- for the defintion when ACE_LACKS_IOSTREAM_TOTALLY is defined.
-
-Thu Aug 19 14:16:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.nested.GNU: added ACE_NESTED_COMMAND
- hook. Users can set it to whatever they like (preferably in
- include/makeinclude/platform_macros.GNU). One example is
- to set it to:
-
- ACE_NESTED_COMMAND := || break $?
-
- to terminate building if a build in one subdirectory fails.
- Thanks to Lothar Werzinger <werzinger.lothar@krones.de> for
- suggesting this addition.
-
-Thu Aug 19 13:06:00 1999 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * ace/Read_Buffer.cpp: Fixed a bug in rec_read () method
- which prohibited reading more than 1024 bytes at once.
-
-Thu Aug 19 13:03:07 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/ACE.h (ACE): Fixed a "cut & paste" error in the comment --
- basename should have been dirname. Thanks to Mark Hyett
- <mhyett@std.saic.com> for reporting this.
-
- * ace/ACE.cpp: Fixed a bug in ACE::dirname() that was causing problems
- if the pathname didn't have a delim character. Thanks to Russ
- Noseworthy for reporting this and providing a fix.
-
-Thu Aug 19 12:59:56 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Message_Block.i:
- Moved ACE_Message_Block::replace_data_block() down in the file
- because it was using inline functions that were defined after it
- was. Thanks to David for pointing this out.
-
-Thu Aug 19 10:53:50 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (setuid): added ACE_UNUSED_ARG (uid) for VxWorks,
- pSOS, WIN32, and Chorus. Thanks to Garry Brother
- <gmbroth@ncsc.mil> for reporting this.
-
-Thu Aug 19 10:04:12 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: added
- trap to cause builds to fail if the exceptions flag is
- enabled. The VxWorks libraries don't support exceptions.
- And, exceptions give the (Tornado II) compiler fits, e.g.,
- with ACE_wrappers/TAO/tao/IORManipulation.cpp. Thanks to
- Erik Johannes <ejohannes@oresis.com> for this nifty preemptive
- solution, and to Nick Sawadsky <Nick_Sawadsky@BrooksSoftware.com>
- for motivating its implementation.
-
-Thu Aug 19 09:34:41 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/WFMO_Reactor.h,
- * ace/WFMO_Reactor.cpp,
- * ace/Select_Reactor_T.h,
- * ace/Select_Reactor_T.cpp,
- * ace/Reactor_Impl.h,
- * ace/Reactor.h,
- * ace/Reactor.cpp:
- Added a pair of restart() methods that can be used to set/get
- the restart_ flag, which controls whether the handle_events()
- event loop is restarted automatically when select() is
- interrpted. Thanks to Erik Koerber <erik.koerber@siemens.at>
- for suggesting this.
-
- * ace/Service_Config: Updated the failure result comment for
- open() and cleaned up the return value and errno propagation for
- open_i() when process_commandline_directives() fails. Thanks to
- Jerry D. De Master <jdemaste@ipdinc.com> for reporting the bug
- and suggesting a fix.
-
- * ace/Service_Config.h: Moved the process_directives() method
- used to parse the svc.conf files out of the protected part of
- the class to the public part so that application programmers can
- call this directly to reconfigure services from the svc.conf
- files. Thanks to John Mink <John.Mink@nl.origin-it.com> for
- suggesting this.
-
-Wed Aug 18 22:45:24 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/WFMO_Reactor.h,
- * ace/WFMO_Reactor.cpp,
- * ace/XtReactor.h,
- * ace/XtReactor.cpp,
- * ace/TkReactor.h,
- * ace/TkReactor.cpp,
- * ace/FlReactor.h,
- * ace/FlReactor.cpp,
- * ace/Select_Reactor_T.h,
- * ace/Select_Reactor_T.cpp,
- * ace/Reactor_Impl.h,
- * ace/Reactor.h,
- * ace/Reactor.cpp:
- * ace/Timer_Hash_T.h:
- * ace/Timer_Heap_T.h:
- * ace/Timer_List_T.h:
- * ace/Timer_Queue_T.h:
- * ace/Timer_Wheel_T.h:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Heap_T.cpp:
- * ace/Timer_List_T.cpp:
- * ace/Timer_Wheel_T.cpp:
- Changed all uses of const long to long...
-
-Wed Aug 18 22:15:58 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/run_tests.sh:
- It was running the DISABLED tests, thanks to David for pointing
- this out.
-
-Wed Aug 18 21:48:52 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added Toshio Hori <lttoshi@etl.go.jp>
- suggestions (in a new section) on building just what's
- needed for TAO, and his tips for reducing disk space
- usage on Unix platforms.
-
-Wed Aug 18 21:32:56 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * docs/usage-bugzilla.html:
-
- Added a simple document explaining basic usage of our
- installation of bugzilla.
-
- * ACE-INSTALL.html:
- * PROBLEM-REPORT-FORM:
-
- Updated with information about the bugzilla usage
- documentation.
-
-Wed Aug 18 20:28:23 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/check_build_logs: check for just Stop, not [Ss]top,
- to avoid snagging top output. Gnu make says "Stop" when
- it can't find a dependency.
-
-Wed Aug 18 19:08:08 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp},Object_Manager.{h,cpp},Log_Msg.cpp:
- moved ACE_LOG_MSG_INSTANCE_LOCK from ACE_Object_Manager
- to ACE_OS_Object_Manager, so that Log_Msg.cpp needn't
- to depend on Object_Manager for it.
-
-Wed Aug 18 18:20:11 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/SOCK_Send_Recv_Test.cpp:
- Fixed typo.
-
-Wed Aug 18 17:58:06 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * THANKS:
- * ace/README:
- * ace/config-irix6.x-common.h:
- Added new macro (ACE_HAS_BROKEN_DGRAM_SENDV) to handle platforms
- where using sendmsg with exactly IOV_MAX elements in the iovec
- fails (normally the number of elements can be up to and
- including IOV_MAX). Thanks to Tobin Bergen-Hill
- <tbhill@dctd.saic.com> for tracking this down.
-
-Wed Aug 18 16:08:46 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/SOCK_Send_Recv_Test.cpp: Reformatted this test so
- that it conforms to ACE programming guidelines.
-
-Wed Aug 18 13:49:30 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Makefile: if ACE_COMPONENTS = FOR_TAO, don't include
- Filecache in UTILS_FILES. TAO doesn't need Filecache.
- And, its ACE_Hash<ACE_CString> and ACE_Equal_To<ACE_CString>
- explicit template instantiations collide with those in
- ACE_wrappers/TAO/tao/POA.cpp. That precludes building
- a shared libTAO for VxWorks, for example. And, it costs 14 Kb.
- Thanks to Erik Johannes <ejohannes@oresis.com> for helping
- to find this solution. And reminding me to implement it :-)
-
-Wed Aug 18 13:16:09 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: clarify that PERL_PATH must include
- the full path, including the perl.exe filename. Thanks
- to Walter Welzel <Walter.Welzel@med.siemens.de> for
- reporting this.
-
-Wed Aug 18 13:11:30 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- The new methods to manipulate condition variable attributes
- were not compiling on single threaded platforms.
-
-Wed Aug 18 13:09:36 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Makefile: don't add libDLL_Test.$(SOEXT) to BUILD
- on VxWorks. Thanks to Walter Welzel <Walter.Welzel@med.siemens.de>
- for reporting that it did get build for VxWorks with
- shared libs enabled, but not successfully (or usefully).
-
-Wed Aug 18 10:36:16 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ACE-INSTALL.html: Updated all references to MSVC 4.x. We no
- longer support the compiler. Thanks to Welzel Walter
- <Walter.Welzel@med.siemens.de> for pointing this out.
-
-Wed Aug 18 10:42:13 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Timer_List_T.cpp (reset_interval): Added a constcast to
- make SunC++ 4.2 happy. Thanks to Andy for reporting this.
-
- * ace/WFMO_Reactor.i (reset_timer_interval): The return type
- was incorrect... Thanks to Andy and Jeff for reporting this.
-
-Wed Aug 18 09:47:51 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/run_tests.pl:
- The disabled tests were executed anyway, thanks to David for
- pointing this out.
-
-Wed Aug 18 09:34:46 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/FlReactor.cpp:
- * ace/XtReactor.cpp:
- Fixed typos in the code, this is only used in a few platforms,
- that's why it didn't show up before.
-
-Tue Aug 17 20:02:55 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Reactor_Timer_Test.cpp: Enhanced this test to exercise
- the new reset_timer_interval() feature that Darrell added. It
- appears to work quite well. Also, make the test easier to
- understand by adding more structure.
-
- * ace/WFMO_Reactor.h,
- * ace/WFMO_Reactor.cpp,
- * ace/XtReactor.h,
- * ace/XtReactor.cpp,
- * ace/TkReactor.h,
- * ace/TkReactor.cpp,
- * ace/FlReactor.h,
- * ace/FlReactor.cpp,
- * ace/Select_Reactor_T.h,
- * ace/Select_Reactor_T.cpp,
- * ace/Reactor_Impl.h,
- * ace/Reactor.h,
- * ace/Reactor.cpp:
- Exposed the new reset_interval() method Darrell added to all the
- Timer mechanisms via a method in each of these Reactor's called
- reset_timer_interval().
-
- * ace/Timer_Hash_T.h:
- * ace/Timer_Heap_T.h:
- * ace/Timer_List_T.h:
- * ace/Timer_Queue_T.h:
- * ace/Timer_Wheel_T.h:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Heap_T.cpp:
- * ace/Timer_List_T.cpp:
- * ace/Timer_Wheel_T.cpp:
- Changed the return values of <reset_interval> to be (1)
- consistent (i.e., to return a value through all paths in the
- method) and (2) to return -1 on failure and 0 on success.
- Also replaced a number of C-style casts with
- ACE_reinterpret_casts.
-
-Tue Aug 17 20:51:35 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/TP_Reactor.h:
- * ace/TP_Reactor.cpp:
- The TP Reactor also experiences a performance hit if signal
- masking is enabled. Therefore, we can now make this optional.
-
-Tue Aug 17 19:10:00 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/OS.cpp: Fixed typo.
-
- * ace/Stats.cpp: Removed some warnings showing up in MSVC when
- assigning ACE_UINT64 values to ACE_UINT32 variables. Used
- ACE_U64_TO_U32 to remove these warnings.
-
- * ace/Timer_Hash_T.h:
- * ace/Timer_Heap_T.h:
- * ace/Timer_List_T.h:
- * ace/Timer_Queue_T.h:
- * ace/Timer_Wheel_T.h:
- * ace/Timer_Hash_T.cpp:
- * ace/Timer_Heap_T.cpp:
- * ace/Timer_List_T.cpp:
- * ace/Timer_Wheel_T.cpp:
- Added a new method, <reset_interval> which can be used to
- change the interval of a timer represented by a timer_id.
-
-Tue Aug 17 18:43:53 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- Added wscmp and wsncmp functions to go with the existing
- wslen and wscpy functions. These all use WChar*, so arg
- size is independent of platform. These are to be used for
- all manipulations of CORBA::WString. The two that were
- added were needed for wstring tests in Param_Test. WChar*
- versions of the other string manipulation functions will
- be added as needed.
-
-Tue Aug 17 17:49:33 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/config-sunos5.5.h: If (_LARGEFILE_SOURCE) || (_FILE_OFFSET_BITS==64)
- are enabled then #undef ACE_HAS_PROC_FS and ACE_HAS_PRUSAGE_T to
- work around problems with Solaris 7. Thanks to Sridhara Rao
- Dasu <dasu@slac.stanford.edu> for reporting this.
-
- * ace/OS.i: Updated the readdir_r() conditional compilation so that
- it'll work when _FILE_OFFSET_BITS == 64. Thanks to Sridhara Rao
- Dasu <dasu@slac.stanford.edu> for reporting this.
-
-Tue Aug 17 17:17:13 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/OS.i:
- * ace/OS.cpp:
- Added new data type to handle condition variable attributes
- (ACE_condattr_t). New methods to manipulate that data type
- (ACE_OS::cond_attr_init and destroy) Add new method to create a
- condition variable from a pre-initialized attribute.
-
- * ace/Synch.h:
- * ace/Synch.i:
- * ace/Synch.cpp:
- Added new wrapper for the ACE_condattr_t structure.
-
- * ace/Token.h:
- * ace/Token.cpp:
- Use ACE_Condition_Attributes to minimize the number of memory
- allocations and locks in the critical path of the TP_Reactor.
-
-Tue Aug 17 15:55:17 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/TCP/TCP.{dsw,dsp}:
- * performance-tests/TCP/Makefile:
- * performance-tests/TCP/tcp_test.cpp: Added the new test modified
- by Carlos and a bit further by me. The test measures TCP
- performance of a platform. We can also use it to test the
- performance of various reactors.
-
-Tue Aug 17 14:52:40 1999 Darrell Brunsch <brunsch@cs.wustl.edu>
-
- * ace/config-win32.h: Added ACE_CC_COMPILER definition for MSVC.
- ACE_CC_COMPILER is a string containing the compiler program.
-
-Tue Aug 17 13:48:27 CDT 1999 Loren Rittle <rittle@rsch.comm.mot.com>
-
- * bin/update-ace+tao.sh: Use authoritative name list instead of
- ad hoc list to update file.
-
-Tue Aug 17 06:33:05 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Task.h: Clarified the comment regarding
- open() and close() on ACE_Task_Base. Thanks to Jeff Franks
- <Jeffrey_Franks@i-o.com> for suggesting this.
-
-Tue Aug 17 11:56:33 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Select_Reactor_T.h:
- * ace/Select_Reactor_T.cpp:
- Added option in the constructor to disable the signal handling
- features in the select reactor. This eliminates a couple of
- kernel level locks that are not needed in all applications.
-
- * ace/Stats.h:
- * ace/Stats.cpp:
- Now we keep track of the iteration where the minimum and maximum
- latencies were achieved.
-
-Tue Aug 17 06:33:05 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * bin: Added a new shell script called update-ace+tao.sh
- that updates the ACE/TAO source tree to the latest
- numeric-assigned version. Thanks to Loren Rittle
- <rittle@comm.mot.com> for contributing this.
-
-Mon Aug 16 20:09:12 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_Stream.i:
- * ace/CDR_Stream.cpp:
- Added new method to transfer the contents of one CDR stream into
- another. This is used in the implementation of the ORB to
- minimize the number of data copies, memory allocations and
- locks.
-
- * ace/Message_Block.h:
- * ace/Message_Block.i:
- Added new method to replace the Data_Block, this method returns
- the old one, letting the user decide how to deallocated the Data
- block, possibly transfering it to another Message_Block.
-
-Mon Aug 16 15:58:12 1999 Steve Huston <shuston@riverace.com>
-
- * ace/config-sunos5.5.h:
- * include/makeinclude/platform_sunos5_sunc++.GNU: Added support
- for using "compat=4" mode for Sun CC 5. To use this, do
- "make compat4=1", or equivalent. Compat 4 uses -compat=4 with
- its old iostreams, but the newer Sun CC 5 scheme of explicit
- template instantiation.
-
-Mon Aug 16 11:59:18 1999 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp (subscribe): Constructed and passed a
- complete sockaddr_in to the ACE_OS::join_leaf () call. This was
- just being passed sockaddr_in.sin_addr.s_addr.
-
-Sat Aug 14 18:01:27 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/run_tests.pl:
- Fixed some output messages that were going to stdout.
-
-Sat Aug 14 15:20:27 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/SOCK_Dgram_Mcast.cpp (subscribe): It looks like there
- was a bug where we were passing an s_addr to ACE_OS::join_leaf()
- rather than a sockaddr *. Fixing this also cleaned up some code
- that was #ifdef'd for UNICOS. Thanks to Vishal for reporting
- this.
-
- * ace/Process.h: Added a virtual to ~ACE_Process so that it
- can be used for subclassing more readily. Thanks to Zoran
- Ivanovic <zorani@pathcom.com> for suggesting this.
-
-Sat Aug 14 14:11:25 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * ace/Remote_Tokens.cpp (tryacquire): Fixed so that it uses
- ACE_Token_Request::TRY_ACQUIRE instead of RELEASE.
-
-Fri Aug 13 18:55:51 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Handle_Set.h (ACE_Handle_Set): Clarified the meaning of the
- nbits_ array. Thanks to Hao Ruan <hruan@lucent.com> for
- motivating this.
-
-Fri Aug 13 21:18:40 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.i (llseek): on Linux, moved extern "C" llseek ()
- declaration out of the function. Thanks to Tal Lev-Ami
- <tla@tici.co.il> for this fix.
-
-Fri Aug 13 20:50:02 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Select_Reactor_T.cpp (handle_events): Added a deactivation
- check for non-threaded case. The original check was mixed with
- thread owner check and thus got disabled under single-threaded
- configurations. Thanks to Kirthika for reporting the problem.
-
-Fri Aug 13 13:11:16 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: moved ACE_wrappers/TAO addition to
- $release_files so that it's only done for the ACE+TAO kit.
-
-Fri Aug 13 12:44:08 1999 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile,bin/make_release: added support (and documentation)
- for creating kits with or without new tags, or using an old
- tag; generated man pages; installation to the public ftp/http
- site on ace; and zip files.
-
-Fri Aug 13 07:58:12 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,i},README,config-osf1-4.0.h (llseek): added
- ACE_HAS_LLSEEK support. Thanks to Tal Lev-Ami <tla@tici.co.il>
- for providing this.
-
-Thu Aug 12 22:05:37 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/OS.i (sema_wait, rw_tryrdlock, rw_trywrlock):
- Replaced more ad hoc uses of the
-
- int error = 0;
- ...
- error = errno;
- ...
- errno = error;
-
- idiom with the ACE_Errno_Guard.
-
- * ace/Synch.h: Updated the comment to remind folks who would
- like to have a working ACE_Process_Condition to contact us if
- they know how to do this. Thanks to Craig Anderson
- <chanders@timing.com> for motivating this.
-
- * tests/Process_Strategy_Test.cpp (open): Clarified the behavior
- of the code that's run when fork() is used. Thanks to Umar
- Syyid for motivating this.
-
-Thu Aug 12 21:30:09 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU:
- added SIMNT support.
-
-Thu Aug 12 20:54:40 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h: added ACE_HAS_USING_KEYWORD
- for cxx and Rational compilers. [Bug 163]
-
-Thu Aug 12 20:47:13 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Cached_Accept_Conn_Test.cpp:
- Made the <debug> and <connection_accepted> variables global
- instead of static, because otherwise Sun/CC automatic template
- instantiation cannot find them at link time. The variables are
- used in template code that is defined and used in the same file,
- but Sun/CC does not seem to understand that.
-
-Thu Aug 12 17:14:35 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/OS.h:
- Changed typedef of WChar to ACE_UINT16. The CDR operations
- are already using write_2, read_2 and SHORT_SIZE, and
- in the process of implementing wchars and wstrings in
- IDL, it's going to be important to optimize for the
- Unicode common case.
-
-Thu Aug 12 16:24:16 1999 David L. Levine <levine@cs.wustl.edu>
-
- * bin/make_release: chdir up a level before removing the
- staging directory. Thanks to Carlos for pointing out
- that it's necessary, because we had chdir'd into it.
- And for noticing that $build_commands got clobbered in
- create_kit (). Obey $generate_man_pages setting.
-
-Thu Aug 12 16:03:03 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE version 5.0.1 released.
-
-Thu Aug 12 15:49:00 1999 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile,bin/make_release: build kits in /tmp staging
- area, and copy to ace's ftp pub/ACE directory.
-
-Thu Aug 12 11:36:46 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/OS.h:
- * ace/Svc_Handler.cpp:
- * ace/Future.cpp:
- Some platforms require arguments in the exception thrown from
- operator new. The standard (std::bad_alloc) does not require
- any.
- Added a new macro (ACE_throw_bad_alloc) that takes care of these
- differences, including platforms that don't throw exceptions but
- return something.
-
-Wed Aug 11 17:00:00 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * tests/Cached_Accept_Conn_Test.cpp:
- Removed run_event_loop and end_event_loop and put in
- handle_events with a flag to stop the loop. This is a bug fix
- for Bug183.
-
-Wed Aug 11 15:49:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: cleaned up ACE doc tool discussion.
- Added Carlos' inlining heuristics.
-
-Wed Aug 11 13:53:20 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-win32.h,config-win32-borland.h: added
- ACE_HAS_MUTABLE_KEYWORD. Thanks to Jody for this request.
-
-Wed Aug 11 13:15:26 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-g++-common.h,config-win32.h,config-win32-borland.h:
- added ACE_HAS_EXPLICIT_KEYWORD
- (for egcs only, in config-g++-common.h). Thanks to Jody Hagins
- <jody@atdesk.com> for this update.
-
- * ace/config-g++-common.h: added ACE_HAS_MUTABLE_KEYWORD.
-
-Wed Aug 11 13:10:32 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h,README: added ACE_HAS_MUTABLE_KEYWORD support.
- Thanks to Jody Hagins <jody@atdesk.com> for providing it.
-
-Wed Aug 11 12:55:23 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Svc_Handler.cpp:
- * ace/Future.cpp:
- The throw expressions require a constructor, not just the type,
- thanks to David for pointing this out.
-
-Wed Aug 11 10:12:11 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h,Auto_Ptr.h,SString.h,README: added support for
- ACE_HAS_EXPLICIT_KEYWORD. Thanks to Jody Hagins <jody@atdesk.com>
- for suggesting this.
-
-Wed Aug 11 10:07:36 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Future.cpp:
- * ace/Local_Tokens.cpp:
- * ace/Log_Msg.cpp:
- * ace/Log_Record.cpp:
- * ace/Svc_Handler.cpp:
- * netsvcs/lib/Token_Handler.cpp:
- Fixed several warnings and errors with gcc-2.95
-
- * include/makeinclude/wrapper_macros.GNU:
- Add -fcheck-new to the command-line of g++ when compiling with
- exceptions disabled. In that case new operators could return 0
- and without this option the constructor will surely be invoked
- on invalid data.
-
- * bin/auto_compile:
- Use LOGNAME instead of USER to get the username because it is
- more portable.
-
-Tue Aug 10 23:47:32 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.h:
- * ace/Caching_Utility_T.h:
- * ace/Caching_Strategies_T.h:
- * ace/Cleanup_Strategies_T.h:
- * ace/Cache_Map_Manager_T.h:
- * ace/Hash_Cache_Map_Manager_T.h:
-
- Defined macros to shorten lengthy class names for linkers which
- couldnt grok long names (example: Sun Linker). Thanks to
- Dr.Schmidt for this cool idea.
-
-Tue Aug 10 19:07:32 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/run_tests.sh:
- * tests/run_tests.pl:
- * tests/run_tests.lst:
- Move the list of tests to a separate file. This file is used to
- drive both a perl version of the script and the old shell
- version.
- The new perl version is able to terminate programs that hang,
- but still has problem with processes that fork children who then
- hang for some reason. The perl script has to be ported to Win32
- too.
-
- * bin/run_all_list.pm:
- Use the new tests/run_tests.pl script on Unix.
-
- * bin/run_all.pl:
- Run all the test scripts in ACE and TAO, much like run_all_win32
- but for unix systems.
-
- * bin/auto_compile:
- Remember to remove the disable file in case of errors.
-
-Tue Aug 10 18:08:30 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * ace/CDR_Stream.h:
- * ace/CDR_STream.i:
- Added all the necessary stuff for wstrings.
-
-Tue Aug 10 15:36:02 1999 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Malloc_Test.cpp (main): removed unused argc
- declaration, with ACE_LACKS_FORK && ! ACE_HAS_WIN32.
-
-Tue Aug 10 15:26:43 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.cpp (strptime): removed unreachable break after
- return statement, in default case of switch statement.
-
-Tue Aug 10 14:46:12 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.{h,cpp},README: Changed support for ACE_OS::strptime ()
- to be configurable. VxWorks, LynxOS, and Chorus, for example,
- don't have a native ::strptime (). The current emulation cost
- 2 Kb, which will be objectionable to some embedded systems
- developers.
-
- Replaced ACE_LACKS_STRPTIME with a combination
- ACE_HAS_STRPTIME/ACE_LACKS_NATIVE_STRPTIME. ACE_HAS_STRPTIME
- enables ACE_OS::strptime () support. ACE_LACKS_NATIVE_STRPTIME
- lets ACE know that there's no native ::strptime (), so it then
- uses its emulation.
-
- This has two advantages: it minimizes footprint in the default
- case, and doesn't break builds on platforms that don't have
- ::strptime (). It easily allows developers to configure ACE
- identically, with respect to strptime, on their Unix, NT, and
- embedded platforms. [Bug 219]
-
- * ace/config-sunos5.5.h,config-linux-common.h,config-osf1-4.0.h,
- config-irix6.x-common.h:
- added #define ACE_HAS_STRPTIME. [Bug 219]
-
-Tue Aug 10 12:28:54 1999 Jeff Parsons <parsons@cs.wustl.edu>
-
- * bin/run_all_list.pm:
- Added IDL test to the list.
-
-Mon Aug 09 16:49:45 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.{h,cpp} (wait): Re-visited the implementation so it
- behaves the same on both UNIX and Win32. Thanks to Doug for
- suggesting this.
-
-Mon Aug 09 16:30:24 1999 David L. Levine <levine@cs.wustl.edu>
-
- * docs/ACE-guidelines.html: added note to follow the
- ACE documentation tools guidelines and restrictions.
- Thanks to Doug for pointing this out.
-
-Mon Aug 09 16:06:01 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Applied smart eg++
- recognizer. Thanks to Craig Anderson <chanders@timing.com> for
- providing the patch.
-
-Mon Aug 9 11:29:36 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * bin: Fixed html-windex so that it works when class names contain
- the digit '3' in them, e.g., ACE_WIN32_Asynch_Accept, etc.
- Thanks to Jody Hagins <jody@atdesk.com> for reporting this
- problem.
-
-Mon Aug 09 15:10:27 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Process.h (wait): Rewrote comments.
-
- * ace/Service_Config.h (open): Revised the comments for several
- service_config flags. Thanks to Doug for pointing this out.
-
-Mon Aug 9 11:29:36 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Reactor/Misc/test_demuxing.cpp: Added a destructor
- to ~STDIN_Handler that will remove the event handler for STDIN
- and the registered timer.
-
-Mon Aug 9 10:45:24 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/Memory_Pool.cpp (handle_signal): When working with an MMAP
- memory pool, a "real" segmentation fault (not related to
- updating the memory mapping) will cause the process to fail but
- not write a core file. This is because that on linux (and
- possibly other flavours of UNIX) core file writing is a default
- behaviour which is disabled once you register a signal handler.
- Even if the signal handler returns a bad return value which
- crashes the program, a core file will not be written.
-
- The fix for this is to modify the mmap() signal handler so that
- it de-registers the signal handler when detecting a segfault
- with the mapping up to date and return an "ok" answer. the
- program will attempt to access the illegal address again and
- dump core. Thanks to Joseph Weihs <joseph-w@Orbotech.Co.IL> for
- contributing this fix.
-
- * ace/Signal: Changed the new handle_i() and register_handler_i()
- methods to be static member functions so they can be called from
- the static dispatch() member function. Thanks to Andreas
- Geisler <andreas.geisler@erls.siemens.de> for reporting this.
-
-Mon Aug 9 10:33:50 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/ASX/CCM_App/SC_Server.cpp: Make sure to enable
- the appropriate parameter for ACE_Service_Config::open() so that
- static services will be enabled. Thanks to Michael Roth
- <ombelico@gmx.net> for reporting this.
-
-Mon Aug 09 10:21:37 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU (INCLDIRS):
- removed "-I.". It's not necessary, because the preprocessor
- will first look for headers in the current directory, when
- appropriate. It causes trouble, for example, on NT for
- VxWorks with Green Hills. Instead of including the system's
- Signal.h, ACE's signal.h gets #included with "-I.". Thanks
- to Dale Wood <dale_wood@Mitel.com> for helping to track
- this down. [Bug 35]
-
- * include/makeinclude/platform_vxworks5.x_ghs.GNU: no longer
- need to override INCLDIRS, now that it doesn't contain "-I.".
- [Bug 35]
-
-Mon Aug 09 10:09:57 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h,streams.h: moved ACE_OSTREAM_TYPE #define from
- streams.h to OS.h, so that it is seen with
- ACE_LACKS_IOSTREAM_TOTALLY. And, provide default value
- for ACE_DEFAULT_LOG_STREAM. [Bug 208]
-
- * ace/Log_Msg.cpp: changed a couple remaining ostream occurrences
- to ACE_OSTREAM_TYPE. Replaced conditional use of
- ACE_DEFAULT_LOG_STREAM/&cerr with ACE_DEFAULT_LOG_STREAM,
- now that it's always defined. [Bug 208]
-
-Mon Aug 09 09:47:06 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Log_Msg.{h,cpp}: replaced the ACE_Log_Msg_key_created_
- and ACE_Log_Msg_key_ file static variables with static
- class members ACE_Log_Msg::key_created_ and
- ACE_Log_Msg::log_msg_tss_key_, respectively. Only declare
- ACE_Log_Msg::log_msg_tss_key_ if the platform supports TSS
- (native or emulated). Replaced the ACE_Log_Msg_message_queue
- file static variable with ACE_Log_Msg_Manager::message_queue_.
- Cleaned up Log_Msg.cpp. [Bug 86]
-
- Thanks to Umar Syyid <usyyid@hns.com> for suggesting that
- we remove the file static variables.
-
-Mon Aug 09 09:33:43 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/OS.h: #define ECOMM (to ECONNABORTED) if it's not
- already #defined. This allows support on NT. Thanks to
- Andy for reporting this.
-
-Mon Aug 9 07:45:19 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Signal.h: Modified the behavior of the
- ACE_Sig_Handler::dispatch() method so that on Win32 it'll
- automagically re-register the signal handler after the
- handler_signal() method returns with a non -1 value. Thanks to
- Andreas Geisler <andreas.geisler@erls.siemens.de> for suggesting
- this.
-
- * tests/Malloc_Test.cpp: Win32 didn't seem to like a 32k
- offset for the virtual address. Let's try 64k instead. Thanks
- to Nanbor for reporting this.
-
- * tests/Malloc_Test.cpp: Changed the sense of the conditional
- compilation test from && !defined (ACE_WIN32) to || defined
- (ACE_WIN32) so that this will run on Win32. Thanks to
- Nanbor for reporting this.
-
- * ace/OS.i: Cleaned up the coding style for the sigset*
- wrapper functions.
-
-Sun Aug 08 21:19:42 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-osf1-4.0.h: removed unreferenced_function_param
- warning suppression. It's no longer needed with the fixes
- to avoid unreferenced function parameters. [Bug 217]
-
-Fri Aug 06 15:20:00 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ACE-INSTALL.html: added information about compilation on
- SunOS5.6 using egcs1.1.2.
-
-Fri Aug 06 13:47:51 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added note about disabling optimization
- for some files with Tornado II.
-
-Fri Aug 06 13:39:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated VxWorks build information,
- specifically, the instructions for building on NT host.
- And, added information about linking libACE.so and libTAO.so
- into the VxWorks kernel. Thanks to
- Erik Johannes <ejohannes@oresis.com> and Stephane Chatre
- <schatre@oresis.com> for helping to clarify and verify.
-
-Fri Aug 06 12:10:19 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/config-win32-common.h: Added
- ACE_HAS_POSITION_INDEPENDENT_MALLOC.
-
- * ace/OS.cpp (strptime_getnum): getnum should be strptim_getnum.
-
- * ace/config-win32-common.h: Added ACE_LACKS_STRPTIME. Thanks to
- Andy for pointing this out.
-
-Fri Aug 06 11:13:27 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/streams.h,OS.h,Log_Msg.h: with ACE_LACKS_IOSTREAM_TOTALLY,
- removed the hack that re-#defined ostream. Replaced that
- with an ACE_OSTREAM_TYPE macro. [Bug 208]
-
-Fri Aug 06 10:49:34 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: updated egcs versions that we use
- (1.1.1 and 1.1.2).
-
-Fri Aug 6 08:43:22 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * examples/Log_Msg/test_log_msg.cpp (main): Changed this
- test so that it no longer abort()s, but instead calls
- ACE_OS::_exit(). This should help avoid confusion when it's
- run. Thanks to Kevin Lyda <kevin.lyda@trintech.com> for
- reporting this. This fixes [BUGID:211].
-
- * ace/SOCK_Dgram_Mcast: The QoS-enabled subscribe() call must
- call the QoS-enabled open() call, rather than the "regular"
- open() call because otherwise QoS information isn't initialized!
- Thanks to Vishal for pointing this out.
-
-Fri Aug 06 08:22:00 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Object_Manager.cpp: with ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK,
- made the ACE_Static_Object_Lock_lock instance static, to
- match the non-ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK behavior.
- Thanks to Jody for this change.
-
- Also, consolidated the code to alway use the
- ACE_Static_Object_Lock_Type typedef.
-
-Fri Aug 06 06:55:49 1999 Jody Hagins <jody@atdesk.com>
-
- * include/makeinclude/rules.local.GNU (depend.local): added
- ACE_DEPEND_SED_CMD hook, so that users can add sed scripts.
- An example is to use relative instead of absolute paths
- in dependencies. I put this into it to get the desired
- (site-specific) functionality:
-
- USER_DEPEND_SED_CMD=-e "s;$(PRISM_ROOT);\$$(PRISM_ROOT);g"
-
-Thu Aug 5 22:26:18 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/OS.h (ACE_OS): Added support for strptime() for platforms that
- lack it. Thanks to Kevin Lyda <kevin.lyda@trintech.com> for
- contributing this. Note that if a platform fails to compile
- because it doesn't support this function, please enable
- ACE_LACKS_STRPTIME in the config.h file and send us email.
-
-Thu Aug 05 21:37:05 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/Object_Manager.cpp (ACE_Static_Object_Lock_lock,
- ACE_Static_Object_Lock::instance, cleanup_lock):
- added support for ACE_SHOULD_MALLOC_STATIC_OBJECT_LOCK.
- It's not (currently) used by ACE. But, applications may
- find it useful for avoiding recursive calls if they have
- overridden operator new. Thanks to Jody Hagins
- <jody@atdesk.com> for contributing it.
-
-Thu Aug 05 21:04:20 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/streams.h: removed #includes of istream.h and ostream.h
- with ACE_HAS_STD_CPP_LIBRARY and ACE_USES_OLD_IOSTREAMS.
- Those headers aren't available with Sun CC. I think that
- they might be unnecessary with egcs for Tornado II. Thanks
- to Doug for reporting this. Ref.
- Thu Aug 05 14:31:48 1999 David L. Levine <levine@cs.wustl.edu>.
-
-Thu Aug 5 16:43:29 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * tests/Malloc_Test.cpp: Rearranged the #ifdefs so that
- we don't do much of anything if the platform doesn't support
- processes. Thanks to David Levine for reporting this.
-
-Thu Aug 5 16:27:15 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * include/makeinclude/rules.lib.GNU:
- * include/makeinclude/wrapper_macros.GNU:
- Added new macro (ACE_SHLIBS) to control the final link line of
- shared libraries. Use this macro to list the -l options
- required by your shared library that are *not* included in the
- system LIBS macro, for example "-lTAO -lACE"; the system will
- automagically change that to be "-lTAOshr -lACEshr" on AIX.
- This also decouples the shared library link line from the
- binaries, which use LDLIBS and ACELIB, allowing the application
- developers to easily mix shared libraries and binaries in the
- same directory, even if the binaries depend on the generated
- shared library.
-
-Thu Aug 05 15:44:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_g++.GNU: on
- WIN32 host, assume that $(CC) is on the user's path (or is a
- full pathname). That way, we don't need to determine ACE_CC
- dynamically, which causes trouble with the WIN32 shell. Thanks
- to Erik Johannes <ejohannes@oresis.com> for reporting this.
- [NOTE: this had been committed on a branch, but never on the
- main line.]
-
-Thu Aug 05 15:35:21 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * apps/gperf/src/gperf.dsp:
- * apps/gperf/src/gperf_lib.dsp:
- * ace/ace_lib.dsp:
- * ace/ace_dll.dsp: Changed the default configuration to Win32
- Debug so if anyone doesn't know what he is doing, he'll most
- likely to success.
-
-Thu Aug 05 15:30:32 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/streams.h: with ACE_LACKS_IOSTREAMS_TOTALLY, always
- #define ostream FILE *. [Bug 208]
-
-Thu Aug 05 15:13:01 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-lynxos.h: added note on why we don't #define
- ACE_HAS_POSIX_SEM for LynxOS. [Bug 164]
-
-Thu Aug 05 14:53:44 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/config-vxworks5.x.h: added support for the Diab
- compiler, version 4.2a or later. Compilation succeeds but links
- still have unresolved symbols related to new and delete. [Bug
- 207]
-
- * ace/OS.h,README: added support for ACE_LACKS_NEW_H. [Bug 207]
-
- * ace/OS.h: for VxWorks, use the ANSI prototypes for
- inet_ntoa.h, etc., for all VxWorks compilers, not just Green
- Hills. This allows compilation to succeed with Diab 4.2a. [Bug
- 207]
-
- Thanks to Erik Johannes <ejohannes@oresis.com> for helping with
- this quick port to Diab 4.2a for VxWorks.
-
-Thu Aug 05 14:31:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ace/iosfwd.h: #include iosfwd with
- ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION as well as without
- ACE_HAS_OLD_IOSTREAMS. This allows builds to succeed for
- Tornado II with its egcs. [Bug 206]
-
- * ace/streams.h: added #includes of istream.h, ostream.h,
- and iomanip.h with ACE_HAS_STD_CPP_LIBRARY and
- ACE_USES_OLD_IOSTREAMS. It's necessary for builds for Tornado
- II, but should be harmless and helpful on other platforms. [Bug
- 206]
-
- Thanks to Matthias Schumann <matthias.schumann@xcc.de> for
- first reporting the solution to the build problem for Tornado II.
-
-Thu Aug 5 13:03:28 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Malloc_T.cpp (shared_free): Looks like ACE_reinterpret_cast
- isn't the right thing to do... Let's just use good ol'
- fashioned C-style casts instead. Thanks to Bala for reporting
- this.
-
-Thu Aug 05 12:05:42 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: moved minimum_corba
- make flag support from wrapper_macros.GNU to TAO/rules.tao.GNU.
- Thanks to Bala for noticing this. [Bug 204]
-
-Thu Aug 05 12:01:14 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Malloc_T.cpp (shared_free): Applied
- ACE_reinterpret_cast (ACE_Malloc_Header*, yadda) to serveral
- pointer comparisons. MSVC was complaining because the pointers are
- of different types.
-
-Thu Aug 5 11:57:23 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU (YACC): Removed the
- definition of interface_repo a command line option with 'make'
- to $TAO_ROOT/rules.tao.GNU as per Dr.Levine's suggestions.
-
-Thu Aug 05 08:43:27 1999 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/platform_vxworks5.x_diab.GNU: added.
- Thanks to Erik Johannes <ejohannes@oresis.com> for
- helping to figure out its contents. Note that compiles
- succeed with Diab 4.2a for VxWorks, but links do not, yet.
-
-Thu Aug 05 08:37:09 1999 David L. Levine <levine@cs.wustl.edu>
-
- * ACE-INSTALL.html: added Kirk Davies' notes for running
- the ACE tests on Tornado II, without NFS installed.
-
-Thu Aug 5 00:15:45 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * ace/Based_Pointer_T: Changed the type of index for operator[]
- and operator+= to be int instead of long so that it'll work
- correctly when constant values are used. Thanks to
- Nanbor and KCC for pointing this out!
-
-Wed Aug 4 19:46:33 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/run_tests.sh:
- Disabled the New_Fail_Test because it breaks other
- compilations.
-
-Wed Aug 4 15:56:51 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * tests/Malloc_Test.cpp: Make this test work even if
- ACE_HAS_POSITION_INDEPENDENT_MALLOC isn't set for a particular
- platform.
-
- * tests/Malloc_Test.h: Added a #include for
- "ace/Based_Pointer_T.h". Thanks to Carlos for pointing out the
- need for this.
-
-Wed Aug 4 17:07:12 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU : Made the interface
- repository files to be compiled by default. If the user does not
- want these files to be compiled he can turn it off by issuing
- interface_repo=1 with the 'make' command.
-
-Wed Aug 4 15:56:51 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * ace/Task.h (ACE_Task_Base): Changed the parameter name
- <thread_names> to <thread_ids>, which is more descriptive.
- Thanks to John Forest <forestj@res.raytheon.com> for
- motivating this.
-
-Wed Aug 4 15:54:51 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * netsvcs/clients/Naming/Client/Makefile:
- * netsvcs/clients/Naming/Dump_Restore/Makefile:
- If the libraries are specified as dependencies then they don't
- need to be listed in LDLIBS
-
-Wed Aug 4 13:20:54 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Malloc.h: Ok, let's try this again ;-). Removed the
- forward declarations and typedefs and replaced them with
- #defines. Hopefully, this will make all the compilers happy!
-
-Wed Aug 04 12:58:53 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/*.dsp: Fixed Alpha configurations.
-
-Wed Aug 4 12:26:53 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Malloc.h:
- Added more forward declarations for the compilations that
- enabled PIM.
-
-Wed Aug 4 11:59:57 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * ace/Malloc.h:
- The previous fix did not work, i used forward declarations to
- make it work.
-
-Wed Aug 4 09:28:35 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Malloc.h: Replaced the use of typedefs for macros
- to define ACE_MALLOC_HEADER_PTR ACE, ACE_NAME_NODE_PTR,
- ACE_CHAR_PTR to try to avoid "incomplete type" messages from
- certain versions of G++. Macros are "later binding" than
- typedefs for this situation.
-
- * ace/Asynch_Acceptor.cpp (handle_accept): Fixed an expression
- that had incorrect parentheses. Thanks to David Digby
- <DWD15274@glaxowellcome.co.uk> for reporting this.
-
-Wed Aug 04 02:40:45 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/run_tests.bat: * tests/tests.dsw:
- * tests/Malloc_Test.dsp:
- * tests/version_tests/Malloc_Test.dsp: Added project files for the
- Malloc_Test and added the test in run_test.bat.
-
-Tue Aug 3 22:39:34 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/{Makefile,run_tests.sh}: Added support for the new
- Malloc_Test.
-
- * tests/Malloc_Test.cpp: Added a new test that exercises the new
- position-independent ACE_Malloc with ACE_MMAP_Memory_Pool and
- ACE_Process_Mutex.
-
- * ace/Malloc_T: Added an accessor called mutex() to allow
- applications to acquire()/release() the lock used to provide
- mutual exclusion to an <ACE_Malloc> allocator.
-
- * tests/SV_Shared_Memory_Test.cpp: Reformatted this test to
- conform to ACE programming guidelines.
-
- * ace/Memory_Pool: The void * and char * arguments to the various
- ACE_*_Memory_Pool_Options constructors should be const; now they
- are!
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp (main):
- Added auto_ptr support to this test, as well.
-
- * examples/Shared_Malloc/test_multiple_mallocs.cpp: Enhanced
- this test so that it uses auto pointers and also now takes
- advantage of position-independent malloc, when possible.
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp:
- Finished integrating all the features of this test. It's pretty
- cool now!
-
- * examples/Shared_Malloc/Makefile: Updated the LSRC target so
- 'make depend' works correctly...
-
- * ace/Select_Reactor_Base.cpp (find): Don't set errno = ENOENT
- if we find a valid mapping of handle to Event_Handler. Thanks
- to Hao Ruan <hruan@lucent.com> for reporting this.
-
- * ace/Based_Pointer_T: Added support for operator= (const
- ACE_Based_Pointer_Basic<T> &).
-
- * ace/Based_Pointer_T: Added definitions for
- ACE_Based_Pointer::operator= and
- ACE_Based_Pointer_Basic::operator= to make EGCS happy.
-
- * ace/Malloc.h: Factored out the common code for
- ACE_Based_Pointer<> and the underlying types, thereby reducing
- the number of #ifdef's.
-
- * ace/Based_Pointer_T: Added an operator CONCRETE *() method
-
- * ace/Based_Pointer_Repository.cpp: The original implementation
- of this classes stored a pointer to the size of each mapped
- address, rather than just the value. This was causing problems
- when used for shared memory because the memory was allocated in
- one process and freed in another. This is now fixed by not
- storing a pointer, but by storing the value instead. Thanks to
- Nanbor for reporting this.
-
-Tue Aug 3 23:43:47 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * netsvcs/clients/Naming/Client/Makefile:
- * netsvcs/clients/Naming/Dump_Restore/Makefile:
- Fixed dependencies so parallel compilations (using the -j
- option) will work correctly. This fixes [BUGID:187]
-
-Tue Aug 3 23:23:18 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Cached_Connect_Strategy_T.{h,cpp} (cleanup):
- Added a specialised method to prevent memory leaks with old
- versions of g++. This method calls the underlying iterator
- and does the cleanup.
-
- * ace/run_tests.sh:
- Removed purify check over Cached_Accept_Conn_Test and
- Cached_Conn_Test since they no longer leak memory when built
- using old version of g++.
-
-Tue Aug 3 22:23:18 1999 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * include/makeinclude/wrapper_macros.GNU: Added an ifeq flag for
- the interface repository. Compiling with interface_repo=1 will
- compile the files for interface repository.
-
-Tue Aug 03 21:17:00 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tests/SOCK_Connector_Test.cpp (host_is_up): Added a time out
- value of 5 second to spped up the test. Thanks to Jody Hagins
- <jody@atdesk.com> for submitting the patch.
-
-Tue Aug 03 18:30:47 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
-
- * ace/Strategies.h (ACE_Connection_Recycling_Strategy):
- Added a new pure virtual method <marked_as_closed_i> which will
- provide a non-locking implementation of the <mark_as_closed>
- method.
-
- * ace/Strategies_T.h (ACE_Cached_Connect_Strategy):
- * ace/Cached_Connect_Strategy_T.h (ACE_Cached_Connect_Strategy_Ex):
- Made <mark_as_closed_i> public.
-
- * ace/Caching_Utility_T.{h,cpp}
- (ACE_Refcounted_Recyclable_Caching_Utility): Added this class
- which caters to purging of refcounted and recyclable handlers.
-
- * ace/Cleanup_Strategy_T.{h,cpp}:
- (ACE_Refcounted_Recyclable_Cleanup_Strategy): Added this class
- which caters to the cleanup of handlers which are refcounted and
- recyclable. Heres where the necessity of making the non-locking
- version of <marked_as_closed> public arose in the first place.
-
- * ace/OS.h (ACE_Recyclable_State):
- Removed hardcoded values and left the enum values to the
- discretion of the compiler.
-
-Tue Aug 03 16:58:08 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Acceptor.{h,cpp}:
- * ace/ATM_Connector.{h,cpp}:
- * ace/ATM_Stream.{h,i,cpp}:
- * ace/ATM_Params.cpp:
- * ace/ATM_QoS.cpp:
- * ace/XTI_ATM_Mcast.{h,i,cpp}:
- Fixed inlining errors.
-
-Tue Aug 03 16:15:00 1999 Chris Gill <cdgill@cs.wustl.edu>
-
- * ace/Auto_Ptr.h: created ACE_AUTO_PTR_RESET macros, which depend on
- whether or not ACE_AUTO_PTR_LACKS_RESET is defined.
-
- * ace/config-kcc-common.h: defined ACE_AUTO_PTR_LACKS_RESET, because
- KCC native auto_ptr support is difficult to disable, and implements
- an older version of auto_ptr (without the reset method).
-
-Tue Aug 03 13:26:47 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/Service_Repository.cpp (instance): Check to see if
- the ACE_Object_Manager is being shutting down before creating a
- new instance of Service_Repository. Otherwise, we may be
- creating a new service repository just for shutting it down.
- Thanks to Doug for noticing this.
-
- * ace/Service_Config.cpp (fini_svcs): Since it is now possible for
- ACE_Service_Repository::instance to return 0 during program
- shutdown, we must check its value before using it.
-
- Notice that the change assumes people don't do stupid things
- like initializing the Service_Config during program shutdown.
-
-Mon Aug 2 23:21:01 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * bin/auto_compile:
- Added several flags to: disable test execution, specify the list
- of build directories on the command line, send email on
- successful compilation, keep a more detailed history, etc.
-
-Mon Aug 02 18:38:37 1999 Joe Hoffert <joeh@cs.wustl.edu>
-
- * ace/ATM_Acceptor.{h,i,cpp} :
- * ace/ATM_Connector.{h,i,cpp} :
- * ace/ATM_Params.{h,i,cpp} :
- * ace/ATM_QoS.{h,i,cpp} :
- * ace/ATM_Stream.{h,i,cpp} :
- * ace/XTI_ATM_Mcast.{h,i,cpp} :
- * ace/ATM_Addr.{h,cpp}:
- * ace/Makefile:
- * ace/TLI_Connector.i:
- Added new ATM wrapper files to make the mechanism of sockets or
- XTI transparent when using the ATM protocol. Modified existing
- files to take advantage of these wrapper classes.
-
- * examples/IPC_SAP/ATM_SAP :
- * examples/IPC_SAP/ATM_SAP/CPP-client.cpp :
- * examples/IPC_SAP/ATM_SAP/CPP-server.cpp :
- * examples/IPC_SAP/ATM_SAP/Makefile :
- Added new test directory and programs to test ATM wrapper classes.
-
- * examples/IPC_SAP/TLI_SAP/CPP-ATM-client.cpp:
- Modified existing test program to utilize new ATM_QoS class.
-
-Mon Aug 02 17:24:05 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * ace/OS.h (ACE_DL_TYPE): Only WinCE uses wchar_t DL type, we'll
- just deal with this in ACE_OS::dlsym instead of defining
- different types here.
-
- * ace/OS.i (dlsym): GetProcAddress is defined differently on
- Windows CE and other Win32 platforms so we need to treat them
- differently.
-
- * ace/Malloc.h (ACE_Malloc_Header): Added a dummy member function
- to prevent egcs from complaining "all member functions are
- private."
-
- * ace/Based_Pointer_Repository.cpp: Fixed the use of map
- iterators.
-
- * examples/Shared_Malloc/test_position_independent_malloc.cpp
- (main): Delete the allocator before exiting from main.
-
- * ace/Malloc.h (ACE_Malloc_Header,ACE_Name_Node,ACE_Control_Block):
- Added an unimplemented assignment operator for this class.
- Otherwise, some compilers will try to use
- ACE_Based_Pointer_Base<T>::operator= which is not implemented.
-
-Mon Aug 2 09:58:20 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * netsvcs/lib/Name_Handler.cpp (init):
- * netsvcs/lib/Server_Logging_Handler_T.cpp (init):
- * netsvcs/lib/TS_Clerk_Handler.cpp (init):
-
- Changed cast to ACE_SignalHandler to allow it to compile under
- gcc 2.95. Thanks to Jeffrey Franks <Jeffrey_Franks@i-o.com> for
- reporting the problem.
-
-Sun Aug 1 15:58:39 1999 James CE Johnson <jcej@chiroptera.tragus.org>
-
- * docs/tutorials/colorize:
- Added <PRE></PRE> wrapper around generated output.
-
- * docs/tutorials/Chap_03/Makefile:
- * docs/tutorials/Chap_03/README:
- * docs/tutorials/Chap_03/mm.cpp:
- * docs/tutorials/Chap_03/ex03.html: mm.cpp (and ex03.html) are a
- slightly modified version of ex02.html that uses a memory mapped
- file instead of SYSV SHMEM. To work around the lack of fork()
- in Win32, the app must be executed once in server mode
- (argv[1] == 's') and again in client mode.
-
-Sun Aug 1 15:58:39 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * ace/Memory_Pool.cpp: If the base_addr is 0 for the
- ACE_MMAP_Memory_Pool_Options, then we will disable the
- "use_fixed_addr" option since it's going to cause big trouble to
- mmap() at location 0! Plus, when 0 is used it's intended as an
- indication that the application wants the OS to choose the
- appropriate mapping. This minor change in semantics works
- particularly well with the new
- ACE_HAS_POSITION_INDEPENDENT_MALLOC feature, because we can now
- let the OS choose the mapping location with out fear of begin
- mapped to a different location!
-
- * ace /Memory_Pool.cpp: Conditionally include
- ace/Based_Pointer_Repository.h when
- ACE_HAS_POSITION_INDEPENDENT_MALLOC is defined.
-
- * ace/config-sunos5.5.h: Enabled the
- ACE_HAS_POSITION_INDEPENDENT_MALLOC macro by default. Let's see
- whether this breaks lots of stuff ;-).
-
- * ace/OS.h: Moved the definition of ACE_IPPROTO_TCP down
- further in this file so that the IPPROTO_TCP macro would be
- defined.
-
- * ace/Based_Pointer_T.cpp: Removed an inappropriate use of
- ACE_INLINE in the *.cpp file. Thanks to DEC UNIX C++ for
- reporting this!
-
-Sun Aug 01 02:41:44 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * examples/Shared_Malloc/Shared_Malloc.dsw
- * examples/Shared_Malloc/position_independent_malloc.dsp: Added
- this new project file for position independent malloc test.
diff --git a/FAQ b/FAQ
deleted file mode 100644
index 3eb0a5feeed..00000000000
--- a/FAQ
+++ /dev/null
@@ -1,1863 +0,0 @@
-There are many changes and improvements in the new version of ACE.
-The ChangeLog file contains complete details about all of them.
-
-I've tested ACE thoroughly on Solaris 2.3 and 2.4 with the SunC++ 4.x
-compiler and Centerline 2.x. I've also tested it with the SunC++ 3.x
-compiler on the SunOS 4.x platform. However, I've not been able to
-test it on other platforms. If anyone has time to do that, and can
-report the results back to me I'd appreciate that.
-
-Please let me know if you have any questions or comments.
-
- Doug
-
-----------------------------------------
-
-1. SIGHUP
-
-> 1) Where the heck does the HUP signal get registered for the
-> $ACE_ROOT/tests/Service_Configurator/server stuff? I looked there and
-> in $ACE_ROOT/libsrc/Service_Configurator. No luck. I guess I am
-> just blind from reading.
-
- Take a look in ./libsrc/Service_Configurator/Service_Config.h.
-The constructor for Service_Config is where it happens:
-
- Service_Config (int ignore_defaults = 0,
- size_t size = Service_Config::MAX_SERVICES,
- int signum = SIGHUP);
-
-----------------------------------------
-2. Multi-threaded Signal_Handler support
-
-> It appears Signal_Handler is
-> not setup for multi-threaded apps. How do you handle signals
-> in different threads? Do I have to put in the hooks in my app or should
-> it go in the Threads arena?
-
- Ah, good question... My design follows the approach espoused
-by Sun. Basically, they suggest that you implement per-thread signal
-handling atop of the basic UNIX signal handlers (or in the case of
-ACE, the handle_signal() callbacks on Event_Handler subclasses) by
-using the thread id returned by thr_self() to index into a search
-structure containing the handlers. This should be pretty straight
-forward to layer atop the existing ACE Signal_Handler mechanisms.
-However, you might ask yourself whether you really want (1) separate
-signal handler *functionality* in different threads or (2) different
-threads that mask out certain signals. The latter might be easier to
-implement and reason about!
-
-----------------------------------------
-3. Problems compiling ACE with G++
-
-> I substituted -lg++ for -lC in macro_wrappers.GNU and ran make.
->
-> Most stuff seemed to build. Continually got messages like the following:
-> ld: /usr2/tss/jvm/ACE_wrappers/lib/libASX.a: warning: archive has no table of c
-> ontents; add one using ranlib(1)
-> ld: /usr2/tss/jvm/ACE_wrappers/lib/libThreads.a: warning: archive has no table
-> of contents; add one using ranlib(1)
-> ld: /usr2/tss/jvm/ACE_wrappers/lib/libSPIPE.a: warning: archive has no table of
-> contents; add one using ranlib(1)
-> ld: /usr2/tss/jvm/ACE_wrappers/lib/libASX.a: warning: archive has no table of c
-> ontents; add one using ranlib(1)
-> ld: /usr2/tss/jvm/ACE_wrappers/lib/libThreads.a: warning: archive has no table
-> of contents; add one using ranlib(1)
-> ld: /usr2/tss/jvm/ACE_wrappers/lib/libSPIPE.a: warning: archive has no table of
-> contents; add one using ranlib(1)
-
-> no matter how many times I used ranlib or removed the libraries and re-compiled
-> or whatever. Perhaps these are System V specific and will not work on 4.1.3?
-
- Yes, that's exactly right. If you look at the files, they all
-contain ifdef's for features that aren't included in the
-./include/makeinclude/wrapper_macros.GNU file. To make this more
-obvious, I've enclosed the following message in the ACE-INSTALL.html file:
-
- * Sun OS 4.1.x
-
- Note that on SunOS 4.x you may get warnings from the
- linker that "archive has no table of contents; add
- one using ranlib(1)" for certain libraries (e.g.,
- libASX.a, libThreads.a, and libSPIPE.a). This
- occurs since SunOS 4.x does not support these features.
-
-> never able to get .so -- assume these are shared libraries that gcc can not
-> deal with.
-
- Yes, if you use the stock gcc/gas/gnu ld
-compiler/assembler/linker, you won't get shared libraries to work. It
-is possible to hack this by using the "collect" version of g++.
-However, as usual, I strongly advise people to stay away from g++ if
-you want to use shared libraries or templates.
-
-> got some linker errors as follows:
->
-> g++ -g -DACE_NTRACE -DACE_HAS_MT_SAFE_SOCKETS -DACE_HAS_NO_T_ERRNO -DACE_HAS_
-> OLD_MALLOC -DACE_HAS_POLL -DACE_HAS_SEMUN -DACE_HAS_SETOWN -DACE_HAS_STRBUF_T -
-> DACE_HAS_STREAMS -DACE_HAS_SVR4_DYNAMIC_LINKING -DACE_HAS_TIUSER_H -DACE_HAS_SY
-> S_FILIO_H -DACE_PAGE_SIZE=4096 -DACE_HAS_ALLOCA -DACE_HAS_CPLUSPLUS_HEADERS -DA
-> CE_HAS_SVR4_SIGNAL_T -DACE_HAS_STRERROR -DMALLOC_STATS -I/usr2/tss/jvm/ACE_wrap
-> pers/include -I/usr2/tss/jvm/ACE_wrappers/libsrc/Shared_Malloc -o test_malloc
-> .obj/test_malloc.o -L/usr2/tss/jvm/ACE_wrappers/lib -Bstatic -lSemaphores -lS
-> hared_Malloc -lShared_Memory -lReactor -lThreads -lMem_Map -lLog_Msg -lFIFO -lI
-> PC_SAP -lMisc -lnsl -lg++
-> ld: /usr2/tss/jvm/ACE_wrappers/lib/libThreads.a: warning: archive has no table
-> of contents; add one using ranlib(1)
-> ld: Undefined symbol
-> _free__t6Malloc2Z18Shared_Memory_PoolZ13PROCESS_MUTEXPv
-> _free__t6Malloc2Z17Local_Memory_PoolZ10Null_MutexPv
-> _malloc__t6Malloc2Z18Shared_Memory_PoolZ13PROCESS_MUTEXUl
-> _malloc__t6Malloc2Z17Local_Memory_PoolZ10Null_MutexUl
-> _remove__t6Malloc2Z17Local_Memory_PoolZ10Null_Mutex
-> ___t6Malloc2Z17Local_Memory_PoolZ10Null_Mutex
-> _print_stats__t6Malloc2Z17Local_Memory_PoolZ10Null_Mutex
-> _remove__t6Malloc2Z18Shared_Memory_PoolZ13PROCESS_MUTEX
-> ___t6Malloc2Z18Shared_Memory_PoolZ13PROCESS_MUTEX
-> _print_stats__t6Malloc2Z18Shared_Memory_PoolZ13PROCESS_MUTEX
-> collect2: ld returned 2 exit status
-> gcc: file path prefix `static' never used
-> make[2]: *** [test_malloc] Error 1
-> make[2]: Leaving directory `/usr2/tss/jvm/ACE_wrappers/tests/Shared_Malloc'
-> <======== End all: /usr2/tss/jvm/ACE_wrappers/tests/Shared_Malloc
-
- That looks like a problem that G++ has with templates. I
-don't know of any reasonable solution to this problem using g++.
-
-> Finally decided there was enough stuff that it looked like I might have some
-> thing so I tried to run some tests and could not find so much as one piece
-> of documentation that might give me some clue about running tests.
-
-You should take a look at ./tests/Service_Configurator/server/README
-file. That explains how to run the more complicated tests. As for
-the other tests, it is pretty straight forward if you look at the
-./tests/IPC_SAP/SOCK_SAP and ./tests/Reactor/* directory code to
-figure out how to run the tests. I don't have a Q/A department, so
-any documentation has to come from volunteers.
-
-----------------------------------------
-4. Is there any docs or man pages on the Log_Record class?
-
-There is a paper in the C++_wrappers_doc.tar.Z file on ics.uci.edu
-called reactor2.ps that has some examples of using Log_Record. The
-./apps/Logger directories show several examples using Log_Record.
-Finally, the source code for Log_Record is pretty short (though it
-clearly could be commented better ;-)).
-
-----------------------------------------
-5. Signal handling prototypes
-
-> According to the man page on sigaction on our system, that line
-> should look something like the following:
->
-> sa.sa_handler = SIG_DFL;
-
- The problem is that most versions of UNIX I've come across
-don't have a correct prototype for this field of struct sigaction.
-That's why I define two variants of signal handler typedefs: one that
-is a typedef of the "correct version" (which I call SignalHandler) and
-one of which is a typedef of the "incorrect version" (which I call
-SignalHandlerV). You might check out the sysincludes.h file to see
-how it is defining SignalHandlerV and make sure this matches what your
-OS/Compiler defines in <sys/signal.h>
-
-----------------------------------------
-6. Omitting shared libraries
-
-> Can anyone tell me a way to turn off the creation of the shared libraries
-> in the ACE build.
-
-You can simply comment out the LIB target in the $ACE_ROOT/ace/Makefile
-or change the BUILD target from
-
-BUILD = $(VLIB) $(VSHLIB) $(SHLIBA)
-
-to
-
-BUILD = $(VSHLIB) $(SHLIBA)
-
-----------------------------------------
-7. DCE threading and signal handling
-
->Reading the DCE docs leaves me confused as to how to make everyone
->work together in a happy hormonious whole. May basic need is to catch
->asynchronous signals so i can release some global resources before
->the process exits.
-
-You need to spawn a separate thread to handle signals. As part of
-your init, do this:
- pthread_create(&tid, thread_attr, signal_catcher, NULL);
- pthread_detach(&tid);
-
-Where signal_catcher is like this:
-static void *
-signal_catcher(void *arg)
-{
- static int catch_sigs[] = {
- SIGHUP, SIGINT, SIGQUIT, SIGTERM, SIGCHLD
- };
- sigset_t catch_these;
- int i;
- error_status_t st;
-
- for ( ; ; ) {
- sigemptyset(&catch_these);
- for (i = 0; i < sizeof catch_sigs / sizeof catch_sigs[0]; i++)
- sigaddset(&catch_these, catch_sigs[i]);
- i = sigwait(&catch_these);
- /* Note continue below, to re-do the loop. */
- switch (i) {
- default:
- fprintf(stderr, "Caught signal %d. Exiting.\n", i);
- CLEANUP_AND_EXIT();
- /* NOTREACHED */
-#if defined(SIGCHLD)
- case SIGCHLD:
- srvrexec__reap();
- continue;
-#endif /* defined(SIGCHLD) */
- }
- }
- return NULL;
-}
-----------------------------------------
-8.
-
-> I have installed ACE2.15.5 on SunOS 4.1.3 with gcc2.6.0. I run the test program
-> ---server_test. The static is OK, but error found when I commented out the first
-> one and uncommented out the second one in the svc.conf file:
->
-> #static Svc_Manager "-d -p 3912"
-> dynamic Remote_Brdcast Service_Object * .shobj/Handle_Broadcast.so:remote_broad
-> cast "-p 10001"
->
-> The error goes like this:
->
-> -----------
-> jupiter[12] %server_test -d
-> starting up daemon server_test
-> opening static service Svc_Manager
-> did static on Svc_Manager, error = 0
-> signal signal 1 occurred
-> beginning reconfiguration at Sat Feb 25 13:40:29 1995
-> Segmentation fault (core dumped)
-> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-My guess is that the code generated by GCC on SunOS 4.x does not
-correctly initialize static variables from shared libraries. The
-SunC++ 4.0.x compiler does this correctly on Solaris 2.x (though I
-believe that on SunOS 4.x it doesn't work without some extra coaxing).
-
-In general, I try to avoid using ACE's explicit dynamic linking
-mechanisms on SunOS 4.x and GCC. You can write plenty of interesting
-and useful code with ACE without using those features. Those tests
-are mostly there to illustrate the "proof of concept."
-----------------------------------------
-9.
-
-> a) I noticed the default constructor for the reactor does an open w/ defaults.
-> Does this mean I need to close it if I wish to re-open it with different
-> size and restart values?
-
- No. With the latest versions of ACE, you can now just call
-open() with a new size and it will correctly resize the internal
-tables to fit.
-
-> b) What is the usage difference between the normal FD_Set objects
-> (rd/wr/ex_handle_mask_) and the ready FD_Set objects
-> (rd/wr/ex_handle_mask_ready)?
-
- The normal FD_Sets (now called Handle_Set in ACE 3.0.5) holds
-the "waitable" descriptors (these are the descriptors given to
-select() or poll()). In contrast, the ready FD_Sets may be set by
-Event_Handler subclasses (by called the set_ready() API) to indicate
-to the Reactor that they want to be redispatched on the next go-round
-*without* blocking. If you look at the Reactor code, you'll see that
-the wait_for() method checks the ready sets first and doesn't block if
-there are any bits set in those masks. This features makes it
-possible for Event_Handlers to control subsequent dispatching policies
-of the Reactor.
-
-> c) What does the positive return value do from an event handler callback:
-> -1 detaches the event handler for that mask
-> 0 does nothing - keeps the event handler registered for that mask
-> >0 resets a bit in the current dispatching mask (I think) - does this mean
-> this event will be called again before the current dispatch cycle is done?
-
-Almost... (it's tied in with my description of the ready sets above).
-It means that once the Reactor finishes cycling through the set of
-descriptors it got back from select() or poll(), it will redispatch
-the ready set descriptors before sleeping.
-
-> Without direct access to the bit masks in X, I'm not sure I could emulate
-> this activity - what do you think?
-
-I'm not sure. I'm not enough of an X guru. Maybe someone else on the
-list knows the answer to this?
-
-> d) If I let X do the select blocking, will that have any affect on
-> the Reactor performing signal handling?
-
- Yes, I think that will cause problems since the Reactor relies
-on a "handshake" between its Signal_Handler component and its
-handle_events loop to properly handle signals.
-
-> e) Is the Poll method preferred over Select if it is available - why?
-
-For systems that implement select() in terms of poll() (e.g., Solaris
-2.x) then it may be somewhat faster. Otherwise, it doesn't really
-matter since (1) they (should) do the same thing and (2) the end user
-shouldn't notice any change in behavior.
-
-----------------------------------------
-10.
-
-> I would very much like to evaluate/use the ACE Toolkit,
-> but am limited as to disk space on our system.
-> What is the total disk space required for a compiled,
-> usable toolkit?
-
-The source code itself is around 2 Meg, uncompressed.
-
-The compiled version of ACE is around 90 Meg compiled with the SunC++
-4.x compiler (naturally, this will differ with other compilers).
-However, of this amount, about 40 meg are for the libraries, and
-another 50 meg are for the test programs. Naturally, you don't need
-to keep the test programs compiled.
-
-The postscript documentation is around 5 Meg, compressed.
-
-----------------------------------------
-11.
-
-> This is regarding the newer release of ACE and pertaining to the library
-> archive file. My question is, if all the ".o" files are archived into one
-> single "libACE.a", does it increase the size of the executable program?
-
-No. The use of a *.a file allows the linker to extract out only those
-*.o files that are actually used by the program.
-
-> If it does, then does a large executable program mean possibility of it being
-> slower?
-
- No.
-
-----------------------------------------
-12.
-
-> What happens if I have several reactors in a process (e.g. in different
-> threads)?
->
-> Programmer 1 decides to register at reactor 1 in his thread 1 a signal handler
-> for SIGUSR.
-> Programmer 2 decides to register at reactor 2 in his thread 2 a signal handler
-> for SIGUSR.
-
- Naturally, the behavior of this all depends on the semantics
-of the threads package... In Solaris 2.x, signal handlers are shared
-by all threads. Moreover, the Reactor uses a static table to hold the
-thread handlers. Thus, only one of the handler's would be registered
-(i.e., whichever one was registered second).
-
-> Programmer 3 designs the process and decides to have thread 1 and thread 2
-> running in the same process and also makes use of a third party software library
-> that internally has also registered a signal handler (not at the reactor) for
-> SIGUSR.
-
- Now you've got big problems! This is an example of a
-limitation with UNIX signal handlers... In general, it's a bad idea
-to use signal handlers if you can avoid it. This is yet another
-reason why.
-
-> When looking into Ace/ACE_wrappers/tests/Reactor/misc/signal_tester.C you
-> have shown a way to do this by marking the dummy file_descriptor of the
-> Sig_Handler object ready for reading asynchronously. The handle_input()
-> routine of Sig_Handler object will then be dispatched synchronously.
-> But what happens if I have several reactors.
-> The asynchronously dispatched
-> handle_signal() routine does not know via which reactor it has been registered
-> so in which reactor to modify the dummy file_descriptor.
-> Is your suggestion to have just one process global reactor in such a case?
-
- Yes, precisely. I would *strongly* recommend against using
-several reactors within separate threads within the same process if
-you are going to be having them handle signals. Can you use 1
-reactor and/or have one reactor handle signals within a process?
-
-> One thing we want to do is the priorization of Event_Handlers. I.e. in case
-> of concurrent events the sequence in which the Event_Handler methods will be
-> activated depends on their priority relative to each other.
-> We have two choices:
-> - complete priorization, which means a high priority Input Event_Handler may
-> be activated prior to a lower prioritized Output Event_Handler (and doing
-> so violating the 'hardcoded rule' that output must be done prior to input).
-> - priorization only in categories, which means all Output Event_handler are
-> ordered by their priority regardless of priorities for the category of Input
-> Event_Handlers. The priority is fixed between the categories, i.e. first
-> output then input then out-of-band.
->
-> Right now I would think that we have to use the second choice if we want to
-> use the feature of asynchronous output with automatical re-queueing. Am I right
-> ?
-
- Hum, that's an interesting problem. It might be better to
-subclass the Reactor to form a new class called Priority_Reactor.
-This subclass would override the Reactor's dispatch method and
-dispatch the event handlers in "priority" order. I've never done
-that, but I don't think it would be all that difficult.
-
-----------------------------------------
-13.
-
-> Is the non CORBA version still aroung? I think I still need it from the
-> follow error, or is something else?
-
-Aha, there are two ways to get around this problem:
-
-1. Set your ORBIX_ROOT environment variable to the location of the
- Orbix release (e.g., /opt/Orbix). Naturally, this only works
- if you've got Orbix installed on your machine.
-
-2. If you don't have Orbix, then to get rid of that problem all you
- need to do is change the symbolic links on the
-
-./include/config.h
-./include/makeinclude/platform_macros.GNU
-
-files to
-
-./include/config-sunos5-sunc++-4.x
-./include/makeinclude/platform_sunos5_sunc++.GNU
-
-rather than the *-orbix* versions, which they point to by default.
-And then recompile ACE.
-----------------------------------------
-14.
-> We are using your ACE software and ran into a problem which may or may not
-> be related to the mutex locks. The question may have more to do with how
-> mutex locks should be used. We had a class which was using your mutex
-> lock wrapper. Each member function of the class acquired the lock before
-> processing and released on exiting the function. Some member functions may
-> call other member functions. The following is an example:
->
-> class foo {
->
-> void a()
-> {
-> MT( Mutex_Block<Mutex> m( this->lock_ ));
->
-> if( cond )
-> b();
-> }
->
-> void b()
-> {
-> MT( Mutex_Block<Mutex> m( this->lock_ ));
->
-> if( cond )
-> a();
-> }
->
-> };
->
-> Is this valid ? My assumtpion is that the mutex lock is recursive and
-> the same thread can acquire the lock multiple times in different member
-> functions.
-
- Ah, that's a great question since there are subtle and
-pernicious problems lurking in the approach you are trying above.
-Basically, Solaris mutex locks are *not* recursive (don't ask why...)
-Thus, if you want to design an application like the one above you'll
-need to use one or more of the following patterns:
-
-----------------------------------------
-A. Use recursive mutexes. Although these are not available in
- Solaris directly they are supported in the later versions
- of ACE. You might want to take a look at the latest
- version (./gnu/ACE-3.1.9.tar.Z). It's got lots of new
- support for threading and synchronization. In that case,
- you simply do the following:
-
- class Foo
- {
- public:
- void a()
- {
- MT( Guard<Recursive_Lock <Mutex> > m( this->lock_ ));
- b ();
- }
-
- void b()
- {
- MT( Guard<Recursive_Lock <Mutex> > m( this->lock_ ));
- b_i ();
- }
-
- };
-
- The advantage with this is that it requires almost no
- changes to existing code. The disadvantage is that
- recursive locks are just slightly more expensive.
-
-B. Have two layers of methods (a) which are public and acquire
- the Mutex and then call down to methods in layer (b), which
- are private and do all the work. Methods in layer b assume
- that the locks are held. This avoids the deadlock problem
- caused by non-recursive mutexes. Here's what this approach
- looks like (using the more recent ACE class names):
-
- class Foo
- {
- public:
- void b()
- {
- MT( Guard<Mutex> m( this->lock_ ));
- b_i ();
- }
-
- void b_i()
- {
- if( cond )
- a_i();
- }
-
- void a_i()
- {
- if( cond )
- b_i();
- }
-
- void a()
- {
- MT( Guard<Mutex> m( this->lock_ ));
- a_i ();
- }
-
- };
-
- The advantage here is that inline functions can basically
- remove all performance overhead. The disadvantage is that
- you need to maintain two sets of interfaces.
-
-C. Yet another approach is to release locks when calling
- other methods, like this:
-
- class Foo
- {
- public:
- void b()
- {
- MT( Guard<Mutex> m( this->lock_ ));
- m.release ();
- a ();
- m.acquire ();
- }
-
- void a()
- {
- MT( Guard<Mutex> m( this->lock_ ));
- m.release ();
- b ();
- m.acquire ();
- }
-
- };
-
- The disadvantage with this, of course, is that you
- greatly increase your locking overhead. In addition,
- you need to be very careful about introducing race
- conditions into the code. The primary reason for
- using this approach is if you need to call back to
- code that you don't have any control over (such as
- OS I/O routines) and you don't want to hold the
- lock for an indefinite period of time.
-----------------------------------------
-
- BTW, all three of these patterns are used in the ACE Reactor
-class category. The Reactor has a number of fairly complex
-concurrency control and callback issues it must deal with and I've
-found it useful to use all three of these patterns jointly.
-
- I'd be interested to hear any comments on these approaches.
-
- Doug
-----------------------------------------
-15.
-
-> I am working on Solaris 2.3 and trying to understand how to get around
-> the problem of trying to open a Socket connection to a remote host that
-> is "dead". Of course you get a nice long process block if the socket
-> is in Blocking mode (TCP lets you know when you can continue - how polite).
->
-> So how does a non-blocking connect work with respect to using
-> the Reactor and a SOCK_Stream object to coordinate the opening
-> of the connection? Do I wait on the OUTPUT event for the FD?
-> How do I know if the connect worked or possibly timed-out? Is
-> this a reliable approach (I read somewhere that this will only
-> work if the STREAMS module is at the top of the protocol stack
-> - MAN page I think)?
-
-An example of implementing this is in the Gateway sample application
-in the new ACE. It's also encapsulated in the Connector<> pattern of
-the Connection class category in ./libsrc/Connection. You may want to
-take a look at those two things for concrete usage examples.
-
-However, the basics of getting non-blocking to work are:
-- set socket to non-blocking
-- initiate connect() request
-- if connect() returned 0 you're connected
-- if connect() returned -1 and errno is EWOULDBLOCK (or EAGAIN, depending
-on where you are), then register an event handler for read and write events
-on the socket
-- any other errno value is fatal
-
-When an event is returned
-- no matter which event you get back (read or write), you may have gotten
-the event out of error. Thus, re-attempt the connect() and check to see if
-errno is EISCONN (if it's not there's a problem!)
-- if errno was EISCONN, the connection is ready to go, otherwise you must
-handle an error condition
-
-If you want to "time out" after a certain period of time, consider
-registering for a timer event with Reactor. If the timer goes off before
-the connection succeeds, close down the appropriate socket.
-
-> Is using a separate thread to make the connection a better way to avoid
-> the potentialy long block in the main thread during the connect call?
-
-You could do that, but it can all be accomplised in a single process using
-the facilities available.
-----------------------------------------
-16.
-
-> I was wondering, does the Reactor class have the ability to prioritize
-> activity on the registered event handlers?
-
- The default strategy for the Reactor's dispatch routine
-(Reactor::dispatch) does not prioritize dispatching other than to
-dispatch callbacks in ascending order from 0 -> maxhandlep1.
-
-> We have a requirment to be able to process both real-time, as well as, stored
-> telemetry and ERMs concurrently. Real-time needs to be processed at a higher
-> priority than stored data. Our design is based on both real-time and stored
-> data coming into our process via separate sockets.
-
- I can think of several ways to do this:
-
- 1. Use dup() or dup2() to organize your sockets such that the
- higher priority sockets come first in the Handle_Sets that
- the Reactor uses to dispatch sockets. This is pretty easy
- if you don't want to muck with the Reactor code at all.
-
- 2. You could subclass Reactor::dispatch() and revise it so
- that it dispatches according to some other criteria that
- you define in order to ensure your prioritization of
- sockets.
-
-BTW, I'm not sure what you mean by "real-time" but I assume that you
-are aware that there is no true "real-time" scheduling for network I/O
-in Solaris. However, if by "real-time" you mean "higher priority"
-then either of the above strategies should work fine.
-----------------------------------------
-17.
-
-> I compiled the new ACE 3.2.0 's apps/Gateway. The compiling went
-> through without any errors. But I could not get it running, neither single
-> threaded nor multi-threaded. The cc_config and rt_config files entries are given
-> below. Also the machine configurations are given below. Does it need some more
-> settings or some patch !!??
-
- I believe you are seeing the effects of the dreaded Sun MP bug
-with non-blocking connects. The easy work around for now is simply to
-give the "-b" option to the Gateway::init() routine via the svc.conf
-file:
-
-dynamic Gateway Service_Object *.shobj/Gateway.so:_alloc_gatewayd() active
- "-b -d -c cc_config -f rt_config"
-
-If you check line 137 of the Gateway::parse_args() method you'll see
-what this does.
-----------------------------------------
-18.
-
-How to get ACE to work with GCC C++ templates.
-
-The first and foremost thing to do is to get the latest version of GCC
-(2.7.2) and also get the template repository patches from
-
-ftp://ftp.cygnus.com/pub/g++/gcc-2.7.1-repo.gz
-
-This will get the ball rolling...
-
-Here is some more info on G++ templates courtesy of Medhi TABATABAI
-<Mehdi.TABATABAI@ed.nce.sita.int>:
-
-Where's the Template?
-=====================
-
- C++ templates are the first language feature to require more
-intelligence from the environment than one usually finds on a UNIX
-system. Somehow the compiler and linker have to make sure that each
-template instance occurs exactly once in the executable if it is
-needed, and not at all otherwise. There are two basic approaches to
-this problem, which I will refer to as the Borland model and the
-Cfront model.
-
-Borland model
- Borland C++ solved the template instantiation problem by adding
- the code equivalent of common blocks to their linker; template
- instances are emitted in each translation unit that uses them, and
- they are collapsed together at run time. The advantage of this
- model is that the linker only has to consider the object files
- themselves; there is no external complexity to worry about. This
- disadvantage is that compilation time is increased because the
- template code is being compiled repeatedly. Code written for this
- model tends to include definitions of all member templates in the
- header file, since they must be seen to be compiled.
-
-Cfront model
- The AT&T C++ translator, Cfront, solved the template instantiation
- problem by creating the notion of a template repository, an
- automatically maintained place where template instances are
- stored. As individual object files are built, notes are placed in
- the repository to record where templates and potential type
- arguments were seen so that the subsequent instantiation step
- knows where to find them. At link time, any needed instances are
- generated and linked in. The advantages of this model are more
- optimal compilation speed and the ability to use the system
- linker; to implement the Borland model a compiler vendor also
- needs to replace the linker. The disadvantages are vastly
- increased complexity, and thus potential for error; theoretically,
- this should be just as transparent, but in practice it has been
- very difficult to build multiple programs in one directory and one
- program in multiple directories using Cfront. Code written for
- this model tends to separate definitions of non-inline member
- templates into a separate file, which is magically found by the
- link preprocessor when a template needs to be instantiated.
-
- Currently, g++ implements neither automatic model. The g++ team
-hopes to have a repository working for 2.7.0. In the mean time, you
-have three options for dealing with template instantiations:
-
- 1. Do nothing. Pretend g++ does implement automatic instantiation
- management. Code written for the Borland model will work fine, but
- each translation unit will contain instances of each of the
- templates it uses. In a large program, this can lead to an
- unacceptable amount of code duplication.
-
- 2. Add `#pragma interface' to all files containing template
- definitions. For each of these files, add `#pragma implementation
- "FILENAME"' to the top of some `.C' file which `#include's it.
- Then compile everything with -fexternal-templates. The templates
- will then only be expanded in the translation unit which
- implements them (i.e. has a `#pragma implementation' line for the
- file where they live); all other files will use external
- references. If you're lucky, everything should work properly. If
- you get undefined symbol errors, you need to make sure that each
- template instance which is used in the program is used in the file
- which implements that template. If you don't have any use for a
- particular instance in that file, you can just instantiate it
- explicitly, using the syntax from the latest C++ working paper:
-
- template class A<int>;
- template ostream& operator << (ostream&, const A<int>&);
-
- This strategy will work with code written for either model. If
- you are using code written for the Cfront model, the file
- containing a class template and the file containing its member
- templates should be implemented in the same translation unit.
-
- A slight variation on this approach is to use the flag
- -falt-external-templates instead; this flag causes template
- instances to be emitted in the translation unit that implements
- the header where they are first instantiated, rather than the one
- which implements the file where the templates are defined. This
- header must be the same in all translation units, or things are
- likely to break.
-
- *See Declarations and Definitions in One Header: C++ Interface,
- for more discussion of these pragmas.
-
- 3. Explicitly instantiate all the template instances you use, and
- compile with -fno-implicit-templates. This is probably your best
- bet; it may require more knowledge of exactly which templates you
- are using, but it's less mysterious than the previous approach,
- and it doesn't require any `#pragma's or other g++-specific code.
- You can scatter the instantiations throughout your program, you
- can create one big file to do all the instantiations, or you can
- create tiny files like
-
- #include "Foo.h"
- #include "Foo.cc"
-
- template class Foo<int>;
-
- for each instance you need, and create a template instantiation
- library from those. I'm partial to the last, but your mileage may
- vary. If you are using Cfront-model code, you can probably get
- away with not using -fno-implicit-templates when compiling files
- that don't `#include' the member template definitions.
-
-4. Placing a function that looks like this near the top of a .C file
- that uses any inline template member functions permits proper inlining:
-
- // #ifdef __GNUG__
- // This function works around the g++ problem with inline template member
- // calls not being inlined ONLY in the first block (in a compilation
- // unit) from which they are called.
- // This function is inline and is never called, so it does not produce
- // any executable code. The "if" statements avoid compiler warnings about
- // unused variables.
- inline
- void
- gcc_inline_template_member_function_instantiator()
- {
- if ( (List<FOO> *) 0 );
- }
- // #endif // __GNUG__
-
- other prerequisites:
- -- All inline template member functions should be defined in
- the template class header. Otherwise, g++ will not inline
- nested inline template member function calls.
- -- Template .h and .C files should NOT include iostream.h
- (and therefore debugging.h).
- This is because iostream.h indirectly includes other
- GNU headers that have unprotected #pragma interface,
- which is incompatible with -fno-implicit-templates and optimal
- space savings.
- -- inline virtual destructors will not be inlined, unless necessary,
- if you want to save every last byte
- -- be sure that -Winline is enabled
-
-----------------------------------------
-19.
-
-> 1. when are dynamically loaded objects removed from the Service_Config.
-
-The Service Configurator calls dlclose() when a "remove Service_Name"
-directive is encountered in the svc.conf file (or programmatically
-when the Service_Config::remove() method is invoked). Check out the
-code in ./libsrc/Service_Config/Service_Repository.i and
-./libsrc/Service_Config/Service_Config.i to see exactly what happens.
-
-> 2. In the Service Configurator, when an item is entered in the svc.conf
-> how dow you know which items will be invoked as threads and
-> which items are forked. I know that static items are executed
-> internally.
-
- No! It's totally up to the subclass of Service_Object to
-decide whetehr threading/forking/single-threading is used. Check out
-the ./apps/Logger/Service_Configurator_Logger for examples of
-single-threaded and multi-threaded configuration.
-----------------------------------------
-20.
-
-> I have been reading the Service Configurator Logger. I was wondering about
-> cleanup of new objects. In the handle_input method for the Acceptor a new
-> svc_handler is allocated for each new input request and deleted in the
-> handle_close. I was wondering how handle close was called when a client who
-> has created a socket terminates the connection (i.e., when is handle_close
-> called).
-
-handle_close() is automatically called by the Reactor when a
-handle_input()/handle_output()/etc. method returns -1. This is the
-"hook" that instructs the Reactor to call handle_**() and then remove
-the Event_Handler object from its internal tables.
-
-----------------------------------------
-21.
-
-> How does the Logger know to remove the client socket and the svc_handler object.
-> Does he recieve an exception.
-
- No. when the client terminates the underlying TCP/IP
-implementation sends a RESET message to the logger host. This is
-delivered to the logger process as a 0-sized read(). It then knows to
-close down.
-
-> What I am worried about is a leak. Where by alot of clients connect and
-> disconnect and the server does not cleanup correctly. Such as a core dump
-> from the client where he cannot close correctly.
-
- That's handled by the underlying TCP (assuming it is
-implemented correctly...).
-
-> What I am doing is attempting to convert the logger example into an alarm
-> manager for remote nodes. In this application a node may be powered down
-> there by terminating a Logger/Alarm server connection abnormally, this could
-> leave the Logger with many dangling sockets and allocated svc_handler objects.
-
- If the TCP implementation doesn't handle this correctly then
-the standard way of dealing with it is to have an Event_Handler use a
-watchdog timer to periodically "poll" the client to make sure it is
-still connected. BTW, PCs tend to have more problems with this than
-UNIX boxes since when they are turned off the TCP implementation may
-not be able to send a RESET...
-----------------------------------------
-22.
-
-Using templates with Centerline.
-
-Centerline uses ptlink to process the C++ templates. ptlink expect the
-template declarations and definitions (app.h and app.C) to reside in
-the same directory. This works fine for the ACE hierarchy since
-everything is a link to the appropriate src directory (include/*.[hi]
---> ../src/). When a users of the ACE distribution attempts to include
-the ACE classes in an existing application hierarchy this problem will
-arise if ptlink is used.
-
-The solution is to create a link to the declaration file from the
-definition file directory and use the "-I" to point to the definition
-directory.
-
-----------------------------------------
-
-23.
-
-> When I try to compile $ACE_ROOT/src/Message_Queue.C on a Solaris
-> 5.3 system using SUNPro CC 4.0, the compiler aborts with a Signal 10
-> (Bus Error). Our copy of CC 4.0 is over a year old and I do not
-> know if any patches or upgrades exist for it. If they do, then we
-> have not applied them to our compiler.
-
- Several other people have run across this as well. It turns
-out that there is a bug in the Sun 4.0.0 C++ compiler that will get a
-bus error when -g is used. If you compilg Message_Queue.C *without*
--g then it works fine. The later versions of SunC++ don't have this
-bug. I'd recommend that you upgrade as soon as possible.
-
-----------------------------------------
-
-24.
-
-> I have added a dynamic service to the Service Configurator. This new service
-> fails on the load because it uses application libraries that are not shared
-> object libraries (i.e., objects in libApp.a). I am assuming from the error
-> message that the problem is the mix match of shared and non-shared objects.
-
- Right, exactly.
-
-> I was wondering if there is an easy way to add static services to the
-> Service Configurator. The example directory listing static service is
-> very tightly coupled with the Service_Config object. Is there another
-> way of adding static services.
-
- Sure, that's easy. The best way to do this is to use the
-interfaces of the Service_Respository class to configure static
-services into the Service_Config. A good example of how to do this is
-in Service_Config.[Chi]:
-
-int
-Service_Config::load_defaults (void)
-{
- for (Static_Svc_Descriptor *sl = Service_Config::service_list_; sl->name_ != 0; sl++)
- {
- Service_Type *stp = ace_create_service_type (sl->name_, sl->type_,
- (const void *) (*sl->alloc_)(),
- sl->flags_);
- if (stp == 0)
- continue;
-
- const Service_Record *sr = new Service_Record (sl->name_, stp, 0, sl->active_);
-
- if (Service_Config::svc_rep->insert (sr) == -1)
- return -1;
- }
- return 0;
-}
-
-----------------------------------------
-25.
-
-> 8. Do you have examples of the SYNC/ASYNC pattern?
-
- Yes. Check out the following:
-
- 1. The latest version of ./apps/Gateway/Gateway has
- an example of this when you compile with the USE_OUTPUT_MT
- flag. In this case, the Reactor performs the "Async"
- processing, which multiplexes all incoming messages from peers
- arriving on Input_Channels. These messages are then queued
- up at the appropriate Output_Channels. Each Output_Channel
- runs in a separate thread, performing the "Sync"
- processing.
-
- 2. Also, the latest version of the OOCP-tutorial4.ps.gz
- file available from wuarchive.wustl.edu in the
- directory /languages/c++/ACE/ACE-documentation shows
- an example of using the Half-Sync/Half-Async pattern
- to build an Image Server. I'm using this as an
- example in my tutorials these days.
-
-----------------------------------------
-26.
-
-> We had a discussion about something we saw in the new ACE code.
-> I thing there was a member function of a class that was doing a
-> "delete this". Is this safe?
-
-In general it is safe as long as (1) the object has been allocated
-dynamically off the heap and (2) you don't try to access the object
-after it has been deleted. You'll note that I tend to use this idiom
-in places where an object is registered with the Reactor, which must
-then must ensure the object cleans itself up when handle_close() is
-called. Note that to ensure (1) I try to declare the destructor
-"private" or "protected" so that the object must be allocated off the
-heap (some compilers have a problem with this, so I may not be as
-consistent as I ought to...).
-
-----------------------------------------
-27.
-
-> 5. What is the correct way for building a modified ACE library?
-> Changing in "libsrc" or in "include" directory?
-> When I make a complete new directory, how can I get introduced
-> the dependencies within my new makefile, can you give a short hint?
-
-Sure, no problem. For instance, here's what I did tonight when I
-added the new Thread_Specific.[hiC] files to ACE:
-
- 1. Created three new files Thread_Specific.[hiC] in
- ./libsrc/Threads.
-
- 2. cd'd to ../../include/ace and did a
-
- % ln -s ../../libsrc/Threads/Thread_Specific.[hi] .
-
- 3. cd'd to ../../src and did a
-
- % ln -s ../../libsrc/Threads/Thread_Specific.C .
-
- 4. then I did
-
- % make depend
-
- on the ./src directory, which updated the dependencies.
-
-----------------------------------------
-28. The following is from Neil B. Cohen (nbc@metsci.com), who is
- writing about how to work around problems he's found with HP/UX.
-
-I've been trying to compile the latest beta (3.2.9) on an HP running
-HPUX9.05 for the past week or so. I've had problems with templates up
-and down the line. I finally discovered (after some discussions with
-the HP support people) that they have made numerous changes to their
-C++ compiler recently to fix problems with templates and
-exceptions. If you are trying to compile ACE under HPUX with anything
-less than version 3.70 of the HP compiler, you may have serious
-problems (we were using v3.50 which came with the machine when we
-bought it a few months ago).
-
-Also, unlike earlier ACE versions, I was forced to add the following
-line to the rules.lib.GNU file to "close" the library - ie. force the
-various template files to be instantiated and linked to the ACE
-library itself. I don't know if this is necessary, or the only way to
-make things work, but it seems to do the job for my system.
-
-in rules.lib.GNU...
-
-$(VLIB): $(VOBJS)
- - CC -pts -pth -ptb -ptv -I$(ACE_ROOT)/include $(VOBJS)
- $(AR) $(ARFLAGS) $@ $? ./ptrepository/*.o
- -$(RANLIB) $@
- -chmod a+r $@
-
-I added the CC line, and added the "./ptrepository/*.o" to the $(AR)
-cmd. Sun has an -xar option, I believe that does something similar to
-this. Also - note that I'm not sure that the "-ptb" option is
-necessary. I added that before we upgraded the compiler, so it may not
-be needed now...
-
-----------------------------------------
-29.
-
-> I just ran my program with Purify, and it is telling me that there
-> is at least one large (~4k) memory leak in
-> ACE_Thread_Specific<ACE_Log_Msg>. This may or may not be serious,
-> but it is probably worth looking into.
-
-Right, that's ok. This is data that's allocated on a "per-thread"
-basis the first time a thread makes a call using the LM_ERROR or
-LM_DEBUG macros. The data isn't freed-up until the thread exits.
-
-----------------------------------------
-
-30.
-
-> In my trying to use the Reactor pattern for my application I
-> noticed that I had to couple my eventHandler derived objects with a
-> specific IPC_SAP mechanism. To use some of your own examples your
-> Client_Stream object contains a TLI_Stream object to use in data
-> transfer. My application calls for determining the communication
-> mechanism at run time. To do this my eventHandler must be able to
-> create the appropriate IPC_Stream object at run time and use its
-> methods through a super class casting. The problem is that there is no
-> super class with the virtual methods for send, recv, etc. To solve my
-> problem I will create that super class and have the TLI ( as well as
-> other wrapper objects) inherit from it instead of IPC_SAP. My question
-> is I am suspicious of why ACE wasn't designed with that in mind? Is my
-> application that unique ? or is there a better way to do this that I
-> am not aware of ? Your help in this matter will be much appreciated.
-
-ACE was developed using static binding for IPC_SAP in order to
-emphasize speed of execution over dynamic flexibility *in the core
-infrastructure*. To do otherwise would have penalized the performance
-of *all* applications in order to handle the relatively infrequent
-case where you want to be able to swap mechanisms at run-time.
-
-Since it is straightforward to create an abstract class like the one
-you describe above I decided to make this a "layered" service rather
-than use this mechanism in the core of ACE.
-
-BTW, I would not modify TLI_SAP and SOCK_SAP to inherit from a new
-class. Instead, I would use the Bridge and Adapter patterns from the
-"Gang of Four" patterns catalog and do something like this:
-
-----------------------------------------
-// Abstract base class
-class ACE_IPC_Stream
-{
-public:
- virtual ssize_t recv (void *buf, size_t bytes) = 0;
- virtual ssize_t send (const void *buf, size_t bytes) = 0;
- virtual ACE_HANDLE get_handle (void) const = 0;
- // ...
-};
-----------------------------------------
-
-and then create new classes like
-
-----------------------------------------
-template <class IPC>
-class ACE_IPC_Stream_T : public ACE_IPC_Stream
-{
-public:
- virtual ssize_t recv (void *buf, size_t bytes)
- {
- return this->ipc_.recv (buf, bytes);
- }
-
- virtual ssize_t send (const void *buf, size_t bytes)
- {
- return this->ipc_.send (buf, bytes);
- }
-
- virtual ACE_HANDLE get_handle (void)
- {
- return this->ipc_.get_handle ();
- }
- // ...
-
-private:
- IPC ipc_;
- // Target of delegation
- // (e.g., ACE_SOCK_Stream or ACE_TLI_Stream).
-}
-----------------------------------------
-
-Then you could write code that operated on ACE_SAP *'s to get a
-generic interface, but that reused existing code like SOCK_SAP and
-TLI_SAP, e.g.,
-
-----------------------------------------
-class My_Event_Handler : public ACE_Event_Handler
-{
-public:
- My_Event_Handler (void) {
- // Figure out which IPC mechanism to use somehow:
-
- if (use_tli)
- this->my_ipc_ = new ACE_SAP_IPC<ACE_TLI_Stream>;
- else if (use_sockets)
- this->my_ipc_ = new ACE_SAP_IPC<ACE_SOCK_Stream>;
- else
- ...
- }
-
-private:
- ACE_IPC_Stream *my_ipc_;
-};
-----------------------------------------
-
-There are obviously details left out here, but this is the general idea.
-
-----------------------------------------
-31.
-
-> I was trying to view your 'Writting example applications in CORBA' article
-> /tutorial using ghostview but the .ps file seems to be corrupted ( I tried to
-> ftp it more than once). Any help would be much appreciated.
-
-There are two solutions to this problem (which seems to be caused by a
-weird interaction between ghostview and the "psnup" program I use to
-generate the slides 4-up on a page):
-
- 1. If you want to print them or view them 1-up on a page you
- can edit the postscript file and remove the first 551
- lines or so (which are generated by the psnup script).
- This will cause the document to be printed 1-up rather than
- 4-up.
-
- 2. You can try to print the 4-up file on a postscript printer.
- Believe it or not, this typically works, even though ghostview
- can't handle it!
-
-----------------------------------------
-32.
-
-> We would like to use the Reactor class as a static member on some of
-> our classes (one per process) so that we can see and use the Reactor
-> witnin each process on a global level. We are using it to set
-> timers several levels down in our class trees and don't want to pass
-> a pointer to it through all of our constructors. My question is:
-> are there any static initialization dependencies that you know of
-> when using the default "do nothing" constructor of the Reactor that
-> could prevent use from using it as a static member variable? Thanks
-> for any advice on this issue.
-
-The only problems you'll have are the typical ones about "order of
-initialization" of statics in separate files. You'll also have to
-live with the default size of the I/O handler table, which probably
-isn't a problem since the max is something like 1024 or so.
-
-BTW, I solve this problem in ACE via the Service_Config::reactor,
-which is a static *pointer* to a Reactor. If you really wanted to
-make this work nicely, you could use the Singleton pattern from the
-"Gang of Four" patterns catalog. That should solve your problem even
-more elegantly!
-
-----------------------------------------
-33.
-> I just got the ACE-3.3 version and am trying it on the HP-UX.
-> I run into a small problem while cloning the directories that
-> might be worth fixing.
->
-> I made a directory called ACE_WRAPPERS/HP-UXA.09.05-g1, cd to it
-> and run "make -f ../Makefile clone". when I look in src, I have:
-> Acceptor.C@ -> ../libsrc/Connection/Acceptor.C
->
-> However, ../libsrc does not exist. It is not one of the CLONE
-> variables in ACE_WRAPPERS/Makefile. I don't think you'd want to
-> clone libsrc too, since its files don't change.
-
-I think you can solve this problem as follows:
-
-% cd ACE_WRAPPERS
-% setenv ACE_ROOT $cwd
-% cd HP-UXA.09.05-g1
-% make -f ../Makefile clone
-% setenv ACE_ROOT $cwd
-% make
-
-That should build the links correctly since they'll point to the
-absolute, rather than relative, pathnames!
-
-----------------------------------------
-34.
-
-> Our quality personal has asked me the following questions for which
-> I think you are the right guy for answering that:
-
-> o How long is ACE used in industrial products?
-
-It was first used at Ericsson starting in the fall of 1992, so that
-makes it about 3 years now.
-
-> o What are reference projects comparable to ours that use ACE?
-
-The ones I have directly worked with include:
-
-Motorola -- satellite communication control
-Kodak Health Imaging Systems -- enterprise medical imaging
-Siemens -- enterprise medical imaging
-Ericsson/GE Mobile Communications -- telecommunication switch management
-Bellcore -- ATM switch signal software
-
-In addition, there are probably about 100 or more other companies that
-have used ACE in commercial products. The current mailing list has
-about 300 people from about 230 different companies and universities.
-If you'd like additional info, please let me know.
-
-> o How many persons have contributed on testing and writing error
-> reports for ACE?
-
-Around 60 or so. All the contributors are listed by name and email
-address at the end of the README file distributed with the ACE release.
-
-> o How many bug fixes have been made since ACE was public domain?
-
-All information related to bug fixes is available in the ChangeLog
-file distributed with the ACE release (I could count these for you if
-you need that level of detail).
-
-> o How many literature is there on ACE?
-
-All articles published about ACE are referenced in the BIBLIOGRAPHY
-file in the top-level directory of ACE.
-
-----------------------------------------
-
-35.
-
-> We are currently evaluating ACE for use on a new telecom switch.
-> Many of us like ACE but are having trouble convincing some team
-> members that wrappers are better than using the direct Unix
-> system calls.
-
-> I have read your papers that came with ACE, but was wondering if there
-> are other papers that address the benefits (or problems) of wrappers?
-
-This topic has been discussed in other places, most notably the book
-by Erich Gamma and Richard Helm and Ralph Johnson and John Vlissides
-called "Design Patterns: Elements of Reusable Object-Oriented
-Software" (Addison-Wesley, 1994), where it is described in terms of
-the "Adapter" pattern.
-
-Very briefly, there are several key reasons why you should *not* use
-UNIX system calls directly (regardless of whether you use ACE or not).
-
-1. Portability --
-
- Unless you plan to develop code on only 1 UNIX platform (and
- you never plan to upgrade from that platform as it goes
- through new releases of the OS) you'll run across many, many
- non-portable features. It's beyond the scope of this
- FAQ to name them all, but just take a look at ACE sometime
- and you'll see all the #ifdefs I've had to add to deal with
- non-compatible OSs and compilers. Most of these are centralized
- in one place in ACE (in the ace/OS.*files), but it took a lot
- of work to factor this out. By using wrappers, you can avoid
- most of this problem in the bulk of your application code
- and avoid revisiting all of these issues yourself.
-
- In addition, ACE is now ported to other platforms (e.g.,
- Windows NT and Windows 95). If you want to write code that
- is portable across platforms, wrappers are a good way to
- accomplish this.
-
-2. Ease of programming --
-
- I'd go as far as to say that anyone who wants to program
- applications using C-level APIs like sockets or TLI is not
- serious about developing industrial strength, robust, and easy
- to maintain software. Sockets and TLI are *incredibly*
- error-prone and tedious to use, in addition to being
- non-portable. I've got a paper that discusses this in detail
- at URL http://www.cs.wustl.edu/~schmidt/COOTS-95.ps.gz.
-
-3. Incorporation with higher-level patterns and programming methods --
-
- Here's where the Adapter pattern stuff really pays
- off. For example, by making all the UNIX network
- programming interfaces and synchronization mechanisms
- have the same API I can write very powerful higher-level
- patterns (e.g., Connector and Acceptor) that generalize
- over these mechanisms. For proof of this, take a look
- at the ./tests/Connection/non_blocking directory
- in the latest ACE-beta.tar.gz at wuarchive.wustl.edu
- in the /languages/c++/ACE directory. It implements
- the same exact program that can be parameterized
- with sockets, TLI, and STREAM pipes *without*
- modifying any application source code. It is
- literally impossible to do this without wrappers.
-
-----------------------------------------
-36.
-
-> How can I use a kind of "Reactor" in such a way that a reading
-> thread can notice the arrival of new data on several shared memory
-> areas ?
-
-Ah, that is a tricky issue! The underlying problem is that UNIX is
-inconsistent with respect to the ability to "wait" on different
-sources of events. In this case, Windows NT is much more consistent
-(but it has its own set of problems...).
-
-> Poll, Select and Reactor (so far I read) assume that file
-> descriptors are present, which is not the case with shared memory.
-
-That's correct (though to be more precise, the Reactor can also deal
-with signals, as I discuss below).
-
-> Is there a common and efficient way to deal with that kind of
-> situation, or do I have to insert extra ipc mechanisms (based on
-> descriptors) ?
-
-There are several solutions:
-
-1. Use the Reactor's signal handling capability (see the
- ./tests/Reactor/misc/signal_tester.C for an example)
- and have the process/thread that writes to shared
- data send a signal to the reader process(es). The
- disadvantage of this is that your code needs to
- be signal-safe now...
-
-2. Use a combination of SPIPE_Streams and the Reactor
- to implement a simple "notification protocol," e.g.,
- the receiver process has an Event_Handler with a
- SPIPE_Stream in it that can be notified when the
- sender process writes data to shared memory.
- The disadvantage here is that there's an extra
- trip through the kernel, though the overhead
- is very small since you only need to send 1 byte.
-
-3. Use threads and either bypass the Reactor altogether
- or integrate the threads with the Reactor using its
- Reactor::notify() mechanism (see the
- ./tests/Reactor/misc/notification.C file for an
- example of how Reactor::notify() works). The
- disadvantage of this approach is that it won't
- work for platforms that lack threads.
-
-----------------------------------------
-37.
-
-> What do you think about wrapping communication methodologies in C++ streams?
-> What I mean is having defining a stream and extractor/insertor functions
-> which the underlying implementation reads/writes on comm mechanisms instead of
-> files. I would think this to be a very general interface for all comms
-> implementations. All user code would look the same, but the underlying stream
-> implementations would be different. Whether the stream functionality would
-> be defined by the stream itself (eg tcpstream) or with manipulators
-> (eg commstream cs; cs << tcp;) is up for grabs in my mind.
->
-> Anyhow, I was wondering your input...
-
-That technique has been used for a long time. In fact, there are
-several freely available versions of iostreams that do this and
-RogueWave also sells a new product (Net.h++) that does this. I think
-this approach is fine for simple applications.
-
-However, it doesn't really work well if you need to write
-sophisticated distributed applications that must use features like
-non-blocking I/O, concurrency, or that must be highly robust against
-the types of errors that occur in a distributed system.
-
-For these kinds of systems you either need some type of ORB, or you
-need to write the apps with lower-level C++ wrappers like the ones
-provided by ACE.
-
-----------------------------------------
-
-38.
-
-> What is the difference between cont() and next() in an ACE_Message_Block?
-
-Ah, good question. cont() gives you a pointer to the next
-Message_Block in a chain of Message_Block fragments that all belong to
-the same logical message. In contrast, next() (and prev()) return
-pointers to the next (and previous) Message_Block in the doubly linked
-list of Message_Blocks on a Message_Queue.
-
-BTW, this is *exactly* the same structure as in System V Streams...
-
-> Which would I use if I wanted to add a header and a trailer, each stored in
-> ACE_Message_Blocks of their own, to another ACE_Message_Block?
-
-You should use cont() for that. Does that make sense?
-----------------------------------------
-
-39.
-
-> I think that your site is cool, but it's being a terrible tease in
-> that I really want to read the contents, but don't know anything
-> about x-gzip formatting. I'm running Netscape 2.0 under MS Windows
-> NT.
-
-To view PostScript files under Win32 you will need a PostScript
-viewer such as GSview. You can find GSview and Ghostscript (which is
-needed to run GSview) at http://www.cs.wisc.edu/~ghost/.
-
-It seems that both Netscape and Internet Explorer mangles the names
-of downloaded files to reflect their content type, so *.ps.gz files
-are saved as *_ps.ps instead. Fortunately, GSview as of version 2.2
-supports gzip compressed postscript. When set up as a viewer for
-Postscript files, files with mangled names can be viewed by GSview
-without any preprocessing.
-
-----------------------------------------
-
-40.
-
-> What I am doing is
-> 1. Making an ACE_SOCK_Dgram and let it choose the next available port number.
-> 2. Making a message that will be broadcasted to X number of servers. This
-> message has a port number which the server will use to send its reply.
-> 3. Broadcast the message to a fixed port number.
-> 4. Wait for replies from the servers.
->
->
-> It looks like I need "ACE::bind_port" to return the port number that
-> it picked and "ACE_SOCK_Dgram::shared_open" will need it store the
-> port number so I could call some function like
-> ACE_SOCK_Dgram::get_port_number or it would need to return the port
-> number instead of the handle(I could always call
-> ACE_SOCK_Dgram::get_handle if I needed the handle).
->
-> Is there I way to get the port number that I have missed?
-
-Sure, can't you just do this:
-
-// Defaults to all "zeros", so bind will pick port.
-ACE_INET_Addr dg_addr;
-
-ACE_SOCK_Dgram dg;
-
-dg.open (dg_addr);
-
-dg.get_local_addr (dg_addr);
-
-dg_addr.get_port_number ();
-
-----------------------------------------
-
-41. How can you rename a core file?
-
-new_disposition.sa_handler = &Handle_Coredump_Signal;
-sigemptyset(&new_disposition.sa_mask);
-sigaddset(&new_disposition.sa_mask,SIGCHLD);
-new_disposition.sa_flags = 0;
-sigaction(SIGSEGV,&new_disposition,&old_disposition);
-
-*****************
-
-void
-Handle_Coredump_Signal(void)
-{
- int status;
- pid_t child;
- char new_core_name[64];
-
- if(0 == (child = fork()))
- {
- abort();
- }
- else
- {
- if(-1 == waitpid(child,&status,NULL))
- {
- exit(-1);
- }
- sprintf(new_core_name,"core_%d",getpid());
- rename("core",new_core_name);
- exit(0);
- }
-}
-
-----------------------------------------
-
-42.
-
-> I have seen 2 different inlining policies in ACE
->
-> 1) The .i file is included unconditionally by both the .h and .C file
-> and all functions in the .i file carry the "inline" keyword.
-
-Right. Those are for cases where I *always* want to inline those
-methods. I do this mostly for very short wrapper methods (e.g.,
-read() or write()) that are likely to be on the "fast path" of an
-application.
-
-> 2) The .i file is included by the .h file ONLY if __INLINE__ is defined
-> for the compile. This causes the functions in the .i file to be
-> compiled as inline functions (INLINE translates to inline in this case).
-> If __INLINE__ is not defined, the .i file is only included by the .C
-> file and the functions do NOT carry the "inline" keyword.
-
-I do this for cases where it's really not essential to have those
-methods inline, but some users might want to compile ACE that was if
-they want to eliminate all the wrapper function-call overhead. For
-instance, I'll typically do this when I'm running benchmarks.
-
-----------------------------------------
-
-43. Integrating ACE and CORBA
-
-> Our goal is to implement a CORBA-II compliant application. I am
-> trying to conceptually visualize the applicability to ACE to this
-> attempt (which we're pretty excited about), and I was hoping you'd
-> offer any opinions / observations that you might have.
-
-We've successfully integrated ACE with several implementations of
-CORBA (in particular Orbix 1.3 and 2.0) and used it in a number of
-commercial applications. In these systems, we use ACE for a number of
-tasks, including the following:
-
-1. Intra-application concurrency control, threading, and
- synchronization via the ACE_Thread_Manager and Synch* classes.
-
-2. Dynamic linking of services via the ACE_Service_Config.
-
-3. Integration of event loops via the ACE_Reactor.
-
-4. Management of shared memory via ACE_Malloc.
-
-5. High-performance network I/O via the ACE_SOCK* wrappers.
-
-plus many more.
-
-You can find out more info about the ACE/CORBA integration and the
-performance issues associated with it in the following paper:
-
-http://www.cs.wustl.edu/~schmidt/COOTS-96.ps.gz
-
-----------------------------------------
-
-44.
-
-> Can the Reactor's event loop be called recursively?
-
-This is not advisable. The Reactor's dispatch() method is not
-reentrant (though it is thread-safe) since it maintains state about
-the active descriptors it is iterating over. Therefore, depending on
-the descriptors you're selecting on, you could end up with spurious
-handle_*() callbacks if you make nested calls to the
-Reactor::handle_events() method.
-
-> For example, if I have a program that sets up some event handlers
-> and then calls, in an infinite loop, ACE_Reactor::handle_events().
-> Can one of the event handlers call handle_events() again if it needs
-> to block, while allowing other event handlers a chance to run?
-
-I'm not sure if this is really a good idea, even if the Reactor were
-reentrant. In particular, what good does it do for one Event_Handler
-to "block" by calling handle_events() again? The event the handler is
-waiting for will likely be dispatched by the nested handle_events()
-call! So when you returned back from the nested call to
-handle_events() it will be tricky to know what state you were in and
-how to proceed.
-
-Here's how I design my single-threaded systems that have to deal with
-this:
-
- 1. I use a single event loop based on the Reactor, which acts
- a cooperative multi-tasking scheduler/dispatcher.
-
- 2. I then program all Event_Handler's as non-blocking I/O
- objects. This is straightforward to do for both input and
- output using the ACE_Reactor::schedule_wakeup() and
- ACE_Reactor::cancel_wakeup() methods (available with the
- latest version of ACE).
-
- 3. Then, whenever an Event_Handler must block on I/O, it
- queues up its state on an ACE_Message_Queue, calls
- ACE_Reactor::schedule_wakeup(), and returns to the
- main event loop so that other Event_Handlers can be
- dispatched. When the I/O is ready, the Reactor will
- call back to the appropriate handle_* method, which
- can pick up the state it left in the Message_Queue and
- continue.
-
-There are a number of places to find more information on this sort of
-design:
-
- 1. $ACE_ROOT/apps/Gateway/Gateway/Channel.cpp --
- This Gateway application example shows the C++ code.
-
- 2. http://www.cs.wustl.edu/~schmidt/TAPOS-95.ps.gz --
- This paper describes the underlying patterns.
-
- 3. http://www.cs.wustl.edu/~schmidt/OONP-tutorial4.ps.gz
- -- This tutorial explains the source code and
- the patterns.
-
-BTW, I'll be describing patterns for this type of design challenge in
-my tutorial at USENIX COOTS in June. Please check out
-http://www.cs.wustl.edu/~schmidt/COOTS-96.html for more info.
-
-----------------------------------------
-
-45.
-
-> In one of my programs, a process needs to receive input from
-> multiple input sources. One of the input sources is a file
-> descriptor while another is a message queue. Is there a clean way to
-> integrate this a message queue source into the Reactor class so that
-> both inputs are handled uniformly?
-
-Do you have multiple threads on your platform? If not, then life will
-be *very* tough and you'll basically have to use multiple processes to
-do what you're trying to do. There is *no* portable way to combine
-System V message queues and file descriptors on UNIX, unfortunately.
-
-If you do have threads, the easiest thing to do is to have a thread
-reading the message queue and redirecting the messages into the
-Reactor via its notify() method.
-
-Please take a look at the program called
-
-examples/Reactor/Misc/notification.cpp
-
-for an example.
-
-----------------------------------------
-
-46.
-
-> I'm writing a program to find out the address for a socket. The
-> idea is that we open an ACE_Acceptor (and will eventually perform
-> accept() on it.) Before we can do that we need to find out the
-> address of the ACE_Acceptor so that we can publish it (for others to
-> be able to connect to it.) The trouble is that the call
-> ACE_INET_Addr::get_host_name () prints "localhost" as the host name
-> while I would like to principal host name to be printed instead.
-
-All ACE_INET_Addr::get_host_name() is doing is calling
-ACE_OS::gethostbyaddr(), which in turn will call the socket
-gethostbyaddr() function. I suspect that what you should do is
-something like the following:
-
-ACE_Acceptor listener (ACE_Addr::sap_any);
-
-ACE_INET_Addr addr;
-
-listener.get_local_addr (addr);
-
-char *host = addr.get_host_name ();
-
-if (::strcmp (host, "localhost") == 0)
-{
- char name[MAXHOSTNAMELEN];
- ACE_OS::hostname (name, sizeof name);
- cerr << name << endl;
-}
-else
- cerr << host << endl;
-
-----------------------------------------
-
-47.
-
-> Could you please point me to stuff dealing with asynchronous cross
-> platform socket calls. I want to use non blocking socket calls on
-> both UNIX and NT.
-
-Sure, no problem. Take a look at the
-
-./examples/Connection/non_blocking/
-
-directory. There are a number of examples there. In addition, there
-are examples of non-blocking connections in
-
-./examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp
-
-The code that actually enables the non-blocking socket I/O is in
-ace/IPC_SAP.cpp
-
-----------------------------------------
-
-48.
-
-> Is ACE exception-safe? If I throw an exception out of event
-> handler, will the Reactor code clean itself?
-
-Yes, that should be ok. In general, the two things to watch out for
-with exceptions are:
-
- 1. Memory leaks -- There shouldn't be any memory leaks internally
- to the Reactor since it doesn't allocate any memory when
- dispatching event handlers.
-
- 2. Locks -- In the MT_SAFE version of ACE, the Reactor acquires
- an internal lock before dispatching Event_Handler callbacks.
- However, this lock is controlled by an ACE_Guard, whose
- destructor will release the lock if exceptions are thrown
- from an Event_Handler.
-
-----------------------------------------
-
-49.
-
-> I am building a Shared memory manager object using MMAP and MALLOC
-> basically as:
->
-> typedef ACE_Malloc<ACE_MMAP_Memory_Pool, ACE_Process_Mutex> SHMALLOC;
->
-> I noticed that the ACE_MMAP_Memory_Pool class provides for the users
-> to specify a Semaphore key. However, once I use it via the
-> ACE_Malloc<..>::ACE_Malloc(const char* poolname) constructor, I lose
-> this option.
-
-Yes, that is correct. That design decision was made to keep a clean
-interface that will work for all the various types of memory pools.
-
-> Is there any recommended way to specialize ACE classes to allow this
-> key to be overridden?
-
-Yes indeed, you just create a new subclass (e.g., class
-My_Memory_Pool) that inherits from ACE_MMAP_Memory_Pool and then you
-pass in the appropriate key to the constructor of ACE_MMAP_Memory_Pool
-in the constructor of My_Memory_Pool. Then you just say:
-
-typedef ACE_Malloc<My_Memory_Pool, ACE_Process_Mutex> SHMALLOC;
-
-Please check out the file:
-
-examples/Shared_Malloc/Malloc.cpp
-
-which illustrates more or less how to do this.
-
-----------------------------------------
-
-50.
-
-> What is the best way to turn on TRACE output in ACE. I commented
-> out the #define ACE_NTRACE 1 in config.h and rebuilt ACE and the
-> examples.
-
-The best way to do this is to say
-
-#define ACE_NTRACE 0
-
-in config.h.
-
-> When I run the CPP-inserver example in examples/IPC_SAP/SOCK_SAP, I
-> get some trace output but not everything I would expect to see.
-
-Can you please let me know what you'd expect to see that you're not
-seeing? Some of the ACE_TRACE macros for the lower-level ACE methods
-are commented out to avoid problems with infinite recursion (i.e.,
-tracing the ACE_Trace calls...). I haven't had a chance to go over
-all of these indepth, but I know that it should be possible to turn
-many of them back on.
-
-> It would be nice to have a runtime option for turning trace on and
-> off.
-
-There already is. In fact, there are two ways to do it.
-If you want to control tracing for the entire process, please check
-out ACE_Trace::start_tracing() and ACE_Trace::stop_tracing().
-
-If you want to control tracing on a per-thread basis please take a
-look at the ACE_Log_Msg class. There are methods called
-stop_tracing() and start_tracing() that do what you want.
-
-----------------------------------------
-
-51.
-
-> I've been using an acceptor and a connector in one (OS-) process.
-> What does happen, if a signal is sent to this process? Is the signal
-> processed by every ACE_Event_Handler (or its descendants) that is
-> around? The manual page simply states that handle signal is called
-> as soon as a signal is triggered by the OS.
-
-How this signal is handled depends on several factors:
-
-1. Whether your using ACE_Sig_Handler or ACE_Sig_Handlers to register
- the signal handlers.
-
-2. If you're using ACE_Sig_Handler, then the ACE_Event_Handler * that
- you've most recently registered to handle the signal will
- have it's handle_signal() method called back by the Reactor.
-
-3. If you're using ACE_Sig_Handlers, then all of the ACE_Event_Handler *
- that you've register will be called back.
-
-For examples of how this works, please check out
-
-$ACE_ROOT/examples/Reactor/Misc/test_signals.cpp
-
-This contains a long comment that explains precisely how everything
-works!
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 9f983dccae0..00000000000
--- a/Makefile
+++ /dev/null
@@ -1,240 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Top-level Makefile for the ACE toolkit libraries, tests, and
-# applications
-#----------------------------------------------------------------------------
-
-#### Please see ACE-INSTALL.html for build information.
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README \
- THANKS \
- VERSION
-
-DIRS = ace \
- netsvcs \
- tests \
- apps \
- examples \
- performance-tests \
- websvcs
-
-CLONE = Makefile \
- ace \
- apps \
- bin \
- etc \
- examples \
- include \
- netsvcs \
- performance-tests \
- TAO \
- tests \
- websvcs \
- PACE
-
-#----------------------------------------------------------------------------
-# 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
-
-# Optional TAO targets.
--include $(ACE_ROOT)/TAO/tao_targets.GNU
-
-# For the following to work you need to compile the
-# $(ACE_ROOT)/bin/clone.cpp file and install it in your ~/bin
-# directory (or some place similar).
-
-.PHONY: clone
-clone:
- @for dir in $(CLONE); \
- do \
- (clone -s $(ACE_ROOT)/$$dir $$dir) \
- done
-
-CORE_DIRS= \
- ace \
- apps/gperf/src \
- TAO/tao \
- TAO/TAO_IDL \
- TAO/orbsvcs/orbsvcs \
- TAO/orbsvcs/Naming_Service
-
-.PHONY: Core
-Core:
- @for dir in $(CORE_DIRS); \
- do \
- $(MAKE) -C $$dir; \
- done
-
-#### NOTE: The following comments describe how to create kits.
-#### It's intended for use by ACE+TAO developers and
-#### maintainers only. ACE+TAO users need not be concerned
-#### with creating kits, just unpacking and using them.
-
-#### The "release" and "releaseall" targets can be used to create
-#### the ACE and ACE+TAO kits. By default, each creates a new beta
-#### release. To create a new minor or major release, add REL=minor
-#### or REL=major, respectively, to the make invocation.
-####
-#### NOTE: the REL modifier applies to _both_ ACE and TAO in
-#### releaseall!
-####
-#### To create a new ACE minor release and a TAO beta release:
-#### % make release REL=minor
-#### % cd TAO
-#### % make release
-####
-#### There are some other release/releaseall options [default value is in
-#### brackets]:
-#### ACE_TAG [ACE version in your workspace]: prepend tag with -ta
-#### TAO_TAG [TAO version in your workspace]: prepend tag with -tt
-####
-#### NOTE: the ACE and TAO versions will be updated automatically
-#### by release/releaseall. ACE_TAG and TAO_TAG can be overridden
-#### to kit a particular version.
-####
-#### APPLY_NEW_TAG [enabled]: set to null to disable
-#### CHECK [disabled]: set to -n to see what make_release will do, but not
-#### do it
-#### GENERATE_MAN_PAGES [enabled]: set to null to disable regeneration of
-#### the ACE_wrappers/man/ hierarchy
-#### INSTALL_KIT [enabled]: set to null to not install in public
-#### ftp/http directory on host ace
-#### REL [beta]: set to minor or major, optionally, when applying a new tag
-#### ZIP_FILES [enabled]: set to -z to disable creation of .zip files
-####
-#### Example creation of ACE-only kit, version ACE-5_0_1 from current
-#### workspace:
-#### make release ACE_TAG='-ta ACE-5_0_1' APPLY_NEW_TAG= \
-#### GENERATE_MAN_PAGES= INSTALL_KIT= ZIP_FILES=-z
-
-CONTROLLED_FILES = \
- ACE-INSTALL.html \
- ACE-install.sh \
- ASNMP \
- AUTHORS \
- COPYING \
- ChangeLog* \
- FAQ \
- Makefile \
- Makefile.am \
- PACE \
- PROBLEM-REPORT-FORM \
- README \
- THANKS \
- TODO \
- VERSION \
- acconfig.h \
- ace \
- ace-config.1.in \
- ace-config.in \
- aceConf.sh.in \
- apps \
- bin \
- configure.in \
- docs \
- etc \
- examples \
- include \
- m4 \
- netsvcs \
- os-patches \
- performance-tests \
- tests \
- websvcs
-
-RELEASE_FILES = \
- $(addprefix ACE_wrappers/,$(CONTROLLED_FILES)) \
- ACE_wrappers/ACE-INSTALL \
- ACE_wrappers/man
-
-ALL_RELEASE_FILES = \
- $(RELEASE_FILES) \
- ACE_wrappers/TAO
-
-RELEASE_LIB_FILES = \
- ACE_wrappers/VERSION \
- ACE_wrappers/PACE \
- ACE_wrappers/ace \
- ACE_wrappers/bin \
- ACE_wrappers/etc \
- ACE_wrappers/include \
- ACE_wrappers/m4 \
- ACE_wrappers/netsvcs \
- ACE_wrappers/tests \
- ACE_wrappers/websvcs
-
-# Files that should get tagged at release time but shouldn't be in any
-# of the release file lists since they may already be in a directory
-# found in those lists.
-RELEASE_TAG_FILES = \
- html \
- man/Makefile.am \
- man/man3/Makefile.am
-
-.PHONY: release releasetao releaseall tag
-
-ACE_TAG_VALUE = $(shell head -1 VERSION | perl -ne \
- 's/.* ([\d\.]+),.*\n/$$1/; tr/./_/; print "ACE-$$_";')
-ACE_TAG = -ta $(ACE_TAG_VALUE)
-TAO_TAG_VALUE = $(shell head -1 TAO/VERSION | perl -ne \
- 's/.* ([\d\.]+),.*\n/$$1/; tr/./_/; print "TAO-$$_";')
-TAO_TAG = -tt $(TAO_TAG_VALUE)
-APPLY_NEW_TAG = tag
-CHECK =
-GENERATE_MAN_PAGES = -g
-INSTALL_KIT = -i
-REL = beta
-ZIP_FILES =
-
-#### The release target creates the ACE (only) kit.
-release: $(APPLY_NEW_TAG)
- @$(ACE_ROOT)/bin/make_release -k ace $(ACE_TAG) \
- $(INSTALL_KIT) $(GENERATE_MAN_PAGES) $(ZIP_FILES) $(CHECK)
-
-tag:
- @$(ACE_ROOT)/bin/make_release $(CHECK) -k ace -v $(REL) -u
-
-#### The following target is for use by the TAO Makefile. It should not
-#### be called directly from the command line. The releasetao target
-#### creates the combined ACE-TAO kit.
-releasetao:
- @$(ACE_ROOT)/bin/make_release -k ace+tao $(ACE_TAG) $(TAO_TAG) \
- $(INSTALL_KIT) $(GENERATE_MAN_PAGES) $(ZIP_FILES) $(CHECK)
-
-#### The releaseall target:
-#### 1) Creates the ACE kit.
-#### 2) Updates the TAO release (VERSION, ChangeLog, and tag) by
-#### recursively invoking make release in the TAO directory.
-#### The make then recursively invokes make releasetao in this
-#### directory to create the combined ACE-TAO kit.
-releaseall: $(APPLY_NEW_TAG)
- @cd TAO && $(MAKE) -s release REL=$(REL)
-
-.PHONY: show_controlled_files show_release_files show_release_lib_files
-.PHONY: show_release_tag_files
-
-show_controlled_files:
- @echo $(CONTROLLED_FILES)
-
-show_release_files:
- @echo $(RELEASE_FILES)
-
-show_release_lib_files:
- @echo $(RELEASE_LIB_FILES)
-
-show_release_tag_files:
- @echo $(RELEASE_TAG_FILES)
-
-ACE-INSTALL: ACE-INSTALL.html
- @lynx -dump $< > $@
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index efa36037bf8..00000000000
--- a/Makefile.am
+++ /dev/null
@@ -1,101 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Top-level Makefile for the ACE toolkit libraries, tests, and
-## applications
-##
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4 #check-news
-
-bin_SCRIPTS = ace-config
-
-man_MANS = ace-config.1
-
-## Build the library directories first.
-## The docs directory is currently handled by the "dist-hook" makefile target.
-SUBDIRS = \
- ace \
- netsvcs \
- tests \
- apps \
- man
-
-##SUBDIRS = \
-## docs \
-## apps \
-## examples \
-## performance-tests \
-## bin \
-## ASNMP \
-## os-patches \
-## etc \
-## includes
-
-## For some reason, automake doesn't include acconfig.h in the distribution
-EXTRA_DIST = \
- ACE-INSTALL.html \
- ACE-install.sh \
- BIBLIOGRAPHY \
- ChangeLog-93 \
- ChangeLog-94 \
- ChangeLog-95 \
- ChangeLog-96a \
- ChangeLog-96b \
- ChangeLog-97a \
- ChangeLog-97b \
- ChangeLog-98a \
- ChangeLog-98b \
- ChangeLog-99a \
- ChangeLog-99b \
- FAQ \
- PROBLEM-REPORT-FORM \
- VERSION \
- acconfig.h \
- ace-config.in \
- ace-config.1.in \
- aceConf.sh.in \
- ltcf-c.sh \
- ltcf-cxx.sh
-
-DISTCLEANFILES = ace-config aceConf.sh ace-config.1
-
-## release:
-## $(MAKE) dist distdir=$(PACKAGE)$(VERSION)
-release:
- $(MAKE) dist
-
-## Put `exec' in the name because this should be installed by
-## `install-exec', not `install-data'.
-confexecdir=$(libdir)
-confexec_DATA = aceConf.sh
-
-## Directories to include in the distribution but which I am too lazy to
-## create Makefile.am files for. A Makefile.am for these directories isn't
-## needed anyway.
-ACE_EXTRA_DIST = bin docs m4
-
-## Clean up some additional files/directories possibly created during
-## the configure script tests.
-clean-local:
- -rm -f *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core
- -rm -rf ptrepository Templates.DB gcctemp.c gcctemp so_locations
-
-## Make sure config.h doesn't get into the distribution
-## since it may later intefere with the newly generated
-## config.h when doing VPATH builds.
-## We don't want it in the distribution, anyway, since
-## config.h is platform specific.
-dist-hook:
- -rm -f $(distdir)/ace/config.h
- (cd $(top_srcdir); tar cf - $(ACE_EXTRA_DIST)) | (cd $(distdir); \
- tar xfBp -)
- list=`find $(distdir) -type d -name CVS -print`; for p in $$list; do \
- rm -rf $$p; \
- done
diff --git a/Makefile.bor b/Makefile.bor
deleted file mode 100644
index 3b660adfa5c..00000000000
--- a/Makefile.bor
+++ /dev/null
@@ -1,26 +0,0 @@
-!ifdef DEBUG
-DEBUG_FLAG = -DDEBUG
-!endif
-
-!ifdef STATIC
-STATIC_FLAG = -DSTATIC
-!endif
-
-!ifdef PASCAL
-PASCAL_FLAG = -DPASCAL
-!endif
-
-FLAGS = $(DEBUG_FLAG) $(STATIC_FLAG) $(PASCAL_FLAG)
-
-all:
- cd $(ACE_ROOT)\ace
- $(MAKE) -f Makefile.bor $(FLAGS)
- cd $(ACE_ROOT)\netsvcs
- $(MAKE) -f Makefile.bor $(FLAGS)
- cd $(ACE_ROOT)\tests
- $(MAKE) -f Makefile.bor $(FLAGS)
- cd $(ACE_ROOT)\apps
- $(MAKE) -f Makefile.bor $(FLAGS)
- cd $(ACE_ROOT)\TAO
- $(MAKE) -f Makefile.bor $(FLAGS)
-
diff --git a/PACE/ChangeLog b/PACE/ChangeLog
deleted file mode 100644
index e4a89df046f..00000000000
--- a/PACE/ChangeLog
+++ /dev/null
@@ -1,3706 +0,0 @@
-Thu Oct 4 10:03:27 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/vxworks/pthread.c:
- * pace/vxworks/pthread.h:
- * pace/vxworks/pthread.inl:
- * pace/vxworks/types.h:
- Changed default stack size, moved pthread_self from .inl
- to .c file, and removed redundant code for C vs C++
- signatures.
-
- * tests/Cond_Var_Test.c:
- * tests/Makefile:
- * tests/Pthreads_Test.c:
- Modified tests to take out gratuitous print statements.
- These tests should now only print out statements when
- there is an error (like the ACE and TAO tests).
-
- * tests/README:
- Added comment about mqueue_test needing input.
-
- * tests/Pthread_Storage_Test.c:
- * tests/Stat_Test.c:
- Added new tests for thread-specific storage and for some
- functions typically declared in the stat.h file.
-
-Tue Sep 4 16:23:46 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/vxworks_stub.c:
- * tests/Cond_Var_Test.c:
- Rectified warnings about type of argc.
-
-Tue Sep 4 15:26:46 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/Cond_Var_Test.c:
- Cleanup up unused variables and signed type on argc.
-
- * tests/Makefile:
- Corrected inclusion of BIN2 - executables that aren't
- always included - for non VxWorks platforms.
-
-Tue Sep 4 09:15:00 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/Pthreads_Test.c:
- Moved PACE_UNUSED_ARG to after declaration of variables.
-
-Tue Sep 4 08:55:02 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/Cond_Var_Test.c:
- Added test for condition variables.
-
-Tue Sep 4 08:36:13 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/vxworks_stub.c:
- Added call to pacevx_vxworks_init to initialize the
- main thread.
-
- * tests/Pthreads_Test.c (main):
- Moved PACE_UNUSED_ARG to beginning of main.
-
- * tests/Makefile:
- Makefile doesn't build Posix_SP_Test on VxWorks. The
- test doesn't compile (which is actually the test for
- certain #defines).
-
- * pace/pthread.h:
- Added #define PACE_PTHREAD_MUTEX_INITIALIZER
- PTHREAD_MUTEX_INITIALIZER
-
-Fri Aug 31 16:48:10 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/vxworks/types.h:
- Removed extraneous blank lines.
-
- * pace/vxworks/pthread.inl:
- Cleaned up comment for popping cleanup routines.
-
- * pace/vxworks/pthread.c:
- Removed duplicate code (for C and C++) and fixed
- VxWorks unld errors by making the main thread detached
- and unregistering the cleanup function when the
- last non-main thread is done.
-
- * pace/vxworks/pthread.h:
- Added PACE_PTHREAD_MUTEX_INITIALIZER initializer.
-
-Fri Aug 24 08:24:43 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/vxworks/stdio.inl:
- * pace/vxworks/pthread.c:
- Added spaces between function name and argument list
- for some functions since fuzz was complaining about
- it.
-
-Wed Aug 22 12:30:25 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/win32/pace_lib.dsp:
- Added #define PACE_AS_STATIC_LIBS to static debug
- build be consistent with ACE and TAO project files.
- It was mistakenly just added for the static release
- build previously.
-
-Wed Aug 22 12:16:30 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/win32/pace_lib.dsp:
- Added #define PACE_AS_STATIC_LIBS to be consistent
- with ACE and TAO project files.
-
- * pace/win32/pace_dll.dsp:
- Added #define PACE_BUILD_DLL and removed #define
- PACE_DLL_EXPORTS to be consistent with ACE and TAO
- project files.
-
-Wed Aug 22 12:05:27 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/config/constants.h:
- Removed PACE_HAS_DLL and PACE_Export #defines since
- these are now implemented appropriately for PACE
- in pace/config/config.h.
-
-Wed Aug 22 09:04:28 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * Makefile:
- Took away restriction for VxWorks since we now support
- that OS.
-
- * include/makeinclude/rules.common.GNU:
- Added check for pace_tracing set to 1 and included the
- appropriate -DPACE_TRACING if set.
-
- * pace/Makefile:
- Changed absolute path of $(ACE_ROOT)/PACE to $(PACE_ROOT)
- to include rules.common.GNU and defined PACE_ROOT to be
- $(ACE_ROOT)/PACE if not already defined. This is needed
- for the DII COE work since there the PACE files are not
- necessarily underneath the ACE files.
-
- * pace/aio.h:
- * pace/ctype.h:
- * pace/dirent.h:
- * pace/fcntl.h:
- * pace/grp.h:
- * pace/locale.h:
- * pace/math.h:
- * pace/mqueue.h:
- * pace/pthread.h:
- * pace/pwd.h:
- * pace/sched.h:
- * pace/semaphore.h:
- * pace/setjmp.h:
- * pace/signal.h:
- * pace/stdio.h:
- * pace/stdlib.h:
- * pace/string.h:
- * pace/termios.h:
- * pace/time.h:
- * pace/unistd.h:
- * pace/utime.h:
- * pace/sys/mman.h:
- * pace/sys/socket.h:
- * pace/sys/stat.h:
- * pace/sys/times.h:
- * pace/sys/utsname.h:
- * pace/sys/wait.h:
- Added PACE_Export to all function declarations -
- for Windows DLL builds.
-
- * pace/config/config.h:
- Added PACE_Export #define to go away for non-Windows
- platforms and to be appropriate for a DLL - using dllexport
- - or for an application or DLL that including these functions
- - using dllimport.
-
- * pace/config/constants.h:
- Moved PACE_TRACE define to utility.h.
-
- * pace/config/features.h:
- Removed extraneous lines at end of file.
-
- * pace/config/utility.h:
- Moved PACE_TRACE define from constants.h to here -
- and made it to be turned on or off by setting pace_tracing
- to 1.
-
- * pace/vxworks/pthread.c:
- Added PACE_TRACE tracing and renamed pace_pthread*
- functions to pthread* functions. This will allow
- the compiler to flag us - with an error - when these
- functions are implemented and we can then remove
- our emulation code.
-
- * pace/vxworks/pthread.h:
- Added declarations for all the POSIX Pthread
- functions that VxWorks doesn't support - and
- which we emulate in pthread.c.
-
- * pace/vxworks/pthread.inl:
- Added PACE_TRACE tracing and added calls to POSIX
- routines which get emulated in pthread.c.
-
- * pace/vxworks/aio.inl:
- * pace/vxworks/ctype.inl:
- * pace/vxworks/dirent.inl:
- * pace/vxworks/fcntl.inl:
- * pace/vxworks/grp.inl:
- * pace/vxworks/locale.inl:
- * pace/vxworks/math.inl:
- * pace/vxworks/mman.inl:
- * pace/vxworks/mqueue.inl:
- * pace/vxworks/pwd.inl:
- * pace/vxworks/sched.inl:
- * pace/vxworks/semaphore.inl:
- * pace/vxworks/setjmp.inl:
- * pace/vxworks/signal.inl:
- * pace/vxworks/socket.inl:
- * pace/vxworks/stat.inl:
- * pace/vxworks/stdio.inl:
- * pace/vxworks/stdlib.inl:
- * pace/vxworks/string.inl:
- * pace/vxworks/termios.inl:
- * pace/vxworks/time.inl:
- * pace/vxworks/times.inl:
- * pace/vxworks/unistd.inl:
- * pace/vxworks/utime.inl:
- * pace/vxworks/wait.inl:
- Added PACE_TRACE tracing.
-
- * pace/vxworks/utsname.inl:
- Added PACE_TRACE tracing and added OS version for
- release name.
-
- * tests/Makefile:
- Cleaned up a dangling continuation line and added comment
- about building Posix_SP_Test last since it may not even
- compile ( which is actually the tests).
-
- * tests/Posix_SP_Test.c:
- * tests/Pthreads_Test.c:
- * tests/mqueue_test.c:
- Included vxworks_stub.c file to build for VxWorks.
-
- * tests/Stdio_Test.c:
- Included vxworks_stub.c file to build for VxWorks and
- unlinked temporary file when done.
-
- * tests/vxworks_stub.c:
- Added this file to encapsulate the machinations needed
- to get the tests to build for VxWorks.
-
-Fri Jul 20 15:53:56 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/win32/string.c (strtok_r):
- Fixed problems with reference to ACE_OS and some C++
- incongruities.
-
-Fri Jul 20 15:44:02 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/win32/string.h:
-
- * pace/win32/string.inl (strtok_r):
-
- * pace/win32/string.c (strtok_r):
- Added support for strtok_r. Stole code from ACE_OS_String.
- Was causing a problem with the TAO IDL compiler.
-
-Tue Jul 10 10:43:38 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * Makefile:
- Changed default definition of PACE_ROOT to be $ACE_ROOT/PACE
- rather than $ACE_ROOT/pace.
-
-Mon Jul 9 15:53:43 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/Stdio_Test.c:
- Added directives to compile test for VxWorks, e.g. calling
- spa and having it call ace_main (borrowed from ACE_OS).
-
- * tests/Pthreads_Test.c:
- * tests/Makefile:
- Added Pthreads_Test to test POSIX threads (at least
- minimally).
-
-Mon Jul 9 15:39:26 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/vxworks/utsname.h:
- VxWorks does not have a utsname.h so remove it from being
- included.
-
- * pace/vxworks/signal.inl:
- Fixed call to sigwait. Used call to sigtimedwait (as ACE
- does) since sigwait doesn't appear to be supported by
- VxWorks.
-
- * pace/vxworks/pthread.inl:
- Moved some functions from inline to non-inline.
-
- * pace/vxworks/pthread.c:
- Moved some functions from inline to non-inline.
-
- * pace/pthread.h:
- Changed some functions from inline to non-inline for
- VxWorks.
-
- * pace/fcntl.h:
- Added appropriate return for pace_fcntl on VxWorks.
-
-Fri Jun 29 15:52:28 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/config/platform.h:
- Remove "#error "Here in platform.h for Win32" message.
-
-Tue Jun 12 14:46:48 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/vxworks/unistd.inl:
- Added cast for non-const char*.
-
- * pace/vxworks/time.inl:
- Removed declaration of errno.
-
- * pace/vxworks/pthread.inl:
- * pace/vxworks/pthread.h:
- * pace/vxworks/pthread.c:
- Added supported for pthreads. The vast majority of this code
- was donated by Hughes Network Systems via Braeton Taylor
- <btaylor@hns.com>.
-
- * pace/config/config.h:
-
- * pace/pthread.h:
- With the addition of VxWorks not all PACE functions are inlined
- now. Added #if !(PACE_VXWORKS) to handle this.
-
- * THANKS:
- Added Braeton Taylor of Hughes Network Systems for his
- contribution of pthread code for VxWorks.
-
-Fri Jun 1 15:38:45 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/vxworks/aio.c:
- * pace/vxworks/aio.inl:
- * pace/vxworks/aio.h:
- * pace/vxworks/assert.c:
- * pace/vxworks/assert.inl:
- * pace/vxworks/assert.h:
- * pace/vxworks/ctype.c:
- * pace/vxworks/ctype.h:
- * pace/vxworks/ctype.inl:
- * pace/vxworks/dirent.c:
- * pace/vxworks/dirent.h:
- * pace/vxworks/dirent.inl:
- * pace/vxworks/errno.h:
- * pace/vxworks/fcntl.c:
- * pace/vxworks/fcntl.h:
- * pace/vxworks/fcntl.inl:
- * pace/vxworks/grp.c:
- * pace/vxworks/grp.h:
- * pace/vxworks/grp.inl:
- * pace/vxworks/limits.h:
- * pace/vxworks/locale.c:
- * pace/vxworks/locale.h:
- * pace/vxworks/locale.inl:
- * pace/vxworks/math.c:
- * pace/vxworks/math.h:
- * pace/vxworks/math.inl:
- * pace/vxworks/mman.c:
- * pace/vxworks/mman.h:
- * pace/vxworks/mman.inl:
- * pace/vxworks/mqueue.c:
- * pace/vxworks/mqueue.h:
- * pace/vxworks/pthread.c:
- * pace/vxworks/pthread.h:
- * pace/vxworks/pthread.inl:
- * pace/vxworks/pwd.c:
- * pace/vxworks/pwd.h:
- * pace/vxworks/pwd.inl:
- * pace/vxworks/sched.c:
- * pace/vxworks/sched.h:
- * pace/vxworks/sched.inl:
- * pace/vxworks/semaphore.c:
- * pace/vxworks/semaphore.h:
- * pace/vxworks/semaphore.inl:
- * pace/vxworks/setjmp.c:
- * pace/vxworks/setjmp.h:
- * pace/vxworks/setjmp.inl:
- * pace/vxworks/signal.c:
- * pace/vxworks/signal.h:
- * pace/vxworks/signal.inl:
- * pace/vxworks/socket.c:
- * pace/vxworks/socket.h:
- * pace/vxworks/socket.inl:
- * pace/vxworks/stat.c:
- * pace/vxworks/stat.h:
- * pace/vxworks/stat.inl:
- * pace/vxworks/stdio.c:
- * pace/vxworks/stdio.h:
- * pace/vxworks/stdio.inl:
- * pace/vxworks/stdlib.c:
- * pace/vxworks/stdlib.h:
- * pace/vxworks/stdlib.inl:
- * pace/vxworks/string.c:
- * pace/vxworks/string.h:
- * pace/vxworks/string.inl:
- * pace/vxworks/termios.c:
- * pace/vxworks/termios.h:
- * pace/vxworks/termios.inl:
- * pace/vxworks/time.c:
- * pace/vxworks/time.h:
- * pace/vxworks/time.inl:
- * pace/vxworks/times.c:
- * pace/vxworks/times.h:
- * pace/vxworks/times.inl:
- * pace/vxworks/types.h:
- * pace/vxworks/unistd.c:
- * pace/vxworks/unistd.h:
- * pace/vxworks/unistd.inl:
- * pace/vxworks/utime.c:
- * pace/vxworks/utime.h:
- * pace/vxworks/utime.inl:
- * pace/vxworks/utsname.c:
- * pace/vxworks/utsname.h:
- * pace/vxworks/utsname.inl:
- * pace/vxworks/wait.c:
- * pace/vxworks/wait.h:
- * pace/vxworks/wait.inl:
- Added these files for the VxWorks port of PACE.
-
-Mon May 14 12:55:33 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * docs/www/pace-car.html:
-
- Deleted this file since it comflicts with PACE-car.html on
- file systems that are not case-sensitive. (It also appears
- to be a duplicate file.)
-
-Sun May 13 14:42:11 2001 Luther J Baker <luther@cs.wustl.edu>
-
- * docs/www/*:
-
- Basic Web Site added to the repo.
-
-Sun May 13 14:18:34 2001 Luther J Baker <luther@cs.wustl.edu>
-
- * docs/index.html:
- * docs/overview.html:
- * docs/legend.html:
- * docs/todo.html:
- * docs/PACE_POSIX_support.txt:
-
- Superfluous files removed.
-
- * docs/README:
-
- Added identification line of text.
-
-Mon Apr 23 10:43:23 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * pace/config/compiler.h:
- Reverted on of Cristian's changes. He agrees that it is not
- worthwhile to use the C9X 'inline' feature when only a few
- versions of gcc support it, while inlining static functions with
- -O3 is supported by all versions.
-
-Mon Apr 23 09:45:13 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * pace/win32/pthread.c (pthread_getschedparam):
- Fixed syntax error, thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com> for keeping track of the builds
- and providing the patch.
-
-Sun Apr 22 18:53:28 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * pace/win32/ctype.h:
- ctype.inl is already #included in pace/ctype.h, no need to
- #include it again.
-
-Sun Apr 22 15:03:11 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * pace/ctype.h:
- Add missing #includes that were causing compilation warnings.
-
-Sat Apr 21 17:37:40 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * pace/win32/socket.inl:
- * pace/win32/socket.c:
- Make Fuzz happy, some RCS ids went missing.
-
-Sat Apr 21 15:31:27 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * PACE/pace/ctype.h:
- * PACE/pace/config/compiler.h:
- * PACE/pace/config/platform.h:
- * PACE/pace/win32/pthread.c:
- * PACE/pace/win32/pthread.inl:
- * PACE/pace/win32/semaphore.c:
- * PACE/pace/win32/semaphore.h:
- * PACE/pace/win32/signal.inl:
- * PACE/pace/win32/socket.c:
- * PACE/pace/win32/socket.h:
- * PACE/pace/win32/socket.inl:
- * PACE/pace/win32/stdlib.inl:
- * PACE/pace/win32/unistd.h:
- * PACE/pace/win32/unistd.inl:
- * PACE/pace/win32/utime.c:
- * PACE/pace/win32/utsname.c:
- * PACE/pace/win32/utsname.inl:
- * PACE/pace/win32/wait.inl:
- Add support for mingw (www.mingw.org) and partial support for
- cygwin (http://cygwin.com/). Many thanks to Cristian Ferretti
- <cristian_ferretti@yahoo.com>
-
-Mon Apr 16 16:17:35 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * pace/posix/socket.h:
- * pace/config/platform.h:
- * include/makeinclude/rules.common.GNU:
- Add support for QNX, it behaves like other POSIX platforms.
-
-Wed Mar 21 09:26:38 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/posix/socket.h:
- Added typedef of pace_socklen_t to int for Solaris 5.6. Thanks
- to Lu Yunhai <luyunhai@huawei.com> for this solution.
-
-Mon Mar 19 16:56:47 2001 Luther Baker <luther@cs.wustl.edu>
-
- * pace/win32/unistd.c:
- * pace/win32/unistd.inl:
- * pace/win32/stdio.c:
- * pace/win32/time.inl:
- Removed ::MsvcFoo punctuation. Since PACE is a c-library,
- it doesn't recognize this C++ism. (::)
-
- * pace/win32/unistd.h:
- Added signature for pace_win32_read (needs to be visible
- before unistd.inl).
-
-Tue Mar 13 12:58:09 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/win32/setjmp.inl:
- Removed function calls to setjmp and sigsetjmp since
- these are now macros.
-
- * pace/win32/stdio.c:
- Adding pace_win32_fseek function to support pace_fseek.
-
- * pace/win32/time.inl:
- Adding support for tzset for Windows.
-
- * pace/win32/unistd.c:
- Adding call to pace_win32_read function and cleaned up
- pace_write code.
-
- * pace/win32/unistd.inl:
- Adding pace_win32_read function to support pace_read.
-
-Wed Feb 28 15:04:41 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/posix/string.inl (pace_strtok_r):
- Added call to strtok_r for Lynx and SunOS since it is
- supported but PACE_HAS_REENTRANT doesn't get defined
- for them.
-
- * pace/posix/setjmp.inl:
- * pace/setjmp.h:
- Changed setjmp and sigsetjmp from functions to macros since
- the functions were causing warnings on linux (Red Hat 7).
-
- * include/makeinclude/rules.common.GNU:
- Added support for Solaris 8
-
-Fri Feb 9 19:35:29 2001 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/compiler.h
- * pace/config/utility.h
- * pace/config/fcntl.h
- * pace/win32/mman.inl
- * pace/win32/pthread.h
- * pace/win32/semaphore.inl
- * pace/win32/stat.inl
- * pace/win32/stdio.inl
- * pace/win32/types.h
- * pace/win32/unistd.inl
- * pace/win32/utime.h
- * pace/win32/utime.inl
-
- Thanks to Christopher Kohlhoff <chris@kohlhoff.com>
- for making the changes necessary to port PACE to
- Borland C++ Builder 5.
-
-Thu Feb 1 17:36:24 2001 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/signal.h (PACE_SIGSET_T):
- * pace/win32/signal.inl (pace_sigfillset):
-
- Used ACE implementation.
-
-Sun Jan 28 13:20:28 2001 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/posix/unistd.inl (pace_getlogin_r):
-
- Changed C++ style comments to C.
-
-Thu Jan 25 17:26:41 2001 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/posix/unistd.inl (pace_access):
-
- Yet another change to the illustrious function.
- Let it be noted that there needs to be a better test for
- the _REENTRANT policy. Linux supports 'these' calls but
- is currently forced to the emulation code.
-
- The #if (PACE_SUNOS) || (PACE_LYNXOS) should not be here.
- Instead, there should be a simple test like PACE_HAS_REENTRANT
- or something even higher (such as in ACE: ACE_MT_SAFE).
-
-Tue Jan 23 14:56:51 2001 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/posix/unistd.inl (pace_getlogin_r):
-
- Rewrote code and based preprocessor selection on
- PACE_HAS_REENTRANT as opposed to PACE_LYNXOS, PACE_SUNOS
- on an otherwise defined platform macro.
-
-Fri Jan 19 12:43:27 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * pace/posix/socket.h:
- Added a check for HPUX so that pace_family_t is not defined for
- HPUX.
-
-Thu Jan 18 15:22:07 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/Stdio_Test.c (main):
- Removed SLEEPTIME constant since it isn't always used.
-
- * pace/emulation/mqueue.c:
- Added char* casts from malloc and mmap calls.
-
- * pace/posix/unistd.inl (pace_getlogin_r):
- Changed from POSIX User Group Unit of Functionality to
- User Group Reentrant Unit of Functionality.
-
- * pace/posix/sched.inl (pace_sched_rr_get_interval):
- SunOS 5.5.1 uses sched_get_rr_get_interval rather than
- sched_rr_get_interval.
-
- * pace/posix/socket.h:
- Fixed problems with SunOS 5.5.1 support (i.e., doesn't
- use socklen_t structs - it uses ints instead - and it
- doesn't use family_t structs at all.)
-
-Mon Jan 15 10:44:39 2001 Darrell Brunsch <brunsch@uci.edu>
-
- * tests/tests.dsw:
-
- Added dependencies between the projects.
-
- * pace/win32/pace_dll.dsp:
- * pace/win32/pace_lib.dsp:
- * tests/test_stdio.dsp:
-
- - Fixed the intermediate and output directories to
- fit the model used in ACE.
-
- - Changed the names of the two pace* projects so
- msvc_auto_compile.pl will be able to recognize
- them as libraries.
-
- - Added two new configurations to test_stdio so it
- now can link to both the dynamic and static
- version of PACE.
-
- - Changed the configuration name of the static
- projects to Win32 Static Release and Debug
-
-Mon Jan 15 10:32:19 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * pace/setjmp.h:
- The 'extern "C"' block was closed twice, making KCC unhappy.
-
-Mon Jan 15 10:20:55 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * pace/posix/socket.c:
- Change #include from "pace/posix/sys/socket.inl" to
- "pace/posix/socket.inl", the former does not exist and the
- program fails to compile.
- Only detected in builds with inline=0
-
-Fri Jan 12 07:35:31 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * Makefile:
- Changed to ignore VxWorks platforms (not currently
- supported by PACE).
-
- * include/makeinclude/rules.common.GNU:
- Added CFLAGS for LynxOS 3.0.0 so that the PACE library
- will compile and not break nightly builds.
-
- * tests/mqueue_test.c:
- * tests/Stdio_Test.c:
- * tests/Posix_SP_Test.c:
- Changed to compile (i.e., do nothing) for LynxOS 3.0.0
- to keep nightly builds from breaking.
-
- * pace/posix/pthread.inl:
- Added support for LynxOS 3.0.0.
-
- * pace/posix/socket.h:
- Fixed problems with LynxOS support (i.e., Lynx doesn't
- use socklen_t structs - it uses ints instead - and Lynx
- doesn't use family_t structs at all.)
-
-Thu Jan 04 17:10:09 2001 Luther Baker <luther@cs.wustl.edu>
-
- * pace/win32/pace.dsw
-
- Typographic changes.
-
-Thu Jan 04 13:59:00 2001 Luther Baker <luther@cs.wustl.edu>
-
- * pace/win32/pace.dsw
-
- Changed MS libraries to link to. Now consistent with ACE.
- (ie, Always 'Multithreaded DLL' with Debug version using
- the DEBUG DLL and Release using the standard DLL).
-
- * pace/pace/win32/stdlib.h
-
- Updated. Implements the posix C functions that were added
- to PACE last year.
-
-Wed Jan 3 10:01:02 2001 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/man/Makefile:
- Updated directory to use to generate man pages (in html).
-
-Fri Dec 22 12:09:59 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/Makefile:
- * pace/config/config.h:
-
- * pace/sys/socket.h:
- * pace/posix/socket.h:
- * pace/posix/socket.inl:
- * pace/posix/socket.c:
-
- Updated. Linux is building sockets correctly now.
-
-Fri Dec 22 10:54:13 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/socket.h
- * pace/sys/socket.h
- * pace/Makefile
-
- Moved socket.h to sys/socket.h.
-
- Started looking at Makefile to add socket.h
-
-Thu Dec 21 18:22:28 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * docs/index.html:
- * docs/legend.html:
- * docs/overview.html:
- * docs/todo.html:
-
- Begin moving PACE documentation to main distribution.
- Also rewriting much of this.
-
-Thu Dec 21 18:02:23 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/docs/todo.txt
-
- Meaningless file removed.
-
-Wed Dec 20 16:49:47 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * tests/Stdio_Test.c:
-
- An innocent change :-/. Used pace_strcmp (...) instead of
- strcmp. Had to include "pace/string.h".
-
-Wed Dec 20 16:42:45 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/socket.h:
- * pace/posix/socket.inl:
- * pace/posix/socket.c:
-
- Beginning of PACE POSIX socket implementation.
-
-Wed Dec 20 15:19:50 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/config.h:
-
- Added PACE_HAS_POSIX_SOCK_UOF for upcoming socket
- implementation.
-
-Thu Dec 19 11:40:00 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace\win32\unistd.c:
-
- Added pace_ prefix to emulation functions.
-
-Thu Oct 26 04:00:00 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/schedtypes.h:
- * pace/win32/sched.h:
-
- Compliance with ACE_HAS_PACE for ACE.
- sched_param now has a member sched_priority.
-
-Wed Oct 18 15:41:20 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/pthread.h:
- * pace/win32/pthreadtypes.h:
- * pace/semphore.h:
- * pace/win32/semphore.h:
- * pace/win32/semphore.inl:
-
- Debugging ACE building with PACE over NT
- ACE_HAS_PACE.
-
-Tue Oct 3 15:37:35 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/posix/stdio.inl:
- Added vfprintf, vprintf, and vsprintf support
-
-Tue Sep 26 15:19:20 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/Makefile:
- * pace/Makefile:
- Moved checks for inlining flags down in the file so
- that include/makeinclude/platform_macros.GNU can be
- checked to see if the flags are set there.
-
- * pace/posix/stdio.h:
- Moved stdio.h header file include after stdarg.h
- header file (per comment in ace/OS.h file)
-
-Fri Sep 22 11:32:25 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * PACE/pace/posix/math.inl:
- * PACE/pace/win32/math.inl:
-
- Disabled fuzz math.h inclusion check.
-
-Wed Sep 13 13:52:00 2000 Luther J Baker <luther@maxixe.doc.wustl.edu>
-
- * pace/win32/types.h:
-
- Removed irrelevant base types and kept pace_* types.
-
- (ie:
- typedef DWORD nlink_t;
- typedef nlink_t pace_nlink_t;
- became
- typedef DWORD pace_nlink_t;
- )
-
-Wed Sep 13 13:42:15 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/sys/wait.h:
-
- More types changed to pace_*.
-
-Wed Sep 13 13:25:33 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/unistd.h:
- * pace/win32/unistd.inl:
-
- Even more type shifts to pace_*.
-
-Wed Sep 13 13:06:27 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/unistd.h:
-
- More of uid_t to pace_uid_t.
-
-Wed Sep 13 12:59:52 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/unistd.h:
-
- Change arguments from uid_t to pace_uid_t.
-
-Tue Aug 29 14:59:35 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/stat.inl (pace_fstat):
-
- Typo.
-
-Tue Aug 29 14:57:04 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/stat.h (pace_stat):
-
- Atered pace_stat_h typedef.
-
- * pace/win32/stat.inl (pace_stat):
-
- Implemented pace_fstat and pace_stat.
-
-Tue Aug 29 14:14:45 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/stat.h (pace_fstat):
- * pace/stat.h (pace_fchmod):
- * pace/posix/stat.inl (pace_fchmod):
- * pace/posix/stat.inl (pace_fstat):
- * pace/win32/stat.inl (pace_fchmod):
- * pace/win32/stat.inl (pace_fstat):
-
- Changed argument 1 from an int to a PACE_HANDLE.
-
-Tue Aug 29 13:07:55 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/fcntl.inl (pace_creat):
-
- Fixed a typo.
-
-Mon Aug 28 20:40:25 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/stat.h (pace_win32_mkdir):
- * pace/win32/stat.inl (pace_win32_mkdir):
- * pace/win32/stat.c (pace_win32_mkdir):
-
- Altered naming convention of emulation function.
-
-Mon Aug 28 20:00:26 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * PACE/pace/fcntl.h:
- * PACE/pace/win32/fcntl.inl:
-
- Added support of fcntl (...) for win32. No op.
-
-Fri Aug 25 12:11:38 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * /pace/unistd.h:
-
- Change ssize_t to pace_ssize_t.
-
- * /pace/win32/unistd.h:
- * /pace/win32/unistd.inl:
- * /pace/win32/unistd.c:
- * /pace/win32/mqueue.inl:
-
- Changes related to type conflicts with ACE.
-
-Tue Aug 22 18:59:41 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * PACE/ChangeLog:
-
- Updated.
-
-Tue Aug 22 18:51:34 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/dirent.h:
- * pace/win32/signal.h:
- * stdio.h:
- * stdlib.h:
- * time.h:
- * types.h:
- * unistd.h:
- * utsname.h:
-
- Update to compile.
-
-Tue Aug 22 17:58:38 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * PACE/ChangeLog:
-
- Updated.
-
-Tue Aug 22 17:52:02 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * PACE_POSIX_support.txt:
-
- Updated emulation records.
-
- * pace/fcntl.h:
- * pace/win32/fcntl.h:
- * pace/win32/fcntl.c:
-
- Updated creat func to pace_win32_create to eliminate compile probs.
-
- * TODO:
-
- Updated.
-
- * pace/config/utility.h:
-
- Updated to work with multithreaded errno correctly.
-
- * pace/win32/pthread.h:
- * pace/win32/pthread.inl:
- * pace/win32/pthread.c:
-
- Update emulations!
-
- * pace/win32/time.inl:
-
- Updated/hacked to compile correctly!
-
- * pace/win32/pace_dll.dsp:
- * pace/win32/pace_lib.dsp:
-
- Updated project settings to use proper multithreaded DLL / LIB.
-
-Tue Aug 22 12:44:09 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/features.h (_MT):
-
- Added to support multithreading.
-
- * pace/win32/pthread.c (pthread_create):
-
- Completed using basic _beginthreadex.
-
- * pace/win32/TODO:
-
- Updated.
-
-Mon Aug 21 20:34:51 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/features.h:
-
- Updated to reflect PACE_HAS_MFC and PACE_MT_SAFE.
- Following ace/config-win32-common.h.
-
-Mon Aug 21 19:40:23 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/pthread.c (pthread_attr_init):
-
- Updated attr initialization in pthread_attr_init.
-
-Fri Aug 18 17:57:42 2000 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/rules.common.GNU: Added section for HP-UX.
-
-Fri Aug 18 12:30:51 2000 Steve Huston <shuston@riverace.com>
-
- * include/makeinclude/rules.common.GNU: Added section for AIX.
-
-Wed Aug 16 17:31:43 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/pthread.h:
- * pace/win32/pthread.inl:
- * pace/win32/pthread.c:
- * pace/win32/pthreadtypes.h:
- * pace/win32/schedtypes.h:
- * pace/win32/TODO
-
- More fabulous emulation updates!
-
-Wed Aug 16 16:26:32 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/pthread.h:
- * pace/win32/pthread.inl:
- * pace/win32/pthread.c:
-
- The first commit in a long series of emulations.
-
-Mon Aug 14 22:24:50 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/sched.inl (pace_sched_get_priority_max):
-
- Removed an extraneous '#include' left from the previous commit.
-
- * pace/win32/pace_dll.dsp:
- * pace/win32/pace_lib.dsp:
-
- Added new files to the project files.
- (pthreadtypes.h schedtypes.h)
-
-Mon Aug 14 21:41:24 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/pthreadtypes.h:
- * pace/win32/schedtypes.h:
-
- Added to repository to break up the complexity
- of the code and avoid circular dependencies.
-
- * pace/win32/types.h:
-
- Updated declarations to remove circular dependencies.
-
- * pace/win32/sched.h:
-
- Updated to use schedtypes.h.
-
- * pace/win32/pthread.h:
-
- Updated to use pthreadtypes.h.
-
- * pace/pthread.h:
-
- Updated signatures to use pace prefixed types.
-
-Thu Aug 10 04:18:14 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * tests/Stdio_Test.c:
- Changed a c++ style comment to a c style comment.
-
- * pace/fcntl.h
- * pace/mqueue.h
- * pace/semaphore.h
- * pace/stdio.h
- Removed global scope modifier, since it should be
- supplied by the client.
-
-Wed Aug 09 19:30:39 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * tests/tests.dsw:
-
- Removed test projects files that use constants from
- POSIX specific platforms (Posix_SP_Test.c, mqueue_test.c).
-
-Wed Aug 09 19:22:17 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * tests/tests.dsw:
- * tests/test_stdio.dsp:
-
- Added to the repository.
- Note that I also added the pace_lib and pace_dll projects
- to this workspace. Unlike, ACE, the library is pretty
- small and the tests are quite limited and so they all
- fit quite nicely in a project file!
-
- * tests/Stdio_Test.c:
-
- Altered to sleep for 20 secs to test the exe size in memory.
-
-Tue Aug 08 17:09:38 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/config/config.h:
- Added comments explaining the PACE_HAS_*UOF* macros.
-
- * pace/posix/time.inl:
- Fixed checking of return values for reentrant functions
- on LynxOS.
-
- * pace/posix/unistd.inl:
- Fixed erroneous comment about PACE_HAS_POSIX_UGR_UOF.
-
-Thu Aug 03 10:23:04 2000 David L. Levine <levine@cs.wustl.edu>
-
- * VERSION: updated for next beta, manually.
-
-Wed Aug 2 14:43:08 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * include/makeinclude/rules.common.GNU:
- Changed VPATH:= to VPATH+= so it wouldn't
- trounce on other VPATH assignments. This
- fix enables TAO to comile clean on top of PACE.
-
-Sat Jul 29 09:39:24 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/mqueue_test.c: added RCS Id string.
-
-Sat Jul 29 09:31:59 2000 David L. Levine <levine@cs.wustl.edu>
-
- * tests/mqueue_test.c: got it to compile cleanly on OSF1,
- by adding an unused arg to msg_handler, and commenting
- the characters after an #endif.
-
-Sat Jul 29 09:19:01 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.common.h (CFLAGS): on OSF1, added
- -D_DEC_XPG, to pickup up _SC_AIO_LISTIO_MAX, et al., from
- /usr/include/unistd.h.
-
-Sat Jul 29 09:08:15 2000 David L. Levine <levine@cs.wustl.edu>
-
- * pace/config/config.h,pace/posix/aio.inl (aio_suspend):
- added PACE_AIO_SUSPEND_LIST_ARG_CAST, with special value
- on OSF1 (DIGITAL_UNIX).
-
-Fri Jul 28 18:11:24 2000 David L. Levine <levine@cs.wustl.edu>
-
- * README: mention LynxOS' non-standard signal interface.
-
-Fri Jul 28 15:54:38 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/Makefile:
- Modified to use ace_components rather than
- pace_components.
-
- * pace/posix/signal.h:
- Changed pace_sig_pf typedef to compile for LynxOS. Still
- need to fix it to compile for ACE with PACE for LynxOS.
-
- * pace/posix/signal.inl:
- Fixed sigwait and signal for LynxOS (at least for building
- pace).
-
- * pace/posix/time.inl:
- * pace/posix/pwd.inl:
- * pace/posix/grp.inl:
- * pace/posix/dirent.inl:
- Changed LynxOS workarounds for the reentrant functions
- and deleted the check for SUNOS since now it can use
- the POSIX calls (with _POSIX_PTHREAD_SEMANTICS being
- defined properly).
-
- * pace/config/config.h:
- Deleted definition of _REENTRANT (and put it in
- include/makeinclude/rules.common.GNU) and defined
- the different POSIX UoF macros to be 0 if we're
- not using all of them.
-
- * pace/Makefile:
- Modified to use bin/ace_components rather than
- bin/pace_components (which is going away).
-
- * include/makeinclude/rules.common.GNU:
- Adding -D_POSIX_PTHREAD_SEMANTICS (if threads == 1)
- and -D_REENTRANT for SunOS so they get defined before
- any include files.
-
-Fri Jul 28 11:29:08 2000 David L. Levine <levine@cs.wustl.edu>
-
- * README: added brief discussion of how PACE helps
- insulate applications from the OS.
-
-Fri Jul 28 06:28:26 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/posix/dirent.inl
- * pace/posix/grp.inl
- * pace/posix/pwd.inl
- * pace/posix/signal.inl
- Got rid of PACE_HAS_PTHREAD_SEMANTICS not supported code
- in favor of platform specific modifications.
-
-Thu Jul 27 15:02:53 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h:
-
- Clean up comments.
-
-Thu Jul 27 14:04:47 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/defines.h:
-
- Removed #include "temp.h".
-
-Thu Jul 27 13:50:48 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/constants.h:
-
- Moved contents of pace/config/temp.h to constants.h.
- Some of this probably shouldn't be in contstants.h.
-
- * pace/config/temp.h:
-
- Removed.
-
-Thu Jul 27 13:03:29 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/constants.h (PACE_ONE_SECOND_IN_NSECS):
-
- Typo!
-
-Thu Jul 27 12:33:55 2000 David L. Levine <levine@cs.wustl.edu>
-
- * README, VERSION: updated in preparation for 1.0 release.
-
-Thu Jul 27 08:36:01 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/fcntl.h
- * pace/mqueue.h
- * pace/semaphore.h
- * pace/stdio.h
- Added :: qualifier to macros, but of course these should
- be defined by the user, so these will go away once
- I update OS.*.
-
- * pace/config/config.h
- Added _REENTRANT for solaris.
-
- * pace/posix/time.inl
- * pace/posix/unistd.inl
- Took away PACE_HAS_PTHREAD_SEMANTICS in favor of platform
- specific code. It appears PAC_HAS_PTHREAD_SEMANTICS is now
- superfluous.
-
- * ../ace/OS.i
- Qualified two functions with pace_ as they should
- have been originally. Paceified ACE_OS::gettimeofday.
-
-Wed Jul 26 17:13:51 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/emulation/mqueue.c:
- Removed print_queue(), qualified attrdefault
- with pace_, fixed memory leaks, and fixed
- the totally broken mq_unlink.
-
-Tue Jul 25 17:09:13 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/mman.c:
-
- Typo.
-
-Tue Jul 25 17:00:13 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/dirent.h:
- * pace/win32/dirent.inl:
- * pace/win32/dirent.c:
- * pace/win32/fcntl.h:
- * pace/win32/fcntl.inl:
- * pace/win32/fcntl.c:
- * pace/win32/mman.h:
- * pace/win32/mman.inl:
- * pace/win32/mman.c:
- * pace/win32/semaphore.h:
- * pace/win32/semaphore.inl:
- * pace/win32/semaphore.c:
- * pace/win32/signal.h:
- * pace/win32/signal.inl:
- * pace/win32/signal.c:
- * pace/win32/stat.h:
- * pace/win32/stat.inl:
- * pace/win32/stat.c:
- * pace/win32/unistd.h:
- * pace/win32/unistd.inl:
- * pace/win32/unistd.c:
- * pace/win32/utime.h:
- * pace/win32/utime.inl:
- * pace/win32/utime.c:
- * pace/win32/utsname.h:
- * pace/win32/utsname.inl:
- * pace/win32/utsname.c:
-
- Placed emulation prototype in the .h file.
- Removed emulation code from the .inl file.
- Moved emulation code to the .c file.
-
-Mon Jul 24 15:57:24 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/posix/string.inl
- Casted away const returns.
-
- * pace/posix/signal.h
- Moved pace_sig_pf back inside the extern "C" {}
-
-Mon Jul 24 14:19:54 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/TODO:
-
- Updated.
-
-Mon Jul 24 14:02:54 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32:
-
- Updated pace.dsw. Re-arranged files and folders.
-
- * pace/win32/TODO:
-
- Updated.
-
-Sun Jul 23 20:36:54 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/TODO:
-
- Updated.
-
-Sun Jul 23 20:21:02 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/*:
-
- Cleaned up alot of implementation.
-
- Got rid of separate 'emulation' functions because only win32
- is in this directory (if we supported multiple platforms in
- this directory, then the code would get messy so we would do
- better to inline and call emulation funcs according to the
- platform at hand).
-
- Inserted ACE style macros for WIN32 OS calls. Set errno
- properly and adapts return values to POSIX compliance.
-
-Sun Jul 23 19:17:33 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/pthread.h:
-
- Added typedefs from pace/posix/pthread.h.
-
-Sun Jul 23 18:34:26 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/pthread.inl:
-
- Win32 doesn't support pthreads. These all need to be emulated.
-
- * pace/docs/PACE_POSIX_support.txt
-
- Updated.
-
-Sun Jul 23 17:32:44 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/pthread.h:
-
- Missing pace_* prefix on two sigset_t args.
- Missing pace_* prefix on pthread_t arg.
-
- Became evident on NT because there are no definitions for
- the native types.
-
-Sat Jul 22 09:24:34 2000 Ossama Othman <ossama@uci.edu>
-
- * pace/Makefile.am (DESTDIRS):
-
- Added missing line continuation backslash `\'.
-
- * pace/posix/Makefile.am (noinst_LTLIBRARIES):
-
- Rename libtool convenience library to `libPACE_POSIX.la' to
- avoid name clash with the actual `libPACE.la' library.
-
-Fri Jul 21 20:41:04 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/unistd.inl:
- * pace/posix/unistd.inl:
- * pace/unistd.h:
-
- Typos.
-
-Fri Jul 21 20:35:38 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/wait.h:
- * pace/win32/wait.inl:
-
- ACE implements waitpid with an additional argument (HANDLE).
- Eliminated POSIX support here.
-
- * pace/docs/PACE_POSIX_support.txt
-
- Updated.
-
-Fri Jul 21 20:23:55 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/utsname.inl (pace_uname):
-
- Partial emulation made. But more work to be done!
-
- * pace/docs/PACE_POSIX_support.txt
-
- Updated.
-
-Fri Jul 21 19:49:19 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/utime.h (pace_utime):
- * pace/win32/utime.inl (pace_utime):
-
- Implemented the "RIGHT ANSWER[TM]" but it doesn't work so
- casted away and made the current func work. Left the
- correct implementation -- "unimplemented" :-/ in the file.
-
- * pace/docs/PACE_POSIX_support.txt
-
- Updated.
-
-Fri Jul 21 19:22:28 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/string.inl:
-
- Fixed eror from adding new funcs (retval param was const).
-
-Fri Jul 21 18:43:07 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/unistd.inl:
-
- Emulated or removed implementation.
-
- * pace/docs/PACE_POSIX_support.txt
-
- Updated.
-
-Fri Jul 21 18:33:04 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/constants.h (PACE_ONE_SECOND_IN_MSECS):
-
- Added.
-
-Fri Jul 21 18:19:50 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h:
-
- Added PACE_SYSCALL_FAILED 0xFFFFFFFF
-
-Fri Jul 21 12:19:06 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h:
-
- Typo. ACE_ADAPT_RETVAL ... PACE_ADAPT_RETVAL.
-
-Thu Jul 20 22:58:16 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/stdlib.h
- * pace/posix/stdlib.inl
- Added atexit, div, labs, ldiv, mblen, mbstowcs, mbtowc
- strtod, strtol, strtoul, system, wcstombs, wctomb.
-
- * pace/string.h
- * pace/posix/string.inl
- Removed const return from strchr, strstr, strrchr, strpbrk.
-
- *../ace/OS_String.*
- Paceified.
-
- *../ace/ThreadManager.cpp
- Paceified.
-
- * docs/ACE_Integration.txt
- Updated.
-
-Thu Jul 20 19:17:15 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/unistd.inl:
-
- Part of file fixed. Wanted to commit before I lose something.
-
-Thu Jul 20 19:19:28 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/unistd.h:
- * pace/posix/unistd.h:
-
- _isatty, lseek are both implemented in win32 with
- int fildes. Removed PACE_HANDLE here.
-
-Thu Jul 20 19:00:12 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/posix/unistd.inl (pace_fsync):
-
- Missing the wrapper? pace_fsync --> return fildes.
- Changed to 'return fsync (fildes); :-)
-
-Thu Jul 20 18:55:39 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/unistd.h:
- * pace/posix/unistd.inl:
-
- More PACE_HANDLE (dup, dup2)
-
-Thu Jul 20 14:47:20 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h:
-
- Better comments and changed syntax of PACE_OSCALL_RETURN.
-
-Thu Jul 20 14:42:26 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h (ACE_ADAPT_RETVAL):
-
- Typo.
-
-Thu Jul 20 14:12:44 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/posix/unistd.inl:
- * pace/unistd.h:
-
- Lots of int file descriptors changed to PACE_HANDLE.
-
-Wed Jul 19 19:50:54 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h:
-
- Added some sorely needed macros for adapting return values.
- Used extensively by ACE to emulate funcs on win32.
-
-Tue Jul 18 23:25:43 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/posix/signal.h
- * pace/posix/signal.inl
- * pace/posix/stdio.h
- * pace/posix/stdlib.h
- * pace/posix/time.h
- * pace/posix/unistd.h
-
- Added double definition protections around types, PACE_NULL
- in particular.
-
- * pace/posix/signal*
-
- Changed signal's pointer to a functions to almost support
- Lynx, but it is not quite working yet.
-
- * ../ace/ACE.cpp
- * ../ace/OS_Memory.h
-
- Changed system calls to pace calls.
-
- * ../ace/OS.h
-
- Reverted part of my earlier changes to support Lynxos in
- a cleaner way.
-
- * ../ace/OS.h
- * ../ace/OS.i
-
- Many small changes including wrapping most calls with ACE_OSCALL
- to handle EINTR correctly.
-
-Tue Jul 18 15:13:40 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/times.h:
- * pace/win32/times.inl:
-
- Fixed type support.
- Eliminated unsupported funcs (return -1 and set ernno).
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
-Tue Jul 18 15:09:09 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/time.inl:
-
- Eliminated and confirmed suport for funcs.
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
-Tue Jul 18 14:43:08 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/termios.h:
- * pace/posix/termios.inl:
-
- PACE_HANDLE substituted in for file descriptors.
-
- * pace/win32/termios.h:
- * pace/win32/termios.inl:
-
- Eliminated support for most funcs. Return -1 and set ernno
- to ENOTSUP.
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
-Tue Jul 18 14:15:11 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/stdio.inl:
-
- Eliminated support for cterm.
- Created support for v...print.. family of funcs.
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
-Tue Jul 18 13:52:13 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/stat.h:
- * pace/win32/stat.inl:
-
- Eliminated, emulated and confirmed suport for funcs.
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
-Tue Jul 18 13:16:14 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/signal.h:
- * pace/win32/signal.inl:
-
- Eliminated, emulated and confirmed suport for funcs.
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
-Tue Jul 18 11:33:16 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/setjmp.h:
- * pace/win32/setjmp.inl:
-
- Eliminated support sig(setjmp/longjmp).
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
-Mon Jul 17 18:29:27 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/semaphore.h:
- * pace/win32/semaphore.inl:
-
- Eliminated support for these functions. Started emulation.
-
- * pace/win32/types.h:
-
- Changed PACE_HANDLE to represent HANDLE (not void *).
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
-Mon Jul 17 16:37:16 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/sched.h:
- * pace/win32/sched.inl:
-
- Eliminated support for these functions.
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
-Mon Jul 17 16:27:43 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/pwd.h:
- * pace/win32/pwd.inl:
-
- Emulate some... return no support for others.
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
- * pace/win32/mqueue.h:
-
- Typo.
-
-Mon Jul 17 15:57:43 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/mqueue.h:
- * pace/win32/mqueue.h:
-
- Fixed types to compile for win32.
- Code was NOT emulated so types are dummy types and
- PACE_ERRNO_NO_SUPPORT_RETURN (-1) was applied when applicable.
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
-Mon Jul 17 14:56:31 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/mman.inl:
-
- Emulate some... return no support for others.
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
-Mon Jul 17 14:00:35 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * pace/config/utility.h:
-
- Changed #if (PACE_WIN32 != 0) to #if (PACE_WIN32) to be
- more consistent.
-
-Mon Jul 17 13:57:05 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/posix/mman.inl (pace_shm_open):
- * pace/win32/mman.inl (pace_shm_open):
- * pace/sys/mman.h (pace_shm_open):
-
- Return value changed to PACE_HANDLE.
-
- * pace/win32/mman.h:
-
- Added some sorely needed constant macro definitions.
-
- * pace/config/utility.h:
-
- Removed #define PACE_POSIX_ERROR_INT_RETVAL -1
-
-Mon Jul 17 13:31:50 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h:
-
- Added #define PACE_POSIX_ERROR_INT_RETVAL -1
-
-Mon Jul 17 13:07:50 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/aio.h (pace_aio_cancel):
- * pace/posix/aio.inl (pace_aio_cancel):
- * pace/win32/aio.inl (pace_aio_cancel):
- * pace/mman.h:
- * pace/posix/mman.inl:
- * pace/win32/mman.inl:
-
- Substituted PACE_HANDLE for ints that were file descriptors.
-
-Mon Jul 17 12:49:17 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/types.h:
-
- PACE_HANDLE and PACE_INVALID_HANDLE get changed in WIN32
- to a void *. (In POSIX dir, we use an int as a file desc.)
-
- * docs/PACE_POSIX_support.txt:
-
- Updated.
-
- * pace/win32/dirent.inl
-
- Uses the new PACE_HANDLE.
-
-Mon Jul 17 12:27:47 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * pace/config/utility.h:
-
- Prevented windows.h from getting included on non Win32 platforms. :)
-
-Mon Jul 17 11:47:11 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * docs/PACE_POSIX_support.txt:
-
- Added to specify native/emulation/not supported funcs.
-
- * pace/win32/fcntl.h:
-
- creat isn't quite exactly as ACE does it. Leave this out
- until correctly finished!
-
-Sun Jul 16 16:21:16 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/grp.inl:
- * pace/win32/grp.h:
-
- No WIN32 support. ACE does not emulate this family.
- Build a group struct & return -1 and set ernno to
- NO SUPPORT!
-
-Sun Jul 16 16:17:25 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h (PACE_FAIL_RETURN):
-
- Fixed to work with just PACE_WIN32 defined.
-
-Fri Jul 14 22:56:29 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h (PACE_FAIL_RETURN):
-
- Defined.
-
-Fri Jul 14 22:41:53 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/fcntl.h:
- * pace/fcntl.inl:
-
- Some old changes didn't seem to take?
-
-Fri Jul 14 22:25:31 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/dirent.inl:
-
- Typo.
-
-Fri Jul 14 22:06:14 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/fcntl.inl:
-
- Type in comments for pace_win32_emulate_creat.
-
-Fri Jul 14 22:00:34 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/fcntl.inl (creat):
-
- WIN32 doesn't support integers as file handles. Note here,
- we return -1 for failure and we cast a HANDLE to an int
- for success.
-
- Also, emulated support for POSIX creat. The ACE_OS version
- extensively uses thread protection. This is commented out and
- may be added in later, when threads are implemented in PACE.
-
- * pace/fcntl.h (creat):
-
- Comments regarding return values == (int)*HANDLE for WIN32.
-
-Fri Jul 14 21:20:59 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/types.h:
-
- Added #include <windef.h> for common definitions and basic types.
-
-Fri Jul 14 20:49:46 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h:
-
- Added some neat :-) ACE_* macro utilities.
-
-Fri Jul 14 20:38:44 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/dirent.inl:
-
- Added (POSIX_HAS_POSIX_FS_UOF) protection to emulation funcs.
-
-Fri Jul 14 20:18:46 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h:
- * pace/win32/errno.h:
-
- Moved win32 error definitions to pace/win32/errno.h.
-
- * pace/config/utility.h:
-
- Changed #include <errno.h> to #include "pace/errno.h".
-
-Fri Jul 14 20:05:33 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/pace_dll.dsp:
- * pace/win32/pace_lib.dsp:
-
- Default the build to all POSIX units of functionality.
- Defined PACE_HAS_ALL_POSIX_FUNCS in
- Settings >> C/C++ >> Preprocessor
-
-Fri Jul 14 19:06:09 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ../include/makeinclude/wrappermacros.GNU:
- Added -DPACE_HAS_ALL_POSIX_FUNCS to flags.
-
- * pace/pthread.h:
- * pace/unistd.h:
- Removed a duplicate closing }.
-
- * pace/pthread.h:
- Added (void) in arguments to pointers to functions
- which were otherwise interpreted as (...) args.
-
-Fri Jul 14 18:50:07 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/unistd.h:
-
- Removed incompatible #include <unistd.h> for win32.
-
-Fri Jul 14 18:19:10 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/signal.h:
-
- Typo...(pace_s_sigaction becomes pace_sigaction_s).
-
-Fri Jul 14 18:05:09 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/dirent.h:
-
- Removed dir_init.
-
- * pace/win32/dirent.inl:
-
- win32 emulation functions finished.
- closedir == pace_win32_emulate_closedir
- opendir == pace_win32_emulate_opendir
- readdir == pace_win32_emulate_readdir
-
-Fri Jul 14 17:46:56 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/dirent.h:
-
- Removed 'const' member of dirent struct.
- Added dir_init to guarantee that 'started_reading_' is
- initialized correctly!
-
- * pace/win32/types.h:
-
- Added support for win32
- PACE_WIN32_INVALID_HANDLE = (void*)0
-
-Fri Jul 14 15:55:24 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/sys/mman.h:
- * pace/sys/stat.h:
- * pace/sys/times.h:
- * pace/sys/utsname.h:
- * pace/sys/wait.h:
- move closing } for extern "C" to near end of file, after
- .inl #includes.
-
- * pace/Makefile:
- Added defining appropriate macros when subsetting PACE into
- POSIX units of functionality.
-
- * pace/aio.h:
- * pace/assert.h:
- * pace/ctype.h:
- * pace/dirent.h:
- * pace/fcntl.h:
- * pace/grp.h:
- * pace/locale.h:
- * pace/math.h:
- * pace/mqueue.h:
- * pace/pthread.h:
- * pace/pwd.h:
- * pace/sched.h:
- * pace/semaphore.h:
- * pace/setjmp.h:
- * pace/signal.h:
- * pace/stddef.h:
- * pace/stdio.h:
- * pace/stdlib.h:
- * pace/string.h:
- * pace/termios.h:
- * pace/time.h:
- * pace/unistd.h:
- * pace/utime.h:
- * pace/emulation/mqueue.c:
- * pace/emulation/mqueue.h:
- * pace/posix/aio.inl:
- * pace/posix/ctype.inl:
- * pace/posix/dirent.inl:
- * pace/posix/fcntl.inl:
- * pace/posix/grp.inl:
- * pace/posix/locale.inl:
- * pace/posix/math.inl:
- * pace/posix/mman.inl:
- * pace/posix/mqueue.inl:
- * pace/posix/pthread.inl:
- * pace/posix/pwd.inl:
- * pace/posix/sched.inl:
- * pace/posix/semaphore.inl:
- * pace/posix/setjmp.inl:
- * pace/posix/signal.inl:
- * pace/posix/stat.inl:
- * pace/posix/stdio.inl:
- * pace/posix/stdlib.inl:
- * pace/posix/string.inl:
- * pace/posix/termios.inl:
- * pace/posix/time.inl:
- * pace/posix/times.inl:
- * pace/posix/unistd.inl:
- * pace/posix/utime.inl:
- * pace/posix/utsname.inl:
- * pace/posix/wait.inl:
- * pace/win32/aio.inl:
- * pace/win32/ctype.inl:
- * pace/win32/dirent.inl:
- * pace/win32/fcntl.inl:
- * pace/win32/grp.inl:
- * pace/win32/locale.inl:
- * pace/win32/math.inl:
- * pace/win32/mman.inl:
- * pace/win32/mqueue.inl:
- * pace/win32/pthread.inl:
- * pace/win32/pwd.inl:
- * pace/win32/sched.inl:
- * pace/win32/semaphore.inl:
- * pace/win32/setjmp.inl:
- * pace/win32/signal.inl:
- * pace/win32/stat.inl:
- * pace/win32/stdio.inl:
- * pace/win32/stdlib.inl:
- * pace/win32/string.inl:
- * pace/win32/termios.inl:
- * pace/win32/time.inl:
- * pace/win32/times.inl:
- * pace/win32/unistd.inl:
- * pace/win32/utime.inl:
- * pace/win32/utsname.inl:
- * pace/win32/wait.inl:
- Wrapped each function with its corresponding POSIX unit of
- functionality (or the catch-all PACE_HAS_POSIX_NONUOF_FUNCS).
-
- * pace/config/config.h:
- Changed to define all the POSIX macros when
- PACE_HAS_ALL_POSIX_FUNCS is defined.
-
- * tests/Makefile:
- Adding default flag of PACE_HAS_ALL_POSIX_FUNCS.
-
- * tests/Stdio_Test.c:
- change variable from FILE to PACE_FILE.
-
-Fri Jul 14 15:02:47 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * PACE/pace/win32/dirent.h:
-
- pace_dir changed to PACE_DIR.
- PACE_TCHAR changed to char.
-
-Fri Jul 14 14:34:43 2000 David L. Levine <levine@cs.wustl.edu>
-
- * pace/assert.h,pace/{posix,win32}/assert.{h,inl}:
- changed pace_assert from an inline function to a macro.
- That way, it will report the proper file/line number,
- instead of those of the pace_assert inline function.
-
- Also, moved #include <assert.h> from .inl file to .h
- file. Because we're now using a macro, client code
- must #include <assert.h>.
-
-Fri Jul 14 09:26:36 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.common.GNU: if debug is disabled,
- add -DPACE_NDEBUG to CFLAGS or CCFLAGS.
-
- * pace/{posix,win32}/assert.inl: neuter if PACE_NDEBUG is
- defined. Even though assert () won't do anything with
- NDEBUG, data (__FILE__ and __LINE__, presumably) was stored
- in the .o file without this change.
-
- We might want to consider making pace_assert a macro.
- As an inline function, __FILE__ and __LINE__ won't be
- very helpful.
-
-Fri Jul 14 08:17:59 2000 David L. Levine <levine@cs.wustl.edu>
-
- * pace/{aio.h,assert.h,ctype.h,dirent.h,fcntl.h,grp.h,locale.h,
- math.h,mqueue.h,pthread.h,pwd.h,sched.h,semaphore.h,setjmp.h,
- stdio.h,stdlib.h,string.h,termios.h,time.h,unistd.h,utime.h}:
- move closing } for extern "C" to near end of file, after
- .inl #includes.
-
-Fri Jul 14 00:30:38 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ../ace/OS.i
- Minor updates. Currently only LynxOS has a dirty build
- of libACE, although libACE still can't be linked against
- correctly.
-
- * pace/signal.h
- * pace/posix/signal.*
- * pace/stdlib.h
- * pace/posix/stdlib.*
- * pace/pthread.h
- * pace/posix/pthread.*
-
- Added typedef of pointers to functions which forced
- functions which take pointers to functions to accept
- arguments of c++ linkage... I think.
-
-Thu Jul 13 16:37:33 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * ../include/makeinclude/wrapper_macros.GNU
-
- Added 'pace' flag to support compilation with PACE.
- 'make pace=1' and behold the power of pace!
-
- * include/makeinclude/rules.common.GNU
-
- Removed netinet, arpa, and common form the VPATH
-
- * pace/1/
- * pace/arpa/
- * pace/netinet/
- * pace/common/
-
- Removed. <Update: this didn't work, will have
- to wait unil a later date>
-
-Thu Jul 13 14:57:53 2000 David L. Levine <levine@cs.wustl.edu>
-
- * pace/{posix,win32}/assert.inl (pace_assert): removed unnecessary
- return statement at end of function.
-
-Thu Jul 13 10:53:06 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/dirent.h:
-
- Added structs for dirent and DIR.
-
-Thu Jul 13 00:46:37 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/signal.h
- * pace/posix/signal.h
- * pace/posix/signal.inl
-
- Changed the typedef of pace_s_sigevent
- to pace_sigevent_s to match up with pace_stat_s. The
- problem with both of these is that the data type names
- conflict with function names.
-
- * pace/stdio.h
- * pace/posix/stdio.c
-
- Changed all '...' functions to defines. Now the library
- should be totally empty on platforms without emulation code.
-
- * include/makeinclude/rules.common.GNU
- * tests/Makefile
-
- Because the library can be empty again, don't include
- the library by default. As a temporary kludge emulation=1
- is set in rules.common.GNU for Linux, which is the only
- platform thus far which has a non-empty library.
-
- * pace/emulation/mqueue.c
- * pace/emulation/mqueue.h
-
- Support for all functionality is now complete, cleaner,
- and somewhat less buggy.
-
- * tests/mqueue_test.c
-
- Borrowed a test from Konstantin Knizhnik's web site,
- will eventually have to make this a one-button test.
-
-Wed Jul 12 17:30:54 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/posix/types.h
- Fixed pace_tchar.
-
-Wed Jul 12 16:31:51 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/types.h:
-
- Fixed PACE_TCHAR.
-
-Wed Jul 12 16:10:39 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/fcntl.h
- * pace/mqueue.h
- * pace/semaphore.h
- * pace/stdio.h
- * pace/unistd.h
- * pace/unistd.inl
- * pace/tests/mqueue_test.c
- Updated all #define pace_func (X) macros to remove the need
- for double paranthesis.
-
-Wed Jul 12 17:01:47 2000 Ossama Othman <ossama@uci.edu>
-
- * Makefile.am:
- * pace/Makefile.am:
- * pace/posix/Makefile.am:
- * tests/Makefile.am:
-
- Preliminary Automake input files for PACE. They aren't working
- yet, but do provide a good start.
-
-Wed Jul 12 15:27:27 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/posix/types.h (PACE_TCHAR):
- * pace/win32/types.h (PACE_TCHAR):
-
- Added typedef char PACE_TCHAR;
- Protected some of the typedefs.
-
-Wed Jul 12 14:26:10 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/aio.inl:
-
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
- Emulate support for these latter.
-
-Wed Jul 12 14:15:10 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/signal.h:
- * pace/win32/time.h:
-
- Added types to help win32 along.
-
-Wed Jul 12 12:10:55 2000 David L. Levine <levine@cs.wustl.edu>
-
- * pace/config/platform.h: added OSF1 support.
-
-Wed Jul 12 11:51:52 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/errno.h:
-
- Added to repository.
-
- * pace/win32/pace_dll.dsp:
- * pace/win32/pace_lib.dsp:
-
- Modified to include the new file.
-
-Wed Jul 12 11:45:34 2000 David L. Levine <levine@cs.wustl.edu>
-
- * include/makeinclude/rules.commmon.GNU: added OSF1 support.
-
-Wed Jul 12 10:53:01 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/pace_lib.dsp:
- * pace/win32/pace_dll.dsp:
-
- Added the PACE/pace/*.h files. These currently contain
- the interface we need to compile into our code. Maybe
- we can change the following, but we now have
- PACE/pace/aio.h and PACE/pace/win32/aio.h
- both showing up in the VC++ list as aio.h and aio.h.
- The PACE/pace/win32 files always show up second :-)
-
-Wed Jul 12 10:24:20 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/wait.h:
- * pace/win32/utsname.h:
- * pace/win32/utime.h:
- * pace/win32/unistd.h:
- * pace/win32/types.h:
- * pace/win32/times.h:
- * pace/win32/time.h:
- * pace/win32/termios.h:
- * pace/win32/string.h:
- * pace/win32/stdlib.h:
- * pace/win32/stdio.h:
- * pace/win32/stat.h:
- * pace/win32/signal.h:
- * pace/win32/setjmp.h:
- * pace/win32/semaphore.h:
- * pace/win32/sched.h:
- * pace/win32/pwd.h:
- * pace/win32/pthread.h:
- * pace/win32/mqueue.h:
- * pace/win32/mman.h:
- * pace/win32/math.h:
- * pace/win32/locale.h:
- * pace/win32/limits.h:
- * pace/win32/grp.h:
- * pace/win32/fcntl.h:
- * pace/win32/dirent.h:
- * pace/win32/ctype.h:
- * pace/win32/assert.h:
- * pace/win32/aio.h:
-
- Removed function prototypes. These were moved to the PACE/*.h files.
- Removed #include *.inl files. These are inluded by the PACE/*.h files.
- Postfixed the protective preprocessor guards with _WIN32
- (ie: PACE_CTYPE_H_WIN32).
-
-Wed Jul 12 01:25:44 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/emulation/time.c:
- Removed since it is currently empty.
-
- * pace/emulation/time.h:
- Minor changes to how this file is included in:
-
- * pace/posix/time.h:
- Changed how emulation/time.h is included on Linux
-
- * pace/config/compiler.h
- * pace/posix/string.inl
- * pace/posix/unistd.inl
- Changed to quell odd compiler warnings from gcc. Added
- PACE_BROKEN_INLINE.
-
- * pace/emulation/mqueue.*
- Improved and updated code, but it is still not complete.
-
- * pace/tests/mqueue_test.c
- * pace/tests/Makefile
- Added a very simple test to verify mqueue works.
-
-Tue Jul 11 21:05:58 2000 David L. Levine <levine@cs.wustl.edu>
-
- * pace/unistd.h,pace/posix/unistd.inl:
- 1) pace_execl{,e,p} weren't declared/defined with
- PACE_INLINE, so they were being put into each .o.
- 2) Reordered some of the function definitions in
- posix/unistd.inl, so that they appear before all uses.
-
-Tue Jul 11 19:31:13 2000 David L. Levine <levine@cs.wustl.edu>
-
- * pace/stdio.h: fixed copy+paste error in comment:
- tmpfile instead of sscanf.
-
-Tue Jul 11 4:28:00 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * rules.common.GNU:
- Added functionality so that PACE_SYSVER on Linux is in the
- same format as LINUX_VERSION_CODE from the Linux source code.
- For example, Linux version 2.2.12 -> 0x02020C == 131596
-
-Tue Jul 11 10:24:03 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/Makefile:
- Changed to always include the PACE library. This was causing
- problems for functions that are never inlined when inlining
- is enabled.
-
-Mon Jul 10 13:47:25 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/stddef.h
- * pace/stdio.h
- * pace/string.h
- * pace/unistd.h
- Changed to new format, all functions should now be
- declared in pace/
-
- * pace/mqueue.h
- * pace/emulation/mqueue*
- Emulated mqueue for linux. Curently there is no support for
- mq_notify, and there is a race condition if two procs try to
- create the same queue at the same time.
-
- * pace/stdio.h
- * pace/posix/stdio.inl
- * pace/unistd.h
- * pace/posix/unistd.inl
- Moved ctermid back to where it should be (stdio).
-
- * pace/string.h
- * pace/posix/string.inl
- Added mem* functions (e.g. memset), since they are C std.
-
- * pace/time.h
- * pace/posix/time.inl
- ENOSYSed clock_* and timer_* functions for Linux, although
- emulation may be possible.
-
- * pace/posix/pthread.inl
- ENOSYSed many functions not supported on Linux. Linux should
- build clean now for the moment.
-
-Mon Jul 10 08:50:37 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/posix/time.inl:
- * pace/posix/pthread.inl:
- * pace/posix/aio.inl:
- Changed code to use PACE_NONCONST_ARG_CAST rather than
- #idef'ing for LynxOS and doing the cast.
-
- * pace/config/defines.h:
- Changed order of include so that platform.h (and
- POSIX_HAS_* #defines) will be first.
-
- * pace/config/config.h:
- Added PACE_NONCONST_ARG_CAST macro. Needed for LynxOS
- when it doesn't use const args for POSIX functions
- taking const args.
-
- * tests/Makefile:
- * pace/Makefile:
- Took out common rules and included
- include/makeinclude/rules.common.GNU instead.
-
- * include/makeinclude/rules.common.GNU:
- Added this file to take out common rules from the
- different Makefiles.
-
- * tests/Posix_SP_Test.c:
- Made test more robust (e.g., check for all specified POSIX
- names for sysconf and for NULL and non-NULL arg to time)
- Also, ifdefed out some sysconf names for LynxOS since those
- names are supported. Sent email to LynuxWorks about this.
-
-Fri Jul 7 19:11:38 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/sys/mman.h
- * pace/sys/stat.h
- * pace/sys/times.h
- * pace/sys/types.h
- * pace/sys/utsname.h
- * pace/sys/wait.h
- * pace/termios.h
- * pace/time.h
- * pace/unistd.h
- * pace/utime.h
- * pace/posix/mman.h
- * pace/posix/stat.h
- * pace/posix/termios.h
- * pace/posix/time.h
- * pace/posix/times.h
- * pace/posix/types.h
- * pace/posix/unistd.h
- * pace/posix/utime.h
- * pace/posix/utsname.h
- * pace/posix/wait.h
-
- Continued changes:
-
- Changed the #if defined (PACE_HAS_POSIX) to #if
- PACE_HAS_POSIX per our recent conversation regarding all macros being
- assigned a value.
-
- Moved the prototype function signatures to the root
- directory *.h file.
-
- Changed the form the *.inl file was included.
-
-
-Fri Jul 7 17:24:33 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/fcntl.h:
-
- Missing extern "C" { }.
-
-Fri Jul 7 17:22:56 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/aio.h:
- * pace/posix/aio.h:
- * pace/assert.h:
- * pace/posix/assert.h:
- * pace/ctype.h:
- * pace/posix/ctype.h:
- * pace/dirent.h:
- * pace/posix/dirent.h:
- * pace/fcntl.h:
- * pace/posix/fcntl.h:
- * pace/grp.h:
- * pace/posix/grp.h:
- * pace/math.h:
- * pace/posix/math.h:
- * pace/mqueue.h:
- * pace/posix/mqueue.h:
- * pace/pthread.h:
- * pace/posix/pthread.h:
- * pace/pwd.h:
- * pace/posix/pwd.h:
- * pace/sched.h:
- * pace/posix/sched.h:
- * pace/semaphore.h:
- * pace/posix/semaphore.h:
- * pace/setjmp.h:
- * pace/posix/setjmp.h:
- * pace/signal.h:
- * pace/posix/signal.h:
-
- Changed the protection includes. Eg:
- ROOT directory PACE_ASSERT_H
- POSIX directory PACE_ASSERT_H_POSIX.
-
- Changed the #if defined (PACE_HAS_POSIX) to #if PACE_HAS_POSIX
- per our recent conversation regarding all macros being assigned a
- value.
-
- Moved the prototype function signatures to the root directory *.h file.
-
- Changed the form the *.inl file was included.
-
-Fri Jul 7 16:23:57 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/errno.h:
- * pace/posix/errno.h
-
- Altered to fit in current
-
-Fri Jul 7 16:04:30 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/platform:
-
- # define all unused macros so we can test them against '0'
- in the source code.
-
-Fri Jul 7 15:24:57 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/compiler.h:
-
- # define PACE_HAS_CPLUSPLUS __cplusplus
-
-Fri Jul 07 14:41:51 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/types.h:
-
- Fixed some non-native type problems. Also, made some temporary
- types (pthread_*) until we actually get to win32/pthread.h at
- which point, we will correctly define these.
-
-Fri Jul 7 02:18:02 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/posix/dirent.*:
- * pace/posix/pthread.*:
- * pace/posix/sched.h:
- * pace/posix/signal.*:
- * pace/posix/stat.*:
- * pace/posix/time.*:
- * pace/posix/utsname.inl:
- Fixed a problem with certain typedefs not being
- exposed in other .inl files due to an odd
- interaction of the #pragma once style protections
- present in the header files. A few structs were redefined
- a second time outside of their header file.
-
- Also, pace_stat was changed to pace_stat_s to avoid a conflict
- witht the pace_stat() function.
-
- * pace/win32/termios.*:
- * pace/win32/wait.h:
- * pace/win32/utsname.*:
- * pace/win32/times.*:
- * pace/win32/stat.*:
- * pace/win32/mman.*:
- Added changes made to /posix earlier.
-
-
-Thu Jul 6 13:04:02 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/Posix_SP_Test.c:
- Made tests more robust checking for all possible parameter
- values. Also, changed check for failure. Just because a
- function doesn't support a particular parameter value, does
- not mean the function doesn't support that function. If
- the PACE symbols can be used (i.e., the code compiles) then
- the function is supported.
-
-Thu Jul 06 12:17:21 2000 David L. Levine <levine@cs.wustl.edu>
-
- * pace/posix/pthread.inl (pace_pthread_mutex_{get,set}prioceiling):
- LynxOS does not have pthread_mutex_{get,set}prioceiling, so
- don't call them with PACE_LYNXOS.
-
-Wed Jul 5 13:38:11 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/types.h:
- Added #include <pthread.h> to expose types on LynxOS.
-
- * pace/time.inl:
- Casted away const for LynxOS.
-
- * pace/posix/termios.*:
- Fixed a typedef and removed tc*pgrp which didn't seem to
- take from the last commit.
-
- * ../ace/OS.i:
- Updated corresponding functions to those newly added in PACE.
-
-Wed Jul 5 17:15:26 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/Makefile:
- Fixed error introduced by my earlier update.
-
- * pace/termios.*:
- Added typedefs and changed function signatures appropriately.
- Removed tcgetpgrp which was added to unistd earlier.
-
- * pace/sys/wait.h:
- Added macros.
-
- * pace/sys/utsname.*:
- * pace/sys/times.*:
- * pace/sys/stat.*:
- * pace/sys/mman.*
- Added typedefs and changed function parameters appropriately.
-
- * pace/time.h:
- Added #include "pace/signal.h"
-
- * pace/unistd.inl:
- Changed spelling error.
-
- * pace/signal.*:
- * pace/stat.*:
- Typedefs of structs later used as pointers were broken
- so I reverted back to the old way temporarily.
-
-Wed Jul 05 16:00:32 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/types.h:
-
- Removed redefinition of size_t.
-
-Wed Jul 05 14:54:16 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/types.h:
-
- Define native UNIX types to work on WIN32 types.
-
-Wed Jul 5 15:28:25 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/Makefile:
- Fixed paths that were invalidated when wait.h and termios.h
- were moved.
-
-Wed Jul 05 14:46:38 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/aio.h:
-
- Removed #include <aio.h>.
-
-Wed Jul 05 13:41:00 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * PACE/win32/types.h:
-
- Removed #include <inttypes.h>.
- Moved -*- C -*- to same line as $-Id-$
-
-Wed Jul 5 13:25:34 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/*
-
- Removed (posix ace) from files.
-
-Wed Jul 05 12:49:20 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * PACE/config/platform.h
-
- WIN32 doesn't use the makefile.
- #define PACE_WIN32 2000
-
-Wed Jul 5 12:48:41 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32/*.
-
- Update files per PACE/posix changes.
-
-Mon Jul 3 19:30:39 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/posix/time.*:
- Added macros, typedefs, clock(), and difftime().
-
- * pace/posix/unistd.*:
- Added macros, typedefs, tcgetpgrp(), tcsetpgrp().
-
- * pace/posix/utime.*:
- Added macros and typedefs.
-
-Mon Jul 3 9:45:00 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/config/types.h:
- Removed. Functionality replaced by platform
- specific pace/sys/types.
-
- * pace/config/defines.h:
- Deleted reference to types.h.
-
-Mon Jul 3 00:25:44 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/sys/termios.h:
- Moved to pace/
-
- * pace/posix/aio.*:
- * pace/posix/direnet.*:
- * pace/posix/fcntl.*:
- * pace/posix/grp.*:
- * pace/posix/locale.*:
- * pace/posix/math.*:
- * pace/posix/mqueue.*:
- * pace/posix/pthread.*:
- * pace/posix/pwd.*:
- * pace/posix/sched.*:
- * pace/posix/semaphore.*:
- * pace/posix/setjmp.*:
- * pace/posix/signal.*:
- * pace/stddef.*:
- * pace/posix/stdio.*:
- * pace/posix/stdlib.*:
- * pace/posix/string.*:
- * pace/posix/types.*:
- * pace/posix/time.*:
- Added many missing typedefs and macros. A bug has been
- added in also in types.h. It is harmless but causes a
- compiler warning that I could not fix. Files lower in
- the alphabet such as utime haven't been finished yet.
-
- * pace/posix/stdio.*:
- Added in the missing functions fgetpos, fsetpos, fwrite,
- setvbuf, vfprintf, vprintf, vsprintf. The last three
- are empty until passing the macro va_list is resolved.
-
- * pace/posix/locale.*:
- Added localeconv ().
-
- * pace/posix/signal.*:
- Added raise () and signal ().
-
- * pace/posix/unistd.*:
- * pace/posix/stdio.*:
- Moved ctermid() from stdio to unistd.
-
- * pace/posix/stdlib.*:
- Added abort ().
-
- * pace/:
- Added stddef.h and errno.h
-
-Fri Jun 30 16:54:41 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/wait.h:
- Moved to sys/
-
-Fri Jun 30 15:55:52 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/posix/time.h:
- * pace/posix/time.inl:
- * pace/win32/time.h:
- * pace/win32/time.inl:
- Corrected type for timeptr arg for pace_mktime function.
- Corrected non-const arg for pace_strftime. (NOTE: The
- Solaris man page incorrectly documents the constness
- of the first argument.)
-
- * pace/posix/stdlib.inl:
- * pace/win32/stdlib.inl:
- Corrected void return value for srand.
-
-Fri Jun 30 15:05:08 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/posix/TODO:
- Added testing with and without PACE_HAS_POSIX_PTHREAD_SEMANTICS
- defined.
-
- * pace/win32/setjmp.h:
- * pace/win32/setjmp.inl:
- * pace/posix/setjmp.h:
- * pace/posix/setjmp.inl:
- Added pace_setjmp and pace_longjmp functions.
-
- * pace/posix/time.h:
- * pace/posix/time.inl:
- * pace/win32/time.h:
- * pace/win32/time.inl:
- Cleaned up comments and added functions pace_asctime,
- pace_ctime, pace_gmtime, pace_localtime, pace_mktime,
- and pace_strftime.
- Removed unneeded PACE_HAS_POSIX_PTHREAD_SEMANTICS guards
- in .inl files.
-
- * pace/win32/stdlib.h:
- * pace/win32/stdlib.inl:
- * pace/posix/stdlib.h:
- * pace/posix/stdlib.inl:
- Added functions pace_abs, pace_atof, pace_bsearch, pace_qsort,
- pace_rand, and pace_srand.
- Added "Requires PACE_HAS_REENTRANT" comment for pace_rand_r
- in header files.
-
- * pace/Makefile:
- Added all 18 POSIX Units of Functionality components to
- be built as separate libaries as specified on the command
- line (just like ACE).
-
-Fri Jun 30 10:10:53 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/Posix_SP_Test.c:
- Fixed description. Fixed name value arg to sysconf to be
- POSIX. Added more extensive checking and output of values
- when a function succeeds.
-
- * pace/Makefile:
- Removed extraneous #INCLDIRS comment.
-
- * pace/posix/pthread.inl:
- * pace/posix/aio.inl:
- Casted away const from certain functions for LynxOS when
- their prototypes don't have const.
-
- * tests/Makefile:
- Moved PACE_SYSNAME definition below wrapper_macros.GNU so
- that cross-compiled platforms (e.g., LynxOS) can define
- PACE_SYSNAME.
-
- * pace/config/platform.h:
- Changed of PACE_HAS_POSIX for LynxOS from PACE_LYNX to
- PACE_LYNXOS.
-
-Thu Jun 29 19:53:10 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/utility.h:
-
- (ENOTSUP) is not defined on win32. Added support.
-
-Thu Jun 29 19:22:46 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/win32
- Altered syntax (#include pace/posix/file.h) left over
- from copying.
-
-Thu Jun 29 16:42:31 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/posix/pthread.{h,inl}:
- Changed pthead_condattr_init to pthread_condattr init
- and pace_pace_pthread... to pace_pthread...
-
-
-Thu Jun 29 15:04:42 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/man/Makefile (index.html):
- Created PACE_DOC++ as executable to invoke and assigned
- /project/doc/pkg/bin/doc++ to it.
-
- * pace/posix/assert.h:
- Removed extraneous '.' in comment.
-
-Thu Jun 29 15:04:42 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/posix/aio.h:
- * pace/posix/assert.h:
- * pace/posix/ctype.h:
- * pace/posix/dirent.h:
- * pace/posix/fcntl.h:
- * pace/posix/grp.h:
- * pace/posix/locale.h:
- * pace/posix/math.h:
- * pace/posix/mman.h:
- * pace/posix/mqueue.h:
- * pace/posix/pthread.h:
- * pace/posix/pwd.h:
- * pace/posix/sched.h:
- * pace/posix/semaphore.h:
- * pace/posix/setjmp.h:
- * pace/posix/signal.h:
- * pace/posix/stdio.h:
- * pace/posix/stdlib.h:
- * pace/posix/string.h:
- * pace/posix/time.h:
- * pace/posix/unistd.h:
- * pace/posix/utime.h:
- * pace/posix/wait.h:
- Adding doc++ html man comments.
-
- * pace/posix/stdio.{h,inl} (pace_printf):
- Removed pace_snprintf and pace_vsprint functions since they
- are not POSIX.
-
-Thu Jun 29 14:47:19 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/posix/stdio.inl (pace_printf):
-
- * pace/man/pace.jpg:
- JPEG file of the PACE icon used in the html man pages.
-
- * pace/man/banner:
- Created banner file that is inserted at the bottom of
- the generated html man pages. This file contains the
- PACE logo pointing to the PACE Web page.
-
- * pace/man/Makefile:
- Created Makefile for the html man pages using doc++
-
-Thu Jun 29 09:21:19 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/man/Makefile:
-
- * pace/config/config.h:
- Changed C++ // comment to C /* */ comment. The compiler
- (appropriately) choked on the former.
-
- * pace/Makefile:
- Moved defining PACE_SYSNAME until after all the macro and rules
- files are included. Otherwise, PACE_SYSNAME was not getting
- defined for LynxOS.
-
- * pace/posix/types.h:
- Put an #if defined (PACE_SUNOS) guard around inclusion of
- inttypes.h since this file isn't found on Lynx.
-
-Thu Jun 29 02:38:52 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/posix/mman.inl:
- Added cast to char* from void* in param passing.
-
- * pace/posix/stdio.h:
- * pace/posix/stdio.c:
- Changed *printf from macros to functions.
-
- * pace/posix/unistd.c:
- * pace/posix/unistd.h:
- Changed the macros execl, execle, execlp to functions.
-
-Wed Jun 28 11:18:17 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/Makefile:
- * tests/Makefile:
- Modified to make PACE_ROOT $(ACE_ROOT)/PACE rather than the
- previous value of $(ACE_ROOT)/pace.
-
-Wed Jun 28 09:32:29 2000 David L. Levine <levine@cs.wustl.edu>
-
- * pace/config/config.h: added platform-dependent determination
- of PACE_HAS_REENTRANT. Also, wrapped all of the PACE_HAS...
- #defines with a check to see if it had already been defined.
-
- * pace/posix/stdlib.inl (pace_rand_r): use PACE_HAS_REENTRANT,
- now that the platform-dependent code is in pace/config/config.h.
-
-Wed Jun 28 09:21:07 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/Makefile:
- * pace/Makefile:
- Changed inlining to be the default.
-
-Tue Jun 27 23:09:34 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/posix/unistd.h:
- * pace/posix/termios.inl:
- Added #includes of <unistd.h> and <termios.h> to preclude
- undeclared token warnings without inlining enabled.
-
- * pace/posix/pwd.inl:
- Added PACE_UNUSED_ARG where needed.
-
-Tue Jun 27 22:03:52 2000 David L. Levine <levine@cs.wustl.edu>
-
- * pace/posix/stdlib.inl (pace_rand_r): on Linux and
- SunOS, rand_r isn't available if certains macros
- aren't defined, so reflect that. rand_r doesn't
- appear anywhere in the LynxOS 3.1.0 headers, so
- NO_SUPPORT there as well.
-
-Tue Jun 27 16:35:20 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/posix/aio.h:
- Removed copyrighted Solaris man text that accidentally get
- committed to the repository and replaced it with text to
- denote what really needs to go there.
-
-Tue Jun 27 14:32:40 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/posix/aio.h:
-
- * tests/Makefile (ACELIB):
- Defining PACE_HAS_INLINE from the Makefile and adding the PACE
- library if we are not inlining.
-
- * pace/posix/stdio.inl:
- Removed function since it's now a macro in the header file.
-
- * pace/posix/stdio.h:
- Changed pace_sprintf from a function to a macro because of
- compilation warnings. Can be changed later.
-
- * pace/config/compiler.h (PACE_INLINE):
- Changed definition of PACE_INLINE depending on if PACE_HAS_INLINE
- is defined.
-
- * pace/config/features.h:
- Removed PACE_HAS_INLINE from here since the Makefile now
- defines it.
-
- * pace/Makefile:
- Defining PACE_HAS_INLINE from the Makefile.
-
-Tue Jun 27 11:23:41 2000 David L. Levine <levine@cs.wustl.edu>
-
- * pace/posix/pthread.{h,inl} (pthread_cleanup_{push,pop}):
- replaced these inline functions with macros. They're
- supposed to be used in the same block; pthread_cleanup_pop
- refers to a local object that pthread_cleanup_push declares.
- I don't see how to implement that with inline functions.
-
-Tue Jun 27 10:11:00 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/tests/Posix_SP_Test.c
- * pace/tests/Stdio_Test.c
- * pace/pace/posix/time.inl
- Added more PACE_UNUSED_ARG
-
-Tue Jun 27 9:51:43 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/tests/Makefile
- Changed VLDLIBS := to +=
-
- * pace/tests/Posix_SP_Test.c
- Included pace/stdio.h
-
-Mon Jun 26 15:07:08 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/pace/win32/pace.dsw:
- * pace/pace/win32/pace_dll.dsp:
- * pace/pace/win32/pace_lib.dsp:
-
- Updated to link correctly.
-
-Mon Jun 26 13:27:02 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/pace/win32/pace.dsw:
- * pace/pace/win32/pace_dll.dsp:
- * pace/pace/win32/pace_lib.dsp:
-
- Added to repository.
-
-Mon Jun 26 12:24:36 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/pace/posix/TODO:
-
- Updated.
-
- * pace/pace/win32/*.[h,inl,cpp] README TODO:
-
- Added to repository.
-
-Mon Jun 26 11:03:00 2000 John Heitmann <jwh1@cs.wustl.edu>
-
- * pace/pace/posix/pwd.inl
- * pace/pace/posix/string.inl
- * pace/pace/posix/grp.inl
- * pace/pace/posix/dirent.inl
-
- Added PACE_UNUSED_ARG where needed.
-
-Sat Jun 24 7:10 2000 <jwh1@cs.wustl.edu>
-
- * pace/pace/posix/unistd.inl
- * pace/pace/posix/signal.inl
-
- Added PACE_UNUSED_ARG where needed.
-
-Wed Jun 21 18:50:04 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * in.h, inet.h, netdb.h, socket.h, strings.h, thread.h
-
- Not part of POSIX spec. Removed from pace.
-
-Wed Jun 21 18:42:22 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/tests/Makefile:
-
- Copied changes Joe made to pace/pace/Makefile regarding
- platform definitions.
-
- * pace/config/config.h (PACE_HAS_EXTENSIONS):
- * pace/pace/posix/dirent.inl
- * pace/pace/posix/grp.inl
- * pace/pace/posix/mman.inl
- * pace/pace/posix/pwd.inl
- * pace/pace/posix/signal.inl
- * pace/pace/posix/stdio.inl
- * pace/pace/posix/stdlib.inl
- * pace/pace/posix/string.inl
- * pace/pace/posix/types.h
- * pace/pace/config/utility.h
-
- Removed deprecated definitions and non-posix functions.
-
-Wed Jun 21 16:44:24 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/Makefile:
- Changed to define the PACE_`platform' values
- Change include directories to -I.. to resolve problems.
-
- * tests/Makefile:
- Change include directories to -I.. to resolve problems.
-
- * pace/config/platform.h:
- Modified platform #defines to PACE_`platform' (e.g., PACE_POSIX)
-
- * pace/posix/math.{h,inl}:
- Fixed pace_pow arguments
-
- * pace/posix/mman.{h,inl}:
- * pace/posix/aio.h:
- * pace/posix/locale.h:
- * pace/posix/pthread.{h,inl}:
- * pace/posix/stdio.h:
- Fixed syntax errors and typos
-
-Wed Jun 21 13:15:47 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/posix/stdio.inl (pace_setbuf):
-
- Altered return value and fixed typos.
-
-Tue Jun 20 15:39:26 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/compiler.h:
-
- Removed errant '\\' at end of lines and changed to '\'.
-
-Tue Jun 20 15:31:43 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/posix/mman.h:
- * pace/posix/socket.h:
- * pace/posix/stat.h:
- * pace/posix/termios.h:
- * pace/posix/times.h:
- * pace/posix/types.h:
- * pace/posix/utsname.h:
- * pace/posix/in.h:
- * pace/posix/inet.h:
- * pace/posix/aio.h:
- * pace/posix/assert.h:
- * pace/posix/defines.h:
- * pace/posix/dirent.h:
- * pace/posix/fnctl.h:
- * pace/posix/grp.h:
- * pace/posix/limits.h:
- * pace/posix/locale.h:
- * pace/posix/mqueue.h:
- * pace/posix/netdb.h:
- * pace/posix/pthread.h:
- * pace/posix/pwd.h:
- * pace/posix/sched.h:
- * pace/posix/semaphore.h:
- * pace/posix/setjmp.h:
- * pace/posix/signal.h:
- * pace/posix/stdio.h:
- * pace/posix/stdlib.h:
- * pace/posix/string.h:
- * pace/posix/strings.h:
- * pace/posix/thread.h:
- * pace/posix/time.h:
- * pace/posix/unistd.h:
- * pace/posix/utime.h:
- * pace/posix/wait.h:
-
- Edited for consistency with previous entry.
-
- Removed #include "pace/defines.h".
-
-Tue Jun 20 15:14:44 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/sys/mman.h:
- * pace/sys/socket.h:
- * pace/sys/stat.h:
- * pace/sys/termios.h:
- * pace/sys/times.h:
- * pace/sys/types.h:
- * pace/sys/utsname.h:
- * pace/netinet/in.h:
- * pace/arpa/inet.h:
- * pace/aio.h:
- * pace/assert.h:
- * pace/defines.h:
- * pace/dirent.h:
- * pace/fnctl.h:
- * pace/grp.h:
- * pace/limits.h:
- * pace/locale.h:
- * pace/mqueue.h:
- * pace/netdb.h:
- * pace/pthread.h:
- * pace/pwd.h:
- * pace/sched.h:
- * pace/semaphore.h:
- * pace/setjmp.h:
- * pace/signal.h:
- * pace/stdio.h:
- * pace/stdlib.h:
- * pace/string.h:
- * pace/strings.h:
- * pace/thread.h:
- * pace/time.h:
- * pace/unistd.h:
- * pace/utime.h:
- * pace/wait.h:
-
- Inserted #include "pace/config/defines.h".
-
- * pace/config/defines.h:
-
- Removed from pace/ dir and placed in config dir.
-
-Tue Jun 20 14:53:12 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/defines.h:
-
- This file needs to be included first! It was calling #including
- itself from the posix directory but was doing so off of macros
- that itself defined.
-
-Mon Jun 19 05:03:53 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/posix/ctype.h
- * pace/posix/ctype.inl
- * pace/posix/math.h
- * pace/posix/math.inl
-
- Correct functions added and implemented. _POSIX_C_LANG_SUPPORT.
-
-Mon Jun 19 04:34:34 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/sys/mman.h:
- * pace/sys/socket.h:
- * pace/sys/stat.h:
- * pace/sys/termios.h:
- * pace/sys/times.h:
- * pace/sys/types.h:
- * pace/sys/utsname.h:
- * pace/netinet/in.h:
- * pace/arpa/inet.h:
- * pace/aio.h:
- * pace/assert.h:
- * pace/defines.h:
- * pace/dirent.h:
- * pace/fnctl.h:
- * pace/grp.h:
- * pace/limits.h:
- * pace/locale.h:
- * pace/mqueue.h:
- * pace/netdb.h:
- * pace/pthread.h:
- * pace/pwd.h:
- * pace/sched.h:
- * pace/semaphore.h:
- * pace/setjmp.h:
- * pace/signal.h:
- * pace/stdio.h:
- * pace/stdlib.h:
- * pace/string.h:
- * pace/strings.h:
- * pace/thread.h:
- * pace/time.h:
- * pace/unistd.h:
- * pace/utime.h:
- * pace/wait.h:
-
- Altered these files #ifdef macro to PACE_FILE_H_INDIRECT so that the
- implementation pace/posix/*.h files didn't conflict with the preprocessor
- name space.
-
- Fully qualified all the includes in these files from #include "posix/file.h"
- to #include "pace/posix/file.h"
-
-Mon Jun 19 03:57:37 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/ctype.h:
- * pace/posix/ctype.h:
- * pace/posix/ctype.inl:
- * pace/posix/ctype.c:
-
- * pace/math.h:
- * pace/posix/math.h:
- * pace/posix/math.inl:
- * pace/posix/math.c:
-
- Added to repository.
-
-Sat Jun 17 17:24:47 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/sys/mman.h:
- * pace/sys/socket.h:
- * pace/sys/stat.h:
- * pace/sys/termios.h:
- * pace/sys/times.h:
- * pace/sys/types.h:
- * pace/sys/utsname.h:
- * pace/netinet/in.h:
- * pace/arpa/inet.h:
-
- Altered these "root" files to include the correct
- subdirectory/file.
-
-Sat Jun 17 16:46:39 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/aio.h:
- * pace/assert.h:
- * pace/defines.h:
- * pace/dirent.h:
- * pace/fnctl.h:
- * pace/grp.h:
- * pace/limits.h:
- * pace/locale.h:
- * pace/mqueue.h:
- * pace/netdb.h:
- * pace/pthread.h:
- * pace/pwd.h:
- * pace/sched.h:
- * pace/semaphore.h:
- * pace/setjmp.h:
- * pace/signal.h:
- * pace/stdio.h:
- * pace/stdlib.h:
- * pace/string.h:
- * pace/strings.h:
- * pace/thread.h:
- * pace/time.h:
- * pace/unistd.h:
- * pace/utime.h:
- * pace/wait.h:
-
- Altered these "root" files to include the correct
- subdirectory/file.
-
-Fri Jun 16 17:47:59 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/pace/config/features.h
-
- Added to the repository to isolate user defined features.
- (ie: PACE_HAS_INLINE)
-
- * pace/pace/config/compiler.h
-
- Added *hack* to cover PACE_INLINE to static, inline
- or (blank) expansion depending on the compiler.
-
- * pace/pace/config/platform.h
- * pace/pace/config/config.h
- * pace/pace/config/utility.h
-
- Cleaned up source.
-
- * pace/pace/common/README
- * pace/pace/common
-
- Removed from the repository. Not used for anything.
-
- * pace/pace/*.h
-
- Started adding code to include the correct directory
- here, but there seems to be a better way... :-) We will
- wait and see. Do away with these .h files and simply
- go to the correct directory via the makefile.
-
-Fri Jun 16 16:15:25 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/Makefile:
- Added POSIX Units of Functionality targets for libraries.
-
- * pace/{assert,locale}.h:
- * pace/posix/{assert,locale}.{h,inl,c}:
- Added new POSIX APIs for assert and setlocale.
-
- * pace/posix/stdio.{h,inl}:
- Added needed POSIX APIs.
-
- * pace/config/{compile,temp}.h:
- Redefined PACE_UNUSED_ARG and moved from temp.h to compile.h.
-
- * pace/posix/aio.inl:
- Made some formatting changes.
-
-Fri Jun 16 16:05:52 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * tests/{Makefile,Stdio_Test,Posix_SP_Test.c}:
- Updated the tests to more informational and adding uname -s
- information for some different platforms.
-
-Fri Jun 16 14:11:44 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/posix/*.h
-
- Added all .h files to posix directory. The implementation
- specific .h files are simply lumped together into one large
- directory while the original interface files are still
- found in the similarly names sunos directory.
-
- SunOS dirs (sys, netinet, arpa) ==> PACE implementation dir
- - - - - - - - -
- (pace/pace/sys/types.h ==> pace/pace/posix/types.h)
- (pace/pace/unistd.h ==> pace/pace/posix/unistd.h)
-
-Thu Jun 15 13:49:14 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/defaults.h
-
- Removed superfluous defaults originally copied
- from ACE_OS.
-
-Mon Jun 12 17:23:59 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/constants.h:
-
- Added POSIX minimum values in PACE format.
-
- * pace/config/platform.h (PACE_LINUX):
-
- Removed ACE code that shouldn't be included in PACE files.
- Deprecated macro that did not follow our current pattern.
- Added PACE_LINUX macro.
-
-Mon Jun 12 15:41:51 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/compiler.h:
-
- Deprecated PACE_HAS_CPLUSPLUS.
- Current PACE_CPLUSPLUS
-
- We will save the 'HAS' for user defined feature macros.
- Anytime we are renaming a current macro, we will just
- prepend PACE_'xxx'. See the next ChangeLog entry. The
- same motivation applies. Once I change the source code
- to reflect this idea, I will remove the deprecated
- macro names.
-
- Moved error stuff from 'codes.h' to compiler.
-
- * pace/config/codes.h"
-
- Removed from repository.
-
- * pace/defines.h:
-
- Removed #include "codes.h" from repository.
-
-Fri Jun 9 14:05:25 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/compiler.h:
- * pace/config/config.h:
-
- Moved PACE_HAS_INLINE from compiler.h to config.h.
-
- Deprecated macros. Left in but I will removed the
- deprecated macros once I change the code to use the
- current macros.
-
-Fri Jun 9 13:02:26 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/*.h pace/posix/*.inl,c
-
- See config/types.h from previous ChangeLog. All these
- types are altered in the source code. (ie: pthread_t
- became pace_pthread_t).
-
- perl -pi -e `s/pid_t/pace_pid_t/` *.h posix/*.inl posix/*.c
-
-Fri Jun 9 12:20:23 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/types.h:
-
- These are posix types in pace wrappers.
- They are macro definitions. The actual types are not
- available until the appropriate file is included.
- Thus, I didn't put them into pace/sys/types.h.
-
- * pace/pace/defines.h
-
- Added pace/config/types.h.
-
-Thu Jun 8 15:10:24 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/tests/{Makefile,Posix_SP_Test.c}:
- Added new test for POSIX_SINGLE_PROCESS unit of functionality
- and updated Makefile for changes to the PACE library directory
- structure.
-
-Thu Jun 8 15:10:24 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/pace/*.h:
- * pace/pace/arpa/*.h:
- * pace/pace/netinet/*.h:
- * pace/pace/sys/*.h:
- Modifying .h files to remove any path in front of .inl files.
-
- * pace/pace/posix/*.c:
- Modifying .c files to remove any path in front of .inl files.
-
- * pace/pace/posix/time.inl
- Changed PACE_SETERNNO to PACE_SET_ERRNO
-
-Thu Jun 8 15:03:42 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/pace/Makefile:
- Added support for PACE_SYSNAME to determine appropriate platform
- subdirectory for VPATH and INCLDIRS.
-
-Thu Jun 8 14:44:39 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ../pace/linux/README
- * ../pace/linux
- * ../pace/sunos/README
- * ../pace/sunos
- * ../pace/emulation
-
- Removed from reposistory.
-
- * ../pace/linux/TODO
-
- Moved to ../pace/posix/TODO
-
- * ../pace/pace.dsw
-
- Moved to ../pace/win32/pace.dsw.
- Hi Darrell. This takes all traces of win32 stuff out of
- the main dir and although its slightly different than
- ace or tao, we are using our directories a little
- differently here. Nanbor thought that is might be ok so
- I will try it here until it breaks? or someone has good
- reason to move it back.
-
-Thu Jun 8 12:09:56 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * pace/pace/sunos/*.{c,inl}:
- Removed files and put them in the posix subdirectory.
- * pace/pace/linux/*.{c,inl}:
- Removed files and put them in the posix subdirectory.
- * pace/pace/posix/*.{c,inl}:
- Added files from the linux/sunos subdirectories. (The files
- were identical from both directories aside from the $Id$ macro,
- i.e., the person who checked them in.)
-
-Wed Jun 7 12:27:13 2000 Joe Hoffert <joeh@cs.wustl.edu>
-
- * Makefile:
- Added Makefile for upper level pace directory.
- * pace/Makefile:
- Changed Makefile to fit in with the general makefile scheme in
- ACE and TAO.
- * config/compiler.h:
- Defined PACE_HAS_INLINE even for C files so that the functions
- will be directly added with the .h file.
- * tests/{Makefile,Stdio_Test.c,Posix_SP_Test.c}:
- Adding Makefile and tests to the tests directory.
-
-Mon Jun 5 17:43:07 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * docs/todo.txt:
-
- Updated. You may go here to find current
- responsibilities.
-
-Mon Jun 5 17:22:23 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/paces.dsp
- * pace/pacesd.dsp
-
- Removed from the repository.
- These files are generated (ie: paces.lib),
- not project files.
-
-Mon Jun 5 17:19:30 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/THANKS:
-
- Added John Heitmann, Andrew Gilpin and Darrell Brunsch.
- Note: names and email addresses are nicely accesible
- from this alphabetical file.
-
-Mon Jun 5 17:04:36 2000 Andrew G. Gilpin <agg1@cs.wustl.edu>
-
- * [inl,c]
-
- Commited files to the repository in pace/linux
-
- * aio, dirent, fcntl, grp, in, inet, mman, mqueue,
- netdb, pthread, pwd, sched, semaphore, setjmp,
- signal, socket, stat, stdio, stdlib, string,
- strings, termios, time, times, unistd, utime,
- utsname, wait
-
-Mon Jun 5 16:47:32 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * [inl,c]
-
- Moved files from root directory to pace/sunos.
-
- * aio, dirent, fcntl, grp, in, inet, mman, mqueue,
- netdb, pthread, pwd, sched, semaphore, setjmp,
- signal, socket, stat, stdio, stdlib, string,
- strings, termios, time, times, unistd, utime,
- utsname, wait
-
-Mon Jun 5 15:23:53 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * /pace/linux
- * /pace/linux/README
-
- Added to repository.
-
- * /pace/emulation
- * /pace/emulation/README
-
- Removed from repository.
-
-Fri Jun 02 16:55:10 2000 <luther@cs.wustl.edu>
-
- * ACE_wrappers/pace/pace/paces.dsp
- * ACE_wrappers/pace/pace/pacesd.dsp
-
- Added to repository. Naming consistency with other
- ACE libraries. Also removed pre-compiled header
- option as well as separate directories for debug
- and release versions of software.
-
- * ACE_wrappers/pace/pace/pace_lib.dsp
-
- Removed from repository. Naming consistency.
-
-Thu Jun 1 17:41:04 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ACE_wrappers/pace/pace/emulation
- * ACE_wrappers/pace/pace/common
- * ACE_wrappers/pace/pace/emulation/README
- * ACE_wrappers/pace/pace/common/README
-
- Added to repository.
-
-
-Thu Jun 1 17:18:17 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/config/config_sunos5.7.h:
- Removed from repository.
-
- * ACE_wrappers/pace/pace/posix/README
- * ACE_wrappers/pace/pace/win32/README
- * ACE_wrappers/pace/pace/vxworks/README
-
- Added to repository to keep the directories visible.
-
-
-Thu Jun 01 16:50:48 2000 <luther@cs.wustl.edu>
-
- * ACE_wrappers/pace/pace/pace.dsw
- * ACE_wrappers/pace/pace/pace_lib.dsp
-
- Added to the repository.
-
-Tue May 30 16:54:06 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * THANKS:
- Added key people to this file.
-
-Tue May 30 14:13:00 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * ACE_wrappers/pace/pace/posix
- * ACE_wrappers/pace/pace/win32
- * ACE_wrappers/pace/pace/vxworks
- * ACE_wrappers/pace/THANKS
-
- Added to the repository to facilitate cross-platform work.
-
-Wed May 24 18:56:16 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * docs/ACE_Integration.txt: (added)
-
- For the PACE crew, a file used to document our progress in
- splitting of ACE_OS and the PACE integration.
-
-Wed May 24 14:40:41 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * README/VERSION:
- Added to repository.
-
-Tue May 23 18:22:48 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * pace/pace/Makefile:
- Added to repository.
-
- * 'touch' to force dirs to show up with cvs co -P
- pace/docs/README
- pace/examples/README
- pace/pace/README
- pace/pace++/README
- pace/tests/README
-
-Tue May 23 17:59:06 2000 Luther J Baker <luther@cs.wustl.edu>
-
- * docs/todo.txt:
- Currently, all .o files appear in the
- ACE_wrappers/pace/pace directory (e.g.: nested
- files such as pace/pace/sys/socket.c generate
- pace/pace/socket.o. See pace/docs/todo.txt.
-
- * ACE_wrappers/pace/pace:
- Source files added.
diff --git a/PACE/Makefile b/PACE/Makefile
deleted file mode 100644
index 88088fe2333..00000000000
--- a/PACE/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the PACE directory
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-ifndef PACE_ROOT
- PACE_ROOT = $(ACE_ROOT)/PACE
-endif # ! PACE_ROOT
-
-INFO = README
-
-DIRS = pace \
- tests
-
-# Add these DIRS later - keep it simple for now
-# pace++ \
-# examples
-
-# Makefiles TBD:
-# ttcp
-# CORBA
-
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-ifdef CHORUS
-DIRS =
- all clean realclean:
- @echo PACE won\'t run or build for Chorus.
-else
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU
-endif # VXWORKS
diff --git a/PACE/Makefile.am b/PACE/Makefile.am
deleted file mode 100644
index 4980da4cb5c..00000000000
--- a/PACE/Makefile.am
+++ /dev/null
@@ -1,30 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Top-level Makefile for the PACE toolkit libraries, tests, and
-## applications
-##
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4 #check-news
-
-SUBDIRS = \
- pace \
- tests
-
-DESTDIRS = \
- docs \
- examples \
- pace++
-
-## Clean up some additional files/directories possibly created during
-## the configure script tests.
-clean-local:
- -rm -f *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core
- -rm -rf ptrepository Templates.DB gcctemp.c gcctemp so_locations
diff --git a/PACE/README b/PACE/README
deleted file mode 100644
index cc361881310..00000000000
--- a/PACE/README
+++ /dev/null
@@ -1,49 +0,0 @@
-# $Id$
-
-Copyright (c) 2000 Center for Distributed Object Computing,
-Washington University, St. Louis, Missouri, USA.
-
-This is POSIX ACE (PACE). It is based on ACE, the Adaptive
-Communications Environment, developed by Doug Schmidt and the
-Distributed Object Computing Group at Washington University and the
-University of California, Irvine. Please see the ACE copyright
-notice, available at
-http://www.cs.wustl.edu/~schmidt/ACE_wrappers/COPYING.
-
-PACE is intended for lightweight and/or verified systems. It offers
-these benefits:
-
-* A strict POSIX.1-like, low-level interface. Its interface is "POSIX
- compatible"; by that we mean as close to POSIX.1 as it can be, given
- that PACE is not an operating system. And, to avoid name conflicts
- with OS APIs, all low-level PACE function names have the pace_
- prefix.
-
-* The low-level interface is partitioned into multiple files, one
- per POSIX.1 section.
-
-* The low-level interface is written in C, so that it can be used in
- both C and C++ programs.
-
-* PACE (on most platforms) does not require the use of multiple
- inheritance, static objects, exception handling, or other C++
- language constructs that impair code size and/or run-time performance.
-
-
-PACE also insulates applications from the personalities of operating
-systems. For example:
-
-* SunOS 5.7's intro (3) man page states that _POSIX_PTHREAD_SEMANTICS
- and _REENTRANT flags are automatically turned on by defining
- _POSIX_C_SOURCE flag with a value greater than or equal to 199506L.
- However, that doesn't appear to happen, so PACE does it.
-
-* On LynxOS 3.1.0 and Compaq Tru64, several POSIX functions prototypes
- are missing const qualifiers. PACE provides the proper function
- prototypes (and its implementation casts as necessary for
- compatibility).
-
-* LynxOS 3.1.0 has a non-POSIX signal () interface; the handler function
- prototype is not void (*) (int). PACE adapts its interface to the
- POSIX standard interface.
-
diff --git a/PACE/THANKS b/PACE/THANKS
deleted file mode 100644
index 17390e05f6a..00000000000
--- a/PACE/THANKS
+++ /dev/null
@@ -1,17 +0,0 @@
-ACKNOWLEDGEMENTS
-
-Baker, Luther <luther@cs.wustl.edu>
-Brunsch, Darrell <brunsch@ece.uci.edu>
-Gilpin, Andrew <agg1@cs.wustl.edu>
-Guallar, Gonzalo Diethelm <Gonzalo.Diethelm@sonda.com>
-Heitmann, John <jwh1@cs.wustl.edu>
-Hoffert, Joe <joeh@cs.wustl.edu>
-Levine, David <levine@cs.wustl.edu>
-Loftis, Bjorn <bl6394@momail.sbc.com>
-Syyid, Umar <usyyid@hns.com>
- <rbolourian@hns.com>
-Taylor, Braeton <btaylor@hns.com>
-
-Thanks,
-
- The PACE Development Team
diff --git a/PACE/VERSION b/PACE/VERSION
deleted file mode 100644
index cd28107c737..00000000000
--- a/PACE/VERSION
+++ /dev/null
@@ -1,5 +0,0 @@
-This is PACE version 1.0.1.
-
-PACE is developed by the Center for Distributed Object Computing,
-Department of Computer Science, Washington University, St. Louis,
-Missouri, USA.
diff --git a/PACE/docs/ACE_Integration.txt b/PACE/docs/ACE_Integration.txt
deleted file mode 100644
index 8265485564e..00000000000
--- a/PACE/docs/ACE_Integration.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-$Id$
-These are the plans for splitting up ACE_OS and their status for both being
-split up and being PACE enabled.
-
-Finished:
----------
-OS_Dirent
-OS_String
-
-Planned:
---------
-OS_Stdio
-OS_Memory
-OS_Process
-OS_Synch
-OS_Socket
-OS_QoS
diff --git a/PACE/docs/README b/PACE/docs/README
deleted file mode 100644
index 055c8729cdc..00000000000
--- a/PACE/docs/README
+++ /dev/null
@@ -1 +0,0 @@
-$Id$
diff --git a/PACE/docs/www/Introduction/begin.html b/PACE/docs/www/Introduction/begin.html
deleted file mode 100644
index cbcb1a75914..00000000000
--- a/PACE/docs/www/Introduction/begin.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE: Begin</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=begin.html>Beginning...</a></td>
- <td align=center><a href=team.html>The Team</a></td>
- <td align=center><a href=phases.html>Phases</a></td>
- <td align=center><a href=struct.html>Structure</a></td>
- </tr>
- <tr>
- <td align=center><a href=build.html>Building</a></td>
- <td align=center><a href=using.html>Using</a></td>
- <td align=center><a href=change.html>Changing</a></td>
- <td align=center><a href=porting.html>Porting</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p align=center><i>Under Construction!!</i></p>
- <h2>In the beginning...</h2>
-
- <p>Dr. David Levine had the initial idea for PACE.
- ACE+TAO were part of Boeing DII COE project of 2001.
- While reviewing the needs for the project and
- realizing that ACE_OS (ACE' own adaptation layer)
- was quite large and full of potentially avoidable
- dependencies, David across the idea that several
- POSIX compliant platforms could be encapsulated
- into one standard interface, a POSIX interface.</p>
-
- <p>This would potentially allow ACE_OS to port to
- a POSIX API, separated from ACE_OS, which would
- then port correctly between the minor POSIX
- variant operating systems which ACE supported.</p>
-
- <p>This idea quickly developed into the broader
- concept that the POSIX interface library could
- actually replace the ACE_OS layer in the feature
- laden ACE framework library and has since grown
- or will grow to include platforms such as Win32
- and VXWorks (which lack true POSIX compliance).</p>
-
- <p>As you can see, this creates a benefit for ACE,
- namely, PosixACE (PACE) becomes a formal starting
- point to begin reducing the complexity and
- interdependence problems that had creeped into
- ACE over the past 5 years.</p>
-
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:47:17 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/Introduction/build.html b/PACE/docs/www/Introduction/build.html
deleted file mode 100644
index 1a5322315f6..00000000000
--- a/PACE/docs/www/Introduction/build.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE: Build</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=begin.html>Beginning...</a></td>
- <td align=center><a href=team.html>The Team</a></td>
- <td align=center><a href=phases.html>Phases</a></td>
- <td align=center><a href=struct.html>Structure</a></td>
- </tr>
- <tr>
- <td align=center><a href=build.html>Building</a></td>
- <td align=center><a href=using.html>Using</a></td>
- <td align=center><a href=change.html>Changing</a></td>
- <td align=center><a href=porting.html>Porting</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p align=center><i>Under Construction!!</i></p>
- <h2>Building</h2>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:47:08 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/Introduction/change.html b/PACE/docs/www/Introduction/change.html
deleted file mode 100644
index 510cfb7298e..00000000000
--- a/PACE/docs/www/Introduction/change.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE: Changing</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=begin.html>Beginning...</a></td>
- <td align=center><a href=team.html>The Team</a></td>
- <td align=center><a href=phases.html>Phases</a></td>
- <td align=center><a href=struct.html>Structure</a></td>
- </tr>
- <tr>
- <td align=center><a href=build.html>Building</a></td>
- <td align=center><a href=using.html>Using</a></td>
- <td align=center><a href=change.html>Changing</a></td>
- <td align=center><a href=porting.html>Porting</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p align=center><i>Under Construction!!</i></p>
- <h2>Changing</h2>
- <p>Content here :-)</p>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:47:23 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/Introduction/phases.html b/PACE/docs/www/Introduction/phases.html
deleted file mode 100644
index d857ecb94db..00000000000
--- a/PACE/docs/www/Introduction/phases.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE: Phases</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=begin.html>Beginning...</a></td>
- <td align=center><a href=team.html>The Team</a></td>
- <td align=center><a href=phases.html>Phases</a></td>
- <td align=center><a href=struct.html>Structure</a></td>
- </tr>
- <tr>
- <td align=center><a href=build.html>Building</a></td>
- <td align=center><a href=using.html>Using</a></td>
- <td align=center><a href=change.html>Changing</a></td>
- <td align=center><a href=porting.html>Porting</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p align=center><i>Under Construction!!</i></p>
- <h2>Phases...</h2>
- <p>Content here :-)</p>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:47:29 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/Introduction/porting.html b/PACE/docs/www/Introduction/porting.html
deleted file mode 100644
index 3cd3e07a26d..00000000000
--- a/PACE/docs/www/Introduction/porting.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE: Porting</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=begin.html>Beginning...</a></td>
- <td align=center><a href=team.html>The Team</a></td>
- <td align=center><a href=phases.html>Phases</a></td>
- <td align=center><a href=struct.html>Structure</a></td>
- </tr>
- <tr>
- <td align=center><a href=build.html>Building</a></td>
- <td align=center><a href=using.html>Using</a></td>
- <td align=center><a href=change.html>Changing</a></td>
- <td align=center><a href=porting.html>Porting</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p align=center><i>Under Construction!!</i></p>
- <h2>Porting</h2>
- <ul>
- <li><p>SunOS</p></li>
- <li><p>LynxOS</p></li>
- <li><p>Win32</p></li>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:47:33 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/Introduction/struct.html b/PACE/docs/www/Introduction/struct.html
deleted file mode 100644
index e2dec21a619..00000000000
--- a/PACE/docs/www/Introduction/struct.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE: Struct</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=begin.html>Beginning...</a></td>
- <td align=center><a href=team.html>The Team</a></td>
- <td align=center><a href=phases.html>Phases</a></td>
- <td align=center><a href=struct.html>Structure</a></td>
- </tr>
- <tr>
- <td align=center><a href=build.html>Building</a></td>
- <td align=center><a href=using.html>Using</a></td>
- <td align=center><a href=change.html>Changing</a></td>
- <td align=center><a href=porting.html>Porting</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p align=center><i>Under Construction!!</i></p>
- <h2>Structure</h2>
- <p>Pictures of the directory structure here...</p>
-
- <p>Configuration</p>
- <ul>
- <li>There is currently no Autoconf support for
- PACE.</li>
- <li>PACE is currently included in the ACE+TAO
- distribution and upon getting the latest copy
- of ACE+TAO, can be found at<pre>
-ACE_wrappers/PACE.</pre>
- </li>
- <li>Configuration directory:<pre>
-ACE_wrappers/PACE/config</pre>
- </li>
- </ul>
-
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:47:39 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/Introduction/team.html b/PACE/docs/www/Introduction/team.html
deleted file mode 100644
index cbadf1f1533..00000000000
--- a/PACE/docs/www/Introduction/team.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE: Team</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=begin.html>Beginning...</a></td>
- <td align=center><a href=team.html>The Team</a></td>
- <td align=center><a href=phases.html>Phases</a></td>
- <td align=center><a href=struct.html>Structure</a></td>
- </tr>
- <tr>
- <td align=center><a href=build.html>Building</a></td>
- <td align=center><a href=using.html>Using</a></td>
- <td align=center><a href=change.html>Changing</a></td>
- <td align=center><a href=porting.html>Porting</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p align=center><i>Under Construction!!</i></p>
- <h2>The Team...</h2>
- <p>Dr. Levine initially enlisted the help of Luther
- Baker, Joe Hoffert, John Heitmann and Chris Gill
- to help with the PACE effort.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:47:45 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/Introduction/using.html b/PACE/docs/www/Introduction/using.html
deleted file mode 100644
index f8eb5ee58db..00000000000
--- a/PACE/docs/www/Introduction/using.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE: Using</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=begin.html>Beginning...</a></td>
- <td align=center><a href=team.html>The Team</a></td>
- <td align=center><a href=phases.html>Phases</a></td>
- <td align=center><a href=struct.html>Structure</a></td>
- </tr>
- <tr>
- <td align=center><a href=build.html>Building</a></td>
- <td align=center><a href=using.html>Using</a></td>
- <td align=center><a href=change.html>Changing</a></td>
- <td align=center><a href=porting.html>Porting</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=../PACE.html>
- <img alt=Click-Me-To-Begin
- border=0
- src=../Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p align=center><i>Under Construction!!</i></p>
- <h2>Using</h2>
- <p>Content here :-)</p>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:47:51 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/PACE-abstract.html b/PACE/docs/www/PACE-abstract.html
deleted file mode 100644
index 0d87438704b..00000000000
--- a/PACE/docs/www/PACE-abstract.html
+++ /dev/null
@@ -1,152 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE Overview</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=PACE.html>
- <img alt=Click-Me-To-Go-Home
- border=0
- src=Pix/PACE-mini-logo.gif></a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=PACE-overview.html>PACE Overview</a></td>
- <td align=center><a href=PACE-obtain.html>PACE Obtain</a></td>
- <td align=center><a href=PACE-docs.html>PACE Documentation</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=PACE.html>
- <img alt=Click-Me-To-Go-Home
- border=0
- src=Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
-
- <h2>PACE Abstract</h2>
-
- <p>PACE is a POSIX compliant middleware library that was
- written to allow developers to use one common programming
- API to access POSIX semantics across multiple, different
- operating systems, some of which are not currently POSIX
- compliant.
- </p>
-
- <p>PACE is part of the open source ACE+TAO library/framework
- and its implementation was initiated in response to the RT
- DII COE project at BOEING that specifically targeted
- operating systems NT4 SP6, LynxOS 3.1.0a and SunOS 5.8.
- The RT DII COE project wants to build a Mission Application
- Independent programming framework described as an
- architecture, an approach, a collection of reusable software,
- a software infrastructure and a set of guidelines and
- standards. The proposed framework consists of three layers:
- the kernel, the data exchange layer and common Support
- Applications.
- </p>
-
- <p>Such an ideal framework demands a strong, robust
- infrastructure and as such, ACE+TAO was chosen to be part
- of this project. ACE is the TAO developers API, essentially
- making TAO platform independent (or dependent on which platform
- ACE is ported to). As such, ACE provides very high level
- abstractions and key pattern techniques but handles different
- platforms, especially non-POSIX platforms, on a case-by-case
- basis (Win32 and VXWorks are two good examples).
- </p>
-
- <p>PACE was born to abstract support for current and additional
- non-POSIX platforms away from ACE, thus, becoming an API for
- ACE developers to write to. Initial PACE support was limited
- to the previously mentioned DII COE platforms. Funding is now
- available to PACE to more of the platforms ACE supports,
- potentially encapsulating all of the platforms ACE currently
- supports. This will help separate the concerns of the current
- ACE+TAO framework so that:
- </p>
-
- <ul>
- <li>(PACE = low level, operating system middleware)</li>
- <li>(ACE = high level, pattern oriented abstraction API)</li>
- <li>(TAO = open source ORB)</li>
- </ul>
-
- <p>In addition to presenting some of the PACE code, I intend to
- discuss some of the pitfalls of porting middleware and how we
- overcame them in our current work on PACE as well as how they
- should be addressed as PACE continues to grow.
- </p>
-
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:45:22 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/PACE-car.html b/PACE/docs/www/PACE-car.html
deleted file mode 100644
index b33baa006db..00000000000
--- a/PACE/docs/www/PACE-car.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE Car</title>
- </head>
-
- <body bgcolor=#ffffff>
- <table align=center border=6 cellpadding=10>
- <tr>
- <td align=center><a href=PACE.html>
- <img alt=back-to-PACE-page border=0 src=Pix/pace-car1.jpg>
- </a>
- </td>
- </tr>
- </table>
-
- <!-- last modified tag -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center>
-<!-- Created: Fri May 4 20:13:27 CDT 2001 -->
-<!-- hhmts start -->
-Last modified: Sun May 13 14:45:30 CDT 2001
-<!-- hhmts end -->
- </p></font>
-
- </body>
-</html>
diff --git a/PACE/docs/www/PACE-docs.html b/PACE/docs/www/PACE-docs.html
deleted file mode 100644
index 96340a10c4c..00000000000
--- a/PACE/docs/www/PACE-docs.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE Overview</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=PACE.html>
- <img alt=Click-Me-To-Go-Home
- border=0
- src=Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=PACE-overview.html>PACE Overview</a></td>
- <td align=center><a href=PACE-obtain.html>PACE Obtain</a></td>
- <td align=center><a href=PACE-docs.html>PACE Documentation</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=PACE.html>
- <img alt=Click-Me-To-Go-Home
- border=0
- src=Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <h2>PACE Documentation</h2>
- <p>
- <ul>
- <li><p><a href=PACE-abstract.html>
- PACE Abstract</a></p>
- </li>
- <li><p><a href=Introduction/begin.html>
- PACE Introduction</a></p>
- </li>
- </ul>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:45:39 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/PACE-obtain.html b/PACE/docs/www/PACE-obtain.html
deleted file mode 100644
index a21ea02d262..00000000000
--- a/PACE/docs/www/PACE-obtain.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE Overview</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=PACE.html>
- <img alt=Click-Me-To-Go-Home
- border=0
- src=Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=PACE-overview.html>PACE Overview</a></td>
- <td align=center><a href=PACE-obtain.html>PACE Obtain</a></td>
- <td align=center><a href=PACE-docs.html>PACE Documentation</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=PACE.html>
- <img alt=Click-Me-To-Go-Home
- border=0
- src=Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <h2>PACE Obtain</h2>
-
- <p>PACE is currently available as part of the ACE+TAO
- distribution found at
- <ul>
- <li><a href=http://ace.cs.wustl.edu/Download.html>
- http://ace.cs.wustl.edu/Download.html</a>
- </li>
- </ul>
- </p>
-
- <p>As such, the installation instructions are also found
- found on the ACE+TAO distribution web-site
- <ul>
- <li><a href=http://www.cs.wustl.edu/~schmidt/ACE-install.html>
- http://www.cs.wustl.edu/~schmidt/ACE-install.html</a>
- </li>
- </ul>
- </p>
-
- <p>For a other PACE details, (essential PACE design strategy,
- HOW-TO to use PACE) etc... please goto
- <ul>
- <li><a href=PACE-docs.html>PACE Documentation</a></li>
- </ul>
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:45:48 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/PACE-overview.html b/PACE/docs/www/PACE-overview.html
deleted file mode 100644
index 33c8398400b..00000000000
--- a/PACE/docs/www/PACE-overview.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE Overview</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center width=640 border=0 cellpadding=6 cellspacing=0>
- <tr>
- <td><hr></td>
- </tr>
- <tr>
- <td>
- <table border=0 cellspacing=20>
- <tr>
- <td>
- <p align=right>
- <a href=PACE.html>
- <img alt=Click-Me-To-Go-Home
- border=0
- src=Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- <td>
- <table cellspacing=10>
- <tr>
- <td align=center><a href=PACE-overview.html>PACE Overview</a></td>
- <td align=center><a href=PACE-obtain.html>PACE Obtain</a></td>
- <td align=center><a href=PACE-docs.html>PACE Documentation</a></td>
- </tr>
- </table>
- </td>
- <td>
- <p align=right>
- <a href=PACE.html>
- <img alt=Click-Me-To-Go-Home
- border=0
- src=Pix/PACE-mini-logo.gif>
- </a>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <h2>PACE Overview</h2>
- <p>PACE is an OS abstraction layer designed for lightweight
- and/or verified systems.</p>
-
- <p>It offers these benefits:</p>
- <ul>
- <li>
- <p>A strict POSIX.1-like, low-level interface. Its
- interface is "POSIX compatible"; by that we mean as
- close to POSIX.1 as it can be, given that PACE is not
- an operating system. And, to avoid name conflicts with
- OS APIs, all low-level PACE function names have
- the <i><b>pace_</b></i> prefix.
- </p>
- <li>
- <p>The low-level interface is a C file, so that it can be
- used in both C and C++ programs.
- </p>
- <li>
- <p>The low-level interface is partitioned into multiple
- files, one per POSIX.1 section.
- </p>
- </li>
- </ul>
-
- <hr>
-
- <h2>ACE uses PACE</h2>
- <p>The ADAPTIVE Communication Environment
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">(ACE)</a>
- is a freely available, open-source, object-oriented
- <a href="http://www.cs.wustl.edu/~schmidt/courses.html">(OO)</a>
- framework that implements many core design patterns for
- concurrent communication software.
- </p>
-
- <p>ACE is currently built on an
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">
- OS Adaptation Layer</a> that abstracts away specific
- computer architecture / platform dependencies therfore
- allowing ACE to be portable across any platform that the
- adaptation layer supports.
- </p>
-
- <p>ACE also forms the foundation upon which
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a>
- is built. The combination of implementing TAO (adding
- specific functionality to ACE) and the ever shifting sands
- of vendor-specific operating systems has grown the ACE
- adapatation layer from a small core of critial functions to
- over 30,000 lines of interdependent code. The development of
- TAO tied in with requests from our sponsors as well as
- suggestions from the development community at large
- contributed to our decision to re-engineer ACE' adaptation
- layer. PACE is one part of this effort.
- </p>
-
- <hr>
-
- <h2>PACE Objectives</h2>
- <p>Some objectives of this phase of ACE' development (PACE)
- include:
- </p>
- <ul>
- <li>
- <p><b>ACE Developers:</b> Make the low level abstraction
- layer code more maintainable.<br>
- <i>(reduce file size and file interdependence - improve
- code modularity)</i>
- </p>
- </li>
- <li>
- <p><b>ACE Users:</b> Reduce ACE' footprint.<br>
- <i>(this is not a one-step task by any stretch of the
- imagination, but we will begin breaking out the code
- into separate files - allowing developers the
- opportunity option to compile and link specific
- object files to their executables instead of the
- entire ACE adaptation layer library)</i>
- </p>
- </li>
- <li>
- <p><b>ACE Users:</b> Update the adaptation layer to be
- POSIX compliant.<br>
- <i>(see next)</i>
- </p>
- </li>
- <li>
- <p><b>ACE Users:</b> Split the adaptation layer to support
- both a <b>C</b> API (PACE) as well as a set of
- <b>C++</b> wrapper classes (ACE_OS) allowing
- <i><b>both C &amp; C++</b></i> developers to call
- directly into the low level API.<br>
- <i>(encapslate POSIX and system calls in <b>C</b>
- wrappers and re-write the (ACE_OS) adaptation layer to
- transparently call into the POSIX emulation API
- (PACE))</i>
- </p>
- </li>
- <li>
- <p><b>ACE Users:</b> ACE will not change its public
- interface, it will only add low level <b>C</b>
- operations to its repertoire. As is obvious, software
- built on this adaptation layer is portable across the
- various platforms that ACE supports. This provides
- backward compatilibity for people already using the
- current <b>C++</b> (ACE_OS) adaptation layer of
- ACE.</p>
- </li>
- </ul>
-
- <p>This is an open-source project maintained by:
- <ul>
- <li><a href="http://www.cs.wustl.edu/~schmidt">
- Dr. Douglas Schmidt</a> of the
- <a href="http://www.cs.uci.edu/">
- University of California - Irvine</a>
- </li>
- <li><A href="http://www.cs.wustl.edu/~cyron">
- Dr. Ron Cytron</a> of
- <a href="http://www.cs.wustl.edu/">
- Washington University - St. Louis</a>
- </li>
- <li>their respective sister
- <a href="http://www.cs.wustl.edu/~doc">
- <b><font color=red>D</font></b>istributed
- <b><font color=red>O</font></b>bject
- <b><font color=red>C</font></b>omputing</a>
- research groups.
- </li>
- </ul>
- </td>
- </tr>
- <tr>
- <td>
- <hr>
- <p>Additional information regarding
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a>
- and
- <a href="http://www.cs.wustl.edu/~luther/PACE">PACE</a>
- and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A>
- is available as well as a
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-obtain.html">
- full source distribution</a> of TAO + ACE + PACE.
- </p>
-
- <p>If you have any questions, suggestions or contributions
- regarding PACE, please
- <a href="mailto:pace-users@cs.wustl.edu">write</a>
- to us or subscribe to the pace-users mailing list
- (send email to
- <a href="mailto:majordomo@cs.wustl.edu">
- majordomo@cs.wustl.edu</a>
- with <b>"subscribe pace-users"</b> in the <i>body</i>,
- not the subject line ;-)
- </p>
-
- <hr>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
- <!-- Created: Fri May 4 20:13:27 CDT 2001 -->
- <!-- hhmts start -->
-Last modified: Sun May 13 14:45:55 CDT 2001
-<!-- hhmts end -->
- </p></font>
- </td>
- </tr>
- </table>
-
- </body>
-</html>
diff --git a/PACE/docs/www/PACE.html b/PACE/docs/www/PACE.html
deleted file mode 100644
index f4105c86a85..00000000000
--- a/PACE/docs/www/PACE.html
+++ /dev/null
@@ -1,150 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE Front Door</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center cellspacing=0 cellpadding=10 border=0>
-
- <!-- logo -->
- <tr>
- <td valign=middle align=center bgcolor=#dddddd>
- <font face=Verdana,Arial,Helvetica size=-1>
- <p><a href=http://www.cs.wustl.edu/~doc>DOC Group<br>
- Washington University<br>
- St. Louis, Missouri</a></p></font>
- </td>
- <td valign=middle align=center bgcolor=#dddddd>
- <a href="http://www.cs.wustl.edu/~doc">
- <img alt=Wash-U-DOC-Center
- border=0
- src=Pix/doc-logo.jpg></a>
- </td>
- <td valign=middle align=center bgcolor=#dddddd>
- <font face=Verdana,Arial,Helvetica size=-1>
- <p><a href=http://doc.ece.uci.edu/>DOC Group<br>
- University of California<br>
- Irvine, California</a></p></font>
- </td>
- </tr>
-
- <!-- picture -->
- <tr>
- <th align=center><font face=Verdana,Helvetica,Arial size=6>
- POSIX<br>Adaptation<br>Layer<br>(PACE</font>
- <font face=Verdana,Arial,Helvetica size=-2>
- <sup>(TM)</sup></font>
- <font face=Verdana,Helvetica,Arial size=6>)</font>
- </h2></th>
-
- <td>
- <a href=PACE-car.html>
- <img alt=Click-Me-Cool
- border=0
- src=Pix/PACE-red-blue-logo.gif></a>
- <!-- img src="Pix/pace-car1.jpg"--></td>
-
- <th align=center><font face=Verdana,Helvetica,Arial size=6>
- A<br>POSIX<br>Middleware<br>Toolkit</b></font>
- </tr>
-
- <!-- links -->
- <tr>
- <td align=left valign=top bgcolor=#dddddd>
- <font size=+1>
- <dl>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="PACE-overview.html">
- PACE Overview</a></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="PACE-obtain.html">
- PACE Obtain</a></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="PACE-docs.html">
- PACE Docs</a></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html">
- PACE Copyright</a></p>
- </dt>
- </dl></font>
- </td>
- <td align=center valign=top bgcolor=#dddddd>
- <font size=+1><dl>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="http://www.zen.uci.edu">Zen</a> Overview
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">
- ACE</a> Overview
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">
- TAO</a> Overview
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="http://www.cs.wustl.edu/~eea1/JACE.html">Java ACE</a> &amp;
- <a href="http://www.cs.wustl.edu/~jxh/research/">JAWS</a>
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- </dl></font>
- </td>
- <td valign=top bgcolor=#dddddd>
- <font size=+1><dl>
- <dt><p align=right>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-members.html">
- PACE Team Members</a>
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p align=right>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-users.html">
- Who is using PACE?</a>
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p align=right>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-mail.html">
- PACE Mailing List</a>
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p align=right>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-sponsors.html">
- PACE Sponsors</a>
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- </dl></font>
- </td>
- </tr>
- </table>
- </font>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
-<!-- Created: Fri May 4 20:13:27 CDT 2001 -->
-<!-- hhmts start -->
-Last modified: Sun May 13 14:46:04 CDT 2001
-<!-- hhmts end -->
- </p></font>
-
- </body>
-</html>
diff --git a/PACE/docs/www/Pix/PACE-mini-logo.gif b/PACE/docs/www/Pix/PACE-mini-logo.gif
deleted file mode 100644
index e8ad069612e..00000000000
--- a/PACE/docs/www/Pix/PACE-mini-logo.gif
+++ /dev/null
Binary files differ
diff --git a/PACE/docs/www/Pix/PACE-red-blue-logo.gif b/PACE/docs/www/Pix/PACE-red-blue-logo.gif
deleted file mode 100644
index ac6deaacdab..00000000000
--- a/PACE/docs/www/Pix/PACE-red-blue-logo.gif
+++ /dev/null
Binary files differ
diff --git a/PACE/docs/www/Pix/PACE-red-blue-smaller.gif b/PACE/docs/www/Pix/PACE-red-blue-smaller.gif
deleted file mode 100644
index 4065a7a55fd..00000000000
--- a/PACE/docs/www/Pix/PACE-red-blue-smaller.gif
+++ /dev/null
Binary files differ
diff --git a/PACE/docs/www/Pix/ace-tmp.jpg b/PACE/docs/www/Pix/ace-tmp.jpg
deleted file mode 100644
index 883e1b924d3..00000000000
--- a/PACE/docs/www/Pix/ace-tmp.jpg
+++ /dev/null
Binary files differ
diff --git a/PACE/docs/www/Pix/doc-logo.jpg b/PACE/docs/www/Pix/doc-logo.jpg
deleted file mode 100644
index 1d5dcd1c403..00000000000
--- a/PACE/docs/www/Pix/doc-logo.jpg
+++ /dev/null
Binary files differ
diff --git a/PACE/docs/www/Pix/heli-1.jpg b/PACE/docs/www/Pix/heli-1.jpg
deleted file mode 100644
index 678c7675f82..00000000000
--- a/PACE/docs/www/Pix/heli-1.jpg
+++ /dev/null
Binary files differ
diff --git a/PACE/docs/www/Pix/pace-car1.jpg b/PACE/docs/www/Pix/pace-car1.jpg
deleted file mode 100644
index 7e0500cb329..00000000000
--- a/PACE/docs/www/Pix/pace-car1.jpg
+++ /dev/null
Binary files differ
diff --git a/PACE/docs/www/Pix/pace-car2.jpg b/PACE/docs/www/Pix/pace-car2.jpg
deleted file mode 100644
index 23eadce61c3..00000000000
--- a/PACE/docs/www/Pix/pace-car2.jpg
+++ /dev/null
Binary files differ
diff --git a/PACE/docs/www/Pix/pace-car3.jpg b/PACE/docs/www/Pix/pace-car3.jpg
deleted file mode 100644
index 8551fcf7b8e..00000000000
--- a/PACE/docs/www/Pix/pace-car3.jpg
+++ /dev/null
Binary files differ
diff --git a/PACE/docs/www/Pix/redball.gif b/PACE/docs/www/Pix/redball.gif
deleted file mode 100644
index 41b0daed865..00000000000
--- a/PACE/docs/www/Pix/redball.gif
+++ /dev/null
Binary files differ
diff --git a/PACE/docs/www/Pix/stealth.jpg b/PACE/docs/www/Pix/stealth.jpg
deleted file mode 100644
index d93907fe06a..00000000000
--- a/PACE/docs/www/Pix/stealth.jpg
+++ /dev/null
Binary files differ
diff --git a/PACE/docs/www/index.html b/PACE/docs/www/index.html
deleted file mode 100755
index f4105c86a85..00000000000
--- a/PACE/docs/www/index.html
+++ /dev/null
@@ -1,150 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- $Id$ -->
-<html>
- <head>
- <title>PACE Front Door</title>
- </head>
-
- <body text=#000000 vlink=#cc000000 link=#0000ff bgColor=#ffffff>
-
- <table align=center cellspacing=0 cellpadding=10 border=0>
-
- <!-- logo -->
- <tr>
- <td valign=middle align=center bgcolor=#dddddd>
- <font face=Verdana,Arial,Helvetica size=-1>
- <p><a href=http://www.cs.wustl.edu/~doc>DOC Group<br>
- Washington University<br>
- St. Louis, Missouri</a></p></font>
- </td>
- <td valign=middle align=center bgcolor=#dddddd>
- <a href="http://www.cs.wustl.edu/~doc">
- <img alt=Wash-U-DOC-Center
- border=0
- src=Pix/doc-logo.jpg></a>
- </td>
- <td valign=middle align=center bgcolor=#dddddd>
- <font face=Verdana,Arial,Helvetica size=-1>
- <p><a href=http://doc.ece.uci.edu/>DOC Group<br>
- University of California<br>
- Irvine, California</a></p></font>
- </td>
- </tr>
-
- <!-- picture -->
- <tr>
- <th align=center><font face=Verdana,Helvetica,Arial size=6>
- POSIX<br>Adaptation<br>Layer<br>(PACE</font>
- <font face=Verdana,Arial,Helvetica size=-2>
- <sup>(TM)</sup></font>
- <font face=Verdana,Helvetica,Arial size=6>)</font>
- </h2></th>
-
- <td>
- <a href=PACE-car.html>
- <img alt=Click-Me-Cool
- border=0
- src=Pix/PACE-red-blue-logo.gif></a>
- <!-- img src="Pix/pace-car1.jpg"--></td>
-
- <th align=center><font face=Verdana,Helvetica,Arial size=6>
- A<br>POSIX<br>Middleware<br>Toolkit</b></font>
- </tr>
-
- <!-- links -->
- <tr>
- <td align=left valign=top bgcolor=#dddddd>
- <font size=+1>
- <dl>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="PACE-overview.html">
- PACE Overview</a></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="PACE-obtain.html">
- PACE Obtain</a></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="PACE-docs.html">
- PACE Docs</a></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-copying.html">
- PACE Copyright</a></p>
- </dt>
- </dl></font>
- </td>
- <td align=center valign=top bgcolor=#dddddd>
- <font size=+1><dl>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="http://www.zen.uci.edu">Zen</a> Overview
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">
- ACE</a> Overview
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">
- TAO</a> Overview
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p>
- <img alt=o src=Pix/redball.gif>
- <a href="http://www.cs.wustl.edu/~eea1/JACE.html">Java ACE</a> &amp;
- <a href="http://www.cs.wustl.edu/~jxh/research/">JAWS</a>
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- </dl></font>
- </td>
- <td valign=top bgcolor=#dddddd>
- <font size=+1><dl>
- <dt><p align=right>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-members.html">
- PACE Team Members</a>
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p align=right>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-users.html">
- Who is using PACE?</a>
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p align=right>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-mail.html">
- PACE Mailing List</a>
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- <dt><p align=right>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-sponsors.html">
- PACE Sponsors</a>
- <img alt=o src=Pix/redball.gif></p>
- </dt>
- </dl></font>
- </td>
- </tr>
- </table>
- </font>
-
- <!-- email -->
- <font face=Verdana,Arial,Helvetica size=2>
- <p align=center><a href="mailto:doc_group@cs.wustl.edu">
- Doc Group</a></p>
-
- <!-- last modified tag -->
- <p align=center>
-<!-- Created: Fri May 4 20:13:27 CDT 2001 -->
-<!-- hhmts start -->
-Last modified: Sun May 13 14:46:04 CDT 2001
-<!-- hhmts end -->
- </p></font>
-
- </body>
-</html>
diff --git a/PACE/examples/README b/PACE/examples/README
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/PACE/examples/README
+++ /dev/null
diff --git a/PACE/include/makeinclude/rules.common.GNU b/PACE/include/makeinclude/rules.common.GNU
deleted file mode 100644
index 464d476ea79..00000000000
--- a/PACE/include/makeinclude/rules.common.GNU
+++ /dev/null
@@ -1,121 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Common rules for building PACE targets
-#----------------------------------------------------------------------------
-
-ifndef PACE_ROOT
- PACE_ROOT = $(ACE_ROOT)/PACE
-endif # ! PACE_ROOT
-
-VPATH+=config:sys
-
-ifeq ($(PACE_SYSNAME),)
- PACE_SYSNAME = $(shell uname -s)
-endif # ! PACE_SYSNAME
-
-ifeq ($(PACE_SYSVER),)
- PACE_SYSVER = $(shell uname -r)
-endif # ! PACE_SYSVER
-
-ifeq ($(PACE_SYSNAME),Linux)
- PACE_SYSVER := $(shell echo $(PACE_SYSVER) | \
- perl -ne 'printf "%lu\n", hex sprintf "%02X%02X%02x", split /\./')
-else
- PACE_SYSVER := $(shell echo $(PACE_SYSVER) | sed 's/\.//g')
-endif # PACE_SYSNAME == Linux
-
-# List of platforms and uname -s values
-# =====================================
-# Solaris SunOS
-# NT "NT" (uname not supported)
-# LynxOS LynxOS
-# VxWorks "VxWorks" (strictly cross-compiled)
-# Linux Linux
-# pSOS "pSOS" (strictly cross-compiled)
-# Chorus "Chorus" (strictly cross-compiled)
-# QNX Neutrino "Neutrino" (strictly cross-compiled)
-# OSF/1 OSF1
-# IRIX (64 bit) IRIX64
-# IRIX (32 bit) IRIX (unconfirmed)
-# HPUX HP-UX
-# AIX AIX
-
-ifeq ($(PACE_SYSNAME),SunOS)
- # Hard code special cases for SunOS 5.6, 5.7, and 5.8 since
- # we need a 3 digit version number for comparison purposes.
- ifeq ($(PACE_SYSVER),58)
- PACE_SYSVER := $(PACE_SYSVER)0
- endif # PACE_SYSVER == 58
- ifeq ($(PACE_SYSVER),57)
- PACE_SYSVER := $(PACE_SYSVER)0
- endif # PACE_SYSVER == 57
- ifeq ($(PACE_SYSVER),56)
- PACE_SYSVER := $(PACE_SYSVER)0
- endif # PACE_SYSVER == 56
- VPATH :=.:posix:$(VPATH)
- CFLAGS += -DPACE_SUNOS=$(PACE_SYSVER) -D_REENTRANT
- ifeq ($(threads),1)
- CFLAGS += -D_POSIX_PTHREAD_SEMANTICS
- endif # ! ($(threads),0)
-endif
-
-ifeq ($(PACE_SYSNAME),NT)
- VPATH :=.:win32:$(VPATH)
- CFLAGS += -DPACE_WIN32=$(PACE_SYSVER)
-endif
-
-ifeq ($(PACE_SYSNAME),LynxOS)
- VPATH :=.:posix:$(VPATH)
- CFLAGS += -DPACE_LYNXOS=$(PACE_SYSVER)
- ifeq ($(PACE_SYSVER),0x300)
- CFLAGS += -D_POSIX_THREADS_CALLS
- endif # ($(PACE_SYSVER),0x300)
-endif
-
-ifeq ($(PACE_SYSNAME),OSF1)
- VPATH :=.:posix:$(VPATH)
- CFLAGS += -DPACE_OSF1=$(PACE_SYSVER) -D_DEC_XPG
-endif
-
-ifeq ($(PACE_SYSNAME),VxWorks)
- VPATH :=.:vxworks:$(VPATH)
- CFLAGS += -DPACE_VXWORKS=$(PACE_SYSVER)
-endif
-
-ifeq ($(PACE_SYSNAME),Linux)
- VPATH :=.:posix:$(VPATH)
- emulation=1
- CFLAGS += -DPACE_LINUX=$(PACE_SYSVER)
-endif
-
-ifeq ($(PACE_SYSNAME),AIX)
- VPATH := .:posix:$(VPATH)
- CFLAGS += -DPACE_HAS_POSIX -D_REENTRANT
-endif
-
-ifeq ($(PACE_SYSNAME),HP-UX)
- VPATH := .:posix:$(VPATH)
- CFLAGS += -DPACE_HAS_POSIX -D_REENTRANT
-endif
-
-ifeq ($(PACE_SYSNAME),QNX)
- VPATH := .:posix:$(VPATH)
- CFLAGS += -DPACE_QNX=$(PACE_SYSVER) -D_REENTRANT
-endif
-
-ifeq ($(debug),)
- ifeq (,$(findstring $(CFLAGS),$(CCFLAGS)))
- CCFLAGS += -DPACE_NDEBUG
- else
- CFLAGS += -DPACE_NDEBUG
- endif
-endif # debug
-
-ifeq ($(pace_tracing),1)
- ifeq (,$(findstring $(CFLAGS),$(CCFLAGS)))
- CCFLAGS += -DPACE_TRACING
- else
- CFLAGS += -DPACE_TRACING
- endif
-endif # debug
diff --git a/PACE/pace++/README b/PACE/pace++/README
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/PACE/pace++/README
+++ /dev/null
diff --git a/PACE/pace/Makefile b/PACE/pace/Makefile
deleted file mode 100644
index c29a22d1cdc..00000000000
--- a/PACE/pace/Makefile
+++ /dev/null
@@ -1,498 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the PACE/pace C library release
-#----------------------------------------------------------------------------
-
-MAKEFILE = Makefile
-LIB = libPACE.a
-SHLIB = libPACE.$(SOEXT)
-
-PACE_FILES = \
- aio \
- assert \
- ctype \
- dirent \
- fcntl \
- grp \
- locale \
- math \
- mqueue \
- pthread \
- pwd \
- sched \
- semaphore \
- setjmp \
- signal \
- stdio \
- stdlib \
- string \
- termios \
- time \
- unistd \
- utime
-CONFIG_FILES =
-SYS_FILES = \
- sys/mman \
- sys/socket \
- sys/stat \
- sys/times \
- sys/utsname \
- sys/wait
-
-# POSIX_SOCKET Unit of Functionality
-# pace_accept is in sys/socket.h
-# pace_bind is in sys/socket.h
-# pace_connect is in sys/socket.h
-# pace_getpeername is in sys/socket.h
-# pace_getsockname is in sys/socket.h
-# pace_getsockopt is in sys/socket.h
-# pace_setsockopt is in sys/socket.h
-# pace_isfdtype is in sys/socket.h
-# pace_listen is in sys/socket.h
-# pace_recv is in sys/socket.h
-# pace_recvfrom is in sys/socket.h
-# pace_rcvmsg is in sys/socket.h
-# pace_send is in sys/socket.h
-# pace_sendto is in sys/socket.h
-# pace_sendmsg is in sys/socket.h
-# pace_shutdown is in sys/socket.h
-# pace_socket is in sys/socket.h
-# pace_socketpair is in sys/socket.h
-POSIX_SOCK_FILES = \
- sys/socket
-
-# POSIX_SINGLE_PROCESS Unit of Functionality (POSIX.1)
-# pace_sysconf is in unistd.h;
-# pace_time is in time.h;
-# pace_uname is in sys/ustname.h
-POSIX_SP_FILES = \
- unistd \
- time \
- sys/utsname
-
-# POSIX_MULTI_PROCESS Unit of Functionality (POSIX.1)
-# pace__exit is in unistd.h
-# pace_assert is in assert.h
-# pace_execl, pace_execle, pace_execlp, pace_execv, pace_execve, pace_execvp
-# are in unistd.h;
-# pace_exit is in stdlib.h;
-# pace_fork is in unistd.h;
-# pace_getenv is in stdlib.h;
-# pace_getpid, pace_getppid are in unistd.h;
-# pace_setlocale is in locale.h;
-# pace_sleep is in unistd.h;
-# pace_times is in sys/times.h;
-# pace_wait, pace_waitpid are in wait.h;
-POSIX_MP_FILES = \
- unistd \
- assert \
- stdlib \
- locale \
- sys/times \
- sys/wait
-
-# POSIX_SIGNALS Unit of Functionality (POSIX.1)
-# pace_abort is in stdlib.h;
-# pace_alarm is in unistd.h;
-# pace_kill is in signal.h;
-# pace_pause is in unistd.h;
-# pace_sigaction, pace_sigaddset, pace_sigdelset, pace_sigemptyset,
-# pace_sigfillset, pace_sigismember are in signal.h;
-# pace_siglongjmp is in setjmp.h;
-# pace_sigpending, pace_sigprocmask are in signal.h;
-# pace_sigsetjmp is in setjmp.h;
-# pace_sigsuspend is in signal.h;
-POSIX_SIG_FILES = \
- stdlib \
- unistd \
- signal \
- setjmp
-
-# POSIX_USER_GROUPS Unit of Functionality (POSIX.1)
-# pace_getegid, pace_geteuid, pace_getgid, pace_getgroups, pace_getlogin,
-# pace_getpgrp, pace_getuid, pace_setgid, pace_setsid, pace_setuid are in
-# unistd.h;
-POSIX_UG_FILES = \
- unistd
-
-# POSIX_FILE_SYSTEM Unit of Functionality (POSIX.1)
-# pace_access, pace_chdir are in unistd.h;
-# pace_closedir is in dirent.h;
-# pace_creat is in fcntl.h;
-# pace_fpathconf is in unistd.h;
-# pace_fstat is in sys/stat.h
-# pace_getcwd, pace_link are in unistd.h
-# pace_mkdir is in sys/stat.h
-# pace_opendir is in dirent.h;
-# pace_pathconf is in unistd.h;
-# pace_readdir is in dirent.h;
-# pace_remove, pace_rename are in stdio.h;
-# pace_rewinddir is in dirent.h;
-# pace_rmdir is in unistd.h;
-# pace_stat is in sys/stat.h;
-# pace_tmpfile, pace_tmpnam are in stdio.h;
-# pace_unlink is in unistd.h;
-# pace_utime is in utime.h;
-POSIX_FS_FILES = \
- unistd \
- dirent \
- fcntl \
- sys/stat \
- stdio \
- utime
-
-# POSIX_FILE_ATTRIBUTES Unit of Functionality (POSIX.1)
-# pace_chmod is in sys/stat.h;
-# pace_chown is in unistd.h;
-# pace_umask is in sys/stat.h;
-POSIX_FA_FILES = \
- sys/stat \
- unistd
-
-# POSIX_FIFO Unit of Functionality (POSIX.1)
-# pace_mkfifo is in sys/stat.h;
-POSIX_F_FILES = \
- sys/stat
-
-# POSIX_DEVICE_IO Unit of Functionality (POSIX.1)
-# pace_clearerr is in stdio.h;
-# pace_close is in unistd.h;
-# pace_fclose, pace_fdopen, pace_feof, pace_ferror are in stdio.h;
-# pace_fflush, pace_fgetc, pace_fgets, pace_fileno are in stdio.h;
-# pace_fopen, pace_fprintf, pace_fputc, pace_fputs, pace_fread, pace_freopen,
-# pace_fscanf, pace_fwrite, pace_getc, pace_getchar, pace_gets are in stdio.h;
-# pace_open is in fcntl.h;
-# pace_perror, pace_printf, pace_putc, pace_putchar, pace_puts are in stdio.h;
-# pace_read is in unistd.h;
-# pace_scanf is in stdio.h;
-# pace_setbuf, pace_sprintf, pace_sscanf, pace_ungetc are in stdio.h;
-# pace_write are in unistd.h;
-POSIX_DI_FILES = \
- stdio \
- unistd \
- fcntl
-
-# POSIX_FD_MGMT Unit of Functionality (POSIX.1)
-# pace_dup, pace_dup2 are in unistd.h;
-# pace_fcntl is in fcntl.h;
-# pace_fseek, pace_ftell are in stdio.h;
-# pace_lseek in unistd.h;
-# pace_rewind is in stdio.h;
-POSIX_FM_FILES = \
- unistd \
- fcntl \
- stdio
-
-# POSIX_PIPE Unit of Functionality (POSIX.1)
-# pace_pipe is in unistd.h;
-POSIX_P_FILES = \
- unistd
-
-# POSIX_DEVICE_SPECIFIC Unit of Functionality (POSIX.1)
-# pace_cfgetispeed, pace_cfgetospeed, pace_cfsetispeed, pace_cfsetospeed are
-# in termios.h;
-# pace_ctermid is in stdio.h;
-# pace_isatty is in unistd.h;
-# pace_tcdrain, pace_tcflow, pace_tcflush, pace_tcgetattr, pace_tcsendbreak,
-# pace_tcsetattr are in termios.h;
-# pace_ttyname is in unistd.h;
-POSIX_DS_FILES = \
- termios \
- stdio \
- unistd
-
-# POSIX_SYSTEM_DATABASE Unit of Functionality (POSIX.1)
-# pace_getgrgid, pace_getgrnam, pace_getpwnam, pace_getpwuid are in grp.h;
-POSIX_SD_FILES = \
- grp
-
-# POSIX_C_LANG_SUPPORT Unit of Functionality (POSIX.1)
-# Character handling functions (e.g., isalnum, toupper) are in ctype.h;
-# Mathematics functions (e.g., acos, tanh) are in math.h;
-# Non-local jump functions (i.e., longjmp, setjmp) are in setjmp.h;
-# General utility functions (i.e., abs, srand) are in stdlib.h;
-# String handling functions (i.e., strcat, strtok) are in string.h;
-# Date and Time functions (i.e., asctime, tzset) are in time.h;
-POSIX_CLS_FILES = \
- ctype \
- math \
- setjmp \
- stdlib \
- time
-
-# _POSIX_JOB_CONTROL Unit of Functionality (POSIX.1)
-# pace_setpgid is in unistd.h;
-# pace_tcgetpgrp, pace_tcsetpgrp are in termios.h
-_POSIX_JC_FILES = \
- unistd \
- termios
-
-# POSIX_USER_GROUPS_R Unit of Functionality (POSIX.1)
-# pace_getlogin_r is in unistd.h;
-POSIX_UGR_FILES = \
- unistd
-
-# POSIX_FILE_LOCKING Unit of Functionality (POSIX.1)
-# pace_flockfile, pace_ftrylockfile, pace_funlockfile, pace_getc_unlocked,
-# pace_getchar_unlocked, pace_putc_unlocked, pace_putchar_unlocked are in
-# stdio.h;
-POSIX_FL_FILES = \
- stdio
-
-# POSIX_C_LANG_SUPPORT_R Unit of Functionality (POSIX.1)
-# pace_asctime_r, pace_ctime_r, pace_gmtime_r, pace_localtime_r are in time.h;
-# pace_rand_r is in stdlib.h;
-# pace_strtok_r is in string.h;
-# pace_readdir_r is in dirent.h;
-POSIX_CLSR_FILES = \
- time \
- stdlib \
- string \
- dirent
-
-# POSIX_SYSTEM_DATABASE_R Unit of Functionality (POSIX.1)
-# pace_getgrgid_r, pace_getgrnam_r are in grp.h;
-# pace_getpwnam_r, pace_getpwuid_r are in pwd.h;
-POSIX_SDR_FILES = \
- grp \
- pwd
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-
-INCLDIRS += -I$(PACE_ROOT)
-
-####
-#### Build customization.
-####
-ifndef PACE_COMPONENTS
- #### Do we want PACE subsets as below? If so, we need to add the
- #### documentation referenced below as well.
- #### Please see docs/PACE-subsets.html for documentation. ??
- PACE_COMPONENTS = \
- Pace \
- Config \
- Sys
- CFLAGS += -DPACE_HAS_ALL_POSIX_FUNCS
-endif # PACE_COMPONENTS
-
-ifeq (FOR_ACE,$(PACE_COMPONENTS))
- #### These PACE components are necessary to support ACE.
- override PACE_COMPONENTS = \
- Pace \
- Config \
- Sys
- CFLAGS += -DPACE_HAS_ALL_POSIX_FUNCS
-else # ! FOR_ACE
- #### Is there anything in PACE that ACE doesn't need? Probably not
-endif # ! FOR_ACE
-
-####
-#### PACE_COMPONENTS support.
-####
-ifneq (,$(findstring Pace,$(PACE_COMPONENTS)))
- FILES += $(PACE_FILES)
-endif # Pace
-
-ifneq (,$(findstring Config,$(PACE_COMPONENTS)))
- FILES += $(CONFIG_FILES)
-endif # Config
-
-ifneq (,$(findstring Sys,$(PACE_COMPONENTS)))
- FILES += $(SYS_FILES)
-endif # Sys
-
-ifneq (,$(findstring Posix_sp,$(PACE_COMPONENTS)))
- FILES = $(POSIX_SP_FILES)
- LIB = libPACE_SP.a
- SHLIB = libPACE_SP.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_SP_UOF
-endif # Single Process
-
-ifneq (,$(findstring Posix_mp,$(PACE_COMPONENTS)))
- FILES = $(POSIX_MP_FILES)
- LIB = libPACE_MP.a
- SHLIB = libPACE_MP.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_MP_UOF
-endif # Multi Process
-
-ifneq (,$(findstring Posix_sig,$(PACE_COMPONENTS)))
- FILES = $(POSIX_SIG_FILES)
- LIB = libPACE_S.a
- SHLIB = libPACE_S.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_SIG_UOF
-endif # Signals
-
-ifneq (,$(findstring Posix_usg,$(PACE_COMPONENTS)))
- FILES = $(POSIX_UG_FILES)
- LIB = libPACE_UG.a
- SHLIB = libPACE_UG.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_UG_UOF
-endif # User Groups
-
-ifneq (,$(findstring Posix_fs,$(PACE_COMPONENTS)))
- FILES = $(POSIX_FS_FILES)
- LIB = libPACE_FS.a
- SHLIB = libPACE_FS.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_FS_UOF
-endif # File System
-
-ifneq (,$(findstring Posix_fa,$(PACE_COMPONENTS)))
- FILES = $(POSIX_FA_FILES)
- LIB = libPACE_FA.a
- SHLIB = libPACE_FA.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_FA_UOF
-endif # File Attributes
-
-ifneq (,$(findstring Posix_fif,$(PACE_COMPONENTS)))
- FILES = $(POSIX_F_FILES)
- LIB = libPACE_F.a
- SHLIB = libPACE_F.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_F_UOF
-endif # Fifo
-
-ifneq (,$(findstring Posix_di,$(PACE_COMPONENTS)))
- FILES = $(POSIX_DI_FILES)
- LIB = libPACE_DI.a
- SHLIB = libPACE_DI.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_DI_UOF
-endif # Device Input/Output
-
-ifneq (,$(findstring Posix_fm,$(PACE_COMPONENTS)))
- FILES = $(POSIX_FM_FILES)
- LIB = libPACE_FM.a
- SHLIB = libPACE_FM.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_FM_UOF
-endif # File Descriptor Management
-
-ifneq (,$(findstring Posix_p,$(PACE_COMPONENTS)))
- FILES = $(POSIX_P_FILES)
- LIB = libPACE_P.a
- SHLIB = libPACE_P.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_P_UOF
-endif # Pipe
-
-ifneq (,$(findstring Posix_ds,$(PACE_COMPONENTS)))
- FILES = $(POSIX_DS_FILES)
- LIB = libPACE_DS.a
- SHLIB = libPACE_DS.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_DS_UOF
-endif # Device Specific
-
-ifneq (,$(findstring Posix_sd,$(PACE_COMPONENTS)))
- FILES = $(POSIX_SD_FILES)
- LIB = libPACE_SD.a
- SHLIB = libPACE_SD.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_SD_UOF
-endif # System Database
-
-ifneq (,$(findstring Posix_cls,$(PACE_COMPONENTS)))
- FILES = $(POSIX_CLS_FILES)
- LIB = libPACE_CLS.a
- SHLIB = libPACE_CLS.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_CLS_UOF
-endif # C Language Support
-
-ifneq (,$(findstring Posix_jc,$(PACE_COMPONENTS)))
- FILES = $(_POSIX_JC_FILES)
- LIB = libPACE_JC.a
- SHLIB = libPACE_JC.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_JC_UOF
-endif # Job Control
-
-ifneq (,$(findstring Posix_ugr,$(PACE_COMPONENTS)))
- FILES = $(POSIX_UGR_FILES)
- LIB = libPACE_UGR.a
- SHLIB = libPACE_UGR.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_UGR_UOF
-endif # User Groups - Reentrant
-
-ifneq (,$(findstring Posix_fl,$(PACE_COMPONENTS)))
- FILES = $(POSIX_FL_FILES)
- LIB = libPACE_FL.a
- SHLIB = libPACE_FL.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_FL_UOF
-endif # File Locking
-
-ifneq (,$(findstring Posix_clr,$(PACE_COMPONENTS)))
- FILES = $(POSIX_CLSR_FILES)
- LIB = libPACE_CLSR.a
- SHLIB = libPACE_CLSR.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_CLSR_UOF
-endif # C Language Support - Reentrant
-
-ifneq (,$(findstring Posix_sr,$(PACE_COMPONENTS)))
- FILES = $(POSIX_SDR_FILES)
- LIB = libPACE_SDR.a
- SHLIB = libPACE_SDR.$(SOEXT)
- CFLAGS += -DPACE_HAS_POSIX_SDR_UOF
-endif # System Database - Reentrant
-
-LSRC = $(addsuffix .cpp,$(FILES))
-
-BUILD += PACE_COMPONENTS
-
-#### Setting PACELIB to null allows it to be used for building shared
-#### libraries, including libPACE.$(SOEXT,) on certain platforms.
-PACELIB =
-
-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
-#### Disable installs in this ($(ACE_ROOT)/pace/pace) directory, because this
-#### is the (default) destination of installs anyways. This line prevents
-#### creation of a link from the PACE library to itself when the build of
-#### the PACE library fails.
-INSTALL =
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-ifndef PACE_ROOT
- PACE_ROOT = $(ACE_ROOT)/PACE
-endif # ! PACE_ROOT
-
-include $(PACE_ROOT)/include/makeinclude/rules.common.GNU
-
-ifndef static_libs_only
- ifndef shared_libs_only
- static_libs_only = 1
- endif # ! shared_libs_only
-endif # ! static_libs_only
-
-# If we are inlining the PACE functions then we need to define
-# PACE_HAS_INLINE. Inlining is the default.
-ifndef inline
- CFLAGS += -DPACE_HAS_INLINE
-endif # ! inline
-
-ifeq (1,$(inline))
- CFLAGS += -DPACE_HAS_INLINE
-endif # inline
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-.PHONY: PACE_COMPONENTS
-PACE_COMPONENTS:
- @sh $(ACE_ROOT)/bin/ace_components --pace --set ' $(PACE_COMPONENTS) '
-
-realclean:
- @sh $(ACE_ROOT)/bin/ace_components --pace --remove
-
-# AIX template compilation speedup hack
-# Not added for PACE - can always be added later if needed
-
-#----------------------------------------------------------------------------
-# 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/PACE/pace/Makefile.am b/PACE/pace/Makefile.am
deleted file mode 100644
index 65d64169da5..00000000000
--- a/PACE/pace/Makefile.am
+++ /dev/null
@@ -1,64 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for the PACE C library
-##
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-SUBDIRS = \
- @SUBDIRS@
-
-DESTDIRS = \
- config \
- emulation \
- man \
- posix \
- sys \
- vxworks \
- win32
-
-PACE_LIB = @PACE_LIB@
-
-lib_LTLIBRARIES = libPACE.la
-libPACE_la_LIBADD = $(PACE_LIB)
-
-pkginclude_HEADERS = \
- aio.h \
- assert.h \
- ctype.h \
- dirent.h \
- errno.h \
- fcntl.h \
- grp.h \
- limits.h \
- locale.h \
- math.h \
- mqueue.h \
- pthread.h \
- pwd.h \
- sched.h \
- semaphore.h \
- setjmp.h \
- signal.h \
- stddef.h \
- stdio.h \
- stdlib.h \
- string.h \
- termios.h \
- time.h \
- unistd.h \
- utime.h
-
-## Clean up some additional files/directories possibly created during
-## the configure script tests.
-clean-local:
- -rm -f *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core
- -rm -rf ptrepository Templates.DB gcctemp.c gcctemp so_locations
diff --git a/PACE/pace/aio.h b/PACE/pace/aio.h
deleted file mode 100644
index f9d8be32a3c..00000000000
--- a/PACE/pace/aio.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/aio.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_AIO_H
-#define PACE_AIO_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/aio.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/aio.h"
-#elif (PACE_WIN32)
-# include "pace/win32/aio.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function aio_cancel.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), section 6.7.7.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_aio_cancel (PACE_HANDLE fildes,
- pace_aiocb * aiocb);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function aio_error.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), section 6.7.5.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_aio_error (const pace_aiocb * aiocbp);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function aio_fsync.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), section 6.7.9.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_aio_fsync (int op, pace_aiocb * aiocbp);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function aio_read.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), section 6.7.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_aio_read (pace_aiocb * aiocbp);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function aio_return.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), section 6.7.6.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_aio_return (pace_aiocb * aiocbp);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function aio_suspend.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), section 6.7.8.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_aio_suspend(const pace_aiocb * const list[],
- int nent,
- const pace_timespec * timeout);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function aio_write.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), section 6.7.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_aio_write (pace_aiocb * aiocbp);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function lio_listio.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), section 6.7.4.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_lio_listio (int mode,
- pace_aiocb * const list[],
- int nent,
- pace_sigevent * sig);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/aio.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/aio.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/aio.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_AIO_H */
diff --git a/PACE/pace/assert.h b/PACE/pace/assert.h
deleted file mode 100644
index 00c5dff1180..00000000000
--- a/PACE/pace/assert.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* $Id$ -*- C -*-
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/assert.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#ifndef PACE_ASSERT_H
-#define PACE_ASSERT_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/assert.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/assert.h"
-#elif (PACE_WIN32)
-# include "pace/win32/assert.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX macro assert.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
-
- Use a macro because assert uses __FILE__ and __LINE__, which
- would not be useful with an inline function.
- */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-#if defined (PACE_NDEBUG)
-# define pace_assert(X)
-#else /* ! PACE_NDEBUG */
-# define pace_assert(X) assert (X)
-#endif /* ! PACE_NDEBUG */
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/assert.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/assert.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/assert.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_ASSERT_H */
diff --git a/PACE/pace/config/compiler.h b/PACE/pace/config/compiler.h
deleted file mode 100644
index 92e25c97a05..00000000000
--- a/PACE/pace/config/compiler.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/config/compiler.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_CONFIG_COMPILER_H
-#define PACE_CONFIG_COMPILER_H
-
-#if defined (__cplusplus)
-# define PACE_HAS_CPLUSPLUS __cplusplus
-# if defined (PACE_HAS_INLINE)
-# define PACE_INLINE inline
-# else
-# define PACE_INLINE
-# endif /* ! PACE_HAS_INLINE */
-#else /* ! __cplusplus */
-/* If PACE_HAS_INLINE is defined then we need the PACE functions to be
- * static. Otherwise, we want PACE_INLINE to be defined as nothing.
- */
-# if defined (PACE_HAS_INLINE)
-# define PACE_INLINE static
-# else
-# define PACE_INLINE
-# endif /* ! PACE_HAS_INLINE */
-#endif /* ! __cplusplus */
-
-#if defined (PACE_HAS_INLINE) && defined (__GNUC__) && !(PACE_LYNXOS)
-# define PACE_BROKEN_INLINE inline
-#else
-# define PACE_BROKEN_INLINE
-#endif /* PACE_HAS_INLINE */
-
-/* ============================================================================
- * Compiler Silencing macros
- *
- * Some compilers complain about parameters that are not used. This macro
- * should keep them quiet.
- * ============================================================================
- */
-
-#if defined (ghs) || \
- defined (__GNUC__) || \
- defined (__hpux) || \
- defined (__sgi) || \
- defined (__DECCXX) || \
- defined (__KCC) || \
- defined (__rational__) \
- || (__USLC__)
-/* Some compilers complain about "statement with no effect" with (a).
- * This eliminates the warnings, and no code is generated for the null
- * conditional statement. NOTE: that may only be true if -O is enabled,
- * such as with GreenHills (ghs) 1.8.8.
- */
-# define PACE_UNUSED_ARG(a) {if (&a) { /* null */ }}
-#else /* ! ghs || __GNUC__ || ..... */
-# define PACE_UNUSED_ARG(a) (a)
-#endif /* ! ghs || __GNUC__ || ..... */
-
-#endif /* PACE_CONFIG_COMPILER_H */
diff --git a/PACE/pace/config/config.h b/PACE/pace/config/config.h
deleted file mode 100644
index fb0d0b4c760..00000000000
--- a/PACE/pace/config/config.h
+++ /dev/null
@@ -1,221 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/config/config.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_CONFIG_CONFIG_H
-#define PACE_CONFIG_CONFIG_H
-
-#if !defined (PACE_HAS_POSIX_C_SOURCE)
-# if defined (_POSIX_C_SOURCE)
-# define PACE_HAS_POSIX_C_SOURCE _POSIX_C_SOURCE
-# endif /* _POSIX_C_SOURCE */
-#endif /* ! PACE_HAS_POSIX_C_SOURCE */
-
-#if !defined (PACE_HAS_EXTENSIONS)
-# if defined (__EXTENSIONS__)
-# define PACE_HAS_EXTENSIONS __EXTENSIONS__
-# endif /* __EXTENSIONS__ */
-#endif /* ! PACE_HAS_EXTENSIONS */
-
-#if !defined (PACE_HAS_REENTRANT)
-# if defined (PACE_LINUX)
-# ifdef __USE_POSIX
-# define PACE_HAS_REENTRANT 1
-# else /* ! __USE_POSIX */
-# endif /* ! __USE_POSIX */
-# elif defined (PACE_LYNXOS)
-/* LynxOS uses _POSIX_REENTRANT_FUNCTIONS, but not _REENTRANT */
-# elif defined (PACE_SUNOS)
-# if defined (__EXTENSIONS__) || defined (_REENTRANT) || \
- (_POSIX_C_SOURCE - 0 >= 199506L)
-# define PACE_HAS_REENTRANT 1
-# else /* ! __EXTENSIONS__ && ! _REENTRANT && _POSIX_C_SOURCE < 199506L */
-# endif /* ! __EXTENSIONS__ && ! _REENTRANT && _POSIX_C_SOURCE < 199506L */
-# else /* other POSIX */
-# define PACE_HAS_REENTRANT 1
-# endif /* other POSIX */
-#endif /* ! PACE_HAS_REENTRANT */
-
-
-#if !defined (PACE_HAS_POSIX_PTHREAD_SEMANTICS)
-# if defined (_POSIX_PTHREAD_SEMANTICS)
-# define PACE_HAS_POSIX_PTHREAD_SEMANTICS _POSIX_PTHREAD_SEMANTICS
-# endif /* _POSIX_PTHREAD_SEMANTICS */
-#endif /* ! PACE_HAS_POSIX_PTHREAD_SEMANTICS */
-
-
-#if PACE_HAS_POSIX == PACE_LYNXOS
-# define PACE_NONCONST_ARG_CAST(TYPE) (TYPE)
-# define PACE_VOIDSTARTSTAR_ARG_CAST(TYPE) (TYPE)
-# define PACE_AIO_SUSPEND_LIST_ARG_CAST (struct aiocb **)
-# define PACE_THR_ENTRY_CAST
-#elif PACE_HAS_POSIX == DIGITAL_UNIX
-# define PACE_NONCONST_ARG_CAST(TYPE) (TYPE)
-# define PACE_VOIDSTARTSTAR_ARG_CAST(TYPE)
-# define PACE_AIO_SUSPEND_LIST_ARG_CAST (const struct aiocb **)
-# define PACE_THR_ENTRY_CAST
-#elif PACE_LACKS_POSIX == PACE_VXWORKS
-# define PACE_NONCONST_ARG_CAST(TYPE) (TYPE)
-# define PACE_VOIDSTARTSTAR_ARG_CAST(TYPE)
-# define PACE_AIO_SUSPEND_LIST_ARG_CAST (const struct aiocb **)
-# define PACE_THR_ENTRY_CAST(TYPE) (TYPE)
-#else /* ! PACE_LYNXOS */
-# define PACE_NONCONST_ARG_CAST(TYPE)
-# define PACE_VOIDSTARTSTAR_ARG_CAST(TYPE)
-# define PACE_AIO_SUSPEND_LIST_ARG_CAST
-# define PACE_THR_ENTRY_CAST
-#endif /* ! PACE_LYNXOS */
-
-/* Adding appropriate macros for the different POSIX units of
- functionality that PACE supports.
- These macros define which POSIX functions get included when
- PACE is built. The functions are grouped according to POSIX
- Units of Functionality per the POSIX document ?? pp. ??.
- The following macros correspond to the following POSIX
- Unit of Functionality:
-
- PACE_HAS_POSIX_SOCK_UOF -> POSIX Socket UoF
- PACE_HAS_POSIX_SP_UOF -> POSIX Single Process UoF
- PACE_HAS_POSIX_MP_UOF -> POSIX Multiple Process UoF
- PACE_HAS_POSIX_SIG_UOF -> POSIX Signals UoF
- PACE_HAS_POSIX_UG_UOF -> POSIX User Groups UoF
- PACE_HAS_POSIX_FS_UOF -> POSIX File System UoF
- PACE_HAS_POSIX_FA_UOF -> POSIX File Attributes UoF
- PACE_HAS_POSIX_F_UOF -> POSIX FIFO UoF
- PACE_HAS_POSIX_DI_UOF -> POSIX Device I/O UoF
- PACE_HAS_POSIX_FM_UOF -> POSIX File Descriptor Management UoF
- PACE_HAS_POSIX_P_UOF -> POSIX Pipe UoF
- PACE_HAS_POSIX_DS_UOF -> POSIX Device Specific UoF
- PACE_HAS_POSIX_SD_UOF -> POSIX System Database UoF
- PACE_HAS_POSIX_CLS_UOF -> POSIX C Language Support UoF
- PACE_HAS_POSIX_JC_UOF -> POSIX Job Control UoF
- PACE_HAS_POSIX_UGR_UOF -> POSIX User Groups (Reentrant) UoF
- PACE_HAS_POSIX_FL_UOF -> POSIX File Locking UoF
- PACE_HAS_POSIX_CLSR_UOF -> POSIX C Language Support (Reentrant) UoF
- PACE_HAS_POSIX_SDR_UOF -> POSIX System Database (Reentrant) UoF
- PACE_HAS_POSIX_NONUOF_FUNCS -> Any POSIX function in PACE that is not in
- one of the above units of functionality.
- */
-#if PACE_HAS_ALL_POSIX_FUNCS
-# define PACE_HAS_POSIX_UOF 1
-# define PACE_HAS_POSIX_SP_UOF 1
-# define PACE_HAS_POSIX_MP_UOF 1
-# define PACE_HAS_POSIX_SIG_UOF 1
-# define PACE_HAS_POSIX_UG_UOF 1
-# define PACE_HAS_POSIX_FS_UOF 1
-# define PACE_HAS_POSIX_FA_UOF 1
-# define PACE_HAS_POSIX_F_UOF 1
-# define PACE_HAS_POSIX_DI_UOF 1
-# define PACE_HAS_POSIX_FM_UOF 1
-# define PACE_HAS_POSIX_P_UOF 1
-# define PACE_HAS_POSIX_DS_UOF 1
-# define PACE_HAS_POSIX_SD_UOF 1
-# define PACE_HAS_POSIX_CLS_UOF 1
-# define PACE_HAS_POSIX_JC_UOF 1
-# define PACE_HAS_POSIX_UGR_UOF 1
-# define PACE_HAS_POSIX_FL_UOF 1
-# define PACE_HAS_POSIX_CLSR_UOF 1
-# define PACE_HAS_POSIX_SDR_UOF 1
-# define PACE_HAS_POSIX_NONUOF_FUNCS 1
-#else
-# if !defined PACE_HAS_POSIX_SOCK_UOF
-# define PACE_HAS_POSIX_SOCK_UOF 0
-# endif /* ! PACE_HAS_POSIX_SOCK_UOF */
-# if !defined PACE_HAS_POSIX_SP_UOF
-# define PACE_HAS_POSIX_SP_UOF 0
-# endif /* ! PACE_HAS_POSIX_SP_UOF */
-# if !defined PACE_HAS_POSIX_MP_UOF
-# define PACE_HAS_POSIX_MP_UOF 0
-# endif /* ! PACE_HAS_POSIX_MP_UOF */
-# if !defined PACE_HAS_POSIX_SIG_UOF
-# define PACE_HAS_POSIX_SIG_UOF 0
-# endif /* ! PACE_HAS_POSIX_SIG_UOF */
-# if !defined PACE_HAS_POSIX_UG_UOF
-# define PACE_HAS_POSIX_UG_UOF 0
-# endif /* ! PACE_HAS_POSIX_UG_UOF */
-# if !defined PACE_HAS_POSIX_FS_UOF
-# define PACE_HAS_POSIX_FS_UOF 0
-# endif /* ! PACE_HAS_POSIX_FS_UOF */
-# if !defined PACE_HAS_POSIX_FA_UOF
-# define PACE_HAS_POSIX_FA_UOF 0
-# endif /* ! PACE_HAS_POSIX_FA_UOF */
-# if !defined PACE_HAS_POSIX_F_UOF
-# define PACE_HAS_POSIX_F_UOF 0
-# endif /* ! PACE_HAS_POSIX_F_UOF */
-# if !defined PACE_HAS_POSIX_DI_UOF
-# define PACE_HAS_POSIX_DI_UOF 0
-# endif /* ! PACE_HAS_POSIX_DI_UOF */
-# if !defined PACE_HAS_POSIX_FM_UOF
-# define PACE_HAS_POSIX_FM_UOF 0
-# endif /* ! PACE_HAS_POSIX_FM_UOF */
-# if !defined PACE_HAS_POSIX_P_UOF
-# define PACE_HAS_POSIX_P_UOF 0
-# endif /* ! PACE_HAS_POSIX_P_UOF */
-# if !defined PACE_HAS_POSIX_DS_UOF
-# define PACE_HAS_POSIX_DS_UOF 0
-# endif /* ! PACE_HAS_POSIX_DS_UOF */
-# if !defined PACE_HAS_POSIX_SD_UOF
-# define PACE_HAS_POSIX_SD_UOF 0
-# endif /* ! PACE_HAS_POSIX_SD_UOF */
-# if !defined PACE_HAS_POSIX_CLS_UOF
-# define PACE_HAS_POSIX_CLS_UOF 0
-# endif /* ! PACE_HAS_POSIX_CLS_UOF */
-# if !defined PACE_HAS_POSIX_JC_UOF
-# define PACE_HAS_POSIX_JC_UOF 0
-# endif /* ! PACE_HAS_POSIX_JC_UOF */
-# if !defined PACE_HAS_POSIX_UGR_UOF
-# define PACE_HAS_POSIX_UGR_UOF 0
-# endif /* ! PACE_HAS_POSIX_UGR_UOF */
-# if !defined PACE_HAS_POSIX_FL_UOF
-# define PACE_HAS_POSIX_FL_UOF 0
-# endif /* ! PACE_HAS_POSIX_FL_UOF */
-# if !defined PACE_HAS_POSIX_CLSR_UOF
-# define PACE_HAS_POSIX_CLSR_UOF 0
-# endif /* ! PACE_HAS_POSIX_CLSR_UOF */
-# if !defined PACE_HAS_POSIX_SDR_UOF
-# define PACE_HAS_POSIX_SDR_UOF 0
-# endif /* ! PACE_HAS_POSIX_SDR_UOF */
-# if !defined PACE_HAS_POSIX_NONUOF_FUNCS
-# define PACE_HAS_POSIX_NONUOF_FUNCS 0
-# endif /* ! PACE_HAS_POSIX_NONUOF_FUNCS */
-#endif /* PACE_HAS_ALL_POSIX_FUNCS */
-
-#if (PACE_WIN32)
-
-# if defined (PACE_AS_STATIC_LIBS)
-# if !defined (PACE_HAS_DLL)
-# define PACE_HAS_DLL 0
-# endif /* ! PACE_HAS_DLL */
-# else
-# if !defined (PACE_HAS_DLL)
-# define PACE_HAS_DLL 1
-# endif /* ! PACE_HAS_DLL */
-# endif /* PACE_AS_STATIC_LIBS */
-
-#define PACE_Proper_Export_Flag __declspec (dllexport)
-#define PACE_Proper_Import_Flag __declspec (dllimport)
-
-#endif /* PACE_WIN32 */
-
-#if defined (PACE_HAS_DLL) && (PACE_HAS_DLL == 1)
-# if defined (PACE_BUILD_DLL)
-# define PACE_Export PACE_Proper_Export_Flag
-# else /* PACE_BUILD_DLL */
-# define PACE_Export PACE_Proper_Import_Flag
-# endif /* PACE_BUILD_DLL */
-#else /* PACE_HAS_DLL != 1 */
-# define PACE_Export
-#endif /* PACE_HAS_DLL != 1 */
-
-#endif /* PACE_CONFIG_CONFIG_H */
diff --git a/PACE/pace/config/constants.h b/PACE/pace/config/constants.h
deleted file mode 100644
index 885fc104987..00000000000
--- a/PACE/pace/config/constants.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * constants.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_CONFIG_CONSTANTS_H
-#define PACE_CONFIG_CONSTANTS_H
-
-#define PACE_ONE_SECOND_IN_MSECS 1000L
-#define PACE_ONE_SECOND_IN_USECS 1000000L
-#define PACE_ONE_SECOND_IN_NSECS 1000000000L
-
-/* ============================================================================
- * Posix minimum values
- * ============================================================================ */
-
-/* The number of I/O operations that can be specified in a list I/O call. */
-# if defined (_POSIX_AIO_LISTIO_MAX)
-# define PACE_POSIX_AIO_LISTIO_MAX _POSIX_AIO_LISTIO_MAX
-# endif
-
-/* The number of outstanding asynchronous I/O operations. */
-# if defined (_POSIX_AIO_MAX)
-# define PACE_POSIX_AIO_MAX _POSIX_AIO_MAX
-# endif
-
-/* The length of the arguments for one of the exec functions, in bytes,
- * excluding environment data. */
-# if defined (_POSIX_ARG_MAX)
-# define PACE_POSIX_ARG_MAX _POSIX_ARG_MAX
-# endif
-
-/* The number of simultaneous processes per real user ID. */
-# if defined (_POSIX_CHILD_MAX)
-# define PACE_POSIX_CHILD_MAX _POSIX_CHILD_MAX
-# endif
-
-/* The number of timer expiration overruns. */
-# if defined (_POSIX_DELAYTIMER_MAX)
-# define PACE_POSIX_DELAYTIMER_MAX _POSIX_DELAYTIMER_MAX
-# endif
-
-/* The value of a file's link count. */
-# if defined (_POSIX_LINK_MAX)
-# define PACE_POSIX_LINK_MAX _POSIX_LINK_MAX
-# endif
-
-/* The size of the storage required for a login name, in bytes,
- * including the terminating NULL. */
-# if defined (_POSIX_LOGIN_NAME_MAX)
-# define PACE_POSIX_LOGIN_NAME_MAX _POSIX_LOGIN_NAME_MAX
-# endif
-
-/* The number of bytes in a terminal canonical input queue. */
-# if defined (_POSIX_MAX_CANON)
-# define PACE_POSIX_MAX_CANON _POSIX_MAX_CANON
-# endif
-
-/* The number of bytes for which space will be available in a
- * terminal input queue. */
-# if defined (_POSIX_MAX_INPUT)
-# define PACE_POSIX_MAX_INPUT _POSIX_MAX_INPUT
-# endif
-
-/* The number of message queues that can be open for a single
- * process. */
-# if defined (_POSIX_MQ_OPEN_MAX)
-# define PACE_POSIX_MQ_OPEN_MAX _POSIX_MQ_OPEN_MAX
-# endif
-
-/* The maximum number of message priorities supported by the
- * implementation. */
-# if defined (_POSIX_MQ_PRIO_MAX)
-# define PACE_POSIX_MQ_PRIO_MAX _POSIX_MQ_PRIO_MAX
-# endif
-
-/* The number of bytes in a filename. */
-# if defined (_POSIX_NAME_MAX)
-# define PACE_POSIX_NAME_MAX _POSIX_NAME_MAX
-# endif
-
-/* The number of simultaneous supplementary group IDs per process. */
-# if defined (_POSIX_NGROUPS_MAX)
-# define PACE_POSIX_NGROUPS_MAX _POSIX_NGROUPS_MAX
-# endif
-
-/* The number of files that one process can have open at one time. */
-# if defined (_POSIX_OPEN_MAX)
-# define PACE_POSIX_OPEN_MAX _POSIX_OPEN_MAX
-# endif
-
-/* The number of bytes in a pathname. */
-# if defined (_POSIX_PATH_MAX)
-# define PACE_POSIX_PATH_MAX _POSIX_PATH_MAX
-# endif
-
-/* The number of bytes that can be written atomically when writing
- * to a pipe. */
-# if defined (_POSIX_PIPE_BUF)
-# define PACE_POSIX_PIPE_BUF _POSIX_PIPE_BUF
-# endif
-
-/* The number of realtime signal numbers reserved for application use. */
-# if defined (_POSIX_RTSIG_MAX)
-# define PACE_POSIX_RTSIG_MAX _POSIX_RTSIG_MAX
-# endif
-
-/* The number of semaphores that a process may have. */
-# if defined (_POSIX_SEM_NSEMS_MAX)
-# define PACE_POSIX_SEM_NSEMS_MAX _POSIX_SEM_NSEMS_MAX
-# endif
-
-/* The maximum value a semaphore may have. */
-# if defined (_POSIX_SEM_VALUE_MAX)
-# define PACE_POSIX_SEM_VALUE_MAX _POSIX_SEM_VALUE_MAX
-# endif
-
-/* The number of queued signals that a process may send and have pending
- * at the receiver(s) at any time. */
-# if defined (_POSIX_SIGQUEUE_MAX)
-# define PACE_POSIX_SIGQUEUE_MAX _POSIX_SIGQUEUE_MAX
-# endif
-
-/* The value that can be stored in an object of type ssize_t. */
-# if defined (_POSIX_SSIZE_MAX)
-# define PACE_POSIX_SSIZE_MAX _POSIX_SSIZE_MAX
-# endif
-
-/* The number of streams that one process can have open at one time. */
-# if defined (_POSIX_STREAM_MAX)
-# define PACE_POSIX_STREAM_MAX _POSIX_STREAM_MAX
-# endif
-
-/* The number of attempts made to destroy the thread-specific data
- * values of a thread on thread exit. */
-# if defined (_POSIX_THREAD_DESTRUCTOR_ITERATIONS)
-# define PACE_POSIX_THREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTORITERATIONS
-# endif
-
-/* The number of data keys per process. */
-# if defined (_POSIX_THREAD_KEYS_MAX)
-# define PACE_POSIX_THREAD_KEYS_MAX _POSIX_THREAD_KEYS_MAX
-# endif
-
-/* The number of threads per process. */
-# if defined (_POSIX_THREAD_THREADS_MAX)
-# define PACE_POSIX_THREAD_THREADS_MAX _POSIX_THREAD_THREADS_MAX
-# endif
-
-/* The size of the storage required for a terminal device name, in bytes,
- * including the terminating NULL. */
-# if defined (_POSIX_TTY_NAME_MAX)
-# define PACE_POSIX_TTY_NAME_MAX _POSIX_TTY_NAME_MAX
-# endif
-
-/* The per-process number of times. */
-# if defined (_POSIX_TIMER_MAX)
-# define PACE_POSIX_TIMER_MAX _POSIX_TIMER_MAX
-# endif
-
-/* The maximum number of bytes supported for the name of a time zone
- * (not of the TZ variable). */
-# if defined (_POSIX_TZNAME_MAX)
-# define PACE_POSIX_TZNAME_MAX _POSIX_TZNAME_MAX
-# endif
-
-
-/* ============================================================================
- * Temporary MACROS. Correct them later.
- * ============================================================================ */
-
-#include "pace/sys/types.h"
-
-/* Tracing */
-# define PACE_DEBUG(X)
-# define PACE_LM_DEBUG PACE_stderr
-# define PACE_BEGIN_DUMP
-# define PACE_END_DUMP
-
-/* Identification for PACE.h */
-# define PACE_RCSID(X,Y,Z)
-
-/* Hooks */
-/* Dummy values */
-# define PACE_ALLOC_HOOK_DECLARE int declare_hook
-# define PACE_ALLOC_HOOK_DEFINE(X)
-
-/* Signals / ioctl / fcntl - dummy values */
-# define PACE_SIGURG 1
-# define PACE_NONBLOCK 2
-# define PACE_CLOEXEC 3
-
-/* Flags */
-/* Will not be a macro, dummy values */
-# define PACE_set_flags(X,Y) 1
-# define PACE_clr_flags(X,Y) 1
-
-/* Log Error */
-# define PACE_ERROR(X)
-
-/* Host Entries */
-# if defined (PACE_HAS_STRUCT_NETDB_DATA)
-typedef char PACE_HOSTENT_DATA[sizeof(struct hostent_data)];
-typedef char PACE_SERVENT_DATA[sizeof(struct servent_data)];
-typedef char PACE_PROTOENT_DATA[sizeof(struct protoent_data)];
-# else
-# if !defined PACE_HOSTENT_DATA_SIZE
-# define PACE_HOSTENT_DATA_SIZE (4*1024)
-# endif /* PACE_HOSTENT_DATA_SIZE */
-# if !defined PACE_SERVENT_DATA_SIZE
-# define PACE_SERVENT_DATA_SIZE (4*1024)
-# endif /*PACE_SERVENT_DATA_SIZE */
-# if !defined PACE_PROTOENT_DATA_SIZE
-# define PACE_PROTOENT_DATA_SIZE (2*1024)
-# endif /*PACE_PROTOENT_DATA_SIZE */
-typedef char PACE_HOSTENT_DATA[PACE_HOSTENT_DATA_SIZE];
-typedef char PACE_SERVENT_DATA[PACE_SERVENT_DATA_SIZE];
-typedef char PACE_PROTOENT_DATA[PACE_PROTOENT_DATA_SIZE];
-# endif /* PACE_HAS_STRUCT_NETDB_DATA */
-
-/* PACE_HAS_SIN_LEN */
-
-/* PACE_FREE */
-/* adjust later to use macros to decide how to free */
-# define PACE_FREE(X,Y) \
-X Y
-
-# define AF_ANY -1
-
-/* PACE CATCHALL */
-/* FIONREAD is used in PACE_SOCK_IO::recvv */
-/* PACE_HAS_ALLOCA is used in PACE_SOCK_IO::recvv */
-
-#endif /* PACE_CONFIG_CONSTANTS_H */
diff --git a/PACE/pace/config/defaults.h b/PACE/pace/config/defaults.h
deleted file mode 100644
index deadb92b071..00000000000
--- a/PACE/pace/config/defaults.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * defaults.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-
-#ifndef PACE_CONFIG_DEFAULTS_H
-#define PACE_CONFIG_DEFAULTS_H
-
-
-/* Define the default constants for PACE. Many of these are used for
- * the PACE tests and applications. You can change these values by
- * defining the macros in your config.h file. */
-
-
-#endif /* PACE_CONFIG_DEFAULTS_H */
diff --git a/PACE/pace/config/defines.h b/PACE/pace/config/defines.h
deleted file mode 100644
index 0aabf77f21c..00000000000
--- a/PACE/pace/config/defines.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/config/defines.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_CONFIG_DEFINES_H
-#define PACE_CONFIG_DEFINES_H
-
-#include "pace/config/platform.h"
-#include "pace/config/config.h"
-#include "pace/config/compiler.h"
-#include "pace/config/constants.h"
-#include "pace/config/defaults.h"
-#include "pace/config/utility.h"
-#include "pace/config/features.h"
-
-#endif /* PACE_CONFIG_DEFINES_H */
diff --git a/PACE/pace/config/features.h b/PACE/pace/config/features.h
deleted file mode 100644
index 14ea1e86607..00000000000
--- a/PACE/pace/config/features.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/config/features.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_CONFIG_FEATURES_H
-#define PACE_CONFIG_FEATURES_H
-
-/* Features: Can be customized by the developer. */
-
-#if defined (WIN32)
-
-/* If using win32 .. define PACE_HAS_MFC to 1, if you want ACE to use
- * CWinThread. This should be defined, if your application uses MFC.
- * Setting applies to : building PACE
- * Runtime restrictions: MFC DLLs must be installed
- * Additonal notes : If both PACE_HAS_MFC and PACE_MT_SAFE are
- * defined, the MFC DLL (not the static lib)
- * will be used from ACE. */
-# if !defined (PACE_HAS_MFC)
-# define PACE_HAS_MFC 0
-# endif /* PACE_HAS_MFC */
-
-/* Turn off the following define if you want to disable threading.
- * Compile using multi-thread libraries.
- * Setting applies to : building PACE, linking with PACE
- * Runtime restrictions: multithreaded runtime DLL must be installed. */
-# if !defined (PACE_MT_SAFE)
-# define PACE_MT_SAFE 1
-# endif /* PACE_MT_SAFE */
-
-/* Turn on multithreading. */
-# if !defined (_MT)
-# define _MT
-# endif /* _MT */
-
-#endif /* WIN32 */
-
-#endif /* PACE_CONFIG_FEATURES_H */
diff --git a/PACE/pace/config/platform.h b/PACE/pace/config/platform.h
deleted file mode 100644
index 4dde03ea27a..00000000000
--- a/PACE/pace/config/platform.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/config/platform.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_CONFIG_PLATFORM_H
-#define PACE_CONFIG_PLATFORM_H
-
-/* Be careful not to define these macros 2x. */
-/* IE: makefile or other config file. */
-/* This could create compiler warnings. */
-
-/* These platforms are POSIX compliant. */
-
-#if defined (PACE_LINUX)
-# define PACE_HAS_POSIX PACE_LINUX
-# define PACE_LYNXOS 0
-# define PACE_SUNOS 0
-# define PACE_VXWORKS 0
-# define PACE_WIN32 0
-#elif defined (PACE_LYNXOS)
-# define PACE_HAS_POSIX PACE_LYNXOS
-# define PACE_LINUX 0
-# define PACE_SUNOS 0
-# define PACE_VXWORKS 0
-# define PACE_WIN32 0
-#elif defined (PACE_OSF1)
-# define PACE_HAS_POSIX DIGITAL_UNIX
-# define PACE_LINUX 0
-# define PACE_LYNXOS 0
-# define PACE_VXWORKS 0
-# define PACE_WIN32 0
-#elif defined (PACE_SUNOS)
-# define PACE_HAS_POSIX PACE_SUNOS
-# define PACE_LINUX 0
-# define PACE_LYNXOS 0
-# define PACE_VXWORKS 0
-# define PACE_WIN32 0
-#elif defined (PACE_QNX)
-# define PACE_HAS_POSIX PACE_QNX
-# define PACE_LINUX 0
-# define PACE_SUNOS 0
-# define PACE_LYNXOS 0
-# define PACE_VXWORKS 0
-# define PACE_WIN32 0
-
-/* These platforms are NOT POSIX compliant. */
-
-/* This is really kludgy but not sure what else to do at this point.
- It appears that if PACE_HAS_POSIX is not defined (i.e., no #define
- at all of any kind) and the same goes for PACE_VXWORKS then in
- pace/config/config.h #if PACE_HAS_POSIX == PACE_LYNXOS will evaluate
- to true. I am assuming both get default values of 0.
-
- PACE_WIN32 should be defined as 0 though because pace/config/utility.h
- checks it.
- */
-
-#elif defined (PACE_VXWORKS)
-# define PACE_LACKS_POSIX PACE_VXWORKS
-# define PACE_LINUX -1
-# define PACE_LYNXOS -1
-# define PACE_SUNOS -1
-# define PACE_WIN32 0
-/* Doesn't use the makefile! */
-#elif defined (WIN32)
-# undef PACE_WIN32
-# define PACE_WIN32 2000
-# define PACE_LACKS_POSIX PACE_WIN32
-# define PACE_LINUX 0
-# define PACE_LYNXOS 0
-# define PACE_SUNOS 0
-# define PACE_VXWORKS 0
-#endif
-
-#endif /* PACE_CONFIG_PLATFORM_H */
diff --git a/PACE/pace/config/utility.h b/PACE/pace/config/utility.h
deleted file mode 100644
index 79b13e4755f..00000000000
--- a/PACE/pace/config/utility.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/config/utility.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_CONFIG_UTILITY_H
-#define PACE_CONFIG_UTILITY_H
-
-/* ----------------------------------------------------------------------
- * error control
- * ---------------------------------------------------------------------- */
-
-#if defined (PACE_TRACING) && PACE_TRACING == 1
-# include <stdio.h>
-#endif
-
-#include "pace/errno.h"
-
-# define PACE_ERRNO_NO_SUPPORT_RETURN(FAILVALUE) \
-return ( (errno = ENOTSUP), FAILVALUE)
-
-# define PACE_ERRNO_NO_SUPPORT() errno=ENOTSUP
-
-/* ----------------------------------------------------------------------
- A couple useful inline functions for checking whether bits are
- enabled or disabled.
- * ---------------------------------------------------------------------- */
-
-# define PACE_POW(X) (((X) == 0)?1:(X-=1,X|=X>>1,X|=X>>2,X|=X>>4,X|=X>>8,X|=X>>16,(++X)))
-# define PACE_EVEN(NUM) (((NUM) & 1) == 0)
-# define PACE_ODD(NUM) (((NUM) & 1) == 1)
-# define PACE_BIT_ENABLED(WORD, BIT) (((WORD) & (BIT)) != 0)
-# define PACE_BIT_DISABLED(WORD, BIT) (((WORD) & (BIT)) == 0)
-# define PACE_BIT_CMP_MASK(WORD, BIT, MASK) (((WORD) & (BIT)) == MASK)
-# define PACE_SET_BITS(WORD, BITS) (WORD |= (BITS))
-# define PACE_CLR_BITS(WORD, BITS) (WORD &= ~(BITS))
-
-/* Turn a number into a string. */
-# define PACE_ITOA(X) #X
-
-/* Create a string of a server address with a "host:port" format. */
-# define PACE_SERVER_ADDRESS(H,P) H":"P
-
-/* ----------------------------------------------------------------------
- Specific for (PACE_WIN32)
- * ---------------------------------------------------------------------- */
-
-#if (PACE_WIN32)
-
-#include <windows.h>
-
-/* Perform a mapping of Win32 error numbers into POSIX errnos. */
-# define PACE_FAIL_RETURN(RESULT) do { \
- switch (GetLastError ()) { \
- case ERROR_NOT_ENOUGH_MEMORY: errno = ENOMEM; break; \
- case ERROR_FILE_EXISTS: errno = EEXIST; break; \
- case ERROR_SHARING_VIOLATION: errno = EACCES; break; \
- case ERROR_PATH_NOT_FOUND: errno = ENOENT; break; \
- } \
- return RESULT; } while (0)
-
-/* The "null" device on Win32. */
-# define PACE_DEV_NULL "nul"
-
-/* Define the pathname separator characters for Win32 (ugh). */
-# define PACE_DIRECTORY_SEPARATOR_STR "\\"
-# define PACE_DIRECTORY_SEPARATOR_CHAR '\\'
-# define PACE_LD_SEARCH_PATH "PATH"
-# define PACE_LD_SEARCH_PATH_SEPARATOR_STR ";"
-# define PACE_DLL_SUFFIX ".dll"
-# define PACE_DLL_PREFIX ""
-
-# define PACE_SYSCALL_FAILED 0xFFFFFFFF
-
-/* Turns "FALSE" into -1 */
-# define PACE_ADAPT_RETVAL(OP,RESULT) \
- ((RESULT = (OP)) == FALSE ? -1 : 0)
-
-/* If failure, sets errno before returning */
-# define PACE_WIN32CALL_RETURN(X,TYPE,FAILVALUE) \
- do { \
- TYPE pace_result_; \
- pace_result_ = (TYPE) X; \
- if (pace_result_ == FAILVALUE) \
- { \
- errno = GetLastError (); \
- } \
- return pace_result_; \
- } while (0)
-
-/* Casts return value. */
-# define PACE_OSCALL_RETURN(X,TYPE,FAILVALUE) \
- return (TYPE) X;
-
-#endif /* PACE_WIN32 */
-
-/* ----------------------------------------------------------------------
- * debug tracing
- * ---------------------------------------------------------------------- */
-
-#if defined (PACE_TRACING) && PACE_TRACING == 1
-# define PACE_TRACE(MODULE) \
-fprintf(stderr, "PACE_TRACE %s, %d, %s\n", (MODULE), __LINE__, __FILE__)
-#else
-# define PACE_TRACE(MODULE)
-#endif /* TRACING */
-
-#endif /* PACE_CONFIG_UTILITY_H */
diff --git a/PACE/pace/ctype.h b/PACE/pace/ctype.h
deleted file mode 100644
index cbca084d280..00000000000
--- a/PACE/pace/ctype.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/ctype.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_CTYPE_H
-#define PACE_CTYPE_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/ctype.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/ctype.h"
-#elif (PACE_WIN32)
-# include "pace/win32/ctype.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function isalnum.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_isalnum (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function isalpha.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_isalpha (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function iscntrl.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_iscntrl (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function isdigit.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_isdigit (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function isgraph.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_isgraph (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function islower.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_islower (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function isprint.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_isprint (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function ispunct.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_ispunct (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function isspace.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_isspace (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function isupper.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_isupper (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function isxdigit.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_isxdigit (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function tolower.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_tolower (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function toupper.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_toupper (int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/ctype.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/ctype.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/ctype.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_CTYPE_H */
diff --git a/PACE/pace/dirent.h b/PACE/pace/dirent.h
deleted file mode 100644
index 55ab381a49d..00000000000
--- a/PACE/pace/dirent.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/dirent.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_DIRENT_H
-#define PACE_DIRENT_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/dirent.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/dirent.h"
-#elif (PACE_WIN32)
-# include "pace/win32/dirent.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function opendir.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.1.2.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE PACE_DIR * pace_opendir (const char * dirname);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function readdir.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.1.2.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE pace_dirent * pace_readdir (PACE_DIR * dirp);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function readdir_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.1.2.
- */
-#if (PACE_HAS_POSIX_CLSR_UOF)
- PACE_Export PACE_INLINE int pace_readdir_r (PACE_DIR * dirp,
- pace_dirent * entry,
- pace_dirent ** result);
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
- /**
- PACE's implementation of the POSIX function rewinddir.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.1.2.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE void pace_rewinddir (PACE_DIR * dirp);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function closedir.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.1.2.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_closedir (PACE_DIR * dirp);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/dirent.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/dirent.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/dirent.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_DIRENT_H */
diff --git a/PACE/pace/emulation/mqueue.c b/PACE/pace/emulation/mqueue.c
deleted file mode 100644
index 4e0e6912de6..00000000000
--- a/PACE/pace/emulation/mqueue.c
+++ /dev/null
@@ -1,570 +0,0 @@
-/* $Id$ -*- C -*-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/emulation/mqueue.c
- *
- * = AUTHOR
- * John Heitmann
- *
- * ============================================================================ */
-
-#include "pace/sys/mman.h"
-#include "pace/stdio.h"
-#include "pace/fcntl.h"
-#include "pace/string.h"
-#include "pace/stdlib.h"
-#include "pace/sys/types.h"
-#include "pace/pthread.h"
-#include "pace/sys/stat.h"
-#include "pace/emulation/mqueue.h"
-
-typedef struct
-{
- pace_mq_attr attr;
- pace_size_t num_open; /* How many processes have a valid mqd_t to here */
- pace_size_t rec_wait; /* How many processes are blocked on mq_receive */
- pace_pid_t not_pid; /* Who is actually registered for notification */
- pace_sigevent notification;
- pace_pthread_mutex_t mutex;
- pace_pthread_cond_t cond;
- pace_size_t head;
- pace_size_t freelist;
-} mqfile;
-
-typedef struct
-{
- pace_size_t next; /* Index of next element */
- unsigned int priority;
- pace_size_t length;
-} message_header;
-
-static struct mq_attr pace_attrdefault = { 0, 32, 256, 0 };
-#define PACE_MQ_LOCKPOSTFIX "mqlock9587"
-#define PACE_MQ_DATAPOSTFIX "mqdata2355"
-
-/* This remains mq_open due to the macro in pace/mqueue.h */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-pace_mqd_t mq_open (const char* name,
- int oflag,
- pace_mode_t mode,
- pace_mq_attr* attr)
-{
- int m_padding = sizeof (message_header); /* How much extra space per message do we need */
- int f_padding = sizeof (mqfile); /* How much fixed padding is needed */
- int mflags, mprot;
- int fd;
- int i;
- pace_size_t mapsize;
- char* mmaploc;
- char* new_name;
- char* lock_name;
- int create_mmap = 0; /* 1 if the file has never be inited */
- message_header* temp = 0; /*Used in initialization of mqueue*/
- long index; /* index into the file */
- pace_mqd_t result = (pace_mqd_t) pace_malloc (sizeof (struct mqd));
- pace_stat_s statbuf;
-
-retry:
- if (attr == 0)
- {
- attr = &pace_attrdefault;
- }
- else
- {
- if (attr->mq_maxmsg < 0 || attr->mq_msgsize < 0)
- {
- errno = EBADF;
- return (pace_mqd_t)-1;
- }
- }
-
- /* Create a name that will go to /tmp with a unique name */
- new_name = (char*) malloc (256);
- lock_name = (char*) malloc (256);
- snprintf (new_name, 256, "/tmp%s%s", name, PACE_MQ_DATAPOSTFIX);
- snprintf (lock_name, 256, "/tmp%s%s", name, PACE_MQ_LOCKPOSTFIX);
-
- /* Fix alignment */
- if (attr->mq_msgsize % sizeof (long) != 0)
- {
- attr->mq_msgsize += 8 - (attr->mq_msgsize % sizeof (long));
- }
-
- if (oflag & PACE_O_CREAT)
- {
- /* We need to protect access without the help of O_RDONLY in the fs */
- fd = pace_open (new_name, PACE_O_RDWR | PACE_O_CREAT | PACE_O_EXCL, mode);
-
- if (fd == -1 && errno != EEXIST)
- {
- /* An error other than EEXIST has occurred. */
- return (pace_mqd_t)-1;
- }
- else if (fd != -1)
- {
- /* If a new file was created successfully */
- create_mmap = 1;
- }
- else if (oflag & PACE_O_EXCL)
- {
- /* If the file exists and we don't want it */
- errno = EEXIST;
- return (pace_mqd_t)-1;
- }
- else
- {
- /* We want the existing file */
- fd = pace_open (new_name, PACE_O_RDWR);
- if (fd == -1 && errno == ENOENT)
- {
- /* Something odd is going on */
- goto retry;
- }
- else if (fd == -1)
- {
- return (pace_mqd_t)-1;
- }
- }
- }
- else
- {
- fd = pace_open (new_name, PACE_O_RDWR);
- if (fd == -1)
- {
- return (pace_mqd_t)-1;
- }
- }
-
- /*
- The following loop makes shure that we haven't entered a race condition. If a file
- has been created but not initialized, its IXUSR will not be set (see above).
- */
- while (create_mmap == 0)
- {
- if (stat (lock_name, &statbuf) == -1)
- {
- close (fd);
- if (errno == ENOENT && (oflag & O_CREAT))
- {
- goto retry;
- }
- return (pace_mqd_t)-1;
- }
- else
- {
- break;
- }
- }
-
- mapsize = f_padding + (attr->mq_msgsize + m_padding) * (attr->mq_maxmsg);
- mprot = PACE_PROT_READ | PACE_PROT_WRITE;
- mflags = PACE_MAP_SHARED;
-
- if (create_mmap)
- {
- /* Create and 0 out the file */
- if (pace_lseek (fd, mapsize, PACE_SEEK_SET) == -1)
- {
- pace_unlink (new_name);
- return (pace_mqd_t)-1;
- }
- if (pace_write (fd, "", 1) != 1)
- {
- pace_unlink (new_name);
- return (pace_mqd_t)-1;
- }
-
- mmaploc = (char*) pace_mmap (0, mapsize, mprot, mflags, fd, 0);
- pace_close (fd);
- if (mmaploc == MAP_FAILED)
- {
- pace_unlink (new_name);
- return (pace_mqd_t)-1;
- }
-
- pace_memset (mmaploc, 0, mapsize);
-
- if ((errno = pace_pthread_mutex_init (&(((mqfile*)mmaploc)->mutex), 0)) != 0)
- {
- pace_unlink (new_name);
- pace_munmap (mmaploc, mapsize);
- return (pace_mqd_t)-1;
- }
- if ((errno = pace_pthread_mutex_lock (&(((mqfile*)mmaploc)->mutex))) != 0)
- {
- pace_unlink (new_name);
- pace_munmap (mmaploc, mapsize);
- return (pace_mqd_t)-1;
- }
-
- if ((errno = pace_pthread_cond_init (&(((mqfile*)mmaploc)->cond), 0)) != 0)
- {
- pace_unlink (new_name);
- pace_munmap (mmaploc, mapsize);
- return (pace_mqd_t)-1;
- }
-
- index = sizeof (mqfile);
- ((mqfile*)mmaploc)->freelist = index;
- ((mqfile*)mmaploc)->head = 0;
-
- for (i = 0; i < attr->mq_maxmsg; ++i)
- {
- temp = (message_header *) &mmaploc[index];
- index += sizeof (message_header) + attr->mq_msgsize;
- temp->next = index;
- }
- temp->next = 0;
- attr->mq_curmsgs = 0;
- ((mqfile*)mmaploc)->attr = *attr;
-
- /* Create the lock file so that the file is known to be inited */
- if (pace_open (lock_name, O_CREAT | O_EXCL) == -1)
- {
- pace_unlink (new_name);
- pace_munmap (mmaploc, mapsize);
- return (pace_mqd_t)-1;
- }
-
- }
- else
- {
- /* Just open the existing map */
- mmaploc = (char*) pace_mmap (0, mapsize, mprot, mflags, fd, 0);
- if (mmaploc == MAP_FAILED)
- {
- return (pace_mqd_t)-1;
- }
- pace_close (fd);
-
- /* ???? Test here for race */
-
- if (pace_pthread_mutex_lock (&(((mqfile*)mmaploc)->mutex)) == -1)
- {
- pace_munmap (mmaploc, mapsize);
- return (pace_mqd_t)-1;
- }
- ((mqfile*)mmaploc)->attr.mq_flags = attr->mq_flags;
- }
-
- ((mqfile*)mmaploc)->num_open++;
-
-
- if (pace_pthread_mutex_unlock (&(((mqfile*)mmaploc)->mutex)) == -1)
- {
- pace_munmap (mmaploc, mapsize);
- return (pace_mqd_t)-1;
- }
-
- result->mptr = mmaploc;
- result->length = mapsize;
- result->oflag = oflag;
-
- return result;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_close (pace_mqd_t mqdes)
-{
- if (pace_pthread_mutex_lock (&( ((mqfile*)mqdes->mptr)->mutex)) == -1)
- {
- errno = EBADF;
- return -1;
- }
- ((mqfile*)mqdes->mptr)->num_open--;
- if (pace_pthread_mutex_unlock (&(((mqfile*)mqdes->mptr)->mutex)) == -1)
- {
- errno = EBADF;
- return -1;
- }
- if (munmap (mqdes->mptr, mqdes->length) == -1)
- {
- return -1;
- }
- free (mqdes);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_unlink (const char* name)
-{
- int result1, result2;
- char* new_name;
- new_name = (char*) malloc (256);
- snprintf (new_name, 256, "/tmp%s%s", name, PACE_MQ_DATAPOSTFIX);
- result1 = pace_unlink (new_name);
- snprintf (new_name, 256, "/tmp%s%s", name, PACE_MQ_LOCKPOSTFIX);
- result2 = pace_unlink (new_name);
- free (new_name);
- return (result1 == -1 || result2 == -1 ? -1 : 0);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_send (pace_mqd_t mqdes,
- const char* ptr,
- pace_size_t length,
- unsigned int priority)
-{
- mqfile* queue = ((mqfile*)mqdes->mptr);
- long index, old_index;
- if (mqdes->oflag & O_RDONLY)
- {
- /* Incorrect access priviledges */
- errno = EBADF;
- return -1;
- }
- if (queue->attr.mq_msgsize < (int) length)
- {
- /* Message too long */
- errno = EMSGSIZE;
- return -1;
- }
- if ((errno = pace_pthread_mutex_lock (&queue->mutex)) != 0)
- {
- return -1;
- }
- /* If the queue is full... */
- if (queue->attr.mq_curmsgs >= queue->attr.mq_maxmsg)
- {
- if (queue->attr.mq_flags & O_NONBLOCK)
- {
- errno = EAGAIN;
- return -1;
- }
- while (queue->attr.mq_maxmsg <= queue->attr.mq_curmsgs)
- {
- pace_pthread_cond_wait (&queue->cond, &queue->mutex);
- pace_printf ("Send Woke Up\n");
- }
- }
-
- /* Fill in the fields of the header */
- ((message_header*)(&mqdes->mptr[queue->freelist]))->priority = priority;
- ((message_header*)(&mqdes->mptr[queue->freelist]))->length = length;
- pace_memcpy (((void*)(&mqdes->mptr[queue->freelist + sizeof (message_header)])),
- ptr, length);
-
- /* Update the linked list */
- old_index = 0;
- index = queue->head;
- while (index != 0 && ((message_header*)(&mqdes->mptr[index]))->priority >= priority)
- {
- old_index = index;
- index = ((message_header*)(&mqdes->mptr[index]))->next;
- }
-
- /* If the msg goes at the head */
- if (old_index == 0)
- {
- queue->head = queue->freelist;
- queue->freelist = ((message_header*)(&mqdes->mptr[queue->freelist]))->next;
- ((message_header*)(&mqdes->mptr[queue->head]))->next = index;
- }
- else
- {
- ((message_header*)(&mqdes->mptr[old_index]))->next = queue->freelist;
- old_index = queue->freelist;
- queue->freelist = ((message_header*)(&mqdes->mptr[queue->freelist]))->next;
- ((message_header*)(&mqdes->mptr[old_index]))->next = index;
- }
-
- queue->attr.mq_curmsgs++;
-
- if ((errno = pace_pthread_mutex_unlock (&queue->mutex)) != 0)
- {
- return -1;
- }
-
- if (queue->attr.mq_curmsgs == 1)
- {
- /* If there is no one waiting and blocked */
- if (queue->not_pid != 0 && queue->rec_wait == 0)
- {
- if (queue->notification.sigev_notify == SIGEV_SIGNAL)
- {
- sigqueue (queue->not_pid,
- queue->notification.sigev_signo,
- queue->notification.sigev_value);
- }
- queue->not_pid = 0;
- }
- else
- {
- pace_printf ("Send is Signalling\n");
- /* Let other waiting threads know there is food on the table */
- if ((errno = pace_pthread_cond_signal (&((mqfile*)mqdes->mptr)->cond)) != 0)
- {
- return -1;
- }
- }
- }
- return 0;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-pace_ssize_t mq_receive (pace_mqd_t mqdes,
- char * msg_ptr,
- pace_size_t msg_len,
- unsigned int * nmsg_prio)
-{
- mqfile* queue = ((mqfile*)mqdes->mptr);
- pace_size_t temp;
-
- if (queue->attr.mq_msgsize > (long) msg_len)
- {
- errno = EMSGSIZE;
- return -1;
- }
-
- if ((errno = pace_pthread_mutex_lock (&queue->mutex)) != 0)
- {
- return -1;
- }
-
- /* If the queue is empty... */
- if (queue->attr.mq_curmsgs <= 0)
- {
- if (queue->attr.mq_flags & O_NONBLOCK)
- {
- errno = EAGAIN;
- return -1;
- }
- while (queue->attr.mq_curmsgs <= 0)
- {
- pace_printf ("Recv is going to sleep\n");
- queue->rec_wait++;
- pace_pthread_cond_wait (&(queue->cond), &(queue->mutex));
- queue->rec_wait--;
- pace_printf ("Recv is waking from sleep\n");
- }
- }
-
- if (nmsg_prio != 0)
- {
- *nmsg_prio = ((message_header*)(&mqdes->mptr[queue->head]))->priority;
- }
-
- pace_memcpy (msg_ptr, ((void*)(&mqdes->mptr[queue->head + sizeof (message_header)])),
- ((message_header*)(&mqdes->mptr[queue->head]))->length);
- temp = queue->head;
- queue->head = ((message_header*)(&mqdes->mptr[queue->head]))->next;
- ((message_header*)(&mqdes->mptr[temp]))->next = queue->freelist;
- queue->freelist = temp;
-
- queue->attr.mq_curmsgs--;
-
- if (pace_pthread_mutex_unlock (&queue->mutex) == -1)
- {
- errno = EBADMSG;
- return -1;
- }
-
- if (queue->attr.mq_curmsgs == (queue->attr.mq_maxmsg-1))
- {
- pace_printf ("Recv is signalling\n");
- /* Let other waiting threads know there is room available */
- if ((errno = pace_pthread_cond_signal (&((mqfile*)mqdes->mptr)->cond)) != 0)
- {
- return -1;
- }
- }
-
- return ((message_header*)(&mqdes->mptr[queue->head]))->length;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_getattr (pace_mqd_t mqdes, pace_mq_attr * mqstat)
-{
- mqfile* queue = ((mqfile*)mqdes->mptr);
-
- if ((errno = pace_pthread_mutex_lock (&queue->mutex)) != 0)
- {
- return -1;
- }
-
- *mqstat = queue->attr;
-
- pace_pthread_mutex_unlock (&queue->mutex);
-
- return 0;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_setattr(pace_mqd_t mqdes,
- const pace_mq_attr * mqstat,
- pace_mq_attr * omqstat)
-{
- mqfile* queue = ((mqfile*)(mqdes->mptr));
-
- if ((errno = pace_pthread_mutex_lock (&queue->mutex)) != 0)
- {
- return -1;
- }
- if (omqstat != 0)
- {
- *omqstat = ((mqfile*)mqdes->mptr)->attr;
- }
- if (mqstat == 0 || mqdes == 0)
- {
- /* You eediot*/
- errno = EFAULT;
- pace_pthread_mutex_unlock (&queue->mutex);
- return -1;
- }
-
- ((mqfile*)mqdes->mptr)->attr.mq_flags = mqstat->mq_flags;
-
- pace_pthread_mutex_unlock (&queue->mutex);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_notify (pace_mqd_t mqd, const pace_sigevent* notification)
-{
- mqfile* queue = ((mqfile*)(mqd->mptr));
- pace_pid_t pid = pace_getpid ();
-
- if ((errno = pace_pthread_mutex_lock (&queue->mutex)) != 0)
- {
- return -1;
- }
-
- if (notification == 0)
- {
- /* Unregister if notification is null */
- if (queue->not_pid == pid)
- {
- queue->not_pid = 0;
- }
- }
- else
- {
- if (queue->not_pid && pace_kill (queue->not_pid, 0))
- {
- /* If another process is registered */
- if (errno != ESRCH)
- {
- pace_pthread_mutex_unlock (&queue->mutex);
- return -1;
- }
- }
- queue->not_pid = pid;
- queue->notification = *notification;
- }
-
- pthread_mutex_unlock (&queue->mutex);
-
- return 0;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/emulation/mqueue.h b/PACE/pace/emulation/mqueue.h
deleted file mode 100644
index 539f0c19e90..00000000000
--- a/PACE/pace/emulation/mqueue.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* $Id$
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/emulation/mqueue.h
- *
- * = AUTHOR
- * John Heitmann
- *
- * = DESCRIPTION
- * An implementation of POSIX message queues originally built for Linux,
- * which lacks mqueue.h. Some ideas were taken from the W. Richard Stevens
- * book Unix Network Programming Interprocess Communications Volume 2
- * Second Edition.
- * Memory Mapped io is used to enable a quick but persistent queue.
- *
- * ============================================================================ */
-
-#ifndef PACE_EMU_MQUEUE_H
-#define PACE_EMU_MQUEUE_H
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_MQ_ATTR
-typedef struct mq_attr
-{
- long mq_flags;
- long mq_maxmsg;
- long mq_msgsize;
- long mq_curmsgs;
-} pace_mq_attr;
-
-struct mqd
-{
- long length;
- int oflag;
- char* mptr;
-};
-
-#define PACE_MQD_T
-typedef struct mqd* pace_mqd_t;
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-pace_mqd_t mq_open (const char* name,
- int oflag,
- pace_mode_t mode,
- pace_mq_attr* attr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_close (pace_mqd_t mqdes);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_unlink (const char* name);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_send (pace_mqd_t mqdes,
- const char* ptr,
- pace_size_t length,
- unsigned int priority);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-pace_ssize_t mq_receive (pace_mqd_t mqdes,
- char * msg_ptr,
- pace_size_t msg_len,
- unsigned int * nmsg_prio);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_getattr (pace_mqd_t mqdes, pace_mq_attr * mqstat);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_setattr(pace_mqd_t mqdes,
- const pace_mq_attr * mqstat,
- pace_mq_attr * omqstat);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int mq_notify (pace_mqd_t mqd, const pace_sigevent* notification);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_EMU_MQUEUE_H */
diff --git a/PACE/pace/emulation/time.h b/PACE/pace/emulation/time.h
deleted file mode 100644
index f4784190c81..00000000000
--- a/PACE/pace/emulation/time.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* $Id$
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/emulation/time.h
- *
- * = AUTHOR
- * John Heitmann
- *
- * ============================================================================ */
-
-#ifndef PACE_EMU_TIME_H
-#define PACE_EMU_TIME_H
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_EMU_CLOCKID_T
-#define PACE_EMU_CLOCKID_T
- typedef int pace_emu_clockid_t;
-#endif /* PACE_EMU_CLOCKID_T */
-
-#ifndef PACE_EMU_TIMER_T
-#define PACE_EMU_TIMER_T
- typedef int pace_emu_timer_t;
-#endif /* PACE_EMU_TIMER_T */
-
-#ifndef PACE_EMU_ITIMERSPEC
-#define PACE_EMU_ITIMERSPEC
- typedef struct emu_itimerspec {} pace_emu_itimerspec;
-#endif /* PACE_EMU_ITIMERSPEC */
-
-#ifndef PACE_EMU_TIMESPEC
-#define PACE_EMU_TIMESPEC
- typedef struct emu_timespec {} pace_emu_timespec;
-#endif /* PACE_EMU_TIMESPEC */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_EMU_TIME_H */
diff --git a/PACE/pace/errno.h b/PACE/pace/errno.h
deleted file mode 100644
index ae4f6bd4344..00000000000
--- a/PACE/pace/errno.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/errno.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_ERRNO_H
-#define PACE_ERRNO_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/errno.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/errno.h"
-#elif (PACE_WIN32)
-# include "pace/win32/errno.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_ERRNO_H */
diff --git a/PACE/pace/fcntl.h b/PACE/pace/fcntl.h
deleted file mode 100644
index 43d85574b26..00000000000
--- a/PACE/pace/fcntl.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/fnctl.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_FCNTL_H
-#define PACE_FCNTL_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/fcntl.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/fcntl.h"
-#elif (PACE_WIN32)
-# include "pace/win32/fcntl.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function creat.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.3.2.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_creat (const char * path, pace_mode_t mode);
- /* WIN32 doesn't correctly return a file desciptor. WIN32 doesn't use
- integers to represent file handles. Instead, we return 1 for success
- and -1 for failure.
- */
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function fcntl.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 6.5.2.
- */
-#if (PACE_HAS_POSIX_FM_UOF)
- /* int fcntl (int fildes, int cmd, *//* arg *//* ... ); */
-# if defined (PACE_WIN32)
- int fcntl (PACE_HANDLE fildes, int cmd, /* arg */ ... );
-# endif /* PACE_WIN32 */
-
-# if defined (PACE_VXWORKS) && PACE_VXWORKS
- PACE_Export PACE_INLINE int pace_fcntl(PACE_HANDLE fildes,
- int cmd,
- long arg);
-# else
-# define pace_fcntl fcntl
-# endif /* ! PACE_VXWORKS */
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
- /**
- PACE's implementation of the POSIX function open.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.3.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- /* int open (const char *path, int oflag, *//* pace_mode_t mode *//* ... );*/
-# if defined (PACE_HAS_CPLUPLUS)
-# define pace_open ::open
-# else
-# define pace_open open
-# endif /* PACE_HAS_CPLUSPLUS */
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/fcntl.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/fcntl.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/fcntl.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_FCNTL_H_INDIRECT */
diff --git a/PACE/pace/grp.h b/PACE/pace/grp.h
deleted file mode 100644
index eab5aba2b7c..00000000000
--- a/PACE/pace/grp.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/grp.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_GRP_H
-#define PACE_GRP_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/grp.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/grp.h"
-#elif (PACE_WIN32)
-# include "pace/win32/grp.h"
-#endif
-
-# if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-# endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function getgrgid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 9.2.1.
- */
-#if (PACE_HAS_POSIX_SD_UOF)
- PACE_Export PACE_INLINE pace_group * pace_getgrgid (pace_gid_t gid);
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
- /**
- PACE's implementation of the POSIX function getgrgid_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 9.2.1.
- */
-#if (PACE_HAS_POSIX_SDR_UOF)
- PACE_Export PACE_INLINE int pace_getgrgid_r (pace_gid_t gid,
- pace_group * grp,
- char * buffer,
- size_t bufsize,
- pace_group ** result);
-#endif /* PACE_HAS_POSIX_SDR_UOF */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
- /**
- PACE's implementation of the POSIX function getgrnam.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 9.2.1.
- */
-#if (PACE_HAS_POSIX_SD_UOF)
- PACE_Export PACE_INLINE pace_group * pace_getgrnam (const char * name);
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
- /**
- PACE's implementation of the POSIX function getgrnam_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 9.2.1.
- */
-#if (PACE_HAS_POSIX_SDR_UOF)
- PACE_Export PACE_INLINE int pace_getgrnam_r (const char * name,
- pace_group * grp,
- char * buffer,
- size_t bufsize,
- pace_group ** result);
-#endif /* PACE_HAS_POSIX_SDR_UOF */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/grp.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/grp.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/grp.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_GRP_H */
diff --git a/PACE/pace/limits.h b/PACE/pace/limits.h
deleted file mode 100644
index 9e13488b1fa..00000000000
--- a/PACE/pace/limits.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/limits.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_LIMITS_H_INDIRECT
-#define PACE_LIMITS_H_INDIRECT
-
-#include "pace/config/defines.h"
-
-#if defined (PACE_HAS_POSIX)
-# include "pace/posix/limits.h"
-#elif defined (PACE_VXWORKS)
-# include "pace/vxworks/limits.h"
-#elif defined (PACE_WIN32)
-# include "pace/win32/limits.h"
-#endif
-
-#endif /* PACE_LIMITS_H_INDIRECT */
diff --git a/PACE/pace/locale.h b/PACE/pace/locale.h
deleted file mode 100644
index 0435a4a7370..00000000000
--- a/PACE/pace/locale.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $Id$ -*- C -*-
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/locale.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#ifndef PACE_LOCALE_H
-#define PACE_LOCALE_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/locale.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/locale.h"
-#elif (PACE_WIN32)
-# include "pace/win32/locale.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- Fills in pace_lconv with values consistent with the
- current locality.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE pace_lconv* pace_localeconv (void);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function setlocale.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.2.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE char * pace_setlocale (int category,
- const char * locale);
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/locale.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/locale.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/locale.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_LOCALE_H */
diff --git a/PACE/pace/man/Makefile b/PACE/pace/man/Makefile
deleted file mode 100644
index 8203d2d650c..00000000000
--- a/PACE/pace/man/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the PACE html man pages
-# The man pages are generated from the POSIX header files.
-#----------------------------------------------------------------------------
-
-PACE_DOC++ = /project/doc/pkg/bin/doc++
-index.html:
- $(PACE_DOC++) -H -F -B banner ../*.h
-
-clean:
- $(RM) *.html *.gif *.class *.tex *.db .html
diff --git a/PACE/pace/man/banner b/PACE/pace/man/banner
deleted file mode 100644
index 668e1f5de5d..00000000000
--- a/PACE/pace/man/banner
+++ /dev/null
@@ -1,5 +0,0 @@
-<!-- $Id$ -->
-<!-- This is the banner file that doc++ inserts at the bottom of the -->
-<!-- generated html man pages. -->
-<!-- Originally written by: Joe Hoffert -->
-<A HREF="http://www.cs.wustl.edu/~luther/PACE/index.html"><IMG BORDER=0 ALIGN=RIGHT SRC=pace.jpg></A>
diff --git a/PACE/pace/man/pace.jpg b/PACE/pace/man/pace.jpg
deleted file mode 100644
index 62bc7130603..00000000000
--- a/PACE/pace/man/pace.jpg
+++ /dev/null
Binary files differ
diff --git a/PACE/pace/math.h b/PACE/pace/math.h
deleted file mode 100644
index 44e23ee09e2..00000000000
--- a/PACE/pace/math.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = Filename
- * pace/math.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_MATH_H
-#define PACE_MATH_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/math.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/math.h"
-#elif (PACE_WIN32)
-# include "pace/win32/math.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function acos.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_acos (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function asin.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_asin (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function atan.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_atan (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function atan2.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_atan2 (double x, double y);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function cos.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_cos (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function sin.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_sin (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function tan.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_tan (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function cosh.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_cosh (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function sinh.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_sinh (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function tanh.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_tanh (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function exp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_exp (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function frexp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_frexp (double x, int * exp);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function ldexp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_ldexp (double x, int exp);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function log.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_log (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function log10.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_log10 (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function modf.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_modf (double x, double * iptr);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function pow.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_pow (double x, double y);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function sqrt.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_sqrt (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function ceil.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_ceil (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function fabs.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_fabs (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function floor.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_floor (double x);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function fmod.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_fmod (double x, double y);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/math.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/math.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/math.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_MATH_H */
diff --git a/PACE/pace/mqueue.h b/PACE/pace/mqueue.h
deleted file mode 100644
index c799567c968..00000000000
--- a/PACE/pace/mqueue.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/mqueue.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_MQUEUE_H
-#define PACE_MQUEUE_H
-
-#include "pace/config/defines.h"
-#include "pace/signal.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/mqueue.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/mqueue.h"
-#elif (PACE_WIN32)
-# include "pace/win32/mqueue.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function mq_close.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 15.2.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_mq_close (pace_mqd_t mqdes);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function mq_getattr.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 15.2.8.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_mq_getattr (pace_mqd_t mqdes,
- pace_mq_attr * mqstat);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function mq_notify.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 15.2.6.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_mq_notify (pace_mqd_t mqdes,
- const pace_sigevent * notification);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function mq_open.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 15.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-# define pace_mq_open mq_open
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
- /* mqd_t mq_open (const char *name, int oflag, (*//* args *//*) ... ); */
-
- /**
- PACE's implementation of the POSIX function mq_receive.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 15.2.5.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE pace_ssize_t pace_mq_receive (pace_mqd_t mqdes,
- char * msg_ptr,
- pace_size_t msg_len,
- unsigned int * nmsg_prio);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function mq_send.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 15.2.4.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_mq_send (pace_mqd_t mqdes,
- const char * mst_ptr,
- pace_size_t msg_len,
- unsigned int psg_prio);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function mq_setattr.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 15.2.7.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_mq_setattr (pace_mqd_t mqdes,
- const pace_mq_attr * mqstat,
- pace_mq_attr * omqstat);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function mq_unlink.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 15.2.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_mq_unlink (const char * name);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/mqueue.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/mqueue.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/mqueue.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_MQUEUE_H */
diff --git a/PACE/pace/posix/Makefile.am b/PACE/pace/posix/Makefile.am
deleted file mode 100644
index d50c7d6885b..00000000000
--- a/PACE/pace/posix/Makefile.am
+++ /dev/null
@@ -1,113 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for the PACE C library
-##
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-## Create a libtool convenience library that contains the contents of
-## the POSIX-specific version of PACE.
-noinst_LTLIBRARIES = libPACE_POSIX.la
-
-libPACE_POSIX_la_SOURCES = \
- aio.c \
- assert.c \
- ctype.c \
- dirent.c \
- fcntl.c \
- grp.c \
- locale.c \
- math.c \
- mman.c \
- mqueue.c \
- pthread.c \
- pwd.c \
- sched.c \
- semaphore.c \
- setjmp.c \
- signal.c \
- stat.c \
- stdio.c \
- stdlib.c \
- string.c \
- termios.c \
- time.c \
- times.c \
- unistd.c \
- utime.c \
- utsname.c \
- wait.c
-
-PACE_INLINE_FILES = \
- aio.inl \
- assert.inl \
- ctype.inl \
- dirent.inl \
- fcntl.inl \
- grp.inl \
- locale.inl \
- math.inl \
- mman.inl \
- mqueue.inl \
- pthread.inl \
- pwd.inl \
- sched.inl \
- semaphore.inl \
- setjmp.inl \
- signal.inl \
- stat.inl \
- stdio.inl \
- stdlib.inl \
- string.inl \
- termios.inl \
- time.inl \
- times.inl \
- unistd.inl \
- utime.inl \
- utsname.inl \
- wait.inl
-
-PACE_HEADER_FILES = \
- aio.h \
- assert.h \
- ctype.h \
- dirent.h \
- errno.h \
- fcntl.h \
- grp.h \
- limits.h \
- locale.h \
- math.h \
- mman.h \
- mqueue.h \
- pthread.h \
- pwd.h \
- sched.h \
- semaphore.h \
- setjmp.h \
- signal.h \
- stat.h \
- stdio.h \
- stdlib.h \
- string.h \
- termios.h \
- time.h \
- times.h \
- types.h \
- unistd.h \
- utime.h \
- utsname.h \
- wait.h
-
-pkgincludedir = $(includedir)/$(PACKAGE)/posix
-pkginclude_HEADERS = \
- $(PACE_INLINE_FILES) \
- $(PACE_HEADER_FILES)
diff --git a/PACE/pace/posix/README b/PACE/pace/posix/README
deleted file mode 100644
index 0116632c065..00000000000
--- a/PACE/pace/posix/README
+++ /dev/null
@@ -1 +0,0 @@
-POSIX dir
diff --git a/PACE/pace/posix/TODO b/PACE/pace/posix/TODO
deleted file mode 100644
index 6141d90a333..00000000000
--- a/PACE/pace/posix/TODO
+++ /dev/null
@@ -1,7 +0,0 @@
-$ID$
-
-Testing
-=======
-Test PACE libraries with and without PACE_HAS_POSIX_PTHREAD_SEMANTICS
-defined. There are some functions (e.g., in time.h) that have been
-changed because it looked like they didn't need this guard.
diff --git a/PACE/pace/posix/aio.c b/PACE/pace/posix/aio.c
deleted file mode 100644
index d2f62e92389..00000000000
--- a/PACE/pace/posix/aio.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/aio.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/aio.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/aio.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/aio.h b/PACE/pace/posix/aio.h
deleted file mode 100644
index 75a11416cc7..00000000000
--- a/PACE/pace/posix/aio.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/aio.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_AIO_H_POSIX
-#define PACE_AIO_H_POSIX
-
-#include <aio.h>
-#include "pace/time.h"
-#include "pace/signal.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_AIO_ALLDONE AIO_ALLDONE
-#define PACE_AIO_CANCELED AIO_CANCELED
-#define PACE_AIO_NOCANCELED AIO_NOTCANCELED
-#define PACE_LIO_NOP LIO_NOP
-#define PACE_LIO_NOWAIT LIO_NOWAIT
-#define PACE_LIO_READ LIO_READ
-#define PACE_LIO_WAIT LIO_WAIT
-#define PACE_LIO_WRITE LIO_WRITE
-
-#ifndef PACE_AIOCB
-#define PACE_AIOCB
-typedef struct aiocb pace_aiocb;
-#endif /* PACE_AIOCB */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_AIO_H_POSIX */
diff --git a/PACE/pace/posix/aio.inl b/PACE/pace/posix/aio.inl
deleted file mode 100644
index d219c0cabf9..00000000000
--- a/PACE/pace/posix/aio.inl
+++ /dev/null
@@ -1,94 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/aio.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_cancel (PACE_HANDLE fildes, pace_aiocb * aiocbp)
-{
- return aio_cancel (fildes, aiocbp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_error (const pace_aiocb * aiocbp)
-{
- return aio_error (PACE_NONCONST_ARG_CAST (struct aiocb *) aiocbp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_fsync (int op, pace_aiocb * aiocbp)
-{
- return aio_fsync (op, aiocbp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_read (pace_aiocb * aiocbp)
-{
- return aio_read (aiocbp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_return (pace_aiocb * aiocbp)
-{
- return aio_return (aiocbp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_suspend (const pace_aiocb * const list[],
- int nent,
- const pace_timespec * timeout)
-{
- return aio_suspend (PACE_AIO_SUSPEND_LIST_ARG_CAST list,
- nent,
- PACE_NONCONST_ARG_CAST (struct timespec *) timeout);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_write (pace_aiocb * aiocbp)
-{
- return aio_write (aiocbp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_lio_listio (int mode,
- pace_aiocb * const list[],
- int nent,
- pace_sigevent * sig)
-{
- return lio_listio (mode, PACE_NONCONST_ARG_CAST (struct aiocb **) list,
- nent, sig);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/posix/assert.c b/PACE/pace/posix/assert.c
deleted file mode 100644
index 368fd0a62f6..00000000000
--- a/PACE/pace/posix/assert.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/assert.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/assert.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/assert.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/assert.h b/PACE/pace/posix/assert.h
deleted file mode 100644
index 08c8b075cea..00000000000
--- a/PACE/pace/posix/assert.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/assert.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#ifndef PACE_ASSERT_H_POSIX
-#define PACE_ASSERT_H_POSIX
-
-#include <assert.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_ASSERT_H_POSIX */
diff --git a/PACE/pace/posix/assert.inl b/PACE/pace/posix/assert.inl
deleted file mode 100644
index cc7974093d0..00000000000
--- a/PACE/pace/posix/assert.inl
+++ /dev/null
@@ -1,14 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/assert.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
diff --git a/PACE/pace/posix/ctype.c b/PACE/pace/posix/ctype.c
deleted file mode 100644
index 7bf7d34ae07..00000000000
--- a/PACE/pace/posix/ctype.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/ctype.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/ctype.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/ctype.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/ctype.h b/PACE/pace/posix/ctype.h
deleted file mode 100644
index 88c47c8e8cb..00000000000
--- a/PACE/pace/posix/ctype.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/ctype.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_CTYPE_H_POSIX
-#define PACE_CTYPE_H_POSIX
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_CTYPE_H_POSIX */
diff --git a/PACE/pace/posix/ctype.inl b/PACE/pace/posix/ctype.inl
deleted file mode 100644
index 538164bda4d..00000000000
--- a/PACE/pace/posix/ctype.inl
+++ /dev/null
@@ -1,133 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/ctype.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <ctype.h>
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isalnum (int c)
-{
- return isalnum (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isalpha (int c)
-{
- return isalpha (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_iscntrl (int c)
-{
- return iscntrl (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isdigit (int c)
-{
- return isdigit (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isgraph (int c)
-{
- return isgraph (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_islower (int c)
-{
- return islower (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isprint (int c)
-{
- return isprint (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_ispunct (int c)
-{
- return ispunct (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isspace (int c)
-{
- return isspace (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isupper (int c)
-{
- return isupper (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isxdigit (int c)
-{
- return isxdigit (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_tolower (int c)
-{
- return tolower (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_toupper (int c)
-{
- return toupper (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
diff --git a/PACE/pace/posix/dirent.c b/PACE/pace/posix/dirent.c
deleted file mode 100644
index d04ea9c1ac9..00000000000
--- a/PACE/pace/posix/dirent.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/dirent.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/dirent.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/dirent.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/dirent.h b/PACE/pace/posix/dirent.h
deleted file mode 100644
index 5662910233a..00000000000
--- a/PACE/pace/posix/dirent.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/dirent.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_DIRENT_H_POSIX
-#define PACE_DIRENT_H_POSIX
-
-#include "pace/sys/types.h"
-#include <dirent.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_DIR_T
-#define PACE_DIR_T
-typedef DIR PACE_DIR;
-#endif /* PACE_DIR_T */
-
-#ifndef PACE_DIRENT
-#define PACE_DIRENT
-typedef struct dirent pace_dirent;
-#endif /* PACE_DIRENT */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_DIRENT_H_POSIX */
diff --git a/PACE/pace/posix/dirent.inl b/PACE/pace/posix/dirent.inl
deleted file mode 100644
index 084b43e591c..00000000000
--- a/PACE/pace/posix/dirent.inl
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/dirent.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-PACE_DIR *
-pace_opendir (const char * dirname)
-{
- return opendir (dirname);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-pace_dirent *
-pace_readdir (PACE_DIR * dirp)
-{
- return readdir (dirp);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-int
-pace_readdir_r (PACE_DIR * dirp, pace_dirent * entry,
- pace_dirent ** result)
-{
-#if (PACE_LYNXOS)
- *result = readdir_r (dirp, entry);
- if (*result == 0)
- return errno;
- return 0;
-#else
- return readdir_r (dirp, entry, result);
-#endif /* PACE_LYNXOS */
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-void
-pace_rewinddir (PACE_DIR * dirp)
-{
- rewinddir (dirp);
- return;
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_closedir (PACE_DIR * dirp)
-{
- return closedir (dirp);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/posix/errno.h b/PACE/pace/posix/errno.h
deleted file mode 100644
index 08595910435..00000000000
--- a/PACE/pace/posix/errno.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* $Id$
-
-* ============================================================================
-*
-* = LIBRARY
-* pace
-*
-* = FILENAME
-* pace/posix/errno.h
-*
-* = AUTHOR
-* John Heitmann
-*
-* =========================================================================== *\
-/
-
-#ifndef PACE_ERRNO_H_POSIX
-#define PACE_ERRNO_H_POSIX
-
-#include <errno.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_E2BIG E2BIG
-#define PACE_EACCES EACCES
-#define PACE_EAGAIN EAGAIN
-#define PACE_EBADF EBADF
-#define PACE_EBADMSG
-#define PACE_EBUSY EBUSY
-#define PACE_ECANCELED ECANCELED
-#define PACE_ECHILD ECHILD
-#define PACE_EDEADLK EDEADLK
-#define PACE_EDOM EDOM
-#define PACE_EEXIST EEXIST
-#define PACE_EFAULT EFAULT
-#define PACE_EFBIG EFBIG
-#define PACE_EINPROGRESS EINPROGRESS
-#define PACE_EINTR EINTR
-#define PACE_EINVAL EINVAL
-#define PACE_EIO EIO
-#define PACE_EISDIR EISDIR
-#define PACE_EMFILE EMFILE
-#define PACE_EMLINK EMLINK
-#define PACE_EMSGSIZE EMSGSIZE
-#define PACE_EENAMETOOLONG ENAMETOOLONG
-#define PACE_ENFILE ENFILE
-#define PACE_ENODEV ENODEV
-#define PACE_ENOENT ENOENT
-#define PACE_ENOEXEC ENOEXEC
-#define PACE_ENOLCK ENOLCK
-#define PACE_ENOMEM ENOMEM
-#define PACE_ENOSPC ENOSPC
-#define PACE_ENOSYS ENOSYS
-#define PACE_ENOTDIR ENOTDIR
-#define PACE_ENOTEMPTY ENOTEMPTY
-#define PACE_ENOTSUP ENOTSUP
-#define PACE_ENOTTY ENOTTY
-#define PACE_ENXIO ENXIO
-#define PACE_EPERM EPERM
-#define PACE_EPIPE EPIPE
-#define PACE_ERANGE ERANGE
-#define PACE_EROFS EROFS
-#define PACE_ESPIPE ESPIPE
-#define PACE_ESRCH ESRCH
-#define PACE_ETIMEDOUT ETIMEDOUT
-#define PACE_EXDEV EXDEV
-
-#define pace_errno errno
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_ERRNO_H_POSIX */
diff --git a/PACE/pace/posix/fcntl.c b/PACE/pace/posix/fcntl.c
deleted file mode 100644
index 69183a1ba35..00000000000
--- a/PACE/pace/posix/fcntl.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/fcntl.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/fcntl.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/fcntl.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/fcntl.h b/PACE/pace/posix/fcntl.h
deleted file mode 100644
index fc57bc098e3..00000000000
--- a/PACE/pace/posix/fcntl.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/fnctl.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_FCNTL_H_POSIX
-#define PACE_FCNTL_H_POSIX
-
-#include "pace/sys/types.h"
-#include "pace/unistd.h"
-#include "pace/sys/stat.h"
-#include <fcntl.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_FD_CLOEXEC FD_CLOEXEC
-#define PACE_F_DUPFD D_DUPFD
-#define PACE_F_GETFD F_GETFD
-#define PACE_F_GETFL F_GETFL
-#define PACE_F_GETLK F_GETLK
-#define PACE_F_RDLCK F_RDLCK
-#define PACE_F_SETFD F_SETFD
-#define PACE_F_SETFL F_SETFL
-#define PACE_F_SETLK F_SETLK
-#define PACE_F_SETLKW F_SETLKW
-#define PACE_F_UNLCK F_UNLCK
-#define PACE_F_WRLCK F_WRLCK
-#define PACE_O_ACCMODE O_ACCMODE
-#define PACE_O_APPEND O_APPEND
-#define PACE_O_CREAT O_CREAT
-#define PACE_O_DSYNC O_DSYNC
-#define PACE_O_EXCL O_EXCL
-#define PACE_O_NOCTTY O_NOCTTY
-#define PACE_O_NONBLOCK O_NONBLOCK
-#define PACE_O_RDONLY O_RDONLY
-#define PACE_O_RDWR O_RDWR
-#define PACE_O_RSYNC O_RSYNC
-#define PACE_O_SYNC O_SYNC
-#define PACE_O_TRUNC O_TRUNC
-#define PACE_O_WRONLY O_WRONLY
-
-#ifndef PACE_FLOCK
-#define PACE_FLOCK
-typedef struct flock pace_flock;
-#endif /* PACE_FLOCK */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_FCNTL_H_POSIX */
diff --git a/PACE/pace/posix/fcntl.inl b/PACE/pace/posix/fcntl.inl
deleted file mode 100644
index 01a7e732294..00000000000
--- a/PACE/pace/posix/fcntl.inl
+++ /dev/null
@@ -1,23 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/fcntl.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_creat (const char * path, pace_mode_t mode)
-{
- return creat (path, mode);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/posix/grp.c b/PACE/pace/posix/grp.c
deleted file mode 100644
index 59b11cbb739..00000000000
--- a/PACE/pace/posix/grp.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/grp.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/grp.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/grp.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/grp.h b/PACE/pace/posix/grp.h
deleted file mode 100644
index 38be525562f..00000000000
--- a/PACE/pace/posix/grp.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace (posix ace)
- *
- * = FILENAME
- * pace/posix/grp.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_GRP_H_POSIX
-#define PACE_GRP_H_POSIX
-
-#include <grp.h>
-
-# if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_GROUP
-#define PACE_GROUP
-typedef struct group pace_group;
-#endif /* PACE_GROUP */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_GRP_H_POSIX */
diff --git a/PACE/pace/posix/grp.inl b/PACE/pace/posix/grp.inl
deleted file mode 100644
index fcac3d5f1fd..00000000000
--- a/PACE/pace/posix/grp.inl
+++ /dev/null
@@ -1,73 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/grp.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_group *
-pace_getgrgid (pace_gid_t gid)
-{
- return getgrgid (gid);
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getgrgid_r (pace_gid_t gid,
- pace_group * grp,
- char * buffer,
- size_t bufsize,
- pace_group ** result)
-{
-#if (PACE_LYNXOS)
- *result = getgrgid_r (grp, gid, buffer, bufsize);
- if (*result == 0)
- return errno;
- return 0;
-#else
- return getgrgid_r (gid, grp, buffer, bufsize, result);
-#endif /* ! PACE_LYNXOS */
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_group *
-pace_getgrnam (const char * name)
-{
- return getgrnam (name);
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getgrnam_r (const char * name,
- pace_group * grp,
- char * buffer,
- size_t bufsize,
- pace_group ** result)
-{
-#if (PACE_LYNXOS)
- *result = getgrnam_r (grp, PACE_NONCONST_ARG_CAST (char *) name,
- buffer, bufsize);
- if (*result == 0)
- return errno;
- return 0;
-#else
- return getgrnam_r (name, grp, buffer, bufsize, result);
-#endif /* ! PACE_LYNXOS */
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
diff --git a/PACE/pace/posix/limits.h b/PACE/pace/posix/limits.h
deleted file mode 100644
index fb952113bbd..00000000000
--- a/PACE/pace/posix/limits.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace (posix ace)
- *
- * = FILENAME
- * pace/posix/limits.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_LIMITS_H
-#define PACE_LIMITS_H
-
-#include <limits.h>
-
-# if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-# endif /* (PACE_HAS_CPLUSPLUS) */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_LIMITS_H */
diff --git a/PACE/pace/posix/locale.c b/PACE/pace/posix/locale.c
deleted file mode 100644
index 3f818716eda..00000000000
--- a/PACE/pace/posix/locale.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/locale.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/locale.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/locale.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/locale.h b/PACE/pace/posix/locale.h
deleted file mode 100644
index 704d23d3c96..00000000000
--- a/PACE/pace/posix/locale.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/locale.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#ifndef PACE_LOCALE_H_POSIX
-#define PACE_LOCALE_H_POSIX
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_LC_ALL LC_ALL
-#define PACE_LC_COLLATE LC_COLLATE
-#define PACE_LC_CTYPE LC_CTYPE
-#define PACE_LC_MONETARY LC_MONETARY
-#define PACE_LC_NUMERIC LC_NUMERIC
-#define PACE_LC_TIME LC_TIME
-#define PACE_NULL NULL
-
-#ifndef PACE_LCONV
-#define PACE_LCONV
-typedef struct lconv pace_lconv;
-#endif /* PACE_LCONV */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_LOCALE_H_POSIX */
diff --git a/PACE/pace/posix/locale.inl b/PACE/pace/posix/locale.inl
deleted file mode 100644
index ed0a94e319d..00000000000
--- a/PACE/pace/posix/locale.inl
+++ /dev/null
@@ -1,34 +0,0 @@
-/* $Id$ -*- C -*-
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/locale.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#include <locale.h>
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_lconv *
-pace_localeconv (void)
-{
- return localeconv ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-char *
-pace_setlocale (int category, const char * locale)
-{
- return setlocale (category, locale);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
diff --git a/PACE/pace/posix/math.c b/PACE/pace/posix/math.c
deleted file mode 100644
index 8c2e32301fa..00000000000
--- a/PACE/pace/posix/math.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/math.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/math.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/math.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/math.h b/PACE/pace/posix/math.h
deleted file mode 100644
index 34e68241bc7..00000000000
--- a/PACE/pace/posix/math.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/math.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_MATH_H_POSIX
-#define PACE_MATH_H_POSIX
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_HUGE_VAL HUGE_VAL
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_MATH_H_POSIX */
diff --git a/PACE/pace/posix/math.inl b/PACE/pace/posix/math.inl
deleted file mode 100644
index 29709c4dd95..00000000000
--- a/PACE/pace/posix/math.inl
+++ /dev/null
@@ -1,215 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/math.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-/* FUZZ: disable check_for_math_include */
-#include <math.h>
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_acos (double x)
-{
- return acos (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_asin (double x)
-{
- return asin (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_atan (double x)
-{
- return atan (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_atan2 (double x, double y)
-{
- return atan2 (x, y);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_cos (double x)
-{
- return cos (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_sin (double x)
-{
- return sin (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_tan (double x)
-{
- return tan (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_cosh (double x)
-{
- return cosh (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_sinh (double x)
-{
- return sinh (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_tanh (double x)
-{
- return tanh (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_exp (double x)
-{
- return exp (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_frexp (double x, int * exp)
-{
- return frexp (x, exp);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_ldexp (double x, int exp)
-{
- return ldexp (x, exp);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_log (double x)
-{
- return log (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_log10 (double x)
-{
- return log10 (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_modf (double x, double * iptr)
-{
- return modf (x, iptr);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_pow (double x, double y)
-{
- return pow (x, y);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_sqrt (double x)
-{
- return sqrt (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_ceil (double x)
-{
- return ceil (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_fabs (double x)
-{
- return fabs (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_floor (double x)
-{
- return floor (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_fmod (double x, double y)
-{
- return fmod (x, y);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
diff --git a/PACE/pace/posix/mman.c b/PACE/pace/posix/mman.c
deleted file mode 100644
index b68b87baa22..00000000000
--- a/PACE/pace/posix/mman.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/mman.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sys/mman.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/mman.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/mman.h b/PACE/pace/posix/mman.h
deleted file mode 100644
index f45efe48efa..00000000000
--- a/PACE/pace/posix/mman.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/mman.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_MMAN_H_POSIX
-#define PACE_SYS_MMAN_H_POSIX
-
-#include <sys/mman.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_MAP_FAILED MAP_FAILED
-#define PACE_MAP_FIXED MAP_FIXED
-#define PACE_MAP_PRIVATE MAP_PRIVATE
-#define PACE_MAP_SHARED MAP_SHARED
-#define PACE_MCL_CURRENT MCL_CURRENT
-#define PACE_MS_ASYNC MS_ASYNC
-#define PACE_MS_INVALIDATE
-#define PACE_MS_SYNC MS_SYNC
-#define PACE_PROT_EXEC PROT_EXEC
-#define PACE_PROT_NONE PROT_NONE
-#define PACE_PROT_READ PROT_READ
-#define PACE_PROT_WRITE PROT_WRITE
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_MMAN_H_POSIX */
diff --git a/PACE/pace/posix/mman.inl b/PACE/pace/posix/mman.inl
deleted file mode 100644
index a89782fa44e..00000000000
--- a/PACE/pace/posix/mman.inl
+++ /dev/null
@@ -1,127 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/mman.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mlock (const void * addr, pace_size_t len)
-{
- return mlock (((char*)addr), len);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mlockall (int flags)
-{
- return mlockall (flags);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_mmap (void * addr,
- pace_size_t len,
- int prot,
- int flags,
- PACE_HANDLE fildes,
- pace_off_t off)
-{
- return mmap ((char *) addr, len, prot, flags, fildes, off);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_munlock (const void * addr, pace_size_t len)
-{
- return munlock (((char*)addr), len);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mprotect (void * addr,
- pace_size_t len,
- int prot)
-{
- return mprotect ((char*)addr, len, prot);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_msync (void * addr,
- pace_size_t len,
- int flags)
-{
- return msync ((char*)addr, len, flags);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_munlockall ()
-{
- return munlockall ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_munmap (void * addr, pace_size_t len)
-{
- return munmap ((char *) addr, len);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-PACE_HANDLE
-pace_shm_open (const char * name,
- int oflag,
- pace_mode_t mode)
-{
-# if (PACE_POSIX_C_SOURCE > 2)
- return shm_open (name, oflag, mode);
-# else /* ! PACE_POSIX_C_SOURCE */
- PACE_UNUSED_ARG (name);
- PACE_UNUSED_ARG (oflag);
- PACE_UNUSED_ARG (mode);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-# endif /* ! PACE_POSIX_C_SOURCE */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_shm_unlink (const char * name)
-{
-# if (PACE_POSIX_C_SOURCE > 2)
- return shm_unlink (name);
-# else /* ! PACE_POSIX_C_SOURCE */
- PACE_UNUSED_ARG (name);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-# endif /* ! PACE_POSIX_C_SOURCE */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/posix/mqueue.c b/PACE/pace/posix/mqueue.c
deleted file mode 100644
index 596c75e3905..00000000000
--- a/PACE/pace/posix/mqueue.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace (posix ace)
- *
- * = FILENAME
- * pace/posix/mqueue.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/mqueue.h"
-
-#if PACE_LINUX
-# include "pace/emulation/mqueue.c"
-#endif /* PACE_LINUX */
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/mqueue.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/mqueue.h b/PACE/pace/posix/mqueue.h
deleted file mode 100644
index 66483f040cf..00000000000
--- a/PACE/pace/posix/mqueue.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/mqueue.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_MQUEUE_H_POSIX
-#define PACE_MQUEUE_H_POSIX
-
-#if PACE_LINUX
-# include "pace/emulation/mqueue.h"
-#else
-# include <mqueue.h>
-#endif /* PACE_LINUX */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_MQD_T
-#define PACE_MQD_T
- typedef mqd_t pace_mqd_t;
-#endif /* PACE_MQD_T */
-
-#ifndef PACE_MQ_ATTR
-#define PACE_MQ_ATTR
- typedef struct mq_attr pace_mq_attr;
-#endif /* PACE_MQ_ATTR */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_MQUEUE_H_POSIX */
diff --git a/PACE/pace/posix/mqueue.inl b/PACE/pace/posix/mqueue.inl
deleted file mode 100644
index 2459563e9b3..00000000000
--- a/PACE/pace/posix/mqueue.inl
+++ /dev/null
@@ -1,87 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/mqueue.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_close (pace_mqd_t mqdes)
-{
- return mq_close (mqdes);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_getattr (pace_mqd_t mqdes,
- pace_mq_attr * mqstat)
-{
- return mq_getattr (mqdes, mqstat);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_notify (pace_mqd_t mqdes,
- const pace_sigevent * notification)
-{
- return mq_notify (mqdes, notification);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-ssize_t
-pace_mq_receive (pace_mqd_t mqdes,
- char * msg_ptr,
- size_t msg_len,
- unsigned int * msg_prio)
-{
- return mq_receive (mqdes, msg_ptr, msg_len, msg_prio);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_send (pace_mqd_t mqdes,
- const char * msg_ptr,
- size_t msg_len,
- unsigned int msg_prio)
-{
- return mq_send (mqdes, msg_ptr, msg_len, msg_prio);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_setattr (pace_mqd_t mqdes,
- const pace_mq_attr * mqstat,
- pace_mq_attr * omqstat)
-{
- return mq_setattr (mqdes, mqstat, omqstat);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_unlink (const char * name)
-{
- return mq_unlink (name);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/posix/pthread.c b/PACE/pace/posix/pthread.c
deleted file mode 100644
index 426c377c446..00000000000
--- a/PACE/pace/posix/pthread.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/pthread.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/pthread.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/pthread.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/pthread.h b/PACE/pace/posix/pthread.h
deleted file mode 100644
index b998c50e7c1..00000000000
--- a/PACE/pace/posix/pthread.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/pthread.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_PTHREAD_H_POSIX
-#define PACE_PTHREAD_H_POSIX
-
-#include <pthread.h>
-#include "pace/sys/types.h"
-#include "pace/signal.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_PTHREAD_CANCELED PTHREAD_CANCELED
-#define PACE_PTHREAD_CANCEL_AYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS
-#define PACE_PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED
-#define PACE_PTHREAD_CACEL_DISABLE PTHREAD_CANCEL_DISABLE
-#define PACE_PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE
-#define PACE_PTHREAD_COND_INITIALIZER PTHREAD_COND_INITIALIZER
-#define PACE_PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED
-#define PACE_PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE
-#define PACE_PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED
-#define PACE_PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED
-#define PACE_PTHREAD_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
-#define PACE_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
-#define PACE_PTHREAD_PRIO_INHERIT PTHREAD_PRIO_INHERIT
-#define PACE_PTHREAD_PRIO_NONE PTHREAD_PRIO_NONE
-#define PACE_PTHREAD_PRIO_PROTECT PTHREAD_PRIO_PROTECT
-#define PACE_PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
-#define PACE_PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED
-#define PACE_PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS
-#define PACE_PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM
-
-#ifndef PACE_SCHED_PARAM
-#define PACE_SCHED_PARAM
- typedef struct sched_param pace_sched_param;
-#endif /* PACE_SCHED_PARAM */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-# ifndef PACE_ATFORK_PF
-# define PACE_ATFORK_PF
- typedef void (*pace_atfork_pf) (void);
-# endif /* PACE_ATFORK_PF */
-
-# ifndef PACE_KEYCREATE_PF
-# define PACE_KEYCREATE_PF
- typedef void (*pace_keycreate_pf) (void*);
-# endif /* PACE_KEYCREATE_PF */
-
-# ifndef PACE_ONCE_PF
-# define PACE_ONCE_PF
- typedef void (*pace_once_pf) (void);
-# endif /* PACE_ONCE_PF */
-
-# ifndef PACE_CREATE_PF
-# define PACE_CREATE_PF
- typedef void* (*pace_create_pf) (void*);
-# endif /* PACE_CREATE_PF */
-
-#endif /* PACE_HAS_CPLUPLUS */
-
-
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_PTHREAD_H_POSIX */
diff --git a/PACE/pace/posix/pthread.inl b/PACE/pace/posix/pthread.inl
deleted file mode 100644
index cb16f5b9575..00000000000
--- a/PACE/pace/posix/pthread.inl
+++ /dev/null
@@ -1,761 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/pthread.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/unistd.h"
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-# if defined (PACE_HAS_CPLUSPLUS)
-PACE_INLINE
-int
-pace_pthread_atfork (pace_atfork_pf prepare,
- pace_atfork_pf parent,
- pace_atfork_pf child)
-{
- return pthread_atfork (prepare, parent, child);
-}
-# else /* ! PACE_HAS_CPLUSPLUS */
-PACE_INLINE
-int
-pace_pthread_atfork (void (*prepare) (),
- void (*parent) (),
- void (*child) ())
-{
- return pthread_atfork (prepare, parent, child);
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_destroy (pace_pthread_attr_t * attr)
-{
- return pthread_attr_destroy (attr);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getdetachstate (const pace_pthread_attr_t * attr,
- int * detachstate)
-{
- return pthread_attr_getdetachstate (attr, detachstate);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getinheritsched (const pace_pthread_attr_t * attr,
- int * inheritsched)
-{
-#if PACE_LYNXOS == 0x300
- return pthread_attr_getinheritsched (PACE_NONCONST_ARG_CAST (pace_pthread_attr_t *) attr);
-#else
- return pthread_attr_getinheritsched (PACE_NONCONST_ARG_CAST (pace_pthread_attr_t *) attr,
- inheritsched);
-#endif /* PACE_LYNXOS != 0x300 */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getschedparam (const pace_pthread_attr_t * attr,
- pace_sched_param * param)
-{
- return pthread_attr_getschedparam (attr, param);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getschedpolicy (const pace_pthread_attr_t * attr,
- int * policy)
-{
- return pthread_attr_getschedpolicy (attr, policy);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getscope (const pace_pthread_attr_t * attr,
- int * contentionscope)
-{
- return pthread_attr_getscope (attr, contentionscope);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getstackaddr (const pace_pthread_attr_t * attr,
- void ** stackaddr)
-{
- return pthread_attr_getstackaddr (attr, stackaddr);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getstacksize (const pace_pthread_attr_t * attr,
- size_t * stacksize)
-{
-#if PACE_LYNXOS == 0x300
- return pthread_attr_getstacksize (PACE_NONCONST_ARG_CAST (pace_pthread_attr_t *) attr);
-#else
- return pthread_attr_getstacksize (PACE_NONCONST_ARG_CAST (pace_pthread_attr_t *) attr,
- stacksize);
-#endif /* PACE_LYNXOS != 0x300 */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_init (pace_pthread_attr_t * attr)
-{
- return pthread_attr_init (attr);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setdetachstate (pace_pthread_attr_t * attr,
- int detachstate)
-{
- return pthread_attr_setdetachstate (attr, detachstate);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setinheritsched (pace_pthread_attr_t * attr,
- int inheritsched)
-{
- return pthread_attr_setinheritsched (attr, inheritsched);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setschedparam (pace_pthread_attr_t * attr,
- const pace_sched_param * param)
-{
- return pthread_attr_setschedparam (attr, param);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setschedpolicy (pace_pthread_attr_t * attr,
- int policy)
-{
- return pthread_attr_setschedpolicy (attr, policy);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setscope (pace_pthread_attr_t * attr,
- int contentionscope)
-{
- return pthread_attr_setscope (attr, contentionscope);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setstackaddr (pace_pthread_attr_t * attr,
- void * stackaddr)
-{
- return pthread_attr_setstackaddr (attr, stackaddr);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setstacksize (pace_pthread_attr_t * attr,
- size_t stacksize)
-{
- return pthread_attr_setstacksize (attr, stacksize);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cancel (pace_pthread_t thread)
-{
- return pthread_cancel (thread);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_broadcast (pace_pthread_cond_t * cond)
-{
- return pthread_cond_broadcast (cond);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_destroy (pace_pthread_cond_t * cond)
-{
- return pthread_cond_destroy (cond);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_init (pace_pthread_cond_t * cond,
- const pace_pthread_condattr_t * attr)
-{
-#if PACE_LYNXOS == 0x300
- return pthread_cond_init (cond, *attr);
-#else
- return pthread_cond_init (cond, attr);
-#endif /* PACE_LYNXOS != 0x300 */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_signal (pace_pthread_cond_t * cond)
-{
- return pthread_cond_signal (cond);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_timedwait (pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex,
- const pace_timespec * abstime)
-{
- return pthread_cond_timedwait (cond, mutex, PACE_NONCONST_ARG_CAST (struct timespec *) abstime);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_wait (pace_pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex)
-{
- return pthread_cond_wait (cond, mutex);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_destroy (pace_pthread_condattr_t * attr)
-{
- return pthread_condattr_destroy (attr);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_getpshared (const pace_pthread_condattr_t * attr,
- int * pshared)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (pshared);
- return -1;
-#else
- return pthread_condattr_getpshared (PACE_NONCONST_ARG_CAST (pace_pthread_condattr_t *) attr, pshared);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_init (pace_pthread_condattr_t * attr)
-{
- return pthread_condattr_init (attr);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_setpshared (pace_pthread_condattr_t * attr,
- int pshared)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (pshared);
- return -1;
-#else
- return pthread_condattr_setpshared (attr, pshared);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-# if defined (PACE_HAS_CPLUSPLUS)
-PACE_INLINE
-int
-pace_pthread_create (pace_pthread_t * thread,
- const pace_pthread_attr_t * attr,
- pace_create_pf start_routine,
- void * arg)
-{
- return pthread_create (thread, attr, start_routine, arg);
-}
-# else /* ! PACE_HAS_CPLUSPLUS */
-PACE_INLINE
-int
-pace_pthread_create (pace_pthread_t * thread,
- const pace_pthread_attr_t * attr,
- void * (*start_routine) (void*),
- void * arg)
-{
-#if PACE_LYNXOS == 0x300
- return pthread_create (thread, *attr, start_routine, arg);
-#else
- return pthread_create (thread, attr, start_routine, arg);
-#endif /* PACE_LYNXOS != 0x300 */
-}
-# endif /*! PACE_HAS_CPLUSPLUS */
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_detach (pace_pthread_t thread)
-{
-#if PACE_LYNXOS == 0x300
- return pthread_detach (&thread);
-#else
- return pthread_detach (thread);
-#endif /* PACE_LYNXOS != 0x300 */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_equal (pace_pthread_t t1, pthread_t t2)
-{
- return pthread_equal (t1, t2);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void
-pace_pthread_exit (void * value_ptr)
-{
- pthread_exit (value_ptr);
- return;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_getschedparam (pace_pthread_t thread,
- int * policy,
- pace_sched_param * param)
-{
- return pthread_getschedparam (thread, policy, param);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_pthread_getspecific (pace_pthread_key_t key)
-{
-#if PACE_LYNXOS == 0x300
- void *value;
- if (pthread_getspecific (key, &value) != 0)
- return 0;
-
- return value;
-#else
- return pthread_getspecific (key);
-#endif /* PACE_LYNXOS != 0x300 */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_join (pace_pthread_t thread, void ** value_ptr)
-{
- return pthread_join (thread, value_ptr);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-# if defined (PACE_HAS_CPLUSPLUS)
-PACE_INLINE
-int
-pace_pthread_key_create (pace_pthread_key_t * key,
- pace_keycreate_pf destructor)
-{
- return pthread_key_create (key, destructor);
-}
-#else /* ! PACE_HAS_CPLUSPLUS */
-PACE_INLINE
-int
-pace_pthread_key_create (pace_pthread_key_t * key,
- void (*destructor)(void*))
-{
- return pthread_key_create (key, destructor);
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_key_delete (pace_pthread_key_t key)
-{
- return pthread_key_delete (key);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_kill (pace_pthread_t thread, int sig)
-{
- return pthread_kill (thread, sig);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_destroy (pace_pthread_mutex_t * mutex)
-{
- return pthread_mutex_destroy (mutex);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_getprioceiling (pace_pthread_mutex_t * mutex,
- int * prioceiling)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (mutex);
- PACE_UNUSED_ARG (prioceiling);
- return -1;
-#elif PACE_LYNXOS
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-#else /* ! PACE_LYNXOS */
- return pthread_mutex_getprioceiling (mutex, prioceiling);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_init (pace_pthread_mutex_t * mutex,
- const pace_pthread_mutexattr_t * attr)
-{
-#if PACE_LYNXOS == 0x300
- return pthread_mutex_init (mutex, *attr);
-#else
- return pthread_mutex_init (mutex, attr);
-#endif /* PACE_LYNXOS != 0x300 */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_lock (pace_pthread_mutex_t * mutex)
-{
- return pthread_mutex_lock (mutex);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_setprioceiling (pace_pthread_mutex_t * mutex,
- int prioceiling,
- int * old_ceiling)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (mutex);
- PACE_UNUSED_ARG (prioceiling);
- PACE_UNUSED_ARG (old_ceiling);
- return -1;
-#elif PACE_LYNXOS
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-#else /* ! PACE_LYNXOS */
- return pthread_mutex_setprioceiling (mutex, prioceiling, old_ceiling);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_trylock (pthread_mutex_t * mutex)
-{
- return pthread_mutex_trylock (mutex);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_unlock (pace_pthread_mutex_t * mutex)
-{
- return pthread_mutex_unlock (mutex);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_destroy (pace_pthread_mutexattr_t * attr)
-{
- return pthread_mutexattr_destroy (attr);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_getprioceiling (pace_pthread_mutexattr_t * attr,
- int * prioceiling)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (prioceiling);
- return -1;
-#else
- return pthread_mutexattr_getprioceiling (attr, prioceiling);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_getprotocol (const pace_pthread_mutexattr_t * attr,
- int * protocol)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (protocol);
- return -1;
-#else
- return pthread_mutexattr_getprotocol (PACE_NONCONST_ARG_CAST (pace_pthread_mutexattr_t *) attr, protocol);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_setprioceiling (pace_pthread_mutexattr_t * attr,
- int prioceiling)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (prioceiling);
- return -1;
-#else
- return pthread_mutexattr_setprioceiling (attr, prioceiling);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_setprotocol (pace_pthread_mutexattr_t * attr,
- int protocol)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (protocol);
- return -1;
-#else
- return pthread_mutexattr_setprotocol (attr, protocol);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_getpshared (const pace_pthread_mutexattr_t * attr,
- int * pshared)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (pshared);
- return -1;
-#else
- return pthread_mutexattr_getpshared (PACE_NONCONST_ARG_CAST (pace_pthread_mutexattr_t *) attr, pshared);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_init (pace_pthread_mutexattr_t * attr)
-{
- return pthread_mutexattr_init (attr);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_setpshared (pace_pthread_mutexattr_t * attr,
- int pshared)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (pshared);
- return -1;
-#else
- return pthread_mutexattr_setpshared (attr, pshared);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-# if defined (PACE_HAS_CPLUSPLUS)
-PACE_INLINE
-int
-pace_pthread_once (pace_pthread_once_t * once_control,
- pace_once_pf void_routine)
-{
- return pthread_once (once_control, void_routine);
-}
-# else /* ! PACE_HAS_CPLUSPLUS */
-PACE_INLINE
-int
-pace_pthread_once (pace_pthread_once_t * once_control,
- void (*void_routine) (void))
-{
- return pthread_once (once_control, void_routine);
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_pthread_t
-pace_pthread_self ()
-{
- return pthread_self ();
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setcancelstate (int state, int * oldstate)
-{
- return pthread_setcancelstate (state, oldstate);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setcanceltype (int type, int * oldtype)
-{
- return pthread_setcanceltype (type, oldtype);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setschedparam (pace_pthread_t thread,
- int policy,
- const pace_sched_param * param)
-{
- return pthread_setschedparam (thread, policy, param);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setspecific (pace_pthread_key_t key, const void * value)
-{
- return pthread_setspecific (key, PACE_NONCONST_ARG_CAST (void *) value);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_sigmask (int how, const sigset_t * set,
- sigset_t * oset)
-{
- return pthread_sigmask (how, set, oset);
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void
-pace_pthread_testcancel ()
-{
- pthread_testcancel ();
- return;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
diff --git a/PACE/pace/posix/pwd.c b/PACE/pace/posix/pwd.c
deleted file mode 100644
index 6284186cd66..00000000000
--- a/PACE/pace/posix/pwd.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/pwd.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/pwd.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/pwd.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/pwd.h b/PACE/pace/posix/pwd.h
deleted file mode 100644
index 70398e0871c..00000000000
--- a/PACE/pace/posix/pwd.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/pwd.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_PWD_H_POSIX
-#define PACE_PWD_H_POSIX
-
-#include <pwd.h>
-#include "pace/sys/types.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_PASSWD
-#define PACE_PASSWD
- typedef struct passwd pace_passwd;
-#endif /* PACE_PASSWD */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_PWD_H_POSIX */
diff --git a/PACE/pace/posix/pwd.inl b/PACE/pace/posix/pwd.inl
deleted file mode 100644
index ee52fd2be0d..00000000000
--- a/PACE/pace/posix/pwd.inl
+++ /dev/null
@@ -1,81 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/pwd.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_passwd *
-pace_getpwuid (pace_uid_t uid)
-{
- return getpwuid (uid);
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getpwuid_r (pace_uid_t uid,
- pace_passwd * pwd,
- char * buffer,
- pace_size_t bufsize,
- pace_passwd ** result)
-{
-#if (PACE_LYNXOS)
- if (getpwuid_r (pwd, uid, buffer, bufsize) == 0)
- /* Successful search */
- {
- **result = *pwd;
- return 0;
- }
-
- return -1;
-#else
- return getpwuid_r (uid, pwd, buffer, bufsize, result);
-#endif /* ! PACE_LYNXOS */
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_passwd *
-pace_getpwnam (const char * name)
-{
- return getpwnam (name);
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getpwnam_r (const char * name,
- pace_passwd * pwd,
- char * buffer,
- pace_size_t bufsize,
- pace_passwd ** result)
-{
-# if (PACE_LYNXOS)
- if (getpwnam_r (pwd, PACE_NONCONST_ARG_CAST (char *) name,
- buffer, bufsize) == 0)
- /* Successful search */
- {
- **result = *pwd;
- return 0;
- }
-
- return -1;
-#else
- return getpwnam_r (name, pwd, buffer, bufsize, result);
-#endif /* ! PACE_LYNXOS */
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
diff --git a/PACE/pace/posix/sched.c b/PACE/pace/posix/sched.c
deleted file mode 100644
index d78a66dbc7f..00000000000
--- a/PACE/pace/posix/sched.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/sched.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sched.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/sched.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/sched.h b/PACE/pace/posix/sched.h
deleted file mode 100644
index a3405d2bbd1..00000000000
--- a/PACE/pace/posix/sched.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/sched.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SCHED_H_POSIX
-#define PACE_SCHED_H_POSIX
-
-#include <sched.h>
-#include "pace/time.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_SCHED_FIFO SCHED_FIFO
-#define PACE_SCHED_OTHER SCHED_RR
-
-#ifndef PACE_SCHED_PARAM
-#define PACE_SCHED_PARAM
- typedef struct sched_param pace_sched_param;
-#endif /* PACE_SCHED_PARAM */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SCHED_H_POSIX */
diff --git a/PACE/pace/posix/sched.inl b/PACE/pace/posix/sched.inl
deleted file mode 100644
index 86f3ac7d776..00000000000
--- a/PACE/pace/posix/sched.inl
+++ /dev/null
@@ -1,95 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/sched.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_get_priority_max (int policy)
-{
- return sched_get_priority_max (policy);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_get_priority_min (int policy)
-{
- return sched_get_priority_min (policy);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_getparam (pace_pid_t pid,
- pace_sched_param * param)
-{
- return sched_getparam (pid, param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_rr_get_interval (pace_pid_t pid,
- pace_timespec * interval)
-{
-#if PACE_SUNOS == 551
- return sched_get_rr_get_interval (pid, interval);
-#else
- return sched_rr_get_interval (pid, interval);
-#endif /* PACE_SUNOS != 551 */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_setparam (pace_pid_t pid,
- const pace_sched_param * param)
-{
- return sched_setparam (pid, param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_getscheduler (pace_pid_t pid)
-{
- return sched_getscheduler (pid);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_setscheduler (pace_pid_t pid,
- int policy,
- const pace_sched_param * param)
-{
- return sched_setscheduler (pid, policy, param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_yield ()
-{
- return sched_yield ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/posix/semaphore.c b/PACE/pace/posix/semaphore.c
deleted file mode 100644
index 695190f4531..00000000000
--- a/PACE/pace/posix/semaphore.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/semaphore.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/semaphore.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/semaphore.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/semaphore.h b/PACE/pace/posix/semaphore.h
deleted file mode 100644
index 4cdf0d3dd04..00000000000
--- a/PACE/pace/posix/semaphore.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/semaphore.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SEMAPHORE_H_POSIX
-#define PACE_SEMAPHORE_H_POSIX
-
-#include <semaphore.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-typedef sem_t pace_sem_t;
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SEMAPHORE_H_POSIX */
diff --git a/PACE/pace/posix/semaphore.inl b/PACE/pace/posix/semaphore.inl
deleted file mode 100644
index b0d4fb21906..00000000000
--- a/PACE/pace/posix/semaphore.inl
+++ /dev/null
@@ -1,86 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/semaphore.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_close (pace_sem_t * sem)
-{
- return sem_close (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_destroy (pace_sem_t * sem)
-{
- return sem_destroy (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_getvalue (pace_sem_t * sem, int * sval)
-{
- return sem_getvalue (sem, sval);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_init (pace_sem_t * sem, int pshared, unsigned int value)
-{
- return sem_init (sem, pshared, value);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_post (pace_sem_t * sem)
-{
- return sem_post (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_trywait (pace_sem_t * sem)
-{
- return sem_trywait (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_unlink (const char * name)
-{
- return sem_unlink (name);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_wait (pace_sem_t * sem)
-{
- return sem_wait (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/posix/setjmp.c b/PACE/pace/posix/setjmp.c
deleted file mode 100644
index 00db5828a7c..00000000000
--- a/PACE/pace/posix/setjmp.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/setjmp.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/setjmp.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/setjmp.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/setjmp.h b/PACE/pace/posix/setjmp.h
deleted file mode 100644
index 30221f2e74d..00000000000
--- a/PACE/pace/posix/setjmp.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/setjmp.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SETJMP_H_POSIX
-#define PACE_SETJMP_H_POSIX
-
-#include <setjmp.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- typedef jmp_buf pace_jmp_buf;
- typedef sigjmp_buf pace_sigjmp_buf;
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SETJMP_H_POSIX */
diff --git a/PACE/pace/posix/setjmp.inl b/PACE/pace/posix/setjmp.inl
deleted file mode 100644
index e51bcb77167..00000000000
--- a/PACE/pace/posix/setjmp.inl
+++ /dev/null
@@ -1,34 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/setjmp.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_longjmp (pace_jmp_buf env, int val)
-{
- longjmp (env, val);
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-void
-pace_siglongjmp (pace_sigjmp_buf env, int val)
-{
- siglongjmp (env, val);
- return;
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
diff --git a/PACE/pace/posix/signal.c b/PACE/pace/posix/signal.c
deleted file mode 100644
index 46d96b76fb0..00000000000
--- a/PACE/pace/posix/signal.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/signal.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/signal.h"
-
-#if (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/signal.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#if (PACE_HAS_CPLUSPLUS)
-}
-#endif
diff --git a/PACE/pace/posix/signal.h b/PACE/pace/posix/signal.h
deleted file mode 100644
index 6362595ae31..00000000000
--- a/PACE/pace/posix/signal.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/signal.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#ifndef PACE_SIGNAL_H_POSIX
-#define PACE_SIGNAL_H_POSIX
-
-#include <signal.h>
-#include "pace/sys/types.h"
-#include "pace/time.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_SIG_PF
-# define PACE_SIG_PF
- typedef void (*pace_sig_pf)(int);
-#endif /* PACE_SIG_PF */
-
-#ifndef PACE_SIG_ATOMIC_T
-#define PACE_SIG_ATOMIC_T
- typedef sig_atomic_t pace_sig_atomic_t;
-#endif /* PACE_SIG_ATOMIC_T */
-
-#ifndef PACE_SIGSET_T
-#define PACE_SIGSET_T
- typedef sigset_t pace_sigset_t;
-#endif /* PACE_SIGSET_T */
-
-#ifndef PACE_SIGACTION_S
-#define PACE_SIGACTION_S
- typedef struct sigaction pace_sigaction_s;
-#endif /* PACE_SIGACTION_S */
-
-#ifndef PACE_SIGINFO_T
-#define PACE_SIGINFO_T
- typedef siginfo_t pace_siginfo_t;
-#endif /* PACE_SIGINFO_T */
-
-#ifndef PACE_SIGEVENT
-#define PACE_SIGEVENT
- typedef struct sigevent pace_sigevent;
-#endif /* PACE_SIGEVENT */
-
-#ifndef PACE_SIGVAL
-#define PACE_SIGVAL
- typedef union sigval pace_sigval;
-#endif /* PACE_SIGVAL */
-
-#ifndef PACE_TIMESPEC
-#define PACE_TIMESPEC
- typedef struct timespec pace_timespec;
-#endif /* PACE_TIMESPEC */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SIGNAL_H_POSIX */
diff --git a/PACE/pace/posix/signal.inl b/PACE/pace/posix/signal.inl
deleted file mode 100644
index ce591600baa..00000000000
--- a/PACE/pace/posix/signal.inl
+++ /dev/null
@@ -1,167 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/signal.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/pthread.h"
-#include "pace/time.h"
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_kill (pace_pid_t pid, int sig)
-{
- return kill (pid, sig);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_raise (int sig)
-{
- /* Implementation from POSIX std 8.1:54 */
- return pthread_kill (pthread_self (), sig);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigaction (int sig, const pace_sigaction_s * act,
- pace_sigaction_s * oact)
-{
- return sigaction (sig, act, oact);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigaddset (pace_sigset_t * set, int signo)
-{
- return sigaddset (set, signo);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigemptyset (pace_sigset_t * set)
-{
- return sigemptyset (set);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigdelset (pace_sigset_t * set, int signo)
-{
- return sigdelset (set, signo);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigfillset (pace_sigset_t * set)
-{
- return sigfillset (set);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigismember (const pace_sigset_t * set, int signo)
-{
- return sigismember (set, signo);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_sig_pf
-pace_signal (int sig, pace_sig_pf func)
-{
- return signal (sig, func);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigpending (pace_sigset_t * set)
-{
- return sigpending (set);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigprocmask (int how, const pace_sigset_t * set,
- pace_sigset_t * oset)
-{
- return sigprocmask (how, set, oset);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigqueue (pace_pid_t pid, int signo,
- const pace_sigval value)
-{
- return sigqueue (pid, signo, value);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigsuspend (const pace_sigset_t * sigmask)
-{
- return sigsuspend (sigmask);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigtimedwait (const pace_sigset_t * set, pace_siginfo_t * info,
- const pace_timespec * timeout)
-{
- return sigtimedwait (set, info, timeout);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigwait (const pace_sigset_t * set, int * sig)
-{
- return sigwait (PACE_NONCONST_ARG_CAST (pace_sigset_t *) set,
- PACE_VOIDSTARTSTAR_ARG_CAST (void**) sig);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigwaitinfo (const pace_sigset_t *set, pace_siginfo_t *info)
-{
- return sigwaitinfo (set, info);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/posix/socket.c b/PACE/pace/posix/socket.c
deleted file mode 100644
index ef5494116c7..00000000000
--- a/PACE/pace/posix/socket.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/socket.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sys/socket.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/socket.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/socket.h b/PACE/pace/posix/socket.h
deleted file mode 100644
index 187230d776a..00000000000
--- a/PACE/pace/posix/socket.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/socket.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SOCKET_H_POSIX
-#define PACE_SOCKET_H_POSIX
-
-#include <sys/types.h>
-#if PACE_LYNXOS == 0x300 || PACE_LYNXOS == 0x310
-#include <socket.h>
-#include <uio.h>
-#else
-#include <sys/socket.h>
-#include <sys/uio.h>
-#endif /* PACE_LYNXOS != 0x300 && PACE_LYNXOS != 0x310 */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_SOMAXCONN
-#define PACE_SOMAXCONN SOMAXCONN
-#endif /* PACE_SOMAXCONN */
-
-#ifndef PACE_SOCKLEN_T
-#define PACE_SOCKLEN_T
-# if PACE_LYNXOS == 0x300 || PACE_LYNXOS == 0x310 || PACE_SUNOS == 551 || PACE_SUNOS == 560 || PACE_QNX == 600
- typedef int pace_socklen_t;
-# else
- typedef socklen_t pace_socklen_t;
-# endif /* PACE_LYNXOS != 0x300 && PACE_LYNXOS != 0x310 */
-#endif /* PACE_SOCKLEN_T */
-
-#ifndef PACE_SA_FAMILY_T
-#define PACE_SA_FAMILY_T
-# if PACE_LYNXOS != 0x300 && PACE_LYNXOS != 0x310 && PACE_SUNOS != 551 && (PACE_HPUX)
- typedef sa_family_t pace_family_t;
-# endif /* PACE_LYNXOS != 0x300 && PACE_LYNXOS != 0x310 */
-#endif /* PACE_SA_FAMILY_T */
-
-#ifndef PACE_MSGHDR
-#define PACE_MSGHDR
- typedef struct msghdr pace_msghdr;
-#endif /* PACE_MSGHDR */
-
-#ifndef PACE_CMSGRHDR
-#define PACE_CMSGRHDR
- typedef struct cmsghdr pace_cmsghdr;
-#endif /* PACE_CMSGRHDR */
-
-#ifndef PACE_LINGER
-#define PACE_LINGER
- typedef struct linger pace_linger;
-#endif /* PACE_LINGER */
-
-#ifndef PACE_SOCK_STREAM
-#define PACE_SOCK_STREAM SOCK_STREAM
-#endif /* PACE_SOCK_STREAM */
-
-#ifndef PACE_SOCK_DGRAM
-#define PACE_SOCK_DGRAM SOCK_DGRAM
-#endif /* PACE_SOCK_DGRAM */
-
-#ifndef PACE_SOCK_RAW
-#define PACE_SOCK_RAW SOCK_RAW
-#endif /* PACE_MSGHDR */
-
-#ifndef PACE_SOCK_SEQPACKET
-#define PACE_SOCK_SEQPACKET SOCK_SEQPACKET
-#endif /* PACE_SOCK_SEQPACKET */
-
-#ifndef PACE_PF_UNSPEC
-#define PACE_PF_UNSPEC PF_UNSPEC
-#endif /* PACE_PF_UNSPEC */
-
-#ifndef PACE_PF_LOCAL
-#define PACE_PF_LOCAL PF_LOCAL
-#endif /* PACE_PF_LOCAL */
-
-#ifndef PACE_PF_INET
-#define PACE_PF_INET PF_INET
-#endif /* PACE_PF_INET */
-
-#ifndef PACE_PF_ISO
-#define PACE_PF_ISO PF_ISO
-#endif /* PACE_PF_ISO */
-
-#ifndef PACE_PF_OSI
-#define PACE_PF_OSI PF_OSI
-#endif /* PACE_PF_OSI */
-
-#ifndef PACE_AF_UNSPEC
-#define PACE_AF_UNSPEC AF_UNSPEC
-#endif /* PACE_AF_UNSPEC */
-
-#ifndef PACE_AF_LOCAL
-#define PACE_AF_LOCAL AF_LOCAL
-#endif /* PACE_AF_LOCAL */
-
-#ifndef PACE_AF_INET
-#define PACE_AF_INET AF_INET
-#endif /* PACE_AF_INET */
-
-#ifndef PACE_AF_ISO
-#define PACE_AF_ISO AF_ISO
-#endif /* PACE_AF_ISO */
-
-#ifndef PACE_AF_OSI
-#define PACE_AF_OSI AF_OSI
-#endif /* PACE_AF_OSI */
-
-#ifndef PACE_MSG_OOB
-#define PACE_MSG_OOB MSG_OOB
-#endif /* PACE_MSG_OOB */
-
-#ifndef PACE_MSG_PEEK
-#define PACE_MSG_PEEK MSG_PEEK
-#endif /* PACE_MSG_PEEK */
-
-#ifndef PACE_MSG_DONTROUTE
-#define PACE_MSG_DONTROUTE MSG_DONTROUTE
-#endif /* PACE_MSG_DONTROUTE */
-
-#ifndef PACE_MSG_EOR
-#define PACE_MSG_EOR MSG_EOR
-#endif /* PACE_MSG_EOR */
-
-#ifndef PACE_MSG_TRUNC
-#define PACE_MSG_TRUNC MSG_TRUNC
-#endif /* PACE_MSG_TRUNC */
-
-#ifndef PACE_MSG_CTRUNC
-#define PACE_MSG_CTRUNC MSG_CTRUNC
-#endif /* PACE_MSG_CTRUNC */
-
-#ifndef PACE_MSG_WAITALL
-#define PACE_MSG_WAITALL MSG_WAITALL
-#endif /* PACE_MSG_WAITALL */
-
-#ifndef PACE_SOL_SOCKET
-#define PACE_SOL_SOCKET SOL_SOCKET
-#endif /* PACE_SOL_SOCKET */
-
-#ifndef PACE_SO_BROADCAST
-#define PACE_SO_BROADCAST SO_BROADCAST
-#endif /* PACE_SO_BROADCAST */
-
-#ifndef PACE_SO_DEBUG
-#define PACE_SO_DEBUG SO_DEBUG
-#endif /* PACE_SO_DEBUG */
-
-#ifndef PACE_SO_DONTROUTE
-#define PACE_SO_DONTROUTE SO_DONTROUTE
-#endif /* PACE_SO_DONTROUTE */
-
-#ifndef PACE_SO_ERROR
-#define PACE_SO_ERROR SO_ERROR
-#endif /* PACE_SO_ERROR */
-
-#ifndef PACE_SO_KEEPALIVE
-#define PACE_SO_KEEPALIVE SO_KEEPALIVE
-#endif /* PACE_SO_KEEPALIVE */
-
-#ifndef PACE_SO_LINGER
-#define PACE_SO_LINGER SO_LINGER
-#endif /* PACE_SO_LINGER */
-
-#ifndef PACE_SO_OOBINLINE
-#define PACE_SO_OOBINLINE SO_OOBINLINE
-#endif /* PACE_SO_OOBINLINE */
-
-#ifndef PACE_SO_RCVBUF
-#define PACE_SO_RCVBUF SO_RCVBUF
-#endif /* PACE_SO_RCVBUF */
-
-#ifndef PACE_SO_RCVLOWAT
-#define PACE_SO_RCVLOWAT SO_RCVLOWAT
-#endif /* PACE_SO_RCVLOWAT */
-
-#ifndef PACE_SO_RCVTIMEO
-#define PACE_SO_RCVTIMEO SO_RCVTIMEO
-#endif /* PACE_SO_RCVTIMEO */
-
-#ifndef PACE_SO_REUSEADDR
-#define PACE_SO_REUSEADDR SO_REUSEADDR
-#endif /* PACE_SO_REUSEADDR */
-
-#ifndef PACE_SO_SNDBUF
-#define PACE_SO_SNDBUF SO_SNDBUF
-#endif /* PACE_SO_SNDBUF */
-
-#ifndef PACE_SO_SNDLOWAT
-#define PACE_SO_SNDLOWAT SO_SNDLOWAT
-#endif /* PACE_SO_SNDLOWAT */
-
-#ifndef PACE_SO_SNDTIMEO
-#define PACE_SO_SNDTIMEO SO_SNDTIMEO
-#endif /* PACE_SO_SNDTIMEO */
-
-#ifndef PACE_SO_TYPE
-#define PACE_SO_TYPE SO_TYPE
-#endif /* PACE_SO_TYPE */
-
-#ifndef PACE_CMSG_DATA
-#define PACE_CMSG_DATA(cmsg) CMSG_DATA(cmsg)
-#endif /* PACE_CMSG_DATA */
-
-#ifndef PACE_CMSG_NXTHDR
-#define PACE_CMSG_NXTHDR(mhdr, cmsg) CMSG_NXTHDR(mhdr, cmsg)
-#endif /* PACE_CMSG_DATA */
-
-#ifndef PACE_CMSG_FIRSTHDR
-#define PACE_CMSG_NXTHDR(mhdr, cmsg) CMSG_NXTHDR(mhdr, cmsg)
-#endif /* PACE_CMSG_DATA */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SOCKET_H_POSIX */
diff --git a/PACE/pace/posix/socket.inl b/PACE/pace/posix/socket.inl
deleted file mode 100644
index 5b38e4e198c..00000000000
--- a/PACE/pace/posix/socket.inl
+++ /dev/null
@@ -1,242 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/socket.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <unistd.h>
-#include <stdarg.h>
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_accept (int s,
- pace_sockaddr * socketaddress,
- pace_socklen_t * addresslen)
-{
- accept (s, socketaddress, addresslen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_bind (int s,
- const pace_sockaddr * socketaddress,
- pace_socklen_t addresslen)
-{
- bind (s, socketaddress, addresslen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_connect (int s,
- const pace_sockaddr * socketaddress,
- pace_socklen_t addresslen)
-{
- connect (s, socketaddress, addresslen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_getpeername (int s,
- pace_sockaddr * socketaddress,
- pace_socklen_t * addresslen)
-{
- getpeername (s, socketaddress, addresslen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_getsockname (int s,
- pace_sockaddr * socketaddress,
- pace_socklen_t * addresslen)
-{
- getsockname (s, socketaddress, addresslen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_getsockopt (int s,
- int level,
- int optname,
- void * optval,
- pace_socklen_t optlen)
-{
- getsockopt (s, level, optname, optval, optlen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_setsockopt (int s,
- int level,
- int optname,
- const * optval)
-{
- setsockopt (s, level, optname, optval);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_setsockopt (int s,
- int level,
- int optname,
- const * optval)
-{
- setsockopt (s, level, optname, optval);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_isfdtype (int fildes, int fdtype)
-{
- isfdtype (fildes, fdtype);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_listen (int s, int backlog)
-{
- listen (s, backlog);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_recv (int s,
- void * buf,
- pace_size_t len,
- int flags)
-{
- recv (s, buf, len, flags);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_recvfrom (int s,
- void * buf,
- pace_size_t len,
- int flags,
- pace_sockaddr * from,
- pace_socklen_t * fromlen)
-{
- recvfrom (s, buf, len, flags, from, fromlen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_rcvmsg (int s,
- pace_msghdr * msg,
- int flags)
-{
- rcvmsg (s, msg, flags);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_send (int s,
- const void * buf,
- pace_size_t len,
- int flags)
-{
- send (s, buf, len, flags);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_sendto (int s,
- const void * buf,
- pace_size_t len,
- int flags,
- const pace_sockaddr * to,
- pace_socklen_t * tolen)
-{
- sendto (s, buf, len, flags, to, tolen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_sendmsg (int s,
- const pace_msghdr * msg,
- int flags)
-{
- sendmsg (s, msg, flags);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_shutdown (int s, int how)
-{
- shutdown (s, how);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_socket (int protofamily, int type, int protocol)
-{
- socket (protofamily, type, protocol);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_socketpair (int protofamily,
- int type,
- int protocol,
- int sv[2])
-{
- socketpair (protofamily, type, protocol, sy);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-
-
-
-
-
-
-
-
-
-
diff --git a/PACE/pace/posix/stat.c b/PACE/pace/posix/stat.c
deleted file mode 100644
index efd10b03f76..00000000000
--- a/PACE/pace/posix/stat.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/stat.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sys/stat.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/stat.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/stat.h b/PACE/pace/posix/stat.h
deleted file mode 100644
index 1fc9ca38e74..00000000000
--- a/PACE/pace/posix/stat.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/stat.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_STAT_H_POSIX
-#define PACE_SYS_STAT_H_POSIX
-
-#include <sys/stat.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_S_IRGRP S_IRGRP
-#define PACE_S_IROTH S_IROTH
-#define PACE_S_IRUSR S_IRUSR
-#define PACE_S_IRWXG S_IRWXG
-#define PACE_S_IRWXO S_IRWXO
-#define PACE_S_IRWXU S_IRWXU
-#define PACE_S_ISBLK S_ISBLK
-#define PACE_S_ISCHR S_ISCHR
-#define PACE_S_ISDIR S_ISDIR
-#define PACE_S_ISFIFO S_ISFIFO
-#define PACE_S_ISGID S_SIGID
-#define PACE_S_ISREG S_ISREG
-#define PACE_S_ISUID S_ISUID
-#define PACE_S_IWGRP S_IWGRP
-#define PACE_S_IWOTH S_IWOTH
-#define PACE_S_IWUSR S_IWUSR
-#define PACE_S_IXGRP S_IXGRP
-#define PACE_S_IXOTH S_IXOTH
-#define PACE_S_IXUSR S_IXUSR
-#define PACE_S_TYPEISMQ S_TYPEISMQ
-#define PACE_S_TYPEISSEM S_TYPEISSEM
-#define PACE_S_TYPEISSHM S_TYPEISSHM
-
-#ifndef PACE_STAT
-#define PACE_STAT
- /* Kludge since there is a func and a type of the same name */
- typedef struct stat pace_stat_s;
-#endif /* PACE_STAT */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_STAT_H_POSIX */
diff --git a/PACE/pace/posix/stat.inl b/PACE/pace/posix/stat.inl
deleted file mode 100644
index fa9b1e61714..00000000000
--- a/PACE/pace/posix/stat.inl
+++ /dev/null
@@ -1,77 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/stat.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_FA_UOF)
-PACE_INLINE
-int
-pace_chmod (const char * path, pace_mode_t mode)
-{
- return chmod (path, mode);
-}
-#endif /* PACE_HAS_POSIX_FA_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fchmod (PACE_HANDLE fildes, pace_mode_t mode)
-{
- return fchmod (fildes, mode);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_fstat (PACE_HANDLE fildes, pace_stat_s * buf)
-{
- return fstat (fildes, buf);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_mkdir (const char * path, pace_mode_t mode)
-{
- return mkdir (path, mode);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_F_UOF)
-PACE_INLINE
-int
-pace_mkfifo (const char * path, pace_mode_t mode)
-{
- return mkfifo (path, mode);
-}
-#endif /* PACE_HAS_POSIX_F_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_stat (const char * path, pace_stat_s * buf)
-{
- return stat (path, buf);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FA_UOF)
-PACE_INLINE
-pace_mode_t
-pace_umask (pace_mode_t cmask)
-{
- return umask (cmask);
-}
-#endif /* PACE_HAS_POSIX_FA_UOF */
diff --git a/PACE/pace/posix/stdio.c b/PACE/pace/posix/stdio.c
deleted file mode 100644
index 251d6da309d..00000000000
--- a/PACE/pace/posix/stdio.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/stdio.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/stdio.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/stdio.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/stdio.h b/PACE/pace/posix/stdio.h
deleted file mode 100644
index 901476acd75..00000000000
--- a/PACE/pace/posix/stdio.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* $Id$ -*- C -*-
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/stdio.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_STDIO_H_POSIX
-#define PACE_STDIO_H_POSIX
-
-#include <stdarg.h>
-#include <stdio.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_BUFSIZ BUFSIZ
-#define PACE_EOF EOF
-#define PACE_FILENAME_MAX FILENAME_MAX
-#define PACE_L_ctermid L_ctermid
-#define PACE_L_cuserid L_cuserid
-#ifndef PACE_NULL
-#define PACE_NULL NULL
-#endif /* PACE_NULL */
-#define PACE_SEEK_CUR SEEK_CUR
-#define PACE_SEEK_END SEEK_END
-#define PACE_SEEK_SET SEEK_SET
-#define PACE_TMP_MAX TMP_MAX
-#define pace_stderr stderr
-#define pace_stdout stdout
-#define pace_stdin stdin
-
-#ifndef PACE_FPOS_T
-#define PACE_FPOS_T
-typedef fpos_t pace_fpos_t;
-#endif /* PACE_FPOS_T */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-typedef FILE PACE_FILE;
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STDIO_H_POSIX */
diff --git a/PACE/pace/posix/stdio.inl b/PACE/pace/posix/stdio.inl
deleted file mode 100644
index 630d7c5e2bc..00000000000
--- a/PACE/pace/posix/stdio.inl
+++ /dev/null
@@ -1,502 +0,0 @@
-/* $Id$ -*- C -*-
-
- * ===========================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/stdio.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * =========================================================================== */
-
-#include <stdarg.h>
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-void
-pace_clearerr (FILE * stream)
-{
- clearerr (stream);
- return;
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-char *
-pace_ctermid (char * s)
-{
- return ctermid (s);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fclose (FILE * stream)
-{
- return fclose (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-FILE *
-pace_fdopen (int fildes,
- const char * type)
-{
- return fdopen (fildes,
- type);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_ferror (FILE * stream)
-{
- return ferror (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_feof (FILE * stream)
-{
- return feof (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fflush (FILE * stream)
-{
- return fflush (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fileno (FILE * stream)
-{
- return fileno (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fgetc (FILE * stream)
-{
- return fgetc (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fgetpos(PACE_FILE * stream,
- pace_fpos_t * pos)
-{
- return fgetpos (stream, pos);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-char *
-pace_fgets (char * s,
- int n,
- FILE * stream)
-{
- return fgets (s,
- n,
- stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-void
-pace_flockfile (FILE * file)
-{
-#if defined (PACE_HAS_REENTRANT)
- flockfile (file);
-#else /* ! PACE_HAS_REENTRANT */
- PACE_UNUSED_ARG (file);
- PACE_ERRNO_NO_SUPPORT ();
-#endif /* ! PACE_HAS_REENTRANT */
- return;
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-FILE *
-pace_fopen (const char * filename,
- const char * mode)
-{
- return fopen (filename,
- mode);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fputc (int c,
- FILE * stream)
-{
- return fputc (c,
- stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fputs (const char * s,
- FILE * stream)
-{
- return fputs (s,
- stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-size_t
-pace_fread (void * ptr,
- size_t size,
- size_t number_of_items,
- FILE * stream)
-{
- return fread (ptr,
- size,
- number_of_items,
- stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-FILE *
-pace_freopen (const char * filename,
- const char * mode,
- FILE * stream)
-{
- return freopen (filename,
- mode,
- stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-int
-pace_fseek (FILE * stream,
- long offset,
- int whence)
-{
- return fseek (stream,
- offset,
- whence);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fsetpos(PACE_FILE *stream, const pace_fpos_t *pos)
-{
- return fsetpos (stream, pos);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-long
-pace_ftell (FILE * stream)
-{
- return ftell (stream);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_ftrylockfile (FILE * file)
-{
-#if defined (PACE_HAS_REENTRANT)
- return ftrylockfile (file);
-#else /* ! PACE_HAS_REENTRANT */
- PACE_UNUSED_ARG(file);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-#endif /* ! PACE_HAS_REENTRANT */
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-void
-pace_funlockfile (FILE * file)
-{
-#if defined (PACE_HAS_REENTRANT)
- funlockfile (file);
-#else /* ! PACE_HAS_REENTRANT */
- PACE_UNUSED_ARG(file);
- PACE_ERRNO_NO_SUPPORT ();
-#endif /* ! PACE_HAS_REENTRANT */
- return;
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-pace_size_t
-pace_fwrite(const void * ptr,
- pace_size_t size, pace_size_t nmemb,
- PACE_FILE * stream)
-{
- return fwrite (ptr, size, nmemb, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_getc (FILE * stream)
-{
- return getc (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_getc_unlocked (FILE * stream)
-{
-#if defined (PACE_HAS_REENTRANT)
- return getc_unlocked (stream);
-#else /* ! PACE_HAS_POSIX */
- PACE_UNUSED_ARG(stream);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-#endif /* ! PACE_HAS_POSIX */
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_getchar ()
-{
- return getchar ();
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_getchar_unlocked ()
-{
-#if defined (PACE_HAS_REENTRANT)
- return getchar_unlocked ();
-#else /* ! PACE_HAS_REENTRANT */
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-#endif /* ! PACE_HAS_REENTRANT */
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-char *
-pace_gets (char * s)
-{
- return gets (s);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-void
-pace_perror (const char * s)
-{
- perror (s);
- return;
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_putc (int c,
- FILE * stream)
-{
- return putc (c, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_putc_unlocked (int c,
- FILE * stream)
-{
-#if defined (PACE_HAS_REENTRANT)
- return putc_unlocked (c, stream);
-#else /* ! PACE_HAS_REENTRANT */
- PACE_UNUSED_ARG(c);
- PACE_UNUSED_ARG(stream);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-#endif /* ! PACE_HAS_REENTRANT */
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_putchar (int c)
-{
- return putchar (c);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_putchar_unlocked (int c)
-{
-#if defined (PACE_HAS_REENTRANT)
- return putchar_unlocked (c);
-#else /* ! PACE_HAS_REENTRANT */
- PACE_UNUSED_ARG(c);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-#endif /* ! PACE_HAS_REENTRANT */
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_puts (const char * s)
-{
- return puts (s);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_remove (const char * path)
-{
- return remove (path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_rename (const char * old_name,
- const char * new_name)
-{
- return rename (old_name,
- new_name);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-void
-pace_rewind (FILE * stream)
-{
- rewind (stream);
- return;
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-void
-pace_setbuf (FILE * stream, char * buf)
-{
- setbuf (stream, buf);
- return;
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_setvbuf(PACE_FILE * stream,
- char * buf,
- int mode, pace_size_t size)
-{
- return setvbuf (stream, buf, mode, size);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-FILE *
-pace_tmpfile ()
-{
- return tmpfile ();
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-char *
-pace_tmpnam (char * s)
-{
- return tmpnam (s);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_ungetc (int c, FILE * stream)
-{
- return ungetc (c, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_vfprintf (PACE_FILE * stream,
- const char * format,
- va_list arg)
-{
- return vfprintf (stream, format, arg);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_vprintf (const char * format,
- va_list arg)
-{
- return vprintf (format, arg);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_vsprintf (char * s,
- const char * format,
- va_list arg)
-{
- return vsprintf (s, format, arg);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/posix/stdlib.c b/PACE/pace/posix/stdlib.c
deleted file mode 100644
index 041a8bd0bbe..00000000000
--- a/PACE/pace/posix/stdlib.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/stdlib.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/stdlib.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/stdlib.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/stdlib.h b/PACE/pace/posix/stdlib.h
deleted file mode 100644
index 5e9b762e77b..00000000000
--- a/PACE/pace/posix/stdlib.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/stdlib.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_STDLIB_H_POSIX
-#define PACE_STDLIB_H_POSIX
-
-#include <stdlib.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_EXIT_FAILURE EXIT_FAILURE
-#define PACE_EXIT_SUCCESS EXIT_SUCCESS
-#define PACE_MB_CUR_MAX MB_CUR_MAX
-#ifndef PACE_NULL
-# define PACE_NULL NULL
-#endif /* PACE_NULL */
-#define PACE_RAND_MAX RAND_MAX
-
-#ifndef PACE_DIV_T
-#define PACE_DIV_T
- typedef div_t pace_div_t;
-#endif /* PACE_DIV_T */
-
-#ifndef PACE_LDIV_T
-#define PACE_LDIV_T
- typedef ldiv_t pace_ldiv_t;
-#endif /* PACE_LDIV_T */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_WCHAR_T
-#define PACE_WCHAR_T
- typedef wchar_t pace_wchar_t;
-#endif /* PACE_WCHAR_T */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-# ifndef PACE_BSEARCH_PF
-# define PACE_BSEARCH_PF
- typedef int (*pace_bsearch_pf) (const void*, const void*);
-# endif /* PACE_BSEARCH_PF */
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STDLIB_H_POSIX */
diff --git a/PACE/pace/posix/stdlib.inl b/PACE/pace/posix/stdlib.inl
deleted file mode 100644
index eb8e7f578a0..00000000000
--- a/PACE/pace/posix/stdlib.inl
+++ /dev/null
@@ -1,323 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/stdlib.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <stdlib.h>
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-void
-pace_abort (void)
-{
- abort ();
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_abs (int val)
-{
- return abs (val);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_atexit (void (*func)(void))
-{
- return atexit (func);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_atof (const char * str)
-{
- return atof (str);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_atoi (const char * str)
-{
- return atoi (str);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-long
-pace_atol (const char * str)
-{
- return atol (str);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-# if defined (PACE_HAS_CPLUSPLUS)
-PACE_INLINE
-void *
-pace_bsearch (const void *key, const void *base,
- size_t nel, size_t size,
- pace_bsearch_pf compar)
-{
- return bsearch (key, base, nel, size, compar);
-}
-# else /* ! PACE_HAS_CPLUSPLUS */
-PACE_INLINE
-void *
-pace_bsearch (const void *key, const void *base,
- size_t nel, size_t size,
- int (*compar)(const void *,const void *))
-{
- return bsearch (key, base, nel, size, compar);
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_div_t
-pace_div (int numer, int denom)
-{
- return div (numer, denom);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-void
-pace_exit (int status)
-{
- exit (status);
- return;
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-char *
-pace_getenv (const char * name)
-{
- return getenv (name);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-long int
-pace_labs (long int j)
-{
- return labs (j);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_ldiv_t
-pace_ldiv (long int numer, long int denom)
-{
- return ldiv (numer, denom);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mblen (const char* s, pace_size_t n)
-{
- return mblen (s, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_size_t
-pace_mbstowcs (pace_wchar_t* pwcs,
- const char* s,
- pace_size_t n)
-{
- return mbstowcs (pwcs, s, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mbtowc (pace_wchar_t* pwc,
- const char* s,
- pace_size_t n)
-{
- return mbtowc (pwc, s, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-# if (PACE_HAS_CPLUSPLUS)
-PACE_INLINE
-void
-pace_qsort (void * base, size_t nel, size_t width,
- pace_bsearch_pf compar)
-{
- qsort (base, nel, width, compar);
-}
-# else /* ! PACE_HAS_CPLUSPLUS */
-PACE_INLINE
-void
-pace_qsort (void * base, size_t nel, size_t width,
- int (*compar)(const void *,const void *))
-{
- qsort (base, nel, width, compar);
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_rand ()
-{
- return rand ();
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_srand (unsigned int seed)
-{
- srand (seed);
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-int
-pace_rand_r (unsigned int *seed)
-{
-#if defined (PACE_HAS_REENTRANT)
- return rand_r (seed);
-#else /* ! PACE_HAS_REENTRANT */
- PACE_UNUSED_ARG (seed);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-#endif /* ! PACE_HAS_REENTRANT */
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-double
-pace_strtod (const char* nptr,
- char** endptr)
-{
- return strtod (nptr, endptr);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_strtol (const char* nptr,
- char** endptr,
- int base)
-{
- return strtol (nptr, endptr, base);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-unsigned long int
-pace_strtoul (const char* nptr,
- char** endptr,
- int base)
-{
- return strtoul (nptr, endptr, base);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_system (const char* string)
-{
- return system (string);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_size_t
-pace_wcstombs (char* s,
- const pace_wchar_t* pwcs,
- pace_size_t n)
-{
- return wcstombs (s, pwcs, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_wctomb (char* s, pace_wchar_t wchar)
-{
- return wctomb (s, wchar);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-/* Memory Management. */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void *
-pace_malloc (size_t size)
-{
- return malloc (size);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void *
-pace_calloc (size_t nelem, size_t elsize)
-{
- return calloc (nelem, elsize);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_free (void * ptr)
-{
- free (ptr);
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void *
-pace_realloc (void * ptr, size_t size)
-{
- return realloc (ptr, size);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
diff --git a/PACE/pace/posix/string.c b/PACE/pace/posix/string.c
deleted file mode 100644
index 4d06077a947..00000000000
--- a/PACE/pace/posix/string.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/string.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/string.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/string.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/string.h b/PACE/pace/posix/string.h
deleted file mode 100644
index f25fd8b077e..00000000000
--- a/PACE/pace/posix/string.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/string.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_STRING_H_POSIX
-#define PACE_STRING_H_POSIX
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if !defined (PACE_NULL)
-# define PACE_NULL NULL
-#endif /* NULL */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STRING_H_POSIX */
diff --git a/PACE/pace/posix/string.inl b/PACE/pace/posix/string.inl
deleted file mode 100644
index de23cfacf52..00000000000
--- a/PACE/pace/posix/string.inl
+++ /dev/null
@@ -1,206 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/string.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <string.h>
-#include "pace/string.h"
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_memchr (const void *s, int c, pace_size_t n)
-{
- return (void*) memchr (s, c, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_memcmp (const void *s1, const void *s2, pace_size_t n)
-{
- return memcmp (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_memcpy (void * s1, const void * s2, pace_size_t n)
-{
- return memcpy (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_memmove (void *s1, const void *s2, pace_size_t n)
-{
- return memmove (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_BROKEN_INLINE
-void *
-pace_memset (void *s, int c, pace_size_t n)
-{
- return memset (s, c, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strcat (char * s1, const char * s2)
-{
- return strcat (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strncat (char * s1, const char * s2, size_t n)
-{
- return strncat (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strchr (const char * s, int c)
-{
- return (char*) strchr (s, c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strrchr (const char * s, int c)
-{
- return (char*) strrchr (s, c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_BROKEN_INLINE
-int
-pace_strcmp (const char * s1, const char * s2)
-{
- return strcmp (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_BROKEN_INLINE
-int
-pace_strncmp (const char * s1, const char * s2, size_t n)
-{
- return strncmp (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_BROKEN_INLINE
-char *
-pace_strcpy (char * s1, const char * s2)
-{
- return strcpy (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strncpy (char * s1, const char * s2, size_t n)
-{
- return strncpy (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_BROKEN_INLINE
-size_t
-pace_strcspn (const char * s1, const char * s2)
-{
- return strcspn (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-size_t
-pace_strspn (const char * s1, const char * s2)
-{
- return strspn (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-size_t
-pace_strlen (const char * s)
-{
- return strlen (s);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_BROKEN_INLINE
-char *
-pace_strpbrk (const char * s1, const char * s2)
-{
- return (char*) strpbrk (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strstr (const char * s1, const char * s2)
-{
- return (char*) strstr (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strtok (char * s1, const char * s2)
-{
- return strtok (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-char *
-pace_strtok_r (char * s, const char * sep, char ** lasts)
-{
-# if defined (PACE_HAS_REENTRANT) || (PACE_LYNXOS) || (PACE_SUNOS)
- return strtok_r (s, sep, lasts);
-# else /* ! PACE_HAS_REENTRANT */
- PACE_UNUSED_ARG (s);
- PACE_UNUSED_ARG (sep);
- PACE_UNUSED_ARG (lasts);
- PACE_ERRNO_NO_SUPPORT ();
- return 0;
-# endif /* ! PACE_HAS_REENTRANT */
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
diff --git a/PACE/pace/posix/termios.c b/PACE/pace/posix/termios.c
deleted file mode 100644
index e828411f160..00000000000
--- a/PACE/pace/posix/termios.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/termios.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/termios.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/termios.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/termios.h b/PACE/pace/posix/termios.h
deleted file mode 100644
index e2fdb0d8af8..00000000000
--- a/PACE/pace/posix/termios.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/termios.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_TERMIOS_H_POSIX
-#define PACE_SYS_TERMIOS_H_POSIX
-
-#include "pace/sys/types.h"
-#include <termios.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS) */
-
-#ifndef PACE_CC_T
-#define PACE_CC_T
-typedef cc_t pace_cc_t;
-#endif /* PACE_CC_T */
-
-#ifndef PACE_SPEED_T
-#define PACE_SPEED_T
-typedef speed_t pace_speed_t;
-#endif /* PACE_SPEED_T */
-
-#ifndef PACE_TCFLAG_T
-#define PACE_TCFLAG_T
-typedef tcflag_t pace_tcflag_t;
-#endif /* PACE_TCFLAG_T */
-
-#ifndef PACE_TERMIOS
-#define PACE_TERMIOS
-typedef struct termios pace_termios;
-#endif /* PACE_TERMIOS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TERMIOS_H_POSIX */
diff --git a/PACE/pace/posix/termios.inl b/PACE/pace/posix/termios.inl
deleted file mode 100644
index df12227a79e..00000000000
--- a/PACE/pace/posix/termios.inl
+++ /dev/null
@@ -1,109 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/termios.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/unistd.h"
-#include <termios.h>
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-pace_speed_t
-pace_cfgetospeed (const pace_termios *termiosp)
-{
- return cfgetospeed (termiosp);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_cfsetospeed (pace_termios *termios_p, pace_speed_t speed)
-{
- return cfsetospeed (termios_p, speed);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-pace_speed_t
-pace_cfgetispeed (const pace_termios *termios_p)
-{
- return cfgetispeed (termios_p);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_cfsetispeed (pace_termios *termios_p, pace_speed_t speed)
-{
- return cfsetispeed (termios_p, speed);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcdrain (PACE_HANDLE fildes)
-{
- return tcdrain (fildes);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcgetattr (PACE_HANDLE fildes, pace_termios *termios_p)
-{
- return tcgetattr (fildes, termios_p);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcflow (PACE_HANDLE fildes, int action)
-{
- return tcflow (fildes, action);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcflush (PACE_HANDLE fildes, int queue_selector)
-{
- return tcflush (fildes, queue_selector);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcsendbreak (PACE_HANDLE fildes, int duration)
-{
- return tcsendbreak (fildes, duration);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcsetattr (PACE_HANDLE fildes,
- int optional_actions,
- const pace_termios *termios_p)
-{
- return tcsetattr (fildes, optional_actions, termios_p);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
diff --git a/PACE/pace/posix/time.c b/PACE/pace/posix/time.c
deleted file mode 100644
index 08f00379305..00000000000
--- a/PACE/pace/posix/time.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/time.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/time.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/time.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/time.h b/PACE/pace/posix/time.h
deleted file mode 100644
index 8fb12b9f360..00000000000
--- a/PACE/pace/posix/time.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/time.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_TIME_H_POSIX
-#define PACE_TIME_H_POSIX
-
-#if PACE_LINUX
-# include "pace/emulation/time.h"
-#endif /* PACE_LINUX */
-
-#include <time.h>
-#include "pace/signal.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_CLK_TCK CLK_TCK
-#define PACE_CLOCKS_PER_SEC CLOCKS_PER_SEC
-#define PACE_CLOCK_REALTIME CLOCK_REALTIME
-#ifndef PACE_NULL
-#define PACE_NULL NULL
-#endif /* PACE_NULL */
-#define PACE_TIMER_ABSTIME TIMER_ABSTIME
-
-#ifndef PACE_CLOCKID_T
-#define PACE_CLOCKID_T
-# if defined PACE_EMU_CLOCKID_T
- typedef pace_emu_clockid_t pace_clockid_t;
-# else
- typedef clockid_t pace_clockid_t;
-# endif /* PACE_LINUX */
-#endif /* PACE_CLOCKID_T */
-
-#ifndef PACE_CLOCK_T
-#define PACE_CLOCK_T
- typedef clock_t pace_clock_t;
-#endif /* PACE_CLOCK_T */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_TIMER_T
-#define PACE_TIMER_T
-# if defined PACE_EMU_TIMER_T
- typedef pace_emu_timer_t pace_timer_t;
-# else
- typedef timer_t pace_timer_t;
-# endif /* PACE_LINUX */
-#endif /* PACE_TIMER_T */
-
-#ifndef PACE_TIME_T
-#define PACE_TIME_T
- typedef time_t pace_time_t;
-#endif /* PACE_TIME_T */
-
-#ifndef PACE_TM
-#define PACE_TM
- typedef struct tm pace_tm;
-#endif /* PACE_TM */
-
-#ifndef PACE_TIMESPEC
-#define PACE_TIMESPEC
- typedef struct timespec pace_timespec;
-#endif /* PACE_TIMESPEC */
-
-#ifndef PACE_ITIMERSPEC
-#define PACE_ITIMERSPEC
- typedef struct itimerspec pace_itimerspec;
-#endif /* PACE_ITIMERSPEC */
-
-#ifndef PACE_SIGEVENT
-#define PACE_SIGEVENT
- typedef struct sigevent pace_sigevent;
-#endif /* PACE_SIGEVENT */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_TIME_H_POSIX */
diff --git a/PACE/pace/posix/time.inl b/PACE/pace/posix/time.inl
deleted file mode 100644
index 415e728eb36..00000000000
--- a/PACE/pace/posix/time.inl
+++ /dev/null
@@ -1,324 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/time.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/errno.h"
-#include "pace/signal.h"
-extern int errno;
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_asctime (const pace_tm * time)
-{
- return asctime (time);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-char *
-pace_asctime_r (const pace_tm * time, char * buf)
-{
-#if (PACE_LYNXOS)
- /*lynxos 3.1 has POSIX.4 Draft 9 versions of this */
- if (asctime_r (time, buf, 26) != 0)
- return (char*) 0;
- return buf;
-#else
- return asctime_r (time, buf);
-#endif /* PACE_LYNXOS */
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_clock_t
-pace_clock (void)
-{
- return clock ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-double
-pace_difftime (pace_time_t time1, pace_time_t time2)
-{
- return difftime (time1, time2);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_clock_getres (pace_clockid_t clock_id,
- pace_timespec * res)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (clock_id);
- PACE_UNUSED_ARG (res);
- return -1;
-#else
- return clock_getres (clock_id, res);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_clock_gettime (pace_clockid_t clock_id,
- pace_timespec * tp)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (clock_id);
- PACE_UNUSED_ARG (tp);
- return -1;
-#else
- return clock_gettime (clock_id, tp);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_clock_settime (pace_clockid_t clock_id,
- const pace_timespec * tp)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (clock_id);
- PACE_UNUSED_ARG (tp);
- return -1;
-#else
- return clock_settime (clock_id, PACE_NONCONST_ARG_CAST (struct timespec *) tp);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_ctime (const pace_time_t * clock)
-{
- return ctime (clock);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-char *
-pace_ctime_r (const pace_time_t * clock, char * buf)
-{
-# if (PACE_LYNXOS)
- return ctime_r (clock, buf, 26);
-# else
- return ctime_r (clock, buf);
-# endif /* PACE_SUNOS */
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-pace_tm *
-pace_gmtime (const pace_time_t * clock)
-{
- return gmtime (clock);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-pace_tm *
-pace_gmtime_r (const pace_time_t * clock, pace_tm * result)
-{
-#if (PACE_LYNXOS)
- /*lynxos 3.1 has POSIX.4 Draft 9 versions of these */
- if (gmtime_r (result, clock) != 0)
- return (pace_tm*)0;
- return result;
-#else
- return gmtime_r (clock, result);
-#endif /* PACE_LYNXOS */
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-pace_tm *
-pace_localtime (const pace_time_t * clock)
-{
- return localtime (clock);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-pace_tm *
-pace_localtime_r (const pace_time_t * clock, pace_tm * result)
-{
-#if (PACE_LYNXOS)
- /*lynxos 3.1 has POSIX.4 Draft 9 versions of these */
- if (localtime_r (result, clock) != 0)
- return (pace_tm*)0;
- return result;
-#else
- return localtime_r (clock, result);
-#endif /* PACE_LYNXOS */
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-time_t
-pace_mktime (pace_tm * timeptr)
-{
- return mktime (timeptr);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_nanosleep (const pace_timespec * rqtp,
- pace_timespec * rmtp)
-{
- return nanosleep (PACE_NONCONST_ARG_CAST (struct timespec *) rqtp, rmtp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-size_t
-pace_strftime (char *s, pace_size_t maxsize,
- const char *format,
- const pace_tm *timeptr)
-{
- return strftime (s, maxsize, format, timeptr);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-time_t
-pace_time (pace_time_t * tloc)
-{
- return time (tloc);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_create (pace_clockid_t clock_id,
- pace_sigevent * evp,
- pace_timer_t *timerid)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (clock_id);
- PACE_UNUSED_ARG (evp);
- PACE_UNUSED_ARG (timerid);
- return -1;
-#else
- return timer_create (clock_id, evp, timerid);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_delete (pace_timer_t timerid)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (timerid);
- return -1;
-#else
- return timer_delete (timerid);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_getoverrun (pace_timer_t timerid)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (timerid);
- return -1;
-#else
- return timer_getoverrun (timerid);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_gettime (pace_timer_t timerid,
- pace_itimerspec * value)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (timerid);
- PACE_UNUSED_ARG (value);
- return -1;
-#else
- return timer_gettime (timerid, value);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_settime (pace_timer_t timerid,
- int flags,
- const pace_itimerspec * value,
- pace_itimerspec * ovalue)
-{
-#if PACE_LINUX
- errno = ENOSYS;
- PACE_UNUSED_ARG (timerid);
- PACE_UNUSED_ARG (flags);
- PACE_UNUSED_ARG (value);
- PACE_UNUSED_ARG (ovalue);
- return -1;
-#else
- return timer_settime (timerid, flags, PACE_NONCONST_ARG_CAST (struct itimerspec *) value, ovalue);
-#endif /* PACE_LINUX */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_tzset ()
-{
-# if defined (PACE_HAS_POSIX_PTHREAD_SEMANTICS)
- tzset ();
-# else /* ! PACE_HAS_POSIX_PTHREAD_SEMANTICS */
- PACE_ERRNO_NO_SUPPORT ();
-# endif /* ! PACE_HAS_POSIX_PTHREAD_SEMANTICS */
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
diff --git a/PACE/pace/posix/times.c b/PACE/pace/posix/times.c
deleted file mode 100644
index 3e47e331020..00000000000
--- a/PACE/pace/posix/times.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/times.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sys/times.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/times.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/times.h b/PACE/pace/posix/times.h
deleted file mode 100644
index 1aeebd76a29..00000000000
--- a/PACE/pace/posix/times.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/times.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_TIMES_H_POSIX
-#define PACE_SYS_TIMES_H_POSIX
-
-#include <sys/times.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_CLOCK_T
-#define PACE_CLOCK_T
-typedef clock_t pace_clock_t;
-#endif /* PACE_CLOCK_T */
-
-#ifndef PACE_TMS
-#define PACE_TMS
-typedef struct tms pace_tms;
-#endif /* PACE_TMS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TIMES_H_POSIX */
diff --git a/PACE/pace/posix/times.inl b/PACE/pace/posix/times.inl
deleted file mode 100644
index 5c808d1a7d0..00000000000
--- a/PACE/pace/posix/times.inl
+++ /dev/null
@@ -1,23 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/times.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pace_clock_t
-pace_times (pace_tms * buffer)
-{
- return times (buffer);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
diff --git a/PACE/pace/posix/types.h b/PACE/pace/posix/types.h
deleted file mode 100644
index 9ce4e5c2c85..00000000000
--- a/PACE/pace/posix/types.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/types.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#include <sys/types.h>
-#include <pthread.h>
-
-#ifndef PACE_SYS_TYPES_H_POSIX
-#define PACE_SYS_TYPES_H_POSIX
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /* For future upgradeability to wchar */
-#ifndef PACE_TCHAR
-#define PACE_TCHAR
- typedef char pace_tchar;
-#endif /* PACE_TCHAR */
-
-#ifndef PACE_HANDLE
- typedef int PACE_HANDLE;
-#endif /* PACE_HANDLE */
-
-#ifndef PACE_INVALID_HANDLE
-#define PACE_INVALID_HANDLE -1
-#endif /* PACE_INVALID_HANDLE */
-
-#ifndef PACE_DEV_T
-#define PACE_DEV_T
- typedef dev_t pace_dev_t;
-#endif /* PACE_DEV_T */
-
-#ifndef PACE_GID_T
-#define PACE_GID_T
- typedef gid_t pace_gid_t;
-#endif /* PACE_GID_T */
-
-#ifndef PACE_INO_T
-#define PACE_INO_T
- typedef ino_t pace_ino_t;
-#endif /* PACE_INO_T */
-
-#ifndef PACE_MODE_T
-#define PACE_MODE_T
- typedef mode_t pace_mode_t;
-#endif /* PACE_MODE_T */
-
-#ifndef PACE_NLINK_T
-#define PACE_NLINK_T
- typedef nlink_t pace_nlink_t;
-#endif /* PACE_NLINK_T */
-
-#ifndef PACE_OFF_T
-#define PACE_OFF_T
- typedef off_t pace_off_t;
-#endif /* PACE_OFF_T */
-
-#ifndef PACE_PID_T
-#define PACE_PID_T
- typedef pid_t pace_pid_t;
-#endif /* PACE_PID_T */
-
-#ifndef PACE_PTHREAD_ATTR_T
-#define PACE_PTHREAD_ATTR_T
- typedef pthread_attr_t pace_pthread_attr_t;
-#endif /* PACE_PTHREAD_ATTR_T */
-
-#ifndef PACE_PTHREAD_CONDATTR_T
-#define PACE_PTHREAD_CONDATTR_T
- typedef pthread_condattr_t pace_pthread_condattr_t;
-#endif /* PACE_PTHREAD_CONDATTR_T */
-
-#ifndef PACE_PTHREAD_COND_T
-#define PACE_PTHREAD_COND_T
- typedef pthread_cond_t pace_pthread_cond_t;
-#endif /* PACE_PTHREAD_COND_T */
-
-#ifndef PACE_PTHREAD_KEY_T
-#define PACE_PTHREAD_KEY_T
- typedef pthread_key_t pace_pthread_key_t;
-#endif /* PACE_PTHREAD_KEY_T */
-
-#ifndef PACE_PTHREAD_MUTEXATTR_T
-#define PACE_PTHREAD_MUTEXATTR_T
- typedef pthread_mutexattr_t pace_pthread_mutexattr_t;
-#endif /* PACE_PTHREAD_MUTEXATTR_T */
-
-#ifndef PACE_PTHREAD_MUTEX_T
-#define PACE_PTHREAD_MUTEX_T
- typedef pthread_mutex_t pace_pthread_mutex_t;
-#endif /* PACE_PTHREAD_MUTEX_T */
-
-#ifndef PACE_PTHREAD_ONCE_T
-#define PACE_PTHREAD_ONCE_T
- typedef pthread_once_t pace_pthread_once_t;
-#endif /* PACE_PTHREAD_ONCE_T */
-
-#ifndef PACE_PTHREAD_T
-#define PACE_PTHREAD_T
- typedef pthread_t pace_pthread_t;
-#endif /* PACE_PTHREAD_T */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_SSIZE_T
-#define PACE_SSIZE_T
- typedef ssize_t pace_ssize_t;
-#endif /* PACE_SSIZE_T */
-
-#ifndef PACE_UID_T
-#define PACE_UID_T
- typedef uid_t pace_uid_t;
-#endif /* PACE_UID_T */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TYPES_H_POSIX */
diff --git a/PACE/pace/posix/unistd.c b/PACE/pace/posix/unistd.c
deleted file mode 100644
index f8e1e9a4676..00000000000
--- a/PACE/pace/posix/unistd.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/unistd.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/unistd.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/unistd.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/unistd.h b/PACE/pace/posix/unistd.h
deleted file mode 100644
index 0b79b75b43b..00000000000
--- a/PACE/pace/posix/unistd.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/unistd.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_UNISTD_H_POSIX
-#define PACE_UNISTD_H_POSIX
-
-#include "pace/sys/types.h"
-#include <unistd.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_F_OK F_OK
-#ifndef PACE_NULL
-# define PACE_NULL NULL
-#endif /* PACE_NULL */
-#define PACE_R_OK R_OK
-#define PACE_SEEK_CUR SEEK_CUR
-#define PACE_SEEK_END SEEK_END
-#define PACE_SEEK_SET SEEK_SET
-#define PACE_STDERR_FILENO STDERR_FILENO
-#define PACE_STDIN_FILENO STDIN_FILENO
-#define PACE_STDOUT_FILENO STDOUT_FILENO
-#define PACE_W_OK W_OK
-#define PACE_X_OK X_OK
-
-/* _POSIX _PC _SC Macros need to go here */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
-typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_SSIZE_T
-#define PACE_SSIZE_T
-typedef ssize_t pace_ssize_t;
-#endif /* PACE_SSIZE_T */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_UNISTD_H_POSIX */
diff --git a/PACE/pace/posix/unistd.inl b/PACE/pace/posix/unistd.inl
deleted file mode 100644
index c0496a7da7c..00000000000
--- a/PACE/pace/posix/unistd.inl
+++ /dev/null
@@ -1,470 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/unistd.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <unistd.h>
-#include <stdarg.h>
-#include <string.h>
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-void
-pace__exit (int status)
-{
- _exit (status);
- return;
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_access (const char * path, int amode)
-{
- return access (path, amode);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-unsigned int
-pace_alarm (unsigned int seconds)
-{
- return alarm (seconds);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_chdir (const char * path)
-{
- return chdir (path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FA_UOF)
-PACE_INLINE
-int
-pace_chown (const char * path, uid_t owner, pace_gid_t group)
-{
- return chown (path, owner, group);
-}
-#endif /* PACE_HAS_POSIX_FA_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_close (PACE_HANDLE fildes)
-{
- return close (fildes);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-PACE_HANDLE
-pace_dup (PACE_HANDLE fildes)
-{
- return dup (fildes);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-PACE_HANDLE
-pace_dup2 (PACE_HANDLE fildes, PACE_HANDLE fildes2)
-{
- return dup2 (fildes, fildes2);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-int
-pace_execv (const char * path,
- char * const argv[])
-{
- return execv (path, argv);
- /* if successful, this operation does NOT return */
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-int
-pace_execve (const char * path,
- char * const argv[],
- char * const envp[])
-{
- return execve (path, argv, envp);
- /* if successful, this operation does NOT return */
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-int
-pace_execvp (const char * file,
- char * const argv[])
-{
- return execvp (file, argv);
- /* if successful, this operation does NOT return */
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fdatasync (PACE_HANDLE fildes)
-{
- return fdatasync (fildes);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pid_t
-pace_fork ()
-{
- return fork ();
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-long
-pace_fpathconf (PACE_HANDLE fildes, int name)
-{
- return fpathconf (fildes, name);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fsync (PACE_HANDLE fildes)
-{
- return fsync (fildes);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_ftruncate (PACE_HANDLE fildes, pace_off_t length)
-{
- return ftruncate (fildes, length);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-char *
-pace_getcwd (char * buf, size_t size)
-{
- return getcwd (buf, size);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-uid_t
-pace_getegid ()
-{
- return getegid ();
-}
-#endif /* PACE_HAS_POSIX_UGR_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-uid_t
-pace_geteuid ()
-{
- return geteuid ();
-}
-#endif /* PACE_HAS_POSIX_UGR_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-int
-pace_getgroups (int gidsetsize, pace_gid_t grouplist[])
-{
- return getgroups (gidsetsize, grouplist);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-uid_t
-pace_getgid ()
-{
- return getgid ();
-}
-#endif /* PACE_HAS_POSIX_UGR_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-char*
-pace_getlogin ()
-{
- return getlogin ();
-}
-#endif /* PACE_HAS_POSIX_UGR_UOF */
-
-#if (PACE_HAS_POSIX_UGR_UOF)
-PACE_INLINE
-int
-pace_getlogin_r (char * name, size_t namesize)
-{
- /* this func will eventually get rewritten to *
- * autodetect _REENTRANT correctly */
-#if (PACE_HAS_REENTRANT) || (PACE_LYNXOS) || (PACE_SUNOS)
- /* supported call */
- return getlogin_r (name, namesize);
-#else
- /* unsupported call (emulated) *
- * careful, emulation is not 100% reentrant safe */
- char * non_reentrant_ptr_to_static_os_memory = getlogin ();
- if (0 == non_reentrant_ptr_to_static_os_memory)
- return errno;
- strncpy (name, non_reentrant_ptr_to_static_os_memory, namesize);
- return 1;
-#endif /* PACE_HAS_REENTRANT */
-}
-#endif /* PACE_HAS_POSIX_UGR_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-pid_t
-pace_getpgrp ()
-{
- return getpgrp ();
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pid_t
-pace_getpid ()
-{
- return getpid ();
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pid_t
-pace_getppid ()
-{
- return getppid ();
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-uid_t
-pace_getuid ()
-{
- return getuid ();
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_isatty (int fildes)
-{
- return isatty (fildes);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_link (const char * existing, const char * new_link)
-{
- return link (existing, new_link);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-pace_off_t
-pace_lseek (PACE_HANDLE fildes, pace_off_t offset, int whence)
-{
- return lseek (fildes, offset, whence);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-long
-pace_pathconf (const char * path, int name)
-{
- return pathconf (path, name);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_pause ()
-{
- return pause ();
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_P_UOF)
-PACE_INLINE
-int
-pace_pipe (PACE_HANDLE fildes[2])
-{
- return pipe (fildes);
-}
-#endif /* PACE_HAS_POSIX_P_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-ssize_t
-pace_read (PACE_HANDLE fildes, void * buf, size_t nbyte)
-{
- return read (fildes, buf, nbyte);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_rmdir (const char * path)
-{
- return rmdir (path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-int
-pace_setgid (pace_gid_t gid)
-{
- return setgid (gid);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_JC_UOF)
-PACE_INLINE
-int
-pace_setpgid (pid_t pid, pid_t pgid)
-{
- return setpgid (pid, pgid);
-}
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-pid_t
-pace_setsid ()
-{
- return setsid ();
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-int
-pace_setuid (uid_t uid)
-{
- return setuid (uid);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-unsigned int
-pace_sleep (unsigned int seconds)
-{
- return sleep (seconds);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_SP_UOF)
-PACE_INLINE
-long
-pace_sysconf (int name)
-{
- return sysconf (name);
-}
-#endif /* PACE_HAS_POSIX_SP_UOF */
-
-#if (PACE_HAS_POSIX_JC_UOF)
-PACE_INLINE
-pid_t
-pace_tcgetpgrp (PACE_HANDLE fildes)
-{
- return tcgetpgrp (fildes);
-}
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
-#if (PACE_HAS_POSIX_JC_UOF)
-PACE_INLINE
-int
-pace_tcsetpgrp (PACE_HANDLE fildes, pid_t pgrp_id)
-{
- return tcsetpgrp (fildes, pgrp_id);
-}
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-char *
-pace_ttyname (PACE_HANDLE fildes)
-{
- return ttyname (fildes);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_ttyname_r (PACE_HANDLE fildes,
- char * name,
- size_t namesize)
-{
-#if (PACE_SUNOS) || (PACE_LYNXOS)
- if (ttyname_r (fildes, name, (int) namesize) == 0)
- return errno;
- return 0;
-#else
- return ttyname_r (fildes, name, namesize);
-#endif /* PACE_SUNOS */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_unlink (const char * path)
-{
- return unlink (path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-ssize_t
-pace_write (PACE_HANDLE fildes, const void * buf, size_t nbyte)
-{
- return write (fildes, buf, nbyte);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
diff --git a/PACE/pace/posix/utime.c b/PACE/pace/posix/utime.c
deleted file mode 100644
index 864e8d422b1..00000000000
--- a/PACE/pace/posix/utime.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/utime.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/utime.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/utime.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/utime.h b/PACE/pace/posix/utime.h
deleted file mode 100644
index 00018e31751..00000000000
--- a/PACE/pace/posix/utime.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/utime.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_UTIME_H_POSIX
-#define PACE_UTIME_H_POSIX
-
-#include "pace/sys/types.h"
-#include <utime.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_UTIMBUF
-#define PACE_UTIMBUF
-typedef struct utimbuf pace_utimbuf;
-#endif /* PACE_UTIMBUF */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_UTIME_H_POSIX */
diff --git a/PACE/pace/posix/utime.inl b/PACE/pace/posix/utime.inl
deleted file mode 100644
index 589229d3b38..00000000000
--- a/PACE/pace/posix/utime.inl
+++ /dev/null
@@ -1,24 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/utime.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_utime (const char * path,
- const pace_utimbuf * times)
-{
- return utime (path, times);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/posix/utsname.c b/PACE/pace/posix/utsname.c
deleted file mode 100644
index 1fa1461795e..00000000000
--- a/PACE/pace/posix/utsname.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/utsname.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sys/utsname.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/utsname.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/utsname.h b/PACE/pace/posix/utsname.h
deleted file mode 100644
index 0e7d58e6f95..00000000000
--- a/PACE/pace/posix/utsname.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/utsname.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_UTSNAME_H_POSIX
-#define PACE_SYS_UTSNAME_H_POSIX
-
-#include <sys/utsname.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_UTSNAME
-#define PACE_UTSNAME
-typedef struct utsname pace_utsname;
-#endif /* PACE_UTSNAME */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_UTSNAME_H_POSIX */
diff --git a/PACE/pace/posix/utsname.inl b/PACE/pace/posix/utsname.inl
deleted file mode 100644
index 84797fd519e..00000000000
--- a/PACE/pace/posix/utsname.inl
+++ /dev/null
@@ -1,23 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/utsname.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_SP_UOF)
-PACE_INLINE
-int
-pace_uname (pace_utsname * name)
-{
- return uname (name);
-}
-#endif /* PACE_HAS_POSIX_SP_UOF */
diff --git a/PACE/pace/posix/wait.c b/PACE/pace/posix/wait.c
deleted file mode 100644
index 786b8e59fbd..00000000000
--- a/PACE/pace/posix/wait.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/wait.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sys/wait.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/posix/wait.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/posix/wait.h b/PACE/pace/posix/wait.h
deleted file mode 100644
index 4bc233da5b5..00000000000
--- a/PACE/pace/posix/wait.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/wait.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_WAIT_H_POSIX
-#define PACE_WAIT_H_POSIX
-
-#include "pace/sys/types.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_WEXITSTATUS WEXITSTATUS
-#define PACE_WIFEXITED WIFEXITED
-#define PACE_WIFSIGNALED WISIGNALED
-#define PACE_WIFSTOPPED WIFSTOPPED
-#define PACE_WNOHANG WNOHANG
-#define PACE_WSTOPSIG WSTOPSIG
-#define PACE_WTERMSIG WTERMSIG
-#define PACE_WUNTRACED WUNTRACED
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_WAIT_H */
diff --git a/PACE/pace/posix/wait.inl b/PACE/pace/posix/wait.inl
deleted file mode 100644
index f1f98ad4d5e..00000000000
--- a/PACE/pace/posix/wait.inl
+++ /dev/null
@@ -1,34 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/wait.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <sys/wait.h>
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pid_t
-pace_wait (int * statloc)
-{
- return wait (statloc);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pid_t
-pace_waitpid (pid_t pid, int * statloc, int options)
-{
- return waitpid (pid, statloc, options);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
diff --git a/PACE/pace/pthread.h b/PACE/pace/pthread.h
deleted file mode 100644
index a744915833d..00000000000
--- a/PACE/pace/pthread.h
+++ /dev/null
@@ -1,733 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/pthread.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_PTHREAD_H
-#define PACE_PTHREAD_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/pthread.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/pthread.h"
-#elif (PACE_WIN32)
-# include "pace/win32/pthread.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function pthread_atfork.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.1.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_atfork (void (*prepare) (void),
- void (*parent) (void),
- void (*child) (void));
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_destroy.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_destroy (pace_pthread_attr_t * attr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_getdetachstate.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_getdetachstate (const pace_pthread_attr_t * attr,
- int * detachstate);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_getinheritsched.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.5.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_getinheritsched (const pace_pthread_attr_t * attr,
- int * inheritsched);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_getschedparam.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.5.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_getschedparam (const pace_pthread_attr_t * attr,
- pace_sched_param * param);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_getschedpolicy.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.5.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_getschedpolicy (const pace_pthread_attr_t * attr,
- int * policy);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_getscope.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.5.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_getscope (const pace_pthread_attr_t * attr,
- int * contentionscope);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_getstackaddr.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_getstackaddr (const pace_pthread_attr_t * attr,
- void ** stackaddr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_getstacksize.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_getstacksize (const pace_pthread_attr_t * attr,
- size_t * stacksize);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_init.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_init (pace_pthread_attr_t * attr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_setdetachstate.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_setdetachstate (pace_pthread_attr_t * attr,
- int detachstate);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_setinheritsched.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.5.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_setinheritsched (pace_pthread_attr_t * attr,
- int inheritsched);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_setschedparam.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.5.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_setschedparam (pace_pthread_attr_t * attr,
- const pace_sched_param * param);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_setschedpolicy.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.5.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_setschedpolicy (pace_pthread_attr_t * attr,
- int policy);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_setscope.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.5.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_setscope (pace_pthread_attr_t * attr,
- int contentionscope);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_setstackaddr.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_setstackaddr (pace_pthread_attr_t * attr,
- void * stackaddr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_attr_setstacksize.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_attr_setstacksize (pace_pthread_attr_t * attr,
- size_t stacksize);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_cancel.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 18.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_cancel (pace_pthread_t thread);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_cleanup_push.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 18.2.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-# define pace_pthread_cleanup_push(routine, arg) \
- pthread_cleanup_push (routine, arg)
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_cleanup_pop.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 18.2.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-# define pace_pthread_cleanup_pop(execute) \
- pthread_cleanup_pop (execute)
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-# define PACE_PTHREAD_COND_INITIALIZER PTHREAD_COND_INITIALIZER
-
- /**
- PACE's implementation of the POSIX function pthread_cond_broadcast.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.4.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_cond_broadcast (pace_pthread_cond_t * cond);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_cond_destroy.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.4.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_cond_destroy (pace_pthread_cond_t * cond);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_cond_init.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.4.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_cond_init (pace_pthread_cond_t * cond,
- const pace_pthread_condattr_t * attr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_cond_signal.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.4.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_cond_signal (pace_pthread_cond_t * cond);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_cond_timedwait.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.4.4.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_cond_timedwait (pace_pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex,
- const pace_timespec * abstime);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_cond_wait.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.4.4.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_cond_wait (pace_pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_condattr_destroy.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.4.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_condattr_destroy (pace_pthread_condattr_t * attr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_condattr_getpshared.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.4.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_condattr_getpshared (const pace_pthread_condattr_t * attr,
- int * pshared);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_condattr_init.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.4.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_condattr_init (pace_pthread_condattr_t * attr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_condattr_setpshared.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.4.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_condattr_setpshared (pace_pthread_condattr_t * attr,
- int pshared);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_create.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_create (pace_pthread_t * thread,
- const pace_pthread_attr_t * attr,
- void * (*start_routine) (void*),
- void * arg);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_detach.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.4.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_detach (pace_pthread_t thread);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_equal.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.7.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_equal (pace_pthread_t t1,
- pace_pthread_t t2);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_exit.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.5.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- void pace_pthread_exit (void * value_ptr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_getschedparam.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.2.5.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_getschedparam (pace_pthread_t thread,
- int * policy,
- pace_sched_param * param);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_getspecific.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 17.1.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- void * pace_pthread_getspecific (pace_pthread_key_t key);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_join.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_join (pace_pthread_t thread,
- void ** value_ptr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_key_create.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 17.1.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_key_create (pace_pthread_key_t * key,
- void (*destructor)(void*));
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_key_delete.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 17.1.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_key_delete (pace_pthread_key_t key);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_kill.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.10.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_kill (pace_pthread_t thread,
- int sig);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutex_destroy.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.3.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutex_destroy (pace_pthread_mutex_t * mutex);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutex_getprioceiling.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.6.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutex_getprioceiling (pace_pthread_mutex_t * mutex,
- int * prioceiling);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutex_init.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.3.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutex_init (pace_pthread_mutex_t * mutex,
- const pace_pthread_mutexattr_t * attr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutex_lock.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.3.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutex_lock (pace_pthread_mutex_t * mutex);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutex_setprioceiling.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.6.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutex_setprioceiling (pace_pthread_mutex_t * mutex,
- int prioceiling,
- int * old_ceiling);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutex_trylock.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.3.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutex_trylock (pace_pthread_mutex_t * mutex);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutex_unlock.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.3.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutex_unlock (pace_pthread_mutex_t * mutex);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutexattr_destroy.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.3.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutexattr_destroy (pace_pthread_mutexattr_t * sttr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function
- pthread_mutexattr_getprioceiling.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.6.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutexattr_getprioceiling (pace_pthread_mutexattr_t * attr,
- int * prioceiling);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutexattr_getprotocol.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.6.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutexattr_getprotocol (const pace_pthread_mutexattr_t * attr,
- int * protocol);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function
- pthread_mutexattr_setprioceiling.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.6.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutexattr_setprioceiling (pace_pthread_mutexattr_t * attr,
- int prioceiling);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutexattr_setprotocol.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.6.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutexattr_setprotocol (pace_pthread_mutexattr_t * attr,
- int protocol);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutexattr_getpshared.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.3.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutexattr_getpshared (const pace_pthread_mutexattr_t * attr,
- int * pshared);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutexattr_init.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.3.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutexattr_init (pace_pthread_mutexattr_t * attr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_mutexattr_setpshared.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.3.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_mutexattr_setpshared (pace_pthread_mutexattr_t * attr,
- int pshared);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_once.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.8.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_once (pace_pthread_once_t * once_control,
- void (*void_routine) (void));
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-# define PACE_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
-
- /**
- PACE's implementation of the POSIX function pthread_self.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 16.2.6.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- pace_pthread_t pace_pthread_self ();
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_setcancelstate.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 18.2.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_setcancelstate (int state,
- int * oldstate);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_setcanceltype.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 18.2.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_setcanceltype (int type,
- int * oldtype);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_setschedparam.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.5.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_setschedparam (pace_pthread_t thread,
- int policy,
- const pace_sched_param * param);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_setspecific.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 17.1.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_setspecific (pace_pthread_key_t key,
- const void * value);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_sigmask.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.5.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- int pace_pthread_sigmask (int how,
- const pace_sigset_t * set,
- pace_sigset_t * oset);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function pthread_testcancel.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 18.2.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE
- void pace_pthread_testcancel ();
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/pthread.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/pthread.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/pthread.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_PTHREAD_H */
diff --git a/PACE/pace/pwd.h b/PACE/pace/pwd.h
deleted file mode 100644
index e4e9cf0bac5..00000000000
--- a/PACE/pace/pwd.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/pwd.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_PWD_H
-#define PACE_PWD_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/pwd.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/pwd.h"
-#elif (PACE_WIN32)
-# include "pace/win32/pwd.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function getpwuid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 9.2.2.
- */
-#if (PACE_HAS_POSIX_SD_UOF)
- PACE_Export PACE_INLINE pace_passwd * pace_getpwuid (pace_uid_t uid);
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
- /**
- PACE's implementation of the POSIX function getpwuid_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 9.2.2.
- */
-#if (PACE_HAS_POSIX_SDR_UOF)
- PACE_Export PACE_INLINE int pace_getpwuid_r (pace_uid_t uid,
- pace_passwd * pwd,
- char * buffer,
- pace_size_t bufsize,
- pace_passwd ** result);
-#endif /* PACE_HAS_POSIX_SDR_UOF */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
- /**
- PACE's implementation of the POSIX function getpwnam.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 9.2.2.
- */
-#if (PACE_HAS_POSIX_SD_UOF)
- PACE_Export PACE_INLINE pace_passwd * pace_getpwnam (const char * name);
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
- /**
- PACE's implementation of the POSIX function getpwnam_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 9.2.2.
- */
-#if (PACE_HAS_POSIX_SDR_UOF)
- PACE_Export PACE_INLINE int pace_getpwnam_r (const char * name,
- pace_passwd * pwd,
- char * buffer,
- pace_size_t bufsize,
- pace_passwd ** result);
-#endif /* PACE_HAS_POSIX_SDR_UOF */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/pwd.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/pwd.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/pwd.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_PWD_H */
diff --git a/PACE/pace/sched.h b/PACE/pace/sched.h
deleted file mode 100644
index 20c9dc50ca5..00000000000
--- a/PACE/pace/sched.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/sched.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SCHED_H
-#define PACE_SCHED_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/sched.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/sched.h"
-#elif (PACE_WIN32)
-# include "pace/win32/sched.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function sched_get_priority_max.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.3.6.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sched_get_priority_max (int policy);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sched_get_priority_min.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.3.6.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sched_get_priority_min (int policy);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sched_getparam.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.3.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sched_getparam (pace_pid_t pid,
- pace_sched_param * param);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sched_rr_get_interval.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.3.6.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sched_rr_get_interval (pace_pid_t pid,
- pace_timespec * interval);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sched_setparam.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.3.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sched_setparam (pace_pid_t pid,
- const pace_sched_param * param);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sched_getscheduler.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.3.4.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sched_getscheduler (pace_pid_t pid);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sched_setscheduler.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.3.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sched_setscheduler (pace_pid_t pid,
- int policy,
- const pace_sched_param * param);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sched_yield.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 13.3.5.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sched_yield ();
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/sched.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/sched.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/sched.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SCHED_H */
diff --git a/PACE/pace/semaphore.h b/PACE/pace/semaphore.h
deleted file mode 100644
index 9c2a34824aa..00000000000
--- a/PACE/pace/semaphore.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/semaphore.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SEMAPHORE_H
-#define PACE_SEMAPHORE_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/semaphore.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/semaphore.h"
-#elif (PACE_WIN32)
-# include "pace/win32/semaphore.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function sem_close.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.2.4.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sem_close (pace_sem_t * sem);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sem_destroy.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.2.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sem_destroy (pace_sem_t * sem);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sem_getvalue.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.2.8.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sem_getvalue (pace_sem_t * sem, int * sval);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sem_init.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sem_init (pace_sem_t * sem,
- int pshared,
- unsigned int value);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sem_open.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.2.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-# define pace_sem_open sem_open
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sem_post.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.2.7.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sem_post (pace_sem_t * sem);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sem_trywait.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.2.6.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sem_trywait (pace_sem_t * sem);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sem_unlink.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.2.5.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sem_unlink (const char * name);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sem_wait.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 11.2.6.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sem_wait (pace_sem_t * sem);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/semaphore.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/semaphore.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/semaphore.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SEMAPHORE_H */
diff --git a/PACE/pace/setjmp.h b/PACE/pace/setjmp.h
deleted file mode 100644
index 99a6651982f..00000000000
--- a/PACE/pace/setjmp.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/setjmp.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SETJMP_H
-#define PACE_SETJMP_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/setjmp.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/setjmp.h"
-#elif (PACE_WIN32)
-# include "pace/win32/setjmp.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function setjmp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.3.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- /* int pace_setjmp (pace_jmp_buf env); */
-# define pace_setjmp setjmp
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function sigsetjmp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.3.1.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- /* int pace_sigsetjmp (pace_sigjmp_buf env, int savemask); */
-# define pace_sigsetjmp setjmp
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function longjmp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.3.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE void pace_longjmp (pace_jmp_buf env, int val);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function siglongjmp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.3.1.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE void pace_siglongjmp (pace_sigjmp_buf env, int val);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/setjmp.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/setjmp.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/setjmp.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SETJMP_H */
diff --git a/PACE/pace/signal.h b/PACE/pace/signal.h
deleted file mode 100644
index 6ca0a0f200c..00000000000
--- a/PACE/pace/signal.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/signal.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#ifndef PACE_SIGNAL_H
-#define PACE_SIGNAL_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/signal.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/signal.h"
-#elif (PACE_WIN32)
-# include "pace/win32/signal.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function kill.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.2.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE int pace_kill (pace_pid_t pid, int sig);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- C std 7.14.2.1
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_raise (int sig);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sigaction.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.4.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE int pace_sigaction (int sig,
- const pace_sigaction_s * act,
- pace_sigaction_s * oact);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function sigaddset.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.3.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE int pace_sigaddset (pace_sigset_t * set, int signo);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function sigemptyset.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.3.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE int pace_sigemptyset (pace_sigset_t * set);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function sigdelset.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.3.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE int pace_sigdelset (pace_sigset_t * set, int signo);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function sigfillset.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.3.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE int pace_sigfillset (pace_sigset_t * set);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function sigismember.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.3.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE int pace_sigismember (const pace_sigset_t * set,
- int signo);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- C std 7.14.1.1
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE pace_sig_pf pace_signal(int sig, pace_sig_pf func);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sigpending.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.6.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE int pace_sigpending (pace_sigset_t * set);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function sigprocmask.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.5.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE int pace_sigprocmask (int how,
- const pace_sigset_t * set,
- pace_sigset_t * oset);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function sigqueue.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.9.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sigqueue (pace_pid_t pid,
- int signo,
- const pace_sigval value);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sigsuspend.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.7.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE int pace_sigsuspend (const pace_sigset_t * sigmask);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function sigtimedwait.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.8.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sigtimedwait (const pace_sigset_t * set,
- pace_siginfo_t * info,
- const pace_timespec * timeout);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function sigwait.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.8.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sigwait (const pace_sigset_t * set,
- int * sig);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
- /**
- PACE's implementation of the POSIX function sigwaitinfo.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.3.8.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_sigwaitinfo (const pace_sigset_t * set,
- pace_siginfo_t * info);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/signal.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/signal.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/signal.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SIGNAL_H */
diff --git a/PACE/pace/stddef.h b/PACE/pace/stddef.h
deleted file mode 100644
index 457dddcd50f..00000000000
--- a/PACE/pace/stddef.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* $Id$
-
-* ============================================================================
-*
-* = LIBRARY
-* pace
-*
-* = FILENAME
-* pace/stddef.h
-*
-* = AUTHOR
-* John Heitmann
-*
-* =========================================================================== */
-
-#ifndef PACE_STDDEF_H
-#define PACE_STDDEF_H
-
-#include <stddef.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_NULL
-#define PACE_NULL NULL;
-#endif /* PACE_NULL */
-
-#ifndef PACE_OFFSETOF
-# define PACE_OFFSETOF
-# define pace_offsetof offsetof;
-#endif /* PACE_OFFSETOF */
-
-#ifndef PACE_PTRDIFF_T
-#define PACE_PTRDIFF_T
-typedef ptrdiff_t pace_ptrdiff_t;
-#endif /* PACE_PTRDIFF_T */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
-typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_WCHAR_T
-#define PACE_WCHAR_T
-typedef wchar_t pace_wchar_t;
-#endif /* PACE_WCHAR_T */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STDDEF_H */
diff --git a/PACE/pace/stdio.h b/PACE/pace/stdio.h
deleted file mode 100644
index 29cb3444e35..00000000000
--- a/PACE/pace/stdio.h
+++ /dev/null
@@ -1,528 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/stdio.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_STDIO_H
-#define PACE_STDIO_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/stdio.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/stdio.h"
-#elif (PACE_WIN32)
-# include "pace/win32/stdio.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function clearerr.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE void pace_clearerr (PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function ctermid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.7.1.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE char * pace_ctermid (char * s);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function fclose.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_fclose (PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function fdopen.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.2.2.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE PACE_FILE * pace_fdopen (int fildes,
- const char * type);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function ferror.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_ferror (PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function feof.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_feof (PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function fflush.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_fflush (PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function fileno.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.2.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_fileno (PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function fgetc.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_fgetc (PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- C std 7.19.9.1
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_fgetpos(PACE_FILE * stream,
- pace_fpos_t * pos);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function fgets.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE char * pace_fgets (char * s, int n,
- PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function flockfile.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.2.6.
- */
-#if (PACE_HAS_POSIX_FL_UOF)
- PACE_Export PACE_INLINE void pace_flockfile (PACE_FILE * file);
-#endif /* PACE_HAS_POSIX_FL_UOF */
- /* Requires PACE_HAS_REENTRANT. */
-
- /**
- PACE's implementation of the POSIX function fopen.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE PACE_FILE * pace_fopen (const char * filename,
- const char * mode);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function fprintf.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
-# define pace_fprintf fprintf
-#endif /* PACE_HAS_POSIX_DI_UOF */
- /* int pace_fprintf (PACE_FILE *stream, const char *format, ...);*/
-
- /**
- PACE's implementation of the POSIX function fputc.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_fputc (int c, PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function fputs.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_fputs (const char * s, PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function fread.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE pace_size_t pace_fread (void * ptr,
- pace_size_t size,
- pace_size_t number_of_items,
- PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function freopen.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE FILE * pace_freopen (const char * filename,
- const char * mode,
- PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function fscanf.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
-# define pace_fscanf fscanf
-#endif /* PACE_HAS_POSIX_DI_UOF */
- /* int pace_scanf (const char *format, ... ); */
-
- /**
- PACE's implementation of the POSIX function fseek.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_FM_UOF)
- PACE_Export PACE_INLINE int pace_fseek (PACE_FILE * stream,
- long offset,
- int whence);
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
- /**
- C std 7.19.9.3
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_fsetpos(PACE_FILE *stream,
- const pace_fpos_t *pos);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function ftell.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_FM_UOF)
- PACE_Export PACE_INLINE long pace_ftell (PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
- /**
- PACE's implementation of the POSIX function ftrylockfile.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.2.6.
- */
-#if (PACE_HAS_POSIX_FL_UOF)
- PACE_Export PACE_INLINE int pace_ftrylockfile (PACE_FILE * file);
-#endif /* PACE_HAS_POSIX_FL_UOF */
- /* Requires PACE_HAS_REENTRANT. */
-
- /**
- PACE's implementation of the POSIX function funlockfile.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.2.6.
- */
-#if (PACE_HAS_POSIX_FL_UOF)
- PACE_Export PACE_INLINE void pace_funlockfile (PACE_FILE * file);
-#endif /* PACE_HAS_POSIX_FL_UOF */
- /* Requires PACE_HAS_REENTRANT. */
-
- /**
- C std 7.19.8.2
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE pace_size_t pace_fwrite(const void * ptr,
- pace_size_t size,
- pace_size_t nmemb,
- PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function getc.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_getc (PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function getc_unlocked.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.2.7.
- */
-#if (PACE_HAS_POSIX_FL_UOF)
- PACE_Export PACE_INLINE int pace_getc_unlocked (PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_FL_UOF */
- /* Requires PACE_HAS_REENTRANT. */
-
- /**
- PACE's implementation of the POSIX function getchar.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_getchar ();
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function getchar_unlocked.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.2.7.
- */
-#if (PACE_HAS_POSIX_FL_UOF)
- PACE_Export PACE_INLINE int pace_getchar_unlocked ();
-#endif /* PACE_HAS_POSIX_FL_UOF */
- /* Requires PACE_HAS_REENTRANT. */
-
- /**
- PACE's implementation of the POSIX function gets.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE char *pace_gets (char * s);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function perror.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE void pace_perror (const char * s);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function printf.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
-# define pace_printf printf
-#endif /* PACE_HAS_POSIX_DI_UOF */
- /* int pace_printf (const char* format, ...); */
-
- /**
- PACE's implementation of the POSIX function putc.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_putc (int c, PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function putc_unlocked.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.2.7.
- */
-#if (PACE_HAS_POSIX_FL_UOF)
- PACE_Export PACE_INLINE int pace_putc_unlocked (int c, PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_FL_UOF */
- /* Requires PACE_HAS_REENTRANT. */
-
- /**
- PACE's implementation of the POSIX function putchar.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_putchar (int c);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function putchar_unlocked.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.2.7.
- */
-#if (PACE_HAS_POSIX_FL_UOF)
- PACE_Export PACE_INLINE int pace_putchar_unlocked (int c);
-#endif /* PACE_HAS_POSIX_FL_UOF */
- /* Requires PACE_HAS_REENTRANT. */
-
- /**
- PACE's implementation of the POSIX function puts.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_puts (const char * s);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function remove.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_remove (const char * path);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function rename.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.5.3.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_rename (const char * old_name,
- const char * new_name);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function rewind.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_FM_UOF)
- PACE_Export PACE_INLINE void pace_rewind (PACE_FILE * stream);
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
- /**
- PACE's implementation of the POSIX function sprintf.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
-# define pace_sprintf sprintf
-#endif /* PACE_HAS_POSIX_DI_UOF */
- /* int pace_sprintf (char* s, const char* format, ...); */
-
- /**
- PACE's implementation of the POSIX function scanf.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
-# define pace_scanf scanf
-#endif /* PACE_HAS_POSIX_DI_UOF */
- /* int pace_scanf (const char *format, ... ); */
-
- /**
- PACE's implementation of the POSIX function setbuf.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE void pace_setbuf (PACE_FILE * stream, char * buf);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-
- /**
- C std 7.19.5.6
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_setvbuf(PACE_FILE * stream,
- char * buf,
- int mode, pace_size_t size);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
- /**
- PACE's implementation of the POSIX function sscanf.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
-# define pace_sscanf sscanf
-#endif /* PACE_HAS_POSIX_DI_UOF */
- /* int pace_sscanf (const char *s, const char *format, ... ); */
-
- /**
- PACE's implementation of the POSIX function tmpfile.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE FILE * pace_tmpfile ();
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function tmpnam.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE char * pace_tmpnam (char * s);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function ungetc.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_ungetc (int c, FILE * stream);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- C std 7.19.6.8
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_vfprintf (PACE_FILE * stream,
- const char * format,
- va_list arg);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std 7.19.6.10
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_vprintf (const char * format,
- va_list arg);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std 7.19.6.13
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_vsprintf (char * s,
- const char * format,
- va_list arg);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/stdio.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/stdio.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/stdio.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STDIO_H */
diff --git a/PACE/pace/stdlib.h b/PACE/pace/stdlib.h
deleted file mode 100644
index 60c7ea203d1..00000000000
--- a/PACE/pace/stdlib.h
+++ /dev/null
@@ -1,305 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/stdlib.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_STDLIB_H
-#define PACE_STDLIB_H
-
-#include "pace/config/defines.h"
-#include "pace/unistd.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/stdlib.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/stdlib.h"
-#elif (PACE_WIN32)
-# include "pace/win32/stdlib.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- C std 7.20.4.1
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE void pace_abort (void);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function abs.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_abs (int val);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- C std ref. 7.20.4.2
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_atexit (void (*func)(void));
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function atof.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE double pace_atof (const char * str);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function atoi.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_atoi (const char * str);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function atol.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE long pace_atol (const char * str);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function bsearch.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE void * pace_bsearch (const void *key,
- const void *base,
- size_t nel, size_t size,
- int (*compar)(const void *,
- const void *));
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- C std ref. 7.20.6.2
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE pace_div_t pace_div (int numer, int denom);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function exit.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE void pace_exit (int status);
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
- /**
- PACE's implementation of the POSIX function getenv.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.6.1.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE char * pace_getenv (const char * name);
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
- /**
- C std ref. 7.20.6.1
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE long int pace_labs (long int j);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std ref. 7.20.6.2
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE pace_ldiv_t pace_ldiv (long int numer,
- long int denom);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std ref. 7.20.7.1
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_mblen (const char* s, pace_size_t n);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std ref. 7.20.8.1
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE pace_size_t pace_mbstowcs (pace_wchar_t* pwcs,
- const char* s,
- pace_size_t n);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std ref. 7.20.7.2
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_mbtowc (pace_wchar_t* pwc,
- const char* s,
- pace_size_t n);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function qsort.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE void pace_qsort (void * base,
- size_t nel,
- size_t width,
- int (*compar)(const void *,
- const void *));
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function rand.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_rand ();
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function srand.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE void pace_srand (unsigned int seed);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function rand_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.3.8.
- */
-#if (PACE_HAS_POSIX_CLSR_UOF)
- PACE_Export PACE_INLINE int pace_rand_r (unsigned int * seed);
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
- /* Requires PACE_HAS_REENTRANT. */
-
- /**
- C std ref. 7.20.1.3
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE double pace_strtod (const char* nptr,
- char** endptr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std ref. 7.20.1.4
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_strtol (const char* nptr,
- char** endptr,
- int base);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std ref. 7.20.7.2
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE unsigned long int pace_strtoul (const char* nptr,
- char** endptr,
- int base);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std ref. 7.20.4.5
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_system (const char* string);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std ref. 7.20.8.2
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE pace_size_t pace_wcstombs (char* s,
- const pace_wchar_t* pwcs,
- pace_size_t n);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std ref. 7.20.7.3
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_wctomb (char* s, pace_wchar_t wchar);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-
- /* Memory Management */
-
- /**
- PACE's implementation of the POSIX function malloc.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE void * pace_malloc (size_t size);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function calloc.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE void * pace_calloc (size_t nelem, size_t elsize);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function free.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE void pace_free (void * ptr);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function realloc.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE void * pace_realloc (void * ptr, size_t size);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/stdlib.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/stdlib.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/stdlib.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STDLIB_H */
diff --git a/PACE/pace/string.h b/PACE/pace/string.h
deleted file mode 100644
index 5160715c601..00000000000
--- a/PACE/pace/string.h
+++ /dev/null
@@ -1,240 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/string.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_STRING_H
-#define PACE_STRING_H
-
-#include "pace/config/defines.h"
-#include "pace/unistd.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/string.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/string.h"
-#elif (PACE_WIN32)
-# include "pace/win32/string.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- pace_memchr function, C std ref. 7.21.5.1
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE void * pace_memchr(const void *s,
- int c,
- pace_size_t n);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- pace_memcmp function, C std ref. 7.21.4.1
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_memcmp(const void *s1,
- const void *s2,
- pace_size_t n);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- pace_memcpy function, C std ref. 7.21.2.1
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE void *pace_memcpy(void * s1,
- const void * s2,
- pace_size_t n);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- pace_memmove function, C std ref.7.21.2.2
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE void *pace_memmove(void *s1,
- const void *s2,
- pace_size_t n);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- pace_memset function, C std ref. 7.21.6.1
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE void *pace_memset(void *s, int c, pace_size_t n);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function strcat.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE char * pace_strcat (char * s1, const char * s2);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strncat.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE char * pace_strncat (char * s1,
- const char * s2,
- size_t n);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strchr.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE char * pace_strchr (const char * s, int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strrchr.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE char * pace_strrchr (const char * s, int c);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strcmp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_strcmp (const char * s1, const char * s2);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strncmp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE int pace_strncmp (const char * s1,
- const char * s2,
- size_t n);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strcpy.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE char * pace_strcpy (char * s1, const char * s2);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strncpy.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE char * pace_strncpy (char * s1,
- const char * s2,
- size_t n);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strcspn.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE size_t pace_strcspn (const char * s1,
- const char * s2);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strspn.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE size_t pace_strspn (const char * s1,
- const char * s2);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strlen.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE size_t pace_strlen (const char * s);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strpbrk.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE char * pace_strpbrk (const char * s1,
- const char * s2);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strstr.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE char * pace_strstr (const char * s1,
- const char * s2);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strtok.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE char * pace_strtok (char * s1, const char * s2);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function strtok_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.3.3.
- */
-#if (PACE_HAS_POSIX_CLSR_UOF)
- PACE_Export PACE_INLINE char * pace_strtok_r (char * s,
- const char * sep,
- char ** lasts);
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
- /* Requires PACE_HAS_REENTRANT. */
-
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/string.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/string.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/string.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STRING_H */
diff --git a/PACE/pace/sys/mman.h b/PACE/pace/sys/mman.h
deleted file mode 100644
index 28d11481391..00000000000
--- a/PACE/pace/sys/mman.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/sys/mman.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_MMAN_H
-#define PACE_SYS_MMAN_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/mman.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/mman.h"
-#elif (PACE_WIN32)
-# include "pace/win32/mman.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function mlock.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 12.1.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_mlock (const void * addr, pace_size_t len);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function mlockall.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 12.1.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_mlockall (int flags);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function mmap.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 12.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE void * pace_mmap (void * addr,
- pace_size_t len,
- int prot,
- int flags,
- PACE_HANDLE fildes,
- pace_off_t off);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function mprotect.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 12.2.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_mprotect (void * addr,
- pace_size_t len,
- int prot);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function msync.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 12.2.4.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_msync (void * addr,
- pace_size_t len,
- int flags);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function munlock.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 12.1.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_munlock (const void * addr,
- pace_size_t len);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function munlockall.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 12.1.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_munlockall ();
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function munmap.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 12.2.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_munmap (void * addr, pace_size_t len);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function shm_open.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 12.3.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE PACE_HANDLE pace_shm_open (const char * name,
- int oflag,
- pace_mode_t mode);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
- /* Requires PACE_POSIX_C_SOURCE > 2. */
-
- /**
- PACE's implementation of the POSIX function shm_open.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 12.3.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_shm_unlink (const char * name);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
- /* Requires PACE_POSIX_C_SOURCE > 2. */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/mman.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/mman.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/mman.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_MMAN_H */
diff --git a/PACE/pace/sys/socket.h b/PACE/pace/sys/socket.h
deleted file mode 100644
index 52b407cfeff..00000000000
--- a/PACE/pace/sys/socket.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/sys/socket.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SOCKET_H
-#define PACE_SOCKET_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/socket.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/socket.h"
-#elif (PACE_WIN32)
-# include "pace/win32/socket.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-/**
- PACE's implementation of the POSIX function accept.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_accept (int s,
- pace_sockaddr * socketaddress,
- pace_socklen_t * addresslen);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function bind.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_bind (int s,
- const pace_sockaddr * socketaddress,
- pace_socklen_t addresslen);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function connect.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_connect (int s,
- const pace_sockaddr * socketaddress,
- pace_socklen_t addresslen);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function getpeername.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_getpeername (int s,
- pace_sockaddr * socketaddress,
- pace_socklen_t * addresslen);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function getsockname.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_getsockname (int s,
- pace_sockaddr * socketaddress,
- pace_socklen_t * addresslen);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function getsockopt.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_getsockopt (int s,
- int level,
- int optname,
- void * optval,
- pace_socklen_t optlen);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function setsockopt.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_setsockopt (int s,
- int level,
- int optname,
- const * optval);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function isfdtype.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_isfdtype (int fildes, int fdtype);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function listen.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_listen (int s, int backlog);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function recv.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE pace_ssize_t pace_recv (int s,
- void * buf,
- pace_size_t len,
- int flags);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function recvfrom.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE pace_ssize_t pace_recvfrom (int s,
- void * buf,
- pace_size_t len,
- int flags,
- pace_sockaddr * from,
- pace_socklen_t * fromlen);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function recvmsg.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE pace_ssize_t pace_rcvmsg (int s,
- pace_msghdr * msg,
- int flags);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function send.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE pace_ssize_t pace_send (int s,
- const void * buf,
- pace_size_t len,
- int flags);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function sendto.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE pace_ssize_t pace_sendto (int s,
- const void * buf,
- pace_size_t len,
- int flags,
- const pace_sockaddr * to,
- pace_socklen_t * tolen);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function sendmsg.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE pace_ssize_t pace_sendmsg (int s,
- const pace_msghdr * msg,
- int flags);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function shutdown.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_shutdown (int s, int how);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function socket.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_socket (int protofamily,
- int type,
- int protocol);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-/**
- PACE's implementation of the POSIX function socketpair.
- See IEEE Standards Project Approved 30 January 2000.
- (IEEE Std P1003.1g, D6.6, March 1997 Edition)
-*/
-#if (PACE_HAS_POSIX_SOCK_UOF)
- PACE_Export PACE_INLINE int pace_socketpair (int protofamily,
- int type,
- int protocol,
- int sv[2]);
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/socket.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/socket.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/socket.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SOCKET_H */
-
diff --git a/PACE/pace/sys/stat.h b/PACE/pace/sys/stat.h
deleted file mode 100644
index f1ab6a98dc0..00000000000
--- a/PACE/pace/sys/stat.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/sys/stat.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_STAT_H
-#define PACE_SYS_STAT_H
-
-#include "pace/config/defines.h"
-#include "pace/sys/types.h"
-
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/stat.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/stat.h"
-#elif (PACE_WIN32)
-# include "pace/win32/stat.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if (PACE_HAS_POSIX_FA_UOF)
- PACE_Export PACE_INLINE int pace_chmod (const char * path, pace_mode_t mode);
-#endif /* PACE_HAS_POSIX_FA_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_fchmod (PACE_HANDLE fildes,
- pace_mode_t mode);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_fstat (PACE_HANDLE fildes,
-pace_stat_s * buf);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_mkdir (const char * path, pace_mode_t mode);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_F_UOF)
- PACE_Export PACE_INLINE int pace_mkfifo (const char * path,
- pace_mode_t mode);
-#endif /* PACE_HAS_POSIX_F_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_stat (const char * path, pace_stat_s * buf);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FA_UOF)
- PACE_Export PACE_INLINE pace_mode_t pace_umask (pace_mode_t cmask);
-#endif /* PACE_HAS_POSIX_FA_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/stat.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/stat.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/stat.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_STAT_H */
diff --git a/PACE/pace/sys/times.h b/PACE/pace/sys/times.h
deleted file mode 100644
index 2f3db177f5c..00000000000
--- a/PACE/pace/sys/times.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/sys/times.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_TIMES_H
-#define PACE_SYS_TIMES_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/times.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/times.h"
-#elif (PACE_WIN32)
-# include "pace/win32/times.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE pace_clock_t pace_times (pace_tms * buffer);
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/times.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/times.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/times.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TIMES_H */
diff --git a/PACE/pace/sys/types.h b/PACE/pace/sys/types.h
deleted file mode 100644
index e668be409d7..00000000000
--- a/PACE/pace/sys/types.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/sys/types.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_TYPES_H
-#define PACE_SYS_TYPES_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/types.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/types.h"
-#elif (PACE_WIN32)
-# include "pace/win32/types.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TYPES_H */
diff --git a/PACE/pace/sys/utsname.h b/PACE/pace/sys/utsname.h
deleted file mode 100644
index 1f50d58ea18..00000000000
--- a/PACE/pace/sys/utsname.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/sys/utsname.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_UTSNAME_H
-#define PACE_SYS_UTSNAME_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/utsname.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/utsname.h"
-#elif (PACE_WIN32)
-# include "pace/win32/utsname.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if (PACE_HAS_POSIX_SP_UOF)
- PACE_Export PACE_INLINE int pace_uname (pace_utsname * name);
-#endif /* PACE_HAS_POSIX_SP_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/utsname.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/utsname.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/utsname.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_UTSNAME_H */
diff --git a/PACE/pace/sys/wait.h b/PACE/pace/sys/wait.h
deleted file mode 100644
index 8fc12e00bd8..00000000000
--- a/PACE/pace/sys/wait.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/sys/wait.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_WAIT_H
-#define PACE_WAIT_H
-
-#include "pace/config/defines.h"
-#include "pace/sys/types.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/wait.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/wait.h"
-#elif (PACE_WIN32)
-# include "pace/win32/wait.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
- /**
- PACE's implementation of the POSIX function wait.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.2.1.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE pace_pid_t pace_wait (int * statloc);
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
- /**
- PACE's implementation of the POSIX function waitpid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.2.1.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE pace_pid_t pace_waitpid (pace_pid_t pid,
- int * statloc,
- int options);
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/wait.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/wait.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/wait.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_WAIT_H */
diff --git a/PACE/pace/termios.h b/PACE/pace/termios.h
deleted file mode 100644
index 2a3d855259d..00000000000
--- a/PACE/pace/termios.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/termios.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_TERMIOS_H
-#define PACE_SYS_TERMIOS_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/termios.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/termios.h"
-#elif (PACE_WIN32)
-# include "pace/win32/termios.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function cfgetospeed.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.1.3.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE pace_speed_t pace_cfgetospeed (const pace_termios * termiosp);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function cfsetospeed.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.1.3.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE int pace_cfsetospeed (pace_termios * termios_p,
- pace_speed_t speed);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function cfgetispeed.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.1.3.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE pace_speed_t pace_cfgetispeed (const pace_termios * termios_p);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function cfsetispeed.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.1.3.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE int pace_cfsetispeed (pace_termios * termios_p,
- pace_speed_t speed);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function tcdrain.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.2.2.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE int pace_tcdrain (PACE_HANDLE fildes);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function tcflow.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.2.2.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE int pace_tcflow (PACE_HANDLE fildes, int action);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function tcflush.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.2.2.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE int pace_tcflush (PACE_HANDLE fildes,
- int queue_selector);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function tcgetattr.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.2.1.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE int pace_tcgetattr (PACE_HANDLE fildes,
- pace_termios * termios_p);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function tcsendbreak.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.2.2.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE int pace_tcsendbreak (PACE_HANDLE fildes,
- int duration);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function tcsetattr.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.2.1.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE int pace_tcsetattr (PACE_HANDLE fildes,
- int optional_actions,
- const pace_termios * termios_p);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/termios.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/termios.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/termios.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TERMIOS_H */
diff --git a/PACE/pace/time.h b/PACE/pace/time.h
deleted file mode 100644
index 688eac0ddf6..00000000000
--- a/PACE/pace/time.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/time.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_TIME_H
-#define PACE_TIME_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/time.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/time.h"
-#elif (PACE_WIN32)
-# include "pace/win32/time.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function asctime.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE char * pace_asctime (const pace_tm * time);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function asctime_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.1.
- */
-#if (PACE_HAS_POSIX_CLSR_UOF)
- PACE_Export PACE_INLINE char * pace_asctime_r (const pace_tm * tm,
- char * buf);
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
-
- /**
- C std 7.23.2.1
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE pace_clock_t pace_clock (void);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- C std 7.23.2.2
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE double pace_difftime (pace_time_t time1,
- pace_time_t time2);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function clock_getres.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 14.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_clock_getres (pace_clockid_t clock_id,
- pace_timespec * res);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function clock_gettime.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 14.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_clock_gettime (pace_clockid_t clock_id,
- pace_timespec * tp);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function clock_settime.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 14.2.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_clock_settime (pace_clockid_t clock_id,
- const pace_timespec * tp);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function ctime.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE char * pace_ctime (const pace_time_t * clock);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function ctime_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.3.5.
- */
-#if (PACE_HAS_POSIX_CLSR_UOF)
- PACE_Export PACE_INLINE char * pace_ctime_r (const pace_time_t * clock,
- char * buf);
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
- /**
- PACE's implementation of the POSIX function gmtime.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE pace_tm * pace_gmtime (const pace_time_t * clock);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function gmtime_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.3.6.
- */
-#if (PACE_HAS_POSIX_CLSR_UOF)
- PACE_Export PACE_INLINE pace_tm * pace_gmtime_r (const pace_time_t * clock,
- pace_tm * result);
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
- /**
- PACE's implementation of the POSIX function localtime.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE pace_tm * pace_localtime (const time_t * clock);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function localtime_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.3.7.
- */
-#if (PACE_HAS_POSIX_CLSR_UOF)
- PACE_Export PACE_INLINE pace_tm * pace_localtime_r (const pace_time_t * clock,
- pace_tm * result);
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
- /**
- PACE's implementation of the POSIX function mktime.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE pace_time_t pace_mktime (pace_tm * timeptr);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function nanosleep.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 14.2.5.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_nanosleep (const pace_timespec * rqtp,
- pace_timespec * rmtp);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function strftime.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE pace_size_t pace_strftime (char *s,
- pace_size_t maxsize,
- const char *format,
- const pace_tm *timeptr);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function time.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.5.1.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE pace_time_t pace_time (pace_time_t *tloc);
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
- /**
- PACE's implementation of the POSIX function timer_create.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 14.2.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_timer_create (pace_clockid_t clock_id,
- pace_sigevent * evp,
- pace_timer_t * timerid);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function timer_delete.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 14.2.3.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_timer_delete (pace_timer_t timerid);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function timer_getoverrun.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 14.2.4.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_timer_getoverrun (pace_timer_t timerid);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function timer_gettime.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 14.2.4.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_timer_gettime (pace_timer_t timerid,
- pace_itimerspec * value);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function timer_settime.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 14.2.4.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_timer_settime (pace_timer_t timerid,
- int flags,
- const pace_itimerspec * value,
- pace_itimerspec * ovalue);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function tzset.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 8.3.2.
- */
-#if (PACE_HAS_POSIX_CLS_UOF)
- PACE_Export PACE_INLINE void pace_tzset ();
-#endif /* PACE_HAS_POSIX_CLS_UOF */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/time.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/time.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/time.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_TIME_H */
diff --git a/PACE/pace/unistd.h b/PACE/pace/unistd.h
deleted file mode 100644
index 3b6b99f545a..00000000000
--- a/PACE/pace/unistd.h
+++ /dev/null
@@ -1,524 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/unistd.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_UNISTD_H
-#define PACE_UNISTD_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/unistd.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/unistd.h"
-#elif (PACE_WIN32)
-# include "pace/win32/unistd.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function _exit.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.2.2.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE void pace__exit (int status);
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
- /**
- PACE's implementation of the POSIX function access.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.6.3.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_access (const char * path, int amode);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function alarm.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.4.1.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE unsigned int pace_alarm (unsigned int seconds);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function chdir.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.2.1.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_chdir (const char * path);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function chown.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.6.5.
- */
-#if (PACE_HAS_POSIX_FA_UOF)
- PACE_Export PACE_INLINE int pace_chown (const char * path,
- pace_uid_t owner,
- pace_gid_t group);
-#endif /* PACE_HAS_POSIX_FA_UOF */
-
- /**
- PACE's implementation of the POSIX function close.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 6.3.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE int pace_close (PACE_HANDLE fildes);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function dup.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 6.2.1.
- */
-#if (PACE_HAS_POSIX_FM_UOF)
- PACE_Export PACE_INLINE PACE_HANDLE pace_dup (PACE_HANDLE fildes);
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
- /**
- PACE's implementation of the POSIX function dup2.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 6.2.1.
- */
-#if (PACE_HAS_POSIX_FM_UOF)
- PACE_Export PACE_INLINE PACE_HANDLE pace_dup2 (PACE_HANDLE fildes,
- PACE_HANDLE fildes2);
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
- /**
- PACE's implementation of the POSIX function execl.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.1.2.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
-# define pace_execl execl
-#endif /* PACE_HAS_POSIX_MP_UOF */
- /* PACE_Export PACE_INLINE int pace_execl (const char* path,
- const char* arg, ...); */
-
- /**
- PACE's implementation of the POSIX function execle.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.1.2.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
-# define pace_execle execle
-#endif /* PACE_HAS_POSIX_MP_UOF */
- /* PACE_Export PACE_INLINE int pace_execle (const char* path,
- const char* arg, ...);*/
-
- /**
- PACE's implementation of the POSIX function execlp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.1.2.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
-# define pace_execlp execlp
-#endif /* PACE_HAS_POSIX_MP_UOF */
- /* PACE_Export PACE_INLINE int pace_execlp (const char* file,
- const char* arg, ...);*/
-
- /**
- PACE's implementation of the POSIX function execv.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.1.2.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE int pace_execv (const char * path,
- char * const argv[]);
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
- /**
- PACE's implementation of the POSIX function execve.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.1.2.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE int pace_execve (const char * path,
- char * const argv[],
- char * const envp[]);
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
- /**
- PACE's implementation of the POSIX function execvp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.1.2.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE int pace_execvp (const char * file,
- char * const argv[]);
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
- /**
- PACE's implementation of the POSIX function fdatasync.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 6.6.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_fdatasync (PACE_HANDLE fildes);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function fork.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.1.1.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE pace_pid_t pace_fork ();
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
- /**
- PACE's implementation of the POSIX function fpathconf.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.7.1.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE long pace_fpathconf (PACE_HANDLE fildes, int name);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function fsync.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 6.6.1.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_fsync (PACE_HANDLE fildes);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function ftruncate.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.6.7.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_ftruncate (PACE_HANDLE fildes,
- pace_off_t length);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
- /**
- PACE's implementation of the POSIX function getcwd.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.2.2.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE char * pace_getcwd (char * buf, size_t size);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function getegid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.2.1.
- */
-#if (PACE_HAS_POSIX_UG_UOF)
- PACE_Export PACE_INLINE pace_uid_t pace_getegid ();
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
- /**
- PACE's implementation of the POSIX function geteuid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.2.1.
- */
-#if (PACE_HAS_POSIX_UG_UOF)
- PACE_Export PACE_INLINE pace_uid_t pace_geteuid ();
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
- /**
- PACE's implementation of the POSIX function getgid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.2.1.
- */
-#if (PACE_HAS_POSIX_UG_UOF)
- PACE_Export PACE_INLINE pace_uid_t pace_getgid ();
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
- /**
- PACE's implementation of the POSIX function getgroups.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.2.3.
- */
-#if (PACE_HAS_POSIX_UG_UOF)
- PACE_Export PACE_INLINE int pace_getgroups (int gidsetsize,
- pace_gid_t grouplist[]);
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
- /**
- PACE's implementation of the POSIX function getlogin.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.2.4.
- */
-#if (PACE_HAS_POSIX_UG_UOF)
- PACE_Export PACE_INLINE char * pace_getlogin ();
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
- /**
- PACE's implementation of the POSIX function getlogin_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.2.4.
- */
-#if (PACE_HAS_POSIX_UGR_UOF)
- PACE_Export PACE_INLINE int pace_getlogin_r (char * name, size_t namesize);
-#endif /* PACE_HAS_POSIX_UGR_UOF */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
- /**
- PACE's implementation of the POSIX function getpgrp.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.3.1.
- */
-#if (PACE_HAS_POSIX_UG_UOF)
- PACE_Export PACE_INLINE pace_pid_t pace_getpgrp ();
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
- /**
- PACE's implementation of the POSIX function getpid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.1.1.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE pace_pid_t pace_getpid ();
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
- /**
- PACE's implementation of the POSIX function getppid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.1.1.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE pace_pid_t pace_getppid ();
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
- /**
- PACE's implementation of the POSIX function getuid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.2.1.
- */
-#if (PACE_HAS_POSIX_UG_UOF)
- PACE_Export PACE_INLINE pace_uid_t pace_getuid ();
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
- /**
- PACE's implementation of the POSIX function isatty.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.7.2.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE int pace_isatty (int fildes);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function link.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.3.4.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_link (const char * existing,
- const char * new_link);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function lseek.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 6.5.3.
- */
-#if (PACE_HAS_POSIX_FM_UOF)
- PACE_Export PACE_INLINE pace_off_t pace_lseek (PACE_HANDLE fildes,
- off_t offset,
- int whence);
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
- /**
- PACE's implementation of the POSIX function pathconf.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.7.1.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE long pace_pathconf (const char * path, int name);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function pause.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.4.2.
- */
-#if (PACE_HAS_POSIX_SIG_UOF)
- PACE_Export PACE_INLINE int pace_pause ();
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
- /**
- PACE's implementation of the POSIX function pipe.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 6.1.1.
- */
-#if (PACE_HAS_POSIX_P_UOF)
- PACE_Export PACE_INLINE int pace_pipe (PACE_HANDLE fildes[2]);
-#endif /* PACE_HAS_POSIX_P_UOF */
-
- /**
- PACE's implementation of the POSIX function read.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 6.4.1.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE pace_ssize_t pace_read (PACE_HANDLE fildes,
- void * buf,
- size_t nbyte);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
- /**
- PACE's implementation of the POSIX function rmdir.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.5.2.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_rmdir (const char * path);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function setgid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.2.2.
- */
-#if (PACE_HAS_POSIX_UG_UOF)
- PACE_Export PACE_INLINE int pace_setgid (pace_gid_t gid);
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
- /**
- PACE's implementation of the POSIX function setpgid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.3.3.
- */
-#if (PACE_HAS_POSIX_JC_UOF)
- PACE_Export PACE_INLINE int pace_setpgid (pace_pid_t pid, pace_pid_t pgid);
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
- /**
- PACE's implementation of the POSIX function setsid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.3.2.
- */
-#if (PACE_HAS_POSIX_UG_UOF)
- PACE_Export PACE_INLINE pace_pid_t pace_setsid ();
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
- /**
- PACE's implementation of the POSIX function setuid.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.2.2.
- */
-#if (PACE_HAS_POSIX_UG_UOF)
- PACE_Export PACE_INLINE int pace_setuid (pace_uid_t uid);
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
- /**
- PACE's implementation of the POSIX function sleep.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 3.4.3.
- */
-#if (PACE_HAS_POSIX_MP_UOF)
- PACE_Export PACE_INLINE unsigned pace_sleep (unsigned int seconds);
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
- /**
- PACE's implementation of the POSIX function sysconf.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.8.1.
- */
-#if (PACE_HAS_POSIX_SP_UOF)
- PACE_Export PACE_INLINE long pace_sysconf (int name);
-#endif /* PACE_HAS_POSIX_SP_UOF */
-
- /**
- PACE's implementation of the POSIX function ttyname.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.2.3.1.
- */
-#if (PACE_HAS_POSIX_JC_UOF)
- PACE_Export PACE_INLINE pace_pid_t pace_tcgetpgrp (PACE_HANDLE fildes);
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
- /**
- PACE's implementation of the POSIX function ttyname.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 7.2.3.1.
- */
-#if (PACE_HAS_POSIX_JC_UOF)
- PACE_Export PACE_INLINE int pace_tcsetpgrp (PACE_HANDLE fildes,
- pace_pid_t pgrp_id);
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
- /**
- PACE's implementation of the POSIX function ttyname.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.7.2.
- */
-#if (PACE_HAS_POSIX_DS_UOF)
- PACE_Export PACE_INLINE char * pace_ttyname (PACE_HANDLE fildes);
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
- /**
- PACE's implementation of the POSIX function ttyname_r.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 4.7.2.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_Export PACE_INLINE int pace_ttyname_r (PACE_HANDLE fildes,
- char * name,
- size_t namesize);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
- /* Requires PACE_HAS_POSIX_PTHREAD_SEMANTICS. */
-
- /**
- PACE's implementation of the POSIX function unlink.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.5.1.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_unlink (const char * path);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
- /**
- PACE's implementation of the POSIX function write.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 6.4.2.
- */
-#if (PACE_HAS_POSIX_DI_UOF)
- PACE_Export PACE_INLINE pace_ssize_t pace_write (PACE_HANDLE fildes,
- const void * buf,
- size_t nbyte);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/unistd.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/unistd.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/unistd.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_UNISTD_H */
diff --git a/PACE/pace/utime.h b/PACE/pace/utime.h
deleted file mode 100644
index 90a5cfa1a22..00000000000
--- a/PACE/pace/utime.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/utime.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_UTIME_H
-#define PACE_UTIME_H
-
-#include "pace/config/defines.h"
-
-#if (PACE_HAS_POSIX)
-# include "pace/posix/utime.h"
-#elif (PACE_VXWORKS)
-# include "pace/vxworks/utime.h"
-#elif (PACE_WIN32)
-# include "pace/win32/utime.h"
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /**
- PACE's implementation of the POSIX function utime.
- See POSIX standard (Internation Standard ISO/IEC 9945-1:1996;
- IEEE Std 1003.1, 1996 Edition), Section 5.6.6.
- */
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_Export PACE_INLINE int pace_utime (const char * path,
- const pace_utimbuf * times);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if defined (PACE_HAS_INLINE)
-# if (PACE_HAS_POSIX)
-# include "pace/posix/utime.inl"
-# elif (PACE_VXWORKS)
-# include "pace/vxworks/utime.inl"
-# elif (PACE_WIN32)
-# include "pace/win32/utime.inl"
-# endif
-#endif /* PACE_HAS_INLINE */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_UTIME_H */
diff --git a/PACE/pace/vxworks/README b/PACE/pace/vxworks/README
deleted file mode 100644
index 170f4b84920..00000000000
--- a/PACE/pace/vxworks/README
+++ /dev/null
@@ -1 +0,0 @@
-VXWORKS dir.
diff --git a/PACE/pace/vxworks/aio.c b/PACE/pace/vxworks/aio.c
deleted file mode 100644
index f9c32d822b4..00000000000
--- a/PACE/pace/vxworks/aio.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/aio.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/aio.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/aio.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/aio.h b/PACE/pace/vxworks/aio.h
deleted file mode 100644
index fa519c4df73..00000000000
--- a/PACE/pace/vxworks/aio.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/aio.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_AIO_H_VXWORKS
-#define PACE_AIO_H_VXWORKS
-
-#include <aio.h>
-#include "pace/time.h"
-#include "pace/signal.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_AIO_ALLDONE AIO_ALLDONE
-#define PACE_AIO_CANCELED AIO_CANCELED
-#define PACE_AIO_NOCANCELED AIO_NOTCANCELED
-#define PACE_LIO_NOP LIO_NOP
-#define PACE_LIO_NOWAIT LIO_NOWAIT
-#define PACE_LIO_READ LIO_READ
-#define PACE_LIO_WAIT LIO_WAIT
-#define PACE_LIO_WRITE LIO_WRITE
-
-#ifndef PACE_AIOCB
-#define PACE_AIOCB
-typedef struct aiocb pace_aiocb;
-#endif /* PACE_AIOCB */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_AIO_H_VXWORKS */
diff --git a/PACE/pace/vxworks/aio.inl b/PACE/pace/vxworks/aio.inl
deleted file mode 100644
index f79a7573c4b..00000000000
--- a/PACE/pace/vxworks/aio.inl
+++ /dev/null
@@ -1,112 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/aio.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_cancel (PACE_HANDLE fildes, pace_aiocb * aiocbp)
-{
- PACE_TRACE("pace_aio_cancel");
-
- return aio_cancel (fildes, aiocbp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_error (const pace_aiocb * aiocbp)
-{
- PACE_TRACE("pace_aio_error");
-
- return aio_error (PACE_NONCONST_ARG_CAST (struct aiocb *) aiocbp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_fsync (int op, pace_aiocb * aiocbp)
-{
- PACE_TRACE("pace_aio_fsync");
-
- PACE_UNUSED_ARG (op);
- PACE_UNUSED_ARG (aiocbp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_read (pace_aiocb * aiocbp)
-{
- PACE_TRACE("pace_aio_read");
-
- return aio_read (aiocbp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_return (pace_aiocb * aiocbp)
-{
- PACE_TRACE("pace_aio_return");
-
- return aio_return (aiocbp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_suspend (const pace_aiocb * const list[],
- int nent,
- const pace_timespec * timeout)
-{
- PACE_TRACE("pace_aio_suspend");
-
- return aio_suspend (PACE_AIO_SUSPEND_LIST_ARG_CAST list,
- nent,
- PACE_NONCONST_ARG_CAST (struct timespec *) timeout);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_write (pace_aiocb * aiocbp)
-{
- PACE_TRACE("pace_aio_write");
-
- return aio_write (aiocbp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_lio_listio (int mode,
- pace_aiocb * const list[],
- int nent,
- pace_sigevent * sig)
-{
- PACE_TRACE("pace_lio_listio");
-
- return lio_listio (mode, PACE_NONCONST_ARG_CAST (struct aiocb **) list,
- nent, sig);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/vxworks/assert.c b/PACE/pace/vxworks/assert.c
deleted file mode 100644
index 8731f27260d..00000000000
--- a/PACE/pace/vxworks/assert.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/assert.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/assert.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/assert.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/assert.h b/PACE/pace/vxworks/assert.h
deleted file mode 100644
index 3b2f014109d..00000000000
--- a/PACE/pace/vxworks/assert.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/assert.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#ifndef PACE_ASSERT_H_VXWORKS
-#define PACE_ASSERT_H_VXWORKS
-
-#include <assert.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_ASSERT_H_VXWORKS */
diff --git a/PACE/pace/vxworks/assert.inl b/PACE/pace/vxworks/assert.inl
deleted file mode 100644
index b3def672d99..00000000000
--- a/PACE/pace/vxworks/assert.inl
+++ /dev/null
@@ -1,14 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/assert.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
diff --git a/PACE/pace/vxworks/ctype.c b/PACE/pace/vxworks/ctype.c
deleted file mode 100644
index 01b1da173ab..00000000000
--- a/PACE/pace/vxworks/ctype.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/ctype.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/ctype.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/ctype.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/ctype.h b/PACE/pace/vxworks/ctype.h
deleted file mode 100644
index 106684d7371..00000000000
--- a/PACE/pace/vxworks/ctype.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/ctype.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_CTYPE_H_VXWORKS
-#define PACE_CTYPE_H_VXWORKS
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_CTYPE_H_VXWORKS */
diff --git a/PACE/pace/vxworks/ctype.inl b/PACE/pace/vxworks/ctype.inl
deleted file mode 100644
index df9afc8dd76..00000000000
--- a/PACE/pace/vxworks/ctype.inl
+++ /dev/null
@@ -1,159 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/ctype.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include <ctype.h>
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isalnum (int c)
-{
- PACE_TRACE("pace_isalnum");
-
- return isalnum (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isalpha (int c)
-{
- PACE_TRACE("pace_isalpha");
-
- return isalpha (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_iscntrl (int c)
-{
- PACE_TRACE("pace_iscntrl");
-
- return iscntrl (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isdigit (int c)
-{
- PACE_TRACE("pace_isdigit");
-
- return isdigit (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isgraph (int c)
-{
- PACE_TRACE("pace_isgraph");
-
- return isgraph (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_islower (int c)
-{
- PACE_TRACE("pace_islower");
-
- return islower (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isprint (int c)
-{
- PACE_TRACE("pace_isprint");
-
- return isprint (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_ispunct (int c)
-{
- PACE_TRACE("pace_ispunct");
-
- return ispunct (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isspace (int c)
-{
- PACE_TRACE("pace_isspace");
-
- return isspace (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isupper (int c)
-{
- PACE_TRACE("pace_isupper");
-
- return isupper (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isxdigit (int c)
-{
- PACE_TRACE("pace_isxdigit");
-
- return isxdigit (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_tolower (int c)
-{
- PACE_TRACE("pace_tolower");
-
- return tolower (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_toupper (int c)
-{
- PACE_TRACE("pace_toupper");
-
- return toupper (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
diff --git a/PACE/pace/vxworks/dirent.c b/PACE/pace/vxworks/dirent.c
deleted file mode 100644
index c1a09545067..00000000000
--- a/PACE/pace/vxworks/dirent.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/dirent.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/dirent.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/dirent.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/dirent.h b/PACE/pace/vxworks/dirent.h
deleted file mode 100644
index 1b746c6ec4a..00000000000
--- a/PACE/pace/vxworks/dirent.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/dirent.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_DIRENT_H_VXWORKS
-#define PACE_DIRENT_H_VXWORKS
-
-#include "pace/sys/types.h"
-#include <dirent.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_DIR_T
-#define PACE_DIR_T
-typedef DIR PACE_DIR;
-#endif /* PACE_DIR_T */
-
-#ifndef PACE_DIRENT
-#define PACE_DIRENT
-typedef struct dirent pace_dirent;
-#endif /* PACE_DIRENT */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_DIRENT_H_VXWORKS */
diff --git a/PACE/pace/vxworks/dirent.inl b/PACE/pace/vxworks/dirent.inl
deleted file mode 100644
index 71d68023212..00000000000
--- a/PACE/pace/vxworks/dirent.inl
+++ /dev/null
@@ -1,74 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/dirent.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-PACE_DIR *
-pace_opendir (const char * dirname)
-{
- PACE_TRACE("pace_opendir");
-
- return opendir (PACE_NONCONST_ARG_CAST(char *) dirname);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-pace_dirent *
-pace_readdir (PACE_DIR * dirp)
-{
- PACE_TRACE("pace_readdir");
-
- return readdir (dirp);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-int
-pace_readdir_r (PACE_DIR * dirp, pace_dirent * entry,
- pace_dirent ** result)
-{
- PACE_TRACE("pace_readdir_r");
-
- PACE_UNUSED_ARG (entry);
- /* <result> has better not be 0! */
- *result = pace_readdir (dirp);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-void
-pace_rewinddir (PACE_DIR * dirp)
-{
- PACE_TRACE("pace_rewinddir");
-
- rewinddir (dirp);
- return;
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_closedir (PACE_DIR * dirp)
-{
- PACE_TRACE("pace_closedir");
-
- return closedir (dirp);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/vxworks/errno.h b/PACE/pace/vxworks/errno.h
deleted file mode 100644
index 7e64a524658..00000000000
--- a/PACE/pace/vxworks/errno.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* $Id$
-
-* ============================================================================
-*
-* = LIBRARY
-* pace
-*
-* = FILENAME
-* pace/vxworks/errno.h
-*
-* = AUTHOR
-* Joe Hoffert
-*
-* =========================================================================== */
-
-#ifndef PACE_ERRNO_H_VXWORKS
-#define PACE_ERRNO_H_VXWORKS
-
-#include <errno.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_E2BIG E2BIG
-#define PACE_EACCES EACCES
-#define PACE_EAGAIN EAGAIN
-#define PACE_EBADF EBADF
-#define PACE_EBADMSG
-#define PACE_EBUSY EBUSY
-#define PACE_ECANCELED ECANCELED
-#define PACE_ECHILD ECHILD
-#define PACE_EDEADLK EDEADLK
-#define PACE_EDOM EDOM
-#define PACE_EEXIST EEXIST
-#define PACE_EFAULT EFAULT
-#define PACE_EFBIG EFBIG
-#define PACE_EINPROGRESS EINPROGRESS
-#define PACE_EINTR EINTR
-#define PACE_EINVAL EINVAL
-#define PACE_EIO EIO
-#define PACE_EISDIR EISDIR
-#define PACE_EMFILE EMFILE
-#define PACE_EMLINK EMLINK
-#define PACE_EMSGSIZE EMSGSIZE
-#define PACE_EENAMETOOLONG ENAMETOOLONG
-#define PACE_ENFILE ENFILE
-#define PACE_ENODEV ENODEV
-#define PACE_ENOENT ENOENT
-#define PACE_ENOEXEC ENOEXEC
-#define PACE_ENOLCK ENOLCK
-#define PACE_ENOMEM ENOMEM
-#define PACE_ENOSPC ENOSPC
-#define PACE_ENOSYS ENOSYS
-#define PACE_ENOTDIR ENOTDIR
-#define PACE_ENOTEMPTY ENOTEMPTY
-#define PACE_ENOTSUP ENOTSUP
-#define PACE_ENOTTY ENOTTY
-#define PACE_ENXIO ENXIO
-#define PACE_EPERM EPERM
-#define PACE_EPIPE EPIPE
-#define PACE_ERANGE ERANGE
-#define PACE_EROFS EROFS
-#define PACE_ESPIPE ESPIPE
-#define PACE_ESRCH ESRCH
-#define PACE_ETIMEDOUT ETIMEDOUT
-#define PACE_EXDEV EXDEV
-
-#define pace_errno errno
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_ERRNO_H_VXWORKS */
diff --git a/PACE/pace/vxworks/fcntl.c b/PACE/pace/vxworks/fcntl.c
deleted file mode 100644
index c0bc9a30a38..00000000000
--- a/PACE/pace/vxworks/fcntl.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/fcntl.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/fcntl.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/fcntl.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/fcntl.h b/PACE/pace/vxworks/fcntl.h
deleted file mode 100644
index 534beaca5b2..00000000000
--- a/PACE/pace/vxworks/fcntl.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/fnctl.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_FCNTL_H_VXWORKS
-#define PACE_FCNTL_H_VXWORKS
-
-#include "pace/sys/types.h"
-#include "pace/unistd.h"
-#include "pace/sys/stat.h"
-#include <fcntl.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_FD_CLOEXEC FD_CLOEXEC
-#define PACE_F_DUPFD D_DUPFD
-#define PACE_F_GETFD F_GETFD
-#define PACE_F_GETFL F_GETFL
-#define PACE_F_GETLK F_GETLK
-#define PACE_F_RDLCK F_RDLCK
-#define PACE_F_SETFD F_SETFD
-#define PACE_F_SETFL F_SETFL
-#define PACE_F_SETLK F_SETLK
-#define PACE_F_SETLKW F_SETLKW
-#define PACE_F_UNLCK F_UNLCK
-#define PACE_F_WRLCK F_WRLCK
-#define PACE_O_ACCMODE O_ACCMODE
-#define PACE_O_APPEND O_APPEND
-#define PACE_O_CREAT O_CREAT
-#define PACE_O_DSYNC O_DSYNC
-#define PACE_O_EXCL O_EXCL
-#define PACE_O_NOCTTY O_NOCTTY
-#define PACE_O_NONBLOCK O_NONBLOCK
-#define PACE_O_RDONLY O_RDONLY
-#define PACE_O_RDWR O_RDWR
-#define PACE_O_RSYNC O_RSYNC
-#define PACE_O_SYNC O_SYNC
-#define PACE_O_TRUNC O_TRUNC
-#define PACE_O_WRONLY O_WRONLY
-
-#ifndef PACE_FLOCK
-#define PACE_FLOCK
-typedef struct flock pace_flock;
-#endif /* PACE_FLOCK */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_FCNTL_H_VXWORKS */
diff --git a/PACE/pace/vxworks/fcntl.inl b/PACE/pace/vxworks/fcntl.inl
deleted file mode 100644
index 23308b8fe22..00000000000
--- a/PACE/pace/vxworks/fcntl.inl
+++ /dev/null
@@ -1,39 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/fcntl.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_creat (const char * path, pace_mode_t mode)
-{
- PACE_TRACE("pace_creat");
-
- return creat (path, mode);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-int
-pace_fcntl (PACE_HANDLE fildes, int cmd, long arg)
-{
- PACE_TRACE("pace_fcntl");
-
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(cmd);
- PACE_UNUSED_ARG(arg);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/vxworks/grp.c b/PACE/pace/vxworks/grp.c
deleted file mode 100644
index 4a12ee0f64c..00000000000
--- a/PACE/pace/vxworks/grp.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/grp.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/grp.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/grp.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/grp.h b/PACE/pace/vxworks/grp.h
deleted file mode 100644
index 5fcd0fd959d..00000000000
--- a/PACE/pace/vxworks/grp.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace (posix ace)
- *
- * = FILENAME
- * pace/vxworks/grp.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_GRP_H_VXWORKS
-#define PACE_GRP_H_VXWORKS
-
-# if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_GROUP
-#define PACE_GROUP
-typedef struct group pace_group;
-#endif /* PACE_GROUP */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_GRP_H_VXWORKS */
diff --git a/PACE/pace/vxworks/grp.inl b/PACE/pace/vxworks/grp.inl
deleted file mode 100644
index 428ac7364e5..00000000000
--- a/PACE/pace/vxworks/grp.inl
+++ /dev/null
@@ -1,82 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/grp.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_group *
-pace_getgrgid (pace_gid_t gid)
-{
- PACE_TRACE("pace_getgrgid");
-
- /* getgrgid() is not supported: just one user anyways */
- PACE_UNUSED_ARG (gid);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getgrgid_r (pace_gid_t gid,
- pace_group * grp,
- char * buffer,
- size_t bufsize,
- pace_group ** result)
-{
- PACE_TRACE("pace_getgrgid_r");
-
- /* getgrgid_r() is not supported: just one user anyways */
- PACE_UNUSED_ARG (gid);
- PACE_UNUSED_ARG (grp);
- PACE_UNUSED_ARG (buffer);
- PACE_UNUSED_ARG (bufsize);
- PACE_UNUSED_ARG (result);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_group *
-pace_getgrnam (const char * name)
-{
- PACE_TRACE("pace_getgrnam");
-
- /* getgrnam() is not supported: just one user anyways */
- PACE_UNUSED_ARG (name);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getgrnam_r (const char * name,
- pace_group * grp,
- char * buffer,
- size_t bufsize,
- pace_group ** result)
-{
- PACE_TRACE("pace_getgrnam_r");
-
- /* getgrnam_r() is not supported: just one user anyways */
- PACE_UNUSED_ARG (name);
- PACE_UNUSED_ARG (grp);
- PACE_UNUSED_ARG (buffer);
- PACE_UNUSED_ARG (bufsize);
- PACE_UNUSED_ARG (result);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
diff --git a/PACE/pace/vxworks/limits.h b/PACE/pace/vxworks/limits.h
deleted file mode 100644
index e0d70071157..00000000000
--- a/PACE/pace/vxworks/limits.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace (posix ace)
- *
- * = FILENAME
- * pace/vxworks/limits.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_LIMITS_H_VXWORKS
-#define PACE_LIMITS_H_VXWORKS
-
-#include <limits.h>
-
-# if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-# endif /* (PACE_HAS_CPLUSPLUS) */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_LIMITS_H_VXWORKS */
diff --git a/PACE/pace/vxworks/locale.c b/PACE/pace/vxworks/locale.c
deleted file mode 100644
index 530fd21999c..00000000000
--- a/PACE/pace/vxworks/locale.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/locale.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/locale.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/locale.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/locale.h b/PACE/pace/vxworks/locale.h
deleted file mode 100644
index 4838e912fd3..00000000000
--- a/PACE/pace/vxworks/locale.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/locale.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#ifndef PACE_LOCALE_H_VXWORKS
-#define PACE_LOCALE_H_VXWORKS
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_LC_ALL LC_ALL
-#define PACE_LC_COLLATE LC_COLLATE
-#define PACE_LC_CTYPE LC_CTYPE
-#define PACE_LC_MONETARY LC_MONETARY
-#define PACE_LC_NUMERIC LC_NUMERIC
-#define PACE_LC_TIME LC_TIME
-#define PACE_NULL NULL
-
-#ifndef PACE_LCONV
-#define PACE_LCONV
-typedef struct lconv pace_lconv;
-#endif /* PACE_LCONV */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_LOCALE_H_VXWORKS */
diff --git a/PACE/pace/vxworks/locale.inl b/PACE/pace/vxworks/locale.inl
deleted file mode 100644
index 5ce0566e9c3..00000000000
--- a/PACE/pace/vxworks/locale.inl
+++ /dev/null
@@ -1,38 +0,0 @@
-/* $Id$ -*- C -*-
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/locale.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#include <locale.h>
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_lconv *
-pace_localeconv (void)
-{
- PACE_TRACE("pace_localeconv");
-
- return localeconv ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-char *
-pace_setlocale (int category, const char * locale)
-{
- PACE_TRACE("pace_setlocale");
-
- return setlocale (category, locale);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
diff --git a/PACE/pace/vxworks/math.c b/PACE/pace/vxworks/math.c
deleted file mode 100644
index 1d3b87dc973..00000000000
--- a/PACE/pace/vxworks/math.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/math.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/math.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/math.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/math.h b/PACE/pace/vxworks/math.h
deleted file mode 100644
index cda356e550e..00000000000
--- a/PACE/pace/vxworks/math.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/math.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_MATH_H_VXWORKS
-#define PACE_MATH_H_VXWORKS
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_HUGE_VAL HUGE_VAL
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_MATH_H_VXWORKS */
diff --git a/PACE/pace/vxworks/math.inl b/PACE/pace/vxworks/math.inl
deleted file mode 100644
index 81bd1bc19e2..00000000000
--- a/PACE/pace/vxworks/math.inl
+++ /dev/null
@@ -1,259 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/math.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-/* FUZZ: disable check_for_math_include */
-#include <math.h>
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_acos (double x)
-{
- PACE_TRACE("pace_acos");
-
- return acos (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_asin (double x)
-{
- PACE_TRACE("pace_asin");
-
- return asin (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_atan (double x)
-{
- PACE_TRACE("pace_atan");
-
- return atan (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_atan2 (double x, double y)
-{
- PACE_TRACE("pace_atan2");
-
- return atan2 (x, y);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_cos (double x)
-{
- PACE_TRACE("pace_cos");
-
- return cos (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_sin (double x)
-{
- PACE_TRACE("pace_sin");
-
- return sin (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_tan (double x)
-{
- PACE_TRACE("pace_tan");
-
- return tan (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_cosh (double x)
-{
- PACE_TRACE("pace_cosh");
-
- return cosh (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_sinh (double x)
-{
- PACE_TRACE("pace_sinh");
-
- return sinh (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_tanh (double x)
-{
- PACE_TRACE("pace_tanh");
-
- return tanh (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_exp (double x)
-{
- PACE_TRACE("pace_exp");
-
- return exp (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_frexp (double x, int * exp)
-{
- PACE_TRACE("pace_frexp");
-
- return frexp (x, exp);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_ldexp (double x, int exp)
-{
- PACE_TRACE("pace_ldexp");
-
- return ldexp (x, exp);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_log (double x)
-{
- PACE_TRACE("pace_log");
-
- return log (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_log10 (double x)
-{
- PACE_TRACE("pace_log10");
-
- return log10 (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_modf (double x, double * iptr)
-{
- PACE_TRACE("pace_modf");
-
- return modf (x, iptr);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_pow (double x, double y)
-{
- PACE_TRACE("pace_pow");
-
- return pow (x, y);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_sqrt (double x)
-{
- PACE_TRACE("pace_sqrt");
-
- return sqrt (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_ceil (double x)
-{
- PACE_TRACE("pace_ceil");
-
- return ceil (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_fabs (double x)
-{
- PACE_TRACE("pace_fabs");
-
- return fabs (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_floor (double x)
-{
- PACE_TRACE("pace_floor");
-
- return floor (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_fmod (double x, double y)
-{
- PACE_TRACE("pace_fmod");
-
- return fmod (x, y);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
diff --git a/PACE/pace/vxworks/mman.c b/PACE/pace/vxworks/mman.c
deleted file mode 100644
index 149f345054e..00000000000
--- a/PACE/pace/vxworks/mman.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/mman.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/sys/mman.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/mman.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/mman.h b/PACE/pace/vxworks/mman.h
deleted file mode 100644
index 7bddb69ee86..00000000000
--- a/PACE/pace/vxworks/mman.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/mman.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_MMAN_H_VXWORKS
-#define PACE_SYS_MMAN_H_VXWORKS
-
-#include <sys/mman.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_MAP_FAILED MAP_FAILED
-#define PACE_MAP_FIXED MAP_FIXED
-#define PACE_MAP_PRIVATE MAP_PRIVATE
-#define PACE_MAP_SHARED MAP_SHARED
-#define PACE_MCL_CURRENT MCL_CURRENT
-#define PACE_MS_ASYNC MS_ASYNC
-#define PACE_MS_INVALIDATE
-#define PACE_MS_SYNC MS_SYNC
-#define PACE_PROT_EXEC PROT_EXEC
-#define PACE_PROT_NONE PROT_NONE
-#define PACE_PROT_READ PROT_READ
-#define PACE_PROT_WRITE PROT_WRITE
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_MMAN_H_VXWORKS */
diff --git a/PACE/pace/vxworks/mman.inl b/PACE/pace/vxworks/mman.inl
deleted file mode 100644
index 79e07ea78c0..00000000000
--- a/PACE/pace/vxworks/mman.inl
+++ /dev/null
@@ -1,153 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/mman.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/fcntl.h"
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mlock (const void * addr, pace_size_t len)
-{
- PACE_TRACE("pace_mlock");
-
- return mlock (((char*)addr), len);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mlockall (int flags)
-{
- PACE_TRACE("pace_mlockall");
-
- return mlockall (flags);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_mmap (void * addr,
- pace_size_t len,
- int prot,
- int flags,
- PACE_HANDLE fildes,
- pace_off_t off)
-{
- PACE_TRACE("pace_mmap");
-
- PACE_UNUSED_ARG(addr);
- PACE_UNUSED_ARG(len);
- PACE_UNUSED_ARG(prot);
- PACE_UNUSED_ARG(flags);
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(off);
- PACE_ERRNO_NO_SUPPORT_RETURN ((void *) -1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_munlock (const void * addr, pace_size_t len)
-{
- PACE_TRACE("pace_munlock");
-
- return munlock (((char*)addr), len);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mprotect (void * addr,
- pace_size_t len,
- int prot)
-{
- PACE_TRACE("pace_mprotect");
-
- PACE_UNUSED_ARG(addr);
- PACE_UNUSED_ARG(len);
- PACE_UNUSED_ARG(prot);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_msync (void * addr,
- pace_size_t len,
- int flags)
-{
- PACE_TRACE("pace_msync");
-
- PACE_UNUSED_ARG(addr);
- PACE_UNUSED_ARG(len);
- PACE_UNUSED_ARG(flags);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_munlockall ()
-{
- PACE_TRACE("pace_munlockall");
-
- return munlockall ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_munmap (void * addr, pace_size_t len)
-{
- PACE_TRACE("pace_munmap");
-
- PACE_UNUSED_ARG(addr);
- PACE_UNUSED_ARG(len);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-PACE_HANDLE
-pace_shm_open (const char * name,
- int oflag,
- pace_mode_t mode)
-{
- PACE_TRACE("pace_shm_open");
-
- /* Just use open per ACE. */
- return pace_open (name, oflag, mode);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_shm_unlink (const char * name)
-{
- PACE_TRACE("pace_shm_unlink");
-
- /* Just use unlink per ACE. */
- return pace_unlink (name);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/vxworks/mqueue.c b/PACE/pace/vxworks/mqueue.c
deleted file mode 100644
index b2cbe7f35b9..00000000000
--- a/PACE/pace/vxworks/mqueue.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace (posix ace)
- *
- * = FILENAME
- * pace/vxworks/mqueue.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/mqueue.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/mqueue.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/mqueue.h b/PACE/pace/vxworks/mqueue.h
deleted file mode 100644
index 8e3b66e136a..00000000000
--- a/PACE/pace/vxworks/mqueue.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/mqueue.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_MQUEUE_H_VXWORKS
-#define PACE_MQUEUE_H_VXWORKS
-
-#if PACE_LINUX
-# include "pace/emulation/mqueue.h"
-#else
-# include <mqueue.h>
-#endif /* PACE_LINUX */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_MQD_T
-#define PACE_MQD_T
- typedef mqd_t pace_mqd_t;
-#endif /* PACE_MQD_T */
-
-#ifndef PACE_MQ_ATTR
-#define PACE_MQ_ATTR
- typedef struct mq_attr pace_mq_attr;
-#endif /* PACE_MQ_ATTR */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_MQUEUE_H_VXWORKS */
diff --git a/PACE/pace/vxworks/mqueue.inl b/PACE/pace/vxworks/mqueue.inl
deleted file mode 100644
index 78b983e5e66..00000000000
--- a/PACE/pace/vxworks/mqueue.inl
+++ /dev/null
@@ -1,101 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/posix/mqueue.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_close (pace_mqd_t mqdes)
-{
- PACE_TRACE("pace_mq_close");
-
- return mq_close (mqdes);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_getattr (pace_mqd_t mqdes,
- pace_mq_attr * mqstat)
-{
- PACE_TRACE("pace_mq_getattr");
-
- return mq_getattr (mqdes, mqstat);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_notify (pace_mqd_t mqdes,
- const pace_sigevent * notification)
-{
- PACE_TRACE("pace_mq_notify");
-
- return mq_notify (mqdes, notification);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-ssize_t
-pace_mq_receive (pace_mqd_t mqdes,
- char * msg_ptr,
- size_t msg_len,
- unsigned int * msg_prio)
-{
- PACE_TRACE("pace_mq_receive");
-
- return mq_receive (mqdes, msg_ptr, msg_len, msg_prio);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_send (pace_mqd_t mqdes,
- const char * msg_ptr,
- size_t msg_len,
- unsigned int msg_prio)
-{
- PACE_TRACE("pace_mq_send");
-
- return mq_send (mqdes, msg_ptr, msg_len, msg_prio);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_setattr (pace_mqd_t mqdes,
- const pace_mq_attr * mqstat,
- pace_mq_attr * omqstat)
-{
- PACE_TRACE("pace_mq_setattr");
-
- return mq_setattr (mqdes, mqstat, omqstat);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_unlink (const char * name)
-{
- PACE_TRACE("pace_mq_unlink");
-
- return mq_unlink (name);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/vxworks/pthread.c b/PACE/pace/vxworks/pthread.c
deleted file mode 100644
index ecf556b1639..00000000000
--- a/PACE/pace/vxworks/pthread.c
+++ /dev/null
@@ -1,1376 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/pthread.c
- *
- * = AUTHOR
- * Joe Hoffert. The *VAST* majority of the pthread code for VxWorks
- * has been supplied by Hughes Network Systems via Braeton Taylor.
- *
- * ============================================================================= */
-
-#include "pace/pthread.h"
-
-/* pthread queue */
-static pthread_q_entry pthread_queue[PTHEAD_QUEUE_MAX_LEN];
-static pthread_q_entry * first = NULL;
-static pthread_q_entry * current = NULL;
-static int pthread_count = 0;
-/*static pthread_q_entry * pthread_queue_get_entry();*/
-static int initialized = 0;
-static int registered_cleanup_init = 0;
-
-static pthread_key_entry keyList[PTHREAD_KEYS_MAX];
-
-/*
- * The defaut pthread attr structure, if calling task
- * does not pass attr, this default will be used
- */
-static struct _PTHREAD_ATTR _pthread_attr_default_s =
-{
- PTHREAD_DEFAULT_STACK_SIZE, /* stacksize */
- { '\0' }, /* name */
- {100}, /* priority */
- PTHREAD_SCOPE_SYSTEM, /* scope */
- SCHED_FIFO, /* indirect function */
- /* According to the POSIX standard PTHREAD_CREATE_JOINABLE
- * is the default
- */
- /*PTHREAD_CREATE_DETACHED * detached */
- PTHREAD_CREATE_JOINABLE /* joinable */
-};
-
-/* global default access */
-pace_pthread_attr_t pthread_attr_default = &_pthread_attr_default_s;
-
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/pthread.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-/*
- * VxWorks Helper Functions
- */
-
-/*
- * Setup the thread information needed for main. This function
- * mimics much of what's in pthread_create below but this is
- * only for registering a thread already created (as in the case
- * of main).
- */
-STATUS
-pacevx_vxworks_init()
-{
- WIND_TCB *pTcb;
- pace_pthread_t pthread;
- int taskid;
- unsigned int i;
- STATUS status;
-
- PACE_TRACE("pacevx_vxworks_init");
-
- /* Fill in the main thread's TCB with the information needed
- * for POSIX emulation.
- */
- taskid = taskIdSelf();
- if ((pTcb = taskTcb(taskid)) == NULL)
- {
- taskDelete(taskid);
- return ERROR;
- }
-
- pthread = (pace_pthread_t )malloc(sizeof(struct _PTHREAD_T));
-
- if (pthread == NULL)
- {
- taskDelete(taskid);
- return ERROR;
- }
-
- /* construct pace_pthread_t structure */
-
- bzero((char *)pthread, sizeof(struct _PTHREAD_T));
- pthread->tid = taskid;
- pthread->stateflag = PTHREAD_CANCEL_ENABLE;
- pthread->canceltype = PTHREAD_CANCEL_ASYNCHRONOUS;
- /*pthread->detachflag = PTHREAD_CREATE_JOINABLE;*/
- pthread->detachflag = PTHREAD_CREATE_DETACHED;
-
- /* initialize the join semaphore also */
- if ((pthread->joinSem = semBCreate(SEM_Q_PRIORITY, SEM_EMPTY)) == NULL)
- {
- free((void *)pthread);
- taskDelete(taskid);
- return ERROR;
- }
-
- /* save to the WIND_TCB for reference afterward */
- pTcb->_USER_SPARE4 = (int) pthread;
-
- /* I guess this doesn't need to get added for the main thread.
- * It seems to cause problems for main.
- if (registered_cleanup_init == 0)
- {
- status = taskDeleteHookAdd((FUNCPTR)pacevx_pthread_run_cleanup);
- if (status == ERROR)
- {
- return ERROR;
- }
- registered_cleanup_init = 1;
- }
-
- pacevx_pthread_queue_add(pthread);
- */
-
- return OK;
-}
-
-/*
- * Get a free entry from the pthread queue.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-pthread_q_entry *
-pacevx_pthread_queue_get_entry ()
-{
- int i;
-
- PACE_TRACE("pacevx_pthread_queue_get_entry");
-
- for (i = 0; i < PTHEAD_QUEUE_MAX_LEN; i++)
- {
- if (pthread_queue[i].status == FALSE)
- return &pthread_queue[i];
- }
-
- /* error condition, can alloc more in future */
- return NULL;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-/*
- * Run the destructor functions for the specific data key
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-void
-pacevx_pthread_destructor_key (pace_pthread_key_t key, void * arg)
-{
- PACE_TRACE("pacevx_pthread_destructor_key");
-
- if (pacevx_pthread_key_validate(key))
- {
- if (keyList[key].destructor != NULL)
- {
- (*(keyList[key].destructor))(arg);
- }
- }
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-/*
- * Run the destructor functions for the thread
- * For each key value, if there is a non-NULL destructor pointer,
- * and the thread has a non-NULL value associated with that key,
- * the function pointed to is called with the current associated
- * value as its sole argument.
- *
- * return: none.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-void
-pacevx_pthread_destructor_thread (pace_pthread_t pthread)
-{
- int i;
-
- PACE_TRACE("pacevx_pthread_destructor_thread");
-
- for (i = 0; i < PTHREAD_KEYS_MAX; i ++)
- {
- if (pthread->keyvaluelist[i] != NULL)
- {
- pacevx_pthread_destructor_key(i, pthread->keyvaluelist[i]);
- }
- }
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-/*
- * General exit processing.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-void
-pacevx_pthread_proc_exit (pace_pthread_t pthread, void *value_ptr)
-{
- int key;
- int needgive = 0;
-
- PACE_TRACE("pacevx_pthread_proc_exit");
-
- pacevx_pthread_cleanup_popall(pthread);
-
- /* thread storage data cleanup is automatically*/
- pacevx_pthread_destructor_thread(pthread);
-
- /* joinable or detached */
- if (pthread->detachflag == PTHREAD_CREATE_DETACHED)
- {
- free(pthread);
- }
- else
- {
- key = intLock();
-
- /* pass the value */
- pthread->joinvalue = value_ptr;
-
- switch (pthread->joinstate)
- {
- case JOIN_PENDING:
- pthread->joinstate = JOIN_TERMINATED;
- needgive = 1;
- break;
- case JOIN_NORMAL:
- default:
- pthread->joinstate = JOIN_TERMINATED;
- break;
- }
- intUnlock(key);
-
- /* unblock the calling thread */
- if (needgive)
- semGive(((pace_pthread_t)(pthread->jointhread))->joinSem);
- }
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pacevx_pthread_verify (pace_pthread_t pthread)
-{
- int key;
- pthread_q_entry * entry;
-
- PACE_TRACE("pacevx_pthread_verify");
-
- key = intLock();
-
- /* if queue is empty */
- if (first == NULL)
- {
- intUnlock(key);
- return ERROR;
- }
-
- entry = first; /* get the first one */
-
- while (entry != NULL)
- {
- if (entry->pthread == pthread)
- {
- intUnlock(key);
- return TRUE;
- }
- entry = entry->next;
- }
-
- intUnlock(key);
-
- return FALSE;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-/*
- * The cleanup routine that will be called if the task get deleted.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-void
-pacevx_pthread_run_cleanup (WIND_TCB *pTcb)
-/* pointer to deleted task's WIND_TCB */
-{
- pace_pthread_t pthread;
-
- PACE_TRACE("pacevx_pthread_run_cleanup");
-
- /* free thread tcb only*/
- if (pTcb->_USER_SPARE4 != 0)
- {
- pthread = (pace_pthread_t) pTcb->_USER_SPARE4;
-
- pacevx_pthread_proc_exit(pthread, NULL);
- }
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-/*
- * Add to the pthread queue.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pacevx_pthread_queue_add (pace_pthread_t pthread)
-{
- int key;
- pthread_q_entry * entry;
-
- PACE_TRACE("pacevx_pthread_queue_add");
-
- key = intLock();
-
- if ((entry = pacevx_pthread_queue_get_entry()) != NULL)
- {
- entry->status = TRUE;
- entry->pthread = pthread;
-
- if (first == NULL)
- {
- first = entry;
- current = entry;
- }
- else
- {
- current->next = entry;
- current = entry;
- }
- pthread_count ++;
- intUnlock(key);
- return OK;
- }
-
- intUnlock(key);
- return ERROR;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-/*
- * Remove an entry to the pthread queue.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pacevx_pthread_queue_remove (pace_pthread_t pthread)
-{
- int key;
- pthread_q_entry * entry1;
- pthread_q_entry * entry2;
-
- PACE_TRACE("pacevx_pthread_queue_remove");
-
- key = intLock();
-
- if (first == NULL)
- {
- intUnlock(key);
- return ERROR;
- }
-
- /* if it is the first one, simple */
- if (first->pthread == pthread)
- {
- first->status = FALSE;
- first->pthread = NULL;
-
- entry1 = first->next;
-
- first->next = NULL;
-
- /* if it is the only one */
- if (current == first)
- current = entry1;
-
- first = entry1;
-
- /* Check for the last thread and unregister cleanup function */
- if (first == NULL)
- taskDeleteHookDelete((FUNCPTR)pacevx_pthread_run_cleanup);
-
- intUnlock(key);
- return OK;
- }
-
- /* else */
-
- entry1 = first;
- entry2 = entry1->next;
-
- while (entry2 != NULL)
- {
- if (entry2->pthread == pthread)
- {
- if (current == entry2)
- current = entry1;
-
- entry1->next = entry2->next; /* remove the node */
-
- /* set invalid and put back to the list */
- entry2->status = FALSE;
- entry2->pthread = NULL;
- entry2->next = NULL;
- intUnlock(key);
- return OK;
- }
- entry1 = entry2;
- entry2 = entry2->next;
- }
-
- intUnlock(key);
- return ERROR;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-/*
- * Run the rest of cleanup routines left in the stack.
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-void
-pacevx_pthread_cleanup_popall (pace_pthread_t thread)
-{
- int count;
- int i;
-
- PACE_TRACE("pacevx_pthread_cleanup_popall");
-
- count = thread->rtnCount - 1;
-
- /*
- * We don't currently support any way
- * to add cleanup routines since pace_pthread_cleanup_push and
- * pace_pthread_cleanup_pop are undefined macros for VxWorks.
- */
- for (i = count; i > 0 ; i--)
- {
- thread->rtnCount --;
- (*(thread->cleanupRtn[i].routine))(thread->cleanupRtn[i].args);
- }
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-/*
- * Validate the key to see if the key is already created (valid)
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pacevx_pthread_key_validate (pace_pthread_key_t key)
-{
- int intkey;
-
- PACE_TRACE("pacevx_pthread_key_validate");
-
- intkey = intLock();
-
- if (keyList[key].valid)
- {
- intUnlock(intkey);
- return TRUE;
- }
- else
- {
- intUnlock(intkey);
- return FALSE;
- }
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-
-/*
- * PACE - POSIX Functions
- */
-
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_cond_timedwait (pace_pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex,
- const pace_timespec * abstime)
-{
- /*
- int msec_timeout;
- if (abstime->sec () == 0 && abstime->usec () == 0)
- msec_timeout = 0; * Do a "poll." *
- else
- {
- // Assumes that struct timespec is same size as struct timeval,
- // which assumes that time_t is a long: it currently is.
- struct pace_timespec ts;
-
- pace_clock_gettime (CLOCK_REALTIME, &ts);
-
- // Note that we must convert between absolute time (which is
- // passed as a parameter) and relative time.
- pace_timespec relative_time = (*abstime) - ts;
-
- // Watchout for situations where a context switch has caused the
- // current time to be > the timeout.
- if (relative_time < 0)
- msec_timeout = 0;
- else
- msec_timeout = relative_time.msec ();
- }
- // Inline the call to ACE_OS::sema_wait () because it takes an
- // ACE_Time_Value argument. Avoid the cost of that conversion . . .
- int ticks_per_sec = ::sysClkRateGet ();
- int ticks = msec_timeout * ticks_per_sec / ACE_ONE_SECOND_IN_MSECS;
- result = ::semTake (cv->sema_.sema_, ticks);
- */
-
-
-
-
-
- int timeval = 0;
- int errornumber;
- int returnval = 0;
- STATUS status;
-
- PACE_TRACE("pthread_cond_timedwait");
-
- if (pace_pthread_mutex_unlock(mutex) != OK) return ERROR;
-
- /* convert the abstime to timeval */
- status = semTake(*cond, timeval);
-
- if (status != OK)
- {
- errornumber = errnoGet();
- if (errornumber == S_objLib_OBJ_ID_ERROR)
- returnval = EINVAL;
- else if (errornumber == S_objLib_OBJ_TIMEOUT)
- returnval = ETIMEDOUT;
- else
- returnval = ERROR;
- }
-
- pace_pthread_mutex_lock(mutex);
-
- return returnval;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_cond_wait (pace_pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex)
-{
- STATUS status;
- int errornumber;
- int returnval = 0;
-
- PACE_TRACE("pthread_cond_wait");
-
- if (pace_pthread_mutex_unlock(mutex) != OK)
- return ERROR;
-
- status = semTake(*cond, WAIT_FOREVER);
-
- if(status != OK)
- {
- errornumber = errnoGet();
- if (errornumber == S_objLib_OBJ_ID_ERROR)
- returnval = EINVAL;
- else
- returnval = ERROR;
- }
-
- pace_pthread_mutex_lock(mutex);
-
- return returnval;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_create (pace_pthread_t * thread,
- const pace_pthread_attr_t * attr,
-# if defined (PACE_HAS_CPLUSPLUS)
- pace_create_pf start_routine,
-# else
- void * (*start_routine) (void*),
-# endif
- void * arg)
-{
- pace_pthread_attr_t pattr;
- char * pname;
- int taskid;
- pace_pthread_t pthread;
- WIND_TCB * pTcb;
-
- PACE_TRACE("pthread_create");
-
- if (attr == 0)
- pattr = pthread_attr_default;
- else
- if (*attr == 0)
- pattr = pthread_attr_default;
- else
- pattr = *attr;
-
- if (pattr->name[0] != '\0') /* name is provided */
- pname = pattr->name;
- else
- pname = (char *)0;
-
- taskid = taskSpawn(pname,
- (SCHED_FIFO_HIGH_PRI - pattr->schedule.sched_priority),
- VX_FP_TASK, pattr->stacksize, (FUNCPTR)start_routine,
- (int)arg, 0,0,0,0,0,0,0,0,0);
-
- if (taskid == ERROR)
- return ERROR;
-
- if ((pTcb = taskTcb(taskid)) == NULL)
- {
- taskDelete(taskid);
- return ERROR;
- }
-
- pthread = (pace_pthread_t) malloc(sizeof(struct _PTHREAD_T));
-
- if (pthread == NULL)
- {
- taskDelete(taskid);
- return ERROR;
- }
-
- /* construct pace_pthread_t structure */
-
- bzero((char *)pthread, sizeof(struct _PTHREAD_T));
- pthread->tid = taskid;
- pthread->stateflag = PTHREAD_CANCEL_ENABLE;
- pthread->canceltype = PTHREAD_CANCEL_ASYNCHRONOUS;
- pthread->detachflag = pattr->dstate;
-
- /* initialize the join semaphore also */
- if ((pthread->joinSem = semBCreate(SEM_Q_PRIORITY, SEM_EMPTY)) == NULL)
- {
- free((void *)pthread);
- taskDelete(taskid);
- return ERROR;
- }
-
- /* pass it to the caller */
- *thread = pthread;
-
- /* save to the WIND_TCB for reference afterward */
- pTcb->_USER_SPARE4 = (int) pthread;
-
- if (registered_cleanup_init == 0)
- {
- taskDeleteHookAdd((FUNCPTR)pacevx_pthread_run_cleanup);
- registered_cleanup_init = 1;
- }
-
- pacevx_pthread_queue_add(pthread);
-
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_detach (pace_pthread_t thread)
-{
- int key;
- int needfree;
- needfree = 0;
-
- PACE_TRACE("pthread_detach");
-
- if (!pacevx_pthread_verify(thread))
- return EINVAL;
-
- key = intLock();
-
- switch (thread->joinstate)
- {
- /* task is joined, or detached, but still running, do nothing */
- case JOIN_PENDING:
- case JOIN_DETATCHED:
- intUnlock(key);
- return OK;
- break;
- case JOIN_NORMAL: /* task is running */
- thread->joinstate = JOIN_DETATCHED;
- break;
- case JOIN_TERMINATED:
- needfree = 1;
- break;
- default:
- break;
- }
-
- intUnlock(key);
-
- if (needfree)
- {
- pacevx_pthread_queue_remove(thread);
- free(thread);
- }
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_join (pace_pthread_t thread, void ** value_ptr)
-{
- /*
- * The pthread_join() function suspends execution of the calling
- * thread until the target thread terminates, unless the target
- * thread has already terminated.
- * The terminating thread can pass value to the caller by
- * pthread_exit() and the calling thread gets it from "value_ptr"
- * The application must verify the "value_ptr" value before using it.
- */
- pace_pthread_t pthread;
- int needfree;
- int key;
-
- PACE_TRACE("pthread_join");
-
- if (!pacevx_pthread_verify(thread))
- return ERROR;
-
- if (thread->detachflag != PTHREAD_CREATE_JOINABLE)
- return ERROR;
-
- if ((pthread = pace_pthread_self()) == NULL)
- return ERROR;
-
- needfree = 0;
-
- key = intLock();
- switch (thread->joinstate)
- {
- case JOIN_NORMAL:
- thread->jointhread = pthread;
- thread->joinstate = JOIN_PENDING;
- break;
- case JOIN_TERMINATED:
- needfree = 1;
- break;
- case JOIN_PENDING:
- default:
- intUnlock(key);
- return ERROR;
- }
- intUnlock(key);
-
- if (needfree)
- {
- *value_ptr = thread->joinvalue;
- pacevx_pthread_queue_remove(thread);
- free(thread);
- return OK;
- }
-
- /* if we are here, thread is not terminated yet */
- semTake(pthread->joinSem, WAIT_FOREVER);
-
- /* cleanup */
- *value_ptr = thread->joinvalue;
- pacevx_pthread_queue_remove(thread);
- free(thread);
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_key_create (pace_pthread_key_t * key,
-# if defined (PACE_HAS_CPLUSPLUS)
- pace_keycreate_pf destructor)
-# else
- void (*destructor)(void*))
-# endif
-{
- /*
- * Create a thread-specific data key. Also initialize the
- * data structure if it is called first time.
- */
- int i;
- int intkey;
-
- PACE_TRACE("pthread_key_create");
-
- /* do the initialization if it is the first time */
- if (initialized == 0)
- {
- initialized = 1;
-
- /* initialize the data structure */
- for (i = 0; i < PTHREAD_KEYS_MAX; i++)
- {
- keyList[i].index = i;
- keyList[i].valid = FALSE;
- keyList[i].destructor = NULL;
- }
- }
-
- /* find first available position */
- intkey = intLock();
- for (i = 0; i < PTHREAD_KEYS_MAX; i++)
- {
- if (keyList[i].valid == FALSE)
- {
- *key = (pace_pthread_key_t)keyList[i].index;
- keyList[i].valid = TRUE;
- keyList[i].destructor = destructor;
- intUnlock(intkey);
-
- return OK;
- }
- }
-
- intUnlock(intkey);
- return ERROR;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_key_delete (pace_pthread_key_t key)
-{
- int intkey;
-
- PACE_TRACE("pthread_key_delete");
-
- if ((key < 0) || (key >= PTHREAD_KEYS_MAX))
- return ERROR;
-
- intkey = intLock();
-
- keyList[key].valid = FALSE;
- keyList[key].destructor = NULL;
-
- intUnlock(intkey);
-
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_once (pace_pthread_once_t * once_control,
-# if defined (PACE_HAS_CPLUSPLUS)
- pace_once_pf init_routine)
-# else
- void (*init_routine) (void))
-# endif
-{
- /*
- * Once function allows the function to be executed exact only once
- * Subsequent calls of pthread_once() with the same once_control will
- * not call the void_routine().
- */
- int i;
- int key;
- pace_pthread_t pthread;
-
- PACE_TRACE("pthread_once");
-
- if ((pthread = pace_pthread_self()) == NULL)
- return ERROR;
-
- /* make it atomic */
- key = intLock();
-
- for (i = 0; i < pthread->onceCount; i++)
- {
- if (*once_control == pthread->onceList[i].once_ctl)
- {
- /* do nothing, already called */
- intUnlock(key);
- return OK;
- }
- }
-
- /* if we are here, no match is found */
- pthread->onceList[pthread->onceCount].once_ctl = *once_control;
- pthread->onceCount++;
- intUnlock(key);
-
- /* run the init routine */
- (*init_routine)();
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_init (pace_pthread_attr_t * attr)
-{
- PACE_TRACE("pthread_attr_init");
-
- /*
- * Attempt to allocate memory for the attributes object.
- */
-
- if ((*attr = (pace_pthread_attr_t) malloc(sizeof(struct _PTHREAD_ATTR)))
- == NULL)
- {
- return ERROR;
- }
-
- /*
- * Set the default attributes.
- */
-
- memcpy ((void *)(*attr), (void *)pthread_attr_default,
- sizeof(struct _PTHREAD_ATTR));
-
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_setdetachstate (pace_pthread_attr_t * attr,
- int detachstate)
-{
- PACE_TRACE("pthread_attr_setdetachstate");
-
- if ((detachstate != PTHREAD_CREATE_DETACHED) ||
- (detachstate != PTHREAD_CREATE_JOINABLE))
- {
- (*attr)->dstate = PTHREAD_CREATE_DETACHED;
- return ERROR;
- }
-
- (*attr)->dstate = detachstate;
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_setschedparam (pace_pthread_attr_t * attr,
- const pace_sched_param * param)
-{
- PACE_TRACE("pthread_attr_setschedparam");
-
- /* range check */
- if (param->sched_priority > SCHED_RR_HIGH_PRI ||
- param->sched_priority < SCHED_RR_LOW_PRI )
- {
- return ERROR;
- }
-
- (*attr)->schedule.sched_priority = param->sched_priority;
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_cancel (pace_pthread_t thread)
-{
- PACE_TRACE("pthread_cancel");
-
- /*
- * In VxWorks, to cancel a thread is to delete a task.
- */
- if (!pacevx_pthread_verify(thread))
- return ESRCH;
-
- if (taskIdVerify(thread->tid) == ERROR) /* already exit, never happen */
- return ERROR;
-
- if (thread->stateflag == PTHREAD_CANCEL_DISABLE)
- return ERROR;
- else
- return (taskDelete(thread->tid));
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_getschedparam (pace_pthread_t thread,
- int * policy,
- pace_sched_param * param)
-{
- PACE_TRACE("pthread_getschedparam");
-
- if (thread == 0)
- return ERROR;
-
- *policy = sched_getscheduler(thread->tid);
-
- if (sched_getparam(thread->tid, param) == OK)
- {
- /* convert VxWorks priority to POSIX priority */
- param->sched_priority = SCHED_FIFO_HIGH_PRI - param->sched_priority;
- return OK;
- }
-
- return ERROR;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-void *
-pthread_getspecific (pace_pthread_key_t key)
-{
- pace_pthread_t pthread;
-
- PACE_TRACE("pthread_getspecific");
-
- if (!pacevx_pthread_key_validate(key))
- return NULL;
-
- if ((pthread = pace_pthread_self()) != NULL)
- {
- return pthread->keyvaluelist[key];
- }
-
- return NULL;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_mutex_init (pace_pthread_mutex_t * mutex,
- const pace_pthread_mutexattr_t * attr)
-{
- /*
- * Initialises the mutex referenced by mutex with attributes
- * specified by attr. If attr is NULL, the default mutex
- * attributes are used.
- */
-
- /* Make SEM_Q_FIFO the default since this is what ACE does (and
- * ACE works) plus this is supposedly the default for VxWorks.
- */
- int options = SEM_Q_FIFO;
-
- PACE_TRACE("pthread_mutex_init");
-
- if (attr != NULL)
- {
- switch ((*attr)->protocol)
- {
- case PTHREAD_PRIO_INHERIT:
- /* POSIX's PTHREAD_PRIO_INHERIT maps to VxWorks' SEM_INVERSION_SAFE.
- * However, this doesn't seem to be supported (at least on 5.3.1).
- * Return an error.
- */
- return ERROR;
- break;
-
- case PTHREAD_PRIO_PROTECT:
- /* VxWorks does not support this functionality.
- * Return an error.
- */
- return ERROR;
- break;
-
- case PTHREAD_PRIO_NONE:
- options = SEM_Q_FIFO;
- break;
-
- default:
- perror("Invalid POSIX protocol specified");
- return ERROR;
- break;
- }
- }
-
- *mutex = semMCreate(options);
- if (*mutex == NULL) {
- return ERROR;
- }
-
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_mutex_lock (pace_pthread_mutex_t * mutex)
-{
- STATUS status;
- int errornumber;
-
- PACE_TRACE("pthread_mutex_lock");
-
- status = semTake(*mutex, WAIT_FOREVER);
- if (status == OK)
- {
- return OK;
- }
- else
- {
- errornumber = errnoGet();
- if (errornumber == S_objLib_OBJ_ID_ERROR)
- return EINVAL;
-
- return ERROR;
- }
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_mutex_trylock (pace_pthread_mutex_t * mutex)
-{
- STATUS status;
- int errornumber;
-
- PACE_TRACE("pthread_mutex_trylock");
-
- status = semTake(*mutex, NO_WAIT);
- if (status == OK)
- return OK;
- else
- {
- errornumber = errnoGet();
- if (errornumber == S_objLib_OBJ_ID_ERROR)
- return EINVAL;
- if (errornumber == S_objLib_OBJ_UNAVAILABLE)
- return EBUSY;
-
- return ERROR;
- }
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_mutex_unlock (pace_pthread_mutex_t * mutex)
-{
- STATUS status;
- int errornumber;
-
- PACE_TRACE("pthread_mutex_unlock");
-
- status = semGive(*mutex);
- if (status == OK)
- return OK;
- else
- {
- errornumber = errnoGet();
- if (errornumber == S_semLib_INVALID_OPERATION)
- return EPERM;
-
- return ERROR;
- }
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_mutexattr_setprotocol (pace_pthread_mutexattr_t * attr,
- int protocol)
-{
- PACE_TRACE("pthread_mutexattr_setprotocol");
-
-/*
- * Does not support PTHREAD_PRIO_PROTECT for VxWorks
- */
- if ((protocol == PTHREAD_PRIO_NONE) ||
- (protocol == PTHREAD_PRIO_INHERIT ))
- {
- (*attr)->protocol = protocol;
- return OK;
- }
-
- return ERROR;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_mutexattr_init (pace_pthread_mutexattr_t * attr)
-{
- /*
- * Initializes a mutex attributes object attr with the
- * default value for all of the attributes
- */
- pace_pthread_mutexattr_t pattr;
-
- PACE_TRACE("pthread_mutexattr_init");
-
- pattr = (pace_pthread_mutexattr_t) malloc(sizeof(struct _PTHREAD_MUX_ATTR));
- if (pattr == NULL)
- return ERROR;
-
- /* POSIX's PTHREAD_PRIO_INHERIT maps to VxWorks' SEM_INVERSION_SAFE.
- * However, this doesn't seem to be supported (at least on 5.3.1).
- * Set PTHREAD_PRIO_NONE as the default since the only other choice
- * is PTHREAD_PRIO_PROTECT which VxWorks doesn't support.
- pattr->protocol = PTHREAD_PRIO_INHERIT;
- */
- pattr->protocol = PTHREAD_PRIO_NONE;
- pattr->shared = PTHREAD_PROCESS_SHARED;
- pattr->type = PTHREAD_MUTEX_DEFAULT;
-
- *attr = pattr;
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_mutexattr_setpshared (pace_pthread_mutexattr_t * attr,
- int pshared)
-{
- PACE_TRACE("pthread_mutexattr_setpshared");
-
- /*
- * Only supports PTHREAD_PROCESS_SHARED
- */
- if (attr == 0) return EINVAL;
-
- if (pshared != PTHREAD_PROCESS_SHARED)
- return ERROR;
- else
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_setcancelstate (int state, int * oldstate)
-{
- int key;
- pace_pthread_t pthread;
-
- PACE_TRACE("pthread_setcancelstate");
-
- if ((state != PTHREAD_CANCEL_ENABLE) &&
- (state != PTHREAD_CANCEL_DISABLE))
- {
- return ERROR;
- }
-
- if ((pthread = pace_pthread_self()) == NULL)
- return ERROR;
-
- key = intLock();
- *oldstate = pthread->stateflag;
- pthread->stateflag = state;
- intUnlock(key);
-
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_setcanceltype (int type, int * oldtype)
-{
- /*
- * Only asychronouse type is supported
- */
- pace_pthread_t pthread;
-
- PACE_TRACE("pthread_setcanceltype");
-
- if (type != PTHREAD_CANCEL_ASYNCHRONOUS)
- return ERROR;
-
- if ((pthread = pace_pthread_self()) == NULL)
- return ERROR;
-
- *oldtype = pthread->canceltype;
-
- return OK;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_setschedparam (pace_pthread_t thread,
- int policy,
- const pace_sched_param * param)
-{
- /*
- * Only priority can be changed.
- */
- struct sched_param sparam;
-
- PACE_TRACE("pthread_setschedparam");
-
- if (thread == 0)
- return ERROR;
-
- if (policy != sched_getscheduler(thread->tid))
- return ERROR;
-
- /* convert POSIX priority to VxWorks priority */
- sparam.sched_priority = SCHED_FIFO_HIGH_PRI - param->sched_priority;
-
- return (sched_setparam(thread->tid, &sparam));
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_setspecific (pace_pthread_key_t key, const void * value)
-{
- pace_pthread_t pthread;
-
- PACE_TRACE("pthread_setspecific");
-
- if (!pacevx_pthread_key_validate(key))
- return ERROR;
-
- if ((pthread = pace_pthread_self()) != NULL)
- {
- pthread->keyvaluelist[key] = PACE_NONCONST_ARG_CAST(void *) value;
- return OK;
- }
-
- return ERROR;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_sigmask (int how,
- const sigset_t * set,
- sigset_t * oset)
-{
- PACE_TRACE("pthread_sigmask");
-
- switch (how)
- {
- case SIG_BLOCK:
- case SIG_UNBLOCK:
- {
- /* get the old mask */
- *oset = sigsetmask (*set);
- /* create a new mask: the following assumes that sigset_t is 4 bytes,
- * which it is on VxWorks 5.2, so bit operations are done simply . . .
- */
- sigsetmask (how == SIG_BLOCK ? (*oset |= *set) : (*oset &= ~*set));
- break;
- }
- case SIG_SETMASK:
- *oset = sigsetmask (*set);
- break;
- default:
- return -1;
- }
-
- return 0;
-}
-#endif /* PACE_HAS_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-pace_pthread_t
-pthread_self ()
-{
- WIND_TCB *pTcb;
-
- PACE_TRACE("pthread_self");
-
- if ((pTcb = taskTcb(taskIdSelf())) == NULL)
- return (pace_pthread_t)NULL;
-
- return (pace_pthread_t)(pTcb->_USER_SPARE4);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/vxworks/pthread.h b/PACE/pace/vxworks/pthread.h
deleted file mode 100644
index 260fe7a553d..00000000000
--- a/PACE/pace/vxworks/pthread.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/pthread.h
- *
- * = AUTHOR
- * Joe Hoffert. The *VAST* majority of the pthread code for VxWorks
- * has been supplied by Hughes Network Systems via Braeton Taylor.
- *
- * ============================================================================ */
-
-#ifndef PACE_PTHREAD_H_VXWORKS
-#define PACE_PTHREAD_H_VXWORKS
-
-#include <taskLib.h>
-#include <taskHookLib.h>
-#include <intLib.h>
-#include <errnoLib.h>
-#include "pace/sys/types.h"
-#include "pace/signal.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_PTHREAD_CANCELED PTHREAD_CANCELED
-#define PACE_PTHREAD_CANCEL_AYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS
-#define PACE_PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED
-#define PACE_PTHREAD_CACEL_DISABLE PTHREAD_CANCEL_DISABLE
-#define PACE_PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE
-#define PACE_PTHREAD_COND_INITIALIZER PTHREAD_COND_INITIALIZER
-#define PACE_PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED
-#define PACE_PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE
-#define PACE_PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED
-#define PACE_PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED
-#define PACE_PTHREAD_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
-#define PACE_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
-#define PACE_PTHREAD_PRIO_INHERIT PTHREAD_PRIO_INHERIT
-#define PACE_PTHREAD_PRIO_NONE PTHREAD_PRIO_NONE
-#define PACE_PTHREAD_PRIO_PROTECT PTHREAD_PRIO_PROTECT
-#define PACE_PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
-#define PACE_PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED
-#define PACE_PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS
-#define PACE_PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM
-
-#define PTHREAD_MUTEX_INITIALIZER 0
-#define PTHREAD_COND_INITIALIZER 0
-
-#ifndef PACE_SCHED_PARAM
-#define PACE_SCHED_PARAM
- typedef struct sched_param pace_sched_param;
-#endif /* PACE_SCHED_PARAM */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-# ifndef PACE_ATFORK_PF
-# define PACE_ATFORK_PF
- typedef void (*pace_atfork_pf) (void);
-# endif /* PACE_ATFORK_PF */
-
-# ifndef PACE_KEYCREATE_PF
-# define PACE_KEYCREATE_PF
- typedef void (*pace_keycreate_pf) (void*);
-# endif /* PACE_KEYCREATE_PF */
-
-# ifndef PACE_ONCE_PF
-# define PACE_ONCE_PF
- typedef void (*pace_once_pf) (void);
-# endif /* PACE_ONCE_PF */
-
-# ifndef PACE_CREATE_PF
-# define PACE_CREATE_PF
- typedef void* (*pace_create_pf) (void*);
-# endif /* PACE_CREATE_PF */
-
-#endif /* PACE_HAS_CPLUPLUS */
-
- /*
- * VxWorks helper functions
- */
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- extern pace_pthread_attr_t pthread_attr_default;
-
- STATUS pacevx_vxworks_init();
- void pacevx_pthread_proc_exit(pace_pthread_t pthread, void *value_ptr);
- int pacevx_pthread_verify(pace_pthread_t pthread);
- void pacevx_pthread_run_cleanup (WIND_TCB *pTcb);
- int pacevx_pthread_queue_add(pace_pthread_t pthread);
- int pacevx_pthread_queue_remove(pace_pthread_t pthread);
- void pacevx_pthread_cleanup_popall(pace_pthread_t thread);
- void pacevx_pthread_destructor_thread(pace_pthread_t pthread);
- int pacevx_pthread_key_validate(pace_pthread_key_t key);
- void pacevx_pthread_destructor_key(pace_pthread_key_t key, void * arg);
-
- int pthread_cond_timedwait (pace_pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex,
- const pace_timespec * abstime);
- int pthread_cond_wait (pace_pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex);
-# if defined (PACE_HAS_CPLUSPLUS)
- int pthread_create (pace_pthread_t * thread,
- const pace_pthread_attr_t * attr,
- pace_create_pf start_routine,
- void * arg);
- int pthread_key_create (pace_pthread_key_t * key,
- pace_keycreate_pf destructor);
- int pthread_once (pace_pthread_once_t * once_control,
- pace_once_pf init_routine);
-# else /* ! PACE_HAS_CPLUSPLUS */
- int pthread_create (pace_pthread_t * thread,
- const pace_pthread_attr_t * attr,
- void * (*start_routine) (void*),
- void * arg);
- int pthread_key_create (pace_pthread_key_t * key,
- void (*destructor)(void*));
- int pthread_once (pace_pthread_once_t * once_control,
- void (*init_routine) (void));
-# endif /*! PACE_HAS_CPLUSPLUS */
- int pthread_detach (pace_pthread_t thread);
- int pthread_join (pace_pthread_t thread, void ** value_ptr);
- int pthread_key_delete (pace_pthread_key_t key);
- int pthread_attr_init (pace_pthread_attr_t * attr);
- int pthread_attr_setdetachstate (pace_pthread_attr_t * attr,
- int detachstate);
- int pthread_attr_setschedparam (pace_pthread_attr_t * attr,
- const pace_sched_param * param);
- int pthread_cancel (pace_pthread_t thread);
- int pthread_getschedparam (pace_pthread_t thread,
- int * policy,
- pace_sched_param * param);
- void * pthread_getspecific (pace_pthread_key_t key);
- int pthread_mutex_init (pace_pthread_mutex_t * mutex,
- const pace_pthread_mutexattr_t * attr);
- int pthread_mutex_lock (pace_pthread_mutex_t * mutex);
- int pthread_mutex_trylock (pace_pthread_mutex_t * mutex);
- int pthread_mutex_unlock (pace_pthread_mutex_t * mutex);
- int pthread_mutexattr_setprotocol (pace_pthread_mutexattr_t * attr,
- int protocol);
- int pthread_mutexattr_init (pace_pthread_mutexattr_t * attr);
- int pthread_mutexattr_setpshared (pace_pthread_mutexattr_t * attr,
- int pshared);
- int pthread_setcancelstate (int state, int * oldstate);
- int pthread_setcanceltype (int type, int * oldtype);
- int pthread_setschedparam (pace_pthread_t thread,
- int policy,
- const pace_sched_param * param);
- int pthread_setspecific (pace_pthread_key_t key,
- const void * value);
- int pthread_sigmask (int how,
- const sigset_t * set,
- sigset_t * oset);
- pace_pthread_t pthread_self ();
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_PTHREAD_H_VXWORKS */
diff --git a/PACE/pace/vxworks/pthread.inl b/PACE/pace/vxworks/pthread.inl
deleted file mode 100644
index 02f694072bd..00000000000
--- a/PACE/pace/vxworks/pthread.inl
+++ /dev/null
@@ -1,935 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/pthread.inl
- *
- * = AUTHOR
- * Joe Hoffert. The *VAST* majority of the pthread code for VxWorks
- * has been supplied by Hughes Network Systems via Braeton Taylor.
- *
- *
- * ============================================================================= */
-
-#include "pace/unistd.h"
-
-#include "pace/stdio.h"
-
-/*
- * PACE - POSIX Functions
- */
-
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_atfork (
-# if defined (PACE_HAS_CPLUSPLUS)
- pace_atfork_pf prepare,
- pace_atfork_pf parent,
- pace_atfork_pf child
-# else /* ! PACE_HAS_CPLUSPLUS */
- void (*prepare) (),
- void (*parent) (),
- void (*child) ()
-# endif /* PACE_HAS_CPLUSPLUS */
- )
-{
- PACE_TRACE("pace_pthread_atfork");
- /*
- * In VxWorks, there is only one process.
- */
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_destroy (pace_pthread_attr_t * attr)
-{
- PACE_TRACE("pace_pthread_attr_destroy");
- /*
- * Free memory allocated to the attributes object.
- */
- if ((*attr) == 0)
- return ERROR;
-
- free ((char *) *attr);
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getdetachstate (const pace_pthread_attr_t * attr,
- int * detachstate)
-{
- PACE_TRACE("pace_pthread_attr_getdetachstate");
-
- *detachstate = (*attr)->dstate;
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getinheritsched (const pace_pthread_attr_t * attr,
- int * inheritsched)
-{
- PACE_TRACE("pace_pthread_attr_getinheritsched");
-
- /*
- * Get the priority inheritence of the thread attribute structure.
- * Only PTHREAD_EXPLICIT_SCHED is returned.
- */
- *inheritsched = PTHREAD_EXPLICIT_SCHED;
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getschedparam (const pace_pthread_attr_t * attr,
- pace_sched_param * param)
-{
- PACE_TRACE("pace_pthread_attr_getschedparam");
-
- param->sched_priority = (*attr)->schedule.sched_priority;
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getschedpolicy (const pace_pthread_attr_t * attr,
- int * policy)
-{
- PACE_TRACE("pace_pthread_attr_getschedpolicy");
-
- /*
- * VxWorks only supports SCHED_FIFO.
- */
-
- *policy = SCHED_FIFO;
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getscope (const pace_pthread_attr_t * attr,
- int * contentionscope)
-{
- PACE_TRACE("pace_pthread_attr_getscope");
-
- /*
- * Since all VxWorks tasks are system wide scope,
- * no support for the scope except for PTHREAD_SCOPE_SYSTEM
- */
-
- *contentionscope = PTHREAD_SCOPE_SYSTEM;
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getstackaddr (const pace_pthread_attr_t * attr,
- void ** stackaddr)
-{
- PACE_TRACE("pace_pthread_attr_getstackaddr");
-
- /*
- * VxWorks has no support for stack address getting
- */
-
- return ERROR;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getstacksize (const pace_pthread_attr_t * attr,
- size_t * stacksize)
-{
- PACE_TRACE("pace_pthread_attr_getstacksize");
-
- if (*attr == 0)
- return ERROR;
-
- *stacksize = (*attr)->stacksize;
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_init (pace_pthread_attr_t * attr)
-{
- PACE_TRACE("pace_pthread_attr_init");
-
- return pthread_attr_init(attr);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setdetachstate (pace_pthread_attr_t * attr,
- int detachstate)
-{
- PACE_TRACE("pace_pthread_attr_setdetachstate");
-
- return pthread_attr_setdetachstate (attr, detachstate);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setinheritsched (pace_pthread_attr_t * attr,
- int inheritsched)
-{
- PACE_TRACE("pace_pthread_attr_setinheritsched");
-
- /*
- * For VxWorks, no inheritance of priority between the spawning task
- * and the spawned task. Only PTHREAD_EXPLICIT_SCHED is supported.
- */
- if (inheritsched == PTHREAD_EXPLICIT_SCHED)
- {
- return OK;
- }
-
- return ERROR;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setschedparam (pace_pthread_attr_t * attr,
- const pace_sched_param * param)
-{
- PACE_TRACE("pace_pthread_attr_setschedparam");
-
- return pthread_attr_setschedparam (attr, param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setschedpolicy (pace_pthread_attr_t * attr,
- int policy)
-{
- PACE_TRACE("pace_pthread_attr_setschedpolicy");
-
- /*
- * In VxWorks, the schedule policy is set in system scope,
- * the whole system is running with one single scheduler, and
- * is always pre-emptive priority based. The system wide
- * scheduler can only be changed by kernelTimeSlice()
- *
- * To maintain the RTOS characteristics, only SCHED_FIFO is
- * supported.
- */
- if (policy != SCHED_FIFO)
- return ERROR;
- else
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setscope (pace_pthread_attr_t * attr,
- int contentionscope)
-{
- PACE_TRACE("pace_pthread_attr_setscope");
-
- /*
- * Since all VxWorks tasks are system wide scope,
- * no support for the scope except for PTHREAD_SCOPE_SYSTEM
- */
- if (contentionscope != PTHREAD_SCOPE_SYSTEM)
- return ERROR;
- else
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setstackaddr (pace_pthread_attr_t * attr,
- void * stackaddr)
-{
- PACE_TRACE("pace_pthread_attr_setstackaddr");
-
- /*
- * VxWorks does not support stack address setting.
- */
- return ERROR;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setstacksize (pace_pthread_attr_t * attr,
- size_t stacksize)
-{
- PACE_TRACE("pace_pthread_attr_setstacksize");
-
- /*
- * Default size will be assigned if the stacksize is 0
- */
- if (*attr == 0) return ERROR;
-
- if (stacksize != 0)
- (*attr)->stacksize = stacksize;
- else
- (*attr)->stacksize = PTHREAD_DEFAULT_STACK_SIZE;
-
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cancel (pace_pthread_t thread)
-{
- PACE_TRACE("pace_pthread_cancel");
-
- return pthread_cancel (thread);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_broadcast (pace_pthread_cond_t * cond)
-{
- PACE_TRACE("pace_pthread_cond_broadcast");
-
- /*
- * This call unblocks all the threads that are blocked
- * on the specified condition variable cond.
- */
- return semFlush(*cond);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_destroy (pace_pthread_cond_t * cond)
-{
- PACE_TRACE("pace_pthread_cond_destroy");
-
- if (*cond != NULL)
- return semDelete(*cond);
-
- return EINVAL;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_init (pace_pthread_cond_t * cond,
- const pace_pthread_condattr_t * attr)
-{
- PACE_TRACE("pace_pthread_cond_init");
-
- *cond = semBCreate(SEM_Q_PRIORITY, SEM_FULL);
- if (*cond == NULL)
- return ERROR;
-
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_signal (pace_pthread_cond_t * cond)
-{
- PACE_TRACE("pace_pthread_cond_signal");
-
- return semGive(*cond);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_timedwait (pace_pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex,
- const pace_timespec * abstime)
-{
- PACE_TRACE("pace_pthread_cond_timedwait");
-
- return pthread_cond_timedwait(cond,
- mutex,
- abstime);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_wait (pace_pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex)
-{
- PACE_TRACE("pace_pthread_cond_wait");
-
- return pthread_cond_wait(cond,
- mutex);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_destroy (pace_pthread_condattr_t * attr)
-{
- PACE_TRACE("pace_pthread_condattr_destroy");
-
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_getpshared (const pace_pthread_condattr_t * attr,
- int * pshared)
-{
- PACE_TRACE("pace_pthread_condattr_getpshared");
-
- /*
- * All the resources in present VxWorks are shared system wide.
- */
- *pshared = PTHREAD_PROCESS_SHARED;
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_init (pace_pthread_condattr_t * attr)
-{
- PACE_TRACE("pace_pthread_condattr_init");
-
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_setpshared (pace_pthread_condattr_t * attr,
- int pshared)
-{
- PACE_TRACE("pace_pthread_condattr_setpshared");
-
- /*
- * All the resources in present VxWorks are shared system wide.
- */
- if (pshared != PTHREAD_PROCESS_SHARED)
- return ERROR;
-
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_create (pace_pthread_t * thread,
- const pace_pthread_attr_t * attr,
- void * (*start_routine) (void*),
- void * arg)
-{
- PACE_TRACE("pace_pthread_create");
-
- return pthread_create (thread,
- attr,
- start_routine,
- arg);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_detach (pace_pthread_t thread)
-{
- PACE_TRACE("pace_pthread_detach");
-
- return pthread_detach (thread);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_equal (pace_pthread_t t1, pace_pthread_t t2)
-{
- PACE_TRACE("pace_pthread_equal");
-
- if (pacevx_pthread_verify(t1) && pacevx_pthread_verify(t2))
- {
- if (t1->tid != t2->tid)
- return 0;
- }
-
- return 1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void
-pace_pthread_exit (void * value_ptr)
-{
- /*
- * Normal thread exit. All the cleanup routines will be popped, if any.
- * If the thread is detached, free the storage; otherwise wait for join.
- */
- pace_pthread_t pthread;
-
- PACE_TRACE("pace_pthread_exit");
-
- if ((pthread = pace_pthread_self()) != NULL)
- {
- pacevx_pthread_proc_exit(pthread, value_ptr);
-
- exit(0);
- }
-
- exit(-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_getschedparam (pace_pthread_t thread,
- int * policy,
- pace_sched_param * param)
-{
- PACE_TRACE("pace_pthread_getschedparam");
-
- return pthread_getschedparam (thread,
- policy,
- param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_pthread_getspecific (pace_pthread_key_t key)
-{
- PACE_TRACE("pace_pthread_getspecific");
-
- return pthread_getspecific (key);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_join (pace_pthread_t thread, void ** value_ptr)
-{
- PACE_TRACE("pace_pthread_join");
-
- return pthread_join (thread,
- value_ptr);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_key_create (pace_pthread_key_t * key,
- void (*destructor)(void*))
-{
- PACE_TRACE("pace_pthread_key_create");
-
- return pthread_key_create (key,
- destructor);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_key_delete (pace_pthread_key_t key)
-{
- PACE_TRACE("pace_pthread_key_delete");
-
- return pthread_key_delete (key);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_kill (pace_pthread_t thread, int sig)
-{
- PACE_TRACE("pace_pthread_kill");
-
- if (pacevx_pthread_verify(thread))
- return kill(thread->tid, sig);
- else
- return EINVAL;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_destroy (pace_pthread_mutex_t * mutex)
-{
- PACE_TRACE("pace_pthread_mutex_destroy");
-
- if (*mutex != NULL)
- return semDelete(*mutex);
-
- return EINVAL;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_getprioceiling (pace_pthread_mutex_t * mutex,
- int * prioceiling)
-{
- PACE_TRACE("pace_pthread_mutex_getprioceiling");
-
- /*
- * Mutex priority is not supported in VxWorks;
- * it depends on the thread using it and has the same priority
- * ceiling as this thread (SCHED_RR_HIGH_PRI).
- */
- *prioceiling = SCHED_RR_HIGH_PRI;
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_init (pace_pthread_mutex_t * mutex,
- const pace_pthread_mutexattr_t * attr)
-{
- PACE_TRACE("pace_pthread_mutex_init");
-
- return pthread_mutex_init (mutex,
- attr);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_lock (pace_pthread_mutex_t * mutex)
-{
- PACE_TRACE("pace_pthread_mutex_lock");
-
- return pthread_mutex_lock (mutex);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_setprioceiling (pace_pthread_mutex_t * mutex,
- int prioceiling,
- int * old_ceiling)
-{
- PACE_TRACE("pace_pthread_mutex_setprioceiling");
-
- /*
- * Mutex priority is not supported in VxWorks;
- * it depends on the thread using it and has the same priority
- * ceiling as this thread (SCHED_RR_HIGH_PRI).
- */
- *old_ceiling = SCHED_RR_HIGH_PRI;
-
- if (prioceiling != SCHED_RR_HIGH_PRI)
- return ERROR;
-
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_trylock (pace_pthread_mutex_t * mutex)
-{
- PACE_TRACE("pace_pthread_mutex_trylock");
-
- return pthread_mutex_trylock (mutex);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_unlock (pace_pthread_mutex_t * mutex)
-{
- PACE_TRACE("pace_pthread_mutex_unlock");
-
- return pthread_mutex_unlock (mutex);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_destroy (pace_pthread_mutexattr_t * attr)
-{
- PACE_TRACE("pace_pthread_mutexattr_destroy");
-
- free(*attr);
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_getprioceiling (pace_pthread_mutexattr_t * attr,
- int * prioceiling)
-{
- PACE_TRACE("pace_pthread_mutexattr_getprioceiling");
-
- /*
- * Mutex priority is not supported in VxWorks,
- * it depends the thread using it and has the same priority
- * ceiling as this thread (SCHED_RR_HIGH_PRI).
- */
- *prioceiling = SCHED_RR_HIGH_PRI;
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_getprotocol (const pace_pthread_mutexattr_t * attr,
- int * protocol)
-{
- PACE_TRACE("pace_pthread_mutexattr_getprotocol");
-
-/*
- * Does not support PTHREAD_PRIO_PROTECT for VxWorks
- */
- if (attr == 0)
- return EINVAL;
-
- *protocol = (*attr)->protocol;
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_setprioceiling (pace_pthread_mutexattr_t * attr,
- int prioceiling)
-{
- PACE_TRACE("pace_pthread_mutexattr_setprioceiling");
-
- /*
- * Mutex priority is not supported in VxWorks;
- * it depends on the thread using it and has the same priority
- * ceiling as this thread (SCHED_RR_HIGH_PRI).
- */
- if (prioceiling == SCHED_RR_HIGH_PRI)
- return OK;
- else
- return ERROR;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_setprotocol (pace_pthread_mutexattr_t * attr,
- int protocol)
-{
- PACE_TRACE("pace_pthread_mutexattr_setprotocol");
-
- return pthread_mutexattr_setprotocol (attr,
- protocol);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_getpshared (const pace_pthread_mutexattr_t * attr,
- int * pshared)
-{
- PACE_TRACE("pace_pthread_mutexattr_getpshared");
-
- /*
- * Only supports PTHREAD_PROCESS_SHARED
- */
- *pshared = PTHREAD_PROCESS_SHARED;
- return OK;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_init (pace_pthread_mutexattr_t * attr)
-{
- PACE_TRACE("pace_pthread_mutexattr_init");
-
- return pthread_mutexattr_init (attr);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_setpshared (pace_pthread_mutexattr_t * attr,
- int pshared)
-{
- PACE_TRACE("pace_pthread_mutexattr_setpshared");
-
- return pthread_mutexattr_setpshared (attr,
- pshared);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_once (pace_pthread_once_t * once_control,
- void (*void_routine) (void))
-{
- PACE_TRACE("pace_pthread_once");
-
- return pthread_once (once_control,
- void_routine);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_pthread_t
-pace_pthread_self ()
-{
- PACE_TRACE("pace_pthread_self");
-
- return pthread_self();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setcancelstate (int state,
- int * oldstate)
-{
- PACE_TRACE("pace_pthread_setcancelstate");
-
- return pthread_setcancelstate (state,
- oldstate);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setcanceltype (int type,
- int * oldtype)
-{
- PACE_TRACE("pace_pthread_setcanceltype");
-
- return pthread_setcanceltype (type,
- oldtype);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setschedparam (pace_pthread_t thread,
- int policy,
- const pace_sched_param * param)
-{
- PACE_TRACE("pace_pthread_setschedparam");
-
- return pthread_setschedparam (thread,
- policy,
- param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setspecific (pace_pthread_key_t key,
- const void * value)
-{
- PACE_TRACE("pace_pthread_setspecific");
-
- return pthread_setspecific (key,
- value);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_sigmask (int how,
- const pace_sigset_t * set,
- pace_sigset_t * oset)
-{
- PACE_TRACE("pace_pthread_sigmask");
-
- return pthread_sigmask (how,
- set,
- oset);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void
-pace_pthread_testcancel ()
-{
- PACE_TRACE("pace_pthread_testcancel");
-
- /* Do nothing per ACE (i.e., ACE_OS::thr_testcancel). */
- return;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/vxworks/pwd.c b/PACE/pace/vxworks/pwd.c
deleted file mode 100644
index 08f623cb684..00000000000
--- a/PACE/pace/vxworks/pwd.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/pwd.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/pwd.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/pwd.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/pwd.h b/PACE/pace/vxworks/pwd.h
deleted file mode 100644
index 4a2463658e5..00000000000
--- a/PACE/pace/vxworks/pwd.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/pwd.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_PWD_H_VXWORKS
-#define PACE_PWD_H_VXWORKS
-
-#include "pace/sys/types.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_PASSWD
-#define PACE_PASSWD
- typedef struct passwd pace_passwd;
-#endif /* PACE_PASSWD */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_PWD_H_VXWORKS */
diff --git a/PACE/pace/vxworks/pwd.inl b/PACE/pace/vxworks/pwd.inl
deleted file mode 100644
index 1e4aab00715..00000000000
--- a/PACE/pace/vxworks/pwd.inl
+++ /dev/null
@@ -1,82 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/pwd.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_passwd *
-pace_getpwuid (pace_uid_t uid)
-{
- PACE_TRACE("pace_getpwuid");
-
- /* getpwuid() is not supported: just one user anyways */
- PACE_UNUSED_ARG (uid);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getpwuid_r (pace_uid_t uid,
- pace_passwd * pwd,
- char * buffer,
- pace_size_t bufsize,
- pace_passwd ** result)
-{
- PACE_TRACE("pace_getpwuid_r");
-
- /* getpwuid_r() is not supported: just one user anyways */
- PACE_UNUSED_ARG (uid);
- PACE_UNUSED_ARG (pwd);
- PACE_UNUSED_ARG (buffer);
- PACE_UNUSED_ARG (bufsize);
- PACE_UNUSED_ARG (result);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_passwd *
-pace_getpwnam (const char * name)
-{
- PACE_TRACE("pace_getpwnam");
-
- /* getpwuid() is not supported: just one user anyways */
- PACE_UNUSED_ARG (name);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getpwnam_r (const char * name,
- pace_passwd * pwd,
- char * buffer,
- pace_size_t bufsize,
- pace_passwd ** result)
-{
- PACE_TRACE("pace_getpwnam_r");
-
- /* getpwuid_r() is not supported: just one user anyways */
- PACE_UNUSED_ARG (name);
- PACE_UNUSED_ARG (pwd);
- PACE_UNUSED_ARG (buffer);
- PACE_UNUSED_ARG (bufsize);
- PACE_UNUSED_ARG (result);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
diff --git a/PACE/pace/vxworks/sched.c b/PACE/pace/vxworks/sched.c
deleted file mode 100644
index 14a8857f86e..00000000000
--- a/PACE/pace/vxworks/sched.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/sched.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/sched.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/sched.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/sched.h b/PACE/pace/vxworks/sched.h
deleted file mode 100644
index 722b5953c95..00000000000
--- a/PACE/pace/vxworks/sched.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/sched.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_SCHED_H_VXWORKS
-#define PACE_SCHED_H_VXWORKS
-
-#include <sched.h>
-#include "pace/time.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_SCHED_FIFO SCHED_FIFO
-#define PACE_SCHED_OTHER SCHED_RR
-
-#ifndef PACE_SCHED_PARAM
-#define PACE_SCHED_PARAM
- typedef struct sched_param pace_sched_param;
-#endif /* PACE_SCHED_PARAM */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SCHED_H_VXWORKS */
diff --git a/PACE/pace/vxworks/sched.inl b/PACE/pace/vxworks/sched.inl
deleted file mode 100644
index 1d6a11bcdf3..00000000000
--- a/PACE/pace/vxworks/sched.inl
+++ /dev/null
@@ -1,107 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/sched.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_get_priority_max (int policy)
-{
- PACE_TRACE("pace_sched_get_priority_max");
-
- return sched_get_priority_max (policy);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_get_priority_min (int policy)
-{
- PACE_TRACE("pace_sched_get_priority_min");
-
- return sched_get_priority_min (policy);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_getparam (pace_pid_t pid,
- pace_sched_param * param)
-{
- PACE_TRACE("pace_sched_getparam");
-
- return sched_getparam (pid, param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_rr_get_interval (pace_pid_t pid,
- pace_timespec * interval)
-{
- PACE_TRACE("pace_sched_rr_get_interval");
-
- return sched_rr_get_interval (pid, interval);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_setparam (pace_pid_t pid,
- const pace_sched_param * param)
-{
- PACE_TRACE("pace_sched_setparam");
-
- return sched_setparam (pid, param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_getscheduler (pace_pid_t pid)
-{
- PACE_TRACE("pace_sched_getscheduler");
-
- return sched_getscheduler (pid);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_setscheduler (pace_pid_t pid,
- int policy,
- const pace_sched_param * param)
-{
- PACE_TRACE("pace_sched_setscheduler");
-
- return sched_setscheduler (pid, policy, param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_yield ()
-{
- PACE_TRACE("pace_sched_yield");
-
- return sched_yield ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/vxworks/semaphore.c b/PACE/pace/vxworks/semaphore.c
deleted file mode 100644
index f4d56e89543..00000000000
--- a/PACE/pace/vxworks/semaphore.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/semaphore.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/semaphore.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/semaphore.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/semaphore.h b/PACE/pace/vxworks/semaphore.h
deleted file mode 100644
index f5a0a97d05a..00000000000
--- a/PACE/pace/vxworks/semaphore.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/semaphore.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_SEMAPHORE_H_VXWORKS
-#define PACE_SEMAPHORE_H_VXWORKS
-
-#include <semaphore.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-typedef sem_t pace_sem_t;
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SEMAPHORE_H_VXWORKS */
diff --git a/PACE/pace/vxworks/semaphore.inl b/PACE/pace/vxworks/semaphore.inl
deleted file mode 100644
index edf2e95eea4..00000000000
--- a/PACE/pace/vxworks/semaphore.inl
+++ /dev/null
@@ -1,102 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/semaphore.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_close (pace_sem_t * sem)
-{
- PACE_TRACE("pace_sem_close");
-
- return sem_close (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_destroy (pace_sem_t * sem)
-{
- PACE_TRACE("pace_sem_destroy");
-
- return sem_destroy (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_getvalue (pace_sem_t * sem, int * sval)
-{
- PACE_TRACE("pace_sem_getvalue");
-
- return sem_getvalue (sem, sval);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_init (pace_sem_t * sem, int pshared, unsigned int value)
-{
- PACE_TRACE("pace_sem_init");
-
- return sem_init (sem, pshared, value);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_post (pace_sem_t * sem)
-{
- PACE_TRACE("pace_sem_post");
-
- return sem_post (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_trywait (pace_sem_t * sem)
-{
- PACE_TRACE("pace_sem_trywait");
-
- return sem_trywait (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_unlink (const char * name)
-{
- PACE_TRACE("pace_sem_unlink");
-
- return sem_unlink (name);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_wait (pace_sem_t * sem)
-{
- PACE_TRACE("pace_sem_wait");
-
- return sem_wait (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/vxworks/setjmp.c b/PACE/pace/vxworks/setjmp.c
deleted file mode 100644
index e2248f0389b..00000000000
--- a/PACE/pace/vxworks/setjmp.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/setjmp.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/setjmp.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/setjmp.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/setjmp.h b/PACE/pace/vxworks/setjmp.h
deleted file mode 100644
index 5c0f8b57751..00000000000
--- a/PACE/pace/vxworks/setjmp.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/setjmp.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_SETJMP_H_VXWORKS
-#define PACE_SETJMP_H_VXWORKS
-
-#include <types/vxTypesOld.h>
-#include <setjmp.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- typedef jmp_buf pace_jmp_buf;
- typedef sigjmp_buf pace_sigjmp_buf;
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SETJMP_H_VXWORKS */
diff --git a/PACE/pace/vxworks/setjmp.inl b/PACE/pace/vxworks/setjmp.inl
deleted file mode 100644
index b302dc91f55..00000000000
--- a/PACE/pace/vxworks/setjmp.inl
+++ /dev/null
@@ -1,38 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/setjmp.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_longjmp (pace_jmp_buf env, int val)
-{
- PACE_TRACE("pace_longjmp");
-
- longjmp (env, val);
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-void
-pace_siglongjmp (pace_sigjmp_buf env, int val)
-{
- PACE_TRACE("pace_siglongjmp");
-
- siglongjmp (env, val);
- return;
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
diff --git a/PACE/pace/vxworks/signal.c b/PACE/pace/vxworks/signal.c
deleted file mode 100644
index b7b840f3539..00000000000
--- a/PACE/pace/vxworks/signal.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/signal.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/signal.h"
-
-#if (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/signal.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#if (PACE_HAS_CPLUSPLUS)
-}
-#endif
diff --git a/PACE/pace/vxworks/signal.h b/PACE/pace/vxworks/signal.h
deleted file mode 100644
index 9b4343559a8..00000000000
--- a/PACE/pace/vxworks/signal.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/signal.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#ifndef PACE_SIGNAL_H_VXWORKS
-#define PACE_SIGNAL_H_VXWORKS
-
-#include <signal.h>
-#include "pace/sys/types.h"
-#include "pace/time.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_SIG_PF
-# define PACE_SIG_PF
- typedef void (*pace_sig_pf)(int);
-#endif /* PACE_SIG_PF */
-
-#ifndef PACE_SIG_ATOMIC_T
-#define PACE_SIG_ATOMIC_T
- typedef sig_atomic_t pace_sig_atomic_t;
-#endif /* PACE_SIG_ATOMIC_T */
-
-#ifndef PACE_SIGSET_T
-#define PACE_SIGSET_T
- typedef sigset_t pace_sigset_t;
-#endif /* PACE_SIGSET_T */
-
-#ifndef PACE_SIGACTION_S
-#define PACE_SIGACTION_S
- typedef struct sigaction pace_sigaction_s;
-#endif /* PACE_SIGACTION_S */
-
-#ifndef PACE_SIGINFO_T
-#define PACE_SIGINFO_T
- typedef siginfo_t pace_siginfo_t;
-#endif /* PACE_SIGINFO_T */
-
-#ifndef PACE_SIGEVENT
-#define PACE_SIGEVENT
- typedef struct sigevent pace_sigevent;
-#endif /* PACE_SIGEVENT */
-
-#ifndef PACE_SIGVAL
-#define PACE_SIGVAL
- typedef union sigval pace_sigval;
-#endif /* PACE_SIGVAL */
-
-#ifndef PACE_TIMESPEC
-#define PACE_TIMESPEC
- typedef struct timespec pace_timespec;
-#endif /* PACE_TIMESPEC */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SIGNAL_H_VXWORKS */
diff --git a/PACE/pace/vxworks/signal.inl b/PACE/pace/vxworks/signal.inl
deleted file mode 100644
index b5c94f61d4b..00000000000
--- a/PACE/pace/vxworks/signal.inl
+++ /dev/null
@@ -1,207 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/signal.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_kill (pace_pid_t pid, int sig)
-{
- PACE_TRACE("pace_kill");
-
- return kill (pid, sig);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_raise (int sig)
-{
- PACE_TRACE("pace_raise");
-
- return raise (sig);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigaction (int sig, const pace_sigaction_s * act,
- pace_sigaction_s * oact)
-{
- PACE_TRACE("pace_sigaction");
-
- return sigaction (sig, act, oact);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigaddset (pace_sigset_t * set, int signo)
-{
- PACE_TRACE("pace_sigaddset");
-
- return sigaddset (set, signo);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigemptyset (pace_sigset_t * set)
-{
- PACE_TRACE("pace_sigemptyset");
-
- return sigemptyset (set);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigdelset (pace_sigset_t * set, int signo)
-{
- PACE_TRACE("pace_sigdelset");
-
- return sigdelset (set, signo);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigfillset (pace_sigset_t * set)
-{
- PACE_TRACE("pace_sigfillset");
-
- return sigfillset (set);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigismember (const pace_sigset_t * set, int signo)
-{
- PACE_TRACE("pace_sigismember");
-
- return sigismember (set, signo);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_sig_pf
-pace_signal (int sig, pace_sig_pf func)
-{
- PACE_TRACE("pace_signal");
-
- return signal (sig, func);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigpending (pace_sigset_t * set)
-{
- PACE_TRACE("pace_sigpending");
-
- return sigpending (set);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigprocmask (int how, const pace_sigset_t * set,
- pace_sigset_t * oset)
-{
- PACE_TRACE("pace_sigprocmask");
-
- return sigprocmask (how, set, oset);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigqueue (pace_pid_t pid, int signo,
- const pace_sigval value)
-{
- PACE_TRACE("pace_sigqueue");
-
- return sigqueue (pid, signo, value);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigsuspend (const pace_sigset_t * sigmask)
-{
- PACE_TRACE("pace_sigsuspend");
-
- return sigsuspend (sigmask);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigtimedwait (const pace_sigset_t * set, pace_siginfo_t * info,
- const pace_timespec * timeout)
-{
- PACE_TRACE("pace_sigtimedwait");
-
- return sigtimedwait (set, info, timeout);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigwait (const pace_sigset_t * set, int * sig)
-{
- PACE_TRACE("pace_sigwait");
-
- /* It appears that sigwait is not supported for 5.3.1 or 5.4.
- * ACE uses sigtimedwait instead. (The code below is directly
- * from ACE_OS.
- * This is the call that should be made if VxWorks supported
- * sigwait:
- PACE_UNUSED_ARG (sig);
- return sigwait (set);
-
- * Second arg is a struct siginfo *, which we don't need (the
- * selected signal number is returned). Third arg is timeout: 0
- * means forever.
- */
- *sig = sigtimedwait (set, 0, 0);
- return *sig;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigwaitinfo (const pace_sigset_t *set, pace_siginfo_t *info)
-{
- PACE_TRACE("pace_sigwaitinfo");
-
- return sigwaitinfo (set, info);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/vxworks/socket.c b/PACE/pace/vxworks/socket.c
deleted file mode 100644
index 84b52baa24c..00000000000
--- a/PACE/pace/vxworks/socket.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/socket.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/sys/socket.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/socket.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/socket.h b/PACE/pace/vxworks/socket.h
deleted file mode 100644
index 4d23fe807d1..00000000000
--- a/PACE/pace/vxworks/socket.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/socket.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_SOCKET_H_VXWORKS
-#define PACE_SOCKET_H_VXWORKS
-
-#include <sys/types.h>
-#include <sockLib.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_SOMAXCONN
-#define PACE_SOMAXCONN SOMAXCONN
-#endif /* PACE_SOMAXCONN */
-
-#ifndef PACE_SOCKLEN_T
-#define PACE_SOCKLEN_T
- typedef int pace_socklen_t;
-#endif /* PACE_SOCKLEN_T */
-
-#ifndef PACE_SA_FAMILY_T
-#define PACE_SA_FAMILY_T
-#endif /* PACE_SA_FAMILY_T */
-
-#ifndef PACE_MSGHDR
-#define PACE_MSGHDR
- typedef struct msghdr pace_msghdr;
-#endif /* PACE_MSGHDR */
-
-#ifndef PACE_CMSGRHDR
-#define PACE_CMSGRHDR
- typedef struct cmsghdr pace_cmsghdr;
-#endif /* PACE_CMSGRHDR */
-
-#ifndef PACE_LINGER
-#define PACE_LINGER
- typedef struct linger pace_linger;
-#endif /* PACE_LINGER */
-
-#ifndef PACE_SOCK_STREAM
-#define PACE_SOCK_STREAM SOCK_STREAM
-#endif /* PACE_SOCK_STREAM */
-
-#ifndef PACE_SOCK_DGRAM
-#define PACE_SOCK_DGRAM SOCK_DGRAM
-#endif /* PACE_SOCK_DGRAM */
-
-#ifndef PACE_SOCK_RAW
-#define PACE_SOCK_RAW SOCK_RAW
-#endif /* PACE_MSGHDR */
-
-#ifndef PACE_SOCK_SEQPACKET
-#define PACE_SOCK_SEQPACKET SOCK_SEQPACKET
-#endif /* PACE_SOCK_SEQPACKET */
-
-#ifndef PACE_PF_UNSPEC
-#define PACE_PF_UNSPEC PF_UNSPEC
-#endif /* PACE_PF_UNSPEC */
-
-#ifndef PACE_PF_LOCAL
-#define PACE_PF_LOCAL PF_LOCAL
-#endif /* PACE_PF_LOCAL */
-
-#ifndef PACE_PF_INET
-#define PACE_PF_INET PF_INET
-#endif /* PACE_PF_INET */
-
-#ifndef PACE_PF_ISO
-#define PACE_PF_ISO PF_ISO
-#endif /* PACE_PF_ISO */
-
-#ifndef PACE_PF_OSI
-#define PACE_PF_OSI PF_OSI
-#endif /* PACE_PF_OSI */
-
-#ifndef PACE_AF_UNSPEC
-#define PACE_AF_UNSPEC AF_UNSPEC
-#endif /* PACE_AF_UNSPEC */
-
-#ifndef PACE_AF_LOCAL
-#define PACE_AF_LOCAL AF_LOCAL
-#endif /* PACE_AF_LOCAL */
-
-#ifndef PACE_AF_INET
-#define PACE_AF_INET AF_INET
-#endif /* PACE_AF_INET */
-
-#ifndef PACE_AF_ISO
-#define PACE_AF_ISO AF_ISO
-#endif /* PACE_AF_ISO */
-
-#ifndef PACE_AF_OSI
-#define PACE_AF_OSI AF_OSI
-#endif /* PACE_AF_OSI */
-
-#ifndef PACE_MSG_OOB
-#define PACE_MSG_OOB MSG_OOB
-#endif /* PACE_MSG_OOB */
-
-#ifndef PACE_MSG_PEEK
-#define PACE_MSG_PEEK MSG_PEEK
-#endif /* PACE_MSG_PEEK */
-
-#ifndef PACE_MSG_DONTROUTE
-#define PACE_MSG_DONTROUTE MSG_DONTROUTE
-#endif /* PACE_MSG_DONTROUTE */
-
-#ifndef PACE_MSG_EOR
-#define PACE_MSG_EOR MSG_EOR
-#endif /* PACE_MSG_EOR */
-
-#ifndef PACE_MSG_TRUNC
-#define PACE_MSG_TRUNC MSG_TRUNC
-#endif /* PACE_MSG_TRUNC */
-
-#ifndef PACE_MSG_CTRUNC
-#define PACE_MSG_CTRUNC MSG_CTRUNC
-#endif /* PACE_MSG_CTRUNC */
-
-#ifndef PACE_MSG_WAITALL
-#define PACE_MSG_WAITALL MSG_WAITALL
-#endif /* PACE_MSG_WAITALL */
-
-#ifndef PACE_SOL_SOCKET
-#define PACE_SOL_SOCKET SOL_SOCKET
-#endif /* PACE_SOL_SOCKET */
-
-#ifndef PACE_SO_BROADCAST
-#define PACE_SO_BROADCAST SO_BROADCAST
-#endif /* PACE_SO_BROADCAST */
-
-#ifndef PACE_SO_DEBUG
-#define PACE_SO_DEBUG SO_DEBUG
-#endif /* PACE_SO_DEBUG */
-
-#ifndef PACE_SO_DONTROUTE
-#define PACE_SO_DONTROUTE SO_DONTROUTE
-#endif /* PACE_SO_DONTROUTE */
-
-#ifndef PACE_SO_ERROR
-#define PACE_SO_ERROR SO_ERROR
-#endif /* PACE_SO_ERROR */
-
-#ifndef PACE_SO_KEEPALIVE
-#define PACE_SO_KEEPALIVE SO_KEEPALIVE
-#endif /* PACE_SO_KEEPALIVE */
-
-#ifndef PACE_SO_LINGER
-#define PACE_SO_LINGER SO_LINGER
-#endif /* PACE_SO_LINGER */
-
-#ifndef PACE_SO_OOBINLINE
-#define PACE_SO_OOBINLINE SO_OOBINLINE
-#endif /* PACE_SO_OOBINLINE */
-
-#ifndef PACE_SO_RCVBUF
-#define PACE_SO_RCVBUF SO_RCVBUF
-#endif /* PACE_SO_RCVBUF */
-
-#ifndef PACE_SO_RCVLOWAT
-#define PACE_SO_RCVLOWAT SO_RCVLOWAT
-#endif /* PACE_SO_RCVLOWAT */
-
-#ifndef PACE_SO_RCVTIMEO
-#define PACE_SO_RCVTIMEO SO_RCVTIMEO
-#endif /* PACE_SO_RCVTIMEO */
-
-#ifndef PACE_SO_REUSEADDR
-#define PACE_SO_REUSEADDR SO_REUSEADDR
-#endif /* PACE_SO_REUSEADDR */
-
-#ifndef PACE_SO_SNDBUF
-#define PACE_SO_SNDBUF SO_SNDBUF
-#endif /* PACE_SO_SNDBUF */
-
-#ifndef PACE_SO_SNDLOWAT
-#define PACE_SO_SNDLOWAT SO_SNDLOWAT
-#endif /* PACE_SO_SNDLOWAT */
-
-#ifndef PACE_SO_SNDTIMEO
-#define PACE_SO_SNDTIMEO SO_SNDTIMEO
-#endif /* PACE_SO_SNDTIMEO */
-
-#ifndef PACE_SO_TYPE
-#define PACE_SO_TYPE SO_TYPE
-#endif /* PACE_SO_TYPE */
-
-#ifndef PACE_CMSG_DATA
-#define PACE_CMSG_DATA(cmsg) CMSG_DATA(cmsg)
-#endif /* PACE_CMSG_DATA */
-
-#ifndef PACE_CMSG_NXTHDR
-#define PACE_CMSG_NXTHDR(mhdr, cmsg) CMSG_NXTHDR(mhdr, cmsg)
-#endif /* PACE_CMSG_DATA */
-
-#ifndef PACE_CMSG_FIRSTHDR
-#define PACE_CMSG_NXTHDR(mhdr, cmsg) CMSG_NXTHDR(mhdr, cmsg)
-#endif /* PACE_CMSG_DATA */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SOCKET_H_VXWORKS */
diff --git a/PACE/pace/vxworks/socket.inl b/PACE/pace/vxworks/socket.inl
deleted file mode 100644
index 440254fd0da..00000000000
--- a/PACE/pace/vxworks/socket.inl
+++ /dev/null
@@ -1,280 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/socket.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include <unistd.h>
-#include <stdarg.h>
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_accept (int s,
- pace_sockaddr * socketaddress,
- pace_socklen_t * addresslen)
-{
- PACE_TRACE("pace_accept");
-
- accept (s, socketaddress, addresslen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_bind (int s,
- const pace_sockaddr * socketaddress,
- pace_socklen_t addresslen)
-{
- PACE_TRACE("pace_bind");
-
- bind (s, socketaddress, addresslen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_connect (int s,
- const pace_sockaddr * socketaddress,
- pace_socklen_t addresslen)
-{
- PACE_TRACE("pace_connect");
-
- connect (s, socketaddress, addresslen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_getpeername (int s,
- pace_sockaddr * socketaddress,
- pace_socklen_t * addresslen)
-{
- PACE_TRACE("pace_getpeername");
-
- getpeername (s, socketaddress, addresslen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_getsockname (int s,
- pace_sockaddr * socketaddress,
- pace_socklen_t * addresslen)
-{
- PACE_TRACE("pace_getsockname");
-
- getsockname (s, socketaddress, addresslen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_getsockopt (int s,
- int level,
- int optname,
- void * optval,
- pace_socklen_t optlen)
-{
- PACE_TRACE("pace_getsockopt");
-
- getsockopt (s, level, optname, optval, optlen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_setsockopt (int s,
- int level,
- int optname,
- const * optval)
-{
- PACE_TRACE("pace_setsockopt");
-
- setsockopt (s, level, optname, optval);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_setsockopt (int s,
- int level,
- int optname,
- const * optval)
-{
- PACE_TRACE("pace_setsockopt");
-
- setsockopt (s, level, optname, optval);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_isfdtype (int fildes, int fdtype)
-{
- PACE_TRACE("pace_isfdtype");
-
- isfdtype (fildes, fdtype);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_listen (int s, int backlog)
-{
- PACE_TRACE("pace_listen");
-
- listen (s, backlog);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_recv (int s,
- void * buf,
- pace_size_t len,
- int flags)
-{
- PACE_TRACE("pace_recv");
-
- recv (s, buf, len, flags);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_recvfrom (int s,
- void * buf,
- pace_size_t len,
- int flags,
- pace_sockaddr * from,
- pace_socklen_t * fromlen)
-{
- PACE_TRACE("pace_recvfrom");
-
- recvfrom (s, buf, len, flags, from, fromlen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_rcvmsg (int s,
- pace_msghdr * msg,
- int flags)
-{
- PACE_TRACE("pace_rcvmsg");
-
- rcvmsg (s, msg, flags);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_send (int s,
- const void * buf,
- pace_size_t len,
- int flags)
-{
- PACE_TRACE("pace_send");
-
- send (s, buf, len, flags);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_sendto (int s,
- const void * buf,
- pace_size_t len,
- int flags,
- const pace_sockaddr * to,
- pace_socklen_t * tolen)
-{
- PACE_TRACE("pace_sendto");
-
- sendto (s, buf, len, flags, to, tolen);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_sendmsg (int s,
- const pace_msghdr * msg,
- int flags)
-{
- PACE_TRACE("pace_sendmsg");
-
- sendmsg (s, msg, flags);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_shutdown (int s, int how)
-{
- PACE_TRACE("pace_shutdown");
-
- shutdown (s, how);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_socket (int protofamily, int type, int protocol)
-{
- PACE_TRACE("pace_socket");
-
- socket (protofamily, type, protocol);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-#if (PACE_HAS_POSIX_SOCK_UOF)
-PACE_INLINE
-int
-pace_socketpair (int protofamily,
- int type,
- int protocol,
- int sv[2])
-{
- PACE_TRACE("pace_socketpair");
-
- socketpair (protofamily, type, protocol, sy);
-}
-#endif /* PACE_HAS_POSIX_SOCK_UOF */
-
-
-
-
-
-
-
-
-
-
-
diff --git a/PACE/pace/vxworks/stat.c b/PACE/pace/vxworks/stat.c
deleted file mode 100644
index 4a1e3ba06bb..00000000000
--- a/PACE/pace/vxworks/stat.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/stat.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/sys/stat.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/stat.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/stat.h b/PACE/pace/vxworks/stat.h
deleted file mode 100644
index ce6669cb971..00000000000
--- a/PACE/pace/vxworks/stat.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/stat.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_STAT_H_VXWORKS
-#define PACE_SYS_STAT_H_VXWORKS
-
-#include <types/vxTypesOld.h>
-#include <sys/stat.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_S_IRGRP S_IRGRP
-#define PACE_S_IROTH S_IROTH
-#define PACE_S_IRUSR S_IRUSR
-#define PACE_S_IRWXG S_IRWXG
-#define PACE_S_IRWXO S_IRWXO
-#define PACE_S_IRWXU S_IRWXU
-#define PACE_S_ISBLK S_ISBLK
-#define PACE_S_ISCHR S_ISCHR
-#define PACE_S_ISDIR S_ISDIR
-#define PACE_S_ISFIFO S_ISFIFO
-#define PACE_S_ISGID S_SIGID
-#define PACE_S_ISREG S_ISREG
-#define PACE_S_ISUID S_ISUID
-#define PACE_S_IWGRP S_IWGRP
-#define PACE_S_IWOTH S_IWOTH
-#define PACE_S_IWUSR S_IWUSR
-#define PACE_S_IXGRP S_IXGRP
-#define PACE_S_IXOTH S_IXOTH
-#define PACE_S_IXUSR S_IXUSR
-#define PACE_S_TYPEISMQ S_TYPEISMQ
-#define PACE_S_TYPEISSEM S_TYPEISSEM
-#define PACE_S_TYPEISSHM S_TYPEISSHM
-
-#ifndef PACE_STAT
-#define PACE_STAT
- /* Kludge since there is a func and a type of the same name */
- typedef struct stat pace_stat_s;
-#endif /* PACE_STAT */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_STAT_H_VXWORKS */
diff --git a/PACE/pace/vxworks/stat.inl b/PACE/pace/vxworks/stat.inl
deleted file mode 100644
index 56359e690a0..00000000000
--- a/PACE/pace/vxworks/stat.inl
+++ /dev/null
@@ -1,99 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/stat.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_FA_UOF)
-PACE_INLINE
-int
-pace_chmod (const char * path, pace_mode_t mode)
-{
- PACE_TRACE("pace_chmod");
-
- PACE_UNUSED_ARG(path);
- PACE_UNUSED_ARG(mode);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FA_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fchmod (PACE_HANDLE fildes, pace_mode_t mode)
-{
- PACE_TRACE("pace_fchmod");
-
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(mode);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_fstat (PACE_HANDLE fildes, pace_stat_s * buf)
-{
- PACE_TRACE("pace_fstat");
-
- return fstat (fildes, buf);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_mkdir (const char * path, pace_mode_t mode)
-{
- PACE_TRACE("pace_mkdir");
-
- PACE_UNUSED_ARG (mode);
- return mkdir (PACE_NONCONST_ARG_CAST (char *) path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_F_UOF)
-PACE_INLINE
-int
-pace_mkfifo (const char * path, pace_mode_t mode)
-{
- PACE_TRACE("pace_mkfifo");
-
- PACE_UNUSED_ARG(path);
- PACE_UNUSED_ARG(mode);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_F_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_stat (const char * path, pace_stat_s * buf)
-{
- PACE_TRACE("pace_stat");
-
- return stat (PACE_NONCONST_ARG_CAST (char *) path, buf);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FA_UOF)
-PACE_INLINE
-pace_mode_t
-pace_umask (pace_mode_t cmask)
-{
- PACE_TRACE("pace_umask");
-
- PACE_UNUSED_ARG(cmask);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FA_UOF */
diff --git a/PACE/pace/vxworks/stdio.c b/PACE/pace/vxworks/stdio.c
deleted file mode 100644
index ec5b053e2ff..00000000000
--- a/PACE/pace/vxworks/stdio.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/stdio.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/stdio.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/stdio.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/stdio.h b/PACE/pace/vxworks/stdio.h
deleted file mode 100644
index 2e819b7a431..00000000000
--- a/PACE/pace/vxworks/stdio.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* $Id$ -*- C -*-
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/stdio.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_STDIO_H_VXWORKS
-#define PACE_STDIO_H_VXWORKS
-
-#include <stdarg.h>
-#include <stdio.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_BUFSIZ BUFSIZ
-#define PACE_EOF EOF
-#define PACE_FILENAME_MAX FILENAME_MAX
-#define PACE_L_ctermid L_ctermid
-#define PACE_L_cuserid L_cuserid
-#ifndef PACE_NULL
-#define PACE_NULL NULL
-#endif /* PACE_NULL */
-#define PACE_SEEK_CUR SEEK_CUR
-#define PACE_SEEK_END SEEK_END
-#define PACE_SEEK_SET SEEK_SET
-#define PACE_TMP_MAX TMP_MAX
-#define pace_stderr stderr
-#define pace_stdout stdout
-#define pace_stdin stdin
-
-#ifndef PACE_FPOS_T
-#define PACE_FPOS_T
-typedef fpos_t pace_fpos_t;
-#endif /* PACE_FPOS_T */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-typedef FILE PACE_FILE;
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STDIO_H_VXWORKS */
diff --git a/PACE/pace/vxworks/stdio.inl b/PACE/pace/vxworks/stdio.inl
deleted file mode 100644
index 27ffc39bcc5..00000000000
--- a/PACE/pace/vxworks/stdio.inl
+++ /dev/null
@@ -1,565 +0,0 @@
-/* $Id$ -*- C -*-
-
- * ===========================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/stdio.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#include <stdarg.h>
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-void
-pace_clearerr (FILE * stream)
-{
- PACE_TRACE("pace_clearerr");
-
- clearerr (stream);
- return;
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-char *
-pace_ctermid (char * s)
-{
- PACE_TRACE("pace_ctermid");
-
- PACE_UNUSED_ARG(s);
- PACE_ERRNO_NO_SUPPORT_RETURN ((char *) 0);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fclose (FILE * stream)
-{
- PACE_TRACE("pace_fclose");
-
- return fclose (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-FILE *
-pace_fdopen (int fildes,
- const char * type)
-{
- PACE_TRACE("pace_fdopen");
-
- return fdopen (fildes,
- type);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_ferror (FILE * stream)
-{
- PACE_TRACE("pace_ferror");
-
- return ferror (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_feof (FILE * stream)
-{
- PACE_TRACE("pace_feof");
-
- return feof (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fflush (FILE * stream)
-{
- PACE_TRACE("pace_fflush");
-
- return fflush (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fileno (FILE * stream)
-{
- PACE_TRACE("pace_fileno");
-
- return fileno (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fgetc (FILE * stream)
-{
- PACE_TRACE("pace_fgetc");
-
- return fgetc (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fgetpos (PACE_FILE * stream,
- pace_fpos_t * pos)
-{
- PACE_TRACE("pace_fgetpos");
-
- return fgetpos (stream, pos);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-char *
-pace_fgets (char * s,
- int n,
- FILE * stream)
-{
- PACE_TRACE("pace_fgets");
-
- return fgets (s,
- n,
- stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-void
-pace_flockfile (FILE * file)
-{
- PACE_TRACE("pace_flockfile");
-
- PACE_UNUSED_ARG (file);
- PACE_ERRNO_NO_SUPPORT ();
- return;
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-FILE *
-pace_fopen (const char * filename,
- const char * mode)
-{
- PACE_TRACE("pace_fopen");
-
- return fopen (filename,
- mode);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fputc (int c,
- FILE * stream)
-{
- PACE_TRACE("pace_fputc");
-
- return fputc (c,
- stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fputs (const char * s,
- FILE * stream)
-{
- PACE_TRACE("pace_fputs");
-
- return fputs (s,
- stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-size_t
-pace_fread (void * ptr,
- size_t size,
- size_t number_of_items,
- FILE * stream)
-{
- PACE_TRACE("pace_fread");
-
- return fread (ptr,
- size,
- number_of_items,
- stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-FILE *
-pace_freopen (const char * filename,
- const char * mode,
- FILE * stream)
-{
- PACE_TRACE("pace_freopen");
-
- return freopen (filename,
- mode,
- stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-int
-pace_fseek (FILE * stream,
- long offset,
- int whence)
-{
- PACE_TRACE("pace_fseek");
-
- return fseek (stream,
- offset,
- whence);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fsetpos (PACE_FILE *stream, const pace_fpos_t *pos)
-{
- PACE_TRACE("pace_fsetpos");
-
- return fsetpos (stream, pos);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-long
-pace_ftell (FILE * stream)
-{
- PACE_TRACE("pace_ftell");
-
- return ftell (stream);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_ftrylockfile (FILE * file)
-{
- PACE_TRACE("pace_ftrylockfile");
-
- PACE_UNUSED_ARG(file);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-void
-pace_funlockfile (FILE * file)
-{
- PACE_TRACE("pace_funlockfile");
-
- PACE_UNUSED_ARG(file);
- PACE_ERRNO_NO_SUPPORT ();
- return;
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-pace_size_t
-pace_fwrite (const void * ptr,
- pace_size_t size, pace_size_t nmemb,
- PACE_FILE * stream)
-{
- PACE_TRACE("pace_fwrite");
-
- return fwrite (ptr, size, nmemb, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_getc (FILE * stream)
-{
- PACE_TRACE("pace_getc");
-
- return getc (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_getc_unlocked (FILE * stream)
-{
- PACE_TRACE("pace_getc_unlocked");
-
- PACE_UNUSED_ARG(stream);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_getchar ()
-{
- PACE_TRACE("pace_getchar");
-
- return getchar ();
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_getchar_unlocked ()
-{
- PACE_TRACE("pace_getchar_unlocked");
-
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-char *
-pace_gets (char * s)
-{
- PACE_TRACE("pace_gets");
-
- return gets (s);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-void
-pace_perror (const char * s)
-{
- PACE_TRACE("pace_perror");
-
- perror (s);
- return;
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_putc (int c,
- FILE * stream)
-{
- PACE_TRACE("pace_putc");
-
- return putc (c, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_putc_unlocked (int c,
- FILE * stream)
-{
- PACE_TRACE("pace_putc_unlocked");
-
- PACE_UNUSED_ARG(c);
- PACE_UNUSED_ARG(stream);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_putchar (int c)
-{
- PACE_TRACE("pace_putchar");
-
- return putchar (c);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_putchar_unlocked (int c)
-{
- PACE_TRACE("pace_putchar_unlocked");
-
- PACE_UNUSED_ARG(c);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_puts (const char * s)
-{
- PACE_TRACE("pace_puts");
-
- return puts (s);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_remove (const char * path)
-{
- PACE_TRACE("pace_remove");
-
- return remove (path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_rename (const char * old_name,
- const char * new_name)
-{
- PACE_TRACE("pace_rename");
-
- return rename (old_name,
- new_name);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-void
-pace_rewind (FILE * stream)
-{
- PACE_TRACE("pace_rewind");
-
- rewind (stream);
- return;
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-void
-pace_setbuf (FILE * stream, char * buf)
-{
- PACE_TRACE("pace_setbuf");
-
- setbuf (stream, buf);
- return;
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_setvbuf (PACE_FILE * stream,
- char * buf,
- int mode, pace_size_t size)
-{
- PACE_TRACE("pace_setvbuf");
-
- return setvbuf (stream, buf, mode, size);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-FILE *
-pace_tmpfile ()
-{
- PACE_TRACE("pace_tmpfile");
-
- return tmpfile ();
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-char *
-pace_tmpnam (char * s)
-{
- PACE_TRACE("pace_tmpnam");
-
- return tmpnam (s);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_ungetc (int c, FILE * stream)
-{
- PACE_TRACE("pace_ungetc");
-
- return ungetc (c, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_vfprintf (PACE_FILE * stream,
- const char * format,
- va_list arg)
-{
- PACE_TRACE("pace_vfprintf");
-
- return vfprintf (stream, format, arg);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_vprintf (const char * format,
- va_list arg)
-{
- PACE_TRACE("pace_vprintf");
-
- return vprintf (format, arg);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_vsprintf (char * s,
- const char * format,
- va_list arg)
-{
- PACE_TRACE("pace_vsprintf");
-
- return vsprintf (s, format, arg);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/vxworks/stdlib.c b/PACE/pace/vxworks/stdlib.c
deleted file mode 100644
index bea76354026..00000000000
--- a/PACE/pace/vxworks/stdlib.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/stdlib.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/stdlib.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/stdlib.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/stdlib.h b/PACE/pace/vxworks/stdlib.h
deleted file mode 100644
index 75a5196af60..00000000000
--- a/PACE/pace/vxworks/stdlib.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/stdlib.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_STDLIB_H_VXWORKS
-#define PACE_STDLIB_H_VXWORKS
-
-#include <stdlib.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_EXIT_FAILURE EXIT_FAILURE
-#define PACE_EXIT_SUCCESS EXIT_SUCCESS
-#define PACE_MB_CUR_MAX MB_CUR_MAX
-#ifndef PACE_NULL
-# define PACE_NULL NULL
-#endif /* PACE_NULL */
-#define PACE_RAND_MAX RAND_MAX
-
-#ifndef PACE_DIV_T
-#define PACE_DIV_T
- typedef div_t pace_div_t;
-#endif /* PACE_DIV_T */
-
-#ifndef PACE_LDIV_T
-#define PACE_LDIV_T
- typedef ldiv_t pace_ldiv_t;
-#endif /* PACE_LDIV_T */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_WCHAR_T
-#define PACE_WCHAR_T
- typedef wchar_t pace_wchar_t;
-#endif /* PACE_WCHAR_T */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-# ifndef PACE_BSEARCH_PF
-# define PACE_BSEARCH_PF
- typedef int (*pace_bsearch_pf) (const void*, const void*);
-# endif /* PACE_BSEARCH_PF */
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STDLIB_H_VXWORKS */
diff --git a/PACE/pace/vxworks/stdlib.inl b/PACE/pace/vxworks/stdlib.inl
deleted file mode 100644
index 56569bb52bd..00000000000
--- a/PACE/pace/vxworks/stdlib.inl
+++ /dev/null
@@ -1,381 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/stdlib.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include <stdlib.h>
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-void
-pace_abort (void)
-{
- PACE_TRACE("pace_abort");
-
- abort ();
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_abs (int val)
-{
- PACE_TRACE("pace_abs");
-
- return abs (val);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_atexit (void (*func)(void))
-{
- PACE_TRACE("pace_atexit");
-
- return atexit (func);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_atof (const char * str)
-{
- PACE_TRACE("pace_atof");
-
- return atof (str);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_atoi (const char * str)
-{
- PACE_TRACE("pace_atoi");
-
- return atoi (str);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-long
-pace_atol (const char * str)
-{
- PACE_TRACE("pace_atol");
-
- return atol (str);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-# if defined (PACE_HAS_CPLUSPLUS)
-PACE_INLINE
-void *
-pace_bsearch (const void *key, const void *base,
- size_t nel, size_t size,
- pace_bsearch_pf compar)
-{
- PACE_TRACE("pace_bsearch");
-
- return bsearch (key, base, nel, size, compar);
-}
-# else /* ! PACE_HAS_CPLUSPLUS */
-PACE_INLINE
-void *
-pace_bsearch (const void *key, const void *base,
- size_t nel, size_t size,
- int (*compar)(const void *,const void *))
-{
- PACE_TRACE("pace_bsearch");
-
- return bsearch (key, base, nel, size, compar);
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_div_t
-pace_div (int numer, int denom)
-{
- PACE_TRACE("pace_div");
-
- return div (numer, denom);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-void
-pace_exit (int status)
-{
- PACE_TRACE("pace_exit");
-
- exit (status);
- return;
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-char *
-pace_getenv (const char * name)
-{
- PACE_TRACE("pace_getenv");
-
- return getenv (name);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-long int
-pace_labs (long int j)
-{
- PACE_TRACE("pace_labs");
-
- return labs (j);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_ldiv_t
-pace_ldiv (long int numer, long int denom)
-{
- PACE_TRACE("pace_ldiv");
-
- return ldiv (numer, denom);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mblen (const char* s, pace_size_t n)
-{
- PACE_TRACE("pace_mblen");
-
- return mblen (s, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_size_t
-pace_mbstowcs (pace_wchar_t* pwcs,
- const char* s,
- pace_size_t n)
-{
- PACE_TRACE("pace_mbstowcs");
-
- return mbstowcs (pwcs, s, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mbtowc (pace_wchar_t* pwc,
- const char* s,
- pace_size_t n)
-{
- PACE_TRACE("pace_mbtowc");
-
- return mbtowc (pwc, s, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-# if (PACE_HAS_CPLUSPLUS)
-PACE_INLINE
-void
-pace_qsort (void * base, size_t nel, size_t width,
- pace_bsearch_pf compar)
-{
- PACE_TRACE("pace_qsort");
-
- qsort (base, nel, width, compar);
-}
-# else /* ! PACE_HAS_CPLUSPLUS */
-PACE_INLINE
-void
-pace_qsort (void * base, size_t nel, size_t width,
- int (*compar)(const void *,const void *))
-{
- PACE_TRACE("pace_qsort");
-
- qsort (base, nel, width, compar);
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_rand ()
-{
- PACE_TRACE("pace_rand");
-
- return rand ();
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_srand (unsigned int seed)
-{
- PACE_TRACE("pace_srand");
-
- srand (seed);
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-int
-pace_rand_r (unsigned int *seed)
-{
- PACE_TRACE("pace_rand_r");
-
- PACE_UNUSED_ARG (seed);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-double
-pace_strtod (const char* nptr,
- char** endptr)
-{
- PACE_TRACE("pace_strtod");
-
- return strtod (nptr, endptr);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_strtol (const char* nptr,
- char** endptr,
- int base)
-{
- PACE_TRACE("pace_strtol");
-
- return strtol (nptr, endptr, base);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-unsigned long int
-pace_strtoul (const char* nptr,
- char** endptr,
- int base)
-{
- PACE_TRACE("pace_strtoul");
-
- return strtoul (nptr, endptr, base);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_system (const char* string)
-{
- PACE_TRACE("pace_system");
-
- return system (string);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_size_t
-pace_wcstombs (char* s,
- const pace_wchar_t* pwcs,
- pace_size_t n)
-{
- PACE_TRACE("pace_wcstombs");
-
- return wcstombs (s, pwcs, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_wctomb (char* s, pace_wchar_t wchar)
-{
- PACE_TRACE("pace_wctomb");
-
- return wctomb (s, wchar);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-/* Memory Management. */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void *
-pace_malloc (size_t size)
-{
- PACE_TRACE("pace_malloc");
-
- return malloc (size);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void *
-pace_calloc (size_t nelem, size_t elsize)
-{
- PACE_TRACE("pace_calloc");
-
- return calloc (nelem, elsize);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_free (void * ptr)
-{
- PACE_TRACE("pace_free");
-
- free (ptr);
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void *
-pace_realloc (void * ptr, size_t size)
-{
- PACE_TRACE("pace_realloc");
-
- return realloc (ptr, size);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
diff --git a/PACE/pace/vxworks/string.c b/PACE/pace/vxworks/string.c
deleted file mode 100644
index a6404ccfd0b..00000000000
--- a/PACE/pace/vxworks/string.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/string.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/string.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/string.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/string.h b/PACE/pace/vxworks/string.h
deleted file mode 100644
index f2fcee61fe5..00000000000
--- a/PACE/pace/vxworks/string.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/string.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_STRING_H_VXWORKS
-#define PACE_STRING_H_VXWORKS
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if !defined (PACE_NULL)
-# define PACE_NULL NULL
-#endif /* NULL */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STRING_H_VXWORKS */
diff --git a/PACE/pace/vxworks/string.inl b/PACE/pace/vxworks/string.inl
deleted file mode 100644
index 65c2701b606..00000000000
--- a/PACE/pace/vxworks/string.inl
+++ /dev/null
@@ -1,238 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/string.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include <string.h>
-#include "pace/string.h"
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_memchr (const void *s, int c, pace_size_t n)
-{
- PACE_TRACE("pace_memchr");
-
- return (void*) memchr (s, c, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_memcmp (const void *s1, const void *s2, pace_size_t n)
-{
- PACE_TRACE("pace_memcmp");
-
- return memcmp (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_memcpy (void * s1, const void * s2, pace_size_t n)
-{
- PACE_TRACE("pace_memcpy");
-
- return memcpy (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_memmove (void *s1, const void *s2, pace_size_t n)
-{
- PACE_TRACE("pace_memmove");
-
- return memmove (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_BROKEN_INLINE
-void *
-pace_memset (void *s, int c, pace_size_t n)
-{
- PACE_TRACE("pace_memset");
-
- return memset (s, c, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strcat (char * s1, const char * s2)
-{
- PACE_TRACE("pace_strcat");
-
- return strcat (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strncat (char * s1, const char * s2, size_t n)
-{
- PACE_TRACE("pace_strncat");
-
- return strncat (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strchr (const char * s, int c)
-{
- PACE_TRACE("pace_strchr");
-
- return (char*) strchr (s, c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strrchr (const char * s, int c)
-{
- PACE_TRACE("pace_strrchr");
-
- return (char*) strrchr (s, c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_BROKEN_INLINE
-int
-pace_strcmp (const char * s1, const char * s2)
-{
- PACE_TRACE("pace_strcmp");
-
- return strcmp (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_BROKEN_INLINE
-int
-pace_strncmp (const char * s1, const char * s2, size_t n)
-{
- PACE_TRACE("pace_strncmp");
-
- return strncmp (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_BROKEN_INLINE
-char *
-pace_strcpy (char * s1, const char * s2)
-{
- PACE_TRACE("pace_strcpy");
-
- return strcpy (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strncpy (char * s1, const char * s2, size_t n)
-{
- PACE_TRACE("pace_strncpy");
-
- return strncpy (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_BROKEN_INLINE
-size_t
-pace_strcspn (const char * s1, const char * s2)
-{
- PACE_TRACE("pace_strcspn");
-
- return strcspn (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-size_t
-pace_strspn (const char * s1, const char * s2)
-{
- PACE_TRACE("pace_strspn");
-
- return strspn (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-size_t
-pace_strlen (const char * s)
-{
- PACE_TRACE("pace_strlen");
-
- return strlen (s);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_BROKEN_INLINE
-char *
-pace_strpbrk (const char * s1, const char * s2)
-{
- PACE_TRACE("pace_strpbrk");
-
- return (char*) strpbrk (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strstr (const char * s1, const char * s2)
-{
- PACE_TRACE("pace_strstr");
-
- return (char*) strstr (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strtok (char * s1, const char * s2)
-{
- PACE_TRACE("pace_strtok");
-
- return strtok (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-char *
-pace_strtok_r (char * s, const char * sep, char ** lasts)
-{
- PACE_TRACE("pace_strtok_r");
-
- return strtok_r (s, sep, lasts);
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
diff --git a/PACE/pace/vxworks/termios.c b/PACE/pace/vxworks/termios.c
deleted file mode 100644
index 4cc7e1d7388..00000000000
--- a/PACE/pace/vxworks/termios.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/termios.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/termios.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/termios.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/termios.h b/PACE/pace/vxworks/termios.h
deleted file mode 100644
index a21eef15fb6..00000000000
--- a/PACE/pace/vxworks/termios.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/termios.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_TERMIOS_H_VXWORKS
-#define PACE_SYS_TERMIOS_H_VXWORKS
-
-#include "pace/sys/types.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS) */
-
-#ifndef PACE_CC_T
-#define PACE_CC_T
-typedef int pace_cc_t;
-#endif /* PACE_CC_T */
-
-#ifndef PACE_SPEED_T
-#define PACE_SPEED_T
-typedef int pace_speed_t;
-#endif /* PACE_SPEED_T */
-
-#ifndef PACE_TCFLAG_T
-#define PACE_TCFLAG_T
-typedef int pace_tcflag_t;
-#endif /* PACE_TCFLAG_T */
-
-#ifndef PACE_TERMIOS
-#define PACE_TERMIOS
-typedef int pace_termios;
-#endif /* PACE_TERMIOS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TERMIOS_H_VXWORKS */
diff --git a/PACE/pace/vxworks/termios.inl b/PACE/pace/vxworks/termios.inl
deleted file mode 100644
index 30c778371f3..00000000000
--- a/PACE/pace/vxworks/termios.inl
+++ /dev/null
@@ -1,145 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/termios.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-pace_speed_t
-pace_cfgetospeed (const pace_termios *termiosp)
-{
- PACE_TRACE("pace_cfgetospeed");
-
- PACE_UNUSED_ARG(termiosp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_cfsetospeed (pace_termios *termios_p, pace_speed_t speed)
-{
- PACE_TRACE("pace_cfsetospeed");
-
- PACE_UNUSED_ARG(termios_p);
- PACE_UNUSED_ARG(speed);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-pace_speed_t
-pace_cfgetispeed (const pace_termios *termios_p)
-{
- PACE_TRACE("pace_cfgetispeed");
-
- PACE_UNUSED_ARG(termios_p);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_cfsetispeed (pace_termios *termios_p, pace_speed_t speed)
-{
- PACE_TRACE("pace_cfsetispeed");
-
- PACE_UNUSED_ARG(termios_p);
- PACE_UNUSED_ARG(speed);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcdrain (PACE_HANDLE fildes)
-{
- PACE_TRACE("pace_tcdrain");
-
- PACE_UNUSED_ARG(fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcgetattr (PACE_HANDLE fildes, pace_termios *termios_p)
-{
- PACE_TRACE("pace_tcgetattr");
-
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(termios_p);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcflow (PACE_HANDLE fildes, int action)
-{
- PACE_TRACE("pace_tcflow");
-
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(action);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcflush (PACE_HANDLE fildes, int queue_selector)
-{
- PACE_TRACE("pace_tcflush");
-
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(queue_selector);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcsendbreak (PACE_HANDLE fildes, int duration)
-{
- PACE_TRACE("pace_tcsendbreak");
-
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(duration);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcsetattr (PACE_HANDLE fildes,
- int optional_actions,
- const pace_termios *termios_p)
-{
- PACE_TRACE("pace_tcsetattr");
-
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(optional_actions);
- PACE_UNUSED_ARG(termios_p);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
diff --git a/PACE/pace/vxworks/time.c b/PACE/pace/vxworks/time.c
deleted file mode 100644
index 2074220b3ab..00000000000
--- a/PACE/pace/vxworks/time.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/time.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/time.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/time.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/time.h b/PACE/pace/vxworks/time.h
deleted file mode 100644
index d5f51c59d38..00000000000
--- a/PACE/pace/vxworks/time.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/time.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_TIME_H_VXWORKS
-#define PACE_TIME_H_VXWORKS
-
-#include <time.h>
-#include "pace/signal.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_CLK_TCK CLK_TCK
-#define PACE_CLOCKS_PER_SEC CLOCKS_PER_SEC
-#define PACE_CLOCK_REALTIME CLOCK_REALTIME
-#ifndef PACE_NULL
-#define PACE_NULL NULL
-#endif /* PACE_NULL */
-#define PACE_TIMER_ABSTIME TIMER_ABSTIME
-
-#ifndef PACE_CLOCKID_T
-#define PACE_CLOCKID_T
-# if defined PACE_EMU_CLOCKID_T
- typedef pace_emu_clockid_t pace_clockid_t;
-# else
- typedef clockid_t pace_clockid_t;
-# endif /* PACE_LINUX */
-#endif /* PACE_CLOCKID_T */
-
-#ifndef PACE_CLOCK_T
-#define PACE_CLOCK_T
- typedef clock_t pace_clock_t;
-#endif /* PACE_CLOCK_T */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_TIMER_T
-#define PACE_TIMER_T
- typedef timer_t pace_timer_t;
-#endif /* PACE_TIMER_T */
-
-#ifndef PACE_TIME_T
-#define PACE_TIME_T
- typedef time_t pace_time_t;
-#endif /* PACE_TIME_T */
-
-#ifndef PACE_TM
-#define PACE_TM
- typedef struct tm pace_tm;
-#endif /* PACE_TM */
-
-#ifndef PACE_TIMESPEC
-#define PACE_TIMESPEC
- typedef struct timespec pace_timespec;
-#endif /* PACE_TIMESPEC */
-
-#ifndef PACE_ITIMERSPEC
-#define PACE_ITIMERSPEC
- typedef struct itimerspec pace_itimerspec;
-#endif /* PACE_ITIMERSPEC */
-
-#ifndef PACE_SIGEVENT
-#define PACE_SIGEVENT
- typedef struct sigevent pace_sigevent;
-#endif /* PACE_SIGEVENT */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_TIME_H_VXWORKS */
diff --git a/PACE/pace/vxworks/time.inl b/PACE/pace/vxworks/time.inl
deleted file mode 100644
index a2ed9715823..00000000000
--- a/PACE/pace/vxworks/time.inl
+++ /dev/null
@@ -1,296 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/time.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/errno.h"
-#include "pace/signal.h"
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_asctime (const pace_tm * time)
-{
- PACE_TRACE("pace_asctime");
-
- return asctime (time);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-char *
-pace_asctime_r (const pace_tm * time, char * buf)
-{
- /*VxWorks 5.3 seems to have POSIX.4 Draft 9 versions of this as well */
- size_t buflen = 26;
-
- PACE_TRACE("pace_asctime_r");
-
- if (asctime_r (time, buf, & buflen) != 0)
- return (char*) 0;
- return buf;
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_clock_t
-pace_clock (void)
-{
- PACE_TRACE("pace_clock");
-
- return clock ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-double
-pace_difftime (pace_time_t time1, pace_time_t time2)
-{
- PACE_TRACE("pace_difftime");
-
- return difftime (time1, time2);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_clock_getres (pace_clockid_t clock_id,
- pace_timespec * res)
-{
- PACE_TRACE("pace_clock_getres");
-
- return clock_getres (clock_id, res);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_clock_gettime (pace_clockid_t clock_id,
- pace_timespec * tp)
-{
- PACE_TRACE("pace_clock_gettime");
-
- return clock_gettime (clock_id, tp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_clock_settime (pace_clockid_t clock_id,
- const pace_timespec * tp)
-{
- PACE_TRACE("pace_clock_settime");
-
- return clock_settime (clock_id, PACE_NONCONST_ARG_CAST (struct timespec *) tp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_ctime (const pace_time_t * clock)
-{
- PACE_TRACE("pace_ctime");
-
- return ctime (clock);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-char *
-pace_ctime_r (const pace_time_t * clock, char * buf)
-{
- size_t buflen = 26;
-
- PACE_TRACE("pace_ctime_r");
-
- return ctime_r (clock, buf, & buflen);
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-pace_tm *
-pace_gmtime (const pace_time_t * clock)
-{
- PACE_TRACE("pace_gmtime");
-
- return gmtime (clock);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-pace_tm *
-pace_gmtime_r (const pace_time_t * clock, pace_tm * result)
-{
- PACE_TRACE("pace_gmtime_r");
-
- /* VxWorks 5.3 apparently has POSIX.4 Draft 9 versions of these */
- if (gmtime_r (clock, result) != 0)
- return (pace_tm*)0;
- return result;
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-pace_tm *
-pace_localtime (const pace_time_t * clock)
-{
- PACE_TRACE("pace_localtime");
-
- return localtime (clock);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-pace_tm *
-pace_localtime_r (const pace_time_t * clock, pace_tm * result)
-{
- PACE_TRACE("pace_localtime_r");
-
- /* VxWorks 5.3 apparently has POSIX.4 Draft 9 versions of these */
- if (localtime_r (clock, result) != 0)
- return (pace_tm*)0;
- return result;
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-time_t
-pace_mktime (pace_tm * timeptr)
-{
- PACE_TRACE("pace_mktime");
-
- return mktime (timeptr);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_nanosleep (const pace_timespec * rqtp,
- pace_timespec * rmtp)
-{
- PACE_TRACE("pace_nanosleep");
-
- return nanosleep (PACE_NONCONST_ARG_CAST (struct timespec *) rqtp, rmtp);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-size_t
-pace_strftime (char *s, pace_size_t maxsize,
- const char *format,
- const pace_tm *timeptr)
-{
- PACE_TRACE("pace_strftime");
-
- return strftime (s, maxsize, format, timeptr);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-time_t
-pace_time (pace_time_t * tloc)
-{
- PACE_TRACE("pace_time");
-
- return time (tloc);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_create (pace_clockid_t clock_id,
- pace_sigevent * evp,
- pace_timer_t *timerid)
-{
- PACE_TRACE("pace_timer_create");
-
- return timer_create (clock_id, evp, timerid);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_delete (pace_timer_t timerid)
-{
- PACE_TRACE("pace_timer_delete");
-
- return timer_delete (timerid);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_getoverrun (pace_timer_t timerid)
-{
- PACE_TRACE("pace_timer_getoverrun");
-
- return timer_getoverrun (timerid);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_gettime (pace_timer_t timerid,
- pace_itimerspec * value)
-{
- PACE_TRACE("pace_timer_gettime");
-
- return timer_gettime (timerid, value);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_settime (pace_timer_t timerid,
- int flags,
- const pace_itimerspec * value,
- pace_itimerspec * ovalue)
-{
- PACE_TRACE("pace_timer_settime");
-
- return timer_settime (timerid, flags, PACE_NONCONST_ARG_CAST (struct itimerspec *) value, ovalue);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_tzset ()
-{
- PACE_TRACE("pace_tzset");
-
- PACE_ERRNO_NO_SUPPORT ();
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
diff --git a/PACE/pace/vxworks/times.c b/PACE/pace/vxworks/times.c
deleted file mode 100644
index 51b4dc90dc7..00000000000
--- a/PACE/pace/vxworks/times.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/times.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/sys/times.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/times.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/times.h b/PACE/pace/vxworks/times.h
deleted file mode 100644
index d2ae481355e..00000000000
--- a/PACE/pace/vxworks/times.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/times.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_TIMES_H_VXWORKS
-#define PACE_SYS_TIMES_H_VXWORKS
-
-#include <sys/times.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_CLOCK_T
-#define PACE_CLOCK_T
-typedef int pace_clock_t;
-#endif /* PACE_CLOCK_T */
-
-#ifndef PACE_TMS
-#define PACE_TMS
-typedef struct tms pace_tms;
-#endif /* PACE_TMS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TIMES_H_VXWORKS */
diff --git a/PACE/pace/vxworks/times.inl b/PACE/pace/vxworks/times.inl
deleted file mode 100644
index c571dd8a2de..00000000000
--- a/PACE/pace/vxworks/times.inl
+++ /dev/null
@@ -1,26 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/times.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pace_clock_t
-pace_times (pace_tms * buffer)
-{
- PACE_TRACE("pace_times");
-
- PACE_UNUSED_ARG(buffer);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
diff --git a/PACE/pace/vxworks/types.h b/PACE/pace/vxworks/types.h
deleted file mode 100644
index dbcdcf7ce63..00000000000
--- a/PACE/pace/vxworks/types.h
+++ /dev/null
@@ -1,261 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/types.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#include <sys/types.h>
-#include <sched.h>
-#include <semLib.h>
-
-#ifndef PACE_SYS_TYPES_H_VXWORKS
-#define PACE_SYS_TYPES_H_VXWORKS
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PTHREAD_MAX_PRIORITY 255
-#define PTHREAD_MIN_PRIORITY 0
-
-#define MAX_CLEAN_RTN 20
-#define MAX_ONCE_ENTRY 100
-
-#define JOIN_NORMAL 0
-#define JOIN_PENDING 1
-#define JOIN_TERMINATED 2
-#define JOIN_DETATCHED 3
-
-/* This needs to be pretty big for VxWorks according to ACE */
-#define PTHREAD_DEFAULT_STACK_SIZE 64000
-
-/* detach */
-#define PTHREAD_CREATE_DETACHED 0x40 /* = THR_DETACHED */
-#define PTHREAD_CREATE_JOINABLE 0
-/* scope */
-#define PTHREAD_SCOPE_SYSTEM 0x01 /* = THR_BOUND */
-#define PTHREAD_SCOPE_PROCESS 0
-
-/* inherit */
-#define PTHREAD_INHERIT_SCHED 1
-#define PTHREAD_EXPLICIT_SCHED 0
-
-/*
- * Value of process-shared attribute
- */
-#define PTHREAD_PROCESS_SHARED 1 /* = USYNC_PROCESS */
-#define PTHREAD_PROCESS_PRIVATE 0 /* = USYNC_THREAD */
-#define DEFAULT_TYPE PTHREAD_PROCESS_PRIVATE
-
-#define PTHREAD_MUTEX_DEFAULT 0x1
-#define PTHREAD_MUTEX_ERRORCHECK 0x2
-#define PTHREAD_MUTEX_NORMAL 0x3
-#define PTHREAD_MUTEX_RECURSIVE 0x4
-
-#define PTHREAD_PRIO_INHERIT 0x10
-#define PTHREAD_PRIO_NONE 0x20
-#define PTHREAD_PRIO_PROTECT 0x30
-
-/*
- * macros - default initializers defined as in synch.h
- * Any change here should be reflected in synch.h.
- */
-
-
-/* cancellation type and state */
-#define PTHREAD_CANCEL_ENABLE 0x00
-#define PTHREAD_CANCEL_DISABLE 0x01
-#define PTHREAD_CANCEL_DEFERRED 0x00
-#define PTHREAD_CANCEL_ASYNCHRONOUS 0x02
-#define PTHREAD_CANCELED -19
-
-#define PTHREAD_MAXNAME 100
-
-
- /* For future upgradeability to wchar */
-#ifndef PACE_TCHAR
-#define PACE_TCHAR
- typedef char pace_tchar;
-#endif /* PACE_TCHAR */
-
-#ifndef PACE_HANDLE
- typedef int PACE_HANDLE;
-#endif /* PACE_HANDLE */
-
-#ifndef PACE_INVALID_HANDLE
-#define PACE_INVALID_HANDLE -1
-#endif /* PACE_INVALID_HANDLE */
-
-#ifndef PACE_DEV_T
-#define PACE_DEV_T
- typedef dev_t pace_dev_t;
-#endif /* PACE_DEV_T */
-
-#ifndef PACE_GID_T
-#define PACE_GID_T
- typedef gid_t pace_gid_t;
-#endif /* PACE_GID_T */
-
-#ifndef PACE_INO_T
-#define PACE_INO_T
- typedef ino_t pace_ino_t;
-#endif /* PACE_INO_T */
-
-#ifndef PACE_MODE_T
-#define PACE_MODE_T
- typedef mode_t pace_mode_t;
-#endif /* PACE_MODE_T */
-
-#ifndef PACE_NLINK_T
-#define PACE_NLINK_T
- typedef nlink_t pace_nlink_t;
-#endif /* PACE_NLINK_T */
-
-#ifndef PACE_OFF_T
-#define PACE_OFF_T
- typedef off_t pace_off_t;
-#endif /* PACE_OFF_T */
-
-#ifndef PACE_PID_T
-#define PACE_PID_T
- typedef pid_t pace_pid_t;
-#endif /* PACE_PID_T */
-
-#ifndef PACE_PTHREAD_ATTR_T
-#define PACE_PTHREAD_ATTR_T
-
- typedef struct _PTHREAD_ATTR
- {
- int stacksize;
- char name[PTHREAD_MAXNAME]; /*the name */
- struct sched_param schedule; /* priority */
- int scope; /* options */
- int policy; /* schedule policy */
- int dstate; /* detached state */
- } * pace_pthread_attr_t;
-#endif /* PACE_PTHREAD_ATTR_T */
-
-#ifndef PACE_PTHREAD_CONDATTR_T
-#define PACE_PTHREAD_CONDATTR_T
- typedef int pace_pthread_condattr_t;
-#endif /* PACE_PTHREAD_CONDATTR_T */
-
-#ifndef PACE_PTHREAD_COND_T
-#define PACE_PTHREAD_COND_T
- typedef SEM_ID pace_pthread_cond_t;
-#endif /* PACE_PTHREAD_COND_T */
-
-#ifndef PACE_PTHREAD_KEY_T
-#define PACE_PTHREAD_KEY_T
- typedef int pace_pthread_key_t;
-#endif /* PACE_PTHREAD_KEY_T */
-
-#ifndef PACE_PTHREAD_MUTEXATTR_T
-#define PACE_PTHREAD_MUTEXATTR_T
-
- typedef struct _PTHREAD_MUX_ATTR
- {
- int protocol; /* priority inheritance */
- int shared; /* system or process */
- int type; /* mutex type */
- } * pace_pthread_mutexattr_t;
-#endif /* PACE_PTHREAD_MUTEXATTR_T */
-
-#ifndef PACE_PTHREAD_MUTEX_T
-#define PACE_PTHREAD_MUTEX_T
- typedef SEM_ID pace_pthread_mutex_t;
-#endif /* PACE_PTHREAD_MUTEX_T */
-
-#ifndef PACE_PTHREAD_ONCE_T
-#define PACE_PTHREAD_ONCE_T
- typedef int pace_pthread_once_t;
-# define PTHREAD_ONCE_INIT 0
-#endif /* PACE_PTHREAD_ONCE_T */
-
-#ifndef PACE_PTHREAD_T
-#define PACE_PTHREAD_T
-# define PTHREAD_KEYS_MAX 100
-# define _USER_SPARE4 spare4
- typedef struct _FUNC_HANDLE
- {
- void (*routine)(void *);
- void * args;
- } funcHandle;
-
- typedef struct _ONCE_FUNC
- {
- int once_ctl;
- void (*init_routine)(void);
- } pthread_once_e;
-
- typedef struct _PTHREAD_T
- {
- unsigned int tid;
- funcHandle cleanupRtn[MAX_CLEAN_RTN];
- int rtnCount;
- pthread_once_e onceList[MAX_ONCE_ENTRY];
- int onceCount; /* once variable count */
- int stateflag; /* cancel state */
- int canceltype; /* cancel type */
- int detachflag; /* detached state */
- int joinstate; /* join state */
- SEM_ID joinSem; /* join semaphore */
- void * joinvalue; /* pass value */
- struct _PTHREAD_T * jointhread; /* the calling thread */
- void * keyvaluelist[PTHREAD_KEYS_MAX];
- } * pace_pthread_t;
-#endif /* PACE_PTHREAD_T */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_SSIZE_T
-#define PACE_SSIZE_T
- typedef ssize_t pace_ssize_t;
-#endif /* PACE_SSIZE_T */
-
-#ifndef PACE_UID_T
-#define PACE_UID_T
- typedef uid_t pace_uid_t;
-#endif /* PACE_UID_T */
-
-#ifndef PACE_PTHREAD_QUEUE_T
-#define PACE_PTHREAD_QUEUE_T
- struct _PTHREAD_QUEUE_ENTRY
- {
- int status;
- pace_pthread_t pthread;
- struct _PTHREAD_QUEUE_ENTRY * next;
- };
-
- typedef struct _PTHREAD_QUEUE_ENTRY pthread_q_entry;
-
-# define PTHEAD_QUEUE_MAX_LEN 100
-
- struct _PTHREAD_KEY_ENTRY
- {
- int index;
- int valid;
- void (*destructor)(void*);
- };
-
- typedef struct _PTHREAD_KEY_ENTRY pthread_key_entry;
-#endif /* PACE_PTHREAD_QUEUE_T */
-
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TYPES_H_VXWORKS */
diff --git a/PACE/pace/vxworks/unistd.c b/PACE/pace/vxworks/unistd.c
deleted file mode 100644
index 16234ef66fb..00000000000
--- a/PACE/pace/vxworks/unistd.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/unistd.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/unistd.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/unistd.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/unistd.h b/PACE/pace/vxworks/unistd.h
deleted file mode 100644
index 19ca710618f..00000000000
--- a/PACE/pace/vxworks/unistd.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/unistd.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_UNISTD_H_VXWORKS
-#define PACE_UNISTD_H_VXWORKS
-
-#include "pace/sys/types.h"
-#include <unistd.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_F_OK F_OK
-#ifndef PACE_NULL
-# define PACE_NULL NULL
-#endif /* PACE_NULL */
-#define PACE_R_OK R_OK
-#define PACE_SEEK_CUR SEEK_CUR
-#define PACE_SEEK_END SEEK_END
-#define PACE_SEEK_SET SEEK_SET
-#define PACE_STDERR_FILENO STDERR_FILENO
-#define PACE_STDIN_FILENO STDIN_FILENO
-#define PACE_STDOUT_FILENO STDOUT_FILENO
-#define PACE_W_OK W_OK
-#define PACE_X_OK X_OK
-
-/* _POSIX _PC _SC Macros need to go here */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
-typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_SSIZE_T
-#define PACE_SSIZE_T
-typedef ssize_t pace_ssize_t;
-#endif /* PACE_SSIZE_T */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_UNISTD_H_VXWORKS */
diff --git a/PACE/pace/vxworks/unistd.inl b/PACE/pace/vxworks/unistd.inl
deleted file mode 100644
index eb4c1ac675f..00000000000
--- a/PACE/pace/vxworks/unistd.inl
+++ /dev/null
@@ -1,601 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/unistd.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include <unistd.h>
-#include <stdarg.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-void
-pace__exit (int status)
-{
- PACE_TRACE("pace__exit");
-
- exit (status);
- return;
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_access (const char * path, int amode)
-{
- PACE_TRACE("pace_access");
-
- PACE_UNUSED_ARG(path);
- PACE_UNUSED_ARG(amode);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-unsigned int
-pace_alarm (unsigned int seconds)
-{
- PACE_TRACE("pace_alarm");
-
- PACE_UNUSED_ARG(seconds);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_chdir (const char * path)
-{
- PACE_TRACE("pace_chdir");
-
- return chdir (PACE_NONCONST_ARG_CAST (char *) path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FA_UOF)
-PACE_INLINE
-int
-pace_chown (const char * path, uid_t owner, pace_gid_t group)
-{
- PACE_TRACE("pace_chown");
-
- PACE_UNUSED_ARG(path);
- PACE_UNUSED_ARG(owner);
- PACE_UNUSED_ARG(group);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FA_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_close (PACE_HANDLE fildes)
-{
- PACE_TRACE("pace_close");
-
- return close (fildes);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-PACE_HANDLE
-pace_dup (PACE_HANDLE fildes)
-{
- PACE_TRACE("pace_dup");
-
- PACE_UNUSED_ARG(fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-PACE_HANDLE
-pace_dup2 (PACE_HANDLE fildes, PACE_HANDLE fildes2)
-{
- PACE_TRACE("pace_dup2");
-
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(fildes2);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-int
-pace_execv (const char * path,
- char * const argv[])
-{
- PACE_TRACE("pace_execv");
-
- PACE_UNUSED_ARG(path);
- PACE_UNUSED_ARG(argv);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
- /* if successful, this operation does NOT return */
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-int
-pace_execve (const char * path,
- char * const argv[],
- char * const envp[])
-{
- PACE_TRACE("pace_execve");
-
- PACE_UNUSED_ARG(path);
- PACE_UNUSED_ARG(argv);
- PACE_UNUSED_ARG(envp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
- /* if successful, this operation does NOT return */
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-int
-pace_execvp (const char * file,
- char * const argv[])
-{
- PACE_TRACE("pace_execvp");
-
- PACE_UNUSED_ARG(file);
- PACE_UNUSED_ARG(argv);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
- /* if successful, this operation does NOT return */
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fdatasync (PACE_HANDLE fildes)
-{
- PACE_TRACE("pace_fdatasync");
-
- PACE_UNUSED_ARG(fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pid_t
-pace_fork ()
-{
- PACE_TRACE("pace_fork");
-
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-long
-pace_fpathconf (PACE_HANDLE fildes, int name)
-{
- PACE_TRACE("pace_fpathconf");
-
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(name);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fsync (PACE_HANDLE fildes)
-{
- PACE_TRACE("pace_fsync");
-
- PACE_UNUSED_ARG(fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_ftruncate (PACE_HANDLE fildes, pace_off_t length)
-{
- PACE_TRACE("pace_ftruncate");
-
- return ftruncate (fildes, length);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-char *
-pace_getcwd (char * buf, size_t size)
-{
- PACE_TRACE("pace_getcwd");
-
- return getcwd (buf, size);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-uid_t
-pace_getegid ()
-{
- PACE_TRACE("pace_getegid");
-
- /* getegid() is not supported: just one user anyway */
- return 0;
-}
-#endif /* PACE_HAS_POSIX_UGR_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-uid_t
-pace_geteuid ()
-{
- PACE_TRACE("pace_geteuid");
-
- /* geteuid() is not supported: just one user anyway */
- return 0;
-}
-#endif /* PACE_HAS_POSIX_UGR_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-int
-pace_getgroups (int gidsetsize, pace_gid_t grouplist[])
-{
- PACE_TRACE("pace_getgroups");
-
- /* getgroups() is not supported: just one user anyway */
- PACE_UNUSED_ARG(gidsetsize);
- PACE_UNUSED_ARG(grouplist);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-uid_t
-pace_getgid ()
-{
- PACE_TRACE("pace_getgid");
-
- /* getgid() is not supported: just one user anyway */
- return 0;
-}
-#endif /* PACE_HAS_POSIX_UGR_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-char*
-pace_getlogin ()
-{
- PACE_TRACE("pace_getlogin");
-
- PACE_ERRNO_NO_SUPPORT_RETURN ((char *) 0);
-}
-#endif /* PACE_HAS_POSIX_UGR_UOF */
-
-#if (PACE_HAS_POSIX_UGR_UOF)
-PACE_INLINE
-int
-pace_getlogin_r (char * name, size_t namesize)
-{
- PACE_TRACE("pace_getlogin_r");
-
- PACE_UNUSED_ARG(name);
- PACE_UNUSED_ARG(namesize);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_UGR_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-pid_t
-pace_getpgrp ()
-{
- PACE_TRACE("pace_getpgrp");
-
- /* getpgrp() is not supported: just one user anyway */
- return 0;
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pid_t
-pace_getpid ()
-{
- PACE_TRACE("pace_getpid");
-
- /* getpid() is not supported: just one user anyway */
- return 0;
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pid_t
-pace_getppid ()
-{
- PACE_TRACE("pace_getppid");
-
- /* getppid() is not supported: just one user anyway */
- return 0;
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-uid_t
-pace_getuid ()
-{
- PACE_TRACE("pace_getuid");
-
- /* getuid() is not supported: just one user anyways */
- return 0;
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_isatty (int fildes)
-{
- PACE_TRACE("pace_isatty");
-
- return isatty (fildes);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_link (const char * existing, const char * new_link)
-{
- PACE_TRACE("pace_link");
-
- PACE_UNUSED_ARG(existing);
- PACE_UNUSED_ARG(new_link);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-pace_off_t
-pace_lseek (PACE_HANDLE fildes, pace_off_t offset, int whence)
-{
- PACE_TRACE("pace_lseek");
-
- return lseek (fildes, offset, whence);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-long
-pace_pathconf (const char * path, int name)
-{
- PACE_TRACE("pace_pathconf");
-
- PACE_UNUSED_ARG(path);
- PACE_UNUSED_ARG(name);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_pause ()
-{
- PACE_TRACE("pace_pause");
-
- return pause ();
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_P_UOF)
-PACE_INLINE
-int
-pace_pipe (PACE_HANDLE fildes[2])
-{
- PACE_TRACE("pace_pipe");
-
- PACE_UNUSED_ARG(fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_P_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-ssize_t
-pace_read (PACE_HANDLE fildes, void * buf, size_t nbyte)
-{
- PACE_TRACE("pace_read");
-
- return read (fildes, PACE_NONCONST_ARG_CAST (char *) buf, nbyte);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_rmdir (const char * path)
-{
- PACE_TRACE("pace_rmdir");
-
- return rmdir (PACE_NONCONST_ARG_CAST (char *) path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-int
-pace_setgid (pace_gid_t gid)
-{
- PACE_TRACE("pace_setgid");
-
- /* setuid() is not supported: just one user anyways */
- return 0;
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_JC_UOF)
-PACE_INLINE
-int
-pace_setpgid (pid_t pid, pid_t pgid)
-{
- PACE_TRACE("pace_setpgid");
-
- /* setpgid() is not supported: just one user anyways */
- return 0;
-}
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-pid_t
-pace_setsid ()
-{
- PACE_TRACE("pace_setsid");
-
- /* setsid() is not supported: just one user anyways */
- return 0;
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-int
-pace_setuid (uid_t uid)
-{
- PACE_TRACE("pace_setuid");
-
- /* setuid() is not supported: just one user anyways */
- return 0;
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-unsigned int
-pace_sleep (unsigned int seconds)
-{
- struct timespec rqtp;
- /* Initializer doesn't work with Green Hills 1.8.7 */
-
- PACE_TRACE("pace_sleep");
-
- rqtp.tv_sec = seconds;
- rqtp.tv_nsec = 0L;
- return nanosleep (&rqtp, 0);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_SP_UOF)
-PACE_INLINE
-long
-pace_sysconf (int name)
-{
- PACE_TRACE("pace_sysconf");
-
- PACE_UNUSED_ARG(name);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SP_UOF */
-
-#if (PACE_HAS_POSIX_JC_UOF)
-PACE_INLINE
-pid_t
-pace_tcgetpgrp (PACE_HANDLE fildes)
-{
- PACE_TRACE("pace_tcgetpgrp");
-
- PACE_UNUSED_ARG(fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
-#if (PACE_HAS_POSIX_JC_UOF)
-PACE_INLINE
-int
-pace_tcsetpgrp (PACE_HANDLE fildes, pid_t pgrp_id)
-{
- PACE_TRACE("pace_tcsetpgrp");
-
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(pgrp_id);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-char *
-pace_ttyname (PACE_HANDLE fildes)
-{
- PACE_TRACE("pace_ttyname");
-
- PACE_UNUSED_ARG(fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN ((char *) 0);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_ttyname_r (PACE_HANDLE fildes,
- char * name,
- size_t namesize)
-{
- PACE_TRACE("pace_ttyname_r");
-
- PACE_UNUSED_ARG(fildes);
- PACE_UNUSED_ARG(name);
- PACE_UNUSED_ARG(namesize);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_unlink (const char * path)
-{
- PACE_TRACE("pace_unlink");
-
- return unlink (PACE_NONCONST_ARG_CAST (char *) path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-ssize_t
-pace_write (PACE_HANDLE fildes, const void * buf, size_t nbyte)
-{
- PACE_TRACE("pace_write");
-
- return write (fildes, PACE_NONCONST_ARG_CAST (char *) buf, nbyte);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
diff --git a/PACE/pace/vxworks/utime.c b/PACE/pace/vxworks/utime.c
deleted file mode 100644
index fc770964337..00000000000
--- a/PACE/pace/vxworks/utime.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/utime.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/utime.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/utime.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/utime.h b/PACE/pace/vxworks/utime.h
deleted file mode 100644
index 144ca29d567..00000000000
--- a/PACE/pace/vxworks/utime.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/utime.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_UTIME_H_VXWORKS
-#define PACE_UTIME_H_VXWORKS
-
-#include "pace/sys/types.h"
-#include <utime.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_UTIMBUF
-#define PACE_UTIMBUF
-typedef struct utimbuf pace_utimbuf;
-#endif /* PACE_UTIMBUF */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_UTIME_H_VXWORKS */
diff --git a/PACE/pace/vxworks/utime.inl b/PACE/pace/vxworks/utime.inl
deleted file mode 100644
index 28c38097d68..00000000000
--- a/PACE/pace/vxworks/utime.inl
+++ /dev/null
@@ -1,27 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/utime.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_utime (const char * path,
- const pace_utimbuf * times)
-{
- PACE_TRACE("pace_utime");
-
- return utime (PACE_NONCONST_ARG_CAST (char *) path,
- PACE_NONCONST_ARG_CAST (pace_utimbuf *) times);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/vxworks/utsname.c b/PACE/pace/vxworks/utsname.c
deleted file mode 100644
index be5b4a33584..00000000000
--- a/PACE/pace/vxworks/utsname.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/utsname.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/sys/utsname.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/utsname.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/utsname.h b/PACE/pace/vxworks/utsname.h
deleted file mode 100644
index 6773129303a..00000000000
--- a/PACE/pace/vxworks/utsname.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/utsname.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_UTSNAME_H_VXWORKS
-#define PACE_SYS_UTSNAME_H_VXWORKS
-
-#include "pace/stddef.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_UTSNAME
-#define PACE_UTSNAME
-# if !defined (SYS_NMLN)
-# define SYS_NMLN 257
-# endif /* SYS_NMLN */
-# if !defined (_SYS_NMLN)
-# define _SYS_NMLN SYS_NMLN
-# endif /* _SYS_NMLN */
-typedef struct
-{
- pace_tchar sysname[_SYS_NMLN];
- pace_tchar nodename[_SYS_NMLN];
- pace_tchar release[_SYS_NMLN];
- pace_tchar version[_SYS_NMLN];
- pace_tchar machine[_SYS_NMLN];
-} pace_utsname;
-#endif /* PACE_UTSNAME */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_UTSNAME_H_VXWORKS */
diff --git a/PACE/pace/vxworks/utsname.inl b/PACE/pace/vxworks/utsname.inl
deleted file mode 100644
index 0925ebfef1f..00000000000
--- a/PACE/pace/vxworks/utsname.inl
+++ /dev/null
@@ -1,40 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/utsname.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/string.h"
-#include <hostLib.h>
-#include <sysLib.h>
-
-#if (PACE_HAS_POSIX_SP_UOF)
-PACE_INLINE
-int
-pace_uname (pace_utsname * name)
-{
- size_t maxnamelen = sizeof name->nodename;
-
- PACE_TRACE("pace_uname");
-
- pace_strcpy (name->sysname, "VxWorks");
-#if (PACE_VXWORKS == 531)
- pace_strcpy (name->release, "5.3.1");
-#elif (PACE_VXWORKS == 540)
- pace_strcpy (name->release, "5.4.0");
-#endif /* PACE_VXWORKS != 531 */
- pace_strcpy (name->version, sysBspRev ());
- pace_strcpy (name->machine, sysModel ());
-
- return gethostname (name->nodename, maxnamelen);
-}
-#endif /* PACE_HAS_POSIX_SP_UOF */
diff --git a/PACE/pace/vxworks/wait.c b/PACE/pace/vxworks/wait.c
deleted file mode 100644
index 2be98112c5f..00000000000
--- a/PACE/pace/vxworks/wait.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/wait.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/sys/wait.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/vxworks/wait.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/vxworks/wait.h b/PACE/pace/vxworks/wait.h
deleted file mode 100644
index 1e588452e1f..00000000000
--- a/PACE/pace/vxworks/wait.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/wait.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_WAIT_H_VXWORKS
-#define PACE_WAIT_H_VXWORKS
-
-#include "pace/sys/types.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_WEXITSTATUS WEXITSTATUS
-#define PACE_WIFEXITED WIFEXITED
-#define PACE_WIFSIGNALED WISIGNALED
-#define PACE_WIFSTOPPED WIFSTOPPED
-#define PACE_WNOHANG WNOHANG
-#define PACE_WSTOPSIG WSTOPSIG
-#define PACE_WTERMSIG WTERMSIG
-#define PACE_WUNTRACED WUNTRACED
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_WAIT_H_VXWORKS */
diff --git a/PACE/pace/vxworks/wait.inl b/PACE/pace/vxworks/wait.inl
deleted file mode 100644
index 1aee5137b7f..00000000000
--- a/PACE/pace/vxworks/wait.inl
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/vxworks/wait.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include <sys/wait.h>
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pid_t
-pace_wait (int * statloc)
-{
- PACE_TRACE("pace_wait");
-
- PACE_UNUSED_ARG (statloc);
- PACE_ERRNO_NO_SUPPORT_RETURN (0);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pid_t
-pace_waitpid (pid_t pid, int * statloc, int options)
-{
- PACE_TRACE("pace_waitpid");
-
- PACE_UNUSED_ARG (pid);
- PACE_UNUSED_ARG (statloc);
- PACE_UNUSED_ARG (options);
- PACE_ERRNO_NO_SUPPORT_RETURN (0);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
diff --git a/PACE/pace/win32/README b/PACE/pace/win32/README
deleted file mode 100644
index d46fa4c9dc3..00000000000
--- a/PACE/pace/win32/README
+++ /dev/null
@@ -1 +0,0 @@
-WIN32 dir
diff --git a/PACE/pace/win32/TODO b/PACE/pace/win32/TODO
deleted file mode 100644
index 659d8656d19..00000000000
--- a/PACE/pace/win32/TODO
+++ /dev/null
@@ -1,29 +0,0 @@
-----------------------------------------------------------------------
-
- * Emulation:
- - pthreads
- - dirent
-
- * ACE_wrappers/PACE/docs/PACE_POSIX_support.txt:
-
- Update this file as emulation occurs.
-
- * Build ACE with ACE_HAS_PACE
-
-----------------------------------------------------------------------
-
- * pthreads: Do we need to define this for win32?
-
- OS.cpp:2769 => PACE_PTHREAD_STACK_MIN
- OS.cpp:2798 => PACE_PTHREAD_CREATE_JOINABLE
- OS.cpp:2801 => PACE_PTHREAD_CREATE_DETACHED
-
-----------------------------------------------------------------------
-
- * get rid of the temp macros / junk in config/constants.h
-
-----------------------------------------------------------------------
-
- * add MFC support to pthread.c
-
-----------------------------------------------------------------------
diff --git a/PACE/pace/win32/aio.c b/PACE/pace/win32/aio.c
deleted file mode 100644
index 25c7427877e..00000000000
--- a/PACE/pace/win32/aio.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/aio.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/aio.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/aio.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/aio.h b/PACE/pace/win32/aio.h
deleted file mode 100644
index 764372de642..00000000000
--- a/PACE/pace/win32/aio.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/aio.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_AIO_H_WIN32
-#define PACE_AIO_H_WIN32
-
-#include "pace/time.h"
-#include "pace/signal.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_AIO_ALLDONE AIO_ALLDONE
-#define PACE_AIO_CANCELED AIO_CANCELED
-#define PACE_AIO_NOCANCELED AIO_NOTCANCELED
-#define PACE_LIO_NOP LIO_NOP
-#define PACE_LIO_NOWAIT LIO_NOWAIT
-#define PACE_LIO_READ LIO_READ
-#define PACE_LIO_WAIT LIO_WAIT
-#define PACE_LIO_WRITE LIO_WRITE
-
-#ifndef PACE_AIOCB
-#define PACE_AIOCB
-typedef struct aiocb pace_aiocb;
-#endif /* PACE_AIOCB */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_AIO_H_WIN32 */
diff --git a/PACE/pace/win32/aio.inl b/PACE/pace/win32/aio.inl
deleted file mode 100644
index 1c1335857f0..00000000000
--- a/PACE/pace/win32/aio.inl
+++ /dev/null
@@ -1,106 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/aio.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_cancel (PACE_HANDLE fildes, pace_aiocb * aiocbp)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (aiocbp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_error (const pace_aiocb * aiocbp)
-{
- PACE_UNUSED_ARG (aiocbp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_fsync (int op, pace_aiocb * aiocbp)
-{
- PACE_UNUSED_ARG (op);
- PACE_UNUSED_ARG (aiocbp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_read (pace_aiocb * aiocbp)
-{
- PACE_UNUSED_ARG (aiocbp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_return (pace_aiocb * aiocbp)
-{
- PACE_UNUSED_ARG (aiocbp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_suspend (const pace_aiocb * const list[],
- int nent,
- const pace_timespec * timeout)
-{
- PACE_UNUSED_ARG (list);
- PACE_UNUSED_ARG (nent);
- PACE_UNUSED_ARG (timeout);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_aio_write (pace_aiocb * aiocbp)
-{
- PACE_UNUSED_ARG (aiocbp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_lio_listio (int mode,
- pace_aiocb * const list[],
- int nent,
- pace_sigevent * sig)
-{
- PACE_UNUSED_ARG (mode);
- PACE_UNUSED_ARG (list);
- PACE_UNUSED_ARG (nent);
- PACE_UNUSED_ARG (sig);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/win32/assert.c b/PACE/pace/win32/assert.c
deleted file mode 100644
index 7620a619828..00000000000
--- a/PACE/pace/win32/assert.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/assert.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/assert.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/assert.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/assert.h b/PACE/pace/win32/assert.h
deleted file mode 100644
index af0c8dac758..00000000000
--- a/PACE/pace/win32/assert.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/assert.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#ifndef PACE_ASSERT_H_WIN32
-#define PACE_ASSERT_H_WIN32
-
-#include <assert.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_ASSERT_H_WIN32 */
diff --git a/PACE/pace/win32/assert.inl b/PACE/pace/win32/assert.inl
deleted file mode 100644
index 00796cb2f26..00000000000
--- a/PACE/pace/win32/assert.inl
+++ /dev/null
@@ -1,14 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/assert.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
diff --git a/PACE/pace/win32/ctype.c b/PACE/pace/win32/ctype.c
deleted file mode 100644
index dd3be4098b0..00000000000
--- a/PACE/pace/win32/ctype.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/ctype.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/ctype.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/ctype.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/ctype.h b/PACE/pace/win32/ctype.h
deleted file mode 100644
index 9025f3de909..00000000000
--- a/PACE/pace/win32/ctype.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/ctype.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_CTYPE_H_WIN32
-#define PACE_CTYPE_H_WIN32
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_CTYPE_H_WIN32 */
diff --git a/PACE/pace/win32/ctype.inl b/PACE/pace/win32/ctype.inl
deleted file mode 100644
index 60f692f2c12..00000000000
--- a/PACE/pace/win32/ctype.inl
+++ /dev/null
@@ -1,133 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/ctype.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <ctype.h>
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isalnum (int c)
-{
- return isalnum (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isalpha (int c)
-{
- return isalpha (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_iscntrl (int c)
-{
- return iscntrl (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isdigit (int c)
-{
- return isdigit (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isgraph (int c)
-{
- return isgraph (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_islower (int c)
-{
- return islower (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isprint (int c)
-{
- return isprint (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_ispunct (int c)
-{
- return ispunct (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isspace (int c)
-{
- return isspace (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isupper (int c)
-{
- return isupper (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_isxdigit (int c)
-{
- return isxdigit (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_tolower (int c)
-{
- return tolower (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_toupper (int c)
-{
- return toupper (c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
diff --git a/PACE/pace/win32/dirent.c b/PACE/pace/win32/dirent.c
deleted file mode 100644
index b67213012f0..00000000000
--- a/PACE/pace/win32/dirent.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/dirent.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/dirent.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/dirent.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-int
-closedir (PACE_DIR * dirp)
-{
- if (dirp->current_handle_ != (void*)0)
- {
- FindClose (dirp->current_handle_);
- }
- dirp->current_handle_ = (void*)0;
- dirp->started_reading_ = 0;
- return 1;
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_DIR *
-opendir (const char * dirname)
-{
- PACE_DIR * dirp = (PACE_DIR*) pace_malloc (sizeof (PACE_DIR));
- const pace_size_t dir_size = pace_strlen (dirname) + 1;
- dirp->directory_name_ = (char*) pace_malloc (dir_size);
- pace_strcpy (dirp->directory_name_, dirname);
- dirp->current_handle_ = PACE_INVALID_HANDLE;
- dirp->started_reading_ = 0;
- return dirp;
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-pace_dirent *
-readdir (PACE_DIR * dirp)
-{
- if (dirp->started_reading_)
- {
- dirp->current_handle_ = FindFirstFile (dirp->directory_name_,
- &(dirp->fdata_));
- if (dirp->current_handle_ != PACE_INVALID_HANDLE)
- {
- FindClose (dirp->current_handle_);
- dirp->current_handle_ = PACE_INVALID_HANDLE;
- }
- else /* Skip "." and ".." */
- {
- int retval = 1;
- while (*(dirp->fdata_.cFileName) == '.'
- && retval
- && dirp->fdata_.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
- {
- retval = FindNextFile (dirp->current_handle_,
- &(dirp->fdata_));
- }
- if (retval == 0)
- {
- dirp->current_handle_ = PACE_INVALID_HANDLE;
- }
- }
- dirp->started_reading_ = 1;
- }
- else
- {
- int retval = FindNextFile (dirp->current_handle_,
- &(dirp->fdata_));
- if (retval == 0)
- {
- dirp->current_handle_ = PACE_INVALID_HANDLE;
- }
- }
-
- if (dirp->current_handle_ != PACE_INVALID_HANDLE)
- {
- dirp->dirent_.d_name = dirp->fdata_.cFileName;
- return &(dirp->dirent_);
- }
- else
- {
- return (pace_dirent*)0;
- }
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/win32/dirent.h b/PACE/pace/win32/dirent.h
deleted file mode 100644
index 9a379a35a12..00000000000
--- a/PACE/pace/win32/dirent.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/dirent.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_DIRENT_H_WIN32
-#define PACE_DIRENT_H_WIN32
-
-#include "pace/sys/types.h"
-#include "windows.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_DIRENT_T
-#define PACE_DIRENT_T
-
- typedef struct /* dirent */ {
- unsigned short d_ino;
- unsigned short d_off;
- unsigned short d_reclen;
- char * d_name;
- } pace_dirent;
-
-#endif /* PACE_DIRENT_T */
-
-#ifndef PACE_DIR_T
-#define PACE_DIR_T
-
- typedef WIN32_FIND_DATA PACE_TEXT_WIN32_FIND_DATA;
-
- typedef struct /* DIR */ {
- char * directory_name_;
- // The name of the directory we are looking into
- HANDLE current_handle_;
- // Remember the handle between calls.
- pace_dirent dirent_;
- // The struct for the results
- PACE_TEXT_WIN32_FIND_DATA fdata_;
- // The struct for intermediate results.
- int started_reading_;
- // A flag to remember if we started reading already.
- } PACE_DIR;
-
-#endif /* PACE_DIR_T */
-
-#if (PACE_HAS_POSIX_FS_UOF)
- int closedir (PACE_DIR * dirp);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
- PACE_DIR * opendir (const char * dirname);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
- pace_dirent * readdir (PACE_DIR * dirp);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_DIRENT_H_WIN32 */
diff --git a/PACE/pace/win32/dirent.inl b/PACE/pace/win32/dirent.inl
deleted file mode 100644
index edf5071c55d..00000000000
--- a/PACE/pace/win32/dirent.inl
+++ /dev/null
@@ -1,68 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/dirent.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/string.h"
-#include "pace/stdlib.h"
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_closedir (PACE_DIR * dirp)
-{
- return closedir (dirp);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-PACE_DIR *
-pace_opendir (const char * dirname)
-{
- return opendir (dirname);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-pace_dirent *
-pace_readdir (PACE_DIR * dirp)
-{
- return readdir (dirp);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-int
-pace_readdir_r (PACE_DIR * dirp,
- pace_dirent * entry,
- pace_dirent ** result)
-{
- PACE_UNUSED_ARG (dirp);
- PACE_UNUSED_ARG (entry);
- PACE_UNUSED_ARG (result);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-void
-pace_rewinddir (PACE_DIR * dirp)
-{
- PACE_UNUSED_ARG (dirp);
- PACE_ERRNO_NO_SUPPORT ();
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/win32/errno.h b/PACE/pace/win32/errno.h
deleted file mode 100644
index 7e35b76b566..00000000000
--- a/PACE/pace/win32/errno.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* $Id$
-
-* ============================================================================
-*
-* = LIBRARY
-* pace
-*
-* = FILENAME
-* pace/win32/errno.h
-*
-* = AUTHOR
-* John Heitmann
-*
-* =========================================================================== */
-
-
-#ifndef PACE_ERRNO_H_WIN32
-#define PACE_ERRNO_H_WIN32
-
-#include <errno.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if !defined (ENOSYS)
-# define ENOSYS EFAULT /* Operation not supported or unknown error. */
-#endif /* !ENOSYS */
-
-#if !defined (ENOTSUP)
-# define ENOTSUP ENOSYS /* Operation not supported. */
-#endif /* !ENOTSUP */
-
-#define PACE_E2BIG E2BIG
-#define PACE_EACCES EACCES
-#define PACE_EAGAIN EAGAIN
-#define PACE_EBADF EBADF
-#define PACE_EBADMSG
-#define PACE_EBUSY EBUSY
-#define PACE_ECANCELED ECANCELED
-#define PACE_ECHILD ECHILD
-#define PACE_EDEADLK EDEADLK
-#define PACE_EDOM EDOM
-#define PACE_EEXIST EEXIST
-#define PACE_EFAULT EFAULT
-#define PACE_EFBIG EFBIG
-#define PACE_EINPROGRESS EINPROGRESS
-#define PACE_EINTR EINTR
-#define PACE_EINVAL EINVAL
-#define PACE_EIO EIO
-#define PACE_EISDIR EISDIR
-#define PACE_EMFILE EMFILE
-#define PACE_EMLINK EMLINK
-#define PACE_EMSGSIZE EMSGSIZE
-#define PACE_EENAMETOOLONG ENAMETOOLONG
-#define PACE_ENFILE ENFILE
-#define PACE_ENODEV ENODEV
-#define PACE_ENOENT ENOENT
-#define PACE_ENOEXEC ENOEXEC
-#define PACE_ENOLCK ENOLCK
-#define PACE_ENOMEM ENOMEM
-#define PACE_ENOSPC ENOSPC
-#define PACE_ENOSYS ENOSYS
-#define PACE_ENOTDIR ENOTDIR
-#define PACE_ENOTEMPTY ENOTEMPTY
-#define PACE_ENOTSUP ENOTSUP
-#define PACE_ENOTTY ENOTTY
-#define PACE_ENXIO ENXIO
-#define PACE_EPERM EPERM
-#define PACE_EPIPE EPIPE
-#define PACE_ERANGE ERANGE
-#define PACE_EROFS EROFS
-#define PACE_ESPIPE ESPIPE
-#define PACE_ESRCH ESRCH
-#define PACE_ETIMEDOUT ETIMEDOUT
-#define PACE_EXDEV EXDEV
-
-#define pace_errno errno
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_ERRNO_H_WIN32 */
diff --git a/PACE/pace/win32/fcntl.c b/PACE/pace/win32/fcntl.c
deleted file mode 100644
index 5fe6e12bfb0..00000000000
--- a/PACE/pace/win32/fcntl.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/fcntl.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/fcntl.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/fcntl.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-#include <windows.h>
-#include <wtypes.h>
-int
-pace_win32_creat (const char * path, pace_mode_t mode)
-{
- /* Emulation is still buggy! DO NOT YET USE! */
-
- DWORD access = GENERIC_READ,
- creation = OPEN_EXISTING,
- flags = 0,
- shared_mode = FILE_SHARE_READ | FILE_SHARE_WRITE;
-
- HANDLE h = (void*)0;
-
- if (PACE_BIT_ENABLED (mode, O_WRONLY))
- {
- access = GENERIC_WRITE;
- }
- else if (PACE_BIT_ENABLED (mode, O_RDWR))
- {
- access = GENERIC_READ | GENERIC_WRITE;
- }
-
- if ((mode & (_O_CREAT | _O_EXCL)) == (_O_CREAT | _O_EXCL))
- {
- creation = CREATE_NEW;
- }
- else if ((mode & (_O_CREAT | _O_TRUNC)) == (_O_CREAT | _O_TRUNC))
- {
- creation = CREATE_ALWAYS;
- }
- else if (PACE_BIT_ENABLED (mode, _O_CREAT))
- {
- creation = OPEN_ALWAYS;
- }
- else if (PACE_BIT_ENABLED (mode, _O_TRUNC))
- {
- creation = TRUNCATE_EXISTING;
- }
-
- if (PACE_BIT_ENABLED (mode, _O_TEMPORARY))
- {
- flags |= FILE_FLAG_DELETE_ON_CLOSE | FILE_ATTRIBUTE_TEMPORARY;
- }
-
- if (PACE_BIT_ENABLED (mode, FILE_FLAG_WRITE_THROUGH))
- {
- flags |= FILE_FLAG_WRITE_THROUGH;
- }
- if (PACE_BIT_ENABLED (mode, FILE_FLAG_OVERLAPPED))
- {
- flags |= FILE_FLAG_OVERLAPPED;
- }
- if (PACE_BIT_ENABLED (mode, FILE_FLAG_NO_BUFFERING))
- {
- flags |= FILE_FLAG_NO_BUFFERING;
- }
- if (PACE_BIT_ENABLED (mode, FILE_FLAG_RANDOM_ACCESS))
- {
- flags |= FILE_FLAG_RANDOM_ACCESS;
- }
- if (PACE_BIT_ENABLED (mode, FILE_FLAG_SEQUENTIAL_SCAN))
- {
- flags |= FILE_FLAG_SEQUENTIAL_SCAN;
- }
- if (PACE_BIT_ENABLED (mode, FILE_FLAG_DELETE_ON_CLOSE))
- {
- flags |= FILE_FLAG_DELETE_ON_CLOSE;
- }
- if (PACE_BIT_ENABLED (mode, FILE_FLAG_BACKUP_SEMANTICS))
- {
- flags |= FILE_FLAG_BACKUP_SEMANTICS;
- }
- if (PACE_BIT_ENABLED (mode, FILE_FLAG_POSIX_SEMANTICS))
- {
- flags |= FILE_FLAG_POSIX_SEMANTICS;
- }
-
-#if 0 //////////////////////////////////////////////////////////////////////
-
- /* Threads and version info that isn't implemented yet in PACE.
- ACE_MT (ACE_thread_mutex_t *ace_os_monitor_lock = 0;)
- */
- if (PACE_BIT_ENABLED (mode, _O_APPEND))
- {
- ACE_MT
- (
- ace_os_monitor_lock = (ACE_thread_mutex_t *)
- ACE_OS_Object_Manager::preallocated_object[
- ACE_OS_Object_Manager::ACE_OS_MONITOR_LOCK];
- ACE_OS::thread_mutex_lock (ace_os_monitor_lock);
- )
- }
-
-#if !defined (ACE_HAS_WINCE) /* CE doesn't have FILE_SHARE_DELETE */
- if (ACE_OS::get_win32_versioninfo().dwPlatformId ==
- VER_PLATFORM_WIN32_NT)
- shared_mode |= FILE_SHARE_DELETE;
-#endif /* ACE_HAS_WINCE */
-
-////////////////////////////////////////////////////////////
-#endif /* 0 */
-
- h = CreateFile (path,
- access,
- shared_mode,
- 0,
- creation,
- flags,
- 0);
-
- if (PACE_BIT_ENABLED (mode, _O_APPEND))
- {
- if (h != PACE_INVALID_HANDLE)
- {
- SetFilePointer (h, 0, 0, FILE_END);
- }
- /* Threads and version info that isn't implemented yet in PACE.
- ACE_MT (ACE_thread_mutex_t *ace_os_monitor_lock = 0;)
- ACE_MT (ACE_OS::thread_mutex_unlock (ace_os_monitor_lock);)
- */
- }
-
- if (h == PACE_INVALID_HANDLE)
- {
- /* Where is this in ACE?
- ACE_FAIL_RETURN (h);
- */
- return -1;
- }
- else
- {
- /* return h;
-
- POSIX returns lowest unused file descriptor but windows
- doesn't handle files in the same manner.
- We return -1 for failure and 1 for success.
- */
- return 1;
- }
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/win32/fcntl.h b/PACE/pace/win32/fcntl.h
deleted file mode 100644
index 7cb57a52cb0..00000000000
--- a/PACE/pace/win32/fcntl.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/fnctl.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_FCNTL_H_WIN32
-#define PACE_FCNTL_H_WIN32
-
-#include "pace/sys/types.h"
-#include "pace/unistd.h"
-#include "pace/sys/stat.h"
-#include <fcntl.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if defined (__BORLANDC__)
-#define _O_TEMPORARY 0x08
-#endif /* __BORLANDC__ */
-
-#define PACE_FD_CLOEXEC FD_CLOEXEC
-#define PACE_F_DUPFD D_DUPFD
-#define PACE_F_GETFD F_GETFD
-#define PACE_F_GETFL F_GETFL
-#define PACE_F_GETLK F_GETLK
-#define PACE_F_RDLCK F_RDLCK
-#define PACE_F_SETFD F_SETFD
-#define PACE_F_SETFL F_SETFL
-#define PACE_F_SETLK F_SETLK
-#define PACE_F_SETLKW F_SETLKW
-#define PACE_F_UNLCK F_UNLCK
-#define PACE_F_WRLCK F_WRLCK
-#define PACE_O_ACCMODE O_ACCMODE
-#define PACE_O_APPEND O_APPEND
-#define PACE_O_CREAT O_CREAT
-#define PACE_O_DSYNC O_DSYNC
-#define PACE_O_EXCL O_EXCL
-#define PACE_O_NOCTTY O_NOCTTY
-#define PACE_O_NONBLOCK O_NONBLOCK
-#define PACE_O_RDONLY O_RDONLY
-#define PACE_O_RDWR O_RDWR
-#define PACE_O_RSYNC O_RSYNC
-#define PACE_O_SYNC O_SYNC
-#define PACE_O_TRUNC O_TRUNC
-#define PACE_O_WRONLY O_WRONLY
-
-#ifndef PACE_FLOCK
-#define PACE_FLOCK
-typedef struct flock pace_flock;
-#endif /* PACE_FLOCK */
-
-#if (PACE_HAS_POSIX_FS_UOF)
- int pace_win32_creat (const char * path, pace_mode_t mode);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_FCNTL_H_WIN32 */
diff --git a/PACE/pace/win32/fcntl.inl b/PACE/pace/win32/fcntl.inl
deleted file mode 100644
index b821d7bbfc9..00000000000
--- a/PACE/pace/win32/fcntl.inl
+++ /dev/null
@@ -1,38 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/fcntl.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_creat (const char * path, pace_mode_t mode)
-{
- /* Emulation is still buggy! creat (path, mode); */
- PACE_UNUSED_ARG (path);
- PACE_UNUSED_ARG (mode);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_fcntl (PACE_HANDLE fildes, int cmd, /* arg */ ... )
-{
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (cmd);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
diff --git a/PACE/pace/win32/grp.c b/PACE/pace/win32/grp.c
deleted file mode 100644
index 0bcfffa87d4..00000000000
--- a/PACE/pace/win32/grp.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/grp.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/grp.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/grp.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/grp.h b/PACE/pace/win32/grp.h
deleted file mode 100644
index c800c8bc21e..00000000000
--- a/PACE/pace/win32/grp.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace ()
- *
- * = FILENAME
- * pace/win32/grp.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_GRP_H_WIN32
-#define PACE_GRP_H_WIN32
-
-# if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_GROUP
-#define PACE_GROUP
- typedef struct group {
- int val_;
- } pace_group;
-#endif /* PACE_GROUP */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_GRP_H_WIN32 */
diff --git a/PACE/pace/win32/grp.inl b/PACE/pace/win32/grp.inl
deleted file mode 100644
index 905e9eadea3..00000000000
--- a/PACE/pace/win32/grp.inl
+++ /dev/null
@@ -1,72 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/grp.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_group *
-pace_getgrgid (pace_gid_t gid)
-{
- pace_group * retval = (pace_group*)0;
- PACE_UNUSED_ARG (gid);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getgrgid_r (pace_gid_t gid,
- pace_group * grp,
- char * buffer,
- size_t bufsize,
- pace_group ** result)
-{
- PACE_UNUSED_ARG (gid);
- PACE_UNUSED_ARG (grp);
- PACE_UNUSED_ARG (buffer);
- PACE_UNUSED_ARG (bufsize);
- PACE_UNUSED_ARG (result);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_group *
-pace_getgrnam (const char * name)
-{
- pace_group * retval = (pace_group*)0;
- PACE_UNUSED_ARG (name);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getgrnam_r (const char * name,
- pace_group * grp,
- char * buffer,
- size_t bufsize,
- pace_group ** result)
-{
- PACE_UNUSED_ARG (name);
- PACE_UNUSED_ARG (grp);
- PACE_UNUSED_ARG (buffer);
- PACE_UNUSED_ARG (bufsize);
- PACE_UNUSED_ARG (result);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
diff --git a/PACE/pace/win32/limits.h b/PACE/pace/win32/limits.h
deleted file mode 100644
index 0624528da7a..00000000000
--- a/PACE/pace/win32/limits.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/limits.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================ */
-
-#ifndef PACE_LIMITS_H_WIN32
-#define PACE_LIMITS_H_WIN32
-
-#include <limits.h>
-
-# if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-# endif /* (PACE_HAS_CPLUSPLUS) */
-
-# if defined (PACE_HAS_CPLUSPLUS)
-}
-# endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_LIMITS_H_WIN32 */
diff --git a/PACE/pace/win32/locale.c b/PACE/pace/win32/locale.c
deleted file mode 100644
index 1d10f0e3b32..00000000000
--- a/PACE/pace/win32/locale.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/locale.c
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * ============================================================================= */
-
-#include "pace/locale.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/locale.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/locale.h b/PACE/pace/win32/locale.h
deleted file mode 100644
index c56a9d9fec3..00000000000
--- a/PACE/pace/win32/locale.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/locale.h
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#ifndef PACE_LOCALE_H_WIN32
-#define PACE_LOCALE_H_WIN32
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_LC_ALL LC_ALL
-#define PACE_LC_COLLATE LC_COLLATE
-#define PACE_LC_CTYPE LC_CTYPE
-#define PACE_LC_MONETARY LC_MONETARY
-#define PACE_LC_NUMERIC LC_NUMERIC
-#define PACE_LC_TIME LC_TIME
-#define PACE_NULL NULL
-
-#ifndef PACE_LCONV
-#define PACE_LCONV
-typedef struct lconv pace_lconv;
-#endif /* PACE_LCONV */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_LOCALE_H */
diff --git a/PACE/pace/win32/locale.inl b/PACE/pace/win32/locale.inl
deleted file mode 100644
index bdcf0ba226a..00000000000
--- a/PACE/pace/win32/locale.inl
+++ /dev/null
@@ -1,34 +0,0 @@
-/* $Id$ -*- C -*-
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/locale.inl
- *
- * = AUTHOR
- * Joe Hoffert
- *
- * =========================================================================== */
-
-#include <locale.h>
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_lconv *
-pace_localeconv (void)
-{
- return localeconv ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-char *
-pace_setlocale (int category, const char * locale)
-{
- return setlocale (category, locale);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
diff --git a/PACE/pace/win32/math.c b/PACE/pace/win32/math.c
deleted file mode 100644
index 01302f35ac5..00000000000
--- a/PACE/pace/win32/math.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/math.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/math.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/math.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/math.h b/PACE/pace/win32/math.h
deleted file mode 100644
index e1658a72c12..00000000000
--- a/PACE/pace/win32/math.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/math.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_MATH_H_WIN32
-#define PACE_MATH_H_WIN32
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_HUGE_VAL HUGE_VAL
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_MATH_H_WIN32 */
diff --git a/PACE/pace/win32/math.inl b/PACE/pace/win32/math.inl
deleted file mode 100644
index 47112cebda3..00000000000
--- a/PACE/pace/win32/math.inl
+++ /dev/null
@@ -1,215 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/math.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-/* FUZZ: disable check_for_math_include */
-#include <math.h>
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_acos (double x)
-{
- return acos (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_asin (double x)
-{
- return asin (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_atan (double x)
-{
- return atan (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_atan2 (double x, double y)
-{
- return atan2 (x, y);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_cos (double x)
-{
- return cos (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_sin (double x)
-{
- return sin (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_tan (double x)
-{
- return tan (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_cosh (double x)
-{
- return cosh (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_sinh (double x)
-{
- return sinh (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_tanh (double x)
-{
- return tanh (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_exp (double x)
-{
- return exp (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_frexp (double x, int * exp)
-{
- return frexp (x, exp);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_ldexp (double x, int exp)
-{
- return ldexp (x, exp);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_log (double x)
-{
- return log (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_log10 (double x)
-{
- return log10 (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_modf (double x, double * iptr)
-{
- return modf (x, iptr);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_pow (double x, double y)
-{
- return pow (x, y);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_sqrt (double x)
-{
- return sqrt (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_ceil (double x)
-{
- return ceil (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_fabs (double x)
-{
- return fabs (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_floor (double x)
-{
- return floor (x);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_fmod (double x, double y)
-{
- return fmod (x, y);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
diff --git a/PACE/pace/win32/mman.c b/PACE/pace/win32/mman.c
deleted file mode 100644
index 7c08f8f6e0f..00000000000
--- a/PACE/pace/win32/mman.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/mman.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sys/mman.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/mman.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#include <windows.h>
-#include <stdio.h>
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-void *
-mmap (void * addr, size_t len, int prot, int flags,
- PACE_HANDLE fildes, pace_off_t off)
-{
- void *addr_mapping = 0;
- int nt_flags = 0;
- PACE_HANDLE file_mapping = PACE_INVALID_HANDLE;
-
- if (PACE_BIT_ENABLED (flags, MAP_PRIVATE))
- {
- prot = PAGE_WRITECOPY;
- nt_flags = FILE_MAP_COPY;
- }
- else if (PACE_BIT_ENABLED (flags, MAP_SHARED))
- {
- if (PACE_BIT_ENABLED (prot, PAGE_READONLY))
- nt_flags = FILE_MAP_READ;
- if (PACE_BIT_ENABLED (prot, PAGE_READWRITE))
- nt_flags = FILE_MAP_WRITE;
- }
-
- file_mapping = CreateFileMapping (fildes,
- 0,
- prot,
- 0,
- 0,
- 0);
- if (file_mapping == 0)
- PACE_FAIL_RETURN (MAP_FAILED);
-
-# if defined (PACE_OS_EXTRA_MMAP_FLAGS)
- nt_flags |= PACE_OS_EXTRA_MMAP_FLAGS;
-# endif /* PACE_OS_EXTRA_MMAP_FLAGS */
-
-# if !defined (PACE_HAS_WINCE)
- addr_mapping = MapViewOfFileEx (file_mapping,
- nt_flags,
- 0,
- off,
- len,
- addr);
-# else
- ACE_UNUSED_ARG (addr); /* WinCE does not allow specifying <addr>.*/
- addr_mapping = MapViewOfFile (file_mapping,
- nt_flags,
- 0,
- off,
- len);
-# endif /* ! PACE_HAS_WINCE */
-
- /* Only close this down if we used the temporary. */
- if (file_mapping == PACE_INVALID_HANDLE)
- CloseHandle (file_mapping);
-
- if (addr_mapping == 0)
- PACE_FAIL_RETURN (MAP_FAILED);
-
- else if (PACE_BIT_ENABLED (flags, MAP_FIXED)
- && addr_mapping != addr)
- {
- errno = EINVAL;
- return MAP_FAILED;
- }
- else
- return addr_mapping;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-mprotect (void * addr, size_t len, int prot)
-{
- DWORD dummy; /* Sigh! */
- return VirtualProtect(addr, len, prot, &dummy) ? 0 : -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-msync (void * addr, size_t len, int flags)
-{
- PACE_UNUSED_ARG (flags);
- PACE_WIN32CALL_RETURN
- (PACE_ADAPT_RETVAL
- (FlushViewOfFile (addr, len), pace_result_), int, -1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-munmap (void * addr, size_t len)
-{
- PACE_UNUSED_ARG (len);
- PACE_WIN32CALL_RETURN
- (PACE_ADAPT_RETVAL
- (UnmapViewOfFile (addr), pace_result_), int, -1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/win32/mman.h b/PACE/pace/win32/mman.h
deleted file mode 100644
index 2a5621823d7..00000000000
--- a/PACE/pace/win32/mman.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/mman.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_MMAN_H_WIN32
-#define PACE_SYS_MMAN_H_WIN32
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-# define MAP_PRIVATE 1
-# define MAP_SHARED 2
-# define MAP_FIXED 4
-# if !defined (MAP_FAILED)
-# undef MAP_FAILED
-# define MAP_FAILED ((void *) -1)
-# endif
-
-# define PACE_MAP_FAILED MAP_FAILED
-# define PACE_MAP_FIXED MAP_FIXED
-# define PACE_MAP_PRIVATE MAP_PRIVATE
-# define PACE_MAP_SHARED MAP_SHARED
-# define PACE_MCL_CURRENT MCL_CURRENT
-# define PACE_MS_ASYNC MS_ASYNC
-# define PACE_MS_INVALIDATE
-# define PACE_MS_SYNC MS_SYNC
-# define PACE_PROT_EXEC PROT_EXEC
-# define PACE_PROT_NONE PROT_NONE
-# define PACE_PROT_READ PROT_READ
-# define PACE_PROT_WRITE PROT_WRITE
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- void * mmap (void * addr, size_t len, int prot, int flags,
- PACE_HANDLE fildes, pace_off_t off);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int mprotect (void * addr, size_t len, int prot);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int msync (void * addr, size_t len, int flags);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int munmap (void * addr, size_t len);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_MMAN_H */
diff --git a/PACE/pace/win32/mman.inl b/PACE/pace/win32/mman.inl
deleted file mode 100644
index c324089991b..00000000000
--- a/PACE/pace/win32/mman.inl
+++ /dev/null
@@ -1,129 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/mman.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <io.h>
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mlock (const void * addr, pace_size_t len)
-{
- PACE_UNUSED_ARG (addr);
- PACE_UNUSED_ARG (len);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mlockall (int flags)
-{
- PACE_UNUSED_ARG (flags);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_mmap (void * addr,
- size_t len,
- int prot,
- int flags,
- PACE_HANDLE fildes,
- pace_off_t off)
-{
- return mmap (addr, len, prot, flags, fildes, off);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_munlock (const void * addr, size_t len)
-{
- PACE_UNUSED_ARG (addr);
- PACE_UNUSED_ARG (len);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mprotect (void * addr, size_t len, int prot)
-{
- return mprotect (addr, len, prot);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_msync (void * addr,
- size_t len,
- int flags)
-{
- return msync (addr, len, flags);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_munlockall ()
-{
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_munmap (void * addr, size_t len)
-{
- return munmap (addr, len);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-PACE_HANDLE
-pace_shm_open (const char * name, int oflag, pace_mode_t mode)
-{
- /* Would be similar to ACE_OS::open
- which (currently uses threads and Object Manager).
- */
- PACE_HANDLE retval = PACE_INVALID_HANDLE;
- PACE_UNUSED_ARG (name);
- PACE_UNUSED_ARG (oflag);
- PACE_UNUSED_ARG (mode);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_shm_unlink (const char * name)
-{
-#if defined (__BORLANDC__)
- return unlink (name);
-#else /* __BORLANDC__ */
- return _unlink (name);
-#endif /* __BORLANDC__ */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/win32/mqueue.c b/PACE/pace/win32/mqueue.c
deleted file mode 100644
index 2f08c3e979e..00000000000
--- a/PACE/pace/win32/mqueue.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace ()
- *
- * = FILENAME
- * pace/win32/mqueue.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/mqueue.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/mqueue.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/mqueue.h b/PACE/pace/win32/mqueue.h
deleted file mode 100644
index 17110c5a740..00000000000
--- a/PACE/pace/win32/mqueue.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/mqueue.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_MQUEUE_H_WIN32
-#define PACE_MQUEUE_H_WIN32
-
-#include "pace/signal.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_MQD_T
-#define PACE_MQD_T
- /* Temporary fix until we emulate these funcs.
- typedef mqd_t pace_mqd_t;
- */
- typedef int pace_mqd_t;
-#endif /* PACE_MQD_T */
-
-#ifndef PACE_MQ_ATTR
-#define PACE_MQ_ATTR
- /* Temporary fix until we emulate these funcs.
- typedef struct mq_attr pace_mq_attr
- */
- typedef struct mq_attr { int a_; } pace_mq_attr;
-#endif /* PACE_MQ_ATTR */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_MQUEUE_H_WIN32 */
diff --git a/PACE/pace/win32/mqueue.inl b/PACE/pace/win32/mqueue.inl
deleted file mode 100644
index 956ddaf7be2..00000000000
--- a/PACE/pace/win32/mqueue.inl
+++ /dev/null
@@ -1,104 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/mqueue.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_close (pace_mqd_t mqdes)
-{
- PACE_UNUSED_ARG (mqdes);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_getattr (pace_mqd_t mqdes,
- pace_mq_attr * mqstat)
-{
- PACE_UNUSED_ARG (mqdes);
- PACE_UNUSED_ARG (mqstat);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_notify (pace_mqd_t mqdes,
- const pace_sigevent * notification)
-{
- PACE_UNUSED_ARG (mqdes);
- PACE_UNUSED_ARG (notification);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_ssize_t
-pace_mq_receive (pace_mqd_t mqdes,
- char * msg_ptr,
- size_t msg_len,
- unsigned int * msg_prio)
-{
- PACE_UNUSED_ARG (mqdes);
- PACE_UNUSED_ARG (msg_ptr);
- PACE_UNUSED_ARG (msg_len);
- PACE_UNUSED_ARG (msg_prio);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_send (pace_mqd_t mqdes,
- const char * msg_ptr,
- size_t msg_len,
- unsigned int msg_prio)
-{
- PACE_UNUSED_ARG (mqdes);
- PACE_UNUSED_ARG (msg_ptr);
- PACE_UNUSED_ARG (msg_len);
- PACE_UNUSED_ARG (msg_prio);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_setattr (pace_mqd_t mqdes,
- const pace_mq_attr * mqstat,
- pace_mq_attr * omqstat)
-{
- PACE_UNUSED_ARG (mqdes);
- PACE_UNUSED_ARG (mqstat);
- PACE_UNUSED_ARG (omqstat);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mq_unlink (const char * name)
-{
- PACE_UNUSED_ARG (name);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/win32/pace.dsw b/PACE/pace/win32/pace.dsw
deleted file mode 100644
index d1deae4e284..00000000000
--- a/PACE/pace/win32/pace.dsw
+++ /dev/null
@@ -1,41 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "pace_dll"=.\pace_dll.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "pace_lib"=.\pace_lib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/PACE/pace/win32/pace_dll.dsp b/PACE/pace/win32/pace_dll.dsp
deleted file mode 100644
index 8fca3ae3eb9..00000000000
--- a/PACE/pace/win32/pace_dll.dsp
+++ /dev/null
@@ -1,623 +0,0 @@
-# Microsoft Developer Studio Project File - Name="PACE DLL" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=PACE DLL - 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 "pace_dll.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 "pace_dll.mak" CFG="PACE DLL - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "PACE DLL - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "PACE DLL - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "PACE DLL - 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 "DLL\Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PACE_DLL_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../" /D "NDEBUG" /D "_WINDOWS" /D "PACE_BUILD_DLL" /D "WIN32" /D "PACE_HAS_ALL_POSIX_FUNCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# 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 /dll /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 /dll /machine:I386 /out:"../../../bin/pace.dll"
-# SUBTRACT LINK32 /profile
-
-!ELSEIF "$(CFG)" == "PACE DLL - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "pace_dll___Win32_Debug"
-# PROP BASE Intermediate_Dir "pace_dll___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "DLL\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" /D "_MBCS" /D "_USRDLL" /D "PACE_DLL_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../" /D "_DEBUG" /D "_WINDOWS" /D "PACE_BUILD_DLL" /D "WIN32" /D "PACE_HAS_ALL_POSIX_FUNCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /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 /dll /debug /machine:I386 /pdbtype:sept
-# 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 /dll /debug /machine:I386 /out:"../../../bin/paced.dll" /pdbtype:sept
-# SUBTRACT LINK32 /nodefaultlib
-
-!ENDIF
-
-# Begin Target
-
-# Name "PACE DLL - Win32 Release"
-# Name "PACE DLL - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\aio.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\assert.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\ctype.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\dirent.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\fcntl.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\grp.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\locale.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\math.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\mman.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\mqueue.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\pthread.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\pwd.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\sched.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\semaphore.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\setjmp.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\signal.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\stat.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdio.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdlib.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\string.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\termios.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\time.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\times.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\unistd.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\utime.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\utsname.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\wait.c
-# End Source File
-# End Group
-# Begin Group "Header Files (Prototypes)"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\aio.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\assert.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\ctype.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\dirent.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\errno.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\fcntl.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\grp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\limits.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\locale.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\math.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\mman.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\mqueue.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\pthread.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\pwd.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sched.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\semaphore.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\setjmp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\signal.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\stat.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\stddef.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\stdio.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\stdlib.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\string.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\termios.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\time.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\times.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\types.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\unistd.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\utime.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\utsname.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\wait.h
-# End Source File
-# End Group
-# Begin Group "Header Files (Win32 Specific)"
-
-# PROP Default_Filter "h"
-# Begin Source File
-
-SOURCE=.\aio.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\assert.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ctype.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\dirent.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\errno.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\fcntl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\grp.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\limits.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\locale.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\math.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\mman.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\mqueue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pthread.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pthreadtypes.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pwd.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\sched.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\schedtypes.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\semaphore.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\setjmp.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\signal.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\stat.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdio.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdlib.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\string.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\termios.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\time.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\times.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\types.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\unistd.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\utime.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\utsname.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\wait.h
-# End Source File
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "inl"
-# Begin Source File
-
-SOURCE=.\aio.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\assert.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\ctype.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\dirent.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\fcntl.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\grp.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\locale.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\math.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\mman.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\mqueue.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\pthread.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\pwd.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\sched.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\semaphore.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\setjmp.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\signal.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\stat.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdio.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdlib.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\string.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\termios.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\time.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\times.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\unistd.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\utime.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\utsname.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\wait.inl
-# End Source File
-# End Group
-# Begin Group "Config Files"
-
-# PROP Default_Filter "c"
-# Begin Source File
-
-SOURCE=..\config\compiler.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\config.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\constants.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\defaults.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\defines.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\features.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\platform.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\temp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\utility.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/PACE/pace/win32/pace_lib.dsp b/PACE/pace/win32/pace_lib.dsp
deleted file mode 100644
index 0a41c79bf03..00000000000
--- a/PACE/pace/win32/pace_lib.dsp
+++ /dev/null
@@ -1,609 +0,0 @@
-# Microsoft Developer Studio Project File - Name="PACE LIB" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=PACE LIB - Win32 Static 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 "pace_lib.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 "pace_lib.mak" CFG="PACE LIB - Win32 Static Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "PACE LIB - Win32 Static Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "PACE LIB - Win32 Static Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "PACE LIB - Win32 Static 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 "LIB\Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../" /D "NDEBUG" /D "PACE_AS_STATIC_LIBS" /D "WIN32" /D "PACE_HAS_ALL_POSIX_FUNCS" /V"ERBOSE:LIB" /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
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:".\paces.lib"
-
-!ELSEIF "$(CFG)" == "PACE LIB - Win32 Static Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "pace_lib___Win32_Debug"
-# PROP BASE Intermediate_Dir "pace_lib___Win32_Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "LIB\Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../" /D "_DEBUG" /D "WIN32" /D "PACE_HAS_ALL_POSIX_FUNCS" /D "PACE_AS_STATIC_LIBS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:".\pacesd.lib"
-
-!ENDIF
-
-# Begin Target
-
-# Name "PACE LIB - Win32 Static Release"
-# Name "PACE LIB - Win32 Static Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\aio.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\assert.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\ctype.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\dirent.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\fcntl.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\grp.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\locale.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\math.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\mman.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\mqueue.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\pthread.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\pwd.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\sched.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\semaphore.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\setjmp.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\signal.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\stat.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdio.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdlib.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\string.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\termios.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\time.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\times.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\unistd.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\utime.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\utsname.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\wait.c
-# End Source File
-# End Group
-# Begin Group "Header Files (Prototypes)"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\aio.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\assert.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\ctype.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\dirent.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\errno.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\fcntl.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\grp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\limits.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\locale.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\math.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\mman.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\mqueue.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\pthread.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\pwd.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sched.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\semaphore.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\setjmp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\signal.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\stat.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\stddef.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\stdio.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\stdlib.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\string.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\termios.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\time.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\times.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\types.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\unistd.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\utime.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\utsname.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\sys\wait.h
-# End Source File
-# End Group
-# Begin Group "Header Files (Win32 Specific)"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\aio.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\assert.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\ctype.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\dirent.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\errno.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\fcntl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\grp.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\limits.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\locale.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\math.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\mman.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\mqueue.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pthread.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pthreadtypes.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\pwd.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\sched.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\schedtypes.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\semaphore.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\setjmp.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\signal.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\stat.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdio.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdlib.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\string.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\termios.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\time.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\times.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\types.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\unistd.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\utime.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\utsname.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\wait.h
-# End Source File
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "inl"
-# Begin Source File
-
-SOURCE=.\aio.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\assert.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\ctype.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\dirent.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\fcntl.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\grp.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\locale.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\math.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\mman.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\mqueue.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\pthread.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\pwd.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\sched.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\semaphore.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\setjmp.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\signal.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\stat.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdio.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\stdlib.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\string.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\termios.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\time.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\times.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\unistd.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\utime.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\utsname.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\wait.inl
-# End Source File
-# End Group
-# Begin Group "Config Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=..\config\compiler.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\config.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\constants.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\defaults.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\defines.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\features.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\platform.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\temp.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\config\utility.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/PACE/pace/win32/pthread.c b/PACE/pace/win32/pthread.c
deleted file mode 100644
index b53dab9396c..00000000000
--- a/PACE/pace/win32/pthread.c
+++ /dev/null
@@ -1,359 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/pthread.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/pthread.h"
-#include <process.h>
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/pthread.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-//////////////////////////////////////////////////////////////////////
-// pthread_t
-//////////////////////////////////////////////////////////////////////
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_create (pace_pthread_t * thread,
- const pace_pthread_attr_t * attr,
- void * (*start_routine) (void*),
- void * arg)
-{
- /* Get around a gcc bug. */
- typedef unsigned (__stdcall *bthrexr)(void*);
-
- unsigned flags = 0x0, thr_addr = 0x0;
- if (attr->sparam_.sched_priority != THREAD_PRIORITY_NORMAL)
- {
- // CREATE_SUSPENDED is the only flag win32 currently supports
- flags = CREATE_SUSPENDED;
- }
-
- thread = (pace_pthread_t)
- _beginthreadex (0,
- attr->stack_size_,
- (bthrexr) start_routine,
- arg,
- flags,
- &thr_addr);
-
- if (flags == CREATE_SUSPENDED && thread != 0)
- {
- SetThreadPriority (thread, attr->sparam_.sched_priority);
- ResumeThread (thread);
- }
-
- if (thread == 0)
- {
- return 0;
- }
- else
- {
- PACE_FAIL_RETURN (-1);
- }
-
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-pace_pthread_t
-pthread_self ()
-{
- return GetCurrentThread ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_getschedparam (pace_pthread_t thread,
- int * policy,
- pace_sched_param * param)
-{
- PACE_UNUSED_ARG (policy);
- if (param != (pace_sched_param*)0)
- {
- param->sched_priority = GetThreadPriority (thread);
- return 0;
- }
- /* Invalid pointer to pace_sched_param. */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_setschedparam (pace_pthread_t thread,
- int policy,
- const pace_sched_param * param)
-{
- PACE_UNUSED_ARG(policy);
-
- if (SetThreadPriority (thread, param->sched_priority))
- {
- return 0;
- }
- /* ERROR: with return value of SetThreadPriority. */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-//////////////////////////////////////////////////////////////////////
-// pthread_attr_t
-//////////////////////////////////////////////////////////////////////
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_init (pace_pthread_attr_t * attr)
-{
- /* These need to be the platform defaults!
- * Since I made this, I need to maintain this invariant!
- * Eventually, #define 'words' would be better than
- * constants here! */
-
- attr->init_ = 1;
- attr->detach_state_ = 0;
- attr->policy_ = 0;
- attr->sparam_.sched_priority = 0;
- attr->inherit_sched_ = 0;
- attr->contention_scope_ = 0;
- attr->guard_size_ = 0;
- attr->stackaddr_set_ = 0;
- attr->stack_addr_ = (void*)0;
- attr->stack_size_ = 0;
-
- return 0;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_destroy (pace_pthread_attr_t * attr)
-{
- if (attr->init_ == 1)
- {
- attr->init_ = 0;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_getdetachstate (const pace_pthread_attr_t * attr,
- int * detachstate)
-{
- if (attr->init_ == 1)
- {
- *detachstate = attr->detach_state_;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_setdetachstate (pace_pthread_attr_t * attr,
- int detachstate)
-{
- if (attr->init_ == 1)
- {
- attr->detach_state_ = detachstate;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_getinheritsched (const pace_pthread_attr_t * attr,
- int * inheritsched)
-{
- if (attr->init_ == 1)
- {
- *inheritsched = attr->inherit_sched_;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_setinheritsched (pace_pthread_attr_t * attr,
- int inheritsched)
-{
- if (attr->init_ == 1)
- {
- attr->inherit_sched_ = inheritsched;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_getschedparam (const pace_pthread_attr_t * attr,
- pace_sched_param * param)
-{
- if (attr->init_ == 1)
- {
- param->sched_priority = attr->sparam_.sched_priority;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_setschedparam (pace_pthread_attr_t * attr,
- const pace_sched_param * param)
-{
- if (attr->init_ == 1)
- {
- attr->sparam_.sched_priority = param->sched_priority;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int pthread_attr_getschedpolicy (const pace_pthread_attr_t * attr,
- int * policy)
-{
- if (attr->init_ == 1)
- {
- *policy = attr->policy_;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int pthread_attr_setschedpolicy (pace_pthread_attr_t * attr,
- int policy)
-{
- if (attr->init_ == 1)
- {
- attr->policy_ = policy;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_getscope (const pace_pthread_attr_t * attr,
- int * contentionscope)
-{
- if (attr->init_ == 1)
- {
- *contentionscope = attr->contention_scope_;
- return 0;
- }
- /* ERROR: not initialized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_setscope (pace_pthread_attr_t * attr,
- int contentionscope)
-{
- if (attr->init_ == 1)
- {
- attr->contention_scope_ = contentionscope;
- return 0;
- }
- /* ERROR: not initialized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_getstackaddr (const pace_pthread_attr_t * attr,
- void ** stackaddr)
-{
- if (attr->init_ == 1)
- {
- *stackaddr = attr->stack_addr_;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_setstackaddr (pace_pthread_attr_t * attr,
- void * stackaddr)
-{
- if (attr->init_ == 1)
- {
- attr->stack_addr_ = stackaddr;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_getstacksize (const pace_pthread_attr_t * attr,
- size_t * stacksize)
-{
- if (attr->init_ == 1)
- {
- *stacksize = attr->stack_size_;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pthread_attr_setstacksize (pace_pthread_attr_t * attr,
- size_t stacksize)
-{
- if (attr->init_ == 1)
- {
- attr->stack_size_ = stacksize;
- return 0;
- }
- /* ERROR: not initilalized properly! */
- return -1;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/win32/pthread.h b/PACE/pace/win32/pthread.h
deleted file mode 100644
index 582b89c2ab1..00000000000
--- a/PACE/pace/win32/pthread.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/pthread.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_PTHREAD_H_WIN32
-#define PACE_PTHREAD_H_WIN32
-
-#include "pace/sys/types.h"
-#include "pace/signal.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_PTHREAD_CANCELED PTHREAD_CANCELED
-#define PACE_PTHREAD_CANCEL_AYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS
-#define PACE_PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED
-#define PACE_PTHREAD_CACEL_DISABLE PTHREAD_CANCEL_DISABLE
-#define PACE_PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE
-#define PACE_PTHREAD_COND_INITIALIZER PTHREAD_COND_INITIALIZER
-#define PACE_PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED
-#define PACE_PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE
-#define PACE_PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED
-#define PACE_PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED
-#define PACE_PTHREAD_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
-#define PACE_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
-#define PACE_PTHREAD_PRIO_INHERIT PTHREAD_PRIO_INHERIT
-#define PACE_PTHREAD_PRIO_NONE PTHREAD_PRIO_NONE
-#define PACE_PTHREAD_PRIO_PROTECT PTHREAD_PRIO_PROTECT
-#define PACE_PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
-#define PACE_PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED
-#define PACE_PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS
-#define PACE_PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM
-
-#if defined (PACE_HAS_CPLUSPLUS)
-
-# ifndef PACE_ATFORK_PF
-# define PACE_ATFORK_PF
- typedef void (*pace_atfork_pf) (void);
-# endif /* PACE_ATFORK_PF */
-
-# ifndef PACE_KEYCREATE_PF
-# define PACE_KEYCREATE_PF
- typedef void (*pace_keycreate_pf) (void*);
-# endif /* PACE_KEYCREATE_PF */
-
-# ifndef PACE_ONCE_PF
-# define PACE_ONCE_PF
- typedef void (*pace_once_pf) (void);
-# endif /* PACE_ONCE_PF */
-
-# ifndef PACE_CREATE_PF
-# define PACE_CREATE_PF
- typedef void* (*pace_create_pf) (void*);
-# endif /* PACE_CREATE_PF */
-
-#endif /* PACE_HAS_CPLUPLUS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_create (pace_pthread_t * thread,
- const pace_pthread_attr_t * attr,
- void * (*start_routine) (void*),
- void * arg);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- pace_pthread_t pthread_self ();
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- /* Returns -1 if invalid pointer to param is passed in! */
- int pthread_getschedparam (pace_pthread_t thread,
- int * policy,
- pace_sched_param * param);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_setschedparam (pace_pthread_t thread,
- int policy,
- const pace_sched_param * param);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- /* Returns -1 if attr is already valid! */
- int pthread_attr_init (pace_pthread_attr_t * attr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- /* Returns -1 if attr is invalid! */
- int pthread_attr_destroy (pace_pthread_attr_t * attr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_getdetachstate (const pace_pthread_attr_t * attr,
- int * detachstate);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_setdetachstate (pace_pthread_attr_t * attr,
- int detachstate);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_getinheritsched (const pace_pthread_attr_t * attr,
- int * inheritsched);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_setinheritsched (pace_pthread_attr_t * attr,
- int inheritsched);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_getschedparam (const pace_pthread_attr_t * attr,
- pace_sched_param * param);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_setschedparam (pace_pthread_attr_t * attr,
- const pace_sched_param * param);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_getschedpolicy (const pace_pthread_attr_t * attr,
- int * policy);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_setschedpolicy (pace_pthread_attr_t * attr,
- int policy);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_getscope (const pace_pthread_attr_t * attr,
- int * contentionscope);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_setscope (pace_pthread_attr_t * attr,
- int contentionscope);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_getstackaddr (const pace_pthread_attr_t * attr,
- void ** stackaddr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_setstackaddr (pace_pthread_attr_t * attr,
- void * stackaddr);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_getstacksize (const pace_pthread_attr_t * attr,
- size_t * stacksize);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pthread_attr_setstacksize (pace_pthread_attr_t * attr,
- size_t stacksize);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_PTHREAD_H_WIN32 */
diff --git a/PACE/pace/win32/pthread.inl b/PACE/pace/win32/pthread.inl
deleted file mode 100644
index 3fea1729342..00000000000
--- a/PACE/pace/win32/pthread.inl
+++ /dev/null
@@ -1,682 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/pthread.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/unistd.h"
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_atfork (void (*prepare) (void),
- void (*parent) (void),
- void (*child) (void))
-{
- PACE_UNUSED_ARG (prepare);
- PACE_UNUSED_ARG (parent);
- PACE_UNUSED_ARG (child);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_create (pace_pthread_t * thread,
- const pace_pthread_attr_t * attr,
- void * (*start_routine) (void*),
- void * arg)
-{
- PACE_UNUSED_ARG (thread);
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (start_routine);
- PACE_UNUSED_ARG (arg);
-
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_pthread_t
-pace_pthread_self ()
-{
- return pthread_self ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_getschedparam (pace_pthread_t thread,
- int * policy,
- pace_sched_param * param)
-{
- return pthread_getschedparam (thread, policy, param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setschedparam (pace_pthread_t thread,
- int policy,
- const pace_sched_param * param)
-{
- return pthread_setschedparam (thread, policy, param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_init (pace_pthread_attr_t * attr)
-{
- return pthread_attr_init (attr);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_destroy (pace_pthread_attr_t * attr)
-{
- return pthread_attr_destroy (attr);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getdetachstate (const pace_pthread_attr_t * attr,
- int * detachstate)
-{
- return pthread_attr_getdetachstate (attr, detachstate);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setdetachstate (pace_pthread_attr_t * attr,
- int detachstate)
-{
- return pthread_attr_setdetachstate (attr, detachstate);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getinheritsched (const pace_pthread_attr_t * attr,
- int * inheritsched)
-{
- return pthread_attr_getinheritsched (attr, inheritsched);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setinheritsched (pace_pthread_attr_t * attr,
- int inheritsched)
-{
- return pthread_attr_setinheritsched (attr, inheritsched);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getschedparam (const pace_pthread_attr_t * attr,
- pace_sched_param * param)
-{
- return pthread_attr_getschedparam (attr, param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setschedparam (pace_pthread_attr_t * attr,
- const pace_sched_param * param)
-{
- return pthread_attr_setschedparam (attr, param);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getschedpolicy (const pace_pthread_attr_t * attr,
- int * policy)
-{
- return pthread_attr_getschedpolicy (attr, policy);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setschedpolicy (pace_pthread_attr_t * attr,
- int policy)
-{
- return pthread_attr_setschedpolicy (attr, policy);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getscope (const pace_pthread_attr_t * attr,
- int * contentionscope)
-{
- return pthread_attr_getscope (attr, contentionscope);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setscope (pace_pthread_attr_t * attr,
- int contentionscope)
-{
- return pthread_attr_setscope (attr, contentionscope);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getstackaddr (const pace_pthread_attr_t * attr,
- void ** stackaddr)
-{
- return pthread_attr_getstackaddr (attr, stackaddr);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setstackaddr (pace_pthread_attr_t * attr,
- void * stackaddr)
-{
- return pthread_attr_setstackaddr (attr, stackaddr);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_getstacksize (const pace_pthread_attr_t * attr,
- size_t * stacksize)
-{
- return pthread_attr_getstacksize (attr, stacksize);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_attr_setstacksize (pace_pthread_attr_t * attr,
- size_t stacksize)
-{
- return pthread_attr_setstacksize (attr, stacksize);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cancel (pace_pthread_t thread)
-{
- PACE_UNUSED_ARG (thread);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_broadcast (pace_pthread_cond_t * cond)
-{
- PACE_UNUSED_ARG (cond);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_destroy (pace_pthread_cond_t * cond)
-{
- PACE_UNUSED_ARG (cond);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_init (pace_pthread_cond_t * cond,
- const pace_pthread_condattr_t * attr)
-{
- PACE_UNUSED_ARG (cond);
- PACE_UNUSED_ARG (attr);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_signal (pace_pthread_cond_t * cond)
-{
- PACE_UNUSED_ARG (cond);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_timedwait (pace_pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex,
- const struct timespec * abstime)
-{
- PACE_UNUSED_ARG (cond);
- PACE_UNUSED_ARG (mutex);
- PACE_UNUSED_ARG (abstime);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_cond_wait (pace_pthread_cond_t * cond,
- pace_pthread_mutex_t * mutex)
-{
- PACE_UNUSED_ARG (cond);
- PACE_UNUSED_ARG (mutex);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_destroy (pace_pthread_condattr_t * attr)
-{
- PACE_UNUSED_ARG (attr);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_getpshared (const pace_pthread_condattr_t * attr,
- int * pshared)
-{
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (pshared);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_init (pace_pthread_condattr_t * attr)
-{
- PACE_UNUSED_ARG (attr);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_condattr_setpshared (pace_pthread_condattr_t * attr,
- int pshared)
-{
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (pshared);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_detach (pace_pthread_t thread)
-{
- PACE_UNUSED_ARG (thread);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_equal (pace_pthread_t t1, pace_pthread_t t2)
-{
- return t1 == t2;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void
-pace_pthread_exit (void * value_ptr)
-{
- PACE_UNUSED_ARG (value_ptr);
- PACE_ERRNO_NO_SUPPORT ();
- return;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_pthread_getspecific (pace_pthread_key_t key)
-{
- void * retval = (void*)0;
- PACE_UNUSED_ARG (key);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_join (pace_pthread_t thread, void ** value_ptr)
-{
- PACE_UNUSED_ARG (thread);
- PACE_UNUSED_ARG (value_ptr);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_key_create (pace_pthread_key_t * key,
- void (*destructor)(void*))
-{
- PACE_UNUSED_ARG (key);
- PACE_UNUSED_ARG (destructor);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_key_delete (pace_pthread_key_t key)
-{
- PACE_UNUSED_ARG (key);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_kill (pace_pthread_t thread, int sig)
-{
- PACE_UNUSED_ARG (thread);
- PACE_UNUSED_ARG (sig);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_destroy (pace_pthread_mutex_t * mutex)
-{
- PACE_UNUSED_ARG (mutex);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_getprioceiling (pace_pthread_mutex_t * mutex,
- int * prioceiling)
-{
- PACE_UNUSED_ARG (mutex);
- PACE_UNUSED_ARG (prioceiling);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_init (pace_pthread_mutex_t * mutex,
- const pace_pthread_mutexattr_t * attr)
-{
- PACE_UNUSED_ARG (mutex);
- PACE_UNUSED_ARG (attr);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_lock (pace_pthread_mutex_t * mutex)
-{
- PACE_UNUSED_ARG (mutex);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_setprioceiling (pace_pthread_mutex_t * mutex,
- int prioceiling,
- int * old_ceiling)
-{
- PACE_UNUSED_ARG (mutex);
- PACE_UNUSED_ARG (prioceiling);
- PACE_UNUSED_ARG (old_ceiling);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_trylock (pace_pthread_mutex_t * mutex)
-{
- PACE_UNUSED_ARG (mutex);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutex_unlock (pace_pthread_mutex_t * mutex)
-{
- PACE_UNUSED_ARG (mutex);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_destroy (pace_pthread_mutexattr_t * attr)
-{
- PACE_UNUSED_ARG (attr);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_getprioceiling (pace_pthread_mutexattr_t * attr,
- int * prioceiling)
-{
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (prioceiling);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_getprotocol (const pace_pthread_mutexattr_t * attr,
- int * protocol)
-{
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (protocol);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_setprioceiling (pace_pthread_mutexattr_t * attr,
- int prioceiling)
-{
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (prioceiling);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_setprotocol (pace_pthread_mutexattr_t * attr,
- int protocol)
-{
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (protocol);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_getpshared (const pace_pthread_mutexattr_t * attr,
- int * pshared)
-{
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (pshared);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_init (pace_pthread_mutexattr_t * attr)
-{
- PACE_UNUSED_ARG (attr);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_mutexattr_setpshared (pace_pthread_mutexattr_t * attr,
- int pshared)
-{
- PACE_UNUSED_ARG (attr);
- PACE_UNUSED_ARG (pshared);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_once (pace_pthread_once_t * once_control,
- void (*void_routine) (void))
-{
- PACE_UNUSED_ARG (once_control);
- PACE_UNUSED_ARG (void_routine);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setcancelstate (int state, int * oldstate)
-{
- PACE_UNUSED_ARG (state);
- PACE_UNUSED_ARG (oldstate);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setcanceltype (int type, int * oldtype)
-{
- PACE_UNUSED_ARG (type);
- PACE_UNUSED_ARG (oldtype);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_setspecific (pace_pthread_key_t key, const void * value)
-{
- PACE_UNUSED_ARG (key);
- PACE_UNUSED_ARG (value);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_pthread_sigmask (int how, const pace_sigset_t * set,
- pace_sigset_t * oset)
-{
- PACE_UNUSED_ARG (how);
- PACE_UNUSED_ARG (set);
- PACE_UNUSED_ARG (oset);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void
-pace_pthread_testcancel ()
-{
- PACE_ERRNO_NO_SUPPORT ();
- return;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/win32/pthreadtypes.h b/PACE/pace/win32/pthreadtypes.h
deleted file mode 100644
index 9d578a56801..00000000000
--- a/PACE/pace/win32/pthreadtypes.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/pthreadtypes.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-/* Keep pthread types defined here as they just clutter up sys/types.h
-
- * Do NOT include this file directly!! Please include "sys/types.h". */
-
-#ifndef PACE_SYS_PTHREADTYPES_H_WIN32
-#define PACE_SYS_PTHREADTYPES_H_WIN32
-
-#include "pace/win32/schedtypes.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_PTHREAD_ATTR_T
-#define PACE_PTHREAD_ATTR_T 1
- typedef struct pthread_attr_t
- {
- int init_;
- int detach_state_;
- int policy_;
- pace_sched_param sparam_;
- int inherit_sched_;
- int contention_scope_;
- pace_size_t guard_size_;
- int stackaddr_set_ ;
- void * stack_addr_;
- pace_size_t stack_size_;
- } pace_pthread_attr_t;
-#endif /* PACE_PTHREAD_ATTR_T */
-
-#ifndef PACE_PTHREAD_COND_T
-#define PACE_PTHREAD_COND_T 1
- typedef struct pthread_cond_t
- {
-#if 0
- /* Concurrent access protection. */
- struct _pthread_fastlock __c_lock;
-
- /* Pool of threads waiting. */
- _pthread_descr __c_waiting;
-#endif
- int a;
-
- } pace_pthread_cond_t;
-
-#endif /* PACE_PTHREAD_COND_T */
-
-#ifndef PACE_PTHREAD_CONDATTR_T
-#define PACE_PTHREAD_CONDATTR_T 1
- typedef struct pthread_condattr_t
- {
- int not_used_;
- } pace_pthread_condattr_t;
-#endif /* PACE_PTHREAD_CONDATTR_T */
-
-#ifndef PACE_PTHREAD_KEY_T
-#define PACE_PTHREAD_KEY_T 1
- typedef unsigned int pthread_key_t;
- typedef pthread_key_t pace_pthread_key_t;
-#endif /* PACE_PTHREAD_KEY_T */
-
-#ifndef PACE_PTHREAD_MUTEX_T
-#define PACE_PTHREAD_MUTEX_T 1
- typedef struct pthread_mutex_t
- {
- /* Depth of recursive locking */
- int recursive_count_;
-
-#if 0
- /* Owner thread (if recursive or errcheck) */
- _pthread_descr __m_owner;
-#endif
-
- /* Mutex kind: fast, recursive or errcheck */
- int type_;
-
- union
- {
- HANDLE proc_mutex_;
- CRITICAL_SECTION thr_mutex_;
- };
-
-#if 0
- /* Underlying fast lock */
- struct _pthread_fastlock __m_lock;
-#endif
-
- } pace_pthread_mutex_t;
-#endif /* PACE_PTHREAD_MUTEX_T */
-
-#ifndef PACE_PTHREAD_MUTEXATTR_T
-#define PACE_PTHREAD_MUTEXATTR_T
- typedef struct pthread_mutexattr_t
- {
- int mutex_kind_;
- } pace_pthread_mutexattr_t;
-#endif /* PACE_PTHREAD_MUTEXATTR_T */
-
-#ifndef PACE_PTHREAD_ONCE
-#define PACE_PTHREAD_ONCE
-
- typedef int pthread_once_t;
- typedef pthread_once_t pace_pthread_once_t;
-
-#endif /* PACE_PTHREAD_ONCE */
-
-#ifndef PACE_PTHREAD_T
-#define PACE_PTHREAD_T
- typedef HANDLE pace_pthread_t;
- typedef DWORD pace_idpthread_t;
-#endif /* PACE_PTHREAD_T */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_PTHREADTYPES_H_WIN32 */
diff --git a/PACE/pace/win32/pwd.c b/PACE/pace/win32/pwd.c
deleted file mode 100644
index bb58fd5ce40..00000000000
--- a/PACE/pace/win32/pwd.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/pwd.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/pwd.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/pwd.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/pwd.h b/PACE/pace/win32/pwd.h
deleted file mode 100644
index f66e326d96c..00000000000
--- a/PACE/pace/win32/pwd.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/pwd.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_PWD_H_WIN32
-#define PACE_PWD_H_WIN32
-
-#include "pace/sys/types.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_PASSWD
-#define PACE_PASSWD
- typedef struct passwd { int a_; } pace_passwd;
-#endif /* PACE_PASSWD */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_PWD_H_WIN32 */
diff --git a/PACE/pace/win32/pwd.inl b/PACE/pace/win32/pwd.inl
deleted file mode 100644
index 24e9f7b1f10..00000000000
--- a/PACE/pace/win32/pwd.inl
+++ /dev/null
@@ -1,72 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/pwd.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_passwd *
-pace_getpwuid (pace_uid_t uid)
-{
- pace_passwd * retval = (pace_passwd*)0;
- PACE_UNUSED_ARG (uid);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getpwuid_r (pace_uid_t uid,
- pace_passwd * pwd,
- char * buffer,
- pace_size_t bufsize,
- pace_passwd ** result)
-{
- PACE_UNUSED_ARG (uid);
- PACE_UNUSED_ARG (pwd);
- PACE_UNUSED_ARG (buffer);
- PACE_UNUSED_ARG (bufsize);
- PACE_UNUSED_ARG (result);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
-
-#if (PACE_HAS_POSIX_SD_UOF)
-PACE_INLINE
-pace_passwd *
-pace_getpwnam (const char * name)
-{
- pace_passwd * retval = (pace_passwd*)0;
- PACE_UNUSED_ARG (name);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_SD_UOF */
-
-#if (PACE_HAS_POSIX_SDR_UOF)
-PACE_INLINE
-int
-pace_getpwnam_r (const char * name,
- pace_passwd * pwd,
- char * buffer,
- pace_size_t bufsize,
- pace_passwd ** result)
-{
- PACE_UNUSED_ARG (name);
- PACE_UNUSED_ARG (pwd);
- PACE_UNUSED_ARG (buffer);
- PACE_UNUSED_ARG (bufsize);
- PACE_UNUSED_ARG (result);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SDR_UOF */
diff --git a/PACE/pace/win32/sched.c b/PACE/pace/win32/sched.c
deleted file mode 100644
index 9438ab245c5..00000000000
--- a/PACE/pace/win32/sched.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/sched.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sched.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/sched.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/sched.h b/PACE/pace/win32/sched.h
deleted file mode 100644
index 6c04ae6b995..00000000000
--- a/PACE/pace/win32/sched.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/sched.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SCHED_H_WIN32
-#define PACE_SCHED_H_WIN32
-
- /* These definitions are used in other files.
- * Separate the declarations from the definitions to avoid circular
- * inclusion. ie: some other funcs just need the typedefs and structs. */
-
-#include "pace/win32/schedtypes.h"
-#include "pace/time.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SCHED_H_WIN32 */
diff --git a/PACE/pace/win32/sched.inl b/PACE/pace/win32/sched.inl
deleted file mode 100644
index 06577337db6..00000000000
--- a/PACE/pace/win32/sched.inl
+++ /dev/null
@@ -1,103 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/sched.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_get_priority_max (int policy)
-{
- PACE_UNUSED_ARG (policy);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_get_priority_min (int policy)
-{
- PACE_UNUSED_ARG (policy);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_getparam (pace_pid_t pid,
- pace_sched_param * param)
-{
- PACE_UNUSED_ARG (pid);
- PACE_UNUSED_ARG (param);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_rr_get_interval (pace_pid_t pid,
- pace_timespec * interval)
-{
- PACE_UNUSED_ARG (pid);
- PACE_UNUSED_ARG (interval);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_setparam (pace_pid_t pid,
- const pace_sched_param * param)
-{
- PACE_UNUSED_ARG (pid);
- PACE_UNUSED_ARG (param);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_getscheduler (pace_pid_t pid)
-{
- PACE_UNUSED_ARG (pid);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_setscheduler (pace_pid_t pid,
- int policy,
- const pace_sched_param * param)
-{
- PACE_UNUSED_ARG (pid);
- PACE_UNUSED_ARG (policy);
- PACE_UNUSED_ARG (param);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sched_yield ()
-{
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/win32/schedtypes.h b/PACE/pace/win32/schedtypes.h
deleted file mode 100644
index b3358e0c5db..00000000000
--- a/PACE/pace/win32/schedtypes.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/schedtypes.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-/* Keep sched types defined here as they need to be in more than one
- * file and otherwise cause circular dependencies.
-
- * Do NOT include this file directly!! Please include "pace/sched.h". */
-
-#ifndef PACE_SYS_SCHEDTYPES_H_WIN32
-#define PACE_SYS_SCHEDTYPES_H_WIN32
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- /* These are defined via POSIX, but win32 is not POSIX compliant!
- * So please forgive me for these (non pace prefix) sins! */
-
-#ifndef SCHED_OTHER
-#define SCHED_OTHER 0
-#endif /* SCHED_RR */
-
-#ifndef SCHED_FIFO
-#define SCHED_FIFO 1
-#endif /* SCHED_FIFO */
-
-#ifndef SCHED_RR
-#define SCHED_RR 2
-#endif /* SCHED_RR */
-
-#ifndef PACE_SCHED_OTHER
-#define PACE_SCHED_OTHER SCHED_OTHER
-#endif /* PACE_SCHED_OTHER */
-
-#ifndef PACE_SCHED_FIFO
-#define PACE_SCHED_FIFO SCHED_FIFO
-#endif /* PACE_SCHED_FIFO */
-
-#ifndef PACE_SCHED_RR
-#define PACE_SCHED_RR SCHED_RR
-#endif /* PACE_SCHED_RR */
-
-#ifndef PACE_SCHED_PARAM
-#define PACE_SCHED_PARAM 1
- typedef struct sched_param
- {
- int sched_priority;
- } pace_sched_param;
-#endif
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_SCHEDTYPES_H_WIN32 */
diff --git a/PACE/pace/win32/semaphore.c b/PACE/pace/win32/semaphore.c
deleted file mode 100644
index 23728df5c29..00000000000
--- a/PACE/pace/win32/semaphore.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/semaphore.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/semaphore.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/semaphore.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-# include <stdio.h>
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-sem_close (pace_sem_t * sem)
-{
- PACE_WIN32CALL_RETURN
- (PACE_ADAPT_RETVAL
- (CloseHandle (sem), pace_result_), int, -1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-sem_destroy (pace_sem_t * sem)
-{
- PACE_WIN32CALL_RETURN
- (PACE_ADAPT_RETVAL
- (CloseHandle (sem), pace_result_), int, -1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-sem_init (pace_sem_t * sem, int pshared, unsigned int value)
-{
- PACE_UNUSED_ARG (pshared);
-
- /* Create the semaphore with its value initialized to <count> and
- its maximum value initialized to <max>.
-
- How do we want to call CreateSemaphore? What about the char *?
- */
- *sem = CreateSemaphore (0, value, 2147483647, "noname");
-
- if (*sem == 0)
- {
- PACE_FAIL_RETURN (-1);
- }
- /* NOTREACHED */
- else
- {
- return 0;
- }
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-sem_post (pace_sem_t * sem)
-{
- PACE_WIN32CALL_RETURN
- (PACE_ADAPT_RETVAL
- (ReleaseSemaphore (*sem, 1, 0), pace_result_), int, -1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-sem_trywait (pace_sem_t * sem)
-{
- int result = WaitForSingleObject (*sem, 0);
-
- if (result == WAIT_OBJECT_0)
- {
- return 0;
- }
- else
- {
- if (result == WAIT_TIMEOUT)
- {
- errno = EBUSY;
- }
- else
- {
- errno = GetLastError ();
- }
- /* This is a hack, we need to find an appropriate mapping... */
- return -1;
- }
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-sem_wait (pace_sem_t * sem)
-{
- switch (WaitForSingleObject (*sem, INFINITE))
- {
- case WAIT_OBJECT_0:
- return 0;
- default:
- /* This is a hack, we need to find an appropriate mapping... */
- errno = GetLastError ();
- return -1;
- }
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
diff --git a/PACE/pace/win32/semaphore.h b/PACE/pace/win32/semaphore.h
deleted file mode 100644
index 7abd89211f0..00000000000
--- a/PACE/pace/win32/semaphore.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/semaphore.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SEMAPHORE_H_WIN32
-#define PACE_SEMAPHORE_H_WIN32
-
-#include <windows.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_SEM_T
-#define PACE_SEM_T
- typedef HANDLE pace_sem_t;
-#endif /* PACE_SEM_T */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int sem_close (pace_sem_t * sem);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int sem_destroy (pace_sem_t * sem);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int sem_init (pace_sem_t * sem, int pshared, unsigned int value);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- PACE_INLINE pace_sem_t * sem_open (const char * name, int oflag, ...);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int sem_post (pace_sem_t * sem);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int sem_trywait (pace_sem_t * sem);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int sem_wait (pace_sem_t * sem);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SEMAPHORE_H_WIN32 */
diff --git a/PACE/pace/win32/semaphore.inl b/PACE/pace/win32/semaphore.inl
deleted file mode 100644
index dea94013317..00000000000
--- a/PACE/pace/win32/semaphore.inl
+++ /dev/null
@@ -1,108 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/semaphore.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <io.h>
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_close (pace_sem_t * sem)
-{
- return sem_close (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_destroy (pace_sem_t * sem)
-{
- return sem_destroy (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_getvalue (pace_sem_t * sem, int * sval)
-{
- PACE_UNUSED_ARG (sem);
- PACE_UNUSED_ARG (sval);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_init (pace_sem_t * sem,
- int pshared,
- unsigned int value)
-{
- return sem_init (sem, pshared, value);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_sem_t *
-pace_sem_open (const char * name, int oflag, ...)
-{
- PACE_UNUSED_ARG (name);
- PACE_UNUSED_ARG (oflag);
- return (pace_sem_t)NULL;
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_post (pace_sem_t * sem)
-{
- return sem_post (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_trywait (pace_sem_t * sem)
-{
- return sem_trywait (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_unlink (const char * name)
-{
-#if defined (__BORLANDC__)
- return unlink (name);
-#else /* __BORLANDC__ */
- return _unlink (name);
-#endif /* __BORLANDC__ */
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sem_wait (pace_sem_t * sem)
-{
- return sem_wait (sem);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
diff --git a/PACE/pace/win32/setjmp.c b/PACE/pace/win32/setjmp.c
deleted file mode 100644
index b245f6fe3c1..00000000000
--- a/PACE/pace/win32/setjmp.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/setjmp.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/setjmp.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/setjmp.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/setjmp.h b/PACE/pace/win32/setjmp.h
deleted file mode 100644
index bd8b44ad1fd..00000000000
--- a/PACE/pace/win32/setjmp.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/setjmp.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SETJMP_H_WIN32
-#define PACE_SETJMP_H_WIN32
-
-#include <setjmp.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-# define PACE_SIGJLEN 128
-
-# ifndef PACE_JMP_BUF
-# define PACE_JMP_BUF
- typedef jmp_buf pace_jmp_buf;
-#endif /* PACE_JMP_BUF */
-
-# ifndef PACE_SIGJMP_BUF
-# define PACE_SIGJMP_BUF
- typedef long sigjmp_buf[PACE_SIGJLEN];
- typedef sigjmp_buf pace_sigjmp_buf;
-#endif /* PACE_SIGJMP_BUF */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SETJMP_H_WIN32 */
diff --git a/PACE/pace/win32/setjmp.inl b/PACE/pace/win32/setjmp.inl
deleted file mode 100644
index d3be714dfd4..00000000000
--- a/PACE/pace/win32/setjmp.inl
+++ /dev/null
@@ -1,36 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/setjmp.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_longjmp (pace_jmp_buf env, int val)
-{
- longjmp (env, val);
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-void
-pace_siglongjmp (pace_sigjmp_buf env, int val)
-{
- PACE_UNUSED_ARG (env);
- PACE_UNUSED_ARG (val);
- PACE_ERRNO_NO_SUPPORT ();
- return;
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
diff --git a/PACE/pace/win32/signal.c b/PACE/pace/win32/signal.c
deleted file mode 100644
index f0d1685971a..00000000000
--- a/PACE/pace/win32/signal.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/signal.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/signal.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/signal.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-int
-sigaction (int sig, const pace_sigaction_s * act,
- pace_sigaction_s * oact)
-{
- pace_sigaction_s sa;
-
- if (oact == 0)
- {
- oact = &sa;
- }
-
- if (act == 0)
- {
- oact->sa_handler = signal (sig, SIG_IGN);
- signal (sig, oact->sa_handler);
- }
- else
- {
- oact->sa_handler = signal (sig, act->sa_handler);
- }
- return (oact->sa_handler == SIG_ERR ? -1 : 0);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
diff --git a/PACE/pace/win32/signal.h b/PACE/pace/win32/signal.h
deleted file mode 100644
index 8795f8726b6..00000000000
--- a/PACE/pace/win32/signal.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/signal.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-
-#ifndef PACE_SIGNAL_H_WIN32
-#define PACE_SIGNAL_H_WIN32
-
-#include "pace/sys/types.h"
-#include "pace/time.h"
-#include <signal.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_SIGATOMIC_T
-#define PACE_SIGATOMIC_T
- typedef sig_atomic_t pace_sig_atomic_t;
-#endif /* PACE_SIGATOMIC_T */
-
-#ifndef PACE_SIGSET_T
-#define PACE_SIGSET_T
- enum { PACE_SIG_BITS = 4 };
- typedef struct /* sigset_t */ {
- /* signal set type */
- unsigned int sigbits_[PACE_SIG_BITS];
- } pace_sigset_t;
-#endif /* PACE_SIGSET_T */
-
-#ifndef PACE_SIGACTION_S
-#define PACE_SIGACTION_S
- typedef void (__cdecl *pace_sig_pf)(int);
- typedef struct /* sigaction */ {
- int sa_flags;
- pace_sig_pf sa_handler;
- pace_sigset_t sa_mask;
- } pace_sigaction_s;
-#endif /* PACE_SIGACTION_S */
-
-#ifndef PACE_SIGINFO_T
-#define PACE_SIGINFO_T
- typedef struct /* siginfo_t */ {
-
- PACE_HANDLE si_handle_;
- // Win32 HANDLE that has become signaled.
-
- PACE_HANDLE *si_handles_;
- // Array of Win32 HANDLEs all of which have become signaled.
- } pace_siginfo_t;
-# endif /* PACE_SIGINFO_T */
-
-#ifndef PACE_SIGEVENT
- typedef struct sigevent pace_sigevent;
-#endif /* PACE_SIGEVENT */
-
-#ifndef PACE_SIGVAL
- typedef union sigval pace_sigval;
-#endif /* PACE_SIGVAL */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
- int sigaction (int sig, const pace_sigaction_s * act,
- pace_sigaction_s * oact);
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SIGNAL_H_WIN32 */
diff --git a/PACE/pace/win32/signal.inl b/PACE/pace/win32/signal.inl
deleted file mode 100644
index 437d609f926..00000000000
--- a/PACE/pace/win32/signal.inl
+++ /dev/null
@@ -1,193 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/signal.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_kill (pace_pid_t pid, int sig)
-{
- PACE_UNUSED_ARG (pid);
- PACE_UNUSED_ARG (sig);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_raise (int sig)
-{
- PACE_UNUSED_ARG (sig);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigaction (int sig, const pace_sigaction_s * act,
- pace_sigaction_s * oact)
-{
- return sigaction (sig, act, oact);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigaddset (pace_sigset_t * set, int signo)
-{
- PACE_UNUSED_ARG (set);
- PACE_UNUSED_ARG (signo);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigemptyset (pace_sigset_t * set)
-{
- PACE_UNUSED_ARG (set);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigdelset (pace_sigset_t * set, int signo)
-{
- PACE_UNUSED_ARG (set);
- PACE_UNUSED_ARG (signo);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigfillset (pace_sigset_t * set)
-{
- /* PACE_SIG_BITS is an enum defined in PACE/pace/win32/signal.inl */
- int i = 0;
- for ( ; i < PACE_SIG_BITS; ++i)
- {
- set->sigbits_[i] = ~(unsigned int)0;
- }
- return 0;
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigismember (const pace_sigset_t * set, int signo)
-{
- PACE_UNUSED_ARG (set);
- PACE_UNUSED_ARG (signo);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void
-(*pace_signal(int sig, void (*func)(int)))(int)
-{
- return signal (sig, func);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigpending (pace_sigset_t * set)
-{
- PACE_UNUSED_ARG (set);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigprocmask (int how, const pace_sigset_t * set,
- pace_sigset_t * oset)
-{
- PACE_UNUSED_ARG (how);
- PACE_UNUSED_ARG (set);
- PACE_UNUSED_ARG (oset);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigqueue (pace_pid_t pid, int signo,
- const pace_sigval value)
-{
- PACE_UNUSED_ARG (pid);
- PACE_UNUSED_ARG (signo);
- PACE_UNUSED_ARG (value);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_sigsuspend (const pace_sigset_t * sigmask)
-{
- PACE_UNUSED_ARG (sigmask);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigtimedwait (const pace_sigset_t * set, pace_siginfo_t * info,
- const pace_timespec * timeout)
-{
- PACE_UNUSED_ARG (set);
- PACE_UNUSED_ARG (info);
- PACE_UNUSED_ARG (timeout);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigwait (const pace_sigset_t * set, int * sig)
-{
- PACE_UNUSED_ARG (set);
- PACE_UNUSED_ARG (sig);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_sigwaitinfo (const pace_sigset_t * set, pace_siginfo_t * info)
-{
- PACE_UNUSED_ARG (set);
- PACE_UNUSED_ARG (info);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/win32/socket.c b/PACE/pace/win32/socket.c
deleted file mode 100644
index 682a843fe1b..00000000000
--- a/PACE/pace/win32/socket.c
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * $Id$
- */
-
-#include "pace/sys/socket.h"
-
-/*
- * Empty for win32.
- */
diff --git a/PACE/pace/win32/socket.h b/PACE/pace/win32/socket.h
deleted file mode 100644
index bfaaaab9953..00000000000
--- a/PACE/pace/win32/socket.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
- * $Id$
- *
- * Empty for win32.
- */
diff --git a/PACE/pace/win32/socket.inl b/PACE/pace/win32/socket.inl
deleted file mode 100644
index 62d778da847..00000000000
--- a/PACE/pace/win32/socket.inl
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * $Id$
- */
-
-/*
- * Empty for win32.
- */
diff --git a/PACE/pace/win32/stat.c b/PACE/pace/win32/stat.c
deleted file mode 100644
index 1f2bb2fabe5..00000000000
--- a/PACE/pace/win32/stat.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/stat.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sys/stat.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/stat.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#include <windows.h>
-#include <direct.h>
-
-#if (PACE_HAS_POSIX_FS_UOF)
-int
-pace_win32_mkdir (const char * path, pace_mode_t mode)
-{
- PACE_UNUSED_ARG (mode);
-# if defined (__IBMCPP__) && (__IBMCPP__ >= 400)
- PACE_OSCALL_RETURN (_mkdir ((char *) path), int, -1);
-# elif defined (PACE_WINCE)
- PACE_WIN32CALL_RETURN
- (PACE_ADAPT_RETVAL
- (CreateDirectory (path, NULL), pace_result_), int, -1);
-# else
- PACE_OSCALL_RETURN (_mkdir (path), int, -1);
-# endif /* PACE_WIN32 */
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/win32/stat.h b/PACE/pace/win32/stat.h
deleted file mode 100644
index e05363468ad..00000000000
--- a/PACE/pace/win32/stat.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/stat.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_STAT_H_WIN32
-#define PACE_SYS_STAT_H_WIN32
-
-#include "pace/sys/types.h"
-#include <sys/stat.h>
-#include <io.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_S_IRGRP S_IRGRP
-#define PACE_S_IROTH S_IROTH
-#define PACE_S_IRUSR S_IRUSR
-#define PACE_S_IRWXG S_IRWXG
-#define PACE_S_IRWXO S_IRWXO
-#define PACE_S_IRWXU S_IRWXU
-#define PACE_S_ISBLK S_ISBLK
-#define PACE_S_ISCHR S_ISCHR
-#define PACE_S_ISDIR S_ISDIR
-#define PACE_S_ISFIFO S_ISFIFO
-#define PACE_S_ISGID S_SIGID
-#define PACE_S_ISREG S_ISREG
-#define PACE_S_ISUID S_ISUID
-#define PACE_S_IWGRP S_IWGRP
-#define PACE_S_IWOTH S_IWOTH
-#define PACE_S_IWUSR S_IWUSR
-#define PACE_S_IXGRP S_IXGRP
-#define PACE_S_IXOTH S_IXOTH
-#define PACE_S_IXUSR S_IXUSR
-#define PACE_S_TYPEISMQ S_TYPEISMQ
-#define PACE_S_TYPEISSEM S_TYPEISSEM
-#define PACE_S_TYPEISMQ S_TYPEISMQ
-#define PACE_S_TYPEISSEM S_TYPEISSEM
-#define PACE_S_TYPEISSHM S_TYPEISSHM
-
-#ifndef PACE_STAT
-#define PACE_STAT
- typedef struct stat pace_stat_s;
-#endif /* PACE_STAT */
-
-#if (PACE_HAS_POSIX_FS_UOF)
- int pace_win32_mkdir (const char * path, pace_mode_t mode);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_STAT_H_WIN32 */
diff --git a/PACE/pace/win32/stat.inl b/PACE/pace/win32/stat.inl
deleted file mode 100644
index 4ebc17eed86..00000000000
--- a/PACE/pace/win32/stat.inl
+++ /dev/null
@@ -1,99 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/stat.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_FA_UOF)
-PACE_INLINE
-int
-pace_chmod (const char * path, pace_mode_t mode)
-{
- PACE_UNUSED_ARG (path);
- PACE_UNUSED_ARG (mode);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FA_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fchmod (PACE_HANDLE fildes, pace_mode_t mode)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (mode);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_fstat (PACE_HANDLE fildes, pace_stat_s * buf)
-{
- /* There are two impl in ACE. This is the simpler. But requires
- * you to close the temporary file desc. */
- int retval = -1;
- int fd = _open_osfhandle ((long) fildes, 0);
- if (fd != -1)
- {
- retval = _fstat (fd, (struct _stat *) buf);
- }
-
- _close (fd);
-
- /* Remember to close the file handle. */
- return retval;
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_mkdir (const char * path, pace_mode_t mode)
-{
- return pace_win32_mkdir (path, mode);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_F_UOF)
-PACE_INLINE
-int
-pace_mkfifo (const char * path, pace_mode_t mode)
-{
- PACE_UNUSED_ARG (path);
- PACE_UNUSED_ARG (mode);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_F_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_stat (const char * path, pace_stat_s * buf)
-{
- return _stat (path, (struct _stat *)buf);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FA_UOF)
-PACE_INLINE
-pace_mode_t
-pace_umask (pace_mode_t cmask)
-{
-#if defined (__BORLANDC__)
- return umask (cmask);
-#else /* __BORLANDC__ */
- return _umask (cmask);
-#endif /* __BORLANDC__ */
-}
-#endif /* PACE_HAS_POSIX_FA_UOF */
diff --git a/PACE/pace/win32/stdio.c b/PACE/pace/win32/stdio.c
deleted file mode 100644
index 3aae70d32ca..00000000000
--- a/PACE/pace/win32/stdio.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/stdio.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/stdio.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/stdio.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-
-#if (PACE_HAS_POSIX_FM_UOF)
-int
-pace_win32_fseek (FILE * stream, long offset, int whence)
-{
-# if SEEK_SET != FILE_BEGIN \
- || SEEK_CUR != FILE_CURRENT \
- || SEEK_END != FILE_END
- //#error Windows NT is evil AND rude!
- switch (whence)
- {
- case SEEK_SET:
- whence = FILE_BEGIN;
- break;
- case SEEK_CUR:
- whence = FILE_CURRENT;
- break;
- case SEEK_END:
- whence = FILE_END;
- break;
- default:
- errno = EINVAL;
- return -1; // rather safe than sorry
- }
-# endif /* SEEK_SET != FILE_BEGIN
- || SEEK_CUR != FILE_CURRENT
- || SEEK_END != FILE_END */
- PACE_OSCALL_RETURN (fseek (stream, offset, whence), int, -1);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
diff --git a/PACE/pace/win32/stdio.h b/PACE/pace/win32/stdio.h
deleted file mode 100644
index f765305c77c..00000000000
--- a/PACE/pace/win32/stdio.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/stdio.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_STDIO_H_WIN32
-#define PACE_STDIO_H_WIN32
-
-#include <stdio.h>
-#include <stdarg.h>
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- typedef FILE PACE_FILE;
- typedef fpos_t pace_fpos_t;
-
-# ifndef PACE_BUSIZ
-# define PACE_BUFSIZ BUFSIZ
-# endif /* PACE_BUFSIZ */
-
-# ifndef PACE_EOF
-# define PACE_EOF EOF
-# endif /* PACE_EOF */
-
-# ifndef PACE_FILENAME_MAX
-# define PACE_FILENAME_MAX FILENAME_MAX
-# endif /* PACE_FILENAME_MAX */
-
-# ifndef PACE_L_ctermid
-# define PACE_L_ctermid L_ctermid
-# endif /* PACE_L_ctermid */
-
-# ifndef PACE_L_cuserid
-# define PACE_L_cuserid L_cuserid
-# endif /* PACE_L_cuserid */
-
-# ifndef PACE_NULL
-# define PACE_NULL NULL
-# endif /* PACE_NULL */
-
-# ifndef PACE_SEEK_CUR
-# define PACE_SEEK_CUR SEEK_CUR
-# endif /* PACE_SEEK_CUR */
-
-# ifndef PACE_SEEK_END
-# define PACE_SEEK_END SEEK_END
-# endif /* PACE_SEEK_END */
-
-# ifndef PACE_SEEK_SET
-# define PACE_SEEK_SET SEEK_SET
-# endif /* PACE_SEEK_SET */
-
-# ifndef PACE_TMP_MAX
-# define PACE_TMP_MAX TMP_MAX
-# endif /* PACE_TMP_MAX */
-
-# ifndef pace_stderr
-# define pace_stderr stderr
-# endif /* pace_stderr */
-
-# ifndef pace_stdout
-# define pace_stdout stdout
-# endif /* pace_stdout */
-
-# ifndef pace_stdin
-# define pace_stdin stdin
-# endif
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T 1
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STDIO_H_WIN32 */
diff --git a/PACE/pace/win32/stdio.inl b/PACE/pace/win32/stdio.inl
deleted file mode 100644
index 180140149b9..00000000000
--- a/PACE/pace/win32/stdio.inl
+++ /dev/null
@@ -1,464 +0,0 @@
-/* $Id$ -*- C -*-
-
- * ===========================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/stdio.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * =========================================================================== */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-void
-pace_clearerr (FILE * stream)
-{
- clearerr (stream);
- return;
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fclose (FILE * stream)
-{
- return fclose (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-char *
-pace_ctermid (char * s)
-{
- char * retval = (char*)0;
- PACE_UNUSED_ARG (s);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-FILE *
-pace_fdopen (int fildes,
- const char * type)
-{
-#if defined (__BORLANDC__)
- return fdopen (fildes, (char *)type);
-#else /* __BORLANDC__ */
- return fdopen (fildes, type);
-#endif /* __BORLANDC__ */
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_ferror (FILE * stream)
-{
- return ferror (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_feof (FILE * stream)
-{
- return feof (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fflush (FILE * stream)
-{
- return fflush (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fileno (FILE * stream)
-{
- return fileno (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fgetc (FILE * stream)
-{
- return fgetc (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fgetpos(PACE_FILE * stream,
- pace_fpos_t * pos)
-{
- return fgetpos (stream, pos);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-char *
-pace_fgets (char * s,
- int n,
- FILE * stream)
-{
- return fgets (s, n, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-void
-pace_flockfile (FILE * file)
-{
- PACE_UNUSED_ARG (file);
- PACE_ERRNO_NO_SUPPORT ();
- return;
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-FILE *
-pace_fopen (const char * filename,
- const char * mode)
-{
- return fopen (filename, mode);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fputc (int c, FILE * stream)
-{
- return fputc (c, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_fputs (const char * s, FILE * stream)
-{
- return fputs (s, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-size_t
-pace_fread (void * ptr,
- size_t size,
- size_t number_of_items,
- FILE * stream)
-{
- return fread (ptr,
- size,
- number_of_items,
- stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-FILE *
-pace_freopen (const char * filename,
- const char * mode,
- FILE * stream)
-{
- return freopen (filename, mode, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-int
-pace_fseek (FILE * stream,
- long offset,
- int whence)
-{
- return fseek (stream, offset, whence);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fsetpos(PACE_FILE * stream, const pace_fpos_t * pos)
-{
- return fsetpos (stream, pos);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-long
-pace_ftell (FILE * stream)
-{
- return ftell (stream);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_ftrylockfile (FILE * file)
-{
- PACE_UNUSED_ARG (file);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-void
-pace_funlockfile (FILE * file)
-{
- PACE_UNUSED_ARG(file);
- PACE_ERRNO_NO_SUPPORT ();
- return;
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-pace_size_t
-pace_fwrite(const void * ptr,
- pace_size_t size, pace_size_t nmemb,
- PACE_FILE * stream)
-{
- return fwrite (ptr, size, nmemb, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_getc (FILE * stream)
-{
- return getc (stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_getc_unlocked (FILE * stream)
-{
- PACE_UNUSED_ARG (stream);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_getchar ()
-{
- return getchar ();
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_getchar_unlocked ()
-{
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-char *
-pace_gets (char * s)
-{
- return gets (s);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-void
-pace_perror (const char * s)
-{
- perror (s);
- return;
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_putc (int c, FILE * stream)
-{
- return putc (c, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_putc_unlocked (int c,
- FILE * stream)
-{
- PACE_UNUSED_ARG (c);
- PACE_UNUSED_ARG (stream);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_putchar (int c)
-{
- return putchar (c);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FL_UOF)
-PACE_INLINE
-int
-pace_putchar_unlocked (int c)
-{
- PACE_UNUSED_ARG(c);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FL_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_puts (const char * s)
-{
- return puts (s);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_remove (const char * path)
-{
- return remove (path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_rename (const char * old_name,
- const char * new_name)
-{
- return rename (old_name, new_name);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-void
-pace_rewind (FILE * stream)
-{
- rewind (stream);
- return;
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-void
-pace_setbuf (FILE * stream, char * buf)
-{
- setbuf (stream, buf);
- return;
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_setvbuf(PACE_FILE * stream,
- char * buf,
- int mode, pace_size_t size)
-{
- return setvbuf (stream, buf, mode, size);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-FILE *
-pace_tmpfile ()
-{
- return tmpfile ();
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-char *
-pace_tmpnam (char * s)
-{
- return tmpnam (s);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_ungetc (int c, FILE * stream)
-{
- return ungetc (c, stream);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_vfprintf (PACE_FILE * stream,
- const char * format,
- va_list arg)
-{
- return vfprintf (stream, format, arg);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_vprintf (const char * format,
- va_list arg)
-{
- return vprintf (format, arg);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_vsprintf (char * s,
- const char * format,
- va_list arg)
-{
- return vsprintf (s, format, arg);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
diff --git a/PACE/pace/win32/stdlib.c b/PACE/pace/win32/stdlib.c
deleted file mode 100644
index 2d6f593e75d..00000000000
--- a/PACE/pace/win32/stdlib.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/stdlib.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/stdlib.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/stdlib.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/stdlib.h b/PACE/pace/win32/stdlib.h
deleted file mode 100644
index 01a93eded34..00000000000
--- a/PACE/pace/win32/stdlib.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/stdlib.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_STDLIB_H_WIN32
-#define PACE_STDLIB_H_WIN32
-
-#include <stdlib.h>
-#include "pace/unistd.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
- typedef div_t pace_div_t;
- typedef ldiv_t pace_ldiv_t;
-
-# ifndef PACE_EXIT_FAILURE
-# define PACE_EXIT_FAILURE EXIT_FAILURE
-# endif /* PACE_EXIT_FAILURE */
-
-# ifndef PACE_EXIT_SUCCESS
-# define PACE_EXIT_SUCCESS EXIT_SUCCESS
-# endif /* PACE_EXIT_SUCCESS */
-
-# ifndef PACE_MB_CUR_MAX
-# define PACE_MB_CUR_MAX MB_CUR_MAX
-# endif /* PACE_MB_CUR_MAX */
-
-# ifndef PACE_NULL
-# define PACE_NULL NULL
-# endif /* PACE_NULL */
-
-# ifndef PACE_RAND_MAX
-# define PACE_RAND_MAX RAND_MAX
-# endif /* PACE_RAND_MAX */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T 1
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_WCHAR_T
-#define PACE_WCHAR_T 1
- typedef wchar_t pace_wchar_t;
-#endif /* PACE_WCHAR_T */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STDLIB_H_WIN32 */
diff --git a/PACE/pace/win32/stdlib.inl b/PACE/pace/win32/stdlib.inl
deleted file mode 100644
index 3597e1954dc..00000000000
--- a/PACE/pace/win32/stdlib.inl
+++ /dev/null
@@ -1,303 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/stdlib.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <stdlib.h>
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-void
-pace_abort (void)
-{
- abort ();
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_abs (int val)
-{
- return abs (val);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_atexit (void (*func)(void))
-{
- return atexit (func);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-double
-pace_atof (const char * str)
-{
- return atof (str);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_atoi (const char * str)
-{
- return atoi (str);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-long
-pace_atol (const char * str)
-{
- return atol (str);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void *
-pace_bsearch (const void *key, const void *base,
- size_t nel, size_t size,
- int (*compar)(const void *,const void *))
-{
- return bsearch (key, base, nel, size, compar);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_div_t
-pace_div (int numer, int denom)
-{
- return div (numer, denom);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-void
-pace_exit (int status)
-{
- exit (status);
- return;
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-char *
-pace_getenv (const char * name)
-{
- return getenv (name);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-long int
-pace_labs (long int j)
-{
- return labs (j);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_ldiv_t
-pace_ldiv (long int numer, long int denom)
-{
- return ldiv (numer, denom);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mblen (const char* s, pace_size_t n)
-{
- return mblen (s, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_size_t
-pace_mbstowcs (pace_wchar_t* pwcs,
- const char* s,
- pace_size_t n)
-{
- return mbstowcs (pwcs, s, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_mbtowc (pace_wchar_t* pwc,
- const char* s,
- pace_size_t n)
-{
- return mbtowc (pwc, s, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_qsort (void * base, size_t nel, size_t width,
- int (*compar)(const void *, const void *))
-{
- qsort (base, nel, width, compar);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_rand ()
-{
- return rand ();
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_srand (unsigned int seed)
-{
- srand (seed);
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-int
-pace_rand_r (unsigned int *seed)
-{
- PACE_UNUSED_ARG (seed);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-double
-pace_strtod (const char* nptr,
- char** endptr)
-{
- return strtod (nptr, endptr);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_strtol (const char* nptr,
- char** endptr,
- int base)
-{
- return strtol (nptr, endptr, base);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-unsigned long int
-pace_strtoul (const char* nptr,
- char** endptr,
- int base)
-{
- return strtoul (nptr, endptr, base);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_system (const char* string)
-{
- PACE_UNUSED_ARG (string);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_size_t
-pace_wcstombs (char* s,
- const pace_wchar_t* pwcs,
- pace_size_t n)
-{
- return wcstombs (s, pwcs, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_wctomb (char* s, pace_wchar_t wchar)
-{
- return wctomb (s, wchar);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-/* Memory Management. */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void *
-pace_malloc (size_t size)
-{
- return malloc (size);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void *
-pace_calloc (size_t nelem, size_t elsize)
-{
- return calloc (nelem, elsize);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_free (void * ptr)
-{
- free (ptr);
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void *
-pace_realloc (void * ptr, size_t size)
-{
- return realloc (ptr, size);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-
-
-
diff --git a/PACE/pace/win32/string.c b/PACE/pace/win32/string.c
deleted file mode 100644
index f7f79cc7fab..00000000000
--- a/PACE/pace/win32/string.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/string.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/string.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/string.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-char *
-strtok_r (char * s, const char * sep, char ** lasts)
-{
- int l_org;
- int l_sub;
-
- if (s == 0)
- s = *lasts;
- else
- *lasts = s;
- if (*s == 0) // We have reached the end
- return 0;
- l_org = pace_strlen (s);
- l_sub = pace_strlen (s = pace_strtok (s, sep));
- *lasts = s + l_sub;
- if (l_sub != l_org)
- *lasts += 1;
- return s ;
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
diff --git a/PACE/pace/win32/string.h b/PACE/pace/win32/string.h
deleted file mode 100644
index fdc5be5ab96..00000000000
--- a/PACE/pace/win32/string.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/string.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_STRING_H_WIN32
-#define PACE_STRING_H_WIN32
-
-#include "pace/unistd.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#if !defined (PACE_NULL)
-# define PACE_NULL NULL
-#endif /* NULL */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-char * strtok_r (char * s, const char * sep, char ** lasts);
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_STRING_H_WIN32 */
diff --git a/PACE/pace/win32/string.inl b/PACE/pace/win32/string.inl
deleted file mode 100644
index be669a7048c..00000000000
--- a/PACE/pace/win32/string.inl
+++ /dev/null
@@ -1,198 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/string.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <string.h>
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_memchr (const void *s, int c, pace_size_t n)
-{
- return memchr (s, c, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_memcmp (const void *s1, const void *s2, pace_size_t n)
-{
- return memcmp (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_memcpy (void * s1, const void * s2, pace_size_t n)
-{
- return memcpy (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_memmove (void *s1, const void *s2, pace_size_t n)
-{
- return memmove (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-void *
-pace_memset (void *s, int c, pace_size_t n)
-{
- return memset (s, c, n);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strcat (char * s1, const char * s2)
-{
- return strcat (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strncat (char * s1, const char * s2, size_t n)
-{
- return strncat (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strchr (const char * s, int c)
-{
- return strchr (s, c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strrchr (const char * s, int c)
-{
- return strrchr (s, c);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_strcmp (const char * s1, const char * s2)
-{
- return strcmp (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-int
-pace_strncmp (const char * s1, const char * s2, size_t n)
-{
- return strncmp (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strcpy (char * s1, const char * s2)
-{
- return strcpy (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strncpy (char * s1, const char * s2, size_t n)
-{
- return strncpy (s1, s2, n);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-size_t
-pace_strcspn (const char * s1, const char * s2)
-{
- return strcspn (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-size_t
-pace_strspn (const char * s1, const char * s2)
-{
- return strspn (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-size_t
-pace_strlen (const char * s)
-{
- return strlen (s);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strpbrk (const char * s1, const char * s2)
-{
- return strpbrk (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strstr (const char * s1, const char * s2)
-{
- return strstr (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_strtok (char * s1, const char * s2)
-{
- return strtok (s1, s2);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-char *
-pace_strtok_r (char * s, const char * sep, char ** lasts)
-{
- return strtok_r (s, sep, lasts);
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-
diff --git a/PACE/pace/win32/termios.c b/PACE/pace/win32/termios.c
deleted file mode 100644
index d5d32ced9a6..00000000000
--- a/PACE/pace/win32/termios.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/termios.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/termios.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/termios.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/termios.h b/PACE/pace/win32/termios.h
deleted file mode 100644
index 8d491f5f460..00000000000
--- a/PACE/pace/win32/termios.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/termios.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_TERMIOS_H_WIN32
-#define PACE_SYS_TERMIOS_H_WIN32
-
-#include "pace/sys/types.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS) */
-
-#ifndef PACE_CC_T
-#define PACE_CC_T
- /* Temporary until we correctly emulate these funcs on WIN32. */
- typedef int cc_t;
- typedef cc_t pace_cc_t;
-#endif /* PACE_CC_T */
-
-#ifndef PACE_SPEED_T
-#define PACE_SPEED_T
- /* Temporary until we correctly emulate these funcs on WIN32. */
- typedef int speed_t;
- typedef speed_t pace_speed_t;
-#endif /* PACE_SPEED_T */
-
-#ifndef PACE_TCFLAG_T
-#define PACE_TCFLAG_T
- /* Temporary until we correctly emulate these funcs on WIN32. */
- typedef int tcflag_t;
- typedef tcflag_t pace_tcflag_t;
-#endif /* PACE_TCFLAG_T */
-
-#ifndef PACE_TERMIOS
-#define PACE_TERMIOS
- /* Temporary until we correctly emulate these funcs on WIN32. */
- typedef struct termios { int a_; } pace_termios;
-#endif /* PACE_TERMIOS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TERMIOS_H_WIN32 */
diff --git a/PACE/pace/win32/termios.inl b/PACE/pace/win32/termios.inl
deleted file mode 100644
index 4b9905bff62..00000000000
--- a/PACE/pace/win32/termios.inl
+++ /dev/null
@@ -1,124 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/termios.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-speed_t
-pace_cfgetospeed (const pace_termios * termiosp)
-{
- PACE_UNUSED_ARG (termiosp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_cfsetospeed (pace_termios * termios_p, pace_speed_t speed)
-{
- PACE_UNUSED_ARG (termios_p);
- PACE_UNUSED_ARG (speed);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-speed_t
-pace_cfgetispeed (const pace_termios * termios_p)
-{
- PACE_UNUSED_ARG (termios_p);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_cfsetispeed (pace_termios * termios_p, pace_speed_t speed)
-{
- PACE_UNUSED_ARG (termios_p);
- PACE_UNUSED_ARG (speed);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcdrain (PACE_HANDLE fildes)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcgetattr (PACE_HANDLE fildes, pace_termios * termios_p)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (termios_p);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcflow (PACE_HANDLE fildes, int action)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (action);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcflush (PACE_HANDLE fildes, int queue_selector)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (queue_selector);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcsendbreak (PACE_HANDLE fildes, int duration)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (duration);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_tcsetattr (PACE_HANDLE fildes,
- int optional_actions,
- const pace_termios * termios_p)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (optional_actions);
- PACE_UNUSED_ARG (termios_p);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
diff --git a/PACE/pace/win32/time.c b/PACE/pace/win32/time.c
deleted file mode 100644
index f5ed95f59fa..00000000000
--- a/PACE/pace/win32/time.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/time.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/time.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/time.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/time.h b/PACE/pace/win32/time.h
deleted file mode 100644
index aeaf12e0771..00000000000
--- a/PACE/pace/win32/time.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/time.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_TIME_H_WIN32
-#define PACE_TIME_H_WIN32
-
-#include <time.h>
-#include "pace/sys/types.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-# ifndef PACE_CLK_TCK
-# define PACE_CLK_TCK CLK_TCK
-# endif /* PACE_CLK_TCK */
-
-# ifndef PACE_CLOCKS_PER_SEC
-# define PACE_CLOCKS_PER_SEC CLOCKS_PER_SEC
-# endif /* PACE_CLOCKS_PER_SEC */
-
-# ifndef PACE_CLOCK_REALTIME
-# define PACE_CLOCK_REALTIME CLOCK_REALTIME
-# endif /* PACE_CLOCK_REALTIME */
-
-# ifndef PACE_NULL
-# define PACE_NULL NULL
-# endif /* PACE_NULL */
-
-# ifndef PACE_TIMER_ABSTIME
-# define PACE_TIMER_ABSTIME TIMER_ABSTIME
-# endif /* PACE_TIMER_ABSTIME */
-
-#ifndef PACE_CLOCKID_T
-#define PACE_CLOCKID_T 1
- typedef int clockid_t;
- typedef clockid_t pace_clockid_t;
-#endif /* PACE_CLOCKID_T */
-
-#ifndef PACE_CLOCK_T
-#define PACE_CLOCK_T 1
- typedef clock_t pace_clock_t;
-#endif /* PACE_CLOCK_T */
-
-#ifndef PACE_TIMER_T
-#define PACE_TIMER_T 1
- typedef long timer_t;
- typedef timer_t pace_timer_t;
-#endif /* PACE_TIMER_T */
-
-#ifndef PACE_TIME_T
-#define PACE_TIME_T 1
- typedef time_t pace_time_t;
-#endif /* PACE_TIME_T */
-
-#ifndef PACE_TM
-#define PACE_TM 1
- typedef struct tm pace_tm;
-#endif /* PACE_TM */
-
-#ifndef PACE_TIMESPEC
-#define PACE_TIMESPEC 1
- typedef struct timespec pace_timespec;
-#endif /* PACE_TIMESPEC */
-
-#ifndef PACE_ITIMERSPEC
-#define PACE_ITIMERSPEC 1
- typedef struct itimerspec pace_itimerspec;
-#endif /* PACE_ITIMERSPEC */
-
-#ifndef PACE_SIGVAL
-#define PACE_SIGVAL 1
- typedef union sigval {
- int sival_int; /* integer value */
- void * sival_ptr; /* pointer value */
-} pace_sigval;
-#endif /* PACE_SIGVAL */
-
-#ifndef PACE_SIGEVENT
-#define PACE_SIGEVENT 1
- typedef struct sigevent {
- int sigev_notify; /* notification mode */
- int sigev_signo; /* signal number */
- union sigval sigev_value; /* signal value */
- void (*sigev_notify_function)(union sigval);
- pace_pthread_attr_t * sigev_notify_attributes;
- int __sigev_pad2;
- } pace_sigevent;
-#endif /* PACE_SIGEVENT */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_TIME_H_WIN32 */
diff --git a/PACE/pace/win32/time.inl b/PACE/pace/win32/time.inl
deleted file mode 100644
index 7550ef274ad..00000000000
--- a/PACE/pace/win32/time.inl
+++ /dev/null
@@ -1,265 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/time.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_asctime (const struct tm * time)
-{
- return asctime (time);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-char *
-pace_asctime_r (const struct tm * time, char * buf)
-{
- char * retval = (char*)0;
- PACE_UNUSED_ARG (time);
- PACE_UNUSED_ARG (buf);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-pace_clock_t
-pace_clock (void)
-{
- return clock ();
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-double
-pace_difftime (pace_time_t time1, pace_time_t time2)
-{
- return difftime (time1, time2);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_clock_getres (clockid_t clock_id,
- struct timespec * res)
-{
- PACE_UNUSED_ARG (clock_id);
- PACE_UNUSED_ARG (res);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_clock_gettime (clockid_t clock_id,
- struct timespec * tp)
-{
- PACE_UNUSED_ARG (clock_id);
- PACE_UNUSED_ARG (tp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_clock_settime (clockid_t clock_id,
- const struct timespec * tp)
-{
- PACE_UNUSED_ARG (clock_id);
- PACE_UNUSED_ARG (tp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-char *
-pace_ctime (const time_t * clock)
-{
- return ctime (clock);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-char *
-pace_ctime_r (const time_t * clock, char * buf)
-{
- char * retval = (char*)0;
- PACE_UNUSED_ARG (clock);
- PACE_UNUSED_ARG (buf);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-struct tm *
-pace_gmtime (const time_t * clock)
-{
- return gmtime (clock);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-struct tm *
-pace_gmtime_r (const time_t * clock, struct tm * result)
-{
- struct tm * retval = (struct tm*)0;
- PACE_UNUSED_ARG (clock);
- PACE_UNUSED_ARG (result);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-struct tm *
-pace_localtime (const time_t * clock)
-{
- return localtime (clock);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLSR_UOF)
-PACE_INLINE
-struct tm *
-pace_localtime_r (const time_t * clock, struct tm * result)
-{
- struct tm * retval = (struct tm*)0;
- PACE_UNUSED_ARG (clock);
- PACE_UNUSED_ARG (result);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_CLSR_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-time_t
-pace_mktime (struct tm * timeptr)
-{
- return mktime (timeptr);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_nanosleep (const struct timespec * rqtp,
- struct timespec * rmtp)
-{
- PACE_UNUSED_ARG (rqtp);
- PACE_UNUSED_ARG (rmtp);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-size_t
-pace_strftime (char * s, size_t maxsize,
- const char * format,
- const struct tm * timeptr)
-{
- return strftime (s, maxsize, format, timeptr);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-time_t
-pace_time (time_t * tloc)
-{
- return time (tloc);
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_create (clockid_t clock_id,
- struct sigevent * evp,
- pace_timer_t * timerid)
-{
- PACE_UNUSED_ARG (clock_id);
- PACE_UNUSED_ARG (evp);
- PACE_UNUSED_ARG (timerid);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_delete (pace_timer_t timerid)
-{
- PACE_UNUSED_ARG (timerid);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_getoverrun (pace_timer_t timerid)
-{
- PACE_UNUSED_ARG (timerid);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_gettime (pace_timer_t timerid,
- pace_itimerspec * value)
-{
- PACE_UNUSED_ARG (timerid);
- PACE_UNUSED_ARG (value);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_timer_settime (pace_timer_t timerid,
- int flags,
- const pace_itimerspec * value,
- pace_itimerspec * ovalue)
-{
- PACE_UNUSED_ARG (timerid);
- PACE_UNUSED_ARG (flags);
- PACE_UNUSED_ARG (value);
- PACE_UNUSED_ARG (ovalue);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_CLS_UOF)
-PACE_INLINE
-void
-pace_tzset ()
-{
- _tzset ();
- return;
-}
-#endif /* PACE_HAS_POSIX_CLS_UOF */
diff --git a/PACE/pace/win32/times.c b/PACE/pace/win32/times.c
deleted file mode 100644
index d699c0edd36..00000000000
--- a/PACE/pace/win32/times.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/times.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sys/times.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/times.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/times.h b/PACE/pace/win32/times.h
deleted file mode 100644
index 26a500cbf76..00000000000
--- a/PACE/pace/win32/times.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/times.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_TIMES_H_WIN32
-#define PACE_SYS_TIMES_H_WIN32
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_CLOCK_T
-#define PACE_CLOCK_T
- /* Temporary until we emulate this correctly. */
- typedef int clock_t;
- typedef clock_t pace_clock_t;
-#endif /* PACE_CLOCK_T */
-
-#ifndef PACE_TMS
-#define PACE_TMS
- /* Temporary until we emulate this correctly. */
- typedef struct tms { int a_; } pace_tms;
-#endif /* PACE_TMS */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TIMES_H_WIN32 */
diff --git a/PACE/pace/win32/times.inl b/PACE/pace/win32/times.inl
deleted file mode 100644
index 1f4765882dc..00000000000
--- a/PACE/pace/win32/times.inl
+++ /dev/null
@@ -1,24 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/times.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pace_clock_t
-pace_times (struct tms * buffer)
-{
- PACE_UNUSED_ARG (buffer);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
diff --git a/PACE/pace/win32/types.h b/PACE/pace/win32/types.h
deleted file mode 100644
index cd6a7b10cd8..00000000000
--- a/PACE/pace/win32/types.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/types.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_TYPES_H_WIN32
-#define PACE_SYS_TYPES_H_WIN32
-
-#include <sys/types.h>
-#if defined (__BORLANDC__)
-# include <windows.h>
-#else /* __BORLANDC__ */
-# include <wtypes.h>
-# include <windef.h>
-#endif /* __BORLANDC__ */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_TCHAR
-#define PACE_TCHAR 1
- typedef char pace_tchar;
-#endif /* PACE_TCHAR */
-
-#ifndef PACE_HANDLE
-#define PACE_HANDLE HANDLE
-#endif /* PACE_HANDLE */
-
-#ifndef PACE_INVALID_HANDLE
-#define PACE_INVALID_HANDLE (HANDLE)-1
-#endif /* PACE_INVALID_HANDLE */
-
-#ifndef PACE_DEV_T
-#define PACE_DEV_T 1
- typedef dev_t pace_dev_t;
-#endif /* PACE_DEV_T */
-
-#ifndef PACE_GID_T
-#define PACE_GID_T 1
- typedef int pace_gid_t;
-#endif /* PACE_GID_T */
-
-#ifndef PACE_INO_T
-#define PACE_INO_T 1
- typedef ino_t pace_ino_t;
-#endif /* PACE_INO_T */
-
-#ifndef PACE_MODE_T
-#define PACE_MODE_T 1
- typedef int pace_mode_t;
-#endif /* PACE_MODE_T */
-
-#ifndef PACE_NLINK_T
-#define PACE_NLINK_T 1
- typedef DWORD pace_nlink_t;
-#endif /* PACE_NLINK_T */
-
-#ifndef PACE_OFF_T
-#define PACE_OFF_T 1
- typedef off_t pace_off_t;
-#endif /* PACE_OFF_T */
-
-#ifndef PACE_PID_T
-#define PACE_PID_T 1
- typedef long pace_pid_t;
-#endif /* PACE_PID_T */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T 1
- typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_SSIZE_T
-#define PACE_SSIZE_T 1
- typedef long pace_ssize_t;
-#endif /* PACE_SSIZE_T */
-
-#ifndef PACE_UID_T
-#define PACE_UID_T 1
- typedef int pace_uid_t;
-#endif /* PACE_UID_T */
-
-#include "pace/win32/pthreadtypes.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_TYPES_H_WIN32 */
diff --git a/PACE/pace/win32/unistd.c b/PACE/pace/win32/unistd.c
deleted file mode 100644
index 1eda995d323..00000000000
--- a/PACE/pace/win32/unistd.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/unistd.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/unistd.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/unistd.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-int
-pace_win32_close (PACE_HANDLE fildes)
-{
- PACE_WIN32CALL_RETURN
- (PACE_ADAPT_RETVAL
- (CloseHandle (fildes), pace_result_), int, -1);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_HANDLE
-pace_win32_dup (PACE_HANDLE fildes)
-{
- PACE_HANDLE new_fd;
- if (DuplicateHandle(GetCurrentProcess (),
- fildes,
- GetCurrentProcess(),
- &new_fd,
- 0,
- TRUE,
- DUPLICATE_SAME_ACCESS))
- {
- return new_fd;
- }
- else
- {
- PACE_FAIL_RETURN (PACE_INVALID_HANDLE);
- }
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-int
-pace_win32_ftruncate (PACE_HANDLE fildes, pace_off_t length)
-{
- if (SetFilePointer (fildes, length, NULL, FILE_BEGIN) != (unsigned) -1)
- {
- PACE_WIN32CALL_RETURN
- (PACE_ADAPT_RETVAL
- (SetEndOfFile (fildes), pace_result_), int, -1);
- }
- else
- {
- PACE_FAIL_RETURN (-1);
- }
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-pace_off_t
-pace_win32_lseek (PACE_HANDLE fildes, pace_off_t offset, int whence)
-{
-# if SEEK_SET != FILE_BEGIN \
- || SEEK_CUR != FILE_CURRENT \
- || SEEK_END != FILE_END
-
- /* #error Windows NT is evil AND rude! */
- switch (whence) {
-
- case SEEK_SET: {
- whence = FILE_BEGIN;
- break;
- }
- case SEEK_CUR: {
- whence = FILE_CURRENT;
- break;
- }
- case SEEK_END: {
- whence = FILE_END;
- break;
- }
- default: {
- errno = EINVAL;
- return (off_t)-1; // rather safe than sorry
- }
- }
- PACE_OSCALL_RETURN (lseek (handle, offset, whence), off_t, -1);
-# endif /* SEEK_SET != FILE_BEGIN || SEEK_CUR != FILE_CURRENT || SEEK_END != FILE_END */
- DWORD result = SetFilePointer (fildes, offset, NULL, whence);
- if (result == PACE_SYSCALL_FAILED)
- {
- off_t retval = -1;
- PACE_FAIL_RETURN (retval);
- }
- else
- {
- return result;
- }
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-pace_ssize_t
-pace_win32_write (PACE_HANDLE fildes, const void * buf, size_t nbyte)
-{
- DWORD bytes_written; /* This is set to 0 byte WriteFile. */
-
- if (WriteFile (fildes, buf, nbyte, &bytes_written, 0))
- {
- return (pace_ssize_t) bytes_written;
- }
- else
- {
- PACE_FAIL_RETURN (-1);
- }
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-pace_ssize_t
-pace_win32_read (PACE_HANDLE fildes, void * buf, size_t nbyte)
-{
- DWORD ok_len;
-
- if (ReadFile (fildes, buf, nbyte, &ok_len, 0))
- {
- return (pace_ssize_t) ok_len;
- }
- else
- {
- PACE_FAIL_RETURN (-1);
- }
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
diff --git a/PACE/pace/win32/unistd.h b/PACE/pace/win32/unistd.h
deleted file mode 100644
index 1292cea5bd9..00000000000
--- a/PACE/pace/win32/unistd.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/unistd.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_UNISTD_H_WIN32
-#define PACE_UNISTD_H_WIN32
-
-#include "pace/sys/types.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-# ifndef PACE_F_OK
-# define PACE_F_OK F_OK
-# endif /* PACE_F_OK */
-
-# ifndef PACE_NULL
-# define PACE_NULL NULL
-# endif /* PACE_NULL */
-
-# ifndef PACE_R_OK
-# define PACE_R_OK R_OK
-# endif /* PACE_R_OK */
-
-# ifndef PACE_SEEK_CUR
-# define PACE_SEEK_CUR SEEK_CUR
-# endif /* PACE_SEEK_CUR */
-
-# ifndef PACE_SEEK_END
-# define PACE_SEEK_END SEEK_END
-# endif /* PACE_SEEK_END */
-
-# ifndef PACE_SEEK_SET
-# define PACE_SEEK_SET SEEK_SET
-# endif /* PACE_SEEK_SET */
-
-# ifndef PACE_STDERR_FILENO
-# define PACE_STDERR_FILENO STDERR_FILENO
-# endif /* PACE_STDERR_FILENO */
-
-# ifndef PACE_STDIN_FILENO
-# define PACE_STDIN_FILENO STDIN_FILENO
-# endif /* PACE_STDIN_FILENO */
-
-# ifndef PACE_STDOUT_FILENO
-# define PACE_STDOUT_FILENO STDOUT_FILENO
-# endif /* PACE_STDOUT_FILENO */
-
-# ifndef PACE_W_OK
-# define PACE_W_OK W_OK
-# endif /* PACE_W_OK */
-
-# ifndef PACE_X_OK
-# define PACE_X_OK X_OK
-# endif /* PACE_X_OK */
-
-/* _POSIX _PC _SC Macros go here */
-
-#ifndef PACE_SIZE_T
-#define PACE_SIZE_T 1
-typedef size_t pace_size_t;
-#endif /* PACE_SIZE_T */
-
-#ifndef PACE_SSIZE_T
-#define PACE_SSIZE_T 1
-typedef ssize_t pace_ssize_t;
-#endif /* PACE_SSIZE_T */
-
-#if (PACE_HAS_POSIX_DI_UOF)
- int pace_win32_close (PACE_HANDLE fildes);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
- PACE_HANDLE pace_win32_dup (PACE_HANDLE fildes);
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
- int pace_win32_ftruncate (PACE_HANDLE fildes, pace_off_t length);
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FM_UOF)
- pace_off_t pace_win32_lseek (PACE_HANDLE fildes,
- pace_off_t offset,
- int whence);
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
- pace_ssize_t pace_win32_write (PACE_HANDLE fildes,
- const void * buf,
- pace_size_t nbyte);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
- pace_ssize_t pace_win32_read (PACE_HANDLE fildes,
- void * buf,
- pace_size_t nbyte);
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_UNISTD_H_WIN32 */
-
-
-
-
diff --git a/PACE/pace/win32/unistd.inl b/PACE/pace/win32/unistd.inl
deleted file mode 100644
index 83f3f2a9e14..00000000000
--- a/PACE/pace/win32/unistd.inl
+++ /dev/null
@@ -1,514 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/unistd.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include <stdarg.h>
-#include <io.h>
-#include <stdio.h>
-#include <direct.h>
-#include <process.h>
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-void
-pace__exit (int status)
-{
- _exit (status);
- return;
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_access (const char * path, int amode)
-{
- return _access (path, amode);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-unsigned int
-pace_alarm (unsigned int seconds)
-{
- PACE_UNUSED_ARG (seconds);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_chdir (const char * path)
-{
-#if defined (__BORLANDC__)
- return chdir (path);
-#else /* __BORLANDC__ */
- return _chdir (path);
-#endif /* __BORLANDC__ */
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FA_UOF)
-PACE_INLINE
-int
-pace_chown (const char * path, pace_uid_t owner, pace_gid_t group)
-{
- PACE_UNUSED_ARG (path);
- PACE_UNUSED_ARG (owner);
- PACE_UNUSED_ARG (group);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FA_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-int
-pace_close (PACE_HANDLE fildes)
-{
- return pace_win32_close (fildes);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-PACE_HANDLE
-pace_dup (PACE_HANDLE fildes)
-{
- return pace_win32_dup (fildes);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-PACE_HANDLE
-pace_dup2 (PACE_HANDLE fildes, PACE_HANDLE fildes2)
-{
- PACE_HANDLE retval = (void*)0;
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (fildes2);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-int
-pace_execv (const char * path,
- char * const argv[])
-{
-#if defined (__BORLANDC__) || defined(__MINGW32__)
- return execv (path, argv);
-#else /* __BORLANDC__ || __MINGW32__ */
- return _execv (path, (const char * const *) argv);
-#endif /* __BORLANDC__ || __MINGW32__ */
- /* if successful, this operation does NOT return */
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-int
-pace_execve (const char * path,
- char * const argv[],
- char * const envp[])
-{
-#if defined (__BORLANDC__) || defined (__MINGW32__)
- return execve (path, argv, envp);
-#else /* __BORLANDC__ || __MINGW32__ */
- return _execve (path, (const char *const *) argv,
- (const char *const *) envp);
-#endif /* __BORLANDC__ || __MINGW32__ */
- /* if successful, this operation does NOT return */
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-int
-pace_execvp (const char * file,
- char * const argv[])
-{
-#if defined (__BORLANDC__) || defined (__MINGW32__)
- return execvp (file, argv);
-#else /* __BORLANDC__ || __MINGW32__ */
- return _execvp (file, (const char *const *) argv);
-#endif /* __BORLANDC__ || __MINGW32__ */
- /* if successful, this operation does NOT return */
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fdatasync (PACE_HANDLE fildes)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pace_pid_t
-pace_fork ()
-{
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-long
-pace_fpathconf (PACE_HANDLE fildes, int name)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (name);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_fsync (PACE_HANDLE fildes)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_ftruncate (PACE_HANDLE fildes, pace_off_t length)
-{
- return pace_win32_ftruncate (fildes, length);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-char *
-pace_getcwd (char * buf, size_t size)
-{
- return getcwd (buf, size);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-pace_uid_t
-pace_getegid ()
-{
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-pace_uid_t
-pace_geteuid ()
-{
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-int
-pace_getgroups (int gidsetsize, pace_gid_t grouplist[])
-{
- PACE_UNUSED_ARG (gidsetsize);
- PACE_UNUSED_ARG (grouplist);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-pace_uid_t
-pace_getgid ()
-{
- pace_uid_t retval = -1;
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-char *
-pace_getlogin ()
-{
- char * retval = (char*)0;
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_UGR_UOF)
-PACE_INLINE
-int
-pace_getlogin_r (char * name, size_t namesize)
-{
- PACE_UNUSED_ARG (name);
- PACE_UNUSED_ARG (namesize);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_UGR_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-pace_pid_t
-pace_getpgrp ()
-{
- pace_pid_t retval = -1;
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pace_pid_t
-pace_getpid ()
-{
- return GetCurrentProcessId ();
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pace_pid_t
-pace_getppid ()
-{
- pace_pid_t retval = -1;
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-pace_uid_t
-pace_getuid ()
-{
- pace_uid_t retval = -1;
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-int
-pace_isatty (int fildes)
-{
-#if defined (__BORLANDC__) || defined (__MINGW32__)
- return isatty (fildes);
-#else /* __BORLANDC__ || __MINGW32__ */
- return _isatty (fildes);
-#endif /* __BORLANDC__ || __MINGW32__ */
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_link (const char * existing, const char * new_link)
-{
- PACE_UNUSED_ARG (existing);
- PACE_UNUSED_ARG (new_link);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_FM_UOF)
-PACE_INLINE
-pace_off_t
-pace_lseek (PACE_HANDLE fildes, pace_off_t offset, int whence)
-{
- return pace_win32_lseek (fildes, offset, whence);
-}
-#endif /* PACE_HAS_POSIX_FM_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-long
-pace_pathconf (const char * path, int name)
-{
- PACE_UNUSED_ARG (path);
- PACE_UNUSED_ARG (name);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_SIG_UOF)
-PACE_INLINE
-int
-pace_pause ()
-{
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SIG_UOF */
-
-#if (PACE_HAS_POSIX_P_UOF)
-PACE_INLINE
-int
-pace_pipe (PACE_HANDLE fildes[2])
-{
- PACE_UNUSED_ARG (fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_P_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_read (PACE_HANDLE fildes, void * buf, pace_size_t nbyte)
-{
- return pace_win32_read (fildes, buf, nbyte);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_rmdir (const char * path)
-{
- return rmdir (path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-int
-pace_setgid (pace_gid_t gid)
-{
- PACE_UNUSED_ARG (gid);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_JC_UOF)
-PACE_INLINE
-int
-pace_setpgid (pace_pid_t pid, pace_pid_t pgid)
-{
- PACE_UNUSED_ARG (pid);
- PACE_UNUSED_ARG (pgid);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-pace_pid_t
-pace_setsid ()
-{
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_UG_UOF)
-PACE_INLINE
-int
-pace_setuid (pace_uid_t uid)
-{
- PACE_UNUSED_ARG (uid);
- PACE_ERRNO_NO_SUPPORT_RETURN (uid);
-}
-#endif /* PACE_HAS_POSIX_UG_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-unsigned int
-pace_sleep (unsigned int seconds)
-{
- Sleep (seconds * PACE_ONE_SECOND_IN_MSECS);
- return 0;
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_SP_UOF)
-PACE_INLINE
-long
-pace_sysconf (int name)
-{
- PACE_UNUSED_ARG (name);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SP_UOF */
-
-#if (PACE_HAS_POSIX_JC_UOF)
-PACE_INLINE
-pace_pid_t
-pace_tcgetpgrp (PACE_HANDLE fildes)
-{
- pace_pid_t retval = -1;
- PACE_UNUSED_ARG (fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
-#if (PACE_HAS_POSIX_JC_UOF)
-PACE_INLINE
-int
-pace_tcsetpgrp (PACE_HANDLE fildes, pace_pid_t pgrp_id)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (pgrp_id);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_JC_UOF */
-
-#if (PACE_HAS_POSIX_DS_UOF)
-PACE_INLINE
-char *
-pace_ttyname (PACE_HANDLE fildes)
-{
- char * retval = (char*) 0;
- PACE_UNUSED_ARG (fildes);
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
-}
-#endif /* PACE_HAS_POSIX_DS_UOF */
-
-#if (PACE_HAS_POSIX_NONUOF_FUNCS)
-PACE_INLINE
-int
-pace_ttyname_r (PACE_HANDLE fildes,
- char * name,
- size_t namesize)
-{
- PACE_UNUSED_ARG (fildes);
- PACE_UNUSED_ARG (name);
- PACE_UNUSED_ARG (namesize);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_NONUOF_FUNCS */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_unlink (const char * path)
-{
- return _unlink (path);
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if (PACE_HAS_POSIX_DI_UOF)
-PACE_INLINE
-pace_ssize_t
-pace_write (PACE_HANDLE fildes, const void * buf, size_t nbyte)
-{
- return pace_win32_write (fildes, buf, nbyte);
-}
-#endif /* PACE_HAS_POSIX_DI_UOF */
diff --git a/PACE/pace/win32/utime.c b/PACE/pace/win32/utime.c
deleted file mode 100644
index cafec0eb6cb..00000000000
--- a/PACE/pace/win32/utime.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/utime.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/utime.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/utime.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#if (PACE_HAS_POSIX_FS_UOF)
-int
-win32_utime (const char * path, const pace_utimbuf * times)
-{
- PACE_UNUSED_ARG (path);
- PACE_UNUSED_ARG (times);
-
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-
-#if 0
- /* Not yet working */
- char * path2 = (char*) malloc (sizeof (path));
- pace_strcpy (path2, path);
-
- pace_utimbuf * times2 = (pace_utimbuf*) malloc (sizeof (pace_utimbuf);
- memcpy (times2, times, sizeof times);
- return _utime (path2, times2);
-#endif
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/win32/utime.h b/PACE/pace/win32/utime.h
deleted file mode 100644
index 5b90db1bd70..00000000000
--- a/PACE/pace/win32/utime.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/utime.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_UTIME_H_WIN32
-#define PACE_UTIME_H_WIN32
-
-#include "pace/sys/types.h"
-#if defined (__BORLANDC__)
-#include <utime.h>
-#else
-#include <sys/utime.h>
-#endif /* __BORLANDC__ */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#ifndef PACE_UTIMBUF
-#define PACE_UTIMBUF
- typedef struct _utimbuf pace_utimbuf;
-#endif /* PACE_UTIMBUF */
-
-#if (PACE_HAS_POSIX_FS_UOF)
- int win32_utime (const char * path, const pace_utimbuf * times);
-#endif /* PACE_HAS_POSIX_FS_UOF */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_UTIME_H_WIN32 */
diff --git a/PACE/pace/win32/utime.inl b/PACE/pace/win32/utime.inl
deleted file mode 100644
index 4a83d7713e0..00000000000
--- a/PACE/pace/win32/utime.inl
+++ /dev/null
@@ -1,33 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/utime.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/string.h"
-
-#if (PACE_HAS_POSIX_FS_UOF)
-PACE_INLINE
-int
-pace_utime (const char * path,
- const pace_utimbuf * times)
-{
- /* Emulation not yet finished! Not yet working! */
-
-#if defined (__BORLANDC__)
- return utime (path, (const struct utimbuf*)times);
-#else /* __BORLANDC__ */
- /* Not quite the perfect answer... win32 doesn't take const args. */
- return _utime ((char*)path, (struct _utimbuf*)times);
-#endif /* __BORLANDC__ */
-}
-#endif /* PACE_HAS_POSIX_FS_UOF */
diff --git a/PACE/pace/win32/utsname.c b/PACE/pace/win32/utsname.c
deleted file mode 100644
index 9963f1ff624..00000000000
--- a/PACE/pace/win32/utsname.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/utsname.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sys/utsname.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/utsname.inl"
-#endif /* ! PACE_HAS_INLINE */
-
-#if (PACE_HAS_POSIX_SP_UOF)
-int
-uname (pace_utsname * name)
-{
- PACE_UNUSED_ARG (name);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-
-#if 0 /* Emulation: Not bug free! :-/ */
-
- size_t maxnamelen = sizeof name->nodename;
- pace_strcpy (name->sysname, "Win32");
-
- OSVERSIONINFO vinfo;
- vinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- ::GetVersionEx (&vinfo);
-
- SYSTEM_INFO sinfo;
- GetSystemInfo(&sinfo);
- pace_strcpy (name->sysname, "Win32");
-
- if (vinfo.dwPlatformId == VER_PLATFORM_WIN32_NT)
- {
- /* Get information from the two structures */
- pace_sprintf (name->release, "Windows NT %d.%d",
- vinfo.dwMajorVersion,
- vinfo.dwMinorVersion);
- pace_sprintf (name->version,
- "Build %d %s",
- vinfo.dwBuildNumber,
- vinfo.szCSDVersion);
-
- /* We have to make sure that the size of (processor + subtype) is
- not greater than the size of name->machine. So we give half
- the space to the processor and half the space to subtype. The
- -1 is necessary for because of the space between processor and
- subtype in the machine name.
- */
- const int bufsize = ((sizeof (name->machine) / sizeof (ACE_TCHAR)) / 2) - 1;
- char processor[bufsize] = "Unknown";
- char subtype[bufsize] = "Unknown";
-
- WORD arch = sinfo.wProcessorArchitecture;
-
- switch (arch)
- {
-
- case PROCESSOR_ARCHITECTURE_INTEL: {
-
- pace_strcpy (processor, "Intel");
- if (sinfo.wProcessorLevel == 3)
- {
- pace_strcpy (subtype, "80386");
- }
- else if (sinfo.wProcessorLevel == 4)
- {
- pace_strcpy (subtype, "80486");
- }
- else if (sinfo.wProcessorLevel == 5)
- {
- pace_strcpy (subtype, "Pentium");
- }
- else if (sinfo.wProcessorLevel == 6)
- {
- pace_strcpy (subtype, "Pentium Pro");
- }
- else if (sinfo.wProcessorLevel == 7) /* guessing here */
- {
- pace_strcpy (subtype, "Pentium II");
- }
- break;
- }
-
- case PROCESSOR_ARCHITECTURE_MIPS: {
- pace_strcpy (processor, "MIPS");
- pace_strcpy (subtype, "R4000");
- break;
- }
-
- case PROCESSOR_ARCHITECTURE_ALPHA: {
- pace_strcpy (processor, "Alpha");
- pace_sprintf (subtype, "%d", sinfo.wProcessorLevel);
- break;
- }
-
- case PROCESSOR_ARCHITECTURE_PPC: {
- pace_strcpy (processor, "PPC");
- if (sinfo.wProcessorLevel == 1)
- {
- pace_strcpy (subtype, "601");
- }
- else if (sinfo.wProcessorLevel == 3)
- {
- pace_strcpy (subtype, "603");
- }
- else if (sinfo.wProcessorLevel == 4)
- {
- pace_strcpy (subtype, "604");
- }
- else if (sinfo.wProcessorLevel == 6)
- {
- pace_strcpy (subtype, "603+");
- }
- else if (sinfo.wProcessorLevel == 9)
- {
- pace_strcpy (subtype, "804+");
- }
- else if (sinfo.wProcessorLevel == 20)
- {
- pace_strcpy (subtype, "620");
- }
- break;
- }
-
- case PROCESSOR_ARCHITECTURE_UNKNOWN: {
-
- default:
- {
- /* @@ We could provide WinCE specific info here. But let's
- defer that to some later point.
- */
- pace_strcpy (processor, "Unknown");
- break;
- }
- }
- }
- pace_sprintf(name->machine, "%s %s", processor, subtype);
- }
- else if (vinfo.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
- {
- // Get Windows 95 Information
- pace_strcpy (name->release, "Windows 95");
- pace_sprintf (name->version, "%d", LOWORD (vinfo.dwBuildNumber));
- if (sinfo.dwProcessorType == PROCESSOR_INTEL_386)
- {
- pace_strcpy (name->machine, "Intel 80386");
- }
- else if (sinfo.dwProcessorType == PROCESSOR_INTEL_486)
- {
- pace_strcpy (name->machine, "Intel 80486");
- }
- else if (sinfo.dwProcessorType == PROCESSOR_INTEL_PENTIUM)
- {
- pace_strcpy (name->machine, "Intel Pentium");
- }
- }
- else
- {
- /* We don't know what this is! */
- pace_strcpy (name->release, "???");
- pace_strcpy (name->version, "???");
- pace_strcpy (name->machine, "???");
- }
-
- /* ick */
- return ACE_OS::hostname (name->nodename, maxnamelen);
-
-#endif /* emulation */
-
-}
-#endif /* PACE_HAS_POSIX_SP_UOF */
diff --git a/PACE/pace/win32/utsname.h b/PACE/pace/win32/utsname.h
deleted file mode 100644
index c603b6b2c31..00000000000
--- a/PACE/pace/win32/utsname.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/utsname.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_SYS_UTSNAME_H_WIN32
-#define PACE_SYS_UTSNAME_H_WIN32
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-# ifndef PACE_UTSNAME
-# define PACE_UTSNAME
-# define PACE_SYS_NMLN 257
- typedef struct /* utsname */ {
- char sysname[PACE_SYS_NMLN];
- char nodename[PACE_SYS_NMLN];
- char release[PACE_SYS_NMLN];
- char version[PACE_SYS_NMLN];
- char machine[PACE_SYS_NMLN];
-} pace_utsname;
-# endif /* PACE_UTSNAME */
-
-#if (PACE_HAS_POSIX_SP_UOF)
- int uname (pace_utsname * name);
-#endif /* PACE_HAS_POSIX_SP_UOF */
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_SYS_UTSNAME_H_WIN32 */
diff --git a/PACE/pace/win32/utsname.inl b/PACE/pace/win32/utsname.inl
deleted file mode 100644
index bc79bb80db4..00000000000
--- a/PACE/pace/win32/utsname.inl
+++ /dev/null
@@ -1,26 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/utsname.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/string.h"
-
-#if (PACE_HAS_POSIX_SP_UOF)
-PACE_INLINE
-int
-pace_uname (pace_utsname * name)
-{
- PACE_UNUSED_ARG (name);
- PACE_ERRNO_NO_SUPPORT_RETURN (-1);
-}
-#endif /* PACE_HAS_POSIX_SP_UOF */
diff --git a/PACE/pace/win32/wait.c b/PACE/pace/win32/wait.c
deleted file mode 100644
index 6a4308040af..00000000000
--- a/PACE/pace/win32/wait.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/wait.c
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#include "pace/sys/wait.h"
-
-#if !defined (PACE_HAS_INLINE)
-# include "pace/win32/wait.inl"
-#endif /* ! PACE_HAS_INLINE */
diff --git a/PACE/pace/win32/wait.h b/PACE/pace/win32/wait.h
deleted file mode 100644
index cf2b7007afa..00000000000
--- a/PACE/pace/win32/wait.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* $Id$
-
- * ============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/wait.h
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================ */
-
-#ifndef PACE_WAIT_H_WIN32
-#define PACE_WAIT_H_WIN32
-
-#include "pace/sys/types.h"
-
-#if defined (PACE_HAS_CPLUSPLUS)
-extern "C" {
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#define PACE_WEXITSTATUS WEXITSTATUS
-#define PACE_WIFEXITED WIFEXITED
-#define PACE_WIFSIGNALED WISIGNALED
-#define PACE_WIFSTOPPED WIFSTOPPED
-#define PACE_WNOHANG WNOHANG
-#define PACE_WSTOPSIG WSTOPSIG
-#define PACE_WTERMSIG WTERMSIG
-#define PACE_WUNTRACED WUNTRACED
-
-#if defined (PACE_HAS_CPLUSPLUS)
-}
-#endif /* PACE_HAS_CPLUSPLUS */
-
-#endif /* PACE_WAIT_H_WIN32 */
diff --git a/PACE/pace/win32/wait.inl b/PACE/pace/win32/wait.inl
deleted file mode 100644
index 166a0936d10..00000000000
--- a/PACE/pace/win32/wait.inl
+++ /dev/null
@@ -1,45 +0,0 @@
-/* $Id$ -*- C -*-
-
- * =============================================================================
- *
- * = LIBRARY
- * pace
- *
- * = FILENAME
- * pace/win32/wait.inl
- *
- * = AUTHOR
- * Luther Baker
- *
- * ============================================================================= */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pace_pid_t
-pace_wait (int * statloc)
-{
- PACE_UNUSED_ARG (statloc);
-
- {
- pace_pid_t retval = -1;
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
- }
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
-
-#if (PACE_HAS_POSIX_MP_UOF)
-PACE_INLINE
-pace_pid_t
-pace_waitpid (pace_pid_t pid, int * statloc, int options)
-{
- PACE_UNUSED_ARG (pid);
- PACE_UNUSED_ARG (statloc);
- PACE_UNUSED_ARG (options);
-
- /* ACE version uses a HANDLE */
- {
- pace_pid_t retval = -1;
- PACE_ERRNO_NO_SUPPORT_RETURN (retval);
- }
-}
-#endif /* PACE_HAS_POSIX_MP_UOF */
diff --git a/PACE/tests/Cond_Var_Test.c b/PACE/tests/Cond_Var_Test.c
deleted file mode 100644
index eb7a073cfc3..00000000000
--- a/PACE/tests/Cond_Var_Test.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* $Id$ -*- C -*- */
-
-/* ===================================================================== */
-/* */
-/* = FILENAME */
-/* Cond_Var_Test.c */
-/* */
-/* = DESCRIPTION */
-/* Testing the platform for POSIX condition variables. This is not */
-/* meant to be an exhaustive test at this point but more a sanity */
-/* check that PACE works (at least somewhat) as advertised. */
-/* This program simply creates some threads, waits on a condition */
-/* variable, joins the threads, and then exits. */
-/* */
-/* This test is largely taken from the O'Reilly _Pthreads */
-/* Programming_ book and accompanying example code. */
-/* */
-/* = AUTHOR */
-/* Joe Hoffert <joeh@cs.wustl.edu> */
-/* */
-/* ===================================================================== */
-
-#include "pace/stdio.h"
-#include "pace/stdlib.h"
-#include "pace/pthread.h"
-
-#if defined (PACE_VXWORKS) && PACE_VXWORKS != 0
-#include "vxworks_stub.c"
-#endif /* VXWORKS */
-
-#define NUM_THREADS 3
-#define TCOUNT 10
-#define COUNT_THRES 12
-
-int count = 0;
-int thread_ids[3] = {0,1,2};
-#if defined (PACE_VXWORKS) && PACE_VXWORKS != 0
-/* VxWorks does not handle the *_ININITALIZER values and we
- * can not emulate it since it involves memory allocation for
- * VxWorks.
- */
-pace_pthread_mutex_t count_lock;
-pace_pthread_cond_t count_hit_threshold;
-#else
-pace_pthread_mutex_t count_lock = PACE_PTHREAD_MUTEX_INITIALIZER;
-pace_pthread_cond_t count_hit_threshold = PACE_PTHREAD_COND_INITIALIZER;
-#endif
-
-void *inc_count(void *idp)
-{
- int i = 0;
- /*int *my_id = idp;*/
- PACE_UNUSED_ARG (idp);
-
- pace_sleep(1);
-
- for (i = 0; i < TCOUNT; i++) {
- pace_pthread_mutex_lock(&count_lock);
- count++;
- /* pace_printf("inc_counter(): thread %d, count = %d, unlocking mutex\n",
- *my_id, count); */
- if (count == COUNT_THRES) {
- /* pace_printf("inc_count(): Thread %d, count %d\n", *my_id, count); */
- pace_pthread_cond_signal(&count_hit_threshold);
- }
- pace_pthread_mutex_unlock(&count_lock);
- }
-
- return(NULL);
-}
-
-void *watch_count(void *idp)
-{
- /*int *my_id = idp;*/
- PACE_UNUSED_ARG (idp);
-
- /* pace_printf("watch_count(): thread %d\n", *my_id); */
-
- pace_pthread_mutex_lock(&count_lock);
-
- while (count < COUNT_THRES) {
- pace_pthread_cond_wait(&count_hit_threshold, &count_lock);
- /* pace_printf("watch_count(): thread %d, count %d\n", *my_id, count); */
- }
-
- pace_pthread_mutex_unlock(&count_lock);
-
- return(NULL);
-}
-
-int
-main()
-{
- int i;
- pace_pthread_t threads[3];
-
-#if defined (PACE_VXWORKS) && PACE_VXWORKS != 0
- /* VxWorks does not handle the *_ININITALIZER values and we
- * can not emulate it since it involves memory allocation for
- * VxWorks.
- */
- pace_pthread_mutex_init(&count_lock, 0);
- pace_pthread_cond_init(&count_hit_threshold, 0);
-#endif
-
- pace_pthread_create(&threads[0], NULL, inc_count, (void *)&thread_ids[0]);
- pace_pthread_create(&threads[1], NULL, inc_count, (void *)&thread_ids[1]);
- pace_pthread_create(&threads[2], NULL, watch_count, (void *)&thread_ids[2]);
-
- for (i = 0; i < NUM_THREADS; i++) {
- pace_pthread_join(threads[i], NULL);
- }
-
- if (count < COUNT_THRES)
- {
- pace_printf ("### ERROR ###: count should be >= %d.\n",
- COUNT_THRES);
- pace_printf ("### ERROR ###: However, count == %d.\n",
- count);
- pace_exit (-1);
- }
-
- /* pace_printf ("main(): This should be the last print statement.\n"); */
-
-#if defined (PACE_VXWORKS) && PACE_VXWORKS != 0
- /* VxWorks does not handle the *_ININITALIZER values and we
- * can not emulate it since it involves memory allocation for
- * VxWorks. We need to explicitly delete the mutex and condition
- * variable allocated by the init calls.
- */
- pace_pthread_mutex_destroy(&count_lock);
- pace_pthread_cond_destroy(&count_hit_threshold);
-#endif /* PACE_VXWORKS && PACE_VXWORKS != 0 */
-
- return 0;
-}
diff --git a/PACE/tests/Makefile b/PACE/tests/Makefile
deleted file mode 100644
index 83e9eb5be83..00000000000
--- a/PACE/tests/Makefile
+++ /dev/null
@@ -1,204 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-# Makefile for all the PACE tests
-#----------------------------------------------------------------------------
-
-CFLAGS += -DPACE_HAS_ALL_POSIX_FUNCS
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-# Build POSIX_SP_Test conditionally. For some platforms, it doesn't build
-# (which is actually the test of support for the #defines).
-BIN = Cond_Var_Test \
- Pthread_Storage_Test \
- Pthreads_Test \
- Stdio_Test \
- Stat_Test
-
-BIN2 = mqueue_test \
- Posix_SP_Test
-
-#### If the PACE library wasn't built with all components, don't
-#### try to build certain tests.
-PACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --pace)
-
-PSRC=$(addsuffix .c,$(BIN))
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-ACELIB =
-
-# Don't include Posix_SP_Test and mqueue_test for a VxWorks build.
-# Posix_SP_Test doesn't compile (which is the test - seeing if the symbols
-# are available). So VxWorks obviously doesn't pass this test.
-# SA_RESTART is not defined for VxWorks so mqueue_test doesn't build
-# on that platform.
-ifdef VXWORKS
- ACELIB += -lPACE
- LDFLAGS += -L$(PACE_ROOT)/pace/
-else
- BIN += $(BIN2)
-endif
-INCLDIRS += -I$(PACE_ROOT)
-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
-
-ifndef SOEXT
- SOEXT=so
-endif
-
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-include $(ACE_ROOT)/PACE/include/makeinclude/rules.common.GNU
-
-ifndef static_libs_only
- ifndef shared_libs_only
- static_libs_only = 1
- endif # shared_libs_only
-endif # static_libs_only
-
-# If we are inlining the PACE functions then we don't want to include
-# the PACE library (and we need to define PACE_HAS_INLINE). If we're not
-# inlining then we need to include the PACE library. Inlining is the default.
-
-ifndef inline
- CFLAGS += -DPACE_HAS_INLINE
-else
- ifneq (0,$(inline))
- CFLAGS += -DPACE_HAS_INLINE
- else
- LIBS += -L$(ACE_ROOT)/PACE/pace -lPACE
- endif # ! inline
-endif # ! inline
-
-# To compile in the PACE lib on platforms that compile c code
-ifeq (1, $(emulation))
- LIBS += -L$(PACE_ROOT)/pace -lPACE
-endif # emulation
-
-# To build multiple executables in the same directory on AIX, it works
-# best to wipe out any previously-created tempinc directory.
-# The compiler/linker isn't too smart about instantiating templates...
-ifdef TEMPINCDIR
-COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc)
-endif
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/Cond_Var_Test.o .obj/Cond_Var_Test.o .obj/Cond_Var_Test.o .obj/Cond_Var_Test.o: Cond_Var_Test.c \
- $(ACE_ROOT)/PACE/pace/stdio.h \
- $(ACE_ROOT)/PACE/pace/config/defines.h \
- $(ACE_ROOT)/PACE/pace/config/platform.h \
- $(ACE_ROOT)/PACE/pace/config/config.h \
- $(ACE_ROOT)/PACE/pace/config/compiler.h \
- $(ACE_ROOT)/PACE/pace/config/constants.h \
- $(ACE_ROOT)/PACE/pace/sys/types.h \
- $(ACE_ROOT)/PACE/pace/config/defaults.h \
- $(ACE_ROOT)/PACE/pace/config/utility.h \
- $(ACE_ROOT)/PACE/pace/errno.h \
- $(ACE_ROOT)/PACE/pace/config/features.h \
- $(ACE_ROOT)/PACE/pace/stdlib.h \
- $(ACE_ROOT)/PACE/pace/unistd.h \
- $(ACE_ROOT)/PACE/pace/pthread.h
-
-.obj/mqueue_test.o .obj/mqueue_test.o .obj/mqueue_test.o .obj/mqueue_test.o: mqueue_test.c \
- $(ACE_ROOT)/PACE/pace/stdio.h \
- $(ACE_ROOT)/PACE/pace/config/defines.h \
- $(ACE_ROOT)/PACE/pace/config/platform.h \
- $(ACE_ROOT)/PACE/pace/config/config.h \
- $(ACE_ROOT)/PACE/pace/config/compiler.h \
- $(ACE_ROOT)/PACE/pace/config/constants.h \
- $(ACE_ROOT)/PACE/pace/sys/types.h \
- $(ACE_ROOT)/PACE/pace/config/defaults.h \
- $(ACE_ROOT)/PACE/pace/config/utility.h \
- $(ACE_ROOT)/PACE/pace/errno.h \
- $(ACE_ROOT)/PACE/pace/config/features.h \
- $(ACE_ROOT)/PACE/pace/fcntl.h \
- $(ACE_ROOT)/PACE/pace/mqueue.h \
- $(ACE_ROOT)/PACE/pace/signal.h \
- $(ACE_ROOT)/PACE/pace/stdlib.h \
- $(ACE_ROOT)/PACE/pace/unistd.h \
- $(ACE_ROOT)/PACE/pace/string.h
-
-.obj/Pthread_Storage_Test.o .obj/Pthread_Storage_Test.o .obj/Pthread_Storage_Test.o .obj/Pthread_Storage_Test.o: Pthread_Storage_Test.c \
- $(ACE_ROOT)/PACE/pace/stdio.h \
- $(ACE_ROOT)/PACE/pace/config/defines.h \
- $(ACE_ROOT)/PACE/pace/config/platform.h \
- $(ACE_ROOT)/PACE/pace/config/config.h \
- $(ACE_ROOT)/PACE/pace/config/compiler.h \
- $(ACE_ROOT)/PACE/pace/config/constants.h \
- $(ACE_ROOT)/PACE/pace/sys/types.h \
- $(ACE_ROOT)/PACE/pace/config/defaults.h \
- $(ACE_ROOT)/PACE/pace/config/utility.h \
- $(ACE_ROOT)/PACE/pace/errno.h \
- $(ACE_ROOT)/PACE/pace/config/features.h \
- $(ACE_ROOT)/PACE/pace/stdlib.h \
- $(ACE_ROOT)/PACE/pace/unistd.h \
- $(ACE_ROOT)/PACE/pace/time.h \
- $(ACE_ROOT)/PACE/pace/pthread.h
-
-.obj/Pthreads_Test.o .obj/Pthreads_Test.o .obj/Pthreads_Test.o .obj/Pthreads_Test.o: Pthreads_Test.c \
- $(ACE_ROOT)/PACE/pace/stdio.h \
- $(ACE_ROOT)/PACE/pace/config/defines.h \
- $(ACE_ROOT)/PACE/pace/config/platform.h \
- $(ACE_ROOT)/PACE/pace/config/config.h \
- $(ACE_ROOT)/PACE/pace/config/compiler.h \
- $(ACE_ROOT)/PACE/pace/config/constants.h \
- $(ACE_ROOT)/PACE/pace/sys/types.h \
- $(ACE_ROOT)/PACE/pace/config/defaults.h \
- $(ACE_ROOT)/PACE/pace/config/utility.h \
- $(ACE_ROOT)/PACE/pace/errno.h \
- $(ACE_ROOT)/PACE/pace/config/features.h \
- $(ACE_ROOT)/PACE/pace/stdlib.h \
- $(ACE_ROOT)/PACE/pace/unistd.h \
- $(ACE_ROOT)/PACE/pace/pthread.h
-
-.obj/Stdio_Test.o .obj/Stdio_Test.o .obj/Stdio_Test.o .obj/Stdio_Test.o: Stdio_Test.c \
- $(ACE_ROOT)/PACE/pace/stdio.h \
- $(ACE_ROOT)/PACE/pace/config/defines.h \
- $(ACE_ROOT)/PACE/pace/config/platform.h \
- $(ACE_ROOT)/PACE/pace/config/config.h \
- $(ACE_ROOT)/PACE/pace/config/compiler.h \
- $(ACE_ROOT)/PACE/pace/config/constants.h \
- $(ACE_ROOT)/PACE/pace/sys/types.h \
- $(ACE_ROOT)/PACE/pace/config/defaults.h \
- $(ACE_ROOT)/PACE/pace/config/utility.h \
- $(ACE_ROOT)/PACE/pace/errno.h \
- $(ACE_ROOT)/PACE/pace/config/features.h \
- $(ACE_ROOT)/PACE/pace/unistd.h \
- $(ACE_ROOT)/PACE/pace/string.h
-
-.obj/Stat_Test.o .obj/Stat_Test.o .obj/Stat_Test.o .obj/Stat_Test.o: Stat_Test.c $(ACE_ROOT)/PACE/pace/stdio.h \
- $(ACE_ROOT)/PACE/pace/config/defines.h \
- $(ACE_ROOT)/PACE/pace/config/platform.h \
- $(ACE_ROOT)/PACE/pace/config/config.h \
- $(ACE_ROOT)/PACE/pace/config/compiler.h \
- $(ACE_ROOT)/PACE/pace/config/constants.h \
- $(ACE_ROOT)/PACE/pace/sys/types.h \
- $(ACE_ROOT)/PACE/pace/config/defaults.h \
- $(ACE_ROOT)/PACE/pace/config/utility.h \
- $(ACE_ROOT)/PACE/pace/errno.h \
- $(ACE_ROOT)/PACE/pace/config/features.h \
- $(ACE_ROOT)/PACE/pace/unistd.h \
- $(ACE_ROOT)/PACE/pace/fcntl.h \
- $(ACE_ROOT)/PACE/pace/sys/stat.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/PACE/tests/Makefile.am b/PACE/tests/Makefile.am
deleted file mode 100644
index af6f453c2af..00000000000
--- a/PACE/tests/Makefile.am
+++ /dev/null
@@ -1,54 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile.am for all the PACE ``one-button'' tests
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-## LDFLAGS =
-## Libtool will automatically link against the "proper" library.
-## Do not change the "libACE.la." It is not a typographical error!
-##
-## We override the "LIBS" variable provided by the configure script since
-## we should only need to link against the ACE library for these tests.
-LDADD = $(top_builddir)/pace/libPACE.la
-##LIBS = $(top_builddir)/pace/libPACE.la
-
-## Build the following test programs when a `make check' is
-## issued by the user.
-check_PROGRAMS = \
- Posix_SP_Test \
- Stdio_Test
-
-Posix_SP_Test_SOURCES = Posix_SP_Test.c
-
-Stdio_Test_SOURCES = Stdio_Test.c
-
-## The tests we want to run are all of the test programs we are going to build.
-## Do not run them if they are cross-compiled.
-if PACE_CROSS_COMPILED
-TESTS =
-else
-TESTS = $(check_PROGRAMS)
-endif
-
-## Set up the test environment
-##TESTS_ENVIRONMENT =
-
-## Clean up template repositories, etc.
-clean-local:
- -rm -f *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core
- -rm -rf ptrepository Templates.DB gcctemp.c gcctemp so_locations
-
-## Clean up `log' directory , etc.
-distclean-local:
- -rm -rf log
diff --git a/PACE/tests/Posix_SP_Test.c b/PACE/tests/Posix_SP_Test.c
deleted file mode 100644
index 8eccf95fc4c..00000000000
--- a/PACE/tests/Posix_SP_Test.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/* $Id$ -*- C -*- */
-
-/* =====================================================================
- *
- * = FILENAME
- * Posix_SP_Test.c
- *
- * = DESCRIPTION
- * Testing the platform for POSIX_SINGLE_PROCESS unit of
- * functionality. This consists of calls to sysconf, time, and
- * uname.
- * This is not meant to be an exhaustive test at this point but more
- * a sanity check that PACE works (at least somewhat).
- *
- * = AUTHOR
- * Joe Hoffert <joeh@cs.wustl.edu>
- *
- * =====================================================================
- */
-
-#if PACE_LYNXOS != 0x300
-#include "pace/stdio.h"
-#include "pace/unistd.h"
-#include "pace/time.h"
-#include "pace/sys/utsname.h"
-
-const char * success = "SUCCEEDED";
-const char * failure = "***FAILED***";
-
-#if defined (PACE_VXWORKS) && PACE_VXWORKS != 0
-#include "vxworks_stub.c"
-#endif /* VXWORKS */
-
-void
-check_sysconf ()
-{
- long retval;
- int index;
-#if PACE_HAS_POSIX == PACE_LYNXOS
- const int confnamessize = 30;
-#else
- const int confnamessize = 38;
-#endif /* PACE_HAS_POSIX != PACE_LYNXOS */
-
- int confnames[] = {_SC_AIO_LISTIO_MAX,
- _SC_AIO_MAX,
- _SC_AIO_PRIO_DELTA_MAX,
- _SC_ARG_MAX,
- _SC_CHILD_MAX,
- _SC_CLK_TCK,
- _SC_DELAYTIMER_MAX,
-#if PACE_HAS_POSIX != PACE_LYNXOS
- _SC_GETGR_R_SIZE_MAX,
- _SC_GETPW_R_SIZE_MAX,
- _SC_LOGIN_NAME_MAX,
-#endif /* PACE_HAS_POSIX != PACE_LYNXOS */
- _SC_MQ_OPEN_MAX,
- _SC_MQ_PRIO_MAX,
- _SC_NGROUPS_MAX,
- _SC_OPEN_MAX,
- _SC_PAGESIZE,
- _SC_RTSIG_MAX,
- _SC_SEM_NSEMS_MAX,
- _SC_SEM_VALUE_MAX,
- _SC_SIGQUEUE_MAX,
- _SC_STREAM_MAX,
-#if PACE_HAS_POSIX != PACE_LYNXOS
- _SC_THREAD_DESTRUCTOR_ITERATIONS,
- _SC_THREAD_KEYS_MAX,
- _SC_THREAD_STACK_MIN,
- _SC_THREAD_THREADS_MAX,
-#endif /* PACE_HAS_POSIX != PACE_LYNXOS */
- _SC_TIMER_MAX,
-#if PACE_HAS_POSIX != PACE_LYNXOS
- _SC_TTY_NAME_MAX,
-#endif /* PACE_HAS_POSIX != PACE_LYNXOS */
- _SC_TZNAME_MAX,
- _SC_ASYNCHRONOUS_IO,
- _SC_FSYNC,
- _SC_JOB_CONTROL,
- _SC_MAPPED_FILES,
- _SC_MEMLOCK,
- _SC_MEMLOCK_RANGE,
- _SC_MEMORY_PROTECTION,
- _SC_MESSAGE_PASSING,
- _SC_PRIORITIZED_IO,
- _SC_PRIORITY_SCHEDULING,
- _SC_REALTIME_SIGNALS};
- char * confstrs[] = {"_SC_AIO_LISTIO_MAX",
- "_SC_AIO_MAX",
- "_SC_AIO_PRIO_DELTA_MAX",
- "_SC_ARG_MAX",
- "_SC_CHILD_MAX",
- "_SC_CLK_TCK",
- "_SC_DELAYTIMER_MAX",
-#if PACE_HAS_POSIX != PACE_LYNXOS
- "_SC_GETGR_R_SIZE_MAX",
- "_SC_GETPW_R_SIZE_MAX",
- "_SC_LOGIN_NAME_MAX",
-#endif /* PACE_HAS_POSIX != PACE_LYNXOS */
- "_SC_MQ_OPEN_MAX",
- "_SC_MQ_PRIO_MAX",
- "_SC_NGROUPS_MAX",
- "_SC_OPEN_MAX",
- "_SC_PAGESIZE",
- "_SC_RTSIG_MAX",
- "_SC_SEM_NSEMS_MAX",
- "_SC_SEM_VALUE_MAX",
- "_SC_SIGQUEUE_MAX",
- "_SC_STREAM_MAX",
-#if PACE_HAS_POSIX != PACE_LYNXOS
- "_SC_THREAD_DESTRUCTOR_ITERATIONS",
- "_SC_THREAD_KEYS_MAX",
- "_SC_THREAD_STACK_MIN",
- "_SC_THREAD_THREADS_MAX",
-#endif /* PACE_HAS_POSIX != PACE_LYNXOS */
- "_SC_TIMER_MAX",
-#if PACE_HAS_POSIX != PACE_LYNXOS
- "_SC_TTY_NAME_MAX",
-#endif /* PACE_HAS_POSIX != PACE_LYNXOS */
- "_SC_TZNAME_MAX",
- "_SC_ASYNCHRONOUS_IO",
- "_SC_FSYNC",
- "_SC_JOB_CONTROL",
- "_SC_MAPPED_FILES",
- "_SC_MEMLOCK",
- "_SC_MEMLOCK_RANGE",
- "_SC_MEMORY_PROTECTION",
- "_SC_MESSAGE_PASSING",
- "_SC_PRIORITIZED_IO",
- "_SC_PRIORITY_SCHEDULING",
- "_SC_REALTIME_SIGNALS"};
-
- PACE_UNUSED_ARG (confstrs);
-
- /* Success indicated by compilation for this function. */
- /* printf("pace_sysconf %s\n", success); */
- for (index = 0; index < confnamessize; index++)
- {
- /* Call pace_sysconf() */
- errno = 0;
- retval = pace_sysconf(confnames[index]);
-
- /* Return value of -1 indicates an invalid name or no support
- for the functionality associated with the name. POSIX-
- conformant platforms may not support all the names. However,
- using the names above should not cause compilation errors.
- */
- /* printf("pace_sysconf: name == %s\n", confstrs[index]); */
- if (retval == -1)
- {
- /* printf("retval == %ld\n", retval); */
- if (errno == 0)
- {
- /* printf("Unsupported name [errno did not change]\n"); */
- }
- else
- {
- printf("invalid name [errno did not change]\n");
- }
- }
- else
- {
- /* printf("pace_sysconf: value == %ld\n", retval); */
- }
- }
-
- /* printf("\n"); */
-}
-
-void
-check_time ()
-{
- long retval;
- time_t local_time;
-
- /* Call pace_time() with time_t * arg */
- local_time = 0;
- errno = 0;
- retval = pace_time(&local_time);
-
- /* printf("pace_time %s\n", success); */
- if (retval == -1)
- {
- printf("errno == %d\n", errno);
- }
- else
- {
- /* printf("pace_time (with time_t* arg) == %ld\n", local_time); */
- }
-
- /* Call pace_time() with NULL arg */
- errno = 0;
- retval = pace_time(0);
-
- if (retval == -1)
- {
- printf("errno == %d\n", errno);
- }
- else
- {
- /* printf("pace_time (with NULL arg) == %ld\n\n", retval); */
- }
-}
-
-void
-check_uname ()
-{
- long retval;
- struct utsname name;
-
- /* Call pace_uname() */
- errno = 0;
- retval = pace_uname(&name);
- /* printf("pace_uname %s\n", success); */
-
- if (retval < 0)
- {
- printf("pace_uname error: %d\n", errno);
- }
- else
- {
- /* printf("pace_uname: uname.sysname == %s\n", name.sysname); */
- /* printf("pace_uname: uname.nodename == %s\n", name.nodename); */
- /* printf("pace_uname: uname.release == %s\n", name.release); */
- /* printf("pace_uname: uname.version == %s\n", name.version); */
- /* printf("pace_uname: uname.machine == %s\n", name.machine); */
- }
-}
-
-int
-main (int argc, char **argv)
-{
- /* Check the PACE calls to the sysconf POSIX function. */
- check_sysconf();
-
- /* Check the PACE calls to the time POSIX function. */
- check_time();
-
- /* Check the PACE calls to the uname POSIX function. */
- check_uname();
-
- PACE_UNUSED_ARG (argc);
- PACE_UNUSED_ARG (argv);
- return 0;
-}
-#else
-int
-main (int argc, char **argv)
-{
- printf("PACE does not support LynxOS 3.0.0.\n");
-}
-#endif /* PACE_LYNXOS == 0x300 */
diff --git a/PACE/tests/Pthread_Storage_Test.c b/PACE/tests/Pthread_Storage_Test.c
deleted file mode 100644
index 726b3835c1d..00000000000
--- a/PACE/tests/Pthread_Storage_Test.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* $Id$ -*- C -*- */
-
-/* ===================================================================== */
-/* */
-/* = FILENAME */
-/* Pthreads_Test.c */
-/* */
-/* = DESCRIPTION */
-/* Testing the platform for POSIX threads thread specific storage. */
-/* This is not meant to be an exhaustive test at this point but more */
-/* a sanity check that PACE works (at least somewhat) as advertised. */
-/* This program creates some threads, stores some thread specific */
-/* information in each one (some time information) and then checks */
-/* that the different threads contained different values. */
-/* */
-/* This test is largely taken from the O'Reilly _Pthreads */
-/* Programming_ book and accompanying example code. */
-/* */
-/* = AUTHOR */
-/* Joe Hoffert <joeh@cs.wustl.edu> */
-/* */
-/* ===================================================================== */
-
-#include "pace/stdio.h"
-#include "pace/stdlib.h"
-#include "pace/time.h"
-#include "pace/pthread.h"
-
-#if defined (PACE_VXWORKS) && PACE_VXWORKS != 0
-#include "vxworks_stub.c"
-#endif /* VXWORKS */
-
-#define NUM_THREADS 3
-/*pace_pthread_key_t saved_time_key;*/
-pace_pthread_key_t saved_ID_key;
-
-/*void free_time (void *arg)*/
-void free_ID (void *arg)
-{
- /*pace_timespec *timep = (pace_timespec *)arg;
- pace_printf("free_time:\n");
- pace_free(timep);*/
-
- pace_pthread_t *threadp = (pace_pthread_t *)arg;
- /* pace_printf("free_ID:\n"); */
- pace_free(threadp);
-}
-
-/*void save_the_time (void)*/
-long save_the_ID (void)
-{
- /*pace_timespec *timep;
-
- timep = (pace_timespec *)malloc(sizeof(pace_timespec));
- clock_gettime(1, timep);
- pace_printf("save_the_time: \t\t%ld %ld\n",timep->tv_sec, timep->tv_nsec);
- pace_pthread_setspecific(saved_time_key, (void *)timep);*/
-
- pace_pthread_t *pace_thread =
- (pace_pthread_t *)malloc(sizeof(pace_pthread_t));
-
- *pace_thread = pace_pthread_self();
- /* pace_printf("save_the_ID: \t\t%ld\n", (long)*pace_thread); */
- pace_pthread_setspecific(saved_ID_key, (void *)pace_thread);
-
- return ((long)*pace_thread);
-}
-
-/*void what_time_did_i_save (void)*/
-long what_ID_did_i_save (void)
-{
- /*pace_timespec *timep;
-
- timep = pace_pthread_getspecific(saved_time_key);
- printf("what_time_did_i_save: \t%ld %ld\n",timep->tv_sec, timep->tv_nsec);*/
-
- pace_pthread_t *pace_thread;
-
- pace_thread = pace_pthread_getspecific(saved_ID_key);
- /* pace_printf("what_ID_did_i_save: \t%ld\n", (long)*pace_thread); */
- return ((long)*pace_thread);
-}
-
-void *thread_routine (void *arg)
-{
- long saved_id;
- long retrieved_id;
- /*int *my_id=(int *)arg;*/
- PACE_UNUSED_ARG (arg);
-
- /* pace_printf("thread_routine %d\n", *my_id); */
- /*save_the_time();
- what_time_did_i_save();*/
- saved_id = save_the_ID();
- pace_sleep (1);
- retrieved_id = what_ID_did_i_save();
-
- if (saved_id != retrieved_id)
- {
- pace_printf ("### ERROR ###: saved id %ld does not equal retrieved
- id %ld.\n", saved_id, retrieved_id);
- pace_exit (-1);
- }
-
- return (NULL);
-}
-
-int
-main (int argc, char *argv[])
-{
- int i;
- int *id_arg;
- pace_pthread_t threads[NUM_THREADS];
-
- PACE_UNUSED_ARG (argc);
- PACE_UNUSED_ARG (argv);
-
- id_arg = (int *) pace_malloc (NUM_THREADS * sizeof(int));
-
- /* pace_printf("main : initializing the key\n"); */
- /*pace_pthread_key_create(&saved_time_key, free_time);*/
- pace_pthread_key_create(&saved_ID_key, free_ID);
-
- /* pace_printf("main : spawning the threads\n"); */
- for (i = 0; i < NUM_THREADS; i++)
- {
- id_arg[i] = i;
-
- pace_pthread_create(&(threads[i]),
- NULL,
- thread_routine,
- (void *) &(id_arg[i]));
- }
-
- for (i = 0; i < NUM_THREADS; i++)
- {
- pace_pthread_join(threads[i], NULL);
- /* pace_printf("main : thread %d has finished. \n", i); */
- }
-
- /* pace_printf("main : goodbye\n"); */
-
- return 0;
-}
diff --git a/PACE/tests/Pthreads_Test.c b/PACE/tests/Pthreads_Test.c
deleted file mode 100644
index 7d2710f598b..00000000000
--- a/PACE/tests/Pthreads_Test.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* $Id$ -*- C -*- */
-
-/* ===================================================================== */
-/* */
-/* = FILENAME */
-/* Pthreads_Test.c */
-/* */
-/* = DESCRIPTION */
-/* Testing the platform for POSIX threads. This is not meant */
-/* to be an exhaustive test at this point but more a sanity check */
-/* that PACE works (at least somewhat) as advertised. */
-/* This program simply creates some threads, joins them, and then */
-/* exits. */
-/* */
-/* This test is largely taken from the O'Reilly _Pthreads */
-/* Programming_ book and accompanying example code. */
-/* */
-/* = AUTHOR */
-/* Joe Hoffert <joeh@cs.wustl.edu> */
-/* */
-/* ===================================================================== */
-
-#include "pace/stdio.h"
-#include "pace/stdlib.h"
-#include "pace/pthread.h"
-
-#if defined (PACE_VXWORKS) && PACE_VXWORKS != 0
-#include "vxworks_stub.c"
-#endif /* VXWORKS */
-
-const int FUNC1_LOOP_MAX = 5;
-const int FUNC2_LOOP_MAX = 50;
-
-void
-func1 (int *pnum_times)
-{
- int i;
- int j;
- int x;
-
- for (i = 0; i < FUNC1_LOOP_MAX; i++)
- {
- /*pace_printf("func1\n");*/
- for (j = 0; j < 100000; j++)
- x += i;
-
- (*pnum_times)++;
- }
-}
-
-void
-func2 (int *pnum_times)
-{
- int i;
- int j;
- int x;
-
- for (i = 0; i < FUNC2_LOOP_MAX; i++)
- {
- /*pace_printf("func2\n");*/
- for (j = 0; j < 100; j++)
- x += i;
-
- (*pnum_times)++;
- }
-}
-
-void
-join_point (int func1_times, int func2_times)
-{
- int total;
-
- total = func1_times + func2_times;
- if (total != FUNC1_LOOP_MAX + FUNC2_LOOP_MAX)
- {
- pace_printf ("### ERROR ###: total iterations should be %d but are %d.\n",
- FUNC1_LOOP_MAX + FUNC2_LOOP_MAX, total);
- pace_exit (-1);
- }
-}
-
-int
-main (int argc, char **argv)
-{
- /* Test creating threads and joining them. */
- pace_pthread_t thread1;
- pace_pthread_t thread2;
- int func1_ret = 0;
- int func2_ret = 0;
-
- PACE_UNUSED_ARG (argc);
- PACE_UNUSED_ARG (argv);
-
- pace_pthread_create(&thread1,
- NULL,
- (void *) func1,
- (void *) &func1_ret);
-
- pace_pthread_create(&thread2,
- NULL,
- (void *) func2,
- (void *) &func2_ret);
-
- pace_pthread_join(thread1, NULL);
- pace_pthread_join(thread2, NULL);
-
- join_point(func1_ret, func2_ret);
-
- return 0;
-}
diff --git a/PACE/tests/README b/PACE/tests/README
deleted file mode 100644
index 20d2c164084..00000000000
--- a/PACE/tests/README
+++ /dev/null
@@ -1,6 +0,0 @@
-Most of the tests are typical of the ACE and TAO tests in that no
-output means the test ran successfully. Otherwise, error messages
-are output indicating an error.
-
-Currently the mqueue_test executable requires user input for determing
-the kind of test to run.
diff --git a/PACE/tests/Stat_Test.c b/PACE/tests/Stat_Test.c
deleted file mode 100644
index e221fc0c813..00000000000
--- a/PACE/tests/Stat_Test.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* $Id$ -*- C -*- */
-
-/* ===================================================================== */
-/* */
-/* = FILENAME */
-/* Stat_Test.c */
-/* */
-/* = DESCRIPTION */
-/* Testing the platform for POSIX functions typically found in the */
-/* sys/stat.h file (e.g., chmod, mkdir, stat). This is not meant */
-/* to be an exhaustive test at this point but more a sanity check */
-/* that PACE works (at least somewhat) as advertised. */
-/* This program creates a directory (via mkdir), creates a temporary */
-/* file in that directory (via open), modifies the permissions of */
-/* the file (via chmod and fchmod), gets information about the file */
-/* (via stat and fstat), and checks the process' file mode creation */
-/* mask (via umask). The temporary file and directory are then */
-/* closed and deleted. */
-/* */
-/* = AUTHOR */
-/* Joe Hoffert <joeh@cs.wustl.edu> */
-/* */
-/* ===================================================================== */
-
-#include "pace/stdio.h"
-#include "pace/unistd.h"
-#include "pace/fcntl.h"
-#include "pace/sys/stat.h"
-
-#if defined (PACE_VXWORKS) && PACE_VXWORKS != 0
-#include "vxworks_stub.c"
-#endif /* VXWORKS */
-
-
-#if PACE_LYNXOS != 0x300
-int
-main (int argc, char **argv)
-{
- const char * dirname = "./junk";
- const char * failure = "***FAILED***";
-
- int fd;
- /*
- int retval;
- char* retval2;
- char buffer[256];
- */
-
- /* Test creating a directory. */
- /*printf("Starting test...\n");
- if (pace_mkdir(dirname, mode) != 0)
- {
- pace_printf("pace_mkdir %s\n", failure);
- return -1;
- }
- */
-
- fd = pace_open (dirname,
- O_WRONLY | O_CREAT,
- 0x644);
- if (fd == 0)
- {
- pace_printf("pace_open %s\n", failure);
- pace_perror("pace_open");
- return -1;
- }
- else
- {
- pace_close (fd);
- pace_unlink (dirname);
- }
-
- PACE_UNUSED_ARG (argc);
- PACE_UNUSED_ARG (argv);
- return 0;
-}
-#else
-int
-main (int argc, char **argv)
-{
- printf("PACE does not support LynxOS 3.0.0.\n");
-}
-#endif /* PACE_LYNXOS == 0x300 */
diff --git a/PACE/tests/Stdio_Test.c b/PACE/tests/Stdio_Test.c
deleted file mode 100644
index 469b4f433a8..00000000000
--- a/PACE/tests/Stdio_Test.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* $Id$ -*- C -*- */
-
-/* ===================================================================== */
-/* */
-/* = FILENAME */
-/* Stdio_Test.c */
-/* */
-/* = DESCRIPTION */
-/* Testing the platform for POSIX standard I/O. This is not meant */
-/* to be an exhaustive test at this point but more a sanity check */
-/* that PACE works (at least somewhat) as advertised. */
-/* This program creates/opens a temporary file, writes to the file, */
-/* reads from the file to make sure it's what was written, and */
-/* then closes/deletes the file. */
-/* */
-/* = AUTHOR */
-/* Joe Hoffert <joeh@cs.wustl.edu> */
-/* */
-/* ===================================================================== */
-
-#include "pace/stdio.h"
-#include "pace/unistd.h"
-#include "pace/string.h"
-
-const char * filename = "temp";
-const char * mode = "w+";
-const char * string1 = "line 1\n";
-const char * success = "SUCCEEDED";
-const char * failure = "***FAILED***";
-
-#if defined (PACE_VXWORKS) && PACE_VXWORKS != 0
-#include "vxworks_stub.c"
-#endif /* VXWORKS */
-
-
-#if PACE_LYNXOS != 0x300
-int
-main (int argc, char **argv)
-{
- /* Test creating/opening a file. */
- PACE_FILE *file;
- int retval;
- char* retval2;
- char buffer[256];
-
- file = pace_fopen (filename,
- mode);
- if (file == 0)
- {
- printf("pace_fopen %s\n", failure);
- return -1;
- }
-
- /* Test writing to a file. */
- retval = pace_fputs (string1,
- file);
- if (retval == EOF)
- {
- printf("pace_fputs %s\n", failure);
- return -1;
- }
-
- /* Test flushing a file. */
- retval = pace_fflush (file);
- if (retval != 0)
- {
- printf("pace_fflush %s\n", failure);
- return -1;
- }
-
- /* Test seeking in a file. */
- retval = pace_fseek (file,
- 0,
- 0);
- if (retval != 0)
- {
- printf("pace_fseek %s\n", failure);
- return -1;
- }
-
- /* Test reading from a file. */
- retval2 = pace_fgets (buffer,
- sizeof(buffer),
- file);
- if (retval2 == 0)
- {
- printf("pace_fgets %s\n", failure);
- return -1;
- }
-
- if (pace_strcmp(buffer, string1) != 0)
- {
- printf("strcmp of pace_fgets %s\n", failure);
- return -1;
- }
-
- /* Test closing a file. */
- retval = pace_fclose (file);
- if (retval != 0)
- {
- printf("pace_fclose %s\n", failure);
- return -1;
- }
-
- /* Test removing a file. */
- retval = pace_unlink (filename);
- if (retval != 0)
- {
- printf("pace_unlink %s\n", failure);
- return -1;
- }
-
- PACE_UNUSED_ARG (argc);
- PACE_UNUSED_ARG (argv);
- return 0;
-}
-#else
-int
-main (int argc, char **argv)
-{
- printf("PACE does not support LynxOS 3.0.0.\n");
-}
-#endif /* PACE_LYNXOS == 0x300 */
diff --git a/PACE/tests/mqueue_test.c b/PACE/tests/mqueue_test.c
deleted file mode 100644
index b8f55b46d6e..00000000000
--- a/PACE/tests/mqueue_test.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* $Id$ */
-
-#if PACE_LYNXOS != 0x300
-#include "pace/stdio.h"
-#include "pace/fcntl.h"
-#include "pace/mqueue.h"
-#include "pace/stdlib.h"
-#include "pace/signal.h"
-#include "pace/string.h"
-
-#if defined (PACE_VXWORKS) && PACE_VXWORKS != 0
-#include "vxworks_stub.c"
-#endif /* VXWORKS */
-
-/* Most of this code is borowed from Konstantin Knizhnik <http://www.ispras.ru/~knizhnik/posix1b/> */
-
-pace_mqd_t mqdes;
-
-void
-msg_handler (int handler_arg)
-{
- char buf[1024];
- unsigned int priority;
- int len = pace_mq_receive(mqdes, buf, sizeof buf, &priority);
-
- PACE_UNUSED_ARG (handler_arg);
-
- if (len < 0)
- {
- perror("mq_receive");
- }
- pace_printf("\nReceive message with priority %d: %s\n", priority, buf);
-}
-
-#define QUEUE_NAME "/testmsg1"
-
-int
-main (int argc, char** argv)
-{
-#if PACE_LYNXOS > 0
- pace_printf ("mqueue_test not supported on LynxOS.\n");
- PACE_UNUSED_ARG (argc);
- PACE_UNUSED_ARG (argv);
- return EXIT_SUCCESS;
-#else /* ! PACE_LYNXOS */
- char buf[1024];
- int choice, len;
- unsigned int priority;
- pace_sigevent notification;
- static pace_sigaction_s sa;
- int one = 1;
-
- mqdes = pace_mq_open(QUEUE_NAME, O_CREAT | O_RDWR, 0777, 0);
- if (mqdes == (pace_mqd_t)-1)
- {
- perror("mq_open");
- return EXIT_FAILURE;
- }
-
- notification.sigev_notify = SIGEV_SIGNAL;
- notification.sigev_signo = SIGUSR1;
-
- sa.sa_handler = msg_handler;
- sa.sa_flags = SA_RESTART;
- pace_sigaction(SIGUSR1, &sa, NULL);
-
- while (one)
- {
- printf("\t1. Send\n"
- "\t2. Asynchronouse receive\n"
- "\t3. Synchronouse receive\n"
- "\t4. Close queue and exit\n"
- "\t5. Remove queue and exit\n"
- "> ");
- if (!pace_fgets(buf, sizeof buf, stdin))
- {
- return EXIT_FAILURE;
- }
- if (pace_sscanf(buf, "%d", &choice) != 1)
- {
- pace_printf("Please select 1..5\n");
- continue;
- }
- switch (choice)
- {
- case 1:
- do
- {
- pace_printf("Message priority: ");
- pace_fgets(buf, sizeof buf, stdin);
- } while (pace_sscanf(buf, "%d", &priority) != 1);
- pace_printf("Message to send: ");
- pace_fgets(buf, sizeof buf, stdin);
- if (pace_mq_send(mqdes, buf, pace_strlen(buf)+1, priority) == -1)
- {
- perror("mq_send");
- return EXIT_FAILURE;
- }
- break;
- case 2:
- pace_mq_notify(mqdes, &notification);
- pace_printf("Waiting for notifications...\n");
- break;
- case 3:
- len = pace_mq_receive(mqdes, buf, sizeof buf, &priority);
- if (len < 0)
- {
- perror("mq_receive");
- }
- pace_printf("Receive message with priority %d: %s\n", priority, buf);
- break;
- case 4:
- pace_mq_close(mqdes);
- return EXIT_SUCCESS;
- case 5:
- pace_mq_close(mqdes);
- pace_mq_unlink(QUEUE_NAME);
- return EXIT_SUCCESS;
- default:
- pace_printf("Please select 1..5\n");
- }
- }
- PACE_UNUSED_ARG (argc);
- PACE_UNUSED_ARG (argv);
- return EXIT_SUCCESS;
-#endif /* ! PACE_LYNXOS */
-}
-#else
-int
-main (int argc, char **argv)
-{
- printf("PACE does not support LynxOS 3.0.0.\n");
-}
-#endif /* PACE_LYNXOS == 0x300 */
diff --git a/PACE/tests/test_stdio.dsp b/PACE/tests/test_stdio.dsp
deleted file mode 100644
index 198cfb45f4f..00000000000
--- a/PACE/tests/test_stdio.dsp
+++ /dev/null
@@ -1,162 +0,0 @@
-# Microsoft Developer Studio Project File - Name="test_stdio" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=test_stdio - Win32 Static 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 "test_stdio.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 "test_stdio.mak" CFG="test_stdio - Win32 Static Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "test_stdio - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "test_stdio - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "test_stdio - Win32 Static Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "test_stdio - Win32 Static Release" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "test_stdio - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I ".." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "PACE_HAS_ALL_POSIX_FUNCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 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 pace.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 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 /libpath:"../pace/win32"
-
-!ELSEIF "$(CFG)" == "test_stdio - 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I ".." /D "_DEBUG" /D "PACE_HAS_ALL_POSIX_FUNCS" /D "WIN32" /D "_CONSOLE" /FD /c
-# SUBTRACT CPP /YX
-# 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 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 paced.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 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 /libpath:"../pace/win32"
-
-!ELSEIF "$(CFG)" == "test_stdio - Win32 Static Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Static_Debug"
-# PROP BASE Intermediate_Dir "Static_Debug"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Static_Debug"
-# PROP Intermediate_Dir "Static_Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /I ".." /D "_DEBUG" /D "PACE_HAS_ALL_POSIX_FUNCS" /D "WIN32" /D "_CONSOLE" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I ".." /D "_DEBUG" /D "PACE_HAS_ALL_POSIX_FUNCS" /D "WIN32" /D "_CONSOLE" /FD /c
-# SUBTRACT CPP /YX
-# 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 paced.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 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 /libpath:"../pace/win32"
-# ADD LINK32 pacesd.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 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 /libpath:"../pace/win32"
-
-!ELSEIF "$(CFG)" == "test_stdio - Win32 Static Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Static_Release"
-# PROP BASE Intermediate_Dir "Static_Release"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Static_Release"
-# PROP Intermediate_Dir "Static_Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /I ".." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "PACE_HAS_ALL_POSIX_FUNCS" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MD /W3 /GX /O2 /I ".." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "PACE_HAS_ALL_POSIX_FUNCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 pace.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 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 /libpath:"../pace/win32"
-# ADD LINK32 paces.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 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 /libpath:"../pace/win32"
-
-!ENDIF
-
-# Begin Target
-
-# Name "test_stdio - Win32 Release"
-# Name "test_stdio - Win32 Debug"
-# Name "test_stdio - Win32 Static Debug"
-# Name "test_stdio - Win32 Static Release"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Stdio_Test.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/PACE/tests/tests.dsw b/PACE/tests/tests.dsw
deleted file mode 100644
index 3b385f17556..00000000000
--- a/PACE/tests/tests.dsw
+++ /dev/null
@@ -1,59 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "PACE DLL"=..\pace\win32\pace_dll.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "PACE LIB"=..\pace\win32\pace_lib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "test_stdio"=.\test_stdio.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name PACE DLL
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name PACE LIB
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/PACE/tests/vxworks_stub.c b/PACE/tests/vxworks_stub.c
deleted file mode 100644
index 7ec9bf3f884..00000000000
--- a/PACE/tests/vxworks_stub.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* $Id$ -*- C -*- */
-
-/* ===================================================================== */
-/* */
-/* = FILENAME */
-/* vxworks_stub.c */
-/* */
-/* = DESCRIPTION */
-/* The file includes the special machinations that are needed to */
-/* kick off a C program in VxWorks. Every test run on VxWorks needs */
-/* to have this so it is put into this common file. */
-/* */
-/* = AUTHOR */
-/* Joe Hoffert <joeh@cs.wustl.edu> */
-/* */
-/* ===================================================================== */
-
-# define main post_pace_main
-# include /**/ <usrLib.h> /* for ::sp() */
-# include /**/ "pace/pthread.h"
-
-int post_pace_main();
-
-/* This global function can be used from the VxWorks shell to pass
- * arguments to a C main () function.
- *
- * usage: -> spa main, "arg1", "arg2"
- *
- * All arguments must be quoted, even numbers.
- */
-int
-spa (FUNCPTR entry, ...)
-{
- const unsigned int MAX_ARGS = 10;
- char *argv[MAX_ARGS];
- va_list pvar;
- unsigned int argc;
- int ret;
-
- /* Hardcode a program name because the real one isn't available
- * through the VxWorks shell.
- */
- argv[0] = "pace_main";
-
- /* Peel off arguments to spa () and put into argv. va_arg () isn't
- * necessarily supposed to return 0 when done, though since the
- * VxWorks shell uses a fixed number (10) of arguments, it might 0
- * the unused ones. This function could be used to increase that
- * limit, but then it couldn't depend on the trailing 0. So, the
- * number of arguments would have to be passed.
- */
- va_start (pvar, entry);
-
- for (argc = 1; argc <= MAX_ARGS; ++argc)
- {
- argv[argc] = va_arg (pvar, char *);
-
- if (argv[argc] == 0)
- break;
- }
-
- if (argc > MAX_ARGS && argv[argc-1] != 0)
- {
- /* try to read another arg, and warn user if the limit was exceeded */
- if (va_arg (pvar, char *) != 0)
- pace_fprintf (stderr, "spa(): number of arguments limited to %d\n",
- MAX_ARGS);
- }
- else
- {
- /* fill unused argv slots with 0 to get rid of leftovers
- * from previous invocations
- */
- unsigned int i;
- for (i = argc; i <= MAX_ARGS; ++i)
- argv[i] = 0;
- }
-
- /* The hard-coded options are what ::sp () uses, except for the
- * larger stack size (instead of ::sp ()'s 20000).
- */
- ret = taskSpawn (argv[0], /* task name */
- 100, /* task priority */
- VX_FP_TASK, /* task options */
- PTHREAD_DEFAULT_STACK_SIZE, /* stack size */
- entry, /* entry point */
- argc, /* first argument to main () */
- (int) argv, /* second argument to main () */
- 0, 0, 0, 0, 0, 0, 0, 0);
- va_end (pvar);
-
- /* taskSpawn () returns the taskID on success: return 0 instead if
- * successful
- */
- return ret > 0 ? 0 : ret;
-}
-
-int
-pace_main(int argc, char* argv[])
-{
- /* Setup information for VxWorks emulation */
- if (pacevx_vxworks_init() == ERROR)
- return ERROR;
-
- /* Call the "normal" main function now that we've done
- * our bookkeeping.
- */
- return post_pace_main(argc, argv);
-}
diff --git a/PROBLEM-REPORT-FORM b/PROBLEM-REPORT-FORM
deleted file mode 100644
index 1881d33ce6e..00000000000
--- a/PROBLEM-REPORT-FORM
+++ /dev/null
@@ -1,70 +0,0 @@
-[Please use the form below to submit bug reports, problem
- reports, etc., to the ACE developers and interested users.
- Send to ace-bugs@cs.wustl.edu. Please send it as plain
- ASCII test, _not_ uuencoded or as an attachment.
-
- We prefer that all bug reports be submitted through our bug tracking
- system. See $ACE_ROOT/docs/usage-bugzilla.html for more information
- about how to do this. If you are unsure as to whether your problem
- is a real bug or not then please submit your question to the mailing
- list using the following form. Not using the problem report form
- will make it harder or impossible to identify the problem, and in
- many cases we will be unable to help at all. Also please try to
- browse bugzilla and the ChangeLog files to find out if your problem
- has been solved in a more recent version of ACE.
-
- To ensure that you see responses, please do one of the following:
-
- 1) Subscribe to the ace-bugs mail list, by sending email with
- contents "subscribe ace-bugs" to majordomo@cs.wustl.edu.
-
- 2) Or, monitor the comp.soft-sys.ace newsgroup for responses.
-
- Replace/remove all the explanatory text in brackets before mailing.
-
- Please send this form as ASCII text only. Do _not_ send it as an
- attachment, or as tar'ed, compressed and/or uuencoded text. And
- limit line lengths to less than 80 characters.
-
- PLEASE make your Subject: line as descriptive as possible.
- Subjects like "ACE bug" or "bug report" are not helpful!
- Also, do _not_ include the word "help" in the Subject!]
-
-8<----------8<----------8<----------8<----------8<----------8<----------8<----
-
-To: ace-bugs@cs.wustl.edu
-Subject: [area]: [synopsis]
-
- ACE VERSION: 5.2
-
- HOST MACHINE and OPERATING SYSTEM:
- TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
- COMPILER NAME AND VERSION (AND PATCHLEVEL):
-
- AREA/CLASS/EXAMPLE AFFECTED:
-[What example failed? What module failed to compile?]
-
- DOES THE PROBLEM AFFECT:
- COMPILATION?
- If so, what do your $ACE_ROOT/ace/config.h and
- $ACE_ROOT/include/makeinclude/platform_macros.GNU contain?
- LINKING?
- On Unix systems, did you run make realclean first?
- EXECUTION?
- OTHER (please specify)?
-[Please indicate whether ACE, your application, or both are affected.]
-
- SYNOPSIS:
-[Brief description of the problem]
-
- DESCRIPTION:
-[Detailed description of problem. Don't just say "<blah>
-doesn't work, here's a fix," explain what your program does
-to get to the <blah> state. ]
-
- REPEAT BY:
-[What you did to get the error; include test program or session
-transcript if at all possible. ]
-
- SAMPLE FIX/WORKAROUND:
-[If available ]
diff --git a/README b/README
deleted file mode 100644
index ef6034bc58e..00000000000
--- a/README
+++ /dev/null
@@ -1,225 +0,0 @@
-This document is also available at the following URL:
-
-http://www.cs.wustl.edu/~schmidt/ACE.html.
-
-All software and documentation is available via both anonymous ftp and
-the World Wide Web.]
-
-THE ADAPTIVE COMMUNICATION ENVIRONMENT (ACE)
-
-An Object-Oriented Network Programming Toolkit
-
-----------------------------------------
-
-Overview of ACE
-
-The ADAPTIVE Communication Environment (ACE) is an object-oriented
-(OO) toolkit that implements fundamental design patterns for
-communication software. ACE provides a rich set of reusable C++
-wrappers and frameworks that perform common communication software
-tasks across a range of OS platforms, including Win32 (i.e., WinNT
-3.5.x/4.x, Win95, and WinCE), most versions of UNIX (e.g., SunOS 4.x
-and 5.x, SGI IRIX 5.x and 6.x, HP-UX 9.x, 10.x, and 11.x, DEC UNIX
-4.x, AIX 4.x, Linux, SCO, UnixWare, NetBSD, and FreeBSD), real-time
-operating systems (e.g., VxWorks, Chorus, LynxOS, and pSoS), and MVS
-OpenEdition. A single source tree is used for all these platforms and
-porting ACE to other platforms is relatively easy.
-
-The communication software components provided by ACE include event
-demultiplexing and event handler dispatching, service initialization,
-interprocess communication, shared memory management, message routing,
-dynamic (re)configuration of distributed services, multi-threading,
-and concurrency control. There are both C++ and Java versions of ACE
-available.
-
-ACE is targeted for developers of high-performance and real-time
-communication services and applications on UNIX, POSIX, and Win32
-platforms. ACE simplifies the development of OO network applications
-and services that utilize interprocess communication, event
-demultiplexing, explicit dynamic linking, and concurrency. ACE
-automates system configuration and reconfiguration by dynamically
-linking services into applications at run-time and executing these
-services in one or more processes or threads.
-
-ACE is currently used in commercial projects and products by dozens of
-companies including Ericsson, Bellcore, Siemens, Motorola, Kodak,
-Boeing, Lucent, DEC, Lockheed Martin, and SAIC. Commercial support
-for ACE is available at http://www.riverace.com.
-
-----------------------------------------
-
-C++ Wrappers for OS Interfaces
-
-The lower-level portions of ACE provide a set of portable and
-type-secure C++ wrappers that encapsulate the following C language OS
-interfaces:
-
- . IPC mechanisms
- -- e.g., Internet- and UNIX-domain sockets, TLI, Named
- Pipes (for UNIX and Win32) and STREAM pipes;
-
- . Event demultiplexing
- -- e.g., select(), poll(), and Win32
- WaitForMultipleObjects and I/O completion ports;
-
- . Multi-threading and synchronization
- -- e.g., Solaris threads, POSIX Pthreads, and Win32
- threads;
-
- . Explicit dynamic linking
- -- e.g., dlopen/dlsym on UNIX and LoadLibrary/GetProc
- on Win32;
-
- . Memory-mapped files and shared memory management
- -- e.g., BSD mmap(), SYSV shared memory, and Win32
- shared memory;
-
- . System V IPC
- -- e.g., shared memory, semaphores, message queues.
-
-The OS Adaptation Layer shields the upper levels of ACE from platform
-dependencies associated with the underlying OS interfaces.
-
-----------------------------------------
-
-Frameworks and Class Categories
-
-ACE also contains a higher-level network programming framework that
-integrates and enhances the lower-level C++ wrappers. This framework
-supports the dynamic configuration of concurrent distributed services
-into applications. The framework portion of ACE contains the
-following class categories:
-
- . The Reactor
- -- Supports both Reactive and Proactive I/O;
-
- . The Service Configurator
- -- Support dynamic (re)configuration of objects;
-
- . The ADAPTIVE Service Executive
- -- A user-level implementation of System V STREAMS,
- that supports modular integration of
- hierarchically-related communicaion services;
-
- . Concurrency
- -- Various types of higher-level concurrency
- control and synchronization patterns (such as
- Polymorphic Futures and Active Objects);
-
- . Shared Malloc
- -- Components for managing dynamically allocation
- of shared and local memory;
-
- . CORBA integration
- -- Integrates ACE with CORBA implementations
- (such as single-threaded and multi-threaded
- Orbix and Visibroker for C++).
-
-----------------------------------------
-
-Distributed Services and Components
-
-Finally, ACE provides a standard library of distributed services that
-are packaged as components. These service components play two roles
-in ACE:
-
- 1. They provide reusable components for common distributed
- system tasks such as logging, naming, locking, and time
- synchronization.
-
- 2. They illustrate how to utilize ACE features such as the
- Reactor, Service Configurator, Service Initialization,
- Concurrency, and IPC components.
-
-----------------------------------------
-
-Middleware Applications
-
-ACE has been used in research and development projects at many
-universities and companies. For instance, it has been used to build
-avionics systems at Boeing, telecommunication systems at Bellcore,
-Ericsson, Motorola, and Lucent; medical imaging systems at Siemens and
-Kodak; and many academic research projects. Two example middleware
-applications provided with the ACE release include:
-
- 1. The ACE ORB (TAO) -- TAO is a real-time implementation of
- CORBA built using the framework components and patterns
- provided by ACE.
-
- 2. JAWS -- JAWS is a high-performance, adaptive Web server
- built using the components in ACE.
-
-----------------------------------------
-
-OBTAINING ACE
-
-The current ACE release is provided as a tar file that is around 3 Meg
-compressed using GNU gzip. ACE may be obtained electronically from
-http://www.cs.wustl.edu/~schmidt/ACE-obtain.html. This release
-contains the source code, test drivers, and example applications
-(including JAWS) for C++ wrapper libraries and the higher-level ACE
-network programming framework developed as part of the ADAPTIVE
-project at the University of California, Irvine and at Washington
-University, St. Louis.
-
-You can get The ACE ORB (TAO) in a companion release at
-http://www.cs.wustl.edu/~schmidt/TAO.html.
-
-----------------------------------------
-
-ACE DOCUMENTATION AND TUTORIALS
-
-Many of the C++ wrappers and higher-level components have been
-described in issues of the C++ Report, as well as in proceedings of
-many journals, conferences, and workshops.
-
-A collection of white papers and tutorial handouts are included at
-ftp://wuarchive.wustl.edu/languages/c++/ACE/ACE-documentation. This
-directory contains postscript versions of various papers that describe
-different aspects of ACE.
-
-I update these papers periodically to reflect changes to the ACE
-architecture. Therefore, you might want to check the date on the
-files to make sure that you have read the most recent versions of
-these papers.
-
-This material is also available available via the WWW at URL:
-
-http://www.cs.wustl.edu/~schmidt/ACE.html
-
-----------------------------------------
-
-ACE MAILING LIST AND NEWSGROUP
-
-A mailing list, ace-users@cs.wustl.edu, is available for discussing
-bug fixes, enhancements, and porting issues regarding ACE. Please
-send mail to me at the ace-users-request@cs.wustl.edu if you'd like to
-join the mailing list. There is also a USENET newsgroup called
-comp.soft-sys.ace.
-
-----------------------------------------
-
-BUILDING AND INSTALLING ACE
-
-Please refer to the http://www.cs.wustl.edu/~schmidt/ACE-install.html
-file for information on how to build and test the ACE wrappers. The
-BIBLIOGRAPHY file contains information on where to obtain articles
-that describe the ACE wrappers and the ADAPTIVE system in more detail.
-
-The current release has been tested extensively, but if you find any
-bugs, please report them to the ACE mailing list
-ace-users@cs.wustl.edu using the $ACE_ROOT/PROBLEM-REPORT-FORM.
-Please use the same form to submit questions, comments, etc.
-To ensure that you see responses, please do one of the following:
-
- 1) Subscribe to the ace-users mail list, by sending email with
- contents "subscribe ace-users" to majordomo@cs.wustl.edu.
-
- 2) Or, monitor the comp.soft-sys.ace newsgroup for responses.
-
-----------------------------------------
-
-ACKNOWLEDGEMENTS
-
-Please see the file `$ACE_ROOT/THANKS' for a list of the thousands of
-people who've contributed to ACE and TAO over the years.
diff --git a/RTJava/ChangeLog b/RTJava/ChangeLog
deleted file mode 100644
index 8fd28d94be1..00000000000
--- a/RTJava/ChangeLog
+++ /dev/null
@@ -1,61 +0,0 @@
-Fri Feb 02 19:49:28 2001 Angelo Corsaro <corsaro@cs.wustl.edu>
-
- * README:
- Added some more notes... But not completed yet.
-
- * docs/CodingStyle.txt:
- Added file cotaining the coding style that should be used.
-
- * examples/tank/Refiller.java:
- * examples/tank/Bucket.java:
- Created new example that will show how to use perioric
- task as well as Asynchronous event handlers and other
- RT Java features.
-
-Fri Feb 02 00:59:59 2001 Angelo Corsaro <corsaro@cs.wustl.edu>
-
- * benchmarks/RawSpeed:
- Added subdirectory for rt-jvm raw speed measurement.
-
- * benchmarks/RawSpeed/Fir:
- Added directory containing a FIR filter implementation.
-
- * benchmarks/RawSpeed/Fir/Fir.java:
- * benchmarks/RawSpeed/Fir/CachedIOFirTester.java:
- * benchmarks/RawSpeed/Fir/Fir.java:
- * benchmarks/RawSpeed/Fir/FirTester.java:
- * benchmarks/RawSpeed/Fir/IOFirTester.java:
- * benchmarks/RawSpeed/Fir/PerformanceMeter.java:
- * benchmarks/RawSpeed/Fir/SampleQueue.java:
- * benchmarks/RawSpeed/Fir/TimeTrace.java:
- Filter implementation plus instrumentation logic.
-
- * benchmarks/RawSpeed/Fir/Makefile:
- Make file for the package.
-
- * benchmarks/RawSpeed/Fir/run-ibm.bat:
- * benchmarks/RawSpeed/Fir/run-sun.bat:
- Windows bat file for running predefined test.
-
- * benchmarks/RawSpeed/Fir/sound.txt:
- * benchmarks/RawSpeed/Fir/coeff.txt:
- Real world sample, respectively and audio file fragment,
- and some coefficient used to filter noise.
-
- * benchmarks/RawSpeed/Fir/README:
- Reame for the example.
-
-Thu Feb 01 19:07:42 2001 Angelo Corsaro <corsaro@cs.wustl.edu>
-
- * docs:
- * benchmarks:
- * examples:
- Added directory for RT-Java documentation, examples, and
- benchmarks.
-
- * TODO:
- Files with the checklist of things to-do.
-
- * README:
- Files containing general info about what's in this
- directory.
diff --git a/RTJava/README b/RTJava/README
deleted file mode 100644
index 4b32c22c60d..00000000000
--- a/RTJava/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This directory contains a series of benchmarks for evaluating the
-RealTime JVM performance, and a series of example that are intented
-to show how certain feature of the RT Java should be used.
-
-Make sure you read the file docs/CodingStyle.txt before you start
-adding code to the repository, so that all our code can look uniform
-and it will be easier for all of us to understand and read each
-other code. \ No newline at end of file
diff --git a/RTJava/TODO b/RTJava/TODO
deleted file mode 100644
index 2bc3a67627f..00000000000
--- a/RTJava/TODO
+++ /dev/null
@@ -1,3 +0,0 @@
-This is a list of the "Things TO DO"
-
-1. Write the Things TODO.
diff --git a/RTJava/benchmarks/RawSpeed/Fir/CachedIOFirTester.java b/RTJava/benchmarks/RawSpeed/Fir/CachedIOFirTester.java
deleted file mode 100644
index 38c1916c2cc..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/CachedIOFirTester.java
+++ /dev/null
@@ -1,55 +0,0 @@
-//$Id$
-
-package Fir;
-
-import java.io.FileInputStream;
-import java.io.DataInputStream;
-
-public class CachedIOFirTester extends PerformanceMeter {
-
- public CachedIOFirTester(String sampleFileName,
- int sampleNum,
- String coeffFileName,
- int coeffNum,
- int cycle) throws java.io.IOException {
-
- FileInputStream ifile = new FileInputStream(sampleFileName);
- DataInputStream dataStream = new DataInputStream(ifile);
-
- this.mSample = new double[sampleNum];
- for (int i = 0; i < sampleNum; i++)
- this.mSample[i] = dataStream.readDouble();
-
- ifile = new FileInputStream(coeffFileName);
- dataStream = new DataInputStream(ifile);
- this.mCoefficient = new double[coeffNum];
-
- for (int i = 0; i < this.mCoefficient.length; i++)
- this.mCoefficient[i] = dataStream.readDouble();
-
- this.mQueue = new SampleQueue(sampleNum);
- this.mFir = new Fir(this.mCoefficient, this.mQueue);
- this.mCycle = cycle;
- }
-
- protected void Run() {
- for (int c = 0; c < this.mCycle; c++) {
- for (int n = 0; n < this.mSample.length; n++) {
- this.mQueue.AddItem(this.mSample[n]);
- this.mSample[n] = this.mFir.Filter();
- }
- }
- }
-
-
- private double mCoefficient[];
-
- private double mSample[];
-
- private Fir mFir;
-
- private SampleQueue mQueue;
-
- private int mCycle;
-
-}
diff --git a/RTJava/benchmarks/RawSpeed/Fir/Fir.java b/RTJava/benchmarks/RawSpeed/Fir/Fir.java
deleted file mode 100644
index 103103637c6..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/Fir.java
+++ /dev/null
@@ -1,51 +0,0 @@
-//$Id$
-
-package Fir;
-
-public class Fir {
-
- /**
- * Construct a Finite Impulse Responce filter.
- *
- * @param coefficient: The coefficient of the impulse responce.
- * @param samplQueue: A queue that contains the last input m elements.
- */
- public Fir(double coefficient[], SampleQueue sampleQueue) {
-
- this.mCoefficient = coefficient;
- this.mSampleQueue = sampleQueue;
- }
-
- /**
- * Computes the next output. This output depends from the
- * contents of the SampleQueue.
- */
- public double Filter() {
-
- double filteredSample = 0;
- for (int i = 0; i < this.mCoefficient.length; i++)
- filteredSample += this.mCoefficient[i]+this.mSampleQueue.GetItem(i);
-
- return filteredSample;
- }
-
- /**
- * Returns the SampleQueue.
- */
- public SampleQueue GetSampleQueue() {
-
- return this.mSampleQueue;
- }
-
- /**
- * Sets the SampleQueue.
- */
- public void SetSampleQueue(SampleQueue sampleQueue) {
-
- this.mSampleQueue = sampleQueue;
- }
-
- private double mCoefficient[];
-
- private SampleQueue mSampleQueue;
-}
diff --git a/RTJava/benchmarks/RawSpeed/Fir/FirTester.java b/RTJava/benchmarks/RawSpeed/Fir/FirTester.java
deleted file mode 100644
index 65a61b86f19..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/FirTester.java
+++ /dev/null
@@ -1,91 +0,0 @@
-//$Id$
-
-package Fir;
-
-public class FirTester {
-
- private String mSampleFile;
- private int mSampleNum;
-
- private String mCoeffFile;
- private int mCoeffNum;
-
- private boolean mCachedIO = true;
-
- private int mCycle = 1;
-
- private void ParseArgs(String Args[]) {
-
- int reqArg = 4;
- int setArg[] = new int[reqArg];
- try {
- int i = 0;
-
- while (i < Args.length) {
- if (Args[i].equals("-SampleFile")) {
- setArg[0] = 1;
- this.mSampleFile = Args[++i];
- }
- else if (Args[i].equals("-CoeffFile")) {
- setArg[1] = 1;
- this.mCoeffFile = Args[++i];
- }
- else if (Args[i].equals("-SampleNum")) {
- setArg[2] = 1;
- this.mSampleNum = Integer.parseInt(Args[++i]);
- }
- else if (Args[i].equals("-CoeffNum")) {
- setArg[3] = 1;
- this.mCoeffNum = Integer.parseInt(Args[++i]);
- }
-
- else if (Args[i].equals("-NoCaching"))
- this.mCachedIO = false;
-
- else if (Args[i].equals("-Cycle"))
- this.mCycle = Integer.parseInt(Args[++i]);
- ++i;
- }
- }
- catch (java.lang.NumberFormatException nfe) {
- System.out.println("Invalid Number Format!");
- System.exit(-1);
- }
-
- int sum = 0;
-
- for (int i = 0; i < 4; i++)
- sum +=setArg[i];
-
- if ( sum != reqArg) {
- System.out.println("Not enough argumets!");
- System.out.println("USAGE: \nFirTester -SampleFile <filename> -SampleNum <sampleNum> -CoeffFile <filename> -CoeffNum <coeffnum>");
- System.exit(-1);
- }
-
-
- }
-
- public static void main(String Args[]) throws java.io.IOException {
-
- FirTester ft = new FirTester();
- ft.ParseArgs(Args);
-
- PerformanceMeter firTester;
- if (ft.mCachedIO)
- firTester = new CachedIOFirTester(ft.mSampleFile,
- ft.mSampleNum,
- ft.mCoeffFile,
- ft.mCoeffNum,
- ft.mCycle);
- else
- firTester = new IOFirTester(ft.mSampleFile,
- ft.mSampleNum,
- ft.mCoeffFile,
- ft.mCoeffNum);
-
- firTester.Start();
- System.out.println("Time Required by the computation: "
- + firTester.GetTraceTime() +" msec.");
- }
-}
diff --git a/RTJava/benchmarks/RawSpeed/Fir/IOFirTester.java b/RTJava/benchmarks/RawSpeed/Fir/IOFirTester.java
deleted file mode 100644
index e464012249c..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/IOFirTester.java
+++ /dev/null
@@ -1,50 +0,0 @@
-//$Id$
-
-package Fir;
-
-import java.io.FileInputStream;
-import java.io.DataInputStream;
-
-public class IOFirTester extends PerformanceMeter {
-
- private DataInputStream mDataStream;
-
- private double mCoefficient[];
- private Fir mFir;
- private SampleQueue mQueue;
-
- private int mSampleNum;
-
- public IOFirTester(String sampleFileName,
- int sampleNum,
- String coeffFileName,
- int coeffNum) throws java.io.IOException {
-
- FileInputStream ifile = new FileInputStream(coeffFileName);
- this.mDataStream = new DataInputStream(ifile);
- this.mCoefficient = new double[coeffNum];
-
- for (int i = 0; i < this.mCoefficient.length; i++)
- this.mCoefficient[i] = this.mDataStream.readDouble();
-
- ifile = new FileInputStream(sampleFileName);
- this.mDataStream = new DataInputStream(ifile);
-
- this.mQueue = new SampleQueue(sampleNum);
- this.mFir = new Fir(this.mCoefficient, this.mQueue);
- this.mSampleNum = sampleNum;
- }
-
- protected void Run() {
- try {
- for (int n = 0; n < this.mSampleNum; n++) {
- this.mQueue.AddItem(this.mDataStream.readDouble());
- this.mFir.Filter();
- }
- }
- catch (java.io.IOException e) {
- e.printStackTrace();
- System.exit(-1);
- }
- }
-}
diff --git a/RTJava/benchmarks/RawSpeed/Fir/Makefile b/RTJava/benchmarks/RawSpeed/Fir/Makefile
deleted file mode 100644
index 462c2642c04..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-#$Id$
-
-JAVAC = javac
-JAVADOC = javadoc
-JAVAFLAGS += -classpath ../ -O
-RM = rm
-RMFLAGS = -f
-
-DOC_HOME = doc
-CLASS_PATH = .
-
-SOURCE := $(wildcard *.java)
-CLASSES := $(patsubst %.java,%.class,$(SOURCE))
-
-PKG = Fir
-
-default: all
-
-all: $(CLASSES)
-
-%.class: %.java
- $(JAVAC) $(JAVAFLAGS) $<
-
-Doc:
- cd ..; $(JAVADOC) -d $(DOC_HOME) -classpath $(CLASS_PATH) $(PKG); cd $(PKG)
-clean:
- $(RM) *.class; $(RM) *~
-
-removetmp:
- $(RM) $(RMFLAGS) *~
diff --git a/RTJava/benchmarks/RawSpeed/Fir/PerformanceMeter.java b/RTJava/benchmarks/RawSpeed/Fir/PerformanceMeter.java
deleted file mode 100644
index 508bc49a902..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/PerformanceMeter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-//$Id$
-
-package Fir;
-
-/**
- * This class provide a pretty easy and naive way of
- * measuring the performance of software, in term of
- * time taken to execute a given test. This class
- * represent the abstract base for class that effectively
- * preform some test. What this class provide is a template
- * method, that implements the logic related to the measuring
- * of the time ellapsed.
- */
-public class PerformanceMeter {
-
- /**
- * This method runs the test by setting the start time
- * invoking the sublclass specific Run method.
- */
- public void Start() {
- this.mTimeTrace = new TimeTrace();
- this.mTimeTrace.Start();
- this.Run();
- this.mTimeTrace.Stop();
- }
-
- /**
- * Gives the time taken to run the test.
- */
- public double GetTraceTime() {
- return this.mTimeTrace.GetElapsedTime();
- }
-
- /**
- * Gets an estimate of the accuracy of the estimate given.
- */
- public double GetTraceTimeResolution() {
- return this.mTimeTrace.GetResolution();
- }
-
- /**
- * This method has to be filled by the sub-class
- * that provide a specific test strategy.
- */
- protected void Run() { }
-
- private TimeTrace mTimeTrace;
-}
diff --git a/RTJava/benchmarks/RawSpeed/Fir/README b/RTJava/benchmarks/RawSpeed/Fir/README
deleted file mode 100644
index 90a0e52a025..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/README
+++ /dev/null
@@ -1,13 +0,0 @@
-This package contains the implementation of a Finite Impulse Responce (FIR)
-filter. This kind of filter appears in almost all embedde systems, and from
-a computational point of view are characterized by tight computational loop.
-
-This is then a good use case for evaluating the througput that could be
-obtained using different RT Java implementation.
-
-To run the test you need first to compile, in this case simply run:
-
-$ make
-
-Once you have done this you can use the script available to run the default
-test cases.
diff --git a/RTJava/benchmarks/RawSpeed/Fir/SampleQueue.java b/RTJava/benchmarks/RawSpeed/Fir/SampleQueue.java
deleted file mode 100644
index bf090b437f3..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/SampleQueue.java
+++ /dev/null
@@ -1,59 +0,0 @@
-//$Id$
-
-package Fir;
-
-/**
- * This class intented to contain a set of sample from
- * a given continuous variable. The sample are managed
- * as if the n-th item rapresent the item n sample in
- * the past. Each time an item is added the oldest sample
- * is discarded (i.e. the sample that is as old as the size
- * of the queue plus one).
- *
- */
-public class SampleQueue {
-
- /**
- * Create a SampleQueue with a given size.
- *
- * @param sampleNum: The number of sample that the queue can store.
- */
- public SampleQueue(int sampleNum) {
-
- this.mSampleNum = sampleNum;
- this.mSample = new double[this.mSampleNum];
- this.mTail = 0;
- this.mCachedOffset = 0;
- }
- /**
- * Adds an item to the sample queue. The last
- * item added is treated as the most recent in time.
- *
- * @param item: The item to be added to the queue.
- */
- public void AddItem(double item) {
-
- this.mCachedOffset = this.mTail+this.mSampleNum;
- this.mSample[this.mTail] = item;
- this.mTail = (this.mTail+1)%this.mSampleNum;
- }
-
- /**
- * Adds an item to the sample queue. The last
- * item added is treated as the most recent in time.
- *
- * @param item: The item to be added to the queue.
- */
- public double GetItem(int index) {
- return this.mSample[index];
- }
-
- private int mSampleNum;
-
- private int mTail;
-
- private int mCachedOffset;
-
- private double mSample[];
-
-}
diff --git a/RTJava/benchmarks/RawSpeed/Fir/TimeTrace.java b/RTJava/benchmarks/RawSpeed/Fir/TimeTrace.java
deleted file mode 100644
index 0aacc43cab9..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/TimeTrace.java
+++ /dev/null
@@ -1,77 +0,0 @@
-//$Id$
-
-package Fir;
-
-/**
- * This class provide a way of recording the time
- * elapsed between two events. This implementation
- * doesn't assume that you should match each start
- * of a trace with a stop. But it simply associate
- * the end of the trace with the last start point.
- */
-public class TimeTrace {
-
- /**
- * Creates a TimerTrace object and sets the
- * start clock tick and the end clock ticks
- * at the clock tick when the object was
- * created.
- */
- public TimeTrace() {
- this.mStartTime = System.currentTimeMillis();
- this.mStopTime = this.mStartTime;
- }
-
- /**
- * Starts the time trace.
- */
- public void Start() {
- this.mStartTime = System.currentTimeMillis();
- }
-
- /**
- * Stops the time trace. There is no guard to
- * check whether the trace was started, to avoid
- * to spent time cheching condition.
- */
- public void Stop() {
- this.mStopTime = System.currentTimeMillis();
- }
-
- /**
- * Retrieve the time at which the trace started.
- */
- public long GetStartTime() {
- return this.mStartTime;
- }
-
- /**
- * Retrieve the time at which the trace ended.
- *
- */
- public long GetStopTime() {
- return this.mStopTime;
- }
-
- /**
- * Retrieves the time ellapsed between start and stop.
- *
- * return The time ellapsed in millis.
- */
- public long GetElapsedTime() {
- return this.mStopTime - this.mStartTime;
- }
-
- /**
- * Provide the resolution of the underlying timer used to
- * make the measurament.
- *
- * @return The resolution in millis.
- */
- public double GetResolution() {
- return 0.001;
- }
-
- private long mStartTime;
- private long mStopTime;
-}
diff --git a/RTJava/benchmarks/RawSpeed/Fir/coeff.txt b/RTJava/benchmarks/RawSpeed/Fir/coeff.txt
deleted file mode 100644
index c9908f1138c..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/coeff.txt
+++ /dev/null
@@ -1,21 +0,0 @@
--0.000016896611
- 0.003375966049
- 0.003145041404
--0.037508157850
--0.039953708837
- 0.100634096970
- 0.177449230791
--0.032248344343
--0.267459599709
--0.174205904525
- 0.101489399633
- 0.196625581458
- 0.079319135153
--0.036197191641
--0.052838918094
--0.026423191788
--0.007157432404
- 0.002094924924
- 0.005304680257
- 0.003814538140
- 0.001230772238
diff --git a/RTJava/benchmarks/RawSpeed/Fir/run-ibm.bat b/RTJava/benchmarks/RawSpeed/Fir/run-ibm.bat
deleted file mode 100755
index f918f537d24..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/run-ibm.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo Filtering Data...
-@echo off
-j9 -jcl:core -jit -bp:%IVEHOME%\lib\jclCore\classes.zip -cp:%IVEHOME%\lib\jclCore\ive.jar;../ Fir.FirTester -SampleFile sound.txt -CoeffFile coeff.txt -SampleNum 30000 -CoeffNum 21 -Cycle 3
diff --git a/RTJava/benchmarks/RawSpeed/Fir/run-sun.bat b/RTJava/benchmarks/RawSpeed/Fir/run-sun.bat
deleted file mode 100755
index 17b2c78ed3b..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/run-sun.bat
+++ /dev/null
@@ -1,3 +0,0 @@
-@echo Filtering Data...
-@echo off
-java -cp ..\ Fir.FirTester -SampleFile sound.txt -CoeffFile coeff.txt -SampleNum 30000 -CoeffNum 21 -Cycle 3
diff --git a/RTJava/benchmarks/RawSpeed/Fir/sound.txt b/RTJava/benchmarks/RawSpeed/Fir/sound.txt
deleted file mode 100644
index 00fbe47e05f..00000000000
--- a/RTJava/benchmarks/RawSpeed/Fir/sound.txt
+++ /dev/null
@@ -1,30000 +0,0 @@
--0.0042725
--0.0043945
--0.0045776
--0.0049744
--0.0052185
--0.0052185
--0.0049744
--0.0048523
--0.0046692
--0.004425
--0.004425
--0.0046997
--0.0048218
--0.0053711
--0.0057373
--0.0058594
--0.0057068
--0.0058899
--0.0057678
--0.0058289
--0.0057373
--0.0056763
--0.0054321
--0.0054626
--0.0052795
--0.0052795
--0.0049133
--0.0047913
--0.0048523
--0.0050964
--0.0052795
--0.005249
--0.0053711
--0.0054321
--0.0053101
--0.0050659
--0.0049133
--0.0047302
--0.0045471
--0.004364
--0.0041199
--0.0039368
--0.0039368
--0.0041199
--0.004425
--0.0044861
--0.0043335
--0.0042114
--0.0038452
--0.0036011
--0.003418
--0.0032349
--0.0032959
--0.0036621
--0.0037842
--0.0039063
--0.0040283
--0.0041504
--0.0040283
--0.0040894
--0.0039063
--0.0036621
--0.0036011
--0.0038452
--0.0038452
--0.0040283
--0.0039978
--0.0041199
--0.0039368
--0.0039978
--0.0039978
--0.0039978
--0.0042419
--0.004425
--0.0045471
--0.0043945
--0.0042725
--0.0043945
--0.0040283
--0.0038452
--0.0038452
--0.0038452
--0.0039063
--0.0040283
--0.0036621
--0.0039063
--0.0037231
--0.0036621
--0.0036621
--0.0033569
--0.0032959
--0.0032349
--0.0031128
--0.0032959
--0.0030518
--0.0031738
--0.0030518
--0.0029907
--0.0028076
--0.0025635
--0.0025024
--0.0021362
--0.0020752
--0.0020142
--0.0019226
--0.0019226
--0.0021057
--0.0021667
--0.0022278
--0.0022278
--0.0021667
--0.0022888
--0.0021667
--0.0021057
--0.0022888
--0.0023499
--0.002594
--0.0024109
--0.0024109
--0.0022278
--0.0021667
--0.0024719
--0.0024719
--0.0024109
--0.0026855
--0.0028687
--0.0028687
--0.0027466
--0.0027466
--0.002655
--0.0026855
--0.0024109
--0.0020447
--0.0022278
--0.0020447
--0.0019836
--0.0020447
--0.0018616
--0.0017395
--0.0016785
--0.0015564
--0.0014343
--0.0012512
--0.0012512
--0.0010071
--0.0010071
--0.0010376
--0.0010376
--0.0010376
--0.0012207
--0.0011292
--0.0012512
--0.0010071
--0.00088501
--0.00085449
--0.0011597
--0.00097656
--0.0010986
--0.0013733
--0.0014343
--0.0016174
--0.0016174
--0.0014343
--0.0013428
--0.00091553
--0.0010986
--0.0016479
--0.00177
--0.0019836
--0.0019226
--0.0020447
--0.0022278
--0.0024719
--0.002594
--0.0024109
--0.0022278
--0.0020447
--0.0021667
--0.0022888
--0.0022278
--0.0021667
--0.0017395
--0.0015564
--0.0016785
--0.0017395
--0.0016174
--0.0014343
--0.0013733
--0.0012512
--0.00094604
--0.00091553
--0.00073242
--0.00073242
--0.00061035
--0.00015259
-0.00015259
-6.1035e-005
-6.1035e-005
--0.00012207
--0.00015259
--0.00045776
--0.00057983
--0.00082397
--0.00085449
--0.00097656
--0.0010376
--0.00079346
--0.00064087
--0.00045776
--0.00082397
--0.00094604
--0.0010376
--0.0012207
--0.0014038
--0.0014038
--0.0016785
--0.0018616
--0.0019836
--0.0020447
--0.0021667
--0.0022888
--0.0022278
--0.0023193
--0.0024414
--0.0028076
--0.0026855
--0.0024414
--0.0021362
--0.0020752
--0.0020142
--0.0019836
--0.0022888
--0.0021667
--0.0019226
--0.0016174
--0.0013733
--0.0011902
--0.00088501
--0.00097656
--0.00079346
--0.00067139
--0.00027466
--0.00045776
--0.0007019
--0.0011902
--0.0014648
--0.0012207
--0.00097656
--0.00091553
--0.0010071
--0.0011292
--0.0012512
--0.0011902
--0.0011292
--0.0012207
--0.0015259
--0.0018921
--0.0020752
--0.0020752
--0.0021057
--0.0022278
--0.0020447
--0.0020447
--0.0023499
--0.0023499
--0.002533
--0.002594
--0.0024109
--0.0024719
--0.0024719
--0.0028381
--0.0028992
--0.0031433
--0.0032654
--0.0032043
--0.0032654
--0.0032654
--0.0033264
--0.0032043
--0.0027771
--0.002533
--0.0024719
--0.0021057
--0.0021057
--0.0020447
--0.0022888
--0.0024719
--0.002655
--0.0028381
--0.0028381
--0.002655
--0.0022888
--0.0021057
--0.0021057
--0.0019226
--0.0016785
--0.0016785
--0.0021057
--0.0021057
--0.0022583
--0.0025024
--0.0022583
--0.0025024
--0.0026245
--0.0028687
--0.0029297
--0.0031128
--0.0033264
--0.0033875
--0.003418
--0.0032654
--0.0030823
--0.0033875
--0.0032654
--0.0032654
--0.003479
--0.0038452
--0.0039673
--0.0041504
--0.0041504
--0.0040894
--0.0038452
--0.0037231
--0.0032043
--0.0027771
--0.0027771
--0.0029602
--0.0030823
--0.0033264
--0.003418
--0.0036011
--0.00354
--0.00354
--0.00354
--0.0036011
--0.0037231
--0.0037231
--0.0039673
--0.0040283
--0.0039063
--0.0040283
--0.0038452
--0.0040283
--0.0040283
--0.0040894
--0.0041504
--0.0040894
--0.0041504
--0.0044556
--0.0041504
--0.0042114
--0.0039673
--0.0039063
--0.003479
--0.00354
--0.003479
--0.0038452
--0.0042114
--0.0048218
--0.005249
--0.005249
--0.0057373
--0.0057983
--0.0058594
--0.0057983
--0.0057678
--0.0054016
--0.0051575
--0.0048523
--0.004425
--0.004303
--0.0042419
--0.004303
--0.004303
--0.004364
--0.004364
--0.0045471
--0.0049133
--0.0051575
--0.0052185
--0.0052795
--0.005249
--0.0054321
--0.0053711
--0.005127
--0.0048828
--0.0047607
--0.0048828
--0.0047913
--0.0050964
--0.0055847
--0.0058899
--0.0059509
--0.0058594
--0.0056152
--0.005249
--0.0049438
--0.0053101
--0.0053711
--0.0054932
--0.0054932
--0.0056458
--0.0057068
--0.006012
--0.006073
--0.0063782
--0.0062256
--0.0061035
--0.0062256
--0.0061951
--0.0065613
--0.0065613
--0.0068665
--0.007019
--0.0070801
--0.0067749
--0.0066528
--0.0068665
--0.0068054
--0.0065613
--0.0066223
--0.0063477
--0.0062866
--0.0057373
--0.0057068
--0.0054626
--0.0053406
--0.0050964
--0.0052185
--0.0052795
--0.0055237
--0.0058594
--0.0061035
--0.0061035
--0.0059204
--0.0056458
--0.0054626
--0.0050964
--0.0050964
--0.0049744
--0.0050964
--0.0050964
--0.0055237
--0.0059814
--0.0058594
--0.0059814
--0.0058289
--0.0058289
--0.006012
--0.0058899
--0.0057373
--0.0057373
--0.0056152
--0.0056763
--0.0056458
--0.0057678
--0.0057068
--0.0058899
--0.0056152
--0.0054932
--0.005188
--0.0053101
--0.005188
--0.0054932
--0.0057678
--0.006073
--0.0061951
--0.0063782
--0.0063477
--0.0059814
--0.0059814
--0.006012
--0.0058899
--0.0055847
--0.0054016
--0.0054321
--0.0055542
--0.0061035
--0.0062256
--0.0061951
--0.006134
--0.006012
--0.0059509
--0.0058594
--0.0059814
--0.0057983
--0.0057983
--0.0054626
--0.0050964
--0.0049744
--0.0050964
--0.0053406
--0.0055847
--0.0061646
--0.0061646
--0.0059814
--0.0059204
--0.0061035
--0.0062256
--0.0059814
--0.0058289
--0.0055847
--0.0055847
--0.0057068
--0.0058899
--0.006012
--0.006134
--0.006134
--0.0061646
--0.0062866
--0.0063477
--0.0065308
--0.0062256
--0.0059814
--0.0059509
--0.0058899
--0.0055237
--0.0054016
--0.0053406
--0.0050354
--0.0048523
--0.0046082
--0.0047302
--0.0047302
--0.0049744
--0.0049744
--0.0050354
--0.0049133
--0.0045471
--0.0042419
--0.0039368
--0.0041199
--0.0044861
--0.0046082
--0.0045471
--0.0041809
--0.0040588
--0.0042419
--0.004364
--0.0046082
--0.004425
--0.0042419
--0.0041199
--0.0041809
--0.0046082
--0.0047913
--0.0049133
--0.0050964
--0.0054016
--0.0058289
--0.0059204
--0.0059204
--0.0056763
--0.0053711
--0.0047607
--0.0045776
--0.0043945
--0.0044556
--0.0046997
--0.0048828
--0.0048828
--0.0049438
--0.0047607
--0.0045776
--0.0044556
--0.0045166
--0.0042725
--0.0040894
--0.0040894
--0.0037842
--0.0036621
--0.0032349
--0.0031128
--0.0029297
--0.0028381
--0.0028992
--0.0030212
--0.0030823
--0.0033875
--0.0036316
--0.0038452
--0.0039673
--0.0037537
--0.0035095
--0.0034485
--0.0033875
--0.0033875
--0.0032654
--0.0033264
--0.0033875
--0.0035095
--0.0039673
--0.0042114
--0.0043945
--0.0043335
--0.0042114
--0.0042114
--0.0042725
--0.0043945
--0.0043335
--0.0043335
--0.0042725
--0.0042114
--0.0042725
--0.0041504
--0.0042114
--0.0041504
--0.0039673
--0.0040283
--0.0042114
--0.0042114
--0.0040283
--0.0038452
--0.0035095
--0.0030823
--0.0027161
--0.0023499
--0.0024109
--0.002533
--0.002655
--0.0028992
--0.0030823
--0.0031128
--0.0031128
--0.0028076
--0.0025024
--0.0023193
--0.0020447
--0.0021667
--0.002533
--0.002533
--0.0028381
--0.0030212
--0.0033569
--0.0036621
--0.0036621
--0.0033569
--0.0029907
--0.0028687
--0.0024414
--0.0021057
--0.0019226
--0.0019836
--0.0021057
--0.0022888
--0.0022888
--0.0021057
--0.0021973
--0.0023193
--0.0024414
--0.0026855
--0.0026245
--0.0025024
--0.0023193
--0.0019531
--0.0016479
--0.0013733
--0.0011292
--0.0010681
--0.0010681
--0.0012512
--0.0015259
--0.0018311
--0.001709
--0.0018311
--0.0015259
--0.0015869
--0.0013428
--0.0010681
--0.00082397
--0.00082397
--0.00064087
--0.00067139
--0.00085449
--0.0011597
--0.00097656
--0.0010681
--0.0011902
--0.0013733
--0.0012512
--0.0010986
--0.00097656
--0.00079346
--0.00073242
--0.00076294
--0.00064087
--0.00076294
--0.00082397
--0.00085449
--0.00073242
--0.00097656
--0.0012207
--0.0016785
--0.0019226
--0.0021667
--0.0021057
--0.0017395
--0.0014954
--0.0012512
--0.0011902
--0.0010681
--0.00097656
--0.0014648
--0.0011597
--0.0013428
--0.0014954
--0.0013123
--0.0011902
--0.00082397
--0.00042725
--0.00012207
-0.00012207
--0.00015259
-3.0518e-005
--0.00024414
--0.00024414
--0.00024414
--0.00015259
-9.1553e-005
-9.1553e-005
--0.00012207
--0.00018311
--0.00045776
--0.00015259
--3.0518e-005
-0.00012207
--0.00012207
--0.00048828
--0.00057983
--0.00082397
--0.0010071
--0.0010071
--0.00097656
--0.0011597
--0.0010376
--0.0011597
--0.0012512
--0.0012512
--0.0012512
--0.0012512
--0.0013428
--0.00177
--0.0018311
--0.00177
--0.0016174
--0.0015564
--0.0013123
--0.0014954
--0.0014648
--0.0015259
--0.0015869
--0.001709
--0.0014343
--0.0014343
--0.0011292
--0.0010071
--0.00097656
--0.00085449
--0.00097656
--0.00085449
--0.00064087
--0.00027466
--0.00012207
-0.00067139
-0.0019226
-0.00094604
-0.00061035
-0.00079346
-0.00039673
-0.00027466
-0.00054932
-0.00048828
-0.00045776
-0.00015259
-3.0518e-005
--0.00024414
--0.00030518
--0.00042725
-0.0033264
-0.0066528
-0.002655
--0.00015259
--0.00027466
--0.0021362
--0.0029297
--0.0020142
--0.0015869
--0.00094604
-0.0007019
-0.0016479
-0.00067139
-0.00027466
-0.00057983
--0.00039673
--0.00067139
--0.00048828
--0.00054932
--0.00061035
--0.00057983
--0.00045776
--0.00076294
--0.0010681
--0.00097656
--0.00073242
--0.00061035
-0.00076294
-0.0027161
-0.00177
-0.0015259
-0.0021057
-0.0018616
-0.0010681
-0.001709
-0.0033569
-0.0024719
-0.0018311
-0.0014038
-0.00042725
-0.0014343
-0.0023193
-0.0022583
-0.004303
-0.0074463
-0.0066223
-0.0040894
-0.0026855
-0.002655
-0.0063477
-0.0091858
-0.0075073
-0.0046692
-0.0022583
-
--0.0012817
--0.0005188
-0.0012512
-0.0010986
-0.0012207
-0.0021667
-0.0018005
-0.00097656
-0.0010986
-0.0010071
-0.00021362
--0.00030518
-0.00030518
-0.00088501
-0.0011292
-0.0016174
-0.001709
-0.0015869
-0.00088501
--0.00039673
--0.00042725
--0.00012207
-0.0021057
-0.0055542
-0.003418
-0.00064087
--0.00088501
--0.0028992
--0.0032959
--0.0026245
--0.0010376
-0.0014954
-0.0041809
-0.003418
-0.0018005
-0.0010071
-0.00067139
-0.00012207
-0.00033569
-0.0014954
-0.0026855
-0.0029602
-0.0032043
-0.0018921
--0.00024414
--0.0015869
--0.0022583
--0.0020752
--0.00094604
-0.00021362
-0.0018005
-0.0025635
-0.001709
-0.00033569
--0.0005188
--0.0011902
--0.00061035
-0.00079346
-0.002594
-0.0034485
-0.0032349
-0.0021973
-0.0017395
-0.0013123
-0.00042725
-
-6.1035e-005
--9.1553e-005
-0.00064087
-0.0012817
-0.0014038
-0.00097656
-0.0033875
-0.01001
-0.011719
-0.0087585
-0.0059204
-0.0029602
--0.0005188
--0.0032043
--0.0041809
--0.0049744
--0.0065918
--0.0067749
--0.0064697
--0.006012
--0.0052185
--0.0038147
--0.0021667
--0.0015869
--0.0011597
--0.00036621
--0.0007019
--0.0022888
--0.0041504
--0.0046997
--0.0053101
--0.0063477
--0.0057373
--0.0042725
--0.003418
--0.0031738
--0.0032959
--0.0047607
--0.0061951
--0.0066833
--0.0054626
--0.0042419
--0.0028381
--0.00045776
-0.0018921
-0.0020752
-0.0014954
-0.0019226
-0.0024414
-0.002655
-0.0030212
-0.0033569
-0.0038757
-0.0046692
-0.0045166
-0.0036926
-0.0021667
-0.00061035
-0.00024414
-0.00088501
-0.0021057
-0.00354
-0.0058899
-0.006958
-0.0065613
-0.0059814
-0.0053406
-0.0042114
-0.0039368
-0.0053406
-0.0066528
-0.0069885
-0.0074158
-0.0077515
-0.0069885
-0.0057373
-0.0049133
-0.0042419
-0.0033569
-0.0027771
-0.0033875
-0.0040894
-0.0044861
-0.005127
-0.0046692
-0.0038757
-0.0030518
-0.0028076
-0.0035706
-0.0046387
-0.0059509
-0.0074463
-0.0079651
-0.0071411
-0.0055847
-0.004364
-0.0036621
-0.0028381
-0.0032654
-0.0043335
-0.0051575
-0.0056152
-0.0057678
-0.0053101
-0.0046082
-0.0039368
-0.0036011
-0.0038147
-0.0049438
-0.0057983
-0.0062561
-0.0064697
-0.0063782
-0.0055542
-0.0053406
-0.0058594
-0.006073
-0.0062866
-0.0074158
-0.0080566
-0.0076294
-0.0072937
-0.007019
-0.006012
-0.0050659
-0.0055237
-0.0057983
-0.006134
-0.0067749
-0.0075989
-0.0075073
-0.0071716
-0.0070801
-0.0071106
-0.0071411
-0.0075378
-0.0078735
-0.0079041
-0.0081177
-0.0082092
-0.0073853
-0.0068665
-0.0059204
-0.0054626
-0.0057373
-0.0061951
-0.0070801
-0.0075378
-0.0079956
-0.007843
-0.0079956
-0.0080872
-0.0074768
-0.0066223
-0.0061646
-0.006073
-0.0054932
-0.0050354
-0.0044556
-0.0041809
-0.003418
-0.0030518
-0.0031433
-0.0028076
-0.0025024
-0.002594
-0.0023193
-0.0015259
-0.00082397
-9.1553e-005
--0.0013123
--0.0028992
--0.0036621
--0.0036011
--0.0031738
--0.0025635
--0.0020142
--0.0022583
--0.0032654
--0.0042725
--0.005127
--0.0057983
--0.0062256
--0.0061035
--0.0055542
--0.0053711
--0.0053711
--0.0052185
--0.0055237
--0.0054016
--0.0050354
--0.0050354
--0.006134
--0.0071106
--0.0073547
--0.0078735
--0.0097046
--0.011993
--0.012939
--0.014252
--0.014709
--0.013885
--0.012695
--0.011322
--0.0097961
--0.0084534
--0.0079956
--0.0081787
--0.0082092
--0.0080261
--0.0092773
--0.010193
--0.010223
--0.010712
--0.012939
--0.015259
--0.01535
--0.014648
--0.016388
--0.017944
--0.017426
--0.016724
--0.017059
--0.017975
--0.018311
--0.01944
--0.019562
--0.018494
--0.017731
--0.015137
--0.01236
--0.01239
--0.011749
--0.010956
--0.013092
--0.017456
--0.018402
--0.016663
--0.018097
--0.019257
--0.015808
--0.012848
--0.012665
--0.012573
--0.011505
--0.011169
--0.01178
--0.012726
--0.012878
--0.012665
--0.012939
--0.013763
--0.013672
--0.013092
--0.0088806
-0.00015259
-0.012726
-0.024048
-0.034393
-0.04425
-0.049469
-0.049255
-0.047028
-0.042084
-0.035767
-0.029938
-0.02478
-0.017517
-0.010071
-0.0075989
-0.0078125
-0.0089417
-0.011871
-0.016693
-0.020538
-0.023438
-0.025604
-0.027618
-0.028137
-0.026031
-0.022339
-0.017822
-0.012665
-0.0081177
-0.0047913
-0.0041504
-0.0042419
-0.0029602
-0.00036621
--0.0053711
--0.013092
--0.020294
--0.024323
--0.025909
--0.026337
--0.025543
--0.024109
--0.022827
--0.020935
--0.018097
--0.014587
--0.010529
--0.0057068
--0.0030212
--0.004303
--0.0078735
--0.012115
--0.016785
--0.021698
--0.02536
--0.027069
--0.027008
--0.024872
--0.020081
--0.013153
--0.0063171
-3.0518e-005
-0.0062866
-0.012421
-0.015961
-0.017883
-0.019897
-0.021973
-0.023407
-0.024536
-0.025452
-0.025238
-0.025208
-0.027435
-0.029541
-0.029144
-0.028137
-0.028107
-0.027588
-0.025482
-0.023224
-0.022583
-0.022247
-0.023529
-0.026917
-0.031525
-0.035614
-0.039337
-0.042084
-0.043304
-0.041321
-0.036713
-0.03067
-0.024628
-0.018738
-0.013153
-0.0075989
-0.0023499
--0.0010071
--0.0021057
--0.0018921
--0.00054932
-0.0021973
-0.0050354
-0.0065918
-0.0071106
-0.0067749
-0.0044861
-0.0011902
--0.0012817
--0.0029297
--0.0050964
--0.0069885
--0.0074768
--0.0074463
--0.007019
--0.0062256
--0.0055847
--0.0054016
--0.0055847
--0.0057678
--0.0059814
--0.0058594
--0.0048218
--0.0023804
-0.00057983
-0.0036316
-0.0068359
-0.010162
-0.012665
-0.014618
-0.015747
-0.016052
-0.015076
-0.013306
-0.0112
-0.008728
-0.0065002
-0.0053101
-0.0052185
-0.0063477
-0.0079041
-0.010162
-0.012268
-0.01355
-0.01355
-0.012604
-0.011261
-0.0085449
-0.0055847
-0.0023804
--0.00085449
--0.0037231
--0.0061035
--0.0085144
--0.011017
--0.012695
--0.014191
--0.016296
--0.018036
--0.019562
--0.02182
--0.025146
--0.027679
--0.0289
--0.029633
--0.030273
--0.029968
--0.028931
--0.028137
--0.027191
--0.028107
--0.030121
--0.031494
--0.033783
--0.036865
--0.040375
--0.04483
--0.047943
--0.04837
--0.047699
--0.04599
--0.043182
--0.040894
--0.038391
--0.033875
--0.028107
--0.02478
--0.024841
--0.022339
--0.019623
--0.021149
--0.025604
--0.026642
--0.024109
--0.026123
--0.030304
--0.028046
--0.022308
--0.021606
--0.022095
--0.016937
--0.007843
--0.0054321
--0.0075684
--0.0056763
--0.0023804
--0.00177
--0.0028076
--0.00048828
-0.0028992
-0.00015259
--0.001709
-0.0020142
-0.0052185
-0.0095215
-0.017334
-0.028534
-0.036407
-0.041718
-0.047668
-0.050262
-0.055145
-0.067688
-0.077057
-0.07489
-0.069061
-0.067017
-0.056274
-0.038452
-0.027649
-0.026215
-0.022522
-0.015991
-0.014557
-0.013641
-0.0081787
-0.0056458
-0.011414
-0.019562
-0.021576
-0.022034
-0.021118
-0.01532
-0.0082092
-0.0027466
--0.0021973
--0.0089722
--0.014923
--0.020905
--0.030487
--0.038177
--0.04071
--0.041382
--0.040802
--0.037048
--0.034027
--0.036743
--0.040619
--0.03775
--0.030853
--0.024078
--0.018311
--0.012177
--0.0083618
--0.0090942
--0.011444
--0.011993
--0.010864
--0.010406
--0.0090637
--0.0081177
--0.0095215
--0.01297
--0.013977
--0.009613
--0.003479
-0.0037842
-0.012756
-0.020752
-0.027924
-0.034149
-0.039642
-0.042572
-0.044128
-0.045471
-0.044464
-0.040985
-0.037994
-0.036407
-0.034058
-0.030823
-0.028351
-0.025665
-0.020721
-0.016998
-0.017853
-0.020264
-0.021057
-0.020996
-0.020294
-0.018646
-0.016754
-0.016632
-0.017609
-0.017242
-0.016388
-0.013702
-0.0073242
--0.0010986
--0.0097046
--0.016724
--0.022064
--0.025604
--0.028046
--0.031677
--0.034698
--0.033966
--0.029663
--0.022797
--0.013458
--0.0063782
--0.0032043
--0.0021667
--0.00018311
-0.0032959
-0.0097046
-0.017334
-0.02179
-0.0242
-0.028015
-0.028717
-0.024506
-0.022888
-0.027802
-0.031982
-0.030731
-0.029541
-0.030029
-0.028473
-0.026459
-0.029236
-0.03595
-0.041687
-0.045868
-0.051086
-0.054382
-0.052094
-0.047729
-0.045654
-0.043488
-0.038605
-0.033081
-0.027985
-0.022003
-0.016266
-0.013947
-0.014496
-0.017059
-0.020233
-0.022705
-0.024414
-0.025299
-0.024597
-0.023804
-0.024323
-0.025726
-0.025269
-0.022034
-0.017822
-0.013306
-0.0083313
-0.0037842
-0.00079346
--0.0013123
--0.0046997
--0.0080566
--0.0096741
--0.01181
--0.014893
--0.015167
--0.010559
--0.0043335
--0.00024414
-0.002594
-0.0038452
-0.0022583
--0.0010376
--0.0038452
--0.0061035
--0.0084839
--0.011749
--0.01532
--0.018494
--0.021881
--0.024567
--0.023651
--0.019012
--0.013428
--0.0087891
--0.0043335
--0.0011597
-0.00018311
-0.0014343
-0.0031738
-0.0038452
-0.0033875
-0.0032349
-0.0019531
--0.0012817
--0.0053101
--0.0090942
--0.011749
--0.01178
--0.01062
--0.0112
--0.012451
--0.0112
--0.010284
--0.010925
--0.009552
--0.0068054
--0.0060425
--0.0079956
--0.010101
--0.013428
--0.01944
--0.024445
--0.027069
--0.029419
--0.03302
--0.036591
--0.038025
--0.04071
--0.047485
--0.049744
--0.044556
--0.04007
--0.042023
--0.041016
--0.033722
--0.032776
--0.03418
--0.029877
--0.02359
--0.023254
--0.022583
--0.018524
--0.02005
--0.026886
--0.027496
--0.020905
--0.018982
--0.023865
--0.021118
--0.013062
--0.013092
--0.017365
--0.011139
--0.00094604
--0.0016174
-0.0025024
-0.015411
-0.021423
-0.020508
-0.025482
-0.039948
-0.051208
-0.058594
-0.06723
-0.073242
-0.079834
-0.084351
-0.089569
-0.093262
-0.088501
-0.078796
-0.068024
-0.05838
-0.042999
-0.029236
-0.025055
-0.026672
-0.02832
-0.027496
-0.028381
-0.026337
-0.025146
-0.030914
-0.032043
-0.029266
-0.023987
-0.014221
-0.0010986
--0.013885
--0.024261
--0.034088
--0.043121
--0.046539
--0.046478
--0.05011
--0.056305
--0.055084
--0.050537
--0.046936
--0.040802
--0.0354
--0.033051
--0.032745
--0.028748
--0.023102
--0.020233
--0.017212
--0.014435
--0.013763
--0.016602
--0.019775
--0.020111
--0.020294
--0.016418
--0.0090637
--0.0030823
-0.00042725
-0.0059509
-0.015259
-0.026276
-0.0383
-0.048767
-0.055481
-0.058929
-0.059235
-0.058014
-0.053925
-0.049744
-0.046082
-0.043976
-0.041351
-0.036835
-0.03302
-0.030945
-0.029816
-0.03064
-0.031647
-0.029846
-0.026215
-0.024597
-0.023743
-0.021149
-0.018127
-0.014526
-0.0094299
-0.0029297
--0.0021973
--0.0063477
--0.011871
--0.018372
--0.024475
--0.030243
--0.037842
--0.045776
--0.049988
--0.050415
--0.048248
--0.043945
--0.039001
--0.035706
--0.033295
--0.029205
--0.024292
--0.02066
--0.018768
--0.018555
--0.020203
--0.022827
--0.026062
--0.028625
--0.028442
--0.025024
--0.019531
--0.013763
--0.0085144
--0.002533
-0.0055542
-0.016296
-0.029449
-0.040741
-0.045166
-0.046661
-0.050842
-0.057465
-0.064148
-0.074921
-0.086151
-0.086731
-0.080872
-0.075897
-0.068726
-0.055237
-0.042603
-0.036499
-0.030731
-0.022614
-0.017181
-0.01413
-0.011719
-0.011597
-0.01535
-0.018982
-0.018616
-0.016327
-0.012482
-0.0044556
--0.007019
--0.017761
--0.026184
--0.033264
--0.038116
--0.041962
--0.045563
--0.047333
--0.045013
--0.039001
--0.033051
--0.028046
--0.023773
--0.020294
--0.016907
--0.012665
--0.0083923
--0.0053406
--0.0024109
-0.00045776
-0.00042725
--0.0036011
--0.0090942
--0.012909
--0.015259
--0.01709
--0.017487
--0.016968
--0.017059
--0.016235
--0.012909
--0.0090942
--0.0057983
--0.0012817
-0.0044861
-0.0088501
-0.0082397
-0.0030518
--0.0050049
--0.013336
--0.019714
--0.02301
--0.02417
--0.024902
--0.02533
--0.024292
--0.022644
--0.021393
--0.019989
--0.017212
--0.013458
--0.01123
--0.011932
--0.015381
--0.018921
--0.022583
--0.025696
--0.027893
--0.029541
--0.032623
--0.036804
--0.039398
--0.039673
--0.042114
--0.046082
--0.048523
--0.05072
--0.053864
--0.056274
--0.057343
--0.059021
--0.059753
--0.057892
--0.05545
--0.054077
--0.05368
--0.051788
--0.051575
--0.055328
--0.059509
--0.063538
--0.064972
--0.06308
--0.059692
--0.055756
--0.052185
--0.048401
--0.041138
--0.031799
--0.021179
--0.016144
--0.015564
--0.0084229
--0.0063171
--0.013977
--0.018585
--0.016296
--0.019012
--0.029724
--0.029968
--0.02301
--0.027466
--0.030792
--0.028778
--0.026337
--0.024506
--0.01825
--0.013641
--0.016846
--0.011505
-0.00015259
-0.0043335
-0.0088196
-0.018646
-0.02533
-0.022949
-0.029022
-0.043457
-0.048523
-0.050964
-0.062256
-0.069916
-0.056396
-0.036743
-0.027985
-0.018524
-0.0020142
--0.0052185
--0.00061035
--0.0015259
--0.0072021
--0.0063782
--0.0036316
--0.00024414
-0.0062561
-0.014465
-0.017517
-0.013916
-0.0079651
--0.0051575
--0.019714
--0.029144
--0.03772
--0.046814
--0.054962
--0.058838
--0.062164
--0.064606
--0.06073
--0.053009
--0.046051
--0.042358
--0.038055
--0.033264
--0.031219
--0.031586
--0.029602
--0.023926
--0.021881
--0.025787
--0.031555
--0.03598
--0.039307
--0.041321
--0.039276
--0.035217
--0.031921
--0.02774
--0.021851
--0.01535
--0.0085449
-0.0007019
-0.011841
-0.020752
-0.026764
-0.028931
-0.026093
-0.020721
-0.015594
-0.010651
-0.0046692
--0.00048828
--0.0028687
--0.0046387
--0.0065918
--0.0062561
--0.0038147
--0.0035706
--0.0046082
--0.0042419
--0.0032959
--0.0031128
--0.0042114
--0.0056152
--0.0086975
--0.013733
--0.020111
--0.02652
--0.031128
--0.034485
--0.037231
--0.040985
--0.046661
--0.053101
--0.059113
--0.062775
--0.063721
--0.060944
--0.056152
--0.051483
--0.047394
--0.042999
--0.040527
--0.039215
--0.036255
--0.032928
--0.032593
--0.035858
--0.040039
--0.044312
--0.048157
--0.049622
--0.046997
--0.042664
--0.037933
--0.032074
--0.024506
--0.017059
--0.0093994
--0.0021667
-0.0038757
-0.0079956
-0.0097656
-0.009491
-0.0080566
-0.0066833
-0.0053711
-0.0051575
-0.0084839
-0.01236
-0.011749
-0.008667
-0.0083313
-0.011505
-0.019012
-0.030457
-0.039856
-0.043365
-0.044403
-0.044678
-0.038696
-0.027496
-0.018829
-0.011841
-0.0036926
--0.004364
--0.01239
--0.021301
--0.02948
--0.032013
--0.030579
--0.028259
--0.025269
--0.02121
--0.017334
--0.016663
--0.017914
--0.019531
--0.020813
--0.022552
--0.02359
--0.025665
--0.030121
--0.035034
--0.036652
--0.0354
--0.032684
--0.028931
--0.023468
--0.017731
--0.012238
--0.0059814
-0.0005188
-0.0066833
-0.013458
-0.020416
-0.023499
-0.021729
-0.017792
-0.013428
-0.009552
-0.0066528
-0.0050964
-0.0025024
--0.00042725
--0.0010376
--0.00045776
--0.0005188
-0.00030518
-0.0042725
-0.0098267
-0.014771
-0.0177
-0.017029
-0.012238
-0.0065918
-0.002655
--0.00082397
--0.0049744
--0.0091248
--0.012268
--0.015106
--0.018066
--0.02002
--0.020172
--0.017517
--0.01236
--0.0074158
--0.0040894
--0.0022888
--0.0022278
--0.0027161
--0.0033875
--0.0039063
--0.0045166
--0.0065918
--0.010315
--0.013519
--0.015869
--0.018616
--0.022125
--0.024017
--0.023285
--0.023285
--0.023315
--0.021423
--0.01889
--0.01593
--0.010101
--0.002655
-0.0012207
-0.00024414
--0.0010986
--0.0040283
--0.011505
--0.015808
--0.011963
--0.011505
--0.015686
--0.013824
--0.0081177
--0.0075684
--0.0061646
-0.0020142
-0.0112
-0.017609
-0.025757
-0.031769
-0.030609
-0.030518
-0.033661
-0.030884
-0.024139
-0.020294
-0.018616
-0.01825
-0.010895
-0.0010376
--0.0026855
--0.00073242
-0.0039368
-0.0037842
-0.0077209
-0.014313
-0.016846
-0.021271
-0.025116
-0.025085
-0.02536
-0.036804
-0.056458
-0.067963
-0.080719
-0.10046
-0.1152
-0.12393
-0.13538
-0.13928
-0.12396
-0.10492
-0.092987
-0.076721
-0.052429
-0.041077
-0.044189
-0.043427
-0.047485
-0.062927
-0.078552
-0.087891
-0.098694
-0.11478
-0.12048
-0.11511
-0.10571
-0.087219
-0.063782
-0.043915
-0.028748
-0.013489
-0.0030518
-0.0024719
-0.0041504
-0.0055542
-0.010925
-0.020325
-0.029999
-0.041229
-0.051971
-0.057739
-0.058411
-0.056763
-0.056396
-0.05484
-0.048828
-0.041626
-0.036377
-0.032623
-0.027588
-0.023041
-0.023407
-0.027405
-0.033997
-0.043091
-0.054382
-0.065979
-0.076752
-0.090393
-0.10419
-0.11301
-0.11725
-0.11871
-0.11612
-0.11047
-0.10529
-0.099426
-0.092682
-0.08786
-0.085571
-0.084045
-0.084229
-0.087616
-0.092194
-0.09671
-0.10312
-0.10873
-0.11115
-0.1109
-0.11057
-0.1109
-0.10925
-0.1048
-0.098572
-0.091156
-0.082794
-0.074463
-0.067078
-0.059448
-0.052582
-0.047485
-0.044678
-0.044098
-0.045654
-0.050629
-0.058838
-0.068085
-0.075745
-0.080811
-0.082947
-0.081482
-0.078857
-0.074738
-0.067993
-0.060242
-0.05423
-0.0495
-0.046295
-0.046906
-0.051819
-0.058838
-0.067841
-0.078979
-0.089447
-0.097992
-0.10519
-0.11176
-0.11673
-0.11942
-0.11981
-0.11829
-0.11557
-0.11359
-0.11221
-0.11072
-0.1095
-0.11008
-0.11475
-0.12439
-0.13663
-0.14474
-0.14886
-0.1532
-0.15833
-0.16122
-0.16037
-0.15771
-0.15253
-0.14398
-0.13303
-0.12076
-0.10855
-0.09726
-0.08902
-0.085571
-0.084778
-0.084229
-0.085388
-0.089142
-0.093872
-0.09729
-0.099701
-0.10068
-0.099091
-0.094788
-0.088226
-0.080292
-0.072296
-0.066406
-0.06366
-0.063507
-0.063873
-0.06543
-0.069122
-0.075378
-0.084167
-0.093109
-0.10098
-0.1076
-0.11276
-0.11523
-0.1149
-0.11359
-0.112
-0.10995
-0.10748
-0.10492
-0.10074
-0.095795
-0.092407
-0.092377
-0.093933
-0.095367
-0.09726
-0.10049
-0.10385
-0.10605
-0.10648
-0.10522
-0.10266
-0.10007
-0.097687
-0.093872
-0.087494
-0.080414
-0.074585
-0.070526
-0.068085
-0.068237
-0.070587
-0.074341
-0.077698
-0.080688
-0.082642
-0.083435
-0.083618
-0.083862
-0.083252
-0.080566
-0.076599
-0.072357
-0.069519
-0.066345
-0.062439
-0.058533
-0.055054
-0.053009
-0.050232
-0.049896
-0.052246
-0.055603
-0.061096
-0.065521
-0.071198
-0.074493
-0.072021
-0.067993
-0.064423
-0.062164
-0.056427
-0.050049
-0.051239
-0.057739
-0.062225
-0.065399
-0.075378
-0.088043
-0.094482
-0.097565
-0.10428
-0.1087
-0.10779
-0.10684
-0.1077
-0.10318
-0.099243
-0.099609
-0.10382
-0.10553
-0.10663
-0.10983
-0.10934
-0.10773
-0.1087
-0.10934
-0.10953
-0.11078
-0.11807
-0.12512
-0.12708
-0.13669
-0.15375
-0.1701
-0.18631
-0.20883
-0.23511
-0.2525
-0.26089
-0.26309
-0.25488
-0.23621
-0.21506
-0.1954
-0.17645
-0.16135
-0.15607
-0.15881
-0.16388
-0.17334
-0.18994
-0.20734
-0.22415
-0.24005
-0.25037
-0.25073
-0.24118
-0.22687
-0.20612
-0.18271
-0.1636
-0.14865
-0.1358
-0.12753
-0.12619
-0.13016
-0.13644
-0.14719
-0.16248
-0.17844
-0.1908
-0.19867
-0.20319
-0.20322
-0.20099
-0.19864
-0.1958
-0.19
-0.18253
-0.17548
-0.16943
-0.16498
-0.16431
-0.16919
-0.17831
-0.18918
-0.2005
-0.211
-0.22208
-0.23428
-0.24661
-0.25735
-0.26526
-0.2702
-0.27103
-0.26706
-0.26004
-0.25272
-0.24603
-0.23984
-0.23557
-0.23312
-0.23123
-0.23099
-0.23367
-0.23853
-0.24442
-0.25107
-0.25906
-0.26566
-0.26941
-0.27032
-0.26804
-0.26178
-0.25208
-0.24094
-0.22983
-0.21991
-0.21094
-0.20346
-0.19818
-0.19485
-0.19467
-0.19818
-0.20453
-0.21393
-0.22455
-0.23438
-0.24118
-0.24463
-0.24472
-0.2424
-0.23935
-0.23547
-0.23151
-0.22653
-0.22223
-0.21909
-0.2179
-0.21982
-0.22528
-0.23425
-0.24448
-0.2547
-0.26407
-0.27246
-0.27872
-0.28433
-0.28964
-0.29355
-0.2951
-0.29437
-0.2923
-0.28879
-0.28436
-0.27975
-0.27628
-0.27356
-0.27161
-0.27039
-0.26987
-0.27054
-0.27173
-0.27539
-0.28323
-0.29099
-0.2934
-0.29395
-0.29977
-0.30386
-0.2959
-0.28284
-0.27325
-0.2637
-0.24777
-0.23093
-0.21918
-0.20837
-0.19806
-0.19492
-0.19702
-0.1973
-0.19504
-0.1972
-0.20068
-0.19775
-0.18979
-0.18256
-0.17471
-0.16266
-0.14941
-0.13708
-0.12518
-0.11356
-0.10544
-0.10117
-0.098389
-0.096863
-0.097076
-0.099579
-0.10153
-0.10153
-0.10007
-0.098816
-0.097778
-0.094818
-0.089844
-0.083435
-0.075714
-0.066162
-0.055939
-0.047607
-0.039429
-0.030304
-0.022461
-0.018127
-0.014954
-0.0093079
-0.0042725
-0.00177
--0.00079346
--0.0054932
--0.011414
--0.018677
--0.027832
--0.037445
--0.047089
--0.057648
--0.069672
--0.081055
--0.088257
--0.093201
--0.098724
--0.10291
--0.10388
--0.10349
--0.10336
--0.10388
--0.10483
--0.10684
--0.11038
--0.11374
--0.11731
--0.12253
--0.12872
--0.13394
--0.13895
--0.14648
--0.15411
--0.15939
--0.16278
--0.16666
--0.16931
--0.16785
--0.16544
--0.16455
--0.16333
--0.16074
--0.15842
--0.15918
--0.16354
--0.16895
--0.17596
--0.18454
--0.19321
--0.19778
--0.20041
--0.20563
--0.20578
--0.1998
--0.19208
--0.18814
--0.18475
--0.17801
--0.17371
--0.17468
--0.17841
--0.18497
--0.19046
--0.1987
--0.20758
--0.21353
--0.21997
--0.22598
--0.22876
--0.22589
--0.22208
--0.22293
--0.22043
--0.20883
--0.19815
--0.19104
--0.17862
--0.15652
--0.13339
--0.11707
--0.098236
--0.083618
--0.09082
--0.11115
--0.13452
--0.16068
--0.19144
--0.21951
--0.2355
--0.24564
--0.25116
--0.24722
--0.23727
--0.22134
--0.19992
--0.17645
--0.1579
--0.1499
--0.15436
--0.17233
--0.19977
--0.22897
--0.25699
--0.28635
--0.31171
--0.32892
--0.33878
--0.34531
--0.34445
--0.3327
--0.31546
--0.29797
--0.28229
--0.2706
--0.26431
--0.26477
--0.26825
--0.27219
--0.27908
--0.28922
--0.30087
--0.31195
--0.32367
--0.33463
--0.33984
--0.3392
--0.33453
--0.32776
--0.31885
--0.30829
--0.29688
--0.28406
--0.27011
--0.25708
--0.24631
--0.24063
--0.24069
--0.24524
--0.25308
--0.26471
--0.27847
--0.29175
--0.30273
--0.31143
--0.31769
--0.32043
--0.31961
--0.31549
--0.30923
--0.30167
--0.29358
--0.28601
--0.28046
--0.27731
--0.27823
--0.28555
--0.29916
--0.31494
--0.33081
--0.34534
--0.35855
--0.36899
--0.37683
--0.38254
--0.38467
--0.38251
--0.3754
--0.3638
--0.34946
--0.33588
--0.3252
--0.31924
--0.3186
--0.32153
--0.3252
--0.32935
--0.33524
--0.34232
--0.34848
--0.3537
--0.35632
--0.35379
--0.34659
--0.33539
--0.32172
--0.30731
--0.29379
--0.28204
--0.27261
--0.26511
--0.25888
--0.25476
--0.25333
--0.254
--0.25687
--0.26028
--0.2645
--0.26843
--0.27164
--0.2735
--0.27383
--0.27271
--0.26968
--0.26535
--0.25967
--0.25134
--0.23956
--0.22885
--0.22308
--0.22076
--0.21912
--0.22229
--0.23151
--0.23889
--0.24432
--0.25314
--0.26352
--0.26984
--0.27225
--0.27518
--0.27539
--0.26993
--0.26266
--0.25549
--0.2482
--0.24298
--0.24152
--0.24353
--0.24808
--0.25482
--0.26221
--0.27017
--0.27847
--0.28427
--0.28745
--0.28943
--0.28821
--0.28302
--0.27563
--0.26816
--0.26126
--0.25488
--0.25021
--0.24756
--0.24582
--0.24496
--0.24475
--0.24591
--0.24734
--0.2486
--0.24973
--0.25122
--0.25174
--0.24976
--0.24722
--0.24545
--0.24365
--0.24042
--0.23792
--0.23593
--0.23367
--0.23151
--0.23093
--0.23203
--0.23407
--0.23761
--0.24268
--0.2482
--0.25299
--0.25629
--0.25827
--0.25955
--0.25937
--0.25778
--0.25555
--0.25201
--0.24701
--0.24207
--0.23871
--0.23602
--0.23428
--0.23477
--0.23669
--0.23853
--0.23901
--0.23889
--0.23834
--0.23749
--0.23709
--0.23697
--0.23618
--0.23529
--0.23306
--0.22852
--0.22391
--0.22092
--0.21866
--0.21524
--0.20923
--0.20068
--0.19354
--0.19177
--0.19095
--0.19272
--0.1965
--0.19559
--0.19156
--0.19092
--0.19348
--0.19244
--0.18832
--0.18518
--0.17743
--0.16452
--0.15512
--0.147
--0.13541
--0.12756
--0.12781
--0.13373
--0.13821
--0.14117
--0.14328
--0.14532
--0.1499
--0.1543
--0.15472
--0.15265
--0.14536
--0.1282
--0.10394
--0.080048
--0.054321
--0.020966
-0.011108
-0.034119
-0.046875
-0.045624
-0.029846
-0.0054016
--0.02298
--0.052582
--0.079559
--0.097504
--0.10648
--0.10727
--0.096924
--0.081696
--0.06366
--0.037964
--0.0072021
-0.016968
-0.027802
-0.027588
-0.014771
--0.0093689
--0.036865
--0.063263
--0.088654
--0.11148
--0.12943
--0.14093
--0.14383
--0.13657
--0.12061
--0.10043
--0.078308
--0.05838
--0.045258
--0.036255
--0.030701
--0.029572
--0.031097
--0.033875
--0.04007
--0.050781
--0.062714
--0.072723
--0.079254
--0.080078
--0.076355
--0.069641
--0.061462
--0.051697
--0.04126
--0.029358
--0.013397
-0.0046997
-0.019531
-0.030243
-0.036896
-0.038116
-0.034363
-0.027496
-0.01767
-0.0048828
--0.0083008
--0.020081
--0.029968
--0.03714
--0.040039
--0.038239
--0.031982
--0.022583
--0.012482
--0.0029602
-0.0062866
-0.013123
-0.014709
-0.010773
-0.00097656
--0.014313
--0.03302
--0.05127
--0.067505
--0.080292
--0.089844
--0.096802
--0.10062
--0.10052
--0.095734
--0.086639
--0.07486
--0.062439
--0.052582
--0.04715
--0.045807
--0.048431
--0.053955
--0.060577
--0.06662
--0.073639
--0.081116
--0.087952
--0.092133
--0.092743
--0.089386
--0.082825
--0.073517
--0.06311
--0.053619
--0.04483
--0.036743
--0.029236
--0.022888
--0.01828
--0.015869
--0.016754
--0.020477
--0.025421
--0.030975
--0.037048
--0.043762
--0.049255
--0.052307
--0.052399
--0.049957
--0.045319
--0.037964
--0.028229
--0.017456
--0.0065308
-0.00048828
-0.00057983
--0.0039368
--0.010315
--0.018585
--0.030243
--0.044647
--0.059204
--0.067749
--0.067749
--0.067261
--0.06897
--0.068787
--0.064087
--0.058868
--0.054474
--0.049561
--0.0495
--0.053345
--0.056305
--0.059875
--0.066589
--0.074249
--0.079346
--0.082489
--0.084137
--0.084412
--0.083679
--0.080963
--0.075531
--0.069916
--0.064178
--0.057922
--0.051819
--0.047516
--0.043823
--0.041504
--0.041229
--0.041351
--0.040405
--0.039337
--0.039764
--0.040955
--0.042969
--0.044006
--0.04306
--0.040985
--0.039307
--0.037628
--0.035706
--0.034454
--0.032867
--0.032227
--0.034027
--0.036499
--0.037811
--0.039307
--0.043274
--0.049255
--0.055145
--0.059814
--0.062592
--0.064423
--0.065521
--0.065674
--0.064453
--0.062103
--0.059113
--0.057251
--0.056763
--0.055389
--0.052704
--0.051575
--0.052734
--0.054901
--0.057495
--0.061249
--0.065338
--0.068512
--0.070465
--0.072144
--0.072754
--0.073242
--0.074066
--0.072296
--0.069
--0.065704
--0.063782
--0.062317
--0.060822
--0.062439
--0.063843
--0.064392
--0.066742
--0.072693
--0.077972
--0.078369
--0.078583
--0.08197
--0.084167
--0.0784
--0.071442
--0.067047
--0.060394
--0.052399
--0.050659
--0.053833
--0.05014
--0.048248
--0.056091
--0.065826
--0.071228
--0.080109
--0.091888
--0.094055
--0.091125
--0.08551
--0.069336
--0.0448
--0.021057
-0.0029602
-0.032349
-0.056763
-0.073029
-0.07901
-0.067596
-0.03949
-0.0055542
--0.028442
--0.066284
--0.093445
--0.10583
--0.11102
--0.1084
--0.094849
--0.076935
--0.059204
--0.03421
--0.010315
-0.0013123
-0.0011292
--0.011597
--0.039215
--0.07428
--0.10645
--0.13751
--0.16556
--0.18372
--0.19464
--0.20108
--0.19974
--0.18781
--0.1723
--0.15326
--0.1319
--0.11591
--0.10907
--0.10931
--0.11337
--0.12021
--0.12613
--0.13235
--0.14087
--0.15024
--0.15887
--0.16574
--0.16919
--0.16681
--0.16064
--0.1521
--0.14059
--0.1283
--0.11783
--0.10641
--0.091583
--0.077637
--0.066284
--0.058014
--0.054291
--0.056152
--0.061523
--0.069397
--0.081268
--0.094818
--0.10703
--0.11755
--0.12479
--0.12622
--0.12265
--0.11646
--0.10721
--0.096741
--0.088318
--0.080719
--0.074402
--0.072571
--0.075897
--0.084167
--0.099335
--0.11969
--0.14011
--0.1575
--0.1705
--0.17795
--0.17987
--0.1792
--0.17572
--0.16895
--0.15942
--0.14853
--0.13715
--0.12686
--0.12036
--0.11862
--0.12146
--0.12775
--0.1344
--0.13907
--0.14243
--0.14502
--0.1463
--0.14597
--0.14398
--0.13873
--0.13049
--0.12057
--0.11038
--0.099487
--0.0896
--0.081085
--0.073639
--0.067474
--0.062347
--0.058899
--0.05722
--0.058533
--0.06192
--0.066254
--0.070221
--0.07254
--0.073303
--0.074219
--0.074554
--0.071198
--0.064514
--0.054962
--0.042389
--0.032684
--0.02948
--0.030273
--0.032013
--0.03833
--0.049561
--0.061218
--0.074585
--0.088806
--0.098969
--0.10437
--0.10629
--0.10016
--0.088867
--0.080719
--0.0755
--0.070435
--0.067993
--0.070251
--0.07254
--0.077362
--0.087006
--0.095032
--0.10062
--0.10767
--0.11411
--0.11484
--0.11124
--0.10483
--0.094574
--0.084991
--0.077637
--0.072388
--0.068665
--0.065735
--0.062073
--0.058746
--0.058228
--0.058746
--0.059509
--0.062622
--0.065125
--0.064423
--0.062408
--0.060303
--0.057098
--0.054565
--0.053986
--0.053436
--0.050903
--0.047546
--0.04483
--0.043304
--0.044098
--0.046478
--0.048737
--0.052429
--0.057648
--0.0625
--0.066406
--0.070374
--0.0737
--0.075989
--0.0784
--0.078918
--0.076935
--0.073517
--0.069733
--0.065155
--0.060211
--0.056885
--0.056427
--0.059082
--0.06427
--0.067871
--0.070862
--0.074768
--0.07901
--0.082855
--0.087067
--0.08902
--0.086487
--0.082092
--0.077179
--0.070404
--0.063904
--0.061768
--0.06192
--0.062103
--0.064331
--0.065063
--0.0672
--0.069641
--0.071625
--0.075043
--0.077576
--0.076752
--0.070282
--0.06723
--0.065643
--0.05835
--0.051544
--0.047699
--0.04248
--0.035065
--0.035461
--0.037262
--0.036072
--0.038422
--0.043488
--0.047211
--0.049316
--0.051697
--0.045715
--0.034393
--0.024933
--0.0090637
-0.013062
-0.038147
-0.065521
-0.098755
-0.12238
-0.12268
-0.11081
-0.092163
-0.062988
-0.029205
-0.0039978
--0.014648
--0.030823
--0.036652
--0.031982
--0.023621
--0.011108
-0.012482
-0.040497
-0.063751
-0.077423
-0.075562
-0.059753
-0.035034
-0.006073
--0.025909
--0.053101
--0.075012
--0.095367
--0.10886
--0.11111
--0.10425
--0.090515
--0.068237
--0.044312
--0.026001
--0.013885
--0.007782
--0.0085449
--0.013885
--0.019135
--0.026337
--0.034485
--0.042694
--0.051514
--0.058441
--0.060547
--0.056854
--0.049347
--0.037811
--0.024139
--0.011993
--0.0011902
-0.0089722
-0.01947
-0.030304
-0.041229
-0.049683
-0.054199
-0.057068
-0.05719
-0.052887
-0.04538
-0.036041
-0.025146
-0.015015
-0.0094299
-0.0073242
-0.0079651
-0.011261
-0.01767
-0.024933
-0.031647
-0.039337
-0.045898
-0.050262
-0.05072
-0.044556
-0.030609
-0.011627
--0.0090332
--0.029297
--0.044006
--0.052765
--0.05658
--0.057526
--0.055115
--0.049927
--0.042145
--0.031738
--0.020599
--0.01123
--0.0057373
--0.0056458
--0.010834
--0.019196
--0.028351
--0.036194
--0.041901
--0.044525
--0.045319
--0.044342
--0.040863
--0.033722
--0.023956
--0.013245
--0.0021362
-0.0084534
-0.017242
-0.023193
-0.02774
-0.031799
-0.035767
-0.039307
-0.041443
-0.042725
-0.043243
-0.042999
-0.042419
-0.042542
-0.042358
-0.041595
-0.042206
-0.04422
-0.045471
-0.046539
-0.048798
-0.051849
-0.053223
-0.052338
-0.049988
-0.046661
-0.040497
-0.031403
-0.021393
-0.01178
-0.0016174
--0.007019
--0.012573
--0.01532
--0.015839
--0.012238
--0.0039063
-0.004425
-0.0087891
-0.010864
-0.011993
-0.010834
-0.0050659
--0.0018921
--0.0093079
--0.018494
--0.026306
--0.029083
--0.02774
--0.024689
--0.019165
--0.010345
--0.0016174
-0.0055542
-0.01178
-0.017029
-0.019104
-0.018311
-0.015717
-0.012054
-0.0076904
-0.002594
--0.00094604
--0.0023499
--0.0021667
--0.0012512
-0.0018921
-0.0072327
-0.011261
-0.013733
-0.015564
-0.016296
-0.015137
-0.013702
-0.011566
-0.0076294
-0.0033264
--0.00088501
--0.0049133
--0.0082397
--0.011414
--0.013702
--0.014343
--0.013214
--0.012024
--0.012177
--0.012421
--0.011963
--0.011688
--0.011017
--0.010986
--0.012848
--0.015686
--0.018188
--0.021271
--0.026215
--0.031738
--0.036835
--0.04187
--0.04541
--0.046997
--0.04657
--0.0448
--0.041626
--0.036896
--0.032379
--0.02771
--0.025452
--0.025879
--0.028503
--0.034088
--0.041443
--0.048981
--0.054779
--0.059784
--0.060852
--0.057159
--0.052734
--0.04657
--0.037384
--0.02536
--0.016235
--0.011383
--0.0080872
--0.0090027
--0.012878
--0.017578
--0.024597
--0.032776
--0.039185
--0.038727
--0.027802
--0.0095825
-0.01355
-0.040894
-0.074738
-0.11517
-0.14987
-0.16541
-0.15997
-0.1409
-0.11102
-0.0737
-0.039215
-0.010712
--0.013489
--0.027374
--0.023407
--0.011261
-0.0024719
-0.025391
-0.057312
-0.086426
-0.10559
-0.11197
-0.10037
-0.074158
-0.039185
-0.0011902
--0.033386
--0.061951
--0.086395
--0.1033
--0.10663
--0.099274
--0.085785
--0.06427
--0.037903
--0.016815
--0.0039368
-0.0019531
--0.00061035
--0.009552
--0.019775
--0.029205
--0.038818
--0.049194
--0.058624
--0.06485
--0.065033
--0.059875
--0.05188
--0.0401
--0.025452
--0.011261
--0.00073242
-0.0083923
-0.017365
-0.027313
-0.039093
-0.049866
-0.057495
-0.061951
-0.063049
-0.060913
-0.055908
-0.048248
-0.038116
-0.027832
-0.021057
-0.018616
-0.018799
-0.022552
-0.029968
-0.038696
-0.047638
-0.056213
-0.063721
-0.068085
-0.067932
-0.061279
-0.047211
-0.027222
-0.0040894
--0.018158
--0.034973
--0.044434
--0.047974
--0.047302
--0.043243
--0.036591
--0.028473
--0.019165
--0.009613
--0.002655
-
--0.0032349
--0.011261
--0.022614
--0.035034
--0.045227
--0.051453
--0.05368
--0.053131
--0.049866
--0.044189
--0.035828
--0.025146
--0.01358
--0.0022888
-0.0075073
-0.01532
-0.020142
-0.023315
-0.026154
-0.030029
-0.033325
-0.03595
-0.039063
-0.042236
-0.043579
-0.045135
-0.049438
-0.052826
-0.053741
-0.056519
-0.06073
-0.062256
-0.06311
-0.065216
-0.066803
-0.06665
-0.065704
-0.063995
-0.061188
-0.055176
-0.046295
-0.036407
-0.026825
-0.016937
-0.0081177
-0.0029602
-
--0.0013428
-0.00036621
-0.0046692
-0.008606
-0.011963
-0.015015
-0.017731
-0.019196
-0.016693
-0.011292
-0.0041809
--0.0039368
--0.012634
--0.018402
--0.019623
--0.018005
--0.01358
--0.0057068
-0.004425
-0.013397
-0.021515
-0.028564
-0.033752
-0.035858
-0.033844
-0.028809
-0.021606
-0.013977
-0.0074158
-0.003479
-0.0022583
-0.0029602
-0.0057373
-0.011017
-0.017487
-0.02356
-0.029572
-0.034637
-0.038269
-0.038879
-0.03717
-0.032928
-0.02771
-0.021942
-0.016632
-0.012146
-0.0092468
-0.0075684
-0.0075989
-0.0090332
-0.011444
-0.014252
-0.017609
-0.020844
-0.023254
-0.024292
-0.021942
-0.017609
-0.012146
-0.0054626
--0.0022278
--0.0084534
--0.014496
--0.021301
--0.025238
--0.025299
--0.024475
--0.023071
--0.021057
--0.018646
--0.014709
--0.011444
--0.010254
--0.0097656
--0.010162
--0.014893
--0.021271
--0.024811
--0.028442
--0.033356
--0.035217
--0.035248
--0.037048
--0.036224
--0.028961
--0.02121
--0.015442
--0.0062866
-0.0014648
-0.0029602
-0.004425
-0.0068359
-0.002655
--0.004425
--0.0066223
--0.012024
--0.017456
--0.0075684
-0.010956
-0.029175
-0.056641
-0.097504
-0.13727
-0.16852
-0.18921
-0.18878
-0.16895
-0.14185
-0.11111
-0.075928
-0.04425
-0.020355
-0.0051575
-0.005127
-0.017761
-0.035095
-0.059723
-0.094025
-0.12445
-0.14337
-0.15021
-0.13934
-0.11197
-0.07489
-0.035431
--0.0037231
--0.037476
--0.062531
--0.078003
--0.081146
--0.071228
--0.052185
--0.02832
--0.0013428
-0.020935
-0.033813
-0.037842
-0.033051
-0.019928
-0.0036011
--0.011627
--0.026703
--0.040009
--0.048981
--0.052399
--0.04834
--0.038055
--0.024506
--0.0092468
-0.0076599
-0.022827
-0.033478
-0.040344
-0.04657
-0.052582
-0.059235
-0.066528
-0.072235
-0.075623
-0.077271
-0.077576
-0.075653
-0.071167
-0.065887
-0.060822
-0.058502
-0.058563
-0.06015
-0.064178
-0.070557
-0.078918
-0.087616
-0.095703
-0.10211
-0.10541
-0.10333
-0.094482
-0.079346
-0.059509
-0.037842
-0.018005
-0.0039063
--0.0040894
--0.0068359
--0.0054932
--0.00054932
-0.006073
-0.014496
-0.023376
-0.030548
-0.033844
-0.032166
-0.024384
-0.01236
--0.0021057
--0.016541
--0.02832
--0.034821
--0.036255
--0.033661
--0.027618
--0.018433
--0.0064697
-0.0068054
-0.019257
-0.029785
-0.037292
-0.041443
-0.042633
-0.042084
-0.042389
-0.044983
-0.046234
-0.048187
-0.053192
-0.058502
-0.062469
-0.069031
-0.078033
-0.082611
-0.085144
-0.090546
-0.093933
-0.094269
-0.096985
-0.099609
-0.099487
-0.098328
-0.097137
-0.095215
-0.091461
-0.085022
-0.076385
-0.067139
-0.05838
-0.049561
-0.042877
-0.038605
-0.036346
-0.03595
-0.039124
-0.044098
-0.047302
-0.049469
-0.051025
-0.049713
-0.044708
-0.038055
-0.030396
-0.020905
-0.012146
-0.0058899
-0.0029907
-0.0038147
-0.0076904
-0.014557
-0.023865
-0.032501
-0.039825
-0.046265
-0.049713
-0.049866
-0.048004
-0.043793
-0.037384
-0.029846
-0.024261
-0.020721
-0.020142
-0.022949
-0.027313
-0.033264
-0.040619
-0.046417
-0.050964
-0.054138
-0.055756
-0.055511
-0.053955
-0.050812
-0.046997
-0.043549
-0.040436
-0.038177
-0.037018
-0.036438
-0.036865
-0.039185
-0.041779
-0.04422
-0.046692
-0.04892
-0.050171
-0.050812
-0.050354
-0.047577
-0.043671
-0.039093
-0.032684
-0.02536
-0.018707
-0.012848
-0.0081177
-0.004303
-0.0026245
-0.0024414
-0.0029602
-0.0050659
-0.0072327
-0.0082397
-0.0088196
-0.008667
-0.0065002
-0.0029297
--0.0015259
--0.0061646
--0.010864
--0.0159
--0.022125
--0.026154
--0.02652
--0.025665
--0.021698
--0.014893
--0.008728
--0.0031128
-0.0036316
-0.0092773
-0.011017
-0.011749
-0.010803
-0.0049744
--0.0016785
--0.0068665
--0.0091553
--0.003418
-0.016541
-0.045685
-0.072449
-0.10437
-0.15146
-0.19278
-0.20743
-0.20663
-0.198
-0.16846
-0.12378
-0.090973
-0.067108
-0.035309
-0.016327
-0.026367
-0.045105
-0.062683
-0.089996
-0.12717
-0.16336
-0.18521
-0.18839
-0.17657
-0.15009
-0.10492
-0.052765
-0.01181
--0.021515
--0.05307
--0.06958
--0.063934
--0.049042
--0.02948
-0.00091553
-0.033569
-0.05661
-0.067505
-0.067047
-0.05658
-0.036865
-0.011108
--0.013336
--0.032166
--0.048523
--0.06308
--0.067352
--0.057983
--0.041504
--0.020966
-0.0024719
-0.024475
-0.041321
-0.051483
-0.055511
-0.056458
-0.057617
-0.06012
-0.063232
-0.066437
-0.068604
-0.068787
-0.070099
-0.073822
-0.07605
-0.076019
-0.076935
-0.079559
-0.083099
-0.086884
-0.091675
-0.098175
-0.10587
-0.11255
-0.11853
-0.12335
-0.12555
-0.12234
-0.11285
-0.098206
-0.080048
-0.060577
-0.043579
-0.032318
-0.027954
-0.028717
-0.032379
-0.038635
-0.045563
-0.05188
-0.0578
-0.062683
-0.062073
-0.054413
-0.041199
-0.024414
-0.0059509
--0.011169
--0.023315
--0.029053
--0.028778
--0.024017
--0.015625
--0.0046387
-0.0089417
-0.023376
-0.035858
-0.044128
-0.047607
-0.046234
-0.04303
-0.040649
-0.037842
-0.035065
-0.03598
-0.039703
-0.043732
-0.050537
-0.060608
-0.070648
-0.080963
-0.09314
-0.10291
-0.10779
-0.11087
-0.11322
-0.11374
-0.1131
-0.11292
-0.11252
-0.11029
-0.10681
-0.10352
-0.09906
-0.092804
-0.087311
-0.082764
-0.078796
-0.076141
-0.074677
-0.074463
-0.075317
-0.077545
-0.079254
-0.080231
-0.0784
-0.073181
-0.06723
-0.06015
-0.051025
-0.041016
-0.032104
-0.0242
-0.019562
-0.019073
-0.022675
-0.028564
-0.035828
-0.043549
-0.049408
-0.05368
-0.054993
-0.053711
-0.050629
-0.045105
-0.037384
-0.029999
-0.023834
-0.019623
-0.019409
-0.021973
-0.026215
-0.032593
-0.040558
-0.04837
-0.054962
-0.058746
-0.060089
-0.059479
-0.056915
-0.052917
-0.048798
-0.044739
-0.040833
-0.038574
-0.038879
-0.040894
-0.043579
-0.047638
-0.052521
-0.057007
-0.06012
-0.061981
-0.062531
-0.062653
-0.062347
-0.060944
-0.057892
-0.054535
-0.05011
-0.045105
-0.041473
-0.037231
-0.031891
-0.02829
-0.026825
-0.024475
-0.021881
-0.022675
-0.023987
-0.023529
-0.024323
-0.024231
-0.020142
-0.014038
-0.0084534
-0.0029907
--0.0018311
--0.0071411
--0.013397
--0.018463
--0.02179
--0.024902
--0.02533
--0.022949
--0.019257
--0.016724
--0.012604
--0.006134
--0.0032043
--0.0058289
--0.0069275
--0.0055847
--0.0098877
--0.015472
--0.016113
--0.017059
--0.014709
-0.0020447
-0.027893
-0.052032
-0.079315
-0.12253
-0.16983
-0.19391
-0.1958
-0.18872
-0.16449
-0.1236
-0.091156
-0.071472
-0.047882
-0.027863
-0.033783
-0.054321
-0.071259
-0.094513
-0.13345
-0.17456
-0.20145
-0.21005
-0.20013
-0.17337
-0.12936
-0.076843
-0.03302
--0.00085449
--0.033203
--0.052826
--0.050934
--0.037292
--0.016357
-0.01593
-0.052277
-0.07901
-0.090637
-0.088226
-0.072632
-0.045349
-0.012512
--0.017487
--0.04245
--0.064545
--0.082275
--0.089111
--0.081512
--0.062653
--0.036743
--0.0080566
-0.017517
-0.03537
-0.045166
-0.045868
-0.039459
-0.03186
-0.026459
-0.023102
-0.021637
-0.020386
-0.021484
-0.026581
-0.035828
-0.046539
-0.056183
-0.065704
-0.075226
-0.083893
-0.089783
-0.09317
-0.094543
-0.096588
-0.099396
-0.10233
-0.10635
-0.11041
-0.11148
-0.10727
-0.098694
-0.086151
-0.07251
-0.061462
-0.055695
-0.054901
-0.055756
-0.057312
-0.059814
-0.0625
-0.065582
-0.069824
-0.073212
-0.071228
-0.062256
-0.047699
-0.029602
-0.010162
--0.0072937
--0.019073
--0.024689
--0.025238
--0.021637
--0.015198
--0.0068359
-0.0036316
-0.015686
-0.026276
-0.033173
-0.035828
-0.034851
-0.028473
-0.02066
-0.01712
-0.014435
-0.011963
-0.01355
-0.016479
-0.016327
-0.018219
-0.025146
-0.033447
-0.042847
-0.052582
-0.061005
-0.069092
-0.073944
-0.077118
-0.081757
-0.085724
-0.087524
-0.08783
-0.086334
-0.081512
-0.074036
-0.066345
-0.060852
-0.058899
-0.059631
-0.062561
-0.068207
-0.075012
-0.08075
-0.085327
-0.089447
-0.089478
-0.085022
-0.079712
-0.072174
-0.061127
-0.048645
-0.03656
-0.02652
-0.021393
-0.02005
-0.022522
-0.028595
-0.03418
-0.03894
-0.043793
-0.046234
-0.046753
-0.045807
-0.040619
-0.03186
-0.022186
-0.012451
-0.004425
--0.00057983
--0.0025635
--0.0014648
-0.0027771
-0.0074158
-0.012604
-0.01767
-0.022491
-0.026611
-0.029999
-0.031006
-0.02951
-0.026123
-0.0224
-0.018311
-0.015198
-0.014343
-0.015137
-0.018005
-0.02179
-0.025055
-0.028687
-0.032928
-0.03775
-0.042877
-0.047546
-0.05069
-0.051819
-0.050568
-0.046875
-0.043579
-0.040497
-0.03656
-0.033569
-0.031036
-0.027893
-0.025604
-0.024628
-0.024292
-0.026184
-0.028534
-0.030426
-0.032349
-0.032135
-0.028015
-0.023529
-0.019623
-0.011597
-0.0035095
--0.0013733
--0.0072937
--0.013611
--0.016266
--0.017426
--0.018005
--0.014923
--0.010254
--0.0078735
--0.0062866
--0.0075989
--0.012726
--0.019196
--0.026337
--0.034912
--0.044617
--0.051392
--0.054291
--0.05658
--0.057831
--0.053497
--0.046265
--0.043243
--0.037781
--0.028107
--0.019104
--0.0077515
-0.0092468
-0.025421
-0.041748
-0.073273
-0.10947
-0.12326
-0.12161
-0.11792
-0.099365
-0.069611
-0.053833
-0.045807
-0.026489
-0.013947
-0.023804
-0.03894
-0.053528
-0.076874
-0.10944
-0.1416
-0.16202
-0.16629
-0.15613
-0.13412
-0.099457
-0.058502
-0.024628
--0.0038757
--0.030426
--0.043854
--0.038269
--0.022888
--0.0014954
-0.029236
-0.060486
-0.081665
-0.090668
-0.086151
-0.070862
-0.045441
-0.013641
--0.016815
--0.043396
--0.065857
--0.080231
--0.082031
--0.071625
--0.052338
--0.028473
--0.005188
-0.014465
-0.027313
-0.030182
-0.023529
-0.011444
--0.0022278
--0.01416
--0.022888
--0.029358
--0.033661
--0.033081
--0.026184
--0.014313
--6.1035e-005
-0.014069
-0.026794
-0.038483
-0.046356
-0.048035
-0.045013
-0.042267
-0.040863
-0.041534
-0.043884
-0.04718
-0.050201
-0.051544
-0.052063
-0.052032
-0.050415
-0.049591
-0.051086
-0.052917
-0.053619
-0.053619
-0.053406
-0.053589
-0.055206
-0.058319
-0.06076
-0.060699
-0.056549
-0.049072
-0.039612
-0.028961
-0.018585
-0.01059
-0.0065002
-0.0064087
-0.0075684
-0.0081482
-0.01178
-0.018372
-0.023102
-0.026672
-0.030548
-0.027588
-0.016968
-0.007782
-0.00030518
--0.0095215
--0.01825
--0.021881
--0.020111
--0.016418
--0.010193
--0.0012207
-0.0089417
-0.018524
-0.027161
-0.03302
-0.034363
-0.030365
-0.024292
-0.019226
-0.014069
-0.0092468
-0.0076294
-0.009613
-0.013519
-0.019196
-0.026855
-0.034485
-0.041443
-0.048126
-0.056396
-0.06192
-0.061066
-0.056335
-0.050476
-0.044312
-0.040161
-0.039551
-0.04068
-0.041595
-0.042572
-0.044037
-0.045959
-0.046722
-0.046844
-0.047791
-0.047577
-0.044922
-0.040833
-0.035889
-0.031097
-0.027649
-0.025177
-0.024017
-0.024475
-0.023895
-0.022186
-0.020325
-0.016724
-0.012848
-0.010895
-0.010071
-0.0085144
-0.007019
-0.0054016
-0.0039673
-0.0045471
-0.0067749
-0.0088196
-0.009552
-0.0093384
-0.0079041
-0.0053101
-0.0027161
-3.0518e-005
--0.0024414
--0.0039978
--0.0046082
--0.004425
--0.0033875
--0.0011292
-0.0020142
-0.0064392
-0.010925
-0.014526
-0.016357
-0.01532
-0.01413
-0.012115
-0.0092163
-0.0069275
-0.0065918
-0.0072937
-0.0092773
-0.012085
-0.014038
-0.016541
-0.019104
-0.02124
-0.022675
-0.022614
-0.020874
-0.018494
-0.016235
-0.013733
-0.011749
-0.010651
-0.0090332
-0.0092468
-0.010254
-0.0088806
-0.0075073
-0.0074158
-0.0055542
-0.0028992
-0.0023193
-0.00048828
--0.0024414
--0.003479
--0.0037231
--0.0056763
--0.0071106
--0.0079041
--0.010132
--0.012146
--0.013092
--0.015747
--0.019531
--0.022644
--0.024384
--0.02771
--0.033142
--0.038208
--0.041779
--0.047089
--0.050568
--0.049194
--0.050232
--0.053192
--0.053253
--0.047119
--0.032715
--0.019592
--0.0095215
-0.021729
-0.067657
-0.089172
-0.093964
-0.10513
-0.09671
-0.060608
-0.04245
-0.038666
-0.013184
--0.010254
--0.007782
-0.0018921
-0.0054626
-0.017609
-0.042633
-0.071655
-0.10083
-0.1149
-0.11407
-0.10977
-0.089233
-0.055634
-0.030945
-0.010071
--0.01532
--0.029175
--0.026733
--0.019714
--0.0075684
-0.011902
-0.034515
-0.058929
-0.074402
-0.076294
-0.070892
-0.058624
-0.039215
-0.019073
-0.0012512
--0.014954
--0.026917
--0.03302
--0.03244
--0.023529
--0.010712
-0.00033569
-0.012421
-0.024323
-0.02655
-0.018311
-0.0080261
--0.002655
--0.011963
--0.016571
--0.019897
--0.022827
--0.023865
--0.023529
--0.018829
--0.009552
--0.002655
-0.0020447
-0.010315
-0.016479
-0.014709
-0.0095215
-0.0054016
-0.0042419
-0.0065308
-0.0098267
-0.013458
-0.016327
-0.017426
-0.018524
-0.020752
-0.021057
-0.020081
-0.023041
-0.027222
-0.029083
-0.029358
-0.028412
-0.02887
-0.033173
-0.038483
-0.042236
-0.047119
-0.050079
-0.045959
-0.040222
-0.03717
-0.031403
-0.025696
-0.026276
-0.027161
-0.023865
-0.02298
-0.025238
-0.027527
-0.031738
-0.037506
-0.041199
-0.040833
-0.036072
-0.02951
-0.022919
-0.015472
-0.0083618
-0.0030212
-0.00067139
-0.00018311
-0.00018311
-0.0016174
-0.0047607
-0.0083313
-0.014252
-0.021088
-0.024048
-0.0224
-0.019348
-0.015625
-0.011139
-0.0074463
-0.0055237
-0.0046997
-0.0055237
-0.0075073
-0.0097351
-0.011261
-0.014404
-0.019684
-0.024567
-0.027344
-0.02774
-0.025635
-0.022034
-0.01947
-0.018555
-0.018677
-0.018555
-0.019623
-0.020905
-0.021515
-0.021973
-0.022644
-0.024628
-0.026642
-0.027466
-0.027191
-0.026062
-0.023315
-0.020935
-0.020782
-0.021637
-0.022064
-0.022766
-0.023468
-0.022552
-0.020966
-0.018707
-0.016693
-0.015472
-0.01474
-0.013489
-0.011841
-0.009613
-0.0076904
-0.0080872
-0.010193
-0.012085
-0.013306
-0.013641
-0.011932
-0.0089111
-0.0050354
-0.0014343
--0.0012207
--0.0027466
--0.0039063
--0.0053711
--0.0062561
--0.0066833
--0.006073
--0.0039368
--0.0011292
-0.0010986
-0.0020752
-0.0017395
-0.00039673
--0.00177
--0.0031738
--0.0045166
--0.0048218
--0.0043945
--0.0039063
--0.0039673
--0.0041504
--0.003418
--0.00177
-0.00024414
-0.0027771
-0.0045776
-0.0047913
-0.0031738
-0.0023193
-0.00094604
--0.00045776
--0.00082397
-
-6.1035e-005
--0.0012207
--0.0019836
--0.0014343
--0.0014954
--0.00097656
-0.00091553
-0.0010071
-0.00021362
-0.00015259
--0.00079346
--0.0018311
--0.0023193
--0.0023499
--0.0024719
--0.0030212
--0.0028992
--0.0036926
--0.0072632
--0.0095825
--0.0098572
--0.011566
--0.013
--0.013092
--0.014099
--0.016449
--0.0177
--0.017883
--0.01944
--0.021759
--0.024139
--0.027069
--0.029449
--0.031616
--0.030273
--0.021423
--0.0041504
-0.017822
-0.031464
-0.032257
-0.031555
-0.029938
-0.019989
-0.010834
-0.0097656
-0.0011292
--0.016113
--0.02301
--0.022705
--0.023315
--0.016022
-0.0077515
-0.033752
-0.049347
-0.057281
-0.058105
-0.053894
-0.046509
-0.03302
-0.019287
-0.0087585
--0.0056458
--0.019623
--0.024078
--0.02002
--0.010895
-0.006958
-0.030304
-0.049316
-0.057495
-0.05542
-0.049957
-0.043488
-0.032684
-0.020355
-0.010376
-0.0011292
--0.0090332
--0.016388
--0.016174
--0.0093079
-0.0026245
-0.017273
-0.031219
-0.037872
-0.034607
-0.02536
-0.016754
-0.010376
-0.0039978
--0.0022888
--0.0069885
--0.012939
--0.017914
--0.018951
--0.014893
--0.0068359
-0.0027771
-0.01062
-0.014526
-0.01236
-0.0039673
--0.0048218
--0.008667
--0.0096741
--0.010712
--0.011169
--0.010345
--0.0093689
--0.0088501
--0.0067139
--0.0031128
-0.00094604
-0.0054321
-0.0091248
-0.0083618
-0.0032043
--0.0028381
--0.0063782
--0.0050964
--0.00094604
-0.0031738
-0.0066833
-0.0096436
-0.010559
-0.010162
-0.011047
-0.012817
-0.014282
-0.015167
-0.014923
-0.010254
-0.0031433
-0.00039673
-0.0026245
-0.0058899
-0.0097656
-0.01532
-0.017761
-0.016327
-0.016144
-0.017181
-0.015289
-0.012939
-0.013123
-0.01236
-0.0081787
-0.0032654
-0.0015869
-0.00177
-0.0023499
-0.0050049
-0.009613
-0.012756
-0.012268
-0.011078
-0.01004
-0.0077515
-0.0051575
-0.0056152
-0.0068054
-0.0050659
-0.00177
--0.0005188
--0.0011902
--0.00045776
-0.0012817
-0.0045776
-0.0070496
-0.0071411
-0.0057068
-0.0044556
-0.0035095
-0.0028992
-0.003479
-0.0047302
-0.0042419
-0.0024414
-0.00042725
--0.00064087
--0.0011292
--0.00021362
-0.001709
-0.0038147
-0.0055847
-0.0050659
-0.0038147
-0.0035095
-0.0030518
-0.002655
-0.00354
-0.0039063
-0.0040588
-0.0029297
-0.001709
-0.00027466
--0.00027466
--0.00021362
-0.00067139
-0.0023804
-0.0033875
-0.0021973
-6.1035e-005
-0.00036621
-0.00039673
-0.00076294
-0.0024414
-0.0049133
-0.0045776
-0.003479
-0.0021057
--0.00039673
--0.001709
--0.0015869
--0.0012207
--0.0012207
--0.0022583
--0.0028381
--0.0040283
--0.0040283
--0.0027771
--0.0019836
--0.00015259
-0.00015259
--0.00097656
--0.0014648
--0.0032349
--0.0061035
--0.0068359
--0.0073547
--0.0073547
--0.0080261
--0.0078735
--0.0061035
--0.0054321
--0.0045166
--0.0020752
-0.00094604
-0.0007019
--0.00073242
--0.00024414
--0.0024414
--0.0064087
--0.007019
--0.0053711
--0.006012
--0.0072937
--0.0057678
--0.0050964
--0.0068054
--0.0050964
--0.0020447
-0.00033569
-0.0012207
-0.0025635
-0.0030212
-0.0020142
--0.00012207
--0.0018921
--0.001709
--0.0019226
--0.0015564
--0.0012512
--0.0013123
--0.0015259
--0.00097656
--0.00024414
-0.0021667
-0.0044556
-0.0040588
-0.0033264
-0.0031738
-0.00021362
--0.0011902
-0.00045776
-0.00091553
-0.00091553
-0.0020447
-0.0020142
--0.00073242
--0.0021973
--0.0011902
--0.0021667
--0.0019836
--0.00021362
-0.00061035
-0.00018311
-
-0.00027466
--9.1553e-005
--0.00082397
-6.1035e-005
--0.00085449
--0.0028076
--0.0037842
--0.0033569
--0.0036011
--0.0040283
--0.00091553
-0.00079346
--0.00033569
-0.00033569
-0.0010071
--0.0011902
--0.0036926
--0.0025024
--0.0026855
--0.0037842
--0.0021973
--0.0010376
--0.0010986
--0.00057983
-0.00021362
-0.0011902
-0.0015259
-0.00177
-0.0027161
-0.0031128
-0.0025024
-0.0016174
-0.00021362
--0.00094604
--0.0011597
--0.0020752
--0.0021973
--0.0014038
--0.00036621
--0.00045776
-0.0007019
-0.0028992
-0.003418
-0.0035706
-0.0034485
-0.0025024
-0.0013123
-0.00094604
-0.00045776
--0.00036621
--0.00042725
--0.00024414
--0.00094604
--0.00039673
-0.0019531
-0.0038452
-0.0049744
-0.0059814
-0.0066833
-0.0059814
-0.0041199
-0.0037842
-0.003479
-0.0030212
-0.0032349
-0.0041199
-0.0041809
-0.0041504
-0.0047913
-0.0046387
-0.0047302
-0.0055847
-0.0062256
-0.0058289
-0.0054932
-0.0056458
-0.0043945
-0.0039978
-0.0046387
-0.0044861
-0.0055542
-0.0061951
-0.0062256
-0.006012
-0.0057068
-0.0053101
-0.0052795
-0.0061035
-0.0061951
-0.0057983
-0.0057678
-0.0054626
-0.005127
-0.0046082
-0.0040283
-0.0045776
-0.0051575
-0.0048828
-0.0047302
-0.0050659
-0.0049744
-0.004425
-0.0041504
-0.0041199
-0.0042114
-0.003479
-0.0039368
-0.00354
-0.0028381
-0.0030823
-0.0029907
-0.0026855
-0.0040588
-0.005249
-0.0046692
-0.0046387
-0.0055237
-0.0052185
-0.0042114
-0.0046082
-0.0061035
-0.0055847
-0.0037842
-0.0042419
-0.0045471
-0.0029907
-0.0030823
-0.0036621
-0.0032349
-0.0030823
-0.0032959
-0.0034485
-0.0041809
-0.0048218
-0.0049744
-0.0049438
-0.0047302
-0.004303
-0.0036621
-0.0023804
-0.0018005
-0.0021057
-0.0013428
-0.00097656
-0.0020447
-0.0019836
-0.0014648
-0.0012817
-0.0019226
-0.0030212
-0.0026245
-0.0020752
-0.0031433
-0.0028687
-0.0014648
-0.0016174
-0.0032043
-0.0032349
-0.0021362
-0.0030823
-0.003479
-0.0021362
-0.0019836
-0.0032043
-0.003479
-0.0032043
-0.0038757
-0.0043945
-0.0033875
-0.0028687
-0.0031738
-0.0033875
-0.0026245
-0.0024414
-0.0036926
-0.0028076
-0.0021973
-0.0031433
-0.0036011
-0.0025024
-0.0031433
-0.0036011
-0.0021973
-0.0013123
-0.0016785
-0.0016479
-0.00085449
-0.0016785
-0.0028687
-0.0026855
-0.0024109
-0.0029297
-0.0025024
-0.00088501
-0.00076294
-0.001709
-0.0018311
-0.0013123
-0.0013733
-0.0012207
-0.00073242
--0.00015259
-0.00045776
-0.00085449
-0.00073242
-0.0010681
-0.0017395
-0.0018311
-0.0014954
-0.0014954
-0.0018311
-0.0020752
-0.0018005
-0.0017395
-0.0012817
-0.00067139
-0.00018311
-0.0005188
-0.0014343
-0.001709
-0.0024414
-0.0029602
-0.0026855
-0.0025635
-0.0022888
-0.0022278
-0.0021362
-0.0018311
-0.0018616
-0.0018005
-0.0014648
-0.0014038
-0.0013733
-0.0016174
-0.0020752
-0.0022583
-0.0023499
-0.0026855
-0.0026855
-0.0027161
-0.002655
-0.0031738
-0.0033264
-0.0032043
-0.0021973
-0.0021667
-0.0020447
-0.0014648
-0.0014648
-0.0019226
-0.0021667
-0.0018311
-0.00177
-0.0019836
-0.0018616
-0.0015869
-0.0018921
-0.0022278
-0.0017395
-0.0015259
-0.0013428
-0.0007019
-0.00033569
-0.00030518
-0.00042725
-0.00027466
-0.00033569
-0.00015259
-0.00030518
-0.00079346
-0.00088501
-0.0016174
-0.0018311
-0.0016479
-0.0019836
-0.0014343
-0.00079346
-0.00042725
-0.00021362
-3.0518e-005
--0.00061035
--0.00079346
--0.0012207
--0.0014648
--0.0012512
--0.00094604
--0.00064087
--0.00042725
--0.00012207
--0.00021362
--0.00015259
--3.0518e-005
-0.00012207
-0.00030518
-0.00033569
-0.00015259
--3.0518e-005
--0.00030518
--0.00024414
--6.1035e-005
-
-0.00039673
-0.0007019
-0.00067139
-0.00048828
-0.00054932
-0.00039673
-0.00039673
-0.00045776
-0.00061035
-0.00067139
-0.0010681
-0.0013733
-0.0015564
-0.0015259
-0.0014648
-0.0014343
-0.0013123
-0.0010986
-0.00085449
-0.00039673
-0.00021362
-0.00027466
-0.00054932
-0.00067139
-0.00082397
-0.00057983
-0.00064087
-0.00073242
-0.00067139
-0.00073242
-0.00027466
--9.1553e-005
--0.00088501
--0.0015869
--0.0019531
--0.0022583
--0.0028076
--0.0031128
--0.0036621
--0.0040894
--0.0041504
--0.0040894
--0.0038452
--0.00354
--0.0032349
--0.0031738
--0.0031738
--0.0032959
--0.0033569
--0.003418
--0.003479
--0.003418
--0.003418
--0.0033569
--0.0032349
--0.0032959
--0.0032959
--0.0031128
--0.0028687
--0.0028687
--0.0026855
--0.0021973
--0.0022278
--0.0021057
--0.0024109
--0.0024109
--0.002533
--0.002655
--0.0028992
--0.0029602
--0.0030212
--0.0030212
--0.0033569
--0.003418
--0.0036621
--0.003418
--0.0032349
--0.0029602
--0.0027771
--0.0031128
--0.00354
--0.0039063
--0.0041504
--0.0043945
--0.0045166
--0.0046387
--0.0049438
--0.005249
--0.0054932
--0.0057068
--0.0056458
--0.0056458
--0.0053406
--0.0053406
--0.0052185
--0.005188
--0.0053711
--0.005249
--0.0053101
--0.0049438
--0.0048828
--0.0044556
--0.0044861
--0.0046692
--0.0046082
--0.0049744
--0.0050964
--0.0051575
--0.0052185
--0.0053406
--0.0053101
--0.0050049
--0.0050049
--0.0050659
--0.0053101
--0.0054932
--0.0056458
--0.0057068
--0.0057678
--0.0058899
--0.0058594
--0.0062256
--0.0062256
--0.0064697
--0.0063782
--0.0065613
--0.0063171
--0.0061951
--0.0059814
--0.0061035
--0.0059204
--0.0061646
--0.006012
--0.0059509
--0.0061951
--0.006134
--0.0062256
--0.0063477
--0.0065918
--0.0065308
--0.0066833
--0.0066223
--0.0063782
--0.0061035
--0.0057373
--0.0055542
--0.0054321
--0.0052795
--0.0051575
--0.0048523
--0.0050964
--0.0052795
--0.0052185
--0.0052185
--0.0048218
--0.0049438
--0.005188
--0.0053101
--0.0053711
--0.0049744
--0.0048523
--0.0047302
--0.0048523
--0.0052795
--0.0057068
--0.0061646
--0.0063477
--0.0062256
--0.0059814
--0.0056763
--0.0055542
--0.0054932
--0.0053406
--0.0053406
--0.0051575
--0.0052185
--0.0054016
--0.0055237
--0.0058899
--0.0064087
--0.0068359
--0.006958
--0.0067749
--0.0068054
--0.0069275
--0.0070496
--0.0066833
--0.0063477
--0.0061035
--0.0060425
--0.0059204
--0.0059814
--0.0059814
--0.0060425
--0.0061035
--0.006134
--0.0061951
--0.0062561
--0.0066833
--0.0068665
--0.0066528
--0.0062256
--0.0056152
--0.0054321
--0.0053101
--0.0053101
--0.0055542
--0.0055542
--0.0053406
--0.0052795
--0.0049133
--0.004425
--0.0044861
--0.0047302
--0.0047913
--0.0049133
--0.0050354
--0.0051575
--0.0052795
--0.0054016
--0.0055237
--0.0055847
--0.0054932
--0.0056152
--0.0056152
--0.0054321
--0.005249
--0.0054321
--0.0055542
--0.0055237
--0.0052185
--0.0049133
--0.0047913
--0.0046082
--0.0047302
--0.0046692
--0.0047302
--0.0047913
--0.0046082
--0.0045471
--0.0042419
--0.0040588
--0.0038147
--0.0034485
--0.0033875
--0.0031738
--0.003479
--0.0039063
--0.0040894
--0.0043335
--0.0043335
--0.0042725
--0.0040894
--0.0039673
--0.0037842
--0.00354
--0.00354
--0.0036621
--0.0037842
--0.0037231
--0.0039063
--0.0039673
--0.0040894
--0.0040283
--0.0040894
--0.0041504
--0.0040894
--0.0041504
--0.0039673
--0.0040894
--0.0042114
--0.0044556
--0.0046387
--0.0048828
--0.0048828
--0.0048218
--0.0047607
--0.0050049
--0.005249
--0.0054321
--0.0054016
--0.0052185
--0.0051575
--0.0046692
--0.0042419
--0.004364
--0.0045471
--0.0046082
--0.0046692
--0.0048523
--0.0048523
--0.0047302
--0.004425
--0.004303
--0.0042419
--0.0038147
--0.0036316
--0.0033264
--0.0030823
--0.0029907
--0.0030518
--0.0030518
--0.0029297
--0.0028076
--0.0029297
--0.0029297
--0.0030518
--0.0032043
--0.0033875
--0.0036621
--0.0039063
--0.0040283
--0.0041504
--0.0040283
--0.0039673
--0.0040283
--0.0042114
--0.0043335
--0.0045166
--0.0046997
--0.0048218
--0.0047607
--0.0048218
--0.0048218
--0.0045776
--0.0045776
--0.0047607
--0.0045776
--0.0045166
--0.0046387
--0.0049438
--0.0050049
--0.0048828
--0.0049438
--0.0050049
--0.0048218
--0.0042725
--0.0038452
--0.0037231
--0.0039063
--0.0042114
--0.0045166
--0.0045166
--0.0043945
--0.0042725
--0.0043945
--0.0044556
--0.0048828
--0.0050049
--0.0050049
--0.005188
--0.0049133
--0.0046082
--0.0041809
--0.0038147
--0.0037537
--0.0038757
--0.0038757
--0.0039978
--0.0041199
--0.0044861
--0.0047913
--0.0048523
--0.0049744
--0.0048523
--0.0046692
--0.004364
--0.004364
--0.004425
--0.004425
--0.004425
--0.0046082
--0.0045471
--0.0047302
--0.0045471
--0.004364
--0.0042419
--0.0040588
--0.0041199
--0.0041809
--0.0045471
--0.0046692
--0.0049133
--0.0048523
--0.0048523
--0.0049744
--0.0049133
--0.0049133
--0.0049744
--0.0044861
--0.0045471
--0.0042419
--0.0042419
--0.0041809
--0.0044861
--0.0049133
--0.005127
--0.005249
--0.0053711
--0.005127
--0.005127
--0.0054321
--0.0054321
--0.0052795
--0.0052795
--0.0055847
--0.0057068
--0.0057068
--0.0055847
--0.0057068
--0.0057678
--0.0057373
--0.0059814
--0.0062256
--0.0065918
--0.0065613
--0.0066833
--0.0065613
--0.0061951
--0.0058899
--0.0057373
--0.0054321
--0.0054932
--0.0053711
--0.005188
--0.005249
--0.0056152
--0.0056458
--0.0054626
--0.0052185
--0.0049744
--0.0046082
--0.004364
--0.0040588
--0.0040588
--0.0042419
--0.0046082
--0.0050964
--0.0054016
--0.0057068
--0.0057068
--0.0056763
--0.0053711
--0.0050049
--0.0050049
--0.005127
--0.0055542
--0.0059509
--0.0061951
--0.0064392
--0.0063782
--0.0067139
--0.007019
--0.0072632
--0.0071411
--0.0072937
--0.0072937
--0.0071716
--0.0070801
--0.0068359
--0.0067139
--0.0066223
--0.0066833
--0.0067444
--0.0068054
--0.006897
--0.0071411
--0.0074463
--0.007782
--0.0080872
--0.0085449
--0.0083618
--0.0083313
--0.0079041
--0.0077209
--0.0076904
--0.0076294
--0.0074463
--0.0072937
--0.0075378
--0.0072021
--0.006958
--0.0067139
--0.0065308
--0.0066223
--0.0067444
--0.0066833
--0.0068054
--0.007019
--0.0071411
--0.0074768
--0.0074158
--0.0074768
--0.0076904
--0.0078125
--0.0075989
--0.0075378
--0.0074768
--0.0076294
--0.0079346
--0.0080261
--0.0083313
--0.0082397
--0.0083008
--0.0083923
--0.0083923
--0.0083618
--0.0085449
--0.0085754
--0.0086365
--0.0085449
--0.0084229
--0.0084534
--0.0084534
--0.0083618
--0.0079346
--0.0079041
--0.007843
--0.0079041
--0.0078735
--0.0075073
--0.0070801
--0.0070801
--0.0069275
--0.0071106
--0.0069885
--0.0070496
--0.0070801
--0.0072632
--0.0072021
--0.0071106
--0.0071716
--0.0071106
--0.0071716
--0.0071411
--0.006958
--0.006897
--0.0070801
--0.0072327
--0.0074768
--0.0076599
--0.0077515
--0.0080566
--0.0079956
--0.007782
--0.0074768
--0.0072937
--0.0071716
--0.0071411
--0.0073853
--0.0073853
--0.0074158
--0.0077209
--0.0079041
--0.0079346
--0.0083618
--0.0087585
--0.0088806
--0.0089722
--0.0090942
--0.0093689
--0.0098572
--0.010132
--0.010498
--0.010651
--0.01062
--0.010559
--0.010284
--0.010345
--0.010132
--0.010101
--0.01004
--0.01001
--0.010101
--0.010101
--0.010437
--0.01059
--0.010651
--0.010681
--0.010468
--0.0099792
--0.0098267
--0.0098572
--0.0099182
--0.0098877
--0.0098572
--0.01004
--0.0099487
--0.0099182
--0.0098572
--0.0098267
--0.0097961
--0.009491
--0.0092773
--0.0094299
--0.0097351
--0.0099487
--0.0098572
--0.009552
--0.0095825
--0.0097046
--0.0097961
--0.0099487
--0.010071
--0.010284
--0.010315
--0.010437
--0.010223
--0.010529
--0.010437
--0.010406
--0.010651
--0.010681
--0.010681
--0.010468
--0.010681
--0.010925
--0.011383
--0.011292
--0.011353
--0.011444
--0.011475
--0.011414
--0.011444
--0.011292
--0.0112
--0.011566
--0.011536
--0.01181
--0.011841
--0.011658
--0.011322
--0.010803
--0.010742
--0.010651
--0.01062
--0.010437
--0.01059
--0.010712
--0.010864
--0.010956
--0.011047
--0.01123
--0.011322
--0.011475
--0.011444
--0.011383
--0.011475
--0.01181
--0.011902
--0.01181
--0.01181
--0.011841
--0.011749
--0.011719
--0.011597
--0.011627
--0.011414
--0.011383
--0.011322
--0.01123
--0.011322
--0.011047
--0.010925
--0.0112
--0.011292
--0.011169
--0.011078
--0.010742
--0.010437
--0.010284
--0.010101
--0.0099487
--0.0098572
--0.0096741
--0.0093994
--0.0092163
--0.0093079
--0.009491
--0.0096436
--0.0096436
--0.009613
--0.009552
--0.0097046
--0.0097656
--0.010162
--0.01059
--0.010803
--0.011078
--0.0112
--0.010925
--0.011047
--0.011017
--0.011169
--0.011292
--0.011444
--0.011597
--0.011627
--0.011871
--0.011841
--0.011871
--0.011719
--0.011566
--0.011566
--0.011597
--0.011261
--0.011292
--0.011169
--0.011261
--0.011108
--0.010803
--0.010529
--0.010376
--0.010315
--0.010406
--0.010498
--0.010437
--0.010345
--0.010284
--0.010254
--0.010223
--0.01004
--0.0099487
--0.009613
--0.0094299
--0.0089111
--0.0087585
--0.0085754
--0.0085449
--0.0087891
--0.0089417
--0.0091858
--0.0090942
--0.0092163
--0.0090027
--0.0088806
--0.0089417
--0.0092773
--0.0093079
--0.0093079
--0.0093384
--0.0094604
--0.009491
--0.0094299
--0.0094604
--0.0094604
--0.0097351
--0.0098572
--0.0097046
--0.0098267
--0.01004
--0.010101
--0.010254
--0.010193
--0.010284
--0.010193
--0.010071
--0.010101
--0.010284
--0.010437
--0.010406
--0.010223
--0.010254
--0.0098572
--0.009613
--0.0095215
--0.0092773
--0.0091858
--0.0088196
--0.008667
--0.008728
--0.0088806
--0.0091248
--0.0090332
--0.0088501
--0.0090637
--0.0088196
--0.0087891
--0.0085449
--0.0084534
--0.0086975
--0.008667
--0.008728
--0.0087585
--0.0088196
--0.0088501
--0.0091553
--0.0090027
--0.0089417
--0.0085449
--0.0081787
--0.0075378
--0.0071106
--0.0066223
--0.0068359
--0.0068359
--0.0070801
--0.0074158
--0.0079041
--0.0081177
--0.0080566
--0.0082703
--0.0080261
--0.0081177
--0.0080566
--0.0080872
--0.0080872
--0.007782
--0.0075073
--0.0073242
--0.0072937
--0.0074768
--0.0072937
--0.0071411
--0.0073853
--0.0073547
--0.0074158
--0.0072937
--0.0072021
--0.006897
--0.0066833
--0.0063782
--0.0058899
--0.0059509
--0.0061035
--0.0062866
--0.0062866
--0.0065308
--0.0067139
--0.0068054
--0.0068665
--0.0069885
--0.0071106
--0.007019
--0.0072632
--0.0074463
--0.0075378
--0.0075989
--0.007782
--0.0076294
--0.0075073
--0.0075073
--0.0073242
--0.0070496
--0.0071716
--0.0077209
--0.0081177
--0.0081787
--0.0082397
--0.0083313
--0.0085144
--0.0087585
--0.008667
--0.008667
--0.0083313
--0.0080872
--0.0077209
--0.0072021
--0.006897
--0.0064697
--0.0065613
--0.0066223
--0.0067444
--0.0068054
--0.0065918
--0.0065918
--0.0066528
--0.0070801
--0.0075989
--0.007782
--0.0077209
--0.0075684
--0.0072021
--0.007019
--0.0068054
--0.0066223
--0.0066223
--0.0065002
--0.0064697
--0.0063477
--0.0065308
--0.0065002
--0.0065613
--0.0064392
--0.0063171
--0.0064087
--0.0063477
--0.0065308
--0.0066528
--0.0067444
--0.0069885
--0.0071106
--0.0070496
--0.0067749
--0.0065918
--0.0065308
--0.0065918
--0.0063782
--0.006134
--0.0058289
--0.0058289
--0.0056458
--0.0054321
--0.0057983
--0.0057983
--0.0057373
--0.0057373
--0.0057068
--0.0057678
--0.0057068
--0.0056458
--0.0057068
--0.0054626
--0.0053406
--0.0053711
--0.0053711
--0.0054321
--0.0056152
--0.0056763
--0.0059204
--0.0063171
--0.0066833
--0.0069885
--0.006958
--0.0067749
--0.0064087
--0.0061035
--0.006134
--0.0063171
--0.0062561
--0.0063782
--0.0063477
--0.0062256
--0.0065308
--0.0069885
--0.0072327
--0.0072937
--0.0073853
--0.0076294
--0.007782
--0.0080872
--0.0082397
--0.0082397
--0.0083923
--0.0083313
--0.0081787
--0.0078125
--0.0079346
--0.0082092
--0.0085754
--0.0084839
--0.0079956
--0.0072937
--0.0070496
--0.0068054
--0.0068359
--0.0067749
--0.0067444
--0.0068054
--0.0067444
--0.006958
--0.0067139
--0.0063171
--0.0061951
--0.006012
--0.0059509
--0.0056763
--0.0056152
--0.0055542
--0.0055542
--0.0056763
--0.0060425
--0.0062256
--0.0065002
--0.0065002
--0.0063171
--0.0065002
--0.0063782
--0.0061951
--0.0060425
--0.0061646
--0.0064087
--0.0065918
--0.0067444
--0.0070496
--0.0069275
--0.0067444
--0.0065308
--0.0065308
--0.0066528
--0.0068359
--0.0071106
--0.0074158
--0.0072937
--0.0074768
--0.0073242
--0.0072632
--0.0073853
--0.0073853
--0.0072327
--0.0069885
--0.0068054
--0.0069275
--0.006897
--0.006897
--0.0067749
--0.007019
--0.0070496
--0.0068054
--0.0071106
--0.0069885
--0.0067139
--0.0067749
--0.0068359
--0.007019
--0.0069275
--0.0068665
--0.0066833
--0.0068665
--0.0071411
--0.0071411
--0.0072021
--0.0072632
--0.0072327
--0.0072937
--0.0074158
--0.0075684
--0.0074463
--0.0076904
--0.0074768
--0.0074768
--0.0074158
--0.0077515
--0.01059
--0.014771
--0.013611
--0.0086975
--0.0061951
--0.0045471
--0.0030823
--0.0053406
--0.0074463
--0.0055542
--0.0041504
--0.0050049
--0.0057983
--0.0078735
--0.012543
--0.016113
--0.015778
--0.013947
--0.011505
--0.0078735
--0.005188
--0.0046997
--0.005249
--0.0063477
--0.0070496
--0.0069275
--0.0066223
--0.0077515
--0.0096436
--0.0112
--0.012085
--0.012543
--0.011871
--0.010376
--0.0093079
--0.0085144
--0.0083618
--0.0088501
--0.0088806
--0.0083923
--0.0077515
--0.0078735
--0.008728
--0.0098572
--0.011353
--0.012115
--0.01239
--0.012329
--0.012054
--0.011169
--0.010773
--0.010712
--0.010498
--0.010406
--0.010529
--0.010559
--0.010193
--0.0099792
--0.010529
--0.011658
--0.012543
--0.012756
--0.012177
--0.011383
--0.010986
--0.010529
--0.010101
--0.0099487
--0.0094604
--0.0091248
--0.0083923
--0.0080261
--0.0078735
--0.0085449
--0.009613
--0.010223
--0.010376
--0.010162
--0.01004
--0.010132
--0.0099792
--0.0097351
--0.0091553
--0.0089111
--0.0085754
--0.0088196
--0.008667
--0.0090942
--0.0093079
--0.0093689
--0.0093994
--0.0097046
--0.01004
--0.010071
--0.010193
--0.010284
--0.010132
--0.010193
--0.010162
--0.010529
--0.01062
--0.010651
--0.01059
--0.010376
--0.0099792
--0.0096741
--0.0098877
--0.010284
--0.010468
--0.010498
--0.010529
--0.010864
--0.010864
--0.010956
--0.011047
--0.011261
--0.011505
--0.011536
--0.011322
--0.011292
--0.01123
--0.011139
--0.010956
--0.010986
--0.010834
--0.010773
--0.010803
--0.011017
--0.011383
--0.011719
--0.012177
--0.012146
--0.011993
--0.011627
--0.011719
--0.011688
--0.011475
--0.011169
--0.011078
--0.011536
--0.011597
--0.011932
--0.012146
--0.012177
--0.012238
--0.012024
--0.01181
--0.011536
--0.011536
--0.011505
--0.011353
--0.0112
--0.010712
--0.010498
--0.010559
--0.01059
--0.010925
--0.011017
--0.011383
--0.01123
--0.010895
--0.010803
--0.010681
--0.010651
--0.01059
--0.010315
--0.010345
--0.010162
--0.010254
--0.010529
--0.010559
--0.010437
--0.01004
--0.01004
--0.0099487
--0.0097351
--0.0099792
--0.010132
--0.010406
--0.010681
--0.011047
--0.011139
--0.011108
--0.011353
--0.011505
--0.011597
--0.011475
--0.0112
--0.011261
--0.011169
--0.0112
--0.011444
--0.011292
--0.0112
--0.0112
--0.01123
--0.011322
--0.011261
--0.011108
--0.010773
--0.010651
--0.01062
--0.01059
--0.010468
--0.010559
--0.010651
--0.01059
--0.010315
--0.010284
--0.010468
--0.010559
--0.010529
--0.010529
--0.010437
--0.010468
--0.01059
--0.010437
--0.0099182
--0.009552
--0.0096436
--0.0097351
--0.0096741
--0.010071
--0.010132
--0.010223
--0.010315
--0.010498
--0.010284
--0.010132
--0.010071
--0.0098572
--0.0099182
--0.0098267
--0.0099182
--0.010284
--0.010437
--0.010529
--0.01062
--0.010376
--0.01004
--0.010101
--0.010071
--0.01004
--0.0099182
--0.0098877
--0.0097961
--0.009613
--0.0094604
--0.0092773
--0.0092468
--0.0093079
--0.0090332
--0.0089111
--0.0088501
--0.0088806
--0.0090027
--0.0087891
--0.0087891
--0.0087891
--0.0089417
--0.0088196
--0.008728
--0.008728
--0.0089111
--0.0090637
--0.0089417
--0.0087891
--0.008728
--0.0088196
--0.0090027
--0.0090332
--0.0091858
--0.0093689
--0.0094604
--0.0095825
--0.0096741
--0.009491
--0.0094604
--0.0097656
--0.0098572
--0.010101
--0.010071
--0.01001
--0.0096741
--0.009613
--0.0097046
--0.0098572
--0.0099792
--0.010132
--0.010345
--0.010529
--0.01062
--0.010742
--0.010468
--0.010559
--0.010315
--0.010284
--0.0099487
--0.0098267
--0.0096741
--0.0098572
--0.0098877
--0.01004
--0.010101
--0.010254
--0.010101
--0.01004
--0.0099487
--0.0099792
--0.0099182
--0.0097656
--0.009613
--0.009613
--0.0093994
--0.0091248
--0.0090637
--0.0089111
--0.0089722
--0.0088196
--0.0084534
--0.0080566
--0.0076904
--0.0075073
--0.007782
--0.0077209
--0.0078735
--0.0080566
--0.0081482
--0.0084534
--0.0086975
--0.0089111
--0.0089111
--0.008667
--0.0083923
--0.0083313
--0.0083618
--0.0084229
--0.0084229
--0.0085144
--0.0086975
--0.0087585
--0.008728
--0.008728
--0.0085144
--0.0082703
--0.0082092
--0.0081787
--0.0079346
--0.0074768
--0.0074158
--0.0075989
--0.0079346
--0.0079956
--0.0077515
--0.007782
--0.0075989
--0.0075073
--0.0074463
--0.0075073
--0.0074768
--0.0074768
--0.0072937
--0.0073242
--0.0073853
--0.0076294
--0.0077209
--0.0075989
--0.0075073
--0.0076294
--0.0076904
--0.0079041
--0.0080261
--0.0081482
--0.0079956
--0.0078125
--0.0075378
--0.0072937
--0.0072327
--0.0073853
--0.0077515
--0.0077209
--0.0080261
--0.0081482
--0.0083008
--0.0082397
--0.007843
--0.0077209
--0.0076599
--0.0075073
--0.0072021
--0.0070496
--0.0072327
--0.0073547
--0.006958
--0.006897
--0.006897
--0.0066223
--0.0063171
--0.0063782
--0.006073
--0.0061035
--0.0060425
--0.0062256
--0.0062561
--0.0065002
--0.0063782
--0.0058289
--0.0055237
--0.0054932
--0.0057373
--0.0057373
--0.0056152
--0.0058899
--0.0058289
--0.0058289
--0.0056458
--0.0053101
--0.005188
--0.005127
--0.005127
--0.0053101
--0.0054321
--0.0055237
--0.0059509
--0.006073
--0.006012
--0.0063477
--0.0066528
--0.0065308
--0.0066528
--0.0067444
--0.0070496
--0.0073547
--0.0072632
--0.0071411
--0.0072937
--0.0068665
--0.0065613
--0.0065918
--0.0065918
--0.0065918
--0.0063782
--0.0063171
--0.006134
--0.006134
--0.0059814
--0.0058594
--0.0057983
--0.0053406
--0.0050354
--0.0047913
--0.0049133
--0.0049744
--0.0049744
--0.0048523
--0.0049744
--0.0048828
--0.0048218
--0.0046387
--0.0046997
--0.0047607
--0.0050049
--0.0053711
--0.0056152
--0.0059814
--0.0059814
--0.0059814
--0.0061035
--0.0061035
--0.0059509
--0.0063171
--0.0063171
--0.0062561
--0.006134
--0.006073
--0.0058289
--0.0054016
--0.0053101
--0.0054321
--0.0056152
--0.0057983
--0.0060425
--0.0063477
--0.0066833
--0.0069885
--0.0072937
--0.0073547
--0.0073242
--0.0072021
--0.0071411
--0.0070801
--0.0070496
--0.0072327
--0.0071716
--0.0070496
--0.006897
--0.006958
--0.006958
--0.0070801
--0.0070496
--0.0069885
--0.0069275
--0.0066223
--0.0065308
--0.0064087
--0.0065918
--0.006897
--0.0069275
--0.0071716
--0.0069885
--0.0068665
--0.006958
--0.0072632
--0.0075684
--0.0077209
--0.0079041
--0.0080261
--0.0079956
--0.0081787
--0.0084229
--0.0083923
--0.0082092
--0.0083008
--0.0083618
--0.0085449
--0.0083313
--0.0079651
--0.0080261
--0.0076904
--0.0073242
--0.0068665
--0.0069275
--0.0071106
--0.0071716
--0.0073853
--0.0075684
--0.0078125
--0.0075378
--0.0074158
--0.0073853
--0.0074463
--0.0071411
--0.0068359
--0.0068665
--0.0069275
--0.0068665
--0.0072021
--0.0072021
--0.0073242
--0.0073547
--0.0073547
--0.0072327
--0.0073242
--0.0072632
--0.0071106
--0.0069275
--0.0065613
--0.0066223
--0.006897
--0.0071411
--0.0074158
--0.0074768
--0.0075989
--0.0076294
--0.0077515
--0.0079956
--0.0079651
--0.0079651
--0.0079346
--0.0081787
--0.0083313
--0.0083313
--0.008667
--0.008667
--0.0087585
--0.0088196
--0.0088501
--0.0084839
--0.0082092
--0.0080261
--0.0079041
--0.0077515
--0.0073853
--0.0074158
--0.0075378
--0.007782
--0.0079346
--0.0080261
--0.0081482
--0.0079956
--0.0079956
--0.007843
--0.0076599
--0.0073547
--0.0072021
--0.0072021
--0.006897
--0.0072632
--0.0074158
--0.0077209
--0.0081482
--0.0084229
--0.0084839
--0.0082397
--0.0082703
--0.0083313
--0.0084839
--0.0084839
--0.0085449
--0.0083923
--0.0081482
--0.0079651
--0.0081177
--0.0085449
--0.0086975
--0.0088806
--0.008728
--0.0090332
--0.0091858
--0.0092468
--0.0093384
--0.0093994
--0.009491
--0.0096741
--0.0097046
--0.0098267
--0.0097351
--0.0097961
--0.0099487
--0.0098877
--0.0099182
--0.0099182
--0.0099487
--0.0097046
--0.009491
--0.009552
--0.0093994
--0.0093384
--0.0092468
--0.0093079
--0.0094604
--0.0094604
--0.0093689
--0.0093079
--0.0090332
--0.0089722
--0.0090637
--0.0091248
--0.0090332
--0.0088501
--0.0090027
--0.0092468
--0.0090942
--0.0093384
--0.0094299
--0.0097961
--0.0097656
--0.0096741
--0.0094299
--0.0095825
--0.0095215
--0.009552
--0.0095825
--0.0097656
--0.0097351
--0.0099182
--0.0098877
--0.0097961
--0.0097961
--0.0098877
--0.0099792
--0.010101
--0.010071
--0.010162
--0.010284
--0.010437
--0.010406
--0.0099792
--0.0095825
--0.0093079
--0.0089417
--0.0090942
--0.0093384
--0.009491
--0.009491
--0.0093384
--0.0093079
--0.0093689
--0.0091553
--0.0088501
--0.008667
--0.0083313
--0.0082703
--0.0085754
--0.0089111
--0.0090027
--0.0091248
--0.0089111
--0.008728
--0.008667
--0.0085754
--0.0085144
--0.0087891
--0.0089722
--0.0094299
--0.009613
--0.0097656
--0.0098267
--0.009613
--0.0096741
--0.0096436
--0.0094604
--0.0093689
--0.0093079
--0.0092163
--0.0095825
--0.0096741
--0.009552
--0.0092163
--0.0090942
--0.0090027
--0.0088806
--0.0092163
--0.0092773
--0.009491
--0.0097351
--0.0097656
--0.0098877
--0.01004
--0.01001
--0.010132
--0.0099792
--0.0097046
--0.0095825
--0.0096741
--0.0097961
--0.0098877
--0.0098572
--0.0096741
--0.0095825
--0.009491
--0.0094299
--0.0095825
--0.0096741
--0.0098572
--0.0097656
--0.0098572
--0.009613
--0.0093994
--0.0091858
--0.0090027
--0.0090332
--0.0092773
--0.0093689
--0.0094604
--0.0095215
--0.0097961
--0.0099792
--0.0098877
--0.010101
--0.010223
--0.010132
--0.010071
--0.0099792
--0.0099792
--0.0095825
--0.0093994
--0.0092468
--0.0093079
--0.0093994
--0.0092773
--0.0091858
--0.0090027
--0.0088501
--0.008728
--0.008606
--0.0082703
--0.0083313
--0.0079651
--0.0078125
--0.0078125
--0.007843
--0.0080261
--0.0079041
--0.0078735
--0.0079956
--0.0080261
--0.0081482
--0.0082703
--0.0083618
--0.0082397
--0.0080261
--0.0081482
--0.0082092
--0.0083008
--0.0084229
--0.0084534
--0.0086975
--0.0089111
--0.0090332
--0.0093689
--0.0094299
--0.0094604
--0.0095215
--0.0094299
--0.009491
--0.0095215
--0.0097046
--0.0097351
--0.0096436
--0.0096436
--0.0090637
--0.0086365
--0.0084839
--0.0084229
--0.0085754
--0.0085754
--0.0084839
--0.0084839
--0.0085144
--0.0084534
--0.0085449
--0.0087891
--0.0087585
--0.0085144
--0.0081177
--0.0076904
--0.0073853
--0.0072327
--0.0070496
--0.0068359
--0.006897
--0.007019
--0.0068665
--0.0068665
--0.0071106
--0.0072021
--0.0072021
--0.0074158
--0.0072327
--0.0071106
--0.007019
--0.0072021
--0.0070496
--0.0071716
--0.0074158
--0.0075073
--0.0075073
--0.0074768
--0.0074158
--0.0073547
--0.006958
--0.006958
--0.0067139
--0.0065613
--0.0065613
--0.0067444
--0.0071106
--0.0071411
--0.0075684
--0.0076904
--0.0078125
--0.0079041
--0.0079651
--0.0079956
--0.0076904
--0.0072632
--0.007019
--0.0067444
--0.0064392
--0.0061951
--0.0061951
--0.0065002
--0.0064697
--0.0062866
--0.0064087
--0.0062866
--0.0061646
--0.006012
--0.0058899
--0.0055847
--0.0054626
--0.0055847
--0.0057068
--0.0056458
--0.0057678
--0.0057373
--0.0056152
--0.0053711
--0.005188
--0.0053101
--0.0056152
--0.0058594
--0.0055237
--0.0055847
--0.0054016
--0.0053406
--0.0051575
--0.0050964
--0.0049133
--0.0048523
--0.0046692
--0.0046692
--0.0048828
--0.0049438
--0.0053711
--0.0056152
--0.0056152
--0.0053101
--0.005188
--0.005188
--0.0053406
--0.0053406
--0.0052185
--0.0050964
--0.0050964
--0.0050964
--0.0052185
--0.0053406
--0.005249
--0.005249
--0.005127
--0.005249
--0.0053711
--0.0057373
--0.0056763
--0.0055847
--0.0054016
--0.0054016
--0.0055237
--0.0052795
--0.0052795
--0.0050964
--0.0048523
--0.0047607
--0.0048218
--0.0049438
--0.0050659
--0.0053101
--0.0053711
--0.005127
--0.0047302
--0.0045471
--0.0045471
--0.0046082
--0.0050354
--0.0054016
--0.0055847
--0.0054626
--0.0054016
--0.0052795
--0.0050354
--0.0049438
--0.0050049
--0.005127
--0.005127
--0.0053711
--0.0057983
--0.0058594
--0.0058289
--0.0056458
--0.0053406
--0.0049744
--0.0046692
--0.0044861
--0.0041809
--0.0041199
--0.0040588
--0.0040588
--0.0041809
--0.004303
--0.0039978
--0.0038757
--0.0034485
--0.0032043
--0.0031433
--0.0031433
--0.0031433
--0.0029297
--0.0028076
--0.0029297
--0.0030518
--0.0029907
--0.0031738
--0.0033569
--0.0036621
--0.0037842
--0.0040283
--0.0040894
--0.0041504
--0.0042725
--0.0043945
--0.0043945
--0.0042725
--0.0042725
--0.0043945
--0.0045166
--0.0043945
--0.0046387
--0.0049438
--0.005249
--0.0055542
--0.0053711
--0.0053711
--0.005188
--0.0049744
--0.0049133
--0.004425
--0.0044861
--0.0042419
--0.0041809
--0.0042419
--0.0046082
--0.0047913
--0.0046692
--0.0046692
--0.0044861
--0.004425
--0.0042419
--0.0042419
--0.004303
--0.0041809
--0.0040588
--0.0038757
--0.0039368
--0.0038147
--0.0037537
--0.0039368
--0.0039368
--0.0040588
--0.0041199
--0.0039978
--0.004425
--0.0044861
--0.0047302
--0.0046692
--0.0047913
--0.0048828
--0.0053711
--0.0057983
--0.0062866
--0.0062256
--0.0062561
--0.0061951
--0.006134
--0.0059509
--0.0062256
--0.0064087
--0.0062866
--0.0062561
--0.0063782
--0.006134
--0.006073
--0.0060425
--0.0059814
--0.0056152
--0.0050659
--0.0050659
--0.0050659
--0.005249
--0.0056458
--0.0059509
--0.006134
--0.006012
--0.0057983
--0.0057373
--0.0053711
--0.0055542
--0.005249
--0.005249
--0.0054932
--0.0056152
--0.0056458
--0.0053406
--0.0053406
--0.0052185
--0.0054626
--0.0056458
--0.0056458
--0.0057983
--0.0059204
--0.0063477
--0.0066528
--0.0066223
--0.0067444
--0.0065002
--0.0063782
--0.0061646
--0.0061035
--0.0062866
--0.0064087
--0.0065002
--0.0067444
--0.0067444
--0.0069885
--0.0067749
--0.0067139
--0.0065918
--0.0064392
--0.0063171
--0.0063171
--0.0064392
--0.0067139
--0.006958
--0.0071411
--0.0073547
--0.0073547
--0.0071716
--0.007019
--0.006897
--0.0066223
--0.0068665
--0.0068054
--0.006897
--0.0066528
--0.0067749
--0.0068665
--0.0067444
--0.0067444
--0.0064697
--0.0063477
--0.0062866
--0.0066223
--0.0067444
--0.0068665
--0.006958
--0.006958
--0.0070496
--0.0068054
--0.0069275
--0.0070801
--0.0070801
--0.0072937
--0.0071106
--0.0075378
--0.0073853
--0.0073242
--0.0071411
--0.0069885
--0.0069275
--0.0066223
--0.0067444
--0.007019
--0.0071411
--0.0074463
--0.0076294
--0.0079651
--0.0080261
--0.0080872
--0.0080566
--0.0081787
--0.0084534
--0.0083313
--0.0083313
--0.0081177
--0.0080566
--0.0082703
--0.0083923
--0.0084534
--0.008606
--0.0083618
--0.0079651
--0.007843
--0.0077209
--0.0080566
--0.0080566
--0.0082092
--0.0081482
--0.0080872
--0.0078125
--0.0076294
--0.0075989
--0.0075989
--0.007782
--0.0076904
--0.0077515
--0.007843
--0.0077209
--0.0079041
--0.0076294
--0.0078125
--0.007782
--0.007843
--0.0082092
--0.0080566
--0.0081177
--0.0081482
--0.0080872
--0.0081482
--0.008606
--0.0089417
--0.0089417
--0.008728
--0.0088501
--0.0091858
--0.0093079
--0.0093384
--0.0094604
--0.0097351
--0.0097351
--0.0098267
--0.0096741
--0.0096741
--0.0095825
--0.0093994
--0.0092468
--0.0088196
--0.0084229
--0.0082397
--0.0082703
--0.0085144
--0.008606
--0.0084839
--0.0086365
--0.0083923
--0.0083008
--0.0083618
--0.0082092
--0.0082092
--0.0083008
--0.0082397
--0.0082092
--0.0080872
--0.0083008
--0.0081177
--0.0081482
--0.0080261
--0.0081177
--0.0081787
--0.0083313
--0.0082703
--0.0083618
--0.0085449
--0.0086365
--0.0089417
--0.0093079
--0.0093994
--0.009491
--0.0091858
--0.0092163
--0.0093384
--0.009613
--0.0099182
--0.01001
--0.0098877
--0.0096741
--0.0092468
--0.0090942
--0.0089722
--0.0088196
--0.0086365
--0.0086975
--0.0083618
--0.0083618
--0.0083008
--0.0084534
--0.0087585
--0.008728
--0.0087891
--0.0087585
--0.0085144
--0.0084229
--0.0083618
--0.0083618
--0.0082703
--0.0083313
--0.0081482
--0.0079956
--0.0076294
--0.0075378
--0.0076599
--0.0077209
--0.0079956
--0.0083008
--0.0082703
--0.0084534
--0.0085449
--0.0083618
--0.0084229
--0.0086365
--0.0087585
--0.0084839
--0.0082397
--0.0082092
--0.0082703
--0.0083923
--0.0084839
--0.0084534
--0.0085144
--0.0087891
--0.0090332
--0.0091858
--0.0090637
--0.0093994
--0.0092773
--0.0090637
--0.0090637
--0.0087891
--0.0084839
--0.0082703
--0.0082092
--0.0080261
--0.0079346
--0.0079956
--0.0079651
--0.007782
--0.0075378
--0.0072021
--0.0071411
--0.0068665
--0.0068665
--0.0071716
--0.0074463
--0.0076904
--0.0074158
--0.0072937
--0.0071716
--0.006958
--0.006897
--0.0068054
--0.0068665
--0.0069275
--0.0067749
--0.0066528
--0.0067444
--0.0068665
--0.0069885
--0.0072021
--0.0071411
--0.0073242
--0.0071716
--0.0071106
--0.0069885
--0.0069885
--0.0068359
--0.0065918
--0.0062866
--0.0062866
--0.0060425
--0.0057983
--0.0059814
--0.006073
--0.0063171
--0.0064392
--0.0066223
--0.0067444
--0.0065918
--0.0065308
--0.0062866
--0.0061646
--0.0061035
--0.0061951
--0.0063171
--0.0063782
--0.0062561
--0.006073
--0.0058289
--0.0055237
--0.0053711
--0.005127
--0.005188
--0.005127
--0.0050659
--0.005127
--0.0053101
--0.0053406
--0.0054626
--0.0055847
--0.0057678
--0.0055237
--0.0054016
--0.0054016
--0.0054016
--0.0053101
--0.0054932
--0.0057373
--0.0057373
--0.0059204
--0.0058594
--0.0059204
--0.0057068
--0.0055847
--0.0056458
--0.0058289
--0.0057068
--0.0057678
--0.0058289
--0.006012
--0.0061646
--0.0061035
--0.0061035
--0.0059204
--0.0057373
--0.0054321
--0.005249
--0.0049744
--0.0049744
--0.0048523
--0.0045471
--0.0042419
--0.004425
--0.0045471
--0.0046082
--0.004425
--0.0044861
--0.0045471
--0.004425
--0.004303
--0.0041809
--0.0041199
--0.0040588
--0.0038147
--0.0038757
--0.0038147
--0.0038147
--0.0037537
--0.0038757
--0.0040588
--0.0041199
--0.004303
--0.0044861
--0.0046082
--0.0044861
--0.0047302
--0.0045471
--0.004425
--0.0041809
--0.004303
--0.0042419
--0.004303
--0.0045471
--0.004425
--0.004364
--0.0042419
--0.0040588
--0.0042419
--0.0042419
--0.0045471
--0.0045471
--0.0045471
--0.004303
--0.0042419
--0.0040588
--0.0035706
--0.0035706
--0.0034485
--0.0032654
--0.0030518
--0.0028076
--0.0028076
--0.0027466
--0.0027466
--0.0029297
--0.0029907
--0.0029297
--0.0028381
--0.0027771
--0.002594
--0.002655
--0.0028992
--0.0029602
--0.0030823
--0.0031433
--0.0030823
--0.0027161
--0.002533
--0.0023499
--0.0020447
--0.0021057
--0.0021667
--0.002594
--0.0029602
--0.0029907
--0.0031738
--0.0031128
--0.0031738
--0.0032959
--0.0033569
--0.0031738
--0.0030518
--0.0029602
--0.0030212
--0.0030212
--0.0031433
--0.0028992
--0.002655
--0.002533
--0.0027771
--0.0028992
--0.0031433
--0.0032043
--0.0032654
--0.0032043
--0.0030823
--0.0032043
--0.0033264
--0.0034485
--0.0031433
--0.0032043
--0.0030823
--0.0032654
--0.0033264
--0.0033875
--0.0034485
--0.0032654
--0.0032654
--0.0031433
--0.0031433
--0.0027771
--0.0028381
--0.002655
--0.002594
--0.002594
--0.002533
--0.0028992
--0.0030823
--0.0032043
--0.0032654
--0.0033264
--0.0032654
--0.0032043
--0.0032043
--0.0031433
--0.0033875
--0.0040894
--0.0043335
--0.0040894
--0.0041504
--0.0039063
--0.0037842
--0.0037842
--0.0039673
--0.0039673
--0.0035706
--0.0035095
--0.0034485
--0.0030823
--0.0033264
--0.0035095
--0.0035706
--0.0035706
--0.0036621
--0.0036621
--0.0037231
--0.0035706
--0.0033264
--0.0033264
--0.0033264
--0.0030212
--0.0027771
--0.0028381
--0.0027771
--0.0027161
--0.0029602
--0.0028992
--0.0030212
--0.0032043
--0.0033264
--0.0032043
--0.0032654
--0.0033264
--0.0033264
--0.0032654
--0.0031433
--0.0030823
--0.0033264
--0.0035095
--0.0034485
--0.0038452
--0.0040894
--0.0044556
--0.0045776
--0.0043945
--0.0043335
--0.0043945
--0.0043945
--0.0046387
--0.0046997
--0.0048828
--0.0046387
--0.0046997
--0.0046997
--0.0044556
--0.0043335
--0.0043335
--0.0047607
--0.0045166
--0.0045166
--0.0040894
--0.0042114
--0.0042114
--0.0044556
--0.0045776
--0.0046387
--0.0044556
--0.0043335
--0.0043945
--0.0043945
--0.0042725
--0.0041504
--0.0037842
--0.0036316
--0.0036316
--0.0037231
--0.0040283
--0.0043335
--0.0046997
--0.0048218
--0.0050659
--0.0050659
--0.0048828
--0.0050659
--0.0048218
--0.0045776
--0.0045776
--0.0048218
--0.0050049
--0.0050659
--0.005188
--0.005188
--0.0050354
--0.0049744
--0.0050354
--0.0048523
--0.0049133
--0.0046692
--0.0046692
--0.0046082
--0.0047302
--0.0049133
--0.0047302
--0.0047302
--0.0045471
--0.004303
--0.0041809
--0.0042419
--0.004303
--0.004303
--0.0040588
--0.0038757
--0.0038757
--0.0039368
--0.0039368
--0.0041199
--0.0041809
--0.004425
--0.0045471
--0.0046692
--0.0050354
--0.0049744
--0.0050354
--0.0050049
--0.0050049
--0.0050049
--0.0048218
--0.0046997
--0.0047607
--0.0050049
--0.005188
--0.0056152
--0.0059204
--0.0062561
--0.0063782
--0.0063171
--0.006012
--0.006012
--0.0057983
--0.0054932
--0.005249
--0.005249
--0.0054321
--0.0061646
--0.0065002
--0.0068054
--0.0071106
--0.0071106
--0.0072632
--0.0075073
--0.007782
--0.0079041
--0.007843
--0.0075684
--0.0074463
--0.0075073
--0.0073547
--0.0074158
--0.0075684
--0.0072632
--0.0072021
--0.0071411
--0.0072937
--0.0073547
--0.0075073
--0.0076904
--0.0077515
--0.0073547
--0.0073547
--0.0073547
--0.0073853
--0.0072632
--0.0074768
--0.0075378
--0.0072327
--0.0067749
--0.0065918
--0.0064087
--0.0065002
--0.0067444
--0.0068054
--0.0068054
--0.007019
--0.0071411
--0.0071411
--0.0071106
--0.0071716
--0.0071411
--0.0072021
--0.0070801
--0.0072327
--0.0073547
--0.0072937
--0.0071411
--0.0071411
--0.0072937
--0.0071106
--0.0071106
--0.0072632
--0.0073853
--0.0074158
--0.0072937
--0.0068665
--0.0067139
--0.0065918
--0.0066528
--0.0066833
--0.0067444
--0.0069275
--0.006958
--0.007019
--0.0071411
--0.0071716
--0.0070496
--0.0070801
--0.006958
--0.006897
--0.0067444
--0.0068665
--0.0072327
--0.0073853
--0.0073853
--0.0075378
--0.0074768
--0.007782
--0.0078735
--0.0079041
--0.0082092
--0.0084229
--0.0083618
--0.0085449
--0.0085754
--0.0086975
--0.0087585
--0.0089111
--0.0089722
--0.0092468
--0.0093689
--0.0093384
--0.0093384
--0.0088196
--0.0085144
--0.0083313
--0.0080566
--0.0079956
--0.0082092
--0.0082703
--0.0082703
--0.0083008
--0.0084839
--0.0085144
--0.0085144
--0.0085144
--0.0084839
--0.0083618
--0.0081482
--0.007782
--0.0074768
--0.0073242
--0.0070801
--0.006897
--0.0068054
--0.0066833
--0.0063782
--0.006073
--0.0058289
--0.0056763
--0.0056763
--0.0054932
--0.0056763
--0.0059814
--0.0061035
--0.0057678
--0.0058289
--0.0063782
--0.0067444
--0.0069885
--0.0070801
--0.0074463
--0.0075989
--0.0073547
--0.0072327
--0.0075073
--0.0077515
--0.0077515
--0.0076599
--0.007782
--0.0081787
--0.0081177
--0.0084229
--0.0086365
--0.0086975
--0.008667
--0.0083618
--0.0082092
--0.0080261
--0.0077209
--0.0074463
--0.0072021
--0.0073242
--0.0071106
--0.0068054
--0.0066833
--0.0065308
--0.0063477
--0.0061035
--0.0059204
--0.0057068
--0.0056458
--0.0057068
--0.0058899
--0.0061646
--0.0064087
--0.0063477
--0.0061646
--0.0059509
--0.0056458
--0.0056458
--0.0057068
--0.0057983
--0.0058594
--0.0059814
--0.0060425
--0.006012
--0.0058899
--0.0059509
--0.0057678
--0.0055542
--0.0054321
--0.0053711
--0.0056763
--0.0059814
--0.0058899
--0.006012
--0.0058899
--0.0057068
--0.0057983
--0.0058594
--0.0059204
--0.0061035
--0.006073
--0.006134
--0.0063171
--0.0058899
--0.0056763
--0.0054321
--0.0050049
--0.0047607
--0.0044556
--0.0046997
--0.0048218
--0.0047302
--0.0048523
--0.0044861
--0.0045471
--0.0042419
--0.0038757
--0.0038147
--0.0036926
--0.0036926
--0.0036926
--0.0039978
--0.0038147
--0.0040588
--0.0042419
--0.0046692
--0.0050049
--0.0050049
--0.0049438
--0.0049438
--0.0050659
--0.0050049
--0.0050659
--0.0051575
--0.0053406
--0.0050354
--0.0049133
--0.0045471
--0.0042419
--0.0042419
--0.0042114
--0.0042114
--0.0041504
--0.0039673
--0.0040283
--0.0042725
--0.0042725
--0.0040588
--0.0037537
--0.0036926
--0.0034485
--0.0032654
--0.0032654
--0.0033875
--0.0033264
--0.0034485
--0.0033875
--0.0033875
--0.0035095
--0.0033875
--0.0034485
--0.0034485
--0.0033264
--0.0032043
--0.0029602
--0.0030212
--0.0032043
--0.0035095
--0.0033264
--0.0032043
--0.0032654
--0.0032043
--0.0032654
--0.0031433
--0.0032654
--0.0031433
--0.0029602
--0.0029602
--0.0029602
--0.0030212
--0.0032043
--0.0030823
--0.0028381
--0.0030212
--0.0028381
--0.0030823
--0.0032043
--0.0030823
--0.0028992
--0.0023804
--0.0019531
--0.0018921
--0.0019531
--0.0018311
--0.00177
--0.001709
--0.00177
--0.0017395
--0.0018005
--0.0017395
--0.0016785
--0.0015564
--0.0016174
--0.0016785
--0.0018616
--0.0018616
--0.0017395
--0.0015564
--0.0016174
--0.0013733
--0.0014954
--0.0016174
--0.0015564
--0.0016785
--0.0018005
--0.0017395
--0.0017395
--0.0016174
--0.0016174
--0.0018616
--0.0019226
--0.0021057
--0.0021057
--0.0022278
--0.0021057
--0.0019226
--0.0016174
--0.0014343
--0.0013733
--0.0013123
--0.0010681
--0.0012512
--0.0012512
--0.0015259
--0.0016479
--0.0018921
--0.0020752
--0.0022583
--0.0020142
--0.0020142
--0.001709
--0.0016785
--0.0015564
--0.0012512
--0.0011292
--0.0011902
--0.0012512
--0.0012207
--0.0014648
--0.001709
--0.001709
--0.0013428
--0.0012512
--0.0011902
--0.0012512
--0.0013123
--0.0011902
--0.0010986
--0.0010376
--0.0012817
--0.0012207
--0.0011292
--0.00094604
--0.00064087
--0.0007019
--0.0011597
--0.0014038
--0.001709
--0.0019531
--0.0020752
--0.0022583
--0.0022888
--0.0022888
--0.0022278
--0.0017395
--0.0018005
--0.0018616
--0.0019836
--0.0021667
--0.0023499
--0.002533
--0.0024109
--0.0027161
--0.002655
--0.0027161
--0.0027161
--0.002533
--0.0024109
--0.0022278
--0.0024109
--0.0022888
--0.0023499
--0.0023499
--0.0027771
--0.002533
--0.002655
--0.0027161
--0.0023499
--0.0019226
--0.0018005
--0.0016174
--0.0016174
--0.0017395
--0.0016785
--0.0018616
--0.0019226
--0.0018616
--0.0017395
--0.0016174
--0.0015564
--0.0016174
--0.0017395
--0.0019226
--0.0016785
--0.0016174
--0.0015869
--0.0016479
--0.0015869
--0.001709
--0.0021362
--0.0024414
--0.0027466
--0.0027771
--0.0029907
--0.0028381
--0.002533
--0.0022888
--0.0022278
--0.0022278
--0.0023499
--0.0024719
--0.002655
--0.0027771
--0.0027771
--0.0028992
--0.002594
--0.002594
--0.0024109
--0.0023499
--0.0024109
--0.002594
--0.0028381
--0.0031128
--0.00354
--0.0036011
--0.00354
--0.00354
--0.0031128
--0.0029907
--0.0028992
--0.0028381
--0.0027771
--0.0028992
--0.0030518
--0.0028992
--0.0031128
--0.0032349
--0.0036011
--0.0037231
--0.0036621
--0.0036011
--0.003418
--0.0033569
--0.00354
--0.0037231
--0.0039063
--0.0040283
--0.0037842
--0.0036011
--0.00354
--0.00354
--0.0036011
--0.0038452
--0.0041504
--0.0042114
--0.0041504
--0.0042114
--0.0043945
--0.0045166
--0.0045776
--0.0042725
--0.0039673
--0.0040283
--0.0038452
--0.0040894
--0.0040283
--0.0040283
--0.0039673
--0.0038452
--0.0037231
--0.0040283
--0.0042114
--0.0036011
--0.0039673
--0.0039673
--0.0036621
--0.0036011
--0.003418
--0.003479
--0.0033569
--0.0030518
--0.0031128
--0.0036011
--0.003418
--0.0037231
--0.0037842
--0.0037842
--0.0037842
--0.0040894
--0.0042114
--0.0045776
--0.0046997
--0.0050049
--0.0050354
--0.0051575
--0.0055237
--0.0055237
--0.0057068
--0.0057373
--0.0057983
--0.0057373
--0.0056458
--0.0053406
--0.0052185
--0.0051575
--0.0052185
--0.0054016
--0.0054016
--0.0051575
--0.0054932
--0.0053711
--0.0050049
--0.005188
--0.0050659
--0.0054016
--0.0056458
--0.0052795
--0.0055237
--0.0056458
--0.0053101
--0.0050659
--0.0046997
--0.0043335
--0.0039673
--0.0037231
--0.0040283
--0.0045166
--0.0045776
--0.0045776
--0.004364
--0.0045471
--0.0047302
--0.0045471
--0.0038757
--0.0021667
--0.0013123
--0.0040588
--0.006012
--0.0056458
--0.0063171
--0.007019
--0.0068359
--0.0067444
--0.0065613
--0.0070496
--0.0072632
--0.0073242
--0.0058289
--0.0050964
--0.0053406
--0.0052185
--0.0047302
--0.0049133
--0.0047607
--0.005127
--0.0054321
--0.0054932
--0.0061646
--0.0067749
--0.0067749
--0.0067444
--0.0065002
--0.006134
--0.0062561
--0.0065613
--0.0061646
--0.0054321
--0.0053101
--0.0057983
--0.0053711
--0.0048828
--0.0045166
--0.0046387
--0.005188
--0.0042725
--0.0037842
--0.0048218
--0.005249
--0.0056152
--0.0066833
--0.0067444
--0.0063171
--0.0061951
--0.0058289
--0.0057068
--0.0064697
--0.0058594
--0.005188
--0.0053711
--0.0043945
--0.0037231
--0.0040283
--0.0048218
--0.0053101
--0.0054321
--0.0056763
--0.0054626
--0.0057678
--0.006012
--0.0074768
--0.0084534
--0.006958
--0.0062256
--0.0074463
--0.0075989
--0.0061951
--0.0058289
--0.0066833
--0.0068665
--0.0054016
--0.0050659
--0.0071411
--0.0073853
--0.0062866
--0.0070496
--0.0071716
--0.0061951
--0.0052185
--0.0055847
--0.0060425
--0.0060425
--0.0048828
--0.0031128
--0.0029297
--0.0039063
--0.0046387
--0.0061035
--0.0078125
--0.0074768
--0.0066833
--0.0059509
--0.0011902
-0.0061646
-0.0019836
--0.0035095
--0.0011292
--0.0054016
--0.0099792
--0.0084839
--0.008728
--0.010773
--0.011261
--0.011108
--0.012634
--0.011627
--0.009552
--0.0082397
--0.006958
--0.005188
--0.00177
-0.0028381
-0.0093994
-0.0099792
-0.005188
-0.0032043
-0.0022278
--0.00097656
--0.0068054
--0.0099792
--0.0081482
--0.010132
--0.015656
--0.016724
--0.014618
--0.012451
--0.01001
--0.0071716
--0.0054626
--0.0024719
-0.00097656
-0.0014648
-0.0016174
-0.0042725
-0.0048218
-0.0021667
-0.00015259
-6.1035e-005
--0.00097656
--0.0048218
--0.007019
--0.0071411
--0.0098572
--0.012817
--0.010437
--0.009491
--0.009552
--0.0036926
--0.0010071
--0.0030823
--0.0045471
--0.0049133
--0.0037537
--0.0029602
--0.0027771
--0.002655
--0.00012207
--0.0014648
--0.0046997
--0.0045166
--0.0068359
--0.0036011
-0.00042725
--0.00354
--0.0059204
--0.0045776
--0.0060425
-0.0019836
-0.0070801
--0.00067139
-0.00027466
-0.0056458
-0.0019531
--0.0066528
--0.0072632
--0.0024414
--0.0021973
--0.012238
--0.013519
--0.0062866
--0.0059814
--0.0094604
--0.0075378
--0.00012207
--0.0029907
--0.0065002
--0.0019531
-0.0011597
-0.00045776
-0.0014343
-0.00354
-0.0022888
-0.0062561
-0.012054
-0.011505
-0.011353
-0.0068054
-0.0042725
-0.0068054
-0.0014038
--0.0063782
--0.010345
--0.0092773
--0.010193
--0.017517
--0.019012
--0.016785
--0.018158
--0.015991
--0.014862
--0.0082092
-0.0018616
--0.00045776
-0.0048218
-0.014954
-0.011169
-0.0090027
-0.0088501
-0.0057678
-0.00085449
--0.0080261
--0.0082703
--0.0094604
--0.016266
--0.01178
--0.012207
--0.0029907
-0.009613
--0.00048828
-0.0029907
-0.0085449
-0.0053711
-0.0039368
-0.0029297
-0.0019531
--0.0046387
--9.1553e-005
--0.0038452
--0.010742
--0.0059509
--0.0074158
--0.0037537
--0.0082092
--0.017426
--0.013245
--0.0098877
--0.0056763
-0.0010376
-0.0073547
-0.010101
-0.0062561
-0.0040894
-0.0023499
--0.0079956
--0.0083923
--0.00036621
--0.0045776
--0.0068054
--0.0033264
--0.0059509
--0.007782
--0.003479
-0.0018005
--0.00033569
--0.004303
--0.0032043
--0.00082397
-0.0029907
-0.002594
-0.00039673
-0.0029602
--0.0072937
--0.011658
--0.0027466
--0.0039673
--0.0042114
--0.0025635
--0.0010071
-0.0016785
--0.0027771
--0.0031433
-0.0021362
-0.0022583
-0.0040588
-0.0045776
--0.0011597
--0.0020142
-0.00036621
-0.0033264
-0.0014038
--0.0016479
-0.0040894
-0.0051575
-0.0014038
--0.00036621
--0.0012817
-0.0027771
-0.0040894
--0.00048828
--0.0060425
--0.0082092
--0.0044861
--0.002655
--0.0063171
--0.0040588
--0.0028381
--0.0063782
--0.0078735
--0.0054321
-0.0005188
--0.00021362
--0.0019836
-0.0043335
-0.0032654
--0.0016785
--0.0011292
-0.0013123
-0.001709
-0.00012207
--0.00015259
--0.0021057
--0.0080566
--0.0076294
--0.0047607
--0.0057983
--0.0079651
--0.0049744
--0.0022888
--0.0041809
--0.004303
--0.0014038
-0.0028687
-0.0032043
-0.0010681
-0.0032349
-0.0019531
--0.0041504
--0.0030212
--0.00039673
--0.00039673
--0.0030212
--0.0052185
--0.0027161
--0.0015869
--0.0045471
--0.0031433
-0.00030518
-0.0022583
-0.00021362
--0.0014954
-0.0031738
-0.0055847
-0.0019226
-0.00021362
-0.0026245
-6.1035e-005
--0.0040894
--0.0045776
--0.0061035
--0.008667
--0.006012
--0.0028992
--0.0021973
--0.0015259
--0.001709
--0.00048828
-0.0024109
-0.0029297
-0.0063171
-0.0073853
-0.0022583
-0.0014954
-0.0012512
--0.0020142
--0.0026245
--0.0014648
--0.00036621
--0.0022888
--0.0059814
--0.0057983
--0.0030518
--0.0027466
--0.003479
--0.00015259
-0.00082397
--0.002655
--0.0011597
-0.0022583
-0.004425
-0.003479
-0.0017395
-0.0041199
-0.0044556
-0.00057983
--0.0024719
--0.0039673
--0.0037842
--0.0055542
--0.0068359
--0.0064087
--0.0086365
--0.0079651
--0.0051575
--0.0046082
--0.0010071
-0.0019531
-0.0032654
-0.0027161
-0.0032959
-0.0054016
-0.0026855
-0.0013428
--0.00021362
--0.0040283
--0.0064087
--0.0087891
--0.0072021
--0.0061951
--0.007843
--0.006073
--0.0057068
--0.006073
--0.00076294
-0.0046387
-0.0039978
-0.0041504
-0.0074158
-0.0054932
-0.0031738
-0.0036316
-0.0039063
-
--0.0064697
--0.0093079
--0.0083923
--0.010193
--0.010529
--0.0065002
--0.0041199
--0.0040894
--0.0031433
--0.0015564
-9.1553e-005
-0.00076294
-0.0040894
-0.0084534
-0.005249
--0.0016479
--0.0019531
--0.00045776
--0.0027161
--0.0053711
--0.0056763
--0.006958
--0.012787
--0.011597
--0.0046387
--0.0027466
--0.0027466
--0.00054932
-0.00064087
--0.0010681
--0.0010071
-0.0021973
-0.0038757
-0.0027771
--0.00015259
--0.004303
--0.0066223
--0.0052185
--0.0018005
--0.00015259
--0.0020447
--0.0054626
--0.007782
--0.0053101
-0.0005188
-0.0014954
--0.00015259
-
--0.00024414
--0.0029297
-0.00042725
-0.0048523
-0.0029907
-6.1035e-005
--0.0014038
--0.005188
--0.011383
--0.012665
--0.0065918
--0.0079956
--0.011566
--0.0067444
--0.006958
--0.0087891
--0.0026245
-0.0023804
-0.0029602
--0.00015259
-0.00015259
-0.0021362
-0.00024414
-0.00033569
-0.00021362
--0.0059509
--0.010376
--0.010193
--0.011383
--0.01239
--0.011139
--0.01297
--0.011536
--0.0020752
-0.0033569
-0.0022278
-0.0015564
-0.0032349
-0.0028381
-0.0024109
-0.0063477
-0.0066223
-0.0030518
--0.0023804
--0.012543
--0.019653
--0.014191
--0.011414
--0.016998
--0.016907
--0.014191
--0.013855
--0.0092468
--0.00091553
-0.0077209
-0.011047
-0.010559
-0.0067444
-0.0049744
-0.0098267
-0.0093994
-0.0015869
--0.0090332
--0.013397
--0.011108
--0.013947
--0.013123
--0.0097046
--0.013397
--0.012878
--0.0081787
--0.0063171
--0.0027771
-0.0015259
-0.0014038
--0.0013123
-0.0011902
-0.0031433
-0.0013428
-0.00079346
--0.0015259
--0.0063477
--0.007019
--0.00354
--0.0032959
--0.0075378
--0.011505
--0.013489
--0.014496
--0.0091553
--0.0048218
--0.0066528
--0.0062256
--0.0054321
--0.0085754
--0.0047913
-0.0047607
-0.0082703
-0.0084534
-0.0091553
-0.0040894
--0.0042114
--0.0033569
-0.0024109
-0.00076294
--0.0065002
--0.012512
--0.014557
--0.010925
--0.0076904
--0.0099182
--0.011627
--0.010437
--0.012115
--0.013275
--0.0071411
--0.00033569
--0.00064087
--0.0032043
--0.00057983
-0.0036621
-0.0061951
-0.0070801
-0.0072327
-0.00354
--0.0024414
--0.009613
--0.015442
--0.016815
--0.01886
--0.019958
--0.017792
--0.014526
--0.014099
--0.011749
--0.0057068
--0.0053406
--0.0030823
-0.0079346
-0.012848
-0.0076294
-0.0031433
--0.0013733
--0.0059509
--0.00024414
-0.0042725
--0.0072021
--0.01889
--0.014709
--0.018341
--0.026276
--0.016479
--0.010651
--0.016602
--0.013153
-0.00012207
-0.0079041
-0.011108
-0.012329
-0.0069275
-0.0012207
-
-0.00039673
-0.002533
--0.004425
--0.014282
--0.014923
--0.021179
--0.030426
--0.023865
--0.0039063
-0.0031738
--0.0039063
--0.0050659
--0.0085449
--0.013885
--0.0065002
-0.012299
-0.022919
-0.014008
-0.0031128
-0.0012207
--0.0011597
--0.0029602
--0.00033569
--0.0035095
--0.011658
--0.016632
--0.017395
--0.017426
--0.020721
--0.020996
--0.011932
--0.0086975
--0.0063171
--0.00088501
--0.0011292
--0.0012817
--0.0026855
--0.00079346
-0.002533
--0.0021057
--0.0082092
--0.0042725
--0.0036011
--0.0084229
--0.0061035
--0.0054321
--0.019287
--0.024872
--0.012512
--0.0047607
--0.011444
--0.012207
--0.010376
--0.014923
--0.0065002
-0.0081787
-0.010101
-0.0090942
-0.0056458
--0.0071716
--0.014648
--0.0089722
-0.0014648
-0.0039978
--0.0053406
--0.0099487
--0.011353
--0.013458
--0.0019836
-0.0054321
--0.0056763
--0.018341
--0.01593
--0.0112
--0.0046082
-0.006897
--0.0030518
--0.016876
--0.0050354
-0.012817
-0.015991
-0.0057678
--0.004303
--0.012604
--0.020477
--0.0177
--0.0037231
-0.010468
-0.01059
--0.010193
--0.028809
--0.023193
--0.0062866
--0.001709
--0.0058594
--0.0045776
--0.003418
--0.0097046
--0.015472
--0.0072632
-0.0038147
--0.0081177
--0.019135
--0.0032654
-0.0036011
--0.0066528
--0.0049744
--0.0026855
--0.0054626
--0.0047913
--6.1035e-005
-0.0029907
-0.0028992
-0.00094604
--0.0069885
--0.016113
--0.013397
--0.0052795
--0.0057678
--0.0056458
--0.0086365
--0.01355
--0.0059509
-0.0029907
-0.0062561
-0.0072632
-0.0035706
--0.006134
--0.0095215
--0.0062256
--0.0023193
-0.0038757
-0.0042114
--0.0080261
--0.021301
--0.022888
--0.010223
--0.00012207
--0.0015869
-0.001709
--0.0032959
--0.017181
--0.0083313
-0.0070801
-0.006012
-0.0056152
-0.010223
-0.0056152
--0.0066528
--0.0040283
-0.0090027
-0.0043945
--0.018768
--0.021759
--0.0069275
--0.01001
--0.0112
--0.0035095
--0.006073
--0.011658
--0.013031
--0.0023193
-0.0065613
-0.0038147
-0.0014648
--0.0019531
--0.0076904
--0.0059509
-0.00048828
-0.0019531
--0.0042114
--0.0057983
-0.0007019
-0.0054321
-0.0012207
--0.0092163
--0.013153
--0.0098267
--0.010193
--0.014496
--0.0076904
--3.0518e-005
--0.0072021
--0.0032349
-0.010498
-0.0099182
-0.0059204
--0.012054
--0.024963
--0.012665
--0.0036316
--0.0011902
-0.0016479
-0.0069885
-0.0048523
--0.0042419
--0.002533
--0.0031128
--0.0077209
-0.0077515
-0.017639
-0.0035706
--0.0065613
--0.012268
--0.020538
--0.017029
--0.0033569
--0.00048828
-0.0063171
-0.012299
--0.0046082
--0.020905
--0.017761
--0.0082397
-0.0048218
-0.013855
-0.006134
--0.0050354
--0.0071716
--0.0028381
--0.0085754
--0.011719
--0.0012817
--0.0039673
--0.014496
--0.013733
--0.0016174
-0.005127
-0.0044556
-0.0019836
--0.0088196
--0.010925
-0.0035706
-0.00088501
--0.011841
--0.0021057
-0.0084229
--0.0023804
--0.014984
--0.0028992
-0.0025024
--0.017059
--0.021576
--0.01001
--0.0065308
-0.0016785
-0.01178
-0.0082703
--0.0007019
-0.00048828
-0.010162
-0.014618
-0.016388
-0.0071411
--0.015167
--0.024567
--0.015167
--0.0021057
-0.0041809
-0.0090027
-0.0033875
--0.01593
--0.01712
--0.0058289
--0.0032654
-0.011139
-0.023651
-0.0033569
--0.016205
--0.016663
--0.0098267
--0.0066223
--0.0091248
--0.011475
--0.01062
--0.0037231
--0.0022583
-0.0014648
-0.0029602
--0.0014954
-0.0011597
-0.009552
-0.0020752
--0.0076599
--0.0023193
--0.0072937
--0.016907
--0.013733
--0.015228
--0.015259
-0.0045471
-0.00033569
--0.027985
--0.02002
-0.0019531
--0.0058594
--0.012024
--0.00091553
--0.0043945
--0.0098572
-0.0060425
-0.013367
--0.0058594
--0.010895
-0.0021973
--0.0039063
-0.0007019
-0.016113
--0.0005188
--0.024628
--0.027618
-0.002594
-0.031281
-0.010437
--0.020477
--0.018738
--0.0076599
--0.0028381
-0.0018311
-0.00073242
--0.0046997
--0.014832
--0.010956
-0.010864
-0.01123
-0.0033264
--0.0024109
--0.020325
--0.026978
--0.0075989
-0.010284
-0.0028381
--0.0072327
--0.0085754
--0.01178
--0.0224
--0.018402
--0.0055237
--0.00076294
--0.0046082
--0.0038757
-0.0073853
-0.0073547
-0.0023804
-0.0007019
--0.0091553
--0.0045166
-0.0029602
--0.012939
--0.024353
--0.024109
--0.015594
--0.0080261
--0.0045471
-0.010681
-0.0081482
--0.022705
--0.020996
-0.01355
-0.014038
-0.00042725
-0.0005188
--0.01178
--0.014374
--0.0045471
--0.00067139
-0.00042725
--0.0089722
--0.015778
--0.0096436
--0.014069
--0.019653
--0.0091553
-0.0057068
-0.0090942
-0.0077209
--0.0040588
--0.022919
--0.013489
-0.0047913
--0.012238
--0.030029
--0.02182
--0.01123
--0.00018311
-0.006134
--0.010223
--0.026276
--0.0011902
-0.014618
--0.014832
--0.020325
-0.0075378
--0.0019531
--0.025696
--0.0079041
-0.0086975
--0.010376
--0.01828
--0.0029602
--0.0007019
-0.00094604
-0.0053711
--0.011505
--0.025146
--0.017578
--0.0040894
-0.0017395
-0.005249
--0.010834
--0.032715
--0.02359
-0.0035706
-0.012543
-0.0028076
--0.010345
--0.019592
--0.027985
--0.032684
--0.004303
-0.025482
-0.013885
--0.009613
--0.013306
--0.0031128
-0.0015259
--0.00354
--0.011292
--0.012543
--0.016724
--0.018066
-0.0071106
-0.018799
--0.0082703
--0.023468
--0.026154
--0.035278
--0.0093384
-0.016541
-0.0011597
--0.0083008
--0.0028687
--0.012665
--0.021759
--0.0090637
-0.012878
-0.0081177
--0.020325
--0.0083008
-0.013641
--0.019897
--0.038086
--0.012817
--0.0013428
--0.00061035
--0.005249
--0.027832
--0.02771
--0.0071716
-0.00085449
-0.016907
-0.03006
--0.00094604
--0.044342
--0.044983
--0.011688
-0.014618
-0.019867
-0.0080566
--0.014679
--0.034424
--0.041107
--0.022552
-0.0069275
-0.010376
--0.0026245
--0.011505
--0.0069885
--0.0050354
--0.026154
--0.038025
--0.009491
-0.016083
-0.0022583
--0.0092773
-0.00048828
--0.0036621
--0.022339
--0.015656
-0.0015259
--0.0054321
--0.0074463
-0.009552
--0.0074158
--0.042511
--0.030487
-0.00064087
-0.00067139
-0.0010376
-0.023468
-0.0078125
--0.034821
--0.040466
--0.029297
--0.0083313
-0.013519
-0.015289
-0.00015259
--0.019104
--0.023193
--0.017731
--0.0087891
-0.0021667
--0.0058289
--0.01123
--0.0044556
--0.017059
--0.023346
--0.0088806
--0.0022888
--0.0093384
--0.013428
--0.01474
--0.020905
--0.017883
--0.005188
-0.012604
-0.013519
--0.0041199
--0.015259
--0.03009
--0.027588
--0.0036011
-0.0058594
-0.0048523
--0.0091248
--0.024384
--0.010315
--0.0016174
--0.016632
--0.009491
-0.010864
-0.0075378
--0.004303
--0.0095825
--0.0076294
-0.00079346
-0.0035095
--0.010803
--0.031189
--0.022949
-0.0027161
-0.011597
--0.0045776
--0.020355
--0.020538
--0.020203
--0.0083313
-0.0040894
--0.0016479
--0.011505
--0.0029602
--0.0039978
--0.02002
--0.0052185
-0.0036621
--0.0058594
--0.0086975
--0.019775
--0.012787
--0.0030212
--0.0010376
-0.0041809
-0.0018616
--0.0082703
--0.023346
--0.036316
--0.023193
-0.014526
-0.019165
--0.006897
--0.011902
--0.009552
--0.012482
--0.013428
--0.019653
--0.011597
-0.0033569
--0.00064087
--0.0012512
--0.0066223
--0.025116
--0.029266
--0.021454
--0.004425
-0.026001
-0.019165
--0.0071411
--0.0087891
--0.017975
--0.02243
-0.0061035
-0.020081
-0.0017395
--0.010071
--0.02005
--0.027679
--0.009552
-0.01767
-0.015076
--0.018768
--0.03894
--0.023132
--0.0078735
--0.0023804
-0.025177
-0.025696
--0.0036621
--0.020691
--0.020172
--0.0012512
--0.0093079
--0.018158
-0.0025024
--0.00054932
--0.0083008
--0.011047
--0.034454
--0.036011
-0.0024414
-0.016052
--0.010376
-0.0029907
-0.031067
-0.013031
--0.012787
--0.015259
--0.0046387
-0.0032654
--0.012878
--0.013336
-0.0088501
--0.012085
--0.035309
--0.014832
--0.0053101
--0.012787
--0.0050354
-0.0099487
-0.014893
-0.0066223
--0.014893
--0.018524
-0.00021362
--0.0021973
--0.00067139
--0.010651
--0.027313
--0.0074158
--0.0039978
--0.014282
--0.0028687
-0.0028381
--0.010742
--0.015961
-0.0012207
--0.0025635
--0.0054321
-0.01709
-0.016479
--0.0053711
--0.0056152
-0.0016479
--0.0084839
--0.018677
--0.010498
--0.0026855
--0.0083008
--0.0065002
-0.0096741
-0.0082397
--0.025024
--0.042633
--0.010681
-0.020081
-0.01944
-0.02597
-0.01828
--0.022095
--0.020203
-0.0048523
-0.012238
-0.027649
-0.010681
--0.024475
--0.030975
--0.025116
--0.0089417
-0.006897
--0.00079346
--0.020233
--0.021606
--0.01413
-0.0021667
-0.020813
-0.02124
-0.020782
-0.013184
--0.02182
--0.024139
-0.010376
-0.011841
--0.0027466
--0.014191
--0.033813
--0.030212
--0.0026855
--0.0014648
--0.023895
--0.0080566
-0.029755
-0.022095
--0.012421
--0.007782
-0.0050049
--0.003479
-0.0066223
-0.010437
--0.0067139
-0.0014954
-0.0033264
--0.03244
--0.030884
-0.018188
-0.028351
--0.01358
--0.029297
--0.0013428
-0.0080566
--0.0032349
--0.0045776
-0.0039368
-0.0022278
--0.006073
-0.0067139
-0.021149
--0.0027161
--0.038544
--0.035583
--0.010376
-0.015869
-0.027679
-0.0092773
--0.010681
--0.031952
--0.037903
--0.0014954
-0.033386
-0.027863
--0.014954
--0.052063
--0.039795
-0.01001
-0.042969
-0.027496
--0.0041199
--0.019592
--0.024719
--0.011749
-0.014313
-0.031677
-0.0097656
--0.036591
--0.04245
--0.0040588
-0.010437
--0.00088501
-0.0076904
-0.00030518
--0.021698
--0.0058899
-0.017242
-0.0094604
--0.0088501
--0.019287
--0.0076904
-0.0087585
-0.0013428
--0.0069885
--0.012909
--0.018951
-0.0067139
-0.012695
--0.010712
--0.0062561
-0.0018921
--0.021179
--0.013702
-0.029419
-0.019684
--0.017548
--0.01532
-0.0061951
-0.013397
--0.00064087
--0.01532
--0.021942
--0.014618
-0.0029297
-0.0097961
-0.0079956
-0.0005188
--0.023102
--0.024261
-0.0039063
-0.014832
-0.0052795
-0.0034485
--0.00033569
--0.026154
--0.031891
--0.00039673
-0.013977
-0.020966
-0.017303
--0.024506
--0.052246
--0.02948
-0.012451
-0.020386
-0.00067139
--0.0066528
--0.014618
--0.016479
-0.015564
-0.019775
--0.015106
--0.030792
--0.0012512
-0.029175
-0.0054626
--0.026459
--0.021027
--0.010742
--0.0042114
-0.007019
--0.004364
--0.028778
--0.020386
-0.0058289
-0.0039673
--0.0029297
-0.017395
-0.017029
--0.029205
--0.036011
-0.01712
-0.022186
--0.0097961
--0.00021362
--0.0078125
--0.035492
--0.020386
-0.0013733
--0.0019836
-0.0005188
-0.013824
-0.012146
--0.0075684
--0.024719
--0.0046997
-0.002655
--0.0049744
-0.019989
-0.015839
--0.016724
--0.0069885
-0.0014648
--0.028015
--0.027863
-0.01181
-0.0053101
--0.020874
--0.0039063
-0.01123
--0.0024414
--0.0086975
-0.0045776
-0.00042725
--0.0088501
-0.0079651
-0.013214
--0.0028992
--0.0042419
--0.0080566
--0.027161
--0.031281
--0.0071716
-0.011292
--3.0518e-005
--0.026642
--0.047577
--0.021759
-0.029846
-0.028442
--0.0026245
--0.0054932
--0.0112
--0.030731
--0.0037537
-0.031921
-0.024933
-0.0073853
--0.01712
--0.030701
--0.024994
--0.030029
--0.010315
-0.015747
--0.010345
--0.024384
-0.0023193
--0.0078125
--0.028839
-0.00085449
-0.011078
--0.0042419
-0.011505
-0.012024
--0.0076904
--0.015961
--0.013062
--0.0044556
--0.0079956
-0.0058899
-0.017365
--0.023315
--0.044983
--0.015778
-0.0024719
-0.0037842
-0.0041809
--0.016357
--0.023987
--0.0054321
--0.0054932
--0.016815
-0.0014343
-0.025574
-0.022491
--0.0030212
--0.019714
--0.01947
--0.024261
--0.0076294
-0.0011902
--0.024445
--0.029785
--0.014313
--0.0038147
--0.0029602
--0.013336
--0.018951
--0.0067444
-0.023499
-0.027802
--0.0045471
--0.011719
--0.0059204
--0.018951
--0.012451
-0.009613
--0.0083923
--0.029816
--0.0098877
--0.011475
--0.018616
--0.0012512
-0.00088501
--0.0065002
-0.0013733
-0.00012207
--0.02301
--0.029602
--0.0088806
--0.0041199
-0.0021362
-0.026886
-0.0083008
--0.029175
--0.037689
--0.037781
--0.020752
-0.020477
-0.035034
--0.0031128
--0.038483
--0.040039
--0.03949
--0.028748
-0.022888
-0.054871
--0.0041504
--0.034943
-0.01828
-0.0093384
--0.048035
--0.034241
-0.010773
-0.015594
-0.0075684
--0.0090942
--0.027374
--0.030914
--0.032471
--0.0096436
-0.021484
-0.021271
-0.0089722
--0.014008
--0.031616
--0.024963
--0.008606
-0.017517
-0.032928
-0.0072021
--0.041351
--0.044464
--0.0070496
-0.0011292
--0.013794
--0.014404
--0.0067444
--0.010468
--0.020905
--0.0034485
-0.021851
--0.0013428
--0.020691
--0.015167
--0.0032654
-0.024231
-0.011566
--0.027252
--0.027313
--0.020874
--0.024292
--0.0099182
-0.0076904
--0.014069
--0.034454
--0.010132
-0.0077209
--0.0031433
--0.0010681
-0.0073853
--0.0021667
--0.014801
--0.019287
--0.018097
-0.0076904
-0.0042419
--0.036011
--0.022888
--0.0036621
--0.013489
--0.0027466
--0.0039673
--0.018829
--0.0028381
-0.019623
-0.01355
--0.0095825
--0.013214
--0.010773
--0.016968
--0.0061035
-0.0091248
--0.0063171
--0.034241
--0.025879
--0.0048828
-0.0033264
-0.011536
--0.00057983
--0.031921
--0.035858
--0.006073
-0.01712
-0.0065308
--0.016815
--0.025726
--0.018005
-0.0159
-0.025146
--0.012024
--0.033966
--0.032227
--0.011353
-0.001709
-0.0024109
-0.01474
-0.0017395
--0.057617
--0.060516
-0.030212
-0.063751
-0.0053711
--0.014374
--0.024994
--0.068024
--0.026825
-0.065094
-0.066528
--0.010498
--0.071808
--0.062073
--0.0078125
-0.042786
-0.043396
--0.0057373
--0.036407
--0.041565
--0.018707
-0.04483
-0.045227
--0.030365
--0.050385
-0.00039673
-0.01712
--0.01593
--0.015472
--0.010223
--0.031921
--0.0075684
-0.026825
-3.0518e-005
--0.013519
-0.006134
--0.021179
--0.039032
-0.015533
-0.029724
--0.0224
--0.01236
-0.014862
--0.017456
--0.012543
-0.014252
--0.011414
--0.034454
--0.025269
-0.0027466
-0.024689
-0.0092773
--0.024658
--0.030579
--0.013092
-0.0074463
-0.021576
-0.013885
--0.0078735
--0.022766
--0.038727
--0.024017
-0.021667
-0.043091
-0.014648
--0.048401
--0.059296
--0.01123
-0.020508
-0.034973
-0.019104
--0.019684
--0.035461
--0.0085449
-0.022278
--0.0005188
--0.036621
--0.014191
-0.016022
-0.008606
-0.0046082
-0.0073853
--0.026367
--0.069885
--0.034454
-0.046631
-0.038574
-0.00085449
-0.0068054
--0.028107
--0.065094
--0.016113
-0.046844
-0.032532
--0.020538
--0.030884
--0.0075073
--0.0044556
--0.0079346
-0.0022583
-0.022369
-0.014374
--0.031433
--0.026062
-0.031555
-0.03299
--0.022552
--0.0448
--0.0030518
-0.022522
-0.004364
--0.0047913
--0.0093689
--0.0021667
-0.01944
--0.015015
--0.047791
-0.0061951
-0.030701
--0.018341
--0.022675
-0.010071
-0.0010681
--0.01239
-0.011078
-0.019409
--0.0083923
--0.020569
--0.019073
--0.020721
-0.018768
-0.045105
--0.011383
--0.041077
--0.0066223
--0.0014038
--0.0059509
-0.0038452
-0.009552
-0.0048218
--0.014069
-0.0031738
-0.0097961
--0.029694
--0.0090637
-0.039764
-0.0021667
--0.035736
--0.013184
-0.024963
-0.008728
--0.042786
--0.0075073
-0.03244
--0.0099792
--0.021454
-0.0043945
-0.017883
--0.0026245
--0.024719
--0.00088501
-0.013184
--0.010254
--0.0090637
-0.015594
-0.013641
-0.0093994
-0.0032043
--0.026825
--0.018433
--0.0018921
--0.0028076
-0.006073
--0.00033569
--0.016357
--0.017487
--0.014343
--0.0011292
-0.025543
-0.019165
--0.017212
--0.01651
-0.0098572
-0.003479
--0.011871
-0.012054
-0.017731
--0.016449
--0.025146
--0.011078
-0.0076904
-0.021149
-0.015045
--0.013489
--0.039429
--0.025604
-0.019379
-0.033203
-0.011658
--0.0088501
--0.019226
--0.025696
--0.0079346
-0.025177
-0.028625
-0.0076599
--0.009491
--0.023529
--0.020599
-0.005188
-0.010376
--0.009491
--0.0080872
-0.0013733
-0.0014038
--0.012604
--0.02121
-0.0082703
-0.0082397
--0.0043335
-0.023804
-0.01004
--0.022583
-6.1035e-005
--0.0093994
--0.02652
-0.019165
-0.025757
--0.022125
--0.019684
--0.01178
--0.037201
--0.002533
-0.066711
-0.03241
--0.057404
--0.040863
-0.03009
-0.017944
--0.003418
-0.022125
--0.0049744
--0.044464
--0.0075989
-0.025604
--0.0024109
--0.0039978
-0.0068359
--0.037079
--0.028595
-0.048462
-0.0401
--0.011383
--0.017578
--0.030396
--0.018616
-0.015381
-0.047272
-0.028442
--0.036407
--0.034119
--0.006897
--0.01004
--0.0014343
-0.010895
-0.017914
-0.02771
-0.011078
--0.047211
--0.050934
-0.012634
-0.027191
--0.0022888
--0.0031433
-0.0059814
--0.010254
--0.011139
-0.0054932
-0.0058289
-0.0011902
--0.00073242
--0.0056458
--0.0028992
--0.0069275
--0.027802
--0.02121
-0.016266
-0.014801
--0.0090332
--0.0015564
-0.008606
--0.015656
--0.020966
-0.0022583
--0.0054321
--0.0093689
-0.025574
-0.016357
--0.032623
--0.017395
--0.00048828
--0.026794
--0.010437
-0.03833
-0.034515
--0.030609
--0.043732
-0.016327
-0.021271
--0.01532
--0.019318
-0.019745
-0.015167
--0.04126
--0.021851
-0.031525
-0.016876
--0.024628
--0.0090637
-0.027405
-0.0063782
--0.020996
--0.01413
-0.0040588
-0.00079346
--0.015778
-0.00094604
-0.0015259
--0.033051
--0.0093689
-0.029846
--0.0032959
--0.015228
-0.018158
-0.0014038
--0.016327
--0.019684
--0.018127
-0.011383
-0.0041504
--0.020905
-3.0518e-005
-0.026001
--0.0084534
--0.049103
--0.019043
-0.024292
-0.023285
--0.0032654
--0.013367
--0.0031128
--0.0048828
-0.0036316
-0.010925
--0.0079346
-0.00042725
--0.0046997
--0.041962
--0.016235
-0.024292
-0.0044861
--0.010284
--0.0060425
--0.039398
--0.030579
-0.038513
-0.029419
--0.024231
--0.024414
--0.010895
-0.0032959
-0.023743
-0.0054016
--0.021118
--0.017487
--0.016876
--0.0033875
-0.011017
-0.0046692
--0.0010986
--0.024414
--0.029633
-0.009491
-0.024445
-0.00018311
--0.026855
--0.028656
-0.0067139
-0.033081
-0.0059509
--0.023102
--0.015747
--0.025635
--0.0159
-0.039703
-0.025085
--0.039581
--0.039459
--0.016663
-0.00036621
-0.01825
-0.016296
-0.0010681
--0.017273
--0.04071
--0.029602
-0.027557
-0.030762
--0.022644
--0.030823
--0.010101
--0.0046692
-0.0058594
--0.0026855
--0.026489
--0.014618
-0.0057983
--0.0013428
--0.00057983
-0.0074768
--0.01886
--0.037811
--0.0065613
-0.011597
-0.00076294
-0.0030212
--0.0024719
--0.026093
--0.02359
-0.012787
-0.012939
--0.018585
--0.0035095
--0.0074768
--0.030029
--0.0020752
-0.011047
-0.0018311
-0.00033569
--0.017975
--0.028168
--0.0093689
-0.019257
-0.005188
--0.030365
-0.0089111
-0.038574
--0.016632
--0.037292
-0.010468
--0.012787
--0.059052
-0.00042725
-0.048737
-0.0044861
--0.027863
--0.031372
--0.031616
--0.00085449
-0.029327
-0.023193
--0.0045776
--0.046448
--0.032623
-0.030945
-0.015869
--0.025208
--0.015656
--0.018066
--0.017365
-0.0054932
-0.012726
--0.004425
--0.019653
--0.0060425
-0.016357
--0.0051575
--0.036865
--0.011047
-0.0068054
--0.01062
-0.010193
-0.012421
--0.013763
--0.014709
--0.035736
--0.021637
-0.032135
-0.011719
--0.031067
--0.017487
-0.0080566
--0.0020142
--0.026794
--0.034027
--0.018921
-0.025238
-0.024475
--0.023376
--0.016693
-0.016083
-0.011139
--0.034241
--0.040222
-0.03064
-0.038086
--0.018188
--0.013306
--0.014618
--0.029022
--0.0071411
--0.0037231
--0.012573
-0.0010376
--0.00354
-0.007843
-0.0083313
--0.041595
--0.02597
-0.033356
-0.017548
--0.014832
--0.01181
--0.015259
--0.015289
-0.0067749
--0.0033569
--0.02182
-0.011108
-0.017029
--0.015594
--0.034821
--0.017761
--0.00012207
-0.0022278
-0.02832
-0.016541
--0.031342
--0.03183
--0.0045166
-0.017487
-0.0067749
--0.012115
--0.010498
--0.022736
--0.017639
-0.003418
-0.0058289
-0.00036621
--0.011993
--0.024048
--0.0086975
-0.019348
-0.009552
--0.016174
--0.016205
--0.014099
--0.0014648
-0.0079041
-0.00042725
--0.0048218
--0.014923
--0.02713
--0.022797
-0.015289
-0.028076
--0.01767
--0.026642
-0.019135
-0.003479
--0.046326
--0.018768
-0.021149
-0.0075378
-0.012634
-0.020752
--0.021698
--0.060974
--0.026611
-0.021606
-0.014648
-0.010651
--0.0025024
--0.029755
--0.018799
--0.0015259
--0.0071411
--0.0047607
-0.026886
-0.025085
--0.028992
--0.027435
-0.0086975
--0.0014954
--0.0082703
-0.0067139
-0.0094299
--0.0055237
--0.020386
--0.020691
--0.0067139
-0.0015259
--0.018707
--0.029022
-0.0054932
-0.031525
--0.0031433
--0.041077
--0.003479
-0.026154
--0.017761
--0.020935
-0.034119
-0.0097351
--0.039856
--0.010559
-0.011444
--0.010468
--0.0032043
-0.010132
--0.015045
--0.029327
-0.0081787
-0.025116
--0.017761
--0.024231
--0.0040894
--0.008667
-0.011322
-0.046265
-0.0090027
--0.048859
--0.050995
--0.0095215
-0.045258
-0.051575
--0.0093384
--0.03421
--0.017761
--0.036957
--0.041077
-0.028046
-0.06192
--0.0055237
--0.037415
--0.0041504
--0.0056763
-0.0025635
-0.012817
--0.0062256
--0.0085449
-0.01004
-0.012421
--0.0088501
--0.02298
--0.031189
--0.041962
-0.0059204
-0.070038
-0.040863
--0.05304
--0.062225
-0.0085449
-0.022552
-0.0026245
-0.0056458
--0.0076904
--0.018524
-0.0028076
-0.017273
--0.00036621
--0.032379
--0.02478
-0.018982
-0.021057
-0.0030212
-0.011169
-0.0033875
--0.035522
--0.035736
-0.006897
-0.019897
-0.027557
-0.015228
--0.046906
--0.044403
-0.0021362
-0.0052185
-0.0058594
-0.022766
-0.018433
--0.019501
--0.032471
--0.0059204
-0.01355
-0.019043
--0.0079041
--0.027985
--0.0016174
-0.021454
-0.00024414
--0.015839
--0.014099
--0.031952
--0.015259
-0.040955
-0.034363
--0.021667
--0.027832
--0.012238
--0.016968
--0.0048828
-0.021362
-0.023712
-0.017609
-0.0057983
--0.038422
--0.048767
--0.00015259
-0.021759
-0.0039063
-0.025299
-0.03009
--0.068787
--0.084961
-0.043915
-0.075745
-0.013611
--0.012604
--0.032654
--0.03653
-0.010345
-0.040985
-0.014771
--0.015961
--0.015869
--0.0027466
--0.0085449
-0.0033569
-0.022491
--0.023895
--0.039001
-0.017883
-0.010895
--0.018982
-0.019958
-0.0096741
--0.044464
--0.015198
-0.036011
-0.025604
--0.013916
--0.036346
--0.0027161
-0.032379
--0.020477
--0.037842
-0.034576
-0.0088196
--0.040131
-0.017487
-0.025024
--0.031311
--0.02179
-0.018372
-0.012878
--0.00042725
-0.0024109
-0.0062561
--0.019287
--0.035919
-0.0012817
-0.021362
-0.0019531
--0.0044556
--0.017853
--0.025177
-0.016571
-0.031433
--0.0096436
--0.018463
--0.016113
--0.014923
-0.014771
-0.012085
--0.012543
--0.014282
--0.016022
--0.0064392
-0.010437
-0.014832
-0.00091553
--0.013947
--0.0033264
--0.0023804
--0.016785
-0.0068665
-0.021423
--0.0083313
--0.0056458
--0.0065002
--0.037292
-0.0032959
-0.033264
--0.015656
--0.007843
-0.030518
--0.018433
--0.063995
--0.011902
-0.049835
-0.037079
--0.013977
--0.029541
--0.009613
--0.0027466
--0.018127
-0.0019226
-0.01828
--0.0051575
-0.0076904
-0.013367
--0.017761
--0.024963
--0.022797
--0.00088501
-0.038177
-0.024475
--0.027191
--0.049103
--0.038269
-0.01947
-0.061401
-0.0077209
--0.041321
--0.021118
--0.011597
--0.0037231
-0.027985
-0.011169
--0.0098877
-0.023621
--0.0027771
--0.064972
--0.022247
-0.039642
-0.0088501
--0.027954
--0.0056152
-0.0054016
--0.008667
--0.01062
--0.0083008
--0.0014648
-0.010773
-0.011993
--0.0036926
--0.02005
--0.0057678
--0.0075378
--0.019196
--6.1035e-005
-0.0033875
-0.00082397
-0.0020142
--0.01947
--0.021515
--0.014862
--0.0070496
-0.015656
-0.017303
-0.0081787
-0.002655
--0.028992
--0.041656
-0.0014954
-0.049316
-0.026276
--0.038086
--0.041412
-0.010864
-0.0016174
--0.034912
-0.012177
-0.022156
--0.027802
--0.0112
-0.0066528
--0.019165
--0.015839
-0.015411
--0.0051575
--0.034058
-0.0027771
-0.0224
--0.0040283
--0.021912
--0.021179
--0.0079956
-0.0099792
-0.024414
-0.0049744
--0.042755
--0.045654
-0.018677
-0.031342
--0.017334
--0.021851
--0.0046997
--0.015106
-0.0031128
-0.043396
-0.015015
--0.053345
--0.037354
-0.00027466
--0.0036316
-0.033203
-0.045563
--0.035156
--0.078888
--0.033203
-0.016968
-0.038879
-0.027008
--0.019653
--0.047546
--0.0224
-0.027313
-0.013947
--0.031921
--0.012451
-0.022766
-0.01059
--0.024292
--0.054596
--0.018188
-0.038696
-0.0046387
--0.028992
-0.01709
-0.010681
--0.035004
--0.015808
--0.00079346
-0.0049744
-0.01474
--0.0014343
--0.016907
--0.032013
--0.0091248
-0.032654
-0.0071716
--0.025543
--0.017578
--0.0159
--0.017609
-0.013824
-0.021912
--0.039673
--0.030762
-0.032379
--0.013428
--0.038177
-0.028381
-0.03186
--0.029449
--0.040771
--0.0028076
-0.022095
--0.0084839
--0.033661
-0.0080566
-0.004425
--0.030792
--0.0021667
--0.00088501
--0.045319
--0.016541
-0.034821
-0.013947
--0.0077209
--0.015839
--0.039368
--0.024963
-0.017578
-0.019958
--0.00067139
--0.014923
--0.029816
--0.025848
--0.0058289
-0.0021667
-0.0023804
--0.0036621
--0.019531
--0.0096436
--0.0072021
--0.044128
--0.00079346
-0.060303
--0.0054932
--0.060638
--0.011169
-0.026154
-0.0098572
--0.0063782
-0.0010071
-0.0021667
--0.019653
--0.018646
-0.0062866
--0.0020142
--0.016266
--0.0067444
--0.018097
--0.023682
-0.0039063
-0.0063171
--0.022461
--0.025696
--0.0037231
-0.0049744
-0.0076904
-0.0091858
--0.019592
--0.019592
-0.020233
--0.0073547
--0.038971
-0.006958
-0.03125
--0.018921
--0.05365
--0.014252
-0.029724
-0.0041809
--0.039978
--0.01535
-0.023682
-0.0075378
--0.0054016
-0.0014954
--0.026764
--0.020905
-0.027344
-0.0075073
--0.018677
--0.0087891
--0.031372
--0.027069
-0.009613
-0.0079956
--0.00036621
--0.013794
--0.025024
-0.007782
-0.014801
--0.026581
--0.015442
-0.02179
-0.022003
--0.015564
--0.042908
--0.00079346
-0.01889
--0.021698
--0.0090027
-0.0271
--0.0014038
--0.047852
--0.025391
-0.02298
-0.00094604
--0.0016174
-0.017944
--0.03299
--0.043182
-0.022156
-0.0083923
--0.037842
-0.010651
-0.026062
--0.041229
--0.038757
-0.010162
-0.016937
--0.0093079
--0.026611
-0.0011902
-0.012543
--0.0076294
-0.0049744
--0.0031433
--0.031769
--0.025116
-0.0027771
-0.011261
-0.011902
-0.015381
--0.032318
--0.053436
-0.017548
-0.027222
--0.034271
--0.017578
-0.02652
-0.0054321
--0.028137
--0.013153
-0.0043945
--0.0068665
--0.0046082
-0.021484
-0.0015869
--0.030334
--0.017426
-0.0078125
-0.0024719
--0.015442
-0.0079651
-0.012451
--0.022369
--0.025665
--0.020538
-0.0026855
-0.030121
-0.0072021
--0.015106
--0.0061951
-0.0018311
-0.0025024
--0.0024109
--0.019928
--0.024689
-0.011383
-0.029175
--0.007019
--0.029388
--0.028656
--0.0059509
-0.024902
-0.0067444
--0.019562
--0.0058289
-0.0088806
-0.0007019
--0.019226
--0.00067139
-0.025421
--0.0093994
--0.032043
-0.0112
-0.022949
--0.00073242
--0.0068359
--0.011597
--0.011078
--0.0040588
--0.017334
--0.016754
-0.018646
-0.0271
--0.010071
--0.028534
--0.007843
-0.0018311
--0.007019
-0.0021973
-0.016968
-0.0075378
--0.0018921
--0.011932
--0.036133
--0.017914
-0.019867
--0.0021667
--0.0080261
-0.019379
--0.010529
--0.032104
-0.0038757
--0.0030823
--0.01825
-0.017639
-0.022003
--0.013916
--0.011444
-0.0019531
--0.014069
-0.0014038
-0.01825
-0.0063782
-0.01297
--0.0030212
--0.052979
--0.022156
-0.042145
-0.027283
--0.0061646
--0.019653
--0.0271
-0.0091248
-0.01712
--0.033661
-0.00015259
-0.070862
-0.014587
--0.059479
--0.01709
-0.035553
--0.0037537
--0.029144
-0.012878
-0.0049133
--0.031342
--0.0020447
-0.027252
--0.012543
--0.040436
-0.00076294
-0.017609
--0.004364
-0.02301
-0.025848
--0.032593
--0.027466
-0.0061035
-0.0022888
-0.0070801
-0.014221
-0.0068054
--0.0039368
--0.013
--0.0082092
-0.0032959
--0.013458
--0.014648
-0.032898
-0.027802
--0.018646
--0.023438
--0.01709
-0.0030212
-0.030334
-0.0080872
--0.025787
-0.00012207
-0.0085144
--0.034851
--0.0010376
-0.048065
--0.0010681
--0.039673
-0.0013123
-0.030579
-0.0047607
--0.040741
--0.01123
-0.056824
-0.041199
--0.034576
--0.052094
-0.0042725
-0.035187
-0.018066
-0.011627
--0.0083923
--0.03064
--0.017426
-0.022156
-0.030853
--0.019531
--0.026886
-0.022278
-0.0112
--0.027924
-0.012238
-0.036102
--0.020966
--0.032654
-0.0063171
-0.013153
-0.005249
-0.016296
-0.015564
--0.010895
--0.031769
--0.037781
-0.0177
-0.071869
-0.027588
--0.034637
--0.041382
--0.027283
-0.0023193
-0.030396
-0.030243
-0.012421
--0.020721
--0.033508
-0.0016174
-0.021515
--0.012177
--0.024567
-0.013275
-0.030273
-0.017273
--0.0010681
--0.048645
--0.047974
-0.035828
-0.049896
--0.0066223
--0.016541
--0.00085449
--0.0064697
--0.014862
-0.0019531
-0.018555
-0.013062
-0.0089417
-0.012756
--0.008728
--0.033905
-0.0045166
-0.029755
--0.02597
--0.024689
-0.039032
-0.0084229
--0.042175
--0.01239
--0.013947
--0.01944
-0.044434
-0.047943
--0.0051575
--0.0083008
-0.0030823
--0.018372
--0.018921
-0.023102
-0.029236
--0.013214
--0.015808
-0.0081482
--0.0041199
--0.011261
-0.0032654
--0.0057678
--0.012268
-0.013733
-0.031708
-0.013397
--0.004364
--0.020477
--0.028961
--0.0030823
-0.044189
-0.043335
--0.022888
--0.056854
--0.02536
-0.013885
-0.032928
-0.026581
--0.017761
--0.052887
--0.015076
-0.034424
-0.01947
--0.021362
--0.0089111
-0.020081
-0.0035095
--0.021759
--0.00085449
-0.017395
--0.0082703
--0.0014954
-0.018066
--0.0097961
--0.025055
--0.00088501
-0.0012817
--0.0060425
-0.020264
-0.0070496
--0.03363
--0.0078735
-0.020081
--0.0018921
--0.0040894
-0.027008
-0.014557
--0.02713
--0.01178
-0.0057068
-0.0032959
-0.017639
-0.017639
--0.0071411
--0.054352
--0.028595
-0.067444
-0.052155
--0.049164
--0.071259
--0.010254
-0.037415
-0.038025
-0.0065613
--0.026337
--0.040436
--0.024628
-0.02829
-0.055664
-0.018127
--0.034882
--0.065796
--0.011749
-0.06131
-0.010956
--0.039551
-0.0032349
--0.0057373
--0.044495
-0.0032654
-0.045837
--0.0015259
--0.017487
-0.0076294
--0.023926
--0.026367
-0.034302
-0.022491
--0.018707
--0.015625
--0.020599
--0.010376
-0.036255
-0.034485
--0.039124
--0.058167
-0.021118
-0.029999
--0.021484
-0.019653
-0.028656
--0.04892
--0.046967
-0.027161
-0.037659
--0.001709
--0.010742
--0.0089417
--0.014709
-0.00039673
-0.020111
-0.01413
--0.02597
--0.051453
--0.0028992
-0.045807
-0.013031
--0.030273
--0.015045
--0.006134
--0.037781
-0.004425
-0.069336
-0.0087585
--0.075623
--0.026306
-0.032532
--0.017303
--0.020538
-0.050446
-0.024017
--0.048309
--0.035156
-0.0066833
-0.003479
--0.00067139
-0.0090637
--0.0046082
-0.00048828
-0.0049438
--0.043121
--0.028259
-0.049042
-0.029785
--0.034851
--0.0026855
-0.02301
--0.035004
--0.032532
-0.028809
-0.010834
--0.021576
--0.0053406
-0.0013123
--0.0224
--0.026855
-0.0084534
-0.037445
-0.00045776
--0.049774
--0.018433
-0.033112
-0.013214
--0.021698
--0.017944
--0.0068359
--0.0054321
--0.0011597
-0.022614
-0.0050964
--0.048248
--0.01239
-0.038147
--0.023407
--0.034973
-0.050201
-0.013794
--0.058441
-0.00073242
-0.035156
--0.011261
--0.027985
--0.012878
-0.0010071
-0.021027
-0.026855
--0.033112
--0.047333
-0.019623
-0.016815
--0.026154
--0.0027161
-0.026489
-0.0025024
--0.036713
--0.026459
-0.00024414
-0.0067444
-0.022247
-0.015167
--0.028351
--0.034912
-0.012756
-0.022156
--0.036407
--0.027924
-0.038239
-0.030457
--0.039215
--0.060455
-0.010468
-0.048218
--0.032013
--0.041992
-0.054718
-0.029663
--0.072205
--0.058075
-0.032074
-0.041412
--0.021942
--0.0030212
-0.027893
--0.046082
--0.060822
-0.034271
-0.067047
-0.0047607
--0.066162
--0.064484
-0.028503
-0.060059
-0.010284
--0.018738
--0.045227
--0.046326
-0.021088
-0.040741
--0.0011902
-0.0041504
--0.00042725
--0.039093
--0.023834
-0.0045166
-0.0082703
-0.0017395
--0.0029602
-0.0032349
--0.01358
--0.019531
-0.0076599
-0.0012512
--0.021637
--0.0057678
-0.0092468
-0.014038
--0.00076294
--0.033691
--0.028534
-0.0083923
-0.014435
-0.00082397
--0.0090332
--0.013672
--0.0072327
--0.014069
--0.011169
-0.031311
-0.022156
--0.036774
--0.047516
--0.00039673
-0.048218
-0.028229
--0.027924
--0.039917
--0.028442
-0.0028076
-0.040802
-0.018219
--0.016876
-0.0012817
--0.019653
--0.05661
-0.018799
-0.061951
--0.003418
--0.037811
--0.015137
-0.0065002
--0.0021057
--0.010071
--0.0054932
-0.00024414
-0.017151
-0.0038757
--0.033325
--0.02832
-0.002655
-0.0088501
--0.0039063
--0.00042725
--0.0010986
--0.005127
-0.0079041
-0.00042725
--0.0085754
--0.015625
--0.051636
-0.0062561
-0.085846
--0.0014038
--0.072601
--0.010773
-0.0083008
--0.028168
-0.014252
-0.072998
-0.0058899
--0.085327
--0.049652
-0.036102
-0.046875
-0.013397
-0.00061035
--0.031158
--0.054779
-0.0091553
-0.024231
--0.017365
-0.012421
-0.013611
--0.025574
--0.025818
--0.0082397
-0.019409
-0.02063
--0.011475
--0.015869
--0.02005
--0.011414
-0.052856
-0.046082
--0.049927
--0.065796
--0.005188
-0.032257
-0.012115
--0.016418
-0.0099792
-0.033081
--0.020477
--0.075134
--0.03421
-0.045776
-0.050812
--0.006073
--0.021759
-0.0079956
--0.010498
--0.058502
--0.0030823
-0.078735
-0.018829
--0.058441
--0.040466
--0.0029297
-0.016907
-0.025848
-0.0081787
--0.01944
--0.024567
--0.0076904
-0.0066223
-0.0031738
-0.0031128
-0.01123
-0.0077209
--0.019867
--0.029572
-0.0079956
-0.032257
-0.0015259
--0.029755
--0.01297
-0.005188
--0.0088196
--0.012939
-0.011841
-0.012177
--0.025238
--0.029938
-0.01062
-0.025604
--0.0055847
--0.021942
-0.013763
-0.0074463
--0.054596
--0.019653
-0.062561
-0.025787
--0.051941
--0.027222
-0.039917
-0.0083313
--0.057983
--0.018707
-0.043427
-0.042908
--0.003479
--0.039734
--0.014526
--0.0097351
--0.026337
-0.01355
-0.053772
-0.020386
--0.026611
--0.019257
--0.02948
--0.028625
-0.048187
-0.054077
--0.021759
--0.045502
--0.019806
-0.011444
-0.02121
-0.00018311
--0.0085754
-0.0059204
--0.016937
--0.042389
-0.023804
-0.064819
--0.02359
--0.065399
-0.0039063
-0.024231
--0.0059814
--0.00067139
--0.0081177
--0.020844
-0.0076904
-0.022949
--0.00027466
--0.030151
--0.0271
-0.0016479
-0.032837
-0.031647
--0.02713
--0.049164
--0.00076294
-0.0064087
--0.00042725
-0.024689
--0.0011292
--0.032684
--0.0076294
--0.0021057
--0.00057983
-0.027222
--0.0097351
--0.041931
-0.016663
-0.01709
--0.021545
-0.013428
-0.0015259
--0.041046
-0.00064087
-0.032959
-0.0047913
--0.0086365
--0.010925
--0.035309
--0.032593
-0.034729
-0.05719
-0.0074768
--0.020844
--0.050629
--0.046783
-0.028137
-0.043274
--0.019562
--0.010681
-0.034729
--0.014923
--0.052032
--0.0039368
-0.019318
--0.0013733
--0.0063782
-0.021088
-0.023438
--0.050781
--0.054047
-0.030273
-0.015442
--0.015839
-0.023682
-0.029022
--0.016235
--0.058197
--0.046051
-0.032166
-0.053833
--0.011078
--0.017944
-
--0.047119
--0.039642
-0.024689
-0.0401
-0.019897
--0.03714
--0.047455
-0.019989
-0.025391
--0.021301
--0.02182
-0.0016785
-0.0030518
--0.006958
--0.014435
-0.0037842
-0.0065002
--0.031128
--0.01651
-0.03009
-0.0040588
--0.020416
-0.0031738
-0.009552
--0.0070496
--0.022186
--0.0072937
-0.0025635
--0.016541
--0.0010071
-0.023956
--0.011261
--0.035095
--0.0082703
--0.0050354
--0.025665
-0.010315
-0.052795
--0.0016479
--0.05368
--0.030243
--0.021942
--0.0072937
-0.04657
-0.03595
--0.016144
--0.026428
--0.026062
--0.024689
-0.0029602
-0.0064697
-0.0019836
-0.017273
--0.0068359
--0.044434
--0.032654
-0.011322
-0.019226
--0.0063782
-0.0023193
-0.0044861
--0.017456
--0.010773
--0.0033264
--0.0083313
-0.0022888
--0.009613
--0.019745
-0.010193
-0.016052
--0.030945
--0.042419
-0.0053406
-0.014191
--0.0021057
-0.015167
--0.0069885
--0.05188
--0.031891
-0.0056763
-0.0093079
-0.0023193
-0.00067139
--0.0007019
--0.010925
--0.020203
--0.018097
--0.021301
-0.00054932
-0.024811
--0.011047
--0.018524
-0.0159
--0.014221
--0.051605
--0.028778
-0.011169
-0.026581
-0.015106
-0.010071
--0.012177
--0.052094
--0.045868
-0.021637
-0.055145
--0.01767
--0.053314
-0.011597
-0.014038
--0.051361
--0.01886
-0.038635
--0.017883
--0.052246
-0.015747
-0.037445
--0.02597
--0.042603
-0.011505
--0.0028381
--0.036987
-0.023834
-0.039886
--0.039185
--0.042603
-0.016907
-0.004364
--0.026459
--0.0072021
-0.0017395
--0.019714
--0.016937
--0.00057983
-0.0011292
--0.015564
--0.036346
--0.020081
-0.0084534
-0.012238
-0.003418
--0.017822
--0.018036
--0.0019836
--0.013824
--0.0073853
-0.021637
-0.014374
--0.022675
--0.029816
--0.018097
--0.025726
--0.0079651
-0.0159
-0.005188
--0.0050049
--0.0048828
--0.018982
--0.042389
--0.018616
-0.04425
-0.027069
--0.049164
--0.023102
-0.029602
--0.028076
--0.041412
-0.021698
-0.0055542
--0.028198
--0.00012207
-0.028107
--0.0088196
--0.061462
--0.03244
-0.018219
-0.0045166
--0.001709
-0.024872
--0.015259
--0.058563
--0.0029602
-0.023926
--0.016388
--0.017334
--0.0041504
--0.00354
-0.015411
-0.0025635
--0.030396
--0.022095
--0.02832
--0.024292
-0.035889
-0.029205
--0.030029
--0.040497
--0.018799
--0.0047607
-0.010651
-0.033997
-0.010742
--0.060425
--0.039886
-0.028992
-0.0059509
--0.011658
-0.0046082
--0.034668
--0.065216
--0.0011902
-0.045776
-0.0096741
--0.015991
--0.046082
--0.0625
-0.0076904
-0.056061
-0.012115
--0.023346
--0.033447
--0.039764
--0.0038757
-0.030823
-0.012329
--0.022156
--0.034821
--0.022919
-0.010284
-0.010864
--0.017548
--0.014587
-0.010529
-0.00067139
--0.018921
--0.0025635
-0.0028381
--0.019287
--0.015411
-0.016418
-0.016907
--0.022247
--0.043671
--0.019928
-0.015594
-0.0021362
--0.027344
--0.010101
-0.0036621
-0.00085449
--0.0026245
--0.012451
--0.022278
--0.024353
-0.020447
-0.046967
--0.0089417
--0.046783
--0.017212
-0.02063
--0.0012207
--0.037445
-0.012787
-0.040924
--0.037476
--0.055389
-0.025452
-0.027557
--0.043427
--0.035034
-0.021759
-0.015961
--0.021759
--0.015076
-0.019501
--0.0055542
--0.043488
--0.013367
-0.024567
-0.015167
--0.010681
--0.024658
--0.028381
--0.0064697
-0.019104
-0.016174
--0.0030518
--0.027954
--0.018707
-0.0044556
--0.0046997
-0.0084534
-0.025757
--0.02063
--0.061493
-0.0005188
-0.06665
-0.015015
--0.045471
--0.039154
--0.022491
-0.010834
-0.03064
-0.011475
--0.023682
--0.043823
--0.017731
-0.013092
-0.023895
-0.011383
--0.030884
--0.026001
-0.021759
--0.0022278
--0.033142
-0.015503
-0.025909
--0.036133
--0.038544
-0.0084839
-0.017029
--0.005249
--0.0097656
-0.0012817
--0.010925
--0.018341
-9.1553e-005
-0.014069
-0.0012512
--0.022552
--0.0063782
-0.019501
--0.0064392
--0.039368
--0.0096436
-0.024353
-0.0083008
--0.0067444
--0.016296
--0.013062
-0.006012
--0.0057678
--0.022064
-0.0032959
-0.015656
--0.017395
--0.014313
-0.028229
-0.0093384
--0.041626
--0.012878
-0.023193
--0.0032959
--0.011169
-0.0065002
--0.0067139
--0.02243
--0.00094604
-0.01474
--0.0086365
--0.016815
--0.00354
--0.0040283
--0.025818
--0.0031128
-0.054535
-0.011688
--0.065826
--0.0289
-0.026489
-0.020447
-0.0016785
--0.008667
--0.021149
--0.014221
-0.013824
--0.0022583
--0.019958
-0.033875
-0.016418
--0.066589
--0.0096741
-0.060638
--0.0091248
--0.036621
-0.01236
--0.0079041
--0.038269
-0.025391
-0.046844
--0.021851
--0.034271
-0.0079346
--0.0033569
--0.024536
--0.0026855
-0.019592
-0.017822
--0.0056763
--0.023132
--0.01181
-0.0061035
--0.010193
--0.023621
-0.022034
-0.028229
--0.044525
--0.040649
-0.035278
-0.037506
--0.02478
--0.046204
-0.0038452
-0.047882
-0.0016174
--0.043213
-0.0054016
-0.027069
--0.012787
--0.012451
-0.011749
--0.018616
--0.045593
-0.0086365
-0.052429
-0.0057068
--0.042236
--0.019836
--0.0083618
--0.021118
-0.022522
-0.033325
--0.0079956
-0.0077209
--0.0065918
--0.065765
--0.011047
-0.070221
-0.016876
--0.045197
-0.0013428
-0.015808
--0.036621
--0.0084229
-0.043884
-0.0051575
--0.041199
--0.014191
-0.0063477
-0.0021973
-0.036865
-0.03006
--0.040039
--0.041931
-0.012268
-0.012482
-0.0050659
-0.023895
--0.013794
--0.052155
-0.0019531
-0.031891
--0.013092
--0.028015
--0.0031738
--0.0043945
--0.0040283
-0.017639
-0.013123
--0.0112
--0.017273
--0.0073547
--0.0035706
-0.0073242
-0.021027
-0.0067139
-0.00079346
-0.0030823
--0.03125
--0.030701
-0.021729
-0.023163
-0.0029602
-0.00030518
--0.020325
--0.01828
-0.014313
-0.0039673
--0.014191
-0.010437
-0.0066833
--0.018494
--0.0022583
-0.006073
--0.002655
-0.0036011
--0.0012817
--0.005188
-0.0076599
--0.0086975
--0.036285
--0.01297
-0.025299
-0.030731
-0.00027466
--0.035889
--0.030579
-0.0068054
-0.019012
-0.0059204
--0.0038452
-0.0018311
-0.0049744
--0.017395
--0.005188
-0.015686
--0.0054932
--0.0098572
--0.0016174
-0.00024414
--0.0020142
--0.010223
--0.0015869
-0.0058289
--0.0078125
--0.018219
-0.0054932
-0.019531
--0.0027466
--0.0079346
-0.011505
-0.0032959
--0.036407
--0.011932
-0.042023
-0.014404
--0.023712
--0.00088501
--0.0045471
--0.042389
--0.018433
-0.028717
-0.025696
--0.0026245
--0.012451
--0.022034
--0.014923
-0.0055542
--0.013702
--0.0046692
-0.029388
--0.0071411
--0.040253
-0.0027161
-0.02655
-0.0085449
--0.0071106
--0.041626
--0.046692
-0.024689
-0.04483
--0.0047302
--0.0024109
--0.011139
--0.054993
--0.0081787
-0.049042
-0.0073853
--0.014862
-0.011566
--0.013794
--0.031769
-0.0088806
-0.012024
--0.024353
--0.014679
-0.017883
-0.016968
--0.0052795
--0.014435
--0.021698
--0.0079651
-0.021759
--0.010254
--0.03302
-0.024353
-0.019379
--0.046417
--0.010315
-0.039429
--0.0028992
--0.02887
--0.0020752
-0.0085449
-0.0024414
--0.0010681
--0.020905
--0.013306
-0.023712
-0.0032959
--0.022827
--0.014069
--0.018188
--0.01712
-0.0042114
-0.020569
-0.010956
--0.0026245
--0.0159
--0.029541
--0.024414
-0.0024109
-0.014069
-0.02121
-0.017914
--0.016785
--0.029663
--0.016876
--0.019867
--0.0063171
-0.029236
-0.026093
--0.01532
--0.038239
--0.021851
-0.011017
-0.012909
--0.0097046
--0.014801
-0.0021973
-0.011261
--0.014435
--0.022247
-0.020233
-0.023193
--0.032684
--0.040527
-0.0037537
-0.021149
-0.0011902
--0.0032959
--0.016266
--0.052307
--0.0159
-0.042938
-0.009613
--0.041656
--0.011444
-0.0038757
--0.033569
-0.006134
-0.046387
--0.018402
--0.047577
-0.0031128
-0.022217
--0.0079346
--0.025513
--0.025757
--0.010834
-0.017761
-0.015167
-0.0053101
--0.0097656
--0.04834
--0.039185
-0.024139
-0.045898
-0.010468
--0.0085754
--0.0063171
--0.028503
--0.039642
--0.011536
-0.031372
-0.028534
--0.016174
--0.032257
--0.027008
--0.0061951
-0.012695
-0.0095215
--0.012848
--0.035034
--0.012115
-0.020325
-0.012054
--0.00036621
--0.026184
--0.041138
-0.007843
-0.028992
--0.020355
--0.031189
-0.012817
-0.0067444
--0.036682
--0.021484
-0.010864
--0.0023193
--0.015778
--0.0021667
-3.0518e-005
--0.006073
--0.0066833
--0.0033875
--0.0030212
--0.019165
--0.021362
-0.0051575
-0.015472
--0.014038
--0.046814
--0.013824
-0.033417
-0.0059204
--0.015045
-0.00015259
--0.024933
--0.037109
-0.0024719
-0.014526
-0.0081787
-0.011993
--0.032532
--0.048462
--0.0015564
-0.0097046
-0.01532
-0.013275
--0.027863
--0.035095
--0.0026245
-0.017212
--0.00061035
--0.027039
--0.01651
--0.010651
--0.013672
-0.012482
-0.011444
--0.025482
--0.033936
--0.006958
-0.0012207
--0.01123
--0.0014648
-0.021362
-0.014282
--0.021973
--0.05011
--0.036469
-0.018951
-0.035065
-0.0018005
--0.020691
--0.032074
--0.026581
-0.0007019
-0.0080566
--0.0090332
--0.0023193
-0.011841
--0.014374
--0.024261
-0.010742
-0.0072327
--0.015747
-0.0005188
--0.0019836
--0.027039
--0.010437
-0.0090027
-0.0016479
--0.0090637
-0.0048218
--0.0010376
--0.046387
--0.021545
-0.032288
-0.018616
--0.0065308
--0.016388
--0.034973
--0.027222
-0.017883
-0.029816
--0.012817
--0.022888
--0.0057983
--0.027832
--0.031891
-0.017029
-0.032562
--0.0058289
--0.031616
--0.035126
--0.0065002
-0.02417
-0.011261
--0.012787
--0.020355
--0.012482
-0.00057983
--0.0011292
--0.0049133
--0.0027161
--0.0066223
--0.002594
-0.0020752
--0.016815
--0.019226
--0.0018921
--0.0076904
--0.0036621
-0.015198
--0.017303
--0.043854
--0.00076294
-0.025513
--0.0020752
--0.0059814
--0.0032349
--0.036346
--0.024506
-0.02533
-0.022308
--0.011292
--0.01062
--0.018951
--0.044708
--0.0047913
-0.045654
-0.022522
--0.021332
--0.018341
--0.014496
--0.031311
--0.0082397
-0.02594
-0.012634
--0.014496
--0.0090637
-0.00021362
--0.036255
--0.031616
-0.031708
-0.017914
--0.009613
-0.00354
--0.01767
--0.05249
--0.017548
-0.049683
-0.02951
--0.019531
--0.025024
--0.027893
--0.016937
-0.0065308
-0.020386
-0.010925
--0.018494
--0.028137
--0.016876
-0.0041504
-0.014587
-0.0011597
--0.011536
--0.011444
--0.009552
--0.0094299
-0.012085
-0.0242
--0.01239
--0.029175
--0.016205
--0.017822
--0.0013428
-0.020538
-0.012878
--0.0098877
--0.026672
--0.019196
-0.0018616
--0.0032043
--0.012421
-0.01239
-0.008667
--0.022278
--0.0098267
-0.0037842
--0.010498
--0.011017
--0.0057678
--0.0015869
-0.0063782
--0.0033875
--0.01416
--0.0062866
--0.015839
--0.0079346
-0.010864
--0.0014038
--0.0091858
--0.0090637
--0.0047302
-0.0095215
-0.0019226
--0.024567
--0.013245
-0.018127
-0.010376
-
-0.0053406
--0.022308
--0.028656
-0.016388
-0.026306
--0.00015259
--0.012634
--0.018219
--0.011414
--0.0018311
-0.0030823
-0.010132
-0.0092773
--0.0029297
--0.027863
--0.026947
-0.017212
-0.023682
--0.0082397
--0.0091248
-0.0029297
--0.015411
--0.03302
-0.0020447
-0.036072
-0.015076
--0.014191
--0.026276
--0.031708
--0.0016174
-0.031616
-0.013489
-0.0023804
--0.0037231
--0.03714
--0.024445
-0.03891
-0.027527
--0.03363
--0.027496
-0.023621
-0.021729
--0.024292
--0.025085
-0.01828
-0.016541
--0.0048828
--0.0085449
--0.030121
--0.017883
-0.035034
-0.020874
--0.02948
--0.0099792
-0.01535
--0.011597
--0.0077515
-0.013641
--0.0035095
--0.017578
--0.012848
-0.011749
-0.014191
--0.0044861
-0.0039368
-0.00067139
--0.026703
--0.018494
-0.0068054
-0.011475
-0.011963
-0.0036926
--0.0087891
--0.0061646
--0.011139
--0.025482
-0.0043945
-0.039246
-0.0024719
--0.0383
--0.017944
-0.0059509
-0.0036621
-0.0098572
-0.012726
--0.010071
--0.016754
-0.0054321
-0.0049744
--0.014038
--0.00030518
-0.019379
-0.0011292
--0.023895
--0.0024719
-0.019501
--0.01358
--0.021088
-0.020172
-0.017181
--0.019409
--0.015411
-0.0081787
-0.0018921
--0.010132
-0.004425
-0.012451
--0.0032349
--0.015961
--0.0042419
-0.0072632
-0.0046692
-0.0026245
--0.011078
--0.029633
--0.0081177
-0.017334
-0.0095825
-0.0010376
--0.0089722
--0.019531
--0.015045
--0.0010681
-0.019348
-0.010834
--0.023041
--0.016785
-0.0050354
--0.0050964
-0.0025635
-0.026306
--0.0030823
--0.038849
--0.013184
-0.022125
-0.016022
--0.0075684
--0.00057983
-0.0095215
--0.016449
--0.024506
-0.0089111
-0.016174
--0.0078125
--0.011627
-0.0032349
-0.0015259
--0.015594
--0.0086365
-0.01001
--0.0010681
--0.0048218
-0.021881
-0.008606
--0.03537
--0.021301
-0.0084534
--0.00076294
--0.0057678
-0.0028687
--0.0025635
--0.0271
--0.026367
-0.013947
-0.023865
--0.0055542
--0.023621
--0.012268
-0.011383
-0.017731
--0.0027161
--0.018433
--0.008606
--0.0012207
--0.011627
--0.011932
-0.01178
-0.018188
--0.023254
--0.036407
-0.00024414
-0.011627
-0.0019531
--0.0057983
--0.013824
--0.0072632
-0.010864
-0.013672
--0.0068054
--0.018921
-0.00018311
-0.0090332
--0.013153
--0.015625
-0.010223
-0.0056763
--0.017365
--0.0066833
-0.0050659
--0.0091858
--0.011871
--0.0023499
--0.014893
--0.0084534
-0.017731
-0.0015869
--0.018341
--0.0010071
-0.0018005
--0.016846
--0.028442
--0.00018311
-0.031677
-0.0072327
--0.023224
--0.024384
--0.016846
--0.00012207
--0.0018005
--0.0046387
-0.012085
--0.001709
--0.021912
--0.002533
-0.01123
--0.0013428
--0.0081787
--0.00030518
-0.00021362
-0.00039673
-0.011841
--0.0014343
--0.03479
--0.028717
-0.0015869
-0.0082092
-0.0055542
-0.012115
--0.020325
--0.051727
--0.0097961
-0.025299
-0.017639
-0.014252
--0.011627
--0.04007
--0.013916
-0.017456
-0.014282
--0.0024414
--0.020844
--0.020477
--0.0098572
--0.0066528
-0.013489
-0.010895
--0.047638
--0.037415
-0.03006
-0.022644
--0.0077515
--0.014191
--0.022675
--0.021057
--0.0053406
-0.014923
-0.022766
--0.0044556
--0.041443
--0.025818
-0.010803
-0.0083923
--0.0049133
-0.0011292
--0.012299
--0.028748
--0.012024
-0.0091248
-0.0083618
--0.010834
--0.016235
-0.0022888
-0.0033569
--0.018188
--0.020721
-0.0046387
-0.015045
--0.0020752
--0.017151
--0.0081787
--0.0010986
--0.015045
--0.0080261
-0.0045776
--0.0072937
--0.0049744
--0.006073
--0.021332
--0.0045471
-0.018585
--0.0016479
--0.036987
--0.015045
-0.0091248
--0.012085
--0.0040283
-0.019165
--0.013
--0.035187
-0.0028381
-0.0085449
--0.027527
--0.012573
-0.02002
--0.0046997
--0.017944
-0.0014343
--0.017212
--0.032379
--0.0027161
-0.0061646
--0.0098877
-0.00012207
-0.0065613
--0.016296
--0.018036
-0.00088501
--0.004303
--0.013916
-0.0055847
-0.0084229
--0.024902
--0.019318
-0.0077515
--0.015472
--0.015869
-0.0099182
--0.016357
--0.027649
-0.009491
-0.013824
--0.012695
--0.010284
--0.0022888
--0.012665
--0.0085449
-0.0015869
--0.006897
--0.018158
--0.0065002
-0.013794
--0.0023193
--0.031677
--0.01593
-0.0066528
--0.009552
--0.012146
-0.0072327
--0.006012
--0.029999
--0.012634
-0.012024
-0.0053406
--0.010132
--0.0089111
--0.010406
--0.01532
--0.00015259
-0.0087891
--0.0092163
--0.018799
--0.0062866
-0.00057983
--0.010437
--0.0098877
-0.00091553
-0.0011902
--0.0016174
--0.002594
--0.0052185
--0.015808
--0.021576
--0.005249
-0.0075378
-0.0018921
--0.0061035
--0.0073853
--0.014191
--0.020721
--0.0069275
-0.00067139
--0.0072327
--0.00048828
-0.0046082
--0.010559
--0.015717
--0.0052795
--0.0075989
--0.01001
-9.1553e-005
-0.00088501
--0.00012207
-0.003479
--0.014038
--0.025818
--0.011688
-0.0010986
-0.006012
--0.00045776
--0.0059509
--0.015259
--0.029175
--0.013214
-0.010956
-0.0068359
--0.0057068
--0.017456
--0.026184
--0.0045166
-0.015259
--0.0032959
--0.011169
--0.00091553
--0.008606
--0.018646
--0.011475
-0.010345
-0.011017
--0.011108
--0.0050049
-0.002533
--0.016968
--0.013702
-0.0059204
-0.0044861
--0.0075073
--0.0032043
-0.00033569
--0.01355
--0.013885
--0.00030518
-0.00085449
--0.0050049
--0.00354
--0.0056763
--0.015228
--0.014832
--0.0059814
--0.0028076
-0.0010681
-0.0057983
--0.0015869
--0.021698
--0.017639
-0.0042725
-0.0028992
--0.0016174
-0.0079346
--0.0018005
--0.019196
--0.010895
--0.00057983
--0.0080872
-0.00039673
-0.016266
--0.0040588
--0.020203
--0.008728
--0.0067444
--0.0041199
-0.0093689
-0.0066528
--0.01059
--0.019958
--0.010773
-0.0056152
-0.004364
--0.01236
--0.0063477
-0.0078125
-0.0010376
-0.0038757
-0.0059814
--0.014679
--0.030304
--0.0079346
-0.016907
--0.0040894
--0.024292
-0.00021362
-0.011963
--0.01355
--0.022827
--0.00177
-0.0083313
-
--0.0049438
--0.0070801
--0.0082703
--0.0010681
--0.0036621
--0.0055237
-0.0088196
-0.0039368
--0.020752
--0.016876
--0.0022278
--0.0028992
-0.003479
-0.010284
-0.0028076
--0.012238
--0.01535
--0.0041504
-0.0054626
-0.0010376
--0.00061035
-0.0030212
--0.0052185
--0.0099792
-0.0010681
--0.00027466
--0.01947
--0.014191
-0.0091553
-0.0074158
--0.0063782
--0.0033875
-0.00018311
--0.0096436
--0.016022
-0.00076294
-0.013458
--0.00057983
--0.0033264
-0.0023193
--0.014618
--0.014709
-9.1553e-005
--0.0070801
--0.0022583
-0.010193
--0.014679
--0.028656
-9.1553e-005
-0.013641
-0.0011902
--0.0050964
--0.012115
--0.010803
-0.0027161
-0.0011292
-0.00012207
-0.0045471
--0.0054016
--0.01532
--0.014008
-9.1553e-005
-0.014923
-0.0093384
--0.002594
--0.017365
--0.014771
-0.010742
-0.011383
--0.0047913
--0.0011902
-0.0053101
--0.013641
--0.021667
-0.0075989
-0.021332
-0.013428
-0.0097046
--0.0016479
--0.0074158
--0.011993
--0.011841
-0.0082092
-0.018402
-0.001709
--0.011139
--0.006134
--0.014221
--0.012482
-0.012238
-0.014038
-0.00094604
--0.0013123
--0.0022888
--0.0056458
--0.0071716
--0.0072021
--0.003418
-0.002594
-0.005127
--0.0036011
--0.011139
-0.0072021
-0.0085754
--0.01825
--0.011749
-0.015106
-0.011292
--0.0054321
--0.012848
--0.0069885
-0.0095825
-0.0054626
--0.0063171
-0.0067749
-0.014038
--0.0025024
--0.0099182
--0.0014038
--0.00048828
--0.0086975
--0.0068054
-0.0039063
-0.0030212
--0.0050049
-0.00045776
-0.0078125
--0.0060425
--0.015533
-0.0057678
-0.021423
-0.0058289
--0.010681
--0.005249
-0.00012207
--0.0071411
-0.00061035
-0.0084839
--0.0037231
--0.0031738
-0.0052795
--0.008667
--0.014862
-0.0012817
-0.0036011
-0.0014343
-0.002533
--0.0071106
--0.011932
-0.0015564
-0.0083008
-0.0007019
--0.0010071
--0.0018005
--0.0057068
--0.0011902
-0.0030518
--0.0029907
--0.013153
--0.01416
--0.0020752
-0.0028992
-0.0036621
-0.0090637
--0.00045776
--0.010895
-0.00021362
-0.0092163
-0.0018616
-0.0023804
-0.0027466
--0.005249
--0.00039673
-0.0048523
-0.00030518
--0.0044556
--0.0053711
--0.00354
--0.0016479
--6.1035e-005
--0.002594
--0.0059814
--0.0026245
-0.0091553
-0.010162
--0.0049744
--0.0051575
-0.0040894
--0.0023804
--0.0087891
--0.0010986
-0.0055847
-0.0065918
--0.00036621
--0.0089111
--0.01062
--0.0066833
-0.0021362
-0.0093689
-0.0043945
--0.0096436
--0.012726
--0.0046082
-0.00091553
--0.0021973
--0.0032959
-0.0041809
-0.0054321
--0.0039673
--0.0065613
--0.00082397
--0.0054016
--0.0097961
-0.0014954
-0.0040283
--0.0041504
--0.0020752
--0.0016479
--0.0040283
-0.0014038
--0.0038452
--0.01062
-0.0036011
-0.010864
-0.0055542
--0.0029907
--0.010986
--0.0099792
--0.0053406
-0.0012512
-0.0049438
-0.0016785
--0.00027466
--0.0076904
--0.016693
--0.0054016
-0.0095825
-0.0041809
--0.007782
--0.0053711
-0.0049744
-0.00033569
--0.010773
--0.0064697
-0.0027771
--0.0022278
--0.010498
--0.0042725
-0.0044861
--0.0030212
--0.015076
--0.0084534
-0.0093079
-0.0081787
--0.00354
--0.0045471
--0.0063782
--0.011505
--0.0088501
--0.00079346
-0.0069275
-0.0089111
--0.0073242
--0.022217
--0.0091553
-0.0061951
--0.002594
--0.011169
--0.0040283
--0.0021362
--0.0065613
--0.0049744
--0.0036316
--0.0053406
--0.0015564
-0.0040283
-0.0047302
--0.0047913
--0.012146
--0.0054626
-0.0012817
-0.00079346
--0.0072021
--0.01535
--0.010864
--0.012146
--0.014923
--0.0010681
-0.0038147
--0.01004
--0.0095215
--0.0039673
--0.010132
--0.00054932
-0.016174
-0.006012
--0.011047
--0.011475
--0.0040283
-0.0010986
-0.0042419
-0.0046082
--0.0054016
--0.013977
--0.0073853
--0.0030518
--0.0053101
--0.0025024
--0.0024414
--0.0054321
--0.0014648
-0.0032959
--0.00064087
--0.0057373
--0.0043945
-0.0016174
-0.0048218
-0.0026245
--0.0054321
--0.016022
--0.014343
--0.0016479
-0.0013428
--0.0064087
--0.010529
--0.0112
--0.012207
--0.0096436
--0.0080261
--0.011993
--0.0075684
-0.0050964
-0.0014038
--0.013763
--0.011658
--0.0057983
--0.0097046
--0.0088196
--0.0014038
-0.00061035
--0.0023804
--0.0057983
--0.012329
--0.015656
--0.0095825
--0.0022583
--0.0014648
--0.0024109
--0.0052795
--0.010742
--0.010101
--0.0048523
--0.0028687
--0.00036621
-0.0038757
-0.0015564
--0.0071106
--0.0072327
--0.0014954
--0.006012
--0.01239
--0.01062
--0.0079651
--0.0058899
--0.0085144
--0.01123
--0.0066528
--0.005249
--0.01062
--0.010712
-0.0011597
-0.0071716
--3.0518e-005
--0.0058289
--0.0054626
--0.0055237
--0.006073
--0.0076904
--0.0082397
--0.0050049
--0.0049438
--0.0093689
--0.013977
--0.016937
--0.016479
--0.010681
--0.00177
-0.0019836
-3.0518e-005
--0.0040588
--0.006012
--0.0078125
--0.0047607
-0.0020447
-0.0025024
--0.0026855
--0.0076599
--0.011261
--0.011108
--0.01239
--0.01059
--0.0061951
--0.0052185
--0.0056458
--0.0055237
--0.005188
--0.0046997
--0.0059814
--0.003418
-0.0024109
-0.00094604
--0.0083313
--0.01178
--0.0058594
--0.0049438
--0.012512
--0.012543
--0.0041199
--0.0044861
--0.01355
--0.016022
--0.0083923
--0.0030212
--0.0050354
--0.0067444
--0.0013123
-0.00027466
--0.0057068
--0.0054016
--0.0014954
--0.0067444
--0.011047
--0.0078735
--0.0053101
--0.0064697
--0.007843
--0.004303
--0.0037537
--0.0074768
--0.0080566
--0.0098877
--0.0083923
--0.0023193
--0.0025024
--0.0053711
--0.0055847
--0.0035706
--0.0033264
--0.006073
--0.002594
--0.00073242
--0.0053406
--0.0047302
--0.0014038
--0.003418
--0.0050354
--0.0058289
--0.0055847
--0.0051575
--0.0083923
--0.011536
--0.0076904
--0.0059509
--0.0071106
--0.00082397
-0.0012817
--0.0045166
--0.0090637
--0.012054
--0.010193
--0.0043945
--0.0010681
--0.0027161
--0.0090942
--0.015961
--0.013977
--0.0076294
--0.0075989
--0.010468
--0.0076904
--0.005127
--0.0083008
--0.011017
--0.0091248
--0.0064697
--0.006958
--0.0046997
-0.00024414
--0.0019531
--0.0055542
--0.0036621
--0.0023804
--0.00021362
--0.00039673
--0.0063171
--0.008667
--0.0054321
--0.0044556
--0.003479
-0.0035095
-0.008606
-0.0011292
--0.0059204
--0.0042725
--0.005249
--0.0049438
-0.0034485
-0.0078735
-0.0031128
--0.00094604
--0.0029602
--0.0074463
--0.0096436
--0.0046387
--0.0011597
--0.0060425
--0.006073
--0.0021362
--0.0075989
--0.0112
--0.0042725
--0.00021362
--0.0032654
--0.002655
--0.0011292
--0.0028992
--0.00054932
-0.0039063
-0.00088501
--0.004364
--0.0068665
--0.0075684
--0.0064087
--0.0036011
--0.0010376
--0.0029907
--0.0090942
--0.0091248
--0.0036926
--0.0011902
-6.1035e-005
--0.00061035
--0.0064087
--0.0066528
--0.007843
--0.0032043
-0.003418
--0.00073242
--0.0053101
--0.0057983
--0.0066528
--0.0065613
--0.0062561
--0.0024109
--0.00094604
--0.0063171
--0.0056458
--0.0037537
--0.0062561
--0.0007019
-0.0048828
-0.0030823
-0.0053406
-0.0045776
--0.0033569
--0.0056152
--0.0023193
-0.0030823
-0.0035095
--0.0034485
--0.0054016
--0.0051575
--0.0072937
--0.006012
--0.0010071
-0.00057983
--0.0027161
--0.0037537
--0.0007019
-0.0029297
-0.0046692
-0.0021973
-0.00054932
-0.00085449
-0.0011292
-3.0518e-005
--0.0020142
--0.0023193
--0.0032959
--0.0065918
--0.0066223
--0.0018311
-6.1035e-005
-0.00018311
-0.002533
-0.0018005
--0.00048828
-0.00177
-0.004364
-0.0066528
-0.0088806
-0.0069885
-0.00088501
--0.0055237
--0.0077515
--0.0057983
--0.0014954
-0.0021667
--0.00015259
--0.007782
--0.010071
--0.0059204
--0.0021667
--0.00039673
-0.0019226
-0.0028687
-0.0005188
--0.002533
--0.0021057
--0.00015259
-0.0016479
-0.001709
--0.0011902
--0.0035095
--0.0028992
--0.0036316
--0.0061646
--0.0078125
--0.0046387
--0.0021973
--0.0053101
--0.0050659
-0.0016174
-0.0066223
-0.0066528
-0.0072021
-0.0055237
--0.00076294
--0.0016174
-0.0042114
-0.0077209
-0.0064697
--0.00048828
--0.0078125
--0.0054932
-0.0011597
-0.006134
-0.008606
-0.0064392
-0.00057983
--0.004425
--0.004425
-0.0021973
-0.0074768
-0.0035706
--0.0007019
--0.0018005
--0.0029602
--0.0023193
--0.00073242
-0.0014038
-0.00082397
--0.0039368
--0.0029602
-0.00082397
--0.0020447
--0.0041199
-0.00024414
-0.0016479
-6.1035e-005
-0.0018005
-0.0018005
-0.00012207
-0.0010376
-0.002533
-0.0014954
-0.00036621
-0.00079346
-0.00094604
-0.0011902
-0.0019531
-0.00042725
--0.00085449
-0.0005188
-0.0031433
-0.0026855
-0.00018311
--0.00039673
--0.0024719
--0.0032654
--0.0005188
-0.0015259
-0.0037842
-0.0050964
-0.0016479
--0.0021362
--0.00012207
-0.0028992
-0.0024414
-0.0023804
-0.0014954
--0.0023499
--0.0046082
--0.0035706
--0.002594
--0.0038147
--0.0046082
--0.0034485
--0.0012512
-0.0013428
-0.0032959
-0.0028992
-0.00177
-0.0010986
-0.0013123
-0.0013733
-0.00027466
--0.0010986
--0.0021362
--0.0028076
--0.0026245
--0.001709
--0.0014954
--0.0023499
--0.0031433
--0.0021667
-0.0005188
-0.0026855
-0.0026855
-0.002594
-0.0027466
-0.0014038
-0.0013123
-0.0020447
-0.00079346
--0.0020142
--0.0056152
--0.0064697
--0.0036011
--0.0022583
--0.0026855
--0.0043945
--0.0053101
--0.0040283
-
-0.0037537
-0.0042725
-0.0011902
--0.0022278
--0.0029602
--0.0010681
--0.00073242
--0.0016479
--0.0016479
--0.0025635
--0.0043945
--0.0047607
--0.0046387
--0.0053711
--0.0048828
--0.0026855
--0.00064087
--0.0018616
--0.0048523
--0.0057678
--0.0036926
--0.0014954
-0.00027466
-9.1553e-005
--0.0014648
--0.0019531
--0.0023193
--0.0019836
--0.0013733
--0.0019226
--0.0024109
--0.0020447
--0.0024109
--0.0036316
--0.004364
--0.004303
--0.0024719
--0.0018005
--0.0028992
--0.0041809
--0.0042419
--0.002655
--0.0011292
--0.0013733
--0.00097656
-0.00012207
-0.0014648
-0.0018616
-0.00064087
--0.0013733
--0.0023804
--0.0031738
--0.0028687
--0.0013428
--0.0012207
--0.0021362
--0.0026245
--0.0025635
--0.002533
--0.0022278
--0.0018005
--0.0012512
--0.0012512
--0.0014954
--0.00088501
--0.00091553
--0.0016479
--0.0015869
--0.0020142
--0.0023804
--0.0027466
--0.0044556
--0.007019
--0.0079651
--0.0075378
--0.0065918
--0.0057983
--0.0054321
--0.0054321
--0.0056458
--0.0057068
--0.0052185
--0.0038757
--0.002655
--0.0022888
--0.0030823
--0.004303
--0.004364
--0.0042419
--0.0050964
--0.0058594
--0.0059814
--0.0056763
--0.0058289
--0.004364
--0.0027771
--0.0033264
--0.0039368
--0.0028992
--0.0033264
--0.0044861
--0.0033875
--0.0014343
--0.0016785
--0.002655
--0.0023499
--0.0019531
--0.0037231
--0.0056458
--0.0056458
--0.0047913
--0.0050964
--0.0064697
--0.0078735
--0.006897
--0.0050659
--0.0048218
--0.0053101
--0.0048218
--0.0040283
--0.0039063
--0.0020142
--6.1035e-005
--0.0013123
--0.0045166
--0.0067749
--0.0056152
--0.0028076
--0.0011292
--0.00057983
--0.0012512
--0.002655
--0.0037537
--0.0045471
--0.0049133
--0.0031433
--0.0022278
--0.0033264
--0.0045471
--0.0041199
--0.0038147
--0.004303
--0.0038147
--0.0028992
--0.0028992
--0.0033264
--0.0032043
--0.0042725
--0.0054932
--0.0053711
--0.0050049
--0.0049438
--0.0053101
--0.0067139
--0.0070801
--0.0057678
--0.004364
--0.0036621
--0.003479
--0.0032959
--0.0026245
--0.0028687
--0.0036011
--0.0045166
--0.0056152
--0.0064697
--0.0061646
--0.0048828
--0.0038452
--0.0040283
--0.0057373
--0.0069275
--0.0066223
--0.0054016
--0.0039978
--0.0036316
--0.004303
--0.0047913
--0.0045471
--0.0038757
--0.0031433
--0.0022278
--0.0022583
--0.0016479
--0.0015259
--0.0026855
--0.00354
--0.0042725
--0.0064697
--0.008606
--0.0075684
--0.0057068
--0.0049744
--0.0044861
--0.0041809
--0.0046082
--0.0050964
--0.004425
--0.0023804
--0.0010376
--0.0013428
--0.0027466
--0.0048828
--0.0062866
--0.0065308
--0.0059814
--0.0046387
--0.00354
--0.0030518
--0.0037842
--0.0044556
--0.0048828
--0.0050659
--0.005127
--0.005249
--0.0046997
--0.0045166
--0.0056152
--0.0065918
--0.006897
--0.0063782
--0.0059509
--0.0062561
--0.0057068
--0.0047302
--0.004303
--0.004364
--0.0046082
--0.0049744
--0.004364
--0.0027161
--0.00024414
-0.00079346
--0.00018311
--0.0012512
--0.0022888
--0.0033264
--0.0039978
--0.0037537
--0.0039978
--0.004364
--0.0045776
--0.0053711
--0.0058594
--0.0045776
--0.0026855
--0.0013123
--0.00076294
--0.0015564
--0.0035095
--0.004364
--0.0041809
--0.0044861
--0.005249
--0.005249
--0.0056152
--0.0067749
--0.0074463
--0.0062561
--0.0054626
--0.0055847
--0.0056458
--0.0053406
--0.0049133
--0.004303
--0.0035706
--0.0027771
--0.0022888
--0.0021362
--0.0015259
--0.0010376
--0.0011902
--0.0029602
--0.0050964
--0.0056152
--0.005249
--0.0048828
--0.0042114
--0.003479
--0.0033569
--0.0033264
--0.0032654
--0.0023499
--0.0013123
--0.00088501
--0.00082397
--0.00097656
--0.001709
--0.0031128
--0.0049438
--0.0062561
--0.0066833
--0.006073
--0.0053711
--0.005249
--0.0054321
--0.0050049
--0.0042114
--0.003418
--0.0029297
--0.0021667
--0.0017395
--0.0022888
--0.0033875
--0.0046082
--0.0054016
--0.0050049
--0.0040283
--0.0040283
--0.0043945
--0.0039063
--0.0040283
--0.0049438
--0.0062866
--0.0063477
--0.0030518
--0.00045776
-3.0518e-005
--0.00088501
--0.0042725
--0.0043945
--0.0045776
--0.0049744
--0.0052185
--0.0052185
--0.0049744
--0.0048523
--0.0046692
--0.004425
--0.004425
--0.0046997
--0.0048218
--0.0053711
--0.0057373
--0.0058594
--0.0057068
--0.0058899
--0.0057678
--0.0058289
--0.0057373
--0.0056763
--0.0054321
--0.0054626
--0.0052795
--0.0052795
--0.0049133
--0.0047913
--0.0048523
--0.0050964
--0.0052795
--0.005249
--0.0053711
--0.0054321
--0.0053101
--0.0050659
--0.0049133
--0.0047302
--0.0045471
--0.004364
--0.0041199
--0.0039368
--0.0039368
--0.0041199
--0.004425
--0.0044861
--0.0043335
--0.0042114
--0.0038452
--0.0036011
--0.003418
--0.0032349
--0.0032959
--0.0036621
--0.0037842
--0.0039063
--0.0040283
--0.0041504
--0.0040283
--0.0040894
--0.0039063
--0.0036621
--0.0036011
--0.0038452
--0.0038452
--0.0040283
--0.0039978
--0.0041199
--0.0039368
--0.0039978
--0.0039978
--0.0039978
--0.0042419
--0.004425
--0.0045471
--0.0043945
--0.0042725
--0.0043945
--0.0040283
--0.0038452
--0.0038452
--0.0038452
--0.0039063
--0.0040283
--0.0036621
--0.0039063
--0.0037231
--0.0036621
--0.0036621
--0.0033569
--0.0032959
--0.0032349
--0.0031128
--0.0032959
--0.0030518
--0.0031738
--0.0030518
--0.0029907
--0.0028076
--0.0025635
--0.0025024
--0.0021362
--0.0020752
--0.0020142
--0.0019226
--0.0019226
--0.0021057
--0.0021667
--0.0022278
--0.0022278
--0.0021667
--0.0022888
--0.0021667
--0.0021057
--0.0022888
--0.0023499
--0.002594
--0.0024109
--0.0024109
--0.0022278
--0.0021667
--0.0024719
--0.0024719
--0.0024109
--0.0026855
--0.0028687
--0.0028687
--0.0027466
--0.0027466
--0.002655
--0.0026855
--0.0024109
--0.0020447
--0.0022278
--0.0020447
--0.0019836
--0.0020447
--0.0018616
--0.0017395
--0.0016785
--0.0015564
--0.0014343
--0.0012512
--0.0012512
--0.0010071
--0.0010071
--0.0010376
--0.0010376
--0.0010376
--0.0012207
--0.0011292
--0.0012512
--0.0010071
--0.00088501
--0.00085449
--0.0011597
--0.00097656
--0.0010986
--0.0013733
--0.0014343
--0.0016174
--0.0016174
--0.0014343
--0.0013428
--0.00091553
--0.0010986
--0.0016479
--0.00177
--0.0019836
--0.0019226
--0.0020447
--0.0022278
--0.0024719
--0.002594
--0.0024109
--0.0022278
--0.0020447
--0.0021667
--0.0022888
--0.0022278
--0.0021667
--0.0017395
--0.0015564
--0.0016785
--0.0017395
--0.0016174
--0.0014343
--0.0013733
--0.0012512
--0.00094604
--0.00091553
--0.00073242
--0.00073242
--0.00061035
--0.00015259
-0.00015259
-6.1035e-005
-6.1035e-005
--0.00012207
--0.00015259
--0.00045776
--0.00057983
--0.00082397
--0.00085449
--0.00097656
--0.0010376
--0.00079346
--0.00064087
--0.00045776
--0.00082397
--0.00094604
--0.0010376
--0.0012207
--0.0014038
--0.0014038
--0.0016785
--0.0018616
--0.0019836
--0.0020447
--0.0021667
--0.0022888
--0.0022278
--0.0023193
--0.0024414
--0.0028076
--0.0026855
--0.0024414
--0.0021362
--0.0020752
--0.0020142
--0.0019836
--0.0022888
--0.0021667
--0.0019226
--0.0016174
--0.0013733
--0.0011902
--0.00088501
--0.00097656
--0.00079346
--0.00067139
--0.00027466
--0.00045776
--0.0007019
--0.0011902
--0.0014648
--0.0012207
--0.00097656
--0.00091553
--0.0010071
--0.0011292
--0.0012512
--0.0011902
--0.0011292
--0.0012207
--0.0015259
--0.0018921
--0.0020752
--0.0020752
--0.0021057
--0.0022278
--0.0020447
--0.0020447
--0.0023499
--0.0023499
--0.002533
--0.002594
--0.0024109
--0.0024719
--0.0024719
--0.0028381
--0.0028992
--0.0031433
--0.0032654
--0.0032043
--0.0032654
--0.0032654
--0.0033264
--0.0032043
--0.0027771
--0.002533
--0.0024719
--0.0021057
--0.0021057
--0.0020447
--0.0022888
--0.0024719
--0.002655
--0.0028381
--0.0028381
--0.002655
--0.0022888
--0.0021057
--0.0021057
--0.0019226
--0.0016785
--0.0016785
--0.0021057
--0.0021057
--0.0022583
--0.0025024
--0.0022583
--0.0025024
--0.0026245
--0.0028687
--0.0029297
--0.0031128
--0.0033264
--0.0033875
--0.003418
--0.0032654
--0.0030823
--0.0033875
--0.0032654
--0.0032654
--0.003479
--0.0038452
--0.0039673
--0.0041504
--0.0041504
--0.0040894
--0.0038452
--0.0037231
--0.0032043
--0.0027771
--0.0027771
--0.0029602
--0.0030823
--0.0033264
--0.003418
--0.0036011
--0.00354
--0.00354
--0.00354
--0.0036011
--0.0037231
--0.0037231
--0.0039673
--0.0040283
--0.0039063
--0.0040283
--0.0038452
--0.0040283
--0.0040283
--0.0040894
--0.0041504
--0.0040894
--0.0041504
--0.0044556
--0.0041504
--0.0042114
--0.0039673
--0.0039063
--0.003479
--0.00354
--0.003479
--0.0038452
--0.0042114
--0.0048218
--0.005249
--0.005249
--0.0057373
--0.0057983
--0.0058594
--0.0057983
--0.0057678
--0.0054016
--0.0051575
--0.0048523
--0.004425
--0.004303
--0.0042419
--0.004303
--0.004303
--0.004364
--0.004364
--0.0045471
--0.0049133
--0.0051575
--0.0052185
--0.0052795
--0.005249
--0.0054321
--0.0053711
--0.005127
--0.0048828
--0.0047607
--0.0048828
--0.0047913
--0.0050964
--0.0055847
--0.0058899
--0.0059509
--0.0058594
--0.0056152
--0.005249
--0.0049438
--0.0053101
--0.0053711
--0.0054932
--0.0054932
--0.0056458
--0.0057068
--0.006012
--0.006073
--0.0063782
--0.0062256
--0.0061035
--0.0062256
--0.0061951
--0.0065613
--0.0065613
--0.0068665
--0.007019
--0.0070801
--0.0067749
--0.0066528
--0.0068665
--0.0068054
--0.0065613
--0.0066223
--0.0063477
--0.0062866
--0.0057373
--0.0057068
--0.0054626
--0.0053406
--0.0050964
--0.0052185
--0.0052795
--0.0055237
--0.0058594
--0.0061035
--0.0061035
--0.0059204
--0.0056458
--0.0054626
--0.0050964
--0.0050964
--0.0049744
--0.0050964
--0.0050964
--0.0055237
--0.0059814
--0.0058594
--0.0059814
--0.0058289
--0.0058289
--0.006012
--0.0058899
--0.0057373
--0.0057373
--0.0056152
--0.0056763
--0.0056458
--0.0057678
--0.0057068
--0.0058899
--0.0056152
--0.0054932
--0.005188
--0.0053101
--0.005188
--0.0054932
--0.0057678
--0.006073
--0.0061951
--0.0063782
--0.0063477
--0.0059814
--0.0059814
--0.006012
--0.0058899
--0.0055847
--0.0054016
--0.0054321
--0.0055542
--0.0061035
--0.0062256
--0.0061951
--0.006134
--0.006012
--0.0059509
--0.0058594
--0.0059814
--0.0057983
--0.0057983
--0.0054626
--0.0050964
--0.0049744
--0.0050964
--0.0053406
--0.0055847
--0.0061646
--0.0061646
--0.0059814
--0.0059204
--0.0061035
--0.0062256
--0.0059814
--0.0058289
--0.0055847
--0.0055847
--0.0057068
--0.0058899
--0.006012
--0.006134
--0.006134
--0.0061646
--0.0062866
--0.0063477
--0.0065308
--0.0062256
--0.0059814
--0.0059509
--0.0058899
--0.0055237
--0.0054016
--0.0053406
--0.0050354
--0.0048523
--0.0046082
--0.0047302
--0.0047302
--0.0049744
--0.0049744
--0.0050354
--0.0049133
--0.0045471
--0.0042419
--0.0039368
--0.0041199
--0.0044861
--0.0046082
--0.0045471
--0.0041809
--0.0040588
--0.0042419
--0.004364
--0.0046082
--0.004425
--0.0042419
--0.0041199
--0.0041809
--0.0046082
--0.0047913
--0.0049133
--0.0050964
--0.0054016
--0.0058289
--0.0059204
--0.0059204
--0.0056763
--0.0053711
--0.0047607
--0.0045776
--0.0043945
--0.0044556
--0.0046997
--0.0048828
--0.0048828
--0.0049438
--0.0047607
--0.0045776
--0.0044556
--0.0045166
--0.0042725
--0.0040894
--0.0040894
--0.0037842
--0.0036621
--0.0032349
--0.0031128
--0.0029297
--0.0028381
--0.0028992
--0.0030212
--0.0030823
--0.0033875
--0.0036316
--0.0038452
--0.0039673
--0.0037537
--0.0035095
--0.0034485
--0.0033875
--0.0033875
--0.0032654
--0.0033264
--0.0033875
--0.0035095
--0.0039673
--0.0042114
--0.0043945
--0.0043335
--0.0042114
--0.0042114
--0.0042725
--0.0043945
--0.0043335
--0.0043335
--0.0042725
--0.0042114
--0.0042725
--0.0041504
--0.0042114
--0.0041504
--0.0039673
--0.0040283
--0.0042114
--0.0042114
--0.0040283
--0.0038452
--0.0035095
--0.0030823
--0.0027161
--0.0023499
--0.0024109
--0.002533
--0.002655
--0.0028992
--0.0030823
--0.0031128
--0.0031128
--0.0028076
--0.0025024
--0.0023193
--0.0020447
--0.0021667
--0.002533
--0.002533
--0.0028381
--0.0030212
--0.0033569
--0.0036621
--0.0036621
--0.0033569
--0.0029907
--0.0028687
--0.0024414
--0.0021057
--0.0019226
--0.0019836
--0.0021057
--0.0022888
--0.0022888
--0.0021057
--0.0021973
--0.0023193
--0.0024414
--0.0026855
--0.0026245
--0.0025024
--0.0023193
--0.0019531
--0.0016479
--0.0013733
--0.0011292
--0.0010681
--0.0010681
--0.0012512
--0.0015259
--0.0018311
--0.001709
--0.0018311
--0.0015259
--0.0015869
--0.0013428
--0.0010681
--0.00082397
--0.00082397
--0.00064087
--0.00067139
--0.00085449
--0.0011597
--0.00097656
--0.0010681
--0.0011902
--0.0013733
--0.0012512
--0.0010986
--0.00097656
--0.00079346
--0.00073242
--0.00076294
--0.00064087
--0.00076294
--0.00082397
--0.00085449
--0.00073242
--0.00097656
--0.0012207
--0.0016785
--0.0019226
--0.0021667
--0.0021057
--0.0017395
--0.0014954
--0.0012512
--0.0011902
--0.0010681
--0.00097656
--0.0014648
--0.0011597
--0.0013428
--0.0014954
--0.0013123
--0.0011902
--0.00082397
--0.00042725
--0.00012207
-0.00012207
--0.00015259
-3.0518e-005
--0.00024414
--0.00024414
--0.00024414
--0.00015259
-9.1553e-005
-9.1553e-005
--0.00012207
--0.00018311
--0.00045776
--0.00015259
--3.0518e-005
-0.00012207
--0.00012207
--0.00048828
--0.00057983
--0.00082397
--0.0010071
--0.0010071
--0.00097656
--0.0011597
--0.0010376
--0.0011597
--0.0012512
--0.0012512
--0.0012512
--0.0012512
--0.0013428
--0.00177
--0.0018311
--0.00177
--0.0016174
--0.0015564
--0.0013123
--0.0014954
--0.0014648
--0.0015259
--0.0015869
--0.001709
--0.0014343
--0.0014343
--0.0011292
--0.0010071
--0.00097656
--0.00085449
--0.00097656
--0.00085449
--0.00064087
--0.00027466
--0.00012207
-0.00067139
-0.0019226
-0.00094604
-0.00061035
-0.00079346
-0.00039673
-0.00027466
-0.00054932
-0.00048828
-0.00045776
-0.00015259
-3.0518e-005
--0.00024414
--0.00030518
--0.00042725
-0.0033264
-0.0066528
-0.002655
--0.00015259
--0.00027466
--0.0021362
--0.0029297
--0.0020142
--0.0015869
--0.00094604
-0.0007019
-0.0016479
-0.00067139
-0.00027466
-0.00057983
--0.00039673
--0.00067139
--0.00048828
--0.00054932
--0.00061035
--0.00057983
--0.00045776
--0.00076294
--0.0010681
--0.00097656
--0.00073242
--0.00061035
-0.00076294
-0.0027161
-0.00177
-0.0015259
-0.0021057
-0.0018616
-0.0010681
-0.001709
-0.0033569
-0.0024719
-0.0018311
-0.0014038
-0.00042725
-0.0014343
-0.0023193
-0.0022583
-0.004303
-0.0074463
-0.0066223
-0.0040894
-0.0026855
-0.002655
-0.0063477
-0.0091858
-0.0075073
-0.0046692
-0.0022583
-
--0.0012817
--0.0005188
-0.0012512
-0.0010986
-0.0012207
-0.0021667
-0.0018005
-0.00097656
-0.0010986
-0.0010071
-0.00021362
--0.00030518
-0.00030518
-0.00088501
-0.0011292
-0.0016174
-0.001709
-0.0015869
-0.00088501
--0.00039673
--0.00042725
--0.00012207
-0.0021057
-0.0055542
-0.003418
-0.00064087
--0.00088501
--0.0028992
--0.0032959
--0.0026245
--0.0010376
-0.0014954
-0.0041809
-0.003418
-0.0018005
-0.0010071
-0.00067139
-0.00012207
-0.00033569
-0.0014954
-0.0026855
-0.0029602
-0.0032043
-0.0018921
--0.00024414
--0.0015869
--0.0022583
--0.0020752
--0.00094604
-0.00021362
-0.0018005
-0.0025635
-0.001709
-0.00033569
--0.0005188
--0.0011902
--0.00061035
-0.00079346
-0.002594
-0.0034485
-0.0032349
-0.0021973
-0.0017395
-0.0013123
-0.00042725
-
-6.1035e-005
--9.1553e-005
-0.00064087
-0.0012817
-0.0014038
-0.00097656
-0.0033875
-0.01001
-0.011719
-0.0087585
-0.0059204
-0.0029602
--0.0005188
--0.0032043
--0.0041809
--0.0049744
--0.0065918
--0.0067749
--0.0064697
--0.006012
--0.0052185
--0.0038147
--0.0021667
--0.0015869
--0.0011597
--0.00036621
--0.0007019
--0.0022888
--0.0041504
--0.0046997
--0.0053101
--0.0063477
--0.0057373
--0.0042725
--0.003418
--0.0031738
--0.0032959
--0.0047607
--0.0061951
--0.0066833
--0.0054626
--0.0042419
--0.0028381
--0.00045776
-0.0018921
-0.0020752
-0.0014954
-0.0019226
-0.0024414
-0.002655
-0.0030212
-0.0033569
-0.0038757
-0.0046692
-0.0045166
-0.0036926
-0.0021667
-0.00061035
-0.00024414
-0.00088501
-0.0021057
-0.00354
-0.0058899
-0.006958
-0.0065613
-0.0059814
-0.0053406
-0.0042114
-0.0039368
-0.0053406
-0.0066528
-0.0069885
-0.0074158
-0.0077515
-0.0069885
-0.0057373
-0.0049133
-0.0042419
-0.0033569
-0.0027771
-0.0033875
-0.0040894
-0.0044861
-0.005127
-0.0046692
-0.0038757
-0.0030518
-0.0028076
-0.0035706
-0.0046387
-0.0059509
-0.0074463
-0.0079651
-0.0071411
-0.0055847
-0.004364
-0.0036621
-0.0028381
-0.0032654
-0.0043335
-0.0051575
-0.0056152
-0.0057678
-0.0053101
-0.0046082
-0.0039368
-0.0036011
-0.0038147
-0.0049438
-0.0057983
-0.0062561
-0.0064697
-0.0063782
-0.0055542
-0.0053406
-0.0058594
-0.006073
-0.0062866
-0.0074158
-0.0080566
-0.0076294
-0.0072937
-0.007019
-0.006012
-0.0050659
-0.0055237
-0.0057983
-0.006134
-0.0067749
-0.0075989
-0.0075073
-0.0071716
-0.0070801
-0.0071106
-0.0071411
-0.0075378
-0.0078735
-0.0079041
-0.0081177
-0.0082092
-0.0073853
-0.0068665
-0.0059204
-0.0054626
-0.0057373
-0.0061951
-0.0070801
-0.0075378
-0.0079956
-0.007843
-0.0079956
-0.0080872
-0.0074768
-0.0066223
-0.0061646
-0.006073
-0.0054932
-0.0050354
-0.0044556
-0.0041809
-0.003418
-0.0030518
-0.0031433
-0.0028076
-0.0025024
-0.002594
-0.0023193
-0.0015259
-0.00082397
-9.1553e-005
--0.0013123
--0.0028992
--0.0036621
--0.0036011
--0.0031738
--0.0025635
--0.0020142
--0.0022583
--0.0032654
--0.0042725
--0.005127
--0.0057983
--0.0062256
--0.0061035
--0.0055542
--0.0053711
--0.0053711
--0.0052185
--0.0055237
--0.0054016
--0.0050354
--0.0050354
--0.006134
--0.0071106
--0.0073547
--0.0078735
--0.0097046
--0.011993
--0.012939
--0.014252
--0.014709
--0.013885
--0.012695
--0.011322
--0.0097961
--0.0084534
--0.0079956
--0.0081787
--0.0082092
--0.0080261
--0.0092773
--0.010193
--0.010223
--0.010712
--0.012939
--0.015259
--0.01535
--0.014648
--0.016388
--0.017944
--0.017426
--0.016724
--0.017059
--0.017975
--0.018311
--0.01944
--0.019562
--0.018494
--0.017731
--0.015137
--0.01236
--0.01239
--0.011749
--0.010956
--0.013092
--0.017456
--0.018402
--0.016663
--0.018097
--0.019257
--0.015808
--0.012848
--0.012665
--0.012573
--0.011505
--0.011169
--0.01178
--0.012726
--0.012878
--0.012665
--0.012939
--0.013763
--0.013672
--0.013092
--0.0088806
-0.00015259
-0.012726
-0.024048
-0.034393
-0.04425
-0.049469
-0.049255
-0.047028
-0.042084
-0.035767
-0.029938
-0.02478
-0.017517
-0.010071
-0.0075989
-0.0078125
-0.0089417
-0.011871
-0.016693
-0.020538
-0.023438
-0.025604
-0.027618
-0.028137
-0.026031
-0.022339
-0.017822
-0.012665
-0.0081177
-0.0047913
-0.0041504
-0.0042419
-0.0029602
-0.00036621
--0.0053711
--0.013092
--0.020294
--0.024323
--0.025909
--0.026337
--0.025543
--0.024109
--0.022827
--0.020935
--0.018097
--0.014587
--0.010529
--0.0057068
--0.0030212
--0.004303
--0.0078735
--0.012115
--0.016785
--0.021698
--0.02536
--0.027069
--0.027008
--0.024872
--0.020081
--0.013153
--0.0063171
-3.0518e-005
-0.0062866
-0.012421
-0.015961
-0.017883
-0.019897
-0.021973
-0.023407
-0.024536
-0.025452
-0.025238
-0.025208
-0.027435
-0.029541
-0.029144
-0.028137
-0.028107
-0.027588
-0.025482
-0.023224
-0.022583
-0.022247
-0.023529
-0.026917
-0.031525
-0.035614
-0.039337
-0.042084
-0.043304
-0.041321
-0.036713
-0.03067
-0.024628
-0.018738
-0.013153
-0.0075989
-0.0023499
--0.0010071
--0.0021057
--0.0018921
--0.00054932
-0.0021973
-0.0050354
-0.0065918
-0.0071106
-0.0067749
-0.0044861
-0.0011902
--0.0012817
--0.0029297
--0.0050964
--0.0069885
--0.0074768
--0.0074463
--0.007019
--0.0062256
--0.0055847
--0.0054016
--0.0055847
--0.0057678
--0.0059814
--0.0058594
--0.0048218
--0.0023804
-0.00057983
-0.0036316
-0.0068359
-0.010162
-0.012665
-0.014618
-0.015747
-0.016052
-0.015076
-0.013306
-0.0112
-0.008728
-0.0065002
-0.0053101
-0.0052185
-0.0063477
-0.0079041
-0.010162
-0.012268
-0.01355
-0.01355
-0.012604
-0.011261
-0.0085449
-0.0055847
-0.0023804
--0.00085449
--0.0037231
--0.0061035
--0.0085144
--0.011017
--0.012695
--0.014191
--0.016296
--0.018036
--0.019562
--0.02182
--0.025146
--0.027679
--0.0289
--0.029633
--0.030273
--0.029968
--0.028931
--0.028137
--0.027191
--0.028107
--0.030121
--0.031494
--0.033783
--0.036865
--0.040375
--0.04483
--0.047943
--0.04837
--0.047699
--0.04599
--0.043182
--0.040894
--0.038391
--0.033875
--0.028107
--0.02478
--0.024841
--0.022339
--0.019623
--0.021149
--0.025604
--0.026642
--0.024109
--0.026123
--0.030304
--0.028046
--0.022308
--0.021606
--0.022095
--0.016937
--0.007843
--0.0054321
--0.0075684
--0.0056763
--0.0023804
--0.00177
--0.0028076
--0.00048828
-0.0028992
-0.00015259
--0.001709
-0.0020142
-0.0052185
-0.0095215
-0.017334
-0.028534
-0.036407
-0.041718
-0.047668
-0.050262
-0.055145
-0.067688
-0.077057
-0.07489
-0.069061
-0.067017
-0.056274
-0.038452
-0.027649
-0.026215
-0.022522
-0.015991
-0.014557
-0.013641
-0.0081787
-0.0056458
-0.011414
-0.019562
-0.021576
-0.022034
-0.021118
-0.01532
-0.0082092
-0.0027466
--0.0021973
--0.0089722
--0.014923
--0.020905
--0.030487
--0.038177
--0.04071
--0.041382
--0.040802
--0.037048
--0.034027
--0.036743
--0.040619
--0.03775
--0.030853
--0.024078
--0.018311
--0.012177
--0.0083618
--0.0090942
--0.011444
--0.011993
--0.010864
--0.010406
--0.0090637
--0.0081177
--0.0095215
--0.01297
--0.013977
--0.009613
--0.003479
-0.0037842
-0.012756
-0.020752
-0.027924
-0.034149
-0.039642
-0.042572
-0.044128
-0.045471
-0.044464
-0.040985
-0.037994
-0.036407
-0.034058
-0.030823
-0.028351
-0.025665
-0.020721
-0.016998
-0.017853
-0.020264
-0.021057
-0.020996
-0.020294
-0.018646
-0.016754
-0.016632
-0.017609
-0.017242
-0.016388
-0.013702
-0.0073242
--0.0010986
--0.0097046
--0.016724
--0.022064
--0.025604
--0.028046
--0.031677
--0.034698
--0.033966
--0.029663
--0.022797
--0.013458
--0.0063782
--0.0032043
--0.0021667
--0.00018311
-0.0032959
-0.0097046
-0.017334
-0.02179
-0.0242
-0.028015
-0.028717
-0.024506
-0.022888
-0.027802
-0.031982
-0.030731
-0.029541
-0.030029
-0.028473
-0.026459
-0.029236
-0.03595
-0.041687
-0.045868
-0.051086
-0.054382
-0.052094
-0.047729
-0.045654
-0.043488
-0.038605
-0.033081
-0.027985
-0.022003
-0.016266
-0.013947
-0.014496
-0.017059
-0.020233
-0.022705
-0.024414
-0.025299
-0.024597
-0.023804
-0.024323
-0.025726
-0.025269
-0.022034
-0.017822
-0.013306
-0.0083313
-0.0037842
-0.00079346
--0.0013123
--0.0046997
--0.0080566
--0.0096741
--0.01181
--0.014893
--0.015167
--0.010559
--0.0043335
--0.00024414
-0.002594
-0.0038452
-0.0022583
--0.0010376
--0.0038452
--0.0061035
--0.0084839
--0.011749
--0.01532
--0.018494
--0.021881
--0.024567
--0.023651
--0.019012
--0.013428
--0.0087891
--0.0043335
--0.0011597
-0.00018311
-0.0014343
-0.0031738
-0.0038452
-0.0033875
-0.0032349
-0.0019531
--0.0012817
--0.0053101
--0.0090942
--0.011749
--0.01178
--0.01062
--0.0112
--0.012451
--0.0112
--0.010284
--0.010925
--0.009552
--0.0068054
--0.0060425
--0.0079956
--0.010101
--0.013428
--0.01944
--0.024445
--0.027069
--0.029419
--0.03302
--0.036591
--0.038025
--0.04071
--0.047485
--0.049744
--0.044556
--0.04007
--0.042023
--0.041016
--0.033722
--0.032776
--0.03418
--0.029877
--0.02359
--0.023254
--0.022583
--0.018524
--0.02005
--0.026886
--0.027496
--0.020905
--0.018982
--0.023865
--0.021118
--0.013062
--0.013092
--0.017365
--0.011139
--0.00094604
--0.0016174
-0.0025024
-0.015411
-0.021423
-0.020508
-0.025482
-0.039948
-0.051208
-0.058594
-0.06723
-0.073242
-0.079834
-0.084351
-0.089569
-0.093262
-0.088501
-0.078796
-0.068024
-0.05838
-0.042999
-0.029236
-0.025055
-0.026672
-0.02832
-0.027496
-0.028381
-0.026337
-0.025146
-0.030914
-0.032043
-0.029266
-0.023987
-0.014221
-0.0010986
--0.013885
--0.024261
--0.034088
--0.043121
--0.046539
--0.046478
--0.05011
--0.056305
--0.055084
--0.050537
--0.046936
--0.040802
--0.0354
--0.033051
--0.032745
--0.028748
--0.023102
--0.020233
--0.017212
--0.014435
--0.013763
--0.016602
--0.019775
--0.020111
--0.020294
--0.016418
--0.0090637
--0.0030823
-0.00042725
-0.0059509
-0.015259
-0.026276
-0.0383
-0.048767
-0.055481
-0.058929
-0.059235
-0.058014
-0.053925
-0.049744
-0.046082
-0.043976
-0.041351
-0.036835
-0.03302
-0.030945
-0.029816
-0.03064
-0.031647
-0.029846
-0.026215
-0.024597
-0.023743
-0.021149
-0.018127
-0.014526
-0.0094299
-0.0029297
--0.0021973
--0.0063477
--0.011871
--0.018372
--0.024475
--0.030243
--0.037842
--0.045776
--0.049988
--0.050415
--0.048248
--0.043945
--0.039001
--0.035706
--0.033295
--0.029205
--0.024292
--0.02066
--0.018768
--0.018555
--0.020203
--0.022827
--0.026062
--0.028625
--0.028442
--0.025024
--0.019531
--0.013763
--0.0085144
--0.002533
-0.0055542
-0.016296
-0.029449
-0.040741
-0.045166
-0.046661
-0.050842
-0.057465
-0.064148
-0.074921
-0.086151
-0.086731
-0.080872
-0.075897
-0.068726
-0.055237
-0.042603
-0.036499
-0.030731
-0.022614
-0.017181
-0.01413
-0.011719
-0.011597
-0.01535
-0.018982
-0.018616
-0.016327
-0.012482
-0.0044556
--0.007019
--0.017761
--0.026184
--0.033264
--0.038116
--0.041962
--0.045563
--0.047333
--0.045013
--0.039001
--0.033051
--0.028046
--0.023773
--0.020294
--0.016907
--0.012665
--0.0083923
--0.0053406
--0.0024109
-0.00045776
-0.00042725
--0.0036011
--0.0090942
--0.012909
--0.015259
--0.01709
--0.017487
--0.016968
--0.017059
--0.016235
--0.012909
--0.0090942
--0.0057983
--0.0012817
-0.0044861
-0.0088501
-0.0082397
-0.0030518
--0.0050049
--0.013336
--0.019714
--0.02301
--0.02417
--0.024902
--0.02533
--0.024292
--0.022644
--0.021393
--0.019989
--0.017212
--0.013458
--0.01123
--0.011932
--0.015381
--0.018921
--0.022583
--0.025696
--0.027893
--0.029541
--0.032623
--0.036804
--0.039398
--0.039673
--0.042114
--0.046082
--0.048523
--0.05072
--0.053864
--0.056274
--0.057343
--0.059021
--0.059753
--0.057892
--0.05545
--0.054077
--0.05368
--0.051788
--0.051575
--0.055328
--0.059509
--0.063538
--0.064972
--0.06308
--0.059692
--0.055756
--0.052185
--0.048401
--0.041138
--0.031799
--0.021179
--0.016144
--0.015564
--0.0084229
--0.0063171
--0.013977
--0.018585
--0.016296
--0.019012
--0.029724
--0.029968
--0.02301
--0.027466
--0.030792
--0.028778
--0.026337
--0.024506
--0.01825
--0.013641
--0.016846
--0.011505
-0.00015259
-0.0043335
-0.0088196
-0.018646
-0.02533
-0.022949
-0.029022
-0.043457
-0.048523
-0.050964
-0.062256
-0.069916
-0.056396
-0.036743
-0.027985
-0.018524
-0.0020142
--0.0052185
--0.00061035
--0.0015259
--0.0072021
--0.0063782
--0.0036316
--0.00024414
-0.0062561
-0.014465
-0.017517
-0.013916
-0.0079651
--0.0051575
--0.019714
--0.029144
--0.03772
--0.046814
--0.054962
--0.058838
--0.062164
--0.064606
--0.06073
--0.053009
--0.046051
--0.042358
--0.038055
--0.033264
--0.031219
--0.031586
--0.029602
--0.023926
--0.021881
--0.025787
--0.031555
--0.03598
--0.039307
--0.041321
--0.039276
--0.035217
--0.031921
--0.02774
--0.021851
--0.01535
--0.0085449
-0.0007019
-0.011841
-0.020752
-0.026764
-0.028931
-0.026093
-0.020721
-0.015594
-0.010651
-0.0046692
--0.00048828
--0.0028687
--0.0046387
--0.0065918
--0.0062561
--0.0038147
--0.0035706
--0.0046082
--0.0042419
--0.0032959
--0.0031128
--0.0042114
--0.0056152
--0.0086975
--0.013733
--0.020111
--0.02652
--0.031128
--0.034485
--0.037231
--0.040985
--0.046661
--0.053101
--0.059113
--0.062775
--0.063721
--0.060944
--0.056152
--0.051483
--0.047394
--0.042999
--0.040527
--0.039215
--0.036255
--0.032928
--0.032593
--0.035858
--0.040039
--0.044312
--0.048157
--0.049622
--0.046997
--0.042664
--0.037933
--0.032074
--0.024506
--0.017059
--0.0093994
--0.0021667
-0.0038757
-0.0079956
-0.0097656
-0.009491
-0.0080566
-0.0066833
-0.0053711
-0.0051575
-0.0084839
-0.01236
-0.011749
-0.008667
-0.0083313
-0.011505
-0.019012
-0.030457
-0.039856
-0.043365
-0.044403
-0.044678
-0.038696
-0.027496
-0.018829
-0.011841
-0.0036926
--0.004364
--0.01239
--0.021301
--0.02948
--0.032013
--0.030579
--0.028259
--0.025269
--0.02121
--0.017334
--0.016663
--0.017914
--0.019531
--0.020813
--0.022552
--0.02359
--0.025665
--0.030121
--0.035034
--0.036652
--0.0354
--0.032684
--0.028931
--0.023468
--0.017731
--0.012238
--0.0059814
-0.0005188
-0.0066833
-0.013458
-0.020416
-0.023499
-0.021729
-0.017792
-0.013428
-0.009552
-0.0066528
-0.0050964
-0.0025024
--0.00042725
--0.0010376
--0.00045776
--0.0005188
-0.00030518
-0.0042725
-0.0098267
-0.014771
-0.0177
-0.017029
-0.012238
-0.0065918
-0.002655
--0.00082397
--0.0049744
--0.0091248
--0.012268
--0.015106
--0.018066
--0.02002
--0.020172
--0.017517
--0.01236
--0.0074158
--0.0040894
--0.0022888
--0.0022278
--0.0027161
--0.0033875
--0.0039063
--0.0045166
--0.0065918
--0.010315
--0.013519
--0.015869
--0.018616
--0.022125
--0.024017
--0.023285
--0.023285
--0.023315
--0.021423
--0.01889
--0.01593
--0.010101
--0.002655
-0.0012207
-0.00024414
--0.0010986
--0.0040283
--0.011505
--0.015808
--0.011963
--0.011505
--0.015686
--0.013824
--0.0081177
--0.0075684
--0.0061646
-0.0020142
-0.0112
-0.017609
-0.025757
-0.031769
-0.030609
-0.030518
-0.033661
-0.030884
-0.024139
-0.020294
-0.018616
-0.01825
-0.010895
-0.0010376
--0.0026855
--0.00073242
-0.0039368
-0.0037842
-0.0077209
-0.014313
-0.016846
-0.021271
-0.025116
-0.025085
-0.02536
-0.036804
-0.056458
-0.067963
-0.080719
-0.10046
-0.1152
-0.12393
-0.13538
-0.13928
-0.12396
-0.10492
-0.092987
-0.076721
-0.052429
-0.041077
-0.044189
-0.043427
-0.047485
-0.062927
-0.078552
-0.087891
-0.098694
-0.11478
-0.12048
-0.11511
-0.10571
-0.087219
-0.063782
-0.043915
-0.028748
-0.013489
-0.0030518
-0.0024719
-0.0041504
-0.0055542
-0.010925
-0.020325
-0.029999
-0.041229
-0.051971
-0.057739
-0.058411
-0.056763
-0.056396
-0.05484
-0.048828
-0.041626
-0.036377
-0.032623
-0.027588
-0.023041
-0.023407
-0.027405
-0.033997
-0.043091
-0.054382
-0.065979
-0.076752
-0.090393
-0.10419
-0.11301
-0.11725
-0.11871
-0.11612
-0.11047
-0.10529
-0.099426
-0.092682
-0.08786
-0.085571
-0.084045
-0.084229
-0.087616
-0.092194
-0.09671
-0.10312
-0.10873
-0.11115
-0.1109
-0.11057
-0.1109
-0.10925
-0.1048
-0.098572
-0.091156
-0.082794
-0.074463
-0.067078
-0.059448
-0.052582
-0.047485
-0.044678
-0.044098
-0.045654
-0.050629
-0.058838
-0.068085
-0.075745
-0.080811
-0.082947
-0.081482
-0.078857
-0.074738
-0.067993
-0.060242
-0.05423
-0.0495
-0.046295
-0.046906
-0.051819
-0.058838
-0.067841
-0.078979
-0.089447
-0.097992
-0.10519
-0.11176
-0.11673
-0.11942
-0.11981
-0.11829
-0.11557
-0.11359
-0.11221
-0.11072
-0.1095
-0.11008
-0.11475
-0.12439
-0.13663
-0.14474
-0.14886
-0.1532
-0.15833
-0.16122
-0.16037
-0.15771
-0.15253
-0.14398
-0.13303
-0.12076
-0.10855
-0.09726
-0.08902
-0.085571
-0.084778
-0.084229
-0.085388
-0.089142
-0.093872
-0.09729
-0.099701
-0.10068
-0.099091
-0.094788
-0.088226
-0.080292
-0.072296
-0.066406
-0.06366
-0.063507
-0.063873
-0.06543
-0.069122
-0.075378
-0.084167
-0.093109
-0.10098
-0.1076
-0.11276
-0.11523
-0.1149
-0.11359
-0.112
-0.10995
-0.10748
-0.10492
-0.10074
-0.095795
-0.092407
-0.092377
-0.093933
-0.095367
-0.09726
-0.10049
-0.10385
-0.10605
-0.10648
-0.10522
-0.10266
-0.10007
-0.097687
-0.093872
-0.087494
-0.080414
-0.074585
-0.070526
-0.068085
-0.068237
-0.070587
-0.074341
-0.077698
-0.080688
-0.082642
-0.083435
-0.083618
-0.083862
-0.083252
-0.080566
-0.076599
-0.072357
-0.069519
-0.066345
-0.062439
-0.058533
-0.055054
-0.053009
-0.050232
-0.049896
-0.052246
-0.055603
-0.061096
-0.065521
-0.071198
-0.074493
-0.072021
-0.067993
-0.064423
-0.062164
-0.056427
-0.050049
-0.051239
-0.057739
-0.062225
-0.065399
-0.075378
-0.088043
-0.094482
-0.097565
-0.10428
-0.1087
-0.10779
-0.10684
-0.1077
-0.10318
-0.099243
-0.099609
-0.10382
-0.10553
-0.10663
-0.10983
-0.10934
-0.10773
-0.1087
-0.10934
-0.10953
-0.11078
-0.11807
-0.12512
-0.12708
-0.13669
-0.15375
-0.1701
-0.18631
-0.20883
-0.23511
-0.2525
-0.26089
-0.26309
-0.25488
-0.23621
-0.21506
-0.1954
-0.17645
-0.16135
-0.15607
-0.15881
-0.16388
-0.17334
-0.18994
-0.20734
-0.22415
-0.24005
-0.25037
-0.25073
-0.24118
-0.22687
-0.20612
-0.18271
-0.1636
-0.14865
-0.1358
-0.12753
-0.12619
-0.13016
-0.13644
-0.14719
-0.16248
-0.17844
-0.1908
-0.19867
-0.20319
-0.20322
-0.20099
-0.19864
-0.1958
-0.19
-0.18253
-0.17548
-0.16943
-0.16498
-0.16431
-0.16919
-0.17831
-0.18918
-0.2005
-0.211
-0.22208
-0.23428
-0.24661
-0.25735
-0.26526
-0.2702
-0.27103
-0.26706
-0.26004
-0.25272
-0.24603
-0.23984
-0.23557
-0.23312
-0.23123
-0.23099
-0.23367
-0.23853
-0.24442
-0.25107
-0.25906
-0.26566
-0.26941
-0.27032
-0.26804
-0.26178
-0.25208
-0.24094
-0.22983
-0.21991
-0.21094
-0.20346
-0.19818
-0.19485
-0.19467
-0.19818
-0.20453
-0.21393
-0.22455
-0.23438
-0.24118
-0.24463
-0.24472
-0.2424
-0.23935
-0.23547
-0.23151
-0.22653
-0.22223
-0.21909
-0.2179
-0.21982
-0.22528
-0.23425
-0.24448
-0.2547
-0.26407
-0.27246
-0.27872
-0.28433
-0.28964
-0.29355
-0.2951
-0.29437
-0.2923
-0.28879
-0.28436
-0.27975
-0.27628
-0.27356
-0.27161
-0.27039
-0.26987
-0.27054
-0.27173
-0.27539
-0.28323
-0.29099
-0.2934
-0.29395
-0.29977
-0.30386
-0.2959
-0.28284
-0.27325
-0.2637
-0.24777
-0.23093
-0.21918
-0.20837
-0.19806
-0.19492
-0.19702
-0.1973
-0.19504
-0.1972
-0.20068
-0.19775
-0.18979
-0.18256
-0.17471
-0.16266
-0.14941
-0.13708
-0.12518
-0.11356
-0.10544
-0.10117
-0.098389
-0.096863
-0.097076
-0.099579
-0.10153
-0.10153
-0.10007
-0.098816
-0.097778
-0.094818
-0.089844
-0.083435
-0.075714
-0.066162
-0.055939
-0.047607
-0.039429
-0.030304
-0.022461
-0.018127
-0.014954
-0.0093079
-0.0042725
-0.00177
--0.00079346
--0.0054932
--0.011414
--0.018677
--0.027832
--0.037445
--0.047089
--0.057648
--0.069672
--0.081055
--0.088257
--0.093201
--0.098724
--0.10291
--0.10388
--0.10349
--0.10336
--0.10388
--0.10483
--0.10684
--0.11038
--0.11374
--0.11731
--0.12253
--0.12872
--0.13394
--0.13895
--0.14648
--0.15411
--0.15939
--0.16278
--0.16666
--0.16931
--0.16785
--0.16544
--0.16455
--0.16333
--0.16074
--0.15842
--0.15918
--0.16354
--0.16895
--0.17596
--0.18454
--0.19321
--0.19778
--0.20041
--0.20563
--0.20578
--0.1998
--0.19208
--0.18814
--0.18475
--0.17801
--0.17371
--0.17468
--0.17841
--0.18497
--0.19046
--0.1987
--0.20758
--0.21353
--0.21997
--0.22598
--0.22876
--0.22589
--0.22208
--0.22293
--0.22043
--0.20883
--0.19815
--0.19104
--0.17862
--0.15652
--0.13339
--0.11707
--0.098236
--0.083618
--0.09082
--0.11115
--0.13452
--0.16068
--0.19144
--0.21951
--0.2355
--0.24564
--0.25116
--0.24722
--0.23727
--0.22134
--0.19992
--0.17645
--0.1579
--0.1499
--0.15436
--0.17233
--0.19977
--0.22897
--0.25699
--0.28635
--0.31171
--0.32892
--0.33878
--0.34531
--0.34445
--0.3327
--0.31546
--0.29797
--0.28229
--0.2706
--0.26431
--0.26477
--0.26825
--0.27219
--0.27908
--0.28922
--0.30087
--0.31195
--0.32367
--0.33463
--0.33984
--0.3392
--0.33453
--0.32776
--0.31885
--0.30829
--0.29688
--0.28406
--0.27011
--0.25708
--0.24631
--0.24063
--0.24069
--0.24524
--0.25308
--0.26471
--0.27847
--0.29175
--0.30273
--0.31143
--0.31769
--0.32043
--0.31961
--0.31549
--0.30923
--0.30167
--0.29358
--0.28601
--0.28046
--0.27731
--0.27823
--0.28555
--0.29916
--0.31494
--0.33081
--0.34534
--0.35855
--0.36899
--0.37683
--0.38254
--0.38467
--0.38251
--0.3754
--0.3638
--0.34946
--0.33588
--0.3252
--0.31924
--0.3186
--0.32153
--0.3252
--0.32935
--0.33524
--0.34232
--0.34848
--0.3537
--0.35632
--0.35379
--0.34659
--0.33539
--0.32172
--0.30731
--0.29379
--0.28204
--0.27261
--0.26511
--0.25888
--0.25476
--0.25333
--0.254
--0.25687
--0.26028
--0.2645
--0.26843
--0.27164
--0.2735
--0.27383
--0.27271
--0.26968
--0.26535
--0.25967
--0.25134
--0.23956
--0.22885
--0.22308
--0.22076
--0.21912
--0.22229
--0.23151
--0.23889
--0.24432
--0.25314
--0.26352
--0.26984
--0.27225
--0.27518
--0.27539
--0.26993
--0.26266
--0.25549
--0.2482
--0.24298
--0.24152
--0.24353
--0.24808
--0.25482
--0.26221
--0.27017
--0.27847
--0.28427
--0.28745
--0.28943
--0.28821
--0.28302
--0.27563
--0.26816
--0.26126
--0.25488
--0.25021
--0.24756
--0.24582
--0.24496
--0.24475
--0.24591
--0.24734
--0.2486
--0.24973
--0.25122
--0.25174
--0.24976
--0.24722
--0.24545
--0.24365
--0.24042
--0.23792
--0.23593
--0.23367
--0.23151
--0.23093
--0.23203
--0.23407
--0.23761
--0.24268
--0.2482
--0.25299
--0.25629
--0.25827
--0.25955
--0.25937
--0.25778
--0.25555
--0.25201
--0.24701
--0.24207
--0.23871
--0.23602
--0.23428
--0.23477
--0.23669
--0.23853
--0.23901
--0.23889
--0.23834
--0.23749
--0.23709
--0.23697
--0.23618
--0.23529
--0.23306
--0.22852
--0.22391
--0.22092
--0.21866
--0.21524
--0.20923
--0.20068
--0.19354
--0.19177
--0.19095
--0.19272
--0.1965
--0.19559
--0.19156
--0.19092
--0.19348
--0.19244
--0.18832
--0.18518
--0.17743
--0.16452
--0.15512
--0.147
--0.13541
--0.12756
--0.12781
--0.13373
--0.13821
--0.14117
--0.14328
--0.14532
--0.1499
--0.1543
--0.15472
--0.15265
--0.14536
--0.1282
--0.10394
--0.080048
--0.054321
--0.020966
-0.011108
-0.034119
-0.046875
-0.045624
-0.029846
-0.0054016
--0.02298
--0.052582
--0.079559
--0.097504
--0.10648
--0.10727
--0.096924
--0.081696
--0.06366
--0.037964
--0.0072021
-0.016968
-0.027802
-0.027588
-0.014771
--0.0093689
--0.036865
--0.063263
--0.088654
--0.11148
--0.12943
--0.14093
--0.14383
--0.13657
--0.12061
--0.10043
--0.078308
--0.05838
--0.045258
--0.036255
--0.030701
--0.029572
--0.031097
--0.033875
--0.04007
--0.050781
--0.062714
--0.072723
--0.079254
--0.080078
--0.076355
--0.069641
--0.061462
--0.051697
--0.04126
--0.029358
--0.013397
-0.0046997
-0.019531
-0.030243
-0.036896
-0.038116
-0.034363
-0.027496
-0.01767
-0.0048828
--0.0083008
--0.020081
--0.029968
--0.03714
--0.040039
--0.038239
--0.031982
--0.022583
--0.012482
--0.0029602
-0.0062866
-0.013123
-0.014709
-0.010773
-0.00097656
--0.014313
--0.03302
--0.05127
--0.067505
--0.080292
--0.089844
--0.096802
--0.10062
--0.10052
--0.095734
--0.086639
--0.07486
--0.062439
--0.052582
--0.04715
--0.045807
--0.048431
--0.053955
--0.060577
--0.06662
--0.073639
--0.081116
--0.087952
--0.092133
--0.092743
--0.089386
--0.082825
--0.073517
--0.06311
--0.053619
--0.04483
--0.036743
--0.029236
--0.022888
--0.01828
--0.015869
--0.016754
--0.020477
--0.025421
--0.030975
--0.037048
--0.043762
--0.049255
--0.052307
--0.052399
--0.049957
--0.045319
--0.037964
--0.028229
--0.017456
--0.0065308
-0.00048828
-0.00057983
--0.0039368
--0.010315
--0.018585
--0.030243
--0.044647
--0.059204
--0.067749
--0.067749
--0.067261
--0.06897
--0.068787
--0.064087
--0.058868
--0.054474
--0.049561
--0.0495
--0.053345
--0.056305
--0.059875
--0.066589
--0.074249
--0.079346
--0.082489
--0.084137
--0.084412
--0.083679
--0.080963
--0.075531
--0.069916
--0.064178
--0.057922
--0.051819
--0.047516
--0.043823
--0.041504
--0.041229
--0.041351
--0.040405
--0.039337
--0.039764
--0.040955
--0.042969
--0.044006
--0.04306
--0.040985
--0.039307
--0.037628
--0.035706
--0.034454
--0.032867
--0.032227
--0.034027
--0.036499
--0.037811
--0.039307
--0.043274
--0.049255
--0.055145
--0.059814
--0.062592
--0.064423
--0.065521
--0.065674
--0.064453
--0.062103
--0.059113
--0.057251
--0.056763
--0.055389
--0.052704
--0.051575
--0.052734
--0.054901
--0.057495
--0.061249
--0.065338
--0.068512
--0.070465
--0.072144
--0.072754
--0.073242
--0.074066
--0.072296
--0.069
--0.065704
--0.063782
--0.062317
--0.060822
--0.062439
--0.063843
--0.064392
--0.066742
--0.072693
--0.077972
--0.078369
--0.078583
--0.08197
--0.084167
--0.0784
--0.071442
--0.067047
--0.060394
--0.052399
--0.050659
--0.053833
--0.05014
--0.048248
--0.056091
--0.065826
--0.071228
--0.080109
--0.091888
--0.094055
--0.091125
--0.08551
--0.069336
--0.0448
--0.021057
-0.0029602
-0.032349
-0.056763
-0.073029
-0.07901
-0.067596
-0.03949
-0.0055542
--0.028442
--0.066284
--0.093445
--0.10583
--0.11102
--0.1084
--0.094849
--0.076935
--0.059204
--0.03421
--0.010315
-0.0013123
-0.0011292
--0.011597
--0.039215
--0.07428
--0.10645
--0.13751
--0.16556
--0.18372
--0.19464
--0.20108
--0.19974
--0.18781
--0.1723
--0.15326
--0.1319
--0.11591
--0.10907
--0.10931
--0.11337
--0.12021
--0.12613
--0.13235
--0.14087
--0.15024
--0.15887
--0.16574
--0.16919
--0.16681
--0.16064
--0.1521
--0.14059
--0.1283
--0.11783
--0.10641
--0.091583
--0.077637
--0.066284
--0.058014
--0.054291
--0.056152
--0.061523
--0.069397
--0.081268
--0.094818
--0.10703
--0.11755
--0.12479
--0.12622
--0.12265
--0.11646
--0.10721
--0.096741
--0.088318
--0.080719
--0.074402
--0.072571
--0.075897
--0.084167
--0.099335
--0.11969
--0.14011
--0.1575
--0.1705
--0.17795
--0.17987
--0.1792
--0.17572
--0.16895
--0.15942
--0.14853
--0.13715
--0.12686
--0.12036
--0.11862
--0.12146
--0.12775
--0.1344
--0.13907
--0.14243
--0.14502
--0.1463
--0.14597
--0.14398
--0.13873
--0.13049
--0.12057
--0.11038
--0.099487
--0.0896
--0.081085
--0.073639
--0.067474
--0.062347
--0.058899
--0.05722
--0.058533
--0.06192
--0.066254
--0.070221
--0.07254
--0.073303
--0.074219
--0.074554
--0.071198
--0.064514
--0.054962
--0.042389
--0.032684
--0.02948
--0.030273
--0.032013
--0.03833
--0.049561
--0.061218
--0.074585
--0.088806
--0.098969
--0.10437
--0.10629
--0.10016
--0.088867
--0.080719
--0.0755
--0.070435
--0.067993
--0.070251
--0.07254
--0.077362
--0.087006
--0.095032
--0.10062
--0.10767
--0.11411
--0.11484
--0.11124
--0.10483
--0.094574
--0.084991
--0.077637
--0.072388
--0.068665
--0.065735
--0.062073
--0.058746
--0.058228
--0.058746
--0.059509
--0.062622
--0.065125
--0.064423
--0.062408
--0.060303
--0.057098
--0.054565
--0.053986
--0.053436
--0.050903
--0.047546
--0.04483
--0.043304
--0.044098
--0.046478
--0.048737
--0.052429
--0.057648
--0.0625
--0.066406
--0.070374
--0.0737
--0.075989
--0.0784
--0.078918
--0.076935
--0.073517
--0.069733
--0.065155
--0.060211
--0.056885
--0.056427
--0.059082
--0.06427
--0.067871
--0.070862
--0.074768
--0.07901
--0.082855
--0.087067
--0.08902
--0.086487
--0.082092
--0.077179
--0.070404
--0.063904
--0.061768
--0.06192
--0.062103
--0.064331
--0.065063
--0.0672
--0.069641
--0.071625
--0.075043
--0.077576
--0.076752
--0.070282
--0.06723
--0.065643
--0.05835
--0.051544
--0.047699
--0.04248
--0.035065
--0.035461
--0.037262
--0.036072
--0.038422
--0.043488
--0.047211
--0.049316
--0.051697
--0.045715
--0.034393
--0.024933
--0.0090637
-0.013062
-0.038147
-0.065521
-0.098755
-0.12238
-0.12268
-0.11081
-0.092163
-0.062988
-0.029205
-0.0039978
--0.014648
--0.030823
--0.036652
--0.031982
--0.023621
--0.011108
-0.012482
-0.040497
-0.063751
-0.077423
-0.075562
-0.059753
-0.035034
-0.006073
--0.025909
--0.053101
--0.075012
--0.095367
--0.10886
--0.11111
--0.10425
--0.090515
--0.068237
--0.044312
--0.026001
--0.013885
--0.007782
--0.0085449
--0.013885
--0.019135
--0.026337
--0.034485
--0.042694
--0.051514
--0.058441
--0.060547
--0.056854
--0.049347
--0.037811
--0.024139
--0.011993
--0.0011902
-0.0089722
-0.01947
-0.030304
-0.041229
-0.049683
-0.054199
-0.057068
-0.05719
-0.052887
-0.04538
-0.036041
-0.025146
-0.015015
-0.0094299
-0.0073242
-0.0079651
-0.011261
-0.01767
-0.024933
-0.031647
-0.039337
-0.045898
-0.050262
-0.05072
-0.044556
-0.030609
-0.011627
--0.0090332
--0.029297
--0.044006
--0.052765
--0.05658
--0.057526
--0.055115
--0.049927
--0.042145
--0.031738
--0.020599
--0.01123
--0.0057373
--0.0056458
--0.010834
--0.019196
--0.028351
--0.036194
--0.041901
--0.044525
--0.045319
--0.044342
--0.040863
--0.033722
--0.023956
--0.013245
--0.0021362
-0.0084534
-0.017242
-0.023193
-0.02774
-0.031799
-0.035767
-0.039307
-0.041443
-0.042725
-0.043243
-0.042999
-0.042419
-0.042542
-0.042358
-0.041595
-0.042206
-0.04422
-0.045471
-0.046539
-0.048798
-0.051849
-0.053223
-0.052338
-0.049988
-0.046661
-0.040497
-0.031403
-0.021393
-0.01178
-0.0016174
--0.007019
--0.012573
--0.01532
--0.015839
--0.012238
--0.0039063
-0.004425
-0.0087891
-0.010864
-0.011993
-0.010834
-0.0050659
--0.0018921
--0.0093079
--0.018494
--0.026306
--0.029083
--0.02774
--0.024689
--0.019165
--0.010345
--0.0016174
-0.0055542
-0.01178
-0.017029
-0.019104
-0.018311
-0.015717
-0.012054
-0.0076904
-0.002594
--0.00094604
--0.0023499
--0.0021667
--0.0012512
-0.0018921
-0.0072327
-0.011261
-0.013733
-0.015564
-0.016296
-0.015137
-0.013702
-0.011566
-0.0076294
-0.0033264
--0.00088501
--0.0049133
--0.0082397
--0.011414
--0.013702
--0.014343
--0.013214
--0.012024
--0.012177
--0.012421
--0.011963
--0.011688
--0.011017
--0.010986
--0.012848
--0.015686
--0.018188
--0.021271
--0.026215
--0.031738
--0.036835
--0.04187
--0.04541
--0.046997
--0.04657
--0.0448
--0.041626
--0.036896
--0.032379
--0.02771
--0.025452
--0.025879
--0.028503
--0.034088
--0.041443
--0.048981
--0.054779
--0.059784
--0.060852
--0.057159
--0.052734
--0.04657
--0.037384
--0.02536
--0.016235
--0.011383
--0.0080872
--0.0090027
--0.012878
--0.017578
--0.024597
--0.032776
--0.039185
--0.038727
--0.027802
--0.0095825
-0.01355
-0.040894
-0.074738
-0.11517
-0.14987
-0.16541
-0.15997
-0.1409
-0.11102
-0.0737
-0.039215
-0.010712
--0.013489
--0.027374
--0.023407
--0.011261
-0.0024719
-0.025391
-0.057312
-0.086426
-0.10559
-0.11197
-0.10037
-0.074158
-0.039185
-0.0011902
--0.033386
--0.061951
--0.086395
--0.1033
--0.10663
--0.099274
--0.085785
--0.06427
--0.037903
--0.016815
--0.0039368
-0.0019531
--0.00061035
--0.009552
--0.019775
--0.029205
--0.038818
--0.049194
--0.058624
--0.06485
--0.065033
--0.059875
--0.05188
--0.0401
--0.025452
--0.011261
--0.00073242
-0.0083923
-0.017365
-0.027313
-0.039093
-0.049866
-0.057495
-0.061951
-0.063049
-0.060913
-0.055908
-0.048248
-0.038116
-0.027832
-0.021057
-0.018616
-0.018799
-0.022552
-0.029968
-0.038696
-0.047638
-0.056213
-0.063721
-0.068085
-0.067932
-0.061279
-0.047211
-0.027222
-0.0040894
--0.018158
--0.034973
--0.044434
--0.047974
--0.047302
--0.043243
--0.036591
--0.028473
--0.019165
--0.009613
--0.002655
-
--0.0032349
--0.011261
--0.022614
--0.035034
--0.045227
--0.051453
--0.05368
--0.053131
--0.049866
--0.044189
--0.035828
--0.025146
--0.01358
--0.0022888
-0.0075073
-0.01532
-0.020142
-0.023315
-0.026154
-0.030029
-0.033325
-0.03595
-0.039063
-0.042236
-0.043579
-0.045135
-0.049438
-0.052826
-0.053741
-0.056519
-0.06073
-0.062256
-0.06311
-0.065216
-0.066803
-0.06665
-0.065704
-0.063995
-0.061188
-0.055176
-0.046295
-0.036407
-0.026825
-0.016937
-0.0081177
-0.0029602
-
--0.0013428
-0.00036621
-0.0046692
-0.008606
-0.011963
-0.015015
-0.017731
-0.019196
-0.016693
-0.011292
-0.0041809
--0.0039368
--0.012634
--0.018402
--0.019623
--0.018005
--0.01358
--0.0057068
-0.004425
-0.013397
-0.021515
-0.028564
-0.033752
-0.035858
-0.033844
-0.028809
-0.021606
-0.013977
-0.0074158
-0.003479
-0.0022583
-0.0029602
-0.0057373
-0.011017
-0.017487
-0.02356
-0.029572
-0.034637
-0.038269
-0.038879
-0.03717
-0.032928
-0.02771
-0.021942
-0.016632
-0.012146
-0.0092468
-0.0075684
-0.0075989
-0.0090332
-0.011444
-0.014252
-0.017609
-0.020844
-0.023254
-0.024292
-0.021942
-0.017609
-0.012146
-0.0054626
--0.0022278
--0.0084534
--0.014496
--0.021301
--0.025238
--0.025299
--0.024475
--0.023071
--0.021057
--0.018646
--0.014709
--0.011444
--0.010254
--0.0097656
--0.010162
--0.014893
--0.021271
--0.024811
--0.028442
--0.033356
--0.035217
--0.035248
--0.037048
--0.036224
--0.028961
--0.02121
--0.015442
--0.0062866
-0.0014648
-0.0029602
-0.004425
-0.0068359
-0.002655
--0.004425
--0.0066223
--0.012024
--0.017456
--0.0075684
-0.010956
-0.029175
-0.056641
-0.097504
-0.13727
-0.16852
-0.18921
-0.18878
-0.16895
-0.14185
-0.11111
-0.075928
-0.04425
-0.020355
-0.0051575
-0.005127
-0.017761
-0.035095
-0.059723
-0.094025
-0.12445
-0.14337
-0.15021
-0.13934
-0.11197
-0.07489
-0.035431
--0.0037231
--0.037476
--0.062531
--0.078003
--0.081146
--0.071228
--0.052185
--0.02832
--0.0013428
-0.020935
-0.033813
-0.037842
-0.033051
-0.019928
-0.0036011
--0.011627
--0.026703
--0.040009
--0.048981
--0.052399
--0.04834
--0.038055
--0.024506
--0.0092468
-0.0076599
-0.022827
-0.033478
-0.040344
-0.04657
-0.052582
-0.059235
-0.066528
-0.072235
-0.075623
-0.077271
-0.077576
-0.075653
-0.071167
-0.065887
-0.060822
-0.058502
-0.058563
-0.06015
-0.064178
-0.070557
-0.078918
-0.087616
-0.095703
-0.10211
-0.10541
-0.10333
-0.094482
-0.079346
-0.059509
-0.037842
-0.018005
-0.0039063
--0.0040894
--0.0068359
--0.0054932
--0.00054932
-0.006073
-0.014496
-0.023376
-0.030548
-0.033844
-0.032166
-0.024384
-0.01236
--0.0021057
--0.016541
--0.02832
--0.034821
--0.036255
--0.033661
--0.027618
--0.018433
--0.0064697
-0.0068054
-0.019257
-0.029785
-0.037292
-0.041443
-0.042633
-0.042084
-0.042389
-0.044983
-0.046234
-0.048187
-0.053192
-0.058502
-0.062469
-0.069031
-0.078033
-0.082611
-0.085144
-0.090546
-0.093933
-0.094269
-0.096985
-0.099609
-0.099487
-0.098328
-0.097137
-0.095215
-0.091461
-0.085022
-0.076385
-0.067139
-0.05838
-0.049561
-0.042877
-0.038605
-0.036346
-0.03595
-0.039124
-0.044098
-0.047302
-0.049469
-0.051025
-0.049713
-0.044708
-0.038055
-0.030396
-0.020905
-0.012146
-0.0058899
-0.0029907
-0.0038147
-0.0076904
-0.014557
-0.023865
-0.032501
-0.039825
-0.046265
-0.049713
-0.049866
-0.048004
-0.043793
-0.037384
-0.029846
-0.024261
-0.020721
-0.020142
-0.022949
-0.027313
-0.033264
-0.040619
-0.046417
-0.050964
-0.054138
-0.055756
-0.055511
-0.053955
-0.050812
-0.046997
-0.043549
-0.040436
-0.038177
-0.037018
-0.036438
-0.036865
-0.039185
-0.041779
-0.04422
-0.046692
-0.04892
-0.050171
-0.050812
-0.050354
-0.047577
-0.043671
-0.039093
-0.032684
-0.02536
-0.018707
-0.012848
-0.0081177
-0.004303
-0.0026245
-0.0024414
-0.0029602
-0.0050659
-0.0072327
-0.0082397
-0.0088196
-0.008667
-0.0065002
-0.0029297
--0.0015259
--0.0061646
--0.010864
--0.0159
--0.022125
--0.026154
--0.02652
--0.025665
--0.021698
--0.014893
--0.008728
--0.0031128
-0.0036316
-0.0092773
-0.011017
-0.011749
-0.010803
-0.0049744
--0.0016785
--0.0068665
--0.0091553
--0.003418
-0.016541
-0.045685
-0.072449
-0.10437
-0.15146
-0.19278
-0.20743
-0.20663
-0.198
-0.16846
-0.12378
-0.090973
-0.067108
-0.035309
-0.016327
-0.026367
-0.045105
-0.062683
-0.089996
-0.12717
-0.16336
-0.18521
-0.18839
-0.17657
-0.15009
-0.10492
-0.052765
-0.01181
--0.021515
--0.05307
--0.06958
--0.063934
--0.049042
--0.02948
-0.00091553
-0.033569
-0.05661
-0.067505
-0.067047
-0.05658
-0.036865
-0.011108
--0.013336
--0.032166
--0.048523
--0.06308
--0.067352
--0.057983
--0.041504
--0.020966
-0.0024719
-0.024475
-0.041321
-0.051483
-0.055511
-0.056458
-0.057617
-0.06012
-0.063232
-0.066437
-0.068604
-0.068787
-0.070099
-0.073822
-0.07605
-0.076019
-0.076935
-0.079559
-0.083099
-0.086884
-0.091675
-0.098175
-0.10587
-0.11255
-0.11853
-0.12335
-0.12555
-0.12234
-0.11285
-0.098206
-0.080048
-0.060577
-0.043579
-0.032318
-0.027954
-0.028717
-0.032379
-0.038635
-0.045563
-0.05188
-0.0578
-0.062683
-0.062073
-0.054413
-0.041199
-0.024414
-0.0059509
--0.011169
--0.023315
--0.029053
--0.028778
--0.024017
--0.015625
--0.0046387
-0.0089417
-0.023376
-0.035858
-0.044128
-0.047607
-0.046234
-0.04303
-0.040649
-0.037842
-0.035065
-0.03598
-0.039703
-0.043732
-0.050537
-0.060608
-0.070648
-0.080963
-0.09314
-0.10291
-0.10779
-0.11087
-0.11322
-0.11374
-0.1131
-0.11292
-0.11252
-0.11029
-0.10681
-0.10352
-0.09906
-0.092804
-0.087311
-0.082764
-0.078796
-0.076141
-0.074677
-0.074463
-0.075317
-0.077545
-0.079254
-0.080231
-0.0784
-0.073181
-0.06723
-0.06015
-0.051025
-0.041016
-0.032104
-0.0242
-0.019562
-0.019073
-0.022675
-0.028564
-0.035828
-0.043549
-0.049408
-0.05368
-0.054993
-0.053711
-0.050629
-0.045105
-0.037384
-0.029999
-0.023834
-0.019623
-0.019409
-0.021973
-0.026215
-0.032593
-0.040558
-0.04837
-0.054962
-0.058746
-0.060089
-0.059479
-0.056915
-0.052917
-0.048798
-0.044739
-0.040833
-0.038574
-0.038879
-0.040894
-0.043579
-0.047638
-0.052521
-0.057007
-0.06012
-0.061981
-0.062531
-0.062653
-0.062347
-0.060944
-0.057892
-0.054535
-0.05011
-0.045105
-0.041473
-0.037231
-0.031891
-0.02829
-0.026825
-0.024475
-0.021881
-0.022675
-0.023987
-0.023529
-0.024323
-0.024231
-0.020142
-0.014038
-0.0084534
-0.0029907
--0.0018311
--0.0071411
--0.013397
--0.018463
--0.02179
--0.024902
--0.02533
--0.022949
--0.019257
--0.016724
--0.012604
--0.006134
--0.0032043
--0.0058289
--0.0069275
--0.0055847
--0.0098877
--0.015472
--0.016113
--0.017059
--0.014709
-0.0020447
-0.027893
-0.052032
-0.079315
-0.12253
-0.16983
-0.19391
-0.1958
-0.18872
-0.16449
-0.1236
-0.091156
-0.071472
-0.047882
-0.027863
-0.033783
-0.054321
-0.071259
-0.094513
-0.13345
-0.17456
-0.20145
-0.21005
-0.20013
-0.17337
-0.12936
-0.076843
-0.03302
--0.00085449
--0.033203
--0.052826
--0.050934
--0.037292
--0.016357
-0.01593
-0.052277
-0.07901
-0.090637
-0.088226
-0.072632
-0.045349
-0.012512
--0.017487
--0.04245
--0.064545
--0.082275
--0.089111
--0.081512
--0.062653
--0.036743
--0.0080566
-0.017517
-0.03537
-0.045166
-0.045868
-0.039459
-0.03186
-0.026459
-0.023102
-0.021637
-0.020386
-0.021484
-0.026581
-0.035828
-0.046539
-0.056183
-0.065704
-0.075226
-0.083893
-0.089783
-0.09317
-0.094543
-0.096588
-0.099396
-0.10233
-0.10635
-0.11041
-0.11148
-0.10727
-0.098694
-0.086151
-0.07251
-0.061462
-0.055695
-0.054901
-0.055756
-0.057312
-0.059814
-0.0625
-0.065582
-0.069824
-0.073212
-0.071228
-0.062256
-0.047699
-0.029602
-0.010162
--0.0072937
--0.019073
--0.024689
--0.025238
--0.021637
--0.015198
--0.0068359
-0.0036316
-0.015686
-0.026276
-0.033173
-0.035828
-0.034851
-0.028473
-0.02066
-0.01712
-0.014435
-0.011963
-0.01355
-0.016479
-0.016327
-0.018219
-0.025146
-0.033447
-0.042847
-0.052582
-0.061005
-0.069092
-0.073944
-0.077118
-0.081757
-0.085724
-0.087524
-0.08783
-0.086334
-0.081512
-0.074036
-0.066345
-0.060852
-0.058899
-0.059631
-0.062561
-0.068207
-0.075012
-0.08075
-0.085327
-0.089447
-0.089478
-0.085022
-0.079712
-0.072174
-0.061127
-0.048645
-0.03656
-0.02652
-0.021393
-0.02005
-0.022522
-0.028595
-0.03418
-0.03894
-0.043793
-0.046234
-0.046753
-0.045807
-0.040619
-0.03186
-0.022186
-0.012451
-0.004425
--0.00057983
--0.0025635
--0.0014648
-0.0027771
-0.0074158
-0.012604
-0.01767
-0.022491
-0.026611
-0.029999
-0.031006
-0.02951
-0.026123
-0.0224
-0.018311
-0.015198
-0.014343
-0.015137
-0.018005
-0.02179
-0.025055
-0.028687
-0.032928
-0.03775
-0.042877
-0.047546
-0.05069
-0.051819
-0.050568
-0.046875
-0.043579
-0.040497
-0.03656
-0.033569
-0.031036
-0.027893
-0.025604
-0.024628
-0.024292
-0.026184
-0.028534
-0.030426
-0.032349
-0.032135
-0.028015
-0.023529
-0.019623
-0.011597
-0.0035095
--0.0013733
--0.0072937
--0.013611
--0.016266
--0.017426
--0.018005
--0.014923
--0.010254
--0.0078735
--0.0062866
--0.0075989
--0.012726
--0.019196
--0.026337
--0.034912
--0.044617
--0.051392
--0.054291
--0.05658
--0.057831
--0.053497
--0.046265
--0.043243
--0.037781
--0.028107
--0.019104
--0.0077515
-0.0092468
-0.025421
-0.041748
-0.073273
-0.10947
-0.12326
-0.12161
-0.11792
-0.099365
-0.069611
-0.053833
-0.045807
-0.026489
-0.013947
-0.023804
-0.03894
-0.053528
-0.076874
-0.10944
-0.1416
-0.16202
-0.16629
-0.15613
-0.13412
-0.099457
-0.058502
-0.024628
--0.0038757
--0.030426
--0.043854
--0.038269
--0.022888
--0.0014954
-0.029236
-0.060486
-0.081665
-0.090668
-0.086151
-0.070862
-0.045441
-0.013641
--0.016815
--0.043396
--0.065857
--0.080231
--0.082031
--0.071625
--0.052338
--0.028473
--0.005188
-0.014465
-0.027313
-0.030182
-0.023529
-0.011444
--0.0022278
--0.01416
--0.022888
--0.029358
--0.033661
--0.033081
--0.026184
--0.014313
--6.1035e-005
-0.014069
-0.026794
-0.038483
-0.046356
-0.048035
-0.045013
-0.042267
-0.040863
-0.041534
-0.043884
-0.04718
-0.050201
-0.051544
-0.052063
-0.052032
-0.050415
-0.049591
-0.051086
-0.052917
-0.053619
-0.053619
-0.053406
-0.053589
-0.055206
-0.058319
-0.06076
-0.060699
-0.056549
-0.049072
-0.039612
-0.028961
-0.018585
-0.01059
-0.0065002
-0.0064087
-0.0075684
-0.0081482
-0.01178
-0.018372
-0.023102
-0.026672
-0.030548
-0.027588
-0.016968
-0.007782
-0.00030518
--0.0095215
--0.01825
--0.021881
--0.020111
--0.016418
--0.010193
--0.0012207
-0.0089417
-0.018524
-0.027161
-0.03302
-0.034363
-0.030365
-0.024292
-0.019226
-0.014069
-0.0092468
-0.0076294
-0.009613
-0.013519
-0.019196
-0.026855
-0.034485
-0.041443
-0.048126
-0.056396
-0.06192
-0.061066
-0.056335
-0.050476
-0.044312
-0.040161
-0.039551
-0.04068
-0.041595
-0.042572
-0.044037
-0.045959
-0.046722
-0.046844
-0.047791
-0.047577
-0.044922
-0.040833
-0.035889
-0.031097
-0.027649
-0.025177
-0.024017
-0.024475
-0.023895
-0.022186
-0.020325
-0.016724
-0.012848
-0.010895
-0.010071
-0.0085144
-0.007019
-0.0054016
-0.0039673
-0.0045471
-0.0067749
-0.0088196
-0.009552
-0.0093384
-0.0079041
-0.0053101
-0.0027161
-3.0518e-005
--0.0024414
--0.0039978
--0.0046082
--0.004425
--0.0033875
--0.0011292
-0.0020142
-0.0064392
-0.010925
-0.014526
-0.016357
-0.01532
-0.01413
-0.012115
-0.0092163
-0.0069275
-0.0065918
-0.0072937
-0.0092773
-0.012085
-0.014038
-0.016541
-0.019104
-0.02124
-0.022675
-0.022614
-0.020874
-0.018494
-0.016235
-0.013733
-0.011749
-0.010651
-0.0090332
-0.0092468
-0.010254
-0.0088806
-0.0075073
-0.0074158
-0.0055542
-0.0028992
-0.0023193
-0.00048828
--0.0024414
--0.003479
--0.0037231
--0.0056763
--0.0071106
--0.0079041
--0.010132
--0.012146
--0.013092
--0.015747
--0.019531
--0.022644
--0.024384
--0.02771
--0.033142
--0.038208
--0.041779
--0.047089
--0.050568
--0.049194
--0.050232
--0.053192
--0.053253
--0.047119
--0.032715
--0.019592
--0.0095215
-0.021729
-0.067657
-0.089172
-0.093964
-0.10513
-0.09671
-0.060608
-0.04245
-0.038666
-0.013184
--0.010254
--0.007782
-0.0018921
-0.0054626
-0.017609
-0.042633
-0.071655
-0.10083
-0.1149
-0.11407
-0.10977
-0.089233
-0.055634
-0.030945
-0.010071
--0.01532
--0.029175
--0.026733
--0.019714
--0.0075684
-0.011902
-0.034515
-0.058929
-0.074402
-0.076294
-0.070892
-0.058624
-0.039215
-0.019073
-0.0012512
--0.014954
--0.026917
--0.03302
--0.03244
--0.023529
--0.010712
-0.00033569
-0.012421
-0.024323
-0.02655
-0.018311
-0.0080261
--0.002655
--0.011963
--0.016571
--0.019897
--0.022827
--0.023865
--0.023529
--0.018829
--0.009552
--0.002655
-0.0020447
-0.010315
-0.016479
-0.014709
-0.0095215
-0.0054016
-0.0042419
-0.0065308
-0.0098267
-0.013458
-0.016327
-0.017426
-0.018524
-0.020752
-0.021057
-0.020081
-0.023041
-0.027222
-0.029083
-0.029358
-0.028412
-0.02887
-0.033173
-0.038483
-0.042236
-0.047119
-0.050079
-0.045959
-0.040222
-0.03717
-0.031403
-0.025696
-0.026276
-0.027161
-0.023865
-0.02298
-0.025238
-0.027527
-0.031738
-0.037506
-0.041199
-0.040833
-0.036072
-0.02951
-0.022919
-0.015472
-0.0083618
-0.0030212
-0.00067139
-0.00018311
-0.00018311
-0.0016174
-0.0047607
-0.0083313
-0.014252
-0.021088
-0.024048
-0.0224
-0.019348
-0.015625
-0.011139
-0.0074463
-0.0055237
-0.0046997
-0.0055237
-0.0075073
-0.0097351
-0.011261
-0.014404
-0.019684
-0.024567
-0.027344
-0.02774
-0.025635
-0.022034
-0.01947
-0.018555
-0.018677
-0.018555
-0.019623
-0.020905
-0.021515
-0.021973
-0.022644
-0.024628
-0.026642
-0.027466
-0.027191
-0.026062
-0.023315
-0.020935
-0.020782
-0.021637
-0.022064
-0.022766
-0.023468
-0.022552
-0.020966
-0.018707
-0.016693
-0.015472
-0.01474
-0.013489
-0.011841
-0.009613
-0.0076904
-0.0080872
-0.010193
-0.012085
-0.013306
-0.013641
-0.011932
-0.0089111
-0.0050354
-0.0014343
--0.0012207
--0.0027466
--0.0039063
--0.0053711
--0.0062561
--0.0066833
--0.006073
--0.0039368
--0.0011292
-0.0010986
-0.0020752
-0.0017395
-0.00039673
--0.00177
--0.0031738
--0.0045166
--0.0048218
--0.0043945
--0.0039063
--0.0039673
--0.0041504
--0.003418
--0.00177
-0.00024414
-0.0027771
-0.0045776
-0.0047913
-0.0031738
-0.0023193
-0.00094604
--0.00045776
--0.00082397
-
-6.1035e-005
--0.0012207
--0.0019836
--0.0014343
--0.0014954
--0.00097656
-0.00091553
-0.0010071
-0.00021362
-0.00015259
--0.00079346
--0.0018311
--0.0023193
--0.0023499
--0.0024719
--0.0030212
--0.0028992
--0.0036926
--0.0072632
--0.0095825
--0.0098572
--0.011566
--0.013
--0.013092
--0.014099
--0.016449
--0.0177
--0.017883
--0.01944
--0.021759
--0.024139
--0.027069
--0.029449
--0.031616
--0.030273
--0.021423
--0.0041504
-0.017822
-0.031464
-0.032257
-0.031555
-0.029938
-0.019989
-0.010834
-0.0097656
-0.0011292
--0.016113
--0.02301
--0.022705
--0.023315
--0.016022
-0.0077515
-0.033752
-0.049347
-0.057281
-0.058105
-0.053894
-0.046509
-0.03302
-0.019287
-0.0087585
--0.0056458
--0.019623
--0.024078
--0.02002
--0.010895
-0.006958
-0.030304
-0.049316
-0.057495
-0.05542
-0.049957
-0.043488
-0.032684
-0.020355
-0.010376
-0.0011292
--0.0090332
--0.016388
--0.016174
--0.0093079
-0.0026245
-0.017273
-0.031219
-0.037872
-0.034607
-0.02536
-0.016754
-0.010376
-0.0039978
--0.0022888
--0.0069885
--0.012939
--0.017914
--0.018951
--0.014893
--0.0068359
-0.0027771
-0.01062
-0.014526
-0.01236
-0.0039673
--0.0048218
--0.008667
--0.0096741
--0.010712
--0.011169
--0.010345
--0.0093689
--0.0088501
--0.0067139
--0.0031128
-0.00094604
-0.0054321
-0.0091248
-0.0083618
-0.0032043
--0.0028381
--0.0063782
--0.0050964
--0.00094604
-0.0031738
-0.0066833
-0.0096436
-0.010559
-0.010162
-0.011047
-0.012817
-0.014282
-0.015167
-0.014923
-0.010254
-0.0031433
-0.00039673
-0.0026245
-0.0058899
-0.0097656
-0.01532
-0.017761
-0.016327
-0.016144
-0.017181
-0.015289
-0.012939
-0.013123
-0.01236
-0.0081787
-0.0032654
-0.0015869
-0.00177
-0.0023499
-0.0050049
-0.009613
-0.012756
-0.012268
-0.011078
-0.01004
-0.0077515
-0.0051575
-0.0056152
-0.0068054
-0.0050659
-0.00177
--0.0005188
--0.0011902
--0.00045776
-0.0012817
-0.0045776
-0.0070496
-0.0071411
-0.0057068
-0.0044556
-0.0035095
-0.0028992
-0.003479
-0.0047302
-0.0042419
-0.0024414
-0.00042725
--0.00064087
--0.0011292
--0.00021362
-0.001709
-0.0038147
-0.0055847
-0.0050659
-0.0038147
-0.0035095
-0.0030518
-0.002655
-0.00354
-0.0039063
-0.0040588
-0.0029297
-0.001709
-0.00027466
--0.00027466
--0.00021362
-0.00067139
-0.0023804
-0.0033875
-0.0021973
-6.1035e-005
-0.00036621
-0.00039673
-0.00076294
-0.0024414
-0.0049133
-0.0045776
-0.003479
-0.0021057
--0.00039673
--0.001709
--0.0015869
--0.0012207
--0.0012207
--0.0022583
--0.0028381
--0.0040283
--0.0040283
--0.0027771
--0.0019836
--0.00015259
-0.00015259
--0.00097656
--0.0014648
--0.0032349
--0.0061035
--0.0068359
--0.0073547
--0.0073547
--0.0080261
--0.0078735
--0.0061035
--0.0054321
--0.0045166
--0.0020752
-0.00094604
-0.0007019
--0.00073242
--0.00024414
--0.0024414
--0.0064087
--0.007019
--0.0053711
--0.006012
--0.0072937
--0.0057678
--0.0050964
--0.0068054
--0.0050964
--0.0020447
-0.00033569
-0.0012207
-0.0025635
-0.0030212
-0.0020142
--0.00012207
--0.0018921
--0.001709
--0.0019226
--0.0015564
--0.0012512
--0.0013123
--0.0015259
--0.00097656
--0.00024414
-0.0021667
-0.0044556
-0.0040588
-0.0033264
-0.0031738
-0.00021362
--0.0011902
-0.00045776
-0.00091553
-0.00091553
-0.0020447
-0.0020142
--0.00073242
--0.0021973
--0.0011902
--0.0021667
--0.0019836
--0.00021362
-0.00061035
-0.00018311
-
-0.00027466
--9.1553e-005
--0.00082397
-6.1035e-005
--0.00085449
--0.0028076
--0.0037842
--0.0033569
--0.0036011
--0.0040283
--0.00091553
-0.00079346
--0.00033569
-0.00033569
-0.0010071
--0.0011902
--0.0036926
--0.0025024
--0.0026855
--0.0037842
--0.0021973
--0.0010376
--0.0010986
--0.00057983
-0.00021362
-0.0011902
-0.0015259
-0.00177
-0.0027161
-0.0031128
-0.0025024
-0.0016174
-0.00021362
--0.00094604
--0.0011597
--0.0020752
--0.0021973
--0.0014038
--0.00036621
--0.00045776
-0.0007019
-0.0028992
-0.003418
-0.0035706
-0.0034485
-0.0025024
-0.0013123
-0.00094604
-0.00045776
--0.00036621
--0.00042725
--0.00024414
--0.00094604
--0.00039673
-0.0019531
-0.0038452
-0.0049744
-0.0059814
-0.0066833
-0.0059814
-0.0041199
-0.0037842
-0.003479
-0.0030212
-0.0032349
-0.0041199
-0.0041809
-0.0041504
-0.0047913
-0.0046387
-0.0047302
-0.0055847
-0.0062256
-0.0058289
-0.0054932
-0.0056458
-0.0043945
-0.0039978
-0.0046387
-0.0044861
-0.0055542
-0.0061951
-0.0062256
-0.006012
-0.0057068
-0.0053101
-0.0052795
-0.0061035
-0.0061951
-0.0057983
-0.0057678
-0.0054626
-0.005127
-0.0046082
-0.0040283
-0.0045776
-0.0051575
-0.0048828
-0.0047302
-0.0050659
-0.0049744
-0.004425
-0.0041504
-0.0041199
-0.0042114
-0.003479
-0.0039368
-0.00354
-0.0028381
-0.0030823
-0.0029907
-0.0026855
-0.0040588
-0.005249
-0.0046692
-0.0046387
-0.0055237
-0.0052185
-0.0042114
-0.0046082
-0.0061035
-0.0055847
-0.0037842
-0.0042419
-0.0045471
-0.0029907
-0.0030823
-0.0036621
-0.0032349
-0.0030823
-0.0032959
-0.0034485
-0.0041809
-0.0048218
-0.0049744
-0.0049438
-0.0047302
-0.004303
-0.0036621
-0.0023804
-0.0018005
-0.0021057
-0.0013428
-0.00097656
-0.0020447
-0.0019836
-0.0014648
-0.0012817
-0.0019226
-0.0030212
-0.0026245
-0.0020752
-0.0031433
-0.0028687
-0.0014648
-0.0016174
-0.0032043
-0.0032349
-0.0021362
-0.0030823
-0.003479
-0.0021362
-0.0019836
-0.0032043
-0.003479
-0.0032043
-0.0038757
-0.0043945
-0.0033875
-0.0028687
-0.0031738
-0.0033875
-0.0026245
-0.0024414
-0.0036926
-0.0028076
-0.0021973
-0.0031433
-0.0036011
-0.0025024
-0.0031433
-0.0036011
-0.0021973
-0.0013123
-0.0016785
-0.0016479
-0.00085449
-0.0016785
-0.0028687
-0.0026855
-0.0024109
-0.0029297
-0.0025024
-0.00088501
-0.00076294
-0.001709
-0.0018311
-0.0013123
-0.0013733
-0.0012207
-0.00073242
--0.00015259
-0.00045776
-0.00085449
-0.00073242
-0.0010681
-0.0017395
-0.0018311
-0.0014954
-0.0014954
-0.0018311
-0.0020752
-0.0018005
-0.0017395
-0.0012817
-0.00067139
-0.00018311
-0.0005188
-0.0014343
-0.001709
-0.0024414
-0.0029602
-0.0026855
-0.0025635
-0.0022888
-0.0022278
-0.0021362
-0.0018311
-0.0018616
-0.0018005
-0.0014648
-0.0014038
-0.0013733
-0.0016174
-0.0020752
-0.0022583
-0.0023499
-0.0026855
-0.0026855
-0.0027161
-0.002655
-0.0031738
-0.0033264
-0.0032043
-0.0021973
-0.0021667
-0.0020447
-0.0014648
-0.0014648
-0.0019226
-0.0021667
-0.0018311
-0.00177
-0.0019836
-0.0018616
-0.0015869
-0.0018921
-0.0022278
-0.0017395
-0.0015259
-0.0013428
-0.0007019
-0.00033569
-0.00030518
-0.00042725
-0.00027466
-0.00033569
-0.00015259
-0.00030518
-0.00079346
-0.00088501
-0.0016174
-0.0018311
-0.0016479
-0.0019836
-0.0014343
-0.00079346
-0.00042725
-0.00021362
-3.0518e-005
--0.00061035
--0.00079346
--0.0012207
--0.0014648
--0.0012512
--0.00094604
--0.00064087
--0.00042725
--0.00012207
--0.00021362
--0.00015259
--3.0518e-005
-0.00012207
-0.00030518
-0.00033569
-0.00015259
--3.0518e-005
--0.00030518
--0.00024414
--6.1035e-005
-
-0.00039673
-0.0007019
-0.00067139
-0.00048828
-0.00054932
-0.00039673
-0.00039673
-0.00045776
-0.00061035
-0.00067139
-0.0010681
-0.0013733
-0.0015564
-0.0015259
-0.0014648
-0.0014343
-0.0013123
-0.0010986
-0.00085449
-0.00039673
-0.00021362
-0.00027466
-0.00054932
-0.00067139
-0.00082397
-0.00057983
-0.00064087
-0.00073242
-0.00067139
-0.00073242
-0.00027466
--9.1553e-005
--0.00088501
--0.0015869
--0.0019531
--0.0022583
--0.0028076
--0.0031128
--0.0036621
--0.0040894
--0.0041504
--0.0040894
--0.0038452
--0.00354
--0.0032349
--0.0031738
--0.0031738
--0.0032959
--0.0033569
--0.003418
--0.003479
--0.003418
--0.003418
--0.0033569
--0.0032349
--0.0032959
--0.0032959
--0.0031128
--0.0028687
--0.0028687
--0.0026855
--0.0021973
--0.0022278
--0.0021057
--0.0024109
--0.0024109
--0.002533
--0.002655
--0.0028992
--0.0029602
--0.0030212
--0.0030212
--0.0033569
--0.003418
--0.0036621
--0.003418
--0.0032349
--0.0029602
--0.0027771
--0.0031128
--0.00354
--0.0039063
--0.0041504
--0.0043945
--0.0045166
--0.0046387
--0.0049438
--0.005249
--0.0054932
--0.0057068
--0.0056458
--0.0056458
--0.0053406
--0.0053406
--0.0052185
--0.005188
--0.0053711
--0.005249
--0.0053101
--0.0049438
--0.0048828
--0.0044556
--0.0044861
--0.0046692
--0.0046082
--0.0049744
--0.0050964
--0.0051575
--0.0052185
--0.0053406
--0.0053101
--0.0050049
--0.0050049
--0.0050659
--0.0053101
--0.0054932
--0.0056458
--0.0057068
--0.0057678
--0.0058899
--0.0058594
--0.0062256
--0.0062256
--0.0064697
--0.0063782
--0.0065613
--0.0063171
--0.0061951
--0.0059814
--0.0061035
--0.0059204
--0.0061646
--0.006012
--0.0059509
--0.0061951
--0.006134
--0.0062256
--0.0063477
--0.0065918
--0.0065308
--0.0066833
--0.0066223
--0.0063782
--0.0061035
--0.0057373
--0.0055542
--0.0054321
--0.0052795
--0.0051575
--0.0048523
--0.0050964
--0.0052795
--0.0052185
--0.0052185
--0.0048218
--0.0049438
--0.005188
--0.0053101
--0.0053711
--0.0049744
--0.0048523
--0.0047302
--0.0048523
--0.0052795
--0.0057068
--0.0061646
--0.0063477
--0.0062256
--0.0059814
--0.0056763
--0.0055542
--0.0054932
--0.0053406
--0.0053406
--0.0051575
--0.0052185
--0.0054016
--0.0055237
--0.0058899
--0.0064087
--0.0068359
--0.006958
--0.0067749
--0.0068054
--0.0069275
--0.0070496
--0.0066833
--0.0063477
--0.0061035
--0.0060425
--0.0059204
--0.0059814
--0.0059814
--0.0060425
--0.0061035
--0.006134
--0.0061951
--0.0062561
--0.0066833
--0.0068665
--0.0066528
--0.0062256
--0.0056152
--0.0054321
--0.0053101
--0.0053101
--0.0055542
--0.0055542
--0.0053406
--0.0052795
--0.0049133
--0.004425
--0.0044861
--0.0047302
--0.0047913
--0.0049133
--0.0050354
--0.0051575
--0.0052795
--0.0054016
--0.0055237
--0.0055847
--0.0054932
--0.0056152
--0.0056152
--0.0054321
--0.005249
--0.0054321
--0.0055542
--0.0055237
--0.0052185
--0.0049133
--0.0047913
--0.0046082
--0.0047302
--0.0046692
--0.0047302
--0.0047913
--0.0046082
--0.0045471
--0.0042419
--0.0040588
--0.0038147
--0.0034485
--0.0033875
--0.0031738
--0.003479
--0.0039063
--0.0040894
--0.0043335
--0.0043335
--0.0042725
--0.0040894
--0.0039673
--0.0037842
--0.00354
--0.00354
--0.0036621
--0.0037842
--0.0037231
--0.0039063
--0.0039673
--0.0040894
--0.0040283
--0.0040894
--0.0041504
--0.0040894
--0.0041504
--0.0039673
--0.0040894
--0.0042114
--0.0044556
--0.0046387
--0.0048828
--0.0048828
--0.0048218
--0.0047607
--0.0050049
--0.005249
--0.0054321
--0.0054016
--0.0052185
--0.0051575
--0.0046692
--0.0042419
--0.004364
--0.0045471
--0.0046082
--0.0046692
--0.0048523
--0.0048523
--0.0047302
--0.004425
--0.004303
--0.0042419
--0.0038147
--0.0036316
--0.0033264
--0.0030823
--0.0029907
--0.0030518
--0.0030518
--0.0029297
--0.0028076
--0.0029297
--0.0029297
--0.0030518
--0.0032043
--0.0033875
--0.0036621
--0.0039063
--0.0040283
--0.0041504
--0.0040283
--0.0039673
--0.0040283
--0.0042114
--0.0043335
--0.0045166
--0.0046997
--0.0048218
--0.0047607
--0.0048218
--0.0048218
--0.0045776
--0.0045776
--0.0047607
--0.0045776
--0.0045166
--0.0046387
--0.0049438
--0.0050049
--0.0048828
--0.0049438
--0.0050049
--0.0048218
--0.0042725
--0.0038452
--0.0037231
--0.0039063
--0.0042114
--0.0045166
--0.0045166
--0.0043945
--0.0042725
--0.0043945
--0.0044556
--0.0048828
--0.0050049
--0.0050049
--0.005188
--0.0049133
--0.0046082
--0.0041809
--0.0038147
--0.0037537
--0.0038757
--0.0038757
--0.0039978
--0.0041199
--0.0044861
--0.0047913
--0.0048523
--0.0049744
--0.0048523
--0.0046692
--0.004364
--0.004364
--0.004425
--0.004425
--0.004425
--0.0046082
--0.0045471
--0.0047302
--0.0045471
--0.004364
--0.0042419
--0.0040588
--0.0041199
--0.0041809
--0.0045471
--0.0046692
--0.0049133
--0.0048523
--0.0048523
--0.0049744
--0.0049133
--0.0049133
--0.0049744
--0.0044861
--0.0045471
--0.0042419
--0.0042419
--0.0041809
--0.0044861
--0.0049133
--0.005127
--0.005249
--0.0053711
--0.005127
--0.005127
--0.0054321
--0.0054321
--0.0052795
--0.0052795
--0.0055847
--0.0057068
--0.0057068
--0.0055847
--0.0057068
--0.0057678
--0.0057373
--0.0059814
--0.0062256
--0.0065918
--0.0065613
--0.0066833
--0.0065613
--0.0061951
--0.0058899
--0.0057373
--0.0054321
--0.0054932
--0.0053711
--0.005188
--0.005249
--0.0056152
--0.0056458
--0.0054626
--0.0052185
--0.0049744
--0.0046082
--0.004364
--0.0040588
--0.0040588
--0.0042419
--0.0046082
--0.0050964
--0.0054016
--0.0057068
--0.0057068
--0.0056763
--0.0053711
--0.0050049
--0.0050049
--0.005127
--0.0055542
--0.0059509
--0.0061951
--0.0064392
--0.0063782
--0.0067139
--0.007019
--0.0072632
--0.0071411
--0.0072937
--0.0072937
--0.0071716
--0.0070801
--0.0068359
--0.0067139
--0.0066223
--0.0066833
--0.0067444
--0.0068054
--0.006897
--0.0071411
--0.0074463
--0.007782
--0.0080872
--0.0085449
--0.0083618
--0.0083313
--0.0079041
--0.0077209
--0.0076904
--0.0076294
--0.0074463
--0.0072937
--0.0075378
--0.0072021
--0.006958
--0.0067139
--0.0065308
--0.0066223
--0.0067444
--0.0066833
--0.0068054
--0.007019
--0.0071411
--0.0074768
--0.0074158
--0.0074768
--0.0076904
--0.0078125
--0.0075989
--0.0075378
--0.0074768
--0.0076294
--0.0079346
--0.0080261
--0.0083313
--0.0082397
--0.0083008
--0.0083923
--0.0083923
--0.0083618
--0.0085449
--0.0085754
--0.0086365
--0.0085449
--0.0084229
--0.0084534
--0.0084534
--0.0083618
--0.0079346
--0.0079041
--0.007843
--0.0079041
--0.0078735
--0.0075073
--0.0070801
--0.0070801
--0.0069275
--0.0071106
--0.0069885
--0.0070496
--0.0070801
--0.0072632
--0.0072021
--0.0071106
--0.0071716
--0.0071106
--0.0071716
--0.0071411
--0.006958
--0.006897
--0.0070801
--0.0072327
--0.0074768
--0.0076599
--0.0077515
--0.0080566
--0.0079956
--0.007782
--0.0074768
--0.0072937
--0.0071716
--0.0071411
--0.0073853
--0.0073853
--0.0074158
--0.0077209
--0.0079041
--0.0079346
--0.0083618
--0.0087585
--0.0088806
--0.0089722
--0.0090942
--0.0093689
--0.0098572
--0.010132
--0.010498
--0.010651
--0.01062
--0.010559
--0.010284
--0.010345
--0.010132
--0.010101
--0.01004
--0.01001
--0.010101
--0.010101
--0.010437
--0.01059
--0.010651
--0.010681
--0.010468
--0.0099792
--0.0098267
--0.0098572
--0.0099182
--0.0098877
--0.0098572
--0.01004
--0.0099487
--0.0099182
--0.0098572
--0.0098267
--0.0097961
--0.009491
--0.0092773
--0.0094299
--0.0097351
--0.0099487
--0.0098572
--0.009552
--0.0095825
--0.0097046
--0.0097961
--0.0099487
--0.010071
--0.010284
--0.010315
--0.010437
--0.010223
--0.010529
--0.010437
--0.010406
--0.010651
--0.010681
--0.010681
--0.010468
--0.010681
--0.010925
--0.011383
--0.011292
--0.011353
--0.011444
--0.011475
--0.011414
--0.011444
--0.011292
--0.0112
--0.011566
--0.011536
--0.01181
--0.011841
--0.011658
--0.011322
--0.010803
--0.010742
--0.010651
--0.01062
--0.010437
--0.01059
--0.010712
--0.010864
--0.010956
--0.011047
--0.01123
--0.011322
--0.011475
--0.011444
--0.011383
--0.011475
--0.01181
--0.011902
--0.01181
--0.01181
--0.011841
--0.011749
--0.011719
--0.011597
--0.011627
--0.011414
--0.011383
--0.011322
--0.01123
--0.011322
--0.011047
--0.010925
--0.0112
--0.011292
--0.011169
--0.011078
--0.010742
--0.010437
--0.010284
--0.010101
--0.0099487
--0.0098572
--0.0096741
--0.0093994
--0.0092163
--0.0093079
--0.009491
--0.0096436
--0.0096436
--0.009613
--0.009552
--0.0097046
--0.0097656
--0.010162
--0.01059
--0.010803
--0.011078
--0.0112
--0.010925
--0.011047
--0.011017
--0.011169
--0.011292
--0.011444
--0.011597
--0.011627
--0.011871
--0.011841
--0.011871
--0.011719
--0.011566
--0.011566
--0.011597
--0.011261
--0.011292
--0.011169
--0.011261
--0.011108
--0.010803
--0.010529
--0.010376
--0.010315
--0.010406
--0.010498
--0.010437
--0.010345
--0.010284
--0.010254
--0.010223
--0.01004
--0.0099487
--0.009613
--0.0094299
--0.0089111
--0.0087585
--0.0085754
--0.0085449
--0.0087891
--0.0089417
--0.0091858
--0.0090942
--0.0092163
--0.0090027
--0.0088806
--0.0089417
--0.0092773
--0.0093079
--0.0093079
--0.0093384
--0.0094604
--0.009491
--0.0094299
--0.0094604
--0.0094604
--0.0097351
--0.0098572
--0.0097046
--0.0098267
--0.01004
--0.010101
--0.010254
--0.010193
--0.010284
--0.010193
--0.010071
--0.010101
--0.010284
--0.010437
--0.010406
--0.010223
--0.010254
--0.0098572
--0.009613
--0.0095215
--0.0092773
--0.0091858
--0.0088196
--0.008667
--0.008728
--0.0088806
--0.0091248
--0.0090332
--0.0088501
--0.0090637
--0.0088196
--0.0087891
--0.0085449
--0.0084534
--0.0086975
--0.008667
--0.008728
--0.0087585
--0.0088196
--0.0088501
--0.0091553
--0.0090027
--0.0089417
--0.0085449
--0.0081787
--0.0075378
--0.0071106
--0.0066223
--0.0068359
--0.0068359
--0.0070801
--0.0074158
--0.0079041
--0.0081177
--0.0080566
--0.0082703
--0.0080261
--0.0081177
--0.0080566
--0.0080872
--0.0080872
--0.007782
--0.0075073
--0.0073242
--0.0072937
--0.0074768
--0.0072937
--0.0071411
--0.0073853
--0.0073547
--0.0074158
--0.0072937
--0.0072021
--0.006897
--0.0066833
--0.0063782
--0.0058899
--0.0059509
--0.0061035
--0.0062866
--0.0062866
--0.0065308
--0.0067139
--0.0068054
--0.0068665
--0.0069885
--0.0071106
--0.007019
--0.0072632
--0.0074463
--0.0075378
--0.0075989
--0.007782
--0.0076294
--0.0075073
--0.0075073
--0.0073242
--0.0070496
--0.0071716
--0.0077209
--0.0081177
--0.0081787
--0.0082397
--0.0083313
--0.0085144
--0.0087585
--0.008667
--0.008667
--0.0083313
--0.0080872
--0.0077209
--0.0072021
--0.006897
--0.0064697
--0.0065613
--0.0066223
--0.0067444
--0.0068054
--0.0065918
--0.0065918
--0.0066528
--0.0070801
--0.0075989
--0.007782
--0.0077209
--0.0075684
--0.0072021
--0.007019
--0.0068054
--0.0066223
--0.0066223
--0.0065002
--0.0064697
--0.0063477
--0.0065308
--0.0065002
--0.0065613
--0.0064392
--0.0063171
--0.0064087
--0.0063477
--0.0065308
--0.0066528
--0.0067444
--0.0069885
--0.0071106
--0.0070496
--0.0067749
--0.0065918
--0.0065308
--0.0065918
--0.0063782
--0.006134
--0.0058289
--0.0058289
--0.0056458
--0.0054321
--0.0057983
--0.0057983
--0.0057373
--0.0057373
--0.0057068
--0.0057678
--0.0057068
--0.0056458
--0.0057068
--0.0054626
--0.0053406
--0.0053711
--0.0053711
--0.0054321
--0.0056152
--0.0056763
--0.0059204
--0.0063171
--0.0066833
--0.0069885
--0.006958
--0.0067749
--0.0064087
--0.0061035
--0.006134
--0.0063171
--0.0062561
--0.0063782
--0.0063477
--0.0062256
--0.0065308
--0.0069885
--0.0072327
--0.0072937
--0.0073853
--0.0076294
--0.007782
--0.0080872
--0.0082397
--0.0082397
--0.0083923
--0.0083313
--0.0081787
--0.0078125
--0.0079346
--0.0082092
--0.0085754
--0.0084839
--0.0079956
--0.0072937
--0.0070496
--0.0068054
--0.0068359
--0.0067749
--0.0067444
--0.0068054
--0.0067444
--0.006958
--0.0067139
--0.0063171
--0.0061951
--0.006012
--0.0059509
--0.0056763
--0.0056152
--0.0055542
--0.0055542
--0.0056763
--0.0060425
--0.0062256
--0.0065002
--0.0065002
--0.0063171
--0.0065002
--0.0063782
--0.0061951
--0.0060425
--0.0061646
--0.0064087
--0.0065918
--0.0067444
--0.0070496
--0.0069275
--0.0067444
--0.0065308
--0.0065308
--0.0066528
--0.0068359
--0.0071106
--0.0074158
--0.0072937
--0.0074768
--0.0073242
--0.0072632
--0.0073853
--0.0073853
--0.0072327
--0.0069885
--0.0068054
--0.0069275
--0.006897
--0.006897
--0.0067749
--0.007019
--0.0070496
--0.0068054
--0.0071106
--0.0069885
--0.0067139
--0.0067749
--0.0068359
--0.007019
--0.0069275
--0.0068665
--0.0066833
--0.0068665
--0.0071411
--0.0071411
--0.0072021
--0.0072632
--0.0072327
--0.0072937
--0.0074158
--0.0075684
--0.0074463
--0.0076904
--0.0074768
--0.0074768
--0.0074158
--0.0077515
--0.01059
--0.014771
--0.013611
--0.0086975
--0.0061951
--0.0045471
--0.0030823
--0.0053406
--0.0074463
--0.0055542
--0.0041504
--0.0050049
--0.0057983
--0.0078735
--0.012543
--0.016113
--0.015778
--0.013947
--0.011505
--0.0078735
--0.005188
--0.0046997
--0.005249
--0.0063477
--0.0070496
--0.0069275
--0.0066223
--0.0077515
--0.0096436
--0.0112
--0.012085
--0.012543
--0.011871
--0.010376
--0.0093079
--0.0085144
--0.0083618
--0.0088501
--0.0088806
--0.0083923
--0.0077515
--0.0078735
--0.008728
--0.0098572
--0.011353
--0.012115
--0.01239
--0.012329
--0.012054
--0.011169
--0.010773
--0.010712
--0.010498
--0.010406
--0.010529
--0.010559
--0.010193
--0.0099792
--0.010529
--0.011658
--0.012543
--0.012756
--0.012177
--0.011383
--0.010986
--0.010529
--0.010101
--0.0099487
--0.0094604
--0.0091248
--0.0083923
--0.0080261
--0.0078735
--0.0085449
--0.009613
--0.010223
--0.010376
--0.010162
--0.01004
--0.010132
--0.0099792
--0.0097351
--0.0091553
--0.0089111
--0.0085754
--0.0088196
--0.008667
--0.0090942
--0.0093079
--0.0093689
--0.0093994
--0.0097046
--0.01004
--0.010071
--0.010193
--0.010284
--0.010132
--0.010193
--0.010162
--0.010529
--0.01062
--0.010651
--0.01059
--0.010376
--0.0099792
--0.0096741
--0.0098877
--0.010284
--0.010468
--0.010498
--0.010529
--0.010864
--0.010864
--0.010956
--0.011047
--0.011261
--0.011505
--0.011536
--0.011322
--0.011292
--0.01123
--0.011139
--0.010956
--0.010986
--0.010834
--0.010773
--0.010803
--0.011017
--0.011383
--0.011719
--0.012177
--0.012146
--0.011993
--0.011627
--0.011719
--0.011688
--0.011475
--0.011169
--0.011078
--0.011536
--0.011597
--0.011932
--0.012146
--0.012177
--0.012238
--0.012024
--0.01181
--0.011536
--0.011536
--0.011505
--0.011353
--0.0112
--0.010712
--0.010498
--0.010559
--0.01059
--0.010925
--0.011017
--0.011383
--0.01123
--0.010895
--0.010803
--0.010681
--0.010651
--0.01059
--0.010315
--0.010345
--0.010162
--0.010254
--0.010529
--0.010559
--0.010437
--0.01004
--0.01004
--0.0099487
--0.0097351
--0.0099792
--0.010132
--0.010406
--0.010681
--0.011047
--0.011139
--0.011108
--0.011353
--0.011505
--0.011597
--0.011475
--0.0112
--0.011261
--0.011169
--0.0112
--0.011444
--0.011292
--0.0112
--0.0112
--0.01123
--0.011322
--0.011261
--0.011108
--0.010773
--0.010651
--0.01062
--0.01059
--0.010468
--0.010559
--0.010651
--0.01059
--0.010315
--0.010284
--0.010468
--0.010559
--0.010529
--0.010529
--0.010437
--0.010468
--0.01059
--0.010437
--0.0099182
--0.009552
--0.0096436
--0.0097351
--0.0096741
--0.010071
--0.010132
--0.010223
--0.010315
--0.010498
--0.010284
--0.010132
--0.010071
--0.0098572
--0.0099182
--0.0098267
--0.0099182
--0.010284
--0.010437
--0.010529
--0.01062
--0.010376
--0.01004
--0.010101
--0.010071
--0.01004
--0.0099182
--0.0098877
--0.0097961
--0.009613
--0.0094604
--0.0092773
--0.0092468
--0.0093079
--0.0090332
--0.0089111
--0.0088501
--0.0088806
--0.0090027
--0.0087891
--0.0087891
--0.0087891
--0.0089417
--0.0088196
--0.008728
--0.008728
--0.0089111
--0.0090637
--0.0089417
--0.0087891
--0.008728
--0.0088196
--0.0090027
--0.0090332
--0.0091858
--0.0093689
--0.0094604
--0.0095825
--0.0096741
--0.009491
--0.0094604
--0.0097656
--0.0098572
--0.010101
--0.010071
--0.01001
--0.0096741
--0.009613
--0.0097046
--0.0098572
--0.0099792
--0.010132
--0.010345
--0.010529
--0.01062
--0.010742
--0.010468
--0.010559
--0.010315
--0.010284
--0.0099487
--0.0098267
--0.0096741
--0.0098572
--0.0098877
--0.01004
--0.010101
--0.010254
--0.010101
--0.01004
--0.0099487
--0.0099792
--0.0099182
--0.0097656
--0.009613
--0.009613
--0.0093994
--0.0091248
--0.0090637
--0.0089111
--0.0089722
--0.0088196
--0.0084534
--0.0080566
--0.0076904
--0.0075073
--0.007782
--0.0077209
--0.0078735
--0.0080566
--0.0081482
--0.0084534
--0.0086975
--0.0089111
--0.0089111
--0.008667
--0.0083923
--0.0083313
--0.0083618
--0.0084229
--0.0084229
--0.0085144
--0.0086975
--0.0087585
--0.008728
--0.008728
--0.0085144
--0.0082703
--0.0082092
--0.0081787
--0.0079346
--0.0074768
--0.0074158
--0.0075989
--0.0079346
--0.0079956
--0.0077515
--0.007782
--0.0075989
--0.0075073
--0.0074463
--0.0075073
--0.0074768
--0.0074768
--0.0072937
--0.0073242
--0.0073853
--0.0076294
--0.0077209
--0.0075989
--0.0075073
--0.0076294
--0.0076904
--0.0079041
--0.0080261
--0.0081482
--0.0079956
--0.0078125
--0.0075378
--0.0072937
--0.0072327
--0.0073853
--0.0077515
--0.0077209
--0.0080261
--0.0081482
--0.0083008
--0.0082397
--0.007843
--0.0077209
--0.0076599
--0.0075073
--0.0072021
--0.0070496
--0.0072327
--0.0073547
--0.006958
--0.006897
--0.006897
--0.0066223
--0.0063171
--0.0063782
--0.006073
--0.0061035
--0.0060425
--0.0062256
--0.0062561
--0.0065002
--0.0063782
--0.0058289
--0.0055237
--0.0054932
--0.0057373
--0.0057373
--0.0056152
--0.0058899
--0.0058289
--0.0058289
--0.0056458
--0.0053101
--0.005188
--0.005127
--0.005127
--0.0053101
--0.0054321
--0.0055237
--0.0059509
--0.006073
--0.006012
--0.0063477
--0.0066528
--0.0065308
--0.0066528
--0.0067444
--0.0070496
--0.0073547
--0.0072632
--0.0071411
--0.0072937
--0.0068665
--0.0065613
--0.0065918
--0.0065918
--0.0065918
--0.0063782
--0.0063171
--0.006134
--0.006134
--0.0059814
--0.0058594
--0.0057983
--0.0053406
--0.0050354
--0.0047913
--0.0049133
--0.0049744
--0.0049744
--0.0048523
--0.0049744
--0.0048828
--0.0048218
--0.0046387
--0.0046997
--0.0047607
--0.0050049
--0.0053711
--0.0056152
--0.0059814
--0.0059814
--0.0059814
--0.0061035
--0.0061035
--0.0059509
--0.0063171
--0.0063171
--0.0062561
--0.006134
--0.006073
--0.0058289
--0.0054016
--0.0053101
--0.0054321
--0.0056152
--0.0057983
--0.0060425
--0.0063477
--0.0066833
--0.0069885
--0.0072937
--0.0073547
--0.0073242
--0.0072021
--0.0071411
--0.0070801
--0.0070496
--0.0072327
--0.0071716
--0.0070496
--0.006897
--0.006958
--0.006958
--0.0070801
--0.0070496
--0.0069885
--0.0069275
--0.0066223
--0.0065308
--0.0064087
--0.0065918
--0.006897
--0.0069275
--0.0071716
--0.0069885
--0.0068665
--0.006958
--0.0072632
--0.0075684
--0.0077209
--0.0079041
--0.0080261
--0.0079956
--0.0081787
--0.0084229
--0.0083923
--0.0082092
--0.0083008
--0.0083618
--0.0085449
--0.0083313
--0.0079651
--0.0080261
--0.0076904
--0.0073242
--0.0068665
--0.0069275
--0.0071106
--0.0071716
--0.0073853
--0.0075684
--0.0078125
--0.0075378
--0.0074158
--0.0073853
--0.0074463
--0.0071411
--0.0068359
--0.0068665
--0.0069275
--0.0068665
--0.0072021
--0.0072021
--0.0073242
--0.0073547
--0.0073547
--0.0072327
--0.0073242
--0.0072632
--0.0071106
--0.0069275
--0.0065613
--0.0066223
--0.006897
--0.0071411
--0.0074158
--0.0074768
--0.0075989
--0.0076294
--0.0077515
--0.0079956
--0.0079651
--0.0079651
--0.0079346
--0.0081787
--0.0083313
--0.0083313
--0.008667
--0.008667
--0.0087585
--0.0088196
--0.0088501
--0.0084839
--0.0082092
--0.0080261
--0.0079041
--0.0077515
--0.0073853
--0.0074158
--0.0075378
--0.007782
--0.0079346
--0.0080261
--0.0081482
--0.0079956
--0.0079956
--0.007843
--0.0076599
--0.0073547
--0.0072021
--0.0072021
--0.006897
--0.0072632
--0.0074158
--0.0077209
--0.0081482
--0.0084229
--0.0084839
--0.0082397
--0.0082703
--0.0083313
--0.0084839
--0.0084839
--0.0085449
--0.0083923
--0.0081482
--0.0079651
--0.0081177
--0.0085449
--0.0086975
--0.0088806
--0.008728
--0.0090332
--0.0091858
--0.0092468
--0.0093384
--0.0093994
--0.009491
--0.0096741
--0.0097046
--0.0098267
--0.0097351
--0.0097961
--0.0099487
--0.0098877
--0.0099182
--0.0099182
--0.0099487
--0.0097046
--0.009491
--0.009552
--0.0093994
--0.0093384
--0.0092468
--0.0093079
--0.0094604
--0.0094604
--0.0093689
--0.0093079
--0.0090332
--0.0089722
--0.0090637
--0.0091248
--0.0090332
--0.0088501
--0.0090027
--0.0092468
--0.0090942
--0.0093384
--0.0094299
--0.0097961
--0.0097656
--0.0096741
--0.0094299
--0.0095825
--0.0095215
--0.009552
--0.0095825
--0.0097656
--0.0097351
--0.0099182
--0.0098877
--0.0097961
--0.0097961
--0.0098877
--0.0099792
--0.010101
--0.010071
--0.010162
--0.010284
--0.010437
--0.010406
--0.0099792
--0.0095825
--0.0093079
--0.0089417
--0.0090942
--0.0093384
--0.009491
--0.009491
--0.0093384
--0.0093079
--0.0093689
--0.0091553
--0.0088501
--0.008667
--0.0083313
--0.0082703
--0.0085754
--0.0089111
--0.0090027
--0.0091248
--0.0089111
--0.008728
--0.008667
--0.0085754
--0.0085144
--0.0087891
--0.0089722
--0.0094299
--0.009613
--0.0097656
--0.0098267
--0.009613
--0.0096741
--0.0096436
--0.0094604
--0.0093689
--0.0093079
--0.0092163
--0.0095825
--0.0096741
--0.009552
--0.0092163
--0.0090942
--0.0090027
--0.0088806
--0.0092163
--0.0092773
--0.009491
--0.0097351
--0.0097656
--0.0098877
--0.01004
--0.01001
--0.010132
--0.0099792
--0.0097046
--0.0095825
--0.0096741
--0.0097961
--0.0098877
--0.0098572
--0.0096741
--0.0095825
--0.009491
--0.0094299
--0.0095825
--0.0096741
--0.0098572
--0.0097656
--0.0098572
--0.009613
--0.0093994
--0.0091858
--0.0090027
--0.0090332
--0.0092773
--0.0093689
--0.0094604
--0.0095215
--0.0097961
--0.0099792
--0.0098877
--0.010101
--0.010223
--0.010132
--0.010071
--0.0099792
--0.0099792
--0.0095825
--0.0093994
--0.0092468
--0.0093079
--0.0093994
--0.0092773
--0.0091858
--0.0090027
--0.0088501
--0.008728
--0.008606
--0.0082703
--0.0083313
--0.0079651
--0.0078125
--0.0078125
--0.007843
--0.0080261
--0.0079041
--0.0078735
--0.0079956
--0.0080261
--0.0081482
--0.0082703
--0.0083618
--0.0082397
--0.0080261
--0.0081482
--0.0082092
--0.0083008
--0.0084229
--0.0084534
--0.0086975
--0.0089111
--0.0090332
--0.0093689
--0.0094299
--0.0094604
--0.0095215
--0.0094299
--0.009491
--0.0095215
--0.0097046
--0.0097351
--0.0096436
--0.0096436
--0.0090637
--0.0086365
--0.0084839
--0.0084229
--0.0085754
--0.0085754
--0.0084839
--0.0084839
--0.0085144
--0.0084534
--0.0085449
--0.0087891
--0.0087585
--0.0085144
--0.0081177
--0.0076904
--0.0073853
--0.0072327
--0.0070496
--0.0068359
--0.006897
--0.007019
--0.0068665
--0.0068665
--0.0071106
--0.0072021
--0.0072021
--0.0074158
--0.0072327
--0.0071106
--0.007019
--0.0072021
--0.0070496
--0.0071716
--0.0074158
--0.0075073
--0.0075073
--0.0074768
--0.0074158
--0.0073547
--0.006958
--0.006958
--0.0067139
--0.0065613
--0.0065613
--0.0067444
--0.0071106
--0.0071411
--0.0075684
--0.0076904
--0.0078125
--0.0079041
--0.0079651
--0.0079956
--0.0076904
--0.0072632
--0.007019
--0.0067444
--0.0064392
--0.0061951
--0.0061951
--0.0065002
--0.0064697
--0.0062866
--0.0064087
--0.0062866
--0.0061646
--0.006012
--0.0058899
--0.0055847
--0.0054626
--0.0055847
--0.0057068
--0.0056458
--0.0057678
--0.0057373
--0.0056152
--0.0053711
--0.005188
--0.0053101
--0.0056152
--0.0058594
--0.0055237
--0.0055847
--0.0054016
--0.0053406
--0.0051575
--0.0050964
--0.0049133
--0.0048523
--0.0046692
--0.0046692
--0.0048828
--0.0049438
--0.0053711
--0.0056152
--0.0056152
--0.0053101
--0.005188
--0.005188
--0.0053406
--0.0053406
--0.0052185
--0.0050964
--0.0050964
--0.0050964
--0.0052185
--0.0053406
--0.005249
--0.005249
--0.005127
--0.005249
--0.0053711
--0.0057373
--0.0056763
--0.0055847
--0.0054016
--0.0054016
--0.0055237
--0.0052795
--0.0052795
--0.0050964
--0.0048523
--0.0047607
--0.0048218
--0.0049438
--0.0050659
--0.0053101
--0.0053711
--0.005127
--0.0047302
--0.0045471
--0.0045471
--0.0046082
--0.0050354
--0.0054016
--0.0055847
--0.0054626
--0.0054016
--0.0052795
--0.0050354
--0.0049438
--0.0050049
--0.005127
--0.005127
--0.0053711
--0.0057983
--0.0058594
--0.0058289
--0.0056458
--0.0053406
--0.0049744
--0.0046692
--0.0044861
--0.0041809
--0.0041199
--0.0040588
--0.0040588
--0.0041809
--0.004303
--0.0039978
--0.0038757
--0.0034485
--0.0032043
--0.0031433
--0.0031433
--0.0031433
--0.0029297
--0.0028076
--0.0029297
--0.0030518
--0.0029907
--0.0031738
--0.0033569
--0.0036621
--0.0037842
--0.0040283
--0.0040894
--0.0041504
--0.0042725
--0.0043945
--0.0043945
--0.0042725
--0.0042725
--0.0043945
--0.0045166
--0.0043945
--0.0046387
--0.0049438
--0.005249
--0.0055542
--0.0053711
--0.0053711
--0.005188
--0.0049744
--0.0049133
--0.004425
--0.0044861
--0.0042419
--0.0041809
--0.0042419
--0.0046082
--0.0047913
--0.0046692
--0.0046692
--0.0044861
--0.004425
--0.0042419
--0.0042419
--0.004303
--0.0041809
--0.0040588
--0.0038757
--0.0039368
--0.0038147
--0.0037537
--0.0039368
--0.0039368
--0.0040588
--0.0041199
--0.0039978
--0.004425
--0.0044861
--0.0047302
--0.0046692
--0.0047913
--0.0048828
--0.0053711
--0.0057983
--0.0062866
--0.0062256
--0.0062561
--0.0061951
--0.006134
--0.0059509
--0.0062256
--0.0064087
--0.0062866
--0.0062561
--0.0063782
--0.006134
--0.006073
--0.0060425
--0.0059814
--0.0056152
--0.0050659
--0.0050659
--0.0050659
--0.005249
--0.0056458
--0.0059509
--0.006134
--0.006012
--0.0057983
--0.0057373
--0.0053711
--0.0055542
--0.005249
--0.005249
--0.0054932
--0.0056152
--0.0056458
--0.0053406
--0.0053406
--0.0052185
--0.0054626
--0.0056458
--0.0056458
--0.0057983
--0.0059204
--0.0063477
--0.0066528
--0.0066223
--0.0067444
--0.0065002
--0.0063782
--0.0061646
--0.0061035
--0.0062866
--0.0064087
--0.0065002
--0.0067444
--0.0067444
--0.0069885
--0.0067749
--0.0067139
--0.0065918
--0.0064392
--0.0063171
--0.0063171
--0.0064392
--0.0067139
--0.006958
--0.0071411
--0.0073547
--0.0073547
--0.0071716
--0.007019
--0.006897
--0.0066223
--0.0068665
--0.0068054
--0.006897
--0.0066528
--0.0067749
--0.0068665
--0.0067444
--0.0067444
--0.0064697
--0.0063477
--0.0062866
--0.0066223
--0.0067444
--0.0068665
--0.006958
--0.006958
--0.0070496
--0.0068054
--0.0069275
--0.0070801
--0.0070801
--0.0072937
--0.0071106
--0.0075378
--0.0073853
--0.0073242
--0.0071411
--0.0069885
--0.0069275
--0.0066223
--0.0067444
--0.007019
--0.0071411
--0.0074463
--0.0076294
--0.0079651
--0.0080261
--0.0080872
--0.0080566
--0.0081787
--0.0084534
--0.0083313
--0.0083313
--0.0081177
--0.0080566
--0.0082703
--0.0083923
--0.0084534
--0.008606
--0.0083618
--0.0079651
--0.007843
--0.0077209
--0.0080566
--0.0080566
--0.0082092
--0.0081482
--0.0080872
--0.0078125
--0.0076294
--0.0075989
--0.0075989
--0.007782
--0.0076904
--0.0077515
--0.007843
--0.0077209
--0.0079041
--0.0076294
--0.0078125
--0.007782
--0.007843
--0.0082092
--0.0080566
--0.0081177
--0.0081482
--0.0080872
--0.0081482
--0.008606
--0.0089417
--0.0089417
--0.008728
--0.0088501
--0.0091858
--0.0093079
--0.0093384
--0.0094604
--0.0097351
--0.0097351
--0.0098267
--0.0096741
--0.0096741
--0.0095825
--0.0093994
--0.0092468
--0.0088196
--0.0084229
--0.0082397
--0.0082703
--0.0085144
--0.008606
--0.0084839
--0.0086365
--0.0083923
--0.0083008
--0.0083618
--0.0082092
--0.0082092
--0.0083008
--0.0082397
--0.0082092
--0.0080872
--0.0083008
--0.0081177
--0.0081482
--0.0080261
--0.0081177
--0.0081787
--0.0083313
--0.0082703
--0.0083618
--0.0085449
--0.0086365
--0.0089417
--0.0093079
--0.0093994
--0.009491
--0.0091858
--0.0092163
--0.0093384
--0.009613
--0.0099182
--0.01001
--0.0098877
--0.0096741
--0.0092468
--0.0090942
--0.0089722
--0.0088196
--0.0086365
--0.0086975
--0.0083618
--0.0083618
--0.0083008
--0.0084534
--0.0087585
--0.008728
--0.0087891
--0.0087585
--0.0085144
--0.0084229
--0.0083618
--0.0083618
--0.0082703
--0.0083313
--0.0081482
--0.0079956
--0.0076294
--0.0075378
--0.0076599
--0.0077209
--0.0079956
--0.0083008
--0.0082703
--0.0084534
--0.0085449
--0.0083618
--0.0084229
--0.0086365
--0.0087585
--0.0084839
--0.0082397
--0.0082092
--0.0082703
--0.0083923
--0.0084839
--0.0084534
--0.0085144
--0.0087891
--0.0090332
--0.0091858
--0.0090637
--0.0093994
--0.0092773
--0.0090637
--0.0090637
--0.0087891
--0.0084839
--0.0082703
--0.0082092
--0.0080261
--0.0079346
--0.0079956
--0.0079651
--0.007782
--0.0075378
--0.0072021
--0.0071411
--0.0068665
--0.0068665
--0.0071716
--0.0074463
--0.0076904
--0.0074158
--0.0072937
--0.0071716
--0.006958
--0.006897
--0.0068054
--0.0068665
--0.0069275
--0.0067749
--0.0066528
--0.0067444
--0.0068665
--0.0069885
--0.0072021
--0.0071411
--0.0073242
--0.0071716
--0.0071106
--0.0069885
--0.0069885
--0.0068359
--0.0065918
--0.0062866
--0.0062866
--0.0060425
--0.0057983
--0.0059814
--0.006073
--0.0063171
--0.0064392
--0.0066223
--0.0067444
--0.0065918
--0.0065308
--0.0062866
--0.0061646
--0.0061035
--0.0061951
--0.0063171
--0.0063782
--0.0062561
--0.006073
--0.0058289
--0.0055237
--0.0053711
--0.005127
--0.005188
--0.005127
--0.0050659
--0.005127
--0.0053101
--0.0053406
--0.0054626
--0.0055847
--0.0057678
--0.0055237
--0.0054016
--0.0054016
--0.0054016
--0.0053101
--0.0054932
--0.0057373
--0.0057373
--0.0059204
--0.0058594
--0.0059204
--0.0057068
--0.0055847
--0.0056458
--0.0058289
--0.0057068
--0.0057678
--0.0058289
--0.006012
--0.0061646
--0.0061035
--0.0061035
--0.0059204
--0.0057373
--0.0054321
--0.005249
--0.0049744
--0.0049744
--0.0048523
--0.0045471
--0.0042419
--0.004425
--0.0045471
--0.0046082
--0.004425
--0.0044861
--0.0045471
--0.004425
--0.004303
--0.0041809
--0.0041199
--0.0040588
--0.0038147
--0.0038757
--0.0038147
--0.0038147
--0.0037537
--0.0038757
--0.0040588
--0.0041199
--0.004303
--0.0044861
--0.0046082
--0.0044861
--0.0047302
--0.0045471
--0.004425
--0.0041809
--0.004303
--0.0042419
--0.004303
--0.0045471
--0.004425
--0.004364
--0.0042419
--0.0040588
--0.0042419
--0.0042419
--0.0045471
--0.0045471
--0.0045471
--0.004303
--0.0042419
--0.0040588
--0.0035706
--0.0035706
--0.0034485
--0.0032654
--0.0030518
--0.0028076
--0.0028076
--0.0027466
--0.0027466
--0.0029297
--0.0029907
--0.0029297
--0.0028381
--0.0027771
--0.002594
--0.002655
--0.0028992
--0.0029602
--0.0030823
--0.0031433
--0.0030823
--0.0027161
--0.002533
--0.0023499
--0.0020447
--0.0021057
--0.0021667
--0.002594
--0.0029602
--0.0029907
--0.0031738
--0.0031128
--0.0031738
--0.0032959
--0.0033569
--0.0031738
--0.0030518
--0.0029602
--0.0030212
--0.0030212
--0.0031433
--0.0028992
--0.002655
--0.002533
--0.0027771
--0.0028992
--0.0031433
--0.0032043
--0.0032654
--0.0032043
--0.0030823
--0.0032043
--0.0033264
--0.0034485
--0.0031433
--0.0032043
--0.0030823
--0.0032654
--0.0033264
--0.0033875
--0.0034485
--0.0032654
--0.0032654
--0.0031433
--0.0031433
--0.0027771
--0.0028381
--0.002655
--0.002594
--0.002594
--0.002533
--0.0028992
--0.0030823
--0.0032043
--0.0032654
--0.0033264
--0.0032654
--0.0032043
--0.0032043
--0.0031433
--0.0033875
--0.0040894
--0.0043335
--0.0040894
--0.0041504
--0.0039063
--0.0037842
--0.0037842
--0.0039673
--0.0039673
--0.0035706
--0.0035095
--0.0034485
--0.0030823
--0.0033264
--0.0035095
--0.0035706
--0.0035706
--0.0036621
--0.0036621
--0.0037231
--0.0035706
--0.0033264
--0.0033264
--0.0033264
--0.0030212
--0.0027771
--0.0028381
--0.0027771
--0.0027161
--0.0029602
--0.0028992
--0.0030212
--0.0032043
--0.0033264
--0.0032043
--0.0032654
--0.0033264
--0.0033264
--0.0032654
--0.0031433
--0.0030823
--0.0033264
--0.0035095
--0.0034485
--0.0038452
--0.0040894
--0.0044556
--0.0045776
--0.0043945
--0.0043335
--0.0043945
--0.0043945
--0.0046387
--0.0046997
--0.0048828
--0.0046387
--0.0046997
--0.0046997
--0.0044556
--0.0043335
--0.0043335
--0.0047607
--0.0045166
--0.0045166
--0.0040894
--0.0042114
--0.0042114
--0.0044556
--0.0045776
--0.0046387
--0.0044556
--0.0043335
--0.0043945
--0.0043945
--0.0042725
--0.0041504
--0.0037842
--0.0036316
--0.0036316
--0.0037231
--0.0040283
--0.0043335
--0.0046997
--0.0048218
--0.0050659
--0.0050659
--0.0048828
--0.0050659
--0.0048218
--0.0045776
--0.0045776
--0.0048218
--0.0050049
--0.0050659
--0.005188
--0.005188
--0.0050354
--0.0049744
--0.0050354
--0.0048523
--0.0049133
--0.0046692
--0.0046692
--0.0046082
--0.0047302
--0.0049133
--0.0047302
--0.0047302
--0.0045471
--0.004303
--0.0041809
--0.0042419
--0.004303
--0.004303
--0.0040588
--0.0038757
--0.0038757
--0.0039368
--0.0039368
--0.0041199
--0.0041809
--0.004425
--0.0045471
--0.0046692
--0.0050354
--0.0049744
--0.0050354
--0.0050049
--0.0050049
--0.0050049
--0.0048218
--0.0046997
--0.0047607
--0.0050049
--0.005188
--0.0056152
--0.0059204
--0.0062561
--0.0063782
--0.0063171
--0.006012
--0.006012
--0.0057983
--0.0054932
--0.005249
--0.005249
--0.0054321
--0.0061646
--0.0065002
--0.0068054
--0.0071106
--0.0071106
--0.0072632
--0.0075073
--0.007782
--0.0079041
--0.007843
--0.0075684
--0.0074463
--0.0075073
--0.0073547
--0.0074158
--0.0075684
--0.0072632
--0.0072021
--0.0071411
--0.0072937
--0.0073547
--0.0075073
--0.0076904
--0.0077515
--0.0073547
--0.0073547
--0.0073547
--0.0073853
--0.0072632
--0.0074768
--0.0075378
--0.0072327
--0.0067749
--0.0065918
--0.0064087
--0.0065002
--0.0067444
--0.0068054
--0.0068054
--0.007019
--0.0071411
--0.0071411
--0.0071106
--0.0071716
--0.0071411
--0.0072021
--0.0070801
--0.0072327
--0.0073547
--0.0072937
--0.0071411
--0.0071411
--0.0072937
--0.0071106
--0.0071106
--0.0072632
--0.0073853
--0.0074158
--0.0072937
--0.0068665
--0.0067139
--0.0065918
--0.0066528
--0.0066833
--0.0067444
--0.0069275
--0.006958
--0.007019
--0.0071411
--0.0071716
--0.0070496
--0.0070801
--0.006958
--0.006897
--0.0067444
--0.0068665
--0.0072327
--0.0073853
--0.0073853
--0.0075378
--0.0074768
--0.007782
--0.0078735
--0.0079041
--0.0082092
--0.0084229
--0.0083618
--0.0085449
--0.0085754
--0.0086975
--0.0087585
--0.0089111
--0.0089722
--0.0092468
--0.0093689
--0.0093384
--0.0093384
--0.0088196
--0.0085144
--0.0083313
--0.0080566
--0.0079956
--0.0082092
--0.0082703
--0.0082703
--0.0083008
--0.0084839
--0.0085144
--0.0085144
--0.0085144
--0.0084839
--0.0083618
--0.0081482
--0.007782
--0.0074768
--0.0073242
--0.0070801
--0.006897
--0.0068054
--0.0066833
--0.0063782
--0.006073
--0.0058289
--0.0056763
--0.0056763
--0.0054932
--0.0056763
--0.0059814
--0.0061035
--0.0057678
--0.0058289
--0.0063782
--0.0067444
--0.0069885
--0.0070801
--0.0074463
--0.0075989
--0.0073547
--0.0072327
--0.0075073
--0.0077515
--0.0077515
--0.0076599
--0.007782
--0.0081787
--0.0081177
--0.0084229
--0.0086365
--0.0086975
--0.008667
--0.0083618
--0.0082092
--0.0080261
--0.0077209
--0.0074463
--0.0072021
--0.0073242
--0.0071106
--0.0068054
--0.0066833
--0.0065308
--0.0063477
--0.0061035
--0.0059204
--0.0057068
--0.0056458
--0.0057068
--0.0058899
--0.0061646
--0.0064087
--0.0063477
--0.0061646
--0.0059509
--0.0056458
--0.0056458
--0.0057068
--0.0057983
--0.0058594
--0.0059814
--0.0060425
--0.006012
--0.0058899
--0.0059509
--0.0057678
--0.0055542
--0.0054321
--0.0053711
--0.0056763
--0.0059814
--0.0058899
--0.006012
--0.0058899
--0.0057068
--0.0057983
--0.0058594
--0.0059204
--0.0061035
--0.006073
--0.006134
--0.0063171
--0.0058899
--0.0056763
--0.0054321
--0.0050049
--0.0047607
--0.0044556
--0.0046997
--0.0048218
--0.0047302
--0.0048523
--0.0044861
--0.0045471
--0.0042419
--0.0038757
--0.0038147
--0.0036926
--0.0036926
--0.0036926
--0.0039978
--0.0038147
--0.0040588
--0.0042419
--0.0046692
--0.0050049
--0.0050049
--0.0049438
--0.0049438
--0.0050659
--0.0050049
--0.0050659
--0.0051575
--0.0053406
--0.0050354
--0.0049133
--0.0045471
--0.0042419
--0.0042419
--0.0042114
--0.0042114
--0.0041504
--0.0039673
--0.0040283
--0.0042725
--0.0042725
--0.0040588
--0.0037537
--0.0036926
--0.0034485
--0.0032654
--0.0032654
--0.0033875
--0.0033264
--0.0034485
--0.0033875
--0.0033875
--0.0035095
--0.0033875
--0.0034485
--0.0034485
--0.0033264
--0.0032043
--0.0029602
--0.0030212
--0.0032043
--0.0035095
--0.0033264
--0.0032043
--0.0032654
--0.0032043
--0.0032654
--0.0031433
--0.0032654
--0.0031433
--0.0029602
--0.0029602
--0.0029602
--0.0030212
--0.0032043
--0.0030823
--0.0028381
--0.0030212
--0.0028381
--0.0030823
--0.0032043
--0.0030823
--0.0028992
--0.0023804
--0.0019531
--0.0018921
--0.0019531
--0.0018311
--0.00177
--0.001709
--0.00177
--0.0017395
--0.0018005
--0.0017395
--0.0016785
--0.0015564
--0.0016174
--0.0016785
--0.0018616
--0.0018616
--0.0017395
--0.0015564
--0.0016174
--0.0013733
--0.0014954
--0.0016174
--0.0015564
--0.0016785
--0.0018005
--0.0017395
--0.0017395
--0.0016174
--0.0016174
--0.0018616
--0.0019226
--0.0021057
--0.0021057
--0.0022278
--0.0021057
--0.0019226
--0.0016174
--0.0014343
--0.0013733
--0.0013123
--0.0010681
--0.0012512
--0.0012512
--0.0015259
--0.0016479
--0.0018921
--0.0020752
--0.0022583
--0.0020142
--0.0020142
--0.001709
--0.0016785
--0.0015564
--0.0012512
--0.0011292
--0.0011902
--0.0012512
--0.0012207
--0.0014648
--0.001709
--0.001709
--0.0013428
--0.0012512
--0.0011902
--0.0012512
--0.0013123
--0.0011902
--0.0010986
--0.0010376
--0.0012817
--0.0012207
--0.0011292
--0.00094604
--0.00064087
--0.0007019
--0.0011597
--0.0014038
--0.001709
--0.0019531
--0.0020752
--0.0022583
--0.0022888
--0.0022888
--0.0022278
--0.0017395
--0.0018005
--0.0018616
--0.0019836
--0.0021667
--0.0023499
--0.002533
--0.0024109
--0.0027161
--0.002655
--0.0027161
--0.0027161
--0.002533
--0.0024109
--0.0022278
--0.0024109
--0.0022888
--0.0023499
--0.0023499
--0.0027771
--0.002533
--0.002655
--0.0027161
--0.0023499
--0.0019226
--0.0018005
--0.0016174
--0.0016174
--0.0017395
--0.0016785
--0.0018616
--0.0019226
--0.0018616
--0.0017395
--0.0016174
--0.0015564
--0.0016174
--0.0017395
--0.0019226
--0.0016785
--0.0016174
--0.0015869
--0.0016479
--0.0015869
--0.001709
--0.0021362
--0.0024414
--0.0027466
--0.0027771
--0.0029907
--0.0028381
--0.002533
--0.0022888
--0.0022278
--0.0022278
--0.0023499
--0.0024719
--0.002655
--0.0027771
--0.0027771
--0.0028992
--0.002594
--0.002594
--0.0024109
--0.0023499
--0.0024109
--0.002594
--0.0028381
--0.0031128
--0.00354
--0.0036011
--0.00354
--0.00354
--0.0031128
--0.0029907
--0.0028992
--0.0028381
--0.0027771
--0.0028992
--0.0030518
--0.0028992
--0.0031128
--0.0032349
--0.0036011
--0.0037231
--0.0036621
--0.0036011
--0.003418
--0.0033569
--0.00354
--0.0037231
--0.0039063
--0.0040283
--0.0037842
--0.0036011
--0.00354
--0.00354
--0.0036011
--0.0038452
--0.0041504
--0.0042114
--0.0041504
--0.0042114
--0.0043945
--0.0045166
--0.0045776
--0.0042725
--0.0039673
--0.0040283
--0.0038452
--0.0040894
--0.0040283
--0.0040283
--0.0039673
--0.0038452
--0.0037231
--0.0040283
--0.0042114
--0.0036011
--0.0039673
--0.0039673
--0.0036621
--0.0036011
--0.003418
--0.003479
--0.0033569
--0.0030518
--0.0031128
--0.0036011
--0.003418
--0.0037231
--0.0037842
--0.0037842
--0.0037842
--0.0040894
--0.0042114
--0.0045776
--0.0046997
--0.0050049
--0.0050354
--0.0051575
--0.0055237
--0.0055237
--0.0057068
--0.0057373
--0.0057983
--0.0057373
--0.0056458
--0.0053406
--0.0052185
--0.0051575
--0.0052185
--0.0054016
--0.0054016
--0.0051575
--0.0054932
--0.0053711
--0.0050049
--0.005188
--0.0050659
--0.0054016
--0.0056458
--0.0052795
--0.0055237
--0.0056458
--0.0053101
--0.0050659
--0.0046997
--0.0043335
--0.0039673
--0.0037231
--0.0040283
--0.0045166
--0.0045776
--0.0045776
--0.004364
--0.0045471
--0.0047302
--0.0045471
--0.0038757
--0.0021667
--0.0013123
--0.0040588
--0.006012
--0.0056458
--0.0063171
--0.007019
--0.0068359
--0.0067444
--0.0065613
--0.0070496
--0.0072632
--0.0073242
--0.0058289
--0.0050964
--0.0053406
--0.0052185
--0.0047302
--0.0049133
--0.0047607
--0.005127
--0.0054321
--0.0054932
--0.0061646
--0.0067749
--0.0067749
--0.0067444
--0.0065002
--0.006134
--0.0062561
--0.0065613
--0.0061646
--0.0054321
--0.0053101
--0.0057983
--0.0053711
--0.0048828
--0.0045166
--0.0046387
--0.005188
--0.0042725
--0.0037842
--0.0048218
--0.005249
--0.0056152
--0.0066833
--0.0067444
--0.0063171
--0.0061951
--0.0058289
--0.0057068
--0.0064697
--0.0058594
--0.005188
--0.0053711
--0.0043945
--0.0037231
--0.0040283
--0.0048218
--0.0053101
--0.0054321
--0.0056763
--0.0054626
--0.0057678
--0.006012
--0.0074768
--0.0084534
--0.006958
--0.0062256
--0.0074463
--0.0075989
--0.0061951
--0.0058289
--0.0066833
--0.0068665
--0.0054016
--0.0050659
--0.0071411
--0.0073853
--0.0062866
--0.0070496
--0.0071716
--0.0061951
--0.0052185
--0.0055847
--0.0060425
--0.0060425
--0.0048828
--0.0031128
--0.0029297
--0.0039063
--0.0046387
--0.0061035
--0.0078125
--0.0074768
--0.0066833
--0.0059509
--0.0011902
-0.0061646
-0.0019836
--0.0035095
--0.0011292
--0.0054016
--0.0099792
--0.0084839
--0.008728
--0.010773
--0.011261
--0.011108
--0.012634
--0.011627
--0.009552
--0.0082397
--0.006958
--0.005188
--0.00177
-0.0028381
-0.0093994
-0.0099792
-0.005188
-0.0032043
-0.0022278
--0.00097656
--0.0068054
--0.0099792
--0.0081482
--0.010132
--0.015656
--0.016724
--0.014618
--0.012451
--0.01001
--0.0071716
--0.0054626
--0.0024719
-0.00097656
-0.0014648
-0.0016174
-0.0042725
-0.0048218
-0.0021667
-0.00015259
-6.1035e-005
--0.00097656
--0.0048218
--0.007019
--0.0071411
--0.0098572
--0.012817
--0.010437
--0.009491
--0.009552
--0.0036926
--0.0010071
--0.0030823
--0.0045471
--0.0049133
--0.0037537
--0.0029602
--0.0027771
--0.002655
--0.00012207
--0.0014648
--0.0046997
--0.0045166
--0.0068359
--0.0036011
-0.00042725
--0.00354
--0.0059204
--0.0045776
--0.0060425
-0.0019836
-0.0070801
--0.00067139
-0.00027466
-0.0056458
-0.0019531
--0.0066528
--0.0072632
--0.0024414
--0.0021973
--0.012238
--0.013519
--0.0062866
--0.0059814
--0.0094604
--0.0075378
--0.00012207
--0.0029907
--0.0065002
--0.0019531
-0.0011597
-0.00045776
-0.0014343
-0.00354
-0.0022888
-0.0062561
-0.012054
-0.011505
-0.011353
-0.0068054
-0.0042725
-0.0068054
-0.0014038
--0.0063782
--0.010345
--0.0092773
--0.010193
--0.017517
--0.019012
--0.016785
--0.018158
--0.015991
--0.014862
--0.0082092
-0.0018616
--0.00045776
-0.0048218
-0.014954
-0.011169
-0.0090027
-0.0088501
-0.0057678
-0.00085449
--0.0080261
--0.0082703
--0.0094604
--0.016266
--0.01178
--0.012207
--0.0029907
-0.009613
--0.00048828
-0.0029907
-0.0085449
-0.0053711
-0.0039368
-0.0029297
-0.0019531
--0.0046387
--9.1553e-005
--0.0038452
--0.010742
--0.0059509
--0.0074158
--0.0037537
--0.0082092
--0.017426
--0.013245
--0.0098877
--0.0056763
-0.0010376
-0.0073547
-0.010101
-0.0062561
-0.0040894
-0.0023499
--0.0079956
--0.0083923
--0.00036621
--0.0045776
--0.0068054
--0.0033264
--0.0059509
--0.007782
--0.003479
-0.0018005
--0.00033569
--0.004303
--0.0032043
--0.00082397
-0.0029907
-0.002594
-0.00039673
-0.0029602
--0.0072937
--0.011658
--0.0027466
--0.0039673
--0.0042114
--0.0025635
--0.0010071
-0.0016785
--0.0027771
--0.0031433
-0.0021362
-0.0022583
-0.0040588
-0.0045776
--0.0011597
--0.0020142
-0.00036621
-0.0033264
-0.0014038
--0.0016479
-0.0040894
-0.0051575
-0.0014038
--0.00036621
--0.0012817
-0.0027771
-0.0040894
--0.00048828
--0.0060425
--0.0082092
--0.0044861
--0.002655
--0.0063171
--0.0040588
--0.0028381
--0.0063782
--0.0078735
--0.0054321
-0.0005188
--0.00021362
--0.0019836
-0.0043335
-0.0032654
--0.0016785
--0.0011292
-0.0013123
-0.001709
-0.00012207
--0.00015259
--0.0021057
--0.0080566
--0.0076294
--0.0047607
--0.0057983
--0.0079651
--0.0049744
--0.0022888
--0.0041809
--0.004303
--0.0014038
-0.0028687
-0.0032043
-0.0010681
-0.0032349
-0.0019531
--0.0041504
--0.0030212
--0.00039673
--0.00039673
--0.0030212
--0.0052185
--0.0027161
--0.0015869
--0.0045471
--0.0031433
-0.00030518
-0.0022583
-0.00021362
--0.0014954
-0.0031738
-0.0055847
-0.0019226
-0.00021362
-0.0026245
-6.1035e-005
--0.0040894
--0.0045776
--0.0061035
--0.008667
--0.006012
--0.0028992
--0.0021973
--0.0015259
--0.001709
--0.00048828
-0.0024109
-0.0029297
-0.0063171
-0.0073853
-0.0022583
-0.0014954
-0.0012512
--0.0020142
--0.0026245
--0.0014648
--0.00036621
--0.0022888
--0.0059814
--0.0057983
--0.0030518
--0.0027466
--0.003479
--0.00015259
-0.00082397
--0.002655
--0.0011597
-0.0022583
-0.004425
-0.003479
-0.0017395
-0.0041199
-0.0044556
-0.00057983
--0.0024719
--0.0039673
--0.0037842
--0.0055542
--0.0068359
--0.0064087
--0.0086365
--0.0079651
--0.0051575
--0.0046082
--0.0010071
-0.0019531
-0.0032654
-0.0027161
-0.0032959
-0.0054016
-0.0026855
-0.0013428
--0.00021362
--0.0040283
--0.0064087
--0.0087891
--0.0072021
--0.0061951
--0.007843
--0.006073
--0.0057068
--0.006073
--0.00076294
-0.0046387
-0.0039978
-0.0041504
-0.0074158
-0.0054932
-0.0031738
-0.0036316
-0.0039063
-
--0.0064697
--0.0093079
--0.0083923
--0.010193
--0.010529
--0.0065002
--0.0041199
--0.0040894
--0.0031433
--0.0015564
-9.1553e-005
-0.00076294
-0.0040894
-0.0084534
-0.005249
--0.0016479
--0.0019531
--0.00045776
--0.0027161
--0.0053711
--0.0056763
--0.006958
--0.012787
--0.011597
--0.0046387
--0.0027466
--0.0027466
--0.00054932
-0.00064087
--0.0010681
--0.0010071
-0.0021973
-0.0038757
-0.0027771
--0.00015259
--0.004303
--0.0066223
--0.0052185
--0.0018005
--0.00015259
--0.0020447
--0.0054626
--0.007782
--0.0053101
-0.0005188
-0.0014954
--0.00015259
-
--0.00024414
--0.0029297
-0.00042725
-0.0048523
-0.0029907
-6.1035e-005
--0.0014038
--0.005188
--0.011383
--0.012665
--0.0065918
--0.0079956
--0.011566
--0.0067444
--0.006958
--0.0087891
--0.0026245
-0.0023804
-0.0029602
--0.00015259
-0.00015259
-0.0021362
-0.00024414
-0.00033569
-0.00021362
--0.0059509
--0.010376
--0.010193
--0.011383
--0.01239
--0.011139
--0.01297
--0.011536
--0.0020752
-0.0033569
-0.0022278
-0.0015564
-0.0032349
-0.0028381
-0.0024109
-0.0063477
-0.0066223
-0.0030518
--0.0023804
--0.012543
--0.019653
--0.014191
--0.011414
--0.016998
--0.016907
--0.014191
--0.013855
--0.0092468
--0.00091553
-0.0077209
-0.011047
-0.010559
-0.0067444
-0.0049744
-0.0098267
-0.0093994
-0.0015869
--0.0090332
--0.013397
--0.011108
--0.013947
--0.013123
--0.0097046
--0.013397
--0.012878
--0.0081787
--0.0063171
--0.0027771
-0.0015259
-0.0014038
--0.0013123
-0.0011902
-0.0031433
-0.0013428
-0.00079346
--0.0015259
--0.0063477
--0.007019
--0.00354
--0.0032959
--0.0075378
--0.011505
--0.013489
--0.014496
--0.0091553
--0.0048218
--0.0066528
--0.0062256
--0.0054321
--0.0085754
--0.0047913
-0.0047607
-0.0082703
-0.0084534
-0.0091553
-0.0040894
--0.0042114
--0.0033569
-0.0024109
-0.00076294
--0.0065002
--0.012512
--0.014557
--0.010925
--0.0076904
--0.0099182
--0.011627
--0.010437
--0.012115
--0.013275
--0.0071411
--0.00033569
--0.00064087
--0.0032043
--0.00057983
-0.0036621
-0.0061951
-0.0070801
-0.0072327
-0.00354
--0.0024414
--0.009613
--0.015442
--0.016815
--0.01886
--0.019958
--0.017792
--0.014526
--0.014099
--0.011749
--0.0057068
--0.0053406
--0.0030823
-0.0079346
-0.012848
-0.0076294
-0.0031433
--0.0013733
--0.0059509
--0.00024414
-0.0042725
--0.0072021
--0.01889
--0.014709
--0.018341
--0.026276
--0.016479
--0.010651
--0.016602
--0.013153
-0.00012207
-0.0079041
-0.011108
-0.012329
-0.0069275
-0.0012207
-
-0.00039673
-0.002533
--0.004425
--0.014282
--0.014923
--0.021179
--0.030426
--0.023865
--0.0039063
-0.0031738
--0.0039063
--0.0050659
--0.0085449
--0.013885
--0.0065002
-0.012299
-0.022919
-0.014008
-0.0031128
-0.0012207
--0.0011597
--0.0029602
--0.00033569
--0.0035095
--0.011658
--0.016632
--0.017395
--0.017426
--0.020721
--0.020996
--0.011932
--0.0086975
--0.0063171
--0.00088501
--0.0011292
--0.0012817
--0.0026855
--0.00079346
-0.002533
--0.0021057
--0.0082092
--0.0042725
--0.0036011
--0.0084229
--0.0061035
--0.0054321
--0.019287
--0.024872
--0.012512
--0.0047607
--0.011444
--0.012207
--0.010376
--0.014923
--0.0065002
-0.0081787
-0.010101
-0.0090942
-0.0056458
--0.0071716
--0.014648
--0.0089722
-0.0014648
-0.0039978
--0.0053406
--0.0099487
--0.011353
--0.013458
--0.0019836
-0.0054321
--0.0056763
--0.018341
--0.01593
--0.0112
--0.0046082
-0.006897
--0.0030518
--0.016876
--0.0050354
-0.012817
-0.015991
-0.0057678
--0.004303
--0.012604
--0.020477
--0.0177
--0.0037231
-0.010468
-0.01059
--0.010193
--0.028809
--0.023193
--0.0062866
--0.001709
--0.0058594
--0.0045776
--0.003418
--0.0097046
--0.015472
--0.0072632
-0.0038147
--0.0081177
--0.019135
--0.0032654
-0.0036011
--0.0066528
--0.0049744
--0.0026855
--0.0054626
--0.0047913
--6.1035e-005
-0.0029907
-0.0028992
-0.00094604
--0.0069885
--0.016113
--0.013397
--0.0052795
--0.0057678
--0.0056458
--0.0086365
--0.01355
--0.0059509
-0.0029907
-0.0062561
-0.0072632
-0.0035706
--0.006134
--0.0095215
--0.0062256
--0.0023193
-0.0038757
-0.0042114
--0.0080261
--0.021301
--0.022888
--0.010223
--0.00012207
--0.0015869
-0.001709
--0.0032959
--0.017181
--0.0083313
-0.0070801
-0.006012
-0.0056152
-0.010223
-0.0056152
--0.0066528
--0.0040283
-0.0090027
-0.0043945
--0.018768
--0.021759
--0.0069275
--0.01001
--0.0112
--0.0035095
--0.006073
--0.011658
--0.013031
--0.0023193
-0.0065613
-0.0038147
-0.0014648
--0.0019531
--0.0076904
--0.0059509
-0.00048828
-0.0019531
--0.0042114
--0.0057983
-0.0007019
-0.0054321
-0.0012207
--0.0092163
--0.013153
--0.0098267
--0.010193
--0.014496
--0.0076904
--3.0518e-005
--0.0072021
--0.0032349
-0.010498
-0.0099182
-0.0059204
--0.012054
--0.024963
--0.012665
--0.0036316
--0.0011902
-0.0016479
-0.0069885
-0.0048523
--0.0042419
--0.002533
--0.0031128
--0.0077209
-0.0077515
-0.017639
-0.0035706
--0.0065613
--0.012268
--0.020538
--0.017029
--0.0033569
--0.00048828
-0.0063171
-0.012299
--0.0046082
--0.020905
--0.017761
--0.0082397
-0.0048218
-0.013855
-0.006134
--0.0050354
--0.0071716
--0.0028381
--0.0085754
--0.011719
--0.0012817
--0.0039673
--0.014496
--0.013733
--0.0016174
-0.005127
-0.0044556
-0.0019836
--0.0088196
--0.010925
-0.0035706
-0.00088501
--0.011841
--0.0021057
-0.0084229
--0.0023804
--0.014984
--0.0028992
-0.0025024
--0.017059
--0.021576
--0.01001
--0.0065308
-0.0016785
-0.01178
-0.0082703
--0.0007019
-0.00048828
-0.010162
-0.014618
-0.016388
-0.0071411
--0.015167
--0.024567
--0.015167
--0.0021057
-0.0041809
-0.0090027
-0.0033875
--0.01593
--0.01712
--0.0058289
--0.0032654
-0.011139
-0.023651
-0.0033569
--0.016205
--0.016663
--0.0098267
--0.0066223
--0.0091248
--0.011475
--0.01062
--0.0037231
--0.0022583
-0.0014648
-0.0029602
--0.0014954
-0.0011597
-0.009552
-0.0020752
--0.0076599
--0.0023193
--0.0072937
--0.016907
--0.013733
--0.015228
--0.015259
-0.0045471
-0.00033569
--0.027985
--0.02002
-0.0019531
--0.0058594
--0.012024
--0.00091553
--0.0043945
--0.0098572
-0.0060425
-0.013367
--0.0058594
--0.010895
-0.0021973
--0.0039063
-0.0007019
-0.016113
--0.0005188
--0.024628
--0.027618
-0.002594
-0.031281
-0.010437
--0.020477
--0.018738
--0.0076599
--0.0028381
-0.0018311
-0.00073242
--0.0046997
--0.014832
--0.010956
-0.010864
-0.01123
-0.0033264
--0.0024109
--0.020325
--0.026978
--0.0075989
-0.010284
-0.0028381
--0.0072327
--0.0085754
--0.01178
--0.0224
--0.018402
--0.0055237
--0.00076294
--0.0046082
--0.0038757
-0.0073853
-0.0073547
-0.0023804
-0.0007019
--0.0091553
--0.0045166
-0.0029602
--0.012939
--0.024353
--0.024109
--0.015594
--0.0080261
--0.0045471
-0.010681
-0.0081482
--0.022705
--0.020996
-0.01355
-0.014038
-0.00042725
-0.0005188
--0.01178
--0.014374
--0.0045471
--0.00067139
-0.00042725
--0.0089722
--0.015778
--0.0096436
--0.014069
--0.019653
--0.0091553
-0.0057068
-0.0090942
-0.0077209
--0.0040588
--0.022919
--0.013489
-0.0047913
--0.012238
--0.030029
--0.02182
--0.01123
--0.00018311
-0.006134
--0.010223
--0.026276
--0.0011902
-0.014618
--0.014832
--0.020325
-0.0075378
--0.0019531
--0.025696
--0.0079041
-0.0086975
--0.010376
--0.01828
--0.0029602
--0.0007019
-0.00094604
-0.0053711
--0.011505
--0.025146
--0.017578
--0.0040894
-0.0017395
-0.005249
--0.010834
--0.032715
--0.02359
-0.0035706
-0.012543
-0.0028076
--0.010345
--0.019592
--0.027985
--0.032684
--0.004303
-0.025482
-0.013885
--0.009613
--0.013306
--0.0031128
-0.0015259
--0.00354
--0.011292
--0.012543
--0.016724
--0.018066
-0.0071106
-0.018799
--0.0082703
--0.023468
--0.026154
--0.035278
--0.0093384
-0.016541
-0.0011597
--0.0083008
--0.0028687
--0.012665
--0.021759
--0.0090637
-0.012878
-0.0081177
--0.020325
--0.0083008
-0.013641
--0.019897
--0.038086
--0.012817
--0.0013428
--0.00061035
--0.005249
--0.027832
--0.02771
--0.0071716
-0.00085449
-0.016907
-0.03006
--0.00094604
--0.044342
--0.044983
--0.011688
-0.014618
-0.019867
-0.0080566
--0.014679
--0.034424
--0.041107
--0.022552
-0.0069275
-0.010376
--0.0026245
--0.011505
--0.0069885
--0.0050354
--0.026154
--0.038025
--0.009491
-0.016083
-0.0022583
--0.0092773
-0.00048828
--0.0036621
--0.022339
--0.015656
-0.0015259
--0.0054321
--0.0074463
-0.009552
--0.0074158
--0.042511
--0.030487
-0.00064087
-0.00067139
-0.0010376
-0.023468
-0.0078125
--0.034821
--0.040466
--0.029297
--0.0083313
-0.013519
-0.015289
-0.00015259
--0.019104
--0.023193
--0.017731
--0.0087891
-0.0021667
--0.0058289
--0.01123
--0.0044556
--0.017059
--0.023346
--0.0088806
--0.0022888
--0.0093384
--0.013428
--0.01474
--0.020905
--0.017883
--0.005188
-0.012604
-0.013519
--0.0041199
--0.015259
--0.03009
--0.027588
--0.0036011
-0.0058594
-0.0048523
--0.0091248
--0.024384
--0.010315
--0.0016174
--0.016632
--0.009491
-0.010864
-0.0075378
--0.004303
--0.0095825
--0.0076294
-0.00079346
-0.0035095
--0.010803
--0.031189
--0.022949
-0.0027161
-0.011597
--0.0045776
--0.020355
--0.020538
--0.020203
--0.0083313
-0.0040894
--0.0016479
--0.011505
--0.0029602
--0.0039978
--0.02002
--0.0052185
-0.0036621
--0.0058594
--0.0086975
--0.019775
--0.012787
--0.0030212
--0.0010376
-0.0041809
-0.0018616
--0.0082703
--0.023346
--0.036316
--0.023193
-0.014526
-0.019165
--0.006897
--0.011902
--0.009552
--0.012482
--0.013428
--0.019653
--0.011597
-0.0033569
--0.00064087
--0.0012512
--0.0066223
--0.025116
--0.029266
--0.021454
--0.004425
-0.026001
-0.019165
--0.0071411
--0.0087891
--0.017975
--0.02243
-0.0061035
-0.020081
-0.0017395
--0.010071
--0.02005
--0.027679
--0.009552
-0.01767
-0.015076
--0.018768
--0.03894
--0.023132
--0.0078735
--0.0023804
-0.025177
-0.025696
--0.0036621
--0.020691
--0.020172
--0.0012512
--0.0093079
--0.018158
-0.0025024
--0.00054932
--0.0083008
--0.011047
--0.034454
--0.036011
-0.0024414
-0.016052
--0.010376
-0.0029907
-0.031067
-0.013031
--0.012787
--0.015259
--0.0046387
-0.0032654
--0.012878
--0.013336
-0.0088501
--0.012085
--0.035309
--0.014832
--0.0053101
--0.012787
--0.0050354
-0.0099487
-0.014893
-0.0066223
--0.014893
--0.018524
-0.00021362
--0.0021973
--0.00067139
--0.010651
--0.027313
--0.0074158
--0.0039978
--0.014282
--0.0028687
-0.0028381
--0.010742
--0.015961
-0.0012207
--0.0025635
--0.0054321
-0.01709
-0.016479
--0.0053711
--0.0056152
-0.0016479
--0.0084839
--0.018677
--0.010498
--0.0026855
--0.0083008
--0.0065002
-0.0096741
-0.0082397
--0.025024
--0.042633
--0.010681
-0.020081
-0.01944
-0.02597
-0.01828
--0.022095
--0.020203
-0.0048523
-0.012238
-0.027649
-0.010681
--0.024475
--0.030975
--0.025116
--0.0089417
-0.006897
--0.00079346
--0.020233
--0.021606
--0.01413
-0.0021667
-0.020813
-0.02124
-0.020782
-0.013184
--0.02182
--0.024139
-0.010376
-0.011841
--0.0027466
--0.014191
--0.033813
--0.030212
--0.0026855
--0.0014648
--0.023895
--0.0080566
-0.029755
-0.022095
--0.012421
--0.007782
-0.0050049
--0.003479
-0.0066223
-0.010437
--0.0067139
-0.0014954
-0.0033264
--0.03244
--0.030884
-0.018188
-0.028351
--0.01358
--0.029297
--0.0013428
-0.0080566
--0.0032349
--0.0045776
-0.0039368
-0.0022278
--0.006073
-0.0067139
-0.021149
--0.0027161
--0.038544
--0.035583
--0.010376
-0.015869
-0.027679
-0.0092773
--0.010681
--0.031952
--0.037903
--0.0014954
-0.033386
-0.027863
--0.014954
--0.052063
--0.039795
-0.01001
-0.042969
-0.027496
--0.0041199
--0.019592
--0.024719
--0.011749
-0.014313
-0.031677
-0.0097656
--0.036591
--0.04245
--0.0040588
-0.010437
--0.00088501
-0.0076904
-0.00030518
--0.021698
--0.0058899
-0.017242
-0.0094604
--0.0088501
--0.019287
--0.0076904
-0.0087585
-0.0013428
--0.0069885
--0.012909
--0.018951
-0.0067139
-0.012695
--0.010712
--0.0062561
-0.0018921
--0.021179
--0.013702
-0.029419
-0.019684
--0.017548
--0.01532
-0.0061951
-0.013397
--0.00064087
--0.01532
--0.021942
--0.014618
-0.0029297
-0.0097961
-0.0079956
-0.0005188
--0.023102
--0.024261
-0.0039063
-0.014832
-0.0052795
-0.0034485
--0.00033569
--0.026154
--0.031891
--0.00039673
-0.013977
-0.020966
-0.017303
--0.024506
--0.052246
--0.02948
-0.012451
-0.020386
-0.00067139
--0.0066528
--0.014618
--0.016479
-0.015564
-0.019775
--0.015106
--0.030792
--0.0012512
-0.029175
-0.0054626
--0.026459
--0.021027
--0.010742
--0.0042114
-0.007019
--0.004364
--0.028778
--0.020386
-0.0058289
-0.0039673
--0.0029297
-0.017395
-0.017029
--0.029205
--0.036011
-0.01712
-0.022186
--0.0097961
--0.00021362
--0.0078125
--0.035492
--0.020386
-0.0013733
--0.0019836
-0.0005188
-0.013824
-0.012146
--0.0075684
--0.024719
--0.0046997
-0.002655
--0.0049744
-0.019989
-0.015839
--0.016724
--0.0069885
-0.0014648
--0.028015
--0.027863
-0.01181
-0.0053101
--0.020874
--0.0039063
-0.01123
--0.0024414
--0.0086975
-0.0045776
-0.00042725
--0.0088501
-0.0079651
-0.013214
--0.0028992
--0.0042419
--0.0080566
--0.027161
--0.031281
--0.0071716
-0.011292
--3.0518e-005
--0.026642
--0.047577
--0.021759
-0.029846
-0.028442
--0.0026245
--0.0054932
--0.0112
--0.030731
--0.0037537
-0.031921
-0.024933
-0.0073853
--0.01712
--0.030701
--0.024994
--0.030029
--0.010315
-0.015747
--0.010345
--0.024384
-0.0023193
--0.0078125
--0.028839
-0.00085449
-0.011078
--0.0042419
-0.011505
-0.012024
--0.0076904
--0.015961
--0.013062
--0.0044556
--0.0079956
-0.0058899
-0.017365
--0.023315
--0.044983
--0.015778
-0.0024719
-0.0037842
-0.0041809
--0.016357
--0.023987
--0.0054321
--0.0054932
--0.016815
-0.0014343
-0.025574
-0.022491
--0.0030212
--0.019714
--0.01947
--0.024261
--0.0076294
-0.0011902
--0.024445
--0.029785
--0.014313
--0.0038147
--0.0029602
--0.013336
--0.018951
--0.0067444
-0.023499
-0.027802
--0.0045471
--0.011719
--0.0059204
--0.018951
--0.012451
-0.009613
--0.0083923
--0.029816
--0.0098877
--0.011475
--0.018616
--0.0012512
-0.00088501
--0.0065002
-0.0013733
-0.00012207
--0.02301
--0.029602
--0.0088806
--0.0041199
-0.0021362
-0.026886
-0.0083008
--0.029175
--0.037689
--0.037781
--0.020752
-0.020477
-0.035034
--0.0031128
--0.038483
--0.040039
--0.03949
--0.028748
-0.022888
-0.054871
--0.0041504
--0.034943
-0.01828
-0.0093384
--0.048035
--0.034241
-0.010773
-0.015594
-0.0075684
--0.0090942
--0.027374
--0.030914
--0.032471
--0.0096436
-0.021484
-0.021271
-0.0089722
--0.014008
--0.031616
--0.024963
--0.008606
-0.017517
-0.032928
-0.0072021
--0.041351
--0.044464
--0.0070496
-0.0011292
--0.013794
--0.014404
--0.0067444
--0.010468
--0.020905
--0.0034485
-0.021851
--0.0013428
--0.020691
--0.015167
--0.0032654
-0.024231
-0.011566
--0.027252
--0.027313
--0.020874
--0.024292
--0.0099182
-0.0076904
--0.014069
--0.034454
--0.010132
-0.0077209
--0.0031433
--0.0010681
-0.0073853
--0.0021667
--0.014801
--0.019287
--0.018097
-0.0076904
-0.0042419
--0.036011
--0.022888
--0.0036621
--0.013489
--0.0027466
--0.0039673
--0.018829
--0.0028381
-0.019623
-0.01355
--0.0095825
--0.013214
--0.010773
--0.016968
--0.0061035
-0.0091248
--0.0063171
--0.034241
--0.025879
--0.0048828
-0.0033264
-0.011536
--0.00057983
--0.031921
--0.035858
--0.006073
-0.01712
-0.0065308
--0.016815
--0.025726
--0.018005
-0.0159
-0.025146
--0.012024
--0.033966
--0.032227
--0.011353
-0.001709
-0.0024109
-0.01474
-0.0017395
--0.057617
--0.060516
-0.030212
-0.063751
-0.0053711
--0.014374
--0.024994
--0.068024
--0.026825
-0.065094
-0.066528
--0.010498
--0.071808
--0.062073
--0.0078125
-0.042786
-0.043396
--0.0057373
--0.036407
--0.041565
--0.018707
-0.04483
-0.045227
--0.030365
--0.050385
-0.00039673
-0.01712
--0.01593
--0.015472
--0.010223
--0.031921
--0.0075684
-0.026825
-3.0518e-005
--0.013519
-0.006134
--0.021179
--0.039032
-0.015533
-0.029724
--0.0224
--0.01236
-0.014862
--0.017456
--0.012543
-0.014252
--0.011414
--0.034454
--0.025269
-0.0027466
-0.024689
-0.0092773
--0.024658
--0.030579
--0.013092
-0.0074463
-0.021576
-0.013885
--0.0078735
--0.022766
--0.038727
--0.024017
-0.021667
-0.043091
-0.014648
--0.048401
--0.059296
--0.01123
-0.020508
-0.034973
-0.019104
--0.019684
--0.035461
--0.0085449
-0.022278
--0.0005188
--0.036621
--0.014191
-0.016022
-0.008606
-0.0046082
-0.0073853
--0.026367
--0.069885
--0.034454
-0.046631
-0.038574
-0.00085449
-0.0068054
--0.028107
--0.065094
--0.016113
-0.046844
-0.032532
--0.020538
--0.030884
--0.0075073
--0.0044556
--0.0079346
-0.0022583
-0.022369
-0.014374
--0.031433
--0.026062
-0.031555
-0.03299
--0.022552
--0.0448
--0.0030518
-0.022522
-0.004364
--0.0047913
--0.0093689
--0.0021667
-0.01944
--0.015015
--0.047791
-0.0061951
-0.030701
--0.018341
--0.022675
-0.010071
-0.0010681
--0.01239
-0.011078
-0.019409
--0.0083923
--0.020569
--0.019073
--0.020721
-0.018768
-0.045105
--0.011383
--0.041077
--0.0066223
--0.0014038
--0.0059509
-0.0038452
-0.009552
-0.0048218
--0.014069
-0.0031738
-0.0097961
--0.029694
--0.0090637
-0.039764
-0.0021667
--0.035736
--0.013184
-0.024963
-0.008728
--0.042786
--0.0075073
-0.03244
--0.0099792
--0.021454
-0.0043945
-0.017883
--0.0026245
--0.024719
--0.00088501
-0.013184
--0.010254
--0.0090637
-0.015594
-0.013641
-0.0093994
-0.0032043
--0.026825
--0.018433
--0.0018921
--0.0028076
-0.006073
--0.00033569
--0.016357
--0.017487
--0.014343
--0.0011292
-0.025543
-0.019165
--0.017212
--0.01651
-0.0098572
-0.003479
--0.011871
-0.012054
-0.017731
--0.016449
--0.025146
--0.011078
-0.0076904
-0.021149
-0.015045
--0.013489
--0.039429
--0.025604
-0.019379
-0.033203
-0.011658
--0.0088501
--0.019226
--0.025696
--0.0079346
-0.025177
-0.028625
-0.0076599
--0.009491
--0.023529
--0.020599
-0.005188
-0.010376
--0.009491
--0.0080872
-0.0013733
-0.0014038
--0.012604
--0.02121
-0.0082703
-0.0082397
--0.0043335
-0.023804
-0.01004
--0.022583
-6.1035e-005
--0.0093994
--0.02652
-0.019165
-0.025757
--0.022125
--0.019684
--0.01178
--0.037201
--0.002533
-0.066711
-0.03241
--0.057404
--0.040863
-0.03009
-0.017944
--0.003418
-0.022125
--0.0049744
--0.044464
--0.0075989
-0.025604
--0.0024109
--0.0039978
-0.0068359
--0.037079
--0.028595
-0.048462
-0.0401
--0.011383
--0.017578
--0.030396
--0.018616
-0.015381
-0.047272
-0.028442
--0.036407
--0.034119
--0.006897
--0.01004
--0.0014343
-0.010895
-0.017914
-0.02771
-0.011078
--0.047211
--0.050934
-0.012634
-0.027191
--0.0022888
--0.0031433
-0.0059814
--0.010254
--0.011139
-0.0054932
-0.0058289
-0.0011902
--0.00073242
--0.0056458
--0.0028992
--0.0069275
--0.027802
--0.02121
-0.016266
-0.014801
--0.0090332
--0.0015564
-0.008606
--0.015656
--0.020966
-0.0022583
--0.0054321
--0.0093689
-0.025574
-0.016357
--0.032623
--0.017395
--0.00048828
--0.026794
--0.010437
-0.03833
-0.034515
--0.030609
--0.043732
-0.016327
-0.021271
--0.01532
--0.019318
-0.019745
-0.015167
--0.04126
--0.021851
-0.031525
-0.016876
--0.024628
--0.0090637
-0.027405
-0.0063782
--0.020996
--0.01413
-0.0040588
-0.00079346
--0.015778
-0.00094604
-0.0015259
--0.033051
--0.0093689
-0.029846
--0.0032959
--0.015228
-0.018158
-0.0014038
--0.016327
--0.019684
--0.018127
-0.011383
-0.0041504
--0.020905
-3.0518e-005
-0.026001
--0.0084534
--0.049103
--0.019043
-0.024292
-0.023285
--0.0032654
--0.013367
--0.0031128
--0.0048828
-0.0036316
-0.010925
--0.0079346
-0.00042725
--0.0046997
--0.041962
--0.016235
-0.024292
-0.0044861
--0.010284
--0.0060425
--0.039398
--0.030579
-0.038513
-0.029419
--0.024231
--0.024414
--0.010895
-0.0032959
-0.023743
-0.0054016
--0.021118
--0.017487
--0.016876
--0.0033875
-0.011017
-0.0046692
--0.0010986
--0.024414
--0.029633
-0.009491
-0.024445
-0.00018311
--0.026855
--0.028656
-0.0067139
-0.033081
-0.0059509
--0.023102
--0.015747
--0.025635
--0.0159
-0.039703
-0.025085
--0.039581
--0.039459
--0.016663
-0.00036621
-0.01825
-0.016296
-0.0010681
--0.017273
--0.04071
--0.029602
-0.027557
-0.030762
--0.022644
--0.030823
--0.010101
--0.0046692
-0.0058594
--0.0026855
--0.026489
--0.014618
-0.0057983
--0.0013428
--0.00057983
-0.0074768
--0.01886
--0.037811
--0.0065613
-0.011597
-0.00076294
-0.0030212
--0.0024719
--0.026093
--0.02359
-0.012787
-0.012939
--0.018585
--0.0035095
--0.0074768
--0.030029
--0.0020752
-0.011047
-0.0018311
-0.00033569
--0.017975
--0.028168
--0.0093689
-0.019257
-0.005188
--0.030365
-0.0089111
-0.038574
--0.016632
--0.037292
-0.010468
--0.012787
--0.059052
-0.00042725
-0.048737
-0.0044861
--0.027863
--0.031372
--0.031616
--0.00085449
-0.029327
-0.023193
--0.0045776
--0.046448
--0.032623
-0.030945
-0.015869
--0.025208
--0.015656
--0.018066
--0.017365
-0.0054932
-0.012726
--0.004425
--0.019653
--0.0060425
-0.016357
--0.0051575
--0.036865
--0.011047
-0.0068054
--0.01062
-0.010193
-0.012421
--0.013763
--0.014709
--0.035736
--0.021637
-0.032135
-0.011719
--0.031067
--0.017487
-0.0080566
--0.0020142
--0.026794
--0.034027
--0.018921
-0.025238
-0.024475
--0.023376
--0.016693
-0.016083
-0.011139
--0.034241
--0.040222
-0.03064
-0.038086
--0.018188
--0.013306
--0.014618
--0.029022
--0.0071411
--0.0037231
--0.012573
-0.0010376
--0.00354
-0.007843
-0.0083313
--0.041595
--0.02597
-0.033356
-0.017548
--0.014832
--0.01181
--0.015259
--0.015289
-0.0067749
--0.0033569
--0.02182
-0.011108
-0.017029
--0.015594
--0.034821
--0.017761
--0.00012207
-0.0022278
-0.02832
-0.016541
--0.031342
--0.03183
--0.0045166
-0.017487
-0.0067749
--0.012115
--0.010498
--0.022736
--0.017639
-0.003418
-0.0058289
-0.00036621
--0.011993
--0.024048
--0.0086975
-0.019348
-0.009552
--0.016174
--0.016205
--0.014099
--0.0014648
-0.0079041
-0.00042725
--0.0048218
--0.014923
--0.02713
--0.022797
-0.015289
-0.028076
--0.01767
--0.026642
-0.019135
-0.003479
--0.046326
--0.018768
-0.021149
-0.0075378
-0.012634
-0.020752
--0.021698
--0.060974
--0.026611
-0.021606
-0.014648
-0.010651
--0.0025024
--0.029755
--0.018799
--0.0015259
--0.0071411
--0.0047607
-0.026886
-0.025085
--0.028992
--0.027435
-0.0086975
--0.0014954
--0.0082703
-0.0067139
-0.0094299
--0.0055237
--0.020386
--0.020691
--0.0067139
-0.0015259
--0.018707
--0.029022
-0.0054932
-0.031525
--0.0031433
--0.041077
--0.003479
-0.026154
--0.017761
--0.020935
-0.034119
-0.0097351
--0.039856
--0.010559
-0.011444
--0.010468
--0.0032043
-0.010132
--0.015045
--0.029327
-0.0081787
-0.025116
--0.017761
--0.024231
--0.0040894
--0.008667
-0.011322
-0.046265
-0.0090027
--0.048859
--0.050995
--0.0095215
-0.045258
-0.051575
--0.0093384
--0.03421
--0.017761
--0.036957
--0.041077
-0.028046
-0.06192
--0.0055237
--0.037415
--0.0041504
--0.0056763
-0.0025635
-0.012817
--0.0062256
--0.0085449
-0.01004
-0.012421
--0.0088501
--0.02298
--0.031189
--0.041962
-0.0059204
-0.070038
-0.040863
--0.05304
--0.062225
-0.0085449
-0.022552
-0.0026245
-0.0056458
--0.0076904
--0.018524
-0.0028076
-0.017273
--0.00036621
--0.032379
--0.02478
-0.018982
-0.021057
-0.0030212
-0.011169
-0.0033875
--0.035522
--0.035736
-0.006897
-0.019897
-0.027557
-0.015228
--0.046906
--0.044403
-0.0021362
-0.0052185
-0.0058594
-0.022766
-0.018433
--0.019501
--0.032471
--0.0059204
-0.01355
-0.019043
--0.0079041
--0.027985
--0.0016174
-0.021454
-0.00024414
--0.015839
--0.014099
--0.031952
--0.015259
-0.040955
-0.034363
--0.021667
--0.027832
--0.012238
--0.016968
--0.0048828
-0.021362
-0.023712
-0.017609
-0.0057983
--0.038422
--0.048767
--0.00015259
-0.021759
-0.0039063
-0.025299
-0.03009
--0.068787
--0.084961
-0.043915
-0.075745
-0.013611
--0.012604
--0.032654
--0.03653
-0.010345
-0.040985
-0.014771
--0.015961
--0.015869
--0.0027466
--0.0085449
-0.0033569
-0.022491
--0.023895
--0.039001
-0.017883
-0.010895
--0.018982
-0.019958
-0.0096741
--0.044464
--0.015198
-0.036011
-0.025604
--0.013916
--0.036346
--0.0027161
-0.032379
--0.020477
--0.037842
-0.034576
-0.0088196
--0.040131
-0.017487
-0.025024
--0.031311
--0.02179
-0.018372
-0.012878
--0.00042725
-0.0024109
-0.0062561
--0.019287
--0.035919
-0.0012817
-0.021362
-0.0019531
--0.0044556
--0.017853
--0.025177
-0.016571
-0.031433
--0.0096436
--0.018463
--0.016113
--0.014923
-0.014771
-0.012085
--0.012543
--0.014282
--0.016022
--0.0064392
-0.010437
-0.014832
-0.00091553
--0.013947
--0.0033264
--0.0023804
--0.016785
-0.0068665
-0.021423
--0.0083313
--0.0056458
--0.0065002
--0.037292
-0.0032959
-0.033264
--0.015656
--0.007843
-0.030518
--0.018433
--0.063995
--0.011902
-0.049835
-0.037079
--0.013977
--0.029541
--0.009613
--0.0027466
--0.018127
-0.0019226
-0.01828
--0.0051575
-0.0076904
-0.013367
--0.017761
--0.024963
--0.022797
--0.00088501
-0.038177
-0.024475
--0.027191
--0.049103
--0.038269
-0.01947
-0.061401
-0.0077209
--0.041321
--0.021118
--0.011597
--0.0037231
-0.027985
-0.011169
--0.0098877
-0.023621
--0.0027771
--0.064972
--0.022247
-0.039642
-0.0088501
--0.027954
--0.0056152
-0.0054016
--0.008667
--0.01062
--0.0083008
--0.0014648
-0.010773
-0.011993
--0.0036926
--0.02005
--0.0057678
--0.0075378
--0.019196
--6.1035e-005
-0.0033875
-0.00082397
-0.0020142
--0.01947
--0.021515
--0.014862
--0.0070496
-0.015656
-0.017303
-0.0081787
-0.002655
--0.028992
--0.041656
-0.0014954
-0.049316
-0.026276
--0.038086
--0.041412
-0.010864
-0.0016174
--0.034912
-0.012177
-0.022156
--0.027802
--0.0112
-0.0066528
--0.019165
--0.015839
-0.015411
--0.0051575
--0.034058
-0.0027771
-0.0224
--0.0040283
--0.021912
--0.021179
--0.0079956
-0.0099792
-0.024414
-0.0049744
--0.042755
--0.045654
-0.018677
-0.031342
--0.017334
--0.021851
--0.0046997
--0.015106
-0.0031128
-0.043396
-0.015015
--0.053345
--0.037354
-0.00027466
--0.0036316
-0.033203
-0.045563
--0.035156
--0.078888
--0.033203
-0.016968
-0.038879
-0.027008
--0.019653
--0.047546
--0.0224
-0.027313
-0.013947
--0.031921
--0.012451
-0.022766
-0.01059
--0.024292
--0.054596
--0.018188
-0.038696
-0.0046387
--0.028992
-0.01709
-0.010681
--0.035004
--0.015808
--0.00079346
-0.0049744
-0.01474
--0.0014343
--0.016907
--0.032013
--0.0091248
-0.032654
-0.0071716
--0.025543
--0.017578
--0.0159
--0.017609
-0.013824
-0.021912
--0.039673
--0.030762
-0.032379
--0.013428
--0.038177
-0.028381
-0.03186
--0.029449
--0.040771
--0.0028076
-0.022095
--0.0084839
--0.033661
-0.0080566
-0.004425
--0.030792
--0.0021667
--0.00088501
--0.045319
--0.016541
-0.034821
-0.013947
--0.0077209
--0.015839
--0.039368
--0.024963
-0.017578
-0.019958
--0.00067139
--0.014923
--0.029816
--0.025848
--0.0058289
-0.0021667
-0.0023804
--0.0036621
--0.019531
--0.0096436
--0.0072021
--0.044128
--0.00079346
-0.060303
--0.0054932
--0.060638
--0.011169
-0.026154
-0.0098572
--0.0063782
-0.0010071
-0.0021667
--0.019653
--0.018646
-0.0062866
--0.0020142
--0.016266
--0.0067444
--0.018097
--0.023682
-0.0039063
-0.0063171
--0.022461
--0.025696
--0.0037231
-0.0049744
-0.0076904
-0.0091858
--0.019592
--0.019592
-0.020233
--0.0073547
--0.038971
-0.006958
-0.03125
--0.018921
--0.05365
--0.014252
-0.029724
-0.0041809
--0.039978
--0.01535
-0.023682
-0.0075378
--0.0054016
-0.0014954
--0.026764
--0.020905
-0.027344
-0.0075073
--0.018677
--0.0087891
--0.031372
--0.027069
-0.009613
-0.0079956
--0.00036621
--0.013794
--0.025024
-0.007782
-0.014801
--0.026581
--0.015442
-0.02179
-0.022003
--0.015564
--0.042908
--0.00079346
-0.01889
--0.021698
--0.0090027
-0.0271
--0.0014038
--0.047852
--0.025391
-0.02298
-0.00094604
--0.0016174
-0.017944
--0.03299
--0.043182
-0.022156
-0.0083923
--0.037842
-0.010651
-0.026062
--0.041229
--0.038757
-0.010162
-0.016937
--0.0093079
--0.026611
-0.0011902
-0.012543
--0.0076294
-0.0049744
--0.0031433
--0.031769
--0.025116
-0.0027771
-0.011261
-0.011902
-0.015381
--0.032318
--0.053436
-0.017548
-0.027222
--0.034271
--0.017578
-0.02652
-0.0054321
--0.028137
--0.013153
-0.0043945
--0.0068665
--0.0046082
-0.021484
-0.0015869
--0.030334
--0.017426
-0.0078125
-0.0024719
--0.015442
-0.0079651
-0.012451
--0.022369
--0.025665
--0.020538
-0.0026855
-0.030121
-0.0072021
--0.015106
--0.0061951
-0.0018311
-0.0025024
--0.0024109
--0.019928
--0.024689
-0.011383
-0.029175
--0.007019
--0.029388
--0.028656
--0.0059509
-0.024902
-0.0067444
--0.019562
--0.0058289
-0.0088806
-0.0007019
--0.019226
--0.00067139
-0.025421
--0.0093994
--0.032043
-0.0112
-0.022949
--0.00073242
--0.0068359
--0.011597
--0.011078
--0.0040588
--0.017334
--0.016754
-0.018646
-0.0271
--0.010071
--0.028534
--0.007843
-0.0018311
--0.007019
-0.0021973
-0.016968
-0.0075378
--0.0018921
--0.011932
--0.036133
--0.017914
-0.019867
--0.0021667
--0.0080261
-0.019379
--0.010529
--0.032104
-0.0038757
--0.0030823
--0.01825
-0.017639
-0.022003
--0.013916
--0.011444
-0.0019531
--0.014069
-0.0014038
-0.01825
-0.0063782
-0.01297
--0.0030212
--0.052979
--0.022156
-0.042145
-0.027283
--0.0061646
--0.019653
--0.0271
-0.0091248
-0.01712
--0.033661
-0.00015259
-0.070862
-0.014587
--0.059479
--0.01709
-0.035553
--0.0037537
--0.029144
-0.012878
-0.0049133
--0.031342
--0.0020447
-0.027252
--0.012543
--0.040436
-0.00076294
-0.017609
--0.004364
-0.02301
-0.025848
--0.032593
--0.027466
-0.0061035
-0.0022888
-0.0070801
-0.014221
-0.0068054
--0.0039368
--0.013
--0.0082092
-0.0032959
--0.013458
--0.014648
-0.032898
-0.027802
--0.018646
--0.023438
--0.01709
-0.0030212
-0.030334
-0.0080872
--0.025787
-0.00012207
-0.0085144
--0.034851
--0.0010376
-0.048065
--0.0010681
--0.039673
-0.0013123
-0.030579
-0.0047607
--0.040741
--0.01123
-0.056824
-0.041199
--0.034576
--0.052094
-0.0042725
-0.035187
-0.018066
-0.011627
--0.0083923
--0.03064
--0.017426
-0.022156
-0.030853
--0.019531
--0.026886
-0.022278
-0.0112
--0.027924
-0.012238
-0.036102
--0.020966
--0.032654
-0.0063171
-0.013153
-0.005249
-0.016296
-0.015564
--0.010895
--0.031769
--0.037781
-0.0177
-0.071869
-0.027588
--0.034637
--0.041382
--0.027283
-0.0023193
-0.030396
-0.030243
-0.012421
--0.020721
--0.033508
-0.0016174
-0.021515
--0.012177
--0.024567
-0.013275
-0.030273
-0.017273
--0.0010681
--0.048645
--0.047974
-0.035828
-0.049896
--0.0066223
--0.016541
--0.00085449
--0.0064697
--0.014862
-0.0019531
-0.018555
-0.013062
-0.0089417
-0.012756
--0.008728
--0.033905
-0.0045166
-0.029755
--0.02597
--0.024689
-0.039032
-0.0084229
--0.042175
--0.01239
--0.013947
--0.01944
-0.044434
-0.047943
--0.0051575
--0.0083008
-0.0030823
--0.018372
--0.018921
-0.023102
-0.029236
--0.013214
--0.015808
-0.0081482
--0.0041199
--0.011261
-0.0032654
--0.0057678
--0.012268
-0.013733
-0.031708
-0.013397
--0.004364
--0.020477
--0.028961
--0.0030823
-0.044189
-0.043335
--0.022888
--0.056854
--0.02536
-0.013885
-0.032928
-0.026581
--0.017761
--0.052887
--0.015076
-0.034424
-0.01947
--0.021362
--0.0089111
-0.020081
-0.0035095
--0.021759
--0.00085449
-0.017395
--0.0082703
--0.0014954
-0.018066
--0.0097961
--0.025055
--0.00088501
-0.0012817
--0.0060425
-0.020264
-0.0070496
--0.03363
--0.0078735
-0.020081
--0.0018921
--0.0040894
-0.027008
-0.014557
--0.02713
--0.01178
-0.0057068
-0.0032959
-0.017639
-0.017639
--0.0071411
--0.054352
--0.028595
-0.067444
-0.052155
--0.049164
--0.071259
--0.010254
-0.037415
-0.038025
-0.0065613
--0.026337
--0.040436
--0.024628
-0.02829
-0.055664
-0.018127
--0.034882
--0.065796
--0.011749
-0.06131
-0.010956
--0.039551
-0.0032349
--0.0057373
--0.044495
-0.0032654
-0.045837
--0.0015259
--0.017487
-0.0076294
--0.023926
--0.026367
-0.034302
-0.022491
--0.018707
--0.015625
--0.020599
--0.010376
-0.036255
-0.034485
--0.039124
--0.058167
-0.021118
-0.029999
--0.021484
-0.019653
-0.028656
--0.04892
--0.046967
-0.027161
-0.037659
--0.001709
--0.010742
--0.0089417
--0.014709
-0.00039673
-0.020111
-0.01413
--0.02597
--0.051453
--0.0028992
-0.045807
-0.013031
--0.030273
--0.015045
--0.006134
--0.037781
-0.004425
-0.069336
-0.0087585
--0.075623
--0.026306
-0.032532
--0.017303
--0.020538
-0.050446
-0.024017
--0.048309
--0.035156
-0.0066833
-0.003479
--0.00067139
-0.0090637
--0.0046082
-0.00048828
-0.0049438
--0.043121
--0.028259
-0.049042
-0.029785
--0.034851
--0.0026855
-0.02301
--0.035004
--0.032532
-0.028809
-0.010834
--0.021576
--0.0053406
-0.0013123
--0.0224
--0.026855
-0.0084534
-0.037445
-0.00045776
--0.049774
--0.018433
-0.033112
-0.013214
--0.021698
--0.017944
--0.0068359
--0.0054321
--0.0011597
-0.022614
-0.0050964
--0.048248
--0.01239
-0.038147
--0.023407
--0.034973
-0.050201
-0.013794
--0.058441
-0.00073242
-0.035156
--0.011261
--0.027985
--0.012878
-0.0010071
-0.021027
-0.026855
--0.033112
--0.047333
-0.019623
-0.016815
--0.026154
--0.0027161
-0.026489
-0.0025024
--0.036713
--0.026459
-0.00024414
-0.0067444
-0.022247
-0.015167
--0.028351
--0.034912
-0.012756
-0.022156
--0.036407
--0.027924
-0.038239
-0.030457
--0.039215
--0.060455
-0.010468
-0.048218
--0.032013
--0.041992
-0.054718
-0.029663
--0.072205
--0.058075
-0.032074
-0.041412
--0.021942
--0.0030212
-0.027893
--0.046082
--0.060822
-0.034271
-0.067047
-0.0047607
--0.066162
--0.064484
-0.028503
-0.060059
-0.010284
--0.018738
--0.045227
--0.046326
-0.021088
-0.040741
--0.0011902
-0.0041504
--0.00042725
--0.039093
--0.023834
-0.0045166
-0.0082703
-0.0017395
--0.0029602
-0.0032349
--0.01358
--0.019531
-0.0076599
-0.0012512
--0.021637
--0.0057678
-0.0092468
-0.014038
--0.00076294
--0.033691
--0.028534
-0.0083923
-0.014435
-0.00082397
--0.0090332
--0.013672
--0.0072327
--0.014069
--0.011169
-0.031311
-0.022156
--0.036774
--0.047516
--0.00039673
-0.048218
-0.028229
--0.027924
--0.039917
--0.028442
-0.0028076
-0.040802
-0.018219
--0.016876
-0.0012817
--0.019653
--0.05661
-0.018799
-0.061951
--0.003418
--0.037811
--0.015137
-0.0065002
--0.0021057
--0.010071
--0.0054932
-0.00024414
-0.017151
-0.0038757
--0.033325
--0.02832
-0.002655
-0.0088501
--0.0039063
--0.00042725
--0.0010986
--0.005127
-0.0079041
-0.00042725
--0.0085754
--0.015625
--0.051636
-0.0062561
-0.085846
--0.0014038
--0.072601
--0.010773
-0.0083008
--0.028168
-0.014252
-0.072998
-0.0058899
--0.085327
--0.049652
-0.036102
-0.046875
-0.013397
-0.00061035
--0.031158
--0.054779
-0.0091553
-0.024231
--0.017365
-0.012421
-0.013611
--0.025574
--0.025818
--0.0082397
-0.019409
-0.02063
--0.011475
--0.015869
--0.02005
--0.011414
-0.052856
-0.046082
--0.049927
--0.065796
--0.005188
-0.032257
-0.012115
--0.016418
-0.0099792
-0.033081
--0.020477
--0.075134
--0.03421
-0.045776
-0.050812
--0.006073
--0.021759
-0.0079956
--0.010498
--0.058502
--0.0030823
-0.078735
-0.018829
--0.058441
--0.040466
--0.0029297
-0.016907
-0.025848
-0.0081787
--0.01944
--0.024567
--0.0076904
-0.0066223
-0.0031738
-0.0031128
-0.01123
-0.0077209
--0.019867
--0.029572
-0.0079956
-0.032257
-0.0015259
--0.029755
--0.01297
-0.005188
--0.0088196
--0.012939
-0.011841
-0.012177
--0.025238
--0.029938
-0.01062
-0.025604
--0.0055847
--0.021942
-0.013763
-0.0074463
--0.054596
--0.019653
-0.062561
-0.025787
--0.051941
--0.027222
-0.039917
-0.0083313
--0.057983
--0.018707
-0.043427
-0.042908
--0.003479
--0.039734
--0.014526
--0.0097351
--0.026337
-0.01355
-0.053772
-0.020386
--0.026611
--0.019257
--0.02948
--0.028625
-0.048187
-0.054077
--0.021759
--0.045502
--0.019806
-0.011444
-0.02121
-0.00018311
--0.0085754
-0.0059204
--0.016937
--0.042389
-0.023804
-0.064819
--0.02359
--0.065399
-0.0039063
-0.024231
--0.0059814
--0.00067139
--0.0081177
--0.020844
-0.0076904
-0.022949
--0.00027466
--0.030151
--0.0271
-0.0016479
-0.032837
-0.031647
--0.02713
--0.049164
--0.00076294
-0.0064087
--0.00042725
-0.024689
--0.0011292
--0.032684
--0.0076294
--0.0021057
--0.00057983
-0.027222
--0.0097351
--0.041931
-0.016663
-0.01709
--0.021545
-0.013428
-0.0015259
--0.041046
-0.00064087
-0.032959
-0.0047913
--0.0086365
--0.010925
--0.035309
--0.032593
-0.034729
-0.05719
-0.0074768
--0.020844
--0.050629
--0.046783
-0.028137
-0.043274
--0.019562
--0.010681
-0.034729
--0.014923
--0.052032
--0.0039368
-0.019318
--0.0013733
--0.0063782
-0.021088
-0.023438
--0.050781
--0.054047
-0.030273
-0.015442
--0.015839
-0.023682
-0.029022
--0.016235
--0.058197
--0.046051
-0.032166
-0.053833
--0.011078
--0.017944
-
--0.047119
--0.039642
-0.024689
-0.0401
-0.019897
--0.03714
--0.047455
-0.019989
-0.025391
--0.021301
--0.02182
-0.0016785
-0.0030518
--0.006958
--0.014435
-0.0037842
-0.0065002
--0.031128
--0.01651
-0.03009
-0.0040588
--0.020416
-0.0031738
-0.009552
--0.0070496
--0.022186
--0.0072937
-0.0025635
--0.016541
--0.0010071
-0.023956
--0.011261
--0.035095
--0.0082703
--0.0050354
--0.025665
-0.010315
-0.052795
--0.0016479
--0.05368
--0.030243
--0.021942
--0.0072937
-0.04657
-0.03595
--0.016144
--0.026428
--0.026062
--0.024689
-0.0029602
-0.0064697
-0.0019836
-0.017273
--0.0068359
--0.044434
--0.032654
-0.011322
-0.019226
--0.0063782
-0.0023193
-0.0044861
--0.017456
--0.010773
--0.0033264
--0.0083313
-0.0022888
--0.009613
--0.019745
-0.010193
-0.016052
--0.030945
--0.042419
-0.0053406
-0.014191
--0.0021057
-0.015167
--0.0069885
--0.05188
--0.031891
-0.0056763
-0.0093079
-0.0023193
-0.00067139
--0.0007019
--0.010925
--0.020203
--0.018097
--0.021301
-0.00054932
-0.024811
--0.011047
--0.018524
-0.0159
--0.014221
--0.051605
--0.028778
-0.011169
-0.026581
-0.015106
-0.010071
--0.012177
--0.052094
--0.045868
-0.021637
-0.055145
--0.01767
--0.053314
-0.011597
-0.014038
--0.051361
--0.01886
-0.038635
--0.017883
--0.052246
-0.015747
-0.037445
--0.02597
--0.042603
-0.011505
--0.0028381
--0.036987
-0.023834
-0.039886
--0.039185
--0.042603
-0.016907
-0.004364
--0.026459
--0.0072021
-0.0017395
--0.019714
--0.016937
--0.00057983
-0.0011292
--0.015564
--0.036346
--0.020081
-0.0084534
-0.012238
-0.003418
--0.017822
--0.018036
--0.0019836
--0.013824
--0.0073853
-0.021637
-0.014374
--0.022675
--0.029816
--0.018097
--0.025726
--0.0079651
-0.0159
-0.005188
--0.0050049
--0.0048828
--0.018982
--0.042389
--0.018616
-0.04425
-0.027069
--0.049164
--0.023102
-0.029602
--0.028076
--0.041412
-0.021698
-0.0055542
--0.028198
--0.00012207
-0.028107
--0.0088196
--0.061462
--0.03244
-0.018219
-0.0045166
--0.001709
-0.024872
--0.015259
--0.058563
--0.0029602
-0.023926
--0.016388
--0.017334
--0.0041504
--0.00354
-0.015411
-0.0025635
--0.030396
--0.022095
--0.02832
--0.024292
-0.035889
-0.029205
--0.030029
--0.040497
--0.018799
--0.0047607
-0.010651
-0.033997
-0.010742
--0.060425
--0.039886
-0.028992
-0.0059509
--0.011658
-0.0046082
--0.034668
--0.065216
--0.0011902
-0.045776
-0.0096741
--0.015991
--0.046082
--0.0625
-0.0076904
-0.056061
-0.012115
--0.023346
--0.033447
--0.039764
--0.0038757
-0.030823
-0.012329
--0.022156
--0.034821
--0.022919
-0.010284
-0.010864
--0.017548
--0.014587
-0.010529
-0.00067139
--0.018921
--0.0025635
-0.0028381
--0.019287
--0.015411
-0.016418
-0.016907
--0.022247
--0.043671
--0.019928
-0.015594
-0.0021362
--0.027344
--0.010101
-0.0036621
-0.00085449
--0.0026245
--0.012451
--0.022278
--0.024353
-0.020447
-0.046967
--0.0089417
--0.046783
--0.017212
-0.02063
--0.0012207
--0.037445
-0.012787
-0.040924
--0.037476
--0.055389
-0.025452
-0.027557
--0.043427
--0.035034
-0.021759
-0.015961
--0.021759
--0.015076
-0.019501
--0.0055542
--0.043488
--0.013367
-0.024567
-0.015167
--0.010681
--0.024658
--0.028381
--0.0064697
-0.019104
-0.016174
--0.0030518
--0.027954
--0.018707
-0.0044556
--0.0046997
-0.0084534
-0.025757
--0.02063
--0.061493
-0.0005188
-0.06665
-0.015015
--0.045471
--0.039154
--0.022491
-0.010834
-0.03064
-0.011475
--0.023682
--0.043823
--0.017731
-0.013092
-0.023895
-0.011383
--0.030884
--0.026001
-0.021759
--0.0022278
--0.033142
-0.015503
-0.025909
--0.036133
--0.038544
-0.0084839
-0.017029
--0.005249
--0.0097656
-0.0012817
--0.010925
--0.018341
-9.1553e-005
-0.014069
-0.0012512
--0.022552
--0.0063782
-0.019501
--0.0064392
--0.039368
--0.0096436
-0.024353
-0.0083008
--0.0067444
--0.016296
--0.013062
-0.006012
--0.0057678
--0.022064
-0.0032959
-0.015656
--0.017395
--0.014313
-0.028229
-0.0093384
--0.041626
--0.012878
-0.023193
--0.0032959
--0.011169
-0.0065002
--0.0067139
--0.02243
--0.00094604
-0.01474
--0.0086365
--0.016815
--0.00354
--0.0040283
--0.025818
--0.0031128
-0.054535
-0.011688
--0.065826
--0.0289
-0.026489
-0.020447
-0.0016785
--0.008667
--0.021149
--0.014221
-0.013824
--0.0022583
--0.019958
-0.033875
-0.016418
--0.066589
--0.0096741
-0.060638
--0.0091248
--0.036621
-0.01236
--0.0079041
--0.038269
-0.025391
-0.046844
--0.021851
--0.034271
-0.0079346
--0.0033569
--0.024536
--0.0026855
-0.019592
-0.017822
--0.0056763
--0.023132
--0.01181
-0.0061035
--0.010193
--0.023621
-0.022034
-0.028229
--0.044525
--0.040649
-0.035278
-0.037506
--0.02478
--0.046204
-0.0038452
-0.047882
-0.0016174
--0.043213
-0.0054016
-0.027069
--0.012787
--0.012451
-0.011749
--0.018616
--0.045593
-0.0086365
-0.052429
-0.0057068
--0.042236
--0.019836
--0.0083618
--0.021118
-0.022522
-0.033325
--0.0079956
-0.0077209
--0.0065918
--0.065765
--0.011047
-0.070221
-0.016876
--0.045197
-0.0013428
-0.015808
--0.036621
--0.0084229
-0.043884
-0.0051575
--0.041199
--0.014191
-0.0063477
-0.0021973
-0.036865
-0.03006
--0.040039
--0.041931
-0.012268
-0.012482
-0.0050659
-0.023895
--0.013794
--0.052155
-0.0019531
-0.031891
--0.013092
--0.028015
--0.0031738
--0.0043945
--0.0040283
-0.017639
-0.013123
--0.0112
--0.017273
--0.0073547
--0.0035706
-0.0073242
-0.021027
-0.0067139
-0.00079346
-0.0030823
--0.03125
--0.030701
-0.021729
-0.023163
-0.0029602
-0.00030518
--0.020325
--0.01828
-0.014313
-0.0039673
--0.014191
-0.010437
-0.0066833
--0.018494
--0.0022583
-0.006073
--0.002655
-0.0036011
--0.0012817
--0.005188
-0.0076599
--0.0086975
--0.036285
--0.01297
-0.025299
-0.030731
-0.00027466
--0.035889
--0.030579
-0.0068054
-0.019012
-0.0059204
--0.0038452
-0.0018311
-0.0049744
--0.017395
--0.005188
-0.015686
--0.0054932
--0.0098572
--0.0016174
-0.00024414
--0.0020142
--0.010223
--0.0015869
-0.0058289
--0.0078125
--0.018219
-0.0054932
-0.019531
--0.0027466
--0.0079346
-0.011505
-0.0032959
--0.036407
--0.011932
-0.042023
-0.014404
--0.023712
--0.00088501
--0.0045471
--0.042389
--0.018433
-0.028717
-0.025696
--0.0026245
--0.012451
--0.022034
--0.014923
-0.0055542
--0.013702
--0.0046692
-0.029388
--0.0071411
--0.040253
-0.0027161
-0.02655
-0.0085449
--0.0071106
--0.041626
--0.046692
-0.024689
-0.04483
--0.0047302
--0.0024109
--0.011139
--0.054993
--0.0081787
-0.049042
-0.0073853
--0.014862
-0.011566
--0.013794
--0.031769
-0.0088806
-0.012024
--0.024353
--0.014679
-0.017883
-0.016968
--0.0052795
--0.014435
--0.021698
--0.0079651
-0.021759
--0.010254
--0.03302
-0.024353
-0.019379
--0.046417
--0.010315
-0.039429
--0.0028992
--0.02887
--0.0020752
-0.0085449
-0.0024414
--0.0010681
--0.020905
--0.013306
-0.023712
-0.0032959
--0.022827
--0.014069
--0.018188
--0.01712
-0.0042114
-0.020569
-0.010956
--0.0026245
--0.0159
--0.029541
--0.024414
-0.0024109
-0.014069
-0.02121
-0.017914
--0.016785
--0.029663
--0.016876
--0.019867
--0.0063171
-0.029236
-0.026093
--0.01532
--0.038239
--0.021851
-0.011017
-0.012909
--0.0097046
--0.014801
-0.0021973
-0.011261
--0.014435
--0.022247
-0.020233
-0.023193
--0.032684
--0.040527
-0.0037537
-0.021149
-0.0011902
--0.0032959
--0.016266
--0.052307
--0.0159
-0.042938
-0.009613
--0.041656
--0.011444
-0.0038757
--0.033569
-0.006134
-0.046387
--0.018402
--0.047577
-0.0031128
-0.022217
--0.0079346
--0.025513
--0.025757
--0.010834
-0.017761
-0.015167
-0.0053101
--0.0097656
--0.04834
--0.039185
-0.024139
-0.045898
-0.010468
--0.0085754
--0.0063171
--0.028503
--0.039642
--0.011536
-0.031372
-0.028534
--0.016174
--0.032257
--0.027008
--0.0061951
-0.012695
-0.0095215
--0.012848
--0.035034
--0.012115
-0.020325
-0.012054
--0.00036621
--0.026184
--0.041138
-0.007843
-0.028992
--0.020355
--0.031189
-0.012817
-0.0067444
--0.036682
--0.021484
-0.010864
--0.0023193
--0.015778
--0.0021667
-3.0518e-005
--0.006073
--0.0066833
--0.0033875
--0.0030212
--0.019165
--0.021362
-0.0051575
-0.015472
--0.014038
--0.046814
--0.013824
-0.033417
-0.0059204
--0.015045
-0.00015259
--0.024933
--0.037109
-0.0024719
-0.014526
-0.0081787
-0.011993
--0.032532
--0.048462
--0.0015564
-0.0097046
-0.01532
-0.013275
--0.027863
--0.035095
--0.0026245
-0.017212
--0.00061035
--0.027039
--0.01651
--0.010651
--0.013672
-0.012482
-0.011444
--0.025482
--0.033936
--0.006958
-0.0012207
--0.01123
--0.0014648
-0.021362
-0.014282
--0.021973
--0.05011
--0.036469
-0.018951
-0.035065
-0.0018005
--0.020691
--0.032074
--0.026581
-0.0007019
-0.0080566
--0.0090332
--0.0023193
-0.011841
--0.014374
--0.024261
-0.010742
-0.0072327
--0.015747
-0.0005188
--0.0019836
--0.027039
--0.010437
-0.0090027
-0.0016479
--0.0090637
-0.0048218
--0.0010376
--0.046387
--0.021545
-0.032288
-0.018616
--0.0065308
--0.016388
--0.034973
--0.027222
-0.017883
-0.029816
--0.012817
--0.022888
--0.0057983
--0.027832
--0.031891
-0.017029
-0.032562
--0.0058289
--0.031616
--0.035126
--0.0065002
-0.02417
-0.011261
--0.012787
--0.020355
--0.012482
-0.00057983
--0.0011292
--0.0049133
--0.0027161
--0.0066223
--0.002594
-0.0020752
--0.016815
--0.019226
--0.0018921
--0.0076904
--0.0036621
-0.015198
--0.017303
--0.043854
--0.00076294
-0.025513
--0.0020752
--0.0059814
--0.0032349
--0.036346
--0.024506
-0.02533
-0.022308
--0.011292
--0.01062
--0.018951
--0.044708
--0.0047913
-0.045654
-0.022522
--0.021332
--0.018341
--0.014496
--0.031311
--0.0082397
-0.02594
-0.012634
--0.014496
--0.0090637
-0.00021362
--0.036255
--0.031616
-0.031708
-0.017914
--0.009613
-0.00354
--0.01767
--0.05249
--0.017548
-0.049683
-0.02951
--0.019531
--0.025024
--0.027893
--0.016937
-0.0065308
-0.020386
-0.010925
--0.018494
--0.028137
--0.016876
-0.0041504
-0.014587
-0.0011597
--0.011536
--0.011444
--0.009552
--0.0094299
-0.012085
-0.0242
--0.01239
--0.029175
--0.016205
--0.017822
--0.0013428
-0.020538
-0.012878
--0.0098877
--0.026672
--0.019196
-0.0018616
--0.0032043
--0.012421
-0.01239
-0.008667
--0.022278
--0.0098267
-0.0037842
--0.010498
--0.011017
--0.0057678
--0.0015869
-0.0063782
--0.0033875
--0.01416
--0.0062866
--0.015839
--0.0079346
-0.010864
--0.0014038
--0.0091858
--0.0090637
--0.0047302
-0.0095215
-0.0019226
--0.024567
--0.013245
-0.018127
-0.010376
-
-0.0053406
--0.022308
--0.028656
-0.016388
-0.026306
--0.00015259
--0.012634
--0.018219
--0.011414
--0.0018311
-0.0030823
-0.010132
-0.0092773
--0.0029297
--0.027863
--0.026947
-0.017212
-0.023682
--0.0082397
--0.0091248
-0.0029297
--0.015411
--0.03302
-0.0020447
-0.036072
-0.015076
--0.014191
--0.026276
--0.031708
--0.0016174
-0.031616
-0.013489
-0.0023804
--0.0037231
--0.03714
--0.024445
-0.03891
-0.027527
--0.03363
--0.027496
-0.023621
-0.021729
--0.024292
--0.025085
-0.01828
-0.016541
--0.0048828
--0.0085449
--0.030121
--0.017883
-0.035034
-0.020874
--0.02948
--0.0099792
-0.01535
--0.011597
--0.0077515
-0.013641
--0.0035095
--0.017578
--0.012848
-0.011749
-0.014191
--0.0044861
-0.0039368
-0.00067139
--0.026703
--0.018494
-0.0068054
-0.011475
-0.011963
-0.0036926
--0.0087891
--0.0061646
--0.011139
--0.025482
-0.0043945
-0.039246
-0.0024719
--0.0383
--0.017944
-0.0059509
-0.0036621
-0.0098572
-0.012726
--0.010071
--0.016754
-0.0054321
-0.0049744
--0.014038
--0.00030518
-0.019379
-0.0011292
--0.023895
--0.0024719
-0.019501
--0.01358
--0.021088
-0.020172
-0.017181
--0.019409
--0.015411
-0.0081787
-0.0018921
--0.010132
-0.004425
-0.012451
--0.0032349
--0.015961
--0.0042419
-0.0072632
-0.0046692
-0.0026245
--0.011078
--0.029633
--0.0081177
-0.017334
-0.0095825
-0.0010376
--0.0089722
--0.019531
--0.015045
--0.0010681
-0.019348
-0.010834
--0.023041
--0.016785
-0.0050354
--0.0050964
-0.0025635
-0.026306
--0.0030823
--0.038849
--0.013184
-0.022125
-0.016022
--0.0075684
--0.00057983
-0.0095215
--0.016449
--0.024506
-0.0089111
-0.016174
--0.0078125
--0.011627
-0.0032349
-0.0015259
--0.015594
--0.0086365
-0.01001
--0.0010681
--0.0048218
-0.021881
-0.008606
--0.03537
--0.021301
-0.0084534
--0.00076294
--0.0057678
-0.0028687
--0.0025635
--0.0271
--0.026367
-0.013947
-0.023865
--0.0055542
--0.023621
--0.012268
-0.011383
-0.017731
--0.0027161
--0.018433
--0.008606
--0.0012207
--0.011627
--0.011932
-0.01178
-0.018188
--0.023254
--0.036407
-0.00024414
-0.011627
-0.0019531
--0.0057983
--0.013824
--0.0072632
-0.010864
-0.013672
--0.0068054
--0.018921
-0.00018311
-0.0090332
--0.013153
--0.015625
-0.010223
-0.0056763
--0.017365
--0.0066833
-0.0050659
--0.0091858
--0.011871
--0.0023499
--0.014893
--0.0084534
-0.017731
-0.0015869
--0.018341
--0.0010071
-0.0018005
--0.016846
--0.028442
--0.00018311
-0.031677
-0.0072327
--0.023224
--0.024384
--0.016846
--0.00012207
--0.0018005
--0.0046387
-0.012085
--0.001709
--0.021912
--0.002533
-0.01123
--0.0013428
--0.0081787
--0.00030518
-0.00021362
-0.00039673
-0.011841
--0.0014343
--0.03479
--0.028717
-0.0015869
-0.0082092
-0.0055542
-0.012115
--0.020325
--0.051727
--0.0097961
-0.025299
-0.017639
-0.014252
--0.011627
--0.04007
--0.013916
-0.017456
-0.014282
--0.0024414
--0.020844
--0.020477
--0.0098572
--0.0066528
-0.013489
-0.010895
--0.047638
--0.037415
-0.03006
-0.022644
--0.0077515
--0.014191
--0.022675
--0.021057
--0.0053406
-0.014923
-0.022766
--0.0044556
--0.041443
--0.025818
-0.010803
-0.0083923
--0.0049133
-0.0011292
--0.012299
--0.028748
--0.012024
-0.0091248
-0.0083618
--0.010834
--0.016235
-0.0022888
-0.0033569
--0.018188
--0.020721
-0.0046387
-0.015045
--0.0020752
--0.017151
--0.0081787
--0.0010986
--0.015045
--0.0080261
-0.0045776
--0.0072937
--0.0049744
--0.006073
--0.021332
--0.0045471
-0.018585
--0.0016479
--0.036987
--0.015045
-0.0091248
--0.012085
--0.0040283
-0.019165
--0.013
--0.035187
-0.0028381
-0.0085449
--0.027527
--0.012573
-0.02002
--0.0046997
--0.017944
-0.0014343
--0.017212
--0.032379
--0.0027161
-0.0061646
--0.0098877
-0.00012207
-0.0065613
--0.016296
--0.018036
-0.00088501
--0.004303
--0.013916
-0.0055847
-0.0084229
--0.024902
--0.019318
-0.0077515
--0.015472
--0.015869
-0.0099182
--0.016357
--0.027649
-0.009491
-0.013824
--0.012695
--0.010284
--0.0022888
--0.012665
--0.0085449
-0.0015869
--0.006897
--0.018158
--0.0065002
-0.013794
--0.0023193
--0.031677
--0.01593
-0.0066528
--0.009552
--0.012146
-0.0072327
--0.006012
--0.029999
--0.012634
-0.012024
-0.0053406
--0.010132
--0.0089111
--0.010406
--0.01532
--0.00015259
-0.0087891
--0.0092163
--0.018799
--0.0062866
-0.00057983
--0.010437
--0.0098877
-0.00091553
-0.0011902
--0.0016174
--0.002594
--0.0052185
--0.015808
--0.021576
--0.005249
-0.0075378
-0.0018921
--0.0061035
--0.0073853
--0.014191
--0.020721
--0.0069275
-0.00067139
--0.0072327
--0.00048828
-0.0046082
--0.010559
--0.015717
--0.0052795
--0.0075989
--0.01001
-9.1553e-005
-0.00088501
--0.00012207
-0.003479
--0.014038
--0.025818
--0.011688
-0.0010986
-0.006012
--0.00045776
--0.0059509
--0.015259
--0.029175
--0.013214
-0.010956
-0.0068359
--0.0057068
--0.017456
--0.026184
--0.0045166
-0.015259
--0.0032959
--0.011169
--0.00091553
--0.008606
--0.018646
--0.011475
-0.010345
-0.011017
--0.011108
--0.0050049
-0.002533
--0.016968
--0.013702
-0.0059204
-0.0044861
--0.0075073
--0.0032043
-0.00033569
--0.01355
--0.013885
--0.00030518
-0.00085449
--0.0050049
--0.00354
--0.0056763
--0.015228
--0.014832
--0.0059814
--0.0028076
-0.0010681
-0.0057983
--0.0015869
--0.021698
--0.017639
-0.0042725
-0.0028992
--0.0016174
-0.0079346
--0.0018005
--0.019196
--0.010895
--0.00057983
--0.0080872
-0.00039673
-0.016266
--0.0040588
--0.020203
--0.008728
--0.0067444
--0.0041199
-0.0093689
-0.0066528
--0.01059
--0.019958
--0.010773
-0.0056152
-0.004364
--0.01236
--0.0063477
-0.0078125
-0.0010376
-0.0038757
-0.0059814
--0.014679
--0.030304
--0.0079346
-0.016907
--0.0040894
--0.024292
-0.00021362
-0.011963
--0.01355
--0.022827
--0.00177
-0.0083313
-
--0.0049438
--0.0070801
--0.0082703
--0.0010681
--0.0036621
--0.0055237
-0.0088196
-0.0039368
--0.020752
--0.016876
--0.0022278
--0.0028992
-0.003479
-0.010284
-0.0028076
--0.012238
--0.01535
--0.0041504
-0.0054626
-0.0010376
--0.00061035
-0.0030212
--0.0052185
--0.0099792
-0.0010681
--0.00027466
--0.01947
--0.014191
-0.0091553
-0.0074158
--0.0063782
--0.0033875
-0.00018311
--0.0096436
--0.016022
-0.00076294
-0.013458
--0.00057983
--0.0033264
-0.0023193
--0.014618
--0.014709
-9.1553e-005
--0.0070801
--0.0022583
-0.010193
--0.014679
--0.028656
-9.1553e-005
-0.013641
-0.0011902
--0.0050964
--0.012115
--0.010803
-0.0027161
-0.0011292
-0.00012207
-0.0045471
--0.0054016
--0.01532
--0.014008
-9.1553e-005
-0.014923
-0.0093384
--0.002594
--0.017365
--0.014771
-0.010742
-0.011383
--0.0047913
--0.0011902
-0.0053101
--0.013641
--0.021667
-0.0075989
-0.021332
-0.013428
-0.0097046
--0.0016479
--0.0074158
--0.011993
--0.011841
-0.0082092
-0.018402
-0.001709
--0.011139
--0.006134
--0.014221
--0.012482
-0.012238
-0.014038
-0.00094604
--0.0013123
--0.0022888
--0.0056458
--0.0071716
--0.0072021
--0.003418
-0.002594
-0.005127
--0.0036011
--0.011139
-0.0072021
-0.0085754
--0.01825
--0.011749
-0.015106
-0.011292
--0.0054321
--0.012848
--0.0069885
-0.0095825
-0.0054626
--0.0063171
-0.0067749
-0.014038
--0.0025024
--0.0099182
--0.0014038
--0.00048828
--0.0086975
--0.0068054
-0.0039063
-0.0030212
--0.0050049
-0.00045776
-0.0078125
--0.0060425
--0.015533
-0.0057678
-0.021423
-0.0058289
--0.010681
--0.005249
-0.00012207
--0.0071411
-0.00061035
-0.0084839
--0.0037231
--0.0031738
-0.0052795
--0.008667
--0.014862
-0.0012817
-0.0036011
-0.0014343
-0.002533
--0.0071106
--0.011932
-0.0015564
-0.0083008
-0.0007019
--0.0010071
--0.0018005
--0.0057068
--0.0011902
-0.0030518
--0.0029907
--0.013153
--0.01416
--0.0020752
-0.0028992
-0.0036621
-0.0090637
--0.00045776
--0.010895
-0.00021362
-0.0092163
-0.0018616
-0.0023804
-0.0027466
--0.005249
--0.00039673
-0.0048523
-0.00030518
--0.0044556
--0.0053711
--0.00354
--0.0016479
--6.1035e-005
--0.002594
--0.0059814
--0.0026245
-0.0091553
-0.010162
--0.0049744
--0.0051575
-0.0040894
--0.0023804
--0.0087891
--0.0010986
-0.0055847
-0.0065918
--0.00036621
--0.0089111
--0.01062
--0.0066833
-0.0021362
-0.0093689
-0.0043945
--0.0096436
--0.012726
--0.0046082
-0.00091553
--0.0021973
--0.0032959
-0.0041809
-0.0054321
--0.0039673
--0.0065613
--0.00082397
--0.0054016
--0.0097961
-0.0014954
-0.0040283
--0.0041504
--0.0020752
--0.0016479
--0.0040283
-0.0014038
--0.0038452
--0.01062
-0.0036011
-0.010864
-0.0055542
--0.0029907
--0.010986
--0.0099792
--0.0053406
-0.0012512
-0.0049438
-0.0016785
--0.00027466
--0.0076904
--0.016693
--0.0054016
-0.0095825
-0.0041809
--0.007782
--0.0053711
-0.0049744
-0.00033569
--0.010773
--0.0064697
-0.0027771
--0.0022278
--0.010498
--0.0042725
-0.0044861
--0.0030212
--0.015076
--0.0084534
-0.0093079
-0.0081787
--0.00354
--0.0045471
--0.0063782
--0.011505
--0.0088501
--0.00079346
-0.0069275
-0.0089111
--0.0073242
--0.022217
--0.0091553
-0.0061951
--0.002594
--0.011169
--0.0040283
--0.0021362
--0.0065613
--0.0049744
--0.0036316
--0.0053406
--0.0015564
-0.0040283
-0.0047302
--0.0047913
--0.012146
--0.0054626
-0.0012817
-0.00079346
--0.0072021
--0.01535
--0.010864
--0.012146
--0.014923
--0.0010681
-0.0038147
--0.01004
--0.0095215
--0.0039673
--0.010132
--0.00054932
-0.016174
-0.006012
--0.011047
--0.011475
--0.0040283
-0.0010986
-0.0042419
-0.0046082
--0.0054016
--0.013977
--0.0073853
--0.0030518
--0.0053101
--0.0025024
--0.0024414
--0.0054321
--0.0014648
-0.0032959
--0.00064087
--0.0057373
--0.0043945
-0.0016174
-0.0048218
-0.0026245
--0.0054321
--0.016022
--0.014343
--0.0016479
-0.0013428
--0.0064087
--0.010529
--0.0112
--0.012207
--0.0096436
--0.0080261
--0.011993
--0.0075684
-0.0050964
-0.0014038
--0.013763
--0.011658
--0.0057983
--0.0097046
--0.0088196
--0.0014038
-0.00061035
--0.0023804
--0.0057983
--0.012329
--0.015656
--0.0095825
--0.0022583
--0.0014648
--0.0024109
--0.0052795
--0.010742
--0.010101
--0.0048523
--0.0028687
--0.00036621
-0.0038757
-0.0015564
--0.0071106
--0.0072327
--0.0014954
--0.006012
--0.01239
--0.01062
--0.0079651
--0.0058899
--0.0085144
--0.01123
--0.0066528
--0.005249
--0.01062
--0.010712
-0.0011597
-0.0071716
--3.0518e-005
--0.0058289
--0.0054626
--0.0055237
--0.006073
--0.0076904
--0.0082397
--0.0050049
--0.0049438
--0.0093689
--0.013977
--0.016937
--0.016479
--0.010681
--0.00177
-0.0019836
-3.0518e-005
--0.0040588
--0.006012
--0.0078125
--0.0047607
-0.0020447
-0.0025024
--0.0026855
--0.0076599
--0.011261
--0.011108
--0.01239
--0.01059
--0.0061951
--0.0052185
--0.0056458
--0.0055237
--0.005188
--0.0046997
--0.0059814
--0.003418
-0.0024109
-0.00094604
--0.0083313
--0.01178
--0.0058594
--0.0049438
--0.012512
--0.012543
--0.0041199
--0.0044861
--0.01355
--0.016022
--0.0083923
--0.0030212
--0.0050354
--0.0067444
--0.0013123
-0.00027466
--0.0057068
--0.0054016
--0.0014954
--0.0067444
--0.011047
--0.0078735
--0.0053101
--0.0064697
--0.007843
--0.004303
--0.0037537
--0.0074768
--0.0080566
--0.0098877
--0.0083923
--0.0023193
--0.0025024
--0.0053711
--0.0055847
--0.0035706
--0.0033264
--0.006073
--0.002594
--0.00073242
--0.0053406
--0.0047302
--0.0014038
--0.003418
--0.0050354
--0.0058289
--0.0055847
--0.0051575
--0.0083923
--0.011536
--0.0076904
--0.0059509
--0.0071106
--0.00082397
-0.0012817
--0.0045166
--0.0090637
--0.012054
--0.010193
--0.0043945
--0.0010681
--0.0027161
--0.0090942
--0.015961
--0.013977
--0.0076294
--0.0075989
--0.010468
--0.0076904
--0.005127
--0.0083008
--0.011017
--0.0091248
--0.0064697
--0.006958
--0.0046997
-0.00024414
--0.0019531
--0.0055542
--0.0036621
--0.0023804
--0.00021362
--0.00039673
--0.0063171
--0.008667
--0.0054321
--0.0044556
--0.003479
-0.0035095
-0.008606
-0.0011292
--0.0059204
--0.0042725
--0.005249
--0.0049438
-0.0034485
-0.0078735
-0.0031128
--0.00094604
--0.0029602
--0.0074463
--0.0096436
--0.0046387
--0.0011597
--0.0060425
--0.006073
--0.0021362
--0.0075989
--0.0112
--0.0042725
--0.00021362
--0.0032654
--0.002655
--0.0011292
--0.0028992
--0.00054932
-0.0039063
-0.00088501
--0.004364
--0.0068665
--0.0075684
--0.0064087
--0.0036011
--0.0010376
--0.0029907
--0.0090942
--0.0091248
--0.0036926
--0.0011902
-6.1035e-005
--0.00061035
--0.0064087
--0.0066528
--0.007843
--0.0032043
-0.003418
--0.00073242
--0.0053101
--0.0057983
--0.0066528
--0.0065613
--0.0062561
--0.0024109
--0.00094604
--0.0063171
--0.0056458
--0.0037537
--0.0062561
--0.0007019
-0.0048828
-0.0030823
-0.0053406
-0.0045776
--0.0033569
--0.0056152
--0.0023193
-0.0030823
-0.0035095
--0.0034485
--0.0054016
--0.0051575
--0.0072937
--0.006012
--0.0010071
-0.00057983
--0.0027161
--0.0037537
--0.0007019
-0.0029297
-0.0046692
-0.0021973
-0.00054932
-0.00085449
-0.0011292
-3.0518e-005
--0.0020142
--0.0023193
--0.0032959
--0.0065918
--0.0066223
--0.0018311
-6.1035e-005
-0.00018311
-0.002533
-0.0018005
--0.00048828
-0.00177
-0.004364
-0.0066528
-0.0088806
-0.0069885
-0.00088501
--0.0055237
--0.0077515
--0.0057983
--0.0014954
-0.0021667
--0.00015259
--0.007782
--0.010071
--0.0059204
--0.0021667
--0.00039673
-0.0019226
-0.0028687
-0.0005188
--0.002533
--0.0021057
--0.00015259
-0.0016479
-0.001709
--0.0011902
--0.0035095
--0.0028992
--0.0036316
--0.0061646
--0.0078125
--0.0046387
--0.0021973
--0.0053101
--0.0050659
-0.0016174
-0.0066223
-0.0066528
-0.0072021
-0.0055237
--0.00076294
--0.0016174
-0.0042114
-0.0077209
-0.0064697
--0.00048828
--0.0078125
--0.0054932
-0.0011597
-0.006134
-0.008606
-0.0064392
-0.00057983
--0.004425
--0.004425
-0.0021973
-0.0074768
-0.0035706
--0.0007019
--0.0018005
--0.0029602
--0.0023193
--0.00073242
-0.0014038
-0.00082397
--0.0039368
--0.0029602
-0.00082397
--0.0020447
--0.0041199
-0.00024414
-0.0016479
-6.1035e-005
-0.0018005
-0.0018005
-0.00012207
-0.0010376
-0.002533
-0.0014954
-0.00036621
-0.00079346
-0.00094604
-0.0011902
-0.0019531
-0.00042725
--0.00085449
-0.0005188
-0.0031433
-0.0026855
-0.00018311
--0.00039673
--0.0024719
--0.0032654
--0.0005188
-0.0015259
-0.0037842
-0.0050964
-0.0016479
--0.0021362
--0.00012207
-0.0028992
-0.0024414
-0.0023804
-0.0014954
--0.0023499
--0.0046082
--0.0035706
--0.002594
--0.0038147
--0.0046082
--0.0034485
--0.0012512
-0.0013428
-0.0032959
-0.0028992
-0.00177
-0.0010986
-0.0013123
-0.0013733
-0.00027466
--0.0010986
--0.0021362
--0.0028076
--0.0026245
--0.001709
--0.0014954
--0.0023499
--0.0031433
--0.0021667
-0.0005188
-0.0026855
-0.0026855
-0.002594
-0.0027466
-0.0014038
-0.0013123
-0.0020447
-0.00079346
--0.0020142
--0.0056152
--0.0064697
--0.0036011
--0.0022583
--0.0026855
--0.0043945
--0.0053101
--0.0040283
-
-0.0037537
-0.0042725
-0.0011902
--0.0022278
--0.0029602
--0.0010681
--0.00073242
--0.0016479
--0.0016479
--0.0025635
--0.0043945
--0.0047607
--0.0046387
--0.0053711
--0.0048828
--0.0026855
--0.00064087
--0.0018616
--0.0048523
--0.0057678
--0.0036926
--0.0014954
-0.00027466
-9.1553e-005
--0.0014648
--0.0019531
--0.0023193
--0.0019836
--0.0013733
--0.0019226
--0.0024109
--0.0020447
--0.0024109
--0.0036316
--0.004364
--0.004303
--0.0024719
--0.0018005
--0.0028992
--0.0041809
--0.0042419
--0.002655
--0.0011292
--0.0013733
--0.00097656
-0.00012207
-0.0014648
-0.0018616
-0.00064087
--0.0013733
--0.0023804
--0.0031738
--0.0028687
--0.0013428
--0.0012207
--0.0021362
--0.0026245
--0.0025635
--0.002533
--0.0022278
--0.0018005
--0.0012512
--0.0012512
--0.0014954
--0.00088501
--0.00091553
--0.0016479
--0.0015869
--0.0020142
--0.0023804
--0.0027466
--0.0044556
--0.007019
--0.0079651
--0.0075378
--0.0065918
--0.0057983
--0.0054321
--0.0054321
--0.0056458
--0.0057068
--0.0052185
--0.0038757
--0.002655
--0.0022888
--0.0030823
--0.004303
--0.004364
--0.0042419
--0.0050964
--0.0058594
--0.0059814
--0.0056763
--0.0058289
--0.004364
--0.0027771
--0.0033264
--0.0039368
--0.0028992
--0.0033264
--0.0044861
--0.0033875
--0.0014343
--0.0016785
--0.002655
--0.0023499
--0.0019531
--0.0037231
--0.0056458
--0.0056458
--0.0047913
--0.0050964
--0.0064697
--0.0078735
--0.006897
--0.0050659
--0.0048218
--0.0053101
--0.0048218
--0.0040283
--0.0039063
--0.0020142
--6.1035e-005
--0.0013123
--0.0045166
--0.0067749
--0.0056152
--0.0028076
--0.0011292
--0.00057983
--0.0012512
--0.002655
--0.0037537
--0.0045471
--0.0049133
--0.0031433
--0.0022278
--0.0033264
--0.0045471
--0.0041199
--0.0038147
--0.004303
--0.0038147
--0.0028992
--0.0028992
--0.0033264
--0.0032043
--0.0042725
--0.0054932
--0.0053711
--0.0050049
--0.0049438
--0.0053101
--0.0067139
--0.0070801
--0.0057678
--0.004364
--0.0036621
--0.003479
--0.0032959
--0.0026245
--0.0028687
--0.0036011
--0.0045166
--0.0056152
--0.0064697
--0.0061646
--0.0048828
--0.0038452
--0.0040283
--0.0057373
--0.0069275
--0.0066223
--0.0054016
--0.0039978
--0.0036316
--0.004303
--0.0047913
--0.0045471
--0.0038757
--0.0031433
--0.0022278
--0.0022583
--0.0016479
--0.0015259
--0.0026855
--0.00354
--0.0042725
--0.0064697
--0.008606
--0.0075684
--0.0057068
--0.0049744
--0.0044861
--0.0041809
--0.0046082
--0.0050964
--0.004425
--0.0023804
--0.0010376
--0.0013428
--0.0027466
--0.0048828
--0.0062866
--0.0065308
--0.0059814
--0.0046387
--0.00354
--0.0030518
--0.0037842
--0.0044556
--0.0048828
--0.0050659
--0.005127
--0.005249
--0.0046997
--0.0045166
--0.0056152
--0.0065918
--0.006897
--0.0063782
--0.0059509
--0.0062561
--0.0057068
--0.0047302
--0.004303
--0.004364
--0.0046082
--0.0049744
--0.004364
--0.0027161
--0.00024414
-0.00079346
--0.00018311
--0.0012512
--0.0022888
--0.0033264
--0.0039978
--0.0037537
--0.0039978
--0.004364
--0.0045776
--0.0053711
--0.0058594
--0.0045776
--0.0026855
--0.0013123
--0.00076294
--0.0015564
--0.0035095
--0.004364
--0.0041809
--0.0044861
--0.005249
--0.005249
--0.0056152
--0.0067749
--0.0074463
--0.0062561
--0.0054626
--0.0055847
--0.0056458
--0.0053406
--0.0049133
--0.004303
--0.0035706
--0.0027771
--0.0022888
--0.0021362
--0.0015259
--0.0010376
--0.0011902
--0.0029602
--0.0050964
--0.0056152
--0.005249
--0.0048828
--0.0042114
--0.003479
--0.0033569
--0.0033264
--0.0032654
--0.0023499
--0.0013123
--0.00088501
--0.00082397
--0.00097656
--0.001709
--0.0031128
--0.0049438
--0.0062561
--0.0066833
--0.006073
--0.0053711
--0.005249
--0.0054321
--0.0050049
--0.0042114
--0.003418
--0.0029297
--0.0021667
--0.0017395
--0.0022888
--0.0033875
--0.0046082
--0.0054016
--0.0050049
--0.0040283
--0.0040283
--0.0043945
--0.0039063
--0.0040283
--0.0049438
--0.0062866
--0.0063477
--0.0030518
--0.00045776
-3.0518e-005
--0.00088501
diff --git a/RTJava/docs/CodingStyle.txt b/RTJava/docs/CodingStyle.txt
deleted file mode 100644
index e0e70b73e78..00000000000
--- a/RTJava/docs/CodingStyle.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-The coding guideline to be used are those specified by the
-document "Java[tm] Coding Style Guide" that can be found at:
-
- http://www.sun.com/forte/whitepapers/
-
-
-
-
diff --git a/RTJava/examples/tank/Refiller.java b/RTJava/examples/tank/Refiller.java
deleted file mode 100644
index 1ceea495854..00000000000
--- a/RTJava/examples/tank/Refiller.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package tank;
-
-/**
- * This class represent an activity that refills periodically
- * the bucket. In this application it is assumed that this activity
- * should be carried periodically.
- */
-public class Refiller implements java.lang.Runnable {
-
- /**
- * Constructs a refiller that refills the tank every
- * given amount of time.
- *
- * @param period The period of time at which the refill should
- * occur.
- */
- public Refiller(int period) {
- this.period = period;
- }
-
- public Refiller(int period) {
- this.period = period;
- }
-
- protected long period;
-}
diff --git a/RTJava/examples/tank/Tank.java b/RTJava/examples/tank/Tank.java
deleted file mode 100644
index 41483d8f266..00000000000
--- a/RTJava/examples/tank/Tank.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package tank;
-
-/**
- * This class represent a bucket from which some kind of
- * liquid ca be refilled or spilled.
- */
-public class Tank {
-
- /**
- * Creates a bucket that can contains at most a given
- * amount of liquid and that has initially available a
- * given quantity.
- *
- * @param capacity The capacity of the Tank in liters.
- * @param available The quantity of liquid initially available in
- * the bucket.
- */
- public Tank(long capacity, long available) {
- this.capacity = capacity;
- this.available = abailable;
- }
-
- /**
- * Refills the bucket with a given amount of liquid.
- *
- * @param amount The amount of liquid added to the bucket.
- */
- public void refill(long amount) {
- this.available = java.lang.Math.min(this.capacity, amount+this.available);
-
- // Here we should check for an overflow.
- if (this.available > capacity)
- this.overflowEvent.fire();
- }
-
- /**
- * Spills from the bucket a given amount of liquid.
- *
- * @param amount The amount of liquid added to the bucket.
- */
- public void spill(long amount) {
- this.available = java.lang.Math.max(0, this.available-amount);
- if (this.available < amount)
- this.underflowEven.fire();
- }
-
- /**
- * Adds an AsyncEventHandler that will be called by the scheduler
- * each time an overflow occurs.
- *
- * @param handler Ther overflow handler.
- */
- public void addOverflowHandler(AsyncEventHandler handler) {
- this.overflowEvent.addHandler(handler);
- }
-
- /**
- * Adds an AsyncEventHandler that will be called by the scheduler
- * each time an underflow occurs.
- *
- * @param handler Ther underflow handler.
- */
- public void addUnderflowHandler(AsyncEventHandler handler) {
- this.underflowEvent.addHandler(handler);
- }
-
- protected long capacity;
- protected long available;
-
- protected AsynchEvent overflowEvent;
- protected AsynchEven underflowEvent;
-}
diff --git a/Static_Performance.dsw b/Static_Performance.dsw
deleted file mode 100644
index 8e50198ea15..00000000000
--- a/Static_Performance.dsw
+++ /dev/null
@@ -1,263 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "ACE DLL"=.\ace\ace_dll.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "ACE LIB"=.\ace\ace_lib.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "IDL_Cubit Client"=".\TAO\performance-tests\Cubit\TAO\IDL_Cubit\client.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "IDL_Cubit Server"=".\TAO\performance-tests\Cubit\TAO\IDL_Cubit\server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "MT_Cubit Client"=".\TAO\performance-tests\Cubit\TAO\MT_Cubit\client.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "MT_Cubit Server"=".\TAO\performance-tests\Cubit\TAO\MT_Cubit\server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "TAO DLL"=.\TAO\tao\TAO.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "TAO LIB"=.\TAO\tao\TAO_Static.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "TAO_IDL Compiler"=.\TAO\TAO_IDL\tao_idl.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name ACE dynamic library
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name TAO_IDL_BE_DLL
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name TAO_IDL_FE_DLL
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "TAO_IDL Compiler Static"=.\TAO\TAO_IDL\tao_idl_static.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name TAO_IDL_BE_LIB
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name TAO_IDL_FE_LIB
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "TAO_IDL_BE_DLL"=.\TAO\TAO_IDL\TAO_IDL_BE_DLL.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name TAO_IDL_FE_DLL
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "TAO_IDL_BE_LIB"=.\TAO\TAO_IDL\TAO_IDL_BE_LIB.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name TAO_IDL_FE_LIB
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "TAO_IDL_FE_DLL"=.\TAO\TAO_IDL\TAO_IDL_FE_DLL.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name ACE DLL
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name gperf
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name gperf_lib
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "TAO_IDL_FE_LIB"=.\TAO\TAO_IDL\TAO_IDL_FE_LIB.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name ACE LIB
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name gperf
- End Project Dependency
- Begin Project Dependency
- Project_Dep_Name gperf_lib
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "basic_perf"=".\performance-tests\Misc\basic_perf.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "context_switch_time"=".\performance-tests\Misc\context_switch_time.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "gperf"=.\apps\gperf\src\gperf.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name ACE dynamic library
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a
deleted file mode 100644
index ce23b32e956..00000000000
--- a/TAO/ChangeLogs/ChangeLog-02a
+++ /dev/null
@@ -1,8576 +0,0 @@
-Mon Nov 19 02:06:53 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * orbsvcs/tests/Concurrency/Makefile:
-
- Modified so that when the lex/yacc file changes the Makefile
- regenerates the .cpp and .h files instead of printing out a lame
- warning. Makefile also adds the CVS magic cookie automatically.
-
- * orbsvcs/tests/Concurrency/CC_command.tab.cpp:
- * orbsvcs/tests/Concurrency/CC_command.tab.h:
-
- New versions which fix the warning that showed up under Windows.
-
- * orbsvcs/tests/Concurrency/lex.CC_command.cpp:
-
- New version necessitated by change in Makefile.
-
- * orbsvcs/tests/Concurrency/lex.CC_command.cpp.diff:
-
- Removed the bogus hunk which included a invalid //$Id$.
-
-Sun Nov 18 17:33:41 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/ORB_Core.cpp (init):
-
- Fixed incorrect use of a CORBA::String_var in some
- -ORBDefaultInitRef related code. It was being used as if it was
- a pointer to char, resulting in a subtle memory corruption
- problem due to consecutive assignments to the CORBA::String_var.
-
-Sun Nov 18 13:32:10 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/md5c.c (MD5Init): Converted to ISO/ANSI C
- prototype to remove KAI C++ warning.
-
-Sat Nov 17 13:22:21 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tao/Invocation_Endpoint_Selectors.cpp:
- * tao/Invocation_Endpoint_Selectors.i: Moved constructors
- from .i to .cpp file to remove VC++ warning.
-
-Sat Nov 17 10:09:33 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/RTCP.cpp (send_report): Changed sdes_type from
- ACE_UINT16 to unsigned char to remove VC++ warning.
-
-Fri Nov 16 23:11:33 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.h (ssl_component):
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.i (ssl_component):
-
- New accessor method for the SSLIOP::SSL structure associated
- with the acceptor.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp (get_listen_point):
-
- Place the SSLIOP port into the listen point, not the IIOP port.
- Fixes a problem with bidirectional GIOP over SSLIOP.
-
-Fri Nov 16 16:41:45 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/RTCP.cpp (send_report): Moved code
- around to eliminate VC++ warning about casting arguments.
- * orbsvcs/orbsvcs/AV/RTP.cpp (TAO_AV_RTP_Object): Imported
- code from AVStreams_i.cpp for calling alloc_srcid() to eliminate
- IA64 warning.
- Thanks to Rob Ruff for providing these fixes.
-
-Fri Nov 16 13:36:09 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/FlowSpec_Entry.cpp: Removed deletes from
- destructor. Was causing Multicast and Pluggable tests to crash.
- * orbsvcs/orbsvcs/AV/UDP.cpp (open_i): Added a check of the
- result variable to remove a KAI C++ warning.
- * orbsvcs/orbsvcs/AV/RTCP.cpp (rtcp_interval): Replaced argument
- to ACE_OS::srand() with ACE_OS::time() to eliminate IA64 warning.
-
-Thu Nov 15 17:54:41 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/RTCP_Channel.h:
- * orbsvcs/orbsvcs/AV/RTCP_Packet.h: Added #includes of ace/pre.h,
- and ace/post.h. Thanks to Rob Ruff.
- * orbsvcs/orbsvcs/AV/md5.h: Added names of variables to function
- prototypes to appease HPUX compiler.
- * orbsvcs/orbsvcs/AV/md5.c: Changed prototypes from "classic"
- to ISO/ANSI style function prototyping to appease KAI C++.
-
-Wed Nov 14 13:42:42 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/RTCP.h:
- * orbsvcs/orbsvcs/AV/RTCP.cpp: Moved typedef of struct md5_string
- from .cpp file to header file. Cast third parameter of
- sdes.add_item() to unsigned char.
-
-Tue Nov 13 20:58:02 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/md5.h: Changed comments from C++ style
- to C style in C file.
- * orbsvcs/orbsvcs/AV/FlowSpec_Entry.cpp:
- Default initialized variables.
- * orbsvcs/orbsvcs/AV/RTCP_Packet.cpp:
- Default initialized variable.
- * orbsvcs/orbsvcs/AV/Transport.cpp: Hide unused variable
- with ACE_UNUSED_ARG.
- * orbsvcs/orbsvcs/AV/UDP.cpp: Removed unused variable.
-
-Tue Nov 13 19:23:24 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * orbsvcs/tests/Concurrency/Makefile:
- * orbsvcs/tests/Concurrency/CC_command.tab.cpp:
- * orbsvcs/tests/Concurrency/CC_command.tab.h:
- * orbsvcs/tests/Concurrency/lex.CC_command.cpp:
-
- Regenerated the files by removing the #pragma.
-
- * orbsvcs/tests/Concurrency/CC_command.tab.cpp.diff:
-
- Removed the file as it is no longer needed.
-
-Tue Nov 13 18:01:57 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV.dsp: Added md5c.c
- * orbsvcs/orbsvcs/AV_Static.dsp: Added md5c.c
- * orbsvcs/orbsvcs/AV/md5c.c: Add a CVS Id tag.
- * orbsvcs/orbsvcs/AV/RTCP.cpp:
- Fix comments in TAO_AV_RTCP_Flow_Factory::make_protocol_object().
- Do not return void in TAO_AV_RTCP_Object::ts_offset().
-
- * orbsvcs/orbsvcs/AV/RTCP_Channel.cpp: Fixed comment.
-
-Tue Nov 13 14:31:44 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV.dsp: (updated)
- * orbsvcs/orbsvcs/AV_Static.dsp: (updated)
-
-Tue Nov 13 14:14:24 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- Fixes provided by Rob Ruff <rruff@scires.com>:
-
- * orbsvcs/orbsvcs/AV/AVStreams_i.cpp:
- * orbsvcs/orbsvcs/AV/AVStreams_i.i:
- * orbsvcs/orbsvcs/AV/AV_Core.cpp:
- * orbsvcs/orbsvcs/AV/AV_Core.h:
- * orbsvcs/orbsvcs/AV/FlowSpec_Entry.cpp:
- * orbsvcs/orbsvcs/AV/FlowSpec_Entry.h:
- * orbsvcs/orbsvcs/AV/FlowSpec_Entry.i:
- * orbsvcs/orbsvcs/AV/QoS_UDP.cpp:
- * orbsvcs/orbsvcs/AV/QoS_UDP.h:
- * orbsvcs/orbsvcs/AV/TCP.cpp:
- * orbsvcs/orbsvcs/AV/TCP.h:
- * orbsvcs/orbsvcs/AV/Transport.cpp:
- * orbsvcs/orbsvcs/AV/Transport.h:
- * orbsvcs/orbsvcs/AV/UDP.cpp:
- * orbsvcs/orbsvcs/AV/UDP.h:
- The previous implementation used separate flow specifications for the
- data and control portions of the same stream. This meant that RTP
- could not be used with the light profile of the AV service (since it
- only allows one flow between stream endpoints). The code was modified
- to allow data and control information to be passed as part of the
- same flow.
-
- * orbsvcs/orbsvcs/AV/AVStreams_i.cpp:
- Added/renamed several properties defined in the CORBA AV spec.
- Implemented the TAO_StreamCtrl::unbind operation.
- Fixed several memory leaks.
-
- * orbsvcs/orbsvcs/AV/AV_Core.cpp:
- Added code to clean up transport/flow factories (fix memory leak).
- Added get_transport_factory(const char *transport_protocol).
- Added get_flow_protocol_factory(const char *flow_protocol).
-
- * orbsvcs/orbsvcs/AV/AV_Core.h:
- Added get_transport_factory(const char *transport_protocol).
- Added get_flow_protocol_factory(const char *flow_protocol).
-
- * orbsvcs/orbsvcs/AV/Endpoint_Strategy_T.cpp:
- Added a remove_ref call to activate_mediactrl.
-
- * orbsvcs/orbsvcs/AV/FlowSpec_Entry.cpp:
- Changed the flow specification to better conform to the AV Service
- spec.
-
- * orbsvcs/orbsvcs/AV/MCast.cpp:
- TAO_AV_UDP_MCast_Flow_Handler::handle_input now returns the value
- returned by protocol_object->handle_input rather than 0.
-
- * orbsvcs/orbsvcs/AV/MCast.h:
- Made the TAO_AV_UDP_MCast_Flow_Handler destructor virtual.
-
- * orbsvcs/orbsvcs/AV/RTCP.cpp:
- * orbsvcs/orbsvcs/AV/RTCP.h:
- Added full RFC compliant RTCP control protocol implementation.
- Modified the ssrc allocation operation to use the MD5 algorithm to
- more reliably choose a unique id.
-
- * orbsvcs/orbsvcs/AV/RTCP_Channel.h: (added)
- * orbsvcs/orbsvcs/AV/RTCP_Channel.cpp: (added)
- These files contain two classes, one used to represent incoming RTP
- streams and one to represent outgoing streams. They keep track of
- transmission/reception statistics.
-
- * orbsvcs/orbsvcs/AV/RTCP_Packet.h: (added)
- * orbsvcs/orbsvcs/AV/RTCP_Packet.cpp: (added)
- These files contain classes to represent each of the control packet
- message types.
-
- * orbsvcs/orbsvcs/AV/RTP.cpp:
- * orbsvcs/orbsvcs/AV/RTP.h:
- Made several changes to support the RTCP implementation.
- Added a class to represent an RTP packet.
-
- * orbsvcs/orbsvcs/AV/Transport.cpp:
- Modified code to use the get_xxx_factory routines added to AV_Core
- rather than doing the search in this file.
-
- * orbsvcs/orbsvcs/AV/UDP.cpp:
- When the protocol is RTP/UDP, an even/odd port pair will be reserved
- as is called out in the RTP RFC.
- The class TAO_AV_UDP_Connection_Setup was added to replace duplicated
- code used for both the TAO_AV_UDP_Acceptor and TAO_AV_UDP_Connector.
-
- * orbsvcs/orbsvcs/AV/global.h: (added)
- * orbsvcs/orbsvcs/AV/md5.h: (added)
- * orbsvcs/orbsvcs/AV/md5c.c: (added)
- Used by the operation to allocate ssrc's in RTCP.cpp to help guarantee
- a unique id.
-
- * orbsvcs/orbsvcs/AV/source.cpp: (removed)
- * orbsvcs/orbsvcs/AV/source.h: (removed)
- * orbsvcs/orbsvcs/AV/source.i: (removed)
- The functionality contained in these files is now implemented in the
- RTCP*.* files.
-
- * orbsvcs/orbsvcs/Makefile.av: (updated)
- * orbsvcs/orbsvcs/AV.bor: (updated)
-
-Tue Nov 13 08:58:13 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/Notify/Notify_ProxyPushSupplier_i.cpp
- (dispatch_event_i):
- * orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.cpp
- (dispatch_event_i):
-
- Silence a fuzz warning. The code is correct.
-
-Mon Nov 12 21:28:01 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl
- (run_test_helper): Disabled running the test with SHMIOP
- protocol on Win32 platform as it is carshing the OS on single
- CPU machines.
-
-Mon Nov 12 20:26:35 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * TAO_IDL/Makefile:
- * TAO_IDL/fe/lex.yy.cpp:
- * TAO_IDL/fe/lex.yy.cpp.diff:
- * TAO_IDL/fe/y.tab.cpp:
- * TAO_IDL/fe/y.tab.cpp.diff:
- * TAO_IDL/fe/y.tab.h:
-
- Final kill of all the #line directives. This change is very
- similar to the changes made to Svc_Conf_l.cpp and Svc_Conf_y.cpp
- under $ACE_ROOT/ace described in ChangeLog entry of "Sat Nov 10
- 22:13:54 2001 Krishnakumar B <kitty@cs.wustl.edu>"
-
- * orbsvcs/orbsvcs/Trader/Constraint_l.cpp:
- * orbsvcs/orbsvcs/Trader/Constraint_y.cpp:
-
- Removed the #line directives directly without changing the
- Makefiles as there was neither a Makefile target nor any diff
- files to apply.
-
- * orbsvcs/tests/Concurrency/CC_command.tab.cpp:
- * orbsvcs/tests/Concurrency/CC_command.tab.h:
- * orbsvcs/tests/Concurrency/Makefile:
- * orbsvcs/tests/Concurrency/lex.CC_command.cpp:
- * orbsvcs/tests/Concurrency/lex.CC_command.cpp.diff:
-
- Same changes as the first one.
-
- There are still some warnings whenever a idl file is processed.
- But there is nothing to be done there as it seems to be a bug in
- the Sun CC preprocessor which according to the web-page is
- fixed. Will have to wait and watch.
-
-Mon Nov 12 17:37:24 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/TypeCodeFactory/TypeCodeFactory_i.cpp (create_tc_common):
-
- Changed consolidated message block arg in type code constructor
- call from consolidated_block.base () to
- consolidated_block.rd_ptr (). The former would work on platforms
- that always allocate heap memory with 8-byte alignment, but
- not if the alignment is to a 4-byte boundary. Thanks to
- Michael Sawczyn <msawczyn@columbus.rr.com> for reporting the
- problem, and to Bala for help with the solution.
-
-Mon Nov 12 14:06:40 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * orbsvcs/orbsvcs/IOR_Multicast.cpp (TAO_IOR_Multicast):
- Missed initializing the new private variable in the
- contructors. Thanks to Jeff for reporting a problem which arose
- because of this.
-
-Mon Nov 12 11:38:03 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/tests/Security/Big_Request/client.cpp (main):
-
- Added a check that verifies both the sent and received octet
- sequences actually match. This is a sanity check.
-
-Mon Nov 12 12:15:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp:
- * tao/IIOP_Transport.cpp (get_listen_point): Removed some code
- that was there, more for historic reasons.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp: Added a
- debug statement.
-
-Mon Nov 12 09:59:50 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.cpp
- (dispatch_event_i):
-
- Added missing ACE_TRY_CHECK;
-
-Sun Nov 11 23:50:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tests/Exposed_Policies/Policy_Tester.cpp:
- More const char * fixes.
-
-Sun Nov 11 14:15:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/configurations.html: Fixed some documentation
- inconsistencies.
-
-Sun Nov 11 11:40:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/Options.html: Fixed the documentation to be more helpful.
-
-Sun Nov 11 11:02:23 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp:
- * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp:
- * tests/Exposed_Policies/Policy_Verifier.cpp:
- * orbsvcs/Notify_Service/Notify_Service.cpp:
- * orbsvcs/ImplRepo_Service/Options.h:
- * orbsvcs/ImplRepo_Service/Options.cpp:
- * orbsvcs/tests/Event/lib:
- * orbsvcs/tests/Event/Basic/Observer.cpp:
- * orbsvcs/tests/Event/Basic/BCast.cpp:
- * orbsvcs/tests/Event/Basic/Random.cpp:
- * orbsvcs/tests/Event/Performance/Connect.cpp:
- * orbsvcs/tests/Event/Performance/Inversion.cpp:
- * orbsvcs/tests/CosEvent/Basic/Random.cpp:
- * orbsvcs/tests/Trading/TT_Info.cpp:
- * orbsvcs/tests/Notify/Basic/LifeCycleTest.cpp:
- * orbsvcs/tests/Notify/Basic/ConnectDisconnect.cpp:
- * orbsvcs/tests/Notify/Basic/IdAssignment.cpp:
- * orbsvcs/tests/Notify/Basic/Events_Test.cpp:
- * orbsvcs/tests/Notify/Basic/AdminProperties_Test.cpp:
- * orbsvcs/tests/Notify/Basic/Simple.cpp:
- * orbsvcs/tests/Notify/Basic/Updates.cpp:
- * orbsvcs/tests/Notify/performance-tests/RedGreen/RedGreen_Test.cpp:
- * orbsvcs/tests/Notify/performance-tests/Throughput/Throughput.cpp:
- More const char * fixes.
-
-Sat Nov 10 23:13:37 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/tests/Security/Secure_Invocation/run_test.pl:
- * orbsvcs/tests/Security/SecurityLevel1/run_test.pl:
-
- Updated/modernized these scripts to conform to our current
- regression test script conventions.
-
-Sat Nov 10 23:06:13 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/tests/Security/Big_Request/Big_Request.dsw:
- * orbsvcs/tests/Security/Big_Request/README:
- * orbsvcs/tests/Security/Big_Request/TX_Object.idl:
- * orbsvcs/tests/Security/Big_Request/TX_Object_i.cpp:
- * orbsvcs/tests/Security/Big_Request/TX_Object_i.h:
- * orbsvcs/tests/Security/Big_Request/cacert.pem:
- * orbsvcs/tests/Security/Big_Request/client.conf:
- * orbsvcs/tests/Security/Big_Request/client.cpp:
- * orbsvcs/tests/Security/Big_Request/client.dsp:
- * orbsvcs/tests/Security/Big_Request/client_cert.pem:
- * orbsvcs/tests/Security/Big_Request/client_key.pem:
- * orbsvcs/tests/Security/Big_Request/run_test.pl:
- * orbsvcs/tests/Security/Big_Request/server.conf:
- * orbsvcs/tests/Security/Big_Request/server.cpp:
- * orbsvcs/tests/Security/Big_Request/server.dsp:
- * orbsvcs/tests/Security/Big_Request/server_cert.pem:
- * orbsvcs/tests/Security/Big_Request/server_key.pem:
-
- New test excercises the ability of the SSLIOP pluggable protocol
- to send very large requests and replies. It is intended to make
- the ORB send the message and reply in multiple parts
- (e.g. chains in a message block that fill several elements of an
- "iovec" vector to be sent through a scatter write/send
- interface). In particular, it is difficult to completely
- reproduce the semantics of the writev() system call with
- SSL_write(). As such, if the semantics are not emulated
- properly, large requests and replies will fail.
-
- All that is really done is to send a 3MB octet sequence as an
- "in" argument, and receive the same 3MB octet sequence from the
- server through an "out" argument.
-
- The initial version of this test was contributed by Andrew
- Finnell. Additional modifications (simplifications,
- improvements, etc) were made by the DOC Group prior to inclusion
- in the TAO distribution.
-
-Sat Nov 10 18:50:40 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.h (preconnect):
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.cpp (preconnect):
-
- Removed this no-op implementation. Just use the one in the
- IIOP_Connector base class.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.cpp
- (create_shared_profile):
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp (connect):
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Factory.cpp:
-
- Use IOP::TAG_INTERNET_IOP as the profile tag instead of
- TAO_TAG_IIOP_PROFILE. The former is more technically correct.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.h:
-
- Correct TAO_SSLIOP_Connector class documentation.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp
- (handle_input, handle_output):
-
- Force the connection handler to be called before waiting for
- additional events if there is still data in OpenSSL's internal
- buffers by returning a value greater than one. That buffer must
- be flushed before additional events on the SSLIOP handle can be
- polled.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp (send_i):
-
- Pass the timeout value to the ACE_SSL_SOCK_Stream::sendv()
- method in order to support timeouts.
-
- (register_handler_i):
-
- Reverted code that registered a reactor and a handler with the
- underlying ACE_SSL_SOCK_Stream instance. It is no longer
- needed.
-
-Sat Nov 10 19:08:06 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tao/Strategies/SHMIOP_Factory.cpp (init):
- * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp (init):
- * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp (init):
- Added some more fixes for the "const" changes to
- ACE_Arg_Shifter. Thanks to Craig Rodrigues for providing these.
-
-Sat Nov 10 16:31:10 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * tao/ORB_Core.cpp (init):
- Did some checking before actually changing the default value
- of the TAO_ORB_Parameters::default_init_ref_. Was doing wrong
- things when this checking wasnt done.
-
- * tao/MCAST_Parser.cpp :
- Modified to include the default port values for the services
- other than Naming Service. Previously, irrespective of the
- service, the default port for any multicast service was made the
- same as that for Naming Service. But, this is not maintaining
- backward compatibility for other services. So, the default
- multicast port now is dependent on the service being run.
-
- Thanks to Michael Sawczyn <msawczyn@columbus.rr.com> for
- reporting the bug.
-
-Sat Nov 10 15:31:15 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * docs/Options.html :
- Added documentation about mcast parser and the new format of
- ORBMulticastDiscoveryEndpoint.
-
- * tao/ORB_Core.cpp
- Modified the format of the value that is passed to the
- -ORBMulticastDiscoveryEndpoint ORB option. One can also pass the
- the name of the network interface that they want the multicast
- service to be running on. The MulticastDiscoveryEndpoint can be
- in the format mcast_address:port@nic_name. Backward
- compatibility is also preserved. So, in case you dont need to
- choose the nic, you could use the previous format of
- mcast_address:port also. All this is specified in the comments.
-
- * orbsvcs/orbsvcs/IOR_Multicast.h :
- * orbsvcs/orbsvcs/IOR_Multicast.cpp :
- Added support so that if a nic name has also been in the
- mcast_addr that is passed to TAO_IOR_Multicast::init method,
- the nic name is also passed to the subscribe call.
-
-Sat Nov 10 08:58:06 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Event/EC_Sched_Factory.cpp:
- * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp:
- * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp:
- * tao/TAO_Internal.cpp:
- * tao/ORB_Core.cpp:
- * tao/ORB.cpp: Added "const" to char *variables that are
- initialized by ACE_Arg_Shifter methods that now return
- const char *.
-
-Thu Nov 8 15:48:11 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/ast/ast_string.cpp:
-
- Changed the format/indentation of the constructor call to
- the base class AST_Decl, so as not to confuse the configuration
- of gcc used by HP-UX 11.11. Thanks to Steve Osselton
- <steve@prismtechnologies.com> for reporting the bug and
- suggesting the fix.
-
-Thu Nov 8 13:57:58 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Asynch_Reply_Dispatcher.cpp:
- * tao/Synch_Reply_Dispatcher.cpp:
- * tao/DynamicInterface/DII_Reply_Dispatcher.cpp (dispatch_reply):
- Fixed a leak. The leak was occuring because of a unreleased
- datablock.
-
- The Reply Dispatchers are created by the invocation object on
- the stack for every invocation. Once the invocation is done,
- destructor takes care of deleting the datablock into which the
- incoming reply was copied, if it was created on the heap. There
- was a subtle assumption made. That is, we assumed that the
- object is created and destroyed for every invocation. Under
- special conditions like the ones in BUGID 1029, the invocation
- object reuses the same object across multiple invocations. This
- leads to a memory leak as the old datablocks are not
- deleted. This fixes BUGID 1029. Thanks to Benjamin Fry
- <ben@thrownet.com> for finding this problem and giving us a
- small example to reproduce the problem. Chris Cleeland
- <cleeland@ociweb.com> made the task of fixing this quite easier
- by running leaky and providing a trace for it and thanks to him
- too.
-
- * orbsvcs/orbsvcs/FaultTolerance.bor: Added the new files.
-
-Wed Nov 7 13:20:50 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * orbsvcs/orbsvcs/Trader/Offer_Database.cpp:
-
- Check the return value of a find operation before using the
- pointer value (set by find). This was causing the Trading_Service
- to core dump in certain situations.
-
-Wed Nov 7 13:12:01 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.cpp:
-
- Use ACE_CHECK_RETURN in
- TAO_FT_Invocation_Endpoint_Selector::select_endpoint_i() instead
- of ACE_CHECK.
-
-Tue Nov 6 16:51:28 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * tao/ORB_Core.cpp :
- Fixed some memory leaks. Thanks to Ossama for finding them out.
-
- * tao/ORB.cpp (resolve_service):
- Fixed bug 1057 by rearranging the order in the
- resolve_initial_references method. The new order is such that
- everything else is checked before the defaultinitref values are
- checked.
-
- Thanks to Alex Hornby <alex@anvil.co.uk> for reporting this and
- Bruce McIntosh <Bruce.McIntosh@Australia.Boeing.com> for
- the bug report.
-
- * tao/params.cpp (TAO_ORB_Parameters):
- Removed an extra colon in the default value for default_init_ref_
- variable. The extra colon lead to a position where the ttl value
- is set to ':'.
- Thanks to Mark Laffoon <mark.laffoon@burning-glass.com> for
- reporting this.
-
-Mon Nov 5 06:51:16 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Trader/Trader_Utils.cpp (copy_in_follow_option):
- Added casts to the ternary operators to work around bugs with
- HP/UX 11. Thanks to Steve Osselton
- <steve@prismtechnologies.com> for reporting this.
-
- * utils/IOR-parser/ior-handler.{h,cpp}: Changed struct IOR to
- IOR_Manager to avoid clashes with macros named IOR on HP/UX.
- Thanks to Steve Osselton <steve@prismtechnologies.com> for
- reporting this.
-
- * orbsvcs/orbsvcs/Concurrency/CC_LockSet.h: #undef the lock_held
- macro to work around clashing macros on HP/UX. Thanks to Steve
- Osselton <steve@prismtechnologies.com> for reporting this.
-
-Mon Nov 5 13:53:21 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * TAO_IDL/include/idl_defines.h:
- * orbsvcs/orbsvcs/AV/RTCP.cpp:
-
- Remove warnings for 64-bit HP-UX builds.
-
-Mon Nov 5 13:08:29 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * docs/tutorials/Quoter/AMI/Stock_i.h:
- * docs/tutorials/Quoter/Naming_Service/Stock_i.h:
- * docs/tutorials/Quoter/On_Demand_Activation/Stock_i.h:
- * docs/tutorials/Quoter/Simple/Impl-Repo/Stock_i.h:
- * docs/tutorials/Quoter/Simple/ImprovedServer/Stock_i.h:
- * docs/tutorials/Quoter/Simple/Persistent/Stock_i.h:
- * docs/tutorials/Quoter/Simple/Server/Stock_i.h:
-
- Added a check to not use the std::string if on HP-UX and not
- using the standard C++ library.
-
- * examples/Load_Balancing/run_test.pl:
- * examples/POA/DSI/run_test.pl:
- * examples/Quoter/run_test.pl:
- * examples/Simple/time/run_test.pl:
- * examples/Simple/time-date/run_test.pl:
- * orbsvcs/tests/AVStreams/Asynch_Three_Stage/run_test.pl:
- * orbsvcs/tests/AVStreams/Component_Switching/run_test.pl:
- * orbsvcs/tests/AVStreams/Pluggable/run_test.pl:
- * orbsvcs/tests/AVStreams/Simple_Three_Stage/run_test.pl:
- * orbsvcs/tests/AVStreams/Simple_Two_Stage/run_test.pl:
- * orbsvcs/tests/EC_Custom_Marshal/run_test.pl:
- * orbsvcs/tests/EC_Throughput/run_test.pl:
- * orbsvcs/tests/Event_Latency/run_test.pl:
- * orbsvcs/tests/ImplRepo/locked/run_test.pl:
- * orbsvcs/tests/Property/run_test.pl:
- * orbsvcs/tests/Simple_Naming/run_test.pl:
- * tests/DSI_Gateway/run_test.pl:
- * tests/InterOp-Naming/run_test.pl:
- * tests/Leader_Followers/run_test.pl:
- * tests/Nested_Event_Loop/run_test.pl:
-
- Increase wait time for startup of servers. Slower machines have
- problems running the tests with such stringent time constraints.
-
-Mon Nov 5 13:07:24 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/IDL_Test/typedef.idl:
-
- Changed declaration names to strings less likely to have
- a name clash with a system or runtime variable name. Thanks
- to Steve Osselton <steve@prismtechnologies.com> for reporting
- such an occurrence on HP-UX 11.11.
-
- * TAO_IDL/driver/drv_preproc.cpp:
-
- Added format strings to ACE_ERROR macros that I overlooked
- in the last checkin of changes to this file. Thanks to
- Chris Kohlhoff <kohlhoff@pop.ihug.com.au> for sending these
- in.
-
-Mon Nov 5 12:56:15 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * orbsvcs/orbsvcs/Concurrency/CC_LockSet.h:
-
- #undef the lock_held symbol to avoid build problems on
- HP-UX 11.11.
-
-Mon Nov 5 19:23:03 2001 Pradeep Gore <pradeep@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Notify/Notify_Default_EMO_Factory.cpp:
- * orbsvcs/orbsvcs/Notify/Notify_ProxySupplier_T.cpp:
- Corrected formatting in ACE_DEBUG.
- * orbsvcs/orbsvcs/Notify/Notify_ID_Pool_T.cpp:
- Corrected to use prefix++ operation in get() method.
- * orbsvcs/orbsvcs/Notify/Notify_ProxyPushSupplier_i.cpp:
- * orbsvcs/orbsvcs/Notify/Notify_StructuredProxyPushSupplier_i.cpp:
- Call shutdown to disconnect from unresponsive consumers.
- Thanks to Alex Hornby <alex.anvil.co.uk> for providing the fixes.
-
-Sun Nov 4 09:43:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Makefile.FaultTolerance: Updated dependencies.
- * orbsvcs/orbsvcs/FaultTolerance/FT_Endpoint_Selector_Factory.h:
- * orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.h:
- Added TAO_FT_Export to the class declarations. The export
- directives were wrong. This should set the build problems on
- Win2K right.
-
-Fri Nov 2 09:07:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Fault_Tolerance.dsp: Added the new files.
-
-Fri Nov 2 07:05:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Invocation.h:
- * tao/Invocation.cpp: Added a new method reset_states () in
- TAO_GIOP_Twoway_Invocation class. This method, as the name
- indicates, is used to reset the state of the Invocation
- object. This is specifically useful for something like the FT
- service, which tries connecting to a secondary incase of a
- failure using the same invocation object. Using the same object
- to make the next invocation could lead to carrying over some of
- the states which is not desired.
-
- * tao/Stub.i: Added comments around code that would no longer be
- used. The FT service was using this. Just leaving the code there
- for the time being, till 1.2.1 goes out.
-
- * tao/LF_Event.h:
- * tao/LF_Event.inl: Added a method reset_state (). This method
- just resets the state to the said state without caring about the
- history of states. This is needed if the same invocation object
- is used to connect to a different transport. The history of the
- states in the LF_Event, doesnt help. The way LF_Event remembers
- the states is needed for the life time of a single invocation
- object (read as one invocation). But that will not help if the
- same object reconnects to a different target to which the
- invocation is *not* forwarded.
-
- * orbsvcs/orbsvcs/FaultTolerance/FT_Endpoint_Selector_Factory.cpp:
- * orbsvcs/orbsvcs/FaultTolerance/FT_Endpoint_Selector_Factory.h:
- * orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.h:
- * orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.cpp:
- * orbsvcs/orbsvcs/FaultTolerance/FT_Invocation_Endpoint_Selectors.inl:
- Added an endpoint selector factory. The factory creates the
- endpoint selectors. The endpoint selectors now detect the right
- endpoints to be used with every invocation. The implementation
- is in line with RTCORBA and ORB core's way of selecting
- endpoints. Added a few optimizations, wherein we dont hold any
- lock if the primary is the first profile but holds a lock if the
- primary is in the subsequent profiles. The holding of a lock is
- done only once in the life time of the endpoint.
-
- * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Activate.cpp: Added
- FT_Endpoint_Selector_Factory to the list of services.
-
- * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.h:
- * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.cpp: The old
- implementations in select_profile () and reselect_profile ()
- will be deprecated after 1.2.1. The definition and declaration
- just exists for the sake of backward compatibility. Will be gone
- anyway.
-
- * orbsvcs/orbsvcs/Makefile.FaultTolerance: Added the new files.
-
- Thanks to Russ Carter <rcarter@pinyon.org> who by reporting a
- bug motivated this whole set of changes.
-
-
-Thu Nov 1 12:27:28 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Trader/Trading_Loader.cpp: The parens were
- messed up... Thanks to Mark Laffoon
- <mark.laffoon@burning-glass.com> for reporting this.
-
-Tue Oct 30 17:40:06 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tao/IOPC.h: #undef the IOR symbol to protect against weird
- clashes on HP/UX 11.11. Thanks to Steve Osselton
- <steve@prismtechnologies.com> for reporting this.
-
-Thu Nov 1 14:01:40 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/driver/drv_preproc.cpp:
-
- Added fix sent in by Chris Kohlhoff <kohlhoff@pop.ihug.com.au>
- for the Borland preprocessor. Previously it sent everything
- (output, errors and warnings) to stdout, so if there was a
- failure it would be a silent one. This fix enables the output
- to be sent to an arbitrary file, leaving errors and warnings
- in stdout. There is a corresponding fix to config-win32-borland.h
- to ACE_CC_PREPROCESSOR_ARGS enabling the recognition of the
- filename.
-
-Thu Nov 1 14:01:15 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tao/IIOP_Acceptor.cpp:
- * tao/Strategies/DIOP_Acceptor.cpp:
-
- Fixed a bug in *_Acceptor::probe_interfaces(). Initialize the
- array of char*'s to 0, directly after allocation. Thanks to Mike
- Letchworth <mletchwo@cisco.com> for reporting this.
-
-Wed Oct 31 17:32:38 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * orbsvcs/IFR_Service/IFR_BaseS.cpp:
- * orbsvcs/IFR_Service/IFR_BasicS.cpp:
- * orbsvcs/IFR_Service/IFR_ComponentsS.cpp:
- * orbsvcs/IFR_Service/IFR_ExtendedS.cpp:
-
- Patched the gperf-generated code in these files using the
- current version of gperf (a bug fix to gperf was checked in
- a short while back). Specifically, an optable entry for the
- _interface() method of CORBA::SequenceDef was missing. Thanks
- to Stuart Jones <sjones@clcsmail.ksc.nasa.gov> Chad Elliott
- <elliott_c@ociweb.com> and Phil Mesnier <mesnier_p@ociweb.com>
- for reporting this bug. This fix closes [BUGID:1076].
-
-Wed Oct 31 15:41:21 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Portable_Interceptors/PICurrent/test_i.cpp (invoke_me):
-
- Fixed incorrect ACE_TRY_CHECK macro where ACE_TRY_CHECK_EX macro
- was expected.
-
-Tue Oct 30 15:34:32 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/skip.cpp:
-
- TAO_Marshal_Union::skip() fails if a match is found neither with
- one of the union's labeled members or with an explicit default
- case. However, a union can also have an implicit default case, so
- the code has been changed to return
- CORBA::TypeCode::TRAVERSE_CONTINUE if neither of the first two
- cases are found to hold. There is no need for further checking
- at this point because the only CORBA-compliant way for the
- discriminator to be set to such value is through the union's
- _default() method. If it is impossible for a union to have an
- implicit default case (for example, an enum or boolean discriminator
- where all possible values are used as labels), the _default()
- method is not generated by the IDL compiler. Thanks to
- Ioulia Passynkova <ioulia.passynkova@nettest.com> for sending in the
- example that uncovered this bug.
-
- * TAO_IDL/be/be_visitor_array/array.cpp:
-
- Add missing '_var' to some declarations in code generated for
- an array of typedef'd interfaces. Thanks to Dmitry
- Goldshtain <goldstein@arcormail.de> for pointing out the bug.
-
-Sat Oct 27 13:49:14 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Invocation_Endpoint_Selectors.h (endpoint_from_profile):
- * tao/Invocation_Endpoint_Selectors.cpp: Added a new method in
- TAO_Default_Endpoint_Selector. This method extracts an endpoint
- from a profile and tests its validity. This method is just an
- abstraction to reuse code from the inherited classes.
-
- * tao/Stub.h:
- * tao/Stub.i: Added a method to return the profile_lock_ptr. This
- is useful for modules that are outside the ORB and requires
- parsing the list of profiles to pick one for invocation, like
- the FT service.
-
-Wed Oct 24 14:51:03 2001 Angelo Corsaro <corsaro@doc.ece.uci.edu>
-
- * examples/Quoter/Client.bor:
- * examples/Quoter/Server.bor:
- * examples/Quoter/Generic_factory.bor:
- * examples/Quoter/Factory_finder.bor:
-
- Updated makefiles to use ACE_ROOT instead of TAO_ROOT
- environment variable when referring to the include paths. Thanks
- to Christopher Kohlhoff <chris@kohlhoff.com> and Johnny
- Willemsen" <johnny_willemsen@planet.nl>, for traking this
- problem.
-
- * orbsvcs/orbsvcs/AV/AV_Pluggable_Framework.html:
-
- Fixed Fuzzes.
-
-Wed Oct 24 14:12:29 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/PortableInterceptor.cpp:
- * tao/PortableInterceptor.i:
-
- Removed these vestigial files. They were split up into client
- and server side files months ago, and are no longer used.
-
-Tue Oct 23 18:55:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/examples/Security/Send_File/Makefile: Updated
- dependencies.
-
-Tue Oct 23 09:49:01 2001 Angelo Corsaro <corsaro@cs.wustl.edu>
-
- * examples/Quoter/Client.bor:
- * examples/Quoter/Server.bor:
- * examples/Quoter/Generic_factory.bor:
- * examples/Quoter/Factory_finder.bor:
-
- Changed CPPDIR from ".;.." to "." this should fix the build
- problem. Thanks to Jonny Willemsen for suggesting this fix.
-
-Mon Oct 22 23:48:13 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/AV/default_resource.cpp:
-
- Fixed compile errors on Win2K.
-
-Mon Oct 22 18:54:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/AV.dsp:
- * orbsvcs/orbsvcs/AV_Static.dsp: Added missing files. Should fix
- build problems in Win2K builds.
-
-Mon Oct 22 15:41:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Endpoint.cpp (is_equivalent):
- * tao/Strategies/DIOP_Endpoint.cpp: Instead of checking the
- hostname in the above method, we check the ip addresses. This
- solves the following problems
-
- (1) If the a connection is created using an IOR to a host A
- using a dotted decimal address and at some later point in
- time a corbaloc call uses the host name to resolve a service
- on the same machine, we happen to create a new connection
-
- (2) Variation of 1, if the initial connection is established
- using a fully qualified name and the corbaloc uses a partial
- name.
-
- (3) If an alias'ed name is used.
-
- Thanks to Jonathan Reis <reis@stentor.com>, Wayne Erchak
- <wayne@stentor.com> and Chris Hughes <chughes@stentor.com> for
- finding this one out and providing a patch.
-
-
-Mon Oct 22 07:54:14 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/tests/Security/SecurityLevel1/makefile:
- * orbsvcs/tests//Security/Secure_Invocation/Makefile:
- Updated dependencies.
-
-Mon Oct 22 14:21:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * tao/orbsvcs/LifeCycle_Service/*.bor
- * tao/orbsvcs/Makefile.bor
- Added BCB makefiles for this service
-
- * tao/examples/Quoter/*.bor
- * tao/examples/Makefile.bor
- Added BCB makefiles for this example
-
-Fri Oct 19 13:35:18 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_codegen.cpp:
-
- Added -w-sig to the #pragma options for the Borland compiler
- in generated stub source code. This removes a warning when
- setting the byte order of an AMI exception holder, which
- involves an implicit conversion from an int to a
- CORBA::Boolean, which other compilers seem to have no
- problem with. Thanks to Albert Wijnja <Albert.Wijnja@meco.nl>
- for finding the problem and the fix.
-
- * tao/append.cpp (TAO_Marshal_Sequence::append):
-
- Modified method to return immediately after writing the sequence
- length, if it is 0. The corresponding skip method does this,
- and the discrepancy was causing a problem in the case where
- we have an Any containing a struct containing a sequence of
- an 8-byte type, and then other members. The demarshaling of
- the subsequent members failed because, when marshaling the
- sequence, the stream had been 8-byte aligned, but not when
- demarshaling. Of course, this will work sometimes, if the
- 4-byte and 8-byte boundary happen to be the same. Thanks to
- Greg Hall <Greg.Hall@Australia.Boeing.com> for reporting
- the CORBA::MARSHAL exception, and for sending in an example.
-
-Fri Oct 19 12:14:16 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * orbsvcs/IFR_Service/tao_ifr.cpp:
-
- The tao_ifr backend initializes an ORB, and any -ORBxxx
- args passed in are stripped away by ORB_init(). However,
- if tao_ifr is processing more than one file at a time, the
- child process(es) are spawned AFTER this happens, (for a
- reason too lengthy to explain here) and so they are not seeing
- these args. So a method was added to save the -ORBxxx args
- before the backend is initialized, concatentate them, and
- pass them to DRV_fork() where the rest of the command line
- args are appended before being passed to ACE_Process::spawn().
-
-Wed Oct 17 18:59:53 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * tao/Makefile.bor:
- * tao/IFR_Client/Makefile.bor:
- * tao/Strategies/Makefile.bor:
- * tao/TypeCodeFactory/Makefile.bor:
- * orbsvcs/orbsvcs/Svc_Utils.bor:
- Fixed lists of installed include files to add some missing
- entries. Thanks to Charles Frasch <cfrasch@spawar.navy.mil>
- for reporting this.
-
-Wed Oct 17 12:22:09 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp
- (add_transport_to_cache, process_listen_point_list):
-
- Set the SSL port in the TAO_SSLIOP_Endpoint. Previously we were
- relying on the port that was set in the underlying
- TAO_IIOP_Endpoint, which is not technically correct. This fix
- also addresses a bi-dir GIOP over SSLIOP issue.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp (get_listen_point):
-
- Synchronized this method implementation with the more up-to-date
- IIOP version.
-
-Wed Oct 17 11:01:19 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Makefile.av: Generated dependency. This should
- hopefully fix the builds on many platforms.
-
-Tue Oct 16 11:19:17 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/AV/Resource_Factory.h:
- * orbsvcs/orbsvcs/AV/default_factory.h:
- * orbsvcs/orbsvcs/AV/default_factory.cpp:
- * orbsvcs/orbsvcs/AV/AV_Core.h:
- * orbsvcs/orbsvcs/AV/AV_Core.cpp:
- * orbsvcs/orbsvcs/AV/Makefile.av:
-
- Initially the AV Streams framework was pluggable for default
- transport and flow protocols. Made it truly pluggable for new
- transport and flow protocols too. The Resource_Factory abstract
- class and the default_resource factory provide the means to load
- pluggable transport and flow protocols through the
- -AVTransportFactory and -AVFlowProtocolFactory options
- respectively.
-
- * orbsvcs/orbsvcs/AV/AV_Pluggable_Framework.html:
-
- Added documentation for implementing the AV Streams Pluggable
- Protocol.
-
- * orbsvcs/orbsvcs/AV/UDP.cpp:
- * orbsvcs/orbsvcs/AV/TCP.cpp:
- * orbsvcs/orbsvcs/AV/sfp.cpp:
- * orbsvcs/orbsvcs/AV/QoS_UDP.cpp:
- * orbsvcs/orbsvcs/AV/RTP.cpp:
- * orbsvcs/orbsvcs/AV/RTCP.cpp:
-
- Changed the lib in ACE_FACTORY_DEFINE to the TAO_AV lib.
-
-Mon Oct 15 22:41:17 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * tao/RTCORBA/Makefile.bor:
- * tao/RTPortableServer/Makefile.bor:
- * orbsvcs/orbsvcs/FaultTolerance.bor:
- * orbsvcs/orbsvcs/LoadBalancing.bor:
- * orbsvcs/IFR_Service/IFR_Service.bor:
- * orbsvcs/IFR_Service/TAO_IFR_BE_DLL.bor:
- * orbsvcs/IFR_Service/tao_ifr.bor:
- * orbsvcs/ImplRepo_Service/ImplRepo.bor:
- * orbsvcs/ImplRepo_Service/tao_imr.bor:
- * orbsvcs/LoadBalancer/Makefile.bor:
- Added some Borland makefile support for minimum CORBA, enabled
- by setting an environment variable MINIMUM_CORBA to 1. Thanks to
- Adrian Mercieca <adrian@anvilmalta.com> for motivating this.
-
-Fri Oct 12 00:42:42 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/AVStreams_i.cpp:
- * orbsvcs/orbsvcs/AV/AVStreams_i.i:
- Improve debugging statements
-
- * orbsvcs/orbsvcs/AV/UDP.cpp:
- * orbsvcs/orbsvcs/AV/UDP.h:
- For UDP pluggable protocol, add capability to
- set Diffserv Codepoint and Explicit Congestion Notification
- (ECN) bits in IP TOS (Type of Service) field.
-
-Wed Oct 10 17:12:04 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * tao/ORB_Core.cpp :
- Fixed backward compatibility for the multicast services when the
- ORBNameServicePort is used.
-
- Thanks to Jeffrey Wilder <jwilder@dsrnet.com> for pointing this
- out.
-
-Tue Oct 9 17:46:07 2001 Angelo Corsaro <corsaro@doc.ece.uci.edu>
-
- * orbsvcs/tests/AVStreams/Modify_QoS/receiver.h:
- * orbsvcs/tests/AVStreams/Modify_QoS/receiver.cpp:
- * orbsvcs/tests/AVStreams/Modify_QoS/sender.cpp:
-
- Added missing $Id$. This will fix the FUZZ build.
-
-Tue Oct 09 14:00:46 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp:
- Changed to wrap the two ACE_Barriers in a struct instead of
- using an array as egcs can not properly initialize the array.
-
-Tue Oct 9 14:20:51 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/tests/AVStreams/Modify_QoS/receiver.cpp:
- * orbsvcs/tests/AVStreams/Modify_QoS/receiver.h:
- * orbsvcs/tests/AVStreams/Modify_QoS/sender.cpp:
- * orbsvcs/tests/AVStreams/Modify_QoS/sender.h:
- * orbsvcs/tests/AVStreams/Modify_QoS/Makefile:
- * orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/sender.cpp:
- * orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/sender.h:
- * orbsvcs/tests/AVStreams/Simple_Two_Stage_With_QoS/Makefile:
- Fix exception specifications for modify_QoS() so that they match
- IDL generated base class. Fix typos, update Makefile dependencies.
-
-Mon Oct 08 11:43:05 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * performance-tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp:
- Added another barrier to synchronize shutdown. Thanks to Frank
- Wolf <fwolf@gum.de> for reporting the problem.
-
-Sun Oct 07 18:19:14 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/PortableServer/ServerRequestInfo.cpp
- (target_most_derived_interface):
-
- Fixed erroneous minor code. The minor code is an OMG assigned
- one, so it must be logically or'ed with the OMG's vendor minor
- code ID.
-
-Sun Oct 7 04:00:00 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * tao/TypeCodeFactory/Makefile:
-
- Changed a wrong "-I" in the linker flags to "-L".
-
-Sat Oct 06 23:41:11 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp
- (register_handler_i):
-
- Set the reactor and handler in the ACE_SSL_SOCK_Stream so that
- the reactor is notified if data is still pending for read or
- write. This is necessary since SSL is record-oriented, and the
- underlying SSL implementation may buffer data. [Bug 943]
-
-Sat Oct 6 11:14:21 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/MessagingC.h: Moved the #if defines before #include
- "ace/post.h". Thanks to Adrian Mercieca <adrian@anvilmalta.com>
- for reporting the problem and Chris Kohlhoff for verifying the
- fix.
-
-Fri Oct 5 18:56:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp:
- * TAO_IDL/driver/drv_preproc.cpp:
- * TAO_IDL/fe/idl.yy:
- * TAO_IDL/fe/y.tab.cpp: Reverted the changes made in "Fri Oct 5
- 16:44:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>"
-
-Fri Oct 5 17:42:53 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * TAO_IDL/include/utl_identifier.h:
- * TAO_IDL/include/utl_idlist.h:
- * TAO_IDL/include/utl_indenter.h:
- * TAO_IDL/include/utl_scope.h:
- * TAO_IDL/include/utl_string.h:
- * TAO_IDL/include/utl_strlist.h:
- * TAO_IDL/include/utl_tmpl/utl_idlist.h:
- * TAO_IDL/include/utl_tmpl/utl_strlist.h:
- * TAO_IDL/util/utl_identifier.cpp:
- * TAO_IDL/util/utl_idlist.cpp:
- * TAO_IDL/util/utl_indenter.cpp:
- * TAO_IDL/util/utl_scope.cpp:
- * TAO_IDL/util/utl_string.cpp:
- * TAO_IDL/util/utl_strlist.cpp:
- * TAO_IDL/util/utl_tmpl/utl_idlist.cpp:
- * TAO_IDL/util/utl_tmpl/utl_strlist.cpp: Some more changes of
- ostream to ACE_OSTREAM_TYPE
-
-Fri Oct 5 16:44:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp:
- * TAO_IDL/driver/drv_preproc.cpp:
- * TAO_IDL/fe/idl.yy:
- * TAO_IDL/fe/y.tab.cpp: Patches from Russ Noseworthy that were
- needed to compile with GCC 2.95.3 which properly supported
- namespace std (Apparently Russ seems to have a modified compiler
- that supports this)
-
-Fri Oct 5 16:03:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * TAO_IDL/include/ast_argument.h:
- * TAO_IDL/include/ast_array.h:
- * TAO_IDL/include/ast_attribute.h:
- * TAO_IDL/include/ast_constant.h:
- * TAO_IDL/include/ast_decl.h:
- * TAO_IDL/include/ast_enum.h:
- * TAO_IDL/include/ast_enum_val.h:
- * TAO_IDL/include/ast_exception.h:
- * TAO_IDL/include/ast_expression.h:
- * TAO_IDL/include/ast_field.h:
- * TAO_IDL/include/ast_interface.h:
- * TAO_IDL/include/ast_interface_fwd.h:
- * TAO_IDL/include/ast_module.h:
- * TAO_IDL/include/ast_native.h:
- * TAO_IDL/include/ast_operation.h:
- * TAO_IDL/include/ast_predefined_type.h:
- * TAO_IDL/include/ast_root.h:
- * TAO_IDL/include/ast_sequence.h:
- * TAO_IDL/include/ast_string.h:
- * TAO_IDL/include/ast_structure.h:
- * TAO_IDL/include/ast_typedef.h:
- * TAO_IDL/include/ast_union.h:
- * TAO_IDL/include/ast_union_bran.h:
- * TAO_IDL/include/ast_union_label.h:
- * TAO_IDL/ast/ast_array.cpp:
- * TAO_IDL/ast/ast_attribute.cpp:
- * TAO_IDL/ast/ast_constant.cpp:
- * TAO_IDL/ast/ast_decl.cpp:
- * TAO_IDL/ast/ast_enum.cpp:
- * TAO_IDL/ast/ast_enum_val.cpp:
- * TAO_IDL/ast/ast_exception.cpp:
- * TAO_IDL/ast/ast_expression.cpp:
- * TAO_IDL/ast/ast_field.cpp:
- * TAO_IDL/ast/ast_interface.cpp:
- * TAO_IDL/ast/ast_interface_fwd.cpp:
- * TAO_IDL/ast/ast_module.cpp:
- * TAO_IDL/ast/ast_native.cpp:
- * TAO_IDL/ast/ast_operation.cpp:
- * TAO_IDL/ast/ast_predefined_type.cpp:
- * TAO_IDL/ast/ast_root.cpp:
- * TAO_IDL/ast/ast_sequence.cpp:
- * TAO_IDL/ast/ast_string.cpp:
- * TAO_IDL/ast/ast_structure.cpp:
- * TAO_IDL/ast/ast_typedef.cpp:
- * TAO_IDL/ast/ast_union.cpp:
- * TAO_IDL/ast/ast_union_branch.cpp:
- * TAO_IDL/ast/ast_union_label.cpp: Changed instances of ostream to
- ACE_OSTREAM_TYPE. Thanks to Russ Noseworthy for suggesting this.
-
-Fri Oct 5 14:44:44 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * be/be_visitor.cpp:
- * be/be_visitor_sequence/sequence_base.cpp:
- * be/be_visitor_valuetype/valuetype_obv_ch.cpp:
- * be_include/be_visitor_sequence/sequence_base.h: Applied patches
- provided by Russ Noseworthy to fix problems with generated code
- in OBV.
-
-Fri Oct 5 14:31:43 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.h: Added a forward
- declaration for class ACE_Command_Base.
- * orbsvcs/orbsvcs/ESF/ESF_Delayed_Changes.cpp: Included the header
- file ace/Functor.h. These were part of the patches that Russ
- Noseworthy <j.russell.noseworthy@objectsciences.com>
- provided. He had to to use this patch to get it compiling in his
- environment.
-
-Fri Oct 05 05:58:58 2001 Balachandran <bala@cs.wustl.edu>
-
- * TAO version 1.2 released.
-
-Thu Oct 4 18:06:59 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/DynamicAny/DynCommon.cpp (insert_wchar):
-
- Added a missing CORBA::Any::from_wchar to the actual insertion.
- Thanks to Sunny Leung <sleung@opentext.com> for pointing this out.
- This fix closes [BUGID:1048].
-
-Thu Oct 4 10:11:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport_Cache_Manager.cpp (purge_entry_i): Added a check
- for a null in the above method. This incidentally close
- #1046. Thanks to Donald Acton <acton@opentext.com> for
- reporting this.
-
-Tue Oct 2 11:26:27 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * orbsvcs/examples/Security/Send_File/server_key.pem:
- * orbsvcs/examples/Security/Send_File/server_cert.pem:
- * orbsvcs/examples/Security/Send_File/client_key.pem:
- * orbsvcs/examples/Security/Send_File/client_cert.pem:
- * orbsvcs/examples/Security/Send_File/cacert.pem:
- Regenerated as the previous ones have expired.
-
-Tue Oct 2 12:13:15 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp: If the read message is less than the
- size of the GIOP message, then we make the missing_data as -1 so
- that the message would be automatically queued. This should fix
- the Blocking_Sync_None tests hanging once in a while on
- guajira.cs builds.
-
-Tue Oct 2 11:05:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp: Removed a debug statement that made no
- sense.
-
-Mon Oct 1 14:24:04 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/Options.html: Changed the default in the
- -ORBTransportMuxStrategy option. We have been using Muxed for
- sometime now and it seems to be going fine. In all probability
- we would go for x.2 with this option. Thanks to Ossama for
- poiting this out.
-
-Mon Oct 1 07:49:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/SHMIOP_Endpoint.i:
- * tao/Strategies/DIOP_Endpoint.i: Applied the same changes from
- this entry "Sat Sep 29 18:07:55 2001 Ossama Othman
- <ossama@uci.edu>" to the above classes.
-
-Mon Oct 1 07:10:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Connection_Handler.cpp:
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp:
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp
- One of the long standing race conditions that came to the fore
- recently. The problem was that we were returning a -1 to the
- reactor if the number of upcalls dropped to 0. This was wrong
- for many reasons with the latest set of changes for bug 575,
- which enhanced the concurrency on the server side. Imagine a
- thread being unblocked by notify () dispatching a
- request. During the process the thread could have resumed the
- handler. Another thread in the Reactor could come around and
- tried closing the connection. Before the thread from the Reactor
- finishes with the cleanup job, the thread that was dispatching
- because of notify () could return dropping the upcall count. It
- would also return with a -1 to the reactor. At this stage we
- would have two threads trying to do a handle_close () which
- could be deleterious. We now return with a 0 to the reactor
- after we handle_close_i (). We are sure that with handle_close_i
- () the handlers are closed and returning a 0 would be harmless.
-
-
-Sun Sep 30 09:26:30 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/File_IO/server.cpp (main):
-
- Fixed compile-time problems found in VxWorks builds. VxWorks
- does not define the POSIX file mode contants.
-
- (svc):
-
- Print the exception if one is caught and return -1. An
- exception should be considered an error in this case.
-
-Sun Sep 30 09:08:59 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/tests/Security/MT_SSLIOP/client.dsp:
- * orbsvcs/tests/Security/MT_SSLIOP/server.dsp:
-
- Added missing custom build step for the test IDL file. Fixes
- builds on Windows.
-
-Sat Sep 29 18:58:06 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.cpp
- (TAO_SSLIOP_Endpoint):
-
- Invalidate the object_addr until the first attempt to use it is
- made. Needed for the double checked locking optimization
- described below.
-
- (addr_to_string):
-
- Fixed this method so that it returns the correct stringified
- address. Previously it was returning the stringified non-SSL
- INET_Addr instead of the stringified SSL INET_Addr.
-
-Sat Sep 29 18:07:55 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/IIOP_Endpoint.i (object_addr):
-
- Use the double-checked locking optimization to remove a lock
- from the critical path. The lock will only be acquired/released
- once per initialization of the IIOP_Endpoint instead of
- once per invocation of this method.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.i (object_addr):
-
- Removed erroneous comment about deadlocking due to acquiring a
- lock in this method. The underlying IIOP_Endpoint and the
- SSLIOP_Endpoint each have their own lock instance. No deadlock
- will occur.
-
- Acquire a lock before setting the port number in the
- SSLIOP_Endpoint. Double checked locking is used to prevent the
- lock from being acquired during each invocation. Fixes a race
- condition. [Bug 943]
-
-Sat Sep 29 14:06:30 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/tests/Security/MT_SSLIOP/MT_SSLIOP.dsw:
- * orbsvcs/tests/Security/MT_SSLIOP/client.dsp:
- * orbsvcs/tests/Security/MT_SSLIOP/server.dsp:
-
- New MSVC++ workspace/project files for this test.
-
-Fri Sep 28 15:40:26 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/ast/ast_expression.cpp:
- * TAO_IDL/be/be_constant.cpp:
-
- Fixed code generation for wstring constants. Thanks to
- Andreas Huggel <huggel_andreas@isoftel.com> for pointing
- out this problem.
-
-Fri Sep 28 13:52:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Connection_Handler.cpp (handle_input): Fixed a unused
- variable warning.
-
-Fri Sep 28 12:33:17 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp:
- * tao/IIOP_Connection_Handler.cpp (handle_close):
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp: Added some debug
- statements.
-
-Fri Sep 28 11:41:50 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/File_IO/server.cpp (main): Made the program create a big
- file for use.
-
- * tests/File_IO/big.txt: Removed the file from the repo. Thanks to
- Ossama for driving some sense in me.
-
-Fri Sep 28 10:17:24 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/Smart_Proxies/SmartProxies_Static.dsp:
-
- Fixed a setting in the release configuration.
-
-Fri Sep 28 06:17:27 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * ACE-INSTALL.html: Improved the installation instructions for BCB 4/5.
- Thanks to Chris Kohloff for contributing this and to Jan Kalin
- <jan.kalin@zag.si> for motivating this.
-
-Fri Sep 28 06:40:37 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp: Fixed a
- cut and paste error :(. This should clear of many of the
- builds.
-
-Thu Sep 27 22:26:23 2001 Ossama Othman <ossama@uci.edu>
-
- * docs/interceptors.html:
-
- The Portable Interceptors specification is now part of the CORBA
- 2.5 specification. Updated accordingly.
-
-Thu Sep 27 17:31:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Connection_Handler.cpp (handle_close):
- * tao/IIOP_Connection_Handler.h: We always depended on the
- handle_close () to cleanup memory, the cache and the
- transport. The cleanup would not start if the number of upcalls
- is greater than zero. This could create problems for multi-threaded
- cases like this one
-
- - One of the threads is woken up by the Reactor to handle
- upcalls.
-
- - After the upcall is dispatched another thread could be woken
- up to close the connection. The second thread would call
- handle_close () religiously, but cleanup wouldnt have
- occurred.
-
- We need to start cleanup only after the upcall count reaches
- 0. We now have a method handle_close_i () which does the cleanup
- activity. This method is called whenever there is a possibility
- of the upcall count reaching zero.
-
- * tao/Strategies/UIOP_Connection_Handler.h:
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * tao/Strategies/DIOP_Connection_Handler.h:
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.h:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp:
- Applied the same fix to the above protocols too.
-
-Thu Sep 27 17:12:06 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/File_IO/client.cpp:
- * tests/File_IO/server.cpp: scaled this program down as it was
- creating problems with our daily builds on many
- platforms. Retained the essence of the prgoram though. We now run
- only 2 threads on the server end 4 threads on the client
- end. We now request only 128 K of data (ie. twice the normal
- socket buffer size). Hopefully this will go well on all
- platforms.
-
-Thu Sep 27 16:23:34 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/Smart_Proxies/SmartProxies_Static.dsp:
-
- New project file.
-
- * TAOACE_Static.dsw:
-
- Added new project file to workspace. Thanks to Nicolas Vincent
- <Vincent.Nicolas@Radiometer.dk> for sending in the files.
-
-Thu Sep 27 13:11:56 2001 Bala <bala@cs.wustl.edu>
-
- * TAO version 1.1.21 released.
-
-Thu Sep 27 02:41:32 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * orbsvcs/tests/Simple_Naming/client.cpp: Improved debug
- statements. Also replace the %8.8x and ACE_OS::thr_self combo
- with %t.
-
-Wed Sep 26 15:30:31 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * performance-tests/RTCorba/Thread_Pool/client.cpp: Allow the user
- to set the invocation thread priority at thread creating time or
- after thread creation. Also improved parse_args().
-
-Tue Sep 25 23:45:30 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * performance-tests/RTCorba/Thread_Pool/client.cpp:
-
- - Include tests/RTCORBA/Linear_Priority/readers.cpp to reuse
- common file parsing code. This way we can removed the
- get_rates() function.
-
- - Invocation priorities can either be automatically
- calculated (as before) or can be explicitly specified
- through the <invocation_priorities_file> option.
-
- * performance-tests/RTCorba/Thread_Pool/server.cpp:
-
- - Include tests/RTCORBA/Linear_Priority/readers.cpp to reuse
- common file parsing code. Auto lane priorities and bands
- calculations were moved to readers.cpp.
-
- - Lane priorities and bands can either be automatically
- calculated (as before) or can be explicitly specified
- through the <bands_file> and <lanes_file> options.
-
- * performance-tests/RTCorba/Thread_Pool/empty_file
- * performance-tests/RTCorba/Thread_Pool/invocation_priorities
- * performance-tests/RTCorba/Thread_Pool/lanes
- * performance-tests/RTCorba/Thread_Pool/bands
-
- New files.
-
- * tests/RTCORBA/Linear_Priority/client.cpp (main): Renamed
- Priorities to Short_Array.
-
- * tests/RTCORBA/Linear_Priority/readers.cpp: Generalized some
- methods.
-
-Tue Sep 25 17:40:08 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/AMI_Buffering/client.cpp (run_buffer_size):
- * tests/Oneway_Buffering/client.cpp: Changed all the ACE_ERROR
- statements to ACE_DEBUG statements. Changed the ERROR in the
- debug messages as DEBUG. We know that this test shows a problem
- with the ORB/Reactor. The error statements create too much of
- noise for the builds czars todo any good work. The bug #982 and
- #1031 that has been captured in the bugzilla talks about the
- problem.
-
-Tue Sep 25 11:32:39 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tao/Strategies/advanced_resource.cpp (TAO_Resource_Factory_Changer):
-
- Last night I removed:
-
- ACE_STATIC_SVC_REQUIRE(TAO_Advanced_Resource_Factory)
-
- but forgot to add the replacement:
-
- ACE_Service_Config::process_directive (ace_svc_desc_TAO_Advanced_Resource_Factory);
-
- This caused all apps using the Advanced_Resource_Factory to
- fail.
-
-Tue Sep 25 00:17:57 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * auto_run_tests.lst: The following tests were removed from the
- single threaded run list since they call
- RT_Protocols_Hooks::get_thread_priority is not supported on
- single threaded platforms:
-
- - tests/RTCORBA/Client_Protocol
- - tests/RTCORBA/Explicit_Binding
- - tests/RTCORBA/Private_Connection
-
-Mon Sep 24 19:23:29 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tao/TAO_Internal.cpp (open_services_i):
- * tao/TypeCodeFactory/TypeCodeFactory_Adapter_Impl.cpp (Initializer):
- * tao/TypeCodeFactory/TypeCodeFactory_Loader.cpp (Initializer):
- * tao/Strategies/advanced_resource.cpp (TAO_Resource_Factory_Changer):
- * tao/RTPortableServer/RTPortableServer.cpp (TAO_RTPortableServer_Initializer):
- * tao/RTCORBA/RTCORBA.cpp (TAO_RTCORBA_Initializer):
- * tao/PortableServer/PortableServer.cpp (init):
- * tao/IORTable/IORTable.cpp (init):
- * tao/IORManipulation/IORManip_Loader.cpp (Initializer):
- * tao/IFR_Client/IFR_Client_Adapter_Impl.cpp (Initializer):
- * tao/DynamicInterface/Dynamic_Adapter_Impl.cpp (Initializer):
- * tao/DynamicAny/DynamicAny.cpp (Initializer):
- * tao/BiDir_GIOP/BiDirGIOP.cpp (Initializer):
-
- - Changed
-
- ACE_Service_Config::static_svcs ()->insert (&blah)
-
- to
-
- ACE_Service_Config::process_directive (blah)
-
- The reason for this change is that when the ORB is loaded
- into a program as a DLL through the Service Configurator,
- Service_Config::open has already been run. This prevents
- the static services in TAO to be loaded into the Service
- Repository since Service_Config::open only executes once.
- However, Service_Config::process_directive works
- irrespective of whether Service_Config::open has already
- being run.
-
- * tao/Strategies/TAO_Strategies_Internal.cpp:
- * tao/Strategies/TAO_Strategies_Internal.h:
-
- Removed unused files.
-
- * tao/Strategies/Makefile.bor:
- * tao/Strategies/Makefile:
- * tao/Strategies/TAO_Strategies.dsp:
- * tao/Strategies/TAO_Strategies_Static.dsp:
-
- Removed TAO_Strategies_Internal.
-
- * tao/Strategies/advanced_resource.h:
- "ACE_STATIC_SVC_REQUIRE(TAO_Advanced_Resource_Factory)" removed
- as it was not needed.
-
- * tao/default_resource.cpp (get_parser_names): Removed unnecessary
- lookup of parsers.
-
- * tao/orbconf.h: Removed default defines for
- TAO_DEFAULT_RESOURCE_FACTORY_ARGS,
- TAO_ADVANCED_RESOURCE_FACTORY_ARGS,
- TAO_DEFAULT_CLIENT_STRATEGY_FACTORY_ARGS, and
- TAO_DEFAULT_SERVER_STRATEGY_FACTORY_ARGS since they are we
- horribly out of date and the defaults work fine. User can still
- define them as needed.
-
- * tao/TAO_Internal.cpp:
-
- - Since TAO_DEFAULT_RESOURCE_FACTORY_ARGS,
- TAO_DEFAULT_CLIENT_STRATEGY_FACTORY_ARGS, and
- TAO_DEFAULT_SERVER_STRATEGY_FACTORY_ARGS are no longer
- defined by default, the initialization of the
- corresponding statics in TAO_Internal had to be modified.
-
- - For consistency, <server_strategy_args_> and
- <client_strategy_args_> got renamed to
- <server_strategy_factory_args_> and
- <client_strategy_factory_args_> respectively.
-
- * tao/ORB_Core.cpp: Fixed some incorrect comments.
-
- * tao/MCAST_Parser.h: Removed extra OS.h include.
-
- * examples/Simple/time-date/Time_Date.cpp: Removed extra
- TAO_Singleton.h include.
-
-Mon Sep 24 14:12:11 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * tao/MCAST_Parser.cpp (assign_to_variables):
- Modified so that if the nic address isnt specified in the mcast
- format, the kernel chooses the nic. This is because the nic is
- platform specific and we cant default it to eth0.
-
- Thanks to Ossama for pointing it out.
-
- * orbsvcs/orbsvcs/IOR_Multicast.cpp (handle_input): Added
- MCASTServer in the list of multicast services that are valid. This
- is needed for the test (orbsvcs/tests/IOR_MCAST).
-
-Mon Sep 24 12:22:32 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * tao/params.cpp:
- Made mcast://:::: as the default multicast address. This address
- will default to
- mcast://ACE_DEFAULT_MULTICAST_ADDR:
- TAO_DEFAULT_NAME_SERVER_REQUEST_PORT:eth0:1.
-
- With this change, to get the previous multicast behaviour, the user
- doesnt have to use any extra variables.
-
- * orbsvcs/tests/Simple_Naming/run_test.pl:
- Reverted the change to run_test.pl
-
-Mon Sep 24 12:17:28 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/PICurrent.cpp (~TAO_PICurrent_Impl, get_slot, set_slot):
-
- Use C-style casts to get around Sun CC 4.2 static_cast brain
- damage. Sun CC 4.2 could not handle statically casting from a
- "void *&" to a "CORBA::Any *". Thanks to Bala for the tip.
-
- Note that we could get around this problem by making the slot
- table contain CORBA::Any pointers instead void pointers, but
- that would increase footprint.
-
-Mon Sep 24 11:47:34 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/ORB.cpp:
-
- Fixed problem where ORBInitializer variables were not declared
- in builds where CORBA messaging was disabled.
-
- * tao/PICurrent.cpp:
-
- Include "tao/debug.h" to pull in the declaration of the
- TAO_debug_level variable.
-
- * tao/PICurrent_ORBInitializer.h:
-
- Moved `LocalObject.h' include outside of the
- TAO_HAS_INTERCEPTORS block to pull in TAO-specific configuration
- headers. TAO_HAS_INTERCEPTORS was previously not pulled in.
-
-Mon Sep 24 11:03:17 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/PICurrent_ORBInitializer.h:
- * tao/PICurrent_ORBInitializer.cpp:
-
- Only make code "visible" if the TAO_HAS_INTERCEPTORS
- preprocessor macro is set to "1". Fixes build problems in
- configurations where request interceptors are disabled.
-
- * tao/PICurrent.h:
- * tao/PICurrent.cpp:
-
- "Nuked" trailing whitespace.
-
- * tao/Makefile:
- * tao/*/Makefile:
-
- Updated dependencies.
-
-Mon Sep 24 01:21:16 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/PICurrent.h:
- * tao/PICurrent.inl:
- * tao/PICurrent.cpp:
-
- Implementation of the "PICurrent" object, i.e. the
- PortableInterceptor::Current interface.
-
- * tao/PICurrent_ORBInitializer.h:
- * tao/PICurrent_ORBInitializer.cpp:
-
- ORBInitializer that registers the PICurrent object with each
- ORB.
-
- * tao/Makefile:
- * tao/Makefile.bor:
- * tao/TAO.dsp:
- * tao/TAO_Static.dsp:
-
- Added new PICurrent source files to these Makefiles and project
- files.
-
- * tao/ClientInterceptorAdapter.h:
- * tao/PortableServer/ServerInterceptorAdapter.h:
-
- Updated list of authors.
-
- * tao/ClientRequestInfo.cpp (get_slot):
- * tao/ORBInitInfo.cpp (allocated_slot_id):
-
- Implemented these methods.
-
- * tao/ORB.cpp (init_orb_globals):
-
- Register the PICurrent ORB initializer.
-
- * tao/ORB_Core.h:
-
- Added TSS portion of the PICurrent object to the ORB Core TSS
- resources object.
-
- Cache the PICurrent object reference for speed/efficiency
- reasons.
-
- * tao/ORB_Core.i (pi_current):
-
- New methods to set and get the cached thread-scope PICurrent
- object reference.
-
- * tao/ORB_Core.cpp (TAO_ORB_Core):
-
- Initialize the pointer to the PICurrent object reference to
- zero.
-
- * tao/PolicyFactory_Registry.cpp (~TAO_PolicyFactory_Registry):
-
- Close the factory map for the sake of completeness.
-
- * tao/TAO_Server_Request.h (TAO_ServerRequest):
-
- The "request scope" PICurrent object implementation for the
- server side is now held in this class.
-
- * tao/TAO_Server_Request.i (rs_pi_current):
-
- Accessor for the request scope PICurrent object implementation.
-
- * tao/TAO_Server_Request.cpp (TAO_ServerRequest):
-
- Added request scope PICurrent attribute to the base member
- initializer list.
-
- * tao/PortableServer/ServerInterceptorAdapter.cpp:
-
- Instantiate a "PICurrent" guard before invoking the
- receive_request_service_contexts() interception point. Upon
- leaving the scope, the request PICurrent will be logically
- copied to the thread scope PICurrent.
-
- * tao/PortableServer/ServerRequestInfo.h:
- * tao/PortableServer/ServerRequestInfo.inl (server_request):
-
- Added accessor to return a reference to the cached
- TAO_ServerRequest object.
-
- * tao/PortableServer/ServerRequestInfo.cpp (get_server_policy):
-
- Implemented this method. However, see comments in the
- implementation for important details.
-
- (get_slot, set_slot):
-
- Also implemented these methods. They are used to get and set
- data in the "request scope" "PICurrent" object.
-
- * TAO_IDL/be/be_codegen.cpp (start_server_skeletons):
-
- Generate code to include the `tao/PICurrent.h' header.
-
- * TAO_IDL/be/be_visitor_operation/operation_ss.cpp
- (visit_operation):
-
- Generate code that instantiates a "TAO_PICurrent_Guard" before
- the code that invokes the receive_request() interception point
- and the upcall. The thread scope PICurrent must be copied to
- the request scope PICurrent object when the upcall is done.
-
- * tests/Portable_Interceptors/PICurrent/ServerORBInitializer.cpp:
- * tests/Portable_Interceptors/PICurrent/ServerORBInitializer.h:
- * tests/Portable_Interceptors/PICurrent/ServerRequestInterceptor.cpp:
- * tests/Portable_Interceptors/PICurrent/ServerRequestInterceptor.h:
- * tests/Portable_Interceptors/PICurrent/client.cpp:
- * tests/Portable_Interceptors/PICurrent/server.cpp:
- * tests/Portable_Interceptors/PICurrent/test.idl:
- * tests/Portable_Interceptors/PICurrent/test_i.cpp:
- * tests/Portable_Interceptors/PICurrent/test_i.h:
- * tests/Portable_Interceptors/PICurrent/Makefile:
- * tests/Portable_Interceptors/PICurrent/Makefile.bor:
- * tests/Portable_Interceptors/PICurrent/client.bor:
- * tests/Portable_Interceptors/PICurrent/server.bor:
- * tests/Portable_Interceptors/PICurrent/PICurrent.dsw:
- * tests/Portable_Interceptors/PICurrent/client.dsp:
- * tests/Portable_Interceptors/PICurrent/server.dsp:
-
- Test that verifies PICurrent support is working properly.
-
- * tests/Portable_Interceptors/Makefile:
- * tests/Portable_Interceptors/Makefile.bor:
-
- Added PICurrent test directory to the build list.
-
- * docs/interceptors.html:
-
- Updated PortableInterceptor release notes.
-
-Sun Sep 23 20:34:23 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/Typecode.cpp (BadKind, Bounds):
-
- Fixed bugs where the RepositoryId for these TypeCode user
- exceptions contained the incorrect prefix, i.e. "omg.orb"
- instead of "omg.org."
-
-Sun Sep 23 20:11:45 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * tests/Collocation/Collocation.bor:
- * tests/Collocation/Diamond.bor:
- Updated Borland makefiles to find the example's libraries in the
- common bin directory, since all libraries are now built into there.
-
-Sun Sep 23 15:01:08 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/Invocation.cpp (location_forward):
-
- Use the "CORBA::Object_var::out()" method instead of the
- "inout()" method to make sure the previous forward object
- reference is released before assigning another object reference
- Thanks to Gergely Timar <timarok@elender.hu> for the fix.
-
-Sun Sep 23 14:13:35 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/fe/idl.ll:
- * TAO_IDL/fe/lex.yy.cpp:
-
- Modified parse_line_and_file() to make it more robust
- when parsing #<line number>. Thanks to Carlos for
- tracking down the solution.
-
-Sat Sep 22 11:47:48 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/Profile.cpp (policies):
-
- Use the lame "ignore check_for_ace_check" comment hack to
- silence fuzz.
-
-Fri Sep 21 22:31:33 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/default_resource.cpp (get_parser_names):
-
- Fixed bug where the "corbaname" parser's name was not properly
- inserted into the list of names of registered parsers. Instead
- the "corbaloc" IOR's parser name was inserted. "corbaname" IORs
- should now be supported by default, as was originally designed.
-
-Fri Sep 21 22:23:11 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/Profile.cpp (policies):
-
- Fixed "unused parameter" warning in the minimum CORBA builds.
-
-Fri Sep 21 21:39:22 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Util.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Util.cpp:
-
- New SSLIOP utility class containing code common to both the
- SSLIOP client side and the server side.
-
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Acceptor.h:
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.h:
-
- Added new attributed that contains the state to be passed to
- each new TAO_SSLIOP_Connection_Handler.
-
- Doxygenated this header.
-
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Acceptor.cpp (open_i):
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.cpp (open):
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.cpp (ssliop_open_i):
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp (open):
-
- Invoke the new TAO_SSLIOP_Util::setup_handler_state() method,
- and pass the created state to the creation strategy.
-
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Transport.h:
-
- Cache a reference to the SSLIOP::Current object to avoid any
- reference resolution overhead in the critical path.
-
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Transport.cpp (handle_input_i):
-
- Pass cached SSLIOP::Current reference to the
- TAO_Null_SSL_State_Guard. Saves an
- ORB::resolve_initial_references() in th critical path.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.h:
-
- Generated and added "TAO_SSLIOP_Current" downcast and reference
- count related methods. For example, it is now possible to
- _narrow() a SSLIOP::Current object reference to
- TAO_SSLIOP_Current object reference. This makes it possible to
- gain access to the methods in TAO_SSLIOP_Current not defined in
- the SSLIOP::Current IDL without relying on dynamic_cast, which
- may not work properly when using compilers that do not support
- RTTI.
-
- (orb_id_):
-
- No longer any need for this attribute. (See below.)
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.cpp (TAO_SSLIOP_Current):
-
- This constructor now accepts a pointer to the ORB Core. This
- obviates the need to cache the ORBid.
-
- (init):
-
- Removed this method. It is no longer needed since a pointer to
- the ORB Core is now cached in the TAO_SSLIOP_Current instance at
- ORB bootstrap time.
-
- (setup, teardown):
-
- These methods now accept parameters that contain the state that
- will be used when setting up the TSS portion of the
- SSLIOP::Current object. This makes these mades thread-safe and
- reentrant without introducing any locks. [Bug 943]
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current.inl (implementation):
-
- Don't call init(). That method has been removed.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_ORBInitializer.cpp (pre_init):
-
- Retrieve a pointer to the ORB Core from the TAO_ORBInitInfo
- object and pass it to the TAO_SSLIOP_Current constructor when
- creating the TAO_SSLIOP_Current object.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp
- (TAO_SSLIOP_Connection_Handler_State):
-
- New class that contains state that must be passed to a
- TAO_SSLIOP_Connection_Handler up on creation.
-
- (TAO_SSL_State_Guard):
-
- No need to export this class. It is only used internally by the
- TAO_SSLIOP library.
-
- This class now stores additional state. Specifically, it
- contains a pointer to the "previous" SSLIOP::Current
- implementation that was stored in TSS, the current
- SSLIOP::Current implementation, and a flag that specifies
- whether or not the TSS portion of SSLIOP::Current was setup.
- This state is passed to the connection handler each time a
- request is handled. Since this class is instantiated each time
- a request is handled, the encapsulated state is
- request-specific, meaning that SSL state setup in TSS is
- reentrant and thread-safe. [Bug 943]
-
- No longer any need to cache a pointer to the ORB Core. Adjusted
- the constructor signature and removed the attribute
- accordingly.
-
- (TAO_SSLIOP_Connection_Handler):
-
- This connection handler no longer retains an instance of the
- TAO_SSLIOP_Current_Impl object. That object was subject to a
- race condition. [Bug 943]
-
- (current):
-
- New methods to get and set the cached TAO_SSLIOP_Current
- reference. There is no longer any need to perform a
- dynamic_cast on the SSLIOP::Current object reference to gain
- access to TAO_SSLIOP_Current-specific methods.
-
- (setup_ssl_state):
-
- It is no longer necessary to retrieve the SSLIOP::Current object
- reference during the first attempt to set up the TSS portion of
- the SSLIOP::Current object. That object reference is now
- retrieved and cached at ORB bootstrap time. (See the
- description of the changes to SSLIOP_ORBInitializer.cpp above
- for details.)
-
- (setup_ssl_state, teardown_ssl_state):
-
- These methods now accept parameters that contain the state that
- will be used when setting up the TSS portion of the
- SSLIOP::Current object. This makes these mades thread-safe and
- reentrant without introducing any locks. [Bug 943]
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.i:
-
- Updated the calls to the setup/teardown_ssl_state() in the
- TAO_SSL_State_Guard constructor and destructor to match the new
- method signatures.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp (handle_input_i):
-
- The signature of the TAO_SSL_State_Guard constructor changed.
- Adjusted the instantiation accordingly.
-
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connection_Handler.h:
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connection_Handler.cpp:
-
- Changes analogous to those made in the SSLIOP_Connection_Handler
- counterparts. See above for details.
-
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connection_Handler.inl:
-
- Inlined the TAO_Null_SSL_State_Guard constructor and destructor
- for speed/efficiency reasons.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current_Impl.h:
-
- Corrected destructor comment.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current_Impl.inl:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Current_Impl.cpp:
-
- Inlined the TAO_SSLIOP_Current_Impl constructor for
- speed/efficiency reasons, i.e. since it is instantiated in the
- critical path.
-
- * orbsvcs/orbsvcs/Makefile.SSLIOP (FILES):
- * orbsvcs/orbsvcs/SSLIOP.bor (OBJFILES):
-
- Added new SSLIOP_Util sources to the list of files to compile
- and link.
-
-Fri Sep 21 13:01:53 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * docs/tutorials/Quoter/Event_Service/Makefile:
- * docs/tutorials/Quoter/Naming_Service/Makefile:
- * docs/tutorials/Quoter/RT_Event_Service/Makefile:
- Fixed dependencies on the tutorial.
-
-Fri Sep 21 12:36:36 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/Profile.cpp (policies):
-
- Added missing CORBA::Environment parameter to the call to
- CORBA::Policy::policy_type(). Removes a TSS access during each
- policy insertion into the TAG_POLICIES IOR tagged component.
- Also fixes a potential problem where an emulated exception would
- not be caught if thrown during a remote
- CORBA::Policy::policy_type() invocation.
-
- * tao/ClientInterceptorAdapter.cpp (receive_exception):
- * tao/PortableServer/ServerInterceptorAdapter.cpp (send_exception):
-
- Only re-throw the exception if it hasn't been transformed
- (e.g. to a LOCATION_FORWARD) by the receive_exception() and
- send_exception() interception points, respectively.
-
- * tao/PortableServer/POA.cpp (client_exposed_policies):
-
- Improved exception-safety of this method by storing the
- allocated CORBA::PolicyList in a CORBA::PolicyList_var. Fixes a
- memory leak that occurred if an exception was thrown within this
- method.
-
- * TAO_IDL/be/be_visitor_operation/remote_proxy_impl_cs.cpp
- (gen_marshal_and_invoke):
- * TAO_IDL/be/be_visitor_operation/operation_ss.cpp
- (visit_operation):
-
- Do not call the generated instantiation of the RequestInfo
- object "ri." Doing so will cause conflicts with IDL that
- uses an operation parameter of the same name. The generated
- code now uses "_tao_ri" to avoid namespace pollution.
-
- * tests/Portable_Interceptors/Request_Interceptor_Flow/Request_Interceptor_Flow.dsw:
- * tests/Portable_Interceptors/Request_Interceptor_Flow/client.dsp:
- * tests/Portable_Interceptors/Request_Interceptor_Flow/server.dsp:
-
- Corrected spelling. "Inteceptor" --> "Interceptor"
-
-Thu Sep 20 15:48:33 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * performance-tests/RTCorba/Thread_Pool/client.cpp: Added ability
- to adjust timeout for max throughput run.
-
-Thu Sep 20 13:23:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/BiDirectional_NestedUpcall/client.cpp:
- * tests/BiDirectional_NestedUpcall/server.cpp: Created the servant
- object on the heap instead of on the stack.
-
- * tests/BiDirectional_NestedUpcall/test_i.h: Inherited the
- implementation from the Refcounted servant base.
-
- The above changes should prevent the client from crashing if the
- server crashes during the upcall.
-
-Thu Sep 20 13:23:59 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * orbsvcs/tests/IOR_MCast/server.bor: Added missing iortable
- library.
-
- * orbsvcs/tests/IOR_MCast/MCast_Server_i.cpp (connect_server):
- Fixed missing throw spec.
-
- Thanks to Johnny Willemsen <jwillemsen@remedy.nl> for the above
- fixes.
-
-Thu Sep 20 12:40:34 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * performance-tests/RTCorba/Thread_Pool/client.cpp:
-
- - Previously, each thread kept it's own start time. This
- meant that if a low priority thread did not reach the
- point where it recorded it's start time before it got
- preempted by a thread of higher priority, then it is
- possible that this low priority thread may start after the
- high priority thread is done and hence would not notice
- that it is late at all. Therefore, the start time is made
- global and is the same for all threads.
-
- - We now keep track of the invocations that were missed
- because we didn't make the deadline. This will help note
- any particularities in the test.
-
- - Some of the threads were being given an unfair advantage
- because a connection had already been setup for them
- before they started pacing. Therefore, all threads (paced
- and continuous) now do all the accounting/connection setup
- and then synchronize with the main thread. When all the
- worker threads are ready to go, the main thread signals
- them. This also gives the main thread a chance to mark
- the start time for the test.
-
-Wed Sep 19 17:43:42 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/RTCORBA/Linear_Priority/server.cpp:
- * tests/RTCORBA/Persistent_IOR/server.cpp:
- * tests/RTCORBA/Policy_Combinations/server.cpp:
-
- Added missing ACE_UNUSED_ARGs for asserted <result>.
-
- * tao/TAO_Internal.cpp: Added explicit template instantiations for
- ACE_Dynamic_Service<ACE_Service_Object>.
-
- * tests/Exposed_Policies/Policy_Tester.cpp (init): Changed
- ACE_CHECK to ACE_CHECK_RETURN.
-
- * tests/RTCORBA/Collocation/Collocation.cpp
- (create_poa_and_servant_with_tp_policy and
- create_servant_in_root_poa): Fixed misplaced ACE_CHECKs.
-
-Wed Sep 19 14:15:59 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * tao/TAO.dsp:
- * tao/TAO_Static.dsp:
- * tao/BiDir_GIOP/TAO_BiDir_GIOP.dsp:
- * tao/DynamicAny/TAO_DynamicAny.dsp:
- * tao/IFR_Client/TAO_IFR_Client.dsp:
- * tao/IFR_Client/TAO_IFR_Client_Static.dsp:
- * tao/IORManipulation/TAO_IORManip.dsp:
- * tao/IORManipulation/TAO_IORManip_Static.dsp:
- * tao/IORTable/TAO_IORTable.dsp:
- * tao/IORTable/TAO_IORTable_Static.dsp:
- * tao/PortableServer/TAO_PortableServer.dsp:
- * tao/PortableServer/TAO_PortableServer_Static.dsp:
- * tao/RTCORBA/TAO_RTCORBA.dsp:
- * tao/RTCORBA/TAO_RTCORBA_Static.dsp:
- * tao/RTPortableServer/TAO_RTPortableServer.dsp:
- * tao/RTPortableServer/TAO_RTPortableServer_Static.dsp:
- * tao/SmartProxies/SmartProxies.dsp:
- * tao/Strategies/TAO_Strategies.dsp:
- * tao/Strategies/TAO_Strategies_Static.dsp:
- * tao/TypeCodeFactory/TypeCodeFactory.dsp: Enabled generation of
- debug info even for release configurations. Thanks to Jonathan
- Reis <reis@stentor.com> for suggesting this.
-
-Wed Sep 19 12:06:04 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * examples/Simple/time-date/time-date.bor:
- * orbsvcs/tests/Concurrency/CC_client.bor:
- * orbsvcs/tests/Time/client.bor:
- * orbsvcs/tests/ior_corbaname/client.bor:
- * orbsvcs/tests/ior_corbaname/server.bor:
- Corrected the SVCUTILS to SVC_UTILS
-
- * orbsvcs/tests/IOR_MCast
- Added BCB makefiles
-
- * orbsvcs/tests/Makefile.bor
- Added IOR_MCast and missing LoadBalancing
-
-Wed Sep 19 02:58:46 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Makefile.av (.obj/Transport.o): Fixed minor
- error in the dependencies (though I am not sure how this error
- got in since the dependencies are auto generated).
-
-Tue Sep 18 17:18:35 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * performance-tests/RTCorba/Thread_Pool/client.cpp: Added priority
- information to max throughput testing. Also,
- <Continuous_Worker::time_for_test_> has the max time of all the
- continuous workers.
-
-Tue Sep 18 15:55:18 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/RTCORBA/README: Updated with information about new tests.
-
- * tests/TAO_Tests.dsw: Added Cache_Growth_Test and
- Exposed_Policies.
-
- * tests/Cache_Growth_Test/Hello.cpp (get_string): transport_cache
- is now in the lane resources.
-
-Tue Sep 18 13:05:09 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * */Makefile:
- * */Makefile.*:
- Updated dependencies, some of the paths were absolute leading to
- ambiguities in parallel builds.
-
-Tue Sep 18 12:07:40 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.h:
- Missed one file in the last set of changes.
-
-Tue Sep 18 10:44:58 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Defaults.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching_Task.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Factory.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_MT_Dispatching.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Pulling_Strategy.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_SupplierControl.h:
- Fixed problems with the @file declarations, the automatically
- generated entries did not correct my mistakes in the old-style
- =FILE comments
-
-Mon Sep 17 19:00:00 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * The following changes are to add support for thread pools and
- lanes to TAO.
-
- * tao/RTPortableServer/RT_POA.cpp:
-
- - (thread_pool): Added member and accessor.
-
- - (valid_priority): Renamed to validate_priority(). Instead
- of trying to match acceptor priority and bands, we check
- the following:
-
- If this POA is using a thread pool with lanes, make sure
- the priority matches one of the thread lanes. Note that
- in this case, bands do not matter since matching the lanes
- priority is a stricter condition than meeting the band
- ranges. In addition, when the POA was created, the bands
- had to match the lanes.
-
- If we are dealing with a thread pool without lanes, check
- if we have bands. If we do have bands, make sure that the
- priority is matching one of the bands.
-
- - (endpoint_count): Counts the potentially relevant
- endpoints for this POA.
-
- - (parse_rt_policies): Extract the POA's thread pool from
- the policies specified by the user.
-
- - (key_to_stub_i): Instead of trying to create different
- kinds of acceptor filters, we check the following:
-
- If this POA is using the default thread pool or a thread
- pool without lanes, create the IOR with the acceptors in
- the thread pool.
-
- If this POA has the SERVER_DECLARED policy, create the IOR
- with the acceptors in the only thread lane that matches
- the priority of the object.
-
- If this POA has the CLIENT_PROPAGATED policy, create the
- IOR with the acceptors in the thread lanes that matches
- the bands in this POA. If there are no bands, all the
- thread lanes are used.
-
- * tao/RTPortableServer/RT_Policy_Validator.cpp:
-
- - (validate_impl): Removed call to ORB_Core::open(). Added
- thread-pool validation.
-
- - (legal_policy_impl): Added <THREADPOOL_POLICY_TYPE> to the
- legal policies.
-
- - (validate_server_protocol): Previously, if we found one
- protocol that matched, we returned success. Now we return
- return success only if we match all the protocols
- specified by the user.
-
- - (validate_lifespan): If a POA is using a RTCORBA thread
- pool, make sure the lifespan policy is not persistent
- since we cannot support it right now.
-
- - (merge_policies_impl): Merging of policies specified at
- the ORB level was not done before. Check if the user has
- specified the priority model, server protocol, and thread
- pool policies. If not, check if the policy has been
- specified at the ORB level. If so, we'll use that policy.
-
- - (validate_priorities): Revised this function to do the
- following tests:
-
- Initialize <rt_priority_model> to NOT_SPECIFIED rather
- than CLIENT_PROPAGATED.
-
- If priority model was not specified, then we better not
- have a thread pool with lanes since this configuration
- does not make sense.
-
- If priority banded connections are set, make sure that:
-
- 0. A priority model was specified.
-
- 1. There is at least one band.
-
- 2a. low is not < RTCORBA::minPriority
- 2b. low <= high
- 2c. high is not > RTCORBA::maxPriority
-
- 3. If priority model is SERVER_DECLARED, server_priority
- must match one of the bands.
-
- 4. If this POA has a thread pool with lanes, then for
- each band, there must be at least one thread lane that
- can service it, i.e., whose priority falls into the
- band's range.
-
- If priority banded connections are not set, and the
- priority model is SERVER_DECLARED, make sure we have at
- least one thread lane that can provide service for the
- specified SERVER_DECLARED priority.
-
- * tao/RTPortableServer/RT_Acceptor_Filters.h
-
- - (fill_mprofile): Renamed fill_mprofile() to fill_profile()
- and added a <priority> paramter to this function.
-
- - (encode_endpoints): Also added a new function
- encode_endpoints() that encodes the endpoints in the
- profiles into the TAO_TAG_ENDPOINTS tag component of
- profiles.
-
- - (TAO_Priority_Acceptor_Filter; TAO_Bands_Acceptor_Filter;
- validate_acceptor): Removed: POA decides with acceptor
- registries to include in the stub. Therefore, these
- classes and functions are not longer required.
-
- * tao/RTPortableServer/RT_Servant_Dispatcher.cpp:
-
- - (~RT_Priority_Model_Processing): Removed code duplication
- and called post_invoke() directly.
-
- - (pre_invoke): Changed the upcall thread preprocessing to
- do the following:
-
- Don't mess with the priority of threads in lanes.
-
- For the SERVER_DECLARED PriorityModel processing, use the
- request associated with the servant.
-
- Previously, for the CLIENT_PROPAGATED policy, if the
- server priority was <TAO_INVALID_PRIORITY>, then the
- client propagated priority was ignored. This was fixed.
-
- Handle cases where the priority model policy was not
- specified.
-
- Distinguish between invalid target priorities and where
- the original == target.
-
- * tao/RTPortableServer/RT_Collocation_Resolver.cpp:
- * tao/RTPortableServer/RT_Collocation_Resolver.h:
- * tao/RTPortableServer/RT_Collocation_Resolver.i:
-
- This class decides/resolves whether an object is collocated
- with the servant. The following check are done:
-
- First we do the good ol' basic check: make sure that the
- servant is in the same ORB that created this object.
-
- Then we lookup the thread pool used by the POA where the
- servant is located. At the same time we figure out which
- thread pool the calling thread belongs to by looking at it's
- TSS resources.
-
- If the POA's thread pool and the calling thread's thread
- pool don't match, then the object is not collocated.
-
- If they do match and they don't have lanes, we are
- collocated. Note that this includes the default thread
- pool.
-
- Then we inspect the priority model policy of the target POA.
- If it is CLIENT_PROPAGATED, then the object is not
- collocated.
-
- Note that the priority model policy cannot be NOT_SPECIFIED
- because NOT_SPECIFIED is not allowed with thread pool with
- lanes.
-
- If it is SERVER_DECLARED, then we lookup the servant's
- priority. If that matches the current thread's priority,
- then the object is not collocated. Otherwise, it is not
- collocated.
-
- * tao/RTPortableServer/RT_POA_Initializer.cpp
- (init_rt_default_policies): Removed: it was merging the ORB
- level policies with the default POA policies at initialization
- time. It correct thing to do would be to merge the ORB level
- policies with the user provided policies when a POA is being
- created.
-
- * tao/RTPortableServer/RT_Object_Adapter_Factory.cpp:
-
- - (create): No need to setup the POA Extension Initializer.
- Setup the servant dispatcher and the policy validator on
- the Object Adapter after creating it.
-
- - (Constructor): Set the name of the collocation resolver to
- be RT_Collocation_Resolver and add it to the service
- configurator.
-
- * tao/RTPortableServer/RT_POA_Initializer.cpp:
-
- Renamed TAO_RT_POA_Initializer::init() to
- TAO_RTPortableServer_Initializer::TAO_RTPortableServer_Initializer().
-
- * tao/RTPortableServer/RT_POA.h:
-
- Include RTPortableServerC.h instead of RTPortableServer.h.
-
- * tao/RTPortableServer/Makefile:
- * tao/RTPortableServer/Makefile.bor:
- * tao/RTPortableServer/TAO_RTPortableServer.dsp:
- * tao/RTPortableServer/TAO_RTPortableServer_Static.dsp:
-
- Removed RT_POA_Initializer. Added RT_Collocation_Resolver.
-
- * tao/RTCORBA/Thread_Pool.cpp:
-
- - (set_tss_resources): Each lane thread on startup sets its
- thread lane pointer in TSS. This makes it easy to access
- each thread's lane resources and also makes it easy to
- identify which threads belong to thread pools and which
- don't.
-
- - (validate_and_map_priority): When a thread lane is opened,
- its lane priority is validated and mapped to native
- priority before the threads are spawned.
-
- - (open): Open the acceptor registry when a thread lane is
- opened.
-
- - (fini): Finalize resources.
-
- - (resources): Added TAO_Thread_Lane_Resources accessor.
-
- - (with_lanes): Since a thread-pool without lanes is
- implemented as a thread-pool with one lane, it is
- difficult to tell them apart. Added a <with_lanes_> flag
- to tell them apart.
-
- - (constructors): Make sure <allow_request_buffering> and
- <allow_borrowing> are disabled since we do not support
- them.
-
- - (create_dynamic_threads): In addition to the default flags
- (THR_NEW_LWP and THR_JOINABLE), add in flags to set the
- scope and scheduling policies when creating RT threads.
-
- - (native_priority): Each lane remembers its native priority
- in addition to its CORBA priority.
-
- - (destroy_threadpool_i): We now shutdown the reactors in
- the thread pool, wait for the threads in the pool to exit,
- finalize the resources in the pool, and only then delete
- the thread pool.
-
- - (TAO_RT_New_Leader_Generator::no_leaders_available): This
- method is called by the leader followers class when it is
- out of threads to run the event loop.
-
- We grab the Thread Pool Manager lock, check if the current
- number of threads in this lane does not exceed the
- <static> + <dynamic> number of threads specified by the
- user. If it does not exceed <static> + <dynamic>, one
- dynamic thread is created.
-
- * tao/RTCORBA/RT_Protocols_Hooks.cpp
- (set_default_server_protocol_policy): Don't include all the
- protocols that the ORB knows about in the default server
- protocol policy; only include protocols that the user has
- opened.
-
- * tao/RTCORBA/RT_Protocols_Hooks.h: Removed
- ACE_STATIC_SVC_REQUIRE directive since it is not needed.
-
- * tao/RTCORBA/RT_ORB_Loader.cpp:
-
- - Changed base class from TAO_Object_Loader to
- ACE_Service_Object.
-
- - (create_object): Removed.
-
- - (Initializer): Removed.
-
- - (init): Handle the scheduling policy variable in terms of
- THR_SCHED_* values instead of ACE_SCHED_* values since
- ACE_OS::thr_create expects THR_SCHED_* values.
-
- However, ACE_Sched_Params::priority_min() and
- ACE_Sched_Params::priority_max() expect ACE_SCHED_*
- values. Therefore, a conversion from THR_SCHED_* values
- to ACE_SCHED_* values is done in
- TAO_RT_ORBInitializer::pre_init().
-
- Also, added the ability for the user to specify the
- scheduling scope of the RT threads through the new
- ORBScopePolicy option. The option supports the PROCESS
- and SYSTEM scopes with PROCESS being the default.
-
- * tao/RTCORBA/RT_ORB.cpp:
-
- - (TAO_RT_ORB): Cache the <tp_manager> from the
- TAO_RT_Thread_Lane_Resources_Manager.
-
- - (pre_init): Register the
- RT_Thread_Lane_Resources_Manager_Factory with the service
- configurator.
-
- - (TAO_RT_CORBA_Priority_Normalizer): Removed since it was no
- longer needed.
-
- * tao/RTCORBA/RT_Mutex.cpp (try_lock): Make sure that
- mutex::tryacquire() returning -1 with errno == EBUSY is not
- flagged as an error.
-
- * tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp:
-
- - Added TAO_RT_Default_Endpoint_Selector. Pretty much the
- same as TAO_Default_Endpoint_Selector except private
- connections are taken into account.
-
- * tao/RTCORBA/RT_Endpoint_Selector_Factory.cpp:
-
- - Replaced TAO_Default_Endpoint_Selector with
- TAO_RT_Default_Endpoint_Selector so that we are sure to
- take private connection into account.
-
- * tao/RTCORBA/Linear_Priority_Mapping.cpp:
-
- - Removed special code in the constructors that was added to
- handle incorrect priorities reported by
- ACE_Sched_Params::priority_min() and
- ACE_Sched_Params::priority_max(). This code was not
- needed after Joe's fixes.
-
- - Changed <policy_> type from int to long.
-
- * tao/RTCORBA/Direct_Priority_Mapping.cpp: Simplified this
- class such that it is really direct, i.e., corba priority
- maps verbatim to native priority and vice versa.
-
- * tao/RTCORBA/Continuous_Priority_Mapping.cpp: Maps the first
- n CORBA priorities to the range of native priorities, where
- n is the number of native priorities.
-
- The lowest native priority is mapped to CORBA priority 0,
- next higher native priority is mapped to CORBA priority 1,
- and so on. Since in all the operating systems where TAO is
- supported the native priority set contains less than 32767
- priorities, part of the CORBA priority range is left unused.
- Consider NT as an example. NT native priorities -15 -2 -1 0
- 1 2 15 are mapped to CORBA priorities 0 1 2 3 4 5 6,
- respectively, and the rest of the CORBA priority range is
- not used.
-
- This class was previously called Direct_Priority_Mapping.
-
- * tao/RTCORBA/RT_ORBInitializer.cpp (pre_init): Set the
- scheduling policy and scope policy into ORB Parameters.
- Also, converted THR_SCHED_* values into ACE_SCHED_* values.
-
- * tao/RTCORBA/RTCORBA.cpp:
-
- - (init): Removed: functionality moved to the constructor.
-
- - (TAO_RTCORBA_Initializer): Removed the registration of
- TAO_RT_Protocols_Hooks into the service configurator - it
- is already done in TAO_RT_ORBInitializer::pre_init.
-
- * tao/RTCORBA/RT_Thread_Lane_Resources_Manager.cpp
- * tao/RTCORBA/RT_Thread_Lane_Resources_Manager.h
- * tao/RTCORBA/RT_Thread_Lane_Resources_Manager.i
-
- RT manager which manages multiple set of resources
- associated with each thread lane and has a default set of
- lane resources.
-
- * tao/RTCORBA/RT_Current.h:
- * tao/RTCORBA/RT_Mutex.h:
- * tao/RTCORBA/RT_ORB.h:
- * tao/RTCORBA/RT_ORBInitializer.cpp:
- * tao/RTCORBA/RT_Policy_i.h:
- * tao/RTCORBA/Thread_Pool.h
- * tao/RTPortableServer/RTPortableServerC.h
- * tao/RTPortableServer/RT_Acceptor_Filters.h:
- * tao/RTPortableServer/RT_Servant_Dispatcher.h:
-
- Include RTCORBA.h instead of RTCORBAC.h.
-
- * tao/RTCORBA/Makefile.bor:
- * tao/RTCORBA/Makefile:
- * tao/RTCORBA/TAO_RTCORBA.dsp:
- * tao/RTCORBA/TAO_RTCORBA_Static.dsp:
-
- Removed Pool_Per_Endpoint; added
- RT_Thread_Lane_Resources_Manager and
- Continuous_Priority_Mapping.
-
- * tao/ORB_Core.cpp:
-
- - (Reactor_Registry): Removed from the ORB Core. Each
- thread lane how manages its own Leader/Follower object
- which has its own Reactor.
-
- - (Transport_Cache): Moved from the ORB Core to the thread
- lane.
-
- - (Acceptor_Registry): Moved from the ORB Core to the thread
- lane.
-
- - (Thread_Lane_Resources_Manager): The ORB Core now has a
- pointer to a Thread_Lane_Resources_Manager. It'll either
- be the Default_Thread_Lane_Resources_Manager that manages
- the default thread lane, or it'll be the
- RT_Thread_Lane_Resources_Manager that manages the default
- thread lane and the RT thread lanes.
-
- - (Thread_Lane_Resources_Manager_Factory):
- Thread_Lane_Resources_Manager are created using this
- factory. This factory is accessed through the Service
- Configurator.
-
- - (reactor_): Removed unused member.
-
- - (inherit_from_parent_thread): Removed dead code.
-
- - (create_stub): No need to pass ORB_Core::create_stub() a
- pointer to the ORB_Core.
-
- - (create_stub_object): Simplified this function. MProfile
- creation is going to be done by the POA.
-
- - (is_collocated): This function now checks with the lane
- resources if the acceptor registry has been created.
-
- - (leader_follower, lf_strategy): Access the Leader/Followers
- and LF Strategy object from the thread lane resources
- rather than from the Reactor Registry.
-
- - (open): Removed: thread lanes resourced are opened when
- thread pools are created; thread lanes resourced are opened
- when the Root POA is created.
-
- - (shutdown): Added missing ACE_CHECKs.
-
- - (reactor): Removed acceptor based reactor selection.
-
- - (poa_extension_initializer): Removed since it was no longer
- needed.
-
- - (TAO_CORBA_Priority_Normalizer): Removed since it was no
- longer needed.
-
- - (resource_factory_from_service_config_,
- client_factory_from_service_config_,
- server_factory_from_service_config_):
-
- Removed since it was no longer needed.
-
- - (resource_factory_, stub_factory_,
- endpoint_selector_factory_, protocols_hooks_,
- client_factory_, server_factory_):
-
- Simplified the creation of these factories. Now there is
- no need to include these files:
-
- Default_Stub_Factory.h
- Default_Endpoint_Selector_Factory.h
- Default_Protocols_Hooks.h
-
- - (collocation_strategy): When trying to select the
- collocation strategy to use for a method call on an object,
- it is no longer sufficient to check the <is_collocated>
- flag on the object. The decision is left to the
- collocation resolver, which get interesting in the
- collocated case.
-
- - (is_collocated): Don't ask only the current thread lane
- resources to see if the mprofile matches the acceptors;
- instead ask all the thread lane resources in the ORB. The
- functionality is shifted over to the
- Thread_Lane_Resources_Manager which knows how many lanes
- there are in this ORB.
-
- - (TAO_ORB_Core_TSS_Resources): Removed <transport_cache_>,
- <reactor_registry_>, and <reactor_registry_cookie_t>; added
- <lane_> from/to the per-ORB TSS resources.
-
- * tao/ORB.cpp (create_stub_object): Removed unused method. In
- addition, stub creation really belongs to the POA.
-
- * tao/param.cpp: Added the scheduling policy and scope policy
- for RTCORBA threads created by the ORB.
-
- * tao/Tagged_Profile.cpp (extract_object_key):
- * tao/IIOP_Transport.cpp (set_bidir_context_info):
-
- Acceptor registry is now accessed through the lane resources
- rather than through the ORB Core.
-
- * tao/Transport.cpp:
- * tao/Acceptor_Impl.cpp (make_svc_handler):
- * tao/IIOP_Connector.cpp:
- * tao/IIOP_Connection_Handler.cpp (add_transport_to_cache):
- * tao/Strategies/SHMIOP_Connector.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp (add_transport_to_cache):
- * tao/Strategies/DIOP_Connection_Handler.cpp (add_transport_to_cache):
- * tao/Strategies/UIOP_Connector.cpp:
- * tao/Strategies/UIOP_Connection_Handler.cpp (add_transport_to_cache):
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp (add_transport_to_cache):
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.cpp (add_transport_to_cache):
-
- Transport cache is now accessed through the lane resources
- rather than through the ORB Core.
-
- * tao/Pluggable.cpp:
- * tao/IIOP_Acceptor.cpp:
- * tao/Strategies/DIOP_Acceptor.cpp:
- * tao/Strategies/SHMIOP_Acceptor.cpp:
- * tao/Strategies/UIOP_Acceptor.cpp:
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Acceptor.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Acceptor.cpp:
-
- - Priority: Since endpoints are no longer associated with
- priorities, the priority is explicitly passed in from the
- thread lane when creating the shared profile. If a
- "priority" option is specified by the user, it'll be
- flagged as an error.
-
- - (create_profile): Renamed create_mprofile() to
- create_profile() while adding a <priority> parameter and
- removing the <share_profile> parameter. Creation of a
- shared profile can be done if we have a valid <priority>.
- Otherwise, we create a new profile.
-
- - (create_new_profile): Renamed create_new_profiles() to
- create_new_profile() while adding a <priority> parameter.
-
- - (create_shared_profile): Added a <priority> parameter.
-
- - (open, open_i, open_default): Reactor is specified
- explicitly rather than coming implicitly from the ORB
- Core.
-
- * tao/Thread_Lane_Resources.cpp
- * tao/Thread_Lane_Resources.h
- * tao/Thread_Lane_Resources.i
-
- New class representing a thread lane's resources. The class
- has the following resources:
-
- - Acceptor Registry
- - Transport Cache
- - Leader/Follower (and hence the Reactor also)
-
- These resources use to be in the ORB Core. However, with
- the introduction of thread lanes, these resources were moved
- to this class. These resources will be managed by two kinds
- of managers: (a) default (non-RT) manager which only has one
- set of lane resources and approximates these resources being
- in the ORB Core. (b) RT manager which manages multiple set
- of resources associated with each thread lane and has a
- default set of lane resources.
-
- * tao/Thread_Lane_Resources_Manager.cpp
- * tao/Thread_Lane_Resources_Manager.h
- * tao/Thread_Lane_Resources_Manager.i
-
- Abstract manager and manager factory.
-
- * tao/Default_Thread_Lane_Resources_Manager.cpp
- * tao/Default_Thread_Lane_Resources_Manager.h
- * tao/Default_Thread_Lane_Resources_Manager.i
-
- Default (non-RT) manager which only has one set of lane
- resources and approximates these resources being in the ORB
- Core.
-
- * tao/Endpoint.h (TAO_Endpoint): Changed default <priority> value
- in constructor to <TAO_INVALID_PRIORITY> instead of -1.
-
- * tao/Protocols_Hooks.cpp:
- * tao/Default_Protocols_Hooks.cpp:
-
- - (set_default_server_protocol_policy): Added no-op new
- method. It'll be useful with RTCORBA.
-
- * tao/Acceptor_Registry.cpp:
-
- - (open, open_default, open_i): The reactor is explicitly
- passed to these methods instead of getting it from the ORB
- Core.
-
- - (open, open_i): The acceptor endpoints used by thread
- lanes are selected randomly from the ones available on the
- local machine. There is no way for the user to associate
- thread lanes with endpoints because the thread lanes are
- unnamed.
-
- A new parameter <ignore_address> was added to open() and
- open_i() that ignores the address specified in the
- -ORBEndpoint option. <ignore_address> is 1 for lane
- acceptors and 0 for default acceptors.
-
- - (make_mprofile): This function was removed because it was
- doing too much, i.e., calling fill_mprofile() which was
- creating and encoding the mprofile. Since the POA has to
- now deal with multiple acceptor registries, this
- functionality was moved to the POA.
-
- * tao/Default_Acceptor_Filter.h:
- * tao/Acceptor_Filter.h:
-
- - (fill_mprofile): Renamed fill_mprofile() to fill_profile()
- and added a <priority> paramter to this function.
-
- - (encode_endpoints): Also added a new function
- encode_endpoints() that encodes the endpoints in the
- profiles into the TAO_TAG_ENDPOINTS tag component of
- profiles.
-
- * tao/Transport_Cache_Manager.cpp (open): Removed.
-
- * tao/TAO_Internal.cpp (open_services_i): Insert the
- Default_Thread_Lane_Resources_Manager_Factory and the
- Default_Collocation_Resolver into the service configurator.
- Also, cast RT_ORB_Loader to ACE_Service_Object instead of
- TAO_Object_Loader.
-
- * tao/default_resource.cpp:
- * tao/Resource_Factory.cpp:
- * tao/Strategies/advanced_resource.cpp:
-
- - (reactor_registry): Removed since it was no longer needed.
-
- - (ORBReactorRegistry): Report error since this option is no
- longer supported.
-
- * tao/ORB.cpp (url_ior_string_to_object):
- * tao/CORBALOC_Parser.cpp (make_stub_from_mprofile):
- * tao/Stub.cpp (set_policy_overrides):
- * tao/Object.cpp (operator>>):
- * tao/IORManipulation/IORManipulation.cpp:
-
- No need to pass ORB_Core::create_stub() a pointer to the
- ORB_Core.
-
- * tao/Collocation_Resolver.cpp:
- * tao/Collocation_Resolver.h:
- * tao/Collocation_Resolver.i:
- * tao/Default_Collocation_Resolver.cpp:
- * tao/Default_Collocation_Resolver.h:
- * tao/Default_Collocation_Resolver.i:
-
- This class decides/resolves whether an object is collocated
- with the servant. The default resolver simply does what was
- done before which is to check the <is_collocated_> flag on
- the object. The RT resolver is more interesting.
-
- * tao/Leader_Follower.cpp (elect_new_leader): When we are out
- of leader threads and there are no event loop threads
- waiting and there are no followers available, we call on the
- new leader generator class to create us a new leader thread.
-
- * tao/Makefile:
- * tao/Makefile.bor:
- * tao/Makefile.am:
- * tao/TAO.dsp:
- * tao/TAO_Static.dsp:
-
- - Added new files:
-
- Thread_Lane_Resources
- Thread_Lane_Resources_Manager
- Default_Thread_Lane_Resources_Manager
- Collocation_Resolver
- Default_Collocation_Resolver
-
- - Removed these files:
-
- Reactor_Registry
- Single_Reactor
- POA_Extension_Initializer
-
- * tao/Makefile:
- * tao/Makefile.bor:
- * tao/Makefile.am:
-
- - Removed the following *S_T.* files. Since the *S.* are
- not needed, these will also not be needed:
-
- CONV_FRAMES_T
- GIOPS_T
- IOPS_T
- PollableS_T
- TAOS_T
- TimeBaseS_T
-
- * tao/TAO.dsp:
- * tao/TAO_Static.dsp:
-
- - Removed these files:
-
- TimeBaseS
- CONV_FRAMES
- Connector_Impl
- TAO_Singleton
-
- * tao/PortableServer/POA.cpp:
-
- - (create_POA_i): Before a POA is created (including the
- RootPOA), any relevant policies at the ORB level should be
- merged with the policies passed to create_POA() by the
- user.
-
- - (servant_to_id_i, servant_to_reference): Use the
- <server_priority> from the priority model policy rather
- than <TAO_INVALID_PRIORITY> for servants that are not
- registered with explicit priorities.
-
- - (create_stub_object): The POA is now responsible for
- selecting which profiles to create the stub with. This
- change is more relevant for the RT POA.
-
- - (thread_pool): No-op accessor added. This change is more
- relevant for the RT POA.
-
- - (friend): Added TAO_RT_Collocation_Resolver as a friend so
- that it can call lookup_servant_i(). This is safe because
- Servant_Upcall has the lock held.
-
- * tao/PortableServer/Object_Adapter.cpp:
-
- - (open):
-
- Make sure that the default resources are open when the
- RootPOA is created.
-
- Make sure that the correct default Server Protocol Policy
- is set after we open the default resources. Previously
- all the protocols supported were included in the default
- Server Protocol Policy. This should be restricted to only
- the protocols opened by default (such as IIOP) and any
- other asked for by the user (such as SHMIOP).
-
- Before a POA is created (including the RootPOA), any
- relevant policies at the ORB level should be merged with
- the policies passed to create_POA() by the user.
-
- No need to access the POA Initializer.
- TAO_RT_Object_Adapter_Factory will set things up for us.
-
- - (Servant_Upcall::lookup_POA): New method added to simply
- lookup the POA. This method is needed for looking up the
- POA when making collocation decisions.
-
- * tao/PortableServer/POA_Cached_Policies.cpp
- (TAO_POA_Cached_Policies): Changed the default value of
- <priority_model_> from
- TAO_POA_Cached_Policies::CLIENT_PROPAGATED to
- TAO_POA_Cached_Policies::NOT_SPECIFIED.
-
- * tao/PortableServer/Default_Policy_Validator.cpp:
-
- - (merge_policies_impl): No-op method was added.
-
- - (Default_Policy_Validator): Pass-through-to-base-class
- constructor was added.
-
- * tao/PortableServer/Default_Acceptor_Filter.cpp:
-
- - (fill_mprofile): Got renamed to fill_profile().
-
- - (encode_endpoints): No-op method was added.
-
- * tao/PortableServer/Policy_Validator.cpp (merge_policies): Merge
- any relevant policies at the ORB level into the current set.
-
- * tao/PortableServer/POA_Policy_Set.i (policies): Added accessor
- to underlying TAO_Policy_Set implementation.
-
- * tao/Strategies/Makefile.bor:
- * tao/Strategies/Makefile:
- * tao/Strategies/TAO_Strategies.dsp:
- * tao/Strategies/TAO_Strategies_Static.dsp:
-
- Removed Reactor_Per_Priority.
-
- * TAO_IDL/be/be_visitor_interface/strategized_proxy_broker_ss.cpp:
- * tao/PortableServer/ImplRepoS.cpp:
- * tao/PortableServer/MessagingS.cpp:
- * tao/PortableServer/PolicyS.cpp:
- * tao/PortableServer/Strategized_Object_Proxy_Broker.cpp:
- * orbsvcs/IFR_Service/IFR_BaseS.cpp:
- * orbsvcs/IFR_Service/IFR_BasicS.cpp:
- * orbsvcs/IFR_Service/IFR_ComponentsS.cpp:
- * orbsvcs/IFR_Service/IFR_ExtendedS.cpp:
- * tao/Domain/DomainS.cpp:
-
- Passed environment variable to
- TAO_ORB_Core::collocation_strategy().
-
- * orbsvcs/ImplRepo_Service/ImplRepo_i.cpp:
-
- - make_mprofile() was replaced by endpoint_count() and
- fill_profile().
-
- - Access the acceptor registry through the lane resources
- rather than through the ORB Core.
-
- - Include "tao/Thread_Lane_Resources.h".
-
- * tests/RTCORBA/Policy_Combinations: New test added that
- combines and tests several RT policies in different ways.
-
- - The IDL interface has two methods: method() and
- prioritized_method().
-
- - The client sets its thread to the default priority, calls
- method() which returns a priority. If the priority
- returned is different from <TAO_INVALID_PRIORITY>, the
- client sets its thread to the priority returned by the
- server and calls prioritized_method()
-
- - The servant returns the <client_priority_> member in
- method(). In prioritized_method(), it makes sure that the
- thread running the upcall is at priority
- <server_priority_>. These two members allow several
- different policies to be tested with the same code.
-
- - In addition to testing servants in the RootPOA and in a
- simple child POA, the following policy combinations are
- tested in this example:
- ________________________________________________________________________________
-
- Thread-pool BANDS PRIORITY MODEL Client Priority Server Priority
- ________________________________________________________________________________
-
- Default Pool NO CLIENT_PROPAGATED 3 3
- Default Pool NO SERVER_DECLARED 3 5
- Without Lanes NO CLIENT_PROPAGATED 1 1
- Without Lanes NO SERVER_DECLARED 1 5
- With Lanes NO CLIENT_PROPAGATED 2 2
- With Lanes NO SERVER_DECLARED 3 5
- Default Pool YES CLIENT_PROPAGATED 3 3
- Default Pool YES SERVER_DECLARED 1 5
- Without Lanes YES CLIENT_PROPAGATED 1 1
- Without Lanes YES SERVER_DECLARED 3 5
- With Lanes YES CLIENT_PROPAGATED 3 2
- With Lanes YES SERVER_DECLARED 1 5
-
- where the priorities are relative to the minimum priority
- of the thread scheduling policy used for the test.
-
- - This test uses the -ORBPriorityMapping continuous option.
-
- * tests/RTCORBA/Linear_Priority: This is a test for the Linear
- Priority mapping in TAO. In addition, this test combines
- and tests several RT policies in different ways. This test
- can also be used for testing the different scheduling
- policies (e.g., FIFO, RR, OTHER) by using the ORBSchedPolicy
- and ORBScopePolicy options in svc.conf file.
-
- - The server can be setup to use bands or no bands and
- thread lanes or no lanes.
-
- - The client can be setup to use bands or no bands and
- different invocation priorities. It creates a thread for
- each invocation priority and issues multiple requests to
- the server from each thread.
-
- - The following policy combinations are tested in this
- example:
- __________________________________________________
-
- Server-side Thread Client-side Multi-priority
- Bands Lanes Bands Clients
- __________________________________________________
-
- NO NO NO NO
- YES NO NO NO
- NO YES NO NO
- YES YES NO NO
- NO NO YES NO
- NO YES YES NO
- NO NO NO YES
- YES NO NO YES
- YES YES NO YES
- NO NO YES YES
- NO YES YES YES
-
- * tests/RTCORBA/Thread_Pool:
-
- - server.cpp: Associated the thread pools with POAs.
- Produced three servants, one that uses the default thread
- pool, the second uses an RT thread pool without lanes, and
- the third that uses an RT thread pool with lanes. Also
- added the use of CLIENT_PROPAGATED priority model.
-
- - client.cpp: Changed the default ior file from <ior> to
- <ior_1>.
-
- - run_test.pl: Spawn multiple clients for each servant. The
- servants with multiple threads in their thread-pool
- respond faster than the servants with a single thread
- thread-pool.
-
- - test_i.cpp (method): Added debugging output to see which
- lane/pool/thread is being used to run the upcall.
-
- - README: Updated to reflect changes in the test.
-
- * tests/RTCORBA/Destroy_Thread_Pool: New test added that tests
- the creation and destruction of thread pools (with and
- without lanes).
-
- * tests/RTCORBA/Persistent_IOR: New test added that:
-
- - For POAs using the default thread pool, the user can
- continue to use -ORBEndpoint option.
-
- - Makes sure that if the user tries to combine thread pools
- and persistence, an InvalidPolicy exception is thrown.
-
- - Makes sure that for POAs using thread pools, the user can
- specify the protocol selection, protocol version, and
- other protocol specific options (basically everything
- other than the endpoint address) through the -ORBEndpoint
- option.
-
- * tests/RTCORBA/Collocation: This is a new test for
- collocation when using thread pools and lanes. There are
- multiple servants in this test:
-
- (a) One servant is in the Root POA which is service by the default
- thread pool.
-
- (b) Another servant is in a POA which is serviced by a
- thread pool without lanes. Since a thread pool
- without lanes is really a thread pool with one lane,
- all requests will be handled by this one lane.
- Therefore, setting the priority model policy was not
- necessary for this POA.
-
- (c) There are two servants is in a POA which is serviced
- by a thread pool with lanes, with the
- CLIENT_PROPAGATED policy. Depending on the priority
- of the caller, either one of the lanes processes the
- request.
-
- (d) There are two more servants is in a POA which is
- serviced by a thread pool with lanes, with the
- SERVER_DECLARED policy. One servant is registered to
- match one lane and the other servant matches the other
- lane.
-
- All six servants are put into a global array. The main
- thread starts off the testing by calling start() on each
- servant in the array. The implementation of start()
- calls method() on each servant in the array. Since the
- upcalls will be handled by the lane corresponding to each
- servant, all six lanes ends up calling into one another.
-
- The main thread then changes its priority and calls
- start() on each servant in the array. This makes sure to
- exercise the second lane in the thread pool with lanes
- and the CLIENT_PROPAGATED priority.
-
- The test also converts the objects into strings and back
- to make sure that collocation works as expected for
- imported objects.
-
- This test has enough asserts to make sure that the
- correct thread is making the upcall.
-
- * tests/RTCORBA/Banded_Connections:
-
- - server.cpp:
-
- - We cache the RT_Current in the constructor instead of
- having to look it up on every call.
-
- - Simplified some of the options and some parts of the code.
-
- - The POA priority is now deduced from the lane
- priorities. Lane priorities are not deduced from the
- bands.
-
- - The old Reactor-per-Priority scheme was replaced by RT
- Thread-Pools.
-
- - Removed dependency on advance resources in the
- strategies library.
-
- - Added check to make sure multiple priorities are
- supported.
-
- - client.cpp:
-
- - Simplified some of the options and some parts of the
- code.
-
- - Client thread priorities are now deduced from the bands.
-
- - Added check to make sure multiple priorities are
- supported.
-
- - test.idl (Test): test_method() now passes an additional
- boolean parameter <client_propagated> to indicate what
- kind of invocation it thinks it is making. This is a
- useful sanity check.
-
- - server.conf: The service configurator directives in this
- file were no longer needed; therefore this file was
- removed.
-
- - run_test.pl: Removed specification of endpoint priorities
- since they are no longer needed or supported. Also
- simplified some of the other options used in this test.
-
- - client.dsp:
- - server.dsp:
-
- Removed the static build configurations.
-
- - README: Updated to reflect changes in the test.
-
- * tests/RTCORBA/Server_Declared:
-
- - server.cpp:
-
- - The old Reactor-per-Priority scheme was replaced by a
- simple ORB::run().
-
- - Exception test for an invalid servant priority was
- removed since there is already a test that does this.
-
- - Added check to make sure multiple priorities are
- supported.
-
- - Removed dependency on advance resources in the
- strategies library.
-
- - client.cpp: Added check to make sure multiple priorities
- are supported.
-
- - run_test.pl: Removed specification of endpoint priorities
- since they are no longer needed or supported. Also
- simplified some of the other options used in this test.
-
- - server.conf: The service configurator directives in this
- file were no longer needed; therefore this file was
- removed.
-
- - README: Updated to reflect changes in the test.
-
- * tests/RTCORBA/MT_Client_Protocol_Priority
-
- - server.cpp:
-
- - The old Reactor-per-Priority scheme was replaced by RT
- Thread-Pools.
-
- - Added check to make sure multiple priorities are
- supported.
-
- - client.cpp:
-
- - Added check to make sure multiple priorities are
- supported.
-
- - Removed dependency on advance resources in the
- strategies library.
-
- - run_test.pl: Removed specification of endpoint priorities
- since they are no longer needed or supported.
-
- - server.conf: Removed some of the service configurator
- directives in this file that were no longer needed.
-
- - README: Updated to reflect changes in the test.
-
- * tests/RTCORBA/check_supported_priorities.cpp: Common check
- used by several RT tests to make sure multiple priorities
- are supported.
-
- * tests/RTCORBA/Linear_Priority/client.cpp:
- * tests/RTCORBA/Linear_Priority/server.cpp:
-
- No need to use ACE_DEFAULT_THREAD_PRIORITY. 0 is a valid
- CORBA priority for any range when using Linear mapping.
-
- * tests/RTCORBA/Destroy_Thread_Pool/Destroy_Thread_Pool.cpp:
- * tests/RTCORBA/Persistent_IOR/server.cpp:
- * tests/RTCORBA/Policy_Combinations/client.cpp:
- * tests/RTCORBA/Policy_Combinations/server.cpp:
- * tests/RTCORBA/Thread_Pool/server.cpp:
-
- Removed dependency on ACE_DEFAULT_THREAD_PRIORITY by getting
- the main thread's priority from the RT Current.
-
- * tests/RTCORBA/Banded_Connections/bands.nt:
- * tests/RTCORBA/MT_Client_Protocol_Priority/run_test.pl:
- * tests/RTCORBA/Server_Declared/run_test.pl:
-
- Reworked priority values for NT after the direct mapping
- became simple. The only valid CORBA priorities with direct
- mapping on NT are: 0, 1, 2, and 15. For bands, only 0, 1,
- and 2 are counted because of the emptiness between 2 and 15.
-
- * tests/RTCORBA/RTCORBA_tests.dsw:
- * tests/RTCORBA/Makefile:
- * tests/RTCORBA/Makefile.bor:
-
- Added new tests ORB_init, Policy_Combinations,
- Destroy_Thread_Pool, Persistent_IOR, Collocation, and
- Linear_Priority.
-
- * tests/RTCORBA/Banded_Connections/Makefile:
- * tests/RTCORBA/Banded_Connections/client.bor:
- * tests/RTCORBA/Banded_Connections/client.dsp:
- * tests/RTCORBA/Banded_Connections/server.bor:
- * tests/RTCORBA/Banded_Connections/server.dsp:
- * tests/RTCORBA/Client_Propagated/Makefile:
- * tests/RTCORBA/Client_Propagated/client.bor:
- * tests/RTCORBA/Client_Propagated/client.dsp:
- * tests/RTCORBA/Client_Propagated/server.bor:
- * tests/RTCORBA/Client_Propagated/server.dsp:
- * tests/RTCORBA/Linear_Priority/client.dsp:
- * tests/RTCORBA/Linear_Priority/server.dsp:
- * tests/RTCORBA/Policy_Combinations/client.dsp:
- * tests/RTCORBA/Policy_Combinations/server.dsp:
- * tests/RTCORBA/Private_Connection/client.dsp:
- * tests/RTCORBA/Private_Connection/server.dsp:
- * tests/RTCORBA/Client_Propagated/Makefile:
- * tests/RTCORBA/Client_Propagated/client.bor:
- * tests/RTCORBA/Client_Propagated/client.dsp:
- * tests/RTCORBA/Client_Propagated/server.bor:
- * tests/RTCORBA/Client_Propagated/server.dsp:
-
- Removed Strategies library since it is not needed.
-
- * tests/RTCORBA/Client_Protocol/client.bor:
- * tests/RTCORBA/Client_Protocol/client.dsp:
- * tests/RTCORBA/Explicit_Binding/client.bor:
- * tests/RTCORBA/Explicit_Binding/client.dsp:
- * tests/RTCORBA/MT_Client_Protocol_Priority/client.bor:
- * tests/RTCORBA/MT_Client_Protocol_Priority/client.dsp:
- * tests/RTCORBA/Private_Connection/client.bor:
- * tests/RTCORBA/RTMutex/server.dsp:
- * tests/RTCORBA/Server_Protocol/client.bor:
- * tests/RTCORBA/Server_Protocol/client.dsp:
-
- Removed PortableServer and RTPortableServer libraries since
- they are not needed.
-
- * tests/TAO_Tests.dsw:
- * tests/BiDirectional/test_i.cpp:
- * tests/BiDirectional_NestedUpcall/test_i.cpp:
- * tests/Collocation/Coll_Test_Stubs.bor:
- * tests/Collocation/Coll_Test_Stubs.dsp:
- * tests/Collocation/Coll_Tester.cpp:
- * tests/Collocation/Coll_Tester.h:
- * tests/Collocation/Collocation.bor:
- * tests/Collocation/Collocation.cpp:
- * tests/Collocation/Collocation.dsp:
- * tests/Collocation/Collocation.dsw:
- * tests/Collocation/Collocation_Test_Stubs.bor:
- * tests/Collocation/Collocation_Test_Stubs.dsp:
- * tests/Collocation/Collocation_Tester.cpp:
- * tests/Collocation/Collocation_Tester.h:
- * tests/Collocation/Diamond.bor:
- * tests/Collocation/Diamond.dsp:
- * tests/Collocation/Makefile.bor:
- * tests/Collocation/Makefile.test:
- * tests/Collocation/README:
- * tests/Connection_Purging/client.bor:
- * tests/Connection_Purging/client.cpp:
- * tests/Connection_Purging/client.dsp:
- * tests/Connection_Purging/server.bor:
- * tests/Connection_Purging/server.cpp:
- * tests/Connection_Purging/server.dsp:
- * tests/DLL_ORB/Test_Client_Module.dsp:
- * tests/DLL_ORB/Test_Server_Module.dsp:
- * tests/DLL_ORB/client.dsp:
- * tests/DLL_ORB/server.dsp:
- * tests/Exposed_Policies/Makefile:
- * tests/Exposed_Policies/Policy_Tester.cpp:
- * tests/Exposed_Policies/Policy_Verifier.cpp:
- * tests/Exposed_Policies/run_test.pl:
- * tests/Exposed_Policies/server.conf:
- * tests/Exposed_Policies/svc.conf:
- * tests/Faults/middle.dsp:
- * tests/Multiple/Client.dsp:
- * tests/Multiple/Server.dsp:
- * tests/Oneways_Invoking_Twoways/Oneways_Invoking_Twoways.dsw:
-
- Made a bunch of small changes to make code and makefiles
- consistent.
-
- * docs/rtcorba/features.html:
- * docs/rtcorba/status.html:
- * docs/rtcorba/issues.html:
-
- Updated RTCORBA documentation to reflect new thread-pool
- support. Also added new issues that need to be addressed.
-
- * docs/Options.html: Added documentation for new
- -ORBScopePolicy option and updated documentation for
- -ORBPriorityMapping option.
-
-Mon Sep 17 13:18:35 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * orbsvcs/orbsvcs/CosEventComm.idl:
- * orbsvcs/orbsvcs/CosEventChannelAdmin.idl:
- * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerControl.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Defaults.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Dispatching_Task.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_EventChannel.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Event_Loader.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Factory.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_MT_Dispatching.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullConsumer.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPullSupplier.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushSupplier.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Pulling_Strategy.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_ConsumerControl.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_Pulling_Strategy.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_Reactive_SupplierControl.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.h:
- * orbsvcs/orbsvcs/CosEvent/CEC_SupplierControl.h:
- Use Doxygen to document the COS Event Service implementation and
- its IDL interfaces.
-
- * orbsvcs/orbsvcs/RtecBase.idl:
- * orbsvcs/orbsvcs/RtecDefaultEventData.idl:
- * orbsvcs/orbsvcs/RtecEventChannelAdmin.idl:
- * orbsvcs/orbsvcs/RtecEventComm.idl:
- * orbsvcs/orbsvcs/RtecUDPAdmin.idl:
- Use Doxygen to document TAO's Real-time Event Service interface.
-
- * orbsvcs/orbsvcs/CosNotification.idl:
- * orbsvcs/orbsvcs/CosNotifyChannelAdmin.idl:
- * orbsvcs/orbsvcs/CosNotifyComm.idl:
- * orbsvcs/orbsvcs/CosNotifyFilter.idl:
- Use Doxygen to document the OMG Notification Service IDL files.
-
-Sun Sep 16 11:22:12 2001 Balachandran <bala@cs.wustl.edu>
-
- * TAO version 1.1.20 released.
-
-Fri Sep 14 11:35:55 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp (consolidate_message): Used the size () of the
- message block instead of the length (). Thanks to Mahesh
- Varadarajan <mahesh.varadarajan@divatv.com> for
- reporting this.
-
-Fri Sep 14 07:08:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Makefile.bor: Added Cache_Growth_Test to this
- Makefile. Thanks to Johnny Willemsen for pointing this out.
-
-Thu Sep 13 13:46:54 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/Options.html: Changed -ORBCacheMax in the documentation to
- be -ORBConnectionCacheMax. Thanks to Jean-christophe Dubois
- <jcd@one.com> for reporting this.
-
-Thu Sep 13 13:18:48 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Cache_Growth_Test: A new test for testing whether the
- Cache size grows when old clients start disconnecting and new
- clients start connecting.
-
- * tests/Cache_Growth_Test/run_test.pl:
- * tests/Cache_Growth_Test/Makefile:
- * tests/Cache_Growth_Test/Makefile.bor:
- * tests/Cache_Growth_Test/server.dsp:
- * tests/Cache_Growth_Test/Cache_Grow.dsw:
- * tests/Cache_Growth_Test/server.cpp:
- * tests/Cache_Growth_Test/client.cpp:
- * tests/Cache_Growth_Test/server.bor:
- * tests/Cache_Growth_Test/client.bor:
- * tests/Cache_Growth_Test/README:
- * tests/Cache_Growth_Test/Hello.h:
- * tests/Cache_Growth_Test/Hello.cpp: Files for the test.
-
- * tests/Makefile: Added the new test.
-
-Thu Sep 13 12:46:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.h:
- * tao/Transport.cpp: Changed the name of the method mark_invalid
- () to purge_entry (). The mark_invalid () does not remove the
- handler from cache. Just leaving the cache entry after the
- connection is closed leads to increase in run time memory
- requirements. See bug #1025 for details. Thanks to
- Jean-Christophe Dubois <jcd@one.com> and Kevin Cline
- <krc@one.com> for reporting this. Thanks to Chris Cleeland and
- Chad Elliott for reviewing the fix.
-
- * tao/IIOP_Connection_Handler.cpp:
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp (handle_close):
-
- Purge the entry while closing down the connection instead of
- instead of marking it invalid.
-
-Thu Sep 13 11:33:35 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/BiDirectional/test_i.cpp (call_client):
- * tests/BiDirectional_NestedUpcall/test_i.cpp: Instead of just
- using ACE_ASSERT, added an extra debug statement with reason why
- the program is going to abort.
-
-Thu Sep 13 11:05:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp:
- * tao/IIOP_Connection_Handler.cpp (process_listen_point_list):
- When creating an IIOP Endpoint, passed in the value of the
- ORBDottedDecimal address value from the ORB_Core. This is a real
- stupid mistake :(. Added a debug statement. Thanks to Werner
- Buchert <w.buchert@medat.de> for reporting this problem.
-
-Wed Sep 12 17:05:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/DynamicAny/DynAny_i.cpp: Fixed a compile problem with g++.
-
-Wed Sep 12 16:29:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Leader_Follower.cpp (wait_for_event): If the follower times
- out, we set the state in the LF_Event to indicate an error.
-
- * tao/LF_Event.h:
- * tao/LF_Event.cpp:
- * tao/LF_Event.inl: Added a new private method that allows setting
- the state without holding the lock. Moreover, before we signal
- the follower in state_changed () we check whether the LF_Event
- has reached a final state or not. Further, we also check whether
- we have a valid follower_ pointer before we signal the
- follower. This fix should fix the problems MT_Timeout tests. The
- problem was that the leader thread was processing the followers
- reply when the follower timedout.
-
-Wed Sep 12 12:33:15 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/DynamicAny/DynAny_i.cpp:
-
- Added 'const' to the char* passed to the extraction
- operator in the change below.
-
-Wed Sep 12 10:13:31 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/DynamicAny/DynAny_i.cpp:
-
- Strange bug that seems to happen only on Win32, where when
- a DynAny containing a string is copied from another, its type
- code member gets the bound copied correctly, but its member
- any's type code does not. It crops up only in the equal()
- method where the strings are extracted from the member anys
- and compared. The CORBA::Any::to_string struct is left out
- of the extraction from the lhs any. There is no danger of
- type mismatch, since the type codes (which do retain bound
- information) have already been compared for equivalence.
-
-Tue Sep 11 18:07:46 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/AV/Fill_ACE_QoS.h:
- * orbsvcs/orbsvcs/AV/Fill_ACE_QoS.cpp:
-
- Fixed compile errors with RAPI enabled.
-
-Tue Sep 11 15:46:44 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/File_IO/client.cpp:
- * tests/File_IO/server.cpp: Reduced the number of threads a bit
- for Sun CC alone. Bug 957 is in action again.
-
-Mon Sep 10 20:00:25 2001 Priyanka Gontla <pgontla@ece.uci.edu>
-
- * tao/MCAST_Parser.cpp:
- Fixed the errors on Win.
-
-Mon Sep 10 13:34:43 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/ORB_Core.cpp (output_cdr_dblock_allocator): Added a comment
- in the code.
-
-Mon Sep 10 12:23:30 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/DynamicAny/DynCommon.cpp (insert_string, get_string):
-
- Fixed a problem in these methods with bounded strings.
- Thanks to Russell Mora <rd.mora@econz.co.nz> for
- reporting this bug.
-
- * tests/DynAny_Test/da_tests.idl:
- * tests/DynAny_Test/test_dynsequence.cpp:
-
- Added a bounded string example to the DynSequence test.
-
-Mon Sep 10 12:17:12 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/Makefile:
- Moved the libraries around to get proper link line. It was
- busted. Further added a realclean so that we remove strange
- generated files out of the directory. This shoudl fix one of the
- compile errors in LYNX_PPC builds.
-
-Mon Sep 10 07:41:05 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Xt_Stopwatch/Makefile: Updated dependencies.
-
-Sun Sep 9 11:09:04 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Makefile: Updated dependencies.
-
-Fri Sep 7 17:16:50 2001 Anand Krishnan <anandk@cs.wustl.edu>
-
- * orbsvcs/tests/Security/MT_SSLIOP/run_test.pl:
- Actually committing the file.
-
-Fri Sep 7 12:56:45 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/AV/Protocol_Factory.cpp: Add default constructor.
- Thanks to Joe Loyall <jloyall@bbn.com> for finding this.
-
-Thu Sep 6 20:07:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Makefile.bor: Added MCAST_Parser to the Makefile.
-
-Thu Sep 6 12:56:55 2001 Priyanka Gontla <gontla_p@ociweb.com>
-
- * orbsvcs/tests/Simple_Naming/run_test.pl (client):
- Modified the perl script to adhere to the new way of providing
- the reference to a multicasted service.
-
-Thu Sep 6 07:17:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/MCAST_Parser.cpp: Fixed compile errors in Minimum builds.
-
-Wed Sep 5 22:28:41 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/MCAST_Parser.cpp: Fixed a compile error with g++.
- * tao/ORB.cpp: Fixed a warning with g++.
-
-Wed Sep 5 19:51:36 2001 Priyanka Gontla <gontla_p@ociweb.com>
-
- * tao/TAO_Static.dsp:
- * tao/TAO.dsp :
- Added the new MCAST_Parser files.
-
-Wed Sep 5 17:26:12 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/AV/AVStreams_i.cpp:
-
- Made changes to TAO_StreamEndPoint::change_qos to allow passing
- a null AVStreams::QoS to the TAO_AV_Flow_Handler::change_qos.
-
- * orbsvcs/orbsvcs/AV/AVStreams_i.i:
-
- Added a missing parameter to the ACE_DEBUG statement to print
- the flow name.
-
- * orbsvcs/orbsvcs/AV/QoS_UDP.cpp:
-
- Facilitated the passing of null AVStreams::QoS to the negotiator.
-
-Wed Sep 5 17:26:12 2001 Anand Krishnan <anandk@cs.wustl.edu>
-
- * orbsvcs/tests/Security/MT_SSLIOP/run_test.pl:
- * orbsvcs/tests/Security/MT_SSLIOP/server.cpp:
- * orbsvcs/tests/Security/MT_SSLIOP/Server_Worker.h:
- * orbsvcs/tests/Security/MT_SSLIOP/Server_Worker.cpp:
- * orbsvcs/tests/Security/MT_SSLIOP/client.cpp:
- * orbsvcs/tests/Security/MT_SSLIOP/Client_Worker.cpp:
- * orbsvcs/tests/Security/MT_SSLIOP/Client_Worker.h:
- * orbsvcs/tests/Security/MT_SSLIOP/Makefile:
- * orbsvcs/tests/Security/MT_SSLIOP/test_i.cpp:
- * orbsvcs/tests/Security/MT_SSLIOP/test_i.h:
- * orbsvcs/tests/Security/MT_SSLIOP/test_i.i:
- * orbsvcs/tests/Security/MT_SSLIOP/client.conf:
- * orbsvcs/tests/Security/MT_SSLIOP/server.conf:
- * orbsvcs/tests/Security/MT_SSLIOP/selfsigncert.pem:
- * orbsvcs/tests/Security/MT_SSLIOP/pvtkey.pem:
- * orbsvcs/tests/Security/MT_SSLIOP/test.idl: A test for a simple
- multi-threaded SSLIOP test. This test will not be included in
- the daily builds for the upcoming beta, but will be there for
- the next beta.
-
-Wed Sep 5 12:10:40 2001 Priyanka Gontla <gontla_p@ociweb.com>
-
- This set of changes are for bug 977.
-
- * tao/MCAST_Parser.i:
- * tao/MCAST_Parser.h:
- * tao/MCAST_Parser.cpp:
-
- The Parser for the new IP multicast format. The multicast
- format is mcast://mcast_address:mcast_port:nic_address:ttl.
- All the multicast requests are now dealt via this parser. The default
- multicast address is 224.9.9.2. The default multicast port is
- 10013 ( the same port that we used for NameService .. no big
- reason .. just a simple choice), default nic is eth0 and default
- TTL value is 1.
-
- * tao/TAO_Internal.cpp:
- Add MCAST protocol to the list of services that have to be
- initiated.
-
- * tao/ORB.h :
- * tao/ORB.cpp :
- Moved the multicast_to_service and multicast_query methods to
- MCAST_Parser. Modified ::resolve_service accordingly.
-
- * tao/ORB_Core.cpp :
- Check for mcast: format when ORBDefaultInitRef option is used
- and set the object delimiter to '/' if it is mcast protocol.
-
- * tao/default_resource.cpp:
- Modify the total no. of parsers to check for: from 4 to 5.
- and dynamically load the MCAST_Parser too.
-
- * tao/Makefile:
- Added MCAST_Parser
-
- * orbsvcs/tests/IOR_MCast/README :
- * orbsvcs/tests/IOR_MCast/Makefile :
- * orbsvcs/tests/IOR_MCast/MCast.idl :
- * orbsvcs/tests/IOR_MCast/MCast_Server_i.h :
- * orbsvcs/tests/IOR_MCast/MCast_Server_i.cpp :
- * orbsvcs/tests/IOR_MCast/client.cpp :
- * orbsvcs/tests/IOR_MCast/ior_mcast_client_i.h :
- * orbsvcs/tests/IOR_MCast/ior_mcast_client_i.cpp :
- * orbsvcs/tests/IOR_MCast/server.cpp :
- * orbsvcs/tests/IOR_MCast/server_i.h :
- * orbsvcs/tests/IOR_MCast/server_i.cpp :
-
- Simple test to test the new MCAST_Parser.
-
-Wed Sep 5 12:35:33 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Endpoint.h: Added a lock that is used to lock when a thread
- does remote object address lookups. Theoretically speaking we
- shouldnt be putting the lock in the TAO_Endpoint class. But as
- the lock is required for most of the protocols supported in TAO
- we have pushed it here. We also believe that other protocols may
- need a lock during lookups.
-
- * tao/IIOP_Endpoint.i: Hold a lock in object_addr (). There was a
- subtle race condition in that method. In object_addr (void) the
- code first checks for object_addr_.get_type() != AF_INET and, if
- so, it calls ACE_INET_Addr::set(). ACE_INET_Addr::set() sets
- type field to AF_INET, zeros the inet_addr structure and then
- does a hostname lookup.
-
- If two threads enter the object_addr() method the first may end
- up blocked for a while in the hostname lookup. The second
- thread will see that AF_INET is set and return an (zero'ed)
- ACE_INET_Addr structure.
-
- The race can happen from TAO_IIOP_Connector::connect() when
- multiple threads attempt to talk to the same object. You will
- sometimes see transient exceptions as one of the threads tries
- to connect to the (invalid) inet_addr. This could potentially
- fix #189, but it hasnt been tested out properly. Thanks to
- <pphillip@opentext.com> for nailining the probelm and suggesting
- this fix. This should fix #1017.
-
- * tao/Strategies/DIOP_Endpoint.i:
- * tao/Strategies/SHMIOP_Endpoint.i: Applied the same fix.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.i: Just added a comment
- telling that we shouldnt be holding the lock as the lock is being
- held in the IIOP class.
-
- * tao/IIOP_Transport.cpp:
- * tao/Strategies/DIOP_Transport.cpp:
- * tao/Strategies/SHMIOP_Transport.cpp:
- * tao/Strategies/UIOP_Transport.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp: Do not print out
- error messages if the recv () returns from a timeout. This extra
- print statements in a thread-per-connection case, when a thread
- timedout, was causing more confusion than it tried addressing.
-
-Wed Sep 5 7:20:17 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/tests/AVStreams/Multicast/ftp.dsp:
- * orbsvcs/tests/AVStreams/Multicast/server.dsp: Added the
- path to teh strategies library. I am not sure when I will get
- the Win32 stuff right every time:(
-
-Tue Sep 4 20:11:17 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/tests/AVStreams/Multicast/ftp.dsp:
- * orbsvcs/tests/AVStreams/Multicast/server.dsp: Added the
- strategies library to the set of libraries that needs to be
- linked.
-
-Tue Sep 4 15:11:17 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/performance-tests/EC_Federated_Latency/Makefile:
- Generated dependencies again. Also fixed a cut and paste error
- in IDL names. This created problems during 'make
- realclean'. This should fix compile errors in NoInline builds.
-
-Tue Sep 4 11:19:44 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/File_IO/client.cpp: Changed the 'oflag' arguments for the
- file so that it works in our daily builds. We only pass the
- O_RDONLY value to the remote call. This should fix the exception
- problems seen in our daily builds.
-
-Tue Sep 4 11:06:55 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * orbsvcs/orbsvcs/CosEvent/CEC_ConsumerAdmin.cpp:
- * orbsvcs/orbsvcs/CosEvent/CEC_Default_Factory.cpp:
- * orbsvcs/orbsvcs/CosEvent/CEC_SupplierAdmin.cpp:
- * orbsvcs/orbsvcs/Event/EC_ConsumerAdmin.cpp:
- * orbsvcs/orbsvcs/Event/EC_SupplierAdmin.cpp:
-
- Added includes for ESF templates. Fix for GHS on VxWorks.
- Thanks, Priyanka <pgontla@ece.uci.edu>, for figuring this one
- out.
-
-Tue Sep 4 09:19:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Makefile.av: Updated dependencies again to fix a
- compilation error.
-
-Tue Sep 4 07:53:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * */Makefile: Updated dependencies. We wantde this done before
- 1.2. I dont think we should be having anymore big changes to
- regenerate this again.
-
-Tue Sep 4 07:22:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/performance-tests/EC_Federated_Latency/Servant_var.inl:
- Changed the typename declaration to class. The usage of typename
- chokes SunCC42.
-
-Mon Sep 3 18:52:03 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/tests/AVStreams/Multicast/Makefile:
- * orbsvcs/tests/AVStreams/Multicast/ftp.bor:
- * orbsvcs/tests/AVStreams/Multicast/server.bor:
- * orbsvcs/tests/AVStreams/Multicast/server.h:
- * orbsvcs/tests/AVStreams/Multicast/server.cpp:
- * orbsvcs/tests/AVStreams/Multicast/ftp.h:
- * orbsvcs/tests/AVStreams/Multicast/ftp.cpp:
- Use service configurator to select reactor type. Fix some typos.
-
- * orbsvcs/tests/AVStreams/Multicast/components_svc.conf: (Added)
-
-Fri Aug 31 19:28:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Faults/server.cpp:
- * tests/Faults/test_i.h: The servant implementation inherits from
- the PortableServer::RefCountServantBase. Changes were also done
- in the server.cpp file to create the servant on the heap. Thanks
- to Chris Kohlhoff for pointing this out.
-
-Fri Aug 31 18:58:27 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/File_IO/client.cpp: Fixed a warning.
-
-Fri Aug 31 18:53:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Connection_Handler.cpp:
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp: Reverted the
- change "Tue Aug 28 16:56:07 2001 Balachandran Natarajan
- <bala@cs.wustl.edu>". Put the sockets back in blocking mode for
- a RW connection handler. We had severe fall in performance. This
- should get that back. We need to come up with a better way to
- handle the problem for which the fix was put in.
-
-Fri Aug 31 16:32:14 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/performance-tests/EC_Federated_Latency/Servant_var.h:
- Changed the typename declaration to class. The usage of typename
- chokes SunCC42.
-
-Fri Aug 31 08:31:09 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/TestUtils/TestCombinedThreads.cpp:
-
- Fix for the VxWorks based thread join. Return 0 even if the
- thread id could not be verified.
-
-Fri Aug 31 07:52:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * orbsvcs/tests/Concurrency/*.bor:
- * orbsvcs/tests/LoadBalancing/*.bor:
- * orbsvcs/tests/Makefile.bor:
- Added BCB makefiles for these tests
-
-Thu Aug 30 15:25:13 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/DLL_ORB/client.cpp (main):
- * tests/DLL_ORB/server.cpp (main):
-
- Reverted the change that pre-loaded the default resource factory
- before the ORB. Chris Kohlhoff's slick fix for the Server
- Configurator obviates the need to this sort of pre-loading.
-
-Thu Aug 30 07:59:40 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * TAOACE.dsw:
- Remove bogus dependency for the RT Event Service
-
-Wed Aug 29 14:35:31 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h:
-
- "Doxygen-ated" this header.
-
-Wed Aug 29 14:46:25 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/performance-tests/EC_Federated_Latency/Makefile:
- * orbsvcs/performance-tests/EC_Federated_Latency/Makefile: Will
- not build with old g++ compilers.
-
-Wed Aug 29 14:27:27 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/Throughput/svc.conf: Used blocked flushing
- strategy. Using a RW connection handler with a LF flushing
- strategy can be really really tricky. It may not be that tricky,
- it wouldnt work :-). This should fix the failure problem
- observed in Solaris builds.
-
-Wed Aug 29 13:13:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/performance-tests/EC_Federated_Latency/Servant_var.h:
- * orbsvcs/performance-tests/EC_Federated_Latency/Servant_var.inl:
- Fixed warnings in TRU 64 builds.
-
-Wed Aug 29 06:21:25 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * tao/ORB.h (CORBA_ORB): Improved the documentation for
- ORB::destroy(). Thanks to Wilfried Reinoehl
- <Wilfried.Reinoehl@WiredMinds.de> for reporting this.
-
-Tue Aug 28 16:56:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Connection_Handler.cpp:
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp: Put the sockets in
- non-blocking mode even for wait on read strategy. Need to figure
- out how much of performance impact does this have. If it has a
- penalty then we can revert this change. This solves one problem
- that we could have. If someone uses RW connection handler
- through a svc conf file, we could inadvertently turn the server
- sockets into blocking mode which could create problems.
-
-Tue Aug 28 11:31:58 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/DLL_ORB/client.cpp (main):
- * tests/DLL_ORB/server.cpp (main):
-
- Load the Resource_Factory before the test module. This forces
- the Resource_Factory to exist longer than the dynamically loaded
- ORB, thus allowing the ORB to make invocations on it during
- destruction. Fixes a segmentation fault in both the client and
- server binaries.
-
-Tue Aug 28 12:28:58 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/TestUtils/TestCombinedThreads.cpp:
-
- Reformat the code to follow the style guidelines.
-
-Tue Aug 28 10:40:06 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/TestUtils:
- * tests/TestUtils/Makefile:
- * tests/TestUtils/TestCombinedThreads.h:
- * tests/TestUtils/TestCombinedThreads.cpp:
-
- Added the TestUtils VxWorks testing library. This is used to
- create "one-button" TAO tests with VxWorks.
-
- * tests/Makefile:
-
- Added TestUtils to the Makefile. This is compiled only for
- VxWorks.
-
-Tue Aug 28 08:22:07 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/AMI_Buffering/run_test.pl:
- * tests/Big_Oneways/run_test.pl:
- * tests/Big_Request_Muxing/run_test.pl:
- * tests/Big_Twoways/run_test.pl:
- * tests/Blocking_Sync_None/run_test.pl:
- * tests/Client_Leaks/run_test.pl:
- * tests/Crash_On_Write/run_test.pl:
- * tests/Crashed_Callback/run_test.pl:
- * tests/Exposed_Policies/run_test.pl:
- * tests/Hello/run_test.pl:
- * tests/MT_Server/run_test.pl:
- * tests/MT_Timeout/run_test.pl:
- * tests/Muxing/run_test.pl:
- * tests/Oneway_Buffering/run_buffer_size.pl:
- * tests/Oneway_Buffering/run_message_count.pl:
- * tests/Oneway_Buffering/run_test.pl:
- * tests/Oneway_Buffering/run_timeout.pl:
- * tests/Param_Test/run_test.pl:
- * tests/RTCORBA/Server_Declared/run_test.pl:
- * tests/RTCORBA/Server_Protocol/run_test.pl:
- * tests/RTCORBA/Thread_Pool/run_test.pl:
- * tests/Reliable_Oneways/run_sync_none.pl:
- * tests/Reliable_Oneways/run_sync_with_server.pl:
- * tests/Reliable_Oneways/run_sync_with_target.pl:
- * tests/Reliable_Oneways/run_sync_with_transport.pl:
- * tests/Reliable_Oneways/run_test.pl:
- * tests/Server_Leaks/run_test.pl:
- * tests/Single_Read/run_test.pl:
- * tests/Timed_Buffered_Oneways/run_test.pl:
-
- Very minor bug fixes and consistency modifications.
-
-Mon Aug 27 07:36:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * tests/Makefile.bor: added new File_IO test
- * examples/simple/time-date/time-date.bor: changed targetdir
- to ./ to that svc.conf can find the dll
- * orbsvcs/tests/ior_corba_name/*.bor: Added BCB makefiles
- * orbsvcs/tests/Time/*.bor: Added BCB makefiles
- * orbsvcs/tests/Makefile.bor: added ior_corbaname and time
-
-Sun Aug 26 08:20:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/performance-tests/EC_Federated_Latency/Servant_var.inl:
- Removed the default value of the argument. This should fix
- warnings in GCC 3.0 builds.
-
-Sat Aug 25 23:38:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/performance-tests/EC_Federated_Latency/server.cpp:
- * orbsvcs/performance-tests/EC_Federated_Latency/client.cpp:
- * orbsvcs/performance-tests/EC_Latency/server.cpp:
- * orbsvcs/performance-tests/EC_Latency/client.cpp: #included
- "tao/Messaging.h". Fixes build problems in no interceptors
- build.
-
-Sat Aug 25 09:49:06 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/File_IO/server.dsp:
- * tests/File_IO/client.dsp: Fixed the Win32 builds.
-
-Sat Aug 25 09:04:06 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/performance-tests/EC_Federated_Latency/Makefile:
- * orbsvcs/performance-tests/EC_Latency/Makefile: Will not build
- if corba_messaging == 0.
-
-Fri Aug 24 23:16:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/File_IO/File.idl:
- * tests/File_IO/File_i.cpp:
- * tests/File_IO/File_i.h:
- * tests/File_IO/client.cpp
- * tests/File_IO/run_test.pl:
- * tests/File_IO/server.cpp: Fixed Fuzz errors.
-
-Fri Aug 24 19:20:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/AVStreams_i.cpp:
- Remove duplicate template instantiations.
-
-Fri Aug 24 16:15:36 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * orbsvcs/performance-tests/EC_Federated_Latency/Peer.cpp:
- * orbsvcs/performance-tests/EC_Federated_Latency/Coordinator.cpp:
- More fixes for platforms without native C++ exceptions.
-
-Fri Aug 24 14:48:28 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * orbsvcs/performance-tests/EC_Federated_Latency/Servant_var.cpp:
- Fixed the code to deal with platforms without C++ native
- exceptions.
-
-Fri Aug 24 14:35:59 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * orbsvcs/orbsvcs/Event/EC_Gateway.cpp:
- Comment out debug messages
- Don't publish special event types for the gateway, they are
- not used for filtering supplier data anyway.
-
- * orbsvcs/orbsvcs/Event/EC_ObserverStrategy.cpp:
- Use a temporary reference to make the code easier to read.
-
- * orbsvcs/Makefile:
- * orbsvcs/performance-tests/Makefile:
- Add new directory for the orbsvcs performance tests.
-
- * orbsvcs/performance-tests/EC_Latency/Makefile:
- * orbsvcs/performance-tests/EC_Latency/README:
- * orbsvcs/performance-tests/EC_Latency/run_test.pl:
- * orbsvcs/performance-tests/EC_Latency/Client_Task.h:
- * orbsvcs/performance-tests/EC_Latency/Client_Task.cpp:
- * orbsvcs/performance-tests/EC_Latency/Consumer.h:
- * orbsvcs/performance-tests/EC_Latency/Consumer.cpp:
- * orbsvcs/performance-tests/EC_Latency/Supplier.h:
- * orbsvcs/performance-tests/EC_Latency/Supplier.cpp:
- * orbsvcs/performance-tests/EC_Latency/client.cpp:
- * orbsvcs/performance-tests/EC_Latency/server.cpp:
- A latency test for the real-time event channel that can be
- automatically ran in the nightly regression testsuite.
-
- * orbsvcs/performance-tests/EC_Federated_Latency/README:
- * orbsvcs/performance-tests/EC_Federated_Latency/Makefile:
- * orbsvcs/performance-tests/EC_Federated_Latency/run_test.pl:
- * orbsvcs/performance-tests/EC_Federated_Latency/Control.idl:
- * orbsvcs/performance-tests/EC_Federated_Latency/ECFL_Configuration.h:
- * orbsvcs/performance-tests/EC_Federated_Latency/Consumer.h:
- * orbsvcs/performance-tests/EC_Federated_Latency/Consumer.cpp:
- * orbsvcs/performance-tests/EC_Federated_Latency/Coordinator.h:
- * orbsvcs/performance-tests/EC_Federated_Latency/Coordinator.cpp:
- * orbsvcs/performance-tests/EC_Federated_Latency/Loopback.h:
- * orbsvcs/performance-tests/EC_Federated_Latency/Loopback.cpp:
- * orbsvcs/performance-tests/EC_Federated_Latency/Loopback_Consumer.h:
- * orbsvcs/performance-tests/EC_Federated_Latency/Loopback_Consumer.cpp:
- * orbsvcs/performance-tests/EC_Federated_Latency/Loopback_Supplier.h:
- * orbsvcs/performance-tests/EC_Federated_Latency/Loopback_Supplier.cpp:
- * orbsvcs/performance-tests/EC_Federated_Latency/Peer.h:
- * orbsvcs/performance-tests/EC_Federated_Latency/Peer.cpp:
- * orbsvcs/performance-tests/EC_Federated_Latency/Servant_var.h:
- * orbsvcs/performance-tests/EC_Federated_Latency/Servant_var.inl:
- * orbsvcs/performance-tests/EC_Federated_Latency/Servant_var.cpp:
- * orbsvcs/performance-tests/EC_Federated_Latency/Supplier.h:
- * orbsvcs/performance-tests/EC_Federated_Latency/Supplier.cpp:
- * orbsvcs/performance-tests/EC_Federated_Latency/client.conf:
- * orbsvcs/performance-tests/EC_Federated_Latency/client.cpp:
- * orbsvcs/performance-tests/EC_Federated_Latency/server.cpp:
- Finally! A test to measure latency over a federated event
- channel, initial numbers look good.
-
-Fri Aug 24 13:36:19 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/File_IO/run_test.pl:
- * tests/File_IO/File_i.cpp: Removed some vague debug statements.
- * tests/File_IO/client.cpp: Reduced teh number of threads to 10,
- instead of 20.
-
-Fri Aug 24 12:44:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/File_IO/: New test to our test suite. This test actually
- brought the problem mentioned in bug #1002 to the surface. The
- problem was burried in other tests and this test actually
- could reproduce the bug every time consistently.
-
- * tests/File_IO/File_IO.dsw:
- * tests/File_IO/File_i.h:
- * tests/File_IO/server.bor:
- * tests/File_IO/Makefile:
- * tests/File_IO/Makefile.bor:
- * tests/File_IO/client.dsp:
- * tests/File_IO/server.cpp:
- * tests/File_IO/File.idl:
- * tests/File_IO/client.bor:
- * tests/File_IO/File_i.cpp:
- * tests/File_IO/README:
- * tests/File_IO/client.cpp:
- * tests/File_IO/run_test.pl:
- * tests/File_IO/big.txt:
- * tests/File_IO/server.dsp: Files for the new test. Thanks to
- Jonathan Reis <reis@stentor.com> for providing this test.
-
-Fri Aug 24 08:24:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * examples/simple/time-date/time-date.bor:
- Added target, so that time-date dll name is appended with
- decorator string
-
-Thu Aug 23 09:49:54 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/include/utl_err.h:
- * TAO_IDL/util/utl_err.cpp:
- * TAO_IDL/util/utl_identifier.cpp:
-
- Added new error message saying that an idenifier has
- more than one leading underscore, and a check for
- that condition in the UTL_Identifier contstructor.
- Thanks to Daniel Manfis <dany_100@yahoo.com> for
- reporting this bug.
-
-Thu Aug 23 09:15:24 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * tests/Strategies/run_test.pl:
-
- Use the PerlACE::LocalFile() function for the svc.conf
- files.
-
-Thu Aug 23 01:54:42 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * tests/DLL_ORB/Test_Client_Module.bor:
- * tests/DLL_ORB/Test_Server_Module.bor:
- * tests/DLL_ORB/client.bor:
- * tests/DLL_ORB/server.bor:
- Fixed Borland makefiles to build the DLL_ORB test correctly.
-
-Wed Aug 22 17:20:06 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * orbsvcs/orbsvcs/Event/EC_Default_Factory.h:
- * orbsvcs/orbsvcs/Event/EC_Default_Factory.cpp:
- The factory now owns the memory for its orbid_ field, some
- applications pass temporary data in the argc/argv arguments.
- Thanks to J. Russell Noseworthy <rnosewor@objectsciences.com>
- for pointing this out.
-
-Wed Aug 22 14:12:33 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_operation/interceptors_cs.cpp:
-
- Made the generation of the interceptors arguments()
- method contingent on Any support. If the Any operators
- are not generated by the IDL compiler, CORBA::NO_IMPLEMENT
- is generated for the body of this method. Thanks to
- Gergely Timar <timarok@elender.hu> for reporting this
- bug.
-
-Wed Aug 22 10:35:27 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAOACE_Static.dsw:
-
- Added dependencies to projects so the entire workspace
- can be batch built. Thanks to Frank Wolf <fwolf@gum.de>
- for pointing out some of these.
-
-Wed Aug 22 08:16:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/AVStreams_i.h:
- * orbsvcs/orbsvcs/AV/AVStreams_i.i:
- * orbsvcs/orbsvcs/AV/AVStreams_i.cpp:
- Remove TAO_String_Hash_Key class, replace all uses with
- ACE_CString. Only reason for keeping the TAO_String_Hash_Key
- class was to have a string class with a hash function so it
- could be put in an ACE_Hash_Map_Manager container. ACE_CString
- already has this.
-
- * orbsvcs/orbsvcs/AV/Fill_ACE_QoS.h:
- Change include.
-
-Tue Aug 21 22:58:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Sequence_T.cpp: Fixed a place where nil () was not made as
- tao_nil (). This should fix many of our build problems.
-
-Tue Aug 21 13:55:31 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_interface.cpp:
-
- Added prefix "tao_" to the recently added static
- methods in the generated interface _var class, to
- avoid possible name clashes.
-
- * TAO_IDL/be/be_visitor_interface/interface_ch.cpp:
- * TAO_IDL/be/be_visitor_interface/interface_cs.cpp:
-
- Cosmetic changes to generated code and comments.
-
- * tao/CurrentC.cpp:
- * tao/CurrentC.h:
- * tao/CurrentC.i:
- * tao/DomainC.cpp:
- * tao/DomainC.h:
- * tao/DomainC.i:
- * tao/IOPC.cpp:
- * tao/IOPC.h:
- * tao/IOPC.i:
- * tao/MessagingC.cpp:
- * tao/MessagingC.h:
- * tao/Object.h:
- * tao/Object.i:
- * tao/PolicyC.cpp:
- * tao/PolicyC.h:
- * tao/PollableC.cpp:
- * tao/PollableC.h:
- * tao/PortableInterceptorC.cpp:
- * tao/PortableInterceptorC.h:
- * tao/Sequence_T.cpp:
- * tao/TAOC.cpp:
- * tao/TAOC.h:
- * tao/BiDir_GIOP/BiDirPolicyC.cpp:
- * tao/BiDir_GIOP/BiDirPolicyC.h:
- * tao/DynamicAny/DynamicAnyC.cpp:
- * tao/DynamicAny/DynamicAnyC.h:
- * tao/IFR_Client/IFR_BaseC.cpp:
- * tao/IFR_Client/IFR_BaseC.h:
- * tao/IFR_Client/IFR_BasicC.cpp:
- * tao/IFR_Client/IFR_BasicC.h:
- * tao/IFR_Client/IFR_ComponentsC.cpp:
- * tao/IFR_Client/IFR_ComponentsC.h:
- * tao/IFR_Client/IFR_ExtendedC.cpp:
- * tao/IFR_Client/IFR_ExtendedC.h:
- * tao/IORManipulation/IORC.cpp:
- * tao/IORManipulation/IORC.h:
- * tao/IORTable/IORTableC.cpp:
- * tao/IORTable/IORTableC.h:
- * tao/PortableServer/ImplRepoC.cpp:
- * tao/PortableServer/ImplRepoC.h:
- * tao/PortableServer/PortableServerC.cpp:
- * tao/PortableServer/PortableServerC.h:
- * tao/RTCORBA/RTCORBAC.cpp:
- * tao/RTCORBA/RTCORBAC.h:
- * tao/RTPortableServer/RTPortableServerC.cpp:
- * tao/RTPortableServer/RTPortableServerC.h:
- * tao/TypeCodeFactory/TypeCodeFactoryC.cpp:
- * tao/TypeCodeFactory/TypeCodeFactoryC.h:
- * tao/diffs/Current.pidl.diff:
- * tao/diffs/CurrentC.cpp.diff:
- * tao/diffs/CurrentC.h.diff:
- * tao/diffs/CurrentC.i.diff:
- * tao/diffs/DomainC.h.diff:
-
- Updated these files to reflect the changes made above to
- the IDL compiler, in addition to the recent change of
- adding a static int member to interface classes and
- using it's address in _unchecked_narrow() and
- _tao_Queryinterface, instead of the address of the
- _narrow() method.
-
-Tue Aug 21 09:41:17 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/IORManipulation/TAO_IORManip.dsp:
- * tao/TypeCodeFactory/TypeCodeFactory_Static.dsp:
-
- Changed the names of the libraries in some configurations
- to be more consistent. Thanks to Frank Wolf <WolfF@Becker.de>
- for pointing these out.
-
-Mon Aug 20 11:27:37 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * tests/Strategies/Strategies.dsw:
- * tests/Strategies/client.dsp:
- * tests/Strategies/server.dsp:
- * tests/Strategies/run_test.pl:
-
- Added MSVC project files and a run_test.pl for this test.
-
- * tests/Strategies/advanced_svc.conf:
-
- Modified this file for use on Windows platforms (commented out
- the UIOP protocol factory).
-
-Mon Aug 20 10:27:56 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/TAO.dsw:
-
- Added dependencies to several projects. Thanks to
- Frank Wolf <fwolf@gum.de> for pointing out this lack
- in Domain.dsp and Domain_Static.dsp.
-
-Mon Aug 20 09:39:06 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * orbsvcs/IFR_Service/tmplinst.cpp:
-
- Removed explicit instantiation of some template classes
- that were already present in the TAO_PortableServer
- library, to which the IFR_Service executable is linked.
- These redundancies were caught by the new RedHat static
- build.
-
-Mon Aug 20 08:37:00 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * orbsvcs/orbsvcs/Trader/constraint.l:
- * orbsvcs/orbsvcs/Trader/Constraint_l.cpp:
-
- Explicitly allow a leading sign on integers as specified by
- section B.2.5 of the OMG Trading Service specification.
-
-Sun Aug 19 13:41:07 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/DLL_ORB/Test_i.cpp (shutdown):
-
- Do not wait for completion when shutting down the ORB since
- ORB::shutdown() is being called in the context of an upcall.
- Thanks to Craig Rodrigues <crodrigu@bbn.com> for finding the
- problem and providing the fix.
-
-Sat Aug 18 08:59:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/ORBInitInfo.cpp: Fixed a compiler error in the static
- builds.
-
-Sat Aug 18 07:09:09 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * Removed the "announcement" file since it was hopelessly
- out of date! Thanks to Kitty for noticing this.
-
-Fri Aug 17 19:26:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/Property/CosPropertyService_i.h
-
- Add default values for CORBA::Environment variables.
-
-Fri Aug 17 13:01:36 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h (TAO_SSLIOP_Endpoint):
-
- Corrected class documentation.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.cpp
- (TAO_SSLIOP_Endpoint):
-
- Initialize the SSL port to zero instead of the IANA assigned
- port of 684 if one wasn't provided. This is necessary to allow
- INS over plain IIOP to function properly. Thanks to Dmitry
- Goldshtain <dmitry.goldshtain@iname.com> for providing the fix.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp (connect):
-
- Verify that the SSL port is non-zero before attempting to
- establish trust in the target. Otherwise, throw an
- exception. It is not possible to establish trust in the target
- without first retrieving the certificate from the target during
- SSLIOP session establishment.
-
- If the SSL port is zero and protection is desired, then do not
- attempt to make a secure invocation since it is not possible to
- make one. Instead throw an exception.
-
- In both of the above cases, the SSL port will be zero if no
- SSLIOP tagged component was available in the IOR.
-
-Fri Aug 17 14:57:18 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/fe/fe_init.cpp:
-
- Removed code that had been commented out.
-
-Fri Aug 17 14:14:21 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * docs/Options.html:
-
- Clean up the Advanced_Resource_Factory section.
-
-Fri Aug 17 08:18:40 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/RTPortableServer/TAO_RTPortableServer.dsp:
- * tao/DynamicInterface/TAO_DynamicInterface.dsp:
-
- Fixed setting in the MFC versions of these projects.
- Thanks to Frank Wolf <fwolf@gum.de> for pointing
- these out.
-
-Fri Aug 17 10:59:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * tao/tests/Makefile.bor
- * tao/tests/DLL_Orb/*.bor
- Added BCB makefiles for this test
-
-Thu Aug 16 10:40:56 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/ORBInitInfo.h (TAO_ORBInitInfo):
-
- The CodecFactory reference is now a "_var" since the
- CodecFactory is now reference counted.
-
- * tao/ORBInitInfo.cpp (register_initial_reference,
- resolve_initial_references):
-
- Removed the restriction that prevented
- register_initial_reference() and resolve_initial_references()
- from being called in ORBInitializer::post_init() and
- ORBInitializer::pre_init(), respectively. The Portable
- Interceptors FTF relaxed those restrictions.
-
- (codec_factory):
-
- Since the CodecFactory is now reference counted, create a new
- CodecFactory on the heap and cache it. Fixes a seg fault
- reported by Greg J. Hall <Greg.Hall@Australia.Boeing.com>.
-
-Thu Aug 16 11:38:02 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/TypeCodeFactory/TypeCodeFactory.dsp:
-
- Fixed typo in MFC release configuration.
-
- * tao/TypeCodeFactory/TypeCodeFactory_Static.dsp:
- * tao/TAO.dsw:
-
- Removed unnecessary "_Static" substring from static
- release and debug library names. Also fixed path for
- TypeCodeFactory_Static.dsp in the workspace. Thanks to
- Frank Wolf <fwolf@gum.de> for pointing these out.
-
-Thu Aug 16 10:04:33 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_interface.cpp:
-
- Removed an unecessary "::" added to code generation
- in
-
- Tue Aug 14 10:56:01 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- caught by Sun Forte, which has a problem with "(::".
-
-Wed Aug 15 11:37:24 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/GIOP_Message_Lite.cpp (process_request):
-
- Removed statement that initialized a reference to a
- CORBA::Environment from TAO_default_environment().
- TAO_default_environment() incurs a TSS access. This removes a
- TSS access from the critical path when using TAO's GIOPlite
- implementation.
-
- Verify that forward object reference was successfully marshaled
- into the CDR stream before continuing.
-
- * tao/GIOP_Message_Base.cpp (process_request):
-
- Verify that forward object reference was successfully marshaled
- into the CDR stream before continuing.
-
- * tao/Object.cpp (operator>>):
-
- Fixed improper emulated exception code. It unnecessarily
- introduced a TSS access by using TAO_default_environment().
-
-Wed Aug 15 14:26:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/Single_Threaded_Latency/svc.conf: Add the
- exclusive Transport_Mux_Strategy to this test.
-
-Wed Aug 15 12:11:04 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/IDL_Test/constants.idl:
-
- Dropped the last digit from the mantissa of a constant
- double declaration equal to the IEEE max value for a
- double. This max value has 16 decimal places, while the
- generated output on many platforms has only 15, rounded
- up. The problem arises with gcc 3.0, which outputs a
- warning, since the rounded value is greater than the
- allowed maximum. Thanks to Ossama Othman <ossama@uci.edu>
- for pointing out the problem.
-
-Wed Aug 15 12:06:20 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_State.cpp:
- * tao/GIOP_Message_State.h: Cosmetic changes to the debug
- statements and comments.
-
-Wed Aug 15 11:35:18 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp: Added a debugging statement that is going to
- create noise if TAO receives a ERROR message on a connection.
-
- * tao/GIOP_Message_Base.cpp:
- * tao/GIOP_Message_State.cpp: Added debugging statments to inform
- the user, that TAO got a GIOP_ERROR_MESSAGE on a
- connection. Looks like some ORB's send ERROR messages if the
- size of the data exceeded a limit. In such cases it is better
- that the user knows why the test fails or hangs instead of
- digging around the ORB code.
-
-Wed Aug 15 11:25:15 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/DynamicAny/DynCommon.cpp (insert_reference):
-
- Added a check for a nil object reference before attempting
- to access its repo id and calling _is_a(). Thanks to
- Philippe Merle <Philippe.Merle@lifl.fr> for pointing out
- this bug.
-
-Tue Aug 14 15:16:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/SmartProxies/SmartProxies.dsp (CFG): Fixed a problem with
- MFC configuration.
-
-Tue Aug 14 14:50:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/SmartProxies/SmartProxies.dsp (RSC): Added MFC
- configurations. Thanks to Garry Shammis <Garry.Shamis@kbcfp.com>
- for giving us the patch.
-
- * tao/DynamicInterface/DII_Reply_Dispatcher.cpp (dispatch_reply):
- * tao/Synch_Reply_Dispatcher.cpp:
- * tao/Asynch_Reply_Dispatcher.cpp: Made some cosmetic changes.
-
-Tue Aug 14 12:29:08 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp (recv_i):
-
- Use the timeout value when attempting to read from the SSL
- connection. Fixes some thread-per-connection problems. Thanks
- to Bala for pointing out the problem.
-
-Tue Aug 14 14:18:36 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * tao/orbconf.h:
-
- Add the TAO_ADVANCED_RESOURCE_FACTORY_ARGS flag. This
- fixes a problem with the TAO_Strategies library when
- TAO_PLATFORM_SVC_CONF_FILE_NOTSUP is defined.
-
- * docs/configurations.html:
-
- Change Resource_Factory to Advanced_Resource_Factory in a
- few places. Clean up some of the text. Add the
- TAO_ADVANCED_RESOURCE_FACTORY_ARGS flag.
-
-Tue Aug 14 12:10:09 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * docs/Options.html:
- Fixed typo.
-
-Tue Aug 14 10:56:01 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_interface.cpp:
- * TAO_IDL/be/be_visitor_operation/operation_ss.cpp:
- * TAO_IDL/be/be_visitor_operation/rettype.cpp:
- * TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp:
-
- Added global qualifier '::' to the generation of the
- full names for an operation return type in the stub header
- file, return value allocation in the skeleton body, and
- ancestors in _tao_QueryInterface(). This addition helps
- some compilers when dealing with nested classes. Thanks
- to Gary Duzan <gduzan@bbn.com> for reporting the bug.
-
- * tests/IDL_Test/nested_scope.idl:
-
- Added Gary Duzan's example to the test file.
-
-Mon Aug 13 20:09:24 2001 Balachandran <bala@cs.wustl.edu>
-
- * TAO version 1.1.19 released.
-
-Mon Aug 13 12:05:17 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * orbsvcs/orbsvcs/Notify/Notify_ProxyConsumer_T.cpp:
-
- Explicitly reference the event_manager_ with this-> to avoid a
- warning on HP-UX with aCC.
-
-Sun Aug 12 17:55:57 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/CodecFactory.h (TAO_CodecFactory):
- * tao/Messaging_PolicyFactory.h (TAO_Messaging_PolicyFactory):
-
- Instances of these objects are now reference counted to make
- sure they exist long enough for the ORB to release them. This
- fixes some dynamic unloading problems.
-
- * tao/CodecFactory_ORBInitializer.h:
- * tao/Messaging_ORBInitializer.h:
-
- Maintain a reference (i.e., a "_var") to the CodecFactory and
- Messaging_PolicyFactory, respectively. They will be destroyed
- when all outstanding references are released.
-
- * tao/CodecFactory_ORBInitializer.cpp (pre_init):
- * tao/Messaging_ORBInitializer.cpp (register_policy_factories):
-
- Initialize a CodecFactory and Messaging_PolicyFactory,
- respectively, on the heap. These instances are now reference
- counted.
-
- * tao/default_resource.h (TAO_Default_Resource_Factory):
-
- No longer any need to inherit from ACE_Cleanup. The Service
- Configurator will once again manage the default resource
- factory's memory.
-
- * tao/default_resource.cpp:
-
- Removed code that was commented out during the previous changes
- to this file. That code will not be used.
-
- * tests/DLL_ORB/Test_Client_Module.cpp:
-
- Removed "tabs" from this source file.
-
- * tests/DLL_ORB/Test_Server_Module.cpp (init):
-
- No longer any need to use the "-ORBSkipServiceConfigOpen" option
- (at least for this single-threaded test).
-
- * tests/DLL_ORB/client.cpp (main):
-
- Removed debugging ORB debugging options. They shouldn't be in
- "released" version of this test.
-
-Sun Aug 12 08:46:01 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Native_Exceptions/test_i.cpp: Fixed warning with g++.
-
-Sun Aug 12 00:29:27 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Native_Exceptions/test_i.cpp: Fixed warning with g++.
-
-Sat Aug 11 17:02:44 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp:
- * tao/GIOP_Message_State.cpp:
- * tao/GIOP_Message_State.inl:
- * tao/Incoming_Message_Queue.inl:
- * tao/Transport.cpp: A chance for us to test the fragmentation
- support on the server side. Fixed quite a few bugs with our
- fragmentation support. The tests were conducted against ORBIX
- 2K. The bugs fixed were mostly the way we handle the fragments.
-
-Sat Aug 11 11:34:47 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * orbsvcs/orbsvcs/Event_Utilities.cpp (insert):
- Fixed event initialization, one of the insert() methods was
- setting an event before growing the publications list.
- Thanks to Jody Hagins <jody@atdesk.com> for pointing this out.
-
-Sat Aug 11 08:31:37 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/IDL_Test/idl_test.dsp: Fixed the relase builds.
-
-Sat Aug 11 08:24:37 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Notify_ProxyConsumer_T.cpp:
- * orbsvcs/orbsvcs/Notify_ProxySupplier_T.cpp: Fixed warnings with
- HPUX's aCC.
-
-Sat Aug 11 08:14:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Native_Exceptions/test_i.cpp: Fixed warning with KCC.
-
-Fri Aug 10 10:59:42 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/Native_Exceptions/test_i.cpp:
- * tests/RTCORBA/Thread_Pool/server.cpp:
-
- Changes to avoid warnings on HP-UX with aCC.
-
-Fri Aug 10 08:07:57 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Oneways_Invoking_Twoways/Receiver_i.cpp: Added a debugging
- statement.
-
-Thu Aug 9 16:15:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/RTCORBA/ORB_init/ORB_init.cpp: Fixed a warning in KCC
- builds on Linux.
-
-Thu Aug 9 11:10:59 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/default_resource.cpp:
-
- Temporarily reverted previous change. The default resource
- factory is still destroyed before the ORB core is destroyed.
- Another solution is needed.
-
-Thu Aug 9 11:46:27 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/CDR.h: Fixed the ambigous constructor problem. The InputCDR
- class had two constructors which were similar if the default
- values for the arguments were exercised. Thanks to Torbjorn
- Backstrom <torbjorn.k.backstrom@volvo.com> for reporting this.
-
-Wed Aug 8 22:53:37 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/DLL_ORB.cpp: Fixed a unused variable warning.
-
-Wed Aug 8 16:15:59 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/AMI_Buffering/client.cpp:
- * tests/Oneway_Buffering/client.cpp:
- The liveness test was blowing the stack on the server. On each
- request the server calls the 'admin' interface to report the
- number of bytes received. While waiting for a response on that
- call the server receives another call (the client is pushing
- oneways or AMI calls like crazy).
- This results in an segfault when the stack is overflowed, now we
- sync the server every so many calls.
-
- * tests/AMI_Buffering/svc.conf:
- Removed, the default configuration works now.
-
- * tests/Big_Oneways/Session.cpp:
- Made the test more silent.
-
-Wed Aug 08 16:14:01 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/default_resource.h (TAO_Default_Resource_Factory):
-
- The default resource factory now also inherits from ACE_Cleanup
- so that it may be registered for destruction with the
- TAO_Singleton_Manager. This generally only necessary for the
- default resource factory since it may be created during ORB
- initialization, and it must exist long enough for the ORB
- Core to make some calls on it during ORB Core finalization.
- Resource factories that are statically or dynamically loaded
- (i.e. registered with the Service Repository) before the ORB is
- initialized need not inherit from ACE_Cleanup, nor is it
- necessary for them to register with the TAO_Singleton_Manager.
-
- * tao/default_resource.cpp (_make_TAO_Default_Resource_Factory):
-
- A custom factory definition is used instead of the commonly used
- one created by the ACE_FACTORY_DEFINE macro. This is necessary
- to get around dynamic unloading issues. The default resource
- factory must exist long enough for the ORB to make the a
- resource factory reclaim the reactor, for example. The easiest
- (and probably best) way to do that is register the
- TAO_Default_Resource_Factory for destruction with the
- TAO_Singleton_Manager. This fixes a segmentation fault (memory
- access violation) that occurred when an ORB that was initialized
- within a dynamically loaded object (e.g. within an
- ACE_Service_Object instance) was finalized/destroyed.
-
- (ACE_STATIC_SVC_DEFINE):
-
- Do not set the ACE_Service_Type::DELETE_OBJ flag within the
- TAO_Default_Resource_Factory-specific declaration/expansion of
- this macro. The "payload" object, i.e. the default resource
- factory, is now managed by the TAO_Singleton manager instead of
- the Service Repository.
-
- * tao/DLL_ORB.h (TAO_DLL_ORB):
-
- Updated class documentation to mention the fact that this class
- is deprecated, and why it should not be used.
-
- * tao/DLL_ORB.cpp (init):
-
- Added debugging message that mentions that the TAO_DLL_ORB class
- is deprecated.
-
- * tao/TAO_Internal.cpp (open_i):
- * tao/TAO_Singleton_Manager.h (TAO_Singleton_Manager):
-
- Updated and corrected class documentation.
-
- * tests/DLL_ORB/Test_Client_Module.cpp (fini):
-
- Explicitly release the reference to the target object. This is
- a bit of a hack. The ORB Core's lifetime is tied to the
- lifetime of an object reference. We need to wipe out all object
- references before we call fini() on the TAO_Singleton_Manager.
- This is a tough problem to correct. Fortunately, this is not a
- problem when a resource factory is loaded into the Service
- Repository before the ORB is initialized, i.e. when the default
- resource factory is not used.
-
-Wed Aug 8 15:03:58 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/DIOP_Transport.cpp (send_request): There was no
- reason to idle the transport after a send. In other protocols,
- where the handles are cached the call idle_after_send () does
- certain things based on the muxed strategy. But for DIOP, we
- dont cache the handles and the call started doing something
- really bad like closing the handles. We now just return a 0
- after sending the request. This should fix the problem in the
- full builds with DIOP.
-
-Wed Aug 8 12:16:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/Thread_Per_Connection_Latency/svc.conf:
- * performance-tests/Thread_Pool_Latency/svc.conf: Made the client
- to use Wait_On_Read_Write as we see a big performance drop if we
- use the Wait_On_LF. To make the test work without any problems,
- we now use the exclusive transport mux strategy. Hopefully this
- will get our performance back to normal.
-
- * tao/Muxed_TMS.cpp: Fixed a subtle problem in connection_closed
- (). While iterating through the reply_disptacher table to close
- the reply dispatchers, a wrong comparision was made in the for
- loop. This would not allow any of the reply dispatchers to be
- closed and in turn prevent the transport cleaning up the
- resources. This lead to the client hanging on select () even
- after the connection is closed by the server. I am surprised
- that this has not been found out so far. God save people who
- have been using the Muxed strategy :-).
-
- BTW, the above fix should fix problems seen in the Faults and
- Crashed_Callback tests in the daily builds.
-
-Tue Aug 07 21:54:31 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/IORManipulation/IORTest.cpp (main):
-
- Updated URL IORs used in test to be of the standard "corbaloc"
- form. Fixes a CORBA::INV_OBJREF exception.
-
-Tue Aug 7 23:29:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/Thread_Per_Connection_Latency/svc.conf: Did
- the same change as the last checkin, ie. removed the RW
- connection handler. But beware, we *could* have a performance
- drop in our stats page. If wehave performance drop, then we
- change the Transport_Mux_Strategy for the following test. Even
- if we do change the Mux_Strategy and the connection handler to
- RW, it seems that this would be in odd with what we preached a
- few days back at the TAO workshop.
-
-Tue Aug 7 23:02:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/Thread_Pool_Latency/svc.conf: Looks like our
- past seems to haunt us. Once upon a time this svc.conf file was
- used in Latency measurements. When the tests were changed to a
- new directory the svc.conf file was copied. The svc.conf file
- had a RW connection handler. That was enough to cause the test
- to hang. Further removed the -ORBReactor type as it was trying
- to load a TP reactor. This should fix the problem in the daily
- builds with this test.
-
-Tue Aug 7 14:37:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp (handle_input_i): Added the transport
- information to a debugging output.
-
- * tao/orbconf.h: Fixed a simple typo.
-
-Mon Aug 6 09:49:39 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/RTPortableServer/TAO_RTPortableServer.dsp: Fixed a build
- problem in Release builds. Should have nailed the problem by
- now.
-
-Sun Aug 5 16:58:39 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/DLL_ORB/Makefile: Thanks to Ossama for helping to fix the
- the warnings in the daily builds.
-
-Sun Aug 5 16:00:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Oneway_Buffering/Test.idl: Changed the oneway in the
- Test.idl to a twoway call.
-
-Sun Aug 05 15:12:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/RTPortableServer/TAO_RTPortableServer.dsp: Fixed a build
- problem in Release builds.
-
-Sun Aug 05 15:03:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/TAO_Static.dsp: Added the new flushing strategies to the
- static builds.
-
-Fri Aug 04 3:33:31 2001 Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-
- * TAO/orbsvcs/orbsvcs/AV/QoS_UDP.h:
- * TAO/orbsvcs/orbsvcs/AV/QoS_UDP.cpp:
- * TAO/orbsvcs/orbsvcs/AV/QoS_UDP.i:
-
- Added a helper class to create qos sessions, activate qos
- handlers and set qos on a session. Fixed a bug in translation
- from ACE_Flow_Spec to AVStreams::streamQoS. Fixed addressing
- problems.
-
-Fri Aug 03 20:50:42 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/README:
-
- Added summary about the new DLL_ORB test.
-
-Fri Aug 03 20:33:51 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/DLL_ORB/Makefile (MAKEFLAGS):
-
- Force non-parallel build of this test since the IDL file rules
- in both `Makefile.Test_Client_Module' and
- `Makefile.Test_Server_Module' cause corruption of the generated
- stubs and skeletons when these Makefiles are run in parallel.
- Fixes build problems in some of our parallel build enabled
- nightly builds.
-
-Fri Aug 03 10:16:37 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * docs/Options.html:
- Add documentation for the new Leader/Followers flushing
- strategy.
-
-Fri Aug 3 10:37:06 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_operation/operation_cs.cpp (visit_operation):
-
- Added ACE_UNUSED_ARG generation to satisfy strict compilers,
- for the recently modified cases where the operation returns
- a long long or a long double.
-
-Fri Aug 3 07:59:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/DLL_ORB/Test_Client_Module.cpp: Changed the order of
- #includes.
-
-Fri Aug 3 07:50:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/TAO_Singleton_Manager.h: Changed the #ifndef to
- TAO_SINGLETON_MANAGER_H instead of TAO_OBJECT_MANAGER_H.
-
-Fri Aug 3 07:30:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/DLL_ORB/Test_Client_Module.cpp:
- * tests/DLL_ORB/Test_Server_Module.cpp: Added missing
- #includes. This should take care of the problem with g++.
-
-Thu Aug 02 20:39:19 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/Stub.h (TAO_Exception_Data):
-
- The "id" member should be "const char *" not "char *". Fixes a
- warning exhibited by some strict compilers (e.g. g++ with
- "-pedantic" flag enabled). Conversion from a string constant to
- a "char *" is deprecated.
-
-Thu Aug 2 17:21:27 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/Makefile:
-
- Added DLL_ORB test directory to the list of directories to
- build.
-
-Thu Aug 02 17:09:53 2001 Ossama Othman <ossama@uci.edu>
-
- * tests/DLL_ORB/*:
-
- New test that dynamically loads a shared object that initializes
- an ORB upon initialization of that shared object, and destroys
- that ORB upon finalization of the shared object. [Bug 832]
-
-Thu Aug 2 11:44:51 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Leader_Follower.cpp: Added a #include. This should take care
- of the No AMI builds.
-
-Thu Aug 2 10:17:12 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_operation/operation_cs.cpp (visit_operation):
-
- Recent changes to this method made it necessary now to unalias
- the return type before using it.
-
-Thu Aug 2 09:09:26 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/Smart_Proxies/On_Demand/client.cpp (parse_args): Fixed a
- but where there was a missing ":" in the get_opts string.
- Thanks to Goran Lowkrantz <goran.lowkrantz@ismobile.com> for
- reporting this. Fixes bugid 995.
-
-Wed Aug 1 18:17:38 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tao/PortableServer/ImplRepoC.h:
- * tao/PortableServer/ImplRepoC.i:
- * tao/PortableServer/ImplRepoC.cpp:
- * tao/PortableServer/ImplRepoS.h:
- * tao/PortableServer/ImplRepoS.i:
- * tao/PortableServer/ImplRepoS.cpp:
- * tao/PortableServer/ImplRepoS_T.h:
- * tao/PortableServer/ImplRepoS_T.i:
- * tao/PortableServer/ImplRepoS_T.cpp:
- * tao/PortableServer/diffs/ImplRepo.diff:
- After Jeff's changes it was necessary to regenerate the ImplRepo
- pre-compiled IDL.
-
- * tao/diffs/ImplRepoC.cpp.diff:
- * tao/diffs/ImplRepoC.h.diff:
- * tao/diffs/ImplRepoC.i.diff:
- * tao/diffs/ImplRepoS.cpp.diff:
- * tao/diffs/ImplRepoS.h.diff:
- * tao/diffs/ImplRepoS.i.diff:
- * tao/diffs/ImplRepoS_T.cpp.diff:
- * tao/diffs/ImplRepoS_T.h.diff:
- * tao/diffs/ImplRepoS_T.i.diff:
- Move diffs to $TAO_ROOT/tao/PortableServer/ImplRepo.diff
-
-Wed Aug 1 16:05:36 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * Merged changes from the fix_886 branch
-
- * tao/Transport.cpp:
- There was a subtle race condition in the handle_output() method:
- the state of the queue was checked in drain_queue(), while
- holding the mutex, if the queue was empty the decision was made
- to call cancel_output().
- However, that was performed *outside* the context of the mutex,
- so another thread could attempt to send data, queue it,
- schedule_output() only to find out that is was cancelled right
- after it did...
- Before the patches below it was not possible to move the
- cancel_output() to the context of the mutex, the ORB would
- deadlock for other reasons. I took us (Bala and myself) a couple
- of days to track this one down, obviously I still don't know how
- to write MT-safe code :-)
-
- Tue Jul 31 12:55:07 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tao/Follower.h:
- * tao/Follower.inl:
- * tao/Follower.cpp:
- * tao/Follower_Auto_Ptr.h:
- * tao/Follower_Auto_Ptr.inl:
- * tao/Follower_Auto_Ptr.cpp:
- * tao/LF_Follower.h:
- * tao/LF_Follower.inl:
- * tao/LF_Follower.cpp:
- * tao/LF_Follower_Auto_Ptr.h:
- * tao/LF_Follower_Auto_Ptr.inl:
- * tao/LF_Follower_Auto_Ptr.cpp:
- * tao/Makefile:
- * tao/Makefile.am:
- * tao/Makefile.bor:
- * tao/TAO.dsp:
- * tao/TAO_Static.dsp:
- Renamed TAO_Follower to TAO_LF_Follower and
- TAO_Follower_Auto_Ptr to TAO_LF_Follower_Auto_Ptr, I think this
- is more consistent with the other files in the project.
-
- * tao/LF_Follower_Auto_Adder.h:
- * tao/LF_Follower_Auto_Adder.inl:
- * tao/LF_Follower_Auto_Adder.cpp:
- Remove unused code from the Auto_Adder files.
-
- * tao/LF_Event.h:
- * tao/LF_Event.inl:
- * tao/LF_Event.cpp:
- * tao/LF_Event_Binder.h:
- * tao/LF_Event_Binder.inl:
- * tao/Leader_Follower.h:
- * tao/Leader_Follower.i:
- * tao/Leader_Follower.cpp:
- Use the new class names and #includes.
-
- Mon Jul 30 14:41:43 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tao/LF_Follower_Auto_Adder.h:
- * tao/LF_Follower_Auto_Adder.inl:
- * tao/LF_Follower_Auto_Adder.cpp:
- Automatically manipulate the L/F follower set: its constructor
- inserts a follower into the set and the destructor removes it.
-
- * tao/Leader_Follower.cpp:
- Use the new LF_Follower_Auto_Adder class.
-
- * tao/Makefile:
- * tao/Makefile.am:
- * tao/Makefile.bor:
- * tao/TAO.dsp:
- * tao/TAO_Static.dsp:
- Add the new files to Makefiles and projects.
-
- Sun Jul 29 11:58:51 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tao/Leader_Follower.cpp:
- If an error is detected while waiting as a follower the loop
- should return -1.
-
- * tao/Transport.cpp:
- Merged in some bug fixes from the main trunk.
-
- Sun Jul 29 09:00:57 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tao/LF_Event.cpp:
- Fixed the error_detected() function
-
- Fri Jul 27 17:34:40 2001 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tao/Leader_Follower.h:
- * tao/default_resource.cpp:
- Fixed warnings and compilation errors for gcc-2.7.2
-
- Fri Jul 27 10:59:50 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tao/LF_Event.h:
- * tao/LF_Event.inl:
- Add new method to unbind a LF_Event and its Follower:
- Reply_Dispatchers can be used multiple times to wait for several
- replys, mostly when a LOCATION_FORWARD message is received.
-
- * tao/LF_Event.cpp:
- Modify the state machine: the state can go back to ACTIVE from
- CONNECTION_CLOSED or SUCCESSFUL. This represents the location
- forward scenario described above.
-
- * tao/LF_Event_Binder.h:
- * tao/LF_Event_Binder.inl:
- * tao/LF_Event_Binder.cpp:
- Helper class to automate the bind/unbind calls to a LF_Event.
-
- * tao/Leader_Follower.cpp:
- Use LF_Event_Binder to handle the bind/unbind calls into the
- LF_Event.
-
- * tao/Makefile:
- * tao/Makefile.bor:
- * tao/TAO.dsp:
- * tao/TAO_Static.dsp:
- Add new files to the projects and Makefiles.
-
- * tao/Invocation.cpp:
- * tao/Wait_On_Read.cpp:
- * tao/Wait_On_Reactor.cpp:
- * tao/Synch_Reply_Dispatcher.h:
- * tao/Synch_Reply_Dispatcher.cpp:
- Remove the reply_received() flag from Synch_Reply_Dispatcher,
- the LF_Event state is enough to know what happens.
-
- Thu Jul 26 18:00:12 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tao/Strategies/advanced_resource.cpp:
- Fixed typo in last commit.
-
- Thu Jul 26 16:50:46 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * Part of the fixes for
- http://ace.cs.wustl.edu/bugzilla/show_bug.cgi?id=886
-
- the changes also close the following bug:
-
- http://ace.cs.wustl.edu/bugzilla/show_bug.cgi?id=296
-
- * tao/Leader_Follower_Flushing_Strategy.h:
- * tao/Leader_Follower_Flushing_Strategy.cpp:
- New flushing strategy that participates in the Leader/Followers
- protocol.
- To support this several changes to the Leader/Followers
- implementation were required. The most important involved using
- some abstract representation for the events that the
- Leader/Followers wait for, in the old days there were only reply
- events, so there was no need to abstract anything, but now the
- Leader/Followers set can wait for both 'message flushed' events,
- as well as 'reply received'.
- With this explicit representation for events at hand it was
- easier to encapsulate the Leader/Followers wait loop in
- TAO_Leader_Follower class, instead of hidden in
- Wait_On_Leader_Follower.
- To match the events that L/F waits for and the threads waiting
- for them we addd a class that represents a Follower thread.
- These TAO_Follower objects had to implement an intrusive list
- for fast addition into the follower set, once that intrusive
- list was implemented adding a free list was trivial, and thus we
- could solve bug 296 easily too.
-
- * tao/Asynch_Queued_Message.cpp:
- * tao/Synch_Queued_Message.cpp:
- Use the TAO_LF_Event methods to signal any waiters when the
- state changes.
-
- * tao/Follower.h:
- * tao/Follower.inl:
- * tao/Follower.cpp:
- This class represents a thread playing the Follower role. It
- contains the condition variable used by the thread.
- The class provides the necessary hooks to implement an intrusive
- linked list.
-
- * tao/Invocation.cpp:
- The waiting strategy wants the complete Synch_Reply_Dispatcher,
- not just the reply_received flag.
-
- * tao/LF_Event.h:
- * tao/LF_Event.inl:
- * tao/LF_Event.cpp:
- New class to represent events that the Leader/Followers loop
- waits for. Used as a base class for both TAO_Queued_Message and
- for TAO_Synch_Reply.
-
- * tao/LF_Event_Loop_Thread_Helper.h:
- * tao/LF_Event_Loop_Thread_Helper.inl:
- * tao/LF_Event_Loop_Thread_Helper.cpp:
- Move helper class to its own file, no sense in exposing it to
- everybody through the Leader_Follower.h file.
-
- * tao/Leader_Follower.h:
- * tao/Leader_Follower.i:
- * tao/Leader_Follower.cpp:
- Add free list for TAO_Follower, as well as allocation and
- deallocation methods.
- Move Leader/Followers main loop to this class.
- Move LF_Strategy and friends to their own files.
-
- * tao/ORB_Core.h:
- * tao/ORB_Core.i:
- * tao/ORB_Core.cpp:
- Removed the TSS Leader/Followers condition variable, the
- Leader/Followers free list implements the same optimization with
- less problems (i.e. without bug 296).
-
- * tao/Queued_Message.h:
- * tao/Queued_Message.cpp:
- * tao/Synch_Reply_Dispatcher.h:
- * tao/Synch_Reply_Dispatcher.cpp:
- This class derives from TAO_LF_Event now. Any state or methods
- required to detect timeouts, closed connections or transmition
- errors are in the base class.
-
- * tao/Reply_Dispatcher.h:
- * tao/Asynch_Reply_Dispatcher.h:
- * tao/Asynch_Reply_Dispatcher.cpp:
- Remove the dispatcher_bound() calls, they are no longer required
- to match follower threads and their reply dispatchers, this is
- now done in the TAO_LF_Event::bind() method, called from
- TAO_Leader_Follower::wait_for_event()
-
- * tao/Transport.h:
- * tao/Transport.cpp:
-
- * tao/Transport_Mux_Strategy.h:
- * tao/Transport_Mux_Strategy.cpp:
- * tao/Muxed_TMS.cpp:
- * tao/Exclusive_TMS.cpp:
- Since there is no need to call dispatcher_bound() anymore the
- bind_dispatcher() methods were simplified.
-
- * tao/Wait_On_Leader_Follower.h:
- * tao/Wait_On_Leader_Follower.cpp:
- * tao/Wait_On_Reactor.h:
- * tao/Wait_On_Reactor.cpp:
- * tao/Wait_On_Read.h:
- * tao/Wait_On_Read.cpp:
- * tao/Wait_Strategy.h:
- * tao/Wait_Strategy.cpp:
- Use a TAO_Synch_Reply_Dispatcher to wait for a reply. The hack
- using a reply_received flag + a cond.var. was too ugly, plus it
- was tightly coupling the Leader/Followers loop to the reply
- dispatching logic.
-
- * tao/default_resource.h:
- * tao/default_resource.cpp:
- Made Leader_Follower_Flushing_Strategy the default.
-
- * tao/orbconf.h:
- * tao/default_client.cpp:
- Made Muxed_TMS the default
-
- * tao/LF_Strategy.h:
- * tao/LF_Strategy.inl:
- * tao/LF_Strategy.cpp:
- * tao/LF_Strategy_Complete.h:
- * tao/LF_Strategy_Complete.inl:
- * tao/LF_Strategy_Complete.cpp:
- Move the LF_Strategy classes to their own files, no sense in
- exposing them to everybody through the Leader_Follower.h file.
-
- * tao/Follower_Auto_Ptr.h:
- * tao/Follower_Auto_Ptr.inl:
- * tao/Follower_Auto_Ptr.cpp:
- Helper class to automatically allocate and deallocate
- TAO_Follower objects from the Leader/Followers set.
-
- * tao/GIOP_Message_Base.cpp:
- * tao/GIOP_Message_Lite.cpp:
- * tao/Reactor_Registry.cpp:
- Must #include the "LF_Strategy.h" file explicitly.
-
- * tao/TAO.dsp:
- * tao/TAO_Static.dsp:
- * tao/Makefile:
- * tao/Makefile.bor:
- * tao/Strategies/TAO_Strategies.dsp:
- * tao/Strategies/TAO_Strategies_Static.dsp:
- * tao/Strategies/Makefile:
- * tao/Strategies/Makefile.bor:
- Add new files to the projects and Makefile
-
-
- * tao/Strategies/advanced_resource.cpp:
- * tao/Strategies/LF_Strategy_Null.h:
- * tao/Strategies/LF_Strategy_Null.inl:
- * tao/Strategies/LF_Strategy_Null.cpp:
- Move the Null Leader/Follower Strategy to the TAO_Strategies
- library, it was in TAO, but was only used here.
-
- * tao/RTPortableServer/TAO_RTPortableServer.dsp:
- Fixed missing libraries in link line.
-
- * tao/TAO.dsw:
- Add missing dependencies for RTPortableServer and RTCORBA
-
-
-Wed Aug 1 13:15:10 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_operation/ami_exception_holder_operation_cs.cpp:
- * TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp:
- * TAO_IDL/be/be_visitor_operation/interceptors_cs.cpp:
- * TAO_IDL/be/be_visitor_operation/interceptors_exceptlist.cpp:
- * TAO_IDL/be/be_visitor_operation/interceptors_ss.cpp:
- * tao/Stub.h:
- * tao/Invocation.cpp:
-
- Modified the struct TAO_Exception_Data to contain the repository id
- instead of the type code, since the type code was used only to
- furnish the repo id string. The twoway invoke() method and generated
- code have been modified accordingly. Also, the interceptor method
- exceptions() now creates a simple array of type codes instead of
- an array of TAO_Exception_Data structs. If type codes are suppressed
- in generated code, the interceptor methods result() (which returns an
- Any) and exception() (from which the spec requires a list of type
- codes as the return value) will throw CORBA::NO_IMPLEMENT(). If only
- Anys are suppressed in generated code, only result() will throw the
- exception. Thanks to Russell Mora <rd.mora@econz.co.nz> for reporting
- the clash of type code suppression and exceptions, and to Ossama Othman
- <othman@cs.wustl.edu> and Carlos O'Ryan <coryan@ece.uci.edu> for
- their suggestions.
-
-Wed Aug 1 11:32:26 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/UIOP_Connection_Handler.cpp:Fixed a compile error
- with g++.
-
-Wed Aug 1 09:36:37 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_operation/operation_cs.cpp:
-
- Fixed an ACE_CHECK_RETURN in generated operation body where
- the return type is CORBA::LongLong or CORBA::LongDouble.
-
-Wed Aug 1 8:38:06 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/orbconf.h: Removed the #define TAO_DOESNT_YADA_YADA as there
- is no use for it.
-
- * tao/Connection_Handler.h: Removed the fetch_handle () as there
- is no use for it.
-
- * tao/IIOP_Connection_Handler.h:
- * tao/IIOP_Connection_Handler.cpp:
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- * tao/Strategies/DIOP_Connection_Handler.h:
- * tao/Strategies/SHMIOP_Connection_Handler.h:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp:
- * tao/Strategies/UIOP_Connection_Handler.h:
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp: Removed
- the implementation of fetch_handle (). Thanks to Carlos, the
- foot-print police!!, for motivating this change.
-
-Wed Aug 1 8:02:06 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Connection_Handler.h:
- * tao/IIOP_Connection_Handler.cpp: Removed the flag <resume_flag_>
- that was introduced so that the input and output datapath would
- behave differently. The output data path would allow the reactor
- to resume the handler whereas the input data path would resume
- the handle. This was creating more confusion than
- necessary. Hence zapped the the flag and made the input and
- output data path consistent. Thanks to Carlos for motivating
- this stuff.
-
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- * tao/Strategies/DIOP_Connection_Handler.h:
- * tao/Strategies/SHMIOP_Connection_Handler.h:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp:
- * tao/Strategies/UIOP_Connection_Handler.h:
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp: Applied the
- same changes to the above mentioned protocols.
-
-Tue Jul 31 12:53:06 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tao/Transport.cpp (register_handler):
- Fixed race condition, the register_handler_i() method may use
- the connection_handler_, but we do not check if it is nil before
- calling.
-
-Tue Jul 31 13:40:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Oneways_Invoking_Twoways/client.dsp: Fixed a compile error
- in release builds.
-
-Tue Jul 31 10:39:18 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/IDL_Test/gperf.idl:
-
- New file in IDL_Test containing examples sent in by
- Karl Proese <karl.proese@mchp.siemens.de> and Vsevolod Novikov
- <novikov@df.nnov.rfnet.ru> that uncovered bugs in gperf.
-
- * tests/IDL_Test/idl_test.dsp:
- * tests/IDL_Test/Makefile:
- * tests/IDL_Test/Makefile.bor:
-
- Updated project and makefiles to include the new generated files.
-
-Tue Jul 31 08:25:46 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/fe/idl.ll:
- * TAO_IDL/fe/idl.yy:
- * TAO_IDL/fe/lex.yy.cpp:
- * TAO_IDL/fe/lex.yy.cpp.diff:
- * TAO_IDL/fe/y.tab.cpp:
- * TAO_IDL/fe/y.tab.cpp.diff:
- * TAO_IDL/fe/y.tab.h:
-
- Removed OBV-related token IDL_INIT and replaced it with
- IDL_FACTORY, which is returned when the string 'factory' is seen
- in an IDL file. This string signals the declaration of an value
- type's initializing member function. Also changed the production
- rule 'init_decl' to be closer to the correct grammar for this
- type of function, although this feature is still completely
- unimplemented. And finally, modified two production rules to
- eliminate long-standing shift/reduce error messages when
- generating y.tab.* from idl.yy. Thanks to Russ Noseworthy
- <j.russell.noseworthy@objectsciences.com> for reporting that an
- 'init' identifier string in an IDL file caused an error when
- compiled with the -Gv option (value types) enabled.
-
-Tue Jul 31 06:58:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- This checkin is for fixing a race condition while trying to
- manipulate the number of upcalls. This was not a problem before
- 575 fix, as the manipulation was done when there was an implicit
- synchronisation in the TP Reactor. As the implicit synchronisation
- has been broken, we had a race condition. The surpsising element
- was the fact that it took sometime to figure out this race
- condition. We have now added a lock that will be held by the
- thread before the variable is manipulated.
-
- * tao/Connection_Handler.cpp:
- * tao/Connection_Handler.h:
- * tao/Connection_Handler.inl: Added a lock to the class. Also
- added three methods, incr_pending_upcalls (),
- decr_pending_upcalls () and pending_upcalls (). The first two
- does the manipulation of the pending_upcalls_ variable after
- holding the lock.
-
- * tao/IIOP_Connection_Handler.cpp:
- * tao/IIOP_Connection_Handler.h: Removed he peding_upcalls_
- variable and called the incr_pending_upcalls () and
- decr_pending_upcalls () to achieve what needs to be done.
-
- * tao/Strategies/DIOP_Connection_Handler.cpp
- * tao/Strategies/DIOP_Connection_Handler.h
- * tao/Strategies/SHMIOP_Connection_Handler.cpp
- * tao/Strategies/SHMIOP_Connection_Handler.h
- * tao/Strategies/UIOP_Connection_Handler.cpp
- * tao/Strategies/UIOP_Connection_Handler.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp:
- Replicated the changes from IIOP to the above protocols.
-
-Sun Jul 29 19:31:34 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tao/RTCORBA/RT_Mutex.cpp (try_lock): Since we fixed the timed
- ACE_OS::mutex_lock() to set errno to ETIME we can cleanup the
- code here to remove the checks for errno == EBUSY and errno ==
- ETIMEDOUT.
-
-Sun Jul 29 20:00:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tao/PortableServer/ORB_Manager.h:
-
- Improved comments and converted to doxygen format.
-
-Sun Jul 29 10:15:13 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/TAO_Internal.cpp (open_services_i):
-
- Reverted my change that prevented the default resource factory
- from being inserted into the Service Repository. The resource
- factory must be inserted into the Service Repository so that
- Service Configurator directives such as 'static Resource_Factory
- "-ORBResources global"' actually work properly. An alternative
- solution for the dynamic loading problem related the default
- resource factory is necessary.
-
-Sun Jul 29 00:59:28 2001 Ossama Othman <ossama@uci.edu>
-
- * docs/Options.html:
-
- Updated documentation for the "-ORBSkipServiceConfigOpen" ORB
- option. It is no longer necessary the Service Configurator is
- now reentrant and thread-safe. This option is deprecated, and
- will be removed in releases of TAO in the near future.
-
-Sun Jul 29 00:22:30 2001 Ossama Othman <ossama@uci.edu>
-
- * examples/Simple/time-date/svc.conf:
-
- The support for nested Service Configurator directive processing
- that was just added to ACE made it possible to greatly simply
- this `svc.conf' file. It is no longer necessary to pre-load
- services that are by default loaded by the ORB. It is also no
- longer necessary to use the "-ORBSkipServiceConfigOpen" ORB
- option since the Service Configurator is now
- reentrant/thread-safe.
-
- Instead of the nine Service Configurator directives that were
- listed in this file, only three of them are now necessary.
-
-Sat Jul 28 23:29:21 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/TAO_Internal.cpp (open_services_i):
-
- We cannot insert the default resource factory into the Service
- Repository before the ORB is created since it will be finalized
- before the ORB is finalized. The ORB requires that a resource
- factory exist in order to reclaim the reactor during
- finalization.
-
- This was only a problem when the ORB was dynamically
- loaded/unloaded.
-
-Wed Jul 25 23:48:58 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tests/Blocking_Sync_None/client.cpp (main): Changed an
- error messages so that the "Right Thing[TM]" will happen when
- this test fails, i.e., the build system will automagically
- detect it. Thanks to Johnny Willemsen for reportng this.
-
-Fri Jul 27 21:48:12 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl: Removed all
- the references to the GIOP lite protocol from this script.
-
- * performance-tests/Cubit/TAO/IDL_Cubit/run_test_lite.pl: We dont
- seem to be having any sort of tests that are run for GIOP
- Lite. Now we will run this in our nightly builds. This test uses
- IIOP_Lite & UIOP_Lite to run the IDL_Cubit test. Having a
- protocol that we are not sure whether it works may be a bad
- idea.
-
-Fri Jul 27 21:38:58 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp: Added a TAO_debug_level guard around
- the places where dump_msg () is called. Though dump_msg ()
- prints out information only if the TAO_debug_level is set, this
- extra guard will prevent us from calling this method when we are
- trying to do performance measurements.
-
- * tao/GIOP_Message_Lite.cpp: For some reason this class never had
- a hexdump. Added the hexdump in dump_msg ().
-
-Fri Jul 27 16:33:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp: Enabled GIOP lite
- flag to pass through to their transport object.
-
-Fri Jul 27 16:32:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Connection_Handler.cpp: Enabled GIOP lite flag to pass
- through to their transport object.
-
- * tao/GIOP_Message_Lite.cpp: Transfered the reply that has been
- received to the another CDR which is used to dispatch the
- reply. This was actually fixed in my branch. Looks like this got
- missed when the branch was merged to the main trunk. Added some
- cosmetic fixes to the debugging output. Thanks to Paul Calabrese
- for alerting me about this miss.
-
-Fri Jul 27 14:43:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/BiDirectional_NestedUpcall/svc.conf: Removed from the
- repository. It is no longer needed as this test will work with
- a TP Reactor (the default one).
-
-Fri Jul 27 12:58:51 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp: Removed a debug statement.
-
-Fri Jul 27 12:25:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp: Reverted the change made in this Wed Jul 25
- 22:10:21 2001 Balachandran Natarajan <bala@cs.wustl.edu>. We
- need to resume the handle as soon the reply is ready for
- dispatching. The situation where it can create problems can be
- easily seen in $TAO_ROOT/tests/LongUpcalls/run_ami_test.pl.
-
- Further, the fix that was done earlier was to resume the handle
- after dispatching the reply. It was thought that it would fix a
- race condition. I had a long discussion with Irfan yesterday,
- and looks like the possibility of a race condition is not
- there at all.
-
-Fri Jul 27 11:09:25 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * tests/RTCORBA/Banded_Connections/bands.hpux:
-
- Added to fix the runtime problem on HP-UX.
-
- * tests/RTCORBA/Banded_Connections/run_test.pl:
- * tests/RTCORBA/Client_Propagated/client.cpp:
- * tests/RTCORBA/Client_Propagated/server.cpp:
- * tests/RTCORBA/MT_Client_Protocol_Priority/run_test.pl:
- * tests/RTCORBA/Server_Declared/run_test.pl:
-
- Corrections to fix some of the RTCORBA runtime test problems for
- HP-UX. These tests still have some problems (especially with
- SHMIOP).
-
-Fri Jul 27 10:50:42 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/Smart_Proxies/Benchmark/Makefile:
- * tests/Smart_Proxies/Policy/Makefile:
-
- Replaced VLDLIBS with TAO_SRVR_LIBS for the server
- target in each Makefile, in order to pull in
- TAO_PortableServer. Thanks to Ekkehard Hoffmann
- <ehoffman@fzi.de> for pointing out the link errors.
-
-Thu Jul 26 22:41:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/AVStreams_i.h:
-
- Make TAO_FlowConnection and TAO_MMDevice virtually
- inherit TAO_PropertySet. Thanks to Rob Ruff <rruff@scires.com>
- for pointing this out.
-
-Thu Jul 26 21:48:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/tests/AVStreams/mpeg/*: REMOVED
-
- Example uses archaic version of AVStreams and does not
- work well.
-
- * orbsvcs/tests/AVStreams/mpeg/README.uav: (added)
-
-Thu Jul 26 17:12:00 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/default_resource.cpp (get_parser_names):
-
- Fixed problem where the FILE and DLL parser Service Objects were
- not inserted into the parser registry. This problem surfaced
- when attempting to dynamically load the ORB, and manifested
- itself as a CORBA::INV_OBJREF exception when attempting to
- destringify an IOR such as "file://foo.ior". [Bug 744]
-
-Thu Jul 26 09:44:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/QoS_UDP.cpp:
-
- Hide more debugging messages behind: if( TAO_debug_level > 0)
-
-Thu Jul 26 07:37:29 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/RTCORBA/Server_Protocol/server.cpp:
- * tests/RTCORBA/Client_Propagated/server.cpp:
- * tests/RTCORBA/Thread_Pool/server.cpp: Fixed warnings in g++.
-
-Wed Jul 25 23:37:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/tests/AVStreams/Full_Profile/Makefile:
- * orbsvcs/tests/AVStreams/Latency/Makefile:
- * orbsvcs/tests/AVStreams/Modify_QoS/Makefile:
- * orbsvcs/tests/AVStreams/Multicast/Makefile:
- * orbsvcs/tests/AVStreams/Multicast_Full_Profile/Makefile:
- * orbsvcs/tests/AVStreams/Pluggable/Makefile:
- * orbsvcs/tests/AVStreams/Simple_Three_Stage/Makefile:
- * orbsvcs/tests/AVStreams/Simple_Two_Stage/Makefile:
- * orbsvcs/orbsvcs/Makefile.av:
-
- Correct link flags so that ACE_QoS is linked in when
- rapi=1 is specified in platform_macros.GNU.
-
-Wed Jul 25 22:45:10 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/SHMIOP_Transport.cpp:
- * tao/Strategies/DIOP_Transport.cpp: Fixed a compile error that
- came up from my previous change.
-
-Wed Jul 25 22:39:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/RTCORBA/Server_Protocol/server.cpp:
- * tests/RTCORBA/Client_Propagated/server.cpp:
- * tests/RTCORBA/Thread_Pool/server.cpp: Added checks & debugging
- statments for a null RootPOA. thanks to Johnny Willemsen for
- pointing this out. Did some minor cosmetic fixes.
-
-Wed Jul 25 22:10:21 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp:
- * tao/Transport.h: Fixed a subtle problem that seems to have lead
- to the Muxing tests failing randomly. The problem is something
- like this
- - multiple client threads can try to share a connection
- - because of the above, more than one message are sent on the
- same connection
- - if the server is multi-threaded, the messages can be processed
- concurrently
- - there may be a possibility of more than two replies coming on
- the same connection.
- - one of the client threads can pick up both the replies
- - one of the replies would be queued up and the first one can be
- its own
- - after queueing up the second it would wake up another thread
- - if the woken up thread does not own the reply, it could just
- take the reply and try to transfer ownership to the right
- thread.
- - before the second thread transfers the reply, teh second
- thread would have resumed the handler and because of which one
- of the threads would have gone into the reactor from the LF.
- - at exactly the same instant the seccond thread will have
- difficulty in waking up the thread on select () is it is the
- owner.
- Fixed this problem by not resuming the handle till we dispatch
- the reply. We dont buy anything by resuming the handle before
- dispatching the reply because, the dispatching will not be
- unbounded. The forces that apply to the server thread, which
- resumes the handle before making an upcall does not apply to the
- client threads that reads and processes replies. This fix should
- ideally fix the Muxing test failure on different paltforms. If
- it doesnt, it will atleast prevent the race condition outlined
- above :-)
-
-Wed Jul 25 20:33:21 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * examples/Simple/time-date/Makefile.bor:
- * examples/Simple/time-date/server.bor:
- * examples/Simple/time-date/time_date.bor: Fixed Borland builds
- for this example. This commit is for Johnny Willemsen who is
- away from his work.
-
-Wed Jul 25 12:50:00 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * tao/Strategies/DIOP_Factory.cpp:
-
- Changed the return value of requires_explicit_endpoint () to 0
- and documented that this return code is not reflecting that
- the endpoints are not cleaned-up but that we disable it by default
- because DIOP is only suitable for certain use cases, e.g. it only
- supports one-ways.
-
-Wed Jul 25 08:41:39 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_interface/interface_cs.cpp:
-
- Fixed formatting in generation of _unchecked_narrow().
-
-Tue Jul 25 01:00:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/tests/AVStreams/Multicast/run_test.pl:
- * orbsvcs/tests/AVVStreams/Asynch_Three_Stage/run_test.pl:
- * orbsvcs/tests/AVStreams/Asynch_Three_Stage/input:
-
- Increase the times that the perl scripts expecting the
- the CORBA processes to run for. Decrease the size
- of the Asynch_Three_Stage input file by 4000 lines.
-
-Tue Jul 24 18:16:13 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * tests/Exposed_Policies/Policy_Verifier.cpp (init):
- * tests/Exposed_Policies/RT_Properties.cpp:
-
- Changed handling of the default argument values. Added options
- "-BaseObjectIOR" and "-OverriddenIOR" to enable waiting on the IOR
- file instead of sleeping in the run_test.pl
-
- * tests/Exposed_Policies/run_test.pl:
-
- Fixed priorities to handle Tru64. Added the new options
- mentioned above to specify the IOR.
-
- * tests/Exposed_Policies/POA.cfg:
- * tests/Exposed_Policies/Object.cfg:
-
- Since the IOR files are passed from the command-line, remove
- them from here.
-
- * tests/Exposed_Policies/POA.cfg.tru64: *
- tests/Exposed_Policies/Object.cfg.tru64:
-
- Added new files with proper priority values for Tru64.
-
- OCI folks, you want to change similarly for HP-UX.
-
-
-Tue Jul 24 11:12:25 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/IIOP_Acceptor.cpp (create_shared_profile,
- create_new_profile):
- * tao/Strategies/DIOP_Acceptor.cpp
- (create_shared_profile, create_new_profile):
- * tao/Strategies/SHMIOP_Acceptor.cpp (create_profile):
- * tao/Strategies/UIOP_Acceptor.cpp (create_profile):
-
- Do not add any tagged components to the profile if an IIOP 1.0
- endpoint/profile is being created. Tagged components were
- introduced in IIOP 1.1. The same convention is adopted for the
- other pluggable protocols distributed with TAO (UIOP, SHMIOP,
- and DIOP). SSLIOP already does this check since it requires
- tagged components in order to convey security association
- information to the client. These changes address
- interoperability issues.
-
-Tue Jul 24 12:33:17 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Big_Reply/Client_Task.cpp (validate_connection): Some
- cosmetic changes.
-
-Tue Jul 24 08:38:14 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * orbsvcs/examples/Security/SecurityLevel1/SLevel1_Test.idl:
-
- Removed 'void' parameter from two operations. Thanks to
- Ugendreshwar Kudupudi <ugenderk@rediffmail.com>
- for reporting the bug.
-
-Mon Jul 23 22:31:18 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Big_Reply/Client_Task.cpp: Added some debufg
- statments. Further fixed a small goof up. A method to
- validate connections was added but never called :(. Fixed that
- by calling validate_connection () before an actual call to the
- server object.
-
-Mon Jul 23 22:24:05 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * examples/Simple/time-date/svc.conf: Removed the entry for
- TAO_RT_Protocol_Hooks. Looks like they have taken some other
- form after the RTCORBA subsetting effort. The test were failing
- in the daily builds but never came up on the scoreboard.
-
-Mon Jul 23 21:40:38 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Lite.cpp: Fixed a warning in Win32 builds.
-
-Mon Jul 23 1:44:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/TAO_Static.dsp: Added GIOP_Lite files to the builds.
-
-Mon Jul 23 11:44:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- Support for GIOP Lite and GIOP Fragments are being added in this
- checkin. Merged from the branch giop_lite_fragment.
-
- * tao/Makefile:
- * tao/Makefile.bor: Added GIOP Lite files to the list of files.
-
-Sat Jul 14 16:42:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/DIOP_Transport.cpp:
- * tao/Strategies/SHMIOP_Transport.cpp:
- * tao/Strategies/UIOP_Transport.cpp: Added support for GIOP lite.
-
-Fri Jul 13 16:54:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Pluggable_Messaging.h:
- * tao/GIOP_Message_Base.h:
- * tao/GIOP_Message_Base.cpp:
- * tao/Transport.cpp:
- * tao/Transport.h:
- * tao/Transport.inl: Added support for GIOP fragments. The GIOP
- fragmentation supportseems to have some copying and allocation
- overhead. Need to look into this when it gets
- important. Further, the fragmentation support hasnt been
- tested at all as we have no way of testing it.
-
- * tao/IIOP_Transport.cpp: Enabled GIOP lite support
- * tao/TAO.dsp: Added GIOP lite files back to the builds.
-
- * tao/Connection_Handler.h:
- * tao/orbconf.h: Moved some of the #defines from
- Connection_Handler.h to orbconf.h.
-
-Mon Jul 9 10:23:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Generator_Parser_12.cpp: The long talked about
- alignment for the LocateReply messages have been removed. We
- dont align the messages on an 8 byte boundary as described by
- the CORBA 2.4 spec. This is one of the urgent resolutions
- adopted by the OMG.
-
-Mon Jul 9 09:40:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Lite.h:
- * tao/GIOP_Message_Lite.cpp: Added support for GIOP lite. The
- implementation now is similar to the regular GIOP.
-
- * tao/GIOP_Message_Base.cpp: Used the payload_size () in
- GIOP_Message_State for claculating the payload. We were using
- the message_size () and then subtracting the length of the GIOP
- header in consolidate_node (). This looked cumbersome.
-
-
-
-Mon Jul 23 07:46:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/orbconf.h: Enabled DIOP for minimum CORBA.
-
-Sun Jul 22 21:53:23 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * $ACE_ROOT/auto_run_tests.lst: Disabled Exposed_Policies test for
- single threaded configurations and Linux. This test requires
- multiple threads and support for multiple native priorities.
-
- * tests/Exposed_Policies/Policy_Tester.cpp (Policy_Tester): Fixed
- several things:
-
- - No need for the Policy_Tester::~Policy_Tester to call
- shutdown(). This is already done by the servant.
-
- - No need for TRY/CATCH blocks in each function. This
- unnecessarily stops any exceptions from propagating to higher
- layers.
-
- - Fixed return values and added error checking.
-
- - No need to call destroy() on the POAs. ORB::shutdown is
- enough.
-
- - Removed unnecessary default values from the function
- prototypes.
-
- * tests/Exposed_Policies/run_test.pl:
- * tests/Exposed_Policies/POA.cfg:
- * tests/Exposed_Policies/Object.cfg:
-
- Updated config files so that the priorities would be ok for
- Win32.
-
- * tests/Exposed_Policies/server.cpp: Improved error checking.
-
- * tests/Exposed_Policies/server.conf: Removed Thread Pool Reactor
- directive from the service config file.
-
-Sun Jul 22 16:44:16 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Big_Reply/Client_Task.cpp:
- * tests/Big_Reply/Client_Task.h: Fixed a compile error in no
- exception builds.
-
-Sun Jul 22 13:36:21 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/RTP.cpp:
- If a TAO_AV_frame_info is not specified in the
- TAO_AV_RTP_Object::sendframe() method, insert a
- timestamp into the RTP header based on the current system
- time. The timestamp will be in milliseconds.
- Thanks to Rob Ruff <rruff@scires.com> for pointing this out.
-
-Sun Jul 20 12:30:00 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * tao/Asynch_Invocation.cpp:
- * tao/Asynch_Invocation.i:
-
- Changed the code which sets up a reply dispatcher for
- AMI calls to only set up one, if a non-nil reply handler
- got registerd. This change is related to my change on
- Fri Jul 20 08:10:00 2001. It assumes that the ORB
- will drop replies to which no reply dispatcher is registered.
-
-Sun Jul 22 09:43:09 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Big_Reply/Test.idl: Added a no-op ping () operation which
- is used to setup a connection properly.
-
- * tests/Big_Reply/Client_Task.cpp:
- * tests/Big_Reply/Client_Task.h: Called the ping () method before
- getting the replies.
-
- * tests/Big_Reply/Big_Reply_i.h:
- * tests/Big_Reply/Big_Reply_i.cpp: Implementation for the ping ()
- method.
-
-Sun Jul 22 09:27:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Oneway_Buffering/Test.idl: Changed the operation
- request_received () in Oneway_Buffering_Admin interface to a
- oneway. The reason for doing this has been well documented in
- bug #982.
-
-Fri Jul 20 23:58:12 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp: Fixed a subtle bug. The problem was when
- reading a big message. We read part of the message into a stack
- allocated buffer. We then grow the buffer to read the rest of
- the message. This was working fine. But in the read after
- grwoing the buffer, if we get an error we were just returning
- to the reactor. This was right. But we have to queue up the
- message before returning to the reactor incase we get a
- EWOULDBLOCK.
-
-Fri Jul 20 12:58:12 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Connection_Handler.h:
- * tao/IIOP_Connection_Handler.cpp: Removed the resumption of the
- handler in the handle_output () call. Looks like we dont win
- anything by resuming the handler at this level. We need to get
- back to this after 1.2 if it is required.
-
- * tao/Connection_Handler.h: Removed some of the #defines
- * tao/orbconf.h: Moved the #defines here from
- Connection_handler.h.
-
- * tao/Strategies/DIOP_Connection_Handler.h:
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- * tao/Strategies/UIOP_Connection_Handler.h:
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.h:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp: Replicated
- IIOP changes to these protocols.
-
-
-Fri Jul 20 09:25:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tests/ior_corbaloc/run_test.pl:
- * tests/InterOp-Naming/run_test.pl:
-
- Do not include ACEutils Perl module in scripts which use
- PerlACE::Run_Test module. ACEutils prevents
- PerlACE::Run_Test from seeing the -ExeSubDir argument.
- This causes test failures on certain platforms.
- Thanks to Darrell Brunsch for explaining this and pointing
- this out.
-
-Tue Jul 20 08:27:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/tests/AVStreams/Component_Switching/receiver.dsp: Fixed
- a typo in the library names.
-
-Fri Jul 20 08:10:00 2001 Michael Kircher <Michael.Kircher@mchp.siemens.de>
-
- * tao/ORB_Core.cpp:
- * tao/Leader_Follower.i:
- * tao/Strategies/DIOP_Acceptor.cpp:
- * tao/Strategies/DIOP_Connection_Handler.cpp:
-
- Removed old, meanwhile unrelevant comments from me.
-
- * tao/Asynch_Reply_Dispatcher.cpp:
-
- Added a check for a nil reply handler. In the case of a nil reply
- handler no response is dispatched. Thanks to Andreas Geisler
- <Andreas.Geisler@erl9.siemens.de> for pointing this out.
-
- * tests/AMI/simple_client.cpp:
-
- Added a test case for the above change.
-
- * tests/AMI/client.cpp:
-
- Did a cosmetic change.
-
-Thu Jul 19 18:48:09 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tao/ORB.h (run/work_pending/perform_work): Updated documentation
- wrt timeouts. Thanks to Jean-Christophe Dubois <jcd@one.com>
- for suggesting this.
-
-Thu Jul 19 10:37:55 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * docs/Options.html:
-
- Document the differences between the default and
- advanced resource factories.
-
-Tue Jul 19 09:30:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp (make_queued_data): Created a data block for
- the size that is required instead of the size of the incoming
- data block. This should fix the lingering problems with
- Single_Read tests in our daily builds.
-
- * tao/GIOP_Message_Base.cpp: Added some comments.
-
-Tue Jul 19 09:34:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/tests/AVStreams/Component_Switching/sender.bor:
- * orbsvcs/tests/AVStreams/Component_Switching/receiver.bor:
- * orbsvcs/tests/AVStreams/Component_Switching/distributer.bor:
- Fixed the Borland makefiles files to link in the strategies library.
-
-Tue Jul 19 07:56:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/tests/AVStreams/Component_Switching/sender.dsp:
- * orbsvcs/tests/AVStreams/Component_Switching/receiver.dsp:
- * orbsvcs/tests/AVStreams/Component_Switching/distributer.dsp:
- Fixed the dsp files to link in the strategies library.
-
-Tue Jul 19 12:49:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Sequence.i (replace):
- * tao/Sequence.cpp: Set the read and write pointers properly for
- copied message blocks at the positions.
-
-Tue Jul 19 12:27:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp (make_queued_data): Fixed a typo and added a
- new line for a DEBUG statement.
-
-Tue Jul 18 11:25:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.h:
- * tao/Transport.cpp: Refactored some code in to a new method
- called get_queued_data ().
-
-Wed Jul 18 23:58:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/tests/AVStreams/Component_Switching/sender.cpp:
- * orbsvcs/tests/AVStreams/Component_Switching/receiver.cpp:
- * orbsvcs/tests/AVStreams/Component_Switching/distributer.cpp:
-
- Add #include "tao/Strategies/advanced_resource.h"
- so that the ace_static_svc_TAO_Advanced_Resource_Factory
- symbol is defined in each binary, and the TAO_Strategies
- library is actually linked in during static builds.
- Fixes failures of this test with static builds.
-
- * orbsvcs/tests/AVStreams/Component_Switching/components_svc.conf:
- Fix syntax so Service Configurator file can be used
- for static and dynamic builds.
-
-Wed Jul 18 19:22:48 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tao/Leader_Follower.i (set/reset_client_leader_thread): Fixed a
- subtle bug in the Leader Follower code: <client_leader_thread_>
- was marked 1 in set_client_leader_thread() and 0 in
- reset_client_leader_thread(). This was a problem when the
- client thread was made leader thread multiple times in nested
- upcall situations. Changing the code to increment
- <client_leader_thread_> in set_client_leader_thread() and
- decrement in reset_client_leader_thread() gave us an accurate
- count of how many times the client was made the leader. Thanks
- to Christian von Mueffling <cvm@aiss.de> and Alex Lehner
- <lehner@aiss.de> for reporting this.
-
- * tao/Asynch_Reply_Dispatcher.cpp: Removed unnecessary include
- file "Leader_Followers.h".
-
- * tests/NestedUpcall/Simple/run_test.pl: Changed MT configuration
- to use parameters with which the test was previously failing.
-
-Wed Jul 18 17:44:56 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/driver/drv_preproc.cpp (DRV_pre_proc):
- * orbsvcs/IFR_Service/drv_preproc_ifr.cpp (DRV_pre_proc):
-
- Added one more flag set in the ACE_Log_Msg instance to
- ensure that the output of the preprocessor dump (-E command
- line option) goes to stdout.
-
-Tue Jul 18 09:11:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp: Made sure that the timeout values are passed
- to the recv () calls in the handle_input_i (). The
- thread-per-connection uses the timeout value. Thanks to Mike
- Pyle <mike.pyle@burning-glass.com> for influencing this change.
-
-Wed Jul 18 08:55:29 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * orbsvcs/IFR_Service/drv_preproc_ifr.cpp (DRV_pre_proc):
-
- Dump of preprocessed IDL file (from -E command line option)
- now goes to stdout instead of stderr. Similar to change in
- TAO IDL compiler in yesterday's entry.
-
-Tue Jul 18 07:58:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp (consolidate_message): Fixed a subtle that
- hardly showed up. The problem stemmed from the fact we were
- trying to queue up messages if we had a partial read. The
- Message blocks were duplicated but not the underlying data
- blocks. Fixed them by doing a proper copying onto the message
- queue.
-
- * tao/Sequence.i:
- * tao/Sequence.cpp: Used the self_flags () instead of flags () to
- check on the origin of the data block.
-
-Tue Jul 17 21:13:30 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tests/RTCORBA/Server_Protocol/run_test.pl: Updated and fixed
- run_test.pl and add new file server_uiop.conf.
-
-Tue Jul 17 16:24:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/tests/AVStreams/Component_Switching/run_test.pl:
- * orbsvcs/tests/AVStreams/Component_Switching/svc.conf: (removed)
- * orbsvcs/tests/AVStreams/Component_Switching/components_svc.conf: (added)
- Renamed svc.conf to components_svc.conf to fix problems
- in statically compiled builds.
-
-Tue Jul 17 14:09:16 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Single_Read/client.cpp:
- * tests/Single_Read/test_i.cpp: Added some debug statements. This
- test seems to be failing only in one of the Full builds. Not
- sure what could be the problem. The test runs to perfection but
- the srever doesn't shutdown. I havent been able to reproduce the
- error. These debug statements should give me sufficient clue to
- what is happening.
-
-Tue Jul 17 13:48:00 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/UIOP_Transport.cpp: Fixed a warning.
-
-Tue Jul 17 13:44:49 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/POA/Demux/Makefile: Updated dependencies. This
- should fix the compile error with FORTE.
-
-Tue Jul 17 11:54:07 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/driver/drv_preproc.cpp:
-
- Modified preprocessor dump to go to stdout instead of stderr. This
- feature was requested by Alex Hornby <alex@anvil.co.uk>.
-
-Mon Jul 16 22:24:17 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * examples/PluggableUDP/tests/SimplePerformance/run_test.pl:
- * examples/PluggableUDP/tests/Basic/run_test.pl: Fixed the run
- test scripts to make sure that a DIOP endpoint is specified when
- the server is invoked. This would fix the errors seen in our
- builds.
-
- * examples/PluggableUDP/tests/Basicsvc.conf: Just removed the file
- from the repository. Looks like it was not needed and confused
- the client too much leading to SEGV's.
-
-Mon Jul 16 22:03:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Connection_Handler.cpp:
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- * tao/Strategies/UIOP_Connection_Handler.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp: Fixed,
- what looked like a subtle race condition. If a thread that calls
- handle_input () gets a -1 on read, we return -1 to the
- reactor. This makes the reactor close the handler and remove
- that from its internal map. If we resume the handler for such
- cases, before returning from handle_input (), looked like one
- more thread was woken up by the reactor to read from the
- handle. When this occurs on another thread, the first thread
- went about doing its task of closing the handle and removing the
- handler from its internal map. Bad things started happening.
-
-Mon Jul 16 17:23:57 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/IORManipulation/TAO_IORManip.dsp:
-
- Further fixes to the MFC versions of this project.
-
-Mon Jul 16 14:25:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_State.cpp (read_ulong): Looks like some of the
- compilers have problems when they try to dereference a pointer
- got out of reinterpret_cast'ing another pointer. The problem
- showed up on solaris builds. The fix that has been applied is to
- make a local copy on the stack of the data that is needed before
- calling a reinterpret_cast on it.
-
-Mon Jul 16 11:44:30 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Big_Reply/server.cpp: The reply sent was too huge. The bug
- #957 started showing up. Reduced the size of the reply to
- approximately 4 MB.
-
-Mon Jul 16 11:36:00 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * tao/Strategies/DIOP_Factory.cpp (requires_explicit_endpoint):
-
- Make DIOP require an explicit endpoint to prevent a DIOP
- endpoint from being automatically created when the Strategies
- library is linked.
-
-Mon Jul 16 11:20:40 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/DyanmicInterface/TAO_DynamicInterface.dsp:
- * tao/IORTable/TAO_IORTable.dsp:
- * tao/IORManipulation/TAO_IORManip.dsp:
- * orbsvcs/orbsvcs/LoadBalancing.dsp:
- * orbsvcs/orbsvcs/CosNotification.dsp:
-
- Fixed MFC settings for these projects. Thanks to
- truename <shi_bing@netease.com> for reporting the
- problems.
-
-Mon Jul 16 9:17:43 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * performance-tests/Throughput/client.bor:
- * performance-tests/Throughput/server.bor:
- Corrected definitions of CFLAGS and LIBFILES to fix Borland
- compile error.
-
-Mon Jul 16 07:49:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/Cubit/TAO/IDL_Cubit/collocation_test.dsp:
- * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/Server.dsp:
- * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/Client.dsp:
- These dsp files needed the strategies library in their release
- configuration. Added them to fix Win32 builds. I thought I had
- made the changes during my last checkin. Apparently I had not :(.
-
-Mon Jul 16 07:34:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/tutorials/Quoter/Event_Service/Makefile: Updated
- dependencies.
-
-Sun Jul 15 9:59:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Param_Test/anyop.dsp (InputPath): Set the dependecy for
- the generated code to the IDL compiler. Missed out when
- generated this file.
-
-Sun Jul 15 9:33:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Sequence.cpp:
- * tao/Sequence.i: A fix at the places where
- ACE_Message_Block::duplicate () is called. The duplicate ()
- call just allocated memory for a new Message block and then
- duplicated the exisiting data block -- which just increments the
- reference count of the data block. This could be bad for cases
- where the incoming message is on a data block on stack. By
- incrementing the reference count we get nothing for such
- cases. The fix that has been put in does the following
-
- - checks whether the data block is on stack, if so does a deep
- copy before calling duplicate on the message block.
- - if the data block is already on the heap just calls duplicate
- () on the message block.
-
- * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp: Added a comment where
- duplicate () is used. But the code that uses duplicate () has
- been commented out .
-
-Sat Jul 14 20:18:36 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * docs/tutorials/Quoter/Event_Service/Makefile: Updated
- dependencies.
-
-Sat Jul 14 18:59:48 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/Cubit/TAO/IDL_Cubit/collocation_test.dsp:
- * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/Server.dsp:
- * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/Client.dsp:
- These dsp files needed the strategies library. Added them to fix
- Win32 builds.
-
-Sat Jul 14 17:44:28 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/Param_Test/anyop.dsp (RSC): Looks like this has been
- broken for a long time now. Fixed the dsp file so that we dont
- any errors during loading.
-
-Sat Jul 14 00:33:28 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * examples/PluggableUDP/tests/SimplePerformance/svc.conf:
-
- Switch this configuration file to use the
- Advanced_Resource_Factory. This way the options
- actually do something.
-
-Fri Jul 13 16:07:04 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * orbsvcs/ImplRepo_Service/ImplRepo_i.cpp: Make sure
- that this->ior_multicast is non-NULL in ~ImplRepo_i() before
- using it to lookup in the reactor. Thanks to Victor Chernenko
- <v_chernenko@hotmail.com> for reporting this.
-
-Thu Jul 13 14:30:16 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * examples/AMI/FL_Callback/AMI_Peer.dsp:
- * examples/AMI/FL_Callback/AMI_Progress.dsp:
- * orbsvcs/tests/AVStreams/Latency/control.dsp:
- * orbsvcs/tests/AVStreams/Latency/ping.dsp:
- * orbsvcs/tests/AVStreams/Latency/pong.dsp:
- * performance-tests/Callback/client.dsp:
- * performance-tests/Callback/server.dsp:
- * performance-tests/Cubit/TAO/MT_Cubit/client.dsp:
- * performance-tests/Cubit/TAO/MT_Cubit/server.dsp:
- * tests/Collocation/Collocation.dsp:
- * tests/Exposed_Policies/Client.dsp:
- * tests/Exposed_Policies/Server.dsp:
-
- Add in missing path for TAO_Strategies library.
-
-Fri Jul 13 10:48:03 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_union/union_cs.cpp:
- * TAO_IDL/be/be_visitor_union_branch/pulbic_assign_cs.cpp:
-
- Fixed code generation for copy constructor and assignment
- operator for object reference union members. These operations
- were failing if the rhs union was uninitialized. Thanks to
- Matt Cheers <matt.cheers@boeing.com> for sending in the example
- IDL file and application code.
-
-Thu Jul 12 22:22:31 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/Connector_Registry.cpp (create_profile):
-
- Print the hexadecimal value of the unknown profile tag in the
- debugging output rather than the decimal value. The former is
- generally more useful.
-
-Thu Jul 12 21:36:53 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/Makefile (MKLIST):
-
- The AV Service needs the CosNaming and CosProperty libraries.
- Add their Makefiles to the build list if they aren't already
- there.
-
-Thu Jul 12 20:40:51 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp (connect):
-
- Corrected placement of an ACE_CHECK_RETURN statement.
-
-Thu Jul 12 20:29:42 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/ORB_Core.i (resolve_rt_orb, resolve_rt_current):
-
- Fixed broken emulated exception code. ACE_CHECK_RETURN should
- have been used instead of ACE_TRY_FLAG.
-
-Thu Jul 12 20:21:36 2001 Ossama Othman <ossama@uci.edu>
-
- * docs/tutorials/Quoter/Makefile (DIRS):
- * docs/tutorials/Quoter/Simple/Makefile (DIRS):
-
- Do not build certain directories if AMI is disabled or if
- Minimum CORBA is enabled. Some tutorials require AMI, or
- features that are not available in the minimum CORBA
- configuration.
-
-Thu Jul 12 19:45:06 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/Naming_Service/NT_Naming_Server.cpp (ConsoleHandler):
-
- Fixed unused argument warning.
-
-Thu Jul 12 17:30:42 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * tao/orbconf.h:
- * tao/ORB.cpp:
- * tao/ORB_Core.cpp:
- * tao/ORB_Core.h:
- * tao/ORB_Core.i:
-
- Removed the RTORB and RTCurrent from the hardcoded list of
- initial references. Now, both get added dynamically when the
- RTCORBA library is loaded using the PortableInterceptors.
-
- This should fix a segfault that was reported by Max
- Voronoy <M.Voronoy@telesenskscl.com.ua> and investigated by
- Ossama.
-
- * tao/RTCORBA/RTCORBA.cpp:
- * tao/RTCORBA/RT_ORB.cpp:
- * tao/RTCORBA/RT_ORB.h:
- * tao/RTCORBA/RT_ORBInitializer.cpp:
- * tao/RTCORBA/RT_ORBInitializer.h:
- * tao/RTCORBA/RT_ORB_Loader.cpp:
- * tao/RTCORBA/RT_ORB_Loader.h:
- * tao/RTCORBA/Thread_Pool.cpp:
- * tao/RTCORBA/Thread_Pool.h:
-
- Code changes necessary to support creating the RTORB and
- RTCurrent in the pre_init method rather than on demand.
- This is necessary to add both objects to the initial
- references list using the PortableInterceptors.
-
- * tests/RTCORBA/Makefile:
- * tests/RTCORBA/Makefile.bor:
- * tests/RTCORBA/README:
- * tests/RTCORBA/ORB_init/Makefile:
- * tests/RTCORBA/ORB_init/Makefile.bor:
- * tests/RTCORBA/ORB_init/ORB_init.cpp:
- * tests/RTCORBA/ORB_init/ORB_init.dsp:
- * tests/RTCORBA/ORB_init/README:
- * tests/RTCORBA/ORB_init/run_test.pl:
-
- Added unit test to check for correct processing when
- instantiating multiple RT enabled ORBs. Looking at some
- of the RT code indicated that there might be a problem,
- and there actually was. Thanks to Irfan for writing
- the test.
-
- * tao/TAO_Internal.cpp:
-
- Added check to automatically initialize RTCORBA if it
- has been linked in. This should fix a common source
- of RTCORBA errors. Thanks to Irfan for the suggestion.
-
- * tests/RTCORBA/Private_Connection/svc.conf:
- * tests/RTCORBA/Server_Declared/server.conf:
- * tests/RTCORBA/Server_Declared/svc.conf:
- * tests/RTCORBA/Server_Protocol/server_iiop.conf:
- * tests/RTCORBA/Server_Protocol/server_reverse.conf:
- * tests/RTCORBA/Server_Protocol/server_reverse_nt.conf:
- * tests/RTCORBA/Server_Protocol/server_shmiop.conf:
- * tests/RTCORBA/Server_Protocol/svc.conf:
- * tests/RTCORBA/Thread_Pool/svc.conf:
- * tests/Exposed_Policies/server.conf:
- * tests/Exposed_Policies/svc.conf:
- * tests/RTCORBA/Banded_Connections/server.conf:
- * tests/RTCORBA/Banded_Connections/svc.conf:
- * tests/RTCORBA/Client_Propagated/svc.conf:
- * tests/RTCORBA/Client_Protocol/svc.conf:
- * tests/RTCORBA/Explicit_Binding/svc.conf:
- * tests/RTCORBA/MT_Client_Protocol_Priority/server.conf:
- * tests/RTCORBA/MT_Client_Protocol_Priority/svc.conf:
-
- Updated configuration files to remove RT_ORB initialization
- to test out the above change.
-
-
-Thu Jul 12 15:10:52 2001 Ossama Othman <ossama@uci.edu>
-
- * TAO_IDL/driver/drv_preproc.cpp (DRV_pre_proc):
-
- Open the temporary file with the O_EXCL flag to close a symbolic
- link attack vulnerability.
-
-Thu Jul 12 13:31:25 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/Security/EstablishTrustPolicy.h:
-
- Corrected constructor signature to match the implementation.
-
- * orbsvcs/orbsvcs/Security/Security_PolicyFactory.cpp
- (create_policy):
-
- Support creation of the SecurityLevel2::EstablishTrustPolicy.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp (connect):
-
- Refactored IIOP-specific and SSLIOP-specific code into new
- iiop_connect() and ssliop_connect() methods, respectively.
-
- (ssliop_connect):
-
- Added support for the SecurityLevel2::EstablishTrustPolicy.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.i (object_addr):
-
- Cache the SSLIOP-specific ACE_INET_Addr in the
- TAO_SSLIOP_Endpoint rather than initializing one each time an
- invocation is made. This should improve SSLIOP performance.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.cpp:
-
- Removed left over Security::Detect{Replay,Misordering} security
- association bits from the default security association value.
- They were actually unused, but removed them anwyay since SSLIOP
- doesn't support either. No visible run-time change will occur.
-
- * orbsvcs/orbsvcs/Makefile.Security (FILES):
- * orbsvcs/orbsvcs/Security.bor (OBJFILES):
- * orbsvcs/orbsvcs/Security.dsp:
-
- Added EstablishTrustPolicy files to the list of sources.
-
-Thu Jul 12 15:10:46 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * examples/PluggableUDP/tests/Basic/svc.conf:
- * examples/PluggableUDP/tests/Performance/svc.conf:
- * tests/RTCORBA/Server_Protocol/server_iiop.conf:
- * tests/RTCORBA/Server_Protocol/server_reverse.conf:
- * tests/RTCORBA/Server_Protocol/server_reverse_nt.conf:
- * tests/RTCORBA/Server_Protocol/server_shmiop.conf:
-
- Switch these configuration files to use the
- Advanced_Resource_Factory. This way their options
- actually do something.
-
-Thu Jul 12 13:07:20 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/IDL_Test/interface.idl:
- * tests/IDL_Test/reopened_modules.idl:
-
- Moved some example code having nested modules from
- interface.idl to reopened_modules.idl. This move hides
- the generated code from both configurations of VxWorks,
- which can't compile C++ code generated from nested IDL
- modules.
-
-Thu Jul 12 07:11:39 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/Strategies/advanced_resource.cpp (init):
-
- Fixed broken code that initialized a stack allocated string
- array with a non-const size. Use a CORBA::StringSeq instead.
-
-Wed Jul 11 18:00:13 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/Invocation_Endpoint_Selectors.cpp (select_endpoint):
-
- Applied patch from Wayne Erchak <werchak@stentor.com> that fixes
- problem where the endpoint list in a given profile was not
- iterated through during connection failures. "Fail-over"
- semantics for a non-RTCORBA configured ORB once again work.
- [Bug 927]
-
- * orbsvcs/orbsvcs/Security/EstablishTrustPolicy.h:
- * orbsvcs/orbsvcs/Security/QOPPolicy.h:
-
- Added Doxygen comments for the TAO_QOPPolicy and
- TAO_EstablishTrustPolicy classes.
-
-Wed Jul 11 16:03:49 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/Security/EstablishTrustPolicy.h:
- * orbsvcs/orbsvcs/Security/EstablishTrustPolicy.cpp:
-
- Implementation of the SecurityLevel2::EstablishTrustPolicy. It
- makes it possible to control whether or not client/target
- authentication is performed.
-
-Wed Jul 11 16:03:58 2001 Paul Calabrese <calabrese_p@ociweb.com>
-
- * tao/Object_Loader.h:
- * tao/Resource_Factory.cpp:
- * tao/Resource_Factory.h:
- * tao/Server_Strategy_Factory.cpp:
- * tao/Server_Strategy_Factory.h:
- * tao/default_client.cpp:
- * tao/default_client.h:
- * tao/default_resource.cpp:
- * tao/default_resource.h:
- * tao/default_server.cpp:
- * tao/default_server.h:
- * tao/Strategies/advanced_resource.cpp:
- * tao/Strategies/advanced_resource.h:
-
- Improved processing of service configurator options. Many
- failures were not being reported to the user. These changes
- cause many failure to print warning messages but should not
- affect execution of the code. The following situations now
- result in warning messages:
- - Passing unknown -ORB* options to a factory
- (This includes passing advanced resource factory
- options to the default resource factory)
- - Passing an unknown value to a defined option
- - Passing options to the default resource factory
- (Resource_Factory) when the advanced resource factory
- (Advanced_Resource_Factory) is being used
-
- I also removed several deprecated options: -ORBEventLoopLock,
- -ORBDemuxStrategy, and -ORBConnectorLock.
-
- * examples/AMI/FL_Callback/AMI_Peer.dsp:
- * examples/AMI/FL_Callback/AMI_Progress.dsp:
- * examples/AMI/FL_Callback/Makefile:
- * examples/AMI/FL_Callback/peer.conf:
- * examples/AMI/FL_Callback/peer.cpp:
- * examples/AMI/FL_Callback/svc.conf:
- * orbsvcs/tests/AVStreams/Latency/Makefile:
- * orbsvcs/tests/AVStreams/Latency/control.cpp:
- * orbsvcs/tests/AVStreams/Latency/control.dsp:
- * orbsvcs/tests/AVStreams/Latency/ping.cpp:
- * orbsvcs/tests/AVStreams/Latency/ping.dsp:
- * orbsvcs/tests/AVStreams/Latency/pong.cpp:
- * orbsvcs/tests/AVStreams/Latency/pong.dsp:
- * orbsvcs/tests/AVStreams/Latency/svc.conf:
- * orbsvcs/tests/Event/Performance/latency.conf:
- * orbsvcs/tests/Notify/performance-tests/RedGreen/svc.conf:
- * performance-tests/Callback/Makefile:
- * performance-tests/Callback/client.bor:
- * performance-tests/Callback/client.cpp:
- * performance-tests/Callback/client.dsp:
- * performance-tests/Callback/server.bor:
- * performance-tests/Callback/server.cpp:
- * performance-tests/Callback/server.dsp:
- * performance-tests/Callback/svc.conf:
- * performance-tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp:
- * performance-tests/Cubit/TAO/IDL_Cubit/iiop_lite.conf:
- * performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl:
- * performance-tests/Cubit/TAO/IDL_Cubit/svc.mt_server.conf:
- * performance-tests/Cubit/TAO/IDL_Cubit/svc.st_client.conf:
- * performance-tests/Cubit/TAO/IDL_Cubit/svc.st_server.conf:
- * performance-tests/Cubit/TAO/IDL_Cubit/svc.zero_lock.conf:
- * performance-tests/Cubit/TAO/IDL_Cubit/uiop_lite.conf:
- * performance-tests/Cubit/TAO/IDL_Cubit/collocation/svc.conf:
- * performance-tests/Cubit/TAO/MT_Cubit/Makefile:
- * performance-tests/Cubit/TAO/MT_Cubit/client.bor:
- * performance-tests/Cubit/TAO/MT_Cubit/client.cpp:
- * performance-tests/Cubit/TAO/MT_Cubit/client.dsp:
- * performance-tests/Cubit/TAO/MT_Cubit/server.cpp:
- * performance-tests/Cubit/TAO/MT_Cubit/server.dsp:
- * performance-tests/Cubit/TAO/MT_Cubit/svc.conf:
- * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/client.conf:
- * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/server.conf:
- * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/client.cpp:
- * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/server.cpp:
- * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/Makefile:
- * performance-tests/RTCorba/Multiple_Endpoints/Single_Endpoint/client.conf:
- * performance-tests/Throughput/Makefile:
- * performance-tests/Throughput/client.bor:
- * performance-tests/Throughput/client.cpp:
- * performance-tests/Throughput/server.bor:
- * performance-tests/Throughput/server.cpp:
- * performance-tests/Throughput/svc.conf:
- * tests/AMI_Timeouts/svc.conf:
- * tests/Collocation/Collocation.bor:
- * tests/Collocation/Collocation.cpp:
- * tests/Collocation/Collocation.dsp:
- * tests/Collocation/Makefile.test:
- * tests/Collocation/svc.conf:
- * tests/Exposed_Policies/Client.dsp:
- * tests/Exposed_Policies/Makefile:
- * tests/Exposed_Policies/Server.dsp:
- * tests/Exposed_Policies/client.bor:
- * tests/Exposed_Policies/client.cpp:
- * tests/Exposed_Policies/server.bor:
- * tests/Exposed_Policies/server.conf:
- * tests/Exposed_Policies/server.cpp:
- * tests/Exposed_Policies/svc.conf:
- * tests/FL_Cube/Makefile:
- * tests/FL_Cube/client.bor:
- * tests/FL_Cube/client.cpp:
- * tests/FL_Cube/server.bor:
- * tests/FL_Cube/server.cpp:
- * tests/FL_Cube/svc.conf:
- * tests/LongUpcalls/svc.conf:
- * tests/MT_Server/server.conf:
- * tests/Strategies/Makefile:
- * tests/Strategies/README:
- * tests/Strategies/client.bor:
- * tests/Strategies/server.bor:
- * tests/Strategies/svc.conf
-
- These are changes to TAO tests and examples with
- broken service config files. The above changes
- caused these files to generate warnings. The vast
- majority of the problems were the passing of advanced
- resource factory options to the default resource
- factory. Most were changed to simply use the advanced
- resource factory. Some were modified to use
- the defaults of the default resource factory.
-
-Wed Jul 11 14:41:20 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/ast/ast_decl.cpp (compute_prefix):
-
- Fixed function to work if the #pragma prefix string looks like
- '#pragma prefix "foo.bar"'. The preprocessor takes care
- of the whitespace, if any, between '#pragma' and 'prefix'.
-
-Wed Jul 11 14:38:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- Only display debugging message if TAO_debug_level is set > 5.
-
-Wed Jul 11 13:49:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * utils/catior/catior.cpp:
- Add support for printing DIOP (GIOP over UDP) profiles.
-
-Wed Jul 11 08:39:14 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/RTCORBA/RT_Protocols_Hooks.cpp (get_thread_CORBA_priority):
-
- Replace ACE_CHECK with ACE_CHECK_RETURN (-1) - function must
- return an int.
-
-Wed Jul 11 09:25:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/tests/Makefile.bor:
- Add Simple_Naming test
-
-Wed Jul 11 02:19:59 2001 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * tao/RTPortableServer/RT_Servant_Dispatcher.cpp: Remember the
- native priority of the invoking thread. Once the invocation
- completes, restore the thread to the original native thread
- priority.
-
- Previously, when the priority was restored, it was done it terms
- of CORBA priority. The problem with this approach was that in
- the conversion from native to CORBA and then back to native, we
- can lose precision and hence the native priority of the native
- thread may not be the same as its original native priority.
- Therefore, remembering the original native priority will
- alleviate this problem.
-
- * tao/Protocols_Hooks:
- * tao/Default_Protocols_Hooks:
- * tao/RT_Protocols_Hooks.cpp:
-
- Expanded the priority interfaces on the Protocols_Hooks such
- that the user can obtain both the native and CORBA priorities.
- Also, the user can set both.
-
- * tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp (select_endpoint):
- * tao/RTCORBA/RT_Current.cpp (the_priority):
- * tao/Strategies/Reactor_Per_Priority.cpp (reactor):
-
- Changed to use new priority interfaces.
-
-Tue Jul 10 22:37:48 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/Security/QOPPolicy.cpp (copy):
-
- Perform a deep copy, not a shallow copy. The copy is supposed
- to be independent of the original.
-
-Tue Jul 10 15:59:31 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/PortableInterceptorC.h:
-
- Include "PolicyC.h" to pull in some policy related exception
- definitions. This fixed a problem with some minimum CORBA
- builds with native exception support enabled. Thanks to
- Sangeetha Ramadurai <Sangeetha.Ramadurai@geind.ge.com> for
- reporting the problem and providing a fix.
-
-Tue Jul 10 15:56:13 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * tao/GIOP_Message_Lite.h:
- * tao/GIOP_Message_Lite.cpp:
- * tao/Pluggable_Messaging.h:
- * tao/Pluggable_Messaging.cpp:
-
- Fixed warning about virtual function override. Was caught by the
- Tru64 compiler.
-
-Tue Jul 10 13:09:18 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_valuetype/valuetype.cpp:
-
- Corrected a generation of skel_export_macro to
- stub_export_macro. Thanks to Alexander Rieger
- <Alexander.Rieger@inka.de> for tracking this down.
-
-Tue Jul 10 11:51:05 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_interface/interface_ch.cpp:
- * TAO_IDL/be/be_visitor_interface/interface_sh.cpp:
-
- Changed code so that the inheritance list of a class
- declaration consists of fully scoped names. The stub
- generation was using ACE_NESTED_CLASS, and the skeleton
- generation was using a computed relative name. Both
- generated uncompilable code in some cases. Thanks to
- Richard L. Johnson <rich@huey.jpl.nasa.gov> for reporting
- this bug and for sending in the example IDL file.
-
- * tests/IDL_Test/interface.idl:
-
- Added example IDL to this file in the IDL test suite.
-
-Tue Jul 10 05:52:09 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * tao/Profile.h,
- * tao/Object.h: Fixed typos in comments. Thanks to Johnny
- Willemsen for reporting this.
-
- * tao/Connector_Registry.h (TAO_Connector_Registry): Fixed a typo
- where svc.comf should have been svc.conf. Thanks to Johnny
- Willemsen for reporting this.
-
- * tao/ORB.cpp: Added an addition expression to the #ifdef for the
- using std::set_unexpected declaration. Thanks to Scott Plant
- <splant@softhome.net> for reporting this.
-
-Tue Jul 10 00:45:00 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/RTCORBA/RT_ORB.cpp (TAO_RT_CORBA_Priority_Normalizer):
-
- Fixed busted code that did not check if the resolved
- PriorityMappingManager object reference was nil. Since this
- check was missing, a seg fault would occur when attempting to
- invoke a method on that mapping manager. Throw a
- CORBA::INTERNAL() exception if the reference is nil. This at
- leasts lets us identify a problem without seg faulting.
-
- Fixed broken code that did not use emulated exceptions properly.
- The ACE_TRY/CATCH block was missing.
-
-Tue Jul 10 09:13:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * tao/orbsvcs/orbsvcs/security.bor
-
- Added the missing files Security_PolicyFactory and QOPPolicy
-
-Mon Jul 09 23:43:29 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/params.i (default_init_ref):
-
- Use CORBA::string_dup() to return a duplicate string instead of
- relying on ACE_CString::rep(). This allows us to portably take
- advantage of CORBA::String_var in TAO_ORB_Core::resolve_rir().
-
- * tao/ORB_Core.cpp (list_initial_references):
-
- Corrected long standing bug where the stringified object
- reference was placed in the ObjectIdList instead of the ObjectId
- that represents it.
-
- Include the ObjectIds stored in the underlying table for
- the ORB::register_initial_reference() mechanism in the returned
- ObjectIdList. This was a bug.
-
- (TAO_ORB_Core, fini):
-
- The rt_priority_mapping_manager_ cached object reference member
- was unused. Removed its initialization and finalization code.
-
- (resolve_rir):
-
- Improved exception-safety of this method by using a
- CORBA::String_var instead of relying solely on delete().
-
- * tao/ORB_Core.h (rt_priority_mapping_manager_):
-
- Removed this unused attribute.
-
- * tao/Object_Ref_Table.h (begin, end):
-
- Made iterator accessors public so that the ORB_Core can use
- them.
-
- * tao/Object_Ref_Table.cpp:
-
- Removed three unnecessary Hash Map related template
- instantiations.
-
- (current_size):
-
- Return the current size of the underlying table.
-
- * tests/InterOp-Naming/README:
-
- Corrected format for corbaloc IORs.
-
-Mon Jul 9 17:39:21 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * orbsvcs/tests/Security/Secure_Invocation/client.cpp:
-
- Added .in() to a CORBA::ORB_var passed to a function.
-
-Mon Jul 9 14:56:26 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * docs/components.html (bgcolor): Fixed a typo. Thanks to
- John Ashmun for reporting this.
-
-Mon Jul 09 10:56:30 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/DynamicInterface/Server_Request.h:
- * tao/DynamicInterface/Server_Request.inl (_tao_server_request):
-
- Added this accessor that returns a reference to the underlying
- TAO_ServerRequest object. Thanks to James Megquier
- <jmegq@bbn.com> and Mouna Seri <seri@crhc.uiuc.edu> for
- suggesting addition of this accessor.
-
-Mon Jul 9 11:16:36 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/IFR_Client/TAO_IFR_Client.dsp:
- * tao/TypeCodeFactory/TypeCodeFactory.dsp:
-
- Added MFC debug and release versions to these projects.
- Thanks to Francois Bernier <fbernier@gel.ulaval.ca> for
- sending them in.
-
-Mon Jul 9 10:13:54 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_interface.cpp:
- * TAO_IDL/be_visitor_interface/interface_ch.cpp:
- * TAO_IDL/be_visitor_interface/interface_cs.cpp:
- * tao/Object.cpp:
- * tao/Object.h:
- * tao/Object.i:
-
- Added static int _tao_class_id to CORBA::Object and
- to all classes generated from IDL interfaces. The
- address of this variable is used in all
- _unchecked_narrow() and _tao_QueryInterface() methods.
- Formerly, the address of the _narrow() method was used,
- but on BCB, this address is not usable across DLLs.
- Thanks to Christopher Kohlhoff <chris@kohlhoff.com> for
- suggesting the fix.
-
-Mon Jul 9 15:27:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * tao/orbsvcs/tests/AVStreams/Makefile.bor
- * tao/orbsvcs/tests/AVStreams/Multicast_Full_Profile/*.bor
- * tao/orbsvcs/tests/AVStreams/Full_Profile/*.bor
-
- Added BCB makefiles for the mentioned AVStreams test
-
-Mon Jul 09 04:11:45 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/orbsvcs/Security/QOPPolicy.h:
-
- Added missing "ace/post.h" include.
-
-Mon Jul 09 02:43:38 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/tests/Security/Secure_Invocation/Makefile:
- * orbsvcs/tests/Security/Secure_Invocation/client.cpp:
- * orbsvcs/tests/Security/Secure_Invocation/client.dsp:
- * orbsvcs/tests/Security/Secure_Invocation/run_test.pl:
-
- Updated this test to take advantage of the newly added
- Security::QOPPolicy support. The test is more self-contained
- now, i.e. it no longer depends so much on the "run_test.pl" Perl
- script to test all features.
-
-Mon Jul 09 02:21:32 2001 Ossama Othman <ossama@uci.edu>
-
- * docs/releasenotes/index.html:
-
- Updated Security Service release notes.
-
-Mon Jul 09 01:51:27 2001 Ossama Othman <ossama@uci.edu>
-
- * tao/Invocation.h:
- * tao/Invocation.i:
-
- Added accessors to the transport and max_wait_time members.
-
- * tao/Invocation.cpp (perform_call):
-
- Updated invocation of the connect() method to match the
- signature change described below.
-
- * tao/Connector_Registry.cpp:
- * tao/Connector_Registry.h:
- * tao/IIOP_Connector.cpp:
- * tao/IIOP_Connector.h:
- * tao/Pluggable.h:
- * tao/Strategies/DIOP_Connector.cpp:
- * tao/Strategies/DIOP_Connector.h:
- * tao/Strategies/SHMIOP_Connector.cpp:
- * tao/Strategies/SHMIOP_Connector.h:
- * tao/Strategies/UIOP_Connector.cpp:
- * tao/Strategies/UIOP_Connector.h:
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.h:
-
- Changed signature of connect() method to accept a pointer to a
- TAO_GIOP_Invocation object. Some pluggable protocols
- (e.g. SSLIOP) may need access to some of the information in that
- object.
-
- * orbsvcs/orbsvcs/Security.idl:
-
- Corrected spelling of Security::SecFeaturePolicy. "Feature" not
- "Features".
-
- * orbsvcs/orbsvcs/Security/QOPPolicy.cpp:
- * orbsvcs/orbsvcs/Security/QOPPolicy.h:
-
- Implementation of the Security::QOPPolicy policy. This policy
- is used to set the desired invocation Quality-of-Protection
- (QoP). It can be created using ORB::create_policy(), and used
- in conjunction with the standard policy manipulation CORBA
- features (e.g. PolicyManager, PolicyCurrent), meaning that this
- policy can be set on a per-ORB, per-thread or per-object basis.
-
- This policy makes it possible to, for example, make both secure
- and insecure invocations within the same client process.
-
- * orbsvcs/orbsvcs/Security/Security_PolicyFactory.cpp:
- * orbsvcs/orbsvcs/Security/Security_PolicyFactory.h:
-
- Security policy factory implementation that is registered with
- the ORB's policy factory registry.
-
- * orbsvcs/orbsvcs/Security/Security_ORBInitializer.cpp (post_init,
- register_policy_factories):
-
- Register the supported security policy factories with the ORB.
-
- * orbsvcs/orbsvcs/Security/Security_ORBInitializer.h:
-
- Added a shared security policy factory member to this
- ORBInitializer. The factory is reentrant so there is no need
- create one for each ORB. Just share one between all ORBs.
-
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connector.cpp (connect):
-
- Moved code that obtained the TAO_IIOP_Endpoint from the
- TAO_SSLIOP_Endpoint from this method to the corresponding one in
- TAO_SSLIOP_Connector. This cleans up the code a bit. It
- shouldn't differ all that much from the
- IIOP_Connector::connect() implementation.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connector.cpp (connect):
-
- Now that both secure and insecure invocations are supported
- within the same client process, an IIOP-only transport
- descriptor must be used instead of the one passed to this method
- since the latter is used for SSLIOP connections. Doing so
- prevents an IIOP-only cached transport from being associated
- with an SSLIOP connection.
-
- This fixes a problem that was revealed when support for secure
- and insecure invocations within the same client process was
- added (i.e. via the Security::QOPPolicy support). An insecure
- cached transport was matched against an SSLIOP connection.
-
- * tao/IIOP_Endpoint.i:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Endpoint.cpp:
-
- Cosmetic updates.
-
- * tao/Exception.cpp:
-
- Corrected "unknown description" message.
-
- * tao/Strategies/SHMIOP_Endpoint.h:
- * tao/Strategies/UIOP_Endpoint.h:
-
- Doxygen-ated these headers.
-
- * orbsvcs/orbsvcs/Makefile.Security:
- * orbsvcs/orbsvcs/Security.dsp:
- * orbsvcs/orbsvcs/Security/Security.bor:
-
- Added new QOPPolicy and Security_PolicyFactory filenames to
- these Makefiles and project files.
-
-Mon Jul 9 08:41:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * tao/orbsvcs/tests/AVStreams/Makefile.bor
- * tao/orbsvcs/tests/AVStreams/Pluggable/*.bor
- * tao/orbsvcs/tests/AVStreams/Multicast/*.bor
-
- Added BCB makefiles for the mentioned AVStreams test
-
-Sat Jul 7 19:44:55 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * tao/Incoming_Message_Queue.inl (get_queued_data):
-
- Moved the definition to the beginning to fix warning. Was caught
- by Tru64 cxx compiler.
-
-Fri Jul 6 22:04:51 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/LongUpcalls/run_ami_test.pl: Made the perl script
- runnable. It was giving weird errors in the builds.
-
-Fri Jul 06 21:53:26 2001 Christopher Kohlhoff <chris@kohlhoff.com>
-
- * tao/Makefile.bor:
- * tao/Strategies/Makefile.bor:
- Removed GIOP Lite support and added new source files.
-
- * orbsvcs/orbsvcs/AV/AV_Core.h:
- Fixed borland #pragmas to correctly reset previous options.
-
-Fri Jul 6 16:58:52 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/Notify_Service/Notify_Service.cpp (shutdown):
-
- Applied the same fix from Jody's patch described below to this
- method.
-
-Fri Jul 6 15:59:17 2001 Ossama Othman <ossama@uci.edu>
-
- * orbsvcs/Notify_Service/Notify_Service.h (naming_):
- * orbsvcs/Notify_Service/Notify_Service.cpp (init,
- resolve_naming_service):
-
- Integrated patch from Jody Hagins <jody@atdesk.com>. Take
- advantage of the methods provided by the
- CosNaming::NamingContextExt interface so that the Notification
- Service does the right thing with an option such as
- "-Factory Foo.Bar/My_Event_Channel".
-
-Fri Jul 6 18:02:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/TAO_Static.dsp: Removed support for GIOP Lite for the time
- being. Just want to make sure that the interface and other stuff
- stabilises before we can squeeze this in.
-
-Fri Jul 6 17:55:25 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_argument/pre_invoke_cs.cpp (void_return_type):
-
- Change a call to base_node_type() on the operation's return type
- node to node_type(), which is the same but does no unaliasing.
- We are checking for a return type of void, which can't be aliased
- anyway. The return from base_node_type() checks for equality to
- the enum value NT_pre_defined, which now returns true for some
- aliased return types, and that causes problems later in the
- function. Thanks to Walter Wehrli <walter.wehrli@ubs.com> for
- sending in the example IDL file that uncovered this bug.
-
-Fri Jul 6 17:13:20 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/ORB_Core.cpp:
-
- Changed the string passed to
- ACE_Dynamic_Service<TAO_Object_Loader>::instance from
- "TypeCodeFactory" to "TypeCodeFactor_Loader" to match the string
- in the ACE_STATIC_SVC_DEFINE macro in
- TypeCodeFactory_Loader.cpp. Thanks to Francois Bernier
- <fbernier@gel.ulaval.ca> for reporting the bug.
-
-Fri Jul 6 17:10:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp:
- * tao/Transport.cpp: Added support for LocateRequest & LocateReply
- that. It should have been added before the code from my branch
- came to the main trunk, but somehow got missed.
-
-Fri Jul 6 16:01:45 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp (process_queue_head):
- * tao/GIOP_Message_State.cpp: Fixed a problem that has long been
- there. We have been unlucky that we did not get to this before.
-
-Fri Jul 06 14:58:09 2001 Nanbor Wang <nanbor@cs.wustl.edu>
-
- To build "CosEvent - Win32 MFC Release":
-
- * TAOACE.dsw: Make RTEvent a dependent of CosEvent.
-
- * orbsvcs/orbsvcs/RTEvent.dsp: Set up IDL custom build rules for
- MFC configs.
-
- * orbsvcs/orbsvcs/CosEvent.dsp: Changed the name for release
- version libarary to XXXmfc.lib.
-
- Thanks to Kristopher Johnson <kristopher.johnson@transcore.com>
- for providing the fix. [Bug 898]
-
-Fri Jul 6 13:33:35 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/Makefile.BE:
- * TAO_IDL/Makefile.FE:
-
- Added lines to force static lib compiliation for mingw. Thanks
- to Cristian Ferretti <cristian_ferretti@yahoo.com> for the
- patches.
-
-Fri Jul 6 13:23:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Synch_Reply_Dispatcher.cpp:
- * tao/Asynch_Reply_Dispatcher.cpp: Removed the initialization of a
- buffer from the constructor. Looks like I used to do it in some
- life of mine and I dont which one it was. :( SunCC 4.2 doesnt
- like that.
-
- * tao/Resume_Handle.cpp: Added a #include of the reactor to fix
- compile errors in Sun CC4.2.
-
-Fri Jul 6 13:19:25 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp:
- * TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp:
- * TAO_IDL/be/be_visitor_sequence/gen_bounded_str_sequence_ch.cpp:
- * TAO_IDL/be/be_visitor_sequence/gen_bounded_wstr_sequence_ch.cpp:
- Added generation of 'TAO_EXPORT_MACRO' to class declaration.
- Thanks to Craig Rodrigues and Christopher Kohlhoff for helping to
- track this stuff down.
-
- * TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp:
- Changed generation of 'TAO_EXPORT_NESTED_MACRO' to 'TAO_EXPORT_MACRO'.
-
-Fri Jul 6 12:38:06 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp: Fixed a bug with thread-per-connection
- model. We dont need to send notify () to the reactor as there is
- no reactor.
-
-Fri Jul 6 11:27:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tao/IFR_Client/IFR_BaseC.h:
- * tao/DynamicAny/DynamicAnyC.h:
- * tao/IORManipulation/IORC.h:
- Export more classes to appease Borland C++.
-
-Fri Jul 6 08:27:06 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Incoming_Message_Queue.h:
- * tao/Resume_Handle.h:
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Transport.h: Fixed fuzz errors.
-
-Fri Jul 6 08:14:48 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/Cubit/TAO/MT_Cubit/Makefile:
- * performance-tests/Cubit/TAO/IDL_Cubit/Makefile: Generated
- dependencies again.
-
-Fri Jul 6 07:43:15 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * orbsvcs/IFR_Service/Makefile:
-
- Disable building this for Visual Age C++ due to the fact that the
- using keyword is not properly supported.
-
-Fri Jul 6 07:38:55 2001 Chad Elliott <elliott_c@ociweb.com>
-
- * performance-tests/Cubit/TAO/MT_Cubit/Task_Client.h:
-
- Fix warning when using gcc on Tru64.
-
-Fri Jul 6 07:38:44 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/SSLIOP.bor:
- * orbsvcs/orbsvcs/SSLIOP.dsp: Added the new file
- IIOP_SSL_Transport.cpp to the above files.
-
-Fri Jul 6 07:12:44 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Makefile.av: Generated dependencies again. Looks
- like the last dependency generation did not do a good job. This
- should fix all the compile errors seen in the builds.
-
-Fri Jul 6 06:56:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Makefile.bor:
- * tao/Strategies/Makefile.bor: Fixed the makefiles. Thanks to
- Johnny Willemsen for alerting me on this.
-
-Thu Jul 6 01:06:55 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/DIOP_Connection_Handler.h: Fixed a link error
- on Win32 builds.
-
-Fri Jul 6 00:39:38 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/*/Makefile: Updated dependencies.
-
-Fri Jul 6 00:38:05 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * examples/*/Makefile: Updated dependencies.
-
-Fri Jul 6 00:34:13 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * performance-tests/*/Makefile: Updated dependencies.
-
-Fri Jul 6 00:27:54 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/*/Makefile: Updated dependencies.
-
-Thu Jul 6 00:16:55 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/TAO_Static.dsp:
- * tao/Strategies/TAO_Strategies.dsp:
- * tao/Strategies/TAO_Strategies_Static.dsp: Added the new files
- and removed old ones.
-
-Thu Jul 5 23:57:55 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Makefile:
- * tao/*/Makefile: Updated dependencies.
-
-Thu Jul 5 23:49:34 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/Makefile.SSLIOP: Added IIOP_SSL_Transport to it.
-
-Thu Jul 5 23:44:16 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/GIOP_Message_NonReactive_Base.h:
- * tao/Strategies/GIOP_Message_NonReactive_Base.cpp:
- * tao/Strategies/GIOP_Message_NonReactive_Handler.h:
- * tao/Strategies/GIOP_Message_NonReactive_Handler.cpp:
- * tao/Strategies/GIOP_Message_NonReactive_Handler.inl:
- * tao/GIOP_Message_Reactive_Handler.h:
- * tao/GIOP_Message_Reactive_Handler.cpp:
- * tao/GIOP_Message_Reactive_Handler.inl: Removed them from the
- main trunk. They are no longer needed.
-
-Thu Jul 5 23:42:17 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_State.i: Removed from the main trunk. Replaced
- that with GIOP_Message_State.inl.
-
-Thu Jul 5 23:30:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- The long awaited fix for bug 575 is finally in!! This has been
- merged from bug_575_stage_2. The ChangeLog entries start here,
-
-Thu Jul 5 23:00:43 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h: Fixed some more
- compilation errors in g++.
-
-Thu Jul 5 22:35:07 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Transport.h:
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Transport.cpp: Fixed compile
- errors in g++. The new IIOP_SSL_Transport classes now does the
- functionality of the IIOP_SSL_Connection_Handler classes. The
- connection handler classes exist now only to create the
- transport.
-
-Thu Jul 5 21:44:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Transport.h:
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Transport.cpp: New files for the
- SSLIOP.
-
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connection_Handler.h:
- * orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Connection_Handler.cpp: Moved
- the handle_input () from the connection handler to transport.
-
- * tao/Strategies/DIOP_*: Fixed it for the new setup. We now make
- a buffer of dgram size and use that to read messages.
-
-Thu Jul 5 14:44:59 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- Merged with the main trunk and moved it to a new branch by name
- bug_575_stage_2.
-
-Wed Jul 4 18:53:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp (recv_i): Added the
- error checking.
-
- * tao/Pluggable_Messaging.h: Made reset () as a pure virtual
- function.
-
- * tao/Strategies/UIOP_Transport.cpp: Removed the close_connection
- () call on TMS.
-
- * tao/LIST_OF_TODO: Updated..
-
-Wed Jul 4 18:45:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_State.inl (reset):
- * tao/GIOP_Message_State.h:
- * tao/GIOP_Message_State.cpp:
- * tao/GIOP_Message_Base.h:
- * tao/GIOP_Message_Base.cpp:
- * tao/GIOP_Message_Base.inl:
- * tao/Incoming_Message_Queue.cpp:
- * tao/Pluggable_Messaging.h:
- * tao/Pluggable_Messaging.cpp: Added documentation.
-
- * tao/Transport.h:
- * tao/Transport.cpp: Fixed a minor bug. In consolidate_message ()
- we were not checking the queue before processing the message on
- hand. Now we check the queue and process the head of the queue
- if it is not empty. In the process we add the message on hand in
- the queue.
-
-Wed Jul 4 16:21:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Transport.cpp: Removed the connection_closed () from
- the recv_i () call.
-
- * tao/Transport.h:
- * tao/Transport.cpp: Added a number of comments and cleaned up the
- code for readability.
-
- * tao/LIST_OF_TODO: Updated the list.
-
-Wed Jul 4 09:20:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.h (TAO_Transport): Added some documentation for
- the incoming_data_path.
-
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Transport.h:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.cpp:
- * orbsvcs/orbsvcs/SSLIOP/SSLIOP_Connection_Handler.h: Fixed the
- SSLIOP for the changes. Havent compiled this yet.
-
-Tue Jul 3 17:09:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/SHMIOP_Transport.cpp: Fixed a bug in
- consolidate_message (). The IDL_Cubit tests work fine with the
- SHMIOP & UIOP transports.
-
-Tue Jul 3 16:29:06 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/SHMIOP_Connection_Handler.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.h:
- * tao/Strategies/SHMIOP_Transport.cpp: Fixed warnings and errors
- in g++.
-
- * tao/Strategies/UIOP_Transport.cpp:
- * tao/Strategies/UIOP_Transport.h:
- * tao/Strategies/UIOP_Connection_Handler.h:
- * tao/Strategies/UIOP_Connection_Handler.cpp: Fixed warnungs and
- errors in g++.
-
- * tao/IIOP_Connection_Handler.cpp: Used fetch_handle () to get the
- handle instead of the handle passed as an argument of the
- handle_input () call.
-
- * tao/Connection_Handler.h: Added a new #define and changed
- TAO_CONNECTION_HANDLER_BUF_SIZE as
- TAO_CONNECTION_HANDLER_STACK_BUF_SIZE.
-
-
-Tue Jul 03 15:45:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Strategies/SHMIOP_Transport.h:
- * tao/Strategies/SHMIOP_Transport.cpp:
- * tao/Strategies/SHMIOP_Connection_Handler.h:
- * tao/Strategies/SHMIOP_Connection_Handler.cpp: Fixed the protocol
- to work with the latest changes.
-
- * tao/Strategies/TAO_Strategies.dsp: Removed the
- GIOP_NonReactive_* files.
-
- * tao/Resume_Handle.cpp: Fixed a bug in resume_handle (). If we
- have a null ORB_Core we just dont resume the handle.
-
-Mon Jul 02 23:16:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/IIOP_Transport.cpp:
- * tao/IIOP_Transport.h: Removed some functions which would no
- longer be used.
-
- * tao/Transport.h: Added some documentation for the incoming data
- path.
-
- * tao/Strategies/UIOP_Transport.h:
- * tao/Strategies/UIOP_Transport.cpp:
- * tao/Strategies/UIOP_Connection_Handler.cpp: Brought them up in
- sync with IIOP.
-
-Mon Jul 02 20:28:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- This checkin fixes many problems with multiple calls being read in
- a single read.
-
- * tao/GIOP_Message_Base.cpp: Changed the way we calculate the
- remaining length that needs to be copied if the last read had
- left with a very small piece of message ie. less than 12 bytes
- in the queue.
-
- * tao/GIOP_Message_State.cpp: Fixed a check condition before we go
- ahead to parse the header.
-
- * tao/Incoming_Message_Queue.h:
- * tao/Incoming_Message_Queue.cpp:
- * tao/Incoming_Message_Queue.inl: Added a method set_flags
- (). Further the condition for resuming the handler has been
- relaxed. Clients of this class can decide not to resume handlers
- at all. This comes in handy at times. Also added a operator=
- method.
-
- * tao/Transport.cpp:
- * tao/Transport.h: One of the bigger problems have been
- solved. The way we now multiple oneways is like this
-
- - The leader thread uses the transport and reads more messages
- - It splits up the messages in to pieces and queues them up.
- - It just takes one message and processes (the head of the
- queue). The changes above makes sure that only one of the
- message is processed.
- - Before processing if it finds one more message it sends a
- notify () to the reactor. An important point is that it does
- this without resuming the handler.
- - The notify call processes one more message. Before processing
- if it finds one more complete message it just sends another
- notify to the reactor.
- - The thread that reads the last complete message from the queue
- resumes the handler before processing the message.
-
- By the above process we dont starve any thread and at the
- same time ensures concurrency within the ORB.
-
- * tao/LIST_OF_TODO: Updated..
-
-Sun Jul 01 18:35:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Asynch_Reply_Dispatcher.h:
- * tao/Asynch_Reply_Dispatcher.cpp:
- * tao/DynamicInterface/DII_Reply_Dispatcher.h:
- * tao/DynamicInterface/DII_Reply_Dispatcher.cpp: Applied the same
- optimization that was done in the last checkin. The last checkin
- works fine. It is no more a suspect.
-
-Sun Jul 01 18:05:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp: Fixed small problems in getting
- message types.
-
- * tao/Synch_Reply_Dispatcher.h:
- * tao/Synch_Reply_Dispatcher.cpp:
- * tao/Pluggable_Messaging_Utils.h:
- * tao/Pluggable_Messaging_Utils.cpp: Suspect optimisations added
- to create datablocks on stack.
-
- * tao/LIST_OF_TODO: Updated list..
-
-Sun Jul 01 09:05:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport_Mux_Strategy.h:
- * tao/Muxed_TMS.h:
- * tao/Muxed_TMS.cpp:
- * tao/Exclusive_TMS.cpp:
- * tao/Exclusive_TMS.h: Removed commented out code. They have been
- commented out for sometime that we dont need them anymore.
-
- * tao/Incoming_Message_Queue.cpp:
- * tao/Incoming_Message_Queue.inl:
- * tao/Incoming_Message_Queue.h: Added lots of comments. Changed
- the name of the method copy_message () to copy_tail () and
- missing_data () to missing_data_tail (). Added a new static
- method TAO_Queued_Data::release () that releases a node.
-
- * tao/Transport.cpp: Accomodated the changes to the
- Incoming_Message_Queue to the Transport class.
-
- * tao/LIST_OF_TODO: Updated ..
-
-Sat Jun 30 13:00:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp:
- * tao/GIOP_Message_Base.h: Fixed a subtle bug while allocating
- memory for the datablock in the queue. Memory was allocated only
- for the exact number of bytes without thinking about the
- alignment. Increased the number of bytes allocated.
-
- Created the outgoing CDR streams on the stack with memory drawn
- from the TSS. We cannot share the buffers like the way it has
- been done so far.
-
- * tao/IIOP_Transport.cpp: Increased the debug_level for a debug
- statement.
-
- * This checkin fixes the AMI problems that have been seen so far.
-
- * tao/LIST_OF_TODO: Updated the list.
-
-Fri Jun 29 18:30:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp: Fixed a bug in calculating the number
- of bytes that needs to be copied into queue.
-
- * tao/Incoming_Message_Queue.cpp:
- * tao/Incoming_Message_Queue.h: Changed the signature of copy
- (). It returns the number of bytes copied instead of a void.
-
- * tao/Transport.cpp (parse_consolidate_messages):
- * tao/Transport.h: Added a new method parse_consolidate_messages
- () to the class. It does some common functaionalities like
- parsing the messages & consolidating the messages.
-
-Thu Jun 28 18:30:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Resume_Handle.cpp: Added a check for resumable_handlers
- before actually resuming the handle.
-
-Thu Jun 28 18:25:03 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp (process_queue_head):
- * tao/Transport.h: Added a new method that would take the message
- from the head of the incoming queue and send it for processing.
-
- * tao/GIOP_Message_Base.cpp: Minor formatting.
-
-Thu Jun 28 17:16:50 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp:
- * tao/GIOP_Message_Base.h:
- * tao/Pluggable_Messaging.h: Removed all the arguments that had an
- TAO_ORB_Core as one of the arguments. GIOP classes hold a copy
- of the pointer to the ORB_Core and so it is no
- necessary. Removed the following methods
-
- - is_message_complete ()
- - message_type ()
-
- The message_type () method is now local to the GIOP classes and
- it returns the Pluggable Message type from the
- GIOP_Message_State. This method is now used to fill the node
- with the right information type about the message.
-
- * tao/Transport.cpp: Used the information from the node of the
- queue to determine the type of message before processing it.
-
-Thu Jun 28 15:12:32 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp:
- * tao/GIOP_Message_Base.i: Moved the get_queued_data () from the
- .i file to the .cpp file.
-
- * tao/Incoming_Message_Queue.h: #include'd a file.
- * tao/Makefile: Added new files.
- * tao/Resume_Handle.inl: Added the ACE_INLINE macros to the
- methods defined in this file.
-
-Thu Jun 28 09:30:43 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp:
- * tao/GIOP_Message_Base.h:
- * tao/GIOP_Message_Base.i:
- * tao/GIOP_Message_Base.cpp: Made lots of changes to deal with the
- following
-
- - to parse & queue up messages if we have read multiple messages.
- - to consolidate messages if we had read half of a message
- - to process a consolidated message.
-
- We now use the node of the Incoming Message Queue to share data
- between the Transport layer and the GIOP layer.
-
- * tao/Incoming_Message_Queue.h:
- * tao/Incoming_Message_Queue.cpp:
- * tao/Incoming_Message_Queue.inl: Made the TAO_Queued_Data as a
- seperate class. This helped using the node of the queue to be
- shared between the GIOP layer. Removed many of the useless
- methods like wr_ptr (), is_message_complete (), add_message ()
- etc. We have the following methods that are more meaningful
-
- - is_tail_complete ()
- - is_message_complete ()
- - dequeue_head ()
- - dequeue_tail ()
- - enqueue_tail ()
-
- Added a static method get_queued_data () to create a node in the
- Message Queue.
-
- Added the protocol version information to the Queued Data. We
- also need the message type and that has also been added.
-
- * tao/Resume_Handle.h:
- * tao/Resume_Handle.cpp:
- * tao/Resume_Handle.inl: This is a utility class that is used to
- resume handlers. This works more or less similar to our
- ACE_GUARD macros, but uses a flag to keep track whether the
- handle has been resumed.
-
- * tao/IIOP_Connection_Handler.cpp: Installed the Resume_Handle in
- handle_input () methods.
-
- * tao/Pluggable_Messaging.h: Removed the method byte_order () and
- added the methods consolidate_node (), get_message_data () and
- extract_next_message ().
-
- * tao/Wait_On_Read.cpp:
- * tao/Connection_Handler.cpp: Changes to keep in sync with the
- changes to the signature of handle_input_i () in Transport
- class.
-
- * tao/LIST_OF_TODO: Updated the list of TODO's.
-
-Mon Jun 25 19:21:43 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp:
- * tao/GIOP_Message_Base.h:
- * tao/GIOP_Message_Base.i:
- * tao/GIOP_Message_State.inl:
- * tao/IIOP_Transport.cpp:
- * tao/Incoming_Message_Queue.cpp:
- * tao/Incoming_Message_Queue.h:
- * tao/Incoming_Message_Queue.inl:
- * tao/Pluggable_Messaging.h:
- * tao/Transport.cpp:
- * tao/Transport.h: An inconsistent checkin only to transfer the
- files to the box at home.
-
-Mon Jun 25 12:10:15 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Incoming_Message_Queue.{h,cpp,inl}:
- * tao/LIST_OF_TODO:
- * tao/GIOP_Message_State.inl: Added these to my branch.
-
-Mon Jun 25 07:54:31 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/* : Merged the files from the main branch.
-
-Mon Jun 25 07:45:38 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * Created this file.
-
-Fri Jun 22 17:00:38 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/LIST_OF_TODO: Updated the list of TODO's.
-
-Mon Jun 18 13:31:38 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Asynch_Reply_Dispatcher.cpp (dispatch_reply):
- * tao/Synch_Reply_Dispatcher.cpp:
- * tao/GIOP_Message_Base.cpp:
- * tao/Transport.cpp:
- * tao/DynamicInterface/DII_Reply_Dispatcher.cpp: Fixed warnings in
- g++ builds.
-
-Sat Jun 17 17:46:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- This set of changes comes with complete revamping of the previous
- design. The flaws with the previous design were as follows
- (1) We were unnecessarily penalising large data blocks. We were
- trying to read a particular size of data till the data was
- completely removed from the socket. This was totally
- ridiculous because we were doing more reads than required.
-
- (2) The message block that was constructed on the stack with a
- buffer from stack never did what we wanted. It was allocating
- a data block on the heap and was thus spoiling whatever
- optimization that we had tried putting in.
-
- (3) The incoming message Queue is now managed by the TAO_Transport
- object instead of the GIOP classes.
-
- * tao/GIOP_Message_Base.cpp:
- * tao/GIOP_Message_Base.h: Removed the references to the incoming
- message queue. Implemention for two methods missing_data () and
- byte_order (). Added an extra argument to the methods
- process_request_message () and process_reply_message (). Used
- the incoming message block to create a input CDR with the
- DONT_DELETE flag so that the data block is not deleted after
- request processing.
-
- * tao/GIOP_Message_State.cpp: Removed the inclusion of
- Transport.h.
-
- * tao/Incoming_Message_Queue.h:
- * tao/Incoming_Message_Queue.cpp:
- * tao/Incoming_Message_Queue.inl: Added an argument to the
- add_message (). Further the implementation of add_message () has
- changed a bit. It now adds only a new message to the queue. It
- doesn't modify a half filled queue. The TAO_Transport object
- does that job. So declared the TAO_Transport as the friend class
- of the Incoming_Message_Queue.
-
- Changed the name of the methods complete_message () as
- is_complete_message (). Removed the methods current_message ()&
- current_byte_order ().
-
- Added a new method copy_message () which copies messages into
- the half empty nodes.
-
- Added a method wr_ptr () to access the write pointer of the tail
- node that has halfempty message.
-
- * tao/Transport.cpp:
- * tao/Transport.h: The Incoming Message Queue is now managed by
- this class. Added the following methods
- - missing_data ()
- - parse_incoming_messages ()
- - check_message_integrity ()
- - consolidate_message ()
- - conslodate_message_queue ()
-
- * tao/Pluggable_Messaging.h: Added two new virtual functions
- missing_data () and byte_order ().
-
- * tao/ORB_Core.h:
- * tao/ORB_Core.cpp:
- * tao/ORB_Core.i: Added an accessor for the locking_strategy used
- for the CDR blocks.
-
- * tao/Synch_Reply_Dispatcher.cpp:
- * tao/Asynch_Reply_Dispatcher.cpp:
- * tao/DynamicInterface/DII_Reply_Dispatcher.cpp: Changed the
- exchange_data_block () to clone_from () which is a new method in
- ACE_InputCDR.
-
- * tao/LIST_OF_TODO: Updated the list
-
-Sat Jun 16 15:49:23 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Any.cpp:
- * tao/Asynch_Reply_Dispatcher.cpp:
- * tao/CDR.cpp:
- * tao/CDR.h:
- * tao/CDR.i:
- * tao/GIOP_Message_Lite.cpp:
- * tao/IIOP_Profile.cpp:
- * tao/Invocation.cpp:
- * tao/ORB.cpp:
- * tao/Pluggable_Messaging_Utils.cpp:
- * tao/Synch_Reply_Dispatcher.cpp:
- * tao/TAO_Server_Request.cpp:
- * tao/DynamicInterface/DII_Reply_Dispatcher.cpp: Integrated some
- of the changes from the main trunk in this branch.
-
-Wed Jun 13 17:55:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Incoming_Message_Queue.cpp:
- * tao/Incoming_Message_Queue.inl: Fixed a bad way to use the tail
- of the circular linked list. This is now replaced by the size of
- the linked list. This fixes quite a few errors.
-
- * tao/Transport.cpp: On read () if we get errno == EWOULDBLOCK we
- were closing the connection prematurely. This is not right. We
- should only return a 0 to the reactor, so that it can call us
- back when there is data in the socket.
-
-Wed Jun 13 10:45:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_Base.cpp (process_reply_message): Fixed the
- reply parsing and generation of the CDR stream that is passed on
- to the higher layers of the ORB.
-
-Wed Jun 13 07:25:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Makefile: Added new files.
- * tao/Exclusive_TMS.cpp: Removed some commented code.
-
-Tue Jun 12 18:42:55 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_State.h:
- * tao/GIOP_Message_State.inl: The message_size () now returns the
- payload size + the GIOP header length. Added a new method
- payload_size () that returns the payload size alone.
-
- * tao/GIOP_Message_Base.cpp: Fixed a warning with g++ builds.
-
- * tao/Connection_Handler.h:
- * tao/Connection_Handler.cpp: The svc_i () method now calls
- handle_input_i () on the transport instead of the method in the
- same class. The handle_input_i () in the TAO_Connection_Handler
- class has been removed as it is no longer used.
-
- * tao/IIOP_Connection_Handler.h:
- * tao/IIOP_Connection_Handler.cpp: Removed the implementation of
- handle_input_i ().
-
- * tao/Incoming_Message_Queue.cpp: When trying to make a new data
- block we dont add the size of GIOP header. The message_size ()
- now returns with that value.
-
- * tao/Incoming_Message_Queue.inl: Fixed a link error in g++
- builds.
-
-Tue Jun 12 17:42:55 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- First set of checkins for big two ways.
-
- * tao/Connection_Handler.h: Added #define for the default
- buffer size . Not sure yet whether this is the right place for
- it.
-
- * tao/Incoming_Message_Queue.h:
- * tao/Incoming_Message_Queue.cpp:
- * tao/Incoming_Message_Queue.inl: Queue up the incoming
- messages. We form a circular linked list of messages that are
- bigger than a particular buffer size. During processing we take
- messages of the queue to pass it onto the higher layers of the
- ORB.
-
- * tao/GIOP_Message_Base.cpp:
- * tao/GIOP_Message_Base.h: Added support for big two way
- requests. If the message has only been partially read we add the
- message in the queue and then go for the next read. During
- processing we check if the queue has messages before processing
- the message on hand.
-
- * tao/GIOP_Message_State.h:
- * tao/GIOP_Message_State.cpp:
- * tao/GIOP_Message_State.inl: Added accessor methods.
-
- * tao/Transport.cpp: Added support for bigger two ways. If we
- receive a two way bigger than a particular size we read and
- queue the message and do a further read to retrieve the rest of
- the message.
-
- * tao/TAO.dsp: Added new files.
- * tao/default_resource.cpp: For single threaded configuration we
- have been creating a locked data block and that seems to defy
- logic. We now should create a lock free datablock for single
- threaded configurations.
-
-Sat Jun 2 12:02:55 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/* : Merged with the main trunk.
-
-Fri Jun 1 17:22:29 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/GIOP_Message_State.cpp (parse_message_header_i):
- * tao/Connection_Handler.cpp:
- * tao/GIOP_Message_Base.cpp:
- * tao/Makefile:
- * tao/Transport.cpp: Fixed warnings and errors in Linux g++.
-
-Thu Jun 01 13:39:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.cpp:
- * tao/Transport.h: Added the following methods -- handle_input_i
- (), process_parsed_message (). The handle_input_i () creates a
- buffer on the stack. It uses the buffer to read the
- messages. Any errors in read () or dealt here directly. The read
- message is then parsed and processed by the GIOP classes. Moved
- most of the code for processing here as they seem to be common
- between different transport protocols. Once we have received a
- full message, we just resume the handler and go ahead with
- processing the message.
-
- * tao/IIOP_Connection_Handler.cpp (handle_input ()): Calls
- handle_input_i () on the transport.
-
- * tao/Connection_Handler.h:
- * tao/Connection_Handler.cpp: The svc_i () calls the
- handle_input_i () on the transport instead of the same call on
- the connection handler. This way we should be able to share the
- same code among different protocol objects.
-
- * tao/GIOP_Message_State.h:
- * tao/GIOP_Message_State.cpp: Much of the message parsing and
- state information is stored here.
-
- * tao/GIOP_Message_Base.h:
- * tao/GIOP_Message_Base.cpp:
- * tao/Pluggable_Messaging.h: made some changes to suit the
- above. But more changes could come in, to suit different
- protocols. We may want to change the interfaces in
- Pluggable_Messaging to give a much cleaner interface to the
- world.
-
- * tao/Wait_On_Read.cpp: Used the handle_input_i () on the
- transport for processing the incoming data.
-
- * tao/TAO.dsp:
- * tao/PortableServer/TAO_PortableServer.dsp: Added new files and
- removed files from GIOP_Lite in the first round.
-
- * tao/GIOP_Message_Reactive_Handler.cpp:
- * tao/GIOP_Message_Reactive_Handler.h: Looks like these files
- would be removed during the final merge.
-
- The above checkins works for simple two way calls. The
- BiDirectional_NestedUpcall test works with the TP_Reactor. This
- works on Win32.
-
-
-Thu May 24 12:19:02 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/Transport.h: Added some design forces for the input data
- path.
-
- End of ChangeLog entries from branch bug_575_stage_2.
-
-Thu Jul 5 22:04:24 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tests/LongUpcalls/run_ami_test.pl: Adding a new perl script to
- this test. This is supposed to fail in the daily builds as this
- needs bug fix 575.
-
-Thu Jul 5 21:16:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/AV_Core.h
-
- Added some Borland compiler pragma options to prevent
- singleton problems when AV_Core is in a DLL.
-
-Thu Jul 5 20:41:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * tao/CONV_FRAMEC.h
- * tao/DynamicC.h
- * tao/PolicyC.h
- Added export macros for some Unbounded Sequence types.
-
- * TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp
- Add export macro for unbounded object sequence types
-
-Thu Jul 5 09:22:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * orbsvcs/tests/AVStreams/Makefile.bor
- Added Asynch_Three_Stage
- * orbsvcs/tests/AVStreams/Asynch_Three_Stage/*.bor
- Added BCB makefiles
-
-Thu Jul 5 04:53:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/tests/AVStreams/Component_Switching/Makefile
- Add missing link flag -lTAO_Strategies, needed
- for Advanced_Resource_Factory in svc.conf.
-
- * orbsvcs/tests/AVStreams/Component_Switching/receiver.cpp
- Fix typo
-
- * orbsvcs/tests/AVStreams/Component_Switching/run_test.pl
- Add -ORBSkipServiceConfigOpen to startup of Naming_Service,
- it did not like the svc.conf file in this directory.
-
-Wed Jul 4 09:53:01 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * tao/Strategies/TAO_Strategies_Static.dsp:
-
- Updated static build with DIOP files.
-
-Wed Jul 4 09:52:20 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/DynamicAny/DynCommon.cpp (insert_reference):
-
- Added a call to _is_a() as a final check to see if there
- is a type mismatch between the dynamic any and the
- object reference argument. Thanks to Jonathan Biggar
- <jon@floorboard.com> for clarifying the spec and to
- Philippe Merle <Philippe.Merle@lifl.fr> for suggesting
- optimizations.
-
-Wed Jul 4 09:10:24 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_visitor_interface/tie_sh.cpp:
- * TAO_IDL/be/be_visitor_root/root_sth.cpp:
-
- Removed ACE_HAS_USING_KEYWORD guard from each TIE class
- declaration, and added it to the global module reopening
- where all TIE class declarations will occur. This
- includes the TAO_NAMESPACE macro inside the guard, which
- is what we want if the platform does not support
- namespaces.
-
-Wed Jul 4 14:05:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * orbsvcs/tests/Makefile.bor
- Updated to include AVStreams
-
- * orbsvcs/tests/AVStreams/Component_Switching/*.bor
- * orbsvcs/tests/AVStreams/Simple_Three_Stage/*.bor
- * orbsvcs/tests/AVStreams/Simgle_Two_Stage/*.bor
- Updated these BCB makefiles so that these tests are now
- build without errors
-
-Tue Jul 3 20:09:58 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * tao/Strategies/TAO_Strategies.dsp:
-
- Added DIOP source files to project.
-
-Tue Jul 3 20:09:58 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * examples/PluggableUDP/tests/Basic/Makefile:
- * examples/PluggableUDP/tests/Performance/Makefile:
- * examples/PluggableUDP/tests/SimplePerformance/Makefile:
- * tao/Strategies/Makefile:
-
- Updated dependencies.
-
-Tue Jul 3 18:25:41 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * examples/PluggableUDP/DIOP/*:
-
- Moved DIOP source files from PluggableUDP to Strategies.
-
- * examples/PluggableUDP/README:
- * examples/PluggableUDP/DIOP/README:
-
- Updated README files to note file location change.
-
- * examples/PluggableUDP/Makefile:
- * examples/PluggableUDP/Makefile.bor:
-
- Removed DIOP directory from build.
-
- * examples/PluggableUDP/tests/Basic/Makefile:
- * examples/PluggableUDP/tests/Basic/client.bor:
- * examples/PluggableUDP/tests/Basic/client.cpp:
- * examples/PluggableUDP/tests/Basic/client.dsp:
- * examples/PluggableUDP/tests/Basic/server.bor:
- * examples/PluggableUDP/tests/Basic/server.cpp:
- * examples/PluggableUDP/tests/Basic/server.dsp:
- * examples/PluggableUDP/tests/Basic/svc.conf:
- * examples/PluggableUDP/tests/Performance/Makefile:
- * examples/PluggableUDP/tests/Performance/client.bor:
- * examples/PluggableUDP/tests/Performance/client.cpp:
- * examples/PluggableUDP/tests/Performance/client.dsp:
- * examples/PluggableUDP/tests/Performance/server.bor:
- * examples/PluggableUDP/tests/Performance/server.cpp:
- * examples/PluggableUDP/tests/Performance/server.dsp:
- * examples/PluggableUDP/tests/Performance/svc.conf:
- * examples/PluggableUDP/tests/SimplePerformance/Makefile:
- * examples/PluggableUDP/tests/SimplePerformance/client.bor:
- * examples/PluggableUDP/tests/SimplePerformance/client.cpp:
- * examples/PluggableUDP/tests/SimplePerformance/client.dsp:
- * examples/PluggableUDP/tests/SimplePerformance/server.bor:
- * examples/PluggableUDP/tests/SimplePerformance/server.cpp:
- * examples/PluggableUDP/tests/SimplePerformance/server.dsp:
- * examples/PluggableUDP/tests/SimplePerformance/svc.conf:
-
- Updated source files and Makefiles to look for the DIOP
- code in the Strategies library rather than in the DIOP library.
-
- * tao/orbconf.h:
-
- Added #define to control whether DIOP is compiled in or not.
-
- * tao/Strategies/DIOP_Acceptor.cpp:
- * tao/Strategies/DIOP_Acceptor.h:
- * tao/Strategies/DIOP_Acceptor.i:
- * tao/Strategies/DIOP_Connection_Handler.cpp:
- * tao/Strategies/DIOP_Connection_Handler.h:
- * tao/Strategies/DIOP_Connection_Handler.i:
- * tao/Strategies/DIOP_Connector.cpp:
- * tao/Strategies/DIOP_Connector.h:
- * tao/Strategies/DIOP_Endpoint.cpp:
- * tao/Strategies/DIOP_Endpoint.h:
- * tao/Strategies/DIOP_Endpoint.i:
- * tao/Strategies/DIOP_Factory.cpp:
- * tao/Strategies/DIOP_Factory.h:
- * tao/Strategies/DIOP_Profile.cpp:
- * tao/Strategies/DIOP_Profile.h:
- * tao/Strategies/DIOP_Profile.i:
- * tao/Strategies/DIOP_Transport.cpp:
- * tao/Strategies/DIOP_Transport.h:
- * tao/Strategies/DIOP_Transport.i:
-
- Moved DIOP files to Strategies. Updated linking specifiers and
- include files to reflect change.
-
- * tao/Strategies/Makefile:
- * tao/Strategies/Makefile.bor:
-
- Added DIOP files.
-
- * tao/Strategies/TAO_Strategies_Internal.cpp:
- * tao/Strategies/advanced_resource.cpp:
-
- Added service configurator hooks for DIOP.
-
-Tue Jul 3 14:53:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/AV_Core.h
- * orbsvcs/orbsvcs/AV/RTCP.h
- * orbsvcs/orbsvcs/AV/RTP.h
- * orbsvcs/orbsvcs/AV/Transport.h
- * orbsvcs/orbsvcs/AV/UDP.h
-
- Fix some includes, add TAO_AV_Export in more class
- declarations.
-
-Tue Jul 3 11:27:03 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/be/be_codegen.cpp:
- * TAO_IDL/be/be_visitor_interface/tie_sh.cpp:
- * TAO_IDL/be/be_visitor_interface/tie_si.cpp:
-
- Removed the #if defined (ACE_HAS_USING_KEYWORD)
- guards from the top and bottom of the *S_T.{h,i}
- files and added their generation on a TIE class by
- TIE class basis, conditionally, if the original
- interface is defined inside a module. TIE class
- code will compile for interfaces declared at global
- scope, even on platforms that do not support
- namespaces. This enhancement was requested by
- Marco Kranawetter <Marco.Kranawetter@icn.siemens.de>.
-
-Tue Jul 3 09:55:22 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tao/DynamicAny/DynUnion_i.cpp:
-
- Added missing .in() to a CORBA::Any_var.
-
- * tao/DynamicAny/DynCommon.cpp:
-
- Removed unnecessary break statement.
-
-Tue Jul 3 08:45:13 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/Smart_Proxies/Benchmark/client.dsp:
- * tests/Smart_Proxies/Benchmark/server.dsp:
-
- Fixed IDL compiler settings in the release version.
-
-Mon Jul 2 08:59:16 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-
- * orbsvcs/tests/AVStreams/Makefile.bor
- Added BCB makefile
-
-Mon Jul 2 23:13:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/orbsvcs/AV/AVStreams_i.h
- * orbsvcs/orbsvcs/AV/Protocol_Factory.h
- * orbsvcs/orbsvcs/AV/Transport.h
- * orbsvcs/orbsvcs/AV/UDP.h
-
- Added TAO_AV_Export to more classes to fix Borland DLL builds.
-
- * orbsvcs/tests/AVStreams/Simple_Two_Stage/receiver.bor
- * orbsvcs/tests/AVStreams/Simple_Two_Stage/sender.bor
-
- Added more linker flags to fix Borland DLL builds.
-
-Mon Jul 2 19:32:09 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/Queued_Message_Test/Queued_Message_Test.cpp:
-
- Changed use of ACE_OS::rand_r(seed) to ACE_OS::srand(seed)
- and ACE_OS::rand(). ACE_OS::rand_r(seed) is not supported
- on Win32 platforms, and was causing the test to hang.
-
-Mon Jul 2 17:06:22 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * tao/ORB_Core.cpp: Initialization of the transport_cache ()
- should preceed the preconnects (). Thanks to Irfan for pointing
- this out.
-
-Mon Jul 2 15:53:29 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * orbsvcs/tests/InterfaceRepo/IFR_Test/Admin_Client.cpp:
- * tao/Typecode.cpp:
- * tao/append.cpp:
- * tao/skip.cpp:
- * tao/DynamicAny/DynUnion_i.cpp:
-
- Modified CORBA::TypeCode::member_label() to return a duplicate
- Any pointer (to be comsumed by the caller), making it consistent
- with other ORB functions that return pseudo-object types. Also
- modified all uses of member_label() in TAO to prevent memory
- leaks. Thanks to Philippe Merle <Philippe.Merle@lifl.fr> for
- pointing out this inconsistency, and to Jonanthan Biggar
- <jon@floorboard.com> for clarifying the spec with regard to
- memory management of pseudo-objects.
-
-Mon Jul 2 14:29:49 2001 Frank Hunleth <fhunleth@cs.wustl.edu>
-
- * performance-tests/RTCorba/Multiple_Endpoints/Single_Endpoint/Makefile:
- * performance-tests/RTCorba/Multiple_Endpoints/Orb_Per_Priority/Makefile:
-
- Removed duplicate ACE and TAO library includes. Should fix KCC
- linker warnings.
-
-Mon Jul 2 14:50:00 2001 Craig Rodrigues <crodrigu@bbn.com>
-
- * orbsvcs/AV/AVStreams_i.cpp
-
- Only display certain debug messages when higher ORB debug level
- is specified.
-
-Mon Jul 2 13:37:45 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * TAO_IDL/fe/idl.ll:
- * TAO_IDL/fe/lex.yy.cpp:
-
- Added '\x' to the list of escaped characters in the
- regular expression for strings in the TAO IDL lexer,
- and regenerated the C++ file. Legal IDL strings such
- as "\xA" were producing syntax errors. Thanks to
- Jules Colding <dsl11814@vip.cybercity.dk> for reporting
- this bug.
-
-Mon Jul 2 13:18:14 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * Moved all the ChangeLog-* files into the new ChangeLogs
- directory. Thanks to Holger P . Krekel <krekel@merlinux.de> for
- this suggestion.
-
-Mon Jul 2 10:57:26 2001 Jeff Parsons <parsons@cs.wustl.edu>
-
- * tests/Smart_Proxies/Benchmark/Benchmark.dsw:
- * tests/Smart_Proxies/Benchmark/client.dsp:
- * tests/Smart_Proxies/Benchmark/server.dsp:
-
- New files to build the smart proxies benchmark test on
- Win32 platforms.
-
- * tests/Smart_Proxies/Benchmark/client.cpp:
- * tests/Smart_Proxies/Benchmark/Smart_Proxy_Impl.cpp:
- * tests/Smart_Proxies/Benchmark/Smart_Proxy_Impl.h:
-
- Removed unnecessary TAO_HAS_SMART_PROXIES macro from
- these files.
-
- * docs/Smart_Proxies.html:
-
- Updated documentation.
diff --git a/TAO/configure.in b/TAO/configure.in
deleted file mode 100644
index 609ceadb091..00000000000
--- a/TAO/configure.in
+++ /dev/null
@@ -1,664 +0,0 @@
-dnl
-dnl $Id$
-
-AC_REVISION($Revision 0.6 $)dnl
-
-dnl
-dnl An autoconf script to automatically configure TAO.
-dnl Process this file with autoconf to produce a configure script.
-dnl
-
-dnl
-dnl The autoconf documentation states that this is the recommended
-dnl sequence for this file:
-dnl
-dnl `AC_INIT(FILE)'
-dnl checks for programs
-dnl checks for libraries
-dnl checks for header files
-dnl checks for typedefs
-dnl checks for structures
-dnl checks for variables
-dnl checks for compiler characteristics
-dnl checks for library functions
-dnl checks for system services
-dnl `AC_OUTPUT([FILE...])'
-dnl
-dnl I followed this convention, and added a few sections.
-dnl -- Gonzo
-
-
-dnl
-dnl SECTION 1: `AC_INIT(FILE)'
-dnl
-dnl This macro must be the very first invoked.
-dnl Its argument names a file that must exist in the directory where
-dnl autoconf will run, just to check things.
-dnl AC_INIT(ace_unique.m4)
-dnl
-AC_INIT(tao/TAO.cpp)
-
-dnl Require GNU Autoconf 2.13 or better.
-AC_PREREQ(2.13)
-
-dnl Check what platform we are running on.
-AC_CANONICAL_SYSTEM
-
-dnl Allow the standard program name transformations.
-dnl We probably don't need AC_ARG_PROGRAM any longer since AM_INIT_AUTOMAKE
-dnl handles this functionality. -- Ossama
-dnl AC_ARG_PROGRAM
-
-dnl Cause GNU Automake to initialize the state of things and run
-dnl some sanity checks
-TAO_PACKAGE="tao"
-dnl Temporarily change M4 quotes to prevent "regex []" from being eaten
-changequote(, )dnl
-TAO_VERSION=`head -1 ${srcdir}/VERSION | sed 's/.*version \([0-9.]*\).*/\1/'`
-changequote([, ])dnl
-
-AM_INIT_AUTOMAKE("$TAO_PACKAGE", "$TAO_VERSION", DUMMY)
-
-dnl Generate a header file with all settings.
-dnl AM_CONFIG_HEADER(tao/config.h)
-
-dnl Move before the AC_ARG_ENABLE stuff to prevent autoconf complaints.
-dnl This is a bit messy but it makes life easier for me.
-dnl -Ossama
-dnl
-dnl SECTION: checks for programs
-dnl
-
-dnl Check if system supports "#! /bin/sh" line in scripts
-AC_SYS_INTERPRETER
-
-
-dnl Check for ace-config script
-AC_CHECK_PROG(ACE_CONFIG, ace-config, ace-config,) dnl
-if test -z "$ACE_CONFIG"; then
- AC_MSG_WARN(ace-config script not found)
- AC_MSG_WARN(TAO may not find all of the necessary ACE related libraries)
-fi
-
-dnl Check the C compiler and preprocessor.
-AC_PROG_CC
-AC_PROG_CPP
-AC_PROG_CC_C_O
-
-dnl The C++ compiler used to compile TAO must be the same as the one
-dnl used to compile ACE.
-if test -n $ACE_CONFIG; then
- CXX=`$ACE_CONFIG --cxx ace`
-fi
-
-dnl Check the C++ compiler and preprocessor.
-AC_PROG_CXX
-AC_PROG_CXXCPP
-
-dnl Disable building of static libraries by default
-AC_DISABLE_STATIC
-
-dnl Enable Libtool module support
-AC_LIBTOOL_DLOPEN
-
-dnl FIXME: Temporary hack to make libtool work with g++.
-dnl Shared library support will only work with GNU g++ and GNU ld
-dnl right now.
-save_CC="$CC"
-CC="$CXX"
-
-dnl Check for libtool and turn on Automake processing for Libtool
-AM_PROG_LIBTOOL
-
-CC="$save_CC"
-
-
-dnl This checks for a binary called gm4, gnum4 or m4, and assigns
-dnl whatever was found (or "gonzo") to the M4 macro.
-dnl AC_CHECK_PROGS(M4, gm4 gnum4 m4, gonzo)
-
-dnl Look for the best awk-style program available.
-AC_PROG_AWK
-
-dnl Set some version information
-TAO_CURRENT="0"
-TAO_AGE="0"
-TAO_REVISION="0"
-
-if test -n "$AWK"; then
- TAO_MAJOR=`echo "$TAO_VERSION" | sed 's/\./ /g' | $AWK '{ print \[$]1 }'`
- TAO_MINOR=`echo "$TAO_VERSION" | sed 's/\./ /g' | $AWK '{ print \[$]2 }'`
- TAO_BETA=`echo "$TAO_VERSION" | sed 's/\./ /g' | $AWK '{ print \[$]3 }'`
-
-dnl This is a terrible kludge to fool libtool into making it produce a shared
-dnl library with the "right" version information.
-dnl We really should switch to a version scheme that is compatible with
-dnl libtool.
-dnl -Ossama
- TAO_CURRENT=`expr $TAO_MAJOR + $TAO_MINOR`
- TAO_AGE=$TAO_MINOR
- TAO_REVISION=$TAO_BETA
-fi
-
-AC_SUBST(TAO_CURRENT)
-AC_SUBST(TAO_AGE)
-AC_SUBST(TAO_REVISION)
-
-dnl Do the usual install settings; don't forget to include a
-dnl install-sh script, in case the is no BDS compatible install
-dnl installed (no pun intended) in your machine.
-dnl
-dnl We don't need this anymore since AM_INIT_AUTOMAKE calls AM_PROG_INSTALL
-dnl yes "AM_PROG_INSTALL," not "AC_PROG_INSTALL." -- Ossama
-dnl AC_PROG_INSTALL
-
-dnl Special handling for some UNIX variants and Cygwin32
-AC_AIX
-AC_ISC_POSIX
-AC_MINIX
-AC_CYGWIN
-
-dnl The user's/default C++ flags are stored in "CXXFLAGS." We use
-dnl the variable "TAO_CXXFLAGS" to set the C++ flags we want. At the end
-dnl of the configuration process we combine TAO_CXXFLAGS and CXXFLAGS
-dnl into CXXFLAGS (e.g., CXXFLAGS="$TAO_CXXFLAGS $CXXFLAGS"). CXXFLAGS
-dnl goes after TAO_CXXFLAGS so that the user's C++ flag command line
-dnl choices always override the configure script's choices.
-TAO_CXXFLAGS=""
-TAO_CFLAGS=""
-
-dnl Set the test language as C++
-AC_LANG_CPLUSPLUS
-
-dnl Check if we support symlinks
-AC_PROG_LN_S
-
-dnl Check if a lexical analyzer exists (lex, flex, etc.)
-AM_PROG_LEX
-
-dnl Check if some implementation of YACC exists (yacc, byacc, bison, etc.)
-AC_PROG_YACC
-dnl if test -z "$YACC"; then
-dnl ./missing yacc
-dnl fi
-
-dnl We actually check for this in the user AC_ARG_WITH(--with-gperf)
-dnl block since it is more convenient to put it there.
-dnl Check for gperf program
-dnl AC_CHECK_PROGS(GPERF, gperf-ace gperf,) dnl
-
-dnl Check for profiling progam
-AC_CHECK_PROGS(PROF, gprof prof,) dnl
-
-
-dnl
-dnl SECTION 2: Configure script command line options
-dnl
-AC_ARG_ENABLE(fast,
- [ --enable-fast enable -fast flag, e.g. Sun C++ [default=no]],
- [
- case "${enableval}" in
- yes)
- TAO_CXXFLAGS="$TAO_CXXFLAGS -fast"
- TAO_CFLAGS="$TAO_CFLAGS -fast"
- ;;
- no)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-fast)
- ;;
- esac
- ],)
-
-AC_ARG_ENABLE(messaging,
- [ --enable-messaging enable CORBA messaging support [default=yes]],
- [
- case "${enableval}" in
- yes)
- AC_DEFINE(TAO_HAS_CORBA_MESSAGING)
- ;;
- no)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-messaging)
- ;;
- esac
- ],
- [
- AC_DEFINE(TAO_HAS_CORBA_MESSAGING)
- ])
-
-AC_ARG_ENABLE(minimum-corba,
- [ --enable-minimum-corba enable minimum CORBA support [default=no]],
- [
- case "${enableval}" in
- yes)
- AC_DEFINE(TAO_HAS_MINIMUM_CORBA)
- ;;
- no)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-minimum-corba)
- ;;
- esac
- ],)
-
-AC_ARG_ENABLE(optimize,
- [ --enable-optimize enable additional optimizations [default=no]],
- [
- case "${enableval}" in
- yes)
- AC_MSG_WARN(Optimization configure support not implemented yet.)
- ;;
- no)
- AC_MSG_WARN(Optimization configure support not implemented yet.)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-optimize)
- ;;
- esac
- ],)
-
-AC_ARG_ENABLE(profile,
- [ --enable-profile enable profiling [default=no]],
- [
- case "${enableval}" in
- yes)
- if test -z "$PROF"; then
- AC_MSG_WARN(No profiling program found. Assuming 'prof' exists)
- TAO_CXXFLAGS="$TAO_CXXFLAGS -p"
- TAO_CFLAGS="$TAO_CFLAGS -p"
- else
- case "$PROF" in
- gprof)
- echo "Building with 'gprof' support"
- TAO_CXXFLAGS="$TAO_CXXFLAGS -pg"
- TAO_CFLAGS="$TAO_CFLAGS -pg"
- ;;
- prof)
- echo "Building with 'prof' support"
- TAO_CXXFLAGS="$TAO_CXXFLAGS -p"
- TAO_CFLAGS="$TAO_CFLAGS -p"
- ;;
- *)
- dnl We shouldn't get here.
- AC_MSG_WARN(Assuming 'prof' exists)
- TAO_CXXFLAGS="$TAO_CXXFLAGS -p"
- TAO_CFLAGS="$TAO_CFLAGS -p"
- ;;
- esac
- fi
- ;;
- no)
- dnl Do nothing
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-profile)
- ;;
- esac
- ],)
-
-AC_ARG_ENABLE(purify,
- [ --enable-purify Purify all executables [default=no]],
- [
- case "${enableval}" in
- yes)
- AC_CHECK_PROG(PURIFY, purify, purify,)
- if test -n "$PURIFY"; then
- PURE_CACHE_BASE_DIR="/tmp/purifycache"
- PURE_CACHE_DIR=${PURE_CACHE_BASE_DIR}-${LOGNAME}-${notdir ${CXX} }
- PURELINK="$PURIFY -best-effort -chain-length=20 \
- -cache-dir=$PURE_CACHE_DIR \
- -fds-inuse-at-exit=no -ignore-signals=SIGINT -inuse-at-exit \
- -max_threads=100"
- TAO_CXXFLAGS="$TAO_CXXFLAGS -DTAO_HAS_PURIFY"
- TAO_CFLAGS="$TAO_CFLAGS -DTAO_HAS_PURIFY"
- else
- AC_MSG_WARN(Purify program was not found.)
- AC_MSG_WARN(Disabling purify support.)
- fi
- ;;
- no)
- PURELINK=""
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-purify)
- ;;
- esac
- ], PURELINK="")
-
-AC_ARG_ENABLE(quantify,
- [ --enable-quantify Quantify all executables [default=no]],
- [
- case "${enableval}" in
- yes)
- AC_CHECK_PROG(QUANTIFY, quantify, quantify,)
- if test -n "$QUANTIFY"; then
- PURE_CACHE_BASE_DIR="/tmp/purifycache"
- PURE_CACHE_DIR=${PURE_CACHE_BASE_DIR}-${LOGNAME}-${notdir ${CXX} }
- PRELINK="$QUANTIFY -best-effort -max_threads=100 \
- -cache-dir=$PURE_CACHE_DIR"
- TAO_CXXFLAGS="$TAO_CXXFLAGS -DTAO_HAS_QUANTIFY"
- TAO_CFLAGS="$TAO_CFLAGS -DTAO_HAS_QUANTIFY"
- else
- AC_MSG_WARN(Quantify program was not found.)
- AC_MSG_WARN(Disabling quantify support.)
- fi
- ;;
- no)
- PRELINK=""
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-quantify)
- ;;
- esac
- ], PRELINK="")
-
-AC_ARG_ENABLE(rt-corba,
- [ --enable-rt-corba enable Real-Time CORBA support [default=yes]],
- [
- case "${enableval}" in
- yes)
- ;;
- no)
- AC_DEFINE(TAO_DISABLE_RT_CORBA)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-rt-corba)
- ;;
- esac
- ],)
-
-AC_ARG_WITH(ace-includes,
- [ --with-ace-includes=DIR ACE include files are in DIR],
- [
- case "${withval}" in
- yes)
- AC_MSG_ERROR(specify a directory where the 'ace' include directory exists.)
- ;;
- no)
- AC_MSG_ERROR(specify a directory where the 'ace' include directory exists.)
- ;;
- *)
- if test -d "${withval}"; then
- ACE_INCLUDEDIR="${withval}"
- CXXFLAGS="${CXXFLAGS} -I${ACE_INCLUDEDIR}"
- else
- AC_MSG_ERROR(header directory '${withval}' does not exist.)
- fi
- ;;
- esac
- ],)
-
-AC_ARG_WITH(ace-libs,
- [ --with-ace-libs=DIR ACE library files are in DIR],
- [
- case "${withval}" in
- yes)
- AC_MSG_ERROR(specify a directory where the ACE libraries exist.)
- ;;
- no)
- AC_MSG_ERROR(specify a directory where the ACE libraries exist.)
- ;;
- *)
- if test -d "${withval}"; then
- ACE_LIBDIR="${withval}"
- LDFLAGS="${LDFLAGS} -L${ACE_LIBDIR}"
- else
- AC_MSG_ERROR(library directory '${withval}' does not exist.)
- fi
- ;;
- esac
- ],)
-
-AC_ARG_WITH(gperf,
- [ --with-gperf=PROG gperf program [default=gperf]],
- [
- case "${withval}" in
- yes)
- AC_MSG_ERROR(Specify the gperf program.)
- ;;
- no)
- AC_MSG_ERROR(Specify the gperf program.)
- ;;
- *)
- AC_CHECK_PROGS(GPERF, ${withval},) dnl
- if test -n "$GPERF"; then
- AC_DEFINE_UNQUOTED(ACE_GPERF, "${withval}") dnl
- else
- AC_MSG_ERROR(gperf program ${withval} does not exist.)
- fi
- ;;
- esac
- ],
- [
- AC_CHECK_PROGS(GPERF, gperf-ace gperf,) dnl
- if test -n "$GPERF"; then
- AC_DEFINE_UNQUOTED(ACE_GPERF, "${GPERF}") dnl
- else
- AC_MSG_WARN(No gperf program found. TAO will not use perfect hashing.)
- fi
- ])
-
-dnl Check for a working ACE installation
-ac_save_CXXFLAGS="$CXXFLAGS"
-ac_save_LDFLAGS="$LDFLAGS"
-ac_save_LIBS="$LIBS"
-if test -n "$ACE_CONFIG"; then
- CXXFLAGS=`$ACE_CONFIG --cxxflags ace`
- LDFLAGS=`$ACE_CONFIG --libs-only-L ace`
- LIBS=`$ACE_CONFIG --libs-only-l ace`
-fi
-CXXFLAGS="$ac_save_CXXFLAGS $CXXFLAGS"
-LDFLAGS="$ac_save_LDFLAGS $LDFLAGS"
-LIBS="$ac_save_LIBS -lACE $LIBS"
-AC_MSG_CHECKING(for a working ACE installation)
-AC_CACHE_VAL(ac_cv_lib_ace_ace_os_exit,
-[
- cat > conftest.$ac_ext <<EOF
-
-#include <ace/OS.h>
-changequote(, )dnl
-int main(int argc, char *argv[])
-changequote([, ])dnl
-{
- ACE_OS::exit(0);
-}
-EOF
-
- if (eval "$CXX -o conftest conftest.$ac_ext $CXXFLAGS $LDFLAGS $LIBS") 2>&5; then
- ac_cv_lib_ace_ace_os_exit="yes"
- rm -f conftest*
- else
- ac_cv_lib_ace_ace_os_exit="no"
- dnl rm -f conftest*
- fi
-])
-if test "$ac_cv_lib_ace_ace_os_exit" = "yes"; then
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
- AC_MSG_WARN(no functional ACE library found)
- AC_MSG_ERROR(specify needed compiler flags using CXXFLAGS variable first)
-fi
-
-dnl We only set the following if the ace-config script doesn't exist!
-if test -z "$ACE_CONFIG"; then
-
- dnl Check if platform supports exceptions using ACE headers
- AC_MSG_CHECKING(if ACE supports exceptions)
- AC_EGREP_CPP(TAO_EXCEPTIONS,
- [
-#include <ace/config.h>
-
-#if defined (ACE_HAS_EXCEPTIONS)
- TAO_EXCEPTIONS
-#endif
- ],
- [
- AC_MSG_RESULT(yes)
- ] ,
- [
- AC_MSG_RESULT(no)
- if test -n "$GXX"; then
-dnl Temporarily change M4 quotes to prevent "regex []" from being eaten
-changequote(, )dnl
- if g++ --version | egrep -v '^2\.[0-7]' > /dev/null; then
-changequote([, ])dnl
- if test -z "$ACE_CONFIG"; then
- TAO_CXXFLAGS="$TAO_CXXFLAGS -fno-exceptions"
- fi
- fi
- fi
- if test -n "$GCC"; then
-dnl Temporarily change M4 quotes to prevent "regex []" from being eaten
-changequote(, )dnl
- if gcc --version | egrep -v '^2\.[0-7]' > /dev/null; then
-changequote([, ])dnl
- if test -z "$ACE_CONFIG"; then
- TAO_CFLAGS="$TAO_CFLAGS -fno-exceptions"
- fi
- fi
- fi
- ])
-
- dnl Check if platform supports run-time type identification using ACE headers
- AC_MSG_CHECKING(if ACE supports GNU C++ repositories)
- AC_EGREP_CPP(TAO_GNU_REPO,
- [
-#include <ace/config.h>
-
-#if defined (ACE_HAS_GNU_REPO)
- TAO_GNU_REPO
-#endif
- ],
- [
- AC_MSG_RESULT(yes)
- if test -n "$GXX" && test -z "$ACE_CONFIG"; then
- TAO_CXXFLAGS="$TAO_CXXFLAGS -frepo"
- fi
- ] ,
- [
- AC_MSG_RESULT(no)
- if test -n "$GXX" && test -z "$ACE_CONFIG"; then
- TAO_CXXFLAGS="$TAO_CXXFLAGS -fno-implicit-templates"
- fi
- ])
-
- dnl Check if platform supports run-time type identification using ACE headers
- AC_MSG_CHECKING(if ACE supports run-time type identification)
- AC_EGREP_CPP(TAO_RTTI,
- [
-#include <ace/config.h>
-
-#if !defined (ACE_LACKS_RTTI)
- TAO_RTTI
-#endif
- ],
- [
- AC_MSG_RESULT(yes)
- if test -z "$GXX" && test -z "$ACE_CONFIG"; then
- case "$target" in
- *solaris*)
- TAO_CXXFLAGS="$TAO_CXXFLAGS -features=rtti"
- ;;
- *)
- ;;
- esac
- fi
- ],
- [
- AC_MSG_RESULT(no)
- ])
-
-fi dnl test -z "$ACE_CONFIG"
-
-dnl Check if templates require source on platform using ACE headers
-AC_MSG_CHECKING(if ACE and TAO require template source)
-AC_EGREP_CPP(TAO_TEMPLATES_SOURCE,
- [
-#include <ace/config.h>
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
- TAO_TEMPLATES_SOURCE
-#endif
- ],
- [
- tao_cv_feature_templates_require_source="yes"
- AC_MSG_RESULT(yes)
- ],
- [
- tao_cv_feature_templates_require_source="no"
- AC_MSG_RESULT(no)
- ])
-AM_CONDITIONAL(TEMPLATES_REQUIRE_SOURCE,
- test X$tao_cv_feature_templates_require_source = Xyes)
-
-
-dnl Additional flags to set by the configure script
-
-if test -n "$GXX" && test -z "$ACE_CONFIG"; then
- TAO_CXXFLAGS="$TAO_CXXFLAGS -W -Wall -Wpointer-arith"
-fi
-
-if test -n "$GCC" && test -z "$ACE_CONFIG"; then
- TAO_CFLAGS="$TAO_CFLAGS -W -Wall -Wpointer-arith"
-fi
-
-dnl Combine package set flags with user's flags.
-dnl User's flags go after package flags to allow user to override
-dnl package defaults.
-dnl X_CFLAGS comes from AC_PATH_XTRA. It may include, for example,
-dnl additional include file paths or macros that need to be defined
-dnl in order for X11 related files to be compiled properly.
-CXXFLAGS="$TAO_CXXFLAGS $CXXFLAGS"
-CFLAGS="$TAO_CFLAGS $CFLAGS"
-CPPFLAGS="$TAO_CPPFLAGS $CPPFLAGS"
-LDFLAGS="$TAO_LDFLAGS $LDFLAGS"
-
-dnl Prepend purify and quantify command lines if purify and quantify are
-dnl enabled. Otherwise, PURELINK and PRELINK will just be "blank."
-LD="$PURELINK $PRELINK $LD"
-dnl LDFLAGS="$ACE_LDFLAGS $LDFLAGS"
-
-dnl AC_SUBST(LDFLAGS)
-dnl AC_SUBST(LIBOBJS)
-
-dnl These definitions are expanded in the makefile and ace-config
-TAO_LIBDIR='-L${libdir}'
-TAO_LIBS="${LIBS}"
-TAO_INCLUDEDIR='-I${includedir}'
-
-AC_SUBST(TAO_LIBDIR)
-AC_SUBST(TAO_LIBS)
-AC_SUBST(TAO_INCLUDEDIR)
-
-dnl Force CXXFLAGS to be substituted in Makefiles that don't "need" them.
-AC_SUBST(CXXFLAGS)
-
-dnl
-dnl SECTION 16: `AC_OUTPUT([FILE...])'
-dnl
-dnl
-dnl We can finally create all the files listed here; Makefile is
-dnl created from Makefile.in, etc. Top-level Makefiles should be
-dnl created first.
-AC_OUTPUT([
- Makefile
- TAO_IDL/Makefile
- TAO_IDL/ast/Makefile
- TAO_IDL/be/Makefile
- TAO_IDL/be_include/Makefile
- TAO_IDL/driver/Makefile
- TAO_IDL/fe/Makefile
- TAO_IDL/include/Makefile
- TAO_IDL/narrow/Makefile
- TAO_IDL/util/Makefile
- tao/Makefile
- tao-config
- ],
- [
- echo ""
- echo "Configuration of TAO is now complete."
- echo ""
- ])
diff --git a/TAO/orbsvcs/examples/RtEC/MCast/MCast.cpp b/TAO/orbsvcs/examples/RtEC/MCast/MCast.cpp
deleted file mode 100644
index bd62c075bb4..00000000000
--- a/TAO/orbsvcs/examples/RtEC/MCast/MCast.cpp
+++ /dev/null
@@ -1,408 +0,0 @@
-// $Id$
-
-#include "Consumer.h"
-#include "Supplier.h"
-#include "AddrServer.h"
-#include "orbsvcs/Event_Service_Constants.h"
-#include "orbsvcs/Event/EC_Event_Channel.h"
-#include "orbsvcs/Event/EC_Default_Factory.h"
-#include "orbsvcs/Event/EC_Gateway_UDP.h"
-#include "tao/ORB_Core.h"
-#include "ace/Get_Opt.h"
-
-ACE_RCSID(EC_Examples, MCast, "$Id$")
-
-const char *udp_mcast_address =
- ACE_DEFAULT_MULTICAST_ADDR ":10001";
-
-int parse_args (int argc, char *argv[]);
-
-int
-main (int argc, char* argv[])
-{
- // Register the default factory in the Service Configurator.
- // If your platform supports static constructors then you can
- // simply using the ACE_STATIC_SVC_DEFINE() macro, unfortunately TAO
- // must run on platforms where static constructors do not work well,
- // so we have to explicitly invoke this function.
- TAO_EC_Default_Factory::init_svcs ();
-
- // The exception macros are described in:
- //
- // $ACE_ROOT/docs/exceptions.html
- //
- // and defined in:
- //
- // $ACE_ROOT/ace/CORBA_macros.h
- //
- // If your platform supports native exceptions, and TAO was compiled
- // with native exception support then you can simply use try/catch
- // and avoid the ACE_TRY_ENV argument.
- // Unfortunately many embedded systems cannot use exceptions due to
- // the space and time overhead.
- //
- // This would be OK except for the fact that event channel library
- // is compiled with support for platforms without exceptions, so
- // some of the classes (the consumers and suppliers), must receive
- // the extra CORBA::Environment argument.
- // In platforms with native C++ exception support the argument must
- // be present, but it can be ignored, and the standard C++ exception
- // mechanisms can be used instead.
- // Still we are workin on some way to avoid the extra argument
- // altogether, at least for platforms that do not require it.
- //
- ACE_DECLARE_NEW_CORBA_ENV;
- ACE_TRY
- {
- // **************** HERE STARTS THE ORB SETUP
-
- // Create the ORB, pass the argv list for parsing.
- CORBA::ORB_var orb =
- CORBA::ORB_init (argc, argv, "", ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // Parse the arguments, you usually want to do this after
- // invoking ORB_init() because ORB_init() will remove all the
- // -ORB options from the command line.
- if (parse_args (argc, argv) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- "Usage: Service [-m udp_mcast_addr]\n"));
- return 1;
- }
-
- // This is the standard code to get access to the POA and
- // activate it.
- // The POA starts in the holding state, if it is not activated
- // it will not process any requests.
- CORBA::Object_var object =
- orb->resolve_initial_references ("RootPOA", ACE_TRY_ENV);
- ACE_TRY_CHECK;
- PortableServer::POA_var poa =
- PortableServer::POA::_narrow (object.in (), ACE_TRY_ENV);
- ACE_TRY_CHECK;
- PortableServer::POAManager_var poa_manager =
- poa->the_POAManager (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- poa_manager->activate (ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // **************** THAT COMPLETS THE ORB SETUP
-
- // **************** HERE START THE LOCAL EVENT CHANNEL SETUP
-
- // This structure is used to define the startup time event
- // channel configuration.
- // This structure is described in
- //
- // $TAO_ROOT/docs/ec_options.html
- //
- TAO_EC_Event_Channel_Attributes attributes (poa.in (),
- poa.in ());
-
- // Create the Event Channel implementation class
- TAO_EC_Event_Channel ec_impl (attributes);
-
- // Activate the Event Channel, depending on the configuration
- // that may involve creating some threads.
- // But it should always be invoked because several internal data
- // structures are initialized at that point.
- ec_impl.activate (ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // The event channel is activated as any other CORBA servant.
- // In this case we use the simple implicit activation with the
- // RootPOA
- RtecEventChannelAdmin::EventChannel_var event_channel =
- ec_impl._this (ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // **************** THAT COMPLETES THE LOCAL EVENT CHANNEL SETUP
-
- // **************** HERE STARTS THE FEDERATION SETUP
-
- // The next step is to setup the multicast gateways.
- // There are two gateways involved, one sends the locally
- // generated events to the federated peers, the second gateway
- // receives multicast traffic and turns it into local events.
-
- // The sender requires a helper object to select what
- // multicast group will carry what traffic, this is the
- // so-called 'Address Server'.
- // The intention is that advanced applications can use different
- // multicast groups for different events, this can exploit
- // network interfaces that filter unwanted multicast traffic.
- // The helper object is accessed through an IDL interface, so it
- // can reside remotely.
- // In this example, and in many application, using a fixed
- // multicast group is enough, and a local address server is the
- // right approach.
-
- // First we convert the string into an INET address, then we
- // convert that into the right IDL structure:
- ACE_INET_Addr udp_addr (udp_mcast_address);
- ACE_DEBUG ((LM_DEBUG,
- "Multicast address is: %s\n",
- udp_mcast_address));
- RtecUDPAdmin::UDP_Addr addr;
- addr.ipaddr = udp_addr.get_ip_address ();
- addr.port = udp_addr.get_port_number ();
-
- // Now we create and activate the servant
- AddrServer as_impl (addr);
- RtecUDPAdmin::AddrServer_var address_server =
- as_impl._this (ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // We need a local socket to send the data, open it and check
- // that everything is OK:
- TAO_ECG_UDP_Out_Endpoint endpoint;
- if (endpoint.dgram ().open (ACE_Addr::sap_any) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "Cannot open send endpoint\n"),
- 1);
- }
-
- // Now we setup the sender:
- TAO_ECG_UDP_Sender sender;
- sender.init (event_channel.in (),
- address_server.in (),
- &endpoint,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // Now we connect the sender as a consumer of events, it will
- // receive any event from any source and send it to the "right"
- // multicast group, as defined by the address server set above:
- RtecEventChannelAdmin::ConsumerQOS sub;
- sub.is_gateway = 1;
-
- sub.dependencies.length (1);
- sub.dependencies[0].event.header.type =
- ACE_ES_EVENT_ANY; // first free event type
- sub.dependencies[0].event.header.source =
- ACE_ES_EVENT_SOURCE_ANY; // Any source is OK
-
- sender.open (sub, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // To receive events we need to setup an event handler:
- TAO_ECG_UDP_Receiver receiver;
- TAO_ECG_Mcast_EH mcast_eh (&receiver);
-
- // The event handler uses the ORB reactor to wait for multicast
- // traffic:
- mcast_eh.reactor (orb->orb_core ()->reactor ());
-
- // The multicast Event Handler needs to know to what multicast
- // groups it should listen to. To do so it becomes an observer
- // with the event channel, to determine the list of events
- // required by all the local consumer.
- // Then it register for the multicast groups that carry those
- // events:
- int r = mcast_eh.open (event_channel.in (),
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
- if (r == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "Cannot open EH %p\n"), 1);
- }
-
- // Big events have to be fragmented when sent using multicast.
- // The receiver periodically checks the status of the fragments,
- // using the following timer.
- // If after <max_expiration_count> iterations the complete
- // message has not been received it is dropped:
- ACE_Time_Value expire (0, 50000);
- const int max_expiration_count = 5;
-
- // Again the receiver connects to the event channel as a
- // supplier of events, using the Observer features to detect
- // local consumers and their interests:
- receiver.init (event_channel.in (),
- &endpoint,
- address_server.in (),
- orb->orb_core ()->reactor (),
- expire,
- max_expiration_count,
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // The Receiver is also a supplier of events. The exact type of
- // events is only known to the application, because it depends
- // on the traffic carried by all the multicast groups that the
- // different event handlers subscribe to.
- // In this example we choose to simply describe our publications
- // using wilcards, any event from any source. More advanced
- // application could use the Observer features in the event
- // channel to update this information (and reduce the number of
- // multicast groups that each receive subscribes to).
- // In a future version the event channel could perform some of
- // those tasks automatically
- RtecEventChannelAdmin::SupplierQOS pub;
- pub.publications.length (1);
- pub.publications[0].event.header.type = ACE_ES_EVENT_ANY;
- pub.publications[0].event.header.source = ACE_ES_EVENT_SOURCE_ANY;
- pub.is_gateway = 1;
-
- receiver.open (pub, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // **************** THAT COMPLETES THE FEDERATION SETUP
-
- // **************** HERE STARTS THE CLIENT SETUP
-
- // First let us create a consumer and connect it to the event
- // channel
- Consumer consumer;
- RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin =
- event_channel->for_consumers (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- consumer.connect (consumer_admin.in (),
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // And now create a supplier
- Supplier supplier;
- RtecEventChannelAdmin::SupplierAdmin_var supplier_admin =
- event_channel->for_suppliers (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- supplier.connect (supplier_admin.in (),
- ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // **************** THAT COMPLETES THE CLIENT SETUP
-
- // **************** HERE STARTS THE EVENT LOOP
-
- // Wait for events, including incoming multicast data.
- // We could also use orb->run(), but that will not let us
- // terminate the application in a nice way.
- for (int i = 0; i != 1000; ++i)
- {
- CORBA::Boolean there_is_work =
- orb->work_pending (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- if (there_is_work)
- {
- // We use a TAO extension. The CORBA mechanism does not
- // provide any decent way to control the duration of
- // perform_work() or work_pending(), so just calling
- // them results in a spin loop.
- ACE_Time_Value tv (0, 50000);
- orb->perform_work (tv, ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
- ACE_Time_Value tv (0, 100000);
- ACE_OS::sleep (tv);
- supplier.perform_push (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
-
- // **************** THAT COMPLETES THE EVENT LOOP
-
- // **************** HERE STARTS THE CLEANUP CODE
-
- // First the easy ones
- supplier.disconnect (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- consumer.disconnect (ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // Now let us close the Receiver
- receiver.close (ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- r = mcast_eh.close (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- if (r == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "Closing MCast event handler\n"), 1);
- }
-
- // And also close the sender of events
- sender.close (ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // The event channel must be destroyed, so it can release its
- // resources, and inform all the clients that are still
- // connected that it is going away.
- event_channel->destroy (ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // Deactivating the event channel implementation is not strictly
- // required, the POA will do it for us, but it is good manners:
- {
- // Using _this() activates with the default POA, we must gain
- // access to that POA to deactivate the object.
- // Notice that we 'know' that the default POA for this servant
- // is the root POA, but the code is more robust if we don't
- // rely on that.
- PortableServer::POA_var poa =
- ec_impl._default_POA (ACE_TRY_ENV);
- ACE_TRY_CHECK;
- // Get the Object Id used for the servant..
- PortableServer::ObjectId_var oid =
- poa->servant_to_id (&ec_impl, ACE_TRY_ENV);
- ACE_TRY_CHECK;
- // Deactivate the object
- poa->deactivate_object (oid.in (), ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
-
- // Now we can destroy the POA, the flags mean that we want to
- // wait until the POA is really destroyed
- poa->destroy (1, 1, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // Finally destroy the ORB
- orb->destroy (ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // **************** THAT COMPLETES THE CLEANUP CODE
-
- ACE_DEBUG ((LM_DEBUG,
- "MCast example terminated\n"));
- }
- ACE_CATCHANY
- {
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION, "Service");
- return 1;
- }
- ACE_ENDTRY;
- return 0;
-}
-
-// ****************************************************************
-
-int parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opts (argc, argv, "m:");
- int c;
-
- while ((c = get_opts ()) != -1)
- switch (c)
- {
- case 'm':
- udp_mcast_address = get_opts.optarg;
- break;
-
- case '?':
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "usage: %s "
- "[-m udp_mcast_address]"
- "\n",
- argv [0]),
- -1);
- }
- // Indicates sucessful parsing of the command line
- return 0;
-}
-
-// ****************************************************************
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/examples/RtEC/MCast/Makefile b/TAO/orbsvcs/examples/RtEC/MCast/Makefile
deleted file mode 100644
index e153b05f1c0..00000000000
--- a/TAO/orbsvcs/examples/RtEC/MCast/Makefile
+++ /dev/null
@@ -1,1131 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-ifndef TAO_ROOT
- TAO_ROOT = $(ACE_ROOT)/TAO
-endif # ! TAO_ROOT
-
-BIN2 = MCast
-
-SRC=MCast.cpp Consumer.cpp Supplier.cpp AddrServer.cpp
-LDLIBS = -lTAO_RTEvent -lTAO_RTSched -lTAO_CosNaming -lTAO_Svc_Utils -lTAO_IORTable -lTAO_PortableServer -lTAO
-CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs \
- $(foreach svc, $(TAO_ORBSVCS), -DTAO_ORBSVCS_HAS_$(svc))
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(TAO_ROOT)/rules.tao.GNU
-
-#### If the orbsvcs library wasn't built with all components, don't
-#### try to build certain tests.
-TAO_ORBSVCS := $(shell sh $(ACE_ROOT)/bin/ace_components --orbsvcs)
-ifeq (RTEvent,$(findstring RTEvent,$(TAO_ORBSVCS)))
- ifneq ($(ACE_HAS_GNUG_PRE_2_8),1)
- BIN = $(BIN2)
- endif # ACE_HAS_GNUG_PRE_2_8
-endif # RTEvent
-
-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
-
-# To build multiple executables in the same directory on AIX, it works
-# best to wipe out any previously-created tempinc directory.
-# The compiler/linker isn't too smart about instantiating templates...
-ifdef TEMPINCDIR
-COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc)
-endif
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/MCast.o .obj/MCast.so .shobj/MCast.o .shobj/MCast.so: MCast.cpp Consumer.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/event_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.i \
- Supplier.h AddrServer.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Service_Constants.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Event_Channel.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Factory.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 \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Factory.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Defaults.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Event_Channel.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Default_Factory.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Default_Factory.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.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_Dgram.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- $(ACE_ROOT)/ace/SOCK_CODgram.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/SOCK_CODgram.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i
-
-.obj/Consumer.o .obj/Consumer.so .shobj/Consumer.o .shobj/Consumer.so: Consumer.cpp Consumer.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/event_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Service_Constants.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.i
-
-.obj/Supplier.o .obj/Supplier.so .shobj/Supplier.o .shobj/Supplier.so: Supplier.cpp Supplier.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/event_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Service_Constants.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.i
-
-.obj/AddrServer.o .obj/AddrServer.so .shobj/AddrServer.o .shobj/AddrServer.so: AddrServer.cpp AddrServer.h \
- $(ACE_ROOT)/ace/pre.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/event_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp
deleted file mode 100644
index 9c740466376..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp
+++ /dev/null
@@ -1,1255 +0,0 @@
-// $Id$
-
-#include "orbsvcs/Event/EC_Gateway_UDP.h"
-#include "orbsvcs/Event_Utilities.h"
-#include "orbsvcs/Time_Utilities.h"
-#include "ace/Reactor.h"
-
-#if !defined(__ACE_INLINE__)
-#include "EC_Gateway_UDP.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(Event, EC_Gateway_UDP, "$Id$")
-
-// ****************************************************************
-
-TAO_ECG_UDP_Sender::TAO_ECG_UDP_Sender (void)
- : mtu_ (TAO_ECG_UDP_Sender::ECG_DEFAULT_MTU)
-{
-}
-
-int
-TAO_ECG_UDP_Sender::get_local_addr (ACE_INET_Addr& addr)
-{
- if (this->endpoint_ == 0)
- return -1;
- return this->dgram ().get_local_addr (addr);
-}
-
-void
-TAO_ECG_UDP_Sender::init (RtecEventChannelAdmin::EventChannel_ptr lcl_ec,
- RtecUDPAdmin::AddrServer_ptr addr_server,
- TAO_ECG_UDP_Out_Endpoint* endpoint,
- CORBA::Environment &)
-{
- this->lcl_ec_ =
- RtecEventChannelAdmin::EventChannel::_duplicate (lcl_ec);
-
- this->addr_server_ =
- RtecUDPAdmin::AddrServer::_duplicate (addr_server);
-
- this->endpoint_ = endpoint;
-}
-
-int
-TAO_ECG_UDP_Sender::mtu (CORBA::ULong new_mtu)
-{
- if (new_mtu < TAO_ECG_UDP_Sender::ECG_MIN_MTU
- || new_mtu >= TAO_ECG_UDP_Sender::ECG_MAX_MTU)
- return -1;
- this->mtu_ = new_mtu;
- return 0;
-}
-
-void
-TAO_ECG_UDP_Sender::shutdown (CORBA::Environment& ACE_TRY_ENV)
-{
- this->close (ACE_TRY_ENV);
- ACE_CHECK;
- this->lcl_ec_ = RtecEventChannelAdmin::EventChannel::_nil ();
-}
-
-void
-TAO_ECG_UDP_Sender::open (RtecEventChannelAdmin::ConsumerQOS& sub,
- CORBA::Environment &ACE_TRY_ENV)
-{
- // ACE_DEBUG ((LM_DEBUG, "ECG (%t) Open gateway\n"));
- if (CORBA::is_nil (this->lcl_ec_.in ()))
- return;
-
- if (!CORBA::is_nil (this->supplier_proxy_.in ()))
- this->close (ACE_TRY_ENV);
- ACE_CHECK;
-
- if (sub.dependencies.length () == 0)
- return;
-
- //ACE_DEBUG ((LM_DEBUG, "ECG (%t) Gateway/Supplier "));
- //ACE_SupplierQOS_Factory::debug (pub);
-
- RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin =
- this->lcl_ec_->for_consumers (ACE_TRY_ENV);
- ACE_CHECK;
-
- this->supplier_proxy_ =
- consumer_admin->obtain_push_supplier (ACE_TRY_ENV);
- ACE_CHECK;
-
- RtecEventComm::PushConsumer_var consumer_ref =
- this->_this (ACE_TRY_ENV);
- ACE_CHECK;
-
- //ACE_DEBUG ((LM_DEBUG, "ECG (%t) Gateway/Consumer "));
- //ACE_ConsumerQOS_Factory::debug (sub);
-
- this->supplier_proxy_->connect_push_consumer (consumer_ref.in (),
- sub,
- ACE_TRY_ENV);
- ACE_CHECK;
-}
-
-void
-TAO_ECG_UDP_Sender::close (CORBA::Environment &ACE_TRY_ENV)
-{
- // ACE_DEBUG ((LM_DEBUG, "ECG (%t) Closing gateway\n"));
- if (CORBA::is_nil (this->supplier_proxy_.in ()))
- return;
-
- this->supplier_proxy_->disconnect_push_supplier (ACE_TRY_ENV);
- ACE_CHECK;
-
- this->supplier_proxy_ =
- RtecEventChannelAdmin::ProxyPushSupplier::_nil ();
-
- PortableServer::POA_var poa =
- this->_default_POA (ACE_TRY_ENV);
- ACE_CHECK;
- PortableServer::ObjectId_var id =
- poa->servant_to_id (this, ACE_TRY_ENV);
- ACE_CHECK;
- poa->deactivate_object (id.in (), ACE_TRY_ENV);
- ACE_CHECK;
-}
-
-void
-TAO_ECG_UDP_Sender::disconnect_push_consumer (CORBA::Environment &)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- ACE_DEBUG ((LM_DEBUG,
- "ECG (%t): Supplier-consumer received "
- "disconnect from channel.\n"));
-}
-
-void
-TAO_ECG_UDP_Sender::push (const RtecEventComm::EventSet &events,
- CORBA::Environment & ACE_TRY_ENV)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- // ACE_DEBUG ((LM_DEBUG, "ECG_UDP_Sender::push - \n"));
-
- if (events.length () == 0)
- {
- // ACE_DEBUG ((LM_DEBUG, "no events\n"));
- return;
- }
-
- // @@ TODO precompute this when the MTU changes...
- CORBA::ULong max_fragment_payload = this->mtu () -
- TAO_ECG_UDP_Sender::ECG_HEADER_SIZE;
- // ACE_ASSERT (max_fragment_payload != 0);
-
- // ACE_DEBUG ((LM_DEBUG, "%d event(s) - ", events.length ()));
-
- // Send each event in a separate message.
- // @@ TODO It is interesting to group events destined to the
- // same mcast group in a single message.
- for (u_int i = 0; i < events.length (); ++i)
- {
- // To avoid loops we keep a TTL field on the events and skip the
- // events with TTL <= 0
- if (events[i].header.ttl <= 0)
- continue;
-
- const RtecEventComm::Event& e = events[i];
-
- // We need to modify the TTL field, but copying the entire event
- // would be wasteful; instead we create a new header and only
- // modify the header portion.
- RtecEventComm::EventHeader header = e.header;
- header.ttl--;
-
- // Grab the right mcast group for this event...
- RtecUDPAdmin::UDP_Addr udp_addr;
- this->addr_server_->get_addr (header, udp_addr, ACE_TRY_ENV);
- ACE_CHECK;
-
- // Start building the message
- TAO_OutputCDR cdr;
-
- // Marshal as if it was a sequence of one element, notice how we
- // marshal a modified version of the header, but the payload is
- // marshal without any extra copies.
- cdr.write_ulong (1);
- if (!(cdr << header)
- || !(cdr << e.data))
- ACE_THROW (CORBA::MARSHAL ());
-
-#if defined (ACE_HAS_BROKEN_DGRAM_SENDV)
- const int TAO_WRITEV_MAX = IOV_MAX - 1;
-#else
- const int TAO_WRITEV_MAX = IOV_MAX;
-#endif /* ACE_HAS_BROKEN_DGRAM_SENDV */
- iovec iov[TAO_WRITEV_MAX];
-
- CORBA::ULong total_length;
- CORBA::ULong fragment_count =
- this->compute_fragment_count (cdr.begin (),
- cdr.end (),
- TAO_WRITEV_MAX,
- max_fragment_payload,
- total_length);
-
- CORBA::ULong request_id = this->endpoint_->next_request_id ();
-
- // Reserve the first iovec for the header...
- int iovcnt = 1;
- CORBA::ULong fragment_id = 0;
- CORBA::ULong fragment_offset = 0;
- CORBA::ULong fragment_size = 0;
- for (const ACE_Message_Block* b = cdr.begin ();
- b != cdr.end ();
- b = b->cont ())
- {
- CORBA::ULong l = b->length ();
-
- char* rd_ptr = b->rd_ptr ();
-
- iov[iovcnt].iov_base = rd_ptr;
- iov[iovcnt].iov_len = l;
- fragment_size += l;
- iovcnt++;
- while (fragment_size > max_fragment_payload)
- {
- // This fragment is full, we have to send it...
-
- // First adjust the last iov entry:
- CORBA::ULong last_mb_length =
- max_fragment_payload - (fragment_size - l);
- iov[iovcnt - 1].iov_len = last_mb_length;
-
- this->send_fragment (udp_addr,
- request_id,
- total_length,
- max_fragment_payload,
- fragment_offset,
- fragment_id,
- fragment_count,
- iov,
- iovcnt,
- ACE_TRY_ENV);
- ACE_CHECK;
- fragment_id++;
- fragment_offset += max_fragment_payload;
-
- // Reset, but don't forget that the last Message_Block
- // may need to be sent in multiple fragments..
- l -= last_mb_length;
- rd_ptr += last_mb_length;
- iov[1].iov_base = rd_ptr;
- iov[1].iov_len = l;
- fragment_size = l;
- iovcnt = 2;
- }
- if (fragment_size == max_fragment_payload)
- {
- // We filled a fragment, but this time it was filled
- // exactly, the treatment is a little different from the
- // loop above...
- this->send_fragment (udp_addr,
- request_id,
- total_length,
- max_fragment_payload,
- fragment_offset,
- fragment_id,
- fragment_count,
- iov,
- iovcnt,
- ACE_TRY_ENV);
- ACE_CHECK;
- fragment_id++;
- fragment_offset += max_fragment_payload;
-
- iovcnt = 1;
- fragment_size = 0;
- }
- if (iovcnt == TAO_WRITEV_MAX)
- {
- // Now we ran out of space in the iovec, we must send a
- // fragment to work around that....
- this->send_fragment (udp_addr,
- request_id,
- total_length,
- fragment_size,
- fragment_offset,
- fragment_id,
- fragment_count,
- iov,
- iovcnt,
- ACE_TRY_ENV);
- ACE_CHECK;
- fragment_id++;
- fragment_offset += fragment_size;
-
- iovcnt = 1;
- fragment_size = 0;
- }
- }
- // There is something left in the iovvec that we must send
- // also...
- if (iovcnt != 1)
- {
- // Now we ran out of space in the iovec, we must send a
- // fragment to work around that....
- this->send_fragment (udp_addr,
- request_id,
- total_length,
- fragment_size,
- fragment_offset,
- fragment_id,
- fragment_count,
- iov,
- iovcnt,
- ACE_TRY_ENV);
- ACE_CHECK;
- fragment_id++;
- fragment_offset += fragment_size;
-
- // reset, not needed here...
- // iovcnt = 1;
- // fragment_size = 0;
- }
- // ACE_ASSERT (total_length == fragment_offset);
- // ACE_ASSERT (fragment_id == fragment_count);
-
- }
-}
-
-void
-TAO_ECG_UDP_Sender::send_fragment (const RtecUDPAdmin::UDP_Addr& udp_addr,
- CORBA::ULong request_id,
- CORBA::ULong request_size,
- CORBA::ULong fragment_size,
- CORBA::ULong fragment_offset,
- CORBA::ULong fragment_id,
- CORBA::ULong fragment_count,
- iovec iov[],
- int iovcnt,
- CORBA::Environment& ACE_TRY_ENV)
-{
- CORBA::ULong header[TAO_ECG_UDP_Sender::ECG_HEADER_SIZE
- / sizeof(CORBA::ULong)
- + ACE_CDR::MAX_ALIGNMENT];
- char* buf = ACE_reinterpret_cast(char*,header);
- TAO_OutputCDR cdr (buf, sizeof(header));
- cdr.write_boolean (TAO_ENCAP_BYTE_ORDER);
- cdr.write_ulong (request_id);
- cdr.write_ulong (request_size);
- cdr.write_ulong (fragment_size);
- cdr.write_ulong (fragment_offset);
- cdr.write_ulong (fragment_id);
- cdr.write_ulong (fragment_count);
- CORBA::Octet padding[4];
- cdr.write_octet_array (padding, 4);
-
- iov[0].iov_base = cdr.begin ()->rd_ptr ();
- iov[0].iov_len = cdr.begin ()->length ();
-
- ACE_INET_Addr inet_addr (udp_addr.port,
- udp_addr.ipaddr);
-
- // ACE_DEBUG ((LM_DEBUG,
- // "ECG_UDP_Sender (%P|%t): msg = %d, fragment %d/%d, "
- // "dest = (%u:%d)\n",
- // request_id,
- // fragment_id, fragment_count,
- // udp_addr.ipaddr, udp_addr.port));
-
- ssize_t n = this->dgram ().send (iov,
- iovcnt,
- inet_addr);
- if (n == -1)
- {
- // @@ TODO Use a Event Channel specific exception
- ACE_DEBUG ((LM_DEBUG,
- "ECG_UDP (%t) send failed %p\n", ""));
- ACE_THROW(CORBA::COMM_FAILURE ());
- }
- else if (n == 0)
- {
- // @@ TODO Use a Event Channel specific exception
- ACE_DEBUG ((LM_DEBUG,
- "ECG_UDP (%t) EOF on send \n"));
- ACE_THROW(CORBA::COMM_FAILURE ());
- }
-}
-
-
-CORBA::ULong
-TAO_ECG_UDP_Sender::compute_fragment_count (const ACE_Message_Block* begin,
- const ACE_Message_Block* end,
- int iov_size,
- CORBA::ULong max_fragment_payload,
- CORBA::ULong& total_length)
-{
- CORBA::ULong fragment_count = 0;
- total_length = 0;
-
- CORBA::ULong fragment_size = 0;
- // Reserve the first iovec for the header...
- int iovcnt = 1;
- for (const ACE_Message_Block* b = begin;
- b != end;
- b = b->cont ())
- {
- CORBA::ULong l = b->length ();
- total_length += l;
- fragment_size += l;
- iovcnt++;
- while (fragment_size > max_fragment_payload)
- {
- // Ran out of space, must create a fragment...
- fragment_count++;
-
- // The next iovector will contain what remains of this
- // buffer, but also consider
- iovcnt = 2;
- l -= max_fragment_payload - (fragment_size - l);
- fragment_size = l;
- }
- if (fragment_size == max_fragment_payload)
- {
- fragment_count++;
- iovcnt = 1;
- fragment_size = 0;
- }
- if (iovcnt >= iov_size)
- {
- // Ran out of space in the iovector....
- fragment_count++;
- iovcnt = 1;
- fragment_size = 0;
- }
- }
- if (iovcnt != 1)
- {
- // Send the remaining data in another fragment
- fragment_count++;
- }
- return fragment_count;
-}
-
-// ****************************************************************
-
-TAO_ECG_UDP_Out_Endpoint::~TAO_ECG_UDP_Out_Endpoint (void)
-{
- delete[] this->ifs_;
- this->ifs_ = 0;
-}
-
-CORBA::Boolean
-TAO_ECG_UDP_Out_Endpoint::is_loopback (const ACE_INET_Addr& from)
-{
- if (this->port_number_ == 0)
- {
- // Cache the port number...
- ACE_INET_Addr local_addr;
- if (this->dgram ().get_local_addr (local_addr) == -1)
- return 0;
- this->port_number_ = local_addr.get_port_number ();
- }
-
- // Most of the time the port number is enough to determine if the
- // message is remote, only when the local port number and the remote
- // port number match we have to look at the local ip addresses.
- if (from.get_port_number () != this->port_number_)
- return 0;
-
- if (this->ifs_ == 0)
- {
- ACE::get_ip_interfaces (this->if_count_, this->ifs_);
- }
-
- for (ACE_INET_Addr* i = this->ifs_;
- i != this->ifs_ + this->if_count_;
- ++i)
- {
- if ((*i).get_ip_address () == from.get_ip_address ())
- return 1;
- }
- return 0;
-}
-
-
-// ****************************************************************
-
-#if 0
-TAO_ECG_UDP_Request_Entry::TAO_ECG_UDP_Request_Entry (void)
- : request_size_ (0),
- fragment_count_ (0),
- timeout_counter_ (0),
- payload_ (0),
- received_fragments_ (default_received_fragments_),
- own_received_fragments_ (0)
-{
-}
-
-// @@ todo:This code is commented out. So no problem. But when this
-// code is enabled we need to make sure that
-// ACE_Message_Block::duplicate () should be called only if the data
-// block in it is NOT from stack. Else we need to copy the datablock
-// and then duplicate () it. See $TAO_ROOT/tao/Sequence.{cpp,i} on how
-// this is done.
-
-TAO_ECG_UDP_Request_Entry::
-TAO_ECG_UDP_Request_Entry (const TAO_ECG_UDP_Request_Entry& rhs)
- : byte_order_ (rhs.byte_order_),
- request_id_ (rhs.request_id_),
- request_size_ (rhs.request_size_),
- fragment_count_ (rhs.fragment_count_),
- timeout_counter_ (rhs.timeout_counter_),
- payload_ (ACE_Message_Block::duplicate (rhs.payload_)),
- received_fragments_ (default_received_fragments_),
- own_received_fragments_ (0)
-{
-}
-#endif
-
-TAO_ECG_UDP_Request_Entry::~TAO_ECG_UDP_Request_Entry (void)
-{
- if (this->own_received_fragments_)
- {
- this->own_received_fragments_ = 0;
- delete[] this->received_fragments_;
- }
-}
-
-TAO_ECG_UDP_Request_Entry::
-TAO_ECG_UDP_Request_Entry (CORBA::Boolean byte_order,
- CORBA::ULong request_id,
- CORBA::ULong request_size,
- CORBA::ULong fragment_count)
- : byte_order_ (byte_order),
- request_id_ (request_id),
- request_size_ (request_size),
- fragment_count_ (fragment_count),
- timeout_counter_ (0)
-{
- ACE_CDR::grow (&this->payload_, this->request_size_);
- this->payload_.wr_ptr (request_size_);
-
- this->received_fragments_ = this->default_received_fragments_;
- this->own_received_fragments_ = 0;
- const int bits_per_ulong = sizeof(CORBA::ULong) * CHAR_BIT;
- this->received_fragments_size_ =
- this->fragment_count_ / bits_per_ulong + 1;
- if (this->received_fragments_size_ > ECG_DEFAULT_FRAGMENT_BUFSIZ)
- {
- ACE_NEW (this->received_fragments_,
- CORBA::ULong[this->received_fragments_size_]);
- this->own_received_fragments_ = 1;
- }
-
- for (CORBA::ULong i = 0; i < this->received_fragments_size_; ++i)
- this->received_fragments_[i] = 0;
- CORBA::ULong idx = this->fragment_count_ / bits_per_ulong;
- CORBA::ULong bit = this->fragment_count_ % bits_per_ulong;
- this->received_fragments_[idx] = (0xFFFFFFFF << bit);
-}
-
-int
-TAO_ECG_UDP_Request_Entry::validate_fragment (CORBA::Boolean byte_order,
- CORBA::ULong request_size,
- CORBA::ULong fragment_size,
- CORBA::ULong fragment_offset,
- CORBA::ULong /* fragment_id */,
- CORBA::ULong fragment_count) const
-{
- if (byte_order != this->byte_order_
- || request_size != this->request_size_
- || fragment_count != this->fragment_count_)
- return 0;
-
- if (fragment_offset >= request_size
- || fragment_offset + fragment_size > request_size)
- return 0;
-
- return 1;
-}
-
-int
-TAO_ECG_UDP_Request_Entry::test_received (CORBA::ULong fragment_id) const
-{
- // Assume out-of-range fragments as received, so they are dropped...
- if (fragment_id > this->fragment_count_)
- return 1;
-
- const int bits_per_ulong = sizeof(CORBA::ULong) * CHAR_BIT;
- CORBA::ULong idx = fragment_id / bits_per_ulong;
- CORBA::ULong bit = fragment_id % bits_per_ulong;
- return ACE_BIT_ENABLED (this->received_fragments_[idx], 1<<bit);
-}
-
-void
-TAO_ECG_UDP_Request_Entry::mark_received (CORBA::ULong fragment_id)
-{
- // Assume out-of-range fragments as received, so they are dropped...
- if (fragment_id > this->fragment_count_)
- return;
-
- const int bits_per_ulong = sizeof(CORBA::ULong) * CHAR_BIT;
- CORBA::ULong idx = fragment_id / bits_per_ulong;
- CORBA::ULong bit = fragment_id % bits_per_ulong;
- ACE_SET_BITS (this->received_fragments_[idx], 1<<bit);
-}
-
-int
-TAO_ECG_UDP_Request_Entry::complete (void) const
-{
- for (CORBA::ULong i = 0;
- i < this->received_fragments_size_;
- ++i)
- {
- if (this->received_fragments_[i] != 0xFFFFFFFF)
- return 0;
- }
- return 1;
-}
-
-char*
-TAO_ECG_UDP_Request_Entry::fragment_buffer (CORBA::ULong fragment_offset)
-{
- return this->payload_.rd_ptr () + fragment_offset;
-}
-
-void
-TAO_ECG_UDP_Request_Entry::decode (RtecEventComm::EventSet& event,
- CORBA::Environment& ACE_TRY_ENV)
-{
- TAO_InputCDR cdr (&this->payload_,
- ACE_static_cast(int,this->byte_order_));
- if (!(cdr >> event))
- ACE_THROW (CORBA::MARSHAL ());
-}
-
-// ****************************************************************
-
-TAO_ECG_UDP_TH::TAO_ECG_UDP_TH (TAO_ECG_UDP_Receiver* r)
- : receiver_ (r)
-{
-}
-
-int
-TAO_ECG_UDP_TH::handle_timeout (const ACE_Time_Value& tv,
- const void* act)
-{
- return this->receiver_->handle_timeout (tv, act);
-}
-
-// ****************************************************************
-
-TAO_ECG_UDP_Receiver::TAO_ECG_UDP_Receiver (void)
- : timeout_handler_ (this),
- reactor_ (0)
-{
-}
-
-void
-TAO_ECG_UDP_Receiver::init (RtecEventChannelAdmin::EventChannel_ptr lcl_ec,
- TAO_ECG_UDP_Out_Endpoint* ignore_from,
- RtecUDPAdmin::AddrServer_ptr addr_server,
- ACE_Reactor *reactor,
- const ACE_Time_Value &expire_interval,
- int max_timeout,
- CORBA::Environment &)
-{
- this->ignore_from_ = ignore_from;
-
- this->lcl_ec_ =
- RtecEventChannelAdmin::EventChannel::_duplicate (lcl_ec);
-
- this->addr_server_ =
- RtecUDPAdmin::AddrServer::_duplicate (addr_server);
-
- this->reactor_ = reactor;
- this->max_timeout_ = max_timeout;
- // @@ TODO throw an exception....
- if (this->reactor_ == 0
- || this->reactor_->schedule_timer (&this->timeout_handler_, 0,
- expire_interval,
- expire_interval) == -1)
- ACE_ERROR ((LM_ERROR,
- "TAO_ECG_UDP_Receiver::init - "
- "cannot schedule timer\n"));
-}
-
-void
-TAO_ECG_UDP_Receiver::open (RtecEventChannelAdmin::SupplierQOS& pub,
- CORBA::Environment &ACE_TRY_ENV)
-{
- if (CORBA::is_nil (this->lcl_ec_.in ()))
- return;
-
- if (!CORBA::is_nil (this->consumer_proxy_.in ()))
- this->close (ACE_TRY_ENV);
- ACE_CHECK;
-
- if (pub.publications.length () == 0)
- return;
-
- // = Connect as a supplier to the local EC
- RtecEventChannelAdmin::SupplierAdmin_var supplier_admin =
- this->lcl_ec_->for_suppliers (ACE_TRY_ENV);
- ACE_CHECK;
-
- this->consumer_proxy_ =
- supplier_admin->obtain_push_consumer (ACE_TRY_ENV);
- ACE_CHECK;
-
- RtecEventComm::PushSupplier_var supplier_ref =
- this->_this (ACE_TRY_ENV);
- ACE_CHECK;
-
- // ACE_DEBUG ((LM_DEBUG, "ECG_UDP_Receiver (%t) Gateway/Supplier "));
- // ACE_SupplierQOS_Factory::debug (pub);
-
- this->consumer_proxy_->connect_push_supplier (supplier_ref.in (),
- pub,
- ACE_TRY_ENV);
- ACE_CHECK;
-}
-
-void
-TAO_ECG_UDP_Receiver::close (CORBA::Environment &ACE_TRY_ENV)
-{
- // ACE_DEBUG ((LM_DEBUG, "ECG (%t) Closing gateway\n"));
- if (CORBA::is_nil (this->consumer_proxy_.in ()))
- return;
-
- this->consumer_proxy_->disconnect_push_consumer (ACE_TRY_ENV);
- ACE_CHECK;
-
- this->consumer_proxy_ =
- RtecEventChannelAdmin::ProxyPushConsumer::_nil ();
-
- PortableServer::POA_var poa =
- this->_default_POA (ACE_TRY_ENV);
- ACE_CHECK;
- PortableServer::ObjectId_var id =
- poa->servant_to_id (this, ACE_TRY_ENV);
- ACE_CHECK;
- poa->deactivate_object (id.in (), ACE_TRY_ENV);
- ACE_CHECK;
-}
-
-void
-TAO_ECG_UDP_Receiver::disconnect_push_supplier (CORBA::Environment &)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- ACE_DEBUG ((LM_DEBUG,
- "ECG (%t): Supplier received "
- "disconnect from channel.\n"));
-}
-
-void
-TAO_ECG_UDP_Receiver::shutdown (CORBA::Environment& ACE_TRY_ENV)
-{
- this->close (ACE_TRY_ENV);
- ACE_CHECK;
-
- this->lcl_ec_ = RtecEventChannelAdmin::EventChannel::_nil ();
-
- this->reactor_->cancel_timer (&this->timeout_handler_);
-}
-
-int
-TAO_ECG_UDP_Receiver::handle_input (ACE_SOCK_Dgram& dgram)
-{
- // Use ULong so the alignment is right.
- CORBA::ULong header[TAO_ECG_UDP_Sender::ECG_HEADER_SIZE
- / sizeof(CORBA::ULong)
- + ACE_CDR::MAX_ALIGNMENT];
- ACE_INET_Addr from;
- ssize_t n = dgram.recv (header, sizeof(header), from, MSG_PEEK);
- if (n == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "ECG_UDP_Receive_EH::handle_input - peek\n"), -1);
- else if (n == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "ECG_UDP_Receive_EH::handle_input - peek 0\n"),
- 0);
-
- // This is to avoid receiving the events we send; notice that we
- // must read the message to drop it...
- if (this->ignore_from_ != 0
- && this->ignore_from_->is_loopback (from))
- {
- n = dgram.recv (header, sizeof(header), from);
- // ACE_DEBUG ((LM_DEBUG,
- // "ECG_UDP_Receiver (%P|%t): cycle dropped\n"));
- return 0;
- }
-
- char* buf = ACE_reinterpret_cast(char*,header);
- int byte_order = buf[0];
- TAO_InputCDR header_cdr (buf, sizeof(header), byte_order);
- CORBA::Boolean unused;
- CORBA::ULong request_id;
- CORBA::ULong request_size;
- CORBA::ULong fragment_size;
- CORBA::ULong fragment_offset;
- CORBA::ULong fragment_id;
- CORBA::ULong fragment_count;
- header_cdr.read_boolean (unused);
- header_cdr.read_ulong (request_id);
- header_cdr.read_ulong (request_size);
- header_cdr.read_ulong (fragment_size);
- header_cdr.read_ulong (fragment_offset);
- header_cdr.read_ulong (fragment_id);
- header_cdr.read_ulong (fragment_count);
-
- if (request_size < fragment_size
- || fragment_offset >= request_size
- || fragment_id >= fragment_count)
- {
- // Drop the packet...
- n = dgram.recv (header, sizeof(header), from);
- return 0;
- // ACE_DEBUG ((LM_DEBUG,
- // "ECG_UDP_Receiver (%P|%t): invalid fragment dropped"
- // ", from = (%u:%d)\n",
- // from.get_ip_address (), from.get_port_number ()));
- }
-
- // ACE_DEBUG ((LM_DEBUG,
- // "ECG_UDP_Receiver (%P|%t): msg = %d, from = (%u:%d) "
- // "fragment = %d/%d\n",
- // request_id,
- // from.get_ip_address (), from.get_port_number (),
- // fragment_id, fragment_count));
-
- TAO_ECG_UDP_Request_Index map_index (from, request_id);
- Request_Map_Entry* entry;
-
- if (this->request_map_.find (map_index, entry) == -1)
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "ECG_UDP_Receiver (%P|%t): new entry\n"
- // " byte_order = %d\n"
- // " request_id = %d\n"
- // " request_size = %d\n"
- // " fragment_size = %d\n"
- // " fragment_offset = %d\n"
- // " fragment_id = %d\n"
- // " fragment_count = %d\n",
- // byte_order,
- // request_id,
- // request_size,
- // fragment_size,
- // fragment_offset,
- // fragment_id,
- // fragment_count));
-
- // Create an entry and insert it....
- TAO_ECG_UDP_Request_Entry* request_entry =
- new TAO_ECG_UDP_Request_Entry(byte_order,
- request_id,
- request_size,
- fragment_count);
- if (request_entry == 0
- || this->request_map_.bind (map_index,
- request_entry,
- entry) == -1)
- {
- // Drop the packet...
- n = dgram.recv (header, sizeof(header), from);
- return 0;
- }
- }
-
- // Validate the message...
- if (entry->int_id_->validate_fragment (byte_order,
- request_size,
- fragment_size,
- fragment_offset,
- fragment_id,
- fragment_count) == 0)
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "ECG_UDP_Receiver (%P|%t): fragment rejected:"
- // " byte_order = %d\n"
- // " request_id = %d\n"
- // " request_size = %d\n"
- // " fragment_size = %d\n"
- // " fragment_offset = %d\n"
- // " fragment_id = %d\n"
- // " fragment_count = %d\n",
- // byte_order,
- // request_id,
- // request_size,
- // fragment_size,
- // fragment_offset,
- // fragment_id,
- // fragment_count));
-
- // Drop the fragment if it is invalid...
- n = dgram.recv (header, sizeof(header), from);
- return 0;
- }
-
- // Was this fragment received already?
- if (entry->int_id_->test_received (fragment_id) == 1)
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "ECG_UDP_Receiver (%P|%t): fragment duplicate\n"));
-
- // Drop the fragment...
- n = dgram.recv (header, sizeof(header), from);
- return 0;
- }
-
- // Now we should read the fragment, use an iovec to drop the header
- // into the bit bucket and the payload into the entry's buffer:
- const int iovcnt = 2;
- iovec iov[iovcnt];
- char drop_header[TAO_ECG_UDP_Sender::ECG_HEADER_SIZE];
- iov[0].iov_base = drop_header;
- iov[0].iov_len = sizeof(drop_header);
- iov[1].iov_base = entry->int_id_->fragment_buffer (fragment_offset);
- iov[1].iov_len = fragment_size;
-
- n = dgram.recv (iov, iovcnt, from);
-
- if (n == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "ECG_UDP_Receive_EH::handle_input - read\n"), -1);
- else if (n == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "ECG_UDP_Receive_EH::handle_input - read 0\n"),
- 0);
-
- entry->int_id_->mark_received (fragment_id);
- // If the message is not complete we must return...
- if (!entry->int_id_->complete ())
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "ECG_UDP_Receiver (%P|%t): incomplete message\n"));
-
- return 0;
- }
-
- ACE_DECLARE_NEW_CORBA_ENV;
- ACE_TRY
- {
- RtecEventComm::EventSet event;
- entry->int_id_->decode (event, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- this->consumer_proxy_->push (event, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- // ACE_DEBUG ((LM_DEBUG,
- // "TAO_ECG_UDP_Received (%P|%t): push %d "
- // "from = (%u:%d)\n",
- // request_id,
- // from.get_ip_address (), from.get_port_number ()));
- }
- ACE_CATCHANY
- {
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "ECG_UDP_Receive_EH::handle_input");
- }
- ACE_ENDTRY;
- return 0;
-}
-
-void
-TAO_ECG_UDP_Receiver::get_addr (const RtecEventComm::EventHeader& header,
- RtecUDPAdmin::UDP_Addr_out addr,
- CORBA::Environment& env)
-{
- this->addr_server_->get_addr (header, addr, env);
-}
-
-int
-TAO_ECG_UDP_Receiver::handle_timeout (const ACE_Time_Value& /* tv */,
- const void* /* act */)
-{
- Request_Map::iterator begin = this->request_map_.begin ();
- Request_Map::iterator end = this->request_map_.end ();
- {
- for (Request_Map::iterator i = begin;
- i != end;
- ++i)
- {
- (*i).int_id_->inc_timeout ();
- }
- }
- for (Request_Map::iterator j = begin;
- j != end;
- )
- {
- if ((*j).int_id_->get_timeout () > this->max_timeout_)
- {
- Request_Map_Entry& entry = *j;
- ++j;
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "TAO_ECG_UDP_Receiver::handle_timeout (%P|%t) "
- // "msg = %d\n",
- // entry.ext_id_.request_id));
- delete entry.int_id_;
- this->request_map_.unbind (&entry);
- }
- }
- else
- {
- ++j;
- }
- }
- return 0;
-}
-
-// ****************************************************************
-
-TAO_ECG_UDP_EH::TAO_ECG_UDP_EH (TAO_ECG_UDP_Receiver *recv)
- : receiver_ (recv)
-{
-}
-
-int
-TAO_ECG_UDP_EH::open (const ACE_INET_Addr& ipaddr,
- int reuse_addr)
-{
- if (this->dgram_.open (ipaddr, PF_INET, 0, reuse_addr) == -1)
- return -1;
- return this->reactor ()->register_handler (this,
- ACE_Event_Handler::READ_MASK);
-}
-
-int
-TAO_ECG_UDP_EH::close (void)
-{
- if (this->reactor ()->remove_handler (this,
- ACE_Event_Handler::READ_MASK) == -1)
- return -1;
-
- return this->dgram_.close ();
-}
-
-int
-TAO_ECG_UDP_EH::handle_input (ACE_HANDLE)
-{
- return this->receiver_->handle_input (this->dgram_);
-}
-
-ACE_HANDLE
-TAO_ECG_UDP_EH::get_handle (void) const
-{
- return this->dgram_.get_handle ();
-}
-
-
-// ****************************************************************
-
-TAO_ECG_Mcast_EH::TAO_ECG_Mcast_EH (TAO_ECG_UDP_Receiver *recv,
- const ACE_TCHAR *net_if)
- : net_if_ (net_if?ACE_OS::strdup (net_if):0),
- receiver_ (recv),
- observer_ (this)
-{
-}
-
-TAO_ECG_Mcast_EH::~TAO_ECG_Mcast_EH (void)
-{
- ACE_OS::free (this->net_if_);
-}
-
-int
-TAO_ECG_Mcast_EH::open (RtecEventChannelAdmin::EventChannel_ptr ec,
- CORBA::Environment& ACE_TRY_ENV)
-{
- this->ec_ = RtecEventChannelAdmin::EventChannel::_duplicate (ec);
- RtecEventChannelAdmin::Observer_var obs =
- this->observer_._this (ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
-
- this->handle_ = this->ec_->append_observer (obs.in (), ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
-
- return 0;
-}
-
-int
-TAO_ECG_Mcast_EH::close (CORBA::Environment& ACE_TRY_ENV)
-{
- if (this->handle_ == 0)
- return 0;
-
- RtecEventChannelAdmin::Observer_Handle h = this->handle_;
- this->handle_ = 0;
- this->ec_->remove_observer (h, ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
-
- {
- PortableServer::POA_var poa =
- this->observer_._default_POA (ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
- PortableServer::ObjectId_var id =
- poa->servant_to_id (&this->observer_, ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
- poa->deactivate_object (id.in (), ACE_TRY_ENV);
- ACE_CHECK_RETURN (-1);
- }
-
- // Ignore the result, the handler could have been removed by a call
- // to update_consumer() or something similar.
- (void) this->reactor ()->remove_handler (this,
- ACE_Event_Handler::READ_MASK);
-
- if (this->dgram_.close () == -1)
- return -1;
-
- return 0;
-}
-
-int
-TAO_ECG_Mcast_EH::handle_input (ACE_HANDLE)
-{
- return this->receiver_->handle_input (this->dgram_);
-}
-
-ACE_HANDLE
-TAO_ECG_Mcast_EH::get_handle (void) const
-{
- return this->dgram_.get_handle ();
-}
-
-int
-TAO_ECG_Mcast_EH::subscribe (const ACE_INET_Addr &mcast_addr)
-{
- return this->dgram_.subscribe (mcast_addr, 1, this->net_if_);
-}
-
-int
-TAO_ECG_Mcast_EH::unsubscribe (const ACE_INET_Addr &mcast_addr)
-{
- return this->dgram_.unsubscribe (mcast_addr, this->net_if_);
-}
-
-void
-TAO_ECG_Mcast_EH::update_consumer (
- const RtecEventChannelAdmin::ConsumerQOS& sub,
- CORBA::Environment& ACE_TRY_ENV)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- // ACE_DEBUG ((LM_DEBUG,
- // "ECG_Mcast_EH (%t) updating consumer\n"));
-
- // @@ TODO: If we are more careful we may simply subscribe for the
- // new event types and unsubscribe from the old ones...
- this->reactor ()->remove_handler (this,
- ACE_Event_Handler::READ_MASK);
- this->dgram_.close ();
-
- int must_register = 0;
- for (CORBA::ULong i = 0; i < sub.dependencies.length (); ++i)
- {
- const RtecEventComm::EventHeader& header =
- sub.dependencies[i].event.header;
-
- if (0 <= header.type && header.type < ACE_ES_EVENT_UNDEFINED)
- {
- // ACE_DEBUG ((LM_DEBUG,
- // "ECG_Mcast_EH (%t) type = %d skipped\n",
- // header.type));
- continue;
- }
- must_register = 1;
- RtecUDPAdmin::UDP_Addr addr;
-
- this->receiver_->get_addr (header, addr, ACE_TRY_ENV);
- ACE_CHECK;
-
- ACE_INET_Addr inet_addr (addr.port, addr.ipaddr);
- if (this->subscribe (inet_addr) == -1)
- ACE_ERROR ((LM_ERROR,
- "cannot subscribe to %s:%d\n",
- inet_addr.get_host_addr (),
- inet_addr.get_port_number ()));
- // ACE_DEBUG ((LM_DEBUG,
- // "ECG_Mcast_EH (%t) subscribed to %s:%d\n",
- // inet_addr.get_host_addr (),
- // inet_addr.get_port_number ()));
- }
-
- if (must_register)
- this->reactor ()->register_handler (this,
- ACE_Event_Handler::READ_MASK);
-}
-
-void
-TAO_ECG_Mcast_EH::update_supplier (const RtecEventChannelAdmin::SupplierQOS&,
- CORBA::Environment&)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- // Do nothing
-}
-
-// ****************************************************************
-
-TAO_ECG_Mcast_EH::Observer::Observer (TAO_ECG_Mcast_EH* eh)
- : eh_ (eh)
-{
-}
-
-void
-TAO_ECG_Mcast_EH::Observer::update_consumer (
- const RtecEventChannelAdmin::ConsumerQOS& sub,
- CORBA::Environment& ACE_TRY_ENV)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- this->eh_->update_consumer (sub, ACE_TRY_ENV);
-}
-
-void
-TAO_ECG_Mcast_EH::Observer::update_supplier (
- const RtecEventChannelAdmin::SupplierQOS& pub,
- CORBA::Environment& ACE_TRY_ENV)
- ACE_THROW_SPEC ((CORBA::SystemException))
-{
- this->eh_->update_supplier (pub, ACE_TRY_ENV);
-}
-
-// ****************************************************************
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Atomic_Op<TAO_SYNCH_MUTEX,CORBA::ULong>;
-
-template class ACE_Hash_Map_Manager<TAO_ECG_UDP_Request_Index,TAO_ECG_UDP_Request_Entry*,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Manager_Ex<TAO_ECG_UDP_Request_Index, TAO_ECG_UDP_Request_Entry*, ACE_Hash<TAO_ECG_UDP_Request_Index>, ACE_Equal_To<TAO_ECG_UDP_Request_Index>, TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Entry<TAO_ECG_UDP_Request_Index,TAO_ECG_UDP_Request_Entry*>;
-template class ACE_Hash<TAO_ECG_UDP_Request_Index>;
-template class ACE_Equal_To<TAO_ECG_UDP_Request_Index>;
-template class ACE_Hash_Map_Iterator_Base_Ex<TAO_ECG_UDP_Request_Index, TAO_ECG_UDP_Request_Entry*, ACE_Hash<TAO_ECG_UDP_Request_Index>, ACE_Equal_To<TAO_ECG_UDP_Request_Index>, TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator<TAO_ECG_UDP_Request_Index,TAO_ECG_UDP_Request_Entry*,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Iterator_Ex<TAO_ECG_UDP_Request_Index, TAO_ECG_UDP_Request_Entry*, ACE_Hash<TAO_ECG_UDP_Request_Index>, ACE_Equal_To<TAO_ECG_UDP_Request_Index>, TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Reverse_Iterator<TAO_ECG_UDP_Request_Index,TAO_ECG_UDP_Request_Entry*,TAO_SYNCH_MUTEX>;
-template class ACE_Hash_Map_Reverse_Iterator_Ex<TAO_ECG_UDP_Request_Index, TAO_ECG_UDP_Request_Entry*, ACE_Hash<TAO_ECG_UDP_Request_Index>, ACE_Equal_To<TAO_ECG_UDP_Request_Index>, TAO_SYNCH_MUTEX>;
-
-#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Atomic_Op<TAO_SYNCH_MUTEX,CORBA::ULong>
-
-#pragma instantiate ACE_Hash_Map_Manager<TAO_ECG_UDP_Request_Index,TAO_ECG_UDP_Request_Entry*,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Manager_Ex<TAO_ECG_UDP_Request_Index, TAO_ECG_UDP_Request_Entry*, ACE_Hash<TAO_ECG_UDP_Request_Index>, ACE_Equal_To<TAO_ECG_UDP_Request_Index>, TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Entry<TAO_ECG_UDP_Request_Index,TAO_ECG_UDP_Request_Entry*>
-#pragma instantiate ACE_Hash<TAO_ECG_UDP_Request_Index>
-#pragma instantiate ACE_Equal_To<TAO_ECG_UDP_Request_Index>
-#pragma instantiate ACE_Hash_Map_Iterator_Base_Ex<TAO_ECG_UDP_Request_Index, TAO_ECG_UDP_Request_Entry*, ACE_Hash<TAO_ECG_UDP_Request_Index>, ACE_Equal_To<TAO_ECG_UDP_Request_Index>, TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator<TAO_ECG_UDP_Request_Index,TAO_ECG_UDP_Request_Entry*,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Iterator_Ex<TAO_ECG_UDP_Request_Index, TAO_ECG_UDP_Request_Entry*, ACE_Hash<TAO_ECG_UDP_Request_Index>, ACE_Equal_To<TAO_ECG_UDP_Request_Index>, TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator<TAO_ECG_UDP_Request_Index,TAO_ECG_UDP_Request_Entry*,TAO_SYNCH_MUTEX>
-#pragma instantiate ACE_Hash_Map_Reverse_Iterator_Ex<TAO_ECG_UDP_Request_Index, TAO_ECG_UDP_Request_Entry*, ACE_Hash<TAO_ECG_UDP_Request_Index>, ACE_Equal_To<TAO_ECG_UDP_Request_Index>, TAO_SYNCH_MUTEX>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h b/TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h
deleted file mode 100644
index 3631b5e24ad..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h
+++ /dev/null
@@ -1,686 +0,0 @@
-/* -*- C++ -*- */
-/**
- * @file EC_Gateway_UDP.h
- *
- * $Id$
- *
- * @author Carlos O'Ryan (coryan@cs.wustl.edu)
- *
- * Based on previous work by Tim Harrison (harrison@cs.wustl.edu) and
- * other members of the DOC group. More details can be found in:
- *
- * http://doc.ece.uci.edu/~coryan/EC/index.html
- *
- * Define helper classes to propagate events between ECs using
- * either UDP or multicast.
- * The architecture is a bit complicated and deserves some
- * explanation: sending the events over UDP (or mcast) is easy, a
- * Consumer (TAO_ECG_UDP_Sender) subscribes for a certain set of
- * events, its push() method marshalls the event set into a CDR
- * stream that is sent using an ACE_SOCK_CODgram. The subscription
- * set and IP address can be configured.
- * Another helper class (TAO_ECG_UDP_Receiver) acts as a supplier of
- * events; it receives a callback when an event is available on an
- * ACE_SOCK_Dgram, it demarshalls the event and pushes it to the
- * EC. Two ACE_Event_Handler classes are provided that can forward
- * the events to this Supplier: TAO_ECG_Mcast_EH can receive events
- * from a multicast group; TAO_ECG_UDP_EH can receive events from a
- * regular UDP socket.
- *
- * Matching of the events types carried by a multicast group (or IP
- * address) is up to the application. Gateway classes can be
- * implemented to automate this: the EC informs its gateways about
- * local changes in the subscriptions (for example), the Gateway
- * could then consult an administrative server that will inform it
- * which multicast groups carry those event types, it can then
- * create the proper event handlers and TAO_ECG_Receivers. An
- * analogous class can be implemented for the Supplier side.
- *
- * An alternative approach would be to look the current set of
- * multicast groups and the events carried on each, using that
- * information a suitable TAO_ECG_UDP_Receiver can be configured
- * (and of course the Senders on the client side).
- *
- * @todo The class makes an extra copy of the events, we need to
- * investigate if closer collaboration with its collocated EC could
- * be used to remove that copy.
- *
- *
- */
-
-#ifndef TAO_EC_GATEWAY_UDP_H
-#define TAO_EC_GATEWAY_UDP_H
-#include "ace/pre.h"
-
-#include "orbsvcs/RtecUDPAdminS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "orbsvcs/RtecEventChannelAdminS.h"
-
-#include "orbsvcs/Event/event_export.h"
-
-#include "ace/SOCK_Dgram_Mcast.h"
-#include "ace/SOCK_CODgram.h"
-#include "ace/Hash_Map_Manager.h"
-
-class TAO_ECG_UDP_Out_Endpoint;
-
-/**
- * @class TAO_ECG_UDP_Sender
- *
- * @brief Send events received from a "local" EC using UDP.
- *
- * This class connect as a consumer to an EventChannel
- * and it sends the events using UDP, the UDP address can be a
- * normal IP address or it can be a multicast group.
- * The UDP address is obtained from a RtecUDPAdmin::AddrServer
- * class.
- * It marshalls the events using TAO CDR classes.
- *
- * <H2>MESSAGE FORMAT</H2>
- * The messages header are encapsulated using CDR, with the
- * following format:
- * struct Header {
- * octet byte_order_flags;
- * // bit 0 represents the byte order as in GIOP 1.1
- * // bit 1 is set if this is the last fragment
- * unsigned long request_id;
- * // The request ID, senders must not send two requests with
- * // the same ID, senders can be distinguished using recvfrom..
- * unsigned long request_size;
- * // The size of this request, this can be used to pre-allocate
- * // the request buffer.
- * unsgined long fragment_size;
- * // The size of this fragment, excluding the header...
- * unsigned long fragment_offset;
- * // Where does this fragment fit in the complete message...
- * unsigned long fragment_id;
- * // The ID of this fragment...
- * unsigned long fragment_count;
- * // The total number of fragments to expect in this request
- *
- * // @todo This could be eliminated if efficient reassembly
- * // could be implemented without it.
- * octet padding[4];
- *
- * // Ensures the header ends at an 8-byte boundary.
- * }; // size (in CDR stream) = 32
- */
-class TAO_RTEvent_Export TAO_ECG_UDP_Sender : public POA_RtecEventComm::PushConsumer
-{
-public:
- TAO_ECG_UDP_Sender (void);
-
- enum {
- ECG_HEADER_SIZE = 32,
- ECG_MIN_MTU = 32 + 8,
- ECG_MAX_MTU = 65536, // Really optimistic...
- ECG_DEFAULT_MTU = 1024
- };
-
- /// Get the local endpoint used to send the events.
- int get_local_addr (ACE_INET_Addr& addr);
-
- /**
- * To do its job this class requires to know the local EC it will
- * connect to; it also requires to build an RT_Info for the local
- * scheduler.
- * It only keeps a copy of its SupplierProxy, used for later
- * connection and disconnections.
- * @todo part of the RT_Info is hardcoded, we need to make it
- * parametric.
- */
- void init (RtecEventChannelAdmin::EventChannel_ptr lcl_ec,
- RtecUDPAdmin::AddrServer_ptr addr_server,
- TAO_ECG_UDP_Out_Endpoint *endpoint,
- CORBA::Environment &env = TAO_default_environment ());
-
- /**
- * The sender may need to fragment the message, otherwise the
- * network may drop the packets.
- * Setting the MTU can fail if the value is too small (at least the
- * header + 8 bytes must fit).
- */
- int mtu (CORBA::ULong mtu);
- CORBA::ULong mtu (void) const;
-
- /// Disconnect and shutdown the sender, no further connections will
- /// work unless init() is called again.
- void shutdown (CORBA::Environment & = TAO_default_environment ());
-
- /// Connect (or reconnect) to the EC with the given subscriptions.
- void open (RtecEventChannelAdmin::ConsumerQOS &sub,
- CORBA::Environment &env = TAO_default_environment ());
-
- /// Disconnect from the EC, but reconnection is still possible.
- void close (CORBA::Environment &env = TAO_default_environment ());
-
- /// The PushConsumer methods.
- virtual void disconnect_push_consumer (CORBA::Environment & =
- TAO_default_environment ())
- ACE_THROW_SPEC ((CORBA::SystemException));
- virtual void push (const RtecEventComm::EventSet &events,
- CORBA::Environment & = TAO_default_environment ())
- ACE_THROW_SPEC ((CORBA::SystemException));
-
-private:
- /// Return the datagram...
- ACE_SOCK_Dgram& dgram (void);
-
- /**
- * Send one fragment, the first entry in the iovec is used to send
- * the header, the rest of the iovec array should contain pointers
- * to the actual data.
- */
- void send_fragment (const RtecUDPAdmin::UDP_Addr& udp_addr,
- CORBA::ULong request_id,
- CORBA::ULong request_size,
- CORBA::ULong fragment_size,
- CORBA::ULong fragment_offset,
- CORBA::ULong fragment_id,
- CORBA::ULong fragment_count,
- iovec iov[],
- int iovcnt,
- CORBA::Environment &env = TAO_default_environment ());
-
- /**
- * Count the number of fragments that will be required to send the
- * message blocks in the range [begin,end)
- * The maximum fragment payload (i.e. the size without the header is
- * also required); <total_length> returns the total message size.
- */
- CORBA::ULong compute_fragment_count (const ACE_Message_Block* begin,
- const ACE_Message_Block* end,
- int iov_size,
- CORBA::ULong max_fragment_payload,
- CORBA::ULong& total_length);
-
-private:
- /// The remote and the local EC, so we can reconnect when the
- /// subscription list changes.
- RtecEventChannelAdmin::EventChannel_var lcl_ec_;
-
- /// We talk to the EC (as a consumer) using this proxy.
- RtecEventChannelAdmin::ProxyPushSupplier_var supplier_proxy_;
-
- /// We query this object to determine where are the events sent.
- RtecUDPAdmin::AddrServer_var addr_server_;
-
- /// The datagram used to sendto(), this object is *not* owned by the
- /// UDP_Sender.
- TAO_ECG_UDP_Out_Endpoint *endpoint_;
-
- /// The MTU for this sender...
- CORBA::ULong mtu_;
-};
-
-// ****************************************************************
-
-/**
- * @class TAO_ECG_UDP_Out_Endpoint
- *
- * @brief Maintains information about an outgoing endpoint.
- *
- * UDP senders can share a single endpoint to send UDP packets,
- * but there is more state associated with this endpoint than its
- * datagram SAP; for instance we need to keep track of the request
- * id.
- */
-class TAO_RTEvent_Export TAO_ECG_UDP_Out_Endpoint
-{
-public:
- /// Constructor
- TAO_ECG_UDP_Out_Endpoint (void);
-
- /// Constructor
- ~TAO_ECG_UDP_Out_Endpoint (void);
-
- /// Obtain the datagram associated with this endpoint. Clients of
- /// this class must open, and register (if necessary) this datagram.
- ACE_SOCK_Dgram& dgram (void);
-
- /// Obtain the next request id.
- CORBA::ULong next_request_id (void);
-
- /// The endpoint can detect if a data-gram was sent by itself, this
- /// is useful to ignore or remove messages sent by the same process.
- CORBA::Boolean is_loopback (const ACE_INET_Addr& from);
-
-private:
- /// The request id....
- ACE_Atomic_Op<TAO_SYNCH_MUTEX,CORBA::ULong> request_id_generator_;
-
- /// The datagram....
- ACE_SOCK_Dgram dgram_;
-
- /// cache the port-number so we can quickly determine if an event is
- /// coming from another endpoint.
- u_short port_number_;
-
- /// Keep the list of local interfaces, needed for the is_loopback
- /// method.
- size_t if_count_;
- ACE_INET_Addr* ifs_;
-};
-
-// ****************************************************************
-
-/**
- * @class TAO_ECG_UDP_Request_Index
- *
- * @brief Index to the request map.
- *
- * This object is used to index the map of incomplete (due to
- * fragmentation) requests.
- */
-class TAO_RTEvent_Export TAO_ECG_UDP_Request_Index
-{
-public:
- /// default copy ctor, dtor and operator=
- TAO_ECG_UDP_Request_Index (void);
- TAO_ECG_UDP_Request_Index (const ACE_INET_Addr& from,
- CORBA::ULong request_id);
-
- // The ACE_INLINE macros here are to keep g++ 2.7.X happy,
- // otherwise it thinks they are used as inline functions before
- // beign used as such.... Apparently in the template code for the
- // Hash_Map_Manager.
- /// Return a hash value...
- ACE_INLINE u_long hash (void) const;
-
- /// Compare
- ACE_INLINE int operator== (const TAO_ECG_UDP_Request_Index& rhs) const;
- ACE_INLINE int operator!= (const TAO_ECG_UDP_Request_Index& rhs) const;
-
- ACE_INET_Addr from;
- CORBA::ULong request_id;
-};
-
-// ****************************************************************
-
-/**
- * @class TAO_ECG_UDP_Request_Entry
- *
- * @brief Keeps information about an incomplete request.
- *
- * When a request arrives in fragments this object is used to
- * keep track of the incoming data.
- */
-class TAO_RTEvent_Export TAO_ECG_UDP_Request_Entry
-{
-public:
- enum {
- ECG_DEFAULT_FRAGMENT_BUFSIZ = 8
- };
-
- // TAO_ECG_UDP_Request_Entry (void);
- // TAO_ECG_UDP_Request_Entry (const TAO_ECG_UDP_Request_Entry& rhs);
- // TAO_ECG_UDP_Request_Entry& operator=(const TAO_ECG_UDP_Request_Entry& rhs);
- ~TAO_ECG_UDP_Request_Entry (void);
-
- /// Initialize the fragment, allocating memory, etc.
- TAO_ECG_UDP_Request_Entry (CORBA::Boolean byte_order,
- CORBA::ULong request_id,
- CORBA::ULong request_size,
- CORBA::ULong fragment_count);
-
- /// Validate a fragment, it should be rejected if it is invalid..
- int validate_fragment (CORBA::Boolean byte_order,
- CORBA::ULong request_size,
- CORBA::ULong fragment_size,
- CORBA::ULong fragment_offset,
- CORBA::ULong fragment_id,
- CORBA::ULong fragment_count) const;
-
- /// Has <fragment_id> been received?
- int test_received (CORBA::ULong fragment_id) const;
-
- /// Mark <fragment_id> as received, reset timeout counter...
- void mark_received (CORBA::ULong fragment_id);
-
- /// Is the message complete?
- int complete (void) const;
-
- /// Return a buffer for the fragment at offset <fragment_offset>
- char* fragment_buffer (CORBA::ULong fragment_offset);
-
- /// Decode the events, the message must be complete.
- void decode (RtecEventComm::EventSet& event,
- CORBA::Environment &env = TAO_default_environment ());
-
- /// Increment the timeout counter...
- void inc_timeout (void);
-
- /// Get the timeout counter....
- int get_timeout (void) const;
-
-private:
- /// This attributes should remain constant in all the fragments, used
- /// for validation....
- CORBA::Boolean byte_order_;
- CORBA::ULong request_id_;
- CORBA::ULong request_size_;
- CORBA::ULong fragment_count_;
-
- CORBA::ULong timeout_counter_;
- ACE_Message_Block payload_;
-
- /// This is a bit vector, used to keep track of the received buffers.
- CORBA::ULong* received_fragments_;
- int own_received_fragments_;
- CORBA::ULong received_fragments_size_;
- CORBA::ULong default_received_fragments_[ECG_DEFAULT_FRAGMENT_BUFSIZ];
-};
-
-// ****************************************************************
-
-class TAO_ECG_UDP_Receiver;
-
-/**
- * @class TAO_ECG_UDP_TH
- *
- * @brief Timer Handler for the UDP Receivers.
- *
- * This object receives timer events from the reactor and forwards
- * them to the UDP_Receiver; which uses those events to expire old
- * messages that did not receive all their fragments.
- */
-class TAO_RTEvent_Export TAO_ECG_UDP_TH : public ACE_Event_Handler
-{
-public:
- TAO_ECG_UDP_TH (TAO_ECG_UDP_Receiver *recv);
-
- // Reactor callbacks
- virtual int handle_timeout (const ACE_Time_Value& tv,
- const void* act);
-
-private:
- /// We callback to this object when a message arrives.
- TAO_ECG_UDP_Receiver* receiver_;
-};
-
-// ****************************************************************
-
-/**
- * @class TAO_ECG_UDP_Receiver
- *
- * @brief Decodes events from an ACE_SOCK_Dgram and pushes them to the
- * Event_Channel.
- *
- * This supplier receives events from an ACE_SOCK_Dgram, either
- * from a UDP socket or a Mcast group, decodes them and push them
- * to the EC.
- * = REASSEMBLY
- * Whenever an incomplete fragment is received (one with
- * fragment_count > 1) we allocate an entry for the message in an
- * map indexed by (host,port,request_id). The entry contains the
- * buffer, a bit vector to keep track of the fragments received
- * so far, and a timeout counter. This timeout counter is set to
- * 0 on each (new) fragment arrival, and incremented on a regular
- * basis. If the counter reaches a maximum value the message is
- * dropped.
- * Once all the fragments have been received the message is sent
- * up, and the memory reclaimed. The entry is *not* removed until
- * the timer expires (to handle re-transmitions).
- */
-class TAO_RTEvent_Export TAO_ECG_UDP_Receiver : public POA_RtecEventComm::PushSupplier
-{
-public:
- TAO_ECG_UDP_Receiver (void);
-
- /**
- * To do its job this class requires to know the local EC it will
- * connect to; it also requires to build an RT_Info for the local
- * scheduler.
- * The <reactor> is used to receive timeout events..
- * The <ignore_from> endpoint is used to remove events generated by
- * the same process.
- * @todo part of the RT_Info is hardcoded, we need to make it
- * parametric.
- */
- void init (RtecEventChannelAdmin::EventChannel_ptr lcl_ec,
- TAO_ECG_UDP_Out_Endpoint* ignore_from,
- RtecUDPAdmin::AddrServer_ptr addr_server,
- ACE_Reactor *reactor,
- const ACE_Time_Value &expire_interval,
- int max_timeout,
- CORBA::Environment &env = TAO_default_environment ());
-
- /// Disconnect and shutdown the gateway, no further connectsions
- void shutdown (CORBA::Environment & = TAO_default_environment ());
-
- /// Connect to the EC using the given publications lists.
- void open (RtecEventChannelAdmin::SupplierQOS& pub,
- CORBA::Environment &env = TAO_default_environment ());
-
- /// Disconnect to the EC.
- virtual void close (CORBA::Environment &env = TAO_default_environment ());
-
- /**
- * The Event_Handlers call this method when data is available at the
- * socket, the <dgram> must be ready for reading and contain a full
- * event.
- */
- int handle_input (ACE_SOCK_Dgram& dgram);
-
- /// The timer has expired, must update all the unreceived
- /// messages...
- int handle_timeout (const ACE_Time_Value& tv,
- const void* act);
-
- // The PushSupplier method.
- virtual void disconnect_push_supplier (CORBA::Environment & =
- TAO_default_environment ())
- ACE_THROW_SPEC ((CORBA::SystemException));
-
- /// Call the RtecUDPAdmin::AddrServer
- void get_addr (const RtecEventComm::EventHeader& header,
- RtecUDPAdmin::UDP_Addr_out addr,
- CORBA::Environment &env = TAO_default_environment ());
-
-private:
- /// The remote and the local EC, so we can reconnect when the list changes.
- RtecEventChannelAdmin::EventChannel_var lcl_ec_;
-
- /// We talk to the EC (as a consumer) using this proxy.
- RtecEventChannelAdmin::ProxyPushConsumer_var consumer_proxy_;
-
- /// Ignore any events coming from this IP addres.
- TAO_ECG_UDP_Out_Endpoint* ignore_from_;
-
- /// The server used to map event types into multicast groups.
- RtecUDPAdmin::AddrServer_var addr_server_;
-
- typedef ACE_Hash_Map_Manager<TAO_ECG_UDP_Request_Index,
- TAO_ECG_UDP_Request_Entry*,
- TAO_SYNCH_MUTEX> Request_Map;
- typedef ACE_Hash_Map_Entry<TAO_ECG_UDP_Request_Index,
- TAO_ECG_UDP_Request_Entry*> Request_Map_Entry;
-
- /// The map containing all the incoming requests which have been
- /// partially received.
- Request_Map request_map_;
-
- /// To receive the timeouts..
- TAO_ECG_UDP_TH timeout_handler_;
-
- /// The reactor we are using for the timeout handler...
- ACE_Reactor* reactor_;
-
- /// How many timeouts before we expire a message...
- int max_timeout_;
-};
-
-// ****************************************************************
-
-/**
- * @class TAO_ECG_UDP_EH
- *
- * @brief Event Handler for UDP messages.
- *
- * This object receives callbacks from the Reactor when data is
- * available on a UDP socket, it forwards to the ECG_UDP_Receiver
- * which reads the events and transform it into an event.
- */
-class TAO_RTEvent_Export TAO_ECG_UDP_EH : public ACE_Event_Handler
-{
-public:
- TAO_ECG_UDP_EH (TAO_ECG_UDP_Receiver *recv);
-
- /// Open the datagram and register with this->reactor()
- int open (const ACE_INET_Addr& ipaddr,
- int reuse_addr = 0);
-
- /// Close the datagram and unregister with the reactor.
- int close (void);
-
- /**
- * Obtain the dgram, this is one of those "controlled violations of
- * type safety", allowing the user to setup options and gain access
- * to low-level features.
- */
- ACE_SOCK_Dgram &dgram (void);
-
- // Reactor callbacks
- virtual int handle_input (ACE_HANDLE fd);
- virtual ACE_HANDLE get_handle (void) const;
-
-private:
- /// The datagram used to receive the data.
- ACE_SOCK_Dgram dgram_;
-
- /// We callback to this object when a message arrives.
- TAO_ECG_UDP_Receiver* receiver_;
-};
-
-// ****************************************************************
-
-/**
- * @class TAO_ECG_Mcast_EH
- *
- * @brief Event Handler for UDP messages.
- *
- * This object receives callbacks from the Reactor when data is
- * available on the mcast socket, it forwards to the UDP_Receive
- * gateway which reads the events and transform it into an event.
- */
-class TAO_RTEvent_Export TAO_ECG_Mcast_EH : public ACE_Event_Handler
-{
-public:
- /**
- * Constructor, the messages received by this EH are forwarded to
- * the <recv>.
- * It is possible to select the NIC where the multicast messages are
- * expected using <net_if>
- */
- TAO_ECG_Mcast_EH (TAO_ECG_UDP_Receiver *recv,
- const ACE_TCHAR *net_if = 0);
-
- /// Destructor
- virtual ~TAO_ECG_Mcast_EH (void);
-
- /**
- * Register for changes in the EC subscription list.
- * When the subscription list becomes non-empty we join the proper
- * multicast groups (using the receiver to translate between event
- * types and mcast groups) and the class registers itself with the
- * reactor.
- */
- int open (RtecEventChannelAdmin::EventChannel_ptr ec,
- CORBA::Environment &env = TAO_default_environment ());
-
- /**
- * Remove ourselves from the event channel, unsubscribe from the
- * multicast groups, close the sockets and unsubscribe from the
- * reactor.
- */
- int close (CORBA::Environment &env = TAO_default_environment ());
-
- /**
- * Obtain the dgram, this is one of those "controlled violations of
- * type safety", allowing the user to setup options and gain access
- * to low-level features.
- */
- ACE_SOCK_Dgram &dgram (void);
-
- /// Reactor callbacks
- virtual int handle_input (ACE_HANDLE fd);
- virtual ACE_HANDLE get_handle (void) const;
-
- /// The Observer methods
- void update_consumer (const RtecEventChannelAdmin::ConsumerQOS& sub,
- CORBA::Environment &env = TAO_default_environment ())
- ACE_THROW_SPEC ((CORBA::SystemException));
- void update_supplier (const RtecEventChannelAdmin::SupplierQOS& pub,
- CORBA::Environment &env = TAO_default_environment ())
- ACE_THROW_SPEC ((CORBA::SystemException));
-
- /**
- * @class Observer
- *
- * @brief Observe changes in the EC subscriptions.
- *
- * As the subscriptions on the EC change we also change the
- * mcast groups that we join.
- * We could use the TIE classes, but they don't work in all
- * compilers.
- */
- class Observer : public POA_RtecEventChannelAdmin::Observer
- {
- public:
- /// We report changes in the EC subscriptions to the event
- /// handler.
- Observer (TAO_ECG_Mcast_EH* eh);
-
- // The Observer methods
- virtual void update_consumer (
- const RtecEventChannelAdmin::ConsumerQOS& sub,
- CORBA::Environment &env =
- TAO_default_environment ())
- ACE_THROW_SPEC ((CORBA::SystemException));
- virtual void update_supplier (
- const RtecEventChannelAdmin::SupplierQOS& pub,
- CORBA::Environment &env =
- TAO_default_environment ())
- ACE_THROW_SPEC ((CORBA::SystemException));
-
- private:
- /// Our callback object.
- TAO_ECG_Mcast_EH *eh_;
- };
-
-private:
- /// Control the multicast group subscriptions
- int subscribe (const ACE_INET_Addr &mcast_addr);
- int unsubscribe (const ACE_INET_Addr &mcast_addr);
-
-private:
- /// The NIC name used to subscribe for multicast traffic.
- ACE_TCHAR *net_if_;
-
- /// The datagram used to receive the data.
- ACE_SOCK_Dgram_Mcast dgram_;
-
- /// We callback to this object when a message arrives.
- TAO_ECG_UDP_Receiver* receiver_;
-
- /// This object will call us back when the subscription list
- /// changes.
- Observer observer_;
-
- /// Keep the handle of the observer so we can unregister later.
- RtecEventChannelAdmin::Observer_Handle handle_;
-
- /// The Event Channel.
- RtecEventChannelAdmin::EventChannel_var ec_;
-};
-
-#if defined(__ACE_INLINE__)
-#include "EC_Gateway_UDP.i"
-#endif /* __ACE_INLINE__ */
-
-#include "ace/post.h"
-#endif /* ACE_EVENT_CHANNEL_UDP_H */
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.i b/TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.i
deleted file mode 100644
index cea0934a93c..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.i
+++ /dev/null
@@ -1,104 +0,0 @@
-//
-// $Id$
-//
-
-ACE_INLINE
-TAO_ECG_UDP_Out_Endpoint::TAO_ECG_UDP_Out_Endpoint (void)
- : port_number_ (0),
- if_count_ (0),
- ifs_ (0)
-{
-}
-
-ACE_INLINE ACE_SOCK_Dgram&
-TAO_ECG_UDP_Out_Endpoint::dgram (void)
-{
- return this->dgram_;
-}
-
-ACE_INLINE CORBA::ULong
-TAO_ECG_UDP_Out_Endpoint::next_request_id (void)
-{
- return this->request_id_generator_++;
-}
-
-// ****************************************************************
-
-ACE_INLINE ACE_SOCK_Dgram&
-TAO_ECG_UDP_Sender::dgram (void)
-{
- return this->endpoint_->dgram ();
-}
-
-ACE_INLINE CORBA::ULong
-TAO_ECG_UDP_Sender::mtu (void) const
-{
- return this->mtu_;
-}
-
-// ****************************************************************
-
-ACE_INLINE
-TAO_ECG_UDP_Request_Index::TAO_ECG_UDP_Request_Index (void)
- : request_id (0)
-{
-}
-
-ACE_INLINE
-TAO_ECG_UDP_Request_Index::TAO_ECG_UDP_Request_Index (const ACE_INET_Addr& from_,
- CORBA::ULong request_id_)
- : from (from_),
- request_id (request_id_)
-{
-}
-
-ACE_INLINE u_long
-TAO_ECG_UDP_Request_Index::hash (void) const
-{
- return ((from.get_ip_address() << 24)
- | (from.get_port_number () << 8)
- | (request_id & 0x000000ff));
-}
-
-ACE_INLINE int
-TAO_ECG_UDP_Request_Index::operator== (const TAO_ECG_UDP_Request_Index& rhs) const
-{
- return (this->from == rhs.from &&
- this->request_id == rhs.request_id);
-}
-
-ACE_INLINE int
-TAO_ECG_UDP_Request_Index::operator!= (const TAO_ECG_UDP_Request_Index& rhs) const
-{
- return !(*this == rhs);
-}
-
-// ****************************************************************
-
-ACE_INLINE void
-TAO_ECG_UDP_Request_Entry::inc_timeout (void)
-{
- this->timeout_counter_++;
-}
-
-ACE_INLINE int
-TAO_ECG_UDP_Request_Entry::get_timeout (void) const
-{
- return this->timeout_counter_;
-}
-
-// ****************************************************************
-
-ACE_INLINE ACE_SOCK_Dgram&
-TAO_ECG_UDP_EH::dgram (void)
-{
- return this->dgram_;
-}
-
-// ****************************************************************
-
-ACE_INLINE ACE_SOCK_Dgram&
-TAO_ECG_Mcast_EH::dgram (void)
-{
- return this->dgram_;
-}
diff --git a/TAO/orbsvcs/orbsvcs/Event/Makefile.am b/TAO/orbsvcs/orbsvcs/Event/Makefile.am
deleted file mode 100644
index c3d26dff635..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/Makefile.am
+++ /dev/null
@@ -1,149 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for TAO's Event Channel library
-##
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-lib_LTLIBRARIES = libTAO_Event.la
-
-libTAO_Event_la_LDADD = \
- $(top_builddir)/ace/libACE.la $(top_builddir)/TAO/tao/libTAO.la
-
-libTAO_Event_la_SOURCES = \
- BCU.cpp \
- Dispatching_Modules.cpp \
- EC_Basic_Factory.cpp \
- EC_Basic_Filter_Builder.cpp \
- EC_Busy_Lock.cpp \
- EC_Command.cpp \
- EC_Conjunction_Filter.cpp \
- EC_ConsumerAdmin.cpp \
- EC_Disjunction_Filter.cpp \
- EC_Dispatching.cpp \
- EC_Event_Channel.cpp \
- EC_Factory.cpp \
- EC_Filter.cpp \
- EC_Filter_Builder.cpp \
- EC_Gateway.cpp \
- EC_Gateway_UDP.cpp \
- EC_Null_Factory.cpp \
- EC_ObserverStrategy.cpp \
- EC_Per_Supplier_Filter.cpp \
- EC_ProxyConsumer.cpp \
- EC_ProxyPushSupplier_Set.cpp \
- EC_ProxyPushSupplier_Set_T.cpp \
- EC_ProxySupplier.cpp \
- EC_QOS_Info.cpp \
- EC_Reactive_Timeout_Generator.cpp \
- EC_SupplierAdmin.cpp \
- EC_SupplierFiltering.cpp \
- EC_Timeout_Filter.cpp \
- EC_Timeout_Generator.cpp \
- EC_Type_Filter.cpp \
- EC_UDP_Admin.cpp \
- Event_Channel.cpp \
- Event_Manip.cpp \
- GPlot_File.cpp \
- Local_ESTypes.cpp \
- Memory_Pools.cpp \
- Module_Factory.cpp \
- RT_Task.cpp \
- ReactorTask.cpp \
- Timer_Module.cpp
-
-noinst_HEADERS = \
- BCU.h \
- Debug_Macros.h \
- Dispatching_Modules.h \
- Dispatching_Modules.i \
- EC_Basic_Factory.h \
- EC_Basic_Factory.i \
- EC_Basic_Filter_Builder.h \
- EC_Basic_Filter_Builder.i \
- EC_Busy_Lock.h \
- EC_Busy_Lock.i \
- EC_Command.h \
- EC_Command.i \
- EC_Conjunction_Filter.h \
- EC_Conjunction_Filter.i \
- EC_ConsumerAdmin.h \
- EC_ConsumerAdmin.i \
- EC_Disjunction_Filter.h \
- EC_Disjunction_Filter.i \
- EC_Dispatching.h \
- EC_Dispatching.i \
- EC_Event_Channel.h \
- EC_Event_Channel.i \
- EC_Factory.h \
- EC_Factory.i \
- EC_Filter.h \
- EC_Filter.i \
- EC_Filter_Builder.h \
- EC_Filter_Builder.i \
- EC_Gateway.h \
- EC_Gateway_UDP.h \
- EC_Gateway_UDP.i \
- EC_Null_Factory.h \
- EC_Null_Factory.i \
- EC_ObserverStrategy.h \
- EC_ObserverStrategy.i \
- EC_Per_Supplier_Filter.h \
- EC_Per_Supplier_Filter.i \
- EC_ProxyConsumer.h \
- EC_ProxyConsumer.i \
- EC_ProxyPushSupplier_Set.h \
- EC_ProxyPushSupplier_Set.i \
- EC_ProxyPushSupplier_Set_T.h \
- EC_ProxyPushSupplier_Set_T.i \
- EC_ProxySupplier.h \
- EC_ProxySupplier.i \
- EC_QOS_Info.h \
- EC_QOS_Info.i \
- EC_Reactive_Timeout_Generator.h \
- EC_Reactive_Timeout_Generator.i \
- EC_SupplierAdmin.h \
- EC_SupplierAdmin.i \
- EC_SupplierFiltering.h \
- EC_SupplierFiltering.i \
- EC_Timeout_Filter.h \
- EC_Timeout_Filter.i \
- EC_Timeout_Generator.h \
- EC_Timeout_Generator.i \
- EC_Type_Filter.h \
- EC_Type_Filter.i \
- EC_UDP_Admin.h \
- Event_Channel.h \
- Event_Channel.i \
- Fast_Reactor.h \
- GPlot_File.h \
- GPlot_File.i \
- Local_ESTypes.h \
- Local_ESTypes.i \
- Memory_Pools.h \
- Memory_Pools.i \
- Module_Factory.h \
- RT_Task.h \
- RT_Task.i \
- ReactorTask.h \
- Timer_Module.h \
- Timer_Module.i
-
-EXTRA_DIST = README
-
-## Clean up some additional files/directories possibly created during
-## the configure script tests.
-clean-local:
- -rm -f *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core
- -rm -rf ptrepository Templates.DB gcctemp.c gcctemp so_locations
-
diff --git a/TAO/orbsvcs/orbsvcs/Event/README b/TAO/orbsvcs/orbsvcs/Event/README
deleted file mode 100644
index a4c88f35452..00000000000
--- a/TAO/orbsvcs/orbsvcs/Event/README
+++ /dev/null
@@ -1,337 +0,0 @@
-# $Id$
-
- The new implementation of the Event Channel
-
-= Abstract
-
- The current implementation of TAO's real-time Event Channel
-has proven to be efficient, generally reliable and in general bug
-free; but it was designed to solve the forces in one problem domain
-(hard real-time avionics), so performance considerations (latency)
-were the main concern over other requirements.
- A new implementation of the real-time Event Channel is
-proposed that will preserve the performance of the the original event
-channel, yet it will be properly strategized so it can be adapted and
-extended to other domains (such as distributed interactive
-simulation).
-
-= Thanks to Irfan for providing feedback on this document and
- designing the delayed operation for the event dispatching.
-
-= The module architecture
-
- The current event channel is based on a series of modules
-organized in a stack, each module is supposed to execute a single
-task, for instance correlation; and could potentially be extracted or
-replaced to adapt the EC to new requirements. Unfortunately the
-modules keep explicit references to the modules above them and below
-them, including the exact type of the module. Even though adding base
-classes to represent the modules in a generic way would solve the
-syntactic problems of this architecture, the relation between the
-modules have semantic significance and they cannot simply be organized
-in an arbitrary way; even more, we have found that only a few
-operations on each module need to be strategized, and that using
-Template Method or Strategy on each module would be a better solution
-than to replace the module wholesale.
-
-= The new architecture
-
- The new Event Channel will consist of the following
-components:
-
-- The Filter object: each consumer will have a filter object, this
- filters are organized in a hierarchical structure, for instance a
- disjunction filter has N children and accepts an event if any of its
- children do, in contrast a conjunction filter will wait until all
- its children have accepted the event.
- The filter hierarchy for a particular consumer is created using
- the Builder pattern, i.e. a separate class creates the hierarchy
- from the ConsumerQOS specification. The user can add new filtering
- strategies (such as "wait until this events arrive in this
- sequence" or "do not accept events from this source") by providing a
- new filter and a new Filter_Builder objects.
- Notice that the per-consumer filters were already present in the
- old event channel, the main difference is that all events went
- through the correlation module, in many cases just to check that the
- consumer did not require correlation; the new scheme will eliminate
- that extra test. More importantly, if the event was accepted a
- ACE_ES_Dispatch_Request was dynamically allocated and passed to the
- dispatching module; this was necessary because some implementations
- of the dispatching module required to enqueue the event. Clearly
- the allocation of some node for the queue is a decision better left
- for the dispatching module, thus avoiding memory allocations in the
- single threaded case.
- Another importat feature of this design is that in the case where
- the consumer only has disjunctive filtering no copies of the data
- are needed (until we arrive to the dispatching module).
-
- This filter objects can also be used to strategize the priority
- assignment in conjuctive and disjunctive correlations; for example,
- some consumers may require a fixed priority for disjunctions or the
- highest priority for conjunctions, instead of just the priority of
- the last event.
-
- Another feature that can be implemented using filters is a
- per-consumer buffering policy, thanks to John Aughey
- <jaughey@mdc.com> for putting this idea in my head.
-
-- The Dispatching module: as in the original event channel
- implementation there are multiple ways to dispatch events, this
- feature is preserved with only a few syntactic changes.
- Possible implementations: Reactive Dispatching, a single queue
- served by multiple threads, multiple queues serviced by threads at
- different priorities.
- An interesting challenge to solve in this module is to minimize
- the amount of copying of events, for instance:
- + Reactive dipatching does not require any copies for an event,
- the event is simply pushed from the supplier to the consumer.
- + If the dispatching module has any form of queueing then at least
- one copy must be made. Ideally we want to avoid making multiple
- copies for each consumer interested in the event; a potential
- solution is to let the dispatching module create up front a
- "reference counted" version of the event; this reference counted
- version is used by the SupplierFiltering strategy to push to
- each consumer.
- @@ TODO: how do we match this with the filtering interfaces?
-
- Another important aspect of dispatching:
- + If the dispatcher is reactive then there is potential for
- dead-lock, the consumer may decide to disconnect itself during
- the upcall or to dispatch another event.
- The dispatching module will call back the EC_ProxyPushSupplier
- to handle the final dispatch.
- With Reactive dispatching the ProxyPushSupplier should use
- recursive locks, with non-reactive dispatching regular locks
- could be enough.
- @@ TODO ensure that only the right people calls this method.
-
-- The ConsumerAdmin module: this object acts as a factory for the
- ProxyPushSupplier objects (i.e. the interface between the event
- channel and its consumers); the object delegates on the event
- channel implementation to create the objects, and provides a simple
- mechanism to control the object activation in different POAs: it
- queries the Event Channel for the right POA to use.
- Possible implementations: it could keep the consumers classified
- by the events they consume, minimizing the time required to
- connect/disconnect a consumer or to dispatch an event
- [see the relationship with SupplierFiltering]
-
-- The SupplierAdmin module: this is a factory for the
- ProxyPushConsumer objects (again delegating on the event channel);
- it also provides the user with control over the proxy activation.
- It provides two template methods that can be used to:
- + Inform all supplier that a consumer has connected/disconnected.
- + Inform only the suppliers that are publish the events in the
- consumer.
- + Do not inform the suppliers.
- Possible implementations: it could keep the supplier classified
- by the events they publish, minimizing the time to
- connect/disconnect a supplier.
-
-- The ProxyPushSupplier object delegates on the filter to do most of
- its job, but it can be subclassed to provide event counting and
- similar features. Notice that providing the Supplier with a
- Null_Filter moves all the filtering responsability to the
- ProxyPushConsumers.
- Possible implementations: use templates to define the kind of
- locking strategy.
-
-- The ProxyPushConsumer object is strategized to provide different
- ways to handle (close to the supplier) filtering (see the
- SupplierFiltering description).
- Possible implementations: use templates to define the kind of
- locking strategy.
-
-- The SupplierFiltering classes are used to control the filtering
- strategy close the the Suppliers (remember that the object close to
- the supplier is the ProxyPushConsumer). This object receives an
- event set from the PushSupplier and passes it up to the right set of
- ProxyPushSupplier (the Consumer representatives).
- Possible implementations:
- + Each one keeps track of the consumers possibly interested in
- the events published here; in this way the dispatching is
- proportional to the number of consumers interested in the
- event, not the total number of consumers.
- + Use the global consumer list to find objects interested in the
- current event; it is simpler, scales betters memory-wise, but
- will perform worse than the first alternative, unless most
- consumers are interested in most events.
- + Use a global list for each type of event, thus amortizing the
- cost between all the suppliers that have an event.
- + Keep a single list of consumers, but do not try to filter them
- by source or type, the ProxyPushSuppliers are then responsible
- for filtering (using the EC_Filter objects).
-
- An interesting aspect of this object is how is it to manage event
- dispatching: will it iterate over the set of consumers (holding a
- lock?) and just dispatch the event to each one? Will it make a copy
- of the consumers (reducing the duration of the lock)? We forsee
- several alternatives:
-
- + Simply iterate over the set of consumers for the current
- supplier (can be a global set), holding a lock as we go.
- This is potentially the most efficient version, but it can
- suffer from priority inversion because the lock is held for
- a long time.
- It can also produce dead-locks if there is no queueing in
- the dispatching module.
-
- + Make a copy of the current set of consumers, unfortunately
- this could requires a memory allocation, and potentially
- increasing the reference count on the consumers.
- An interesting idea to explore is to keep a work array in
- TSS storage, this array can be used to copy the consumers
- from the shared resource.
- Since the size of the array can be determined before hand
- (using the subscriptions and publications), the array could
- be pre-allocated to the maximum size of all the supplier, or
- simply grown on demand. For hard real-time applications the
- initial size of this array could be configured at compile
- time, and chosen so that no re-allocation is ever needed.
- In any case the shared resource is held for a shorter
- time, just long enough to copy the necessary elements into
- the array, the dispatching to each consumer is done after
- releasing the global lock.
-
- + Mark the list as "busy" so no changes will be made to it
- while we iterate over it. Instead, any changes to the list
- are "posted" in a list of Command objects.
- After finishing the iteration the lock is acquired again,
- the is is marked as "idle" and any posted operations are
- executed.
- "busy" and "idle" could be implemented using a reference
- count; so multiple "reader" threads can go in [with a
- limit?]
- Drawbacks: can lead to dead-lock if the HWM is reached when
- a consumer that also plays the Supplier role pushes an event
- as part of its upcall.
- Can give too much priority to the writes if the HWM is 1.
-
-- The Timer_Module: this is used by the EC_Filter_Builder to create
- per-consumer timeout events. It will simply push events directly to
- the EC_ProxyPushSupplier objects.
-
-- The Event_Channel: this class acts as a mediator between the
- components above. It is completely strategized by an abstract
- factory (EC_Factory) that creates each one of the objects already
- described, in fact, the factory methods in the Event Channel are
- implemented as simple delegation on the EC_Factory.
-
-- The EC_Factory: using this class the user can strategize and control
- all the object creations in the EC; notice that this is an abstract
- factory because not all the combinations of the classes described
- make sense.
-
-= Interactions
-
- The architecture described above is a bit hard to understand if we
- don't describe the interaction between all the components above:
-
- - Dispatching an event: the path to dispatch an event starts with an
- EC_ProxyPushConsumer that receives the event from its supplier,
- it simply delegates on the SupplierFiltering object bound to it at
- creation time.
- The SupplierFiltering object pushes the event [since the event is
- a set it has to push one event at a time] to the a set of
- ProxyPushSuppliers [recall that this are the consumer ambassadors]
- They pass the event through their own set of filters, if the
- filter accepts the event it callbacks on the ProxyPushSupplier.
- At that point the ProxyPushSupplier requests that the
- DispatchingModule pushes the event.
- The dispatching module finally pushes the event to the consumer.
-
- - Adding a consumer:
- The client calls for_consumers() and obtain_push_supplier() to
- obtain a reference to the [global] ConsumerAdmin object and to its
- own ProxyPushSupplier object.
- The ProxyPushSupplier object is initially empty, once the user
- calls connect_push_consumer() on it the set of filters is created
- using the Filter_Builder strategy and the user supplied QoS
- parameters.
- At this point the ProxyPushSupplier becomes "connected" and it
- uses the Event_Channel implementation to broadcast its
- subscriptions to all the Suppliers in the set.
-
- - Adding a supplier:
-
- - Removing a consumer:
-
- - Removing a supplier:
-
- - Shutting down the event channel:
-
-= Performance
-
- The main sources of overhead in the EC are:
-
- - Locking
- - Memory allocation
- - Data copying
-
- the new design do not neglect this issues, for instance:
-
- - The EC_Factory creates strategized locks, so the single threaded
- implementations can perform optimally.
-
- - Each consumer has its own filters, so no locking is required at
- each filter (just one for the consumer).
-
- - In the common case data can be pushed from the original supplier
- to the dispatching module without any data copies or memory
- allocations, at that point the dispatching module can make the
- copies it deems necessary to push the data ahead.
-
- - The filtering mechanism will provide two data paths, one for the
- data that is owned by the filter or the event channel (and thus
- require no copying) and one for external data; this will be used
- in the dispatching module to minimize data copying too.
-
- - Features that are not important for production code can be plugged
- out, for example: timestamping (for performance analysis) can be
- implemented as a Decorator on the ProxyPushConsumer and the
- Dispatching classes. Similarly the configuration runs require
- that the EC call the scheduler with the subscription and
- correlation information, this calls can be completely removed for
- the production code.
-
- - Initial experiments show that the new EC can (in some
- configurations) dispatch one event without a single memory
- allocation, contrast this with the 8 memory allocations in the old
- EC.
-
- - Initial experiments show that the new EC can (in some
- configurations) dispatch one event with 0 locks for single
- threaded applications and we estimate that less than 5 locks
- (exact numbers are not available yet) will be required for the
- multi-threaded version.
- Contrast this with the 28 locks required by the old EC.
-
- - Initial experiments suggest that the EC can filter and dispatch
- events with no data copying (with Reactive dispatching) and with
- only one data copy (if Prioritized dispatching is used).
- We believe that even this extra data copy could be minimized in
- the multi-threaded case (or at least limited to the event header
- and avoided for the event payload).
-
- In general we expect that the performance of the new real-time
-Event Service will be equal or better than the previous
-implementation. As we mention above initial experiments suggest that
-this is going to be the case.
-
-= Locking revisited
-
- There are several ways to support strategized locking, for example:
-
- - Each class is implemented without any locking, all the locks must
- be taken outside the context of the class.
- - Each class is implemented as a base class without any locking,
- derived classes provide the right kind of locking [inflexible]
- - Each class can be Decorated with a version that supports locking
- [inefficient]
- - Each class parametric over the kind of locking [complex]
- - Each class has an strategy (ACE_Lock) to do the locking [easier]
-
- we will try the last alternative first, if the performance
-penalty in the case with no locking (or in the case where the exact
-locking type is known well in advance) proves to be too high we can
-explore the other solutions.
diff --git a/TAO/orbsvcs/orbsvcs/Makefile.RTEvent b/TAO/orbsvcs/orbsvcs/Makefile.RTEvent
deleted file mode 100644
index 27b8e05fe91..00000000000
--- a/TAO/orbsvcs/orbsvcs/Makefile.RTEvent
+++ /dev/null
@@ -1,13159 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-#----------------------------------------------------------------------------
-ifndef TAO_ROOT
- TAO_ROOT = $(ACE_ROOT)/TAO
-endif # ! TAO_ROOT
-
-MAKEFILE = Makefile.RTEvent
-LIBNAME = libTAO_RTEvent
-LIB = $(LIBNAME).a
-SHLIB = $(LIBNAME).$(SOEXT)
-
-VPATH=.:Event
-
-ACE_SHLIBS = -lTAO_Svc_Utils -lTAO_PortableServer -lTAO -lACE
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(TAO_ROOT)/rules.tao.GNU
-
-# On non-Windows environment, we should at least define
-# the export_include IDL flag.
-override TAO_IDLFLAGS += \
- -I$(TAO_ROOT) -Ge 1 \
- -Wb,export_macro=TAO_RTEvent_Export \
- -Wb,export_include=Event/event_export.h \
- -Wb,pre_include=ace/pre.h \
- -Wb,post_include=ace/post.h
-
-
-IDL_FILES += \
- RtecDefaultEventData \
- RtecEventComm \
- RtecEventChannelAdmin \
- RtecUDPAdmin
-
-ifneq ($(ACE_HAS_GNUG_PRE_2_8),1)
-CPP_SRCS += \
- Event/EC_Event_Channel \
- Event/EC_ConsumerAdmin \
- Event/EC_SupplierAdmin \
- Event/EC_ProxyConsumer \
- Event/EC_ProxySupplier \
- Event/EC_Supplier_Filter \
- Event/EC_Supplier_Filter_Builder \
- Event/EC_Trivial_Supplier_Filter \
- Event/EC_Filter \
- Event/EC_Filter_Builder \
- Event/EC_Dispatching \
- Event/EC_Factory \
- Event/EC_QOS_Info \
- Event/EC_Null_Factory \
- Event/EC_Disjunction_Filter \
- Event/EC_Conjunction_Filter \
- Event/EC_Negation_Filter \
- Event/EC_Type_Filter \
- Event/EC_Basic_Filter_Builder \
- Event/EC_Basic_Factory \
- Event/EC_Default_Factory \
- Event/EC_ObserverStrategy \
- Event/EC_Per_Supplier_Filter \
- Event/EC_Timeout_Filter \
- Event/EC_Timeout_Generator \
- Event/EC_Reactive_Timeout_Generator \
- Event/EC_MT_Dispatching \
- Event/EC_Dispatching_Task \
- Event/EC_Scheduling_Strategy \
- Event/EC_Null_Scheduling \
- Event/EC_ConsumerControl \
- Event/EC_SupplierControl \
- Event/EC_Reactive_ConsumerControl \
- Event/EC_Reactive_SupplierControl \
- Event/EC_Bitmask_Filter \
- Event/EC_Masked_Type_Filter \
- Event/EC_Prefix_Filter_Builder \
- Event/EC_And_Filter
-endif # ACE_HAS_GNUG_PRE_2_8
-
-CPP_SRCS += \
- Event_Utilities \
- Event/EC_Gateway \
- Event/EC_Gateway_UDP \
- Event/EC_UDP_Admin \
-
-IDL_SRC = \
- $(addsuffix S.cpp, $(IDL_FILES)) \
- $(addsuffix C.cpp, $(IDL_FILES))
-FILES = $(CPP_SRCS)
-DEFS = $(addsuffix .h,$(FILES))
-LSRC = $(addsuffix .cpp,$(FILES)) $(IDL_SRC)
-
-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 (and local hacks)
-#----------------------------------------------------------------------------
-
-LDFLAGS += -L$(TAO_ROOT)/tao -L$(TAO_ROOT)/orbsvcs/orbsvcs
-CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs \
- -I$(TAO_ROOT)/orbsvcs/orbsvcs/ESF
-
-#
-# Extra dependencies not caught by make depend.
-#
-$(foreach ext, $(IDL_EXT), RtecScheduler$(ext)): TimeBase.idl
-$(foreach ext, $(IDL_EXT), RtecEventComm$(ext)): TimeBase.idl
-$(foreach ext, $(IDL_EXT), RtecEventComm$(ext)): RtecDefaultEventData.idl
-$(foreach ext, $(IDL_EXT), RtecUDPAdmin(ext)): RtecEventComm.idl
-$(foreach ext, $(IDL_EXT), RtecEventChannelAdmin$(ext)): TimeBase.idl
-$(foreach ext, $(IDL_EXT), RtecEventChannelAdmin$(ext)): RtecBase.idl
-$(foreach ext, $(IDL_EXT), RtecEventChannelAdmin$(ext)): RtecEventComm.idl
-
-.PRECIOUS: $(foreach file, $(IDL_FILES), $(foreach ext, $(IDL_EXT), $(file)$(ext))))
-
-realclean: clean
- -$(RM) $(foreach file, $(IDL_FILES), $(foreach ext, $(IDL_EXT), $(file)$(ext)))
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/EC_Event_Channel.o .obj/EC_Event_Channel.so .shobj/EC_Event_Channel.o .shobj/EC_Event_Channel.so: Event/EC_Event_Channel.cpp \
- Event/EC_Event_Channel.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Factory.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- Event/EC_Factory.i Event/EC_Defaults.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommC.h \
- RtecEventCommC.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Event_Channel.i Event/EC_Default_Factory.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- Event/EC_Default_Factory.i Event/EC_Dispatching.h \
- Event/event_export.h Event/EC_Dispatching.i Event/EC_ConsumerAdmin.h \
- Event/EC_ProxySupplier.h \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i \
- ESF/ESF_Peer_Admin.h \
- ESF/ESF_Proxy_Admin.h \
- ESF/ESF_Proxy_Collection.h \
- ESF/ESF_Proxy_Collection.i \
- ESF/ESF_Proxy_Collection.cpp \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- ESF/ESF_Proxy_Admin.i \
- ESF/ESF_Proxy_Admin.cpp \
- ESF/ESF_Shutdown_Proxy.h \
- ESF/ESF_Shutdown_Proxy.i \
- ESF/ESF_Shutdown_Proxy.cpp \
- ESF/ESF_Peer_Admin.i \
- ESF/ESF_Peer_Admin.cpp \
- ESF/ESF_Peer_Workers.h \
- ESF/ESF_Peer_Workers.i \
- ESF/ESF_Peer_Workers.cpp \
- Event/EC_ConsumerAdmin.i Event/EC_SupplierAdmin.h \
- Event/EC_ProxyConsumer.h Event/EC_ProxyConsumer.i \
- Event/EC_SupplierAdmin.i Event/EC_Timeout_Generator.h \
- Event/EC_Timeout_Filter.h Event/EC_Filter.h Event/EC_QOS_Info.h \
- Event/EC_QOS_Info.i Event/EC_Timeout_Filter.i \
- Event/EC_Timeout_Generator.i Event/EC_ObserverStrategy.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- Event/EC_ObserverStrategy.i Event/EC_ConsumerControl.h \
- Event/EC_ConsumerControl.i Event/EC_SupplierControl.h \
- Event/EC_SupplierControl.i \
- $(ACE_ROOT)/ace/Dynamic_Service.h \
- $(ACE_ROOT)/ace/Dynamic_Service_Base.h \
- $(ACE_ROOT)/ace/Dynamic_Service.i \
- $(ACE_ROOT)/ace/Dynamic_Service.cpp
-
-.obj/EC_ConsumerAdmin.o .obj/EC_ConsumerAdmin.so .shobj/EC_ConsumerAdmin.o .shobj/EC_ConsumerAdmin.so: Event/EC_ConsumerAdmin.cpp \
- Event/EC_ConsumerAdmin.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_ProxySupplier.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataC.h \
- Event/event_export.h \
- RtecDefaultEventDataC.i \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommC.h \
- RtecEventCommC.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i \
- ESF/ESF_Peer_Admin.h \
- ESF/ESF_Proxy_Admin.h \
- ESF/ESF_Proxy_Collection.h \
- ESF/ESF_Proxy_Collection.i \
- ESF/ESF_Proxy_Collection.cpp \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- ESF/ESF_Proxy_Admin.i \
- ESF/ESF_Proxy_Admin.cpp \
- ESF/ESF_Shutdown_Proxy.h \
- ESF/ESF_Shutdown_Proxy.i \
- ESF/ESF_Shutdown_Proxy.cpp \
- ESF/ESF_Peer_Admin.i \
- ESF/ESF_Peer_Admin.cpp \
- ESF/ESF_Peer_Workers.h \
- ESF/ESF_Peer_Workers.i \
- ESF/ESF_Peer_Workers.cpp \
- Event/event_export.h Event/EC_ConsumerAdmin.i \
- Event/EC_ProxyConsumer.h Event/EC_ProxyConsumer.i \
- Event/EC_Event_Channel.h Event/EC_Factory.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 \
- Event/EC_Factory.i Event/EC_Defaults.h Event/EC_Event_Channel.i
-
-.obj/EC_SupplierAdmin.o .obj/EC_SupplierAdmin.so .shobj/EC_SupplierAdmin.o .shobj/EC_SupplierAdmin.so: Event/EC_SupplierAdmin.cpp \
- Event/EC_SupplierAdmin.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_ProxyConsumer.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataC.h \
- Event/event_export.h \
- RtecDefaultEventDataC.i \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommC.h \
- RtecEventCommC.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxyConsumer.i \
- ESF/ESF_Peer_Admin.h \
- ESF/ESF_Proxy_Admin.h \
- ESF/ESF_Proxy_Collection.h \
- ESF/ESF_Proxy_Collection.i \
- ESF/ESF_Proxy_Collection.cpp \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- ESF/ESF_Proxy_Admin.i \
- ESF/ESF_Proxy_Admin.cpp \
- ESF/ESF_Shutdown_Proxy.h \
- ESF/ESF_Shutdown_Proxy.i \
- ESF/ESF_Shutdown_Proxy.cpp \
- ESF/ESF_Peer_Admin.i \
- ESF/ESF_Peer_Admin.cpp \
- ESF/ESF_Peer_Workers.h \
- ESF/ESF_Peer_Workers.i \
- ESF/ESF_Peer_Workers.cpp \
- Event/event_export.h Event/EC_SupplierAdmin.i \
- Event/EC_ProxySupplier.h Event/EC_ProxySupplier.i \
- Event/EC_Event_Channel.h Event/EC_Factory.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 \
- Event/EC_Factory.i Event/EC_Defaults.h Event/EC_Event_Channel.i
-
-.obj/EC_ProxyConsumer.o .obj/EC_ProxyConsumer.so .shobj/EC_ProxyConsumer.o .shobj/EC_ProxyConsumer.so: Event/EC_ProxyConsumer.cpp \
- Event/EC_ProxyConsumer.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataC.h \
- Event/event_export.h \
- RtecDefaultEventDataC.i \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommC.h \
- RtecEventCommC.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxyConsumer.i Event/EC_Event_Channel.h Event/EC_Factory.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 \
- Event/EC_Factory.i Event/EC_Defaults.h Event/EC_Event_Channel.i \
- Event/EC_Supplier_Filter.h \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- Event/event_export.h Event/EC_Supplier_Filter.i \
- Event/EC_Supplier_Filter_Builder.h Event/EC_Supplier_Filter_Builder.i
-
-.obj/EC_ProxySupplier.o .obj/EC_ProxySupplier.so .shobj/EC_ProxySupplier.o .shobj/EC_ProxySupplier.so: Event/EC_ProxySupplier.cpp \
- Event/EC_ProxySupplier.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataC.h \
- Event/event_export.h \
- RtecDefaultEventDataC.i \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommC.h \
- RtecEventCommC.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i Event/EC_Dispatching.h Event/event_export.h \
- Event/EC_Dispatching.i Event/EC_Filter_Builder.h \
- Event/EC_Filter_Builder.i Event/EC_QOS_Info.h Event/EC_QOS_Info.i \
- Event/EC_Event_Channel.h Event/EC_Factory.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 \
- Event/EC_Factory.i Event/EC_Defaults.h Event/EC_Event_Channel.i \
- Event/EC_Scheduling_Strategy.h Event/EC_Scheduling_Strategy.i \
- Event/EC_ConsumerControl.h Event/EC_ConsumerControl.i \
- ESF/ESF_RefCount_Guard.h \
- ESF/ESF_RefCount_Guard.i \
- ESF/ESF_RefCount_Guard.cpp \
- ESF/ESF_Proxy_RefCount_Guard.h \
- ESF/ESF_Proxy_RefCount_Guard.i \
- ESF/ESF_Proxy_RefCount_Guard.cpp
-
-.obj/EC_Supplier_Filter.o .obj/EC_Supplier_Filter.so .shobj/EC_Supplier_Filter.o .shobj/EC_Supplier_Filter.so: Event/EC_Supplier_Filter.cpp \
- Event/EC_Supplier_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- Event/event_export.h Event/EC_Supplier_Filter.i \
- Event/EC_ProxySupplier.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i Event/EC_QOS_Info.h Event/EC_QOS_Info.i
-
-.obj/EC_Supplier_Filter_Builder.o .obj/EC_Supplier_Filter_Builder.so .shobj/EC_Supplier_Filter_Builder.o .shobj/EC_Supplier_Filter_Builder.so: Event/EC_Supplier_Filter_Builder.cpp \
- Event/EC_Supplier_Filter_Builder.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecEventChannelAdminC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- RtecEventCommC.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecEventChannelAdminC.i \
- Event/event_export.h Event/EC_Supplier_Filter_Builder.i
-
-.obj/EC_Trivial_Supplier_Filter.o .obj/EC_Trivial_Supplier_Filter.so .shobj/EC_Trivial_Supplier_Filter.o .shobj/EC_Trivial_Supplier_Filter.so: Event/EC_Trivial_Supplier_Filter.cpp \
- Event/EC_Trivial_Supplier_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Supplier_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- Event/event_export.h Event/EC_Supplier_Filter.i \
- Event/EC_Supplier_Filter_Builder.h \
- RtecEventChannelAdminC.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecEventChannelAdminC.i \
- Event/EC_Supplier_Filter_Builder.i Event/EC_Trivial_Supplier_Filter.i \
- Event/EC_Event_Channel.h Event/EC_Factory.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 \
- Event/EC_Factory.i Event/EC_Defaults.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Event_Channel.i Event/EC_ConsumerAdmin.h \
- Event/EC_ProxySupplier.h \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i \
- ESF/ESF_Peer_Admin.h \
- ESF/ESF_Proxy_Admin.h \
- ESF/ESF_Proxy_Collection.h \
- ESF/ESF_Proxy_Collection.i \
- ESF/ESF_Proxy_Collection.cpp \
- ESF/ESF_Proxy_Admin.i \
- ESF/ESF_Proxy_Admin.cpp \
- ESF/ESF_Shutdown_Proxy.h \
- ESF/ESF_Shutdown_Proxy.i \
- ESF/ESF_Shutdown_Proxy.cpp \
- ESF/ESF_Peer_Admin.i \
- ESF/ESF_Peer_Admin.cpp \
- ESF/ESF_Peer_Workers.h \
- ESF/ESF_Peer_Workers.i \
- ESF/ESF_Peer_Workers.cpp \
- Event/EC_ConsumerAdmin.i Event/EC_QOS_Info.h Event/EC_QOS_Info.i \
- Event/EC_ProxyConsumer.h Event/EC_ProxyConsumer.i
-
-.obj/EC_Filter.o .obj/EC_Filter.so .shobj/EC_Filter.o .shobj/EC_Filter.so: Event/EC_Filter.cpp Event/EC_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Filter.i
-
-.obj/EC_Filter_Builder.o .obj/EC_Filter_Builder.so .shobj/EC_Filter_Builder.o .shobj/EC_Filter_Builder.so: Event/EC_Filter_Builder.cpp \
- Event/EC_Filter_Builder.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecEventChannelAdminC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- RtecEventCommC.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecEventChannelAdminC.i \
- Event/event_export.h Event/EC_Filter_Builder.i Event/EC_Filter.h \
- Event/EC_Filter.i
-
-.obj/EC_Dispatching.o .obj/EC_Dispatching.so .shobj/EC_Dispatching.o .shobj/EC_Dispatching.so: Event/EC_Dispatching.cpp Event/EC_Dispatching.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Dispatching.i Event/EC_ProxySupplier.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i
-
-.obj/EC_Factory.o .obj/EC_Factory.so .shobj/EC_Factory.o .shobj/EC_Factory.so: Event/EC_Factory.cpp Event/EC_Factory.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- Event/EC_Factory.i \
- $(ACE_ROOT)/ace/Dynamic_Service.h \
- $(ACE_ROOT)/ace/Dynamic_Service_Base.h \
- $(ACE_ROOT)/ace/Dynamic_Service.i \
- $(ACE_ROOT)/ace/Dynamic_Service.cpp
-
-.obj/EC_QOS_Info.o .obj/EC_QOS_Info.so .shobj/EC_QOS_Info.o .shobj/EC_QOS_Info.so: Event/EC_QOS_Info.cpp Event/EC_QOS_Info.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- RtecBaseC.i \
- Event/event_export.h Event/EC_QOS_Info.i
-
-.obj/EC_Null_Factory.o .obj/EC_Null_Factory.so .shobj/EC_Null_Factory.o .shobj/EC_Null_Factory.so: Event/EC_Null_Factory.cpp Event/EC_Null_Factory.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Factory.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- Event/EC_Factory.i Event/EC_Null_Factory.i Event/EC_Dispatching.h \
- RtecEventCommC.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Dispatching.i Event/EC_Filter_Builder.h \
- RtecEventChannelAdminC.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecEventChannelAdminC.i \
- Event/EC_Filter_Builder.i Event/EC_Trivial_Supplier_Filter.h \
- Event/EC_Supplier_Filter.h \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- Event/EC_Supplier_Filter.i Event/EC_Supplier_Filter_Builder.h \
- Event/EC_Supplier_Filter_Builder.i Event/EC_Trivial_Supplier_Filter.i \
- Event/EC_ConsumerAdmin.h Event/EC_ProxySupplier.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i \
- ESF/ESF_Peer_Admin.h \
- ESF/ESF_Proxy_Admin.h \
- ESF/ESF_Proxy_Collection.h \
- ESF/ESF_Proxy_Collection.i \
- ESF/ESF_Proxy_Collection.cpp \
- ESF/ESF_Proxy_Admin.i \
- ESF/ESF_Proxy_Admin.cpp \
- ESF/ESF_Shutdown_Proxy.h \
- ESF/ESF_Shutdown_Proxy.i \
- ESF/ESF_Shutdown_Proxy.cpp \
- ESF/ESF_Peer_Admin.i \
- ESF/ESF_Peer_Admin.cpp \
- ESF/ESF_Peer_Workers.h \
- ESF/ESF_Peer_Workers.i \
- ESF/ESF_Peer_Workers.cpp \
- Event/EC_ConsumerAdmin.i Event/EC_SupplierAdmin.h \
- Event/EC_ProxyConsumer.h Event/EC_ProxyConsumer.i \
- Event/EC_SupplierAdmin.i Event/EC_ObserverStrategy.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- Event/EC_ObserverStrategy.i Event/EC_Null_Scheduling.h \
- Event/EC_Scheduling_Strategy.h Event/EC_Scheduling_Strategy.i \
- Event/EC_Null_Scheduling.i Event/EC_Reactive_Timeout_Generator.h \
- Event/EC_Timeout_Generator.h Event/EC_Timeout_Filter.h \
- Event/EC_Filter.h Event/EC_QOS_Info.h Event/EC_QOS_Info.i \
- Event/EC_Timeout_Filter.i Event/EC_Timeout_Generator.i \
- Event/EC_Reactive_Timeout_Generator.i Event/EC_ConsumerControl.h \
- Event/EC_ConsumerControl.i Event/EC_SupplierControl.h \
- Event/EC_SupplierControl.i Event/EC_Event_Channel.h \
- Event/EC_Defaults.h Event/EC_Event_Channel.i \
- ESF/ESF_Proxy_List.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ESF/ESF_Proxy_List.i \
- ESF/ESF_Proxy_List.cpp \
- ESF/ESF_Immediate_Changes.h \
- ESF/ESF_Immediate_Changes.i \
- ESF/ESF_Immediate_Changes.cpp \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i
-
-.obj/EC_Disjunction_Filter.o .obj/EC_Disjunction_Filter.so .shobj/EC_Disjunction_Filter.o .shobj/EC_Disjunction_Filter.so: Event/EC_Disjunction_Filter.cpp \
- Event/EC_Disjunction_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Filter.i Event/EC_Disjunction_Filter.i
-
-.obj/EC_Conjunction_Filter.o .obj/EC_Conjunction_Filter.so .shobj/EC_Conjunction_Filter.o .shobj/EC_Conjunction_Filter.so: Event/EC_Conjunction_Filter.cpp \
- Event/EC_Conjunction_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Filter.i Event/EC_Conjunction_Filter.i
-
-.obj/EC_Negation_Filter.o .obj/EC_Negation_Filter.so .shobj/EC_Negation_Filter.o .shobj/EC_Negation_Filter.so: Event/EC_Negation_Filter.cpp \
- Event/EC_Negation_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Filter.i Event/EC_Negation_Filter.i
-
-.obj/EC_Type_Filter.o .obj/EC_Type_Filter.so .shobj/EC_Type_Filter.o .shobj/EC_Type_Filter.so: Event/EC_Type_Filter.cpp Event/EC_Type_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Filter.i Event/EC_Type_Filter.i
-
-.obj/EC_Basic_Filter_Builder.o .obj/EC_Basic_Filter_Builder.so .shobj/EC_Basic_Filter_Builder.o .shobj/EC_Basic_Filter_Builder.so: Event/EC_Basic_Filter_Builder.cpp \
- Event_Service_Constants.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- Time_Utilities.h \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- TimeBaseC.i \
- Time_Utilities.i \
- Event/EC_Basic_Filter_Builder.h Event/EC_Filter_Builder.h \
- RtecEventChannelAdminC.h \
- Event/event_export.h \
- RtecEventCommC.h \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecEventChannelAdminC.i \
- Event/event_export.h Event/EC_Filter_Builder.i \
- Event/EC_Basic_Filter_Builder.i Event/EC_Type_Filter.h \
- Event/EC_Filter.h Event/EC_Filter.i Event/EC_Type_Filter.i \
- Event/EC_Conjunction_Filter.h Event/EC_Conjunction_Filter.i \
- Event/EC_Disjunction_Filter.h Event/EC_Disjunction_Filter.i \
- Event/EC_And_Filter.h Event/EC_And_Filter.i \
- Event/EC_Negation_Filter.h Event/EC_Negation_Filter.i \
- Event/EC_Bitmask_Filter.h Event/EC_Bitmask_Filter.i \
- Event/EC_Masked_Type_Filter.h Event/EC_Masked_Type_Filter.i \
- Event/EC_Timeout_Filter.h Event/EC_QOS_Info.h Event/EC_QOS_Info.i \
- Event/EC_Timeout_Filter.i
-
-.obj/EC_Basic_Factory.o .obj/EC_Basic_Factory.so .shobj/EC_Basic_Factory.o .shobj/EC_Basic_Factory.so: Event/EC_Basic_Factory.cpp \
- Event/EC_Basic_Factory.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Factory.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- Event/EC_Factory.i Event/EC_Basic_Factory.i Event/EC_Dispatching.h \
- RtecEventCommC.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Dispatching.i \
- Event/EC_Basic_Filter_Builder.h Event/EC_Filter_Builder.h \
- RtecEventChannelAdminC.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecEventChannelAdminC.i \
- Event/EC_Filter_Builder.i Event/EC_Basic_Filter_Builder.i \
- Event/EC_Trivial_Supplier_Filter.h Event/EC_Supplier_Filter.h \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- Event/EC_Supplier_Filter.i Event/EC_Supplier_Filter_Builder.h \
- Event/EC_Supplier_Filter_Builder.i Event/EC_Trivial_Supplier_Filter.i \
- Event/EC_ConsumerAdmin.h Event/EC_ProxySupplier.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i \
- ESF/ESF_Peer_Admin.h \
- ESF/ESF_Proxy_Admin.h \
- ESF/ESF_Proxy_Collection.h \
- ESF/ESF_Proxy_Collection.i \
- ESF/ESF_Proxy_Collection.cpp \
- ESF/ESF_Proxy_Admin.i \
- ESF/ESF_Proxy_Admin.cpp \
- ESF/ESF_Shutdown_Proxy.h \
- ESF/ESF_Shutdown_Proxy.i \
- ESF/ESF_Shutdown_Proxy.cpp \
- ESF/ESF_Peer_Admin.i \
- ESF/ESF_Peer_Admin.cpp \
- ESF/ESF_Peer_Workers.h \
- ESF/ESF_Peer_Workers.i \
- ESF/ESF_Peer_Workers.cpp \
- Event/EC_ConsumerAdmin.i Event/EC_SupplierAdmin.h \
- Event/EC_ProxyConsumer.h Event/EC_ProxyConsumer.i \
- Event/EC_SupplierAdmin.i Event/EC_ObserverStrategy.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- Event/EC_ObserverStrategy.i Event/EC_Null_Scheduling.h \
- Event/EC_Scheduling_Strategy.h Event/EC_Scheduling_Strategy.i \
- Event/EC_Null_Scheduling.i Event/EC_Reactive_Timeout_Generator.h \
- Event/EC_Timeout_Generator.h Event/EC_Timeout_Filter.h \
- Event/EC_Filter.h Event/EC_QOS_Info.h Event/EC_QOS_Info.i \
- Event/EC_Timeout_Filter.i Event/EC_Timeout_Generator.i \
- Event/EC_Reactive_Timeout_Generator.i \
- Event/EC_Reactive_ConsumerControl.h Event/EC_ConsumerControl.h \
- Event/EC_ConsumerControl.i Event/EC_Reactive_ConsumerControl.i \
- Event/EC_Reactive_SupplierControl.h Event/EC_SupplierControl.h \
- Event/EC_SupplierControl.i Event/EC_Reactive_SupplierControl.i \
- Event/EC_Event_Channel.h Event/EC_Defaults.h Event/EC_Event_Channel.i \
- ESF/ESF_Proxy_List.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ESF/ESF_Proxy_List.i \
- ESF/ESF_Proxy_List.cpp \
- ESF/ESF_Delayed_Changes.h \
- ESF/ESF_Busy_Lock.h \
- ESF/ESF_Busy_Lock.i \
- ESF/ESF_Busy_Lock.cpp \
- ESF/ESF_Delayed_Changes.i \
- ESF/ESF_Delayed_Changes.cpp \
- ESF/ESF_Defaults.h \
- ESF/ESF_Delayed_Command.h \
- ESF/ESF_Delayed_Command.i \
- ESF/ESF_Delayed_Command.cpp \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i
-
-.obj/EC_Default_Factory.o .obj/EC_Default_Factory.so .shobj/EC_Default_Factory.o .shobj/EC_Default_Factory.so: Event/EC_Default_Factory.cpp \
- Event/EC_Default_Factory.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Factory.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(ACE_ROOT)/ace/Service_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.h \
- $(ACE_ROOT)/ace/Shared_Object.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- Event/EC_Factory.i Event/EC_Defaults.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- Event/EC_Default_Factory.i Event/EC_MT_Dispatching.h \
- Event/EC_Dispatching.h \
- RtecEventCommC.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Dispatching.i \
- Event/EC_Dispatching_Task.h Event/EC_ProxySupplier.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(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/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- Event/EC_Dispatching_Task.i Event/EC_MT_Dispatching.i \
- Event/EC_Basic_Filter_Builder.h Event/EC_Filter_Builder.h \
- Event/EC_Filter_Builder.i Event/EC_Basic_Filter_Builder.i \
- Event/EC_Prefix_Filter_Builder.h Event/EC_Prefix_Filter_Builder.i \
- Event/EC_ConsumerAdmin.h \
- ESF/ESF_Peer_Admin.h \
- ESF/ESF_Proxy_Admin.h \
- ESF/ESF_Proxy_Collection.h \
- ESF/ESF_Proxy_Collection.i \
- ESF/ESF_Proxy_Collection.cpp \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- ESF/ESF_Proxy_Admin.i \
- ESF/ESF_Proxy_Admin.cpp \
- ESF/ESF_Shutdown_Proxy.h \
- ESF/ESF_Shutdown_Proxy.i \
- ESF/ESF_Shutdown_Proxy.cpp \
- ESF/ESF_Peer_Admin.i \
- ESF/ESF_Peer_Admin.cpp \
- ESF/ESF_Peer_Workers.h \
- ESF/ESF_Peer_Workers.i \
- ESF/ESF_Peer_Workers.cpp \
- Event/EC_ConsumerAdmin.i Event/EC_SupplierAdmin.h \
- Event/EC_ProxyConsumer.h Event/EC_ProxyConsumer.i \
- Event/EC_SupplierAdmin.i Event/EC_Trivial_Supplier_Filter.h \
- Event/EC_Supplier_Filter.h Event/EC_Supplier_Filter.i \
- Event/EC_Supplier_Filter_Builder.h Event/EC_Supplier_Filter_Builder.i \
- Event/EC_Trivial_Supplier_Filter.i Event/EC_Per_Supplier_Filter.h \
- Event/EC_Per_Supplier_Filter.i Event/EC_ObserverStrategy.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- Event/EC_ObserverStrategy.i Event/EC_Null_Scheduling.h \
- Event/EC_Scheduling_Strategy.h Event/EC_Scheduling_Strategy.i \
- Event/EC_Null_Scheduling.i Event/EC_Reactive_Timeout_Generator.h \
- Event/EC_Timeout_Generator.h Event/EC_Timeout_Filter.h \
- Event/EC_Filter.h Event/EC_QOS_Info.h Event/EC_QOS_Info.i \
- Event/EC_Timeout_Filter.i Event/EC_Timeout_Generator.i \
- Event/EC_Reactive_Timeout_Generator.i Event/EC_Event_Channel.h \
- Event/EC_Event_Channel.i Event/EC_Reactive_ConsumerControl.h \
- Event/EC_ConsumerControl.h Event/EC_ConsumerControl.i \
- Event/EC_Reactive_ConsumerControl.i \
- Event/EC_Reactive_SupplierControl.h Event/EC_SupplierControl.h \
- Event/EC_SupplierControl.i Event/EC_Reactive_SupplierControl.i \
- ESF/ESF_Proxy_List.h \
- ESF/ESF_Proxy_List.i \
- ESF/ESF_Proxy_List.cpp \
- ESF/ESF_Proxy_RB_Tree.h \
- ESF/ESF_Proxy_RB_Tree.i \
- ESF/ESF_Proxy_RB_Tree.cpp \
- ESF/ESF_Immediate_Changes.h \
- ESF/ESF_Immediate_Changes.i \
- ESF/ESF_Immediate_Changes.cpp \
- ESF/ESF_Copy_On_Read.h \
- ESF/ESF_Copy_On_Read.i \
- ESF/ESF_Copy_On_Read.cpp \
- ESF/ESF_Copy_On_Write.h \
- ESF/ESF_Copy_On_Write.i \
- ESF/ESF_Copy_On_Write.cpp \
- ESF/ESF_Delayed_Changes.h \
- ESF/ESF_Busy_Lock.h \
- ESF/ESF_Busy_Lock.i \
- ESF/ESF_Busy_Lock.cpp \
- ESF/ESF_Delayed_Changes.i \
- ESF/ESF_Delayed_Changes.cpp \
- ESF/ESF_Defaults.h \
- ESF/ESF_Delayed_Command.h \
- ESF/ESF_Delayed_Command.i \
- ESF/ESF_Delayed_Command.cpp \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(ACE_ROOT)/ace/Arg_Shifter.h \
- $(ACE_ROOT)/ace/Sched_Params.h \
- $(ACE_ROOT)/ace/Sched_Params.i
-
-.obj/EC_ObserverStrategy.o .obj/EC_ObserverStrategy.so .shobj/EC_ObserverStrategy.o .shobj/EC_ObserverStrategy.so: Event/EC_ObserverStrategy.cpp \
- Event/EC_ObserverStrategy.h \
- $(ACE_ROOT)/ace/pre.h \
- ESF/ESF_Worker.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- RtecEventChannelAdminC.h \
- Event/event_export.h \
- RtecEventCommC.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecEventChannelAdminC.i \
- Event/event_export.h Event/EC_ObserverStrategy.i \
- Event/EC_Event_Channel.h Event/EC_Factory.h Event/EC_Factory.i \
- Event/EC_Defaults.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Event_Channel.i Event/EC_ProxySupplier.h \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i Event/EC_ProxyConsumer.h \
- Event/EC_ProxyConsumer.i Event/EC_ConsumerAdmin.h \
- ESF/ESF_Peer_Admin.h \
- ESF/ESF_Proxy_Admin.h \
- ESF/ESF_Proxy_Collection.h \
- ESF/ESF_Proxy_Collection.i \
- ESF/ESF_Proxy_Collection.cpp \
- ESF/ESF_Proxy_Admin.i \
- ESF/ESF_Proxy_Admin.cpp \
- ESF/ESF_Shutdown_Proxy.h \
- ESF/ESF_Shutdown_Proxy.i \
- ESF/ESF_Shutdown_Proxy.cpp \
- ESF/ESF_Peer_Admin.i \
- ESF/ESF_Peer_Admin.cpp \
- ESF/ESF_Peer_Workers.h \
- ESF/ESF_Peer_Workers.i \
- ESF/ESF_Peer_Workers.cpp \
- Event/EC_ConsumerAdmin.i Event/EC_SupplierAdmin.h \
- Event/EC_SupplierAdmin.i \
- Event_Service_Constants.h \
- Time_Utilities.h \
- Time_Utilities.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp
-
-.obj/EC_Per_Supplier_Filter.o .obj/EC_Per_Supplier_Filter.so .shobj/EC_Per_Supplier_Filter.o .shobj/EC_Per_Supplier_Filter.so: Event/EC_Per_Supplier_Filter.cpp \
- Event/EC_Per_Supplier_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Supplier_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- Event/event_export.h Event/EC_Supplier_Filter.i \
- Event/EC_Supplier_Filter_Builder.h \
- RtecEventChannelAdminC.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecEventChannelAdminC.i \
- Event/EC_Supplier_Filter_Builder.i Event/EC_Per_Supplier_Filter.i \
- Event/EC_Event_Channel.h Event/EC_Factory.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 \
- Event/EC_Factory.i Event/EC_Defaults.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Event_Channel.i Event/EC_ProxySupplier.h \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i Event/EC_ProxyConsumer.h \
- Event/EC_ProxyConsumer.i Event/EC_Scheduling_Strategy.h \
- Event/EC_Scheduling_Strategy.i Event/EC_QOS_Info.h \
- Event/EC_QOS_Info.i \
- ESF/ESF_Proxy_Collection.h \
- ESF/ESF_Proxy_Collection.i \
- ESF/ESF_Proxy_Collection.cpp \
- Event_Service_Constants.h \
- Time_Utilities.h \
- Time_Utilities.i
-
-.obj/EC_Timeout_Filter.o .obj/EC_Timeout_Filter.so .shobj/EC_Timeout_Filter.o .shobj/EC_Timeout_Filter.so: Event/EC_Timeout_Filter.cpp \
- Event/EC_Timeout_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Filter.i Event/EC_QOS_Info.h \
- RtecBaseC.h \
- RtecBaseC.i \
- Event/EC_QOS_Info.i Event/EC_Timeout_Filter.i \
- Event/EC_Timeout_Generator.h Event/EC_Timeout_Generator.i \
- Event/EC_Event_Channel.h Event/EC_Factory.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 \
- Event/EC_Factory.i Event/EC_Defaults.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Event_Channel.i Event/EC_ProxySupplier.h \
- Event/EC_Filter.h \
- Event/EC_ProxySupplier.i \
- Time_Utilities.h \
- Time_Utilities.i \
- Event_Service_Constants.h
-
-.obj/EC_Timeout_Generator.o .obj/EC_Timeout_Generator.so .shobj/EC_Timeout_Generator.o .shobj/EC_Timeout_Generator.so: Event/EC_Timeout_Generator.cpp \
- Event/EC_Timeout_Generator.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Event_Handler.i \
- Event/EC_Timeout_Filter.h Event/EC_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Filter.i Event/EC_QOS_Info.h \
- RtecBaseC.h \
- RtecBaseC.i \
- Event/EC_QOS_Info.i Event/EC_Timeout_Filter.i \
- Event/EC_Timeout_Generator.i \
- Event_Service_Constants.h \
- Time_Utilities.h \
- Time_Utilities.i
-
-.obj/EC_Reactive_Timeout_Generator.o .obj/EC_Reactive_Timeout_Generator.so .shobj/EC_Reactive_Timeout_Generator.o .shobj/EC_Reactive_Timeout_Generator.so: \
- Event/EC_Reactive_Timeout_Generator.cpp \
- Event/EC_Reactive_Timeout_Generator.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Timeout_Generator.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Event_Handler.i \
- Event/EC_Timeout_Filter.h Event/EC_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Filter.i Event/EC_QOS_Info.h \
- RtecBaseC.h \
- RtecBaseC.i \
- Event/EC_QOS_Info.i Event/EC_Timeout_Filter.i \
- Event/EC_Timeout_Generator.i Event/EC_Reactive_Timeout_Generator.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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
-
-.obj/EC_MT_Dispatching.o .obj/EC_MT_Dispatching.so .shobj/EC_MT_Dispatching.o .shobj/EC_MT_Dispatching.so: Event/EC_MT_Dispatching.cpp \
- Event/EC_MT_Dispatching.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Dispatching.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Dispatching.i \
- Event/EC_Dispatching_Task.h Event/EC_ProxySupplier.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.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/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(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/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- Event/EC_Dispatching_Task.i Event/EC_MT_Dispatching.i
-
-.obj/EC_Dispatching_Task.o .obj/EC_Dispatching_Task.so .shobj/EC_Dispatching_Task.o .shobj/EC_Dispatching_Task.so: Event/EC_Dispatching_Task.cpp \
- Event/EC_Dispatching_Task.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_ProxySupplier.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataC.h \
- Event/event_export.h \
- RtecDefaultEventDataC.i \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommC.h \
- RtecEventCommC.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i Event/event_export.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/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(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/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- Event/EC_Dispatching_Task.i
-
-.obj/EC_Scheduling_Strategy.o .obj/EC_Scheduling_Strategy.so .shobj/EC_Scheduling_Strategy.o .shobj/EC_Scheduling_Strategy.so: Event/EC_Scheduling_Strategy.cpp \
- Event/EC_Scheduling_Strategy.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- RtecBaseC.i \
- RtecEventCommC.h \
- Event/event_export.h \
- TimeBaseC.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/EC_Scheduling_Strategy.i Event/EC_QOS_Info.h \
- Event/event_export.h Event/EC_QOS_Info.i
-
-.obj/EC_Null_Scheduling.o .obj/EC_Null_Scheduling.so .shobj/EC_Null_Scheduling.o .shobj/EC_Null_Scheduling.so: Event/EC_Null_Scheduling.cpp \
- Event/EC_Null_Scheduling.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Scheduling_Strategy.h \
- RtecBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- RtecBaseC.i \
- RtecEventCommC.h \
- Event/event_export.h \
- TimeBaseC.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/EC_Scheduling_Strategy.i Event/event_export.h \
- Event/EC_Null_Scheduling.i Event/EC_QOS_Info.h Event/EC_QOS_Info.i
-
-.obj/EC_ConsumerControl.o .obj/EC_ConsumerControl.so .shobj/EC_ConsumerControl.o .shobj/EC_ConsumerControl.so: Event/EC_ConsumerControl.cpp \
- Event/EC_ConsumerControl.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/EC_ConsumerControl.i
-
-.obj/EC_SupplierControl.o .obj/EC_SupplierControl.so .shobj/EC_SupplierControl.o .shobj/EC_SupplierControl.so: Event/EC_SupplierControl.cpp \
- Event/EC_SupplierControl.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/EC_SupplierControl.i
-
-.obj/EC_Reactive_ConsumerControl.o .obj/EC_Reactive_ConsumerControl.so .shobj/EC_Reactive_ConsumerControl.o .shobj/EC_Reactive_ConsumerControl.so: Event/EC_Reactive_ConsumerControl.cpp \
- Event/EC_Reactive_ConsumerControl.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_ConsumerControl.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/EC_ConsumerControl.i \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- Event/EC_Reactive_ConsumerControl.i Event/EC_Event_Channel.h \
- Event/EC_Factory.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 \
- Event/EC_Factory.i Event/EC_Defaults.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommC.h \
- RtecEventCommC.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Event_Channel.i Event/EC_ConsumerAdmin.h \
- Event/EC_ProxySupplier.h \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxySupplier.i \
- ESF/ESF_Peer_Admin.h \
- ESF/ESF_Proxy_Admin.h \
- ESF/ESF_Proxy_Collection.h \
- ESF/ESF_Proxy_Collection.i \
- ESF/ESF_Proxy_Collection.cpp \
- ESF/ESF_Proxy_Admin.i \
- ESF/ESF_Proxy_Admin.cpp \
- ESF/ESF_Shutdown_Proxy.h \
- ESF/ESF_Shutdown_Proxy.i \
- ESF/ESF_Shutdown_Proxy.cpp \
- ESF/ESF_Peer_Admin.i \
- ESF/ESF_Peer_Admin.cpp \
- ESF/ESF_Peer_Workers.h \
- ESF/ESF_Peer_Workers.i \
- ESF/ESF_Peer_Workers.cpp \
- Event/event_export.h Event/EC_ConsumerAdmin.i \
- Event/EC_ProxyConsumer.h Event/EC_ProxyConsumer.i \
- $(TAO_ROOT)/tao/Messaging.h \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i
-
-.obj/EC_Reactive_SupplierControl.o .obj/EC_Reactive_SupplierControl.so .shobj/EC_Reactive_SupplierControl.o .shobj/EC_Reactive_SupplierControl.so: Event/EC_Reactive_SupplierControl.cpp \
- Event/EC_Reactive_SupplierControl.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_SupplierControl.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/EC_SupplierControl.i \
- ESF/ESF_Worker.h \
- ESF/ESF_Worker.i \
- ESF/ESF_Worker.cpp \
- Event/EC_Reactive_SupplierControl.i Event/EC_Event_Channel.h \
- Event/EC_Factory.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 \
- Event/EC_Factory.i Event/EC_Defaults.h \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommC.h \
- RtecEventCommC.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Event/EC_Event_Channel.i Event/EC_SupplierAdmin.h \
- Event/EC_ProxyConsumer.h \
- Event/EC_Filter.h \
- Event/EC_Filter.i \
- Event/EC_ProxyConsumer.i \
- ESF/ESF_Peer_Admin.h \
- ESF/ESF_Proxy_Admin.h \
- ESF/ESF_Proxy_Collection.h \
- ESF/ESF_Proxy_Collection.i \
- ESF/ESF_Proxy_Collection.cpp \
- ESF/ESF_Proxy_Admin.i \
- ESF/ESF_Proxy_Admin.cpp \
- ESF/ESF_Shutdown_Proxy.h \
- ESF/ESF_Shutdown_Proxy.i \
- ESF/ESF_Shutdown_Proxy.cpp \
- ESF/ESF_Peer_Admin.i \
- ESF/ESF_Peer_Admin.cpp \
- ESF/ESF_Peer_Workers.h \
- ESF/ESF_Peer_Workers.i \
- ESF/ESF_Peer_Workers.cpp \
- Event/event_export.h Event/EC_SupplierAdmin.i \
- Event/EC_ProxySupplier.h Event/EC_ProxySupplier.i \
- $(TAO_ROOT)/tao/Messaging.h \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i
-
-.obj/EC_Bitmask_Filter.o .obj/EC_Bitmask_Filter.so .shobj/EC_Bitmask_Filter.o .shobj/EC_Bitmask_Filter.so: Event/EC_Bitmask_Filter.cpp \
- Event/EC_Bitmask_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Filter.i Event/EC_Bitmask_Filter.i
-
-.obj/EC_Masked_Type_Filter.o .obj/EC_Masked_Type_Filter.so .shobj/EC_Masked_Type_Filter.o .shobj/EC_Masked_Type_Filter.so: Event/EC_Masked_Type_Filter.cpp \
- Event/EC_Masked_Type_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Filter.i Event/EC_Masked_Type_Filter.i
-
-.obj/EC_Prefix_Filter_Builder.o .obj/EC_Prefix_Filter_Builder.so .shobj/EC_Prefix_Filter_Builder.o .shobj/EC_Prefix_Filter_Builder.so: Event/EC_Prefix_Filter_Builder.cpp \
- Event_Service_Constants.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- Time_Utilities.h \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- TimeBaseC.i \
- Time_Utilities.i \
- Event/EC_Prefix_Filter_Builder.h Event/EC_Filter_Builder.h \
- RtecEventChannelAdminC.h \
- Event/event_export.h \
- RtecEventCommC.h \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecEventChannelAdminC.i \
- Event/event_export.h Event/EC_Filter_Builder.i \
- Event/EC_Prefix_Filter_Builder.i Event/EC_Type_Filter.h \
- Event/EC_Filter.h Event/EC_Filter.i Event/EC_Type_Filter.i \
- Event/EC_Conjunction_Filter.h Event/EC_Conjunction_Filter.i \
- Event/EC_Disjunction_Filter.h Event/EC_Disjunction_Filter.i \
- Event/EC_And_Filter.h Event/EC_And_Filter.i \
- Event/EC_Negation_Filter.h Event/EC_Negation_Filter.i \
- Event/EC_Bitmask_Filter.h Event/EC_Bitmask_Filter.i \
- Event/EC_Masked_Type_Filter.h Event/EC_Masked_Type_Filter.i \
- Event/EC_Timeout_Filter.h Event/EC_QOS_Info.h Event/EC_QOS_Info.i \
- Event/EC_Timeout_Filter.i
-
-.obj/EC_And_Filter.o .obj/EC_And_Filter.so .shobj/EC_And_Filter.o .shobj/EC_And_Filter.so: Event/EC_And_Filter.cpp Event/EC_And_Filter.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/EC_Filter.h \
- RtecEventCommC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- Event/event_export.h Event/EC_Filter.i Event/EC_And_Filter.i
-
-.obj/Event_Utilities.o .obj/Event_Utilities.so .shobj/Event_Utilities.o .shobj/Event_Utilities.so: Event_Utilities.cpp \
- Event_Utilities.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecEventChannelAdminC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h \
- RtecEventCommC.h \
- TimeBaseC.h \
- svc_utils_export.h \
- TimeBaseC.i \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecEventCommC.i \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecEventChannelAdminC.i \
- Event_Service_Constants.h \
- Time_Utilities.h \
- Time_Utilities.i \
- Event_Utilities.i
-
-.obj/EC_Gateway.o .obj/EC_Gateway.so .shobj/EC_Gateway.o .shobj/EC_Gateway.so: Event/EC_Gateway.cpp \
- Event/EC_Gateway.h \
- $(ACE_ROOT)/ace/pre.h \
- Event/event_export.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- RtecEventChannelAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataC.h \
- RtecDefaultEventDataC.i \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommC.h \
- RtecEventCommC.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- Channel_Clients.h \
- Channel_Clients_T.h \
- Channel_Clients_T.i \
- Channel_Clients_T.cpp \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- Event_Utilities.h \
- Event_Service_Constants.h \
- Time_Utilities.h \
- Time_Utilities.i \
- Event_Utilities.i
-
-.obj/EC_Gateway_UDP.o .obj/EC_Gateway_UDP.so .shobj/EC_Gateway_UDP.o .shobj/EC_Gateway_UDP.so: Event/EC_Gateway_UDP.cpp \
- Event/EC_Gateway_UDP.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecUDPAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataC.h \
- Event/event_export.h \
- RtecDefaultEventDataC.i \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommC.h \
- RtecEventCommC.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecUDPAdminC.h \
- RtecUDPAdminC.i \
- RtecUDPAdminS_T.h \
- RtecUDPAdminS_T.i \
- RtecUDPAdminS_T.cpp \
- RtecUDPAdminS.i \
- RtecEventChannelAdminS.h \
- RtecBaseS.h \
- RtecBaseC.h \
- RtecBaseC.i \
- RtecBaseS_T.h \
- RtecBaseS_T.i \
- RtecBaseS_T.cpp \
- RtecBaseS.i \
- RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i \
- RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i \
- RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.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_Dgram.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- $(ACE_ROOT)/ace/SOCK_CODgram.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/SOCK_CODgram.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_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/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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- Event/EC_Gateway_UDP.i \
- Event_Utilities.h \
- Event_Service_Constants.h \
- Time_Utilities.h \
- Time_Utilities.i \
- Event_Utilities.i
-
-.obj/EC_UDP_Admin.o .obj/EC_UDP_Admin.so .shobj/EC_UDP_Admin.o .shobj/EC_UDP_Admin.so: Event/EC_UDP_Admin.cpp \
- Event/EC_UDP_Admin.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecUDPAdminS.h \
- RtecEventCommS.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h \
- TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h \
- TimeBaseS_T.i \
- TimeBaseS_T.cpp \
- TimeBaseS.i \
- RtecDefaultEventDataS.h \
- RtecDefaultEventDataC.h \
- Event/event_export.h \
- RtecDefaultEventDataC.i \
- RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i \
- RtecEventCommC.h \
- RtecEventCommC.i \
- RtecEventCommS_T.h \
- RtecEventCommS_T.i \
- RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- RtecUDPAdminC.h \
- RtecUDPAdminC.i \
- RtecUDPAdminS_T.h \
- RtecUDPAdminS_T.i \
- RtecUDPAdminS_T.cpp \
- RtecUDPAdminS.i
-
-.obj/RtecDefaultEventDataS.o .obj/RtecDefaultEventDataS.so .shobj/RtecDefaultEventDataS.o .shobj/RtecDefaultEventDataS.so: RtecDefaultEventDataS.cpp \
- RtecDefaultEventDataS.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecDefaultEventDataC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h RtecDefaultEventDataC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- RtecDefaultEventDataS_T.h RtecDefaultEventDataS_T.i \
- RtecDefaultEventDataS_T.cpp RtecDefaultEventDataS.i \
- $(TAO_ROOT)/tao/PortableServer/Object_Adapter.h \
- $(TAO_ROOT)/tao/PortableServer/Key_Adapters.h \
- $(ACE_ROOT)/ace/Map.h \
- $(ACE_ROOT)/ace/Map_T.h \
- $(ACE_ROOT)/ace/Pair.h \
- $(ACE_ROOT)/ace/Pair_T.h \
- $(ACE_ROOT)/ace/Pair_T.i \
- $(ACE_ROOT)/ace/Pair_T.cpp \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Active_Map_Manager.h \
- $(ACE_ROOT)/ace/Active_Map_Manager.i \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Map_T.i \
- $(ACE_ROOT)/ace/Map_T.cpp \
- $(TAO_ROOT)/tao/PortableServer/Key_Adapters.i \
- $(TAO_ROOT)/tao/PortableServer/poa_macros.h \
- $(TAO_ROOT)/tao/PortableServer/Active_Object_Map.h \
- $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
- $(TAO_ROOT)/tao/PortableServer/Active_Object_Map.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PortableServer/Default_Policy_Validator.h \
- $(TAO_ROOT)/tao/PortableServer/Policy_Validator.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policy_Set.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policies.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policies.i \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/PortableServer/POA_Policy_Set.i \
- $(TAO_ROOT)/tao/PortableServer/Object_Adapter.i \
- $(TAO_ROOT)/tao/PortableServer/Operation_Table.h \
- $(TAO_ROOT)/tao/TAO_Server_Request.h \
- $(TAO_ROOT)/tao/Tagged_Profile.h \
- $(TAO_ROOT)/tao/GIOPC.h \
- $(TAO_ROOT)/tao/GIOPC.i \
- $(TAO_ROOT)/tao/Tagged_Profile.i \
- $(TAO_ROOT)/tao/Service_Context.h \
- $(TAO_ROOT)/tao/Service_Context.inl \
- $(TAO_ROOT)/tao/TAO_Server_Request.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(TAO_ROOT)/tao/Stub.h \
- $(TAO_ROOT)/tao/MProfile.h \
- $(TAO_ROOT)/tao/Profile.h \
- $(TAO_ROOT)/tao/Tagged_Components.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.i \
- $(TAO_ROOT)/tao/Tagged_Components.i \
- $(TAO_ROOT)/tao/GIOP_Message_Version.h \
- $(TAO_ROOT)/tao/GIOP_Message_Version.inl \
- $(TAO_ROOT)/tao/Profile.i \
- $(TAO_ROOT)/tao/MProfile.i \
- $(TAO_ROOT)/tao/Stub.i \
- $(TAO_ROOT)/tao/IFR_Client_Adapter.h \
- $(TAO_ROOT)/tao/PortableInterceptor.h \
- $(TAO_ROOT)/tao/RequestInfo_Util.h \
- $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.h \
- $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.inl \
- $(TAO_ROOT)/tao/PortableServer/ServerInterceptorAdapter.h \
- $(TAO_ROOT)/tao/PortableServer/ServerInterceptorAdapter.inl \
- $(ACE_ROOT)/ace/Dynamic_Service.h \
- $(ACE_ROOT)/ace/Dynamic_Service_Base.h \
- $(ACE_ROOT)/ace/Dynamic_Service.i \
- $(ACE_ROOT)/ace/Dynamic_Service.cpp
-
-.obj/RtecEventCommS.o .obj/RtecEventCommS.so .shobj/RtecEventCommS.o .shobj/RtecEventCommS.so: RtecEventCommS.cpp RtecEventCommS.h \
- $(ACE_ROOT)/ace/pre.h \
- TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h TimeBaseS_T.i TimeBaseS_T.cpp TimeBaseS.i \
- RtecDefaultEventDataS.h RtecDefaultEventDataC.h Event/event_export.h \
- RtecDefaultEventDataC.i RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i RtecEventCommC.h RtecEventCommC.i \
- RtecEventCommS_T.h RtecEventCommS_T.i RtecEventCommS_T.cpp \
- RtecEventCommS.i \
- $(TAO_ROOT)/tao/PortableServer/Object_Adapter.h \
- $(TAO_ROOT)/tao/PortableServer/Key_Adapters.h \
- $(ACE_ROOT)/ace/Map.h \
- $(ACE_ROOT)/ace/Map_T.h \
- $(ACE_ROOT)/ace/Pair.h \
- $(ACE_ROOT)/ace/Pair_T.h \
- $(ACE_ROOT)/ace/Pair_T.i \
- $(ACE_ROOT)/ace/Pair_T.cpp \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Active_Map_Manager.h \
- $(ACE_ROOT)/ace/Active_Map_Manager.i \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Map_T.i \
- $(ACE_ROOT)/ace/Map_T.cpp \
- $(TAO_ROOT)/tao/PortableServer/Key_Adapters.i \
- $(TAO_ROOT)/tao/PortableServer/poa_macros.h \
- $(TAO_ROOT)/tao/PortableServer/Active_Object_Map.h \
- $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
- $(TAO_ROOT)/tao/PortableServer/Active_Object_Map.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PortableServer/Default_Policy_Validator.h \
- $(TAO_ROOT)/tao/PortableServer/Policy_Validator.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policy_Set.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policies.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policies.i \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/PortableServer/POA_Policy_Set.i \
- $(TAO_ROOT)/tao/PortableServer/Object_Adapter.i \
- $(TAO_ROOT)/tao/PortableServer/Operation_Table.h \
- $(TAO_ROOT)/tao/TAO_Server_Request.h \
- $(TAO_ROOT)/tao/Tagged_Profile.h \
- $(TAO_ROOT)/tao/GIOPC.h \
- $(TAO_ROOT)/tao/GIOPC.i \
- $(TAO_ROOT)/tao/Tagged_Profile.i \
- $(TAO_ROOT)/tao/Service_Context.h \
- $(TAO_ROOT)/tao/Service_Context.inl \
- $(TAO_ROOT)/tao/TAO_Server_Request.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(TAO_ROOT)/tao/Stub.h \
- $(TAO_ROOT)/tao/MProfile.h \
- $(TAO_ROOT)/tao/Profile.h \
- $(TAO_ROOT)/tao/Tagged_Components.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.i \
- $(TAO_ROOT)/tao/Tagged_Components.i \
- $(TAO_ROOT)/tao/GIOP_Message_Version.h \
- $(TAO_ROOT)/tao/GIOP_Message_Version.inl \
- $(TAO_ROOT)/tao/Profile.i \
- $(TAO_ROOT)/tao/MProfile.i \
- $(TAO_ROOT)/tao/Stub.i \
- $(TAO_ROOT)/tao/IFR_Client_Adapter.h \
- $(TAO_ROOT)/tao/PortableInterceptor.h \
- $(TAO_ROOT)/tao/RequestInfo_Util.h \
- $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.h \
- $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.inl \
- $(TAO_ROOT)/tao/PortableServer/ServerInterceptorAdapter.h \
- $(TAO_ROOT)/tao/PortableServer/ServerInterceptorAdapter.inl \
- $(ACE_ROOT)/ace/Dynamic_Service.h \
- $(ACE_ROOT)/ace/Dynamic_Service_Base.h \
- $(ACE_ROOT)/ace/Dynamic_Service.i \
- $(ACE_ROOT)/ace/Dynamic_Service.cpp
-
-.obj/RtecEventChannelAdminS.o .obj/RtecEventChannelAdminS.so .shobj/RtecEventChannelAdminS.o .shobj/RtecEventChannelAdminS.so: RtecEventChannelAdminS.cpp \
- RtecEventChannelAdminS.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecEventCommS.h TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h TimeBaseS_T.i TimeBaseS_T.cpp TimeBaseS.i \
- RtecDefaultEventDataS.h RtecDefaultEventDataC.h Event/event_export.h \
- RtecDefaultEventDataC.i RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i RtecEventCommC.h RtecEventCommC.i \
- RtecEventCommS_T.h RtecEventCommS_T.i RtecEventCommS_T.cpp \
- RtecEventCommS.i RtecBaseS.h RtecBaseC.h RtecBaseC.i RtecBaseS_T.h \
- RtecBaseS_T.i RtecBaseS_T.cpp RtecBaseS.i RtecEventChannelAdminC.h \
- RtecEventChannelAdminC.i RtecEventChannelAdminS_T.h \
- RtecEventChannelAdminS_T.i RtecEventChannelAdminS_T.cpp \
- RtecEventChannelAdminS.i \
- $(TAO_ROOT)/tao/PortableServer/Object_Adapter.h \
- $(TAO_ROOT)/tao/PortableServer/Key_Adapters.h \
- $(ACE_ROOT)/ace/Map.h \
- $(ACE_ROOT)/ace/Map_T.h \
- $(ACE_ROOT)/ace/Pair.h \
- $(ACE_ROOT)/ace/Pair_T.h \
- $(ACE_ROOT)/ace/Pair_T.i \
- $(ACE_ROOT)/ace/Pair_T.cpp \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Active_Map_Manager.h \
- $(ACE_ROOT)/ace/Active_Map_Manager.i \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Map_T.i \
- $(ACE_ROOT)/ace/Map_T.cpp \
- $(TAO_ROOT)/tao/PortableServer/Key_Adapters.i \
- $(TAO_ROOT)/tao/PortableServer/poa_macros.h \
- $(TAO_ROOT)/tao/PortableServer/Active_Object_Map.h \
- $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
- $(TAO_ROOT)/tao/PortableServer/Active_Object_Map.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PortableServer/Default_Policy_Validator.h \
- $(TAO_ROOT)/tao/PortableServer/Policy_Validator.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policy_Set.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policies.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policies.i \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/PortableServer/POA_Policy_Set.i \
- $(TAO_ROOT)/tao/PortableServer/Object_Adapter.i \
- $(TAO_ROOT)/tao/PortableServer/Operation_Table.h \
- $(TAO_ROOT)/tao/TAO_Server_Request.h \
- $(TAO_ROOT)/tao/Tagged_Profile.h \
- $(TAO_ROOT)/tao/GIOPC.h \
- $(TAO_ROOT)/tao/GIOPC.i \
- $(TAO_ROOT)/tao/Tagged_Profile.i \
- $(TAO_ROOT)/tao/Service_Context.h \
- $(TAO_ROOT)/tao/Service_Context.inl \
- $(TAO_ROOT)/tao/TAO_Server_Request.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(TAO_ROOT)/tao/Stub.h \
- $(TAO_ROOT)/tao/MProfile.h \
- $(TAO_ROOT)/tao/Profile.h \
- $(TAO_ROOT)/tao/Tagged_Components.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.i \
- $(TAO_ROOT)/tao/Tagged_Components.i \
- $(TAO_ROOT)/tao/GIOP_Message_Version.h \
- $(TAO_ROOT)/tao/GIOP_Message_Version.inl \
- $(TAO_ROOT)/tao/Profile.i \
- $(TAO_ROOT)/tao/MProfile.i \
- $(TAO_ROOT)/tao/Stub.i \
- $(TAO_ROOT)/tao/IFR_Client_Adapter.h \
- $(TAO_ROOT)/tao/PortableInterceptor.h \
- $(TAO_ROOT)/tao/RequestInfo_Util.h \
- $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.h \
- $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.inl \
- $(TAO_ROOT)/tao/PortableServer/ServerInterceptorAdapter.h \
- $(TAO_ROOT)/tao/PortableServer/ServerInterceptorAdapter.inl \
- $(ACE_ROOT)/ace/Dynamic_Service.h \
- $(ACE_ROOT)/ace/Dynamic_Service_Base.h \
- $(ACE_ROOT)/ace/Dynamic_Service.i \
- $(ACE_ROOT)/ace/Dynamic_Service.cpp
-
-.obj/RtecUDPAdminS.o .obj/RtecUDPAdminS.so .shobj/RtecUDPAdminS.o .shobj/RtecUDPAdminS.so: RtecUDPAdminS.cpp RtecUDPAdminS.h \
- $(ACE_ROOT)/ace/pre.h \
- RtecEventCommS.h TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- TimeBaseC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- svc_utils_export.h TimeBaseC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- TimeBaseS_T.h TimeBaseS_T.i TimeBaseS_T.cpp TimeBaseS.i \
- RtecDefaultEventDataS.h RtecDefaultEventDataC.h Event/event_export.h \
- RtecDefaultEventDataC.i RtecDefaultEventDataS_T.h \
- RtecDefaultEventDataS_T.i RtecDefaultEventDataS_T.cpp \
- RtecDefaultEventDataS.i RtecEventCommC.h RtecEventCommC.i \
- RtecEventCommS_T.h RtecEventCommS_T.i RtecEventCommS_T.cpp \
- RtecEventCommS.i RtecUDPAdminC.h RtecUDPAdminC.i RtecUDPAdminS_T.h \
- RtecUDPAdminS_T.i RtecUDPAdminS_T.cpp RtecUDPAdminS.i \
- $(TAO_ROOT)/tao/PortableServer/Object_Adapter.h \
- $(TAO_ROOT)/tao/PortableServer/Key_Adapters.h \
- $(ACE_ROOT)/ace/Map.h \
- $(ACE_ROOT)/ace/Map_T.h \
- $(ACE_ROOT)/ace/Pair.h \
- $(ACE_ROOT)/ace/Pair_T.h \
- $(ACE_ROOT)/ace/Pair_T.i \
- $(ACE_ROOT)/ace/Pair_T.cpp \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Active_Map_Manager.h \
- $(ACE_ROOT)/ace/Active_Map_Manager.i \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Active_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Map_T.i \
- $(ACE_ROOT)/ace/Map_T.cpp \
- $(TAO_ROOT)/tao/PortableServer/Key_Adapters.i \
- $(TAO_ROOT)/tao/PortableServer/poa_macros.h \
- $(TAO_ROOT)/tao/PortableServer/Active_Object_Map.h \
- $(TAO_ROOT)/tao/Server_Strategy_Factory.h \
- $(TAO_ROOT)/tao/PortableServer/Active_Object_Map.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PortableServer/Default_Policy_Validator.h \
- $(TAO_ROOT)/tao/PortableServer/Policy_Validator.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policy_Set.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policies.h \
- $(TAO_ROOT)/tao/PortableServer/POA_Policies.i \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/PortableServer/POA_Policy_Set.i \
- $(TAO_ROOT)/tao/PortableServer/Object_Adapter.i \
- $(TAO_ROOT)/tao/PortableServer/Operation_Table.h \
- $(TAO_ROOT)/tao/TAO_Server_Request.h \
- $(TAO_ROOT)/tao/Tagged_Profile.h \
- $(TAO_ROOT)/tao/GIOPC.h \
- $(TAO_ROOT)/tao/GIOPC.i \
- $(TAO_ROOT)/tao/Tagged_Profile.i \
- $(TAO_ROOT)/tao/Service_Context.h \
- $(TAO_ROOT)/tao/Service_Context.inl \
- $(TAO_ROOT)/tao/TAO_Server_Request.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(TAO_ROOT)/tao/Stub.h \
- $(TAO_ROOT)/tao/MProfile.h \
- $(TAO_ROOT)/tao/Profile.h \
- $(TAO_ROOT)/tao/Tagged_Components.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.i \
- $(TAO_ROOT)/tao/Tagged_Components.i \
- $(TAO_ROOT)/tao/GIOP_Message_Version.h \
- $(TAO_ROOT)/tao/GIOP_Message_Version.inl \
- $(TAO_ROOT)/tao/Profile.i \
- $(TAO_ROOT)/tao/MProfile.i \
- $(TAO_ROOT)/tao/Stub.i \
- $(TAO_ROOT)/tao/IFR_Client_Adapter.h \
- $(TAO_ROOT)/tao/PortableInterceptor.h \
- $(TAO_ROOT)/tao/RequestInfo_Util.h \
- $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.h \
- $(TAO_ROOT)/tao/PortableServer/ServerRequestInfo.inl \
- $(TAO_ROOT)/tao/PortableServer/ServerInterceptorAdapter.h \
- $(TAO_ROOT)/tao/PortableServer/ServerInterceptorAdapter.inl \
- $(ACE_ROOT)/ace/Dynamic_Service.h \
- $(ACE_ROOT)/ace/Dynamic_Service_Base.h \
- $(ACE_ROOT)/ace/Dynamic_Service.i \
- $(ACE_ROOT)/ace/Dynamic_Service.cpp
-
-.obj/RtecDefaultEventDataC.o .obj/RtecDefaultEventDataC.so .shobj/RtecDefaultEventDataC.o .shobj/RtecDefaultEventDataC.so: RtecDefaultEventDataC.cpp \
- RtecDefaultEventDataC.h \
- $(ACE_ROOT)/ace/pre.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h RtecDefaultEventDataC.i \
- $(TAO_ROOT)/tao/Stub.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/MProfile.h \
- $(TAO_ROOT)/tao/Profile.h \
- $(TAO_ROOT)/tao/Tagged_Components.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.i \
- $(TAO_ROOT)/tao/Tagged_Components.i \
- $(TAO_ROOT)/tao/GIOP_Message_Version.h \
- $(TAO_ROOT)/tao/GIOP_Message_Version.inl \
- $(TAO_ROOT)/tao/Profile.i \
- $(TAO_ROOT)/tao/MProfile.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.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 \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(TAO_ROOT)/tao/Stub.i \
- $(TAO_ROOT)/tao/Invocation.h \
- $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \
- $(TAO_ROOT)/tao/Reply_Dispatcher.h \
- $(TAO_ROOT)/tao/Reply_Dispatcher.i \
- $(TAO_ROOT)/tao/LF_Event.h \
- $(TAO_ROOT)/tao/LF_Event.inl \
- $(TAO_ROOT)/tao/TAOC.h \
- $(TAO_ROOT)/tao/TAOC.i \
- $(TAO_ROOT)/tao/operation_details.h \
- $(TAO_ROOT)/tao/Service_Context.h \
- $(TAO_ROOT)/tao/Service_Context.inl \
- $(TAO_ROOT)/tao/target_specification.h \
- $(TAO_ROOT)/tao/target_specification.i \
- $(TAO_ROOT)/tao/operation_details.i \
- $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.h \
- $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.i \
- $(TAO_ROOT)/tao/Invocation.i \
- $(TAO_ROOT)/tao/PortableInterceptor.h \
- $(TAO_ROOT)/tao/RequestInfo_Util.h \
- $(TAO_ROOT)/tao/ClientRequestInfo.h \
- $(TAO_ROOT)/tao/ClientRequestInfo.inl \
- $(TAO_ROOT)/tao/ClientInterceptorAdapter.h \
- $(TAO_ROOT)/tao/ClientInterceptorAdapter.inl
-
-.obj/RtecEventCommC.o .obj/RtecEventCommC.so .shobj/RtecEventCommC.o .shobj/RtecEventCommC.so: RtecEventCommC.cpp RtecEventCommC.h \
- $(ACE_ROOT)/ace/pre.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h TimeBaseC.h svc_utils_export.h TimeBaseC.i \
- RtecDefaultEventDataC.h RtecDefaultEventDataC.i RtecEventCommC.i \
- $(TAO_ROOT)/tao/Stub.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/MProfile.h \
- $(TAO_ROOT)/tao/Profile.h \
- $(TAO_ROOT)/tao/Tagged_Components.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.i \
- $(TAO_ROOT)/tao/Tagged_Components.i \
- $(TAO_ROOT)/tao/GIOP_Message_Version.h \
- $(TAO_ROOT)/tao/GIOP_Message_Version.inl \
- $(TAO_ROOT)/tao/Profile.i \
- $(TAO_ROOT)/tao/MProfile.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.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 \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(TAO_ROOT)/tao/Stub.i \
- $(TAO_ROOT)/tao/Invocation.h \
- $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \
- $(TAO_ROOT)/tao/Reply_Dispatcher.h \
- $(TAO_ROOT)/tao/Reply_Dispatcher.i \
- $(TAO_ROOT)/tao/LF_Event.h \
- $(TAO_ROOT)/tao/LF_Event.inl \
- $(TAO_ROOT)/tao/TAOC.h \
- $(TAO_ROOT)/tao/TAOC.i \
- $(TAO_ROOT)/tao/operation_details.h \
- $(TAO_ROOT)/tao/Service_Context.h \
- $(TAO_ROOT)/tao/Service_Context.inl \
- $(TAO_ROOT)/tao/target_specification.h \
- $(TAO_ROOT)/tao/target_specification.i \
- $(TAO_ROOT)/tao/operation_details.i \
- $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.h \
- $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.i \
- $(TAO_ROOT)/tao/Invocation.i \
- $(TAO_ROOT)/tao/PortableInterceptor.h \
- $(TAO_ROOT)/tao/RequestInfo_Util.h \
- $(TAO_ROOT)/tao/ClientRequestInfo.h \
- $(TAO_ROOT)/tao/ClientRequestInfo.inl \
- $(TAO_ROOT)/tao/ClientInterceptorAdapter.h \
- $(TAO_ROOT)/tao/ClientInterceptorAdapter.inl
-
-.obj/RtecEventChannelAdminC.o .obj/RtecEventChannelAdminC.so .shobj/RtecEventChannelAdminC.o .shobj/RtecEventChannelAdminC.so: RtecEventChannelAdminC.cpp \
- RtecEventChannelAdminC.h \
- $(ACE_ROOT)/ace/pre.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h RtecEventCommC.h TimeBaseC.h svc_utils_export.h \
- TimeBaseC.i RtecDefaultEventDataC.h RtecDefaultEventDataC.i \
- RtecEventCommC.i RtecBaseC.h RtecBaseC.i RtecEventChannelAdminC.i \
- $(TAO_ROOT)/tao/Stub.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/MProfile.h \
- $(TAO_ROOT)/tao/Profile.h \
- $(TAO_ROOT)/tao/Tagged_Components.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.i \
- $(TAO_ROOT)/tao/Tagged_Components.i \
- $(TAO_ROOT)/tao/GIOP_Message_Version.h \
- $(TAO_ROOT)/tao/GIOP_Message_Version.inl \
- $(TAO_ROOT)/tao/Profile.i \
- $(TAO_ROOT)/tao/MProfile.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.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 \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(TAO_ROOT)/tao/Stub.i \
- $(TAO_ROOT)/tao/Invocation.h \
- $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \
- $(TAO_ROOT)/tao/Reply_Dispatcher.h \
- $(TAO_ROOT)/tao/Reply_Dispatcher.i \
- $(TAO_ROOT)/tao/LF_Event.h \
- $(TAO_ROOT)/tao/LF_Event.inl \
- $(TAO_ROOT)/tao/TAOC.h \
- $(TAO_ROOT)/tao/TAOC.i \
- $(TAO_ROOT)/tao/operation_details.h \
- $(TAO_ROOT)/tao/Service_Context.h \
- $(TAO_ROOT)/tao/Service_Context.inl \
- $(TAO_ROOT)/tao/target_specification.h \
- $(TAO_ROOT)/tao/target_specification.i \
- $(TAO_ROOT)/tao/operation_details.i \
- $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.h \
- $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.i \
- $(TAO_ROOT)/tao/Invocation.i \
- $(TAO_ROOT)/tao/PortableInterceptor.h \
- $(TAO_ROOT)/tao/RequestInfo_Util.h \
- $(TAO_ROOT)/tao/ClientRequestInfo.h \
- $(TAO_ROOT)/tao/ClientRequestInfo.inl \
- $(TAO_ROOT)/tao/ClientInterceptorAdapter.h \
- $(TAO_ROOT)/tao/ClientInterceptorAdapter.inl
-
-.obj/RtecUDPAdminC.o .obj/RtecUDPAdminC.so .shobj/RtecUDPAdminC.o .shobj/RtecUDPAdminC.so: RtecUDPAdminC.cpp RtecUDPAdminC.h \
- $(ACE_ROOT)/ace/pre.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- Event/event_export.h RtecEventCommC.h TimeBaseC.h svc_utils_export.h \
- TimeBaseC.i RtecDefaultEventDataC.h RtecDefaultEventDataC.i \
- RtecEventCommC.i RtecUDPAdminC.i \
- $(TAO_ROOT)/tao/Stub.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/MProfile.h \
- $(TAO_ROOT)/tao/Profile.h \
- $(TAO_ROOT)/tao/Tagged_Components.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.h \
- $(TAO_ROOT)/tao/CONV_FRAMEC.i \
- $(TAO_ROOT)/tao/Tagged_Components.i \
- $(TAO_ROOT)/tao/GIOP_Message_Version.h \
- $(TAO_ROOT)/tao/GIOP_Message_Version.inl \
- $(TAO_ROOT)/tao/Profile.i \
- $(TAO_ROOT)/tao/MProfile.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.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 \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(TAO_ROOT)/tao/Stub.i \
- $(TAO_ROOT)/tao/Invocation.h \
- $(TAO_ROOT)/tao/Synch_Reply_Dispatcher.h \
- $(TAO_ROOT)/tao/Reply_Dispatcher.h \
- $(TAO_ROOT)/tao/Reply_Dispatcher.i \
- $(TAO_ROOT)/tao/LF_Event.h \
- $(TAO_ROOT)/tao/LF_Event.inl \
- $(TAO_ROOT)/tao/TAOC.h \
- $(TAO_ROOT)/tao/TAOC.i \
- $(TAO_ROOT)/tao/operation_details.h \
- $(TAO_ROOT)/tao/Service_Context.h \
- $(TAO_ROOT)/tao/Service_Context.inl \
- $(TAO_ROOT)/tao/target_specification.h \
- $(TAO_ROOT)/tao/target_specification.i \
- $(TAO_ROOT)/tao/operation_details.i \
- $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.h \
- $(TAO_ROOT)/tao/Invocation_Endpoint_Selectors.i \
- $(TAO_ROOT)/tao/Invocation.i \
- $(TAO_ROOT)/tao/PortableInterceptor.h \
- $(TAO_ROOT)/tao/RequestInfo_Util.h \
- $(TAO_ROOT)/tao/ClientRequestInfo.h \
- $(TAO_ROOT)/tao/ClientRequestInfo.inl \
- $(TAO_ROOT)/tao/ClientInterceptorAdapter.h \
- $(TAO_ROOT)/tao/ClientInterceptorAdapter.inl
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/orbsvcs/orbsvcs/RTEvent.bor b/TAO/orbsvcs/orbsvcs/RTEvent.bor
deleted file mode 100644
index 4585a3b7619..00000000000
--- a/TAO/orbsvcs/orbsvcs/RTEvent.bor
+++ /dev/null
@@ -1,119 +0,0 @@
-#
-# Makefile for building the TAO RTEvent library
-#
-
-NAME = TAO_RTEvent
-
-TAO_IDL = $(CORE_BINDIR)\tao_idl -g $(CORE_BINDIR)\gperf.exe \
- -I..\.. -Ge 1 -Wb,export_macro=TAO_RTEvent_Export \
- -Wb,export_include=Event/event_export.h -Wb,pre_include=ace/pre.h \
- -Wb,post_include=ace/post.h
-
-IDLFILES = \
- $(IDLDIR)\RtecDefaultEventData.idl \
- $(IDLDIR)\RtecEventChannelAdmin.idl \
- $(IDLDIR)\RtecEventComm.idl \
- $(IDLDIR)\RtecUDPAdmin.idl
-
-OBJFILES = \
- $(OBJDIR)\EC_And_Filter.obj \
- $(OBJDIR)\EC_Basic_Factory.obj \
- $(OBJDIR)\EC_Basic_Filter_Builder.obj \
- $(OBJDIR)\EC_Bitmask_Filter.obj \
- $(OBJDIR)\EC_Busy_Lock.obj \
- $(OBJDIR)\EC_Conjunction_Filter.obj \
- $(OBJDIR)\EC_ConsumerAdmin.obj \
- $(OBJDIR)\EC_ConsumerControl.obj \
- $(OBJDIR)\EC_Default_Factory.obj \
- $(OBJDIR)\EC_Disjunction_Filter.obj \
- $(OBJDIR)\EC_Dispatching.obj \
- $(OBJDIR)\EC_Dispatching_Task.obj \
- $(OBJDIR)\EC_Event_Channel.obj \
- $(OBJDIR)\EC_Factory.obj \
- $(OBJDIR)\EC_Filter.obj \
- $(OBJDIR)\EC_Filter_Builder.obj \
- $(OBJDIR)\EC_Gateway.obj \
- $(OBJDIR)\EC_Gateway_UDP.obj \
- $(OBJDIR)\EC_Masked_Type_Filter.obj \
- $(OBJDIR)\EC_MT_Dispatching.obj \
- $(OBJDIR)\EC_Negation_Filter.obj \
- $(OBJDIR)\EC_Null_Factory.obj \
- $(OBJDIR)\EC_Null_Scheduling.obj \
- $(OBJDIR)\EC_ObserverStrategy.obj \
- $(OBJDIR)\EC_Per_Supplier_Filter.obj \
- $(OBJDIR)\EC_Prefix_Filter_Builder.obj \
- $(OBJDIR)\EC_ProxyConsumer.obj \
- $(OBJDIR)\EC_ProxySupplier.obj \
- $(OBJDIR)\EC_QOS_Info.obj \
- $(OBJDIR)\EC_Reactive_ConsumerControl.obj \
- $(OBJDIR)\EC_Reactive_SupplierControl.obj \
- $(OBJDIR)\EC_Reactive_Timeout_Generator.obj \
- $(OBJDIR)\EC_Scheduling_Strategy.obj \
- $(OBJDIR)\EC_Supplier_Filter.obj \
- $(OBJDIR)\EC_Supplier_Filter_Builder.obj \
- $(OBJDIR)\EC_SupplierAdmin.obj \
- $(OBJDIR)\EC_SupplierControl.obj \
- $(OBJDIR)\EC_Timeout_Filter.obj \
- $(OBJDIR)\EC_Timeout_Generator.obj \
- $(OBJDIR)\EC_Trivial_Supplier_Filter.obj \
- $(OBJDIR)\EC_Type_Filter.obj \
- $(OBJDIR)\EC_UDP_Admin.obj \
- $(OBJDIR)\Event_Utilities.obj \
- $(OBJDIR)\RtecDefaultEventDataC.obj \
- $(OBJDIR)\RtecDefaultEventDataS.obj \
- $(OBJDIR)\RtecEventChannelAdminC.obj \
- $(OBJDIR)\RtecEventChannelAdminS.obj \
- $(OBJDIR)\RtecEventCommC.obj \
- $(OBJDIR)\RtecEventCommS.obj \
- $(OBJDIR)\RtecUDPAdminC.obj \
- $(OBJDIR)\RtecUDPAdminS.obj
-
-RESOURCE = $(OBJDIR)\orbsvcs.res
-
-CFLAGS = \
- $(ACE_CFLAGS) \
- $(TAO_CFLAGS) \
- $(TAO_PORTABLESERVER_CFLAGS) \
- $(TAO_SVC_UTILS_CFLAGS) \
- $(TAO_NAMING_CFLAGS) \
- $(TAO_RTSCHED_CFLAGS) \
- $(TAO_RTEVENT_CFLAGS) \
- -DTAO_RTEVENT_BUILD_DLL
-
-CPPDIR = .;Event
-
-IDLDIR = .
-
-INCDIR_NAME = orbsvcs\Event
-INCLUDES = Event\*.h Event\*.i
-
-LIBFILES = \
- $(ACE_LIB) \
- $(TAO_LIB) \
- $(TAO_PORTABLESERVER_LIB) \
- $(TAO_SVC_UTILS_LIB) \
- $(TAO_NAMING_LIB) \
- $(TAO_RTSCHED_LIB)
-
-all: idl_src_files
-
-!include <$(ACE_ROOT)\include\makeinclude\build_core_library.bor>
-
-
-#
-# IDL Build rules
-#
-
-idl_src_files: $(IDLFILES:.idl=C.cpp) $(IDLFILES:.idl=S.cpp)
-
-$(IDLDIR)\RtecDefaultEventDataC.cpp $(IDLDIR)\RtecDefaultEventDataS.cpp: $(IDLDIR)\RtecDefaultEventData.idl
- $(TAO_IDL) $**
-
-$(IDLDIR)\RtecEventChannelAdminC.cpp $(IDLDIR)\RtecEventChannelAdminS.cpp: $(IDLDIR)\RtecEventChannelAdmin.idl
- $(TAO_IDL) $**
-
-$(IDLDIR)\RtecEventCommC.cpp $(IDLDIR)\RtecEventCommS.cpp: $(IDLDIR)\RtecEventComm.idl
- $(TAO_IDL) $**
-
-$(IDLDIR)\RtecUDPAdminC.cpp $(IDLDIR)\RtecUDPAdminS.cpp: $(IDLDIR)\RtecUDPAdmin.idl
- $(TAO_IDL) $**
diff --git a/TAO/orbsvcs/orbsvcs/RTEvent.dsp b/TAO/orbsvcs/orbsvcs/RTEvent.dsp
deleted file mode 100644
index d1ab893df50..00000000000
--- a/TAO/orbsvcs/orbsvcs/RTEvent.dsp
+++ /dev/null
@@ -1,1575 +0,0 @@
-# Microsoft Developer Studio Project File - Name="RTEvent" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=RTEvent - Win32 MFC 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 "RTEvent.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 "RTEvent.mak" CFG="RTEvent - Win32 MFC Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "RTEvent - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "RTEvent - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "RTEvent - Win32 MFC Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "RTEvent - Win32 MFC Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "RTEvent - 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 "DLL\Release\RTEvent"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "RTEvent_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../" /I "../../" /I "../../../" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTEVENT_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# 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 /dll /machine:I386
-# ADD LINK32 TAO_Svc_Utils.lib ace.lib TAO.lib TAO_PortableServer.lib /nologo /dll /machine:I386 /out:"..\..\..\bin\TAO_RTEvent.dll" /libpath:"..\..\tao\PortableServer" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "RTEvent - 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 "DLL\Debug\RTEvent"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "RTEvent_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../" /I "../../" /I "../../../" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTEVENT_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /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 /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 TAO_Svc_Utilsd.lib TAOd.lib aced.lib TAO_PortableServerd.lib /nologo /dll /debug /machine:I386 /out:"..\..\..\bin\TAO_RTEventd.dll" /pdbtype:sept /libpath:"..\..\tao\PortableServer" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "RTEvent___Win32_MFC_Debug"
-# PROP BASE Intermediate_Dir "RTEvent___Win32_MFC_Debug"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "DLL\Debug\RTEventMFC"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../" /I "../../" /I "../../../" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTEVENT_BUILD_DLL" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../" /I "../../" /I "../../../" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTEVENT_BUILD_DLL" /D ACE_HAS_MFC=1 /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /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 TAOd.lib aced.lib TAO_Svc_Utilsd.lib /nologo /dll /debug /machine:I386 /out:"..\..\..\bin\TAO_RTEventd.dll" /pdbtype:sept /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-# ADD LINK32 TAOmfcd.lib acemfcd.lib TAO_Svc_Utilsmfcd.lib TAO_PortableServermfcd.lib /nologo /dll /debug /machine:I386 /out:"..\..\..\bin\TAO_RTEventmfcd.dll" /pdbtype:sept /libpath:"..\..\tao\PortableServer" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "RTEvent___Win32_MFC_Release"
-# PROP BASE Intermediate_Dir "RTEvent___Win32_MFC_Release"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "DLL\Release\RTEventMFC"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "../" /I "../../" /I "../../../" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTEVENT_BUILD_DLL" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../" /I "../../" /I "../../../" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "TAO_RTEVENT_BUILD_DLL" /D ACE_HAS_MFC=1 /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# 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 ace.lib TAO.lib TAO_Svc_Utils.lib /nologo /dll /machine:I386 /out:"..\..\..\bin\TAO_RTEvent.dll" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-# ADD LINK32 acemfc.lib TAOmfc.lib TAO_Svc_Utilsmfc.lib TAO_PortableServermfc.lib /nologo /dll /machine:I386 /out:"..\..\..\bin\TAO_RTEventmfc.dll" /libpath:"..\..\tao\PortableServer" /libpath:"..\..\tao" /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "RTEvent - Win32 Release"
-# Name "RTEvent - Win32 Debug"
-# Name "RTEvent - Win32 MFC Debug"
-# Name "RTEvent - Win32 MFC Release"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Event\EC_And_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Filter_Builder.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Bitmask_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Busy_Lock.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Conjunction_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerAdmin.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerControl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Default_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Disjunction_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching_Task.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Event_Channel.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter_Builder.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Gateway.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Gateway_UDP.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Masked_Type_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_MT_Dispatching.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Negation_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Scheduling.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ObserverStrategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Per_Supplier_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Prefix_Filter_Builder.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxyConsumer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxySupplier.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_QOS_Info.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_ConsumerControl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_SupplierControl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_Timeout_Generator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Scheduling_Strategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter_Builder.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierAdmin.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierControl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Generator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Trivial_Supplier_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Type_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_UDP_Admin.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Utilities.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataC.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminC.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommC.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminC.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Event\EC_And_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Filter_Builder.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Bitmask_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Busy_Lock.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Conjunction_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerAdmin.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerControl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Default_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Defaults.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Disjunction_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching_Task.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Event_Channel.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter_Builder.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Gateway.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Gateway_UDP.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Masked_Type_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_MT_Dispatching.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Negation_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Scheduling.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ObserverStrategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Per_Supplier_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Prefix_Filter_Builder.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxyConsumer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxySupplier.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_QOS_Info.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_ConsumerControl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_SupplierControl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_Timeout_Generator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Scheduling_Strategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter_Builder.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierAdmin.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierControl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Generator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Trivial_Supplier_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Type_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_UDP_Admin.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\Event_Channel.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\event_export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Utilities.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataC.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminC.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommC.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminC.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS_T.h
-# End Source File
-# End Group
-# Begin Group "IDL Files"
-
-# PROP Default_Filter ".idl"
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventData.idl
-
-!IF "$(CFG)" == "RTEvent - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECD="..\..\..\bin\Release\tao_idl.exe"
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecDefaultEventData.idl
-InputName=RtecDefaultEventData
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECD="..\..\..\bin\tao_idl.exe"
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecDefaultEventData.idl
-InputName=RtecDefaultEventData
-
-BuildCmds= \
- ..\..\..\bin\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Debug"
-
-# PROP BASE Ignore_Default_Tool 1
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecDefaultEventData.idl
-InputName=RtecDefaultEventData
-
-BuildCmds= \
- ..\..\..\bin\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Release"
-
-# PROP BASE Ignore_Default_Tool 1
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecDefaultEventData.idl
-InputName=RtecDefaultEventData
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdmin.idl
-
-!IF "$(CFG)" == "RTEvent - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECE="..\..\..\bin\Release\tao_idl.exe"
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecEventChannelAdmin.idl
-InputName=RtecEventChannelAdmin
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECE="..\..\..\bin\tao_idl.exe"
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecEventChannelAdmin.idl
-InputName=RtecEventChannelAdmin
-
-BuildCmds= \
- ..\..\..\bin\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Debug"
-
-# PROP BASE Ignore_Default_Tool 1
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecEventChannelAdmin.idl
-InputName=RtecEventChannelAdmin
-
-BuildCmds= \
- ..\..\..\bin\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Release"
-
-# PROP BASE Ignore_Default_Tool 1
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecEventChannelAdmin.idl
-InputName=RtecEventChannelAdmin
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventComm.idl
-
-!IF "$(CFG)" == "RTEvent - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECEV="..\..\..\bin\Release\tao_idl.exe"
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecEventComm.idl
-InputName=RtecEventComm
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECEV="..\..\..\bin\tao_idl.exe"
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecEventComm.idl
-InputName=RtecEventComm
-
-BuildCmds= \
- ..\..\..\bin\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Debug"
-
-# PROP BASE Ignore_Default_Tool 1
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecEventComm.idl
-InputName=RtecEventComm
-
-BuildCmds= \
- ..\..\..\bin\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Release"
-
-# PROP BASE Ignore_Default_Tool 1
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecEventComm.idl
-InputName=RtecEventComm
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdmin.idl
-
-!IF "$(CFG)" == "RTEvent - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECU="..\..\..\bin\Release\tao_idl.exe"
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecUDPAdmin.idl
-InputName=RtecUDPAdmin
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECU="..\..\..\bin\tao_idl.exe"
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecUDPAdmin.idl
-InputName=RtecUDPAdmin
-
-BuildCmds= \
- ..\..\..\bin\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Debug"
-
-# PROP BASE Ignore_Default_Tool 1
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecUDPAdmin.idl
-InputName=RtecUDPAdmin
-
-BuildCmds= \
- ..\..\..\bin\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Release"
-
-# PROP BASE Ignore_Default_Tool 1
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\RtecUDPAdmin.idl
-InputName=RtecUDPAdmin
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter ".i"
-# Begin Source File
-
-SOURCE=.\Event\EC_And_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Factory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Filter_Builder.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Bitmask_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Busy_Lock.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Conjunction_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerAdmin.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerControl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Default_Factory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Disjunction_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching_Task.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Event_Channel.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Factory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter_Builder.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Gateway_UDP.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Masked_Type_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_MT_Dispatching.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Negation_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Factory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Scheduling.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ObserverStrategy.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Per_Supplier_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Prefix_Filter_Builder.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxyConsumer.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxySupplier.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_QOS_Info.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_ConsumerControl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_SupplierControl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_Timeout_Generator.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Scheduling_Strategy.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter_Builder.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierAdmin.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierControl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Generator.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Trivial_Supplier_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Type_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Utilities.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataC.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminC.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommC.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminC.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS_T.i
-# End Source File
-# End Group
-# Begin Group "Template Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS_T.cpp
-
-!IF "$(CFG)" == "RTEvent - Win32 Release"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 Debug"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Debug"
-
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Release"
-
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS_T.cpp
-
-!IF "$(CFG)" == "RTEvent - Win32 Release"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 Debug"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Debug"
-
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Release"
-
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS_T.cpp
-
-!IF "$(CFG)" == "RTEvent - Win32 Release"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 Debug"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Debug"
-
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Release"
-
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS_T.cpp
-
-!IF "$(CFG)" == "RTEvent - Win32 Release"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 Debug"
-
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Debug"
-
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-
-!ELSEIF "$(CFG)" == "RTEvent - Win32 MFC Release"
-
-# PROP BASE Exclude_From_Build 1
-# PROP Exclude_From_Build 1
-
-!ENDIF
-
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/TAO/orbsvcs/orbsvcs/RTEvent_Static.dsp b/TAO/orbsvcs/orbsvcs/RTEvent_Static.dsp
deleted file mode 100644
index d8f32aafbbd..00000000000
--- a/TAO/orbsvcs/orbsvcs/RTEvent_Static.dsp
+++ /dev/null
@@ -1,1106 +0,0 @@
-# Microsoft Developer Studio Project File - Name="RTEvent_Static" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=RTEvent_Static - Win32 Static 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 "RTEvent_Static.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 "RTEvent_Static.mak" CFG="RTEvent_Static - Win32 Static Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "RTEvent_Static - Win32 Static Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "RTEvent_Static - Win32 Static Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "RTEvent_Static - Win32 Static 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 "LIB\Release\RTEvent"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../" /I "../../" /I "../../../" /D "_LIB" /D "_MBCS" /D "TAO_AS_STATIC_LIBS" /D "NDEBUG" /D "ACE_AS_STATIC_LIBS" /D "WIN32" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"TAO_RTEvents.lib"
-
-!ELSEIF "$(CFG)" == "RTEvent_Static - Win32 Static 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 "LIB\Debug\RTEvent"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../" /I "../../" /I "../../../" /D "_LIB" /D "_MBCS" /D "TAO_AS_STATIC_LIBS" /D "_DEBUG" /D "ACE_AS_STATIC_LIBS" /D "WIN32" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"TAO_RTEventsd.lib"
-
-!ENDIF
-
-# Begin Target
-
-# Name "RTEvent_Static - Win32 Static Release"
-# Name "RTEvent_Static - Win32 Static Debug"
-# Begin Group "Template Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# End Group
-# Begin Group "IDL Files"
-
-# PROP Default_Filter "idl"
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventData.idl
-
-!IF "$(CFG)" == "RTEvent_Static - Win32 Static Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL on $(InputPath)
-InputPath=.\RtecDefaultEventData.idl
-InputName=RtecDefaultEventData
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl_static -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent_Static - Win32 Static Debug"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECD="..\..\..\bin\tao_idl_static.exe"
-# Begin Custom Build - Invoking TAO_IDL on $(InputPath)
-InputPath=.\RtecDefaultEventData.idl
-InputName=RtecDefaultEventData
-
-BuildCmds= \
- ..\..\..\bin\tao_idl_static -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdmin.idl
-
-!IF "$(CFG)" == "RTEvent_Static - Win32 Static Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL on $(InputPath)
-InputPath=.\RtecEventChannelAdmin.idl
-InputName=RtecEventChannelAdmin
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl_static -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent_Static - Win32 Static Debug"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECE="..\..\..\bin\tao_idl_static.exe"
-# Begin Custom Build - Invoking TAO_IDL on $(InputPath)
-InputPath=.\RtecEventChannelAdmin.idl
-InputName=RtecEventChannelAdmin
-
-BuildCmds= \
- ..\..\..\bin\tao_idl_static -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventComm.idl
-
-!IF "$(CFG)" == "RTEvent_Static - Win32 Static Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL on $(InputPath)
-InputPath=.\RtecEventComm.idl
-InputName=RtecEventComm
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl_static -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent_Static - Win32 Static Debug"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECEV="..\..\..\bin\tao_idl_static.exe"
-# Begin Custom Build - Invoking TAO_IDL on $(InputPath)
-InputPath=.\RtecEventComm.idl
-InputName=RtecEventComm
-
-BuildCmds= \
- ..\..\..\bin\tao_idl_static -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdmin.idl
-
-!IF "$(CFG)" == "RTEvent_Static - Win32 Static Release"
-
-# PROP Ignore_Default_Tool 1
-# Begin Custom Build - Invoking TAO_IDL on $(InputPath)
-InputPath=.\RtecUDPAdmin.idl
-InputName=RtecUDPAdmin
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl_static -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "RTEvent_Static - Win32 Static Debug"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__RTECU="..\..\..\bin\tao_idl_static.exe"
-# Begin Custom Build - Invoking TAO_IDL on $(InputPath)
-InputPath=.\RtecUDPAdmin.idl
-InputName=RtecUDPAdmin
-
-BuildCmds= \
- ..\..\..\bin\tao_idl_static -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_RTEvent_Export -Wb,export_include=Event\event_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "i"
-# Begin Source File
-
-SOURCE=.\Event\EC_And_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Factory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Filter_Builder.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Bitmask_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Busy_Lock.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Conjunction_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerAdmin.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerControl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Default_Factory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Disjunction_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching_Task.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Event_Channel.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Factory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter_Builder.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Gateway_UDP.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Masked_Type_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_MT_Dispatching.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Negation_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Factory.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Scheduling.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ObserverStrategy.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Per_Supplier_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Prefix_Filter_Builder.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxyConsumer.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxySupplier.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_QOS_Info.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_ConsumerControl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_SupplierControl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_Timeout_Generator.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Scheduling_Strategy.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter_Builder.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierAdmin.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierControl.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Generator.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Trivial_Supplier_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Type_Filter.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Utilities.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataC.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminC.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommC.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS_T.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminC.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS_T.i
-# End Source File
-# End Group
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp"
-# Begin Source File
-
-SOURCE=.\Event\EC_And_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Filter_Builder.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Bitmask_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Busy_Lock.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Conjunction_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerAdmin.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerControl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Default_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Disjunction_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching_Task.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Event_Channel.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter_Builder.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Gateway.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Gateway_UDP.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Masked_Type_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_MT_Dispatching.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Negation_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Scheduling.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ObserverStrategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Per_Supplier_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Prefix_Filter_Builder.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxyConsumer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxySupplier.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_QOS_Info.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_ConsumerControl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_SupplierControl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_Timeout_Generator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Scheduling_Strategy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter_Builder.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierAdmin.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierControl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Generator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Trivial_Supplier_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Type_Filter.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_UDP_Admin.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Utilities.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataC.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminC.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommC.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminC.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\Event\EC_And_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Basic_Filter_Builder.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Bitmask_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Busy_Lock.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Conjunction_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerAdmin.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ConsumerControl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Default_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Defaults.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Disjunction_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Dispatching_Task.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Event_Channel.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Filter_Builder.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Gateway.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Gateway_UDP.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Masked_Type_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_MT_Dispatching.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Negation_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Null_Scheduling.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ObserverStrategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Per_Supplier_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Prefix_Filter_Builder.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxyConsumer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_ProxySupplier.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_QOS_Info.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_ConsumerControl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_SupplierControl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Reactive_Timeout_Generator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Scheduling_Strategy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Supplier_Filter_Builder.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierAdmin.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_SupplierControl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Timeout_Generator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Trivial_Supplier_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_Type_Filter.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\EC_UDP_Admin.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event\event_export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Event_Utilities.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataC.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecDefaultEventDataS_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminC.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventChannelAdminS_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommC.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecEventCommS_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminC.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\RtecUDPAdminS_T.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP.dsp b/TAO/orbsvcs/orbsvcs/SSLIOP.dsp
deleted file mode 100644
index 5e1b7f7944d..00000000000
--- a/TAO/orbsvcs/orbsvcs/SSLIOP.dsp
+++ /dev/null
@@ -1,383 +0,0 @@
-# Microsoft Developer Studio Project File - Name="SSLIOP" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=SSLIOP - 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 "SSLIOP.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 "SSLIOP.mak" CFG="SSLIOP - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "SSLIOP - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "SSLIOP - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "SSLIOP - 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 "DLL\Release\SSLIOP"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SSLIOP_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../" /I "../../" /I "../../../" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "TAO_SSLIOP_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# 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 /dll /machine:I386
-# ADD LINK32 ACE_SSL.lib ace.lib TAO.lib TAO_Security.lib TAO_PortableServer.lib ssleay32.lib libeay32.lib /nologo /dll /machine:I386 /out:"..\..\..\bin\TAO_SSLIOP.dll" /libpath:"..\..\tao\PortableServer" /libpath:"..\..\tao" /libpath:"..\..\..\ace" /libpath:"..\..\..\ace\SSL"
-
-!ELSEIF "$(CFG)" == "SSLIOP - 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 "DLL\Debug\SSLIOP"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "SSLIOP_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../" /I "../../" /I "../../../" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "TAO_SSLIOP_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /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 /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 ACE_SSLd.lib TAOd.lib aced.lib TAO_Securityd.lib TAO_PortableServerd.lib libeay32.lib ssleay32.lib /nologo /dll /debug /machine:I386 /out:"..\..\..\bin\TAO_SSLIOPd.dll" /pdbtype:sept /libpath:"..\..\tao\PortableServer" /libpath:"..\..\tao" /libpath:"..\..\..\ace" /libpath:"..\..\..\ace\SSL"
-# SUBTRACT LINK32 /profile
-
-!ENDIF
-
-# Begin Target
-
-# Name "SSLIOP - Win32 Release"
-# Name "SSLIOP - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\SSLIOP\IIOP_SSL_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\IIOP_SSL_Connection_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\IIOP_SSL_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\IIOP_SSL_Transport.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\ssl_endpoints.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Connection_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Connector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Current.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Current_Impl.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Endpoint.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Factory.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Invocation_Interceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_ORBInitializer.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Profile.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Transport.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Util.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOPC.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm"
-# Begin Source File
-
-SOURCE=.\SSLIOP\IIOP_SSL_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\IIOP_SSL_Connection_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\IIOP_SSL_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\IIOP_SSL_Transport.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\ssl_endpoints.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Connection_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Connector.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Current.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Current_Impl.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Endpoint.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Factory.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Invocation_Interceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_ORBInitializer.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Profile.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Transport.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Util.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOPC.h
-# End Source File
-# End Group
-# Begin Group "IDL Files"
-
-# PROP Default_Filter ".idl"
-# Begin Source File
-
-SOURCE=.\SSLIOP.idl
-
-!IF "$(CFG)" == "SSLIOP - Win32 Release"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__SSLIO="..\..\..\bin\Release\tao_idl.exe"
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\SSLIOP.idl
-InputName=SSLIOP
-
-BuildCmds= \
- ..\..\..\bin\Release\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_SSLIOP_Export -Wb,export_include=SSLIOP\SSLIOP_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ELSEIF "$(CFG)" == "SSLIOP - Win32 Debug"
-
-# PROP Ignore_Default_Tool 1
-USERDEP__SSLIO="..\..\..\bin\tao_idl.exe"
-# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputName)
-InputPath=.\SSLIOP.idl
-InputName=SSLIOP
-
-BuildCmds= \
- ..\..\..\bin\tao_idl -Ge 1 -I../../ -I../../tao -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -Wb,export_macro=TAO_SSLIOP_Export -Wb,export_include=SSLIOP\SSLIOP_export.h $(InputName).idl
-
-"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-
-"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
- $(BuildCmds)
-# End Custom Build
-
-!ENDIF
-
-# End Source File
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "i;inl"
-# Begin Source File
-
-SOURCE=.\SSLIOP\IIOP_SSL_Connection_Handler.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\ssl_endpoints.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Acceptor.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Connection_Handler.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Current.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Current_Impl.inl
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Endpoint.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOP\SSLIOP_Profile.i
-# End Source File
-# Begin Source File
-
-SOURCE=.\SSLIOPC.i
-# End Source File
-# End Group
-# Begin Group "Template Files"
-
-# PROP Default_Filter ""
-# End Group
-# End Target
-# End Project
diff --git a/TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.h b/TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.h
deleted file mode 100644
index 9490a558de5..00000000000
--- a/TAO/orbsvcs/tests/EC_Mcast/EC_Mcast.h
+++ /dev/null
@@ -1,520 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-//
-// ============================================================================
-//
-// = DESCRIPTION
-// This test attempts to communicate several Event Channels UDP
-// using multicast.
-// The test reads a configuration file that describe what events are
-// received by each "Federation". The user must provide, on the
-// command line, which federations are present on each process
-// (these are called the "Local Federations").
-// The test also creates one supplier for each federation, the
-// supplier can send an event of any possible type described in the
-// file.
-
-// = HOW
-// The test creates one UDP_Sender for each remote federation,
-// this is a PushConsumer that sends the events using UDP
-// multicast.
-// Notice that there is still a win in using multicast because
-// multiple copies of the federation may be present.
-// To receive the event the test creates one UDP_Receiver for each
-// local federation, it joins to the right multicast groups and
-// pushes the events it receives, acting as a PushSupplier.
-//
-// The UDP_Receiversfederation suppliers Mcast packets as local events
-// could observe the changes in the local subscriptions and use that
-// to join or leave the multicast groups.
-// To demostrate this the test will need to reconfigure its
-// subscription list every so often (a few seconds seems like a good
-// idea).
-//
-// = TODO
-//
-// It is unfortunate that the test must know before-hand the remote
-// consumer interests. It would be really simple to use a better
-// strategy: the test could "observe" changes in the remote EC
-// subscription list, it could then modify its local consumers
-// subscriptions.
-//
-// ============================================================================
-
-#ifndef EC_MCAST_H
-#define EC_MCAST_H
-
-#include "ace/SString.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/High_Res_Timer.h"
-#include "orbsvcs/RtecEventChannelAdminC.h"
-#include "orbsvcs/RtecEventCommS.h"
-#include "orbsvcs/Channel_Clients_T.h"
-#include "orbsvcs/Event/EC_Gateway_UDP.h"
-#include "orbsvcs/Event/EC_UDP_Admin.h"
-
-class ECM_Driver;
-
-class ECM_Federation
-{
- // = DESCRIPTION
- // The test reads a configuration file where it obtains the data
- // about each "federation". A federation is some application,
- // distributed over several processes. The potential set of
- // publications and the potential set of subscriptions is known
- // beforehand, but the actual publications (or subscriptions) may
- // change dynamically.
- // As stated above the federation may be present in more than one
- // process, but also a process may participate in more than one
- // federation.
- //
-public:
- ECM_Federation (char* name,
- CORBA::UShort mcast_port,
- int supplier_types,
- char** supplier_names,
- int consumer_types,
- char** consumer_names);
- // Constructor, it assumes ownership of the buffers, strings must be
- // allocated using CORBA::string_alloc(), buffers using operator new.
-
- ~ECM_Federation (void);
- // Dtor
-
- const char* name (void) const;
- // The name of the federation....
-
- CORBA::UShort mcast_port (void) const;
- // The port used by this federation to receive mcast messages.
-
- int supplier_types (void) const;
- // The number of different event types published by this federation.
-
- const char* supplier_name (CORBA::ULong i) const;
- // The name (mcast addr in A.B.C.D format) of the event type <i>
-
- CORBA::ULong supplier_ipaddr (CORBA::ULong i) const;
- // The ipaddr (in host byte order) of the event type <i>
-
- int consumer_types (void) const;
- // The number of different event types consumed by this federation.
-
- const char* consumer_name (CORBA::ULong i) const;
- // The name (mcast addr in A.B.C.D format) of the event type <i>
-
- CORBA::ULong consumer_ipaddr (CORBA::ULong i) const;
- // The ipaddr (in host byte order) of the event type <i>
-
- void open (TAO_ECG_UDP_Out_Endpoint *endoint,
- RtecEventChannelAdmin::EventChannel_ptr ec,
- CORBA::Environment &_env);
- // Connect the UDP sender to the EC.
-
- void close (CORBA::Environment &_env);
- // Close the UDP sender, disconnect from the EC
-
- int sender_local_addr (ACE_INET_Addr& addr);
- // Return the sender local address
-
- RtecUDPAdmin::AddrServer_ptr addr_server (CORBA::Environment &env);
- // This address server can be used to convert event headers
- // (type,source) to UDP addresses (ipaddr,port)
-
-private:
- char* name_;
- CORBA::UShort mcast_port_;
-
- int supplier_types_;
- char** supplier_names_;
- CORBA::ULong* supplier_ipaddr_;
-
- int consumer_types_;
- char** consumer_names_;
- CORBA::ULong* consumer_ipaddr_;
-
- TAO_ECG_UDP_Sender sender_;
- // The sender
-
- TAO_EC_Simple_AddrServer addr_server_;
- // Resolve event headers (type,source) to UDP addresses
- // (ipaddr,port)
-};
-
-class ECM_Local_Federation;
-
-class ECM_Supplier : public POA_RtecEventComm::PushSupplier
-{
- //
- // = TITLE
- // Helper class to simulate an application acting as an event
- // supplier.
- //
- // = DESCRIPTION
- // This class connects as a consumer for timeouts in the EC. On
- // every timeout it delegates on the ECM_Local_Federation class,
- // usually this results in some reconfiguration and/or some events
- // sent.
- //
-public:
- ECM_Supplier (ECM_Local_Federation* federation);
-
- void open (const char* name,
- RtecEventChannelAdmin::EventChannel_ptr event_channel,
- CORBA::Environment& _env);
- // This method connects the supplier to the EC.
-
- void close (CORBA::Environment &_env);
- // Disconnect from the EC.
-
- void activate (RtecEventChannelAdmin::EventChannel_ptr event_channel,
- RtecEventComm::Time interval,
- CORBA::Environment& _env);
- // Connect as a consumer to start receiving events.
-
- RtecEventComm::EventSourceID supplier_id (void) const;
- // The supplier ID.
-
- void push (const RtecEventComm::EventSet& events,
- CORBA::Environment &_env);
- void disconnect_push_consumer (CORBA::Environment &);
- // Implement the callbacks for our consumer personality.
-
- // = The POA_RtecEventComm::PushSupplier methods.
- virtual void disconnect_push_supplier (CORBA::Environment &)
- ACE_THROW_SPEC ((CORBA::SystemException));
-
-private:
- ECM_Local_Federation* federation_;
- // To callback the federation.
-
- RtecEventComm::EventSourceID supplier_id_;
- // We generate an id based on the name....
-
- RtecEventChannelAdmin::ProxyPushConsumer_var consumer_proxy_;
- // We talk to the EC (as a supplier) using this proxy.
-
- ACE_PushConsumer_Adapter<ECM_Supplier> consumer_;
- // We also connect to the EC as a consumer so we can receive the
- // timeout events.
-
- RtecEventChannelAdmin::ProxyPushSupplier_var supplier_proxy_;
- // We talk to the EC (as a supplier) using this proxy.
-};
-
-class ECM_Consumer : public POA_RtecEventComm::PushConsumer
-{
- //
- // = TITLE
- // Helper class to simulate an application acting as an event
- // consumer.
- //
- // = DESCRIPTION
- // This class connects as an event consumer to the EC. The events
- // are actually handled by the ECM_Local_Federation.
-public:
- ECM_Consumer (ECM_Local_Federation* federation);
-
- void open (const char* name,
- RtecEventChannelAdmin::EventChannel_ptr event_channel,
- ACE_RANDR_TYPE &seed,
- CORBA::Environment& _env);
- // This method connects the consumer to the EC.
-
- void close (CORBA::Environment &_env);
- // Disconnect from the EC.
-
- void connect (ACE_RANDR_TYPE& seed,
- CORBA::Environment &_env);
- void disconnect (CORBA::Environment &_env);
- // Disconnect from the supplier, but do not forget about it or close
- // it.
-
- // = The POA_RtecEventComm::PushComsumer methods.
- virtual void push (const RtecEventComm::EventSet& events,
- CORBA::Environment &_env)
- ACE_THROW_SPEC ((CORBA::SystemException));
- virtual void disconnect_push_consumer (CORBA::Environment &)
- ACE_THROW_SPEC ((CORBA::SystemException));
-
-private:
- ECM_Local_Federation* federation_;
- // To callback.
-
- RtecEventChannelAdmin::ProxyPushSupplier_var supplier_proxy_;
- // We talk to the EC using this proxy.
-
- RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin_;
- // We talk to the EC using this proxy.
-};
-
-class ECM_Local_Federation
-{
- // = DESCRIPTION
- // This class is used to represent a federation that is actually
- // running in this process.
- //
-public:
- ECM_Local_Federation (ECM_Federation *federation,
- ECM_Driver *driver);
- // Constructor.
- ~ECM_Local_Federation (void);
- // Destructor
-
- void open (int event_count,
- RtecEventChannelAdmin::EventChannel_ptr event_channel,
- CORBA::Environment& _env);
- // Connect both the supplier and the consumer.
-
- void close (CORBA::Environment& _env);
- // Disconnect everybody from the EC
-
- void activate (RtecEventChannelAdmin::EventChannel_ptr event_channel,
- RtecEventComm::Time interval,
- CORBA::Environment& _env);
- // Activate the supplier
-
- void supplier_timeout (RtecEventComm::PushConsumer_ptr consumer,
- CORBA::Environment& _env);
- // The supplier is ready to send a new event.
-
- void consumer_push (ACE_hrtime_t arrival,
- const RtecEventComm::EventSet& event,
- CORBA::Environment& _env);
- // The consumer just received an event.
-
- const ECM_Federation *federation (void) const;
- // The federation description.
-
- void open_receiver (RtecEventChannelAdmin::EventChannel_ptr ec,
- TAO_ECG_UDP_Out_Endpoint* ignore_from,
- CORBA::Environment &_env);
- // Connect the UDP receiver to the EC.
-
- void close_receiver (CORBA::Environment &_env);
- // Close the UDP receiver, disconnect from the EC
-
- void dump_results (void) const;
- // Report the results back to the user...
-
- void subscribed_bit (int i, CORBA::Boolean x);
- CORBA::Boolean subscribed_bit (int i) const;
- // Set&Get the subscribed bit; this defines the subset of events
- // that we actually publish.
-
- // = Delegate on the federation description
- const char* name (void) const;
- CORBA::UShort mcast_port (void) const;
- int supplier_types (void) const;
- const char* supplier_name (CORBA::ULong i) const;
- CORBA::ULong supplier_ipaddr (CORBA::ULong i) const;
- int consumer_types (void) const;
- const char* consumer_name (CORBA::ULong i) const;
- CORBA::ULong consumer_ipaddr (CORBA::ULong i) const;
-
-private:
- ECM_Federation *federation_;
- // The description of the events we send and receive.
-
- ECM_Driver *driver_;
- // The test driver.
-
- ECM_Consumer consumer_;
- ECM_Supplier supplier_;
- // The supplier and consumer helper classes, other than
- // initialization this classes only forward events to the
- // Federation.
-
- // Collect statistics
-
- CORBA::ULong recv_count_;
- // Messages received.
-
- CORBA::ULong unfiltered_count_;
- // Messages received that were not properly filtered.
-
- CORBA::ULong invalid_count_;
- // Message received that could *not* be destined to this federation,
- // yet they were received.
-
- CORBA::ULong send_count_;
- // Messages sent.
-
- int event_count_;
- // How many messages will we send before stop the simulation.
-
- ACE_Time_Value last_publication_change_;
- // The last time we changed our publication list, we don't change it
- // too often.
-
- ACE_Time_Value last_subscription_change_;
- // The last time we changed our publication, so we don't change too
- // often.
-
- TAO_ECG_UDP_Receiver receiver_;
- // This object reads the events and pushes them into the EC. Notice
- // that it can receive events from multiple Event Handlers.
-
- TAO_ECG_Mcast_EH mcast_eh_;
- // The event handler, it receives callbacks from the reactor
- // whenever an event is available in some of the multicast groups,
- // it then forwards to the <mcast_recv_> object for processing and
- // dispatching of the event.
- // @@ TODO Eventually we may need several of this objects to handle
- // OS limitations on the number of multicast groups per socket.
-
- ACE_RANDR_TYPE seed_;
- // The seed for a random number generator.
-
- CORBA::ULong subscription_change_period_;
- // The (average) period between subscription changes, in usecs
-
- CORBA::ULong publication_change_period_;
- // The (average) period between publication changes, in usecs
-
- CORBA::Boolean* subscription_subset_;
- // The events we are actually subscribed to.
-};
-
-class ECM_Driver
-{
- //
- // = TITLE
- // Demonstrate the use of the UDP Gateways.
- //
- // = DESCRIPTION
- // This class is design to exercise several features of the UDP
- // Gateways and its companion classes.
- // We create a set of processes, each running one EC, with
- // multiple consumers and suppliers colocated with the EC.
- // The ECs communicate among themselves using multicast.
- // The test thus show how to use multicast, change the local
- // ECG_UDP_Receiver and ECG_UDP_Sender QoS specifications
- // dynamically, how to economically use the OS resources to
- // receive and send multicast messages, etc.
- //
-public:
- ECM_Driver (void);
-
- enum {
- MAX_EVENTS = 1024,
- // Maximum number of events to send on each Federation.
-
- MAX_LOCAL_FEDERATIONS = 16,
- // Maximum number of federations running on a single process
-
- MAX_FEDERATIONS = 128
- // Maximum number of federations in the simulation
- };
-
- int run (int argc, char* argv[]);
- // Run the test, read all the configuration files, etc.
-
- void federation_has_shutdown (ECM_Local_Federation *federation,
- CORBA::Environment& _env);
- // One of the federations has completed its simulation, once all of
- // them finish the test exists.
-
-
-private:
- void open_federations (RtecEventChannelAdmin::EventChannel_ptr ec,
- CORBA::Environment &_env);
- // Connect the federations to the EC.
-
- void activate_federations (RtecEventChannelAdmin::EventChannel_ptr ec,
- CORBA::Environment &_env);
- // Activate all the federations
-
- void close_federations (CORBA::Environment &_env);
- // Close the federations, i.e. disconnect from the EC, deactivate
- // the objects, etc.
-
- void open_senders (RtecEventChannelAdmin::EventChannel_ptr ec,
- CORBA::Environment &_env);
- // Connect all the senders, so we can start multicasting events.
-
- void open_receivers (RtecEventChannelAdmin::EventChannel_ptr ec,
- CORBA::Environment &_env);
- // Connect all the receivers, thus we accept events arriving through
- // multicast.
-
- void close_senders (CORBA::Environment &_env);
- // Close all the senders to cleanup resources.
-
- void close_receivers (CORBA::Environment &_env);
- // Close all the receivers to cleanup resources.
-
- int shutdown (CORBA::Environment&);
- // Called when the main thread.
-
- int parse_args (int argc, char* argv[]);
- // parse the command line arguments
-
- int parse_config_file (void);
- // parse the command line arguments
-
- int parse_name_list (FILE* file, int n, char** names,
- const char* error_msg);
- // parse one of the lists of names in the federation definition.
-
- int skip_blanks (FILE* file,
- const char* error_msg);
- // skip the blanks in the file.
-
- void dump_results (void);
- // Dump the results to the standard output.
-
-private:
- int event_period_;
- // The events are generated using this interval, in microseconds.
-
- int event_count_;
- // How many events will the suppliers send
-
- char* config_filename_;
- // The name of the file where we read the configuration.
-
- const char* pid_filename_;
- // The name of a file where the process stores its pid
-
- int local_federations_count_;
- // How many federations are running in this process (or, if you
- // prefer, in how many federations does this process participate).
-
- ECM_Local_Federation* local_federations_[MAX_LOCAL_FEDERATIONS];
- // The local federations.
-
- char* local_names_[MAX_LOCAL_FEDERATIONS];
- // The names of the local federations.
-
- int all_federations_count_;
- // The total number of federations we belong to.
-
- ECM_Federation* all_federations_[MAX_FEDERATIONS];
- // All the federations.
-
- ACE_Atomic_Op<TAO_SYNCH_MUTEX,CORBA::ULong> federations_running_;
- // Keep track of how many federations are active so we can shutdown
- // once they are all destroyed.
-
- ACE_hrtime_t test_start_;
- ACE_hrtime_t test_stop_;
- // Measure the test elapsed time as well as mark the beginning of
- // the frames.
-
- CORBA::ORB_var orb_;
- // The ORB, so we can shut it down.
-
- TAO_ECG_UDP_Out_Endpoint endpoint_;
- // This socket is shared by all the federations to send the
- // multicast events.
-};
-
-#if defined (__ACE_INLINE__)
-#include "EC_Mcast.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* EC_MCAST_H */
diff --git a/TAO/orbsvcs/tests/EC_Mcast/Makefile b/TAO/orbsvcs/tests/EC_Mcast/Makefile
deleted file mode 100644
index c7d8622813a..00000000000
--- a/TAO/orbsvcs/tests/EC_Mcast/Makefile
+++ /dev/null
@@ -1,414 +0,0 @@
-# $Id$
-
-SRC = $(BIN:%=%$(VAR).cpp)
-LDLIBS= -lTAO_RTEvent -lTAO_Svc_Utils -lTAO_PortableServer -lTAO
-
-ifndef TAO_ROOT
- TAO_ROOT = $(ACE_ROOT)/TAO
-endif
-
-CPPFLAGS += -I$(TAO_ROOT)/orbsvcs \
- -I$(TAO_ROOT)
-
-BIN2 = EC_Mcast
-
-PSRC=EC_Mcast.cpp
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(TAO_ROOT)/rules.tao.GNU
-
-#### If the TAO orbsvcs library wasn't built with sufficient components,
-#### don't try to build here.
-TAO_ORBSVCS := $(shell sh $(ACE_ROOT)/bin/ace_components --orbsvcs)
-ifeq (RTEvent,$(findstring RTEvent,$(TAO_ORBSVCS)))
- ifneq ($(ACE_HAS_GNUG_PRE_2_8),1)
- BIN = $(BIN2)
- endif # ACE_HAS_GNUG_PRE_2_8
-endif # RTEvent
-
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU
-
-#### Local rules and variables...
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/EC_Mcast.o .obj/EC_Mcast.so .shobj/EC_Mcast.o .shobj/EC_Mcast.so: EC_Mcast.cpp EC_Mcast.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/event_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/svc_utils_export.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.h \
- $(TAO_ROOT)/tao/TimeBaseS_T.i \
- $(TAO_ROOT)/tao/TimeBaseS_T.cpp \
- $(TAO_ROOT)/tao/TimeBaseS.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/TimeBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecDefaultEventDataS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Channel_Clients_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Channel_Clients_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Channel_Clients_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminC.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminC.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecUDPAdminS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecBaseS.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS_T.cpp \
- $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminS.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \
- $(ACE_ROOT)/ace/SOCK_Dgram.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_Dgram.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \
- $(ACE_ROOT)/ace/SOCK_CODgram.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/SOCK_CODgram.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_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/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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Gateway_UDP.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_UDP_Admin.h \
- EC_Mcast.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Utilities.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Service_Constants.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Time_Utilities.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Utilities.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Event_Channel.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Factory.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Factory.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Defaults.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Event_Channel.i \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Default_Factory.h \
- $(TAO_ROOT)/orbsvcs/orbsvcs/Event/EC_Default_Factory.i \
- $(TAO_ROOT)/tao/ORB_Core.h \
- $(TAO_ROOT)/tao/Policy_Manager.h \
- $(TAO_ROOT)/tao/Policy_Set.h \
- $(TAO_ROOT)/tao/Policy_Set.i \
- $(TAO_ROOT)/tao/debug.h \
- $(TAO_ROOT)/tao/Policy_Manager.i \
- $(TAO_ROOT)/tao/Resource_Factory.h \
- $(TAO_ROOT)/tao/Pluggable.h \
- $(TAO_ROOT)/tao/Pluggable.i \
- $(TAO_ROOT)/tao/Protocol_Factory.h \
- $(TAO_ROOT)/tao/params.h \
- $(TAO_ROOT)/tao/params.i \
- $(TAO_ROOT)/tao/Adapter.h \
- $(TAO_ROOT)/tao/Adapter.i \
- $(TAO_ROOT)/tao/PolicyFactory_Registry.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(TAO_ROOT)/tao/Parser_Registry.h \
- $(TAO_ROOT)/tao/Parser_Registry.i \
- $(TAO_ROOT)/tao/Service_Callbacks.h \
- $(TAO_ROOT)/tao/Service_Callbacks.i \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.h \
- $(TAO_ROOT)/tao/Fault_Tolerance_Service.i \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(TAO_ROOT)/tao/Cleanup_Func_Registry.inl \
- $(TAO_ROOT)/tao/Object_Ref_Table.h \
- $(TAO_ROOT)/tao/Interceptor_List.h \
- $(TAO_ROOT)/tao/Interceptor_List.inl \
- $(TAO_ROOT)/tao/Protocols_Hooks.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(TAO_ROOT)/tao/ORB_Core.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- $(ACE_ROOT)/ace/Sched_Params.h \
- $(ACE_ROOT)/ace/Sched_Params.i \
- $(ACE_ROOT)/ace/Read_Buffer.h \
- $(ACE_ROOT)/ace/Read_Buffer.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/orbsvcs/tests/EC_Mcast/sample.cfg b/TAO/orbsvcs/tests/EC_Mcast/sample.cfg
deleted file mode 100644
index 060977e294f..00000000000
--- a/TAO/orbsvcs/tests/EC_Mcast/sample.cfg
+++ /dev/null
@@ -1,64 +0,0 @@
-6
-Set00 12000 5 3
- 224.100.0.1
- 224.100.0.2
- 224.100.0.3
- 224.100.0.4
- 224.100.0.5
- 224.100.5.1
- 224.100.5.2
- 224.100.5.3
-Set01 12001 4 4
- 224.100.1.1
- 224.100.1.2
- 224.100.1.3
- 224.100.1.4
- 224.100.2.1
- 224.100.2.2
- 224.100.2.4
- 224.100.0.1
-Set02 12002 3 5
- 224.100.2.1
- 224.100.2.2
- 224.100.2.3
- 224.100.2.1
- 224.100.2.2
- 224.100.2.3
- 224.100.1.1
- 224.100.1.3
-Set03 12003 4 4
- 224.100.3.1
- 224.100.3.2
- 224.100.3.3
- 224.100.3.4
- 224.100.2.1
- 224.100.2.2
- 224.100.2.3
- 224.100.2.4
-Set04 12004 4 4
- 224.100.4.1
- 224.100.4.2
- 224.100.4.3
- 224.100.4.4
- 224.100.5.1
- 224.100.5.2
- 224.100.4.3
- 224.100.4.4
-Set05 12005 4 4
- 224.100.5.1
- 224.100.5.2
- 224.100.5.3
- 224.100.5.4
- 224.100.4.1
- 224.100.4.2
- 224.100.5.3
- 224.100.5.4
-Set06 12006 4 4
- 224.100.0.1
- 224.100.0.2
- 224.100.2.1
- 224.100.2.2
- 224.100.0.3
- 224.100.0.4
- 224.100.2.3
- 224.100.2.4
diff --git a/TAO/performance-tests/RTCorba/Multiple_Endpoints/Endpoint_Per_Priority/Makefile b/TAO/performance-tests/RTCorba/Multiple_Endpoints/Endpoint_Per_Priority/Makefile
deleted file mode 100644
index 6abeb8554f4..00000000000
--- a/TAO/performance-tests/RTCorba/Multiple_Endpoints/Endpoint_Per_Priority/Makefile
+++ /dev/null
@@ -1,616 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-ifndef TAO_ROOT
- TAO_ROOT = $(ACE_ROOT)/TAO
-endif # ! TAO_ROOT
-
-LDLIBS = -lRTCORBA_Common -lTAO_Strategies -lTAO_PortableServer -lTAO
-
-BIN_UNCHECKED = server client
-
-CLIENT_OBJS = client.o
-SERVER_OBJS = server.o
-
-BUILD = $(BIN)
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-VBIN = $(BIN:%=%$(VAR))
-SRC=$(CLIENT_OBJS:.o=.cpp) $(SERVER_OBJS:.o=.cpp)
-CPPFLAGS += -I../Common
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-include $(ACE_ROOT)/include/makeinclude/macros.GNU
-include $(TAO_ROOT)/rules.tao.GNU
-
-ifeq ($(rt_corba),1)
- ifeq ($(minimum_corba),0)
- BIN=$(BIN_UNCHECKED)
- endif # minimum_corba
-endif # rt_corba
-
-include $(ACE_ROOT)/include/makeinclude/rules.common.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-include $(TAO_ROOT)/taoconfig.mk
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-server: $(addprefix $(VDIR),$(SERVER_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-client: $(addprefix $(VDIR),$(CLIENT_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-realclean: clean
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/client.o .obj/client.o .obj/client.o .obj/client.o: client.cpp ../Common/testC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- ../Common/rtcorba_common_export.h ../Common/testC.i \
- $(TAO_ROOT)/tao/TAOC.h \
- $(TAO_ROOT)/tao/TAOC.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.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/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(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/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stats.h \
- $(ACE_ROOT)/ace/Basic_Stats.h \
- $(ACE_ROOT)/ace/Basic_Stats.inl \
- $(ACE_ROOT)/ace/Stats.i \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Sched_Params.h \
- $(ACE_ROOT)/ace/Sched_Params.i
-
-.obj/server.o .obj/server.o .obj/server.o .obj/server.o: server.cpp ../Common/test_i.h ../Common/testS.h \
- ../Common/testC.h \
- $(TAO_ROOT)/tao/corba.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(TAO_ROOT)/tao/corbafwd.h \
- $(ACE_ROOT)/ace/CDR_Base.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/CDR_Base.inl \
- $(TAO_ROOT)/tao/try_macros.h \
- $(TAO_ROOT)/tao/orbconf.h \
- $(ACE_ROOT)/ace/CORBA_macros.h \
- $(TAO_ROOT)/tao/varbase.h \
- $(TAO_ROOT)/tao/TAO_Export.h \
- $(TAO_ROOT)/tao/corbafwd.i \
- $(TAO_ROOT)/tao/Typecode.h \
- $(TAO_ROOT)/tao/Exception.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(TAO_ROOT)/tao/Exception.i \
- $(TAO_ROOT)/tao/Typecode.i \
- $(TAO_ROOT)/tao/Any.h \
- $(TAO_ROOT)/tao/CDR.h \
- $(ACE_ROOT)/ace/CDR_Stream.h \
- $(ACE_ROOT)/ace/CDR_Stream.i \
- $(TAO_ROOT)/tao/CDR.i \
- $(TAO_ROOT)/tao/Environment.h \
- $(TAO_ROOT)/tao/Environment.i \
- $(TAO_ROOT)/tao/Object.h \
- $(TAO_ROOT)/tao/Object_Proxy_Broker.h \
- $(TAO_ROOT)/tao/Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/Object.i \
- $(TAO_ROOT)/tao/Any.i \
- $(TAO_ROOT)/tao/NVList.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(TAO_ROOT)/tao/NVList.i \
- $(TAO_ROOT)/tao/LocalObject.h \
- $(TAO_ROOT)/tao/LocalObject.i \
- $(TAO_ROOT)/tao/Principal.h \
- $(TAO_ROOT)/tao/OctetSeqC.h \
- $(TAO_ROOT)/tao/Sequence.h \
- $(TAO_ROOT)/tao/Managed_Types.h \
- $(TAO_ROOT)/tao/Managed_Types.i \
- $(TAO_ROOT)/tao/Sequence.i \
- $(TAO_ROOT)/tao/Sequence_T.h \
- $(TAO_ROOT)/tao/Sequence_T.i \
- $(TAO_ROOT)/tao/Sequence_T.cpp \
- $(TAO_ROOT)/tao/OctetSeqC.i \
- $(TAO_ROOT)/tao/Principal.i \
- $(TAO_ROOT)/tao/ORB.h \
- $(TAO_ROOT)/tao/Services.h \
- $(TAO_ROOT)/tao/Services.i \
- $(TAO_ROOT)/tao/CORBA_String.h \
- $(TAO_ROOT)/tao/CORBA_String.inl \
- $(TAO_ROOT)/tao/PolicyC.h \
- $(TAO_ROOT)/tao/Encodable.h \
- $(TAO_ROOT)/tao/Remote_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/CurrentC.h \
- $(TAO_ROOT)/tao/CurrentC.i \
- $(TAO_ROOT)/tao/PolicyC.i \
- $(TAO_ROOT)/tao/ORB.i \
- $(TAO_ROOT)/tao/BoundsC.h \
- $(TAO_ROOT)/tao/BoundsC.i \
- $(TAO_ROOT)/tao/ValueBase.h \
- $(TAO_ROOT)/tao/ValueBase.i \
- $(TAO_ROOT)/tao/ValueFactory.h \
- $(TAO_ROOT)/tao/ValueFactory.i \
- $(TAO_ROOT)/tao/DomainC.h \
- $(TAO_ROOT)/tao/DomainC.i \
- $(TAO_ROOT)/tao/WrongTransactionC.h \
- $(TAO_ROOT)/tao/Object_KeyC.h \
- $(TAO_ROOT)/tao/Object_KeyC.i \
- $(TAO_ROOT)/tao/ObjectIDList.h \
- $(TAO_ROOT)/tao/ObjectIDList.i \
- $(TAO_ROOT)/tao/StringSeqC.h \
- $(TAO_ROOT)/tao/StringSeqC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.h \
- $(TAO_ROOT)/tao/DynamicC.h \
- $(TAO_ROOT)/tao/DynamicC.i \
- $(TAO_ROOT)/tao/MessagingC.h \
- $(TAO_ROOT)/tao/TimeBaseC.h \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.h \
- $(TAO_ROOT)/tao/SmartProxies/smartproxies_export.h \
- $(TAO_ROOT)/tao/TAO_Singleton.h \
- $(TAO_ROOT)/tao/TAO_Singleton.inl \
- $(TAO_ROOT)/tao/TAO_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 \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.h \
- $(TAO_ROOT)/tao/TAO_Singleton_Manager.inl \
- $(TAO_ROOT)/tao/SmartProxies/Smart_Proxies.inl \
- $(TAO_ROOT)/tao/TimeBaseC.i \
- $(TAO_ROOT)/tao/IOPC.h \
- $(TAO_ROOT)/tao/IOPC.i \
- $(TAO_ROOT)/tao/PollableC.h \
- $(TAO_ROOT)/tao/PollableC.i \
- $(TAO_ROOT)/tao/MessagingC.i \
- $(TAO_ROOT)/tao/PortableInterceptorC.i \
- ../Common/rtcorba_common_export.h ../Common/testC.i \
- $(TAO_ROOT)/tao/PortableServer/PortableServer.h \
- $(TAO_ROOT)/tao/PortableServer/portableserver_export.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.h \
- $(TAO_ROOT)/tao/PortableServer/PortableServerC.i \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.h \
- $(TAO_ROOT)/tao/Abstract_Servant_Base.h \
- $(TAO_ROOT)/tao/PortableServer/Servant_Base.i \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.h \
- $(TAO_ROOT)/tao/PortableServer/Collocated_Object.i \
- $(TAO_ROOT)/tao/PortableServer/ThruPOA_Object_Proxy_Impl.h \
- $(TAO_ROOT)/tao/PortableServer/Direct_Object_Proxy_Impl.h \
- ../Common/testS_T.h ../Common/testS_T.i ../Common/testS_T.cpp \
- ../Common/testS.i ../Common/test_i.i \
- $(TAO_ROOT)/tao/RTCORBA/Pool_Per_Endpoint.h \
- $(TAO_ROOT)/tao/RTCORBA/rtcorba_export.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/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Singleton.i \
- $(ACE_ROOT)/ace/Singleton.cpp \
- $(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/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(TAO_ROOT)/tao/RTCORBA/Pool_Per_Endpoint.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Sched_Params.h \
- $(ACE_ROOT)/ace/Sched_Params.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/TAO/tests/Xt_Stopwatch/Control.cpp b/TAO/tests/Xt_Stopwatch/Control.cpp
deleted file mode 100644
index 61c18937575..00000000000
--- a/TAO/tests/Xt_Stopwatch/Control.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-// $Id$
-#include "Control.h"
-
-#if defined (ACE_HAS_XT)
-
-Control::Control (Widget &parent)
-{
- // Instantiate the sub-components of the Control
- this->frame_ = XmCreateFrame (parent,
- "frame",
- 0,
- 0 );
-
- this->rowcolumn_ = XmCreateRowColumn (this->frame_,
- "rwc",
- 0,
- 0 );
-
- this->startwidget_ = XmCreatePushButton (this->rowcolumn_,
- "Start",
- 0,
- 0);
-
- this->stopwidget_ = XmCreatePushButton (this->rowcolumn_,
- "Stop",
- 0,
- 0);
-}
-
-Control::~Control (void)
-{
-}
-
-void
-Control::manage (void)
-{
- XtManageChild (frame_);
- XtManageChild (rowcolumn_);
- XtManageChild (startwidget_);
- XtManageChild (stopwidget_);
-}
-
-Widget &
-Control::startwidget (void)
-{
- return this->startwidget_;
-}
-
-Widget &
-Control::stopwidget (void)
-{
- return this->stopwidget_;
-}
-
-#endif /*ACE_HAS_XT*/
diff --git a/THANKS b/THANKS
deleted file mode 100644
index 2a861a627f4..00000000000
--- a/THANKS
+++ /dev/null
@@ -1,1396 +0,0 @@
-ACKNOWLEDGEMENTS
-
-ACE and TAO have been deeply influenced and improved by the following
-members of my research group at Washington University and at the
-University of California at Irvine.
-
-Everett Anderson <eea1@cec.wustl.edu>
-Alexander Babu Arulanthu <alex@cs.wustl.edu>
-Shawn Atkins <sma1@cs.wustl.edu>
-Matt Braun <mjb2@cs.wustl.edu>
-Darrell Brunsch <brunsch@uci.edu>
-Chris Cleeland <cleeland@cs.wustl.edu>
-Mayur Deshpande <mayur@ics.uci.edu>
-Eric Ding <qnd1@cs.wustl.edu>
-Sergio Flores-Gaitan <sergio@cs.wustl.edu>
-Chris Gill <cdgill@cs.wustl.edu>
-Andrew G. Gilpin <agg1@cs.wustl.edu>
-Aniruddha Gokhale <gokhale@cs.wustl.edu>
-Priyanka Gontla <pgontla@ece.uci.edu>
-Pradeep Gore <pradeep@cs.wustl.edu>
-Shawn Hannan <hannan@cs.wustl.edu>
-Tim Harrison <harrison@cs.wustl.edu>
-John Heitmann <jwh1@cs.wustl.edu>
-James Hu <jxh@cs.wustl.edu>
-Prashant Jain <pjain@cs.wustl.edu>
-Vishal Kachroo <vishal@cs.wustl.edu>
-Michael Kircher <Michael.Kircher@mchp.siemens.de>
-Yamuna Krishnamurthy <yamuna@cs.wustl.edu>
-Fred Kuhns <fredk@cs.wustl.edu>
-David Levine <levine@cs.wustl.edu>
-Mike Moran <mm4@cs.wustl.edu>
-Sumedh Mungee <sumedh@cs.wustl.edu>
-Balachandran Natarajan <bala@cs.wustl.edu>
-Kirthika Parameswaran <kirthika@cs.wustl.edu>
-Krishnakumar Pathayapura <krish@cs.wustl.edu>
-Carlos O'Ryan <coryan@uci.edu>
-Ossama Othman <ossama@uci.edu>
-Jeff Parsons <parsons@cs.wustl.edu>
-Irfan Pyarali <irfan@cs.wustl.edu>
-Marina Spivak <marina@cs.wustl.edu>
-Nagarajan Surendran <naga@cs.wustl.edu>
-Nanbor Wang <nanbor@cs.wustl.edu>
-Seth Widoff <sbw1@cs.wustl.edu>
-Torben Worm <tworm@cs.wustl.edu>
-Angelo Corsaro <corsaro@cs.wustl.edu>
-
-I would also like to thank all the following people who have also
-contributed to ACE and TAO over the years:
-
-Paul Stephenson <pstephenson@objectspace.com>
-Olaf Kruger <okruger@cssc-melb.tansu.com.au>
-Ed Brown <eebrown@netcom.com>
-Lee Baker <baker@ctis.af.mil>
-Alex Ranous <ranous@nsa.hp.com>
-Mark Patton <mark_patton@tx72.mot.com>
-Steffen Winther Sorensen <sts@siimnet.dk>
-Troy Warner <tnw1@core01.osi.com>
-Stacy Mahlon <mcs@contour.mayo.edu>
-Charles Eads <eads@synoptics.com>
-Mark Frutig <mfrutig@fnbc.com>
-Todd Hoff <thm@ictv.com>
-George <george@truffula.fp.trw.com>
-Brad Needham <bneedham@ix.netcom.com>
-Leslee Xu <lxu@ics.uci.edu>
-Detlef Becker <Detlef.Becker@med.siemens.de>
-Bruce Worden <bruce@betsy.gps.caltech.edu>
-Chris Tarr <ctarr@objectspace.co>
-Bill Sears <wsears@world.std.com>
-Greg Lavender <g.lavender@isode.com>
-Steve Warwick <sjw@aesthetic.com>
-Mats Sundvall <sundvall@perrier.embnet.se>
-Andreas Ueltschi <Andreas.Ueltschi@ska.com>
-Nigel Hooke <n.hooke@trl.oz.au>
-Medhi Tabatabai <Mehdi.Tabatabai@ed.nce.sita.int>
-Stuart Powell <stuartp@ot.com.au>
-Bin Mu <mubin@wfg.com>
-Andrew McGowan <mcgowan@wg2.waii.com>
-Ken Konecki <kenk@wfg.com>
-John P. Hearn <jph@ccrl.nj.nec.com>
-Giang Hoang Nguyen <yang@titan.com>
-Carlos Garcia Braschi <cgarcia@caramba.tid.es>
-Jam Hamidi <jh1@osi.com>
-Eric Vaughan <evaughan@arinc.com>
-Karlheinz Dorn <Karlheinz.Dorn@med.siemens.de>,
-Gerhard Lenzer <Gerhard.Lenzer@med.siemens.de>
-Steve Ritter <ritter@titan.com>
-Chandra Venkatapathy <cvenkat@develop.bsis.com>
-Matt Stevens <mstevens@kirk.softeng.infonautics.com>
-Bob Vistica <robertv@ims.com>
-David Trumble <trumble@cvg.enet.dec.com>
-George Reynolds <george@dvcorp.com>
-Hans Rohnert <hans.rohnert@mchp.siemens.de>
-Alex V. Maclinovsky <alexm@teltrunk1.tait.co.nz>
-Todd Blanchard <tblancha@evolving.com>
-Rob Clairmont <rclairmo@bnr.ca>
-Christian Millour <chris@etca.fr>
-Neil B. Cohen <nbc@cisco.com>
-Dieter Quehl <Dieter.Quehl@med.siemens.de>
-Reginald S. Perry <perry@zso.dec.com>
-James Morris <jmorris@aurora.apana.org.au>
-Mark Seaborn <mseaborn@itthp1.comm.mot.com>
-Phil Brooks <phil_brooks@mentorg.com>
-E. Jason Scheck <jasons@ims.com>
-Daniel Proulx <daproulx@qc.bell.ca>
-Bill Tang <tang@tekats.com>
-John Huchinson <hutchiso@epi.syr.ge.com>
-Jack Erickson <JErickson@exchange.ml.com>
-Byron Walton <bwalton@hughes.scg.hac.com>
-Bill Lear <rael@anarchy.cybercom.net>
-Mark Zusman <marklz@topaz.technion.ac.il>
-Aurelio Nocerino <aurelio@irsipcs2-27-le0.irsip.na.cnr.it>
-Walt Akers <akers@cebaf.gov>
-Greg Baker <GBaker@p01.az15m.iac.honeywell.com>
-Alexandre Karev <karev@vxcern.cern.ch>
-Pramod Kumar Singh <pramod@saturn.miel.mot.com>
-Bryon Rigg <bryon_rigg@mail.telecorpsys.com>
-Brad Brown <Brad.A.Brown@usa.alcatel.com>
-Patty Genualdi <genualdp@agcs.com>
-Eshel Liran <liran@bimacs.cs.biu.ac.il>
-Mick Adams <eeimas@eei.ericsson.se>
-Chris Eich <Chris_Eich@optilink.optilink.dsccc.com>
-Mike Flinn <mike.flinn@smtpgate.aws.waii.com>
-Audun Tornquist <Audun.Tornquist@iu.hioslo.no>
-Sandeep Joshi <sandeepj@emailbox.att.com>
-Bernd Hofner <hofner@pd.et-inf.uni-siegen.de>
-Craig Perras <cperras@watchguard.com>
-Kirk Sinnard <kirk.sinnard@lawson.com>
-Matthew Newhook <matthew@ooc.com>
-Gerolf Wendland <wendland@hpp015.mch2.scn.de>
-Phil Mesnier <mesnier_p@ociweb.com>
-Ross Dargahi <rossd@krinfo.com>
-Richard Orr <rorr@costello.den.csci.csc.com>
-Rich Ryan <rryan@mseng.kla.com>
-Jan Rychter <jwr@icm.edu.pl>
-Tom Marrs <0002104588@mcimail.com>
-Bob Olson <olson@mcs.anl.gov>
-Jean-Francois Ripouteau <Jean-Francois.Ripouteau@netsurf.org>
-Ajit Sagar <asagar@spdmail.spd.dsccc.com>
-Ashish Singhai <singhai@delirius.cs.uiuc.edu>
-David Sames <David.L.Sames.1@gsfc.nasa.gov>
-Gonzalo Diethelm <Gonzalo.Diethelm@sonda.com>
-Raj <raj@itd.ssb.com>
-Darrin Edelman <darrin@aetherworks.com>
-Steve Weismuller <spweismu@rsoc.rockwell.com>
-Eric C. Newton <ecn@fault-tolerant.org>
-Andres Kruse <andres.kruse@creaturelabs.com>
-Ramesh Nagabushnam <rcn@nynexst.com>
-Antonio Tortorici <antonio@rh0011.roma.tlsoft.it>
-Nigel Lowe <nigel@nt.com>
-Tom Leith <trl@icon-stl.net>
-Michael Fortinsky <mike@vocaltec.com>
-Marco Sommerau <sommerau@matisse.informatik.uni-stuttgart.de>
-Gary Salsbery <gsalsber@simsun.atsc.allied.com>
-Eric Beser <beser@simsun.atsc.allied.com>
-Alfred Keller <kellera@pop.eunet.ch>
-John Lu <johnlu@f1.telekurs.ch>
-James Mansion <james@wgold.demon.co.uk>
-Jesper S. M|ller <Jesper.Moller@ameridata.dk>
-Chris Lahey <clahey@cccis.com>
-Michael R"uger <m_rueger@syscomp.de>
-Istvan Buki <istvan.buki@euronet.be>
-Greg Wilson <gvwilson@vnet.ibm.com>
-Garrett Conaty <gconaty@outbackinc.com>
-Brad Flood <BFLOOD@slc.unisysgsg.com>
-Marius Kjeldahl <marius@funcom.com>
-Steve Huston <shuston@riverace.com>
-Eugene K. Plaude <jec@r-style.msk.su>
-Joseph DeAngelis <bytor@faxint.com>
-Kim Gillies <gillies@noao.edu>
-Luca Priorelli <lucapri@mbox.vol.it>
-Alan Stewart <axs2@osi.com>
-Hani Yakan <hani@i-online.com>
-William L. Gerecke <gerecke@rayva.org>
-Craig Johnston <johnston@tortilla.ds.boeing.com>
-Pierre-Yves Duval <duval@cppm.in2p3.fr>
-Rochi Febo Dommarco <rocky@alter.it>
-Jonathan Biggar <jon@biggar.org>
-Scott Shupe <shupes@mitre.org>
-Chuck Gehr <gehr@sweng.stortek.com>
-Avi Nash <anash@RedBrick.COM>
-Padhu Ramalingam <padhu@magicnet.net>
-Jay Denkberg <jay_denkberg@comverse.com>
-Ayman Farahat <afarahat@CCGATE.HAC.COM>
-Tilo Christ <christ@swl.fh-heilbronn.de>
-Ari Erev <Ari_Erev@icomverse.com>
-Hamutal Yanay <Hamutal_Yanay@icomverse.com>
-Vital Aza <va3@cs.wustl.edu>
-Alex Villazon <villazon@cui.unige.ch>
-David Artus <david.artus@sbil.co.uk>
-Todd Barkalow <todd_barkalow@stortek.com>
-Alexander Smundak <sasha@migration.com>
-Thilo Kielmann <kielmann@informatik.uni-siegen.de>
-Matthias Kerkhoff <make@cs.tu-berlin.de>
-Fred LaBar <flabar@fallschurch.esys.com>
-Hanan Herzog <hanan@wallenda.stanford.edu>
-Eric Parker <eparker@credence.com>
-James Michael Dwyer <jdwyer@knox.edu>
-Arun Katkere <katkere@praja.com>
-Bob Dunmire <bobd@titan.com>
-Sandro Doro <doro.s@flashnet.it>
-Robert Lyng <rlyng@synertech.highmark.com>
-Phil Logan <phill@in.ot.com.au>
-John Cosby <John.D.Cosby@cpmx.saic.com>
-Wayne Vucenic <wvucenic@netgate.net>
-Harry Gunnarsson <hg@carmenta.se>
-James CE Johnson <jcej@lads.com>
-Samuel_Bercovici <Samuel_Bercovici_at_EFT__AD2@mail.icomverse.com>
-Per Andersson <Per.Andersson@hfera.ericsson.se>
-Anthony McConnell <Tonym@datel.demon.co.uk>
-Mark Rabotnikov <mark@usp.elscintcorp.co.il>
-John Bossom <John.Bossom@Cognos.COM>
-Rino Simioni <sir@necsy.it>
-Slawomir Kuzniar <kuzniar@Bear.COM>
-Rob Jordan <jordan@hursley.ibm.com>
-Michael Maxie <maxie@acm.org>
-John Cosby <John.D.Cosby@cpmx.saic.com>
-Nigel Owen <Nigel@voicelink.co.nz>
-Jorn Jensen <jornj@funcom.com>
-Paul Roman <proman@npac.syr.edu>
-Dave Mayerhoefer <davem@lynx.com>
-Bert Craytor <Bert_Craytor@peoplesoft.com>
-Joey Zhu <joey.zhu@wcom.com>
-Arthur J. Lewis <hfdh99a@prodigy.com>
-Michael R. MacFaden <mrm@yagosys.com>
-Paul Han <phan@CCGATE.HAC.COM>
-Jeff Morgan <jeff@audioactive.com>
-Arturo Montes <mitosys@colomsat.net.co>
-Elliot Lau <eeklau@post1.com>
-Mark Wright <markw@odi.com.au>
-Michael Newton <michaeln@in.ot.com.au>
-Kumar Neelakantan <kneelaka@painewebber.com>
-Scott Halstead <scott.halstead@gs.com>
-Jean-Marc Strauss <jms97@club-internet.fr>
-Adam Porter <aporter@cs.umd.edu>
-Hakan Kallberg <hk@simulina.se>
-Eric Dean Russell <edrusse@somnet.sandia.gov>
-Daniel Montalibet <daniel_montalibet@stortek.com>
-Norbert Rapp <norbert.rapp@nexus-informatics.de>
-Ganesh Pai <gpai@voicetek.com>
-Berni Merkle <merkle@io.freinet.de>
-Tom Wright <twright@gem-net.demon.co.uk>
-Torbjorn Lindgren <tl@funcom.no>
-Mike Bernat <sagmb@sagus.com>
-Brian Mendel <brian.r.mendel@boeing.com>
-Jeremy Buch <davinci@nortel.ca>
-Kevin Boyle <kboyle@sanwafp.com>
-Kevin Martindale <kevin_martindale@stortek.com>
-Luis Lopes <llopes@tick.rcc.Ryerson.CA>
-Adrian Salt <acsalt@magi.com>
-Hongbo Xu <hxu@mas.co.nz>
-Michael Hartman <c62nt57@ibx.com>
-Tom Dobridge <dobridge@persimmon.com>
-Rich Christy <rchristy@cccis.com>
-Satoshi Ueno <satoshi.ueno@gs.com>
-Eugene R. Somdahl <gene@endo.com>
-Robert Head <rhead@mail.virtc.com>
-Ivan Murphy <Ivan.Murphy@med.siemens.de>
-Jan Perman <jan.perman@osd.uab.ericsson.se>
-Shankar Krishnamoorthy <kshankar@lucent.com>
-Reza Roodsari <reza@sprynet.com>
-Jim Crossley <jim@lads.com>
-Johannes Gutleber <Johannes.Gutleber@cern.ch>
-Marina Spivak <marina@cs.wustl.edu>
-Yigong Liu <ygl@emailbox.lucent.com>
-Erik Urdang <erik@bhi.com>
-Mike Schweiger <mikes@bmo.com>
-Anthony Mutiso <amutiso@hughes.cg.hac.com>
-Jeff R. Hayes <Jeff.Hayes@osi.com>
-David Brackman <dbrackman@OhioEE.com>
-Dave Moore <dave.moore@gecm.com>
-Joseph Cross <joseph.k.cross@lmco.com>
-Cherif Sleiman <sleiman@research.moore.com>
-Stefan Ericsson <Stefan.Ericsson@osd.uab.ericsson.se>
-Wei Chiang <wei.chiang@horizon.ntc.nokia.com>
-Thanh Ma <tma@encore.com>
-Oleg Krivosheev <kriol@fnal.gov>
-Stephen Coy <stevec@wsa.com.au>
-Bob Laferriere <laferrie@gsao.med.ge.com>
-Satheesh Kumar MG <satheesh@india.aspectdv.com>
-Karen Amestoy <kamestoy@CCGATE.HAC.COM>
-Jeff Richard <jrichard@OhioEE.com>
-Samuel Melamed <sam@vdo.net>
-Vladimir Schipunov <vlad@staff.prodigy.com>
-Felix Popp <fxpopp@immd9.informatik.uni-erlangen.de>
-Billy Quinn <bquinn@lads.com>
-Michael McKnight <mcknight@signalsoftcorp.com>
-Huiying Shen <shen@environ.org>
-Alex Chan <Alex.Chan@Aspect.com>
-Aaron Valdivia <avaldivia@hns.com>
-Edan Ayal <edan@bandwiz.com>
-Jeffrey Peterson <jpeterson@fallschurch.esys.com>
-Neil Lavelle <nlavelle@imcl.com>
-Steven Wohlever <wohlever@mitre.org>
-Manojkumar Acharya <mja@cvsf325.gpt.co.uk>
-Evgeny Beskrovny <evgeny_beskrovny@icomverse.com>
-Kirill Rybaltchenko <Kirill.Rybaltchenko@cern.ch>
-Laura Paterno <lpaterno@d0chb.fnal.gov>
-Ben Eng <ben@jetpen.com>
-Mike Kamrad <J.M.KAMRAD.II@cdev.com>
-Marios Zikos <zikos@csi.forth.gr>
-Mark L Boriack <mboriack@dctc.saic.com>
-Mark Hyett <mhyett@dctd.saic.com>
-Caleb Epstein <epstein_caleb_unix@jpmorgan.com>
-Valik Solrzano Barboza <valik@xs4all.nl>
-John Connett <jrc@skylon.demon.co.uk>
-Tom Arbuckle <arbuckle@uran.informatik.uni-bonn.de>
-Stephen Henry <shenry@mdc.com>
-Dani Flexer <danif@ivory-sw.com>
-Michael Hoffman <Hoffman_Michael@mac-mailserver.atc.ll.mit.edu>
-John Lindal <jafl@cheshire-cat.caltech.edu>
-Dustin Laurence <laurence@alice.wonderland.caltech.edu>
-Ernie Makris <emakris@ziplink.net>
-Timothy A. Brown <tabrown@montana.com>
-Patrick J. McNerthney <pat@cartia.com>
-Lori Anderson <lori@probita.com>
-Erik Margraf <erik@asgard.gud.siemens.co.at>
-Bryan Doerr <Bryan.S.Doerr@boeing.com>
-Adam Miller <adam@royalblueny.com>
-Thomas Jordan <ace@programmer.net>
-Keith Nicewarner <knicewar@erg.sri.com>
-Frederic Andres <andres@rd.nacsis.ac.jp>
-Achint Sandhu <sandhu@nortelnetworks.com>
-Mitch Kuninsky <Mitch_Kuninsky@avid.com>
-Alex Chan <Alex.Chan@Aspect.com>
-Jeff Hellzen <JHellzen@hwdcsaws.cahwnet.gov>
-Thomas Venturella <thomas.e.venturella@boeing.com>
-Philippe O'Reilly <philippe@robot.ireq.ca>
-Stan Leeson <STANLEY.D.LEESON@cdev.com>
-Richard Keizer <RICHARD.L.KEIZER@cdev.com>
-Edgar Villanueva <edgarvil@ix.netcom.com>
-Oliver Kellogg <Oliver.Kellogg@vs.dasa.de>
-Dave Meyer <dmeyer@std.saic.com>
-Thomas Hampson <thomas.hampson@lmco.com>
-Jay Kistler <jjk@pa.dec.com>
-Scott Snyder <snyder@d0sgif.fnal.gov>
-Mark Evans <mark.evans@tandem.com>
-Todd Pack <todd@rwii.com>
-Mark Maris <maris@scgp.com>
-Jason Katz <Jason@email.rts-inc.com>
-Jim Penny <jpenny@universal-fasteners.com>
-Chris Ryan <cryan@qualcomm.com>
-J. Russell Noseworthy <rnosewor@objectsciences.com>
-Carol Sanders <Carol.Sanders@Boeing.com>
-Jerry Bickle <glbick@most.fw.hac.com>
-Paul von Behren <Paul_von_Behren@stortek.com>
-Sudish Joseph <sj@eng.mindspring.net>
-Loren Rittle <rittle@comm.mot.com>
-Alexander Ovsiankin <sasha@technologist.com>
-Fred Kuhns <fredk@arl.wustl.edu>
-Ravi Nagabhyru <ravi@future-minds.com>
-Tom Brusehaver <tgb@cozy.netco.com>
-Dave Tallman <tallman@acsys.com>
-Monish Rajpal <monish@cs.jhu.edu>
-Garry Brother <gmbroth@romulus.ncsc.mil>
-Andreas Schuelke <Andreas.Schuelke@med.siemens.de>
-Ganapathi <guns@fs.IConNet.NET>
-James Garrison <jhg@austx.tandem.com>
-Brad Walton <brad.walton@transnexus.com>
-Paul Motuzenko <p_motuzenko@hotmail.com>
-Kurt Sussman <kls@best.com>
-Rob Thornton <ret1@cec.wustl.edu>
-Chanaka Liyanaarachchi <chanaka@ociweb.com>
-Saneyasu <sane@sail.t.u-tokyo.ac.jp>
-Steve Kay <slk1@icore.ih.lucent.com>
-Greg White <gwhite@northlink.com>
-Ki-hyun Yoon <abird@nextware.co.kr>
-Umar Syyid <usyyid@hotmail.com>
-Bill Fulton <fultonb@pcnet1.ascs.aro.allied.com>
-Amancio Hasty <hasty@rah.star-gate.com>
-Zoran Ivanovic <Zoran_Ivanovic@i2.com>
-Sree Oggu <dharani@sutmyn.com>
-James Risinger <jrisinge@cgi.com>
-Leo Modica <lmodica@lucent.com>
-Bob Scott <bob_scott@broder.com>
-Mark Kettner <m.kettner@elsevier.nl>
-Kent Watsen <kent@watsen.net>
-Chris Healey <chealey@entera.com>
-Philippe Klein <Philippe_Klein@vocaltec.com>
-William S. Lear <rael@dejanews.com>
-John Geiss <jtgb@eci-esyst.com>
-Ernesto Guisado <eguisado@saincotrafico.com>
-Stuart Myles <smyles@wsj.dowjones.com>
-Lothar Werzinger <lwerzinger@krones.de>
-Andrew Harbick <aharbick@opentext.com>
-Pavel Motuzenko <p_motuzenko@hotmail.com>
-Ross J. Lillie <lillie@rsch.comm.mot.com>
-Sam Hauer <shauer@nmo.gtegsc.com>
-Frank. J. Hodum <fhodum@dctd.saic.com>
-David Miron <dxm@crapper.dsto.defence.gov.au>
-Anton van Straaten <anton@appsolutions.com>
-Joe Covalesky <joe@nowsol.com>
-Bill Backstrom <backstr@anubis.network.com>
-Jeff Franks <Jeffrey_Franks@i-o.com>
-John Mulhern <9107@mn3.lawson.lawson.com>
-Johan Lundin <johan@lundin.com>
-Eric Powers <powerg@deltanet.com>
-Zheng Han <zhan@glenvan.glenayre.com>
-Gabriel Lima <gali@enea.se>
-Doug Anderson <dla@home.com>
-Hongyin Quan <hq1@arl.wustl.edu>
-Maximilian Hoferer <mhoferer@krones.de>
-Kevin Stanley <kstanley1@mdc.com>
-Jeff Greif <jmg@trivida.com>
-Jeff McDaniel <jsmpcdani@gte.net>
-Andreas Geisler <Andreas.Geisler@erl9.siemens.de>
-Bob McWhirter <bob@werken.com>
-Daniel Winder <Daniel.Winder@cern.ch>
-Zheng Han <zhan@glenvan.glenayre.com>
-Christa Schwanninger <christa.schwanninger@mchp.siemens.de>
-Byron Harris <harris_b@ociweb.com>
-Barney Dalton <barneyd@cyllene.uwa.edu.au>
-Peter Gorgia <Peter.Gorgia@libnet.com>
-Dirk Broer <Dirk.Broer@gsfc.nasa.gov>
-Joseph E. LaPrade <laprade@engw.ana.bna.boeing.com>
-Goran Lowkrantz <Goran.Lowkrantz@infologigruppen.se>
-Susan Liebeskind <susan.liebeskind@gtri.gatech.edu>
-Dana Hackman <upboms@network-one.com>
-Margherita Vittone Wiersma <vittone@fndaub.fnal.gov>
-Priya Narasimhan <priya@lambda.ece.ucsb.edu>
-Jeff Hopper <jhopper@nosc.mil>
-Mats Nilsson <mats.nilsson@xware.se>
-Dongwook Kim <baksoo@dbserver.kaist.ac.kr>
-Don Davis <ded@heart.jhuapl.edu>
-Alberto Villarica <Alberto.Villarica.rav@nt.com>
-XuYifeng <xuyf@pop.zg169.net>
-Ossama Othman <othman@astrosun.tn.cornell.edu>
-Tom Shields <Shields@MarsHotel.CMPU.NET>
-Krishna Padmasola <pkrishna@cybercash.co.in>
-Andre Folkers <folkers@informatik.mu-luebeck.de>
-Paul Sexton <pauls@ENTERPRISE.bt.co.uk>
-Marc Lehmann <pcg@goof.com>
-Anne Blankert <anne@geodan.nl>
-Raja Ati <rati@montereynets.com>
-Clinton Carr <ccarr@websocket.com>
-Peter Liqun Na <liqunna@cs.sunysb.edu>
-Frank Adcock <frank@bushlife.com.au>
-Xu Yifeng <xuyifeng@www.kali.com.cn>
-Valery Arkhangorodsky <valerya@servicesoft.com>
-Alan Scheinine <scheinin@crs4.it>
-Andrew G. Harvey <agh@cisco.com>
-Dann Corbit <DCorbit@SolutionsIQ.com>
-James <james@tsunami.com>
-Jason Milley <Jason.Milley.jcmilley@nt.com>
-Ulf Jaehrig <jaehrig@desys.com>
-Peter Nordlund <petern@nada.kth.se>
-Mark Weel <weel@lucent.com>
-Tres Seaver <tseaver@palladion.com>
-Erik Koerber <erik.koerber@siemens.at>
-Eric R. Medley <palantir@net56.net>
-David O'Farrell <dave@virgo.aersoft.ie>
-Amir Bahmanyari <amir@peakstone.com>
-Ian Wright <I.Wright@elsevier.co.uk>
-David Janello <David.Janello@abnamro.com>
-Rich Wellner <rw2@wellner.org>
-Fernando D. Mato Mira <matomira@acm.org>
-Jonathan Reis <reis@stentor.com>
-Seung-Lee Hoon <tarjan@lgsoft.com>
-Russell L. Carter <rcarter@pinyon.org>
-Bill Hall <hts@gte.net>
-Brian Gilstrap <gilstrap_b@ociweb.com>
-Balaji Srinivasan <balaji@cplane.com>
-Anders W. Tell <anderst@toolsmiths.se>
-Larry Lachman <larry@paradigmsim.com>
-Terry Rosenbaum <Terry.Rosenbaum@Radiology.MSU.edu>
-Rainer Blome <rainer_blome@de.ibm.com>
-Kirk Ellett <kellett@mdc.com>
-Sunil Kumar <skumar@sutmyn.com>
-T Stach <t.stach@inobis.de>
-Ron Barack <r.barack@inobis.de>
-Daniel Nieten <dnieten@bellsouth.net>
-Paul K. Fisher <pfisher@plexware.com>
-Jim Buck <jim@nowsol.com>
-Olivier Lau <olivier_lau@srtelecom.com>
-Achim Stindt <stindt@conbis.de>
-Fredrik Lindahl <fredrik.lindahl@ausys.se>
-Joseph Weihs <joseph-w@Orbotech.Co.IL>
-Serge Kolgan <skolgan@cisco.com>
-James Megquier <jmegq@bbn.com>
-Martin Krumpolec <krumpolec@asset.sk>
-Michael Thomas <Michael.Thomas@Australia.Boeing.com>
-Vicentini Emanuele <arena.sci.univr.it>
-Bob Price <Bob_Price@tssdc.saic.com>
-Ramiro Penataro Blanco <penataro@ll.iac.es>
-Sigg Pascal <pascal.sigg@zkb.ch>
-Ivan Leong <ivanl@pacific.net.sg>
-Virginie Amar<vamar@amadeus.net>
-Tom Ziomek <tomz@cc.comm.mot.com>
-Hamish Friedlander <hamishf@usa.net>
-Mark De Jong <mdj@intervu.net>
-Knut Johannessen <knutj@funcom.com>
-Leif Jakobsmeier <leif@informatik.uni-frankfurt.de>
-Jon Lindgren <jlindgren@SLK.com>
-Steve Vinoski <vinoski@iona.com>
-Christian Mueffling <cvm@aiss.de>
-Victor Yu <victor.yu@computechnics.com.au>
-Jeff Donner <JDonner@schedsys.com>
-Joe Loyall <jloyall@bbn.com>
-Stanislav Meduna <stanom@etm.co.at>
-Christian Korn <korn@gate.qaqa.com>
-Ron Barack <rab@terminal.cz>
-Steve Totten <totten_s@ociweb.com>
-Faron Dutton <fdutton@avxus.com>
-Gary York <gfyork@ix.netcom.com>
-Patty Hair <patty@Lynx.COM>
-Ivan Pascal <pascal@info.tsu.ru>
-William A. Hoffman <hoffman@crd.ge.com>
-Mark Lucovsky <markl@microsoft.com>
-Greg Holtmeyer <greg.holtmeyer@windriver.com>
-Jody Hagins <jody@atdesk.com>
-Patrice Bensoussan <pbensoussan@amadeus.net>
-Keith Brown <kalbrown@ix.netcom.com>
-Barry Hoggard <hoggard@cfx.com>
-Peter J. Mason <peterm@fl.net.au>
-Jerry D. De Master <jdemaste@rite-solutions.com>
-Greg Gallant <gcg@micrografx.com>
-wym <wym@dekang.com>
-Karel Zuiderveld <kzuiderveld@vitalimages.com>
-Mike Goldman <whig@by.net>
-Peter Gross <pgross@signalsoftcorp.com>
-Greg Ross <gwross@west.raytheon.com>
-Stanford S. Guillory <sguillory@vignette.com>
-Peter Weat <weatp@syntron.com>
-Magnus Karlsson <magnus.karlsson@syncom.se>
-Andreas Tobler <toa@pop.agri.ch>
-John Aughey <jha@FreeBSD.ORG>
-Knut-Havard Aksnes <knut@orion.no>
-Eric Mitchell <emitchell@altaira.com>
-Tommy Andreasen <tommy.andreasen@radiometer.dk>
-Slava Galperin <galperin@teknowledge.com>
-Jeff Olszewski <jolszewski@std.saic.com>
-Sudhanshu Garg <sg2@ladybug.cec.wustl.edu>
-Mike Preradovic <michael_preradovic@epicdata.com>
-Greg Harrison <harrisog@erinet.com>
-Sangwoo Jin <swjinjin@sei.co.kr>
-Jacques Salerian <Jacques.Salerian@era.ericsson.se>
-Steve Coleman <Steve.Coleman@jhuapl.edu>
-Diethard Ohrt <Diethard.Ohrt@siemens.at>
-Jacob Jones <Jacob.J.Jones@notesmta.gd-is.com>
-Phil Ruelle <Phil.Ruelle@adv.sonybpe.com>
-Sush Bankapura <Sush.Bankapura@sylantro.com>
-Eric Covington <eric@nowsol.com>
-Darren Whobrey <whobrey@fecit.co.uk>
-Mason Taube <taube@westcon.prc.com>
-Rod Joseph <rodjoseph@adt.com>
-Hans Horsmann <Hans.Horsmann@icn.siemens.de>
-Kevin Royalty <kevin.l.royalty@boeing.com>
-Souhad Mcheik <mcheiks@inrs-telecom.uquebec.ca>
-Mark Little <M.C.Little@ncl.ac.uk>
-Tim Stack <stack@cs.utah.edu>
-Marc Engel <engelm@tlse.sofreavia.fr>
-Uma Markandu <umam@nortelnetworks.com>
-Henrik Nordberg <hnordberg@lbl.gov>
-Tad Jarosinski <tadj@qualcomm.com>
-Andy Marchewka <AndyM@who.net>
-Neal Norwitz <nnorwitz@arinc.com>
-Frederic Maria <fmaria@lucent.com>
-David Hooker <DHooker@uniview.net>
-Christian.Destor <Christian.Destor@alcatel.fr>
-Andrew Hobson <ahobson@eng.mindspring.net>
-Andre Folkers <folkers@informatik.mu-leubeck.de>
-Torsten Kuepper <kuepper2@uni-wuppertal.de>
-Hao Ruan <hruan@lucent.com>
-Alexander Davidovich <sasha@ms.com>
-Cristian Ferretti <cristian_ferretti@yahoo.com>
-N Becker <nbecker@fred.net>
-Yaolong Lan <lyaolong@cs.sunysb.edu>
-Elias Sreih <sealstd1@nortelnetworks.com>
-Liang Chen <chenl@nortelnetworks.com>
-Mark Laffoon <mark.laffoon@burning-glass.com>
-Ti Z <tiz@cisco.com>
-Brian Dance <Brian_Dance@UECCS.co.uk>
-Alexey Gadzhiev <alg@null.ru>
-Francois Bernier <fbernier@gel.ulaval.ca>
-Bill Rizzi <rizzi@softserv.com>
-Peter Windle <peterw@ugsolutions.com>
-Andy Alvarez <axab@eci.esys.com>
-Jaepil Kim <jpkim@lgsoft.com>
-Dmitry Goldshtain <goldstein@arcormail.de>
-Carl Grinstead <grinstea@tsunami.com>
-Henric Jungheim <junghelh@pe-nelson.com>
-Konstantinos Margaritis <kmargar@cc.uoa.gr>
-Michael Preobrazhensky <mikep@xpedite.com>
-Gregory D. Fee <gdf2@cec.wustl.edu>
-Roland Gigler <roland@mch.pn.siemens.de>
-Frank Buschmann <Frank.Buschmann@mchp.siemens.de>
-Eric Eide <eeide@cs.utah.edu>
-Don Busch <busch_d@ociweb.com>
-Thomas Lockhart <Thomas.G.Lockhart@jpl.nasa.gov>
-David Hauck <davidh@realtimeint.com>
-Joe Hoffert <joeh@tango.cs.wustl.edu>
-Keith Rohrer <KRohrer@hnv.com>
-Tim Rose <trose@bridgewatersys.com>
-Sam Rhine <rmsolution20@earchlink.net>
-Chris Schleicher <chrissch@cnd.hp.com>
-Margaret Reitz <margaret@veritas.com>
-Thomas Mehrkam <Thomas_Mehrkam@i-o.com>
-Erik Ivanenko <erik.ivanenko@utoronto.ca>
-Sarmeesha Reddy <sarmeesha@bigfoot.com>
-Steven Tine <stevent@tr.comm.mot.com>
-Dave Steele <Dave_Steele@Mitel.COM>
-Simeon Simeonov <simeons@allaire.com>
-David H. Whittington <david.h.whittington@boeing.com>
-Ian MacDonald <ianmacd@bg.com>
-Hans Ridder <ridder@veritas.com>
-Todd Mullanix <Todd.Mullanix@sylantro.com>
-Hai Vu <Hai_Vu@Mitel.Com>
-Paul Francis <francip@navcanada.ca>
-Kristopher Johnson <kjohnson@gardnersys.com>
-Dave Butenhof <butenhof@zko.dec.com>
-Dominic Williams <dom@connected-place.co.uk>
-Srikumar Kareti <skareti@htc.honeywell.com>
-Ian Pepper <ian@aptest.ie>
-Kevin Lyda <kevin.lyda@trintech.com>
-James D. Rucker <jdrucker@huey.jpl.nasa.gov>
-Brian Wallis <Brian.Wallis@sr.com.au>
-Sandeep Goyal <sagoyal@hss.hns.com>
-englishmalc@my-dejanew.com
-Frank O'Dwyer <fod@brd.ie>
-Long Hoang <LHoang@hwdcsaws.cahwnet.gov>
-Steven D. Chen <sdc2951@aw101.iasl.ca.boeing.com>
-Alain Magloire <alain@qnx.com>
-Jim Rogers <jrogers@viasoft.com>
-Nick Sawadsky <Nick_Sawadsky@BrooksSoftware.com>
-David Brownell <david-b@pacbell.net>
-Richard Stallman <rms@gnu.org>
-Casey Lucas <clucas@sabre.com>
-Brian C. Olson <bolson@rtlogic.com>
-Joseph A. Condlin <jac@slpmbo.ed.ray.com>
-Serge Du <du@lal.in2p3.fr>
-Mike Mazurek <mmazurek@std.saic.com>
-Christian Schuderer <Christian.Schuderer@erl9.siemens.de>
-John R. Taylor <jrtaylor@george.lbl.gov>
-Bill Tovrea <gwtovrea@west.raytheon.com>
-Wallace Owen <owen@visicom.com>
-Vyacheslav A. Batenin <slavikb@iname.com>
-Edwin D. Windes <ewindes@usa.net>
-Christopher Kohlhoff <chris@kohlhoff.com>
-Andreas Terstegge <andreas.terstegge@nokia.com>
-Stefaan Kiebooms <stefaan@ghs.com>
-Keith Nichol <knichol@syscorp.com.au>
-Rebecca Sanford <Rebecca.A.Sanford@gd-is.com>
-Ram Vishnuvajjala <rvishnuvajjala@lucent.com>
-Tom Bradley <thomas.bradley@maisel-gw.enst-bretagne.fr>
-Shaun Ohagan <jk13@dial.pipex.com>
-Dale Wood <dale_wood@Mitel.com>
-Robert Flanders <rdfa@eci.esys.com>
-Gul Onural <Gul_Onural@Mitel.COM>
-Stephen E Blake <stephen_e_blake@email.moore.com>
-Eric S Rosenthal <esr@netcom.com>
-Sridevi Subramanian <subrams@erols.com>
-Bruce Trask <brucetrask@aol.com>
-Jake Hamby <jehamby@anobject.com>
-Rick Weisner <Rick.Weisner@East.Sun.COM>
-Dennis C. De Mars <demars@mminternet.com>
-V. Lakshmanan <lakshman@doplight.nssl.noaa.gov>
-Hata Yoshiaki <hatay@alpha.co.jp>
-Vidya Narayanan <CVN065@lmpsil02.comm.mot.com>
-Sean Landis <seanl@rsch.comm.mot.com>
-Youzhong Liu <yoliu@cise.ufl.edu>
-John Weald <John.Weald@sylantro.com>
-Gilbert Roulot <gilbert.roulot@tts.thomson-csf.com>
-Gildo Medeiros Junior <gildo@siemens.com.br>
-Brian Peterson <bpeterson@globalmt.com>
-Fabrice Podlyski <podlyski@clrhp04.in2p3.fr>
-Darren DeRidder <darren.deridder@bridgewatersys.com>
-John Tucker <johnny_tucker@yahoo.com>
-Oleg Orlov <orlov@diasoft.ru>
-Timothy Canham <Timothy.Canham@jpl.nasa.gov>
-Randy Heiland <heiland@ncsa.uiuc.edu>
-Joyce Fu <fu@gsao.med.ge.com>
-Surender Kumar <csk037@lmpsil02.comm.mot.com>
-Pradeep Avasthi <Pradeep.Avasthi@motorola.com>
-Guicheney Christophe <guichene@clrhp04.in2p3.fr>
-Madhu Konety <madhu.konety@stdc.com>
-Isaac Stoddard <i_stoddard@hso.link.com>
-Alvarez <alvarez@nagra-kudelski.ch>
-Peter Brandstrom <peter.brandstrom@ericsson.com>
-Eugene Surovegin <ebs@glasnet.ru>
-Thaddeus Olczyk <olczyk@interaccess.com>
-John Chludzinski <john_chludzinski@jsims.com>
-Pedro Alves Ferreira <pedro.ferreira@inescn.pt>
-Bruce Edge <bedge@sattel.com>
-Dan Butler <daniel.g.butler@boeing.com>
-Ron MacKenzie <ronm@SLAC.Stanford.EDU>
-Craig Rodrigues <crodrigu@bbn.com>
-Phil Y. Wang <yhwang@cs.columbia.edu>
-David Brock <dbrock@momsdesk.com>
-John Morey <jmorey@tbi.com>
-Dwayne Burns <dburns@isrglobal.com>
-Denis Ouellet <douellet@gel.ulaval.ca>
-Stefan Ullrich <SUllrich@Heimannsystems.com>
-Brian Raven <brianr@liffe.com>
-Gheorghe Aprotosoaie <gaprotosoaie@paragonms.com>
-Carsten Zerbst <zerbst@tu-harburg.de>
-Paul Calabrese <calabrese_p@ociweb.com>
-Stephane Chatre <schatre@oresis.com>
-James Whitledge <jwhitledge@spyglass.com>
-Erik Johannes <ejohannes@oresis.com>
-Alex Hornby <alex@anvil.co.uk>
-Riaz Syed <syed@Lynx.COM>
-Clarence M. Weaver <clarence_m_weaver@md.northgrum.com>
-Roger Egbers <regbers@isrglobal.com>
-Ralf Kluthe <kluthe@iti.mu-luebeck.de>
-Ruud Diterwich<R.M.L.Diterwich@marin.nl>
-Bill Nesbitt <bnesbitt@magellan.com>
-Will Skunk <willskunk@homemail.com>
-David Digby <DWD15274@glaxowellcome.co.uk>
-Timothy Schimke <Schimke.Timothy@LittonDSD.com>
-Jim Robinson <robinson@wdg.mot.com>
-Peter Mueller <pmueller@decrc.abb.de>
-Raghu Nambiath <raghun@wipinfo.soft.net>
-Mike Gingell <mgingell@istar.ca>
-David McCann <david.mccann@alcatel.at>
-Ruediger Franke <Ruediger.Franke@decrc.abb.de>
-Brian Jones <bjones@edgemail.com>
-Michael Garvin <mgarvin@nortelnetworks.com>
-Mike Vitalo <mvitalo@sprynet.com>
-Kirk Davies <Kirk.Davies@pobox.com>
-Arno Pernozzoli <pernozzoli@bigfoot.com>
-Trey Grubbs <t-grubbs1@raytheon.com>
-Matthias Schumann <matthias.schumann@xcc.de>
-John Gathright <johng@keck.hawaii.edu>
-Alexander Villatora <alex@cfx.com>
-Hoang Duong <hduong@lycosmail.com>
-Michael Roth <ombelico@gmx.net>
-Craig Anderson <chanders@timing.com>
-Mitsuhiko Hara <Mitsuhiko.Hara@gemsa.med.ge.com>
-Weihai Yu <weihai@cs.uit.no>
-Tal Lev-Ami <tla@tici.co.il>
-Chris Zimman <chris@ishiboo.com>
-Rick Wesson <wessorh@ar.com>
-Sridhara Rao Dasu <dasu@slac.stanford.edu>
-Walter Welzel <Walter.Welzel@med.siemens.de>
-Anthony Shipman <als@aaii.oz.au>
-Tobin Bergen-Hill <tbhill@dctd.saic.com>
-Toshio Hori <toshi@etl.go.jp>
-John Mink <John.Mink@nl.origin-it.com>
-Duane Binder <dbinder@globalmt.com>
-Randall Sharo <rasb@eci.esys.com>
-Dave Madden <dhm@mersenne.com>
-Cliff_H_Campbell <Cliff_H_Campbell@res.raytheon.com>
-Narendra Ravi <naren@cs.ualberta.ca>
-Krishnakumar B. <kitty@neo.shinko.co.jp>
-David Sunwall <das@planet8.tds-eagan.lmco.com>
-Brian Wright <bwright@paladyne.com>
-Yosi Sarusi <yosi@appstream.com>
-Robert Shewan <rshew@peri.com>
-Skye Sweeney <ssweeney@sanders.com>
-Lars Immisch <lars@ibp.de>
-Adrian Mercieca <adrian@anvil.co.uk>
-Stefan Wendt <wendts@stud.fh-luebeck.de>
-Herbert <herbert@shym.com>
-Clarence Bishop <clarence.bishop@na.marconicomms.com>
-Giga Giguashvili <gregoryg@ParadigmGeo.com>
-Philipp Slusallek <slusallek@graphics.stanford.edu>
-Matthew Davis <matthew.davis@solers.com>
-Janusz Stopa <jstopa@bear.com>
-Rusty Conover <rconover@zootweb.com>
-Alex Mintz <amintz@bear.com>
-Phillippe Merle <Philippe.Merle@lifl.fr>
-Mark Winrock <mwinrock@nortelnetworks.com>
-Boris Kaminer <kaminer.boris@cherus.msk.ru>
-Martin Botzler <martin.botzler@mchp.siemens.de>
-Lorin Hochstein <lmh@xiphos.ca>
-Wenli Bai <bai@gsao.med.ge.com>
-Harry Forry <harry_l_forry@res.raytheon.com>
-Jose Rubio <jrubio@tr.comm.mot.com>
-Joerg Pommnitz <pommnitz@darmstadt.gmd.de>
-Mogens Hansen <mogens_h@dk-online.dk>
-Shafiek Savahl <shafiek.savahl@ericsson.com.au>
-Pierre Grondin <pierre_grondin@srtelecom.com>
-John Masiyowski <jmasiyowski@fallschurch.esys.com>
-Uwe Landrock <Uwe.Landrock@med.siemens.de>
-Klaus Banzer <klaus.banzer@mchp.siemens.de>
-Probal Bhattacharjya <probal@lucent.com>
-Dmitri Katchalov <Dmitri.Katchalov@computershare.com.au>
-Alok Gupta <alokg@ssind.stpn.soft.net>
-Chien Yueh <cyueh@viasoft.com>
-John K. Black <jblack@s22ct.npt.nuwc.navy.mil>
-Kamen Penev <penev@earthlink.net>
-Gregory Yarmit <Gregory.Yarmit@hboc.com>
-Jarek Tomaszewski <jarek-tomaszewski@vertel.de>
-Siegurd Weber <siegurdw@hotmail.com>
-Fabrizio Giannotti <fabrizio.giannotti@alephinfo.it>
-Harald Finster <finster@ave.ac.agit.de>
-Fritz Bosch <FBosch@alcatel.de>
-Charles Frasch <cfrasch@spawar.navy.mil>
-Chris Hafey <chafey@stentor.com>
-Rick Hess <rick.hess@lmco.com>
-David Dunn <dunn@tripos.com>
-Jaymes Galvin <galvinj@agcs.com>
-Marat <c_marat@mypad.com>
-Sergey Nemanov <sergey.nemanov@intel.com>
-Vladimir Kondratiev <vladimir.kondratiev@intel.com>
-John Glynn <Jjg9419@bjc.org>
-Raymond Wiker <raymond@orion.no>
-Michael Pitman <mcp@mira.net>
-Joseph Jefferson <jjefferson@relinc.com>
-Engelbert Staller <engelbert.staller@siemens.at>
-George Ball <george@jgserv.co.uk>
-Dennis Noll <Dennis.Noll@MW.Boeing.com>
-Ronald Fischer <ronald.fischer@icn.siemens.de>
-Marvin Allen Wolfthal <maw@ziplink.net>
-Dan Gilboa <dgilboa@qualcomm.com>
-Sean Boudreau <seanb@qnx.com>
-Shalini Yajnik <shalini@research.bell-labs.com>
-Matt Thompson <thompsom@stoner.com>
-Peter C Chien <peter@nowsol.com>
-Bruce Alderson <balderso@triant.com>
-Christoph Poggemann <Christoph.Poggemann@ptv.de>
-Travis Shirk <travis@pobox.com>
-Alain Sauron <sauron@syseca.thomson-csf.com>
-Yury Kuznesov <yury@websci.ru>
-David Delano <delanod@agcs.com>
-Boris Sukholitko <boriss@richfx.com>
-Brian Mason <bmason@oresis.com>
-Thomas Groth <groth.th@stn-atlas.de>
-Damien Dufour <damien.dufour@horoquartz.fr>
-Paulo Breda Vieira <breda@inesca.pt>
-Samuel Stickland <sps196@hotmail.com>
-Bryan Van de Ven <bryanv@arlut.utexas.edu>
-Greg Siebers <gsiebers@vignette.com>
-Rob Gabbot <rgabbot@sandia.gov>
-Paul Carreiro <pcarreir@genuity.com>
-Jovan Kilibarda <jovank@realtimeint.com>
-Derek Dominish <Derek.Dominish@Australia.Boeing.com>
-Devesh Kothari <dkothari@atdsprint.com>
-Stephen Moon <smoon@oxmol.co.uk>
-Hani Mawlawi <hmawlawi@wecan.com>
-Benedikt Eric Heinen <beh@icemark.ch>
-Jason Topaz <topaz@panix.com>
-Alexander Dergatch <dergy@websci.ru>
-Airat A. Sadreev <airat@hq.tatenergo.ru>
-Klaus Hofmann <Klaus.Hofmann@astrum.de>
-Miroslav Koncar <mkoncar@mail.com>
-Extern Chatterji <Extern.Chatterji@kmweg.de>
-Zach Frey <zfrey@bright.net>
-Ruibiao Qiu <ruibiao@arl.wustl.edu>
-Marcelo Matus <mmatus@dinha.acms.arizona.edu>
-R Seshardi <rseshadri@lucent.com>
-Stephan Kulow <coolo@kde.org>
-Alexander Belopolsky <belopolsky@my-deja.com>
-Ben Bourner <ben@orion.no>
-Lalitha Chinthamani <lchinthamani@oresis.com>
-Thomas Huang <Thomas.Huang@jpl.nasa.gov>
-Sankaranarayanan K. V <sankar@miel.mot.com>
-Ephraim Vider <eff@allot.com>
-Reid Spencer <reid@unique2u.com>
-Kevin Dalley <kevind@rahul.net>
-Jan Nielsen <jnielsen@campuspipeline.com>
-Jochen Linkohr <Jochen.Linkohr@stz-rechnereinsatz.de>
-Mirko Brandner <mbrandner@yahoo.com>
-Yuval Yosef <yuvi@isdn.net.il>
-Chad Elliott <elliott_c@ociweb.com>
-David X. Callaway <david.x.callaway@intel.com>
-Soren Ilsoe <soren.ilsoe@tellabs.com>
-Eric Hopper <ehopper@globalmt.com>
-Martin Johnson <mjhn@bigpond.net.au>
-Pierre Oberson <oberson@nagra-kudelski.ch>
-Chris Uzdavinis <chris@atdesk.com>
-Ishay Green <ishaygreen@hotmail.com>
-Andrey Nechypurenko <andreynech@yahoo.com>
-Charlie Duke <cduke@cuseeme.com>
-Jonathan Luellen <jluellen@scires.com>
-Andrew Psaltis <apsaltis@mho.net>
-Erik Jones <ej@pcslink.com>
-Ted Burghart <burghart@quoininc.com>
-Mike Winter <Mike.Winter@Schwab.com>
-Judy Ward <ptr_corp@ptrsv1.pko.dec.com>
-Ken Block <ptr_corp@ptrsv1.pko.dec.com>
-Jamshid Afshar <jafshar@vignette.com>
-Jerry Jiang <javalist@21cn.com>
-Rob Ruff <rruff@scires.com>
-Hugh Arnold <harnold@itginc.com>
-Hessel Idzenga <idzenga@lucent.com>
-Mark C. Barnes <marcus@muse3d.com>
-Suresh Kannan <kannan@uav.ae.gatech.edu>
-Alex Scholte <Alex.Scholte@getronics.com>
-Greg Jansen <plaidriver@msn.com>
-Raj Narayanaswamy <rnarayanaswamy@hologic.com>
-Iain Melville <Iain.Melville@opentrade.co.uk>
-Daniel Lang <dl@leo.org>
-Chris Leishman <chris_leishman@freeonline.com.au>
-Klemen Zagar <klemen.zagar@irj.si>
-Rick Ohnemus <rjohnemus@systemware-inc.com>
-Adamo, Vince <adamo@vignette.com>
-Defang Zhou <dzhou@inktomi.com>
-Dave Zumbro <zumbro_d@ociweb.com>
-Ted Nolan <ted@ags.ga.erg.sri.com>
-Jianfei Xu <jxu@yahoo.com>
-Alvin C. Shih <acs@ml.com>
-J. Scott Evans <evans@cpi.com>
-Alex Luk <fluk7@ie.cuhk.edu.hk>
-Kenneth Osenbroch <kennetho@stud.cs.uit.no>
-Jason Czavislak <jczavislak@osprey.smcm.edu>
-Alex Chachanashvili <achacha@panix.com>
-Gilbert Grosdidier <Gilbert.Grosdidier@in2p3.fr>
-James Briggs <James.Briggs@dsto.defence.gov.au>
-Herbert Wang <herb@nowsol.com>
-Anders Olsson <epkanol@s1.epk.ericsson.se>x
-Sergey Gnilitsky <SGnilitsky@telesens.com.ua>
-David Wicks <wicks@swbell.net>
-Girish Birajdar <birajdar@lucent.com>
-Hajdukiewicz Markus <MHajdukiewic@heyde.de>
-Gerwin Robert <RGerwin@heyde.de>
-Alia Atlas <akatlas@bbn.com>
-David Hall <David.Hall@grc.nasa.gov>
-Todd Gruhn <tgruhn2@mail.com>
-John Hickin <hickin@nortelnetworks.com>
-Alex Brown <abrown@3com-ne.com>
-Rich Seibel <seibel_r@ociweb.com>
-Jim Scheller <csoftware@iname.com>
-Bob Bouterse <BBouterse@escient.com>
-Sandeep Adwankar <adwankar@rsch.comm.mot.com>
-W. Craig Trader <ct7@vitelinc.com>
-Bruce McIntosh <Bruce.McIntosh@australia.boeing.com>
-Natarajan Kalpathy <Natarajan_Kalpathy@mw.3com.com>
-David O'Farrell <eeidofl@eei.ericsson.se>
-Bob Bouterse <BBouterse@escient.com>
-Malcolm Spence <spence_m@ociweb.com>
-Dong-Yueh Liu <dyliu@ms1.hinet.net>
-Craig Ball <Craig.Ball@megasys.com>
-Norbert Krain <krain@lineone.net>
-Adrian Miranda <ade@psg.com>
-Cody Dean <cody.dean@mindspring.com>
-Hans Scharkowitz <hanssch@my-deja.com>
-Charles Meier <cmeier@concentus-tech.com>
-Tim Sim <tim_sim@optusnet.com.au>
-Shalabh Bhatnagar <shalabh_b@hotmail.com>
-Charles Scott <Charles.P.Scott@jpl.nasa.gov>
-Espen Harlinn <espen@harlinn.no>
-mulder <mul@iitb.fhg.de>
-Richard L. Johnson <rich@huey.jpl.nasa.gov>
-Tam Nguyen <tnguyen@viasat.com>
-Jeff Graham <jgraham@lincom-asg.com>
-Ralph Loader <suckfish@ihug.co.nz>
-Ji Wuliu <jiwuliu0952_cn@sina.com>
-Wada Hiroshi <syu-@yhb.att.ne.jp>
-Sal Amander <virgis@megagis.lt>
-Bill Tonseth <tonseth@shamra.mv.com>
-Torsten Pfuetzenreuter <torsten_pf@geocities.com>
-John M. Mills <jmills@tga.com>
-David McWeeny <davemcw@tr.comm.mot.com>
-Florian Lackerbauer <florian.lackerbauer@mchp.siemens.de>
-Manuel Benche <mbenche@jazz.cs.utsa.edu>
-Steve Luoma <stevel@dvc400.com>
-Roger Tragin <r.tragin@computer.org>
-Alex Bangs <bangs@entelos.com>
-Yangfen Qiu <yqiu@thomas.com>
-Johnny Chen <jchen@informatica.com>
-John Foresteire <John_J_Foresteire@res.raytheon.com>
-Larry Peacock <larry@appsmiths.com>
-Francisco Bravo <emefjbm@madrid.es.eu.ericsson.se>
-Antti Valtokari <Antti.Valtokari@iocore.fi>
-John Smyder <jsmyder@salient.com>
-Mathew Samuel <Mathew.Samuel@msdw.com>
-Conrad Hughes <conrad@baltimore.ie>
-John Rodgers <jrrodgers@acm.org>
-Charles Taurines <ctaurines@amadeus.net>
-James Lacey <James.Lacey@motorola.com>
-Nick Pratt <npratt@microstrategy.com>
-Xiaojun Wu <depender@yahoo.com>
-George Lafortune <lafortg@res.raytheon.com>
-Aoxiang Xu <axu@cim.mcgill.ca>
-Dima Skvortsov <dskvortsov@mediasite.com>
-Moore Y. Cao <yilincao@lucent.com>
-Wai Keung Fung <wkfung@maews69.mae.cuhk.edu.hk>
-Michael Laing <mpl@flni.com>
-Benoit Viaud <benoit.viaud@artal.fr>
-Ken Weinert <kenw@ihs.com>
-Ferran Boladeres Salvad <salvadof@iis.fhg.de>
-Bill Tonseth <tonseth@shamra.mv.com>
-Steve Vranyes <steve.vranyes@veritas.com>
-Jim Melton <Jim.Melton@lmco.com>
-Ron Klein <rklein@west.raytheon.com>
-Anuj Singhal <ASinghal@mediasite.com>
-Henrik Kai <hka@ddk.de>
-Dominic Hughes <dominic@aersoft.ie>
-Lior Shalev <lior@bandwiz.com>
-Charlie Duke <cduke@www.cuseemeworld.com>
-William Horn <whorn1984@my-deja.com>
-Greg Hall <Greg.Hall@Australia.Boeing.com>
-Aviad Eden <Aviad_Eden@icomverse.com>
-Vianney Lecroart <acegsm@itineris.net>
-Russell Mora <rd.mora@router.econz.co.nz>
-Samir Shaikh <SamirShaikh@bigfoot.com>
-Eric Yee <eyee@authentica.com>
-Matt Emerson <memerson@escient.com>
-Yiu L. Lee <yiulee@crosskeys.com>
-Pedro Brandao <pbrandao@inescn.pt>
-Hakon Innerdal <hakoni@funcom.com>
-Sami Aario <saempylae@hotmail.com>
-Ingo Dahm <ingo.dahm@sun.com>
-Vijay Aswadhati <wyseman@planetbazaar.com>
-Xiaowen Wang <swangken@cfdlab.ae.utexas.edu>
-<vsg@ivl.kiev.ua>
-Warren Miller <wmiller@stsci.edu>
-Youngkwan Cho <ykcho@ece.arizona.edu>
-Dorr H. Clark <dhclark@Lynx.COM>
-Dave McNeely <Dave_McNeely@md.northgrum.com>
-Eric Malenfant <EMalenfant@interstarinc.com>
-Roland Fischer <roli@gugus.com>
-Alexander Libman <alibman@ihug.com.au>
-Roger Larsson <larssoro@hotmail.com>
-Martin Stack <mstack@cambertx.com>
-Michael Ravits <miquel@bitsmart.com>
-Derek Viljoen <derek@viljoen.com>
-Hamed Azizadah <Azizadah@ix.netcom.com>
-Keo Kelly <kkelly@fallschurch.esys.com>
-Joachim Achtzehnter <joachima@netacquire.com>
-Tomer Amiaz <Tomer@bandwiz.com>
-Sergey Osokin <osa@freebsd.org.ru>
-Nick Logvinov <nl@rpb.ru>
-Viatcheslav Batenine <slavikb@infra2000.com>
-Shashi Bhushan <Shashi.Bhushan@lmco.com>
-Javier Corrales <jcorrales@tcpsi.es>
-J. Randy Pitz <james.r.pitz@boeing.com>
-Richard Reitmeyer <richard@verecomm.com>
-Xavier Montet <montet@cena.fr>
-Letha Etzkorn <letzkorn@cs.uah.edu>
-James Dabbs <jdabbs_home@mindspring.com>
-Matej Sekoranja <matej.sekoranja@ijs.si>
-Mattias Eriksson <snaggen@acc.umu.se>
-Nicoletta Viale <nicoletta.viale@sodalia.it>
-George Reid <greid@entrenet.com>
-Kim Lester <Kim_R_Lester@rta.nsw.gov.au>
-Wilson Chan <wilson@i-finance.com.hk>
-William Rucklidge <wjr@imarkets.com>
-Victor Krebss <lopik@delfi.lv>
-Chander P. Thareja <cthareja@ssind.stpn.soft.net>
-John Mills <jmills@tga.com>
-Haifeng Lee <haifeng@dset.com.cn>
-Hans Utz <hans.utz@student.uni-ulm.de>
-Askok Kumar Kalanithi <k_ashok_kumar@yahoo.com>
-Chris Able <cable@scires.com>
-John Hiltenbrand <jhiltenb@uiuc.edu>
-Steve Hespelt <shespelt@bear.com>
-Peter Fischer <fischer@softec.de>
-Madhu Ramachandran <mramacha@atdsprint.com>
-Caleb Epstein <cae@home.com>
-Bruno Marconi <bmarconi@jetstream.com>
-Ken Childress <kchildre@uccs.jpl.nasa.gov>
-Michael Kramer <kramer@ave.ac.agit.de>
-Johnny Willemsen <johnny.willemsen@meco.nl>
-Jonathan Astle <JNASTLE@dera.gov.uk>
-Javier Lopez Sanchez <jlopez@uida.es>
-Nir Drang <Nir@bandwiz.com>
-Albert Wijnja <Albert.Wijnja@meco.nl>
-Marcel Van Der Weert <mvdweert@aweta.nl>
-Mervyn Quah <mquah@guoco.com>
-Giovanni Zito <gzito@mbox.thunder.it>
-Matthew Adams <madams@bexusa.com>
-Sameer Schabungbam <schabungbam@hss.hns.com>
-Jeff Butler <jeff@panasas.com>
-Roland Rüdenauer <roland.ruedenauer@freenet.de>
-John Buckman <john@lyris.com>
-Guy Rosen <grosen@bigfoot.com>
-<amoderni@viasoft.com>
-Bennett R. Stabile <bstabile@home.com>
-Paul Caffrey <pcaffrey@iel.ie>
-Low Aik long <aiklong@softhome.net>
-Michael Rinne <Michael.Rinne@ZN-AG.de>
-Jaffar Shaikh <Jaffar_Shaikh@Mitel.com>
-Roger Beck <roger_beck@royalsun.com.au>
-Trueman Bill <truemanbill@yahoo.com>
-Harold Bien <harold_bien@yahoo.com>
-Mateu Batle <mbatle@iname.com>
-Philip Miller <pwmiller@sarnoff.com>
-Base V Paul <basev@wiproge.med.ge.com>
-Evghenii Filippov <evghenii.filippov@ngcan.com>
-Mike Curtis <mccurry@my-deja.com>
-Jessie Ragsdale <jessie.ragsdale@latuslw.com>
-Shourya Sarcar <Shourya.Sarcar@geind.ge.com>
-Eric Crampton <EricCrampton@worldnet.att.net>
-Sandip Patel <spatel@gigabitwireless.com>
-ChenXu <chenxu_xjtu@263.net>
-Vsevolod Novikov <novikov@df.nnov.rfnet.ru>
-Brendan Corcoran <brendan@jenisys.com.au>
-Steve Sivier <Steven.Sivier@Eng.Sun.COM>
-Rick Schneeman <rschneeman@nist.gov>
-Klaus H. Wolf <hw@cyland.com>
-Jean-Christophe Dubois <jcd@one.com>
-Michael Hampel <michael.hampel@fhs-hagenberg.ac.at>
-Wei Zheng <weizheng@uiuc.edu>
-Bernd Annamaier <bernd.annamaier@de.adtranz.com>
-Joachim Tremouroux <joachim.tremouroux@microresearch.be>
-Momchil Velikov <velco@fadata.bg>
-Munagala Ramanath <amberarrow@yahoo.com>
-Kevin Marshall <KCMarshall@att.net>
-Adrian Mercieca <adrian@anvil.co.uk>
-David Channon <djc@uq.net.au>
-Andy Guy <andy@emory.demon.co.uk>
-Oscar Rodriquez <Oscar.Rodriquez@eln.ericsson.se>
-Jonathan Cano <jcano@mmcnet.com>
-Alain Decamps <Alain.Decamps@PIDPA.be>
-Paul Rubel <prubel@bbn.com>
-Jon Loeliger <jloeliger@chiaro.com>
-Ricardo Chan <ricchan@nortelnetworks.com>
-Sarabjeet Duhra <sarabjeet_duhra@hp.com>
-Sathish Tiptur <Sathish.Tiptur@geind.ge.com>
-Michael Rushton <miker@mbmnz.co.nz>
-Arno Pernozzoli <a.bernicchia@tiscalinet.it>
-Calum Mitchell <calum.mitchell@cp.net>
-Jerry Odenwelder <jerry.o@mindspring.com>
-Kent Stewart <kbstew99@hotmail.com>
-Alexander Kogan <jk@kogan.nnov.ru>
-Michael Lindner <mikel@att.net>
-Arnaud Compan <compan@ipanematech.com>
-Frank A. Hunleth <fhunleth@cs.wustl.edu>
-Michael Searles <msearles@base16.com>
-Bogdan Jeram <bjeram@eso.org>
-Sebastian Schubert <sschuber@et.htwk-leipzig.de>
-Li Zhou <lizhou@doc.ece.uci.edu>
-Shivakumar Patil <shivakumar.patil@stdc.com>
-Steve Olson <Steve_Olson@illinova.com>
-Allen Broadman <broadmana@plural.com>
-Yuriy Zaporozhets <zaz@internet-zahav.net>
-Joe Guan <jguan@mistwireless.com>
-Attilio Dona <dona@sodalia.it>
-McGanahan Skjellifetti <cmeier@concentus-tech.com>
-Matthias Wittig <m.wittig@com-on.de>
-Sharath R. Cholleti <sharath@cs.wustl.edu>
-David Allen <dallen@storm.com>
-Edwin McKay <mckayea@betalasermike.com>
-Scott Bolin <scott.bolin@pgs.com>
-Mike Anderson <manderson@sonusnet.com>
-David Singer <David_P_Singer@res.raytheon.com>
-Nick Lin <nicklin@vantech.com.tw>
-Ron Hashimshony <Ron@bandwiz.com>
-Max Khon <fjoe@iclub.nsu.ru>
-Jonas Nordin <jonas.nordin@syncom.se>
-Jonathan Stockdale <Jonathan.Stockdale@locusdialogue.com>
-Jean-Francois Daune <Daune@IBA.be>
-Wei Chiang <wei.chiang@kolumbus.fi>
-Rick Stille <stille_r@ociweb.com>
-Kirill Kuolechov <Kirill.Koulechov@gmx.net>
-Edwin Wrench <Edwin.Wrench@itt.com>
-Yung Trinh <ytrinh@email.com>
-Richard Eperjesi <reperjesi@yahoo.com>
-Ben Strong <bstrong@bluelark.com>
-David Karr <dkarr@bbn.com>
-Sathish Tiptur <Sathish.Tiptur@geind.ge.com>
-Frank Hunleth <fhunleth@cs.wustl.edu>
-Lu Yunhai <luyunhai@huawei.com>
-Christian Ewald <christian.ewald@zuehlke.com>
-Samuel Qi Luo <Samuel.QiLuo@ericsson.com.au>
-Sergey Logvin <S.Logvin@telesens.com.ua>
-Orlando Ribeiro <oribeiro@inescporto.pt>
-Doug Warner <dougwarner@micron.com>
-Kevin Regan <kregan@infoglide.com>
-Andy Olson <andrew.olson@lmco.com>
-Max Voronoy <m.voronoy@telesens.com.ua>
-Alexandr Gavrilov <gavr@trustworks.com>
-Scott Gunn <gunns@tvratings.com>
-Mason Deaver <mason.deaver@tripointglobal.com>
-Richard Huber <rhuber@amadeus.net>
-Glen Osterhout <gosterho@elronsw.com>
-YingLi <taoace@sina.com>
-Haka <newhaka@21cn.com>
-Sam Chong <sam@i2i-inc.com>
-Virgilijus Globis <virgis@megagis.lt>
-Stefan Scherer <stefan_scherer@sepp.de>
-Pim Philipse <ppm@rogan-medical.com>
-Michael Grove <snowymike@aol.com>
-John Mackenzie <John.Mackenzie.extern@icn.siemens.de>
-Ricky Marek <ricky@waveip.com>
-Patrick Maassen <patrick.maassen@meco.nl>
-Christian Schuhegger <Christian.Schuhegger@cern.ch>
-David L Smith <david.l.smith@larc.nasa.gov>
-Rainer Doerntge <doerntge@kiwilogic.com>
-Tompa <safdsfd@adsffda.com>
-Derek Horton <trohed@yahoo.com>
-Shameek Basu <sbasu@ivast.com>
-Dipti Jain <dijain@hss.hns.com>
-Eric Zuur <Eric.Zuur@meco.nl>
-Jeffrey J. Persch <hyperslug@yahoo.com>
-Rahul Shukla <rshukla@ggn.aithent.com>
-Pierre Fayolle <fayolle@enseirb.fr>
-Greg McCain <greg.mccain@veritas.com>
-Matt Cheers <matt.cheers@boeing.com>
-Benjamin Fry <ben@thrownet.com>
-Ram Ben-Yakir <Ram@bandwiz.com>
-Eric Desamore <Eric.Desamore@idtv.bull.net>
-John Ashmun <John.ASHMUN@esca.com>
-Przemyslaw Marciniak <pmarciniak@lucent.com>
-Boris Kolpackov <bosk@ipmce.ru>
-Carsten Madsen <com@navicon.dk>
-David Sperry <sperryd@res.raytheon.com>
-Ted Horst <Ted.Horst@ubsw.com>
-Diana Arroyo <darroyo@infoglide.com>
-Peter Phillips <pphillip@home.com>
-Benny Prijono <bennylp@switchlab.net>
-Roland Ziegler <zi@ave-web.de>
-Stelios Sfakianakis <ssfak@ics.forth.gr>
-Mike Letchworth <mletchwo@cisco.com>
-Brian Gilmer <Brian.Gilmer@jhuapl.edu>
-James Dunham <James.Dunham@esecurityinc.com>
-Juergen Pfreundt <Juergen.Pfreundt@gft.com>
-Joel Sherrill <joel@OARcorp.com>
-Jules Colding <dsl11814@vip.cybercity.dk>
-Stephane Pion <PION_Stephane@stna.dgac.fr>
-Raghu Narayan <raghu_narayan@non.hp.com>
-Richard Goold <rgoold@inexum.com>
-Nathalie D'Amours <nathalie@stentor.com>
-Albert Pariante <albert@sw.bev.etn.com>
-Stephen Torri <s.torri@lancaster.ac.uk>
-Philippe Perrin <perrin@enseirb.fr>
-Gunnar Buason <a98gunbu@student.his.se>
-David Hanvey <d.hanvey@qub.ac.uk>
-Jeff McNiel <Jeff_McNiel@VitalCom.com>
-Georg Lohrer <GeorgLohrer@web.de>
-Rachel G Smith <Rachel_G_Smith@raytheon.com>
-Tom Lake <Tom.Lake@glossa.co.uk>
-Logan Modahala <lmodahal@cisco.com>
-Jean Malenfant <jean.malenfant@locusdialog.com>
-Victor Poznyak <VictorP@Webley.COM>
-Juan Jose Comellas <jcomellas@novamens.com>
-James Dorsey <James.Dorsey@acxiom.com>
-Benot Desmeules <bdesmeules@eurekium.com>
-Tom Moog <tmoog@polhode.com>
-Stan Pinte <spinte@latinia.com>
-Dayisi <dayisi@163.com>
-Peter Georgakakis <peterg@gdc.ca>
-Richard Hardgrave <hardgrav@ttd.teradyne.com>
-Mark Drijver <mdrijver@remedy.nl>
-Guy Bolton King <guy_bolton_king@non.agilent.com>
-Carlton Teel <teel@signal-analysis.com>
-Alexandre Cervieri <alexandre.cervieri@terra.com.br>
-Darren Griffith <darren.griffith@esecurityinc.com>
-Sam Mok <sam.mok@westwave.com>
-Josh Curry <Josh.Curry@lipper.reuters.com>
-Norman Wilson <Norman.Wilson@liffe.com>
-Itzhak Briskman <ibriskman@ndsisrael.com>
-James Kanyok <james.kanyok@lmco.com>
-Corey Trager <corey.trager@tradingtechnologies.com>
-Kirat Singh <kirat.singh@gs.com>
-Oleg Pavliv <oleg_pavliv@yahoo.com>
-Frederick Niemi <fniemi@cisco.com>
-Andrew Munro <Andrew.Munro@Australia.Boeing.com>
-Nicolas Huynh <HUYNH_Nicolas@cena.fr>
-Kevin Burge <kcburge@systemware-inc.com>
-Wayne Erchak <wayne@stentor.com>
-Yew Khong See <seeyk@yahoo.com>
-Greg Thompson <gregt@ot.com.au>
-Mike Pyle <mike.pyle@burning-glass.com>
-Kobi Cohen-Arazi <kobi@mivzak.com>
-Israel Illescas Gomez <illescas@dycsa.es>
-Brodie Thiesfield <brodie.thiesfield@activesky.com>
-Erik Toubro Nielsen <enielsen@mdsproteomics.dk>
-Masaoud T. Moonim <masaoud@mailandnews.com>
-Steve Witten <steve_witten@hp.com>
-Gil Rapaport <grapaport@comgates.co.il>
-Boris Temkin <borist@allcharge.com>
-Steve Perkins <steve@steveperkins.net>
-Jerry Thomas <jto@consegna.co.uk>
-cuma <cuma@dslab.csie.ncu.edu.tw>
-Ron Heald <rheald@nrao.edu>
-Andrew Finnell <Andrew.Finnell@esecurityinc.com>
-Dan Levi <DanL@webmap.com>
-Rob Andzik <andzik@rtlogic.com>
-James Maynard <James.Maynard@ot.com.au>
-Francois Rioux <rioux01@gel.ulaval.ca>
-Ophir Bleiberg <ophir@personeta.com>
-Allen Kelly <akelly@postx.com>
-Victor Pitchouc <pitchouc@tlsoft.ru>
-Srikanth Vedire <srvedire@yahoo.com>
-J Shane Culpepper <pepper@channelogics.com>
-Benn Howard <Benn_Howard@raytheon.com>
-Steffen Hieber <Steffen.Hieber@erl9.siemens.de>
-Craig L. Ching <cching@mqsoftware.com>
-Ben Howard <Ben_Howard@raytheon.com>
-Rich Newman <RNewman@directv.com>
-Kelly F. Hickel <kfh@mqsoftware.com>
-David Trusty <david.trusty@westwave.com>
-Burkhard Neppert <b.neppert@dr-staedtler.de>
-Crawford Lodge <crawford.lodge@xmlglobal.com>
-Scott Gaa <scott_a_gaa@md.northgrum.com>
-Jenny Kowald <jkowald@oz.agile.tv>
-Oren Zeev-Ben-Mordehai <oren@phonedo.com>
-Holger P. Krekel <krekel@merlinux.de>
-Glenn Popelka <gpp@gpopelka.com>
-Marco Kranawetter <Marco.Kranawetter@icn.siemens.de>
-Tibor Kiss <tkiss@mindmaker.hu>
-Robert Davidson <robert@rdavidson.freeserve.co.uk>
-Peter Crowther <peter.crowther@networkinference.com>
-Mouna Seri <seri@crhc.uiuc.edu>
-Vladimir Chovanec <Vladimir.CHOVANEC@asset.sk>
-Alexander Rieger <Alexander.Rieger@inka.de>
-Glen Coakley <gcoakley@mqsoftware.com>
-Scott Plant <splant@softhome.net>
-Wilfried Reinoehl <Wilfried.Reinoehl@WiredMinds.de>
-Sangeetha Ramadurai <Sangeetha.Ramadurai@geind.ge.com>
-Victor Chernenko <v_chernenko@hotmail.com>
-Frank Wolf <fwolf@gum.de>
-Christophe Galerne <christophgalerne@earthlink.net>
-Scott Harris <harris_s@ociweb.com>
-Stefan Kluehspies <Stefan.Kluehspies@gmx.net>
-Egon Wuchner <Egon.Wuchner@mchp.siemens.de>
-Ugendreshwar Kudupudi <ugenderk@rediffmail.com>
-Ekkehard Hoffmann <ehoffman@fzi.de>
-Ted Krovetz <ted@digitalfountain.com>
-Grzegorz Sikora <GSikora1@era.pl>
-Fabris <fabris65@my-deja.com>
-Christina Junru <junruli@lucent.com>
-Patrick Rabau <Patrick.Rabau@htc.com>
-Hyman Rosen <hyrosen@mail.com>
-Torbjorn Backstrom <torbjorn.k.backstrom@volvo.com>
-Robert Burke <rburke2002@yahoo.com>
-Olivier Brunet <obrunet@groupama-ccama.tm.fr>
-Bret Clark <clarkbt@tvratings.com>
-Steve Rahn <SRahn@rim.net>
-Bertrand Motuelle <bertrand.motuelle@effix.fr>
-Blair Zajac <blair@gps.caltech.edu>
-Gary Duzan <gduzan@bbn.com>
-Garry Shammis <Garry.Shamis@kbcfp.com>
-Eamonn Saunders <Esaunders@softricity.com>
-Yev Omenzel <omenzel@yahoo.com>
-John E Hein <jhein@timing.com>
-Tino Schwarze <tino.schwarze@informatik.tu-chemnitz.de>
-Don Hinton <dhinton@swan.fr>
-Gergely Timar <timarok@elender.hu>
-Peter Phillips <pphillip@opentext.com>
-Kuznesov Yury <yury@newst.net>
-Daniel Manfis <dany_100@yahoo.com>
-Massimo Pichini <massimo@webbridges.it>
-Eyal Neuman <eyal@tradertools.com>
-Dave Hale <d.hale@rane.net>
-Giulio Agostini <giulio.agostini@db.com>
-Werner Buchert <w.buchert@medat.de>
-Kevin Cline <krc@one.com>
-Mahesh Varadarajan <mahesh.varadarajan@divatv.com>
-Olof Lindfors <olof.lindfors@protegrity.com>
-Tom Wagner <TomW@CoManage.net>
-Kyle Brost <Kyle.Brost@quest.com>
-Nicolas Vincent <Vincent.Nicolas@Radiometer.dk>
-Jon Wackley <jonw@mountaincable.net>
-Jan Kalin <jan.kalin@zag.si>
-Andreas Huggel <huggel_andreas@isoftel.com>
-Alain Totouom <atotouom@gmx.de>
-Tushar Nair <ntushar@yahoo.com>
-Sunny Leung <sleung@opentext.com>
-Bonifides Bautista <earlboy@my-deja.com>
-Brad Hoskins <BHoskins@slo.newport.com
-Donald Acton <acton@opentext.com>
-Hagen Ulrich <ulrich.hagen@siemens.com>
-Adrian Mercieca <adrian@anvilmalta.com>
-Lars Steubesand <Lars_Steubesand@hsgmed.com>
-Heping He <heping.he@riskmetrics.com>
-Leo Kov <leo_kov@hotmail.com>
-Suresh N <suresh.n@vergiltech.com>
-David Arndt <darndt@oresis.com>
-Tad Hetke <thetke@oresis.com>
-Graeme Clark <gclark@opentext.com>
-Gu Song <gusong_m@yahoo.com>
-Chris Hughes <chughes@stentor.com>
-Fikri Pribadi <fikri@ugotacall.com>
-Ioulia Passynkova <ioulia.passynkova@nettest.com>
-Steve Osselton <steve@prismtechnologies.com>
-Doron Rajwan <doron@BANDWIZ.COM>
-Stuart Jones <sjones@clcsmail.ksc.nasa.gov>
-Guillaume Renaud <guillaume.renaud@valtech.fr>
-Tommy Svensson <tommysvensson@yahoo.com>
-Jstwo <jstwo@writeme.com>
-Hartmut Quast <HartmutQuast@t-online.de>
-Ulrich Voigt <Ulrich.Voigt@ddg.de>
-Syed Wasim Ali <syed.ali@neustar.com>
-Bo Balder <bba@post.utfors.se>
-Michael Sawczyn <msawczyn@columbus.rr.com>
-Ildar Gabdulline <ildar_gabdullin@mailru.com>
-David Yongqiang Wang <davidyw@avaya.com>
-
-I would particularly like to thank Paul Stephenson, who worked with me
-at Ericsson in the early 1990's. Paul devised the recursive Makefile
-scheme that underlies this distribution and also spent countless hours
-with me discussing object-oriented techniques for developing
-distributed application frameworks.
-
-Finally, I'd also like to thank Todd L. Montgomery <tmont@cs.wvu.edu>,
-fellow heavy metal head, for fulfilling his quest to get ACE to
-compile with GCC!
-
-In conclusion, our goal is to see ACE+TAO continue to evolve and
-become a more comprehensive, robust, and well-documented C++ class
-library that is freely available to researchers and developers. If
-you have any improvements, suggestions, and or comments, we'd like to
-hear about it. Please see the instructions in
-
-$ACE_ROOT/PROBLEM-REPORT-FORM
-$TAO_ROOT/PROBLEM-REPORT-FORM
-
-for instructions on submitting suggestions or fixes.
-
- Thanks,
-
- Douglas C. Schmidt
- schmidt@uci.edu
diff --git a/TODO b/TODO
deleted file mode 100644
index 9f26c5f08f7..00000000000
--- a/TODO
+++ /dev/null
@@ -1,269 +0,0 @@
-============================================================================
- ACE/TAO TODO List
-============================================================================
-
-ACE and TAO
------------
-For notes about what things need to be done for ACE and TAO, see their
-respective release notes.
-
-
-ACE/TAO Configuration Project
------------------------------
-1. Add support for Linux netdb reentrant functions (LOW PRIORITY)
-2. Add support for Linux sysinfo(). (LOW PRIORITY)
-3. Change tests that need ACE_CONVERT_WARNINGS_TO_ERRORS and possibly
- others to use regular expression searches instead. (MAYBE NOT)
-4. Process all of the remaining TODOs and FIXMEs in configure.in.
-5. Ensure the configure script will work for cross-compiled platforms.
-6. Make sure failed autoconf test programs in config.log failed for
- the "right" reasons, not due to some typo, for example.
-7. Figure out the best way to choose interface numbers for the libACE.la
- -version-info libtool flag.
-8. Integrate the remaining ACE subdirectories into the automake scheme.
-9. Verify that the new automake build scheme works, i.e. everything
- gets built correctly.
-10. Really test the configure script and automake build scheme; really
- "pound" on them. (e.g. test and make sure everything works on
- as many platforms as possible).
-11. Write documentation on how to maintain the Autoconf and Automake files.
- HOWTOs/tutorials on how to use Auto{conf,make} and libtool would be
- good, too.
-12. Implement remaining configure script options (e.g. --enable-optimize,
- --with-orbix).
-13. Make sure all of the ACE feature macros are supported by the configure
- script.
-14. Modify ace/Makefile.am and tao/Makefile.am so that the template
- sources are always included in the distribution (though not
- necessarily the installation).
-15. Verify that the contents of the `AUTHORS' file is correct.
-16. Add some information to the `NEWS' file.
-17. Add subset dependencies to subsets.m4 for libACE_Token and
- libACE_Other.
-18. Add ACE subset library support to the ace-config script.
-19. Fix/check the minimum/maximum thread priority test.
-20. Verify that the asynchronous IO checks actually work properly.
-21. ACE_TEMPLATES_REQUIRE_SOURCE test fails for the wrong reasons
- Solaris' linker claims that the function Foo<int>::Foo<int> (int)
- doesn't exist. Where is it getting function Foo<int>::Foo<int> (int)
- from? It should be getting function Foo<int>::Foo (int).
-22. Fix tests/Makefile.am to conditionally build some of the tests
- since some of the ACE components that are needed for the tests
- may not have been built.
-23. Repeat #22 for other binaries in ACE.
-24. Need to implement and/or verify tests for the following ACE macros:
-
-/* Define this if you don't want debug version ACE search for debug version
- DLLs first before looking for the DLL names specified. */
-#undef ACE_DISABLE_DEBUG_DLL_CHECK
-
-+ACE_DONT_INCLUDE_ACE_SIGNAL_H
-
-+ACE_HAS_BROKEN_ACCEPT_ADDR
-
-/* Platform doesn't cast MAP_FAILED to a (void *). */
-#undef ACE_HAS_BROKEN_MAP_FAILED
-
-/* Compiler/platform has the wrong prototype for t_error(), i.e.,
- t_error(char *) rather than t_error(const char *). */
-#undef ACE_HAS_BROKEN_T_ERROR
-
-/* Platform has Fast-Light (FL) toolkit installed */
-#undef ACE_HAS_FL
-
-+ACE_HAS_FORE_ATM_WS2
-+ACE_HAS_FORE_ATM_XTI
-+ACE_HAS_IP6
-+ACE_HAS_LIMITED_SELECT
-+ACE_HAS_PHARLAP_RT
--ACE_HAS_PTHREAD_SIGMASK
-+ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-+ACE_HAS_TK
-+ACE_HAS_WINSOCK2_GQOS
-+ACE_LACKS_CHAR_RIGHT_SHIFTS
-+ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS
-+ACE_LACKS_NULL_PTHREAD_STATUS
-+ACE_LACKS_PTHREAD_SIGMASK
--ACE_LACKS_SCHED_H
-+ACE_LACKS_TCP_NODELAY
-+ACE_NEEDS_SCHED_H
-+ACE_USES_HIGH_BAUD_RATES
-+ACE_USES_OLD_TERMIOS_STRUCT
-
-
-
-/* Compiler enforces C++ One Definition Rule */
-#undef ACE_HAS_ONE_DEFINITION_RULE
-
-/* Platform has void (*)(...) prototype for pthread_key_create() destructor
- (e.g., LynxOS). */
-#undef ACE_HAS_STDARG_THR_DEST
-
-/* Platform/compiler supports Win32 structural exceptions */
-#undef ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS
-
-/* Platform, such as AIX4, needs to wrap #include of sys/socket.h with
- #undef/#define of __cplusplus. */
-#undef ACE_HAS_AIX_BROKEN_SOCKET_HEADER
-
-/* Compiler/platform correctly calls init()/fini() for shared libraries */
-#undef ACE_HAS_AUTOMATIC_INIT_FINI
-
-/* Compiler has integer overflow problem with bit-shift operations. */
-#undef ACE_HAS_BROKEN_BITSHIFT
-
-/* Earlier versions of HP/UX C++ are damned... */
-#undef ACE_HAS_BROKEN_HPUX_TEMPLATES
-
-/* FIXME: What does this do and what do we test for? */
-#undef ACE_HAS_BROKEN_IF_HEADER
-
-/* TODO: WE HAVE A TEST FOR THIS, BUT WE NEED TO KNOW IF IT WORKS! */
-/* Platform headers don't support <msg.h> prototypes */
-#undef ACE_HAS_BROKEN_MSG_H
-
-/* MSVC has trouble with defining STL containers for nested structs and
- classes */
-#undef ACE_HAS_BROKEN_NESTED_TEMPLATES
-
-/* Platform has a bug with non-blocking connects (e.g., WinNT 4.0) */
-#undef ACE_HAS_BROKEN_NON_BLOCKING_CONNECTS
-
-/* OS/compiler's header files are inconsistent with libC definition of
- rand_r(). */
-#undef ACE_HAS_BROKEN_RANDR
-
-/* OS/Compiler's header files are not consistent with readv() definition. */
-#undef ACE_HAS_BROKEN_READV
-
-/* OS header files have some problems with XTI (HP/UX 11). */
-#undef ACE_HAS_BROKEN_XTI_MACROS
-
-/* Build ACE using the frigging PC DLL nonsense... */
-#undef ACE_HAS_DLL
-
-/* Needed for pSoS -- FIXME: need a better description */
-#undef ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_FILE
-
-/* Optimize ACE_Handle_Set::count_bits for select() operations (common case) */
-#undef ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-/* Platform supports IP multicast */
-#undef ACE_HAS_IP_MULTICAST
-
-/* Platform supports IPv6 */
-#undef ACE_HAS_IP6
-
-/* Causes the ACE_Object_Manager instance to be created in
- main (int, char *[]), instead of as a static (global) instance. */
-#undef ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-/* Compiler/platform has "big" fd_set, i.e. large number of bits set
- in fd_set passed back from select(). */
-#undef ACE_HAS_BIG_FD_SET
-
-/* Platform supports MT safe mktime() call (do any of them?) */
-#undef ACE_HAS_MT_SAFE_MKTIME
-
-/* Sockets may be called in multi-threaded programs */
-#undef ACE_HAS_MT_SAFE_SOCKETS
-
-/* Use the semaphore implementation of ACE_Message_Queue rather than the
- emulated condition variable (NT and VxWorks). */
-#undef ACE_HAS_OPTIMIZED_MESSAGE_QUEUE
-
-/* Platform has Orbix CORBA implementation */
-#undef ACE_HAS_ORBIX
-
-/* Purify'ing. Defined on command line. */
-#undef ACE_HAS_PURIFY
-
-/* Quantify'ing. Defined on command line. */
-#undef ACE_HAS_QUANTIFY
-
-/* Platform will recurse infinitely on thread exits from TSS cleanup routines
- (e.g., AIX) */
-#undef ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-
-/* Compiler typedefs wchar with char. */
-#undef ACE_HAS_WCHAR_TYPEDEFS_CHAR
-
-/* For Win32: Use Select_Reactor as default implementation of Reactor instead
- of WFMO_Reactor. */
-#undef ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL
-
-/* Platform has bug with sigismember() (HP/UX 11). */
-#undef ACE_HAS_SIGISMEMBER_BUG
-
-/* Compiler requires extern "C" functions for signals. */
-#undef ACE_HAS_SIG_C_FUNC
-
-/* Use the STRICT compilation mode on Win32. */
-#undef ACE_HAS_STRICT
-
-/* Compiler/platform has strange hostent API for socket *_r() calls */
-#undef ACE_HAS_STRUCT_NETDB_DATA
-
-/* HP/UX has an undefined syscall for GETRUSAGE... */
-#undef ACE_HAS_SYSCALL_GETRUSAGE
-
-/* Platform allows multiple threads to call accept() on the same port
- (e.g., WinNT). */
-#undef ACE_HAS_THREAD_SAFE_ACCEPT
-
-/* The pthread_keycreate() routine *must* take extern C functions. */
-#undef ACE_HAS_THR_C_DEST
-
-/* The pthread_create() routine *must* take extern C functions. */
-#undef ACE_HAS_THR_C_FUNC
-
-/* Platform/compiler supports WCHAR */
-#undef ACE_HAS_WCHAR
-
-/* The Win32 platform supports WinSock 2.0 */
-#undef ACE_HAS_WINSOCK2
-
-/* No system support for replacing any previous mappings. */
-#undef ACE_LACKS_AUTO_MMAP_REPLACEMENT
-
-/* pthread_cond_timedwait does *not* reset the time argument when
- the lock is acquired. */
-#undef ACE_LACKS_COND_TIMEDWAIT_RESET
-
-/* Platform forgot const in cond_timewait (e.g., HP/UX). */
-#undef ACE_LACKS_CONST_TIMESPEC_PTR
-
-/* Platform lacks SYSV message queue prototypes */
-#undef ACE_LACKS_SYSV_MSQ_PROTOS
-
-/* Required by platforms with small default stacks. */
-#undef ACE_NEEDS_HUGE_THREAD_STACKSIZE
-
-///// FIX THIS TEST /////
-/* Platform needs regexpr.h for regular expression support */
-#undef ACE_NEEDS_REGEXPR_H
-
-///// FIX THIS TEST /////
-/* Platform needs to #include <sched.h> to get thread scheduling defs. */
-#undef ACE_NEEDS_SCHED_H
-
-/* OS has LWPs, and when the priority of a bound thread is set, then the LWP
- priority must be set also. */
-#undef ACE_NEEDS_LWP_PRIO_SET
-
-/* Platform redefines the t_... names (UnixWare) */
-#undef ACE_REDEFINES_XTI_FUNCTIONS
-
-/* Compiler's template mechanism must use a pragma. This is used for AIX's
- C++ compiler. */
-#undef ACE_TEMPLATES_REQUIRE_PRAGMA
-
-/* Platform uses assembly symbols instead of C symbols in dlsym() */
-#undef ACE_USES_ASM_SYMBOL_IN_DLSYM
-
-/* When linking MFC as a static library is desired */
-#undef ACE_USES_STATIC_MFC
-
-/* A parameter list indicating the version of WinSock (e.g., "1, 1" is
- version 1.1). */
-#undef ACE_WSOCK_VERSION
diff --git a/VERSION b/VERSION
deleted file mode 100644
index 427579cacbd..00000000000
--- a/VERSION
+++ /dev/null
@@ -1,11 +0,0 @@
-This is ACE version 5.2, released Fri Oct 05 05:56:50 2001.
-
-If you have any problems with or questions about ACE, please send
-email to the ACE mailing list (ace-users@cs.wustl.edu), using the form
-found in the file PROBLEM-REPORT-FORM. To ensure that you see responses,
-please do one of the following:
-
- 1) Subscribe to the ace-users mail list, by sending email with
- contents "subscribe ace-users" to majordomo@cs.wustl.edu.
-
- 2) Or, monitor the comp.soft-sys.ace newsgroup for responses.
diff --git a/acconfig.h b/acconfig.h
deleted file mode 100644
index d7871b80523..00000000000
--- a/acconfig.h
+++ /dev/null
@@ -1,1472 +0,0 @@
-/* -*- C++ -*- */
-#ifndef ACE_CONFIG_H
-#define ACE_CONFIG_H
-
-/* ACE configuration header file */
-
-/* @TOP@ */
-/* All lines above "@TOP@" will be placed at the top of config.h.in. */
-
-/*
- $Id$
-
- This file, "acconfig.h," contains additional preprocessor symbols that
- autoheader may encounter.
-*/
-
-
-#ifndef _POSIX_THREADS
-# undef _POSIX_THREADS
-#endif
-
-#ifndef _POSIX_THREAD_SAFE_FUNCTIONS
-# undef _POSIX_THREAD_SAFE_FUNCTIONS
-#endif
-
-/* Some platforms need _POSIX_PTHREAD_SEMANTICS to make some functions work */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-
-/* ACE currently doesn't use these; however the configure script does */
-#undef ACE_LACKS_SYSTIMES_H
-#undef ACE_LACKS_UNBUFFERED_STREAMBUF
-#undef ACE_HAS_STDCPP_STL_INCLUDES
-
-#undef ACE_HAS_LIBC_H
-#undef ACE_HAS_OSFCN_H
-#undef ACE_HAS_NEW_NO_H
-#undef ACE_HAS_NEW_H
-#undef ACE_HAS_STDEXCEPT_NO_H
-#undef ACE_HAS_EXCEPTION_H
-
-/* Platform provides <sys/ioctl.h> header */
-#undef ACE_HAS_SYS_IOCTL_H
-
-/*
- * Deprecated! (or soon to be?)
- */
-#undef ACE_HAS_OSF1_GETTIMEOFDAY /* timezone* 2nd parameter & no prototype */
-#undef ACE_HAS_LYNXOS_SIGNALS
-#undef ACE_HAS_TANDEM_SIGNALS
-#undef ACE_HAS_IRIX_53_SIGNALS
-
-#undef PTHREAD_STACK_MIN
-#undef PTHREAD_STACK_MAX
-
-/* ///////////////////// OSSAMA'S NEW STUFF ////////////////// */
-/*
- THIS STUFF WILL REPLACE THE ABOVE OLDER STUFF AND/OR WILL BE MERGED INTO IT
-*/
-
-/* results from checks for programs */
-/* results from checks for libraries */
-/* results from checks for header files */
-/* results from checks for typedefs */
-/* results from checks for structures */
-/* results from checks for variables */
-/* results from checks for compiler characteristics */
-/* results from checks for library functions */
-/* results from checks for system services */
-
-/* AIX specific configuration parameters */
-#undef AIX
-#undef _BSD
-#undef _BSD_INCLUDES
-
-/* Cray specific configuration parameters */
-/*
- * The following predefined macros are used within ACE ifdefs.
- * These are defined when using the Cray compilers. _CRAYMPP
- * is defined, for example, if you are running on a Cray T3E
- * massively parallel machine. Moreover, in the case of the T3E,
- * _CRAYT3E will be defined. This is used to determine the
- * ACE_SIZEOF defines for primitive types.
- *
- * _UNICOS is defined as either the major version of UNICOS being run,
- * e.g. 9 or 10 on the vector machines (e.g. C90, T90, J90, YMP, ...)
- * or the major+minor+level UNICOS/mk version, e.g. 2.0.3 => 203,
- * being run on an MPP machine.
- *
- * Summary:
- *
- * _CRAYMPP (defined only if running on MPP machine, e.g. T3E, UNICOS/mk)
- * _CRAYT3E (defined specifically if compiling on a Cray T3E)
- * _UNICOS (defined if running UNICOS or UNICOS/mk)
- *
- * Tested on UNICOS 10.0.0.2, UNICOS/mk 2.0.3.10
- *
- * Contributed by Doug Anderson <doug "at" clark.net>
- */
-#undef _CRAYMPP
-#undef _CRAYT3E
-#undef _UNICOS
-
-/* DG/UX specific configuration parameters */
-#undef ACE_DGUX
-#undef _DGUX_SOURCE
-#undef _POSIX4A_DRAFT10_SOURCE
-#undef _POSIX4_DRAFT_SOURCE
-
-/* FreeBSD specific configuration parameters */
-/* Nothing yet */
-
-/* HP/UX specific configuration parameters */
-#undef HPUX
-#undef HPUX_10
-#undef HPUX_11
-#undef _HPUX_SOURCE
-
-/* Irix specific configuration parameters */
-#undef IRIX5
-#undef IRIX6
-#undef _BSD_TYPES
-#undef _SGI_MP_SOURCE
-#undef _MODERN_C_
-
-/* Linux specific configuration parameters */
-/* Nothing yet */
-
-/* LynxOS specific configuration parameters */
-#undef __NO_INCLUDE_WARN__
-#undef _POSIX_THREADS_CALLS
-
-/* M88K specific configuration parameters */
-#undef m88k
-#undef __m88k__
-
-/* MVS specific configuration parameters */
-/* Nothing yet */
-
-/* NetBSD specific configuration parameters */
-#undef ACE_NETBSD
-
-/* OSF/1 and Digital Unix specific configuration parameters */
-#undef DEC_CXX
-#undef DIGITAL_UNIX
-
-/* pSOS specific configuration parameters */
-#undef ACE_PSOS
-#undef ACE_PSOSIM
-#undef ACE_PSOSTBD
-
-/* SCO specific configuration parameters */
-#undef SCO
-#undef _SVID3
-
-/* SunOS / Solaris specific configuration parameters */
-#undef _RWSTD_NO_EXCEPTIONS
-
-/* Tandem specific configuration parameters */
-/* Nothing yet */
-
-/* UnixWare specific configuration parameters */
-#undef UNIXWARE
-#undef UNIXWARE_2_0
-#undef UNIXWARE_2_1
-
-/* VXWorks specific configuration parameters */
-#undef VXWORKS
-
-/* Win32 specific configuration parameters */
-#undef ACE_WIN32
-
-/* ACE internals */
-#undef ACE_DEFAULT_BASE_ADDR
-#undef ACE_DEFAULT_BASE_ADDRL
-#undef ACE_DEFAULT_CLOSE_ALL_HANDLES
-#undef ACE_DEFAULT_MAX_SOCKET_BUFSIZ
-#undef ACE_DEFAULT_SELECT_REACTOR_SIZE
-#undef ACE_MALLOC_ALIGN
-#undef ACE_MAP_PRIVATE
-#undef ACE_THR_PRI_FIFO_DEF
-#undef ACE_TIMER_SKEW
-#undef ACE_UINT64_FORMAT_SPECIFIER
-#undef ACE_USE_RCSID
-#undef IP_ADD_MEMBERSHIP
-#undef IP_DROP_MEMBERSHIP
-
-
-/* Specify sizes of given built-in types. If a size isn't defined here,
- then ace/Basic_Types.h will attempt to deduce the size. */
-/* #undef ACE_SIZEOF_CHAR */
-#undef ACE_SIZEOF_SHORT
-#undef ACE_SIZEOF_INT
-#undef ACE_SIZEOF_LONG
-#undef ACE_SIZEOF_LONG_LONG
-#undef ACE_SIZEOF_VOID_P
-#undef ACE_SIZEOF_FLOAT
-#undef ACE_SIZEOF_DOUBLE
-#undef ACE_SIZEOF_LONG_DOUBLE
-
-
-/* typedef for ACE_UINT64 */
-/*
- We only make the typedef if ACE_UINT64_TYPEDEF is defined. Otherwise,
- let ace/Basic_Types.h do the work for us.
-*/
-#undef ACE_UINT64_TYPEDEF
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-/* typedef for ACE_LOFF_T */
-#undef ACE_LOFF_T_TYPEDEF
-
-/* Enable ACE inlining */
-#undef __ACE_INLINE__
-
-/* Explicitly disable ACE inlining */
-#undef ACE_NO_INLINE
-
-/* Enable ACE_Timeprobes */
-#undef ACE_COMPILE_TIMEPROBES
-
-/* Enable use of GNU template repositories. GNU C++ w/repo patch
- and EGCS only */
-#undef ACE_HAS_GNU_REPO
-
-/* Define this if you don't want debug version ACE search for debug version
- DLLs first before looking for the DLL names specified. */
-#undef ACE_DISABLE_DEBUG_DLL_CHECK
-
-/* Platform supports Asynchronous IO calls */
-#undef ACE_HAS_AIO_CALLS
-
-/* Use ACE's alternate cuserid() implementation since a system
- cuserid() may not exist, or it is not desirable to use it. The
- implementation requires ACE_LACKS_PWD_FUNCTIONS to be undefined and
- that the geteuid() system call exists. */
-#undef ACE_HAS_ALT_CUSERID
-
-/* Platform supports new C++ style casts (dynamic_cast, static_cast,
- reinterpret_cast and const_cast) */
-#undef ACE_HAS_ANSI_CASTS
-
-/* Number of TSS keys, with ACE_HAS_TSS_EMULATION _only_. Defaults to 64. */
-#undef ACE_DEFAULT_THREAD_KEYS
-
-/* Specify this if you don't want threads to inherit parent thread's
- ACE_Log_Msg properties. */
-#undef ACE_THREADS_DONT_INHERIT_LOG_MSG
-
-/* Compiler enforces C++ One Definition Rule */
-#undef ACE_HAS_ONE_DEFINITION_RULE
-
-/* OS has priocntl (2) */
-#undef ACE_HAS_PRIOCNTL
-
-/* Platform has the MIT pthreads APIs for timed send/recv operations */
-#undef ACE_HAS_RECV_TIMEDWAIT
-#undef ACE_HAS_RECVFROM_TIMEDWAIT
-#undef ACE_HAS_RECVMSG_TIMEDWAIT
-#undef ACE_HAS_SEND_TIMEDWAIT
-#undef ACE_HAS_SENDTO_TIMEDWAIT
-#undef ACE_HAS_SENDMSG_TIMEDWAIT
-#undef ACE_HAS_READ_TIMEDWAIT
-#undef ACE_HAS_READV_TIMEDWAIT
-#undef ACE_HAS_WRITE_TIMEDWAIT
-#undef ACE_HAS_WRITEV_TIMEDWAIT
-
-/* Platform has enum instead of int for first argument to ::{get,set}rlimit ().
- The value of this macro is the enum definition, e.g.,
- enum __rlimit_resource, for Linux glibc 2.0. */
-#undef ACE_HAS_RLIMIT_RESOURCE_ENUM
-
-/* Platform has enum instead of int for first argument to ::getrusage (). The
- value of this macro is the enum definition, e.g., enum __rusage_who, for
- Linux glibc 2.0. */
-#undef ACE_HAS_RUSAGE_WHO_ENUM
-
-/* Platform has void (*)(...) prototype for pthread_key_create()
- destructor (e.g., LynxOS). */
-#undef ACE_HAS_STDARG_THR_DEST
-
-/* Used when users want to compile ACE with STL and STL map class
- conflicts with <net/if.h> map struct. */
-#undef ACE_HAS_STL_MAP_CONFLICT
-
-/* Used when users want to compile ACE with STL and STL queue class
- conflicts with <netinet/in.h> queue struct. */
-#undef ACE_HAS_STL_QUEUE_CONFLICT
-
-/* Platform/compiler supports Win32 structural exceptions */
-#undef ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS
-
-/* Platform has BSD 4.4 sendmsg()/recvmsg() APIs. */
-#undef ACE_HAS_4_4BSD_SENDMSG_RECVMSG
-
-/* Platform has pread() and pwrite() support */
-#undef ACE_HAS_P_READ_WRITE
-
-/* Platform, such as AIX4, needs to wrap #include of sys/socket.h with
- #undef/#define of __cplusplus. */
-#undef ACE_HAS_AIX_BROKEN_SOCKET_HEADER
-
-/* Platform has AIX4 ::read_real_time () */
-#undef ACE_HAS_AIX_HI_RES_TIMER
-
-/* Compiler/platform supports alloca() */
-#undef ACE_HAS_ALLOCA
-
-/* Compiler/platform has <alloca.h> */
-#undef ACE_HAS_ALLOCA_H
-
-/* CPU is an Alpha, with the rpcc instruction to read the tick timer. */
-#undef ACE_HAS_ALPHA_TIMER
-
-/* Compiler/platform correctly calls init()/fini() for shared libraries */
-#undef ACE_HAS_AUTOMATIC_INIT_FINI
-
-/* Compiler handles explicit calling of template destructor correctly.
- See "ace/OS.h" for details. */
-#undef ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR
-
-/* Platform doesn't cast MAP_FAILED to a (void *). */
-#undef ACE_HAS_BROKEN_MAP_FAILED
-
-/* Compiler/platform doesn't support namespaces (or the support is not
- fully implemented.) */
-#undef ACE_HAS_BROKEN_NAMESPACES
-
-/* Compiler has integer overflow problem with bit-shift operations. */
-#undef ACE_HAS_BROKEN_BITSHIFT
-
-/* Compiler can't handle const char * as rvalue in conditional operator. */
-#undef ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS
-
-/* Compiler can't handle calls like foo->operator T *() */
-#undef ACE_HAS_BROKEN_CONVERSIONS
-
-/* Compiler/platform uses macro for ctime (e.g., MVS) */
-#undef ACE_HAS_BROKEN_CTIME
-
-/* Platform sendv() does not work properly with datagrams, i.e. it
- fails when the iovec size is IOV_MAX. */
-#undef ACE_HAS_BROKEN_DGRAM_SENDV
-
-/* Earlier versions of HP/UX C++ are damned... */
-#undef ACE_HAS_BROKEN_HPUX_TEMPLATES
-
-/* Platform headers don't support <msg.h> prototypes */
-#undef ACE_HAS_BROKEN_MSG_H
-
-/* HP/UX does not wrap the mmap(2) header files with extern "C". */
-#undef ACE_HAS_BROKEN_MMAP_H
-
-/* MSVC has trouble with defining STL containers for nested structs and
- classes */
-#undef ACE_HAS_BROKEN_NESTED_TEMPLATES
-
-/* Platform has a bug with non-blocking connects (e.g., WinNT 4.0) */
-#undef ACE_HAS_BROKEN_NON_BLOCKING_CONNECTS
-
-/* Platform defines struct timespec in <sys/timers.h> */
-#undef ACE_HAS_BROKEN_POSIX_TIME
-
-/* Platform defines ctime_r, asctime_r, rand_r and getpwnam_r as macros */
-#undef ACE_HAS_BROKEN_R_ROUTINES
-
-/* OS/compiler's header files are inconsistent with libC definition of
- rand_r(). */
-#undef ACE_HAS_BROKEN_RANDR
-
-/* OS/Compiler's header files are not consistent with readv() definition. */
-#undef ACE_HAS_BROKEN_READV
-
-/* Compiler can't handle the static ACE_Addr::sap_any construct. */
-#undef ACE_HAS_BROKEN_SAP_ANY
-
-/* OS/compiler omits the const from the sendmsg() prototype. */
-#undef ACE_HAS_BROKEN_SENDMSG
-
-/* OS/compiler omits the const from the rlimit parameter in the
- setrlimit() prototype. */
-#undef ACE_HAS_BROKEN_SETRLIMIT
-
-/* Compiler/platform has the wrong prototype for t_error(), i.e.,
- t_error(char *) rather than t_error(const char *). */
-#undef ACE_HAS_BROKEN_T_ERROR
-
-/* platform define struct timespec members as ts_sec and ts_nsec
- instead of tv_sec and tv_nsec. This is highly non-portable.
- Currently only FreeBSD 2.1.x uses it. */
-#undef ACE_HAS_BROKEN_TIMESPEC_MEMBERS
-
-/* OS/compiler omits the const from the iovec parameter in the
- writev() prototype. */
-#undef ACE_HAS_BROKEN_WRITEV
-
-/* OS header files have some problems with XTI (HP/UX 11). */
-#undef ACE_HAS_BROKEN_XTI_MACROS
-
-/* Platform has <bstring.h> (which contains bzero() prototype) */
-#undef ACE_HAS_BSTRING
-
-/* Platform has <bytesex.h>. */
-#undef ACE_HAS_BYTESEX_H
-
-/* Platform supports the Win32 CancelIO() function (WinNT 4.0 and beyond). */
-#undef ACE_HAS_CANCEL_IO
-
-/* OS/platform uses char * for dlopen/dlsym args, rather than const char *. */
-#undef ACE_HAS_CHARPTR_DL
-
-/* OS/platform uses char * for sockopt, rather than const char * */
-#undef ACE_HAS_CHARPTR_SOCKOPT
-
-/* sprintf() returns char * rather than int (e.g., SunOS 4.x) */
-#undef ACE_HAS_CHARPTR_SPRINTF
-
-/* Platform supports POSIX 1.b clock_gettime () */
-#undef ACE_HAS_CLOCK_GETTIME
-
-/* Prototypes for both signal() and struct sigaction are consistent. */
-#undef ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-/* Compiler/platform has correctly prototyped header files */
-#undef ACE_HAS_CPLUSPLUS_HEADERS
-
-/* Platform has cygwin32 socket.h */
-#undef ACE_HAS_CYGWIN32_SOCKET_H
-
-/* Platform supports operations on directories via struct dirent,
- readdir_r, etc. */
-#undef ACE_HAS_DIRENT
-
-/* For platforms, e.g., RedHat 4.2/Linux 2.0.30/Alpha, that don't
- declare dl* functions as extern "C" in dlfcn.h.*/
-#undef ACE_HAS_DLFCN_H_BROKEN_EXTERN_C
-
-/* Build ACE using the frigging PC DLL nonsense... */
-#undef ACE_HAS_DLL
-
-/* Compiler supports C++ exception handling */
-#undef ACE_HAS_EXCEPTIONS
-
-/* Platform has Fast-Light (FL) toolkit installed */
-#undef ACE_HAS_FL
-
-/* Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must
- be defined, except on Win32) */
-#undef ACE_HAS_GETPAGESIZE
-
-/* Platform supports the getrusage() system call. */
-#undef ACE_HAS_GETRUSAGE
-
-/* Platform has a getrusage () prototype in sys/resource.h that
- differs from the one in ace/OS.i. */
-#undef ACE_HAS_GETRUSAGE_PROTO
-
-/* GNUC 2.7.3 mistakenly takes the template definition as the place
- where an inline function of an argument class is first used. */
-#undef ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS
-
-/* Denotes that GNU has cstring.h as standard which redefines memchr() */
-#undef ACE_HAS_GNU_CSTRING_H
-
-/* The GPERF utility is compiled for this platform */
-#undef ACE_HAS_GPERF
-
-/* Optimize ACE_Handle_Set::count_bits for select() operations (common case) */
-#undef ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
-
-/* Platform supports lseek64(). This should not be defined if
- ACE_HAS_LLSEEK is defined. */
-#undef ACE_HAS_LSEEK64
-
-/* Platform supports llseek(). This should not be defined if
- ACE_HAS_LSEEK64 is defined.*/
-#undef ACE_HAS_LLSEEK
-
-/* Compiler/platform supports SunOS high resolution timers */
-#undef ACE_HAS_HI_RES_TIMER
-
-/* Compiler/platform supports idtype_t. */
-#undef ACE_HAS_IDTYPE_T
-
-/* Inline all the static class OS methods to remove call overhead */
-/* Note: This gets defined by OS.h if __ACE_INLINE__ is defined */
-#undef ACE_HAS_INLINED_OSCALLS
-
-/* Platform supports IP multicast */
-#undef ACE_HAS_IP_MULTICAST
-
-/* Platform supports IPv6 */
-#undef ACE_HAS_IP6
-
-/* Platform supports the very odd IRIX 6.2 threads... */
-#undef ACE_HAS_IRIX62_THREADS
-
-/* Causes the ACE_Object_Manager instance to be created in
- main (int, char *[]), instead of as a static (global) instance. */
-#undef ACE_HAS_NONSTATIC_OBJECT_MANAGER
-
-/* Platform supports thr_keydelete (e.g,. UNIXWARE) */
-#undef ACE_HAS_THR_KEYDELETE
-
-/* Platform calls thr_minstack() rather than thr_min_stack() (e.g., Tandem). */
-#undef ACE_HAS_THR_MINSTACK
-
-/* The rusage_t structure has only two fields. */
-#undef ACE_HAS_LIMITED_RUSAGE_T
-
-/* Compiler/platform has "big" fd_set, i.e. large number of bits set
- in fd_set passed back from select(). */
-#undef ACE_HAS_BIG_FD_SET
-
-/* Platform defines MAP_FAILED as a long constant. */
-#undef ACE_HAS_LONG_MAP_FAILED
-
-/* Enabled malloc statistics collection. */
-#undef ACE_HAS_MALLOC_STATS
-
-/* Use native implementation of memchr(). */
-#undef ACE_HAS_MEMCHR
-
-/* Avoid #including ace/streams.h in OS.h. Users must include
- ace/streams.h, <iostream>, or <iostream.h> explicitly in their code.
- Some platforms, such as g++/VxWorks, have trouble compiling templates
- and iostreams header because of static variables in the stream
- headers. This flag will also avoid extra compilation and runtime
- overheads on some platforms. */
-#undef ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION
-
-/* Some files, such as ace/streams.h, want to include new style C++
- stream headers. These headers are iomanip, ios, iostream, istream,
- ostream, fstream and streambuf. If _all_ of these headers aren't
- available, then assume that only iostream.h and fstream.h are
- available. */
-#undef ACE_USES_OLD_IOSTREAMS
-
-/* Platform supports Microsoft Foundation Classes */
-#undef ACE_HAS_MFC
-
-/* Platform supports recvmsg and sendmsg */
-#undef ACE_HAS_MSG
-
-/* Platform supports MT safe mktime() call (do any of them?) */
-#undef ACE_HAS_MT_SAFE_MKTIME
-
-/* Sockets may be called in multi-threaded programs */
-#undef ACE_HAS_MT_SAFE_SOCKETS
-
-/* Platform uses non-const char * in calls to gethostbyaddr,
- gethostbyname, getservbyname */
-#undef ACE_HAS_NONCONST_GETBY
-
-/* Platform has a non-const parameter to msgsnd() (e.g., SCO). */
-#undef ACE_HAS_NONCONST_MSGSND
-
-/* Platform's select() uses non-const timeval* (only found on Linux
- right now) */
-#undef ACE_HAS_NONCONST_SELECT_TIMEVAL
-
-/* Platform has "old" GNU compiler, i.e. does not completely support
- standard C++. (compiling with g++ prior to version 2.8.0) */
-#undef ACE_HAS_GNUG_PRE_2_8
-
-/* Compiler/platform uses old malloc()/free() prototypes (ugh) */
-#undef ACE_HAS_OLD_MALLOC
-
-/* Uses ctime_r & asctime_r with only two parameters vs. three. */
-#undef ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
-
-/* Platform, e.g., Solaris 2.5, only supports SCHED_OTHER POSIX
- scheduling policy. */
-#undef ACE_HAS_ONLY_SCHED_OTHER
-
-/* Use the semaphore implementation of ACE_Message_Queue rather than
- the emulated condition variable (NT and VxWorks). */
-#undef ACE_HAS_OPTIMIZED_MESSAGE_QUEUE
-
-/* Platform has Orbix CORBA implementation */
-#undef ACE_HAS_ORBIX
-
-/* Platform supports the OSF TLI timod STREAMS module */
-#undef ACE_HAS_OSF_TIMOD_H
-
-/* Platform is an Intel Pentium microprocessor. */
-#undef ACE_HAS_PENTIUM
-
-/* Platform contains <poll.h> */
-#undef ACE_HAS_POLL
-
-/* Platform supports "position-independent" features provided by
- ACE_Based_Pointer<>. */
-#undef ACE_HAS_POSITION_INDEPENDENT_POINTERS
-
-/* Platform supports POSIX O_NONBLOCK semantics */
-#undef ACE_HAS_POSIX_NONBLOCK
-
-/* Platform supports POSIX real-time semaphores (e.g., VxWorks and
- Solaris) */
-#undef ACE_HAS_POSIX_SEM
-
-/* Platform supports the POSIX struct timespec type */
-#undef ACE_HAS_POSIX_TIME
-
-/* Platform supports the /proc file system and defines tid_t
- in <sys/procfs.h> */
-#undef ACE_HAS_PROC_FS
-
-/* Platform supports PowerPC time-base register. */
-#undef ACE_HAS_POWERPC_TIMER
-
-/* Platform supports the prusage_t struct */
-#undef ACE_HAS_PRUSAGE_T
-
-/* Platform supports POSIX Threads */
-#undef ACE_HAS_PTHREADS
-
-/* Platform supports POSIX Threads .4a Draft 4 */
-#undef ACE_HAS_PTHREADS_DRAFT4
-
-/* Platform supports POSIX Threads .4a Draft 6 */
-#undef ACE_HAS_PTHREADS_DRAFT6
-
-/* Platform supports POSIX Threads .1c Draft 7 */
-#undef ACE_HAS_PTHREADS_DRAFT7
-
-/* Platform supports POSIX.1c-1995 threads */
-#undef ACE_HAS_PTHREADS_STD
-
-/* Platform has the UNIX98 extensions to Pthreads (suspend, continue,
- rwlocks) */
-#undef ACE_HAS_PTHREADS_UNIX98_EXT
-
-/* Platform has pthread_condattr_setkind_np(). */
-#undef ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP
-
-/* Platform has pthread_mutexattr_setkind_np(). */
-#undef ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
-
-/* pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
- PTHREAD_PROCESS_SHARED values */
-#undef ACE_HAS_PTHREAD_PROCESS_ENUM
-
-/* Purify'ing. Defined on command line. */
-#undef ACE_HAS_PURIFY
-
-/* Quantify'ing. Defined on command line. */
-#undef ACE_HAS_QUANTIFY
-
-/* Mutexes are inherently recursive (e.g., Win32) */
-#undef ACE_HAS_RECURSIVE_MUTEXES
-
-/* Platform will recurse infinitely on thread exits from TSS cleanup
- routines (e.g., AIX) */
-#undef ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
-
-/* Platform supports reentrant functions (i.e., all the POSIX *_r
- functions). */
-#undef ACE_HAS_REENTRANT_FUNCTIONS
-
-/* Solaris for intel uses macros for fstat() and stat(), these are
- wrappers for _fxstat() and _xstat() uses of the macros. Causes
- compile and runtime problems. */
-#undef ACE_HAS_X86_STAT_MACROS
-
-/* Platform has support for multi-byte character support compliant
- with the XPG4 Worldwide Portability Interface wide-character
- classification. */
-#undef ACE_HAS_XPG4_MULTIBYTE_CHAR
-
-/* No system support for replacing any previous mappings. */
-#undef ACE_LACKS_AUTO_MMAP_REPLACEMENT
-
-/* Platform lacks support for the standard C++ auto_ptr class */
-#undef ACE_LACKS_AUTO_PTR
-
-/* Compiler/platform standard C++ auto_ptr implementation lacks
- reset() method */
-#undef ACE_AUTO_PTR_LACKS_RESET
-
-/* Compiler/platform lacks the standard C library bsearch() function */
-#undef ACE_LACKS_BSEARCH
-
-/* Platform has ACE_HAS_4_4BSD_SENDMSG_RECVMSG but does not define
- CMSG_DATA (cmsg) macro. */
-#undef ACE_LACKS_CMSG_DATA_MACRO
-
-/* Platform has ACE_HAS_4_4BSD_SENDMSG_RECVMSG but its cmsghdr
- structure does not contain an 'unsigned char cmsg_data[0]' member.
- (This may be 'unsigned char __cmsg_data[0]' on some platforms, in
- which case we need another macro.) */
-#undef ACE_LACKS_CMSG_DATA_MEMBER
-
-/* Compiler/platform lacks the standard C library qsort() function */
-#undef ACE_LACKS_QSORT
-
-/* Platform lacks POSIX-style fcntl () */
-#undef ACE_LACKS_FCNTL
-
-/* Platform lacks fsync() */
-#undef ACE_LACKS_FSYNC
-
-/* Compiler does not support dynamic_cast. Usually used with
- ACE_HAS_ANSI_CASTS */
-#undef ACE_LACKS_RTTI
-
-/* Platform lacks readdir_r() */
-#undef ACE_LACKS_READDIR_R
-
-/* Platform lacks seekdir() */
-#undef ACE_LACKS_SEEKDIR
-
-/* Platform lacks telldir() */
-#undef ACE_LACKS_TELLDIR
-
-/* Platform can't handle "inline" keyword correctly. */
-#undef ACE_LACKS_INLINE_FUNCTIONS
-
-/* Iostreams are not supported adequately on the given platform. */
-#undef ACE_LACKS_IOSTREAM_TOTALLY
-
-/* Platform does not support reentrant netdb functions
- (getprotobyname_r, getprotobynumber_r, gethostbyaddr_r,
- gethostbyname_r, getservbyname_r). */
-#undef ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
-
-/* Platform supports the POSIX regular expression library */
-#undef ACE_HAS_REGEX
-
-/* Platform has special header for select(). */
-#undef ACE_HAS_SELECT_H
-
-/* For Win32: Use Select_Reactor as default implementation of Reactor
- instead of WFMO_Reactor. */
-#undef ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL
-
-/* Compiler/platform defines a union semun for SysV shared memory */
-#undef ACE_HAS_SEMUN
-
-/* Platform has a function to set t_errno (e.g., Tandem). */
-#undef ACE_HAS_SET_T_ERRNO
-
-/* Platform has shm_open() */
-#undef ACE_HAS_SHM_OPEN
-
-/* Platform supports SVR4 extended signals */
-#undef ACE_HAS_SIGINFO_T
-
-/* Platform has bug with sigismember() (HP/UX 11). */
-#undef ACE_HAS_SIGISMEMBER_BUG
-
-/* Platform/compiler has macros for sig{empty,fill,add,del}set (e.g.,
- SCO and FreeBSD) */
-#undef ACE_HAS_SIG_MACROS
-
-/* Platform supports the Win32 SignalObjectAndWait() function (WinNT
- 4.0 and beyond). */
-#undef ACE_HAS_SIGNAL_OBJECT_AND_WAIT
-
-/* Automatically restart OS system calls when EINTR occurs */
-#undef ACE_HAS_SIGNAL_SAFE_OS_CALLS
-
-/* Platform has the sigsuspend() system call */
-#undef ACE_HAS_SIGSUSPEND
-
-/* Platform has the sigtimedwait() system call */
-#undef ACE_HAS_SIGTIMEDWAIT
-
-/* Platform/compiler has the sigwait(2) prototype */
-#undef ACE_HAS_SIGWAIT
-
-/* Compiler/platform defines the sig_atomic_t typedef */
-#undef ACE_HAS_SIG_ATOMIC_T
-
-/* Compiler requires extern "C" functions for signals. */
-#undef ACE_HAS_SIG_C_FUNC
-
-/* Platform supports new BSD inet_addr len field. */
-#undef ACE_HAS_SIN_LEN
-
-/* OS/compiler uses size_t * rather than int * for socket lengths */
-#undef ACE_HAS_SIZET_SOCKET_LEN
-
-/* Platform requires (struct sockaddr *) for msg_name field of
- struct msghdr. */
-#undef ACE_HAS_SOCKADDR_MSG_NAME
-
-/* Compiler/platform provides the sys/sockio.h file */
-#undef ACE_HAS_SOCKIO_H
-
-/* Platform provides socklen_t type, such as Linux with glibc2. */
-#undef ACE_HAS_SOCKLEN_T
-
-/* Compiler has brain-damaged SPARCwork SunOS 4.x signal prototype... */
-#undef ACE_HAS_SPARCWORKS_401_SIGNALS
-
-/* Compiler supports the ssize_t typedef */
-#undef ACE_HAS_SSIZE_T
-
-/* Platform supports UNIX International Threads */
-#undef ACE_HAS_STHREADS
-
-/* Platform has thr_yield() */
-#undef ACE_HAS_THR_YIELD
-
-/* Platform/compiler supports Standard C++ Library */
-#undef ACE_HAS_STANDARD_CPP_LIBRARY
-
-/* Compiler/platform supports struct strbuf */
-#undef ACE_HAS_STRBUF_T
-
-/* Platform/compiler lacks strdup() (e.g., VxWorks, Chorus, WinCE) */
-#undef ACE_HAS_STRDUP_EMULATION
-
-/* Compile ACE_OS::strptime() wrapper into ACE. */
-#undef ACE_HAS_STRPTIME
-
-/* Platform supports STREAMS */
-#undef ACE_HAS_STREAMS
-
-/* Platform supports STREAM pipes */
-#undef ACE_HAS_STREAM_PIPES
-
-/* Compiler/platform supports strerror () */
-#undef ACE_HAS_STRERROR
-
-/* Use the STRICT compilation mode on Win32. */
-#undef ACE_HAS_STRICT
-
-/* Platform/Compiler supports a String class (e.g., GNU or Win32). */
-#undef ACE_HAS_STRING_CLASS
-
-/* Platform has <strings.h> (which contains bzero() prototype) */
-#undef ACE_HAS_STRINGS
-
-/* Compiler/platform has strange hostent API for socket *_r() calls */
-#undef ACE_HAS_STRUCT_NETDB_DATA
-
-/* Platform has void * as second parameter to gettimeofday and a has a
- prototype */
-#undef ACE_HAS_SUNOS4_GETTIMEOFDAY
-
-/* Compiler has horrible SunOS 4.x signal handlers... */
-#undef ACE_HAS_SUNOS4_SIGNAL_T
-
-/* Compiler/platform supports SVR4 dynamic linking semantics */
-#undef ACE_HAS_SVR4_DYNAMIC_LINKING
-
-/* Compiler/platform supports SVR4 gettimeofday() prototype but
- doesn't have a prototype */
-#undef ACE_HAS_SVR4_GETTIMEOFDAY
-
-/* Compiler/platform supports SVR4 signal typedef. */
-#undef ACE_HAS_SVR4_SIGNAL_T
-
-/* Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff). */
-#undef ACE_HAS_SVR4_TLI
-
-/* HP/UX has an undefined syscall for GETRUSAGE. */
-#undef ACE_HAS_SYSCALL_GETRUSAGE
-
-/* Compiler/platform contains the <sys/syscall.h> file. */
-#undef ACE_HAS_SYSCALL_H
-
-/* Platform provides <sysent.h> header */
-#undef ACE_HAS_SYSENT_H
-
-/* Platform supports system configuration information */
-#undef ACE_HAS_SYSINFO
-
-/* Platform supports System V IPC (most versions of UNIX, but not Win32) */
-#undef ACE_HAS_SYSV_IPC
-
-/* Platform/compiler supports _sys_errlist symbol */
-#undef ACE_HAS_SYS_ERRLIST
-
-/* Platform provides <sys/filio.h> header */
-#undef ACE_HAS_SYS_FILIO_H
-
-/* Compiler/platform supports _sys_siglist array */
-#undef ACE_HAS_SYS_SIGLIST
-
-/* Platform provides <sys/xti.h> header */
-#undef ACE_HAS_SYS_XTI_H
-
-/* Compiler implements template specialization */
-#undef ACE_HAS_TEMPLATE_SPECIALIZATION
-
-/* Compiler supports standard C++ template specializations
- (e.g. "template <>" syntax.) */
-#undef ACE_HAS_STD_TEMPLATE_SPECIALIZATION
-
-/* Compiler supports standard C++ template method specializations
- (e.g. "template <>" syntax.) */
-#undef ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION
-
-/* Compiler implements templates that support typedefs inside of
- classes used as formal arguments to a template class. */
-#undef ACE_HAS_TEMPLATE_TYPEDEFS
-
-/* Platform has terminal ioctl flags like TCGETS and TCSETS. */
-#undef ACE_HAS_TERM_IOCTLS
-
-/* Platform supports threads */
-#undef ACE_HAS_THREADS
-
-/* Platform allows multiple threads to call accept() on the same port
- (e.g., WinNT). */
-#undef ACE_HAS_THREAD_SAFE_ACCEPT
-
-/* Platform has thread_self() rather than pthread_self() (e.g.,
- DCETHREADS and AIX) */
-#undef ACE_HAS_THREAD_SELF
-
-/* Compiler/platform has thread-specific storage */
-#undef ACE_HAS_THREAD_SPECIFIC_STORAGE
-
-/* The pthread_keycreate() routine *must* take extern C functions. */
-#undef ACE_HAS_THR_C_DEST
-
-/* The pthread_create() routine *must* take extern C functions. */
-#undef ACE_HAS_THR_C_FUNC
-
-/* Platform/compiler supports timezone * as second parameter to
- gettimeofday() and has a prototype*/
-#undef ACE_HAS_TIMEZONE_GETTIMEOFDAY
-
-/* Platform supports TLI timod STREAMS module */
-#undef ACE_HAS_TIMOD_H
-
-/* Platform supports TLI tiuser header */
-#undef ACE_HAS_TIUSER_H
-
-/* Platform does not protect <tiuser.h> with extern "C" */
-#undef ACE_HAS_TIUSER_H_BROKEN_EXTERN_C
-
-/* Platform supports TLI. Also see ACE_TLI_TCP_DEVICE. */
-#undef ACE_HAS_TLI
-
-/* Platform provides TLI function prototypes */
-#undef ACE_HAS_TLI_PROTOTYPES
-
-/* ACE provides TSS emulation. See also ACE_DEFAULT_THREAD_KEYS. */
-#undef ACE_HAS_TSS_EMULATION
-
-/* Platform supports ualarm() */
-#undef ACE_HAS_UALARM
-
-/* Platform supports ucontext_t (which is used in the extended signal API). */
-#undef ACE_HAS_UCONTEXT_T
-
-/* The wait() system call takes a (union wait *) rather than int * */
-#undef ACE_HAS_UNION_WAIT
-
-/* Has inconsistent SVR4 signal stuff, but not the same as the other
- platforms */
-#undef ACE_HAS_UNIXWARE_SVR4_SIGNAL_T
-
-/* Platform/compiler supports wchar_t */
-#undef ACE_HAS_WCHAR
-
-/* Platform has <utime.h> header file */
-#undef ACE_HAS_UTIME
-
-/* Compiler supports explicit constructors. */
-#undef ACE_HAS_EXPLICIT_KEYWORD
-
-/* Compiler supports the C++ `mutable' keyword. */
-#undef ACE_HAS_MUTABLE_KEYWORD
-
-/* Compiler supports the C++ typename keyword */
-#undef ACE_HAS_TYPENAME_KEYWORD
-
-/* Compiler supports the new using keyword for C++ namespaces. */
-#undef ACE_HAS_USING_KEYWORD
-
-/* Prints out console message in ACE_NOTSUP. Useful for tracking down
- origin of ACE_NOTSUP. */
-#undef ACE_HAS_VERBOSE_NOTSUP
-
-/* Platform requires void * for mmap(). */
-#undef ACE_HAS_VOIDPTR_MMAP
-
-/* OS/compiler uses void * arg 4 setsockopt() rather than const char * */
-#undef ACE_HAS_VOIDPTR_SOCKOPT
-
-/* The Win32 platform support TryEnterCriticalSection() (WinNT 4.0 and
- beyond) */
-#undef ACE_HAS_WIN32_TRYLOCK
-
-/* The Win32 platform supports WinSock 2.0 */
-#undef ACE_HAS_WINSOCK2
-
-/* Platform has the XLI version of TLI */
-#undef ACE_HAS_XLI
-
-/* Platform has Xt Intrinsics Toolkit */
-#undef ACE_HAS_XT
-
-/* Platform does not have Motif X toolkit available */
-#undef ACE_LACKS_MOTIF
-
-/* Platform has XTI (X/Open-standardized superset of TLI). Implies
- ACE_HAS_TLI but uses a different header file. */
-#undef ACE_HAS_XTI
-
-/* Platform lacks access() (e.g., VxWorks and Chorus) */
-#undef ACE_LACKS_ACCESS
-
-/* Platform can not build ace/IOStream{,_T}.cpp. This does not
- necessarily mean that the platform does not support iostreams. */
-#undef ACE_LACKS_ACE_IOSTREAM
-
-/* Do not compile support for the "other" ACE features, such as CORBA
- handling, name services, and QOS. */
-#undef ACE_LACKS_ACE_OTHER
-
-/* Do not compile support for the ACE Service Configurator. */
-#undef ACE_LACKS_ACE_SVCCONF
-
-/* Do not compile support for the ACE Token feature. */
-#undef ACE_LACKS_ACE_TOKEN
-
-/* Platform lacks condition variables (e.g., Win32 and VxWorks) */
-#undef ACE_LACKS_COND_T
-
-/* pthread_cond_timedwait does *not* reset the time argument when
- the lock is acquired. */
-#undef ACE_LACKS_COND_TIMEDWAIT_RESET
-
-/* Platform has no implementation of pthread_condattr_setpshared(), even
- though it supports pthreads! */
-#undef ACE_LACKS_CONDATTR_PSHARED
-
-/* Platform uses struct strbuf * rather than const struct strbuf *
- (e.g., HP/UX 10.x) */
-#undef ACE_LACKS_CONST_STRBUF_PTR
-
-/* Platform forgot const in cond_timewait (e.g., HP/UX). */
-#undef ACE_LACKS_CONST_TIMESPEC_PTR
-
-/* Platform lacks difftime() implementation */
-#undef ACE_LACKS_DIFFTIME
-
-/* Platform lacks the exec() family of system calls (e.g., Win32,
- VxWorks, Chorus) */
-#undef ACE_LACKS_EXEC
-
-/* Platform lacks file locking mechanism */
-#undef ACE_LACKS_FILELOCKS
-
-/* Platform does not support floating point operations */
-#undef ACE_LACKS_FLOATING_POINT
-
-/* Platform lacks the fork() system call (e.g., Win32, VxWorks, Chorus) */
-#undef ACE_LACKS_FORK
-
-/* Platform lacks the getopt() prototype (e.g., LynxOS) */
-#undef ACE_LACKS_GETOPT_PROTO
-
-/* Platform lacks getpgid() call (e.g., Win32, Chorus, and FreeBSD). */
-#undef ACE_LACKS_GETPGID
-
-/* Platform lacks getppid() call. */
-#undef ACE_LACKS_GETPPID
-
-/* Platform lacks setregid() call. */
-#undef ACE_LACKS_SETREGID
-
-/* Platform lacks setreuid() call. */
-#undef ACE_LACKS_SETREUID
-
-/* Platforms lacks getservbyname() (e.g., VxWorks and Chorus). */
-#undef ACE_LACKS_GETSERVBYNAME
-
-/* iostream header does not declare ipfx (), opfx (), etc. */
-#undef ACE_LACKS_IOSTREAM_FX
-
-/* Platform lacks streambuf "linebuffered ()". */
-#undef ACE_LACKS_LINEBUFFERED_STREAMBUF
-
-/* Compiler/platform does not support the unsigned long long datatype. */
-#undef ACE_LACKS_LONGLONG_T
-
-/* Platform lacks the lstat() function. */
-#undef ACE_LACKS_LSTAT
-
-/* Platform does not have u_longlong_t typedef */
-#undef ACE_LACKS_U_LONGLONG_T
-
-/* Platform lacks madvise() (e.g., Linux) */
-#undef ACE_LACKS_MADVISE
-
-/* Platform lacks malloc.h */
-#undef ACE_LACKS_MALLOC_H
-
-/* Platform lacks memory.h (e.g., VxWorks and Chorus) */
-#undef ACE_LACKS_MEMORY_H
-
-/* Platform lacks mkfifo(), e.g. VxWorks, Chorus, pSoS, and WinNT. */
-#undef ACE_LACKS_MKFIFO
-
-/* ACE has no mktemp() */
-#undef ACE_LACKS_MKTEMP
-
-/* The platform doesn't have mmap(2) (e.g., SCO UNIX). */
-#undef ACE_LACKS_MMAP
-
-/* Platform/compiler doesn't have open() mode masks. */
-#undef ACE_LACKS_MODE_MASKS
-
-/* The platform doesn't have mprotect(2) (e.g., EPLX real time OS from CDC
- (based on LYNX)) */
-#undef ACE_LACKS_MPROTECT
-
-/* Platform defines ACE_HAS_MSG, but lacks msg_accrights{,len}. */
-#undef ACE_LACKS_MSG_ACCRIGHTS
-
-/* Platform lacks struct msgbuf (e.g., NT and MSV). */
-#undef ACE_LACKS_MSGBUF_T
-
-/* Platform lacks msync() */
-#undef ACE_LACKS_MSYNC
-
-/* Platform doesn't support "sync" third argument to msync (?) */
-#undef ACE_HAS_BROKEN_NETBSD_MSYNC
-
-/* Platform doesn't support tempnam */
-#undef ACE_LACKS_TEMPNAM
-
-/* Platform lacks pthread_mutexattr_setpshared(). */
-#undef ACE_LACKS_MUTEXATTR_PSHARED
-
-/* OS requires non-null status pointer for ::pthread_join () */
-#undef ACE_LACKS_NULL_PTHREAD_STATUS
-
-/* Platform lacks <sys/param.h> (e.g., MVS) */
-#undef ACE_LACKS_PARAM_H
-
-/* Platform lacks named POSIX semaphores (e.g., Chorus) */
-#undef ACE_LACKS_NAMED_POSIX_SEM
-
-/* Platform lacks native strptime() implementation. */
-#undef ACE_LACKS_NATIVE_STRPTIME
-
-/* Platform/compiler lacks {get,set}rlimit() function (e.g., VxWorks,
- Chorus, and SCO UNIX) */
-#undef ACE_LACKS_RLIMIT
-
-/* Platform/compiler lacks {get,set}rlimit() prototypes (e.g., Tandem) */
-#undef ACE_LACKS_RLIMIT_PROTOTYPE
-
-/* Platform lacks POSIX prototypes for certain System V functions like
- shared memory and message queues. */
-#undef ACE_LACKS_POSIX_PROTOTYPES
-
-/* Platform lacks POSIX prototypes for certain System V functions like
- shared memory and message queues. */
-#undef ACE_LACKS_SOME_POSIX_PROTOTYPES
-
-/* Compiler doesn't support placement operator new(size_t, void *). */
-#undef ACE_LACKS_PLACEMENT_OPERATOR_NEW
-
-/* Compiler doesn't support placement operator delete(void *, void *). */
-#undef ACE_LACKS_PLACEMENT_OPERATOR_DELETE
-
-/* Compiler complains about use of obsolete "#pragma once" */
-#undef ACE_LACKS_PRAGMA_ONCE
-
-/* Platform lacks pri_t (e.g., Tandem NonStop UNIX). */
-#undef ACE_LACKS_PRI_T
-
-/* Platform lack pthread_attr_setstackaddr() */
-#undef ACE_LACKS_THREAD_STACK_ADDR
-
-/* Platform lacks pthread_cancel() */
-#undef ACE_LACKS_PTHREAD_CANCEL
-
-/* Platform lacks pthread_sigmask () */
-#undef ACE_LACKS_PTHREAD_SIGMASK
-
-/* Platform lacks pthread_thr_sigsetmask (e.g., MVS, HP/UX, and OSF/1 3.2) */
-#undef ACE_LACKS_PTHREAD_THR_SIGSETMASK
-
-/* Platfrom lack pthread_yield() support. */
-#undef ACE_LACKS_PTHREAD_YIELD
-
-/* Platform lacks, getpwnam(), etc. */
-#undef ACE_LACKS_PWD_FUNCTIONS
-
-/* Platform lacks getpwnam_r() methods (e.g., SGI 6.2). */
-#undef ACE_LACKS_PWD_REENTRANT_FUNCTIONS
-
-/* Platform lacks the readlink() function. */
-#undef ACE_LACKS_READLINK
-
-/* Platform lacks the rename() function. */
-#undef ACE_LACKS_RENAME
-
-/* Platform lacks recvmsg() */
-#undef ACE_LACKS_RECVMSG
-
-/* Platform lacks readers/writer locks. */
-#undef ACE_LACKS_RWLOCK_T
-
-/* Platform lacks a working sbrk() (e.g., Win32 and VxWorks) */
-#undef ACE_LACKS_SBRK
-
-/* Platform lacks struct sembuf (e.g., Win32 and VxWorks) */
-#undef ACE_LACKS_SEMBUF_T
-
-/* Platform lacks pthread_attr_setdetachstate() (e.g., HP/UX 10.x) */
-#undef ACE_LACKS_SETDETACH
-
-/* Platform lacks pthread_attr_setsched() (e.g. MVS) */
-#undef ACE_LACKS_SETSCHED
-
-/* Platform lacks struct sigaction (e.g., Win32 and Chorus) */
-#undef ACE_LACKS_SIGACTION
-
-/* Platform lacks "signed char" type (broken!) */
-#undef ACE_LACKS_SIGNED_CHAR
-
-/* Platform lacks signal sets (e.g., Chorus and Win32) */
-#undef ACE_LACKS_SIGSET
-
-/* Platform/compiler lacks strrchr () function. */
-#undef ACE_LACKS_STRRCHR
-
-/* Platforms/compiler lacks the sys_nerr variable (e.g., VxWorks and MVS). */
-#undef ACE_LACKS_SYS_NERR
-
-/* Platform lacks sys/msg.h (e.g., Chorus and VxWorks) */
-#undef ACE_LACKS_SYSV_MSG_H
-
-/* Platform lacks SYSV message queue prototypes */
-#undef ACE_LACKS_SYSV_MSQ_PROTOS
-
-/* Platform lacks key_t (e.g., Chorus, VxWorks, Win32) */
-#undef ACE_LACKS_KEY_T
-
-/* Platform lacks sendmsg() */
-#undef ACE_LACKS_SENDMSG
-
-/* Platform lacks the si_addr field of siginfo_t (e.g., VxWorks and
- HP/UX 10.x) */
-#undef ACE_LACKS_SI_ADDR
-
-/* Platform lacks System V shared memory (e.g., Win32 and VxWorks) */
-#undef ACE_LACKS_SYSV_SHMEM
-
-/* Platform lacks the siginfo.h include file (e.g., MVS) */
-#undef ACE_LACKS_SIGINFO_H
-
-/* Platform doesn't support SO_SNDBUF/SO_RCVBUF (used in TAO) */
-#undef ACE_LACKS_SOCKET_BUFSIZ
-
-/* Platform lacks the socketpair() call (e.g., SCO UNIX) */
-#undef ACE_LACKS_SOCKETPAIR
-
-/* Compiler doesn't support static data member templates */
-#undef ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
-
-/* Compiler/platform lacks strcasecmp() (e.g., DG/UX, UNIXWARE, VXWORKS) */
-#undef ACE_LACKS_STRCASECMP
-
-/* Platform doesn't define struct strrecvfd. */
-#undef ACE_LACKS_STRRECVFD
-
-/* Platform doesn't have syscall() prototype */
-#undef ACE_LACKS_SYSCALL
-
-/* Platform lacks <sys/types.h> header file */
-#undef ACE_LACKS_SYS_TYPES_H
-
-/* Header files lack t_errno for TLI */
-#undef ACE_LACKS_T_ERRNO
-
-/* Platform doesn't have netinet/tcp.h */
-#undef ACE_LACKS_TCP_H
-
-/* OS does not support TCP_NODELAY */
-#undef ACE_LACKS_TCP_NODELAY
-
-/* Platform lacks pthread_attr_setscope() */
-#undef ACE_LACKS_THREAD_PROCESS_SCOPING
-
-/* Platform lacks pthread_attr_setstacksize() (e.g., Linux pthreads) */
-#undef ACE_LACKS_THREAD_STACK_SIZE
-
-/* MIT pthreads platform lacks the timedwait prototypes */
-#undef ACE_LACKS_TIMEDWAIT_PROTOTYPES
-
-/* Platform does not define timepec_t as a typedef for struct timespec. */
-#undef ACE_LACKS_TIMESPEC_T
-
-/* Platform doesn't have truncate() (e.g., vxworks) */
-#undef ACE_LACKS_TRUNCATE
-
-/* Platform/compiler lacks the getpgid() prototype */
-#undef ACE_LACKS_GETPGID_PROTOTYPE
-
-/* Platform/compiler lacks the setregid() prototype */
-#undef ACE_LACKS_SETREGID_PROTOTYPE
-
-/* Platform/compiler lacks the setreuid() prototype */
-#undef ACE_LACKS_SETREUID_PROTOTYPE
-
-/* Platform/compiler lacks the strptime() prototype */
-#undef ACE_LACKS_STRPTIME_PROTOTYPE
-
-/* Platform/compiler lacks the strtok_r() prototype */
-#undef ACE_LACKS_STRTOK_R_PROTOTYPE
-
-/* Platform/compiler lacks the lseek64() prototype. This should not
- be defined if ACE_LACKS_LLSEEK_PROTOTYPE is defined. */
-#undef ACE_LACKS_LSEEK64_PROTOTYPE
-
-/* Platform/compiler lacks the llseek() prototype. This should not
- be defined if ACE_LACKS_LSEEK64_PROTOTYPE is defined. */
-#undef ACE_LACKS_LLSEEK_PROTOTYPE
-
-/* Platform/compiler lacks the pread() and pwrite() prototypes */
-#undef ACE_LACKS_PREAD_PROTOTYPE
-
-/* Platform/compiler lacks the ualarm() prototype (e.g., Solaris) */
-#undef ACE_LACKS_UALARM_PROTOTYPE
-
-/* Compiler does not have any istream operator>> for chars, u_chars, or
- signed chars. */
-#undef ACE_LACKS_CHAR_RIGHT_SHIFTS
-
-/* Compiler does not have operator>> (istream &, u_char *) or
- operator>> (istream &, signed char *) */
-#undef ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS
-
-/* Platform lacks the ucontext.h file */
-#undef ACE_LACKS_UCONTEXT_H
-
-/* Platform lacks the unistd.h file (e.g., VxWorks and Win32) */
-#undef ACE_LACKS_UNISTD_H
-
-/* ACE platform has no UNIX domain sockets */
-#undef ACE_LACKS_UNIX_DOMAIN_SOCKETS
-
-/* Platform lacks full signal support (e.g., Win32 and Chorus). */
-#undef ACE_LACKS_UNIX_SIGNALS
-
-/* Platform lacks struct utsname (e.g., Win32 and VxWorks) */
-#undef ACE_LACKS_UTSNAME_T
-
-/* Platform lacks wchar_t typedef */
-#undef ACE_LACKS_WCHAR_T
-
-/* The bind() call will not select the port if it's 0. */
-#undef ACE_LACKS_WILDCARD_BIND
-
-/* Renames "main (int, char *[])", for platforms such as g++/VxWorks
- that don't allow main. Requires the use of
- ACE_HAS_NONSTATIC_OBJECT_MANAGER. */
-#undef ACE_MAIN
-
-/* Compile using multi-thread libraries */
-#undef ACE_MT_SAFE
-
-/* Turns off debugging features */
-#undef ACE_NDEBUG
-
-/* Necessary with some compilers to pass ACE_TTY_IO as parameter to
- DEV_Connector. */
-#undef ACE_NEEDS_DEV_IO_CONVERSION
-
-/* Required by platforms with small default stacks. */
-#undef ACE_NEEDS_HUGE_THREAD_STACKSIZE
-
-/* OS has LWPs, and when the priority of a bound thread is set, then
- the LWP priority must be set also. */
-#undef ACE_NEEDS_LWP_PRIO_SET
-
-/* Platform doesn't define readv, so use our own */
-#undef ACE_LACKS_READV
-
-/* Platform doesn't define writev, so use our own */
-#undef ACE_LACKS_WRITEV
-
-/* Platform needs regexpr.h for regular expression support */
-#undef ACE_NEEDS_REGEXPR_H
-
-/* Platform needs to #include <sched.h> to get thread scheduling defs. */
-#undef ACE_NEEDS_SCHED_H
-
-/* <time.h> doesn't automatically #include <sys/time.h> */
-#undef ACE_LACKS_SYSTIME_H
-
-/* Compiler's 'new' throws exception on failure (ANSI C++ behavior). */
-#undef ACE_NEW_THROWS_EXCEPTIONS
-
-/* Turns off the LM_DEBUG and LM_ERROR logging macros... */
-#undef ACE_NLOGGING
-
-/* Turns off the tracing feature. */
-#undef ACE_NTRACE
-
-/* Defines the page size of the system (not used on Win32 or with
- ACE_HAS_GETPAGESIZE). */
-#undef ACE_PAGE_SIZE
-
-/* Platform redefines the t_... names (UnixWare) */
-#undef ACE_REDEFINES_XTI_FUNCTIONS
-
-/* Platform uses int for select() rather than fd_set */
-#undef ACE_SELECT_USES_INT
-
-/* Compiler's template mechanism must use a pragma. This is used for
- AIX's C++ compiler. */
-#undef ACE_TEMPLATES_REQUIRE_PRAGMA
-
-/* Compiler's template mechanim must see source code (i.e., .cpp
- files). This is used for GNU G++. */
-#undef ACE_TEMPLATES_REQUIRE_SOURCE
-
-/* Compiler's template instantiation mechanism supports the use of
- explicit C++ specializations for all used templates. This is also
- used for GNU G++ if you don't use the "repo" patches. */
-#undef ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-
-/* Compiler's template instantiation mechanism supports the use of
- "#pragma instantiate". Edison Design Group compilers, e.g., SGI
- C++ and Green Hills 1.8.8 and later, support this. */
-#undef ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA
-
-/* Compiler requires a definition for a "hidden" function, e.g., a
- private, unimplemented copy constructor or assignment operator.
- The SGI C++ compiler needs this, in template classes, with
- ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA. */
-#undef ACE_NEEDS_FUNC_DEFINITIONS
-
-/* Device the platform uses for TCP on TLI. Only needed if not
- /dev/tcp. */
-#undef ACE_TLI_TCP_DEVICE
-
-/* The OS/platform supports the poll() event demultiplexor */
-#undef ACE_USE_POLL
-
-/* Platform has broken poll() */
-#undef ACE_POLL_IS_BROKEN
-
-/* Platform uses assembly symbols instead of C symbols in dlsym() */
-#undef ACE_USES_ASM_SYMBOL_IN_DLSYM
-
-/* When linking MFC as a static library is desired */
-#undef ACE_USES_STATIC_MFC
-
-/* Platform has its standard c++ library in the namespace std. */
-#undef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
-
-/* A parameter list indicating the version of WinSock (e.g., "1, 1" is
- version 1.1). */
-#undef ACE_WSOCK_VERSION
-
-#undef HAVE_RESTARTABLE_SYSCALLS
-
-
-/* @BOTTOM@ */
-/* All lines below "@BOTTOM@" will be placed at the bottom of config.h.in. */
-
-
-#endif /* ACE_CONFIG_H */
diff --git a/ace-config.1.in b/ace-config.1.in
deleted file mode 100644
index 0fe88bb087d..00000000000
--- a/ace-config.1.in
+++ /dev/null
@@ -1,57 +0,0 @@
-.\" Process this file with
-.\" groff -man -Tascii ace-config.1
-.\"
-.TH ace-config 1 "DECEMBER 1998" "Library Configuration" "User Manuals"
-.SH NAME
-ace-config \- Display ACE Library Configuration
-.SH SYNOPSIS
-.B ace-config
-.I OPTION
-.B [
-.I OPTION
-.B ... ]
-.B [
-.I LIBRARY
-.B ]
-.SH DESCRIPTION
-.B ace-config
-is a script that is used to display what compiler flags and libraries were
-used when ACE was built.
-.SH OPTIONS
-.IP --version
-ACE version information
-.IP --help
-display help message and exit
-.IP --cxx
-C++ compiler used for compiling
-.IP --cxxflags
-C++ pre-processor and compiler flags
-.IP --libs
-library linking information
-.IP --libs-only-L
-the -L/-R part of
-.I --libs
-.IP --libs-only-l
-the -l part of
-.I --libs
-.SH LIBRARY
-.I LIBRARY
-refers to the library for which the specified configuration is desired. Valid
-libraries are:
-.IP ace
-the ACE library
-.IP netsvcs
-the ACE net services library
-.IP tao
-the ACE ORB (TAO) library
-.SH FILES
-.I @libdir@/aceConf.sh
-.RS
-Additional ACE related library configuration information.
-.RE
-.SH BUGS
-None.
-.SH AUTHOR
-Ossama Othman <ossama@uci.edu>
-.SH "SEE ALSO"
-.BR tao-config (1)
diff --git a/ace-config.in b/ace-config.in
deleted file mode 100644
index a1e19895647..00000000000
--- a/ace-config.in
+++ /dev/null
@@ -1,215 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-
-set -e
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-
-bindir=@bindir@
-sbindir=@sbindir@
-libexecdir=@libexecdir@
-datadir=@datadir@
-sysconfdir=@sysconfdir@
-sharedstatedir=@sharedstatedir@
-localstatedir=@localstatedir@
-libdir=@libdir@
-infodir=@infodir@
-mandir=@mandir@
-includedir=@includedir@
-
-pkgdatadir=${datadir}/@PACKAGE@
-pkglibdir=${libdir}/@PACKAGE@
-pkgincludedir=${includedir}/@PACKAGE@
-
-usage()
-{
- cat <<EOF
-Usage: ace-config OPTION [OPTIONS...] [LIBRARY]
-
-Generic options:
- --version output ACE version information
- --help display this help and exit
-
-Compilation support options:
- --cxx print C++ compiler used for compiling
- --cxxflags print C++ pre-processor and compiler flags
- --libs print library linking information
- --libs-only-L only print the -L/-R part of --libs
- --libs-only-l only print the -l part of --libs
-
-Install directories ACE was configured with:
- --prefix --exec-prefix --bindir --sbindir --libexecdir --datadir
- --sysconfdir --sharedstatedir --localstatedir --libdir --infodir
- --mandir --includedir
-
-Known values for LIBRARY are:
-
- ace
- netsvcs
- tao (calls tao-config)
-
-If LIBRARY is none of these,
-
- ${libdir}/<LIBRARY>Conf.sh
-
-is looked in for the necessary information.
-EOF
-
- exit $1
-}
-
-if test $# -eq 0; then
- usage 1
-fi
-
-cxx=false
-cxxflags=false
-libs_L=false
-libs_l=false
-
-# These values are only valid for ACE.
-the_compiler="@CXX@"
-the_libs="@ACE_LIBDIR@ -lACE @ACE_LIBS@"
-the_flags="@ACE_INCLUDEDIR@ @CXXFLAGS@"
-
-while test $# -gt 0; do
- case "$1" in
- -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) optarg= ;;
- esac
-
- case $1 in
- --version)
- echo @PACKAGE@ @VERSION@
- exit 0
- ;;
- --exec-prefix)
- echo $exec_prefix
- exit 0
- ;;
- --prefix)
- echo $prefix
- exit 0
- ;;
- --*dir)
- dirname=\$`echo $1 | sed -e 's,^--,,'`
- dirname=`eval echo $dirname`
- test -z "$dirname" && exit 1
- echo $dirname
- exit 0
- ;;
- --help)
- usage 0
- ;;
- --cxx)
- cxx=true
- ;;
- --cxxflags)
- cxxflags=true
- ;;
- --libs)
- libs_L=true
- libs_l=true
- ;;
- --libs-only-L)
- libs_L=true
- ;;
- --libs-only-l)
- libs_l=true
- ;;
- --*)
- usage 1
- ;;
- ace)
-# These are set before this option parsing loop begins.
-# the_compiler="@CXX@"
-# the_libs="$the_libs @ACE_LIBDIR@ -lACE @ACE_LIBS@"
-# the_flags="$the_flags @ACE_INCLUDEDIR@ @CXXFLAGS@"
- ;;
- netsvcs)
- echo "Currently unsupported."
- exit 1
-# the_libs="$the_libs @ACE_LIBDIR@ @NETSVCS_LIBS@"
-# the_flags="$the_flags @ACE_INCLUDEDIR@ @CXXFLAGS@"
- ;;
- tao)
- # The TAO compiler should be the same as ACE's compiler!
- the_compiler="`tao-config --cxx tao`"
- the_libs="$the_libs `tao-config --libs tao`"
- the_flags="$the_flags `tao-config --cxxflags tao`"
- ;;
- *)
- cnf_sh=${libdir}/${1}Conf.sh
- if test -f ${cnf_sh}; then
- . ${cnf_sh}
- up_name=`echo $1 | tr a-z A-Z`
- cnf_compiler=\$${up_name}_COMPILER
- cnf_libdir=\$${up_name}_LIBDIR
- cnf_libs=\$${up_name}_LIBS
- cnf_flags=\$${up_name}_INCLUDEDIR
- the_compiler="`eval echo $cnf_compiler`"
- the_libs="$the_libs `eval echo $cnf_libdir` `eval echo $cnf_libs`"
- the_flags="$the_flags `eval echo $cnf_flags`"
- else
- echo Unknown library \`$1\' 1>&2
- fi
- ;;
- esac
- shift
-done
-
-if $cxx; then
- all_flags="$the_compiler"
-fi
-
-if $cxxflags; then
- all_flags="$all_flags $the_flags"
-fi
-
-if $libs_L || $libs_l; then
- all_flags="$all_flags $the_libs"
-fi
-
-if test -z "$all_flags" || test "x$all_flags" = "x "; then
- exit 1
-fi
-
-# Straight out any possible duplicates, but be careful to
-# get `-lfoo -lbar -lbaz' for `-lfoo -lbaz -lbar -lbaz'
-other_flags=
-lib_L_flags=
-rev_libs=
-for i in $all_flags; do
- case "$i" in
- # a library, save it for later, in reverse order
- -l*) rev_libs="$i $rev_libs" ;;
- -L*|-R*)
- if $libs_L; then
- case " $lib_L_flags " in
- *\ $i\ *) ;; # already there
- *) lib_L_flags="$lib_L_flags $i" ;; # add it to output
- esac
- fi;;
- *)
- case " $other_flags " in
- *\ $i\ *) ;; # already there
- *) other_flags="$other_flags $i" ;; # add it to output
- esac ;;
- esac
-done
-
-ord_libs=
-if $libs_l; then
- for i in $rev_libs; do
- case " $ord_libs " in
- *\ $i\ *) ;; # already there
- *) ord_libs="$i $ord_libs" ;; # add it to output in reverse order
- esac
- done
-fi
-
-echo $other_flags $lib_L_flags $ord_libs
-
-exit 0
diff --git a/aceConf.sh.in b/aceConf.sh.in
deleted file mode 100644
index bff456f6928..00000000000
--- a/aceConf.sh.in
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# Configuration of the ACE distribution
-#
-
-ACE_COMPILER="@CXX@"
-ACE_LIBDIR="@ACE_LIBDIR@"
-ACE_INCLUDEDIR="@ACE_INCLUDEDIR@ @CXXFLAGS@"
-ACE_LIBS="@ACE_LIBS@"
diff --git a/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp b/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp
deleted file mode 100644
index 6668dab1dc4..00000000000
--- a/apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp
+++ /dev/null
@@ -1,802 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Event_Channel.h"
-#include "Concrete_Connection_Handlers.h"
-
-ACE_RCSID(Gateway, Concrete_Connection_Handlers, "$Id$")
-
-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.
-
-// Do not close handler when received data successfully.
-// Consumer_Handler should could process received data.
-// For example, Consumer could send reply-event to Supplier.
-int
-Consumer_Handler::handle_input (ACE_HANDLE)
-{
- // Do not set FAILED state at here, just at real failed place.
-
- char buf[BUFSIZ];
- ssize_t received = this->peer ().recv (buf, sizeof buf);
-
- switch (received)
- {
- case -1:
- this->state (Connection_Handler::FAILED);
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) Peer has failed unexpectedly for Consumer_Handler %d\n",
- this->connection_id ()),
- -1);
- /* NOTREACHED */
- case 0:
- this->state (Connection_Handler::FAILED);
- 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) IGNORED: Consumer is erroneously sending input to Consumer_Handler %d\n"
- "data size = %d\n",
- this->connection_id (),
- received),
- 0); // Return 0 to identify received data successfully.
- /* 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)
- {
- // -1 is returned only when things have really gone wrong (i.e.,
- // not when flow control occurs). Thus, 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)
- {
- // We didn't manage to send everything, so we need to queue
- // things up.
-
- 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);
- errno = EWOULDBLOCK;
- }
- 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,
- ACE_TEXT("(%t) Receiver signalled 'resume transmission' %d\n"),
- this->get_handle ()));
-
- // WIN32 Notes: When the receiver blocked, we started adding to the
- // consumer handler's message Q. At this time, we registered a
- // callback with the reactor to tell us when the TCP layer signalled
- // that we could continue to send messages to the consumer. However,
- // Winsock only sends this notification ONCE, so we have to assume
- // at the application level, that we can continue to send until we
- // get any subsequent blocking signals from the receiver's buffer.
-
-#if defined (ACE_WIN32)
- // Win32 Winsock doesn't trigger multiple "You can write now"
- // signals, so we have to assume that we can continue to write until
- // we get another EWOULDBLOCK.
-
- // We cancel the wakeup callback we set earlier.
- if (ACE_Reactor::instance ()->cancel_wakeup
- (this, ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Error in ACE_Reactor::cancel_wakeup()")),
- -1);
-
- // The list had better not be empty, otherwise there's a bug!
- while (this->msg_queue ()->dequeue_head
- (event, (ACE_Time_Value *) &ACE_Time_Value::zero) != -1)
- {
- switch (this->nonblk_put (event))
- {
- case -1: // Error sending message to consumer.
- {
- // We are responsible for releasing an ACE_Message_Block if
- // failures occur.
- event->release ();
-
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("transmission failure")));
- break;
- }
- case 0: // Partial Send - we got flow controlled by the receiver
- {
- ACE_ASSERT (errno == EWOULDBLOCK);
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("%D Partial Send due to flow control")
- ACE_TEXT ("- scheduling new wakeup with reactor\n")));
-
- // Re-schedule a wakeup call from the reactor when the
- // flow control conditions abate.
- if (ACE_Reactor::instance ()->schedule_wakeup
- (this,
- ACE_Event_Handler::WRITE_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("Error in ACE_Reactor::schedule_wakeup()")),
- -1);
-
- // Didn't write everything this time, come back later...
- return 0;
- }
- default: // Sent the whole thing
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Sent message from message Q, Q size = %d\n"),
- this->msg_queue()->message_count ()));
- break;
- }
- }
- }
-
- // If we drop out of the while loop, then the message Q should be
- // empty...or there's a problem in the dequeue_head() call...but
- // thats another story.
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("%D Sent all messages from consumers message Q\n")));
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%t) queueing deactivated on handle %d to routing id %d\n"),
- this->get_handle (),
- this->connection_id ()));
-#else /* !defined (ACE_WIN32) */
- // 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);
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("%D Partial Send\n")));
-
- // 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,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("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).
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("QQQ::Sent Message from consumer's Q\n")));
-
- if (this->msg_queue ()->is_empty ())
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%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,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("cancel_wakeup")));
- }
- }
- }
- else
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("(%t) %p\n"),
- ACE_TEXT ("dequeue_head - handle_output called by reactor but nothing in Q")));
-#endif /* ACE_WIN32 */
- 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 =
- !data_bytes_left_to_read
- ? 0 // peer().recv() should not be called when data_bytes_left_to_read is 0.
- : 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.
- if (data_bytes_left_to_read)
- {
- this->msg_frag_ = this->msg_frag_->release ();
- return 0;
- }
- /* FALLTHROUGH */;
-
- 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)
-{
- // It is not in thread svc() now.
- in_thread_ = 0;
-}
-
-// Overriding handle_close() method. If in thread svc(), no need to
-// process handle_close() when call peer().close(), because the
-// connection is blocked now.
-
-int
-Thr_Consumer_Handler::handle_close (ACE_HANDLE h, ACE_Reactor_Mask m)
-{
- if (in_thread_)
- return 0;
- else
- return Consumer_Handler::handle_close (h, m);
-}
-
-// 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_Consumer_Handler::handle_close () will eventually try to
-// reconnect...
-
-// Let Consumer_Handler receive normal data.
-int
-Thr_Consumer_Handler::handle_input (ACE_HANDLE h)
-{
- // Call down to the <Consumer_Handler> to handle this first.
- if (this->Consumer_Handler::handle_input (h) != 0)
- {
- // Only do such work when failed.
-
- 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 ();
- // Will call handle_close.
- return -1;
- }
- 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",
- "disable"),
- -1); // Incorrect info fixed.
-
- // 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 (in_thread_ = 1;;)
- {
- 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) == -1;
- // Second parameter '1' means using sync mode directly,
- // don't care Options::blocking_semantics(). If don't do
- // so, async mode will be used to connect which won't
- // satisfy original design.
- )
- {
- 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;)
-}
-
-Thr_Supplier_Handler::Thr_Supplier_Handler (const Connection_Config_Info &pci)
- : Supplier_Handler (pci)
-{
- // It is not in thread svc() now.
- in_thread_ = 0;
-}
-
-// Overriding handle_close() method. If in thread svc(), no need to
-// process handle_close() when call peer().close(), because the
-// connection is blocked now.
-
-int
-Thr_Supplier_Handler::handle_close (ACE_HANDLE h, ACE_Reactor_Mask m)
-{
- if (in_thread_)
- return 0;
- else
- return Supplier_Handler::handle_close (h, m);
-}
-
-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",
- "disable"),
- -1); // Incorrect info fixed.
-
- // 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 (in_thread_ = 1;;)
- {
- 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) == -1;
- // Second parameter '1' means using sync mode directly,
- // don't care Options::blocking_semantics(). If don't do
- // so, async mode will be used to connect which won't
- // satisfy original design.
- )
- {
- 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 287a4c8ec34..00000000000
--- a/apps/Gateway/Gateway/Concrete_Connection_Handlers.h
+++ /dev/null
@@ -1,151 +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 <schmidt@cs.wustl.edu>
-//
-// ============================================================================
-
-#ifndef 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.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // When thread started, connection become blocked, so no need to use
- // handle_close to reinitiate the connection_handler, so should
- // override this function to justify if controlling is in thread or
- // not. If yes, handle_close do nothing, otherwise, it call parent
- // handle_close().
-
-private:
- int in_thread_;
- // If the controlling is in thread's svc() or not.
-};
-
-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 handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // When thread started, connection become blocked, so no need to use
- // handle_close to reinitiate the connection_handler, so should
- // override this function to justify if controlling is in thread or
- // not. If yes, handle_close do nothing, otherwise, it call parent
- // handle_close().
-
- virtual int svc (void);
- // Transmit peer messages.
-
-private:
- int in_thread_;
- // If the controlling is in thread's svc() or not.
-};
-
-#endif /* CONCRETE_CONNECTION_HANDLER */
diff --git a/apps/Gateway/Gateway/Config_Files.cpp b/apps/Gateway/Gateway/Config_Files.cpp
deleted file mode 100644
index 112de597bd3..00000000000
--- a/apps/Gateway/Gateway/Config_Files.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Config_Files.h"
-#include "Options.h"
-
-ACE_RCSID(Gateway, Config_Files, "$Id$")
-
-// 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 9fd96b687f6..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
-//
-// ============================================================================
-
-#ifndef _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 95212a7b2c7..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler.cpp
+++ /dev/null
@@ -1,289 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Event_Channel.h"
-#include "Concrete_Connection_Handlers.h"
-
-ACE_RCSID(Gateway, Connection_Handler, "$Id$")
-
-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 3003a81874e..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef _CONNECTION_HANDLER
-#define _CONNECTION_HANDLER
-
-#include "ace/Service_Config.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 90c251ae8cc..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Event_Channel.h"
-#include "Connection_Handler_Acceptor.h"
-
-ACE_RCSID(Gateway, Connection_Handler_Acceptor, "$Id$")
-
-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 777f58c4a5b..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Acceptor.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler_acceptor.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef _CONNECTION_HANDLER_ACCEPTOR
-#define _CONNECTION_HANDLER_ACCEPTOR
-
-#include "ace/Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 d5a250cec60..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Connector.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// $Id$
-
-#include "Connection_Handler_Connector.h"
-
-ACE_RCSID(Gateway, Connection_Handler_Connector, "$Id$")
-
-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 f4e7d7d06a1..00000000000
--- a/apps/Gateway/Gateway/Connection_Handler_Connector.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Connection_Handler_Connector.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef _IO_HANDLER_CONNECTOR
-#define _IO_HANDLER_CONNECTOR
-
-#include "ace/Connector.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 3a5d0cf3e25..00000000000
--- a/apps/Gateway/Gateway/Consumer_Dispatch_Set.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// Consumer_Dispatch_Set.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef CONSUMER_DISPATCH_SET
-#define CONSUMER_DISPATCH_SET
-
-#include "ace/Containers.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// 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/Event.h b/apps/Gateway/Gateway/Event.h
deleted file mode 100644
index fe4ae2c2272..00000000000
--- a/apps/Gateway/Gateway/Event.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef EVENT_H
-#define EVENT_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// = 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_ (0, -1, 0, 0) {};
-
- 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 350a72a4c16..00000000000
--- a/apps/Gateway/Gateway/Event_Channel.cpp
+++ /dev/null
@@ -1,599 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Connection_Handler_Connector.h"
-#include "Event_Channel.h"
-
-ACE_RCSID(Gateway, Event_Channel, "$Id$")
-
-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,
- int sync_directly)
-{
- ACE_Synch_Options synch_options;
-
- if (sync_directly)
- // In separated connection handler thread, connection can be
- // initiated by block mode (synch mode) directly.
- synch_options = ACE_Synch_Options::synch;
- else 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)
-{
- // Cancel asynchronous connecting before re-initializing. It will
- // close the peer and cancel the asynchronous connecting.
- this->cancel_connection_connection(connection_handler);
-
- 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;
-}
-
-// It is useful to provide a separate method to cancel the
-// asynchronous connecting.
-
-int
-Event_Channel::cancel_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 ();
- // Cancel asynchronous connecting before re-initializing.
- return this->connector_.cancel(connection_handler);
- }
- 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))
- {
-
- if (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))
- {
- if(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 = 0; // It's safe to reset me to 0.
- 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 ()));
-
- // If have no this statement, the gatewayd will abort when exiting
- // with some Consumer/Supplier not connected.
- if (connection_handler->state()==Connection_Handler::CONNECTING)
- this->cancel_connection_connection(connection_handler);
- // 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 = 0; // It's safe to reset me to 0.
- 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 */
- }
-
- ACE_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 */
- }
-
- ACE_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 4f739d1cd8b..00000000000
--- a/apps/Gateway/Gateway/Event_Channel.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event_Channel.h
-//
-// = AUTHOR
-// Doug Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
-
-#ifndef 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 *, int sync_directly = 0);
- // Initiate the connection of the <Connection_Handler> to its peer.
- // Second paratemer is used for thread connection-handler which will
- // block the connecting procedure directly, need not care
- // Options::blocking_semantics().
-
- 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 cancel_connection_connection (Connection_Handler *);
- // Cancel a asynchronous connection.
-
- 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 d170dee9005..00000000000
--- a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-// $Id$
-
-#if !defined (_CONSUMER_MAP_C)
-#define _CONSUMER_MAP_C
-
-#include "Event_Forwarding_Discriminator.h"
-
-ACE_RCSID(Gateway, Event_Forwarding_Discriminator, "$Id$")
-
-// 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)
-{
- Consumer_Dispatch_Set *cds = 0;
- int result = this->map_.unbind (event_addr, cds);
- delete cds;
- return result;
-}
-
-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 10bc4409589..00000000000
--- a/apps/Gateway/Gateway/Event_Forwarding_Discriminator.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Event_Forwarding_Discriminator.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef _CONSUMER_MAP_H
-#define _CONSUMER_MAP_H
-
-#include "ace/Map_Manager.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 6f248e6762d..00000000000
--- a/apps/Gateway/Gateway/File_Parser.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-// $Id$
-
-#ifndef FILE_PARSER_C
-
-#define FILE_PARSER_C
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "File_Parser.h"
-
-ACE_RCSID(Gateway, File_Parser, "$Id$")
-
-// 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];
-#if defined (__GNUG__)
- // egcs 1.1b can't handle the typedef.
- FP::Return_Type
-#else /* ! __GNUG__ */
- FP_RETURN_TYPE
-#endif /* ! __GNUG__ */
- 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 a91a8f75827..00000000000
--- a/apps/Gateway/Gateway/File_Parser.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// File_Parser.h
-//
-// = AUTHOR
-// Doug Schmidt
-//
-// ============================================================================
-
-#ifndef _FILE_PARSER
-#define _FILE_PARSER
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-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 3838f6f8758..00000000000
--- a/apps/Gateway/Gateway/Gateway.cpp
+++ /dev/null
@@ -1,342 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Service_Config.h"
-#include "Config_Files.h"
-#include "Event_Channel.h"
-#include "Gateway.h"
-
-ACE_RCSID(Gateway, Gateway, "$Id$")
-
-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 *)
-{
- ACE_UNUSED_ARG (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_Event_Handler::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_Event_Handler::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 28f982104b7..00000000000
--- a/apps/Gateway/Gateway/Gateway.dsp
+++ /dev/null
@@ -1,98 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Gateway" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.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 AllowPerConfigDependencies 0
-# 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" /FD /c
-# SUBTRACT CPP /YX
-# 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 46009cd5c09..00000000000
--- a/apps/Gateway/Gateway/Gateway.dsw
+++ /dev/null
@@ -1,44 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.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 56f68644c39..00000000000
--- a/apps/Gateway/Gateway/Gateway.h
+++ /dev/null
@@ -1,33 +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
-//
-// ============================================================================
-
-#ifndef ACE_GATEWAY
-#define ACE_GATEWAY
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-ACE_SVC_FACTORY_DECLARE (Gateway)
-
-#endif /* ACE_GATEWAY */
-
diff --git a/apps/Gateway/Gateway/Makefile b/apps/Gateway/Gateway/Makefile
deleted file mode 100644
index 42d1463d219..00000000000
--- a/apps/Gateway/Gateway/Makefile
+++ /dev/null
@@ -1,1539 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# 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 =
-
-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
-#----------------------------------------------------------------------------
-
-ifeq ($(static_libs_only),1)
-$(VBIN): $(VLIB)
-else
-$(VBIN): $(VSHLIB)
-endif
-
-#----------------------------------------------------------------------------
-# 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/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(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 File_Parser.cpp \
- Event.h Options.h Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(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/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- File_Parser.cpp Event.h Options.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.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/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- File_Parser.h File_Parser.cpp
-
-.obj/Gateway.o .obj/Gateway.so .shobj/Gateway.o .shobj/Gateway.so: Gateway.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- Config_Files.h File_Parser.h File_Parser.cpp Event.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/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(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.cpp \
- $(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/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(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 File_Parser.cpp \
- Event.h Options.h Event_Channel.h Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(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/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- Event.h Consumer_Dispatch_Set.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp
-
-.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp Event.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Options.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.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/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(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 File_Parser.cpp \
- Event.h Options.h Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(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/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(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 File_Parser.cpp \
- Event.h Options.h Connection_Handler_Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(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/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(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 File_Parser.cpp \
- Event.h Options.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Gateway/Gateway/Makefile.bor b/apps/Gateway/Gateway/Makefile.bor
deleted file mode 100644
index 1fc1899b603..00000000000
--- a/apps/Gateway/Gateway/Makefile.bor
+++ /dev/null
@@ -1,15 +0,0 @@
-NAME = gatewayd
-OBJFILES = \
- $(OBJDIR)\Concrete_Connection_Handlers.obj \
- $(OBJDIR)\Config_Files.obj \
- $(OBJDIR)\File_Parser.obj \
- $(OBJDIR)\Gateway.obj \
- $(OBJDIR)\Event_Channel.obj \
- $(OBJDIR)\Event_Forwarding_Discriminator.obj \
- $(OBJDIR)\Options.obj \
- $(OBJDIR)\Connection_Handler.obj \
- $(OBJDIR)\Connection_Handler_Acceptor.obj \
- $(OBJDIR)\Connection_Handler_Connector.obj \
- $(OBJDIR)\gatewayd.obj
-!include <$(ACE_ROOT)\apps\build.bor>
-
diff --git a/apps/Gateway/Gateway/Options.cpp b/apps/Gateway/Gateway/Options.cpp
deleted file mode 100644
index a5edd01fdb9..00000000000
--- a/apps/Gateway/Gateway/Options.cpp
+++ /dev/null
@@ -1,285 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Event.h"
-#include "Options.h"
-#include "ace/Get_Opt.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(Gateway, Options, "$Id$")
-
-// Static initialization.
-Options *Options::instance_ = 0;
-
-// Let's have a usage prompt.
-void
-Options::print_usage (void)
-{
- ACE_DEBUG ((LM_INFO,
- "gatewayd [-a {C|S}:acceptor-port] [-c {C|S}:connector-port]"
- " [-C consumer_config_file] [-P connection_config_filename]"
- " [-q socket_queue_size] [-t OUTPUT_MT|INPUT_MT] [-w time_out]"
- " [-b] [-d] [-v] [-T]\n"
- ""
- "\t-a Become an Acceptor\n"
- "\t-b Use blocking connection establishment\n"
- "\t-c Become a Connector\n"
- "\t-d debugging\n"
- "\t-q Use a different socket queue size\n"
- "\t-t Use a different threading strategy\n"
- "\t-v Verbose mode\n"
- "\t-w Time performance for a designated amount of time\n"
- "\t-C Use a different proxy config filename\n"
- "\t-P Use a different consumer config filename\n"
- "\t-T Tracing\n"
- ));
-}
-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_
- / sizeof (ACE_TCHAR));
- 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 connection 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:
- this->print_usage(); // It's nice to have a usage prompt.
- break;
- }
- }
-
- return 0;
-}
diff --git a/apps/Gateway/Gateway/Options.h b/apps/Gateway/Gateway/Options.h
deleted file mode 100644
index 5c56816f39a..00000000000
--- a/apps/Gateway/Gateway/Options.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
-
-#ifndef OPTIONS_H
-#define OPTIONS_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-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.
-
- void print_usage(void);
- // Print the gateway supported parameters.
- // = 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/connection_config b/apps/Gateway/Gateway/connection_config
deleted file mode 100644
index 93730edc0da..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 localhost * S * * 1
- 2 localhost * 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 fc3d533e74c..00000000000
--- a/apps/Gateway/Gateway/gatewayd.cpp
+++ /dev/null
@@ -1,64 +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 "ace/Log_Msg.h"
-#include "Gateway.h"
-
-ACE_RCSID(Gateway, gatewayd, "$Id$")
-
-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 308a4410e65..00000000000
--- a/apps/Gateway/Gateway/gatewayd.dsp
+++ /dev/null
@@ -1,59 +0,0 @@
-# Microsoft Developer Studio Project File - Name="gatewayd" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.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 AllowPerConfigDependencies 0
-# 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" /FD /c
-# SUBTRACT CPP /YX
-# 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/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/Makefile.bor b/apps/Gateway/Makefile.bor
deleted file mode 100644
index 60b7e1be137..00000000000
--- a/apps/Gateway/Makefile.bor
+++ /dev/null
@@ -1,3 +0,0 @@
-DIRS = Gateway Peer
-
-!include <$(ACE_ROOT)\include\makeinclude\recurse.bor>
diff --git a/apps/Gateway/Peer/Makefile b/apps/Gateway/Peer/Makefile
deleted file mode 100644
index c4f602c57c3..00000000000
--- a/apps/Gateway/Peer/Makefile
+++ /dev/null
@@ -1,303 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# 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 =
-
-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
-
-ifeq ($(static_libs_only),1)
-$(VBIN): $(VLIB)
-else
-$(VBIN): $(VSHLIB)
-endif
-
-#----------------------------------------------------------------------------
-# 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/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- 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/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Acceptor.h \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(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 \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Connector.cpp \
- Options.h ../Gateway/Event.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/Gateway/Peer/Makefile.bor b/apps/Gateway/Peer/Makefile.bor
deleted file mode 100644
index 7d01fd58d4a..00000000000
--- a/apps/Gateway/Peer/Makefile.bor
+++ /dev/null
@@ -1,8 +0,0 @@
-
-NAME = peerd
-OBJFILES = \
- $(OBJDIR)\Options.obj \
- $(OBJDIR)\Peer.obj \
- $(OBJDIR)\peerd.obj
-!include <$(ACE_ROOT)\apps\build.bor>
-
diff --git a/apps/Gateway/Peer/Options.cpp b/apps/Gateway/Peer/Options.cpp
deleted file mode 100644
index 80c0256b619..00000000000
--- a/apps/Gateway/Peer/Options.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Get_Opt.h"
-#include "ace/Log_Msg.h"
-#include "Options.h"
-
-ACE_RCSID(Peer, Options, "$Id$")
-
-// 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"));
- ACE_OS::exit (1);
-}
-
-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 c0136ce78ae..00000000000
--- a/apps/Gateway/Peer/Options.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// gateway
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef 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.
-
- const 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 1198e4b15a7..00000000000
--- a/apps/Gateway/Peer/Peer.cpp
+++ /dev/null
@@ -1,908 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "Peer.h"
-
-ACE_RCSID(Peer, Peer, "$Id$")
-
-Peer_Handler::Peer_Handler (void)
- : connection_id_ (-1), // Maybe it's better than 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 ());
- first_time_ = 1; // It will be first time to open Peer_Handler.
-}
-
-// 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_,
- event_type,
- 0);
-
- // 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()")); // Function name fixed.
- // 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 return value is -1, then first_time_ must be reset to 1.
- int result = 0;
- 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 ();
- result = 0; //
- break;
- /* NOTREACHED */
- case -1:
- mb->release ();
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "read"));
- result = 0; //
- break;
- /* NOTREACHED */
- default:
- // Do not return directly, save the return value.
- result = this->transmit (mb, n, ROUTING_EVENT);
- break;
- /* NOTREACHED */
- }
-
- // Do not return at here, but at exit of function.
- /*return 0;*/
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG,
- "Must transmit over an opened channel.\n"));
- result = -1; // Save return value at here, return at exit of function.
- }
- // If transmit error, the stdin-thread will be cancelled, so should
- // reset first_time_ to 1, which will register_stdin_handler again.
- if (result == -1)
- first_time_ = 1;
-
- return result;
-}
-
-// 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)
- // -1 is returned only when things have really gone wrong (i.e.,
- // not when flow control occurs).
- 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_));
-
- // peer().recv() should not be called when data_bytes_left_to_read is 0.
- ssize_t data_received = !data_bytes_left_to_read ? 0 :
- 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.
- if (data_bytes_left_to_read)
- {
- this->msg_frag_ = this->msg_frag_->release ();
- return 0;
- }
- /* FALLTHROUGH */;
-
- 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 ();
-
- // No need to disconnect by timeout.
- ACE_Reactor::instance ()->cancel_timer(this);
- // Transition to the action that waits for Peer events.
- this->do_action_ = &Peer_Handler::await_events;
-
- // Reset standard input.
- ACE_OS::rewind (stdin);
-
- // Call register_stdin_handler only once, until the stdin-thread
- // closed which caused by transmit_stdin error.
- if (first_time_)
- {
- // Register this handler to receive test events on stdin.
- if (ACE_Event_Handler::register_stdin_handler
- (this,
- ACE_Reactor::instance (),
- ACE_Thread_Manager::instance ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%t) %p\n",
- "register_stdin_handler"),
- -1);
-
- // Next time in await_connection_id(), I'll don't call
- // register_stdin_handler().
- first_time_ = 0;
- }
- 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->header_.len_ - 2,
- 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 (ACE_Reactor *, int)
-{
- 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 *)
-{
- if (signum != SIGPIPE)
- {
- // Shut down the main event loop.
- ACE_DEBUG((LM_NOTICE, "Exit case signal\n")); // Why do I exit?
- 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->supplier_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->consumer_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 057a8414568..00000000000
--- a/apps/Gateway/Peer/Peer.dsp
+++ /dev/null
@@ -1,66 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Peer" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.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 AllowPerConfigDependencies 0
-# 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" /FD /c
-# SUBTRACT CPP /YX
-# 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 d1dd3f1d06a..00000000000
--- a/apps/Gateway/Peer/Peer.dsw
+++ /dev/null
@@ -1,44 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.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 f34b14d8aea..00000000000
--- a/apps/Gateway/Peer/Peer.h
+++ /dev/null
@@ -1,242 +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
-//
-// ============================================================================
-
-#ifndef PEER_H
-#define PEER_H
-
-#include "ace/Service_Config.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Acceptor.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/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.
-
- int first_time_;
- // Used to call register_stdin_handle only once. Otherwise, thread
- // leak will occur on Win32.
-};
-
-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 (ACE_Reactor * = 0, int = 0);
- // Initialize the <Peer_Connector>. NOTE: the arguments are
- // ignored. They are only provided to avoid a compiler warning
- // about hiding the virtual function ACE_Connector<Peer_Handler,
- // ACE_SOCK_CONNECTOR>::open(ACE_Reactor*, int).
-
-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/peerd.cpp b/apps/Gateway/Peer/peerd.cpp
deleted file mode 100644
index 94df916851e..00000000000
--- a/apps/Gateway/Peer/peerd.cpp
+++ /dev/null
@@ -1,62 +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"
-
-ACE_RCSID(Peer, peerd, "$Id$")
-
-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 ceb9529fbf8..00000000000
--- a/apps/Gateway/Peer/peerd.dsp
+++ /dev/null
@@ -1,59 +0,0 @@
-# Microsoft Developer Studio Project File - Name="peerd" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.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 AllowPerConfigDependencies 0
-# 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" /FD /c
-# SUBTRACT CPP /YX
-# 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 2fe4e79c372..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
- connection_config and consumer_config files:
-
- 1. The connection_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
- connection_config configuration file). These Peers are
- "suppliers" of events to the Gateway.
-
- 2. Consumer Peers (designated by an 'C' in the Gateway's
- connection_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 connection_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 connection_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:10011
-
- # Window 2 (Consumer)
- % peerd -a C:10012
-
- 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 ea1590cf3de..00000000000
--- a/apps/JAWS/ChangeLog
+++ /dev/null
@@ -1,913 +0,0 @@
-Wed Nov 14 16:21:46 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * clients/Blobby/Blob.{h,cpp},
- * clients/Blobby/Blob_Handler.{h,cpp},
- * clients/Blobby/blobby.{h,cpp},
- * clients/Blobby/Options.{h,cpp}:
- Fixed the code to be Unicode-compliant. Thanks to Johnny
- Willemsen for contributing this.
-
-Fri Aug 24 18:39:39 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * server/HTTP_Response.cpp (normal_response),
- * server/HTTP_Helpers.cpp (HTTP_decode_base64): Use delete [] buf
- rather than delete buf. Thanks to Don Hinton for reporting
- this.
-
-Thu Aug 16 09:57:15 2001 Balachandran Natarajan <bala@cs.wustl.edu>
-
- * */Makefile: Updated dependencies.
-
-Mon Aug 13 14:04:44 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * Applied the following fixes courtesy of Blair Zajac
- <blair@gps.caltech.edu>:
-
- 1) Allow a static libHTTPU.a to be built when
- "make static_libs_only=1" is used.
-
- 2) When I try to build both JAWS and JAWS2 with the same
- ACE_ROOT, the libJAWS.* that is built and installed first
- prevents the other JAWS from properly compiling. This
- resolves this problem by renaming the JAWS2 library to
- libJAWS2.*.
-
- 3) The JAWS2 subdirectory is now descended into by
- apps/Makefile.
-
- 4) The Makefile in JAWS2 now descends into HTTPU and JAWS to
- build those libraries.
-
-Tue Jun 12 20:35:26 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * clients/Blobby/Blob_Handler.cpp:
-
- Fixed a size_t printf to make gcc happy on IA-64 Linux.
-
-Sun Feb 18 09:33:33 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * server/IO.cpp (handle): Added a const to the handle() method
- to make compilers happy. Thanks to Kitty for reporting this.
-
-Mon Jun 12 14:22:35 PDT 2000 James Hu <jxh@entera.com>
-
- * server/HTTP_Response.cpp: Added content length support.
- Thanks to Greg Gallant (gcg@micrografx.com) for the fixes!
-
- * server/HTTP_Helpers.cpp: Fix date handling for NT.
- Thanks to Greg Gallant (gcg@micrografx.com) for the fixes!
-
-Sun Jun 4 14:57:04 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * clients/WebSTONE/bin/WebStone-common.pl:
- * clients/WebSTONE/bin/WebStone-manage.pl:
- * clients/WebSTONE/bin/WebStone-run.pl:
- * clients/WebSTONE/bin/WebStone-setup.pl:
- * clients/WebSTONE/bin/killbench.pl:
- * clients/WebSTONE/bin/mine-logs.pl:
- * clients/WebSTONE/bin/move-filelist.pl:
- * clients/WebSTONE/bin/move-runs.pl:
- * clients/WebSTONE/bin/runbench.pl:
- * clients/WebSTONE/bin/view-results.pl:
- * clients/WebSTONE/bin/webstone-gui.pl:
- * clients/WebSTONE/bin/write-testbed.pl:
- * clients/WebSTONE/bin/wscollect.pl:
- * clients/WebSTONE/conf/paths.pl:
- * clients/WebSTONE/doc/FAQ-webstone.html:
- * clients/WebSTONE/doc/LICENSE.html:
- * clients/WebSTONE/doc/WebStone.html:
- * clients/WebSTONE/doc/webstone2.html:
- * clients/WebSTONE/src/acconfig.h:
- * clients/WebSTONE/src/bench.c:
- * clients/WebSTONE/src/bench.h:
- * clients/WebSTONE/src/cgi-send.c:
- * clients/WebSTONE/src/config.h:
- * clients/WebSTONE/src/debug.h:
- * clients/WebSTONE/src/errexit.c:
- * clients/WebSTONE/src/genrand.c:
- * clients/WebSTONE/src/get.c:
- * clients/WebSTONE/src/get.h:
- * clients/WebSTONE/src/getopt.c:
- * clients/WebSTONE/src/gettimeofday.c:
- * clients/WebSTONE/src/nsapi-send.c:
- * clients/WebSTONE/src/parse_file_list.c:
- * clients/WebSTONE/src/parse_file_list.h:
- * clients/WebSTONE/src/rexec.c:
- * clients/WebSTONE/src/statistics.c:
- * clients/WebSTONE/src/statistics.h:
- * clients/WebSTONE/src/sysdep.c:
- * clients/WebSTONE/src/sysdep.h:
- * clients/WebSTONE/src/timefunc.c:
- * clients/WebSTONE/src/timefunc.h:
- * clients/WebSTONE/src/webclient.c:
- * clients/WebSTONE/src/webmaster.c:
- * clients/WebSTONE/src/nsapi-includes/netsite.h:
- * clients/WebSTONE/src/nsapi-includes/base/buffer.h:
- * clients/WebSTONE/src/nsapi-includes/base/cinfo.h:
- * clients/WebSTONE/src/nsapi-includes/base/crit.h:
- * clients/WebSTONE/src/nsapi-includes/base/daemon.h:
- * clients/WebSTONE/src/nsapi-includes/base/dll.h:
- * clients/WebSTONE/src/nsapi-includes/base/ereport.h:
- * clients/WebSTONE/src/nsapi-includes/base/eventlog.h:
- * clients/WebSTONE/src/nsapi-includes/base/file.h:
- * clients/WebSTONE/src/nsapi-includes/base/minissl.h:
- * clients/WebSTONE/src/nsapi-includes/base/net.h:
- * clients/WebSTONE/src/nsapi-includes/base/nodelock.h:
- * clients/WebSTONE/src/nsapi-includes/base/nterrors.h:
- * clients/WebSTONE/src/nsapi-includes/base/objndx.h:
- * clients/WebSTONE/src/nsapi-includes/base/pblock.h:
- * clients/WebSTONE/src/nsapi-includes/base/sem.h:
- * clients/WebSTONE/src/nsapi-includes/base/session.h:
- * clients/WebSTONE/src/nsapi-includes/base/shexp.h:
- * clients/WebSTONE/src/nsapi-includes/base/shmem.h:
- * clients/WebSTONE/src/nsapi-includes/base/systems.h:
- * clients/WebSTONE/src/nsapi-includes/base/systhr.h:
- * clients/WebSTONE/src/nsapi-includes/base/util.h:
- * clients/WebSTONE/src/nsapi-includes/frame/conf.h:
- * clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h:
- * clients/WebSTONE/src/nsapi-includes/frame/func.h:
- * clients/WebSTONE/src/nsapi-includes/frame/http.h:
- * clients/WebSTONE/src/nsapi-includes/frame/httpact.h:
- * clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h:
- * clients/WebSTONE/src/nsapi-includes/frame/log.h:
- * clients/WebSTONE/src/nsapi-includes/frame/object.h:
- * clients/WebSTONE/src/nsapi-includes/frame/objset.h:
- * clients/WebSTONE/src/nsapi-includes/frame/protocol.h:
- * clients/WebSTONE/src/nsapi-includes/frame/req.h:
- * clients/WebSTONE/src/nsapi-includes/frame/servact.h:
-
- Added missing CVS Id strings.
-
-Wed Mar 22 12:36:00 2000 James Hu <jxh@cs.wustl.edu>
-
- * stress_testing/connection.h:
-
- Fixes to class declaration. Method return types should never
- be implicit. Thanks to Craig Rodrigues (rodrigc@mediaone.net)
- for the heads up.
-
- * stress_testing/Makefile:
-
- Fixed it so that the programs actually link. Thanks to Craig
- Rodrigues (rodrigc@mediaone.net) for the heads up.
-
-Tue Sep 21 11:47:00 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * server/HTTP_Server.cpp (init):
-
- Changed cast style to make gcc 2.95.1 happy. Thanks to Jeffrey
- Franks <Jeffrey_Franks@i-o.com> for reporting the problems.
-
-Tue Aug 31 05:10:32 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * server/HTTP_Handler.cpp (destroy_http_handler): Switched
- the order in which handler and io were deleted since the current
- order seems to destroy handler first, which is problematic since
- io is contained within handler! Thanks to Yosi Sarusi
- <yosi@appstream.com> for reporting this.
-
-Wed Aug 18 16:00:46 1999 David L. Levine <levine@cs.wustl.edu>
-
- * server/Makefile,client/Caching/Makefile: don't build if
- ACE_COMPONENTS is FOR_TAO, because we now exclude Filecache
- from the ACE library in that case.
-
-Thu Jul 29 16:05:59 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * PROTOTYPE/JAWS/IO.cpp (transmit_file): Added some fixes so this
- code will compile on NT. Thanks to Brian Jones
- <bjones@edgemail.com> for reporting this problem and to James Hu
- for fixing it.
-
-Tue Jun 22 13:42:51 1999 David L. Levine <levine@cs.wustl.edu>
-
- * remora/app/Makefile: replaced rm -f with $(RM).
-
-Tue Mar 16 01:08:05 1999 Nanbor Wang <nanbor@cs.wustl.edu>
-
- * server/Makefile:
- * server/jaws.dsp: Updated makefiles to build shared library.
-
- * server/svc.conf: Added example settings for using HTTP_Server as
- a dynamic service.
-
- * server/HTTP_Server.{h,cpp}: Added macros to build dynamic
- HTTP_Server service.
-
- * server/main.cpp (main): Since we use static service in JAWS, we
- must open the service configure without ignoring the static
- svcs. Thanks to Bill Rizzi <rizzi@softserv.com> for pointing
- this out.
-
-Mon Feb 01 17:04:39 1999 David L. Levine <levine@cs.wustl.edu>
-
- * clients/WebSTONE/conf/paths.{pl,sh}.old:
- removed these apparently useless files.
-
-Sat Jan 02 08:44:48 1999 David L. Levine <levine@cs.wustl.edu>
-
- * server/HTTP_Request.cpp,Parse_Headers.cpp: initialized
- third param to strtok_r with 0. DU 4.0 cxx was complaining
- about it, with ACE_NDEBUG. According to the strtok_r
- man page on DU 4.0, it must be initialized to 0 on the
- first call to strtok_r.
-
-Fri Sep 25 23:29:14 1998 David L. Levine <levine@cs.wustl.edu>
-
- * server/IO.cpp (receive_file,transmit_file): changed
- NOMAP to ACE_NOMAP. Thanks to Dann Corbit
- <DCorbit@SolutionsIQ.com> for reporting this.
-
-Thu Sep 17 18:53:05 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * server/IO.cpp:
- * PROTOTYPE/JAWS/IO.cpp:
- Revert back to iovec. Also added some missing casts.
-
-Wed Sep 16 22:53:06 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * server/IO.cpp:
- * PROTOTYPE/JAWS/IO.cpp:
- Use ACE_IO_Vector instead of iovec, because it is more
- protable.
-
-Tue Aug 25 10:18:16 1998 David L. Levine <levine@cs.wustl.edu>
-
- * clients/Caching/URL_Properties.cpp: removed explicit
- ACE_Auto_Basic_Array_Ptr <char> instantiation because it's
- now in libACE. This file doesn't compile with g++/Solaris,
- but the Makefile doesn't build it anyways.
-
-Fri Jul 31 18:31:32 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * PROTOTYPE/HTTP_10.cpp
- * PROTOTYPE/HTTP_10_Parse.cpp
- * PROTOTYPE/HTTP_10_Read.cpp
- * PROTOTYPE/HTTP_10_Request.cpp
- * PROTOTYPE/HTTP_10_Write.cpp
- * PROTOTYPE/HTTP_Policy.cpp
- * PROTOTYPE/main.cpp
- * PROTOTYPE/JAWS/Assoc_Array.cpp
- * PROTOTYPE/JAWS/Concurrency.cpp
- * PROTOTYPE/JAWS/Data_Block.cpp
- * PROTOTYPE/JAWS/IO.cpp
- * PROTOTYPE/JAWS/IO_Acceptor.cpp
- * PROTOTYPE/JAWS/IO_Handler.cpp
- * PROTOTYPE/JAWS/Pipeline.cpp
- * PROTOTYPE/JAWS/Pipeline_Handler.cpp
- * PROTOTYPE/JAWS/Pipeline_Tasks.cpp
- * PROTOTYPE/JAWS/Policy.cpp
- * PROTOTYPE/JAWS/Reaper.cpp
- * PROTOTYPE/JAWS/Server.cpp
- * PROTOTYPE/JAWS/Waiter.cpp
- * clients/Blobby/Blob.cpp
- * clients/Blobby/Blob_Handler.cpp
- * clients/Blobby/Options.cpp
- * clients/Blobby/blobby.cpp
- * clients/Caching/ID_Generator.cpp
- * clients/Caching/Local_Locator.cpp
- * clients/Caching/Locator_Request_Reply.cpp
- * clients/Caching/URL_Array_Helper.cpp
- * clients/Caching/URL_Locator.cpp
- * clients/Caching/URL_Properties.cpp
- * clients/Caching/http_client.cpp
- * clients/Caching/http_handler.cpp
- * clients/Caching/test_URL.cpp
- * server/HTTP_Config.cpp
- * server/HTTP_Handler.cpp
- * server/HTTP_Helpers.cpp
- * server/HTTP_Request.cpp
- * server/HTTP_Response.cpp
- * server/HTTP_Server.cpp
- * server/IO.cpp
- * server/JAWS_Concurrency.cpp
- * server/JAWS_Pipeline.cpp
- * server/JAWS_Pipeline_Handler.cpp
- * server/Parse_Headers.cpp
- * server/main.cpp
- * stress_testing/benchd.cpp
- * stress_testing/connection.cpp
- * stress_testing/cp.cpp
- * stress_testing/http_tester.cpp
- * stress_testing/stats.cpp
- * stress_testing/util.cpp
- Added ACE_RCSID to these files.
-
-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/Makefile.bor b/apps/JAWS/Makefile.bor
deleted file mode 100644
index 9bdeebefeab..00000000000
--- a/apps/JAWS/Makefile.bor
+++ /dev/null
@@ -1,3 +0,0 @@
-DIRS = clients server
-
-!include <$(ACE_ROOT)\include\makeinclude\recurse.bor>
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 207a9cc5ded..00000000000
--- a/apps/JAWS/clients/Blobby/Blob.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// $Id$
-
-#include "Blob.h"
-#include "Blob_Handler.h"
-
-ACE_RCSID(Blobby, Blob, "$Id$")
-
-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 (ACE_TCHAR *filename, const ACE_TCHAR *hostname , u_short port)
-{
- filename_ = ACE_OS_String::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 b2c078b0af2..00000000000
--- a/apps/JAWS/clients/Blobby/Blob.h
+++ /dev/null
@@ -1,87 +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
-//
-//============================================================================
-
-#ifndef ACE_BLOB_H
-#define ACE_BLOB_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/INET_Addr.h"
-#include "ace/Svc_Handler.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/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 (ACE_TCHAR *filename,
- const ACE_TCHAR *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
-
- ACE_TCHAR *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 783736eb05f..00000000000
--- a/apps/JAWS/clients/Blobby/Blob_Handler.cpp
+++ /dev/null
@@ -1,346 +0,0 @@
-// $Id$
-
-#include "Blob_Handler.h"
-
-ACE_RCSID(Blobby, Blob_Handler, "$Id$")
-
-// 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,
- ACE_TCHAR *filename) :
- mb_ (mb),
- length_ (length),
- offset_ (offset),
- filename_ (ACE_OS_String::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,
- ACE_TCHAR *filename,
- const char *request_prefix,
- const 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 < (ACE_OS_String::strlen (request_prefix_)
- + ACE_OS_String::strlen (filename_)
- + ACE_OS_String::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,
- ACE_TCHAR *filename,
- const char *request_prefix,
- const 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 "
- ACE_SIZE_T_FORMAT_SPECIFIER"\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 b18df484ac5..00000000000
--- a/apps/JAWS/clients/Blobby/Blob_Handler.h
+++ /dev/null
@@ -1,118 +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
-//
-//============================================================================
-
-#ifndef ACE_BLOB_HANDLER_H
-#define ACE_BLOB_HANDLER_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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,
- ACE_TCHAR *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_;
- ACE_TCHAR *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,
- ACE_TCHAR *filename,
- const char *request_prefix = "GET",
- const 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,
- ACE_TCHAR *filename,
- const char *request_prefix = "PUT",
- const 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 af12483777f..00000000000
--- a/apps/JAWS/clients/Blobby/Makefile
+++ /dev/null
@@ -1,623 +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/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.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/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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(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/Synch_T.cpp \
- $(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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.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 \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.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 \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Connector.cpp 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/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(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/Synch_Options.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/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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(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/Synch_T.cpp \
- $(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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.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 \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i
-
-.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/ARGV.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/ARGV.i Blob.h \
- $(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/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.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/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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(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/Synch_T.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.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 \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.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 \
- $(ACE_ROOT)/ace/Connector.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Connector.cpp Blob_Handler.h Options.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/clients/Blobby/Makefile.bor b/apps/JAWS/clients/Blobby/Makefile.bor
deleted file mode 100644
index 881de0e493e..00000000000
--- a/apps/JAWS/clients/Blobby/Makefile.bor
+++ /dev/null
@@ -1,10 +0,0 @@
-
-NAME = blobby
-OBJFILES = \
- $(OBJDIR)\Blob.obj \
- $(OBJDIR)\Blob_Handler.obj \
- $(OBJDIR)\Options.obj \
- $(OBJDIR)\blobby.obj
-
-!include <$(ACE_ROOT)\apps\build.bor>
-
diff --git a/apps/JAWS/clients/Blobby/Options.cpp b/apps/JAWS/clients/Blobby/Options.cpp
deleted file mode 100644
index 4c28033ae19..00000000000
--- a/apps/JAWS/clients/Blobby/Options.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// $Id$
-
-#include "ace/Get_Opt.h"
-#include "ace/ARGV.h"
-#include "Blob.h"
-#include "Blob_Handler.h"
-#include "Options.h"
-
-ACE_RCSID(Blobby, Options, "$Id$")
-
-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, ACE_TCHAR *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("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 47c0c852036..00000000000
--- a/apps/JAWS/clients/Blobby/Options.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-//============================================================================
-//
-// = LIBRARY
-// JAWS
-//
-// = FILENAME
-// Options.h
-//
-// = DESCRIPTION
-// Options is an Singleton for blobby
-//
-// = AUTHOR
-// Prashant Jain and Sumedh Mungee
-//
-//============================================================================
-
-#ifndef ACE_BLOBBY_OPTIONS_H
-#define ACE_BLOBBY_OPTIONS_H
-
-#include "Blob.h"
-#include "Blob_Handler.h"
-#include "ace/Get_Opt.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/ARGV.h"
-
-class Options
-{
-public:
- static Options *instance (void);
- // Returns the singleton instance
-
- void parse_args (int argc, ACE_TCHAR *argv[]);
- // parses commandline arguments
-
- char *hostname_;
- // Hostname to connect to
-
- u_short port_;
- // Port number to use
-
- ACE_TCHAR *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 46e3854b266..00000000000
--- a/apps/JAWS/clients/Blobby/blobby.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-// $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"
-
-ACE_RCSID(Blobby, blobby, "$Id$")
-
-int
-main (int argc, ACE_TCHAR *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/Caching/Caching.dsp b/apps/JAWS/clients/Caching/Caching.dsp
deleted file mode 100644
index 260f6f46202..00000000000
--- a/apps/JAWS/clients/Caching/Caching.dsp
+++ /dev/null
@@ -1,112 +0,0 @@
-# Microsoft Developer Studio Project File - Name="http_client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=http_client - 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 "Caching.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 "Caching.mak" CFG="http_client - Win32 Release"
-!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
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!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 Ignore_Export_Lib 0
-# PROP Target_Dir ".\http_client"
-# 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" /FD /c
-# SUBTRACT CPP /YX
-# 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 /libpath:"../../../../ace"
-
-!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 Ignore_Export_Lib 0
-# PROP Target_Dir ".\http_client"
-# 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" /FD /c
-# SUBTRACT CPP /YX
-# 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 "http_client - Win32 Release"
-# Name "http_client - 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_client.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_handler.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_handler.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
-# End Target
-# End Project
diff --git a/apps/JAWS/clients/Caching/Caching.dsw b/apps/JAWS/clients/Caching/Caching.dsw
deleted file mode 100644
index b1fb6547d22..00000000000
--- a/apps/JAWS/clients/Caching/Caching.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "http_client"=.\Caching.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/JAWS/clients/Caching/ID_Generator.cpp b/apps/JAWS/clients/Caching/ID_Generator.cpp
deleted file mode 100644
index 6e868611835..00000000000
--- a/apps/JAWS/clients/Caching/ID_Generator.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-// $Id$
-
-#if !defined (ACE_ID_GENERATOR_C)
-#define ACE_ID_GENERATOR_C
-
-#include "ace/Object_Manager.h"
-#include "ID_Generator.h"
-
-ACE_RCSID(Caching, ID_Generator, "$Id$")
-
-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 3c02779f36e..00000000000
--- a/apps/JAWS/clients/Caching/ID_Generator.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// ID_Generator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#ifndef ACE_ID_GENERATOR_H
-#define ACE_ID_GENERATOR_h
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 5c084bd783a..00000000000
--- a/apps/JAWS/clients/Caching/Local_Locator.cpp
+++ /dev/null
@@ -1,257 +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__ */
-
-ACE_RCSID(Caching, Local_Locator, "$Id$")
-
-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 36969e6cb2c..00000000000
--- a/apps/JAWS/clients/Caching/Local_Locator.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// Local_Locator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#ifndef ACE_LOCAL_LOCATOR_H
-#define ACE_LOCAL_LOCATOR_H
-
-#include "URL_Locator.h"
-#include "ace/Containers.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 6f7a7898e59..00000000000
--- a/apps/JAWS/clients/Caching/Locator_Request_Reply.cpp
+++ /dev/null
@@ -1,459 +0,0 @@
-// $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 "ace/Auto_Ptr.h"
-#include "URL_Properties.h"
-#include "URL_Array_Helper.h"
-#include "URL_Locator.h"
-
-ACE_RCSID(Caching, Locator_Request_Reply, "$Id$")
-
-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 057607c351d..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
-//
-// ============================================================================
-
-#ifndef 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 04bbff4e831..00000000000
--- a/apps/JAWS/clients/Caching/Makefile
+++ /dev/null
@@ -1,246 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS) client
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN2 = http_client
-
-FILES = http_handler
-
-SRC = $(addsuffix .cpp,$(FILES))
-OBJ = $(addsuffix .o,$(FILES))
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Utils,$(findstring Utils,$(ACE_BUILD_COMPONENTS)))
- ifneq (FOR_TAO,$(ACE_COMPONENTS))
- BIN = $(BIN2)
- endif # ! FOR_TAO
-endif # ! Utils
-
-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 \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.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/Memory_Pool.i http_handler.h \
- $(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/Connector.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.cpp
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/clients/Caching/Makefile.bor b/apps/JAWS/clients/Caching/Makefile.bor
deleted file mode 100644
index af633030078..00000000000
--- a/apps/JAWS/clients/Caching/Makefile.bor
+++ /dev/null
@@ -1,6 +0,0 @@
-
-NAME = http_client
-OBJFILES = \
- $(OBJDIR)\http_client.obj \
- $(OBJDIR)\http_handler.obj
-!include <$(ACE_ROOT)\apps\build.bor>
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 c8dbb55e197..00000000000
--- a/apps/JAWS/clients/Caching/URL_Array_Helper.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// $Id$
-
-// URL_Array_Helper.cpp
-
-#ifndef ACE_URL_ARRAY_HELPER_C
-#define ACE_URL_ARRAY_HELPER_C
-
-#include "URL_Array_Helper.h"
-
-ACE_RCSID(Caching, URL_Array_Helper, "$Id$")
-
-// 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 f38f9ebf5dd..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
-//
-// ============================================================================
-
-#ifndef 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 fd3eacab06d..00000000000
--- a/apps/JAWS/clients/Caching/URL_Locator.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-// $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
-
-ACE_RCSID(Caching, URL_Locator, "$Id$")
-
-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 cf6f294145e..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
-//
-// ============================================================================
-
-#ifndef 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 eeae1f43581..00000000000
--- a/apps/JAWS/clients/Caching/URL_Properties.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-// $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"
-
-ACE_RCSID(Caching, URL_Properties, "$Id$")
-
-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_Array_Base<ACE_URL_Property>;
-template class ACE_Array<ACE_URL_Property>;
-template class ACE_Array_Base<ACE_URL_Offer>;
-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_Array_Base<ACE_URL_Property>
-#pragma instantiate ACE_Array<ACE_URL_Property>
-#pragma instantiate ACE_Array_Base<ACE_URL_Offer>
-#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 17e3c6df114..00000000000
--- a/apps/JAWS/clients/Caching/URL_Properties.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/* -*- C++ -*- */
-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// none
-//
-// = FILENAME
-// URL_Locator.h
-//
-// = AUTHOR
-// Nanbor Wang
-//
-// ============================================================================
-
-#ifndef ACE_URL_PROPERTIES_H
-#define ACE_URL_PROPERTIES_H
-
-#include "ace/SString.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Containers.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 9238ace3194..00000000000
--- a/apps/JAWS/clients/Caching/http_client.cpp
+++ /dev/null
@@ -1,70 +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"
-
-ACE_RCSID(Caching, http_client, "$Id$")
-
-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 7a1ceafd086..00000000000
--- a/apps/JAWS/clients/Caching/http_handler.cpp
+++ /dev/null
@@ -1,255 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps/JAWS/clients/Caching
-//
-// = FILENAME
-// http_handler.cpp
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#include "ace/Filecache.h"
-#include "http_handler.h"
-
-ACE_RCSID(Caching, http_handler, "$Id$")
-
-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 83bab4811d5..00000000000
--- a/apps/JAWS/clients/Caching/http_handler.h
+++ /dev/null
@@ -1,81 +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/SOCK_Connector.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/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 fdf7a632daa..00000000000
--- a/apps/JAWS/clients/Caching/test_URL.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-// $Id$
-
-#include "ace/streams.h"
-#include "Locator_Request_Reply.h"
-
-ACE_RCSID(Caching, test_URL, "$Id$")
-
-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/Makefile.bor b/apps/JAWS/clients/Makefile.bor
deleted file mode 100644
index 02206e7ebba..00000000000
--- a/apps/JAWS/clients/Makefile.bor
+++ /dev/null
@@ -1,3 +0,0 @@
-DIRS = Blobby Caching
-
-!include <$(ACE_ROOT)\include\makeinclude\recurse.bor>
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 9e52c1dec97..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-#$Id$
-#
-
-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 77d2495a741..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-#$Id$
-#
-
-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 28efe90c4d5..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-run.pl
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-#$Id$
-#
-
-$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 f47ac6a8f06..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-#$Id$
-#
-
-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 db9b0368632..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/killbench.pl
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-#$Id$
-#
-
-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 af2c470fb0c..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/mine-logs.pl
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/pkg/gnu/bin//perl
-#
-#$Id$
-#
-# 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 eb263a04bf5..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/move-filelist.pl
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-#$Id$
-#
-
-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 3412f992008..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/move-runs.pl
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-#$Id$
-#
-
-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 fdd12e4d530..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/runbench.pl
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-#$Id$
-#
-
-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 ac375746e8a..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/view-results.pl
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-#$Id$
-#
-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 cb0c7224c09..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl
+++ /dev/null
@@ -1,318 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-#$Id$
-
-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 f16d626f2ad..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/write-testbed.pl
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/pkg/gnu/bin//perl5
-#
-#$Id$
-#
-# 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 13511bdbb53..00000000000
--- a/apps/JAWS/clients/WebSTONE/bin/wscollect.pl
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/pkg/gnu/bin//perl
-#
-#$Id$
-#
-# $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 e6fee6764e5..00000000000
--- a/apps/JAWS/clients/WebSTONE/conf/paths.pl
+++ /dev/null
@@ -1,4 +0,0 @@
-#$Id$
-
-$MOSAIC="/pkg/www/bin/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/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 e52f00490fc..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html
+++ /dev/null
@@ -1,403 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML VERSION="2.0">
-<HEAD>
-<!-- $Id$ -->
-<!-- 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 c55918d1c3a..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/LICENSE.html
+++ /dev/null
@@ -1,17 +0,0 @@
-$Id$
-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 e36a9b2d10d..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/WebStone.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML VERSION="2.0">
-<HEAD>
-<!-- $Id$ -->
-<!-- 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 5ea2650158d..00000000000
--- a/apps/JAWS/clients/WebSTONE/doc/webstone2.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML VERSION="2.0">
-<HEAD>
-<!-- $Id$ -->
-<!-- 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/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 2183ecd4a7f..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/acconfig.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/* $Id$ */
-/* Special definitions for autoheader
- Copyright (C) 1995 Silicon Graphics, Inc.
-*/
-
-/* 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 54e6147ba4d..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/bench.c
+++ /dev/null
@@ -1,635 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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. *
- * *
- **************************************************************************/
-
-/* FUZZ: disable check_for_math_include */
-
-#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 489b6596efc..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/bench.h
+++ /dev/null
@@ -1,274 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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 0a63070b7b7..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/cgi-send.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* $Id$ */
-/*
- * 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 782ba57a71b..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/config.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* $Id$ */
-/* 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 2322c287931..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/debug.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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 a9bc024d4b6..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/errexit.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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 65f54fbc839..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/genrand.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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. *
- * *
- **************************************************************************/
-
-/* FUZZ: disable check_for_math_include */
-#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 8a6d9232deb..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/get.c
+++ /dev/null
@@ -1,318 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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 57ac8707445..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/get.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef __GET_H__
-#define __GET_H__
-/* $Id$ */
-/**************************************************************************
- * *
- * 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 fc0bbe7037a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/getopt.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* $Id$ */
-/* 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 7c685ad90c5..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/gettimeofday.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* $Id$ */
-
-/*
- * 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 f172efcb93a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * $Id$
- *
- * 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 13849531fd2..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * $Id$
- *
- * 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 c661be47eef..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * $Id$
- *
- * 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 afe0cfe6e5e..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * $Id$
- *
- * 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 3b8a44d6c38..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * $Id$
- *
- * 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 b6ea5857e54..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * $Id$
- *
- * 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 ef2a1e12842..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * $Id$
- *
- * 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
-// Win32 specific stuff, so FUZZ: disable check_for_tchar
-
-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 8c59a9f2be7..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * $Id$
- *
- * 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 597e35a080e..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * $Id$
- *
- * 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 44dfbdc68dc..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * $Id$
- *
- * 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 619c1df2621..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * $Id$
- *
- * 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 19e9429558d..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h
+++ /dev/null
@@ -1,738 +0,0 @@
-/*
- * $Id$
- *
- * 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 ceb6d06b133..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * $Id$
- *
- * 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 4dc1629fcd0..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * $Id$
- *
- * 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 da88b41da15..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * $Id$
- *
- * 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 3104cb0ca65..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * $Id$
- *
- * 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 887f96ae81e..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * $Id$
- *
- * 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 0692a051c78..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * $Id$
- *
- * 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 193bc63c034..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * $Id$
- *
- * 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 e53cc385049..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * $Id$
- *
- * 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 f710ffc2530..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * $Id$
- *
- * 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 fd20b2eeaf3..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * $Id$
- *
- * 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 789c19c4138..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * $Id$
- *
- * 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 111ffd3a375..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * $Id$
- *
- * 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 b247b3805b8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * $Id$
- *
- * 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 a1e1a971bb8..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * $Id$
- *
- * 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 2aa32502d8f..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * $Id$
- *
- * 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 1113ebe6867..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * $Id$
- *
- * 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 45180c5b884..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * $Id$
- *
- * 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 fe68c31eb04..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * $Id$
- *
- * 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 d44705a60cc..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * $Id$
- *
- * 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 afe525150c6..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * $Id$
- *
- * 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 9e6df32c6d4..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * $Id$
- *
- * 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 80f114d3fb5..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * $Id$
- *
- * 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 70e99d33a87..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/nsapi-send.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* $Id$ */
-/*
- * Send random bits file
- * 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 e201c51d4db..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/parse_file_list.c
+++ /dev/null
@@ -1,290 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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 715686228db..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/parse_file_list.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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 0a6792e6320..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/rexec.c
+++ /dev/null
@@ -1,373 +0,0 @@
-/* $Id$ */
-/*
- * 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 efc82c96e9a..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/statistics.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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. *
- * *
- **************************************************************************/
-
-/* FUZZ: disable check_for_math_include */
-#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 9f4bea75229..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/statistics.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _STATISTICS_H_
-#define _STATISTICS_H_
-/* $Id$ */
-
-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 f1743cab9ea..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/sysdep.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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 34b4df6ffc0..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/sysdep.h
+++ /dev/null
@@ -1,131 +0,0 @@
-#ifndef __SYSDEP_H__
-#define __SYSDEP_H__
-/* $Id$ */
-/**************************************************************************
- * *
- * 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 fe38d821eac..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/timefunc.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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. *
- * *
- **************************************************************************/
-
-/* FUZZ: disable check_for_math_include */
-#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 884aeea82d9..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/timefunc.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * 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 104107ecfbe..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/webclient.c
+++ /dev/null
@@ -1,1298 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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. *
- * *
- **************************************************************************/
-
-/* FUZZ: disable check_for_math_include */
-
-#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 b6d595ce32d..00000000000
--- a/apps/JAWS/clients/WebSTONE/src/webmaster.c
+++ /dev/null
@@ -1,1418 +0,0 @@
-/* $Id$ */
-/**************************************************************************
- * *
- * 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. *
- * *
- **************************************************************************/
-
-/* FUZZ: disable check_for_math_include */
-#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 7b2a29e119b..00000000000
--- a/apps/JAWS/remora/app/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-#### $Id$
-
-include stdmk
-
-EXE = test
-
-all: $(EXE)
-
-clean:
- -$(RM) core *~ *.o *_c.hh *_c.cc *_s.hh *_s.cc $(EXE)
- -$(RM) -r 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 609abf26e03..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 cd1a51444c5..00000000000
--- a/apps/JAWS/remora/app/Remora_Export.i
+++ /dev/null
@@ -1,150 +0,0 @@
-// $Id$
-
-// Since this is only included in Remora_Export.i these should stay
-// inline, not ACE_INLINE.
-// FUZZ: disable check_for_inline
-
-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 ed8d3e5f276..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 837a0dca894..00000000000
--- a/apps/JAWS/remora/app/Remora_Import.i
+++ /dev/null
@@ -1,89 +0,0 @@
-// $Id$
-
-// Since this is only included in Remora_Import.h these should stay
-// inline, not ACE_INLINE.
-// FUZZ: disable check_for_inline
-
-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 30c9d5249a0..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 3fafd31dd71..00000000000
--- a/apps/JAWS/remora/app/test.cc
+++ /dev/null
@@ -1,76 +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 ec67142c970..00000000000
--- a/apps/JAWS/server/HTTP_Config.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-// $Id$
-
-// HTTP_Config.cpp
-
-#include "ace/OS.h"
-#include "HTTP_Config.h"
-
-ACE_RCSID(server, HTTP_Config, "$Id$")
-
-// 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_;
-}
-
-const char *
-HTTP_Config_Info::document_root (const 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_;
-}
-
-const char *
-HTTP_Config_Info::cgi_path (const 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_;
-}
-
-const char *
-HTTP_Config_Info::user_dir (const 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_;
-}
-
-const char *
-HTTP_Config_Info::dir_index (const 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 39c76c44d1b..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
-
- const char *document_root (const char *dr_string);
- const char *cgi_path (const char *cp_string);
- const char *user_dir (const char *ud_string);
- const char *dir_index (const char *di_string);
-
- int proxy_flag (int pf);
-
-private:
- // = Data members
-
- const char *document_root_;
- // The directory root from which documents will be fetched
-
- const char *cgi_path_;
- // The directories from which to expect CGI scripts
-
- const char *user_dir_;
- // Name of the sub-directory where user Web pages are
-
- const 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 30ddff2de1c..00000000000
--- a/apps/JAWS/server/HTTP_Handler.cpp
+++ /dev/null
@@ -1,289 +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"
-
-ACE_RCSID(server, HTTP_Handler, "$Id$")
-
-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::ACE_ACCESS_FAILED:
- case ACE_Filecache_Handle::ACE_WRITE_FAILED:
- case ACE_Filecache_Handle::ACE_OPEN_FAILED:
- status_code = HTTP_Status_Code::STATUS_NOT_FOUND;
- break;
- case ACE_Filecache_Handle::ACE_COPY_FAILED:
- case ACE_Filecache_Handle::ACE_STAT_FAILED:
- case ACE_Filecache_Handle::ACE_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::ACE_ACCESS_FAILED:
- case ACE_Filecache_Handle::ACE_WRITE_FAILED:
- case ACE_Filecache_Handle::ACE_OPEN_FAILED:
- status_code = HTTP_Status_Code::STATUS_NOT_FOUND;
- break;
- case ACE_Filecache_Handle::ACE_COPY_FAILED:
- case ACE_Filecache_Handle::ACE_STAT_FAILED:
- case ACE_Filecache_Handle::ACE_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 &io;
- delete &handler;
-}
-
-// 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 0a61ae88782..00000000000
--- a/apps/JAWS/server/HTTP_Handler.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Handler.h
-//
-// = AUTHOR
-// James Hu and Irfan Pyarali
-//
-// ============================================================================
-
-#ifndef HTTP_HANDLER_H
-#define HTTP_HANDLER_H
-
-// = Forward declarations
-class Message_Block;
-class HTTP_Handler_Factory;
-
-#include "ace/Asynch_IO.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 1ad58b96451..00000000000
--- a/apps/JAWS/server/HTTP_Helpers.cpp
+++ /dev/null
@@ -1,438 +0,0 @@
-// $Id$
-
-// HTTP_Helpers.cpp -- Helper utilities for both server and client
-
-#include "HTTP_Helpers.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(server, HTTP_Helpers, "$Id$")
-
-// = 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_));
-
- if (HTTP_Helper::date_string_ == 0)
- {
- // 40 bytes is all I need.
- ACE_NEW_RETURN (HTTP_Helper::date_string_, char[40], 0);
-
- if (!HTTP_Helper::HTTP_date (HTTP_Helper::date_string_))
- {
- delete [] HTTP_Helper::date_string_;
- HTTP_Helper::date_string_ = 0;
- }
- }
- }
-
- return HTTP_Helper::date_string_;
-}
-
-const char *
-HTTP_Helper::HTTP_date (char *s)
-{
- // Return the date-string formatted per HTTP standards. Time must
- // be in UTC, so using the 'strftime' call (which obeys the locale)
- // isn't correct.
- static const char* months[] = {"Jan","Feb","Mar","Apr","May","Jun",
- "Jul","Aug","Sep","Oct","Nov","Dec"};
- static const char* days[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
-
- 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::sprintf (date_string,
- "%s, %2.2d %s %4.4d %2.2d:%2.2d:%2.2d GMT",
- days[tms.tm_wday], tms.tm_mday, months[tms.tm_mon],
- tms.tm_year + 1900, tms.tm_hour, tms.tm_min, tms.tm_sec);
- }
- 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_MT (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 68f05729e48..00000000000
--- a/apps/JAWS/server/HTTP_Helpers.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// apps
-//
-// = FILENAME
-// HTTP_Helpers.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef HTTP_HELPERS_H
-#define HTTP_HELPERS_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-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 7140b7aa21a..00000000000
--- a/apps/JAWS/server/HTTP_Request.cpp
+++ /dev/null
@@ -1,661 +0,0 @@
-// $Id$
-
-#include "ace/Message_Block.h"
-#include "HTTP_Request.h"
-#include "HTTP_Helpers.h"
-#include "HTTP_Config.h"
-
-ACE_RCSID(server, HTTP_Request, "$Id$")
-
-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 = 0; // 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 = 0;
- 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 48dac56366c..00000000000
--- a/apps/JAWS/server/HTTP_Request.h
+++ /dev/null
@@ -1,200 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Request.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef HTTP_REQUEST_H
-#define HTTP_REQUEST_H
-
-class ACE_Message_Block;
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 2e401add738..00000000000
--- a/apps/JAWS/server/HTTP_Response.cpp
+++ /dev/null
@@ -1,385 +0,0 @@
-// $Id$
-
-#include "ace/Process.h"
-#include "ace/Mem_Map.h"
-#include "ace/Log_Msg.h"
-
-#include "HTTP_Response.h"
-#include "HTTP_Request.h"
-#include "HTTP_Helpers.h"
-#include "HTTP_Config.h"
-#include "IO.h"
-
-ACE_RCSID(server, HTTP_Response, "$Id$")
-
-#if defined (ACE_JAWS_BASELINE)
-static char * const EMPTY_HEADER = "";
-#else
-static const char * const EMPTY_HEADER = "";
-#endif /* ACE_JAWS_BASELINE */
-
-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 = 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",
- "text/html");
-
- struct stat file_stat;
- // If possible, add the Content-length field to the header.
- // @@ Note that using 'ACE_OS::stat' is a hack. Normally, a
- // web browser will have a 'virtual' file system. In a VFS,
- // 'stat' might not reference the correct location.
- if ((this->request_.type () == HTTP_Request::GET) &&
- (ACE_OS::stat (this->request_.path (), &file_stat) == 0))
- {
- HTTP_HEADER_LENGTH +=
- ACE_OS::sprintf (HTTP_HEADER+HTTP_HEADER_LENGTH,
- "Content-length: %u\r\n", file_stat.st_size);
- }
-
- // Complete header with empty line and adjust header length.
- HTTP_HEADER[HTTP_HEADER_LENGTH++] = '\r';
- HTTP_HEADER[HTTP_HEADER_LENGTH++] = '\n';
- }
-#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 2bd8d21fbc0..00000000000
--- a/apps/JAWS/server/HTTP_Response.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Response.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef 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
-
-#if defined (ACE_JAWS_BASELINE)
- char *HTTP_HEADER;
-#else
- const char *HTTP_HEADER;
-#endif
- const 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 146a7c04d8b..00000000000
--- a/apps/JAWS/server/HTTP_Server.cpp
+++ /dev/null
@@ -1,395 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#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"
-
-ACE_RCSID(server, HTTP_Server, "$Id$")
-
-// 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 8f683297a96..00000000000
--- a/apps/JAWS/server/HTTP_Server.h
+++ /dev/null
@@ -1,141 +0,0 @@
-// -*- C++ -*-
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// HTTP_Server.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef HTTP_SERVER_H
-#define HTTP_SERVER_H
-
-#include "ace/Service_Object.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 ACE_Svc_Export 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_SVC_FACTORY_DECLARE (HTTP_Server)
-
-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 aec6da1898c..00000000000
--- a/apps/JAWS/server/IO.cpp
+++ /dev/null
@@ -1,413 +0,0 @@
-// $Id$
-
-#include "ace/Message_Block.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Filecache.h"
-#include "IO.h"
-#include "HTTP_Helpers.h"
-
-ACE_RCSID(server, IO, "$Id$")
-
-JAWS_IO::JAWS_IO (void)
- : handler_ (0)
-{
-}
-
-JAWS_IO::~JAWS_IO (void)
-{
-}
-
-void
-JAWS_IO::handler (JAWS_IO_Handler *handler)
-{
- this->handler_ = handler;
-}
-
-JAWS_Synch_IO::JAWS_Synch_IO (void)
- : handle_ (ACE_INVALID_HANDLE)
-{
-}
-
-JAWS_Synch_IO::~JAWS_Synch_IO (void)
-{
- ACE_OS::closesocket (this->handle_);
-}
-
-ACE_HANDLE
-JAWS_Synch_IO::handle (void) const
-{
- return this->handle_;
-}
-
-void
-JAWS_Synch_IO::handle (ACE_HANDLE handle)
-{
- this->handle_ = 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::ACE_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::ACE_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::ACE_SUCCESS)
- {
-#if defined (ACE_JAWS_BASELINE) || defined (ACE_WIN32)
- 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?
- iovec iov[3];
- int iovcnt = 0;
- if (header_size > 0)
- {
- iov[iovcnt].iov_base = ACE_const_cast(char*, header);
- iov[iovcnt].iov_len = header_size;
- iovcnt++;
- }
- if (handle.size () > 0)
- {
- iov[iovcnt].iov_base = ACE_reinterpret_cast(char*,handle.address ());
- iov[iovcnt].iov_len = handle.size ();
- iovcnt++;
- }
- if (trailer_size > 0)
- {
- iov[iovcnt].iov_base = ACE_const_cast(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::ACE_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::ACE_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::ACE_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, ACE_NOMAP));
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::ACE_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::ACE_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, ACE_NOMAP);
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::ACE_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::ACE_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 baac80de4ac..00000000000
--- a/apps/JAWS/server/IO.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef JAWS_IO_H
-#define JAWS_IO_H
-
-class ACE_Message_Block;
-class JAWS_IO_Handler;
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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);
-
- virtual void handle (ACE_HANDLE h) = 0;
- virtual ACE_HANDLE handle (void) const = 0;
-
- // 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:
- 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);
-
- virtual void handle (ACE_HANDLE h);
- virtual ACE_HANDLE handle (void) const;
-
- 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);
-
- ACE_HANDLE handle_;
-};
-
-// 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);
-
- virtual void handle (ACE_HANDLE h) { ACE_Handler::handle (h); };
- virtual ACE_HANDLE handle (void) const { return ACE_Handler::handle (); };
-
- 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 4d7388d6f8a..00000000000
--- a/apps/JAWS/server/JAWS_Concurrency.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// $Id$
-
-#include "JAWS_Concurrency.h"
-
-ACE_RCSID(server, JAWS_Concurrency, "$Id$")
-
-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 39b4700df72..00000000000
--- a/apps/JAWS/server/JAWS_Concurrency.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CONCURRENCY_H
-#define JAWS_CONCURRENCY_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Task.h"
-#include "IO.h"
-
-class JAWS_Concurrency_Base : public ACE_Task<ACE_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 f2ea3ecfbe9..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// $Id$
-
-#include "JAWS_Pipeline.h"
-
-ACE_RCSID(server, JAWS_Pipeline, "$Id$")
-
-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 bac2acc6f91..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_PIPELINE_H
-#define JAWS_PIPELINE_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 da5605558a2..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline_Handler.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// $Id$
-
-#ifndef JAWS_PIPELINE_HANDLER_CPP
-#define JAWS_PIPELINE_HANDLER_CPP
-
-#include "JAWS_Pipeline_Handler.h"
-
-ACE_RCSID(server, JAWS_Pipeline_Handler, "$Id$")
-
-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 7e9becb6f5e..00000000000
--- a/apps/JAWS/server/JAWS_Pipeline_Handler.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef 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 48eb16885a0..00000000000
--- a/apps/JAWS/server/Makefile
+++ /dev/null
@@ -1,1366 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS)
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN2 = main
-LIB2 = libJAWS.a
-SHLIB2 = libJAWS.$(SOEXT)
-
-FILES = \
- HTTP_Server \
- HTTP_Config \
- HTTP_Handler \
- HTTP_Helpers \
- JAWS_Pipeline \
- JAWS_Concurrency \
- HTTP_Request \
- HTTP_Response \
- Parse_Headers \
- IO
-
-LDLIBS = # -lJAWS
-
-PSRC = $(addsuffix .cpp,$(BIN))
-LSRC = $(addsuffix .cpp,$(FILES))
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Utils,$(findstring Utils,$(ACE_BUILD_COMPONENTS)))
- ifneq (FOR_TAO,$(ACE_COMPONENTS))
- BIN = $(BIN2)
- LIB = $(LIB2)
- SHLIB = $(SHLIB2)
- endif # ! FOR_TAO
-endif # ! Utils
-
-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
-#----------------------------------------------------------------------------
-
-ifeq (Utils,$(findstring Utils,$(ACE_BUILD_COMPONENTS)))
- ifneq (FOR_TAO,$(ACE_COMPONENTS))
- ifeq ($(static_libs_only),1)
-$(VBIN): $(VLIB)
- else
-$(VBIN): $(VSHLIB)
- endif
- endif # ! FOR_TAO
-endif # ! Utils
-
-#----------------------------------------------------------------------------
-# 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/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.cpp \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(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/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/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_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp \
- $(ACE_ROOT)/ace/Proactor.h \
- $(ACE_ROOT)/ace/Asynch_IO_Impl.h \
- $(ACE_ROOT)/ace/Asynch_IO_Impl.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Timer_List.h \
- $(ACE_ROOT)/ace/Timer_List_T.h \
- $(ACE_ROOT)/ace/Timer_List_T.cpp \
- $(ACE_ROOT)/ace/Timer_Heap.h \
- $(ACE_ROOT)/ace/Timer_Heap_T.h \
- $(ACE_ROOT)/ace/Timer_Heap_T.cpp \
- $(ACE_ROOT)/ace/Timer_Wheel.h \
- $(ACE_ROOT)/ace/Timer_Wheel_T.h \
- $(ACE_ROOT)/ace/Timer_Wheel_T.cpp \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i 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/SString.h \
- $(ACE_ROOT)/ace/SString.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/Synch_Options.i \
- $(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/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.cpp 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/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.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/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 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/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.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/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(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/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp 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/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.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 \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp 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/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp 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/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Handle_Set.h \
- $(ACE_ROOT)/ace/Handle_Set.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Process.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- HTTP_Response.h HTTP_Request.h Parse_Headers.h HTTP_Helpers.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp 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 \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- Parse_Headers.h
-
-.obj/IO.o .obj/IO.so .shobj/IO.o .shobj/IO.so: IO.cpp $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(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/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h HTTP_Helpers.h
-
-.obj/main.o .obj/main.so .shobj/main.o .shobj/main.so: main.cpp $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Filecache.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.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/Memory_Pool.i HTTP_Server.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(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/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(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/Asynch_IO.h HTTP_Handler.h \
- HTTP_Request.h Parse_Headers.h HTTP_Response.h IO.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS/server/Makefile.bor b/apps/JAWS/server/Makefile.bor
deleted file mode 100644
index 037d2b2b8fc..00000000000
--- a/apps/JAWS/server/Makefile.bor
+++ /dev/null
@@ -1,17 +0,0 @@
-
-NAME = main
-OBJFILES = \
- $(OBJDIR)\HTTP_Server.obj \
- $(OBJDIR)\HTTP_Config.obj \
- $(OBJDIR)\HTTP_Handler.obj \
- $(OBJDIR)\HTTP_Helpers.obj \
- $(OBJDIR)\JAWS_Pipeline.obj \
- $(OBJDIR)\JAWS_Concurrency.obj \
- $(OBJDIR)\HTTP_Request.obj \
- $(OBJDIR)\HTTP_Response.obj \
- $(OBJDIR)\Parse_Headers.obj \
- $(OBJDIR)\IO.obj \
- $(OBJDIR)\main.obj
-
-!include <$(ACE_ROOT)\apps\build.bor>
-
diff --git a/apps/JAWS/server/Parse_Headers.cpp b/apps/JAWS/server/Parse_Headers.cpp
deleted file mode 100644
index dc94b1354d9..00000000000
--- a/apps/JAWS/server/Parse_Headers.cpp
+++ /dev/null
@@ -1,358 +0,0 @@
-// $Id$
-
-#include "ace/Log_Msg.h"
-
-#include "Parse_Headers.h"
-
-ACE_RCSID(server, Parse_Headers, "$Id$")
-
-// 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 = 0;
- 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 68274bd442b..00000000000
--- a/apps/JAWS/server/Parse_Headers.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// Parse_Headers.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef PARSE_HEADERS_H
-#define PARSE_HEADERS_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-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 e35ddeb148e..00000000000
--- a/apps/JAWS/server/jaws.dsp
+++ /dev/null
@@ -1,178 +0,0 @@
-# Microsoft Developer Studio Project File - Name="jaws" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.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 AllowPerConfigDependencies 0
-# 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" /D ACE_HAS_SVC_DLL=1 /FD /c
-# SUBTRACT CPP /YX
-# 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" /D ACE_HAS_SVC_DLL=1 /FD /c
-# SUBTRACT CPP /YX
-# 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 3ffccf6207c..00000000000
--- a/apps/JAWS/server/jaws.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.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/main.cpp b/apps/JAWS/server/main.cpp
deleted file mode 100644
index 0d04f565a06..00000000000
--- a/apps/JAWS/server/main.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-// $Id$
-
-#include "ace/Service_Config.h"
-#include "ace/Reactor.h"
-#include "ace/Filecache.h"
-
-#include "HTTP_Server.h"
-
-ACE_RCSID(server, main, "$Id$")
-
-ACE_STATIC_SVC_REQUIRE(HTTP_Server)
-
-#ifdef ACE_HAS_SIG_C_FUNC
-extern "C"
-{
-#endif /* ACE_HAS_SIG_C_FUNC */
-
- // call exit() so that static destructors get called
-static void
-handler (int)
-{
- delete (ACE_Filecache *) ACE_Filecache::instance ();
- ACE_OS::exit (0);
-}
-
-#ifdef ACE_HAS_SIG_C_FUNC
-}
-#endif /* ACE_HAS_SIG_C_FUNC */
-
-// 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, ACE_DEFAULT_LOGGER_KEY, 0) != 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 5f34c06aaa1..00000000000
--- a/apps/JAWS/server/svc.conf
+++ /dev/null
@@ -1,44 +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"
-#
-
-#
-# Example for using HTTP_Server as a dynamic service
-#
-# For NT.
-#dynamic HTTP_Server Service_Object * ./jaws.exe:_make_HTTP_Server() "HTTP_Server -p 5432 -n 20 -i SYNCH -t POOL -b 50 -f THR_NEW_LWP"
-
-#
-# For UNIX platforms.
-#dynamic HTTP_Server Service_Object * ./main:_make_HTTP_Server() "HTTP_Server -p 5432 -n 20 -i SYNCH -t POOL -b 50 -f THR_NEW_LWP"
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 c4663684acf..00000000000
--- a/apps/JAWS/stress_testing/Makefile
+++ /dev/null
@@ -1,589 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS) client
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = http_tester benchd
-
-FILES = \
- util \
- connection \
- stats \
- cp
-
-SRC = $(addsuffix .cpp,$(FILES))
-OBJ = $(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.
-
-
-.obj/util.o .obj/util.so .shobj/util.o .shobj/util.so: util.cpp util.h connection.h global.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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 \
- $(ACE_ROOT)/ace/Pipe.h \
- $(ACE_ROOT)/ace/Pipe.i \
- $(ACE_ROOT)/ace/Profile_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Profile_Timer.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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/Synch_T.cpp \
- $(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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.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 \
- $(ACE_ROOT)/ace/Thread_Manager.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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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
-
-.obj/connection.o .obj/connection.so .shobj/connection.o .shobj/connection.so: connection.cpp connection.h global.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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 \
- $(ACE_ROOT)/ace/Pipe.h \
- $(ACE_ROOT)/ace/Pipe.i \
- $(ACE_ROOT)/ace/Profile_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Profile_Timer.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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/Synch_T.cpp \
- $(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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.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 \
- $(ACE_ROOT)/ace/Thread_Manager.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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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
-
-.obj/stats.o .obj/stats.so .shobj/stats.o .shobj/stats.so: stats.cpp stats.h global.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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 \
- $(ACE_ROOT)/ace/Pipe.h \
- $(ACE_ROOT)/ace/Pipe.i \
- $(ACE_ROOT)/ace/Profile_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Profile_Timer.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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/Synch_T.cpp \
- $(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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.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 \
- $(ACE_ROOT)/ace/Thread_Manager.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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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
-
-.obj/cp.o .obj/cp.so .shobj/cp.o .shobj/cp.so: cp.cpp cp.h util.h connection.h global.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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 \
- $(ACE_ROOT)/ace/Pipe.h \
- $(ACE_ROOT)/ace/Pipe.i \
- $(ACE_ROOT)/ace/Profile_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Profile_Timer.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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/Synch_T.cpp \
- $(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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.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 \
- $(ACE_ROOT)/ace/Thread_Manager.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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- stats.h
-
-# IF YOU PUT ANYTHING HERE 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 2c6dfcbd526..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"
-
-ACE_RCSID(stress_testing, benchd, "$Id$")
-
-#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/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 a243fdd01d5..00000000000
--- a/apps/JAWS/stress_testing/connection.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-// $Id$
-
-#include "connection.h"
-
-ACE_RCSID(stress_testing, connection, "$Id$")
-
-// 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 db37ff07f35..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);
- int read(void *buffer, size_t maxlen, unsigned int timeout_seconds = 60);
- int write(const void *buffer, size_t maxlen, unsigned int timeout_seconds = 60);
- int write_n(const void *buffer, size_t len, unsigned int timeout_seconds = 60);
- int 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 4829735aaa8..00000000000
--- a/apps/JAWS/stress_testing/cp.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// $Id$
-
-#include "cp.h"
-
-ACE_RCSID(stress_testing, cp, "$Id$")
-
-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 a0ec4a9757d..00000000000
--- a/apps/JAWS/stress_testing/global.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// $Id$
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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"
-
-// FUZZ: disable check_for_math_include
-#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 eb086262317..00000000000
--- a/apps/JAWS/stress_testing/http_tester.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-// $Id$
-
-#include "client.h"
-
-ACE_RCSID(stress_testing, http_tester, "$Id$")
-
-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.0 * 1000.0); // 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);
- if (id[0] == '#') continue;
- 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 6e71b91c014..00000000000
--- a/apps/JAWS/stress_testing/stats.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// $Id$
-
-#include "stats.h"
-
-ACE_RCSID(stress_testing, stats, "$Id$")
-
-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 29cd92ef143..00000000000
--- a/apps/JAWS/stress_testing/util.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id$
-
-#include "util.h"
-
-ACE_RCSID(stress_testing, util, "$Id$")
-
-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/JAWS2/1000K.html b/apps/JAWS2/1000K.html
deleted file mode 100644
index a2b55a71a67..00000000000
--- a/apps/JAWS2/1000K.html
+++ /dev/null
@@ -1,20001 +0,0 @@
-$Id$
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
diff --git a/apps/JAWS2/100K.html b/apps/JAWS2/100K.html
deleted file mode 100644
index 1ba74658d4a..00000000000
--- a/apps/JAWS2/100K.html
+++ /dev/null
@@ -1,2001 +0,0 @@
-$Id$
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
diff --git a/apps/JAWS2/500K.html b/apps/JAWS2/500K.html
deleted file mode 100644
index c8bcc1e02b8..00000000000
--- a/apps/JAWS2/500K.html
+++ /dev/null
@@ -1,10001 +0,0 @@
-$Id$
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
diff --git a/apps/JAWS2/50K.html b/apps/JAWS2/50K.html
deleted file mode 100644
index 58e7a5597f2..00000000000
--- a/apps/JAWS2/50K.html
+++ /dev/null
@@ -1,1001 +0,0 @@
-$Id$
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
diff --git a/apps/JAWS2/5K.html b/apps/JAWS2/5K.html
deleted file mode 100644
index 0bed18fe951..00000000000
--- a/apps/JAWS2/5K.html
+++ /dev/null
@@ -1,101 +0,0 @@
-$Id$
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
-1010101010101010101010101010101010101010101010101
diff --git a/apps/JAWS2/HTTPU/HTTPU.DSP b/apps/JAWS2/HTTPU/HTTPU.DSP
deleted file mode 100644
index 815e5d165a6..00000000000
--- a/apps/JAWS2/HTTPU/HTTPU.DSP
+++ /dev/null
@@ -1,171 +0,0 @@
-# Microsoft Developer Studio Project File - Name="HTTPU Library" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=HTTPU Library - 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 "HTTPU.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 "HTTPU.MAK" CFG="HTTPU Library - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "HTTPU Library - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "HTTPU Library - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "HTTPU Library - 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 /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../" /I "../" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D HTTPU_HAS_DLL=1 /D "HTTPU_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# 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:windows /dll /machine:I386
-# ADD LINK32 ace.lib jaws.lib /nologo /subsystem:windows /dll /machine:I386 /out:"..\..\..\bin\HTTPU.dll" /libpath:"../../../ace" /libpath:"../JAWS"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "HTTPU Library - 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 /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 "../" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D HTTPU_HAS_DLL=1 /D "HTTPU_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
-# 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 jawsd.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"..\..\..\bin\HTTPUd.dll" /pdbtype:sept /libpath:"../../../ace" /libpath:"../JAWS"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "HTTPU Library - Win32 Release"
-# Name "HTTPU Library - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\http_base.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_headers.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_status.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_http_request.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_http_response.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_url.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\http_base.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\http_headers.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_status.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_http_request.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_http_response.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\parse_url.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/apps/JAWS2/HTTPU/HTTPU.DSW b/apps/JAWS2/HTTPU/HTTPU.DSW
deleted file mode 100644
index ab7d8c3781a..00000000000
--- a/apps/JAWS2/HTTPU/HTTPU.DSW
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "HTTPU"=.\HTTPU.DSP - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/JAWS2/HTTPU/Makefile b/apps/JAWS2/HTTPU/Makefile
deleted file mode 100644
index 6f749bceafd..00000000000
--- a/apps/JAWS2/HTTPU/Makefile
+++ /dev/null
@@ -1,780 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS) client
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-#BIN = test_parse_url test_parse_http_request test_http_headers \
-# test_http_request test_http_response
-
-LIB = libHTTPU.a
-SHLIB = libHTTPU.so
-FILES = parse_url parse_http_request parse_http_response \
- http_request http_response http_base http_status \
- http_headers
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(addsuffix .o,$(FILES))
-
-CPPFLAGS += -I..
-
-LDLIBS = -lhttpu -laoutil
-BUILD = $(VSHLIB) $(SHLIBA) $(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.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/parse_url.o .obj/parse_url.so .shobj/parse_url.o .shobj/parse_url.so: parse_url.cpp $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- ../HTTPU/parse_url.h ../HTTPU/http_export.h
-
-.obj/parse_http_request.o .obj/parse_http_request.so .shobj/parse_http_request.o .shobj/parse_http_request.so: parse_http_request.cpp \
- ../HTTPU/parse_http_request.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i ../HTTPU/http_headers.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(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/Parse_Headers.h ../JAWS/Export.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../JAWS/Headers.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp ../HTTPU/http_export.h \
- ../HTTPU/http_headers.i ../HTTPU/parse_http_request.i
-
-.obj/parse_http_response.o .obj/parse_http_response.so .shobj/parse_http_response.o .shobj/parse_http_response.so: parse_http_response.cpp \
- ../HTTPU/parse_http_response.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i ../HTTPU/http_export.h \
- ../HTTPU/parse_http_response.i
-
-.obj/http_request.o .obj/http_request.so .shobj/http_request.o .shobj/http_request.so: http_request.cpp ../HTTPU/http_request.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- ../JAWS/Parse_Headers.h ../JAWS/Export.h \
- $(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/Headers.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp ../HTTPU/http_export.h \
- ../HTTPU/http_base.h ../HTTPU/http_status.h ../HTTPU/http_status.i \
- ../HTTPU/http_headers.h $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i ../HTTPU/http_headers.i \
- ../HTTPU/http_base.i ../HTTPU/parse_http_request.h \
- ../HTTPU/parse_http_request.i ../HTTPU/parse_url.h \
- ../HTTPU/http_request.i
-
-.obj/http_response.o .obj/http_response.so .shobj/http_response.o .shobj/http_response.so: http_response.cpp ../HTTPU/http_response.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- ../JAWS/Parse_Headers.h ../JAWS/Export.h \
- $(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/Headers.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp ../HTTPU/http_export.h \
- ../HTTPU/http_base.h ../HTTPU/http_status.h ../HTTPU/http_status.i \
- ../HTTPU/http_headers.h $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i ../HTTPU/http_headers.i \
- ../HTTPU/http_base.i ../HTTPU/parse_http_response.h \
- ../HTTPU/parse_http_response.i ../HTTPU/http_response.i
-
-.obj/http_base.o .obj/http_base.so .shobj/http_base.o .shobj/http_base.so: http_base.cpp ../JAWS/Parse_Headers.h ../JAWS/Export.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../JAWS/Headers.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp ../HTTPU/http_base.h \
- ../HTTPU/http_export.h ../HTTPU/http_status.h ../HTTPU/http_status.i \
- ../HTTPU/http_headers.h $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i ../HTTPU/http_headers.i \
- ../HTTPU/http_base.i
-
-.obj/http_status.o .obj/http_status.so .shobj/http_status.o .shobj/http_status.so: http_status.cpp ../HTTPU/http_status.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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 \
- ../HTTPU/http_export.h ../HTTPU/http_status.i
-
-.obj/http_headers.o .obj/http_headers.so .shobj/http_headers.o .shobj/http_headers.so: http_headers.cpp $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i ../HTTPU/http_headers.h \
- $(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/Parse_Headers.h ../JAWS/Export.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../JAWS/Headers.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp ../HTTPU/http_export.h \
- ../HTTPU/http_headers.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS2/HTTPU/http_base.cpp b/apps/JAWS2/HTTPU/http_base.cpp
deleted file mode 100644
index 3a653e5feef..00000000000
--- a/apps/JAWS2/HTTPU/http_base.cpp
+++ /dev/null
@@ -1,323 +0,0 @@
-// $Id$
-
-#include "JAWS/Parse_Headers.h"
-#include "HTTPU/http_base.h"
-#include "HTTPU/http_headers.h"
-
-int
-HTTP_Base::receive (ACE_Message_Block &mb)
-{
- if (this->line () == 0)
- {
- if (this->extract_line (mb) == 0)
- return 0;
- if (this->status () != STATUS_OK)
- return 1;
-
- // Call into the receive hook.
- this->parse_line ();
- if (this->status_ == STATUS_INTERNAL_SERVER_ERROR || this->no_headers_)
- return 1;
- }
-
- // Parse headers
- JAWS_Parse_Headers *parser = JAWS_Parse_Headers_Singleton::instance ();
- int ret = parser->parse_headers (&(this->info_), mb);
-
- switch (this->info_.status ())
- {
- case JAWS_Header_Info::OK:
- break;
-
- case JAWS_Header_Info::NO_MEMORY:
- case JAWS_Header_Info::TOO_LONG:
- default:
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- break;
- }
-
- return ret;
-}
-
-int
-HTTP_Base::deliver (ACE_Message_Block &mb)
-{
- JAWS_Header_Data *data = 0;
-
- // Deliver this outgoing request.
- // We do this by building the request up and writing it into the
- // message block.
- if (this->mb_ == 0)
- {
- // Make our Message Block big enough to hold a header name and
- // header value
- this->mb_ = new ACE_Message_Block (16384); // MAGIC! 2 x 8192
- if (this->mb_ == 0)
- {
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- return -1;
- }
-
- // Call into the deliver hook
- int r = this->espouse_line ();
- if (r == -1)
- return -1;
-
- if (r == 1)
- this->deliver_state_ = 2;
-
- this->iter_.first ();
- }
-
- while (this->deliver_state_ < 3)
- {
- // Deliver whatever is currently held in this->mb_.
- size_t sz = (mb.space () < this->mb_->length ()
- ? mb.space ()
- : this->mb_->length ());
-
- if (sz > 0)
- {
- mb.copy (this->mb_->rd_ptr (), sz);
- this->mb_->rd_ptr (sz);
- }
-
- if (mb.space () == 0)
- return 0;
-
- // Arriving here means this->mb_ has been emptied.
- this->mb_->crunch ();
-
- switch (this->deliver_state_)
- {
- case 0: // Obtain the next header data // Deliver a header name
- this->deliver_state_ = this->deliver_header_name (data);
- break;
-
- case 1: // Deliver a header value
- this->deliver_state_ = this->deliver_header_value (data);
- break;
-
- case 2: // Finished!
- delete this->mb_;
- this->mb_ = 0;
- this->deliver_state_ = 3;
- }
- }
-
- return 1;
-}
-
-int
-HTTP_Base::receive_payload (ACE_Message_Block &mb)
-{
- int result = 0;
-
- if (this->payload_.space () < mb.length ())
- result = this->payload_.size (this->payload_.size () +
- mb.length () - this->payload_.space ());
-
- if (result == 0)
- {
- this->payload_.copy (mb.rd_ptr (), mb.length ());
- mb.rd_ptr (mb.wr_ptr ());
- mb.crunch ();
- }
- else
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
-
- return result;
-}
-
-int
-HTTP_Base::receive_payload (ACE_Message_Block &mb, long length)
-{
- int result = 0;
-
- if (length == -1)
- return this->receive_payload (mb);
-
- if (this->payload_.size () < (unsigned long) length)
- result = this->payload_.size (length);
-
- if (result == -1)
- {
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- return -1;
- }
-
- if (this->payload_.space () >= mb.length ())
- {
- this->payload_.copy (mb.rd_ptr (), mb.length ());
- mb.rd_ptr (mb.wr_ptr ());
- mb.crunch ();
- }
- else
- {
- size_t space = this->payload_.space ();
- this->payload_.copy (mb.rd_ptr (), space);
- mb.rd_ptr (space);
- }
-
- return this->payload_.length () == (unsigned long) length;
-}
-
-const char *
-HTTP_Base::payload (void)
-{
- return this->payload_.rd_ptr ();
-}
-
-unsigned long
-HTTP_Base::payload_size (void)
-{
- return this->payload_.length ();
-}
-
-int
-HTTP_Base::build_headers (JAWS_Headers *new_headers)
-{
- JAWS_Header_Data *data = 0;
- JAWS_Header_Data *data2 = 0;
- JAWS_Header_Table_Iterator iter (*new_headers);
-
- iter.first ();
- while (! iter.done ())
- {
- data = iter.next ();
- if (data == 0)
- {
- iter.advance ();
- continue;
- }
-
- if (data->header_type () == HTTP_HCodes::REPLACE_HEADER)
- this->headers ()->remove_all (data->header_name ());
- else if (data->header_type () == HTTP_HCodes::INSERT_HEADER
- || data->header_type () == HTTP_HCodes::APPENDTO_HEADER)
- {
- data2 = this->headers ()->find (data->header_name ());
- if (data2 != 0)
- {
- if (data->header_type () == HTTP_HCodes::APPENDTO_HEADER)
- {
- // Append to existing header
- size_t len
- = ACE_OS::strlen (data->header_value ())
- + ACE_OS::strlen (data2->header_value ())
- + 3; /* for comma, space, and nul */
- char *buf = new char [len];
- if (buf == 0)
- {
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- return -1;
- }
- ACE_OS::sprintf (buf, "%s, %s",
- data2->header_value (),
- data->header_value ());
- data2->header_value (buf);
- delete [] buf;
- }
-
- // Only insert if it isn't already present
- iter.advance ();
- continue;
- }
- }
-
- data2 = new JAWS_Header_Data (data->header_name (),
- data->header_value ());
- if (data2 == 0 || data2->header_name () == 0
- || data2->header_value () == 0)
- {
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- return -1;
- }
- this->headers ()->insert (data2);
-
- iter.advance ();
- }
-
- return 0;
-}
-
-int
-HTTP_Base::deliver_header_name (JAWS_Header_Data *&data)
-{
- data = 0;
-
- for (;;)
- {
- if ((data = this->iter_.next ()) == 0)
- {
- // No more headers, deliver final "\r\n"
- this->mb_->copy ("\r\n", 2);
- return 2;
- }
-
- if (data->header_name ())
- break;
-
- this->iter_.advance ();
- }
-
- // Assume the following lines will always succeed.
- this->mb_->copy (data->header_name ());
- this->mb_->wr_ptr (this->mb_->wr_ptr () - 1);
- this->mb_->copy (": ", 2);
-
- return 1;
-}
-
-int
-HTTP_Base::deliver_header_value (JAWS_Header_Data *&data)
-{
- // Assume the following line will always succeed.
- if (data->header_value ())
- {
- this->mb_->copy (data->header_value ());
- this->mb_->wr_ptr (this->mb_->wr_ptr () - 1);
- }
- this->mb_->copy ("\r\n", 2);
-
- this->iter_.advance ();
- return 0;
-}
-
-
-int
-HTTP_Base::extract_line (ACE_Message_Block &mb)
-{
- JAWS_Parse_Headers *parser = JAWS_Parse_Headers_Singleton::instance ();
- char *p = parser->skipset ("\n", mb.rd_ptr (), mb.wr_ptr ());
- if (p == mb.wr_ptr ())
- return 0;
-
- this->status_ = STATUS_OK;
-
- *p = '\0';
- if (p[-1] == '\r')
- p[-1] = '\0';
-
- this->line_ = ACE_OS::strdup (mb.rd_ptr ());
- if (this->line_ == 0)
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
-
- mb.rd_ptr (p+1);
- this->info_.end_of_line (1);
- return 1;
-}
-
-void
-HTTP_Base::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG, "%s\n", this->line ()));
- this->info_.dump ();
- ACE_DEBUG ((LM_DEBUG, "STATUS IS %d %s\n",
- this->status (),
- (*HTTP_SCode::instance ())[this->status ()]));
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/http_base.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/apps/JAWS2/HTTPU/http_base.h b/apps/JAWS2/HTTPU/http_base.h
deleted file mode 100644
index 5f5486f888d..00000000000
--- a/apps/JAWS2/HTTPU/http_base.h
+++ /dev/null
@@ -1,87 +0,0 @@
-// $Id$
-
-#ifndef HTTPU_HTTP_BASE_H
-#define HTTPU_HTTP_BASE_H
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Parse_Headers.h"
-#include "HTTPU/http_export.h"
-#include "HTTPU/http_status.h"
-#include "HTTPU/http_headers.h"
-
-class HTTPU_Export HTTP_Base : public HTTP_SCode_Base
-{
-public:
-
- HTTP_Base (void);
- virtual ~HTTP_Base (void);
-
- virtual int receive (ACE_Message_Block &mb);
- virtual int deliver (ACE_Message_Block &mb);
-
- virtual int receive_payload (ACE_Message_Block &mb);
- virtual int receive_payload (ACE_Message_Block &mb, long length);
-
- const char * payload (void);
- unsigned long payload_size (void);
-
- int status (void) const;
- const char *line (void) const;
- HTTP_Headers *http_headers (void);
- JAWS_Headers *headers (void);
-
- int build_headers (JAWS_Headers *new_headers);
- // takes a set of new headers that will replace existing headers or
- // be added to the header list if there is no corresponding one to replace.
-
- void dump (void);
-
-protected:
-
- virtual void parse_line (void) = 0;
- // Hook into the receive function to do specialized parsing of initial line.
- // Sets the status_ variable.
-
- virtual int espouse_line (void) = 0;
- // Hook into the deliver function to do specialized initial line creation.
- // Returns 0 for success and -1 for failure.
-
- int deliver_header_name (JAWS_Header_Data *&data);
- // Returns the next deliver state
-
- int deliver_header_value (JAWS_Header_Data *&data);
- // Returns the next deliver state
-
- virtual int extract_line (ACE_Message_Block &mb);
- // The first line of a request or a response.
- // Return 0 if more data needed.
- // Return 1 if line successfully parsed.
-
-protected:
-
- int status_;
- char *line_;
- int deliver_state_;
- int no_headers_;
- HTTP_Headers info_;
- JAWS_Header_Table_Iterator iter_;
- ACE_Message_Block *mb_;
- ACE_Message_Block payload_;
-
-};
-
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/http_base.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#endif /* !defined (HTTPU_HTTP_BASE_H) */
diff --git a/apps/JAWS2/HTTPU/http_base.i b/apps/JAWS2/HTTPU/http_base.i
deleted file mode 100644
index 3c862c5b5fb..00000000000
--- a/apps/JAWS2/HTTPU/http_base.i
+++ /dev/null
@@ -1,53 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE
-HTTP_Base::HTTP_Base (void)
- : status_ (200),
- line_ (0),
- deliver_state_ (0),
- no_headers_ (0),
- iter_ (*(this->info_.table ())),
- mb_ (0)
-{
-}
-
-ACE_INLINE
-HTTP_Base::~HTTP_Base (void)
-{
- if (this->line_)
- ACE_OS::free (this->line_);
- if (this->mb_)
- delete this->mb_;
- this->line_ = 0;
- this->mb_ = 0;
-}
-
-ACE_INLINE int
-HTTP_Base::status (void) const
-{
- return this->status_;
-}
-
-ACE_INLINE const char *
-HTTP_Base::line (void) const
-{
- return this->line_;
-}
-
-ACE_INLINE HTTP_Headers *
-HTTP_Base::http_headers (void)
-{
- return &(this->info_);
-}
-
-ACE_INLINE JAWS_Headers *
-HTTP_Base::headers (void)
-{
- return this->info_.table ();
-}
diff --git a/apps/JAWS2/HTTPU/http_export.h b/apps/JAWS2/HTTPU/http_export.h
deleted file mode 100644
index 84a819c8932..00000000000
--- a/apps/JAWS2/HTTPU/http_export.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// $Id$
-
-// Definition for Win32 Export directives.
-// This file is generated automatically by
-// ${TAO_ROOT}/TAO_IDL/GenExportH.BAT
-// ------------------------------
-#ifndef HTTPU_EXPORT_H
-#define HTTPU_EXPORT_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (HTTPU_HAS_DLL)
-# if (HTTPU_HAS_DLL == 1)
-# if defined (HTTPU_BUILD_DLL)
-# define HTTPU_Export ACE_Proper_Export_Flag
-# define HTTPU_SINGLETON_DECLARATION(T) \
- ACE_EXPORT_SINGLETON_DECLARATION (T)
-# else
-# define HTTPU_Export ACE_Proper_Import_Flag
-# define HTTPU_SINGLETON_DECLARATION(T) \
- ACE_IMPORT_SINGLETON_DECLARATION (T)
-# endif /* HTTPU_BUILD_DLL */
-# else
-# define HTTPU_Export
-# define HTTPU_SINGLETON_DECLARATION(T)
-# endif /* ! HTTPU_HAS_DLL == 1 */
-#else
-# define HTTPU_Export
-# define HTTPU_SINGLETON_DECLARATION(T)
-#endif /* HTTPU_HAS_DLL */
-
-#endif /* HTTPU_EXPORT_H */
- // End of auto generated file.
-
diff --git a/apps/JAWS2/HTTPU/http_headers.cpp b/apps/JAWS2/HTTPU/http_headers.cpp
deleted file mode 100644
index 41aadd09824..00000000000
--- a/apps/JAWS2/HTTPU/http_headers.cpp
+++ /dev/null
@@ -1,161 +0,0 @@
-// $Id$
-
-#include "ace/RB_Tree.h"
-#include "HTTPU/http_headers.h"
-
-HTTP_Hdr_Node
-
- HTTP_HCodes::HTTP ("HTTP", "HTTP%s %s"),
- HTTP_HCodes::ACCEPT ("Accept", "Accept: %s\r\n"),
- HTTP_HCodes::ACCEPTCHARSET ("Accept-Charset", "Accept-Charset: %s\r\n"),
- HTTP_HCodes::ACCEPTENCODING ("Accept-Encoding", "Accept-Encoding: %s\r\n"),
- HTTP_HCodes::ACCEPTLANGUAGE ("Accept-Language", "Accept-Language: %s\r\n"),
- HTTP_HCodes::ACCEPTRANGES ("Accept-Ranges", "Accept-Ranges: %s\r\n"),
- HTTP_HCodes::AGE ("Age", "Age: %s\r\n"),
- HTTP_HCodes::ALLOW ("Allow", "Allow: %s\r\n"),
- HTTP_HCodes::AUTHORIZATION ("Authorization", "Authorization: %s\r\n"),
- HTTP_HCodes::CACHECONTROL ("Cache-Control", "Cache-Control: %s\r\n"),
- HTTP_HCodes::CONNECTION ("Connection", "Connection: %s\r\n"),
- HTTP_HCodes::CONTENTENCODING ("Content-Encoding",
- "Content-Encoding: %d\r\n"),
- HTTP_HCodes::CONTENTLENGTH ("Content-Length", "Content-Length: %d\r\n"),
- HTTP_HCodes::CONTENTLOCATION ("Content-Location", "Content-Location: %s\r\n"),
- HTTP_HCodes::CONTENTMD5 ("Content-MD5", "Content-MD5: %s\r\n"),
- HTTP_HCodes::CONTENTRANGE ("Content-Range", "Content-Range: %s\r\n"),
- HTTP_HCodes::CONTENTTYPE ("Content-Type", "Content-Type: %s\r\n"),
- HTTP_HCodes::DATE ("Date", "Date: %s\r\n"),
- HTTP_HCodes::ETAG ("ETag", "ETag: %s\r\n"),
- HTTP_HCodes::EXPECT ("Expect", "Expect: %s\r\n"),
- HTTP_HCodes::EXPIRES ("Expires", "Expires: %s\r\n"),
- HTTP_HCodes::FROM ("From", "From: %s\r\n"),
- HTTP_HCodes::HOST ("Host", "Host: %s\r\n"),
- HTTP_HCodes::IFMATCH ("If-Match", "If-Match: %s\r\n"),
- HTTP_HCodes::IFMODIFIEDSINCE ("If-Modified-Since",
- "If-Modified-Since: %s\r\n"),
- HTTP_HCodes::IFNONEMATCH ("If-None-Match", "If-None-Match: %s\r\n"),
- HTTP_HCodes::IFRANGE ("If-Range", "If-Range: %s\r\n"),
- HTTP_HCodes::IFUNMODIFIEDSINCE ("If-Unmodified-Since",
- "If-Unmodified-Since: %s\r\n"),
- HTTP_HCodes::LASTMODIFIED ("Last-Modified", "Last-Modified: %s\r\n"),
- HTTP_HCodes::LOCATION ("Location", "Location: %s\r\n"),
- HTTP_HCodes::MAXFORWARDS ("Max-Forwards", "Max-Forwards: %s\r\n"),
- HTTP_HCodes::PRAGMA ("Pragma", "Pragma: %s\r\n"),
- HTTP_HCodes::PROXYAUTHENTICATE ("Proxy-Authenticate",
- "Proxy-Authenticate: %s\r\n"),
- HTTP_HCodes::PROXYAUTHORIZATION ("Proxy-Authorization",
- "Proxy-Authorization: %s\r\n"),
- HTTP_HCodes::RANGE ("Range", "Range: %s\r\n"),
- HTTP_HCodes::REFERER ("Referer", "Referer: %s\r\n"),
- HTTP_HCodes::SERVER ("Server", "Server: %s\r\n"),
- HTTP_HCodes::TE ("TE", "TE: %s\r\n"),
- HTTP_HCodes::TRAILER ("Trailer", "Trailer: %s\r\n"),
- HTTP_HCodes::TRANSFERENCODING ("Transfer-Encoding",
- "Transfer-Encoding: %s\r\n"),
- HTTP_HCodes::UPGRADE ("Ugrade", "Ugrade: %s\r\n"),
- HTTP_HCodes::USERAGENT ("User-Agent", "User-Agent: %s\r\n"),
- HTTP_HCodes::VARY ("Vary", "Vary: %s\r\n"),
- HTTP_HCodes::VIA ("Via", "Via: %s\r\n"),
- HTTP_HCodes::WARNING ("Warning", "Warning: %s\r\n"),
- HTTP_HCodes::WWWAUTHENTICATE ("WWW-Authenticate",
- "WWW-Authenticate: %s\r\n"),
- HTTP_HCodes::GET ("GET", "GET %s HTTP/%s\r\n"),
- HTTP_HCodes::HEAD ("HEAD", "HEAD %s HTTP/%s\r\n"),
- HTTP_HCodes::POST ("POST", "POST %s HTTP/%s\r\n"),
- HTTP_HCodes::PUT ("PUT", "PUT %s HTTP/%s\r\n"),
- HTTP_HCodes::QUIT ("QUIT", "QUIT %s HTTP/%s\r\n"),
- HTTP_HCodes::DUNNO ("", ""),
- HTTP_HCodes::META ("<META", "<META %s>"),
- HTTP_HCodes::A ("<A", "<A %s>"),
- HTTP_HCodes::SCRIPT ("<SCRIPT", "<SCRIPT %s>"),
- HTTP_HCodes::APPLET ("<APPLET", "<APPLET %s>")
-
- //////////////
- ;
-
-
-const int &HTTP_HCodes::NUM_HEADER_STRINGS
- = HTTP_Header_Nodes_Singleton::instance ()->num_header_strings_;
-
-HTTP_Header_Nodes::HTTP_Header_Nodes (void)
- : num_header_strings_ (0)
-{
-}
-
-HTTP_Hdr_Node::HTTP_Hdr_Node (const char *token, const char *format)
- : token_ (token),
- format_ (format)
-{
- HTTP_Header_Nodes *header_nodes
- = HTTP_Header_Nodes_Singleton::instance ();
-
- this->index_ = header_nodes->num_header_strings_;
- header_nodes->insert (this->index_, this);
- header_nodes->num_header_strings_++;
-}
-
-HTTP_HCodes::HTTP_HCodes (void)
- : header_nodes_ (HTTP_Header_Nodes_Singleton::instance ())
-{
-}
-
-HTTP_Headers::HTTP_Headers (void)
-{
-}
-
-const char *
-HTTP_Headers::header (int name) const
-{
- return this->header_token (name);
-}
-
-const char *
-HTTP_Headers::value (int index)
-{
- this->value_reset ();
- return this->value_next (index);
-}
-
-const char *
-HTTP_Headers::value_next (int index)
-{
- const char *hs = 0;
- const char *hv = 0;
- JAWS_Header_Data *data;
-
- if (0 <= index && index < NUM_HEADER_STRINGS)
- {
- hs = this->header (index);
- data = this->table ()->find_next (hs);
- if (data != 0)
- hv = data->header_value ();
- }
-
- return hv;
-}
-
-void
-HTTP_Headers::value_reset (void)
-{
- this->table ()->iter ().first ();
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/http_headers.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_RB_Tree<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>;
-template class ACE_RB_Tree_Node<int, const HTTP_Hdr_Node *>;
-template class ACE_RB_Tree_Iterator_Base<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>;
-template class ACE_RB_Tree_Iterator<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>;
-template class ACE_RB_Tree_Reverse_Iterator<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>;
-template class ACE_Singleton<HTTP_Header_Nodes, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_RB_Tree<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>
-#pragma instantiate ACE_RB_Tree_Node<int, const HTTP_Hdr_Node *>
-#pragma instantiate ACE_RB_Tree_Iterator_Base<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>
-#pragma instantiate ACE_RB_Tree_Iterator<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>
-#pragma instantiate ACE_RB_Tree_Reverse_Iterator<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>
-#pragma instantiate ACE_Singleton<HTTP_Header_Nodes, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS2/HTTPU/http_headers.h b/apps/JAWS2/HTTPU/http_headers.h
deleted file mode 100644
index 41afd21d15d..00000000000
--- a/apps/JAWS2/HTTPU/http_headers.h
+++ /dev/null
@@ -1,165 +0,0 @@
-// $Id$
-
-// by James Hu
-// Borrowed from HTTP_Headers.*, which appears to be irrelevent now anyway.
-
-#ifndef HTTPU_HTTP_HEADERS_H
-#define HTTPU_HTTP_HEADERS_H
-
-#include "ace/RB_Tree.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Singleton.h"
-
-#include "JAWS/Parse_Headers.h"
-#include "HTTPU/http_export.h"
-
-class HTTP_Headers;
-
-class HTTPU_Export HTTP_Hdr_Node
-{
- // Constructor should be passed literal strings.
- friend class HTTP_HCodes;
-
-public:
- operator const int (void) const;
- operator const char * (void) const;
- const char * format (void) const;
-
-private:
- HTTP_Hdr_Node (const char *token, const char *format);
-
-private:
- int index_;
- const char *token_;
- const char *format_;
-};
-
-
-class HTTP_HCodes;
-
-class HTTPU_Export HTTP_Header_Nodes : public ACE_RB_Tree<int, const HTTP_Hdr_Node *, ACE_Less_Than<int>, ACE_Null_Mutex>
-{
- friend class HTTP_HCodes;
- friend class HTTP_Hdr_Node;
-
-public:
- HTTP_Header_Nodes (void);
-
-private:
- int num_header_strings_;
-};
-
-typedef ACE_Singleton<HTTP_Header_Nodes, ACE_SYNCH_MUTEX>
- HTTP_Header_Nodes_Singleton;
-
-class HTTPU_Export HTTP_HCodes
-{
-public:
- HTTP_HCodes (void);
-
- enum {
- REPLACE_HEADER = 1, // Remove any existing header that matches first
- APPEND_HEADER = 2, // Unconditionally append the header
- INSERT_HEADER = 4, // Insert header if one does not already exist
- APPENDTO_HEADER = 8 // Concatenate data to existing header value
- };
-
- static HTTP_Hdr_Node HTTP;
- static HTTP_Hdr_Node ACCEPT;
- static HTTP_Hdr_Node ACCEPTCHARSET;
- static HTTP_Hdr_Node ACCEPTENCODING;
- static HTTP_Hdr_Node ACCEPTLANGUAGE;
- static HTTP_Hdr_Node ACCEPTRANGES;
- static HTTP_Hdr_Node AGE;
- static HTTP_Hdr_Node ALLOW;
- static HTTP_Hdr_Node AUTHORIZATION;
- static HTTP_Hdr_Node CACHECONTROL;
- static HTTP_Hdr_Node CONNECTION;
- static HTTP_Hdr_Node CONTENTENCODING;
- static HTTP_Hdr_Node CONTENTLENGTH;
- static HTTP_Hdr_Node CONTENTLOCATION;
- static HTTP_Hdr_Node CONTENTMD5;
- static HTTP_Hdr_Node CONTENTRANGE;
- static HTTP_Hdr_Node CONTENTTYPE;
- static HTTP_Hdr_Node DATE;
- static HTTP_Hdr_Node ETAG;
- static HTTP_Hdr_Node EXPECT;
- static HTTP_Hdr_Node EXPIRES;
- static HTTP_Hdr_Node FROM;
- static HTTP_Hdr_Node HOST;
- static HTTP_Hdr_Node IFMATCH;
- static HTTP_Hdr_Node IFMODIFIEDSINCE;
- static HTTP_Hdr_Node IFNONEMATCH;
- static HTTP_Hdr_Node IFRANGE;
- static HTTP_Hdr_Node IFUNMODIFIEDSINCE;
- static HTTP_Hdr_Node LASTMODIFIED;
- static HTTP_Hdr_Node LOCATION;
- static HTTP_Hdr_Node MAXFORWARDS;
- static HTTP_Hdr_Node PRAGMA;
- static HTTP_Hdr_Node PROXYAUTHENTICATE;
- static HTTP_Hdr_Node PROXYAUTHORIZATION;
- static HTTP_Hdr_Node RANGE;
- static HTTP_Hdr_Node REFERER;
- static HTTP_Hdr_Node RETRYAFTER;
- static HTTP_Hdr_Node SERVER;
- static HTTP_Hdr_Node TE;
- static HTTP_Hdr_Node TRAILER;
- static HTTP_Hdr_Node TRANSFERENCODING;
- static HTTP_Hdr_Node UPGRADE;
- static HTTP_Hdr_Node USERAGENT;
- static HTTP_Hdr_Node VARY;
- static HTTP_Hdr_Node VIA;
- static HTTP_Hdr_Node WARNING;
- static HTTP_Hdr_Node WWWAUTHENTICATE;
- static HTTP_Hdr_Node GET;
- static HTTP_Hdr_Node HEAD;
- static HTTP_Hdr_Node POST;
- static HTTP_Hdr_Node PUT;
- static HTTP_Hdr_Node QUIT;
- static HTTP_Hdr_Node DUNNO;
- static HTTP_Hdr_Node META;
- static HTTP_Hdr_Node A;
- static HTTP_Hdr_Node SCRIPT;
- static HTTP_Hdr_Node APPLET;
-
- static const int &NUM_HEADER_STRINGS;
-
-protected:
-
- const HTTP_Hdr_Node &hcode (int type) const;
-
-protected:
-
- HTTP_Header_Nodes *header_nodes_;
-};
-
-class HTTPU_Export HTTP_Headers : public JAWS_Header_Info, public HTTP_HCodes
-{
-public:
- const char *header( int name ) const;
- const char *value( int name );
- const char *value_next( int name );
- void value_reset ( void );
-
-public:
- HTTP_Headers (void);
-
- const char *header_token (int name) const;
- const char *header_strings (int name) const;
-
-};
-
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/http_headers.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#endif /* !defined (HTTPU_HTTP_HEADERS_HPP) */
diff --git a/apps/JAWS2/HTTPU/http_headers.i b/apps/JAWS2/HTTPU/http_headers.i
deleted file mode 100644
index 73ea46e57b6..00000000000
--- a/apps/JAWS2/HTTPU/http_headers.i
+++ /dev/null
@@ -1,48 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE
-HTTP_Hdr_Node::operator const int (void) const
-{
- return this->index_;
-}
-
-ACE_INLINE
-HTTP_Hdr_Node::operator const char * (void) const
-{
- return this->token_;
-}
-
-ACE_INLINE const char *
-HTTP_Hdr_Node::format (void) const
-{
- return this->format_;
-}
-
-ACE_INLINE const HTTP_Hdr_Node &
-HTTP_HCodes::hcode (int type) const
-{
- const HTTP_Hdr_Node **hn = this->header_nodes_->find (type);
-
- // No error checking!
- return **hn;
-}
-
-ACE_INLINE const char *
-HTTP_Headers::header_token (int name) const
-{
- const HTTP_Hdr_Node **hn = this->header_nodes_->find (name);
- return ((hn && *hn) ? (const char *)**hn : 0);
-}
-
-ACE_INLINE const char *
-HTTP_Headers::header_strings (int name) const
-{
- const HTTP_Hdr_Node **hn = this->header_nodes_->find (name);
- return ((hn && *hn) ? (*hn)->format () : 0);
-}
diff --git a/apps/JAWS2/HTTPU/http_request.cpp b/apps/JAWS2/HTTPU/http_request.cpp
deleted file mode 100644
index ac1c08028e0..00000000000
--- a/apps/JAWS2/HTTPU/http_request.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// $Id$
-
-#include "HTTPU/http_request.h"
-#include "HTTPU/parse_http_request.h"
-
-void
-HTTP_Request::parse_line (void)
-{
- this->status_ = STATUS_OK;
-
- this->request_.init (this->line ());
- if (this->request_.error () != Parse_HTTP_Request::HTTPU_OK)
- {
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
- return;
- }
- if (this->request_.major_version () == 0)
- {
- this->no_headers_ = 1;
- return;
- }
-
- this->url_.init (this->request_.url ());
- if (this->url_.error () != 0)
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
-}
-
-int
-HTTP_Request::espouse_line (void)
-{
- int count;
-
- if (this->request_.major_version () == 0)
- {
- count = ACE_OS::sprintf (this->mb_->wr_ptr (), "%s /%s\r\n\r\n",
- this->request_.method_str (),
- this->url_.url_path ());
-
- if (count < 0)
- return -1;
-
- this->mb_->wr_ptr (count);
-
- return 1;
- }
-
- count = ACE_OS::sprintf (this->mb_->wr_ptr (), "%s /%s %s\r\n",
- this->request_.method_str (),
- this->url_.url_path (),
- this->request_.version ());
-
- if (count < 0)
- return -1;
-
- this->mb_->wr_ptr (count);
-
- if (this->url_.host () != 0)
- {
- JAWS_Header_Data *hd = this->headers ()->find ("Host");
- if (hd == 0)
- {
- count = ACE_OS::sprintf (this->mb_->wr_ptr (), "Host: %s\r\n",
- this->url_.host ());
-
- if (count < 0)
- return -1;
-
- this->mb_->wr_ptr (count);
- }
- }
-
- return 0;
-}
-
-void
-HTTP_Request::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG, "===== BEGIN entera_HTTP_Request::dump =====\n"));
- HTTP_Base::dump ();
- this->request_.dump ();
- ACE_DEBUG ((LM_DEBUG, "===== END entera_HTTP_Request::dump =====\n"));
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/http_request.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/apps/JAWS2/HTTPU/http_request.h b/apps/JAWS2/HTTPU/http_request.h
deleted file mode 100644
index c04d08dabf6..00000000000
--- a/apps/JAWS2/HTTPU/http_request.h
+++ /dev/null
@@ -1,59 +0,0 @@
-// $Id$
-
-// There are two kinds of HTTP Requests in a proxy.
-// One is the kind you have to read in from the HTTP client.
-// The other is the kind you issue to the server.
-
-#ifndef HTTPU_HTTP_REQUEST_HPP
-#define HTTPU_HTTP_REQUEST_HPP
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Parse_Headers.h"
-#include "HTTPU/http_export.h"
-#include "HTTPU/http_base.h"
-#include "HTTPU/parse_http_request.h"
-#include "HTTPU/parse_url.h"
-
-class HTTPU_Export HTTP_Request : public HTTP_Base
-{
-public:
- HTTP_Request (void);
- virtual ~HTTP_Request (void);
-
- Parse_HTTP_Request *request_line (void);
- // Returns the parsed request line.
-
- const Parse_HTTP_Request *request_line (void) const;
- // Returns the parsed request line.
-
- HTTP_Parse_URL *url (void);
- // Returns the parsed url.
-
- void dump (void);
-
-protected:
-
- virtual void parse_line (void);
- virtual int espouse_line (void);
- virtual void set_status (int);
-
-private:
- Parse_HTTP_Request request_;
- HTTP_Parse_URL url_;
-};
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/http_request.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-
-#endif /* !defined (HTTPU_HTTP_REQUEST_HPP) */
diff --git a/apps/JAWS2/HTTPU/http_request.i b/apps/JAWS2/HTTPU/http_request.i
deleted file mode 100644
index a6adeb98e92..00000000000
--- a/apps/JAWS2/HTTPU/http_request.i
+++ /dev/null
@@ -1,41 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE
-HTTP_Request::HTTP_Request (void)
-{
-}
-
-ACE_INLINE
-HTTP_Request::~HTTP_Request (void)
-{
-}
-
-ACE_INLINE Parse_HTTP_Request *
-HTTP_Request::request_line (void)
-{
- return &(this->request_);
-}
-
-ACE_INLINE const Parse_HTTP_Request *
-HTTP_Request::request_line (void) const
-{
- return &(this->request_);
-}
-
-ACE_INLINE HTTP_Parse_URL *
-HTTP_Request::url (void)
-{
- return &(this->url_);
-}
-
-ACE_INLINE void
-HTTP_Request::set_status (int s)
-{
- this->status_ = s;
-}
diff --git a/apps/JAWS2/HTTPU/http_response.cpp b/apps/JAWS2/HTTPU/http_response.cpp
deleted file mode 100644
index 380d0155b0f..00000000000
--- a/apps/JAWS2/HTTPU/http_response.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// $Id$
-
-#include "HTTPU/http_response.h"
-
-void
-HTTP_Response::parse_line (void)
-{
- this->response_.init (this->line ());
- if (this->response_.error () != Parse_HTTP_Response::HTTPU_OK)
- this->status_ = STATUS_INTERNAL_SERVER_ERROR;
-}
-
-int
-HTTP_Response::espouse_line (void)
-{
- int count;
- int status;
-
- if (this->status_ != (int)STATUS_OK)
- status = this->status_;
- else
- status = this->response_line ()->code ();
-
- count = ACE_OS::sprintf (this->mb_->wr_ptr (), "%s %d %s\r\n",
- "HTTP/1.1",
- status,
- (char *)(*HTTP_SCode::instance ())[status]);
- // Last arg is hard coded since we are suppose to report the
- // level of server we are, and not act like the level of the
- // client. This information should be obtained from the config.
-
- if (count < 0)
- return -1;
-
- this->mb_->wr_ptr (count);
- return 0;
-}
-
-void
-HTTP_Response::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG, "===== BEGIN entera_HTTP_Response::dump =====\n"));
- HTTP_Base::dump ();
- ACE_DEBUG ((LM_DEBUG, "===== END entera_HTTP_Response::dump =====\n"));
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/http_response.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
diff --git a/apps/JAWS2/HTTPU/http_response.h b/apps/JAWS2/HTTPU/http_response.h
deleted file mode 100644
index 71b6cae2fae..00000000000
--- a/apps/JAWS2/HTTPU/http_response.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// $Id$
-
-// There are two kinds of HTTP Responses in a proxy.
-// One is the kind you have to read in from the HTTP server.
-// The other is the kind you issue to the HTTP client.
-
-#ifndef HTTPU_HTTP_RESPONSE_HPP
-#define HTTPU_HTTP_RESPONSE_HPP
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Parse_Headers.h"
-
-#include "HTTPU/http_export.h"
-#include "HTTPU/http_base.h"
-#include "HTTPU/parse_http_response.h"
-
-class HTTPU_Export HTTP_Response : public HTTP_Base
-{
-public:
- HTTP_Response (void);
- ~HTTP_Response (void);
-
- Parse_HTTP_Response *response_line (void);
- // Returns the parsed response line.
-
- void dump (void);
-
-protected:
-
- virtual void parse_line (void);
- virtual int espouse_line (void);
-
-private:
- Parse_HTTP_Response response_;
-};
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/http_response.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-
-#endif /* !defined (HTTPU_HTTP_RESPONSE_HPP) */
diff --git a/apps/JAWS2/HTTPU/http_response.i b/apps/JAWS2/HTTPU/http_response.i
deleted file mode 100644
index 9f4eb0d244f..00000000000
--- a/apps/JAWS2/HTTPU/http_response.i
+++ /dev/null
@@ -1,23 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE
-HTTP_Response::HTTP_Response (void)
-{
-}
-
-ACE_INLINE
-HTTP_Response::~HTTP_Response (void)
-{
-}
-
-ACE_INLINE Parse_HTTP_Response *
-HTTP_Response::response_line (void)
-{
- return &(this->response_);
-}
diff --git a/apps/JAWS2/HTTPU/http_status.cpp b/apps/JAWS2/HTTPU/http_status.cpp
deleted file mode 100644
index 07009659fb7..00000000000
--- a/apps/JAWS2/HTTPU/http_status.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-// $Id$
-
-#include "HTTPU/http_status.h"
-
-const char *
-HTTP_SCode::table_ [HTTP_SCode::SC_TABLE_SIZE];
-
-HTTP_SCode_Node
-
- HTTP_SCode_Base::STATUS_OK (200, "OK"),
- HTTP_SCode_Base::STATUS_CREATED (201, "Created"),
- HTTP_SCode_Base::STATUS_ACCEPTED (202, "Accepted"),
- HTTP_SCode_Base::STATUS_NO_CONTENT (204, "No Content"),
- HTTP_SCode_Base::STATUS_MULTIPLE_CHOICES (300, "Multiple Choices"),
- HTTP_SCode_Base::STATUS_MOVED_PERMANENTLY (301, "Moved Permanently"),
- HTTP_SCode_Base::STATUS_MOVED_TEMPORARILY (302, "Moved Temporarily"),
- HTTP_SCode_Base::STATUS_NOT_MODIFIED (304, "Not Modified"),
- HTTP_SCode_Base::STATUS_INSUFFICIENT_DATA (399, "Insufficient Data"),
- HTTP_SCode_Base::STATUS_BAD_REQUEST (400, "Bad Request"),
- HTTP_SCode_Base::STATUS_UNAUTHORIZED (401, "Unauthorized"),
- HTTP_SCode_Base::STATUS_FORBIDDEN (403, "Forbidden"),
- HTTP_SCode_Base::STATUS_NOT_FOUND (404, "Not Found"),
- HTTP_SCode_Base::STATUS_INTERNAL_SERVER_ERROR (500, "Internal Server Error"),
- HTTP_SCode_Base::STATUS_NOT_IMPLEMENTED (501, "Not Implemented"),
- HTTP_SCode_Base::STATUS_BAD_GATEWAY (502, "Bad Gateway"),
- HTTP_SCode_Base::STATUS_SERVICE_UNAVAILABLE (503, "Service Unavailable"),
- HTTP_SCode_Base::STATUS_QUIT (599, "Quit"),
-
- HTTP_SCode_Base::DUMMY (0, 0);
-
-HTTP_SCode_Node::HTTP_SCode_Node (int code, const char *code_str)
- : code_ (code),
- code_str_ (code_str)
-{
- if ((HTTP_SCode::MIN_STATUS_CODE <= code)
- && (code <= HTTP_SCode::MAX_STATUS_CODE))
- HTTP_SCode::table_[code - HTTP_SCode::MIN_STATUS_CODE] = code_str;
-}
-
-const char *
-HTTP_SCode::operator[] (int i) const
-{
- const char *s = "Unknown";
-
- if (MIN_STATUS_CODE <= i && i <= MAX_STATUS_CODE)
- s = this->table_[i - MIN_STATUS_CODE];
-
- return s;
-}
-
-HTTP_SCode *
-HTTP_SCode::instance (void)
-{
- return HTTP_SCode_Singleton::instance ();
-}
-
-void
-HTTP_SCode::dump (void)
-{
- for (int i = 0; i < SC_TABLE_SIZE; i++)
- ACE_DEBUG ((LM_DEBUG, "%s\n", this->table_[i]));
-}
-
-HTTP_SCode::HTTP_SCode (void)
-{
- int i;
- for (i = 0; i < SC_TABLE_SIZE; i++)
- {
- if (this->table_[i] == 0)
- this->table_[i] = this->table_[(i/100) * 100];
- }
-}
-
-HTTP_SCode::~HTTP_SCode (void)
-{
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/http_status.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<HTTP_SCode, ACE_Thread_Mutex>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<HTTP_SCode, ACE_Thread_Mutex>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS2/HTTPU/http_status.h b/apps/JAWS2/HTTPU/http_status.h
deleted file mode 100644
index c4d90657b15..00000000000
--- a/apps/JAWS2/HTTPU/http_status.h
+++ /dev/null
@@ -1,109 +0,0 @@
-// $Id$
-
-#ifndef HTTPU_HTTP_STATUS_HPP
-#define HTTPU_HTTP_STATUS_HPP
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "HTTPU/http_export.h"
-
-class HTTP_SCode_Base;
-
-class HTTPU_Export HTTP_SCode_Node
-// Constructor should be passed a string literal.
-{
- friend class HTTP_SCode_Base;
-
-public:
- operator int (void) const;
- operator const char * (void) const;
-
-private:
- HTTP_SCode_Node (int code, const char *code_str);
-
-private:
- int code_;
- const char *code_str_;
-};
-
-class HTTPU_Export HTTP_SCode_Base
-{
-public:
- static HTTP_SCode_Node STATUS_OK;
- static HTTP_SCode_Node STATUS_CREATED;
- static HTTP_SCode_Node STATUS_ACCEPTED;
- static HTTP_SCode_Node STATUS_NO_CONTENT;
- static HTTP_SCode_Node STATUS_MULTIPLE_CHOICES;
- static HTTP_SCode_Node STATUS_MOVED_PERMANENTLY;
- static HTTP_SCode_Node STATUS_MOVED_TEMPORARILY;
- static HTTP_SCode_Node STATUS_NOT_MODIFIED;
- static HTTP_SCode_Node STATUS_INSUFFICIENT_DATA;
- static HTTP_SCode_Node STATUS_BAD_REQUEST;
- static HTTP_SCode_Node STATUS_UNAUTHORIZED;
- static HTTP_SCode_Node STATUS_FORBIDDEN;
- static HTTP_SCode_Node STATUS_NOT_FOUND;
- static HTTP_SCode_Node STATUS_INTERNAL_SERVER_ERROR;
- static HTTP_SCode_Node STATUS_NOT_IMPLEMENTED;
- static HTTP_SCode_Node STATUS_BAD_GATEWAY;
- static HTTP_SCode_Node STATUS_SERVICE_UNAVAILABLE;
- static HTTP_SCode_Node STATUS_QUIT;
-
- enum
- {
- MIN_STATUS_CODE = 200,
- MAX_STATUS_CODE = 599
- };
-
-private:
- static HTTP_SCode_Node DUMMY;
-};
-
-class HTTPU_Export HTTP_SCode : public HTTP_SCode_Base
-{
- // = TITLE
- // Go from numeric status codes to descriptive strings.
- //
- friend class HTTP_SCode_Node;
- friend class ACE_Singleton<HTTP_SCode, ACE_SYNCH_MUTEX>;
-
-protected:
-
- HTTP_SCode (void);
- ~HTTP_SCode (void);
-
-public:
-
- const char * operator[] (int) const;
- // Return the reason string corresponding to a status code number.
-
- static HTTP_SCode *instance (void);
- // Return reference to the singleton.
-
- enum
- {
- SC_TABLE_SIZE = MAX_STATUS_CODE - MIN_STATUS_CODE + 1
- };
-
- void dump (void);
-
-private:
- static const char *table_[SC_TABLE_SIZE];
-};
-
-
-typedef ACE_Singleton<HTTP_SCode, ACE_SYNCH_MUTEX>
- HTTP_SCode_Singleton;
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/http_status.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#endif /* HTTPU_HTTP_STATUS_HPP */
diff --git a/apps/JAWS2/HTTPU/http_status.i b/apps/JAWS2/HTTPU/http_status.i
deleted file mode 100644
index 0247ddeb738..00000000000
--- a/apps/JAWS2/HTTPU/http_status.i
+++ /dev/null
@@ -1,19 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE
-HTTP_SCode_Node::operator int (void) const
-{
- return this->code_;
-}
-
-ACE_INLINE
-HTTP_SCode_Node::operator const char * (void) const
-{
- return this->code_str_;
-}
diff --git a/apps/JAWS2/HTTPU/parse_http_request.cpp b/apps/JAWS2/HTTPU/parse_http_request.cpp
deleted file mode 100644
index 6d897ff2dac..00000000000
--- a/apps/JAWS2/HTTPU/parse_http_request.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-// $Id$
-
-#include "HTTPU/parse_http_request.h"
-
-Parse_HTTP_Request::Parse_HTTP_Request (const char *request)
- : method_ (0),
- major_version_ (-1),
- minor_version_ (-1),
- version_ (0),
- url_ (0),
- request_ (0),
- error_ (0)
-{
- if (request != 0)
- this->init (request);
-}
-
-Parse_HTTP_Request::~Parse_HTTP_Request (void)
-{
- if (this->request_)
- ACE_OS::free (this->request_);
- this->request_ = 0;
- this->version_ = 0;
- this->url_ = 0;
-}
-
-void
-Parse_HTTP_Request::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG, "%s %s %s\n",
- this->method_str (), this->url (), this->version ()));
-}
-
-void
-Parse_HTTP_Request::init (const char *request)
-{
- char *method;
-
- this->request_ = ACE_OS::strdup (request);
- if (this->request_ == 0)
- {
- this->error_ = NO_MEMORY;
- return;
- }
-
- char buf[BUFSIZ];
- int n = ::sscanf (this->request_, "%s %*s HTTP/%d.%d",
- buf,
- &(this->major_version_),
- &(this->minor_version_));
-
- if (n == 1 || n == 3)
- {
- char *p = this->request_;
-
- while (*p == ' ' || *p == '\t')
- p++;
-
- method = p++;
-
- while (*p != ' ' && *p != '\t')
- p++;
-
- *p++ = '\0';
-
- while (*p == ' ' || *p == '\t')
- p++;
-
- this->url_ = p;
-
- while (*p && !ACE_OS::strchr (" \t\r\n", *p))
- p++;
-
- *p++ = '\0';
-
- if (n == 1)
- {
- this->major_version_ = 0;
- this->minor_version_ = 9;
- }
- else
- {
- while (*p == ' ' || *p == '\t')
- p++;
-
- this->version_ = p;
-
- while (*p && !ACE_OS::strchr (" \t\r\n", *p))
- p++;
-
- *p++ = '\0';
- }
-
- if (ACE_OS::strcmp (method, "GET") == 0)
- this->method_ = &GET;
- else if (ACE_OS::strcmp (method, "HEAD") == 0)
- this->method_ = &HEAD;
- else if (ACE_OS::strcmp (method, "POST") == 0)
- this->method_ = &POST;
- else if (ACE_OS::strcmp (method, "PUT") == 0)
- this->method_ = &PUT;
- else if (ACE_OS::strcmp (method, "QUIT") == 0)
- this->method_ = &QUIT;
- else
- {
- this->method_ = &DUNNO;
- this->error_ = NOT_IMPLEMENTED;
- }
- }
- else
- this->error_ = BAD_REQUEST;
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/parse_http_request.i"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
diff --git a/apps/JAWS2/HTTPU/parse_http_request.h b/apps/JAWS2/HTTPU/parse_http_request.h
deleted file mode 100644
index 26c83348e37..00000000000
--- a/apps/JAWS2/HTTPU/parse_http_request.h
+++ /dev/null
@@ -1,59 +0,0 @@
-// $Id$
-
-#ifndef HTTPU_PARSE_HTTP_REQUEST_H
-#define HTTPU_PARSE_HTTP_REQUEST_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "HTTPU/http_headers.h"
-
-class HTTPU_Export Parse_HTTP_Request : public HTTP_HCodes
-{
-public:
- Parse_HTTP_Request (const char *request = 0);
- ~Parse_HTTP_Request (void);
-
- void init (const char *request);
-
- int method (void) const;
- const char *method_str (void) const;
-
- int major_version (void) const;
- int minor_version (void) const;
-
- const char *version (void) const;
-
- const char *url (void) const;
-
- enum { HTTPU_OK, NO_MEMORY, BAD_REQUEST, NOT_IMPLEMENTED };
-
- int error (void) const;
- // 0 -> ok
-
- void dump (void);
-
-private:
-
- HTTP_Hdr_Node *method_;
- int major_version_;
- int minor_version_;
- char *version_;
- char *url_;
- char *request_;
- int error_;
-
-};
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/parse_http_request.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-#endif /* !defined (HTTPU_PARSE_HTTP_REQUEST_H) */
diff --git a/apps/JAWS2/HTTPU/parse_http_request.i b/apps/JAWS2/HTTPU/parse_http_request.i
deleted file mode 100644
index 3ef87d48479..00000000000
--- a/apps/JAWS2/HTTPU/parse_http_request.i
+++ /dev/null
@@ -1,49 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE int
-Parse_HTTP_Request::method (void) const
-{
- return (int) *this->method_;
-}
-
-ACE_INLINE const char *
-Parse_HTTP_Request::method_str (void) const
-{
- return (const char *) *this->method_;
-}
-
-ACE_INLINE int
-Parse_HTTP_Request::major_version (void) const
-{
- return this->major_version_;
-}
-
-ACE_INLINE int
-Parse_HTTP_Request::minor_version (void) const
-{
- return this->minor_version_;
-}
-
-ACE_INLINE const char *
-Parse_HTTP_Request::version (void) const
-{
- return this->version_ ? this->version_ : "HTTP/0.9";
-}
-
-ACE_INLINE const char *
-Parse_HTTP_Request::url (void) const
-{
- return this->url_;
-}
-
-ACE_INLINE int
-Parse_HTTP_Request::error (void) const
-{
- return this->error_;
-}
diff --git a/apps/JAWS2/HTTPU/parse_http_response.cpp b/apps/JAWS2/HTTPU/parse_http_response.cpp
deleted file mode 100644
index 4f20ac688d5..00000000000
--- a/apps/JAWS2/HTTPU/parse_http_response.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// $Id$
-
-#include "HTTPU/parse_http_response.h"
-
-Parse_HTTP_Response::Parse_HTTP_Response (const char *response)
- : code_ (200),
- code_str_ (0),
- major_version_ (0),
- minor_version_ (9),
- version_ (0),
- response_ (0),
- error_ (0)
-{
- if (response != 0)
- this->init (response);
-}
-
-Parse_HTTP_Response::~Parse_HTTP_Response (void)
-{
- if (this->response_)
- ACE_OS::free (this->response_);
- this->response_ = 0;
- this->code_str_ = 0;
- this->version_ = 0;
-}
-
-void
-Parse_HTTP_Response::init (const char *response)
-{
- this->response_ = ACE_OS::strdup (response);
- if (this->response_ == 0)
- {
- this->error_ = NO_MEMORY;
- return;
- }
-
- int n = ::sscanf (this->response_, "HTTP/%d.%d %d %*s",
- &(this->major_version_),
- &(this->minor_version_),
- &(this->code_));
-
- if (n == 3)
- {
- char *p = this->response_;
-
- while (*p == ' ' || *p == '\t')
- p++;
-
- this->version_ = p++;
-
- while (*p != ' ' && *p != '\t')
- p++;
-
- *p++ = '\0';
-
- while (*p == ' ' || *p == '\t')
- p++;
-
- this->code_str_ = p;
-
- while (*p && !ACE_OS::strchr (" \t\r\n", *p))
- p++;
-
- *p++ = '\0';
- }
- else
- this->error_ = BAD_RESPONSE;
-}
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# include "HTTPU/parse_http_response.i"
-#endif /* ACE_HAS_INLINED_OS_CALLS */
diff --git a/apps/JAWS2/HTTPU/parse_http_response.h b/apps/JAWS2/HTTPU/parse_http_response.h
deleted file mode 100644
index 42fd5a31afe..00000000000
--- a/apps/JAWS2/HTTPU/parse_http_response.h
+++ /dev/null
@@ -1,56 +0,0 @@
-// $Id$
-
-#ifndef HTTPU_PARSE_HTTP_RESPONSE_H
-#define HTTPU_PARSE_HTTP_RESPONSE_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "HTTPU/http_export.h"
-
-class HTTPU_Export Parse_HTTP_Response
-{
-public:
- Parse_HTTP_Response (const char *response = 0);
- ~Parse_HTTP_Response (void);
-
- void init (const char *response);
-
- int code (void) const;
- const char *code_str (void) const;
-
- int major_version (void) const;
- int minor_version (void) const;
-
- const char *version (void) const;
-
- enum { HTTPU_OK, NO_MEMORY, BAD_RESPONSE };
-
- int error (void) const;
- // 0 -> ok
-
-private:
-
- int code_;
- char *code_str_;
- int major_version_;
- int minor_version_;
- char *version_;
- char *response_;
- int error_;
-
-};
-
-#if defined (ACE_HAS_INLINED_OSCALLS)
-# if defined (ACE_INLINE)
-# undef ACE_INLINE
-# endif /* ACE_INLINE */
-# define ACE_INLINE inline
-# include "HTTPU/parse_http_response.i"
-# endif /* ACE_HAS_INLINED_OSCALLS */
-
-
-#endif /* !defined (HTTPU_PARSE_HTTP_RESPONSE_H) */
diff --git a/apps/JAWS2/HTTPU/parse_http_response.i b/apps/JAWS2/HTTPU/parse_http_response.i
deleted file mode 100644
index 57a694377e5..00000000000
--- a/apps/JAWS2/HTTPU/parse_http_response.i
+++ /dev/null
@@ -1,43 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#if !defined (ACE_HAS_INLINED_OSCALLS)
-# undef ACE_INLINE
-# define ACE_INLINE
-#endif /* ACE_HAS_INLINED_OSCALLS */
-
-ACE_INLINE int
-Parse_HTTP_Response::code (void) const
-{
- return this->code_;
-}
-
-ACE_INLINE const char *
-Parse_HTTP_Response::code_str (void) const
-{
- return this->code_str_ ? this->code_str_ : "200";
-}
-
-ACE_INLINE int
-Parse_HTTP_Response::major_version (void) const
-{
- return this->major_version_;
-}
-
-ACE_INLINE int
-Parse_HTTP_Response::minor_version (void) const
-{
- return this->minor_version_;
-}
-
-ACE_INLINE const char *
-Parse_HTTP_Response::version (void) const
-{
- return this->version_ ? this->version_ : "HTTP/0.9";
-}
-
-ACE_INLINE int
-Parse_HTTP_Response::error (void) const
-{
- return this->error_;
-}
diff --git a/apps/JAWS2/HTTPU/parse_url.cpp b/apps/JAWS2/HTTPU/parse_url.cpp
deleted file mode 100644
index 2c998c7083a..00000000000
--- a/apps/JAWS2/HTTPU/parse_url.cpp
+++ /dev/null
@@ -1,321 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-#include "ace/Log_Msg.h"
-#include "HTTPU/parse_url.h"
-
-HTTP_Parse_URL::HTTP_Parse_URL (const char *url)
- : url_ (0),
- scheme_ (0),
- user_ (0),
- passwd_ (0),
- host_ (0),
- port_ (-1),
- url_path_ (0),
- error_ (NONE),
- is_cgi_ (0)
-{
- this->init (url);
-}
-
-HTTP_Parse_URL::~HTTP_Parse_URL (void)
-{
- if (this->url_)
- ACE_OS::free (this->url_);
- this->url_ = 0;
- this->scheme_ = 0;
- this->user_ = 0;
- this->passwd_ = 0;
- this->host_ = 0;
- this->port_ = -1;
- this->url_path_ = 0;
-}
-
-
-void
-HTTP_Parse_URL::init( const char *url )
-{
- // Should really reset completely and cleanly here before
- // doing anything else!
- if ( url == 0 )
- return;
-
- if ( url_ )
- ACE_OS::free( url_ );
-
- url_ = ACE_OS::strdup( url );
- if ( url_ == 0 )
- {
- error_ = STRDUP;
- return;
- }
-
- if (ACE_OS::strlen (this->url_) > 3 && ACE_OS::strstr ("://", this->url_))
- {
- // Parse it out completely. Figure out what it is later.
- parse_url();
- }
- else
- {
- this->url_path_ = this->url_;
- this->is_cgi (this->url_path_);
- }
-}
-
-
-void
-HTTP_Parse_URL::parse_url (void)
-{
- char *p = this->url_;
-
- char *q;
- if ((q = ACE_OS::strchr (this->url_, '\r'))
- || (q = ACE_OS::strchr (this->url_, '\n')))
- *q = '\0';
-
- this->parse_scheme (p);
- if (*p == '\0')
- {
- this->error_ = SCHEME;
- return;
- }
-
- // Parse past "//"
- if (*p != '/' || *(p+1) != '/')
- {
- this->error_ = SLASHSLASH;
- return;
- }
- p += 2;
-
- this->parse_host (p);
-
- while (*p == '/')
- p++;
-
- if (*p == '\0')
- return;
-
- this->url_path_ = p;
- this->is_cgi (this->url_path_);
-}
-
-void
-HTTP_Parse_URL::parse_scheme (char *&p)
-{
- // Parse the scheme. The scheme is delimited by a ':'.
- if (*p != '\0')
- {
- this->scheme_ = p++;
- for (;;)
- {
- switch (*p)
- {
- case '\0':
- break;
- case ':':
- *p++ = '\0';
- break;
- default:
- p++;
- continue;
- }
- break;
- }
- }
-}
-
-void
-HTTP_Parse_URL::parse_host (char *&p)
-{
- // Parse user, password, host, port
- if (*p == '/' || *p == '\0')
- {
- this->set_port_from_scheme ();
- return;
- }
-
- char *at = 0;
- char *colon1 = 0;
- char *colon2 = 0;
- char *q = p;
- while (*q != '\0')
- {
- if (*q == '/')
- {
- *q = '\0';
- q++;
- break;
- }
- if (*q == ':')
- {
- if (colon1 == 0)
- {
- if (at != 0 && colon2 == 0)
- colon2 = q;
- else
- colon1 = q;
- }
- else
- {
- if (at != 0 && colon2 == 0)
- colon2 = q;
- }
- }
- if (*q == '@')
- {
- if (at == 0)
- at = q;
- }
- q++;
- }
-
- // no user, no port
- if (at == 0 && colon1 == 0)
- {
- if (*p != '\0' && *p != '/')
- this->host_ = p;
- }
-
- // no user, port
- else if (at == 0 && colon1 != 0)
- {
- if (p != colon1)
- this->host_ = p;
- *colon1++ = '\0';
- this->port_ = ACE_OS::atoi (colon1);
- }
-
- // user, no passwd, no port
- else if (at != 0 && colon1 == 0 && colon2 == 0)
- {
- this->user_ = p;
- *at++ = '\0';
- if (*at != '\0' && *at != '/')
- this->host_ = at;
- }
-
- // user, no passwd, port
- else if (at != 0 && colon1 == 0 && colon2 != 0)
- {
- this->user_ = p;
- *at++ = '\0';
- if (at != colon2)
- this->host_ = at;
- *colon2++ = '\0';
- this->port_ = ACE_OS::atoi (colon2);
- }
-
- // user, passwd, no port
- else if (at != 0 && colon1 != 0 && colon2 == 0)
- {
- this->user_ = p;
- *colon1++ = '\0';
- this->passwd_ = colon1;
- *at++ = '\0';
- if (*at != '\0')
- this->host_ = at;
- }
-
- // user, passwd, and port
- else if (at != 0 && colon1 != 0 && colon2 != 0)
- {
- this->user_ = p;
- *colon1++ = '\0';
- this->passwd_ = colon1;
- *at++ = '\0';
- if (at != colon2)
- this->host_ = at;
- *colon2++ = '\0';
- this->port_ = ACE_OS::atoi (colon2);
- }
-
- // impossible!
- else
- {
- ACE_ERROR ((LM_ERROR, "uh oh!\n"));
- p = q;
- return;
- }
-
- this->set_port_from_scheme ();
- p = q;
-}
-
-void
-HTTP_Parse_URL::set_port_from_scheme (void)
-{
- if (ACE_OS::strcmp (this->scheme_, "ftp") == 0)
- {
- if (this->port_ == -1)
- this->port_ = 21;
- if (this->user_ == 0)
- {
- this->user_ = "anonymous";
-
- // *** need something better here
- this->passwd_ = "a@b.c";
- }
- }
- else if (ACE_OS::strcmp (this->scheme_, "http") == 0)
- {
- if (this->port_ == -1)
- this->port_ = 80;
- }
-}
-
-const char *
-HTTP_Parse_URL::scheme (void) const
-{
- return this->scheme_;
-}
-
-const char *
-HTTP_Parse_URL::user (void) const
-{
- return this->user_;
-}
-
-const char *
-HTTP_Parse_URL::passwd (void) const
-{
- return this->passwd_;
-}
-
-const char *
-HTTP_Parse_URL::host (void) const
-{
- return this->host_;
-}
-
-int
-HTTP_Parse_URL::port (void) const
-{
- return this->port_;
-}
-
-const char *
-HTTP_Parse_URL::url_path (void) const
-{
- return this->url_path_ ? this->url_path_ : "";
-}
-
-void
-HTTP_Parse_URL::is_cgi (const char *path)
-{
- int yes;
-
- yes = (ACE_OS::strchr (path, '?') != 0);
- if (!yes && (ACE_OS::strlen (path) >= 3))
- yes = (ACE_OS::strstr (path, "cgi") != 0);
- if (!yes)
- yes = (ACE_OS::strstr (path, "asp") != 0);
-
- this->is_cgi_ = yes;
-}
-
-int
-HTTP_Parse_URL::is_cgi (void) const
-{
- return this->is_cgi_;
-}
diff --git a/apps/JAWS2/HTTPU/parse_url.h b/apps/JAWS2/HTTPU/parse_url.h
deleted file mode 100644
index 64260edd2a8..00000000000
--- a/apps/JAWS2/HTTPU/parse_url.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef HTTPU_HTTP_PARSE_H
-#define HTTPU_HTTP_PARSE_H
-
-#include "HTTPU/http_export.h"
-
-class HTTPU_Export HTTP_Parse_URL
-{
- // CAVEAT:
-
- // The user of the class is responsible for testing the difference
- // between a missing username versus an empty one. Same goes for
- // password The RFC (1738) makes the differentiation for username
- // and password. If the hostname is missing (or empty), this class
- // always returns a null value for the host.
-
-public:
- HTTP_Parse_URL (const char *url = 0);
- ~HTTP_Parse_URL (void);
-
- void init (const char *url);
-
- enum URL_SCHEME { HTTP, FTP };
-
- const char *scheme (void) const;
- const char *user (void) const;
- const char *passwd (void) const;
- const char *host (void) const;
- int port (void) const;
- const char *url_path (void) const;
-
- enum URL_ERROR { NONE, STRDUP, SCHEME, SLASHSLASH };
-
- int error (void) const { return( error_ ); }
-
- int is_cgi (void) const;
-
-private:
- void parse_url (void);
- void parse_scheme (char *&p);
- void parse_host (char *&p);
- void parse_url_path (char *&p);
- void is_cgi (const char *path);
-
- void set_port_from_scheme (void);
-
-private:
- char *url_;
-
- char *scheme_;
- char *user_;
- char *passwd_;
- char *host_;
- int port_;
- char *url_path_;
-
- int error_;
- int is_cgi_;
-};
-
-#endif /* !defined (HTTPU_HTTP_PARSE_H) */
diff --git a/apps/JAWS2/HTTP_10.cpp b/apps/JAWS2/HTTP_10.cpp
deleted file mode 100644
index 60ebdc8b17f..00000000000
--- a/apps/JAWS2/HTTP_10.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// $Id$
-
-#include "HTTP_10.h"
-
-#include "JAWS/JAWS.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_10, "$Id$")
-
-char *
-JAWS_HTTP_10_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;
-}
diff --git a/apps/JAWS2/HTTP_10.h b/apps/JAWS2/HTTP_10.h
deleted file mode 100644
index 382e0d7a563..00000000000
--- a/apps/JAWS2/HTTP_10.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_HTTP_10_H
-#define JAWS_HTTP_10_H
-
-#include "ace/RB_Tree.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Pipeline_Tasks.h"
-
-// Forward declaration
-class JAWS_HTTP_10_Request;
-
-// Reading the initial request
-
-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:
-};
-
-// Parsing the request
-
-class JAWS_HTTP_10_Parse_Task : public JAWS_Pipeline_Handler
-{
-public:
- JAWS_HTTP_10_Parse_Task (void);
- virtual ~JAWS_HTTP_10_Parse_Task (void);
-
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
-
-};
-
-// Write the response
-
-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:
-};
-
-// Helpers
-
-class JAWS_HTTP_10_Helper
-// Static functions to enhance the lives of HTTP programmers everywhere.
-{
-public:
-
- static char *HTTP_decode_string (char *path);
- // Decode '%' escape codes in a URI
-
-};
-
-#endif /* !defined (JAWS_HTTP_10_H) */
diff --git a/apps/JAWS2/HTTP_10_Parse.cpp b/apps/JAWS2/HTTP_10_Parse.cpp
deleted file mode 100644
index ad104a993e9..00000000000
--- a/apps/JAWS2/HTTP_10_Parse.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// $Id$
-
-#include "ace/streams.h"
-
-#include "HTTP_10.h"
-
-#include "JAWS/JAWS.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Policy.h"
-
-#include "HTTP_10_Request.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_10_Parse, "$Id$")
-
-// --------------- PARSE TASK ----------------------
-
-JAWS_HTTP_10_Parse_Task::JAWS_HTTP_10_Parse_Task (void)
-{
-}
-
-JAWS_HTTP_10_Parse_Task::~JAWS_HTTP_10_Parse_Task (void)
-{
-}
-
-int
-JAWS_HTTP_10_Parse_Task::handle_put (JAWS_Data_Block *data, ACE_Time_Value *)
-{
- JAWS_TRACE ("JAWS_HTTP_10_Parse_Task::handle_put");
-
- JAWS_IO_Handler *handler = data->io_handler ();
- JAWS_Dispatch_Policy *policy = this->policy ();
- if (policy == 0) policy = data->policy ();
- JAWS_IO *io = policy->io ();
-
- JAWS_HTTP_10_Request *info;
-
- if (data->payload ())
- info = ACE_reinterpret_cast (JAWS_HTTP_10_Request *, data->payload ());
- else
- {
- info = new JAWS_HTTP_10_Request;
- if (info == 0)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_HTTP_10_Parse_Task::handle_put"));
- return -1;
- }
- data->payload (ACE_static_cast (void *, info));
- }
-
- while (info->receive (*(ACE_Message_Block *)data) == 0)
- {
- int next_read_size = data->space ();
-
- if (next_read_size == 0)
- {
- // Set payload to reflect "request too long"
- break;
- }
-
- io->read (handler, data, next_read_size);
- switch (handler->status ())
- {
- case JAWS_IO_Handler::READ_OK:
- // Behaved synchronously, reiterate
- continue;
- case JAWS_IO_Handler::READ_ERROR:
- case JAWS_IO_Handler::READ_ERROR_A:
- return -1;
- default:
- // This needs to be a value that tells the framework that
- // the call is asynchronous, but that we should remain in
- // the current task state.
- return 2;
- }
- }
-
- // request completely parsed
- info->dump ();
-
- return 0;
-}
diff --git a/apps/JAWS2/HTTP_10_Read.cpp b/apps/JAWS2/HTTP_10_Read.cpp
deleted file mode 100644
index 868147a1d56..00000000000
--- a/apps/JAWS2/HTTP_10_Read.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-// $Id$
-
-#include "HTTP_10.h"
-
-#include "JAWS/JAWS.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Policy.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_10_Read, "$Id$")
-
-// --------------- READ TASK ----------------------
-
-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_TRACE ("JAWS_HTTP_10_Read_Task::handle_put");
-
- JAWS_IO_Handler *handler = data->io_handler ();
- JAWS_Dispatch_Policy *policy = this->policy ();
- if (policy == 0) policy = data->policy ();
-
- JAWS_IO *io = policy->io ();
-
- if (data->length () > 0)
- {
- if (data->rd_ptr ()[0] != '\0')
- {
- JAWS_TRACE ("JAWS_HTTP_10_Read_Task::handle_put, have data");
- return 0;
- }
- }
- data->rd_ptr (data->wr_ptr ());
- data->crunch ();
-
- io->read (handler, data, data->size ());
- switch (handler->status ())
- {
- case JAWS_IO_Handler::READ_OK:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Read_Task::handle_put, READ_OK");
- return 0;
- }
- break;
- case JAWS_IO_Handler::READ_ERROR:
- case JAWS_IO_Handler::READ_ERROR_A:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Read_Task::handle_put, READ_ERROR");
- return -1;
- }
- default:
- break;
- }
-
- return 1;
-}
diff --git a/apps/JAWS2/HTTP_10_Request.cpp b/apps/JAWS2/HTTP_10_Request.cpp
deleted file mode 100644
index a6b3bce678b..00000000000
--- a/apps/JAWS2/HTTP_10_Request.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-// $Id$
-
-#include "JAWS/JAWS.h"
-#include "HTTP_10_Request.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_10_Request, "$Id$")
-
-static int dummy;
-
-JAWS_HTTP_10_Request::JAWS_HTTP_10_Request (void)
- : path_ (0)
-{
-}
-
-JAWS_HTTP_10_Request::~JAWS_HTTP_10_Request (void)
-{
- ACE_OS::free (this->path_);
- this->path_ = 0;
-}
-
-const char *
-JAWS_HTTP_10_Request::method (void) const
-{
- return this->request_line ()->method_str ();
-}
-
-const char *
-JAWS_HTTP_10_Request::uri (void) const
-{
- return this->request_line ()->url ();
-}
-
-const char *
-JAWS_HTTP_10_Request::version (void) const
-{
- return this->request_line ()->version ();
-}
-
-int
-JAWS_HTTP_10_Request::type (void) const
-{
- return this->request_line ()->method ();
-}
-
-const char *
-JAWS_HTTP_10_Request::path (void) const
-{
- if (this->path_ == 0)
- {
- JAWS_HTTP_10_Request *mutable_this = (JAWS_HTTP_10_Request *)this;
- mutable_this->path (this->uri ());
- }
- return this->path_;
-}
-
-void
-JAWS_HTTP_10_Request::set_status (int s)
-{
- HTTP_Request::set_status (s);
-}
-
-void
-JAWS_HTTP_10_Request::path (const char *uri_string)
-{
- char const *file_name = uri_string;
- char buf[MAXPATHLEN + 1];
- buf[0] = '\0';
-
- if (file_name == 0) return;
-
- 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;
- ACE_OS::strcpy (buf, pw_struct.pw_dir);
-#endif /* NOT ACE_WIN32 AND NOT VXWORKS */
- }
-
- ACE_OS::strcat (buf, "/");
-#if 0
- ACE_OS::strcat (buf, HTTP_Config::instance ()->user_dir ());
-#else
- ACE_OS::strcat (buf, ".www-docs");
-#endif
- ACE_OS::strcat (buf, file_name);
- }
- else
- {
- // With a starting '/' but no '~'
-#if 0
- ACE_OS::strcat (buf, HTTP_Config::instance ()->document_root ());
-#else
- ACE_OS::strcat (buf, ".");
-#endif
- ACE_OS::strcat (buf, file_name - 1);
- }
- }
-
- if (*buf != '\0')
- this->path_ = ACE_OS::strdup (buf);
-}
diff --git a/apps/JAWS2/HTTP_10_Request.h b/apps/JAWS2/HTTP_10_Request.h
deleted file mode 100644
index c6b204abe98..00000000000
--- a/apps/JAWS2/HTTP_10_Request.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// -*- c++ -*-
-// $Id$
-
-#ifndef JAWS_HTTP_10_REQUEST_H
-#define JAWS_HTTP_10_REQUEST_H
-
-#include "HTTPU/http_request.h"
-
-
-class JAWS_HTTP_10_Request : public HTTP_Request, public HTTP_HCodes
-{
-public:
-
- JAWS_HTTP_10_Request (void);
- ~JAWS_HTTP_10_Request (void);
-
- int type (void) const;
- const char * method (void) const;
- const char * uri (void) const;
- const char * version (void) const;
-
- const char * path (void) const;
- void path (const char *);
- void set_status (int);
-
-private:
-
- char *path_;
-};
-
-#endif /* JAWS_HTTP_10_REQUEST_H */
diff --git a/apps/JAWS2/HTTP_10_Write.cpp b/apps/JAWS2/HTTP_10_Write.cpp
deleted file mode 100644
index e22bfef849b..00000000000
--- a/apps/JAWS2/HTTP_10_Write.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-
-#include "JAWS/JAWS.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Policy.h"
-
-#include "HTTP_10.h"
-
-#include "HTTP_10_Request.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_10_Write, "$Id$")
-
-// --------------- WRITE TASK ----------------------
-
-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_TRACE ("JAWS_HTTP_10_Write_Task::handle_put");
-
- JAWS_IO_Handler *handler = data->io_handler ();
-
- JAWS_Dispatch_Policy *policy = this->policy ();
- if (policy == 0) policy = data->policy ();
-
- JAWS_IO *io = policy->io ();
-
- JAWS_HTTP_10_Request *info = ACE_static_cast (JAWS_HTTP_10_Request *,
- data->payload ());
-
- if (info->status () == (int) JAWS_HTTP_10_Request::STATUS_QUIT)
- {
- data->payload (0);
- delete info;
- return -3;
- }
-
-#if 0
- ACE_DEBUG ((LM_DEBUG, " (%t) request %s::%s::%s parsed\n",
- (info->method () ? info->method () : "-"),
- (info->uri () ? info->uri () : "="),
- (info->version () ? info->version () : "HTTP/0.9")));
-#endif
-
- if (info->type () != (int) JAWS_HTTP_10_Request::GET)
- info->set_status (JAWS_HTTP_10_Request::STATUS_NOT_IMPLEMENTED);
-
- if (info->type () == (int) JAWS_HTTP_10_Request::QUIT)
- info->set_status (JAWS_HTTP_10_Request::STATUS_QUIT);
-
- if (info->status () != (int) JAWS_HTTP_10_Request::STATUS_OK)
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, ! STATUS OK");
-
- char msg[] =
- "<html><head><title>HTTP/1.0 500 Internal Server Error</title>"
- "<body><h1>Server Error</h1>HTTP/1.0 500 Internal Server Error"
- "</body></html>";
-
- io->send_error_message (handler, msg, sizeof (msg));
- switch (handler->status ())
- {
- case JAWS_IO_Handler::WRITE_OK:
- case JAWS_IO_Handler::WRITE_OK_A:
- if (info->status () == (int) JAWS_HTTP_10_Request::STATUS_QUIT)
- {
- data->payload (0);
- delete info;
- return -3;
- }
-
- data->payload (0);
- delete info;
- return 0;
-
- case JAWS_IO_Handler::WRITE_ERROR:
- case JAWS_IO_Handler::WRITE_ERROR_A:
- data->payload (0);
- delete info;
- return -1;
-
- default:
- return 2;
- }
-
- return 2;
- }
- else
- {
- if (ACE_OS::strcmp (info->version (), "HTTP/0.9") == 0)
- io->transmit_file (handler,
- info->path (),
- "",
- 0,
- "",
- 0);
- else
- io->transmit_file (handler,
- info->path (),
- "HTTP/1.0 200 Ok\r\n\r\n",
- 19,
- "",
- 0);
-
- switch (handler->status ())
- {
- case JAWS_IO_Handler::TRANSMIT_OK_A:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, OK_A");
- data->payload (0);
- delete info;
- return 1;
- }
-
- case JAWS_IO_Handler::TRANSMIT_OK:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, OK");
- data->payload (0);
- delete info;
- return 0;
- }
- case JAWS_IO_Handler::TRANSMIT_ERROR:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, ERROR");
- data->payload (0);
- delete info;
- return 0;
- }
- case JAWS_IO_Handler::TRANSMIT_ERROR_A:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, ERROR_A");
- data->payload (0);
- delete info;
- return 1;
- }
- default:
- {
- JAWS_TRACE ("JAWS_HTTP_10_Write_Task::handle_put, DEFAULT");
- data->payload (0);
- delete info;
- return 1;
- }
- }
-
- }
-
- data->payload (0);
- delete info;
- return -1;
-}
diff --git a/apps/JAWS2/HTTP_Policy.cpp b/apps/JAWS2/HTTP_Policy.cpp
deleted file mode 100644
index b319668142d..00000000000
--- a/apps/JAWS2/HTTP_Policy.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// $Id$
-
-#include "HTTP_Policy.h"
-
-ACE_RCSID(PROTOTYPE, HTTP_Policy, "$Id$")
-
-HTTP_Policy::HTTP_Policy (JAWS_Concurrency_Base *concurrency)
- : concurrency_ (concurrency)
-{
-}
-
-JAWS_Concurrency_Base *
-HTTP_Policy::update (void *)
-{
- /* for now, we always return the same concurrency strategy */
- return this->concurrency_;
-}
diff --git a/apps/JAWS2/HTTP_Policy.h b/apps/JAWS2/HTTP_Policy.h
deleted file mode 100644
index 873b30f5070..00000000000
--- a/apps/JAWS2/HTTP_Policy.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef HTTP_POLICY_H
-#define HTTP_POLICY_H
-
-#include "JAWS/Concurrency.h"
-#include "JAWS/Policy.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/JAWS2/JAWS/Assoc_Array.cpp b/apps/JAWS2/JAWS/Assoc_Array.cpp
deleted file mode 100644
index 16781be98f4..00000000000
--- a/apps/JAWS2/JAWS/Assoc_Array.cpp
+++ /dev/null
@@ -1,274 +0,0 @@
-// $Id$
-
-#ifndef JAWS_ASSOC_ARRAY_CPP
-#define JAWS_ASSOC_ARRAY_CPP
-
-#include "ace/config-all.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Assoc_Array.h"
-
-ACE_RCSID(JAWS, Assoc_Array, "$Id$")
-
-template <class KEY, class DATA>
-JAWS_Assoc_Array<KEY,DATA>::JAWS_Assoc_Array (int maxsize)
- : k_array_ (0),
- d_array_ (0),
- maxsize_ (maxsize)
-{
- typedef void * ptr_type;
-
- this->k_array_ = ACE_reinterpret_cast(KEY **, new ptr_type[this->maxsize_]);
- if (this->k_array_ == 0)
- {
- this->maxsize_ = 0;
- return;
- }
-
- this->d_array_ = ACE_reinterpret_cast(DATA **, new ptr_type[this->maxsize_]);
- if (this->d_array_ == 0)
- {
- delete[] this->k_array_;
- this->maxsize_ = 0;
- return;
- }
-
- for (int i = 0; i < this->maxsize_; i++)
- {
- this->k_array_[i] = 0;
- this->d_array_[i] = 0;
- }
-}
-
-template <class KEY, class DATA>
-JAWS_Assoc_Array<KEY,DATA>::~JAWS_Assoc_Array (void)
-{
- this->clear ();
-
- delete[] ACE_reinterpret_cast(void **, this->k_array_);
- delete[] ACE_reinterpret_cast(void **, this->d_array_);
-
- this->k_array_ = 0;
- this->d_array_ = 0;
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array<KEY,DATA>::index (const KEY &k)
-{
- return this->find_i (k);
-}
-
-template <class KEY, class DATA> DATA *
-JAWS_Assoc_Array<KEY,DATA>::find (const KEY &k)
-{
- int i = this->find_i (k);
-
- return (i < this->maxsize_) ? this->d_array_[i] : 0;
-}
-
-template <class KEY, class DATA> DATA *
-JAWS_Assoc_Array<KEY,DATA>::find (int i)
-{
- return ((0 <= i) && (i < this->maxsize_)) ? this->d_array_[i] : 0;
-}
-
-template <class KEY, class DATA> DATA *
-JAWS_Assoc_Array<KEY,DATA>::insert (const KEY &k, const DATA &d)
-{
- int i = this->find_i (k);
-
- if (i == this->maxsize_)
- return 0;
-
- KEY *&kk = this->k_array_[i];
- DATA *&dd = this->d_array_[i];
-
- if (kk == 0)
- {
- dd = new DATA (d);
- if (dd == 0)
- return 0;
-
- KEY *kkk = new KEY (k);
- if (kkk == 0)
- {
- delete dd;
- return 0;
- }
- kk = kkk;
- }
-
- return dd;
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array<KEY,DATA>::remove (const KEY &k)
-{
- int i = this->find_i (k);
-
- if (i == this->maxsize_)
- return 0;
-
- KEY *&kk = this->k_array_[i];
- DATA *&dd = this->d_array_[i];
-
- if (kk != 0)
- {
- KEY *kkk = kk;
- kk = 0;
- delete kkk;
- delete dd;
- dd = 0;
- return 1;
- }
-
- return 0;
-}
-
-template <class KEY, class DATA> void
-JAWS_Assoc_Array<KEY,DATA>::clear (void)
-{
- for (int i = 0; i < this->maxsize_; i++)
- {
- if (this->k_array_[i] != 0)
- {
- delete this->k_array_[i];
- delete this->d_array_[i];
-
- this->k_array_[i] = 0;
- this->d_array_[i] = 0;
- }
- }
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array<KEY,DATA>::find_i (const KEY &k)
-{
- int j = this->maxsize_;
-
- for (int i = 0; i < this->maxsize_; i++)
- {
- KEY *kk = this->k_array_[i];
- if (kk)
- {
- if (*kk == k)
- return i;
- }
- else if (j == this->maxsize_)
- j = i;
- }
- return j;
-}
-
-template <class KEY, class DATA>
-JAWS_Assoc_Array_Iterator<KEY,DATA>::
-JAWS_Assoc_Array_Iterator (const JAWS_Assoc_Array<KEY, DATA> &aa)
- : aa_ (aa),
- i_ (0),
- j_ (0)
-{
-}
-
-template <class KEY, class DATA>
-JAWS_Assoc_Array_Iterator<KEY,DATA>::~JAWS_Assoc_Array_Iterator (void)
-{
-}
-
-template <class KEY, class DATA> KEY *
-JAWS_Assoc_Array_Iterator<KEY,DATA>::key (void)
-{
- return this->aa_.k_array_[this->i_];
-}
-
-template <class KEY, class DATA> DATA *
-JAWS_Assoc_Array_Iterator<KEY,DATA>::data (void)
-{
- return this->aa_.d_array_[this->i_];
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array_Iterator<KEY,DATA>::first (void)
-{
- this->i_ = 0;
- for (this->j_ = 0; this->j_ < this->aa_.maxsize_; this->j_++)
- {
- if (this->aa_.k_array_[this->j_] != 0)
- break;
- }
- return this->next ();
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array_Iterator<KEY,DATA>::last (void)
-{
- this->j_ = this->aa_.maxsize_;
- for (this->i_ = this->aa_.maxsize_; this->i_ > 0; this->i_--)
- {
- if (this->aa_.k_array_[this->i_-1] != 0)
- break;
- }
-
- return (this->i_-- > 0);
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array_Iterator<KEY,DATA>::next (void)
-{
- if (this->j_ < this->aa_.maxsize_)
- {
- this->i_ = this->j_;
- for (this->j_++; this->j_ < this->aa_.maxsize_; this->j_++)
- {
- if (this->aa_.k_array_[this->j_] != 0)
- break;
- }
- }
-
- return (this->i_ < this->aa_.maxsize_);
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array_Iterator<KEY,DATA>::previous (void)
-{
- if (this->i_ > 0)
- {
- for (this->j_ = this->i_; this->i_ > 0; this->i_--)
- {
- if (this->aa_.k_array_[this->i_-1] != 0)
- break;
- }
- }
-
- if (this->i_ == 0)
- this->first ();
- else
- this->i_--;
-
- return 1;
-}
-
-template <class KEY, class DATA> int
-JAWS_Assoc_Array_Iterator<KEY,DATA>::is_done (void)
-{
- return (this->j_ == this->aa_.maxsize_);
-}
-
-template <class KEY, class DATA>
-JAWS_Assoc_Array_Iterator<KEY,DATA>::
-JAWS_Assoc_Array_Iterator (const JAWS_Assoc_Array_Iterator<KEY, DATA> &aai)
- : aa_ (aai.aa_),
- i_ (aai.i_),
- j_ (aai.j_)
-{
-}
-
-template <class KEY, class DATA> void
-JAWS_Assoc_Array_Iterator<KEY,DATA>::
-operator= (const JAWS_Assoc_Array_Iterator<KEY, DATA> &)
-{
-}
-
-#endif /* !defined (JAWS_ASSOC_ARRAY_CPP) */
diff --git a/apps/JAWS2/JAWS/Assoc_Array.h b/apps/JAWS2/JAWS/Assoc_Array.h
deleted file mode 100644
index 8245cd67028..00000000000
--- a/apps/JAWS2/JAWS/Assoc_Array.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_ASSOC_ARRAY_H
-#define JAWS_ASSOC_ARRAY_H
-
-template <class KEY, class DATA> class JAWS_Assoc_Array_Iterator;
-
-template <class KEY, class DATA>
-class JAWS_Assoc_Array
-{
-
-friend JAWS_Assoc_Array_Iterator<KEY, DATA>;
-
-public:
- JAWS_Assoc_Array (int maxsize = 1024);
- ~JAWS_Assoc_Array (void);
-
- int index (const KEY &k);
- // Returns the index into the array associated with key k
- // Returns -1 if not found.
-
- DATA * find (const KEY &k);
- // Returns the data associated with key k. 0 if not found.
-
- DATA * find (int i);
- // Returns the data associated with array index i. Returns 0 if the
- // index is invalid.
-
- DATA * insert (const KEY &k, const DATA &d);
- // Inserts a *copy* of the key and data into the associated array.
- // Both KEY and DATA must have well defined semantics for copy
- // construction. This method returns a pointer to the inserted item
- // copy, or 0 if an error occurred. NOTE: if an identical key
- // already exists in the tree, no new item is created, and the
- // returned pointer addresses the existing item associated with the
- // existing key.
-
- int remove (const KEY &k);
- // Removes the item associated with the given key from the
- // tree and destroys it. Returns 1 if it found the item
- // and successfully destroyed it, 0 if it did not find the
- // item, or -1 if an error occurred.
-
- void clear (void);
- // Destroys all keys and associated data.
-
-protected:
-
- int find_i (const KEY &k);
- // If k points to an associated data item, then this function
- // returns the index into the arrays that hold it. Otherwise, it
- // returns an index suitable to insert the item. If the item is not
- // found and the table is full, maxsize_ is returned.
-
-private:
- KEY **k_array_;
- DATA **d_array_;
- int maxsize_;
-};
-
-template <class KEY, class DATA>
-class JAWS_Assoc_Array_Iterator
-{
-public:
-
- JAWS_Assoc_Array_Iterator (const JAWS_Assoc_Array<KEY, DATA> &aa);
- ~JAWS_Assoc_Array_Iterator (void);
-
- KEY * key (void);
- DATA * data (void);
-
- int first (void);
- int last (void);
- int next (void);
- int previous (void);
- int is_done (void);
-
-private:
-
- // declare private and do not define: explicitly
- // prevent assignment and copy construction of iterators
- JAWS_Assoc_Array_Iterator (const JAWS_Assoc_Array_Iterator<KEY, DATA> &);
- void operator= (const JAWS_Assoc_Array_Iterator<KEY, DATA> &);
-
-private:
-
- const JAWS_Assoc_Array<KEY, DATA> &aa_;
-
- int i_;
- // The current item pointed by iterator.
-
- int j_;
- // The next item to be pointed to by iterator.
-
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Assoc_Array.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* !defined (JAWS_ASSOC_ARRAY_H) */
diff --git a/apps/JAWS2/JAWS/Cache_Hash_T.cpp b/apps/JAWS2/JAWS/Cache_Hash_T.cpp
deleted file mode 100644
index a908c4147f1..00000000000
--- a/apps/JAWS2/JAWS/Cache_Hash_T.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-// $Id$
-
-#ifndef JAWS_CACHE_HASH_T_CPP
-#define JAWS_CACHE_HASH_T_CPP
-
-#include "JAWS/Cache_Hash_T.h"
-#include "JAWS/Hash_Bucket_T.h"
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> unsigned long
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::hash (const EXT_ID &ext_id) const
-{
- return HASH_FUNC (ext_id) % this->size_;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::isprime (unsigned long number) const
-{
- unsigned long d = 3;
-
- if (number <= 2) return (number == 2);
-
- if (number % 2 == 0) return 0;
-
- while (d <= number/d)
- {
- if (number % d == 0) return 0;
- d += 2;
- }
-
- return 1;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::new_cachebucket (size_t hash_idx)
-{
- if (this->hashtable_[hash_idx] == 0)
- {
- size_t alloc_size = sizeof (CACHE_BUCKET_MANAGER);
- ACE_NEW_MALLOC_RETURN (this->hashtable_[hash_idx],
- (CACHE_BUCKET_MANAGER *)
- this->allocator_->malloc (alloc_size),
- CACHE_BUCKET_MANAGER (this->allocator_), -1);
- }
-
- return 0;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC>
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::JAWS_Cache_Hash (ACE_Allocator *alloc,
- size_t size)
- : allocator_ (alloc),
- hashtable_ (0)
-{
- while (!this->isprime (size))
- size++;
-
- this->size_ = size;
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- size_t memsize = this->size_ * sizeof (CACHE_BUCKET_MANAGER *);
-
- this->hashtable_
- = (CACHE_BUCKET_MANAGER **) this->allocator_->malloc (memsize);
-
- if (this->hashtable_)
- {
- for (size_t i = 0; i < this->size_; i++)
- this->hashtable_[i] = 0;
- }
- else
- {
- this->size_ = 0;
- // should indicate something is wrong to the user.
- }
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC>
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::~JAWS_Cache_Hash (void)
-{
- if (this->hashtable_)
- {
- for (size_t i = 0; i < this->size_; i++)
- {
- if (this->hashtable_[i])
- {
-
- ACE_DES_FREE_TEMPLATE3(this->hashtable_[i],
- this->allocator_->free,
- JAWS_Hash_Bucket_Manager,
- EXT_ID,
- JAWS_Cache_Object *,
- EQ_FUNC);
-
-
-
-
-
- this->hashtable_[i] = 0;
- }
- }
- this->allocator_->free (this->hashtable_);
- this->hashtable_ = 0;
- }
-
- this->allocator_ = 0;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::find (const EXT_ID &ext_id) const
-{
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- return -1;
-
- return this->hashtable_[hash_idx]->find (ext_id);
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::find (const EXT_ID &ext_id,
- JAWS_Cache_Object *&int_id) const
-{
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- return -1;
-
- return this->hashtable_[hash_idx]->find (ext_id, int_id);
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::bind (const EXT_ID &ext_id,
- JAWS_Cache_Object *const &int_id)
-{
- int result;
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- if (this->new_cachebucket (hash_idx) == -1)
- return -1;
-
- result = this->hashtable_[hash_idx]->bind (ext_id, int_id);
- }
- else
- result = this->hashtable_[hash_idx]->bind (ext_id, int_id);
-
- return result;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::trybind (const EXT_ID &ext_id,
- JAWS_Cache_Object *&int_id)
-{
- int result;
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- if (this->new_cachebucket (hash_idx) == -1)
- return -1;
-
- result = this->hashtable_[hash_idx]->trybind (ext_id, int_id);
- }
- else
- result = this->hashtable_[hash_idx]->trybind (ext_id, int_id);
-
- return result;
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::rebind (const EXT_ID &ext_id,
- JAWS_Cache_Object *const &int_id,
- EXT_ID &old_ext_id,
- JAWS_Cache_Object *&old_int_id)
-{
- int result;
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- if (this->new_cachebucket (hash_idx) == -1)
- return -1;
-
- result = this->hashtable_[hash_idx]->rebind (ext_id, int_id,
- old_ext_id, old_int_id);
- }
- else
- result = this->hashtable_[hash_idx]->rebind (ext_id, int_id,
- old_ext_id, old_int_id);
-
- return result;
-}
-
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::unbind (const EXT_ID &ext_id)
-{
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- return -1;
-
- return this->hashtable_[hash_idx]->unbind (ext_id);
-}
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::unbind (const EXT_ID &ext_id,
- JAWS_Cache_Object *&int_id)
-{
- unsigned long hash_idx = this->hash (ext_id);
-
- if (this->hashtable_[hash_idx] == 0)
- return -1;
-
- return this->hashtable_[hash_idx]->unbind (ext_id, int_id);
-}
-
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC> size_t
-JAWS_Cache_Hash<EXT_ID,HASH_FUNC,EQ_FUNC>::size (void) const
-{
- return this->size_;
-}
-
-
-
-
-#endif /* JAWS_CACHEHASH_T_CPP */
diff --git a/apps/JAWS2/JAWS/Cache_Hash_T.h b/apps/JAWS2/JAWS/Cache_Hash_T.h
deleted file mode 100644
index 2d310873cb2..00000000000
--- a/apps/JAWS2/JAWS/Cache_Hash_T.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_HASH_T_H
-#define JAWS_CACHE_HASH_T_H
-
-#include "ace/OS.h"
-#include "JAWS/Cache_Object.h"
-
-// Forward declaration
-template <class EXT_ID, class INT_ID, class EQ_FUNC>
-class JAWS_Hash_Bucket_Manager;
-
-template <class EXT_ID, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Hash
-{
-public:
-
- typedef JAWS_Hash_Bucket_Manager<EXT_ID, JAWS_Cache_Object *, EQ_FUNC>
- CACHE_BUCKET_MANAGER;
-
- JAWS_Cache_Hash (ACE_Allocator *alloc = 0, size_t size = 521);
- // 521 == smallest number > 512 that is prime. Why is a prime
- // number important? I am trying to maximize scattering when using
- // mod on the hashed value. This might be bogus though.
-
- virtual ~JAWS_Cache_Hash (void);
-
- int find (const EXT_ID &ext_id) const;
- int find (const EXT_ID &ext_id, JAWS_Cache_Object *&int_id) const;
- int bind (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id);
- int trybind (const EXT_ID &ext_id, JAWS_Cache_Object *&int_id);
- int rebind (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id,
- EXT_ID &old_ext_id, JAWS_Cache_Object *&old_int_id);
-
- int unbind (const EXT_ID &ext_id);
- int unbind (const EXT_ID &ext_id, JAWS_Cache_Object *&int_id);
-
- size_t size (void) const;
-
-protected:
-
- virtual unsigned long hash (const EXT_ID &ext_id) const;
- int isprime (unsigned long number) const;
- int new_cachebucket (size_t idx);
-
-private:
-
- ACE_Allocator *allocator_;
- size_t size_;
-
- ACE_SYNCH_MUTEX lock_;
- CACHE_BUCKET_MANAGER **hashtable_;
-
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Cache_Hash_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* ACE_CACHE_HASH_T_H */
diff --git a/apps/JAWS2/JAWS/Cache_Heap_T.cpp b/apps/JAWS2/JAWS/Cache_Heap_T.cpp
deleted file mode 100644
index b19ff8e79b1..00000000000
--- a/apps/JAWS2/JAWS/Cache_Heap_T.cpp
+++ /dev/null
@@ -1,290 +0,0 @@
-// $Id$
-
-#ifndef JAWS_CACHE_HEAP_T_CPP
-#define JAWS_CACHE_HEAP_T_CPP
-
-#include "JAWS/Cache_Heap_T.h"
-#include "JAWS/Cache_Manager_T.h"
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::JAWS_Cache_Heap (ACE_Allocator *alloc,
- size_t maxsize)
- : allocator_ (alloc),
- maxsize_ (maxsize),
- size_ (0)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- size_t memsize
- = this->maxsize_ * sizeof (Cache_Heap_Item *);
-
- this->heap_ = (Cache_Heap_Item **) this->allocator_->malloc (memsize);
- if (this->heap_)
- {
- for (size_t i = 0; i < this->maxsize_; i++)
- this->heap_[i] = 0;
- }
- else
- {
- this->maxsize_ = 0;
- // should indicate something
- }
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::~JAWS_Cache_Heap (void)
-{
- if (this->heap_ != 0)
- {
- for (size_t i = 0; i < this->maxsize_; i++)
- {
- if (this->heap_[i])
- {
- ACE_DES_FREE_TEMPLATE4(this->heap_[i], this->allocator_->free,
- JAWS_Cache_Heap_Item,
- EXT_ID, FACT, H_FN, E_FN);
-
- this->heap_[i] = 0;
- }
- }
- this->allocator_->free (this->heap_);
- this->heap_ = 0;
- }
-
- this->allocator_ = 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::is_empty (void) const
-{
- return (this->size_ == 0);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::is_full (void) const
-{
- return (this->size_ == this->maxsize_);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> size_t
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::size (void) const
-{
- return this->size_;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> size_t
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::maxsize (void) const
-{
- return this->maxsize_;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::maxsize (Cache_Manager *cm,
- size_t new_maxsize)
-{
- int result = -1;
-
- size_t memsize
- = new_maxsize * sizeof (Cache_Heap_Item *);
-
- Cache_Heap_Item **new_heap
- = (Cache_Heap_Item **) this->allocator_->malloc (memsize);
- if (new_heap)
- {
- while (new_maxsize < this->size_)
- cm->FLUSH_i ();
-
- for (size_t i = 0; i < new_maxsize; i++)
- if (i < this->size_)
- new_heap[i] = this->heap_[i];
- else
- new_heap[i] = 0;
-
- Cache_Heap_Item ** volatile temp = this->heap_;
- this->heap_ = new_heap;
- this->maxsize_ = new_maxsize;
- this->allocator_->free (temp);
- result = 0;
- }
-
- return result;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::insert_i (Cache_Heap_Item *item)
-{
- /* ASSERT: this->size_ < this->maxsize_ */
-
- size_t i;
-
- for (i = this->size_ + 1; i > 1; i /= 2)
- {
- if (item->priority () > this->heap_[i/2 - 1]->priority ())
- break;
-
- this->heap_[i-1] = this->heap_[i/2 - 1];
- this->heap_[i-1]->heap_idx_ = i-1;
- }
-
- this->heap_[i-1] = item;
- this->heap_[i-1]->heap_idx_ = i-1;
- this->size_++;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::insert (const EXT_ID &ext_id,
- JAWS_Cache_Object *const &int_id)
-{
- if (this->is_full ())
- return -1;
-
- Cache_Heap_Item *item;
- ACE_NEW_MALLOC_RETURN (item,
- (Cache_Heap_Item *)
- this->allocator_->malloc (sizeof (Cache_Heap_Item)),
- Cache_Heap_Item (ext_id, int_id), -1);
-
- this->insert_i (item);
-
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::remove_i (void)
-{
- /* ASSERT: this->size_ > 0 */
- this->size_--;
- Cache_Heap_Item *temp = this->heap_[this->size_];
- this->heap_[this->size_] = 0;
-
- size_t i = 1;
- while (2*i <= this->size_)
- {
- size_t child = 2*i;
- if ((child < this->size_)
- && (this->heap_[2*i]->priority ()
- < this->heap_[2*i - 1]->priority ()))
- child = 2*i + 1;
-
- if (temp->priority () < this->heap_[child-1]->priority ())
- break;
-
- this->heap_[i-1] = this->heap_[child-1];
- this->heap_[i-1]->heap_idx_ = i-1;
- i = child;
- }
-
- if (this->size_ > 0)
- {
- this->heap_[i-1] = temp;
- this->heap_[i-1]->heap_idx_ = i-1;
- }
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::remove_i (size_t pos)
-{
- Cache_Heap_Item *item = this->heap_[pos];
-
- if (pos > 0)
- {
- int i = pos + 1;
- do
- {
- this->heap_[i-1] = this->heap_[i/2 - 1];
- this->heap_[i-1]->heap_idx_ = i-1;
- i /= 2;
- }
- while (i > 1);
- }
-
- this->heap_[0] = item;
-
- this->remove_i ();
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::remove (EXT_ID &ext_id,
- JAWS_Cache_Object *&int_id)
-{
- if (this->is_empty ())
- return -1;
-
- Cache_Heap_Item *item = this->heap_[0];
- item->int_id_->heap_item (0);
-
- this->remove_i ();
-
- ext_id = item->ext_id_;
- int_id = item->int_id_;
-
- ACE_DES_FREE_TEMPLATE4(item, this->allocator_->free,
- JAWS_Cache_Heap_Item,
- EXT_ID, FACT, H_FN, E_FN);
-
- item = 0;
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::remove (void *item)
-{
- if (item == 0)
- return 0;
-
- Cache_Heap_Item *real_item = (Cache_Heap_Item *) item;
-
- // Make sure the item is where it thinks it is.
- if (this->heap_[real_item->heap_idx_] != real_item)
- return -1;
-
- real_item->int_id_->heap_item (0);
- this->remove_i (real_item->heap_idx_);
-
- ACE_DES_FREE_TEMPLATE4(real_item, this->allocator_->free,
- JAWS_Cache_Heap_Item,
- EXT_ID, FACT, H_FN, E_FN);
-
- real_item = 0;
-
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_Heap<EXT_ID,FACT,H_FN,E_FN>::adjust (void *item)
-{
- if (item == 0)
- return 0;
-
- Cache_Heap_Item *real_item = (Cache_Heap_Item *) item;
-
- // Make sure the item is where it thinks it is.
- if (this->heap_[real_item->heap_idx_] != real_item)
- return -1;
-
- this->remove_i (real_item->heap_idx_);
- this->insert_i (real_item);
-
- return 0;
-}
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_Heap_Item<EXT_ID,FACT,H_FN,E_FN>::
-JAWS_Cache_Heap_Item (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id)
- : ext_id_ (ext_id),
- int_id_ (int_id),
- heap_idx_ (0)
-{
- this->int_id_->heap_item (this);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> unsigned int
-JAWS_Cache_Heap_Item<EXT_ID,FACT,H_FN,E_FN>::priority (void)
-{
- return this->int_id_->priority ();
-}
-
-
-#endif /* JAWS_CACHE_HEAP_T_CPP */
diff --git a/apps/JAWS2/JAWS/Cache_Heap_T.h b/apps/JAWS2/JAWS/Cache_Heap_T.h
deleted file mode 100644
index 16fbe890fe6..00000000000
--- a/apps/JAWS2/JAWS/Cache_Heap_T.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_HEAP_T_H
-#define JAWS_CACHE_HEAP_T_H
-
-#include "ace/Malloc.h"
-#include "JAWS/Cache_Object.h"
-
-// Forward declarations
-template <class EXT_ID, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Manager;
-
-template <class EXT_ID, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Heap_Item;
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-class JAWS_Cache_Heap
-// Roll my own heap here. Eventually, a heap should be its own
-// standalone data structure.
-{
-public:
-
- typedef JAWS_Cache_Manager<EXT_ID, FACT, H_FN, E_FN> Cache_Manager;
- typedef JAWS_Cache_Heap_Item<EXT_ID, FACT, H_FN, E_FN> Cache_Heap_Item;
-
- JAWS_Cache_Heap (ACE_Allocator *alloc = 0, size_t maxsize = 8192);
- // maxsize is the total number of objects the in memory cache is
- // willing to manage
-
- ~JAWS_Cache_Heap (void);
-
- int is_empty (void) const;
- int is_full (void) const;
-
- size_t size (void) const;
- size_t maxsize (void) const;
-
- int maxsize (Cache_Manager *cm, size_t new_maxsize);
- // attempt to grow (or shrink) the heap. Return 0 on success, -1 on
- // error.
-
- int insert (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id);
- // attempt to insert int_id into heap.
-
- int remove (EXT_ID &ext_id, JAWS_Cache_Object *&int_id);
- // attempt to remove the top element of heap.
-
- int remove (void *item);
- // treat item as a Cache_Heap_Item, and remove it from the heap
-
- int adjust (void *item);
- // treat item as a Cache_Heap_Item, and alter its heap position
-
-protected:
-
- void insert_i (Cache_Heap_Item *item);
- // insert item into heap.
-
- void remove_i (size_t pos);
- // remove the element residing at pos, but do not delete it.
-
- void remove_i (void);
- // remove the element residing at the top of heap, but do not delete it.
-
-private:
-
- ACE_Allocator *allocator_;
-
- size_t maxsize_;
- size_t size_;
-
- Cache_Heap_Item **heap_;
-
-};
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-class JAWS_Cache_Heap_Item
-{
-
- friend class JAWS_Cache_Heap<EXT_ID, FACT, H_FN, E_FN>;
-
-public:
-
- JAWS_Cache_Heap_Item (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id);
- unsigned int priority (void);
-
-private:
-
- EXT_ID ext_id_;
- JAWS_Cache_Object *int_id_;
-
- size_t heap_idx_;
-
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Cache_Heap_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* JAWS_CACHE_HEAP_T_H */
diff --git a/apps/JAWS2/JAWS/Cache_List_T.cpp b/apps/JAWS2/JAWS/Cache_List_T.cpp
deleted file mode 100644
index 42a493aee55..00000000000
--- a/apps/JAWS2/JAWS/Cache_List_T.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-// $Id$
-
-#ifndef JAWS_CACHE_LIST_T_CPP
-#define JAWS_CACHE_LIST_T_CPP
-
-#include "JAWS/Cache_List_T.h"
-#include "JAWS/Cache_Manager_T.h"
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::JAWS_Cache_List (ACE_Allocator *alloc,
- size_t maxsize)
- : allocator_ (alloc),
- maxsize_ (maxsize),
- size_ (0),
- head_ (0),
- tail_ (0)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::~JAWS_Cache_List (void)
-{
- while (this->head_ != 0)
- this->remove (this->head_);
-
- this->allocator_ = 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::is_empty (void) const
-{
- return (this->size_ == 0);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::is_full (void) const
-{
- return (this->size_ == this->maxsize_);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> size_t
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::size (void) const
-{
- return this->size_;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> size_t
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::maxsize (void) const
-{
- return this->maxsize_;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::maxsize (Cache_Manager *,
- size_t new_maxsize)
-{
- this->maxsize_ = new_maxsize;
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::insert_i (Cache_List_Item *item)
-{
- /* ASSERT: this->size_ < this->maxsize_ */
- item->next_ = 0;
- item->prev_ = 0;
-
- if (this->size_++ == 0)
- this->head_ = this->tail_ = item;
- else
- {
- this->tail_->next_ = item;
- item->prev_ = this->tail_;
- this->tail_ = item;
- }
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::insert (const EXT_ID &ext_id,
- JAWS_Cache_Object *const &int_id)
-{
- if (this->is_full ())
- return -1;
-
- Cache_List_Item *item;
- ACE_NEW_MALLOC_RETURN (item,
- (Cache_List_Item *)
- this->allocator_->malloc (sizeof (Cache_List_Item)),
- Cache_List_Item (ext_id, int_id), -1);
-
- this->insert_i (item);
-
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::remove_i (void)
-{
- /* ASSERT: this->size_ > 0 */
- this->size_--;
- this->item_ = this->head_;
- if (this->head_ == this->tail_)
- {
- this->head_ = this->tail_ = 0;
- return;
- }
-
- this->head_ = this->head_->next_;
- this->head_->prev_ = 0;
- this->item_->next_ = 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> void
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::remove_i (Cache_List_Item *item)
-{
- this->size_--;
- this->item_ = item;
-
- if (item->next_ == 0 && item->prev_ == 0)
- {
- this->head_ = this->tail_ = 0;
- }
- else if (item->next_ == 0)
- {
- this->tail_ = item->prev_;
- this->tail_->next_ = 0;
- }
- else if (item->prev_ == 0)
- {
- this->head_ = item->next_;
- this->head_->prev_ = 0;
- }
- else
- {
- item->next_->prev_ = item->prev_;
- item->prev_->next_ = item->next_;
- }
-
- item->next_ = 0;
- item->prev_ = 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::remove (EXT_ID &ext_id,
- JAWS_Cache_Object *&int_id)
-{
- if (this->is_empty ())
- return -1;
-
- this->remove_i ();
-
- ext_id = this->item_->ext_id_;
- int_id = this->item_->int_id_;
- int_id->heap_item (0);
-
-
- ACE_DES_FREE_TEMPLATE4(this->item_, this->allocator_->free,
- JAWS_Cache_List_Item,
- EXT_ID, FACT, H_FN, E_FN);
-
-
-
- this->item_ = 0;
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::remove (void *item)
-{
- if (item == 0)
- return 0;
-
- this->remove_i ((Cache_List_Item *) item);
- this->item_->int_id_->heap_item (0);
-
-
- ACE_DES_FREE_TEMPLATE4(this->item_, this->allocator_->free,
- JAWS_Cache_List_Item,
- EXT_ID, FACT, H_FN, E_FN);
-
-
-
- this->item_ = 0;
-
- return 0;
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> int
-JAWS_Cache_List<EXT_ID,FACT,H_FN,E_FN>::adjust (void *item)
-{
- if (item == 0)
- return 0;
-
- Cache_List_Item *real_item = (Cache_List_Item *) item;
-
- this->remove_i (real_item);
- this->insert_i (real_item);
- this->item_ = 0;
-
- return 0;
-}
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-JAWS_Cache_List_Item<EXT_ID,FACT,H_FN,E_FN>::
-JAWS_Cache_List_Item (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id)
- : ext_id_ (ext_id),
- int_id_ (int_id)
-{
- this->int_id_->heap_item (this);
-}
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN> unsigned int
-JAWS_Cache_List_Item<EXT_ID,FACT,H_FN,E_FN>::priority (void)
-{
- return this->int_id_->priority ();
-}
-
-
-#endif /* JAWS_CACHE_LIST_T_CPP */
diff --git a/apps/JAWS2/JAWS/Cache_List_T.h b/apps/JAWS2/JAWS/Cache_List_T.h
deleted file mode 100644
index 7dd9c7c8ca1..00000000000
--- a/apps/JAWS2/JAWS/Cache_List_T.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_LIST_T_H
-#define JAWS_CACHE_LIST_T_H
-
-#include "ace/Malloc.h"
-#include "JAWS/Cache_Object.h"
-
-// Forward declarations
-template <class EXT_ID, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Manager;
-
-template <class EXT_ID, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_List_Item;
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-class JAWS_Cache_List
-// Roll my own heap here. Eventually, a heap should be its own
-// standalone data structure.
-//
-// This version is not a heap, but a doubly linked list. We are
-// trying to simplify all the heap operations to be O(1).
-{
-public:
-
- typedef JAWS_Cache_Manager<EXT_ID, FACT, H_FN, E_FN> Cache_Manager;
- typedef JAWS_Cache_List_Item<EXT_ID, FACT, H_FN, E_FN> Cache_List_Item;
-
- JAWS_Cache_List (ACE_Allocator *alloc = 0, size_t maxsize = 8192);
- // maxsize is the total number of objects the in memory cache is
- // willing to manage
-
- ~JAWS_Cache_List (void);
-
- int is_empty (void) const;
- int is_full (void) const;
-
- size_t size (void) const;
- size_t maxsize (void) const;
-
- int maxsize (Cache_Manager *cm, size_t new_maxsize);
- // attempt to grow (or shrink) the heap. Return 0 on success, -1 on
- // error.
-
- int insert (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id);
- // attempt to insert int_id into heap.
-
- int remove (EXT_ID &ext_id, JAWS_Cache_Object *&int_id);
- // attempt to remove the top element of heap.
-
- int remove (void *item);
- // treat item as a Cache_List_Item, and remove it from the heap
-
- int adjust (void *item);
- // treat item as a Cache_List_Item, and alter its heap position
-
-protected:
-
- void insert_i (Cache_List_Item *item);
- // insert item into heap.
-
- void remove_i (Cache_List_Item *item);
- // remove the element residing at pos, but do not delete it.
-
- void remove_i (void);
- // remove the element residing at the top of heap, but do not delete it.
-
-private:
-
- ACE_Allocator *allocator_;
-
- size_t maxsize_;
- size_t size_;
-
- Cache_List_Item *item_;
-
- Cache_List_Item *head_;
- Cache_List_Item *tail_;
-
-};
-
-
-template <class EXT_ID, class FACT, class H_FN, class E_FN>
-class JAWS_Cache_List_Item
-{
-
- friend class JAWS_Cache_List<EXT_ID, FACT, H_FN, E_FN>;
-
-public:
-
- typedef JAWS_Cache_List<EXT_ID, FACT, H_FN, E_FN> Cache_List;
-
- JAWS_Cache_List_Item (const EXT_ID &ext_id, JAWS_Cache_Object *const &int_id);
- unsigned int priority (void);
-
-private:
-
- EXT_ID ext_id_;
- JAWS_Cache_Object *int_id_;
-
- JAWS_Cache_List_Item *next_;
- JAWS_Cache_List_Item *prev_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Cache_List_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* JAWS_CACHE_LIST_T_H */
diff --git a/apps/JAWS2/JAWS/Cache_Manager.cpp b/apps/JAWS2/JAWS/Cache_Manager.cpp
deleted file mode 100644
index a91ac38375a..00000000000
--- a/apps/JAWS2/JAWS/Cache_Manager.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-#include "ace/ACE.h"
-#include "ace/Synch.h"
-
-#include "JAWS/Cache_Manager.h"
-#include "JAWS/Cache_List_T.h"
-
-JAWS_String_Hash_Functor::JAWS_String_Hash_Functor (const char *s)
- : i_ (0)
-{
- this->i_ = ACE::hash_pjw (s);
-}
-
-JAWS_String_Hash_Functor::operator unsigned long (void) const
-{
- return this->i_;
-}
-
-JAWS_String_Equal_Functor::JAWS_String_Equal_Functor (const char *s1,
- const char *s2)
- : i_ (0)
-{
- this->i_ = ACE_OS::strcmp (s1, s2);
-}
-
-JAWS_String_Equal_Functor::operator int (void) const
-{
- return this->i_ == 0;
-}
-
-JAWS_Strdup_String::JAWS_Strdup_String (void)
- : c_ (0),
- s_ (0)
-{
-}
-
-JAWS_Strdup_String::JAWS_Strdup_String (const char *s)
- : c_ (0),
- s_ (0)
-{
- this->c_ = new int (1);
- this->s_ = ACE_OS::strdup (s);
-}
-
-JAWS_Strdup_String::JAWS_Strdup_String (const JAWS_Strdup_String &s)
- : c_ (s.c_),
- s_ (s.s_)
-{
- ++*(this->c_);
-}
-
-JAWS_Strdup_String::~JAWS_Strdup_String (void)
-{
- if (this->c_ && --*(this->c_) == 0)
- {
- if (this->s_)
- ACE_OS::free (this->s_);
- delete this->c_;
- }
- this->s_ = 0;
- this->c_ = 0;
-}
-
-JAWS_Strdup_String::operator const char * (void) const
-{
- return this->s_;
-}
-
-void
-JAWS_Strdup_String::operator = (const char *s)
-{
- if (this->c_ && --*(this->c_) == 0)
- {
- if (this->s_)
- ACE_OS::free (this->s_);
- delete this->c_;
- }
- this->c_ = new int (1);
- this->s_ = ACE_OS::strdup (s);
-}
-
-void
-JAWS_Strdup_String::operator = (const JAWS_Strdup_String &s)
-{
- if (this->c_ && --*(this->c_) == 0)
- {
- if (this->s_)
- ACE_OS::free (this->s_);
- delete this->c_;
- }
- this->c_ = s.c_;
- this->s_ = s.s_;
- ++*(this->c_);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class JAWS_Hash_Bucket_Item<JAWS_Strdup_String, JAWS_Cache_Object *>;
-template class JAWS_Hash_Bucket_DLCStack<JAWS_Strdup_String, JAWS_Cache_Object *>;
-template class JAWS_Hash_Bucket_DLCStack_Iterator<JAWS_Strdup_String,
- JAWS_Cache_Object *>;
-template class JAWS_Hash_Bucket_Manager<JAWS_Strdup_String,
- JAWS_Cache_Object *,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Hash<JAWS_Strdup_String,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List_Item<JAWS_Strdup_String,
- JAWS_Referenced_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List<JAWS_Strdup_String,
- JAWS_Referenced_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Referenced_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List_Item<JAWS_Strdup_String,
- JAWS_Counted_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List<JAWS_Strdup_String,
- JAWS_Counted_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Counted_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class ACE_Singleton<JAWS_Referenced_Cache_Object_Factory,
- ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_Counted_Cache_Object_Factory,
- ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_String_Referenced_Cache_Manager,
- ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_String_Counted_Cache_Manager,
- ACE_SYNCH_MUTEX>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate JAWS_Hash_Bucket_Item<JAWS_Strdup_String, JAWS_Cache_Object *>
-#pragma instantiate JAWS_Hash_Bucket_DLCStack<JAWS_Strdup_String, \
- JAWS_Cache_Object *>
-#pragma instantiate JAWS_Hash_Bucket_DLCStack_Iterator<JAWS_Strdup_String, \
- JAWS_Cache_Object *>
-#pragma instantiate JAWS_Hash_Bucket_Manager<JAWS_Strdup_String, \
- JAWS_Cache_Object *, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Hash<JAWS_Strdup_String, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Heap_Item<JAWS_Strdup_String, \
- ACE_Referenced_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Heap<JAWS_Strdup_String, \
- JAWS_Referenced_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Manager<JAWS_Strdup_String, \
- JAWS_Referenced_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Heap_Item<JAWS_Strdup_String, \
- JAWS_Counted_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Heap<JAWS_Strdup_String, \
- JAWS_Counted_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate JAWS_Cache_Manager<JAWS_Strdup_String, \
- JAWS_Counted_Cache_Object_Factory, \
- JAWS_String_Hash_Functor, \
- JAWS_String_Equal_Functor>
-#pragma instantiate ACE_Singleton<JAWS_Referenced_Cache_Object_Factory, \
- ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_Counted_Cache_Object_Factory, \
- ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_String_Referenced_Cache_Manager, \
- ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_Singleton<JAWS_String_Counted_Cache_Manager, \
- ACE_SYNCH_MUTEX>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS2/JAWS/Cache_Manager.h b/apps/JAWS2/JAWS/Cache_Manager.h
deleted file mode 100644
index 723e6729f33..00000000000
--- a/apps/JAWS2/JAWS/Cache_Manager.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CACHE_MANAGER_H
-#define JAWS_CACHE_MANAGER_H
-
-#include "ace/OS.h"
-#include "ace/ACE.h"
-#include "ace/Synch.h"
-
-#include "JAWS/Cache_Manager_T.h"
-
-class JAWS_String_Hash_Functor
-{
-public:
- JAWS_String_Hash_Functor (const char *s);
- operator unsigned long (void) const;
-
-private:
- unsigned long i_;
-};
-
-class JAWS_String_Equal_Functor
-{
-public:
- JAWS_String_Equal_Functor (const char *s1, const char *s2);
- operator int (void) const;
-
-private:
- int i_;
-};
-
-class JAWS_Strdup_String
-{
-public:
-
- JAWS_Strdup_String (void);
- JAWS_Strdup_String (const char *s);
- JAWS_Strdup_String (const JAWS_Strdup_String &s);
- ~JAWS_Strdup_String (void);
-
- operator const char * (void) const;
- void operator = (const char *s);
- void operator = (const JAWS_Strdup_String &s);
-
-private:
-
- int *c_;
- char *s_;
-
-};
-
-typedef JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Referenced_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>
- JAWS_String_Referenced_Cache_Manager;
-
-typedef JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Counted_Cache_Object_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>
- JAWS_String_Counted_Cache_Manager;
-
-
-#endif /* JAWS_CACHE_MANAGER_H */
diff --git a/apps/JAWS2/JAWS/Cache_Manager_T.cpp b/apps/JAWS2/JAWS/Cache_Manager_T.cpp
deleted file mode 100644
index 2d05437276c..00000000000
--- a/apps/JAWS2/JAWS/Cache_Manager_T.cpp
+++ /dev/null
@@ -1,576 +0,0 @@
-// $Id$
-
-#ifndef JAWS_CACHE_MANAGER_T_CPP
-#define JAWS_CACHE_MANAGER_T_CPP
-
-#include "JAWS/Cache_Manager_T.h"
-#include "JAWS/Cache_Hash_T.h"
-#include "JAWS/Cache_List_T.h"
-
-class Cache_Manager;
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::JAWS_Cache_Manager (ACE_Allocator *alloc,
- JAWS_Cache_Object_Factory *cof,
- size_t hashsize,
- size_t maxsize,
- size_t maxobjsize,
- size_t minobjsize,
- size_t highwater,
- size_t lowwater,
- int timetolive,
- int counted)
- : allocator_ (alloc),
- factory_ (cof),
- hashsize_ (hashsize),
- maxsize_ (maxsize),
- maxobjsize_ (maxobjsize),
- minobjsize_ (minobjsize),
- highwater_ (highwater),
- lowwater_ (lowwater),
- waterlevel_ (0),
- timetolive_ (timetolive),
- counted_ (counted),
- hash_ (0),
- heap_ (0)
-{
- // Some sanity checking needed here --
- if (this->lowwater_ > this->highwater_)
- this->lowwater_ = this->highwater_ / 2;
-
- if (this->maxobjsize_ > (this->highwater_ - this->lowwater_) * 1024)
- this->maxobjsize_ = (this->highwater_ - this->lowwater_) * (1024/2);
-
- if (this->minobjsize_ > this->maxobjsize_)
- this->minobjsize_ = this->maxobjsize_ / 2;
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- if (this->factory_ == 0)
- this->factory_ = Object_Factory::instance ();
-
- ACE_NEW_MALLOC (this->hash_,
- (Cache_Hash *)
- this->allocator_->malloc (sizeof (Cache_Hash)),
- Cache_Hash (alloc, hashsize));
-
- if (this->hash_ == 0)
- {
- this->hashsize_ = 0;
- return;
- }
-
- ACE_NEW_MALLOC (this->heap_,
- (Cache_Heap *)
- this->allocator_->malloc (sizeof (Cache_Heap)),
- Cache_Heap (alloc, maxsize));
-
- if (this->heap_ == 0)
- {
- this->maxsize_ = 0;
-
-
- ACE_DES_FREE_TEMPLATE3(this->hash_, this->allocator_->free,
- JAWS_Cache_Hash,
- KEY, HASH_FUNC, EQ_FUNC);
-
-
-
- this->hash_ = 0;
- this->hashsize_ = 0;
- }
-}
-
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::open (ACE_Allocator *alloc,
- JAWS_Cache_Object_Factory *cof,
- size_t hashsize,
- size_t maxsize,
- size_t maxobjsize,
- size_t minobjsize,
- size_t highwater,
- size_t lowwater,
- int timetolive,
- int counted)
-{
- this->close ();
-
- this->allocator_ = alloc;
- this->factory_ = cof;
- this->hashsize_ = hashsize;
- this->maxsize_ = maxsize;
- this->maxobjsize_ = maxobjsize;
- this->minobjsize_ = minobjsize;
- this->highwater_ = highwater;
- this->lowwater_ = lowwater;
- this->waterlevel_ = 0;
- this->timetolive_ = timetolive;
- this->counted_ = counted;
-
- // Some sanity checking needed here --
- if (this->lowwater_ > this->highwater_)
- this->lowwater_ = this->highwater_ / 2;
-
- if (this->maxobjsize_ > (this->highwater_ - this->lowwater_) * 1024)
- this->maxobjsize_ = (this->highwater_ - this->lowwater_) * (1024/2);
-
- if (this->minobjsize_ > this->maxobjsize_)
- this->minobjsize_ = this->maxobjsize_ / 2;
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- if (this->factory_ == 0)
- this->factory_ = Object_Factory::instance ();
-
- this->hash_ = (Cache_Hash *) this->allocator_->malloc (sizeof (Cache_Hash));
- if (this->hash_ == 0)
- {
- errno = ENOMEM;
- this->hashsize_ = 0;
-
- return -1;
- }
- new (this->hash_) Cache_Hash (alloc, hashsize);
-
- this->heap_ = (Cache_Heap *) this->allocator_->malloc (sizeof (Cache_Heap));
- if (this->heap_ == 0)
- {
- errno = ENOMEM;
- this->maxsize_ = 0;
-
-
- ACE_DES_FREE_TEMPLATE3(this->hash_, this->allocator_->free,
- JAWS_Cache_Hash,
- KEY, HASH_FUNC, EQ_FUNC);
-
-
-
- this->hash_ = 0;
- this->hashsize_ = 0;
-
- return -1;
- }
- new (this->heap_) Cache_Heap (alloc, maxsize);
-
- return 0;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>::~JAWS_Cache_Manager (void)
-{
- this->close ();
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>::close (void)
-{
- while (this->waterlevel_ > 0)
- this->FLUSH_i ();
-
- if (this->hash_)
- {
-
- ACE_DES_FREE_TEMPLATE3(this->hash_, this->allocator_->free,
- JAWS_Cache_Hash,
- KEY, HASH_FUNC, EQ_FUNC);
-
-
-
- this->hash_ = 0;
- }
-
- if (this->heap_)
- {
-
- ACE_DES_FREE_TEMPLATE4(this->heap_, this->allocator_->free,
- JAWS_Cache_List,
- KEY, FACTORY, HASH_FUNC, EQ_FUNC);
-
-
-
- this->heap_ = 0;
- }
-
- return 0;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::GET_i (const KEY &key, JAWS_Cache_Object *&object)
-{
- int result = this->hash_->find (key, object);
-
- if (result == 0)
- this->TAKE (object);
- else
- object = 0;
-
- return result;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::PUT_i (const KEY &key, const void *data, size_t size, JAWS_Cache_Object *&obj)
-{
- int result = 0;
-
- if (data == 0)
- {
- this->FLUSH_i (key);
- obj = 0;
- return 0;
- }
-
- result = this->MAKE (data, size, obj);
- if (result == -1)
- {
- if (size/1024 <= this->maxobjsize_)
- cerr << "MAKE failed. Bummer!" << endl;
- else
- this->DROP_i (obj);
- return -1;
- }
-
- obj->internal (new KEY (key));
-
- KEY old_key;
- JAWS_Cache_Object *old_obj;
-
- result = this->hash_->rebind (key, obj, old_key, old_obj);
- if (result == -1)
- {
- cerr << "*** hash bind error: " << key << endl;
- obj->release ();
- this->DROP_i (obj);
- return -1;
- }
- else if (result == 1)
- {
- this->heap_->remove (old_obj->heap_item ());
- this->waterlevel_ -= old_obj->size ();
- old_obj->release ();
- this->DROP_i (old_obj);
- }
-
- result = this->heap_->insert (key, obj);
- if (result == -1)
- {
- cerr << "*** heap insertion error: " << key << endl;
- this->hash_->unbind (key);
- obj->release ();
- this->DROP_i (obj);
- return -1;
- }
-
- this->waterlevel_ += size;
-
- // Acquire this one for the putter.
- this->TAKE (obj);
-
- return 0;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::FLUSH_i (const KEY &key)
-{
- JAWS_Cache_Object *temp_object;
-
-#ifdef ENTERA_VERBOSE_TRACE
- cerr << "*** flush key unbinding: " << key << endl;
-#endif
- int result = this->hash_->unbind (key, temp_object);
- if (result == 0)
- {
- this->waterlevel_ -= temp_object->size ();
- if (this->heap_->remove (temp_object->heap_item ()) == -1)
- cerr << "*** flush key heap remove failed: " << endl;
- temp_object->release ();
- this->DROP_i (temp_object);
- }
- else
- cerr << "*** flush key hash unbind failed: " << key << endl;
-
- return result;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::FLUSH_i (void)
-{
- KEY temp_key;
- JAWS_Cache_Object *temp_object;
-
- int result = this->heap_->remove (temp_key, temp_object);
- if (result == 0)
- {
-#ifdef ENTERA_VERBOSE_TRACE
- cerr << "*** flush unbinding: " << temp_key << endl;
-#endif
- result = this->hash_->unbind (temp_key);
- if (result == -1)
- cerr << "*** flush hash unbind failed: " << temp_key << endl;
- result = 0;
- this->waterlevel_ -= temp_object->size ();
- temp_object->release ();
- this->DROP_i (temp_object);
- }
- else
- {
- cerr << "*** flush heap remove failed" << endl;
- }
-
- return result;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::DROP_i (JAWS_Cache_Object *&obj)
-{
- int result = 0;
-
- if (obj->count () == 0)
- {
- KEY *key = (KEY *) obj->internal ();
- this->factory_->destroy (obj);
- delete key;
- obj = 0;
- result = 1;
- }
- else
- result = this->heap_->adjust (obj->heap_item ());
-
- return result;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::GET (const KEY &key, JAWS_Cache_Object *&object)
-{
- ACE_Read_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
-
- return this->GET_i (key, object);
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::PUT (const KEY &key, const void *data, size_t size, JAWS_Cache_Object *&obj)
-{
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
-
- return this->PUT_i (key, data, size, obj);
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::MAKE (const void *data, size_t size, JAWS_Cache_Object *&obj)
-{
- // verify object is within cacheable range
- if (size/1024 > this->maxobjsize_)
- {
-#if 0
- // What we do is cache it anyway, but remove it as soon as the
- // requester returns it.
- obj = this->factory_->create (data, size);
- return 0;
-#else
- // The above is a little tricky to implement. Think about it
- // some more.
- obj = this->factory_->create (data, size);
- return -1;
-
-#endif /* 0 */
- }
-
- if (size/1024 < this->minobjsize_)
-
- {
- // Don't bother to cache this.
- cerr << "*** " << size << " is too small to cache" << endl;
- return -1;
- }
-
- // make sure we have sufficient memory
- if (this->waterlevel_ + size > this->highwater_ * (1024 * 1024))
- {
- do
- {
- if (this->FLUSH_i () == -1)
- {
- cerr << "*** cache flooded, flush error" << endl;
- return -1;
- }
- }
- while (this->waterlevel_ > this->lowwater_ * (1024 * 1024));
- }
-
- // make sure heap has enough room
- if (this->heap_->is_full ())
- {
- cerr << "*** heap full, flushing" << endl;
- if (this->FLUSH_i () == -1)
- {
- cerr << "*** heap full, flush error" << endl;
- return -1;
- }
- }
-
- obj = this->factory_->create (data, size);
- if (this->TAKE (obj) == -1)
- {
- cerr << "*** take error" << endl;
- this->factory_->destroy (obj);
- obj = 0;
- return -1;
- }
-
- return 0;
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::TAKE (JAWS_Cache_Object *const &obj)
-{
- if (obj == 0)
- return -1;
-
- return obj->acquire ();
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::DROP (JAWS_Cache_Object *&obj)
-{
- if (obj == 0)
- return -1;
-
-#if 0
- if (obj->size ()/1024 > this->maxobjsize_)
- {
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
-
- int result = obj->release ();
- if (result == 0)
- {
- if (obj->count () == 0)
- {
- KEY *key = (KEY *) obj->internal ();
-#ifdef ENTERA_VERBOSE_TRACE
- cerr << "*** drop large unbinding: " << key << endl;
-#endif
- result = this->hash_->unbind (*key);
- if (result == 0)
- {
- if (this->heap_->remove (obj->heap_item ()) == -1)
- cerr << "*** drop large heap remove failed: " << endl;
- this->factory_->destroy (obj);
- delete key;
- obj = 0;
- result = 1;
- }
- else
- cerr << "*** drop large hash unbind failed: " << key << endl;
- }
- }
- return result;
- }
-#endif /* 0 */
-
- {
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
-
- int result = obj->release ();
-
- if (result == 0)
- {
- if (obj->count () == 0)
- {
- KEY *key = (KEY *) obj->internal ();
- this->factory_->destroy (obj);
- delete key;
- obj = 0;
- result = 1;
- }
- else
- {
- result = this->DROP_i (obj);
- }
- }
-
- return result;
- }
-}
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC> int
-JAWS_Cache_Manager<KEY,FACTORY,HASH_FUNC,EQ_FUNC>
-::FLUSH (void)
-{
- ACE_Write_Guard<ACE_SYNCH_RW_MUTEX> g (this->lock_);
-
- return this->FLUSH_i ();
-}
-
-
-template <class KEY, class DATA, class CACHE_MANAGER>
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>
-::JAWS_Cache_Proxy (const KEY &key, Cache_Manager *manager)
- : object_ (0),
- manager_ (manager)
-{
- if (this->manager_ == 0)
- this->manager_ = Cache_Manager_Singleton::instance ();
-
- int result = this->manager_->GET (key, this->object_);
- if (result == -1)
- this->object_ = 0;
-}
-
-template <class KEY, class DATA, class CACHE_MANAGER>
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>
-::JAWS_Cache_Proxy (const KEY &key, DATA *data, size_t size,
- Cache_Manager *manager)
- : object_ (0),
- manager_ (manager)
-{
- if (this->manager_ == 0)
- this->manager_ = Cache_Manager_Singleton::instance ();
-
- int result = this->manager_->PUT (key, data, size, this->object_);
- if (result == -1)
- this->object_ = 0;
-}
-
-template <class KEY, class DATA, class CACHE_MANAGER>
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>::~JAWS_Cache_Proxy (void)
-{
- DATA *data = this->data ();
- this->manager_->DROP (this->object_);
- if (this->object_ == 0)
- this->close (data);
-}
-
-template <class KEY, class DATA, class CACHE_MANAGER> DATA *
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>::data (void) const
-{
- return this->object_ ? (DATA *) this->object_->data () : 0;
-}
-
-template <class KEY, class DATA, class CACHE_MANAGER>
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>::operator DATA * (void) const
-{
- return this->data ();
-}
-
-template <class KEY, class DATA, class CACHE_MANAGER> int
-JAWS_Cache_Proxy<KEY, DATA, CACHE_MANAGER>::close (DATA *)
-{
- return 0;
-}
-
-
-#endif /* JAWS_CACHE_MANAGER_T_CPP */
diff --git a/apps/JAWS2/JAWS/Cache_Manager_T.h b/apps/JAWS2/JAWS/Cache_Manager_T.h
deleted file mode 100644
index 8e39094f92c..00000000000
--- a/apps/JAWS2/JAWS/Cache_Manager_T.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* -*- c++ -*- */
-// Hey Emacs! This is a C++ file!
-// $Id$
-
-#ifndef JAWS_CACHE_MANAGER_T_H
-#define JAWS_CACHE_MANAGER_T_H
-
-#include "ace/Singleton.h"
-#include "ace/Synch.h"
-
-#include "JAWS/Cache_Object.h"
-
-template <class KEY, class HASH_FUNC, class EQ_FUNC> class JAWS_Cache_Hash;
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Heap;
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_List;
-
-template <class KEY, class FACTORY, class HASH_FUNC, class EQ_FUNC>
-class JAWS_Cache_Manager
-{
-
- friend class JAWS_Cache_Hash<KEY, HASH_FUNC, EQ_FUNC>;
- friend class JAWS_Cache_Heap<KEY, FACTORY, HASH_FUNC, EQ_FUNC>;
- friend class JAWS_Cache_List<KEY, FACTORY, HASH_FUNC, EQ_FUNC>;
-
-public:
-
- typedef ACE_Singleton<FACTORY, ACE_SYNCH_MUTEX> Object_Factory;
- typedef JAWS_Cache_Hash<KEY, HASH_FUNC, EQ_FUNC> Cache_Hash;
- typedef JAWS_Cache_List<KEY, FACTORY, HASH_FUNC, EQ_FUNC> Cache_Heap;
-
- JAWS_Cache_Manager (ACE_Allocator *alloc = 0,
- JAWS_Cache_Object_Factory *cof = 0,
-
- size_t hashsize = 8192, // number of hash buckets
- size_t maxsize = 65535, // max number of in memory
- // objects
-
- size_t maxobjsize = 256, // max cached object size in kB
- size_t minobjsize = 0, // min cached object size in kB
-
- size_t highwater = 100, // max size of cache in MB
- size_t lowwater = 50, // min size of cache when
- // expiring after highwater
- // has been reached
-
- int timetolive = -1, // amt of time the lowest
- // priority item is allowed to
- // remain in the cache
-
- int counted = 0 // flag for whether to use
- // counts
- );
-
- int open (ACE_Allocator *alloc = 0,
- JAWS_Cache_Object_Factory *cof = 0,
-
- size_t hashsize = 1024, // number of hash buckets
- size_t maxsize = 4096, // max number of in memory
- // objects
-
- size_t maxobjsize = 5120, // max cached object size in kB
- size_t minobjsize = 0, // min cached object size in kB
-
- size_t highwater = 50, // max size of cache in MB
- size_t lowwater = 30, // min size of cache when
- // expiring after highwater
- // has been reached
-
- int timetolive = -1, // amount of time the lowest
- // priority item is allowed to
- // remain in the cache
-
- int counted = 0 // flag for whether to use
- // counts
- );
-
- ~JAWS_Cache_Manager (void);
-
- int close (void);
-
- // Search Methods
-
- int GET (const KEY &key, JAWS_Cache_Object *&cobj);
- // Retrieve the object associated with key from cache. Return 0 on
- // success, -1 on failure.
-
- int PUT (const KEY &key, const void *data, size_t size,
- JAWS_Cache_Object *&obj);
- // Inserts or replaces object associated with key into cache.
- // Return 0 on success, -1 on failure.
-
- int MAKE (const void *data, size_t size, JAWS_Cache_Object *&cobj);
- // Create a cached object, increment reference count.
-
- int TAKE (JAWS_Cache_Object *const &cobj);
- // Increment reference count.
-
- int DROP (JAWS_Cache_Object *&cobj);
- // Decrement reference count on cached object, perhaps delete.
- // Returns 0 if only decremented, 1 if deleted, -1 if error.
-
- int FLUSH (void);
- // Removes lowest priority object from cache.
-
-protected:
-
- int GET_i (const KEY &key, JAWS_Cache_Object *&object);
- // Retrieve the object associated with key from cache. Return 0 on
- // success, -1 on failure.
-
- int PUT_i (const KEY &key, const void *data, size_t size,
- JAWS_Cache_Object *&object);
- // Inserts or replaces object associated with key into cache.
- // Return 0 on success, -1 on failure.
-
- int FLUSH_i (void);
- // Removes lowest priority object from cache.
-
- int FLUSH_i (const KEY &key);
- // Removes object associated with key from cache.
-
- int DROP_i (JAWS_Cache_Object *&cobj);
- // Decrement reference count on cached object, perhaps delete.
-
-private:
-
- ACE_Allocator *allocator_;
- JAWS_Cache_Object_Factory *factory_;
-
- size_t hashsize_;
- size_t maxsize_;
- size_t maxobjsize_;
- size_t minobjsize_;
- size_t highwater_;
- size_t lowwater_;
- size_t waterlevel_;
- int timetolive_;
- int counted_;
-
- Cache_Hash *hash_;
- Cache_Heap *heap_;
-
- ACE_SYNCH_RW_MUTEX lock_;
-
-};
-
-
-template <class KEY, class DATA, class CACHE_MANAGER>
-class JAWS_Cache_Proxy
-{
-public:
- typedef CACHE_MANAGER Cache_Manager;
- typedef ACE_Singleton<Cache_Manager, ACE_SYNCH_MUTEX>
- Cache_Manager_Singleton;
-
- JAWS_Cache_Proxy (const KEY &, Cache_Manager * = 0);
- // Corresponds to a GET
-
- JAWS_Cache_Proxy (const KEY &, DATA *, size_t, Cache_Manager * = 0);
- // Corresponds to a U/PUT
-
- virtual ~JAWS_Cache_Proxy (void);
-
- DATA *data (void) const;
- operator DATA * (void) const;
-
- virtual int close (DATA *);
-
-private:
-
- JAWS_Cache_Object *object_;
- Cache_Manager *manager_;
-
-
-};
-
-
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Cache_Manager_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* JAWS_CACHE_MANAGER_T_H */
diff --git a/apps/JAWS2/JAWS/Cache_Object.cpp b/apps/JAWS2/JAWS/Cache_Object.cpp
deleted file mode 100644
index abb582aa9c7..00000000000
--- a/apps/JAWS2/JAWS/Cache_Object.cpp
+++ /dev/null
@@ -1,302 +0,0 @@
-// $Id$
-
-#include "JAWS/Cache_Object.h"
-
-JAWS_Cache_Object::JAWS_Cache_Object (const void *data, size_t size)
- : internal_ (0),
- data_ (data),
- size_ (size)
-{
- this->first_access_ = ACE_OS::time ((time_t *)0);
- this->new_last_access_ = this->last_access_ = this->first_access_;
-}
-
-JAWS_Cache_Object::~JAWS_Cache_Object ()
-{
- this->data_ = 0;
- this->size_ = 0;
-}
-
-void *
-JAWS_Cache_Object::internal (void) const
-{
- return this->internal_;
-}
-
-void
-JAWS_Cache_Object::internal (void *item)
-{
- this->internal_ = item;
-}
-
-const void *
-JAWS_Cache_Object::data (void) const
-{
- return this->data_;
-}
-
-size_t
-JAWS_Cache_Object::size (void) const
-{
- return this->size_;
-}
-
-unsigned int
-JAWS_Cache_Object::count (void) const
-{
- return this->count_i ();
-}
-
-int
-JAWS_Cache_Object::acquire (void)
-{
- this->new_last_access_ = ACE_OS::time ((time_t *)0);
- return this->acquire_i ();
-}
-
-int
-JAWS_Cache_Object::release (void)
-{
- this->last_access_ = this->new_last_access_;
- return this->release_i ();
-}
-
-time_t
-JAWS_Cache_Object::last_access (void) const
-{
- return this->last_access_;
-}
-
-time_t
-JAWS_Cache_Object::first_access (void) const
-{
- return this->first_access_;
-}
-
-unsigned int
-JAWS_Cache_Object::priority (void) const
-{
- return this->priority_i ();
-}
-
-void *
-JAWS_Cache_Object::heap_item (void) const
-{
- return this->heap_item_;
-}
-
-void
-JAWS_Cache_Object::heap_item (void *item)
-{
- this->heap_item_ = item;
-}
-
-
-JAWS_Referenced_Cache_Object::
-JAWS_Referenced_Cache_Object (const void *data, size_t size)
- : JAWS_Cache_Object (data, size),
- lock_adapter_ (count_)
-{
-}
-
-JAWS_Referenced_Cache_Object::~JAWS_Referenced_Cache_Object (void)
-{
-}
-
-ACE_Lock &
-JAWS_Referenced_Cache_Object::lock (void)
-{
- return this->lock_adapter_;
-}
-
-unsigned int
-JAWS_Referenced_Cache_Object::count_i (void) const
-{
- JAWS_Referenced_Cache_Object *mutable_this
- = (JAWS_Referenced_Cache_Object *) this;
-
- if (mutable_this->count_.tryacquire_write () == 0)
- return 0;
-
- return 1;
-}
-
-int
-JAWS_Referenced_Cache_Object::acquire_i (void)
-{
- return this->count_.acquire_read ();
-}
-
-int
-JAWS_Referenced_Cache_Object::release_i (void)
-{
- return this->count_.release ();
-}
-
-unsigned int
-JAWS_Referenced_Cache_Object::priority_i (void) const
-{
- unsigned int priority = ~(0U);
- double delta
- = ACE_OS::difftime (this->last_access (), this->first_access ());
-
- if (delta >= 0.0 && delta < ~(0U))
- priority = (unsigned) delta;
-
- return priority;
-}
-
-
-
-JAWS_Counted_Cache_Object::
-JAWS_Counted_Cache_Object (const void *data, size_t size)
- : JAWS_Cache_Object (data, size),
- count_ (0),
- new_count_ (0),
- lock_adapter_ (lock_)
-{
-}
-
-JAWS_Counted_Cache_Object::~JAWS_Counted_Cache_Object (void)
-{
-}
-
-ACE_Lock &
-JAWS_Counted_Cache_Object::lock (void)
-{
- return this->lock_adapter_;
-}
-
-unsigned int
-JAWS_Counted_Cache_Object::count_i (void) const
-{
- JAWS_Counted_Cache_Object *mutable_this = (JAWS_Counted_Cache_Object *) this;
-
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (mutable_this->lock_);
-
- return this->count_;
- }
-}
-
-int
-JAWS_Counted_Cache_Object::acquire_i (void)
-{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- this->new_count_++;
- return 0;
-}
-
-int
-JAWS_Counted_Cache_Object::release_i (void)
-{
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- this->new_count_--;
- this->count_ = this->new_count_;
- return 0;
-}
-
-unsigned int
-JAWS_Counted_Cache_Object::priority_i (void) const
-{
- return this->count_i ();
-}
-
-JAWS_Cache_Object_Factory::JAWS_Cache_Object_Factory (ACE_Allocator *alloc)
- : allocator_ (alloc)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-}
-
-JAWS_Cache_Object_Factory::~JAWS_Cache_Object_Factory (void)
-{
-}
-
-int
-JAWS_Cache_Object_Factory::open (ACE_Allocator *alloc)
-{
- this->allocator_ = alloc;
-
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-
- return 0;
-}
-
-JAWS_Referenced_Cache_Object_Factory
-::JAWS_Referenced_Cache_Object_Factory (ACE_Allocator *alloc)
- : JAWS_Cache_Object_Factory (alloc)
-{
-}
-
-JAWS_Referenced_Cache_Object_Factory
-::~JAWS_Referenced_Cache_Object_Factory (void)
-{
-}
-
-JAWS_Cache_Object *
-JAWS_Referenced_Cache_Object_Factory::create (const void *data, size_t size)
-{
- JAWS_Referenced_Cache_Object *obj;
-
- size_t obj_size = sizeof (JAWS_Referenced_Cache_Object);
- ACE_NEW_MALLOC_RETURN (obj,
- (JAWS_Referenced_Cache_Object *)
- this->allocator_->malloc (obj_size),
- JAWS_Referenced_Cache_Object (data, size), 0);
-
- return obj;
-}
-
-void
-JAWS_Referenced_Cache_Object_Factory::destroy (JAWS_Cache_Object *obj)
-{
- JAWS_Referenced_Cache_Object *rco = (JAWS_Referenced_Cache_Object *) obj;
- ACE_DES_FREE (rco, this->allocator_->free, JAWS_Referenced_Cache_Object);
-}
-
-JAWS_Counted_Cache_Object_Factory
-::JAWS_Counted_Cache_Object_Factory (ACE_Allocator *alloc)
- : JAWS_Cache_Object_Factory (alloc)
-{
-}
-
-JAWS_Counted_Cache_Object_Factory
-::~JAWS_Counted_Cache_Object_Factory (void)
-{
-}
-
-JAWS_Cache_Object *
-JAWS_Counted_Cache_Object_Factory::create (const void *data, size_t size)
-{
- JAWS_Counted_Cache_Object *obj;
-
- size_t obj_size = sizeof (JAWS_Counted_Cache_Object);
- ACE_NEW_MALLOC_RETURN (obj,
- (JAWS_Counted_Cache_Object *)
- this->allocator_->malloc (obj_size),
- JAWS_Counted_Cache_Object (data, size), 0);
-
- return obj;
-}
-
-void
-JAWS_Counted_Cache_Object_Factory::destroy (JAWS_Cache_Object *obj)
-{
- JAWS_Counted_Cache_Object *cco = (JAWS_Counted_Cache_Object *) obj;
- ACE_DES_FREE (cco, this->allocator_->free, JAWS_Counted_Cache_Object);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-// These are only specialized with ACE_HAS_THREADS.
-template class ACE_Lock_Adapter<ACE_SYNCH_RW_MUTEX>;
-template class ACE_Lock_Adapter<ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-// These are only specialized with ACE_HAS_THREADS.
-#pragma instantiate ACE_Lock_Adapter<ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Lock_Adapter<ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/apps/JAWS2/JAWS/Cache_Object.h b/apps/JAWS2/JAWS/Cache_Object.h
deleted file mode 100644
index fbd570b4140..00000000000
--- a/apps/JAWS2/JAWS/Cache_Object.h
+++ /dev/null
@@ -1,149 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-
-#ifndef JAWS_CACHE_OBJECT_H
-#define JAWS_CACHE_OBJECT_H
-
-#include "ace/OS.h"
-#include "ace/Synch.h"
-#include "ace/Malloc.h"
-
-// Cache bucket -- use Hash_Bucket to hold cacheable objects.
-
-class JAWS_Cache_Object
-{
-public:
- JAWS_Cache_Object (const void *, size_t);
- virtual ~JAWS_Cache_Object (void);
-
- void *internal (void) const;
- void internal (void *);
-
- const void *data (void) const;
- size_t size (void) const;
- unsigned int count (void) const;
-
- int acquire (void);
- int release (void);
-
- time_t last_access (void) const;
- time_t first_access (void) const;
-
- unsigned int priority (void) const;
-
- enum { ACE_CO_REFERENCED, ACE_CO_COUNTED };
-
- void *heap_item (void) const;
- void heap_item (void *item);
-
- virtual ACE_Lock & lock (void) = 0;
-
-protected:
-
- virtual unsigned int count_i (void) const = 0;
- virtual int acquire_i (void) = 0;
- virtual int release_i (void) = 0;
- virtual unsigned int priority_i (void) const = 0;
-
-private:
-
- void *internal_;
- const void *data_;
- size_t size_;
-
- time_t last_access_;
- time_t first_access_;
- time_t new_last_access_;
-
- void *heap_item_;
-
-};
-
-class JAWS_Referenced_Cache_Object : public JAWS_Cache_Object
-{
-public:
- JAWS_Referenced_Cache_Object (const void *, size_t);
- virtual ~JAWS_Referenced_Cache_Object (void);
-
- virtual ACE_Lock & lock (void);
-
-protected:
-
- virtual unsigned int count_i (void) const;
- virtual int acquire_i (void);
- virtual int release_i (void);
- virtual unsigned int priority_i (void) const;
-
-private:
-
- /* MUTABLE */ ACE_SYNCH_RW_MUTEX count_;
- /* MUTABLE */ ACE_Lock_Adapter<ACE_SYNCH_RW_MUTEX> lock_adapter_;
-
-};
-
-class JAWS_Counted_Cache_Object : public JAWS_Cache_Object
-{
-public:
- JAWS_Counted_Cache_Object (const void *, size_t);
- virtual ~JAWS_Counted_Cache_Object (void);
-
- virtual ACE_Lock & lock (void);
-
-protected:
-
- virtual unsigned int count_i (void) const;
- virtual int acquire_i (void);
- virtual int release_i (void);
- virtual unsigned int priority_i (void) const;
-
-private:
-
- unsigned int count_;
- unsigned int new_count_;
- /* MUTABLE */ ACE_SYNCH_MUTEX lock_;
- /* MUTABLE */ ACE_Lock_Adapter<ACE_SYNCH_MUTEX> lock_adapter_;
-
-};
-
-class JAWS_Cache_Object_Factory
-{
-public:
-
- JAWS_Cache_Object_Factory (ACE_Allocator *alloc = 0);
- virtual ~JAWS_Cache_Object_Factory (void);
-
- int open (ACE_Allocator *alloc = 0);
-
- virtual JAWS_Cache_Object * create (const void *, size_t) = 0;
- virtual void destroy (JAWS_Cache_Object *) = 0;
-
-protected:
-
- ACE_Allocator *allocator_;
-
-};
-
-class JAWS_Referenced_Cache_Object_Factory : public JAWS_Cache_Object_Factory
-{
-public:
- JAWS_Referenced_Cache_Object_Factory (ACE_Allocator *alloc = 0);
- virtual ~JAWS_Referenced_Cache_Object_Factory (void);
-
- virtual JAWS_Cache_Object * create (const void *, size_t);
- virtual void destroy (JAWS_Cache_Object *);
-
-};
-
-class JAWS_Counted_Cache_Object_Factory : public JAWS_Cache_Object_Factory
-{
-public:
- JAWS_Counted_Cache_Object_Factory (ACE_Allocator *alloc = 0);
- virtual ~JAWS_Counted_Cache_Object_Factory (void);
-
- virtual JAWS_Cache_Object * create (const void *, size_t);
- virtual void destroy (JAWS_Cache_Object *);
-
-};
-
-#endif /* JAWS_CACHE_OBJECT_H */
diff --git a/apps/JAWS2/JAWS/Concurrency.cpp b/apps/JAWS2/JAWS/Concurrency.cpp
deleted file mode 100644
index 26670687799..00000000000
--- a/apps/JAWS2/JAWS/Concurrency.cpp
+++ /dev/null
@@ -1,349 +0,0 @@
-// $Id$
-
-#include "JAWS/JAWS.h"
-#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"
-#include "JAWS/Waiter.h"
-#include "JAWS/Reaper.h"
-
-ACE_RCSID(JAWS, Concurrency, "$Id$")
-
-JAWS_Concurrency_Base::JAWS_Concurrency_Base (void)
- : ACE_Task<ACE_MT_SYNCH> (new ACE_Thread_Manager),
- mb_acquired_ (0),
- mb_ (0),
- reaper_ (new JAWS_Reaper (this))
-{
-}
-
-JAWS_Concurrency_Base::~JAWS_Concurrency_Base (void)
-{
- delete this->thr_mgr_;
- delete this->reaper_;
-}
-
-ACE_Message_Block *
-JAWS_Concurrency_Base::singleton_mb (void)
-{
- if (this->mb_acquired_ == 0)
- {
- ACE_Guard<ACE_Thread_Mutex> g(this->lock_);
-
- if (this->mb_acquired_ == 0)
- {
- int result;
- ACE_Message_Block *mb;
-
- result = this->getq (mb);
- this->mb_acquired_ = 1;
-
- if (result == -1 || mb == 0)
- return 0;
-
- this->mb_ = mb;
- }
- }
-
- return this->mb_;
-}
-
-int
-JAWS_Concurrency_Base::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- return this->putq (mb, tv);
-}
-
-int
-JAWS_Concurrency_Base::svc (void)
-{
- JAWS_TRACE ("JAWS_Concurrency_Base::svc");
-
- ACE_Message_Block *mb; // The message queue element
- JAWS_Data_Block *db; // Contains the task list
-
- mb = this->singleton_mb ();
-
- // A NULL data block indicates that the thread should shut
- // itself down
- if (mb == 0)
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc, empty message block");
- return -1;
- }
-
- db = ACE_dynamic_cast (JAWS_Data_Block *, mb);
-
- this->svc_loop (db);
-
- return 0;
-}
-
-int
-JAWS_Concurrency_Base::svc_loop (JAWS_Data_Block *db)
-{
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_loop");
-
- // Thread specific message block and data block
- ACE_DEBUG ((LM_DEBUG, "(%t) Creating DataBlock\n"));
- JAWS_Data_Block *ts_db = new JAWS_Data_Block (*db);
- if (ts_db == 0)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Concurrency_Base::svc_hook"));
- return -1;
- }
-
- for (;;)
- {
- if (this->svc_hook (ts_db) != 0)
- break;
- ts_db->task (db->task ());
- ts_db->policy (db->policy ());
- ts_db->payload (0);
- ts_db->io_handler (0);
- ts_db->rd_ptr (ts_db->wr_ptr ());
- ts_db->crunch ();
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) Deleting DataBlock\n"));
- delete ts_db; // ts_db->release ();
-
- return 0;
-}
-
-int
-JAWS_Concurrency_Base::svc_hook (JAWS_Data_Block *ts_db)
-{
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook");
-
- int result = 0;
-
- JAWS_Dispatch_Policy *policy; // Contains task policies
- JAWS_IO_Handler *handler; // Keeps the state of the task
- JAWS_Pipeline_Handler *task; // The task itself
- JAWS_Data_Block *mb; // The task message block
-
- policy = ts_db->policy ();
- task = ts_db->task ();
- handler = 0;
-
- // Get the waiter index
- JAWS_Waiter *waiter = JAWS_Waiter_Singleton::instance ();
- int waiter_index = waiter->index ();
-
- mb = ts_db;
- do
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook, looping");
-
- // Use a NULL task to make the thread recycle now
- if (task == 0)
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook, recycling");
- if (handler)
- handler->done ();
- handler = 0;
- JAWS_IO_Handler **ioh = waiter->find (waiter_index);
- *ioh = 0;
- break;
- }
-
- // the task should set the handler to the appropriate next step
- result = task->put (mb);
-
- if (result == 0 || result == -3)
- handler = mb->io_handler ();
- else handler = 0;
-
- if (result == 1 || result == 2)
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook, waiting");
- // need to wait for an asynchronous event
-
- // We need a way to destroy all the handlers created by the
- // Asynch_Acceptor. Figure this out later.
- handler = waiter->wait_for_completion (waiter_index);
- if (handler == 0)
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook, bad proactor");
- // Proactor failed
- result = -1;
- break;
- }
- }
-
- if (result < 0)
- {
- JAWS_TRACE ("JAWS_Concurrency_Base::svc_hook, negative result");
- if (result == -1)
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Concurrency_Base::svc_hook"));
-
- if (handler)
- handler->done ();
-
- handler = 0;
- if (result == -2)
- {
- JAWS_IO_Handler **ioh = waiter->find (waiter_index);
- *ioh = 0;
- result = 0;
- }
- break;
- }
-
- if (handler == 0)
- break;
-
- mb = handler->message_block ();
- task = handler->task ();
- result = 0;
- }
- while (result == 0);
-
- return result;
-}
-
-int
-JAWS_Concurrency_Base::activate_hook (void)
-{
- 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::make (long flags, int nthreads, int maxthreads)
-{
- this->flags_ = flags;
- this->nthreads_ = nthreads;
- this->maxthreads_ = maxthreads;
-
- ACE_thread_t *thr_names = new ACE_thread_t[nthreads];
-
- if (this->activate (flags | THR_SUSPENDED,
- nthreads,
- 0, // force active
- ACE_DEFAULT_THREAD_PRIORITY,
- -1, // group id
- 0, // ACE_Task_Base
- 0, // thread handles
- 0, // stack
- 0, // stack size
- thr_names) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"),
- -1);
-
- for (int i = 0; i < nthreads; i++)
- {
- JAWS_Thread_ID thr_id(thr_names[i]);
- JAWS_IO_Handler *dummy = 0;
-
- JAWS_Waiter_Singleton::instance ()->insert (thr_id, dummy);
- }
-
- delete[] thr_names;
-
- this->thr_mgr_->resume_all ();
-
- if (this->reaper_->open () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Reaper::open"),
- -1);
-
- return 0;
-}
-
-int
-JAWS_Thread_Per_Task::make (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)
-{
- JAWS_TRACE ("JAWS_Thread_Per_Task::put");
-
- this->putq (mb, tv);
- return this->activate_hook ();
-}
-
-int
-JAWS_Thread_Per_Task::svc_loop (JAWS_Data_Block *db)
-{
- return this->svc_hook (db);
-}
-
-int
-JAWS_Thread_Per_Task::activate_hook (void)
-{
- const int force_active = 1;
- const int nthreads = 1;
-
- ACE_thread_t thr_name;
-
- if (this->activate (this->flags_ | THR_SUSPENDED,
- nthreads,
- force_active,
- ACE_DEFAULT_THREAD_PRIORITY,
- -1, // group id
- 0, // ACE_Task_Base
- 0, // thread handle
- 0, // stack
- 0, // stack size
- &thr_name) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Thread_Pool_Task::activate"),
- -1);
-
- JAWS_Thread_ID thr_id (thr_name);
- JAWS_IO_Handler *dummy = 0;
-
- // In the thread-per-request strategy, need to take care of the
- // case when the waiter array is full. Think about that problem
- // later.
- JAWS_Waiter_Singleton::instance ()->insert (thr_id, dummy);
-
- this->thr_mgr_->resume (thr_name);
-
- if (this->reaper_->open () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Reaper::open"),
- -1);
-
- 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/JAWS2/JAWS/Concurrency.h b/apps/JAWS2/JAWS/Concurrency.h
deleted file mode 100644
index 0b7019fe581..00000000000
--- a/apps/JAWS2/JAWS/Concurrency.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_CONCURRENCY_H
-#define JAWS_CONCURRENCY_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/Task.h"
-
-#include "JAWS/Export.h"
-#include "JAWS/IO.h"
-
-class JAWS_Data_Block;
-class JAWS_Dispatch_Policy;
-class JAWS_Reaper;
-
-class JAWS_Export 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);
- ~JAWS_Concurrency_Base (void);
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- virtual int svc (void);
-
- virtual int svc_loop (JAWS_Data_Block *db);
- // in thread pool, this is an infinite loop
- // in thread per request, it is a single iteration
-
- virtual int svc_hook (JAWS_Data_Block *db);
- // does the work of following the pipeline tasks
-
- virtual int activate_hook (void);
- // callback for IO_Handler when accept completes
-
- virtual ACE_Message_Block *singleton_mb (void);
-
-protected:
- int mb_acquired_;
- ACE_Message_Block *mb_;
- JAWS_Reaper *reaper_;
- ACE_SYNCH_MUTEX lock_;
-};
-
-class JAWS_Export 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_Export 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 make (long flags, int nthreads, int maxthreads);
- // Initiate the thread_pool task
-
-private:
- long flags_;
- int nthreads_;
- int maxthreads_;
-};
-
-class JAWS_Export 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 make (long flags, int maxthreads);
- // Initiate the thread_per task
-
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
-
- virtual int svc_loop (JAWS_Data_Block *db);
- // a single iteration
-
- virtual int activate_hook (void);
- // callback for IO_Handler when accept completes
-
-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/JAWS2/JAWS/Data_Block.cpp b/apps/JAWS2/JAWS/Data_Block.cpp
deleted file mode 100644
index 9fb8b56cb20..00000000000
--- a/apps/JAWS2/JAWS/Data_Block.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// $Id$
-
-#include "JAWS/Data_Block.h"
-#include "JAWS/Policy.h"
-
-ACE_RCSID(JAWS, Data_Block, "$Id$")
-
-JAWS_Data_Block::JAWS_Data_Block (void)
- : ACE_Message_Block (JAWS_DATA_BLOCK_SIZE),
- io_handler_ (0),
- policy_ (0),
- task_ (0),
- payload_ (0)
-{
-}
-
-JAWS_Data_Block::JAWS_Data_Block (JAWS_Data_Block &db)
- : ACE_Message_Block (JAWS_DATA_BLOCK_SIZE),
- io_handler_ (db.io_handler_),
- policy_ (db.policy_),
- task_ (db.task_),
- payload_ (db.payload_)
-{
-}
-
-JAWS_Data_Block::~JAWS_Data_Block (void)
-{
-}
-
-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::payload (void)
-{
- return this->payload_;
-}
-
-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;
-}
-
-void
-JAWS_Data_Block::payload (void *payloadp)
-{
- this->payload_ = payloadp;
-}
diff --git a/apps/JAWS2/JAWS/Data_Block.h b/apps/JAWS2/JAWS/Data_Block.h
deleted file mode 100644
index 94afaa93586..00000000000
--- a/apps/JAWS2/JAWS/Data_Block.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_DATA_BLOCK_H
-#define JAWS_DATA_BLOCK_H
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Export.h"
-#include "JAWS/Pipeline.h"
-
-class JAWS_IO_Handler;
-class JAWS_Dispatch_Policy;
-class JAWS_Data_Block;
-class JAWS_Pipeline_Handler;
-
-class JAWS_Export JAWS_Data_Block : public ACE_Message_Block
-// = TITLE
-// Defines the communication unit between pipeline components
-{
-public:
- JAWS_Data_Block (void);
- JAWS_Data_Block (JAWS_Data_Block &db);
- ~JAWS_Data_Block (void);
-
- JAWS_Pipeline_Handler *task (void);
- JAWS_IO_Handler *io_handler (void);
- JAWS_Dispatch_Policy *policy (void);
- void *payload (void);
-
- void task (JAWS_Pipeline_Handler *taskp);
- void io_handler (JAWS_IO_Handler *handlerp);
- void policy (JAWS_Dispatch_Policy *policyp);
- void payload (void *payloadp);
-
- enum { JAWS_DATA_BLOCK_SIZE = 8192 };
-
-private:
- JAWS_IO_Handler *io_handler_;
- JAWS_Dispatch_Policy *policy_;
- JAWS_Pipeline_Handler *task_;
-
- void *payload_;
-};
-
-#endif /* !defined (JAWS_DATA_BLOCK_H) */
diff --git a/apps/JAWS2/JAWS/Export.h b/apps/JAWS2/JAWS/Export.h
deleted file mode 100644
index f06afcdb767..00000000000
--- a/apps/JAWS2/JAWS/Export.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// $Id$
-
-// Definition for Win32 Export directives.
-// This file is generated automatically by
-// ${TAO_ROOT}/TAO_IDL/GenExportH.BAT
-// ------------------------------
-#ifndef JAWS_EXPORT_H
-#define JAWS_EXPORT_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (JAWS_HAS_DLL)
-# if (JAWS_HAS_DLL == 1)
-# if defined (JAWS_BUILD_DLL)
-# define JAWS_Export ACE_Proper_Export_Flag
-# define JAWS_SINGLETON_DECLARATION(T) \
- ACE_EXPORT_SINGLETON_DECLARATION (T)
-# else
-# define JAWS_Export ACE_Proper_Import_Flag
-# define JAWS_SINGLETON_DECLARATION(T) \
- ACE_IMPORT_SINGLETON_DECLARATION (T)
-# endif /* JAWS_BUILD_DLL */
-# else
-# define JAWS_Export
-# define JAWS_SINGLETON_DECLARATION(T)
-# endif /* ! JAWS_HAS_DLL == 1 */
-#else
-# define JAWS_Export
-# define JAWS_SINGLETON_DECLARATION(T)
-#endif /* JAWS_HAS_DLL */
-
-#endif /* JAWS_EXPORT_H */
- // End of auto generated file.
-
diff --git a/apps/JAWS2/JAWS/FILE.cpp b/apps/JAWS2/JAWS/FILE.cpp
deleted file mode 100644
index 1394b7f1696..00000000000
--- a/apps/JAWS2/JAWS/FILE.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-#include "ace/Synch.h"
-
-#include "JAWS/FILE.h"
-
-
-JAWS_FILE::JAWS_FILE (void)
- : map_ (0)
-{
-}
-
-JAWS_FILE::~JAWS_FILE (void)
-{
- delete this->map_;
- this->map_ = 0;
-}
-
-ACE_Mem_Map *
-JAWS_FILE::mem_map (int length,
- int prot,
- int share,
- void *addr,
- off_t offset,
- LPSECURITY_ATTRIBUTES sa) const
-{
- JAWS_FILE *mutable_this = (JAWS_FILE *) this;
- return mutable_this->mem_map (length, prot, share, addr, offset, sa);
-}
-
-ACE_Mem_Map *
-JAWS_FILE::mem_map (int length,
- int prot,
- int share,
- void *addr,
- off_t offset,
- LPSECURITY_ATTRIBUTES sa)
-{
- if (this->map_ == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
-
- if (this->map_ == 0)
- {
- this->map_ = new ACE_Mem_Map;
- if (this->map_ != 0)
- {
- int r = this->map_->map (this->get_handle (),
- length, prot, share, addr, offset, sa);
- if (r < 0)
- {
- delete this->map_;
- this->map_ = 0;
- }
- }
- }
- }
-
- return this->map_;
-
-}
-
-
-ACE_Mem_Map *
-JAWS_FILE::map (void) const
-{
- return this->map_;
-}
diff --git a/apps/JAWS2/JAWS/FILE.h b/apps/JAWS2/JAWS/FILE.h
deleted file mode 100644
index 527227f85e2..00000000000
--- a/apps/JAWS2/JAWS/FILE.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// $Id$
-
-/* -*- c++ -*- */
-
-#ifndef JAWS_FILE_H
-#define JAWS_FILE_H
-
-#include "ace/FILE_IO.h"
-#include "ace/Mem_Map.h"
-
-#include "JAWS/Export.h"
-
-class JAWS_Export JAWS_FILE : public ACE_FILE_IO
-//
-// Like ACE_FILE_IO, but support for ACE_Mem_Map;
-{
-public:
-
- JAWS_FILE (void);
-
- ~JAWS_FILE (void);
-
- ACE_Mem_Map *mem_map (int length = -1,
- int prot = PROT_RDWR,
- int share = ACE_MAP_PRIVATE,
- void *addr = 0,
- off_t offset = 0,
- LPSECURITY_ATTRIBUTES sa = 0);
- ACE_Mem_Map *mem_map (int length = -1,
- int prot = PROT_RDWR,
- int share = ACE_MAP_PRIVATE,
- void *addr = 0,
- off_t offset = 0,
- LPSECURITY_ATTRIBUTES sa = 0) const;
-
- ACE_Mem_Map *map (void) const;
-
-private:
-
- ACE_SYNCH_MUTEX lock_;
- ACE_Mem_Map *map_;
-
-};
-
-#endif /* JAWS_FILE_H */
diff --git a/apps/JAWS2/JAWS/Filecache.cpp b/apps/JAWS2/JAWS/Filecache.cpp
deleted file mode 100644
index a6791538921..00000000000
--- a/apps/JAWS2/JAWS/Filecache.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-#include "ace/FILE_Connector.h"
-
-#include "JAWS/Filecache.h"
-#include "JAWS/Cache_List_T.h"
-
-void
-JAWS_Referenced_Filecache_Factory::destroy (JAWS_Cache_Object *object)
-{
- JAWS_FILE *file = (JAWS_FILE *) object->data ();
- file->close ();
- if (file->map ())
- file->map ()->close ();
- delete file;
- this->JAWS_Referenced_Cache_Object_Factory::destroy (object);
-}
-
-void
-JAWS_Counted_Filecache_Factory::destroy (JAWS_Cache_Object *object)
-{
- JAWS_FILE *file = (JAWS_FILE *) object->data ();
- file->close ();
- if (file->map ())
- file->map ()->close ();
- delete file;
- this->JAWS_Counted_Cache_Object_Factory::destroy (object);
-}
-
-JAWS_Cached_FILE::JAWS_Cached_FILE (const char *const &filename,
- JAWS_Filecache_Proxy::Cache_Manager *cm)
- : JAWS_Filecache_Proxy (filename, cm)
-{
- ACE_HANDLE handle = ACE_INVALID_HANDLE;
-
- if (this->data () != 0)
- {
- handle = ACE_OS::dup (this->data ()->get_handle ());
- }
- else
- {
- JAWS_FILE *file = new JAWS_FILE;
- ACE_FILE_Connector file_connector;
-
- int result = file_connector.connect (*file, ACE_FILE_Addr (filename));
- if (result == -1 || file->get_handle () == ACE_INVALID_HANDLE)
- {
- // TODO: do something here!
- }
-
- ACE_FILE_Info info;
- file->get_info (info);
-
- handle = ACE_OS::dup (file->get_handle ());
-
- {
- JAWS_Cached_FILE cf (filename, file, info.size_, cm);
- if (cf.data () != 0)
- {
- new (this) JAWS_Cached_FILE (filename, cm);
- return;
- }
- }
- }
-
- this->file_.set_handle (handle);
-}
-
-JAWS_Cached_FILE::JAWS_Cached_FILE (const char *const &filename,
- JAWS_FILE *&file,
- size_t size,
- JAWS_Filecache_Proxy::Cache_Manager *cm)
- : JAWS_Filecache_Proxy (filename, file, size, cm)
-{
-}
-
-JAWS_Cached_FILE::~JAWS_Cached_FILE (void)
-{
- this->file_.close ();
-}
-
-ACE_FILE_IO *
-JAWS_Cached_FILE::file (void)
-{
- return &(this->file_);
-}
-
-ACE_Mem_Map *
-JAWS_Cached_FILE::mmap (void)
-{
- return (this->data () == 0 ? 0 : this->data ()->mem_map ());
-}
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class JAWS_Cache_List_Item<JAWS_Strdup_String,
- JAWS_Referenced_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List_Item<JAWS_Strdup_String,
- JAWS_Counted_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List<JAWS_Strdup_String,
- JAWS_Referenced_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_List<JAWS_Strdup_String,
- JAWS_Counted_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Referenced_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Counted_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>;
-template class JAWS_Cache_Proxy<char const *,
- JAWS_FILE,
- JAWS_Referenced_Filecache_Manager>;
-template class JAWS_Cache_Proxy<char const *,
- JAWS_FILE,
- JAWS_Counted_Filecache_Manager>;
-template class ACE_Singleton<JAWS_Referenced_Filecache_Manager,
- ACE_Thread_Mutex>;
-template class ACE_Singleton<JAWS_Counted_Filecache_Manager,
- ACE_Thread_Mutex>;
-template class ACE_Singleton<JAWS_Referenced_Filecache_Factory,
- ACE_Thread_Mutex>;
-template class ACE_Singleton<JAWS_Counted_Filecache_Factory, ACE_Thread_Mutex>;
-
-#endif
diff --git a/apps/JAWS2/JAWS/Filecache.h b/apps/JAWS2/JAWS/Filecache.h
deleted file mode 100644
index a770f1fd959..00000000000
--- a/apps/JAWS2/JAWS/Filecache.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_FILECACHE_H
-#define JAWS_FILECACHE_H
-
-#include "ace/OS.h"
-#include "ace/FILE_IO.h"
-
-#include "JAWS/Cache_Manager.h"
-#include "JAWS/FILE.h"
-#include "JAWS/Export.h"
-
-class JAWS_Export JAWS_Referenced_Filecache_Factory
- : public JAWS_Referenced_Cache_Object_Factory
-{
-public:
-
- virtual void destroy (JAWS_Cache_Object *);
-
-};
-
-class JAWS_Export JAWS_Counted_Filecache_Factory
- : public JAWS_Counted_Cache_Object_Factory
-{
-public:
-
- virtual void destroy (JAWS_Cache_Object *);
-
-};
-
-typedef JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Referenced_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>
- JAWS_Referenced_Filecache_Manager;
-
-typedef JAWS_Cache_Manager<JAWS_Strdup_String,
- JAWS_Counted_Filecache_Factory,
- JAWS_String_Hash_Functor,
- JAWS_String_Equal_Functor>
- JAWS_Counted_Filecache_Manager;
-
-typedef JAWS_Counted_Filecache_Manager JAWS_Filecache_Manager;
-
-typedef JAWS_Cache_Proxy<const char *,
- JAWS_FILE, JAWS_Filecache_Manager>
- JAWS_Filecache_Proxy;
-
-class JAWS_Export JAWS_Cached_FILE : private JAWS_Filecache_Proxy
-{
-public:
-
- JAWS_Cached_FILE (const char *const &filename,
- JAWS_Filecache_Proxy::Cache_Manager *cm = 0);
- JAWS_Cached_FILE (const char *const &filename,
- JAWS_FILE *&file,
- size_t size,
- JAWS_Filecache_Proxy::Cache_Manager *cm = 0);
-
- ~JAWS_Cached_FILE (void);
-
- ACE_FILE_IO * file (void);
- ACE_Mem_Map * mmap (void);
-
-private:
-
- ACE_FILE_IO file_;
-
-};
-
-
-#endif /* JAWS_FILECACHE_H */
diff --git a/apps/JAWS2/JAWS/Hash_Bucket_T.cpp b/apps/JAWS2/JAWS/Hash_Bucket_T.cpp
deleted file mode 100644
index f498ce12681..00000000000
--- a/apps/JAWS2/JAWS/Hash_Bucket_T.cpp
+++ /dev/null
@@ -1,462 +0,0 @@
-// $Id$
-
-#ifndef JAWS_HASH_BUCKET_T_CPP
-#define JAWS_HASH_BUCKET_T_CPP
-
-#include "JAWS/Hash_Bucket_T.h"
-
-// -----------------
-// Hash_Bucket_Item
-// -----------------
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_Item<EXT_ID, INT_ID>
-::JAWS_Hash_Bucket_Item (const EXT_ID &ext_id, const INT_ID &int_id,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *next,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *prev)
- : ext_id_ (ext_id),
- int_id_ (int_id),
- next_ (next),
- prev_ (prev)
-{
-}
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_Item<EXT_ID, INT_ID>
-::JAWS_Hash_Bucket_Item (JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *next,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *prev)
- : next_ (next),
- prev_ (prev)
-{
-}
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_Item<EXT_ID, INT_ID>::~JAWS_Hash_Bucket_Item (void)
-{
- this->next_ = 0;
- this->prev_ = 0;
-}
-
-
-// ---------------------
-// Hash_Bucket_DLCStack
-// ---------------------
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::
-JAWS_Hash_Bucket_DLCStack (ACE_Allocator *alloc)
- : allocator_ (alloc),
- head_ (0),
- tail_ (0)
-{
- if (this->allocator_ == 0)
- this->allocator_ = ACE_Allocator::instance ();
-}
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::
-~JAWS_Hash_Bucket_DLCStack (void)
-{
- this->reset ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::
-is_empty (void) const
-{
- return this->head_ == 0 && this->tail_ == 0;
-}
-
-template <class EXT_ID, class INT_ID> JAWS_HASH_BUCKET_ITEM *
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::
-push (const EXT_ID &ext_id, const INT_ID &int_id)
-{
- size_t malloc_size = sizeof (JAWS_HASH_BUCKET_ITEM);
- JAWS_HASH_BUCKET_ITEM *item;
- ACE_NEW_MALLOC_RETURN (item,
- (JAWS_HASH_BUCKET_ITEM *)
- this->allocator_->malloc (malloc_size),
- JAWS_HASH_BUCKET_ITEM (ext_id, int_id), 0);
-
- if (item != 0)
- {
- if (this->is_empty ())
- {
- this->head_ = item;
- this->tail_ = item;
- item->next_ = this->head_;
- item->prev_ = this->tail_;
- }
- else
- {
- item->next_ = this->head_;
- item->prev_ = this->tail_;
- this->head_->prev_ = item;
- this->tail_->next_ = item;
- this->head_ = item;
- }
- }
-
- return item;
-}
-
-template <class EXT_ID, class INT_ID> JAWS_HASH_BUCKET_ITEM *
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::pop (void)
-{
- JAWS_HASH_BUCKET_ITEM *item = 0;
-
- if (! this->is_empty ())
- {
- item = this->head_;
- if (this->head_ == this->tail_)
- {
- this->head_ = this->tail_ = 0;
- }
- else
- {
- this->head_ = this->head_->next_;
- this->head_->prev_ = this->tail_;
- this->tail_->next_ = this->head_;
- }
- item->next_ = 0;
- item->prev_ = 0;
- }
-
- return item;
-}
-
-template <class EXT_ID, class INT_ID> void
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::reset (void)
-{
- JAWS_HASH_BUCKET_ITEM *item = 0;
-
- while ((item = this->pop ()) != 0)
- this->remove (item);
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>::remove (JAWS_HASH_BUCKET_ITEM *item)
-{
- int result = 0;
-
- if (item != 0)
- {
- if (item->next_ != 0 && item->prev_ != 0)
- {
- if (item->next_ != item)
- {
- if (this->head_ == item)
- this->head_ = item->next_;
- if (this->tail_ == item)
- this->tail_ = item->prev_;
- item->next_->prev_ = item->prev_;
- item->prev_->next_ = item->next_;
- }
- else
- {
- this->head_ = this->tail_ = 0;
- }
- item->next_ = 0;
- item->prev_ = 0;
- }
-
- if (item->next_ == 0 && item->prev_ == 0)
- {
- ACE_DES_FREE_TEMPLATE2 (item, this->allocator_->free,
- JAWS_Hash_Bucket_Item, EXT_ID, INT_ID);
- }
- else
- result = -1;
- }
-
- return result;
-}
-
-
-// ------------------------------
-// Hash_Bucket_DLCStack_Iterator
-// ------------------------------
-
-template <class EXT_ID, class INT_ID>
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::
-JAWS_Hash_Bucket_DLCStack_Iterator (const JAWS_HASH_BUCKET_DLCSTACK &dlcstack)
- : dlcstack_ (dlcstack),
- next_ (0),
- prev_ (0),
- done_ (0)
-{
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::first (void)
-{
- int result = 0;
-
- if (! this->dlcstack_.is_empty ())
- {
- result = 1;
- this->next_ = this->dlcstack_.head_;
- this->prev_ = this->dlcstack_.tail_;
- this->done_ = 0;
- }
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::last (void)
-{
- return this->first ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::advance (void)
-{
- int result = 1;
-
- if (this->next_ != 0)
- {
- this->prev_ = this->next_;
- this->next_ = this->next_->next_;
- if (this->next_ == this->dlcstack_.head_)
- {
- this->done_ = 1;
- result = 0;
- }
- }
- else
- result = this->first ();
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::revert (void)
-{
- int result = 1;
-
- if (this->prev_ != 0)
- {
- this->next_ = this->prev_;
- this->prev_ = this->prev_->prev_;
- if (this->prev_ == this->dlcstack_.tail_)
- {
- this->done_ = 1;
- result = 0;
- }
- }
- else
- result = this->last ();
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::
-next (JAWS_HASH_BUCKET_ITEM *&item)
-{
- if (this->next_ == 0)
- this->first ();
-
- item = this->next_;
- return ! this->done ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::
-next (JAWS_HASH_BUCKET_ITEM *&item) const
-{
- item = this->next_;
- return ! this->done ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::
-prev (JAWS_HASH_BUCKET_ITEM *&item)
-{
- if (this->prev_ == 0)
- this->last ();
-
- item = this->prev_;
- return ! this->done ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::
-prev (JAWS_HASH_BUCKET_ITEM *&item) const
-{
- item = this->prev_;
- return ! this->done ();
-}
-
-template <class EXT_ID, class INT_ID> int
-JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>::done (void) const
-{
- return this->done_;
-}
-
-
-// --------------------
-// Hash_Bucket_Manager
-// --------------------
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC>
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>
-::JAWS_Hash_Bucket_Manager (ACE_Allocator *alloc)
- : dlcstack_ (alloc)
-{
- if (alloc == 0)
- this->dlcstack_.allocator_ = ACE_Allocator::instance ();
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::open (ACE_Allocator *alloc)
-{
- this->dlcstack_.allocator_ = alloc;
- if (alloc == 0)
- this->dlcstack_.allocator_ = ACE_Allocator::instance ();
-
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC>
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::~JAWS_Hash_Bucket_Manager (void)
-{
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::close (void)
-{
- this->dlcstack_.reset ();
- return 0;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> JAWS_HASH_BUCKET_ITEM *
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>
-::find_i (const EXT_ID &ext_id) const
-{
- JAWS_HASH_BUCKET_DLCSTACK_ITERATOR iter (this->dlcstack_);
- JAWS_HASH_BUCKET_ITEM *item = 0;
-
- if (iter.first ())
- while (!iter.done ())
- {
- iter.next (item);
- if (item && EQ_FUNC (item->ext_id_, ext_id))
- break;
- iter.advance ();
- }
-
- return (item && EQ_FUNC (item->ext_id_, ext_id)) ? item : 0;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::find (const EXT_ID &ext_id,
- INT_ID &int_id) const
-{
- int result = -1;
- JAWS_HASH_BUCKET_ITEM *item = this->find_i (ext_id);
-
- if (item)
- {
- int_id = item->int_id_;
- result = 0;
- }
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>
-::find (const EXT_ID &ext_id) const
-{
- INT_ID dummy_id;
- return this->find (ext_id, dummy_id);
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::bind (const EXT_ID &ext_id,
- const INT_ID &int_id)
-{
- int result = 0;
-
- if (this->find (ext_id) == 0)
- {
- result = 1;
- }
- else
- {
- if (this->dlcstack_.push (ext_id, int_id) == 0)
- result = -1;
- }
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::trybind (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- int result = 0;
-
- if (this->find (ext_id, int_id) == 0)
- {
- result = 1;
- }
- else
- {
- if (this->dlcstack_.push (ext_id, int_id) == 0)
- result = -1;
- }
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::rebind (const EXT_ID &ext_id,
- const INT_ID &int_id,
- EXT_ID &old_ext_id,
- INT_ID &old_int_id)
-{
- int result = 0;
- JAWS_HASH_BUCKET_ITEM *item = this->find_i (ext_id);
-
- if (item)
- {
- result = 1;
- old_ext_id = item->ext_id_;
- old_int_id = item->int_id_;
- this->dlcstack_.remove (item);
- }
-
- if (this->dlcstack_.push (ext_id, int_id) == 0)
- result = -1;
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::unbind (const EXT_ID &ext_id,
- INT_ID &int_id)
-{
- int result = -1;
- JAWS_HASH_BUCKET_ITEM *item = this->find_i (ext_id);
-
- if (item)
- {
- result = 0;
- int_id = item->int_id_;
- this->dlcstack_.remove (item);
- }
-
- return result;
-}
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC> int
-JAWS_Hash_Bucket_Manager<EXT_ID,INT_ID,EQ_FUNC>::unbind (const EXT_ID &ext_id)
-{
- INT_ID dummy_id;
- return this->unbind (ext_id, dummy_id);
-}
-
-#endif /* JAWS_HASH_BUCKET_T_CPP */
diff --git a/apps/JAWS2/JAWS/Hash_Bucket_T.h b/apps/JAWS2/JAWS/Hash_Bucket_T.h
deleted file mode 100644
index 9a394a2b42d..00000000000
--- a/apps/JAWS2/JAWS/Hash_Bucket_T.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/* -*- c++ -*- */
-// Hey Emacs! This is a C++ file!
-// $Id$
-
-#ifndef JAWS_HASH_BUCKET_T_H
-#define JAWS_HASH_BUCKET_T_H
-
-#include "ace/Containers.h"
-
-#define JAWS_HASH_BUCKET_ITEM JAWS_Hash_Bucket_Item<EXT_ID, INT_ID>
-#define JAWS_HASH_BUCKET_DLCSTACK JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID>
-#define JAWS_HASH_BUCKET_DLCSTACK_ITERATOR \
- JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>
-
-
-// Why Hash_Bucket?
-//
-// This is an attempt to simplify the creation of high-performance
-// hash tables with respect to concurrent access by multiple threads.
-// To this end, we attempt to raise the amount of concurrency through
-// the use or readers/writer locks rather than through mutual
-// exclusion.
-
-template <class EXT_ID, class INT_ID>
-class JAWS_Hash_Bucket_Item
-{
-public:
- JAWS_Hash_Bucket_Item (const EXT_ID &ext_id, const INT_ID &int_id,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *next = 0,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *prev = 0);
- JAWS_Hash_Bucket_Item (JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *next = 0,
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *prev = 0);
-
- ~JAWS_Hash_Bucket_Item (void);
- // Destructor.
-
- EXT_ID ext_id_;
- // Key used to look up an entry.
-
- INT_ID int_id_;
- // The contents of the entry itself.
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *next_;
- // Pointer to the next item in the bucket of overflow nodes.
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *prev_;
- // Pointer to the prev item in the bucket of overflow nodes.
-
-};
-
-
-template <class EXT_ID, class INT_ID> class JAWS_Hash_Bucket_DLCStack_Iterator;
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC>
-class JAWS_Hash_Bucket_Manager;
-
-template <class EXT_ID, class INT_ID>
-class JAWS_Hash_Bucket_DLCStack
-// Create a doubly linked circular stack to be managed by the
-// Hash_Bucket_Manager
-{
- friend JAWS_Hash_Bucket_DLCStack_Iterator<EXT_ID, INT_ID>;
-
-public:
-
- JAWS_Hash_Bucket_DLCStack (ACE_Allocator *alloc = 0);
- ~JAWS_Hash_Bucket_DLCStack (void);
-
- int is_empty (void) const;
- // Returns 1 if the container is empty, otherwise returns 0.
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *push (const EXT_ID &ext_id,
- const INT_ID &int_id);
- // Adds <new_item> to the head of the list.
- // Returns the new item that was inserted.
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *pop (void);
- // Removes and returns the first <item> in the list. Returns
- // internal node's address on success, 0 if the queue was empty.
- // This method will *not* free the internal node.
-
- void reset (void);
- // Reset the <JAWS_Hash_Bucket_DLCStack> to be empty.
- // Notice that since no one is interested in the items within,
- // This operation will delete all items.
-
- int remove (JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *item);
- // If item is still part of the CStack, it is removed.
- // In anycase, if there is no error, item is freed.
- // Returns 0 if ok, -1 on error.
-
- ACE_Allocator *allocator_;
-
-private:
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *head_;
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *tail_;
-
-};
-
-
-template <class EXT_ID, class INT_ID>
-class JAWS_Hash_Bucket_DLCStack_Iterator
-{
-public:
-
- JAWS_Hash_Bucket_DLCStack_Iterator (const JAWS_HASH_BUCKET_DLCSTACK &dlcstack);
-
- int first (void);
- // Moves to first element in the set, clears done flag. Returns 0
- // if empty, 1 otherwise.
-
- int last (void);
- // Moves to last element in the set, clears done flag. Returns 0 if
- // empty, 1 otherwise.
-
- int advance (void);
- // Move forward by one element of set. Returns 0 if empty or we end
- // up being the first element in the set, 1 otherwise. If advance
- // takes us to the first element, done is set to true.
-
- int revert (void);
- // Move backward by one element of set. Returns 0 if empty or we
- // end up being the last element in the set, 1 otherwise. If revert
- // takes us to the last element, done is set to true.
-
- int next (JAWS_HASH_BUCKET_ITEM *&item);
- int next (JAWS_HASH_BUCKET_ITEM *&item) const;
- // Pass back the next item. Returns 0 if done is true, 1 otherwise.
-
- int prev (JAWS_HASH_BUCKET_ITEM *&item);
- int prev (JAWS_HASH_BUCKET_ITEM *&item) const;
- // Pass back the previous item. Returns 0 if done is true, 1
- // otherwise.
-
- int done (void) const;
- // Returns 1 if done_ flag is set, 0 otherwise. done_ flag is set
- // if next takes us to first element or prev takes us to last
- // element.
-
-private:
- const JAWS_HASH_BUCKET_DLCSTACK &dlcstack_;
- JAWS_HASH_BUCKET_ITEM *next_;
- JAWS_HASH_BUCKET_ITEM *prev_;
- int done_;
-};
-
-
-template <class EXT_ID, class INT_ID, class EQ_FUNC>
-class JAWS_Hash_Bucket_Manager
-{
-public:
- JAWS_Hash_Bucket_Manager (ACE_Allocator *alloc = 0);
- int open (ACE_Allocator *alloc = 0);
-
- ~JAWS_Hash_Bucket_Manager (void);
- int close (void);
-
- int find (const EXT_ID &ext_id) const;
- int find (const EXT_ID &ext_id, INT_ID &int_id) const;
- // Locate <ext_id> and pass out parameter via <int_id>. If found,
- // return 0, returns -1 if not found.
-
- int bind (const EXT_ID &ext_id, const INT_ID &int_id);
- int trybind (const EXT_ID &ext_id, INT_ID &int_id);
- // Associate <ext_id> with <int_id> if and only if <ext_id> is not
- // in the map. If <ext_id> is already in the map then the <int_id>
- // parameter is assigned the existing value in the map. Returns 0
- // if a new entry is bound successfully, returns 1 if an attempt is
- // made to bind an existing entry, and returns -1 if failures occur.
-
- int rebind (const EXT_ID &ext_id, const INT_ID &int_id,
- EXT_ID &old_ext_id, INT_ID &old_int_id);
- // Associate <ext_id> with <int_id>. If <ext_id> is not in the map
- // then behaves just like <bind>. Otherwise, store the old values
- // of <ext_id> and <int_id> into the "out" parameters and rebind the
- // new parameters. This is very useful if you need to have an
- // atomic way of updating <JAWS_Hash_Map_Entrys> and you also need full
- // control over memory allocation. Returns 0 if a new entry is
- // bound successfully, returns 1 if an existing entry was rebound,
- // and returns -1 if failures occur.
-
- int unbind (const EXT_ID &ext_id);
- int unbind (const EXT_ID &ext_id, INT_ID &int_id);
- // Break any association of <ext_id>. Returns the value of <int_id>
- // in case the caller needs to deallocate memory. Return value is 0
- // if unbind succeeds, -1 otherwise.
-
-protected:
-
- JAWS_Hash_Bucket_Item<EXT_ID, INT_ID> *find_i (const EXT_ID &ext_id) const;
- // Returns the item associated with ext_id if found in list.
- // Returns NULL if not found.
-
-private:
-
- JAWS_Hash_Bucket_DLCStack<EXT_ID, INT_ID> dlcstack_;
-
-};
-
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "JAWS/Hash_Bucket_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#endif /* JAWS_HASH_BUCKET_T_H */
diff --git a/apps/JAWS2/JAWS/Headers.cpp b/apps/JAWS2/JAWS/Headers.cpp
deleted file mode 100644
index b41ddd87ff5..00000000000
--- a/apps/JAWS2/JAWS/Headers.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-/* $Id$ */
-
-#include "JAWS/Headers.h"
-
-// Header Data
-
-JAWS_Header_Data::JAWS_Header_Data (const char *name, const char *value,
- int type)
- : header_name_ (name ? ACE_OS::strdup (name) : 0),
- header_value_ (value ? ACE_OS::strdup (value) : 0),
- header_type_ (type)
-{
-}
-
-JAWS_Header_Data::JAWS_Header_Data (const char *name, int type,
- const char *value)
- : header_name_ (name ? ACE_OS::strdup (name) : 0),
- header_value_ (value ? ACE_OS::strdup (value) : 0),
- header_type_ (type)
-{
-}
-
-JAWS_Header_Data::~JAWS_Header_Data (void)
-{
- if ( this->header_name_ )
- ACE_OS::free ((void *)this->header_name_);
- if ( this->header_value_ )
- ACE_OS::free ((void *)this->header_value_);
- this->header_name_ = 0;
- this->header_value_ = 0;
-}
-
-const char *
-JAWS_Header_Data::header_name (void) const
-{
- return this->header_name_;
-}
-
-const char *
-JAWS_Header_Data::header_value (void) const
-{
- return this->header_value_;
-}
-
-int
-JAWS_Header_Data::header_type (void) const
-{
- return this->header_type_;
-}
-
-void
-JAWS_Header_Data::header_name (const char *name)
-{
- if (this->header_name_)
- ACE_OS::free ((void *)this->header_name_);
- this->header_name_ = name ? ACE_OS::strdup (name) : 0;
-}
-
-void
-JAWS_Header_Data::header_value (const char *value)
-{
- if (this->header_value_)
- ACE_OS::free ((void *)this->header_value_);
- this->header_value_ = value ? ACE_OS::strdup (value) : 0;
-}
-
-void
-JAWS_Header_Data::header_type (int type)
-{
- this->header_type_ = type;
-}
-
-
-// Header Table
-
-JAWS_Headers::JAWS_Headers (void)
- : iter_ (*this)
-{
-}
-
-JAWS_Headers::~JAWS_Headers (void)
-{
-}
-
-JAWS_Header_Table_Iterator &
-JAWS_Headers::iter (void)
-{
- return this->iter_;
-}
-
-int
-JAWS_Headers::insert (JAWS_Header_Data *new_data)
-{
- // Since there may be duplicate header entries, we don't worry about
- // doing this find anymore. Make the application developer figure
- // out how to interpret duplicate entries.
-
- return (JAWS_Header_Table::insert_tail (new_data) ? 0 : -1);
-}
-
-JAWS_Header_Data *
-JAWS_Headers::find (const char *const &header_name)
-{
- this->iter_.first ();
- return this->find_next (header_name);
-}
-
-JAWS_Header_Data *
-JAWS_Headers::find_next (const char *const &header_name)
-{
- JAWS_Header_Data *data = 0;
- JAWS_Header_Table_Iterator &i = this->iter_;
-
- while (! i.done ())
- {
- data = i.next ();
- if (data != 0)
- {
- if (ACE_OS::strcasecmp (data->header_name (), header_name) != 0)
- data = 0;
- }
- i.advance ();
- if (data != 0)
- break;
- }
-
- return data;
-}
-
-void
-JAWS_Headers::remove_all (const char *const &header_name)
-{
- JAWS_Header_Data *data;
- int done;
-
- do
- {
- JAWS_Header_Table_Iterator i (*this);
- i.first ();
- done = 1;
- while (! i.done ())
- {
- data = i.next ();
- if (data != 0
- && ACE_OS::strcasecmp (data->header_name (), header_name) == 0)
- {
- i.remove ();
- delete data;
- done = 0;
- break;
- }
- else
- i.advance ();
- }
- }
- while (! done);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_DLList<JAWS_Header_Data>;
-template class ACE_DLList_Iterator<JAWS_Header_Data>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_DLList<JAWS_Header_Data>
-#pragma instantiate ACE_DLList_Iterator<JAWS_Header_Data>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS2/JAWS/Headers.h b/apps/JAWS2/JAWS/Headers.h
deleted file mode 100644
index f16db921915..00000000000
--- a/apps/JAWS2/JAWS/Headers.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_HEADERS_H
-#define JAWS_HEADERS_H
-
-#include "JAWS/Export.h"
-#include "ace/Containers.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Use scenario --
-
-// Parse_Headers will parse out a header name and then will want to
-// update "last header data" in Header_Info. At this point, only the
-// header name is strdup'd.
-
-// Parse_Headers will then append additional data to the header value
-// until the header value of "last header data" is done.
-
-// Parse_Headers will notify Header_Info that "last header data" is
-// done and is ready to be inserted into the Headers data structure.
-// At this point, the header value is strdup'd.
-
-class JAWS_Export JAWS_Header_Data
-{
-public:
- JAWS_Header_Data (const char *name, const char *value = 0, int type = 0);
- JAWS_Header_Data (const char *name, int type, const char *value = 0);
- ~JAWS_Header_Data (void);
-
- const char * header_name (void) const;
- const char * header_value (void) const;
- int header_type (void) const;
-
- void header_name (const char *name);
- void header_value (const char *value);
- void header_type (int type);
-
-private:
- const char * header_name_;
- const char * header_value_;
- int header_type_;
-};
-
-typedef ACE_DLList<JAWS_Header_Data> JAWS_Header_Table;
-typedef ACE_DLList_Iterator<JAWS_Header_Data> JAWS_Header_Table_Iterator;
-
-class JAWS_Export JAWS_Headers : public JAWS_Header_Table
-{
-public:
- JAWS_Headers (void);
- ~JAWS_Headers (void);
-
- int insert (JAWS_Header_Data *new_data);
- // insert the new data 0 -> success, -1 -> failure
-
- JAWS_Header_Data * find (const char *const &header_name);
- // find always begins from the beginning of the list
- // result is NULL if not found
-
- JAWS_Header_Data * find_next (const char *const &header_name);
- // behaves like find, but from where that last find left off
- // result is NULL if not found
-
- void remove_all (const char *const &header_name);
- // remove all headers from list that match header_name
-
- JAWS_Header_Table_Iterator &iter (void);
- // returns an iterator to the headers container
-
-private:
- JAWS_Header_Table_Iterator iter_;
-};
-
-#endif /* !defined (JAWS_HEADERS_H) */
diff --git a/apps/JAWS2/JAWS/IO.cpp b/apps/JAWS2/JAWS/IO.cpp
deleted file mode 100644
index 1cb294f96fb..00000000000
--- a/apps/JAWS2/JAWS/IO.cpp
+++ /dev/null
@@ -1,603 +0,0 @@
-// $Id$
-
-#include "ace/Message_Block.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Filecache.h"
-
-#include "JAWS/JAWS.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/Policy.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/IO_Acceptor.h"
-#include "JAWS/Filecache.h"
-
-// #include "HTTP_Helpers.h"
-
-ACE_RCSID(JAWS, IO, "$Id$")
-
-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)
-{
- if (this->handle_ != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Synch_IO::accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *,
- unsigned int)
-{
- ACE_SOCK_Stream new_stream;
- new_stream.set_handle (ACE_INVALID_HANDLE);
- 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,
- unsigned int size)
-{
- JAWS_TRACE ("JAWS_Synch_IO::read");
-
- ACE_SOCK_Stream stream;
-
- stream.set_handle (ioh->handle ());
- int result = stream.recv (mb->wr_ptr (), size);
-
- if (result <= 0)
- ioh->read_error ();
- else
- {
- JAWS_TRACE ("JAWS_Synch_IO::read success");
- mb->wr_ptr (result);
- ioh->read_complete (mb);
- }
-}
-
-void
-JAWS_Synch_IO::receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length)
-{
- ACE_Filecache_Handle handle (filename,
- (int) entire_length);
-
- int result = handle.error ();
-
- if (result == ACE_Filecache_Handle::ACE_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::ACE_SUCCESS)
- ioh->receive_file_error (result);
-}
-
-void
-JAWS_Synch_IO::transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- int result = 0;
-
- if (handle != ACE_INVALID_HANDLE)
- {
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
-
- if ((unsigned long) stream.send_n (header, header_size) < header_size)
- {
- result = -1;
- }
- else
- {
- int count;
- char buf[BUFSIZ];
-
- do
- {
- count = ACE_OS::read (handle, buf, sizeof (buf));
- if (count <= 0)
- break;
-
- if (stream.send_n (buf, count) < count)
- {
- result = -1;
- }
- }
- while (result == 0);
-
- if ((unsigned long) stream.send_n (trailer, trailer_size)
- < trailer_size)
- {
- result = -1;
- }
- }
- }
-
- if (result == 0)
- ioh->transmit_file_complete ();
- else
- ioh->transmit_file_error (result);
-}
-
-void
-JAWS_Synch_IO::transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- int result = 0;
-
- if (filename == 0)
- {
- ioh->transmit_file_error (-1);
- return;
- }
-
- JAWS_Cached_FILE cf (filename);
-
- if (cf.file ()->get_handle () != ACE_INVALID_HANDLE
- && cf.mmap () != 0)
- {
-#if defined (ACE_JAWS_BASELINE) || defined (ACE_WIN32)
- ACE_FILE_Info info;
- cf.file ()->get_info (info);
-
- if (cf.file ()->get_info (info) == 0 && info.size_ > 0)
- {
- ACE_SOCK_Stream stream;
- stream.set_handle (ioh->handle ());
- if (((u_long) stream.send_n (header, header_size) == header_size)
- && (stream.send_n (cf.mmap ()->addr (), info.size_)
- == info.size_)
- && ((u_long) stream.send_n (trailer, trailer_size)
- == trailer_size))
- {
- ioh->transmit_file_complete ();
- return;
- }
- else
- {
- result = -1;
- }
- }
- else
- {
- result = -1;
- }
-#else
- // Attempting to use writev
- // Is this faster?
- iovec iov[3];
- int iovcnt = 0;
- if (header_size > 0)
- {
- iov[iovcnt].iov_base = ACE_const_cast(char*,header);
- iov[iovcnt].iov_len = header_size;
- iovcnt++;
- }
-
- ACE_FILE_Info info;
-
- if (cf.file ()->get_info (info) == 0 && info.size_ > 0)
- {
- iov[iovcnt].iov_base = (char *) cf.mmap ()->addr ();
- iov[iovcnt].iov_len = info.size_;
- iovcnt++;
- }
- if (trailer_size > 0)
- {
- iov[iovcnt].iov_base = ACE_const_cast(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 ();
- return;
- }
-#endif /* ACE_JAWS_BASELINE */
- }
- else if (cf.file ()->get_handle () != ACE_INVALID_HANDLE
- && cf.mmap () == 0)
- {
- this->transmit_file (ioh,
- cf.file ()->get_handle (),
- header, header_size,
- trailer, trailer_size);
- return;
- }
- else
- {
- result = -1;
- }
-
- if (result != 0)
- {
- ioh->transmit_file_error (result);
- }
-}
-
-void
-JAWS_Synch_IO::send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned 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,
- unsigned 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,
- unsigned 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) || defined (ACE_HAS_AIO_CALLS)
-
-JAWS_Asynch_IO::JAWS_Asynch_IO (void)
-{
-}
-
-JAWS_Asynch_IO::~JAWS_Asynch_IO (void)
-{
- if (this->handle_ != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (this->handle_);
-}
-
-void
-JAWS_Asynch_IO::accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *,
- unsigned int)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::accept");
-
- ioh->idle ();
-
- JAWS_Data_Block *db = ioh->message_block ();
- //ACE_HANDLE listen_handle = db->policy ()->acceptor ()->get_handle ();
-
- //JAWS_Asynch_IO_Handler *aioh =
- // ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- size_t bytes_to_read = JAWS_Data_Block::JAWS_DATA_BLOCK_SIZE;
-
- if (db->policy ()->acceptor ()->accept (bytes_to_read, ioh) == -1)
- ioh->accept_error ();
-}
-
-void
-JAWS_Asynch_IO::read (JAWS_IO_Handler *ioh,
- ACE_Message_Block* mb,
- unsigned int size)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::read");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- ACE_Asynch_Read_Stream ar;
-
- if (ar.open (*(aioh->handler ()), aioh->handle ()) == -1
- || ar.read (*mb, size) == -1)
- aioh->read_error ();
-}
-
-void
-JAWS_Asynch_IO::receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::receive_file");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- ACE_Message_Block *mb = 0;
- ACE_Filecache_Handle *handle;
-
- ACE_NEW (handle, ACE_Filecache_Handle (filename, entire_length, ACE_NOMAP));
-
- int result = handle->error ();
-
- if (result == ACE_Filecache_Handle::ACE_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 (*(aioh->handler ()), aioh->handle ()) == -1
- || ar.read (*mb, mb->size () - mb->length (), handle) == -1)
- result = -1;
- }
- }
-
- if (result != ACE_Filecache_Handle::ACE_SUCCESS)
- {
- this->handler_->receive_file_error (result);
- delete mb;
- delete handle;
- }
-}
-
-void
-JAWS_Asynch_IO::transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- JAWS_TRACE ("JAWS_Asynch_IO::transmit_file");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
-
- int result = 0;
-
- if (handle != ACE_INVALID_HANDLE)
- {
- ACE_Message_Block hdr_mb (header, header_size);
- ACE_Message_Block trl_mb (trailer, trailer_size);
-
- header_and_trailer =
- new ACE_Asynch_Transmit_File::Header_And_Trailer (hdr_mb.duplicate (),
- header_size,
- trl_mb.duplicate (),
- trailer_size);
-
- ACE_Asynch_Transmit_File tf;
-
- if (tf.open (*(aioh->handler ()), aioh->handle ()) == -1
- || tf.transmit_file (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
- 0 // act
- ) == -1)
- result = -1;
- }
-
- if (result != 0)
- {
- ioh->transmit_file_error (result);
- delete header_and_trailer;
- }
-}
-
-void
-JAWS_Asynch_IO::transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size)
-{
- int result = 0;
-
- JAWS_TRACE ("JAWS_Asynch_IO::transmit_file");
-
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer = 0;
- JAWS_Cached_FILE *cf = new JAWS_Cached_FILE (filename);
-
- if (cf->file ()->get_handle () != ACE_INVALID_HANDLE)
- {
- ACE_Message_Block hdr_mb (header, header_size);
- ACE_Message_Block trl_mb (trailer, trailer_size);
-
- header_and_trailer = new ACE_Asynch_Transmit_File::Header_And_Trailer
- (hdr_mb.duplicate (), header_size, trl_mb.duplicate (), trailer_size);
-
- ACE_Asynch_Transmit_File tf;
-
- if (tf.open (*(aioh->handler ()), aioh->handle ()) == -1
- || tf.transmit_file (cf->file ()->get_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
- cf // act
- ) == -1)
- result = -1;
- }
-
- if (result != 0)
- {
- ioh->transmit_file_error (result);
- delete header_and_trailer;
- delete cf;
- }
-}
-
-void
-JAWS_Asynch_IO::send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- this->send_message (ioh, buffer, length, CONFIRMATION);
-}
-
-void
-JAWS_Asynch_IO::send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length)
-{
- this->send_message (ioh, buffer, length, ERROR_MESSAGE);
-}
-
-void
-JAWS_Asynch_IO::send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length,
- int act)
-{
- ioh->idle ();
-
- JAWS_Asynch_IO_Handler *aioh =
- ACE_dynamic_cast (JAWS_Asynch_IO_Handler *, ioh);
-
- 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 (*(aioh->handler ()), aioh->handle ()) == -1
- || aw.write (*mb, length, (void *) act) == -1)
- {
- mb->release ();
-
- if (act == CONFORMATION)
- ioh->confirmation_message_complete ();
- else
- ioh->error_message_complete ();
- }
-}
-
-void
-JAWS_Asynch2_IO::accept (JAWS_IO_Handler *,
- ACE_Message_Block *,
- unsigned int)
-{
-}
-
-#endif /* ACE_WIN32 */
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<JAWS_Synch_IO, ACE_SYNCH_MUTEX>;
- #if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- template class ACE_Singleton<JAWS_Asynch_IO, ACE_SYNCH_MUTEX>;
- template class ACE_Singleton<JAWS_Asynch2_IO, ACE_SYNCH_MUTEX>;
- #endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)*/
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<JAWS_Synch_IO, ACE_SYNCH_MUTEX>
- #if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- #pragma instantiate ACE_Singleton<JAWS_Asynch_IO, ACE_SYNCH_MUTEX>
- #pragma instantiate ACE_Singleton<JAWS_Asynch2_IO, ACE_SYNCH_MUTEX>
- #endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)*/
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS2/JAWS/IO.h b/apps/JAWS2/JAWS/IO.h
deleted file mode 100644
index 8aadd9b4de9..00000000000
--- a/apps/JAWS2/JAWS/IO.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef JAWS_IO_H
-#define JAWS_IO_H
-
-class ACE_Message_Block;
-class JAWS_IO_Handler;
-class JAWS_IO_Acceptor;
-
-#include "ace/ACE.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Asynch_IO.h"
-#include "ace/SOCK_Stream.h"
-#include "ace/Singleton.h"
-
-#include "JAWS/Export.h"
-
-class JAWS_Export 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,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0) = 0;
- // accept a passive connection
-
- virtual void read (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb,
- unsigned int size) = 0;
- // read from the handle size bytes into the message block.
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE file,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size) = 0;
- // send header, filename, trailer to the handle.
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned 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,
- unsigned int initial_data_length,
- unsigned 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,
- unsigned int length) = 0;
- // send a confirmation message to the handle.
-
- virtual void send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned 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_Export JAWS_Synch_IO : public JAWS_IO
- // = TITLE
- //
- // This class defines the interface for a Synchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Synch_IO (void);
-
- virtual ~JAWS_Synch_IO (void);
-
- virtual void accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0);
-
- virtual void read (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb,
- unsigned int size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length);
-
- virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
- virtual void send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
-protected:
- virtual void send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-};
-
-typedef ACE_Singleton<JAWS_Synch_IO, ACE_SYNCH_MUTEX>
- JAWS_Synch_IO_Singleton;
-
-// This only works on Win32
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-
-class JAWS_Export JAWS_Asynch_IO : public JAWS_IO
- // = TITLE
- //
- // This class defines the interface for a Asynchronous I/O class.
- //
- // = DESCRIPTION
-{
-public:
- JAWS_Asynch_IO (void);
-
- virtual ~JAWS_Asynch_IO (void);
-
- virtual void accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0);
-
- virtual void read (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb,
- unsigned int size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- ACE_HANDLE handle,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void transmit_file (JAWS_IO_Handler *ioh,
- const char *filename,
- const char *header,
- unsigned int header_size,
- const char *trailer,
- unsigned int trailer_size);
-
- virtual void receive_file (JAWS_IO_Handler *ioh,
- const char *filename,
- void *initial_data,
- unsigned int initial_data_length,
- unsigned int entire_length);
-
- virtual void send_confirmation_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
- virtual void send_error_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length);
-
- enum Message_Types
- {
- CONFORMATION,
- CONFIRMATION = CONFORMATION,
- ERROR_MESSAGE
- };
-
-protected:
-
- virtual void send_message (JAWS_IO_Handler *ioh,
- const char *buffer,
- unsigned int length,
- int act);
-};
-
-typedef ACE_Singleton<JAWS_Asynch_IO, ACE_SYNCH_MUTEX>
- JAWS_Asynch_IO_Singleton;
-
-class JAWS_Export JAWS_Asynch2_IO : public JAWS_Asynch_IO
-{
- // This version of Asynch_IO has a do nothing accept() implementation.
-public:
- virtual void accept (JAWS_IO_Handler *ioh,
- ACE_Message_Block *mb = 0,
- unsigned int size = 0);
- // does nothing
-
-};
-
-typedef ACE_Singleton<JAWS_Asynch2_IO, ACE_SYNCH_MUTEX>
- JAWS_Asynch2_IO_Singleton;
-
-#endif /* ACE_WIN32 */
-
-#endif /* JAWS_IO_H */
diff --git a/apps/JAWS2/JAWS/IO_Acceptor.cpp b/apps/JAWS2/JAWS/IO_Acceptor.cpp
deleted file mode 100644
index adb42fe16e0..00000000000
--- a/apps/JAWS2/JAWS/IO_Acceptor.cpp
+++ /dev/null
@@ -1,210 +0,0 @@
-// $Id$
-
-#include "JAWS/Data_Block.h"
-#include "JAWS/IO_Acceptor.h"
-
-ACE_RCSID(JAWS, IO_Acceptor, "$Id$")
-
-JAWS_IO_Acceptor::JAWS_IO_Acceptor (void)
-{
-}
-
-JAWS_IO_Acceptor::~JAWS_IO_Acceptor (void)
-{
-}
-
-int
-JAWS_IO_Acceptor::open (const ACE_INET_Addr &, int)
-{
- return -1;
-}
-
-int
-JAWS_IO_Acceptor::open (const ACE_HANDLE &)
-{
- return -1;
-}
-
-void
-JAWS_IO_Acceptor::close (void)
-{
-}
-
-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, const void *)
-{
- return -1;
-}
-
-ACE_HANDLE
-JAWS_IO_Acceptor::get_handle (void)
-{
- return ACE_INVALID_HANDLE;
-}
-
-int
-JAWS_IO_Synch_Acceptor::open (const ACE_INET_Addr &local_sap, int backlog)
-{
- return this->acceptor_.open (local_sap, 1, PF_INET, backlog);
-}
-
-int
-JAWS_IO_Synch_Acceptor::open (const ACE_HANDLE &socket)
-{
- ACE_HANDLE handle = this->acceptor_.get_handle ();
- if (handle == socket)
- return 0;
-
- if (handle != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (this->acceptor_.get_handle ());
- this->acceptor_.set_handle (socket);
-
- return 0;
-}
-
-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_Synch_Acceptor::accept (size_t, const void *)
-{
- return -1;
-}
-
-ACE_HANDLE
-JAWS_IO_Synch_Acceptor::get_handle (void)
-{
- return this->acceptor_.get_handle ();
-}
-
-
-
-JAWS_IO_Asynch_Acceptor::JAWS_IO_Asynch_Acceptor (void)
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- : acceptor_ (*(new ACE_Asynch_Acceptor<JAWS_Asynch_Handler>)),
- acceptor_ptr_ (&acceptor_)
-#endif
-{
-}
-
-JAWS_IO_Asynch_Acceptor::~JAWS_IO_Asynch_Acceptor (void)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- delete this->acceptor_ptr_;
- this->acceptor_ptr_ = 0;
-#endif
-}
-
-int
-JAWS_IO_Asynch_Acceptor::open (const ACE_INET_Addr &address, int backlog)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- // Tell the acceptor to listen on this->port_, which sets up an
- // asynchronous I/O request to the OS.
-
- return this->acceptor_.open (address,
- JAWS_Data_Block::JAWS_DATA_BLOCK_SIZE,
- 1,
- backlog,
- 1,
- 0,
- 0,
- 0,
- 0);
-
-#else
- ACE_UNUSED_ARG (address);
- return -1;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-}
-
-int
-JAWS_IO_Asynch_Acceptor::open (const ACE_HANDLE &socket)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- ACE_HANDLE handle = this->handle_;
- if (handle == socket)
- return 0;
-
- if (handle != ACE_INVALID_HANDLE)
- ACE_OS::closesocket (handle);
- this->handle_ = socket;
-
- return 0;
-#else
- ACE_UNUSED_ARG (socket);
- return -1;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-}
-
-int
-JAWS_IO_Asynch_Acceptor::accept (size_t bytes_to_read, const void *act)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- return this->acceptor_.accept (bytes_to_read, act);
-#else
- ACE_UNUSED_ARG (bytes_to_read);
- return -1;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-}
-
-int
-JAWS_IO_Asynch_Acceptor::accept (ACE_SOCK_Stream &, ACE_Addr *,
- ACE_Time_Value *, int, int) const
-{
- return -1;
-}
-
-ACE_HANDLE
-JAWS_IO_Asynch_Acceptor::get_handle (void)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- return this->acceptor_.get_handle ();
-#else
- return ACE_INVALID_HANDLE;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-}
-
-
-void
-JAWS_IO_Asynch_Acceptor::close (void)
-{
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- delete this->acceptor_ptr_;
- this->acceptor_ptr_ = 0;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-}
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-template class ACE_Asynch_Acceptor<JAWS_Asynch_Handler>;
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-template class ACE_Singleton<JAWS_IO_Asynch_Acceptor, ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_IO_Synch_Acceptor, ACE_SYNCH_MUTEX>;
-template class ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX>;
-template class ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_NULL_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-#pragma instantiate ACE_Asynch_Acceptor<JAWS_Asynch_Handler>
-#pragma instantiate ACE_Singleton<JAWS_IO_Asynch_Acceptor, ACE_SYNCH_MUTEX>
-#endif /* defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS) */
-#pragma instantiate ACE_Singleton<JAWS_IO_Synch_Acceptor, ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_MUTEX>
-#pragma instantiate ACE_LOCK_SOCK_Acceptor<ACE_SYNCH_NULL_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS2/JAWS/IO_Acceptor.h b/apps/JAWS2/JAWS/IO_Acceptor.h
deleted file mode 100644
index 78e861ec12e..00000000000
--- a/apps/JAWS2/JAWS/IO_Acceptor.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef 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"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/LOCK_SOCK_Acceptor.h"
-#include "ace/Singleton.h"
-
-#include "JAWS/Export.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-
-// Forward declaration.
-class ACE_Proactor;
-class ACE_Reactor;
-
-#if defined (JAWS_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 /* JAWS_HAS_THREAD_SAFE_ACCEPT */
-
-class JAWS_Export JAWS_IO_Acceptor
-{
-public:
-
- JAWS_IO_Acceptor (void);
- virtual ~JAWS_IO_Acceptor (void);
-
- virtual int open (const ACE_INET_Addr &address, int backlog = 20);
- // Initiate a passive mode socket.
-
- virtual int open (const ACE_HANDLE &socket);
- // 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, const void *act = 0);
- // This initiates a new asynchronous accept through the AcceptEx call.
-
- virtual ACE_HANDLE get_handle (void);
- // Get the listener's handle
-
- virtual void close (void);
- // Close the acceptor.
-
- enum { ASYNC = 0, SYNCH = 1 };
- // identify if this is being used for asynchronous or synchronous
- // accept calls
-
-};
-
-class JAWS_Export JAWS_IO_Synch_Acceptor : public JAWS_IO_Acceptor
-{
-public:
-
- virtual int open (const ACE_INET_Addr &local_sap, int backlog = 20);
- // Initiate a passive mode socket.
-
- virtual int open (const ACE_HANDLE &socket);
- // 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
-
- virtual ACE_HANDLE get_handle (void);
- // Get the listener's handle
-
-private:
- virtual int accept (size_t bytes_to_read = 0, const void *act = 0);
-
-private:
- JAWS_IO_SOCK_Acceptor acceptor_;
-};
-
-
-class JAWS_Export JAWS_IO_Asynch_Acceptor : public JAWS_IO_Acceptor
-{
-public:
-
- JAWS_IO_Asynch_Acceptor (void);
- virtual ~JAWS_IO_Asynch_Acceptor (void);
-
- virtual int open (const ACE_INET_Addr &address, int backlog = 20);
- // Initiate an asynchronous passive connection
-
- virtual int open (const ACE_HANDLE &socket);
- // Initiate an asynchronous passive connection
-
- virtual int accept (size_t bytes_to_read = 0, const void *act = 0);
- // This initiates a new asynchronous accept through the AcceptEx call.
-
- virtual ACE_HANDLE get_handle (void);
- // Get the listener's handle
-
- virtual void close (void);
-
-private:
-
- 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;
-
-private:
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- ACE_Asynch_Acceptor<JAWS_Asynch_Handler> &acceptor_;
- ACE_Asynch_Acceptor<JAWS_Asynch_Handler> *acceptor_ptr_;
- ACE_HANDLE handle_;
-#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/JAWS2/JAWS/IO_Handler.cpp b/apps/JAWS2/JAWS/IO_Handler.cpp
deleted file mode 100644
index 67710d0f543..00000000000
--- a/apps/JAWS2/JAWS/IO_Handler.cpp
+++ /dev/null
@@ -1,509 +0,0 @@
-// $Id$
-
-#include "ace/Proactor.h"
-#include "ace/Filecache.h"
-
-#include "JAWS/JAWS.h"
-#include "JAWS/IO.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/IO_Acceptor.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/Policy.h"
-#include "JAWS/Waiter.h"
-
-ACE_RCSID(JAWS, IO_Handler, "$Id$")
-
-JAWS_Abstract_IO_Handler::~JAWS_Abstract_IO_Handler (void)
-{
-}
-
-JAWS_IO_Handler_Factory::~JAWS_IO_Handler_Factory (void)
-{
-}
-
-JAWS_IO_Handler *
-JAWS_IO_Handler_Factory::create_io_handler (void)
-{
- JAWS_TRACE ("JAWS_IO_Handler_Factory::create");
-
- JAWS_IO_Handler *handler;
- handler = new JAWS_IO_Handler (this);
-
- return handler;
-}
-
-void
-JAWS_IO_Handler_Factory::destroy_io_handler (JAWS_IO_Handler *handler)
-{
- JAWS_TRACE ("JAWS_IO_Handler_Factory::destroy");
- if (handler != 0)
- {
- delete handler->message_block ();
- delete handler;
- }
-}
-
-JAWS_IO_Handler::JAWS_IO_Handler (JAWS_IO_Handler_Factory *factory)
- : status_ (0),
- mb_ (0),
- handle_ (ACE_INVALID_HANDLE),
- task_ (0),
- factory_ (factory)
-{
-}
-
-JAWS_IO_Handler::~JAWS_IO_Handler (void)
-{
- this->mb_ = 0;
- this->status_ = 0;
- this->task_ = 0;
- this->factory_ = 0;
-
- ACE_OS::close (this->handle_);
- this->handle_ = ACE_INVALID_HANDLE;
-}
-
-void
-JAWS_IO_Handler::accept_complete (ACE_HANDLE handle)
-{
- // callback into pipeline task, notify that the accept has completed
- this->handle_ = handle;
- this->status_ |= ACCEPT_OK;
- this->status_ &= (ACCEPT_OK+1);
-
- JAWS_Dispatch_Policy *policy = this->mb_->policy ();
-
- // Do this so that Thread Per Request can spawn a new thread
- policy->concurrency ()->activate_hook ();
-}
-
-void
-JAWS_IO_Handler::accept_error (void)
-{
- // callback into pipeline task, notify that the accept has failed
- this->status_ |= ACCEPT_ERROR;
- this->status_ &= (ACCEPT_ERROR+1);
-}
-
-void
-JAWS_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);
- this->status_ |= READ_OK;
- this->status_ &= (READ_OK+1);
-}
-
-void
-JAWS_IO_Handler::read_error (void)
-{
- // this->pipeline_->read_error ();
- this->status_ |= READ_ERROR;
- this->status_ &= (READ_ERROR+1);
-}
-
-void
-JAWS_IO_Handler::transmit_file_complete (void)
-{
- JAWS_TRACE ("JAWS_IO_Handler::transmit_file_complete");
- // this->pipeline_->transmit_file_complete ();
- this->status_ |= TRANSMIT_OK;
- this->status_ &= (TRANSMIT_OK+1);
-}
-
-void
-JAWS_IO_Handler::transmit_file_error (int result)
-{
- JAWS_TRACE ("JAWS_IO_Handler::transmit_file_error");
- ACE_UNUSED_ARG (result);
- // this->pipeline_->transmit_file_complete (result);
- this->status_ |= TRANSMIT_ERROR;
- this->status_ &= (TRANSMIT_ERROR+1);
-}
-
-void
-JAWS_IO_Handler::receive_file_complete (void)
-{
- this->status_ |= RECEIVE_OK;
- this->status_ &= (RECEIVE_OK+1);
-}
-
-void
-JAWS_IO_Handler::receive_file_error (int result)
-{
- ACE_UNUSED_ARG(result);
- this->status_ |= RECEIVE_ERROR;
- this->status_ &= (RECEIVE_ERROR+1);
-}
-
-void
-JAWS_IO_Handler::write_error (void)
-{
- ACE_DEBUG ((LM_DEBUG, " (%t) error in writing response\n"));
-
- this->status_ |= WRITE_ERROR;
- this->status_ &= (WRITE_ERROR+1);
- this->done ();
-}
-
-void
-JAWS_IO_Handler::confirmation_message_complete (void)
-{
- this->status_ |= WRITE_OK;
- this->status_ &= (WRITE_OK+1);
-}
-
-void
-JAWS_IO_Handler::error_message_complete (void)
-{
- this->status_ |= WRITE_OK;
- this->status_ &= (WRITE_OK+1);
-}
-
-JAWS_IO_Handler_Factory *
-JAWS_IO_Handler::factory (void)
-{
- return this->factory_;
-}
-
-ACE_HANDLE
-JAWS_IO_Handler::handle (void) const
-{
- return this->handle_;
-}
-
-void
-JAWS_IO_Handler::task (JAWS_Pipeline_Handler *ph)
-{
- this->task_ = ph;
-}
-
-JAWS_Pipeline_Handler *
-JAWS_IO_Handler::task (void)
-{
- return this->task_;
-}
-
-void
-JAWS_IO_Handler::message_block (JAWS_Data_Block *mb)
-{
- this->mb_ = mb;
-}
-
-JAWS_Data_Block *
-JAWS_IO_Handler::message_block (void)
-{
- return this->mb_;
-}
-
-void
-JAWS_IO_Handler::done (void)
-{
- this->factory ()->destroy_io_handler (this);
-}
-
-int
-JAWS_IO_Handler::status (void)
-{
- return this->status_;
-}
-
-void
-JAWS_IO_Handler::idle (void)
-{
- this->status_ &= (IDLE+1);
-}
-
-void
-JAWS_IO_Handler::acquire (void)
-{
-}
-
-void
-JAWS_IO_Handler::lock (void)
-{
-}
-
-void
-JAWS_IO_Handler::release (void)
-{
-}
-
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-
-JAWS_Asynch_IO_Handler_Factory::~JAWS_Asynch_IO_Handler_Factory (void)
-{
-}
-
-JAWS_IO_Handler *
-JAWS_Asynch_IO_Handler_Factory::create_io_handler (void)
-{
- JAWS_TRACE ("JAWS_Asynch_IO_Handler_Factory::create");
-
- JAWS_Asynch_IO_Handler *handler;
- handler = new JAWS_Asynch_IO_Handler (this);
-
- return handler;
-}
-
-void
-JAWS_Asynch_IO_Handler_Factory::destroy_io_handler (JAWS_IO_Handler *handler)
-{
- JAWS_TRACE ("JAWS_IO_Handler_Factory::destroy");
-
- if (handler != 0)
- {
- //cerr << "(" << thr_self () << ") locking for destruction: " << handler << endl;
- handler->lock ();
- delete handler->message_block ();
- handler->message_block (0);
- delete handler;
- }
-}
-
-
-JAWS_Asynch_IO_Handler::JAWS_Asynch_IO_Handler (JAWS_Asynch_IO_Handler_Factory *factory)
- : JAWS_IO_Handler (factory),
- handler_ (0)
-{
- this->status_ = 1;
-}
-
-JAWS_Asynch_IO_Handler::~JAWS_Asynch_IO_Handler (void)
-{
- delete this->handler_;
- this->handler_ = 0;
-}
-
-ACE_Handler *
-JAWS_Asynch_IO_Handler::handler (void)
-{
- return this->handler_;
-}
-
-void
-JAWS_Asynch_IO_Handler::acquire (void)
-{
- //cerr << "(" << thr_self () << ") acquire handler: " << this << endl;
- this->count_.acquire_read ();
-}
-
-void
-JAWS_Asynch_IO_Handler::lock (void)
-{
- //cerr << "(" << thr_self () << ") locking handler: " << this << endl;
- this->count_.acquire_write ();
-}
-
-void
-JAWS_Asynch_IO_Handler::release (void)
-{
- //cerr << "(" << thr_self () << ") release handler: " << this << endl;
- this->count_.release ();
-}
-
-JAWS_Asynch_Handler::JAWS_Asynch_Handler (void)
- : ioh_ (0)
-{
- this->proactor (ACE_Proactor::instance ());
-}
-
-JAWS_Asynch_Handler::~JAWS_Asynch_Handler (void)
-{
-}
-
-void
-JAWS_Asynch_Handler::open (ACE_HANDLE h,
- ACE_Message_Block &mb)
-{
- JAWS_TRACE ("JAWS_Asynch_Handler::open");
-
- // This currently does nothing, but just in case.
- ACE_Service_Handler::open (h, mb);
-
- // ioh_ set from the ACT hopefully
- //this->dispatch_handler ();
-
-#if !defined (ACE_WIN32)
- // Assume at this point there is no data.
- mb.rd_ptr (mb.wr_ptr ());
- mb.crunch ();
-#else
- // AcceptEx reads some initial data from the socket.
- this->handler ()->message_block ()->copy (mb.rd_ptr (), mb.length ());
-#endif
-
- ACE_Asynch_Accept_Result_Impl *fake_result
- = ACE_Proactor::instance ()->create_asynch_accept_result
- (*this, JAWS_IO_Asynch_Acceptor_Singleton::instance ()->get_handle (),
- h, mb, JAWS_Data_Block::JAWS_DATA_BLOCK_SIZE,
- this->ioh_, ACE_INVALID_HANDLE, 0);
-
- this->handler ()->handler_ = this;
-
- fake_result->complete (0, 1, 0);
-}
-
-void
-JAWS_Asynch_Handler::act (const void *act_ref)
-{
- JAWS_TRACE ("JAWS_Asynch_Handler::act");
-
- // Set the ioh from the act
- this->ioh_ = (JAWS_Asynch_IO_Handler *) act_ref;
-}
-
-#if 0
-ACE_HANDLE
-JAWS_Asynch_Handler::handle (void) const
-{
- return this->ioh_->handle ();
-}
-#endif
-
-void
-JAWS_Asynch_Handler::dispatch_handler (void)
-{
-#if 0
- // A future version of ACE will support this.
- ACE_Thread_ID tid = ACE_OS::thr_self ();
-#else
- // Do it this way for now
- ACE_thread_t thr_name;
- thr_name = ACE_OS::thr_self ();
-
- JAWS_Thread_ID tid (thr_name);
-#endif /* 0 */
-
- JAWS_IO_Handler **iohref = JAWS_Waiter_Singleton::instance ()->find (tid);
-
- *iohref = this->handler ();
-}
-
-void
-JAWS_Asynch_Handler::handle_read_stream (const ACE_Asynch_Read_Stream::Result
- &result)
-{
- JAWS_TRACE ("JAWS_Asynch_Handler::handle_read_stream");
-
- this->dispatch_handler ();
-
- if (result.act () != 0)
- {
- // This callback is for io->receive_file()
- JAWS_TRACE ("JAWS_Asynch_Handler::handle_read_stream (recv_file)");
-
- int code = 0;
- if (result.success () && result.bytes_transferred () != 0)
- {
- if (result.message_block ().length ()
- == result.message_block ().size ())
- code = ACE_Filecache_Handle::ACE_SUCCESS;
- else
- {
- ACE_Asynch_Read_Stream ar;
- if (ar.open (*this, this->handler ()->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::ACE_SUCCESS)
- this->handler ()->receive_file_complete ();
- else
- this->handler ()->receive_file_error (code);
-
- result.message_block ().release ();
- delete (ACE_Filecache_Handle *) result.act ();
- }
- else
- {
- // This callback is for this->read()
- JAWS_TRACE ("JAWS_Asynch_Handler::handle_read_stream (read)");
-
- if (result.success ()
- && result.bytes_transferred () != 0)
- this->handler ()->read_complete (&result.message_block ());
- else
- this->handler ()->read_error ();
- }
-}
-
-void
-JAWS_Asynch_Handler::handle_write_stream (const ACE_Asynch_Write_Stream::Result
- &result)
-{
- this->dispatch_handler ();
-
- result.message_block ().release ();
-
- if (result.act () == (void *) JAWS_Asynch_IO::CONFIRMATION)
- this->handler ()->confirmation_message_complete ();
- else
- this->handler ()->error_message_complete ();
-}
-
-void
-JAWS_Asynch_Handler::handle_transmit_file (const
- ACE_Asynch_Transmit_File::Result
- &result)
-{
- this->dispatch_handler ();
-
- if (result.success ())
- this->handler ()->transmit_file_complete ();
- else
- this->handler ()->transmit_file_error (-1);
-
- result.header_and_trailer ()->header ()->release ();
- result.header_and_trailer ()->trailer ()->release ();
- delete result.header_and_trailer ();
- delete (ACE_Filecache_Handle *) result.act ();
-}
-
-void
-JAWS_Asynch_Handler::handle_accept (const ACE_Asynch_Accept::Result &result)
-{
- JAWS_TRACE ("JAWS_Asynch_Handler::handle_accept");
- this->dispatch_handler ();
-
- if (result.success ())
- {
- JAWS_TRACE ("JAWS_Asynch_Handler::handle_accept, success");
- this->handler ()->accept_complete (result.accept_handle ());
- }
- else
- this->handler ()->accept_error ();
-
-}
-
-void
-JAWS_Asynch_Handler::handler (JAWS_Asynch_IO_Handler *ioh)
-{
- this->ioh_ = ioh;
-}
-
-JAWS_Asynch_IO_Handler *
-JAWS_Asynch_Handler::handler (void)
-{
- return this->ioh_;
-}
-
-#endif /* ACE_WIN32 */
-
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<JAWS_Synch_IO_Handler_Factory, ACE_SYNCH_MUTEX>;
-template class ACE_Singleton<JAWS_Asynch_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>
-#pragma instantiate ACE_Singleton<JAWS_Asynch_IO_Handler_Factory, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS2/JAWS/IO_Handler.h b/apps/JAWS2/JAWS/IO_Handler.h
deleted file mode 100644
index 7d49dbe3f06..00000000000
--- a/apps/JAWS2/JAWS/IO_Handler.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/* -*- c++ -*- */
-// Hey, Emacs! This is a C++ file!
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// jaws
-//
-// = FILENAME
-// IO.h
-//
-// = AUTHOR
-// James Hu
-//
-// ============================================================================
-
-#ifndef JAWS_IO_HANDLER_H
-#define JAWS_IO_HANDLER_H
-
-#include "ace/Asynch_IO.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Singleton.h"
-
-#include "JAWS/Export.h"
-
-// #include "JAWS/IO.h"
-class JAWS_IO;
-class JAWS_Synch_IO;
-class JAWS_Asynch_IO;
-class JAWS_IO_Handler;
-class JAWS_IO_Handler_Factory;
-class JAWS_Data_Block;
-class JAWS_Pipeline_Handler;
-class JAWS_Waiter;
-
-class JAWS_Export JAWS_Abstract_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 ~JAWS_Abstract_IO_Handler (void);
-
- virtual void task (JAWS_Pipeline_Handler *ph) = 0;
- virtual JAWS_Pipeline_Handler *task (void) = 0;
-
- virtual void message_block (JAWS_Data_Block *mb) = 0;
- virtual JAWS_Data_Block *message_block (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) const = 0;
- // Returns the socket handle for this handler
-
- virtual void done (void) = 0;
- // Cleans up the handler.
-
- virtual int status (void) = 0;
- // Returns the status of the handler
-
- virtual void idle (void) = 0;
- // puts handler in an idle state
-
- enum { IDLE = 0, IDLE_A = 1,
- ACCEPT_OK = 2, ACCEPT_OK_A = 3,
- ACCEPT_ERROR = 4, ACCEPT_ERROR_A = 5,
- READ_OK = 6, READ_OK_A = 7,
- READ_ERROR = 8, READ_ERROR_A = 9,
- WRITE_OK = 10, WRITE_OK_A = 11,
- WRITE_ERROR = 12, WRITE_ERROR_A = 13,
- TRANSMIT_OK = 14, TRANSMIT_OK_A = 15,
- TRANSMIT_ERROR = 16, TRANSMIT_ERROR_A = 17,
- RECEIVE_OK = 18, RECEIVE_OK_A = 19,
- RECEIVE_ERROR = 20, RECEIVE_ERROR_A = 21 };
- // The different states of the handler
-
-};
-
-#if defined(ACE_WIN32) || defined(ACE_HAS_AIO_CALLS)
-
-// Forward reference.
-class JAWS_Asynch_IO_Handler;
-
-class JAWS_Export JAWS_Asynch_Handler : public ACE_Service_Handler
-{
-public:
- JAWS_Asynch_Handler (void);
- virtual ~JAWS_Asynch_Handler (void);
-
- 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.
-
- virtual void handle_accept (const ACE_Asynch_Accept::Result &result);
- // This method will be called when an asynchronous accept completes.
-
- virtual void handler (JAWS_Asynch_IO_Handler *ioh);
- virtual JAWS_Asynch_IO_Handler * handler (void);
-
- virtual void dispatch_handler (void);
-
- virtual void open (ACE_HANDLE h, ACE_Message_Block &mb);
- // Call back entry point for ACE_Asynch_Acceptor
-
- virtual void act (const void *act_ref);
- // Receives the ACT.
-
- //virtual ACE_HANDLE handle (void) const;
-
-private:
- JAWS_Asynch_IO_Handler *ioh_;
-};
-#endif /* defined(ACE_WIN32) || defined(ACE_HAS_AIO_CALLS) */
-
-
-class JAWS_Export JAWS_IO_Handler : public JAWS_Abstract_IO_Handler
-{
-public:
- JAWS_IO_Handler (JAWS_IO_Handler_Factory *factory);
- virtual ~JAWS_IO_Handler (void);
-
- // 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 JAWS_IO_Handler_Factory *factory (void);
- virtual ACE_HANDLE handle (void) const;
-
- virtual void done (void);
- virtual int status (void);
- virtual void idle (void);
-
- virtual void acquire (void);
- virtual void lock (void);
- virtual void release (void);
-
- virtual void task (JAWS_Pipeline_Handler *ph);
- virtual JAWS_Pipeline_Handler *task (void);
-
- virtual void message_block (JAWS_Data_Block *mb);
- virtual JAWS_Data_Block *message_block (void);
-
-protected:
- int status_;
- // The state of the handler.
-
- JAWS_Data_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_;
- // The reference to the handler's factory.
-};
-
-class JAWS_Export JAWS_IO_Handler_Factory
-{
-public:
- virtual ~JAWS_IO_Handler_Factory (void);
- // Destructor
-
- virtual JAWS_IO_Handler *create_io_handler (void);
- // This creates a new JAWS_IO_Handler
-
- virtual void destroy_io_handler (JAWS_IO_Handler *handler);
- // This deletes a JAWS_IO_Handler
-};
-
-typedef JAWS_IO_Handler JAWS_Synch_IO_Handler;
-typedef JAWS_IO_Handler_Factory JAWS_Synch_IO_Handler_Factory;
-
-typedef ACE_Singleton<JAWS_Synch_IO_Handler_Factory, ACE_SYNCH_MUTEX>
- JAWS_Synch_IO_Handler_Factory_Singleton;
-
-#if defined(ACE_WIN32) || defined(ACE_HAS_AIO_CALLS)
-
-class JAWS_Export JAWS_Asynch_IO_Handler : public JAWS_IO_Handler
-{
-friend class JAWS_Asynch_Handler;
-friend class JAWS_Asynch_IO_Handler_Factory;
-friend class JAWS_Waiter;
-
- // Provide implementations for the common functions.
-public:
- JAWS_Asynch_IO_Handler (JAWS_Asynch_IO_Handler_Factory *factory);
- virtual ~JAWS_Asynch_IO_Handler (void);
-
- virtual ACE_Handler *handler (void);
-
- virtual void acquire (void);
- virtual void lock (void);
- virtual void release (void);
-
-protected:
-
- JAWS_Asynch_Handler *handler_;
- ACE_SYNCH_RW_MUTEX count_;
-};
-
-
-class JAWS_Export JAWS_Asynch_IO_Handler_Factory : public JAWS_IO_Handler_Factory
-{
-public:
- virtual ~JAWS_Asynch_IO_Handler_Factory (void);
- // Destructor
-
- virtual JAWS_IO_Handler *create_io_handler (void);
- // This creates a new JAWS_IO_Handler
-
- virtual void destroy_io_handler (JAWS_IO_Handler *handler);
- // This deletes a JAWS_IO_Handler
-};
-
-#else
-
-typedef JAWS_IO_Handler JAWS_Asynch_IO_Handler;
-typedef JAWS_IO_Handler_Factory JAWS_Asynch_IO_Handler_Factory;
-
-#endif /* defined(ACE_WIN32) || defined(ACE_HAS_AIO_CALLS) */
-
-typedef ACE_Singleton<JAWS_Asynch_IO_Handler_Factory, ACE_SYNCH_MUTEX>
- JAWS_Asynch_IO_Handler_Factory_Singleton;
-
-#endif /* JAWS_IO_HANDLER_H */
diff --git a/apps/JAWS2/JAWS/JAWS.h b/apps/JAWS2/JAWS/JAWS.h
deleted file mode 100644
index 930d5fcbf60..00000000000
--- a/apps/JAWS2/JAWS/JAWS.h
+++ /dev/null
@@ -1,14 +0,0 @@
-// $Id$
-
-#if (JAWS_NTRACE == 1)
-# define JAWS_TRACE(X)
-#else
-# define JAWS_TRACE(X) ACE_Trace ____ (ACE_TEXT (X), \
- __LINE__, \
- ACE_TEXT (__FILE__))
-#endif /* JAWS_NTRACE */
-
-#ifndef JAWS_JAWS_H
-#define JAWS_JAWS_H
-
-#endif /* JAWS_JAWS_H */
diff --git a/apps/JAWS2/JAWS/Makefile b/apps/JAWS2/JAWS/Makefile
deleted file mode 100644
index 1e5a9f78ec9..00000000000
--- a/apps/JAWS2/JAWS/Makefile
+++ /dev/null
@@ -1,3349 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Adapter Web Server (JAWS)
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-#BIN = main
-
-LIB = libJAWS2.a
-SHLIB = libJAWS2.$(SOEXT)
-
-MYFILES = \
- Cache_Hash_T \
- Cache_Heap_T \
- Cache_List_T \
- Cache_Manager \
- Cache_Manager_T \
- Cache_Object \
- Hash_Bucket_T \
- Pipeline_Handler_T \
- Pipeline \
- Pipeline_Tasks \
- Headers \
- Parse_Headers \
- Waiter \
- Reaper \
- Data_Block \
- Policy \
- Concurrency \
- Server \
- Filecache \
- FILE \
- IO_Acceptor \
- IO_Handler \
- IO
-
-LSRC = $(addsuffix .cpp,$(MYFILES))
-LOBJ = $(addsuffix .o,$(MYFILES))
-
-CPPFLAGS += -I.. -DJAWS_NTRACE=0 -DACE_NLOGGING #-DJAWS_HAS_THREAD_SAFE_ACCEPT
-CPPFLAGS += -DACE_JAWS_BASELINE
-#CPPFLAGS += -DJAWS_HAS_THREAD_SAFE_ACCEPT
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-#LDLIBS = -lJAWS
-
-#BUILD = $(VOBJS) $(VLIB) #$(VBIN)
-BUILD = $(VSHLIB) $(SHLIBA) $(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
-# 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/Cache_Hash_T.o .obj/Cache_Hash_T.so .shobj/Cache_Hash_T.o .shobj/Cache_Hash_T.so: Cache_Hash_T.cpp ../JAWS/Cache_Hash_T.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i ../JAWS/Cache_Object.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i ../JAWS/Cache_Hash_T.cpp \
- ../JAWS/Hash_Bucket_T.h $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ../JAWS/Hash_Bucket_T.cpp
-
-.obj/Cache_Heap_T.o .obj/Cache_Heap_T.so .shobj/Cache_Heap_T.o .shobj/Cache_Heap_T.so: Cache_Heap_T.cpp ../JAWS/Cache_Heap_T.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i ../JAWS/Cache_Object.h \
- ../JAWS/Cache_Heap_T.cpp ../JAWS/Cache_Manager_T.h \
- $(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/Cache_Manager_T.cpp ../JAWS/Cache_Hash_T.h \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ../JAWS/Hash_Bucket_T.cpp ../JAWS/Cache_List_T.h \
- ../JAWS/Cache_List_T.cpp
-
-.obj/Cache_List_T.o .obj/Cache_List_T.so .shobj/Cache_List_T.o .shobj/Cache_List_T.so: Cache_List_T.cpp ../JAWS/Cache_List_T.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i ../JAWS/Cache_Object.h \
- ../JAWS/Cache_List_T.cpp ../JAWS/Cache_Manager_T.h \
- $(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/Cache_Manager_T.cpp ../JAWS/Cache_Hash_T.h \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ../JAWS/Hash_Bucket_T.cpp
-
-.obj/Cache_Manager.o .obj/Cache_Manager.so .shobj/Cache_Manager.o .shobj/Cache_Manager.so: Cache_Manager.cpp $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i ../JAWS/Cache_Manager.h \
- ../JAWS/Cache_Manager_T.h $(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/Cache_Object.h $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- ../JAWS/Cache_Manager_T.cpp ../JAWS/Cache_Hash_T.h \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ../JAWS/Hash_Bucket_T.cpp ../JAWS/Cache_List_T.h \
- ../JAWS/Cache_List_T.cpp
-
-.obj/Cache_Manager_T.o .obj/Cache_Manager_T.so .shobj/Cache_Manager_T.o .shobj/Cache_Manager_T.so: Cache_Manager_T.cpp ../JAWS/Cache_Manager_T.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Cache_Object.h $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- ../JAWS/Cache_Manager_T.cpp ../JAWS/Cache_Hash_T.h \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ../JAWS/Hash_Bucket_T.cpp ../JAWS/Cache_List_T.h \
- ../JAWS/Cache_List_T.cpp
-
-.obj/Cache_Object.o .obj/Cache_Object.so .shobj/Cache_Object.o .shobj/Cache_Object.so: Cache_Object.cpp ../JAWS/Cache_Object.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i
-
-.obj/Hash_Bucket_T.o .obj/Hash_Bucket_T.so .shobj/Hash_Bucket_T.o .shobj/Hash_Bucket_T.so: Hash_Bucket_T.cpp ../JAWS/Hash_Bucket_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ../JAWS/Hash_Bucket_T.cpp
-
-.obj/Pipeline_Handler_T.o .obj/Pipeline_Handler_T.so .shobj/Pipeline_Handler_T.o .shobj/Pipeline_Handler_T.so: Pipeline_Handler_T.cpp ../JAWS/Pipeline_Handler_T.h \
- ../JAWS/Export.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i ../JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(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/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp \
- ../JAWS/Pipeline_Handler_T.cpp
-
-.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/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(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/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Export.h
-
-.obj/Pipeline_Tasks.o .obj/Pipeline_Tasks.so .shobj/Pipeline_Tasks.o .shobj/Pipeline_Tasks.so: Pipeline_Tasks.cpp ../JAWS/JAWS.h ../JAWS/IO.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Export.h \
- ../JAWS/Pipeline_Tasks.h ../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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(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/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Pipeline_Handler_T.h \
- ../JAWS/Pipeline_Handler_T.cpp ../JAWS/Data_Block.h \
- ../JAWS/IO_Handler.h ../JAWS/Policy.h ../JAWS/Concurrency.h
-
-.obj/Headers.o .obj/Headers.so .shobj/Headers.o .shobj/Headers.so: Headers.cpp ../JAWS/Headers.h ../JAWS/Export.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp
-
-.obj/Parse_Headers.o .obj/Parse_Headers.so .shobj/Parse_Headers.o .shobj/Parse_Headers.so: Parse_Headers.cpp ../JAWS/Parse_Headers.h \
- ../JAWS/Export.h $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../JAWS/Headers.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp
-
-.obj/Waiter.o .obj/Waiter.so .shobj/Waiter.o .shobj/Waiter.so: Waiter.cpp $(ACE_ROOT)/ace/Proactor.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/Asynch_IO_Impl.h \
- $(ACE_ROOT)/ace/Asynch_IO_Impl.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(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/Synch_T.cpp \
- $(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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Timer_List.h \
- $(ACE_ROOT)/ace/Timer_List_T.h \
- $(ACE_ROOT)/ace/Timer_List_T.cpp \
- $(ACE_ROOT)/ace/Timer_Heap.h \
- $(ACE_ROOT)/ace/Timer_Heap_T.h \
- $(ACE_ROOT)/ace/Timer_Heap_T.cpp \
- $(ACE_ROOT)/ace/Timer_Wheel.h \
- $(ACE_ROOT)/ace/Timer_Wheel_T.h \
- $(ACE_ROOT)/ace/Timer_Wheel_T.cpp \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i ../JAWS/Waiter.h \
- ../JAWS/Assoc_Array.h ../JAWS/Assoc_Array.cpp ../JAWS/Export.h \
- ../JAWS/IO_Handler.h
-
-.obj/Reaper.o .obj/Reaper.so .shobj/Reaper.o .shobj/Reaper.so: Reaper.cpp ../JAWS/Reaper.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp ../JAWS/Export.h \
- ../JAWS/Concurrency.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_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.cpp \
- $(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/IO_Handler.h
-
-.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/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../JAWS/Export.h \
- ../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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Policy.h \
- ../JAWS/Concurrency.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
-
-.obj/Policy.o .obj/Policy.so .shobj/Policy.o .shobj/Policy.so: Policy.cpp ../JAWS/Policy.h ../JAWS/Export.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i ../JAWS/Concurrency.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp ../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/IO_Acceptor.h $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.cpp \
- $(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
-
-.obj/Concurrency.o .obj/Concurrency.so .shobj/Concurrency.o .shobj/Concurrency.so: Concurrency.cpp ../JAWS/JAWS.h ../JAWS/Concurrency.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Service_Object.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp ../JAWS/Export.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/Pipeline.h $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Pipeline_Tasks.h \
- ../JAWS/Pipeline_Handler_T.h ../JAWS/Pipeline_Handler_T.cpp \
- ../JAWS/Data_Block.h ../JAWS/Policy.h ../JAWS/Waiter.h \
- ../JAWS/Assoc_Array.h ../JAWS/Assoc_Array.cpp ../JAWS/Reaper.h
-
-.obj/Server.o .obj/Server.so .shobj/Server.o .shobj/Server.so: Server.cpp $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i ../JAWS/Server.h \
- ../JAWS/Export.h ../JAWS/Data_Block.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Policy.h \
- ../JAWS/Concurrency.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/IO_Acceptor.h $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.cpp \
- $(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/Pipeline_Tasks.h ../JAWS/Pipeline_Handler_T.h \
- ../JAWS/Pipeline_Handler_T.cpp
-
-.obj/Filecache.o .obj/Filecache.so .shobj/Filecache.o .shobj/Filecache.so: Filecache.cpp $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/FILE_Connector.h \
- $(ACE_ROOT)/ace/FILE_IO.h \
- $(ACE_ROOT)/ace/FILE.h \
- $(ACE_ROOT)/ace/IO_SAP.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/IO_SAP.i \
- $(ACE_ROOT)/ace/FILE_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/FILE_Addr.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/FILE.i \
- $(ACE_ROOT)/ace/FILE_IO.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/FILE_Connector.i ../JAWS/Filecache.h \
- ../JAWS/Cache_Manager.h $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp ../JAWS/Cache_Manager_T.h \
- $(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/Cache_Object.h $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- ../JAWS/Cache_Manager_T.cpp ../JAWS/Cache_Hash_T.h \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- ../JAWS/Hash_Bucket_T.cpp ../JAWS/Cache_List_T.h \
- ../JAWS/Cache_List_T.cpp ../JAWS/FILE.h ../JAWS/Export.h
-
-.obj/FILE.o .obj/FILE.so .shobj/FILE.o .shobj/FILE.so: FILE.cpp $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i ../JAWS/FILE.h \
- $(ACE_ROOT)/ace/FILE_IO.h \
- $(ACE_ROOT)/ace/FILE.h \
- $(ACE_ROOT)/ace/IO_SAP.h \
- $(ACE_ROOT)/ace/IO_SAP.i \
- $(ACE_ROOT)/ace/FILE_Addr.h \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/FILE_Addr.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/FILE.i \
- $(ACE_ROOT)/ace/FILE_IO.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i ../JAWS/Export.h
-
-.obj/IO_Acceptor.o .obj/IO_Acceptor.so .shobj/IO_Acceptor.o .shobj/IO_Acceptor.so: IO_Acceptor.cpp ../JAWS/Data_Block.h \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp ../JAWS/Export.h \
- ../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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Time_Value.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.cpp \
- $(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/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/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/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/LOCK_SOCK_Acceptor.cpp ../JAWS/IO.h \
- ../JAWS/IO_Handler.h
-
-.obj/IO_Handler.o .obj/IO_Handler.so .shobj/IO_Handler.o .shobj/IO_Handler.so: IO_Handler.cpp $(ACE_ROOT)/ace/Proactor.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Asynch_IO.h \
- $(ACE_ROOT)/ace/Asynch_IO_Impl.h \
- $(ACE_ROOT)/ace/Asynch_IO_Impl.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(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/Synch_T.cpp \
- $(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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Timer_Queue.h \
- $(ACE_ROOT)/ace/Timer_Queue_T.h \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(ACE_ROOT)/ace/Timer_Queue_T.i \
- $(ACE_ROOT)/ace/Timer_Queue_T.cpp \
- $(ACE_ROOT)/ace/Signal.h \
- $(ACE_ROOT)/ace/Signal.i \
- $(ACE_ROOT)/ace/Timer_List.h \
- $(ACE_ROOT)/ace/Timer_List_T.h \
- $(ACE_ROOT)/ace/Timer_List_T.cpp \
- $(ACE_ROOT)/ace/Timer_Heap.h \
- $(ACE_ROOT)/ace/Timer_Heap_T.h \
- $(ACE_ROOT)/ace/Timer_Heap_T.cpp \
- $(ACE_ROOT)/ace/Timer_Wheel.h \
- $(ACE_ROOT)/ace/Timer_Wheel_T.h \
- $(ACE_ROOT)/ace/Timer_Wheel_T.cpp \
- $(ACE_ROOT)/ace/High_Res_Timer.h \
- $(ACE_ROOT)/ace/High_Res_Timer.i \
- $(ACE_ROOT)/ace/Filecache.h \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_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/SString.h \
- $(ACE_ROOT)/ace/SString.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/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.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/Memory_Pool.i ../JAWS/JAWS.h \
- ../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 ../JAWS/Export.h \
- ../JAWS/IO_Handler.h ../JAWS/IO_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.cpp \
- $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(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/Data_Block.h ../JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Module.h \
- $(ACE_ROOT)/ace/Task_T.h \
- $(ACE_ROOT)/ace/Message_Queue.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Policy.h \
- ../JAWS/Concurrency.h ../JAWS/Waiter.h ../JAWS/Assoc_Array.h \
- ../JAWS/Assoc_Array.cpp
-
-.obj/IO.o .obj/IO.so .shobj/IO.o .shobj/IO.so: IO.cpp $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(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/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 ../JAWS/JAWS.h \
- ../JAWS/Data_Block.h ../JAWS/Export.h ../JAWS/Pipeline.h \
- $(ACE_ROOT)/ace/Stream.h \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(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/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp ../JAWS/Policy.h \
- ../JAWS/Concurrency.h ../JAWS/IO.h \
- $(ACE_ROOT)/ace/Asynch_IO.h ../JAWS/IO_Handler.h \
- ../JAWS/IO_Acceptor.h $(ACE_ROOT)/ace/Asynch_Acceptor.h \
- $(ACE_ROOT)/ace/Asynch_Acceptor.cpp \
- $(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/Filecache.h $(ACE_ROOT)/ace/FILE_IO.h \
- $(ACE_ROOT)/ace/FILE.h \
- $(ACE_ROOT)/ace/IO_SAP.h \
- $(ACE_ROOT)/ace/IO_SAP.i \
- $(ACE_ROOT)/ace/FILE_Addr.h \
- $(ACE_ROOT)/ace/FILE_Addr.i \
- $(ACE_ROOT)/ace/FILE.i \
- $(ACE_ROOT)/ace/FILE_IO.i ../JAWS/Cache_Manager.h \
- ../JAWS/Cache_Manager_T.h ../JAWS/Cache_Object.h \
- ../JAWS/Cache_Manager_T.cpp ../JAWS/Cache_Hash_T.h \
- ../JAWS/Cache_Hash_T.cpp ../JAWS/Hash_Bucket_T.h \
- ../JAWS/Hash_Bucket_T.cpp ../JAWS/Cache_List_T.h \
- ../JAWS/Cache_List_T.cpp ../JAWS/FILE.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS2/JAWS/Makefile.bor b/apps/JAWS2/JAWS/Makefile.bor
deleted file mode 100644
index af27229cef2..00000000000
--- a/apps/JAWS2/JAWS/Makefile.bor
+++ /dev/null
@@ -1,31 +0,0 @@
-
-NAME = JAWS
-OBJFILES = \
- $(OBJDIR)\Cache_Manager.obj \
- $(OBJDIR)\Cache_Object.obj \
- $(OBJDIR)\Pipeline.obj \
- $(OBJDIR)\Pipeline_Tasks.obj \
- $(OBJDIR)\Headers.obj \
- $(OBJDIR)\Parse_Headers.obj \
- $(OBJDIR)\Waiter.obj \
- $(OBJDIR)\Reaper.obj \
- $(OBJDIR)\Data_Block.obj \
- $(OBJDIR)\Policy.obj \
- $(OBJDIR)\Concurrency.obj \
- $(OBJDIR)\Server.obj \
- $(OBJDIR)\IO_Acceptor.obj \
- $(OBJDIR)\IO_Handler.obj \
- $(OBJDIR)\IO.obj \
- $(OBJDIR)\Cache_Hash_T.obj \
- $(OBJDIR)\Cache_Heap_T.obj \
- $(OBJDIR)\Cache_List_T.obj \
- $(OBJDIR)\Cache_Manager_T.obj \
- $(OBJDIR)\Hash_Bucket_T.obj \
- $(OBJDIR)\Pipeline_Handler_T.obj
-
-CFLAGS = -I$(ACE_ROOT) -I.. -DJAWS_NTRACE=0 -DACE_NLOGGING
-CPPDIR = .
-BINDIR =..\.
-LIBFILES = $(ACE_LIB)
-!include <$(ACE_ROOT)\include\makeinclude\build_library.bor>
-
diff --git a/apps/JAWS2/JAWS/Parse_Headers.cpp b/apps/JAWS2/JAWS/Parse_Headers.cpp
deleted file mode 100644
index b0bdfb0d2c8..00000000000
--- a/apps/JAWS2/JAWS/Parse_Headers.cpp
+++ /dev/null
@@ -1,441 +0,0 @@
-// $Id$
-
-#include "JAWS/Parse_Headers.h"
-
-#define ACCESSOR(T,C,x) \
-T C##::##x (void) const { return this->##x##_; }\
-void C##::##x (T t) { this->##x##_ = t; }
-
-int
-JAWS_Parse_Headers::parse_headers (JAWS_Header_Info *info,
- ACE_Message_Block &mb)
-{
- for (;;)
- {
- if (mb.rd_ptr () == mb.wr_ptr ())
- break;
-
- char *p = mb.rd_ptr ();
-
- if (info->end_of_line ()
- && (*p != ' ' && *p != '\t'))
- {
- int r = this->parse_header_name (info, mb);
- if (r == 1)
- return info->end_of_headers ();
- continue;
- }
- else
- {
- int r = this->parse_header_value (info, mb);
- if (r == 1)
- {
- if (info->end_of_headers ())
- return 1;
- break;
- }
- continue;
- }
- }
-
- // If we arrive here, it means either there is nothing more to read,
- // or parse_header_value ran into difficulties (like maybe the
- // header value was too long).
-
- if (mb.rd_ptr () != mb.base ())
- {
- mb.crunch ();
- return 0;
- }
- else if (mb.length () < mb.size ())
- {
- return 0;
- }
- else if (mb.length () == mb.size ())
- {
- // This is one of those cases that should rarely ever happen.
- // If we get here, the header type name is over 8K long. We
- // flag this as a bad thing.
-
- // In HTTP/1.1, I have to remember that a bad request means the
- // connection needs to be closed and the client has to
- // reinitiate the connection.
-
- info->status (JAWS_Header_Info::TOO_LONG);
- return 1;
- }
- else if (mb.length () > mb.size ())
- {
- ACE_DEBUG ((LM_DEBUG, "JAWS_Parse_Headers: buffer overrun!!\n"));
- info->status (JAWS_Header_Info::TOO_LONG);
- return 1;
- }
-
- ACE_DEBUG ((LM_DEBUG, "JAWS_Parse_Headers -- shouldn't be here!\n"));
- return 1;
-}
-
-char *
-JAWS_Parse_Headers::skipset (const char *set, char *start, char *end)
-{
- char *p = start;
- while (p < end)
- {
- if (ACE_OS::strchr (set, *p) != NULL)
- break;
- p++;
- }
- return p;
-}
-
-char *
-JAWS_Parse_Headers::skipcset (const char *set, char *start, char *end)
-{
- char *p = start;
- while (p < end)
- {
- if (ACE_OS::strchr (set, *p) == NULL)
- break;
- p++;
- }
- return p;
-}
-
-int
-JAWS_Parse_Headers::parse_header_name (JAWS_Header_Info *info,
- ACE_Message_Block &mb)
-{
- char *p = mb.rd_ptr ();
- char *q;
-
- q = this->skipset (":\n", p, mb.wr_ptr ());
- if (q == mb.wr_ptr ())
- {
- // no more progress can be made until we find a ':'
- return 1;
- }
- if (*q != '\n' && q == p)
- {
- // Ignore empty header type names
- info->finish_last_header_value ();
- info->create_next_header_value (0);
- info->end_of_line (0);
- mb.rd_ptr (q+1);
- return 0;
- }
- if (*q == '\n')
- {
- // ignore this line
- mb.rd_ptr (q+1);
- if (q == p || ((q-1) == p && q[-1] == '\r'))
- {
- // blank line means end of headers
- info->finish_last_header_value ();
- info->create_next_header_value (0);
- info->end_of_headers (1);
- if (mb.rd_ptr () == mb.wr_ptr ())
- mb.crunch ();
- return 1;
- }
-
- // not a blank line, but no ':', so ignore it
- info->finish_last_header_value ();
- info->create_next_header_value (0);
- return 0;
- }
-
- // otherwise, we have a header type name!
- *q = '\0';
- info->create_next_header_value (p);
- info->end_of_line (0);
-
- mb.rd_ptr (q+1);
- return 0;
-}
-
-int
-JAWS_Parse_Headers::parse_header_value (JAWS_Header_Info *info,
- ACE_Message_Block &mb)
-{
- // break --> return 1;
- // continue --> return 0;
-
- char *q = mb.rd_ptr ();
-
- if (info->last_header_data () == 0)
- {
- // Ignoring this header (it is too long or something).
-
- q = this->skipset ("\n", mb.rd_ptr (), mb.wr_ptr ());
- if (q == mb.wr_ptr ())
- {
- info->end_of_line (0);
- mb.rd_ptr (q);
-
- // Move the rd_ptr back one character if the last thing we
- // see is a carriage return. Assert: wr_ptr > rd_ptr.
- if (q[-1] == '\r')
- mb.rd_ptr (q-1);
-
- return 1;
- }
-
- if (*q == '\0')
- {
- // We are in the middle of binary data. Get out!
- mb.rd_ptr (q);
- info->end_of_line (1);
- info->end_of_headers (1);
- return 1;
- }
-
- // Move past the newline, set the end of line flag
- if (*q == '\n')
- {
- info->end_of_line (1);
- q++;
- }
- mb.rd_ptr (q);
-
- return 0;
- }
- else
- {
- if (info->end_of_line ())
- {
- // Skip over leading linear white space
- q = this->skipcset (" \t", mb.rd_ptr (), mb.wr_ptr ());
- if (q == mb.wr_ptr ())
- {
- // need more input
- info->end_of_line (1);
- mb.rd_ptr (q-1);
- return 1;
- }
-
- if (*q != '\n')
- info->append_last_header_value (' ');
- }
-
- // Append to last header value character by character
- while (q < mb.wr_ptr ())
- {
- if (*q == '\n')
- break;
- info->append_last_header_value (*q);
- q++;
- }
-
- // Need more input
- if (q == mb.wr_ptr ())
- {
- mb.rd_ptr (q);
- info->end_of_line (0);
- return 1;
- }
-
- // Reached a newline
- if (*q == '\n')
- {
- // Reduce by one character if line discipline is "\r\n"
- if (info->append_last_header_value () == '\r')
- info->reduce_last_header_value ();
-
- // Move past newline, set end of line flag
- mb.rd_ptr (q+1);
- info->end_of_line (1);
-
- return 0;
- }
- }
-
- // NOT REACHED
- return 1;
-}
-
-
-JAWS_Header_Info::JAWS_Header_Info (void)
- : end_of_headers_ (0),
- end_of_line_ (1),
- last_header_data_ (0),
- last_header_length_ (0),
- status_ (0)
-{
-}
-
-JAWS_Header_Info::~JAWS_Header_Info (void)
-{
- JAWS_Header_Table_Iterator iter (this->table_);
- JAWS_Header_Data *data_ptr;
-
- for (iter.first (); !iter.done (); iter.advance ())
- {
- data_ptr = iter.next ();
- if (data_ptr)
- delete data_ptr;
- }
-}
-
-void
-JAWS_Header_Info::dump (void)
-{
- JAWS_Header_Table_Iterator iter (this->table_);
-
- ACE_DEBUG ((LM_DEBUG, "== BEGIN HEADER INFO DUMP ==\n"));
- for (iter.first (); ! iter.done (); iter.advance ())
- {
- JAWS_Header_Data *data;
- data = iter.next ();
- if (data != 0)
- ACE_DEBUG ((LM_DEBUG,
- "%s -- %s\n",
- data->header_name (), data->header_value ()));
- else
- ACE_DEBUG ((LM_DEBUG, "NULL ENTRY\n"));
- }
- ACE_DEBUG ((LM_DEBUG, "== END HEADER INFO DUMP ==\n"));
-}
-
-JAWS_Headers *
-JAWS_Header_Info::table (void)
-{
- return &(this->table_);
-}
-
-void
-JAWS_Header_Info::append_last_header_value (char c)
-{
- if (this->last_header_data_ == 0)
- return;
-
- if (this->last_header_length_ == 0 && (c == ' ' || c == '\t'))
- return;
-
- if (this->last_header_length_ < MAX_HEADER_LENGTH-1)
- {
- this->header_buf_[this->last_header_length_] = c;
- this->last_header_length_++;
- this->header_buf_[this->last_header_length_] = '\0';
- }
-
-}
-
-int
-JAWS_Header_Info::append_last_header_value (void)
-{
- if (this->last_header_data_ == 0 || this->last_header_length_ == 0)
- return -1;
-
- return this->header_buf_[this->last_header_length_-1];
-}
-
-void
-JAWS_Header_Info::append_last_header_value (const char *begin, const char *end)
-{
- if (this->last_header_data_ == 0)
- return;
-
- while (this->last_header_length_ < MAX_HEADER_LENGTH-1)
- {
- if (begin == end)
- break;
-
- this->header_buf_[this->last_header_length_] = *begin;
- this->last_header_length_++;
- begin++;
- }
-
- this->header_buf_[this->last_header_length_] = '\0';
-}
-
-void
-JAWS_Header_Info::reduce_last_header_value (void)
-{
- if (this->last_header_data_ == 0) return;
-
- if (this->last_header_length_ > 0)
- {
- this->last_header_length_--;
- this->header_buf_[this->last_header_length_] = '\0';
- }
-}
-
-void
-JAWS_Header_Info::create_next_header_value (char *ht)
-{
- if (ht == 0)
- {
- // discard last header data
-
- delete this->last_header_data_;
- this->last_header_data_ = 0;
- this->last_header_length (0);
- return;
- }
-
- this->finish_last_header_value ();
-
- if (this->status () == JAWS_Header_Info::OK)
- {
- // create a new last_header_data_ node
-
- this->last_header_data_ = new JAWS_Header_Data (ht, 0);
- // The above performs a strdup.
-
- if (this->last_header_data_ == 0 || this->last_header_name () == 0)
- {
- this->status (JAWS_Header_Info::NO_MEMORY);
- delete this->last_header_data_;
- this->last_header_data_ = 0;
- }
- this->last_header_length (0);
- this->header_buf_[0] = '\0';
- }
-}
-
-void
-JAWS_Header_Info::finish_last_header_value (void)
-{
- if (this->last_header_data_ != 0)
- {
- // prepare to insert last header data into the table.
-
- this->last_header_data_->header_value (this->header_buf ());
- // The above performs a strdup.
-
- if (this->status () == JAWS_Header_Info::OK)
- this->table_.insert (this->last_header_data_);
- else
- delete this->last_header_data_;
- this->last_header_data_ = 0;
- }
-}
-
-char *
-JAWS_Header_Info::header_buf (void)
-{
- return this->header_buf_;
-}
-
-const char *
-JAWS_Header_Info::last_header_name (void) const
-{
- return this->last_header_data_ ? this->last_header_data_->header_name () : 0;
-}
-
-const JAWS_Header_Data *
-JAWS_Header_Info::last_header_data (void) const
-{
- return this->last_header_data_;
-}
-
-ACCESSOR(int,JAWS_Header_Info,last_header_length)
-ACCESSOR(int,JAWS_Header_Info,end_of_line)
-ACCESSOR(int,JAWS_Header_Info,end_of_headers)
-ACCESSOR(int,JAWS_Header_Info,status)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- template class ACE_Singleton<JAWS_Parse_Headers, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-# pragma instantiate ACE_Singleton<JAWS_Parse_Headers, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS2/JAWS/Parse_Headers.h b/apps/JAWS2/JAWS/Parse_Headers.h
deleted file mode 100644
index 24bdc0d2462..00000000000
--- a/apps/JAWS2/JAWS/Parse_Headers.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_PARSE_HEADERS_H
-#define JAWS_PARSE_HEADERS_H
-
-#include "JAWS/Export.h"
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Message_Block.h"
-
-#include "Headers.h"
-
-class JAWS_Export JAWS_Header_Info
-{
-public:
- JAWS_Header_Info (void);
- ~JAWS_Header_Info (void);
-
- int end_of_line (void) const;
- void end_of_line (int flag);
-
- const char *last_header_name (void) const;
-
- int last_header_length (void) const;
- void last_header_length (int len);
-
- const JAWS_Header_Data * last_header_data (void) const;
-
- char *header_buf (void);
-
- void append_last_header_value (char c);
- int append_last_header_value (void);
- void append_last_header_value (const char *begin, const char *end);
- void reduce_last_header_value (void);
-
- void create_next_header_value (char *ht);
- // This will insert last_header_data into the table if it is not
- // null. Then, it will create a new header_data node and populate
- // it. If ht is null, last_header_data is not inserted.
-
- void finish_last_header_value (void);
- // This will insert last_header_data into the table if it is not
- // null.
-
- int end_of_headers (void) const;
- void end_of_headers (int flag);
-
- int status (void) const;
- void status (int s);
-
- JAWS_Headers *table (void);
-
- enum STATUS_CODE
- {
- OK = 0,
- NO_MEMORY,
- TOO_LONG
- };
-
- enum
- {
- MAX_HEADER_LENGTH = 8192
- };
- // 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. Who am I to disagree?
-
- void dump (void);
-
-private:
- int end_of_headers_;
- int end_of_line_;
-
- JAWS_Header_Data *last_header_data_;
-
- int last_header_length_;
- int status_;
-
- char header_buf_[MAX_HEADER_LENGTH];
- JAWS_Headers table_;
-};
-
-class JAWS_Export JAWS_Parse_Headers
-{
-public:
-
- int parse_headers (JAWS_Header_Info *info, ACE_Message_Block &mb);
- // Return 0 means need more data, and call it again.
- // Return 1 means all done or error.
-
- int parse_header_name (JAWS_Header_Info *info, ACE_Message_Block &mb);
- // Return 0 means reiterate on remaining input.
- // Return 1 means input has ended (either because it ended
- // prematurely, or that there are no more headers).
-
- int parse_header_value (JAWS_Header_Info *info, ACE_Message_Block &mb);
- // Return 0 means reiterate on remaining input.
- // Return 1 means input has ended or that an error has occurred.
-
- char * skipset (const char *set, char *start, char *end);
- // Scans from start to end for characters that match skip set.
- // Returns pointer to first location between start and end of a
- // character that is in the skip set.
-
- char * skipcset (const char *set, char *start, char *end);
- // Scans from start to end for characters that match skip set.
- // Returns pointer to first location between start and end of a
- // character that is *not* in the skip set.
-
-};
-
-typedef ACE_Singleton<JAWS_Parse_Headers, ACE_SYNCH_MUTEX>
- JAWS_Parse_Headers_Singleton;
-
-
-#endif /* !defined (JAWS_PARSE_HEADERS_H) */
diff --git a/apps/JAWS2/JAWS/Pipeline.cpp b/apps/JAWS2/JAWS/Pipeline.cpp
deleted file mode 100644
index e0f298a48ea..00000000000
--- a/apps/JAWS2/JAWS/Pipeline.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// $Id$
-
-#include "JAWS/Pipeline.h"
-
-ACE_RCSID(JAWS, Pipeline, "$Id$")
-
-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;
-}
diff --git a/apps/JAWS2/JAWS/Pipeline.h b/apps/JAWS2/JAWS/Pipeline.h
deleted file mode 100644
index 03c3c66d104..00000000000
--- a/apps/JAWS2/JAWS/Pipeline.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_PIPELINE_H
-#define JAWS_PIPELINE_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Service_Config.h"
-#include "ace/Stream.h"
-#include "ace/Module.h"
-#include "ace/Task.h"
-
-#include "JAWS/Export.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_Export 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);
-};
-
-#endif /* !defined (JAWS_PIPELINE_H) */
diff --git a/apps/JAWS2/JAWS/Pipeline_Handler_T.cpp b/apps/JAWS2/JAWS/Pipeline_Handler_T.cpp
deleted file mode 100644
index ca2e26b3177..00000000000
--- a/apps/JAWS2/JAWS/Pipeline_Handler_T.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-// $Id$
-
-#ifndef JAWS_PIPELINE_HANDLER_T_CPP
-#define JAWS_PIPELINE_HANDLER_T_CPP
-
-#include "JAWS/Pipeline_Handler_T.h"
-
-ACE_RCSID(JAWS, Pipeline_Handler_T, "$Id$")
-
-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 = (TYPE *) mb->data_block ();
-
- int status = this->handle_put (data, tv);
-
- return status;
-}
-
-#endif /* !defined (JAWS_PIPELINE_HANDLER_T_CPP) */
diff --git a/apps/JAWS2/JAWS/Pipeline_Handler_T.h b/apps/JAWS2/JAWS/Pipeline_Handler_T.h
deleted file mode 100644
index 4d4d808fee2..00000000000
--- a/apps/JAWS2/JAWS/Pipeline_Handler_T.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_PIPELINE_HANDLER_T_H
-#define JAWS_PIPELINE_HANDLER_T_H
-
-#include "JAWS/Export.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_T.cpp"
-#endif
-
-#endif /* !defined (JAWS_PIPELINE_HANDLER_T_H) */
diff --git a/apps/JAWS2/JAWS/Pipeline_Tasks.cpp b/apps/JAWS2/JAWS/Pipeline_Tasks.cpp
deleted file mode 100644
index 8af617d8979..00000000000
--- a/apps/JAWS2/JAWS/Pipeline_Tasks.cpp
+++ /dev/null
@@ -1,213 +0,0 @@
-// $Id$
-
-#include "JAWS/JAWS.h"
-
-#include "JAWS/IO.h"
-#include "JAWS/Pipeline_Tasks.h"
-#include "JAWS/Pipeline_Handler_T.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/Policy.h"
-
-ACE_RCSID(JAWS, Pipeline_Tasks, "$Id$")
-
-JAWS_Pipeline_Handler::JAWS_Pipeline_Handler (void)
- : policy_ (0)
-{
-}
-
-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);
- JAWS_IO_Handler *ioh = db->io_handler ();
-
- // guarantee the handler remains for the duration of this call
- ioh->acquire ();
-
- int status = this->handle_put (db, tv);
-
- if (status != -1 && status != 2)
- {
- JAWS_Pipeline_Handler *task = ioh->task ();
- JAWS_Pipeline_Handler *next
- = ACE_dynamic_cast (JAWS_Pipeline_Handler *, task->next ());
-
- ioh->task (next);
- }
-
- ioh->release ();
-
- return status;
-}
-
-JAWS_Dispatch_Policy *
-JAWS_Pipeline_Handler::policy (void)
-{
- return this->policy_;
-}
-
-void
-JAWS_Pipeline_Handler::policy (JAWS_Dispatch_Policy *policy)
-{
- this->policy_ = policy;
-}
-
-int
-JAWS_Pipeline_Accept_Task::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
-{
- JAWS_Data_Block *db = ACE_dynamic_cast (JAWS_Data_Block *, mb);
-
- JAWS_Pipeline_Handler *task = db->task ();
- JAWS_Pipeline_Handler *next
- = ACE_dynamic_cast (JAWS_Pipeline_Handler *, task->next ());
-
- JAWS_IO_Handler *ioh = this->new_handler (db);
- if (ioh == 0)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Pipeline_Accept_Task::put"));
- return -1;
- }
-
- ioh->acquire ();
-
- ioh->task (next);
- db->io_handler (ioh);
-
- int result = this->handle_put (ioh->message_block (), tv);
-
- ioh->release ();
-
- return result;
-}
-
-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 = this->policy ();
-
- if (policy == 0) policy = data->policy ();
-
- // 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:
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) ACCEPT_OK\n"));
- result = 0;
- JAWS_TRACE ("JAWS_Pipeline_Accept_Task::handle_put ACCEPT_OK");
- // Move on to next stage in pipeline
- break;
- }
- case JAWS_IO_Handler::ACCEPT_ERROR:
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) ACCEPT_ERROR\n"));
- result = -1;
- JAWS_TRACE ("JAWS_Pipeline_Accept_Task::handle_put ACCEPT_ERROR");
- // Should recycle the thread
- break;
- }
- default:
- {
- result = 1;
- JAWS_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
-
- ACE_DEBUG ((LM_DEBUG, "(%t) Returning %d\n", result));
- return result;
-}
-
-JAWS_IO_Handler *
-JAWS_Pipeline_Accept_Task::new_handler (JAWS_Data_Block *data)
-{
- // Create a new handler and message block
- JAWS_Data_Block *ndb = new JAWS_Data_Block (*data);
- if (ndb == 0)
- {
- JAWS_TRACE ("JAWS_Pipeline_Accept_Task::new_handler, failed DB");
- return 0;
- }
-
- JAWS_Dispatch_Policy *policy =
- (this->policy () == 0) ? data->policy () : this->policy ();
- JAWS_IO_Handler_Factory *ioh_factory = policy->ioh_factory ();
-
- JAWS_IO_Handler *nioh = ioh_factory->create_io_handler ();
- if (nioh == 0)
- {
- delete ndb;
- return 0;
- }
-
- ndb->io_handler (nioh);
- nioh->task (data->task ());
- nioh->message_block (ndb);
-
- return nioh;
-}
-
-int
-JAWS_Pipeline_Done_Task::put (ACE_Message_Block *mb, ACE_Time_Value *)
-{
- JAWS_TRACE ("JAWS_Pipeline_Done_Task::put");
-
- JAWS_Data_Block *data = ACE_dynamic_cast (JAWS_Data_Block *, mb);
-
- JAWS_IO_Handler *handler = data->io_handler ();
- JAWS_Dispatch_Policy *policy = this->policy ();
- if (policy == 0) policy = data->policy ();
-
- // JAWS_IO *io = policy->io ();
-
- data->task (0);
- data->io_handler (0);
-
- if (handler)
- handler->done ();
-
- // hack, let Concurrency know we are done.
- return -2;
-}
-
-int
-JAWS_Pipeline_Done_Task::handle_put (JAWS_Data_Block *, ACE_Time_Value *)
-{
- return 0;
-}
-
-#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>;
-template class ACE_Singleton<JAWS_Pipeline_Done_Task, ACE_SYNCH_NULL_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>
-#pragma instantiate ACE_Singleton<JAWS_Pipeline_Done_Task, ACE_SYNCH_NULL_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS2/JAWS/Pipeline_Tasks.h b/apps/JAWS2/JAWS/Pipeline_Tasks.h
deleted file mode 100644
index 3bbb5080593..00000000000
--- a/apps/JAWS2/JAWS/Pipeline_Tasks.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_PIPELINE_TASKS_H
-#define JAWS_PIPELINE_TASKS_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Export.h"
-#include "JAWS/Pipeline.h"
-#include "JAWS/Pipeline_Handler_T.h"
-#include "JAWS/Data_Block.h"
-
-class JAWS_Export JAWS_Pipeline_Handler
- : public JAWS_Pipeline_Abstract_Handler<JAWS_Data_Block>
-{
-public:
- JAWS_Pipeline_Handler (void);
- 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;
-
- virtual JAWS_Dispatch_Policy * policy (void);
- virtual void policy (JAWS_Dispatch_Policy *);
-
-private:
- JAWS_Dispatch_Policy *policy_;
-};
-
-class JAWS_Pipeline_Accept_Task : public JAWS_Pipeline_Handler
-{
-public:
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
-
- virtual JAWS_IO_Handler * new_handler (JAWS_Data_Block *data);
-};
-
-class JAWS_Pipeline_Done_Task : public JAWS_Pipeline_Handler
-{
-public:
- virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
- 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;
-
-typedef ACE_Singleton<JAWS_Pipeline_Done_Task, ACE_SYNCH_NULL_MUTEX>
- JAWS_Pipeline_Done_Task_Singleton;
-
-#endif /* !defined (JAWS_PIPELINE_TASKS_H) */
diff --git a/apps/JAWS2/JAWS/Policy.cpp b/apps/JAWS2/JAWS/Policy.cpp
deleted file mode 100644
index 9eac271416a..00000000000
--- a/apps/JAWS2/JAWS/Policy.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// $Id$
-
-#include "JAWS/Policy.h"
-#include "JAWS/Concurrency.h"
-#include "JAWS/IO_Handler.h"
-#include "JAWS/IO_Acceptor.h"
-
-ACE_RCSID(JAWS, Policy, "$Id$")
-
-JAWS_Dispatch_Policy::JAWS_Dispatch_Policy (void)
-{
-}
-
-JAWS_Dispatch_Policy::~JAWS_Dispatch_Policy (void)
-{
-}
-
-JAWS_Default_Dispatch_Policy::JAWS_Default_Dispatch_Policy (void)
- : ratio_ (1),
- 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)
-{
-}
-
-int
-JAWS_Default_Dispatch_Policy::ratio (void)
-{
- return this->ratio_;
-}
-
-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::ratio (int r)
-{
- this->ratio_ = r;
-}
-
-void
-JAWS_Default_Dispatch_Policy::io (JAWS_IO *io)
-{
- this->io_ = io;
-}
-
-void
-JAWS_Default_Dispatch_Policy::ioh_factory (JAWS_IO_Handler_Factory *iohf)
-{
- this->ioh_factory_ = iohf;
-}
-
-void
-JAWS_Default_Dispatch_Policy::acceptor (JAWS_IO_Acceptor *acceptor)
-{
- this->acceptor_ = acceptor;
-}
-
-void
-JAWS_Default_Dispatch_Policy::concurrency (JAWS_Concurrency_Base *concp)
-{
- this->concurrency_ = concp;
-}
diff --git a/apps/JAWS2/JAWS/Policy.h b/apps/JAWS2/JAWS/Policy.h
deleted file mode 100644
index 9255594c056..00000000000
--- a/apps/JAWS2/JAWS/Policy.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_POLICY_H
-#define JAWS_POLICY_H
-
-#include "JAWS/Export.h"
-#include "JAWS/Concurrency.h"
-
-class JAWS_IO;
-class JAWS_IO_Handler;
-class JAWS_IO_Handler_Factory;
-
-class JAWS_Export 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 int ratio (void) = 0;
- 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 ratio (int r) = 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_Export JAWS_Default_Dispatch_Policy : public JAWS_Dispatch_Policy
-{
-public:
- JAWS_Default_Dispatch_Policy (void);
- virtual ~JAWS_Default_Dispatch_Policy (void);
-
- virtual int ratio (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 ratio (int r);
- 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:
- int ratio_;
- 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/JAWS2/JAWS/Reaper.cpp b/apps/JAWS2/JAWS/Reaper.cpp
deleted file mode 100644
index 6d1d5845cba..00000000000
--- a/apps/JAWS2/JAWS/Reaper.cpp
+++ /dev/null
@@ -1,45 +0,0 @@
-// $Id$
-
-#include "JAWS/Reaper.h"
-#include "JAWS/Concurrency.h"
-#include "JAWS/IO_Acceptor.h"
-
-ACE_RCSID(JAWS, Reaper, "$Id$")
-
-JAWS_Reaper::JAWS_Reaper (JAWS_Concurrency_Base *concurrency)
- : concurrency_ (concurrency),
- waiting_ (0)
-{
-}
-
-JAWS_Reaper::~JAWS_Reaper (void)
-{
-}
-
-int
-JAWS_Reaper::open (void *)
-{
- if (this->waiting_ == 0)
- {
- ACE_Guard<ACE_SYNCH_MUTEX> g (this->lock_);
- if (this->waiting_ == 0)
- {
- if (this->activate () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "JAWS_Reaper::activate"),
- -1);
- this->waiting_ = 1;
- }
- }
- return 0;
-}
-
-int
-JAWS_Reaper::svc (void)
-{
- ACE_TRACE ("JAWS_Reaper::svc");
- int result = this->concurrency_->thr_mgr ()->wait ();
- JAWS_IO_Synch_Acceptor_Singleton::instance ()->close ();
- JAWS_IO_Asynch_Acceptor_Singleton::instance ()->close ();
- ACE_DEBUG ((LM_DEBUG, "(%t) Leaving REAPER\n"));
- return result;
-}
diff --git a/apps/JAWS2/JAWS/Reaper.h b/apps/JAWS2/JAWS/Reaper.h
deleted file mode 100644
index e23193441c7..00000000000
--- a/apps/JAWS2/JAWS/Reaper.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_REAPER_H
-#define JAWS_REAPER_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "ace/Task.h"
-
-#include "JAWS/Export.h"
-
-// A reaper class to reap the threads.
-
-class JAWS_Concurrency_Base;
-
-class JAWS_Export JAWS_Reaper : public ACE_Task<ACE_MT_SYNCH>
-{
- // = TITLE
- // Reap threads for the concurrency strategies
- //
- // = DESCRIPTION
- // The JAWS_Reaper uses the default Thread Manager (while each
- // concurrency strategy uses their own). The idea is that the
- // reaper will spawn a thread to reap the threads of a concurrency
- // strategy. This allows the main thread to reap the threads of
- // the reaper before exiting.
-
-public:
- JAWS_Reaper (JAWS_Concurrency_Base *concurrency);
- virtual ~JAWS_Reaper (void);
-
- virtual int open (void * = 0);
- virtual int svc (void);
-
-private:
- JAWS_Concurrency_Base *concurrency_;
- int waiting_;
- ACE_SYNCH_MUTEX lock_;
-
-};
-
-#endif /* JAWS_REAPER_H */
diff --git a/apps/JAWS2/JAWS/Server.cpp b/apps/JAWS2/JAWS/Server.cpp
deleted file mode 100644
index 629bd00d1f4..00000000000
--- a/apps/JAWS2/JAWS/Server.cpp
+++ /dev/null
@@ -1,190 +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"
-
-ACE_RCSID(JAWS, Server, "$Id$")
-
-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[])
- : ratio_ (1),
- 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);
-
- this->policy_.ratio (this->ratio_);
-
- if (this->concurrency_ == 1)
- {
- JAWS_Thread_Per_Singleton::instance ()->make (this->flags_,
- this->maxthreads_);
- this->policy_.concurrency (JAWS_Thread_Per_Singleton::instance ());
- }
- else
- {
- JAWS_Thread_Pool_Singleton::instance ()->make (this->flags_,
- this->nthreads_,
- this->maxthreads_);
- this->policy_.concurrency (JAWS_Thread_Pool_Singleton::instance ());
- }
-
-#if !(defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS))
- this->dispatch_ = 0;
-#endif /* !defined (ACE_WIN32) */
-
- if (this->dispatch_ == 1)
- {
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
- 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 ());
- }
-
- ACE_INET_Addr inet_addr (this->port_);
- this->policy_.acceptor ()->open (inet_addr);
-}
-
-int
-JAWS_Server::open (JAWS_Pipeline_Handler *protocol,
- JAWS_Dispatch_Policy *policy)
-{
- if (policy == 0)
- policy = &this->policy_;
-
- JAWS_Data_Block *db = new JAWS_Data_Block;
- if (db == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%t) JAWS_Server::open, could not create Data_Block\n"));
- return -1;
- }
-
- // initialize data block
-
- db->task (JAWS_Pipeline_Accept_Task_Singleton::instance ());
- db->policy (policy);
- db->io_handler (0);
-
- db->task ()->next (protocol);
-
- // prime the acceptor if appropriate
- if (this->dispatch_ == 1)
- {
-#if defined (ACE_WIN32) || defined (ACE_HAS_AIO_CALLS)
-
- int n = this->nthreads_;
- if (this->concurrency_ == 1)
- n = 1;
-
- for (int i = 0; i < n * this->ratio_ - n; i++)
- db->task ()->put (db);
-
-#endif /* defined (ACE_WIN32) */
- }
-
- // The message block should contain an INET_Addr, and call the
- // io->accept (INET_Addr) method!
-
- policy->concurrency ()->put (db);
-
- ACE_Thread_Manager::instance ()->wait ();
-
- db->release ();
-
- return 0;
-}
-
-void
-JAWS_Server::parse_args (int argc, char *argv[])
-{
- int c;
- int t = 0;
-
- ACE_Get_Opt getopt (argc, argv, "t" "p:c:d:n:m:f:r:");
- 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;
- case 'r':
- this->ratio_ = ACE_OS::atoi (getopt.optarg);
- break;
- }
-
- if (t)
- ACE_Trace::start_tracing ();
- else
- ACE_Trace::stop_tracing ();
-
- 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/JAWS2/JAWS/Server.h b/apps/JAWS2/JAWS/Server.h
deleted file mode 100644
index 0cac8f17ae0..00000000000
--- a/apps/JAWS2/JAWS/Server.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_SERVER_H
-#define JAWS_SERVER_H
-
-#include "JAWS/Export.h"
-#include "JAWS/Data_Block.h"
-#include "JAWS/Policy.h"
-
-class JAWS_IO_Handler_Factory;
-
-class JAWS_Export 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 ratio_; // ratio of asynch ops to threads
- 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/JAWS2/JAWS/Waiter.cpp b/apps/JAWS2/JAWS/Waiter.cpp
deleted file mode 100644
index 8b47274ac8f..00000000000
--- a/apps/JAWS2/JAWS/Waiter.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-#include "ace/Proactor.h"
-
-#include "JAWS/Waiter.h"
-#include "JAWS/IO_Handler.h"
-
-ACE_RCSID(JAWS, Waiter, "$Id$")
-
-JAWS_Waiter::JAWS_Waiter (void)
- : iter_ (*this)
-{
-}
-
-JAWS_Waiter::~JAWS_Waiter (void)
-{
-}
-
-JAWS_Waiter_Base_Iterator &
-JAWS_Waiter::iter (void)
-{
- return this->iter_;
-}
-
-int
-JAWS_Waiter::index (void)
-{
-#if 0
- // A future version of ACE will support this.
- ACE_Thread_ID tid = ACE_OS::thr_self ();
-#else
- // Do it this way for now
- ACE_thread_t thr_name;
- thr_name = ACE_OS::thr_self ();
-
- JAWS_Thread_ID tid (thr_name);
-#endif /* 0 */
-
- return JAWS_Waiter_Base::index (tid);
-}
-
-JAWS_IO_Handler *
-JAWS_Waiter::wait_for_completion (int i)
-{
- JAWS_IO_Handler *ioh;
- JAWS_IO_Handler **iohptr;
-
- iohptr = (i >= 0) ? this->find (i) : this->find (this->index ());
-
- while (*iohptr == 0)
- if (ACE_Proactor::instance ()->handle_events () == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "JAWS_Waiter::wait_for_completion"));
- return 0;
- }
-
- ioh = *iohptr;
- *iohptr = 0;
-
- ioh->lock ();
- ioh->release ();
- return ioh;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class JAWS_Assoc_Array<JAWS_Thread_ID, JAWS_IO_Handler *>;
-template class JAWS_Assoc_Array_Iterator<JAWS_Thread_ID, JAWS_IO_Handler *>;
-template class ACE_Singleton<JAWS_Waiter, ACE_SYNCH_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate JAWS_Assoc_Array<JAWS_Thread_ID, JAWS_IO_Handler *>
-#pragma instantiate JAWS_Assoc_Array_Iterator<JAWS_Thread_ID, JAWS_IO_Handler *>
-#pragme instantiate ACE_Singleton<JAWS_Waiter, ACE_SYNCH_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/JAWS2/JAWS/Waiter.h b/apps/JAWS2/JAWS/Waiter.h
deleted file mode 100644
index 57bd35086b0..00000000000
--- a/apps/JAWS2/JAWS/Waiter.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* -*- c++ -*- */
-// $Id$
-
-#ifndef JAWS_WAITER_H
-#define JAWS_WAITER_H
-
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "JAWS/Assoc_Array.h"
-#include "JAWS/Export.h"
-
-class JAWS_IO_Handler;
-
-typedef ACE_thread_t JAWS_Thread_ID;
-
-typedef JAWS_Assoc_Array<JAWS_Thread_ID, JAWS_IO_Handler *> JAWS_Waiter_Base;
-typedef JAWS_Assoc_Array_Iterator<JAWS_Thread_ID, JAWS_IO_Handler *>
- JAWS_Waiter_Base_Iterator;
-
-class JAWS_Export JAWS_Waiter : public JAWS_Waiter_Base
-{
-public:
- JAWS_Waiter (void);
- ~JAWS_Waiter (void);
-
- JAWS_Waiter_Base_Iterator &iter (void);
- // Returns an iterator to the headers container.
-
- int index (void);
- // Returns the index into the table associated with calling thread.
-
- JAWS_IO_Handler * wait_for_completion (int i = -1);
- // The entry point for this class, handles outstanding asynchronous
- // events. Can optionally accept a parameter that points to which
- // table entry to return.
-
-private:
- JAWS_Waiter_Base_Iterator iter_;
-
-};
-
-typedef ACE_Singleton<JAWS_Waiter, ACE_SYNCH_MUTEX> JAWS_Waiter_Singleton;
-
-#endif /* JAWS_WAITER_H */
diff --git a/apps/JAWS2/JAWS/jaws.dsp b/apps/JAWS2/JAWS/jaws.dsp
deleted file mode 100644
index 89769e0d82d..00000000000
--- a/apps/JAWS2/JAWS/jaws.dsp
+++ /dev/null
@@ -1,310 +0,0 @@
-# Microsoft Developer Studio Project File - Name="JAWS Library" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=JAWS Library - 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 "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 Library - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "JAWS Library - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "JAWS Library - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "JAWS Library - 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 /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../../" /I "../" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D JAWS_HAS_DLL=1 /D "JAWS_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o /win32 "NUL"
-# 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:windows /dll /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:windows /dll /machine:I386 /out:"..\..\..\bin\JAWS.dll" /libpath:"../../../ace"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "JAWS Library - 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 /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 "../" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D JAWS_HAS_DLL=1 /D "JAWS_BUILD_DLL" /FD /c
-# SUBTRACT CPP /X /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o /win32 "NUL"
-# 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 /out:"..\..\..\bin\JAWSd.dll" /pdbtype:sept /libpath:"../../../ace"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "JAWS Library - Win32 Release"
-# Name "JAWS Library - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\Cache_Manager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Object.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Concurrency.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Data_Block.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Filecache.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Headers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Parse_Headers.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline_Tasks.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Policy.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Reaper.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Waiter.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h"
-# Begin Source File
-
-SOURCE=.\Assoc_Array.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Hash_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Heap_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_List_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Manager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Manager_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Object.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Concurrency.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Data_Block.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Export.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\FILE.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Filecache.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Bucket_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\IO_State.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\JAWS.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline_Handler_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline_Tasks.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Policy.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Server.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Waiter.h
-# End Source File
-# End Group
-# Begin Group "Template Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\Assoc_Array.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Hash_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Heap_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_List_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Cache_Manager_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Bucket_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# Begin Source File
-
-SOURCE=.\Pipeline_Handler_T.cpp
-# PROP Exclude_From_Build 1
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/apps/JAWS2/JAWS/jaws.dsw b/apps/JAWS2/JAWS/jaws.dsw
deleted file mode 100644
index 6a2a6b671bc..00000000000
--- a/apps/JAWS2/JAWS/jaws.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.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/JAWS2/Makefile b/apps/JAWS2/Makefile
deleted file mode 100644
index fd981ad1908..00000000000
--- a/apps/JAWS2/Makefile
+++ /dev/null
@@ -1,942 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the Event Server test
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-DIRS = HTTPU \
- JAWS
-
-BIN = main
-
-FILES = HTTP_10 \
- HTTP_10_Request \
- HTTP_10_Read \
- HTTP_10_Parse \
- HTTP_10_Write
-
-SRC = $(addsuffix .cpp,$(FILES))
-OBJ = $(addsuffix .o,$(FILES))
-
-LDFLAGS += -L./JAWS
-LDLIBS = -lHTTPU -lJAWS2
-CFLAGS += -DJAWS_HAS_THREAD_SAFE_ACCEPT
-CPPFLAGS += -I.
-
-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.nested.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 $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i JAWS/Pipeline_Tasks.h \
- $(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/Export.h \
- 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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(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/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp JAWS/Pipeline_Handler_T.h \
- JAWS/Pipeline_Handler_T.cpp JAWS/Data_Block.h JAWS/JAWS.h
-
-.obj/HTTP_10_Request.o .obj/HTTP_10_Request.so .shobj/HTTP_10_Request.o .shobj/HTTP_10_Request.so: HTTP_10_Request.cpp JAWS/JAWS.h HTTP_10_Request.h \
- HTTPU/http_request.h $(ACE_ROOT)/ace/Message_Block.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Malloc.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp JAWS/Parse_Headers.h \
- JAWS/Export.h $(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/Headers.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp HTTPU/http_export.h \
- HTTPU/http_base.h HTTPU/http_status.h HTTPU/http_status.i \
- HTTPU/http_headers.h $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i HTTPU/http_headers.i \
- HTTPU/http_base.i HTTPU/parse_http_request.h HTTPU/parse_http_request.i \
- HTTPU/parse_url.h HTTPU/http_request.i
-
-.obj/HTTP_10_Read.o .obj/HTTP_10_Read.so .shobj/HTTP_10_Read.o .shobj/HTTP_10_Read.so: HTTP_10_Read.cpp HTTP_10.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i JAWS/Pipeline_Tasks.h \
- $(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/Export.h \
- 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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(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/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp JAWS/Pipeline_Handler_T.h \
- JAWS/Pipeline_Handler_T.cpp JAWS/Data_Block.h JAWS/JAWS.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/Concurrency.h
-
-.obj/HTTP_10_Parse.o .obj/HTTP_10_Parse.so .shobj/HTTP_10_Parse.o .shobj/HTTP_10_Parse.so: HTTP_10_Parse.cpp \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl HTTP_10.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.i JAWS/Pipeline_Tasks.h \
- $(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/Export.h \
- 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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(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/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Stream.i \
- $(ACE_ROOT)/ace/Stream.cpp JAWS/Pipeline_Handler_T.h \
- JAWS/Pipeline_Handler_T.cpp JAWS/Data_Block.h JAWS/JAWS.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/Concurrency.h HTTP_10_Request.h HTTPU/http_request.h \
- JAWS/Parse_Headers.h JAWS/Headers.h HTTPU/http_export.h \
- HTTPU/http_base.h HTTPU/http_status.h HTTPU/http_status.i \
- HTTPU/http_headers.h HTTPU/http_headers.i HTTPU/http_base.i \
- HTTPU/parse_http_request.h HTTPU/parse_http_request.i HTTPU/parse_url.h \
- HTTPU/http_request.i
-
-.obj/HTTP_10_Write.o .obj/HTTP_10_Write.so .shobj/HTTP_10_Write.o .shobj/HTTP_10_Write.so: HTTP_10_Write.cpp $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i JAWS/JAWS.h JAWS/IO.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Export.h \
- JAWS/IO_Handler.h JAWS/Policy.h JAWS/Concurrency.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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Synch_Options.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp HTTP_10.h \
- $(ACE_ROOT)/ace/RB_Tree.h \
- $(ACE_ROOT)/ace/RB_Tree.i \
- $(ACE_ROOT)/ace/RB_Tree.cpp JAWS/Pipeline_Tasks.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/Pipeline_Handler_T.h \
- JAWS/Pipeline_Handler_T.cpp JAWS/Data_Block.h HTTP_10_Request.h \
- HTTPU/http_request.h JAWS/Parse_Headers.h JAWS/Headers.h \
- HTTPU/http_export.h HTTPU/http_base.h HTTPU/http_status.h \
- HTTPU/http_status.i HTTPU/http_headers.h HTTPU/http_headers.i \
- HTTPU/http_base.i HTTPU/parse_http_request.h HTTPU/parse_http_request.i \
- HTTPU/parse_url.h HTTPU/http_request.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/JAWS2/Makefile.bor b/apps/JAWS2/Makefile.bor
deleted file mode 100644
index 77f0476e68d..00000000000
--- a/apps/JAWS2/Makefile.bor
+++ /dev/null
@@ -1,18 +0,0 @@
-
-NAME = main
-OBJFILES = \
- $(OBJDIR)\main.obj \
- $(OBJDIR)\HTTP_10.obj \
- $(OBJDIR)\HTTP_10_Request.obj \
- $(OBJDIR)\HTTP_10_Read.obj \
- $(OBJDIR)\HTTP_10_Parse.obj \
- $(OBJDIR)\HTTP_10_Write.obj
-
-CFLAGS=-I. -DJAWS_HAS_THREAD_SAFE_ACCEPT
-LIBFILES= \
- .\HTTPU$(LIB_DECORATOR).lib \
- .\JAWS$(LIB_DECORATOR).lib \
- $(ACE_LIB)
-
-!include <$(ACE_ROOT)\apps\build.bor>
-
diff --git a/apps/JAWS2/README b/apps/JAWS2/README
deleted file mode 100644
index dae52514354..00000000000
--- a/apps/JAWS2/README
+++ /dev/null
@@ -1,32 +0,0 @@
-This directory contains the source code to the JAWS framework as
-described in Object-Oriented Application Frameworks, Volume 3.
-
-The subdirectories are as follows
-
- ./JAWS the core JAWS framework source
- ./HTTPU utility classes for HTTP handling
-
-The top level directory contains source to a simple HTTP/0.9 web
-server written using the JAWS framework.
-
-The Makefile uses the ACE Makefile system, so a correctly configured
-ACE should require no changes to get JAWS to compile.
-
-Users of Windows NT can start with the supplied project files, but they
-may require some fiddling with to get it all to compile.
-
-Server command line options:
-
- -t : enable/disable tracing (disabled by default)
- -p PORT : set listen port to PORT (5432 default)
- -c CONCURRENCY : set concurrency strategy, one of PER_REQUEST,
- or POOL (the default).
- -d DISPATCH : set dispatch strategy, one of ASYNCH, or SYNCH (default)
- -n NTHREADS : set number of threads for POOL (5 default)
- -m MAXTHREADS : set maximum number of threads for PER_REQUEST,
- (20 default)
- -f THREADFLAGS : set thread creation flags, recognizes THR_BOUND,
- THR_DAEMON, and THR_DETACHED
- -r RATIO : set asynch tasks per thread ratio (1 default)
-
--- James
diff --git a/apps/JAWS2/main.cpp b/apps/JAWS2/main.cpp
deleted file mode 100644
index d1bd6f46dcb..00000000000
--- a/apps/JAWS2/main.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// $Id$
-
-#include "JAWS/Server.h"
-#include "HTTP_10.h"
-
-ACE_RCSID(PROTOTYPE, main, "$Id$")
-
-#ifdef ACE_HAS_SIG_C_FUNC
-extern "C"
-{
-#endif /* ACE_HAS_SIG_C_FUNC */
-
-static void
-handler (int)
-{
- ACE_OS::exit (0);
- // call exit() so that static destructors get called
-}
-
-#ifdef ACE_HAS_SIG_C_FUNC
-}
-#endif /* ACE_HAS_SIG_C_FUNC */
-
-static JAWS_HTTP_10_Read_Task HTTP_Read;
-static JAWS_HTTP_10_Parse_Task HTTP_Parse;
-static JAWS_HTTP_10_Write_Task HTTP_Write;
-
-int
-main (int argc, char *argv[])
-{
- 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);
-
- JAWS_Server server (argc, argv);
-
- HTTP_Read.next (&HTTP_Parse);
- HTTP_Parse.next (&HTTP_Write);
- // HTTP_Write.next (JAWS_Pipeline_Done_Task_Singleton::instance ());
-
- if (server.open (&HTTP_Read) == -1)
- ACE_DEBUG ((LM_DEBUG, "JAWS: Error openning server\n"));
-
- return 0;
-}
diff --git a/apps/JAWS2/server.dsp b/apps/JAWS2/server.dsp
deleted file mode 100644
index 9c3495e3d55..00000000000
--- a/apps/JAWS2/server.dsp
+++ /dev/null
@@ -1,112 +0,0 @@
-# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=server - 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 "server.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 "server.mak" CFG="server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "server - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "server - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "server - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D HTTPU_HAS_DLL=1 /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 JAWS.lib HTTPU.lib /nologo /subsystem:console /machine:I386 /libpath:"JAWS" /libpath:"HTTPU" /libpath:"../../ace"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "server - 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../../" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D HTTPU_HAS_DLL=1 /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 aced.lib JAWSd.lib HTTPUd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"JAWS" /libpath:"HTTPU" /libpath:"../../ace"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF
-
-# Begin Target
-
-# Name "server - Win32 Release"
-# Name "server - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\HTTP_10.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_10_Parse.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_10_Read.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_10_Request.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTP_10_Write.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\main.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/apps/JAWS2/server.dsw b/apps/JAWS2/server.dsw
deleted file mode 100644
index f121fae15c3..00000000000
--- a/apps/JAWS2/server.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "server"=.\server.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/Makefile b/apps/Makefile
deleted file mode 100644
index feb2eb7f277..00000000000
--- a/apps/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the apps directory
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = Gateway \
- gperf \
- drwho
-
-# The following directories aren't compiled by default since haven't
-# finished integrating it into ACE...
-#
-# Orbix-Examples
-
-#----------------------------------------------------------------------------
-# 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/Makefile.am b/apps/Makefile.am
deleted file mode 100644
index 7aba8c167e0..00000000000
--- a/apps/Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for the apps directory
-##
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-## The following directories aren't compiled by default since haven't
-## finished integrating it into ACE...
-##
-## Orbix-Examples
-
-if COMPILE_GPERF
-GPERF_DIR = gperf
-else
-GPERF_DIR =
-endif
-
-SUBDIRS = $(GPERF_DIR)
-## SUBDIRS = Gateway \
-## JAWS \
-## Orbix-Examples \
-## gperf
-
-## EXTRA_DIST = README
diff --git a/apps/Makefile.bor b/apps/Makefile.bor
deleted file mode 100644
index 87f54eca0a0..00000000000
--- a/apps/Makefile.bor
+++ /dev/null
@@ -1,3 +0,0 @@
-DIRS = gperf Gateway JAWS
-
-!include <$(ACE_ROOT)\include\makeinclude\recurse.bor>
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 c9ba927b11d..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-// $Id$
-
-#include "Input_Handler.h"
-#include "Notification_Receiver_Handler.h"
-
-ACE_RCSID(Consumer, Input_Handler, "$Id$")
-
-#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!
- ::operator delete (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];
-
- // Read up to BUFSIZ worth of data from ACE_HANDLE h.
- ssize_t 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 e8a193e8385..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Input_Handler.h
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _INPUT_HANDLER_H
-#define _INPUT_HANDLER_
-
-#include "ace/Service_Config.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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
- // This subclass <ACE_Service_Object> receives "unsubscribes"
- // from the <Notifier> when input is received from the keyboard.
-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 bf3a61b3aa5..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// $Id$
-
-#include "Notification_Receiver_Handler.h"
-
-ACE_RCSID(Consumer, Notification_Receiver_Handler, "$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
-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);
-
- ACE_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.
- ACE_NEW (this->receiver_,
- 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 e5595339158..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h
+++ /dev/null
@@ -1,66 +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)
-//
-// ============================================================================
-
-#ifndef _NOTIFICATION_RECEIVER_HANDLER_H
-#define _NOTIFICATION_RECEIVER_HANDLER_H
-
-#include "ace/CORBA_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 ef0ffe1be82..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-// $Id$
-
-#include "Notification_Receiver_Handler.h"
-#include "Input_Handler.h"
-
-ACE_RCSID(Consumer, consumer, "$Id$")
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Consumer : public ACE_Event_Handler
-{
- // = TITLE
- // Consumer driver for the Orbix Notification example.
-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 *)
-{
- // 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...
- ACE_NEW (this->nrh_,
- Notification_Receiver_Handler (argc, argv));
- ACE_NEW (this->ih_,
- Input_Handler (this->nrh_));
- }
- 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 dc2c89642d7..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-// $Id$
-
-#include "Event_Comm.hh"
-#include "Notifier_Handler.h"
-#include "Input_Handler.h"
-
-ACE_RCSID(Supplier, Input_Handler, "$Id$")
-
-#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!
- ::operator 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 813a8b7af36..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Input_Handler.h
-//
-// = DESCRIPTION
-// Handle input from the keyboard.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _INPUT_HANDLER_H
-#define _INPUT_HANDLER_H
-
-#include "ace/Service_Config.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 = ACE_STDIN);
- // 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 37cd5c7544e..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-#include "Notifier_Handler.h"
-
-ACE_RCSID(Supplier, Notifier_Handler, "$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!
- ::operator delete ((void *) 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.
- ACE_NEW (this->notifier_,
- 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 3c9df6b6aaf..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Notifier_Handler.h
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef _NOTIFIER_HANDLER_H
-#define _NOTIFIER_HANDLER_H
-
-#include "ace/CORBA_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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.
-{
-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 <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 ef1e2c5d914..00000000000
--- a/apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-// $Id$
-
-#include "ace/Service_Config.h"
-
-#include "Notifier_Handler.h"
-#include "Input_Handler.h"
-
-ACE_RCSID(Supplier, supplier, "$Id$")
-
-#if defined (ACE_HAS_ORBIX) && (ACE_HAS_ORBIX != 0)
-
-class Supplier : public ACE_Event_Handler
-{
- // = TITLE
- // Supplier driver for the Orbix Publish/Subscribe example.
- //
- // = DESCRIPTION
- // The executable file generated from this code should be
- // registered (under the name 'logger') using the 'putit' command.
-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_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!
- ACE_NEW (this->nh_,
- Notifier_Handler (argv[0],
- "notifier",
- putit));
- ACE_NEW (this->ih_,
- Input_Handler (this->nh_));
- }
- 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 f13bdc7062a..00000000000
--- a/apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh
+++ /dev/null
@@ -1,889 +0,0 @@
-
-#ifndef Event_Comm_hh
-#define Event_Comm_hh
-
-/* $Id$ */
-
-#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 3775d071683..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)
-//
-// ============================================================================
-
-#ifndef _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 dbcd6671d8f..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)
-//
-// ============================================================================
-
-#ifndef _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 61249d68386..00000000000
--- a/apps/Orbix-Examples/Event_Comm/include/Notifier_i.h
+++ /dev/null
@@ -1,87 +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)
-//
-// ============================================================================
-
-#ifndef _Notifier_i_H
-#define _Notifier_i_H
-
-#include "ace/Map_Manager.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 8971738d864..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
-/* $Id$ */
-
-#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 de8fa2cada2..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl
+++ /dev/null
@@ -1,88 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// EventComm
-//
-// = FILENAME
-// Event_Comm.idl
-//
-// = DESCRIPTION
-// The CORBA IDL module for distributed event notification.
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-//
-// ============================================================================
-
-#if !defined (_EVENT_COMM_IDL)
-#define _EVENT_COMM_IDL
-
-module Event_Comm
-{
- // = TITLE
- // The CORBA IDL module for distributed event notification.
-
- 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.
- {
- void receive_notification (in Notification notification);
- // Inform the <Notification_Receiver> that <event> has occurred.
-
- 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.
-
- void send_disconnect (in string reason);
- // Disconnect all the receivers, giving them the <reason>.
-
- void send_notification (in Notification notification);
- // Send the <Notification> to all the consumers who
- // have subscribed and who match the filtering criteria.
-
- 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.
-
- 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 973c508fb19..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp
+++ /dev/null
@@ -1,351 +0,0 @@
-// $Id$
-
-#include "Event_Comm.hh"
-
-ACE_RCSID(libsrc, Event_CommC, "$Id$")
-
-#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 724ecc28c63..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-// $Id$
-
-#include "Event_Comm.hh"
-
-ACE_RCSID(libsrc, Event_CommS, "$Id$")
-
-#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 8142ac91632..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h
+++ /dev/null
@@ -1,36 +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)
-//
-// ============================================================================
-
-#ifndef _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/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 c35b48eb457..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = 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)
-//
-// ============================================================================
-
-#if !defined (_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 d182cbd1531..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = 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.
-
- void receive_notification (in Notification notification);
- // Inform the <Notification_Receiver> that <event> has occurred.
-
- 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 c8f4f82a126..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// $Id$
-
-#include "ace/Service_Config.h"
-#include "Notification_Receiver_i.h"
-
-ACE_RCSID(libsrc, Notification_Receiver_i, "$Id$")
-
-#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 4466db11c21..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h
+++ /dev/null
@@ -1,49 +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)
-//
-// ============================================================================
-
-#ifndef _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>.
-public:
- // = Initialization and termination methods.
- Notification_Receiver_i (void);
- // Constructor.
-
- ~Notification_Receiver_i (void);
- // Destructor.
-
- 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 a03cf45451f..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = 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)
-//
-// ============================================================================
-
-#if !defined (_Notifier_iDL)
-#define _Notifier_iDL
-
-#include "Notification.idl"
-#include "Notification_Receiver.idl"
-
-interface Notifier
-{
- // = TITLE
- // Defines the interface for a <Notifier> of events.
-
- void send_disconnect (in string reason);
- // Disconnect all the receivers, giving them the <reason>.
-
- void send_notification (in Notification notification);
- // Send the <Notification> to all the consumers who
- // have subscribed and who match the filtering criteria.
-
- 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>.
-
- 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 f7c7206fc77..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp
+++ /dev/null
@@ -1,344 +0,0 @@
-// $Id$
-
-#include "Notification_Receiver_i.h"
-#include "Notifier_i.h"
-
-ACE_RCSID(libsrc, Notifier_i, "$Id$")
-
-#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.
-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;
- ACE_NEW (nr_entry,
- Notification_Receiver_Entry (receiver_ref,
- filtering_criteria));
- // 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 dd1d17ef16c..00000000000
--- a/apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h
+++ /dev/null
@@ -1,89 +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)
-//
-// ============================================================================
-
-#ifndef _Notifier_i_H
-#define _Notifier_i_H
-
-#include "ace/Map_Manager.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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>.
-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 020dd6a38ae..00000000000
--- a/apps/Orbix-Examples/Logger/Logger.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-// $Id$
-
-#include <iostream.h>
-
-#include "Logger.h"
-
-ACE_RCSID(Logger, Logger, "$Id$")
-
-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 ())
-{
- ACE_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 a233204f362..00000000000
--- a/apps/Orbix-Examples/Logger/Logger.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-#ifndef _LOGGER_H
-#define _LOGGER_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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 28708b9e2c4..00000000000
--- a/apps/Orbix-Examples/Logger/client.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-// $Id$
-
-// A client for the distributed logger example. This program reads
-// 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"
-
-ACE_RCSID(Logger, client, "$Id$")
-
-// 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 61652ce953b..00000000000
--- a/apps/Orbix-Examples/Logger/logger.hh
+++ /dev/null
@@ -1,434 +0,0 @@
-#ifndef logger_hh
-#define logger_hh
-/* $Id$ */
-
-#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 ac469b1c760..00000000000
--- a/apps/Orbix-Examples/Logger/loggerS.cpp
+++ /dev/null
@@ -1,141 +0,0 @@
-// $Id$
-
-#include "logger.hh"
-
-ACE_RCSID(Logger, loggerS, "$Id$")
-
-#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 c71e8d88a9f..00000000000
--- a/apps/Orbix-Examples/Logger/logger_i.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-// $Id$
-
-// Implementation of the logger object.
-
-#include <iostream.h>
-#include "ace/OS.h"
-#include "logger_i.h"
-
-ACE_RCSID(Logger, logger_i, "$Id$")
-
-// 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 407af302aba..00000000000
--- a/apps/Orbix-Examples/Logger/logger_i.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-
-#include "ace/Profile_Timer.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#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.
-};
-
-#ifndef 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 2366a40031f..00000000000
--- a/apps/Orbix-Examples/Logger/server.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-// $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"
-
-ACE_RCSID(Logger, server, "$Id$")
-
-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 f575690aded..00000000000
--- a/apps/README
+++ /dev/null
@@ -1,27 +0,0 @@
-The subdirectories in this directory provide a number of complete
-applications that utilize the ACE features.
-
- . drwho - This provides a "Distributed RWHO (drwho)" utility
- that gets around certain rwho limitations, adds
- functionality, and also prints a much prettier listing of
- who's logged in around a network.
-
- . 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.
-
- . gperf -- The GNU perfect hash function generator. This
- has now been integrated into the TAO IDL compiler, where
- it is used for generating the lookup function for operation
- names associated with IDL interfaces.
-
- . 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...
-
diff --git a/apps/build.bor b/apps/build.bor
deleted file mode 100644
index b11a02f2ca6..00000000000
--- a/apps/build.bor
+++ /dev/null
@@ -1,15 +0,0 @@
-
-!ifndef CFLAGS
-CFLAGS= $(ACE_CFLAGS)
-!endif
-
-!ifndef CPPDIR
-CPPDIR=.
-!endif
-
-!ifndef LIBFILES
-LIBFILES= $(ACE_LIB)
-!endif
-
-!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor>
-
diff --git a/apps/drwho/BS_Client.cpp b/apps/drwho/BS_Client.cpp
deleted file mode 100644
index 33b341aa3d5..00000000000
--- a/apps/drwho/BS_Client.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "File_Manager.h"
-#include "BS_Client.h"
-#include "ace/Log_Msg.h"
-
-BS_Client::BS_Client (void)
-{
- this->count_ = FILE_MANAGER::instance ()->open_file (Options::friend_file);
-
- if (this->count_ < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- Options::program_name));
- else
- {
- ACE_NEW (this->protocol_record_,
- Protocol_Record[this->count_]);
- ACE_NEW (this->sorted_record_,
- Protocol_Record *[this->count_]);
-
- for (int i = 0; i < this->count_; i++)
- {
- Protocol_Record *prp = &this->protocol_record_[i];
-
- this->sorted_record_[i] = prp;
-
- FILE_MANAGER::instance ()->get_login_and_real_name
- (prp->key_name1_, prp->key_name2_);
- }
-
- ACE_OS::qsort (this->sorted_record_,
- this->count_,
- sizeof *this->sorted_record_,
- (ACE_COMPARE_FUNC)Binary_Search::name_compare);
- }
-}
-
-// This function is used to merge the KEY_NAME from server HOST_NAME
-// into the sorted list of userids kept on the client's side. Since
-// we *know* we are going to find the name we use the traditional
-// binary search.
-
-Protocol_Record *
-BS_Client::insert (const char *key_name, int)
-{
-#if 0
- Protocol_Record *pr = (Protocol_Record *)
- ACE_OS::bsearch ((const void *) key_name,
- (const void *) this->sorted_record_,
- this->count_,
- sizeof ...,
- int (*compar)(const void *, const void *) ACE_OS::strcmp);
- return pr;
-#else
- int lo = 0;
- int hi = this->count_ - 1;
- Protocol_Record **sorted_buffer = this->sorted_record_;
-
- while (lo <= hi)
- {
- int mid = (lo + hi) / 2;
- Protocol_Record *prp = sorted_buffer[mid];
- int cmp = ACE_OS::strcmp (key_name,
- prp->get_login ());
- if (cmp == 0)
- return prp;
- else if (cmp < 0)
- hi = mid - 1;
- else
- lo = mid + 1;
- }
-
- return 0;
-#endif /* 0 */
-}
-
-Protocol_Record *
-BS_Client::get_each_entry (void)
-{
- for (Protocol_Record *prp = Binary_Search::get_each_entry ();
- prp != 0;
- prp = Binary_Search::get_each_entry ())
- if (prp->get_drwho_list () != 0)
- return prp;
-
- return 0;
-}
diff --git a/apps/drwho/BS_Client.h b/apps/drwho/BS_Client.h
deleted file mode 100644
index 9859768df82..00000000000
--- a/apps/drwho/BS_Client.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// BS_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _BS_CLIENT_H
-#define _BS_CLIENT_H
-
-#include "Binary_Search.h"
-
-class BS_Client : public Binary_Search
-{
- // = TITLE
- // Provides the client's binary search lookup table abstraction.
-public:
- // = Initialization.
- BS_Client (void);
- // Constructor.
-
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
- // This function is used to merge the <key_name> from server
- // <host_name> into the sorted list of userids kept on the client's
- // side. Since we *know* we are going to find the name we use the
- // traditional binary search.
-
- virtual Protocol_Record *get_each_entry (void);
- // An iterator, similar to Binary_Search::get_next_friend, though in
- // this case the friend records are returned in the order they
- // appeared in the friend file, rather than in sorted order. Also,
- // we skip over entries that don't have any hosts associated with
- // them.
-};
-
-#endif /* _BS_CLIENT_H */
diff --git a/apps/drwho/BS_Server.cpp b/apps/drwho/BS_Server.cpp
deleted file mode 100644
index 90f37cbc67b..00000000000
--- a/apps/drwho/BS_Server.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-// $Id$
-
-#include "BS_Server.h"
-
-// This constructor takes a message of sorted login names and loads up
-// the symbol table on the server's side. It assumes that the number
-// of friends is stored in the first MAXUSERIDNAMELEN bytes of the
-// packet. Note that we assume that the client sends the login names
-// in sorted order, so we don't bother sorting them!
-
-BS_Server::BS_Server (const char *packet)
-{
- const char *buf_ptr = packet + MAXUSERIDNAMELEN;
-
- this->count_ = atoi (packet);
- this->buffer_ = buf_ptr;
-
- ACE_NEW (this->protocol_record_,
- Protocol_Record[this->count_]);
- ACE_NEW (this->sorted_record_,
- Protocol_Record *[this->count_]);
-
- for (int i = 0; i < this->count_; i++)
- {
- Protocol_Record *rec_ptr = &this->protocol_record_[i];
-
- this->sorted_record_[i] = rec_ptr;
- rec_ptr->key_name1_ = buf_ptr;
-
- // Skip forward to the start of the next login name.
-
- while (*buf_ptr++ != '\0')
- continue;
- }
-
-}
-
-// Insert the HOST_NAME into the appropriate DRWHO_LIST slot if the
-// KEY_NAME happens to be one of our friends. Binary search is used
-// because the Protocol_Manager keeps a sorted representation of the
-// friend names.
-//
-// Note that this binary search is tuned for unsuccessful searches,
-// since most of the time we the KEY_NAME is *not* a friend (unless
-// you've got *lots* of friends)!
-//
-// Note finally that we keep a cache of the last KEY_NAME that is
-// looked up, as well as the result of the lookup. This speeds things
-// up because the whod files tend to cluster userids together. */
-
-Protocol_Record *
-BS_Server::insert (const char *key_name, int max_len)
-{
- static char last_lookup[MAXHOSTNAMELEN];
- static int mid = 0;
- static int result = 0;
- Protocol_Record **buffer = this->sorted_record_;
-
- // First check the cache...
- if (ACE_OS::strncmp (last_lookup, key_name, max_len) == 0)
- {
- if (result == 0)
- return 0;
- }
- else
- {
- // Store this away in the cache for the next iteration.
- ACE_OS::strncpy (last_lookup, key_name, max_len);
-
- int hi = this->count_ - 1;
- int lo = 0;
- int cmp = 0;
-
- while (lo < hi)
- {
- mid = (hi + lo + 1) / 2;
-
- cmp = ACE_OS::strncmp (key_name,
- buffer[mid]->get_login (),
- max_len);
- if (cmp < 0)
- hi = mid - 1;
- else
- lo = mid;
- }
-
- // This line is very subtle... ;-)
- if (!(cmp == 0
- || ACE_OS::strncmp (key_name, buffer[--mid]->get_login (), max_len) == 0))
- {
- result = 0;
- return 0;
- }
- }
-
- // If we get here we've located a friend.
-
- result = 1;
- return buffer[mid];
-}
-
-// Returns the next friend in the sequence of sorted friends. Skips
-// over the entries that don't have any hosts associated with them
-// (because these entries weren't on the server machine. */
-
-Protocol_Record *
-BS_Server::get_next_entry (void)
-{
- for (Protocol_Record *prp = Binary_Search::get_next_entry ();
- prp != 0;
- prp = Binary_Search::get_next_entry ())
- if (prp->get_drwho_list () != 0)
- return prp;
-
- return 0;
-}
diff --git a/apps/drwho/BS_Server.h b/apps/drwho/BS_Server.h
deleted file mode 100644
index 3c7c1a82afc..00000000000
--- a/apps/drwho/BS_Server.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// BS_Server.h
-//
-// = DESCRIPTION
-// Provides the server's binary search lookup table abstraction.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _BS_SERVER_H
-#define _BS_SERVER_H
-
-#include "Binary_Search.h"
-
-class BS_Server : public Binary_Search
-{
- // = TITLE
- // Provides the server's binary search lookup table abstraction.
-public:
- // = Initialization.
- BS_Server (const char *packet);
-
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
- // This function is used to merge the <key_name> from server
- // <host_name> into the sorted list of userids kept on the client's
- // side.
-
- virtual Protocol_Record *get_next_entry (void);
- // An iterator, similar to Binary_Search::get_next_friend, though in
- // this case the friend records are returned in the order they
- // appeared in the friend file, rather than in sorted order. Also,
- // we skip over entries that don't have any hosts associated with
- // them.
-};
-
-#endif /* _BS_SERVER_H */
diff --git a/apps/drwho/Binary_Search.cpp b/apps/drwho/Binary_Search.cpp
deleted file mode 100644
index 54582052629..00000000000
--- a/apps/drwho/Binary_Search.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Binary_Search.h"
-#include "ace/Log_Msg.h"
-
-// This function is passed to qsort to perform the comparison between
-// login names for two friends.
-
-int
-Binary_Search::name_compare (const void *s1, const void *s2)
-{
- return ACE_OS::strcmp ((*(Protocol_Record **) s1)->key_name1_,
- (*(Protocol_Record **) s2)->key_name1_);
-}
-
-// Returns the next friend in the sequence of sorted friends. Note
-// that this function would be simplified if we expanded the iterator
-// interface to include an "initialize" and "next" function!
-
-Protocol_Record *
-Binary_Search::get_next_entry (void)
-{
- // Reset the iterator if we are starting from the beginning.
-
- if (this->current_ptr_ == 0)
- this->current_ptr_ = this->sorted_record_;
-
- // Now check to see if we've hit the end, in which case we set
- // things up for the next round!
-
- if (this->current_ptr_ < this->sorted_record_ + this->count_)
- return *this->current_ptr_++;
- else
- {
- this->current_ptr_ = 0;
- return 0;
- }
-}
-
-// An iterator, similar to Binary_Search::get_next_friend, though in
-// this case the friend records are returned in the order they
-// appeared in the friend file, rather than in sorted order. Also, we
-// skip over entries that don't have any hosts associated with them.
-
-Protocol_Record *
-Binary_Search::get_each_entry (void)
-{
- // Reset the iterator if we are starting from the beginning.
-
- if (this->current_index_ == -1)
- this->current_index_ = 0;
-
- // Now check to see if we've hit the end, in which case we set
- // things up for the next round!
-
- for (;
- this->current_index_ < this->count_;
- this->current_index_++)
- if (this->protocol_record_[this->current_index_].drwho_list_ != 0)
- return &this->protocol_record_[this->current_index_++];
-
- this->current_index_ = -1;
- return 0;
-}
-
-Binary_Search::~Binary_Search (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Binary_Search\n"));
-}
-
-// Used to initialize the values for the iterators...
-
-Binary_Search::Binary_Search (void)
- : current_ptr_ (0),
- current_index_ (0)
-{
-}
diff --git a/apps/drwho/Binary_Search.h b/apps/drwho/Binary_Search.h
deleted file mode 100644
index ae8dc93cb29..00000000000
--- a/apps/drwho/Binary_Search.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Binary_Search.h
-//
-// = DESCRIPTION
-// Defines a binary search abstraction for friend records.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _BINARY_SEARCH_H
-#define _BINARY_SEARCH_H
-
-#include "Search_Struct.h"
-
-class Binary_Search : public Search_Struct
-{
- // = TITLE
- // Defines a binary search abstraction for friend records.
-public:
- // = Initialization and termination method.
- Binary_Search (void);
- // Initialize the values for the iterators...
-
- virtual ~Binary_Search (void);
- // Destructor.
-
- virtual Protocol_Record *get_next_entry (void);
- // Returns the next friend in the sequence of sorted friends. Note
- // that this function would be simplified if we expanded the
- // iterator interface to include an "initialize" and "next"
- // function!
-
- virtual Protocol_Record *get_each_entry (void);
- // An iterator, similar to Binary_Search::get_next_friend, though in
- // this case the friend records are returned in the order they
- // appeared in the friend file, rather than in sorted order. Also,
- // we skip over entries that don't have any hosts associated with
- // them.
-
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN) = 0;
- // This function is used to merge the <key_name> from server
- // <host_name> into the sorted list of userids kept on the client's
- // side.
-
- static int name_compare (const void *, const void *);
- // This function is passed to qsort to perform the comparison
- // between login names for two friends.
-
-protected:
- Protocol_Record **current_ptr_;
- int current_index_;
-
- Protocol_Record *protocol_record_;
- Protocol_Record **sorted_record_;
-
- const char *buffer_;
- int buffer_size_;
-};
-
-#endif /* _BINARY_SEARCH_H */
diff --git a/apps/drwho/CM_Client.cpp b/apps/drwho/CM_Client.cpp
deleted file mode 100644
index 8bdc9cec179..00000000000
--- a/apps/drwho/CM_Client.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Multicast_Manager.h"
-#include "CM_Client.h"
-#include "ace/Log_Msg.h"
-
-// Creates and binds a UDP socket...
-
-int
-CM_Client::open (short port_number)
-{
- Comm_Manager::sokfd_ = ACE_OS::socket (PF_INET, SOCK_DGRAM, 0);
-
- if (Comm_Manager::sokfd_ == ACE_INVALID_HANDLE)
- return -1;
-
- ACE_OS::memset ((char *) &this->sin_,
- 0,
- sizeof this->sin_);
- this->sin_.sin_family = AF_INET;
- this->sin_.sin_port = htons (port_number);
-
- return 1;
-}
-
-int
-CM_Client::receive (int timeout)
-{
- FD_ZERO (&this->read_fd_);
- FD_SET (Comm_Manager::sokfd_, &this->read_fd_);
-
- if (timeout > 0)
- {
- this->time_out_.sec (timeout);
- this->time_out_.usec (0);
- this->top_ = &time_out_;
- }
-
- while (Multicast_Manager::outstanding_hosts_remain ())
- {
- if (ACE_OS::select (Comm_Manager::sokfd_ + 1,
- &this->read_fd_,
- 0,
- 0,
- this->top_) <= 0)
- break;
- else
- {
- int sin_len = sizeof this->sin_;
- int n = ACE_OS::recvfrom ((int)Comm_Manager::sokfd_,
- this->recv_packet_,
- UDP_PACKET_SIZE,
- 0,
- ACE_reinterpret_cast (sockaddr *,
- &this->sin_),
- &sin_len);
- if (n < 0)
- return -1;
- else
- {
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- hostent *np = ACE_OS::gethostbyaddr ((char *) &this->sin_.sin_addr,
- sizeof this->sin_.sin_addr,
- AF_INET);
-
- ACE_DEBUG ((LM_DEBUG,
- "receiving from server host %s (%s)\n",
- np->h_name,
- inet_ntoa (this->sin_.sin_addr)));
- }
-
- if (this->demux (this->recv_packet_, n) < 0)
- return -1;
-
- Multicast_Manager::checkoff_host (this->sin_.sin_addr);
- }
- }
- }
-
- for (const char *host_name;
- Multicast_Manager::get_next_non_responding_host (host_name);
- )
- ACE_DEBUG ((LM_DEBUG,
- "%s did not respond\n",
- host_name));
- return 1;
-}
-
-int
-CM_Client::send (void)
-{
- int packet_length = 0;
-
- if (this->mux (this->send_packet_, packet_length) < 0)
- return -1;
-
- // Ship off the info to all the hosts.
-
- while (Multicast_Manager::get_next_host_addr (this->sin_.sin_addr) != 0)
- {
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- hostent *np = ACE_OS::gethostbyaddr ((char *) &this->sin_.sin_addr,
- sizeof this->sin_.sin_addr,
- AF_INET);
-
- ACE_DEBUG ((LM_DEBUG,
- "sending to server host %s (%s)\n",
- np->h_name,
- inet_ntoa (this->sin_.sin_addr)));
- }
-
- if (sendto (Comm_Manager::sokfd_,
- this->send_packet_,
- packet_length,
- 0,
- ACE_reinterpret_cast (sockaddr *, &this->sin_),
- sizeof this->sin_) < 0)
- return -1;
- }
- return 1;
-}
-
-CM_Client::CM_Client (void)
- : top_ (0)
-{
-}
-
-CM_Client::~CM_Client (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing CM_Client\n"));
-
- ACE_OS::closesocket ((int)Comm_Manager::sokfd_);
-}
diff --git a/apps/drwho/CM_Client.h b/apps/drwho/CM_Client.h
deleted file mode 100644
index 1e789633a5a..00000000000
--- a/apps/drwho/CM_Client.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// CM_Client.h
-//
-// = DESCRIPTION
-// Provides a virtual communcations layer for the client in the
-// drwho program.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _CM_CLIENT_H
-#define _CM_CLIENT_H
-
-#include "Comm_Manager.h"
-
-class CM_Client : public Comm_Manager
-{
- // = TITLE
- // Provides a virtual communcations layer for the client in the
- // drwho program.
-public:
- // = Initialization and termination.
- CM_Client (void);
- // Constructor.
-
- virtual ~CM_Client (void);
- // Destructor.
-
- virtual int mux (char *packet, int &packet_length) = 0;
- virtual int demux (char *packet, int &packet_length) = 0;
- virtual int open (short port_number);
- virtual int receive (int timeout = 0);
- virtual int send (void);
-
-private:
- fd_set read_fd_;
- ACE_Time_Value time_out_;
- ACE_Time_Value *top_;
-};
-
-#endif /* _CM_CLIENT_H */
diff --git a/apps/drwho/CM_Server.cpp b/apps/drwho/CM_Server.cpp
deleted file mode 100644
index 0cf6b9b9df2..00000000000
--- a/apps/drwho/CM_Server.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-// $Id$
-
-#include "global.h"
-#include "Options.h"
-#include "CM_Server.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-// Creates and binds a UDP socket...
-
-int
-CM_Server::open (short port_number)
-{
- int max_packet_size = UDP_PACKET_SIZE;
-
- this->sokfd_ = socket (PF_INET, SOCK_DGRAM, 0);
-
- if (this->sokfd_ < 0)
- return -1;
-
- ACE_OS::memset (&this->sin_, sizeof this->sin_, 0);
- this->sin_.sin_family = AF_INET;
- this->sin_.sin_port = htons (port_number);
- this->sin_.sin_addr.s_addr = INADDR_ANY;
-
- // This call fails if an rflo daemon is already running.
- if (ACE_OS::bind (this->sokfd_,
- ACE_reinterpret_cast (sockaddr *, &this->sin_),
- sizeof this->sin_) < 0)
- return -1;
-
- if (ACE_OS::setsockopt (this->sokfd_,
- SOL_SOCKET,
- SO_SNDBUF,
- (char *) &max_packet_size,
- sizeof max_packet_size) < 0)
- return -1;
-
- return 1;
-}
-
-int
-CM_Server::receive (int)
-{
- int sin_len = sizeof this->sin_;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG, "waiting for client to send...\n"));
-
- int n = ACE_OS::recvfrom (this->sokfd_,
- this->recv_packet_,
- UDP_PACKET_SIZE,
- 0,
- ACE_reinterpret_cast (sockaddr *, &this->sin_),
- (int *) &sin_len);
- if (n == -1)
- return -1;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "receiving from client host %s\n",
- ACE_OS::inet_ntoa (this->sin_.sin_addr)));
-
- if (this->demux (this->recv_packet_, n) < 0)
- return -1;
-
- return 1;
-}
-
-int
-CM_Server::send (void)
-{
- int packet_length = 0;
-
- if (this->mux (this->send_packet_,
- packet_length) < 0)
- return -1;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "sending to client host %s\n",
- ACE_OS::inet_ntoa (this->sin_.sin_addr)));
-
- if (sendto (this->sokfd_,
- this->send_packet_,
- packet_length,
- 0,
- ACE_reinterpret_cast (sockaddr *, &this->sin_),
- sizeof this->sin_) < 0)
- return -1;
-
- return 1;
-}
-
-CM_Server::CM_Server (void)
-{
-}
-
-CM_Server::~CM_Server (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "CM_Server\n"));
-
- ACE_OS::closesocket (this->sokfd_);
-}
diff --git a/apps/drwho/CM_Server.h b/apps/drwho/CM_Server.h
deleted file mode 100644
index a91402a5e48..00000000000
--- a/apps/drwho/CM_Server.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// CM_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _CM_SERVER_H
-#define _CM_SERVER_H
-
-#include "Options.h"
-#include "global.h"
-#include "Comm_Manager.h"
-
-class CM_Server : public Comm_Manager
-{
- // = TITLE
- // Provides a virtual communcations layer for the server in drwho.
-public:
- CM_Server (void);
- virtual ~CM_Server (void);
-
- virtual int open (short port_number);
- virtual int receive (int timeout = 0);
- virtual int send (void);
- virtual int mux (char *packet, int &packet_length) = 0;
- virtual int demux (char *packet, int &packet_length) = 0;
-};
-
-#endif /* _CM_SERVER_H */
diff --git a/apps/drwho/ChangeLog b/apps/drwho/ChangeLog
deleted file mode 100644
index 453e019444c..00000000000
--- a/apps/drwho/ChangeLog
+++ /dev/null
@@ -1,340 +0,0 @@
-Sat Feb 17 08:33:06 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * File_Manager.cpp: Fixed several unreachable statements.
-
-Thu Feb 15 06:00:12 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * server.cpp: Renamed tstamp to time_stamp to avoid conflicts with
- the pre-processor on the Forte 5.2 compiler. Thanks to Mike
- Curtis for reporting this.
-
- * File_Manager.cpp: Fixed "unreachable code" errors reported by
- Compaq C++.
-
-Thu Nov 16 17:58:10 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * Options.h:
- Fixed small syntax error.
-
-Sat Nov 4 18:18:06 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * Rwho_DB_Manager.cpp:
- Add missing #include
-
-Fri Jul 14 14:44:43 2000 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * CM_Server.cpp (receive): Added a cast to (int *) so that
- certain C++ compilers are happy. Thanks to John Mills
- <jmills@tga.com> for reporting this.
-
-Tue May 23 20:52:29 2000 David L. Levine <levine@cs.wustl.edu>
-
- * CM_Server.cpp (receive): one last time. Use
- ACE_OS::recvfrom instead of the direct system call,
- so it hides the native socklen_t or whatever the OS
- uses.
-
-Tue May 23 07:11:53 2000 David L. Levine <levine@cs.wustl.edu>
-
- * CM_Server.cpp (receive): changed type of local sin_len
- to be dependent on ACE_HAS_SOCKLEN_T or ACE_HAS_SIZET_SOCKET_LEN.
- See Mon May 22 21:10:24 2000 David L. Levine <levine@cs.wustl.edu>
-
-Mon May 22 21:10:24 2000 David L. Levine <levine@cs.wustl.edu>
-
- * CM_Server.cpp (receive): changed type of local sin_len
- from int to size_t, to avoid warning from g++ on Linux
- about "change of signedness". Note that it would be
- better to use ACE_SOCKET_LEN, but that's defined in
- ace/OS.i. So, it wouldn't be visible with inlining
- disabled.
-
-Mon May 22 21:07:57 2000 David L. Levine <levine@cs.wustl.edu>
-
- * BS_Server.cpp (insert): initialize local cmp to 0, to
- prevent warning from g++ 2.91.66 (on Linux) about possible
- use without initialization.
-
-Fri May 5 10:40:46 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Fixed a coule of errors due to mismatches between int and size_t.
- Thanks to David Levine and Darrell Brunsch for reporting these.
-
-Thu Apr 20 09:20:28 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * Drwho_Node.cpp:
- * File_Manager.cpp:
- * HT_Client.cpp:
- * HT_Server.cpp:
- * Hash_Table.cpp:
- * Makefile:
- * PMC_All.cpp:
- * PMC_Flo.cpp:
- * PMC_Ruser.cpp:
- * PMC_Usr.cpp:
- * PMS_All.cpp:
- * PMS_Flo.cpp:
- * PMS_Ruser.cpp:
- * PMS_Usr.cpp:
- * PM_Client.cpp:
- * PM_Server.cpp:
- * Protocol_Manager.cpp:
- * Protocol_Record.cpp:
- * Rwho_DB_Manager.cpp:
- * Single_Lookup.cpp:
- * server.cpp:
- Fixed many warnings wrt order of fields in the initialization
- section.
- Add missing template instantiation.
- Add missing includes.
- Fixed problems with the scope of variables declared inside a
- for() loop.
-
-Wed Sep 30 13:00:52 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Fixed a bunch of warnings related to char * and const char *.
- Thanks to Sandro Doro <doros@aureus.sublink.org> for reporting
- this.
-
-Sat Sep 12 21:21:01 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Made zillions of changes to "ACE"ify all of the code. Drwho is
- now officially working again!
-
-Sun Sep 6 22:48:52 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * Replaced all Str::*() methods with the new ACE::*() methods,
- which are more "standard".
-
- * Began to work on drwho after a 5 year absence...
-
-Sun Feb 14 16:13:10 1993 Douglas C. Schmidt (schmidt at net1.ics.uci.edu)
-
- * Yow. Once again back at work... This time I fixed things up so
- that the release compiles properly with Solaris 2.1 C++, g++
- 2.3.3, and the Sun C++ compiler on Sun OS 4.1.x. To do this I
- had to change the user-defined memory allocator somewhat, since
- the Sun C++ compiler was using the global NEW operator to
- allocate pools of memory behind my back... Naturally, this
- reaked havoc with the existing version in the server, which
- returns all the allocated memory to the free list once a request
- is satisfied. In addition, g++ had a weird multiple
- inheritance/pure virtual function bug that I fixed by reordering
- certain pure virtual functions. Oh what fun... ;-) Anyhow,
- everything is now back in running order!
-
-Sun Dec 6 16:13:21 1992 Douglas C. Schmidt (schmidt at net1.ics.uci.edu)
-
- * Yow, well, after about 8 months of total neglect I'm finally
- back at work on this program! The current changes I did today
- involved getting drwho to compile with g++ 2.3.2. This required
- a couple of small work arounds in the source code due to bugs,
- but hey, I guess it is better than nothing right?!
-
- Also, I had to fix a couple of places where I didn't correctly
- initialize static variables (the compiler implementations have
- changed since last year obviously). Also, I've changed a couple
- of the default server hosts to reflect the fascist policies of
- our support group ;-) (I've no longer got access to certain
- servers...)
-
- Anyhow, I think drwho is once again running with g++, so now I
- can hand the release over to Ericka... ;-)
-
-Wed May 6 23:12:02 1992 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * There is something horribly wrong with g++ 2.1. Therefore, I
- had to make a couple of changes in the pmc-rusers.C and
- pm-client.C files in order to make the blasted thing compile
- when I had pointers to member functions... Make sure to change
- this back when g++ is fixed...
-
-Tue Feb 4 11:23:12 1992 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * The blasted program was crashing when there were consecutive
- newlines in the input file. I fixed
- File_Manager::get_login_and_real_name and
- File_Manager::open_friends_file so that they detect and skip
- over these consecutive newlines.
-
-Thu Nov 21 21:55:00 1991 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * Make the time that drwho uses to consider a host idle be a
- command-line parameter.
-
-Wed Nov 13 14:24:40 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * Something else that ought to be done:
-
- Add a flag to the -R option that allows the hostname to be
- printed using the internet address and/or the hostname...
-
-Sat Nov 9 13:45:30 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * Added zillions more changes yet again. We now have an rusers
- compatibility mode (-R), to go along with the -a, -w, and
- default (flo) options.
-
- * Changed the -w option so that it only returns the name of the
- host machine where the user is logged in. This way, I can say:
-
- % talk schmidt@`drwho -w schmidt`
- % rsh `drwho -w schmidt` w
-
- etc... ;-)
-
- * Added support for the -L option (print using login name rather
- than real name). Also added support for the -l option (print
- out verbosely, a la ls -l!).
-
-Sun Oct 27 21:32:15 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * Need to complete the -s and -S options to support sorting the
- output by login name and real name, respectively... In order to
- support the '*' indication with this scheme we probably need to
- lists, one for active and one for inactive users!
-
-Tue Oct 22 00:13:21 1991 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * Make another zillion changes...
-
-Sun Oct 20 21:35:24 1991 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * Added support for the -p option to allow setting the client and
- server port number from the command-line.
-
- * Things done so far:
-
- * Owen also wants an new rflo feature (done)
-
- I also want a version that given a command like:
-
- whereis omalley
-
- would return the login where that login is active if there is
- one (ie. omalley@zola). Then you could have commands like:
-
- talk `whereis omalley`
-
- that would find where I am and try to talk to me there.
-
- * Another neat addition would be: have an option (e.g., `-a') so
- that rflo would return *all* the users logged in and then look
- up their names using the yp passwd stuff! (partially done, but
- not very elegantly yet...). (done)
-
- * Make the port number a command-line option... (done)
-
- * we also need think about how to incorporate inheritance and
- dynamic binding into this thang (probably it can be used for
- the local/remote split, and also perhaps for the
- friends/everyone split (see below)). (done)
-
- * Fix up the options stuff wrt the -F option etc... (done)
-
- * Have I fixed the is_active shit? (done)
-
- * we need a "message abstraction" that abstracts away from the
- details of packets protocols and remote operations protocols.
- (done).
-
- * Note, should make an option so we could read the names of the
- hosts to query from a file... (done)
-
-Fri Oct 18 16:17:39 1991 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * I've made countless changes...
-
-Wed Oct 16 17:42:40 1991 Douglas C. Schmidt (schmidt at net6.ics.uci.edu)
-
- * Undid the message manager abstraction and merged it in with the
- Friend_Manager client and server. This really cleans up the
- interface!
-
- * Yow, make zillions of important changes to make the
- client/server split more explicit... Now the Friend_Manager is
- split into client and server, the message manager is split, and
- the communications manager is also split. Each file is much
- smaller and easier to understand!
-
-Mon Oct 14 18:36:55 1991 Douglas C. Schmidt (schmidt at net1.ics.uci.edu)
-
- * Added support for the -h and -? options, that print out a long
- and short usage message, respectively.
-
-Tue Oct 1 09:28:29 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * The -a option works a great deal better too... I added a check
- in the File_Manager::open_passwd_file routine to strip off the
- extra subfields in the pw_gecos field, since this info isn't
- really very useful and makes the "real name" field too long!
-
- * Added some extra stuff to the Comm_Manager so that I could
- change the max size of the UDP datagrams that are passed around.
- As it turns out, I don't really need to do this, but it is more
- robust this way...
-
-Thu Sep 26 14:00:45 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Make sun3 and sun4 subdirectories to help the build process!
-
- * Changed the UDP port number from 12346 to 12344 so I wouldn't
- collide with Owen!
-
- * There is a weird bus error problem on the sun 4s... Hum...
-
- * Yow, got everything working again...
-
- * Still to do:
-
- * Think about fixing the -f option to work correctly for
- *relative* filenames...
-
- * Make UDP_BUFFER_SIZE a command-line option...
-
- * Modify server.C to be started by inetd.
-
- * For -a option... if they are a friend, use the name from
- .friend.dta otherwise use the name from the passwd file.
-
- * Don't forget about:
-
- delete Friend_Manager::friend_record;
- delete Friend_Manager::sorted_record;
-
- Need to figure out a good way to deal with this!
-
-Mon Sep 23 16:09:46 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Added a neat feature that now allows the user to specify which
- hosts to examine by specifying an option ('-F') on the
- command-line that reads the contents of that file and inserts it
- into the list of files.
-
-Wed Sep 18 10:46:41 1991 Douglas C. Schmidt (schmidt at bastille.ics.uci.edu)
-
- * We need to make all the interfaces throughout rflo much more
- object-oriented, e.g.:
-
- * Made a host-manager abstraction to handle all the host
- machine related operations. This makes the options stuff
- *much* cleaner!
-
- * Make rflo compile with g++ 1.37.2! Now it compiles with cfront
- 2.0, Saber C++ 1.0.1 and g++-1.39.0 and g++-1.37.2.
-
-Tue Sep 17 19:02:47 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Started merging in the stuff Owen did. I'm trying to maintain a
- consistent programming style... The Owen stuff adds support for
- timeouts and fixes problems with returning a count of the number
- of friends!
-
-Wed Sep 4 10:14:51 1991 Douglas C. Schmidt (schmidt at net4.ics.uci.edu)
-
- * Things to do:
-
- * Add comprehensive daemon support for server.C.
- * Add timeout stuff in case hosts are down!
- * Talk to support about making a standard daemon.
- * Fix the problem with returning the number of friends.
diff --git a/apps/drwho/Comm_Manager.h b/apps/drwho/Comm_Manager.h
deleted file mode 100644
index ec3caf93e74..00000000000
--- a/apps/drwho/Comm_Manager.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Comm_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _COMM_MANAGER_H
-#define _COMM_MANAGER_H
-
-#include "global.h"
-
-class Comm_Manager
-{
- // = TITLE
- // Provides a virtual communcations layer for the drwho program.
-protected:
- char recv_packet_[UDP_PACKET_SIZE];
- char send_packet_[UDP_PACKET_SIZE];
- sockaddr_in sin_;
- int sokfd_;
-
- virtual int mux (char *packet, int &packet_length) = 0;
- virtual int demux (char *packet, int &packet_length) = 0;
- virtual int open (short port_number) = 0;
- virtual int receive (int timeout = 0) = 0;
- virtual int send (void) = 0;
-};
-
-#endif /* _COMM_MANAGER_H */
diff --git a/apps/drwho/Drwho_Node.cpp b/apps/drwho/Drwho_Node.cpp
deleted file mode 100644
index ab3b66b93f9..00000000000
--- a/apps/drwho/Drwho_Node.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-// $Id$
-
-#include "Drwho_Node.h"
-
-Drwho_Node::Drwho_Node (const char *h_name, Drwho_Node *n)
- : key_name1_ (h_name),
- key_name2_ (0),
- tty_name_ (0),
- idle_time_ (0),
- active_count_ (0),
- inactive_count_ (0),
- next_ (n)
-{}
-
-Drwho_Node::Drwho_Node (void)
- : key_name1_ (0),
- key_name2_ (0),
- tty_name_ (0),
- idle_time_ (0),
- active_count_ (0),
- inactive_count_ (0),
- next_ (0)
-{}
-
-const char *
-Drwho_Node::get_login_name (void)
-{
- return this->key_name1_;
-}
-
-const char *
-Drwho_Node::set_login_name (const char *str)
-{
- this->key_name1_ = str;
- return str;
-}
-
-const char *
-Drwho_Node::get_real_name (void)
-{
- return this->key_name2_;
-}
-
-const char *
-Drwho_Node::set_real_name (const char *str)
-{
- this->key_name2_ = str;
- return str;
-}
-
-const char *
-Drwho_Node::get_host_name (void)
-{
- return this->key_name1_;
-}
-
-const char *
-Drwho_Node::set_host_name (const char *str)
-{
- this->key_name1_ = str;
- return str;
-}
-
-int
-Drwho_Node::get_active_count (void)
-{
- return this->active_count_;
-}
-
-int
-Drwho_Node::get_inactive_count (void)
-{
- return this->inactive_count_;
-}
-
-int
-Drwho_Node::set_active_count (int count)
-{
- this->active_count_ = count;
- return count;
-}
-
-int
-Drwho_Node::set_inactive_count (int count)
-{
- this->inactive_count_ = count;
- return count;
-}
-
-int
-Drwho_Node::set_idle_time (int idle_time)
-{
- this->idle_time_ = idle_time;
- return idle_time;
-}
-
-int
-Drwho_Node::get_idle_time (void)
-{
- return this->idle_time_;
-}
diff --git a/apps/drwho/Drwho_Node.h b/apps/drwho/Drwho_Node.h
deleted file mode 100644
index 02251b669df..00000000000
--- a/apps/drwho/Drwho_Node.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Drwho_Node.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _DRWHO_NODE_H
-#define _DRWHO_NODE_H
-
-#include "global.h"
-
-class Drwho_Node
-{
- // = TITLE
- // Stores information about a host for a specific friend.
-public:
- Drwho_Node (const char *host, Drwho_Node *next);
- Drwho_Node (void);
-
- int get_active_count (void);
- int get_inactive_count (void);
- int set_active_count (int count);
- int set_inactive_count (int count);
- int set_idle_time (int idle_time);
- int get_idle_time (void);
- const char *get_host_name (void);
- const char *set_host_name (const char *str);
- const char *get_login_name (void);
- const char *set_login_name (const char *);
- const char *get_real_name (void);
- const char *set_real_name (const char *);
-
- const char *key_name1_;
- const char *key_name2_;
- const char *tty_name_;
- int idle_time_;
- int active_count_;
- int inactive_count_;
- Drwho_Node *next_;
-};
-
-#endif /* _DRWHO_NODE_H */
diff --git a/apps/drwho/File_Manager.cpp b/apps/drwho/File_Manager.cpp
deleted file mode 100644
index 83bdc87f338..00000000000
--- a/apps/drwho/File_Manager.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-// $Id$
-
-#include "File_Manager.h"
-
-File_Manager::File_Manager (void)
- : number_of_friends (0),
- max_key_length (0),
- buffer_ptr (0),
- current_ptr (0),
- buffer_size (0)
-{
-}
-
-// Either opens the friends file (if FILENAME is not a NULL pointer)
-// or opens up the password file. In either case, the number of
-// entries in the file are returned, i.e., number of friends...
-
-int
-File_Manager::open_file (const char *filename)
-{
- return filename == 0
- ? this->open_passwd_file ()
- : this->open_friends_file (filename);
-}
-
-// Returns the next LOGIN_NAME and REAL_NAME from the file.
-
-void
-File_Manager::get_login_and_real_name (const char *&login_name, const char *&real_name)
-{
- char *buf_ptr = this->current_ptr;
-
- login_name = buf_ptr;
-
- // Skip to the end of the login name.
-
- while (isalnum (*buf_ptr))
- buf_ptr++;
-
- *buf_ptr++ = '\0';
-
- // Now skip over white space to *start* of real name!
-
- while (isspace (*buf_ptr) || *buf_ptr == '\0')
- buf_ptr++;
-
- real_name = buf_ptr;
-
- while (*buf_ptr++ != '\n')
- continue;
-
- // Clear the trailing blanks and junk.
-
- for (char *tmp_ptr = buf_ptr - 1;
- isspace (*tmp_ptr);
- tmp_ptr--)
- *tmp_ptr = '\0';
-
- // Skip over consecutive blank lines.
-
- while (*buf_ptr == '\n')
- buf_ptr++;
-
- this->current_ptr = buf_ptr;
-}
-
-// Open up the yp passwd file and slurp all the users in!
-
-int
-File_Manager::open_passwd_file (void)
-{
- const char *filename = ACE_OS::tempnam ();
- FILE *fp = ACE_OS::fopen (filename, "w");
-
- if (fp == 0)
- return -1;
-
- passwd *pwent;
-
- for (ACE_OS::setpwent ();
- (pwent = ACE_OS::getpwent ()) != 0; )
- if (*pwent->pw_gecos != '\0')
- {
- char *cp = strchr (pwent->pw_gecos, ',');
-
- if (cp != 0)
- *cp = '\0';
-
- ACE_OS::fprintf (fp,
- "%-8.8s %s\n",
- pwent->pw_name,
- pwent->pw_gecos);
- this->number_of_friends++;
- }
-
- ACE_OS::endpwent ();
-
- ACE_OS::fclose (fp);
-
- if (this->mmap_.map (filename) == -1)
- return -1;
-
- this->buffer_ptr = (char *) this->mmap_.addr ();
-
- this->buffer_size = this->mmap_.size ();
- this->current_ptr = this->buffer_ptr;
- return this->number_of_friends;
-}
-
-// This function opens up FILENAME and memory maps it in our address
-// space.
-
-int
-File_Manager::open_friends_file (const char *filename)
-{
- char directory[MAXPATHLEN];
- const char *pathname = directory;
-
- // See if we've got a filename or a pathname (i.e., directory/filename).
-
- if (ACE_OS::strrchr (filename, '/') != 0)
- // We've got a complete pathname.
- pathname = filename;
- else
- {
- directory[0] = '\0';
-
- const char *home = ACE_OS::getenv ("HOME");
- if (home != 0)
- {
- ACE_OS::strcat (directory, home);
- ACE_OS::strcat (directory, "/");
- }
- ACE_OS::strcat (directory, filename);
- }
-
- // Do the mmap'ing.
-
- if (this->mmap_.map (pathname) == -1)
- return -1;
-
- this->buffer_ptr = (char *) this->mmap_.addr ();
-
- this->buffer_size = this->mmap_.size ();
- this->current_ptr = this->buffer_ptr;
-
- // Determine how many friends there are by counting the newlines.
-
- for (char *cp = this->buffer_ptr + this->buffer_size;
- cp > this->buffer_ptr
- ;)
- if (*--cp == '\n')
- {
- this->number_of_friends++;
-
- // Skip consecutive newlines.
- while (cp[-1] == '\n')
- --cp;
- }
-
- return this->number_of_friends;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-
-template class ACE_Singleton<File_Manager,ACE_Null_Mutex>;
-
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-
-#pragma instantiate ACE_Singleton<File_Manager,ACE_Null_Mutex>
-
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/apps/drwho/File_Manager.h b/apps/drwho/File_Manager.h
deleted file mode 100644
index 55482b2823d..00000000000
--- a/apps/drwho/File_Manager.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// File_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _FILE_MANAGER_H
-#define _FILE_MANAGER_H
-
-#include "global.h"
-#include "ace/Singleton.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Mem_Map.h"
-
-class File_Manager
-{
- // = TITLE
- // This class provides a file ADT for our friends info.
-public:
- File_Manager (void);
- // Constructor.
-
- int open_file (const char *filename);
- void get_login_and_real_name (const char *&login_name,
- const char *&real_name);
-private:
- int number_of_friends;
- int max_key_length;
-
- char *buffer_ptr;
- char *current_ptr;
- int buffer_size;
-
- int open_friends_file (const char *filename);
- int open_passwd_file (void);
-
- ACE_Mem_Map mmap_;
-};
-
-// Make a Singleton.
-typedef ACE_Singleton <File_Manager, ACE_Null_Mutex> FILE_MANAGER;
-
-#endif /* _FILE_MANAGER_H */
diff --git a/apps/drwho/HT_Client.cpp b/apps/drwho/HT_Client.cpp
deleted file mode 100644
index 0ff9674cf93..00000000000
--- a/apps/drwho/HT_Client.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// $Id$
-
-#include "HT_Client.h"
-#include "ace/ACE.h"
-
-// Insert a KEY_NAME into the hash table, if it doesn't already exist
-// there. What gets returned is a pointer to the node inserted. Note
-// that we do our own memory allocation here...
-
-Protocol_Record *
-HT_Client::insert (const char *key_name, int max_len)
-{
- Protocol_Record **prpp = 0;
-
- // This is tricky...
-
- for (prpp = &this->hash_table[ACE::hash_pjw (key_name) % this->hash_table_size];
- *prpp != 0
- && ACE_OS::strncmp ((*prpp)->get_login (),
- key_name, max_len) != 0;
- prpp = &(*prpp)->next_)
- continue;
-
- if (*prpp == 0)
- {
- ACE_NEW_RETURN (*prpp,
- Protocol_Record (ACE::strnew (key_name),
- *prpp),
- 0);
- this->count_++;
- }
-
- return *prpp;
-}
diff --git a/apps/drwho/HT_Client.h b/apps/drwho/HT_Client.h
deleted file mode 100644
index 274cc6e72e6..00000000000
--- a/apps/drwho/HT_Client.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// HT_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _HT_CLIENT_H
-#define _HT_CLIENT_H
-
-#include "Hash_Table.h"
-
-class HT_Client : public Hash_Table
-{
- // = TITLE
- // Provides the client's hash table abstraction.
-public:
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
-};
-
-#endif /* _HT_CLIENT_H */
diff --git a/apps/drwho/HT_Server.cpp b/apps/drwho/HT_Server.cpp
deleted file mode 100644
index 5af2b21c4b5..00000000000
--- a/apps/drwho/HT_Server.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// $Id$
-
-#include "HT_Server.h"
-#include "ace/ACE.h"
-
-// Insert a KEY_NAME into the hash table, if it doesn't already exist
-// there. What gets returned is a pointer to the node inserted. Note
-// that we do our own memory allocation here...
-
-Protocol_Record *
-HT_Server::insert (const char *key_name, int max_len)
-{
- Protocol_Record **prpp = 0;
-
- // This is tricky...
-
- for (prpp = &this->hash_table[ACE::hash_pjw (key_name) % this->hash_table_size];
- *prpp != 0 && strncmp ((*prpp)->get_login (), key_name, max_len) != 0;
- prpp = &(*prpp)->next_)
- continue;
-
- if (*prpp == 0)
- {
- // Remember, the server must be very careful about stuff it
- // receives from the rwho manager, since it may not be
- // NUL-terminated. That's why we use ACE::strnnew ()...
-
- ACE_NEW_RETURN (*prpp,
- Protocol_Record (ACE::strnnew (key_name,
- max_len),
- *prpp),
- 0);
- this->count_++;
- }
-
- return *prpp;
-}
diff --git a/apps/drwho/HT_Server.h b/apps/drwho/HT_Server.h
deleted file mode 100644
index 3dbff633cfb..00000000000
--- a/apps/drwho/HT_Server.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// HT_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _HT_SERVER_H
-#define _HT_SERVER_H
-
-#include "Hash_Table.h"
-
-class HT_Server : public Hash_Table
-{
- // = TITLE
- // Provides the server's hash table abstraction.
-
-public:
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
-};
-
-#endif /* _HT_SERVER_H */
diff --git a/apps/drwho/Hash_Table.cpp b/apps/drwho/Hash_Table.cpp
deleted file mode 100644
index 51fba821db9..00000000000
--- a/apps/drwho/Hash_Table.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Hash_Table.h"
-#include "ace/Log_Msg.h"
-
-Hash_Table::Hash_Table (void)
- : current_ptr (0),
- current_index (0),
- hash_table_size (HASH_TABLE_SIZE)
-{
- ACE_NEW (this->hash_table,
- Protocol_Record *[this->hash_table_size]);
- ACE_OS::memset (this->hash_table,
- 0,
- this->hash_table_size * sizeof *this->hash_table);
-}
-
-// Iterate through the hash table returning one node at a time...
-
-Protocol_Record *
-Hash_Table::get_next_entry (void)
-{
- // Reset the iterator if we are starting from the beginning.
-
- if (this->current_index == -1)
- this->current_index = 0;
-
- if (this->current_ptr == 0)
- {
-
- for (;
- this->current_index < this->hash_table_size;
- this->current_index++)
- if (this->hash_table[this->current_index] != 0)
- {
- Protocol_Record *prp = this->hash_table[this->current_index++];
- this->current_ptr = prp->next_;
- return prp;
- }
-
- this->current_index = -1;
- return 0;
- }
- else
- {
- Protocol_Record *prp = this->current_ptr;
- this->current_ptr = this->current_ptr->next_;
- return prp;
- }
-}
-
-Protocol_Record *
-Hash_Table::get_each_entry (void)
-{
- return this->get_next_entry ();
-}
-
-// Frees up all the dynamic memory in the hash table.
-
-Hash_Table::~Hash_Table (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Hash_Table\n"));
-
- for (int i = 0; i < this->hash_table_size; i++)
- for (Protocol_Record *prp = this->hash_table[i];
- prp != 0; )
- {
- prp = prp->next_;
- }
-}
diff --git a/apps/drwho/Hash_Table.h b/apps/drwho/Hash_Table.h
deleted file mode 100644
index 44f5ea769fc..00000000000
--- a/apps/drwho/Hash_Table.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// HT_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _HASH_TABLE_H
-#define _HASH_TABLE_H
-
-#include "Search_Struct.h"
-
-class Hash_Table : public Search_Struct
-{
- // = TITLE
- // Provides a hash function lookup abstraction for friend records.
-public:
- Hash_Table (void);
- virtual ~Hash_Table (void);
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN) = 0;
- virtual Protocol_Record *get_next_entry (void);
- virtual Protocol_Record *get_each_entry (void);
-
-protected:
- enum
- {
- HASH_TABLE_SIZE = 500
- };
-
- Protocol_Record **hash_table;
- Protocol_Record *current_ptr;
- int current_index;
- int hash_table_size;
-};
-#endif /* _HASH_TABLE_H */
diff --git a/apps/drwho/Makefile b/apps/drwho/Makefile
deleted file mode 100644
index 3966040ae4d..00000000000
--- a/apps/drwho/Makefile
+++ /dev/null
@@ -1,1720 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for drwho
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = drwho-client drwho-server
-
-SHARED-SRC = Protocol_Manager \
- Drwho_Node \
- Rwho_DB_Manager \
- Multicast_Manager \
- Protocol_Record \
- Options \
- File_Manager \
- Hash_Table \
- Binary_Search \
- Search_Struct \
- Single_Lookup \
- SML_Server \
- SM_Server \
- PMS_Usr \
- SL_Server \
- PMS_Flo \
- PM_Server \
- HT_Server \
- BS_Server \
- PMS_All \
- PMS_Ruser \
- SMR_Server \
- CM_Client \
- SM_Client \
- SMR_Client \
- PM_Client \
- HT_Client \
- BS_Client \
- PMC_All \
- PMC_Flo \
- PMC_Usr \
- SL_Client \
- PMC_Ruser \
- SMR_Client \
- SML_Client \
- CM_Server
-
-SHARED-OBJ = $(addsuffix .o,$(SHARED-SRC))
-
-CLIENT-SRC = client
-
-CLIENT-OBJ = $(addsuffix .o,$(CLIENT-SRC))
-
-SERVER-SRC = server
-
-SERVER-OBJ = $(addsuffix .o,$(SERVER-SRC))
-
-LSRC = client.cpp server.cpp \
- $(addsuffix .cpp,$(SHARED-SRC)) \
- $(addsuffix .cpp,$(CLIENT-SRC)) \
- $(addsuffix .cpp,$(SERVER-SRC))
-
-BUILD = $(BIN)
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-VBIN = $(BIN:%=%$(VAR))
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-
-ifeq (1,$(VXWORKS))
- # since protocols/rwhod.h is not available under VxWorks
- # drwho will not build on vxworks
- all clean realclean:
- @echo drwho will not build on vxworks
-
-else # VXWORKS
- ifeq (1,$(CHORUS))
- # since protocols/rwhod.h is not available under Chorus
- # drwho will not build on chorus
- all clean realclean:
- @echo drwho will not build on chorus
-
- else # CHORUS
-
-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
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-drwho-client: $(addprefix $(VDIR),$(CLIENT-OBJ)) $(addprefix $(VDIR),$(SHARED-OBJ))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS)
-
-drwho-server: $(addprefix $(VDIR),$(SERVER-OBJ)) $(addprefix $(VDIR),$(SHARED-OBJ))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS)
- endif #Chorus
-endif #VxWorks
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/client.o .obj/client.so .shobj/client.o .shobj/client.so: client.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- Options.h global.h SML_Client.h SM_Client.h PM_Client.h \
- Protocol_Manager.h Search_Struct.h Protocol_Record.h Drwho_Node.h \
- CM_Client.h Comm_Manager.h Select_Manager.h SML_Server.h SM_Server.h \
- PM_Server.h CM_Server.h SMR_Client.h
-
-.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- SMR_Server.h SM_Server.h PM_Server.h Protocol_Manager.h \
- Search_Struct.h Protocol_Record.h Drwho_Node.h CM_Server.h \
- Comm_Manager.h Select_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Protocol_Manager.o .obj/Protocol_Manager.so .shobj/Protocol_Manager.o .shobj/Protocol_Manager.so: Protocol_Manager.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- Options.h global.h Protocol_Manager.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h
-
-.obj/Drwho_Node.o .obj/Drwho_Node.so .shobj/Drwho_Node.o .shobj/Drwho_Node.so: Drwho_Node.cpp Drwho_Node.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i
-
-.obj/Rwho_DB_Manager.o .obj/Rwho_DB_Manager.so .shobj/Rwho_DB_Manager.o .shobj/Rwho_DB_Manager.so: Rwho_DB_Manager.cpp global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Options.h Rwho_DB_Manager.h \
- $(ACE_ROOT)/ace/Dirent.h \
- $(ACE_ROOT)/ace/Dirent.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- Protocol_Record.h Drwho_Node.h
-
-.obj/Multicast_Manager.o .obj/Multicast_Manager.so .shobj/Multicast_Manager.o .shobj/Multicast_Manager.so: Multicast_Manager.cpp Multicast_Manager.h \
- global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Mem_Map.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Mem_Map.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Protocol_Record.o .obj/Protocol_Record.so .shobj/Protocol_Record.o .shobj/Protocol_Record.so: Protocol_Record.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Protocol_Record.h Drwho_Node.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Options.o .obj/Options.so .shobj/Options.o .shobj/Options.so: Options.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Multicast_Manager.h \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/File_Manager.o .obj/File_Manager.so .shobj/File_Manager.o .shobj/File_Manager.so: File_Manager.cpp File_Manager.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i
-
-.obj/Hash_Table.o .obj/Hash_Table.so .shobj/Hash_Table.o .shobj/Hash_Table.so: Hash_Table.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Hash_Table.h Search_Struct.h Protocol_Record.h Drwho_Node.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Binary_Search.o .obj/Binary_Search.so .shobj/Binary_Search.o .shobj/Binary_Search.so: Binary_Search.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Binary_Search.h Search_Struct.h Protocol_Record.h Drwho_Node.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Search_Struct.o .obj/Search_Struct.so .shobj/Search_Struct.o .shobj/Search_Struct.so: Search_Struct.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Search_Struct.h Protocol_Record.h Drwho_Node.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Single_Lookup.o .obj/Single_Lookup.so .shobj/Single_Lookup.o .shobj/Single_Lookup.so: Single_Lookup.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Single_Lookup.h Search_Struct.h Protocol_Record.h Drwho_Node.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/SML_Server.o .obj/SML_Server.so .shobj/SML_Server.o .shobj/SML_Server.so: SML_Server.cpp SML_Server.h SM_Server.h PM_Server.h \
- Protocol_Manager.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Options.h global.h Search_Struct.h Protocol_Record.h Drwho_Node.h \
- CM_Server.h Comm_Manager.h Select_Manager.h
-
-.obj/SM_Server.o .obj/SM_Server.so .shobj/SM_Server.o .shobj/SM_Server.so: SM_Server.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- PMS_All.h PM_Server.h Protocol_Manager.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h PMS_Flo.h PMS_Usr.h PMS_Ruser.h \
- SM_Server.h CM_Server.h Comm_Manager.h Select_Manager.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/PMS_Usr.o .obj/PMS_Usr.so .shobj/PMS_Usr.o .shobj/PMS_Usr.so: PMS_Usr.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- SL_Server.h Single_Lookup.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMS_Usr.h PM_Server.h Protocol_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/SL_Server.o .obj/SL_Server.so .shobj/SL_Server.o .shobj/SL_Server.so: SL_Server.cpp global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- SL_Server.h Single_Lookup.h Options.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h
-
-.obj/PMS_Flo.o .obj/PMS_Flo.so .shobj/PMS_Flo.o .shobj/PMS_Flo.so: PMS_Flo.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- BS_Server.h Binary_Search.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMS_Flo.h PM_Server.h Protocol_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/PM_Server.o .obj/PM_Server.so .shobj/PM_Server.o .shobj/PM_Server.so: PM_Server.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Rwho_DB_Manager.h \
- $(ACE_ROOT)/ace/Dirent.h \
- $(ACE_ROOT)/ace/Dirent.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- Protocol_Record.h Drwho_Node.h PM_Server.h Protocol_Manager.h \
- Search_Struct.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i
-
-.obj/HT_Server.o .obj/HT_Server.so .shobj/HT_Server.o .shobj/HT_Server.so: HT_Server.cpp HT_Server.h Hash_Table.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i
-
-.obj/BS_Server.o .obj/BS_Server.so .shobj/BS_Server.o .shobj/BS_Server.so: BS_Server.cpp BS_Server.h Binary_Search.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i
-
-.obj/PMS_All.o .obj/PMS_All.so .shobj/PMS_All.o .shobj/PMS_All.so: PMS_All.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- HT_Server.h Hash_Table.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMS_All.h PM_Server.h Protocol_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/PMS_Ruser.o .obj/PMS_Ruser.so .shobj/PMS_Ruser.o .shobj/PMS_Ruser.so: PMS_Ruser.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- HT_Server.h Hash_Table.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMS_Ruser.h PM_Server.h Protocol_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/SMR_Server.o .obj/SMR_Server.so .shobj/SMR_Server.o .shobj/SMR_Server.so: SMR_Server.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- SMR_Server.h SM_Server.h PM_Server.h Protocol_Manager.h \
- Search_Struct.h Protocol_Record.h Drwho_Node.h CM_Server.h \
- Comm_Manager.h Select_Manager.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/CM_Client.o .obj/CM_Client.so .shobj/CM_Client.o .shobj/CM_Client.so: CM_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Multicast_Manager.h CM_Client.h Comm_Manager.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/SM_Client.o .obj/SM_Client.so .shobj/SM_Client.o .shobj/SM_Client.so: SM_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- PMC_All.h PM_Client.h Protocol_Manager.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h PMC_Flo.h PMC_Usr.h PMC_Ruser.h \
- SM_Client.h CM_Client.h Comm_Manager.h Select_Manager.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/SMR_Client.o .obj/SMR_Client.so .shobj/SMR_Client.o .shobj/SMR_Client.so: SMR_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- PMC_All.h PM_Client.h Protocol_Manager.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h PMC_Flo.h PMC_Usr.h PMC_Ruser.h \
- SMR_Client.h SM_Client.h CM_Client.h Comm_Manager.h Select_Manager.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/PM_Client.o .obj/PM_Client.so .shobj/PM_Client.o .shobj/PM_Client.so: PM_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- PM_Server.h Protocol_Manager.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PM_Client.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/HT_Client.o .obj/HT_Client.so .shobj/HT_Client.o .shobj/HT_Client.so: HT_Client.cpp HT_Client.h Hash_Table.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i
-
-.obj/BS_Client.o .obj/BS_Client.so .shobj/BS_Client.o .shobj/BS_Client.so: BS_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- File_Manager.h \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Mem_Map.h \
- $(ACE_ROOT)/ace/Mem_Map.i \
- BS_Client.h Binary_Search.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h
-
-.obj/PMC_All.o .obj/PMC_All.so .shobj/PMC_All.o .shobj/PMC_All.so: PMC_All.cpp global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Options.h HT_Client.h Hash_Table.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMC_All.h PM_Client.h Protocol_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/PMC_Flo.o .obj/PMC_Flo.so .shobj/PMC_Flo.o .shobj/PMC_Flo.so: PMC_Flo.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- BS_Client.h Binary_Search.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMC_Flo.h PM_Client.h Protocol_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/PMC_Usr.o .obj/PMC_Usr.so .shobj/PMC_Usr.o .shobj/PMC_Usr.so: PMC_Usr.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- SL_Client.h Single_Lookup.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMC_Usr.h PM_Client.h Protocol_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/SL_Client.o .obj/SL_Client.so .shobj/SL_Client.o .shobj/SL_Client.so: SL_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- SL_Client.h Single_Lookup.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h
-
-.obj/PMC_Ruser.o .obj/PMC_Ruser.so .shobj/PMC_Ruser.o .shobj/PMC_Ruser.so: PMC_Ruser.cpp global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Options.h HT_Client.h Hash_Table.h Search_Struct.h Protocol_Record.h \
- Drwho_Node.h PMC_Ruser.h PM_Client.h Protocol_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/SMR_Client.o .obj/SMR_Client.so .shobj/SMR_Client.o .shobj/SMR_Client.so: SMR_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- PMC_All.h PM_Client.h Protocol_Manager.h Search_Struct.h \
- Protocol_Record.h Drwho_Node.h PMC_Flo.h PMC_Usr.h PMC_Ruser.h \
- SMR_Client.h SM_Client.h CM_Client.h Comm_Manager.h Select_Manager.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/SML_Client.o .obj/SML_Client.so .shobj/SML_Client.o .shobj/SML_Client.so: SML_Client.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- SML_Client.h SM_Client.h PM_Client.h Protocol_Manager.h \
- Search_Struct.h Protocol_Record.h Drwho_Node.h CM_Client.h \
- Comm_Manager.h Select_Manager.h SML_Server.h SM_Server.h PM_Server.h \
- CM_Server.h
-
-.obj/CM_Server.o .obj/CM_Server.so .shobj/CM_Server.o .shobj/CM_Server.so: CM_Server.cpp global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Options.h CM_Server.h Comm_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/client.o .obj/client.so .shobj/client.o .shobj/client.so: client.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- Options.h global.h SML_Client.h SM_Client.h PM_Client.h \
- Protocol_Manager.h Search_Struct.h Protocol_Record.h Drwho_Node.h \
- CM_Client.h Comm_Manager.h Select_Manager.h SML_Server.h SM_Server.h \
- PM_Server.h CM_Server.h SMR_Client.h
-
-.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp Options.h global.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- SMR_Server.h SM_Server.h PM_Server.h Protocol_Manager.h \
- Search_Struct.h Protocol_Record.h Drwho_Node.h CM_Server.h \
- Comm_Manager.h Select_Manager.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/drwho/Multicast_Manager.cpp b/apps/drwho/Multicast_Manager.cpp
deleted file mode 100644
index f213a65846e..00000000000
--- a/apps/drwho/Multicast_Manager.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-// $Id$
-
-#include "Multicast_Manager.h"
-#include "ace/Mem_Map.h"
-#include "ace/Log_Msg.h"
-
-// Initialize all the static member vars.
-int Multicast_Manager::received_host_count = 0;
-Host_Elem *Multicast_Manager::drwho_list = 0;
-Host_Elem *Multicast_Manager::current_ptr = 0;
-
-// Names of hosts to query for friend info.
-const char *Multicast_Manager::host_names[] =
-{
- "tango.cs.wustl.edu",
- 0 // The NULL entry...
-};
-
-void
-Multicast_Manager::insert_default_hosts (void)
-{
- // Enter the static list of hosts into the dynamic table!
-
- for (const char **np = host_names;
- *np != 0;
- np++)
- Multicast_Manager::add_host (*np);
-}
-
-// Inserts all the names in FILENAME into the list of hosts to
-// contact.
-
-int
-Multicast_Manager::insert_hosts_from_file (const char *filename)
-{
- ACE_Mem_Map mmap (filename);
- char *host_ptr = (char *) mmap.addr ();
-
- if (host_ptr == 0)
- return -1;
- else
- {
- for (char *end_ptr = host_ptr + mmap.size ();
- host_ptr < end_ptr;
- )
- {
- Multicast_Manager::add_host (host_ptr);
-
- while (*host_ptr != '\n')
- host_ptr++;
-
- *host_ptr++ = '\0';
- }
-
- return 0;
- }
-}
-
-// Returns the IP host address for the next unexamined host in the
-// list. If no more unexamined hosts remain a 0 is returned, else a
-// 1.
-
-int
-Multicast_Manager::get_next_host_addr (in_addr &host_addr)
-{
- for (Multicast_Manager::current_ptr = Multicast_Manager::current_ptr == 0 ? Multicast_Manager::drwho_list : Multicast_Manager::current_ptr->next;
-
- Multicast_Manager::current_ptr != 0;
- Multicast_Manager::current_ptr = Multicast_Manager::current_ptr->next)
- {
- const char *host_name = Multicast_Manager::current_ptr->host_name;
- hostent *hp = Multicast_Manager::get_host_entry (host_name);
-
- if (hp == 0)
- {
- ACE_ERROR ((LM_ERROR,
- "%s: host unknown.\n",
- host_name));
- continue;
- }
-
- Multicast_Manager::received_host_count++;
- ACE_OS::memcpy (&host_addr,
- hp->h_addr,
- sizeof host_addr);
- ACE_OS::memcpy (&Multicast_Manager::current_ptr->host_addr,
- hp->h_addr,
- sizeof host_addr);
- return 1;
- }
-
- return 0;
-}
-
-// This function attempts to get the internet address for either a
-// hostname or hostnumber. The function makes the simplifying
-// assumption that hostnames begin with an alphabetic character!
-
-hostent *
-Multicast_Manager::get_host_entry (const char *host)
-{
- static hostent host_entry;
- hostent *hp;
-
- if (isdigit (*host)) // IP address.
- {
- u_long ia = ACE_OS::inet_addr (host);
-
- if (ia == (u_long) -1)
- hp = 0;
- else
- hp = ACE_OS::gethostbyaddr ((char *) &ia,
- sizeof ia,
- AF_INET);
- }
- else
- // Host name.
- hp = ACE_OS::gethostbyname (host);
-
-
- return hp == 0 ? 0 : (hostent *) memcpy (&host_entry, hp, sizeof *hp);
-}
-
-// Adds an additional new host to the list of host machines.
-
-void
-Multicast_Manager::add_host (const char *host_name)
-{
- ACE_NEW (Multicast_Manager::drwho_list,
- Host_Elem (host_name,
- Multicast_Manager::drwho_list));
-}
-
-void
-Multicast_Manager::checkoff_host (in_addr host_addr)
-{
- for (Host_Elem *tmp = Multicast_Manager::drwho_list;
- tmp != 0;
- tmp = tmp->next)
- if (ACE_OS::memcmp (&tmp->host_addr.s_addr,
- &host_addr.s_addr,
- sizeof host_addr.s_addr) == 0)
- {
- tmp->checked_off = 1;
- Multicast_Manager::received_host_count--;
- return;
- }
-}
-
-int
-Multicast_Manager::get_next_non_responding_host (const char *&host_name)
-{
- for (Multicast_Manager::current_ptr = Multicast_Manager::current_ptr == 0 ? Multicast_Manager::drwho_list : Multicast_Manager::current_ptr->next;
- Multicast_Manager::current_ptr != 0;
- Multicast_Manager::current_ptr = Multicast_Manager::current_ptr->next)
- if (Multicast_Manager::current_ptr->checked_off == 0)
- {
- host_name = Multicast_Manager::current_ptr->host_name;
- return 1;
- }
-
- return 0;
-}
-
-Host_Elem::Host_Elem (const char *h_name,
- Host_Elem *n)
- : host_name (h_name),
- checked_off (0),
- next (n)
-{
-}
-
-int
-Multicast_Manager::outstanding_hosts_remain (void)
-{
- return Multicast_Manager::received_host_count > 0;
-}
diff --git a/apps/drwho/Multicast_Manager.h b/apps/drwho/Multicast_Manager.h
deleted file mode 100644
index 82f609a6546..00000000000
--- a/apps/drwho/Multicast_Manager.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Multicast_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _MULTICAST_MANAGER_H
-#define _MULTICAST_MANAGER_H
-
-#include "global.h"
-
-class Host_Elem
-{
-public:
- const char *host_name;
- in_addr host_addr;
- int checked_off;
- Host_Elem *next;
-
- Host_Elem (const char *h_name, Host_Elem *n);
-};
-
-class Multicast_Manager
-{
- // = TITLE
- // This file handles all the operations upon host machines names
- // and addresses.
-public:
- static void add_host (const char *host_name);
- static void checkoff_host (in_addr host_addr);
- static int get_next_host_addr (in_addr &host_addr);
- static int outstanding_hosts_remain (void);
- static int get_next_non_responding_host (const char *&host_name);
- static int insert_hosts_from_file (const char *filename);
- static void insert_default_hosts (void);
-
-private:
- static hostent *get_host_entry (const char *host);
-
- static int received_host_count;
- static const char *host_names[];
- static Host_Elem *drwho_list;
- static Host_Elem *current_ptr;
-};
-
-#endif /* _MULTICAST_MANAGER_H */
diff --git a/apps/drwho/Options.cpp b/apps/drwho/Options.cpp
deleted file mode 100644
index 4b82de0563a..00000000000
--- a/apps/drwho/Options.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Multicast_Manager.h"
-#include "ace/Get_Opt.h"
-#include "ace/Log_Msg.h"
-
-// Initialize all the static variables.
-
-// Contains bit-mask for options.
-u_int Options::option_word = 0;
-
-// Which protocol are we using?
-Options::Protocol_Types Options::protocol_type = Options::PROTO_FLO;
-
-// User name for quick lookups.
-char *Options::user_name = 0;
-
-// Port number for client/server.
-short Options::port_number = PORT_NUMBER;
-
-// Maximum time the client waits for servers to timeout.
-int Options::max_server_timeout = 5;
-
-// Name of the program.
-char *Options::program_name;
-
-// Default name of file that stores friend info.
-const char *Options::friend_file = FRIEND_FILE;
-
-void
-Options::print_usage_and_die (int long_msg)
-{
- ACE_DEBUG ((LM_DEBUG,
- "usage: %s %s",
- program_name,
- long_msg
- ? "\n"
- "-?\tprints a short usage message\n"
- "-A\tappend the following hostname to the list of predefined hostnames.\n"
- "-a\treturn information on *all* users remotely logged in (uses yp passwd).\n"
- "-b\trun the server in the background (i.e., as a daemon).\n"
- "-d\tturn on debugging.\n"
- "-F\tuse the following file contents to initialize the host list.\n"
- "-f\tuse the following file contents to initialize the friends database.\n"
- "-H\tuse the following hostname as part of the new list of hostnames.\n"
- "\t(this option overwrites the existing default names).\n"
- "-h\tprint a long usage message.\n"
- "-L\tprint the login name rather than the real name (which is the default).\n"
- "-l\tprint information in long format (works for all protocols).\n"
- "-p\tset the port number (server must correspond).\n"
- "-r\tdo the remote lookups (i.e., local operations are the default).\n"
- "-R\tprint info using the rusers format.\n"
- "-s\tsort the output by login name.\n"
- "-S\tsort the output by real name.\n"
- "-t\tset the amount of time we wait for servers to timeout.\n"
- "-w\treturn information on just one user.\n"
- : "[-?haAbdfFHhLlpRrtw]\n"));
- ACE_OS::exit (1);
-}
-
-void
-Options::set_opt (Option_Types opt)
-{
- Options::option_word |= opt;
-}
-
-int
-Options::get_opt (Option_Types opt)
-{
- return (Options::option_word & opt) != 0;
-}
-
-void
-Options::set_options (int argc, char *argv[])
-{
- int c;
- int add_default_hosts = 1;
-
- Options::program_name = argv[0];
- ACE_Get_Opt getopt (argc, argv, "?aA:bdF:f:hH:Llp:rRsSt:w:");
-
- while ((c = getopt ()) != -1)
- {
- switch (c)
- {
- case '?':
- Options::print_usage_and_die (0);
- /* NOTREACHED */
- case 'A':
- Multicast_Manager::add_host (getopt.optarg);
- break;
- case 'a':
- Options::protocol_type = PROTO_ALL;
- break;
- case 'b':
- Options::set_opt (Options::BE_A_DAEMON);
- break;
- case 'd':
- Options::set_opt (Options::DEBUG);
- break;
- case 'f':
- Options::friend_file = getopt.optarg;
- break;
- case 'F':
- if (Multicast_Manager::insert_hosts_from_file (getopt.optarg) < 0)
- ACE_DEBUG ((LM_DEBUG,
- "%p%a\n",
- Options::program_name,
- 1));
- add_default_hosts = 0;
- break;
- case 'H':
- Multicast_Manager::add_host (getopt.optarg);
- add_default_hosts = 0;
- break;
- case 'h':
- Options::print_usage_and_die (1);
- /* NOTREACHED */
- case 'L':
- Options::set_opt (Options::PRINT_LOGIN_NAME);
- break;
- case 'l':
- Options::set_opt (Options::USE_VERBOSE_FORMAT);
- break;
- case 'p':
- Options::port_number = atoi (getopt.optarg);
- break;
- case 'R':
- Options::protocol_type = PROTO_RUSER;
- break;
- case 'r':
- Options::set_opt (Options::REMOTE_USAGE);
- break;
- case 's':
- Options::set_opt (Options::SORT_BY_LOGIN_NAME);
- break;
- case 'S':
- Options::set_opt (Options::SORT_BY_REAL_NAME);
- break;
- case 't':
- Options::max_server_timeout = atoi (getopt.optarg);
- break;
- case 'w':
- Options::user_name = getopt.optarg;
- Options::protocol_type = PROTO_USR;
- break;
- default:
- break;
- }
- }
-
- if (Options::get_opt (Options::REMOTE_USAGE) && add_default_hosts)
- Multicast_Manager::insert_default_hosts ();
-}
diff --git a/apps/drwho/Options.h b/apps/drwho/Options.h
deleted file mode 100644
index 567c91a49f6..00000000000
--- a/apps/drwho/Options.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Options.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _OPTIONS_H
-#define _OPTIONS_H
-
-#include "global.h"
-
-class Options
-{
- // = TITLE
- // This file is used to provide a consolidated Options handling facility.
-public:
- enum Option_Types
- {
- REMOTE_USAGE = 01,
- PRINT_LOGIN_NAME = 02,
- DEBUG = 04,
- STAND_ALONE_SERVER = 010,
- SORT_BY_LOGIN_NAME = 020,
- SORT_BY_REAL_NAME = 040,
- USE_VERBOSE_FORMAT = 0100,
- BE_A_DAEMON = 0200
- };
-
- // Different types of messages.
- enum Protocol_Types
- {
- PROTO_USR = 1, // Only return info on one user.
- PROTO_ALL = 2, // Return info on all users logged in around the system.
- PROTO_FLO = 3, // Return info on friends logged in.
- PROTO_RUSER = 4, // Return info in ruser format!
- PROTO_RWHO = 5, // Return info in rwho format.
- PROTO_WHO = 6, // Return info in who format.
- PROTO_RUPTIME = 7 // Return info in ruptime format.
- };
-
- static void set_options (int argc, char *argv[]);
- static void set_opt (Option_Types opt);
- static int get_opt (Option_Types opt);
-
- static short port_number;
- static Protocol_Types protocol_type;
- static int max_server_timeout;
- static char *program_name;
- static const char *friend_file;
- static char *user_name;
-
- static void print_usage_and_die (int long_msg);
- static u_int option_word;
-};
-
-#endif /* _OPTIONS_H */
diff --git a/apps/drwho/PMC_All.cpp b/apps/drwho/PMC_All.cpp
deleted file mode 100644
index 2f599150785..00000000000
--- a/apps/drwho/PMC_All.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-// $Id$
-
-#include "global.h"
-#include "Options.h"
-#include "HT_Client.h"
-#include "PMC_All.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-// This function is pretty much a no-op that just sets up the
-// appropriate lookup function to use.
-
-int
-PMC_All::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_All::encode\n"));
-
- ACE_NEW_RETURN (this->ss,
- HT_Client,
- -1);
-
- SET_PACKET_TYPE (packet, Options::PROTO_ALL);
-
- char *buf_ptr = SKIP_PACKET_TYPE (packet);
-
- packet_length = buf_ptr - packet;
- return 1;
-}
-
-// This method is responsible for transforming the msg from the server
-// back into a form usable by the client. Note that it reads the
-// REAL_NAME from the packet (since the server placed it there)...
-
-int
-PMC_All::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_All::decode, packet_length = %d\n",
- packet_length));
-
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- char *cp = packet;
- int remote_users = 0;
-
- sscanf (cp,
- "Users %d",
- &remote_users);
-
- this->increment_total_users (remote_users);
-
- for (cp = (char *) ACE::strend (cp);
- *cp != '\n';
- cp++)
- {
- // Skip over the LOGIN_NAME.
-
- char *login_name = cp;
- char *real_name = cp = (char *) ACE::strend (cp);
-
- for (cp = (char *) ACE::strend (cp);
- *(cp = this->handle_protocol_entries (cp, login_name, real_name)) != '\t';
- )
- continue;
- }
-
- return 1;
-}
-
-Protocol_Record *
-PMC_All::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = PM_Client::insert_protocol_info (protocol_record);
- int length = ACE_OS::strlen (prp->set_real (ACE::strnew (protocol_record.get_real ())));
-
- if (length > this->max_key_length)
- this->max_key_length = length;
-
- return prp;
-}
-
-void
-PMC_All::process (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "remote users logged on\n"));
- PM_Client::process ();
-}
-
-PMC_All::PMC_All (void)
-{
-}
diff --git a/apps/drwho/PMC_All.h b/apps/drwho/PMC_All.h
deleted file mode 100644
index 308388adf4f..00000000000
--- a/apps/drwho/PMC_All.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_All.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMC_ALL_H
-#define _PMC_ALL_H
-
-#include "PM_Client.h"
-
-class PMC_All : public PM_Client
-{
- // = TITLE
- // Provides the client's lookup table abstraction for `all' users...
-
-protected:
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-
-public:
- PMC_All (void);
- virtual void process (void);
-};
-
-#endif /* _PMC_ALL_H */
diff --git a/apps/drwho/PMC_Flo.cpp b/apps/drwho/PMC_Flo.cpp
deleted file mode 100644
index 72758191d00..00000000000
--- a/apps/drwho/PMC_Flo.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "BS_Client.h"
-#include "PMC_Flo.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-// This function "encodes" a list of friends by putting the userid's
-// in a contiguous block. This block can then be transmitted over to
-// the network to servers on other subnets. Several things are added
-// to make decoding easier on the other end:
-//
-// * A count of the number of friends is prepended (assumption: there
-// are no more than 9999999 friends... ;-))
-// * The login userids are separated by a single space. */
-
-int
-PMC_Flo::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Flo::encode"));
-
- ACE_NEW_RETURN (this->ss,
- BS_Client,
- -1);
-
- SET_PACKET_TYPE (packet, Options::PROTO_FLO);
- char *buf_ptr = SKIP_PACKET_TYPE (packet);
-
- sprintf (buf_ptr,
- "%d",
- this->friend_count ());
-
- buf_ptr += MAXUSERIDNAMELEN;
-
- // Iterate through all the friends, copying them into the packet
- // buffer.
-
- for (Protocol_Record *prp; (prp = this->get_next_friend ()) != 0; )
- buf_ptr = ACE_OS::strecpy (buf_ptr,
- prp->get_login ());
-
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- return 1;
-}
-
-// This method is responsible for transforming the msg from the server
-// back into a form usable by the client.
-
-int
-PMC_Flo::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Flo::decode, packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- char *cp = packet;
- int remote_users = 0;
-
- sscanf (cp,
- "Users %d",
- &remote_users);
-
- this->increment_total_users (remote_users);
-
- for (cp = (char *) ACE::strend (cp);
- *cp != '\n';
- cp++)
- {
- char *login_name = cp;
-
- for (cp = (char *) ACE::strend (cp);
- *(cp = this->handle_protocol_entries (cp, login_name)) != '\t';
-)
- continue;
- }
-
- return 1;
-}
-
-Protocol_Record *
-PMC_Flo::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = PM_Client::insert_protocol_info (protocol_record);
- int length = ACE_OS::strlen (prp->get_real ());
-
- if (length > this->max_key_length)
- this->max_key_length = length;
-
- return prp;
-}
-
-void
-PMC_Flo::process (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "remote friends logged on\n"));
- PM_Client::process ();
-}
-
-PMC_Flo::PMC_Flo (void)
-{
-}
diff --git a/apps/drwho/PMC_Flo.h b/apps/drwho/PMC_Flo.h
deleted file mode 100644
index 305a8d8803c..00000000000
--- a/apps/drwho/PMC_Flo.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_Flo.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMC_FLO_H
-#define _PMC_FLO_H
-
-#include "PM_Client.h"
-
-class PMC_Flo : public PM_Client
-{
- // = TITLE
- // Provides the client's lookup table abstraction for `flo' users...
-
-public:
- PMC_Flo (void);
- virtual void process (void);
-
-protected:
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMC_FLO_H */
diff --git a/apps/drwho/PMC_Ruser.cpp b/apps/drwho/PMC_Ruser.cpp
deleted file mode 100644
index 79adac7b9ed..00000000000
--- a/apps/drwho/PMC_Ruser.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-// $Id$
-
-#include "global.h"
-#include "Options.h"
-#include "HT_Client.h"
-#include "PMC_Ruser.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-// This function is pretty much a no-op that just sets up the
-// appropriate lookup function to use.
-
-int
-PMC_Ruser::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Ruser::encode\n"));
-
- ACE_NEW_RETURN (this->ss,
- HT_Client,
- -1);
-
- SET_PACKET_TYPE (packet, Options::PROTO_RUSER);
-
- char *buf_ptr = SKIP_PACKET_TYPE (packet);
-
- *buf_ptr++ = char (Options::get_opt (Options::PRINT_LOGIN_NAME));
-
- packet_length = buf_ptr - packet;
- return 1;
-}
-
-// This method is responsible for transforming the msg from the server
-// back into a form usable by the client. Note that it reads the
-// REAL_NAME from the packet (since the server placed it there)...
-
-int
-PMC_Ruser::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Ruser::decode, packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- char *cp = packet;
- int remote_users = 0;
-
- sscanf (cp,
- "Users %d",
- &remote_users);
-
- this->increment_total_users (remote_users);
-
- for (cp = (char *) ACE::strend (cp);
- *cp != '\n';
- cp++)
- {
- char *host_name = cp;
-
- for (cp = (char *) ACE::strend (cp);
- *(cp = this->handle_protocol_entries (cp, host_name)) != '\t'; )
- continue;
- }
-
- return 1;
-}
-
-Protocol_Record *
-PMC_Ruser::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = this->ss->insert (protocol_record.get_host (),
- MAXHOSTNAMELEN);
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
- Drwho_Node *np = this->get_drwho_node (ACE::strnnew (current_node->get_login_name (),
- MAXUSERIDNAMELEN),
- prp->drwho_list_);
- int length = ACE_OS::strlen (prp->get_host ());
-
- np->set_real_name (ACE::strnew (current_node->get_real_name ()));
-
- if (np->get_active_count () < current_node->get_active_count ())
- np->set_active_count (current_node->get_active_count ());
- if (np->get_inactive_count () < current_node->get_inactive_count())
- np->set_inactive_count (current_node->get_inactive_count ());
-
- if (length > this->max_key_length)
- this->max_key_length = length;
-
- return prp;
-}
-
-char *
-PMC_Ruser::handle_protocol_entries (const char *cp,
- const char *host_name,
- const char *)
-{
- static Protocol_Record protocol_record (1);
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
-
- protocol_record.set_host (host_name);
- current_node->set_inactive_count (atoi (cp));
- current_node->set_active_count (atoi (cp = ACE_OS::strchr (cp, ' ') + 1));
- current_node->set_login_name (cp = ACE_OS::strchr (cp, ' ') + 1);
- current_node->set_real_name (cp = ACE_OS::strchr (cp, '\0') + 1);
-
- this->insert_protocol_info (protocol_record);
-
- return (char *) ACE::strend (cp);
-}
-
-void
-PMC_Ruser::process (void)
-{
- const char *(Drwho_Node::*get_name)(void);
-
- if (Options::get_opt (Options::PRINT_LOGIN_NAME))
- get_name = &Drwho_Node::get_login_name;
- else
- get_name = &Drwho_Node::get_real_name;
-
- for (Protocol_Record *prp;
- (prp = this->Protocol_Manager::get_each_friend ()) != 0;
- )
- {
- ACE_DEBUG ((LM_DEBUG,
- "%-*s ",
- this->max_key_length,
- prp->get_host ()));
-
- for (Drwho_Node *np = prp->get_drwho_list (); ;)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s",
- (np->*get_name) ()));
-
- if (np->get_inactive_count () != 0)
- {
- if (np->get_active_count () != 0)
- ACE_DEBUG ((LM_DEBUG,
- "*(%d)",
- np->get_active_count ()));
- }
- else if (np->get_active_count () > 1)
- ACE_DEBUG ((LM_DEBUG,
- "*(%d)",
- np->get_active_count ()));
- else if (np->get_active_count () == 1)
- ACE_DEBUG ((LM_DEBUG,
- "*"));
-
- np = np->next_;
- if (np == 0)
- break;
- else if (Options::get_opt (Options::PRINT_LOGIN_NAME))
- ACE_DEBUG ((LM_DEBUG,
- " "));
- else
- ACE_DEBUG ((LM_DEBUG,
- ", "));
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-}
-
-PMC_Ruser::PMC_Ruser (void)
-{
-}
diff --git a/apps/drwho/PMC_Ruser.h b/apps/drwho/PMC_Ruser.h
deleted file mode 100644
index fe3d3c23363..00000000000
--- a/apps/drwho/PMC_Ruser.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_Ruser.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMC_RUSER_H
-#define _PMC_RUSER_H
-
-#include "PM_Client.h"
-
-class PMC_Ruser : public PM_Client
-{
- // = TITLE
- // Provides the client's lookup table abstraction for `ruser' users...
-
-public:
- PMC_Ruser (void);
- virtual void process (void);
-
-protected:
- char *handle_protocol_entries (const char *cp,
- const char *host_name,
- const char * = 0);
- Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMC_RUSER_H */
diff --git a/apps/drwho/PMC_Usr.cpp b/apps/drwho/PMC_Usr.cpp
deleted file mode 100644
index c406e3e9d16..00000000000
--- a/apps/drwho/PMC_Usr.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "SL_Client.h"
-#include "PMC_Usr.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-int
-PMC_Usr::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Usr::encode"));
-
- ACE_NEW_RETURN (this->ss,
- SL_Client (this->usr_name),
- -1);
-
- SET_PACKET_TYPE (packet, Options::PROTO_USR);
-
- char *buf_ptr = SKIP_PACKET_TYPE (packet);
-
- buf_ptr = ACE_OS::strecpy (buf_ptr,
- this->get_next_friend ()->get_login ());
-
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- return 1;
-}
-
-// This method is responsible for transforming the msg from the server
-// back into a form usable by the client.
-
-int
-PMC_Usr::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "in PMC_Usr::decode, packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- char *cp = packet;
-
- if (*cp != '\n')
- {
- char *login_name = cp;
-
- for (cp = (char *) ACE::strend (cp);
- *(cp = this->handle_protocol_entries (cp, login_name)) != '\t';
- )
- continue;
- }
-
- return 1;
-}
-
-void
-PMC_Usr::process (void)
-{
- Protocol_Record *prp = this->get_each_friend ();
- Drwho_Node *np = prp->get_drwho_list ();
-
- if (np == 0)
- ACE_DEBUG ((LM_DEBUG,
- "<unknown>"));
- else
- {
- // First try to get a login session that is active...
-
- for (; np != 0; np = np->next_)
- if (np->active_count_ > 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s ",
- np->get_host_name ()));
-
- if (Options::get_opt (Options::USE_VERBOSE_FORMAT) == 0)
- return;
- }
-
- for (np = prp->get_drwho_list ();
- np != 0;
- np = np->next_)
- if (np->active_count_ == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s ",
- np->get_host_name ()));
-
- if (Options::get_opt (Options::USE_VERBOSE_FORMAT) == 0)
- return;
- }
- }
-}
-
-PMC_Usr::PMC_Usr (char *u_name)
- : usr_name (u_name)
-{
-}
diff --git a/apps/drwho/PMC_Usr.h b/apps/drwho/PMC_Usr.h
deleted file mode 100644
index f98c8325b83..00000000000
--- a/apps/drwho/PMC_Usr.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMC_Usr.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMC_USR_H
-#define _PMC_USR_H
-
-#include "PM_Client.h"
-
-class PMC_Usr : public PM_Client
-{
- // = TITLE
- // Provides the client's lookup table abstraction for `Usr' users...
-public:
- PMC_Usr (char *usr_name);
- virtual void process (void);
-
-protected:
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-
-private:
- char *usr_name;
-};
-
-#endif /* _PMC_USR_H */
diff --git a/apps/drwho/PMS_All.cpp b/apps/drwho/PMS_All.cpp
deleted file mode 100644
index a942b498273..00000000000
--- a/apps/drwho/PMS_All.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "HT_Server.h"
-#include "PMS_All.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-// This function packs the located friends userids, plus the machines
-// they are logged into (along with the inactive and active counts on
-// each machine) into a buffer that is subsequently transmitted back
-// to the client across the network. Note that this function encodes
-// the REAL_NAME of the user in the packet.
-
-int
-PMS_All::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_All::encode"));
-
- Protocol_Record *prp;
- char *buf_ptr = packet;
-
- sprintf (buf_ptr,
- "Users %d",
- this->get_total_users ());
- buf_ptr += ACE_OS::strlen (buf_ptr) + 1;
-
- // We only send back info on friends that we actually see logged in.
-
- for (;
- (prp = this->get_next_friend ()) != 0;
- *buf_ptr++ = '\t')
- buf_ptr =
- this->handle_protocol_entries (ACE_OS::strecpy
- (ACE_OS::strecpy (buf_ptr,
- prp->get_login ()),
- prp->get_real ()),
- prp->get_drwho_list ());
-
- *buf_ptr++ = '\n';
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- return 1;
-}
-
-// This function takes a packet received from the client and calls the
-// appropriate Protocol_Manager routine to build the local table of
-// friends.
-
-int
-PMS_All::decode (char *, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_All::decode, packet_length = %d\n",
- packet_length));
-
- ACE_NEW_RETURN (this->ss,
- HT_Server,
- -1);
- return 1;
-}
-
-// We only want the user's real name, not the gecos junk after the
-// first leading ','. However, if the real-name is not in the
-// password file, just return the login name instead.
-
-Protocol_Record *
-PMS_All::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = PM_Server::insert_protocol_info (protocol_record);
- passwd *pwent = getpwnam (prp->get_login ());
- char *cp = (char *) ACE_OS::strchr (prp->set_real
- (pwent == 0
- ? prp->get_login () :
- ACE::strnew (pwent->pw_gecos)),
- ',');
- if (cp != 0)
- *cp = '\0';
-
- return prp;
-}
-
-PMS_All::PMS_All (void)
-{
-}
diff --git a/apps/drwho/PMS_All.h b/apps/drwho/PMS_All.h
deleted file mode 100644
index 41459f57cbe..00000000000
--- a/apps/drwho/PMS_All.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_All.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMS_ALL_H
-#define _PMS_ALL_H
-
-#include "PM_Server.h"
-
-class PMS_All : public PM_Server
-{
- // = TITLE
- // Provides the server's lookup table abstraction for `all' users...
-public:
- PMS_All (void);
-
-protected:
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMS_ALL_H */
diff --git a/apps/drwho/PMS_Flo.cpp b/apps/drwho/PMS_Flo.cpp
deleted file mode 100644
index 2fecac44057..00000000000
--- a/apps/drwho/PMS_Flo.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "BS_Server.h"
-#include "PMS_Flo.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-// This function packs the located friends userids, plus the machines
-// they are logged into (along with the inactive and active counts on
-// each machine) into a buffer that is subsequently transmitted back
-// to the client across the network.
-
-int
-PMS_Flo::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Flo::encode"));
-
- Protocol_Record *prp;
- char *buf_ptr = packet;
-
- sprintf (buf_ptr,
- "Users %d",
- this->get_total_users ());
- buf_ptr += ACE_OS::strlen (buf_ptr) + 1;
-
- // We only send back info on friends that we actually see logged in.
-
- for (;
- (prp = this->get_next_friend ()) != 0;
- *buf_ptr++ = '\t')
- buf_ptr = this->handle_protocol_entries (ACE_OS::strecpy (buf_ptr,
- prp->get_login ()),
- prp->get_drwho_list ());
- *buf_ptr++ = '\n';
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- return 1;
-}
-
-// This function takes a packet received from the client and calls the
-// appropriate Protocol_Manager routine to build the local table of
-// friends.
-
-int
-PMS_Flo::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Flo::decode, packet_length = %d\n",
- packet_length));
-
- ACE_NEW_RETURN (this->ss,
- BS_Server (packet),
- -1);
- return 1;
-}
-
-PMS_Flo::PMS_Flo (void)
-{
-}
diff --git a/apps/drwho/PMS_Flo.h b/apps/drwho/PMS_Flo.h
deleted file mode 100644
index b7fefa5abec..00000000000
--- a/apps/drwho/PMS_Flo.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_Flo.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMS_FLO_H
-#define _PMS_FLO_H
-
-#include "PM_Server.h"
-
-class PMS_Flo : public PM_Server
-{
- // = TITLE
- // Provides the server's lookup table abstraction for `flo' users...
-
-public:
- PMS_Flo (void);
-
-protected:
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMS_FLO_H */
diff --git a/apps/drwho/PMS_Ruser.cpp b/apps/drwho/PMS_Ruser.cpp
deleted file mode 100644
index 0f4288a868b..00000000000
--- a/apps/drwho/PMS_Ruser.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "HT_Server.h"
-#include "PMS_Ruser.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-// This function packs the located friends userids, plus the machines
-// they are logged into (along with the inactive and active counts on
-// each machine) into a buffer that is subsequently transmitted back
-// to the client across the network. Note that this function encodes
-// the REAL_NAME of the user in the packet.
-
-int
-PMS_Ruser::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Ruser::encode"));
-
- Protocol_Record *prp;
- char *buf_ptr = packet;
-
- sprintf (buf_ptr,
- "Users %d",
- this->get_total_users ());
- buf_ptr += ACE_OS::strlen (buf_ptr) + 1;
-
- // We only send back info on hosts that we actually see.
-
- for (;
- (prp = this->get_next_friend ()) != 0;
- *buf_ptr++ = '\t')
- buf_ptr = this->handle_protocol_entries (ACE_OS::strecpy (buf_ptr,
- prp->get_host ()),
- prp->get_drwho_list ());
-
- *buf_ptr++ = '\n';
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- return 1;
-}
-
-// This function takes a packet received from the client and crusers
-// the appropriate Protocol_Manager routine to build the local table
-// of friends.
-
-int
-PMS_Ruser::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Ruser::decode, packet_length = %d\n",
- packet_length));
-
- if (*packet)
- Options::set_opt (Options::PRINT_LOGIN_NAME);
-
- ACE_NEW_RETURN (this->ss,
- HT_Server,
- -1);
- return 1;
-}
-
-Protocol_Record *
-PMS_Ruser::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
- Protocol_Record *prp = this->ss->insert (current_node->get_host_name (),
- MAXHOSTNAMELEN);
- Drwho_Node *np = this->get_drwho_node (ACE::strnnew (protocol_record.get_login (),
- MAXUSERIDNAMELEN),
- prp->drwho_list_);
-
- if (Options::get_opt (Options::PRINT_LOGIN_NAME))
- np->set_real_name ("");
- else
- {
- passwd *pwent = getpwnam (np->get_login_name ());
- char *cp =
- (char *) ACE_OS::strchr (np->set_real_name (pwent == 0
- ? np->get_login_name ()
- : ACE::strnew (pwent->pw_gecos)),
- ',');
- if (cp != 0)
- *cp = '\0';
- }
-
- if (current_node->get_idle_time () >= MAX_USER_TIMEOUT)
- np->inactive_count_++;
- else
- np->active_count_++;
-
- return prp;
-}
-
-char *
-PMS_Ruser::handle_protocol_entries (char *buf_ptr,
- Drwho_Node *np)
-{
- for (; np != 0; np = np->next_)
- {
- sprintf (buf_ptr,
- "%d %d ",
- np->get_inactive_count (),
- np->get_active_count ());
- buf_ptr += ACE_OS::strlen (buf_ptr);
-
- buf_ptr = ACE_OS::strecpy (ACE_OS::strecpy (buf_ptr,
- np->get_login_name ()),
- np->get_real_name ());
- }
-
- return buf_ptr;
-}
-
-PMS_Ruser::PMS_Ruser (void)
-{
-}
diff --git a/apps/drwho/PMS_Ruser.h b/apps/drwho/PMS_Ruser.h
deleted file mode 100644
index f26e916549f..00000000000
--- a/apps/drwho/PMS_Ruser.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_Ruser.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMS_RUSER_H
-#define _PMS_RUSER_H
-
-#include "PM_Server.h"
-
-class PMS_Ruser : public PM_Server
-{
- // = TITLE
- // Provides the server's lookup table abstraction for `ruser' users...
-
-public:
- PMS_Ruser (void);
-
-protected:
- virtual char *handle_protocol_entries (char *bp, Drwho_Node *hp);
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMS_RUSER_H */
diff --git a/apps/drwho/PMS_Usr.cpp b/apps/drwho/PMS_Usr.cpp
deleted file mode 100644
index 6c1138734ca..00000000000
--- a/apps/drwho/PMS_Usr.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "SL_Server.h"
-#include "PMS_Usr.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-// This function "encodes" a list of friends by putting the userid's in
-// a contiguous block. This block can then be transmitted over to the
-// network to servers on other subnets. Several things are added to
-// make decoding easier on the other end:
-//
-// * A count of the number of friends is prepended (assumption: there
-// are no more than 9999999 friends... ;-))
-// * The login userids are separated by a single space. */
-
-int
-PMS_Usr::encode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Usr::encode"));
-
- char *buf_ptr = packet;
-
- // We only send back info on friend that is actually logged in.
-
- Protocol_Record *prp = this->get_next_friend ();
-
- if (prp)
- {
- buf_ptr = this->handle_protocol_entries (ACE_OS::strecpy (buf_ptr,
- prp->get_login ()),
- prp->get_drwho_list ());
- *buf_ptr++ = '\t';
- }
-
- *buf_ptr++ = '\n';
- packet_length = buf_ptr - packet;
-
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- return 1;
-}
-
-// This function takes a packet received from the client and calls the
-// appropriate Protocol_Manager routine to build the local table of
-// friends.
-
-int
-PMS_Usr::decode (char *packet, int &packet_length)
-{
- if (Options::get_opt (Options::DEBUG) != 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "in PMS_Usr::decode, packet_length = %d\n",
- packet_length));
- ACE_OS::write (ACE_STDERR, packet, packet_length);
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
-
- ACE_NEW_RETURN (this->ss,
- SL_Server (packet),
- -1);
- return 1;
-}
-
-PMS_Usr::PMS_Usr (void)
-{
-}
diff --git a/apps/drwho/PMS_Usr.h b/apps/drwho/PMS_Usr.h
deleted file mode 100644
index 1f29e43d653..00000000000
--- a/apps/drwho/PMS_Usr.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PMS_Usr.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PMS_USR_H
-#define _PMS_USR_H
-
-#include "PM_Server.h"
-
-class PMS_Usr : public PM_Server
-{
- // = TITLE
- // Provides the client's lookup table abstraction for `Usr' users...
-
-public:
- PMS_Usr (void);
-
-protected:
- virtual int encode (char *packet, int &total_bytes);
- virtual int decode (char *packet, int &total_bytes);
-};
-
-#endif /* _PMS_USR_H */
diff --git a/apps/drwho/PM_Client.cpp b/apps/drwho/PM_Client.cpp
deleted file mode 100644
index 58f1d318adf..00000000000
--- a/apps/drwho/PM_Client.cpp
+++ /dev/null
@@ -1,138 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "PM_Server.h"
-#include "PM_Client.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-// This function is used to merge the LOGIN_NAME from server HOST_NAME
-// into the userids kept on the client's side. Note that we must
-// allocate memory for HOST_NAME...
-
-Protocol_Record *
-PM_Client::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = this->ss->insert (protocol_record.get_login ());
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
- Drwho_Node *np = this->get_drwho_node (ACE::strnew (current_node->get_host_name ()),
- prp->drwho_list_);
-
- // Update the active and inactive counts.
-
- if (np->get_active_count () < current_node->get_active_count ())
- {
- np->set_active_count (current_node->get_active_count ());
- prp->is_active_ = 1;
- }
-
- if (np->get_inactive_count () < current_node->get_inactive_count())
- np->set_inactive_count (current_node->get_inactive_count ());
-
- return prp;
-}
-
-// This routine does all the dirty work, and actually prints out the
-// friends info in a nicely formatted manner.
-
-void
-PM_Client::process (void)
-{
- const char *(Protocol_Record::*get_name)(void);
-
- if (Options::get_opt (Options::PRINT_LOGIN_NAME))
- get_name = &Protocol_Record::get_login;
- else
- get_name = &Protocol_Record::get_real;
-
- int active_friends = 0;
- int users = this->Protocol_Manager::get_total_users ();
-
- ACE_DEBUG ((LM_DEBUG,
- "------------------------\n"));
-
- if (Options::get_opt (Options::PRINT_LOGIN_NAME))
- this->max_key_length = MAXUSERIDNAMELEN;
-
- // Goes through the queue of all the logged in friends and prints
- // out the associated information.
-
- for (Protocol_Record *prp = this->Protocol_Manager::get_each_friend ();
- prp != 0;
- prp = this->Protocol_Manager::get_each_friend ())
- {
- ACE_DEBUG ((LM_DEBUG,
- "%c%-*s [", (prp->is_active_ != 0 ? '*' : ' '),
- this->max_key_length,
- (prp->*get_name) ()));
-
- for (Drwho_Node *np = prp->get_drwho_list (); ;)
- {
- ACE_DEBUG ((LM_DEBUG,
- np->get_host_name (),
- stdout));
-
- active_friends += np->get_active_count ();
-
- if (np->get_inactive_count () != 0)
- {
- if (np->get_active_count () != 0)
- ACE_DEBUG ((LM_DEBUG,
- "*(%d)",
- np->get_active_count ()));
- }
- else if (np->get_active_count () > 1)
- ACE_DEBUG ((LM_DEBUG,
- "*(%d)",
- np->get_active_count ()));
- else if (np->get_active_count () == 1)
- ACE_DEBUG ((LM_DEBUG,
- "*"));
-
- np = np->next_;
- if (np == 0)
- break;
- else
- ACE_DEBUG ((LM_DEBUG,
- " "));
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "]\n"));
- }
-
- ACE_DEBUG ((LM_DEBUG,
- "------------------------\n"));
- ACE_DEBUG ((LM_DEBUG,
- "friends: %d\tusers: %d\n",
- active_friends,
- users));
-}
-
-char *
-PM_Client::handle_protocol_entries (const char *cp,
- const char *login_name,
- const char *real_name)
-{
- static Protocol_Record protocol_record (1);
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
-
- protocol_record.set_login (login_name);
- protocol_record.set_real (real_name);
- current_node->set_inactive_count (atoi (cp));
- current_node->set_active_count (atoi (cp = ACE_OS::strchr (cp, ' ') + 1));
- current_node->set_host_name (cp = ACE_OS::strchr (cp, ' ') + 1);
-
- this->insert_protocol_info (protocol_record);
-
- return (char *) ACE::strend (cp);
-}
-
-PM_Client::PM_Client (void)
- : max_key_length (0)
-{
-}
-
-PM_Client::~PM_Client (void)
-{
-}
diff --git a/apps/drwho/PM_Client.h b/apps/drwho/PM_Client.h
deleted file mode 100644
index f44ab84f69f..00000000000
--- a/apps/drwho/PM_Client.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PM_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PM_CLIENT_H
-#define _PM_CLIENT_H
-
-#include "Protocol_Manager.h"
-
-class PM_Client : public Protocol_Manager
-{
- // = TITLE
- // Provides the client side of the friend manager lookup table abstraction.
-public:
- PM_Client (void);
- virtual ~PM_Client (void);
-
- virtual int encode (char *packet, int &total_bytes) = 0;
- virtual int decode (char *packet, int &total_bytes) = 0;
- virtual void process (void);
-
-protected:
- int max_key_length;
-
- virtual char *handle_protocol_entries (const char *cp,
- const char *key_name1,
- const char *key_name2 = 0);
-
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
-};
-
-#endif /* _PM_CLIENT_H */
-
diff --git a/apps/drwho/PM_Server.cpp b/apps/drwho/PM_Server.cpp
deleted file mode 100644
index 0b946f5cca9..00000000000
--- a/apps/drwho/PM_Server.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Rwho_DB_Manager.h"
-#include "PM_Server.h"
-#include "ace/ACE.h"
-
-// This is the main method for the server side of things. It reads
-// the RWHO file on the local machine and inserts HOST_NAME
-// information for each LOGIN_NAME that is a friend into the
-// DRWHO_LIST. This function is also responsible for determining
-// whether a given LOGIN_NAME is currently idle or not.
-
-int
-PM_Server::process (void)
-{
- RWho_DB_Manager ru;
- Protocol_Record protocol_record (1);
-
- while (ru.get_next_user (protocol_record) > 0)
- this->insert_protocol_info (protocol_record);
-
- return 1;
-}
-
-// Insert the HOST_NAME into the server's lookup table on behalf of
-// user LOGIN_NAME. Note that we need to allocate memory for
-// HOST_NAME...
-
-Protocol_Record *
-PM_Server::insert_protocol_info (Protocol_Record &protocol_record)
-{
- Protocol_Record *prp = this->ss->insert (protocol_record.get_login ());
-
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
-
- if (current_node->get_idle_time () < MAX_USER_TIMEOUT)
- this->increment_total_users ();
-
- if (prp)
- {
- Drwho_Node *np =
- this->get_drwho_node (ACE::strnew (current_node->get_host_name ()),
- prp->drwho_list_);
-
- if (current_node->get_idle_time () >= MAX_USER_TIMEOUT)
- np->inactive_count_++;
- else
- np->active_count_++;
- }
-
- return prp;
-}
-
-// Put the inactive and active counts, plus the hostname into the
-// packet.
-
-char *
-PM_Server::handle_protocol_entries (char *buf_ptr,
- Drwho_Node *np)
-{
-
- for (; np != 0; np = np->next_)
- {
- sprintf (buf_ptr,
- "%d %d %s",
- np->get_inactive_count (),
- np->get_active_count (),
- np->get_host_name ());
- buf_ptr += strlen (buf_ptr) + 1;
- }
-
- return buf_ptr;
-}
-
-PM_Server::PM_Server (void)
-{
-}
-
-PM_Server::~PM_Server (void)
-{
-}
diff --git a/apps/drwho/PM_Server.h b/apps/drwho/PM_Server.h
deleted file mode 100644
index 2a355c8e262..00000000000
--- a/apps/drwho/PM_Server.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// PM_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PM_SERVER_H
-#define _PM_SERVER_H
-
-#include "Protocol_Manager.h"
-
-class PM_Server : public Protocol_Manager
-{
- // = TITLE
- // Handle the server's lookup table abstraction.
-
-public:
- PM_Server (void);
- virtual ~PM_Server (void);
-
- virtual int encode (char *packet, int &total_bytes) = 0;
- virtual int decode (char *packet, int &total_bytes) = 0;
- virtual int process (void);
-
-protected:
- virtual char *handle_protocol_entries (char *bp,
- Drwho_Node *hp);
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record);
-};
-
-#endif /* _PM_SERVER_H */
diff --git a/apps/drwho/Protocol_Manager.cpp b/apps/drwho/Protocol_Manager.cpp
deleted file mode 100644
index 43ef6e4148e..00000000000
--- a/apps/drwho/Protocol_Manager.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// $Id$
-
-#include "ace/Log_Msg.h"
-
-#include "Options.h"
-#include "new.h"
-#include "Protocol_Manager.h"
-
-// Returns a pointer to the Drwho_Node associated with HOST_NAME (if
-// it exists, otherwise a new node is created. Note that if a
-// Drwho_Node is found it is moved to the front of the list so that
-// subsequent finds are faster (i.e., self-organizing!)
-
-Drwho_Node *
-Protocol_Manager::get_drwho_node (char *key_name, Drwho_Node *&head)
-{
- Drwho_Node **temp = &head;
- for (; *temp != 0; temp = &(*temp)->next_)
- if (ACE_OS::strcmp (key_name,
- (*temp)->get_login_name ()) == 0)
- break;
-
- if (*temp == 0)
- ACE_NEW_RETURN (head,
- Drwho_Node (key_name, head),
- 0);
- else
- {
- Drwho_Node *t = *temp;
-
- *temp = (*temp)->next_;
- t->next_ = head;
-
- head = t;
- }
-
- return head;
-}
-
-Protocol_Manager::Protocol_Manager (void)
- : total_users (0)
-{
-}
-
-Protocol_Manager::~Protocol_Manager (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Protocol_Manager\n"));
-}
-
-// Returns the next friend in the sequence of sorted friends.
-
-Protocol_Record *
-Protocol_Manager::get_next_friend (void)
-{
- return this->ss->get_next_entry ();
-}
-
-Protocol_Record *
-Protocol_Manager::get_each_friend (void)
-{
- return this->ss->get_each_entry ();
-}
-
-// Returns the number of friends.
-
-int
-Protocol_Manager::friend_count (void)
-{
- return this->ss->n_elems ();
-}
-
-// Returns total number of users logged in throughout the system.
-
-int
-Protocol_Manager::get_total_users (void)
-{
- return Protocol_Manager::total_users;
-}
-
-void
-Protocol_Manager::increment_total_users (int remote_users)
-{
- Protocol_Manager::total_users += remote_users;
-}
diff --git a/apps/drwho/Protocol_Manager.h b/apps/drwho/Protocol_Manager.h
deleted file mode 100644
index d61e752c8df..00000000000
--- a/apps/drwho/Protocol_Manager.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Protocol_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PROTOCOL_MANAGER_H
-#define _PROTOCOL_MANAGER_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Options.h"
-#include "Search_Struct.h"
-#include "Protocol_Record.h"
-
-class Protocol_Manager
-{
- // = TITLE
- // A base class that consolidates friend management functionality
- // shared by both clients and servers.
-public:
- Protocol_Manager (void);
- virtual ~Protocol_Manager (void);
-
- virtual int encode (char *packet, int &total_bytes) = 0;
- virtual int decode (char *packet, int &total_bytes) = 0;
-
-protected:
- int total_users;
- Search_Struct *ss;
-
- int friend_count (void);
-
- Drwho_Node *get_drwho_node (char *host_name, Drwho_Node *&head);
- int get_total_users (void);
- void increment_total_users (int remote_users = 1);
-
- Protocol_Record *get_next_friend (void);
- Protocol_Record *get_each_friend (void);
-
- virtual Protocol_Record *insert_protocol_info (Protocol_Record &protocol_record) = 0;
-};
-
-#endif /* _PROTOCOL_MANAGER_H */
diff --git a/apps/drwho/Protocol_Record.cpp b/apps/drwho/Protocol_Record.cpp
deleted file mode 100644
index a04454e51bb..00000000000
--- a/apps/drwho/Protocol_Record.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Protocol_Record.h"
-#include "ace/Log_Msg.h"
-
-// Static initialization.
-
-Drwho_Node Protocol_Record::drwho_node_;
-
-Protocol_Record::~Protocol_Record (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Protocol_Record\n"));
-
- for (Drwho_Node *np = this->get_drwho_list ();
- np != 0; )
- {
- Drwho_Node *t = np;
- np = np->next_;
- delete t;
- }
-}
-
-Protocol_Record::Protocol_Record (void)
- : key_name1_ (0),
- key_name2_ (0),
- drwho_list_ (0),
- next_ (0),
- is_active_ (0)
-{
-}
-
-Protocol_Record::Protocol_Record (int)
- : key_name1_ (0),
- key_name2_ (0),
- drwho_list_ (&Protocol_Record::drwho_node_),
- next_ (0),
- is_active_ (0)
-{
-}
-
-Protocol_Record::Protocol_Record (const char *kn1,
- Protocol_Record *next)
- : key_name1_ (kn1),
- key_name2_ (0),
- drwho_list_ (0),
- next_ (next),
- is_active_ (0)
-{
-}
-
-const char *
-Protocol_Record::get_login (void)
-{
- return this->key_name1_;
-}
-
-const char *
-Protocol_Record::set_login (const char *str)
-{
- this->key_name1_ = str;
- return str;
-}
-
-const char *
-Protocol_Record::get_real (void)
-{
- return this->key_name2_;
-}
-
-const char *
-Protocol_Record::get_host (void)
-{
- return this->key_name1_;
-}
-
-const char *
-Protocol_Record::set_host (const char *str)
-{
- this->key_name1_ = str;
- return str;
-}
-
-const char *
-Protocol_Record::set_real (const char *str)
-{
- this->key_name2_ = str;
- return str;
-}
-
-Drwho_Node *
-Protocol_Record::get_drwho_list (void)
-{
- return this->drwho_list_;
-}
diff --git a/apps/drwho/Protocol_Record.h b/apps/drwho/Protocol_Record.h
deleted file mode 100644
index 60cf250adf1..00000000000
--- a/apps/drwho/Protocol_Record.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Protocol_Record.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _PROTOCOL_RECORD_H
-#define _PROTOCOL_RECORD_H
-
-#include "Drwho_Node.h"
-
-class Protocol_Record
-{
- // = TITLE
- // Stores information about a single friend's status.
-
-public:
- Protocol_Record (void);
- Protocol_Record (int use_dummy);
- Protocol_Record (const char *key_name1,
- Protocol_Record *next = 0);
- ~Protocol_Record (void);
- const char *get_host (void);
- const char *set_host (const char *str);
- const char *get_login (void);
- const char *set_login (const char *str);
- const char *get_real (void);
- const char *set_real (const char *str);
- Drwho_Node *get_drwho_list (void);
-
- static Drwho_Node drwho_node_;
- const char *key_name1_;
- const char *key_name2_;
- Drwho_Node *drwho_list_;
- Protocol_Record *next_;
- int is_active_;
-};
-
-#endif /* _PROTOCOL_RECORD_H */
diff --git a/apps/drwho/README b/apps/drwho/README
deleted file mode 100644
index af1c4b401c7..00000000000
--- a/apps/drwho/README
+++ /dev/null
@@ -1,308 +0,0 @@
-This directory contains the "distributed rwho" (drwho) program. Drwho
-alleviates certain rwho(1) limitations. For instance it adds
-functionality that spans subnets. In addition, drwho prints a much
-more concise listing of who's logged in around a network.
-
-Below are some examples of how to use drwho.
-
-0. Start by running the server in a window or as a daemon, e.g., run
- the following on a local machine, such as tango.cs.wustl.edu:
-
-% drwho-server
-
-Then, If you'd like to find out who's logged in, try the following
-commands:
-
-1. Print out the command-line options.
-
-% drwho-client -h
-usage: ./drwho-client
--? prints a short usage message
--A append the following hostname to the list of predefined hostnames.
--a return information on *all* users remotely logged in (uses yp passwd).
--b run the server in the background (i.e., as a daemon).
--d turn on debugging.
--F use the following file contents to initialize the host list.
--f use the following file contents to initialize the friends database.
--H use the following hostname as part of the new list of hostnames.
- (this option overwrites the existing default names).
--h print a long usage message.
--L print the login name rather than the real name (which is the default).
--l print information in long format (works for all protocols).
--p set the port number (server must correspond).
--r do the remote lookups (i.e., local operations are the default).
--R print info using the rusers format.
--s sort the output by login name.
--S sort the output by real name.
--t set the amount of time we wait for servers to timeout.
--w return information on just one user.
-
-----------------------------------------
-
-2. Find out which friends are logged in (* means currently active)
-
-% drwho-client -A tango.cs.wustl.edu -r -f ~schmidt/.friends.dta
-remote friends logged on
-------------------------
-*Doug O'las [tango*(3) mambo]
- Carlos O'Ryan [tango swarm.cs.wustl.edu macarena]
- Irfan Pyarali [merengue]
- Nanbor Wang [lambada]
- Marina Spivak [mambo]
- Chris Gill [tango]
-*Vishal [merengue*(2)]
- Kirthika [tango waltz]
- Naga [tango polka]
- Alex [lindy]
- Bala [cumbia]
- Pradeep [flamenco]
- Matt Braun [lambada]
-------------------------
-friends: 5 users: 168
-
-You'll to write a friends.dta file in order for this feature to work.
-Here's one that I've got:
-
-schmidt Doug O'las
-coryan Carlos O'Ryan
-irfan Irfan Pyarali
-levine David Levine
-nanbor Nanbor Wang
-jp4 Jeff Parsons
-marina Marina Spivak
-cdgill Chris Gill
-vishal Vishal
-kirthika Kirthika
-naga Naga
-alex Alex
-bala Bala
-pradeep Pradeep
-brunsch Darrell Brunsch
-jxh James Hu
-yamuna Yamuna
-mjb2 Matt Braun
-gokhale Andy Gokhale
-fredk Fred Kuhns
-
-If you put this file in ~/.friends.dta drwho will automatically locate
-it.
-
-----------------------------------------
-
-3. Find out where a particular person is logged in:
-
-% drwho-client -A tango.cs.wustl.edu -r -w schmidt
-tango
-
-This is useful for remote commands that require a hostname, e.g.:
-
-% talk schmidt@`drwho-client -A tango.cs.wustl.edu -r -w schmidt`
-
-or
-
-% rsh `drwho-client -w schmidt` ps
- PID TTY TIME CMD
- 1844 pts/9 0:01 tcsh_6.0
- 4821 ? 0:02 perfmete
- 77 pts/20 0:01 tcsh_6.0
- 4845 pts/2 0:00 tcsh_6.0
- 4766 ? 0:00 xmessage
- 4850 pts/3 0:06 tcsh_6.0
- 5057 pts/4 0:01 tcsh_6.0
- 4826 ? 18:07 netscape
- 4802 ? 0:07 mwm
-% foreach host (`drwho -r -l -w schmidt`)
-? echo $host
-? rsh $host w | egrep schmidt
-? end
-
-----------------------------------------
-
-4. Find out everyone who is logged in everywhere!
-
-% drwho-client -A tango.cs.wustl.edu -r -a
-remote users logged on
-------------------------
- rlneblet [ascc]
- woody [fixer]
- Jyoti Parwatikar [hopscotch]
- Stephen D. Scott [occam]
- klkramer [ascc]
- dmorris [ascc]
-*pabacard [ascc*]
- sestasne [ascc]
- Sumedh Mungee [merengue lindy]
- Alexander Babu Arulanthu [lindy]
- Robert A. Rouse [siesta]
- asamarak [ascc]
- Tom Chaney [snoodles]
- Joe Hoffert [monkeybars]
- ircornel [ascc]
- Chris Cleeland [macarena]
-*Matthew Karl Lundberg [enz lcs*(2)]
- dmschult [ascc]
- sherlia [owen]
-*wmwhites [ascc*]
- Marius Mihai Tutunaru [siesta]
- Ken Wong [ackbar sarlacc]
- abstutts [ascc]
- Barry L. Kalman [sachel]
- Yunhong Zhou [siesta]
- Marina Igorevna Spivak [mambo]
- mschraed [ascc]
- tuck [ascc]
- Daniel Robert Dooly [cardinal]
- emlentz [ascc]
- Margaret Flucke [honker yoda brainmap]
- Jonathan S. Pollack [siesta]
- Gurudatta M. Parulkar [ackbar]
- Mike Richards [teebo]
-*Vishal Kachroo [merengue*(1)]
- The dump man [tapeworm]
- Uooyeol Yoon [siesta]
- jtlink [ascc]
- Dan Rosenstein [tubman]
- cdnorden [ascc]
- Jon Turner [spanky]
- Stan C. Kwasny [lambda]
- aymessin [ascc]
- Nanbor Wang [lambada]
- wolf [sarlacc]
- jgbers [ascc]
- Pradeep Gore [flamenco]
- Chris D. Gill [tango]
- sduseja [ascc]
- amgarcia [ascc]
-*Hongyin Quan [ackbar*(2)]
- firemen [helen]
-*lskafenb [ascc*]
- Sally Goldman [occam]
- Marcel Waldvogel [tiger]
- klforesm [ascc]
- Andy Fingerhut [yoda leia]
- root@tango [tango emperor siren flora helen boushi tapeworm siesta rainier taumsauk honker polka]
- Nagarajan Surendran [tango polka]
- ajeckste [ascc]
- Linda Suri [kavita]
- Sarah Elizabeth Burcham [helen]
- Salathiel Sawyer [helen]
- A. Maynard Engebretson [wicket]
- Theresa Manzara [siesta]
- aagrillo [ascc]
- ksviehen [ascc]
- Will Gillett [gel]
- Elaine M Ashton [helen]
- James C. Gray [siesta]
- Ian Flanigan [siesta]
- jacrank [ascc]
- Matthew J Braun [lambada]
-*pjhanrah [ascc*]
- Vadim Adamov [siesta]
-*rbherrin [ascc*]
- kslee [ascc]
- Balachandran Natarajan [cumbia]
-*Qianbo Huai [ecommerce*(2)]
- Scott Thomas Haug [bacon kato]
- Yuhua Chen [beru]
- blawrenc [ascc]
- dcoats [ascc]
-*sdsinger [ascc*]
- Katherine Skirving Larson [odysseus mas]
- rmcarbon [ascc]
- rer [luke honker leia]
- Ron Loui [ai siesta]
- Sergio Flores [tango siesta]
- maint [helen]
- mewedeha [ascc]
- Scott Simon [ackbar]
- weathert [anakin hobbie honker]
- Kirthika Parameswaran [waltz tango]
- Scott Douglas Powers [greedo buster]
-*vehays [ascc*]
- Multiagent Systems Research Group [siren]
-*Douglas C. Schmidt [tango*(3) mambo]
- sunyh [r2d2]
-*jbbrooks [ascc*]
- mweisema [ascc]
-*baruethe [ascc*]
- Yan Zhou [thunderball]
-*jennyc [ascc*]
- Karl Stiefvater [tamarin helen]
- John Roman [helen]
- slstraus [ascc]
- Subhash Suri [kavita]
- Sandeep Sikka [siesta]
- Dna Mutants [lcs]
- Irfan Pyarali [merengue]
- ajhingst [ascc]
- Tuomas Sandholm [siren]
- Carlos O'Ryan [tango swarm.cs.wustl.edu macarena]
- Tilman Wolf [siesta]
-------------------------
-friends: 20 users: 20
-
-----------------------------------------
-
-5. Print out all machines and who is logged into each one
-
-% drwho-client -A tango.cs.wustl.edu -R -l
-kavita Subhash Suri, Linda Suri
-lcs Matthew Karl Lundberg*(2), Dna Mutants
-leia Andy Fingerhut, rer
-rainier root@tango
-thunderball Yan Zhou
-lindy Sumedh Mungee, Alexander Babu Arulanthu
-flamenco Pradeep Gore
-ai Ron Loui
-wicket A. Maynard Engebretson
-occam Stephen D. Scott, Sally Goldman
-helen firemen, Sarah Elizabeth Burcham, Elaine M Ashton, root@tango, maint, John Roman, Karl Stiefvater, Salathiel Sawyer
-enz Matthew Karl Lundberg
-tamarin Karl Stiefvater
-tiger Marcel Waldvogel
-cumbia Balachandran Natarajan
-r2d2 sunyh
-fixer woody
-ecommerce Qianbo Huai*(2)
-lambda Stan C. Kwasny
-boushi root@tango
-mambo Douglas C. Schmidt, Marina Igorevna Spivak
-ascc slstraus, rmcarbon, aymessin, aagrillo, sdsinger*, dmschult, sestasne, dmorris, jgbers, jennyc*, sduseja, baruethe*, gzhou*, vehays*, pjhanrah*, dcoats, saduthie*, ksviehen, cdnorden, ajhingst*, mschraed, asamarak, pabacard*, mewedeha, ajeckste, jbbrooks, blawrenc, amgarcia, abstutts, klforesm, klkramer, pkshah*, jtlink, jacrank, wmwhites*, kslee, mweisema, emlentz, rlneblet, tuck
-beru Yuhua Chen
-emperor root@tango
-siren Tuomas Sandholm, root@tango, Multiagent Systems Research Group
-tubman Dan Rosenstein
-gel Will Gillett
-honker Margaret Flucke, root@tango, weathert, rer
-greedo Scott Douglas Powers
-swarm.cs.wustl.edu Carlos O'Ryan
-tapeworm root@tango, The dump man
-siesta Uooyeol Yoon, Marius Mihai Tutunaru, Vadim Adamov, Robert A. Rouse, Jonathan S. Pollack, James C. Gray, Sergio Flores, Sandeep Sikka, Ron Loui, Yunhong Zhou, Tilman Wolf, Theresa Manzara, Ian Flanigan, root@tango
-luke rer
-snoodles Tom Chaney
-ackbar Ken Wong, Scott Simon, Gurudatta M. Parulkar, Hongyin Quan*(1)
-buster Scott Douglas Powers
-tango Nagarajan Surendran, Sergio Flores, Chris D. Gill, Kirthika Parameswaran, Carlos O'Ryan, root@tango, Douglas C. Schmidt*(3)
-teebo Mike Richards
-cardinal Daniel Robert Dooly
-lambada Nanbor Wang, Matthew J Braun
-merengue Sumedh Mungee, Vishal Kachroo*(1), Irfan Pyarali
-macarena Chris Cleeland, Carlos O'Ryan
-sarlacc wolf, Ken Wong
-spanky Jon Turner
-brainmap Margaret Flucke
-polka Nagarajan Surendran, root@tango
-waltz Kirthika Parameswaran
-flora root@tango
-anakin weathert
-bacon Scott Thomas Haug
-hopscotch Jyoti Parwatikar
-mas Katherine Skirving Larson
-kato Scott Thomas Haug
-hobbie weathert
-odysseus Katherine Skirving Larson
-sachel Barry L. Kalman
-taumsauk root@tango
-yoda Margaret Flucke, Andy Fingerhut
-owen sherlia
-monkeybars Joe Hoffert
diff --git a/apps/drwho/Rwho_DB_Manager.cpp b/apps/drwho/Rwho_DB_Manager.cpp
deleted file mode 100644
index 52cf4fb0faa..00000000000
--- a/apps/drwho/Rwho_DB_Manager.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-// $Id$
-#include "global.h"
-#include "Options.h"
-#include "Rwho_DB_Manager.h"
-#include "ace/Log_Msg.h"
-
-// Change to the RWHO directory to speed up and simplify later
-// processing. This requires opening the directory for reading with
-// the directory iterator abstraction and then skipping the first two
-// files in the directory, which are assumed to be "." and ".." (this
-// function needs to be changed if this assumption does not hold!)
-
-RWho_DB_Manager::RWho_DB_Manager (void)
- : number_of_users (0),
- current_user (0),
- WHOD_HEADER_SIZE (sizeof host_data - sizeof host_data.wd_we),
- rwho_dir_name (RWHODIR)
-{
- if (ACE_OS::getcwd (this->original_pathname, MAXPATHLEN + 1) == 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- Options::program_name,
- 1));
-
- if (ACE_OS::chdir (this->rwho_dir_name) < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- this->rwho_dir_name,
- 1));
-
- this->rwho_dir.open (this->rwho_dir_name);
-
-#if 0
- // Skip "." and ".."
- this->rwho_dir.read ();
- this->rwho_dir.read ();
-#endif
-}
-
-// The destructor cleans up the RWHOD_DIR handle.
-
-RWho_DB_Manager::~RWho_DB_Manager (void)
-{
- if (ACE_OS::chdir (this->original_pathname) < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- Options::program_name,
- 1));
-
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing the RWho_DB_Manager\n"));
-}
-
-// This procedure looks through the rwhod directory until it finds the next
-// valid user file.
-//
-// The requirements for user files are:
-// 1) The file is at least MIN_HOST_DATA_SIZE bytes long
-// 2) It was received within the last MAX_HOST_TIMEOUT seconds
-// Return:
-// Are there any more hosts? */
-
-int
-RWho_DB_Manager::get_next_host (void)
-{
- time_t current_time;
-
- ACE_OS::time (&current_time);
-
- // Go through each file in the directory looking for valid entries.
-
- for (dirent *dir_ptr = this->rwho_dir.read ();
- dir_ptr != 0;
- dir_ptr = this->rwho_dir.read ())
- {
- ACE_HANDLE user_file =
- ACE_OS::open (dir_ptr->d_name, O_RDONLY);
-
- if (user_file < 0)
- return -1;
-
- int host_data_length =
- ACE_OS::read (user_file,
- (char *) &this->host_data,
- sizeof this->host_data);
-
- if (host_data_length > WHOD_HEADER_SIZE
- && current_time - this->host_data.wd_recvtime < MAX_HOST_TIMEOUT)
- {
- this->current_user = 0;
- this->number_of_users = (host_data_length - WHOD_HEADER_SIZE) / sizeof *this->host_data.wd_we;
- ACE_OS::close (user_file);
- return 1; // We found a good host, so return it.
- }
- else
- ACE_OS::close (user_file);
- }
-
- // There are no more hosts, so return False.
- return 0;
-}
-
-// Returns the next user's information. Note that for efficiency only
-// pointers are copied, i.e., this info must be used before we call
-// this function again.
-
-int
-RWho_DB_Manager::get_next_user (Protocol_Record &protocol_record)
-{
- // Get the next host file if necessary
- if (this->current_user >= this->number_of_users
- && this->get_next_host () == 0)
- return 0;
-
- protocol_record.set_login (this->host_data.wd_we[current_user].we_utmp.out_name);
- Drwho_Node *current_node = protocol_record.get_drwho_list ();
- current_node->set_host_name (this->host_data.wd_hostname);
- current_node->set_idle_time (this->host_data.wd_we[current_user].we_idle);
- this->current_user++;
-
- return 1;
-}
diff --git a/apps/drwho/Rwho_DB_Manager.h b/apps/drwho/Rwho_DB_Manager.h
deleted file mode 100644
index ff1dde83a65..00000000000
--- a/apps/drwho/Rwho_DB_Manager.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Rwho_DB_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _RWHO_DB_MANAGER_H
-#define _RWHO_DB_MANAGER_H
-
-#include <protocols/rwhod.h>
-#include "ace/Dirent.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Protocol_Record.h"
-
-class RWho_DB_Manager
-{
- // = TITLE
- // This class returns the user/machine pairs one at a time from
- // the rwho database.
-
-public:
- RWho_DB_Manager (void);
- ~RWho_DB_Manager (void);
- int get_next_user (Protocol_Record &protocol_record);
-
-private:
- ACE_Dirent rwho_dir;
- whod host_data;
- int number_of_users;
- int current_user;
- const int WHOD_HEADER_SIZE;
- char original_pathname[MAXPATHLEN + 1];
- const char *rwho_dir_name;
-
- int get_next_host (void);
-};
-
-#endif /* _RWHO_DB_MANAGER_H */
diff --git a/apps/drwho/SL_Client.cpp b/apps/drwho/SL_Client.cpp
deleted file mode 100644
index 9cba5324a2e..00000000000
--- a/apps/drwho/SL_Client.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "SL_Client.h"
-
-SL_Client::SL_Client (const char *usr_name)
- : Single_Lookup (usr_name)
-{
-}
-
-Protocol_Record *
-SL_Client::insert (const char *, int)
-{
- return this->prp_;
-}
diff --git a/apps/drwho/SL_Client.h b/apps/drwho/SL_Client.h
deleted file mode 100644
index 16be3842064..00000000000
--- a/apps/drwho/SL_Client.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SL_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SL_CLIENT_H
-#define _SL_CLIENT_H
-
-#include "Single_Lookup.h"
-
-class SL_Client : public Single_Lookup
-{
- // = TITLE
- // Provides the client's single user lookup table abstraction.
-
-public:
- SL_Client (const char *key_name);
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
-};
-
-#endif /* _SL_CLIENT_H */
diff --git a/apps/drwho/SL_Server.cpp b/apps/drwho/SL_Server.cpp
deleted file mode 100644
index 35c29d598dc..00000000000
--- a/apps/drwho/SL_Server.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// $Id$
-
-#include "global.h"
-#include "SL_Server.h"
-
-SL_Server::SL_Server (const char *usr_name)
- : Single_Lookup (usr_name)
-{
-}
-
-Protocol_Record *
-SL_Server::get_each_entry (void)
-{
- Protocol_Record *prp = Single_Lookup::get_each_entry ();
- return prp->get_drwho_list () == 0 ? 0 : prp;
-}
-
-Protocol_Record *
-SL_Server::insert (const char *key_name, int max_len)
-{
- return ACE_OS::strncmp (key_name,
- this->prp_->get_login (),
- max_len) == 0 ? this->prp_ : 0;
-}
-
diff --git a/apps/drwho/SL_Server.h b/apps/drwho/SL_Server.h
deleted file mode 100644
index 2a8ee2ba054..00000000000
--- a/apps/drwho/SL_Server.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SL_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SL_SERVER_H
-#define _SL_SERVER_H
-
-#include "Single_Lookup.h"
-
-class SL_Server : public Single_Lookup
-{
- // = TITLE
- // Provides the server's single user lookup table abstraction.
-
-public:
- SL_Server (const char *packet);
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN);
- virtual Protocol_Record *get_each_entry (void);
-};
-
-#endif /* _SL_SERVER_H */
diff --git a/apps/drwho/SML_Client.cpp b/apps/drwho/SML_Client.cpp
deleted file mode 100644
index 8ae0195e1a6..00000000000
--- a/apps/drwho/SML_Client.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "SML_Client.h"
-
-int
-SML_Client::receive (int)
-{
- if (sml_server.mux (this->recv_packet_, this->packet_length) < 0)
- return -1;
-
- if (this->demux (this->recv_packet_, this->packet_length) < 0)
- return -1;
-
- return 1;
-}
-
-int
-SML_Client::send (void)
-{
- if (this->mux (this->send_packet_, this->packet_length) < 0)
- return -1;
-
- if (sml_server.demux (this->send_packet_, this->packet_length) < 0)
- return -1;
-
- return 1;
-}
-
-SML_Client::SML_Client (void)
-{
-}
-
-SML_Client::~SML_Client (void)
-{
-}
diff --git a/apps/drwho/SML_Client.h b/apps/drwho/SML_Client.h
deleted file mode 100644
index d02fb8d6fa0..00000000000
--- a/apps/drwho/SML_Client.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SML_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SML_CLIENT_H
-#define _SML_CLIENT_H
-
-#include "SM_Client.h"
-#include "SML_Server.h"
-
-class SML_Client : public SM_Client
-{
-public:
- SML_Client (void);
- virtual ~SML_Client (void);
- virtual int receive (int timeout = 0);
- virtual int send (void);
-
-private:
- SML_Server sml_server;
- int packet_length;
-};
-
-#endif /* _SML_CLIENT_H */
diff --git a/apps/drwho/SML_Server.cpp b/apps/drwho/SML_Server.cpp
deleted file mode 100644
index 5a71c795f69..00000000000
--- a/apps/drwho/SML_Server.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// $Id$
-
-#include "SML_Server.h"
-
-SML_Server::SML_Server (void)
-{
-}
-
-SML_Server::~SML_Server (void)
-{
-}
diff --git a/apps/drwho/SML_Server.h b/apps/drwho/SML_Server.h
deleted file mode 100644
index 5fc665450df..00000000000
--- a/apps/drwho/SML_Server.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SML_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SML_SERVER_H
-#define _SML_SERVER_H
-
-#include "SM_Server.h"
-
-class SML_Server : public SM_Server
-{
-public:
- SML_Server (void);
- virtual ~SML_Server (void);
-};
-
-#endif /* _SML_SERVER_H */
diff --git a/apps/drwho/SMR_Client.cpp b/apps/drwho/SMR_Client.cpp
deleted file mode 100644
index c7dae2ca3f7..00000000000
--- a/apps/drwho/SMR_Client.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "PMC_All.h"
-#include "PMC_Flo.h"
-#include "PMC_Usr.h"
-#include "PMC_Ruser.h"
-#include "SMR_Client.h"
-#include "ace/Log_Msg.h"
-
-SMR_Client::SMR_Client (short port_number)
-{
- if (CM_Client::open (port_number) < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- Options::program_name,
- 1));
-}
-
-SMR_Client::~SMR_Client (void)
-{
-}
diff --git a/apps/drwho/SMR_Client.h b/apps/drwho/SMR_Client.h
deleted file mode 100644
index 9725c3ebd96..00000000000
--- a/apps/drwho/SMR_Client.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SMR_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SMR_CLIENT_H
-#define _SMR_CLIENT_H
-
-#include "SM_Client.h"
-
-class SMR_Client : public SM_Client
-{
-public:
- SMR_Client (short port_number);
- virtual ~SMR_Client (void);
-};
-
-#endif /* _SMR_CLIENT_H */
diff --git a/apps/drwho/SMR_Server.cpp b/apps/drwho/SMR_Server.cpp
deleted file mode 100644
index 0801e0e1db1..00000000000
--- a/apps/drwho/SMR_Server.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "SMR_Server.h"
-#include "ace/Log_Msg.h"
-
-SMR_Server::SMR_Server (short port_number)
-{
- if (CM_Server::open (port_number) < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- Options::program_name,
- 1));
-}
-
-SMR_Server::~SMR_Server (void)
-{
-}
diff --git a/apps/drwho/SMR_Server.h b/apps/drwho/SMR_Server.h
deleted file mode 100644
index af8b384d701..00000000000
--- a/apps/drwho/SMR_Server.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SMR_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SMR_SERVER_H
-#define _SMR_SERVER_H
-
-#include "SM_Server.h"
-
-class SMR_Server : public SM_Server
-{
-public:
- SMR_Server (short port_number);
- ~SMR_Server (void);
-};
-
-#endif /* _SMR_SERVER_H */
diff --git a/apps/drwho/SM_Client.cpp b/apps/drwho/SM_Client.cpp
deleted file mode 100644
index 48bca11b7e3..00000000000
--- a/apps/drwho/SM_Client.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "PMC_All.h"
-#include "PMC_Flo.h"
-#include "PMC_Usr.h"
-#include "PMC_Ruser.h"
-#include "SM_Client.h"
-#include "ace/Log_Msg.h"
-
-// Call-back function that invokes the appropriate decode function.
-
-int
-SM_Client::demux (char *packet,
- int &packet_length)
-{
- if (this->pm_client->decode (packet, packet_length) < 0)
- return -1;
- else
- return 1;
-}
-
-// Call-back function that invokes the appropriate encode function.
-
-int
-SM_Client::mux (char *packet, int &packet_length)
-{
- switch (Options::protocol_type)
- {
- case Options::PROTO_USR:
- ACE_NEW_RETURN (this->pm_client,
- PMC_Usr (Options::user_name),
- -1);
- break;
- case Options::PROTO_ALL:
- ACE_NEW_RETURN (this->pm_client,
- PMC_All,
- -1);
- break;
- case Options::PROTO_FLO:
- ACE_NEW_RETURN (this->pm_client,
- PMC_Flo,
- -1);
- break;
- case Options::PROTO_RUSER:
- ACE_NEW_RETURN (this->pm_client,
- PMC_Ruser,
- -1);
- break;
- default:
- ACE_DEBUG ((LM_DEBUG,
- "%s: bad protocol\n",
- Options::program_name));
- return -1;
- }
-
- if (this->pm_client->encode (packet, packet_length) < 0)
- return -1;
- return 1;
-}
-
-SM_Client::SM_Client (void)
-{
-}
-
-SM_Client::~SM_Client (void)
-{
-}
-
-void
-SM_Client::process (void)
-{
- this->pm_client->process ();
-}
diff --git a/apps/drwho/SM_Client.h b/apps/drwho/SM_Client.h
deleted file mode 100644
index 0a262f71c78..00000000000
--- a/apps/drwho/SM_Client.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SM_Client.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SM_CLIENT_H
-#define _SM_CLIENT_H
-
-#include "PM_Client.h"
-#include "CM_Client.h"
-#include "Select_Manager.h"
-
-class SM_Client : public Select_Manager, public CM_Client
-{
-public:
- SM_Client (void);
- virtual ~SM_Client (void);
-
- virtual int mux (char *packet, int &packet_length);
- virtual int demux (char *packet, int &packet_length);
- virtual void process (void);
-
-private:
- PM_Client *pm_client;
-};
-
-#endif /* _SM_CLIENT_H */
diff --git a/apps/drwho/SM_Server.cpp b/apps/drwho/SM_Server.cpp
deleted file mode 100644
index 74229921845..00000000000
--- a/apps/drwho/SM_Server.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "PMS_All.h"
-#include "PMS_Flo.h"
-#include "PMS_Usr.h"
-#include "PMS_Ruser.h"
-#include "SM_Server.h"
-#include "ace/Log_Msg.h"
-
-int
-SM_Server::demux (char *packet, int &packet_length)
-{
- switch (GET_PACKET_TYPE (packet))
- {
- case Options::PROTO_USR:
- ACE_NEW_RETURN (this->pm_server,
- PMS_Usr,
- -1);
- break;
- case Options::PROTO_ALL:
- ACE_NEW_RETURN (this->pm_server,
- PMS_All,
- -1);
- break;
- case Options::PROTO_FLO:
- ACE_NEW_RETURN (this->pm_server,
- PMS_Flo,
- -1);
- break;
- case Options::PROTO_RUSER:
- ACE_NEW_RETURN (this->pm_server,
- PMS_Ruser,
- -1);
- break;
- default:
- ACE_DEBUG ((LM_DEBUG,
- "%s: bad protocol\n",
- Options::program_name));
- return -1;
- }
-
- packet_length = SUBTRACT_PACKET_TYPE (packet_length);
-
- if (pm_server->decode (SKIP_PACKET_TYPE (packet),
- packet_length) < 0)
- return -1;
-
- if (pm_server->process () < 0)
- return -1;
-
- return 1;
-}
-
-int
-SM_Server::mux (char *packet,
- int &packet_length)
-{
- return pm_server->encode (packet, packet_length);
-}
-
-SM_Server::SM_Server (void)
-{
-}
-
-SM_Server::~SM_Server (void)
-{
-}
diff --git a/apps/drwho/SM_Server.h b/apps/drwho/SM_Server.h
deleted file mode 100644
index f9fbc9857d1..00000000000
--- a/apps/drwho/SM_Server.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// SM_Server.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SM_SERVER_H
-#define _SM_SERVER_H
-
-#include "PM_Server.h"
-#include "CM_Server.h"
-#include "Select_Manager.h"
-
-class SM_Server : public Select_Manager, public CM_Server
-{
-public:
- SM_Server (void);
- virtual ~SM_Server (void);
- virtual int mux (char *packet, int &packet_length);
- virtual int demux (char *packet, int &packet_length);
-
-private:
- PM_Server *pm_server;
-};
-
-#endif /* _SM_SERVER_H */
diff --git a/apps/drwho/Search_Struct.cpp b/apps/drwho/Search_Struct.cpp
deleted file mode 100644
index a7c99de589b..00000000000
--- a/apps/drwho/Search_Struct.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Search_Struct.h"
-#include "ace/Log_Msg.h"
-
-Search_Struct::~Search_Struct (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Search_Struct\n"));
-}
-
-Search_Struct::Search_Struct (void)
- : count_ (0)
-{}
-
-int
-Search_Struct::n_elems (void)
-{
- return this->count_;
-}
-
diff --git a/apps/drwho/Search_Struct.h b/apps/drwho/Search_Struct.h
deleted file mode 100644
index c45dcbf6086..00000000000
--- a/apps/drwho/Search_Struct.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Search_Struct.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SEARCH_STRUCT_H
-#define _SEARCH_STRUCT_H
-
-#include "Protocol_Record.h"
-
-class Search_Struct
-{
- // = TITLE
- // Provides an "Abstract Base Class" lookup table abstraction that
- // stores and manipulates friend records.
-public:
- Search_Struct (void);
- virtual ~Search_Struct (void);
- virtual int n_elems (void);
-
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN) = 0;
- virtual Protocol_Record *get_next_entry (void) = 0;
- virtual Protocol_Record *get_each_entry (void) = 0;
-
-protected:
- int count_;
-};
-
-#endif /* _SEARCH_STRUCT_H */
diff --git a/apps/drwho/Select_Manager.h b/apps/drwho/Select_Manager.h
deleted file mode 100644
index 0f6af73e443..00000000000
--- a/apps/drwho/Select_Manager.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Select_Manager.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SELECT_MANAGER_H
-#define _SELECT_MANAGER_H
-
-class Select_Manager
-{
-public:
- virtual int mux (char *packet,
- int &packet_length) = 0 ;
-
- virtual int demux (char *packet,
- int &packet_length) = 0;
-};
-
-#endif /* _SELECT_MANAGER_H */
diff --git a/apps/drwho/Single_Lookup.cpp b/apps/drwho/Single_Lookup.cpp
deleted file mode 100644
index afd63cd6d85..00000000000
--- a/apps/drwho/Single_Lookup.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-// $Id$
-
-#include "Options.h"
-#include "Single_Lookup.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-Single_Lookup::Single_Lookup (const char *usr_name)
-{
- ACE_NEW (this->prp_,
- Protocol_Record (ACE::strnew (usr_name)));
-}
-
-Single_Lookup::~Single_Lookup (void)
-{
- if (Options::get_opt (Options::DEBUG))
- ACE_DEBUG ((LM_DEBUG,
- "disposing Single_Lookup\n"));
-}
-
-Protocol_Record *
-Single_Lookup::get_each_entry (void)
-{
- return this->prp_;
-}
-
-Protocol_Record *
-Single_Lookup::get_next_entry (void)
-{
- return this->get_each_entry ();
-}
diff --git a/apps/drwho/Single_Lookup.h b/apps/drwho/Single_Lookup.h
deleted file mode 100644
index fa86301215e..00000000000
--- a/apps/drwho/Single_Lookup.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// Single_Lookup.h
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _SINGLE_LOOKUP_H
-#define _SINGLE_LOOKUP_H
-
-#include "Options.h"
-#include "Search_Struct.h"
-
-class Single_Lookup : public Search_Struct
-{
- // = DESCRIPTION
- // Provides the client's single user lookup table abstraction.
-public:
- Single_Lookup (const char *usr_name);
- virtual ~Single_Lookup (void);
- virtual Protocol_Record *insert (const char *key_name,
- int max_len = MAXUSERIDNAMELEN) = 0;
- virtual Protocol_Record *get_next_entry (void);
- virtual Protocol_Record *get_each_entry (void);
-
-protected:
- Protocol_Record *prp_;
-};
-
-#endif /* _SINGLE_LOOKUP_H */
diff --git a/apps/drwho/client.cpp b/apps/drwho/client.cpp
deleted file mode 100644
index 3a66b3ac9b5..00000000000
--- a/apps/drwho/client.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// client.cpp
-//
-// = DESCRIPTION
-// Client driver program for drwho.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#include "ace/Log_Msg.h"
-
-#include "Options.h"
-#include "SML_Client.h"
-#include "SMR_Client.h"
-
-// Factory function.
-
-static SM_Client *
-make_client (void)
-{
- SM_Client *client = 0;
-
- if (Options::get_opt (Options::REMOTE_USAGE) == 0)
- ACE_NEW_RETURN (client,
- SML_Client,
- 0);
- else
- ACE_NEW_RETURN (client,
- SMR_Client (Options::port_number),
- 0);
- return client;
-}
-
-int
-main (int argc, char *argv[])
-{
- Options::set_options (argc, argv);
-
- SM_Client *sm_client = make_client ();
-
- if (sm_client->send () < 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- Options::program_name),
- -1);
-
- if (sm_client->receive (Options::max_server_timeout) < 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- Options::program_name),
- -1);
-
- sm_client->process ();
-
- return 0;
-}
diff --git a/apps/drwho/global.h b/apps/drwho/global.h
deleted file mode 100644
index d049bd3f43d..00000000000
--- a/apps/drwho/global.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// global.h
-//
-// = DESCRIPTION
-// Here are all the declarations that are needed throughout the program. */
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef _GLOBAL_H
-#define _GLOBAL_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// These constants are used throughout drwho.
-
-enum
-{
- MAXUSERIDNAMELEN = 8,
- MAX_USER_TIMEOUT = 300,
- MAX_HOST_TIMEOUT = 300,
- UDP_PACKET_SIZE = 1024 * 8,
- PORT_NUMBER = 12344
-};
-
-// Default name of file where friends info is stored.
-#define FRIEND_FILE ".friends.dta"
-
-// Default name where rwho info is stored.
-#define RWHODIR "/usr/spool/rwho"
-
-// Macros for handling message types.
-#define GET_PACKET_TYPE(P) (ntohs (*((short *) P)))
-#define SET_PACKET_TYPE(P,T) ((*(short *) P) = ntohs (T))
-#define SKIP_PACKET_TYPE(P) ((P) + sizeof (short))
-#define SUBTRACT_PACKET_TYPE(L) ((L) - sizeof (short))
-
-#endif /* _GLOBAL_H */
diff --git a/apps/drwho/server.cpp b/apps/drwho/server.cpp
deleted file mode 100644
index 41f005354c7..00000000000
--- a/apps/drwho/server.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// drwho
-//
-// = FILENAME
-// server.cpp
-//
-// = DESCRIPTION
-// Driver program for the server. Note that it is easy to reuse the
-// server for other distributed programs. Pretty much all that must
-// change are the functions registered with the communciations
-// manager.
-//
-// = AUTHOR
-// Douglas C. Schmidt
-//
-// ============================================================================
-
-#include "Options.h"
-#include "SMR_Server.h"
-#include "ace/ACE.h"
-#include "ace/Log_Msg.h"
-
-static char *
-time_stamp (void)
-{
- time_t time_now;
- char *temp;
-
- time_now = ACE_OS::time (0);
- temp = ACE_OS::asctime (ACE_OS::localtime (&time_now));
- temp[12] = 0;
- return temp;
-}
-
-// Catch the obvious signals and die with dignity...
-
-static void
-exit_server (int sig)
-{
- ACE_DEBUG ((LM_DEBUG,
- "%s exiting on signal %S\n",
- time_stamp (),
- sig));
- ACE_OS::exit (0);
-}
-
-// Returns TRUE if the program was started by INETD.
-
-static int
-started_by_inetd (void)
-{
- sockaddr_in sin;
- int size = sizeof sin;
-
- return ACE_OS::getsockname (0,
- ACE_reinterpret_cast (sockaddr *, &sin),
- &size) == 0;
-}
-
-// Does the drwho service.
-
-static void
-do_drwho (SMR_Server &smr_server)
-{
- if (smr_server.receive () == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- Options::program_name));
-
- if (smr_server.send () == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- Options::program_name));
-}
-
-// If the server is started with any argument at all then it doesn't
-// fork off a child process to do the work. This is useful when
-// debugging!
-
-int
-main (int argc, char *argv[])
-{
- ACE_OS::signal (SIGTERM, (ACE_SignalHandler)exit_server);
- ACE_OS::signal (SIGINT, (ACE_SignalHandler)exit_server);
- ACE_OS::signal (SIGQUIT, (ACE_SignalHandler)exit_server);
-
- Options::set_options (argc, argv);
- Options::set_opt (Options::STAND_ALONE_SERVER);
-
- int inetd_controlled = started_by_inetd ();
-
- if (!inetd_controlled && Options::get_opt (Options::BE_A_DAEMON))
- ACE::daemonize ();
-
- SMR_Server smr_server (Options::port_number);
-
- if (inetd_controlled)
- do_drwho (smr_server);
- else
- {
-
- for (;;)
- do_drwho (smr_server);
-
- /* NOTREACHED */
- }
-
- return 0;
-}
diff --git a/apps/gperf/COPYING b/apps/gperf/COPYING
deleted file mode 100644
index 60549be514a..00000000000
--- a/apps/gperf/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 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
-
- 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., 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 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/gperf/ChangeLog b/apps/gperf/ChangeLog
deleted file mode 100644
index 52b4c5175cb..00000000000
--- a/apps/gperf/ChangeLog
+++ /dev/null
@@ -1,1979 +0,0 @@
-Sat Sep 22 09:06:10 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
-
- * src/Makefile: Removed the rules.lib.GNU file since it didn't
- seem to be needed and was causing problems for MinGW. Thanks to
- Jeff McNiel <JMcNiel@datacrit.com> for reporting this.
-
-Wed Sep 19 02:29:37 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Makefile:
- Another minor problem in the generated Makefile, i.e. the script
- continues to break for filenames that contain a '+' sign in them.
-
-Wed Sep 12 16:06:46 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * tests/Makefile:
-
- Added missing dependency in runtests and entry in realclean for
- taoout. This fixes a long standing nagging problem.
-
-Sat Sep 8 22:40:21 2001 Krishnakumar B <kitty@cs.wustl.edu>
-
- * src/Key_List.cpp (output_lookup_array):
-
- Removed a compilation warning on 64-bit Linux.
-
-Sun Jul 29 12:17:55 2001 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * The following changes fix a bug reported by Karl Proese
- <karl.proese@mchp.siemens.de> and Jeff Parsons.
-
- * tests: Patched the *.exp files to include the new WORDLIST_SIZE
- macro.
-
- * src/Key_List.cpp: Generate a new const/enum that defines the
- size of the wordlist array. This is now used to fix a nasty bug
- where MAX_HASH_VALUE was used instead of WORDLIST_SIZE.
-
- * src/Key_List.cpp (output_lookup_array): Reformatted the
- debugging output to make it easier to tell what's going on.
-
- * tests/tao.exp: Updated this file based on the expected output of
- the new test example.
-
- * tests/tao.gperf: Updated this to use a different set of keys since
- they exercise the range of screwy inputs better than the earlier
- contents of this file. In particular, this should detect
- certain nasty bugs that were plaguing GPERF earlier for keyword
- sets with a large number of duplicates.
-
- * src/Key_List.cpp (read_keys): Clarified the debugging message
- to indicate the key links are *static*.
-
- * src/Options.cpp (parse_args): Fixed a stupid typo...
-
-Sun Jul 1 08:33:56 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * tests/Makefile: For some strange reason there was a BIN2 macro
- but no BIN macro, which caused problems...
-
- * tests: Added support to check for the condition that caused
- TAO's IDL compiler to break on keylists that have a large number
- of duplicates!
-
- * src/Key_List.cpp (output_lookup_function): Fixed a tiny mistake
- where "slot < MAX_HASH_VALUE" should have been "slot <=
- MAX_HASH_VALUE". Thanks to Vsevolod Novikov
- <novikov@df.nnov.rfnet.ru> and Jeff Parsons
- <parsons@cs.wustl.edu> for helping to track this down.
-
-Sat Jun 2 13:30:30 2001 Douglas C. Schmidt <schmidt@tango.doc.wustl.edu>
-
- * src/Makefile (INSTALL): Fixed several minor problems with the
- Makefile so that this will build correctly on mingw. Thanks to
- Cristian Ferretti <cristian_ferretti@yahoo.com> for pointing
- this out.
-
-Fri Mar 30 11:30:54 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Makefile:
- And we need to patch dependencies yet another time.
-
-Wed Jan 24 13:44:53 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Makefile:
- And I got nailed by the same problem again:
- Just doing 'make depend' generates invalid dependencies for some
- reason, had to manually patch them.
-
-Mon Oct 16 10:34:06 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Makefile:
- Just doing 'make depend' generates invalid dependencies for some
- reason, had to manually patch them.
-
-Fri Apr 21 20:33:11 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Makefile:
- Add dependencies for the runtest rule, otherwise parallel builds
- fail.
-
-Thu Apr 20 09:04:27 2000 Carlos O'Ryan <coryan@uci.edu>
-
- * tests/Makefile:
- Just running 'make depend' on this file introduces an spurious
- 'c++' string in the middle of the dependencies. Have no time to
- figure out why.
-
-Wed Mar 8 17:26:22 2000 Ossama Othman <ossama@uci.edu>
-
- * src/Key_List.cpp (Key_List, ~Key_List, output_types):
-
- Fixed memory leaks related to lack of deallocation of variables
- that were initialized with static strings, and then
- reinitialized with strings that were dynamically allocated.
- [Bug 334]
-
-Tue Feb 22 18:25:02 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp,
- src/Bool_Array.cpp,
- src/Gen_Perf.cpp,
- src/Hash_Table.cpp,
- src/Options.h,
- src/Options.cpp: Renamed the DEBUG enum to DEBUGGING enum
- to avoid problems with -DDEBUG is enabled. Thanks to
- Tobin Bergen-Hill <tbhill@dctd.saic.com> for reporting this.
-
-Sat Nov 13 18:43:53 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp: The code for output_lookup_function() was
- not being called if option[GLOBAL] was set. Thanks to Eugene
- Surovegin <ebs@glasnet.ru> for reporting the bug and the fix.
-
-Tue Aug 31 14:47:06 1999 Pradeep Gore <pradeep@flamenco.cs.wustl.edu>
-
- * Makefile:
- Fix for Bug#:250 - The Makefile now uses ACE's build commands.
- This also gets rid of the build warning on egcs when compiling
- with repo=1. Thanks to David, Ossama, Bala and Yamuna.
-
-Thu Jul 1 09:31:32 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * Makefile:
- If we are cross compiling we shouldn't compile gperf, it is not
- going to help anyway, because we could not run it.
-
-Sun Jun 27 20:40:30 1999 Douglas C. Schmidt <schmidt@ace.cs.wustl.edu>
-
- * src/Key_List.cpp: Added some initializers to keep EGCS from
- complaining.
-
-Wed Jun 23 07:24:58 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (output_hash_function): Use conditional
- compilation rather than a runtime check to test if
- ACE_STANDARD_CHARACTER_SET_SIZE == ACE_EBCDIC_SIZE. This
- suppresses a warning on DEC UNIX. Thanks to David Levine for
- reporting this.
-
-Fri Jun 18 16:54:43 1999 Irfan Pyarali <irfan@cs.wustl.edu>
-
- * apps/gperf/src/Key_List.cpp (output_lookup_array): Prefixed
- debug message with "GPERF".
-
-Thu Jun 17 18:04:30 1999 Douglas C. Schmidt <schmidt@mambo.cs.wustl.edu>
-
- * tests/test-[1-5].exp: Fixed all the tests to account for the new
- EBCDIC output.
-
-Thu Jun 17 17:25:00 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (output_hash_function): Generate an asso_values
- table that will have the appropriate values for both EBCDIC or
- ASCII, depending on the platform.
-
- * src/Key_List.cpp (output_hash_function),
- src/Gen_Perf.cpp (Gen_Perf),
- src/Vectors.h: Replaced the use of ALPHA_SIZE with
- ACE_STANDARD_CHARACTER_SET_SIZE, which works correctly for
- EBCDIC platforms, as well as ASCII ones. Thanks to
- Jim Rogers <jrogers@viasoft.com> for this suggestion.
-
-Wed Jun 16 19:08:01 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Key_List.cpp: Fixed the key_word table generation so that it
- generates the "default fill" string for the null entries in the
- table. Thanks to Irfan and Naga for helping in this.
-
-Sun Jun 6 15:47:23 1999 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * src/Key_List.cpp (output_switch): Make sure to generate "const
- char *resword;" rather than "char *resword" since otherwise C++
- compilers correctly complain.
-
- * tests: Fixed a bunch of warnings related to misuses of "const
- char *".
-
-Sun Jun 6 10:30:09 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/test-4.exp: Fixed another use of "index". Thanks to David
- Levine for reporting this.
-
-Sat Jun 5 23:17:39 1999 Douglas C. Schmidt <schmidt@danzon.cs.wustl.edu>
-
- * Replaced all uses of "index" with "slot" to avoid problems with
- broken C++ compilers that define a macro called "index".
-
-Tue May 4 14:24:27 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.cpp (parse_args): Removed %a flag from -v option and
- used ACE_OS::exit (0) instead.
-
-Mon Apr 26 15:42:54 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * tests/test-{1,2,3,4,5}.exp: Forgot to update the expected test
- output to reflect the version string update listed below.
-
-Mon Apr 26 10:42:08 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * src/Version.cpp (version_string): Updated version string to "2.8
- (ACE version)" since 2.7 is used by the old Cygnus maintained
- gperf.
-
- * src/*.{h,cpp}: Updated copyright/distribution information to GPL
- v2 style notice.
-
-Sun Apr 25 16:16:12 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * mdate-sh: Added this file to the CVS repository. It will be
- used once the auto{conf,make} integrations are in place.
-
-Sun Apr 25 16:13:40 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * COPYING: Updated to GPL version 2.
-
-Sat Apr 24 18:18:35 1999 Ossama Othman <othman@cs.wustl.edu>
-
- * gperf.1:
- * gperf.info:
- * gperf.texi: Added missing quote, cosmetic fix, regenerated
- gperf.info.
-
- * src/Key_List.cpp
- * src/Options.h:
- * src/Options.cpp: Merged Cygnus patch that allows the user to
- specify a default fill expression/value in the keyword table.
- Updated help message with new `-F' option. Made some cosmetic
- fixes to the help message, too.
-
- * tests/test.cpp: Minor spelling correction in comment
-
- * tests/test-6.exp: Updated with new expected gperf output.
-
-Mon Nov 9 23:37:09 1998 Vishal Kachroo <vishal@cs.wustl.edu>
-
- * src/Key_List.cpp: Fixed the problem with Binary and Linear
- Search code.
-
-Sat Oct 10 18:40:56 1998 Vishal Kachroo <vishal@merengue.cs.wustl.edu>
-
- * tests/test-6.exp (Usage): copied the output of gperf -h option
- into test-6.exp. This test was failing because it didn't have
- the -b option previously. Thanks to David for reporting the
- failure of tests.
-
- * src/Options.cpp : Changed the option case 'h' to include the
- following line " -b/t Code for Linear Search".
-
-Fri Oct 9 01:06:56 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.cpp :
- * src/Key_List.cpp (output_linear_search_function): Changed option
- -z to -b for generating linear search. Removed <len> parameter
- from the lookup code. We dont need <len> in the generated code
- in the case of linear/binary search options.
-
-Thu Oct 8 17:40:19 1998 Vishal Kachroo <vishal@merengue.cs.wustl.edu>
-
- * src/Gen_Perf.cpp (run): added the linear search changes.
- * src/Gen_Perf.h : added the linear search changes.
- * src/Options.cpp : added the linear search changes.
- * src/Options.h : added the linear search changes.
- * src/Key_List.cpp : added the linear search changes.
- * src/Key_List.h : added the linear search changes.
-
-
-Wed Oct 7 01:20:35 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * tests/test-6.exp:
- Updated thif file to the current help message. Thanks to Hans
- for reporting this.
-
-Tue Oct 6 11:51:47 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Key_List.cpp (Key_List): Fixed g++ warnings.
-
-Tue Oct 6 02:48:37 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- Thanks to Vishal the following things have been done to get Binary
- Search code generated from GPERF.
-
- * src/Options.cpp (parse_args): Added the -B option for the binary
- search.
-
- * src/Options.h (enum Option_Type): Added the BINARYSEARCH in the
- enumeration.
-
- * src/Key_List.cpp : Added the function
- output_binary_search_function(void). Changed the output function
- to include the Binary Search option. Used option[BINARYSEARCH]
- to distinguish the binary search case from the hashing case.
-
- * src/Key_List.h : Added the prototype for
- output_binary_search_function. Also added the key_sort variable
- to enable sorting based on key values.
-
-Mon Oct 5 18:24:15 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Gen_Perf: Created a new function that allows us to split the
- binary search and perfect hash logic apart. Thanks to Vishal
- and Alex for reporting this.
-
- * src/Key_List.cpp (dump): Fixed the unsigned problems with line
- 1502 YET again... Thanks to David/Darrell for reporting this.
-
-Sun Oct 4 20:42:56 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src: Fixed yet another problem with switching from array-based
- lookups to switch-based lookups. Thanks to Carlos for reporting
- this.
-
-Sat Oct 3 19:36:52 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.h:
- * src/Options.cpp:
- * src/Key_List.h:
- * src/Key_List.cpp: Reverted all the changes done for Binary
- Search.
-
-Sat Oct 3 17:51:10 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/test-6.exp: Added the new -B option.
-
-Sat Oct 3 13:47:40 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Key_List.cpp (output_binary_search_function): Added a new
- line after binary search code.
-
-Sat Oct 3 10:11:15 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.cpp (parse_args): Changed the option for binary
- search to '-B'
-
-Fri Oct 2 21:38:54 1998 Vishal Kachroo <vishal@merengue.cs.wustl.edu>
-
- * src/Options.cpp (parse_args): Added the -b option for the binary
- search.
-
- * src/Options.h (enum Option_Type): Added the BINARYSEARCH in the
- enumeration.
-
- * src/Key_List.cpp : Added the function
- output_binary_search_function (void). Changed the output
- function to include the Binary Search option. Used
- option[BINARYSEARCH] to distinguish the binary search case from
- the hashing case.
-
- * src/Key_List.h : Added the prototype for
- output_binary_search_function. Also added the key_sort variable
- to enable sorting based on key values.
-
-Thu Oct 1 12:40:59 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.cpp (parse_args): Comments for Vishal to incorporate
- Binary Seach on to GPERF.
-
-Wed Sep 30 16:55:53 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Makefile: Updated dependencies, added a realclean target
- to remove the output from the tests.
-
-Wed Sep 30 12:41:29 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (dump): Fixed another signed/unsigned int
- mismatch. Thanks to David Levine for reporting this.
-
-Mon Sep 28 13:18:05 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests: Updated all the test-*.exp files to reflect the latest
- "unsigned" changes.
-
- * src/Key_List.cpp (output_hash_function): Fixed another use of
- int to be unsigned int.
-
- * tests/test.cpp: Fixed the signature of in_word_set() to be
- consistent with the new gperf. Thanks to David Levine and
- Carlos O'Ryan for this fix.
-
-Sun Sep 27 00:04:18 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (dump): Reverted back to using int for
- keyword_width to keep certain compilers happy. Thanks to David
- Levine for reporting this.
-
- * src/Key_List: MAke sure that we don't generate the lookup table
- twice if we're forced to change to the switch format.
-
- * src/Key_List: Replaced the use of "int" with "unsigned int" for
- parameters and hash values.
-
- * src/Key_List: Fixed the code so that if we change over to using
- the switch statement then we use the already generated keyword
- table appropriately. This prevents unnecessary warnings from
- some C++ compilers. Thanks to David Levine for reporting this.
-
- * src/Key_List.cpp (output): If it's not possible to use the
- lookup_array implementation of -D (e.g., because there aren't
- enough empty slots in the lookup_array), then default to using
- -S1 option... This fixes a nasty bug that's been in gperf for
- years....
-
- * src/Key_List.cpp: (output_lookup_array): Added a "return 0" to
- make the C++ compiler happy. Thanks to David for noticing this.
-
- * tests/c++-res.exp: Added a new test for C++ keywords.
-
- * tests/corba.gperf: Added a proper test for CORBA keywords.
-
-Sat Sep 26 15:32:56 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Hash_Table.cpp (find): Fixed a bug in the increment
- computation that arose if the -n option was given.
-
- * src: Removed all set_ and get_ prefixes to be more consistent
- with ACE programming guidelines.
-
- * src: GPERF now Purifies cleanly.
-
- * src/Gen_Perf: Cleaned up the code so that if errors occur they
- get handled properly.
-
- * src/List_Node: Added a destructor to remove the memory when
- we're done.
-
- * src: Continued to tidy up the source code so that it is better
- designed and Purifies cleanly on shutdown.
-
- * src/Makefile: Removed the need for libGperf.{a,so}.
-
- * src/Key_List: Changed read_keys() to return a value so that we
- can check for errors.
-
-Fri Sep 25 08:54:41 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/Key_List.cpp (Key_List ctor): reordered initializers to
- match declaration order.
-
-Thu Sep 24 18:20:36 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List: Changed char_set field to keysig to be consistent
- with the paper.
-
- * src/Hash_Table: Renamed operator() to find(). What the heck was
- I thinking in '92?!
-
- * src/gperf.cpp (main): Removed the LARGE_STACK_ARRAYS option.
- This was annoying...
-
-Tue Sep 22 21:30:59 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/corba.exp: added this file, it hadn't been checked in.
-
-Tue Sep 22 18:02:01 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Makefile: Added a new test for CORBA keywords.
-
- * tests: Added a new test for the type of input that is causing
- problems with TAO's IDL compiler.
-
- * src/Key_List.cpp (output_lookup_array): Changed the assertion
- from assert (i != 0) to assert (i >= 0) since I think that's
- correct... (ah, so THAT's why comments are important thinks the
- '92 Doug... ;-)).
-
- * src/Options: Improved the comments for the '-h' option to
- reflect current reality...
-
-Thu Sep 17 11:42:53 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (output_lookup_array): Put 'signed' keyword
- before 'char lookup' to avoid problems on platforms where char
- is defined as unsigned. Thanks to Margherita Vittone Wiersma
- <vittone@fndaub.fnal.gov> for reporting this.
-
-Wed Sep 16 19:08:13 1998 David L. Levine <levine@cs.wustl.edu>
-
- * Makefile: don't run build/run tests on CROSS-COMPILE platforms.
- Thanks to Raja Ati <rati@montereynets.com> for reporting this
- problem.
-
-Wed Sep 16 18:18:41 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/Makefile: Changed CFLAGS to CCFLAGS to make aCC happy on
- HP/UX. Thanks to John Mulhern for reporting this.
-
-Tue Sep 15 18:14:08 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/test-6.exp (Usage): Fixed the usage so diff should no
- longer complain... Thanks to David for reporting this.
-
-Tue Sep 15 21:54:07 1998 David L. Levine <levine@cs.wustl.edu>
-
- * tests/Makefile: filter timestamps from test output so that
- diffs will pass.
-
-Tue Sep 15 18:14:08 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests: Updated the expected output to look for 2.7 vs 2.6
- of gperf.
-
-Thu Sep 10 16:50:21 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-
- * tests/Makefile:
- The test programs were not linking against ACE.
-
-Tue Sep 8 12:45:53 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * tests/test.cpp: Added #include "ace/OS.h" so that the ACE_RCSID
- macro is defined. Thanks to Arturo Montes
- <mitosys@colomsat.net.co> for reporting this.
-
-Sat Aug 22 08:44:15 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.cpp : Fixed the typo (-V instead of -v) under 'case
- h' print string.
-
-Fri Aug 21 11:57:57 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/Key_List.cpp (set_output_types): Make sure that we leave an
- extra space between the struct tag and the wordlist so the
- compiler doesn't complain. Thanks to Andy Gokhale for reporting
- this.
-
- * src/gperf.cpp: Modified the main() program so that it doesn't
- print the starting time until AFTER we've parsed the arguments.
-
- * src/Version.cpp: Updated the version to 2.7 to reflect the
- new changes.
-
- * src/Options.cpp (operator): Added a new -V option, which just
- exits with a value of 0. This is useful for checking if gperf
- exists in the search path. We use the feature in TAO.
-
- * src: Removed the globally overloaded new operator. This was a
- portability pain and didn't really improve performance very
- much.
-
- * src/Options.cpp (operator): Fixed '%e' to be '%r' to come up to
- speed with ACE changes.
-
-Sat Aug 15 07:59:58 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/gperf.cpp (main): added ACE_UNUSED_ARGS for argc and
- argv if ! ACE_HAS_GPERF.
-
-Fri Aug 14 13:47:00 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/new.cpp (delete): aded ACE_UNUSED_ARG (ptr).
-
-Fri Jul 31 18:28:45 1998 Gonzalo Diethelm <gonzo@tango.cs.wustl.edu>
-
- * src/Bool_Array.cpp:
- * src/Gen_Perf.cpp:
- * src/Hash_Table.cpp:
- * src/Iterator.cpp:
- * src/Key_List.cpp:
- * src/List_Node.cpp:
- * src/Options.cpp:
- * src/Vectors.cpp:
- * src/Version.cpp:
- * src/gperf.cpp:
- * src/new.cpp:
- * tests/test.cpp:
- Added ACE_RCSID to these files.
-
-Tue Jul 21 09:30:51 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/gperf.cpp (main): added a trivial main () if ! ACE_HAS_GPERF,
- so that the link succeeds.
-
-Mon Jul 20 16:02:18 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/Makefile: fixed INSTALL. It works with the latest
- $ACE_ROOT/include/makeinclude/rules.lib.GNU.
-
-Mon Jul 20 15:35:59 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * Wrapped all the files with "#if defined (ACE_HAS_GPERF)" so that
- it compiles on appropriate platforms.
-
-Sun Jul 19 22:21:17 1998 David L. Levine <levine@cs.wustl.edu>
-
- * src/new.cpp (new): wrapped assignment with parens where used
- as a conditional.
-
- * src/Iterator.cpp (Iterator), List_Node.cpp (List_Node),
- Hash_Table.cpp (Hash_Table):
- reordered initializers to match declaration order.
-
- * src/Hash_Table.cpp (~Hash_Table),
- * src/Bool_Array.cpp (init): cast sizeof
- to int to avoid compiler (g++/Linux alpha) warning about
- mismatch with %d format specifier.
-
- * src/new.cpp (new): use ACE_THROW_SPEC instead of
- _RWSTD_THROW_SPEC.
-
-Sun Jul 19 13:11:59 1998 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-
- * src/new.cpp: Added support for the _RWSTD_THROW_SPEC macro for
- DEC UNIX. Thanks to David Levine for reporting this.
-
- * src/Key_List.cpp: Fixed one of those nasty "for loop counter
- scoping glitches. Again, thanks to David Levine and DEC C++ for
- catching this. * src/Key_List.cpp (reorder): Clarified the code
- so that we don't write horrible C-style hacks. Thanks to David
- Levine and the DEC C++ compiler for finding this one!
-
-Tue Jun 30 15:43:16 1998 Alexander Babu Arulanthu <alex@cs.wustl.edu>
-
- * src/Options.h :
- * src/Options.cpp :
- * src/Key_List.cpp : Added the following options to gperf.
- - "-m" To mute warnings. (If -D option is enabled,
- gperf doesnt say anything about duplicate hash
- values etc.
- - "-M" To skip class definition while in C++ mode.
- - "-J" To skip the line "#include <string.h>" in the
- output.
-
-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 24d0d5f2b3f..00000000000
--- a/apps/gperf/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU
-
-ifeq ($(CROSS-COMPILE),)
- DIRS = src tests
-else
- DIRS=
-endif # ! CROSS-COMPILE
-
-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/Makefile.am b/apps/gperf/Makefile.am
deleted file mode 100644
index 308d0ce01b5..00000000000
--- a/apps/gperf/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Top-level Makefile for gperf
-##
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-SUBDIRS = src ##tests
-
-GPERF_VERSION = 2.0
-
-VERSION = $(GPERF_VERSION)
-
-info_TEXINFOS = gperf.texi
-
-man_MANS = gperf.1
-
-EXTRA_DIST = $(man_MANS) gperf.info
diff --git a/apps/gperf/Makefile.bor b/apps/gperf/Makefile.bor
deleted file mode 100644
index 063fce565bf..00000000000
--- a/apps/gperf/Makefile.bor
+++ /dev/null
@@ -1,3 +0,0 @@
-DIRS = src
-
-!include <$(ACE_ROOT)\include\makeinclude\recurse.bor>
diff --git a/apps/gperf/README b/apps/gperf/README
deleted file mode 100644
index 11768b81f94..00000000000
--- a/apps/gperf/README
+++ /dev/null
@@ -1,29 +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:
-
- 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 the regression tests.
-
-Output from the GPERF program is used to recognize reserved words in
-the GNU C, GNU C++, and GNU Pascal compilers. In addition, it is used
-by TAO'd IDL compiler to generate operation dispatching tables.
-
-For more information on GPERF, please see
-
-http://www.cs.wustl.edu/~schmidt/C++-USENIX-90.ps.gz
-
-Happy hacking!
-
-Douglas C. Schmidt
-schmidt@cs.wustl.edu
diff --git a/apps/gperf/gperf.1 b/apps/gperf/gperf.1
deleted file mode 100644
index a031a7b0435..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 c27a6ddedf4..00000000000
--- a/apps/gperf/gperf.info
+++ /dev/null
@@ -1,1130 +0,0 @@
-This is Info file gperf.info, produced by Makeinfo version 1.68 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)
-
-GNU GPERF Utility
-*****************
-
-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: Top1224
-Node: Copying2511
-Node: Contributors15814
-Node: Motivation16914
-Node: Search Structures18181
-Node: Description21734
-Node: Input Format23554
-Node: Declarations24349
-Node: Keywords26656
-Node: Functions28247
-Node: Output Format28741
-Node: Options31211
-Node: Bugs44581
-Node: Projects47268
-Node: Implementation48845
-Node: Bibliography49564
-
-End Tag Table
diff --git a/apps/gperf/gperf.texi b/apps/gperf/gperf.texi
deleted file mode 100644
index 0e1f45bf91e..00000000000
--- a/apps/gperf/gperf.texi
+++ /dev/null
@@ -1,1188 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-
-@c $Id$
-
-@include version.texi
-
-@c %**start of header
-@settitle User's Guide to @code{gperf}
-@setfilename gperf.info
-@c %**end of header
-
-@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
-@title GNU GPERF Utility
-@subtitle User's Guide
-@subtitle Last updated @value{UPDATED}
-@subtitle For GPERF version @value{VERSION}
-@author Douglas C. Schmidt
-
-@c The following two commands
-@c start the copyright page.
-@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)
-@top GNU GPERF Utility
-@chapter 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/mdate-sh b/apps/gperf/mdate-sh
deleted file mode 100755
index 37171f21fbd..00000000000
--- a/apps/gperf/mdate-sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-# Get modification time of a file or directory and pretty-print it.
-# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
-# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
-#
-# 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, 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.
-
-# Prevent date giving response in another language.
-LANG=C
-export LANG
-LC_ALL=C
-export LC_ALL
-LC_TIME=C
-export LC_TIME
-
-# Get the extended ls output of the file or directory.
-# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
-if ls -L /dev/null 1>/dev/null 2>&1; then
- set - x`ls -L -l -d $1`
-else
- set - x`ls -l -d $1`
-fi
-# The month is at least the fourth argument
-# (3 shifts here, the next inside the loop).
-shift
-shift
-shift
-
-# Find the month. Next argument is day, followed by the year or time.
-month=
-until test $month
-do
- shift
- case $1 in
- Jan) month=January; nummonth=1;;
- Feb) month=February; nummonth=2;;
- Mar) month=March; nummonth=3;;
- Apr) month=April; nummonth=4;;
- May) month=May; nummonth=5;;
- Jun) month=June; nummonth=6;;
- Jul) month=July; nummonth=7;;
- Aug) month=August; nummonth=8;;
- Sep) month=September; nummonth=9;;
- Oct) month=October; nummonth=10;;
- Nov) month=November; nummonth=11;;
- Dec) month=December; nummonth=12;;
- esac
-done
-
-day=$2
-
-# Here we have to deal with the problem that the ls output gives either
-# the time of day or the year.
-case $3 in
- *:*) set `date`; eval year=\$$#
- case $2 in
- Jan) nummonthtod=1;;
- Feb) nummonthtod=2;;
- Mar) nummonthtod=3;;
- Apr) nummonthtod=4;;
- May) nummonthtod=5;;
- Jun) nummonthtod=6;;
- Jul) nummonthtod=7;;
- Aug) nummonthtod=8;;
- Sep) nummonthtod=9;;
- Oct) nummonthtod=10;;
- Nov) nummonthtod=11;;
- Dec) nummonthtod=12;;
- esac
- # For the first six month of the year the time notation can also
- # be used for files modified in the last year.
- if (expr $nummonth \> $nummonthtod) > /dev/null;
- then
- year=`expr $year - 1`
- fi;;
- *) year=$3;;
-esac
-
-# The result.
-echo $day $month $year
diff --git a/apps/gperf/src/Bool_Array.cpp b/apps/gperf/src/Bool_Array.cpp
deleted file mode 100644
index fa14f8a1930..00000000000
--- a/apps/gperf/src/Bool_Array.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Fast lookup table abstraction implemented as an Iteration Number Array
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Bool_Array.h"
-
-ACE_RCSID(src, Bool_Array, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-// Prints out debugging diagnostics.
-
-Bool_Array::~Bool_Array (void)
-{
- if (option[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- "\ndumping boolean array information\n"
- "size = %u\niteration number = %u\nend of array dump\n",
- size_,
- generation_number_));
- delete [] this->storage_array_;
-}
-
-Bool_Array::Bool_Array (void)
- : storage_array_ (0),
- generation_number_ (0),
- size_ (0)
-{
-}
-
-int
-Bool_Array::open (u_long s)
-{
- this->generation_number_ = 1;
- this->size_ = s;
-
- ACE_NEW_RETURN (storage_array_,
- u_long[s],
- -1);
-
- ACE_OS::memset (storage_array_,
- 0,
- s * sizeof *storage_array_);
-
- if (option[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- "\nbool array size = %u, total bytes = %u\n",
- size_,
- size_ * (int) sizeof *storage_array_));
- return 0;
-}
-
-int
-Bool_Array::find (u_long slot)
-{
- if (storage_array_[slot] == generation_number_)
- return 1;
- else
- {
- storage_array_[slot] = generation_number_;
- return 0;
- }
-}
-
-void
-Bool_Array::reset (void)
-{
- if (++generation_number_ == 0)
- {
- if (option[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- "(re-initializing bool_array)..."));
-
- this->generation_number_ = 1;
- ACE_OS::memset (storage_array_,
- 0,
- size_ * sizeof *storage_array_);
- if (option[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- "done\n"));
- }
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Bool_Array.h b/apps/gperf/src/Bool_Array.h
deleted file mode 100644
index 30902b10752..00000000000
--- a/apps/gperf/src/Bool_Array.h
+++ /dev/null
@@ -1,76 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef BOOL_ARRAY_H
-#define BOOL_ARRAY_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Options.h"
-
-#if defined (ACE_HAS_GPERF)
-
-class Bool_Array
-{
- // = TITLE
- // Efficient lookup table abstraction implemented as a "Generation
- // Number" Array.
- //
- // = DESCRIPTION
- // Uses a "Generation Numbering" implementation to minimize
- // initialization time.
-public:
- // = Initialization and termination methods.
- Bool_Array (void);
- // Constructor
-
- int open (u_long);
- // Initialize the array (requires O(n) time).
-
- ~Bool_Array (void);
- // Destructor.
-
- int find (u_long value);
- // Locate the <value> in the array (requires O(1) time).
-
- void reset (void);
- // Reinitializes the array (requires O(1) time).
-
-private:
- u_long *storage_array_;
- // Initialization of the index space.
-
- u_long generation_number_;
- // Keep track of the current Generation.
-
- u_long size_;
- // Keep track of array size.
-};
-
-#endif /* ACE_HAS_GPERF */
-#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 a946421a80d..00000000000
--- a/apps/gperf/src/Gen_Perf.cpp
+++ /dev/null
@@ -1,454 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Gen_Perf.h"
-
-ACE_RCSID(src, Gen_Perf, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "Vectors.h"
-
-// Current release version.
-extern const 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)
- : fewest_collisions (0),
- num_done (1)
-{
-}
-
-// 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 set1 and set2 must be
-// ordered. Returns the length of the combined set.
-
-int
-Gen_Perf::compute_disjoint_union (char *set1, char *set2, char *set3)
-{
- char *base = set3;
-
- while (*set1 && *set2)
- if (*set1 == *set2)
- set1++, set2++;
- else
- {
- *set3 = *set1 < *set2 ? *set1++ : *set2++;
- if (set3 == base || *set3 != *(set3 - 1))
- set3++;
- }
-
- while (*set1)
- {
- *set3 = *set1++;
- if (set3 == base || *set3 != *(set3 - 1))
- set3++;
- }
-
- while (*set2)
- {
- *set3 = *set2++;
- if (set3 == base || *set3 != *(set3 - 1))
- set3++;
- }
- *set3 = '\0';
- return set3 - 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.
-
-void
-Gen_Perf::sort_set (char *union_set, int len)
-{
- for (int 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 keysig's hash value.
-
-int
-Gen_Perf::hash (List_Node *key_node)
-{
- int sum = option[NOLENGTH] ? 0 : key_node->length;
-
- for (char *ptr = key_node->keysig; *ptr; ptr++)
- sum += Vectors::asso_values[*ptr];
-
- key_node->hash_value = sum;
- return 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;
-
- if (!option[FAST])
- total_iterations = option.asso_max ();
- else
- {
- total_iterations = option.iterations ();
-
- if (total_iterations == 0)
- total_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.jump () ? option.jump () : ACE_OS::rand ()) & option.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 (this->hash (ptr)) == 0
- || ++collisions < fewest_collisions;
- ptr = ptr->next)
- if (ptr == curr)
- {
- fewest_collisions = collisions;
- if (option[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- "- 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.
-
-int
-Gen_Perf::change (List_Node *prior, List_Node *curr)
-{
- if (option[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- "collision on keyword #%d, prior = \"%s\", curr = \"%s\" hash = %d\n",
- num_done,
- prior->key,
- curr->key,
- curr->hash_value));
- Gen_Perf::sort_set (this->union_set,
- compute_disjoint_union (prior->keysig,
- curr->keysig,
- this->union_set));
-
- // Try changing some values, if change doesn't alter other values
- // continue normal action.
- fewest_collisions++;
-
- for (char *temp = union_set; *temp != '\0'; temp++)
- if (affects_prev (*temp, curr) == 0)
- {
- if (option[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- " by changing asso_value['%c'] (char #%d) to %d\n",
- *temp,
- temp - union_set + 1,
- Vectors::asso_values[*temp]));
- // Good, doesn't affect previous hash values, we'll take it.
- return 0;
- }
-
- for (List_Node *ptr = this->key_list.head;
- ptr != curr;
- ptr = ptr->next)
- this->hash (ptr);
-
- this->hash (curr);
-
- if (option[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- "** collision not resolved after %d iterations, %d duplicates remain, continuing...\n",
- !option[FAST] ? option.asso_max () : option.iterations () ? option.iterations () : this->key_list.keyword_list_length (),
- fewest_collisions + this->key_list.total_duplicates));
- return 0;
-}
-
-int
-Gen_Perf::open (void)
-{
- if (this->key_list.read_keys () == -1)
- return -1;
-
- if (option[ORDER])
- this->key_list.reorder ();
-
- int asso_value_max = option.asso_max ();
- int non_linked_length = this->key_list.keyword_list_length ();
-
- 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.asso_max (ACE_POW (asso_value_max));
-
- if (option[RANDOM])
- {
- ACE_OS::srand (ACE_OS::time (0));
-
- for (int i = 0; i < ACE_STANDARD_CHARACTER_SET_SIZE; i++)
- Vectors::asso_values[i] = (ACE_OS::rand () & asso_value_max - 1);
- }
- else
- {
- int asso_value = option.initial_value ();
-
- // Initialize array if user requests non-zero default.
- if (asso_value)
- for (int i = ACE_STANDARD_CHARACTER_SET_SIZE - 1; i >= 0; i--)
- Vectors::asso_values[i] = asso_value & option.asso_max () - 1;
- }
-
- this->max_hash_value = this->key_list.max_key_length ()
- + option.asso_max ()
- * option.max_keysig_size ();
-
- ACE_NEW_RETURN (this->union_set,
- char[2 * option.max_keysig_size () + 1],
- -1);
- 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[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- "total non-linked keys = %d\n"
- "total duplicates = %d\n"
- "maximum associated value is %d\n"
- "maximum size of generated hash table is %d\n",
- non_linked_length,
- this->key_list.total_duplicates,
- asso_value_max,
- max_hash_value));
- if (this->char_search.open (max_hash_value + 1) == -1)
- return -1;
- return 0;
-}
-
-// For binary search, do normal string sort on the keys, and then
-// assign hash values from 0 to N-1. Then go ahead with the normal
-// logic that is there for perfect hashing.
-int
-Gen_Perf::compute_binary_search (void)
-{
- // Do a string sort.
- this->key_list.string_sort ();
-
- // Assign hash values.
- List_Node *curr;
- int hash_value;
- for (hash_value = 0, curr = this->key_list.head;
- curr != 0;
- curr = curr->next, hash_value++)
- {
- curr->hash_value = hash_value;
- }
-
- return 0;
-}
-
-int
-Gen_Perf::compute_linear_search (void)
-{
- // Convert the list of keys to a linear list without
- // equivalence classes.
- this->key_list.string_sort ();
-
- // Assign hash values.
- List_Node *curr;
- int hash_value;
- for (hash_value = 0, curr = this->key_list.head;
- curr != 0;
- curr = curr->next, hash_value++)
- {
- curr->hash_value = hash_value;
- }
- return 0;
-}
-
-int
-Gen_Perf::compute_perfect_hash (void)
-{
- List_Node *curr;
-
- for (curr = this->key_list.head;
- curr != 0;
- curr = curr->next)
- {
- this->hash (curr);
-
- for (List_Node *ptr = this->key_list.head;
- ptr != curr;
- ptr = ptr->next)
- if (ptr->hash_value == curr->hash_value)
- {
- if (this->change (ptr, curr) == -1)
- return -1;
- 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 (this->hash (curr)) != 0)
- if (option[DUP])
- // Keep track of the number of "dynamic" links (i.e., keys
- // that hash to the same value) so that we can use it later
- // when generating the output.
- 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",
- this->hash (curr)));
- return -1;
- }
-
- return 0;
-}
-
-// Does the hard stuff.... Initializes the Bool 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::run (void)
-{
- if (this->open () == -1)
- return 1;
-
- if (option[BINARYSEARCH])
- {
- if (this->compute_binary_search () == -1)
- return 1;
- }
- else if (option[LINEARSEARCH])
- {
- if (this->compute_linear_search () == -1)
- return 1;
- }
- else
- {
- if (this->compute_perfect_hash () == -1)
- 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 ();
- return 0;
-}
-
-// Prints out some diagnostics upon completion.
-
-Gen_Perf::~Gen_Perf (void)
-{
- if (option[DEBUGGING])
- {
- ACE_DEBUG ((LM_DEBUG,
- "\ndumping occurrence and associated values tables\n"));
- for (int i = 0; i < ACE_STANDARD_CHARACTER_SET_SIZE; i++)
- if (Vectors::occurrences[i])
- ACE_DEBUG ((LM_DEBUG,
- "Vectors::asso_values[%c] = %6d, Vectors::occurrences[%c] = %6d\n",
- i,
- Vectors::asso_values[i],
- i,
- Vectors::occurrences[i]));
- ACE_DEBUG ((LM_DEBUG,
- "end table dumping\n"));
- }
-
- delete [] this->union_set;
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Gen_Perf.h b/apps/gperf/src/Gen_Perf.h
deleted file mode 100644
index b9038face7a..00000000000
--- a/apps/gperf/src/Gen_Perf.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef GEN_PERF_H
-#define GEN_PERF_H
-
-#include "Options.h"
-#include "Key_List.h"
-#include "Bool_Array.h"
-
-#if defined (ACE_HAS_GPERF)
-
-class Gen_Perf
-{
- // = TITLE
- // Provides high-level routines to manipulate the keyword list
- // structures the code generation output.
-public:
- // = Initialization and termination methods.
- Gen_Perf (void);
- // Constructor.
-
- ~Gen_Perf (void);
- // Destructor
-
- int run (void);
- // Attempt to generate a perfect hash function.
-
-private:
- int open (void);
- int change (List_Node *prior, List_Node *curr);
- int affects_prev (char c, List_Node *curr);
- int compute_perfect_hash (void);
- int compute_binary_search (void);
- int compute_linear_search (void);
- static int hash (List_Node *key_node);
- static int compute_disjoint_union (char *s1, char *s2, char *s3);
- 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.
-
- char *union_set;
- // Disjoint union.
-
- Key_List key_list;
- // List of the keys we're trying to map into a perfect hash
- // function.
-
- Bool_Array char_search;
- // Table that keeps track of key collisions.
-};
-
-#endif /* ACE_HAS_GPERF */
-#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 04f3a403339..00000000000
--- a/apps/gperf/src/Hash_Table.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Hash_Table.h"
-
-ACE_RCSID(src, Hash_Table, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "ace/ACE.h"
-
-// 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!!!
-
-Hash_Table::Hash_Table (size_t s)
- : size_ (ACE_POW (s)),
- collisions_ (0)
-{
- if (this->size_ == 0)
- this->size_ = 1;
- ACE_NEW (this->table_,
- List_Node*[this->size_]);
- ACE_OS::memset ((char *) this->table_,
- 0,
- this->size_ * sizeof *this->table_);
-}
-
-Hash_Table::~Hash_Table (void)
-{
- if (option[DEBUGGING])
- {
- u_int keysig_width = option.max_keysig_size () > ACE_OS::strlen ("keysig")
- ? option.max_keysig_size ()
- : ACE_OS::strlen ("keysig");
-
- ACE_DEBUG ((LM_DEBUG,
- "\ndumping the hash table\ntotal available table slots = %d, total bytes = %d, total collisions = %d\n"
- "location, %*s, keyword\n",
- this->size_,
- this->size_ * (int) sizeof *this->table_,
- this->collisions_,
- keysig_width,
- "keysig"));
-
- for (int i = this->size_ - 1; i >= 0; i--)
- if (this->table_[i])
- ACE_DEBUG ((LM_DEBUG,
- "%8d, %*s, %s\n",
- i,
- keysig_width,
- this->table_[i]->keysig,
- this->table_[i]->key));
- ACE_DEBUG ((LM_DEBUG,
- "end dumping hash table\n\n"));
- }
-
- delete [] this->table_;
-}
-
-// 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::find (List_Node *item,
- int ignore_length)
-{
- u_int hash_val = ACE::hash_pjw (item->keysig);
- // The following works since the hash table size_ is always a power
- // of 2...
- size_t size = this->size_ - 1;
- int probe;
- int increment = (hash_val ^ (ignore_length == 0 ? item->length : 0) | 1) & size;
-
- for (probe = hash_val & size;
- this->table_[probe]
- && (ACE_OS::strcmp (this->table_[probe]->keysig, item->keysig) != 0
- || (ignore_length == 0 && this->table_[probe]->length != item->length));
- probe = probe + increment & size)
- this->collisions_++;
-
- if (this->table_[probe])
- return this->table_[probe];
- else
- {
- this->table_[probe] = item;
- return 0;
- }
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Hash_Table.h b/apps/gperf/src/Hash_Table.h
deleted file mode 100644
index dba0c478eff..00000000000
--- a/apps/gperf/src/Hash_Table.h
+++ /dev/null
@@ -1,66 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef HASH_TABLE_H
-#define HASH_TABLE_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Options.h"
-#include "List_Node.h"
-
-#if defined (ACE_HAS_GPERF)
-// @@ 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 (size_t s);
-
- ~Hash_Table (void);
-
- List_Node *find (List_Node *item, int ignore_length);
-
-private:
- List_Node **table_;
- // Vector of pointers to linked lists of List_Node's.
-
- size_t size_;
- // Size of the vector.
-
- int collisions_;
- // Find out how well our double hashing is working!
-};
-
-#endif /* ACE_HAS_GPERF */
-#endif /* HASH_TABLE_H */
diff --git a/apps/gperf/src/Iterator.cpp b/apps/gperf/src/Iterator.cpp
deleted file mode 100644
index 75d6e40ddef..00000000000
--- a/apps/gperf/src/Iterator.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Iterator.h"
-
-ACE_RCSID(src, Iterator, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-// Constructor for Iterator.
-
-Iterator::Iterator (char *s,
- int lo,
- int hi,
- int word_end,
- int bad_val,
- int key_end)
- : str (s),
- end (key_end),
- end_word (word_end),
- error_value (bad_val),
- 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;
- }
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Iterator.h b/apps/gperf/src/Iterator.h
deleted file mode 100644
index 67fbd8e4603..00000000000
--- a/apps/gperf/src/Iterator.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef ITERATOR_H
-#define ITERATOR_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Options.h"
-
-#if defined (ACE_HAS_GPERF)
-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 /* ACE_HAS_GPERF */
-#endif /* ITERATOR_H */
diff --git a/apps/gperf/src/Key_List.cpp b/apps/gperf/src/Key_List.cpp
deleted file mode 100644
index 19f856148d8..00000000000
--- a/apps/gperf/src/Key_List.cpp
+++ /dev/null
@@ -1,1940 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Key_List.h"
-
-ACE_RCSID(src, Key_List, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "ace/Read_Buffer.h"
-#include "Hash_Table.h"
-
-// Default type for generated code.
-const char *const Key_List::default_array_type = "char *";
-
-// in_word_set return type, by default.
-const char *const Key_List::default_return_type = "char *";
-
-// How wide the printed field width must be to contain the maximum
-// hash value.
-int Key_List::field_width = 0;
-int Key_List::determined_[ACE_STANDARD_CHARACTER_SET_SIZE];
-
-// Destructor dumps diagnostics during debugging.
-
-Key_List::~Key_List (void)
-{
- if (option[DEBUGGING])
- this->dump ();
-
- // Free up all the nodes in the list.
- while (this->head != 0)
- {
- List_Node *temp;
-
- // Make sure to delete the linked nodes, as well.
- for (List_Node *ptr = this->head->link;
- ptr != 0;
- ptr = temp)
- {
- temp = ptr->link;
- delete ptr;
- }
-
- temp = this->head->next;
- delete this->head;
- this->head = temp;
- }
-}
-
-// 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::special_input (char delimiter)
-{
- int size = 80;
- char *buf = 0;
- ACE_NEW_RETURN (buf,
- char[size],
- 0);
- int c;
-
- for (int i = 0; (c = getchar ()) != EOF; i++)
- {
- if (c == '%')
- {
- c = getchar ();
- if (c == delimiter)
- {
- // Discard newline...
- while ((c = getchar ()) != '\n')
- continue;
-
- if (i == 0)
- {
- buf[0] = '\0';
- return buf;
- }
- 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 = 0;
- ACE_NEW_RETURN (temp,
- char[size *= 2],
- 0);
- for (int j = 0; j < i; j++)
- temp[j] = buf[j];
-
- delete [] buf;
- buf = temp;
- }
- buf[i] = c;
- }
-
- return 0;
-}
-
-// Stores any C/C++ source code that must be included verbatim into
-// the generated code output.
-
-char *
-Key_List::save_include_src (void)
-{
- int c = getchar ();
-
- if (c != '%')
- ungetc (c, stdin);
- else if ((c = getchar ()) != '{')
- ACE_ERROR_RETURN ((LM_ERROR,
- "internal error, %c != '{' on line %l in file %N",
- c),
- 0);
- else
- return special_input ('}');
- return (char *) "";
-}
-
-// 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::array_type (void)
-{
- return special_input ('%');
-}
-
-// Sets up the Return_Type, the Struct_Tag type and the Array_Type
-// based upon various user Options.
-
-int
-Key_List::output_types (void)
-{
- if (option[TYPE])
- {
- array_type_ = array_type ();
- if (array_type_ == 0)
- // Something's wrong, but we'll catch it later on....
- return -1;
- else
- {
- // 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...
- {
- ACE_NEW_RETURN (return_type,
- char[struct_tag_length + 2],
- -1);
- ACE_OS::strncpy (return_type,
- array_type_,
- struct_tag_length);
- return_type[struct_tag_length] = '*';
- return_type[struct_tag_length + 1] = '\0';
- }
-
- ACE_NEW_RETURN (struct_tag,
- char[struct_tag_length + 2],
- -1);
- ACE_OS::strncpy (struct_tag,
- array_type_,
- struct_tag_length);
- if (struct_tag[struct_tag_length] != ' ')
- {
- struct_tag[struct_tag_length] = ' ';
- struct_tag_length++;
- }
- struct_tag[struct_tag_length] = '\0';
- }
- }
- else if (option[POINTER]) // Return a char *.
- return_type = (char *) Key_List::default_array_type;
- return 0;
-}
-
-// 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.
-
-int
-Key_List::read_keys (void)
-{
- this->include_src = this->save_include_src ();
- if (this->include_src == 0)
- return -1;
- else if (this->output_types () == -1)
- return -1;
- else
- {
- ACE_Read_Buffer input (stdin);
-
- char *buffer = input.read ('\n');
-
- if (buffer == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "No words in input file, did you forget to prepend %%%%"
- " or use -t accidentally?\n"),
- -1);
- // Read in all the keywords from the input file.
- else
- {
- List_Node *temp;
- const char *delimiter = option.delimiter ();
- ACE_NEW_RETURN (this->head,
- List_Node (buffer,
- ACE_OS::strcspn (buffer,
- delimiter)),
- -1);
- for (temp = this->head;
- (buffer = input.read ('\n'))
- && ACE_OS::strcmp (buffer, "%%");
- temp = temp->next)
- {
- ACE_NEW_RETURN (temp->next,
- List_Node (buffer,
- ACE_OS::strcspn (buffer,
- delimiter)),
- -1);
- this->total_keys++;
- }
-
- // See if any additional source code is included at end of
- // this file.
- if (buffer)
- additional_code = 1;
-
- this->list_len = this->total_keys;
-
- // Make large hash table for efficiency.
- Hash_Table table (this->list_len * Key_List::TABLE_MULTIPLE);
- List_Node *trail = 0;
-
- // Test whether there are any links and also set the maximum
- // length an identifier in the keyword list.
-
- for (temp = head;
- temp != 0;
- temp = temp->next)
- {
- List_Node *ptr = table.find (temp, option[NOLENGTH]);
-
- // Check for static key 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 == 0)
- trail = temp;
- else
- {
- 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[DEBUGGING])
- ACE_ERROR ((LM_ERROR,
- "Static key link: \"%s\" = \"%s\", with key set \"%s\".\n",
- temp->key,
- ptr->key,
- temp->keysig));
- }
-
- // 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;
- }
- }
-
- // Exit program if links exists and option[DUP] not set, since
- // we can't continue.
- if (total_duplicates)
- {
- if (option[DUP])
- {
- if (!option[MUTE])
- ACE_ERROR_RETURN ((LM_ERROR,
- "%d input keysigs have identical hash values, examine output carefully...\n",
- total_duplicates),
- 0);
- }
- else
- ACE_ERROR_RETURN ((LM_ERROR,
- "%d input keysigs have identical hash values,\ntry different key positions or use option -D.\n",
- total_duplicates),
- -1);
- }
- if (option[ALLCHARS])
- option.keysig_size (max_key_len);
- }
-
- return 0;
-}
-
-// 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
- || key_sort && strcmp (list1->key, list2->key) >= 0)
- {
- 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::occurrence (List_Node *ptr)
-{
- int value = 0;
-
- for (char *temp = ptr->keysig; *temp; temp++)
- value += Vectors::occurrences[*temp];
-
- return value;
-}
-
-// Sets the index location for all keysig characters that are now
-// determined.
-
-inline void
-Key_List::determined (List_Node *ptr)
-{
- for (char *temp = ptr->keysig; *temp; temp++)
- Key_List::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->keysig; 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 = occurrence (ptr);
-
- // Switch to sorting by occurrence.
- hash_sort = 0;
- occurrence_sort = 1;
-
- for (ptr = head = merge_sort (head); ptr->next; ptr = ptr->next)
- {
- 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 (void)
-{
- List_Node *temp;
- for (temp = head; temp->next; temp = temp->next)
- continue;
-
- min_hash_value = head->hash_value;
- max_hash_value = temp->hash_value;
-
- if (!option[ENUM])
- ACE_OS::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#define WORDLIST_SIZE %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, total_keys + min_hash_value);
- else if (option[GLOBAL])
- ACE_OS::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"
- " WORDLIST_SIZE = %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, total_keys + min_hash_value);
-}
-
-// 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 (int use_keyword_table)
-{
- if (!option[GLOBAL] && use_keyword_table == 0)
- {
- if (option[LENTABLE] && option[DUP])
- output_keylength_table ();
- if (option[POINTER] && option[TYPE])
- output_keyword_table ();
- }
-
- char *comp_buffer;
- List_Node *curr = head;
- int pointer_and_type_enabled = option[POINTER] && option[TYPE];
- int total_switches = option.total_switches ();
- int switch_size = keyword_list_length () / total_switches;
-
- if (pointer_and_type_enabled)
- {
- // Keep track of the longest string we'll need!
- const char *s = "charmap[*str] == *resword->%s && !strncasecmp (str + 1, resword->%s + 1, len - 1)";
- comp_buffer =
- new char [strlen (s) + 2 * strlen (option.key_name ()) + 1];
- if (option[COMP])
- sprintf (comp_buffer, "%s == *resword->%s && !%s (str + 1, resword->%s + 1, len - 1)",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.key_name (),
- option[STRCASECMP] ? "strncasecmp" : "strncmp", option.key_name ());
- else
- sprintf (comp_buffer, "%s == *resword->%s && !%s (str + 1, resword->%s + 1)",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.key_name (),
- option[STRCASECMP] ? "strcasecmp" : "strcmp", option.key_name ());
- }
- else
- {
- if (option[COMP])
- comp_buffer = option[STRCASECMP]
- ? (char *) "charmap[*str] == *resword && !strncasecmp (str + 1, resword + 1, len - 1)"
- : (char *) "*str == *resword && !strncmp (str + 1, resword + 1, len - 1)";
- else
- comp_buffer = option[STRCASECMP]
- ? (char *) "charmap[*str] == *resword && !strncasecmp (str + 1, resword + 1, len - 1)"
- : (char *) "*str == *resword && !strcmp (str + 1, resword + 1)";
- }
- if (!option[OPTIMIZE])
- ACE_OS::printf (" if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\n {\n");
- ACE_OS::printf (" unsigned int key = %s (str, len);\n\n", option.hash_name ());
- if (!option[OPTIMIZE])
- ACE_OS::printf (" if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)\n");
-
- ACE_OS::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)
- ACE_OS::printf (" if (key <= %d)\n {\n", temp->hash_value);
- else
- ACE_OS::printf (" {\n");
-
- // Output each keyword as part of a switch statement indexed by
- // hash value.
-
- if (option[POINTER] || option[DUP] || use_keyword_table)
- {
- int i = 0;
-
- ACE_OS::printf (" %s%s *resword; %s\n\n",
- option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "",
- pointer_and_type_enabled ? struct_tag : "char",
- option[LENTABLE] && !option[DUP] ? "unsigned int key_len;" : "");
- if (total_switches == 1)
- {
- ACE_OS::printf (" switch (key)\n {\n");
- lowest_case_value = 0;
- }
- else
- ACE_OS::printf (" switch (key - %d)\n {\n", lowest_case_value);
-
- for (temp = curr; temp && ++i <= number_of_cases; temp = temp->next)
- {
- ACE_OS::printf (" case %*d:\n",
- Key_List::field_width,
- temp->hash_value - lowest_case_value);
-
- // Handle `static links,' i.e., those that occur during
- // the initial preprocessing.
-
- if (temp->link == 0)
- {
- if (option[DEBUGGING])
- ACE_OS::printf (" /* hash value = %4d, keyword = \"%s\" */\n",
- temp->hash_value,
- temp->key);
- }
- else
- {
- List_Node *links;
-
- for (links = temp; links; links = links->link)
- {
- if (option[DEBUGGING])
- ACE_OS::printf (" /* hash value = %4d, keyword = \"%s\" */\n",
- temp->hash_value,
- links->key);
- if (pointer_and_type_enabled)
- ACE_OS::printf (" resword = &wordlist[%d];\n", links->slot);
- else if (use_keyword_table)
- ACE_OS::printf (" resword = wordlist[%d];\n", links->slot);
- else
- ACE_OS::printf (" resword = \"%s\";\n", links->key);
- ACE_OS::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)
- ACE_OS::printf (" resword = &wordlist[%d];\n", temp->slot);
- else if (use_keyword_table)
- ACE_OS::printf (" resword = wordlist[%d];", temp->slot);
- else
- ACE_OS::printf (" resword = \"%s\";\n", temp->key);
- ACE_OS::printf (" if (%s) return resword;\n", comp_buffer);
- }
- if (pointer_and_type_enabled)
- ACE_OS::printf (" resword = &wordlist[%d];\n", temp->slot);
- else if (use_keyword_table)
- ACE_OS::printf (" resword = wordlist[%d];", temp->slot);
- else
- ACE_OS::printf (" resword = \"%s\";\n", temp->key);
- ACE_OS::printf (" return %s ? resword : 0;\n", comp_buffer);
- }
- else if (temp->link)
- ACE_OS::printf (" return 0;\n");
- else
- {
- if (pointer_and_type_enabled)
- ACE_OS::printf (" resword = &wordlist[%d];", temp->slot);
- else if (use_keyword_table)
- ACE_OS::printf (" resword = wordlist[%d];", temp->slot);
- else
- ACE_OS::printf (" resword = \"%s\";", temp->key);
- if (option[LENTABLE] && !option[DUP])
- ACE_OS::printf (" key_len = %d;", temp->length);
- ACE_OS::printf (" break;\n");
- }
- }
- ACE_OS::printf (" default: return 0;\n }\n");
- if (option[OPTIMIZE])
- ACE_OS::printf (" return resword;\n");
- else
- {
- ACE_OS::printf (option[LENTABLE] && !option[DUP]
- ? " if (len == key_len && %s)\n return resword;\n"
- : " if (%s)\n return resword;\n", comp_buffer);
- ACE_OS::printf (" return 0;\n");
- }
- ACE_OS::printf (" }\n");
- curr = temp;
- }
- else // Nothing special required here.
- {
- int i = 0;
- ACE_OS::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])
- ACE_OS::printf (" case %*d: if (len == %d) s = \"%s\"; else return 0; break;\n",
- Key_List::field_width,
- temp->hash_value - lowest_case_value,
- temp->length,
- temp->key);
- else
- ACE_OS::printf (" case %*d: s = \"%s\"; break;\n",
- Key_List::field_width,
- temp->hash_value - lowest_case_value,
- temp->key);
-
- ACE_OS::printf (" default: return 0;\n }\n ");
- if (option[COMP])
- ACE_OS::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
- ACE_OS::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;
- }
- }
- ACE_OS::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 slot = 0;
- int column = 0;
- const char *indent = option[GLOBAL] ? "" : " ";
- List_Node *temp;
-
- if (!option[DUP] && !option[SWITCH])
- {
- ACE_OS::printf ("\n%sstatic %sunsigned %s lengthtable[] =\n%s%s{\n ",
- indent,
- option[CONSTANT] ? "const " : "",
- max_key_len <= UCHAR_MAX ? "char" : (max_key_len <= USHRT_MAX ? "short" : "long"),
- indent,
- indent);
-
- for (temp = head; temp; temp = temp->next, slot++)
- {
-
- if (slot < temp->hash_value)
- for ( ; slot < temp->hash_value; slot++)
- ACE_OS::printf ("%3d,%s", 0, ++column % (max_column - 1) ? "" : "\n ");
-
- ACE_OS::printf ("%3d,%s", temp->length, ++column % (max_column - 1 ) ? "" : "\n ");
- }
-
- ACE_OS::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)
-{
- const char *l_brace = *head->rest ? "{" : "";
- const char *r_brace = *head->rest ? "}," : "";
- const char *indent = option[GLOBAL] ? "" : " ";
- int slot = 0;
- List_Node *temp;
-
- int pointer_and_type_enabled = option[POINTER] && option[TYPE];
- ACE_OS::printf ("%sstatic %s%swordlist[] =\n%s%s{\n",
- indent,
- option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "",
- struct_tag,
- indent,
- indent);
-
- // Skip over leading blank entries if there are no duplicates.
-
- if (0 < head->hash_value)
- ACE_OS::printf (" ");
-
-
- int column;
-
- for (column = 1; slot < head->hash_value; column++)
- {
- ACE_OS::printf ("%s\"\",%s%s%s",
- l_brace,
- option.fill_default (),
- r_brace,
- column % 9 ? "" : "\n ");
- slot++;
- }
-
- if (0 < head->hash_value && column % 10)
- ACE_OS::printf ("\n");
-
- // Generate an array of reserved words at appropriate locations.
-
- for (temp = head ; temp; temp = temp->next, slot++)
- {
- temp->slot = slot;
-
- if (!option[SWITCH] && (total_duplicates == 0 || !option[DUP]) && slot < temp->hash_value)
- {
- int column;
-
- ACE_OS::printf (" ");
-
- for (column = 1; slot < temp->hash_value; slot++, column++)
- ACE_OS::printf ("%s\"\",%s%s%s",
- l_brace,
- option.fill_default (),
- r_brace,
- column % 9 ? "" : "\n ");
-
- if (column % 10)
- ACE_OS::printf ("\n");
- else
- {
- ACE_OS::printf ("%s\"%s\", %s%s", l_brace, temp->key, temp->rest, r_brace);
- if (option[DEBUGGING])
- ACE_OS::printf (" /* hash value = %d, slot = %d */",
- temp->hash_value,
- temp->slot);
- putchar ('\n');
- continue;
- }
- }
-
- ACE_OS::printf (" %s\"%s\", %s%s", l_brace, temp->key, temp->rest, r_brace);
- if (option[DEBUGGING])
- ACE_OS::printf (" /* hash value = %d, slot = %d */",
- temp->hash_value,
- temp->slot);
- putchar ('\n');
-
- // Deal with links specially.
- if (temp->link)
- for (List_Node *links = temp->link; links; links = links->link)
- {
- links->slot = ++slot;
- ACE_OS::printf (" %s\"%s\", %s%s", l_brace, links->key, links->rest, r_brace);
- if (option[DEBUGGING])
- ACE_OS::printf (" /* hash value = %d, slot = %d */",
- links->hash_value,
- links->slot);
- putchar ('\n');
- }
-
- }
- ACE_OS::printf ("%s%s};\n\n", indent, indent);
-}
-
-// Generates C code for the binary search algorithm that returns
-// the proper encoding for each key word
-
-int
-Key_List::output_binary_search_function (void)
-{
- ACE_OS::printf ("%s\n", include_src);
-
- // Get prototype for strncmp() and strcmp().
- if (!option[SKIPSTRINGH])
- ACE_OS::printf ("#include <string.h>\n");
-
- // Output type declaration now, reference it later on....
- if (option[TYPE] && !option[NOTYPE])
- ACE_OS::printf ("%s;\n",
- array_type_);
-
- output_min_max ();
-
- if (option[STRCASECMP])
- output_strcasecmp ();
-
- // Class definition if -M is *not* enabled.
- if (option[CPLUSPLUS] && !option[SKIPCLASS])
- ACE_OS::printf ("class %s {\npublic:\n"
- " static %s%s%s (const char *str);\n};\n\n",
- option.class_name (),
- option[CONSTANT] ? "const " : "",
- return_type,
- option.function_name ());
-
- // Use the inline keyword to remove function overhead.
- if (option[INLINE])
- ACE_OS::printf ("inline\n");
-
- ACE_OS::printf ("%s%s\n", option[CONSTANT] ? "const " : "", return_type);
- if (option[CPLUSPLUS])
- ACE_OS::printf ("%s::", option.class_name ());
-
- ACE_OS::printf (option[ANSI]
- ? "%s (const char *str)\n{\n"
- : "%s (str)\n char *str;\n{\n",
- option.function_name ());
-
-// Use the switch in place of lookup table.
-
- if (option[SWITCH])
- output_switch ();
-
- // Use the lookup table, in place of switch.
- else
- {
- if (!option[GLOBAL])
- {
- if (option[LENTABLE])
- output_keylength_table ();
- output_keyword_table ();
- }
- }
-
- // Logic to handle the Binary Search.
-
- ACE_OS::printf ("int first = 0, last = 0, middle;\n");
- ACE_OS::printf ("%s*base;\n",struct_tag);
- ACE_OS::printf ("\nlast = %d;\n",total_keys - 1);
- ACE_OS::printf ("while (last >= first)\n");
- ACE_OS::printf ("\t{\n");
- ACE_OS::printf ("\t middle = (last + first) / 2;\n");
- ACE_OS::printf ("\t if (strcmp (wordlist[middle].opname_, str) == 0)\n break;\n");
- ACE_OS::printf ("\t if (strcmp (wordlist[middle].opname_, str) < 0)\n first = middle + 1;\n");
- ACE_OS::printf ("\t else last = middle - 1;\n");
- ACE_OS::printf ("\t}\n");
- ACE_OS::printf ("if (last < first)\n return 0;\n");
- ACE_OS::printf ("else\n return (&wordlist[middle]);\n}\n");
-
- if (additional_code)
- {
- for (;;)
- {
- int c = getchar ();
-
- if (c == EOF)
- break;
- else
- putchar (c);
- }
- }
-
- fflush(stdout);
-
- return 0;
-
-}
-
-// Generates C code for the linear search algorithm that returns
-// the proper encoding for each key word
-
-int
-Key_List::output_linear_search_function (void)
-{
- ACE_OS::printf ("%s\n", include_src);
-
- // Get prototype for strncmp() and strcmp().
- if (!option[SKIPSTRINGH])
- ACE_OS::printf ("#include <string.h>\n");
-
- // Output type declaration now, reference it later on....
- if (option[TYPE] && !option[NOTYPE])
- ACE_OS::printf ("%s;\n",
- array_type_);
-
- output_min_max ();
-
- if (option[STRCASECMP])
- output_strcasecmp ();
-
- // Class definition if -M is *not* enabled.
- if (option[CPLUSPLUS] && !option[SKIPCLASS])
- ACE_OS::printf ("class %s {\npublic:\n"
- " static %s%s%s (const char *str);\n};\n\n",
- option.class_name (),
- option[CONSTANT] ? "const " : "",
- return_type,
- option.function_name ());
-
- // Use the inline keyword to remove function overhead.
- if (option[INLINE])
- ACE_OS::printf ("inline\n");
-
- ACE_OS::printf ("%s%s\n",
- option[CONSTANT] ? "const " : "",
- return_type);
- if (option[CPLUSPLUS])
- ACE_OS::printf ("%s::", option.class_name ());
-
- ACE_OS::printf (option[ANSI]
- ? "%s (const char *str)\n{\n"
- : "%s (str)\n char *str;\n{\n",
- option.function_name ());
-
- // Use the switch in place of lookup table.
-
- if (option[SWITCH])
- output_switch ();
- // Use the lookup table, in place of switch.
- else
- {
- if (!option[GLOBAL])
- {
- if (option[LENTABLE])
- output_keylength_table ();
- output_keyword_table ();
- }
- }
-
- // Logic to handle the Linear Search.
-
- ACE_OS::printf ("for (int i=0; i<=%d; i++)",total_keys-1);
- ACE_OS::printf ("\t{\n");
- ACE_OS::printf ("\t if (strcmp (wordlist[i].opname_, str) == 0)\n");
- ACE_OS::printf ("\t return &wordlist[i];\n");
- ACE_OS::printf ("\t}\n");
- ACE_OS::printf ("return 0;\n}\n");
-
- if (additional_code)
- {
- for (;;)
- {
- int c = getchar ();
-
- if (c == EOF)
- break;
- else
- putchar (c);
- }
- }
-
- ACE_OS::fflush (stdout);
-
- return 0;
-
-}
-// 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;
-
- // Lookup table for converting ASCII to EBCDIC.
- static const int ascii_to_ebcdic[ACE_ASCII_SIZE] =
- {
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2D, 0x2E, 0x2F,
- 0x16, 0x05, 0x15, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x3C, 0x3D, 0x32, 0x26,
- 0x18, 0x19, 0x3F, 0x27, 0x22, 0x1D, 0x1E, 0x1F,
-
- 0x40, 0x5A, 0x7F, 0x7B, 0x5B, 0x6C, 0x50, 0x7D,
- 0x4D, 0x5D, 0x5C, 0x4E, 0x6B, 0x60, 0x4B, 0x61,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
- 0xF8, 0xF9, 0x7A, 0x5E, 0x4C, 0x7E, 0x6E, 0x6F,
-
- 0x7C, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
- 0xC8, 0xC9, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6,
- 0xD7, 0xD8, 0xD9, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6,
- 0xE7, 0xE8, 0xE9, 0xAD, 0xE0, 0xBD, 0x5F, 0x6D,
-
- 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
- 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6,
- 0xA7, 0xA8, 0xA9, 0xC0, 0x6A, 0xD0, 0xA1, 0x07};
-
- int ebcdic_to_ascii[ACE_EBCDIC_SIZE];
- int target;
-
- // Calculate maximum number of digits required for MAX_HASH_VALUE.
-
- for (Key_List::field_width = 2;
- (count /= 10) > 0;
- Key_List::field_width++)
- continue;
-
- if (option[INLINE])
- ACE_OS::printf ("inline\n");
-
- if (option[C])
- ACE_OS::printf ("static ");
- ACE_OS::printf ("unsigned int\n");
- if (option[CPLUSPLUS])
- ACE_OS::printf ("%s::", option.class_name ());
-
- ACE_OS::printf (option[ANSI]
- ? "%s (const char *str, unsigned int len)\n{\n"
- : "%s (str, len)\n char *str;\n unsigned int len;\n{\n",
- option.hash_name ());
-
- // Generate the asso_values table.
- ACE_OS::printf (" static %sunsigned %s asso_values[] =\n {",
- option[CONSTANT] ? "const " : "",
- max_hash_value <= UCHAR_MAX ? "char" : (max_hash_value <= USHRT_MAX ? "short" : "int"));
-
- ACE_OS::printf ("\n#if defined (ACE_MVS)");
-#if ACE_STANDARD_CHARACTER_SET_SIZE == ACE_EBCDIC_SIZE
- {
- // We are running in EBCDIC environment.
- for (count = 0; count < ACE_EBCDIC_SIZE; ++count)
- {
- if (!(count % max_column))
- ACE_OS::printf ("\n ");
-
- ACE_OS::printf ("%*d,",
- Key_List::field_width,
- Vectors::occurrences[count] ? Vectors::asso_values[count] : max_hash_value + 1);
- }
-
- ACE_OS::printf ("\n#else");
-
- for (count = 0; count < ACE_ASCII_SIZE; ++count)
- {
- if (!(count % max_column))
- ACE_OS::printf ("\n ");
-
- target = ascii_to_ebcdic[count];
- ACE_OS::printf ("%*d,",
- Key_List::field_width,
- Vectors::occurrences[target] ? Vectors::asso_values[target] : max_hash_value + 1);
- }
- }
-# else
- {
- // We are running in ASCII environment.
- for (count = 0; count < ACE_EBCDIC_SIZE; ++count)
- ebcdic_to_ascii[count] = 0;
-
- for (count = 0; count < ACE_ASCII_SIZE; ++count)
- {
- target = ascii_to_ebcdic[count];
- ebcdic_to_ascii[target] = count;
- }
-
- for (count = 0; count < ACE_EBCDIC_SIZE; ++count)
- {
- if (!(count % max_column))
- ACE_OS::printf ("\n ");
-
- target = ebcdic_to_ascii[count];
- ACE_OS::printf ("%*d,",
- Key_List::field_width,
- Vectors::occurrences[target] ? Vectors::asso_values[target] : max_hash_value + 1);
- }
- ACE_OS::printf ("\n#else");
-
- for (count = 0; count < ACE_ASCII_SIZE; ++count)
- {
- if (!(count % max_column))
- ACE_OS::printf ("\n ");
-
- ACE_OS::printf ("%*d,",
- Key_List::field_width,
- Vectors::occurrences[count] ? Vectors::asso_values[count] : max_hash_value + 1);
- }
- }
-#endif /* ACE_STANDARD_CHARACTER_SET_SIZE == ACE_EBCDIC_SIZE */
- ACE_OS::printf ("\n#endif /* ACE_MVS */");
-
- // Optimize special case of ``-k 1,$''
- if (option[DEFAULTCHARS])
- {
- if (option[STRCASECMP])
- ACE_OS::printf ("\n };\n return %sasso_values[charmap[str[len - 1]]] + asso_values[charmap[str[0]]];\n}\n\n",
- option[NOLENGTH] ? "" : "len + ");
- else
- ACE_OS::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)
- {
- ACE_OS::printf ("\n };\n return %s", option[NOLENGTH] ? "" : "len + ");
-
- for (; key_pos != WORD_END; )
- {
- ACE_OS::printf (option[STRCASECMP] ? "asso_values[charmap[str[%d]]]" : "asso_values[str[%d]]", key_pos - 1);
- if ((key_pos = option.get ()) != EOS)
- ACE_OS::printf (" + ");
- else
- break;
- }
-
- ACE_OS::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
- {
- ACE_OS::printf ("\n };\n unsigned 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--)
- ACE_OS::printf (" case %d:\n hval += asso_values[charmap[str[%d]]];\n", i, i - 1);
-
- else
-
- for (i = max_key_len; i > 0; i--)
- ACE_OS::printf (" case %d:\n hval += asso_values[str[%d]];\n", i, i - 1);
-
- ACE_OS::printf (" }\n return hval;\n}\n\n");
- }
- else // do the hard part...
- {
- count = key_pos + 1;
-
- do
- {
-
- while (--count > key_pos)
- ACE_OS::printf (" case %d:\n", count);
-
- ACE_OS::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);
-
- ACE_OS::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]]")
- : "");
- }
- }
- }
-}
-
-int
-Key_List::count_duplicates (List_Node *link,
- const char *type)
-{
- int count = 0;
-
- // Count the number of "static" duplicates for this hash value.
- for (List_Node *ptr = link;
- ptr != 0;
- ptr = ptr->link)
- {
- count++;
-
- if (option[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- "%s linked keyword = %s, slot = %d, hash_value = %d\n",
- type,
- ptr->key,
- ptr->slot,
- ptr->hash_value));
- }
-
- return count;
-}
-
-void
-Key_List::update_lookup_array (int lookup_array[],
- int i1,
- int i2,
- Duplicate_Entry *dup_ptr,
- int value)
-{
- lookup_array[i1] = -dup_ptr->slot;
- lookup_array[i2] = -dup_ptr->count;
- lookup_array[dup_ptr->hash_value] = value;
-}
-
-// Generates the large, sparse table that maps hash values in the
-// smaller, contiguous range of the keyword table.
-
-int
-Key_List::output_lookup_array (void)
-{
- if (total_duplicates > 0)
- {
- const int DEFAULT_VALUE = -1;
-
- Duplicate_Entry *duplicates = 0;
- ACE_NEW_RETURN (duplicates,
- Duplicate_Entry[total_duplicates],
- -1);
-
- int *lookup_array = 0;
- ACE_NEW_RETURN (lookup_array,
- int[max_hash_value + 1],
- -1);
-
- Duplicate_Entry *dup_ptr = duplicates;
- int *lookup_ptr = lookup_array + max_hash_value + 1;
-
- // Initialize the lookup array to the DEFAULT_VALUE (-1).
- while (lookup_ptr > lookup_array)
- *--lookup_ptr = DEFAULT_VALUE;
-
- // Iterate through the keylist and handle the static and dynamic
- // duplicate entries.
- for (List_Node *temp = head; temp; temp = temp->next)
- {
- int hash_value = temp->hash_value;
- // Store the keyword's slot location into the
- // <lookup_array> at the <hash_value>. If this is a
- // non-duplicate, then this value will point directly to the
- // keyword.
- lookup_array[hash_value] = temp->slot;
-
- if (option[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- "keyword = %s, slot = %d, hash_value = %d, lookup_array[hash_value] = %d\n",
- temp->key,
- temp->slot,
- temp->hash_value,
- lookup_array[temp->hash_value]));
-
- if (temp->link == 0 &&
- (temp->next == 0 || hash_value != temp->next->hash_value))
- // This isn't a duplicate. Note that we know this because
- // we sorted the keys by their hash value.
- continue;
- else
- {
- // We'll handle the duplicates here.
- dup_ptr->hash_value = hash_value;
- dup_ptr->slot = temp->slot;
- dup_ptr->count = 1;
-
- // Count the number of "static" duplicates, i.e.,
- // keywords that had the same keysig when the keyfile
- // was first read.
- dup_ptr->count += this->count_duplicates (temp->link,
- "static");
-
- // Count the number of "dynamic" duplicates, i.e.,
- // keywords that ended up with the same hash value as a
- // result of the <asso_values> contents.
- for (;
- temp->next && hash_value == temp->next->hash_value;
- temp = temp->next)
- dup_ptr->count += this->count_duplicates (temp->next,
- "dynamic");
- dup_ptr++;
- }
- }
-
- // Compute the values in the lookup array.
- while (--dup_ptr >= duplicates)
- {
- if (option[DEBUGGING])
- ACE_DEBUG ((LM_DEBUG,
- "dup_ptr[%d]: hash_value = %d, slot = %d, count = %d\n",
- dup_ptr - duplicates,
- dup_ptr->hash_value,
- dup_ptr->slot,
- dup_ptr->count));
- int i;
-
- // Look to the left first.
- for (i = dup_ptr->hash_value; i > 0; i--)
- if (lookup_array[i] == DEFAULT_VALUE && lookup_array[i - 1] == DEFAULT_VALUE)
- {
- this->update_lookup_array (lookup_array,
- i - 1,
- i,
- dup_ptr,
- -(max_hash_value + (dup_ptr->hash_value - i + 1)));
- break;
- }
-
- // If we didn't find it to the left look to the right
- // instead...
- if (i == 0)
- {
- for (i = dup_ptr->hash_value; i < max_hash_value; i++)
- if (lookup_array[i] == DEFAULT_VALUE && lookup_array[i + 1] == DEFAULT_VALUE)
- {
- this->update_lookup_array (lookup_array,
- i,
- i + 1,
- dup_ptr,
- max_hash_value + (i - dup_ptr->hash_value));
- break;
- }
-
- // If this happens, we can't use the output array scheme...
- if (i >= max_hash_value)
- {
- option = SWITCH;
- ACE_DEBUG ((LM_DEBUG,
- "GPERF: Automatically changing to -S1 switch option\n"));
- // Since we've already generated the keyword table
- // we need to use it!
- this->output_switch (1);
- return 1; // 1 indicates that we've changed our mind...
- }
- }
- }
-
- lookup_ptr = lookup_array + max_hash_value + 1;
- int max = INT_MIN;
-
- while (lookup_ptr > lookup_array)
- {
- int val = abs (*--lookup_ptr);
- if (max < val)
- max = val;
- }
-
- const char *indent = option[GLOBAL] ? "" : " ";
-
- ACE_OS::printf ("%sstatic %ssigned %s lookup[] =\n%s%s{\n%s", indent, option[CONSTANT] ? "const " : "",
- max <= SCHAR_MAX ? "char" : (max <= SHRT_MAX ? "short" : "int"),
- indent, indent, option[DEBUGGING] ? "" : " ");
-
- int count = max;
-
- // Calculate maximum number of digits required for LOOKUP_ARRAY_SIZE.
-
- for (Key_List::field_width = 2; (count /= 10) > 0; Key_List::field_width++)
- continue;
-
- const int max_column = 15;
- int column = 0;
-
- for (lookup_ptr = lookup_array;
- lookup_ptr < lookup_array + max_hash_value + 1;
- lookup_ptr++)
- {
- if (option[DEBUGGING])
- ACE_OS::printf (" %*d, /* slot = %d */\n",
- Key_List::field_width,
- *lookup_ptr,
- (int)(lookup_ptr - lookup_array));
- else
- ACE_OS::printf ("%*d, %s",
- Key_List::field_width,
- *lookup_ptr,
- ++column % (max_column - 1) ? "" : "\n ");
- }
- ACE_OS::printf ("%s%s%s};\n\n", option[DEBUGGING] ? "" : "\n", indent, indent);
-
- delete [] duplicates;
- delete [] lookup_array;
- }
- return 0;
-}
-
-// Generates C code to perform the keyword lookup.
-
-void
-Key_List::output_lookup_function (void)
-{
- if (!option[OPTIMIZE])
- ACE_OS::printf (" if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\n {\n");
- ACE_OS::printf (" unsigned int key = %s (str, len);\n\n", option.hash_name ());
- if (!option[OPTIMIZE])
- ACE_OS::printf (" if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)\n");
- ACE_OS::printf (" {\n");
-
- if (option[DUP] && total_duplicates > 0)
- {
- int pointer_and_type_enabled = option[POINTER] && option[TYPE];
-
- ACE_OS::printf (" int slot = lookup[key];\n\n"
- " if (slot >= 0 && slot < WORDLIST_SIZE)\n");
- if (option[OPTIMIZE])
- ACE_OS::printf (" return %swordlist[slot];\n", option[TYPE] && option[POINTER] ? "&" : "");
- else
- {
- ACE_OS::printf (" {\n"
- " %schar *s = wordlist[slot]", option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "");
- if (array_type_ != Key_List::default_array_type)
- ACE_OS::printf (".%s", option.key_name ());
-
- ACE_OS::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[slot]" : "s");
- ACE_OS::printf (" else if (slot < 0 && slot >= -MAX_HASH_VALUE)\n"
- " return 0;\n");
- }
- ACE_OS::printf (" else\n {\n"
- " unsigned int offset = key + slot + (slot > 0 ? -MAX_HASH_VALUE : MAX_HASH_VALUE);\n"
- " %s%s*base = &wordlist[-lookup[offset]];\n"
- " %s%s*ptr = base + -lookup[offset + 1];\n\n"
- " while (--ptr >= base)\n ",
- option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "", struct_tag,
- option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "", struct_tag);
- if (array_type_ != Key_List::default_array_type)
- {
- if (option[COMP])
- ACE_OS::printf ("if (%s == *ptr->%s && !%s (str + 1, ptr->%s + 1, len - 1",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.key_name (),
- option[STRCASECMP] ? "strncasecmp" : "strncmp", option.key_name ());
- else
- ACE_OS::printf ("if (%s == *ptr->%s && !%s (str + 1, ptr->%s + 1",
- option[STRCASECMP] ? "charmap[*str]" : "*str", option.key_name (),
- option[STRCASECMP] ? "strcasecmp" : "strcmp", option.key_name ());
- }
- else
- ACE_OS::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"));
- ACE_OS::printf ("))\n return %sptr;"
- "\n }\n }\n %s\n}\n", array_type_ ==
- Key_List::default_array_type ? "*" : "", option[OPTIMIZE] ? "" : "}\n return 0;");
- }
- else
- {
- if (option[OPTIMIZE])
- ACE_OS::printf (" return %swordlist[key]", option[TYPE] && option[POINTER] ? "&" : "");
- else
- {
- int pointer_and_type_enabled = option[POINTER] && option[TYPE];
-
- ACE_OS::printf (" %schar *s = wordlist[key]", option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "");
-
- if (array_type_ != Key_List::default_array_type)
- ACE_OS::printf (".%s", option.key_name ());
-
- ACE_OS::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");
- }
- ACE_OS::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)
-{
- ACE_OS::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])
- {
- ACE_OS::printf ("%s", option[ANSI]
- ? "strncasecmp (char *s1, char *s2, int n)"
- : "strncasecmp (s1, s2, n)\n char *s1, *s2;\n int n;");
- ACE_OS::printf ("\n{\n 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
- {
- ACE_OS::printf ("%s", option[ANSI]
- ? "strcasecmp (char *s1, char *s2)"
- : "strcasecmp (s1, s2)\n char *s1, *s2;");
- ACE_OS::printf ("\n{\n 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.
-
-int
-Key_List::output (void)
-{
- if (option[BINARYSEARCH])
- // Generate code binary search.
- this->output_binary_search_function ();
- else if (option[LINEARSEARCH])
- // Generate code for linear search.
- this->output_linear_search_function ();
- else
- {
- // Generate the usual GPERF things.
- ACE_OS::printf ("%s\n", include_src);
-
- // Get prototype for strncmp() and strcmp().
- if (!option[SKIPSTRINGH])
- ACE_OS::printf ("#include <string.h>\n");
-
- // Output type declaration now, reference it later on....
- if (option[TYPE] && !option[NOTYPE])
- ACE_OS::printf ("%s;\n",
- array_type_);
-
- output_min_max ();
-
- if (option[STRCASECMP])
- output_strcasecmp ();
-
- // Class definition if -M is *not* enabled.
- if (option[CPLUSPLUS] && !option[SKIPCLASS])
- ACE_OS::printf ("class %s\n{\nprivate:\n"
- " static unsigned int %s (const char *str, unsigned int len);\npublic:\n"
- " static %s%s%s (const char *str, unsigned int len);\n};\n\n",
- option.class_name (),
- option.hash_name (),
- option[CONSTANT] ? "const " : "",
- return_type,
- option.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 ();
- if (output_lookup_array () == -1)
- ACE_ERROR_RETURN ((LM_DEBUG,
- "%p\n",
- "output_lookup_array"),
- -1);
- }
-
- // Use the inline keyword to remove function overhead.
- if (option[INLINE])
- ACE_OS::printf ("inline\n");
-
- int pointer_and_type_enabled = option[POINTER] && option[TYPE];
-
- ACE_OS::printf ("%s%s\n",
- option[CONSTANT] || pointer_and_type_enabled == 0 ? "const " : "",
- return_type);
- if (option[CPLUSPLUS])
- ACE_OS::printf ("%s::", option.class_name ());
-
- ACE_OS::printf (option[ANSI]
- ? "%s (const char *str, unsigned int len)\n{\n"
- : "%s (str, len)\n char *str;\n unsigned int len;\n{\n",
- option.function_name ());
-
- if (option[ENUM] && !option[GLOBAL])
- ACE_OS::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"
- " WORDLIST_SIZE = %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, total_keys + min_hash_value);
- // Use the switch in place of lookup table.
- if (option[SWITCH])
- 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])
- {
- switch (output_lookup_array ())
- {
- case -1:
- ACE_ERROR_RETURN ((LM_DEBUG,
- "%p\n",
- "output_lookup_array"),
- -1);
- /* NOTREACHED */
- case 0:
- output_lookup_function ();
- break;
- /* NOTREACHED */
- default:
- break;
- /* NOTREACHED */
- }
- }
- else
- output_lookup_function ();
- }
-
- if (additional_code)
- {
- for (;;)
- {
- int c = getchar ();
-
- if (c == EOF)
- break;
- else
- putchar (c);
- }
- }
- fflush (stdout);
- }
- return 0;
- }
-
-// Sorts the keys by hash value.
-
-void
-Key_List::sort (void)
-{
- // By default, we sort via hashing.
- hash_sort = 1;
- occurrence_sort = 0;
-
- this->head = merge_sort (this->head);
-}
-
-// Sorts the keys by normal strcmp.
-void
-Key_List::string_sort (void)
-{
-
- // Flatten the equivalence class list to a linear list.
-
- List_Node *ptr;
- for(ptr=head;ptr;ptr=ptr->next)
- {
- List_Node *curr;
- if(ptr->link)
- {
- List_Node *last_node = 0;
-
- for(curr = ptr->link; curr; curr = curr->link)
- {
- // Chnage the link to next pointer.
- curr->next = curr->link;
-
- // Save the pointer for the last node.
- if (curr->link == 0)
- last_node = curr;
- }
-
- // Set the pointers, correctly.
- last_node->next = ptr->next;
- ptr->next = ptr->link;
- ptr = last_node;
- }
- }
-
- // Set all links to Null.
-
- for(ptr=head;ptr;ptr=ptr->next)
- {
- ptr->link = 0;
- }
-
- // Set the sorting options.
-
- key_sort = 1;
- hash_sort = 0;
- occurrence_sort = 0;
-
- // Sort.
-
- this->head = merge_sort (head);
- key_sort = 0;
-}
-
-
-// Dumps the key list to stderr stream.
-
-void
-Key_List::dump (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "\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));
-
- u_int keysig_width = option.max_keysig_size () > ACE_OS::strlen ("keysig")
- ? option.max_keysig_size ()
- : ACE_OS::strlen ("keysig");
-
- u_int key_length = this->max_key_length ();
- u_int keyword_width = key_length > ACE_OS::strlen ("keysig")
- ? key_length
- : ACE_OS::strlen ("keysig");
-
- ACE_DEBUG ((LM_DEBUG,
- "\nList contents are:\n(hash value, key length, slot, %*s, %*s, duplicates):\n",
- keysig_width,
- "keysig",
- keyword_width,
- "keyword"));
-
- for (List_Node *ptr = head; ptr; ptr = ptr->next)
- {
- ACE_DEBUG ((LM_DEBUG,
- "%11d,%11d,%6d, %*s, %*s",
- ptr->hash_value,
- ptr->length,
- ptr->slot,
- keysig_width,
- ptr->keysig,
- keyword_width,
- ptr->key));
-
- List_Node *dup = ptr->link;
- if (dup)
- {
- for (;
- dup != 0;
- dup = dup->link)
- ACE_DEBUG ((LM_DEBUG,
- " %s",
- dup->key));
- }
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- }
- ACE_DEBUG ((LM_DEBUG,
- "End dumping list.\n\n"));
-}
-
-// Simple-minded constructor action here...
-
-Key_List::Key_List (void)
- : head (0),
- total_duplicates (0),
- array_type_ ((char *) Key_List::default_array_type),
- return_type ((char *) Key_List::default_return_type),
- struct_tag ((char *) Key_List::default_array_type),
- max_key_len (INT_MIN),
- min_key_len (INT_MAX),
- key_sort (0),
- additional_code (0),
- total_keys (1)
-{
-}
-
-// 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;
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Key_List.h b/apps/gperf/src/Key_List.h
deleted file mode 100644
index 34f8e2c05bf..00000000000
--- a/apps/gperf/src/Key_List.h
+++ /dev/null
@@ -1,173 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef KEY_LIST_H
-#define KEY_LIST_H
-
-#include "Options.h"
-#include "List_Node.h"
-#include "Vectors.h"
-
-#if defined (ACE_HAS_GPERF)
-
-class Duplicate_Entry
-{
- // = TITLE
- // Describes a duplicate entry.
- //
- // = DESCRIPTION
- // This is used for generating code by the <Key_List>.
-public:
- int hash_value;
- // Hash value for this particular duplicate set.
-
- int slot;
- // Slot into the main keyword storage array.
-
- int count;
- // Number of consecutive duplicates at this slot.
-};
-
-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 string_sort (void);
- int read_keys (void);
- int output (void);
-
- List_Node *head;
- // Points to the head of the linked list.
-
- int total_duplicates;
- // Total number of duplicate hash values.
-
-private:
- // = Make hash table 10 times larger than # of keyword entries.
- enum
- {
- TABLE_MULTIPLE = 10
- };
-
- static int occurrence (List_Node *ptr);
- static int already_determined (List_Node *ptr);
- static void 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 (int use_keyword_table = 0);
- void output_keyword_table (void);
- void output_keylength_table (void);
- void output_hash_function (void);
- void output_lookup_function (void);
- int output_binary_search_function(void);
- int output_linear_search_function (void);
- int output_lookup_array (void);
- void output_strcasecmp (void);
- int output_types (void);
- void dump (void);
- char *array_type (void);
- char *save_include_src (void);
- char *special_input (char delimiter);
- List_Node *merge (List_Node *list1, List_Node *list2);
- List_Node *merge_sort (List_Node *head);
- int count_duplicates (List_Node *link, const char *type);
- void update_lookup_array (int lookup_array[],
- int i1,
- int i2,
- Duplicate_Entry *dup_ptr,
- int value);
- 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 key_sort;
- // True if sorting by key 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.
-
- static const char *const default_array_type;
- // Default type for generated code.
-
- static const char *const default_return_type;
- // in_word_set return type, by default.
-
- static int field_width;
- // How wide the printed field width must be to contain the maximum
- // hash value.
-
- static int determined_[ACE_STANDARD_CHARACTER_SET_SIZE];
- // Sets the slot location for all keysig characters that are now
- // determined.
-};
-
-#endif /* ACE_HAS_GPERF */
-#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 0f5fb5052ff..00000000000
--- a/apps/gperf/src/List_Node.cpp
+++ /dev/null
@@ -1,129 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "List_Node.h"
-
-ACE_RCSID(src, List_Node, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "Vectors.h"
-
-// Sorts the key set alphabetically to speed up subsequent operation
-// Uses insertion sort since the set is probably quite small.
-
-inline void
-List_Node::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)
- : link (0),
- next (0),
- key (k),
- rest (option[TYPE] ? k + len + 1 : ACE_const_cast(char*, "")),
- length (len),
- slot (0)
-{
- char *ptr = new char[(option[ALLCHARS] ? len : option.max_keysig_size ()) + 1];
- keysig = 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.
-
- option.reset ();
-
- // Iterate thru the list of key_positions, initializing
- // occurrences table and keysig (via char * pointer ptr).
-
- for (int i; (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 == keysig && option[NOLENGTH])
- ACE_ERROR ((LM_ERROR,
- "Can't hash keyword %s with chosen key positions.\n%a",
- key,
- 1));
- }
- // Terminate this string.
- *ptr = '\0';
-
- // Sort the KEYSIG items alphabetically.
- sort (keysig, ptr - keysig);
-}
-
-List_Node::~List_Node (void)
-{
- delete [] this->key;
- delete [] this->keysig;
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/List_Node.h b/apps/gperf/src/List_Node.h
deleted file mode 100644
index 1665099740d..00000000000
--- a/apps/gperf/src/List_Node.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef LIST_NODE_H
-#define LIST_NODE_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Options.h"
-
-#if defined (ACE_HAS_GPERF)
-class List_Node
-{
- // = TITLE
- // Data and function members for defining values and operations of
- // a list node.
-public:
- // = Initialization and termination methods.
- List_Node (char *key, int len);
- // Constructor.
-
- ~List_Node (void);
- // Destructor.
-
- static void 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 *keysig;
- // 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 slot;
- // Position of this node relative to other nodes.
-};
-
-#endif /* ACE_HAS_GPERF */
-#endif /* LIST_NODE_H */
diff --git a/apps/gperf/src/Makefile b/apps/gperf/src/Makefile
deleted file mode 100644
index 1db8e315b85..00000000000
--- a/apps/gperf/src/Makefile
+++ /dev/null
@@ -1,424 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for GPERF release
-#----------------------------------------------------------------------------
-
-BIN = gperf
-INSBIN = $(ACE_ROOT)/bin/gperf
-
-FILES = Options \
- Iterator \
- Gen_Perf \
- Key_List \
- List_Node \
- Hash_Table \
- Bool_Array \
- Vectors \
- Version
-
-SRC = $(addsuffix .cpp,$(FILES))
-OBJ = $(addsuffix .o,$(FILES))
-
-BUILD = $(VBIN)
-
-INSTALL = $(VBIN:%=$(INSBIN)/%$(EXEEXT))
-
-#----------------------------------------------------------------------------
-# 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
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-# 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 Options.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- Iterator.h
-
-.obj/Iterator.o .obj/Iterator.so .shobj/Iterator.o .shobj/Iterator.so: Iterator.cpp Iterator.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Options.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Gen_Perf.o .obj/Gen_Perf.so .shobj/Gen_Perf.o .shobj/Gen_Perf.so: Gen_Perf.cpp Gen_Perf.h Options.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- Key_List.h List_Node.h Vectors.h Bool_Array.h
-
-.obj/Key_List.o .obj/Key_List.so .shobj/Key_List.o .shobj/Key_List.so: Key_List.cpp Key_List.h Options.h \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- List_Node.h Vectors.h \
- $(ACE_ROOT)/ace/Read_Buffer.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.i \
- $(ACE_ROOT)/ace/Read_Buffer.i \
- Hash_Table.h
-
-.obj/List_Node.o .obj/List_Node.so .shobj/List_Node.o .shobj/List_Node.so: List_Node.cpp List_Node.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Options.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- Vectors.h
-
-.obj/Hash_Table.o .obj/Hash_Table.so .shobj/Hash_Table.o .shobj/Hash_Table.so: Hash_Table.cpp Hash_Table.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Options.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- List_Node.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i
-
-.obj/Bool_Array.o .obj/Bool_Array.so .shobj/Bool_Array.o .shobj/Bool_Array.so: Bool_Array.cpp Bool_Array.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Options.h \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/Vectors.o .obj/Vectors.so .shobj/Vectors.o .shobj/Vectors.so: Vectors.cpp Vectors.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i
-
-.obj/Version.o .obj/Version.so .shobj/Version.o .shobj/Version.so: Version.cpp \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/gperf/src/Makefile.am b/apps/gperf/src/Makefile.am
deleted file mode 100644
index 9a6a7fdb629..00000000000
--- a/apps/gperf/src/Makefile.am
+++ /dev/null
@@ -1,40 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for GPERF release
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-bin_PROGRAMS = gperf
-
-gperf_SOURCES = \
- gperf.cpp \
- Bool_Array.cpp \
- Gen_Perf.cpp \
- Hash_Table.cpp \
- Iterator.cpp \
- Key_List.cpp \
- List_Node.cpp \
- Options.cpp \
- Vectors.cpp \
- Version.cpp
-gperf_LDADD = $(top_builddir)/ace/libACE.la
-
-noinst_HEADERS = \
- Bool_Array.h \
- Gen_Perf.h \
- Hash_Table.h \
- Iterator.h \
- Key_List.h \
- List_Node.h \
- Options.h \
- Vectors.h
diff --git a/apps/gperf/src/Makefile.bor b/apps/gperf/src/Makefile.bor
deleted file mode 100644
index 95b6cf73277..00000000000
--- a/apps/gperf/src/Makefile.bor
+++ /dev/null
@@ -1,23 +0,0 @@
-
-NAME = gperf
-
-OBJFILES = \
- $(OBJDIR)\Options.obj \
- $(OBJDIR)\Iterator.obj \
- $(OBJDIR)\Gen_Perf.obj \
- $(OBJDIR)\Key_List.obj \
- $(OBJDIR)\List_Node.obj \
- $(OBJDIR)\Hash_Table.obj \
- $(OBJDIR)\Bool_Array.obj \
- $(OBJDIR)\Vectors.obj \
- $(OBJDIR)\Version.obj \
- $(OBJDIR)\gperf.obj
-
-CFLAGS = $(ACE_CFLAGS)
-
-CPPDIR = .
-
-LIBFILES = $(ACE_LIB)
-
-!include <$(ACE_ROOT)\include\makeinclude\build_core_exe.bor>
-
diff --git a/apps/gperf/src/Options.cpp b/apps/gperf/src/Options.cpp
deleted file mode 100644
index 962248febc2..00000000000
--- a/apps/gperf/src/Options.cpp
+++ /dev/null
@@ -1,864 +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@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Options.h"
-
-ACE_RCSID(src, Options, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "ace/Get_Opt.h"
-#include "Iterator.h"
-
-// Global option coordinator for the entire program.
-Options option;
-
-// Current program version.
-extern const 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 filler for keyword table.
-static const char *const DEFAULT_FILL = "";
-
-// 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_;
-u_int Options::total_keysig_size_;
-int Options::size_;
-int Options::key_pos_;
-int Options::jump_;
-int Options::initial_asso_value_;
-int Options::argc_;
-char **Options::argv_;
-int Options::iterations_;
-const char *Options::function_name_;
-const char *Options::fill_default_;
-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 [-abBcCdDef[num]gGhH<hashname>i<init>IjJ"
- "k<keys>K<keyname>lL<language>mMnN<function name>o"
- "Oprs<size>S<switches>tTvVZ<class name>].\n"
- "(type %n -h for help)\n"));
-}
-
-// Output command-line Options.
-
-void
-Options::print_options (void)
-{
- int i;
-
- ACE_OS::printf ("/* Command-line: ");
-
- for (i = 0; i < argc_; i++)
- ACE_OS::printf ("%s ",
- argv_[i]);
-
- ACE_OS::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;
- fill_default_ = DEFAULT_FILL;
- 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_, DEBUGGING))
- {
- char *ptr;
-
- ACE_OS::fprintf (stderr,
- "\ndumping Options:"
- "\nDEBUGGING is...: %s"
- "\nORDER is.......: %s"
- "\nANSI is........: %s"
- "\nTYPE is........: %s"
- "\nINLINE 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"
- "\nCONSTANT is....: %s"
- "\nCPLUSPLUS is...: %s"
- "\nC is...........: %s"
- "\nENUM is........: %s"
- "\nSTRCASECMP is..: %s"
- "\nOPTIMIZE is....: %s"
- "\nLINEARSEARCH is: %s"
- "\nBINARYSEARCH is: %s"
- "\niterations = %d"
- "\nlookup function name = %s"
- "\nfill default = %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_, DEBUGGING) ? "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_, INLINE) ? "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_, CONSTANT) ? "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",
- ACE_BIT_ENABLED (option_word_, LINEARSEARCH) ? "enabled" : "disabled",
- ACE_BIT_ENABLED (option_word_, BINARYSEARCH) ? "enabled" : "disabled",
- iterations_,
- function_name_,
- fill_default_,
- 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_.
-
-int
-Options::parse_args (int argc, char *argv[])
-{
- if (ACE_LOG_MSG->open (argv[0]) == -1)
- return -1;
-
- ACE_Get_Opt getopt (argc, argv, "abBcCdDe:Ef:F:gGhH:i:IJj:k:K:lL:mMnN:oOprs:S:tTvVZ:");
- int option_char;
-
- argc_ = argc;
- argv_ = argv;
-
- while ((option_char = getopt ()) != -1)
- {
- switch (option_char)
- {
- // Generated coded uses the ANSI prototype format.
- case 'a':
- {
- ACE_SET_BITS (option_word_, ANSI);
- break;
- }
- // Generate code for Linear Search.
- case 'b':
- {
- ACE_SET_BITS (option_word_, LINEARSEARCH);
- break;
- }
- // Generate code for Binary Search.
- case 'B':
- {
- ACE_SET_BITS (option_word_, BINARYSEARCH);
- break;
- }
- // Generate strncmp rather than strcmp.
- case 'c':
- {
- ACE_SET_BITS (option_word_, COMP);
- break;
- }
- // Make the generated tables readonly (const).
- case 'C':
- {
- ACE_SET_BITS (option_word_, CONSTANT);
- break;
- }
- // Enable debugging option.
- case 'd':
- {
- ACE_SET_BITS (option_word_, DEBUGGING);
- ACE_ERROR ((LM_ERROR,
- "Starting program %n, version %s, with debugging on.\n",
- version_string));
- break;
- }
- // Enable duplicate option.
- case 'D':
- {
- ACE_SET_BITS (option_word_, DUP);
- break;
- }
- // Allows user to provide keyword/attribute separator
- case 'e':
- {
- delimiters_ = getopt.optarg;
- break;
- }
- case 'E':
- {
- ACE_SET_BITS (option_word_, ENUM);
- break;
- }
- // Generate the hash table ``fast.''
- case 'f':
- {
- ACE_SET_BITS (option_word_, FAST);
- iterations_ = atoi (getopt.optarg);
- if (iterations_ < 0)
- {
- ACE_ERROR ((LM_ERROR, "iterations value must not be negative, assuming 0\n"));
- iterations_ = 0;
- }
- break;
- }
- // Use the ``inline'' keyword for generated sub-routines.
- case 'g':
- {
- ACE_SET_BITS (option_word_, INLINE);
- break;
- }
- // Make the keyword table a global variable.
- case 'G':
- {
- ACE_SET_BITS (option_word_, GLOBAL);
- break;
- }
- // Displays a list of helpful Options to the user.
- case 'h':
- {
- ACE_OS::fprintf (stderr,
- "-a\tGenerate ANSI standard C output code, i.e., function prototypes.\n"
- "-b\tGenerate code for Linear Search.\n"
- "-B\tGenerate code for Binary Search.\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\n"
- "\terror).\n"
- "-D\tHandle keywords that hash to duplicate values. This is useful\n"
- "\tfor certain highly redundant keyword sets.\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"
- "-F\tProvided expression will be used to assign default values in keyword\n"
- "\ttable, i.e., the fill value. Default is \"\".\n"
- "-g\tMake generated routines use ``inline'' to remove function overhead.\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 message.\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"
- "-J\tSkips '#include <string.h>' part in the output.\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\n"
- "\tstructure.\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.\n"
- "\tLanguages handled are currently C++ and C. The default is C.\n"
- "-m\tAvoids the warning about identical hash values. This is valid\n"
- "\tonly if the -D option is enabled.\n"
- "-M\tSkips class definition in the output. This is valid only in C++ mode.\n"
- "-n\tDo not include the length of the keyword when computing the hash\n"
- "\tfunction.\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\n"
- "\tkeywords are 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\n"
- "\tassociated value range should be, in relationship to the number of\n"
- "\tkeys, e.g. a value of 3 means ``allow the maximum associated value\n"
- "\tto be about 3 times larger than the number of input keys.''\n"
- "\tConversely, a value of -3 means ``make the maximum associated\n"
- "\tvalue about 3 times smaller than the number of input keys. A\n"
- "\tlarger table should decrease the time required for an unsuccessful\n"
- "\tsearch, at 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\n"
- "\tof 2 generates 2 tables with 1/2 the elements in each table, etc.\n"
- "\tThis is useful since many C compilers cannot correctly generate code\n"
- "\tfor large 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 and exits with a value of 0\n"
- "-V\tExits silently with a value of 0.\n"
- "-Z\tAllow user to specify name of generated C++ class. Default\n"
- "\tname is `Perfect_Hash.'\n",
- DEFAULT_JUMP_VALUE,
- MAX_KEY_POS - 1);
- Options::usage ();
- return -1;
- }
- // Sets the name for the hash function.
- case 'H':
- {
- hash_name_ = getopt.optarg;
- break;
- }
- // Sets the initial value for the associated values array.
- case 'i':
- {
- initial_asso_value_ = atoi (getopt.optarg);
- if (initial_asso_value_ < 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;
- }
- // Sets the jump value, must be odd for later algorithms.
- case 'j':
- {
- jump_ = atoi (getopt.optarg);
- if (jump_ < 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Jump value %d must be a positive number.\n%r",
- jump_,
- &Options::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;
- }
- // Skip including the header file string.h.
- case 'J':
- {
- ACE_SET_BITS (option_word_, SKIPSTRINGH);
- break;
- }
- // Sets key positions used for hash function.
- case 'k':
- {
- const int BAD_VALUE = -1;
- int value;
- Iterator expand (getopt.optarg,
- 1,
- MAX_KEY_POS - 1,
- WORD_END,
- BAD_VALUE,
- EOS);
-
- // Use all the characters for hashing!!!!
- if (*getopt.optarg == '*')
- 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_RETURN ((LM_ERROR,
- "Illegal key value or range, use 1,2,3-%d,'$' or '*'.\n%r",
- MAX_KEY_POS - 1,
- usage),
- -1);
- else
- *l_key_pos = value;;
-
- *l_key_pos = EOS;
-
- total_keysig_size_ = (l_key_pos - key_positions_);
- if (total_keysig_size_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "No keys selected.\n%r",
- &Options::usage),
- -1);
- else if (key_sort (key_positions_, total_keysig_size_) == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Duplicate keys selected\n%r",
- &Options::usage),
- -1);
- if (total_keysig_size_ != 2
- || (key_positions_[0] != 1
- || key_positions_[1] != WORD_END))
- ACE_CLR_BITS (option_word_, DEFAULTCHARS);
- }
- break;
- }
- // Make this the keyname for the keyword component field.
- case 'K':
- {
- key_name_ = getopt.optarg;
- break;
- }
- // Create length table to avoid extra string compares.
- case 'l':
- {
- ACE_SET_BITS (option_word_, LENTABLE);
- break;
- }
- // Deal with different generated languages.
- case 'L':
- {
- option_word_ &= ~C;
- if (!ACE_OS::strcmp (getopt.optarg, "C++"))
- ACE_SET_BITS (option_word_, (CPLUSPLUS | ANSI));
- else if (!ACE_OS::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;
- }
- // Don't print the warnings.
- case 'm':
- {
- ACE_SET_BITS (option_word_, MUTE);
- break;
- }
- // Skip the class definition while in C++ mode.
- case 'M':
- {
- ACE_SET_BITS (option_word_, SKIPCLASS);
- break;
- }
- // Don't include the length when computing hash function.
- case 'n':
- {
- ACE_SET_BITS (option_word_, NOLENGTH);
- break;
- }
- // Make generated lookup function name be optarg
- case 'N':
- {
- function_name_ = getopt.optarg;
- break;
- }
- // Make fill_default be optarg
- case 'F':
- {
- fill_default_ = getopt.optarg;
- break;
- }
- // Order input by frequency of key set occurrence.
- case 'o':
- {
- ACE_SET_BITS (option_word_, ORDER);
- break;
- }
- case 'O':
- {
- ACE_SET_BITS (option_word_, OPTIMIZE);
- break;
- }
- // Generated lookup function now a pointer instead of int.
- case 'p':
- {
- ACE_SET_BITS (option_word_, POINTER);
- break;
- }
- // Utilize randomness to initialize the associated values
- // table.
- case 'r':
- {
- ACE_SET_BITS (option_word_, RANDOM);
- if (initial_asso_value_ != 0)
- ACE_ERROR ((LM_ERROR,
- "warning, -r option superceeds -i, disabling -i option and continuing\n"));
- break;
- }
- // Range of associated values, determines size of final table.
- case 's':
- {
- size_ = atoi (getopt.optarg);
- if (abs (size_) > 50)
- ACE_ERROR ((LM_ERROR,
- "%d is excessive, did you really mean this?! (type %n -h for help)\n",
- size_));
- break;
- }
- // Generate switch statement output, rather than lookup table.
- case 'S':
- {
- ACE_SET_BITS (option_word_, SWITCH);
- total_switches_ = atoi (getopt.optarg);
- if (total_switches_ <= 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "number of switches %s must be a positive number\n%r",
- getopt.optarg,
- &Options::usage),
- -1);
- break;
- }
- // Enable the TYPE mode, allowing arbitrary user structures.
- case 't':
- {
- ACE_SET_BITS (option_word_, TYPE);
- break;
- }
- // Don't print structure definition.
- case 'T':
- {
- ACE_SET_BITS (option_word_, NOTYPE);
- break;
- }
- // Print out the version and quit.
- case 'v':
- ACE_ERROR ((LM_ERROR,
- "%n: version %s\n%r\n",
- version_string,
- &Options::usage));
- ACE_OS::exit (0);
- /* NOTREACHED */
- break;
- // Exit with value of 0 (this is useful to check if gperf exists)
- case 'V':
- ACE_OS::exit (0);
- /* NOTREACHED */
- break;
- // Set the class name.
- case 'Z':
- {
- class_name_ = getopt.optarg;
- break;
- }
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%r",
- &Options::usage),
- -1);
- }
-
- }
-
- if (argv[getopt.optind] &&
- freopen (argv[getopt.optind],
- "r",
- stdin) == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Cannot open keyword file %p\n%r",
- argv[getopt.optind],
- &Options::usage),
- -1);
- if (++getopt.optind < argc)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Extra trailing arguments to %n.\n%r",
- usage),
- -1);
- return 0;
-}
-
-// True if option enable, else false.
-
-int
-Options::operator[] (Option_Type option)
-{
- return ACE_BIT_ENABLED (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::asso_max (int r)
-{
- size_ = r;
-}
-
-// Returns the size of the table size.
-
-int
-Options::asso_max (void)
-{
- return size_;
-}
-
-// Returns total distinct key positions.
-
-u_int
-Options::max_keysig_size (void)
-{
- return total_keysig_size_;
-}
-
-// Sets total distinct key positions.
-
-void
-Options::keysig_size (u_int a_size)
-{
- total_keysig_size_ = a_size;
-}
-
-// Returns the jump value.
-
-int
-Options::jump (void)
-{
- return jump_;
-}
-
-// Returns the generated function name.
-
-const char *
-Options::function_name (void)
-{
- return function_name_;
-}
-
-// Returns the fill default
-
-const char *
-Options::fill_default (void)
-{
- return fill_default_;
-}
-
-// Returns the keyword key name.
-
-const char *
-Options::key_name (void)
-{
- return key_name_;
-}
-
-// Returns the hash function name.
-
-const char *
-Options::hash_name (void)
-{
- return hash_name_;
-}
-
-// Returns the generated class name.
-
-const char *
-Options::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::iterations (void)
-{
- return iterations_;
-}
-
-// Returns the string used to delimit keywords from other attributes.
-
-const char *
-Options::delimiter (void)
-{
- return delimiters_;
-}
-
-// Gets the total number of switch statements to generate.
-
-int
-Options::total_switches (void)
-{
- return total_switches_;
-}
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Options.h b/apps/gperf/src/Options.h
deleted file mode 100644
index 783c1304663..00000000000
--- a/apps/gperf/src/Options.h
+++ /dev/null
@@ -1,190 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef OPTIONS_H
-#define OPTIONS_H
-
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_GPERF)
-
-// Enumerate the potential debugging Options.
-
-enum Option_Type
-{
- DEBUGGING = 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.
- INLINE = 020, // Generate code for inline functions.
- 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.
- CONSTANT = 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.
- MUTE = 0100000000, // Dont print the warnings.
- SKIPCLASS = 0200000000, // Skip the class definition part in the output while in C++ mode.
- SKIPSTRINGH = 0400000000, // Skip including the header file string.h.
- BINARYSEARCH = 01000000000, // Generates Binary Search code.
- LINEARSEARCH = 02000000000 // Generates Linear Search 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... ;-(
-
-// PharLap ETS defines EOS as well... so if building for ETS, clear out
-// their EOS.
-#if defined (ACE_HAS_PHARLAP) && defined (EOS)
-# undef EOS
-#endif /* ACE_HAS_PHARLAP && EOS */
-
-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);
- int parse_args (int argc, char *argv[]);
- void operator= (enum Option_Type);
- void operator!= (enum Option_Type);
- static void print_options (void);
- static void asso_max (int r);
- static int asso_max (void);
- static void reset (void);
- static int get (void);
- static int iterations (void);
- static u_int max_keysig_size (void);
- static void keysig_size (u_int);
- static int jump (void);
- static int initial_value (void);
- static int total_switches (void);
- static const char *function_name (void);
- static const char *fill_default (void);
- static const char *key_name (void);
- static const char *class_name (void);
- static const char *hash_name (void);
- static const char *delimiter (void);
-
-private:
- static int option_word_;
- // Holds the user-specified Options.
-
- static int total_switches_;
- // Number of switch statements to generate.
-
- static u_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 iterations_;
- // Amount to iterate when a collision occurs.
-
- static int argc_;
- // Records count of command-line arguments.
-
- static char **argv_;
- // Stores a pointer to command-line vector.
-
- static const char *function_name_;
- // Names used for generated lookup function.
-
- static const char *fill_default_;
- // Expression used to assign default values in keyword table.
-
- 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;
-
-#endif /* ACE_HAS_GPERF */
-#endif /* OPTIONS_H */
diff --git a/apps/gperf/src/Vectors.cpp b/apps/gperf/src/Vectors.cpp
deleted file mode 100644
index 95706725549..00000000000
--- a/apps/gperf/src/Vectors.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "Vectors.h"
-
-ACE_RCSID(src, Vectors, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-// Counts occurrences of each key set character.
-int Vectors::occurrences[ACE_STANDARD_CHARACTER_SET_SIZE];
-
-// Value associated with each character.
-int Vectors::asso_values[ACE_STANDARD_CHARACTER_SET_SIZE];
-
-#endif /* ACE_HAS_GPERF */
diff --git a/apps/gperf/src/Vectors.h b/apps/gperf/src/Vectors.h
deleted file mode 100644
index e6eec45d355..00000000000
--- a/apps/gperf/src/Vectors.h
+++ /dev/null
@@ -1,49 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef VECTORS_H
-#define VECTORS_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#if defined (ACE_HAS_GPERF)
-
-class Vectors
-{
- // = TITLE
- // Static class data members that are shared between several
- // classes via inheritance.
-public:
- static int occurrences[ACE_STANDARD_CHARACTER_SET_SIZE];
- // Counts occurrences of each key set character.
-
- static int asso_values[ACE_STANDARD_CHARACTER_SET_SIZE];
- // Value associated with each character.
-};
-
-#endif /* ACE_HAS_GPERF */
-#endif /* VECTORS_H */
diff --git a/apps/gperf/src/Version.cpp b/apps/gperf/src/Version.cpp
deleted file mode 100644
index d2967050e43..00000000000
--- a/apps/gperf/src/Version.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Current program version number.
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#include "ace/ACE.h"
-
-ACE_RCSID(src, Version, "$Id$")
-
-const char *version_string = "2.8 (ACE version)";
diff --git a/apps/gperf/src/gperf.cpp b/apps/gperf/src/gperf.cpp
deleted file mode 100644
index 1c1304d185e..00000000000
--- a/apps/gperf/src/gperf.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// -*- C++ -*-
-
-// $Id$
-
-// Driver program for the gperf hash function generator.
-
-// Copyright (C) 1989 Free Software Foundation, Inc.
-// written by Douglas C. Schmidt (schmidt@cs.wustl.edu)
-
-// This file is part of GNU GPERF.
-
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-// Simple driver program for the gperf hash function generator. All
-// the hard work is done in class Gen_Perf and its class methods.
-
-#include "Gen_Perf.h"
-
-ACE_RCSID(src, gperf, "$Id$")
-
-#if defined (ACE_HAS_GPERF)
-
-#include "Options.h"
-
-int
-main (int argc, char *argv[])
-{
- struct tm *tm;
- time_t clock;
-
- // Sets the Options.
- if (option.parse_args (argc, argv) == -1)
- return 1;
-
- ACE_OS::time (&clock);
- tm = ACE_OS::localtime (&clock);
-
- ACE_OS::printf ("/* starting time is %d:%02d:%02d */\n",
- tm->tm_hour,
- tm->tm_min,
- tm->tm_sec);
-
- // Initializes the key word list.
- Gen_Perf gperf;
-
- // Generates and prints the gperf hash table. Don't use exit here,
- // it skips the destructors.
- int status = gperf.run ();
-
- ACE_OS::time (&clock);
- tm = ACE_OS::localtime (&clock);
-
- ACE_OS::printf ("/* ending time is %d:%02d:%02d */\n",
- tm->tm_hour,
- tm->tm_min,
- tm->tm_sec);
- return status;
-}
-#else /* ! ACE_HAS_GPERF */
-int
-main (int argc, char *argv[])
-{
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
-
- ACE_ERROR_RETURN ((LM_ERROR,
- "gperf is not operational because "
- "ACE_HAS_GPERF was not enabled for the build\n"),
- 1);
-}
-#endif /* ! ACE_HAS_GPERF */
diff --git a/apps/gperf/src/gperf.dsp b/apps/gperf/src/gperf.dsp
deleted file mode 100644
index 7230591935a..00000000000
--- a/apps/gperf/src/gperf.dsp
+++ /dev/null
@@ -1,232 +0,0 @@
-# Microsoft Developer Studio Project File - Name="gperf" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=gperf - Win32 Static 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 "gperf.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 "gperf.mak" CFG="gperf - Win32 Static Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "gperf - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "gperf - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "gperf - Win32 Static Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "gperf - Win32 Static Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "gperf - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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:"..\..\..\bin\Release\gperf.exe" /libpath:"..\..\..\ace" /libpath:".\lib"
-# SUBTRACT LINK32 /nodefaultlib
-
-!ELSEIF "$(CFG)" == "gperf - 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 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" /FD /c
-# SUBTRACT CPP /YX
-# 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\bin\gperf.exe" /pdbtype:sept /libpath:"..\..\..\ace" /libpath:".\lib\\"
-# SUBTRACT LINK32 /nodefaultlib
-
-!ELSEIF "$(CFG)" == "gperf - Win32 Static Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "gperf___Win32_Static_Release"
-# PROP BASE Intermediate_Dir "gperf___Win32_Static_Release"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Static_Release"
-# PROP Intermediate_Dir "Static_Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /D "_CONSOLE" /D "_MBCS" /D "NDEBUG" /D "ACE_AS_STATIC_LIBS" /D "WIN32" /FD /c
-# SUBTRACT CPP /YX
-# 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 gperf.lib ace.lib /nologo /subsystem:console /machine:I386 /out:"..\..\..\bin\Release\gperf.exe" /libpath:"..\..\..\ace" /libpath:".\lib"
-# SUBTRACT BASE LINK32 /nodefaultlib
-# ADD LINK32 aces.lib advapi32.lib user32.lib /nologo /subsystem:console /machine:I386 /out:"..\..\..\bin\Release\gperf.exe" /libpath:"..\..\..\ace" /libpath:".\lib"
-# SUBTRACT LINK32 /nodefaultlib
-
-!ELSEIF "$(CFG)" == "gperf - Win32 Static Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "gperf___Win32_Static_Debug"
-# PROP BASE Intermediate_Dir "gperf___Win32_Static_Debug"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Static_Debug"
-# PROP Intermediate_Dir "Static_Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\\" /D "_CONSOLE" /D "_MBCS" /D "_DEBUG" /D "ACE_AS_STATIC_LIBS" /D "WIN32" /FD /c
-# SUBTRACT CPP /YX
-# 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 gperfd.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\bin\gperf.exe" /pdbtype:sept /libpath:"..\..\..\ace" /libpath:".\lib\\"
-# SUBTRACT BASE LINK32 /nodefaultlib
-# ADD LINK32 acesd.lib advapi32.lib user32.lib /nologo /subsystem:console /debug /machine:I386 /out:"..\..\..\bin\gperf.exe" /pdbtype:sept /libpath:"..\..\..\ace" /libpath:".\lib\\"
-# SUBTRACT LINK32 /nodefaultlib
-
-!ENDIF
-
-# Begin Target
-
-# Name "gperf - Win32 Release"
-# Name "gperf - Win32 Debug"
-# Name "gperf - Win32 Static Release"
-# Name "gperf - Win32 Static Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter ".cpp"
-# Begin Source File
-
-SOURCE=.\Bool_Array.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gen_Perf.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\gperf.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Table.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Iterator.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Key_List.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\List_Node.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Options.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Vectors.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Version.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter ".h"
-# Begin Source File
-
-SOURCE=.\Bool_Array.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Gen_Perf.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Hash_Table.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Iterator.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Key_List.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\List_Node.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Options.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Vectors.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/apps/gperf/src/gperf.dsw b/apps/gperf/src/gperf.dsw
deleted file mode 100644
index 787f4cb942e..00000000000
--- a/apps/gperf/src/gperf.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "gperf"=.\gperf.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/apps/gperf/tests/Makefile b/apps/gperf/tests/Makefile
deleted file mode 100644
index eea30a53922..00000000000
--- a/apps/gperf/tests/Makefile
+++ /dev/null
@@ -1,282 +0,0 @@
-# $Id$
-# 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.
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
-srcdir = .
-GPERF = ../src/gperf
-
-PROG_SRCS = \
- test.cpp \
- cinset.cpp \
- c++inset.cpp \
- iinset.cpp \
- iinset2.cpp \
- tinset.cpp \
- taoinset.cpp \
- pinset.cpp \
- m3inset.cpp \
- adainset.cpp \
- preinset.cpp
-
-SRC = $(PROG_SRCS)
-
-COUT_OBJS = test.o \
- cinset.o
-
-AOUT_OBJS = test.o \
- adainset.o
-
-CPPOUT_OBJS = test.o \
- c++inset.o
-
-PREOUT_OBJS = test.o \
- preinset.o
-
-M3OUT_OBJS = test.o \
- m3inset.o
-
-POUT_OBJS = test.o \
- pinset.o
-
-IOUT_OBJS = test.o \
- iinset.o
-
-IOUT2_OBJS = test.o \
- iinset2.o
-
-TOUT_OBJS = test.o \
- tinset.o
-
-TAOOUT_OBJS = test.o \
- taoinset.o
-
-BIN = cout \
- aout \
- c++out \
- preout \
- m3out \
- pout \
- iout \
- iout2 \
- tout \
- taoout
-
-BUILD = $(BIN)
-BUILD+=runtests
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-VBIN = $(BIN:%=%$(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.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-#rules to make the gperf generated source files..
-
-all: cout \
- aout \
- c++out \
- preout \
- m3out \
- pout \
- iout \
- iout2 \
- tout \
- runtests
-
-cinset.cpp: $(srcdir)/c.gperf $(GPERF)
- $(GPERF) -a -p -c -l -S1 -o $(srcdir)/c.gperf > $@
-
-adainset.cpp: $(srcdir)/ada.gperf $(GPERF)
- $(GPERF) -a -k1,4,'$$' $(srcdir)/ada.gperf > $@
-
-c++inset.cpp: $(srcdir)/c++.gperf $(GPERF)
- $(GPERF) -a -D $(srcdir)/c++.gperf > $@
-
-preinset.cpp: $(srcdir)/adadefs.gperf $(GPERF)
- $(GPERF) -a -p -D -k1,'$$' -s 2 -o $(srcdir)/adadefs.gperf > $@
-
-m3inset.cpp: $(srcdir)/modula3.gperf $(GPERF)
- $(GPERF) -a -k1,2,'$$' -o $(srcdir)/modula3.gperf > $@
-
-pinset.cpp: $(srcdir)/pascal.gperf $(GPERF)
- $(GPERF) -a -o -S2 -p < $(srcdir)/pascal.gperf > $@
-
-iinset.cpp: $(srcdir)/idl.gperf $(GPERF)
- $(GPERF) -m -M -c -C -D -S1 -E -T -a -o -p < $(srcdir)/idl.gperf > $@
-
-# no S1 flag in this case..
-iinset2.cpp: $(srcdir)/idl.gperf $(GPERF)
- $(GPERF) -m -M -c -C -D -E -T -a -o -p $(srcdir)/idl.gperf > $@
-
-tinset.cpp: $(srcdir)/corba.gperf $(GPERF)
- $(GPERF) -a -o < $(srcdir)/corba.gperf > $@
-
-taoinset.cpp: $(srcdir)/tao.gperf $(GPERF)
- $(GPERF) -c -C -D -E -f 0 -a -o < $(srcdir)/tao.gperf > $@
-
-#rules to make the test executables
-
-cout:$(addprefix $(VDIR),$(COUT_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-aout:$(addprefix $(VDIR),$(AOUT_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-c++out:$(addprefix $(VDIR),$(CPPOUT_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-preout:$(addprefix $(VDIR),$(PREOUT_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-m3out:$(addprefix $(VDIR),$(M3OUT_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-pout:$(addprefix $(VDIR),$(POUT_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-iout:$(addprefix $(VDIR),$(IOUT_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-iout2:$(addprefix $(VDIR),$(IOUT2_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-tout:$(addprefix $(VDIR),$(TOUT_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-taoout:$(addprefix $(VDIR),$(TAOOUT_OBJS))
- $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK)
-
-runtests: cout aout c++out preout m3out pout iout iout2 tout taoout
- @echo "performing some tests of the perfect hash generator"
- # test cout
- ./cout -v < $(srcdir)/c.gperf > c.out
- -diff -b $(srcdir)/c.exp c.out
- # test aout
- ./aout -v < $(srcdir)/ada.gperf > ada-res.out
- -diff -b $(srcdir)/ada-res.exp ada-res.out
- # test c++out
- ./c++out -v < $(srcdir)/c++.gperf > c++-res.out
- -diff -b $(srcdir)/c++-res.exp c++-res.out
- # test preout
- ./preout -v < $(srcdir)/adadefs.gperf > ada-pred.out
- -diff -b $(srcdir)/ada-pred.exp ada-pred.out
- # test m3out
- ./m3out -v < $(srcdir)/modula3.gperf > modula.out
- -diff -b $(srcdir)/modula.exp modula.out
- # test pout
- ./pout -v < $(srcdir)/pascal.gperf > pascal.out
- -diff -b $(srcdir)/pascal.exp pascal.out
- # test iout
- ./iout -v < $(srcdir)/idl.gperf > idl.out
- -diff -b $(srcdir)/idl.exp idl.out
- # test iout2
- ./iout2 -v < $(srcdir)/idl.gperf > idl.out
- -diff -b $(srcdir)/idl.exp idl.out
- #test tout
- ./tout -v < $(srcdir)/corba.gperf > corba.out
- -diff -b $(srcdir)/corba.exp corba.out
- #test taoout
- ./taoout -v < $(srcdir)/tao.gperf > tao.out
- -diff -b $(srcdir)/tao.exp tao.out
- # these next 5 are demos that show off the generated code
- $(GPERF) -p -j1 -o -t -N is_reserved_word -k1,3,'$$' < $(srcdir)/c-parse.gperf | egrep -v 'ing time is ' > test-1.out
- -diff -b $(srcdir)/test-1.exp test-1.out
- $(GPERF) -n -k1-8 -l <$(srcdir)/modula2.gperf | egrep -v 'ing time is ' > 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 | egrep -v 'ing time is ' > test-3.out
- -diff -b $(srcdir)/test-3.exp test-3.out
- $(GPERF) -D -p -t < $(srcdir)/c-parse.gperf | egrep -v 'ing time is ' > 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 | egrep -v 'ing time is ' > test-5.out
- -diff -b $(srcdir)/test-5.exp test-5.out
- # prints out the help message
- -$(GPERF) -a -h > test-6.out 2>&1 || [ a = a ]
- -diff -b $(srcdir)/test-6.exp test-6.out
- ./aout -v < $(srcdir)/c.gperf > test-7.out
- -diff -b $(srcdir)/test-7.exp test-7.out
-
-realclean:
- $(RM) -rf *.out cinset.cpp c++inset.cpp iinset.cpp iinset2.cpp \
- tinset.cpp taoinset.cpp pinset.cpp m3inset.cpp adainset.cpp preinset.cpp
- $(RM) -rf c.out aout preout m3out pout cout c++out iout iout2 tout taoout
-
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/test.o .obj/test.so .shobj/test.o .shobj/test.so: test.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i
-
-.obj/cinset.o .obj/cinset.so .shobj/cinset.o .shobj/cinset.so: cinset.cpp
-
-.obj/c++inset.o .obj/c++inset.so .shobj/c++inset.o .shobj/c++inset.so: c++inset.cpp
-
-.obj/iinset.o .obj/iinset.so .shobj/iinset.o .shobj/iinset.so: iinset.cpp
-
-.obj/iinset2.o .obj/iinset2.so .shobj/iinset2.o .shobj/iinset2.so: iinset2.cpp
-
-.obj/tinset.o .obj/tinset.so .shobj/tinset.o .shobj/tinset.so: tinset.cpp
-
-.obj/taoinset.o .obj/taoinset.so .shobj/taoinset.o .shobj/taoinset.so: taoinset.cpp
-
-.obj/pinset.o .obj/pinset.so .shobj/pinset.o .shobj/pinset.so: pinset.cpp
-
-.obj/m3inset.o .obj/m3inset.so .shobj/m3inset.o .shobj/m3inset.so: m3inset.cpp
-
-.obj/adainset.o .obj/adainset.so .shobj/adainset.o .shobj/adainset.so: adainset.cpp
-
-.obj/preinset.o .obj/preinset.so .shobj/preinset.o .shobj/preinset.so: preinset.cpp
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/apps/gperf/tests/Makefile.am b/apps/gperf/tests/Makefile.am
deleted file mode 100644
index a6cc359241b..00000000000
--- a/apps/gperf/tests/Makefile.am
+++ /dev/null
@@ -1,115 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Copyright (C) 1989, 1992, 1993 Free Software Foundation, Inc.
-## Original makefile written by Douglas C. Schmidt (schmidt@ics.uci.edu)
-## This Makefile.am written by Ossama Othman (othman@astrosun.tn.cornell.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.
-##
-## Makefile for GPERF tests
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-
-noinst_PROGRAMS = cout aout c++out preout m3out pout iout iout2 tout
-
-cout_SOURCES = cinset.cpp test.cpp
-
-aout_SOURCES = adainset.cpp test.cpp
-
-c++out_SOURCES = c++inset.cpp test.cpp
-
-preout_SOURCES = preinset.cpp test.cpp
-
-m3out_SOURCES = m3inset.cpp test.cpp
-
-pout_SOURCES = pinset.cpp test.cpp
-
-iout_SOURCES = iinset.cpp test.cpp
-
-iout_SOURCES = iinset2.cpp test.cpp
-
-tout_SOURCES = tinset.cpp test.cpp
-
-BUILT_SOURCES = \
- cinset.cpp \
- adainset.cpp \
- c++inset.cpp \
- preinset.cpp \
- m3inset.cpp \
- pinset.cpp \
- iinset.cpp \
- iinset2.cpp \
- tinset.cpp
-
-EXTRA_DIST = \
- gpc.gperf \
- gplus.gperf \
- irc.gperf \
- makeinfo.gperf \
- modula2.gperf \
- ada-pred.exp \
- ada-res.exp \
- c++-res.exp \
- c.exp \
- corba.exp \
- idl.exp \
- modula.exp \
- pascal.exp \
- test-1.exp \
- test-2.exp \
- test-3.exp \
- test-4.exp \
- test-5.exp \
- test-6.exp \
- test-7.exp
-
-cinset.cpp: c.gperf
- $(GPERF) -a -p -c -l -S1 -o $(srcdir)/c.gperf > cinset.cpp
-
-adainset.cpp: ada.gperf
- $(GPERF) -a -k1,4,'$$' $(srcdir)/ada.gperf > adainset.cpp
-
-c++inset.cpp: c++.gperf
- $(GPERF) -a -D $(srcdir)/c++.gperf > c++inset.cpp
-
-preinset.cpp: adadefs.gperf
- $(GPERF) -a -p -D -k1,'$$' -s 2 -o $(srcdir)/adadefs.gperf > preinset.cpp
-
-m3inset.cpp: modula3.gperf
- $(GPERF) -a -k1,2,'$$' -o $(srcdir)/modula3.gperf > m3inset.cpp
-
-pinset.cpp: pascal.gperf
- $(GPERF) -a -o -S2 -p < $(srcdir)/pascal.gperf > pinset.cpp
-
-iinset.cpp: idl.gperf
- $(GPERF) -m -M -c -C -D -S1 -E -T -a -o -p < $(srcdir)/idl.gperf > iinset.cpp
-
-iinset2.cpp: idl.gperf
- $(GPERF) -m -M -c -C -D -E -T -a -o -p < $(srcdir)/idl.gperf > iinset.cpp
-
-tinset.cpp: corba.gperf
- $(GPERF) -a -o < $(srcdir)/corba.gperf > tinset.cpp
-
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++-res.exp b/apps/gperf/tests/c++-res.exp
deleted file mode 100644
index 124af99193f..00000000000
--- a/apps/gperf/tests/c++-res.exp
+++ /dev/null
@@ -1,73 +0,0 @@
-in word set and
-in word set and_eq
-in word set asm
-in word set auto
-in word set bitand
-in word set bitor
-in word set bool
-in word set break
-in word set case
-in word set catch
-in word set char
-in word set class
-in word set compl
-in word set const
-in word set const_cast
-in word set continue
-in word set default
-in word set delete
-in word set do
-in word set double
-in word set dynamic_cast
-in word set else
-in word set enum
-in word set explicit
-in word set extern
-in word set false
-in word set float
-in word set for
-in word set friend
-in word set goto
-in word set if
-in word set inline
-in word set int
-in word set long
-in word set mutable
-in word set namespace
-in word set new
-in word set not
-in word set not_eq
-in word set operator
-in word set or
-in word set or_eq
-in word set private
-in word set protected
-in word set public
-in word set register
-in word set reinterpret_cast
-in word set return
-in word set short
-in word set signed
-in word set sizeof
-in word set static
-in word set static_cast
-in word set struct
-in word set switch
-in word set template
-in word set this
-in word set throw
-in word set true
-in word set try
-in word set typedef
-in word set typeid
-in word set typename
-in word set union
-in word set unsigned
-in word set using
-in word set virtual
-in word set void
-in word set volatile
-in word set wchar_t
-in word set while
-in word set xor
-in word set xor_eq
diff --git a/apps/gperf/tests/c++.gperf b/apps/gperf/tests/c++.gperf
deleted file mode 100644
index e8c8dc3f251..00000000000
--- a/apps/gperf/tests/c++.gperf
+++ /dev/null
@@ -1,73 +0,0 @@
-and
-and_eq
-asm
-auto
-bitand
-bitor
-bool
-break
-case
-catch
-char
-class
-compl
-const
-const_cast
-continue
-default
-delete
-do
-double
-dynamic_cast
-else
-enum
-explicit
-extern
-false
-float
-for
-friend
-goto
-if
-inline
-int
-long
-mutable
-namespace
-new
-not
-not_eq
-operator
-or
-or_eq
-private
-protected
-public
-register
-reinterpret_cast
-return
-short
-signed
-sizeof
-static
-static_cast
-struct
-switch
-template
-this
-throw
-true
-try
-typedef
-typeid
-typename
-union
-unsigned
-using
-virtual
-void
-volatile
-wchar_t
-while
-xor
-xor_eq
diff --git a/apps/gperf/tests/c-parse.gperf b/apps/gperf/tests/c-parse.gperf
deleted file mode 100644
index 24aa09b2ecd..00000000000
--- a/apps/gperf/tests/c-parse.gperf
+++ /dev/null
@@ -1,56 +0,0 @@
-%{
-/* Command-line: gperf -p -j1 -i 1 -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */
-%}
-struct resword { const 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/corba.exp b/apps/gperf/tests/corba.exp
deleted file mode 100644
index 4dac28e4a79..00000000000
--- a/apps/gperf/tests/corba.exp
+++ /dev/null
@@ -1,36 +0,0 @@
-in word set any
-in word set module
-in word set raises
-in word set readonly
-in word set attribute
-in word set exception
-in word set context
-in word set interface
-in word set const
-in word set typedef
-in word set struct
-in word set enum
-in word set string
-in word set wstring
-in word set sequence
-in word set union
-in word set switch
-in word set case
-in word set default
-in word set float
-in word set double
-in word set long
-in word set short
-in word set unsigned
-in word set char
-in word set wchar
-in word set boolean
-in word set octet
-in word set void
-in word set native
-in word set TRUE
-in word set FALSE
-in word set inout
-in word set in
-in word set out
-in word set oneway
diff --git a/apps/gperf/tests/corba.gperf b/apps/gperf/tests/corba.gperf
deleted file mode 100644
index d9e4377492d..00000000000
--- a/apps/gperf/tests/corba.gperf
+++ /dev/null
@@ -1,36 +0,0 @@
-any
-module
-raises
-readonly
-attribute
-exception
-context
-interface
-const
-typedef
-struct
-enum
-string
-wstring
-sequence
-union
-switch
-case
-default
-float
-double
-long
-short
-unsigned
-char
-wchar
-boolean
-octet
-void
-native
-TRUE
-FALSE
-inout
-in
-out
-oneway
diff --git a/apps/gperf/tests/gpc.gperf b/apps/gperf/tests/gpc.gperf
deleted file mode 100644
index 6752d028546..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 { const 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 91815fcc549..00000000000
--- a/apps/gperf/tests/gplus.gperf
+++ /dev/null
@@ -1,76 +0,0 @@
-%{
-/* Command-line: gperf -p -j1 -o -t -N is_reserved_word -k1,4,$ gplus.gperf */
-%}
-struct resword { const 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/idl.exp b/apps/gperf/tests/idl.exp
deleted file mode 100644
index ce29fd044c0..00000000000
--- a/apps/gperf/tests/idl.exp
+++ /dev/null
@@ -1,9 +0,0 @@
-in word set set
-in word set _is_a
-in word set destroy
-in word set get
-in word set _get_width
-in word set _set_width
-in word set _get_height
-in word set _set_height
-in word set _non_existent
diff --git a/apps/gperf/tests/idl.gperf b/apps/gperf/tests/idl.gperf
deleted file mode 100644
index cbce5603da8..00000000000
--- a/apps/gperf/tests/idl.gperf
+++ /dev/null
@@ -1,9 +0,0 @@
-set
-_is_a
-destroy
-get
-_get_width
-_set_width
-_get_height
-_set_height
-_non_existent
diff --git a/apps/gperf/tests/irc.gperf b/apps/gperf/tests/irc.gperf
deleted file mode 100644
index dbe40095849..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 {
- const 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/tao.exp b/apps/gperf/tests/tao.exp
deleted file mode 100644
index e3d52c74ed0..00000000000
--- a/apps/gperf/tests/tao.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-in word set _is_a
-in word set _non_existent
-in word set _interface
-in word set ackConfBasData
-in word set ackConfMosData
-in word set ackConfTwmData
-in word set ackConfArchData
-in word set ackConfVonData
-in word set ackConfFftData
-in word set ackConfSosData
-in word set ackConfSscData
-in word set ackConfCsData
-in word set ackConfR10Data
-in word set ackConfR11Data
-in word set ackConfR12Data
-in word set ackConfR13Data
-in word set ackConfR14Data
-in word set ackConfR15Data
-in word set shutdown
-in word set transferTriggerDb
-in word set transferTriggerTdc
diff --git a/apps/gperf/tests/tao.gperf b/apps/gperf/tests/tao.gperf
deleted file mode 100644
index 40058ccba0b..00000000000
--- a/apps/gperf/tests/tao.gperf
+++ /dev/null
@@ -1,21 +0,0 @@
-_is_a
-_non_existent
-_interface
-ackConfBasData
-ackConfMosData
-ackConfTwmData
-ackConfArchData
-ackConfVonData
-ackConfFftData
-ackConfSosData
-ackConfSscData
-ackConfCsData
-ackConfR10Data
-ackConfR11Data
-ackConfR12Data
-ackConfR13Data
-ackConfR14Data
-ackConfR15Data
-shutdown
-transferTriggerDb
-transferTriggerTdc
diff --git a/apps/gperf/tests/test-1.exp b/apps/gperf/tests/test-1.exp
deleted file mode 100644
index b0d815f52f0..00000000000
--- a/apps/gperf/tests/test-1.exp
+++ /dev/null
@@ -1,165 +0,0 @@
-/* C code produced by gperf version 2.8 (ACE version) */
-/* Command-line: ../src/gperf -p -j1 -o -t -N is_reserved_word -k1,3,$ */
-/* Command-line: gperf -p -j1 -i 1 -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */
-#include <string.h>
-struct resword { const 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
-#define HASH_VALUE_RANGE 75
-#define DUPLICATES 0
-#define WORDLIST_SIZE 59
-
-static unsigned int
-hash (str, len)
- char *str;
- unsigned int len;
-{
- static unsigned char asso_values[] =
- {
-#if defined (ACE_MVS)
- 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, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 0,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 1,
- 2, 34, 19, 6, 11, 29, 0, 17, 83, 83,
- 83, 83, 83, 83, 83, 83, 0, 23, 28, 26,
- 30, 31, 83, 15, 83, 83, 83, 83, 83, 83,
- 83, 83, 1, 0, 28, 13, 4, 83, 83, 5,
- 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,
-#else
- 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,
-#endif /* ACE_MVS */
- };
- unsigned int hval = len;
-
- switch (hval)
- {
- default:
- case 3:
- hval += asso_values[str[2]];
- case 2:
- case 1:
- hval += asso_values[str[0]];
- }
- return hval + asso_values[str[len - 1]];
-}
-
-struct resword *
-is_reserved_word (str, len)
- char *str;
- 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)
- {
- unsigned int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
- {
- char *s = wordlist[key].name;
-
- if (*str == *s && !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 52ed9e9fbf4..00000000000
--- a/apps/gperf/tests/test-2.exp
+++ /dev/null
@@ -1,214 +0,0 @@
-/* C code produced by gperf version 2.8 (ACE version) */
-/* Command-line: ../src/gperf -n -k1-8 -l */
-#include <string.h>
-
-#define TOTAL_KEYWORDS 40
-#define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 14
-#define MIN_HASH_VALUE 1
-#define MAX_HASH_VALUE 256
-#define HASH_VALUE_RANGE 256
-#define DUPLICATES 0
-#define WORDLIST_SIZE 41
-
-static unsigned int
-hash (str, len)
- char *str;
- unsigned int len;
-{
- static unsigned short asso_values[] =
- {
-#if defined (ACE_MVS)
- 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, 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,
- 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, 257, 257, 257, 257, 257, 257,
- 257, 0, 5, 45, 0, 10, 0, 1, 257, 257,
- 257, 257, 257, 257, 257, 257, 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,
-#else
- 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,
-#endif /* ACE_MVS */
- };
- unsigned 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]];
- }
- return hval;
-}
-
-const char *
-in_word_set (str, len)
- char *str;
- 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 const 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)
- {
- unsigned int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
- {
- const char *s = wordlist[key];
-
- if (len == lengthtable[key]
- && *str == *s && !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 7762cd131ba..00000000000
--- a/apps/gperf/tests/test-3.exp
+++ /dev/null
@@ -1,196 +0,0 @@
-/* C code produced by gperf version 2.8 (ACE version) */
-/* Command-line: ../src/gperf -p -j 1 -o -a -C -g -t -k1,4,$ */
-/* Command-line: gperf -p -j1 -o -t -N is_reserved_word -k1,4,$ gplus.gperf */
-#include <string.h>
-struct resword { const 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
-#define HASH_VALUE_RANGE 144
-#define DUPLICATES 0
-#define WORDLIST_SIZE 75
-
-inline
-static unsigned int
-hash (const char *str, unsigned int len)
-{
- static const unsigned char asso_values[] =
- {
-#if defined (ACE_MVS)
- 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, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 0,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
- 148, 148, 148, 148, 148, 148, 148, 148, 148, 19,
- 6, 27, 37, 0, 12, 1, 15, 63, 148, 148,
- 148, 148, 148, 148, 148, 148, 4, 0, 56, 20,
- 15, 42, 148, 31, 148, 148, 148, 148, 148, 148,
- 148, 148, 5, 26, 39, 32, 10, 148, 40, 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,
-#else
- 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,
-#endif /* ACE_MVS */
- };
- unsigned int hval = len;
-
- switch (hval)
- {
- default:
- case 4:
- hval += asso_values[str[3]];
- case 3:
- case 2:
- case 1:
- hval += asso_values[str[0]];
- }
- return hval + asso_values[str[len - 1]];
-}
-
-inline
-const struct resword *
-in_word_set (const char *str, unsigned 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)
- {
- unsigned int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
- {
- const char *s = wordlist[key].name;
-
- if (*str == *s && !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 1ba3701042f..00000000000
--- a/apps/gperf/tests/test-4.exp
+++ /dev/null
@@ -1,170 +0,0 @@
-/* C code produced by gperf version 2.8 (ACE version) */
-/* Command-line: ../src/gperf -D -p -t */
-/* Command-line: gperf -p -j1 -i 1 -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */
-#include <string.h>
-struct resword { const 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
-#define HASH_VALUE_RANGE 79
-#define DUPLICATES 3
-#define WORDLIST_SIZE 55
-
-static unsigned int
-hash (str, len)
- char *str;
- unsigned int len;
-{
- static unsigned char asso_values[] =
- {
-#if defined (ACE_MVS)
- 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, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 0,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 40,
- 20, 50, 25, 10, 30, 0, 0, 50, 83, 83,
- 83, 83, 83, 83, 83, 83, 0, 15, 0, 35,
- 0, 83, 83, 20, 83, 83, 83, 83, 83, 83,
- 83, 83, 0, 10, 40, 5, 15, 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,
-#else
- 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,
-#endif /* ACE_MVS */
- };
- return len + asso_values[str[len - 1]] + asso_values[str[0]];
-}
-
-struct resword *
-in_word_set (str, len)
- char *str;
- 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 signed char lookup[] =
- {
- -1, -1, -9, -3, 4, 5, 6, 7, -1, 8, -90, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, -1, 23, 24, 25, -1, 26,
- -1, -1, 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)
- {
- unsigned int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
- {
- int slot = lookup[key];
-
- if (slot >= 0 && slot < WORDLIST_SIZE)
- {
- char *s = wordlist[slot].name;
-
- if (*str == *s && !strcmp (str + 1, s + 1))
- return &wordlist[slot];
- }
- else if (slot < 0 && slot >= -MAX_HASH_VALUE)
- return 0;
- else
- {
- unsigned int offset = key + slot + (slot > 0 ? -MAX_HASH_VALUE : MAX_HASH_VALUE);
- struct resword *base = &wordlist[-lookup[offset]];
- 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 3b8103dbc68..00000000000
--- a/apps/gperf/tests/test-5.exp
+++ /dev/null
@@ -1,139 +0,0 @@
-/* C code produced by gperf version 2.8 (ACE 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
- *
- */
-#include <string.h>
-struct resword { const 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
-#define HASH_VALUE_RANGE 42
-#define DUPLICATES 0
-#define WORDLIST_SIZE 37
-
-inline
-static unsigned int
-hash (str, len)
- char *str;
- unsigned int len;
-{
- static unsigned char asso_values[] =
- {
-#if defined (ACE_MVS)
- 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, 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,
- 44, 44, 0, 0, 13, 44, 30, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 0, 25, 1,
- 0, 44, 44, 0, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 1, 44, 25, 44, 44, 0, 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, 44, 44, 44, 44, 44, 44,
- 44, 28, 19, 22, 15, 0, 44, 9, 44, 44,
- 44, 44, 44, 44, 44, 44, 23, 0, 23, 26,
- 2, 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,
-#else
- 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,
-#endif /* ACE_MVS */
- };
- return len + asso_values[str[len - 1]] + asso_values[str[0]];
-}
-
-inline
-struct resword *
-is_reserved_word (str, len)
- char *str;
- 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)
- {
- unsigned int key = hash (str, len);
-
- if (key <= MAX_HASH_VALUE && key >= MIN_HASH_VALUE)
- {
- char *s = wordlist[key].name;
-
- if (*str == *s && !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 2205ab7f481..00000000000
--- a/apps/gperf/tests/test-6.exp
+++ /dev/null
@@ -1,90 +0,0 @@
--a Generate ANSI standard C output code, i.e., function prototypes.
--b Generate code for Linear Search.
--B Generate code for Binary Search.
--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.
--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.''
--F Provided expression will be used to assign default values in keyword
- table, i.e., the fill value. Default is "".
--g Make generated routines use ``inline'' to remove function overhead.
--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 message.
--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.
--I Generate comparison code using case insensitive string comparison, e.g.,
- strncasecmp or strcasecmp.
- 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.
--J Skips '#include <string.h>' part in the output.
--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.
--m Avoids the warning about identical hash values. This is valid
- only if the -D option is enabled.
--M Skips class definition in the output. This is valid only in C++ mode.
--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.
--O Optimize the generated lookup function by assuming that all input
- keywords are members of the keyset from the keyfile.
--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 and exits with a value of 0
--V Exits silently with a value of 0.
--Z Allow user to specify name of generated C++ class. Default
- name is `Perfect_Hash.'
-Usage: ../src/gperf [-abBcCdDef[num]gGhH<hashname>i<init>IjJk<keys>K<keyname>lL<language>mMnN<function name>oOprs<size>S<switches>tTvVZ<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.cpp b/apps/gperf/tests/test.cpp
deleted file mode 100644
index 156b9bf922d..00000000000
--- a/apps/gperf/tests/test.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// $Id$
-
-// Tests the generated perfect hash 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 "ace/OS.h"
-
-ACE_RCSID(tests, test, "$Id$")
-
-static const int MAX_LEN = 80;
-
-// Lookup function.
-const char *in_word_set (const char *str, unsigned int len);
-
-int
-main (int argc, char *argv[])
-{
- int verbose = argc > 1 && ACE_OS::strcmp (argv[1], "-v") == 0 ? 1 : 0;
- char buf[MAX_LEN];
-
- while (ACE_OS::fgets (buf, sizeof buf, stdin) != 0)
- {
- int len = ACE_OS::strlen (buf) - 1;
- buf[len] = '\0';
- if (in_word_set (buf, len) && verbose)
- printf ("in word set %s\n", buf);
- else if (verbose)
- printf ("NOT in word set %s\n", buf);
- }
-
- return 0;
-}
diff --git a/apps/gperf/texinfo.tex b/apps/gperf/texinfo.tex
deleted file mode 100644
index 1701ae10e81..00000000000
--- a/apps/gperf/texinfo.tex
+++ /dev/null
@@ -1,4977 +0,0 @@
-% texinfo.tex -- TeX macros to handle Texinfo files.
-% $Id$
-%
-% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98
-% Free Software Foundation, Inc.
-%
-% This texinfo.tex 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, or (at
-% your option) any later version.
-%
-% This texinfo.tex file 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 texinfo.tex file; see the file COPYING. If not, write
-% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-% Boston, MA 02111-1307, USA.
-%
-% In other words, you are welcome to use, share and improve this program.
-% You are forbidden to forbid anyone else to use, share and improve
-% what you give them. Help stamp out software-hoarding!
-%
-% Please try the latest version of texinfo.tex before submitting bug
-% reports; you can get the latest version from:
-% ftp://ftp.cs.umb.edu/pub/tex/texinfo.tex
-% /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-%
-% Send bug reports to bug-texinfo@gnu.org.
-% Please include a precise test case in each bug report,
-% including a complete document with which we can reproduce the problem.
-%
-% Texinfo macros (with @macro) are *not* supported by texinfo.tex. You
-% have to run makeinfo -E to expand macros first; the texi2dvi script
-% does this.
-
-
-% Make it possible to create a .fmt file just by loading this file:
-% if the underlying format is not loaded, start by loading it now.
-% Added by gildea November 1993.
-\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
-
-% This automatically updates the version number based on RCS.
-\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
-\deftexinfoversion$Revision$
-\message{Loading texinfo package [Version \texinfoversion]:}
-
-% If in a .fmt file, print the version number
-% and turn on active characters that we couldn't do earlier because
-% they might have appeared in the input file name.
-\everyjob{\message{[Texinfo version \texinfoversion]}\message{}
- \catcode`+=\active \catcode`\_=\active}
-
-% Save some parts of plain tex whose names we will redefine.
-
-\let\ptexb=\b
-\let\ptexbullet=\bullet
-\let\ptexc=\c
-\let\ptexcomma=\,
-\let\ptexdot=\.
-\let\ptexdots=\dots
-\let\ptexend=\end
-\let\ptexequiv=\equiv
-\let\ptexexclam=\!
-\let\ptexi=\i
-\let\ptexlbrace=\{
-\let\ptexrbrace=\}
-\let\ptexstar=\*
-\let\ptext=\t
-
-% Be sure we're in horizontal mode when doing a tie, since we make space
-% equivalent to this in @example-like environments. Otherwise, a space
-% at the beginning of a line will start with \penalty -- and
-% since \penalty is valid in vertical mode, we'd end up putting the
-% penalty on the vertical list instead of in the new paragraph.
-{\catcode`@ = 11
- % Avoid using \@M directly, because that causes trouble
- % if the definition is written into an index file.
- \global\let\tiepenalty = \@M
- \gdef\tie{\leavevmode\penalty\tiepenalty\ }
-}
-
-
-\message{Basics,}
-\chardef\other=12
-
-% If this character appears in an error message or help string, it
-% starts a new line in the output.
-\newlinechar = `^^J
-
-% Set up fixed words for English.
-\ifx\putwordChapter\undefined{\gdef\putwordChapter{Chapter}}\fi%
-\def\putwordInfo{Info}%
-\ifx\putwordSee\undefined{\gdef\putwordSee{See}}\fi%
-\ifx\putwordsee\undefined{\gdef\putwordsee{see}}\fi%
-\ifx\putwordfile\undefined{\gdef\putwordfile{file}}\fi%
-\ifx\putwordpage\undefined{\gdef\putwordpage{page}}\fi%
-\ifx\putwordsection\undefined{\gdef\putwordsection{section}}\fi%
-\ifx\putwordSection\undefined{\gdef\putwordSection{Section}}\fi%
-\ifx\putwordTableofContents\undefined{\gdef\putwordTableofContents{Table of Contents}}\fi%
-\ifx\putwordShortContents\undefined{\gdef\putwordShortContents{Short Contents}}\fi%
-\ifx\putwordAppendix\undefined{\gdef\putwordAppendix{Appendix}}\fi%
-
-% Ignore a token.
-%
-\def\gobble#1{}
-
-\hyphenation{ap-pen-dix}
-\hyphenation{mini-buf-fer mini-buf-fers}
-\hyphenation{eshell}
-\hyphenation{white-space}
-
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen \bindingoffset
-\newdimen \normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% Sometimes it is convenient to have everything in the transcript file
-% and nothing on the terminal. We don't just call \tracingall here,
-% since that produces some useless output on the terminal.
-%
-\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
-\def\loggingall{\tracingcommands2 \tracingstats2
- \tracingpages1 \tracingoutput1 \tracinglostchars1
- \tracingmacros2 \tracingparagraphs1 \tracingrestores1
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-
-% For @cropmarks command.
-% Do @cropmarks to get crop marks.
-%
-\newif\ifcropmarks
-\let\cropmarks = \cropmarkstrue
-%
-% Dimensions to add cropmarks at corners.
-% Added by P. A. MacKay, 12 Nov. 1986
-%
-\newdimen\cornerlong \newdimen\cornerthick
-\newdimen\topandbottommargin
-\newdimen\outerhsize \newdimen\outervsize
-\cornerlong=1pc\cornerthick=.3pt % These set size of cropmarks
-\outerhsize=7in
-%\outervsize=9.5in
-% Alternative @smallbook page size is 9.25in
-\outervsize=9.25in
-\topandbottommargin=.75in
-
-% Main output routine.
-\chardef\PAGE = 255
-\output = {\onepageout{\pagecontents\PAGE}}
-
-\newbox\headlinebox
-\newbox\footlinebox
-
-% \onepageout takes a vbox as an argument. Note that \pagecontents
-% does insertions, but you have to call it yourself.
-\def\onepageout#1{%
- \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
- %
- \ifodd\pageno \advance\hoffset by \bindingoffset
- \else \advance\hoffset by -\bindingoffset\fi
- %
- % Do this outside of the \shipout so @code etc. will be expanded in
- % the headline as they should be, not taken literally (outputting ''code).
- \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
- \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
- %
- {%
- % Have to do this stuff outside the \shipout because we want it to
- % take effect in \write's, yet the group defined by the \vbox ends
- % before the \shipout runs.
- %
- \escapechar = `\\ % use backslash in output files.
- \indexdummies % don't expand commands in the output.
- \normalturnoffactive % \ in index entries must not stay \, e.g., if
- % the page break happens to be in the middle of an example.
- \shipout\vbox{%
- \ifcropmarks \vbox to \outervsize\bgroup
- \hsize = \outerhsize
- \line{\ewtop\hfil\ewtop}%
- \nointerlineskip
- \line{%
- \vbox{\moveleft\cornerthick\nstop}%
- \hfill
- \vbox{\moveright\cornerthick\nstop}%
- }%
- \vskip\topandbottommargin
- \line\bgroup
- \hfil % center the page within the outer (page) hsize.
- \ifodd\pageno\hskip\bindingoffset\fi
- \vbox\bgroup
- \fi
- %
- \unvbox\headlinebox
- \pagebody{#1}%
- \ifdim\ht\footlinebox > 0pt
- % Only leave this space if the footline is nonempty.
- % (We lessened \vsize for it in \oddfootingxxx.)
- % The \baselineskip=24pt in plain's \makefootline has no effect.
- \vskip 2\baselineskip
- \unvbox\footlinebox
- \fi
- %
- \ifcropmarks
- \egroup % end of \vbox\bgroup
- \hfil\egroup % end of (centering) \line\bgroup
- \vskip\topandbottommargin plus1fill minus1fill
- \boxmaxdepth = \cornerthick
- \line{%
- \vbox{\moveleft\cornerthick\nsbot}%
- \hfill
- \vbox{\moveright\cornerthick\nsbot}%
- }%
- \nointerlineskip
- \line{\ewbot\hfil\ewbot}%
- \egroup % \vbox from first cropmarks clause
- \fi
- }% end of \shipout\vbox
- }% end of group with \turnoffactive
- \advancepageno
- \ifnum\outputpenalty>-20000 \else\dosupereject\fi
-}
-
-\newinsert\margin \dimen\margin=\maxdimen
-
-\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
-{\catcode`\@ =11
-\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
-% marginal hacks, juha@viisa.uucp (Juha Takala)
-\ifvoid\margin\else % marginal info is present
- \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
-\dimen@=\dp#1 \unvbox#1
-\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
-\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
-}
-
-% Here are the rules for the cropmarks. Note that they are
-% offset so that the space between them is truly \outerhsize or \outervsize
-% (P. A. MacKay, 12 November, 1986)
-%
-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
-\def\nstop{\vbox
- {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
-\def\nsbot{\vbox
- {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
-
-% Parse an argument, then pass it to #1. The argument is the rest of
-% the input line (except we remove a trailing comment). #1 should be a
-% macro which expects an ordinary undelimited TeX argument.
-%
-\def\parsearg#1{%
- \let\next = #1%
- \begingroup
- \obeylines
- \futurelet\temp\parseargx
-}
-
-% If the next token is an obeyed space (from an @example environment or
-% the like), remove it and recurse. Otherwise, we're done.
-\def\parseargx{%
- % \obeyedspace is defined far below, after the definition of \sepspaces.
- \ifx\obeyedspace\temp
- \expandafter\parseargdiscardspace
- \else
- \expandafter\parseargline
- \fi
-}
-
-% Remove a single space (as the delimiter token to the macro call).
-{\obeyspaces %
- \gdef\parseargdiscardspace {\futurelet\temp\parseargx}}
-
-{\obeylines %
- \gdef\parseargline#1^^M{%
- \endgroup % End of the group started in \parsearg.
- %
- % First remove any @c comment, then any @comment.
- % Result of each macro is put in \toks0.
- \argremovec #1\c\relax %
- \expandafter\argremovecomment \the\toks0 \comment\relax %
- %
- % Call the caller's macro, saved as \next in \parsearg.
- \expandafter\next\expandafter{\the\toks0}%
- }%
-}
-
-% Since all \c{,omment} does is throw away the argument, we can let TeX
-% do that for us. The \relax here is matched by the \relax in the call
-% in \parseargline; it could be more or less anything, its purpose is
-% just to delimit the argument to the \c.
-\def\argremovec#1\c#2\relax{\toks0 = {#1}}
-\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}}
-
-% \argremovec{,omment} might leave us with trailing spaces, though; e.g.,
-% @end itemize @c foo
-% will have two active spaces as part of the argument with the
-% `itemize'. Here we remove all active spaces from #1, and assign the
-% result to \toks0.
-%
-% This loses if there are any *other* active characters besides spaces
-% in the argument -- _ ^ +, for example -- since they get expanded.
-% Fortunately, Texinfo does not define any such commands. (If it ever
-% does, the catcode of the characters in questionwill have to be changed
-% here.) But this means we cannot call \removeactivespaces as part of
-% \argremovec{,omment}, since @c uses \parsearg, and thus the argument
-% that \parsearg gets might well have any character at all in it.
-%
-\def\removeactivespaces#1{%
- \begingroup
- \ignoreactivespaces
- \edef\temp{#1}%
- \global\toks0 = \expandafter{\temp}%
- \endgroup
-}
-
-% Change the active space to expand to nothing.
-%
-\begingroup
- \obeyspaces
- \gdef\ignoreactivespaces{\obeyspaces\let =\empty}
-\endgroup
-
-
-\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-
-%% These are used to keep @begin/@end levels from running away
-%% Call \inENV within environments (after a \begingroup)
-\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
-\def\ENVcheck{%
-\ifENV\errmessage{Still within an environment. Type Return to continue.}
-\endgroup\fi} % This is not perfect, but it should reduce lossage
-
-% @begin foo is the same as @foo, for now.
-\newhelp\EMsimple{Type <Return> to continue.}
-
-\outer\def\begin{\parsearg\beginxxx}
-
-\def\beginxxx #1{%
-\expandafter\ifx\csname #1\endcsname\relax
-{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
-\csname #1\endcsname\fi}
-
-% @end foo executes the definition of \Efoo.
-%
-\def\end{\parsearg\endxxx}
-\def\endxxx #1{%
- \removeactivespaces{#1}%
- \edef\endthing{\the\toks0}%
- %
- \expandafter\ifx\csname E\endthing\endcsname\relax
- \expandafter\ifx\csname \endthing\endcsname\relax
- % There's no \foo, i.e., no ``environment'' foo.
- \errhelp = \EMsimple
- \errmessage{Undefined command `@end \endthing'}%
- \else
- \unmatchedenderror\endthing
- \fi
- \else
- % Everything's ok; the right environment has been started.
- \csname E\endthing\endcsname
- \fi
-}
-
-% There is an environment #1, but it hasn't been started. Give an error.
-%
-\def\unmatchedenderror#1{%
- \errhelp = \EMsimple
- \errmessage{This `@end #1' doesn't have a matching `@#1'}%
-}
-
-% Define the control sequence \E#1 to give an unmatched @end error.
-%
-\def\defineunmatchedend#1{%
- \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}%
-}
-
-
-% Single-spacing is done by various environments (specifically, in
-% \nonfillstart and \quotations).
-\newskip\singlespaceskip \singlespaceskip = 12.5pt
-\def\singlespace{%
- % Why was this kern here? It messes up equalizing space above and below
- % environments. --karl, 6may93
- %{\advance \baselineskip by -\singlespaceskip
- %\kern \baselineskip}%
- \setleading \singlespaceskip
-}
-
-%% Simple single-character @ commands
-
-% @@ prints an @
-% Kludge this until the fonts are right (grr).
-\def\@{{\tt \char '100}}
-
-% This is turned off because it was never documented
-% and you can use @w{...} around a quote to suppress ligatures.
-%% Define @` and @' to be the same as ` and '
-%% but suppressing ligatures.
-%\def\`{{`}}
-%\def\'{{'}}
-
-% Used to generate quoted braces.
-\def\mylbrace {{\tt \char '173}}
-\def\myrbrace {{\tt \char '175}}
-\let\{=\mylbrace
-\let\}=\myrbrace
-\begingroup
- % Definitions to produce actual \{ & \} command in an index.
- \catcode`\{ = 12 \catcode`\} = 12
- \catcode`\[ = 1 \catcode`\] = 2
- \catcode`\@ = 0 \catcode`\\ = 12
- @gdef@lbracecmd[\{]%
- @gdef@rbracecmd[\}]%
-@endgroup
-
-% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
-% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H.
-\let\, = \c
-\let\dotaccent = \.
-\def\ringaccent#1{{\accent23 #1}}
-\let\tieaccent = \t
-\let\ubaraccent = \b
-\let\udotaccent = \d
-
-% Other special characters: @questiondown @exclamdown
-% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss.
-\def\questiondown{?`}
-\def\exclamdown{!`}
-
-% Dotless i and dotless j, used for accents.
-\def\imacro{i}
-\def\jmacro{j}
-\def\dotless#1{%
- \def\temp{#1}%
- \ifx\temp\imacro \ptexi
- \else\ifx\temp\jmacro \j
- \else \errmessage{@dotless can be used only with i or j}%
- \fi\fi
-}
-
-% @: forces normal size whitespace following.
-\def\:{\spacefactor=1000 }
-
-% @* forces a line break.
-\def\*{\hfil\break\hbox{}\ignorespaces}
-
-% @. is an end-of-sentence period.
-\def\.{.\spacefactor=3000 }
-
-% @! is an end-of-sentence bang.
-\def\!{!\spacefactor=3000 }
-
-% @? is an end-of-sentence query.
-\def\?{?\spacefactor=3000 }
-
-% @w prevents a word break. Without the \leavevmode, @w at the
-% beginning of a paragraph, when TeX is still in vertical mode, would
-% produce a whole line of output instead of starting the paragraph.
-\def\w#1{\leavevmode\hbox{#1}}
-
-% @group ... @end group forces ... to be all on one page, by enclosing
-% it in a TeX vbox. We use \vtop instead of \vbox to construct the box
-% to keep its height that of a normal line. According to the rules for
-% \topskip (p.114 of the TeXbook), the glue inserted is
-% max (\topskip - \ht (first item), 0). If that height is large,
-% therefore, no glue is inserted, and the space between the headline and
-% the text is small, which looks bad.
-%
-\def\group{\begingroup
- \ifnum\catcode13=\active \else
- \errhelp = \groupinvalidhelp
- \errmessage{@group invalid in context where filling is enabled}%
- \fi
- %
- % The \vtop we start below produces a box with normal height and large
- % depth; thus, TeX puts \baselineskip glue before it, and (when the
- % next line of text is done) \lineskip glue after it. (See p.82 of
- % the TeXbook.) Thus, space below is not quite equal to space
- % above. But it's pretty close.
- \def\Egroup{%
- \egroup % End the \vtop.
- \endgroup % End the \group.
- }%
- %
- \vtop\bgroup
- % We have to put a strut on the last line in case the @group is in
- % the midst of an example, rather than completely enclosing it.
- % Otherwise, the interline space between the last line of the group
- % and the first line afterwards is too small. But we can't put the
- % strut in \Egroup, since there it would be on a line by itself.
- % Hence this just inserts a strut at the beginning of each line.
- \everypar = {\strut}%
- %
- % Since we have a strut on every line, we don't need any of TeX's
- % normal interline spacing.
- \offinterlineskip
- %
- % OK, but now we have to do something about blank
- % lines in the input in @example-like environments, which normally
- % just turn into \lisppar, which will insert no space now that we've
- % turned off the interline space. Simplest is to make them be an
- % empty paragraph.
- \ifx\par\lisppar
- \edef\par{\leavevmode \par}%
- %
- % Reset ^^M's definition to new definition of \par.
- \obeylines
- \fi
- %
- % Do @comment since we are called inside an environment such as
- % @example, where each end-of-line in the input causes an
- % end-of-line in the output. We don't want the end-of-line after
- % the `@group' to put extra space in the output. Since @group
- % should appear on a line by itself (according to the Texinfo
- % manual), we don't worry about eating any user text.
- \comment
-}
-%
-% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
-% message, so this ends up printing `@group can only ...'.
-%
-\newhelp\groupinvalidhelp{%
-group can only be used in environments such as @example,^^J%
-where each line of input produces a line of output.}
-
-% @need space-in-mils
-% forces a page break if there is not space-in-mils remaining.
-
-\newdimen\mil \mil=0.001in
-
-\def\need{\parsearg\needx}
-
-% Old definition--didn't work.
-%\def\needx #1{\par %
-%% This method tries to make TeX break the page naturally
-%% if the depth of the box does not fit.
-%{\baselineskip=0pt%
-%\vtop to #1\mil{\vfil}\kern -#1\mil\penalty 10000
-%\prevdepth=-1000pt
-%}}
-
-\def\needx#1{%
- % Go into vertical mode, so we don't make a big box in the middle of a
- % paragraph.
- \par
- %
- % Don't add any leading before our big empty box, but allow a page
- % break, since the best break might be right here.
- \allowbreak
- \nointerlineskip
- \vtop to #1\mil{\vfil}%
- %
- % TeX does not even consider page breaks if a penalty added to the
- % main vertical list is 10000 or more. But in order to see if the
- % empty box we just added fits on the page, we must make it consider
- % page breaks. On the other hand, we don't want to actually break the
- % page after the empty box. So we use a penalty of 9999.
- %
- % There is an extremely small chance that TeX will actually break the
- % page at this \penalty, if there are no other feasible breakpoints in
- % sight. (If the user is using lots of big @group commands, which
- % almost-but-not-quite fill up a page, TeX will have a hard time doing
- % good page breaking, for example.) However, I could not construct an
- % example where a page broke at this \penalty; if it happens in a real
- % document, then we can reconsider our strategy.
- \penalty9999
- %
- % Back up by the size of the box, whether we did a page break or not.
- \kern -#1\mil
- %
- % Do not allow a page break right after this kern.
- \nobreak
-}
-
-% @br forces paragraph break
-
-\let\br = \par
-
-% @dots{} output an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in a typewriter
-% font as three actual period characters.
-%
-\def\dots{\hbox to 1.5em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
-}}
-
-% @enddots{} is an end-of-sentence ellipsis.
-%
-\def\enddots{%
- \hbox to 2em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
- }%
- \spacefactor=3000
-}
-
-
-% @page forces the start of a new page
-
-\def\page{\par\vfill\supereject}
-
-% @exdent text....
-% outputs text on separate line in roman font, starting at standard page margin
-
-% This records the amount of indent in the innermost environment.
-% That's how much \exdent should take out.
-\newskip\exdentamount
-
-% This defn is used inside fill environments such as @defun.
-\def\exdent{\parsearg\exdentyyy}
-\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}}
-
-% This defn is used inside nofill environments such as @example.
-\def\nofillexdent{\parsearg\nofillexdentyyy}
-\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
-\leftline{\hskip\leftskip{\rm#1}}}}
-
-% @inmargin{TEXT} puts TEXT in the margin next to the current paragraph.
-
-\def\inmargin#1{%
-\strut\vadjust{\nobreak\kern-\strutdepth
- \vtop to \strutdepth{\baselineskip\strutdepth\vss
- \llap{\rightskip=\inmarginspacing \vbox{\noindent #1}}\null}}}
-\newskip\inmarginspacing \inmarginspacing=1cm
-\def\strutdepth{\dp\strutbox}
-
-%\hbox{{\rm#1}}\hfil\break}}
-
-% @include file insert text of that file as input.
-% Allow normal characters that we make active in the argument (a file name).
-\def\include{\begingroup
- \catcode`\\=12
- \catcode`~=12
- \catcode`^=12
- \catcode`_=12
- \catcode`|=12
- \catcode`<=12
- \catcode`>=12
- \catcode`+=12
- \parsearg\includezzz}
-% Restore active chars for included file.
-\def\includezzz#1{\endgroup\begingroup
- % Read the included file in a group so nested @include's work.
- \def\thisfile{#1}%
- \input\thisfile
-\endgroup}
-
-\def\thisfile{}
-
-% @center line outputs that line, centered
-
-\def\center{\parsearg\centerzzz}
-\def\centerzzz #1{{\advance\hsize by -\leftskip
-\advance\hsize by -\rightskip
-\centerline{#1}}}
-
-% @sp n outputs n lines of vertical space
-
-\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\vskip #1\baselineskip}
-
-% @comment ...line which is ignored...
-% @c is the same as @comment
-% @ignore ... @end ignore is another way to write a comment
-
-\def\comment{\catcode 64=\other \catcode 123=\other \catcode 125=\other%
-\parsearg \commentxxx}
-
-\def\commentxxx #1{\catcode 64=0 \catcode 123=1 \catcode 125=2 }
-
-\let\c=\comment
-
-% @paragraphindent is defined for the Info formatting commands only.
-\let\paragraphindent=\comment
-
-% Prevent errors for section commands.
-% Used in @ignore and in failing conditionals.
-\def\ignoresections{%
-\let\chapter=\relax
-\let\unnumbered=\relax
-\let\top=\relax
-\let\unnumberedsec=\relax
-\let\unnumberedsection=\relax
-\let\unnumberedsubsec=\relax
-\let\unnumberedsubsection=\relax
-\let\unnumberedsubsubsec=\relax
-\let\unnumberedsubsubsection=\relax
-\let\section=\relax
-\let\subsec=\relax
-\let\subsubsec=\relax
-\let\subsection=\relax
-\let\subsubsection=\relax
-\let\appendix=\relax
-\let\appendixsec=\relax
-\let\appendixsection=\relax
-\let\appendixsubsec=\relax
-\let\appendixsubsection=\relax
-\let\appendixsubsubsec=\relax
-\let\appendixsubsubsection=\relax
-\let\contents=\relax
-\let\smallbook=\relax
-\let\titlepage=\relax
-}
-
-% Used in nested conditionals, where we have to parse the Texinfo source
-% and so want to turn off most commands, in case they are used
-% incorrectly.
-%
-\def\ignoremorecommands{%
- \let\defcodeindex = \relax
- \let\defcv = \relax
- \let\deffn = \relax
- \let\deffnx = \relax
- \let\defindex = \relax
- \let\defivar = \relax
- \let\defmac = \relax
- \let\defmethod = \relax
- \let\defop = \relax
- \let\defopt = \relax
- \let\defspec = \relax
- \let\deftp = \relax
- \let\deftypefn = \relax
- \let\deftypefun = \relax
- \let\deftypevar = \relax
- \let\deftypevr = \relax
- \let\defun = \relax
- \let\defvar = \relax
- \let\defvr = \relax
- \let\ref = \relax
- \let\xref = \relax
- \let\printindex = \relax
- \let\pxref = \relax
- \let\settitle = \relax
- \let\setchapternewpage = \relax
- \let\setchapterstyle = \relax
- \let\everyheading = \relax
- \let\evenheading = \relax
- \let\oddheading = \relax
- \let\everyfooting = \relax
- \let\evenfooting = \relax
- \let\oddfooting = \relax
- \let\headings = \relax
- \let\include = \relax
- \let\lowersections = \relax
- \let\down = \relax
- \let\raisesections = \relax
- \let\up = \relax
- \let\set = \relax
- \let\clear = \relax
- \let\item = \relax
-}
-
-% Ignore @ignore ... @end ignore.
-%
-\def\ignore{\doignore{ignore}}
-
-% Ignore @ifinfo, @ifhtml, @ifnottex, @html, @menu, and @direntry text.
-%
-\def\ifinfo{\doignore{ifinfo}}
-\def\ifhtml{\doignore{ifhtml}}
-\def\ifnottex{\doignore{ifnottex}}
-\def\html{\doignore{html}}
-\def\menu{\doignore{menu}}
-\def\direntry{\doignore{direntry}}
-
-% Also ignore @macro ... @end macro. The user must run texi2dvi,
-% which runs makeinfo to do macro expansion. Ignore @unmacro, too.
-\def\macro{\doignore{macro}}
-\let\unmacro = \comment
-
-
-% @dircategory CATEGORY -- specify a category of the dir file
-% which this file should belong to. Ignore this in TeX.
-\let\dircategory = \comment
-
-% Ignore text until a line `@end #1'.
-%
-\def\doignore#1{\begingroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define a command to swallow text until we reach `@end #1'.
- \long\def\doignoretext##1\end #1{\enddoignore}%
- %
- % Make sure that spaces turn into tokens that match what \doignoretext wants.
- \catcode32 = 10
- %
- % Ignore braces, too, so mismatched braces don't cause trouble.
- \catcode`\{ = 9
- \catcode`\} = 9
- %
- % And now expand that command.
- \doignoretext
-}
-
-% What we do to finish off ignored text.
-%
-\def\enddoignore{\endgroup\ignorespaces}%
-
-\newif\ifwarnedobs\warnedobsfalse
-\def\obstexwarn{%
- \ifwarnedobs\relax\else
- % We need to warn folks that they may have trouble with TeX 3.0.
- % This uses \immediate\write16 rather than \message to get newlines.
- \immediate\write16{}
- \immediate\write16{***WARNING*** for users of Unix TeX 3.0!}
- \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
- \immediate\write16{If you are running another version of TeX, relax.}
- \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
- \immediate\write16{ Then upgrade your TeX installation if you can.}
- \immediate\write16{ (See ftp://ftp.gnu.ai.mit.edu/pub/gnu/TeX.README.)}
- \immediate\write16{If you are stuck with version 3.0, run the}
- \immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
- \immediate\write16{ to use a workaround.}
- \immediate\write16{}
- \global\warnedobstrue
- \fi
-}
-
-% **In TeX 3.0, setting text in \nullfont hangs tex. For a
-% workaround (which requires the file ``dummy.tfm'' to be installed),
-% uncomment the following line:
-%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
-
-% Ignore text, except that we keep track of conditional commands for
-% purposes of nesting, up to an `@end #1' command.
-%
-\def\nestedignore#1{%
- \obstexwarn
- % We must actually expand the ignored text to look for the @end
- % command, so that nested ignore constructs work. Thus, we put the
- % text into a \vbox and then do nothing with the result. To minimize
- % the change of memory overflow, we follow the approach outlined on
- % page 401 of the TeXbook: make the current font be a dummy font.
- %
- \setbox0 = \vbox\bgroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define `@end #1' to end the box, which will in turn undefine the
- % @end command again.
- \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
- %
- % We are going to be parsing Texinfo commands. Most cause no
- % trouble when they are used incorrectly, but some commands do
- % complicated argument parsing or otherwise get confused, so we
- % undefine them.
- %
- % We can't do anything about stray @-signs, unfortunately;
- % they'll produce `undefined control sequence' errors.
- \ignoremorecommands
- %
- % Set the current font to be \nullfont, a TeX primitive, and define
- % all the font commands to also use \nullfont. We don't use
- % dummy.tfm, as suggested in the TeXbook, because not all sites
- % might have that installed. Therefore, math mode will still
- % produce output, but that should be an extremely small amount of
- % stuff compared to the main input.
- %
- \nullfont
- \let\tenrm = \nullfont \let\tenit = \nullfont \let\tensl = \nullfont
- \let\tenbf = \nullfont \let\tentt = \nullfont \let\smallcaps = \nullfont
- \let\tensf = \nullfont
- % Similarly for index fonts (mostly for their use in
- % smallexample)
- \let\indrm = \nullfont \let\indit = \nullfont \let\indsl = \nullfont
- \let\indbf = \nullfont \let\indtt = \nullfont \let\indsc = \nullfont
- \let\indsf = \nullfont
- %
- % Don't complain when characters are missing from the fonts.
- \tracinglostchars = 0
- %
- % Don't bother to do space factor calculations.
- \frenchspacing
- %
- % Don't report underfull hboxes.
- \hbadness = 10000
- %
- % Do minimal line-breaking.
- \pretolerance = 10000
- %
- % Do not execute instructions in @tex
- \def\tex{\doignore{tex}}%
-}
-
-% @set VAR sets the variable VAR to an empty value.
-% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
-%
-% Since we want to separate VAR from REST-OF-LINE (which might be
-% empty), we can't just use \parsearg; we have to insert a space of our
-% own to delimit the rest of the line, and then take it out again if we
-% didn't need it. Make sure the catcode of space is correct to avoid
-% losing inside @example, for instance.
-%
-\def\set{\begingroup\catcode` =10
- \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
- \parsearg\setxxx}
-\def\setxxx#1{\setyyy#1 \endsetyyy}
-\def\setyyy#1 #2\endsetyyy{%
- \def\temp{#2}%
- \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
- \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
- \fi
- \endgroup
-}
-% Can't use \xdef to pre-expand #2 and save some time, since \temp or
-% \next or other control sequences that we've defined might get us into
-% an infinite loop. Consider `@set foo @cite{bar}'.
-\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
-
-% @clear VAR clears (i.e., unsets) the variable VAR.
-%
-\def\clear{\parsearg\clearxxx}
-\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
-
-% @value{foo} gets the text saved in variable foo.
-%
-\def\value{\begingroup
- \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
- \valuexxx}
-\def\valuexxx#1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- {\{No value for ``#1''\}}%
- \else
- \csname SET#1\endcsname
- \fi
-\endgroup}
-
-% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
-% with @set.
-%
-\def\ifset{\parsearg\ifsetxxx}
-\def\ifsetxxx #1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifsetfail
- \else
- \expandafter\ifsetsucceed
- \fi
-}
-\def\ifsetsucceed{\conditionalsucceed{ifset}}
-\def\ifsetfail{\nestedignore{ifset}}
-\defineunmatchedend{ifset}
-
-% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
-% defined with @set, or has been undefined with @clear.
-%
-\def\ifclear{\parsearg\ifclearxxx}
-\def\ifclearxxx #1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \expandafter\ifclearsucceed
- \else
- \expandafter\ifclearfail
- \fi
-}
-\def\ifclearsucceed{\conditionalsucceed{ifclear}}
-\def\ifclearfail{\nestedignore{ifclear}}
-\defineunmatchedend{ifclear}
-
-% @iftex, @ifnothtml, @ifnotinfo always succeed; we read the text
-% following, through the first @end iftex (etc.). Make `@end iftex'
-% (etc.) valid only after an @iftex.
-%
-\def\iftex{\conditionalsucceed{iftex}}
-\def\ifnothtml{\conditionalsucceed{ifnothtml}}
-\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
-\defineunmatchedend{iftex}
-\defineunmatchedend{ifnothtml}
-\defineunmatchedend{ifnotinfo}
-
-% We can't just want to start a group at @iftex (for example) and end it
-% at @end iftex, since then @set commands inside the conditional have no
-% effect (they'd get reverted at the end of the group). So we must
-% define \Eiftex to redefine itself to be its previous value. (We can't
-% just define it to fail again with an ``unmatched end'' error, since
-% the @ifset might be nested.)
-%
-\def\conditionalsucceed#1{%
- \edef\temp{%
- % Remember the current value of \E#1.
- \let\nece{prevE#1} = \nece{E#1}%
- %
- % At the `@end #1', redefine \E#1 to be its previous value.
- \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}%
- }%
- \temp
-}
-
-% We need to expand lots of \csname's, but we don't want to expand the
-% control sequences after we've constructed them.
-%
-\def\nece#1{\expandafter\noexpand\csname#1\endcsname}
-
-% @asis just yields its argument. Used with @table, for example.
-%
-\def\asis#1{#1}
-
-% @math means output in math mode.
-% We don't use $'s directly in the definition of \math because control
-% sequences like \math are expanded when the toc file is written. Then,
-% we read the toc file back, the $'s will be normal characters (as they
-% should be, according to the definition of Texinfo). So we must use a
-% control sequence to switch into and out of math mode.
-%
-% This isn't quite enough for @math to work properly in indices, but it
-% seems unlikely it will ever be needed there.
-%
-\let\implicitmath = $
-\def\math#1{\implicitmath #1\implicitmath}
-
-% @bullet and @minus need the same treatment as @math, just above.
-\def\bullet{\implicitmath\ptexbullet\implicitmath}
-\def\minus{\implicitmath-\implicitmath}
-
-\def\node{\ENVcheck\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx [#1,]}
-\def\nodexxx[#1,#2]{\gdef\lastnode{#1}}
-\let\nwnode=\node
-\let\lastnode=\relax
-
-\def\donoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\setref{\lastnode}\fi
-\global\let\lastnode=\relax}
-
-\def\unnumbnoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\unnumbsetref{\lastnode}\fi
-\global\let\lastnode=\relax}
-
-\def\appendixnoderef{\ifx\lastnode\relax\else
-\expandafter\expandafter\expandafter\appendixsetref{\lastnode}\fi
-\global\let\lastnode=\relax}
-
-% @refill is a no-op.
-\let\refill=\relax
-
-% @setfilename is done at the beginning of every texinfo file.
-% So open here the files we need to have open while reading the input.
-% This makes it possible to make a .fmt file for texinfo.
-\def\setfilename{%
- \readauxfile
- \opencontents
- \openindices
- \fixbackslash % Turn off hack to swallow `\input texinfo'.
- \global\let\setfilename=\comment % Ignore extra @setfilename cmds.
- %
- % If texinfo.cnf is present on the system, read it.
- % Useful for site-wide @afourpaper, etc.
- % Just to be on the safe side, close the input stream before the \input.
- \openin 1 texinfo.cnf
- \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi
- \closein1
- \temp
- %
- \comment % Ignore the actual filename.
-}
-
-% @bye.
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
-
-% \def\macro#1{\begingroup\ignoresections\catcode`\#=6\def\macrotemp{#1}\parsearg\macroxxx}
-% \def\macroxxx#1#2 \end macro{%
-% \expandafter\gdef\macrotemp#1{#2}%
-% \endgroup}
-
-%\def\linemacro#1{\begingroup\ignoresections\catcode`\#=6\def\macrotemp{#1}\parsearg\linemacroxxx}
-%\def\linemacroxxx#1#2 \end linemacro{%
-%\let\parsearg=\relax
-%\edef\macrotempx{\csname M\butfirst\expandafter\string\macrotemp\endcsname}%
-%\expandafter\xdef\macrotemp{\parsearg\macrotempx}%
-%\expandafter\gdef\macrotempx#1{#2}%
-%\endgroup}
-
-%\def\butfirst#1{}
-
-
-\message{fonts,}
-
-% Font-change commands.
-
-% Texinfo supports the sans serif font style, which plain TeX does not.
-% So we set up a \sf analogous to plain's \rm, etc.
-\newfam\sffam
-\def\sf{\fam=\sffam \tensf}
-\let\li = \sf % Sometimes we call it \li, not \sf.
-
-% We don't need math for this one.
-\def\ttsl{\tenttsl}
-
-% Use Computer Modern fonts at \magstephalf (11pt).
-\newcount\mainmagstep
-\mainmagstep=\magstephalf
-
-% Set the font macro #1 to the font named #2, adding on the
-% specified font prefix (normally `cm').
-% #3 is the font's design size, #4 is a scale factor
-\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
-
-% Use cm as the default font prefix.
-% To specify the font prefix, you must define \fontprefix
-% before you read in texinfo.tex.
-\ifx\fontprefix\undefined
-\def\fontprefix{cm}
-\fi
-% Support font families that don't use the same naming scheme as CM.
-\def\rmshape{r}
-\def\rmbshape{bx} %where the normal face is bold
-\def\bfshape{b}
-\def\bxshape{bx}
-\def\ttshape{tt}
-\def\ttbshape{tt}
-\def\ttslshape{sltt}
-\def\itshape{ti}
-\def\itbshape{bxti}
-\def\slshape{sl}
-\def\slbshape{bxsl}
-\def\sfshape{ss}
-\def\sfbshape{ss}
-\def\scshape{csc}
-\def\scbshape{csc}
-
-\ifx\bigger\relax
-\let\mainmagstep=\magstep1
-\setfont\textrm\rmshape{12}{1000}
-\setfont\texttt\ttshape{12}{1000}
-\else
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\fi
-% Instead of cmb10, you many want to use cmbx10.
-% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10.
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-
-% A few fonts for @defun, etc.
-\setfont\defbf\bxshape{10}{\magstep1} %was 1314
-\setfont\deftt\ttshape{10}{\magstep1}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
-
-% Fonts for indices and small examples (9pt).
-% We actually use the slanted font rather than the italic,
-% because texinfo normally uses the slanted fonts for that.
-% Do not make many font distinctions in general in the index, since they
-% aren't very useful.
-\setfont\ninett\ttshape{9}{1000}
-\setfont\indrm\rmshape{9}{1000}
-\setfont\indit\slshape{9}{1000}
-\let\indsl=\indit
-\let\indtt=\ninett
-\let\indttsl=\ninett
-\let\indsf=\indrm
-\let\indbf=\indrm
-\setfont\indsc\scshape{10}{900}
-\font\indi=cmmi9
-\font\indsy=cmsy9
-
-% Fonts for title page:
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-
-% Chapter (and unnumbered) fonts (17.28pt).
-\setfont\chaprm\rmbshape{12}{\magstep2}
-\setfont\chapit\itbshape{10}{\magstep3}
-\setfont\chapsl\slbshape{10}{\magstep3}
-\setfont\chaptt\ttbshape{12}{\magstep2}
-\setfont\chapttsl\ttslshape{10}{\magstep3}
-\setfont\chapsf\sfbshape{17}{1000}
-\let\chapbf=\chaprm
-\setfont\chapsc\scbshape{10}{\magstep3}
-\font\chapi=cmmi12 scaled \magstep2
-\font\chapsy=cmsy10 scaled \magstep3
-
-% Section fonts (14.4pt).
-\setfont\secrm\rmbshape{12}{\magstep1}
-\setfont\secit\itbshape{10}{\magstep2}
-\setfont\secsl\slbshape{10}{\magstep2}
-\setfont\sectt\ttbshape{12}{\magstep1}
-\setfont\secttsl\ttslshape{10}{\magstep2}
-\setfont\secsf\sfbshape{12}{\magstep1}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep2}
-\font\seci=cmmi12 scaled \magstep1
-\font\secsy=cmsy10 scaled \magstep2
-
-% \setfont\ssecrm\bxshape{10}{\magstep1} % This size an font looked bad.
-% \setfont\ssecit\itshape{10}{\magstep1} % The letters were too crowded.
-% \setfont\ssecsl\slshape{10}{\magstep1}
-% \setfont\ssectt\ttshape{10}{\magstep1}
-% \setfont\ssecsf\sfshape{10}{\magstep1}
-
-%\setfont\ssecrm\bfshape{10}{1315} % Note the use of cmb rather than cmbx.
-%\setfont\ssecit\itshape{10}{1315} % Also, the size is a little larger than
-%\setfont\ssecsl\slshape{10}{1315} % being scaled magstep1.
-%\setfont\ssectt\ttshape{10}{1315}
-%\setfont\ssecsf\sfshape{10}{1315}
-
-%\let\ssecbf=\ssecrm
-
-% Subsection fonts (13.15pt).
-\setfont\ssecrm\rmbshape{12}{\magstephalf}
-\setfont\ssecit\itbshape{10}{1315}
-\setfont\ssecsl\slbshape{10}{1315}
-\setfont\ssectt\ttbshape{12}{\magstephalf}
-\setfont\ssecttsl\ttslshape{10}{1315}
-\setfont\ssecsf\sfbshape{12}{\magstephalf}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{\magstep1}
-\font\sseci=cmmi12 scaled \magstephalf
-\font\ssecsy=cmsy10 scaled 1315
-% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
-% but that is not a standard magnification.
-
-% In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families. Since
-% texinfo doesn't allow for producing subscripts and superscripts, we
-% don't bother to reset \scriptfont and \scriptscriptfont (which would
-% also require loading a lot more fonts).
-%
-\def\resetmathfonts{%
- \textfont0 = \tenrm \textfont1 = \teni \textfont2 = \tensy
- \textfont\itfam = \tenit \textfont\slfam = \tensl \textfont\bffam = \tenbf
- \textfont\ttfam = \tentt \textfont\sffam = \tensf
-}
-
-
-% The font-changing commands redefine the meanings of \tenSTYLE, instead
-% of just \STYLE. We do this so that font changes will continue to work
-% in math mode, where it is the current \fam that is relevant in most
-% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam
-% \tenbf}, for example. By redefining \tenbf, we obviate the need to
-% redefine \bf itself.
-\def\textfonts{%
- \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
- \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
- \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
- \resetmathfonts}
-\def\titlefonts{%
- \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
- \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
- \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
- \let\tenttsl=\titlettsl
- \resetmathfonts \setleading{25pt}}
-\def\titlefont#1{{\titlefonts\rm #1}}
-\def\chapfonts{%
- \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
- \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
- \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
- \resetmathfonts \setleading{19pt}}
-\def\secfonts{%
- \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
- \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
- \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
- \resetmathfonts \setleading{16pt}}
-\def\subsecfonts{%
- \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
- \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
- \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
- \resetmathfonts \setleading{15pt}}
-\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
-\def\indexfonts{%
- \let\tenrm=\indrm \let\tenit=\indit \let\tensl=\indsl
- \let\tenbf=\indbf \let\tentt=\indtt \let\smallcaps=\indsc
- \let\tensf=\indsf \let\teni=\indi \let\tensy=\indsy \let\tenttsl=\indttsl
- \resetmathfonts \setleading{12pt}}
-
-% Set up the default fonts, so we can use them for creating boxes.
-%
-\textfonts
-
-% Define these so they can be easily changed for other fonts.
-\def\angleleft{$\langle$}
-\def\angleright{$\rangle$}
-
-% Count depth in font-changes, for error checks
-\newcount\fontdepth \fontdepth=0
-
-% Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}
-\setfont\shortcontbf\bxshape{12}{1000}
-\setfont\shortcontsl\slshape{12}{1000}
-
-%% Add scribe-like font environments, plus @l for inline lisp (usually sans
-%% serif) and @ii for TeX italic
-
-% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
-% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
-\def\smartitalic#1{{\sl #1}\futurelet\next\smartitalicx}
-
-\let\i=\smartitalic
-\let\var=\smartitalic
-\let\dfn=\smartitalic
-\let\emph=\smartitalic
-\let\cite=\smartitalic
-
-\def\b#1{{\bf #1}}
-\let\strong=\b
-
-% We can't just use \exhyphenpenalty, because that only has effect at
-% the end of a paragraph. Restore normal hyphenation at the end of the
-% group within which \nohyphenation is presumably called.
-%
-\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
-\def\restorehyphenation{\hyphenchar\font = `- }
-
-\def\t#1{%
- {\tt \rawbackslash \frenchspacing #1}%
- \null
-}
-\let\ttfont=\t
-\def\samp#1{`\tclose{#1}'\null}
-\setfont\smallrm\rmshape{8}{1000}
-\font\smallsy=cmsy9
-\def\key#1{{\smallrm\textfont2=\smallsy \leavevmode\hbox{%
- \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
- \vbox{\hrule\kern-0.4pt
- \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
- \kern-0.4pt\hrule}%
- \kern-.06em\raise0.4pt\hbox{\angleright}}}}
-% The old definition, with no lozenge:
-%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
-
-\let\file=\samp
-
-% @code is a modification of @t,
-% which makes spaces the same size as normal in the surrounding text.
-\def\tclose#1{%
- {%
- % Change normal interword space to be same as for the current font.
- \spaceskip = \fontdimen2\font
- %
- % Switch to typewriter.
- \tt
- %
- % But `\ ' produces the large typewriter interword space.
- \def\ {{\spaceskip = 0pt{} }}%
- %
- % Turn off hyphenation.
- \nohyphenation
- %
- \rawbackslash
- \frenchspacing
- #1%
- }%
- \null
-}
-
-% We *must* turn on hyphenation at `-' and `_' in \code.
-% Otherwise, it is too hard to avoid overfull hboxes
-% in the Emacs manual, the Library manual, etc.
-
-% Unfortunately, TeX uses one parameter (\hyphenchar) to control
-% both hyphenation at - and hyphenation within words.
-% We must therefore turn them both off (\tclose does that)
-% and arrange explicitly to hyphenate at a dash.
-% -- rms.
-{
-\catcode`\-=\active
-\catcode`\_=\active
-\catcode`\|=\active
-\global\def\code{\begingroup \catcode`\-=\active \let-\codedash \catcode`\_=\active \let_\codeunder \codex}
-% The following is used by \doprintindex to insure that long function names
-% wrap around. It is necessary for - and _ to be active before the index is
-% read from the file, as \entry parses the arguments long before \code is
-% ever called. -- mycroft
-% _ is always active; and it shouldn't be \let = to an _ that is a
-% subscript character anyway. Then, @cindex @samp{_} (for example)
-% fails. --karl
-\global\def\indexbreaks{%
- \catcode`\-=\active \let-\realdash
-}
-}
-
-\def\realdash{-}
-\def\codedash{-\discretionary{}{}{}}
-\def\codeunder{\ifusingtt{\normalunderscore\discretionary{}{}{}}{\_}}
-\def\codex #1{\tclose{#1}\endgroup}
-
-%\let\exp=\tclose %Was temporary
-
-% @kbd is like @code, except that if the argument is just one @key command,
-% then @kbd has no effect.
-
-% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
-% `example' (@kbd uses ttsl only inside of @example and friends),
-% or `code' (@kbd uses normal tty font always).
-\def\kbdinputstyle{\parsearg\kbdinputstylexxx}
-\def\kbdinputstylexxx#1{%
- \def\arg{#1}%
- \ifx\arg\worddistinct
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
- \else\ifx\arg\wordexample
- \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
- \else\ifx\arg\wordcode
- \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
- \fi\fi\fi
-}
-\def\worddistinct{distinct}
-\def\wordexample{example}
-\def\wordcode{code}
-
-% Default is kbdinputdistinct. (Too much of a hassle to call the macro,
-% the catcodes are wrong for parsearg to work.)
-\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}
-
-\def\xkey{\key}
-\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
-\ifx\one\xkey\ifx\threex\three \key{#2}%
-\else{\tclose{\kbdfont\look}}\fi
-\else{\tclose{\kbdfont\look}}\fi}
-
-% @url. Quotes do not seem necessary, so use \code.
-\let\url=\code
-
-% @uref (abbreviation for `urlref') takes an optional second argument
-% specifying the text to display. First (mandatory) arg is the url.
-% Perhaps eventually put in a hypertex \special here.
-%
-\def\uref#1{\urefxxx #1,,\finish}
-\def\urefxxx#1,#2,#3\finish{%
- \setbox0 = \hbox{\ignorespaces #2}%
- \ifdim\wd0 > 0pt
- \unhbox0\ (\code{#1})%
- \else
- \code{#1}%
- \fi
-}
-
-% rms does not like the angle brackets --karl, 17may97.
-% So now @email is just like @uref.
-%\def\email#1{\angleleft{\tt #1}\angleright}
-\let\email=\uref
-
-% Check if we are currently using a typewriter font. Since all the
-% Computer Modern typewriter fonts have zero interword stretch (and
-% shrink), and it is reasonable to expect all typewriter fonts to have
-% this property, we can check that font parameter.
-%
-\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-
-% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
-% argument is to make the input look right: @dmn{pt} instead of
-% @dmn{}pt.
-%
-\def\dmn#1{\thinspace #1}
-
-\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par}
-
-% @l was never documented to mean ``switch to the Lisp font'',
-% and it is not used as such in any manual I can find. We need it for
-% Polish suppressed-l. --karl, 22sep96.
-%\def\l#1{{\li #1}\null}
-
-\def\r#1{{\rm #1}} % roman font
-% Use of \lowercase was suggested.
-\def\sc#1{{\smallcaps#1}} % smallcaps font
-\def\ii#1{{\it #1}} % italic font
-
-% @pounds{} is a sterling sign.
-\def\pounds{{\it\$}}
-
-
-\message{page headings,}
-
-\newskip\titlepagetopglue \titlepagetopglue = 1.5in
-\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
-
-% First the title page. Must do @settitle before @titlepage.
-\newif\ifseenauthor
-\newif\iffinishedtitlepage
-
-\def\shorttitlepage{\parsearg\shorttitlepagezzz}
-\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
- \endgroup\page\hbox{}\page}
-
-\def\titlepage{\begingroup \parindent=0pt \textfonts
- \let\subtitlerm=\tenrm
-% I deinstalled the following change because \cmr12 is undefined.
-% This change was not in the ChangeLog anyway. --rms.
-% \let\subtitlerm=\cmr12
- \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
- %
- \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}%
- %
- % Leave some space at the very top of the page.
- \vglue\titlepagetopglue
- %
- % Now you can print the title using @title.
- \def\title{\parsearg\titlezzz}%
- \def\titlezzz##1{\leftline{\titlefonts\rm ##1}
- % print a rule at the page bottom also.
- \finishedtitlepagefalse
- \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
- % No rule at page bottom unless we print one at the top with @title.
- \finishedtitlepagetrue
- %
- % Now you can put text using @subtitle.
- \def\subtitle{\parsearg\subtitlezzz}%
- \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}%
- %
- % @author should come last, but may come many times.
- \def\author{\parsearg\authorzzz}%
- \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
- {\authorfont \leftline{##1}}}%
- %
- % Most title ``pages'' are actually two pages long, with space
- % at the top of the second. We don't want the ragged left on the second.
- \let\oldpage = \page
- \def\page{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- \oldpage
- \let\page = \oldpage
- \hbox{}}%
-% \def\page{\oldpage \hbox{}}
-}
-
-\def\Etitlepage{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- % It is important to do the page break before ending the group,
- % because the headline and footline are only empty inside the group.
- % If we use the new definition of \page, we always get a blank page
- % after the title page, which we certainly don't want.
- \oldpage
- \endgroup
- \HEADINGSon
-}
-
-\def\finishtitlepage{%
- \vskip4pt \hrule height 2pt width \hsize
- \vskip\titlepagebottomglue
- \finishedtitlepagetrue
-}
-
-%%% Set up page headings and footings.
-
-\let\thispage=\folio
-
-\newtoks \evenheadline % Token sequence for heading line of even pages
-\newtoks \oddheadline % Token sequence for heading line of odd pages
-\newtoks \evenfootline % Token sequence for footing line of even pages
-\newtoks \oddfootline % Token sequence for footing line of odd pages
-
-% Now make Tex use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
- \else \the\evenheadline \fi}}
-\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
- \else \the\evenfootline \fi}\HEADINGShook}
-\let\HEADINGShook=\relax
-
-% Commands to set those variables.
-% For example, this is what @headings on does
-% @evenheading @thistitle|@thispage|@thischapter
-% @oddheading @thischapter|@thispage|@thistitle
-% @evenfooting @thisfile||
-% @oddfooting ||@thisfile
-
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\everyheading{\parsearg\everyheadingxxx}
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\everyfooting{\parsearg\everyfootingxxx}
-
-{\catcode`\@=0 %
-
-\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
-\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
-\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{%
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-
-\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
-\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{%
-\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-
-\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
-\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{%
- \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
- %
- % Leave some space for the footline. Hopefully ok to assume
- % @evenfooting will not be used by itself.
- \global\advance\pageheight by -\baselineskip
- \global\advance\vsize by -\baselineskip
-}
-
-\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-%
-}% unbind the catcode of @.
-
-% @headings double turns headings on for double-sided printing.
-% @headings single turns headings on for single-sided printing.
-% @headings off turns them off.
-% @headings on same as @headings double, retained for compatibility.
-% @headings after turns on double-sided headings after this page.
-% @headings doubleafter turns on double-sided headings after this page.
-% @headings singleafter turns on single-sided headings after this page.
-% By default, they are off at the start of a document,
-% and turned `on' after @end titlepage.
-
-\def\headings #1 {\csname HEADINGS#1\endcsname}
-
-\def\HEADINGSoff{
-\global\evenheadline={\hfil} \global\evenfootline={\hfil}
-\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
-\HEADINGSoff
-% When we turn headings on, set the page number to 1.
-% For double-sided printing, put current file name in lower left corner,
-% chapter name on inside top of right hand pages, document
-% title on inside top of left hand pages, and page numbers on outside top
-% edge of all pages.
-\def\HEADINGSdouble{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-\let\contentsalignmacro = \chappager
-
-% For single-sided printing, chapter title goes across top left of page,
-% page number on top right.
-\def\HEADINGSsingle{
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-\def\HEADINGSon{\HEADINGSdouble}
-
-\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
-\let\HEADINGSdoubleafter=\HEADINGSafter
-\def\HEADINGSdoublex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
-}
-
-\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
-\def\HEADINGSsinglex{%
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
-}
-
-% Subroutines used in generating headings
-% Produces Day Month Year style of output.
-\def\today{\number\day\space
-\ifcase\month\or
-January\or February\or March\or April\or May\or June\or
-July\or August\or September\or October\or November\or December\fi
-\space\number\year}
-
-% Use this if you want the Month Day, Year style of output.
-%\def\today{\ifcase\month\or
-%January\or February\or March\or April\or May\or June\or
-%July\or August\or September\or October\or November\or December\fi
-%\space\number\day, \number\year}
-
-% @settitle line... specifies the title of the document, for headings
-% It generates no output of its own
-
-\def\thistitle{No Title}
-\def\settitle{\parsearg\settitlezzz}
-\def\settitlezzz #1{\gdef\thistitle{#1}}
-
-
-\message{tables,}
-
-% @tabs -- simple alignment
-
-% These don't work. For one thing, \+ is defined as outer.
-% So these macros cannot even be defined.
-
-%\def\tabs{\parsearg\tabszzz}
-%\def\tabszzz #1{\settabs\+#1\cr}
-%\def\tabline{\parsearg\tablinezzz}
-%\def\tablinezzz #1{\+#1\cr}
-%\def\&{&}
-
-% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x).
-
-% default indentation of table text
-\newdimen\tableindent \tableindent=.8in
-% default indentation of @itemize and @enumerate text
-\newdimen\itemindent \itemindent=.3in
-% margin between end of table item and start of table text.
-\newdimen\itemmargin \itemmargin=.1in
-
-% used internally for \itemindent minus \itemmargin
-\newdimen\itemmax
-
-% Note @table, @vtable, and @vtable define @item, @itemx, etc., with
-% these defs.
-% They also define \itemindex
-% to index the item name in whatever manner is desired (perhaps none).
-
-\newif\ifitemxneedsnegativevskip
-
-\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
-
-\def\internalBitem{\smallbreak \parsearg\itemzzz}
-\def\internalBitemx{\itemxpar \parsearg\itemzzz}
-
-\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
-\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz}
-
-\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
-\def\internalBkitemx{\itemxpar \parsearg\kitemzzz}
-
-\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}%
- \itemzzz {#1}}
-
-\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}%
- \itemzzz {#1}}
-
-\def\itemzzz #1{\begingroup %
- \advance\hsize by -\rightskip
- \advance\hsize by -\tableindent
- \setbox0=\hbox{\itemfont{#1}}%
- \itemindex{#1}%
- \nobreak % This prevents a break before @itemx.
- %
- % Be sure we are not still in the middle of a paragraph.
- %{\parskip = 0in
- %\par
- %}%
- %
- % If the item text does not fit in the space we have, put it on a line
- % by itself, and do not allow a page break either before or after that
- % line. We do not start a paragraph here because then if the next
- % command is, e.g., @kindex, the whatsit would get put into the
- % horizontal list on a line by itself, resulting in extra blank space.
- \ifdim \wd0>\itemmax
- %
- % Make this a paragraph so we get the \parskip glue and wrapping,
- % but leave it ragged-right.
- \begingroup
- \advance\leftskip by-\tableindent
- \advance\hsize by\tableindent
- \advance\rightskip by0pt plus1fil
- \leavevmode\unhbox0\par
- \endgroup
- %
- % We're going to be starting a paragraph, but we don't want the
- % \parskip glue -- logically it's part of the @item we just started.
- \nobreak \vskip-\parskip
- %
- % Stop a page break at the \parskip glue coming up. Unfortunately
- % we can't prevent a possible page break at the following
- % \baselineskip glue.
- \nobreak
- \endgroup
- \itemxneedsnegativevskipfalse
- \else
- % The item text fits into the space. Start a paragraph, so that the
- % following text (if any) will end up on the same line. Since that
- % text will be indented by \tableindent, we make the item text be in
- % a zero-width box.
- \noindent
- \rlap{\hskip -\tableindent\box0}\ignorespaces%
- \endgroup%
- \itemxneedsnegativevskiptrue%
- \fi
-}
-
-\def\item{\errmessage{@item while not in a table}}
-\def\itemx{\errmessage{@itemx while not in a table}}
-\def\kitem{\errmessage{@kitem while not in a table}}
-\def\kitemx{\errmessage{@kitemx while not in a table}}
-\def\xitem{\errmessage{@xitem while not in a table}}
-\def\xitemx{\errmessage{@xitemx while not in a table}}
-
-%% Contains a kludge to get @end[description] to work
-\def\description{\tablez{\dontindex}{1}{}{}{}{}}
-
-\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
-{\obeylines\obeyspaces%
-\gdef\tablex #1^^M{%
-\tabley\dontindex#1 \endtabley}}
-
-\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
-{\obeylines\obeyspaces%
-\gdef\ftablex #1^^M{%
-\tabley\fnitemindex#1 \endtabley
-\def\Eftable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex}
-{\obeylines\obeyspaces%
-\gdef\vtablex #1^^M{%
-\tabley\vritemindex#1 \endtabley
-\def\Evtable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\dontindex #1{}
-\def\fnitemindex #1{\doind {fn}{\code{#1}}}%
-\def\vritemindex #1{\doind {vr}{\code{#1}}}%
-
-{\obeyspaces %
-\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup%
-\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\tablez #1#2#3#4#5#6{%
-\aboveenvbreak %
-\begingroup %
-\def\Edescription{\Etable}% Necessary kludge.
-\let\itemindex=#1%
-\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
-\ifnum 0#4>0 \tableindent=#4\mil \fi %
-\ifnum 0#5>0 \advance \rightskip by #5\mil \fi %
-\def\itemfont{#2}%
-\itemmax=\tableindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \tableindent %
-\exdentamount=\tableindent
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def\Etable{\endgraf\afterenvbreak\endgroup}%
-\let\item = \internalBitem %
-\let\itemx = \internalBitemx %
-\let\kitem = \internalBkitem %
-\let\kitemx = \internalBkitemx %
-\let\xitem = \internalBxitem %
-\let\xitemx = \internalBxitemx %
-}
-
-% This is the counter used by @enumerate, which is really @itemize
-
-\newcount \itemno
-
-\def\itemize{\parsearg\itemizezzz}
-
-\def\itemizezzz #1{%
- \begingroup % ended by the @end itemsize
- \itemizey {#1}{\Eitemize}
-}
-
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\exdentamount=\itemindent
-\parindent = 0pt %
-\parskip = \smallskipamount %
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\afterenvbreak\endgroup}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
-
-% Set sfcode to normal for the chars that usually have another value.
-% These are `.?!:;,'
-\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000
- \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 }
-
-% \splitoff TOKENS\endmark defines \first to be the first token in
-% TOKENS, and \rest to be the remainder.
-%
-\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
-
-% Allow an optional argument of an uppercase letter, lowercase letter,
-% or number, to specify the first label in the enumerated list. No
-% argument is the same as `1'.
-%
-\def\enumerate{\parsearg\enumeratezzz}
-\def\enumeratezzz #1{\enumeratey #1 \endenumeratey}
-\def\enumeratey #1 #2\endenumeratey{%
- \begingroup % ended by the @end enumerate
- %
- % If we were given no argument, pretend we were given `1'.
- \def\thearg{#1}%
- \ifx\thearg\empty \def\thearg{1}\fi
- %
- % Detect if the argument is a single token. If so, it might be a
- % letter. Otherwise, the only valid thing it can be is a number.
- % (We will always have one token, because of the test we just made.
- % This is a good thing, since \splitoff doesn't work given nothing at
- % all -- the first parameter is undelimited.)
- \expandafter\splitoff\thearg\endmark
- \ifx\rest\empty
- % Only one token in the argument. It could still be anything.
- % A ``lowercase letter'' is one whose \lccode is nonzero.
- % An ``uppercase letter'' is one whose \lccode is both nonzero, and
- % not equal to itself.
- % Otherwise, we assume it's a number.
- %
- % We need the \relax at the end of the \ifnum lines to stop TeX from
- % continuing to look for a <number>.
- %
- \ifnum\lccode\expandafter`\thearg=0\relax
- \numericenumerate % a number (we hope)
- \else
- % It's a letter.
- \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
- \lowercaseenumerate % lowercase letter
- \else
- \uppercaseenumerate % uppercase letter
- \fi
- \fi
- \else
- % Multiple tokens in the argument. We hope it's a number.
- \numericenumerate
- \fi
-}
-
-% An @enumerate whose labels are integers. The starting integer is
-% given in \thearg.
-%
-\def\numericenumerate{%
- \itemno = \thearg
- \startenumeration{\the\itemno}%
-}
-
-% The starting (lowercase) letter is in \thearg.
-\def\lowercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more lowercase letters in @enumerate; get a bigger
- alphabet}%
- \fi
- \char\lccode\itemno
- }%
-}
-
-% The starting (uppercase) letter is in \thearg.
-\def\uppercaseenumerate{%
- \itemno = \expandafter`\thearg
- \startenumeration{%
- % Be sure we're not beyond the end of the alphabet.
- \ifnum\itemno=0
- \errmessage{No more uppercase letters in @enumerate; get a bigger
- alphabet}
- \fi
- \char\uccode\itemno
- }%
-}
-
-% Call itemizey, adding a period to the first argument and supplying the
-% common last two arguments. Also subtract one from the initial value in
-% \itemno, since @item increments \itemno.
-%
-\def\startenumeration#1{%
- \advance\itemno by -1
- \itemizey{#1.}\Eenumerate\flushcr
-}
-
-% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
-% to @enumerate.
-%
-\def\alphaenumerate{\enumerate{a}}
-\def\capsenumerate{\enumerate{A}}
-\def\Ealphaenumerate{\Eenumerate}
-\def\Ecapsenumerate{\Eenumerate}
-
-% Definition of @item while inside @itemize.
-
-\def\itemizeitem{%
-\advance\itemno by 1
-{\let\par=\endgraf \smallbreak}%
-\ifhmode \errmessage{In hmode at itemizeitem}\fi
-{\parskip=0in \hskip 0pt
-\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}%
-\vadjust{\penalty 1200}}%
-\flushcr}
-
-% @multitable macros
-% Amy Hendrickson, 8/18/94, 3/6/96
-%
-% @multitable ... @end multitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble. Width
-% can be specified either with sample text given in a template line,
-% or in percent of \hsize, the current width of text on page.
-
-% Table can continue over pages but will only break between lines.
-
-% To make preamble:
-%
-% Either define widths of columns in terms of percent of \hsize:
-% @multitable @columnfractions .25 .3 .45
-% @item ...
-%
-% Numbers following @columnfractions are the percent of the total
-% current hsize to be used for each column. You may use as many
-% columns as desired.
-
-
-% Or use a template:
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item ...
-% using the widest term desired in each column.
-%
-% For those who want to use more than one line's worth of words in
-% the preamble, break the line within one argument and it
-% will parse correctly, i.e.,
-%
-% @multitable {Column 1 template} {Column 2 template} {Column 3
-% template}
-% Not:
-% @multitable {Column 1 template} {Column 2 template}
-% {Column 3 template}
-
-% Each new table line starts with @item, each subsequent new column
-% starts with @tab. Empty columns may be produced by supplying @tab's
-% with nothing between them for as many times as empty columns are needed,
-% ie, @tab@tab@tab will produce two empty columns.
-
-% @item, @tab, @multitable or @end multitable do not need to be on their
-% own lines, but it will not hurt if they are.
-
-% Sample multitable:
-
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item first col stuff @tab second col stuff @tab third col
-% @item
-% first col stuff
-% @tab
-% second col stuff
-% @tab
-% third col
-% @item first col stuff @tab second col stuff
-% @tab Many paragraphs of text may be used in any column.
-%
-% They will wrap at the width determined by the template.
-% @item@tab@tab This will be in third column.
-% @end multitable
-
-% Default dimensions may be reset by user.
-% @multitableparskip is vertical space between paragraphs in table.
-% @multitableparindent is paragraph indent in table.
-% @multitablecolmargin is horizontal space to be left between columns.
-% @multitablelinespace is space to leave between table items, baseline
-% to baseline.
-% 0pt means it depends on current normal line spacing.
-%
-\newskip\multitableparskip
-\newskip\multitableparindent
-\newdimen\multitablecolspace
-\newskip\multitablelinespace
-\multitableparskip=0pt
-\multitableparindent=6pt
-\multitablecolspace=12pt
-\multitablelinespace=0pt
-
-% Macros used to set up halign preamble:
-%
-\let\endsetuptable\relax
-\def\xendsetuptable{\endsetuptable}
-\let\columnfractions\relax
-\def\xcolumnfractions{\columnfractions}
-\newif\ifsetpercent
-
-% 2/1/96, to allow fractions to be given with more than one digit.
-\def\pickupwholefraction#1 {\global\advance\colcount by1 %
-\expandafter\xdef\csname col\the\colcount\endcsname{.#1\hsize}%
-\setuptable}
-
-\newcount\colcount
-\def\setuptable#1{\def\firstarg{#1}%
-\ifx\firstarg\xendsetuptable\let\go\relax%
-\else
- \ifx\firstarg\xcolumnfractions\global\setpercenttrue%
- \else
- \ifsetpercent
- \let\go\pickupwholefraction % In this case arg of setuptable
- % is the decimal point before the
- % number given in percent of hsize.
- % We don't need this so we don't use it.
- \else
- \global\advance\colcount by1
- \setbox0=\hbox{#1 }% Add a normal word space as a separator;
- % typically that is always in the input, anyway.
- \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
- \fi%
- \fi%
-\ifx\go\pickupwholefraction\else\let\go\setuptable\fi%
-\fi\go}
-
-% multitable syntax
-\def\tab{&\hskip1sp\relax} % 2/2/96
- % tiny skip here makes sure this column space is
- % maintained, even if it is never used.
-
-% @multitable ... @end multitable definitions:
-
-\def\multitable{\parsearg\dotable}
-\def\dotable#1{\bgroup
- \vskip\parskip
- \let\item\crcr
- \tolerance=9500
- \hbadness=9500
- \setmultitablespacing
- \parskip=\multitableparskip
- \parindent=\multitableparindent
- \overfullrule=0pt
- \global\colcount=0
- \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}%
- %
- % To parse everything between @multitable and @item:
- \setuptable#1 \endsetuptable
- %
- % \everycr will reset column counter, \colcount, at the end of
- % each line. Every column entry will cause \colcount to advance by one.
- % The table preamble
- % looks at the current \colcount to find the correct column width.
- \everycr{\noalign{%
- %
- % \filbreak%% keeps underfull box messages off when table breaks over pages.
- % Maybe so, but it also creates really weird page breaks when the table
- % breaks over pages. Wouldn't \vfil be better? Wait until the problem
- % manifests itself, so it can be fixed for real --karl.
- \global\colcount=0\relax}}%
- %
- % This preamble sets up a generic column definition, which will
- % be used as many times as user calls for columns.
- % \vtop will set a single line and will also let text wrap and
- % continue for many paragraphs if desired.
- \halign\bgroup&\global\advance\colcount by 1\relax
- \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
- %
- % In order to keep entries from bumping into each other
- % we will add a \leftskip of \multitablecolspace to all columns after
- % the first one.
- %
- % If a template has been used, we will add \multitablecolspace
- % to the width of each template entry.
- %
- % If the user has set preamble in terms of percent of \hsize we will
- % use that dimension as the width of the column, and the \leftskip
- % will keep entries from bumping into each other. Table will start at
- % left margin and final column will justify at right margin.
- %
- % Make sure we don't inherit \rightskip from the outer environment.
- \rightskip=0pt
- \ifnum\colcount=1
- % The first column will be indented with the surrounding text.
- \advance\hsize by\leftskip
- \else
- \ifsetpercent \else
- % If user has not set preamble in terms of percent of \hsize
- % we will advance \hsize by \multitablecolspace.
- \advance\hsize by \multitablecolspace
- \fi
- % In either case we will make \leftskip=\multitablecolspace:
- \leftskip=\multitablecolspace
- \fi
- % Ignoring space at the beginning and end avoids an occasional spurious
- % blank line, when TeX decides to break the line at the space before the
- % box from the multistrut, so the strut ends up on a line by itself.
- % For example:
- % @multitable @columnfractions .11 .89
- % @item @code{#}
- % @tab Legal holiday which is valid in major parts of the whole country.
- % Is automatically provided with highlighting sequences respectively marking
- % characters.
- \noindent\ignorespaces##\unskip\multistrut}\cr
-}
-
-\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
-% If so, do nothing. If not, give it an appropriate dimension based on
-% current baselineskip.
-\ifdim\multitablelinespace=0pt
-%% strut to put in table in case some entry doesn't have descenders,
-%% to keep lines equally spaced
-\let\multistrut = \strut
-%% Test to see if parskip is larger than space between lines of
-%% table. If not, do nothing.
-%% If so, set to same dimension as multitablelinespace.
-\else
-\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
-width0pt\relax} \fi
-\ifdim\multitableparskip>\multitablelinespace
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi%
-\ifdim\multitableparskip=0pt
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller
- %% than skip between lines in the table.
-\fi}
-
-
-\message{indexing,}
-% Index generation facilities
-
-% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within \newindex.
-{\catcode`\@=11
-\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
-
-% \newindex {foo} defines an index named foo.
-% It automatically defines \fooindex such that
-% \fooindex ...rest of line... puts an entry in the index foo.
-% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index. The file's extension is foo.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
-
-\def\newindex #1{
-\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\doindex {#1}}
-}
-
-% @defindex foo == \newindex{foo}
-
-\def\defindex{\parsearg\newindex}
-
-% Define @defcodeindex, like @defindex except put all entries in @code.
-
-\def\newcodeindex #1{
-\expandafter\newwrite \csname#1indfile\endcsname% Define number for output file
-\openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\docodeindex {#1}}
-}
-
-\def\defcodeindex{\parsearg\newcodeindex}
-
-% @synindex foo bar makes index foo feed into index bar.
-% Do this instead of @defindex foo if you don't want it as a separate index.
-\def\synindex #1 #2 {%
-\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\doindex {#2}}%
-}
-
-% @syncodeindex foo bar similar, but put all entries made for index foo
-% inside @code.
-\def\syncodeindex #1 #2 {%
-\expandafter\let\expandafter\synindexfoo\expandafter=\csname#2indfile\endcsname
-\expandafter\let\csname#1indfile\endcsname=\synindexfoo
-\expandafter\xdef\csname#1index\endcsname{% % Define \xxxindex
-\noexpand\docodeindex {#2}}%
-}
-
-% Define \doindex, the driver for all \fooindex macros.
-% Argument #1 is generated by the calling \fooindex macro,
-% and it is "foo", the name of the index.
-
-% \doindex just uses \parsearg; it calls \doind for the actual work.
-% This is because \doind is more useful to call from other macros.
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
-
-\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
-\def\singleindexer #1{\doind{\indexname}{#1}}
-
-% like the previous two, but they put @code around the argument.
-\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
-\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
-
-\def\indexdummies{%
-% Take care of the plain tex accent commands.
-\def\"{\realbackslash "}%
-\def\`{\realbackslash `}%
-\def\'{\realbackslash '}%
-\def\^{\realbackslash ^}%
-\def\~{\realbackslash ~}%
-\def\={\realbackslash =}%
-\def\b{\realbackslash b}%
-\def\c{\realbackslash c}%
-\def\d{\realbackslash d}%
-\def\u{\realbackslash u}%
-\def\v{\realbackslash v}%
-\def\H{\realbackslash H}%
-% Take care of the plain tex special European modified letters.
-\def\oe{\realbackslash oe}%
-\def\ae{\realbackslash ae}%
-\def\aa{\realbackslash aa}%
-\def\OE{\realbackslash OE}%
-\def\AE{\realbackslash AE}%
-\def\AA{\realbackslash AA}%
-\def\o{\realbackslash o}%
-\def\O{\realbackslash O}%
-\def\l{\realbackslash l}%
-\def\L{\realbackslash L}%
-\def\ss{\realbackslash ss}%
-% Take care of texinfo commands likely to appear in an index entry.
-% (Must be a way to avoid doing expansion at all, and thus not have to
-% laboriously list every single command here.)
-\def\@{@}% will be @@ when we switch to @ as escape char.
-%\let\{ = \lbracecmd
-%\let\} = \rbracecmd
-\def\_{{\realbackslash _}}%
-\def\w{\realbackslash w }%
-\def\bf{\realbackslash bf }%
-%\def\rm{\realbackslash rm }%
-\def\sl{\realbackslash sl }%
-\def\sf{\realbackslash sf}%
-\def\tt{\realbackslash tt}%
-\def\gtr{\realbackslash gtr}%
-\def\less{\realbackslash less}%
-\def\hat{\realbackslash hat}%
-%\def\char{\realbackslash char}%
-\def\TeX{\realbackslash TeX}%
-\def\dots{\realbackslash dots }%
-\def\result{\realbackslash result}%
-\def\equiv{\realbackslash equiv}%
-\def\expansion{\realbackslash expansion}%
-\def\print{\realbackslash print}%
-\def\error{\realbackslash error}%
-\def\point{\realbackslash point}%
-\def\copyright{\realbackslash copyright}%
-\def\tclose##1{\realbackslash tclose {##1}}%
-\def\code##1{\realbackslash code {##1}}%
-\def\dotless##1{\realbackslash dotless {##1}}%
-\def\samp##1{\realbackslash samp {##1}}%
-\def\,##1{\realbackslash ,{##1}}%
-\def\t##1{\realbackslash t {##1}}%
-\def\r##1{\realbackslash r {##1}}%
-\def\i##1{\realbackslash i {##1}}%
-\def\b##1{\realbackslash b {##1}}%
-\def\sc##1{\realbackslash sc {##1}}%
-\def\cite##1{\realbackslash cite {##1}}%
-\def\key##1{\realbackslash key {##1}}%
-\def\file##1{\realbackslash file {##1}}%
-\def\var##1{\realbackslash var {##1}}%
-\def\kbd##1{\realbackslash kbd {##1}}%
-\def\dfn##1{\realbackslash dfn {##1}}%
-\def\emph##1{\realbackslash emph {##1}}%
-\def\value##1{\realbackslash value {##1}}%
-\unsepspaces
-}
-
-% If an index command is used in an @example environment, any spaces
-% therein should become regular spaces in the raw index file, not the
-% expansion of \tie (\\leavevmode \penalty \@M \ ).
-{\obeyspaces
- \gdef\unsepspaces{\obeyspaces\let =\space}}
-
-% \indexnofonts no-ops all font-change commands.
-% This is used when outputting the strings to sort the index by.
-\def\indexdummyfont#1{#1}
-\def\indexdummytex{TeX}
-\def\indexdummydots{...}
-
-\def\indexnofonts{%
-% Just ignore accents.
-\let\,=\indexdummyfont
-\let\"=\indexdummyfont
-\let\`=\indexdummyfont
-\let\'=\indexdummyfont
-\let\^=\indexdummyfont
-\let\~=\indexdummyfont
-\let\==\indexdummyfont
-\let\b=\indexdummyfont
-\let\c=\indexdummyfont
-\let\d=\indexdummyfont
-\let\u=\indexdummyfont
-\let\v=\indexdummyfont
-\let\H=\indexdummyfont
-\let\dotless=\indexdummyfont
-% Take care of the plain tex special European modified letters.
-\def\oe{oe}%
-\def\ae{ae}%
-\def\aa{aa}%
-\def\OE{OE}%
-\def\AE{AE}%
-\def\AA{AA}%
-\def\o{o}%
-\def\O{O}%
-\def\l{l}%
-\def\L{L}%
-\def\ss{ss}%
-\let\w=\indexdummyfont
-\let\t=\indexdummyfont
-\let\r=\indexdummyfont
-\let\i=\indexdummyfont
-\let\b=\indexdummyfont
-\let\emph=\indexdummyfont
-\let\strong=\indexdummyfont
-\let\cite=\indexdummyfont
-\let\sc=\indexdummyfont
-%Don't no-op \tt, since it isn't a user-level command
-% and is used in the definitions of the active chars like <, >, |...
-%\let\tt=\indexdummyfont
-\let\tclose=\indexdummyfont
-\let\code=\indexdummyfont
-\let\file=\indexdummyfont
-\let\samp=\indexdummyfont
-\let\kbd=\indexdummyfont
-\let\key=\indexdummyfont
-\let\var=\indexdummyfont
-\let\TeX=\indexdummytex
-\let\dots=\indexdummydots
-\def\@{@}%
-}
-
-% To define \realbackslash, we must make \ not be an escape.
-% We must first make another character (@) an escape
-% so we do not become unable to do a definition.
-
-{\catcode`\@=0 \catcode`\\=\other
-@gdef@realbackslash{\}}
-
-\let\indexbackslash=0 %overridden during \printindex.
-
-\let\SETmarginindex=\relax %initialize!
-% workhorse for all \fooindexes
-% #1 is name of index, #2 is stuff to put there
-\def\doind #1#2{%
- % Put the index entry in the margin if desired.
- \ifx\SETmarginindex\relax\else
- \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
- \fi
- {%
- \count255=\lastpenalty
- {%
- \indexdummies % Must do this here, since \bf, etc expand at this stage
- \escapechar=`\\
- {%
- \let\folio=0% We will expand all macros now EXCEPT \folio.
- \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
- % so it will be output as is; and it will print as backslash.
- %
- % First process the index-string with all font commands turned off
- % to get the string to sort by.
- {\indexnofonts \xdef\indexsorttmp{#2}}%
- %
- % Now produce the complete index entry, with both the sort key and the
- % original text, including any font commands.
- \toks0 = {#2}%
- \edef\temp{%
- \write\csname#1indfile\endcsname{%
- \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
- }%
- \temp
- }%
- }%
- \penalty\count255
- }%
-}
-
-\def\dosubind #1#2#3{%
-{\count10=\lastpenalty %
-{\indexdummies % Must do this here, since \bf, etc expand at this stage
-\escapechar=`\\%
-{\let\folio=0%
-\def\rawbackslashxx{\indexbackslash}%
-%
-% Now process the index-string once, with all font commands turned off,
-% to get the string to sort the index by.
-{\indexnofonts
-\xdef\temp1{#2 #3}%
-}%
-% Now produce the complete index entry. We process the index-string again,
-% this time with font commands expanded, to get what to print in the index.
-\edef\temp{%
-\write \csname#1indfile\endcsname{%
-\realbackslash entry {\temp1}{\folio}{#2}{#3}}}%
-\temp }%
-}\penalty\count10}}
-
-% The index entry written in the file actually looks like
-% \entry {sortstring}{page}{topic}
-% or
-% \entry {sortstring}{page}{topic}{subtopic}
-% The texindex program reads in these files and writes files
-% containing these kinds of lines:
-% \initial {c}
-% before the first topic whose initial is c
-% \entry {topic}{pagelist}
-% for a topic that is used without subtopics
-% \primary {topic}
-% for the beginning of a topic that is used with subtopics
-% \secondary {subtopic}{pagelist}
-% for each subtopic.
-
-% Define the user-accessible indexing commands
-% @findex, @vindex, @kindex, @cindex.
-
-\def\findex {\fnindex}
-\def\kindex {\kyindex}
-\def\cindex {\cpindex}
-\def\vindex {\vrindex}
-\def\tindex {\tpindex}
-\def\pindex {\pgindex}
-
-\def\cindexsub {\begingroup\obeylines\cindexsub}
-{\obeylines %
-\gdef\cindexsub "#1" #2^^M{\endgroup %
-\dosubind{cp}{#2}{#1}}}
-
-% Define the macros used in formatting output of the sorted index material.
-
-% @printindex causes a particular index (the ??s file) to get printed.
-% It does not print any chapter heading (usually an @unnumbered).
-%
-\def\printindex{\parsearg\doprintindex}
-\def\doprintindex#1{\begingroup
- \dobreak \chapheadingskip{10000}%
- %
- \indexfonts \rm
- \tolerance = 9500
- \indexbreaks
- %
- % See if the index file exists and is nonempty.
- % Change catcode of @ here so that if the index file contains
- % \initial {@}
- % as its first line, TeX doesn't complain about mismatched braces
- % (because it thinks @} is a control sequence).
- \catcode`\@ = 11
- \openin 1 \jobname.#1s
- \ifeof 1
- % \enddoublecolumns gets confused if there is no text in the index,
- % and it loses the chapter title and the aux file entries for the
- % index. The easiest way to prevent this problem is to make sure
- % there is some text.
- (Index is nonexistent)
- \else
- %
- % If the index file exists but is empty, then \openin leaves \ifeof
- % false. We have to make TeX try to read something from the file, so
- % it can discover if there is anything in it.
- \read 1 to \temp
- \ifeof 1
- (Index is empty)
- \else
- % Index files are almost Texinfo source, but we use \ as the escape
- % character. It would be better to use @, but that's too big a change
- % to make right now.
- \def\indexbackslash{\rawbackslashxx}%
- \catcode`\\ = 0
- \escapechar = `\\
- \begindoublecolumns
- \input \jobname.#1s
- \enddoublecolumns
- \fi
- \fi
- \closein 1
-\endgroup}
-
-% These macros are used by the sorted index file itself.
-% Change them to control the appearance of the index.
-
-% Same as \bigskipamount except no shrink.
-% \balancecolumns gets confused if there is any shrink.
-\newskip\initialskipamount \initialskipamount 12pt plus4pt
-
-\def\initial #1{%
-{\let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
-\ifdim\lastskip<\initialskipamount
-\removelastskip \penalty-200 \vskip \initialskipamount\fi
-\line{\secbf#1\hfill}\kern 2pt\penalty10000}}
-
-% This typesets a paragraph consisting of #1, dot leaders, and then #2
-% flush to the right margin. It is used for index and table of contents
-% entries. The paragraph is indented by \leftskip.
-%
-\def\entry #1#2{\begingroup
- %
- % Start a new paragraph if necessary, so our assignments below can't
- % affect previous text.
- \par
- %
- % Do not fill out the last line with white space.
- \parfillskip = 0in
- %
- % No extra space above this paragraph.
- \parskip = 0in
- %
- % Do not prefer a separate line ending with a hyphen to fewer lines.
- \finalhyphendemerits = 0
- %
- % \hangindent is only relevant when the entry text and page number
- % don't both fit on one line. In that case, bob suggests starting the
- % dots pretty far over on the line. Unfortunately, a large
- % indentation looks wrong when the entry text itself is broken across
- % lines. So we use a small indentation and put up with long leaders.
- %
- % \hangafter is reset to 1 (which is the value we want) at the start
- % of each paragraph, so we need not do anything with that.
- \hangindent=2em
- %
- % When the entry text needs to be broken, just fill out the first line
- % with blank space.
- \rightskip = 0pt plus1fil
- %
- % Start a ``paragraph'' for the index entry so the line breaking
- % parameters we've set above will have an effect.
- \noindent
- %
- % Insert the text of the index entry. TeX will do line-breaking on it.
- #1%
- % The following is kludged to not output a line of dots in the index if
- % there are no page numbers. The next person who breaks this will be
- % cursed by a Unix daemon.
- \def\tempa{{\rm }}%
- \def\tempb{#2}%
- \edef\tempc{\tempa}%
- \edef\tempd{\tempb}%
- \ifx\tempc\tempd\ \else%
- %
- % If we must, put the page number on a line of its own, and fill out
- % this line with blank space. (The \hfil is overwhelmed with the
- % fill leaders glue in \indexdotfill if the page number does fit.)
- \hfil\penalty50
- \null\nobreak\indexdotfill % Have leaders before the page number.
- %
- % The `\ ' here is removed by the implicit \unskip that TeX does as
- % part of (the primitive) \par. Without it, a spurious underfull
- % \hbox ensues.
- \ #2% The page number ends the paragraph.
- \fi%
- \par
-\endgroup}
-
-% Like \dotfill except takes at least 1 em.
-\def\indexdotfill{\cleaders
- \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
-
-\def\primary #1{\line{#1\hfil}}
-
-\newskip\secondaryindent \secondaryindent=0.5cm
-
-\def\secondary #1#2{
-{\parfillskip=0in \parskip=0in
-\hangindent =1in \hangafter=1
-\noindent\hskip\secondaryindent\hbox{#1}\indexdotfill #2\par
-}}
-
-% Define two-column mode, which we use to typeset indexes.
-% Adapted from the TeXbook, page 416, which is to say,
-% the manmac.tex format used to print the TeXbook itself.
-\catcode`\@=11
-
-\newbox\partialpage
-\newdimen\doublecolumnhsize
-
-\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
- % Grab any single-column material above us.
- \output = {\global\setbox\partialpage = \vbox{%
- %
- % Here is a possibility not foreseen in manmac: if we accumulate a
- % whole lot of material, we might end up calling this \output
- % routine twice in a row (see the doublecol-lose test, which is
- % essentially a couple of indexes with @setchapternewpage off). In
- % that case, we must prevent the second \partialpage from
- % simply overwriting the first, causing us to lose the page.
- % This will preserve it until a real output routine can ship it
- % out. Generally, \partialpage will be empty when this runs and
- % this will be a no-op.
- \unvbox\partialpage
- %
- % Unvbox the main output page.
- \unvbox255
- \kern-\topskip \kern\baselineskip
- }}%
- \eject
- %
- % Use the double-column output routine for subsequent pages.
- \output = {\doublecolumnout}%
- %
- % Change the page size parameters. We could do this once outside this
- % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
- % format, but then we repeat the same computation. Repeating a couple
- % of assignments once per index is clearly meaningless for the
- % execution time, so we may as well do it in one place.
- %
- % First we halve the line length, less a little for the gutter between
- % the columns. We compute the gutter based on the line length, so it
- % changes automatically with the paper format. The magic constant
- % below is chosen so that the gutter has the same value (well, +-<1pt)
- % as it did when we hard-coded it.
- %
- % We put the result in a separate register, \doublecolumhsize, so we
- % can restore it in \pagesofar, after \hsize itself has (potentially)
- % been clobbered.
- %
- \doublecolumnhsize = \hsize
- \advance\doublecolumnhsize by -.04154\hsize
- \divide\doublecolumnhsize by 2
- \hsize = \doublecolumnhsize
- %
- % Double the \vsize as well. (We don't need a separate register here,
- % since nobody clobbers \vsize.)
- \vsize = 2\vsize
-}
-\def\doublecolumnout{%
- \splittopskip=\topskip \splitmaxdepth=\maxdepth
- % Get the available space for the double columns -- the normal
- % (undoubled) page height minus any material left over from the
- % previous page.
- \dimen@=\pageheight \advance\dimen@ by-\ht\partialpage
- % box0 will be the left-hand column, box2 the right.
- \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
- \onepageout\pagesofar
- \unvbox255
- \penalty\outputpenalty
-}
-\def\pagesofar{%
- % Re-output the contents of the output page -- any previous material,
- % followed by the two boxes we just split.
- \unvbox\partialpage
- \hsize = \doublecolumnhsize
- \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}%
-}
-\def\enddoublecolumns{%
- \output = {\balancecolumns}\eject % split what we have
- \endgroup % started in \begindoublecolumns
- %
- % Back to normal single-column typesetting, but take account of the
- % fact that we just accumulated some stuff on the output page.
- \pagegoal = \vsize
-}
-\def\balancecolumns{%
- % Called at the end of the double column material.
- \setbox0 = \vbox{\unvbox255}%
- \dimen@ = \ht0
- \advance\dimen@ by \topskip
- \advance\dimen@ by-\baselineskip
- \divide\dimen@ by 2
- \splittopskip = \topskip
- % Loop until we get a decent breakpoint.
- {\vbadness=10000 \loop
- \global\setbox3=\copy0
- \global\setbox1=\vsplit3 to\dimen@
- \ifdim\ht3>\dimen@ \global\advance\dimen@ by1pt
- \repeat}%
- \setbox0=\vbox to\dimen@{\unvbox1}%
- \setbox2=\vbox to\dimen@{\unvbox3}%
- \pagesofar
-}
-\catcode`\@ = \other
-
-
-\message{sectioning,}
-% Define chapters, sections, etc.
-
-\newcount\chapno
-\newcount\secno \secno=0
-\newcount\subsecno \subsecno=0
-\newcount\subsubsecno \subsubsecno=0
-
-% This counter is funny since it counts through charcodes of letters A, B, ...
-\newcount\appendixno \appendixno = `\@
-\def\appendixletter{\char\the\appendixno}
-
-\newwrite\contentsfile
-% This is called from \setfilename.
-\def\opencontents{\openout\contentsfile = \jobname.toc }
-
-% Each @chapter defines this as the name of the chapter.
-% page headings and footings can use it. @section does likewise
-
-\def\thischapter{} \def\thissection{}
-\def\seccheck#1{\ifnum \pageno<0
- \errmessage{@#1 not allowed after generating table of contents}%
-\fi}
-
-\def\chapternofonts{%
- \let\rawbackslash=\relax
- \let\frenchspacing=\relax
- \def\result{\realbackslash result}%
- \def\equiv{\realbackslash equiv}%
- \def\expansion{\realbackslash expansion}%
- \def\print{\realbackslash print}%
- \def\TeX{\realbackslash TeX}%
- \def\dots{\realbackslash dots}%
- \def\result{\realbackslash result}%
- \def\equiv{\realbackslash equiv}%
- \def\expansion{\realbackslash expansion}%
- \def\print{\realbackslash print}%
- \def\error{\realbackslash error}%
- \def\point{\realbackslash point}%
- \def\copyright{\realbackslash copyright}%
- \def\tt{\realbackslash tt}%
- \def\bf{\realbackslash bf}%
- \def\w{\realbackslash w}%
- \def\less{\realbackslash less}%
- \def\gtr{\realbackslash gtr}%
- \def\hat{\realbackslash hat}%
- \def\char{\realbackslash char}%
- \def\tclose##1{\realbackslash tclose{##1}}%
- \def\code##1{\realbackslash code{##1}}%
- \def\samp##1{\realbackslash samp{##1}}%
- \def\r##1{\realbackslash r{##1}}%
- \def\b##1{\realbackslash b{##1}}%
- \def\key##1{\realbackslash key{##1}}%
- \def\file##1{\realbackslash file{##1}}%
- \def\kbd##1{\realbackslash kbd{##1}}%
- % These are redefined because @smartitalic wouldn't work inside xdef.
- \def\i##1{\realbackslash i{##1}}%
- \def\cite##1{\realbackslash cite{##1}}%
- \def\var##1{\realbackslash var{##1}}%
- \def\emph##1{\realbackslash emph{##1}}%
- \def\dfn##1{\realbackslash dfn{##1}}%
-}
-
-\newcount\absseclevel % used to calculate proper heading level
-\newcount\secbase\secbase=0 % @raise/lowersections modify this count
-
-% @raisesections: treat @section as chapter, @subsection as section, etc.
-\def\raisesections{\global\advance\secbase by -1}
-\let\up=\raisesections % original BFox name
-
-% @lowersections: treat @chapter as section, @section as subsection, etc.
-\def\lowersections{\global\advance\secbase by 1}
-\let\down=\lowersections % original BFox name
-
-% Choose a numbered-heading macro
-% #1 is heading level if unmodified by @raisesections or @lowersections
-% #2 is text for heading
-\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \chapterzzz{#2}
-\or
- \seczzz{#2}
-\or
- \numberedsubseczzz{#2}
-\or
- \numberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \chapterzzz{#2}
- \else
- \numberedsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% like \numhead, but chooses appendix heading levels
-\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \appendixzzz{#2}
-\or
- \appendixsectionzzz{#2}
-\or
- \appendixsubseczzz{#2}
-\or
- \appendixsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \appendixzzz{#2}
- \else
- \appendixsubsubseczzz{#2}
- \fi
-\fi
-}
-
-% like \numhead, but chooses numberless heading levels
-\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \unnumberedzzz{#2}
-\or
- \unnumberedseczzz{#2}
-\or
- \unnumberedsubseczzz{#2}
-\or
- \unnumberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \unnumberedzzz{#2}
- \else
- \unnumberedsubsubseczzz{#2}
- \fi
-\fi
-}
-
-
-\def\thischaptername{No Chapter Title}
-\outer\def\chapter{\parsearg\chapteryyy}
-\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz
-\def\chapterzzz #1{\seccheck{chapter}%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \chapno by 1 \message{\putwordChapter \the\chapno}%
-\chapmacro {#1}{\the\chapno}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-% We don't substitute the actual chapter name into \thischapter
-% because we don't want its macros evaluated now.
-\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash chapentry{\the\toks0}{\the\chapno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-}}
-
-\outer\def\appendix{\parsearg\appendixyyy}
-\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz
-\def\appendixzzz #1{\seccheck{appendix}%
-\secno=0 \subsecno=0 \subsubsecno=0
-\global\advance \appendixno by 1 \message{Appendix \appendixletter}%
-\chapmacro {#1}{\putwordAppendix{} \appendixletter}%
-\gdef\thissection{#1}%
-\gdef\thischaptername{#1}%
-\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash chapentry{\the\toks0}%
- {\putwordAppendix{} \appendixletter}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\appendixnoderef %
-\global\let\section = \appendixsec
-\global\let\subsection = \appendixsubsec
-\global\let\subsubsection = \appendixsubsubsec
-}}
-
-% @centerchap is like @unnumbered, but the heading is centered.
-\outer\def\centerchap{\parsearg\centerchapyyy}
-\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}}
-
-\outer\def\top{\parsearg\unnumberedyyy}
-\outer\def\unnumbered{\parsearg\unnumberedyyy}
-\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
-\def\unnumberedzzz #1{\seccheck{unnumbered}%
-\secno=0 \subsecno=0 \subsubsecno=0
-%
-% This used to be simply \message{#1}, but TeX fully expands the
-% argument to \message. Therefore, if #1 contained @-commands, TeX
-% expanded them. For example, in `@unnumbered The @cite{Book}', TeX
-% expanded @cite (which turns out to cause errors because \cite is meant
-% to be executed, not expanded).
-%
-% Anyway, we don't want the fully-expanded definition of @cite to appear
-% as a result of the \message, we just want `@cite' itself. We use
-% \the<toks register> to achieve this: TeX expands \the<toks> only once,
-% simply yielding the contents of the <toks register>.
-\toks0 = {#1}\message{(\the\toks0)}%
-%
-\unnumbchapmacro {#1}%
-\gdef\thischapter{#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbchapentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\global\let\section = \unnumberedsec
-\global\let\subsection = \unnumberedsubsec
-\global\let\subsubsection = \unnumberedsubsubsec
-}}
-
-\outer\def\numberedsec{\parsearg\secyyy}
-\def\secyyy #1{\numhead1{#1}} % normally calls seczzz
-\def\seczzz #1{\seccheck{section}%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash secentry %
-{\the\toks0}{\the\chapno}{\the\secno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}}
-
-\outer\def\appendixsection{\parsearg\appendixsecyyy}
-\outer\def\appendixsec{\parsearg\appendixsecyyy}
-\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
-\def\appendixsectionzzz #1{\seccheck{appendixsection}%
-\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
-\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash secentry %
-{\the\toks0}{\appendixletter}{\the\secno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\appendixnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
-\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz
-\def\unnumberedseczzz #1{\seccheck{unnumberedsec}%
-\plainsecheading {#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbsecentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
-\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz
-\def\numberedsubseczzz #1{\seccheck{subsection}%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsecentry %
-{\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}}
-
-\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
-\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz
-\def\appendixsubseczzz #1{\seccheck{appendixsubsec}%
-\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
-\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsecentry %
-{\the\toks0}{\appendixletter}{\the\secno}{\the\subsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\appendixnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
-\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
-\def\unnumberedsubseczzz #1{\seccheck{unnumberedsubsec}%
-\plainsubsecheading {#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbsubsecentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
-\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz
-\def\numberedsubsubseczzz #1{\seccheck{subsubsection}%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsubsecentry{\the\toks0}
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}
- {\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\donoderef %
-\penalty 10000 %
-}}
-
-\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
-\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz
-\def\appendixsubsubseczzz #1{\seccheck{appendixsubsubsec}%
-\gdef\thissection{#1}\global\advance \subsubsecno by 1 %
-\subsubsecheading {#1}
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash subsubsecentry{\the\toks0}%
- {\appendixletter}
- {\the\secno}{\the\subsecno}{\the\subsubsecno}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\appendixnoderef %
-\penalty 10000 %
-}}
-
-\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
-\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
-\def\unnumberedsubsubseczzz #1{\seccheck{unnumberedsubsubsec}%
-\plainsubsubsecheading {#1}\gdef\thissection{#1}%
-{\chapternofonts%
-\toks0 = {#1}%
-\edef\temp{{\realbackslash unnumbsubsubsecentry{\the\toks0}{\noexpand\folio}}}%
-\escapechar=`\\%
-\write \contentsfile \temp %
-\unnumbnoderef %
-\penalty 10000 %
-}}
-
-% These are variants which are not "outer", so they can appear in @ifinfo.
-% Actually, they should now be obsolete; ordinary section commands should work.
-\def\infotop{\parsearg\unnumberedzzz}
-\def\infounnumbered{\parsearg\unnumberedzzz}
-\def\infounnumberedsec{\parsearg\unnumberedseczzz}
-\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz}
-\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
-
-\def\infoappendix{\parsearg\appendixzzz}
-\def\infoappendixsec{\parsearg\appendixseczzz}
-\def\infoappendixsubsec{\parsearg\appendixsubseczzz}
-\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz}
-
-\def\infochapter{\parsearg\chapterzzz}
-\def\infosection{\parsearg\sectionzzz}
-\def\infosubsection{\parsearg\subsectionzzz}
-\def\infosubsubsection{\parsearg\subsubsectionzzz}
-
-% These macros control what the section commands do, according
-% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
-% Define them by default for a numbered chapter.
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
-
-% Define @majorheading, @heading and @subheading
-
-% NOTE on use of \vbox for chapter headings, section headings, and
-% such:
-% 1) We use \vbox rather than the earlier \line to permit
-% overlong headings to fold.
-% 2) \hyphenpenalty is set to 10000 because hyphenation in a
-% heading is obnoxious; this forbids it.
-% 3) Likewise, headings look best if no \parindent is used, and
-% if justification is not attempted. Hence \raggedright.
-
-
-\def\majorheading{\parsearg\majorheadingzzz}
-\def\majorheadingzzz #1{%
-{\advance\chapheadingskip by 10pt \chapbreak }%
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
-
-\def\chapheading{\parsearg\chapheadingzzz}
-\def\chapheadingzzz #1{\chapbreak %
-{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
-
-% @heading, @subheading, @subsubheading.
-\def\heading{\parsearg\plainsecheading}
-\def\subheading{\parsearg\plainsubsecheading}
-\def\subsubheading{\parsearg\plainsubsubsecheading}
-
-% These macros generate a chapter, section, etc. heading only
-% (including whitespace, linebreaking, etc. around it),
-% given all the information in convenient, parsed form.
-
-%%% Args are the skip and penalty (usually negative)
-\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-
-%%% Define plain chapter starts, and page on/off switching for it
-% Parameter controlling skip before chapter headings (if needed)
-
-\newskip\chapheadingskip
-
-\def\chapbreak{\dobreak \chapheadingskip {-4000}}
-\def\chappager{\par\vfill\supereject}
-\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
-
-\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
-
-\def\CHAPPAGoff{
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chapbreak
-\global\let\pagealignmacro=\chappager}
-
-\def\CHAPPAGon{
-\global\let\contentsalignmacro = \chappager
-\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager
-\global\def\HEADINGSon{\HEADINGSsingle}}
-
-\def\CHAPPAGodd{
-\global\let\contentsalignmacro = \chapoddpage
-\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage
-\global\def\HEADINGSon{\HEADINGSdouble}}
-
-\CHAPPAGon
-
-\def\CHAPFplain{
-\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain
-\global\let\centerchapmacro=\centerchfplain}
-
-% Plain chapter opening.
-% #1 is the text, #2 the chapter number or empty if unnumbered.
-\def\chfplain#1#2{%
- \pchapsepmacro
- {%
- \chapfonts \rm
- \def\chapnum{#2}%
- \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}%
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 \centerparametersmaybe
- \unhbox0 #1\par}%
- }%
- \nobreak\bigskip % no page break after a chapter title
- \nobreak
-}
-
-% Plain opening for unnumbered.
-\def\unnchfplain#1{\chfplain{#1}{}}
-
-% @centerchap -- centered and unnumbered.
-\let\centerparametersmaybe = \relax
-\def\centerchfplain#1{{%
- \def\centerparametersmaybe{%
- \advance\rightskip by 3\rightskip
- \leftskip = \rightskip
- \parfillskip = 0pt
- }%
- \chfplain{#1}{}%
-}}
-
-\CHAPFplain % The default
-
-\def\unnchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 10000 %
-}
-
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
-}
-
-\def\centerchfopen #1{%
-\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt
- \hfill {\rm #1}\hfill}}\bigskip \par\penalty 10000 %
-}
-
-\def\CHAPFopen{
-\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen
-\global\let\centerchapmacro=\centerchfopen}
-
-
-% Section titles.
-\newskip\secheadingskip
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
-\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
-\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
-
-% Subsection titles.
-\newskip \subsecheadingskip
-\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
-\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
-\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
-
-% Subsubsection titles.
-\let\subsubsecheadingskip = \subsecheadingskip
-\let\subsubsecheadingbreak = \subsecheadingbreak
-\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
-\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
-
-
-% Print any size section title.
-%
-% #1 is the section type (sec/subsec/subsubsec), #2 is the section
-% number (maybe empty), #3 the text.
-\def\sectionheading#1#2#3{%
- {%
- \expandafter\advance\csname #1headingskip\endcsname by \parskip
- \csname #1headingbreak\endcsname
- }%
- {%
- % Switch to the right set of fonts.
- \csname #1fonts\endcsname \rm
- %
- % Only insert the separating space if we have a section number.
- \def\secnum{#2}%
- \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}%
- %
- \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 % zero if no section number
- \unhbox0 #3}%
- }%
- \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak
-}
-
-
-\message{toc printing,}
-% Finish up the main text and prepare to read what we've written
-% to \contentsfile.
-
-\newskip\contentsrightmargin \contentsrightmargin=1in
-\def\startcontents#1{%
- % If @setchapternewpage on, and @headings double, the contents should
- % start on an odd page, unlike chapters. Thus, we maintain
- % \contentsalignmacro in parallel with \pagealignmacro.
- % From: Torbjorn Granlund <tege@matematik.su.se>
- \contentsalignmacro
- \immediate\closeout \contentsfile
- \ifnum \pageno>0
- \pageno = -1 % Request roman numbered pages.
- \fi
- % Don't need to put `Contents' or `Short Contents' in the headline.
- % It is abundantly clear what they are.
- \unnumbchapmacro{#1}\def\thischapter{}%
- \begingroup % Set up to handle contents files properly.
- \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11
- % We can't do this, because then an actual ^ in a section
- % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97.
- %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
- \raggedbottom % Worry more about breakpoints than the bottom.
- \advance\hsize by -\contentsrightmargin % Don't use the full line length.
-}
-
-
-% Normal (long) toc.
-\outer\def\contents{%
- \startcontents{\putwordTableofContents}%
- \input \jobname.toc
- \endgroup
- \vfill \eject
-}
-
-% And just the chapters.
-\outer\def\summarycontents{%
- \startcontents{\putwordShortContents}%
- %
- \let\chapentry = \shortchapentry
- \let\unnumbchapentry = \shortunnumberedentry
- % We want a true roman here for the page numbers.
- \secfonts
- \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl
- \rm
- \hyphenpenalty = 10000
- \advance\baselineskip by 1pt % Open it up a little.
- \def\secentry ##1##2##3##4{}
- \def\unnumbsecentry ##1##2{}
- \def\subsecentry ##1##2##3##4##5{}
- \def\unnumbsubsecentry ##1##2{}
- \def\subsubsecentry ##1##2##3##4##5##6{}
- \def\unnumbsubsubsecentry ##1##2{}
- \input \jobname.toc
- \endgroup
- \vfill \eject
-}
-\let\shortcontents = \summarycontents
-
-% These macros generate individual entries in the table of contents.
-% The first argument is the chapter or section name.
-% The last argument is the page number.
-% The arguments in between are the chapter number, section number, ...
-
-% Chapter-level things, for both the long and short contents.
-\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
-
-% See comments in \dochapentry re vbox and related settings
-\def\shortchapentry#1#2#3{%
- \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno{#3}}%
-}
-
-% Typeset the label for a chapter or appendix for the short contents.
-% The arg is, e.g. `Appendix A' for an appendix, or `3' for a chapter.
-% We could simplify the code here by writing out an \appendixentry
-% command in the toc file for appendices, instead of using \chapentry
-% for both, but it doesn't seem worth it.
-\setbox0 = \hbox{\shortcontrm \putwordAppendix }
-\newdimen\shortappendixwidth \shortappendixwidth = \wd0
-
-\def\shortchaplabel#1{%
- % We typeset #1 in a box of constant width, regardless of the text of
- % #1, so the chapter titles will come out aligned.
- \setbox0 = \hbox{#1}%
- \dimen0 = \ifdim\wd0 > \shortappendixwidth \shortappendixwidth \else 0pt \fi
- %
- % This space should be plenty, since a single number is .5em, and the
- % widest letter (M) is 1em, at least in the Computer Modern fonts.
- % (This space doesn't include the extra space that gets added after
- % the label; that gets put in by \shortchapentry above.)
- \advance\dimen0 by 1.1em
- \hbox to \dimen0{#1\hfil}%
-}
-
-\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}}
-\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno{#2}}}
-
-% Sections.
-\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
-\def\unnumbsecentry#1#2{\dosecentry{#1}{#2}}
-
-% Subsections.
-\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
-\def\unnumbsubsecentry#1#2{\dosubsecentry{#1}{#2}}
-
-% And subsubsections.
-\def\subsubsecentry#1#2#3#4#5#6{%
- \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
-\def\unnumbsubsubsecentry#1#2{\dosubsubsecentry{#1}{#2}}
-
-% This parameter controls the indentation of the various levels.
-\newdimen\tocindent \tocindent = 3pc
-
-% Now for the actual typesetting. In all these, #1 is the text and #2 is the
-% page number.
-%
-% If the toc has to be broken over pages, we want it to be at chapters
-% if at all possible; hence the \penalty.
-\def\dochapentry#1#2{%
- \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
- \begingroup
- \chapentryfonts
- \tocentry{#1}{\dopageno{#2}}%
- \endgroup
- \nobreak\vskip .25\baselineskip plus.1\baselineskip
-}
-
-\def\dosecentry#1#2{\begingroup
- \secentryfonts \leftskip=\tocindent
- \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsecentry#1#2{\begingroup
- \subsecentryfonts \leftskip=2\tocindent
- \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-\def\dosubsubsecentry#1#2{\begingroup
- \subsubsecentryfonts \leftskip=3\tocindent
- \tocentry{#1}{\dopageno{#2}}%
-\endgroup}
-
-% Final typesetting of a toc entry; we use the same \entry macro as for
-% the index entries, but we want to suppress hyphenation here. (We
-% can't do that in the \entry macro, since index entries might consist
-% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
-\def\tocentry#1#2{\begingroup
- \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
- % Do not use \turnoffactive in these arguments. Since the toc is
- % typeset in cmr, so characters such as _ would come out wrong; we
- % have to do the usual translation tricks.
- \entry{#1}{#2}%
-\endgroup}
-
-% Space between chapter (or whatever) number and the title.
-\def\labelspace{\hskip1em \relax}
-
-\def\dopageno#1{{\rm #1}}
-\def\doshortpageno#1{{\rm #1}}
-
-\def\chapentryfonts{\secfonts \rm}
-\def\secentryfonts{\textfonts}
-\let\subsecentryfonts = \textfonts
-\let\subsubsecentryfonts = \textfonts
-
-
-\message{environments,}
-
-% Since these characters are used in examples, it should be an even number of
-% \tt widths. Each \tt character is 1en, so two makes it 1em.
-% Furthermore, these definitions must come after we define our fonts.
-\newbox\dblarrowbox \newbox\longdblarrowbox
-\newbox\pushcharbox \newbox\bullbox
-\newbox\equivbox \newbox\errorbox
-
-%{\tentt
-%\global\setbox\dblarrowbox = \hbox to 1em{\hfil$\Rightarrow$\hfil}
-%\global\setbox\longdblarrowbox = \hbox to 1em{\hfil$\mapsto$\hfil}
-%\global\setbox\pushcharbox = \hbox to 1em{\hfil$\dashv$\hfil}
-%\global\setbox\equivbox = \hbox to 1em{\hfil$\ptexequiv$\hfil}
-% Adapted from the manmac format (p.420 of TeXbook)
-%\global\setbox\bullbox = \hbox to 1em{\kern.15em\vrule height .75ex width .85ex
-% depth .1ex\hfil}
-%}
-
-% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-\def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
-\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
-
-% Adapted from the TeXbook's \boxit.
-{\tentt \global\dimen0 = 3em}% Width of the box.
-\dimen2 = .55pt % Thickness of rules
-% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
-
-\global\setbox\errorbox=\hbox to \dimen0{\hfil
- \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
- \advance\hsize by -2\dimen2 % Rules.
- \vbox{
- \hrule height\dimen2
- \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
- \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
- \kern3pt\vrule width\dimen2}% Space to right.
- \hrule height\dimen2}
- \hfil}
-
-% The @error{} command.
-\def\error{\leavevmode\lower.7ex\copy\errorbox}
-
-% @tex ... @end tex escapes into raw Tex temporarily.
-% One exception: @ is still an escape character, so that @end tex works.
-% But \@ or @@ will get a plain tex @ character.
-
-\def\tex{\begingroup
- \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
- \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
- \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie
- \catcode `\%=14
- \catcode 43=12 % plus
- \catcode`\"=12
- \catcode`\==12
- \catcode`\|=12
- \catcode`\<=12
- \catcode`\>=12
- \escapechar=`\\
- %
- \let\b=\ptexb
- \let\bullet=\ptexbullet
- \let\c=\ptexc
- \let\,=\ptexcomma
- \let\.=\ptexdot
- \let\dots=\ptexdots
- \let\equiv=\ptexequiv
- \let\!=\ptexexclam
- \let\i=\ptexi
- \let\{=\ptexlbrace
- \let\}=\ptexrbrace
- \let\*=\ptexstar
- \let\t=\ptext
- %
- \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
- \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
- \def\@{@}%
-\let\Etex=\endgroup}
-
-% Define @lisp ... @endlisp.
-% @lisp does a \begingroup so it can rebind things,
-% including the definition of @endlisp (which normally is erroneous).
-
-% Amount to narrow the margins by for @lisp.
-\newskip\lispnarrowing \lispnarrowing=0.4in
-
-% This is the definition that ^^M gets inside @lisp, @example, and other
-% such environments. \null is better than a space, since it doesn't
-% have any width.
-\def\lisppar{\null\endgraf}
-
-% Make each space character in the input produce a normal interword
-% space in the output. Don't allow a line break at this space, as this
-% is used only in environments like @example, where each line of input
-% should produce a line of output anyway.
-%
-{\obeyspaces %
-\gdef\sepspaces{\obeyspaces\let =\tie}}
-
-% Define \obeyedspace to be our active space, whatever it is. This is
-% for use in \parsearg.
-{\sepspaces%
-\global\let\obeyedspace= }
-
-% This space is always present above and below environments.
-\newskip\envskipamount \envskipamount = 0pt
-
-% Make spacing and below environment symmetrical. We use \parskip here
-% to help in doing that, since in @example-like environments \parskip
-% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip
-%
-\def\aboveenvbreak{{\advance\envskipamount by \parskip
-\endgraf \ifdim\lastskip<\envskipamount
-\removelastskip \penalty-50 \vskip\envskipamount \fi}}
-
-\let\afterenvbreak = \aboveenvbreak
-
-% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins.
-\let\nonarrowing=\relax
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% \cartouche: draw rectangle w/rounded corners around argument
-\font\circle=lcircle10
-\newdimen\circthick
-\newdimen\cartouter\newdimen\cartinner
-\newskip\normbskip\newskip\normpskip\newskip\normlskip
-\circthick=\fontdimen8\circle
-%
-\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
-\def\ctr{{\hskip 6pt\circle\char'010}}
-\def\cbl{{\circle\char'012\hskip -6pt}}
-\def\cbr{{\hskip 6pt\circle\char'011}}
-\def\carttop{\hbox to \cartouter{\hskip\lskip
- \ctl\leaders\hrule height\circthick\hfil\ctr
- \hskip\rskip}}
-\def\cartbot{\hbox to \cartouter{\hskip\lskip
- \cbl\leaders\hrule height\circthick\hfil\cbr
- \hskip\rskip}}
-%
-\newskip\lskip\newskip\rskip
-
-\long\def\cartouche{%
-\begingroup
- \lskip=\leftskip \rskip=\rightskip
- \leftskip=0pt\rightskip=0pt %we want these *outside*.
- \cartinner=\hsize \advance\cartinner by-\lskip
- \advance\cartinner by-\rskip
- \cartouter=\hsize
- \advance\cartouter by 18pt % allow for 3pt kerns on either
-% side, and for 6pt waste from
-% each corner char
- \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
- % Flag to tell @lisp, etc., not to narrow margin.
- \let\nonarrowing=\comment
- \vbox\bgroup
- \baselineskip=0pt\parskip=0pt\lineskip=0pt
- \carttop
- \hbox\bgroup
- \hskip\lskip
- \vrule\kern3pt
- \vbox\bgroup
- \hsize=\cartinner
- \kern3pt
- \begingroup
- \baselineskip=\normbskip
- \lineskip=\normlskip
- \parskip=\normpskip
- \vskip -\parskip
-\def\Ecartouche{%
- \endgroup
- \kern3pt
- \egroup
- \kern3pt\vrule
- \hskip\rskip
- \egroup
- \cartbot
- \egroup
-\endgroup
-}}
-
-
-% This macro is called at the beginning of all the @example variants,
-% inside a group.
-\def\nonfillstart{%
- \aboveenvbreak
- \inENV % This group ends at the end of the body
- \hfuzz = 12pt % Don't be fussy
- \sepspaces % Make spaces be word-separators rather than space tokens.
- \singlespace
- \let\par = \lisppar % don't ignore blank lines
- \obeylines % each line of input is a line of output
- \parskip = 0pt
- \parindent = 0pt
- \emergencystretch = 0pt % don't try to avoid overfull boxes
- % @cartouche defines \nonarrowing to inhibit narrowing
- % at next level down.
- \ifx\nonarrowing\relax
- \advance \leftskip by \lispnarrowing
- \exdentamount=\lispnarrowing
- \let\exdent=\nofillexdent
- \let\nonarrowing=\relax
- \fi
-}
-
-% To ending an @example-like environment, we first end the paragraph
-% (via \afterenvbreak's vertical glue), and then the group. That way we
-% keep the zero \parskip that the environments set -- \parskip glue
-% will be inserted at the beginning of the next paragraph in the
-% document, after the environment.
-%
-\def\nonfillfinish{\afterenvbreak\endgroup}%
-
-\def\lisp{\begingroup
- \nonfillstart
- \let\Elisp = \nonfillfinish
- \tt
- % Make @kbd do something special, if requested.
- \let\kbdfont\kbdexamplefont
- \rawbackslash % have \ input char produce \ char from current font
- \gobble
-}
-
-% Define the \E... control sequence only if we are inside the
-% environment, so the error checking in \end will work.
-%
-% We must call \lisp last in the definition, since it reads the
-% return following the @example (or whatever) command.
-%
-\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
-\def\smallexample{\begingroup \def\Esmallexample{\nonfillfinish\endgroup}\lisp}
-\def\smalllisp{\begingroup \def\Esmalllisp{\nonfillfinish\endgroup}\lisp}
-
-% @smallexample and @smalllisp. This is not used unless the @smallbook
-% command is given. Originally contributed by Pavel@xerox.
-%
-\def\smalllispx{\begingroup
- \nonfillstart
- \let\Esmalllisp = \nonfillfinish
- \let\Esmallexample = \nonfillfinish
- %
- % Smaller fonts for small examples.
- \indexfonts \tt
- \rawbackslash % make \ output the \ character from the current font (tt)
- \gobble
-}
-
-% This is @display; same as @lisp except use roman font.
-%
-\def\display{\begingroup
- \nonfillstart
- \let\Edisplay = \nonfillfinish
- \gobble
-}
-
-% This is @format; same as @display except don't narrow margins.
-%
-\def\format{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eformat = \nonfillfinish
- \gobble
-}
-
-% @flushleft (same as @format) and @flushright.
-%
-\def\flushleft{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eflushleft = \nonfillfinish
- \gobble
-}
-\def\flushright{\begingroup
- \let\nonarrowing = t
- \nonfillstart
- \let\Eflushright = \nonfillfinish
- \advance\leftskip by 0pt plus 1fill
- \gobble}
-
-% @quotation does normal linebreaking (hence we can't use \nonfillstart)
-% and narrows the margins.
-%
-\def\quotation{%
- \begingroup\inENV %This group ends at the end of the @quotation body
- {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
- \singlespace
- \parindent=0pt
- % We have retained a nonzero parskip for the environment, since we're
- % doing normal filling. So to avoid extra space below the environment...
- \def\Equotation{\parskip = 0pt \nonfillfinish}%
- %
- % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
- \ifx\nonarrowing\relax
- \advance\leftskip by \lispnarrowing
- \advance\rightskip by \lispnarrowing
- \exdentamount = \lispnarrowing
- \let\nonarrowing = \relax
- \fi
-}
-
-\message{defuns,}
-% Define formatter for defuns
-% First, allow user to change definition object font (\df) internally
-\def\setdeffont #1 {\csname DEF#1\endcsname}
-
-\newskip\defbodyindent \defbodyindent=.4in
-\newskip\defargsindent \defargsindent=50pt
-\newskip\deftypemargin \deftypemargin=12pt
-\newskip\deflastargmargin \deflastargmargin=18pt
-
-\newcount\parencount
-% define \functionparens, which makes ( and ) and & do special things.
-% \functionparens affects the group it is contained in.
-\def\activeparens{%
-\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active
-\catcode`\[=\active \catcode`\]=\active}
-
-% Make control sequences which act like normal parenthesis chars.
-\let\lparen = ( \let\rparen = )
-
-{\activeparens % Now, smart parens don't turn on until &foo (see \amprm)
-
-% Be sure that we always have a definition for `(', etc. For example,
-% if the fn name has parens in it, \boldbrax will not be in effect yet,
-% so TeX would otherwise complain about undefined control sequence.
-\global\let(=\lparen \global\let)=\rparen
-\global\let[=\lbrack \global\let]=\rbrack
-
-\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
-\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
-% This is used to turn on special parens
-% but make & act ordinary (given that it's active).
-\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr}
-
-% Definitions of (, ) and & used in args for functions.
-% This is the definition of ( outside of all parentheses.
-\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested
- \global\advance\parencount by 1
-}
-%
-% This is the definition of ( when already inside a level of parens.
-\gdef\opnested{\char`\(\global\advance\parencount by 1 }
-%
-\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0.
- % also in that case restore the outer-level definition of (.
- \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
- \global\advance \parencount by -1 }
-% If we encounter &foo, then turn on ()-hacking afterwards
-\gdef\amprm#1 {{\rm\&#1}\let(=\oprm \let)=\clrm\ }
-%
-\gdef\normalparens{\boldbrax\let&=\ampnr}
-} % End of definition inside \activeparens
-%% These parens (in \boldbrax) actually are a little bolder than the
-%% contained text. This is especially needed for [ and ]
-\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 }
-\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 }
-\def\ampnr{\&}
-\def\lbrb{{\bf\char`\[}}
-\def\rbrb{{\bf\char`\]}}
-
-% First, defname, which formats the header line itself.
-% #1 should be the function name.
-% #2 should be the type of definition, such as "Function".
-
-\def\defname #1#2{%
-% Get the values of \leftskip and \rightskip as they were
-% outside the @def...
-\dimen2=\leftskip
-\advance\dimen2 by -\defbodyindent
-\dimen3=\rightskip
-\advance\dimen3 by -\defbodyindent
-\noindent %
-\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}%
-\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
-\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations
-\parshape 2 0in \dimen0 \defargsindent \dimen1 %
-% Now output arg 2 ("Function" or some such)
-% ending at \deftypemargin from the right margin,
-% but stuck inside a box of width 0 so it does not interfere with linebreaking
-{% Adjust \hsize to exclude the ambient margins,
-% so that \rightline will obey them.
-\advance \hsize by -\dimen2 \advance \hsize by -\dimen3
-\rlap{\rightline{{\rm #2}\hskip \deftypemargin}}}%
-% Make all lines underfull and no complaints:
-\tolerance=10000 \hbadness=10000
-\advance\leftskip by -\defbodyindent
-\exdentamount=\defbodyindent
-{\df #1}\enskip % Generate function name
-}
-
-% Actually process the body of a definition
-% #1 should be the terminating control sequence, such as \Edefun.
-% #2 should be the "another name" control sequence, such as \defunx.
-% #3 should be the control sequence that actually processes the header,
-% such as \defunheader.
-
-\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\activeparens\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active % 61 is `='
-\obeylines\activeparens\spacesplit#3}
-
-\def\defmethparsebody #1#2#3#4 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#4}}}
-
-\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\activeparens\spacesplit{#3{#5}}}
-
-% These parsing functions are similar to the preceding ones
-% except that they do not make parens into active characters.
-% These are used for "variables" since they have no arguments.
-
-\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2{\begingroup\obeylines\spacesplit#3}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup %
-\catcode 61=\active %
-\obeylines\spacesplit#3}
-
-% This is used for \def{tp,vr}parsebody. It could probably be used for
-% some of the others, too, with some judicious conditionals.
-%
-\def\parsebodycommon#1#2#3{%
- \begingroup\inENV %
- \medbreak %
- % Define the end token that this defining construct specifies
- % so that it will exit this group.
- \def#1{\endgraf\endgroup\medbreak}%
- \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}%
- \parindent=0in
- \advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
- \exdentamount=\defbodyindent
- \begingroup\obeylines
-}
-
-\def\defvrparsebody#1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \spacesplit{#3{#4}}%
-}
-
-% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the
-% type is just `struct', because we lose the braces in `{struct
-% termios}' when \spacesplit reads its undelimited argument. Sigh.
-% \let\deftpparsebody=\defvrparsebody
-%
-% So, to get around this, we put \empty in with the type name. That
-% way, TeX won't find exactly `{...}' as an undelimited argument, and
-% won't strip off the braces.
-%
-\def\deftpparsebody #1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \spacesplit{\parsetpheaderline{#3{#4}}}\empty
-}
-
-% Fine, but then we have to eventually remove the \empty *and* the
-% braces (if any). That's what this does.
-%
-\def\removeemptybraces\empty#1\relax{#1}
-
-% After \spacesplit has done its work, this is called -- #1 is the final
-% thing to call, #2 the type name (which starts with \empty), and #3
-% (which might be empty) the arguments.
-%
-\def\parsetpheaderline#1#2#3{%
- #1{\removeemptybraces#2\relax}{#3}%
-}%
-
-\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV %
-\medbreak %
-% Define the end token that this defining construct specifies
-% so that it will exit this group.
-\def#1{\endgraf\endgroup\medbreak}%
-\def#2##1 ##2 {\def#4{##1}%
-\begingroup\obeylines\spacesplit{#3{##2}}}%
-\parindent=0in
-\advance\leftskip by \defbodyindent \advance \rightskip by \defbodyindent
-\exdentamount=\defbodyindent
-\begingroup\obeylines\spacesplit{#3{#5}}}
-
-% Split up #2 at the first space token.
-% call #1 with two arguments:
-% the first is all of #2 before the space token,
-% the second is all of #2 after that space token.
-% If #2 contains no space token, all of it is passed as the first arg
-% and the second is passed as empty.
-
-{\obeylines
-\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}%
-\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{%
-\ifx\relax #3%
-#1{#2}{}\else #1{#2}{#3#4}\fi}}
-
-% So much for the things common to all kinds of definitions.
-
-% Define @defun.
-
-% First, define the processing that is wanted for arguments of \defun
-% Use this to expand the args and terminate the paragraph they make up
-
-\def\defunargs #1{\functionparens \sl
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-\hyphenchar\tensl=0
-#1%
-\hyphenchar\tensl=45
-\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000%
-}
-
-\def\deftypefunargs #1{%
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Use \boldbraxnoamp, not \functionparens, so that & is not special.
-\boldbraxnoamp
-\tclose{#1}% avoid \code because of side effects on active chars
-\interlinepenalty=10000
-\advance\rightskip by 0pt plus 1fil
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000%
-}
-
-% Do complete processing of one @defun or @defunx line already parsed.
-
-% @deffn Command forward-char nchars
-
-\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
-
-\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defun == @deffn Function
-
-\def\defun{\defparsebody\Edefun\defunx\defunheader}
-
-\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Function}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefun int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader}
-
-% #1 is the data type. #2 is the name and args.
-\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax}
-% #1 is the data type, #2 the name, #3 the args.
-\def\deftypefunheaderx #1#2 #3\relax{%
-\doind {fn}{\code{#2}}% Make entry in function index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Function}%
-\deftypefunargs {#3}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
-
-\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
-
-% \defheaderxcond#1\relax$$$
-% puts #1 in @code, followed by a space, but does nothing if #1 is null.
-\def\defheaderxcond#1#2$$${\ifx#1\relax\else\code{#1#2} \fi}
-
-% #1 is the classification. #2 is the data type. #3 is the name and args.
-\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
-% #1 is the classification, #2 the data type, #3 the name, #4 the args.
-\def\deftypefnheaderx #1#2#3 #4\relax{%
-\doind {fn}{\code{#3}}% Make entry in function index
-\begingroup
-\normalparens % notably, turn off `&' magic, which prevents
-% at least some C++ text from working
-\defname {\defheaderxcond#2\relax$$$#3}{#1}%
-\deftypefunargs {#4}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defmac == @deffn Macro
-
-\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
-
-\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Macro}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% @defspec == @deffn Special Form
-
-\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
-
-\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{Special Form}%
-\defunargs {#2}\endgroup %
-\catcode 61=\other % Turn off change made in \defparsebody
-}
-
-% This definition is run if you use @defunx
-% anywhere other than immediately after a @defun or @defunx.
-
-\def\deffnx #1 {\errmessage{@deffnx in invalid context}}
-\def\defunx #1 {\errmessage{@defunx in invalid context}}
-\def\defmacx #1 {\errmessage{@defmacx in invalid context}}
-\def\defspecx #1 {\errmessage{@defspecx in invalid context}}
-\def\deftypefnx #1 {\errmessage{@deftypefnx in invalid context}}
-\def\deftypemethodx #1 {\errmessage{@deftypemethodx in invalid context}}
-\def\deftypeunx #1 {\errmessage{@deftypeunx in invalid context}}
-
-% @defmethod, and so on
-
-% @defop {Funny Method} foo-class frobnicate argument
-
-\def\defop #1 {\def\defoptype{#1}%
-\defopparsebody\Edefop\defopx\defopheader\defoptype}
-
-\def\defopheader #1#2#3{%
-\dosubind {fn}{\code{#2}}{on #1}% Make entry in function index
-\begingroup\defname {#2}{\defoptype{} on #1}%
-\defunargs {#3}\endgroup %
-}
-
-% @deftypemethod foo-class return-type foo-method args
-%
-\def\deftypemethod{%
- \defmethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
-%
-% #1 is the class name, #2 the data type, #3 the method name, #4 the args.
-\def\deftypemethodheader#1#2#3#4{%
- \deftypefnheaderx{Method on #1}{#2}#3 #4\relax
-}
-
-% @defmethod == @defop Method
-
-\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
-
-\def\defmethodheader #1#2#3{%
-\dosubind {fn}{\code{#2}}{on #1}% entry in function index
-\begingroup\defname {#2}{Method on #1}%
-\defunargs {#3}\endgroup %
-}
-
-% @defcv {Class Option} foo-class foo-flag
-
-\def\defcv #1 {\def\defcvtype{#1}%
-\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
-
-\def\defcvarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{\defcvtype{} of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% @defivar == @defcv {Instance Variable}
-
-\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
-
-\def\defivarheader #1#2#3{%
-\dosubind {vr}{\code{#2}}{of #1}% Make entry in var index
-\begingroup\defname {#2}{Instance Variable of #1}%
-\defvarargs {#3}\endgroup %
-}
-
-% These definitions are run if you use @defmethodx, etc.,
-% anywhere other than immediately after a @defmethod, etc.
-
-\def\defopx #1 {\errmessage{@defopx in invalid context}}
-\def\defmethodx #1 {\errmessage{@defmethodx in invalid context}}
-\def\defcvx #1 {\errmessage{@defcvx in invalid context}}
-\def\defivarx #1 {\errmessage{@defivarx in invalid context}}
-
-% Now @defvar
-
-% First, define the processing that is wanted for arguments of @defvar.
-% This is actually simple: just print them in roman.
-% This must expand the args and terminate the paragraph they make up
-\def\defvarargs #1{\normalparens #1%
-\interlinepenalty=10000
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000}
-
-% @defvr Counter foo-count
-
-\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader}
-
-\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
-
-% @defvar == @defvr Variable
-
-\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader}
-
-\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{Variable}%
-\defvarargs {#2}\endgroup %
-}
-
-% @defopt == @defvr {User Option}
-
-\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
-
-\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{User Option}%
-\defvarargs {#2}\endgroup %
-}
-
-% @deftypevar int foobar
-
-\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader}
-
-% #1 is the data type. #2 is the name, perhaps followed by text that
-% is actually part of the data type, which should not be put into the index.
-\def\deftypevarheader #1#2{%
-\dovarind#2 \relax% Make entry in variables index
-\begingroup\defname {\defheaderxcond#1\relax$$$#2}{Variable}%
-\interlinepenalty=10000
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000
-\endgroup}
-\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
-
-% @deftypevr {Global Flag} int enable
-
-\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
-
-\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
-\begingroup\defname {\defheaderxcond#2\relax$$$#3}{#1}
-\interlinepenalty=10000
-\endgraf\penalty 10000\vskip -\parskip\penalty 10000
-\endgroup}
-
-% This definition is run if you use @defvarx
-% anywhere other than immediately after a @defvar or @defvarx.
-
-\def\defvrx #1 {\errmessage{@defvrx in invalid context}}
-\def\defvarx #1 {\errmessage{@defvarx in invalid context}}
-\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
-\def\deftypevarx #1 {\errmessage{@deftypevarx in invalid context}}
-\def\deftypevrx #1 {\errmessage{@deftypevrx in invalid context}}
-
-% Now define @deftp
-% Args are printed in bold, a slight difference from @defvar.
-
-\def\deftpargs #1{\bf \defvarargs{#1}}
-
-% @deftp Class window height width ...
-
-\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader}
-
-\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
-\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
-
-% This definition is run if you use @deftpx, etc
-% anywhere other than immediately after a @deftp, etc.
-
-\def\deftpx #1 {\errmessage{@deftpx in invalid context}}
-
-
-\message{cross reference,}
-% Define cross-reference macros
-\newwrite \auxfile
-
-\newif\ifhavexrefs % True if xref values are known.
-\newif\ifwarnedxrefs % True if we warned once that they aren't known.
-
-% @inforef is simple.
-\def\inforef #1{\inforefzzz #1,,,,**}
-\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
- node \samp{\ignorespaces#1{}}}
-
-% \setref{foo} defines a cross-reference point named foo.
-
-\def\setref#1{%
-\dosetq{#1-title}{Ytitle}%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Ysectionnumberandtype}}
-
-\def\unnumbsetref#1{%
-\dosetq{#1-title}{Ytitle}%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Ynothing}}
-
-\def\appendixsetref#1{%
-\dosetq{#1-title}{Ytitle}%
-\dosetq{#1-pg}{Ypagenumber}%
-\dosetq{#1-snt}{Yappendixletterandtype}}
-
-% \xref, \pxref, and \ref generate cross-references to specified points.
-% For \xrefX, #1 is the node name, #2 the name of the Info
-% cross-reference, #3 the printed node name, #4 the name of the Info
-% file, #5 the name of the printed manual. All but the node name can be
-% omitted.
-%
-\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
-\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
-\def\ref#1{\xrefX[#1,,,,,,,]}
-\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
- \def\printedmanual{\ignorespaces #5}%
- \def\printednodename{\ignorespaces #3}%
- \setbox1=\hbox{\printedmanual}%
- \setbox0=\hbox{\printednodename}%
- \ifdim \wd0 = 0pt
- % No printed node name was explicitly given.
- \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
- % Use the node name inside the square brackets.
- \def\printednodename{\ignorespaces #1}%
- \else
- % Use the actual chapter/section title appear inside
- % the square brackets. Use the real section title if we have it.
- \ifdim \wd1>0pt%
- % It is in another manual, so we don't have it.
- \def\printednodename{\ignorespaces #1}%
- \else
- \ifhavexrefs
- % We know the real title if we have the xref values.
- \def\printednodename{\refx{#1-title}{}}%
- \else
- % Otherwise just copy the Info node name.
- \def\printednodename{\ignorespaces #1}%
- \fi%
- \fi
- \fi
- \fi
- %
- % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
- % insert empty discretionaries after hyphens, which means that it will
- % not find a line break at a hyphen in a node names. Since some manuals
- % are best written with fairly long node names, containing hyphens, this
- % is a loss. Therefore, we give the text of the node name again, so it
- % is as if TeX is seeing it for the first time.
- \ifdim \wd1 > 0pt
- \putwordsection{} ``\printednodename'' in \cite{\printedmanual}%
- \else
- % _ (for example) has to be the character _ for the purposes of the
- % control sequence corresponding to the node, but it has to expand
- % into the usual \leavevmode...\vrule stuff for purposes of
- % printing. So we \turnoffactive for the \refx-snt, back on for the
- % printing, back off for the \refx-pg.
- {\turnoffactive \refx{#1-snt}{}}%
- \space [\printednodename],\space
- \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
- \fi
-\endgroup}
-
-% \dosetq is the interface for calls from other macros
-
-% Use \turnoffactive so that punctuation chars such as underscore
-% work in node names.
-\def\dosetq #1#2{{\let\folio=0 \turnoffactive
-\edef\next{\write\auxfile{\internalsetq {#1}{#2}}}%
-\next}}
-
-% \internalsetq {foo}{page} expands into
-% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...}
-% When the aux file is read, ' is the escape character
-
-\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}}
-
-% Things to be expanded by \internalsetq
-
-\def\Ypagenumber{\folio}
-
-\def\Ytitle{\thissection}
-
-\def\Ynothing{}
-
-\def\Ysectionnumberandtype{%
-\ifnum\secno=0 \putwordChapter\xreftie\the\chapno %
-\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\def\Yappendixletterandtype{%
-\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}%
-\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno %
-\else \ifnum \subsubsecno=0 %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno %
-\else %
-\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno %
-\fi \fi \fi }
-
-\gdef\xreftie{'tie}
-
-% Use TeX 3.0's \inputlineno to get the line number, for better error
-% messages, but if we're using an old version of TeX, don't do anything.
-%
-\ifx\inputlineno\thisisundefined
- \let\linenumber = \empty % Non-3.0.
-\else
- \def\linenumber{\the\inputlineno:\space}
-\fi
-
-% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
-% If its value is nonempty, SUFFIX is output afterward.
-
-\def\refx#1#2{%
- \expandafter\ifx\csname X#1\endcsname\relax
- % If not defined, say something at least.
- \angleleft un\-de\-fined\angleright
- \ifhavexrefs
- \message{\linenumber Undefined cross reference `#1'.}%
- \else
- \ifwarnedxrefs\else
- \global\warnedxrefstrue
- \message{Cross reference values unknown; you must run TeX again.}%
- \fi
- \fi
- \else
- % It's defined, so just use it.
- \csname X#1\endcsname
- \fi
- #2% Output the suffix in any case.
-}
-
-% This is the macro invoked by entries in the aux file.
-%
-\def\xrdef#1{\begingroup
- % Reenable \ as an escape while reading the second argument.
- \catcode`\\ = 0
- \afterassignment\endgroup
- \expandafter\gdef\csname X#1\endcsname
-}
-
-% Read the last existing aux file, if any. No error if none exists.
-\def\readauxfile{\begingroup
- \catcode`\^^@=\other
- \catcode`\^^A=\other
- \catcode`\^^B=\other
- \catcode`\^^C=\other
- \catcode`\^^D=\other
- \catcode`\^^E=\other
- \catcode`\^^F=\other
- \catcode`\^^G=\other
- \catcode`\^^H=\other
- \catcode`\^^K=\other
- \catcode`\^^L=\other
- \catcode`\^^N=\other
- \catcode`\^^P=\other
- \catcode`\^^Q=\other
- \catcode`\^^R=\other
- \catcode`\^^S=\other
- \catcode`\^^T=\other
- \catcode`\^^U=\other
- \catcode`\^^V=\other
- \catcode`\^^W=\other
- \catcode`\^^X=\other
- \catcode`\^^Z=\other
- \catcode`\^^[=\other
- \catcode`\^^\=\other
- \catcode`\^^]=\other
- \catcode`\^^^=\other
- \catcode`\^^_=\other
- \catcode`\@=\other
- \catcode`\^=\other
- % It was suggested to define this as 7, which would allow ^^e4 etc.
- % in xref tags, i.e., node names. But since ^^e4 notation isn't
- % supported in the main text, it doesn't seem desirable. Furthermore,
- % that is not enough: for node names that actually contain a ^
- % character, we would end up writing a line like this: 'xrdef {'hat
- % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
- % argument, and \hat is not an expandable control sequence. It could
- % all be worked out, but why? Either we support ^^ or we don't.
- %
- % The other change necessary for this was to define \auxhat:
- % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
- % and then to call \auxhat in \setq.
- %
- \catcode`\~=\other
- \catcode`\[=\other
- \catcode`\]=\other
- \catcode`\"=\other
- \catcode`\_=\other
- \catcode`\|=\other
- \catcode`\<=\other
- \catcode`\>=\other
- \catcode`\$=\other
- \catcode`\#=\other
- \catcode`\&=\other
- % `\+ does not work, so use 43.
- \catcode43=\other
- % Make the characters 128-255 be printing characters
- {%
- \count 1=128
- \def\loop{%
- \catcode\count 1=\other
- \advance\count 1 by 1
- \ifnum \count 1<256 \loop \fi
- }%
- }%
- % The aux file uses ' as the escape (for now).
- % Turn off \ as an escape so we do not lose on
- % entries which were dumped with control sequences in their names.
- % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^
- % Reference to such entries still does not work the way one would wish,
- % but at least they do not bomb out when the aux file is read in.
- \catcode`\{=1
- \catcode`\}=2
- \catcode`\%=\other
- \catcode`\'=0
- \catcode`\\=\other
- %
- \openin 1 \jobname.aux
- \ifeof 1 \else
- \closein 1
- \input \jobname.aux
- \global\havexrefstrue
- \global\warnedobstrue
- \fi
- % Open the new aux file. TeX will close it automatically at exit.
- \openout\auxfile=\jobname.aux
-\endgroup}
-
-
-% Footnotes.
-
-\newcount \footnoteno
-
-% The trailing space in the following definition for supereject is
-% vital for proper filling; pages come out unaligned when you do a
-% pagealignmacro call if that space before the closing brace is
-% removed. (Generally, numeric constants should always be followed by a
-% space to prevent strange expansion errors.)
-\def\supereject{\par\penalty -20000\footnoteno =0 }
-
-% @footnotestyle is meaningful for info output only.
-\let\footnotestyle=\comment
-
-\let\ptexfootnote=\footnote
-
-{\catcode `\@=11
-%
-% Auto-number footnotes. Otherwise like plain.
-\gdef\footnote{%
- \global\advance\footnoteno by \@ne
- \edef\thisfootno{$^{\the\footnoteno}$}%
- %
- % In case the footnote comes at the end of a sentence, preserve the
- % extra spacing after we do the footnote number.
- \let\@sf\empty
- \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
- %
- % Remove inadvertent blank space before typesetting the footnote number.
- \unskip
- \thisfootno\@sf
- \footnotezzz
-}%
-
-% Don't bother with the trickery in plain.tex to not require the
-% footnote text as a parameter. Our footnotes don't need to be so general.
-%
-% Oh yes, they do; otherwise, @ifset and anything else that uses
-% \parseargline fail inside footnotes because the tokens are fixed when
-% the footnote is read. --karl, 16nov96.
-%
-\long\gdef\footnotezzz{\insert\footins\bgroup
- % We want to typeset this text as a normal paragraph, even if the
- % footnote reference occurs in (for example) a display environment.
- % So reset some parameters.
- \interlinepenalty\interfootnotelinepenalty
- \splittopskip\ht\strutbox % top baseline for broken footnotes
- \splitmaxdepth\dp\strutbox
- \floatingpenalty\@MM
- \leftskip\z@skip
- \rightskip\z@skip
- \spaceskip\z@skip
- \xspaceskip\z@skip
- \parindent\defaultparindent
- %
- % Hang the footnote text off the number.
- \hang
- \textindent{\thisfootno}%
- %
- % Don't crash into the line above the footnote text. Since this
- % expands into a box, it must come within the paragraph, lest it
- % provide a place where TeX can split the footnote.
- \footstrut
- \futurelet\next\fo@t
-}
-\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
- \else\let\next\f@t\fi \next}
-\def\f@@t{\bgroup\aftergroup\@foot\let\next}
-\def\f@t#1{#1\@foot}
-\def\@foot{\strut\egroup}
-
-}%end \catcode `\@=11
-
-% Set the baselineskip to #1, and the lineskip and strut size
-% correspondingly. There is no deep meaning behind these magic numbers
-% used as factors; they just match (closely enough) what Knuth defined.
-%
-\def\lineskipfactor{.08333}
-\def\strutheightpercent{.70833}
-\def\strutdepthpercent {.29167}
-%
-\def\setleading#1{%
- \normalbaselineskip = #1\relax
- \normallineskip = \lineskipfactor\normalbaselineskip
- \normalbaselines
- \setbox\strutbox =\hbox{%
- \vrule width0pt height\strutheightpercent\baselineskip
- depth \strutdepthpercent \baselineskip
- }%
-}
-
-% @| inserts a changebar to the left of the current line. It should
-% surround any changed text. This approach does *not* work if the
-% change spans more than two lines of output. To handle that, we would
-% have adopt a much more difficult approach (putting marks into the main
-% vertical list for the beginning and end of each change).
-%
-\def\|{%
- % \vadjust can only be used in horizontal mode.
- \leavevmode
- %
- % Append this vertical mode material after the current line in the output.
- \vadjust{%
- % We want to insert a rule with the height and depth of the current
- % leading; that is exactly what \strutbox is supposed to record.
- \vskip-\baselineskip
- %
- % \vadjust-items are inserted at the left edge of the type. So
- % the \llap here moves out into the left-hand margin.
- \llap{%
- %
- % For a thicker or thinner bar, change the `1pt'.
- \vrule height\baselineskip width1pt
- %
- % This is the space between the bar and the text.
- \hskip 12pt
- }%
- }%
-}
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt}
-
-% @image. We use the macros from epsf.tex to support this.
-% If epsf.tex is not installed and @image is used, we complain.
-%
-% Check for and read epsf.tex up front. If we read it only at @image
-% time, we might be inside a group, and then its definitions would get
-% undone and the next image would fail.
-\openin 1 = epsf.tex
-\ifeof 1 \else
- \closein 1
- \def\epsfannounce{\toks0 = }% do not bother showing banner
- \input epsf.tex
-\fi
-%
-\newif\ifwarnednoepsf
-\newhelp\noepsfhelp{epsf.tex must be installed for images to
- work. It is also included in the Texinfo distribution, or you can get
- it from ftp://ftp.tug.org/tex/epsf.tex.}
-%
-% Only complain once about lack of epsf.tex.
-\def\image#1{%
- \ifx\epsfbox\undefined
- \ifwarnednoepsf \else
- \errhelp = \noepsfhelp
- \errmessage{epsf.tex not found, images will be ignored}%
- \global\warnednoepsftrue
- \fi
- \else
- \imagexxx #1,,,\finish
- \fi
-}
-%
-% Arguments to @image:
-% #1 is (mandatory) image filename; we tack on .eps extension.
-% #2 is (optional) width, #3 is (optional) height.
-% #4 is just the usual extra ignored arg for parsing this stuff.
-\def\imagexxx#1,#2,#3,#4\finish{%
- % \epsfbox itself resets \epsf?size at each figure.
- \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
- \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
- \epsfbox{#1.eps}%
-}
-
-% End of control word definitions.
-
-
-\message{and turning on texinfo input format.}
-
-\def\openindices{%
- \newindex{cp}%
- \newcodeindex{fn}%
- \newcodeindex{vr}%
- \newcodeindex{tp}%
- \newcodeindex{ky}%
- \newcodeindex{pg}%
-}
-
-% Set some numeric style parameters, for 8.5 x 11 format.
-
-\hsize = 6in
-\hoffset = .25in
-\newdimen\defaultparindent \defaultparindent = 15pt
-\parindent = \defaultparindent
-\parskip 3pt plus 2pt minus 1pt
-\setleading{13.2pt}
-\advance\topskip by 1.2cm
-
-\chapheadingskip = 15pt plus 4pt minus 2pt
-\secheadingskip = 12pt plus 3pt minus 2pt
-\subsecheadingskip = 9pt plus 2pt minus 2pt
-
-% Prevent underfull vbox error messages.
-\vbadness=10000
-
-% Following George Bush, just get rid of widows and orphans.
-\widowpenalty=10000
-\clubpenalty=10000
-
-% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
-% using an old version of TeX, don't do anything. We want the amount of
-% stretch added to depend on the line length, hence the dependence on
-% \hsize. This makes it come to about 9pt for the 8.5x11 format.
-%
-\ifx\emergencystretch\thisisundefined
- % Allow us to assign to \emergencystretch anyway.
- \def\emergencystretch{\dimen0}%
-\else
- \emergencystretch = \hsize
- \divide\emergencystretch by 45
-\fi
-
-% Use @smallbook to reset parameters for 7x9.5 format (or else 7x9.25)
-\def\smallbook{
- \global\chapheadingskip = 15pt plus 4pt minus 2pt
- \global\secheadingskip = 12pt plus 3pt minus 2pt
- \global\subsecheadingskip = 9pt plus 2pt minus 2pt
- %
- \global\lispnarrowing = 0.3in
- \setleading{12pt}
- \advance\topskip by -1cm
- \global\parskip 2pt plus 1pt
- \global\hsize = 5in
- \global\vsize=7.5in
- \global\tolerance=700
- \global\hfuzz=1pt
- \global\contentsrightmargin=0pt
- \global\deftypemargin=0pt
- \global\defbodyindent=.5cm
- %
- \global\pagewidth=\hsize
- \global\pageheight=\vsize
- %
- \global\let\smalllisp=\smalllispx
- \global\let\smallexample=\smalllispx
- \global\def\Esmallexample{\Esmalllisp}
-}
-
-% Use @afourpaper to print on European A4 paper.
-\def\afourpaper{
-\global\tolerance=700
-\global\hfuzz=1pt
-\setleading{12pt}
-\global\parskip 15pt plus 1pt
-
-\global\vsize= 53\baselineskip
-\advance\vsize by \topskip
-%\global\hsize= 5.85in % A4 wide 10pt
-\global\hsize= 6.5in
-\global\outerhsize=\hsize
-\global\advance\outerhsize by 0.5in
-\global\outervsize=\vsize
-\global\advance\outervsize by 0.6in
-
-\global\pagewidth=\hsize
-\global\pageheight=\vsize
-}
-
-\bindingoffset=0pt
-\normaloffset=\hoffset
-\pagewidth=\hsize
-\pageheight=\vsize
-
-% Allow control of the text dimensions. Parameters in order: textheight;
-% textwidth; voffset; hoffset; binding offset; topskip.
-% All require a dimension;
-% header is additional; added length extends the bottom of the page.
-
-\def\changepagesizes#1#2#3#4#5#6{
- \global\vsize= #1
- \global\topskip= #6
- \advance\vsize by \topskip
- \global\voffset= #3
- \global\hsize= #2
- \global\outerhsize=\hsize
- \global\advance\outerhsize by 0.5in
- \global\outervsize=\vsize
- \global\advance\outervsize by 0.6in
- \global\pagewidth=\hsize
- \global\pageheight=\vsize
- \global\normaloffset= #4
- \global\bindingoffset= #5}
-
-% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin
-% 29mm, hence bottom margin 28mm, nominal side margin 3cm.
-\def\afourlatex
- {\global\tolerance=700
- \global\hfuzz=1pt
- \setleading{12pt}
- \global\parskip 15pt plus 1pt
- \advance\baselineskip by 1.6pt
- \changepagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}
- }
-
-% Use @afourwide to print on European A4 paper in wide format.
-\def\afourwide{\afourpaper
-\changepagesizes{9.5in}{6.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}}
-
-% Define macros to output various characters with catcode for normal text.
-\catcode`\"=\other
-\catcode`\~=\other
-\catcode`\^=\other
-\catcode`\_=\other
-\catcode`\|=\other
-\catcode`\<=\other
-\catcode`\>=\other
-\catcode`\+=\other
-\def\normaldoublequote{"}
-\def\normaltilde{~}
-\def\normalcaret{^}
-\def\normalunderscore{_}
-\def\normalverticalbar{|}
-\def\normalless{<}
-\def\normalgreater{>}
-\def\normalplus{+}
-
-% This macro is used to make a character print one way in ttfont
-% where it can probably just be output, and another way in other fonts,
-% where something hairier probably needs to be done.
-%
-% #1 is what to print if we are indeed using \tt; #2 is what to print
-% otherwise. Since all the Computer Modern typewriter fonts have zero
-% interword stretch (and shrink), and it is reasonable to expect all
-% typewriter fonts to have this, we can check that font parameter.
-%
-\def\ifusingtt#1#2{\ifdim \fontdimen3\the\font=0pt #1\else #2\fi}
-
-% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary).
-% Most of these we simply print from the \tt font, but for some, we can
-% use math or other variants that look better in normal text.
-
-\catcode`\"=\active
-\def\activedoublequote{{\tt \char '042}}
-\let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt \char '176}}
-\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
-
-\catcode`\_=\active
-\def_{\ifusingtt\normalunderscore\_}
-% Subroutine for the previous macro.
-\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}}
-
-\catcode`\|=\active
-\def|{{\tt \char '174}}
-\chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
-\chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-%\catcode 27=\active
-%\def^^[{$\diamondsuit$}
-
-% Set up an active definition for =, but don't enable it most of the time.
-{\catcode`\==\active
-\global\def={{\tt \char 61}}}
-
-\catcode`+=\active
-\catcode`\_=\active
-
-% If a .fmt file is being used, characters that might appear in a file
-% name cannot be active until we have parsed the command line.
-% So turn them off again, and have \everyjob (or @setfilename) turn them on.
-% \otherifyactive is called near the end of this file.
-\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
-
-\catcode`\@=0
-
-% \rawbackslashxx output one backslash character in current font
-\global\chardef\rawbackslashxx=`\\
-%{\catcode`\\=\other
-%@gdef@rawbackslashxx{\}}
-
-% \rawbackslash redefines \ as input to do \rawbackslashxx.
-{\catcode`\\=\active
-@gdef@rawbackslash{@let\=@rawbackslashxx }}
-
-% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\rawbackslashxx}}
-
-% Say @foo, not \foo, in error messages.
-\escapechar=`\@
-
-% \catcode 17=0 % Define control-q
-\catcode`\\=\active
-
-% Used sometimes to turn off (effectively) the active characters
-% even after parsing them.
-@def@turnoffactive{@let"=@normaldoublequote
-@let\=@realbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus}
-
-@def@normalturnoffactive{@let"=@normaldoublequote
-@let\=@normalbackslash
-@let~=@normaltilde
-@let^=@normalcaret
-@let_=@normalunderscore
-@let|=@normalverticalbar
-@let<=@normalless
-@let>=@normalgreater
-@let+=@normalplus}
-
-% Make _ and + \other characters, temporarily.
-% This is canceled by @fixbackslash.
-@otherifyactive
-
-% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
-% That is what \eatinput is for; after that, the `\' should revert to printing
-% a backslash.
-%
-@gdef@eatinput input texinfo{@fixbackslash}
-@global@let\ = @eatinput
-
-% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\{ in the file would cause an error. This macro tries to fix
-% that, assuming it is called before the first `\' could plausibly occur.
-% Also back turn on active characters that might appear in the input
-% file name, in case not using a pre-dumped format.
-%
-@gdef@fixbackslash{@ifx\@eatinput @let\ = @normalbackslash @fi
- @catcode`+=@active @catcode`@_=@active}
-
-%% These look ok in all fonts, so just make them not special. The @rm below
-%% makes sure that the current font starts out as the newly loaded cmr10
-@catcode`@$=@other @catcode`@%=@other @catcode`@&=@other @catcode`@#=@other
-
-@textfonts
-@rm
-
-@c Local variables:
-@c page-delimiter: "^\\\\message"
-@c End:
diff --git a/apps/gperf/version.texi b/apps/gperf/version.texi
deleted file mode 100644
index 295f0c1a942..00000000000
--- a/apps/gperf/version.texi
+++ /dev/null
@@ -1,3 +0,0 @@
-@set UPDATED 24 April 1999
-@set EDITION 2.0
-@set VERSION 2.0
diff --git a/bin/ACEutils.pm b/bin/ACEutils.pm
deleted file mode 100644
index b7e5a24217c..00000000000
--- a/bin/ACEutils.pm
+++ /dev/null
@@ -1,117 +0,0 @@
-# $Id$
-
-require Process;
-$EXEPREFIX = ".".$DIR_SEPARATOR;
-$TARGETHOSTNAME = "localhost";
-
-package ACE;
-
-sub CheckForExeDir
-{
- for($i = 0; $i <= $#ARGV; $i++) {
- if ($ARGV[$i] eq '-ExeSubDir') {
- if (defined $ARGV[$i + 1]) {
- $::EXEPREFIX = $ARGV[$i + 1].$::DIR_SEPARATOR;
- }
- else {
- print STDERR "You must pass a directory with ExeSubDir\n";
- exit(1);
- }
- splice(@ARGV, $i, 2);
- }
- }
-}
-
-
-### Check and remove, but don't actually use
-sub CheckForConfig
-{
- for($i = 0; $i <= $#ARGV;) {
- if ($ARGV[$i] eq '-Config') {
- if (!defined $ARGV[$i + 1]) {
- print STDERR "You must pass a configuration with Config\n";
- exit(1);
- }
- splice(@ARGV, $i, 2);
- } else {
- $i++;
- }
- }
-}
-
-sub checkForTarget
-{
- my($cwd) = shift;
-
- for($i = 0; $i <= $#ARGV; $i++) {
- if ($ARGV[$i] eq '-chorus') {
- if (defined $ARGV[$i + 1]) {
- $::TARGETHOSTNAME = $ARGV[$i + 1];
- $::EXEPREFIX = "rsh $::TARGETHOSTNAME arun $cwd$::DIR_SEPARATOR";
- }
- else {
- print STDERR "The -chorus option requires " .
- "the hostname of the target\n";
- exit(1);
- }
- splice(@ARGV, $i, 2);
- # Don't break from the loop just in case there
- # is an accidental duplication of the -chorus option
- }
- }
-}
-
-
-# Returns a unique id, uid for unix, last digit of IP for NT
-sub uniqueid
-{
- if ($^O eq "MSWin32")
- {
- my $uid = 1;
-
- open (IPNUM, "ipconfig|") || die "Can't run ipconfig: $!\n";
-
- while (<IPNUM>)
- {
- if (/Address/)
- {
- $uid = (split (/: (\d+)\.(\d+)\.(\d+)\.(\d+)/))[4];
- }
- }
-
- close IPNUM;
-
- return $uid;
- }
- else
- {
- return getpwnam (getlogin ());
- }
-}
-
-# Waits until a file exists
-sub waitforfile
-{
- local($file) = @_;
- sleep 1 while (!(-e $file && -s $file));
-}
-
-sub waitforfile_timed
-{
- my $file = shift;
- my $maxtime = shift;
- while ($maxtime-- != 0) {
- if (-e $file && -s $file) {
- return 0;
- }
- sleep 1;
- }
- return -1;
-}
-
-$sleeptime = 5;
-
-CheckForExeDir ();
-CheckForConfig ();
-
-1;
diff --git a/bin/ADDIDL.DSM b/bin/ADDIDL.DSM
deleted file mode 100644
index b53ea3eb636..00000000000
--- a/bin/ADDIDL.DSM
+++ /dev/null
@@ -1,150 +0,0 @@
-'
-'**********************************************************************
-' $Header$
-' $NoKeywords: $
-'
-' @doc AddIDL
-'
-' Macros for Microsoft Visual Studio.
-'
-' @comm To install this file go to Tools->Customize->Macro Files->Browse...
-'
-'**********************************************************************
-'
-
-
-'@bsub Add an IDL file into all build projects in the current workspace.
-'@comm This routine also sets up the custom build options require for the TAO
-'CORBA implementation. The use can select to create a new file or just add a reference
-'to the project (e.g. if a file already exists).If a new file is created, then a
-'basic outline for an OMG module or interface declaration is inserted. Note that the inline
-'file extension is defined by INLINE_EXTENSION.
-'
-Sub AddIDLFile()
-'DESCRIPTION: Add new IDL File with TAO custom build entries to all build projects in the workspace.
-
- On Error Resume Next
-
- 'Define the extension used for inline files here
- INLINE_EXTENSION = "inl"
-
- WkSpaceDir = Application.CurrentDirectory
- ModuleName = InputBox("module (namespace or extensionless IDL filename):")
- FileName = ModuleName
- WkSpaceDir=InputBox("Directory for IDL file: ","Output Directory",WkSpaceDir)
-
- if WkSpaceDir="" then
- Exit Sub
- end if
-
- if Right(WkSpaceDir,1) <> "\" then
- WkSpaceDir=WkSpaceDir+"\"
- end if
-
- IDLFile = WkSpaceDir+FileName +".idl"
-
- 'Try to a file with this path/name
- Documents.Open IDLFile
-
- 'If such a file already exists then it should now be the active doc
- if ActiveDocument.Fullname = IDLFile then
-
- if msgbox("Overwrite the existing file ?",vbYesNo) = vbNo then
- NewFile = 0
- else
- 'Close the file before we modify it
- ActiveDocument.Close
- NewFile = 1
- end if
- else
- NewFile =1
- end if
-
- 'If NewFile is set to 1 then create the outline for a OMG IDL module
- if NewFile = 1 then
- InterfaceName = InputBox("interface:")
-
- if msgbox("Include a module ("+ ModuleName+") declaration",vbYesNo) = vbYes then
- Descr = vbLF + vbLF + "#if !defined (_" + UCase(ModuleName) + "_IDL)" + vbLF + _
- "#define _" + UCase(ModuleName) + "_IDL" + vbLF +vbLF + _
- "//"+vbLF+"//" +vbLF + "module " + ModuleName + " {" +vbLF + _
- " //" + vbLF + _
- " interface " + InterfaceName + "{"+vbLF + _
- " //Definitions"+ vbLF + vbLF+ vbLF + _
- " //Operations"+ vbLF + vbLF+ vbLF + _
- " //Properties"+ vbLF+ vbLF + _
- " };"+vbLF + "};"+vbLF +vbLF + _
- "#endif /* _"+ UCase(ModuleName) +"_IDL */"+vbLF
- else
- Descr = vbLF + vbLF + "#if !defined (_" + UCase(ModuleName) + "_IDL)" + vbLF + _
- "#define _" + UCase(ModuleName) + "_IDL" + vbLF +vbLF + _
- " //" + vbLF + _
- " //" + vbLF + _
- " interface " + InterfaceName + "{"+vbLF + _
- " //Definitions"+ vbLF + vbLF+ vbLF + _
- " //Operations"+ vbLF + vbLF+ vbLF + _
- " //Properties"+ vbLF+ vbLF + _
- " };"+vbLF +vbLF + _
- "#endif /* _"+ UCase(ModuleName) +"_IDL */"+vbLF
- end if
-
- CreateCppFile IDLFile, Descr
- end if
-
- Dim proj
- ' Add the files to each project
- 'Note that the inline files do not need to be added
- for each proj in Projects
- if msgbox("Add "+ IDLFile +" and the IDL compiler output files to "+ proj +" ?",vbYesNo) = vbYes then
- ProjectPath= Left(proj.FullName,InStrRev(proj.FullName,"\")-1)
-
- proj.AddFile IDLFile
- proj.AddFile WkSpaceDir+ModuleName + "C.cpp"
- proj.AddFile WkSpaceDir+ModuleName + "C.h"
- proj.AddFile WkSpaceDir+ModuleName + "S.cpp"
- proj.AddFile WkSpaceDir+ModuleName + "S.h"
- proj.AddFile WkSpaceDir+ModuleName + "S_T.cpp"
- proj.AddFile WkSpaceDir+ModuleName + "S_T.h"
-
- Dim cfg
- ' Add the custom build for each configuration in each project
- If proj.Type = "Build" Then
- Commands="%ACE_ROOT%\bin\tao_idl.exe -ci C."+ INLINE_EXTENSION +" -si S.inl -st S_T."+ INLINE_EXTENSION +" " + IDLFile
- Output = "$(InputName)C.cpp" + vbLF + _
- "$(InputName)C.h" + vbLF + _
- "$(InputName)C."+ INLINE_EXTENSION +"" + vbLF + _
- "$(InputName)S.cpp" + vbLF + _
- "$(InputName)S.h" + vbLF + _
- "$(InputName)S."+ INLINE_EXTENSION +"" + vbLF + _
- "$(InputName)S_T.cpp" + vbLF + _
- "$(InputName)S_T.h" + vbLF + _
- "$(InputName)S_T."+ INLINE_EXTENSION +""
-
- for each cfg in proj.Configurations
- cfg.AddCustomBuildStepToFile IDLFile, Commands, Output, "Running the TAO IDL Compiler on $(InputPath)..."
- next
- End If
- end if
- next
-End Sub
-
-
-
-
-
-'@bsub Creates a C/C++ file.
-'@comm This routine will create a C or C++ source file f, with content c.
-'The new file will become the active doc.
-'
-Function CreateCppFile(byval f, byval c)
-'DESCRIPTION: Creates a .cpp file.
-
- On Error Resume Next
- Documents.Add "Text"
- ActiveDocument.Language = "C/C++"
- ActiveDocument.Selection = c
- ActiveDocument.Selection.NewLine
- ActiveDocument.Save f
-
-End Function
-
diff --git a/bin/Array.pl b/bin/Array.pl
deleted file mode 100755
index 7f9bf393e15..00000000000
--- a/bin/Array.pl
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh -- # -*- perl -*-
-eval 'exec perl -pi.Array.$$ -S $0 ${1+"$@"}'
- if 0;
-
-# $Id$
-
-#
-# After the 4.6.10 release the template instantiations for ACE_Array
-# have changed, the class is implemented in terms of ACE_Array_Base;
-# this script fixes the template instantiations if needed.
-#
-# It changes instantiations of:
-#
-# ACE_Array<T>
-#
-# into:
-#
-# ACE_Array<T>
-# ACE_Array_Base<T>
-#
-
-# Notice the use of the -pi options: the while(<>) loop is implicit,
-# printing the current line is also implicit as well as fixing the
-# file in place.
-
-if (m/template class\s+ACE_Array\s*<(.*)>\s*;\s*/) {
- print "template class ACE_Array_Base<", $1, ">;\n";
-} elsif (m/#pragma instantiate\s+ACE_Array\s*<(.*)>\s*$/) {
- print "#pragma instantiate ACE_Array_Base<", $1, ">\n";
-}
-
diff --git a/bin/Array_Helper b/bin/Array_Helper
deleted file mode 100755
index 6ffce3b799e..00000000000
--- a/bin/Array_Helper
+++ /dev/null
@@ -1,16 +0,0 @@
-#! /bin/sh
-#
-# $Id$
-#
-
-# Finds all files that instantiate ACE_Array and runs the Array.pl
-# perl script on them, please check $ACE_ROOT/bin/Array.pl for more
-# details.
-
-find $* -type f -a \( -name '*.h' \
- -o -name '*.i' \
- -o -name '*.cpp' \) |
- xargs egrep -l 'template[ \t]*class[ \t]*ACE_Array[ \t]*\<' |
- xargs perl -pi $ACE_ROOT/bin/Hash_Map_Manager.pl
-
-
diff --git a/bin/Hash_Map_Manager.pl b/bin/Hash_Map_Manager.pl
deleted file mode 100755
index cf37f69b6a4..00000000000
--- a/bin/Hash_Map_Manager.pl
+++ /dev/null
@@ -1,146 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -pi -S $0 ${1+"$@"}'
- & eval 'exec perl -pi -S $0 $argv:q'
- if 0;
-
-# $Id$
-
-#
-# This script is used by Hash_Map_Manager_Helper.
-#
-
-#
-# This script helps in fixing the template instantiations changes
-# required by the new design of ACE_Hash_Map_Manager.
-#
-# Note that this script is not a 100% fool proof:
-#
-# (a) It uses commas to delimit the types in ACE_Hash_Map_Manager<X,
-# Y, Z>. If X, Y, or Z are complicated types containing commas (e.g.,
-# T<a, b>), this script will not work. Also, all template parameters
-# are assumed to be on the same line.
-#
-# In the case where this script will not work, here are the cookbook,
-# do-it-yourself instructions:
-#
-# ACE_Hash_Map_Entry<X, Y>
-#
-# changes to:
-#
-# ACE_Hash_Map_Entry<X, Y>
-# ACE_Hash<X>
-# ACE_Equal_To<X>
-#
-#
-# ACE_Hash_Map_Iterator_Base<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Iterator_Base_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Manager<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Manager<X, Y, Z>
-# ACE_Hash_Map_Manager_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Iterator<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Iterator<X, Y, Z>
-# ACE_Hash_Map_Iterator_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Reverse_Iterator<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Reverse_Iterator<X, Y, Z>
-# ACE_Hash_Map_Reverse_Iterator_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-
-
-# (b) The second problem is for g++ users (version lower than
-# 2.8). g++ is broken such that if you explicitly instantiate
-# templates, it will ignore template specialization. Therefore if you
-# are using the template instantiation provided in ACE for ACE_Hash
-# and ACE_Equal_To, don't instantiate those templates.
-
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-$template_instantiation = "template class";
-$end_of_template_instantiation = ";";
-
-$pragma_instantiation = "#pragma instantiate";
-$end_of_pragma_instantiation = "";
-
-while ($line = <>)
-{
- find_match ("ACE_Hash_Map_Entry");
- if ($match)
- {
- $template_parameters =~ /(.*),\s*(.*)/;
- $X = $1;
- $Y = $2;
-
- print "$instantiation ACE_Hash_Map_Entry<$template_parameters>$end_of_instantiation\n";
- print "$instantiation ACE_Hash<$X>$end_of_instantiation\n";
- print "$instantiation ACE_Equal_To<$X>$end_of_instantiation\n";
- next;
- }
-
- add_ex ("ACE_Hash_Map_Manager", 1);
- add_ex ("ACE_Hash_Map_Iterator", 1);
- add_ex ("ACE_Hash_Map_Reverse_Iterator", 1);
- add_ex ("ACE_Hash_Map_Iterator_Base", 0);
-
- print $line;
-}
-
-sub find_match
-{
- $key = $_[0].'\s*<\s*(.*)>\s*';
- if ($line =~ /$template_instantiation \s*$key$end_of_template_instantiation$/)
- {
- $match = 1;
- $template_parameters = $1;
- $instantiation = $template_instantiation;
- $end_of_instantiation = $end_of_template_instantiation;
- }
- elsif ($line =~ /$pragma_instantiation \s*$key$end_of_pragma_instantiation$/)
- {
- $match = 1;
- $template_parameters = $1;
- $instantiation = $pragma_instantiation;
- $end_of_instantiation = $end_of_pragma_instantiation;
- }
- else
- {
- $match = 0;
- }
-}
-
-sub add_ex
-{
- $add_original_line = $_[1];
- find_match ($_[0]);
- if ($match)
- {
- $template_parameters =~ /(.*),\s*(.*),\s*(.*)/;
- $X = $1;
- $Y = $2;
- $Z = $3;
-
- if ($add_original_line)
- {
- print "$instantiation $_[0]<$template_parameters>$end_of_instantiation\n";
- }
-
- print "$instantiation $_[0]_Ex<$X, $Y, ACE_Hash<$X>, ACE_Equal_To<$X>, $Z>$end_of_instantiation\n";
- next;
- }
-}
diff --git a/bin/Hash_Map_Manager_Helper b/bin/Hash_Map_Manager_Helper
deleted file mode 100755
index f65cd584684..00000000000
--- a/bin/Hash_Map_Manager_Helper
+++ /dev/null
@@ -1,76 +0,0 @@
-#! /bin/sh
-
-#
-# $Id$
-#
-
-#
-# This script uses Hash_Map_Manager.pl.
-#
-
-#
-# This script helps in fixing the template instantiations changes
-# required by the new design of ACE_Hash_Map_Manager.
-#
-# Note that this script is not a 100% fool proof:
-#
-# (a) It uses commas to delimit the types in ACE_Hash_Map_Manager<X,
-# Y, Z>. If X, Y, or Z are complicated types containing commas (e.g.,
-# T<a, b>), this script will not work. Also, all template parameters
-# are assumed to be on the same line.
-#
-# In the case where this script will not work, here are the cookbook,
-# do-it-yourself instructions:
-#
-# ACE_Hash_Map_Entry<X, Y>
-#
-# changes to:
-#
-# ACE_Hash_Map_Entry<X, Y>
-# ACE_Hash<X>
-# ACE_Equal_To<X>
-#
-#
-# ACE_Hash_Map_Iterator_Base<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Iterator_Base_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Manager<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Manager<X, Y, Z>
-# ACE_Hash_Map_Manager_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Iterator<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Iterator<X, Y, Z>
-# ACE_Hash_Map_Iterator_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-#
-#
-# ACE_Hash_Map_Reverse_Iterator<X, Y, Z>
-#
-# changes to:
-#
-# ACE_Hash_Map_Reverse_Iterator<X, Y, Z>
-# ACE_Hash_Map_Reverse_Iterator_Ex<X, Y, ACE_Hash<X>, ACE_Equal_To<X>, Z>
-
-
-# (b) The second problem is for g++ users (version lower than
-# 2.8). g++ is broken such that if you explicitly instantiate
-# templates, it will ignore template specialization. Therefore if you
-# are using the template instantiation provided in ACE for ACE_Hash
-# and ACE_Equal_To, don't instantiate those templates.
-
-for file in `find . -type f \( -name "*.i" -o -name "*.h" -o -name "*.cpp" \) -print | xargs egrep -l "template[ \t]*class[ \t]*ACE_Hash_Map_Manager"`
-do
- echo Fixing template instantiations in $file
- perl $ACE_ROOT/bin/Hash_Map_Manager.pl $file > $file.new
- mv $file.new $file
-done
diff --git a/bin/Makefile b/bin/Makefile
deleted file mode 100644
index 13f5df60a74..00000000000
--- a/bin/Makefile
+++ /dev/null
@@ -1,111 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-# Makefile for all the ACE binaries
-#
-# This Makefile can build clone and envinfo, but not both at the same time.
-# clone must not use any ACE pieces, since it's building a clone of the source
-# tree and it can't have done a build yet. envinfo, on the other hand,
-# requires a built ACE to build correctly.
-# This Makefile is distributed so as to be able to build clone without
-# changes. To build envinfo, first build ACE, then come back and do a
-# make envinfo=1
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-ifdef envinfo
-BIN = envinfo
-
-LSRC = $(addsuffix .cpp,$(BIN))
-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.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-# To build multiple executables in the same directory on AIX, it works
-# best to wipe out any previously-created tempinc directory.
-# The compiler/linker isn't too smart about instantiating templates...
-ifdef TEMPINCDIR
-COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc)
-endif
-
-else # Not building envinfo
-
-include $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
-
-CFILES = clone.cpp
-OFILES = clone.o
-DFLAGS = -b elf
-CCFLAGS += -I$(ACE_ROOT)
-
-#############################################################################
-# C++ directives
-
-.SUFFIXES: .cpp
-.cpp.o:
- $(CXX) $(CCFLAGS) -c $<
-#############################################################################
-
-clone: $(OFILES)
- $(CXX) $(CCFLAGS) -o $@ $(OFILES)
-
-realclean: clean
- -$(RM) clone
-
-endif # envinfo
-
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-.obj/clone.o .obj/clone.so .shobj/clone.o .shobj/clone.so: clone.cpp \
- $(ACE_ROOT)/ace/OS.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/envinfo.o .obj/envinfo.so .shobj/envinfo.o .shobj/envinfo.so: envinfo.cpp \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.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
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/bin/PerlACE/ConfigList.pm b/bin/PerlACE/ConfigList.pm
deleted file mode 100644
index f2546d844d9..00000000000
--- a/bin/PerlACE/ConfigList.pm
+++ /dev/null
@@ -1,155 +0,0 @@
-# $Id$
-
-package PerlACE::ConfigList;
-use strict;
-use FileHandle;
-
-@PerlACE::ConfigList::Configs = ();
-
-my @new_argv = ();
-
-for(my $i = 0; $i <= $#ARGV; ++$i) {
- if ($ARGV[$i] eq '-Config') {
- if (defined $ARGV[$i + 1]) {
- push @PerlACE::ConfigList::Configs, $ARGV[++$i];
- }
- else {
- print STDERR "You must pass a configuration with Config\n";
- exit(1);
- }
- }
- else {
- push @new_argv, $ARGV[$i];
- }
-}
-@ARGV = @new_argv;
-
-
-sub new ()
-{
- my $self = {};
- @{$self->{MY_CONFIGS}} = @PerlACE::ConfigList::Configs;
- bless $self;
- return $self;
-}
-
-sub my_config_list
-{
- my $self = shift;
- if (@_) { @{$self->{MY_CONFIGS}} = @_; }
- return @{$self->{MY_CONFIGS}};
-}
-
-sub add_one_config ($)
-{
- my $self = shift;
- my $newconfig = shift;
- push @{$self->{MY_CONFIGS}}, $newconfig;
-}
-
-sub check_config (@)
-{
- my $self = shift;
- my @testconfigs = @_;
- my $included = 0;
- my $excluded = 0;
- my $noincludes = 1;
-
- foreach my $config (@testconfigs) {
- if ($config =~ /^\w/) { $noincludes = 0; }
- foreach my $myconfig (@{$self->{MY_CONFIGS}}) {
- if ($config eq "!$myconfig") { $excluded = 1; }
- if ($config eq $myconfig) { $included = 1; }
- }
- }
- return ($included || $noincludes) && !$excluded;
-}
-
-sub load ($)
-{
- my $self = shift;
- my $filename = shift;
-
- my $fh = new FileHandle;
- if (!$fh->open ("< $filename")) {
- print STDERR "Could not open $filename: $!\n";
- exit (1);
- }
-
- while (<$fh>) {
- chomp;
- if (/^\s*$/ || /^#/) {
- next;
- }
- # compress white space
- s/\s+/ /g;
-
- my $entry = '';
- my $configs = '';
-
- ($entry, $configs) = split /:/;
-
- push @{$self->{ENTRIES}}, $entry;
- if (defined $configs) {
- @{$self->{CONFIGS}->{$entry}} = split (" ", $configs);
- }
- }
-
- $fh->close ();
-}
-
-sub valid_entries ()
-{
- my $self = shift;
- my @entries = ();
-
- foreach my $entry (@{$self->{ENTRIES}}) {
- if ($self->check_config (@{$self->{CONFIGS}->{$entry}})) {
- push @entries, $entry;
- }
- }
- return @entries;
-}
-
-sub list_configs ()
-{
- my $self = shift;
- my %allconfigs = {};
- my $list = '';
-
- foreach my $entry (@{$self->{ENTRIES}}) {
-
- foreach my $config (@{$self->{CONFIGS}->{$entry}}) {
- $config =~ s/!//g;
- if ($allconfigs{$config} != 1) {
- $list .= $config.' ';
- $allconfigs{$config} = 1;
- }
- }
- }
-
- return $list;
-}
-
-sub dump ()
-{
- my $self = shift;
-
- print "============================================================\n";
- print "Config\n";
- foreach my $config (@{$self->{MY_CONFIGS}}) {
- print $config, "\n";
- }
- print "\n";
- print "Entries\n";
- foreach my $entry (@{$self->{ENTRIES}}) {
- print "- ", $entry, ": ";
- foreach my $config (@{$self->{CONFIGS}->{$entry}}) {
- print $config, " ";
- }
- print "\n";
- }
- print "============================================================\n";
-}
-
-1; \ No newline at end of file
diff --git a/bin/PerlACE/MSProject.pm b/bin/PerlACE/MSProject.pm
deleted file mode 100644
index 86e6548456a..00000000000
--- a/bin/PerlACE/MSProject.pm
+++ /dev/null
@@ -1,393 +0,0 @@
-# $Id$
-
-package PerlACE::MSProject;
-
-use strict;
-use FileHandle;
-
-###############################################################################
-
-# Constructor
-
-sub new
-{
- my $proto = shift;
- my $class = ref ($proto) || $proto;
- my $self = {};
-
- $self->{FILENAME} = shift;
- $self->{VERSION} = undef;
- $self->{NAME} = undef;
- %{$self->{CONFIGS}} = ();
-
- bless ($self, $class);
- return $self;
-}
-
-###############################################################################
-
-# Accessors
-
-sub Filename
-{
- my $self = shift;
-
- if (@_ != 0) {
- $self->{FILENAME} = shift;
- }
-
- return $self->{FILENAME};
-}
-
-sub Version ()
-{
- my $self = shift;
- return $self->{VERSION};
-}
-
-sub Name ()
-{
- my $self = shift;
- return $self->{NAME};
-}
-
-sub Configs ()
-{
- my $self = shift;
- return keys %{$self->{CONFIGS}};
-}
-
-sub DepOutputFile ($)
-{
- my $self = shift;
- my $config = shift;
-
- if (!defined $config) {
- print STDERR "Error: No configuration specified\n";
- return;
- }
-
- my $name = $self->OutputFile ($config);
-
- if ($name =~ m/\.dll$/) {
- $name = $self->LibraryFile ($config);
- }
-
- $name =~ s/.*\\//; # / <- For devenv
- $name =~ s/.*\///;
-
- return $name;
-}
-
-sub OutputFile ($)
-{
- my $self = shift;
- my $config = shift;
-
- if (!defined $config) {
- print STDERR "Error: No configuration specified\n";
- return;
- }
-
- if (%{$self->{CONFIGS}}->{$config}->{LINK} =~ m/out\:\"([^\"]*)\"/) {
- return $1;
- }
- elsif (defined $self->Name ()) {
- my $filename = $self->Filename;
- my $ext = "";
-
- if (%{$self->{CONFIGS}}->{$config}->{LINK} =~ m/\/dll/) {
- $ext = ".dll";
- }
- elsif (%{$self->{CONFIGS}}->{$config}->{LINK} =~ m/\/subsystem\:/) {
- $ext = ".exe";
- }
- else {
- $ext = ".lib";
- }
-
- $filename =~ s/\.[^\.]*$/$ext/;
- return $filename;
- }
-}
-
-
-sub LibraryFile ($)
-{
- my $self = shift;
- my $config = shift;
- my $dll = undef;
-
- if (!defined $config) {
- print STDERR "Error: No configuration specified\n";
- return;
- }
-
- if ($self->OutputFile ($config) =~ m/([^\/\\]*)\.dll$/i) {
- $dll = $1;
- }
-
- if (defined $dll) {
- if (%{$self->{CONFIGS}}->{$config}->{LINK} =~ m/implib\:\"([^\"]*)\"/i) {
- return $1;
- }
- else {
- $dll =~ s/.*\\//ig; # / <- Just here to fix color coding in devenv beta
- return $self->OutputDir ($config). $dll . ".lib";
- }
- }
-}
-
-sub OutputDir ($)
-{
- my $self = shift;
- my $config = shift;
-
- if (!defined $config) {
- print STDERR "Error: No configuration specified\n";
- return;
- }
-
- return %{$self->{CONFIGS}}->{$config}->{OUTPUTDIR};
-}
-
-sub IntermidiateDir ($)
-{
- my $self = shift;
- my $config = shift;
-
- if (!defined $config) {
- print STDERR "Error: No configuration specified\n";
- return;
- }
-
- return %{$self->{CONFIGS}}->{$config}->{INTERMEDIATEDIR};
-}
-
-sub TargetDir ($)
-{
- my $self = shift;
- my $config = shift;
-
- if (!defined $config) {
- print STDERR "Error: No configuration specified\n";
- return;
- }
-
- return %{$self->{CONFIGS}}->{$config}->{TARGETDIR};
-}
-
-sub CPPOptions ($)
-{
- my $self = shift;
- my $config = shift;
-
- if (!defined $config) {
- print STDERR "Error: No configuration specified\n";
- return;
- }
-
- return %{$self->{CONFIGS}}->{$config}->{CPP};
-}
-
-sub LINKOptions ($)
-{
- my $self = shift;
- my $config = shift;
-
- if (!defined $config) {
- print STDERR "Error: No configuration specified\n";
- return;
- }
-
- return %{$self->{CONFIGS}}->{$config}->{LINK};
-}
-
-sub Libs($)
-{
- my $self = shift;
- my $config = shift;
-
- if (!defined $config) {
- print STDERR "Error: No configuration specified\n";
- return;
- }
-
- return %{$self->{CONFIGS}}->{$config}->{LIBS};
-}
-
-sub UsesTAOIDL ()
-{
- my $self = shift;
-
- return $self->{TAOIDL};
-}
-
-sub Compiler ()
-{
- my $self = shift;
-
- return $self->{COMPILER};
-}
-
-###############################################################################
-
-# Big methods
-
-sub Load ()
-{
- my $self = shift;
- my $config = "Unknown";
-
- $self->{valid} = 0;
-
- my $fh = new FileHandle;
-
- unless ($fh->open ("<" . $self->{FILENAME})) {
- print "Could not open file ", $self->{FILENAME}, ": ", $_;
- return;
- }
-
- while (<$fh>) {
- if (m/^\#.*Project File - Name=\"([^\"]*)\"/) {
- $self->{NAME} = $1;
- }
-
- if (m/^\#.*Format Version (.*)/) {
- $self->{VERSION} = $1;
- }
-
- # Check for configurations
-
- if (m/^\!.*IF \"\$\(CFG\)\" == \".* - (.*)$\"/) {
- $config = $1;
- }
- elsif (m/^\!ENDIF$/) {
- $config = "";
- }
-
- # Check for directories
-
- if (m/\# PROP Output_Dir \"(.*)\"/) {
- %{$self->{CONFIGS}}->{$config}->{OUTPUTDIR} = $1;
- }
- elsif (m/\# PROP Intermediate_Dir \"(.*)\"/) {
- %{$self->{CONFIGS}}->{$config}->{INTERMEDIATEDIR} = $1;
- }
- elsif (m/\# PROP Target_Dir \"(.*)\"/) {
- %{$self->{CONFIGS}}->{$config}->{TARGETDIR} = $1;
- }
-
- # Look at CPP options
-
- if (m/\# ADD BASE CPP(.*)$/ || m/\# ADD CPP(.*)$/) {
- my @flags = split (/ \//, $1);
-
- foreach my $flag (@flags) {
- if ($flag && %{$self->{CONFIGS}}->{$config}->{CPP} !~ m/$flag/) {
- %{$self->{CONFIGS}}->{$config}->{CPP} .= " /$flag";
- }
- }
- }
- elsif (m/\# SUBTRACT CPP(.*)$/ || m/\# SUBTRACT BASE CPP(.*)$/) {
- my @flags = split (/ \//, $1);
-
- foreach my $flag (@flags) {
- if ($flag && %{$self->{CONFIGS}}->{$config}->{CPP} =~ m/$flag/) {
- %{$self->{CONFIGS}}->{$config}->{CPP} =~ s/ \/$flag//g;
- }
- }
- }
-
- # Look at LINK32 options
-
- if (m/\# ADD BASE LINK32(.*)$/ || m/\# ADD LINK32(.*)$/
- || m/\# ADD BASE LIB32(.*)$/ || m/\# ADD LIB32(.*)$/) {
- my @flags = split (/ \//, $1);
-
- foreach my $flag (@flags) {
- my $found = 0;
- my @libs = split (/ /, $flag);
-
- foreach my $lib (@libs) {
- if ($lib =~ m/\.lib$/) {
- if (%{$self->{CONFIGS}}->{$config}->{LIBS} !~ m/\Q$lib\E/) {
- %{$self->{CONFIGS}}->{$config}->{LIBS} .= " $lib";
- }
- $found = 1;
- }
- }
-
- if (!$found && $flag) {
- my $shortflag = $flag;
- if ($flag =~ m/^(.*)\:/) {
- $shortflag = $1;
- }
-
- if (%{$self->{CONFIGS}}->{$config}->{LINK} !~ m/ \/$shortflag/) {
- %{$self->{CONFIGS}}->{$config}->{LINK} .= " /$flag";
- }
- }
- }
- }
- elsif (m/\# SUBTRACT BASE LINK32(.*)$/ || m/\# SUBTRACT LINK32(.*)$/
- || m/\# SUBTRACT BASE LIB32(.*)$/ || m/\# SUBTRACT LIB32(.*)$/) {
- my @flags = split (/ \//, $1);
-
- foreach my $flag (@flags) {
- my $shortflag = $flag;
- if ($flag =~ m/^(.*)\:/) {
- $shortflag = $1;
- }
-
- if ($flag && %{$self->{CONFIGS}}->{$config}->{LINK} =~ m/ (\/$shortflag\:[^ ]*)/) {
- %{$self->{CONFIGS}}->{$config}->{LINK} =~ s/ \Q$1\E//ig;
- }
- }
- }
-
- if (m/^\# Name \".* - (.*)\"/ && defined %{$self->{CONFIGS}}->{"Unknown"}) {
- %{$self->{CONFIGS}}->{$1} = %{$self->{CONFIGS}}->{"Unknown"};
- delete %{$self->{CONFIGS}}->{"Unknown"};
- }
-
- if (m/tao\_idl/ && m/\$\(InputName\)\.idl/ || m/tao\_idl/ && m/\$\(InputPath\)/) {
- $self->{TAOIDL} = 1;
- }
- }
- $fh->close ();
- $self->{valid} = 1;
-}
-
-###############################################################################
-
-# Build functions
-
-sub Build ($)
-{
- my $self = shift;
- my ($config) = @_;
-
- my $command = $self->Compiler () . " " . $self->Filename ()
- . " /USEENV"
- . " /MAKE \"" . $self->Name ()
- . " - " . $config . "\"";
-
- system $command;
-}
-
-sub Clean ($)
-{
- my $self = shift;
- my ($config) = @_;
-
- my $command = $self->Compiler () . " " . $self->Filename ()
- . " /USEENV"
- . " /MAKE \"" . $self->Name ()
- . " - " . $config . "\" /CLEAN";
-
- system $command;
-}
-
-
-1; \ No newline at end of file
diff --git a/bin/PerlACE/MSProject/DSP.pm b/bin/PerlACE/MSProject/DSP.pm
deleted file mode 100644
index b7ca0276a82..00000000000
--- a/bin/PerlACE/MSProject/DSP.pm
+++ /dev/null
@@ -1,28 +0,0 @@
-# $Id$
-
-package PerlACE::MSProject::DSP;
-
-use strict;
-use PerlACE::MSProject;
-
-our @ISA = ("PerlACE::MSProject");
-
-###############################################################################
-
-# Constructor
-
-sub new
-{
- my $proto = shift;
- my $class = ref ($proto) || $proto;
- my $self = $class->SUPER::new (@_);
-
- $self->{COMPILER} = "msdev.com";
-
- bless ($self, $class);
- return $self;
-}
-
-###############################################################################
-
-1; \ No newline at end of file
diff --git a/bin/PerlACE/MSProject/VCP.pm b/bin/PerlACE/MSProject/VCP.pm
deleted file mode 100644
index 8377d22788b..00000000000
--- a/bin/PerlACE/MSProject/VCP.pm
+++ /dev/null
@@ -1,30 +0,0 @@
-# $Id$
-
-package PerlACE::MSProject::VCP;
-
-use strict;
-use PerlACE::MSProject;
-
-our @ISA = ("PerlACE::MSProject");
-
-###############################################################################
-
-# Constructor
-
-sub new
-{
- my $proto = shift;
- my $class = ref ($proto) || $proto;
- my $self = $class->SUPER::new (@_);
-
- $self->{COMPILER} = "evc.com";
-
- bless ($self, $class);
- return $self;
-}
-
-###############################################################################
-
-# Accessors
-
-1; \ No newline at end of file
diff --git a/bin/PerlACE/Process.pm b/bin/PerlACE/Process.pm
deleted file mode 100644
index 52df7aa6c8f..00000000000
--- a/bin/PerlACE/Process.pm
+++ /dev/null
@@ -1,36 +0,0 @@
-# $Id$
-
-package PerlACE::Process;
-
-use strict;
-use English;
-
-$PerlACE::Process::ExeSubDir = './';
-
-### Check for -ExeSubDir commands, store the last one
-my @new_argv = ();
-
-for(my $i = 0; $i <= $#ARGV; ++$i) {
- if ($ARGV[$i] eq '-ExeSubDir') {
- if (defined $ARGV[$i + 1]) {
- $PerlACE::Process::ExeSubDir = $ARGV[++$i].'/';
- }
- else {
- print STDERR "You must pass a directory with ExeSubDir\n";
- exit(1);
- }
- }
- else {
- push @new_argv, $ARGV[$i];
- }
-}
-@ARGV = @new_argv;
-
-if ($OSNAME eq "MSWin32") {
- require PerlACE::Process_Win32;
-}
-else {
- require PerlACE::Process_Unix;
-}
-
-1;
diff --git a/bin/PerlACE/Process_Unix.pm b/bin/PerlACE/Process_Unix.pm
deleted file mode 100644
index a7ca2127a76..00000000000
--- a/bin/PerlACE/Process_Unix.pm
+++ /dev/null
@@ -1,338 +0,0 @@
-# $Id$
-
-package PerlACE::Process;
-
-use strict;
-use POSIX "sys_wait_h";
-use Cwd;
-use File::Basename;
-use Config;
-
-###############################################################################
-
-### Chorus stuff
-
-$PerlACE::Process::chorushostname = "localhost";
-$PerlACE::Process::chorus = 0;
-
-$PerlACE::Process::cwd = getcwd();
-
-for(my $i = 0; $i <= $#ARGV; $i++) {
- if ($ARGV[$i] eq '-chorus') {
- if (defined $ARGV[$i + 1]) {
- $PerlACE::Process::chorus = 1;
- $PerlACE::Process::chorushostname = $ARGV[$1 + 1];
- }
- else {
- print STDERR "The -chorus option requires " .
- "the hostname of the target\n";
- exit(1);
- }
-
- splice(@ARGV, $i, 2);
- # Don't break from the loop just in case there
- # is an accidental duplication of the -chorus option
- }
-}
-
-###############################################################################
-
-### Grab signal names
-
-my @signame;
-
-if (defined $Config{sig_name}) {
- my $i = 0;
- foreach my $name (split (' ', $Config{sig_name})) {
- $signame[$i] = $name;
- $i++;
- }
-}
-else {
- my $i;
- for ($i = 0; $i < 255; ++$i) {
- $signame[$i] = $i;
- }
-}
-
-###############################################################################
-
-### Constructor and Destructor
-
-sub new
-{
- my $proto = shift;
- my $class = ref ($proto) || $proto;
- my $self = {};
-
- $self->{RUNNING} = 0;
- $self->{IGNOREEXESUBDIR} = 0;
- $self->{PROCESS} = undef;
- $self->{EXECUTABLE} = shift;
- $self->{ARGUMENTS} = shift;
-
- bless ($self, $class);
- return $self;
-}
-
-sub DESTROY
-{
- my $self = shift;
-
- if ($self->{RUNNING} == 1) {
- print STDERR "ERROR: <", $self->{EXECUTABLE},
- "> still running upon object destruction\n";
- $self->Kill ();
- }
-}
-
-###############################################################################
-
-### Some Accessors
-
-sub Executable
-{
- my $self = shift;
-
- if (@_ != 0) {
- $self->{EXECUTABLE} = shift;
- }
-
- my $executable = $self->{EXECUTABLE};
-
- if ($self->{IGNOREEXESUBDIR}) {
- return $executable;
- }
-
- my $basename = basename ($executable);
- my $dirname = dirname ($executable). '/';
-
- $executable = $dirname.$PerlACE::Process::ExeSubDir.$basename;
-
- return $executable;
-}
-
-sub Arguments
-{
- my $self = shift;
-
- if (@_ != 0) {
- $self->{ARGUMENTS} = shift;
- }
-
- return $self->{ARGUMENTS};
-}
-
-sub CommandLine ()
-{
- my $self = shift;
-
- my $commandline = $self->Executable ();
-
- if (defined $self->{ARGUMENTS}) {
- $commandline .= ' '.$self->{ARGUMENTS};
- }
-
- if ($PerlACE::Process::chorus == 1) {
- $commandline = "rsh "
- . $PerlACE::Process::chorushostname
- . " arun "
- . $PerlACE::Process::cwd
- . "/"
- . $commandline;
- }
-
- return $commandline;
-}
-
-sub IgnoreExeSubDir
-{
- my $self = shift;
-
- if (@_ != 0) {
- $self->{IGNOREEXESUBDIR} = shift;
- }
-
- return $self->{IGNOREEXESUBDIR};
-}
-
-###############################################################################
-
-# Spawn the process and continue;
-
-sub Spawn ()
-{
- my $self = shift;
-
- if ($self->{RUNNING} == 1) {
- print STDERR "ERROR: Cannot Spawn: <", $self->Executable (),
- "> already running\n";
- return -1;
- }
-
- if (!defined $self->{EXECUTABLE}) {
- print STDERR "ERROR: Cannot Spawn: No executable specified\n";
- return -1;
- }
-
- if ($self->{IGNOREEXESUBDIR} == 0) {
- if (!-f $self->Executable ()) {
- print STDERR "ERROR: Cannot Spawn: <", $self->Executable (),
- "> not found\n";
- return -1;
- }
-
- if (!$PerlACE::Process::chorus && !-x $self->Executable ()) {
- print STDERR "ERROR: Cannot Spawn: <", $self->Executable (),
- "> not executable\n";
- return -1;
- }
- }
-
- FORK:
- {
- if ($self->{PROCESS} = fork) {
- #parent here
- bless $self;
- }
- elsif (defined $self->{PROCESS}) {
- #child here
- exec $self->CommandLine ();
- die "ERROR: exec failed for <" . $self->CommandLine () . ">";
- }
- elsif ($! =~ /No more process/) {
- #EAGAIN, supposedly recoverable fork error
- sleep 5;
- redo FORK;
- }
- else {
- # weird fork error
- print STDERR "ERROR: Can't fork <" . $self->CommandLine () . ">: $!\n";
- }
- }
- $self->{RUNNING} = 1;
-}
-
-sub WaitKill ($)
-{
- my $self = shift;
- my $timeout = shift;
-
- my $status = $self->TimedWait ($timeout);
-
- if ($status == -1) {
- print STDERR "ERROR: $self->{EXECUTABLE} timedout\n";
- $self->Kill ();
- }
-
- $self->{RUNNING} = 0;
-
- return $status;
-}
-
-
-# Do a Spawn and immediately WaitKill
-
-sub SpawnWaitKill ($)
-{
- my $self = shift;
- my $timeout = shift;
-
- if ($self->Spawn () == -1) {
- return -1;
- }
-
- return $self->WaitKill ($timeout);
-}
-
-sub TerminateWaitKill ($)
-{
- my $self = shift;
- my $timeout = shift;
-
- if ($self->{RUNNING}) {
- kill ('TERM', $self->{PROCESS});
- }
-
- return $self->WaitKill ($timeout);
-}
-
-# really only for internal use
-sub check_return_value ($)
-{
- my $self = shift;
- my $rc = shift;
-
- if ($rc == 0) {
- return 0;
- }
- elsif ($rc == 0xff00) {
- print STDERR "ERROR: <", $self->{EXECUTABLE},
- "> failed: $!\n";
- return ($rc >> 8);
- }
- elsif (($rc & 0xff) == 0) {
- $rc >>= 8;
- return $rc;
- }
-
- my $dump = 0;
-
- if ($rc & 0x80) {
- $rc &= ~0x80;
- $dump = 1;
- }
-
- # check for ABRT, KILL or TERM
- if ($rc == 6 || $rc == 9 || $rc == 15) {
- return 0;
- }
-
- print STDERR "ERROR: <", $self->{EXECUTABLE},
- "> exited with ";
-
- print STDERR "coredump from " if ($dump == 1);
-
- print STDERR "signal $rc : ", $signame[$rc], "\n";
-
- return 0;
-}
-
-sub Kill ()
-{
- my $self = shift;
-
- if ($self->{RUNNING}) {
- kill ('KILL', $self->{PROCESS});
- waitpid ($self->{PROCESS}, 0);
- $self->check_return_value ($?);
- }
-
- $self->{RUNNING} = 0;
-}
-
-sub Wait ()
-{
- my $self = shift;
-
- waitpid ($self->{PROCESS}, 0);
-}
-
-sub TimedWait ($)
-{
- my $self = shift;
- my $timeout = shift;
-
- while ($timeout-- != 0) {
- my $pid = waitpid ($self->{PROCESS}, &WNOHANG);
- if ($pid != 0 && $? != -1) {
- return $self->check_return_value ($?);
- }
- sleep 1;
- }
-
- return -1;
-}
-
-1;
-
diff --git a/bin/PerlACE/Process_Win32.pm b/bin/PerlACE/Process_Win32.pm
deleted file mode 100644
index ce9f04762fe..00000000000
--- a/bin/PerlACE/Process_Win32.pm
+++ /dev/null
@@ -1,262 +0,0 @@
-# $Id$
-
-package PerlACE::Process;
-
-use strict;
-use Win32::Process;
-use File::Basename;
-
-###############################################################################
-
-# This is what GetExitCode will return if the process is still running.
-my $STILL_ACTIVE = 259;
-
-###############################################################################
-
-### Constructor and Destructor
-
-sub new
-{
- my $proto = shift;
- my $class = ref ($proto) || $proto;
- my $self = {};
-
- $self->{RUNNING} = 0;
- $self->{IGNOREEXESUBDIR} = 0;
- $self->{PROCESS} = undef;
- $self->{EXECUTABLE} = shift;
- $self->{ARGUMENTS} = shift;
-
- bless ($self, $class);
- return $self;
-}
-
-sub DESTROY
-{
- my $self = shift;
-
- if ($self->{RUNNING} == 1) {
- print STDERR "ERROR: <", $self->{EXECUTABLE},
- "> still running upon object destruction\n";
- $self->Kill ();
- }
-}
-
-###############################################################################
-
-### Some Accessors
-
-sub Executable
-{
- my $self = shift;
-
- if (@_ != 0) {
- $self->{EXECUTABLE} = shift;
- }
-
- my $executable = $self->{EXECUTABLE};
-
- if ($self->{IGNOREEXESUBDIR}) {
- return $executable;
- }
-
- my $basename = basename ($executable);
- my $dirname = dirname ($executable). '/';
-
- $executable = $dirname.$PerlACE::Process::ExeSubDir.$basename.".EXE";
-
- $executable =~ s/\//\\/g; # / <- # color coding issue in devenv
-
- return $executable;
-}
-
-sub Arguments
-{
- my $self = shift;
-
- if (@_ != 0) {
- $self->{ARGUMENTS} = shift;
- }
-
- return $self->{ARGUMENTS};
-}
-
-sub CommandLine ()
-{
- my $self = shift;
-
- my $commandline = $self->Executable ();
-
- if (defined $self->{ARGUMENTS}) {
- $commandline .= ' '.$self->{ARGUMENTS};
- }
-
- return $commandline;
-}
-
-sub IgnoreExeSubDir
-{
- my $self = shift;
-
- if (@_ != 0) {
- $self->{IGNOREEXESUBDIR} = shift;
- }
-
- return $self->{IGNOREEXESUBDIR};
-}
-
-###############################################################################
-
-### Spawning processes
-
-
-# Spawn the process and continue.
-
-sub Spawn ()
-{
- my $self = shift;
-
- if ($self->{RUNNING} == 1) {
- print STDERR "ERROR: Cannot Spawn: <", $self->Executable (),
- "> already running\n";
- return -1;
- }
-
- if (!defined $self->{EXECUTABLE}) {
- print STDERR "ERROR: Cannot Spawn: No executable specified\n";
- return -1;
- }
-
- if ($self->{IGNOREEXESUBDIR} == 0) {
- if (!-f $self->Executable ()) {
- print STDERR "ERROR: Cannot Spawn: <", $self->Executable (),
- "> not found\n";
- return -1;
- }
-
- if (!-x $self->Executable ()) {
- print STDERR "ERROR: Cannot Spawn: <", $self->Executable (),
- "> not executable\n";
- return -1;
- }
- }
-
- Win32::Process::Create ($self->{PROCESS},
- $self->Executable (),
- $self->CommandLine (),
- 0,
- 0,
- '.');
-
- my $status = 0;
-
- Win32::Process::GetExitCode ($self->{PROCESS}, $status);
-
- if ($status != $STILL_ACTIVE) {
- print STDERR "ERROR: Spawn failed for <", $self->CommandLine (), ">\n";
- exit $status;
- }
-
- $self->{RUNNING} = 1;
- return 0;
-}
-
-
-# Wait for the process to exit or kill after a time period
-
-sub WaitKill ($)
-{
- my $self = shift;
- my $timeout = shift;
-
- my $status = $self->TimedWait ($timeout);
-
- if ($status == -1) {
- print STDERR "ERROR: $self->{EXECUTABLE} timedout\n";
- $self->Kill ();
- # Don't need to Wait since we are on Win32
- }
-
- $self->{RUNNING} = 0;
-
- return $status;
-}
-
-
-# Do a Spawn and immediately WaitKill
-
-sub SpawnWaitKill ($)
-{
- my $self = shift;
- my $timeout = shift;
-
- if ($self->Spawn () == -1) {
- return -1;
- }
-
- return $self->WaitKill ($timeout);
-}
-
-
-# Kill the process
-
-sub Kill ()
-{
- my $self = shift;
-
- if ($self->{RUNNING}) {
- Win32::Process::Kill ($self->{PROCESS}, -1);
- }
-
- $self->{RUNNING} = 0;
-}
-
-
-# Terminate the process and wait for it to finish
-
-sub TerminateWaitKill ($)
-{
- my $self = shift;
- my $timeout = shift;
-
- if ($self->{RUNNING}) {
- Win32::Process::Kill ($self->{PROCESS}, 0);
- }
-
- return $self->WaitKill ($timeout);
-}
-
-
-# Wait until a process exits.
-
-sub Wait ()
-{
- my $self = shift;
-
- if ($self->{RUNNING}) {
- Win32::Process::Wait ($self->{PROCESS}, INFINITE);
- }
-}
-
-
-# Wait for a process to exit with a timeout
-
-sub TimedWait ($)
-{
- my $self = shift;
- my $timeout = shift;
-
- if (!$self->{RUNNING}) {
- return 0;
- }
-
- if (Win32::Process::Wait ($self->{PROCESS}, $timeout * 1000) == 0) {
- return -1;
- }
-
- my $status = 0;
- Win32::Process::GetExitCode ($self->{PROCESS}, $status);
- return $status;
-}
-
-1;
diff --git a/bin/PerlACE/Run_Test.pm b/bin/PerlACE/Run_Test.pm
deleted file mode 100644
index 50092a46bd9..00000000000
--- a/bin/PerlACE/Run_Test.pm
+++ /dev/null
@@ -1,94 +0,0 @@
-# $Id$
-
-# This module contains a few miscellanous functions and some
-# startup ARGV processing that is used by all tests.
-
-use PerlACE::Process;
-use PerlACE::ConfigList;
-
-package PerlACE;
-use Cwd;
-
-# Turn on autoflush
-$| = 1;
-
-sub LocalFile ($)
-{
- my $file = shift;
-
- my $newfile = getcwd () . '/' . $file;
-
- if ($^O eq "MSWin32") {
- $newfile =~ s/\//\\/g;
- }
-
- return $newfile;
-}
-
-
-# Returns a unique id, uid for unix, last digit of IP for NT
-sub uniqueid
-{
- if ($^O eq "MSWin32")
- {
- my $uid = 1;
-
- open (IPNUM, "ipconfig|") || die "Can't run ipconfig: $!\n";
-
- while (<IPNUM>)
- {
- if (/Address/)
- {
- $uid = (split (/: (\d+)\.(\d+)\.(\d+)\.(\d+)/))[4];
- }
- }
-
- close IPNUM;
-
- return $uid;
- }
- else
- {
- return getpwnam (getlogin ());
- }
-}
-
-# Waits until a file exists
-sub waitforfile
-{
- local($file) = @_;
- sleep 1 while (!(-e $file && -s $file));
-}
-
-sub waitforfile_timed
-{
- my $file = shift;
- my $maxtime = shift;
- while ($maxtime-- != 0) {
- if (-e $file && -s $file) {
- return 0;
- }
- sleep 1;
- }
- return -1;
-}
-
-sub check_n_cleanup_files
-{
- my $file = shift;
- my @flist = glob ($file);
-
- my $cntr = 0;
- my $nfile = scalar(@flist);
-
- if ($nfile != 0) {
- for (; $cntr < $nfile; $cntr++) {
- print STDERR "File <$flist[$cntr]> exists but should be cleaned up\n";
- }
- unlink @flist;
- }
-}
-
-$sleeptime = 5;
-
-1;
diff --git a/bin/Process.pm b/bin/Process.pm
deleted file mode 100644
index d669325a132..00000000000
--- a/bin/Process.pm
+++ /dev/null
@@ -1,18 +0,0 @@
-# $Id$
-
-$inc = "Process_Unix.pm";
-$DIR_SEPARATOR = "/";
-$EXE_EXT = "";
-$newwindow = "";
-
-if ($^O eq "MSWin32")
-{
- $inc = "Process_Win32.pm";
- $DIR_SEPARATOR = "\\";
- $EXE_EXT = ".exe";
- $newwindow = "no";
-}
-
-require $inc;
-
-1;
diff --git a/bin/Process_Unix.pm b/bin/Process_Unix.pm
deleted file mode 100644
index af1041616ea..00000000000
--- a/bin/Process_Unix.pm
+++ /dev/null
@@ -1,73 +0,0 @@
-# $Id$
-package Process;
-
-use POSIX "sys_wait_h";
-
-sub Create
-{
- my $name = shift;
- my $args = shift;
- my $self = [];
-
- FORK:
- {
- if ($self->[0] = fork)
- {
- #parent here
- bless $self;
- }
- elsif (defined $self->[0])
- {
- #child here
- exec $name." ".$args;
- die "ERROR: exec failed for <$name> <$args>";
- }
- elsif ($! =~ /No more process/)
- {
- #EAGAIN, supposedly recoverable fork error
- sleep 5;
- redo FORK;
- }
- else
- {
- # weird fork error
- print STDERR "ERROR: Can't fork: $!\n";
- }
- }
-}
-
-sub Terminate
-{
- my $self = shift;
- kill ('TERM', $self->[0]);
- # print STDERR "Process_Unix::Kill 'TERM' $self->[0]\n";
-}
-
-sub Kill
-{
- my $self = shift;
- kill ('KILL', $self->[0]);
- # print STDERR "Process_Unix::Kill 'TERM' $self->[0]\n";
-}
-
-sub Wait
-{
- my $self = shift;
- waitpid ($self->[0], 0);
-}
-
-sub TimedWait
-{
- my $self = shift;
- my $maxtime = shift;
- while ($maxtime-- != 0) {
- my $pid = waitpid ($self->[0], &WNOHANG);
- if ($pid != 0 && $? != -1) {
- return $?;
- }
- sleep 1;
- }
- return -1;
-}
-
-1;
diff --git a/bin/Process_Win32.pm b/bin/Process_Win32.pm
deleted file mode 100644
index ac5497d858b..00000000000
--- a/bin/Process_Win32.pm
+++ /dev/null
@@ -1,58 +0,0 @@
-# $Id$
-package Process;
-
-use Win32::Process;
-
-sub Create
-{
- my $name = shift;
- my $args = shift;
- my $self = [];
-
- my $console = 0;
-
- if ($newwindow && $newwindow eq "yes")
- {
- $console = CREATE_NEW_CONSOLE;
- }
- else
- {
- $console = 0;
- }
-
- Win32::Process::Create ($self->[0], $name, $name." ".$args, 0,
- $console, ".");
- bless $self;
-}
-
-sub Kill
-{
- my $self = shift;
- Win32::Process::Kill ($self->[0], -1);
-}
-
-sub Terminate
-{
- my $self = shift;
- Win32::Process::Kill ($self->[0], -1);
-}
-
-sub Wait
-{
- my $self = shift;
- Win32::Process::Wait ($self->[0], INFINITE);
-}
-
-sub TimedWait
-{
- my $self = shift;
- my $maxtime = shift;
- if (Win32::Process::Wait ($self->[0], $maxtime * 1000) == 0) {
- return -1;
- }
- $status = 0;
- Win32::Process::GetExitCode ($self->[0], $status);
- return $status;
-}
-
-1;
diff --git a/bin/Service_Config.perl b/bin/Service_Config.perl
deleted file mode 100755
index 2699881eee7..00000000000
--- a/bin/Service_Config.perl
+++ /dev/null
@@ -1,31 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -pi -S $0 ${1+"$@"}'
- & eval 'exec perl -pi -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# You may want to run the "find" command with this script, which maybe
-# something like this:
-#
-# find . -type f \( -name "*.i" -o -name "*.h" -o -name "*.C" -o -name "*.cc" -o -name "*.c" -o -name "*.cpp" -o -name "*.hpp" -o -name "*.ipp" \) -print | xargs $ACE_ROOT/bin/Service_Config.perl
-
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-s/ACE_Service_Config::run_reactor_event_loop/ACE_Reactor::run_event_loop/g;
-s/ACE_Service_Config::end_reactor_event_loop/ACE_Reactor::end_event_loop/g;
-s/ACE_Service_Config::reactor_event_loop_done/ACE_Reactor::event_loop_done/g;
-s/ACE_Service_Config::run_proactor_event_loop/ACE_Proactor::run_proactor_event_loop/g;
-s/ACE_Service_Config::end_proactor_event_loop/ACE_Proactor::end_proactor_event_loop/g;
-s/ACE_Service_Config::proactor_event_loop_done/ACE_Proactor::event_loop_done/g;
-s/ACE_Service_Config::run_reactorEx_event_loop/ACE_ReactorEx::run_event_loop/g;
-s/ACE_Service_Config::end_reactorEx_event_loop/ACE_ReactorEx::end_event_loop/g;
-s/ACE_Service_Config::reactorEx_event_loop_done/ACE_ReactorEx::event_loop_done/g;
-s/ACE_Service_Config::reactor/ACE_Reactor::instance/g;
-s/ACE_Service_Config::proactor/ACE_Proactor::instance/g;
-s/ACE_Service_Config::reactorEx/ACE_ReactorEx::instance/g;
-s/ACE_Service_Config::svc_rep/ACE_Service_Repository::instance/g;
-s/ACE_Service_Config::thr_mgr/ACE_Thread_Manager::instance/g;
-s/ACE_Service_Config::alloc/ACE_Allocator::instance/g;
-
diff --git a/bin/Uniqueid.pm b/bin/Uniqueid.pm
deleted file mode 100644
index f1367caa6e4..00000000000
--- a/bin/Uniqueid.pm
+++ /dev/null
@@ -1,28 +0,0 @@
-# $Id$
-sub uniqueid
-{
- if ($^O eq "MSWin32")
- {
- my $uid = 1;
-
- open (IPNUM, "ipconfig|") || die "Can't run ipconfig: $!\n";
-
- while (<IPNUM>)
- {
- if (/Address/)
- {
- $uid = (split (/: (\d+)\.(\d+)\.(\d+)\.(\d+)/))[4];
- }
- }
-
- close IPNUM;
-
- return $uid;
- }
- else
- {
- return getpwnam (getlogin ());
- }
-}
-
-1; \ No newline at end of file
diff --git a/bin/ace-install b/bin/ace-install
deleted file mode 100755
index 36d97bbead7..00000000000
--- a/bin/ace-install
+++ /dev/null
@@ -1,506 +0,0 @@
-#!/bin/sh
-
-# $Id$
-
-#####################################################################
-# install_ace: distill the minimal stuff out of the ACE+TAO distribution
-# alias cpio 'xargs -i echo {}'; # just for testing the script
-#
-# according to David Levine <levine@cs.wustl.edu> on 1999/01/09:
-#
-# An even better way would be to only build what you need.
-# These directories are probably a good start:
-#
-# ace
-# apps/gperf/src
-# TAO/tao
-# TAO/TAO_IDL
-# TAO/orbsvcs
-#
-# netsvcs ? - not built in here, probably useful
-#
-#####################################################################
-
-# actions
-unpack=0
-config=0
-compile=0
-install=0
-force=0
-
-# can we do it?
-die=0
-
-
-#####################################################################
-# check for install_ace options
-#####################################################################
-
-while [ $# -gt 0 ]; do
-
- case $1 in
-
- ##########################################
- # help output
-
- -h | --help*)
- echo " "
- echo "`basename $0` [options]"
- echo " "
- echo "options:"
- echo " -h, --help show brief help"
- echo " "
- echo "required options:"
- echo " -r, --aceroot=ACE_ROOT use ACE_ROOT directory for build/install"
- echo " "
- echo "extracting and configuring options:"
- echo " -z, --archive=FILE unpack specified source archive"
- echo " -p, --platform=HEADER,MAKE use HEADER,MAKE as config.h, platform_macros"
- echo " "
- echo "compiling options:"
- echo " -c, --compile=ACE_OPTS compile with make options (e.g. debug=0)"
- echo " "
- echo "installing options:"
- echo " -i, --install=ACE_DEST install into ACE_DEST directory"
- echo " -a, --arch=ACE_ARCH use ACE_ARCH subdirs for arch-dependent files"
- echo " "
- echo "miscellaneous options:"
- echo " -f, --force don't ask for confirmation before proceeding"
- echo " "
- exit 0
- ;;
-
- ##########################################
- # required options
-
- -r)
- shift
- if [ $# -gt 0 ]; then
- ACE_ROOT=$1; export ACE_ROOT
- else
- echo "no ACE_ROOT specified"
- exit 1
- fi
- shift
- ;;
-
- --aceroot*)
- ACE_ROOT=`echo $1 | sed -e 's/^[^=]*=//g'`; export ACE_ROOT
- shift
- ;;
-
- ##########################################
- # extracting and configuring options
-
- -z)
- shift
- if [ $# -gt 0 ]; then
- ACE_ARCHIVE=$1; export ACE_ARCHIVE
- unpack=1
- else
- echo "no archive specified"
- exit 1
- fi
- shift
- ;;
-
- --archive*)
- ACE_ARCHIVE=`echo $1 | sed -e 's/^[^=]*=//g'`; export ACE_ARCHIVE
- unpack=1
- shift
- ;;
-
- -p)
- shift
- if [ $# -gt 0 ]; then
- ACE_HEADER=`echo $1 | cut -f 1 -d ,`; export ACE_HEADER
- ACE_MAKE=`echo $1 | cut -f 2 -d ,`; export ACE_MAKE
- else
- echo "no header,make files specified"
- exit 1
- fi
- config=1
- shift
- ;;
-
- --platform*)
- stuff=`echo $1 | sed -e 's/^[^=]*=//g'`
- ACE_HEADER=`echo $stuff | cut -f 1 -d ,`; export ACE_HEADER
- ACE_MAKE=`echo $stuff | cut -f 2 -d ,`; export ACE_MAKE
- config=1
- shift
- ;;
-
- ##########################################
- # compiling options
-
- -c)
- shift
- if [ $# -gt 0 ]; then
- ACE_OPTS="$1"; export ACE_OPTS
- compile=1
- else
- echo "no compilation options specified (e.g. debug=0)"
- exit 1
- fi
- shift
- ;;
-
- --compile*)
- ACE_OPTS=`echo $1 | sed -e 's/^[^=]*=//g'`; export ACE_OPTS
- compile=1
- shift
- ;;
-
- ##########################################
- # installing options
-
- -i)
- shift
- if [ $# -gt 0 ]; then
- ACE_DEST=$1; export ACE_DEST
- install=1
- else
- echo "no installation target directory specified (e.g. /tools/ace)"
- exit 1
- fi
- shift
- ;;
-
- --install*)
- ACE_DEST=`echo $1 | sed -e 's/^[^=]*=//g'`; export ACE_DEST
- install=1
- shift
- ;;
-
- -a)
- shift
- if [ $# -gt 0 ]; then
- ACE_ARCH=$1; export ACE_ARCH
- else
- echo "no installation target architecture specified"
- exit 1
- fi
- shift
- ;;
-
- --arch*)
- ACE_ARCH=`echo $1 | sed -e 's/^[^=]*=//g'`; export ACE_ARCH
- shift
- ;;
-
- ##########################################
- # miscellaneous options
-
- -f)
- shift
- force=1
- ;;
-
- *)
- # no more options, get on with life
- if [ $# -gt 0 ]; then
- echo "unrecognized option: $1"
- exit 1
- fi
- ;;
- esac
-done
-
-
-#####################################################################
-# sanity checks for required variables
-#####################################################################
-
-if [ $install -ne 0 -a $compile -ne 0 -a $unpack -eq 0 ]; then
- echo "- No actions specified."
- die=1
-fi
-
-if [ $unpack -ne 0 -a $compile -ne 0 -a $config -eq 0 ] \
- || [ $unpack -ne 0 -a $install -ne 0 -a $config -eq 0 ]; then
- echo "- Must set platform config options with --platform option"
- echo " (`basename $0` -h for help) to unpack and compile/install"
- die=1
-fi
-
-if [ -z "$ACE_ROOT" ]; then
- echo "- Must set ACE_ROOT directory before proceeding..."
- echo " The directory may be set with the ACE_ROOT environment"
- echo " variable or the --aceroot option (`basename $0` -h for help)"
- die=1
-fi
-
-if [ $install -eq 1 -a -z "$ACE_ARCH" ]; then
- echo "- Must set target architecture before proceeding..."
- echo " The architecture may be set with the ACE_ARCH environment"
- echo " variable or the --arch option (`basename $0` -h for help)"
- die=1
-fi
-
-if [ $die -ne 0 ]; then
- echo "- terminating `basename $0` script"
- exit 2
-fi
-
-
-#####################################################################
-# announce intentions
-#####################################################################
-
-echo "This script will perform the following actions:"
-
-echo "using ACE_ROOT directory: $ACE_ROOT"
-
-if [ $unpack -ne 0 ]; then
- echo " "
- echo "Extracting:"
- echo "- unpack source archive: $ACE_ARCHIVE"
-fi
-
-if [ $config -ne 0 ]; then
- echo " "
- echo "Configuring:"
- echo "- platform config.h header: $ACE_HEADER"
- echo "- platform makefile macros: $ACE_MAKE"
-fi
-
-if [ $compile -ne 0 ]; then
- echo " "
- echo "Compiling:"
- echo "- ACE/TAO compile options: $ACE_OPTS"
-fi
-
-if [ $install -ne 0 ]; then
- echo " "
- echo "Installing:"
- echo "- install target directory: $ACE_DEST"
- echo "- install target arch: $ACE_ARCH"
-fi
-
-echo ""
-
-
-#####################################################################
-# confirm desire to proceed
-#####################################################################
-
-if [ $force -eq 0 ]; then
- echo " "
- echo "Type 'yes' to proceed, anything else to exit"
-
- read ready
- if [ "$ready" != "yes" ]; then
- echo "Terminating install script. Thank you for playing."
- echo "We have some lovely parting gifts for you. =)"
- exit 1
- fi
-fi
-
-
-#####################################################################
-# extract ACE and TAO
-#####################################################################
-
-if [ $unpack -ne 0 ]; then
-
- echo "Unpacking $ACE_ARCHIVE..."
-
- cd `dirname $ACE_ROOT`
- gzip -dc $ACE_ARCHIVE | tar xvf -
-
-fi
-
-
-#####################################################################
-# configure ACE and TAO
-#####################################################################
-
-if [ $config -ne 0 ]; then
-
- echo "Configuring: $ACE_HEADER,$ACE_MAKE..."
-
- # copy the files if they exist
- test -f $ACE_ROOT/ace/$ACE_HEADER \
- && cp $ACE_ROOT/ace/$ACE_HEADER $ACE_ROOT/ace/config.h
- test -f $ACE_ROOT/include/makeinclude/$ACE_MAKE \
- && cp $ACE_ROOT/include/makeinclude/$ACE_MAKE \
- $ACE_ROOT/include/makeinclude/platform_macros.GNU
-
- # print error message and die if they don't
- if [ ! -f $ACE_ROOT/ace/$ACE_HEADER ]; then
- echo "error: $ACE_HEADER doesn't exist"
- die=1
- fi
- if [ ! -f $ACE_ROOT/include/makeinclude/$ACE_MAKE ]; then
- echo "error: $ACE_MAKE doesn't exist"
- die=1
- fi
-
- if [ $die -ne 0 ]; then
- exit $die
- fi
-
-fi
-
-
-#####################################################################
-# compile ACE and TAO
-#####################################################################
-
-if [ $compile -ne 0 ]; then
-
- echo "Compiling: $ACE_OPTS..."
-
- ##########################################
- # add ACE_ROOT/ace to LD_LIBRARY_PATH so tao_idl can find libACE.so
- if [ "`uname -s`" = "HP-UX" ]; then
- if [ ! -z "$SHLIB_PATH" ]; then
- SHLIB_PATH=$ACE_ROOT/ace:$SHLIB_PATH
- else
- SHLIB_PATH=$ACE_ROOT/ace; export SHLIB_PATH
- fi
- else
- if [ ! -z "$LD_LIBRARY_PATH" ]; then
- LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
- else
- LD_LIBRARY_PATH=$ACE_ROOT/ace; export LD_LIBRARY_PATH
- fi
- fi
-
- ##########################################
- # compile a few select directories
- for d in ace apps/gperf/src TAO/tao TAO/TAO_IDL TAO/orbsvcs TAO/utils; do
- echo --- Building in $d.
- cd "$ACE_ROOT/$d"
- make $ACE_OPTS
- if [ $? -ne 0 ]; then
- echo --- Error during build: $?
- exit $?
- fi
- done
-fi
-
-
-#####################################################################
-# install ACE and TAO
-#####################################################################
-
-if [ $install -ne 0 ]; then
-
- echo "Installing: $ACE_DEST..."
-
- ##########################################
- # determine final target directories
-
- ACE_VER=`head -n 1 $ACE_ROOT/VERSION | sed -e 's/^[^0-9]*//' -e 's/[, ].*//'`
- ACE_DIR="$ACE_DEST/ACE-$ACE_VER"; export ACE_DIR
-
- TAO_VER=`head -n 1 $ACE_ROOT/TAO/VERSION | sed -e 's/^[^0-9]*//' -e 's/[, ].*//'`
- TAO_DIR="$ACE_DEST/TAO-$TAO_VER"; export ACE_DIR
-
- ##########################################
- # create target directories as needed
- echo "creating target directories..."
-
- ace_dirs="$ACE_DIR $ACE_DIR/include $ACE_DIR/man"
- ace_arch_dirs="$ACE_DIR/$ACE_ARCH/include/ace \
- $ACE_DIR/$ACE_ARCH/bin $ACE_DIR/$ACE_ARCH/lib"
- tao_dirs="$TAO_DIR $TAO_DIR/include $TAO_DIR/include/orbsvcs"
- tao_arch_dirs="$TAO_DIR/$ACE_ARCH/include \
- $TAO_DIR/$ACE_ARCH/bin $TAO_DIR/$ACE_ARCH/lib"
-
- for dir in $ace_dirs $ace_arch_dirs $tao_dirs $tao_arch_dirs; do
- if [ ! -d $dir ]; then
- echo $dir
- mkdir -p $dir
- fi
- done
-
- ##########################################
- # copy TAO stuff
-
- cd $ACE_ROOT/TAO
- cp VERSION $TAO_DIR/$ACE_ARCH/TAO-VERSION
-
- # copy TAO includes
- echo "Copying include files..."
- find tao -type f -name "*.idl" -print | cpio -p -d -V $TAO_DIR/include
- find tao -type f -name "*.pidl" -print | cpio -p -d -V $TAO_DIR/include
- find tao -type f -name "*.h" -print | grep -v "^config\.h" | cpio -p -d -V $TAO_DIR/include
- find tao -type f -name "*.i" -print | cpio -p -d -V $TAO_DIR/include
- find tao -type f -name "*.cpp" -print | cpio -p -d -V $TAO_DIR/include
-
- # NOTE: may need all .h, .i and .cpp under TAO/orbsvcs, instead of just TAO/orbsvcs/orbsvcs
- cd orbsvcs
- find orbsvcs -type f -name "*.idl" -print | cpio -p -d -V $TAO_DIR/include
- find orbsvcs -type f -name "*.pidl" -print | cpio -p -d -V $TAO_DIR/include
- find orbsvcs -type f -name "*.h" -print | grep -v "^config\.h" | cpio -p -d -V $TAO_DIR/include
- find orbsvcs -type f -name "*.i" -print | cpio -p -d -V $TAO_DIR/include
- find orbsvcs -type f -name "*.cpp" -print | cpio -p -d -V $TAO_DIR/include
- cd ..
-
- # copy TAO libs
- echo "Copying libraries..."
- for f in `find . -type f -name "lib?*" -print`; do
- echo $f
- cp $f $TAO_DIR/$ACE_ARCH/lib
- done
-
- # copy TAO executables
- echo "Copying executables..."
- ALL_PROGS=`find orbsvcs -type f -perm -5 -print | grep -v ".*lib.*" | grep -v ".\.pl" | grep -v "/tests/" | grep -v "/examples/"`
- ALL_PROGS="`find utils -type f -perm -5 -print` $ALL_PROGS"
- PROGS=`echo $ALL_PROGS | tr " " "\n" | grep -v tests/ | grep -v default.bld`
-
- for f in TAO_IDL/tao_idl $PROGS; do
- echo $f
- cp $f $TAO_DIR/$ACE_ARCH/bin
- done
-
- ##########################################
- # copy ACE stuff
-
- cd $ACE_ROOT
- cp VERSION $ACE_DIR/$ACE_ARCH/ACE-VERSION
-
- # copy ACE includes
- echo "Copying include files..."
- find ace -type f -name "*.h" -print | grep -v "^config\.h" | cpio -p -d -V $ACE_DIR/include
- find ace -type f -name "*.i" -print | cpio -p -d -V $ACE_DIR/include
- find ace -type f -name "*.cpp" -print | cpio -p -d -V $ACE_DIR/include
- cp ace/config.h $ACE_DIR/$ACE_ARCH/include/ace/config.h && rm $ACE_DIR/include/ace/config.h
-
- # copy ACE libs
- echo "Copying libraries..."
- for f in `find . -type f -name "lib?*" -print`; do
- # only copy libs if they're not already in $TAO_DIR/$ACE_ARCH/lib
- maybe_tao_lib=$TAO_DIR/$ACE_ARCH/lib/`basename $f`
- if [ ! -f $maybe_tao_lib ]; then
- echo $f
- cp $f $ACE_DIR/$ACE_ARCH/lib
- fi
- test -f $maybe_tao_lib && echo "library $f already installed with TAO"
- done
-
- # copy ACE executables
- echo "Copying executables..."
- ACE_PROGS=apps/gperf/src/gperf
-
- for f in $ACE_PROGS; do
- echo $f
- cp $f $ACE_DIR/$ACE_ARCH/bin
- done
-
- # copy ACE man pages
- echo "Copying man pages..."
- find man -type f -print | cpio -p -d -V $ACE_DIR
-
-fi # if [ $install -ne 0 ]
-
-
-#####################################################################
-# that's all, folks
-#####################################################################
-
-echo "`basename $0`: done."
diff --git a/bin/ace_components b/bin/ace_components
deleted file mode 100755
index 86f49381ce5..00000000000
--- a/bin/ace_components
+++ /dev/null
@@ -1,85 +0,0 @@
-#! /bin/sh
-# $Id$
-#
-# Encapsulates set/access of a components file, which records set of
-# components that were built in a library. Intended to be used by
-# Makefiles and scripts. See ACE_wrappers/ace/Makefile for an example.
-#
-usage="usage: $0 --ace | --orbsvcs | --tao | --pace \
- [--remove | --set \" <components list> \"]"
-
-####
-#### Make sure that PACE_ROOT, ACE_ROOT, and TAO_ROOT are set.
-####
-if [ ! "$ACE_ROOT" ]; then
- echo $0': your ACE_ROOT environment variable is not set!' 1>&2
- exit -1
-fi
-if [ ! "$TAO_ROOT" ]; then
- TAO_ROOT=$ACE_ROOT/TAO
- export TAO_ROOT
-fi
-if [ ! "$PACE_ROOT" ]; then
- PACE_ROOT=$ACE_ROOT/PACE
- export PACE_ROOT
-fi
-
-####
-#### Process command line arguments.
-####
-if [ $# -ge 1 ]; then
- case $1 in
- --ace) components_file=$ACE_ROOT/ace/ACE_COMPONENTS.list ;;
- --orbsvcs)
- components_file=$TAO_ROOT/orbsvcs/orbsvcs/ORBSVCS_COMPONENTS.list ;;
- --tao) components_file=$TAO_ROOT/tao/TAO_COMPONENTS.list ;;
- --pace) components_file=$PACE_ROOT/PACE_COMPONENTS.list ;;
- *) echo $usage; exit -1 ;;
- esac
- shift
-else
- echo $usage
- exit -1
-fi
-
-set_components=0
-if [ $# -ge 1 ]; then
- if [ $1 = '--set' ]; then
- set_components=1
- shift
- if [ $# -eq 1 ]; then
- components=$1
- shift
- else
- echo $usage
- exit -1
- fi
- elif [ $1 = '--remove' ]; then
- rm -f $components_file
- else
- echo $usage
- exit -1
- fi
-fi
-
-if [ $set_components -eq 1 ]; then
- ####
- #### Update the components file, if it has changed since last set.
- ####
- if [ -f $components_file ]; then
- if echo "$components" | diff - $components_file > /dev/null; then
- :
- else
- echo "$components" > $components_file
- fi
- else
- echo "$components" > $components_file
- fi
-else
- ####
- #### Access the contents of the components file, if it exists.
- ####
- if [ -f $components_file ]; then
- cat $components_file
- fi
-fi
diff --git a/bin/ace_ld b/bin/ace_ld
deleted file mode 100755
index eafe82d36df..00000000000
--- a/bin/ace_ld
+++ /dev/null
@@ -1,224 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# Drop-in replacement for "ld" that supports munching.
-#
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-##
-## Symbols that produce a warning due to size changing.
-## This is a harmless known bug with the version of gcc that comes with
-## Tornado II. Anything in this list will be suppressed unless the -w
-## option is used.
-##
-my(@symbols) = ('dequeue__t17ACE_Message_Queue1Z14ACE_NULL_SYNCHRP17ACE_Message_BlockP14ACE_Time_Value',
- 'activate__t17ACE_Message_Queue1Z14ACE_NULL_SYNCH',
- );
-
-$usage =
- "usage: $0 [-? | [-w] [[-C <compile> --] [-m <munch>] [-n <nm>]] [-f]]] " .
- "<ld command>\n";
-
-#### To avoid quoting problems on the command line, all arguments
-#### between -C and -- are combined into the single compile command.
-$compile_option = 0;
-$ss_change_warn = 0;
-
-####
-#### process command line args
-####
-while ( $#ARGV >= 0 && $ARGV[0] =~ /^-/ ) {
- if ( $ARGV[0] eq '-C' ) {
- $compile_option = 1;
- if ( $ARGV[1] !~ /^[-].+$/ ) {
- $compile = $ARGV[1]; shift;
- } else {
- print STDERR "$0: must provide argument for -c option\n";
- die $usage;
- }
- } elsif ( $ARGV[0] eq '--' ) {
- $compile_option = 0;
- } elsif ( $ARGV[0] eq '-m' ) {
- if ( $ARGV[1] !~ /^[-].+$/ ) {
- $munch = $ARGV[1]; shift;
- } else {
- print STDERR "$0: must provide argument for -m option\n";
- die $usage;
- }
- } elsif ( $ARGV[0] eq '-n' ) {
- if ( $ARGV[1] !~ /^[-].+$/ ) {
- $nm = $ARGV[1]; shift;
- } else {
- print STDERR "$0: must provide argument for -n option\n";
- die $usage;
- }
- } elsif ( $ARGV[0] eq '-w' ) {
- $ss_change_warn = 1;
- } elsif ( $ARGV[0] eq '-?' ) {
- print "$usage";
- exit;
- } else {
- if ($compile_option) {
- $compile .= " $ARGV[0]";
- } else {
- warn "$0: unknown option $ARGV[0]\n";
- die $usage;
- }
- }
- shift;
-}
-
-
-####
-#### Save link command, i.e., current @ARGV, for use below.
-####
-@args = @ARGV;
-
-
-####
-#### Find full path to each library.
-####
-@libDirs = ();
-$current_dir_in_libDirs = 0;
-@libs = ();
-@objs = '';
-
-foreach $arg (@ARGV) {
- if ($arg =~ /^['"]?-L([\S]+)/) {
- ($dir = $1) =~ s%/+$%%; #### trim any trailing slashes
- push (@libDirs, $dir);
- $current_dir_in_libDirs = 1 if $dir eq '.';
- } elsif ($arg =~ /^['"]?-l([\S]+)/) {
- push (@libs, $1);
- } elsif ($arg =~ /\.o$/) {
- push (@objs, $arg);
- }
-}
-
-#### Add . to libDirs if it doesn't already have it.
-push (@libDirs, ".") unless $current_dir_in_libDirs;
-
-foreach $lib (@libs) {
- foreach $libDir (@libDirs) {
- if (-e "$libDir/lib$lib.a") {
- $full_path{$lib} = "$libDir/lib$lib.a";
- last;
- }
- }
-}
-
-
-####
-#### Set up signal handler.
-####
-$done = 0;
-$SIG{'HUP'} = $SIG{'INT'} = $SIG{'QUIT'} = $SIG{'TERM'} = 'cleanup';
-
-
-####
-#### Munch, if $munch is non-null.
-####
-if ($munch) {
- $munch_objs = join (' ', @objs);
- $munch_libs = join (' ', values %full_path);
-
- open (MUNCH, "$nm $munch_objs $munch_libs | $munch |") ||
- &fail ("$0: unable to run \"$nm\" or \"$munch\"\n");
-
- open (CTORDTOR, "> __ctordtor.c") ||
- &fail ("$0: unable to open \"__ctordtor.c\"\n");
-
- while (<MUNCH>) {
- #### Filter out munch output that contains '.cpp'. It results from
- #### .cpp files that have no text or data, e.g., .cpp files that
- #### only contain template instantiations. These lines confuse g++.
- print CTORDTOR unless /\.cpp/;
- }
-
- close CTORDTOR || &fail ("$0: unable to write \"__ctordtor.c\"\n");
- close MUNCH;
-
- system ("$compile -o .obj/__ctordtor.o __ctordtor.c") &&
- &fail ("$0: \"$compile\" failed\n");
-}
-
-
-####
-#### Construct the link command from @args and perform the link.
-####
-if ($munch) {
- #### Insert ctordtor object file before first library in link command.
- $arg_lib = 0;
- foreach $arg (@ARGV) {
- if ($arg =~ /^['"]?-l/) {
- last;
- }
- ++$arg_lib;
- }
- splice (@args, $arg_lib, 0, ".obj/__ctordtor.o");
-}
-
-$link_command = join (' ', @args);
-
-if (open(PP, "$link_command 2>&1 |")) {
- while(<PP>) {
- my($line) = $_;
- if ($ss_change_warn) {
- print $line;
- }
- else {
- my($found) = 0;
- foreach my $symbol (@symbols) {
- if ($line =~ /Warning: size of symbol `$symbol\'/) {
- $found = 1;
- }
- }
- if (!$found) {
- print $line;
- }
- }
- }
- close(PP);
-
- if ($? ne 0) {
- fail ("$0: $link_command failed\n");
- }
-}
-else {
- fail ("$0: $link_command failed\n");
-}
-
-
-$done = 1;
-&cleanup;
-
-
-####
-####
-####
-sub fail {
- local ($message) = @_;
-
- warn $message;
- &cleanup;
-}
-
-
-####
-#### clean up when done or on signal
-####
-sub cleanup {
- unlink "__ctordtor.c", ".obj/__ctordtor.o";
- if ($done) {
- exit 0;
- } else {
- exit 1;
- }
-}
-
-#### EOF
diff --git a/bin/aix_shr b/bin/aix_shr
deleted file mode 100755
index a19ae9fe8d5..00000000000
--- a/bin/aix_shr
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-# $Id$
-# Filter out the duplicate symbol warnings from Visual Age C++
-#
-
-output=`basename $0`.$$.`/bin/date +%Y%m%d%H%M%S`
-usrtmp="/tmp"
-for possible in "$TMPDIR" "$TEMP" "$TMP"; do
- if [ "$possible" != "" ]; then
- if [ -w "$possible" ]; then
- usrtmp="$possible"
- break
- fi
- fi
-done
-
-## Send the output to a temporary file and save the return code
-$@ > "$usrtmp/$output" 2>&1
-status=$?
-
-## Print the output to stdout, but filter duplicate symbol warnings
-/bin/egrep -v '0711-(224|345)' "$usrtmp/$output"
-
-## Clean up the temporary file
-/bin/rm -f "$usrtmp/$output"
-
-## Exit with the return code from the compiler
-exit $status
diff --git a/bin/am_edit b/bin/am_edit
deleted file mode 100755
index 9b0e828b5fa..00000000000
--- a/bin/am_edit
+++ /dev/null
@@ -1,1368 +0,0 @@
-#!/usr/bin/perl
-
-## $Id$
-
-## Expands the specilised TAO tags in Makefile.in to (hopefully) valid
-## make syntax.
-##
-## This script has been modified from the original am_edit script that
-## the KDE development team uses for the KDE. This modified script
-## searches a Makefile.in file for IDL sources (ending in `.idl'), and
-## adds appropriate targets for the C++ sources generated by the TAO
-## IDL compiler. For example, for the IDL file `CosNaming.idl' this script
-## would add all relevant targets for the following files:
-##
-## CosNaming.idl --> CosNamingC.h
-## CosNamingC.i
-## CosNamingC.cpp
-## CosNamingS.h
-## CosNamingS.i
-## CosNamingS.cpp
-##
-## Ossama Othman <ossama@debian.org>
-
-
-# Expands the specilised KDE tags in Makefile.in to (hopefully) valid
-# make syntax.
-# When called without file parameters, we work recursively on all Makefile.in
-# in and below the current subdirectory. When called with file parameters,
-# only those Makefile.in are changed.
-# The currently supported tags are
-#
-# {program}_METASOURCES
-# where you have a choice of two styles
-# {program}_METASOURCES = name1.moc name2.moc ... [\]
-# {program}_METASOURCES = AUTO
-# The second style requires other tags as well.
-#
-# and more new tags TBD!
-#
-# The concept (and base code) for this peogram came from automoc,
-# supplied by the following
-#
-# Matthias Ettrich <ettrich\@kde.org> (The originator)
-# Kalle Dalheimer <kalle\@kde.org> (The original implementator)
-# Harri Porten <porten@tu-harburg.de>
-# Alex Zepeda <garbanzo@hooked.net>
-# David Faure <faure@kde.org>
-# Stephan Kulow <coolo@kde.org>
-#
-# I've puddled around with automoc and produced something different
-# 1999-02-01 John Birch <jb.nz@writeme.com>
-# * Rewritten automoc to cater for more than just moc file expansion
-# Version 0.01 does the same as automoc at this stage.
-# 1999-02-18 jb
-# * We must always write a Makefile.in file out even if we fail
-# because we need the "perl autokmake" in the AUTOMAKE so that a
-# "make" will regenerate the Makefile.in correctly.
-# Reworked moc file checking so that missing includes in cpp
-# will work and includes in cpp when using use_automoc will also
-# work.
-# 1999-02-23 jb
-# * Added POFILE processing and changed the USE_AUTOMOC tag to
-# AUTO instead.
-# 1999-11-07 Ossama Othman <ossama@debian.org>
-# * Modified IDL source file related code to specifically
-# * generated targets for TAO IDL generated sources.
-
-
-use Cwd;
-use File::Find;
-use File::Basename;
-
-# Prototype the functions
-sub initialise ();
-sub processMakefile ($);
-sub updateMakefile ();
-sub restoreMakefile ();
-
-sub removeLine ($$);
-sub appendLines ($);
-sub substituteLine ($$);
-
-sub findMocCandidates ();
-sub pruneMocCandidates ($);
-sub checkMocCandidates ();
-sub addMocRules ();
-
-sub tag_AUTOMAKE ();
-sub tag_META_INCLUDES ();
-sub tag_METASOURCES ();
-sub tag_POFILES ();
-sub tag_DOCFILES ();
-sub tag_LOCALINSTALL();
-sub tag_IDLFILES();
-sub tag_TOPLEVEL();
-sub tag_SUBDIRS();
-sub tag_ICON();
-
-# Some global globals...
-$verbose = 0; # a debug flag
-$thisProg = "$0"; # This programs name
-$topdir = cwd(); # The current directory
-@makefiles = (); # Contains all the files we'll process
-$start = (times)[0]; # some stats for testing - comment out for release
-$version = "v0.2";
-$errorflag = 0;
-$cppExt = "*.cpp *.cc *.cxx *.C *.c++"; # used by grep
-$hExt = "*.h *.H *.hh *.hxx *.h++"; # used by grep
-$progId = "TAO tags expanded automatically by " . basename($thisProg);
-$automkCall = "\n";
-$printname = ""; # used to display the directory the Makefile is in
-$use_final = 1; # create code for --enable-final
-$cleantarget = "clean";
-$locolor_install = 0;
-
-while (defined ($ARGV[0]))
-{
- $_ = shift;
- if (/^--version$/)
- {
- print STDOUT "\n";
- print STDOUT basename($thisProg), " $version\n",
- "This is really free software, unencumbered by the GPL.\n",
- "You can do anything you like with it except sueing me.\n",
- "Copyright 1998 Kalle Dalheimer <kalle\@kde.org>\n",
- "Concept, design and unnecessary questions about perl\n",
- " by Matthias Ettrich <ettrich\@kde.org>\n\n",
- "Making it useful by Stephan Kulow <coolo\@kde.org> and\n",
- "Harri Porten <porten\@kde.org>\n",
- "Updated (Feb-1999), John Birch <jb.nz\@writeme.com>\n\n";
- exit 0;
- }
- elsif (/^--verbose$|^-v$/)
- {
- $verbose = 1; # Oh is there a problem...?
- }
- elsif (/^-p(.+)$|^--path=(.+)$/)
- {
- $thisProg = "$1/".basename($thisProg);
- warn ("$thisProg doesn't exist\n") if (!(-f $thisProg));
- }
- elsif (/^--help$|^-h$/)
- {
- print STDOUT "Usage $thisProg [OPTION] ... [dir/Makefile.in]...\n",
- "\n",
- "Patches dir/Makefile.in generated from automake\n",
- "(where dir can be a full or relative directory name)",
- "\n",
- " -v, --verbose verbosely list files processed\n",
- " -h, --help print this help, then exit\n",
- " --version print version number, then exit\n",
- " -p, --path= use the path to automoc if the path\n",
- " --no-final don't patch for --enable-final\n",
- " called from is not the one to be used\n";
-
- exit 0;
- }
- elsif (/^--no-final$/)
- {
- $use_final = 0;
- $locolor_install = 1;
- }
- else
- {
- # user selects what input files to check
- # add full path if relative path is given
- $_ = cwd()."/".$_ if (! /^\//);
- print "User wants $_\n" if ($verbose);
- push (@makefiles, $_);
- }
-}
-
-# Only scan for files when the user hasn't entered data
-if (!@makefiles)
-{
- print STDOUT "Scanning for Makefile.in\n" if ($verbose);
- find (\&add_makefile, cwd());
- #chdir('$topdir');
-} else {
- print STDOUT "Using user enter input files\n" if ($verbose);
-}
-
-foreach $makefile (@makefiles)
-{
- processMakefile ($makefile);
- last if ($errorflag);
-}
-
-# Just some debug statistics - comment out for release as it uses printf.
-printf STDOUT "Time %.2f CPU sec\n", (times)[0] - $start if ($verbose);
-
-exit $errorflag; # causes make to fail if errorflag is set
-
-#-----------------------------------------------------------------------------
-
-# In conjunction with the "find" call, this builds the list of input files
-sub add_makefile ()
-{
- push (@makefiles, $File::Find::name) if (/Makefile.in$/);
-}
-
-#-----------------------------------------------------------------------------
-
-# Processes a single make file
-# The parameter contains the full path name of the Makefile.in to use
-sub processMakefile ($)
-{
- # some useful globals for the subroutines called here
- local ($makefile) = @_;
- local @headerdirs = ('.');
- local $haveAutomocTag = 0;
- local $MakefileData = "";
-
- local $cxxsuffix = "TAO";
-
- local @programs = (); # lists the names of programs and libraries
- local $program = "";
-
- local %realObjs = (); # lists the objects compiled into $program
- local %sources = (); # lists the sources used for $program
- local %finalObjs = (); # lists the objects compiled when final
- local %idlfiles = (); # lists the idl files used for $program
- local $idl_output = "";# lists all idl generated files for cleantarget
-
- local %depedmocs = ();
-
- local $metasourceTags = 0;
- local $dep_files = "";
- local %target_adds = (); # the targets to add
- local $kdelang = "";
-
- $makefileDir = dirname($makefile);
- chdir ($makefileDir);
- $printname = $makefile;
- $printname =~ s/^\Q$topdir\E\///;
- $makefile = basename($makefile);
-
- print STDOUT "Processing makefile $printname\n" if ($verbose);
-
- # Setup and see if we need to do this.
- return if (!initialise());
-
- tag_AUTOMAKE (); # Allows a "make" to redo the Makefile.in
- tag_META_INCLUDES (); # Supplies directories for src locations
-
- foreach $program (@programs) {
- tag_METASOURCES (); # Sorts out the moc rules
- tag_IDLFILES(); # Sorts out idl rules
- }
-
- if ($idl_output) {
- appendLines ("$cleantarget-idl:\n\t-rm -f $idl_output\n");
- $target_adds{"$cleantarget-am"} .= "$cleantarget-idl ";
- }
-
- if ($MakefileData =~ /\nKDE_LANG\s*=\s*(\S*)\n/) {
- $kdelang = '$(KDE_LANG)'
- } else {
- $kdelang = '';
- }
-
- tag_POFILES (); # language rules for po directory
- tag_DOCFILES (); # language rules for doc directories
- tag_TOPLEVEL (); # language rules for po toplevel
- tag_LOCALINSTALL(); # add $(DESTDIR) before all kde_ dirs
- tag_ICON();
-
- my $tmp = "force-reedit:\n";
- $tmp .= "\t$automkCall\n\tcd \$(top_srcdir) && perl $thisProg $printname\n\n";
- appendLines($tmp);
-
- tag_FINAL() if ($use_final);
-
- my $final_lines = "final:\n\t\$(MAKE) ";
-
- foreach $program (@programs) {
-
- my $lookup = "$program\_OBJECTS.*=[^\n]*";
-
- my $new = "";
-
- my @list = split(/[\034\s]+/, $realObjs{$program});
-
- if ($use_final && @list > 1 && $finalObjs{$program}) {
-
- $new = "\@KDE_USE_FINAL_FALSE\@$program\_OBJECTS = " . $realObjs{$program};
- $new .= "\n\@KDE_USE_FINAL_TRUE\@$program\_OBJECTS = " . $finalObjs{$program};
- $new .= "\n$program\_final\_OBJECTS = " . $finalObjs{$program};
-
- $final_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" ";
-
- } else {
- $new = "$program\_OBJECTS = " . $realObjs{$program};
- }
-
- substituteLine ($lookup, $new);
- }
- appendLines($final_lines . "all-am");
-
- my $lookup = 'DEP_FILES\s*=(.*)\n';
- if ($MakefileData =~ /\n$lookup/) {
- $lines = "DEP_FILES = $dep_files";
- $lines .= " \034";
- $lines .= $1;
- $lines .= "\n";
-
- substituteLine($lookup, $lines);
- }
-
- foreach $add (keys %target_adds) {
- my $lookup = "$add:\s*(.*)";
- if ($MakefileData =~ /\n$lookup\n/) {
- substituteLine($lookup, "$add: " . $target_adds{$add} . $1);
- }
- }
-
- my $cvs_lines = "cvs-clean:\n";
- $cvs_lines .= "\t\$(MAKE) -f \$(top_srcdir)/admin/Makefile.common cvs-clean\n";
- appendLines($cvs_lines);
-
- # Always update the Makefile.in
- updateMakefile ();
- return;
-}
-
-#-----------------------------------------------------------------------------
-
-# Check to see whether we should process this make file.
-# This is where we look for tags that we need to process.
-# A small amount of initialising on the tags is also done here.
-# And of course we open and/or create the needed make files.
-sub initialise ()
-{
- if (! -r "Makefile.am") {
- print STDOUT "found Makefile.in without Makefile.am\n" if ($verbose);
- return;
- }
-
- # Checking for files to process...
- open (FILEIN, $makefile)
- || die "Could not open $makefileDir/$makefile: $!\n";
- # Read the file
- while ( <FILEIN> )
- {
- $MakefileData .= $_;
- }
- close FILEIN;
-
- # Remove the line continuations, but keep them marked
- # Note: we lose the trailing spaces but that's ok.
- $MakefileData =~ s/\\\s*\n/\034/g;
-
- # If we've processed the file before...
- restoreMakefile () if ($MakefileData =~ /$progId/);
-
- # Look for the tags than mean we should process this file.
- $metasourceTags = 0;
- $metasourceTags++ while ($MakefileData =~ /\n[^=#]*METASOURCES\s*=/g);
-
- my $pofileTag = 0;
- $pofileTag++ while ($MakefileData =~ /\nPOFILES\s*=/g);
- if ($pofileTag > 1)
- {
- print STDERR "Error: Only one POFILES tag allowed\n";
- $errorflag = 1;
- }
-
- while ($MakefileData =~ /\n\.SUFFIXES:([^\n]+)\n/g) {
- my @list=split(' ', $1);
- my $extions = " " . $cppExt . " ";
- foreach $ext (@list) {
- if ($extions =~ / \*\Q$ext\E /) {
- $cxxsuffix = $ext;
- $cxxsuffix =~ s/\.//g;
- print STDOUT "will use suffix $cxxsuffix\n" if ($verbose);
- last;
- }
- }
- }
-
- while ($MakefileData =~ /\n(\S*)_OBJECTS\s*=\s*([^(\n]*)\n/g) {
- my $program = $1;
- my $objs = $2; # safe them
- $program =~ s/^am_// if ($program =~ /^am_/);
-
- print STDOUT "found program $program\n" if ($verbose);
- push(@programs, $program);
-
- $realObjs{$program} = $objs;
-
- if ($MakefileData =~ /\n$program\_SOURCES\s*=\s*(.*)\n/) {
- $sources{$program} = $1;
- } else {
- $sources{$program} = "";
- print STDERR "found program with no _SOURCES: $program\n";
- }
- }
-
- my $localTag = 0;
- $localTag++ if ($MakefileData =~ /\ninstall-\S+-local:/);
-
- return (!$errorflag);
-}
-
-#-----------------------------------------------------------------------------
-
-# Gets the list of user defined directories - relative to $srcdir - where
-# header files could be located.
-sub tag_META_INCLUDES ()
-{
- my $lookup = '[^=\n]*META_INCLUDES\s*=\s*(.*)';
- return 1 if ($MakefileData !~ /($lookup)\n/);
- print STDOUT "META_INCLUDE processing <$1>\n" if ($verbose);
-
- my $headerStr = $2;
- removeLine ($lookup, $1);
-
- $headerStr =~ tr/\034/ /;
- my @headerlist = split(' ', $headerStr);
-
- foreach $dir (@headerlist)
- {
- $dir =~ s#\$\(srcdir\)#.#;
- if (! -d $dir)
- {
- print STDERR "Warning: $dir can't be found. ",
- "Must be a relative path to \$(srcdir)\n";
- }
- else
- {
- push (@headerdirs, $dir);
- }
- }
-
- return 0;
-}
-
-#-----------------------------------------------------------------------------
-
-sub tag_FINAL()
-{
- my @final_names = ();
-
- foreach $program (@programs) {
-
- if ($sources{$program} =~ /\(/) {
- print STDERR "found ( in $program\_SOURCES. skipping\n" if ($verbose);
- next;
- }
-
- my @list = split(/[\s\034]+/, $realObjs{$program});
- # we're not making anything faster for one object file
- next if (@list == 1);
-
- my $mocsources = "";
-
- my @progsources = split(/[\s\034]+/, $sources{$program});
- my %sourcelist = ();
-
- foreach $source (@progsources) {
- my $suffix = $source;
- $suffix =~ s/^.*\.([^\.]+)$/$1/;
-
- if (defined($sourcelist{$suffix})) {
- $sourcelist{$suffix} .= " " . $source;
- } else {
- $sourcelist{$suffix} .= $source;
- }
- }
-
- foreach $suffix (keys %sourcelist) {
-
- # See if this file contains c++ code. (ie Just check the files suffix against
- my $suffix_is_cxx = 0;
- foreach $cxx_suffix (split(' ', $cppExt)) {
- $cxx_suffix =~ s/^\*\.//;
- $cxx_suffix = quotemeta($cxx_suffix);
- if ($suffix =~ $cxx_suffix) {
- $suffix_is_cxx = 1;
- last;
- }
- }
-
- my $mocfiles_in = ($suffix eq $cxxsuffix) &&
- defined($depedmocs{$program});
-
- my @sourcelist = split(/[\s\034]+/, $sourcelist{$suffix});
-
- if ((@sourcelist == 1 && !$mocfiles_in) || $suffix_is_cxx != 1 ) {
-
- # we support IDL on our own
- if ($suffix =~ /^idl$/ || $suffix =~ /^h$/) {
- next;
- }
-
- foreach $file (@sourcelist) {
-
- $file =~ s/\Q$suffix\E$//;
-
- $finalObjs{$program} .= $file;
- if ($program =~ /_la$/) {
- $finalObjs{$program} .= "lo ";
- } else {
- $finalObjs{$program} .= "o ";
- }
- }
- next; # suffix
- }
-
- my $source_deps = "";
- foreach $source (@sourcelist) {
- if (-f $source) {
- $source_deps .= "\$(srcdir)/$source ";
- } else {
- $source_deps .= "$source ";
- }
- }
-
- $handling = "$program.all_$suffix.$suffix: \$(srcdir)/Makefile.in " . $source_deps . " ";
-
- if ($mocfiles_in) {
- $handling .= $depedmocs{$program};
- foreach $mocfile (split(' ', $depedmocs{$program})) {
- if ($mocfile =~ m/\.$suffix$/) {
- $mocsources .= " " . $mocfile;
- }
- }
- }
-
- $handling .= "\n";
- $handling .= "\t\@echo 'creating $program.all_$suffix.$suffix ...'; \\\n";
- $handling .= "\trm -f $program.all_$suffix.files $program.all_$suffix.final; \\\n";
- $handling .= "\techo \"#define KDE_USE_FINAL 1\" >> $program.all_$suffix.final; \\\n";
- $handling .= "\tfor file in " . $sourcelist{$suffix} . " $mocsources; do \\\n";
- $handling .= "\t echo \"#include \\\"\$\$file\\\"\" >> $program.all_$suffix.files; \\\n";
- $handling .= "\t test ! -f \$\(srcdir\)/\$\$file || egrep '^#pragma +implementation' \$\(srcdir\)/\$\$file >> $program.all_$suffix.final; \\\n";
- $handling .= "\tdone; \\\n";
- $handling .= "\tcat $program.all_$suffix.final $program.all_$suffix.files > $program.all_$suffix.$suffix; \\\n";
- $handling .= "\trm -f $program.all_$suffix.final $program.all_$suffix.files\n";
-
- appendLines($handling);
-
- push(@final_names, "$program.all_$suffix.$suffix");
- $finalObjs{$program} .= "$program.all_$suffix.";
- if ($program =~ /_la$/) {
- $finalObjs{$program} .= "lo ";
- } else {
- $finalObjs{$program} .= "o ";
- }
- }
- }
-
- if ($use_final && @final_names >= 1) {
- # add clean-final target
- my $lines = "$cleantarget-final:\n";
- $lines .= "\t-rm -f " . join(' ', @final_names) . "\n" if (@final_names);
- appendLines($lines);
- $target_adds{"$cleantarget-am"} .= "$cleantarget-final ";
-
- foreach $finalfile (@final_names) {
- $finalfile =~ s/\.[^.]*$/.P/;
- $dep_files .= " .deps/$finalfile";
- }
- }
-}
-
-# Organises the list of headers that we'll use to produce moc files
-# from.
-sub tag_METASOURCES ()
-{
- local @newObs = (); # here we add to create object files
- local @deped = (); # here we add to create moc files
- local $mocExt = ".moc";
- local %mocFiles = ();
-
- my $line = "";
- my $postEqual = "";
-
- my $lookup;
- my $found = "";
-
- if ($metasourceTags > 1) {
- $lookup = $program . '_METASOURCES\s*=\s*(.*)';
- return 1 if ($MakefileData !~ /\n($lookup)\n/);
- $found = $1;
- } else {
- $lookup = $program . '_METASOURCES\s*=\s*(.*)';
- if ($MakefileData !~ /\n($lookup)\n/) {
- $lookup = 'METASOURCES\s*=\s*(.*)';
- return 1 if ($MakefileData !~ /\n($lookup)\n/);
- $found = $1;
- $metasourceTags = 0; # we can use the general target only once
- } else {
- $found = $1;
- }
- }
- print STDOUT "METASOURCE processing <$found>)\n" if ($verbose);
-
- $postEqual = $found;
- $postEqual =~ s/[^=]*=//;
-
- removeLine ($lookup, $found);
-
- # Always find the header files that could be used to "moc"
- return 1 if (findMocCandidates ());
-
- if ($postEqual =~ /AUTO\s*(\S*)|USE_AUTOMOC\s*(\S*)/)
- {
- print STDERR "$printname: the argument for AUTO|USE_AUTOMOC is obsolete" if ($+);
- $mocExt = ".moc.$cxxsuffix";
- $haveAutomocTag = 1;
- }
- else
- {
- # Not automoc so read the list of files supplied which
- # should be .moc files.
-
- $postEqual =~ tr/\034/ /;
-
- # prune out extra headers - This also checks to make sure that
- # the list is valid.
- pruneMocCandidates ($postEqual);
- }
-
- checkMocCandidates ();
-
- if (@newObs) {
- my $ext = ($program =~ /_la$/) ? ".moc.lo " : ".moc.o ";
- $realObjs{$program} .= "\034" . join ($ext, @newObs) . $ext;
- $depedmocs{$program} = join (".moc.$cxxsuffix " , @newObs) . ".moc.$cxxsuffix";
- foreach $file (@newObs) {
- $dep_files .= " .deps/$file.moc.P";
- }
- }
- if (@deped) {
- $depedmocs{$program} .= " ";
- $depedmocs{$program} .= join('.moc ', @deped) . ".moc";
- $depedmocs{$program} .= " ";
- }
- addMocRules ();
-}
-
-#-----------------------------------------------------------------------------
-
-# Returns 0 if the line was processed - 1 otherwise.
-# Errors are logged in the global $errorflags
-sub tag_AUTOMAKE ()
-{
- my $lookup = '.*cd \$\(top_srcdir\)\s+&&\s+\$\(AUTOMAKE\)(.*)';
- return 1 if ($MakefileData !~ /($lookup)/);
- print STDOUT "AUTOMAKE processing <$1>\n" if ($verbose);
-
- my $newLine = $1."\n\tcd \$(top_srcdir) && perl $thisProg $printname";
- substituteLine ($lookup, $newLine);
- $automkCall = $1;
- return 0;
-}
-
-#-----------------------------------------------------------------------------
-
-sub tag_TOPLEVEL()
-{
- my $lookup = 'TOPLEVEL_LANG\s*=\s*(\S+)';
- return 1 if ($MakefileData !~ /\n$lookup\n/);
- my $lang = $1;
-
- if (tag_SUBDIRS()) {
- print STDERR "Error: TOPLEVEL_LANG without SUBDIRS = \$(AUTODIRS) in $printname\n";
- $errorflag = 1;
- return 1;
- }
-
- my $pofiles = "";
- my @restfiles = ();
- opendir (THISDIR, ".");
- foreach $entry (readdir(THISDIR)) {
- next if (-d $entry);
-
- next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^#.*#$/ || $entry =~ /.gmo$/);
-
- if ($entry =~ /\.po$/) {
- $pofiles .= "$entry ";
- next;
- }
- push(@restfiles, $entry);
- }
- closedir (THISDIR);
-
- print STDOUT "pofiles found = $pofiles\n" if ($verbose);
- handle_POFILES($pofiles, '$(TOPLEVEL_LANG)') if ($pofiles);
-
- if (@restfiles) {
- $target_adds{"install-data-am"} .= "install-nls-files ";
- $lines = "install-nls-files:\n";
- $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$lang\n";
- for $file (@restfiles) {
- $lines .= "\t\$(INSTALL_DATA) \$\(srcdir\)/$file \$(DESTDIR)\$(kde_locale)/$lang/$file\n";
- }
- appendLines($lines);
- }
-
- return 0;
-}
-
-#-----------------------------------------------------------------------------
-
-sub tag_SUBDIRS ()
-{
- if ($MakefileData !~ /\nSUBDIRS\s*=\s*\$\(AUTODIRS\)\s*\n/) {
- return 1;
- }
-
- my $subdirs;
-
- opendir (THISDIR, ".");
- foreach $entry (readdir(THISDIR)) {
- next if ($entry eq "CVS" || $entry =~ /^\./);
- if (-d $entry && -f $entry . "/Makefile.in") {
- $subdirs .= " $entry";
- next;
- }
- }
- closedir (THISDIR);
-
- my $lines = "SUBDIRS =$subdirs\n";
- substituteLine('SUBDIRS\s*=.*', $lines);
- return 0;
-}
-
-sub tag_IDLFILES ()
-{
- my @psources = split(/[\034\s]+/, $sources{$program});
- my $dep_lines = "";
-
- foreach $source (@psources) {
- if ($source =~ m/\.idl$/) {
- print STDERR "adding IDL file $source\n" if ($verbose);
-
- $source =~ s/\.idl$//;
-
- my $sourcedir = '';
- if (-f "$makefileDir/$source.idl") {
- $sourcedir = '$(srcdir)/';
- } else {
- if ($MakefileData =~ /\n$source\_IDLDIR\s*=\s*(\S+)\n/) {#
- $sourcedir = $1;
- $sourcedir .= "/" if ($sourcedir !~ /\/$/);
- }
- }
-
- $dep_lines .= "${source}C.h: $sourcedir${source}.idl\n";
- $dep_lines .= "\t\$(IDL) \$(IDL_FLAGS) ${source}.idl\n";
- $dep_lines .= "${source}S.h: ${source}C.h\n";
- $dep_lines .= "${source}C.i: ${source}C.h\n";
- $dep_lines .= "${source}S.i: ${source}C.h\n";
- $dep_lines .= "${source}C.cpp: ${source}C.h\n";
- $dep_lines .= "${source}S.cpp: ${source}C.h\n";
-
- $idlfiles{$program} .= $source . " ";
-# $realObjs{$program} .= " $source";
- if ($program =~ /_la$/) {
- $realObjs{$program} .= " ${source}C.lo";
- $realObjs{$program} .= " ${source}S.lo";
- } else {
- $realObjs{$program} .= " ${source}C.o";
- $realObjs{$program} .= " ${source}S.o";
- }
- $sources{$program} .= " ${source}C.cpp";
- $sources{$program} .= " ${source}S.cpp";
- $idl_output .= " ${source}C.cpp ${source}S.cpp ${source}C.h ${source}S.h ${source}C.i ${source}S.i";
- }
- }
- if ($dep_lines) {
- appendLines($dep_lines);
- my $lookup = "($program)";
- $lookup =~ s/\_/./g;
- $lookup .= ":(.*)\\\$\\\($program\_OBJECTS\\\)(.*)";
- if ($MakefileData =~ /\n$lookup/) {
-
- my $line = "$1:$2";
- foreach $file (split(' ', $idlfiles{$program})) {
- $line .= "$file.h ";
- }
- $line .= "\$($program\_OBJECTS)$3\n";
- substituteLine($lookup, $line);
- } else {
- print STDERR "no built dependency found $lookup\n";
- }
- }
-
-}
-
-sub tag_ICON()
-{
- my $lookup = 'KDE_ICON\s*=\s*([^\n]*)';
- return 1 if ($MakefileData !~ /\n$lookup/);
- my @appnames = split(" ", $1);
- print STDOUT "KDE_ICON processing <@appnames>\n" if ($verbose);
-
- my @files = ();
- opendir (THISDIR, ".");
- foreach $entry (readdir(THISDIR)) {
- next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/);
- next if (! -f $entry);
- next if ($entry !~ /\.xpm$/ && $entry !~ /\.png/);
- foreach $appname (@appnames) {
- if ($entry =~ /^mini-$appname\./ || $entry =~ /^$appname\./ || $entry =~ /^lo-$appname\./) {
- push(@files, $entry);
- }
- }
- }
- closedir (THISDIR);
- $target_adds{"install-data-am"} .= "install-kde-icons ";
- $target_adds{"uninstall-am"} .= "uninstall-kde-icons ";
-
- $install = "install-kde-icons:\n";
- $uninstall = "uninstall-kde-icons:\n";
-
- my %directories = ();
-
- foreach $file (@files)
- {
- my $newfile = $file;
-
- if ($file =~ /^mini-/) {
- if (!defined $directories{"mini"}) {
- $install .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_icondir)/mini\n";
- $directories{"mini"} = 1;
- }
- $newfile =~ s/^mini-//;
- $install .= "\t\$(INSTALL_DATA) \$(srcdir)/$file \$(DESTDIR)\$(kde_icondir)/mini/$newfile\n";
- $uninstall .= "\t-rm -f \$(DESTDIR)\$(kde_icondir)/mini/$newfile\n";
- next;
- }
-
- if ($file =~ /^lo-/) {
- my $dir;
- if ($locolor_install) {
- $dir = "\$(DESTDIR)\$(kde_icondir)/locolor"
- } else {
- $dir = "\$(DESTDIR)\$(kde_icondir)"
- }
-
- if (!defined $directories{"locolor"}) {
- $install .= "\t\$(mkinstalldirs) $dir\n";
- $directories{"locolor"} = 1;
- }
- $newfile =~ s/^lo-//;
- $install .= "\t\$(INSTALL_DATA) \$(srcdir)/$file $dir/$newfile\n";
- $uninstall .= "\t-rm -f $dir/$newfile\n";
- next;
- }
-
- if (!defined $directories{"icon"}) {
- $install .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_icondir)\n";
- $directories{"icon"} = 1;
- }
- $install .= "\t\$(INSTALL_DATA) \$(srcdir)/$file \$(DESTDIR)\$(kde_icondir)/$newfile\n";
- $uninstall .= "\t-rm -f \$(DESTDIR)\$(kde_icondir)/$newfile\n";
-
- }
-
- appendLines($install . "\n" . $uninstall);
-
-}
-
-sub handle_POFILES($$)
-{
- my @pofiles = split(" ", $_[0]);
- my $lang = $_[1];
-
- # Build rules for creating the gmo files
- my $tmp = "";
- my $allgmofiles = "";
- my $pofileLine = "POFILES =";
- foreach $pofile (@pofiles)
- {
- $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension
- $tmp .= "$1.gmo: $pofile\n";
- $tmp .= "\trm -f $1.gmo; \$(GMSGFMT) -o $1.gmo \$(srcdir)/$pofile\n";
- $allgmofiles .= " $1.gmo";
- $pofileLine .= " $1.po";
- }
- appendLines ($tmp);
- my $lookup = 'POFILES\s*=([^\n]*)';
- if ($MakefileData !~ /\n$lookup/) {
- appendLines("$pofileLine\nGMOFILES =$allgmofiles");
- } else {
- substituteLine ($lookup, "$pofileLine\nGMOFILES =$allgmofiles");
- }
-
- if ($allgmofiles) {
-
- # Add the "clean" rule so that the maintainer-clean does something
- appendLines ("clean-nls:\n\t-rm -f $allgmofiles\n");
-
- $target_adds{"maintainer-clean"} .= "clean-nls ";
-
- $lookup = 'DISTFILES\s*=\s*(.*)';
- if ($MakefileData =~ /\n$lookup\n/) {
- $tmp = "DISTFILES = \$(GMOFILES) \$(POFILES) $1";
- substituteLine ($lookup, $tmp);
- }
- }
-
- $target_adds{"install-data-am"} .= "install-nls-\@USE_NLS\@ ";
-
- $tmp = "install-nls-no:\n";
- $tmp .= "install-nls-yes:\n";
- if ($lang) {
- $tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES\n";
- }
- $tmp .= "\t\@for base in ";
- foreach $pofile (@pofiles)
- {
- $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension
- $tmp .= "$1 ";
- }
-
- $tmp .= "; do \\\n";
- if ($lang) {
- $tmp .= "\t echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n";
- $tmp .= "\t test ! -f \$\$base.gmo || \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n"
- } else {
- $tmp .= "\t echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n";
- $tmp .= "\t \$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES ; \\\n";
- $tmp .= "\t test ! -f \$\$base.gmo || \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n";
- }
- $tmp .= "\tdone\n\n";
- appendLines ($tmp);
-
- $target_adds{"uninstall"} .= "uninstall-nls ";
-
- $tmp = "uninstall-nls:\n";
- foreach $pofile (@pofiles)
- {
- $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension
- if ($lang) {
- $tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/$1.mo\n";
- } else {
- $tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$1/LC_MESSAGES/\$(PACKAGE).mo\n";
- }
- }
- appendLines($tmp);
-
- $target_adds{"all"} .= "all-nls-\@USE_NLS\@ ";
-
- $tmp = "all-nls-no:\n";
- $tmp .= "all-nls-yes: \$(GMOFILES)\n";
-
- appendLines($tmp);
-
- $target_adds{"distdir"} .= "distdir-nls ";
-
- $tmp = "distdir-nls:\$(GMOFILES)\n";
- $tmp .= "\tfor file in \$(POFILES); do \\\n";
- $tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n";
- $tmp .= "\tdone\n";
- $tmp .= "\ttest -z \"\$(GMOFILES)\" || cp \$(GMOFILES) \$(distdir)\n";
-
- appendLines ($tmp);
-
-}
-
-#-----------------------------------------------------------------------------
-
-# Returns 0 if the line was processed - 1 otherwise.
-# Errors are logged in the global $errorflags
-sub tag_POFILES ()
-{
- my $lookup = 'POFILES\s*=([^\n]*)';
- return 1 if ($MakefileData !~ /\n$lookup/);
- print STDOUT "POFILES processing <$1>\n" if ($verbose);
-
- my $tmp = $1;
-
- # make sure these are all gone.
- if ($MakefileData =~ /\n\.po\.gmo:\n/)
- {
- print STDERR "Warning: Found old .po.gmo rules in $printname. New po rules not added\n";
- return 1;
- }
-
- # Either find the pofiles in the directory (AUTO) or use
- # only the specified po files.
- my $pofiles = "";
- if ($tmp =~ /^\s*AUTO\s*$/)
- {
- opendir (THISDIR, ".");
- next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^#.*#$/);
- $pofiles = join(" ", grep(/\.po$/, readdir(THISDIR)));
- closedir (THISDIR);
- print STDOUT "pofiles found = $pofiles\n" if ($verbose);
- }
- else
- {
- $tmp =~ s/\034/ /g;
- $pofiles = $tmp;
- }
- return 1 if (!$pofiles); # Nothing to do
-
- handle_POFILES($pofiles, $kdelang);
-
- return 0;
-}
-
-sub helper_LOCALINSTALL($)
-{
- my $lookup = "\n" . $_[0] . ":";
- if ($MakefileData =~ /($lookup)/) {
-
- my $install = $MakefileData;
- $install =~ s/\n/\035/g;
- $install =~ s/.*\035$_[0]:[^\035]*\035//;
- my $emptyline = 0;
- while (! $emptyline) {
- if ($install =~ /([^\035]*)\035(.*)/) {
- local $line = $1;
- $install = $2;
- if ($line =~ /^\s*$/ || $line !~ /^\t/) {
- $emptyline = 1;
- } else {
- replaceDestDir($line);
- }
- } else {
- $emptyline = 1;
- }
- }
- }
-
-}
-
-sub tag_LOCALINSTALL ()
-{
- helper_LOCALINSTALL('install-exec-local');
- helper_LOCALINSTALL('install-data-local');
- helper_LOCALINSTALL('uninstall-local');
-
- return 0;
-}
-
-sub replaceDestDir($) {
- local $line = $_[0];
-
- if ($line =~ /^\s*\$\(mkinstalldirs\)/ || $line =~ /^\s*\$\(INSTALL\S*\)/
- || $line =~ /^\s*(-?rm.*) \S*$/)
- {
- $line =~ s/^(.*) ([^\s]*)\s*$/$1 \$(DESTDIR)$2/;
- }
-
- if ($line ne $_[0]) {
- $_[0] = quotemeta $_[0];
- substituteLine($_[0], $line);
- }
-}
-#-----------------------------------------------------------------------------
-
-# Returns 0 if the line was processed - 1 otherwise.
-# Errors are logged in the global $errorflags
-sub tag_DOCFILES ()
-{
- my $lookup = 'KDE_DOCS\s*=\s*([^\n]*)';
- return 1 if ($MakefileData !~ /\n$lookup/);
- print STDOUT "KDE_DOCS processing <$1>\n" if ($verbose);
-
- tag_SUBDIRS();
-
- my $tmp = $1;
-
- # Either find the files in the directory (AUTO) or use
- # only the specified po files.
- my $files = "";
- my $appname = $tmp;
- $appname =~ s/^(\S*)\s*.*$/$1/;
- if ($appname =~ /AUTO/) {
- $appname = basename($makefileDir);
- }
-
- if ($tmp !~ / - /)
- {
- opendir (THISDIR, ".");
- foreach $entry (readdir(THISDIR)) {
- next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^#.*#$/);
- next if (! -f $entry);
- $files .= "$entry ";
- }
- closedir (THISDIR);
- print STDOUT "docfiles found = $files\n" if ($verbose);
- }
- else
- {
- $tmp =~ s/\034/ /g;
- $tmp =~ s/^\S*\s*-\s*//;
- $files = $tmp;
- }
- return 1 if (!$files); # Nothing to do
-
- $target_adds{"install-data-am"} .= "install-nls-\@USE_NLS\@ ";
- $target_adds{"uninstall"} .= "uninstall-nls ";
-
- $tmp = "install-nls-no:\n";
- $tmp .= "install-nls-yes:\n";
- $tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n";
- $tmp .= "\t\@for base in $files; do \\\n";
- $tmp .= "\t echo \$(INSTALL_DATA) \$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
- $tmp .= "\t \$(INSTALL_DATA) \$(srcdir)/\$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
- $tmp .= "\tdone\n";
- $tmp .= "\n";
- $tmp .= "uninstall-nls:\n";
- $tmp .= "\tfor base in $files; do \\\n";
- $tmp .= "\t rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
- $tmp .= "\tdone\n\n";
- appendLines ($tmp);
-
- $target_adds{"distdir"} .= "distdir-nls ";
-
- $tmp = "distdir-nls:\n";
- $tmp .= "\tfor file in $files; do \\\n";
- $tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n";
- $tmp .= "\tdone\n";
-
- appendLines ($tmp);
-
- return 0;
-}
-
-sub tag_LOCALINSTALL ()
-{
- helper_LOCALINSTALL('install-exec-local');
- helper_LOCALINSTALL('install-data-local');
- helper_LOCALINSTALL('uninstall-local');
-
- return 0;
-}
-
-#-----------------------------------------------------------------------------
-# Find headers in any of the source directories specified previously, that
-# are candidates for "moc-ing".
-sub findMocCandidates ()
-{
- my @list = ();
- foreach $dir (@headerdirs)
- {
- chdir ($dir);
- @list = `grep -l '^.*Q_OBJECT' $hExt 2> /dev/null`;
- chdir ($makefileDir);
-
- # The assoc array of root of headerfile and header filename
- foreach $hFile (@list)
- {
- chomp ($hFile);
- $hFile =~ /(.*)\.[^\.]*$/; # Find name minus extension
- if ($mocFiles{$1})
- {
- print STDERR "Warning: Multiple header files found for $1\n";
- next; # Use the first one
- }
- $mocFiles{$1} = "$dir\035$hFile"; # Add relative dir
- }
- }
-
- if (!%mocFiles)
- {
- print STDERR "Error: No moc-able header's found but METASOURCES in $printname \n";
- $errorflag = 1;
- return 1;
- }
-
- return 0;
-}
-
-#-----------------------------------------------------------------------------
-
-# The programmer has specified a moc list. Prune out the moc candidates
-# list that we found based on looking at the header files. This generates
-# a warning if the programmer gets the list wrong, but this doesn't have
-# to be fatal here.
-sub pruneMocCandidates ($)
-{
- my %prunedMoc = ();
- local @mocList = split(' ', $_[0]);
-
- foreach $mocname (@mocList)
- {
- $mocname =~ s/\.moc$//;
- if ($mocFiles{$mocname})
- {
- $prunedMoc{$mocname} = $mocFiles{$mocname};
- }
- else
- {
- my $print = $makefileDir;
- $print =~ s/^\Q$topdir\E\\//;
- # They specified a moc file but we can't find a header that
- # will generate this moc file. That's possible fatal!
- print STDERR "Warning: No moc-able header file for $print/$mocname\n";
- }
- }
-
- undef %mocFiles;
- %mocFiles = %prunedMoc;
-}
-
-#-----------------------------------------------------------------------------
-
-# Finds the cpp files (If they exist).
-# The cpp files get appended to the header file separated by \035
-sub checkMocCandidates ()
-{
- my @cppFiles = ();
-
- foreach $mocFile (keys (%mocFiles))
- {
- # Find corresponding c++ files that includes the moc file
- @cppFiles =
- `grep -l "^#include[ ]*.$mocFile\.moc." $cppExt 2> /dev/null`;
-
- if (@cppFiles == 1)
- {
- chomp $cppFiles[0];
- $mocFiles{$mocFile} .= "\035" . $cppFiles[0];
- push(@deped, $mocFile);
- next;
- }
-
- if (@cppFiles == 0)
- {
- push (@newObs, $mocFile); # Produce new object file
- next if ($haveAutomocTag); # This is expected...
- # But this is an error we can deal with - let them know
- print STDERR
- "Warning: No c++ file that includes $mocFile.moc\n";
- next;
- }
- else
- {
- # We can't decide which file to use, so it's fatal. Although as a
- # guess we could use the mocFile.cpp file if it's in the list???
- print STDERR
- "Error: Multiple c++ files that include $mocFile.moc\n";
- print STDERR "\t",join ("\t", @cppFiles),"\n";
- $errorflag = 1;
- delete $mocFiles{$mocFile};
- # Let's continue and see what happens - They have been told!
- }
- }
-}
-
-#-----------------------------------------------------------------------------
-
-# Add the rules for generating moc source from header files
-# For Automoc output *.moc.cpp but normally we'll output *.moc
-# (We must compile *.moc.cpp separately. *.moc files are included
-# in the appropriate *.cpp file by the programmer)
-sub addMocRules ()
-{
- my $cppFile;
- my $hFile;
- my $cleanMoc = "";
-
- foreach $mocFile (keys (%mocFiles))
- {
- undef $cppFile;
- ($dir, $hFile, $cppFile) = split ("\035", $mocFiles{$mocFile}, 3);
- $dir =~ s#^\.#\$(srcdir)#;
- if (defined ($cppFile))
- {
- appendLines ("\$(srcdir)/$cppFile: $mocFile.moc\n$mocFile.moc: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile.moc\n");
- $cleanMoc .= " $mocFile.moc";
- }
- else
- {
- appendLines ("$mocFile$mocExt: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile$mocExt\n");
- $cleanMoc .= " $mocFile$mocExt";
- }
- }
-
- if ($cleanMoc) {
- # Always add dist clean tag
- # Add extra *.moc.cpp files created for USE_AUTOMOC because they
- # aren't included in the normal *.moc clean rules.
- appendLines ("$cleantarget-metasources:\n\t-rm -f $cleanMoc\n");
- $target_adds{"$cleantarget-am"} .= "$cleantarget-metasources ";
- }
- }
-
-#-----------------------------------------------------------------------------
-
-sub updateMakefile ()
-{
- open (FILEOUT, "> $makefile")
- || die "Could not create $makefile: $!\n";
-
- print FILEOUT "\# $progId - " . '$Revision$ ' . "\n";
- $MakefileData =~ s/\034/\\\n/g; # Restore continuation lines
- print FILEOUT $MakefileData;
- close FILEOUT;
-}
-
-#-----------------------------------------------------------------------------
-
-# The given line needs to be removed from the makefile
-# Do this by adding the special "removed line" comment at the line start.
-sub removeLine ($$)
-{
- my ($lookup, $old) = @_;
-
- $old =~ s/\034/\\\n#>- /g; # Fix continuation lines
- $MakefileData =~ s/\n$lookup/\n#>\- $old/;
-}
-
-#-----------------------------------------------------------------------------
-
-# Replaces the old line with the new line
-# old line(s) are retained but tagged as removed. The new line(s) have the
-# "added" tag placed before it.
-sub substituteLine ($$)
-{
- my ($lookup, $new) = @_;
-
- if ($MakefileData =~ /\n($lookup)/) {
- $old = $1;
- $old =~ s/\034/\\\n#>\- /g; # Fix continuation lines
- $new =~ s/\034/\\\n/g;
- my $newCount = 1;
- $newCount++ while ($new =~ /\n/g);
-
- $MakefileData =~ s/\n$lookup/\n#>- $old\n#>\+ $newCount\n$new/;
- } else {
- print STDERR "Warning: substitution of \"$lookup\" in $printname failed\n";
- }
-}
-
-#-----------------------------------------------------------------------------
-
-# Slap new lines on the back of the file.
-sub appendLines ($)
-{
- my ($new) = @_;
-
- $new =~ s/\034/\\\n/g; # Fix continuation lines
- my $newCount = 1;
- $newCount++ while ($new =~ /\n/g);
-
- $MakefileData .= "\n#>\+ $newCount\n$new";
-}
-
-#-----------------------------------------------------------------------------
-
-# Restore the Makefile.in to the state it was before we fiddled with it
-sub restoreMakefile ()
-{
- $MakefileData =~ s/# $progId[^\n\034]*[\n\034]*//g;
- # Restore removed lines
- $MakefileData =~ s/([\n\034])#>\- /$1/g;
- # Remove added lines
- while ($MakefileData =~ /[\n\034]#>\+ ([^\n\034]*)/)
- {
- my $newCount = $1;
- my $removeLines = "";
- while ($newCount--) {
- $removeLines .= "[^\n\034]*([\n\034]|)";
- }
- $MakefileData =~ s/[\n\034]#>\+.*[\n\034]$removeLines/\n/;
- }
-}
-
-#-----------------------------------------------------------------------------
diff --git a/bin/auto_compile b/bin/auto_compile
deleted file mode 100755
index 94e4ef95968..00000000000
--- a/bin/auto_compile
+++ /dev/null
@@ -1,602 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# -*- perl -*-
-# $Id$
-#
-# This script checkouts ACE from CVS, updates the "clone" directory,
-# compiles $ACE_ROOT/ace and $ACE_ROOT/tests and finally runs
-# $ACE_ROOT/tests/run_tests.sh.
-#
-# If it detects any problem it send email.
-#
-# DO NOT invoke this script from your crontab, use
-# auto_compile_wrapper for that.
-#
-# This script requires Perl5.
-#
-# TODO: Modify the script or split it in such a way that the main copy
-# can be obtained either using cvs or downloading the lastest beta
-# from the WWW.
-#
-
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-use File::Basename;
-use File::Copy;
-use FileHandle;
-require POSIX;
-
-# This is the module we will checkout, someday someone could define a
-# smaller module.
-$MODULE='ACE_wrappers';
-
-# This are the sub-directories (in the module) we really compile.
-
-# Find out the command name.
-$CMD = basename($0);
-
-$dont_update = 0;
-# $copy_logs = 1;
-# $LOG_DESTINATION = $ENV{'HOME'}.'/.www-docs/auto_compile';
-
-$copy_logs = 0;
-$LOG_DESTINATION='bugzilla'.'@cs.wustl.edu';
-
-$dont_build_tao = 0;
-$dont_run = 0;
-$makefile_suffix = "";
-$pre_realclean = 0;
-$post_realclean = 0;
-$report_success = 0;
-$debug = 0;
-$sandbox = '';
-$sandbox_timeout = 600;
-$sendreport = 0;
-@BUILD_LIST= ();
-@CONFIGURATION_OPTIONS = ();
-
-@ARGS = ();
-while ($#ARGV >= 0) {
- if (!($ARGV[0] =~ m/^-/)) {
- push @ARGS, $ARGV[0];
- } elsif ($ARGV[0] eq "-single_threaded") {
- print STDERR "$CMD: obsolete option $ARGV[0], "
- ."please use -config instead\n";
- push @CONFIGURATION_OPTIONS, 'ST';
- } elsif ($ARGV[0] eq "-minimum_corba") {
- print STDERR "$CMD: obsolete option $ARGV[0], "
- ."please use -config instead\n";
- push @CONFIGURATION_OPTIONS, 'MINIMUM';
- } elsif ($ARGV[0] eq "-ami") {
- print STDERR "$CMD: obsolete option $ARGV[0], "
- ."please use -config instead\n";
- push @CONFIGURATION_OPTIONS, 'AMI';
- } elsif ($ARGV[0] eq "-smart_proxies") {
- print STDERR "$CMD: obsolete option $ARGV[0], "
- ."please use -config instead\n";
- push @CONFIGURATION_OPTIONS, 'SMART_PROXIES';
- } elsif ($ARGV[0] eq "-static") {
- print STDERR "$CMD: obsolete option $ARGV[0], "
- ."please use -config instead\n";
- push @CONFIGURATION_OPTIONS, 'STATIC';
- } elsif ($ARGV[0] eq "-config") {
- shift;
- push @CONFIGURATION_OPTIONS, $ARGV[0];
- } elsif ($ARGV[0] eq "-build_list") {
- shift;
- @BUILD_LIST = split (/,/, $ARGV[0]);
- } elsif ($ARGV[0] eq "-dont_update") {
- $dont_update = 1;
- } elsif ($ARGV[0] eq "-copy_logs") {
- shift;
- $copy_logs = 1;
- $LOG_DESTINATION = $ARGV[0];
- } elsif ($ARGV[0] eq "-sandbox") {
- shift;
- $sandbox = $ARGV[0];
- } elsif ($ARGV[0] eq "-sandbox_timeout") {
- shift;
- $sandbox_timeout = $ARGV[0];
- } elsif ($ARGV[0] eq "-dont_run") {
- $dont_run = 1;
- } elsif ($ARGV[0] eq "-pre_realclean") {
- $pre_realclean = 1;
- } elsif ($ARGV[0] eq "-post_realclean") {
- $post_realclean = 1;
- } elsif ($ARGV[0] eq "-report_success") {
- $report_success = 1;
- } elsif ($ARGV[0] eq "-debug") {
- $debug = 1;
- } elsif ($ARGV[0] eq "-sendreport") {
- $sendreport = 1;
- } elsif ($ARGV[0] eq "-notao") {
- $dont_build_tao = 1;
- } elsif ($ARGV[0] eq "-make_type") {
- shift;
- $makefile_suffix = $ARGV[0];
- } else {
- print "Ignoring option $ARGV[0]\n";
- }
- shift;
-}
-
-# Extract configuration information from command line.
- # TODO: Some validation and checking should be done here.
-$CHECKOUT = $ARGS[0];
-$BUILD = $ARGS[1];
-$LOGDIR = $ARGS[2];
-$ADMIN = $ARGS[3];
-$MAIL = "mail";
-if ($#ARGS >= 4) {
- $MAIL = $ARGS[4];
-}
-$LOG_URL = "http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/";
-if ($#ARGS >= 5) {
- $LOG_URL = $ARGS[5];
-}
-
-$ENV{'ACE_ROOT'} = $CHECKOUT . '/' . $MODULE . '/build/' . $BUILD;
-$ENV{'TAO_ROOT'} = $CHECKOUT . '/' . $MODULE . '/build/' . $BUILD . '/TAO';
-
-# We obtain our revision to report errors.
-$REVISION='$Revision$ ';
-
-# When an error is found we try to die gracefully and send some email
-# to ADMIN.
-
-$disable_file = $LOGDIR . '/.disable';
-$histfile = $LOGDIR . '/history';
-$LOGBASE = POSIX::strftime("%Y_%m_%d_%H_%M", localtime);
-$LOGFILE = $LOGDIR . '/' . $LOGBASE . '.txt';
-$HOST = `hostname`;
-chop $HOST;
-$LOG_NAME = $HOST . '_' . $BUILD . '/' . $LOGBASE . '.txt';
-$STATUS = "OK";
-
-if ($debug) {
- print "CHECKOUT = $CHECKOUT\n";
- print "BUILD = $BUILD\n";
- print "LOGDIR = $LOGDIR\n";
- print "ADMIN = $ADMIN\n";
- print "MAIL = $MAIL\n";
- print "ACE_ROOT = $ENV{ACE_ROOT}\n";
- print "TAO_ROOT = $ENV{TAO_ROOT}\n";
- print "CONFIGURATION_OPTIONS = ", @CONFIGURATION_OPTIONS, "\n";
-}
-
-push @INC, $CHECKOUT . '/' . $MODULE . '/bin';
-
-require PerlACE::ConfigList;
-
-$config_list = new PerlACE::ConfigList;
-
-$config_list->my_config_list (@CONFIGURATION_OPTIONS);
-
-if ($#BUILD_LIST == -1) {
- if ($dont_build_tao) {
- @BUILD_LIST=('ace', 'netsvcs', 'tests');
- }
- else {
- @BUILD_LIST=('.', 'TAO');
- }
-}
-
-sub mydie {
- my $DEST_DIR = $LOG_DESTINATION.'/'.$HOST.'_'.$BUILD;
- mkdir $DEST_DIR,0755 if (!-d $DEST_DIR);
- if (open(STATUS, '>'.$DEST_DIR.'/status.txt')) {
- print STATUS "SCOREBOARD_STATUS: Inactive\n";
- close STATUS;
- }
- unlink $disable_file;
- die $_ . "\n";
-}
-
-@RUN_LIST = ();
-
-if ($debug) {
-
- @BUILD_LIST = ('ace');
- @RUN_LIST = ('TAO/tests/OctetSeq/run_test.pl');
- $ADMIN = $ENV{'LOGNAME'};
-
-} else {
- $config_list->load ($CHECKOUT . '/' . $MODULE . '/' . 'build/' . $BUILD . '/bin/auto_run_tests.lst');
-
- @RUN_LIST = $config_list->valid_entries ();
-}
-
-sub mail_logs {
- open (MAIL, "|".$MAIL.' -s AUTO_COMPILE_LOG='.$LOG_NAME.' '.$LOG_DESTINATION)
- || mydie "Cannot open mail pipe for: $LOG_NAME\n";
-
- print MAIL 'This is the log for: ', "\n";
- print MAIL $CMD, ' [', $REVISION, "] for $HOST/$BUILD\n";
-
- print MAIL "\n================================================================\n";
-
- if (open (THELOG, "$LOGFILE"))
- {
- while (<THELOG>) {
- print MAIL $_;
- }
- close (THELOG);
- }
- close (MAIL); # Ignore errors....
-}
-
-sub copy_logs {
- local $DEST_DIR = $LOG_DESTINATION.'/'.$HOST.'_'.$BUILD;
- mkdir $DEST_DIR,0755 if (!-d $DEST_DIR);
-
- copy($LOGFILE, $DEST_DIR.'/'.$LOGBASE.'.txt');
-
- local $MAKE_PRETTY="$CHECKOUT/$MODULE/bin/make_pretty.pl";
- system ("perl $MAKE_PRETTY -b $LOGFILE >$DEST_DIR/$LOGBASE"."_brief.html");
- system ("perl $MAKE_PRETTY $LOGFILE >$DEST_DIR/$LOGBASE".".html");
-
- chmod 0644, $DEST_DIR.'/'.$LOGBASE.'.txt'
- , $DEST_DIR.'/'.$LOGBASE.'_brief.html'
- , $DEST_DIR.'/'.$LOGBASE.'.html' ;
-}
-
-sub report_errors {
-
- # First clear the lock, so the next execution works...
- unlink $disable_file; # Ignore errors!
-
- if ($sendreport) {
- # Now send a summary of the errors to the ADMIN account, if there are any.
-
- if ($#_ >= 0) {
- local $to = $ADMIN;
-
- open (MAIL, "|".$MAIL.' -s "[AUTO_COMPILE] '.$HOST.' '.$BUILD.'" '.$to)
- || mydie "Cannot open mail pipe for: $_\n";
-
- print MAIL 'The following message is brought to you by: ', "\n";
- print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $HOST\n\n";
-
- print MAIL "\nPlease check the following log for more info:\n\n";
- print MAIL $LOG_URL, '?', $HOST, '_', $BUILD, "\n\n";
-
- local $m;
- foreach $m (@_) {
- print MAIL $m, "\n";
- }
- close (MAIL); # Ignore errors....
- }
- }
-
- # Now send the complete log to bugzilla...
- if ($copy_logs) {
- copy_logs ();
- } else {
- mail_logs ();
- }
-}
-
-### MAIN FUNCTION
-
-if (-f $disable_file) {
- print 'The following message is brought to you by: ', "\n";
- print $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
-
- print "DISABLED\n";
-
- exit 0;
-}
-
-open (DISABLE, '>' . $disable_file)
- || die "cannot open disable file <$disable_file>\n";
-print DISABLE "auto_compile <$date> is running\n";
-close (DISABLE)
- || die "cannot close disable file";
-
-open(HIST, '>>' . $histfile)
- # Do not use 'mydie' to report the problem, it tries to remove the
- # disable file
- || mydie "cannot open history file \"$histfile\"\n";
-
-$date = localtime;
-
-print HIST $CMD, ': running at ', $date, ' ';
-
-open(LOG, '>' . $LOGFILE)
- || mydie "cannot open log file";
-
-LOG->autoflush ();
-
-# The following lines are useful when debugging the script or wrapper.
-# print LOG $CHECKOUT, " ", $BUILD, " ", $LOGDIR, " ", $ADMIN, "\n";
-#while (($key,$value) = each %ENV) {
-# print LOG $key, " = ", $value, "\n";
-#}
-
-print LOG "#################### CVS\n";
-my $DEST_DIR = $LOG_DESTINATION.'/'.$HOST.'_'.$BUILD;
-mkdir $DEST_DIR,0755 if !-d $DEST_DIR;
-if (open(STATUS, '>'.$DEST_DIR.'/status.txt')) {
- print STATUS "SCOREBOARD_STATUS: CVS\n";
- close STATUS;
-}
-
-chdir($CHECKOUT)
- || mydie "Cannot chdir to $CHECKOUT";
-
-if ($dont_update == 0) {
- $date = localtime;
- print LOG "$CMD: starting checkout at ", $date, "\n";
- open(CVS, "cvs -q checkout -P $MODULE 2>&1 |")
- || mydie "cannot start checkout of $MODULE";
-
- $conflicts = 0;
- while (<CVS>) {
- if (m/^C /) {
- $conflicts = 1;
- }
- print LOG $_;
- }
- close(CVS)
- || mydie "error while checking out $MODULE";
- $date = localtime;
- print LOG "$CMD: checkout finished at ", $date, "\n";
-
- if ($conflicts != 0) {
- mydie "conflicts on checkout";
- }
-}
-
-chdir($MODULE)
- || mydie "cannot chdir to $MODULE";
-
-$date = localtime;
-print LOG "$CMD: starting clone at ", $date, "\n";
-open(CLONE, "perl bin/create_ace_build -a -v $BUILD 2>&1 |")
- || mydie "cannot clone directory";
-while(<CLONE>) {
- print LOG $_;
-}
-close(CLONE)
- || mydie "error while cloning ACE_ROOT";
-$date = localtime;
-print LOG "$CMD: clone finished at ", $date, "\n";
-
-chdir('build/' . $BUILD)
- || mydie "cannot chdir to $BUILD";
-
-@failures = ();
-
-if ($makefile_suffix ne "") {
- $MAKEFLAGS = "-f Makefile.$makefile_suffix";
-}
-
-print LOG "#################### Compiler\n";
-if (open(STATUS, '>'.$DEST_DIR.'/status.txt')) {
- print STATUS "SCOREBOARD_STATUS: Compile\n";
- close STATUS;
-}
-
-if ($pre_realclean) {
- foreach $i (@BUILD_LIST) {
- $date = localtime;
- print LOG "$CMD: =============================================\n";
- print LOG "$CMD: make realclean in $i started at ", $date, "\n";
- open(MAKE, "make -k $MAKEFLAGS -C $i realclean 2>&1 |")
- || mydie "cannot start make in $i";
-
- while (<MAKE>) {
- # Ignore errors....
- }
- if (close(MAKE) == 0) {
- push @failures, "errors while cleaning $i";
- }
- $date = localtime;
- print LOG "$CMD: make realclean in $i finished at ", $date, "\n";
- print LOG "$CMD: =============================================\n\n";
- }
-}
-
-$MAKEFLAGS .= "";
-foreach $i (@BUILD_LIST) {
- $date = localtime;
- print LOG "$CMD: =============================================\n";
- print LOG "$CMD: make for $i started at ", $date, "\n";
- open(MAKE, "make -k $MAKEFLAGS -C $i 2>&1 |")
- || mydie "cannot start make for $i";
-
- local $current_dir = $i;
- local $last_error = "";
- local $this_error = 0;
- local $this_warning = 0;
- while (<MAKE>) {
- chop;
- $this_error = $this_warning = 0;
- if ($^O eq 'hpux'
- && m/^Warning:[ \t]+[0-9]+ future errors were detected/) {
- next;
- }
- print LOG $_, "\n";
-
- if (m/^make(\[[0-9]+\])?: Entering directory /) {
- s/^make(\[[0-9]+\])?: Entering directory //;
- s%^$ENV{'ACE_ROOT'}/%%;
- $current_dir = $_;
- }
- if (m/error:/i || m/error /i
- || m/^make(\[[0-9]+\])?: \*\*\*/) {
- $this_error = 1;
- }
- if ($^O eq 'aix'
- && m/\d+-\d+ \([SI]\)/) {
- $this_error = 1;
- }
- if ($this_error) {
- if ($last_error ne $current_dir
- || STATUS eq "COMPILATION WARNING") {
- $STATUS = "COMPILATION ERROR";
- push @failures, "Error while compiling in $current_dir \n";
- $last_error = $current_dir;
- }
- }
- if (m/warning:/i
- || m/warning /i
- || m/Info: /i) {
- $this_warning = 1;
- if ($^O eq 'aix'
- && m/^ld: \d+-\d+ WARNING: Duplicate symbol: .*ACE.*/) {
- $this_warning = 0;
- }
- }
- if ($^O eq 'aix'
- && m/\d+-\d+ \(W\)/) {
- $this_warning = 1;
- }
- if ($this_warning) {
- if ($last_error ne $current_dir) {
- if ($STATUS eq "OK") {
- $STATUS = "COMPILATION WARNING";
- }
- push @failures, "Warning while compiling in $current_dir\n";
- $last_error = $current_dir;
- }
- }
- }
- if (close(MAKE) == 0) {
- push @failures, "errors while running make in $i";
- }
- $date = localtime;
- print LOG "$CMD: make for $i finished at ", $date, "\n";
- print LOG "$CMD: =============================================\n\n";
-}
-
-print LOG "#################### Tests\n";
-if (open(STATUS, '>'.$DEST_DIR.'/status.txt')) {
- print STATUS "SCOREBOARD_STATUS: Tests\n";
- close STATUS;
-}
-
-if ($dont_run == 0) {
- my $config_params;
- if ($#CONFIGURATION_OPTIONS != -1) {
- $config_params = ' -Config ';
- }
- $config_params .= join ' -Config ', @CONFIGURATION_OPTIONS;
-
- foreach my $i (@RUN_LIST) {
-
- local $directory = '.';
- local $program = $i;
-
- if ($i =~ /(.*)\/([^\/]*)$/) {
- $directory = $1;
- $program = $2;
- }
-
- $date = localtime;
- print LOG "\n\n$CMD: ================ $date ================\n";
- print LOG "auto_run_tests: $i\n";
- local $subdir =
- $CHECKOUT .'/'. $MODULE .'/build/'. $BUILD .'/'. $directory;
- chdir ($subdir)
- || mydie "cannot chdir to $subdir";
-
- $run_error = 0;
- my $prefix = '';
- if ($sandbox ne "") {
- $prefix = $sandbox.' '.$sandbox_timeout.' ';
- }
- if (open(RUN, $prefix."perl $program $config_params 2>&1 |") == 0) {
- push @failures, "cannot run $program in $directory";
- next;
- }
- while (<RUN>) {
- print LOG $_;
- if (m/Error/
- || m/ERROR/
- || m/FAILED/
- || m/EXCEPTION/
- || m/pure virtual /i) {
- if ($STATUS eq "OK") {
- $STATUS = "RUNTIME ERROR";
- }
- $run_error = 1;
- }
- }
- if (close(RUN) == 0) {
- if ($STATUS eq "OK") {
- $STATUS = "RUNTIME ERROR";
- }
- print LOG "ERROR, non-zero status returned by test script\n";
- push @failures, "Error when closing pipe for $program in $directory";
- next;
- }
- $date = localtime;
- print LOG "$CMD: $program finished ", $date, "\n";
-
- if ($run_error != 0) {
- push @failures,
- "errors detected while running $program in $directory";
- }
- }
-}
-
-if ($post_realclean) {
- foreach $i (@BUILD_LIST) {
- $date = localtime;
- print LOG "$CMD: =============================================\n";
- print LOG "$CMD: make realclean in $i started at ", $date, "\n";
- open(MAKE, "make -k $MAKEFLAGS -C $i realclean 2>&1 |");
-
- while (<MAKE>) {
- # Ignore errors....
- }
- if (close(MAKE) == 0) {
- push @failures, "errors while cleaning $i";
- }
- $date = localtime;
- print LOG "$CMD: make realclean in $i finished at ", $date, "\n";
- print LOG "$CMD: =============================================\n\n";
- }
-}
-
-print LOG "#################### Config\n";
-
-chdir($CHECKOUT . "/" . $MODULE . "/build/" . $BUILD)
- || mydie "Cannot chdir to $CHECKOUT/$MODULE/build/$BUILD";
-
-open (CONFIG, "perl bin/nightlybuilds/print_config.pl $CHECKOUT/$MODULE/build/$BUILD 2>&1 |")
- || mydie "Cannot run print_config.pl script";
-while (<CONFIG>) {
- print LOG $_;
-}
-close (CONFIG)
- || mydie "Error while running print_config.pl script";
-
-report_errors @failures;
-
-print LOG "#################### End\n";
-if (open(STATUS, '>'.$DEST_DIR.'/status.txt')) {
- print STATUS "SCOREBOARD_STATUS: Inactive\n";
- close STATUS;
-}
-
-close(LOG)
- || mydie "cannot close LOGFILE";
-
-print HIST "$STATUS\n";
-close(HIST)
- || mydie "cannot close history file";
-
-unlink $disable_file
- || die "cannot unlink disable file";
-
-if ($report_success && $STATUS eq "OK") {
- report_errors "Congratulations: No errors or warnings detected\n";
-}
-
-exit 0;
diff --git a/bin/auto_compile_wrapper b/bin/auto_compile_wrapper
deleted file mode 100755
index f99c8df01a7..00000000000
--- a/bin/auto_compile_wrapper
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-#
-# Usually cron setups a really miserable enviroment, this script
-# serves two purposes:
-# 1. Setup a good enviroment for auto_compile.
-# 2. Invoke auto_compile with the proper arguments for each site.
-#
-# The idea is to modify this script on a per-site basis and leave
-# auto_compile unmodified.
-#
-
-# Setup a proper path, remember that cvs, GNU make, perl5 and your
-# compiler must be there.
-PATH=.:$HOME/bin:/pkg/gnu/bin:/opt/SUNWspro/bin:$PATH
-export PATH
-
-# Obvious enough.
-CVSROOT=/project/cvs-repository
-export CVSROOT
-
-# It could be a good idea to set CVSREAD this will make the staging
-# area read-only, but our staging areas are public.
-# CVSREAD=Y
-# export CVSREAD
-
-# Here we define the cvs working copy for our staging area.
-CHECKOUT=$HOME/head
-
-# In some sites the building directory differs from the cvs working
-# copy. The directory is updated running
-# $ACE_ROOT/bin/create_ace_build; but it must be setup manually the
-# first time.
-# TODO: Arrange for automatic creation of platform_macros.GNU &
-# config.h.
-BUILD=SUNCC
-
-# Here is where we store auto_compile output and keep a history of
-# each run.
-LOGDIR=$HOME/head/ACE_wrappers/build/$BUILD/auto_compile
-
-# Who do we send email when compilation (or anything else) fails.
-ADMIN=PUT_YOUR_ADDRESS_HERE ; echo "You must edit this file" ; exit 0
-
-# You must select a mail tool that can understand the -s option such
-# as:
-#
-# /usr/bin/mailx Solaris
-# /usr/bin/mailx HP-UX
-# /usr/sbin/mailx IRIX
-# /bin/mail Linux
-
-exec /pkg/gnu/bin/perl $CHECKOUT/ACE_wrappers/bin/auto_compile \
- $CHECKOUT $BUILD $LOGDIR $ADMIN /usr/bin/mailx
-
diff --git a/bin/auto_ptr.perl b/bin/auto_ptr.perl
deleted file mode 100755
index ca75bb8b4c1..00000000000
--- a/bin/auto_ptr.perl
+++ /dev/null
@@ -1,16 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -pi -S $0 ${1+"$@"}'
- & eval 'exec perl -pi -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# You may want to run the "find" command with this script, which maybe
-# something like this:
-#
-# find . -type f \( -name "*.i" -o -name "*.h" -o -name "*.C" -o -name "*.cc" -o -name "*.c" -o -name "*.cpp" -o -name "*.hpp" -o -name "*.ipp" \) -print | xargs $ACE_ROOT/bin/auto_ptr.perl
-
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-s/__TEXT/ACE_TEXT/g;
diff --git a/bin/auto_run_tests.lst b/bin/auto_run_tests.lst
deleted file mode 100644
index 0a21dde400e..00000000000
--- a/bin/auto_run_tests.lst
+++ /dev/null
@@ -1,181 +0,0 @@
-# $Id$
-#
-# This is the list of run_test.pl's that need to be run by
-# auto_run_tests.pl.
-# Each line has its own test, and a test can be followed by a
-# list of configurations it does _not_ run on.
-#
-# Example: TAO\examples\foo\run_test.pl: !MINIMUM !ST
-
-tests/run_test.pl
-
-TAO/tests/Param_Test/run_test.pl: !MINIMUM
-TAO/tests/Param_Test/run_test_dii.pl: !MINIMUM
-TAO/performance-tests/Cubit/TAO/IDL_Cubit/run_test.pl: !MINIMUM !ST
-TAO/performance-tests/Cubit/TAO/IDL_Cubit/run_test_lite.pl: !MINIMUM !ST !STATIC
-TAO/performance-tests/Cubit/TAO/MT_Cubit/run_test.pl: !ST
-
-TAO/performance-tests/Single_Threaded_Latency/run_test.pl
-TAO/performance-tests/Thread_Pool_Latency/run_test.pl: !ST
-TAO/performance-tests/Thread_Per_Connection_Latency/run_test.pl: !ST
-TAO/performance-tests/AMI_Latency/run_test.pl: !MINIMUM !ST
-TAO/performance-tests/DSI_Latency/run_test.pl: !MINIMUM
-TAO/performance-tests/DII_Latency/run_test.pl: !MINIMUM
-TAO/performance-tests/Deferred_Latency/run_test.pl: !MINIMUM
-
-TAO/performance-tests/Throughput/run_test.pl
-
-TAO/performance-tests/POA/Object_Creation_And_Registration/run_test.pl
-TAO/performance-tests/RTCorba/Oneways/Reliable/run_test.pl: !MINIMUM
-TAO/tests/AMI/run_test.pl: !MINIMUM
-TAO/tests/AMI_Timeouts/run_test.pl: !MINIMUM !ST
-
-TAO/tests/OctetSeq/run_test.pl
-TAO/tests/OctetSeq/run_test1.pl: !STATIC
-TAO/tests/OctetSeq/run_test2.pl: !STATIC
-TAO/tests/BiDirectional/run_test.pl: !MINIMUM
-TAO/tests/BiDirectional_NestedUpcall/run_test.pl: !MINIMUM !STATIC
-TAO/tests/Leader_Followers/run_test.pl: !ST
-TAO/tests/Leader_Followers/run_test_mt.pl: !ST
-TAO/tests/Multiple_Inheritance/run_test.pl
-
-TAO/tests/RTCORBA/Banded_Connections/run_test.pl: !MINIMUM !ST !Linux
-TAO/tests/RTCORBA/Client_Propagated/run_test.pl: !MINIMUM !ST !Linux
-TAO/tests/RTCORBA/Client_Protocol/run_test.pl: !MINIMUM !ST
-TAO/tests/RTCORBA/Collocation/run_test.pl: !MINIMUM !ST !Linux
-TAO/tests/RTCORBA/Destroy_Thread_Pool/run_test.pl: !MINIMUM !ST
-TAO/tests/RTCORBA/Explicit_Binding/run_test.pl: !MINIMUM !ST
-TAO/tests/RTCORBA/Linear_Priority/run_test.pl: !MINIMUM !ST !Linux
-TAO/tests/RTCORBA/MT_Client_Protocol_Priority/run_test.pl: !MINIMUM !ST !Linux
-TAO/tests/RTCORBA/ORB_init/run_test.pl: !MINIMUM
-TAO/tests/RTCORBA/Persistent_IOR/run_test.pl: !MINIMUM !ST
-TAO/tests/RTCORBA/Policy_Combinations/run_test.pl: !MINIMUM !ST !Linux
-TAO/tests/RTCORBA/Private_Connection/run_test.pl: !MINIMUM !ST
-TAO/tests/RTCORBA/RTMutex/run_test.pl: !MINIMUM !ST
-TAO/tests/RTCORBA/Server_Declared/run_test.pl: !MINIMUM !ST !Linux
-TAO/tests/RTCORBA/Server_Protocol/run_test.pl: !MINIMUM
-TAO/tests/RTCORBA/Thread_Pool/run_test.pl: !MINIMUM !ST !Linux
-
-TAO/tests/Hello/run_test.pl
-TAO/tests/Cache_Growth_Test/run_test.pl
-TAO/tests/Muxing/run_test.pl: !ST
-TAO/tests/MT_Client/run_test.pl: !ST
-TAO/tests/File_IO/run_test.pl: !ST !MINIMUM
-TAO/tests/MT_Server/run_test.pl: !ST
-# DISABLED TAO/tests/Client_Leaks/run_test.pl: !ST !Tru64
-TAO/tests/Server_Leaks/run_test.pl
-TAO/tests/Faults/run_test.pl: !MINIMUM
-TAO/tests/Crashed_Callback/run_test.pl: !MINIMUM
-TAO/tests/Crash_On_Write/run_test.pl: !ST
-TAO/tests/NestedUpcall/Simple/run_test.pl: !ST
-TAO/tests/NestedUpcall/MT_Client_Test/run_test.pl: !ST
-TAO/tests/NestedUpcall/Triangle_Test/run_test.pl
-TAO/tests/Nested_Event_Loop/run_test.pl
-TAO/tests/POA/Identity/run_test.pl
-TAO/tests/POA/Excessive_Object_Deactivations/run_test.pl
-TAO/tests/POA/Etherealization/run_test.pl: !MINIMUM
-TAO/tests/POA/Object_Reactivation/run_test.pl: !ST
-TAO/tests/POA/POA_Destruction/run_test.pl
-TAO/tests/POA/Single_Threaded_POA/run_test.pl: !MINIMUM !ST
-TAO/tests/POA/Non_Servant_Upcalls/run_test.pl: !SUNCC5_1
-TAO/tests/POA/wait_for_completion/run_test.pl
-TAO/tests/IORManipulation/run_test.pl
-TAO/tests/Policies/run_test.pl: !MINIMUM !ST
-TAO/tests/Timeout/run_test.pl: !MINIMUM
-TAO/tests/MT_Timeout/run_test.pl: !MINIMUM !ST
-TAO/tests/Timed_Buffered_Oneways/run_test.pl: !MINIMUM
-TAO/tests/Single_Read/run_test.pl:
-TAO/tests/Codec/run_test.pl
-TAO/tests/IDL_Test/run_test.pl
-TAO/tests/ORB_init/run_test.pl
-TAO/tests/ORB_destroy/run_test.pl
-TAO/tests/DSI_Gateway/run_test.pl: !MINIMUM
-TAO/tests/DynAny_Test/run_test.pl: !MINIMUM
-# BROKEN TAO/tests/Connection_Purging/run_test.pl: !ST
-TAO/tests/LongUpcalls/run_test.pl: !MINIMUM
-TAO/tests/Reliable_Oneways/run_test.pl: !MINIMUM
-TAO/tests/Blocking_Sync_None/run_test.pl: !MINIMUM
-TAO/tests/Oneway_Buffering/run_message_count.pl: !MINIMUM
-TAO/tests/Oneway_Buffering/run_buffer_size.pl: !MINIMUM
-TAO/tests/Oneway_Buffering/run_timeout.pl: !MINIMUM
-TAO/tests/Oneway_Buffering/run_timeout_reactive.pl: !MINIMUM
-TAO/tests/AMI_Buffering/run_message_count.pl: !MINIMUM !ST
-TAO/tests/AMI_Buffering/run_buffer_size.pl: !MINIMUM !ST
-TAO/tests/AMI_Buffering/run_timeout.pl: !MINIMUM !ST
-TAO/tests/AMI_Buffering/run_timeout_reactive.pl: !MINIMUM !ST
-TAO/tests/Big_Oneways/run_test.pl: !ST
-TAO/tests/Big_Twoways/run_test.pl: !ST
-TAO/tests/Big_Reply/run_test.pl: !ST
-TAO/tests/Big_Request_Muxing/run_test.pl: !ST !MINIMUM
-TAO/tests/Oneways_Invoking_Twoways/run_test.pl: !ST
-TAO/examples/Buffered_Oneways/run_test.pl: !MINIMUM
-TAO/tests/Queued_Message_Test/run_test.pl
-TAO/tests/DLL_ORB/run_test.pl: !STATIC
-
-# REQUIRES AMI 'TAO/examples/Buffered_AMI/run_test.pl: !MINIMUM
-TAO/tests/InterOp-Naming/run_test.pl: !MINIMUM
-TAO/tests/Multiple/run_test.pl: !SUNCC5_1
-TAO/tests/Exposed_Policies/run_test.pl: !MINIMUM !ST !Linux
-TAO/tests/Portable_Interceptors/Dynamic/run_test.pl: !MINIMUM !DISABLE_INTERCEPTORS
-TAO/tests/Portable_Interceptors/IORInterceptor/run_test.pl: !MINIMUM !DISABLE_INTERCEPTORS
-TAO/tests/Portable_Interceptors/ForwardRequest/run_test.pl: !MINIMUM !DISABLE_INTERCEPTORS
-TAO/tests/Portable_Interceptors/Service_Context_Manipulation/run_test.pl: !MINIMUM !DISABLE_INTERCEPTORS
-TAO/tests/Portable_Interceptors/Request_Interceptor_Flow/run_test.pl: !MINIMUM !DISABLE_INTERCEPTORS
-TAO/tests/Portable_Interceptors/PICurrent/run_test.pl: !MINIMUM !DISABLE_INTERCEPTORS
-TAO/tests/Object_Loader/run_test.pl: !STATIC
-
-TAO/examples/POA/Adapter_Activator/run_test.pl: !MINIMUM !SUNCC5_1
-TAO/examples/POA/DSI/run_test.pl: !MINIMUM
-TAO/examples/POA/Default_Servant/run_test.pl: !MINIMUM
-TAO/examples/POA/Explicit_Activation/run_test.pl: !MINIMUM
-TAO/examples/POA/FindPOA/run_test.pl: !MINIMUM
-TAO/examples/POA/Forwarding/run_test.pl: !MINIMUM
-TAO/examples/POA/NewPOA/run_test.pl: !MINIMUM
-TAO/examples/POA/On_Demand_Activation/run_test.pl: !MINIMUM !STATIC
-TAO/examples/POA/On_Demand_Loading/run_test.pl: !MINIMUM !STATIC !KCC_Linux
-TAO/examples/POA/Reference_Counted_Servant/run_test.pl: !SUNCC5_1
-TAO/examples/POA/Loader/run_test.pl: !MINIMUM !STATIC !KCC_Linux
-TAO/examples/POA/RootPOA/run_test.pl
-TAO/examples/Simple/bank/run_test.pl
-TAO/examples/Simple/grid/run_test.pl
-TAO/examples/Simple/time-date/run_test.pl: !ST !STATIC
-TAO/examples/Simple/time/run_test.pl
-TAO/examples/Quoter/run_test.pl: !MINIMUM
-TAO/examples/Load_Balancing/run_test.pl: !MINIMUM !SUNCC5_1
-TAO/examples/PluggableUDP/tests/Basic/run_test.pl: !STATIC !ST
-TAO/examples/PluggableUDP/tests/SimplePerformance/run_test.pl
-
-TAO/orbsvcs/tests/AVStreams/Pluggable/run_test.pl: !MINIMUM
-#TAO/orbsvcs/tests/AVStreams/Full_Profile/run_test.pl: !MINIMUM
-TAO/orbsvcs/tests/AVStreams/Multicast/run_test.pl: !MINIMUM
-#TAO/orbsvcs/tests/AVStreams/Multicast_Full_Profile/run_test.pl: !MINIMUM
-#TAO/orbsvcs/tests/AVStreams/Latency/run_test.pl: !MINIMUM
-TAO/orbsvcs/tests/AVStreams/Simple_Two_Stage/run_test.pl: !MINIMUM
-TAO/orbsvcs/tests/AVStreams/Simple_Three_Stage/run_test.pl: !MINIMUM
-TAO/orbsvcs/tests/AVStreams/Asynch_Three_Stage/run_test.pl: !MINIMUM
-TAO/orbsvcs/tests/AVStreams/Component_Switching/run_test.pl: !MINIMUM
-
-TAO/orbsvcs/tests/Simple_Naming/run_test.pl: !ST !SUNCC5_1
-TAO/orbsvcs/tests/Trading/run_test.pl: !MINIMUM !SUNCC5_1
-TAO/orbsvcs/tests/Event/Basic/run_test.pl: !ST
-TAO/orbsvcs/tests/Event/Performance/run_test.pl: !ST
-TAO/orbsvcs/tests/EC_Basic/run_test.pl: !SUNCC5_1
-TAO/orbsvcs/tests/EC_Custom_Marshal/run_test.pl: !ST
-TAO/orbsvcs/tests/EC_Throughput/run_test.pl: !ST
-TAO/orbsvcs/tests/ImplRepo/run_test.pl: SANDBOX
-TAO/orbsvcs/tests/ImplRepo/NameService/run_test.pl: SANDBOX
-TAO/orbsvcs/tests/ImplRepo/locked/run_test.pl: !MINIMUM
-
-
-# BREAKS !linux 'TAO/orbsvcs/tests/EC_Mcast/run_test.pl
-# FAILS 'TAO/orbsvcs/tests/EC_Multiple/run_test.pl
-TAO/orbsvcs/tests/Event_Latency/run_test.pl
-# NO REDIRECTION TAO/examples/Simple/echo/run_test.pl < Echo.idl
-# INTERACTIVE 'TAO/examples/Simple/chat/run_test.pl
-TAO/orbsvcs/tests/Property/run_test.pl
-#HANGS TAO/orbsvcs/tests/ImplRepo/run_test.pl airplane
-#HANGS'TAO/orbsvcs/tests/ImplRepo/run_test.pl airplane_ir
-
-TAO/orbsvcs/tests/Security/Big_Request/run_test.pl: SSL
-TAO/orbsvcs/tests/Security/Secure_Invocation/run_test.pl: SSL
-TAO/orbsvcs/tests/Security/SecurityLevel1/run_test.pl: SSL
diff --git a/bin/auto_run_tests.pl b/bin/auto_run_tests.pl
deleted file mode 100755
index a0f6ef006ad..00000000000
--- a/bin/auto_run_tests.pl
+++ /dev/null
@@ -1,101 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# -*- perl -*-
-# This file is for running the run_test.pl scripts listed in
-# auto_run_tests.lst.
-
-use lib "$ENV{ACE_ROOT}/bin";
-use PerlACE::Run_Test;
-
-use English;
-use Getopt::Std;
-use Cwd;
-
-use Env qw(ACE_ROOT PATH);
-
-################################################################################
-
-$config_list = new PerlACE::ConfigList;
-
-$config_list->load ($ACE_ROOT."/bin/auto_run_tests.lst");
-
-if (!getopts ('ac:ds:t') || $opt_h) {
- print "run_test.pl [-a] [-c config] [-h] [-s sandbox] [-t]\n";
- print "\n";
- print "Runs the tests listed in auto_run_tests.lst\n";
- print "\n";
- print "Options:\n";
- print " -a ACE tests only\n";
- print " -c config Run the tests for the <config> configuration\n";
- print " -h display this help\n";
- print " -s sandbox Runs each program using a sandbox program\n";
- print " -t TAO tests only\n";
- print "\n";
- print "Configs: " . $config_list->list_configs () . "\n";
- exit (1);
-}
-
-# Insures that we search for stuff in the current directory.
-$PATH .= $Config::Config{path_sep} . '.';
-
-foreach $test ($config_list->valid_entries ()) {
- my $directory = ".";
- my $program = ".";
-
- if ($opt_a && $test =~ /^TAO/) {
- next;
- }
- elsif ($opt_t && $test !~ /^TAO/) {
- next;
- }
-
- if ($test =~ /(.*)\/([^\/]*)$/) {
- $directory = $1;
- $program = $2;
- }
- else {
- $program = $test;
- }
-
- print "auto_run_tests: $test\n";
-
- chdir ($ACE_ROOT."/$directory")
- || die "Error: Cannot chdir to $ACE_ROOT/$directory";
-
- if (! -e $program) {
- print STDERR "Error: $test does not exist\n";
- next;
- }
-
- ### Genrate the -ExeSubDir and -Config options
- my $inherited_options = " -ExeSubDir $PerlACE::Process::ExeSubDir ";
-
- foreach my $config ($config_list->my_config_list ()) {
- $inherited_options .= " -Config $config ";
- }
-
- $cmd = '';
- if ($opt_s) {
- $cmd = "$opt_s \"perl $program $inherited_options\"";
- }
- else {
- $cmd = $program.$inherited_options;
- }
-
-
- my $result = 0;
-
- if (defined $opt_d) {
- print "Running: $cmd\n";
- }
- else {
- $result = system ($cmd);
- }
-
- if ($result > 0) {
- print "Error: $test returned with status $result\n";
- }
-}
diff --git a/bin/autoconf_compile b/bin/autoconf_compile
deleted file mode 100755
index 8c3a283723d..00000000000
--- a/bin/autoconf_compile
+++ /dev/null
@@ -1,520 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# -*- perl -*-
-# $Id$
-#
-# This script checkouts ACE from CVS, configures ACE, and compiles
-# `ace', `tests' and finally runs `tests/run_tests.sh'.
-#
-# If it detects any problem it sends e-mail.
-#
-# DO NOT invoke this script from your crontab, use
-# autoconf_compile_wrapper for that.
-#
-# This script requires Perl 5.
-#
-# TODO: Modify the script or split it in such a way that the main copy
-# can be obtained either using cvs or downloading the latest beta
-# from the WWW.
-#
-
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-use File::Basename;
-use FileHandle;
-require POSIX;
-
-$directory_mode=0755;
-
-# This is the module we will checkout, someday someone could define a
-# smaller module.
-$MODULE='ACE_wrappers';
-
-# These are the sub-directories (in the module) we really compile.
-
-# Find out the command name.
-$CMD = basename($0);
-
-$single_threaded = 0;
-$minimum_corba = 0;
-$ami = 0;
-$dont_update = 0;
-$dont_run = 0;
-$pre_clean = 0;
-$post_clean = 0;
-$report_success = 0;
-$debug = 0;
-@BUILD_LIST= ();
-
-@ARGS = ();
-while ($#ARGV >= 0) {
- if (!($ARGV[0] =~ m/-/)) {
- push @ARGS, $ARGV[0];
- shift;
- } elsif ($ARGV[0] eq "-single_threaded") {
- $single_threaded = 1;
- shift;
- } elsif ($ARGV[0] eq "-minimum_corba") {
- $minimum_corba = 1;
- shift;
- } elsif ($ARGV[0] eq "-ami") {
- $ami =1;
- shift;
- } elsif ($ARGV[0] eq "-build_list") {
- shift;
- @BUILD_LIST = split (/,/, $ARGV[0]);
- shift;
- } elsif ($ARGV[0] eq "-dont_update") {
- $dont_update = 1;
- shift;
- } elsif ($ARGV[0] eq "-dont_run") {
- $dont_run = 1;
- shift;
- } elsif ($ARGV[0] eq "-pre_clean") {
- $pre_clean = 1;
- shift;
- } elsif ($ARGV[0] eq "-post_clean") {
- $post_clean = 1;
- shift;
- } elsif ($ARGV[0] eq "-report_success") {
- $report_success = 1;
- shift;
- } elsif ($ARGV[0] eq "-debug") {
- $debug = 1;
- shift;
- }
-}
-
-# Extract configuration information from command line.
- # TODO: Some validation and checking should be done here.
-$CHECKOUT = $ARGS[0];
-$BUILD = $ARGS[1];
-$LOGDIR = $ARGS[2];
-$ADMIN = $ARGS[3];
-$MAIL = "mail";
-if ($#ARGS >= 4) {
- $MAIL = $ARGS[4];
-}
-
-# We obtain our revision to report errors.
-$REVISION='$Revision$ ';
-
-# When an error is found we try to die gracefully and send some email
-# to ADMIN.
-
-$disable_file = $LOGDIR . '/.disable';
-$histfile = $LOGDIR . '/history';
-$LOGBASE = POSIX::strftime("%b%d_%Y.txt", localtime);
-$LOGFILE = $LOGDIR . '/' . $LOGBASE;
-$HOST = `hostname`;
-chop $HOST;
-$LOG_NAME = $HOST . "_" . $BUILD . "_" . $LOGBASE;
-$STATUS = "OK";
-
-if ($debug) {
- print "CHECKOUT = $CHECKOUT\n";
- print "BUILD = $BUILD\n";
- print "LOGDIR = $LOGDIR\n";
- print "ADMIN = $ADMIN\n";
- print "MAIL = $MAIL\n";
-}
-
-push @INC, $CHECKOUT . '/' . $MODULE . '/bin';
-#require run_all_list;
-@RUN_LIST = ('tests'); # Temporary hack
-
-
-if ($#BUILD_LIST == -1) {
- @BUILD_LIST=
- ('ace',
- 'netsvcs',
- 'tests',
- 'apps/gperf');
-}
-if ($debug) {
-
- @BUILD_LIST = ('ace');
- @RUN_LIST = ('tests');
-# @SINGLE_THREADED_LIST = ('TAO/tests/OctetSeq');
-# @MINIMUM_CORBA_LIST = ('TAO/tests/OctetSeq');
- $ADMIN = $ENV{'LOGNAME'};
-
-}
-
-sub mydie {
- unlink $disable_file;
- die $_ . "\n";
-}
-
-sub report_errors {
- # First clear the lock, so the next execution works...
- unlink $disable_file; # Ignore errors!
-
- # Now send a summary of the errors to the ADMIN account...
- local $to = $ADMIN;
-
- open (MAIL, "|".$MAIL.' -s "[AUTO_COMPILE] '.$BUILD.'" '.$to)
- || mydie "Cannot open mail pipe for: $_\n";
-
- print MAIL 'The following message is brought to you by: ', "\n";
- print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n\n";
-
- local $m;
- foreach $m (@_) {
- print MAIL $m, "\n";
- }
-
- print MAIL "\nPlease check the following log for more info:\n\n";
- print MAIL 'http://www.cs.wustl.edu/~bugzilla/auto_compile_logs/',
- $LOG_NAME, "\n\n";
-
- close (MAIL); # Ignore errors....
-
- # Now send the complete log to bugzilla...
- local $bugs = 'bugzilla'.'@cs.wustl.edu';
- open (MAIL, "|".$MAIL.' -s AUTO_COMPILE_LOG='.$LOG_NAME.' '.$bugs)
- || mydie "Cannot open mail pipe for: $LOG_NAME\n";
-
- print MAIL 'This is the log for: ', "\n";
- print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
-
- print MAIL "\n================================================================\n";
-
- if (open (THELOG, "$LOGFILE"))
- {
- while (<THELOG>) {
- print MAIL $_;
- }
- close (THELOG);
- }
- close (MAIL); # Ignore errors....
-}
-
-### MAIN FUNCTION
-
-if (-f $disable_file) {
- print 'The following message is brought to you by: ', "\n";
- print $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
-
- print "DISABLED\n";
-
- exit 0;
-}
-
-open (DISABLE, '>' . $disable_file)
- || die "cannot open disable file";
-print DISABLE "autoconf_compile <$date> is running\n";
-close (DISABLE)
- || die "cannot close disable file";
-
-open(HIST, '>>' . $histfile)
- # Do not use 'mydie' to report the problem, it tries to remove the
- # disable file
- || mydie "cannot open history file \"$histfile\"\n";
-
-$date = localtime;
-
-print HIST $CMD, ': running at ', $date, ' ';
-
-open(LOG, '>' . $LOGFILE)
- || mydie "cannot open log file";
-
-LOG->autoflush ();
-
-# The following lines are useful when debugging the script or wrapper.
-# print LOG $CHECKOUT, " ", $BUILD, " ", $LOGDIR, " ", $ADMIN, "\n";
-#while (($key,$value) = each %ENV) {
-# print LOG $key, " = ", $value, "\n";
-#}
-
-chdir($CHECKOUT)
- || mydie "Cannot chdir to $CHECKOUT";
-
-if ($dont_update == 0) {
- $date = localtime;
- print LOG "$CMD: starting checkout at ", $date, "\n";
- open(CVS, "cvs -q checkout -P $MODULE 2>&1 |")
- || mydie "cannot start checkout of $MODULE";
-# open(CVS, "cvsup -g -L 2 -P m ace-supfile 2>&1 |")
-# || mydie "cannot start checkout";
-
- $conflicts = 0;
- while (<CVS>) {
- if (m/^C /) {
- $conflicts = 1;
- }
- print LOG $_;
- }
- close(CVS)
- || mydie "error while checking out $MODULE";
- $date = localtime;
- print LOG "$CMD: checkout finished at ", $date, "\n";
-
- if ($conflicts != 0) {
- mydie "conflicts on checkout";
- }
-}
-
-chdir($MODULE)
- || mydie "cannot chdir to $MODULE";
-
-open (CHLOG, "ChangeLog")
- || mydie "cannot open Changelog";
-$_ = <CHLOG>;
-chop;
-print LOG "ACE ChangeLogTag:", $_, "\n";
-close (CHLOG);
-
-open (CHLOG, "TAO/ChangeLog")
- || mydie "cannot open TAO/Changelog";
-$_ = <CHLOG>;
-chop;
-print LOG "TAO ChangeLogTag:", $_, "\n";
-close (CHLOG);
-
-# Bootstrap the workspace
-print LOG "$CMD: ==================================================\n\n";
-print LOG "$CMD: bootstrapping the workspace\n";
-open(BOOTSTRAP, "cd $CHECKOUT/ACE_wrappers && "
- . "sh bin/bootstrap workspace --enable-deps 2>&1 |")
- || mydie "cannot bootstrap workspace for $BUILD";
-while(<BOOTSTRAP>) {
- print LOG $_;
-}
-close(BOOTSTRAP)
- || mydie "error while bootstrapping the workspace";
-print LOG "$CMD: ==================================================\n\n";
-
-# Begin the workspace configuration
-$date = localtime;
-print LOG "$CMD: starting configuration at ", $date, "\n";
-
-# Check that we're in an ACE "top level" directory.
-# We can actually build outside of the top level ACE directory, but
-# let's do it this way for now.
-(-d 'ace' && -d 'm4') ||
- die "$0: must be in top level ACE directory!\n";
-
-# Create build directories, if needed.
--d 'build' || mkdir ('build', $directory_mode);
--d "$build" || mkdir ('build/' . "$BUILD", $directory_mode);
-
-# Now enter the build directory.
-chdir('build/' . $BUILD)
- || mydie "cannot chdir to $BUILD";
-
-# Remove the configuration cache file to make sure a fresh
-# configuration is created.
-unlink "config.cache";
-
-# Run the configuration script.
-open(CONFIGURE, "sh $CHECKOUT/ACE_wrappers/configure 2>&1 |")
- || mydie "cannot configure for $BUILD";
-while(<CONFIGURE>) {
- print LOG $_;
-}
-close(CONFIGURE)
- || mydie "error while configuring ACE";
-$date = localtime;
-print LOG "$CMD: configure finished at ", $date, "\n";
-
-
-@failures = ();
-
-if ($pre_clean) {
- foreach $i (@BUILD_LIST) {
- $date = localtime;
- print LOG "$CMD: =============================================\n";
- print LOG "$CMD: make clean in $i started at ", $date, "\n";
- open(MAKE, "make -k $MAKEFLAGS -C $i clean 2>&1 |")
- || mydie "cannot start make in $i";
-
- while (<MAKE>) {
- # Ignore errors....
- }
- if (close(MAKE) == 0) {
- push @failures, "errors while cleaning $i";
- }
- $date = localtime;
- print LOG "$CMD: make clean in $i finished at ", $date, "\n";
- print LOG "$CMD: ==================================================\n\n";
- }
-}
-
-$MAKEFLAGS .= "";
-foreach $i (@BUILD_LIST) {
- $date = localtime;
- print LOG "$CMD: =============================================\n";
- print LOG "$CMD: make for $i started at ", $date, "\n";
- open(MAKE, "make -k $MAKEFLAGS -C $i 2>&1 |")
- || mydie "cannot start make for $i";
-
- local $current_dir = $i;
- local $last_error = "";
- while (<MAKE>) {
- chop;
- if ($^O eq 'hpux'
- && m/^Warning:[ \t]+[0-9]+ future errors were detected/) {
- next;
- }
- print LOG $_, "\n";
-
- if (m/^make(\[[0-9]+\])?: Entering directory /) {
- s/^make(\[[0-9]+\])?: Entering directory //;
- $current_dir = $_;
- }
- if (m/error:/i || m/error /i
- || m/^make(\[[0-9]+\])?: \*\*\*/) {
- if ($last_error ne $current_dir
- || STATUS eq "COMPILATION WARNING") {
- $STATUS = "COMPILATION ERROR";
- push @failures, "Error while compiling in $current_dir \n";
- $last_error = $current_dir;
- }
- }
- if (m/warning:/i || m/warning /i) {
- if ($last_error ne $current_dir) {
- if ($STATUS eq "OK") {
- $STATUS = "COMPILATION WARNING";
- }
- push @failures, "Warning while compiling in $current_dir\n";
- $last_error = $current_dir;
- }
- }
- }
- if (close(MAKE) == 0) {
- push @failures, "errors while running make in $i";
- }
- $date = localtime;
- print LOG "$CMD: make for $i finished at ", $date, "\n";
- print LOG "$CMD: =============================================\n\n";
-}
-
-if ($dont_run == 0) {
- @LIST = @RUN_LIST;
- if ($single_threaded) {
- @LIST = @SINGLE_THREADED_LIST;
- } elsif ($minimum_corba) {
- @LIST = @MINIMUM_CORBA_LIST;
- } elsif ($ami) {
- @LIST = @AMI_CORBA_LIST;
- }
-
- foreach $i (@LIST) {
-
- $date = localtime;
- print LOG "$CMD: ==================================================\n";
- print LOG "$CMD: running checks in $i at ", $date, "\n";
- local $subdir =
- $CHECKOUT .'/'. $MODULE .'/build/'. $BUILD .'/'. $i;
- chdir ($subdir)
- || mydie "cannot chdir to $subdir";
-
- $run_error = 0;
- open(CHECK, "make -k $MAKEFLAGS -C $subdir check 2>&1 |");
-
- local $current_dir = $i;
- local $last_error = "";
- while (<CHECK>) {
- chop;
- if ($^O eq 'hpux'
- && m/^Warning:[ \t]+[0-9]+ future errors were detected/) {
- next;
- }
- print LOG $_, "\n";
-
- if (m/^make(\[[0-9]+\])?: Entering directory /) {
- s/^make(\[[0-9]+\])?: Entering directory //;
- $current_dir = $_;
- }
- if (m/error:/i || m/error /i
- || m/^make(\[[0-9]+\])?: \*\*\*/) {
- if ($last_error ne $current_dir
- || STATUS eq "COMPILATION WARNING") {
- $STATUS = "COMPILATION ERROR";
- push @failures, "Error while compiling in $current_dir \n";
- $last_error = $current_dir;
- }
- }
- if (m/warning:/i || m/warning /i) {
- if ($last_error ne $current_dir) {
- if ($STATUS eq "OK") {
- $STATUS = "COMPILATION WARNING";
- }
- push @failures, "Warning while compiling in $current_dir\n";
- $last_error = $current_dir;
- }
- }
- if (m/Error/
- || m/ERROR/
- || m/FAILED/
- || m/failed/
- || m/FAIL/
- || m/EXCEPTION/
- || m/pure virtual /i) {
- if ($STATUS eq "OK") {
- $STATUS = "RUNTIME ERROR";
- }
- $run_error = 1;
- }
- }
-
- if (close(CHECK) == 0) {
- if ($STATUS eq "OK") {
- $STATUS = "RUNTIME ERROR";
- }
- push @failures, "Error when closing pipe in $i";
- next;
- }
- $date = localtime;
- print LOG "$CMD: check finished ", $date, "\n";
-
- if ($run_error != 0) {
- push @failures,
- "errors detected while making check in $i";
- }
- }
-}
-
-if ($post_clean) {
- foreach $i (@BUILD_LIST) {
- $date = localtime;
- print LOG "$CMD: ==================================================\n";
- print LOG "$CMD: make clean in $i started at ", $date, "\n";
- open(MAKE, "make -k $MAKEFLAGS -C $i clean 2>&1 |");
-
- while (<MAKE>) {
- # Ignore errors....
- }
- if (close(MAKE) == 0) {
- push @failures, "errors while cleaning $i";
- }
- $date = localtime;
- print LOG "$CMD: make clean in $i finished at ", $date, "\n";
- print LOG "$CMD: ==================================================\n\n";
- }
-}
-
-if ($#failures >= 0) {
- report_errors @failures;
-}
-
-close(LOG)
- || mydie "cannot close LOGFILE";
-
-print HIST "$STATUS\n";
-close(HIST)
- || mydie "cannot close history file";
-
-unlink $disable_file
- || die "cannot unlink disable file";
-
-if ($report_success && $STATUS eq "OK") {
- report_errors "Congratulations: No errors or warnings detected\n";
-}
-
-exit 0;
diff --git a/bin/autoconf_compile_wrapper b/bin/autoconf_compile_wrapper
deleted file mode 100755
index 3ffddafb1a1..00000000000
--- a/bin/autoconf_compile_wrapper
+++ /dev/null
@@ -1,56 +0,0 @@
-#! /bin/sh
-#
-# $Id$
-#
-# Usually cron setups a really miserable enviroment, this script
-# serves two purposes:
-# 1. Setup a good enviroment for auto_compile.
-# 2. Invoke auto_compile with the proper arguments for each site.
-#
-# The idea is to modify this script on a per-site basis and leave
-# auto_compile unmodified.
-#
-
-# Setup a proper path, remember that cvs, make, perl5 and your
-# compiler must be there.
-PATH=.:$HOME/bin:/pkg/gnu/bin:/opt/SUNWspro/bin:$PATH
-export PATH
-
-# Obvious enough.
-CVSROOT=/project/cvs-repository
-export CVSROOT
-
-# It could be a good idea to set CVSREAD this will make the staging
-# area read-only, but our staging areas are public.
-# CVSREAD=Y
-# export CVSREAD
-
-# Here we define the cvs working copy for our staging area.
-CHECKOUT=$HOME/head
-
-# In some sites the building directory differs from the cvs working
-# copy. The directory is updated running
-# $ACE_ROOT/bin/create_ace_build; but it must be setup manually the
-# first time.
-# TODO: Arrange for automatic creation of platform_macros.GNU &
-# config.h.
-BUILD=SUNCC
-
-# Here is where we store autoconf_compile output and keep a history of
-# each run.
-LOGDIR=$HOME/head/ACE_wrappers/build/$BUILD/autoconf_compile
-
-# Who do we send email when compilation (or anything else) fails.
-ADMIN=PUT_YOUR_ADDRESS_HERE ; echo "You must edit this file" ; exit 0
-
-# You must select a mail tool that can understand the -s option such
-# as:
-#
-# /usr/bin/mailx Solaris
-# /usr/bin/mailx HP-UX
-# /usr/sbin/mailx IRIX
-# /bin/mail Linux
-
-exec /pkg/gnu/bin/perl $CHECKOUT/ACE_wrappers/bin/autoconf_compile \
- $CHECKOUT $BUILD $LOGDIR $ADMIN /usr/bin/mailx
-
diff --git a/bin/bootstrap b/bin/bootstrap
deleted file mode 100755
index dcb770c3507..00000000000
--- a/bin/bootstrap
+++ /dev/null
@@ -1,185 +0,0 @@
-#! /bin/sh
-
-# -------------------------------------------------------------------------
-# $Id$
-#
-# Bootstrap ACE/TAO configuration tools when checked out from CVS.
-# Requires GNU autoconf, GNU automake and GNU libtool.
-#
-# This script is only meant to be run by ACE/TAO maintainers.
-#
-# -------------------------------------------------------------------------
-
-# Copyright (C) 1999 Ossama Othman
-#
-# All Rights Reserved
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the current ACE distribution terms.
-#
-# This library 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.
-
-
-set -e
-
-# If paginator environment variable isn't set then use `more'.
-test -z $PAGER && PAGER=more
-
-# Flag that determines if dependency tracking should be enabled in
-# GNU Automake generated Makefile.in files.
-enable_deps=no
-
-# By default, assume that a workspace, not a release, is being bootstrapped.
-bootstrap_release=no
-
-usage()
-{
- cat <<EOF | $PAGER
-Usage: bootstrap [OPTIONS] [workspace | release]
-
-Generic options:
- --help display this help and exit
-
-Supported options:
- --enable-deps enable dependency tracking for workspace [default=no]
-
-Workspace Bootstrapping
------------------------
- Bootstrapping a workspace causes all files necessary for
- maintainers to build ACE or TAO to be generated.
-
- Enabling dependency tracking via the \`--enable-deps' option causes
- GNU Automake to generate dependency tracking rules in generated
- Makefile.in files. Currently those dependency tracking rules only
- work with GNU C++, which is why dependency tracking is disabled by
- default.
-
-Release Bootstrapping
----------------------
- Bootstrapping a workspace for release does the same things as the
- standard workspace bootstrapping procedure except that files that
- are needed to build an ACE/TAO distribution are also generated
- (e.g. man pages). Dependency tracking is enabled by default since
- Makefile dependencies should be included in ACE/TAO distributions.
-
-EOF
-
- exit $1
-}
-
-
-if test $# -gt 2; then
- usage 1
-fi
-
-while test $# -gt 0; do
- case "$1" in
- --help)
- usage 0
- ;;
- --enable-deps)
- enable_deps=yes
- ;;
- workspace)
- bootstrap_release=no
- ;;
- release)
- bootstrap_release=yes
- enable_deps=yes
- ;;
- esac
- shift
-done
-
-
-# This script must be run from the top-level ACE source directory
-if test -d m4; then
-
- # Set the PATH containing the GNU tools
- if (uname | grep SunOS > /dev/null 2>&1); then
- PATH=/project/danzon/pkg/gnu/bin:$PATH
- export PATH
- fi
-
- # Provide some "useful" information.
- if test $bootstrap_release = yes; then
- echo Bootstrapping release...
- else
- echo Bootstrapping workspace...
- fi
-
- # Update the NEWS file
- # For now just copy the contents of the `VERSION' file to make automake
- # happy. Eventually, we should start putting real news in to it.
- echo Creating a NEWS file
- cp VERSION NEWS
-
- # Generate an `aclocal.m4' file from all existing m4 macro files
- # including those in the `m4' directory.
- echo Running aclocal
- aclocal -I m4
-
- # Generate a `config.h.in' configuration header template from `acconfig.h'.
- echo 'Running autoheader (expect some "AC_TRY_RUN" warnings)'
- autoheader
-
- # Generate the `configure' script from the `configure.in'.
- echo 'Running autoconf (expect some "AC_TRY_RUN" warnings)'
- autoconf
-
- # Generate all `Makefile.in' templates in the directories listed in
- # `configure.in' and add any missing files that GNU Automake needs so
- # that the distribution and configuration processes will run properly.
- echo Running automake
- if test $bootstrap_release = no && test $enable_deps = no; then
- automake --add-missing --include-deps #--verbose
- else
- automake --add-missing #--verbose
- fi
-
- # Generate the man pages.
- # Only generate man pages if bootstrapping a release.
- if test $bootstrap_release = yes; then
- if test -f man/man3/ACE.3; then
- echo ACE man pages have already been generated.
- else
- echo 'Generating the ACE man pages (this may take several minutes)'
-
- (ACE_ROOT=.; \
- export ACE_ROOT; \
- ./bin/generate_doxygen.pl -is_release -exclude_tao > /dev/null)
- fi # test -f man/man3/ACE.3
- fi # test $bootstrap_release = yes
-
- # Regenerate the man pages lists in the man page Makefiles.
-
- if test -f man/man3/Makefile.am; then
- # Only insert man page lists if bootstrapping a release.
- if test $bootstrap_release = yes; then
- echo 'Inserting ACE man page lists into appropriate Makefile.am files.'
- ACE_MAN_PAGES=`(cd man/man3 && echo *.3)`
- else
- ACE_MAN_PAGES=
- fi
-
- (cd man/man3; \
- eval "sed -e 's/^man_MANS =.*$/man_MANS = $ACE_MAN_PAGES/' \
- Makefile.am > Makefile.am.new"; \
- mv Makefile.am.new Makefile.am)
- (cd man/html; \
- eval "sed -e 's/^html_DATA =.*$/html_DATA = $ACE_HTML_MAN_PAGES/' \
- Makefile.am > Makefile.am.new"; \
- mv Makefile.am.new Makefile.am)
- else
- test -f man/man3/Makefile.am || echo 'man/man3/Makefile.am is missing!'
- exit 1;
- fi # test -f man/man3/Makefile.am
-
- # Provide some more "useful" information.
- echo Done bootstrapping.
-else
- echo ACE must be bootstrapped from the top-level ACE source directory.
- exit 1;
-fi # test -d m4
diff --git a/bin/check_build_logs b/bin/check_build_logs
deleted file mode 100755
index 39707d404da..00000000000
--- a/bin/check_build_logs
+++ /dev/null
@@ -1,176 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# Reviews build logs and reports problems, via stdout or mail.
-
-use strict;
-
-my $usage = "$0 [-l log directory] [-m mail recipient(s)] " .
- "[-p purify output] [-u URL prefix]\n";
-
-####
-#### Configuration parameters.
-####
-my $subject = 'ACE+TAO build results';
-my $find = -e '/pkg/gnu/bin/find' ? '/pkg/gnu/bin/find' : 'find';
-my $mail = "mail -s '$subject'";
-
-my $ostype = $ENV{'OSTYPE'} || `/bin/uname -s`;
-if ("$ostype" =~ /(solaris)|(SunOS)/i) {
- #### $mail = "/pkg/mh/bin/mhmail -subject '$subject'";
- $mail = "/usr/bin/mailx -s '$subject'";
-}
-
-$ENV{'LD_LIBRARY_PATH'} = '/opt/SUNWspro_5.0/dt/lib:/usr/openwin/lib:' .
- '/usr/lib:/project/danzon/pkg/egcs/lib:' unless $ENV{'LD_LIBRARY_PATH'};
-$ENV{'TMPDIR'} = '/tmp';
-$ENV{'USER'} = $ENV{'LOGNAME'};
-
-my $log_directory = '/project/danzontmp/levine/build-logs/';
-my $mail_recipients = '';
-my $purify = '';
-my $urlprefix = '';
-
-####
-#### Process command line args.
-####
-while ($#ARGV >= $[) {
- if ($ARGV[0] eq '-l') {
- if ($ARGV[1] =~ /^[^-]/) {
- $log_directory = $ARGV[1];
- shift;
- } else {
- print STDERR "$0: must provide argument for -l option\n";
- die $usage;
- }
- } elsif ($ARGV[0] eq '-m') {
- if ($ARGV[1] =~ /^[\w@\.]+$/) {
- $mail_recipients = $ARGV[1];
- shift;
- } else {
- print STDERR "$0: must provide argument for -m option\n";
- die $usage;
- }
- } elsif ($ARGV[0] eq '-p') {
- if ($ARGV[1] !~ /^-/) {
- $purify = $ARGV[1];
- shift;
- } else {
- print STDERR "$0: must provide argument for -p option\n";
- die $usage;
- }
- } elsif ($ARGV[0] eq '-u') {
- if ($ARGV[1] !~ /^-/) {
- $urlprefix = $ARGV[1];
- shift;
- } else {
- print STDERR "$0: must provide argument for -u option\n";
- die $usage;
- }
- } elsif ($ARGV[0] eq '-?') {
- print "$usage";
- exit;
- } else {
- print "$0: unknown arg: $ARGV[0]\n";
- print "$usage";
- exit 1;
- }
- shift;
-}
-
-
-####
-#### Find the log files.
-####
-chdir $log_directory ||
- die "$0: unable to cd to \"$log_directory\"\n";
-
-(my $log_files = (`$find . -name '*.log' -daystart -ctime 0 -print | sort`)) =~
- tr [\n] [ ];
-$log_files =~ s%\./(make)%$1%g; #### Remove leading ./ from each filename.
-
-
-####
-#### Grep the log files for problems.
-####
-my $line_count = 0;
-my @output = ();
-open (EGREP, "egrep -n \'Error|errors|[^a]Stop|No rule to make|\(undefined symb\)|[Ww]arn|not exist|core dumped|: #[0-9]|cxx:\' $log_files /dev/null |") ||
- die "$0: unable to open egrep\n";
-while (<EGREP>) {
- push @output, $_ unless /calls, 0 errors$/ ||
- /Found non-pic R_SPARC/ ||
- /Purify engine: Error: .* Ignoring it\.$/;
- ++$line_count;
- last if $line_count > 2000;
-}
-close EGREP;
-
-
-####
-#### Check a Purify output file for bad things.
-####
-if ("$purify") {
- my $found_anomaly = 0;
-
- open (PURIFY, "$purify") ||
- die "$0: unable to open $purify\n";
- while (<PURIFY>) {
- if (/^[A-Z][A-Z][A-Z]:/) {
- unless ($found_anomaly) {
- push @output, "\n";
- push @output, "Purify detected anomalies!!!!\n";
- push @output, "See $purify:\n";
- $found_anomaly = 1;
- }
-
- push @output, $_;
- }
- }
- close PURIFY;
-}
-
-
-####
-#### Produce output, if there were any problems.
-####
-if ($#output == -1) {
- push @output, "No problems to report.\n";
-}
-
-{
- my $tmp_file;
-
- if ("$mail_recipients") {
- $tmp_file = "/tmp/check_build_logs.$$";
- open (MAIL, "> $tmp_file") ||
- die "$0: unable to open $tmp_file\n";
- select MAIL;
- }
-
- print "This is an automatically generated message.\n\n"
- if "$mail_recipients";
- print "Log files are in $log_directory\n";
-
- if ("$urlprefix") {
- #### Print URL for each log file, using $urlprefix.
- print "They are also available at:\n";
-
- foreach my $log (split /\s+/, $log_files) {
- print " $urlprefix$log\n";
- }
- }
-
- print "\n";
- print @output;
-
- if ("$mail_recipients") {
- close MAIL;
- system ("$mail $mail_recipients < $tmp_file") &&
- warn "$0: $mail $mail_recipients failed with status $?\n";
- unlink $tmp_file;
- }
-}
diff --git a/bin/clean_dsp.pl b/bin/clean_dsp.pl
deleted file mode 100755
index a3ff9be8205..00000000000
--- a/bin/clean_dsp.pl
+++ /dev/null
@@ -1,52 +0,0 @@
-# $Id$
-# DSP cleaner
-
-$if_depth = 0;
-@saved_lines = ();
-$dirty = 0;
-$in_dependency = 0;
-
-die "Not enough args" if ($#ARGV < 0);
-
-open (FILE, "<$ARGV[0]");
-
-loop: while (<FILE>)
-{
- # Check for dependency information
-
- if (/^DEP/ || /^NODEP/) {
- $in_dependency = 1;
- }
-
- if ($in_dependency) {
- $in_dependency = 0 if (!/\\$/);
- goto loop;
- }
-
- # Check for empty !IF blocks
-
- if (/^\!IF/) {
- ++$if_depth;
- }
-
- push @saved_lines, $_
- if ($if_depth > 0);
-
- if (/^\!ENDIF/) {
- --$if_depth;
- print @saved_lines
- if ($if_depth == 0 && $dirty == 1);
- @saved_lines = ();
- $dirty = 0;
- }
- elsif ($if_depth == 0) {
- print;
- }
-
- $dirty = 1
- if ($if_depth > 0 && !/^\!/ && !/^\s+$/);
-
-
-}
-
-close (FILE);
diff --git a/bin/clone.1 b/bin/clone.1
deleted file mode 100644
index 7c36d90fd85..00000000000
--- a/bin/clone.1
+++ /dev/null
@@ -1,297 +0,0 @@
-.TH CLONE 1 "6 June 1989" ""
-.SH NAME
-clone \- make a clone of an entire directory tree
-.SH SYNOPSIS
-.B clone
-[
-.B -q
-] [
-.B -v
-] [
-.B -f
-] [
-.B -c | -s
-] [
-.B -S
-]
-.I "dir1 dir2"
-.SH DESCRIPTION
-.I Clone
-makes an identical copy of an entire (source) directory tree rooted at
-the directory named
-.I dir1
-into the (target) directory tree
-rooted at
-.I dir2.
-The target directory
-.I dir2
-will be created if it does not already exist.
-On the other hand, if the directory
-.I dir2
-exists, or if the
-.I dir2
-directory has any existing subdirectories, then these
-directories will
-.B not
-be deleted or replaced by
-.I clone.
-.PP
-.I Clone
-normally creates the clone
-directory tree by creating any new directories needed
-beneath
-.I dir2
-(possibly including
-.I dir2
-itself).
-.I Clone
-then fills in the new directories with hard links
-to all of the files in the original (source) directory tree
-.I dir1
-such that the new (target) directory tree appears to also contain
-all of the files and subdirectories contained in the original (source)
-directory tree.
-Hard links are normally used when creating
-.I clones
-of the files in the source directory tree
-inside the new (target) directory tree.
-This insures that the cost (in disk space) of
-.I cloning
-a given source directory tree will be very low.
-If desired, the new (clone) directory tree can be filled in with
-symbolic links or with actual copies of the original files (instead of
-using hard links).
-.PP
-.I Clone
-may be particularly useful for maintaining multiple versions
-of nearly identical source trees.
-.PP
-An important feature of
-.I clone
-is that the
-.I dir2
-argument may already exist and may already contain some
-files and subdirectories. In such cases,
-.I clone
-does not disturb these existing files or subdirectories.
-Rather, it simply adds the material from the source directory,
-.I dir1,
-to the material already present within
-.I dir2.
-In cases where
-there are conflicts between files or directories which
-already exist in
-.I dir2
-but which also exist in
-.I dir1,
-.I clone
-(by default) leaves the files or directories in the target directory
-.I dir2
-untouched unless the
-.B -f
-(force) flag is used, in which case,
-.I clone
-will override (i.e. delete) the conflicting entries
-from the target directory
-.I dir2
-and replace them with clones from the source directory
-.I dir1.
-.SH OPTIONS
-.I Clone
-recognizes the following options:
-.TP
-.BI \-q
-Quite mode. Suppress all warnings and non-fatal error messages.
-.TP
-.BI \-v
-Verbose mode. Print verbose messages which describe each individual
-linking (or copying) action, as well as all
-.I mkdir
-actions that
-.I clone
-executes.
-.TP
-.BI \-f
-Force mode. In cases where an item (i.e. either a file or a directory)
-exists in the source directory tree
-.I dir1,
-and also already exists in the target directory tree
-.I dir2,
-delete the item (ether a file or a directory) in
-the target directory tree and then replace it with a clone
-of the corresponding item from the source directory tree.
-All such deletions causes warning to be issued to
-.I stderr
-unless the
-.B \-q
-(quite mode)
-option is also specified.
-Note that if a given item already exists in the target directory tree,
-and if it also exists in the source directory tree, and if both the
-(existing) source and target items are themselves directories, then the
-.B \-f
-option has no effect for these items. Existing directories in the
-target directory tree are never deleted by
-.I clone
-unless there is a corresponding item in the source directory tree which is
-.B not
-a directory (i.e. is a regular file) and the
-.B \-f
-option is in effect.
-.TP
-.BI \-s
-Symbolic link mode (not available on System V). When used, this
-option causes all non-directory files to be
-.I cloned
-by making symbolic links from the target directory tree into the source
-directory tree. This mode overrides the default mode in which
-hard links are used to clone all non-directory files.
-.TP
-.BI \-c
-Copy mode.
-In this mode, a physical copy of each non-directory file in the source directory
-tree is created in the target directory tree. Note that when this mode is used,
-it is an error for the source directory tree to contain any block or character
-device files, or any named pipe files.
-.TP
-.BI \-S
-SCCS mode.
-In this mode, only the source tree structure is cloned, not its contents.
-Symbolic links are created within the destination tree to subdirectories
-in the source tree named
-.B SCCS.
-This mode is useful when multiple developers work from a common SCCS project
-tree. To accomplish this, each developer creates a local project tree by
-.I cloning
-the common SCCS project directory, specifying the
-.B \-S
-option.
-Individual developers are then able to work within their local project tree while
-ensuring that all SCCS operations are applied to the common SCCS project tree.
-Use of the
-.B \-S
-option implies the use of the
-.B \-s
-option and is thus not available on System V.
-.SH EXAMPLES
-Assume that you have
-two directory trees called
-.I src1
-and
-.I src2
-and that you wish to combine the contents of these
-two directories into a new directory named
-.I dst
-such that if there are any files with duplicate names in both
-.I src1
-and in
-.I src2
-the files from the
-.I src2
-directory tree will take precedence
-over the corresponding files in the directory tree
-.I src1.
-The following commands would accomplish this task:
-.sp 1
-.in +0.4i
-.ft B
-clone src1 dst
-.br
-clone -f src2 dst
-.sp 1
-.in -0.4i
-.ft R
-Or alternatively, for this simple case, you could have said:
-.ft B
-.in +0.4i
-.sp 1
-clone src2 dst
-.br
-clone src1 dst
-.br
-.sp 1
-.in -04.i
-.ft R
-.PP
-To clone an SCCS project tree, such as
-.B /pub/EOS_client_server,
-one might use the following command, shown with the resulting output:
-.sp 1
-.in +0.4i
-.ft B
-doc% clone -S -v /pub/EOS_client_server ~/EOS_CS
-.br
-clone: created new output directory: /home/ebupsn/EOS_CS
-.br
-clone: created new output directory: /home/ebupsn/EOS_CS/bin
-.br
-clone: created new output directory: /home/ebupsn/EOS_CS/lib
-.br
-clone: created new output directory: /home/ebupsn/EOS_CS/include
-.br
-clone: created new output directory: /home/ebupsn/EOS_CS/cmd
-.br
-clone: created new output directory: /home/ebupsn/EOS_CS/cmd/clone
-.br
-clone: created symlink /home/ebupsn/EOS_CS/cmd/clone/SCCS -> /pub/EOS_client_server/cmd/clone/SCCS
-.br
-clone: created symlink /home/ebupsn/EOS_CS/cmd/SCCS -> /pub/EOS_client_server/cmd/SCCS
-.br
-clone: created new output directory: /home/ebupsn/EOS_CS/man
-.br
-clone: created new output directory: /home/ebupsn/EOS_CS/man/man1
-.br
-clone: created new output directory: /home/ebupsn/EOS_CS/man/man3
-.br
-clone: created new output directory: /home/ebupsn/EOS_CS/man/cat1
-.br
-clone: created new output directory: /home/ebupsn/EOS_CS/man/cat3
-.br
-clone: created symlink /home/ebupsn/EOS_CS/SCCS -> /pub/EOS_client_server/SCCS
-.br
-.sp 1
-.in -0.4i
-.ft R
-.SH CAVEATS
-On BSD systems, if there are symbolic links in the source tree,
-the effects of
-.I cloning
-may not be what you expect.
-A symbolic link within the source tree results in the creation of an
-identical symbolic link within the destination tree.
-A warning is issued if the symbolic link is either absolute and points
-into the source directory or if the symbolic link is relative and
-points out of the source tree.
-.PP
-If the
-.B \-S
-option is in effect and the source directory is itself a symbolic link
-to a directory, the contents of the symbolic link are cloned in the
-destination directory rather than setting the destination directory
-to be an identical symbolic link.
-The rational for this is as follows.
-In networked environments, SCCS project directories are often configured
-as NFS file systems managed by an NFS auto-mount daemon.
-The NFS auto-mount daemon mounts NFS file systems in a temporary locations
-and then creates symbolic links to the temporary locations.
-Accesses to this symbolic links trigger the NFS auto-mount daemon.
-It is therefore necessary that symbolic links in the destination tree
-refer to the NFS auto-mount point symbolic link rather than to the NFS
-auto-mount point itself.
-Symbolic links within the source tree are ignored.
-.SH WARNINGS
-There are numerous possible warning and/or error messages which
-.I clone
-will issue for strange circumstances.
-These should all be self-explanatory.
-.SH FILES
-.ta 1.7i
-/usr/local/bin/clone The clone program
-.SH "SEE ALSO"
-ln(1), link(2), symlink(2), readlink(2), mkdir (1), mkdir (2)
-.SH AUTHORS
-Written by Ron Guilmette at the Microelectronics and Computer Technology
-Corporation. Current E-mail address is rfg@ics.uci.edu.
-.PP
-SCCS mode added 07-April-1993 by Paul Stephenson at Ericsson Business
-Communications. Current E-mail address is paul.stephenson@ebu.ericsson.se.
diff --git a/bin/clone.cpp b/bin/clone.cpp
deleted file mode 100644
index d3ab5977f6b..00000000000
--- a/bin/clone.cpp
+++ /dev/null
@@ -1,980 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-
-ACE_RCSID(bin, clone, "$Id$")
-
-#if 0
-#if defined (USG)
-#define lstat stat
-#else
-extern "C" char *getwd (char *);
-#define getcwd(str,len) (getwd(str))
-#endif
-#endif
-
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 1024
-#endif
-
-#ifndef BLKDEV_IOSIZE
-#define BLKDEV_IOSIZE 1024
-#endif
-
-#ifndef linux
-extern char *sys_errlist[];
-#endif
-static void clone (char* s_path, char* d_path, int sroot_flag, int level);
-
-static char *pname;
-static int errors = 0;
-
-static char* src_path = 0;
-static char* dst_path = 0;
-
-static int quiet_flag = 0;
-static int verbose_flag = 0;
-static int force_flag = 0;
-#ifndef USG
-static int symlink_flag = 0;
-#endif
-static int copy_flag = 0;
-static int sccs_flag = 0;
-
-static void
-usage (void)
-{
-#ifdef USG
- fprintf (stderr, "%s: usage: '%s [-q][-v][-f][-c] pathname1 pathname2'\n", pname, pname);
-#else
- fprintf (stderr, "%s: usage: '%s [-q][-v][-f][-S][-c | -s | -S] pathname1 pathname2'\n", pname, pname);
-#endif
- exit (1);
-}
-
-/* abspath(): return the absolutized pathname for the given relative
- pathname. Note that if that pathname is already absolute, it may
- still be returned in a modified form because this routine also
- eliminates redundant slashes and single dots and eliminates double
- dots to get a shortest possible pathname from the given input
- pathname. The absolutization of relative pathnames is made by
- assuming that the given pathname is to be taken as relative to the
- first argument (cwd) or to the current directory if cwd is null. */
-
-static char *
-abspath (char *cwd, char *rel_pathname)
-{
- static char cwd_buffer[MAXPATHLEN + 1];
- char abs_buffer[MAXPATHLEN + 1];
- register char *endp;
- register char *p;
- register char *inp = abs_buffer;
- register char *outp = abs_buffer;
-
- /* Setup the current working directory as needed. */
-
- if (!cwd)
- {
- if (!cwd_buffer[0])
- getcwd (cwd_buffer, MAXPATHLEN);
- cwd = cwd_buffer;
- }
- else if (*cwd != '/')
- abort (); /* base path must be absolute */
-
- /* Copy the pathname (possibly preceeded by the current working
- directory name) into the absolutization buffer. */
-
- endp = abs_buffer;
- if (rel_pathname[0] != '/')
- {
- p = cwd;
- while (*endp++ = *p++)
- continue;
- *(endp-1) = '/'; /* overwrite null */
- }
- p = rel_pathname;
- while (*endp++ = *p++)
- continue;
- if (endp[-1] == '/')
- *endp = (char) 0;
-
- /* Now make a copy of abs_buffer into abs_buffer, shortening the
- pathname (by taking out slashes and dots) as we go. */
-
- *outp++ = *inp++; /* copy first slash */
- for (;;)
- {
- if (!inp[0])
- break;
- else if (inp[0] == '/' && outp[-1] == '/')
- {
- inp++;
- continue;
- }
- else if (inp[0] == '.' && outp[-1] == '/')
- {
- if (!inp[1])
- break;
- else if (inp[1] == '/')
- {
- inp += 2;
- continue;
- }
- else if ((inp[1] == '.') && (inp[2] == 0 || inp[2] == '/'))
- {
- inp += (inp[2] == '/') ? 3 : 2;
- outp -= 2;
- while (outp >= abs_buffer && *outp != '/')
- outp--;
- if (outp < abs_buffer)
- {
- /* Catch cases like /.. where we try to backup to a
- point above the absolute root of the logical file
- system. */
-
- fprintf (stderr, "%s: fatal: invalid pathname: %s\n",
- pname, rel_pathname);
- exit (1);
- }
- *++outp = (char) 0;
- continue;
- }
- }
- *outp++ = *inp++;
- }
-
- /* On exit, make sure that there is a trailing null, and make sure that
- the last character of the returned string is *not* a slash. */
-
- *outp = (char) 0;
- if (outp[-1] == '/')
- *--outp = (char) 0;
-
- /* Make a copy (in the heap) of the stuff left in the absolutization
- buffer and return a pointer to the copy. */
-
- return strcpy ((char *) malloc (outp - abs_buffer + 1), abs_buffer);
-}
-
-static char*
-path_concat (const char* s1, const char* s2)
-{
- int s1_len;
- char* ret_val = (char *) malloc ((s1_len = strlen (s1)) + strlen (s2) + 2);
-
- strcpy (ret_val, s1);
- ret_val[s1_len] = '/';
- strcpy (&ret_val[s1_len+1], s2);
- return ret_val;
-}
-
-/* Decide if the given path (which may be relative to . or absolute) designa
-tes
- a point within the original "src_path" directory, and return non-zero if
-it
- does, or zero otherwise. */
-
-static int
-in_original_tree (char* other_path)
-{
- char* abs_src_path = abspath (NULL, src_path);
- char* abs_src_path_slash = path_concat (abs_src_path, "");
- char* abs_other_path = abspath (NULL, other_path);
- int ret_val = !strncmp (abs_src_path_slash, abs_other_path, strlen (abs_src_path_slash));
-
- free (abs_src_path);
- free (abs_src_path_slash);
- free (abs_other_path);
- return ret_val;
-}
-
-static void
-fix_mode (int new_mode, char* d_path)
-{
- if (chmod (d_path, new_mode))
- {
- if (!quiet_flag)
- fprintf (stderr, "%s: warning: can't chmod on output entity %s: %s\n",
- pname, d_path, sys_errlist[errno]);
- }
-}
-
-static int
-remove_item (char* s_path, char* d_path)
-{
- struct stat dst_stat_buf;
- DIR* dirp;
- char containing_dir[MAXPATHLEN + 1];
-
- if (lstat (d_path, &dst_stat_buf) == -1)
- {
- if (!quiet_flag)
- fprintf (stderr, "%s: error: cannot get status of %s: %s\n",
- pname, d_path, sys_errlist[errno]);
- return -1;
- }
-
- /* Before wasting a lot of time sniffing at the thing we are trying to
- delete, first make sure that we have write permission into the
- directory that contains this thing. Otherwise, it is all a waste
- of time. */
-
- if (*d_path == '/')
- strcpy(containing_dir, d_path);
- else
- {
- containing_dir[0] = '.';
- containing_dir[1] = '/';
- strcpy(containing_dir+2, d_path);
- }
- *(strrchr (containing_dir, '/')) = '\0';
- if (containing_dir[0] == '\0')
- {
- containing_dir[0] = '/';
- containing_dir[1] = '\0';
- }
- if (access (containing_dir, W_OK))
- {
- if (!quiet_flag)
- fprintf (stderr, "%s: error: don't have write access to %s: %s\n",
- pname, containing_dir, sys_errlist[errno]);
- return -1;
- }
-
- switch (dst_stat_buf.st_mode & S_IFMT)
- {
- case S_IFDIR:
- if (access (d_path, R_OK) != 0)
- {
- if (!quiet_flag)
- fprintf (stderr, "%s: error: don't have read permission for directory %s\n",
- pname, d_path);
- return -1;
- }
- if (access (d_path, X_OK) != 0)
- {
- if (!quiet_flag)
- fprintf (stderr,
- "%s: error: don't have search permission for directory %s\n",
- pname, d_path);
- return -1;
- }
- if (access (d_path, W_OK) != 0)
- {
- if (!quiet_flag)
- fprintf (stderr,
- "%s: error: don't have write permission for directory %s\n",
- pname, d_path);
- return -1;
- }
- if ((dirp = opendir (d_path)) == NULL)
- {
- if (!quiet_flag)
- fprintf (stderr,
- "%s: error: can't open directory %s for reading: %s\n",
- pname, d_path, sys_errlist[errno]);
- return -1;
- }
- for (;;)
- {
- struct dirent* dir_entry_p;
- char* new_s_path;
- char* new_d_path;
-
- if ((dir_entry_p = readdir (dirp)) == NULL)
- break;
- if (!strcmp (dir_entry_p->d_name, "."))
- continue;
- if (!strcmp (dir_entry_p->d_name, ".."))
- continue;
- new_s_path = path_concat (s_path, dir_entry_p->d_name);
- new_d_path = path_concat (d_path, dir_entry_p->d_name);
- if (remove_item (new_s_path, new_d_path))
- {
- closedir (dirp);
- return -1;
- }
- free (new_s_path);
- free (new_d_path);
- }
- closedir (dirp);
- if (rmdir (d_path))
- {
- if (!quiet_flag)
- fprintf (stderr, "%s: error: can't delete existing directory %s: %s\n",
- pname, d_path, sys_errlist[errno]);
- return -1;
- }
- if (!quiet_flag)
- fprintf (stderr, "%s: removed directory %s\n",
- pname, d_path);
- break;
-
- /* Note that symbolic links can be treated just like normal files
- when the time comes for deleting them. Unlinking a symbolic link
- just deletes the link and *not* the thing it points to. */
-
- default:
- if (unlink (d_path))
- {
- if (!quiet_flag)
- fprintf (stderr, "%s: error: can't delete existing file %s: %s\n",
- pname, d_path, sys_errlist[errno]);
- return -1;
- }
- if (!quiet_flag)
- fprintf (stderr, "%s: removed file %s\n",
- pname, d_path);
- break;
- }
- return 0;
-}
-
-#ifndef USG
-static void
-mk_symbolic_link (const char *s_path,
- const char *d_path,
- int level)
-{
- int result = 0;
-
- if (s_path[0] == '/' || level < 2)
- result = symlink (s_path, d_path);
- else
- {
- int len;
- char *new_s_path = (char *) malloc (len = strlen(s_path) + 3 * level);
- int i;
- char *cp = new_s_path;
-
- for (i = 0; i < level-1; i++)
- {
- strcpy (cp, "../");
- cp += 3;
- }
- strcpy (cp, s_path);
- result = symlink (new_s_path, d_path);
- }
- if (result)
- {
- if (!quiet_flag)
- fprintf (stderr, "%s: error: can't symlink %s to %s: %s\n",
- pname, s_path, d_path, sys_errlist[errno]);
- }
- else
- {
- if (verbose_flag)
- fprintf (stderr, "%s: created symlink %s -> %s\n",
- pname, d_path, s_path);
- }
-}
-#endif
-
-static void
-mk_hard_link (char *s_path, char *d_path)
-{
- if (link (s_path, d_path))
- {
- if (!quiet_flag)
- fprintf (stderr, "%s: error: can't link %s to %s: %s\n",
- pname, s_path, d_path, sys_errlist[errno]);
- }
- else
- {
- if (verbose_flag)
- fprintf (stderr, "%s: created hard link %s = %s\n",
- pname, d_path, s_path);
- }
-}
-
-static void
-copy_file (char *s_path, char *d_path)
-{
- int input, output;
- struct stat src_stat_buf;
-
- if (lstat (s_path, &src_stat_buf) == -1)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: can't get status of %s: %s\n",
- pname, s_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input entity %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
-
- if ((input = open (s_path, O_RDONLY, 0)) == -1)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: can't open input file %s: %s\n",
- pname, d_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input file %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
-
- if ((output = open (d_path, O_CREAT | O_WRONLY, src_stat_buf.st_mode & 07777)) == -1)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: can't create output file %s: %s\n",
- pname, d_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input file %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
-
- for (;;)
- {
- int rlen, wlen;
- char block_buf[BLKDEV_IOSIZE];
-
- if ((rlen = read (input, block_buf, BLKDEV_IOSIZE)) == -1)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: bad read from input file %s: %s\n",
- pname, s_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input file %s was not fully copied\n",
- pname, s_path);
- }
- break;
- }
-
- if (rlen == 0)
- break;
-
- if ((wlen = write (output, block_buf, rlen)) == -1 || wlen != rlen)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: bad write to output file %s: %s\n",
- pname, s_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input file %s not fully copied\n",
- pname, s_path);
- }
- break;
- }
- }
-
- close (output);
- close (input);
-
- fix_mode (src_stat_buf.st_mode & 07777, d_path);
-
- if (verbose_flag)
- fprintf (stderr, "%s: created file copy %s = %s\n",
- pname, d_path, s_path);
-}
-
-static void
-symlink_SCCS (char* s_path, char* d_path)
-{
- struct stat dst_stat_buf;
- char symlink_buf[MAXPATHLEN + 1];
- int count;
-
- if (access (d_path, F_OK)) /* Does d_path exit? */
- {
- if (errno != ENOENT)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: can't check accessability of %s: %s\n",
- pname, d_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
- }
- else /* d_path exists. What is it? */
- {
- if (lstat (d_path, &dst_stat_buf) == -1)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: unable to get status of %s: %s\n",
- pname, d_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
-
- if (S_ISLNK(dst_stat_buf.st_mode)) /* d_path is a symbolic link */
- {
- if ((count = readlink (d_path, symlink_buf, MAXPATHLEN)) == -1)
- {
- fprintf (stderr, "%s: error: can't read symlink %s: %s\n",
- pname, d_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input file %s will be ignored\n",
- pname, s_path);
- return;
- }
- symlink_buf[count] = '\0';
-
- if (!strcmp(s_path, symlink_buf)) /* symlink = s_path. Done */
- {
- return;
- }
- else /* symlink != s_path */
- {
- if (force_flag)
- {
- if (remove_item (s_path, d_path) != 0)
- return;
- }
- else
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: Symbolic link %s already exists \
- but does not point to %s\n",
- pname, d_path, s_path);
- fprintf (stderr, "%s: input s %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
- }
- }
- else /* d_path is NOT a symbolic link */
- {
- if (force_flag)
- {
- if (remove_item (s_path, d_path))
- return;
- }
- else
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: output already exists: %s\n",
- pname, d_path);
- fprintf (stderr, "%s: input %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
- }
- }
-
- if (symlink (s_path, d_path))
- {
- if (!quiet_flag)
- fprintf (stderr, "%s: error: can't symlink %s to %s: %s\n",
- pname, s_path, d_path, sys_errlist[errno]);
- }
- else
- {
- if (verbose_flag)
- fprintf (stderr, "%s: created symlink %s -> %s\n",
- pname, d_path, s_path);
- }
-}
-
-static void
-clone_dir (char* s_path, char* d_path, int level)
-{
- DIR* dirp;
-
- if (access (s_path, R_OK) != 0)
- {
- if (!quiet_flag)
- {
- fprintf (stderr,
- "%s: error: don't have read permission for input directory %s\n"
-,
- pname, s_path);
- fprintf (stderr, "%s: input directory %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
-
- if (access (s_path, X_OK) != 0)
- {
- if (!quiet_flag)
- {
- fprintf (stderr,
- "%s: error: don't have search permission for input directory %s\n",
- pname, s_path);
- fprintf (stderr, "%s: input directory %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
-
- if ((dirp = opendir (s_path)) == NULL)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: can't open directory %s for reading: %s\n",
- pname, s_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input directory %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
-
- for (;;)
- {
- struct dirent* dir_entry_p;
- char* new_s_path;
- char* new_d_path;
- char symlink_buf[MAXPATHLEN + 1];
- int len;
-
- if ((dir_entry_p = readdir (dirp)) == NULL)
- break;
- if (!strcmp (dir_entry_p->d_name, "."))
- continue;
- if (!strcmp (dir_entry_p->d_name, ".."))
- continue;
-
- new_s_path = path_concat (s_path, dir_entry_p->d_name);
- new_d_path = path_concat (d_path, dir_entry_p->d_name);
-
- if (sccs_flag && !strcmp (dir_entry_p->d_name, "SCCS"))
- symlink_SCCS(new_s_path, new_d_path);
- else
- clone (new_s_path, new_d_path, 0, level+1);
-
- free (new_s_path);
- free (new_d_path);
- }
-
- closedir (dirp);
-}
-
-static void
-clone_symbolic_link (char* s_path,char* d_path)
-{
- char symlink_buf[MAXPATHLEN + 1];
- int count;
-
- if ((count = readlink (s_path, symlink_buf, MAXPATHLEN)) == -1)
- {
- fprintf (stderr, "%s: error: can't read symlink %s: %s\n",
- pname, s_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input file %s will be ignored\n",
- pname, s_path);
- return;
- }
- symlink_buf[count] = '\0';
-
- if (symlink_buf[0] == '/') /* symlink is absolute */
- {
- if (in_original_tree (symlink_buf))
- {
- if (!quiet_flag)
- fprintf (stderr,
- "%s: warning: absolute symlink points into source tree %s -> %s\n",
- pname, s_path, symlink_buf);
- }
- }
- else /* symlink is relative */
- {
- char* src_root_relative = path_concat (s_path, symlink_buf);
- int in_orig = in_original_tree (src_root_relative);
-
- free (src_root_relative);
- if (!in_orig)
- {
- if (!quiet_flag)
- fprintf (stderr,
- "%s: warning: relative symlink points out of source tree %s -> %s\n",
- pname, s_path, symlink_buf);
- }
- }
-
- mk_symbolic_link(symlink_buf, d_path, 0); /* Make an identical symlink. */
-}
-
-
-/* clone: clone the item designated by s_path as the new item d_path. */
-
-#define IS_DIR(STAT_BUF) (((STAT_BUF).st_mode & S_IFMT) == S_IFDIR)
-
-static void
-clone (char* s_path, char* d_path, int sroot_flag, int level)
-{
- struct stat src_stat_buf;
- struct stat dst_stat_buf;
- int dir_already_exists = 0;
- const char* intype = "file";
-
- if (lstat (s_path, &src_stat_buf) == -1)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: can't get status of %s: %s\n",
- pname, s_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input entity %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
- if (sccs_flag && sroot_flag && S_ISLNK (src_stat_buf.st_mode))
- {
-
- /* If root of the source path is a symbolic link and
- SCCS cloning is enabled, clone the target of the link */
-
- if (stat(s_path, &src_stat_buf) == -1)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: can't get status of %s: %s\n",
- pname, s_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input entity %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
- }
- if (IS_DIR (src_stat_buf))
- intype = "directory";
- if (access (d_path, 0))
- {
- if (errno != ENOENT)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: can't check accessability of %s: %s\n",
- pname, d_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input %s %s will be ignored\n",
- pname, intype, s_path);
- }
- return;
- }
- }
- else
- {
- const char* outtype = "file";
-
- if (lstat (d_path, &dst_stat_buf) == -1)
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: unable to get status of %s: %s\n"
-,
- pname, d_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input %s %s will be ignored\n",
- pname, intype, s_path);
- }
- return;
- }
- if (IS_DIR (dst_stat_buf))
- outtype = "directory";
- if (IS_DIR (src_stat_buf) && IS_DIR (dst_stat_buf))
- {
- dir_already_exists = -1;
-
- /* Have to make sure that we have full access to the output
- directory (at least temporarily). */
-
- chmod (d_path, (dst_stat_buf.st_mode & 07777) | 0700);
- if (access (d_path, R_OK | W_OK | X_OK) != 0)
- {
- if (!quiet_flag)
- {
- fprintf (stderr,
- "%s: error: too few permissions for existing directory %s\n",
- pname, d_path);
- fprintf (stderr, "%s: input directory %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
- }
- else
- {
- if (force_flag)
- {
- if (remove_item (s_path, d_path))
- return;
- }
- else
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: output %s already exists: %s\n",
- pname, outtype, d_path);
- fprintf (stderr, "%s: input %s %s will be ignored\n",
- pname, intype, s_path);
- }
- return;
- }
- }
- }
-
- switch (src_stat_buf.st_mode & S_IFMT)
- {
- case S_IFDIR: /* Clone a directory */
-
- if (!dir_already_exists)
- {
- /* Don't let others sneak in.
- Only we can write the new directory (for now). */
-
- if (mkdir (d_path, 0700))
- {
- if (!quiet_flag)
- {
- fprintf (stderr, "%s: error: can't create output directory %s: %s\n",
- pname, d_path, sys_errlist[errno]);
- fprintf (stderr, "%s: input directory %s will be ignored\n",
- pname, s_path);
- }
- return;
- }
- if (verbose_flag)
- fprintf (stderr, "%s: created new output directory: %s\n",
- pname, d_path);
- }
-
- clone_dir(s_path, d_path, level);
-
- /* By default, output directories which existed before this
- program was executed are reset back to their original
- permissions (when we are done adding things to them). For
- output directories which are actually created by this program
- however, these have their permissions set so that they are
- essentially the same as the permissions for their corresponding
- input directories, except that the owner is given full
- permissions. */
-
- if (dir_already_exists)
- fix_mode (dst_stat_buf.st_mode & 07777, d_path);
- else
- fix_mode ((src_stat_buf.st_mode & 07777) | 0700, d_path);
- break;
-
-#ifndef USG
- case S_IFLNK: /* Clone a symbolic link */
-
- if (!sccs_flag)
- clone_symbolic_link (s_path, d_path);
- break;
-#endif
-
- default: /* Clone a normal file */
-
- if (sccs_flag)
- break;
-
-#ifndef USG
- if (symlink_flag)
- mk_symbolic_link(s_path, d_path, level);
- else
-#endif
- if (copy_flag)
- copy_file(s_path, d_path);
- else
- mk_hard_link(s_path, d_path);
-
- break;
- } /* switch */
-}
-
-int
-main (int argc, char *argv[])
-{
- char **argn;
-
- pname = (pname = strrchr (argv[0], '/')) ? pname+1 : argv[0];
- for (argn = argv+1; *argn; argn++)
- {
- if (**argn != '-')
- {
- if (!src_path)
- src_path = *argn;
- else if (!dst_path)
- dst_path = *argn;
- else
- usage ();
- }
- else
- {
- switch (* ((*argn)+1))
- {
- case 0:
- fprintf (stderr, "%s: invalid option: -\n", pname);
- errors = -1;
- break;
-
- case 'q':
- quiet_flag = -1;
- break;
-
- case 'v':
- verbose_flag = -1;
- break;
-
- case 'f':
- force_flag = -1;
- break;
-
-#ifndef USG
- case 'S':
- sccs_flag = -1;
-
- if (copy_flag)
- errors++;
- break;
-#endif
-
-#ifndef USG
- case 's':
- symlink_flag = -1;
- if (copy_flag)
- errors++;
- break;
-#endif
-
- case 'c':
- copy_flag = -1;
-#ifndef USG
- if (symlink_flag)
- errors++;
-
- if (sccs_flag)
- errors++;
-#endif
- break;
-
- default:
- fprintf (stderr, "%s: invalid option: -%c\n",
- pname, *((*argn)+1));
- errors = -1;
- }
- }
- }
- if (errors || src_path == 0 || dst_path == 0)
- usage ();
-#if 0 // ndef USG
- if (symlink_flag && *src_path != '/')
- {
- fprintf (stderr, "%s: error: source root pathname must be absolute when using -s\n",
- pname);
- exit (1);
- }
-#endif
- if (access (src_path, 0) == -1)
- {
- fprintf (stderr, "%s: error: accessing source root entity %s: %s\n",
- pname, src_path, sys_errlist[errno]);
- exit (1);
- }
- umask (0); /* disable all masking */
- clone (src_path, dst_path, 1, 0);
- return 0;
-}
diff --git a/bin/clone.csh b/bin/clone.csh
deleted file mode 100644
index 1c14e912d64..00000000000
--- a/bin/clone.csh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/csh
-
-set src_root=`pwd`
-set dst_root=`abspath $1`
-
-set subdirs=`find * -type d -print`
-
-mkdir $dst_root
-set files=`find * \( -type d -prune \) -o -type f -print`
-
-if ($#files) then
- ln $files $dst_root
-endif
-
-if ($#subdirs) then
- foreach subdir ($subdirs)
- cd $src_root
- mkdir $dst_root/$subdir
- cd $src_root/$subdir
- set files=`find * \( -type d -prune \) -o -type f -print`
- if ($#files) then
- ln $files $dst_root/$subdir
- endif
- end
-endif
-exit 0
diff --git a/bin/corba-boolean.perl b/bin/corba-boolean.perl
deleted file mode 100755
index 92e793fc941..00000000000
--- a/bin/corba-boolean.perl
+++ /dev/null
@@ -1,19 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -pi -S $0 ${1+"$@"}'
- & eval 'exec perl -pi -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# You may want to run the "find" command with this script, which maybe
-# something like this:
-#
-# find . -type f \( -name "*.i" -o -name "*.h" -o -name "*.C" -o -name "*.cc" -o -name "*.c" -o -name "*.cpp" -o -name "*.hpp" -o -name "*.ipp" \) -print | xargs $ACE_ROOT/bin/corba-boolean.perl
-
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-s/CORBA::B_FALSE/0/g;
-s/CORBA::B_TRUE/1/g;
-s/CORBA_B_FALSE/0/g;
-s/CORBA_B_TRUE/1/g;
diff --git a/bin/count_lines b/bin/count_lines
deleted file mode 100755
index e2ba66d945f..00000000000
--- a/bin/count_lines
+++ /dev/null
@@ -1,234 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# -*- perl -*-
-# $Id$
-#
-
-use File::Basename;
-
-$cmd= basename($0);
-
-if ($#ARGV < 0) {
- die "Usage: $cmd module...\n";
-}
-
-@match_order = ();
-%typeRE = ();
-
-&initfiletypes;
-
-foreach $module (@ARGV) {
- if ( ! -d $module ) {
- warn "$cmd: no such directory $module\n";
- next;
- }
-
- open(DIRS, "find $module -type d|");
- @dirs = grep {if(!/CVS/) {chop;}} <DIRS>;
- close(DIRS);
-
- open(FIND, "find $module -type f|");
- @files = grep {if (!/build/
- && !/CVS/
- && !/rpc\+\+/
- && !/\.bpr$/
- && !/\.mdp$/
- && !/\.MDP$/
- && !/\.dsp$/
- && !/\.DSP$/
- && !/\.dsw$/
- && !/\.DSW$/
- && !/\.mak$/
- && !/\.MAK$/
- && !/\.o$/
- && !/\.sl$/
- && !/\.a$/) {chop;}} <FIND>;
- close(FIND);
-
- $totdirs = $#dirs;
- $totfiles = $#files;
- $totlines = 0;
- %lines = ();
-
- foreach $file (@files) {
- $n = 0;
- if (!open(IN, $file)) {
- warn "$cmd: cannot open '$file' for reading\n";
- next;
- }
- while(<IN>) {
- $n++;
- }
- close(IN);
- $lines{$file} = $n;
- $totlines += $n;
- }
-
-
- # Define two associative arrays to keep the results for each kind
- # of file.
- %linespertype = ();
- %filespertype = ();
- foreach $type (keys %typeRE) {
- $linespertype{$type} = 0;
- $filespertype{$type} = 0;
- }
- # The file is classified and added to the corresponding variable.
- FILE: while (($file, $l) = each %lines) {
- foreach $type (@match_order) {
- $re = $typeRE{$type};
- if($file =~ m/$re/) {
- $linespertype{$type} += $l;
- $filespertype{$type}++;
- next FILE;
- }
- }
- print STDERR "Unmatched file: $file\n";
- }
-
- format STDOUT_TOP=
- @|||
- $%
-
- Lines of code in module @<<<<<<<<<<<<<<<<<<<<
- $module
-
-Files: @>>>>>>>>
- $totfiles
-Directories: @>>>>>>>>
- $totdirs
-Lines: @>>>>>>>>
- $totlines
-
-File type lines files
----------------------------- ------------------ -----------------
-.
- format STDOUT=
-@<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>>>>>>>>>>>>> @>>>>>>>>>>>>>>>>
-$type, $typelines, $typefiles
-.
-
-
- foreach $type (@match_order) {
- $typelines = $linespertype{$type};
- $typefiles = $filespertype{$type};
- if ($typefiles != 0) {
- write;
- }
- }
- # Forzamos un newpage para cada modulo.
- $- = 0;
-}
-
-sub updateRE {
- local $desc = shift;
- local $re = shift;
-
- if (exists $typeRE{$desc}) {
- local $mix = $typeRE{$desc} . '|(' . $re . ')';
- $typeRE{$desc} = $mix;
- } else {
- $typeRE{$desc} = '(' . $re . ')';
- push @match_order, $desc;
- }
-}
-
-sub initfiletypes {
- # Here we define the regular expressions for each kind of file.
- # This RE must be mutually exclusive, a file will not be counted
- # twice, but it could be unproperly classified.
-
- local %filenames =
- ('Makefile' => 'Makefile',
- 'Makefile.*' => 'Makefile',
- 'README' => 'README files',
- 'COPYING' => 'Licenses',
- 'LICENSE.*' => 'Licenses',
- 'ChangeLog.*' => 'ChangeLog',
- 'ChangeLog-.*' => 'ChangeLog',
- '.cvsignore' => 'Control CVS',
- 'run_test.pl' => 'Test driver',
- 'run_test' => 'Test driver',
- 'run_tests' => 'Test driver',
- 'run_test.sh' => 'Test driver');
- local %fileexts =
- ('cc' => 'C++ sources',
- 'cpp' => 'C++ sources',
- 'inl' => 'C++ sources',
- 'i' => 'C++ sources',
- 'h' => 'Headers',
- 'hh' => 'Headers',
- 'c' => 'C/C++ sources',
- 'idl' => 'IDL sources',
- 'IDL' => 'IDL sources',
- 'pidl' => 'IDL sources',
- 'y' => 'yacc source',
- 'yy' => 'yacc source',
- 'l' => 'lex source',
- 'll' => 'lex source',
- 'pm' => 'perl script',
- 'pl' => 'perl script',
- 'perl' => 'perl script',
- 'GNU' => 'GNU make config',
- 'tex' => '(La)TeX',
- 'txt' => 'Text files',
- '1' => 'man pages',
- '3' => 'man pages',
- 'html' => 'HTML',
- 'bib' => 'BibTeX',
- 'sty' => 'TeX styles',
- 'bld' => 'VxWorks build file',
- 'am' => 'Automake file',
- 'icc' => 'VisualAge project files',
- 'icp' => 'VisualAge project files',
- 'vac' => 'VisualAge project files',
- 'vcp' => 'Microsof eMbedded Visual Tools project files',
- 'vcw' => 'Microsof eMbedded Visual Tools project files',
- 'bpr' => 'Borland project files',
- 'bor' => 'Borland project files',
- 'dsp' => 'DevStudio project files',
- 'DSP' => 'DevStudio project files',
- 'mdp' => 'MSVC project files',
- 'MDP' => 'MSVC project files',
- 'dsw' => 'MSVC workspaces',
- 'DSW' => 'MSVC workspaces',
- 'mak' => 'MSVC MAK files',
- 'MAK' => 'MSVC MAK files',
- 'java' => 'JAVA source',
- 'class' => 'JAVA class',
- 'cccc' => 'codecount output',
- 'gif' => 'GIF images',
- 'conf' => 'Svc_Config files',
- 'diff' => 'patches',
- 'zip' => 'Compressed files',
- 'gz' => 'Compressed files',
- 'EXE' => 'Win32 executable',
- 'shar' => 'Shar archive',
- 'mib' => 'MIB definition files',
- 'gperf' => 'GPERF input',
- 'phil.*'=> 'Test driver'
- );
- local %paths = ();
-
- local ($desc, $reseed);
- while (($reseed, $desc) = each %filenames) {
- local $re = '/' . $reseed . '$';
- updateRE($desc, $re);
- }
- while (($reseed, $desc) = each %fileexts) {
- local $re = '/[^/]*\.' . $reseed . '$';
- updateRE($desc, $re);
- }
- while (($reseed, $desc) = each %paths) {
- local $re = $reseed;
- updateRE($desc, $re);
- }
-
- updateRE('Others', '.*');
-
-# while (($desc, $reseed) = each %typeRE) {
-# print STDERR $desc, " ==> ", $reseed, "\n";
-# }
-}
diff --git a/bin/create_ace_build b/bin/create_ace_build
deleted file mode 100755
index 9c917d564b8..00000000000
--- a/bin/create_ace_build
+++ /dev/null
@@ -1,182 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# Creates an ACE build tree in directory "build/<build name>" below the current
-# directory, which must be an ACE "top level" directory (such as
-# $ACE_ROOT). The build tree directory structure mirrors that of the ACE
-# top level directory structure, except that instead of containing any plain
-# files, it contains only symlinks to the files in the ACE top level structure.
-#
-# This program has a similar purpose to "clone", but in addition to
-# only creating symlinks (clone creates hard links, by default), this
-# script:
-# 1) uses relative rather than absolute symlinks,
-# 2) tries not to put junk files into the build tree,
-# 3) only creates a new tree in a build/ directory below the current,
-# top level ACE directory (it's a feature :-), but it does enforce
-# consistency).
-#
-# This program can be re-run on a build tree at any time in order to
-# update it. It will add symlinks for newly added files, and remove
-# any that are no longer valid.
-#
-# If the <build name> starts with "build/", that part will be removed
-# from it.
-#
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-$usage = "usage: $0 -? | [-a] [-d <directory mode>] [-v] <build name>\n";
-$directory_mode = 0777; #### Will be modified by umask, also.
-$verbose = 0;
-
-$source='.';
-$absolute= 0;
-
-$perl_version = $] + 0;
-if ($perl_version >= 5) {
- #### Use an eval so that this script will compile with perl4.
- eval <<'PERL5_CWD'
- require Cwd;
- sub cwd {
- Cwd::getcwd ();
- }
-PERL5_CWD
-} else {
- sub cwd {
- local ($pwd);
-
- chop ($pwd = `pwd`);
- $pwd;
- }
-}
-
-####
-#### Process command line args.
-####
-while ($#ARGV >= 0 && $ARGV[0] =~ /^-/) {
- if ($ARGV[0] eq '-v') {
- $verbose = 1;
- } elsif ($ARGV[0] eq '-d') {
- if ($ARGV[1] =~ /^\d+$/) {
- $directory_mode = eval ($ARGV[1]); shift;
- } else {
- warn "$0: must provide argument for -d option\n";
- die $usage;
- }
- } elsif ($ARGV[0] eq '-a') {
- $source = &cwd ();
- $absolute = 1;
- } elsif ($ARGV[0] eq '-?') {
- print "$usage";
- exit;
- } else {
- warn "$0: unknown option $ARGV[0]\n";
- die $usage;
- }
- shift;
-}
-
-die $usage unless $#ARGV == 0;
-$build = $ARGV[0];
-$build =~ s%^build/%%; #### remove leading "build/", if any
-$build = "build/$build";
-
-if (-e '/usr/bin/find') {
- $find = '/usr/bin/find';
-} elsif (-e '/bin/find') {
- $find = '/bin/find';
-} else {
- $find = '/find';
-}
-
-####
-#### Check that we're in an ACE "top level" directory.
-####
-(-d 'ace' && -d 'include') ||
- die "$0: must be in an ACE top level (ACE_ROOT) directory!\n";
-
-####
-#### Create build directories, if needed.
-####
--d 'build' || mkdir ('build', $directory_mode);
--d "$build" || mkdir ("$build", $directory_mode);
-
-####
-#### Get all ACE plain file and directory names.
-####
-@files = (`$find . -name CVS -prune \\\
- -o -name build -prune -o \\\
- -name '.*obj' -prune -o -name Templates.DB -prune -o \\\
- \\( ! -type l ! -name core ! -name '*.state' ! -name '*.so' \\\
- ! -name '*.[oa]' ! -name '*~' ! -name '.' ! -name '.#*' \\\
- ! -name '*.log' \\) \\\
- -print`);
-
-####
-#### Create directories and symlinks to files.
-####
-foreach $file (@files) {
- chop $file; #### remove trailing newline (from find command above)
- $file =~ s%^./%%g; #### excise leading ./ directory component
-
- if (-d $file) {
- unless (-d "$build/$file") {
- print "mkdir $build/$file, $directory_mode\n" if $verbose;
- mkdir ("$build/$file", $directory_mode);
- }
- } else {
- unless (-e "$build/$file") {
- if (!$absolute) {
- $up = '../..';
- while ($file =~ m%/%g) {
- $up .= '/..';
- }
-
- print "symlink $up/$file $build/$file\n" if $verbose;
- symlink ("$up/$file", "$build/$file") ||
- warn "$0: symlink to $build/$file failed\n";
- } else {
- $path = $source . '/' . $file;
- print "symlink $path $build/$file\n" if $verbose;
- symlink ("$path", "$build/$file") ||
- warn "$0: symlink to $build/$file failed\n";
- }
- }
- }
-}
-
-####
-#### Find all the symlinks in the build directory, and remove ones
-#### that are no longer actually linked to a file.
-####
-open (LINKS, "$find $build -type l |") ||
- die "$0: cannot find symlinks in $build\n";
-
-while (<LINKS>) {
- chop;
- local @s = stat $_;
- if ($#s == -1) {
- print "Removing $_ \n" if $verbose;
- unlink $_ || warn "$0: unlink of $_ failed\n";
- }
-}
-close (LINKS) ||
- die "$0: cannot close symlinks pipe\n";
-
-####
-#### Done: print message.
-####
-print "\nCompleted creation of $build/.\n";
-
-unless (-e "$build/ace/config.h" &&
- -e "$build/include/makeinclude/platform_macros.GNU") {
- print "Be sure to setup $build/ace/config.h and\n" .
- "$build/include/makeinclude/platform_macros.GNU symlinks.\n";
-}
-
-#### EOF
diff --git a/bin/cvslog b/bin/cvslog
deleted file mode 100755
index 1330db622f8..00000000000
--- a/bin/cvslog
+++ /dev/null
@@ -1,169 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# Wraps cvs log, and substitutes messages of form "ChangeLogTag"
-# with their corresponding ChangeLog entries.
-#
-# Authors: Luther J. Baker and David L. Levine
-
-####
-#### global
-####
-use strict;
-my $dir_sep = $^O eq 'MSWin32' ? '\\' : '/';
-my $cvs_log_options = '';
-my @changelogs = ();
-my %changelog_hash = ();
-
-
-####
-#### main (I do this for reading clarity)
-####
-{
- ####
- #### Save any command line options (beginning with -), to pass to cvs log.
- ####
- while ($#ARGV >= $[ && $ARGV[0] =~ /^-/) {
- $cvs_log_options .= $cvs_log_options ? " " . shift : shift;
- }
-
- ####
- #### Build up the array of ChangeLog files to search,
- ####
- &find_changelogs($ARGV[0]);
-
- ####
- #### Build the hash table of key=tags value=entry
- ####
- &build_changelog_hash();
-
-
- ####
- #### Print the cvs log for each filename argument.
- #### Inserting expanded entries after ChangeLog tags
- ####
- foreach my $arg (@ARGV) {
- &print_log ($arg);
- }
-}
-
-
-####
-#### Function surrounding cvs log
-####
-sub print_log () {
- my $file = shift;
-
- open (CVSLOG, "cvs log $cvs_log_options $file |") ||
- die "$0: unable to open cvs log\n";
-
- while (<CVSLOG>) {
-
- if (/ChangeLog(Tag)?: *(.*)/i ||
- /ChangeLog( *Entry)?: *(.*)/i) {
-
- chomp;
- print "$_:\n";
-
- # An array reference HAS to be defined, the following will NOT work
- # print "$changelog_hash{$2})" || "ChangeLogTag NOT FOUND!!!!\n";
-
- if (defined $changelog_hash{$2}) {
- print "@{$changelog_hash{$2}}";
- } else {
- print "\n\tChangeLogTag \"$2\" NOT FOUND!!!!\n\n";
- }
-
- } else {
- print;
- }
- }
-
- close CVSLOG;
-}
-
-
-####
-#### Build the hash
-####
-sub build_changelog_hash () {
- my $key = 0;
- my @entry = ();
-
- foreach my $changelog_file (@changelogs) {
-
- open (CHANGELOG, $changelog_file) ||
- die "$0: unable to open '$changelog_file'\n";
-
- while (<CHANGELOG>) {
- if (/^\w/) {
- if ($key) {
- if (defined $changelog_hash{$key}) {
- #### Deal with multiple identical ChangeLogTags.
- push @{$changelog_hash{$key}}, @entry;
- } else {
- $changelog_hash{$key} = [ @entry ];
- }
- }
- @entry = ();
- chomp;
- $key = $_;
- }
- else {
- push @entry, $_;
- }
- }
-
- close CHANGELOG;
- }
-}
-
-
-####
-#### Find the ChangeLog(s) associated with the file.
-####
-sub find_changelogs () {
- my $file = shift;
-
- if ($#changelogs >= 0) {
- @changelogs;
- } else {
- my $pwd = &basename ($file) || '.';
-
- #### The [C] ensures that the glob will actually look for the file.
- while (! (@changelogs =
- glob ("$pwd/[C]hangeLog " .
- "$pwd/[C]hangeLog-97 " . #### ACE_wrappers/TAO
- "$pwd/[C]hangeLog-97b " . #### ACE_wrappers
- "$pwd/ChangeLog-9[89]* " .
- "$pwd/ChangeLog-0*"))) {
- if ($pwd !~ m%^${dir_sep}%) {
- #### We're starting with a relative path. Get the
- #### absolute path.
- chomp ($pwd = `pwd`);
- $pwd .= "/$file";
- }
-
- $pwd = &basename ($pwd);
-
- if ($pwd eq '') {
- warn "$0: ChangeLog NOT FOUND for '$file'!!!!\n";
- return ();
- }
- }
- }
-}
-
-
-####
-#### Return directory component of a filename, without trailing $dir_sep.
-#### Return '' if there is no directory component.
-####
-sub basename () {
- my $filename = shift;
-
- $filename =~ s%[${dir_sep}][^${dir_sep}]+$%% ? $filename : '';
-}
diff --git a/bin/doxygen-convert-h.pl b/bin/doxygen-convert-h.pl
deleted file mode 100755
index 3fcfc64abe0..00000000000
--- a/bin/doxygen-convert-h.pl
+++ /dev/null
@@ -1,527 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# doxygen-convert-h.pl is a script that would be used to convert old
-# documented style ACE/TAO header files to doxygen style.
-
-# TODO List:
-# (Search for @todo in this script)
-
-use File::Copy;
-use Getopt::Std;
-
-##############################################################################
-# Parse the options
-
-if (!getopts ('dDhsu') || $opt_h) {
- print "doxygen-convert-h.pl [-dDhsu] filename\n";
- print "\n";
- print " -d debug script\n";
- print " -D really verbose debug\n";
- print " -h display this help\n";
- print " -s print result to stdout\n";
- print " -u turn off file verification\n";
- exit (1);
-}
-
-## if verbose debug, also regular debug
-$opt_d = 1 if (defined $opt_D);
-
-##############################################################################
-# Find the files
-
-@files = ();
-
-foreach $arg (@ARGV) {
- my @results = glob $arg;
- if ($#results < 0) {
- print STDERR "File not Found: $arg\n"
- }
- push @files, @results;
-}
-
-##############################################################################
-# Subroutines used to change the file.
-
-$fail = 0;
-
-sub verify (@)
-{
- my (@contents) = @_;
-
- print "Verification\n" if (defined $opt_d);
-
- my $found_id = 0;
- my $found_filename = 0;
-
- foreach $line (@contents) {
- $found_id = 1 if ($line =~ /\$Id\:/);
- $found_filename = 1 if ($line =~ /\= FILENAME/);
- }
-
- return 0 if ($found_id == 1 && $found_filename == 1);
-
- # failed
- return 1;
-}
-
-sub format_description (@)
-{
- my (@description) = @_;
- my @after = ();
-
- my $line;
-
- if ($#description < 1) {
- foreach $line (@description) {
- $line =~ s/\/\// \* \@brief /;
- push @after, $line;
- }
- }
- else {
- foreach $line (@description) {
- $line =~ s/\/\// \*/;
- $line =~ s/\* /\* /;
- push @after, $line;
- }
- }
-
- return @after;
-}
-
-sub fix_file_header (@)
-{
- my (@before) = @_;
- my @after = ();
- my @description = ();
- my $id = "\$Id\$\n";
- my $authors = "";
-
- my $state = 'before';
- ## state = before, filename, description, author, after, done
-
- print "Fixing File Header\n" if (defined $opt_d);
-
- LOOP: foreach $line (@before) {
- printf ("%10s %s", $state, $line) if (defined $opt_D);
-
- if ($state eq 'done') {
- push @after, $line;
- next LOOP;
- }
-
- if ($state eq 'before') {
- if ($line =~ /\-\*\- C\+\+ \-\*\-/) {
- push @after, $line;
- }
- elsif ($line =~ /\$Id\:(.*)\n/) {
- $id = "\$Id\:$1";
- }
- elsif ($line =~ /===================/) {
- push @after, "//========================================".
- "=====================================\n";
- push @after, "/**\n";
- }
- elsif ($line =~ /\= FILENAME/) {
- $state = 'filename';
- next LOOP;
- }
- elsif ($line !~ /^\s*\/\//) {
- push @after, $line;
- }
- }
-
- if ($state eq 'filename') {
- if ($line =~ /\/\/ (.+)/) {
- push @after, " * \@file $1\n";
- push @after, " *\n";
- push @after, " * $id\n";
- push @after, " *\n";
- }
- elsif ($line =~ /\= DESCRIPTION/) {
- $state = 'description';
- next LOOP;
- }
- elsif ($line =~ /\= AUTHOR/) {
- $state = 'author';
- next LOOP;
- }
- elsif ($line =~ /===================/) {
- $state = 'after';
- ### Fall through so the after can put the ending in
- }
- }
-
- if ($state eq 'description') {
- if ($line =~ /\= AUTHOR/) {
- push @after, format_description (@description);
- @description = ();
- push @after, " *\n";
- $state = 'author';
- next LOOP;
- }
- elsif ($line =~ /===================/) {
- push @after, format_description (@description);
- @description = ();
- push @after, " *\n";
- $state = 'after';
- ### Fall through
- }
- push @description, $line;
- }
- if ($state eq 'author') {
- if ($line =~ /\/\/ (.+)\n/) {
- $authors .= $1;
- }
- elsif ($line =~ /===================/
- || $line =~ /\= DESCRIPTION/) {
- ## print the authors
-
- if ($authors ne "") {
- @authors = split /\,/, $authors;
-
- foreach $author (@authors) {
- if ($author =~ /^ (.*)/) {
- $author = $1;
- }
- push @after, " * \@author $author\n";
- }
- }
-
- if ($line =~ /\= DESCRIPTION/) {
- push @after, " *\n";
- $state = 'description';
- next LOOP;
- }
- else {
- $state = 'after';
- ## Fall through
- }
- }
- }
-
- if ($state eq 'after') {
- if ($line =~ /===================/) {
- ## print the rest
- push @after, " */\n";
- push @after, "//========================================".
- "=====================================\n";
- push @after, "\n";
- $state = 'done';
- }
-
- next LOOP;
- }
- }
-
- return @after;
-}
-
-
-sub fix_class_headers (@)
-{
- my (@before) = @_;
- my @after = ();
- my @store = ();
- my $classname = "";
-
- my $state = 'outside';
- ## state =
- ## outside = not in class
- ## template = stored template line
- ## class = started collecting lines, in case of a class
- ## header = after a class foo, but before any methods
-
- print "Fixing class headers\n" if (defined $opt_d);
-
- LOOP: foreach $line (@before) {
- printf ("%10s %s", $state, $line) if (defined $opt_D);
-
- if ($state eq 'outside') {
- if ($line =~ /^\s*template/) {
- push @store, $line;
- $state = 'template';
- next LOOP;
- }
- elsif ($line =~ /^\s*class/) {
- $state = 'class';
- ## Fall through
- }
- else {
- push @after, $line;
- }
-
- }
-
- if ($state eq 'template') {
- if ($line =~ /^\s*class/) {
- $state = 'class';
- ## Fall through
- }
- else {
- push @after, @store;
- @store = ();
- push @after, $line;
- $state = 'outside';
- next LOOP;
- }
- }
-
- if ($state eq 'class') {
- if ($line =~ /^\s*class(.*)\n/) {
- push @store, $line;
- my @s = split / /, $1;
- if ($s[1] =~ /export$/i) {
- $classname = $s[2];
- }
- else {
- $classname = $s[1];
- }
- }
- elsif ($line =~ /^\s*\{/) {
- push @store, $line;
- }
- elsif ($line =~ /^\s*\/\//) {
- $state = 'header';
- ### Fall through
- }
- else {
- push @after, @store;
- @store = ();
- push @after, $line;
- $state = 'outside';
- next LOOP;
- }
- }
-
- if ($state eq 'header') {
- if ($line =~ /^\s*\/\//) {
- push @headers, $line;
- }
- else {
- my $prefix = '';
-
- $line =~ /^(\s*)[\w\/]/; ### used to get indent
- my $indent = $1;
- push @after, "$indent/**\n";
- push @after, "$indent * \@class $classname\n";
-
- foreach $header (@headers) {
- if ($header =~ /\= TITLE/) {
- push @after, "$indent *\n";
- $prefix = "$indent * \@brief";
- }
- elsif ($header =~ /\= DESCRIPTION/) {
- push @after, "$indent *\n";
- $prefix = "$indent *";
- }
- elsif ($header !~ /\/\/\s*\n/) {
- my $myline = $header;
- $myline =~ s/\s*\/\/\s*/$prefix /;
- push @after, $myline;
- $prefix = "$indent *";
-
- }
- }
- push @after, "$indent */\n";
- @headers = ();
-
- push @after, @store;
- push @after, $line;
- @store = ();
- $state = 'outside';
- next LOOP;
- }
- }
- }
-
- return @after;
-}
-
-
-sub format_comment (@)
-{
- my (@comments) = @_;
- my @after = ();
-
- my $line;
-
- if ($#comments < 2) {
- foreach $line (@comments) {
- $line =~ s/\/\//\/\/\//;
- push @after, $line;
- }
- }
- else {
- my $line = $comments[0];
- $line =~ /^(\s*)\//;
- my $indent = $1;
-
- push @after, "$indent/**\n";
- foreach $line (@comments) {
- $line =~ s/\/\// */;
- push @after, $line;
- }
- push @after, "$indent */\n";
- }
-
- return @after;
-}
-
-sub fix_class_members (@)
-{
- my (@before) = @_;
- my @after = ();
- my @method = ();
- my @comment = ();
-
- my $classfound = 0;
- my $classlevel = 0;
- my $level = 0;
-
- print "Fixing class methods\n" if (defined $opt_d);
-
- LOOP: foreach $line (@before) {
- if ($line =~ /\{/ && $line !~ /^\s*\/\//) {
- $level++;
- }
-
- if ($line =~ /^\s*class/
- && $line !~ /\;/
- && $level == $classlevel)
- {
- $classlevel++;
- }
-
- if ($line =~ /\}/ && $line !~ /^\s*\/\//) {
- if ($classlevel == $level) {
- $classlevel--;
- }
- $level--;
- }
-
- printf ("%2d%2d", $level, $classlevel) if (defined $opt_D);
-
- if ($level == $classlevel && $level > 0) {
- if ($line =~ /^\s*public/
- || $line =~ /^\s*private/
- || $line =~ /\s*protected/
- || $line =~ /^\s*\n$/
- || $line =~ /^\s*\{/
- || $line =~ /^\s*\}/
- || $line =~ /^\s*\#/)
- {
- push @after, format_comment (@comment);
- push @after, @method;
- @comment = ();
- @method = ();
-
- print " $line" if (defined $opt_D);
- push @after, $line;
- }
- elsif ($line =~ /^\s*\/\//) {
- print "C $line" if (defined $opt_D);
-
- if ($#method >= 0) {
- push @comment, $line;
- }
- else {
- push @after, $line;
- }
- }
- else {
- print "M $line" if (defined $opt_D);
- push @method, $line;
- }
-
- }
- else {
- push @after, format_comment (@comment);
- push @after, @method;
- @comment = ();
- @method = ();
-
- print " $line" if (defined $opt_D);
- push @after, $line;
- }
- }
-
- if ($level > 0 || $classlevel > 0) {
- $fail = 1;
- $failmessage = "Brace level recognition failed"
- }
-
- return @after;
-}
-
-##############################################################################
-# Read in the files.
-
-FILELOOP: foreach $file (@files) {
- print "\n" if (defined $opt_d);
- print "$file\n";
- print "\n" if (defined $opt_d);
-
- $fail = 0;
-
- my @contents = ();
-
- ### Read file into @contents
- print "Reading\n" if (defined $opt_d);
-
- unless (open (FILE, "<$file")) {
- print STDERR "$file: $!\n";
- next FILELOOP;
- }
-
- @contents = <FILE>;
-
- close (FILE);
-
- ### Verify file
- print "Verifying file\n" if (defined $opt_d);
-
- if (!defined $opt_u) {
- if (verify (@contents) == 1) {
- print "$file did not pass verification\n";
- next FILELOOP;
- }
- elsif (defined $opt_d) {
- print "Passed verification\n";
- }
- }
-
- ### Fix up parts of it
- print "Fixing file\n" if (defined $opt_d);
-
- @contents = fix_file_header (@contents);
- @contents = fix_class_headers (@contents);
- @contents = fix_class_members (@contents);
-
- if ($fail != 0) {
- print "$file: $failmessage\n";
- }
- else {
- if (defined $opt_s) {
- print @contents;
- }
- elsif (!defined $opt_D) {
- ### Save @contents back to the file
- print "Saving\n" if (defined $opt_d);
-
- unless (open (FILE, ">$file")) {
- print STDERR "$file: $!\n";
- next FILELOOP;
- }
-
- foreach $line (@contents) {
- print FILE $line;
- }
-
- close (FILE);
- }
- }
-}
-
diff --git a/bin/dsp2dsp.pl b/bin/dsp2dsp.pl
deleted file mode 100755
index 962127a8f11..00000000000
--- a/bin/dsp2dsp.pl
+++ /dev/null
@@ -1,29 +0,0 @@
-# $Id$
-#
-# File: dsp2dsp.pl
-# Description: This perl script is used to "create" new dsp files
-# by modifying an existing dsp file.
-# Requirement: perl for Win32.
-# Usage: perl dsp2dsp.pl Basic_Types_Test Atomic_Op_Test
-# This will create Atomic_Op_Test.dsp by using
-# Basic_Types_Test.dsp as a template.
-#
-# Author: Nanbor Wang <nanbor@cs.wustl.edu>
-
-die "$0 requires two arguments.\n" if $#ARGV < 1;
-$TOFILE="$ARGV[1].dsp" ;
-die "$TOFILE already exists. Remove it first.\n" if -e $TOFILE;
-
-$FROM = $ARGV[0];
-$TO = $ARGV[1];
-
-open (FROM, "<$FROM.dsp");
-open (TO, ">$TO.dsp");
-
-while (<FROM>)
-{
- s/$FROM/$TO/g;
- print TO ;
-}
-
-close (TO);
diff --git a/bin/envinfo.cpp b/bin/envinfo.cpp
deleted file mode 100644
index ff05e328f48..00000000000
--- a/bin/envinfo.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// $Id$
-
-#include "ace/ACE.h"
-
-ACE_RCSID(bin, envinfo, "$Id$")
-
-int
-main (int, ACE_TCHAR *[])
-{
- cerr << "ACE: "
- << ACE::major_version() << "."
- << ACE::minor_version() << "."
- << ACE::beta_version() << "\n";
-
- ACE_utsname uname;
- ACE_OS::uname(&uname);
- cerr << "OS: "
- << uname.sysname << " "
- << uname.release << "\n";
-
- cerr << "Compiler: "
- << ACE::compiler_name() << " "
- << ACE::compiler_major_version() << "."
- << ACE::compiler_minor_version() << "."
- << ACE::compiler_beta_version() << "\n";
-
- return 0;
-}
-
diff --git a/bin/footprint_stats.sh b/bin/footprint_stats.sh
deleted file mode 100755
index f8b9d540b4e..00000000000
--- a/bin/footprint_stats.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-#
-
-if [ $# -lt 3 ]; then
- echo "Usage: $0 <ACE_ROOT> <DEST> <DATE>"
- exit 0
-fi
-
-ACE_ROOT=$1
-DEST=$2
-DATE=$3
-
-BINS="TAO/tests/ORB_init/ORB_init TAO/tests/ORB_destroy/ORB_destroy"
-
-LIBS="ace/libACE.a \
- TAO/tao/libTAO.a \
- TAO/tao/PortableServer/libTAO_PortableServer.a \
- TAO/tao/Strategies/libTAO_Strategies.a \
- TAO/tao/DynamicAny/libTAO_DynamicAny.a \
- TAO/tao/DynamicInterface/libTAO_DynamicInterface.a \
- TAO/tao/IFR_Client/libTAO_IFR_Client.a \
- TAO/tao/BiDir_GIOP/libTAO_BiDirGIOP.a \
- TAO/tao/Domain/libTAO_Domain.a \
- TAO/tao/IORManipulation/libTAO_IORManip.a \
- TAO/tao/IORTable/libTAO_IORTable.a \
- TAO/tao/TypeCodeFactory/libTAO_TypeCodeFactory.a \
- TAO/tao/SmartProxies/libTAO_SmartProxies.a \
- TAO/tao/RTCORBA/libTAO_RTCORBA.a \
- TAO/tao/RTPortableServer/libTAO_RTPortableServer.a"
-
-cd $ACE_ROOT
-
-for i in $BINS; do
- b=`basename $i`
- if [ -x $i ]; then
- (
- echo -n $DATE " ";
- size $i |
- grep -v text |
- awk '{print $4}'
- ) >> $DEST/source/${b}_size.txt
- fi
-done
-
-for i in $LIBS; do
- b=`basename $i`;
- if [ -f $i ]; then
- (
- echo -n $DATE " ";
- size $i |
- awk '{s += $4} END {print s}'
- ) >> $DEST/source/${b}_size.txt
- fi
-done
-
-cd $DEST/source
-
-for i in $LIBS $BINS; do
- b=`basename $i`
- /usr/bin/tac ${b}_size.txt > $DEST/data/${b}_size.txt
- /usr/bin/tail -5 ${b}_size.txt > $DEST/data/LAST_${b}_size.txt
- $ACE_ROOT/bin/generate_footprint_chart.sh ${b}_size.txt $DEST/images/${b}_size.png $b
-done
diff --git a/bin/fuzz.pl b/bin/fuzz.pl
deleted file mode 100755
index 1566131e832..00000000000
--- a/bin/fuzz.pl
+++ /dev/null
@@ -1,817 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# Fuzz is a script whose purpose is to check through ACE/TAO files for
-# easy to spot (by a perl script, at least) problems.
-
-use File::Find;
-use Getopt::Std;
-
-###### TODO
-#
-# Add tests for these:
-#
-# - Using TAO_TRY macros instead of ACE_TRY
-# - no relative path to tao_idl in the .dsp files
-# - Linking to wrong type of library in dsp's
-# - not setting up the release configs correctly in dsp files
-# - Guards in .h files
-# - no global functions
-# - other commit_check checks, tabs, trailing spaces.
-# - _narrow() should always have ACE_TRY_ENV
-# - Using ACE_TRY_NEW_ENV (Nanbor suggests using ACE_DECLARE_NEW_CORBA_ENV)
-#
-# And others in ACE_Guidelines and Design Rules
-#
-# Also add a -g flag to ignore tao_idl generated files
-#
-###### END TODO
-
-# Lists of all the files
-@files_cpp = ();
-@files_inl = ();
-@files_h = ();
-@files_html = ();
-@files_dsp = ();
-@files_idl = ();
-@files_pl = ();
-
-# To keep track of errors and warnings
-$errors = 0;
-$warnings = 0;
-
-##############################################################################
-
-# Find_Modified_Files will use 'cvs -nq' to get a list of locally modified
-# files to look through
-sub find_mod_files ()
-{
- unless (open (CVS, "cvs -nq up |")) {
- print STDERR "Error: Could not run cvs\n";
- exit (1);
- }
-
- while (<CVS>) {
- if (/^[M|A] (.*)/) {
- store_file ($1);
- }
- }
- close (CVS);
-}
-
-
-
-# Find_Files will search for files with certain extensions in the
-# directory tree
-sub find_files ()
-{
- # wanted is only used for the File::Find
- sub wanted
- {
- store_file ($File::Find::name);
- }
-
- find (\&wanted, '.');
-}
-
-#
-sub store_file ($)
-{
- my $name = shift;
- if ($name =~ /\.(c|cc|cpp|cxx)$/i) {
- push @files_cpp, ($name);
- }
- elsif ($name =~ /\.(inl|i)$/i) {
- push @files_inl, ($name);
- }
- elsif ($name =~ /\.(h|hh|hpp|hxx)$/i) {
- push @files_h, ($name);
- }
- elsif ($name =~ /\.(htm|html)$/i) {
- push @files_html, ($name);
- }
- elsif ($name =~ /\.(dsp|vcp)$/i) {
- push @files_dsp, ($name);
- }
- elsif ($name =~ /\.(pidl|idl)$/i) {
- push @files_idl, ($name);
- }
- elsif ($name =~ /\.pl$/i) {
- push @files_pl, ($name);
- }
-}
-
-##############################################################################
-## Just messages
-
-sub print_error ($)
-{
- my $msg = shift;
- print "Error: $msg\n";
- ++$errors;
-}
-
-
-sub print_warning ($)
-{
- my $msg = shift;
- print "Warning: $msg\n";
- ++$warnings;
-}
-
-
-##############################################################################
-## Tests
-
-# The point of this test is to check for the existence of ACE_INLINE
-# or ASYS_INLINE in a .cpp file. This is most commonly caused by
-# copy/pasted code from a .inl/.i file
-sub check_for_inline_in_cpp ()
-{
- print "Running ACE_INLINE/ASYS_INLINE check\n";
- foreach $file (@files_cpp) {
- my $line = 0;
- if (open (FILE, $file)) {
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- ++$line;
- if (/^ACE_INLINE/) {
- print_error ("ACE_INLINE found in $file on line $line");
- }
- if (/^ASYS_INLINE/) {
- print_error ("ASYS_INLINE found in $file on line $line");
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-# This test checks to make sure files have the $Id string in them.
-# Commit_check should find these when checking in files, but this can
-# be used locally or to check for files
-sub check_for_id_string ()
-{
- print "Running \$ID\$ string check\n";
- foreach $file (@files_cpp, @files_inl, @files_h,
- @files_html, @files_idl, @files_pl) {
- my $found = 0;
- if (open (FILE, $file)) {
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- if (/\$Id\:/ or /\$Id\$/) {
- $found = 1;
- }
- }
- close (FILE);
- if ($found == 0) {
- print_error ("No \$Id string found in $file");
- }
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-
-# This test checks for the newline at the end of a file
-sub check_for_newline ()
-{
- print "Running newline check\n";
- foreach $file (@files_cpp, @files_inl, @files_h,
- @files_html, @files_idl, @files_pl) {
- if (open (FILE, $file)) {
- my $line;
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- $line = $_
- }
- close (FILE);
- if ($line !~ /\n$/) {
- print_error ("No ending newline found in $file");
- }
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-
-
-# This test checks for the use of "inline" instead of ACE_INLINE
-sub check_for_inline ()
-{
- print "Running inline check\n";
- foreach $file (@files_inl) {
- my $line = 0;
- if (open (FILE, $file)) {
- my $disable = 0;
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- ++$line;
- if (/FUZZ\: disable check_for_inline/) {
- $disable = 1;
- }
- if (/FUZZ\: enable check_for_inline/) {
- $disable = 0;
- }
- if ($disable == 0 and m/^\s*inline/) {
- print_error ("inline found in $file on line $line");
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-
-# This test checks for the inclusion of math.h. math.h should be avoided
-# since on some platforms, "exceptions" is defined as a struct, which will
-# cause problems with exception handling
-sub check_for_math_include ()
-{
- print "Running math.h test\n";
- foreach $file (@files_h, @files_cpp, @files_inl) {
- my $line = 0;
- if (open (FILE, $file)) {
- my $disable = 0;
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- ++$line;
- if (/FUZZ\: disable check_for_math_include/) {
- $disable = 1;
- }
- if (/FUZZ\: enable check_for_math_include/) {
- $disable = 0;
- }
- if ($disable == 0
- and /^\s*#\s*include\s*(\/\*\*\/){0,1}\s*\<math\.h\>/) {
- print_error ("math.h included in $file on line $line");
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-# For general readability, lines should not contain more than 80 characters
-sub check_for_line_length ()
-{
- print "Running line length test\n";
- foreach $file (@files_h, @files_cpp, @files_inl) {
- my $line = 0;
- if (open (FILE, $file)) {
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- ++$line;
-
- # Make sure to ignore ACE_RCSID lines, since they
- # are difficult to get under 80 chars.
- if (/.{80,}/ and !/^ACE_RCSID/) {
- print_error ("Over 80 chars on line $line in $file");
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-
-# For preprocessor directives, only the old C style comments (/* */)
-# should be used, not the newer // style.
-sub check_for_preprocessor_comments ()
-{
- print "Running preprocessor comment test\n";
- foreach $file (@files_h, @files_cpp, @files_inl) {
- my $line = 0;
- if (open (FILE, $file)) {
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- ++$line;
- if (/^\#.*\/\//) {
- print_error ("C++ comment in directive on "
- ."line $line in $file");
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-
-# This test checks for the use of the Win32 Unicode string defines
-# or outdated ASYS_* macros
-# We should only be using the ACE_TCHAR, ACE_TEXT macros instead.
-sub check_for_tchar
-{
- print "Running TCHAR test\n";
- foreach $file (@files_h, @files_cpp, @files_inl) {
- my $line = 0;
- if (open (FILE, $file)) {
- my $disable = 0;
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- ++$line;
- if (/FUZZ\: disable check_for_tchar/) {
- $disable = 1;
- }
- if (/FUZZ\: enable check_for_tchar/) {
- $disable = 0;
- }
- if ($disable == 0) {
- if (/LPTSTR/) {
- print_error ("LPTSTR found on line $line in $file");
- }
-
- if (/LPCTSTR/) {
- print_error ("LPCTSTR found on line $line in $file");
- }
-
- if (/ASYS_TCHAR/) {
- print_error ("ASYS_TCHAR found on "
- ."line $line in $file");
- }
- elsif (/TCHAR/ and !/ACE_TCHAR/) {
- ### Do a double check, since some macros do have TCHAR
- ### (like DEFAULTCHARS)
- if (/^TCHAR[^\w_]/ or /[^\w_]TCHAR[^\w_]/) {
- print_error ("TCHAR on line $line in $file");
- }
- }
-
- if (/ASYS_TEXT/) {
- print_error ("ASYS_TEXT on line $line in $file");
- }
- elsif (/TEXT/ and !/ACE_TEXT/) {
- ### Do a double check, since there are several macros
- ### that end with TEXT
- if (/^TEXT\s*\(/ or /[^\w_]TEXT\s*\(/) {
- print_error ("TEXT found on line $line in $file");
- }
- }
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-
-
-# This checks to make sure files include ace/post.h if ace/pre.h is included
-# and vice versa.
-sub check_for_pre_and_post ()
-{
- print "Running pre.h/post.h test\n";
- foreach $file (@files_h) {
- my $pre = 0;
- my $post = 0;
- if (open (FILE, $file)) {
- my $disable = 0;
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- if (/FUZZ\: disable check_for_pre_and_post/) {
- $disable = 1;
- }
- if (/FUZZ\: enable check_for_pre_and_post/) {
- $disable = 0;
- }
- if ($disable == 0) {
- if (/^\s*#\s*include\s*\"ace\/pre\.h\"/) {
- ++$pre;
- }
- if (/^\s*#\s*include\s*\"ace\/post\.h\"/) {
- ++$post;
- }
- }
- }
- close (FILE);
-
- if ($disable == 0 && $pre != $post) {
- print_error ("pre.h/post.h mismatch in $file");
- }
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-
-# Check doxygen @file comments
-sub check_for_mismatched_filename ()
-{
- print "Running doxygen \@file test\n";
- foreach $file (@files_h, @files_cpp, @files_inl) {
- if (open (FILE, $file)) {
- my $disable = 0;
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- if (m/\@file\s*([^\s]*)/ && $file !~ m/$1$/) {
- print_error ("\@file mismatch in $file");
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-# check for bad run_test
-sub check_for_bad_run_test ()
-{
- print "Running run_test.pl test\n";
- foreach $file (@files_pl) {
- if (open (FILE, $file)) {
- my $is_run_test = 0;
- my $line = 0;
- my $sub = 0;
-
- print "Looking at file $file\n" if $opt_d;
-
- while (<FILE>) {
- ++$line;
-
- if (m/PerlACE/ || m/ACEutils/) {
- $is_run_test = 1;
- }
-
- if ($is_run_test == 1) {
- if (m/ACEutils/) {
- print_error ("ACEutils.pm still being used in $file ($line)");
- }
-
- if (m/unshift \@INC/) {
- print_error ("Still unshifting \@INC, should \"use lib\""
- ." instead in $file ($line)");
- }
-
- if (m/\$EXEPREFIX/) {
- print_error ("Still using \$EXEPREFIX in $file ($line)");
- }
-
- if (m/\$EXE_EXT/) {
- print_error ("Still using \$EXE_EXT in $file ($line)");
- }
-
- if (m/\$DIR_SEPARATOR/) {
- print_error ("Still using \$DIR_SEPARATOR in $file ($line)");
- }
- if (m/ACE\:\:/ && !m/PerlACE\:\:/) {
- print_error ("Still using ACE::* in $file ($line)");
- }
-
- if (m/Process\:\:/ && !m/PerlACE\:\:Process\:\:/) {
- print_error ("Still using Process::* in $file ($line)");
- }
-
- if (m/Process\:\:Create/) {
- print_error ("Still using Process::Create in $file ($line)");
- }
-
- if ((m/\.ior/ || m/\.conf/) && !m/LocalFile/) {
- print_error ("Not using PerlACE::LocalFile at $file ($line)");
- }
-
- if (m/^ [^ ]/) {
- print_warning ("Still using two-space indentation in $file ($line)");
- }
-
- if (m/^\s*\t/) {
- print_error ("Indenting using tabs in $file ($line)");
- }
-
- if (m/^\s*\{/ && $sub != 1) {
- print_warning ("Using Curly Brace alone on $file ($line)");
- }
-
- if (m/timedout/i && !m/\#/) {
- print_error ("timedout message found on $file ($line)");
- }
-
- if (m/^\s*sub/) {
- $sub = 1;
- }
- else {
- $sub = 0;
- }
- }
- }
-
- close (FILE);
-
- if ($is_run_test) {
- my @output = `perl -wc $file 2>&1`;
-
- foreach $output (@output) {
- chomp $output;
- if ($output =~ m/error/i) {
- print_error ($output);
- }
- elsif ($output !~ m/syntax OK/) {
- print_warning ($output);
- }
- }
- }
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-
-# Check for links to ~schmidt/ACE_wrappers/, which should not be in the
-# documentation
-sub check_for_absolute_ace_wrappers()
-{
- print "Running absolute ACE_wrappers test\n";
- foreach $file (@files_html) {
- if (open (FILE, $file)) {
- my $line = 0;
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- ++$line;
- if (m/\~schmidt\/ACE_wrappers\//) {
- chomp;
- print_error ("~schmidt/ACE_wrappers found in $file on "
- . "line $line");
- print_error ($_) if (defined $opt_v);
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-# Make sure ACE_[OS_]TRACE matches the function/method
-sub check_for_bad_ace_trace()
-{
- print "Running TRACE test\n";
- foreach $file (@files_inl, @files_cpp) {
- if (open (FILE, $file)) {
- my $line = 0;
- my $class;
- my $function;
-
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- ++$line;
-
- # look for methods or functions
- if (m/(^[^\s][^\(]*)\:\:([^\:^\(]*[^\s^\(])\s*/) {
- $class = $1;
- $function = $2;
- }
- elsif (m/^([^\s^\(^\#]*) \(/i) {
- $class = "";
- $function = $1;
- }
- elsif (m/^(operator.*) \(/i) {
- $class = "";
- $function = $1;
- }
-
- # Look for TRACE statements
- if (m/ACE_OS_TRACE\s*\(\s*\"(.*)\"/
- || m/ACE_TRACE\s*\(\s*\"(.*)\"/) {
- my $trace = $1;
-
- # reduce the classname
- if ($class =~ m/([^\s][^\<^\s]*)\s*\</) {
- $class = $1;
- }
-
- if ($class =~ m/([^\s^\&^\*]*)\s*$/) {
- $class = $1;
- }
-
- if ($trace !~ m/\Q$function\E/
- || ($trace =~ m/\:\:/ && !($trace =~ m/\Q$class\E/ && $trace =~ m/\Q$function\E/))) {
- print_error ("Mismatched TRACE in $file on line $line");
- print_error (" I see \"$trace\" but I think I'm in \""
- . $class . "::" . $function . "\"") if (defined $opt_v);
- }
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-
-
-# This test checks missing ACE_TRY_ENV when using
-# resolve_initial_references
-sub check_for_missing_rir_env ()
-{
- print "Running resolve_initial_references() check\n";
- foreach $file (@files_cpp, @files_inl) {
- my $line = 0;
- if (open (FILE, $file)) {
- my $disable = 0;
- my $native_try = 0;
- my $in_rir = 0;
- my $found_env = 0;
-
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- ++$line;
- if (/FUZZ\: disable check_for_missing_rir_env/) {
- $disable = 1;
- }
- if (/FUZZ\: enable check_for_missing_rir_env/) {
- $disable = 0;
- }
- if ($disable == 0) {
- next if m/^\s*\/\//;
-
- if (m/^\s*try/) {
- $disable = 1;
- next;
- }
-
- if (m/[^\:]resolve_initial_references\s*\(/) {
- $found_env = 0;
- $in_rir = 1;
- }
-
- if (m/ACE_TRY_ENV/) {
- $found_env = 1;
- }
-
- if ($in_rir == 1 && m/\;\s*$/) {
- $in_rir = 0;
- if ($found_env != 1) {
- print_error ("Missing ACE_TRY_ENV in"
- . " resolve_initial_references"
- . " in $file ($line)");
- }
- $found_env = 0;
- }
-
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-# This test checks for usage of ACE_CHECK/ACE_TRY_CHECK
-sub check_for_ace_check ()
-{
- print "Running ACE_CHECK check\n";
- foreach $file (@files_cpp, @files_inl) {
- my $line = 0;
- if (open (FILE, $file)) {
- my $disable = 0;
- my $in_func = 0;
- my $in_return = 0;
- my $found_env = 0;
-
- print "Looking at file $file\n" if $opt_d;
- while (<FILE>) {
- ++$line;
- if (/FUZZ\: disable check_for_ace_check/) {
- $disable = 1;
- }
- if (/FUZZ\: enable check_for_ace_check/) {
- $disable = 0;
- }
-
- if (/FUZZ\: ignore check_for_ace_check/) {
- next;
- }
-
- next if m/^\s*\/\//;
- next if m/^\s*$/;
-
- if ($disable == 0) {
- if (m/[,\(]\s*ACE_TRY_ENV[,\)]/) {
- $found_env = 1;
- $in_func = 1;
- $env_line = $line;
- }
-
- # ignore quoted ACE_TRY_ENV's
- if (m/^[^\"]*\"[^\"]*ACE_TRY_ENV[^\"]*\"[^\"]*$/) {
- $found_env = 0;
- }
-
- if (m/ACE_TRY_ENV.*ACE_TRY_ENV/) {
- print_error ("Multiple ACE_TRY_ENV in $file ($line)");
- }
-
- if ($in_func && m/\)/) {
- $in_func = 0;
- }
- elsif (!$in_func && $found_env) {
- if (!m/_CHECK/ && !m/^\}/ && !$in_return) {
- print_error ("Missing ACE_CHECK/ACE_TRY_CHECK for $file ($env_line)");
- }
- $found_env = 0;
- }
-
- if (m/^\s*return/) {
- $in_return = 1;
- }
- else {
- $in_return = 0;
- }
- }
- }
- close (FILE);
- }
- else {
- print STDERR "Error: Could not open $file\n";
- }
- }
-}
-
-##############################################################################
-
-use vars qw/$opt_c $opt_d $opt_h $opt_l $opt_m $opt_v/;
-
-if (!getopts ('cdhl:mv') || $opt_h) {
- print "fuzz.pl [-cdhm] [-l level] [file1, file2, ...]\n";
- print "\n";
- print " -c only look at the files passed in\n";
- print " -d turn on debugging\n";
- print " -h display this help\n";
- print " -l level set detection level (default = 5)\n";
- print " -m only check locally modified files (uses cvs)\n";
- print " -v verbose mode\n";
- exit (1);
-}
-
-if (!$opt_l) {
- $opt_l = 5;
-}
-
-if ($opt_c) {
- foreach $file (@ARGV) {
- store_file ($file);
- }
-}
-elsif ($opt_m) {
- find_mod_files ();
-}
-else {
- find_files ();
-}
-
-print "--------------------Configuration: Fuzz - Level ",$opt_l,
- "--------------------\n";
-
-check_for_inline_in_cpp () if ($opt_l >= 2);
-check_for_id_string () if ($opt_l >= 1);
-check_for_newline () if ($opt_l >= 1);
-check_for_inline () if ($opt_l >= 2);
-check_for_math_include () if ($opt_l >= 3);
-check_for_line_length () if ($opt_l >= 8);
-check_for_preprocessor_comments () if ($opt_l >= 7);
-check_for_tchar () if ($opt_l >= 4);
-check_for_pre_and_post () if ($opt_l >= 4);
-check_for_mismatched_filename () if ($opt_l >= 2);
-check_for_bad_run_test () if ($opt_l >= 6);
-check_for_absolute_ace_wrappers () if ($opt_l >= 3);
-check_for_bad_ace_trace () if ($opt_l >= 4);
-check_for_missing_rir_env () if ($opt_l >= 5);
-check_for_ace_check () if ($opt_l >= 3);
-
-print "\nFuzz.pl - $errors error(s), $warnings warning(s)\n";
-
-exit (1) if $errors > 0;
diff --git a/bin/g++dep b/bin/g++dep
deleted file mode 100755
index 24bd2190f42..00000000000
--- a/bin/g++dep
+++ /dev/null
@@ -1,111 +0,0 @@
-#! /bin/sh
-# $Id$
-
-# This utility is a lightly editted version of the freed Berkeley
-# script `mkdep'. The current script is intended to work for GNU G++.
-
-# Here is the original BSD header:
-# @(#)mkdep.sh 1.7 (Berkeley) 10/13/87
-#
-
-if [ `uname -r` = 5.7 ]; then
- PATH=/project/danzon/pkg/egcs/bin:/usr/local/bin:/bin:/usr/bin:/usr/ucb:\
-/usr/gnu:/usr/gnu/bin:/opt/gnu/bin:/pkg/gnu/bin:$PATH
-else
- PATH=/usr/local/bin:/bin:/usr/bin:/usr/ucb:\
-/usr/gnu:/usr/gnu/bin:/opt/gnu/bin:/pkg/gnu/bin:$PATH
-fi
-export PATH
-
-if [ $# = 0 ] ; then
- echo 'usage: g++dep [-p] [-f makefile] [flags] file ...'
- exit 1
-fi
-
-DO_ACE_MAKE_DEPEND=0
-MAKE=Makefile
-STOPNOW=0
-while [ $STOPNOW -eq 0 ]
-do
-case $1 in
- # -f allows you to select a makefile name
- -f) MAKE=$2
- shift; shift ;;
-
- # the -p flag produces "program: program.c" style dependencies
- # so .o's don't get produced
- -p) SED='-e s;\.o;;'
- shift ;;
-
- # -r allows the use of relative pathnames...
- -r) REL="-e s;$ACE_ROOT;\$(ACE_ROOT);g ${ACE_DEPEND_SED_CMD}"
- REL="-e s;${TAO_ROOT:=$ACE_ROOT/TAO};\$(TAO_ROOT);g "$REL
- shift ;;
- # -A uses relative pathnames and fixes the .obj line
- # and it implies -r
- -A) REL="-e s;$ACE_ROOT;\$(ACE_ROOT);g ${ACE_DEPEND_SED_CMD}"
- REL="-e s;${TAO_ROOT:=$ACE_ROOT/TAO};\$(TAO_ROOT);g "$REL
- DO_ACE_MAKE_DEPEND=1
- shift ;;
- *) STOPNOW=1
-esac
-done
-
-# Dependencies on local files are better expressed like that, instead
-# of using $(TAO_ROOT) or $(ACE_ROOT). This is specially important
-# for IDL generated files.
-REL="-e s;`pwd`/;;g "$REL
-
-if [ ! -w $MAKE ]; then
- echo "g++dep: no writeable file \"$MAKE\""
- exit 1
-fi
-
-TMP=/tmp/g++dep$$
-
-trap 'rm -f $TMP; exit 1' 1 2 3 13 15
-
-cp $MAKE ${MAKE}.bak
-
-sed -e '/DO NOT DELETE THIS LINE/,$d' < $MAKE > $TMP
-
-cat << _EOF_ >> $TMP
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-_EOF_
-
-g++ -MM -DACE_LACKS_PRAGMA_ONCE $* | \
- sed -e "s; \./; ;g" $SED $REL | \
- awk '{ if ($1 != prev) \
- { if (rec != "") print rec; rec = $0; prev = $1; } \
- else \
- { if (length(rec $2) > 78) { print rec; rec = $0; } \
- else rec = rec " " $2 } } \
- END { print rec }' >> $TMP
-
-if [ $DO_ACE_MAKE_DEPEND -eq 1 ]
-then
- SCRIPT=${TMP}_script
- echo "s;\([-a-zA-Z0-9._]*\)\.o:;\\" > $SCRIPT
- echo ".obj/\1.o .obj/\1.${SOEXT} ${VSHDIR}\1.o ${VSHDIR}\1.${SOEXT}:;" >> $SCRIPT
- TMP2=${TMP}_2
- cat $TMP | \
- sed \
- -e '/$(ACE_ROOT)\/ace\/config[^\.]*\.h/d' \
- -e "s; /[-a-zA-Z0-9_./]*\.h;;g" \
- -f $SCRIPT > $TMP2
- mv $TMP2 $TMP
- rm -f $TMP2
- rm -f $SCRIPT
-fi
-
-cat << _EOF_ >> $TMP
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
-_EOF_
-
-# copy to preserve permissions
-cp $TMP $MAKE
-rm -f ${MAKE}.bak $TMP
-exit 0
diff --git a/bin/generate_doxygen.pl b/bin/generate_doxygen.pl
deleted file mode 100755
index b8ba0b5633b..00000000000
--- a/bin/generate_doxygen.pl
+++ /dev/null
@@ -1,218 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# -*- perl -*-
-# $Id$
-#
-
-require POSIX;
-require File::Path;
-
-# Configuration and default values
-
-$is_release = 0;
-$exclude_ace = 0;
-$exclude_tao = 0;
-$verbose = 0;
-$perl_path = '/usr/bin/perl';
-$dot_path = '/usr/local/bin';
-@ACE_DOCS = ('ace',
- 'ace_man',
- 'ace_rmcast',
- 'ace_ssl',
- 'ace_qos');
-@TAO_DOCS = ('tao'
- ,'tao_portableserver'
- ,'tao_rtportableserver'
- ,'tao_rtcorba'
- ,'tao_dynamicany'
- ,'tao_dynamicinterface'
- ,'tao_iormanip'
- ,'tao_iortable'
- ,'tao_esf'
- ,'tao_rtevent'
- ,'tao_cosevent'
- ,'tao_cosnotification'
- ,'tao_implrepo'
- ,'tao_strategies'
- ,'tao_smartproxies'
- ,'tao_av'
- ,'tao_security'
- ,'tao_ssliop'
- );
-
-# Modify defaults using the command line arguments
-&parse_args ();
-
-open(CONFIG_H, ">ace/config.h")
- || die "Cannot create config file\n";
-print CONFIG_H "#include \"ace/config-doxygen.h\"\n";
-close (CONFIG_H);
-
-&generate_doxy_files ('ACE', 'VERSION', @ACE_DOCS) if (!$exclude_ace);
-&generate_doxy_files ('TAO', 'TAO/VERSION', @TAO_DOCS) if (!$exclude_tao);
-
-unlink "ace/config.h";
-
-exit 0;
-
-sub parse_args {
- my @ARGS = ();
- while ($#ARGV >= 0) {
- if (!($ARGV[0] =~ m/^-/)) {
- push @ARGS, $ARGV[0];
- } elsif ($ARGV[0] eq "-is_release") {
- $is_release = 1;
- } elsif ($ARGV[0] eq "-exclude_ace") {
- $exclude_ace = 1;
- } elsif ($ARGV[0] eq "-exclude_tao") {
- $exclude_tao = 1;
- } elsif ($ARGV[0] eq "-verbose") {
- $verbose = 1;
- } elsif ($ARGV[0] eq "-perl_path" && $#ARGV >= 1) {
- $perl_path = $ARGV[1];
- shift;
- } elsif ($ARGV[0] eq "-dot_path" && $#ARGV >= 1) {
- $dot_path = $ARGV[1];
- shift;
- } else {
- print "Ignoring option $ARGV[0]\n";
- }
- shift @ARGV;
- }
- @ARGV = @ARGS;
-}
-
-sub generate_doxy_files {
-
- my $KIT = shift;
- my $VERSION_FILE = shift;
- my @DOCS = @_;
-
- my $VERSION = 'Snapshot ('.
- POSIX::strftime("%Y/%m/%d-%H:%M", localtime)
- .')';
-
- foreach my $i (@DOCS) {
- if ($is_release) {
- my ($major, $minor, $beta) = &get_versions ($KIT, $VERSION_FILE);
- $VERSION = $major.'.'.$minor.'.'.$beta;
- }
-
- my $input = "etc/".$i.".doxygen";
- my $output = "/tmp/".$i.".".$$.".doxygen";
-
- open(DOXYINPUT, $input)
- || die "Cannot open doxygen input file $input\n";
- open(DOXYOUTPUT, ">$output")
- || die "Cannot open doxygen output file $output\n";
-
- my $generate_man = 0;
- my $generate_html = 0;
- my @output_dirs = ();
- while (<DOXYINPUT>) {
- chomp;
- if (/^PROJECT_NUMBER/) {
- print DOXYOUTPUT "PROJECT_NUMBER = ", $VERSION, "\n";
- next;
- } elsif (/^PERL_PATH /) {
- print DOXYOUTPUT "PERL_PATH = $perl_path\n";
- next;
- } elsif (/^DOT_PATH /) {
- print DOXYOUTPUT "DOT_PATH = $dot_path\n";
- next;
- } elsif (/^QUIET / && $verbose) {
- print DOXYOUTPUT "QUIET = NO\n";
- next;
- } elsif (/^INLINE_SOURCES/ && $is_release) {
- print DOXYOUTPUT "INLINE_SOURCES = NO\n";
- next;
- } elsif (/^SOURCE_BROWSER/ && $is_release) {
- print DOXYOUTPUT "SOURCE_BROWSER = NO\n";
- next;
- } elsif (/^VERBATIM_HEADERS/ && $is_release) {
- print DOXYOUTPUT "VERBATIM_HEADERS = NO\n";
- next;
-# } elsif (/^INCLUDE_GRAPH/ && $is_release) {
-# print DOXYOUTPUT "INCLUDE_GRAPH = NO\n";
-# next;
-# } elsif (/^INCLUDED_BY_GRAPH/ && $is_release) {
-# print DOXYOUTPUT "INCLUDED_BY_GRAPH = NO\n";
-# next;
- } elsif (/^GENERATE_MAN/ && /= YES/) {
- $generate_man = 1;
- } elsif (/^GENERATE_HTML/ && /= YES/) {
- $generate_html = 1;
- } elsif ($generate_html && /^HTML_OUTPUT/) {
- my @field = split(' = ');
- if ($#field >= 1) {
- push @output_dirs, $field[1];
- }
- } elsif ($generate_html && /^MAN_OUTPUT/) {
- my @field = split(' = ');
- if ($#field >= 1) {
- push @output_dirs, $field[1];
- }
- }
- print DOXYOUTPUT $_, "\n";
- }
- close (DOXYOUTPUT);
- close (DOXYINPUT);
-
- foreach my $i (@output_dirs) {
- File::Path::mkpath($i, 0, 0755);
- }
-
- &run_doxy ($output);
-
- unlink $output;
- }
-}
-
-sub run_doxy {
- my $config = shift;
- open(DOX,"doxygen $config 2>&1 |")
- || die "cannot start ACE doxygen process\n";
- while (<DOX>) {
- print $_;
- }
- close (DOX)
- || die "error while running doxygen on $config\n";
-}
-
-########
-######## Retrieve version information from VERSION file(s).
-########
-sub get_versions () {
- my $KIT = shift;
- my $VERSION_FILE = shift;
- my ($major_version, $minor_version, $beta_version);
-
- open (VERSION, '<'.$VERSION_FILE) ||
- die "$0: unable to open VERSION\n";
- while (<VERSION>) {
- chomp;
- if (/$KIT version (\d+)\.(\d+)\.(\d+)/) {
- $major_version = $1;
- $minor_version = $2;
- $beta_version = $3;
- last;
- } elsif (/$KIT version (\d+)\.(\d+)[^\.]/) {
- #### Previous release was a minor.
- $major_version = $1;
- $minor_version = $2;
- $beta_version = '0';
- last;
- } elsif (/$KIT version (\d+)[^\.]/) {
- #### Previous release was a major.
- $major_version = $1;
- $minor_version = '0';
- $beta_version = '0';
- last;
- }
- }
- close VERSION;
-
- return ($major_version, $minor_version, $beta_version);
-}
diff --git a/bin/generate_export_file.pl b/bin/generate_export_file.pl
deleted file mode 100755
index 54567889de7..00000000000
--- a/bin/generate_export_file.pl
+++ /dev/null
@@ -1,142 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# Replacement for the old trusty GenExportH.bat
-# Creates the nice little *_export file which is used for
-# importing and exporting of symbols in DLLs.
-# (they are soooo cute!)
-
-use Getopt::Std;
-
-##############################################################################
-# Grab the options
-
-if (!getopts ('df:hs') || $opt_h) {
- print "generate_export_file.pl [-d] [-f dependency] [-s] library_name\n";
- print "\n";
- print " -d Turn on debug mode\n";
- print " -f Adds a dependency to another *_HAS_DLL macro\n";
- print " -s Add in ACE_AS_STATIC_LIBS check\n";
- print "\n";
- print "generate_export_file creates the *_export files that are used\n";
- print "in exporting of symbols for DLLs (and not exporting them when\n";
- print "the library is static). If library_name is something like\n";
- print "\"Foo\", then the file will contain definitions for Foo_Export\n";
- print "and FOO_SINGLETON_DECLARE, etc. which will be controlled by\n";
- print "FOO_HAS_DLL, etc.\n";
- exit (1);
-}
-
-if (defined $opt_d) {
- print "Debugging Turned on\n";
-
- if (defined $opt_f) {
- print "Dependency to $opt_f\n";
- }
-
- if (defined $opt_s) {
- print "ACE_AS_STATIC_LIBS turned on\n";
- }
-}
-
-
-if ($#ARGV < 0) {
- print STDERR "No library_name specified, use -h for help\n";
- exit (1);
-}
-
-$name = shift @ARGV;
-$ucname = uc $name;
-
-##############################################################################
-# Prologue
-
-$prologue = '
-// -*- C++ -*-
-// $Id$
-// Definition for Win32 Export directives.
-// This file is generated automatically by generate_export_file.pl
-// ------------------------------'."
-#ifndef -UC-_EXPORT_H
-#define -UC-_EXPORT_H
-
-#include \"ace/config-all.h\"
-";
-
-
-##############################################################################
-# Static Stuff
-
-if (defined $opt_s)
-{
- $static_stuff = "
-#if defined (ACE_AS_STATIC_LIBS) && !defined (-UC-_HAS_DLL)
-# define -UC-_HAS_DLL 0
-#endif /* ACE_AS_STATIC_LIBS && -UC-_HAS_DLL */
-";
-}
-
-##############################################################################
-# Dependencies
-
-if (defined $opt_f)
-{
- $has_dll = "
-#if defined ($opt_f)
-# if !defined (-UC-_HAS_DLL)
-# define -UC-_HAS_DLL 0
-# endif /* ! -UC-_HAS_DLL */
-#else
-# if !defined (-UC-_HAS_DLL)
-# define -UC-_HAS_DLL 1
-# endif /* ! -UC-_HAS_DLL */
-#endif
-";
-}
-else
-{
- $has_dll = "
-#if !defined (-UC-_HAS_DLL)
-# define -UC-_HAS_DLL 1
-#endif /* ! -UC-_HAS_DLL */
-";
-}
-
-##############################################################################
-# Epilogue
-
-$epilogue = "
-#if defined (-UC-_HAS_DLL) && (-UC-_HAS_DLL == 1)
-# if defined (-UC-_BUILD_DLL)
-# define -NC-_Export ACE_Proper_Export_Flag
-# define -UC-_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
-# define -UC-_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# else /* -UC-_BUILD_DLL */
-# define -NC-_Export ACE_Proper_Import_Flag
-# define -UC-_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
-# define -UC-_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* -UC-_BUILD_DLL */
-#else /* -UC-_HAS_DLL == 1 */
-# define -NC-_Export
-# define -UC-_SINGLETON_DECLARATION(T)
-# define -UC-_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-#endif /* -UC-_HAS_DLL == 1 */
-
-#endif /* -UC-_EXPORT_H */
-
-// End of auto generated file.
-";
-
-##############################################################################
-# Print the stuff out
-
-foreach $export ($prologue, $static_stuff, $has_dll, $epilogue)
-{
-## -NC- stands for normal case, the name as it is
-## -UC- stands for the name all upper case
- map { s/-NC-/$name/g; s/-UC-/$ucname/g; } $export;
-
- print $export;
-};
diff --git a/bin/generate_footprint_chart.sh b/bin/generate_footprint_chart.sh
deleted file mode 100755
index a3aaa1768fd..00000000000
--- a/bin/generate_footprint_chart.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-#
-
-gnuplot <<_EOF_ >/dev/null 2>&1
- set xdata time
- set timefmt '%Y/%m/%d-%H:%M'
- set xlabel 'Date (MM/DD)'
- set ylabel 'Size (KBytes)'
- set terminal png small color
- set yrange [0:3000]
- set output "$2"
- plot '$1' using 1:(\$2/1024.0) title '$3' w l
- exit
-_EOF_
-
diff --git a/bin/generate_performance_chart.sh b/bin/generate_performance_chart.sh
deleted file mode 100755
index b20878817a0..00000000000
--- a/bin/generate_performance_chart.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-#
-
-gnuplot <<_EOF_ >/dev/null 2>&1
- set xdata time
- set timefmt '%Y/%m/%d-%H:%M'
- set xlabel 'Date (YYYYMMDD)'
- set ylabel 'Throughput (Requests/Second)'
- set terminal png small color
- set yrange [0:10000]
- set output "$2"
- plot '$1' using 1:2 title '$3' w l
- exit
-_EOF_
diff --git a/bin/indent_macros.perl b/bin/indent_macros.perl
deleted file mode 100755
index 3429d746dba..00000000000
--- a/bin/indent_macros.perl
+++ /dev/null
@@ -1,59 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -i -S $0 ${1+"$@"}'
- & eval 'exec perl -i -S $0 $argv:q'
- if 0;
-
-# $Id$
-
-# This perl script re-arrange the macro indentation so it's easier to
-# see the layering relationship.
-
-$lineno = 0;
-$indent = 0;
-
-sub inc_indent
-{
- $indent += 2;
-}
-
-sub dec_indent
-{
- $indent -= 2;
-}
-
-sub get_indent
-{
- $retv = 0;
- print STDERR "$0 (", $lineno, "): Unbalanced macro pairs\n" if ($indent < 0);
- $retv = $indent - 1 if ($indent > 0);
- $retv;
-}
-
-while (<>) {
- $lineno++;
- if (/^[ \t]*\#[ \t]*((if|el|en|).*)/)
- {
- $cont = $1;
- $temp = $2;
- if ($temp =~ /if/) {
- print "#", " " x &get_indent (), $cont,"\n";
- inc_indent ();
- }
- elsif ($temp =~ /el/) {
- dec_indent ();
- print "#", " " x &get_indent (), $cont,"\n";
- inc_indent ();
- }
- elsif ($temp =~ /en/) {
- dec_indent ();
- print "#", " " x &get_indent (), $cont,"\n";
- }
- else {
- print "#", " " x &get_indent (), $cont,"\n";
- }
- }
- else {
- print $_;
- }
-}
-
-die ("$0 (EOF): Unbalanced macro pairs\n") if ($indent != 0);
diff --git a/bin/libsize.pl b/bin/libsize.pl
deleted file mode 100755
index 3fd3a468b10..00000000000
--- a/bin/libsize.pl
+++ /dev/null
@@ -1,192 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# Provides size breakdown of ACE, TAO, or orbsvcs libs.
-#
-# Assumes (or builds) the lib with debug=0. Allows other make args,
-# such as -j 4, to be passed on the command line.
-
-$usage =
- "$0 [-h, for html output] [-s, for shared libs] [-v] [make arguments]\n";
-
-####
-#### Configuration parameters.
-####
-$build_args =
- 'debug=0 optimize=1 static_libs_only=1 DEFFLAGS=-DACE_USE_RCSID=0';
-$ACE_COMPONENTS =
- 'OS Utils Logging Threads Demux Connection Sockets IPC Svcconf ' .
- 'Streams Memory Token Other';
-$TAO_COMPONENTS =
- 'POA Pluggable_Protocols Default_Resources Interpretive_Marshaling ' .
- 'IDL_Compiler ORB_Core Dynamic_Any';
-$ORBSVCS_COMPONENTS =
- 'Naming ImplRepo Time Concurrency Property Trader LifeCycle Sched ' .
- 'Event CosEvent Event2 AV';
-
-
-#### The following are only used for VxWorks libraries, and
-#### only if the corresponding environment variable isn't set.
-$default_toolenv = '386';
-$default_wind_base = '/project/doc/pkg/wind';
-$default_host_type = 'sun4-solaris2';
-
-#### Use gmake if it's on the user's PATH, otherwise use make. Use
-#### sh -c to avoid warning if gmake isn't found.
-$make =
- system ("sh -c \"gmake --version\" > /dev/null 2>&1") ? 'make' : 'gmake';
-
-$ACE_ROOT = $ENV{'ACE_ROOT'} ||
- die "$0: ACE_ROOT was not set!\n";
-
-
-$html = $verbose = 0;
-$lib_extension = 'a';
-
-####
-#### Process command line args.
-####
-while ($#ARGV >= $[ && $ARGV[0] =~ /^-/) {
- if ($ARGV[0] eq '-h') {
- $html = 1;
- chop ($sysname = `uname -s`);
- chop ($sysrev = `uname -r`);
- shift;
- } elsif ($ARGV[0] eq '-s') {
- $lib_extension = 'so';
- $build_args =~ s/ static_libs_only=1//;
- shift;
- } elsif ($ARGV[0] eq '-v') {
- $verbose = 1;
- shift;
- } elsif ($ARGV[0] eq '-?') {
- print "$usage";
- exit;
- } else {
- #### Pass remaining args to make.
- }
-}
-
-$make_args = join (' ', @ARGV) . $build_args;
-
-chop ($pwd = `pwd`);
-
-if ($pwd =~ m%/ace$%) {
- #### libACE
- $COMPONENTS = "$ACE_COMPONENTS";
- $LIB_COMPONENTS = 'ACE_COMPONENTS';
- $libname = 'ACE';
-} elsif ($pwd =~ m%/tao$%) {
- $COMPONENTS = "$TAO_COMPONENTS";
- $LIB_COMPONENTS = 'TAO_COMPONENTS';
- $libname = 'TAO';
-} elsif ($pwd =~ m%/orbsvcs/orbsvcs$%) {
- $COMPONENTS = "$ORBSVCS_COMPONENTS";
- $LIB_COMPONENTS = 'TAO_ORBSVCS';
- $libname = 'orbsvcs';
-} else {
- die "$0: unsupported directory; $pwd\n";
-}
-
-$lib = "lib${libname}.$lib_extension";
-
-
-####
-#### Select the size command based on ACE_ROOT setting.
-####
-if ($ACE_ROOT =~ /vxworks/) {
- $TOOLENV = $ENV{'TOOLENV'} || $default_toolenv;
- $WIND_BASE = $ENV{'WIND_BASE'} || $default_wind_base;
- $WIND_HOST_TYPE = $ENV{'WIND_HOST_TYPE'} || $default_host_type;
- $size = "$WIND_BASE/host/$WIND_HOST_TYPE/bin/size$TOOLENV";
-} elsif ($ACE_ROOT =~ /lynx-ppc/) {
- $size = '/usr/lynx/3.0.0/ppc/cdk/sunos-xcoff-ppc/bin/size';
-} elsif ($ACE_ROOT =~ /lynx/) {
- $size = '/usr/lynx/3.0.0/x86/cdk/sunos-coff-x86/bin/size';
-} elsif ($ACE_ROOT =~ /chorus/) {
- $size = '/project/doc/mvme/green68k/gnu/bin/size';
-} else {
- $size = 'size';
-}
-
-
-####
-#### Measure the size of the entire library.
-####
-$sizeTotal = build_lib ("$LIB_COMPONENTS=\"$COMPONENTS\"");
-$components = " <th>Platform\n <th>Component\n <th>Total";
-$componentSize = " <th>Size, bytes\n <td align=center>$sizeTotal";
-$componentPercentage =
- " <th>Percentage of<br>total size\n <td align=center>100";
-print "Total $sizeTotal (100)\n" unless $html;
-
-
-####
-#### Measure the size of each library component.
-####
-foreach my $i (split (' ', $COMPONENTS)) {
- $sizeLib = build_lib ("$LIB_COMPONENTS=\"$i\"");
- $components .= "\n <th>$i";
- $componentSize .= "\n <td align=center>$sizeLib";
- $thisPercentage = percentage ($sizeLib, $sizeTotal);
- $componentPercentage .= "\n <td align=center>$thisPercentage";
- print "$i $sizeLib ($thisPercentage)\n" unless $html;
-}
-
-####
-#### Produce HTML output, if requested.
-####
-if ($html) {
- print '<center><table cellpadding=4 border=4>' . "\n";
- print ' <tr>' . "\n";
- print "$echoArgs $components\n";
- print ' <tr>' . "\n";
- print " <th rowspan=2>$sysname $sysrev $ACE_ROOT\n";
- print "$echoArgs $componentSize\n";
- print ' <tr>' . "\n";
- print "$echoArgs $componentPercentage\n";
- print '</table></center><p>' . "\n";
-}
-
-
-####
-#### Build library with componnents specified in argument.
-####
-sub build_lib ()
-{
- my ($lib_components) = @_;
-
- unlink "$lib";
-
- print "$make $make_args $lib_components\n" if $verbose;
-
- system ("$make $make_args $lib_components >> make.log 2>&1") &&
- die "$0: command failed; $make $make_args $lib_components\n";
-
- my $libSize = 0;
-
- open (SIZE, "$size $lib |") ||
- die "$0: unable to open $size\n";
- while (<SIZE>) {
- my (@field) = split;
- $libSize += $field[3] if $field[3] =~ /\d/; #### Skip size header line.
- }
- close (SIZE);
-
- $libSize;
-}
-
-
-####
-#### Return percentage of first argument as fraction of second.
-#### Returns a string with two-decimal place precision.
-####
-sub percentage ()
-{
- my ($size, $total) = @_;
-
- sprintf ("%.2f", $size * 100 / $total);
-}
diff --git a/bin/make-components b/bin/make-components
deleted file mode 100755
index a2b9c782807..00000000000
--- a/bin/make-components
+++ /dev/null
@@ -1,17 +0,0 @@
-#! /bin/sh
-# $Id$
-
-# Allow each ACE component to be built in a simple way, as follows:
-#
-# $ACE_ROOT/bin/make-components "your flags"
-#
-# to build libACE.$(SOEXT), libACE_OS.$(SOEXT), etc.
-
-flags="$*"
-cd $ACE_ROOT/ace
-make $flags
-for component in `cat $ACE_ROOT/ace/ACE_COMPONENTS.list`
-do
- make $flags LIBACE=libACE_$component ACE_COMPONENTS=$component
-done
-exit 0
diff --git a/bin/make_pretty.pl b/bin/make_pretty.pl
deleted file mode 100755
index a1e12de934f..00000000000
--- a/bin/make_pretty.pl
+++ /dev/null
@@ -1,542 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# Make the build output prettier.
-
-use Getopt::Std;
-use English;
-
-if (!getopts ('bc:hm:pt') || $opt_h) {
- print "Output Beautifier\n";
- print "\n";
- print "make_pretty.pl [-bpthr] [-c compiler] [-m msg]\n";
- print " -b Brief-ify the output (only errors and warnings)\n";
- print " -c compiler Specify the compiler type [msvc (default)/makefile]\n";
- print " -h Show this help output\n";
- print " -m Message to attach to the end of the output\n";
- print " -p Plain text mode (default is html)\n";
- print " -t Only give totals for warnings and errors (auto -b)\n";
- exit (1);
-}
-
-if (!$opt_c) {
- $opt_c = 'makefile';
- $opt_c = 'msvc' if ($OSNAME eq 'Win32');
-}
-
-if ($opt_c ne 'makefile' && $opt_c ne 'msvc') {
- print STDERR "Error: Must specify msvc or makefile as the compiler type\n";
- exit (1);
-}
-
-$opt_b = 1 if ($opt_t);
-
-###############################################################################
-sub set_html_output ()
-{
- $header = "<html>".
- "<head>".
- "<title>Error/Warning Summary of Daily Build</title></head>".
- "<body bgcolor=\"white\">".
- "<h1>Error/Warning Summary of Daily Build</h1>".
- "<TT>\n";
-
- $trailer = "</TT></body></html>";
-
- $bookmark_table = "<hr>".
- "<h2>Quick links</h2>".
- "<ul>".
- "<li><a href=\"#cvs\">CVS</a>".
- "<li><a href=\"#compiler\">Compilation</a>".
- "<li><a href=\"#tests\">Tests</a>".
- "</ul>";
-
- $bookmark_cvs = "<a name=\"cvs\"></a>";
- $bookmark_compiler = "<a name=\"compiler\"></a>";
- $bookmark_tests = "<a name=\"tests\"></a>";
-
- $pre_section_title = "<H2>";
- $post_section_title = "</H2>";
-
- $pre_error = "<FONT COLOR=\"FF0000\">";
- $post_error = "</FONT>";
-
- $pre_warning = "<FONT COLOR=\"FF7700\">";
- $post_warning = "</FONT>";
-
- $pre_config = "";
- $post_config = "";
-
- $line_break = "<BR>";
- $separator = "<HR>";
-}
-
-sub set_text_output ()
-{
- $header = "" ;
- $trailer = "" ;
-
- $bookmark_table = "";
-
- $bookmark_cvs = "";
- $bookmark_compiler = "";
- $bookmark_tests = "";
-
- $pre_section_title = "\n================================================".
- "================================\n";
- $post_section_title = "\n================================================".
- "================================\n";
-
- $pre_error = "";
- $post_error = "";
-
- $pre_warning = "";
- $post_warning = "";
-
- $pre_config = "";
- $post_config = "";
-
- $line_break = "";
- $separator = "------------------------------------------------".
- "--------------------------------\n";
-}
-
-# is_warning checks for warnings. It returns
-# 0 = no warning
-# 1 = warning line
-# 2 = possible warning
-# 3 = false warning
-sub is_warning ()
-{
- # Look for any warnings we should ignore
- return 3 if (/^LINK : warning LNK4089:/);
-
- # For some reason, there's a false license warning
- return 3 if (/\(W\).*Compilation will proceed shortly./);
-
- # AIX reports a bazillion multiple defines when doing templates.
- return 3 if (m/^ld: \d+\-\d+ WARNING: Duplicate symbol:/);
-
- # HP-UX uses 'nocompatwarnings' as an option to the compiler.
- return 3 if (m/vnocompatwarnings/);
-
- # SUN CC 5.0 defines __pthread_cleanup_push as a macro which causes
- # warnings. See /usr/include/pthread.h and
- # $ACE_ROOT/examples/Timer_Queue/Thread_Timer_Queue_Test.cpp for more
- # information.
- return 0 if (m/in call to __pthread_cleanup_push\(extern/);
-
- # Look for lines that also should be color coded, but not counted
- # as warnings.
- return 2 if (/see declaration of/);
-
- # Look for warnings
-
- return 1 if ((/warning/i && !/ warning\(s\)/)
- || /info: /i
- || /^make.*\*\*\*/
- || /^error \(future\)/i);
-
- if (/^.*\.h: /
- || /^.*\.i: /
- || /^.*\.inl: /
- || /^.*\.cpp: /
- || /^.*\.java: /) {
- return 1;
- }
-
- # IBM's compilers don't say the word "warning" - check for their code
- return 1 if (m/^.*\d+\-\d+:? \(W\)/);
-
- # didn't find anything
- return 0;
-}
-
-# is_error checks for errors. It returns
-# 0 = no error
-# 1 = error line
-# 2 = possible error
-# 3 = false errors
-sub is_error ()
-{
- # Look for any errors we should ignore
-
- # AIX reports a bazillion multiple defines when doing templates; some
- # have the word 'error' in the symbol name - ignore those.
- return 0 if (m/^ld: \d+\-\d+ WARNING: Duplicate symbol:/);
-
- # Linux has this annoying mktemp, mkstemp stuff. Ignore that
- # for the timebeing
- return 0 if (/is dangerous, better use/);
-
- # Look for lines that also should be color coded, but not counted
- # as errors.
- return 2 if (/Types pointed to are unrelated/
- || /while compiling class-template/
- || /requires an explicit cast/);
-
- if (/^.*:[0-9]+: /
- && !/^.*:[0-9]+: warning:/) {
- return 1;
- }
-
- # AIX linking errors from ld
- # But don't report the extra "check the map" message
- return 0 if (/^ld: 0711\-345/);
- return 1 if (/^ld: \d+\-\d+/);
-
- # Look for linking errors too
- return 1 if (/undefined reference to/
- || /: cannot open/
- || /: multiple definition of/
- || /path name does not exist/);
-
- # Look for possible errors
- return 1 if ((/error/i && !/ error\(s\), / && !/error \(future\)/i)
- || /^Fatal\:/
- || /: fatal:/);
-
- # Again, IBM's compilers speak in code langauge
- if (m/.*\d+\-\d+:? \([SI]\)/) {
- # Ignore licensing messages
- return 3 if (/.*Compilation will proceed shortly./);
- return 1;
- }
-
- # didn't find anything
- return 0;
-}
-
-sub print_build_header ($$)
-{
- my $directory = shift;
- my $config = shift;
-
- print "$separator$line_break";
- print "$pre_config$directory$post_config$line_break\n";
- print "$pre_config$config$post_config$line_break$line_break";
-}
-
-################################################################################
-sub cvs_output ()
-{
- my $patched = 0;
- my $updated = 0;
- my $modified = 0;
- my $conflicts = 0;
- my $unknown = 0;
-
- if (!$opt_t) {
- print $separator;
- print $bookmark_cvs;
- print $pre_section_title."CVS".$post_section_title;
- }
-
- LOOP: while (<>) {
- ++$patched if (/^P /);
- ++$updated if (/^U /);
- ++$modified if (/^M /);
- ++$conflicts if (/^C /);
- ++$unknown if (/^\? /);
-
- ### Isn't really a conflict, but easiest place to put it.
- ++$conflicts if (/aborted/);
-
- last LOOP if (/^####################/);
-
- if ($opt_t) {
- }
- elsif (/aborted/) {
- print "$pre_error$_$post_error$line_break";
- }
- elsif (/^C /) {
- print "$pre_error$_$post_error$line_break";
- }
- elsif (/^M /) {
- print "$pre_warning$_$post_warning$line_break";
- }
- elsif (!$opt_b) {
- print "$_$line_break";
- }
- }
-
- print $line_break;
- print "\nCVS Totals: ";
- print " Patched: $patched Updated:$updated Modified: $modified ".
- " Conflicts: $conflicts Unknown: $unknown\n\n$line_break";
-}
-
-sub msvc_compiler_output ()
-{
- my $project = "NULL";
- my $configuration = "NULL";
- my $dsp = "NULL";
- my $first_problem = 1;
- my $total_warnings = 0;
- my $total_errors = 0;
- my $bogus_warnings = 0;
- my $bogus_errors = 0;
-
- if (!$opt_t) {
- print $separator;
- print $bookmark_compiler;
- print $pre_section_title."Compilation".$post_section_title;
- }
-
- LOOP: while (<>)
- {
- last LOOP if (/^####################/);
-
- s/</&lt;/g if !$opt_p;
- s/>/&gt;/g if !$opt_p;
-
- my $is_warning = is_warning ();
- my $is_error = is_error ();
-
- if (/^Auto_compiling (.*)/) {
- print "$separator$line_break$pre_config$_$post_config$line_break"
- if (!$opt_b && !$opt_t);
- $dsp = $1;
- $first_problem = 1;
- }
- elsif (/^--------------------Configuration: (.*) - (.*)--------------------/) {
- print $pre_config.$_.$post_config.$line_break
- if (!$opt_b && !$opt_t);
- $project = $1;
- $configuration = $2;
- $first_problem = 1;
- }
- elsif (/\- (.*) error\(s\)\, (.*) warning\(s\)/) {
- my $errors = $1 - $bogus_errors;
- my $warnings = $2 - $bogus_warnings;
- print "$project - $errors error(s), $warnings warnings(s)$line_break\n"
- if (!$opt_b || ($opt_t && ($errors > 0 || $warnings > 0)));
- $total_errors = $total_errors + $errors;
- $total_warnings = $total_warnings +$warnings;
-
- $bogus_warnings = 0;
- $bogus_errors = 0;
- }
- elsif ($is_error == 3) {
- ++$bogus_errors;
- }
- elsif ($is_error == 2 || $is_error == 1) {
- if (!$opt_t) {
- print_build_header ($dsp, "$project: $configuration")
- if ($first_problem && $opt_b);
- $first_problem = 0;
- print "$pre_error$_$post_error$line_break";
- }
- }
- elsif ($is_warning == 3) {
- ++$bogus_warnings;
- }
- elsif ($is_warning == 2 || $is_warning == 1) {
- if (!$opt_t) {
- print_build_header ($dsp, "$project: $configuration")
- if ($first_problem && $opt_b);
- $first_problem = 0;
- print "$pre_warning$_$post_warning$line_break";
- }
- }
- else
- {
- print "$_$line_break"
- if (!$opt_b && !$opt_t);
- }
- }
- print $line_break;
- print "\nCompiler Totals: ";
- print " Errors: $total_errors Warnings: $total_warnings\n\n$line_break";
-}
-
-sub makefile_compiler_output ()
-{
- local $directory = 'NULL';
- my $first_problem = 1;
- local $total_warnings = 0;
- local $total_errors = 0;
- local $project_warnings = 0;
- local $project_errors = 0;
-
- if (!$opt_t) {
- print $separator;
- print $bookmark_compiler;
- print $pre_section_title."Compilation".$post_section_title;
- }
-
- sub print_summary ()
- {
- print $_.$line_break if (!$opt_b);
- $total_errors = $total_errors + $project_errors;
- $total_warnings = $total_warnings + $project_warnings;
- $project_errors = 0;
- $project_warnings = 0;
- $directory = 'NULL';
- }
-
- sub set_directory ($)
- {
- my $dir = shift;
-
- # Strip off the ACE_wrappers stuff
- if ($dir =~ /ACE_wrappers\/build\/[^\/]*\/(.*)/) {
- $dir = $1;
- }
- elsif ($dir =~ /ACE_wrappers\/(.*)/) {
- $dir = $1;
- }
-
- # Strip of trailing '
-
- if ($dir =~ /(.*)\'$/) {
- $dir = $1;
- }
-
- $directory = $dir;
- }
-
- LOOP: while (<>)
- {
- last LOOP if (/^####################/);
-
- s/</&lt;/g if !$opt_p;
- s/>/&gt;/g if !$opt_p;
-
- my $is_warning = is_warning ();
- my $is_error = is_error ();
-
- if (/Entering directory (.*)/) {
- print_summary () if ($directory ne 'NULL');
-
- print $pre_config.$1.$post_config."\n".$line_break
- if (!$opt_b && !$opt_t);
- set_directory ($1);
- $first_problem = 1;
-
- }
- elsif ($is_error == 3) {
- # Do Nothing
- }
- elsif ($is_error == 2 || $is_error == 1) {
- if (!$opt_t) {
- print_build_header ($directory, "")
- if ($first_problem && $opt_b);
- $first_problem = 0;
- print "$pre_error$_$post_error$line_break";
- }
- if ($is_error == 1) {
- ++$project_errors;
- }
- }
- elsif ($is_warning == 3) {
- # Do Nothing
- }
- elsif ($is_warning == 2 || $is_warning == 1) {
- if (!$opt_t) {
- print_build_header ($directory, "")
- if ($first_problem && $opt_b);
- $first_problem = 0;
- print "$pre_warning$_$post_warning$line_break";
- }
- if ($is_warning == 1) {
- ++$project_warnings;
- }
- }
- else
- {
- print "$_$line_break"
- if (!$opt_b && !$opt_t);
- }
- }
- print_summary () if ($directory ne 'NULL');
- print $line_break;
- print "\nCompiler Totals: ";
- print " Errors: $total_errors Warnings: $total_warnings\n\n$line_break";
-}
-
-sub tests_output ()
-{
- local $first_problem = 1;
- local $run_test = 'NULL';
- local $tests_failed = 0;
-
- sub check_result ()
- {
- if ($first_problem == 0) {
- if ($opt_t) {
- print $pre_error."Failure in $run_test\n".$post_error.$line_break;
- }
- ++$tests_failed;
- }
- }
-
- if (!$opt_t) {
- print $separator;
- print $bookmark_tests;
- print $pre_section_title."Tests".$post_section_title;
- }
-
- LOOP: while (<>) {
- last LOOP if (/^####################/);
-
- s/</&lt;/g if !$opt_p;
- s/>/&gt;/g if !$opt_p;
-
- if (/auto_run_tests: (.*)/) {
- check_result ();
-
- print $pre_config.$1.$post_config."\n".$line_break
- if (!$opt_b && !$opt_t);
- $run_test = $1;
- $first_problem = 1;
- }
- elsif (m/Error/
- || m/ERROR/
- || m/FAILED/
- || m/EXCEPTION/
- || m/pure virtual /i) {
- if (!$opt_t) {
- print_build_header ($run_test, "") if ($first_problem && $opt_b);
- print "$pre_error$_$post_error$line_break";
- }
- $first_problem = 0;
- }
- else
- {
- print "$_$line_break"
- if (!$opt_b && !$opt_t);
- }
- }
- check_result ();
-
- print $line_break;
- print "\nTest Failures: $tests_failed\n\n$line_break";
-}
-
-##############################################################################
-if ($opt_p) {
- set_text_output ();
-}
-else {
- set_html_output ();
-}
-
-print $header;
-print $bookmark_table;
-
-LOOP: while (<>) {
- last LOOP if (/^####################/);
-}
-
-cvs_output ();
-
-makefile_compiler_output () if ($opt_c eq 'makefile');
-msvc_compiler_output () if ($opt_c eq 'msvc');
-
-tests_output ();
-
-print "$line_break\n\n$opt_m\n\n$line_break" if $opt_m;
-print $trailer;
diff --git a/bin/make_release b/bin/make_release
deleted file mode 100755
index 327e87526c7..00000000000
--- a/bin/make_release
+++ /dev/null
@@ -1,779 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# Creates an ACE or TAO kit. Intended to be called from the
-# ACE or TAO top-level Makefiles.
-#
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-use strict;
-
-my $usage="usage: $0 [-?] [-i] [-g] [-k <kit>] [-n] [-v <version>] " .
- "[-ta <ACE tag>] [-tt <TAO tag>] " .
- "[-c <controlled files>] [-r <release files>] [-l <release lib files] " .
- "[-u] [-z]\n";
-my $long_usage=" -? option prints this message\n" .
- " -i to install to public web server directory\n" .
- " -g to generate the man pages\n" .
- " -k <kit>, where <kit> is ace, tao, or ace+tao\n" .
- " -n option prints what would be done, but doesn't do it\n" .
- " -v <version>, where <version> is major, minor, or beta (default)\n" .
- " -ta <ACE tag>, to specify ACE tag to be use for checkout (export)\n" .
- " -tt <TAO tag>, to specify TAO tag to be use for checkout (export)\n" .
- " -c <controlled files> lists the CVS-controlled files\n" .
- " -r <release files> lists the files to be released\n" .
- " -l <release lib files> list the files to put in the lib kit\n" .
- " -u to update versions\n" .
- " -z to suppress creation of .zip files\n";
-
-
-########
-######## Sanity checks.
-########
-$ENV{'SIGNATURE'} ||
- die "$0: must set your SIGNATURE environment variable\n";
-
-my $perl_path = '/pkg/gnu/bin/perl';
-&can_run($perl_path.' -V') ||
- die "$0: perl path is incorrect, please fix the script\n";
-
-my $dot_path = '/project/doc/pkg/gv1.5/bin';
-&can_run($dot_path.'/dot -V') ||
- die "$0: dot path is incorrect, please fix the script\n";
-
-my $doxy_path = '/project/doc/pkg/doxygen-1.2.3/bin';
-my $doxy_version = '1.2.3';
-&can_run($doxy_path.'/doxygen --version | grep '.$doxy_version.' >/dev/null') ||
- die "$0: doxygen path or version incorrect, please fix the script\n";
-$ENV{'PATH'} = $ENV{'PATH'}.':'.$doxy_path;
-
-my $hostname;
-chomp ($hostname = $ENV{'HOSTNAME'} || `uname -n`);
-unless ("$hostname" eq 'ace') {
- #### For efficiency sake . . .
- die "$0: must run on host ace\n";
-}
-
-
-$ENV{'CVSROOT'} ||
- die "$0: must set your CVSROOT environment variable\n";
-
-if (! "$ENV{'ACE_ROOT'}") {
- chop ($ENV{'ACE_ROOT'} = `/pkg/gnu/bin/pwd`);
-}
-
-
-########
-######## Configuration parameters.
-########
-my $gnu;
-if (-d '/pkg/gnu/bin') {
- $gnu = '/pkg/gnu/bin/';
- #### Insert it at head of PATH, so that cvs diff uses GNU diff.
- $ENV{'PATH'} = "/pkg/gnu/bin:" . $ENV{'PATH'};
-} else {
- #### The default utilities had better be GNU.
- $gnu = '';
-}
-
-#### Unconditionally insert this at the head of the path. We're
-#### running on ace, so if it hadn't been automounted, -d might fail
-#### to find the directory.
-my $gnu2 = '/project/danzon/pkg/gnu/bin';
-$ENV{'PATH'} = "$gnu2" . ':' . $ENV{'PATH'};
-
-my $export_dir = '/project/deuce/ftp/pub/ACE+TAO-distribution';
-my $diffs_dir = "$export_dir/diffs";
-my $exec_prefix = '';
-my $generate_man_pages = 0;
-my $install = 0;
-my $kit = '';
-my $release_type = 'beta';
-my $ace_tag = my $tao_tag = '';
-my $controlled_files = my $release_files = my $release_lib_files = '';
-my $release_tag_files = '';
-my $release_filter = '\\( -name CVS -o -name build \\) -prune -o ' .
- '! -name \'.\#*\' ! -name \'\#*\' ! -name \'*~\' ' .
- '! -name \'*.MAK\' -print';
-my $update_versions = 0;
-my $create_zips = 1;
-
-
-########
-######## Process command line args.
-########
-while ($#ARGV >= $[ && $ARGV[0] =~ /^-/) {
- if ($ARGV[0] eq '-i') {
- $install = 1;
- } elsif ($ARGV[0] eq '-g') {
- $generate_man_pages = 1;
- } elsif ($ARGV[0] eq '-k') {
- if ($ARGV[1] =~ /^[^-]+/ &&
- ($ARGV[1] eq 'ace' || $ARGV[1] eq 'tao' || $ARGV[1] eq 'ace+tao')) {
- $kit = $ARGV[1]; shift;
- } else {
- print STDERR "$0: must provide argument for -k option\n";
- die "$usage$long_usage";
- }
- } elsif ($ARGV[0] eq '-n') {
- $exec_prefix = 'echo ';
- } elsif ($ARGV[0] eq '-v') {
- if ($ARGV[1] =~ /^[^-]+/ &&
- ($ARGV[1] eq 'major' || $ARGV[1] eq 'minor' ||
- $ARGV[1] eq 'beta')) {
- $release_type = $ARGV[1]; shift;
- } else {
- print STDERR "$0: must provide argument for -v option\n";
- die "$usage$long_usage";
- }
- } elsif ($ARGV[0] eq '-ta') {
- if ($ARGV[1] =~ /^[^-]+/) {
- $ace_tag = $ARGV[1]; shift;
- } else {
- print STDERR "$0: must provide argument for -ta option\n";
- die "$usage$long_usage";
- }
- } elsif ($ARGV[0] eq '-tt') {
- if ($ARGV[1] =~ /^[^-]+/) {
- $tao_tag = $ARGV[1]; shift;
- } else {
- print STDERR "$0: must provide argument for -tt option\n";
- die "$usage$long_usage";
- }
- } elsif ($ARGV[0] eq '-c') {
- if ($ARGV[1] =~ /^[^-]+/) {
- $controlled_files = $ARGV[1]; shift;
- } else {
- print STDERR "$0: must provide argument for -c option\n";
- die "$usage$long_usage";
- }
- } elsif ($ARGV[0] eq '-r') {
- if ($ARGV[1] =~ /^[^-]+/) {
- $release_files = $ARGV[1]; shift;
- } else {
- print STDERR "$0: must provide argument for -r option\n";
- die "$usage$long_usage";
- }
- } elsif ($ARGV[0] eq '-l') {
- if ($ARGV[1] =~ /^[^-]+/) {
- $release_lib_files = $ARGV[1]; shift;
- } else {
- print STDERR "$0: must provide argument for -l option\n";
- die "$usage$long_usage";
- }
- } elsif ($ARGV[0] eq '-u') {
- $update_versions = 1;
- } elsif ($ARGV[0] eq '-z') {
- $create_zips = 0;
- } elsif ($ARGV[0] eq '-?') {
- print "$usage$long_usage";
- exit;
- } else {
- print STDERR "$0: unknown option $ARGV[0]\n";
- die "$usage$long_usage";
- }
- shift;
-
-}
-
-die "$0: must specify a -k option\n" unless "$kit";
-my $KIT;
-if ($kit eq 'ace') {
- $KIT = 'ACE';
-} elsif ($kit eq 'tao') {
- $KIT = 'TAO';
-} else {
- #### Creating combined ACE+TAO kit. Don't use $KIT.
-};
-
-my $chmod = '/bin/chmod';
-my $chgrp = "${gnu}chgrp";
-my $cpio = "${gnu}cpio";
-my $cvs = "${gnu}cvs";
-my $date = "${gnu}date";
-my $egrep = "${gnu}egrep";
-my $find = "${gnu}find";
-my $gzip = "${gnu}gzip";
-my $make = "${gnu}make -s";
-my $mv = '/bin/mv -f';
-my $rm = "${gnu}rm -f";
-my $md5sum = "${gnu2}/md5sum";
-chop (my $now = `$date +"%a %b %d %T %Y"`);
-
-unless ("$controlled_files") {
- chomp ($controlled_files = `$make show_controlled_files`);
-}
-
-unless ("$release_files") {
- chomp ($release_files = `$make show_release_files`);
-}
-
-unless ("$release_lib_files") {
- chomp ($release_lib_files = `$make show_release_lib_files`);
-}
-
-unless ("$release_tag_files") {
- chomp ($release_tag_files = `$make show_release_tag_files`);
-}
-
-########
-######## Setup signal handlers.
-########
-my $status = 1; #### Must get set to 0 explicitly to indicate success.
-$SIG{'HUP'} = $SIG{'INT'} = $SIG{'QUIT'} = $SIG{'TERM'} = 'cleanup';
-
-
-########
-######## Defend against fascist umasks.
-########
-umask 022;
-
-
-my $major_version = my $minor_version = my $beta_version = 0;
-my $previous_version = my $version = '';
-my $ace_version = '';
-
-########
-######## Main execution thread.
-########
-if ($update_versions && "$kit" ne 'ace+tao') {
- #### Update versions and tag, but don't create the kit.
-
- $status =
- &check_workspace () ||
- &get_versions () ||
- &update_version_files () ||
- &update_changelog () ||
- &tag ();
-} else {
- #### Create the kit.
-
- #### If a tag was specified, export using the tag from a staging area.
- #### If not, create a kit from the current directory.
- my $stage_dir = '..';
- if ("$ace_tag" || "$tao_tag") {
- $stage_dir = "/tmp/ACE_wrappers_stage-$$/";
- unless ("$exec_prefix") {
- mkdir "$stage_dir", 0755 ||
- die "$0: unable to mkdir $stage_dir\n";
- }
- }
-
- if ("$exec_prefix") {
- print "chdir $stage_dir\n";
- } else {
- chdir $stage_dir || die "$0: unable to chdir $stage_dir\n";
- }
-
- if ("$ace_tag") {
- &ex ("$cvs -q export -r$ace_tag -kv ACE_wrappers > /dev/null") &&
- die "$0: failed cvs export of $ace_tag in $stage_dir\n";
- unless ("$exec_prefix") {
- mkdir "ACE_wrappers/man", 0755 ||
- die "$0: unable to mkdir $stage_dir/ACE_wrappers/man\n";
- mkdir "ACE_wrappers/man/man3", 0755 ||
- die "$0: unable to mkdir $stage_dir/ACE_wrappers/man/man3\n";
- }
- if ($generate_man_pages) {
- &ex ("cd ACE_wrappers && bin/generate_doxygen.pl -is_release -exclude_tao -perl_path $perl_path -dot_path $dot_path")
- && die "$0: failed to generate ACE man pages in $stage_dir\n";
- &ex ("cd ACE_wrappers/man && catman -w -M .")
- && die "$0: failed to generate man page index in $stage_dir\n";
- }
- &ex ("cd ACE_wrappers && $make ACE-INSTALL") &&
- die "$0: failed make ACE-INSTALL in $stage_dir/ACE_wrappers\n";
- }
-
- if ("$tao_tag") {
- &ex ("$cvs -q export -r$tao_tag -kv ACE_wrappers/TAO > /dev/null") &&
- die "$0: failed cvs export of $tao_tag in $stage_dir\n";
- &ex ("cd ACE_wrappers/TAO && $make INSTALL orbsvcs/README") &&
- die "$0: failed make INSTALL TAO/orbsvcs/README in " .
- "$stage_dir/ACE_wrappers/TAO\n";
-
- if ($generate_man_pages) {
- &ex ("cd ACE_wrappers && bin/generate_doxygen.pl -is_release -exclude_ace -perl_path $perl_path -dot_path $dot_path")
- && die "$0: failed to generate TAO man pages in $stage_dir\n";
- }
- }
-
- $status = &create_kit ();
-
- if (! $status && $install) {
- if ("$ace_tag") {
- my $major_v = 0;
- my $minor_v = 0;
- my $beta_v = 0;
- if ($ace_tag =~ /(\d+)_(\d+)_(\d+)/o) {
- my $major_v = $1;
- my $minor_v = $2;
- my $beta_v = $3;
-
- #### $previous_version is used by diff ().
- if ($beta_v > 0) {
- my $previous_beta = $beta_v - 1;
- $previous_version = "$major_v.$minor_v.$previous_beta";
-
- &diff ('ACE_wrappers', "ACE-$previous_version", "$ace_tag");
- }
- }
- }
-
- if ("$tao_tag") {
- my $major_v = 0;
- my $minor_v = 0;
- my $beta_v = 0;
- if ($tao_tag =~ /(\d+)_(\d+)_(\d+)/o) {
- my $major_v = $1;
- my $minor_v = $2;
- my $beta_v = $3;
-
- #### $previous_version is used by diff ().
- if ($beta_v > 0) {
- my $previous_beta = $beta_v - 1;
- $previous_version = "$major_v.$minor_v.$previous_beta";
-
- &diff ('ACE_wrappers/TAO', "TAO-$previous_version", "$tao_tag");
- }
- }
- }
- }
-
- if ("$ace_tag" || "$tao_tag") {
- if ($install) {
- chdir "..";
- &ex ("$rm -r $stage_dir") &&
- warn "$0: failed to remove $stage_dir\n";
- } else {
- warn "$0: kits are in $stage_dir\n";
- }
- }
-}
-&cleanup;
-
-
-########
-######## Clean up when done or on signal.
-########
-sub cleanup {
- exit $status;
-}
-
-
-########
-######## Check that the workspace is up-to-date, if releasing from
-######## the official release directory.
-########
-sub check_workspace () {
- my $module;
-
- if ($kit =~ /^ace/) {
- chdir '..' || die "$0: unable to chdir ..\n";
- $module = 'ACE_wrappers';
- } elsif ($kit =~ /tao/) {
- chdir '../..' || die "$0: unable to chdir ../..\n";
- $module = 'ACE_wrappers/TAO';
- }
-
- my @out_of_date = ();
- open (CVS, "$cvs -nq checkout -P $module 2>&1 |") ||
- die "$0: unable to open $cvs\n";
- while (<CVS>) {
- next if m%^U %; #### Allow others to update the repository.
- next if m%^cvs checkout: New directory `.*' -- ignored$%; #### empty dirs.
-
- push (@out_of_date, $_) if "$_";
- }
- close CVS;
-
- if ($kit =~ /^ace/) {
- chdir 'ACE_wrappers' || die "$0: unable to chdir ACE_wrappers\n";
- } elsif ($kit =~ /tao/) {
- chdir 'ACE_wrappers/TAO' || die "$0: unable to chdir ACE_wrappers/TAO\n";
- }
-
- if (@out_of_date) {
- warn "ERROR: workspace must be updated (with cvs -q up -d) or " .
- "cleaned:\n " .
- join ("\n ", @out_of_date) . "\n";
- return 1;
- }
-
- 0;
-}
-
-
-########
-######## Retrieve version information from VERSION file(s).
-########
-sub get_versions () {
- open (VERSION, '< VERSION') ||
- die "$0: unable to open VERSION\n";
- while (<VERSION>) {
- if (/$KIT version (\d+)\.(\d+)\.(\d+)/o) {
- $major_version = $1;
- $minor_version = $2;
- $beta_version = $3;
- last;
- } elsif (/$KIT version (\d+)\.(\d+)[^\.]/o) {
- #### Previous release was a minor.
- $major_version = $1;
- $minor_version = $2;
- last;
- } elsif (/$KIT version (\d+)[^\.]/o) {
- #### Previous release was a major.
- $major_version = $1;
- last;
- }
- }
- close VERSION;
-
- if ($release_type eq 'beta') {
- ++$beta_version;
- $version = "$major_version.$minor_version.$beta_version";
- } elsif ($release_type eq 'minor' ) {
- $beta_version = 0;
- ++$minor_version;
- $version = "$major_version.$minor_version";
- } elsif ($release_type eq 'major' ) {
- $minor_version = $beta_version = 0;
- ++$major_version;
- $version = "$major_version.$minor_version";
- }
-
- print "new $KIT version: $version\n";
-
- if ($kit =~ /tao/) {
- my $ace_major_version = my $ace_minor_version = my $ace_beta_version = 0;
- open (ACE_VERSION, '< ../VERSION') ||
- die "$0: unable to open ../VERSION\n";
- while (<ACE_VERSION>) {
- if (/ACE version (\d+)\.(\d+)\.(\d+)/o) {
- $ace_major_version = $1;
- $ace_minor_version = $2;
- $ace_beta_version = $3;
- last;
- } elsif (/ACE version (\d+)\.(\d+)[^\.]/o) {
- #### ACE release was a minor.
- $ace_major_version = $1;
- $ace_minor_version = $2;
- last;
- } elsif (/ACE version (\d+)[^\.]/o) {
- #### ACE release was a major.
- $ace_major_version = $1;
- last;
- }
- }
- close ACE_VERSION;
-
- if ($ace_beta_version == 0) {
- $ace_version = "$ace_major_version.$ace_minor_version";
- } else {
- $ace_version = "$ace_major_version.$ace_minor_version.$ace_beta_version";
- }
- }
-
- 0;
-}
-
-
-########
-######## Update VERSION file(s).
-########
-sub update_version_files () {
- &ex ("perl -pi -e " .
- "'s/$KIT version .*/$KIT version $version, released $now./' VERSION");
- return 1 if $? >> 8;
-
- &ex ("perl -pi -e 's/$KIT VERSION:.*/$KIT VERSION: $version/' " .
- "PROBLEM-REPORT-FORM");
- return 1 if $? >> 8;
-
- if ($kit =~ /^tao/) {
- &ex ("perl -pi -e 's/ACE VERSION:.*/ACE VERSION: $ace_version/' " .
- "PROBLEM-REPORT-FORM");
- return 1 if $? >> 8;
-
- if ("$exec_prefix") {
- print "TAO version ${major_version}.${minor_version}.${beta_version}\n";
- } else {
- open (TAO_VERSION_H, "> tao/Version.h") ||
- die "$0: unable to open tao/Version.h\n";
-
- print TAO_VERSION_H
- "// \$Id\$\n" .
- "// This is an automatically generated file.\n\n" .
- "\#define TAO_MAJOR_VERSION ${major_version}\n" .
- "\#define TAO_MINOR_VERSION ${minor_version}\n" .
- "\#define TAO_BETA_VERSION ${beta_version}\n" .
- "\#define TAO_VERSION \"${version}\"\n";
-
- close TAO_VERSION_H;
- }
- }
-
- if ($kit =~ /^ace/) {
- if ("$exec_prefix") {
- print "ACE version ${major_version}.${minor_version}.${beta_version}\n";
- } else {
-
- open (ACE_VERSION_H, "> ace/Version.h") ||
- die "$0: unable to open ace/Version.h\n";
-
- print ACE_VERSION_H
- "// \$Id\$\n" .
- "// This is an automatically generated file.\n\n" .
- "\#define ACE_MAJOR_VERSION ${major_version}\n" .
- "\#define ACE_MINOR_VERSION ${minor_version}\n" .
- "\#define ACE_BETA_VERSION ${beta_version}\n" .
- "\#define ACE_VERSION \"${version}\"\n";
-
- close ACE_VERSION_H;
- }
- }
-
- 0;
-}
-
-
-########
-######## Add ChangeLog entries, and make sure that they have proper
-######## permissions.
-########
-sub update_changelog () {
- my $logname = $ENV{'LOGNAME'};
- if (! "$logname") {
- chop ($logname = `/usr/ucb/whoami`);
- }
- my $signature = $ENV{'SIGNATURE'} || $logname;
- my $message = "$now $signature <$logname\@cs.wustl.edu>\n\n" .
- " * $KIT version $version released.\n\n";
-
- if ("$exec_prefix") {
- print "Adding to ChangeLog: \n", $message, "\n";
- return 0;
- }
- open (NEW_CHANGELOG, ">ChangeLog.bak")
- || return 1;
- open (CHANGELOG, "ChangeLog")
- || return 1;
- print NEW_CHANGELOG $message;
- while (<CHANGELOG>) {
- print NEW_CHANGELOG $_;
- }
- close (CHANGELOG)
- || return 1;
- close (NEW_CHANGELOG)
- || return 1;
- rename "ChangeLog.bak", "ChangeLog"
- || return 1;
-
- my $version_h = $kit =~ /^ace/ ? 'ace/Version.h' : 'tao/Version.h';
-
- &ex ("$cvs commit -m'$version' " .
- "VERSION PROBLEM-REPORT-FORM ChangeLog $version_h && " .
- "chmod 0644 VERSION PROBLEM-REPORT-FORM ChangeLog $version_h; " .
- "chgrp doc VERSION PROBLEM-REPORT-FORM ChangeLog $version_h");
- return 1 if $? >> 8;
-
- 0;
-}
-
-
-########
-######## Tag the release.
-########
-sub tag () {
- my $tag = "$KIT-$version";
- #### cvs tag does not allow dots.
- $tag =~ tr/./_/;
-
- print "start tagging $tag\n";
- if ($KIT eq "TAO") {
- chdir "..";
- }
- &ex ("$cvs -q tag $tag $controlled_files $release_tag_files > /dev/null");
- if ($KIT eq "TAO") {
- chdir "TAO";
- }
- return 1 if $? >> 8;
- print "finished tagging $tag\n";
-
- 0;
-}
-
-
-########
-######## If building a beta, create a diff from the previous version.
-########
-sub diff () {
- my ($module, $previous_tag, $tag) = @_;
-
- if ("$previous_version") {
- #### Only create a diff for a beta version.
-
- #### cvs tag does not allow dots.
- $previous_tag =~ tr/./_/;
- $tag =~ tr/./_/;
-
- &ex ("nice -15 $cvs -q rdiff -u -r $previous_tag -r $tag " .
- "$module 2>/dev/null | " .
- "nice -15 sed 's%ACE_wrappers-repository/%ACE_wrappers/%g' | " .
- "nice -15 $gzip -9 > $diffs_dir/$previous_tag-$tag.diff.gz")
- if -d "$diffs_dir";
- }
-
- #### Ignore return value. No promises on diffs.
- 0;
-}
-
-
-########
-######## Create the tar file(s) and move to their proper location.
-########
-sub create_kit () {
-
- #### Create kits with group write permission.
- umask 002;
-
- my $dest = $install ? "$export_dir" : 'created';
- my $dispose = $install ? "$mv" : 'echo';
- my $checksum = $install ? "$md5sum" : 'echo';
- my $cksum_ext = 'md5';
- my $redirect = $install ? '>' : '\>';
- my $shell_cd = $install ? 'cd' : 'echo cd';
-
- # These files don't get LF->CRLF conversions done when making the zip.
- my $bin_files =
- "\"\\.dsp|\\.dsw|\\.mak|\\.mdp|\\.ide|\\.exe\|\\.ico\|\\.gz\|\\.zip\|" .
- "\\.gif\"";
-
- my $build_command;
- my $archives;
-
- ##### @@ DISABLED UNTIL READY FOR GENERAL USE -- Ossama
- ## Temporary ACE+autoconf hack to bootstrap autoconf support into
- ## ACE distribution.
- #&ex("cd ACE_wrappers && bin/bootstrap");
-
- if ($kit eq 'ace' || $kit eq 'ace+tao') {
- if ($create_zips) {
- $build_command =
- "$rm ACE.zip ACE-lib.zip; " .
- "$find $release_files $release_filter | $egrep $bin_files | " .
- "zip ACE.zip -q9@ &&" .
- "$find $release_files $release_filter | $egrep -v $bin_files | " .
- "zip ACE.zip -qlg9@ &&" .
- "$find $release_lib_files $release_filter | $egrep $bin_files | " .
- "zip ACE-lib.zip -q9@ &&" .
- "$find $release_lib_files $release_filter | $egrep -v $bin_files | " .
- "zip ACE-lib.zip -qlg9@ &&" .
- "$find $release_files $release_filter | $cpio -o -H tar | " .
- "$gzip -9 > ACE.tar.gz && " .
- "$find $release_lib_files $release_filter | $cpio -o -H tar | " .
- "$gzip -9 > ACE-lib.tar.gz && " .
- "$find ACE_wrappers/html $release_filter | $cpio -o -H tar | " .
- "$gzip -9 > ACE-html.tar.gz && ".
- "$find ACE_wrappers/html $release_filter | $egrep $bin_files | " .
- "zip ACE-html.zip -q9@ &&" .
- "$find ACE_wrappers/html $release_filter | $egrep -v $bin_files | " .
- "zip ACE-html.zip -qlg9@ &&" .
- "$chmod 664 ACE.tar.gz ACE-lib.tar.gz ".
- "ACE.zip ACE-lib.zip ACE-html.zip && " .
- "$chgrp doc ACE.tar.gz ACE-lib.tar.gz ".
- "ACE.zip ACE-lib.zip ACE-html.zip && " .
- "$dispose ACE.zip ACE-lib.zip ACE-html.zip $dest && " .
- "$dispose ACE.tar.gz ACE-lib.tar.gz ACE-html.tar.gz $dest; ";
- $archives = " ACE.tar.gz ACE-lib.tar.gz ACE-html.tar.gz ".
- "ACE.zip ACE-lib.zip ACE-html.zip";
- } else {
- $build_command =
- "$find $release_files $release_filter | $cpio -o -H tar | " .
- "$gzip -9 > ACE.tar.gz && " .
- "$find $release_lib_files $release_filter | $cpio -o -H tar | " .
- "$gzip -9 > ACE-lib.tar.gz && " .
- "$find ACE_wrappers/html $release_filter | $cpio -o -H tar | " .
- "$gzip -9 > ACE-html.tar.gz && ".
- "$chmod 664 ACE.tar.gz ACE-lib.tar.gz ACE-html.tar.gz && " .
- "$chgrp doc ACE.tar.gz ACE-lib.tar.gz ACE-html.tar.gz && " .
- "$dispose ACE.tar.gz ACE-lib.tar.gz ACE-html.tar.gz $dest; ";
- $archives = " ACE.tar.gz ACE-lib.tar.gz TAO-html.tar.gz ";
- }
- }
-
- if ($kit eq 'ace+tao') {
- $release_files .= ' ACE_wrappers/TAO';
-
- if ($create_zips) {
- $build_command .=
- "$rm ACE+TAO.zip; " .
- "$find $release_files $release_filter | $egrep $bin_files | " .
- "zip ACE+TAO.zip -q9@ &&" .
- "$find $release_files $release_filter | $egrep -v $bin_files | " .
- "zip ACE+TAO.zip -qlg9@ &&" .
- "$find $release_files $release_filter | $cpio -o -H tar | " .
- "$gzip -9 > ACE+TAO.tar.gz && " .
- "$chmod 664 ACE+TAO.tar.gz ACE+TAO.zip && " .
- "$chgrp doc ACE+TAO.tar.gz ACE+TAO.zip && " .
- "$dispose ACE+TAO.tar.gz ACE+TAO.zip $dest";
- $archives .= " ACE+TAO.tar.gz ACE+TAO.zip ";
- } else {
- $build_command .=
- "$find $release_files $release_filter | $cpio -o -H tar | " .
- "$gzip -9 > ACE+TAO.tar.gz && " .
- "$chmod 664 ACE+TAO.tar.gz && " .
- "$chgrp doc ACE+TAO.tar.gz && " .
- "$dispose ACE+TAO.tar.gz $dest";
- $archives .= " ACE+TAO.tar.gz ";
- }
- }
-
- # The "$dest/\$p" is going to look a bit funny if the release isn't
- # being installed in the FTP directory since it will expand to
- # `created/ACE.tar.gz', for example. No big deal, I guess.
- my $checksum_command =
- "$shell_cd $dest; " .
- "for p in $archives; do " .
- "$rm \${p}.${cksum_ext}; " .
- "$checksum \$p $redirect \${p}.${cksum_ext}; " .
- "done";
-
- &ex ($build_command);
- &ex ($checksum_command);
-}
-
-
-########
-######## Execute a command, unless -n had been specified. Return value
-######## of 0 indicates success.
-########
-sub ex ()
-{
- my ($command) = @_;
-
- if ("$exec_prefix") {
- print $command . "\n";
- 0;
- } else {
- system ("$command");
- }
-}
-
-########
-######## Verify that a command can be executed, return 1 on sucess
-########
-sub can_run {
- my $command = shift;
-
- open (RUN, "$command 2>&1 |")
- || return 0;
- while (<RUN>) {}
- close(RUN)
- || return 0;
- return 1;
-}
diff --git a/bin/msvc_auto_compile.pl b/bin/msvc_auto_compile.pl
deleted file mode 100755
index 0f637094c7c..00000000000
--- a/bin/msvc_auto_compile.pl
+++ /dev/null
@@ -1,349 +0,0 @@
-# $Id$
-# Win32 auto_compile script.
-
-use File::Find;
-use Cwd;
-
-if (!$ENV{ACE_ROOT}) {
- $ACE_ROOT = getcwd ()."\\";
- warn "ACE_ROOT not defined, defaulting to ACE_ROOT=$ACE_ROOT";
-}
-else {
- $ACE_ROOT = $ENV{ACE_ROOT};
-}
-
-@directories = ();
-
-@ace_dirs = ("$ACE_ROOT\\ace",
- "$ACE_ROOT\\apps",
- "$ACE_ROOT\\ASNMP",
- "$ACE_ROOT\\examples",
- "$ACE_ROOT\\netsvcs",
- "$ACE_ROOT\\performance-tests",
- "$ACE_ROOT\\tests",
- "$ACE_ROOT\\websvcs");
-
-$debug = 0;
-$verbose = 0;
-$print_status = 0;
-$Ignore_errors = 0; # By default, bail out if an error occurs.
-$Build_DLL = 0;
-$Build_LIB = 0;
-$Build_Debug = 0;
-$Build_Release = 0;
-$Build_All = 1;
-$build_core_only = 0;
-$Build_Cmd = "/BUILD";
-$use_custom_dir = 0;
-$useenv = '';
-
-# Find_dsp will search a directory for *.dsp files and return a list
-# of strings that include the project name and the configuration
-sub Find_dsp (@)
-{
- my (@dir) = @_;
- @array = ();
- my @config_array = ();
-
- # wanted is only used for the File::Find
- sub wanted
- {
- $array[++$#array] = $File::Find::name if ($File::Find::name =~ /\.dsp$/i);
- }
-
- # get_config grabs the configurations out of a dsp file.
- sub get_config ($)
- {
- my ($file) = @_;
- my @configs = ();
-
- print "Looking at $file\n" if ($verbose);
-
- open (DSP, "< $file") || die $!;
-
- while (<DSP>)
- {
- push @configs, $1 if (/# Name \"([^\"]+)\"/);
- }
-
- close (DSP);
- return @configs;
- }
-
- unshift @dir, (\&wanted);
-
- find @dir;
-
- for ($i = 0; $i <= $#array; ++$i) {
- my $filename = "$array[$i]";
-
- $filename =~ s@/./@/@g;
- $filename =~ s@/@\\@g;
- my @dsp_configs = get_config ($array[$i]);
-
- for ($j = 0; $j <= $#dsp_configs; ++$j) {
- push @config_array, "$filename--$dsp_configs[$j]";
- }
- }
-
- return @config_array;
-}
-
-
-# Build_Config takes in a string of the type "project--configuration" and
-# runs msdev to build it.
-sub Build_Config ($)
-{
- my ($arg) = @_;
- my ($project, $config) = split /--/, $arg;
-
- return Build ($project, $config);
-}
-
-# Build
-sub Build ($$)
-{
- my ($project, $config) = @_;
-
- if ($debug == 1) {
- print "$project\n";
- return 0;
- }
- else {
- print "Auto_compiling $project : $config\n";
-
- print "Building $project $config\n" if $verbose;
-
- return system ("msdev.com $project /MAKE \"$config\" $Build_Cmd $useenv");
- }
-}
-
-# Only builds the core libraries.
-sub Build_Core ()
-{
- print STDERR "Building Core of ACE/TAO\n" if ($print_status == 1);
- print "Building Core of ACE/TAO\n" if ($verbose == 1);
-
- print "Build \n" if ($verbose);
- print "Debug " if ($verbose) && ($Build_Debug);
- print "Release " if ($verbose) && ($Build_Release);
- print "DLL " if ($verbose) && ($Build_DLL);
- print "LIB " if ($verbose) && ($Build_LIB);
- print "\n" if ($verbose);
-
- my @core_list = ();
-
- if ($Build_DLL) {
- @core_list = ($ACE_ROOT."\\TAO\\TAOACE.dsw");
-
- foreach $c (@core_list) {
- if ($Build_Debug) {
- $Status = Build ($c, "ALL - Win32 Debug");
- return if $Status != 0 && !$Ignore_errors;
- }
- if ($Build_Release) {
- $Status = Build ($c, "ALL - Win32 Release");
- return if $Status != 0 && !$Ignore_errors;
- }
- }
- }
- if ($Build_LIB) {
- @core_list = ($ACE_ROOT."\\ace\\ace_lib.dsp",
- $ACE_ROOT."\\apps\\gperf\\src\\gperf.dsp",
- $ACE_ROOT."\\TAO\\TAO_IDL\\TAO_IDL_BE_LIB.dsp",
- $ACE_ROOT."\\TAO\\TAO_IDL\\TAO_IDL_FE_LIB.dsp",
- $ACE_ROOT."\\TAO\\TAO_IDL\\tao_idl_static.dsp",
- $ACE_ROOT."\\TAO\\tao\\TAO_Static.dsp",
- $ACE_ROOT."\\TAO\\tao\\PortableServer\\TAO_PortableServer_Static.dsp",
- $ACE_ROOT."\\TAO\\tao\\DynamicAny\\TAO_DynamicAny_Static.dsp",
- $ACE_ROOT."\\TAO\\tao\\IORManipulation\\TAO_IORManip_Static.dsp",
- $ACE_ROOT."\\TAO\\tao\\IORTable\\TAO_IORTable_Static.dsp",
- $ACE_ROOT."\\TAO\\tao\\Strategies\\TAO_Strategies_Static.dsp",
- $ACE_ROOT."\\TAO\\tao\\RTCORBA\\TAO_RTCORBA_Static.dsp",
- $ACE_ROOT."\\TAO\\tao\\RTPortableServer\\TAO_RTPortableServer_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\Svc_Utils_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\CosNaming_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\CosProperty_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\CosTrading_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\AV_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\RTEvent_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\RTSched_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\RTSchedEvent_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\RTOLDEvent_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\CosEvent_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\CosConcurrency_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\CosLifeCycle_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\CosTime_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\DsLogAdmin_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\CosNotification_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\orbsvcs\\LoadBalancing_Static.dsp",
- $ACE_ROOT."\\TAO\\orbsvcs\\Naming_Service\\Naming_Server_static.dsp");
-
- foreach $c (@core_list) {
- if ($Build_Debug) {
- $Status = Build ($c, "ALL - Win32 Static Debug");
- return if $Status != 0 && !$Ignore_errors;
- }
- if ($Build_Release) {
- $Status = Build ($c, "ALL - Win32 Static Release");
- return if $Status != 0 && !$Ignore_errors;
- }
- }
- }
-}
-
-sub Build_All ()
-{
- my @configurations = Find_dsp (@directories);
-
- print STDERR "First pass (libraries)\n" if ($print_status == 1);
- print "\nmsvc_auto_compile: First Pass (libraries)\n";
-
- foreach $c (@configurations) {
- if ($Build_All
- || ($Build_DLL && $Build_Debug && $c =~ /Win32 Debug/)
- || ($Build_DLL && $Build_Release && $c =~ /Win32 Release/)
- || ($Build_LIB && $Build_Debug && $c =~ /Win32 Static Debug/)
- || ($Build_LIB && $Build_Release && $c =~ /Win32 Static Release/))
- {
- my $Status = 0;
- $Status = Build_Config ($c)
- if (($c =~ /Library/) || ($c =~ / DLL /) || ($c =~ / LIB /));
- return if ($Status != 0 && !$Ignore_errors);
- }
- }
-
-
- print STDERR "Second pass \n" if ($print_status == 1);
- print "\nmsvc_auto_compile: Second Pass\n";
-
- $count = 0;
- foreach $c (@configurations) {
- print STDERR "Configuration ".$count++." of ".$#configurations."\n" if ($print_status == 1);
- Build_Config ($c)
- if (($Build_DLL && $Build_Debug && $c =~ /Win32 Debug/)
- || ($Build_DLL && $Build_Release && $c =~ /Win32 Release/)
- || ($Build_LIB && $Build_Debug && $c =~ /Win32 Static Debug/)
- || ($Build_LIB && $Build_Release && $c =~ /Win32 Static Release/));
- }
-}
-
-
-## Parse command line argument
-while ( $#ARGV >= 0 && $ARGV[0] =~ /^(-|\/)/ )
-{
- if ($ARGV[0] =~ '-k') { # Ignore errors
- print "Ignore errors\n" if ( $verbose );
- $Ignore_errors = 1;
- }
- elsif ($ARGV[0] =~ /^-d$/i) { # debug
- $debug = 1;
- }
- elsif ($ARGV[0] =~ '-v') { # verbose mode
- $verbose = 1;
- }
- elsif ($ARGV[0] =~ '-s') { # status messages
- $print_status = 1;
- }
- elsif ($ARGV[0] =~ '-u') { # USEENV
- print "Using Environment\n" if ($verbose);
- $useenv = '/USEENV';
- }
- elsif ($ARGV[0] =~ '-CORE') { # Build the core of ace/tao
- print "Building only Core\n" if ( $verbose );
- $build_core_only = 1;
- }
- elsif ($ARGV[0] =~ '-ACE') { # Build ACE and its programs
- print "Building ACE\n" if ( $verbose );
- $use_custom_dir = 1;
- push @directories, @ace_dirs;
- }
- elsif ($ARGV[0] =~ '-TAO') { # Build TAO and its programs
- print "Building TAO\n" if ( $verbose );
- $use_custom_dir = 1;
- push @directories, ("$ACE_ROOT\\TAO");
- }
- elsif ($ARGV[0] =~ '-dir') { # Compile only a specific directory
- shift;
- print "Adding directory $ARGV[0]\n" if ( $verbose );
- $use_custom_dir = 1;
- push @directories, $ARGV[0];
- }
- elsif ($ARGV[0] =~ '-rebuild') { # Rebuild all
- print "Rebuild all\n" if ( $verbose );
- $Build_Cmd = "/REBUILD";
- }
- elsif ($ARGV[0] =~ '-clean') { # Clean
- print "Cleaning all\n" if ( $verbose );
- $Build_Cmd = "/CLEAN";
- }
- elsif ($ARGV[0] =~ '-Debug') { # Debug versions
- print "Building Debug Version\n" if ( $verbose );
- $Build_Debug = 1;
- $Build_All = 0;
- }
- elsif ($ARGV[0] =~ '-Release') { # Release versions
- print "Building Release Version\n" if ( $verbose );
- $Build_Release = 1;
- $Build_All = 0;
- }
- elsif ($ARGV[0] =~ '-DLL') { # Build DLL only
- print "Build DLL only\n" if ( $verbose );
- $Build_DLL = 1;
- $Build_All = 0;
- }
- elsif ($ARGV[0] =~ '-LIB') { # Build LIB only
- print "Build LIB only\n" if ( $verbose );
- $Build_LIB = 1;
- $Build_All = 0;
- }
- elsif ($ARGV[0] =~ '-(\?|h)') { # Help information
- print "Options\n";
- print "-d = Debug (only print out projects)\n";
- print "-k = Ignore Errors\n";
- print "-v = Script verbose Mode\n";
- print "-s = Print status messages to STDERR\n";
- print "-u = Tell MSVC to use the environment\n";
- print "\n";
- print "-CORE = Build the Core libraries\n";
- print "-ACE = Build ACE and its programs\n";
- print "-TAO = Build TAO and its programs\n";
- print "-dir <dir> = Compile custom directories\n";
- print "\n";
- print "-rebuild = Rebuild All\n";
- print "-clean = Clean\n";
- print "-Debug = Compile Debug versions\n";
- print "-Release = Compile Release versions\n";
- print "-DLL = Comple DLL Configurations\n";
- print "-LIB = Comple LIB Configurations\n";
- exit;
- }
- else {
- warn "$0: unknown option $ARGV[0]\n";
- die -1;
- }
- shift;
-}
-
-if (!$Build_DLL && !$Build_LIB) {
- $Build_DLL = 1;
- $Build_LIB = 1;
-}
-
-if (!$Build_Debug && !$Build_Release) {
- $Build_Debug = 1;
- $Build_Release = 1;
-}
-
-if ($#directories < 0) {
- @directories = ($ACE_ROOT);
-}
-
-print "msvc_auto_compile: Begin\n";
-print STDERR "Beginning Core Build\n" if ($print_status == 1);
-Build_Core if (!$use_custom_dir || $build_core_only);
-print STDERR "Beginning Full Build\n" if ($print_status == 1);
-Build_All if !$build_core_only;
-
-print "msvc_auto_compile: End\n";
-print STDERR "End\n" if ($print_status == 1);
diff --git a/bin/nightlybuilds/builds.lst b/bin/nightlybuilds/builds.lst
deleted file mode 100644
index e2c8f651bff..00000000000
--- a/bin/nightlybuilds/builds.lst
+++ /dev/null
@@ -1,233 +0,0 @@
-# This is a listing of the web directories and the builds contained in
-# them.
-# The types used are:
-# - WIN32 - This is the naming style used by Darrell's scripts
-# where there are 3 files per build and Build_MMDD_HHMM.txt
-# or Build_MMDD.txt
-# - UNIX - This is the naming style used by Carlos's scripts, where
-# they are named Build_MonDD_YYYY.txt or .log
-# - TIMEONLY - This is new naming scheme which is in the format
-# YYYY_MM_DD_HH_MM.txt
-
-[Win2000_DLL_Core]
-TYPE = TIMEONLY
-LIST = http://tao.doc.wustl.edu/bugzilla/Core/
-WEB = http://tao.doc.wustl.edu/bugzilla/cgi/show_log_dir.pl?core
-
-[Win2000_DLL_Debug]
-TYPE = TIMEONLY
-LIST = http://tao.doc.wustl.edu/bugzilla/DLL_Debug/
-WEB = http://tao.doc.wustl.edu/bugzilla/cgi/show_log_dir.pl?dll_debug
-
-[Win2000_DLL_Release]
-TYPE = TIMEONLY
-LIST = http://tao.doc.wustl.edu/bugzilla/DLL_Release/
-WEB = http://tao.doc.wustl.edu/bugzilla/cgi/show_log_dir.pl?dll_release
-
-[Win2000_Borland]
-TYPE = TIMEONLY
-LIST = http://tao.doc.wustl.edu/bugzilla/Borland/
-WEB = http://tao.doc.wustl.edu/bugzilla/cgi/show_log_dir.pl?borland
-
-[Win2000_Fuzz]
-TYPE = TIMEONLY
-LIST = http://tao.doc.wustl.edu/bugzilla/Fuzz/
-WEB = http://tao.doc.wustl.edu/bugzilla/cgi/show_log_dir.pl?fuzz
-
-[Win2000_WChar_Unicode]
-TYPE = TIMEONLY
-LIST = http://tao.doc.wustl.edu/bugzilla/Unicode/
-WEB = http://tao.doc.wustl.edu/bugzilla/cgi/show_log_dir.pl?unicode
-
-[Win2000_WChar]
-TYPE = TIMEONLY
-LIST = http://tao.doc.wustl.edu/bugzilla/wchar/
-WEB = http://tao.doc.wustl.edu/bugzilla/cgi/show_log_dir.pl?wchar
-
-[Win2000_LIB_Debug]
-TYPE = TIMEONLY
-LIST = http://ringil.ece.uci.edu/bugzilla/lib_debug/
-WEB = http://ringil.ece.uci.edu/scripts/show_log_dir.pl?lib_debug
-
-[Win2000_LIB_Release]
-TYPE = TIMEONLY
-LIST = http://ringil.ece.uci.edu/bugzilla/lib_release/
-WEB = http://ringil.ece.uci.edu/scripts/show_log_dir.pl?lib_release
-
-[Win2000_Legacy]
-TYPE = TIMEONLY
-LIST = http://ringil.ece.uci.edu/bugzilla/legacy/
-WEB = http://ringil.ece.uci.edu/scripts/show_log_dir.pl?legacy
-
-[Win2000_Unicode]
-TYPE = TIMEONLY
-LIST = http://ringil.ece.uci.edu/bugzilla/unicode/
-WEB = http://ringil.ece.uci.edu/scripts/show_log_dir.pl?unicode
-
-[WinCE_All]
-TYPE = TIMEONLY
-LIST = http://ringil.ece.uci.edu/bugzilla/wince/
-WEB = http://ringil.ece.uci.edu/scripts/show_log_dir.pl?wince
-
-[Debian_KCC]
-TYPE = TIMEONLY
-LIST = http://doc.ece.uci.edu/~bugzilla/auto_compile_logs/doc_KCC/
-WEB = http://doc.ece.uci.edu/cgi-bin/show_log_dir.pl?doc_KCC
-
-[Debian_Minimum]
-TYPE = TIMEONLY
-LIST = http://doc.ece.uci.edu/~bugzilla/auto_compile_logs/balar_Minimum/
-WEB = http://doc.ece.uci.edu/cgi-bin/show_log_dir.pl?balar_Minimum
-
-[Debian_Full]
-TYPE = TIMEONLY
-LIST = http://doc.ece.uci.edu/~bugzilla/auto_compile_logs/sirion_Full/
-WEB = http://doc.ece.uci.edu/cgi-bin/show_log_dir.pl?sirion_Full
-
-[Debian_Core]
-TYPE = TIMEONLY
-LIST = http://doc.ece.uci.edu/~bugzilla/auto_compile_logs/balar_Core/
-WEB = http://doc.ece.uci.edu/cgi-bin/show_log_dir.pl?balar_Core
-
-[Debian_WChar]
-TYPE = TIMEONLY
-LIST = http://doc.ece.uci.edu/~bugzilla/auto_compile_logs/rumba_Unicode/
-WEB = http://doc.ece.uci.edu/cgi-bin/show_log_dir.pl?rumba_Unicode
-
-[Debian_NoInline]
-TYPE = TIMEONLY
-LIST = http://doc.ece.uci.edu/~bugzilla/auto_compile_logs/tango_NoInline/
-WEB = http://doc.ece.uci.edu/cgi-bin/show_log_dir.pl?tango_NoInline
-
-[Debian_GCC_3.0.2]
-TYPE = TIMEONLY
-LIST = http://doc.ece.uci.edu/~bugzilla/auto_compile_logs/rumba_GCC_3.0/
-WEB = http://doc.ece.uci.edu/cgi-bin/show_log_dir.pl?rumba_GCC_3.0
-
-[RedHat_Static]
-TYPE = TIMEONLY
-LIST = http://doc.ece.uci.edu/~bugzilla/auto_compile_logs/maglor_Static/
-WEB = http://doc.ece.uci.edu/cgi-bin/show_log_dir.pl?maglor_Static
-
-[RedHat_Single_Threaded]
-TYPE = TIMEONLY
-LIST = http://doc.ece.uci.edu/~bugzilla/auto_compile_logs/curufin_SingleThreaded/
-WEB = http://doc.ece.uci.edu/cgi-bin/show_log_dir.pl?curufin_SingleThreaded
-
-[RedHat_Implicit_Templates]
-TYPE = TIMEONLY
-LIST = http://doc.ece.uci.edu/~bugzilla/auto_compile_logs/amrod_ImplicitTemplates/
-WEB = http://doc.ece.uci.edu/cgi-bin/show_log_dir.pl?amrod_ImplicitTemplates
-
-[SunOS_FORTE_UP_1]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/ace_SUNOS_FORTE_UPDATE_1/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?ace_SUNOS_FORTE_UPDATE_1
-
-# the build changed from CC5 to 51
-[SunOS_SunCC51]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/danzon_SUNOS_SUNCC51/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?danzon_SUNOS_SUNCC51
-
-[SunOS_KCC]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/ace_SUNOS_KCC4.0/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?ace_SUNOS_KCC4.0
-
-[SunOS_SunCC42]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/danzon_SUNOS_SUNCC/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?danzon_SUNOS_SUNCC
-
-[SunOS_GCC_2_95]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/tango_SUNOS_EGCS/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?tango_SUNOS_EGCS
-
-[Tru64_CXX]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/guajira.cs.wustl.edu_TRU64_CXX/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?guajira.cs.wustl.edu_TRU64_CXX
-
-[Tru64_4.0f_CXX_63]
-TYPE = TIMEONLY
-LIST = http://spe121.mro-x.dec.com/~buildlog/auto_compile_logs/spe121.mro-x.dec.com_Tru64_CXX/
-WEB = http://spe121.mro-x.dec.com/cgi-bin/show_log_dir.cgi?spe121_Tru64_CXX
-
-[VxWorks_GCC]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/tango_VXWORKS_GCC/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?tango_VXWORKS_GCC
-
-[VxWorks_5.4_GCC]
-TYPE = TIMEONLY
-LIST = http://prince.ociweb.com/buildlogs/auto_compile_logs/maggie_VXWORKS_GCC/
-WEB = http://prince.ociweb.com/buildlogs/show_log_dir.cgi?maggie_VXWORKS_GCC
-
-[Chorus_4.0.1_GCC]
-TYPE = TIMEONLY
-LIST = http://prince.ociweb.com/buildlogs/auto_compile_logs/lisa_CHORUS_4_0_1_GCC/
-WEB = http://prince.ociweb.com/buildlogs/show_log_dir.cgi?lisa_CHORUS_4_0_1_GCC
-
-[Lynx_I386]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/danzon_LYNX_I386/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?danzon_LYNX_I386
-
-[Lynx_PPC]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/ace_LYNX_PPC/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?ace_LYNX_PPC
-
-# Build not running anymore
-#[SunOS_GCC272]
-#TYPE = TIMEONLY
-#LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/tango_SUNOS_GCC272/
-#WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?tango_SUNOS_GCC272
-
-[RedHat_7.1_Full]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/beguine.doc.wustl.edu_Full/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?beguine.doc.wustl.edu_Full
-
-[RedHat_7.1_Core]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/beguine.doc.wustl.edu_Core/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?beguine.doc.wustl.edu_Core
-
-[RedHat_7.1_No_AMI_Messaging]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/beguine.doc.wustl.edu_NO_AMI_MESSAGING/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?beguine.doc.wustl.edu_NO_AMI_MESSAGING
-
-[RedHat_IA64_Linux]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/toutatis_Full
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?toutatis_Full
-
-[Debian_NoInterceptors]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/charanga_Full/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?charanga_Full
-
-[Debian_Minimum_Static]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/charanga_Minimum/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?charanga_Minimum
-
-[HPUX_ACC]
-TYPE = TIMEONLY
-LIST = http://prince.ociweb.com/buildlogs/auto_compile_logs/herb_HPUX_ACC/
-WEB = http://prince.ociweb.com/buildlogs/show_log_dir.cgi?herb_HPUX_ACC
-
-# Commented out for the timebeing
-#[AIX_VAC]
-#TYPE = TIMEONLY
-#LIST = http://prince.ociweb.com/buildlogs/auto_compile_logs/tripoli_AIX_VAC/
-#WEB = http://prince.ociweb.com/buildlogs/show_log_dir.cgi?tripoli_AIX_VAC
-
-[Solaris8_FORTE_UP_1]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/chipper_SOLARIS8_FORTE_UPDATE1/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?chipper_SOLARIS8_FORTE_UPDATE1
diff --git a/bin/nightlybuilds/clean_logs.pl b/bin/nightlybuilds/clean_logs.pl
deleted file mode 100755
index c31ee0c88f0..00000000000
--- a/bin/nightlybuilds/clean_logs.pl
+++ /dev/null
@@ -1,73 +0,0 @@
-# $Id$
-
-# The purpose of this script is to clean out a log directory that
-# is used usually with the scoreboard and show_log_dir stuff.
-
-use DirHandle;
-
-$keptlogs = 20;
-$debug = 0;
-
-while ($#ARGV >= 0)
-{
- if ($ARGV[0] =~ m/^-debug/i) {
- $debug = 1;
- }
- elsif ($ARGV[0] =~ m/^-keptlogs/i) {
- $keptlogs = $ARGV[1];
- shift;
- }
- elsif ($ARGV[0] =~ m/^-(\?|h)/i) { # Help information
- print "clean_logs.pl [-debug] [-keptlogs <num>] (dirs...)\n";
- print "\n";
- print "Cleans out directories of YYYY_MM_DD_HH_MM logs\n";
- print "\n";
- print "Options\n";
- print "-debug - Do not delete, just print\n";
- print "-keptlogs <num> - Delete all but <num> sets of logs (default:20)\n";
- exit;
- }
- elsif ($ARGV[0] =~ m/^-/) {
- warn "$0: unknown option $ARGV[0]\n";
- exit 1;
- }
- else {
- my $dir = $ARGV[0];
- $dir =~ s/\\/\//g;
- push @dirs, $dir;
- }
- shift;
-}
-
-if (!defined @dirs) {
- push @dirs , ".";
-}
-
-foreach $dir (@dirs) {
- my @existing;
- $d = new DirHandle ($dir);
-
- if (defined $d) {
- while (defined($_ = $d->read)) {
- if ($_ =~ m/^(....)_(..)_(..)_(..)_(..)/) {
- push @existing, $dir . '/' . $_;
- }
- }
- undef $d;
- }
-
- @existing = reverse sort @existing;
-
- for ($i = 0; $i < $keptlogs; ++$i) {
- shift @existing;
- shift @existing;
- shift @existing;
- }
-
- foreach my $file (@existing) {
- print " Removing $file\n";
- if ($debug == 0) {
- unlink $file;
- }
- }
-}
diff --git a/bin/nightlybuilds/pace.lst b/bin/nightlybuilds/pace.lst
deleted file mode 100644
index cbbef091cb2..00000000000
--- a/bin/nightlybuilds/pace.lst
+++ /dev/null
@@ -1,20 +0,0 @@
-# This is a listing of the web directories and the builds contained in
-# them.
-# The types used are:
-# - WIN32 - This is the naming style used by Darrell's scripts
-# where there are 3 files per build and Build_MMDD_HHMM.txt
-# or Build_MMDD.txt
-# - UNIX - This is the naming style used by Carlos's scripts, where
-# they are named Build_MonDD_YYYY.txt or .log
-# - TIMEONLY - This is new naming scheme which is in the format
-# YYYY_MM_DD_HH_MM.txt
-
-[Win32_DLL_Debug]
-TYPE = TIMEONLY
-LIST = http://tao.doc.wustl.edu/bugzilla/DLL_Debug/
-WEB = http://tao.doc.wustl.edu/bugzilla/cgi/show_log_dir.pl?dll_debug
-
-[SunOS_EGCS]
-TYPE = TIMEONLY
-LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/danzon_SUNOS_EGCS/
-WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?danzon_SUNOS_EGCS
diff --git a/bin/nightlybuilds/print_config.pl b/bin/nightlybuilds/print_config.pl
deleted file mode 100644
index 68a685b94b4..00000000000
--- a/bin/nightlybuilds/print_config.pl
+++ /dev/null
@@ -1,76 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-#
-# @file print_config.pl
-#
-# $Id$
-#
-# @author Darrell Brunsch <brunsch@doc.ece.uci.edu>
-#
-# Print out the build configuration, i.e. the contents of the config.h
-# file, the latest ChangeLog entries and (if present) the
-# platform_macros.GNU file.
-#
-
-use strict;
-use FileHandle;
-
-##############################################################################
-
-sub print_file ($$)
-{
- my $filename = shift;
- my $printall = shift;
-
- my $filehandle = new FileHandle ($filename, "r");
-
- while (<$filehandle>) {
- print $_;
-
- last if ($printall == 0);
- }
-}
-
-##############################################################################
-
-if ($#ARGV < 0) {
- print STDERR "Not enough arguments, pass in ACEROOT\n";
- exit 1;
-}
-
-my $root = shift @ARGV;
-
-# convert to forward slash
-$root =~ s/\\/\//g;
-
-# chop off trailing slash
-if ($root =~ m/^(.*)\/$/) {
- $root = $1;
-}
-
-# last ACE Changelog Entry
-
-if (-r "$root/ChangeLog") {
- print "================ ACE ChangeLog ================\n";
- print_file ("$root/ChangeLog", 0);
-}
-
-# last TAO Changelog Entry
-if (-r "$root/TAO/ChangeLog") {
- print "================ TAO ChangeLog ================\n";
- print_file ("$root/TAO/ChangeLog", 0);
-}
-
-# config.h, if it exists
-if (-r "$root/ace/config.h") {
- print "================ config.h ================\n";
- print_file ("$root/ace/config.h", 1);
-}
-
-# platform_macros.GNU, if it exists
-if (-r "$root/include/makeinclude/platform_macros.GNU") {
- print "================ platform_macros.GNU ================\n";
- print_file ("$root/include/makeinclude/platform_macros.GNU", 1);
-}
diff --git a/bin/nightlybuilds/scoreboard_update.pl b/bin/nightlybuilds/scoreboard_update.pl
deleted file mode 100755
index 2476f9d396c..00000000000
--- a/bin/nightlybuilds/scoreboard_update.pl
+++ /dev/null
@@ -1,699 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-
-use Getopt::Std;
-use strict;
-use English;
-use FileHandle;
-use File::Path;
-use LWP::UserAgent;
-use Time::Local;
-
-my @builds = ();
-
-# Hashes based on builds
-my %build_latest_file;
-my %build_latest_time;
-my %build_type;
-my %build_list;
-my %build_web;
-
-###############################################################################
-#
-# load_build_list
-#
-# Reads the list of builds from a file
-#
-# Arguments: $ - file to read
-#
-# Returns: Nothing
-#
-###############################################################################
-sub load_build_list ($)
-{
- my $file = shift;
- my @latest = ();
-
- print "Loading Build List\n";
-
- my $filehandle = new FileHandle;
-
- unless ($filehandle->open ("<$file")) {
- warn 'Cannot open: ', $file, ' ', $_;
- return;
- };
-
- my @data = <$filehandle>;
-
- $filehandle->close ();
-
- my $buildname = undef ;
- my %build;
-
- foreach (@data) {
- chomp;
-
- # Skip blank lines and comments
- if (m/^\s*$/) { next; };
- if (m/^\#/) { next; }
-
- # Remove trailing and leading spaces
- s/^\s*//;
- s/\s*$//;
-
- if (m/\[(.*)\]/) {
- $buildname = $1;
- push (@builds, $buildname);
- next;
- }
-
- if (defined $buildname) {
- if (m/^\s*TYPE\s*=\s*(.*)/) {
- if (defined $build_type{$buildname}) {
- print "Warning: Redefining TYPE for $buildname\n";
- }
- $build_type{$buildname} = $1;
- }
- if (m/^\s*LIST\s*=\s*(.*)/) {
- if (defined $build_list{$buildname}) {
- print "Warning: Redefining LIST for $buildname\n";
- }
- $build_list{$buildname} = $1;
- }
- if (m/^\s*WEB\s*=\s*(.*)/) {
- if (defined $build_web{$buildname}) {
- print "Warning: Redefining WEB for $buildname\n";
- }
- $build_web{$buildname} = $1;
- }
- }
- }
-
- @builds = sort (@builds);
-}
-
-
-###############################################################################
-#
-# query_latest
-#
-# Queries the web servers to figure out the latest build available and saves
-# the list in build_latest_file and
-# build_latest_time.
-#
-# @todo Actually since query_latest doesn't depend on the type anymore, we
-# could feasibly remove it.
-#
-# Arguments: Nothing
-#
-# Returns: Nothing
-#
-###############################################################################
-sub query_latest ()
-{
- print "Getting file lists\n";
-
- foreach my $build (@builds) {
- my @files = load_web_dir ($build_list{$build});
-
- my $latest_time= 0;
- my $latest_file = "";
-
- foreach my $file (@files) {
- if ($file =~ m/(....)_(..)_(..)_(..)_(..)\.txt/) {
- my $time = scalar ($1.$2.$3.$4.$5);
-
- if ($time > $latest_time) {
- $latest_time = $time;
- $latest_file = $file;
- }
- }
- elsif ($file =~ m/\Q$build\E\_(...)(..)_(....)\.txt/) {
- my %mon = ('Jan' => 1, 'Feb' => 2, 'Mar' => 3,
- 'Apr' => 4, 'May' => 5, 'Jun' => 6,
- 'Jul' => 7, 'Aug' => 8, 'Sep' => 9,
- 'Oct' => 10, 'Nov' => 11, 'Dec' => 12);
-
- my $time = scalar (sprintf ('%0.4s%0.2s%0.2s0000', $3, $mon{$1}, $2));
-
- if ($time > $latest_time) {
- $latest_time = $time;
- $latest_file = $file;
- }
- }
- elsif ($file =~ m/\Q$build\E\_(....)_(....)\.txt/) {
-
- my $time = scalar ("2001".$1.$2);
-
- if ($time > $latest_time) {
- $latest_time = $time;
- $latest_file = $file;
- }
- }
- elsif ($file =~ m/\Q$build\E\_(....)\.txt/) {
- my $time = scalar ("2001".$1."0000");
-
- if ($time > $latest_time) {
- $latest_time = $time;
- $latest_file = $file;
- }
- }
- }
-
- # Save the latest
- if ($latest_time > 0) {
- $build_latest_file{$build} = $latest_file;
- $build_latest_time{$build} = $latest_time;
- }
- }
-}
-
-
-###############################################################################
-#
-# load_web_dir
-#
-# Loads the listing from a web resource, works with both Apache and IIS.
-#
-# Arguments: $ - The URI of the directory on the web
-#
-# Returns: @ - Listing of the files in that directory
-#
-###############################################################################
-sub load_web_dir ($)
-{
- my $address = shift;
- my $web_dir = '';
- my @files = ();
-
- print " Loading list from $address\n";
-
- ### Split web_dir up a bit
-
- if ($address =~ m/^http:\/\/[\w.]*(.*)/) {
- $web_dir = $1;
- }
- else {
- warn "load_web_dir (): Badly formed http address";
- return ();
- }
-
- ### Request the web dir page
-
- my $ua = LWP::UserAgent->new;
-
- ### We are impatient, so don't wait more than 20 seconds for a
- ### response (the default was 180 seconds)
- $ua->timeout(20);
-
- my $request = HTTP::Request->new('GET', $address);
- my $response = $ua->request($request);
-
- if (!$response->is_success ()) {
- print " ERROR: Could not load web dir\n";
- return ();
- }
-
- ### Pull out the contents based on the server type
-
- my $content = $response->content ();
- my $server = $response->server ();
-
- if ($server =~ m/Microsoft-IIS/) {
-
- ### split it up based on \n and <BR> and <P>
-
- $content =~ s/<BR>/\n/gi;
- $content =~ s/<P>/\n/gi;
- my @contents = split /\n/, $content;
-
- ### Now look for files
-
- foreach my $line (@contents) {
- if ($line =~ m/\"$web_dir([^\"\/]*)\"/) {
- push (@files, $1);
- }
- }
- }
- elsif ($server =~ m/Apache/ || $server =~ m/Boa/) {
- my @contents = split /\n/, $content;
-
- ### Now look for files
- foreach my $line (@contents) {
- if ($line =~ m/A HREF=\"([^\"\/\?]*)\"/i) {
- push (@files, $1);
- }
- }
- }
- else {
- warn 'load_web_dir (): Unrecognized server: '.$server;
- }
-
- return @files;
-}
-
-
-###############################################################################
-#
-# decode_timestamp
-#
-# Decodes a YYYYMMDDHHMM timestamp
-#
-# Arguments: $ - encoded timestamp
-#
-# Returns: $ - timestamp description
-#
-###############################################################################
-sub decode_timestamp ($)
-{
- my $timestamp = shift;
- my $description = '';
-
- if ($timestamp =~ m/(....)(..)(..)(..)(..)/) {
- my %mon = ( 1 => 'Jan', 2 => 'Feb', 3 => 'Mar',
- 4 => 'Apr', 5 => 'May', 6 => 'Jun',
- 7 => 'Jul', 8 => 'Aug', 9 => 'Sep',
- 10 => 'Oct', 11 => 'Nov', 12 => 'Dec');
- $description =
- sprintf ('%s %s, %s - %s:%s', $mon{int ($2)}, $3, $1, $4, $5);
-
- }
- else {
- warn 'Unable to decode time';
- $description = 'Unknown Time';
- }
-
- return $description;
-}
-
-###############################################################################
-#
-# update_cache
-#
-# Updates the local cache
-#
-# Arguments: $ - directory to place files in
-#
-# Returns: Nothing
-#
-###############################################################################
-sub update_cache ($)
-{
- my $directory = shift;
-
- print "Updating Local Cache\n";
-
- if (!-w $directory) {
- warn "Cannot write to $directory";
- return;
- }
-
- foreach my $build (@builds) {
- ### Check to see if we had problems. If there is no latest time,
- ### we had problems downloading.
- if (!defined $build_latest_time{$build}) {
- next;
- }
-
- my $time = $build_latest_time{$build};
- my $oldtime = '';
- my $address = $build_list{$build} . "/"
- . $build_latest_file{$build};
-
- my $filename = $build.'_'.$time.'.txt';
-
- print " Looking at $build\n";
-
- mkpath "$directory/$build";
-
- if (! -r "$directory/$build/$filename") {
- print " Downloading\n";
- my $ua = LWP::UserAgent->new;
- my $request = HTTP::Request->new('GET', $address);
- my $response = $ua->request($request, "$directory/$build/$filename");
-
- if (!$response->is_success ()) {
- warn 'Unable to download '.$address;
- return;
- }
- }
-
- my @existing = glob ($directory . '/' . $build . '/' . $build . '_*');
-
- @existing = reverse sort @existing;
-
- # shift off the ones we want to keep
- shift @existing; # for now, just the current one
-
- foreach my $file (@existing) {
- print " Removing $file\n";
- unlink $file;
-
- }
- }
-}
-
-
-###############################################################################
-#
-# timestamp_color
-#
-# Decodes a YYYYMMDDHHMM timestamp and figures out the color
-#
-# Arguments: $ - encoded timestamp
-#
-# Returns: $ - color
-#
-###############################################################################
-sub timestamp_color ($)
-{
- my $timestamp = shift;
-
- if ($timestamp =~ m/(....)(..)(..)(..)(..)/) {
- my $buildtime = timelocal (0, $5, $4, $3, $2 - 1, $1);
-
- my $nowtime = timelocal (localtime);
-
- if ($nowtime - $buildtime > (60 * 60 * 24 * 2)) {
- return 'red';
- }
-
- if ($nowtime - $buildtime > (60 * 60 * 24 * 1)) {
- return 'orange';
- }
-
- return 'white'
- }
-
- warn 'Unable to decode time';
-
- return 'gray';
-}
-
-
-###############################################################################
-#
-# determine_type
-#
-# Figures out whether a log is msvc or makefile
-#
-# Arguments: $ - log file
-#
-# Returns: Nothing
-#
-###############################################################################
-sub determine_type ($)
-{
- my $file = shift;
- my $msvc = 0;
-
- my $log = new FileHandle;
-
- unless ($log->open ("<$file")) {
- warn 'Could not open '.$file.' '.$_;
- return 'makefile';
- }
-
- while (<$log>) {
- if (m/^--------------------Configuration/) {
- $msvc = 1;
- last;
- }
- }
- $log->close ();
-
- if ($msvc == 1) {
- return 'msvc';
- }
- else {
- return 'makefile';
- }
-}
-
-
-###############################################################################
-#
-# get_color
-#
-# Returns a color based on errors/warnings
-#
-# Arguments: $ - input file
-# $ - Total type (cvs/compiler/tests)
-#
-# Returns: Nothing
-#
-###############################################################################
-sub get_color ($$)
-{
- my $file = shift;
- my $type = shift;
-
- my $errors = 0;
- my $warnings = 0;
- my $found = 0;
-
- my $results = new FileHandle;
-
- unless ($results->open ("<$file")) {
- warn 'Could not open '.$file.' '.$_;
- return 'gray';
- }
-
- while (<$results>) {
- if ($type eq 'cvs') {
- if (m/^CVS Totals.*Modified:(.*) Conflicts:(.*) Unknown/) {
- $found = 1;
- $errors += $2;
- $warnings += $1;
- }
- }
- elsif ($type eq 'compiler') {
- if (m/Compiler Totals: Errors:(.*) Warnings:(.*)/) {
- $found = 1;
- $errors += $1;
- $warnings += $2;
- }
- }
- elsif ($type eq 'tests') {
- if (m/Test Failures:(.*)/) {
- $found = 1;
- $errors += $1;
- }
- }
- }
- $results->close ();
-
- if ($errors > 0) {
- return 'red';
- }
- elsif ($warnings > 0) {
- return 'orange';
- }
- elsif ($found == 1) {
- return 'lime';
- }
- else {
- return 'gray';
- }
-}
-
-
-###############################################################################
-#
-# update_html
-#
-# Runs make_pretty on a bunch of files and creates an index.html
-#
-# Arguments: $ - directory
-# $ - make_pretty script
-#
-# Returns: Nothing
-#
-###############################################################################
-sub update_html ($$)
-{
- my $dir = shift;
- my $script = shift;
- my $filename = "$dir/index.html";
- my $localshift = '';
-
- my $indexhtml = new FileHandle;
-
- print "Updating HTML\n";
-
- unless ($indexhtml->open (">$filename")) {
- warn 'Could not create file: '.$filename." ".$_;
- return;
- }
-
- ### Print Header
-
- print $indexhtml "<HTML>\n<HEAD>\n<TITLE>Build Scoreboard</TITLE>\n</HEAD>\n";
-
- ### Start body
-
- print $indexhtml "<BODY bgcolor=white>\n<H1>Build Scoreboard</H1>\n<HR>\n";
-
- ### Table
-
- print $indexhtml '<TABLE border=1><TH>Config<TH>Last Run<TH>CVS<TH>Compilation'.
- "<TH>Tests\n";
-
- foreach my $build (@builds) {
- mkpath "$dir/$build/pretty";
-
- print " Looking at $build\n";
-
- if (defined $build_latest_time{$build}) {
- my $time = $build_latest_time{$build};
-
- my $log = $dir . '/' . $build . '/' . $build . '_' . $time . ".txt";
-
- my $webfile = "$build/pretty/$build" . "_$time";
- my $newfile = "$dir/$webfile";
-
- $newfile =~ s/\//\\/g if ($OSNAME eq "MSWin32");
- $log =~ s/\//\\/g if ($OSNAME eq "MSWin32");
-
- if (!-e $newfile.'.html') {
- print " Creating HTML for $time\n";
-
- my $command = 'perl '.$script.' -c makefile < '.$log.' > '.
- $newfile.'.html';
-
- system ($command);
- }
-
- if (!-e $newfile.'_Brief.html') {
- print " Creating HTML Brief for $time\n";
-
- my $command = 'perl '.$script.' -b -c '
- .determine_type ($log).
- ' < '.$log.' > '.
- $newfile.'_Brief.html';
-
- system ($command);
- }
-
- print $indexhtml '<TR><TD>';
-
- print $indexhtml "<A HREF=\"".$build_web{$build} ."\">" if defined $build_web{$build};
- print $indexhtml $build;
- print $indexhtml "</A> " if defined $build_web{$build};
-
- print $indexhtml '<TD bgcolor=';
- print $indexhtml timestamp_color ($time);
- print $indexhtml '>',decode_timestamp ($time);
- print $indexhtml '<TD bgcolor=';
- print $indexhtml get_color ($newfile.'_Brief.html', 'cvs');
- print $indexhtml '>';
- print $indexhtml "[<A HREF=\"".$webfile.".html#cvs\">Full</A>] ";
- print $indexhtml "[<A HREF=\"".$webfile."_Brief.html#cvs\">Brief</A>]";
- print $indexhtml '<TD bgcolor=';
- print $indexhtml get_color ($newfile.'_Brief.html', 'compiler');
- print $indexhtml '>';
- print $indexhtml "[<A HREF=\"".$webfile.".html#compiler\">Full</A>] ";
- print $indexhtml "[<A HREF=\"".$webfile."_Brief.html#compiler\">Brief</A>]";
- print $indexhtml '<TD bgcolor=';
- print $indexhtml get_color ($newfile.'_Brief.html', 'tests');
- print $indexhtml '>';
- print $indexhtml "[<A HREF=\"".$webfile.".html#tests\">Full</A>] ";
- print $indexhtml "[<A HREF=\"".$webfile."_Brief.html#tests\">Brief</A>]";
- print $indexhtml "\n";
-
- }
- else {
- print $indexhtml '<TR><TD>';
- print $indexhtml "<A HREF=\"".$build_web{$build} ."\">$build</A> ";
- print $indexhtml '<TD bgcolor=gray>';
- print $indexhtml '<TD bgcolor=gray>';
- print $indexhtml "[Full] [Brief]";
- print $indexhtml '<TD bgcolor=gray>';
- print $indexhtml "[Full] [Brief]";
- print $indexhtml '<TD bgcolor=gray>';
- print $indexhtml "[Full] [Brief]";
- print $indexhtml "\n";
- }
-
- my @existing = glob ($dir . '/' . $build . '/pretty/' . $build . '_*.html');
-
- @existing = reverse sort @existing;
-
- # shift off the ones we want to keep
- # shift only twice to keep the last *.html and *_Brief.html
- shift @existing;
- shift @existing;
-
- foreach my $file (@existing) {
- print " Removing $file\n";
- unlink $file;
-
- }
- }
-
- print $indexhtml "</TABLE>\n";
-
- ### Print timestamp
-
- print $indexhtml '<BR>Last updated at '.scalar (localtime ())."<BR>\n";
-
- ### Print the Footer
-
- print $indexhtml "</BODY>\n</HTML>\n";
-
- $indexhtml->close ();
-}
-
-###############################################################################
-###############################################################################
-
-# Getopts
-
-use vars qw/$opt_c $opt_h $opt_m $opt_o/;
-
-if (!getopts ('c:hm:o:') || defined $opt_h) {
- print "scoreboard_update.pl [-c file] [-h] [-o dir] [-m script]\n";
- print "\n";
- print " input input directory\n";
- print " output output directory\n";
- print "\n";
- print " -c file use <file> as the configuration file [def: bin/nightlybuilds/builds.lst]\n";
- print " -h display this help\n";
- print " -m script make pretty with this script [def:bin/make_pretty.pl\n";
- print " -o dir directory to place files [def: html]\n";
- print " -r remove files\n";
- exit (1);
-}
-
-my $pretty = "bin/make_pretty.pl";
-my $file = "bin/nightlybuilds/builds.lst";
-my $dir = "html";
-
-if (defined $opt_c) {
- $file = $opt_c;
-}
-
-if (defined $opt_o) {
- $dir = $opt_o;
-}
-
-if (defined $opt_m) {
- $pretty = $opt_m;
-}
-
-# Do the stuff
-
-print 'Running Scoreboard Update at '.scalar (localtime ())."\n";
-
-load_build_list ($file);
-query_latest ();
-update_cache ($dir);
-update_html ($dir, $pretty);
-
-print 'Finished Scoreboard Update at '.scalar (localtime ())."\n";
-
-###############################################################################
-###############################################################################
diff --git a/bin/performance_stats.sh b/bin/performance_stats.sh
deleted file mode 100755
index ed0e39765da..00000000000
--- a/bin/performance_stats.sh
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/bin/sh
-#
-# $Id$
-#
-
-if [ $# -lt 3 ]; then
- echo "Usage: $0 <ACE_ROOT> <DEST> <DATE>"
- exit 0
-fi
-
-ACE_ROOT=$1
-DEST=$2
-DATE=$3
-
-COMMON_TESTS="AMI DII DSI Deferred Single_Threaded Thread_Per_Connection Thread_Pool"
-
-cd $DEST/source
-
-/bin/sync
-sleep 10
-(
- cd $ACE_ROOT/performance-tests/TCP;
- ./run_test.pl
-) >tcp_test.log 2>&1
-
-if grep -q 'Client throughput: ' tcp_test.log; then
- (
- echo -n $DATE " ";
- awk '/^Client throughput:/ {print $3}' tcp_test.log
- ) >> TCP.txt;
-fi
-
-/bin/sync
-sleep 10
-(
- cd $ACE_ROOT/TAO/performance-tests/Single_Threaded_Latency;
- ./default_configuration.pl > $DEST/source/Default.log 2>&1
-)
-if grep -q 'Total throughput: ' Default.log; then
- (
- echo -n $DATE " ";
- awk '/^Total throughput:/ {print $3}' Default.log
- ) >> Default.txt
-fi
-
-for i in $COMMON_TESTS; do
- /bin/sync
- sleep 10
- (
- cd $ACE_ROOT/TAO/performance-tests/${i}_Latency;
- ./run_test.pl > $DEST/source/${i}.log 2>&1
- )
- if grep -q 'Total throughput: ' ${i}.log; then
- (
- echo -n $DATE " ";
- awk '/^Total throughput:/ {print $3}' ${i}.log
- ) >> ${i}.txt
- fi
-done
-
-for i in $COMMON_TESTS TCP Default; do
- $ACE_ROOT/bin/generate_performance_chart.sh ${i}.txt ${i}.png "$i"
- /bin/cp ${i}.png $DEST/images/${i}.png
- /usr/bin/tac ${i}.txt > $DEST/data/${i}.txt
- /usr/bin/tail -5 ${i}.txt > $DEST/data/LAST_${i}.txt
-done
-
-gnuplot <<_EOF_ >/dev/null 2>&1
- set xdata time
- set timefmt '%Y/%m/%d-%H:%M'
- set xlabel 'Date (YYYYMMDD)'
- set ylabel 'Throughput (Requests/Second)'
- set yrange [0:]
- set terminal png small color
- set output "/dev/null"
- plot 'DII.txt' using 1:2 title 'DII' w l
- replot 'DSI.txt' using 1:2 title 'DSI' w l
- replot 'Deferred.txt' using 1:2 title 'Deferred' w l
- replot 'Single_Threaded.txt' using 1:2 title 'Single_Threaded' w l
- replot 'Default.txt' using 1:2 title 'Single_Threaded (Defaults)' w l
- replot 'Thread_Per_Connection.txt' using 1:2 title 'Thread_Per_Connection' w l
- replot 'Thread_Pool.txt' using 1:2 title 'Thread_Pool' w l
- replot 'TCP.txt' using 1:2 title 'TCP/IP' w l
- set output "All.png"
- replot
- exit
-_EOF_
-
-gnuplot <<_EOF_ >/dev/null 2>&1
- set xdata time
- set timefmt '%Y/%m/%d-%H:%M'
- set xlabel 'Date (YYYYMMDD)'
- set ylabel 'Throughput (Requests/Second)'
- set yrange [0:10000]
- set terminal png small color
- set output "/dev/null"
- plot 'DII.txt' using 1:2 title 'DII' w l
- replot 'DSI.txt' using 1:2 title 'DSI' w l
- replot 'Deferred.txt' using 1:2 title 'Deferred' w l
- replot 'Single_Threaded.txt' using 1:2 title 'Single_Threaded' w l
- replot 'Default.txt' using 1:2 title 'Single_Threaded (Defaults)' w l
- replot 'Thread_Per_Connection.txt' using 1:2 title 'Thread_Per_Connection' w l
- replot 'Thread_Pool.txt' using 1:2 title 'Thread_Pool' w l
- set output "CORBA.png"
- replot
- exit
-_EOF_
-
-/bin/cp CORBA.png All.png $DEST/images/
-
-(
- cd $DEST/images
- /bin/cp *.png thumbnails
- for i in *.png; do
- /usr/bin/X11/mogrify -geometry '25%' thumbnails/$i
- done
-)
-
-cd $DEST/data
-/bin/uname -a > uname.txt
-/usr/bin/gcc -v > gcc.txt 2>&1
-/lib/libc.so.6 | sed -e 's/</\&lt;/g' -e 's/>/\&gt;/g' > libc.txt
-cat /proc/cpuinfo > cpuinfo.txt
-cat /proc/meminfo > meminfo.txt
-
-cat $ACE_ROOT/ace/config.h > config.h.txt
-cat $ACE_ROOT/include/makeinclude/platform_macros.GNU > platform_macros.GNU.txt
diff --git a/bin/perltest2cpp.pl b/bin/perltest2cpp.pl
deleted file mode 100755
index 932303b487e..00000000000
--- a/bin/perltest2cpp.pl
+++ /dev/null
@@ -1,2250 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# ******************************************************************
-# Author: Chad Elliott (elliott_c@ociweb.com)
-# Date: 4/4/2001
-# $Id$
-# Description: Generate run_test.cpp from run_test.pl for VxWorks
-# ******************************************************************
-
-# ******************************************************************
-# Pragma Section
-# ******************************************************************
-
-use strict;
-use FileHandle;
-use File::Basename;
-
-# ******************************************************************
-# Data Section
-# ******************************************************************
-
-my($firstExecutable) = 1;
-my($needMain) = 0;
-my($indent) = 0;
-my($pindent) = 0;
-my($taodebug) = undef;
-my(@cppheader) = ();
-my(@cppsubs) = ();
-my(@cppbody) = ();
-my(@subs) = ();
-my($timefactor) = 2;
-my($insub) = 0;
-my($indsc) = 0;
-my(%argsList) = ();
-my($shortString) = 256;
-my($unknownArgCount) = 20;
-my($defaultTimeout) = 60;
-my($status) = 0;
-my($lineCount) = 0;
-my($needReadLine) = 1;
-my($needReadFile) = 1;
-my(%timeoutVars) = ();
-
-my($UNDEFINED_VARIABLE) = 1;
-my($UNKNOWN_VARIABLE_TYPE) = 2;
-my($UNSUPPORTED_CONSTRUCT) = 3;
-
-# ******************************************************************
-# Subroutine Section
-# ******************************************************************
-
-sub generateError {
- my($error) = shift;
- my($extra) = shift;
- if ($error == $UNDEFINED_VARIABLE) {
- print STDERR "Error: Undefined variable ($extra) at line $lineCount\n";
- $status++;
- }
- elsif ($error == $UNKNOWN_VARIABLE_TYPE) {
- print STDERR "Error: Unknown variable type " .
- "for ($extra) at line $lineCount\n";
- $status++;
- }
- elsif ($error == $UNSUPPORTED_CONSTRUCT) {
- print STDERR "Error: Unsupported construct ($extra) at line $lineCount\n";
- $status++;
- }
-}
-
-
-sub getIndent {
- if ($pindent != $indent) {
- my($str) = " " x ($pindent * 2);
- $pindent = $indent;
- return $str;
- }
- return " " x ($indent * 2);
-}
-
-
-sub concatenate {
- my($value) = shift;
- my($length) = length($value);
- my($indouble) = 0;
- my($insingle) = 0;
-
- for(my $i = 0; $i < $length; $i++) {
- my($ch) = substr($value, $i, 1);
- if (!$insingle && $ch eq '"') {
- $indouble ^= 1;
- }
- elsif (!$indouble && $ch eq '\'') {
- $insingle ^= 1;
- }
- elsif ($ch eq '.' && !$indouble && !$insingle) {
- my($rc) = undef;
- my($lc) = $i;
- for($i++; $i < $length; $i++) {
- my($a) = substr($value, $i, 1);
- if ($a !~ /\s/) {
- if ($a eq '\'' || $a eq '"') {
- $rc = $i + 1;
- }
- elsif ($a eq '$') {
- $rc = $i;
- }
- last;
- }
- }
- for($lc--; $lc >= 0; $lc--) {
- my($a) = substr($value, $lc, 1);
- if ($a !~ /\s/) {
- if ($a ne '\'' && $a ne '"') {
- $lc++;
- }
- last;
- }
- }
- if (defined $rc) {
- my($rold) = substr($value, $rc - 1, 1);
- my($lold) = substr($value, $lc, 1);
-
- substr($value, $lc, $rc - $lc) = "";
- $length = length($value);
- my($front) = substr($value, 0, $lc);
- my($back) = substr($value, $lc);
- if ($lold eq '"') {
- if ($rold eq '"') {
- $indouble ^= 1;
- }
- else {
- if ($back !~ /\"/) {
- $indouble = 1;
- }
- }
- }
- elsif ($lold =~ /\s/ && $rold eq '"' && $front =~ /\"/) {
- $indouble ^= 1;
- }
- elsif ($lold eq '\'') {
- if ($rold eq '\'') {
- $insingle ^= 1;
- }
- else {
- if ($back !~ /\'/) {
- $insingle = 1;
- }
- }
- }
- elsif ($lold =~ /\s/ && $rold eq '\'' && $front =~ /\'/) {
- $insingle ^= 1;
- }
-
- if ($back =~ /^([\$\@][^\s;]+)/) {
- my($target) = $1;
- if ($indouble) {
- $back =~ s/[\$\@][^\s;]+/$target\"/;
- }
- elsif ($insingle) {
- $back =~ s/[\$\@][^\s;]+/$target\'/;
- }
- $value = $front . $back;
- $length++;
- }
-
- $i = $lc - 1;
-#########################################################
-# Fix for $debug = $debug . " -d";
-#########################################################
- if (!$indouble && !$insingle &&
- substr($value, 0, $i) !~ /$rold/) {
- for(my $j = $i; $j >= 0; $j--) {
- my($ich) = substr($value, $j, 1);
- if ($ich eq '$') {
- substr($value, $j, 1) = "$rold\$";
- $i++;
- if ($rold eq '"') {
- $indouble ^= 1;
- }
- else {
- $insingle ^= 1;
- }
- last;
- }
- }
- }
-#########################################################
- }
- }
- }
-
- if ($indouble || $insingle) {
- print "DEBUG1: $value\n" .
- " indouble = $indouble insingle = $insingle\n\n";
- }
-
- return $value;
-}
-
-
-sub typeToCPPType {
- my($str) = shift;
- if ($str eq "%d") {
- return "int";
- }
- if ($str eq "%f") {
- return "float";
- }
- if ($str eq "%s") {
- return "char";
- }
- return "void";
-}
-
-my(@mainList) = ();
-sub getMainList {
- if (!defined $mainList[0]) {
- my($fh) = new FileHandle();
- if (open($fh, "Makefile")) {
- my($line) = "";
- while(<$fh>) {
- $line .= $_;
- if ($line =~ /\\\s*$/) {
- $line =~ s/\\\s*$//;
- }
- else {
- if ($line =~ /BIN(_UNCHECKED|2)?\s*[\+]?=/ &&
- $line !~ /\$\(/ && $line !~ /run_test/) {
- if ($line =~ /\s*=\s*(.*)/) {
- my($bins) = $1;
- if ($bins =~ /patsubst/) {
- ## TBD: Fix for pattern substitution
- }
- else {
- foreach my $main (split(/\s+/, $bins)) {
- $main =~ s/\-/_/g;
- push(@mainList, $main . "_main");
- }
- }
- }
- }
- $line = "";
- }
- }
- close($fh);
- }
- }
- return @mainList;
-}
-
-
-my(%declared) = ("!" => "%s");
-my(%decscope) = ("!" => -1);
-sub addParameterToCurrentSub {
- my($var) = shift;
- my($type) = shift;
- if (!defined $type) {
- $type = "char*";
- }
-
- for(my $i = $#cppsubs; $i >= 0; $i--) {
- if ($cppsubs[$i] =~ /\/\*params\*\//) {
- if ($cppsubs[$i] =~ /\(\/\*params/) {
- $cppsubs[$i] =~ s/\/\*params/$type $var \/\*params/;
- }
- else {
- $cppsubs[$i] =~ s/\/\*params/, $type $var \/\*params/;
- }
- $declared{$var} = "%s";
- $decscope{$var} = $indent;
- last;
- }
- }
-}
-
-
-sub getTop {
- my($os) = "OSNAME";
- my($top) = "// \$Id\$\n\n" .
- "#include <ace/OS.h>\n" .
- "#include <ace/Get_Opt.h>\n" .
- "#include <tao/debug.h>\n" .
- "#include <tests/TestUtils/TestCombinedThreads.h>\n\n" .
- "static const char* $os = \"VxWorks\";\n\n";
-
- $declared{$os} = "%s";
- $decscope{$os} = -1;
-
- foreach my $main (getMainList()) {
- $top .= "TEST_MAIN_FUNC_DECLARE($main);\n";
- }
- $top .= "\n" .
- "static int\nunlocated_main(int, char**)\n" .
- "{\n" .
- " ACE_OS::printf(\"Translation of this module did \"\n" .
- " \"not work. Please check the code.\\n\");\n" .
- " return 0;\n" .
- "}\n\n\n" .
-
- "TEST_MAIN_TYPE_FUNC\n" .
- "translateStringToMainFunction(const char* string)\n" .
- "{\n" .
- " ACE_UNUSED_ARG(string);\n";
- foreach my $main (getMainList()) {
- my($stripped) = $main;
- $stripped =~ s/_main//;
- $top .= " if (ACE_OS_String::strcmp(string, \"$stripped\") == 0) {\n" .
- " return $main;\n" .
- " }\n";
- }
- $top .= " return unlocated_main;\n" .
- "}\n\n";
-
- return $top;
-}
-
-
-sub incrementIndent {
- $pindent = $indent;
- $indent++;
-}
-
-
-sub decrementIndent {
- $indent--;
- foreach my $key (keys %decscope) {
- if ($decscope{$key} > $indent) {
- delete $declared{$key};
- delete $decscope{$key};
- }
- }
- $pindent = $indent;
-}
-
-sub getMainBeginning {
- return "\n\nint main(int argc, char* argv[])\n" .
- "{\n" .
- " // Silence the compiler\n" .
- " ACE_UNUSED_ARG(argc);\n" .
- " ACE_UNUSED_ARG(argv);\n" .
- " ACE_UNUSED_ARG(OSNAME);\n" .
- " translateStringToMainFunction(\"\");\n\n";
-}
-
-
-sub getMainEnding {
- my($ending) = " return 0;\n}\n\n";
- decrementIndent();
- return $ending;
-}
-
-
-my($currentBuild) = "";
-sub buildLine {
- my($line) = shift;
- my($length) = length($line);
- my($previous) = "";
- my($insideDouble) = 0;
- my($insideSingle) = 0;
- my($copy) = "";
-
- $currentBuild .= $line;
- for(my $i = 0; $i < $length; $i++) {
- my($ch) = substr($line, $i, 1);
- if ($previous ne '\\') {
- if (!$insideSingle && $ch eq '"') {
- $insideDouble ^= 1;
- }
- elsif (!$insideDouble && $ch eq '\'') {
- $insideSingle ^= 1;
- }
- }
-
- if (($ch eq ';' || $ch eq '{' || $ch eq '}') &&
- (!$insideDouble && !$insideSingle)) {
- $copy = $currentBuild;
- $currentBuild = "";
- last;
- }
- $previous = $ch;
- }
-
- return $copy;
-}
-
-
-sub stringToArray {
- my($str) = shift;
- my(@array) = ();
- my($length) = length($str);
- my($previous) = 0;
- for(my $i = 0; $i < $length; $i++) {
- my($ch) = substr($str, $i, 1);
- if ($ch =~ /\s/) {
- push(@array, substr($str, $previous, $i - $previous));
- $previous = $i;
- while(substr($str, $i, 1) =~ /\s/) {
- $i++;
- }
- push(@array, substr($str, $previous, $i - $previous));
- $previous = $i;
- }
- }
- push(@array, substr($str, $previous));
- return @array;
-}
-
-
-sub lineNeedsToSplit {
- my($line) = shift;
- if ($line =~ /ACE_OS/) {
- if ($line =~ /(ACE_OS.*\((\w+),\s*)(.*)(\);)/ &&
- $line !~ /argv\[[^\]]+\]/) {
- return $1, $2, $3, $4;
- }
- }
- elsif ($line =~ /(.*\s+(\w+)\[.*\]\s+=\s+)(.*)(;)$/) {
- return $1, $2, $3, $4;
- }
- return undef;
-}
-
-
-my($genstr) = 0;
-sub splitProcessArguments {
- my($av) = shift;
- my($line) = shift;
- my($assign) = shift;
- my($argcount) = 0;
- my(@array) = stringToArray($av);
- my($stillString) = 0;
- my($needACE) = 1;
- my($needClosing) = 0;
- my($stored) = "";
-
- for(my $a = 0; $a <= $#array; $a++) {
- $array[$a] =~ s/^[\"\']//;
- $array[$a] =~ s/[\"\']$//;
- if ($array[$a] =~ /\"\s*$/ || $array[$a] eq "") {
- }
- else {
- my($needQuotes) = 1;
- $argcount++;
- if ($array[$a] =~ /\$/) {
- $needQuotes = 0;
- if ($array[$a] !~ /^\$/) {
- ## Part string, part variable
- my($foo) = $array[$a];
- $foo =~ /([^\$]+)(\$\w+)/;
- my($p1) = $1;
- my($source) = $2;
- $p1 =~ s/^\"//;
- $stillString = 1;
- splice(@array, $a + 1, 1, $source);
- $array[$a] = $p1;
- }
- else {
- $stillString = 0;
- $needACE = 1;
- }
- }
- else {
- $stillString = 1;
- }
- $array[$a] =~ s/[\$\"\']//g;
- if ($needACE) {
- if ($needClosing) {
- if ($stored ne "") {
- $$line .= $stored;
- $stored = "";
- }
- $$line .= "\");\n" . (" " x (2 * $indent));
- }
- setNeedMain();
- $stored = "ACE_OS_String::strcat($assign, ";
- if ($needQuotes) {
- $stored .= "\"";
- }
- $needACE = 0;
- $needClosing = 0;
- }
- if ($stored ne "") {
- if (defined $declared{$array[$a]} &&
- $declared{$array[$a]} ne "%s") {
- my($newstr) = "char genstr$genstr" . "[64] = \"\";\n" .
- getIndent() .
- "ACE_OS::sprintf(genstr$genstr, \"%d\", " .
- "$array[$a]);\n";
- $stored = "$newstr$stored";
- $array[$a] = "genstr$genstr";
- $genstr++;
- }
- $$line .= $stored;
- $stored = "";
- }
- if ($stillString) {
- $$line .= "$array[$a]";
- $needClosing = 1;
- }
- else {
- $$line .= "$array[$a]);\n" . (" " x (2 * $indent));
- if ($a != $#array) {
- setNeedMain();
- $stored = "ACE_OS_String::strcat($assign, \"";
- $stillString = 1;
- $needACE = 0;
- $needClosing = 1;
- }
- else {
- $needClosing = 0;
- }
- }
- }
- }
- if ($needClosing) {
- if ($stored ne "") {
- $$line .= $stored;
- $stored = "";
- }
- $$line .= "\");\n";
- }
- return $argcount;
-}
-
-
-my($gencount) = 0;
-sub splitArguments {
- my($av) = shift;
- my($line) = shift;
- my($sep) = shift;
- my($argcount) = 0;
- my(@array) = ();
- if (defined $sep) {
- @array = split($sep, $av);
- for(my $i = 0; $i <= $#array; $i++) {
- $array[$i] =~ s/^\s+//;
- $array[$i] =~ s/\s+$//;
- if ($array[$i] eq "") {
- splice(@array, $i, 1);
- }
- }
- }
- else {
- @array = split(/\s+/, $av);
- }
- for(my $a = 0; $a <= $#array; $a++) {
- if ($array[$a] =~ /-ORBDebugLevel/i) {
- $a++;
- $array[$a] =~ s/[\$\"\']//g;
- if (defined $declared{$array[$a]} &&
- $declared{$array[$a]} eq "%d") {
- $taodebug = $array[$a];
- }
- elsif ($array[$a] =~ /^[-+]?\d+$/) {
- $taodebug = $array[$a];
- }
- else {
- $taodebug = "ACE_OS::atoi(\"$array[$a]\")";
- }
- }
- elsif ($array[$a] eq '"') {
- }
- else {
- my($needQuotes) = 1;
- $argcount++;
- if ($array[$a] =~ /\$/) {
- $needQuotes = 0;
- if ($array[$a] !~ /^\$/) {
- ## Part string, part variable
- my($foo) = $array[$a];
- $foo =~ /([^\$]+)\$(\w+)/;
- my($p1) = $1;
- my($source) = $2;
- $p1 =~ s/^\"//;
- my($old) = $$line;
- my($str) = "gen_partial$gencount";
- $$line = "char $str" . "[BUFSIZ] = \"$p1\";\n" .
- (" " x (2 * $indent));
- if (defined $declared{$source} && $declared{$source} eq "%s") {
- setNeedMain();
- $$line .= "ACE_OS_String::strcat($str";
- }
- elsif (defined $declared{$source} && $declared{$source} eq "%d") {
- setNeedMain();
- $$line .= "char gen_partial" . ($gencount + 1) .
- "[$shortString] = \"\";\n" .
- (" " x (2 * $indent)) .
- "ACE_OS::sprintf(gen_partial" . ($gencount + 1) .
- ", \"%d\", $source);\n" . (" " x (2 * $indent)) .
- "ACE_OS_String::strcat($str";
- $gencount++;
- $source = "gen_partial$gencount";
- }
- else {
- $$line .= "// *** Unknown source type for: ";
- generateError($UNKNOWN_VARIABLE_TYPE, $source);
- }
- $$line .= ", $source);\n" . (" " x (2 * $indent)) . $old;
- $array[$a] = $str;
- $gencount++;
- }
- }
- $array[$a] =~ s/[\$\"\']//g;
- if ($needQuotes) {
- $array[$a] = "\"$array[$a]\"";
- }
- $$line .= "$array[$a], ";
- }
- }
- return $argcount;
-}
-
-sub handleAssignment {
- my($line) = shift;
- my($concat) = (/\$(\w+)\s*\.=\s*(.*);/);
-
- if ($line =~ /\$(\w+)\s*[\.]?=\s*(.*);/) {
- ## Regular assignment
- my($var) = $1;
- my($val) = $2;
-
- if ($val =~ /time/) {
- if (!defined $declared{$var}) {
- $declared{$var} = "%d";
- $decscope{$var} = $indent;
- $line = "time_t ";
- }
- else {
- $line = "";
- }
- $line .= "$var = time(NULL);";
- }
- elsif ($val =~ /^new\s+([\w:]+)\s*\((.*)\)/) {
- my($params) = $2;
- if ($1 eq "PerlACE::Process") {
- if (!defined $declared{$var}) {
- $declared{$var} = 0;
- }
- else {
- $declared{$var}++;
- }
- if ($params =~ /.*\s*(,\s*.*)?/) {
- my($mv) = undef;
- my($av) = "";
- if ($params =~ /(.*)\s*,\s*([\"\$].*)/) {
- $mv = $1;
- $av = $2;
- }
- elsif ($params =~ /(.*)/) {
- $mv = $1;
- }
-#if ($av eq "") {
-# print "DEBUG4: '$mv' '$av'\n";
-#}
- my($argcount) = 1;
- my($argvar) = $var;
- if ($declared{$argvar} != 0) {
- $argvar .= $declared{$argvar};
- }
- $line = "char* $argvar" . "Args[] = { ";
- if ($mv =~ /\$(\w+)/) {
- $mv = $1;
- }
- $line .= "$mv, ";
- my($arguments) = "";
- splitArguments($av, \$arguments);
- ## Determine if the result of splitArguments
- ## should be added to $argcount
- $argsList{$var} = $argcount;
-
- ## Is there a splitable variable in the argument list?
- my($resplit) = 1;
- if ($arguments =~ /^\w+,\s*$/ || $arguments =~ /,\s*\w+\s*,/) {
- my(@arr) = split(/\n/, $arguments);
- foreach my $test (split(",", $arr[$#arr])) {
- $test =~ s/^\s+//;
- $test =~ s/\s+$//;
- if (defined $declared{$test} && $declared{$test} eq "%s" &&
- $test !~ /ior/ && $test !~ /conf/ && $test !~ /gen_/) {
- $resplit = 0;
- last;
- }
- }
- if (!$resplit) {
- $line =~ s/\[\]/\[$unknownArgCount\]/;
- $line .= "0 };\n";
- for(my $l = 0; $l < $#arr; $l++) {
- if ($l == 0) {
- $line .= (" " x (2 * $indent));
- }
- $line .= "$arr[$l]\n";
- }
- $arguments = $arr[$#arr];
- $arguments =~ s/^(\w)/\$$1/;
- $arguments =~ s/,\s*(\w)/, \$$1/g;
- $line .= (" " x (2 * $indent)) .
- handleArguments($line, $var, $arguments, ",");
- }
- }
- if ($resplit) {
- splitArguments($av, \$line);
- $line .= "0 };\n";
- }
-
- $line .= (" " x (2 * $indent)) .
- ($declared{$var} > 0 ? "$var = TAO_TestCombinedThreads" :
- "TAO_TestCombinedThreads $var") .
- "(" .
- ($mv =~ /\"(.*)\"/ ? $mv = "$1" ."_main" :
- "translateStringToMainFunction($mv)") .
- ", $argvar" . "Args);";
- }
- if (!$insub && $line =~ /ACE_OS/) {
- setNeedMain();
- }
- }
- }
- elsif ($val =~ /->/) {
- if (!defined $declared{$var}) {
- $declared{$var} = "%d";
- $decscope{$var} = ($firstExecutable ? -1 : $indent);
- $line = ($firstExecutable && !$insub ? "static " : "") .
- typeToCPPType($declared{$var}) . " ";
- }
- else {
- $line = "";
- }
- $line .= "$var = ";
- if ($val =~ /Spawn/) {
- my($wait) = "";
- if ($val =~ /\((.*)\)/) {
- my($tout) = $1;
- if ($tout =~ /^\d+$/ && $tout > $defaultTimeout) {
- $defaultTimeout = $tout;
- }
- $wait = "($tout * $timefactor)";
- }
- my($spvar, $spval) = handleSpawn($val);
- $line = "$spvar$spval\n" . (" " x (2 * $indent)) .
- $line . "$spvar.wait($wait);";
- }
- elsif ($val =~ /[\$]?([\w\[\]\$]+)->WaitKill/) {
- my($var) = $1;
- my($ovar) = $var;
- my($op) = ".";
- my($tfix) = $var;
- $var =~ s/\$//g;
- $tfix =~ s/\[.*//;
- if ($var =~ /\[/) {
- $ovar =~ s/[\[\]\$]//g;
- $op = "->";
- }
-# elsif ($declared{$tfix} != 0) {
-# $var .= $declared{$tfix};
-# }
- handleWaitKill($val, $ovar);
- $line .= "$var$op" . "wait($ovar" . "Timeout);";
- }
- elsif ($val =~ /WaitKill/) {
- handleWaitKill($val);
- $line .= "0;";
- }
- }
- elsif ($val =~ /[\"\']([^\"\']+)?[\"\']/ || $val =~ /(\w+)\[([^\]]+)\]/) {
- my($value) = "";
- my($needQuotes) = 1;
- if ($val =~ /[\"\'](.*)[\"\']/) {
-# Quoted double quotes don't work with this regexp 8/21/2001
-# $val =~ /[\"\']([^\"\']+)[\"\']/) {
- $value = $1;
- }
- elsif ($val =~ /(\w+)\[([^\]]+)\]/) {
- $value = $1 . "[$2]";
- $needQuotes = 0;
- }
-
- my($pre) = "";
- my($post) = "";
- my($edit) = $val;
- $edit =~ s/\\\"//g;
- $edit =~ s/\\\'//g;
- my($fch) = substr($edit, 0, 1);
-
- if (($fch eq '"' || $fch eq '\'') && $edit =~ /$fch$/) {
- }
- elsif ($edit =~ /(\w+)\s+[\"\'][^\"\']+[\"\']/) {
- $pre = "$1 ";
- }
- if (!defined $declared{$var}) {
- $declared{$var} = "%s";
- $decscope{$var} = ($firstExecutable ? -1 : $indent);
- $line = ($firstExecutable && !$insub ? "static " : "") .
- typeToCPPType($declared{$var}) . " ";
- if ($pre ne "") {
- $post = "[BUFSIZ]";
- }
- else {
- $post = "[$shortString]";
- }
- $line .= "$var$post = ";
- if ($needQuotes) {
- $line .= "$pre\"$value\";";
- }
- else {
- if (defined $declared{$value} && $declared{$value} ne "%s") {
- $line .= "\"\"; ACE_OS::sprintf($var, \"$declared{$value}\", $value);";
- }
- else {
- $line .= "\"\"; ACE_OS_String::strcpy($var, $value);";
- }
- }
- }
- else {
- if (defined $declared{$var} && $declared{$var} eq "%d") {
- $line = "$var = ACE_OS::atoi($pre";
- }
- elsif (defined $declared{$var} && $declared{$var} eq "%f") {
- $line = "$var = ACE_OS::atof($pre";
- }
- else {
- setNeedMain();
- $line = "ACE_OS_String::str" . ($concat ? "cat" : "cpy") .
- "($var, $pre";
- }
- if ($needQuotes) {
- $line .= "\"$value\");";
- }
- else {
- $line .= "$value);";
- }
- }
-
- if ($line =~ /[^\\]\$/) {
- my($left, $var, $right, $end) = lineNeedsToSplit($line);
- if (defined $left) {
- my($newStr) = "";
-
- setNeedMain();
- splitProcessArguments($right, \$newStr, $var);
- $line = ($left =~ /strcat/ ? "" :
- $left . "\"\"$end\n" . (" " x (2 * $indent))) .
- $newStr;
- }
- else {
- $line =~ s/\$//g;
- }
- }
- }
- elsif ($val =~ /^[+\-\d]+$/) {
- if (!defined $declared{$var}) {
- $declared{$var} = "%d";
- $decscope{$var} = ($firstExecutable ? -1 : $indent);
- $line = ($firstExecutable && !$insub ? "static " : "") .
- typeToCPPType($declared{$var}) . " ";
- }
- else {
- $line = "";
- }
- $line .= "$var = $val;";
- }
- elsif ($val =~ /^[+\-\d\.]+$/) {
- if (!defined $declared{$var}) {
- $declared{$var} = "%f";
- $decscope{$var} = ($firstExecutable ? -1 : $indent);
- $line = ($firstExecutable && !$insub ? "static " : "") .
- typeToCPPType($declared{$var}) . " ";
- }
- else {
- $line = "";
- }
- $line .= "$var = $val;";
- }
- elsif ($val =~ /TAO_TestCombinedThreads.*[+\-\d]+/) {
- if (!defined $declared{$var}) {
- $declared{$var} = "%d";
- $decscope{$var} = ($firstExecutable ? -1 : $indent);
- $line = ($firstExecutable && !$insub ? "static " : "") .
- typeToCPPType($declared{$var}) . " ";
- }
- else {
- $line = "";
- }
- $line .= "$var = $val;";
- }
- elsif ($val =~ /shift/) {
- $line = "// Parameters converted from: $var = $val;";
- if ($insub) {
- addParameterToCurrentSub($var);
- }
- }
- elsif ($val =~ /[+\-\d\s\w]+/) { ## Come up with a better regexp
- ## for var to var assignment
- ## Strip of \* from FILE handles
- $val =~ s/\\\*//g;
-
- $val =~ s/\$//g;
- my($type) = "%d";
- my($vtype) = $declared{$val};
-
- if (!defined $vtype) {
- $vtype = $type;
- }
-
- if (!defined $declared{$var}) {
- $declared{$var} = $vtype;
- $decscope{$var} = ($firstExecutable ? -1 : $indent);
- $line = ($firstExecutable && !$insub ? "static " : "") .
- typeToCPPType($declared{$var}) . " ";
- }
- else {
- $line = "";
- }
-
- if (defined $vtype && $type ne $vtype) {
- if ($type eq "%d") {
- $line .= "$var = ";
- if ($vtype eq "%s") {
- $line .= "ACE_OS::atoi(";
- }
- elsif ($vtype eq "%f") {
- $line .= "int(";
- }
- else {
- $line .= "(";
- }
- }
- elsif ($type eq "%s") {
- $line .= "ACE_OS::sprintf($var, \"$vtype\", ";
- }
- elsif ($type eq "%f") {
- $line .= "$var = ";
- if ($vtype eq "%s") {
- $line .= "ACE_OS::atof(";
- }
- elsif ($vtype eq "%d") {
- $line .= "float(";
- }
- else {
- $line .= "(";
- }
- }
- else {
- $line .= "$var = (";
- }
- }
- else {
- $line .= "$var = ";
- }
- $line .= $val;
- if (defined $vtype && $type ne $vtype) {
- $line .= ")";
- }
- $line .= ";";
- }
- else {
- if (!$declared{$var}) {
- $declared{$var} = "%x";
- $decscope{$var} = $indent;
- $line = "// Assignment: ";
- }
- else {
- $line = "";
- }
- $line .= "$var = $val;";
- }
- }
- elsif ($line =~ /\@(\w+)\s*=\s*(.*);/) {
- my($var) = $1;
- my($val) = $2;
- my($arrtype) = "char*";
- my($count) = 0;
-
- $val =~ s/^\(//;
- $val =~ s/\)$//;
-
- ## This is horrible code - CAE
- ## By convention only, the processes are called SV and CL.
- if ($var =~ /^[A-Z]+$/) {
- $arrtype = "TAO_TestCombinedThreads*";
- }
-
- if (!$declared{$var}) {
- $declared{$var} = "%s";
- $decscope{$var} = $indent;
-
- $line = "$arrtype $var\[\] = { ";
- foreach my $v (split(/,/, $val)) {
- $v =~ s/^\s+//;
- $v =~ s/\s+$//;
- my($embedded) = handleEmbeddedVar($v);
- if ($v ne $embedded) {
- $v = "gen_partial$gencount";
- $line = ($count != 0 ? getIndent() : "") .
- "static char $v" . "[BUFSIZ] = \"\";\n" .
- (" " x (2 * $indent)) .
- "ACE_OS::sprintf($v, $embedded);\n" . $line;
- if ($count != 0) {
- $v = ", $v";
- }
- $gencount++;
- }
- else {
- if ($count != 0) {
- $line .= getIndent();
- }
- }
- ##
- $line .= $v;
- $count++;
- }
- if ($count == 0) {
- $line = "$arrtype $var" . "[256] = { 0 };";
- $declared{$var} = "%x";
- }
- else {
- $line .= " };\n" .
- (" " x (2 * $indent)) .
- "int $var" . "_length = $count;\n" .
- (" " x (2 * $indent)) .
- "ACE_UNUSED_ARG($var" . "_length);";
- $declared{$var . "_length"} = "%d";
- $decscope{$var . "_length"} = $indent;
- }
- }
- else {
- $line = "";
- foreach my $v (split(/,/, $val)) {
- $v =~ s/^\s+//;
- $v =~ s/\s+$//;
- my($embedded) = handleEmbeddedVar($v);
- if ($v ne $embedded) {
- $v = "gen_partial$gencount";
- $line = ($count != 0 ? getIndent() : "") .
- "static char $v" . "[BUFSIZ] = \"\";\n" .
- (" " x (2 * $indent)) .
- "ACE_OS::sprintf($v, $embedded);\n" . $line;
- $gencount++;
- }
- if ($count != 0) {
- $line .= getIndent();
- }
- ##
- $line .= $var . "[$count] = $v;\n";
- $count++;
- }
- }
- }
- elsif ($line =~ /\$(\w+)\s*(\[[^\]]+\])\s*([\.]?=)\s*(.*);/) {
- my($name) = $1;
- my($index) = $2;
- my($op) = $3;
- my($value) = $4;
- my($fake) = handleAssignment("\$$name $op $value;");
-
- $index =~ s/\$//g;
- if ($fake =~ /TAO_TestCombinedThreads/) {
- $line = $fake;
- $line =~ s/\w+\s+=/$name$index = new/;
- ## Need to reset this because of the above call to handleAssignemnt
- $declared{$name} = "%x";
- }
- elsif ($fake =~ /$name[\s,=]+(.*)[\);]+/) {
- $value = $1;
- $value =~ s/\)$//;
- $line = "$name$index $op $value;";
- }
- else {
- $line = "// Unconverted Assignment: $line";
- generateError($UNSUPPORTED_CONSTRUCT, "assignment");
- }
- }
- else {
- $line = "// Unsupported Assignment: $line";
- generateError($UNSUPPORTED_CONSTRUCT, "assignment");
- }
- return $line;
-}
-
-
-sub setNeedMain {
- if ($firstExecutable && !$insub) {
- $needMain = 1;
- $firstExecutable = 0;
- incrementIndent();
- ## Fix up so the first line in main() is properly indented
- $pindent = $indent;
- }
-}
-
-
-my($foreachcount) = 0;
-sub handleForeach {
- my($line) = shift;
- setNeedMain();
-
- incrementIndent();
-
- my($newline) = "{ // Unsupported foreach";
- if ($line =~ /foreach\s+\$(\w+)\s*\((.*)\)/) {
-
- my($var) = $1;
- my($var_count) = $var . "_count";
- my($arg) = $2;
-
- $newline = "for(int $var_count = ";
- if ($arg =~ /\@ARGV/) {
- $newline .= "1; $var_count < argc; $var_count++) {\n" .
- (" " x (2 * $indent)) .
- "char* $var = argv[$var_count];";
- $declared{$var} = "%s";
- $decscope{$var} = $indent;
- }
- else {
- $arg =~ s/\@//;
- if ($arg !~ /^\w+$/) {
- my($arrtype) = "char*";
- my($avar) = "gen_foreach$foreachcount";
- $foreachcount++;
- if (!$declared{$avar}) {
- $declared{$avar} = "%s";
- $decscope{$avar} = $indent;
- }
- my($dcount) = $arg;
- $dcount =~ s/[^,]//g;
- $newline = "$arrtype $avar\[\] = { $arg };\n" .
- (" " x (2 * ($indent - 1))) . "int $avar" .
- "_length = " . (length($dcount) + 1) . ";\n" .
- (" " x (2 * ($indent - 1))) . $newline;
- $arg = $avar;
- }
- $newline .= "0; $var_count < $arg" . "_length; $var_count++) {\n" .
- (" " x (2 * $indent)) .
- "char* $var = $arg" . "[$var_count];";
- $declared{$var} = "%s";
- $decscope{$var} = $indent;
- }
- }
- else {
- generateError($UNSUPPORTED_CONSTRUCT, "foreach");
- }
-
- return $newline;
-}
-
-
-sub handleFor {
- my($line) = shift;
- setNeedMain();
-
- my($newline) = "{ // Unsupported for";
- if ($line =~ /for\s*\(\$(\w+)/) {
- $newline = $line;
- if (!defined $declared{$1}) {
- $declared{$1} = "%d";
- $decscope{$1} = $indent;
- $newline = typeToCPPType($declared{$1}) .
- " $1;\n" . (" " x (2 * $indent)) . $newline;
- }
- $newline =~ s/\$//g;
- }
- else {
- generateError($UNSUPPORTED_CONSTRUCT, "for");
- }
-
- if ($newline =~ /argc/ && $newline =~ /=\s*0\s*;/) {
- $newline =~ s/=\s*0\s*;/= 1;/;
- }
-
- incrementIndent();
-
- return $newline;
-}
-
-
-sub convertFILEtoInt {
- my($name) = shift;
- $name =~ s/STDIN/fileno(stdin)/g;
- $name =~ s/STDOUT/fileno(stdout)/g;
- $name =~ s/STDERR/fileno(stderr)/g;
- return $name;
-}
-
-my($genopen) = 0;
-sub handleOpen {
- my($line) = shift;
- my($fromIf) = shift;
- my($above) = undef;
- $fromIf = (defined $fromIf ? $fromIf : 0);
-
- if ($line =~ /(.*(!)?)open\s*\((.*),\s*(.*)\)(.*)/) {
- my($before) = $1;
- my($fh) = $3;
- my($file) = $4;
- my($after) = $5;
- my($newline) = "";
-
- $fh = convertFILEtoInt($fh);
- ## Dup'ing
- if ($file =~ /\"\>\&(.*)\"/) {
- my($other) = convertFILEtoInt($1);
- if ($fh =~ /fileno/) {
- $newline = "ACE_OS::dup2($fh, $other)";
- }
- else {
- if (!defined $declared{$fh}) {
- $declared{$fh} = "%d";
- $decscope{$fh} = $indent - ($fromIf ? 1 : 0);
- $newline = "int ";
- }
- $newline .= "$fh = ACE_OS::dup($other)";
- }
- }
- ## Regular open (write)
- elsif ($file =~ /\">(.*)\"/) {
- my($other) = $1;
- $other =~ s/\$//g;
- my($name) = "genopen$genopen";
- if ($fh =~ /fileno/) {
- $genopen++;
- $newline = "ACE_OS::dup2($fh, $name)";
- }
- else {
- $name = $fh;
- $newline = $name;
- }
- $above = (defined $declared{$name} ? "" : "int ") .
- "$name = " .
- "ACE_OS::open($other, O_WRONLY|O_CREAT, " .
- "S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);\n";
- if (!defined $declared{$name}) {
- $declared{$name} = "%d";
- $decscope{$name} = $indent - ($fromIf ? 1 : 0);
- }
- }
- ## Regular open (read)
- elsif ($file =~ /(.*)/) {
- my($other) = $1;
- $other =~ s/\$//g;
- $other =~ s/[\"\']//g;
- $other =~ s/\<//g;
- my($name) = $fh;
- $newline = $name;
- $above = (defined $declared{$name} ? "" : "int ") .
- "$name = " .
- "ACE_OS::open($other, O_RDONLY);\n";
- if (!defined $declared{$name}) {
- $declared{$name} = "%d";
- $decscope{$name} = $indent - ($fromIf ? 1 : 0);
- }
- }
- $line = (!$fromIf && defined $above ? $above : "") .
- "$before$newline$after";
- }
- else {
- generateError($UNSUPPORTED_CONSTRUCT, "open");
- }
- return $line, $above;
-}
-
-sub handleIf {
- my($line) = shift;
- setNeedMain();
-
- my($newline) = $line;
- $newline =~ s/if\s*\(.*/if \(/;
-
- my($conditions) = undef;
- if ($line =~ /if\s*\((.+)\)\s*{/) {
- $conditions = $1;
- }
-
- if ($line =~ /elsif/) {
- $newline =~ s/elsif/else if/;
- }
- if ($line !~ /}.*{/) {
- incrementIndent();
- }
-
- foreach my $inside (split(/(\&\&|\|\|)/, $conditions)) {
- if ($inside eq '&&' || $inside eq '||') {
- $newline .= " $inside ";
- }
-# elsif ($inside =~ /\$\^O\s+[nltgeq]+\s+[\"\']MSWin32[\"\']/) {
-# $newline .= "0";
-# }
- elsif ($inside =~ /open\s*\(.*\)/) {
- my($above) = undef;
- ($inside, $above) = handleOpen($inside, 1);
- if (defined $above) {
- $newline = $above . getIndent() . $newline;
- }
- $newline .= " $inside ";
- }
- elsif ($inside =~ /(.*)\s+([nltgeq]+)\s+(.*)/) {
- my($left) = $1;
- my($op) = $2;
- my($right) = $3;
- my($var) = undef;
- my($constant) = undef;
-
- if ($left =~ /\$(\w+)/) {
- $var = $1;
- }
- elsif ($right =~ /\$(\w+)/) {
- $var = $1;
- }
- if ($left =~ /\$?(\w+\[[^\]]+\])/) {
- $var = $1;
- $var =~ s/\$//g;
- }
- elsif ($right =~ /\$?(\w+\[[^\]]+\])/) {
- $var = $1;
- $var =~ s/\$//g;
- }
-
- if ($left =~ /\"[^\"]*\"/) {
- $constant = $left;
- }
- elsif ($right =~ /\"[^\"]*\"/) {
- $constant = $right;
- }
- if ($left =~ /\'([^\']*)\'/) {
- $constant = "\"$1\"";
- }
- elsif ($right =~ /\'([^\']*)\'/) {
- $constant = "\"$1\"";
- }
- if (defined $var && defined $constant) {
- my($check) = undef;
- if ($op eq 'eq') {
- $check = "== 0";
- }
- elsif ($op eq 'ne') {
- $check = "!= 0";
- }
- elsif ($op eq 'lt') {
- $check = "< 0";
- }
- elsif ($op eq 'le') {
- $check = "<= 0";
- }
- elsif ($op eq 'gt') {
- $check = "> 0";
- }
- elsif ($op eq 'ge') {
- $check = ">= 0";
- }
-
- $inside =~ s/.*\s+$op\s+.*/\($var != 0 && ACE_OS_String::strcmp\($var, $constant\) $check\)/;
- $newline .= "$inside";
- }
- }
- elsif ($inside =~ /([^!<=]+)\s*([!<>=]+)\s*([^!<>=]+)/) {
- my($left) = $1;
- my($op) = $2;
- my($right) = $3;
- my($var) = undef;
- my($constant) = undef;
-
- $left =~ s/\s+$//;
- $right =~ s/^\s+//;
-
- if ($left =~ /\$(\w+)/) {
- $var = $left;
- $var =~ s/\$//g;
- }
- elsif ($left =~ /\'([^\']+)\'/) {
- $var = "\"$1\"";
- }
- else {
- $var = $left;
- }
-
- if ($right =~ /\$(\w+)/) {
- $constant = $1;
- }
- elsif ($right =~ /\'([^\']+)\'/) {
- $constant = "\"$1\"";
- }
- else {
- $constant = $right;
- }
-
- if ($var =~ /Spawn/) {
- my($wait) = "";
- if ($var =~ /\((.*)\)/) {
- my($tout) = $1;
- if ($tout =~ /^\d+$/ && $tout > $defaultTimeout) {
- $defaultTimeout = $tout;
- }
- $wait = "($tout * $timefactor)";
- }
- my($spvar, $spval) = handleSpawn($var);
- $newline = "$spvar$spval\n" . (" " x (2 * ($indent - 1))) .
- $newline;
- $var = "$spvar.wait($wait)";
- }
- elsif ($var =~ /[\$]?([\w\[\]\$]+)->WaitKill/) {
- my($wvar) = $1;
- my($ovar) = $wvar;
- my($iop) = ".";
- my($tfix) = $wvar;
- $wvar =~ s/\$//g;
- $tfix =~ s/\[.*//;
- if ($wvar =~ /\[/) {
- $ovar =~ s/[\[\]\$]//g;
- $iop = "->";
- }
-# if (defined $declared{$wvar} && $declared{$wvar} != 0) {
-# $wvar .= $declared{$wvar};
-# }
- handleWaitKill($var, $ovar);
- $var = "$wvar$iop" . "wait($ovar" . "Timeout)";
- }
-
- $newline .= "$var $op $constant";
- }
- elsif ($inside =~ /testGetopts/) {
- $newline .= $inside;
- }
- elsif ($inside =~ /(.*)defined\s+\$([^\)]+)/) {
- my($op) = $1;
- my($var) = $2;
- $newline .= ($op ne "" ? "$op(" : "") .
- $var . "[0] != '\\0'" . ($op ne "" ? ")" : "");
- }
- elsif ($inside =~ /(!)?(.*)/) {
- my($op) = $1;
- my($right) = $2;
- $right =~ s/\$//g;
- $inside = (defined $op ? $op : "") . $right;
- $newline .= "$inside";
- }
- else {
- $newline .= "/*$inside*/0";
- }
- }
- $newline .= ") {";
-
- return $newline;
-}
-
-
-my($argindexcount) = 0;
-my($azlengthcount) = 0;
-my($genargcount) = 0;
-sub handleArguments {
- my($line) = shift;
- my($var) = shift;
- my($args) = shift;
- my($sep) = shift;
- my($newline) = "// Arguments: $line";
- my($ok) = 0;
-
- if (defined $var && defined $args) {
- $ok = 1;
- }
- elsif ($line =~ /\$(\w+)->Arguments\s*\((.*)\)/) {
- $ok = 1;
- $var = $1;
- $args = $2;
- }
-
- if ($ok) {
- my($argline) = "";
- my($argcount) = splitArguments($args, \$argline, $sep);
- $argline .= "0";
- my(@lines) = split(/\n/, $argline);
- $newline = "int argindex$argindexcount = " .
- (defined $argsList{$var} ? "$argsList{$var}" :
- "1 /*undefined*/") . ";\n";
- for(my $i = 0; $i <= $#lines; $i++) {
- if ($i == $#lines) {
- my($current) = 0;
- my($varargs) = $var . "Args";
- foreach my $newarg (split(/,/, $lines[$i])) {
- $newarg =~ s/^\s+//;
- $newarg =~ s/\s+$//;
- if (defined $declared{$newarg} && $declared{$newarg} eq "%s" &&
- $newarg !~ /ior/ && $newarg !~ /conf/ && $newarg !~ /gen_/) {
- $current = $unknownArgCount;
- $newline .= (" " x (2 * $indent)) . $varargs .
- "[argindex$argindexcount" . "++] = $newarg;\n" .
- (" " x (2 * $indent)) . "int azlength$azlengthcount = ACE_OS::strlen($newarg);\n" .
- (" " x (2 * $indent)) . "for(int az = 0; az < azlength$azlengthcount; az++) {\n" .
- (" " x (2 * $indent)) . " if (isspace($newarg" . "[az])) {\n" .
- (" " x (2 * $indent)) . " $newarg" . "[az] = '\\0';\n" .
- (" " x (2 * $indent)) . " for(;ACE_OS_String::ace_isspace($newarg" . "[az]); az++);\n" .
- (" " x (2 * $indent)) . " $varargs" . "[argindex$argindexcount" . "++] = $newarg + az + 1;\n" .
- (" " x (2 * $indent)) . " }\n" .
- (" " x (2 * $indent)) . "}\n";
- $azlengthcount++;
- }
- elsif (defined $declared{$newarg} && $declared{$newarg} eq "%d") {
- $newline .= (" " x (2 * $indent)) .
- "char gen_args$genargcount" . "[$shortString] = \"\";\n" .
- (" " x (2 * $indent)) .
- "ACE_OS::sprintf(gen_args$genargcount, \"%d\", $newarg);\n" .
- (" " x (2 * $indent)) .
- $varargs . "[argindex$argindexcount" .
- "++] = gen_args$genargcount;\n";
- $genargcount++;
- $current++;
- }
- else {
- $newline .= (" " x (2 * $indent)) .
- $varargs . "[argindex$argindexcount" .
- "++] = $newarg;\n";
- $current++;
- }
- }
- $argindexcount++;
- my($foundInBody) = 0;
- for(my $i = $#cppbody; $i >= 0; $i--) {
- if ($cppbody[$i] =~ /char\* $varargs\[(.*)\]/) {
- my($index) = $1;
- my($max) = $argsList{$var} + $current;
- if (!defined $index || defined $index &&
- ($index eq "" || ($index =~ /^\d+$/ && $index < $max))) {
- $cppbody[$i] =~ s/$varargs\[.*\]/$varargs\[$max\]/;
- $foundInBody = 1;
- last;
- }
- }
- }
- for(my $i = $#cppheader; $i >= 0; $i--) {
- if ($cppheader[$i] =~ /char\* $varargs\[(.*)\]/) {
- my($index) = $1;
- my($max) = $argsList{$var} + $current;
- if (!defined $index || defined $index &&
- ($index eq "" || ($index =~ /^\d+$/ && $index < $max))) {
- $cppheader[$i] =~ s/$varargs\[.*\]/$varargs\[$max\]/;
- last;
- }
- }
- }
- }
- else {
- $newline .= "$lines[$i]\n";
- }
- }
- }
- return $newline;
-}
-
-
-sub handleWhile {
- my($line) = shift;
- generateError($UNSUPPORTED_CONSTRUCT, "while");
- return "while(0) {";
-}
-
-
-sub handleKeyword {
- my($key) = shift;
- my($line) = shift;
- setNeedMain();
- $line =~ s/\$(\w+)/$1/;
- if ($line =~ /$key\s*[^(]/) {
- if ($line =~ /[\(\)]+/) {
- $line =~ s/$key\s*/ACE_OS::$key/;
- }
- else {
- $line =~ s/$key\s*/ACE_OS::$key\(/;
- $line =~ s/;/\);/;
- }
- }
- else {
- $line = "ACE_OS::$line";
- }
- return $line;
-}
-
-
-sub handlePrint {
- my($line) = shift;
- setNeedMain();
-
- my($stream) = undef;
- my($value) = undef;
- if ($line =~ /print\s+(\w+)\s+(.+);/) {
- $stream = lc($1);
- $value = $2;
- }
- elsif ($line =~ /print\s+(.+);/) {
- $value = $1;
- }
-
- $value = handleEmbeddedVar($value);
-
- if (defined $stream) {
- $line = "ACE_OS::fprintf($stream, $value);";
- }
- else {
- $line = "ACE_OS::printf($value);";
- }
-
- return $line;
-}
-
-
-sub handleSpawn {
- my($line) = shift;
- setNeedMain();
- my(@parts) = ();
- if ($line =~ /([\w\[\$\]]+)->Spawn[\w]*\s*\(([^\)]*)\)/) {
- if (defined $taodebug) {
- my($part) = (" " x (2 * $indent)) . "TAO_debug_level = $taodebug;\n";
- if ($insub) {
- push(@cppsubs, $part);
- }
- else {
- push(@cppbody, $part);
- }
- $taodebug = undef;
- }
- my($var) = $1;
- my($timeout) = $2;
- $var =~ s/\$//g;
-
-# if (defined $declared{$var} && $declared{$var} != 0) {
-# $var .= $declared{$var};
-# }
- if ($timeout =~ /^\d+$/ && $timeout > $defaultTimeout) {
- $defaultTimeout = $timeout;
- }
- my($time) = ($timeout ne "" ? "($timeout * $timefactor)" : "");
- if ($time eq "") {
- my($varfix) = $var;
- $varfix =~ s/[\[\]]+//g;
- $time = "$varfix" . "Timeout";
- }
- my($typeCheck) = $var;
- $typeCheck =~ s/\[.*//;
- @parts = ($var, ($declared{$typeCheck} eq "%x" ?
- "->" : ".") . "run($time);");
- }
- return @parts;
-}
-
-
-sub handleWaitKill {
- my($line) = shift;
- my($var) = shift;
- setNeedMain();
-
- if (!defined $var) {
- if ($line =~ /(\w+)->.*Kill\s*\(([\w\$]*)\)/) {
- $var = $1;
- }
- }
- if ($line =~ /->.*Kill\s*\(([\w\$]*)\)/) {
- my($time) = $var . "Timeout";
- my($tout) = $1;
- if ($tout =~ /^\d+$/ && $tout > $defaultTimeout) {
- $defaultTimeout = $tout;
- }
- if (!defined $declared{$time}) {
- $timeoutVars{$time} = $tout;
- $declared{$time} = "%d";
- $decscope{$time} = -1;
- }
- }
-}
-
-
-sub handleSubroutine {
- my($line) = shift;
- incrementIndent();
-
- if ($line =~ /sub\s+(\w+)\s*(\(.*\))?\{/) {
- $insub = 1;
- $indsc = $indent - 1;
- $line = "void $1(/*params*/) {";
- push(@subs, $1);
- }
- else {
- $line = "// Subroutine call??? $line";
- }
- return $line;
-}
-
-
-my($firstSplit) = 1;
-sub handleSplit {
- my($line) = shift;
- if ($firstSplit) {
- $firstSplit = 0;
- push(@cppheader, "void split(char** arr, int& length, const char* delim, char* str)\n" .
- "{\n" .
- " int slength = strlen(str);\n" .
- " int delimLength = strlen(delim);\n" .
- " int previous = 0;\n" .
- " int index = 0;\n" .
- " for(int i = 0; i <= slength; i++) {\n" .
- " if (str[i] == '\\0' || strncmp(str + i, delim, delimLength) == 0) {\n" .
- " arr[index++] = str + previous;\n" .
- " str[i] = '\\0';\n" .
- " i += delimLength;\n" .
- " previous = i;\n" .
- " }\n" .
- " }\n" .
- " length = index;\n" .
- "}\n" .
- "\n" .
- "void split(char** arr, int& length, char delim, char* str)\n" .
- "{\n" .
- " char delimStr[2] = \"\\0\";\n" .
- " delimStr[0] = delim;\n" .
- " split(arr, length, delimStr, str);\n" .
- "}\n\n");
- }
-
- if ($line =~ /\@(\w+)\s*=\s*split\s*\((.*)\)/) {
- my($var) = $1;
- my($params) = $2;
- $params =~ s/\$//g;
- $params =~ s/^\/([^\/]+)\//\'$1\'/;
- $line = "split($var, $var" . "_length, $params);";
- }
- else {
- $line = "// Unhandled split: $line";
- }
- return $line;
-}
-
-
-sub handleLocal {
- my($line) = shift;
- if ($line =~ /local\s*\((.*)\)/) {
- my($list) = $1;
- foreach my $var (split(/,/, $list)) {
- $var =~ s/^\s+//;
- $var =~ s/\s+//;
- $var = handleAssignment($var . " = \"\";");
- if ($var !~ /^static/) {
- $var = "static $var";
- }
- push(@cppheader, "$var\n");
- }
- }
-}
-
-my($firstGetopts) = 1;
-sub handleGetopts {
- my($line) = shift;
- my(%vars) = ();
-
- $line =~ s/\'/\"/g;
- if ($line =~ /getopts\s*\(([^\)]+)\)/) {
- my($param) = $1;
- my($length) = length($param);
- my($current) = "";
- for(my $i = 0; $i < $length; $i++) {
- my($ch) = substr($param, $i, 1);
- if ($ch ne '"') {
- if ($ch eq ':') {
- $vars{$current} = 1;
- }
- else {
- $current = $ch;
- $vars{$current} = 0;
- }
- }
- }
- }
-
- if ($firstGetopts) {
- push(@cppsubs, "int testGetopts(int argc, char* argv[], const char* str)\n" .
- "{\n" .
- " ACE_Get_Opt get_opts(argc, argv, str);\n" .
- " int status = 1;\n" .
- " for(int c = 0; c != -1; c = get_opts()) {\n" .
- " switch(c) {\n" .
- " case 0:\n" .
- " break;\n");
- foreach my $key (keys %vars) {
- push(@cppsubs, " case '$key':\n");
- if ($vars{$key} == 0) {
- push(@cppsubs, " ACE_OS_String::strcpy(opt_$key, \"1\");");
- }
- else {
- push(@cppsubs, " ACE_OS_String::strcpy(opt_$key, get_opts.optarg);\n");
- }
- push(@cppsubs, " break;\n");
- }
- push(@cppsubs, " default:\n" .
- " status = 0;\n" .
- " break;\n" .
- " }\n" .
- " }\n" .
- " return status;\n" .
- "}\n\n");
- }
-
- $line =~ s/getopts\s*\(/testGetopts\(argc, argv, /g;
- $firstGetopts = 0;
- return $line;
-}
-
-
-sub handleEmbeddedVar {
- my($value) = shift;
-
- while ($value =~ /\$(\w+)\[([\$]?\w+)\]/) {
- my($param) = $1;
- my($index) = $2;
- $index =~ s/\$//;
- $value =~ s/([^\\])\$\w+\[[\$]?\w+\]/$1$declared{$param}/;
- $value .= ", $param" . "[$index]";
- }
- while ($value =~ /\.\s*([\$\"\']+)/) {
- my($param) = $1;
- $param =~ s/\$//;
- $value =~ s/\.\s*[\$\"\']+/ \"%s\"/;
- $value .= ", $param";
- $value =~ s/\"\s*\.\s*\"//;
- $value =~ s/\"\s+\"//;
- }
- while ($value =~ /[^\\]\$(\w+)/) {
- my($param) = $1;
-
- ## Perl Script Error
- if (!defined $declared{$param}) {
- generateError($UNDEFINED_VARIABLE, $param);
- $value =~ s/([^\\])\$\w+/$1%x/;
- }
- else {
- $value =~ s/([^\\])\$\w+/$1$declared{$param}/;
- }
- $value .= ", $param";
- }
-# my($length) = length($value);
-# my($prev) = "";
-# for(my $i = 0; $i < $length; $i++) {
-# my($ch) = substr($value, $i, 1);
-# if ($prev ne '\\' && $ch eq '$') {
-# ## TBD?
-# }
-# $prev = $ch;
-# }
- return $value;
-}
-
-
-my($subcallcount) = 0;
-sub handleSubCall {
- my($line) = shift;
- my($newline) = "// Sub Call:";
- if ($line =~ /(\"[^\"]+\")/) {
- my($orig) = $1;
- my($str) = handleEmbeddedVar($orig);
- if ($orig ne $str) {
- $newline = "char gen_subcall$subcallcount" . "[$shortString] = \"\";\n" .
- (" " x (2 * $indent)) .
- "ACE_OS::sprintf(gen_subcall$subcallcount, $str);\n";
- $line =~ s/\"[^\"]+\"/gen_subcall$subcallcount/;
- $line = $newline . (" " x (2 * $indent)) . $line;
- $subcallcount++;
- }
- }
- else {
- $line =~ s/\$//g;
- }
- return $line;
-}
-
-sub convertAngleToRead {
- my($line) = shift;
- my($length) = length($line);
- my($indouble) = 0;
- my($insingle) = 0;
- my($inangle) = 0;
-
- for(my $i = 0; $i < $length; $i++) {
- my($ch) = substr($line, $i, 1);
- if (!$insingle && $ch eq '"') {
- $indouble ^= 1;
- }
- elsif (!$indouble && $ch eq '\'') {
- $insingle ^= 1;
- }
- elsif ($ch eq '<' && !$indouble && !$insingle) {
- $inangle = $i;
- }
- elsif ($ch eq '>' && $inangle && !$indouble && !$insingle) {
- my($func) = "read_line";
- if ($line =~ /while/) {
- if ($needReadLine) {
- push(@cppsubs, "static char* read_line (int fd)\n" .
- "{\n" .
- " static const size_t blen = 2048;\n" .
- " static char buffer[blen];\n" .
- "\n" .
- " buffer[0] = '\\0';\n" .
- " off_t current = lseek(fd, 0, SEEK_CUR);\n" .
- " ssize_t amount = read (fd, buffer, blen);\n" .
- " if (amount > 0)\n" .
- " {\n" .
- " for(ssize_t i = 0; i < amount; i++)\n" .
- " {\n" .
- " if (buffer[i] == '\\n')\n" .
- " {\n" .
- " buffer[i + 1] = '\\0';\n" .
- " lseek (fd, current + i + 1, SEEK_SET);\n" .
- " break;\n" .
- " }\n" .
- " }\n" .
- " }\n" .
- "\n" .
- " return buffer;\n" .
- "}\n" .
- "\n" .
- "\n");
- $needReadLine = 0;
- }
- }
- else {
- $func = "read_file";
- if ($needReadFile) {
- push(@cppsubs, "static char* read_file (int fd)\n" .
- "{\n" .
- " static const size_t blen = 5120;\n" .
- " static char buffer[blen];\n" .
- "\n" .
- " buffer[0] = '\\0';\n" .
- " ssize_t amount = read (fd, buffer, blen);\n" .
- " if (amount > 0)\n" .
- " buffer[amount] = '\\0';\n" .
- "\n" .
- " return buffer;\n" .
- "}\n");
- $needReadFile = 0;
- }
- }
- substr($line, $i, 1) = ")";
- substr($line, $inangle, 1) = "$func(";
- $inangle = 0;
- $length = length($line);
- $i += length($func);
- }
- }
-
- return $line;
-}
-
-
-sub usageAndExit {
- my($str) = shift;
- if (defined $str) {
- print "$str\n";
- }
- print "Usage: " . basename($0) . " [-t <time factor>] <input> <output>\n\n" .
- " -t <time factor> The multiple to be applied to " .
- "each timeout value.\n" .
- " <input> Input perl script.\n" .
- " <output> Output c++ file.\n";
- exit(0);
-}
-
-# ******************************************************************
-# Main Section
-# ******************************************************************
-
-my($ifile) = "run_test.pl";
-my($ofile) = "-";
-
-while(1) {
- if ($ARGV[0] eq "-h") {
- usageAndExit();
- }
- elsif ($ARGV[0] eq "-t") {
- shift(@ARGV);
- $timefactor = $ARGV[0];
- if (!defined $timefactor || $timefactor !~ /^\d+$/) {
- usageAndExit("Invalid timeout factor");
- }
- }
- elsif ($ARGV[0] =~ /^\-/) {
- usageAndExit("Unknown option: $ARGV[0]");
- }
- else {
- last;
- }
- shift(@ARGV);
-}
-
-if (defined $ARGV[0]) {
- $ifile = $ARGV[0];
-}
-if (defined $ARGV[1]) {
- $ofile = $ARGV[1];
-}
-
-my($fh) = new FileHandle();
-if (open($fh, $ifile)) {
- my($oh) = new FileHandle();
- if (open($oh, ">$ofile")) {
- my($line) = "";
- my($inspect) = "";
- my($hostValue) = "localhost";
-
- push(@cppheader, getTop());
- while(<$fh>) {
- my($injected) = undef;
- my($output) = undef;
- $line = $_;
- $lineCount++;
-
- ## For now, comment out anything using $ENV{} or
- ## PerlACE::check_n_cleanup_files
- if ($line =~ /\$ENV/ ||
- $line =~ /PerlACE::check_n_cleanup_files/) {
- $line = "## $line";
- }
-
- ## Convert die's
- if ($line =~ /(.*)\s+(or|and)\s+die\s*(.*);/) {
- my($left) = $1;
- my($op) = $2;
- my($right) = $3;
- $line = "if (" . ($op eq "or" ? "!" : "") . "$left) {\n";
- $right =~ s/\((.*)\)/$1/;
- my($space) = getIndent();
- $injected = "$space ACE_OS::fprintf(stderr, $right);\n" .
- "$space exit(1);\n" .
- "$space}\n";
- }
-
- ## Convert $^O to $OSNAME
- $line =~ s/\$\^O/\$OSNAME/g;
-
- $line =~ s/^\s+//g;
- $line =~ s/[^\$\\]#.*//g;
- $line =~ s/^#.*//;
- $line =~ s/\s+$//g;
-
- ## PerlACE transform
- $line =~ s/PerlACE::LocalFile\s*\((.*)\)/FULL_PATH $1/g;
- $line =~ s/PerlACE::waitforfile_timed/TAO_TestCombinedThreads::waitForFileTimed/g;
- $line =~ s/TAO_TestCombinedThreads::waitForFileTimed\s*\(([^,]+),([^\)]+)\)/TAO_TestCombinedThreads::waitForFileTimed \($1, \($2 * $timefactor\)\)/;
- $line =~ s/PerlACE::uniqueid\s*/TAO_TestCombinedThreads::getRandomPortBase/g;
-
- ## time transform
- $line =~ s/time/time_variable/g;
-
- ## main arguments transform
- $line =~ s/\$#ARGV/\(argc - 1\)/g;
- $line =~ s/\$ARGV\[([^\]]+)\]/argv\[$1\]/g;
- if ($line =~ /argv\[(\d+)\]/) {
- my($val) = $1 + 1;
- $line =~ s/argv\[\d+\]/argv\[$val\]/;
- }
-
- ## TARGETHOSTNAME transform
- if ($line =~ /\$TARGETHOSTNAME\s*=\s*\"(.*)\"/) {
- $hostValue = $1;
- $line = "";
- }
- $line =~ s/\$TARGETHOSTNAME/$hostValue/g;
-
- $inspect = concatenate(buildLine($line));
-
- if ($inspect =~ /getopts/) {
- $inspect = handleGetopts($inspect);
- }
-
- if ($inspect eq "") {
- $output = "";
- }
- elsif ($inspect =~ /^eval\s+/) {
- }
- elsif ($inspect =~ /^use\s+/) {
- }
- elsif ($inspect =~ /^require\s+/) {
- }
- elsif ($inspect =~ /split\s*\(/) {
- $output = handleSplit($inspect);
- }
- elsif ($inspect =~ /^(my\s+)?[\$\%\@]\w+(\s*\[[\$\w]+\])?\s*(\.)?=/) {
- $output = handleAssignment($inspect);
- }
- elsif ($inspect =~ /^foreach\s+/) {
- $output = handleForeach($inspect);
- }
- elsif ($inspect =~ /^for\s+/) {
- $output = handleFor($inspect);
- }
- elsif ($inspect =~ /^while\s+/) {
- $output = handleWhile($inspect);
- }
- elsif ($inspect =~ /^if\s*\(/ || $inspect =~ /[}]?\s*elsif\s*\(/) {
- $output = handleIf($inspect);
- }
- elsif ($inspect =~ /else/) {
- $output = $inspect;
- if ($inspect =~ /}/) {
- decrementIndent();
- }
- if ($inspect =~ /{/) {
- incrementIndent();
- }
- }
- elsif ($inspect =~ /}/) {
- $output = $inspect;
- decrementIndent();
- }
- elsif ($inspect =~ /\$(\w+)\+\+/) {
- $output = $inspect;
- $output =~ s/\$//g;
- }
- elsif ($inspect =~ /^exit/) {
- if ($inspect =~ /exit(\s*\(\s*\))?;/) {
- $inspect = "exit(0);";
- }
- $output = handleKeyword("exit", $inspect);
- }
- elsif ($inspect =~ /^unlink/) {
- $output = handleKeyword("unlink", $inspect);
- }
- elsif ($inspect =~ /^sleep/) {
- $output = handleKeyword("sleep", $inspect);
- }
- elsif ($inspect =~ /^close/) {
- $output = handleKeyword("close", $inspect);
- }
- elsif ($inspect =~ /^print[\s\(]/) {
- $output = handlePrint($inspect);
- }
- elsif ($inspect =~ /\->Spawn/) {
- my(@parts) = handleSpawn($inspect);
- $output = "$parts[0]$parts[1]";
- }
- elsif ($inspect =~ /->WaitKill/) {
- handleWaitKill($inspect);
- }
- elsif ($inspect =~ /->Kill/) {
- handleWaitKill($inspect);
- }
- elsif ($inspect =~ /->Arguments/) {
- $output = handleArguments($inspect);
- }
- elsif ($inspect =~ /local\s*\(/) {
- handleLocal($inspect);
- }
- elsif ($inspect =~ /sub\s+\w+\s*/) {
- $output = handleSubroutine($inspect);
- }
- elsif ($inspect =~ /open\s*\(/) {
- my(@parts) = handleOpen($inspect);
- $output = $parts[0];
- }
- else {
- if ($inspect ne "") {
- my($needError) = 1;
- $output = "// Needs to be implemented: $inspect";
- foreach my $sub (@subs) {
- if ($inspect =~ /$sub/) {
- $output = handleSubCall($inspect);
- $needError = 0;
- last;
- }
- }
- if ($needError) {
- generateError($UNSUPPORTED_CONSTRUCT, $inspect);
- }
- }
- }
-
- if (defined $output) {
- ## Post-processing
- $output = convertFILEtoInt($output);
- $output = convertAngleToRead($output);
-
- if ($needMain) {
- push(@cppbody, getMainBeginning());
- if (defined $injected) {
- push(@cppbody, $injected);
- decrementIndent();
- }
- $needMain = 0;
- }
- if ($output =~ /}\s*elsif/) {
- decrementIndent();
- }
- my($part) = ($output ne "" ? getIndent() : "") . "$output\n";
- if ($insub) {
- push(@cppsubs, $part);
- if (defined $injected) {
- push(@cppsubs, $injected);
- decrementIndent();
- }
- }
- else {
- if (!$firstExecutable) {
- push(@cppbody, $part);
- if (defined $injected) {
- push(@cppbody, $injected);
- decrementIndent();
- }
- }
- else {
- push(@cppheader, $part);
- if (defined $injected) {
- push(@cppheader, $injected);
- decrementIndent();
- }
- }
- }
- if ($insub == 1 && $indent == $indsc) {
- $insub = 0;
- }
- if ($output =~ /}\s*elsif/) {
- $indent++;
- }
- }
- }
- push(@cppbody, getMainEnding());
-
- ## Put in the definition of the timeout's now that
- ## the defaultTimeout is as large as it's going to get.
- foreach my $timeout (sort keys %timeoutVars) {
- my($val) = ($timeoutVars{$timeout} eq "" ? $defaultTimeout :
- $timeoutVars{$timeout});
- unshift(@cppbody, "static int $timeout = ($val * $timefactor);\n");
- }
-
- foreach my $line (@cppheader, @cppsubs, @cppbody) {
- print $oh $line;
- }
- }
- else {
- print STDERR "Unable to open $ofile for output\n";
- $status++;
- }
- close($fh);
-}
-else {
- print STDERR "Unable to open $ifile for input\n";
- $status++;
-}
-
-## Remove the file if there was an error
-if ($status) {
- unlink($ofile);
-}
-
-exit($status);
diff --git a/bin/pippen.pl b/bin/pippen.pl
deleted file mode 100755
index 8ac49b14eeb..00000000000
--- a/bin/pippen.pl
+++ /dev/null
@@ -1,402 +0,0 @@
-# $Id$
-
-BEGIN {
- use Cwd;
- if (!$ENV{ACE_ROOT}) {
- $ACE_ROOT = getcwd ()."\\";
- print STDERR "Error: ACE_ROOT not defined\n";
- exit 1;
- }
- else {
- $ACE_ROOT = $ENV{ACE_ROOT};
- }
-}
-use lib "$ACE_ROOT/bin";
-use PerlACE::MSProject::DSP;
-use PerlACE::MSProject::VCP;
-use File::DosGlob 'glob';
-use DirHandle;
-use strict;
-
-################################################################################
-
-my $extension;
-my $recurse = 0;
-my $list = 0;
-my $verbose = 0;
-my @arguments;
-my @configs;
-my @roots;
-my $auto_compile = 0;
-my $clean = 0;
-my $debug = 0;
-
-my $aceroot = 0;
-
-################################################################################
-
-# Parse command line arguments
-
-while ( $#ARGV >= 0)
-{
- if ($ARGV[0] =~ m/^-list/i) {
- $list = 1;
- }
- elsif ($ARGV[0] =~ m/^-evc3/i) {
- $extension = "vcp";
- }
- elsif ($ARGV[0] =~ m/^-msvc6/i) {
- $extension = "dsp";
- }
- elsif ($ARGV[0] =~ m/^-msvc7/i) {
- $extension = "vcproj";
- }
- elsif ($ARGV[0] =~ m/^-config/i) {
- push @configs, $ARGV[1];
- shift;
- }
- elsif ($ARGV[0] =~ m/^-r/i) {
- $recurse = 1;
- }
- elsif ($ARGV[0] =~ m/^-v/i) {
- $verbose = 1;
- }
- elsif ($ARGV[0] =~ m/^-auto_compile/i) {
- $auto_compile = 1;
- }
- elsif ($ARGV[0] =~ m/^-clean/i) {
- $clean = 1;
- }
- elsif ($ARGV[0] =~ m/^-useroot/i) {
- push @roots, $ARGV[1];
- shift;
- }
- elsif ($ARGV[0] =~ m/^-aceroot/i) {
- $aceroot = 1;
- }
- elsif ($ARGV[0] =~ m/^-(\?|h)/i) { # Help information
- print "Options\n";
- print "-list - Prints out the list of project files\n";
- print "-config <c> - Use <c> as a configuratoin\n";
- print "-evc3 - Looks for eMbedded Visual C++ 3.0 projects\n";
- print "-msvc6 - Looks for Visual C++ 5.0/6.0 projects\n";
- print "-msvc7 - Looks for Visual C++ 7.0 projects\n";
- print "-clean - Clean instead of building\n";
- print "-recurse - Recurse into directories\n";
- print "-verbose - Make some noise\n";
- print "-auto_compile - Print out auto_compile info during build\n";
- print "-useroot <dir> - Use <dir> as a root to look for dependencies\n";
- print "-aceroot - Use %ACE_ROOT% as a dependency root\n";
- exit;
- }
- elsif ($ARGV[0] =~ m/^-/) {
- warn "$0: unknown option $ARGV[0]\n";
- exit 1;
- }
- else {
- push @arguments, $ARGV[0];
- }
- shift;
-}
-
-if ($#configs < 0) {
- if (!defined $ENV{PIPPEN_CONFIGS}) {
- print STDERR "Error: No config specified\n";
- exit 1;
- }
-
- @configs = split /:/, $ENV{PIPPEN_CONFIGS};
-}
-
-if (!defined $extension) {
- if (!defined $ENV{PIPPEN_COMPILER}) {
- print STDERR "Error: No compiler specified\n";
- exit 1;
- }
-
- if ($ENV{PIPPEN_COMPILER} eq "evc3") {
- $extension = "vcp";
- }
- elsif ($ENV{PIPPEN_COMPILER} eq "msvc6") {
- $extension = "dsp";
- }
- elsif ($ENV{PIPPEN_COMPILER} eq "msvc7") {
- $extension = "vcproj";
- }
-}
-
-################################################################################
-
-# I like these variables
-
-# %projects->{$file}->{BUILD} <- Are we supposed to build this file?
-# ->{PROJ} <- MSProject object
-# ->{CONFIGS}->{$config}->{DEPS} <- List of dependencies
-# ->{DONE} <- Have we compiled it yet?
-
-my %projects;
-
-# %names->{$output} <- points to the $file used in the above %projects
-
-my %names;
-
-################################################################################
-
-# Expand all the files/directories passed in on the command line
-
-sub ProjectSearch ($@)
-{
- my $build = shift;
- my @targets = @_;
-
- while ($#targets >= 0) {
- my $target = $targets[0];
- if (-d $target) {
- print " Reading Directory $target\n" if ($verbose);
- if ($recurse) {
- my $dh = new DirHandle ($target);
-
- if (defined $dh) {
- foreach my $entry ($dh->read ()) {
- if (-d "$target/$entry" && $entry ne "." && $entry ne "..") {
- $entry =~ s/^.\\//; # / <- fix for color coding in devenv
- push @targets, ($target . "\\". $entry);
- }
- }
- }
- else {
- print STDERR "Error: Cannot read $target: $!\n";
- }
- }
-
- foreach my $t (glob ($target . "\\*." . $extension)) {
- print " Adding project $t\n" if ($verbose);
- %projects->{$t}->{BUILD} = $build;
- }
- }
- else {
- foreach my $t (glob ($target)) {
- print " Adding project $t\n" if ($verbose);
- %projects->{$t}->{BUILD} = $build;
- }
- }
- shift @targets;
- }
-}
-
-print "=== Expanding Command line Arguments\n" if ($verbose);
-
-if ($#arguments < 0) {
- print " No files specified, defaulting to \".\"\n" if ($verbose);
- push @arguments, (".");
-}
-
-ProjectSearch (1, @arguments);
-
-print "=== Expanding Root Arguments\n" if ($verbose);
-
-ProjectSearch (0, @roots);
-
-if ($aceroot == 1) {
- my $oldrecurse = $recurse;
- $recurse = 1;
- my @aceroots = ($ENV{ACE_ROOT}."\\ace",
- $ENV{ACE_ROOT}."\\apps\\gperf\\src",
- $ENV{ACE_ROOT}."\\TAO\\TAO_IDL",
- $ENV{ACE_ROOT}."\\TAO\\tao",
- $ENV{ACE_ROOT}."\\TAO\\orbsvcs\\orbsvcs");
- ProjectSearch (0, @aceroots);
- $recurse = $oldrecurse;
-}
-
-################################################################################
-
-# Read each project file to gather dependency and output information
-
-print "=== Reading Project Files\n" if ($verbose);
-
-foreach my $project (keys %projects) {
- my $proj;
-
- if ($project =~ m/\.dsp$/i) {
- $proj = new PerlACE::MSProject::DSP ($project);
- }
- elsif ($project =~ m/\.vcp$/i) {
- $proj = new PerlACE::MSProject::VCP ($project);
- }
- elsif ($project =~ m/\.vcproj$/i) {
- print STDERR "Error: MSVC7 not supported yet\n";
- }
- else {
- print STDERR "Error: Unrecognized file: $project\n";
- }
-
- print " Loading $project:" if ($verbose);
-
- $proj->Load ();
-
- foreach my $config (@configs) {
- foreach my $proj_config ($proj->Configs ()) {
- if ($proj_config =~ m/\Q$config\E/i) {
- print " \"$proj_config\"" if ($verbose);
- my $name = $proj->DepOutputFile ($proj_config);
-
- %names->{lc $name} = $project;
- @{%projects->{$project}->{CONFIGS}->{$proj_config}->{DEPS}} = split / /, $proj->Libs ($proj_config);
-
- if ($proj->UsesTAOIDL () == 1) {
- push @{%projects->{$project}->{CONFIGS}->{$proj_config}->{DEPS}}, ("gperf.exe", "tao_idl.exe");
- }
- }
- }
- }
-
- print "\n" if ($verbose);
-
- %projects->{$project}->{PROJ} = $proj;
-}
-
-################################################################################
-
-# Clean out the dependency lists, we only keep the libraries which we know
-# how to generate
-
-print "=== Cleaning out Dependency Lists\n" if ($verbose);
-
-foreach my $project (keys %projects) {
- foreach my $config (keys %{%projects->{$project}->{CONFIGS}}) {
- print " Cleaning Dependencies: $project ($config)\n" if ($verbose);
- print " Before:", join (" ", @{%projects->{$project}->{CONFIGS}->{$config}->{DEPS}}), "\n" if ($verbose);
- my @newdeps;
- foreach my $dep (@{%projects->{$project}->{CONFIGS}->{$config}->{DEPS}}) {
- if (defined %names->{lc $dep}) {
- push @newdeps, $dep;
- }
- }
- print " After:", join (" ", @newdeps), "\n" if ($verbose);
- @{%projects->{$project}->{CONFIGS}->{$config}->{DEPS}} = @newdeps;
- }
-}
-
-################################################################################
-
-# Make sure to build any dependencies found
-
-print "=== Walking Dependency Lists\n" if ($verbose);
-
-my $finished = 0;
-
-do {
- $finished = 1;
- foreach my $project (keys %projects) {
- foreach my $config (keys %{%projects->{$project}->{CONFIGS}}) {
- if (%projects->{$project}->{BUILD} == 1) {
- foreach my $dep (@{%projects->{$project}->{CONFIGS}->{$config}->{DEPS}}) {
- if (%projects->{%names->{lc $dep}}->{BUILD} != 1) {
- %projects->{%names->{lc $dep}}->{BUILD} = 1;
- $finished = 0;
- }
- }
- }
- }
- }
-
-} while (!$finished);
-
-
-################################################################################
-
-# Output a list, if requested
-
-if ($debug) {
- print "List of Dependencies\n";
- print "--------------------\n";
- foreach my $project (keys %projects) {
- print "=== $project\n";
- foreach my $config (keys %{%projects->{$project}->{CONFIGS}}) {
- print " Config: $config\n";
- print " Depends: ", join (" ", @{%projects->{$project}->{CONFIGS}->{$config}->{DEPS}}), "\n";
- }
- }
-
- print "\n";
- print "List of Outputs\n";
- print "---------------\n";
-
- foreach my $name (keys %names) {
- print "$name\n";
- }
-}
-
-################################################################################
-
-# Loop through and
-
-print "=== Compiling\n" if ($verbose);
-
-my $compilations; # Keep track of the number of compiles done during a pass
-my $unfinished;
-my $loop = 1;
-
-do {
- $compilations = 0;
- $unfinished = 0;
-
- foreach my $project (keys %projects) {
- if (%projects->{$project}->{BUILD} == 1) {
- foreach my $config (keys %{%projects->{$project}->{CONFIGS}}) {
- if (%projects->{$project}->{CONFIGS}->{$config}->{DONE} != 1) {
- my $depsleft = 0;
- foreach my $dep (@{%projects->{$project}->{CONFIGS}->{$config}->{DEPS}}) {
- if (%projects->{%names->{lc $dep}}->{CONFIGS}->{$config}->{DONE} != 1) {
- ++$depsleft;
- }
- }
-
- if ($depsleft == 0) {
- ++$compilations;
- print "Auto_compiling $project : $config\n" if ($auto_compile);
-
- if ($list == 1) {
- if ($clean == 1) {
- print "Cleaning ";
- }
- else {
- print "Compiling ";
- }
-
- print "$project : $config\n";
- }
- elsif ($clean == 1) {
- %projects->{$project}->{PROJ}->Clean ($config);
- }
- else {
- %projects->{$project}->{PROJ}->Build ($config);
- }
-
- %projects->{$project}->{CONFIGS}->{$config}->{DONE} = 1;
- }
- else {
- ++$unfinished;
- }
- }
- }
- }
- }
-
- print " === Loop $loop: $compilations compiles, $unfinished left\n" if ($verbose);
- ++$loop;
-} while ($compilations != 0);
-
-# Loop through and see if anything wasn't compiled. If so, this means either there is
-# an error in the script or that there are circular dependencies
-
-foreach my $project (keys %projects) {
- if (%projects->{$project}->{BUILD} == 1) {
- foreach my $config (keys %{%projects->{$project}->{CONFIGS}}) {
- if (%projects->{$project}->{CONFIGS}->{$config}->{DONE} != 1) {
- print STDERR "Error: Project not compiled: $project - $config\n",
- }
- }
- }
-}
diff --git a/bin/regenerate_exports.pl b/bin/regenerate_exports.pl
deleted file mode 100755
index 95e6bf67986..00000000000
--- a/bin/regenerate_exports.pl
+++ /dev/null
@@ -1,54 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# Goes through ACE/TAO and replaces
-
-use File::Find;
-use Cwd;
-
-$args = '';
-$root = cwd.'/';
-
-while ($#ARGV >= 0) {
- $args = $args . ' ' . shift @ARGV;
-}
-
-# wanted is only used for the File::Find
-sub wanted
-{
- my $file = $File::Find::name;
-
- $file =~ s/\.\//$root/;
-
- if ($File::Find::name =~ /\_export\.h$/i) {
- my $flag = 0;
- my $name = '';
-
- if (!open (FILE, $file)) {
- print STDERR "Error: Could not open $file\n";
- }
-
- while (<FILE>) {
- $flag = 1 if ((/generate_export/ || /GenExportH/) && $flag == 0);
- $name = $1 if (/define (\w*)_Export/);
- }
-
- if ($flag == 1) {
- print "Regenerating: $file\n";
- if ($OSNAME eq 'MSWIn32') {
- $file =~ s/\//\\/g;
- }
- system ("perl -S generate_export_file.pl $args $name > $file");
- }
- else {
- print "Skipping: $file\n";
- }
- close FILE;
- }
-}
-
-
-find (\&wanted, ".");
-
diff --git a/bin/rename-ace.pl b/bin/rename-ace.pl
deleted file mode 100755
index 0e1bd66069f..00000000000
--- a/bin/rename-ace.pl
+++ /dev/null
@@ -1,184 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -pi -S $0 ${1+"$@"}'
- & eval 'exec perl -pi -S $0 $argv:q'
- if 0;
-
-# $Id$
-
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-s/\bAcceptor\b/ACE_Acceptor/g;
-s/\bAddr\b/ACE_Addr/g;
-s/\bArgument_Vector\b/ACE_ARGV/g;
-s/\bAtomic_Op\b/ACE_Atomic_Op/g;
-s/\bCORBA_Handler\b/ACE_CORBA_Handler/g;
-s/\bCondition\b/ACE_Condition/g;
-s/\bConnector\b/ACE_Connector/g;
-s/\bControl_Block\b/ACE_Control_Block/g;
-s/\bControl_Mode\b/ACE_Control_Mode/g;
-s/\bData_Block\b/ACE_Data_Block/g;
-s/\bDummy_Node\b/ACE_Dummy_Node/g;
-s/\bDynamic_Node\b/ACE_Dynamic_Node/g;
-s/\bElapsed_Time\b/ACE_Elapsed_Time/g;
-s/\bEvent_Handler\b/ACE_Event_Handler/g;
-s/\bEvent_Handler_T\b/ACE_Event_Handler_T/g;
-s/\bFIFO\b/ACE_FIFO/g;
-s/\bFIFO_Recv\b/ACE_FIFO_Recv/g;
-s/\bFIFO_Recv_Msg\b/ACE_FIFO_Recv_Msg/g;
-s/\bFIFO_Send\b/ACE_FIFO_Send/g;
-s/\bFIFO_Send_Msg\b/ACE_FIFO_Send_Msg/g;
-s/\bFunction_Node\b/ACE_Function_Node/g;
-s/\bGet_Opt\b/ACE_Get_Opt/g;
-s/\bGuard\b/ACE_Guard/g;
-s/\bHANDLE\b/ACE_HANDLE/g;
-s/\bHandle_Set_Iterator\b/ACE_Handle_Set_Iterator/g;
-s/\bHandle_Set\b/ACE_Handle_Set/g;
-s/\bHigh_Res_Timer\b/ACE_High_Res_Timer/g;
-s/\bINET_Addr\b/ACE_INET_Addr/g;
-s/\bIO_Cntl_Cmds\b/ACE_IO_Cntl_Cmds/g;
-s/\bIO_Cntl_Msg\b/ACE_IO_Cntl_Msg/g;
-s/\bIO_Vector\b/ACE_IO_Vector/g;
-s/\bIPC_SAP\b/ACE_IPC_SAP/g;
-s/\bLSOCK\b/ACE_LSOCK/g;
-s/\bLSOCK_Acceptor\b/ACE_LSOCK_Acceptor/g;
-s/\bLSOCK_Aceeptor\b/ACE_LSOCK_Aceeptor/g;
-s/\bLSOCK_CODgram\b/ACE_LSOCK_CODgram/g;
-s/\bLSOCK_Connector\b/ACE_LSOCK_Connector/g;
-s/\bLSOCK_Dgram\b/ACE_LSOCK_Dgram/g;
-s/\bLSOCK_Stream\b/ACE_LSOCK_Stream/g;
-s/\bLocal_Memory_Pool\b/ACE_Local_Memory_Pool/g;
-s/\bLocation_Node\b/ACE_Location_Node/g;
-s/\bLog_Msg\b/ACE_Log_Msg/g;
-s/\bLog_Priority\b/ACE_Log_Priority/g;
-s/\bLog_Record\b/ACE_Log_Record/g;
-s/\bMalloc\b/ACE_Malloc/g;
-s/\bMalloc_Align\b/ACE_Malloc_Align/g;
-s/\bMalloc_Header\b/ACE_Malloc_Header/g;
-s/\bMalloc_Stats\b/ACE_Malloc_Stats/g;
-s/\bMap_Entry\b/ACE_Map_Entry/g;
-s/\bMap_Iterator\b/ACE_Map_Iterator/g;
-s/\bMap_Manager\b/ACE_Map_Manager/g;
-s/\bMem_Map\b/ACE_Mem_Map/g;
-s/\bMMAP_Memory_Pool\b/ACE_MMAP_Memory_Pool/g;
-s/\bMT_SYNCH\b/ACE_MT_SYNCH/g;
-s/\bMemory_Pool\b/ACE_Memory_Pool/g;
-s/\bMessage_Block\b/ACE_Message_Block/g;
-s/\bMessage_Queue\b/ACE_Message_Queue/g;
-s/\bMessage_Type\b/ACE_Message_Type/g;
-s/\bModule\b/ACE_Module/g;
-s/\bModule_Link\b/ACE_Module_Link/g;
-s/\bModule_Type\b/ACE_Module_Type/g;
-s/\bMultiplexor\b/ACE_Multiplexor/g;
-s/\bMutex\b/ACE_Mutex/g;
-s/\bNull_Condition\b/ACE_Null_Condition/g;
-s/\bNull_Mutex\b/ACE_Null_Mutex/g;
-s/\bNULL_SYNCH\b/ACE_NULL_SYNCH/g;
-s/\bObchunk\b/ACE_Obchunk/g;
-s/\bObject_Node\b/ACE_Object_Node/g;
-s/\bObstack\b/ACE_Obstack/g;
-s/\bOneshot_Acceptor\b/ACE_Oneshot_Acceptor/g;
-s/\bParse_Node\b/ACE_Parse_Node/g;
-s/\bProcess_Mutex\b/ACE_Process_Mutex/g;
-s/\bProfile_Timer\b/ACE_Profile_Timer/g;
-s/\bQ_Entry\b/ACE_Q_Entry/g;
-s/\bQueue\b/ACE_Queue/g;
-s/\bRW_Mutex\b/ACE_RW_Mutex/g;
-s/\bRaw_Data_Block\b/ACE_Raw_Data_Block/g;
-s/\bReactor\b/ACE_Reactor/g;
-s/\bReactor_Mask\b/ACE_Reactor_Mask/g;
-s/\bReactor_Token\b/ACE_Reactor_Token/g;
-s/\bRead_Guard\b/ACE_Read_Guard/g;
-s/\bRecursive_Lock\b/ACE_Recursive_Lock/g;
-s/\bRemove_Node\b/ACE_Remove_Node/g;
-s/\bRequest_Queue\b/ACE_Request_Queue/g;
-s/\bResume_Node\b/ACE_Resume_Node/g;
-s/\bSOCK\b/ACE_SOCK/g;
-s/\bSOCK_Acceptor\b/ACE_SOCK_Acceptor/g;
-s/\bSOCK_CODgram\b/ACE_SOCK_CODgram/g;
-s/\bSOCK_Connector\b/ACE_SOCK_Connector/g;
-s/\bSOCK_DGRAM\b/ACE_SOCK_DGRAM/g;
-s/\bSOCK_Dgram\b/ACE_SOCK_Dgram/g;
-s/\bSOCK_Dgram_Bcast\b/ACE_SOCK_Dgram_Bcast/g;
-s/\bSOCK_Dgram_Mcast\b/ACE_SOCK_Dgram_Mcast/g;
-s/\bSOCK_IO\b/ACE_SOCK_IO/g;
-s/\bSOCK_Stream\b/ACE_SOCK_Stream/g;
-s/\bSPIPE\b/ACE_SPIPE/g;
-s/\bSPIPE_Acceptor\b/ACE_SPIPE_Acceptor/g;
-s/\bSPIPE_Addr\b/ACE_SPIPE_Addr/g;
-s/\bSPIPE_Connector\b/ACE_SPIPE_Connector/g;
-s/\bSPIPE_IO\b/ACE_SPIPE_Stream/g;
-s/\bSPIPE_Msg\b/ACE_SPIPE_Msg/g;
-s/\bSString\b/ACE_SString/g;
-s/\bSV_Message\b/ACE_SV_Message/g;
-s/\bSV_Message_Queue\b/ACE_SV_Message_Queue/g;
-s/\bSV_Semaphore\b/ACE_SV_Semaphore/g;
-s/\bSV_Semaphore_Complex\b/ACE_SV_Semaphore_Complex/g;
-s/\bSV_Semaphore_Simple\b/ACE_SV_Semaphore_Simple/g;
-s/\bSV_Shared_Memory\b/ACE_SV_Shared_Memory/g;
-s/\bSemaphore\b/ACE_Semaphore/g;
-s/\bService_Config\b/ACE_Service_Config/g;
-s/\bService_Manager\b/ACE_Service_Manager/g;
-s/\bService_Object\b/ACE_Service_Object/g;
-s/\bService_Object_Type\b/ACE_Service_Object_Type/g;
-s/\bService_Record\b/ACE_Service_Record/g;
-s/\bService_Repository\b/ACE_Service_Repository/g;
-s/\bService_Repository_Iterator\b/ACE_Service_Repository_Iterator/g;
-s/\bService_Type\b/ACE_Service_Type/g;
-s/\bShared_Malloc\b/ACE_Shared_Malloc/g;
-s/\bShared_Malloc_MM\b/ACE_Shared_Malloc_MM/g;
-s/\bShared_Malloc_SV\b/ACE_Shared_Malloc_SV/g;
-s/\bShared_Memory\b/ACE_Shared_Memory/g;
-s/\bShared_Memory_Pool\b/ACE_Shared_Memory_Pool/g;
-s/\bShared_Object\b/ACE_Shared_Object/g;
-s/\bSig_Action\b/ACE_Sig_Action/g;
-s/\bSig_Handler\b/ACE_Sig_Handler/g;
-s/\bSig_Set\b/ACE_Sig_Set/g;
-s/\bSignalHandler\b/ACE_SignalHandler/g;
-s/\bSignalHandlerV\b/ACE_SignalHandlerV/g;
-s/\bSignal_Guard\b/ACE_Signal_Guard/g;
-s/\bSignal_Handler\b/ACE_Signal_Handler/g;
-s/\bStatic_Node\b/ACE_Static_Node/g;
-s/\bStr_Buf\b/ACE_Str_Buf/g;
-s/\bStream\b/ACE_Stream/g;
-s/\bStream_Head\b/ACE_Stream_Head/g;
-s/\bStream_Iterator\b/ACE_Stream_Iterator/g;
-s/\bStream_Modules\b/ACE_Stream_Modules/g;
-s/\bStream_Node\b/ACE_Stream_Node/g;
-s/\bStream_Tail\b/ACE_Stream_Tail/g;
-s/\bSTREAM_Type\b/ACE_STREAM_Type/g;
-s/\bSuspend_Node\b/ACE_Suspend_Node/g;
-s/\bSvc_Handler\b/ACE_Svc_Handler/g;
-s/\bSvc_Manager\b/ACE_Svc_Manager/g;
-s/\bSvc_Tuple\b/ACE_Svc_Tuple/g;
-s/\bSynch\b/ACE_Synch/g;
-s/\bSynch_Options\b/ACE_Synch_Options/g;
-s/\bTHR_FUNC\b/ACE_THR_FUNC/g;
-s/\bTLI\b/ACE_TLI/g;
-s/\bTLI_Acceptor\b/ACE_TLI_Acceptor/g;
-s/\bTLI_Connector\b/ACE_TLI_Connector/g;
-s/\bTLI_Stream\b/ACE_TLI_Stream/g;
-s/\bTask\b/ACE_Task/g;
-s/\bThread\b/ACE_Thread/g;
-s/\bThread_Control\b/ACE_Thread_Control/g;
-s/\bThread_Manager\b/ACE_Thread_Manager/g;
-s/\bThread_Mutex\b/ACE_Thread_Mutex/g;
-s/\bThread_Spawn\b/ACE_Thread_Spawn/g;
-s/\bThread_Specific\b/ACE_Thread_Specific/g;
-s/\bThru_Task\b/ACE_Thru_Task/g;
-s/\bTime_Value\b/ACE_Time_Value/g;
-s/\bTimer_Handle\b/ACE_Timer_Handle/g;
-s/\bTimer_Queue\b/ACE_Timer_Queue/g;
-s/\bToken\b/ACE_Token/g;
-s/\bTrace\b/ACE_Trace/g;
-s/\bTry_Guard\b/ACE_Try_Guard/g;
-s/\bTyped_SV_Message\b/ACE_Typed_SV_Message/g;
-s/\bTyped_SV_Message_Queue\b/ACE_Typed_SV_Message_Queue/g;
-s/\bUNIX_Addr\b/ACE_UNIX_Addr/g;
-s/\bUPIPE\b/ACE_UPIPE/g;
-s/\bUPIPE_Addr\b/ACE_UPIPE_Addr/g;
-s/\bUPIPE_Stream\b/ACE_UPIPE_Stream/g;
-s/\bUPIPE_Acceptor\b/ACE_UPIPE_Acceptor/g;
-s/\bUPIPE_Connector\b/ACE_UPIPE_Connector/g;
-s/\bWrite_Guard\b/ACE_Write_Guard/g;
-s@ace/ACE_@ace/@g;
diff --git a/bin/run_all.pl b/bin/run_all.pl
deleted file mode 100755
index dfa4841262c..00000000000
--- a/bin/run_all.pl
+++ /dev/null
@@ -1,224 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# -*- perl -*-
-# $Id$
-#
-# This script execute the test programs (usually, other scripts) in
-# the RUN_LIST defined below. If it detects any problem it send email.
-#
-# This script requires ActivePerl for Win32 and libnet from CPAN.
-#
-# Usage: run_all.pl <log directory> <admin email address>
-#
-# For example: run_all.pl /tmp/log peter_pan@neverland.org
-
-use Net::SMTP;
-use File::Basename;
-use FileHandle;
-require POSIX;
-
-push @INC, $ENV{'ACE_ROOT'}.'/bin';
-require run_all_list;
-
-# Find out the command name.
-$CMD = basename($0);
-
-$single_threaded = 0;
-$minimum_corba = 0;
-$dont_run = 0;
-$report_success = 0;
-$debug = 0;
-$ami=0
-@ARGS = ();
-while ($#ARGV >= 0) {
- if (!($ARGV[0] =~ m/-/)) {
- push @ARGS, $ARGV[0];
- shift;
- } elsif ($ARGV[0] eq "-single_threaded") {
- $single_threaded = 1;
- shift;
- } elsif ($ARGV[0] eq "-minimum_corba") {
- $minimum_corba = 1;
- shift;
- } elsif ($ARGV[0] eq "-ami") {
- $ami = 1;
- shift;
- } elsif ($ARGV[0] eq "-report_success") {
- $report_success = 1;
- shift;
- } elsif ($ARGV[0] eq "-debug") {
- $debug = 1;
- shift;
- }
-}
-
-# We obtain our revision to report errors.
-$REVISION='$Revision$ ';
-
-# Extract configuration information from command line.
- # TODO: Some validation and checking should be done here.
-$LOGDIR = $ARGS[0];
-$ADMIN = $ARGS[1];
-$MAIL = "mail";
-if ($#ARGS >= 2) {
- $MAIL = $ARGS[2];
-}
-
-$disable_file = $LOGDIR . '/.disable';
-$histfile = $LOGDIR . '/history';
-$LOGBASE = POSIX::strftime("%b%d_%Y.log", localtime);
-$LOGFILE = $LOGDIR . '/' . $LOGBASE;
-$HOST = `hostname`;
-chop $HOST;
-$LOG_NAME = $HOST . "_" . $BUILD . "_" . $LOGBASE;
-$STATUS = "OK";
-
-sub report_errors {
- # Now send a summary of the errors to the ADMIN account...
- local $to = $ADMIN;
-
- open (MAIL, "|".$MAIL.' -s [AUTO_COMPILE] '.$to)
- || die "Cannot open mail pipe for: $_\n";
-
- print MAIL 'The following message is brought to you by: ', "\n";
- print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
-
- local $m;
- foreach $m (@_) {
- print MAIL $m, "\n";
- }
-
- print MAIL "\nPlease check the following log for more info:\n\n";
- print MAIL 'http://www.cs.wustl.edu/~bugzilla/auto_compile_logs/',
- $LOG_NAME, "\n\n";
-
- close (MAIL); # Ignore errors....
-
-# # Now send the complete log to bugzilla...
-# local $bugs = 'bugzilla'.'@cs.wustl.edu';
-# open (MAIL, "|".$MAIL.' -s AUTO_COMPILE_LOG='.$LOG_NAME.' '.$bugs)
-# || die "Cannot open mail pipe for: $LOG_NAME\n";
-
-# print MAIL 'This is the log for: ', "\n";
-# print MAIL $CMD, ' [', $REVISION, "] for $BUILD on $CHECKOUT\n";
-
-# print MAIL "\n================================================================\n";
-
-# if (open (THELOG, "$LOGFILE"))
-# {
-# while (<THELOG>) {
-# print MAIL $_;
-# }
-# close (THELOG);
-# }
-# close (MAIL); # Ignore errors....
-}
-
-### MAIN FUNCTION
-
-$histfile = $LOGDIR . '/history';
-open(HIST, '>>' . $histfile)
- # Do not use 'die' to report the problem, it tries to use HIST....
- || die "cannot open history file \"$histfile\"\n";
-
-$date = localtime;
-
-print HIST $CMD, ': running at ', $date, ' ';
-
-if (-f $disable_file) {
- print HIST "DISABLED\n";
- exit 0;
-}
-
-open (DISABLE, '>' . $disable_file)
- || die "cannot open disable file";
-print DISABLE "auto_compile <$date> is running\n";
-close (DISABLE)
- || die "cannot close disable file";
-
-$LOGFILE = $LOGDIR . '/' . POSIX::strftime("%b%d_%Y.log", localtime);
-open(LOG, '>' . $LOGFILE)
- || die "cannot open log file";
-
-LOG->autoflush ();
-
-@failures = ();
-
-if ($dont_run == 0) {
- @LIST = @RUN_LIST;
- if ($single_threaded) {
- @LIST = @SINGLE_THREADED_LIST;
- } elsif ($minimum_corba) {
- @LIST = @MINIMUM_CORBA_LIST;
- } elsif ($ami) {
- @LIST = @AMI_CORBA_LIST;
- }
-
- $DIR = $ENV{'PWD'};
- foreach $i (@LIST) {
- local @test_info = split (/\ \,\ /, $i);
- local $directory = $test_info[0];
- local $program = $test_info[1];
-
- $date = localtime;
- print LOG "$CMD: =============================================\n";
- print LOG "$CMD: running $program in $directory at ", $date, "\n";
- local $subdir = $DIR . '/' . $directory;
- chdir ($subdir)
- || die "cannot chdir to $subdir";
-
- $run_error = 0;
- if (open(RUN, "perl $program 2>&1 |") == 0) {
- push @failures, "cannot run $program in $directory";
- next;
- }
- while (<RUN>) {
- print LOG $_;
- if (m/Error/
- || m/FAILED/
- || m/EXCEPTION/
- || m/pure virtual /i) {
- if ($STATUS eq "OK") {
- $STATUS = "RUNTIME ERROR";
- }
- $run_error = 1;
- }
- }
- if (close(RUN) == 0) {
- if ($STATUS eq "OK") {
- $STATUS = "RUNTIME ERROR";
- }
- push @failures, "Error when closing pipe for $program in $directory";
- next;
- }
- $date = localtime;
- print LOG "$CMD: $program finished ", $date, "\n";
-
- if ($run_error != 0) {
- push @failures,
- "errors detected while running $program in $directory";
- }
- }
-}
-
-if ($#failures >= 0) {
- report_errors @failures;
-}
-
-close(LOG)
- || die "cannot close LOGFILE";
-
-print HIST "$STATUS\n";
-close(HIST)
- || die "cannot close history file";
-
-unlink $disable_file
- || die "cannot unlink disable file";
-
-if ($report_success) {
- report_errors "Congratulations: No errors or warnings detected\n";
-}
-
-exit 0;
diff --git a/bin/run_all_win32.pl b/bin/run_all_win32.pl
deleted file mode 100755
index 84021c3a8d9..00000000000
--- a/bin/run_all_win32.pl
+++ /dev/null
@@ -1,180 +0,0 @@
-# -*- perl -*-
-# $Id$
-#
-# This script execute the test programs (usually, other scripts) in
-# the RUN_LIST defined below. If it detects any problem it send email.
-#
-# This script requires ActivePerl for Win32 and libnet from CPAN.
-#
-# Usage: run_all_win32.pl <log directory> <admin email address>
-#
-# For example: run_all_win32.pl c:\log peter_pan@neverland.org
-
-use Net::SMTP;
-use File::Basename;
-use FileHandle;
-require POSIX;
-
-use lib "$ENV{ACE_ROOT}/bin";
-require run_all_list;
-
-# This is the module we will checkout, someday someone could define a
-# smaller module.
-$MODULE='ACE_wrappers';
-
-# The following are for redirecting execution results to temporary files.
-$exe_log_name='run_test.log'; # Name of the tempfile used.
-
-# If using 'sh'.
-$sh_cmd="c:/bin/sh ";
-$sh_redirection=" > $exe_log_name 2>&1";
-
-#if using '4nt', 4nt is not quite working yet.
-$four_nt_cmd="d:/Utils/4NT301/4NT.EXE ";
-$four_nt_redirection=" >& $exe_log_name";
-
-# Pick the one your like.
-$shell_invoke = $sh_cmd;
-$redirect_output = $sh_redirection;
-
-# We obtain our revision to report errors.
-#$REVISION='$Revision$';
-
-# Find out the command name.
-$CMD = basename($0);
-
-# Extract configuration information from command line.
-# TODO: Some validation and checking should be done here.
-$LOGDIR = $ARGV[0];
-$ADMIN = $ARGV[1];
-
-# When an error is found we try to die gracefully and send some email
-# to ADMIN.
-
-$disable_file = $LOGDIR . '/.disable';
-
-sub mywarn {
- local @msg = @_;
-
- # Need more error checking here.
-
- $smtp = Net::SMTP->new('mail.cs.wustl.edu');
- $smtp->mail( "$ADMIN" ); # sender's address
- $smtp->to("$ADMIN"); # recipient's address
- $smtp->data(); # Start the mail
-
- # Mail Header
- $smtp->datasend("To: $ADMIN\n");
- $smtp->datasend("Subject: Auto run results\n");
- $smtp->datasend("From: $ADMIN\n");
- $smtp->datasend("\n");
-
- # Now the message body
- $smtp->datasend ('The following message is brought to you by: ', "\n");
- $smtp->datasend ("$CMD, [ $REVISION ] for $BUILD on $CHECKOUT\n\n");
-
- local $m;
- foreach $m (@msg) {
- $smtp->datasend ("$m \n");
- }
-
- $smtp->datasend ("\nPlease check log files for more info\n");
-
- $smtp->dataend(); # Finish sending the mail
- $smtp->quit; # Close the SMTP connection
-}
-
-sub mydie {
- mywarn @_;
- print HIST 'FAILED', "\n";
- unlink $disable_file
- || die "cannot unlink disable file";
- exit 0;
-}
-
-### MAIN FUNCTION
-
-### MAIN FUNCTION
-
-$histfile = $LOGDIR . '/history';
-open(HIST, '>>' . $histfile)
- # Do not use 'mydie' to report the problem, it tries to use HIST....
- || die "cannot open history file \"$histfile\"\n";
-
-$date = localtime;
-
-print HIST $CMD, ': running at ', $date, ' ';
-
-if (-f $disable_file) {
- print HIST "DISABLED\n";
- exit 0;
-}
-
-open (DISABLE, '>' . $disable_file)
- || mydie "cannot open disable file";
-print DISABLE "auto_compile <$date> is running\n";
-close (DISABLE)
- || mydie "cannot close disable file";
-
-$LOGFILE = $LOGDIR . '/' . POSIX::strftime("%b%d_%Y.log", localtime);
-open(LOG, '>' . $LOGFILE)
- || mydie "cannot open log file";
-
-LOG->autoflush ();
-
-foreach $i (@RUN_LIST) {
- local @test_info = split (/\ \,\ /, $i);
- local $directory = $test_info[0];
- local $program = $test_info[1];
- print "$directory, $program\n";
-
- $date = localtime;
- print LOG "$CMD: =============================================\n";
- print LOG "$CMD: running $program in $directory at ", $date, "\n";
- local $subdir =
- $ENV{ACE_ROOT} . '/'. $directory;
- chdir ($subdir)
- || mydie "cannot chdir to $subdir";
-
- $run_error = 0;
-
- system ($shell_invoke . " " . $program . " " . $redirect_output);
-
- open (RUN, "$exe_log_name") || push @failures, "Can't open execution log file $exe_log_name\n";
-
- while (<RUN>) {
- print LOG $_;
- if (m/^Error/ || m/FAILED/ || m/EXCEPTION/) {
- $run_error = 1;
- }
- }
- if (close(RUN) == 0) {
- push @failures, "Error when closing log file $program in $directory";
- next;
- }
- $date = localtime;
- print LOG "$CMD: $program finished ", $date, "\n";
-
- if ($run_error != 0) {
- push @failures,
- "errors detected while running $program in $directory";
- }
-
- unlink ("$exe_log_name");
-}
-
-if ($#failures >= 0) {
- mydie @failures;
-}
-
-close(LOG)
- || mydie "cannot close LOGFILE";
-
-print HIST "OK\n";
-close(HIST)
- || mydie "cannot close history file";
-
-unlink $disable_file
- || mydie "cannot unlink disable file";
-
-exit 0;
diff --git a/bin/sandbox.cpp b/bin/sandbox.cpp
deleted file mode 100644
index fce69dedcb6..00000000000
--- a/bin/sandbox.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-//
-// $Id$
-//
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <unistd.h>
-#include <signal.h>
-#include <sys/wait.h>
-#include <sys/types.h>
-
-/// Run by the child process
-static int child(int argc, char* argv[]);
-
-static int max_child_time = 300;
-const char *child_name = 0;
-
-static int parse_args(int& argc, char* argv[]);
-
-int
-main(int argc, char* argv[])
-{
- if (parse_args(argc, argv) != 0)
- return 1;
-
- pid_t pid = fork();
- if (pid == -1) {
- fprintf(stderr, "Error in fork\n");
- return 1;
- }
-
- if (pid == 0) {
- // In the child...
- return child(argc, argv);
- }
-
- int status;
- pid_t child = waitpid(pid, &status, 0);
- if (child == -1) {
- fprintf(stderr, "sandbox: error waiting for child\n");
- return 1;
- }
- // Return whatever status the child has...
- return status;
-}
-
-sig_atomic_t child_died = 0;
-
-extern "C" void
-sigchld_handler(int signal)
-{
- child_died = 1;
-}
-
-
-static int
-child (int /* argc */, char* argv[])
-{
- // The child becomes its own session, implicitly this turns the
- // child process into its own process group leader, allowing us to
- // terminate a hierarchy of children easily.
- pid_t sid = setsid();
- if (sid == -1)
- {
- fprintf(stderr, "sandbox: error in setid\n");
- return 1;
- }
-
- // Setup the signal handler to receive SIGCHLD signals:
- (void) signal(SIGCHLD, sigchld_handler);
-
- // Now we must fork again to wait for the grandchild process...
-
- pid_t grandchild = fork();
- if (grandchild == 0) {
- // Exec the arguments...
- int r = execvp(child_name, argv);
- if (r == -1) {
- fprintf(stderr, "sandbox: error in execvp()\n");
- return 1;
- }
- }
-
- // As the process leader we wait until the child returns or there is
- // a timeout...
-
- int status;
- int remaining_time = max_child_time;
-
- while (remaining_time != 0)
- {
- // We use the signal handler to return from sleep before all the
- // time expires
- remaining_time = sleep(remaining_time);
-
- // We could exit
- if (child_died)
- {
- pid_t child = waitpid(grandchild, &status, WNOHANG);
- if (child == -1)
- {
- fprintf(stderr,
- "sandbox: no grandchild process (%d), panic\n",
- grandchild);
- return 1;
- }
- if (child != 0)
- {
- //printf("sandbox: grandchild %d exits with status %d\n",
- // child, status);
- return status;
- }
- }
- }
-
- printf("sandbox: timeout for grandchild %d\n", grandchild);
-
- // timeout, try to kill the child
- (void) kill(grandchild, SIGTERM);
-
- // Second chance, if the child does not die, then really kill it:
- pid_t killed = waitpid(grandchild, &status, WNOHANG);
- if (killed == 0)
- {
- // TERM did not work, use the heavy duty signal
- (void) kill(grandchild, SIGQUIT); sleep(1);
- killed = waitpid(grandchild, &status, WNOHANG);
- }
- if (killed == -1)
- {
- fprintf(stderr, "No such child (%d), panic\n",
- grandchild);
- return 1;
- }
- sleep(1);
-
- printf("sandbox: killing session %d\n", sid);
-
- // OK, now commit suicide, kill the session ID and all their friends
- (void) killpg(sid, SIGQUIT);
- fprintf(stderr, "sandbox: ooops! I should be dead!\n");
-
- return 1;
-}
-
-static int
-parse_args(int &argc, char* argv[])
-{
- if (argc < 3) {
- fprintf(stderr, "Usage: sandbox max_time program arguments\n");
- return 1;
- }
-
- max_child_time = atoi(argv[1]);
- child_name = argv[2];
- argc -= 2;
- for (int i = 0; i != argc; ++i)
- {
- argv[i] = argv[i + 2];
- }
- argv[argc] = 0;
-
- if (child_name == 0)
- return 1;
-
- return 0;
-}
diff --git a/bin/show_log_dir.pl b/bin/show_log_dir.pl
deleted file mode 100755
index 0aee8dc61a9..00000000000
--- a/bin/show_log_dir.pl
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/usr/bin/perl
-#
-# $Id$
-#
-
-use Cwd;
-
-# Customize the following variables for your installation
-
-# The URL prefix that should be generated for each log file
-$BASE_URL='http://doc.ece.uci.edu/~bugzilla/auto_compile_logs';
-
-# The real location of the logs
-$BASE_DIR='/home/bugzilla/.www-docs/auto_compile_logs';
-
-# The subdirectories that contain logs, all other directories are ignored
-@KNOWN_DIRS= ('balar_Minimum',
- 'doc_KCC',
- 'kelvar_Static',
- 'sirion_Full',
- 'tango_Core',
- 'tango_Exceptions'
- );
-
-# After customizing the variables above, you must remove or comment
-# out the following code
-print "Content-Type: text/html\n\n";
-print "Error: You must customize this script before installation\n";
-exit (0);
-
-# END OF CUSTOMIZABLE SECTION
-
-$title = $ENV{QUERY_STRING};
-
-### Set up the directory for the configs we support
-
-@matches = grep {/^$title$/} @KNOWN_DIRS;
-
-if ($#matches == -1) {
- print "Content-Type: text/html\n\n";
- print "Error: Unknown config: $title\n";
- exit (0);
-}
-
-$dir = $title;
-
-### Get the directory list
-
-if (!opendir (DIR, "$BASE_DIR/$dir"))
-{
- print "Content-Type: text/html\n\n";
- print "Error Could not open $dir<br>$!";
- exit (1);
-}
-
-@log_files = grep !/^\./, readdir (DIR);
-closedir (DIR);
-
-############################################################################
-####
-sub one_liner ($$)
-{
- my $basename = shift;
- my $datetime = shift;
-
- my @months = qw (blank January February March April May June July August
- September October November December);
- ### Decode the time/date
-
- if ($datetime =~ /(.{4}?)_(.{2}?)_(.{2}?)_(.{2}?)_(.{2}?)/) {
- $datetime = "$months[$2] $3 at $4\:$5";
- }
-
- return "$title build for $datetime : "
- . "<a href = \"$BASE_URL/$dir/$basename.txt\">[TXT]</a> "
- . "<a href = \"$BASE_URL/$dir/$basename.html\">[HTML]</a> "
- . "<a href = \"$BASE_URL/$dir/$basename\_brief.html\">[Brief]</a>";
-}
-
-sub log_detail ($$)
-{
- my $basename = shift;
- my $datetime = shift;
- my $string = "";
-
- if (!open (LOG, "<$BASE_DIR/$dir/$basename\_brief.html")) {
- return "Error: Could not open $dir/$basename\_brief.html";
- }
-
- while (<LOG>) {
- if (/^Compiler Totals: Errors: (\d*) Warnings: (\d*)/) {
- if ($1 > 0) {
- $string = $string."<font
-color=\"FF0000\">".$_."</font><br>";
- }
- elsif ($2 > 0) {
- $string = $string."<font
-color=\"FF7700\">".$_."</font><br>";
- }
- else {
- $string = $string.$_."<br>";
- }
- }
-
- if (/^Test Failures: (\d*)/) {
- if ($1 > 0) {
- $string = $string."<font
-color=\"FF0000\">".$_."</font><br>";
- }
- else {
- $string = $string.$_."<br>";
- }
- }
- }
-
- close (LOG);
-
- return $string;
-}
-
-############################################################################
-####
-
-print "Content-Type: text/html\n\n";
-
-print <<HEADER;
-<html>
-<head>
-<title>Nightly Build Results for $title</title>
-</head>
-HEADER
-
-print "<body bgcolor=\"#FFFFFF\">\n";
-
-print "<h1>Nightly Build Results for $title</h1>\n";
-
-### Remove all non-logs from the list
-
-@new_logs = ();
-foreach $log (@log_files) {
- if ($log =~ /_brief.html$/) {
- push @new_logs, ($log);
- }
-}
-@log_files = @new_logs;
-
-### Sort in reverse order, so the latest date comes first
-
-@log_files = sort {$b cmp $a} @log_files;
-
-### Print out latest log
-
-$latest = shift @log_files;
-
-print "<h2>Latest Log</h2>";
-$latest =~ /(.*)_brief\.html/;
-
-print log_detail ("$1", $1)."<br>";
-print one_liner ("$1", $1);
-
-### Print out a list of the files
-
-print "<h2>Old Logs</h2>";
-print "<ul>\n";
-foreach $log (@log_files) {
- if ($log =~ /(.*)_brief\.html$/) {
- my $basename = $1;
-
- $log =~ /(.*)_brief\.html/;
-
- print "<li> ".one_liner ($basename, $1)."\n";
- }
-}
-print "</ul>\n";
-
-print "<a href = \"../\">Back</a>";
-print "</body>\n";
-print "</html>\n";
diff --git a/bin/split-cpp b/bin/split-cpp
deleted file mode 100755
index 513c52a946c..00000000000
--- a/bin/split-cpp
+++ /dev/null
@@ -1,422 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}'
- & eval 'exec perl -w -S $0 $argv:q'
- if 0;
-
-# Splits C++ source files into one file per function or data item.
-#
-# Author: David L. Levine, with much help and encouragment from
-# Umar Syyid and Gonzalo A. Diethelm.
-# Completed by Andrew Gilpin, July 2000
-# Date: 10 November 1998
-#
-# For each C++ source file:
-# 1) Extracts the "intro" code, i.e., #includes and declarations.
-# 2) Identifies function definitions, relying on {, and } at the
-# beginning of a line, to delineate the function begin and
-# end.
-#
-# Assumptions: (applies only to the files being split, i.e. .cpp files)
-# * Function definition bodies are terminated with } appearing at
-# the beginning of a line.
-# * Free-standing (outside of functions) macro invocations must be
-# followed by a blank line, or terminated with a semicolon.
-# * A function must not have a blank line between its header
-# (signature) and its body.
-# * There aren't multiple C-style comments on one line, with code
-# between them.
-# * typedefs are on a single line
-# * A #endif doesn't have a multi-line C comment starting on that line.
-
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-# Changes made by Andrew Gilpin (June - July 2000)
-# * Added option -c to use .c extension instead of .cpp extension
-# * Prints message when no filenames are specified on the command line
-# * Changed -? option to -h so that it works properly in most shells
-# * Added option -s to skip certain files, but copy them to $split_dir,
-# renaming them. (filename.cpp -> $split_dir/filename_S1.cpp). This is
-# here so that ACE can selectively not split certain files (namely those
-# that this script doesn't work with :)
-# * Added support for classes declared in the .cpp file.
-
-$usage="usage: $0 [-h] [-d] [-v] [-c] [-s filename] filenames\n";
-
-#### Configuration parameters.
-$verbose = 0;
-$debug = 0;
-$split_dir = 'SPLIT';
-$extension = 'cpp';
-@files_to_skip = ();
-
-#### Constants.
-$DIR_SEPARATOR = $^O eq "MSWin32" ? '\\' : '/';
-
-
-####
-#### Process command line args.
-####
-while ( $#ARGV >= $[ && $ARGV[0] =~ /^-/ ) {
- if ( $ARGV[0] eq '-d' ) {
- $debug = 1;
- } elsif ( $ARGV[0] eq '-v' ) {
- $verbose = 1;
- } elsif ( $ARGV[0] eq '-c' ) {
- $extension = 'c';
- } elsif ( $ARGV[0] eq '-s' ) {
- push @files_to_skip, $ARGV[1];
- shift;
- } elsif ( $ARGV[0] eq '-h' ) {
- print "$usage";
- exit;
- } else {
- print STDERR "$0: unknown option $ARGV[0]\n";
- die $usage;
- }
- shift;
-}
-
-
-&main ();
-
-
-####
-#### Reset state, to process a new file starting with a clean slate.
-####
-sub reset {
- #### Working data buffers.
- @intro = ();
- @current_comments = ();
- @current_code = ();
- @if = ();
- @save_if = ();
- @endif = ();
- @unknown = ();
- ####@unknown_s = ();
-
- #### State variables.
- $current_file_number = 0;
- $top_of_file = 1;
- $in_braces = 0;
- $in_nonfunction_code = 0;
- $in_C_comment = 0;
- $intro_length = 0;
- $preprocessor_continuation = 0;
- $preserved_ifs = 0;
-}
-
-
-sub main {
- #### Print error message if no files are specified.
- #### We need to do this before we modify anything on disk.
- die "No files specified!\n$usage" if (@ARGV == 0);
-
- #### Remove the destination subdirectory, if it exists.
- #### Attempts to clean it out using unlink may fail because
- #### it can have many files.
- if (-d "$split_dir") {
- system ("/bin/rm -r $split_dir") << 256 &&
- die "$0: unable to rm \"$split_dir\"\n";
- }
-
- #### Create the destination subdirectory.
- mkdir "$split_dir", 0755 ||
- die "$0: unable to create $split_dir directory: $!\n";
-
- MAIN_LOOP: foreach $file (@ARGV) {
- #### Strip off filename extension.
- ($basename = $file) =~ s/\.[^\.]+$//;
-
- foreach $skip_file (@files_to_skip) {
- if ($skip_file eq $file) {
- system ("/bin/cp $file $split_dir/" . $basename. "_S1\.$extension");
- next MAIN_LOOP;
- }
- }
-
- &reset ();
-
- print "FILE: $file\n" if $verbose;
- open INPUT, "$file" || die "$0: unable to open \"$file\"\n";
-
- while (<INPUT>) {
- #### Strip comments from $line and use that for processing.
- #### But, use $_ for output, so that comments will be preserved.
- my $line = $_;
-
- #### If we're in the midst of a multiline C comment, see
- #### if it's finished on this line.
- if ($in_C_comment) {
- if ($line =~ s%^.*\*/%%) {
- #### End C-style comment.
- $in_C_comment = 0;
-
- if ($line =~ /^\s*$/ && ! $in_braces) {
- #### No code on the line.
- #&save_comment ($_);
- next;
- }
- } else {
- unless ($in_braces) {
- #&save_comment ($_);
- next;
- }
- }
- }
-
- #### Strip C++-style comments.
- if ($line =~ s%\s*//.*$%%) {
- if ($line =~ /^\s*$/ && ! $in_braces) {
- #### C++-style comment, without any code on the line.
- #&save_comment ($_);
- next;
- }
- }
-
- #### And C-style comments.
- if ($line =~ m%/\*%) {
- #### Begin C-style comment. Strip any complete comment(s),
- #### then see what's left.
-
- $line =~ s%\s*/\*.*\*/\s*%%g;
-
- #### check to see if a preprocessor is on this line
- if (! $in_braces) {
- if ($line eq '') {
- #### The line just had comment(s). Save it.
- #&save_comment ($_);
- next;
- } else {
- #### There's other text on the line. See if it's just the
- #### start of a comment.
- if ($line =~ m%/\*% && $line !~ m%\*/%) {
- #### The C-style comment isn't terminated on this line.
- $in_C_comment = 1;
- #&save_comment ($_);
- next;
- }
- }
- }
- }
-
- #### For now, skip ACE_RCSID's. Eventually, we might want to
- #### consider putting them in _every_ file, if they're enabled.
- next if $line =~ /^ACE_RCSID/;
-
- if ($in_braces) {
- push @unknown, $_;
- if ($line =~ /{/) {
- ++$in_braces;
- } elsif ($line =~ /^};/) {
- #### }; at beginning of line could signify end of class
- --$in_braces;
- if ($in_braces == 0) {
- push @intro, @unknown;
- @unknown = ();
- }
- } elsif ($line =~ /^}/) {
- #### } at beginning of line signifies end of function.
- --$in_braces;
- push @current_code, @unknown;
- @unknown = ();
- &finish_current ($basename, ++$current_file_number);
- } elsif ($line =~ /};/) {
- #### end of multi-line data delcaration
- --$in_braces;
- if ($in_braces == 0) {
- push @current_code, @unknown;
- @unknown = ();
- &finish_current ($basename, ++$current_file_number);
- }
- }
- } else {
- #### Not in braces.
- if (($line =~ m%[^/]*{%) && (! $preprocessor_continuation)) {
- #### { signifies beginning of braces (obviously :).
- if ($line =~ /};/) {
- #### braces end on this line
- push @unknown, $_;
- push @current_code, @unknown;
- @unknown = ();
- &finish_current ($basename, ++$current_file_number);
- } else {
- push @unknown, $_;
- $in_braces = 1;
- $in_nonfunction_code = $top_of_file = 0;
- }
- } elsif ($line =~ /^}/) {
- warn "$0: skipping unexpected } on line $. of \"$file\"\n";
- next;
- } elsif ($line =~ /^typedef/) {
- push @intro, $_;
- } elsif ($line =~ /^\s*#/ || $preprocessor_continuation) {
- #### Preprocessor directive.
- if ($in_nonfunction_code) {
- push @unknown, $_;
- } else {
- push @intro, $_;
- }
- $top_of_file = 0;
- $preprocessor_continuation = /\\$/ ? 1 : 0;
-
- if ($line =~ m%^\s*#\s*if\s*(.*)(/.*)*$%) {
- push @save_if, $_;
- unshift @endif, "#endif /* $1 [Added by split-cpp.] */\n";
-
- } elsif ($line =~ /^\s*#\s*endif/) {
- #### End an #if/#else block.
- unless (defined pop @save_if) {
- pop @if;
- if ($preserved_ifs > 0) {
- --$preserved_ifs;
- }
- }
- shift @endif;
-
- #### } elsif ($line =~ /^\s*#/) {
- #### Any other preprocessor directive.
- }
-
- } elsif ($line =~ /^\s*$/) {
- #### Whitespace only, or empty line..
- push @current_code, "\n";
- if ($in_nonfunction_code) {
- #### In the midst of non-function code, we reached a
- #### blank line. Assume that we're done with it.
- &finish_current ($basename, ++$current_file_number);
- } else {
- #### Not in a function, so add to intro. Just in case data or
- #### a function follow it, flush now.
- $preserved_ifs += $#save_if + 1;
- &flush_current (\@intro);
- }
-
- } elsif ($line =~ /;/) {
- #### Data definition or semicolon-terminated macro invocation.
- push @unknown, $_;
- $top_of_file = 0;
-
- #### Is it file-static? Squash newlines out of @current_code.
- my $statement = join (' ', @current_code);
- if ($statement =~ /([^=[(]+)[=[(](.*)/) {
- if ($1 =~ /static/) {
- #### Move code to the intro.
- push @intro, @current_comments;
- @current_comments = ();
- &flush_current (\@intro);
-
- #### Not separate code.
- $in_nonfunction_code = 0;
-
- #### ???? Extract name from the left side and save for
- #### later matching.
- } else {
- if ($statement =~ /^USEUNIT\s*\(/) {
- #### Special-case those Borland USEUNIT things.
- &flush_current (\@intro);
- } else {
- #### Non-static entity, with semicolon. Wrap it up.
- push @current_code, @unknown;
- @unknown = ();
- &finish_current ($basename, ++$current_file_number);
- }
- }
- } else {
- #### Dunno. Wrap it up, anyways.
- push @current_code, @unknown;
- @unknown = ();
- &finish_current ($basename, ++$current_file_number);
- }
- } else {
- #### Beginning of data definition or function or class.
- push @unknown, $_;
- $in_nonfunction_code = 1;
- $top_of_file = 0;
- }
- }
-
- if (eof) {
- close (ARGV); #### To reset line number counter.
- if ($#intro > $intro_length) {
- #### Leftover prepreprocessor statement(s), such as #pragma
- #### instantiate.
- &finish_current ($basename, ++$current_file_number);
- }
- }
- }
-
- close INPUT;
- }
-};
-
-
-####
-#### Save a comment in the appropriate array.
-####
-#sub save_comment {
-# my ($comment) = @_;
-#
-# if ($top_of_file) {
-# push @intro, $comment;
-# } else {
-# push @current_comments, $comment;
-# }
-#}
-
-
-####
-#### Flush the contents of the @current_code array to the destination
-#### argument array. It is passed by reference.
-####
-sub flush_current {
- my ($destination) = @_;
-
- push @$destination, @current_code;
- @current_code = ();
-}
-
-
-####
-#### Flush what we've got now to an output (split) file.
-####
-sub finish_current {
- my ($basename, $current_file_number) = @_;
-
- my $current_file_name =
- sprintf "$split_dir$DIR_SEPARATOR${basename}_S%d.$extension",
- $current_file_number++;
-
- if ($verbose) {
- print "CURRENT OUTPUT FILE: $current_file_name\n";
- print "INTRO:\n";
- print @intro;
- print @if;
- print @current_comments;
- print "CURRENT CODE:\n";
- print @current_code;
- print @endif;
- }
-
- open OUTPUT, "> $current_file_name" ||
- die "unable to open $current_file_name\n";
-
- print OUTPUT "// Automatically generated by ACE's split-cpp.\n" .
- "// DO NOT EDIT!\n\n";
- if ($debug) {
- print OUTPUT "INTRO:\n", @intro, "IF:\n", @if,
- "COMMENTS:\n", @current_comments,
- "CURRENT:\n", @current_code, "ENDIF:\n", @endif;
- } else {
- print OUTPUT @intro, @if, @current_comments, @current_code, @endif;
- }
-
- close OUTPUT;
-
- #### For detection of leftover preprocessor statements and
- #### comments at end of file.
- $intro_length = $#intro;
-
- @current_comments = @current_code = @save_if = ();
- $in_braces = $in_nonfunction_code = 0;
-}
diff --git a/bin/tao_env.pl b/bin/tao_env.pl
deleted file mode 100755
index 0ac889ef308..00000000000
--- a/bin/tao_env.pl
+++ /dev/null
@@ -1,17 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -pi -S $0 ${1+"$@"}'
- & eval 'exec perl -pi -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# You may want to run the "find" command with this script, which maybe
-# something like this:
-#
-# find . -type f \( -name "*.i" -o -name "*.h" -o -name "*.C" -o -name "*.cc" -o -name "*.c" -o -name "*.cpp" -o -name "*.hpp" -o -name "*.ipp" \) -print | xargs $ACE_ROOT/bin/auto_ptr.perl
-
-# The first three lines above let this script run without specifying the
-# full path to perl, as long as it is in the user's PATH.
-# Taken from perlrun man page.
-
-s/^_env/TAO_IN_ENV/;
-s/([^_A-Za-z])_env/$1TAO_IN_ENV/g;
diff --git a/bin/tao_svcconf.pl b/bin/tao_svcconf.pl
deleted file mode 100755
index 56d05830f59..00000000000
--- a/bin/tao_svcconf.pl
+++ /dev/null
@@ -1,15 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -pi -S $0 ${1+"$@"}'
- & eval 'exec perl -pi -S $0 $argv:q'
- if 0;
-
-# $Id$
-#
-# This script can help you convert TAO svc.conf using dynamic services
-# to use static services.
-#
-# You may want to run the "find" command with this script, which maybe
-# something like this:
-#
-# find . -name svc.conf -print | xargs $ACE_ROOT/bin/tao_svcconf.pl
-
-s/^ *dynamic *([A-Za-z_]+) [^\"]+(\"[^\"]+\").*/static $1 $2/;
diff --git a/bin/update-ace+tao.sh b/bin/update-ace+tao.sh
deleted file mode 100755
index 954756bcaa1..00000000000
--- a/bin/update-ace+tao.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh
-# Update ACE/TAO source tree to the latest numeric-assigned version.
-# $Id$
-
-# Define helper function to extract version number into tag format
-d='\([0-9]*\)'
-version() { sed -n -e "s,.*$1 version $d\.$d\.$d.*,$1-\1_\2_\3,p" \
- -e "s,.*$1 version $d\.$d.*,$1-\1_\2,p"; }
-
-# Use ccvs instead of cvs since it supports SOCKS5, if that environment found.
-if [ ! -z "$SOCKS5_USER" ]; then cvs () { ccvs $*; } fi
-
-old_ace_version=`version <VERSION ACE`
-old_tao_version=`version <TAO/VERSION TAO`
-
-# Abort with message if no values in variables
-if [ -z $old_ace_version ]; then echo No existing ACE version; exit 1; fi
-if [ -z $old_tao_version ]; then echo No existing TAO version; exit 1; fi
-
-cvs update -A VERSION TAO/VERSION Makefile
-
-ace_version=`version <VERSION ACE`
-tao_version=`version <TAO/VERSION TAO`
-
-# Abort with message if no values in variables
-if [ -z $ace_version ]; then echo No ACE version after update; exit 1; fi
-if [ -z $tao_version ]; then echo No TAO version after update; exit 1; fi
-
-echo Old software version tags: $old_ace_version $old_tao_version
-echo New software version tags: $ace_version $tao_version
-
-# Conserve net bandwidth if no change was observed
-if [ $old_ace_version != $ace_version ] || [ x"$1"x = x"force"x ]; then
- cvs -q update -Pd -r $ace_version `make -s show_controlled_files`
-fi
-if [ $old_tao_version != $tao_version ] || [ x"$1"x = x"force"x ]; then
- cvs -q update -Pd -r $tao_version TAO
-fi
-
diff --git a/bin/vc_filter.pl b/bin/vc_filter.pl
deleted file mode 100755
index 003fa8ddca9..00000000000
--- a/bin/vc_filter.pl
+++ /dev/null
@@ -1,157 +0,0 @@
-# $Id$
-#
-# A perl script that filers length VC output into a concise html report.
-
-$usage = "vc_filter.pl [-c] <source>";
-
-# Define html tags.
-$header = "<html><head>
-<title>Error/Warning Summary of Daily Build</title>
-</head>
-
-<body bgcolor=\"white\">
-<h1>Error/Warning Summary of Daily Build</h1><TT>\n";
-$trailer = "</TT></body></html>";
-
-$kosher_b = "";
-$kosher_e = "";
-
-$error_b = "<FONT COLOR=\"FF0000\">";
-$error_e = "</FONT>";
-
-$warning_b = "<FONT COLOR=\"FF7700\">";
-$warning_e = "</FONT>";
-
-$config_b = "";
-$config_e = "";
-
-$new_build_b = "<P>";
-$new_build_e = "";
-$line_break = "<BR>";
-$brief = 0;
-$results = 0;
-
-while ( $#ARGV >= 0 && $ARGV[0] =~ /^-/ )
-{
- if ( $ARGV[0] =~ /-c/) # Text format
- {
- $header = "" ;
- $trailer = "" ;
- $kosher_b = "";
- $kosher_e = "";
-
- $error_b = "";
- $error_e = "";
-
- $warning_b = "";
- $warning_e = "";
-
- $config_b = "";
- $config_e = "";
-
- $new_build_b = "\n\n";
- $new_build_e = "";
- $line_break = "";
- }
- elsif ( $ARGV[0] =~ /-b/)
- {
- $brief = 1;
- }
- elsif( $ARGV[0] =~ /-r/)
- {
- $results = 1;
- }
- elsif ( $ARGV[0] =~ /-(\?|h)/)
- {
- print "Options\n";
- print "-b = Brief output (only errors)\n";
- print "-c = Text format\n";
- print "-r = Print only results\n";
- exit;
- }
- else
- {
- warn "$0: unknown option $ARGV[0]\n";
- die $usage;
- }
- shift;
-}
-
-# Get filename.
-$fname = $ARGV[0];
-open FP, "$fname";
-
-print $header;
-
-$project = "NULL";
-$configuration = "NULL";
-$dsp = "NULL";
-$first_problem = 1;
-$ignored_warnings = 0;
-
-restart: while (<FP>)
-{
- if (/^Auto_compiling (.*)/)
- {
- print "$new_build_b$_$new_build_e$line_break"
- if (!$brief && !$results);
- $dsp = $1;
- $first_problem = 1;
- }
- elsif (/^--------------------Configuration: (.*) - (.*)--------------------/)
- {
- print $config_b.$_.$new_build_e.$line_break
- if (!$brief && !$results);
- $project = $1;
- $configuration = $2;
- $first_problem = 1;
- }
- elsif (/\- (.*) error\(s\)\, (.*) warning\(s\)/)
- {
- print "$_$line_break"
- if (!$brief
- || ($results && ($1 > 0 || ($2 - $ignored_warnings) > 0)));
- $ignored_warnings = 0;
- }
- elsif (/^LINK : warning LNK4089:/)
- {
- print "$_$line_break"
- if (!$brief);
-
- ++$ignored_warnings;
- }
- elsif (/warning/i)
- {
- if (!$results)
- {
- if ($first_problem && $brief)
- {
- print "$config_b----- $dsp$config_e$line_break";
- print "$config_b-------------------- $project: $configuration$config_e$line_break";
- }
- $first_problem = 0;
- print "$warning_b$_$warning_e$line_break";
- }
- }
- elsif (/error/i)
- {
- if (!$results)
- {
- if ($first_problem && $brief)
- {
- print "$config_b----- $dsp$config_e$line_break";
- print "$config_b-------------------- $project: $configuration$config_e$line_break";
- }
- $first_problem = 0;
- print "$error_b$_$error_e$line_break";
- }
- }
- else
- {
- print "$_$line_break"
- if (!$brief && !$results);
- }
-
-}
-
-print $trailer;
diff --git a/bin/vxworks_modify.pl b/bin/vxworks_modify.pl
deleted file mode 100755
index 20017047f16..00000000000
--- a/bin/vxworks_modify.pl
+++ /dev/null
@@ -1,562 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# ******************************************************************
-# Author: Chad Elliott (elliott_c@ociweb.com)
-# Date: 8/14/2000
-# $Id$
-# Description: Modify c++ source for combination with other source
-# files into a VxWorks module.
-# ******************************************************************
-
-# ******************************************************************
-# Pragma Section
-# ******************************************************************
-
-use strict;
-use File::Basename;
-
-# ******************************************************************
-# Data Section
-# ******************************************************************
-
-my($name) = "";
-my(@types) = ("short", "int", "long", "unsigned", "size_t",
- "char", "float", "double", "void",
- "CORBA::Boolean", "CORBA::Short", "CORBA::UShort",
- "CORBA::Long", "CORBA::ULong", "CORBA::Octet",
- "CORBA::Char", "CORBA::WChar", "CORBA::LongLong",
- "CORBA::ULongLong", "CORBA::Float", "CORBA::Double",
- "CORBA::LongDouble", "CORBA::Environment",
- );
-
-# **************************************************************
-# Subroutine Section
-# **************************************************************
-
-sub needsToBeStatic {
- my($line) = shift;
- $line =~ s/^\s+//;
- $line =~ s/\s+$//;
-
- if ($line !~ /\s*static\s+/) {
- foreach my $type (@types) {
- if ($line =~ /^(const\s+)?$type\s*[\*]*[\&]*\s*[^:]+/ ||
- $line =~ /^(const\s+)?$type\s*[\*]*[\&]*$/) {
- return 1;
- }
- }
- }
-}
-
-
-sub countChar {
- my($line) = shift;
- my($char) = shift;
- my($len) = length($line);
- my($count) = 0;
- my($indouble) = 0;
- my($insingle) = 0;
-
- for(my $i = 0; $i < $len; $i++) {
- my($ch) = substr($line, $i, 1);
- if ($char ne '"' && $ch eq '"') {
- $indouble ^= 1;
- }
- elsif ($char ne '\'' && $ch eq '\'') {
- $indouble ^= 1;
- }
- elsif ($ch eq $char && !$indouble && !$insingle) {
- $count++;
- }
- }
- return $count;
-}
-
-
-my($orbManager) = undef;
-sub lookForOrbRun {
- my($line) = shift;
- my($status) = 0;
-
- if ($line =~ /([\w:\-\>\.\(\)]+)->run\s*\(.*\)/ ||
- $line =~ /.*orb.*\.run/ ||
- (defined $orbManager && ($line =~ /$orbManager.run/ ||
- $line =~ /$orbManager->run/))) {
- $status = 1;
- }
- return $status;
-}
-
-
-sub modifyOrbRun {
- my($line) = shift;
- if (defined $orbManager && $line =~ /$orbManager/ &&
- $line =~ /(.*->run\s*\()([^\)]*)(\).*)/) {
- my($p1) = $1;
- my($p2) = $2;
- my($p3) = $3;
-
- $p2 =~ s/^\s+//;
- $p2 =~ s/\s+$//;
-
- if ($p2 eq "") {
- $p2 = "TAO_default_environment()";
- }
-
- # I am relying on convention here
- if ($p2 !~ /,/ && $p2 =~ /env/i) {
- $line = "$p1$p2, TAO_TestCombinedThreads::getTimeout()$p3\n";
- }
- }
- elsif ($line =~ /(.*->run\s*\()([^\)]*)(\).*)/) {
- my($p1) = $1;
- my($p2) = $2;
- my($p3) = $3;
-
- $p2 =~ s/^\s+//;
- $p2 =~ s/\s+$//;
-
- # I am relying on convention here
- if ($p2 !~ /,/ && $p2 =~ /env/i) {
- $p3 = ", $p2$p3";
- $p2 = "";
- }
-
- if ($p2 eq "") {
- $line = $p1 . "TAO_TestCombinedThreads::getTimeout()" . "$p3\n";
- }
- }
- elsif ($line =~ /(.*\.run\s*\()([^\)]*)(\).*)/) {
- my($p1) = $1;
- my($p2) = $2;
- my($p3) = $3;
-
- $p2 =~ s/^\s+//;
- $p2 =~ s/\s+$//;
-
- if ($p2 eq "") {
- $p2 = "TAO_default_environment()";
- }
-
- # I am relying on convention here
- if ($p2 !~ /,/ && $p2 =~ /env/i) {
- $line = "$p1$p2, TAO_TestCombinedThreads::getTimeout()$p3\n";
- }
- }
- return $line;
-}
-
-
-sub lookForActivate {
- my($line) = shift;
- my($taskBase) = shift;
- if ($line =~ /(\w+)\.activate/) {
- $$taskBase = $1;
- }
-}
-
-my($orbInitArg) = 0;
-sub lookForOrbInit {
- my($line) = shift;
- my($status) = 0;
- if ($line =~ /CORBA::ORB_init\s*\(/) {
- $orbInitArg = 0;
- $status = 1;
- }
- return $status;
-}
-
-
-sub replaceOrbName {
- my($line) = shift;
- if ($orbInitArg < 3) {
- my($length) = length($line);
- my($previous) = 0;
- for(my $i = 0; $i < $length; $i++) {
- my($ch) = substr($line, $i, 1);
- if ($ch eq "," || $ch eq ")") {
- $orbInitArg++;
- if ($ch eq ")" && $orbInitArg == 2) {
- $orbInitArg = 3;
- $previous = $i;
- }
- if ($orbInitArg == 3) {
- my($size) = $i - $previous;
- my($part) = substr($line, $previous, $size);
- $part =~ s/^\s+//;
- $part =~ s/\s+$//;
- if ($part eq '""' || $part eq '0') {
- substr($line, $previous, $size) = " \"$name\"";
- }
- elsif ($part eq '') {
- substr($line, $previous, $size) = ", \"$name\"";
- }
- last;
- }
- $previous = $i + 1;
- }
- }
- }
- return $line;
-}
-
-
-my($initChildPOAArg) = 0;
-sub lookForInitChildPOA {
- my($line) = shift;
- my($status) = 0;
- if ($line =~ /init_child_poa\s*\(/) {
- $initChildPOAArg = 0;
- $status = 1;
- }
- return $status;
-}
-
-
-sub replaceChildOrbName {
- my($line) = shift;
- if ($initChildPOAArg < 4) {
- my($length) = length($line);
- my($previous) = 0;
- my($replace) = " TAO_TestCombinedThreads::getRandomString(" .
- "\"$name\").c_str()";
-
- for(my $i = 0; $i < $length; $i++) {
- my($ch) = substr($line, $i, 1);
- if ($ch eq "," || $ch eq ")") {
- $initChildPOAArg++;
- if ($initChildPOAArg == 4) {
- my($size) = $i - $previous;
- my($part) = substr($line, $previous, $size);
- # I am relying on convention here
- if ($part !~ /env/i) {
- substr($line, $previous, $size) = $replace;
- }
- else {
- substr($line, $previous, 0) = "$replace,\n";
- }
- last;
- }
- $previous = $i + 1;
- }
- }
- }
- return $line;
-}
-
-
-sub usageAndExit {
- my($str) = shift;
- if (defined $str) {
- print STDERR "$str\n";
- }
- print STDERR "Usage: " . basename($0) .
- " [-orbcore] [-unix] [-notimeout] [-main <main prefix>]\n" .
- " <input file> <output file>\n";
- exit(1);
-}
-
-
-sub modifyFileAttributes {
- my($orig) = shift;
- my($new) = shift;
- my(@buf) = stat($orig);
-
- if (defined $buf[0]) {
- utime($buf[8], $buf[9] + 1, $new);
- }
-}
-
-
-# **************************************************************
-# Main Section
-# **************************************************************
-
-my($useORBCore) = 0;
-my($useThreadM) = 0;
-my($unixDefines) = 0;
-my($useTimeouts) = 1;
-
-while(defined $ARGV[0] && $ARGV[0] =~ /^-/) {
- if ($ARGV[0] eq '-threadmanager') {
- $useThreadM = 1;
- shift;
- }
- elsif ($ARGV[0] eq '-orbcore') {
- $useORBCore = 1;
- shift;
- }
- elsif ($ARGV[0] eq '-unix') {
- $unixDefines = 1;
- shift;
- }
- elsif ($ARGV[0] eq '-main') {
- shift;
- if (defined $ARGV[0]) {
- $name = $ARGV[0];
- shift;
- }
- else {
- usageAndExit("-main requires a parameter");
- }
- }
- elsif ($ARGV[0] eq '-notimeout') {
- $useTimeouts = 0;
- shift;
- }
- else {
- usageAndExit("Unknown option: $ARGV[0]");
- }
-}
-
-## We should have an input and output file name at this point.
-if ($#ARGV != 1) {
- usageAndExit();
-}
-
-
-# **************************************************************
-# Get the basename and remove the .cpp
-# We will use this as the prefix to our main function
-# **************************************************************
-
-if ($name eq "") {
- $name = basename($ARGV[0]);
- $name =~ s/\.cpp//;
- $name =~ s/\-/_/g;
-}
-
-# **************************************************************
-# Read in the file and push it into an array. Then, print it
-# out when we are done modifying it.
-# **************************************************************
-
-my($status) = 0;
-if (open(IN, $ARGV[0])) {
- if (open(OUT, ">$ARGV[1]")) {
- my(@lines) = ();
- my($line) = "";
- if ($useThreadM) {
- while(<IN>) {
- $line = $_;
- $line =~ s/ACE_Thread\s*::\s*join/TAO_TestCombinedThreads::thr_join/g;
-# $line =~ s/^\s*template\s*class\s*.*;\s*$//g;
- push(@lines, $line);
- }
- unshift(@lines, "#include <tests/TestUtils/TestCombinedThreads.h>\n");
- }
- elsif ($useORBCore) {
- my($insideInstance) = 0;
- while(<IN>) {
- $line = $_;
-# $line =~ s/^\s*template\s*class\s*.*;\s*$//g;
- if ($line =~ /^TAO_ORB_Core_instance\s*\(.*\)/) {
- $insideInstance = 1;
- }
- if ($insideInstance && $line =~ /return\s+/) {
- $line = " // Find the orb for the thread that " .
- "registered the ORB id\n" .
- " TAO_ORB_Core* hack = orb_table->find(" .
- "TAO_TestCombinedThreads::getORBId());\n" .
- " if (hack != 0) {\n" .
- " return hack;\n" .
- " }\n\n" . $line;
- $insideInstance = 0;
- }
- push(@lines, $line);
- }
- unshift(@lines, "#include <tests/TestUtils/TestCombinedThreads.h>\n");
- }
- else {
- my($insideComment) = 0;
- my($insideParens) = 0;
- my($scope) = 0;
- my($orbrunFound) = 0;
- my($insideORB_init) = 0;
- my($insideInitChildPOA) = 0;
- my($taskBase) = "";
- while(<IN>) {
- $line = $_;
-
- my($lookForClosingParens) = 1;
- ## Remove comments
- if ($line =~ /(.*)(\/\/[\/]+.*)/ || $line =~ /(.*)(\/\/.*)/) {
- my($qcount) = countChar($1, '"');
- $line = "$1";
- if (($qcount & 1) == 1) {
- $line .= $2;
- }
- $line .= "\n";
- }
- if ($line =~ /(.*)(\/\*.*\*\/)(.*)/) {
- $line = "$1$3\n";
- }
- elsif ($line =~ /(.*)(\/\*.*)/) {
- $insideComment = 1;
- $line = "$1\n";
- }
- elsif ($insideComment && $line =~ /(.*\*\/)(.*)/) {
- $insideComment = 0;
- $line = $2;
- }
- elsif ($insideComment) {
- $line = "\n";
- }
-
- if ($line =~ /TAO_ORB_Manager[\*\s]*\s+(\w+)/) {
- $orbManager = $1;
- }
-
- lookForActivate($line, \$taskBase);
- if ($taskBase ne "" && $line =~ /thr_mgr\s*\(\)\->wait\s*\(\)/) {
- $line =~ s/\->wait\s*\(.*\)/\->wait_grp \($taskBase.grp_id\(\)\)/;
- }
-
- $insideInitChildPOA = ($insideInitChildPOA ? 1 :
- lookForInitChildPOA($line));
- if ($insideInitChildPOA) {
- $line = replaceChildOrbName($line);
- if ($line =~ /\)\s*;/) {
- $insideInitChildPOA = 0;
- }
- }
-
- $insideORB_init = ($insideORB_init ? 1 : lookForOrbInit($line));
- if ($insideORB_init) {
- $line = replaceOrbName($line);
- if ($line =~ /\)\s*;/) {
- $insideORB_init = 0;
- }
- }
-
-
- if (!$orbrunFound && $useTimeouts) {
- if ($orbrunFound = lookForOrbRun($line)) {
- $line = modifyOrbRun($line);
- }
- }
-
- ## Check the scope
- if ($line =~ /{/) {
- $scope += countChar($line, '{');
- }
- ## Check for parens
- if ($line =~ /\(/) {
- $insideParens += countChar($line, '(');
- ## This takes care of things like
- ## int parse_args(...), but allows things like
- ## int parse_args(...,
- ## ...) to pass through which is what we want
- if ($line =~ /\)/) {
- $insideParens -= countChar($line, ')');
- $lookForClosingParens = 0;
- }
- }
-
- if ($scope == 0) {
- ## This section is for forward declarations
- if ($line =~ /;$/) {
- my($forward_done) = 0;
- my($counter) = $#lines;
- while(!$forward_done) {
- if ($lines[$counter] =~ /,$/) {
- if ($lines[$counter] =~ /\s+\w+\s*\(.*,$/ &&
- needsToBeStatic($lines[$counter])) {
- $lines[$counter] = "static $lines[$counter]";
- $forward_done = 1;
- }
- }
- else {
- $forward_done = 1;
- }
- $counter--;
- }
- }
- if (!$insideParens && needsToBeStatic($line)) {
- my($test) = $lines[$#lines];
- $test =~ s/^\s+//;
- $test =~ s/\s+$//;
- if ($test ne "static") {
- $line = "static $line";
- }
- }
- }
-
- if ($scope == 1 && $orbrunFound &&
- ($line =~ /\s*return/ || $line =~ /\s*ACE_RETURN/)) {
- $orbrunFound = 0;
- }
-
- # Going down in scope
- if ($line =~ /}/) {
- $scope -= countChar($line, '}');
- if ($orbrunFound && $scope == 1) {
- $orbrunFound = 0;
- }
- }
- if ($lookForClosingParens && $line =~ /\)/) {
- $insideParens -= countChar($line, ')');
- }
-
- ## Work backwards to remove the static from
- ## the main or a method body
- if ($scope == 0 &&
- ($line =~ /(main\s*(\()?)/ || $line =~ /\w+\s*::\s*\w+\s*\(/)) {
- if ($line =~ /^static\s+/) {
- $line =~ s/static\s+//;
- }
- else {
- if ($lines[$#lines] =~ /static\s+/) {
- $lines[$#lines] =~ s/static\s+//;
- }
- }
- }
-
- push(@lines, $line);
- if ($line =~ /(\smain\s*(\()?)/ || $line =~ /(^main\s*(\()?)/) {
- my($saved) = pop(@lines);
- if ($1 !~ /^\s*int/) {
- my($below) = pop(@lines);
- $saved = "$below$saved";
- }
- if ($unixDefines) {
- push(@lines, "#define main $name" . "_main\n\n");
- }
- else {
- push(@lines, "#define ace_main $name" . "_main\n" .
- "#define ace_main_i $name" . "_main_i\n\n");
- }
- push(@lines, $saved);
- }
- }
- ## Look for last include and append include statement
- for(my $i = $#lines; $i >= 0; $i--) {
- if ($lines[$i] =~ /#include\s+/) {
- $lines[$i] .= "#include <tests/" .
- "TestUtils/TestCombinedThreads.h>\n";
- last;
- }
- }
- unshift(@lines, "// \$Id\$\n\n");
- }
- print OUT @lines;
- close(OUT);
-
- if ($useThreadM || $useORBCore) {
- modifyFileAttributes($ARGV[0], $ARGV[1]);
- }
- }
- else {
- print STDERR "Unable to open $ARGV[1] for output\n";
- $status = 1;
- }
- close(IN);
-}
-else {
- print STDERR "Unable to open $ARGV[0] for input\n";
- $status = 1;
-}
-
-exit($status);
diff --git a/configure.in b/configure.in
deleted file mode 100644
index d70b4558d11..00000000000
--- a/configure.in
+++ /dev/null
@@ -1,7665 +0,0 @@
-dnl
-AC_REVISION([$Id$])dnl
-
-dnl
-dnl An autoconf script to automatically configure ACE.
-dnl Process this file with autoconf to produce a configure script.
-dnl
-
-dnl
-dnl The autoconf documentation states that this is the recommended
-dnl sequence for this file:
-dnl
-dnl `AC_INIT(FILE)'
-dnl checks for programs
-dnl checks for libraries
-dnl checks for header files
-dnl checks for typedefs
-dnl checks for structures
-dnl checks for variables
-dnl checks for compiler characteristics
-dnl checks for library functions
-dnl checks for system services
-dnl `AC_OUTPUT([FILE...])'
-dnl
-dnl I followed this convention, and added a few sections.
-dnl -- Gonzo
-
-
-dnl
-dnl SECTION 1: `AC_INIT(FILE)'
-dnl
-dnl This macro must be the very first invoked.
-dnl Its argument names a file that must exist in the directory where
-dnl autoconf will run, just to check things.
-dnl AC_INIT(ace_unique.m4)
-dnl
-AC_INIT(ace/ACE.cpp)dnl
-
-dnl Require GNU Autoconf 2.13 or better.
-AC_PREREQ(2.13)dnl
-
-dnl Add maintainer mode option to the option list.
-AM_MAINTAINER_MODE
-
-dnl The maintainer of this configure script.
-ACE_CONFIGURE_MAINTAINER='Ossama Othman <ossama@ece.uci.edu>'
-
-
-dnl Until autoconf support in ACE is complete, prevent this script
-dnl from running unless the user explictly forces the configure script
-dnl to run using the "--enable-maintainer-mode" configure script
-dnl option.
-dnl if test $USE_MAINTAINER_MODE != yes; then
-dnl AC_MSG_ERROR([
-dnl ACE autoconf support is currently disabled by default since it is
-dnl still under development. Please use the stock ACE build procedure
-dnl detailed in the file \`ACE-INSTALL.html'.
-dnl
-dnl If you wish to experiment with ACE's autoconf support then use the
-dnl \"--enable-maintainer-mode\" configure script option to enable
-dnl autoconf support. For more details see the file
-dnl \`ACE-configuration.txt'.])
-dnl fi dnl test $USE_MAINTAINER_MODE != yes
-
-dnl If we are configuring in a CVS controlled directory then don't
-dnl continue any further. The idea is to prevent automatically
-dnl generated files from being checked into the repository. This
-dnl will prevent accidental overwrites of ACE's current Makefiles by
-dnl the automatically generated ones, for example.
-dnl ACE_CHECK_FOR_CVS_DIR
-
-dnl Prevent the configure script from continuing any further if
-dnl configuration is being performed in the top-level directory. The
-dnl idea is to prevent files generated during configuration and build
-dnl from overwriting the stock files of the same name.
-ACE_CHECK_TOP_SRCDIR
-
-
-
-dnl Check what platform we are running on.
-AC_CANONICAL_SYSTEM
-
-dnl Allow the standard program name transformations.
-dnl We probably don't need AC_ARG_PROGRAM any longer since AM_INIT_AUTOMAKE
-dnl handles this functionality. -- Ossama
-dnl AC_ARG_PROGRAM
-
-dnl Cause GNU Automake to initialize the state of things and run
-dnl some sanity checks
-PACKAGE=ace
-changequote(, )dnl
-ACE_VERSION=`head -1 ${srcdir}/VERSION | sed 's/.*version \([0-9.]*\).*/\1/'`
-changequote([, ])dnl
-
-AM_INIT_AUTOMAKE("$PACKAGE", "$ACE_VERSION", DUMMY)dnl
-
-dnl Generate a header file with all settings.
-AM_CONFIG_HEADER(ace/config.h)dnl
-
-dnl Move before the AC_ARG_ENABLE stuff to prevent autoconf complaints.
-dnl This is a bit messy but it makes life easier for me.
-dnl -Ossama
-dnl
-dnl SECTION: checks for programs
-dnl
-
-dnl Check if system supports "#! /bin/sh" line in scripts
-AC_SYS_INTERPRETER
-
-dnl Check the C compiler and preprocessor.
-AC_PROG_CC
-AC_PROG_CPP
-AC_PROG_CC_C_O
-
-dnl Check the C++ compiler and preprocessor.
-AC_PROG_CXX
-AC_PROG_CXXCPP
-
-dnl Set the test language as C++
-AC_LANG_CPLUSPLUS
-
-dnl If we are cross compiling disable certain things in the Makefiles.
-AM_CONDITIONAL(ACE_CROSS_COMPILED, test X$cross_compiling = Xyes)dnl
-
-
-dnl This checks for a binary called gm4, gnum4 or m4, and assigns
-dnl whatever was found (or "gonzo") to the M4 macro.
-dnl AC_CHECK_PROGS(M4, gm4 gnum4 m4, gonzo)
-
-dnl Look for the best awk-style program available.
-AC_PROG_AWK
-
-dnl Set some version information
-ACE_CURRENT=0
-ACE_AGE=0
-ACE_REVISION=0
-
-if test -n "$AWK"; then
- ACE_MAJOR=`echo "$ACE_VERSION" | sed 's/\./ /g' | $AWK '{ print \[$]1 }'`
- ACE_MINOR=`echo "$ACE_VERSION" | sed 's/\./ /g' | $AWK '{ print \[$]2 }'`
- ACE_BETA=`echo "$ACE_VERSION" | sed 's/\./ /g' | $AWK '{ print \[$]3 }'`
-
-dnl Make sure all of the versions have a legitimate value, i.e. not an
-dnl empty string.
- test -z "$ACE_MAJOR" && ACE_MAJOR=0
- test -z "$ACE_MINOR" && ACE_MINOR=0
- test -z "$ACE_BETA" && ACE_BETA=0
-
-dnl This is a terrible kludge to fool libtool into making it produce a shared
-dnl library with the "right" version information.
-dnl We really should switch to a version scheme that is compatible with
-dnl libtool.
-dnl -Ossama
-ACE_CURRENT=`expr $ACE_MAJOR + $ACE_MINOR`
-ACE_AGE=$ACE_MINOR
-ACE_REVISION=$ACE_BETA
-
-fi
-
-AC_SUBST(ACE_CURRENT)dnl
-AC_SUBST(ACE_AGE)dnl
-AC_SUBST(ACE_REVISION)dnl
-
-dnl Do the usual install settings; don't forget to include a
-dnl `install-sh' script, in case there is no BSD compatible `install'
-dnl installed (no pun intended) in your machine.
-dnl
-dnl We don't need this anymore since AM_INIT_AUTOMAKE calls AC_PROG_INSTALL.
-dnl -- Ossama
-dnl AC_PROG_INSTALL
-
-dnl Special handling for some UNIX variants and Cygwin32
-AC_AIX
-
-dnl This test replaces the obsolete AC_ISC_POSIX kludge.
-AC_CHECK_LIB([cposix], [strerror], [LIBS="$LIBS -lcposix"])dnl
-
-AC_MINIX
-AC_CYGWIN
-
-dnl Check if we support symlinks
-AC_PROG_LN_S
-
-dnl Check if a lexical analyzer exists (lex, flex, etc.)
-AM_PROG_LEX
-
-dnl Check if some implementation of YACC exists (yacc, byacc, bison, etc.)
-AC_PROG_YACC
-dnl if test -z "$YACC"; then
-dnl ./missing yacc
-dnl fi
-
-dnl Check for perfect hash function generator
-AC_CHECK_PROG(GPERF, gperf, gperf)dnl
-
-dnl Check for profiling progam
-AC_CHECK_PROGS(PROF, gprof prof,)dnl
-
-dnl The user's/default C++ flags are stored in "CXXFLAGS." We use
-dnl the variable "ACE_CXXFLAGS" to set the C++ flags we want. At the end
-dnl of the configuration process we combine ACE_CXXFLAGS and CXXFLAGS
-dnl into CXXFLAGS (e.g., CXXFLAGS="$ACE_CXXFLAGS $CXXFLAGS"). CXXFLAGS
-dnl goes after ACE_CXXFLAGS so that the user's C++ flag command line
-dnl choices always override the configure script's choices.
-ACE_CXXFLAGS=""
-ACE_CFLAGS=""
-
-
-dnl
-dnl SECTION 2: Configure script command line options
-dnl
-
-dnl Determine which subsets to build
-dnl This is done using the autoconf "--enable-foobar" mechanism.
-ACE_CHECK_SUBSETS
-
-dnl Add --{enable,disable,with,without}-feature options.
-ACE_CONFIGURATION_OPTIONS
-ACE_COMPILATION_OPTIONS
-
-dnl Configure the TAO directory if it exists.
-dnl TAO_CONFIGURATION_OPTIONS
-
-# Autoconf's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-# Libtool's setup macro calls AC_OBJEXT and AC_EXEEXT without setting
-# the test language to C. We do it before any libtool setup macros are
-# called so that the proper values are cached beforehand. We also do
-# it before any linker flags (LDFLAGS) are set so that C++ specific
-# ones don't break the tests.
-AC_LANG_SAVE
-AC_LANG_C
-AC_OBJEXT
-AC_EXEEXT
-AC_LANG_RESTORE
-
-dnl Call ACE_SET_COMPILER_FLAGS before AC_PROG_LIBTOOL and after the
-dnl AC_ARG_ENABLE and AC_ARG_WITH calls.
-ACE_SET_COMPILER_FLAGS
-
-dnl
-dnl SECTION 3: check for programs <--- moved before section 2 (Ossama)
-dnl
-
-dnl Platform specific libraries needed for ACE's autoconf tests
-dnl that currently do not have tests themselves.
-dnl Platform specific flags
-case "$host" in
- *freebsd*)
- LIBS="$LIBS -lcompat"
- ;;
- *osf3.2*)
- LIBS="$LIBS -lmach -lsys5 -lcxx -lc"
- ;;
- *osf4.0* | *osf5.0*)
- LIBS="$LIBS -lmach"
- ;;
- *psos*)
- LIBS="$LIBS -lm"
- ;;
-esac
-
-dnl
-dnl SECTION 4: checks for libraries
-dnl
-
-dnl Additional X library checks
-dnl We only check for these libraries if the user has
-dnl enabled XtReactor support.
-
-if test "$ace_user_enable_xt_reactor" = yes; then
-XTREACTOR_TEST_XLIBS=""
-dnl Check for Motif if we have X
- T_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $X_LIBS"
-
-dnl Note that ACE currently only needs -lX11 and -lXt for the XtReactor
-dnl so we define another library variable that contains additional
-dnl libraries for the XtReactor test since it needs either Motif or the
-dnl Athena widget set.
-
- xt_reactor_go=no
- AC_CHECK_LIB(Xm, XmCreateRowColumn, dnl
- [
- AC_DEFINE(ACE_HAS_XT)
- XTREACTOR_TEST_XLIBS="-lXm"
- xt_reactor_go=yes
- ],
- [
- AC_DEFINE(ACE_LACKS_MOTIF)
- AC_CHECK_LIB(Xaw, XawInitializeWidgetSet,
- [
- AC_DEFINE(ACE_HAS_XT)
- XTREACTOR_TEST_XLIBS="-lXaw -lXmu"
- xt_reactor_go=yes
- ],
- [
- xt_reactor_go=no
- AC_MSG_WARN(No usable X widget libraries were found.)
- AC_MSG_WARN(XtReactor support will be disabled.)
- ], -lXmu)
- ],-lXt)
-
- AC_SUBST(XTREACTOR_TEST_XLIBS)
-
- AM_CONDITIONAL(COMPILE_XTREACTOR_TEST, test X$xt_reactor_go = Xyes)
-
-dnl Restore pre-test linker flags
- LDFLAGS="$T_LDFLAGS"
-
-fi dnl test "$ace_user_enable_xt_reactor"= yes
-
-dnl End additional X library checks
-
-dnl Some platforms do not have a dynamic linking library, however the
-dnl dlopen, dlclose, etc., functions may exist in the C library.
-dnl (e.g. Digital UNIX)
-dnl Check for dynamic linking library
-ACE_SEARCH_LIBS(dlopen, dl svld, ace_has_svr4_dynamic_linking=yes, dnl
- [
- ace_has_svr4_dynamic_linking=no
- AC_CHECK_LIB(dld, shl_get,,)
- ])
-
-dnl Check if the socket library is available
-ACE_SEARCH_LIBS(socket, socket,,,-lnsl)dnl
-
-dnl Check for gethostbyname in -lnsl since some platforms (e.g. Solaris)
-dnl put it there.
-ACE_SEARCH_LIBS(gethostbyname, nsl, , )dnl
-
-dnl Check for getservbyname in -lxnet since some platforms (e.g. Solaris)
-dnl may put it there.
-ACE_SEARCH_LIBS(getservbyname, socket xnet, , AC_DEFINE(ACE_LACKS_GETSERVBYNAME), -lnsl)dnl
-
-
-dnl Check for compile() regex function in -lgen. Solaris, for example,
-dnl may put it there.
-ACE_SEARCH_LIBS(compile, gen,,)dnl
-
-dnl Check for exception handling library (e.g. for Digital UNIX)
-ACE_SEARCH_LIBS(exc_continue, exc,,)dnl
-
-dnl Check for ctime_r in -lc_r. Some platforms, such as Digital UNIX,
-dnl put reentrant functions such as asctime_r, ctime_r, gmtime_r, and
-dnl localtime_r in -lc_r.
-ACE_SEARCH_LIBS(ctime_r, c_r,,)dnl
-
-dnl TLI library check
-ACE_SEARCH_LIBS(t_accept, xti tli_r tli nsl, dnl
- ace_has_tli_funcs=yes, ace_has_tli_funcs=no)
-
-dnl Check for all of the things we need to compile and link threads
-dnl properly.
-if test "$ace_user_enable_threads" = yes; then
- ACE_CHECK_THREADS
-fi dnl test "$ace_user_enable_threads" = yes
-
-dnl Setup Libtool
-dnl
-dnl This should be done in the "programs" section of this file but
-dnl libtool may then be unaware of compiler flags set during the
-dnl thread checks.
-
-dnl Disable building of static libraries by default
-AC_DISABLE_STATIC
-
-dnl Enable Libtool module support
-AC_LIBTOOL_DLOPEN
-
-dnl FIXME: Temporary hack to make libtool work with g++.
-dnl Shared library support will only work with GNU g++ and GNU ld
-dnl right now.
-dnl save_CC="$CC"
-dnl CC="$CXX"
-
-dnl Check for libtool and turn on Automake processing for Libtool
-AC_PROG_LIBTOOL
-
-dnl Enable C++ support in libtool
-AC_LIBTOOL_CXX
-
-dnl Temporary hack until I get integrate libtool's new tag support
-dnl into automake.
-dnl This hack forces libtool to always use the C++ tag.
-LIBTOOL="$LIBTOOL --tag=CXX"
-
-dnl Check for sched_yield() in posix4 library.
-dnl Some platforms, such as Solaris, may define sched_yield() there.
-dnl Later we run AC_CHECK_FUNC(sched_yield), which is redundant in this case
-dnl but is needed if sched_yield() is defined in one of the other libraries
-dnl we check for.
-ACE_SEARCH_LIBS([sched_yield],[rt posix4],[ace_has_sched_yield=yes],)dnl
-
-dnl Check for asynchronous IO calls (perform check *after* thread check!)
-ACE_CHECK_ASYNCH_IO
-
-dnl Additional `-lposix4' library check since it may not be added by the
-dnl above checks on some platforms that may need it
-ACE_SEARCH_LIBS([clock_gettime],
- [rt posix4],[AC_DEFINE(ACE_HAS_CLOCK_GETTIME)],)dnl
-
-dnl
-dnl SECTION 5: checks for header files
-dnl
-
-dnl Check for dirent headers
-AC_HEADER_DIRENT
-
-if test "$ac_cv_header_dirent_dirent_h" = yes ||
- test "$ac_cv_header_dirent_sys_ndir_h" = yes ||
- test "$ac_cv_header_dirent_sys_dir_h" = yes ||
- test "$ac_cv_header_dirent_ndir_h" = yes; then
- AC_DEFINE(ACE_HAS_DIRENT)dnl
-fi
-
-dnl Check for sys/wait.h Posix.1 compliance
-AC_HEADER_SYS_WAIT
-
-if test "$ac_cv_cygwin" = yes; then
- AC_CHECK_HEADER(cygwin32/socket.h, dnl
- AC_DEFINE(ACE_HAS_CYGWIN32_SOCKET_H),)
-fi
-
-AC_CHECK_HEADER(dlfcn.h, dnl
- [
- dnl We already checked for dlopen in the previous library checks however,
- dnl it is possible that ac_cv_func_dlopen=yes if dlopen wasn't found before
- dnl the library test. Hence we cannot use AC_CHECK_FUNC(dlopen) here
- dnl the previously cached value may prevent ACE_HAS_SVR4_DYNAMIC_LINKING
- dnl from being defined.
- dnl -Ossama
- if test "$ace_has_svr4_dynamic_linking" = yes; then
- AC_DEFINE(ACE_HAS_SVR4_DYNAMIC_LINKING)
- fi
- ],)
-
-AC_CHECK_HEADER(malloc.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_MALLOC_H))
-
-AC_CHECK_HEADER(memory.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_MEMORY_H))
-
-AC_CHECK_HEADER(bytesex.h, dnl
- AC_DEFINE(ACE_HAS_BYTESEX_H))
-
-dnl We don't need to explicitly include this on linux.
-dnl AC_CHECK_HEADER(features.h, dnl
-dnl AC_DEFINE(ACE_HAS_FEATURES_H))
-
-AC_CHECK_HEADER(sys/msg.h, dnl
- [
- ACE_CACHE_CHECK(if _KERNEL is needed for msg prototypes,
- ace_cv_lib_broken_msg_h,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/msg.h>
- ],
- [
- struct msg ace_msg;
- ],
- [
- ace_cv_lib_broken_msg_h=no
- ],
- [
- AC_TRY_COMPILE(
- [
-#ifndef _KERNEL
-# define _KERNEL
-#endif
-#include <sys/msg.h>
- ],
- [
- struct msg ace_msg;
- ],
- [
- ace_cv_lib_broken_msg_h=yes
- ],
- [
- dnl If we get here, then we have no idea if it is broken or not.
- ace_cv_lib_broken_msg_h=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_BROKEN_MSG_H)
- ],)
- ],
- AC_DEFINE(ACE_LACKS_SYSV_MSG_H))
-
-AC_CHECK_HEADER(sys/param.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_PARAM_H))
-
-AC_CHECK_HEADER(sys/priocntl.h, ,)
-
-dnl Check for <ucontext.h> _before_ <sys/procfs.h>
-AC_CHECK_HEADER(ucontext.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_UCONTEXT_H))
-
-AC_CHECK_HEADER(sys/procfs.h, dnl
- [
- dnl Check if <sys/procfs.h> conflicts with <ucontext.h>
- dnl Some (early?) versions of glibc2.1 define the same variables
- dnl in <sys/procfs.h> and <ucontext.h>.
- ACE_CACHE_CHECK(if sys/procfs.h conflicts with ucontext.h,
- ace_has_procfs_conflict,
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_UCONTEXT_H
-# include <ucontext.h>
-#endif
-
-#include <sys/procfs.h>
- ],
- [
- int a = 0;
- ],
- [
- ace_has_procfs_conflict=no
- ],
- [
- ace_has_procfs_conflict=yes
- ])
- ],
- [
- ],
- [
- dnl If ace_has_procfs_conflict = no then define ACE_HAS_PROC_FS.
- AC_DEFINE(ACE_HAS_PROC_FS)
- ])
- ],)
-
-AC_CHECK_HEADER(sys/select.h, dnl
- AC_DEFINE(ACE_HAS_SELECT_H))
-
-AC_CHECK_HEADER(netinet/tcp.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_TCP_H))
-
-AC_CHECK_HEADER(sys/sockio.h, dnl
- AC_DEFINE(ACE_HAS_SOCKIO_H))
-
-AC_CHECK_HEADER(sysent.h, dnl
- AC_DEFINE(ACE_HAS_SYSENT_H),)
-
-AC_CHECK_HEADER(sys/systeminfo.h, ,) dnl
-
-AC_CHECK_HEADER(sys/filio.h, dnl
- AC_DEFINE(ACE_HAS_SYS_FILIO_H),)
-
-AC_CHECK_HEADER(sys/uio.h,,) dnl
-
-AC_CHECK_HEADER(sys/ioctl.h, dnl
- AC_DEFINE(ACE_HAS_SYS_IOCTL_H),)
-
-AC_CHECK_HEADER(sys/types.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_SYS_TYPES_H))
-
-AC_CHECK_HEADER(sys/termios.h, dnl
- [
- AC_EGREP_CPP(ACE_WITH_TERM_IOCTLS,
- [
-#include <sys/termios.h>
-
-#if defined (ACE_HAS_SYS_IOCTL_H)
-# include <sys/ioctl.h>
-#endif
-
-#if defined(TCGETS) && defined(TCSETS)
- ACE_WITH_TERM_IOCTLS
-#elif defined(TCGETA) && defined(TCSETA)
- ACE_WITH_TERM_IOCTLS
-#endif
- ],
- [
- AC_DEFINE(ACE_HAS_TERM_IOCTLS)
- ],)
- ],)
-
-if test "$ace_has_tli_funcs" = yes; then
-AC_CHECK_HEADER(xti.h, dnl
- [
- ace_has_tli=yes
- AC_DEFINE(ACE_HAS_XTI)
- AC_DEFINE(ACE_HAS_TLI)
- ],)
-
-AC_CHECK_HEADER(sys/xti.h, dnl
- [
- ace_has_tli=yes
- AC_DEFINE(ACE_HAS_SYS_XTI_H)
- AC_DEFINE(ACE_HAS_XTI)
- AC_DEFINE(ACE_HAS_TLI)
- ],)
-
-AC_CHECK_HEADER(sys/timod.h, dnl
- [
- AC_DEFINE(ACE_HAS_TIMOD_H)
- ],
- [
- AC_CHECK_HEADER(tli/timod.h,
- [
- AC_DEFINE(ACE_HAS_OSF_TIMOD_H)
- ],)
- ])
-
-AC_CHECK_HEADER(tiuser.h, dnl
- [
- ace_has_tli=yes
- AC_DEFINE(ACE_HAS_TIUSER_H)
- AC_DEFINE(ACE_HAS_TLI)
- ],)
-
-dnl Check if XTI headers are broken
-if test "$ac_cv_header_xti_h" = yes ||
- test "$ac_cv_header_sys_xti_h" = yes ||
- test "$ac_cv_header_tiuser_h" = yes; then
- ACE_CACHE_CHECK([if TCP macros are defined in XTI headers],
- [ace_cv_lib_has_broken_xti_macros],
- [
- AC_EGREP_CPP([ACE_BROKEN_XTI_MACROS],
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if defined (ACE_HAS_TIUSER_H) || defined (ACE_HAS_XTI)
-# if defined (ACE_HAS_TIUSER_H)
-# include /**/ <tiuser.h>
-# elif defined (ACE_HAS_SYS_XTI_H)
-# include /**/ <sys/xti.h>
-# else
-# include /**/ <xti.h>
-# endif /* ACE_HAS_SYS_XTI_H */
-#endif /* ACE_HAS_TIUSER_H || ACE_HAS_XTI */
-
-#if defined (TCP_NODELAY) || defined (TCP_MAXSEG)
-ACE_BROKEN_XTI_MACROS
-#endif /* TCP_NODELAY || TCPMAXSEG */
- ],
- [
- ace_cv_lib_has_broken_xti_macros=yes
- ],
- [
- ace_cv_lib_has_broken_xti_macros=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_BROKEN_XTI_MACROS)
- ],)
-fi
-
-if test "$ac_cv_header_tiuser_h" = yes; then
- ACE_CACHE_CHECK(if tiuser.h is protected by extern \"C\",
- ace_cv_lib_tiuser_with_extern_c,[
- AC_EGREP_HEADER(extern \"C\", tiuser.h,
- [
- ace_cv_lib_tiuser_with_extern_c=yes
- ],
- [
- ace_cv_lib_tiuser_with_extern_c=no
- ])
- ], , AC_DEFINE(ACE_HAS_TIUSER_H_BROKEN_EXTERN_C))
-fi dnl test "$ac_cv_header_tiuser_h" = yes
-
-AC_CHECK_HEADER(xliuser.h, dnl
- [
- ace_has_tli=yes
- AC_DEFINE(ACE_HAS_XLI)
- AC_DEFINE(ACE_HAS_TLI)
- ],)
-
-
-dnl Check for TLI prototypes
-if test "$ace_has_tli" = yes; then
- ACE_CACHE_CHECK(for TLI prototypes,
- ace_cv_lib_tli_prototypes,
- [
-dnl We only check for t_accept. This should hopefully be enough.
- AC_EGREP_CPP(t_accept,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if defined (ACE_HAS_TIMOD_H)
-# include <sys/timod.h>
-#endif
-
-#if defined (ACE_HAS_OSF_TIMOD_H)
-# include <tli/timod.h>
-#endif
-
-#if defined (ACE_HAS_TIUSER_H) || defined (ACE_HAS_XTI)
-# if defined (ACE_HAS_BROKEN_XTI_MACROS)
-# undef TCP_NODELAY
-# undef TCP_MAXSEG
-# endif /* ACE_HAS_BROKEN_XTI_MACROS */
-# if defined (ACE_HAS_TIUSER_H)
-# include /**/ <tiuser.h>
-# elif defined (ACE_HAS_SYS_XTI_H)
-# define class ace_xti_class
-# include /**/ <sys/xti.h>
-# undef class
-# else
-# include /**/ <xti.h>
-# endif /* ACE_HAS_TIUSER_H */
-#endif /* ACE_HAS_TIUSER_H || ACE_HAS_XTI */
-
-#if defined (ACE_HAS_XLI)
-# include <xliuser.h>
-#endif
- ],
- [
- ace_cv_lib_tli_prototypes=yes
- ],
- [
- ace_cv_lib_tli_prototypes=no
- ])
- ], AC_DEFINE(ACE_HAS_TLI_PROTOTYPES),)
-
-dnl Check for t_errno type in TLI headers
- ACE_CACHE_CHECK(for t_errno in TLI headers,
- ace_cv_lib_has_t_errno,
- [
- dnl Check if t_errno is declared in the TLI headers
- AC_EGREP_CPP(t_errno,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if defined (ACE_HAS_TIMOD_H)
-# include <sys/timod.h>
-#endif
-
-#if defined (ACE_HAS_OSF_TIMOD_H)
-# include <tli/timod.h>
-#endif
-
-#if defined (ACE_HAS_TIUSER_H) || defined (ACE_HAS_XTI)
-# if defined (ACE_HAS_BROKEN_XTI_MACROS)
-# undef TCP_NODELAY
-# undef TCP_MAXSEG
-# endif /* ACE_HAS_BROKEN_XTI_MACROS */
-# if defined (ACE_HAS_TIUSER_H)
-# include /**/ <tiuser.h>
-# elif defined (ACE_HAS_SYS_XTI_H)
-# define class ace_xti_class
-# include /**/ <sys/xti.h>
-# undef class
-# else
-# include /**/ <xti.h>
-# endif /* ACE_HAS_TIUSER_H */
-#endif /* ACE_HAS_TIUSER_H || ACE_HAS_XTI */
-
-#if defined (ACE_HAS_XLI)
-# include <xliuser.h>
-#endif
- ],
- [
- ace_cv_lib_has_t_errno=yes
- ],
- [
- ace_cv_lib_has_t_errno=no
- ])
- ], , AC_DEFINE(ACE_LACKS_T_ERRNO))
-
-dnl Check if t_error incorrectly accepts char *
- ACE_CACHE_CHECK(if t_error incorrectly accepts char *,
- ace_cv_lib_has_broken_t_error,
- [
- dnl Check if t_errno is declared in the TLI headers
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if defined (ACE_HAS_TIMOD_H)
-# include <sys/timod.h>
-#endif
-
-#if defined (ACE_HAS_OSF_TIMOD_H)
-# include <tli/timod.h>
-#endif
-
-#if defined (ACE_HAS_TIUSER_H) || defined (ACE_HAS_XTI)
-# if defined (ACE_HAS_BROKEN_XTI_MACROS)
-# undef TCP_NODELAY
-# undef TCP_MAXSEG
-# endif /* ACE_HAS_BROKEN_XTI_MACROS */
-# if defined (ACE_HAS_TIUSER_H)
-# include /**/ <tiuser.h>
-# elif defined (ACE_HAS_SYS_XTI_H)
-# define class ace_xti_class
-# include /**/ <sys/xti.h>
-# undef class
-# else
-# include /**/ <xti.h>
-# endif /* ACE_HAS_TIUSER_H */
-#endif /* ACE_HAS_TIUSER_H || ACE_HAS_XTI */
-
-#if defined (ACE_HAS_XLI)
-# include <xliuser.h>
-#endif
- ],
- [
- const char *ace_errmsg = "FOO";
- t_error (ace_errmsg);
- ],
- [
- ace_cv_lib_has_broken_t_error=no
- ],
- [
- ace_cv_lib_has_broken_t_error=yes
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_BROKEN_T_ERROR)
- ],)
-
-fi dnl test "$ace_has_tli" = yes
-fi dnl test "$ace_has_tli_funcs" = yes
-
-AC_CHECK_HEADER(sys/time.h, dnl
- [
- dnl This is a weak test.
- AC_EGREP_HEADER(sys/time.h, time.h,
- ,
- [
- AC_DEFINE(ACE_LACKS_SYSTIME_H)
- ])
- ],)
-
-dnl See the notes about ACE_LACKS_MMAP in the functions section of this
-dnl configure script.
-dnl -Ossama
-AC_CHECK_HEADER(sys/mman.h, dnl
- [
- AC_EGREP_HEADER(extern \"C\", sys/mman.h,
- ,
- [
- AC_DEFINE(ACE_HAS_BROKEN_MMAP_H)
- ])
- ],
- [
- AC_DEFINE(ACE_LACKS_MMAP)
- ])
-
-dnl Check for bzero() prototype if bstring.h exists.
-AC_CHECK_HEADER(bstring.h, dnl
- [
- AC_EGREP_HEADER(bzero, bstring.h,
- [
- AC_DEFINE(ACE_HAS_BSTRING)
- ],)
- ],)
-
-AC_CHECK_HEADER(strings.h, dnl
- [
- AC_EGREP_HEADER(bzero, strings.h,
- [
- AC_DEFINE(ACE_HAS_STRINGS)
- ],)
- ],)
-
-AC_CHECK_HEADER(sys/syscall.h, dnl
- AC_DEFINE(ACE_HAS_SYSCALL_H),)
-
-AC_CHECK_HEADER(poll.h, dnl
- AC_DEFINE(ACE_HAS_POLL),)
-
-dnl We want AC_CHECK_HEADERS so that "HAVE_PWD_H" gets defined if we have it.
-dnl "HAVE_PWD_H" is used in one of the tests later on.
-AC_CHECK_HEADERS(pwd.h,,) dnl
-
-AC_CHECK_HEADER(regexpr.h, dnl
- AC_DEFINE(ACE_HAS_REGEX),)
-
-AC_CHECK_HEADER(stropts.h, dnl
- AC_DEFINE(ACE_HAS_STREAMS),)
-
-AC_CHECK_HEADER(siginfo.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_SIGINFO_H))
-
-AC_CHECK_HEADER(unistd.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_UNISTD_H))
-
-AC_CHECK_HEADER(utime.h, dnl
- AC_DEFINE(ACE_HAS_UTIME),)
-
-dnl This check will be disabled until we can get ACE to compile when it
-dnl ACE_HAS_WCHAR is defined on UN*X systems
-dnl AC_CHECK_HEADER(wchar.h,
-dnl AC_DEFINE(ACE_HAS_WCHAR),)
-
-AC_CHECK_HEADER(libc.h, dnl
- AC_DEFINE(ACE_HAS_LIBC_H))
-
-AC_CHECK_HEADER(osfcn.h, dnl
- AC_DEFINE(ACE_HAS_OSFCN_H))
-
-AC_CHECK_HEADER(new, dnl
- AC_DEFINE(ACE_HAS_NEW_NO_H),
- [
- AC_CHECK_HEADER(new.h, dnl
- AC_DEFINE(ACE_HAS_NEW_H))
- ])
-
-AC_CHECK_HEADER(stdexcept, dnl
- AC_DEFINE(ACE_HAS_STDEXCEPT_NO_H),
- [
- AC_CHECK_HEADER(exception.h, dnl
- AC_DEFINE(ACE_HAS_EXCEPTION_H))
- ])
-
-dnl ace/OS.i can #include <cstring>, not #include <cstring.h>
-dnl "cstring" is the correct form.
-dnl TODO: Double check the above comment.
-AC_CHECK_HEADER(cstring, dnl
- AC_DEFINE(ACE_HAS_GNU_CSTRING_H),)
-
-AC_CHECK_HEADER(memory,,) dnl
-
-AC_CHECK_HEADER(map, dnl
-[
- AC_CHECK_HEADER(net/if.h,
- [
- ACE_CACHE_CHECK(if STL map class conflicts with <net/if.h> map struct,
- ace_cv_header_stl_map_conflict,
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <map>
-#include <net/if.h>
- ],
- [
- map<char, char> ace_map;
- ],
- [
- ace_cv_header_stl_map_conflict=no
- ],
- [
- ace_cv_header_stl_map_conflict=yes
- ])
- ], AC_DEFINE(ACE_HAS_STL_MAP_CONFLICT),)
- ],)
-],)
-
-AC_CHECK_HEADER(queue, dnl
-[
- AC_CHECK_HEADER(netinet/in.h,
- [
- ACE_CACHE_CHECK(if STL queue class conflicts with <netinet/in.h> queue struct,
- ace_cv_header_stl_queue_conflict,
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <queue>
-#include <netinet/in.h>
- ],
- [
- queue<char> ace_queue;
- ],
- [
- ace_cv_header_stl_queue_conflict=no
- ],
- [
- ace_cv_header_stl_queue_conflict=yes
- ])
- ], AC_DEFINE(ACE_HAS_STL_QUEUE_CONFLICT),)
- ],)
-],)
-
-dnl Check for availablity of "new style" C++ stream headers
-AC_CHECK_HEADERS(iomanip ios iostream istream ostream fstream streambuf, dnl
- ,
- AC_DEFINE(ACE_USES_OLD_IOSTREAMS))
-
-AC_CHECK_HEADER(iostream.h, dnl
- AC_CHECK_HEADER(fstream.h, , AC_DEFINE(ACE_LACKS_IOSTREAM_TOTALLY)),
- AC_DEFINE(ACE_LACKS_IOSTREAM_TOTALLY))
-
-dnl Check if platform needs to #include <regexpr.h> for
-dnl regular expression support
-ACE_CACHE_CHECK(regexpr.h for regular expression support,
- ace_cv_needs_regexpr_h, [
- AC_EGREP_HEADER(compile, regexpr.h,
- [
- ace_cv_needs_regexpr_h=yes
- AC_DEFINE(ACE_NEEDS_REGEXPR_H)
- ],
- [
- AC_EGREP_HEADER(step, regexpr.h,
- [
- ace_cv_needs_regexpr_h=yes
- ],
- [
- ace_cv_needs_regexpr_h=no
- ])
- ])
- ], AC_DEFINE(ACE_NEEDS_REGEXPR_H),)
-
-dnl Check if sprintf() returns char*
-ACE_CONVERT_WARNINGS_TO_ERRORS([
-ACE_CACHE_CHECK(if sprintf() returns char*,
- ace_cv_lib_charptr_sprintf,
- [
- AC_TRY_COMPILE(
- [
-#include <stdlib.h>
-#include <stdio.h>
- ],
- [
- char *str = 0;
- const char *fmt = "%d";
- int num = 0;
-
- char *s = 0;
-
- s = sprintf(str, fmt, num);
- ],
- [
- ace_cv_lib_charptr_sprintf=yes
- ],
- [
- ace_cv_lib_charptr_sprintf=no
- ])
- ], AC_DEFINE(ACE_HAS_CHARPTR_SPRINTF),)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check for getopt() prototype
-ACE_CACHE_CHECK(for getopt() prototype, ace_cv_lib_getopt_proto, [
- AC_EGREP_HEADER(getopt, unistd.h,
- [
- ace_cv_lib_getopt_proto=yes
- ],
- [
- AC_EGREP_HEADER([[^_]+getopt], stdlib.h,
- [
- ace_cv_lib_getopt_proto=yes
- ],
- [
- ace_cv_lib_getopt_proto=no
- ])
- ])
-], , AC_DEFINE(ACE_LACKS_GETOPT_PROTO))
-
-dnl Check for old malloc() prototype.
-ACE_CONVERT_WARNINGS_TO_ERRORS([
-ACE_CACHE_CHECK(for old malloc() prototype,
- ace_cv_lib_old_malloc_proto,
- [
- AC_TRY_COMPILE(
- [
-#include <stdlib.h>
-#ifndef ACE_LACKS_MALLOC_H
-# include <malloc.h>
-#endif
- ],
- [
- char *s = 0;
- s = malloc(sizeof(int));
- ],
- [
- ace_cv_lib_old_malloc_proto=yes
- ],
- [
- ace_cv_lib_old_malloc_proto=no
- ])
- ], AC_DEFINE(ACE_HAS_OLD_MALLOC),)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check for *_timedwait() prototypes
-dnl TODO: We only check for one of the *_timedwait() prototypes.
-dnl Is this enough?
-ACE_CACHE_CHECK(for *_timedwait() prototypes, ace_cv_lib_timedwait_proto, [
- AC_EGREP_HEADER(recv_timedwait, pthread.h,
- [
- ace_cv_lib_timedwait_proto=yes
- ],
- [
- AC_EGREP_HEADER(recv_timedwait, fcntl.h,
- [
- ace_cv_lib_timedwait_proto=yes
- ],
- [
- ace_cv_lib_timedwait_proto=no
- ])
- ])
-], , AC_DEFINE(ACE_LACKS_TIMEDWAIT_PROTOTYPES))
-
-dnl Check for ualarm prototype in unistd.h.
-dnl Most Unices seem to put it there (?)
-ACE_CACHE_CHECK(for ualarm() prototype, ace_cv_lib_ualarm_proto, [
- AC_EGREP_HEADER(ualarm, unistd.h,
- [
- ace_cv_lib_ualarm_proto=yes
- ],
- [
- ace_cv_lib_ualarm_proto=no
- ])
-], , AC_DEFINE(ACE_LACKS_UALARM_PROTOTYPE))
-
-dnl Check for getrusage prototype in sys/resource.h
-ACE_CACHE_CHECK(for getrusage() in sys/resource.h,
- ace_cv_lib_has_getrusage_proto, [
- AC_EGREP_HEADER(getrusage, sys/resource.h,
- [
- ace_cv_lib_has_getrusage_proto=yes
- ],
- [
- ace_cv_lib_has_getrusage_proto=no
- ])
-], AC_DEFINE(ACE_HAS_GETRUSAGE_PROTO),)
-
-dnl Check for {get,set}rlimit prototypes in sys/resource.h
-ACE_CACHE_CHECK(for getrlimit() and setrlimit() in sys/resource.h,
- ace_cv_lib_has_getsetrlimit_proto, [
- AC_EGREP_HEADER(getrlimit, sys/resource.h,
- [
- AC_EGREP_HEADER(getrlimit, sys/resource.h,
- [
- ace_cv_lib_has_getsetrlimit_proto=yes
- ],
- [
- ace_cv_lib_has_getsetrlimit_proto=no
- ])
- ],
- [
- ace_cv_lib_has_getsetrlimit_proto=no
- ])
-], , AC_DEFINE(ACE_LACKS_RLIMIT_PROTOTYPE))
-
-dnl Check for platforms that don't declare dl* functions
-dnl as extern "C" in dlfcn.h.
-dnl TODO: This check looks feeble to me...
-dnl NOTE: Linux header files ARE protected with extern "C" by the
-dnl __BEGIN_DECLS macro, so don't be surprised!
-ACE_CACHE_CHECK(if dlfcn.h is protected by extern \"C\",
- ace_cv_lib_dlfcn_with_extern_c,[
- AC_EGREP_HEADER(extern \"C\", dlfcn.h,
- [
- ace_cv_lib_dlfcn_with_extern_c=yes
- ],
- [
- ace_cv_lib_dlfcn_with_extern_c=no
- ])
-], , AC_DEFINE(ACE_HAS_DLFCN_H_BROKEN_EXTERN_C))
-
-
-dnl
-dnl SECTION 6: Checks for typedefs
-dnl
-
-dnl Standard typedef checks (All of them may not be needed)
-AC_TYPE_UID_T
-AC_TYPE_MODE_T
-AC_TYPE_OFF_T
-AC_TYPE_PID_T
-AC_TYPE_SIZE_T
-
-dnl AC_CHECK_TYPE (off64_t, long long)
-
-dnl Specific typedef checks
-dnl TODO: Check whether these typedefs can be defined somewhere else.
-ACE_CHECK_TYPE(idtype_t, signal.h, AC_DEFINE(ACE_HAS_IDTYPE_T),)
-ACE_CHECK_TYPE(sem_t, semaphore.h,,)
-ACE_CHECK_TYPE(key_t, sys/types.h, ,AC_DEFINE(ACE_LACKS_KEY_T))
-ACE_CHECK_TYPE(ssize_t, sys/types.h, AC_DEFINE(ACE_HAS_SSIZE_T),)
-ACE_CHECK_TYPE(u_longlong_t, sys/types.h, , AC_DEFINE(ACE_LACKS_U_LONGLONG_T))
-ACE_CHECK_TYPE(pri_t, sys/types.h, ,AC_DEFINE(ACE_LACKS_PRI_T))
-ACE_CHECK_TYPE(ucontext_t, ucontext.h,
- [
- AC_DEFINE(ACE_HAS_UCONTEXT_T)
- ],
- [
- dnl Some platforms define ucontext_t in <sys/ucontext.h>, but ACE
- dnl doesn't explicitly include that header. However, it is very likely
- dnl that <signal.h> does, either directly or indirectly.
- ACE_CHECK_TYPE(ucontext_t, signal.h, AC_DEFINE(ACE_HAS_UCONTEXT_T))
- ])
-ACE_CHECK_TYPE(wchar_t, wchar.h,,
- [
- ACE_CHECK_TYPE(wchar_t, sys/types.h,,AC_DEFINE(ACE_LACKS_WCHAR_T))
- ])
-
-ACE_CHECK_TYPE(socklen_t, sys/socket.h, AC_DEFINE(ACE_HAS_SOCKLEN_T),
- [
- dnl The compiler in linux just issues a warning, and the test
- dnl passes!!!
- dnl
- dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
- dnl -Ossama
- ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
- [
- dnl Check if socket size is denoted by size_t
- ACE_CACHE_CHECK(if socket size is denoted by size_t,
- ace_cv_lib_posix_socket_len_size_t,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- int s = 0;
- struct sockaddr* addr = 0;
- int* addrlen = 0;
- accept(s, addr, addrlen);
- ],
- [
- ace_cv_lib_posix_socket_len_size_t=no
- ],
- [
- dnl Now see if it really does take a size_t socket size
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- int s = 0;
- struct sockaddr* addr = 0;
- size_t* addrlen = 0;
- accept(s, addr, addrlen);
- ],
- [
- ace_cv_lib_posix_socket_len_size_t=yes
- ],
- [
- ace_cv_lib_posix_socket_len_size_t=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_SIZET_SOCKET_LEN),)
- ])
- ])
-
-dnl Check for sig_atomic_t
-ACE_CACHE_CHECK(for sig_atomic_t,
- ace_cv_lib_posix_defines_sig_atomic_t,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <signal.h>
- ],
- [
- sig_atomic_t sat;
- ],
- [
- ace_cv_lib_posix_defines_sig_atomic_t=yes
- ],
- [
- ace_cv_lib_posix_defines_sig_atomic_t=no
- ])
-], AC_DEFINE(ACE_HAS_SIG_ATOMIC_T),)
-
-
-dnl
-dnl SECTION 7: checks for structures
-dnl
-
-dnl TODO: Check whether these structures can be defined somewhere else.
-ACE_CHECK_STRUCT(flock, fcntl.h, , AC_DEFINE(ACE_LACKS_FILELOCKS))
-ACE_CHECK_STRUCT(rwlock_t, synch.h, , AC_DEFINE(ACE_LACKS_RWLOCK_T))
-ACE_CHECK_STRUCT(strbuf, stropts.h, AC_DEFINE(ACE_HAS_STRBUF_T),)
-ACE_CHECK_STRUCT(msgbuf, sys/msg.h, , AC_DEFINE(ACE_LACKS_MSGBUF_T))
-case "$host" in
-*irix*)
- dnl IRIX prusage fields don't match what ACE currently supports.
- ;;
-*)
- ACE_CHECK_STRUCT(prusage_t, sys/procfs.h, AC_DEFINE(ACE_HAS_PRUSAGE_T),)
- ;;
-esac
-ACE_CHECK_STRUCT(strrecvfd, stropts.h, , AC_DEFINE(ACE_LACKS_STRRECVFD))
-ACE_CHECK_STRUCT(sigaction, signal.h, , AC_DEFINE(ACE_LACKS_SIGACTION))
-ACE_CHECK_STRUCT(sigset_t, signal.h, , AC_DEFINE(ACE_LACKS_SIGSET))
-ACE_CHECK_STRUCT(utsname, sys/utsname.h, , AC_DEFINE(ACE_LACKS_UTSNAME_T))
-
-ACE_CACHE_CHECK([for struct sembuf],[ace_cv_struct_sembuf],
- [
- dnl Some platforms may need to include some headers before <sys/sem.h>.
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/ipc.h>
-#include <sys/sem.h>
- ],
- [
- struct sembuf ace_sembuf;
- ],
- [
- ace_cv_struct_sembuf=yes
- ],
- [
-dnl Some compilers don't like the "struct" but we need the struct for
-dnl some platforms to resolve ambiguities between functions and
-dnl structures with with the same name. So, we try the same test but
-dnl without "struct" if the above test with "struct" fails. If both
-dnl tests fail, then we can be reasonably sure that we don't have the
-dnl structure we are testing for.
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/ipc.h>
-#include <sys/sem.h>
- ],
- [
- sembuf ace_sembuf;
- ],
- [
- ace_cv_struct_sembuf=yes
- ],
- [
- ace_cv_struct_sembuf=no
- ])
- ])
- ], , AC_DEFINE(ACE_LACKS_SEMBUF_T))
-
-dnl Thanks to Konstantinos Margaritis <kmargar@cc.uoa.gr> for pointing out
-dnl that struct siginfo_t may also be defined in signal.h
-ACE_CACHE_CHECK(for struct siginfo_t, ace_cv_struct_siginfo_t,
- [
- dnl Since we are checking for siginfo_t in more than one header
- dnl we can't use the ACE_CHECK_STRUCT macro so we have to do things
- dnl manually.
- ACE_TRY_COMPILE_STRUCT(siginfo_t, siginfo.h,
- [
- ace_cv_struct_siginfo_t=yes
- ],
- [
- ACE_TRY_COMPILE_STRUCT(siginfo_t, signal.h,
- [
- ace_cv_struct_siginfo_t=yes
- ],
- [
- ace_cv_struct_siginfo_t=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_SIGINFO_T)
- ],)
-
-dnl Some platforms need to include sys/types.h before sys/socket.h
-dnl in order for struct msghdr to work.
-dnl Check for msghdr structure.
-ACE_CACHE_CHECK(for struct msghdr, ace_cv_struct_msghdr,
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- struct msghdr ace_msghdr;
- ],
- [
- ace_cv_struct_msghdr=yes
- ],
- [
- ace_cv_struct_msghdr=no
- ])
- ], AC_DEFINE(ACE_HAS_MSG),)
-
-ACE_CACHE_CHECK(for condition variable support, ace_cv_struct_cond_t,
- [
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
- ],
- [
- pthread_cond_t ace_pthread_cond_t;
- ],
- [
- ace_cv_struct_cond_t=yes
- ],
- [
- AC_TRY_COMPILE(
- [
-#include <synch.h>
- ],
- [
- cond_t ace_cond_t;
- ],
- [
- ace_cv_struct_cond_t=yes
- ],
- [
- ace_cv_struct_cond_t=no
- ])
- ])
- ], , AC_DEFINE(ACE_LACKS_COND_T))
-
-dnl Check for struct timespec
-ACE_CACHE_CHECK(for POSIX timer structure,
- ace_cv_lib_posix_timer_struct,[
- AC_TRY_COMPILE(
- [
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
- ],
- [
- timespec sr;
- ],
- [
- ace_cv_lib_posix_timer_struct=yes
- ],
- [
- dnl Check if platform uses struct timestruc_t for POSIX timers
- dnl instead of struct timespec.
- AC_TRY_COMPILE(
- [
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
- ],
- [
- timestruc_t sr;
- ],
- [
- ace_cv_lib_posix_timer_struct=yes
- dnl Check for struct timespec in <sys/timers.h>
- ACE_CACHE_CHECK(for struct timespec in sys/timers.h,
- ace_cv_lib_posix_struct_timespec_broken,[
- AC_TRY_COMPILE(
- [
-#include <sys/timers.h>
- ],
- [
- timespec sr;
- ],
- [
- ace_cv_lib_posix_struct_timespec_broken=yes
- ],
- [
- ace_cv_lib_posix_struct_timespec_broken=no
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_POSIX_TIME),)
- ],
- [
- ace_cv_lib_posix_timer_struct=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_POSIX_TIME)
- if test "$ace_cv_lib_posix_struct_timespec_broken" = yes; then
- AC_DEFINE(ACE_HAS_BROKEN_POSIX_TIME)
- fi
- ],
- [
- dnl Check for struct timespec in <sys/timers.h>
- ACE_CACHE_CHECK(for struct timespec in sys/timers.h,
- ace_cv_lib_posix_struct_timespec_broken,[
- AC_TRY_COMPILE(
- [
-#include <sys/timers.h>
- ],
- [
- timespec sr;
- ],
- [
- ace_cv_lib_posix_struct_timespec_broken=yes
- ],
- [
- ace_cv_lib_posix_struct_timespec_broken=no
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_POSIX_TIME),)
- ])
-
-dnl Check for typedef timespec_t
-dnl TODO: Check whether this typedef can be defined somewhere else.
-ACE_CACHE_CHECK(for timespec_t,
- ace_cv_lib_posix_timespec_t,[
- AC_TRY_COMPILE(
- [
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
- ],
- [
- timespec_t tt;
- ],
- [
- ace_cv_lib_posix_timespec_t=yes
- ],
- [
- ace_cv_lib_posix_timespec_t=no
- ])
-], , AC_DEFINE(ACE_LACKS_TIMESPEC_T))
-
-dnl Check for union semun
-ACE_CACHE_CHECK(for union semun,
- ace_cv_lib_posix_defines_union_semun,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/sem.h>
- ],
- [
-/* We could also check if the macro _SEM_SEMUN_UNDEFINED is defined.
- No big deal. */
-
-semun us;
- ],
- [
- ace_cv_lib_posix_defines_union_semun=yes
- ],
- [
- ace_cv_lib_posix_defines_union_semun=no
- ])
-], AC_DEFINE(ACE_HAS_SEMUN),)
-
-
-dnl
-dnl SECTION 8: checks for variables
-dnl
-
-dnl Check for broken struct timespec members
-ACE_CACHE_CHECK(for broken struct timespec members,
- ace_cv_lib_broken_timespec,
- [
- AC_TRY_COMPILE(
- [
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
- ],
- [
- timespec sr;
- sr.ts_sec = 0;
- sr.ts_nsec = 0;
- ],
- [
- ace_cv_lib_broken_timespec=yes
- ],
- [
- ace_cv_lib_broken_timespec=no
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_TIMESPEC_MEMBERS),)
-
-dnl Check for more than two fields in struct rusage
-ACE_CACHE_CHECK(for limited struct rusage,
- ace_cv_lib_limited_rusage,[
- AC_TRY_COMPILE(
- [
-#include <sys/resource.h>
- ],
- [
- rusage ace_rusage;
- /*
- We just pick three (i.e. > 2) of the fields that
- ACE uses to see if we have a struct rusage that
- has more than two fields.
- */
- ace_rusage.ru_ixrss = 0;
- ace_rusage.ru_idrss = 0;
- ace_rusage.ru_isrss = 0;
- ],
- [
- ace_cv_lib_limited_rusage=no
- ],
- [
- ace_cv_lib_limited_rusage=yes
- ])
-], AC_DEFINE(ACE_HAS_LIMITED_RUSAGE_T),)
-
-if test "$ace_cv_struct_siginfo_t" = yes; then
- dnl Check for si_addr member in struct siginfo_t
- ACE_CACHE_CHECK(for si_addr member in struct siginfo_t,
- ace_cv_lib_posix_si_addr,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SIGINFO_H
-# include <siginfo.h>
-#endif
-#include <signal.h>
- ],
- [
- siginfo_t acesig;
- acesig.si_addr = 0;
- ],
- [
- ace_cv_lib_posix_si_addr=yes
- ],
- [
- ace_cv_lib_posix_si_addr=no
- ])
- ], , AC_DEFINE(ACE_LACKS_SI_ADDR))
-fi dnl test "$ace_cv_struct_siginfo_t" = yes
-
-dnl Check for sin_len member in struct sockaddr_in
-ACE_CACHE_CHECK(for sin_len member in struct sockaddr_in,
- ace_cv_lib_has_sin_len,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <netinet/in.h>
- ],
- [
- sockaddr_in ace_sin;
- ace_sin.sin_len = sizeof(ace_sin);
- ],
- [
- ace_cv_lib_has_sin_len=yes
- ],
- [
- ace_cv_lib_has_sin_len=no
- ])
-], AC_DEFINE(ACE_HAS_SIN_LEN),)
-
-dnl Check for sys_siglist
-dnl TODO: Check whether this variable can be defined somewhere else.
-dnl [OSSAMA: Should we use autoconf's AC_DECL_SYS_SIGLIST test instead?]
-ACE_CACHE_CHECK(for sys_siglist,
- ace_cv_lib_posix_sys_siglist,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
-#include <signal.h>
-#if !defined (_sys_siglist)
-# define _sys_siglist sys_siglist
-#endif
- ],
- [
- void* vp = (void*) &_sys_siglist;
- ],
- [
- ace_cv_lib_posix_sys_siglist=yes
- ],
- [
- ace_cv_lib_posix_sys_siglist=no
- ])
-], AC_DEFINE(ACE_HAS_SYS_SIGLIST),)
-
-dnl Check for sys_errlist
-dnl TODO: Check whether this variable can be defined somewhere else.
-ACE_CACHE_CHECK(for sys_errlist,
- ace_cv_lib_posix_sys_errlist,[
- AC_TRY_COMPILE(
- [
-#include <stdio.h>
-#include <errno.h>
-#if !defined (_sys_errlist)
-# define _sys_errlist sys_errlist
-#endif
- ],
- [
- void* vp = (void*) &_sys_errlist;
- ],
- [
- ace_cv_lib_posix_sys_errlist=yes
- ],
- [
- dnl Check if sys_errlist is a global variable in a library
- AC_TRY_LINK(
- [
-#include <stdio.h>
-#include <errno.h>
-
-#if !defined (_sys_errlist)
-# define _sys_errlist sys_errlist
-#endif
-
-extern const char * const _sys_errlist[];
- ],
- [
- void* vp = (void*) &_sys_errlist;
- ],
- [
- ace_cv_lib_posix_sys_errlist=yes
- ],
- [
- ace_cv_lib_posix_sys_errlist=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_SYS_ERRLIST),)
-
-dnl Check for sys_nerr
-dnl TODO: Check whether this variable can be defined somewhere else.
-ACE_CACHE_CHECK([for sys_nerr],
- [ace_cv_lib_posix_sys_nerr],[
- AC_TRY_COMPILE(
- [
-#include <stdio.h>
-#include <errno.h>
-
-#if !defined (_sys_nerr)
-# define _sys_nerr sys_nerr
-#endif
- ],
- [
- void* vp = (void*) &_sys_nerr;
- ],
- [
- ace_cv_lib_posix_sys_nerr=yes
- ],
- [
- dnl Check if sys_nerr is a global variable in a library
- AC_TRY_LINK(
- [
-#include <stdio.h>
-#include <errno.h>
-
-#if !defined (_sys_nerr)
-# define _sys_nerr sys_nerr
-#endif
-
-extern int _sys_nerr;
- ],
- [
- void* vp = (void*) &_sys_nerr;
- ],
- [
- ace_cv_lib_posix_sys_nerr=yes
- ],
- [
- ace_cv_lib_posix_sys_nerr=no
- ])
- ])
- ],
- [
- dnl Do nothing
- ],
- [
- AC_DEFINE(ACE_LACKS_SYS_NERR)
- ])
-
-dnl Save the cache for debugging purposes
-AC_CACHE_SAVE
-
-dnl
-dnl SECTION 9: checks for compiler characteristics
-dnl
-
-dnl Check if compiler accepts "#pragma once" directive
-ACE_CONVERT_WARNINGS_TO_ERRORS([
- ACE_CACHE_CHECK(if compiler accepts \"pragma once\" directive,
- ace_cv_has_pragma_once,
- [
- AC_TRY_COMPILE(
- [
-#pragma once
- ],
- [
- int a = 0; /* Put this here so we don't have an empty main(). */
- ],
- [
- ace_cv_has_pragma_once=yes
- ],
- [
- ace_cv_has_pragma_once=no
- ])
- ], , AC_DEFINE(ACE_LACKS_PRAGMA_ONCE))
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl If we are using GNU C++, see if it accepts the -pipe compiler flag.
-dnl "-pipe" on cygwin32 doesn't seem to work, for example.
-if test -n "$GXX"; then
- PREPIPECXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -pipe"
- PREPIPECFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -pipe"
- ACE_CACHE_CHECK(if \"-pipe\" compiler flag is supported,
- ace_cv_feature_gxx_has_pipe,
- [
- AC_TRY_COMPILE(, [int a = 0;],
- [
- ace_cv_feature_gxx_has_pipe=yes
- ],
- [
- ace_cv_feature_gxx_has_pipe=no
- ])
- ],
- [
- dnl We don't need to add "-pipe" here since it was already added
- dnl for the test.
- dnl CXXFLAGS="$PREPIPECXXFLAGS -pipe"
- dnl CFLAGS="$PREPIPECFLAGS -pipe"
- ],
- [
- CXXFLAGS="$PREPIPECXXFLAGS"
- CFLAGS="$PREPIPECFLAGS"
- ])
-fi
-
-dnl Check for working "const"
-dnl This test doesn't always work.
-dnl AC_C_CONST
-
-dnl Check for working "inline"
-dnl AC_C_INLINE dnl This test now appears to be broken!!!
-if test "$ac_cv_c_inline" = no; then
- AC_DEFINE(ACE_LACKS_INLINE_FUNCTIONS)
-fi
-
-dnl Check to see if we are running on a big endian platform
-dnl "ace/Basic_Types.h" should perhaps be modified to take advantage
-dnl of the results of this test.
-dnl Do not run this test if we are using a cross-compiler.
-if test "$cross_compiling" != yes; then
- AC_C_BIGENDIAN
-fi
-
-dnl Check type sizes
-dnl If we get a size of zero, then the type is unknown to the compiler.
-
-dnl We don't need to check for sizeof(char) right now. Also conflicts with
-dnl ACE definition in Basic_Types.h, so we leave the test out.
-if test "$cross_compiling" != yes; then
- dnl AC_CHECK_SIZEOF(char, 1)
- dnl if test "$ac_cv_sizeof_char" != "0"; then
- dnl AC_DEFINE(ACE_SIZEOF_CHAR, SIZEOF_CHAR)
- dnl fi
- AC_CHECK_SIZEOF(short, 2)
- if test $ac_cv_sizeof_short != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_SHORT, $ac_cv_sizeof_short)
- fi
- AC_CHECK_SIZEOF(int, 4)
- if test $ac_cv_sizeof_int != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_INT, $ac_cv_sizeof_int)
- fi
- AC_CHECK_SIZEOF(long, 4)
- if test $ac_cv_sizeof_long != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_LONG, $ac_cv_sizeof_long)
- fi
- AC_CHECK_SIZEOF(long long, 8)
- if test $ac_cv_sizeof_long_long != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_LONG_LONG, $ac_cv_sizeof_long_long)
- else
- AC_DEFINE(ACE_LACKS_LONGLONG_T)
- fi
- AC_CHECK_SIZEOF(void *, 4)
- if test $ac_cv_sizeof_void_p != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_VOID_P, $ac_cv_sizeof_void_p)
- fi
- AC_CHECK_SIZEOF(float, 4)
- if test $ac_cv_sizeof_float != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_FLOAT, $ac_cv_sizeof_float)
- else
- AC_DEFINE(ACE_LACKS_FLOATING_POINT)
- fi
- AC_CHECK_SIZEOF(double, 8)
- if test $ac_cv_sizeof_double != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_DOUBLE, $ac_cv_sizeof_double)
- else
- AC_DEFINE(ACE_LACKS_FLOATING_POINT)
- fi
- AC_CHECK_SIZEOF(long double, 16)
- if test $ac_cv_sizeof_long_double != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_LONG_DOUBLE, $ac_cv_sizeof_long_double)
- fi
-
- dnl Set the 64 bit unsigned int typedef
- ACE_UINT64=""
- dnl if test "$ace_cv_type_u_longlong_t" = yes; then
- dnl This doesn't work: AC_CHECK_SIZEOF(u_longlong_t, 8)
- dnl if test $ac_cv_sizeof_u_longlong_t = 8; then
- dnl ACE_UINT64="u_longlong_t"
- dnl ace_u_long_long_typedef_set=yes
- dnl fi
- dnl elif test $ac_cv_sizeof_long = 8; then
- if test $ac_cv_sizeof_long = 8; then
- ACE_UINT64="unsigned long"
- ace_u_long_long_typedef_set=yes
- elif test $ac_cv_sizeof_long_long = 8; then
- ACE_UINT64="unsigned long long"
- ace_u_long_long_typedef_set=yes
- else
- ace_u_long_long_typedef_set=no
- fi
-
- dnl Check for broken "signed char"
- dnl If AC_CHECK_SIZEOF(signed char) returns zero then "signed char"
- dnl is broken.
- AC_CHECK_SIZEOF(signed char, 1)
- if test $ac_cv_sizeof_signed_char = 0; then
- AC_DEFINE(ACE_LACKS_SIGNED_CHAR)
- fi
-fi dnl test "$cross_compiling" != yes
-
-dnl Other checks
-
-
-dnl Check for istream operator>> for char, unsigned char and signed char
-ACE_CACHE_CHECK(for istream operator>> for char types,
- ace_cv_feature_char_right_shifts,
- [
- AC_TRY_COMPILE([
-#include <iostream.h>
- ],
- [
-unsigned char a = 0;
-cin >> a;
-
-#ifndef ACE_LACKS_SIGNED_CHAR
-signed char b = 0;
-cin >> b;
-#endif
- ],
- [
- ace_cv_feature_char_right_shifts=yes
- ],
- [
- ace_cv_feature_char_right_shifts=no
- ])
- ], , AC_DEFINE(ACE_LACKS_CHAR_RIGHT_SHIFTS))
-
-
-dnl Check for istream operator>> for char *, unsigned char * and signed char *
-ACE_CACHE_CHECK(for istream operator>> for char * types,
- ace_cv_feature_char_ptr_right_shifts,
- [
- AC_TRY_COMPILE([
-#include <iostream.h>
- ],
- [
-unsigned char * a = 0;
-cin >> a;
-
-#ifndef ACE_LACKS_SIGNED_CHAR
-signed char * b = 0;
-cin >> b;
-#endif
- ],
- [
- ace_cv_feature_char_ptr_right_shifts=yes
- ],
- [
- ace_cv_feature_char_ptr_right_shifts=no
- ])
- ], , AC_DEFINE(ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS))
-
-dnl Check if we have working C++ explicit template destructors
-dnl Thanks to Nanbor Wang <nanbor@cs.wustl.edu> for providing this test.
-ACE_CACHE_CHECK(for working C++ explicit template destructors,
- ace_cv_feature_working_explicit_des,
- [
- AC_TRY_COMPILE([
-#include <iostream.h>
-
-class dyn
-{
- public:
- dyn () { cout << "dyn" << endl; }
- ~dyn () { cout << "~dyn" << endl; }
-};
-
-template <class T>
-class Base
-{
- public:
- Base () { cout << "Base" << endl; }
- virtual void f (void) { cout << "Base::f" << endl; }
- ~Base () { cout << "~Base" << endl; }
-};
-
-template <class T>
-class Derived
-{
- public:
- Derived ()
- {
- x_ = new Base<T> (); cout << "Derived" << endl ;
- }
- virtual void f (void) { cout << "Derived::f" << endl; }
- ~Derived () { x_->~Base (); cout << "~Derived" << endl; }
- private:
- Base<T> *x_;
- T t_;
-};
- ],
- [
- Derived<dyn> *x = new Derived<dyn> ();
-
- x->f ();
-
- delete x;
- return 0;
- ],
- [
- ace_cv_feature_working_explicit_des=yes
- ],
- [
- ace_cv_feature_working_explicit_des=no
- ])
- ], AC_DEFINE(ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR),)
-
-dnl Check for working C++ conversions
-ACE_CACHE_CHECK(for working C++ conversions,
- ace_cv_feature_cxx_working_conversions,
- [
- AC_TRY_COMPILE([
- template <class T>
- class Foo
- {
- public:
- Foo (void) { ace_ptr = 0; }
- operator T * (void) { return ace_ptr; }
-
- private:
- T * ace_ptr;
- };
- ],
- [
- Foo<char> Bar;
-
- Foo<char> * Bar_ptr = &Bar;
-
- char * p = Bar_ptr->operator char * ();
- ],
- [
- ace_cv_feature_cxx_working_conversions=yes
- ],
- [
- ace_cv_feature_cxx_working_conversions=no
- ])
- ], , AC_DEFINE(ACE_HAS_BROKEN_CONVERSIONS))
-
-dnl Check for C++ namespace support
-ACE_CACHE_CHECK(for C++ namespace support,
- ace_cv_feature_cxx_namespaces,
- [
- AC_TRY_COMPILE([
- namespace ACE
- {
- int x;
- }
- ],
- [
- ACE::x = 0;
- ],
- [
- ace_cv_feature_cxx_namespaces=yes
- ],
- [
- ace_cv_feature_cxx_namespaces=no
- ])
- ], , AC_DEFINE(ACE_HAS_BROKEN_NAMESPACES))
-
-dnl Check for C++ standard namespace
-ACE_CACHE_CHECK(for C++ standard namespace,
- ace_cv_feature_posix_uses_std_namespace,[
- AC_TRY_COMPILE([
-#include <iostream.h>
- ],
- [
- std::cout << "FOO" << endl;
- ],
- [
- ace_cv_feature_posix_uses_std_namespace=yes
- ],
- [
- ace_cv_feature_posix_uses_std_namespace=no
- ])
- ], AC_DEFINE(ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB),)
-
-dnl Check for C++ "using" keyword support
-ACE_CACHE_CHECK(for C++ \"using\" keyword support,
- ace_cv_feature_cxx_using_keyword,
- [
- AC_TRY_COMPILE([
-#if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# include <iostream.h>
-#elif !defined (ACE_HAS_BROKEN_NAMESPACES)
- namespace ACE
- {
- int x;
- }
-#endif
- ],
- [
-#if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
- using namespace std;
-
- cout << "FOO" << endl;
-#elif !defined (ACE_HAS_BROKEN_NAMESPACES)
- using namespace ACE;
-
- x++;
-#else
-# error Namespaces are not supported on this platform.
-Throw in some extraneous text since some compilers are stupid
-enough to interpret "#error" as a warning. Go figure. :(
-This extraneous text should force an error.
-#endif
- ],
- [
- ace_cv_feature_cxx_using_keyword=yes
- ],
- [
- ace_cv_feature_cxx_using_keyword=no
- ])
- ], AC_DEFINE(ACE_HAS_USING_KEYWORD),)
-
-dnl Check for new style C++ include file support
-ACE_CACHE_CHECK(for new style C++ include file support,
- ace_cv_lib_posix_standard_includes,[
- ace_cv_lib_posix_standard_includes=no
- if test "$ace_cv_feature_posix_uses_std_namespace" = yes; then
- AC_TRY_COMPILE(
- [
-#include <string>
- ],
- [
-#ifdef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
- std::string str;
-#else
- string str;
-#endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */
- ],
- ace_cv_lib_posix_standard_includes=yes)
- fi
- ],
- [
- AC_DEFINE(ACE_HAS_STDCPP_STL_INCLUDES)
- AC_DEFINE(ACE_HAS_STRING_CLASS)
- ],)
-
-dnl Check whether platform supports the standard C++ library
-dnl TODO: For now, check whether headers <new>, <iomanip>
-dnl and <memory> exist; is there a better way?
-if test "$ac_cv_header_new" = yes &&
- test "$ac_cv_header_iomanip" = yes &&
- test "$ac_cv_header_memory" = yes; then
-
- dnl Check for auto_ptr class
- ACE_CACHE_CHECK(for C++ auto_ptr class,
- ace_cv_lib_auto_ptr_class,
- [
- AC_TRY_COMPILE(
- [
-#include <memory>
- ],
- [
- int *foo = new int;
-
-#ifdef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
- std::auto_ptr<int> safe (foo);
-#else
- auto_ptr<int> safe (foo);
-#endif
- foo = safe.release ();
-
- delete foo;
- ],
- [
- ace_cv_lib_auto_ptr_class=yes
- ],
- [
- ace_cv_lib_auto_ptr_class=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_STANDARD_CPP_LIBRARY)
- ],
- [
- AC_DEFINE(ACE_LACKS_AUTO_PTR)
- ])
-fi
-
-if test $ace_cv_lib_auto_ptr_class=yes; then
- dnl Check for auto_ptr reset method
- ACE_CACHE_CHECK(for C++ auto_ptr reset method,
- ace_cv_lib_auto_ptr_reset,
- [
- AC_TRY_COMPILE(
- [
-#include <memory>
- ],
- [
- int *foo = new int;
-
-#ifdef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
- std::auto_ptr<int> safe (foo);
-#else
- auto_ptr<Foo> safe (foo);
-#endif
- int *bar = new int;
-
- safe.reset (bar);
-
- foo = safe.release ();
- ],
- [
- ace_cv_lib_auto_ptr_reset=yes
- ],
- [
- ace_cv_lib_auto_ptr_reset=no
- ])
- ],, AC_DEFINE(ACE_AUTO_PTR_LACKS_RESET))
-fi dnl test $ace_cv_lib_auto_ptr_class=yes
-
-dnl Check for ANSI C++ cast support
-ACE_CACHE_CHECK(for ANSI C++ cast support,
- ace_cv_lib_posix_standard_casts,[
- ACE_CONVERT_WARNINGS_TO_ERRORS([
- AC_TRY_COMPILE(
- [/* No headers */],
- [
- class B { public: int b_; virtual int b() const = 0; };
- class D : public B { virtual int b() const { return b_; } };
-
- void* vp = 0;
- char* cp = 0;
- float f = 1.0;
- int i = 0;
- int* ip = 0;
- const int* jp = 0;
-
- i = static_cast<int> (f);
- ip = const_cast<int*> (jp);
- cp = reinterpret_cast<char*> (vp);
-
- B* bp = new D;
- D* dp = dynamic_cast<D*> (bp);
- delete bp;
- ],
- [
- ace_cv_lib_posix_standard_casts=yes
- AC_CACHE_VAL(ace_cv_lib_rtti, ace_cv_lib_rtti=yes)
- ],
- [
- AC_TRY_COMPILE(
- [/* No headers */],
- [
- class B { public: int b_; virtual int b() const = 0; };
- class D : public B { virtual int b() const { return b_; } };
-
- void* vp = 0;
- char* cp = 0;
- float f = 1.0;
- int i = 0;
- int* ip = 0;
- const int* jp = 0;
-
- i = static_cast<int> (f);
- ip = const_cast<int*> (jp);
- cp = reinterpret_cast<char*> (vp);
- ],
- [
- ace_cv_lib_posix_standard_casts=yes
- AC_CACHE_VAL(ace_cv_lib_rtti, ace_cv_lib_rtti=no)
- ],
- [
- ace_cv_lib_posix_standard_casts=no
- ])
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_ANSI_CASTS)
- if test "$ace_cv_lib_rtti" != yes; then
- AC_DEFINE(ACE_LACKS_RTTI)
- fi
- ],)
-
-dnl Check for explicit C++ constructor support
-ACE_CACHE_CHECK(for explicit C++ constructor support,
- ace_cv_feature_explicit_constructor,
- [
- AC_TRY_COMPILE(
- [
-class Foo
-{
- public:
- explicit Foo (int i) { this->val_ = i; }
- private:
- int val_;
-};
- ],
- [
-Foo bar = 'a'; // error: no implicit char->Foo conversion
- ],
- [
-dnl The above test *should* fail!
- ace_cv_feature_explicit_constructor=no
- ],
- [
- AC_TRY_COMPILE(
- [
-class Foo
-{
- public:
- explicit Foo (int i) { this->val_ = i; }
- private:
- int val_;
-};
- ],
- [
-Foo bar (5);
- ],
- [
- ace_cv_feature_explicit_constructor=yes
- ],
- [
- ace_cv_feature_explicit_constructor=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_EXPLICIT_KEYWORD),)
-
-dnl Check for C++ mutable keyword
-ACE_CACHE_CHECK(for C++ mutable keyword,
- ace_cv_feature_cxx_mutable_keyword,
- [
- AC_TRY_COMPILE(
- [
-class Foo
-{
- public:
- Foo (void) : val_ (0) {}
-
- mutable int val_;
-};
- ],
- [
-const Foo bar;
-
-bar.val_ = 3; // mutable declaration should allow this to be modified
- ],
- [
- ace_cv_feature_cxx_mutable_keyword=yes
- ],
- [
- ace_cv_feature_cxx_mutable_keyword=no
- ])
- ], AC_DEFINE(ACE_HAS_MUTABLE_KEYWORD),)
-
-dnl Check if platform supports typename keyword
-ACE_CACHE_CHECK(for C++ typename keyword,
- ace_cv_feature_posix_typename_keyword,[
- AC_TRY_COMPILE([
- class Bar
- {
- public:
- typedef int Y;
- Bar(int bar) : bar_(bar) {}
- private:
- int bar_;
- };
-
- template <class T>
- class Foo
- {
- public:
- typedef typename T::Y Y;
- Foo(T* foo) : foo_(foo) {}
- void bilbo(typename T::Y y);
- private:
- T* foo_;
- };
-
- template <class T>
- void Foo<T>::bilbo(typename T::Y y)
- {
- }
- ],
- [
- Bar bar(15);
- Foo<Bar> foo(&bar);
- foo.bilbo(10);
- ],
- [
- ace_cv_feature_posix_typename_keyword=yes
- ],
- [
- ace_cv_feature_posix_typename_keyword=no
- ])
- ], AC_DEFINE(ACE_HAS_TYPENAME_KEYWORD),)
-
-dnl Check if platform supports placement new operator
-ACE_CACHE_CHECK(for C++ placement new operator,
- ace_cv_feature_placement_new,[
- AC_TRY_COMPILE([
-#if defined (ACE_HAS_NEW_NO_H)
-# include <new>
-#elif defined (ACE_HAS_NEW_H)
-# include <new.h>
-#endif
-
-class foo
-{
-public:
- void *operator new (size_t, void *p) { return p; }
-};
- ],
- [
-int *x = 0;
-foo *f = new (x) foo;
- ],
- [
- ace_cv_feature_placement_new=yes
- ],
- [
- ace_cv_feature_placement_new=no
- ])
- ], , AC_DEFINE(ACE_LACKS_PLACEMENT_OPERATOR_NEW))
-
-dnl Check if platform supports placement delete operator
-ACE_CACHE_CHECK(for C++ placement delete operator,
- ace_cv_feature_placement_delete,[
- AC_TRY_COMPILE([
-#if defined (ACE_HAS_NEW_NO_H)
-# include <new>
-#elif defined (ACE_HAS_NEW_H)
-# include <new.h>
-#endif
-
-class foo
-{
-public:
- void *operator new (size_t, void *p) { return p; }
- void operator delete (void *p, void *) {}
-};
- ],
- [
-int *x = 0;
-foo *f = new (x) foo;
-
-// delete f; // Don't call delete for this test!
- ],
- [
- ace_cv_feature_placement_delete=yes
- ],
- [
- ace_cv_feature_placement_delete=no
- ])
- ], , AC_DEFINE(ACE_LACKS_PLACEMENT_OPERATOR_DELETE))
-
-
-dnl Check if const char * can be rvalue in conditional operator
-ACE_CACHE_CHECK(if const char * can be rvalue in conditional operator,
- ace_cv_feature_conditional_str_cast,
- [
- AC_TRY_COMPILE(,
- [
- const char * foo = 0;
- const char * bar = 0;
-
- const char * ace = ((1 < 2) ? foo : bar);
- ],
- [
- ace_cv_feature_conditional_str_cast=yes
- ],
- [
- ace_cv_feature_conditional_str_cast=no
- ])
- ], , AC_DEFINE(ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS))
-
-dnl Check if templates require source on platform
-dnl FIXME: This test may be broken.
-ACE_CACHE_CHECK(if templates require source,
- ace_cv_feature_templates_require_source,
- [
- dnl Create the common header file
- cat > ace_test.h <<EOF
-#ifndef FOO_H
-#define FOO_H
-template <class T>
-class Foo
-{
- public:
- Foo (T val);
- private:
- T value_;
-};
-
-template <class T>
-class Bar
-{
- public:
- Bar (Foo<T> *);
- private:
- Foo<T> *foo_ptr;
-};
-#endif /* FOO_H */
-EOF
-
- dnl Create template source test file
- cat > ace_test.$ac_ext <<EOF
-#include "ace_test.h"
-#ifndef FOO_CXX
-#define FOO_CXX
-template <class T>
-Foo<T>::Foo (T val)
- : value_ (val)
-{
- // Nothing else to do.
-}
-
-template <class T>
-Bar<T>::Bar (Foo<T> *val)
- : foo_ptr (val)
-{
- // Nothing else to do.
-}
-#endif /* FOO_CXX */
-EOF
-
- dnl Add the ACE-specific compiler flags to the compiler flags for
- dnl the duration of this test.
- ace_cxx_template_save_CXXFLAGS="$CXXFLAGS"
- ace_cxx_template_save_CPPFLAGS="$CPPFLAGS"
- ace_cxx_template_save_LDFLAGS="$LDFLAGS"
- CXXFLAGS="$ACE_CXXFLAGS $CXXFLAGS"
- CPPFLAGS="$ACE_CPPFLAGS $CPPFLAGS"
- LDFLAGS="$ACE_LDFLAGS $LDFLAGS"
-
- dnl Remove any template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl First try without explicit template instantiation.
- AC_TRY_LINK([
-#include "ace_test.h"
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is not required.
- ace_cv_feature_templates_require_source=no
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL([ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is not required.
- AC_CACHE_VAL([ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=no])
-
- dnl Pragma template instantiation is not required.
- AC_CACHE_VAL([ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=no])
- ],
- [
- dnl Remove any template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Now try including the template source.
- AC_TRY_LINK([
-#include "ace_test.h"
-#include "ace_test.$ac_ext"
- ],
- [
-Foo<int> foo (15);
-
-Bar<char> bar (0);
- ],
- [
- dnl Template source is required!
- ace_cv_feature_templates_require_source=yes
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL([ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is not required.
- AC_CACHE_VAL([ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=no])
-
- dnl Pragma template instantiation is not required.
- AC_CACHE_VAL([ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=no])
- ],
- [
-dnl BEGIN OUTER REQUIRE SOURCE #########################################
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Now try with explicit template instantiation.
- AC_TRY_LINK([
-#include "ace_test.h"
-
-template class Foo<int>;
-template class Bar<char>;
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is not required.
- ace_cv_feature_templates_require_source=no
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL([ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is required.
- AC_CACHE_VAL([ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=yes])
-
- dnl Pragma template instantiation is not required.
- AC_CACHE_VAL([ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=no])
- ],
- [
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Don't set
- dnl ace_cv_feature_pragma_template_instantiation
- dnl to "no" here. It should only be set to "no" if
- dnl explicit template instantiation works.
-
- dnl Now try including the template source.
- AC_TRY_LINK([
-#include "ace_test.h"
-#include "ace_test.$ac_ext"
-
-template class Foo<int>;
-template class Bar<char>;
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is required!
- ace_cv_feature_templates_require_source=yes
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL([ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is required.
- AC_CACHE_VAL(
- [ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=yes])
-
- dnl Pragma template instantiation is not required.
- AC_CACHE_VAL(
- [ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=no])
- ],
- [
-dnl BEGIN INNER REQUIRE SOURCE #########################################
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Don't set
- dnl ace_cv_feature_explicit_template_instantiation
- dnl to "no" here. It should only be set to "no" if
- dnl pragma template instantiation works.
-
- dnl Now try with pragma template instantiation.
- AC_TRY_LINK([
-#include "ace_test.h"
-
-#pragma instantiate Foo<int>
-#pragma instantiate Bar<char>
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is not required.
- ace_cv_feature_templates_require_source=no
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL(
- [ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is not required.
- AC_CACHE_VAL(
- [ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=no])
-
- dnl Pragma template instantiation is required.
- AC_CACHE_VAL(
- [ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=yes])
- ],
- [
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Don't set
- dnl ace_cv_feature_explicit_template_instantiation
- dnl to "no" here. It should only be set to "no" if
- dnl pragma template instantiation works.
-
- dnl Now try including the template source.
- AC_TRY_LINK([
-#include "ace_test.h"
-#include "ace_test.$ac_ext"
-
-#pragma instantiate Foo<int>
-#pragma instantiate Bar<char>
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is required!
- ace_cv_feature_templates_require_source=yes
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL(
- [ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is not required.
- AC_CACHE_VAL(
- [ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=no])
-
- dnl Pragma template instantiation is required.
- AC_CACHE_VAL(
- [ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=yes])
- ],
- [
- dnl If we get here, then we have no idea what is needed!
- ace_cv_feature_templates_require_source=no
- ])
- ])
-dnl END INNER REQUIRE SOURCE #########################################
- ])
- ])
-dnl END OUTER REQUIRE SOURCE #########################################
- ])
- ])
-
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Remove the test additional test files.
- rm -f ace_test*
-
- dnl Restore the compiler flags
- CXXFLAGS="$ace_cxx_template_save_CXXFLAGS"
- CPPFLAGS="$ace_cxx_template_save_CPPFLAGS"
- LDFLAGS="$ace_cxx_template_save_LDFLAGS"
- ],
- [
- AC_DEFINE(ACE_TEMPLATES_REQUIRE_SOURCE)
- ],
- [
- dnl Check if templates require pragma.
- ACE_CACHE_CHECK([if templates require pragma],
- [ace_cv_feature_templates_require_pragma],
- [
- dnl Create the common header file
- cat > ace_test.h <<EOF
-#ifndef FOO_H
-#define FOO_H
-template <class T>
-class Foo
-{
- public:
- Foo (T val);
- private:
- T value_;
-};
-
-template <class T>
-class Bar
-{
- public:
- Bar (Foo<T> *);
- private:
- Foo<T> *foo_ptr;
-};
-#endif /* FOO_H */
-EOF
-
- dnl Create template source test file
- cat > ace_test.$ac_ext <<EOF
-#include "ace_test.h"
-#ifndef FOO_CXX
-#define FOO_CXX
-template <class T>
-Foo<T>::Foo (T val)
- : value_ (val)
-{
- // Nothing else to do.
-}
-
-template <class T>
-Bar<T>::Bar (Foo<T> *val)
- : foo_ptr (val)
-{
- // Nothing else to do.
-}
-#endif /* FOO_CXX */
-EOF
-
- dnl Add the ACE-specific compiler flags to the compiler flags for
- dnl the duration of this test.
- ace_cxx_template_save_CXXFLAGS="$CXXFLAGS"
- ace_cxx_template_save_CPPFLAGS="$CPPFLAGS"
- ace_cxx_template_save_LDFLAGS="$LDFLAGS"
- CXXFLAGS="$ACE_CXXFLAGS $CXXFLAGS"
- CPPFLAGS="$ACE_CPPFLAGS $CPPFLAGS"
- LDFLAGS="$ACE_LDFLAGS $LDFLAGS"
-
- dnl Remove any template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl We already know that the simplest case doesn't work so go
- dnl straight to the "require pragma" test.
-
- dnl Now try including the template pragma.
- AC_TRY_LINK([
-#include "ace_test.h"
-
-#pragma implementation ("ace_test.$ac_ext")
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is required!
- ace_cv_feature_templates_require_pragma=yes
- ],
- [
-dnl BEGIN OUTER REQUIRE PRAGMA #########################################
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Now try with explicit template instantiation.
- AC_TRY_LINK([
-#include "ace_test.h"
-
-#pragma implementation ("ace_test.$ac_ext")
-
-template class Foo<int>;
-template class Bar<char>;
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template pragma is required!
- ace_cv_feature_templates_require_pragma=yes
-
- dnl Explicit template instantiation is required.
- AC_CACHE_VAL(
- [ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=yes])
-
- dnl Pragma template instantiation is not required.
- AC_CACHE_VAL(
- [ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=no])
- ],
- [
-dnl BEGIN INNER REQUIRE PRAGMA #########################################
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Now try with pragma template instantiation.
- AC_TRY_LINK([
-#include "ace_test.h"
-
-#pragma implementation ("ace_test.$ac_ext")
-
-#pragma instantiate Foo<int>
-#pragma instantiate Bar<char>
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template pragma is required!
- ace_cv_feature_templates_require_pragma=yes
-
- dnl Explicit template instantiation is not required.
- AC_CACHE_VAL(
- [ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=no])
-
- dnl Pragma template instantiation is required.
- AC_CACHE_VAL(
- [ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=yes])
- ],
- [
- dnl If we get here, then we have no idea what is needed!
- ace_cv_feature_templates_require_pragma=no
- ])
-dnl END INNER REQUIRE PRAGMA #########################################
- ])
-dnl END OUTER REQUIRE PRAGMA #########################################
- ])
-
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Remove the additional test files.
- rm -f ace_test*
-
- dnl Restore the compiler flags
- CXXFLAGS="$ace_cxx_template_save_CXXFLAGS"
- CPPFLAGS="$ace_cxx_template_save_CPPFLAGS"
- LDFLAGS="$ace_cxx_template_save_LDFLAGS"
- ],
- [
- AC_DEFINE(ACE_TEMPLATES_REQUIRE_PRAGMA)
- ],
- [
- dnl Do nothing.
- ])
- ])
-
-ACE_CACHE_CHECK([if explicit template instantiation is needed],
- [ace_cv_feature_explicit_template_instantiation],
- [
- AC_MSG_ERROR([
-Bug in configure script, check for need of explicit template
-instantiation should have occurred during check for need of template
-source. Please e-mail the maintainer of this configure script:
- $ACE_CONFIGURE_MAINTAINER
-this message.
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- ],
- [
- ACE_CACHE_CHECK([if pragma template instantiation is needed],
- [ace_cv_feature_pragma_template_instantiation],
- [
- AC_MSG_ERROR([
-Bug in configure script, check for need of pragma template
-instantiation should have occurred during check for need of template
-source. Please e-mail the maintainer of this configure script:
- $ACE_CONFIGURE_MAINTAINER
-this message.
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
- ],
- [
- dnl Do nothing
- ])
- ])
-
-
-dnl Check if platform supports template specialization
-ACE_CACHE_CHECK(for template specialization,
- ace_cv_feature_cxx_template_specialization,[
- AC_TRY_COMPILE(
- [
- template <class T>
- class Foo
- {
- public:
- Foo(T bar) : bar_(bar) {};
- private:
- T bar_;
- };
-
- class Foo<int>
- {
- public:
- Foo(int bar) : bar_(bar + 1) {};
- private:
- int bar_;
- };
- ],
- [
- Foo<int> foo(11);
- ],
- [
- ace_cv_feature_cxx_template_specialization=yes
- ],
- [
- ace_cv_feature_cxx_template_specialization=no
- ])
- ], AC_DEFINE(ACE_HAS_TEMPLATE_SPECIALIZATION),)
-
-dnl Check if platform supports *standard *template specialization
-ACE_CACHE_CHECK(for standard template specialization,
- ace_cv_feature_cxx_std_template_specialization,[
- AC_TRY_COMPILE(
- [
-// Some compilers have a hard time with this test since the syntax is
-// too "new" for them.
-
-// general vector type
-template<class T>
-class Vector
-{
-public:
- Vector (void);
- Vector (int);
-
- T& elem (int i) { return v[i]; }
- T& operator[] (int i);
-private:
- T* v;
- int sz;
-};
-
-// void * specialization
-template<>
-class Vector<void *>
-{
-public:
- Vector (void);
- Vector (int);
-
- void*& elem (int i) { return p[i]; }
- void*& operator[] (int i);
-private:
- void** p;
- int sz;
-};
- ],
- [
-Vector<int> vi;
-Vector<void *> vpv;
- ],
- [
- ace_cv_feature_cxx_std_template_specialization=yes
- ],
- [
- ace_cv_feature_std_cxx_template_specialization=no
- ])
- ], AC_DEFINE(ACE_HAS_STD_TEMPLATE_SPECIALIZATION),)
-
-if test "$ace_cv_feature_cxx_std_template_specialization" = yes; then
-
-dnl Check if platform needs *standard* template method specialization
-ACE_CACHE_CHECK(if platform needs standard template method specialization,
- ace_cv_feature_cxx_std_template_method_specialization,[
- AC_TRY_COMPILE(
- [
-// Some compilers have a hard time with this test since the syntax is
-// too "new" for them.
-
-// general vector type
-template<class T>
-class Vector
-{
-public:
- Vector (void);
- Vector (int);
-
- T& elem (int i) { return v[i]; }
- T& operator[] (int i);
-private:
- T* v;
- int sz;
-};
-
-// void * specialization
-template<>
-class Vector<void *>
-{
-public:
- Vector (void);
- Vector (int);
-
- void*& elem (int i) { return p[i]; }
- void*& operator[] (int i);
-private:
- void** p;
- int sz;
-};
-
-void *&
-Vector<void *>::operator[] (int i)
-{
- return p[i];
-}
- ],
- [
- Vector <void *> vpv;
- ],
- [
-dnl template method specialization is *not* needed
- ace_cv_feature_cxx_std_template_method_specialization=no
- ],
- [
- AC_TRY_COMPILE(
- [
-// Some compilers have a hard time with this test since the syntax is
-// too "new" for them.
-
-// general vector type
-template<class T>
-class Vector
-{
-public:
- Vector (void);
- Vector (int);
-
- T& elem (int i) { return v[i]; }
- T& operator[] (int i);
-private:
- T* v;
- int sz;
-};
-
-// void * specialization
-template<>
-class Vector<void *>
-{
-public:
- Vector (void);
- Vector (int);
-
- void*& elem (int i) { return p[i]; }
- void*& operator[] (int i);
-private:
- void** p;
- int sz;
-};
-
-template <>
-void *&
-Vector<void *>::operator[] (int i)
-{
- return p[i];
-}
- ],
- [
- Vector<void *> vpv;
- ],
- [
-dnl template method specialization is needed
- ace_cv_feature_cxx_std_template_method_specialization=yes
- ],
- [
-dnl template method specialization is *not* needed
- ace_cv_feature_cxx_std_template_method_specialization=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION),)
-fi dnl test $ace_cv_feature_cxx_std_template_specialization = yes
-
-dnl Check if platform supports template typedefs
-ACE_CACHE_CHECK(for template typedefs,
- ace_cv_feature_posix_template_typedefs,[
- AC_TRY_COMPILE([
-#if defined (ACE_HAS_TYPENAME_KEYWORD)
-#define TYPENAME typename
-#else
-#define TYPENAME
-#endif
-
-class Bar
-{
-public:
- typedef int Y;
- Bar(int bar) : bar_(bar) {}
- int value() const { return bar_; }
-private:
- int bar_;
-};
-
-template <class T>
-class Foo
-{
-public:
- typedef TYPENAME T::Y Y;
- Foo(T* foo) : foo_(foo) {}
- void print(Y);
-private:
- T* foo_;
-};
-
-template <class T>
-void Foo<T>::print(TYPENAME T::Y)
-{
-}
- ],
- [
-Bar bar(15);
-Foo<Bar> foo(&bar);
-foo.print(11);
- ],
- [
- ace_cv_feature_posix_template_typedefs=yes
- ],
- [
- ace_cv_feature_posix_template_typedefs=no
- ])
- ], AC_DEFINE(ACE_HAS_TEMPLATE_TYPEDEFS),)
-
-dnl Check if platform supports static data member templates
-ACE_CACHE_CHECK(for static data member templates,
- ace_cv_feature_posix_static_data_member_templates,[
- AC_TRY_COMPILE([
-template <class T>
-class Foo
-{
-public:
- static T* sdm;
-};
-
-template <class T> T* Foo<T>::sdm = 0;
- ],
- [
- /* No body */
- ],
- [
- ace_cv_feature_posix_static_data_member_templates=yes
- ],
- [
- ace_cv_feature_posix_static_data_member_templates=no
- ])
- ], ,AC_DEFINE(ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES))
-
-dnl Check if compiler needs definitions for hidden functions
-ACE_CACHE_CHECK(if definition is needed for hidden functions,
- ace_cv_feature_need_func_def,
- [
- AC_TRY_LINK(
- [
- class Foo
- {
- public:
- Foo (void) { a_ = 0; }
- private:
- Foo (const Foo &);
- void operator= (const Foo &);
-
- int a_;
- };
- ],
- [
- Foo Bar;
- ],
- [
- ace_cv_feature_need_func_def=no
- ],
- [
- AC_TRY_LINK(
- [
- class Foo
- {
- public:
- Foo (void) { a_ = 0; }
- private:
- Foo (const Foo &);
- const Foo & operator= (const Foo &);
-
- int a_;
- };
-
- Foo::Foo (const Foo &)
- {
- a_ = 0;
- }
-
- const Foo &
- Foo::operator= (const Foo &)
- {
- a_ = 0;
-
- return *this;
- }
- ],
- [
- Foo Bar;
- ],
- [
- ace_cv_feature_need_func_def=yes
- ],
- [
- dnl If we get here then we don't know what is needed!
- ace_cv_feature_need_func_def=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_NEEDS_FUNC_DEFINITIONS)
- ],)
-
-dnl Check if platform supports C++ exceptions
-if test "$ace_user_enable_exceptions" = yes; then
- ACE_CACHE_CHECK(for C++ exceptions,
- ace_cv_feature_posix_exceptions,[
- AC_TRY_COMPILE(,
- [
- int ret = 0;
- class ACE {};
- try
- {
- throw ACE();
- }
- catch (ACE)
- {
- ret = 1;
- }
- ],
- [
- ace_cv_feature_posix_exceptions=yes
- ],
- [
- ace_cv_feature_posix_exceptions=no
- ])
- ], AC_DEFINE(ACE_HAS_EXCEPTIONS), ace_user_enable_exceptions=no)
-
-fi dnl test "$ace_user_enable_exceptions" = yes
-
-dnl Check if we need a non-static object manager
-dnl TODO / FIXME
-dnl ACE_CACHE_CHECK(if we need a non-static object manager,
-dnl ace_cv_feature_nonstatic_object_manager,[
-dnl ace_cv_feature_nonstatic_object_manager=yes
- dnl TODO: Should we check for this thing (and HOW), or
- dnl should it be the user's choice?
- dnl
- dnl For now, we will leave it as a user's choice.
- dnl -Ossama
-dnl ],
-dnl [
- dnl Don't define anything until we have a test for this.
- dnl AC_DEFINE(ACE_HAS_NONSTATIC_OBJECT_MANAGER)
-dnl ],)
-
-dnl Save the cache for debugging purposes
-AC_CACHE_SAVE
-
-dnl
-dnl SECTION 10: checks for library functions
-dnl
-
-AC_FUNC_ALLOCA
-if test "$ac_cv_header_alloca_h" = yes; then
- AC_DEFINE(ACE_HAS_ALLOCA_H)
-fi
-if test "$ac_cv_func_alloca_works" = yes; then
- AC_DEFINE(ACE_HAS_ALLOCA)
-fi
-
-dnl ACE should really have something for both the sys/mman.h header
-dnl and the mmap function since we need sys/mman.h for functions like
-dnl mprotect and msync, but don't want to use mmap if it doesn't work.
-dnl For now, we just check for the sys/mman.h header earlier in this
-dnl configure script.
-dnl
-dnl AC_FUNC_MMAP
-dnl if test "$ac_cv_func_mmap_fixed_mapped" = no; then
-dnl Even if we have mmap, do not use if broken!
-dnl AC_DEFINE(ACE_LACKS_MMAP)
-dnl fi
-
-dnl Check if closedir() returns a meaningful value
-AC_FUNC_CLOSEDIR_VOID
-
-dnl Check for PWD functions
-AC_CHECK_FUNC(getpwnam,,) dnl
-AC_CHECK_FUNC(setpwent,,) dnl
-AC_CHECK_FUNC(endpwent,,) dnl
-AC_CHECK_FUNC(getpwent,,) dnl
-AC_CHECK_FUNC(getpwuid,,) dnl
-
-if test "$ac_cv_func_getpwnam" != yes ||
- test "$ac_cv_func_setpwent" != yes ||
- test "$ac_cv_func_endpwent" != yes ||
- test "$ac_cv_func_getpwent" != yes ||
- test "$ac_cv_func_getpwuid" != yes; then
- AC_DEFINE(ACE_LACKS_PWD_FUNCTIONS) dnl
-else
- dnl The password file related functions above are required for ACE's
- dnl alternate implementation.
-
- ACE_CONVERT_WARNINGS_TO_ERRORS([
- dnl Check for functions necessary for ACE's alternate implementation
- dnl of the now obsolete cuserid() function.
- ACE_CACHE_CHECK([checking if ACE cuserid implementation should be used],
- [ace_cv_lib_use_alt_cuserid],
- [
- AC_TRY_LINK(
- [
-/* Undefine _XOPEN_SOURCE since it may make the cuserid() prototype
- visible. ACE should not rely on such feature test macros. */
-#undef _XOPEN_SOURCE
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#else
-# error No unistd.h header. Need header where cuserid() is located.
-#endif /* ACE_LACKS_UNISTD_H */
- ],
- [
- char * foo = cuserid ((char *)0);
- ],
- [
- dnl If successful then use the system cuserid() implementation,
- dnl despite the fact that ACE's implementation may be safer.
- ace_cv_lib_use_alt_cuserid=no
- ],
- [
- AC_TRY_LINK(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#undef _XOPEN_SOURCE
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#else
-# error No unistd.h header. Need header where geteuid() is located.
-#endif
- ],
- [
- uid_t foo = geteuid ();
- ],
- [
- dnl All of the functions necessary for ACE's cuserid()
- dnl implementation exist.
- ace_cv_lib_use_alt_cuserid=yes
- ],
- [
- dnl If we get here, we're hosed!
- ace_cv_lib_use_alt_cuserid=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_ALT_CUSERID)
- ],)
- ])
-fi
-
-
-
-dnl Check for `strftime' in the `intl' library, for SCO UNIX
-AC_FUNC_STRFTIME
-
-case "$host" in
- *win32*)
- AC_CHECK_FUNC(CancelIO, dnl
- AC_DEFINE(ACE_HAS_CANCEL_IO),)
-
- AC_CHECK_FUNC(SignalObjectAndWait, dnl
- AC_DEFINE(ACE_HAS_SIGNAL_OBJECT_AND_WAIT),)
-
- AC_CHECK_FUNC(TryEnterCriticalSection, dnl
- AC_DEFINE(ACE_HAS_WIN32_TRYLOCK),)
- ;;
- *)
- ;;
-esac
-
-AC_CHECK_FUNC(access, dnl
- ,
- AC_DEFINE(ACE_LACKS_ACCESS))
-
-AC_CHECK_FUNC(bsearch, dnl
- ,
- AC_DEFINE(ACE_LACKS_BSEARCH))
-
-AC_CHECK_FUNC(qsort, dnl
- ,
- AC_DEFINE(ACE_LACKS_QSORT))
-
-dnl ACE uses execv, execvp and execve, so we don't bother to check
-dnl for the others (e.g. execl, execlp, execle)
-AC_CHECK_FUNCS(execv execvp execve, dnl
- ,
- AC_DEFINE(ACE_LACKS_EXEC))
-
-AC_CHECK_FUNC(fcntl, dnl
- ,
- AC_DEFINE(ACE_LACKS_FCNTL))
-
-AC_CHECK_FUNC(fsync, dnl
- ,
- AC_DEFINE(ACE_LACKS_FSYNC))
-
-AC_CHECK_FUNC(getmsg, dnl
- [
- AC_TRY_RUN(
- [
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif /* !ACE_LACKS_UNISTD_H */
-
-#ifdef ACE_HAS_SYS_IOCTL_H
-# include <sys/ioctl.h>
-#endif /* ACE_HAS_SYS_IOCTL_H */
-
-#ifdef ACE_HAS_STREAMS
-# include <stropts.h>
-#endif /* ACE_HAS_STREAMS */
-
-int
-main ()
-{
- int fds[2];
-
- if (pipe (fds) != 0)
- return -1;
-
-/*
- * Verify that we can actually set a STREAM option that ACE uses.
- * This is particularly necessary for platforms where compiling and
- * linking succeed but fail at run-time due to a missing actual
- * STREAMS implementation. For example, Linux/glibc requires a
- * STREAMS patch/add-on.
- */
-
- int arg = RMSGN;
-
- if (ioctl (fds[0], I_SRDOPT, (void *) arg) != 0)
- return -1;
-
- return 0;
-}
- ],
- [
- AC_DEFINE(ACE_HAS_STREAM_PIPES)
- ],,
- [
- dnl action if cross-compiling
- AC_DEFINE(ACE_HAS_STREAM_PIPES)
- ])
- ],)
-
-AC_CHECK_FUNC(gethostbyaddr,,) dnl
-
-AC_CHECK_FUNC(difftime, dnl
- ,
- AC_DEFINE(ACE_LACKS_DIFFTIME))
-
-dnl Check for 64 bit llseek() or lseek64()
-ACE_CHECK_LSEEK64
-
-AC_CHECK_FUNC(bind, dnl
- [
- ACE_CACHE_CHECK(if bind() will select the port if it is zero,
- ace_cv_have_wildcard_bind,
- [
- AC_TRY_RUN(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <string.h> /* for memset() */
-
- int main () {
-
- int sockfd = socket(AF_INET, SOCK_STREAM, 0);
-
- sockaddr_in serv_addr;
-
- (void) memset ((void *) &serv_addr, 0, sizeof(serv_addr));
-
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
- serv_addr.sin_port = 0;
-
- return bind (sockfd, (struct sockaddr *) &serv_addr,
- sizeof(serv_addr));
- }
- ],
- [
- ace_cv_have_wildcard_bind=yes
- ],
- [
- ace_cv_have_wildcard_bind=no
- ],
- [
- dnl action if cross-compiling
- ace_cv_have_wildcard_bind=yes
- ])
- ],, AC_DEFINE(ACE_LACKS_WILDCARD_BIND))
- ],)
-
-AC_CHECK_FUNC(poll, dnl
- [
- ACE_CACHE_CHECK(if poll is broken,
- ace_cv_poll_is_broken,
- [
- AC_TRY_RUN(
- [
-#include <poll.h>
-#include <time.h>
-
-#ifdef ACE_LACKS_SYSTIME_H
-# include <sys/time.h>
-#endif
-
- int main () {
-
- int timeout = 2000; /* 2000 milliseconds */
- int timeout_arg = timeout;
- /* poll() modifies timeout argument on some platforms */
-
- int result = 0;
-
- time_t *t = 0;
-
- time_t time1 = time(t);
-
- result = poll(0, 0, timeout_arg);
-
- time_t time2 = time(t);
- time_t diff = time2 - time1;
-
- /* If (diff * 1000) < timeout then poll() is broken! */
- if (result >= 0)
- return (((diff * 1000) < timeout) ? 1 : 0);
- else
- return 1; /* We had a problem with poll() so we don't
- know what really happened. */
- }
- ],
- [
- ace_cv_poll_is_broken=no
- ],
- [
- ace_cv_poll_is_broken=yes
- ],
- [
- dnl action if cross-compiling
- ace_cv_poll_is_broken=no
- ])
- ], AC_DEFINE(ACE_POLL_IS_BROKEN),)
- ],)
-
-AC_CHECK_FUNC(gethrtime, dnl
- [
- ACE_CHECK_TYPE(hrtime_t, sys/time.h, AC_DEFINE(ACE_HAS_HI_RES_TIMER),)
- ],)
-
-AC_CHECK_FUNC(pread, dnl
- AC_CHECK_FUNC(pwrite,
- [
- AC_DEFINE(ACE_HAS_P_READ_WRITE)
- dnl Check if _XOPEN_SOURCE=500 macro is needed to make the pread() and
- dnl pwrite() prototypes visible.
- ACE_CACHE_CHECK(for pread prototype,
- ace_cv_lib_has_pread_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_xopen="-U_XOPEN_SOURCE"
- CPPFLAGS="$CPPFLAGS $ace_no_xopen"
- AC_EGREP_HEADER([[^_]+pread], unistd.h,
- [
- ace_cv_lib_has_pread_prototype=yes
- ],
- [
- ace_cv_lib_has_pread_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_PREAD_PROTOTYPE))
- ],),)
-
-AC_CHECK_FUNC(readv, , AC_DEFINE(ACE_LACKS_READV)) dnl
-
-AC_CHECK_FUNC(writev, , AC_DEFINE(ACE_LACKS_WRITEV)) dnl
-
-AC_CHECK_FUNC(set_t_errno, AC_DEFINE(ACE_HAS_SET_T_ERRNO),) dnl
-
-AC_CHECK_FUNC(sigsuspend, dnl
- AC_DEFINE(ACE_HAS_SIGSUSPEND),)
-
-AC_CHECK_FUNC(sigtimedwait, dnl
- AC_DEFINE(ACE_HAS_SIGTIMEDWAIT),)
-
-AC_CHECK_FUNC(socketpair, dnl
- ,
- AC_DEFINE(ACE_LACKS_SOCKETPAIR))
-
-AC_CHECK_FUNC(strcasecmp, dnl
- ,
- AC_DEFINE(ACE_LACKS_STRCASECMP))
-
-AC_CHECK_FUNC(strdup, dnl
- ,
- AC_DEFINE(ACE_HAS_STRDUP_EMULATION))
-
-AC_CHECK_FUNC(strrchr, dnl
- ,
- AC_DEFINE(ACE_LACKS_STRRCHR))
-
-AC_CHECK_FUNC(strptime, dnl
- [
- AC_DEFINE(ACE_HAS_STRPTIME)
- dnl Check if _XOPEN_SOURCE macro is needed to make the strptime()
- dnl prototype visible.
- ACE_CACHE_CHECK(for strptime prototype,
- ace_cv_lib_has_strptime_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_xopen="-U_XOPEN_SOURCE"
- CPPFLAGS="$CPPFLAGS $ace_no_xopen"
- AC_EGREP_HEADER([[^_]+strptime], time.h,
- [
- ace_cv_lib_has_strptime_prototype=yes
- ],
- [
- ace_cv_lib_has_strptime_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_STRPTIME_PROTOTYPE))
- ],
- [
- AC_DEFINE(ACE_LACKS_NATIVE_STRPTIME)
- ])
-
-AC_CHECK_FUNC(memchr, dnl
- AC_DEFINE(ACE_HAS_MEMCHR),)
-
-if test "$ace_cv_type_wchar_t" = yes; then
- AC_CHECK_FUNC(wcslen, dnl
- AC_DEFINE(ACE_HAS_XPG4_MULTIBYTE_CHAR),)
-fi
-
-AC_CHECK_FUNC(syscall, dnl
- ,
- AC_DEFINE(ACE_LACKS_SYSCALL))
-
-AC_CHECK_FUNC(ualarm, dnl
- AC_DEFINE(ACE_HAS_UALARM),)
-
-AC_CHECK_FUNC(alarm,,) dnl
-AC_CHECK_FUNC(signal,,) dnl
-
-if test "$ac_cv_func_alarm" != yes &&
- test "$ac_cv_func_signal" != yes; then
- AC_DEFINE(ACE_LACKS_UNIX_SIGNALS)
-fi
-
-AC_CHECK_FUNC(fork, dnl
- ,
- AC_DEFINE(ACE_LACKS_FORK))
-
-AC_CHECK_FUNC(getrlimit, dnl
- [
- AC_CHECK_FUNC(setrlimit,
- ,
- AC_DEFINE(ACE_LACKS_RLIMIT))
- ],
- [
- AC_DEFINE(ACE_LACKS_RLIMIT)
- ])
-
-AC_CHECK_FUNC(sysinfo, dnl
- [
- if test "$ac_cv_header_sys_systeminfo_h" = yes; then
- AC_DEFINE(ACE_HAS_SYSINFO)
- fi
- ],)
-
-AC_CHECK_FUNC(strerror, dnl
- AC_DEFINE(ACE_HAS_STRERROR),)
-
-AC_CHECK_FUNC(lstat, dnl
- ,
- AC_DEFINE(ACE_LACKS_LSTAT))
-
-AC_CHECK_FUNC(readlink, dnl
- ,
- AC_DEFINE(ACE_LACKS_READLINK))
-
-AC_CHECK_FUNC(rename, dnl
- ,
- AC_DEFINE(ACE_LACKS_RENAME))
-
-AC_CHECK_FUNC(recvmsg, dnl
- ,
- AC_DEFINE(ACE_LACKS_RECVMSG))
-
-AC_CHECK_FUNC(sendmsg, dnl
- ,
- AC_DEFINE(ACE_LACKS_SENDMSG))
-
-if test "$ace_has_tli" = yes; then
- AC_CHECK_FUNC(t_getname, dnl
- AC_DEFINE(ACE_HAS_SVR4_TLI),)
-fi
-
-AC_CHECK_FUNC(getrusage, dnl
- AC_DEFINE(ACE_HAS_GETRUSAGE),)
-
-AC_CHECK_FUNC(getpgid, dnl
- [
- dnl Check if _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED macros are
- dnl needed to make the getpgid() prototype visible.
- ACE_CACHE_CHECK(for getpgid prototype,
- ace_cv_lib_has_getpgid_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_xopen="-U_XOPEN_SOURCE -U_XOPEN_SOURCE_EXTENDED"
- CPPFLAGS="$CPPFLAGS $ace_no_xopen"
- AC_EGREP_HEADER([[^_]+getpgid], unistd.h,
- [
- ace_cv_lib_has_getpgid_prototype=yes
- ],
- [
- ace_cv_lib_has_getpgid_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_GETPGID_PROTOTYPE))
- ],
- [
- AC_DEFINE(ACE_LACKS_GETPGID)
- ])
-
-AC_CHECK_FUNC(getppid, dnl
- ,
- AC_DEFINE(ACE_LACKS_GETPPID))
-
-AC_CHECK_FUNC(setregid, dnl
- [
- dnl Check if _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED macros are
- dnl needed to make the setregid() prototype visible.
- ACE_CACHE_CHECK(for setregid prototype,
- ace_cv_lib_has_setregid_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_xopen="-U_BSD_SOURCE -U_XOPEN_SOURCE -U_XOPEN_SOURCE_EXTENDED"
- CPPFLAGS="$CPPFLAGS $ace_no_xopen"
- AC_EGREP_HEADER([[^_]+setregid], time.h,
- [
- ace_cv_lib_has_setregid_prototype=yes
- ],
- [
- ace_cv_lib_has_setregid_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_SETREGID_PROTOTYPE))
- ],
- [
- AC_DEFINE(ACE_LACKS_SETREGID)
- ])
-
-AC_CHECK_FUNC(setreuid, dnl
- [
- dnl Check if _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED macros are
- dnl needed to make the setreuid() prototype visible.
- ACE_CACHE_CHECK(for setreuid prototype,
- ace_cv_lib_has_setreuid_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_xopen="-U_BSD_SOURCE -U_XOPEN_SOURCE -U_XOPEN_SOURCE_EXTENDED"
- CPPFLAGS="$CPPFLAGS $ace_no_xopen"
- AC_EGREP_HEADER([[^_]+setreuid], time.h,
- [
- ace_cv_lib_has_setreuid_prototype=yes
- ],
- [
- ace_cv_lib_has_setreuid_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_SETREUID_PROTOTYPE))
- ],
- [
- AC_DEFINE(ACE_LACKS_SETREUID)
- ])
-
-AC_CHECK_FUNC(getpagesize, dnl
- AC_DEFINE(ACE_HAS_GETPAGESIZE),
- AC_DEFINE(ACE_PAGE_SIZE, 4096))
-
-AC_CHECK_FUNC(msync, dnl
- ,
- AC_DEFINE(ACE_LACKS_MSYNC))
-
-AC_CHECK_FUNC(mprotect, dnl
- ,
- AC_DEFINE(ACE_LACKS_MPROTECT))
-
-AC_CHECK_FUNC(mkfifo, dnl
- ,
- AC_DEFINE(ACE_LACKS_MKFIFO))
-
-AC_CHECK_FUNC(mktemp, dnl
- ,
- AC_DEFINE(ACE_LACKS_MKTEMP))
-
-AC_CHECK_FUNC(madvise, dnl
- ,
- AC_DEFINE(ACE_LACKS_MADVISE))
-
-if test "$ac_cv_header_sys_priocntl_h" = yes; then
- AC_CHECK_FUNC(priocntl, dnl
- AC_DEFINE(ACE_HAS_PRIOCNTL),)
-
-dnl Some platforms define priocntl as a macro!
- if test "$ac_cv_func_priocntl" = no; then
- ACE_CACHE_CHECK(for priocntl macro,
- ace_cv_lib_has_priocntl_macro,
- [
- AC_EGREP_CPP(ACE_PRIOCNTL_MACRO,
- [
-#include <sys/priocntl.h>
-
-#if defined (priocntl)
- ACE_PRIOCNTL_MACRO
-#endif
- ],
- [
- ace_cv_lib_has_priocntl_macro=yes
- ],
- [
- ace_cv_lib_has_priocntl_macro=no
- ])
- ], AC_DEFINE(ACE_HAS_PRIOCNTL),)
- fi dnl test "$ac_cv_func_priocntl" = no
-fi dnl test "$ac_cv_header_sys_priocntl_h" = yes
-
-dnl FIXME: How do we check for a working sbrk()? Do we need to?
-AC_CHECK_FUNC(sbrk,, AC_DEFINE(ACE_LACKS_SBRK))
-
-dnl Check for SYSV IPC functions
-AC_CHECK_FUNC(msgctl,,)
-
-AC_CHECK_FUNC(msgget,,)
-
-AC_CHECK_FUNC(msgrcv,,)
-
-AC_CHECK_FUNC(semctl,,)
-
-AC_CHECK_FUNC(semget,,)
-
-AC_CHECK_FUNC(semop,,)
-
-AC_CHECK_FUNC(shmat,,)
-
-AC_CHECK_FUNC(shmctl,,)
-
-AC_CHECK_FUNC(shmdt,,)
-
-AC_CHECK_FUNC(shmget,,)
-dnl End check for SYSV IPC functions
-
-AC_CHECK_FUNC(read_real_time, dnl
- AC_DEFINE(ACE_HAS_AIX_HI_RES_TIMER),)
-
-AC_CHECK_FUNC(shm_open, dnl
- [
- AC_MSG_WARN(platform supports shm_open but shm_open support will not be)
- AC_MSG_WARN(enabled since ACE currently supports it only on LynxOS)
-dnl AC_DEFINE(ACE_HAS_SHM_OPEN)
- ],)
-
-AC_CHECK_FUNC(tempnam, dnl
- ,
- AC_DEFINE(ACE_LACKS_TEMPNAM))
-
-AC_CHECK_FUNC(truncate, dnl
- ,
- AC_DEFINE(ACE_LACKS_TRUNCATE))
-
-dnl Check for MIT pthreads APIs for timed send/recv operations
-AC_CHECK_FUNC(recv_timedwait, dnl
- AC_DEFINE(ACE_HAS_RECV_TIMEDWAIT),)
-
-AC_CHECK_FUNC(recvfrom_timedwait, dnl
- AC_DEFINE(ACE_HAS_RECVFROM_TIMEDWAIT),)
-
-AC_CHECK_FUNC(recvmsg_timedwait, dnl
- AC_DEFINE(ACE_HAS_RECVMSG_TIMEDWAIT),)
-
-AC_CHECK_FUNC(send_timedwait, dnl
- AC_DEFINE(ACE_HAS_SEND_TIMEDWAIT),)
-
-AC_CHECK_FUNC(sendto_timedwait, dnl
- AC_DEFINE(ACE_HAS_SENDTO_TIMEDWAIT),)
-
-AC_CHECK_FUNC(sendmsg_timedwait, dnl
- AC_DEFINE(ACE_HAS_SENDMSG_TIMEDWAIT),)
-
-AC_CHECK_FUNC(read_timedwait, dnl
- AC_DEFINE(ACE_HAS_READ_TIMEDWAIT),)
-
-AC_CHECK_FUNC(readv_timedwait, dnl
- AC_DEFINE(ACE_HAS_READV_TIMEDWAIT),)
-
-AC_CHECK_FUNC(write_timedwait, dnl
- AC_DEFINE(ACE_HAS_WRITE_TIMEDWAIT),)
-
-AC_CHECK_FUNC(writev_timedwait, dnl
- AC_DEFINE(ACE_HAS_WRITEV_TIMEDWAIT),)
-
-dnl Save the cache for debugging purposes
-AC_CACHE_SAVE
-
-dnl Check for POSIX Semaphore functions
-dnl We only check for a few of them since some platforms don't have these.
-AC_CHECK_FUNC(sem_init,,) dnl
-AC_CHECK_FUNC(sem_destroy,,) dnl
-
-dnl We only enable POSIX semaphores if we are not using UNIX International
-dnl threads.
-dnl Enabling POSIX semaphores on Solaris seems to cause problems for
-dnl ACE. (NOTE: This may no longer be true after the updates/fixes
-dnl I made. The fixes corrected broken code in ACE_OS::sema_init().
-dnl -Ossama)
-if test "$ac_cv_func_sem_init" = yes &&
- test "$ac_cv_func_sem_destroy" = yes &&
- test "$ace_cv_type_sem_t" = yes &&
- test "$ace_has_sthreads" != yes; then
-
-dnl Only enable POSIX semaphore support if process shared semaphores
-dnl are supported. Presumably process shared semaphores are only
-dnl available if the _POSIX_THREAD_PROCESS_SHARED macro is defined by
-dnl the platform.
- AC_EGREP_CPP(WE_HAVE_SHARED_POSIX_SEMAPHORES,
- [
-#ifndef _REENTRANT
-#define _REENTRANT
-#endif
-
-#ifndef _THREAD_SAFE
-#define _THREAD_SAFE
-#endif
-
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h> /* needed for _POSIX_THREAD_PROCESS_SHARED */
-#endif
-
-#include <pthread.h>
-#include <semaphore.h>
-
-#if defined (_POSIX_THREAD_PROCESS_SHARED)
-WE_HAVE_SHARED_POSIX_SEMAPHORES
-#endif
- ],
- [
- AC_DEFINE(ACE_HAS_POSIX_SEM)
-
- AC_CHECK_FUNC(sem_open,
- [
- dnl Check if it works! For example, in glibc 2.x sem_open exists
- dnl but it appears to be a stub. However, it isn't listed as a
- dnl stub in <gnu/stubs.h> so the configure script thinks it is
- dnl implemented!
- ACE_CACHE_CHECK(if sem_open works,
- ace_cv_sem_open_works,
- [
- AC_TRY_RUN(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include <stddef.h> /* for definition of "NULL" */
-
-#include <semaphore.h>
-
-#ifndef SEM_FAILED
-# define SEM_FAILED ((sem_t *) -1)
-#endif
-
-int
-main ()
-{
- sem_t *s = 0;
-
- s = sem_open ("ace_semaphore_foo", O_CREAT | O_EXCL, 0600, 1);
-
- if (s == SEM_FAILED)
- return -1; /* FAILURE */
-
- if (sem_close (s) != 0)
- return -1; /* Something went wrong! */
-
- return 0;
-}
- ],
- [
- ace_cv_sem_open_works=yes
- ],
- [
- ace_cv_sem_open_works=no
- ],
- [
- dnl action if cross-compiling
- ace_cv_sem_open_works=yes
- ])
- ],, AC_DEFINE(ACE_LACKS_NAMED_POSIX_SEM))
- ],
- [
- AC_DEFINE(ACE_LACKS_NAMED_POSIX_SEM)
- ])
- ],)
-
-fi dnl check for POSIX Semaphore functions
-
-dnl
-dnl The following tests are performed only when the user has enabled
-dnl support for threads.
-
-dnl NOTE: Make sure the thread library is in "LIBS"
-dnl (e.g.: LIBS="$LIBS -lpthread")
-dnl otherwise the below thread "CHECK_FUNCs"
-dnl will not work correctly.
-if test "$ace_user_enable_threads" = yes; then
-
- if test "$ace_has_pthreads" = yes; then
-dnl Digital UNIX 4.0 "mangles" the following pthread functions:
-dnl pthread_attr_getguardsize_np
-dnl pthread_attr_getinheritsched
-dnl pthread_attr_getstacksize
-dnl pthread_attr_setguardsize_np
-dnl pthread_attr_setinheritsched
-dnl pthread_attr_setstacksize
-dnl pthread_cancel
-dnl pthread_cond_broadcast
-dnl pthread_cond_destroy
-dnl pthread_cond_init
-dnl pthread_cond_sig_preempt_int_np
-dnl pthread_cond_signal
-dnl pthread_cond_signal_int_np
-dnl pthread_cond_timedwait
-dnl pthread_cond_wait
-dnl pthread_create
-dnl pthread_delay_np
-dnl pthread_detach
-dnl pthread_equal
-dnl pthread_exit
-dnl pthread_get_expiration_np
-dnl pthread_getspecific
-dnl pthread_join
-dnl pthread_lock_global_np
-dnl pthread_mutex_destroy
-dnl pthread_mutex_init
-dnl pthread_mutex_lock
-dnl pthread_mutex_trylock
-dnl pthread_mutex_unlock
-dnl pthread_once
-dnl pthread_self
-dnl pthread_setspecific
-dnl pthread_testcancel
-dnl pthread_unlock_global_np
-dnl These functions have a double underscore "__" prepended to maintain
-dnl backwards compatibility with Pthread Draft 4 functions of the same
-dnl name.
-
- AC_CHECK_FUNC(pthread_sigmask, dnl
- ,
- AC_DEFINE(ACE_LACKS_PTHREAD_SIGMASK))
-
- AC_CHECK_FUNC(pthread_key_create, dnl
- [AC_DEFINE(ACE_HAS_THREAD_SPECIFIC_STORAGE)],
- [
- AC_CHECK_FUNC(pthread_keycreate,
- [AC_DEFINE(ACE_HAS_THREAD_SPECIFIC_STORAGE)],
- [AC_DEFINE(ACE_HAS_TSS_EMULATION)])
- ])
-
- AC_CHECK_FUNC(pthread_condattr_setkind_np, dnl
- AC_DEFINE(ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP),)
-
- AC_CHECK_FUNC(pthread_mutexattr_setkind_np, dnl
- AC_DEFINE(ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP),)
-
- AC_CHECK_FUNC(pthread_condattr_setpshared, dnl
- ,
- AC_DEFINE(ACE_LACKS_CONDATTR_PSHARED))
-
- AC_CHECK_FUNC(pthread_attr_setstackaddr, dnl
- ,
- AC_DEFINE(ACE_LACKS_THREAD_STACK_ADDR))
-
- ACE_CHECK_FUNC(pthread_attr_setstacksize, pthread.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_THREAD_STACK_SIZE))
-
- ACE_CHECK_FUNC([pthread_cancel], [pthread.h],
- [
- dnl Make sure the prototype actually exists. Some platforms,
- dnl such as FreeBSD 4, appear to have a missing prototype. If
- dnl the prototype is missing, then don't use pthread_cancel.
- dnl Creating a prototype for it in ACE is probably a bad idea.
-
- ace_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $ACE_THR_CPPFLAGS"
-
- AC_EGREP_HEADER([pthread_cancel], [pthread.h],
- [
- dnl Do nothing if the prototype exists.
- ],
- [
- AC_DEFINE(ACE_LACKS_PTHREAD_CANCEL)
- ])
-
- dnl Reset the preprocessor flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],
- [
- AC_DEFINE(ACE_LACKS_PTHREAD_CANCEL)
- ])
-
- AC_CHECK_FUNC(pthread_yield, dnl
- ,
- AC_DEFINE(ACE_LACKS_PTHREAD_YIELD))
-
- AC_CHECK_FUNC(pthread_thr_sigsetmask, dnl
- ,
- AC_DEFINE(ACE_LACKS_PTHREAD_THR_SIGSETMASK))
-
- AC_CHECK_FUNC(pthread_attr_setdetachstate, dnl
- ,
- AC_DEFINE(ACE_LACKS_SETDETACH))
-
- dnl ACE currently doesn't provide enough fine grained control over
- dnl these functions so both must be present in order to prevent
- dnl ACE_LACKS_SETSCHED from being defined.
- AC_CHECK_FUNC(sched_setscheduler, dnl
- [
- AC_CHECK_FUNC(pthread_attr_setschedpolicy,,
- AC_CHECK_FUNC(pthread_attr_setsched,,
- AC_DEFINE(ACE_LACKS_SETSCHED)))
- ],
- [
- AC_DEFINE(ACE_LACKS_SETSCHED)
- ])
-
- AC_CHECK_FUNC(pthread_attr_setscope, dnl
- ,
- AC_DEFINE(ACE_LACKS_THREAD_PROCESS_SCOPING))
-
- AC_CHECK_FUNC(pthread_mutexattr_setpshared, dnl
- ,
- AC_DEFINE(ACE_LACKS_MUTEXATTR_PSHARED))
-
-dnl Check for POSIX Threads Draft 4 functions
- AC_CHECK_FUNC(pthread_mutexattr_create,,) dnl
- AC_CHECK_FUNC(pthread_mutexattr_delete,,) dnl
- AC_CHECK_FUNC(pthread_condattr_delete,,) dnl
- AC_CHECK_FUNC(pthread_condattr_create,,) dnl
- AC_CHECK_FUNC(pthread_setprio,,) dnl
- AC_CHECK_FUNC(pthread_getprio,,) dnl
- AC_CHECK_FUNC(pthread_setcancel,,) dnl
- AC_CHECK_FUNC(pthread_setasynccancel,,) dnl
- AC_CHECK_FUNC(pthread_kill,,) dnl
-dnl Check for POSIX Threads Draft 6 functions
- AC_CHECK_FUNC(pthread_attr_setprio,,) dnl
- AC_CHECK_FUNC(pthread_attr_getprio,,) dnl
- AC_CHECK_FUNC(pthread_setintr,,) dnl
- AC_CHECK_FUNC(pthread_setintrtype,,) dnl
-dnl Check for POSIX threads Draft 6, 7 and Standard common functions
- AC_CHECK_FUNC(pthread_mutexattr_init,,) dnl
- AC_CHECK_FUNC(pthread_mutexattr_destroy,,) dnl
- AC_CHECK_FUNC(pthread_condattr_init,,) dnl
- AC_CHECK_FUNC(pthread_condattr_destroy,,) dnl
-dnl Check for POSIX Threads Draft 7 and Draft Standard common functions
- AC_CHECK_FUNC(pthread_setschedparam,,) dnl
- AC_CHECK_FUNC(pthread_getschedparam,,) dnl
- AC_CHECK_FUNC(pthread_setcancelstate,,) dnl
- AC_CHECK_FUNC(pthread_setcanceltype,,) dnl
-dnl Check for POSIX Threads Draft Standard functions
-dnl sched_yield() is in the C library or perhaps in "-lposix4."
-dnl We need to add other library checks in this script's "check libraries"
-dnl section if it is in another library.
-dnl AC_CHECK_FUNC(sched_yield,,) dnl
-dnl We already check for this during the library checks.
-
-dnl Check for Unix98 pthreads extensions
- ACE_CACHE_CHECK([for struct pthread_rwlock_t],
- [ace_cv_struct_pthread_rwlock_t],
- [
- dnl Since we are checking for siginfo_t in more than one header
- dnl we can't use the ACE_CHECK_STRUCT macro so we have to do things
- dnl manually.
- ACE_TRY_COMPILE_STRUCT(pthread_rwlock_t, pthread.h,
- [
- ace_cv_struct_pthread_rwlock_t=yes
- ],
- [
- ACE_TRY_COMPILE_STRUCT(pthread_rwlock_t, sys/types.h,
- [
- ace_cv_struct_pthread_rwlock_t=yes
- ],
- [
- ace_cv_struct_pthread_rwlock_t=no
- ])
- ])
- ],,)
-
- ACE_CACHE_CHECK([for struct pthread_rwlockattr_t],
- [ace_cv_struct_pthread_rwlockattr_t],
- [
- dnl Since we are checking for siginfo_t in more than one header
- dnl we can't use the ACE_CHECK_STRUCT macro so we have to do things
- dnl manually.
- ACE_TRY_COMPILE_STRUCT(pthread_rwlockattr_t, pthread.h,
- [
- ace_cv_struct_pthread_rwlockattr_t=yes
- ],
- [
- ACE_TRY_COMPILE_STRUCT(pthread_rwlockattr_t, sys/types.h,
- [
- ace_cv_struct_pthread_rwlockattr_t=yes
- ],
- [
- ace_cv_struct_pthread_rwlockattr_t=no
- ])
- ])
- ],,)
-
- AC_CHECK_FUNC(pthread_continue,,)dnl
- AC_CHECK_FUNC(pthread_suspend,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_init,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_destroy,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_rdlock,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_wrlock,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_unlock,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_tryrdlock,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_trywrlock,,)dnl
- AC_CHECK_FUNC(pthread_rwlockattr_init,,)dnl
- AC_CHECK_FUNC(pthread_rwlockattr_destroy,,)dnl
- AC_CHECK_FUNC(pthread_rwlockattr_setpshared,,)dnl
-
- if test "$ace_cv_struct_pthread_rwlock_t" = yes &&
- test "$ace_cv_struct_pthread_rwlockattr_t" = yes &&
- test "$ac_cv_func_pthread_continue" = yes &&
- test "$ac_cv_func_pthread_continue" = yes &&
- test "$ac_cv_func_pthread_suspend" = yes &&
- test "$ac_cv_func_pthread_rwlock_init" = yes &&
- test "$ac_cv_func_pthread_rwlock_destroy" = yes &&
- test "$ac_cv_func_pthread_rwlock_rdlock" = yes &&
- test "$ac_cv_func_pthread_rwlock_wrlock" = yes &&
- test "$ac_cv_func_pthread_rwlock_unlock" = yes &&
- test "$ac_cv_func_pthread_rwlock_tryrdlock" = yes &&
- test "$ac_cv_func_pthread_rwlock_trywrlock" = yes &&
- test "$ac_cv_func_pthread_rwlockattr_init" = yes &&
- test "$ac_cv_func_pthread_rwlockattr_destroy" = yes &&
- test "$ac_cv_func_pthread_rwlockattr_setpshared" = yes; then
- AC_DEFINE(ACE_HAS_PTHREADS_UNIX98_EXT)dnl
- fi dnl Unix98 pthreads extensions
-
-dnl Check if platform has thread_self() rather than pthread_self()
- ACE_CHECK_FUNC(pthread_self, pthread.h, dnl
- ,
- [
- AC_CHECK_FUNC(thread_self,
- [
- AC_DEFINE(ACE_HAS_THREAD_SELF)
- ],)
- ])
-
-dnl Check if pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
-dnl PTHREAD_PROCESS_SHARED valuesACE_CACHE_CHECK(for ctime() macro,
- ACE_CACHE_CHECK(for PTHREAD_PROCESS_* enumeration in pthread.h,
- ace_cv_lib_pthread_process_enum,
- [
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
- ],
- [
-/* Undefine PTHREAD_PROCESS_SHARED in case some platforms #define it */
-#undef PTHREAD_PROCESS_SHARED
-int foo = PTHREAD_PROCESS_SHARED;
- ],
- [
- ace_cv_lib_pthread_process_enum=yes
- ],
- [
- ace_cv_lib_pthread_process_enum=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_PTHREAD_PROCESS_ENUM)
- ],)
-
-dnl Check if pthread_create requires an extern "C" start routine
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if pthread_create requires an extern \"C\" start routine,
- ace_cv_lib_pthread_c_func,[
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-void *ace_start_routine(void *);
- ],
- [
-pthread_create(0, 0, ace_start_routine, 0);
- ],
- [
- ace_cv_lib_pthread_c_func=no
- ],
- [
- dnl Check if extern "C" start routine is required.
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-extern "C" void *ace_start_routine(void *);
- ],
- [
-pthread_create(0, 0, ace_start_routine, 0);
- ],
- [
- ace_cv_lib_pthread_c_func=yes
- ],
- [
- ace_cv_lib_pthread_c_func=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_THR_C_FUNC)
- ],)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if pthread_key_create has a standard arg thread destructor
-ACE_CACHE_CHECK(if pthread_key_create has std arg thread destructor,
- ace_cv_lib_pthread_stdarg_dest,[
- if test "$ac_cv_func_pthread_key_create" = yes; then
- ace_pthread_key_create=pthread_key_create
- else
- ace_pthread_key_create=pthread_keycreate
- fi
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-void ace_destructor(void *);
- ],
- [
-${ace_pthread_key_create}(0, ace_destructor);
- ],
- [
- ace_cv_lib_pthread_stdarg_dest=no
- ],
- [
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-void ace_destructor(...);
- ],
- [
-${ace_pthread_key_create}(0, ace_destructor);
- ],
- [
- ace_cv_lib_pthread_stdarg_dest=yes
- ],
- [
- ace_cv_lib_pthread_stdarg_dest=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_STDARG_THR_DEST)
- ],)
-
-dnl Check if pthread_key_create requires an extern "C" start routine
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if pthread_key_create requires an extern \"C\" start routine,
- ace_cv_lib_pthread_c_dest,[
- if test "$ac_cv_func_pthread_key_create" = yes; then
- ace_pthread_key_create=pthread_key_create
- else
- ace_pthread_key_create=pthread_keycreate
- fi
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-void ace_destructor(void *);
- ],
- [
-${ace_pthread_key_create}(0, ace_destructor);
- ],
- [
- ace_cv_lib_pthread_c_dest=no
- ],
- [
- dnl Check if extern "C" start routine is required.
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-extern "C" void ace_destructor(void *);
- ],
- [
-${ace_pthread_key_create}(0, ace_destructor);
- ],
- [
- ace_cv_lib_pthread_c_dest=yes
- ],
- [
- ace_cv_lib_pthread_c_dest=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_THR_C_DEST)
- ],)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-
-AC_CHECK_FUNC([sched_get_priority_min],
- [
- dnl Do nothing
- ],
- [
- AC_EGREP_CPP([ace_has_pthread_min_priority],,
- [
-dnl Check PTHREAD_MIN_PRIORITY is a macro.
-#include <pthread.h>
-#ifdef PTHREAD_MIN_PRIORITY
- ace_has_pthread_min_priority
-#endif /* PTHREAD_MIN_PRIORITY */
- ],
- [
- dnl Since we PTHREAD_MAX_PRIORITY, denote that PX_PRIO_MAX should
- dnl not be used.
- ace_has_px_prio_min=no
- ],
- [
- dnl Check if PTHREAD_MIN_PRIORITY is not a macro.
- AC_EGREP_HEADER([PTHREAD_MIN_PRIORITY], [pthread.h],
- [
- dnl Since we PTHREAD_MAX_PRIORITY, denote that PX_PRIO_MAX should
- dnl not be used.
- ace_has_px_prio_min=no
- ],
- [
- dnl PTHREAD_MIN_PRIORITY doesn't appear to be defined, so
- dnl check if the platform defines PX_PRIO_MIN, instead.
-
- dnl Check if PX_PRIO_MIN is defined.
- AC_EGREP_CPP([ace_has_px_prio_min],
- [
- dnl Check PX_PRIO_MIN is a macro.
-#include <pthread.h>
-#ifdef PX_PRIO_MIN
- ace_has_px_prio_min
-#endif /* PX_PRIO_MIN */
- ],
- [
- ace_has_px_prio_min=yes
- ],
- [
- dnl Check if PX_PRIO_MIN is not a macro.
- AC_EGREP_HEADER([PX_PRIO_MIN], [pthread.h],
- [
- ace_has_px_prio_min=yes
- ],
- [
- ace_has_px_prio_min=no
- ])
- ])
- ])
- ])
- ])
-
- if test "$ace_has_px_prio_min" = yes; then
- AC_DEFINE(PTHREAD_MIN_PRIORITY,
- PX_PRIO_MIN,
- [Minimum thread priority])
- fi
-
-AC_CHECK_FUNC([sched_get_priority_max],
- [
- dnl Do nothing
- ],
- [
- AC_EGREP_CPP([ace_has_pthread_max_priority],
- [
-dnl Check PTHREAD_MAX_PRIORITY is a macro.
-#include <pthread.h>
-#ifdef PTHREAD_MAX_PRIORITY
- ace_has_pthread_max_priority
-#endif /* PTHREAD_MAX_PRIORITY */
- ],
- [
- dnl Since we PTHREAD_MAX_PRIORITY, denote that PX_PRIO_MAX should
- dnl not be used.
- ace_has_px_prio_max=no
- ],
- [
- dnl Check if PTHREAD_MAX_PRIORITY is not a macro.
- AC_EGREP_HEADER([PTHREAD_MAX_PRIORITY], [pthread.h],
- [
- dnl Since we PTHREAD_MAX_PRIORITY, denote that PX_PRIO_MAX should
- dnl not be used.
- ace_has_px_prio_max=no
- ],
- [
- dnl PTHREAD_MAX_PRIORITY doesn't appear to be defined, so
- dnl check if the platform defines PX_PRIO_MAX, instead.
-
- dnl Check if PX_PRIO_MAX is defined.
- AC_EGREP_CPP([ace_has_px_prio_max],
- [
- dnl Check PX_PRIO_MIN is a macro.
-#include <pthread.h>
-#ifdef PX_PRIO_MAX
- ace_has_px_prio_max
-#endif /* PX_PRIO_MAX */
- ],
- [
- ace_has_px_prio_max=yes
- ],
- [
- dnl Check if PX_PRIO_MAX is not a macro.
- AC_EGREP_HEADER([PX_PRIO_MAX], [pthread.h],
- [
- ace_has_px_prio_max=yes
- ],
- [
- ace_has_px_prio_max=no
- ])
- ])
- ])
- ])
- ])
- if test "$ace_has_px_prio_max" = yes; then
- AC_DEFINE(PTHREAD_MAX_PRIORITY,
- PX_PRIO_MAX,
- [Maximum thread priority])
- fi
-
- fi dnl test "$ace_has_pthreads" = yes
-
- if test "$ace_has_sthreads" = yes; then
-dnl Only check for these functions if we have the UNIX International
-dnl Threads library "thread."
- AC_CHECK_FUNC(thr_keycreate, dnl
- AC_DEFINE(ACE_HAS_THREAD_SPECIFIC_STORAGE),
- AC_DEFINE(ACE_HAS_TSS_EMULATION))
-
- AC_CHECK_FUNC(thr_yield, dnl
- AC_DEFINE(ACE_HAS_THR_YIELD),)
-
- AC_CHECK_FUNC(thr_keydelete, dnl
- AC_DEFINE(ACE_HAS_THR_KEYDELETE),)
-
- AC_CHECK_FUNC(thr_min_stack, dnl
- ,
- [
- AC_CHECK_FUNC(thr_minstack,
- AC_DEFINE(ACE_HAS_THR_MINSTACK),)
- ])
-
- fi dnl test "$ace_has_sthreads" = yes
-
-fi dnl test "$ace_user_enable_threads" = yes
-
-dnl
-dnl By Eric:
-dnl ACE will define a sigwait function if we lie and say we don't have
-dnl one. Unfortunately, the ACE function may conflict with our
-dnl function, so we'll go ahead and turn this on, even if we are
-dnl ignoring threads.
-AC_CHECK_FUNC(sigwait, dnl
- AC_DEFINE(ACE_HAS_SIGWAIT),)
-
-
-dnl Check for reentrant functions
-if test "$ace_user_enable_reentrant_funcs" = yes; then
- AC_CHECK_FUNC(rand_r,,)
-
- AC_CHECK_FUNC(strtok_r,
- [
- dnl Check if _POSIX_SOURCE macro is needed to make the strtok_r()
- dnl prototype visible.
- ACE_CACHE_CHECK(for strtok_r prototype,
- ace_cv_lib_has_strtok_r_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_posix="-U_POSIX_SOURCE $ACE_THR_CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $ace_no_posix"
- AC_EGREP_HEADER([[^_]+strtok_r], string.h,
- [
- ace_cv_lib_has_strtok_r_prototype=yes
- ],
- [
- ace_cv_lib_has_strtok_r_prototype=no
- ])
- dnl Reset the preprocessor flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_STRTOK_R_PROTOTYPE))
- ],)
-
- AC_CHECK_FUNC(getpwnam_r,, AC_DEFINE(ACE_LACKS_PWD_REENTRANT_FUNCTIONS))
-
- AC_CHECK_FUNC(ctime_r,,)
-
- AC_CHECK_FUNC(localtime_r,,)
-
- AC_CHECK_FUNC(gmtime_r,,)
-
- AC_CHECK_FUNC(asctime_r,,)
-
- AC_CHECK_FUNC(getprotobyname_r,,)
-
- AC_CHECK_FUNC(getprotobynumber_r,,)
-
- AC_CHECK_FUNC(gethostbyaddr_r,,)
-
- AC_CHECK_FUNC(gethostbyname_r,,)
-
- AC_CHECK_FUNC(getservbyname_r,,)
-fi dnl End checks for reentrant functions
-
-AC_CHECK_FUNC(readdir_r, dnl
- ,
- AC_DEFINE(ACE_LACKS_READDIR_R))
-
-AC_CHECK_FUNC(seekdir, dnl
- ,
- AC_DEFINE(ACE_LACKS_SEEKDIR))
-
-AC_CHECK_FUNC(telldir, dnl
- ,
- AC_DEFINE(ACE_LACKS_TELLDIR))
-
-
-dnl
-dnl SECTION 11: checks for function characteristics
-dnl
-
-ACE_CONVERT_WARNINGS_TO_ERRORS([
-dnl Check if dlopen takes a char * arg instead of const char *
- if test "$ace_has_svr4_dynamic_linking" = yes; then
- ACE_CACHE_CHECK(if dlopen takes a char *,
- ace_cv_lib_charptr_dl,
- [
- dnl Check if it takes a const char *, first.
- AC_TRY_COMPILE(
- [
-#include <dlfcn.h>
- ],
- [
- const char *filename = 0;
- int flag = 0;
- void *ptr = dlopen(filename, flag);
- ],
- [
- ace_cv_lib_charptr_dl=no
- ],
- [
- dnl Now check if it takes a non-const char *.
- AC_TRY_COMPILE(
- [
-#include <dlfcn.h>
- ],
- [
- char *filename = 0;
- int flag = 0;
- void *ptr = dlopen(filename, flag);
- ],
- [
- ace_cv_lib_charptr_dl=yes
- ],
- [
- ace_cv_lib_charptr_dl=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_CHARPTR_DL),)
- fi dnl test "$ace_has_svr4_dynamic_linking" = yes
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-ACE_CONVERT_WARNINGS_TO_ERRORS([
-dnl Check if "getby" functions use a non-const char * argument
- if test "$ac_cv_func_gethostbyaddr" = yes; then
- ACE_CACHE_CHECK(\"getby\" functions take a non-const char *,
- ace_cv_lib_nonconst_getby,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/socket.h>
- ],
- [
- char *addr = 0;
- int len = 0;
- int type = 0;
- struct hostent *mystruct = 0;
-
- mystruct = gethostbyaddr(name, len, type);
- ],
- [
- ace_cv_lib_nonconst_getby=yes
- ],
- [
- ace_cv_lib_nonconst_getby=no
- ])
- ], AC_DEFINE(ACE_HAS_NONCONST_GETBY),)
- fi dnl test "$ac_cv_func_gethostbyaddr" = yes
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if new throws exception upon failure
-if test "$ace_user_enable_exceptions" = yes; then
- ACE_CACHE_CHECK(if new throws bad_alloc exception on failure,
- ace_cv_new_throws_bad_alloc_exception,
- [
- AC_TRY_RUN(
- [
-#if defined (ACE_HAS_NEW_NO_H)
-# include <new>
-#elif defined (ACE_HAS_NEW_H)
-# include <new.h>
-#endif
-
-#if defined (ACE_HAS_STDEXCEPT_NO_H)
-# include <stdexcept>
-#elif defined (ACE_HAS_EXCEPTION_H)
-# include <exception.h>
-#endif
-
- int main(int, char *[]) {
- while (1) {
- try {
- char *a = new char[1024*1024];
- if (a == 0) {
- return 1; /* new() does NOT throw exceptions */
- }
- }
-
- catch (bad_alloc)
- {
- return 0; /* new() does throw exceptions */
- }
- };
-
- return 1; /* ERROR: We shouldn't get this far! */
- }
- ],
- [
- ace_cv_new_throws_bad_alloc_exception=yes
- ],
- [
- ace_cv_new_throws_bad_alloc_exception=no
- ],
- [
- ace_cv_new_throws_bad_alloc_exception=no
- ])
- ], AC_DEFINE(ACE_NEW_THROWS_EXCEPTIONS),)
-
- if test "$ace_cv_new_throws_bad_alloc_exception" != yes; then
- ACE_CACHE_CHECK(if new throws xalloc exception on failure,
- ace_cv_new_throws_xalloc_exception,
- [
- AC_TRY_RUN(
- [
-#if defined (ACE_HAS_NEW_NO_H)
-# include <new>
-#elif defined (ACE_HAS_NEW_H)
-# include <new.h>
-#endif
-
-#if defined (ACE_HAS_STDEXCEPT_NO_H)
-# include <stdexcept>
-#elif defined (ACE_HAS_EXCEPTION_H)
-# include <exception.h>
-#endif
-
- int main(int, char *[]) {
- while (1) {
- try {
- char *a = new char[1024*1024];
- if (a == 0) {
- return 1; /* new() does NOT throw exceptions */
- }
- }
-
- catch (xalloc)
- {
- return 0; /* new() does throw exceptions */
- }
- };
-
- return 1; /* ERROR: We shouldn't get this far! */
- }
- ],
- [
- ace_cv_new_throws_xalloc_exception=yes
- ],
- [
- ace_cv_new_throws_xalloc_exception=no
- ],
- [
- ace_cv_new_throws_xalloc_exception=no
- ])
- ], AC_DEFINE(ACE_NEW_THROWS_EXCEPTIONS),)
- fi dnl ace_cv_new_throws_bad_alloc_exceptions = no
-fi dnl $ace_user_enable_exceptions = yes
-
-ACE_CONVERT_WARNINGS_TO_ERRORS([
-dnl Check if putmsg takes a const struct strbuf *
-dnl If we have getmsg() we can be pretty sure that we have putmsg()
- if test "$ac_cv_func_getmsg" = yes ||
- test "$ac_cv_header_stropts_h" = yes; then
- ACE_CACHE_CHECK(if putmsg takes a const struct strbuf*,
- ace_cv_lib_const_strbufptr,
- [
- dnl Check if it takes a const struct strbuf *, first.
- AC_TRY_COMPILE(
- [
-#include <stropts.h>
- ],
- [
- int result = 0;
- int fd = 0;
- const struct strbuf * ace_str = 0;
- int flags = 0;
-
- result = putmsg(fd, ace_str, ace_str, flags);
- ],
- [
- ace_cv_lib_const_strbufptr=yes
- ],
- [
- ace_cv_lib_const_strbufptr=no
- ])
- ],, AC_DEFINE(ACE_LACKS_CONST_STRBUF_PTR))
- fi dnl "$ac_cv_func_getmsg" = yes || "$ac_cv_header_stropts_h" = yes
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if select takes int instead of fd_set
-ACE_CONVERT_WARNINGS_TO_ERRORS([
- ACE_CACHE_CHECK(if select takes int instead of fd_set,
- ace_cv_lib_select_takes_int,
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/time.h>
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
-#ifdef ACE_HAS_SELECT_H
-# include <sys/select.h>
-#endif
- ],
- [
- int n = 0;
- fd_set* readfds = 0;
- fd_set* writefds = 0;
- fd_set* exceptfds = 0;
- timeval* timeout = 0;
- int result = 0;
-
- result = select(n, readfds, writefds, exceptfds, timeout);
- ],
- [
- ace_cv_lib_select_takes_int=no
- ],
- [
-dnl Now check if select will actually take int* arguments
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/time.h>
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
-#ifdef ACE_HAS_SELECT_H
-# include <sys/select.h>
-#endif
- ],
- [
- int n = 0;
- int* readfds = 0;
- int* writefds = 0;
- int* exceptfds = 0;
- timeval* timeout = 0;
- int result = 0;
-
- result = select(n, readfds, writefds, exceptfds, timeout);
- ],
- [
- ace_cv_lib_select_takes_int=yes
- ],
- [
- ace_cv_lib_select_takes_int=no
- dnl If we get here we don't know what select() takes.
- ])
- ])
- ], AC_DEFINE(ACE_SELECT_USES_INT),)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-
-dnl Check if setrlimit() takes an enum as 1st argument
-ACE_CHECK_SETRLIMIT_ENUM
-
-dnl This test fails (i.e. passes when it shouldn't) when compiling with
-dnl GCC/G++ since the compiler treats passing a const to a non-const
-dnl argument as a warning and not as an error since the const is
-dnl simply discarded. To correct this problem, we use "-Werror" which
-dnl converts all warnings to errors, whenever we are compiling with
-dnl G++.
-dnl -Ossama
-
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if setrlimit() takes a const pointer as 2nd argument
-ACE_CACHE_CHECK(if setrlimit() takes a const pointer as 2nd argument,
- ace_cv_lib_posix_setrlimit_const_2,[
- AC_TRY_COMPILE(
- [
-#include <sys/resource.h>
- ],
- [
- const struct rlimit* rlp = 0;
- setrlimit(RLIMIT_CPU, rlp);
- ],
- [
- ace_cv_lib_posix_setrlimit_const_2=yes
- ],
- [
- ace_cv_lib_posix_setrlimit_const_2=no
- ])
- ],, [AC_DEFINE(ACE_HAS_BROKEN_SETRLIMIT)])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if getrusage() takes an enum as 1st argument
-ACE_CHECK_GETRUSAGE_ENUM
-
-dnl TODO: This doesn't work.
-dnl The compiler in linux just issues a warning, and the test passes!!!
-dnl
-dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
-dnl -Ossama
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if select takes a const fifth argument
-ACE_CACHE_CHECK(if select takes a const fifth argument,
- ace_cv_lib_posix_select_const_5,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/time.h>
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
-#ifdef ACE_HAS_SELECT_H
-# include <sys/select.h>
-#endif
- ],
- [
- int n = 0;
- fd_set *readfds = 0;
- fd_set *writefds = 0;
- fd_set *exceptfds = 0;
- const struct timeval* timeout = 0;
- select(n, readfds, writefds, exceptfds, timeout);
- ],
- [
- ace_cv_lib_posix_select_const_5=yes
- ],
- [
- ace_cv_lib_posix_select_const_5=no
- ])
- ], , AC_DEFINE(ACE_HAS_NONCONST_SELECT_TIMEVAL))
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Only run the following tests if the msghdr structure exists.
-if test "$ace_cv_struct_msghdr" = yes &&
- test "$ac_cv_func_sendmsg" = yes; then
- ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
- [
-dnl Check if sendmsg takes a const 2nd argument
- ACE_CACHE_CHECK(if sendmsg omits the const from the second argument,
- ace_cv_lib_broken_sendmsg,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- int s = 0;
- const struct msghdr *msg = 0;
- unsigned int flags = 0;
-
- int result = 0;
-
- result = (int) sendmsg(s, msg, flags);
- ],
- [
- ace_cv_lib_broken_sendmsg=no
- ],
- [
- ace_cv_lib_broken_sendmsg=yes
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_SENDMSG),)
- ]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-fi dnl test "$ace_cv_struct_msghdr" = yes
-
-dnl Only run the following tests if the writev function exists
-if test "$ac_cv_header_sys_uio_h" = yes &&
- test "$ac_cv_func_writev" = yes; then
- ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
- [
-dnl Check if writev omits the const from the iovec argument
- ACE_CACHE_CHECK(if writev omits the const from the iovec argument,
- ace_cv_lib_broken_writev,[
- AC_TRY_COMPILE(
- [
-#ifdef ACE_HAS_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include <sys/uio.h>
- ],
- [
- int filedes = 0;
- const struct iovec *vector = 0;
- size_t count = 0;
-
- int result = 0;
-
- result = (int) writev(filedes, vector, count);
- ],
- [
- ace_cv_lib_broken_writev=no
- ],
- [
- ace_cv_lib_broken_writev=yes
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_WRITEV),)
- ]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-fi dnl $ac_cv_header_sys_uio_h = yes && $ac_cv_func_writev = yes
-
-
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(for (struct sockaddr *) msg_name field in msghdr,
- ace_cv_lib_sockaddr_msg_name,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- msghdr ace_msghdr;
- struct sockaddr *addr = 0;
-
- /*
- * Note that some platforms declare msg_name to be a void*,
- * in which case this assignment will work.
- * Should we _not_ define ACE_HAS_SOCKADDR_MSG_NAME in that
- * case? I tend to think it is more appropriate to define
- * ACE_HAS_SOCKADDR_MSG_NAME rather than cast addr to a char*,
- * as is done in ACE when the macro is not defined.
- * -Ossama
- */
- ace_msghdr.msg_name = (struct sockaddr *)addr;
- ],
- [
- ace_cv_lib_sockaddr_msg_name=yes
- ],
- [
- ace_cv_lib_sockaddr_msg_name=no
- ])
- ], AC_DEFINE(ACE_HAS_SOCKADDR_MSG_NAME),)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK([if setsockopt() takes a void* fourth argument],
- [ace_cv_lib_posix_setsockopt_voidp_4],
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- int s = 0;
- int level = 0;
- int optname = 0;
- void* optval = 0;
-
-#if defined (ACE_HAS_SOCKLEN_T)
- socklen_t optlen = 0;
-#elif defined (ACE_HAS_SIZET_SOCKET_LEN)
- size_t optlen = 0;
-#else
- int optlen = 0;
-#endif
-
- setsockopt (s, level, optname, optval, optlen);
- ],
- [
- ace_cv_lib_posix_setsockopt_voidp_4=yes
- ],
- [
- ace_cv_lib_posix_setsockopt_voidp_4=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_VOIDPTR_SOCKOPT)
- ],
- [
- ACE_CACHE_CHECK([if setsockopt() takes a char* fourth argument],
- [ace_cv_lib_posix_setsockopt_charp_4],
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- int s = 0;
- int level = 0;
- int optname = 0;
- char* optval = 0;
-
-#if defined (ACE_HAS_SOCKLEN_T)
- socklen_t optlen = 0;
-#elif defined (ACE_HAS_SIZET_SOCKET_LEN)
- size_t optlen = 0;
-#else
- int optlen = 0;
-#endif
-
- setsockopt (s, level, optname, optval, optlen);
- ],
- [
- ace_cv_lib_posix_setsockopt_charp_4=yes
- ],
- [
- ace_cv_lib_posix_setsockopt_charp_4=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_CHARPTR_SOCKOPT)
- ],)
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if mmap() takes a void* first argument,
- ace_cv_lib_posix_voidptr_mmap,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
-#include <sys/mman.h>
- ],
- [
- void *start = 0;
- size_t length = 0;
- int prot = 0;
- int flags = 0;
- int fd = 0;
- off_t offset = 0;
-
- void *result = 0;
-
- result = (void *)mmap(start, length, prot, flags, fd, offset);
- ],
- [
- ace_cv_lib_posix_voidptr_mmap=yes
- ],
- [
- ace_cv_lib_posix_voidptr_mmap=no
- ])
- ], AC_DEFINE(ACE_HAS_VOIDPTR_MMAP),)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if msync is broken, i.e. doesn't accept third "sync" argument.
-dnl This test should come after the test for checking if mmap takes a void*
-dnl argument since we need the ACE_MMAP_TYPE type for this test.
-if test "$ac_cv_func_msync" = yes; then
-ACE_CACHE_CHECK(if msync accepts a third \"sync\" argument,
- ace_cv_lib_broken_msync,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/mman.h>
-
-#if defined (ACE_HAS_VOIDPTR_MMAP)
- /* Needed for some odd OS's (e.g., SGI). */
- typedef void *ACE_MMAP_TYPE;
-#else
- typedef char *ACE_MMAP_TYPE;
-#endif /* ACE_HAS_VOIDPTR_MMAP */
- ],
- [
- ACE_MMAP_TYPE start = 0;
- size_t length = 0;
- int flags = MS_SYNC;
-
- int result;
-
- result = msync(start, length, flags);
- ],
- [
- ace_cv_lib_broken_msync=no
- ],
- [
- dnl Now see if it works with just two arguments
- AC_TRY_COMPILE(
- [
-#include <sys/mman.h>
-
-#if defined (ACE_HAS_VOIDPTR_MMAP)
- /* Needed for some odd OS's (e.g., SGI). */
- typedef void *ACE_MMAP_TYPE;
-#else
- typedef char *ACE_MMAP_TYPE;
-#endif /* ACE_HAS_VOIDPTR_MMAP */
- ],
- [
- ACE_MMAP_TYPE start = 0;
- size_t length = 0;
-
- int result;
-
- result = msync(start, length);
- ],
- [
- ace_cv_lib_broken_msync=yes
- ],
- [
- dnl If we get to this point then we don't know if msync is
- dnl is broken or not.
- ace_cv_lib_broken_msync=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_NETBSD_MSYNC),)
-fi dnl test "$ac_cv_func_msync" = yes
-
-dnl Check if platform has iostream method ipfx()
-ACE_CACHE_CHECK(for iostream method ipfx(),
- ace_cv_feature_has_iostream_ipfx,[
- AC_TRY_COMPILE(
- [
-#include <iostream.h>
- ],
- [
- cin.ipfx();
- ],
- [
- ace_cv_feature_has_iostream_ipfx=yes
- ],
- [
- ace_cv_feature_has_iostream_ipfx=no
- ])
- ], , AC_DEFINE(ACE_LACKS_IOSTREAM_FX))
-
-dnl Check if platform has line-buffered streambufs
-ACE_CACHE_CHECK(for line-buffered streambufs,
- ace_cv_feature_has_linebuffered_streambuf,[
- AC_TRY_COMPILE(
- [
-#include <iostream.h>
- ],
- [
- cin.rdbuf()->linebuffered(1);
- ],
- [
- ace_cv_feature_has_linebuffered_streambuf=yes
- ],
- [
- ace_cv_feature_has_linebuffered_streambuf=no
- ])
- ], , AC_DEFINE(ACE_LACKS_LINEBUFFERED_STREAMBUF))
-
-dnl Check if platform has unbuffered streambufs
-ACE_CACHE_CHECK(for unbuffered streambufs,
- ace_cv_feature_has_unbuffered_streambuf,[
- AC_TRY_COMPILE(
- [
-#include <iostream.h>
- ],
- [
- cin.rdbuf()->unbuffered(1);
- ],
- [
- ace_cv_feature_has_unbuffered_streambuf=yes
- ],
- [
- ace_cv_feature_has_unbuffered_streambuf=no
- ])
- ], , AC_DEFINE(ACE_LACKS_UNBUFFERED_STREAMBUF))
-
-
-dnl Check if signal takes a void (*)(int) as second argument
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if signal takes a void (*)(int) as second argument,
- ace_cv_lib_signal_vi1_2,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(int);
- void handler(int) { }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vi1_2=yes
- ],
- [
- dnl Check if extern "C" signal handler is required.
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-extern "C"
- {
- typedef void (*SA)(int);
- void handler(int) { }
- }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vi1_2=yes
- ],
- [
- ace_cv_lib_signal_vi1_2=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_SIG_C_FUNC)
- ],)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if signal takes a void (*)(void) as second argument
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if signal takes a void (*)(void) as second argument,
- ace_cv_lib_signal_vv1_2,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(void);
- void handler(void) { }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vv1_2=yes
- ],
- [
- dnl Check if extern "C" signal handler is required.
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-extern "C"
- {
- typedef void (*SA)(void);
- void handler(void) { }
- }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vv1_2=yes
- ],
- [
- ace_cv_lib_signal_vv1_2=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_SIG_C_FUNC)
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if signal takes a void (*)(int, ...) as second argument
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if signal takes a void (*)(int, ...) as second argument,
- ace_cv_lib_signal_vi1a2_2,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(int, ...);
- void handler(int, ...) { }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vi1a2_2=yes
- ],
- [
- dnl Check if extern "C" signal handler is required.
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-extern "C"
- {
- typedef void (*SA)(int, ...);
- void handler(int, ...) { }
- }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vi1a2_2=yes
- ],
- [
- ace_cv_lib_signal_vi1a2_2=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_SIG_C_FUNC)
- ],)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if signal takes a void (*)(...) as second argument
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if signal takes a void (*)(...) as second argument,
- ace_cv_lib_signal_va1_2,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(...);
- void handler(...) { }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_va1_2=yes
- ],
- [
- dnl Check if extern "C" signal handler is required.
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-extern "C"
- {
- typedef void (*SA)(...);
- void handler(...) { }
- }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_va1_2=yes
- ],
- [
- ace_cv_lib_signal_va1_2=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_SIG_C_FUNC)
- ],)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if signal returns a void (*)(int)
-AC_CACHE_CHECK(if signal returns a void (*)(int),
- ace_cv_lib_signal_vi1_ret,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-
-typedef void (*SA)(int);
-void foo(SA nn) { }
- ],
- [
-SA nn = SIG_DFL;
-nn = signal(SIGINT, 0);
-foo(nn);
- ],
- [
- ace_cv_lib_signal_vi1_ret=yes
- ],
- [
- ace_cv_lib_signal_vi1_ret=no
- ])
- ])
-
-dnl Check if signal returns a void (*)(void)
-AC_CACHE_CHECK(if signal returns a void (*)(void),
- ace_cv_lib_signal_vv1_ret,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-
-typedef void (*SA)(void);
-void foo(SA nn) { }
- ],
- [
-SA nn = SIG_DFL;
-nn = signal(SIGINT, 0);
-foo(nn);
- ],
- [
- ace_cv_lib_signal_vv1_ret=yes
- ],
- [
- ace_cv_lib_signal_vv1_ret=no
- ])
- ])
-
-dnl Check if signal returns a void (*)(int, ...)
-AC_CACHE_CHECK(if signal returns a void (*)(int, ...),
- ace_cv_lib_signal_vi1a2_ret,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-
-typedef void (*SA)(int, ...);
- ],
- [
- SA oo = signal(SIGINT, 0);
- ],
- [
- ace_cv_lib_signal_vi1a2_ret=yes
- ],
- [
- ace_cv_lib_signal_vi1a2_ret=no
- ])
- ])
-
-dnl Check if signal returns a void (*)(...)
-AC_CACHE_CHECK(if signal returns a void (*)(...),
- ace_cv_lib_signal_va1_ret,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-
-typedef void (*SA)(...);
- ],
- [
- SA oo = signal(SIGINT, 0);
- ],
- [
- ace_cv_lib_signal_va1_ret=yes
- ],
- [
- ace_cv_lib_signal_va1_ret=no
- ])
- ])
-
-if test "$ace_cv_struct_sigaction" = yes; then
-dnl Check if struct sigaction takes a void (*)(int) handler
- AC_CACHE_CHECK(if struct sigaction takes a void (*)(int) handler,
- ace_cv_lib_struct_sigaction_vi1_handler,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(int);
- void foo(struct sigaction* sa, SA nn) { }
- ],
- [
- struct sigaction sa;
- SA nn = SIG_DFL;
- sa.sa_handler = nn;
- foo(&sa, nn);
- ],
- [
- ace_cv_lib_struct_sigaction_vi1_handler=yes
- ],
- [
- ace_cv_lib_struct_sigaction_vi1_handler=no
- ])
- ])
-
-dnl Check if struct sigaction takes a void (*)(void) handler
- AC_CACHE_CHECK(if struct sigaction takes a void (*)(void) handler,
- ace_cv_lib_struct_sigaction_vv1_handler,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(void);
- void foo(struct sigaction* sa, SA nn) { }
- ],
- [
- struct sigaction sa;
- SA nn = SIG_DFL;
- sa.sa_handler = nn;
- foo(&sa, nn);
- ],
- [
- ace_cv_lib_struct_sigaction_vv1_handler=yes
- ],
- [
- ace_cv_lib_struct_sigaction_vv1_handler=no
- ])
- ])
-
-dnl Check if struct sigaction takes a void (*)(int, ...) handler
- AC_CACHE_CHECK(if struct sigaction takes a void (*)(int, ...) handler,
- ace_cv_lib_struct_sigaction_vi1a2_handler,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(int, ...);
- void foo(struct sigaction* sa, SA nn) { }
- ],
- [
- struct sigaction sa;
- SA nn = SIG_DFL;
- sa.sa_handler = nn;
- foo(&sa, nn);
- ],
- [
- ace_cv_lib_struct_sigaction_vi1a2_handler=yes
- ],
- [
- ace_cv_lib_struct_sigaction_vi1a2_handler=no
- ])
- ])
-
-dnl Check if struct sigaction takes a void (*)(...) handler
- AC_CACHE_CHECK(if struct sigaction takes a void (*)(...) handler,
- ace_cv_lib_struct_sigaction_va1_handler,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(...);
- void foo(struct sigaction* sa, SA nn) { }
- ],
- [
- struct sigaction sa;
- SA nn = SIG_DFL;
- sa.sa_handler = nn;
- foo(&sa, nn);
- ],
- [
- ace_cv_lib_struct_sigaction_va1_handler=yes
- ],
- [
- ace_cv_lib_struct_sigaction_va1_handler=no
- ])
- ])
-fi dnl test "$ace_cv_struct_sigaction" = yes
-
-dnl TODO: This doesn't work.
-dnl The linux compiler issues a warning regarding the invalid void*
-dnl conversion.
-dnl
-dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
-dnl -Ossama
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if msgsnd() takes a struct msgbuf* second argument
-ACE_CACHE_CHECK(if msgsnd() takes a struct msgbuf* second argument,
- ace_cv_lib_posix_msgsnd_msgbufp_2,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-# include <sys/ipc.h>
-#ifndef ACE_LACKS_SYSV_MSG_H
-# include <sys/msg.h>
-#endif
- ],
- [
- int msqid = 0;
- struct msgbuf* msgp = 0;
- int msgsz = 0;
- int msgflg = 0;
- msgsnd(msqid, msgp, msgsz, msgflg);
- ],
- [
- ace_cv_lib_posix_msgsnd_msgbufp_2=yes
- ],
- [
- ace_cv_lib_posix_msgsnd_msgbufp_2=no
- ])
- ],
- [
- dnl "ACTIONS-IF-SUCCESSFUL" handled later in configure.in
- ],
- [
- dnl Check if msgsnd() takes a const void* second argument
- ACE_CACHE_CHECK(if msgsnd() takes a const void* second argument,
- ace_cv_lib_posix_msgsnd_cvoidp_2,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-# include <sys/ipc.h>
-#ifndef ACE_LACKS_SYSV_MSG_H
-# include <sys/msg.h>
-#endif
- ],
- [
- int msqid = 0;
- const void* msgp = 0;
- int msgsz = 0;
- int msgflg = 0;
- msgsnd(msqid, msgp, msgsz, msgflg);
- ],
- [
- ace_cv_lib_posix_msgsnd_cvoidp_2=yes
- ],
- [
- ace_cv_lib_posix_msgsnd_cvoidp_2=no
- ])
- ],
- [
- dnl Do nothing if msgsnd takes a const void* second argument
- ],
- [
- dnl If we get this far we presumably have a non-const void* second param
- AC_DEFINE(ACE_HAS_NONCONST_MSGSND)
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl TODO: This doesn't work.
-dnl The linux compiler issues a warning regarding the invalid void*
-dnl conversion.
-dnl
-dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
-dnl -Ossama
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if msgrcv() takes a void* second argument
-AC_CACHE_CHECK(if msgrcv() takes a void* second argument,
- ace_cv_lib_posix_msgrcv_voidp_2,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-# include <sys/ipc.h>
-#ifndef ACE_LACKS_SYSV_MSG_H
-# include <sys/msg.h>
-#endif
- ],
- [
- int msqid = 0;
- void* msgp = 0;
- int msgsz = 0;
- long msgtyp = 0;
- int msgflg = 0;
- msgrcv(msqid, msgp, msgsz, msgtyp, msgflg);
- ],
- [
- ace_cv_lib_posix_msgrcv_voidp_2=yes
- ],
- [
- ace_cv_lib_posix_msgrcv_voidp_2=no
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl TODO: This doesn't work.
-dnl The linux compiler issues a warning regarding the invalid void*
-dnl conversion.
-dnl
-dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
-dnl -Ossama
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if shmat() takes a void* second argument
-AC_CACHE_CHECK(if shmat() takes a void* second argument,
- ace_cv_lib_posix_shmat_voidp_2,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-# include <sys/ipc.h>
-# include <sys/shm.h>
- ],
- [
- int shmid = 0;
- void* shmaddr = 0;
- int shmflg = 0;
- shmat(shmid, shmaddr, shmflg);
- ],
- [
- ace_cv_lib_posix_shmat_voidp_2=yes
- ],
- [
- ace_cv_lib_posix_shmat_voidp_2=no
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl TODO: This doesn't work.
-dnl The linux compiler issues a warning regarding the invalid void*
-dnl conversion.
-dnl
-dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
-dnl -Ossama
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if sigaction() takes a const* second argument
-AC_CACHE_CHECK(if sigaction() takes a const* second argument,
- ace_cv_lib_posix_sigaction_constp_2,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- ],
- [
- int signum = 0;
- const struct sigaction* act = 0;
- struct sigaction* oldact = 0;
- sigaction(signum, act, oldact);
- ],
- [
- ace_cv_lib_posix_sigaction_constp_2=yes
- ],
- [
- ace_cv_lib_posix_sigaction_constp_2=no
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if the wait() system call takes a (union wait *) rather than int *
-ACE_CACHE_CHECK(if wait() takes a (union wait *) rather than int *,
- ace_cv_lib_wait_takes_union_wait_ptr,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/wait.h>
- ],
- [
- int* status = 0;
- int result = 0;
- result=wait(status);
- ],
- [
- ace_cv_lib_wait_takes_union_wait_ptr=no
- ],
- [
- AC_TRY_COMPILE(
- [
-#include <sys/wait.h>
- ],
- [
- union wait* status = 0;
- int result = 0;
- result=wait(status);
- ],
- [
- ace_cv_lib_wait_takes_union_wait_ptr=yes
- ],
- [
-dnl If we get here then we're screwed! We can't use int* or union wait*.
-dnl It is very unlikely that we will ever get this far. For the sake
-dnl of setting some result, we'll assume that we can actually use int*.
- ace_cv_lib_wait_takes_union_wait_ptr=no
- AC_MSG_WARN(wait() doesn't seem to take either int* or union wait*)
- AC_MSG_WARN(as an argument. Going to assume that int* will work.)
- ])
- ])
- ], AC_DEFINE(ACE_HAS_UNION_WAIT),)
-
-dnl We need to use the ACE_CONVERT_WARNINGS_TO_ERRORS() macro since
-dnl passing a void * just caused implicit conversion warnings when
-dnl using GNU C++, for example.
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check for SVR4 style gettimeofday()
-AC_CACHE_CHECK(if gettimeofday() takes a void * second argument,
- ace_cv_lib_voidptr_gettimeofday,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/time.h>
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
- ],
- [
- struct timeval *tv = 0;
- void *tzp = 0;
-
- gettimeofday(tv, tzp);
- ],
- [
- ace_cv_lib_voidptr_gettimeofday=yes
- ],
- [
- ace_cv_lib_voidptr_gettimeofday=no
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-if test "$ace_cv_lib_voidptr_gettimeofday" = no; then
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check for old OSF1 style gettimeofday()
- AC_CACHE_CHECK(if gettimeofday() takes a timezone * second argument,
- ace_cv_lib_timezone_gettimeofday,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/time.h>
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
- ],
- [
- struct timeval *tv = 0;
- struct timezone *tzp = 0;
-
- gettimeofday(tv, tzp);
- ],
- [
- ace_cv_lib_timezone_gettimeofday=yes
- ],
- [
- ace_cv_lib_timezone_gettimeofday=no
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-fi dnl test "$ace_cv_lib_voidptr_gettimeofday" = no
-
-dnl Check for gettimeofday() protoype
-if test "$ace_cv_lib_voidptr_gettimeofday" = yes ||
- test "$ace_cv_lib_timezone_gettimeofday" = yes; then
- ACE_CACHE_CHECK(for gettimeofday() protoype,
- ace_cv_lib_has_gettimeofday_prototype,
- [
- AC_EGREP_CPP(gettimeofday,
- [
-#include <time.h>
-
-#ifdef ACE_LACKS_SYSTIME_H
-# include <sys/time.h>
-#endif
- ],
- [
-dnl We have a gettimeofday prototype
- ace_cv_lib_has_gettimeofday_prototype=yes
- ],
- [
-dnl We don't have a gettimeofday prototype
- ace_cv_lib_has_gettimeofday_prototype=no
- ])
- ],
- [
- if test "$ace_cv_lib_voidptr_gettimeofday" = yes; then
- AC_DEFINE(ACE_HAS_SUNOS4_GETTIMEOFDAY)
- else
- AC_DEFINE(ACE_HAS_TIMEZONE_GETTIMEOFDAY)
- fi
- ],
- [
- if test "$ace_cv_lib_voidptr_gettimeofday" = yes; then
- AC_DEFINE(ACE_HAS_SVR4_GETTIMEOFDAY)
- else
- AC_DEFINE(ACE_HAS_OSF1_GETTIMEOFDAY)
- fi
- ])
-fi dnl Check for gettimeofday() protoype
-
-
-dnl Check if ctime_r() takes two arguments
-if test "$ac_cv_func_ctime_r" = yes; then
- ACE_CACHE_CHECK(if ctime_r() takes two arguments,
- ace_cv_lib_posix_ctime_r_2_params,
- [
- AC_TRY_COMPILE(
- [
-#ifndef _REENTRANT
-# define _REENTRANT
-#endif
-
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
- ],
- [
- const time_t *t = 0;
- char *buf;
- ctime_r(t, buf);
- ],
- [
- ace_cv_lib_posix_ctime_r_2_params=yes
- ],
- [
- ace_cv_lib_posix_ctime_r_2_params=no
- ])
- ], AC_DEFINE(ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R),)
-fi dnl test "$ac_cv_func_ctime_r" = yes
-
-
-dnl
-dnl SECTION 12: checks for type characteristics
-dnl
-
-dnl struct msghdr stuff
-dnl Only run the following tests if the msghdr structure exists.
-if test "$ace_cv_struct_msghdr" = yes; then
-
- ACE_CACHE_CHECK(if struct msghdr has a msg_accrights member,
- ace_cv_lib_posix_struct_msghdr_has_msg_accrights,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- msghdr mh;
- mh.msg_accrights = 0;
- ],
- [
- ace_cv_lib_posix_struct_msghdr_has_msg_accrights=yes
- ],
- [
- ace_cv_lib_posix_struct_msghdr_has_msg_accrights=no
- ])
- ])
-
- ACE_CACHE_CHECK(if struct msghdr has a msg_accrightslen member,
- ace_cv_lib_posix_struct_msghdr_has_msg_accrightslen,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- msghdr mh;
- mh.msg_accrightslen = 0;
- ],
- [
- ace_cv_lib_posix_struct_msghdr_has_msg_accrightslen=yes
- ],
- [
- ace_cv_lib_posix_struct_msghdr_has_msg_accrightslen=no
- ])
- ])
-
-dnl Check for 4.4 BSD style struct msghdr members
-dnl The following test should only be run if the above two testsfail.
- if test "$ace_cv_lib_posix_struct_msghdr_has_msg_accrights" = no &&
- test "$ace_cv_lib_posix_struct_msghdr_has_msg_accrightslen" = no; then
- AC_DEFINE(ACE_LACKS_MSG_ACCRIGHTS)
- ACE_CACHE_CHECK(for 4.4 BSD style struct msghdr,
- ace_cv_lib_4_4bsd_msghdr,[
- AC_EGREP_HEADER(msg_control, sys/socket.h,
- [
- ace_cv_lib_4_4bsd_msghdr=yes
- ],
- [
- ace_cv_lib_4_4bsd_msghdr=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- ],
- [
- AC_MSG_WARN(No supported msghdr structure was found. ACE may not compile or function properly.)
- ])
- fi
-
-dnl Now check if CMSG_DATA is defined if and only if we have 4.4 BSD
-dnl style struct msghdr members. If CMSG_DATA isn't defined, then
-dnl we try to figure out what it should be defined to.
- if test "$ace_cv_lib_4_4bsd_msghdr" = yes; then
- ACE_CACHE_CHECK(if CMSG_DATA is defined,
- ace_cv_lib_cmsg_data,
- [
- AC_EGREP_CPP(ACE_CMSG_DATA_DEFINED,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#if defined (CMSG_DATA)
- ACE_CMSG_DATA_DEFINED
-#endif
- ],
- [
- ace_cv_lib_cmsg_data=yes
- ],
- [
- ace_cv_lib_cmsg_data=no
-dnl Now check which type of CMSG_DATA #define we need.
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-#include <sys/un.h>
- ],
- [
- /* This is sloppy. Oh well. :) */
- unsigned char ace_cmsg_data[0];
-
- cmsghdr ace_cmsg;
- ace_cmsg.cmsg_data = ace_cmsg_data;
- ],
- [
- dnl Do nothing
- ],
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-#include <sys/un.h>
- ],
- [
- /* This is sloppy. Oh well. :) */
- unsigned char ace_cmsg_data[0];
-
- cmsghdr ace_cmsg;
- ace_cmsg.__cmsg_data = ace_cmsg_data;
- ],
- [
- AC_MSG_ERROR(cmsgmdr member '__cmsg_data[0]' not supported by ACE's CMSG_DATA macro)
- ],
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-#include <sys/un.h>
- ],
- [
- cmsghdr ace_cmsg;
- ],
- [
- AC_CACHE_VAL(ace_cv_lib_cmsg_data_member,
- ace_cv_lib_cmsg_data_member=no)
- ],
- [
- AC_MSG_ERROR(No supported cmsghdr structure exists. ACE cannot be built without one.)
- ])
- ])
- ])
- ])
- ], ,
- [
- AC_DEFINE(ACE_LACKS_CMSG_DATA_MACRO)
- if test "$ace_cv_lib_cmsg_data_member"=no; then
- AC_DEFINE(ACE_LACKS_CMSG_DATA_MEMBER)
- fi
-
- ])
- fi dnl test "$ace_cv_lib_4_4bsd_msghdr" = yes
-
-fi dnl End struct msghdr_stuff
-
-dnl
-dnl SECTION 13: checks for system services
-dnl
-
-dnl Do not run this test if we are using a cross-compiler.
-if test "$cross_compiling" != yes; then
- ACE_SYS_RESTARTABLE_SYSCALLS
- if test "$ac_cv_sys_restartable_syscalls" = yes; then
- AC_DEFINE(ACE_HAS_SIGNAL_SAFE_OS_CALLS)
- fi
-fi
-
-dnl Check if platform defines ctime() as a macro
-ACE_CACHE_CHECK(for ctime() macro,
- ace_cv_feature_have_ctime_macro,
- [
- AC_EGREP_CPP(ACE_CTIME_MACRO,
- [
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
-
-#if defined (ctime)
- ACE_CTIME_MACRO
-#endif
- ],
- [
- ace_cv_feature_have_ctime_macro=yes
- ],
- [
- ace_cv_feature_have_ctime_macro=no
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_CTIME),)
-
-dnl Check if platform defines ctime_r, asctime_r, rand_r or getpwnam_r
-dnl as macros.
-ACE_CACHE_CHECK(for reentrant function macros,
- ace_cv_feature_has_broken_r_routines,
- [
- AC_EGREP_CPP(ACE_R_MACROS,
- [
-#ifndef _REENTRANT
-# define _REENTRANT
-#endif
-
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
-
-#if defined (HAVE_PWD_H)
-# include <pwd.h>
-#endif
-
-#if defined (ctime_r) || \
- defined (asctime_r) || \
- defined (rand_r) || \
- defined (getpwnam_r)
- ACE_R_MACROS
-#endif
- ],
- [
- ace_cv_feature_has_broken_r_routines=yes
- ],
- [
- ace_cv_feature_has_broken_r_routines=no
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_R_ROUTINES),)
-
-dnl Check if platform defines sig{empty,fill,add,del}set as macros
-ACE_CACHE_CHECK(for sig{empty fill add del}set macros,
- ace_cv_feature_have_sig_macros,
- [
- AC_EGREP_CPP(ACE_SIG_MACROS,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <signal.h>
-
-#if defined (sigemptyset) && \
- defined (sigfillset) && \
- defined (sigaddset) && \
- defined (sigdelset) && \
- defined (sigismember)
- ACE_SIG_MACROS
-#endif
- ],
- [
- ace_cv_feature_have_sig_macros=yes
- ],
- [
- ace_cv_feature_have_sig_macros=no
- ])
- ], AC_DEFINE(ACE_HAS_SIG_MACROS),)
-
-dnl Check for open() mode masks
-ACE_CACHE_CHECK(for open() mode masks,
- ace_cv_feature_have_open_mode_masks,[
- AC_EGREP_CPP(ACE_OPEN_MODE_MASKS_EXIST,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/stat.h>
-#include <fcntl.h>
-
-/* These are ORed so that ACE will not redefine any of them if any of
- them exist. */
-#if defined (S_IRWXU) || \
- defined (S_IRUSR) || \
- defined (S_IWUSR) || \
- defined (S_IXUSR) || \
- defined (S_IRWXG) || \
- defined (S_IRGRP) || \
- defined (S_IWGRP) || \
- defined (S_IXGRP) || \
- defined (S_IRWXO) || \
- defined (S_IROTH) || \
- defined (S_IWOTH) || \
- defined (S_IXOTH)
- ACE_OPEN_MODE_MASKS_EXIST
-#endif
- ],
- [
- ace_cv_feature_have_open_mode_masks=yes
- ],
- [
- ace_cv_feature_have_open_mode_masks=no
- ])
- ], , AC_DEFINE(ACE_LACKS_MODE_MASKS))
-
-
-dnl Check if platform supports POSIX O_NONBLOCK semantics
-ACE_CACHE_CHECK(for POSIX O_NONBLOCK semantics,
- ace_cv_feature_posix_o_nonblock,[
- AC_EGREP_CPP(ACE_POSIX_O_NONBLOCK,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#if defined (O_NONBLOCK)
- ACE_POSIX_O_NONBLOCK
-#endif
- ],
- [
- ace_cv_feature_posix_o_nonblock=yes
- ],
- [
- ace_cv_feature_posix_o_nonblock=no
- ])
- ], AC_DEFINE(ACE_HAS_POSIX_NONBLOCK),)
-
-dnl Check for MAP_FAILED constant
-ACE_CACHE_CHECK(for MAP_FAILED constant,
- ace_cv_lib_have_map_failed,[
- dnl We need the square brackets around "ACEMAPFAILED.+[0-9]" to
- dnl prevent the character class "[0-9]" from becoming "0-9" due to
- dnl M4 quoting.
- AC_EGREP_CPP([ACEMAPFAILED.+[0-9]],
- [
-#include <sys/mman.h>
- ACEMAPFAILED MAP_FAILED
- ],
- [
- ace_cv_lib_have_map_failed=yes
- ],
- [
- ace_cv_lib_have_map_failed=no
- ])
- ],
- [
- dnl Check if platform defines MAP_FAILED as a long constant
- ACE_CACHE_CHECK(if MAP_FAILED is a long constant,
- ace_cv_feature_long_map_failed,[
- dnl We need the square brackets around "ACEMAPFAILED.+[0-9]L" to
- dnl prevent the character class "[0-9]" from becoming "0-9" due to
- dnl M4 quoting.
- AC_EGREP_CPP([ACEMAPFAILED.+[0-9]L],
- [
-#include <sys/mman.h>
- ACEMAPFAILED MAP_FAILED
- ],
- [
- ace_cv_feature_long_map_failed=yes
- ],
- [
- ace_cv_feature_long_map_failed=no
- ])
- ], AC_DEFINE(ACE_HAS_LONG_MAP_FAILED),
- [
- dnl Check if MAP_FAILED is _not_ cast to void *
- ACE_CACHE_CHECK(if MAP_FAILED is not cast to void *,
- ace_cv_have_broken_map_failed,[
- AC_TRY_COMPILE(
- [
-#include <sys/mman.h>
- ],
- [
- void * foo = MAP_FAILED;
- ],
- [
- ace_cv_have_broken_map_failed=no
- ],
- [
- AC_TRY_COMPILE(
- [
-#include <sys/mman.h>
- ],
- [
- void * foo = (void *) MAP_FAILED;
- ],
- [
- ace_cv_have_broken_map_failed=yes
- ],
- [
- dnl If we get here then we have no idea what is wrong!
- ace_cv_have_broken_map_failed=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_MAP_FAILED),)
- ])
- ],)
-
-dnl Check if platform supports TCP_NODELAY support
-ACE_CACHE_CHECK(for TCP_NODELAY support,
- ace_cv_feature_tcp_nodelay,[
- AC_EGREP_CPP(ACE_TCPNODELAY,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <netinet/tcp.h>
-
-#if defined (TCP_NODELAY)
- ACE_TCPNODELAY
-#endif
- ],
- [
- ace_cv_feature_tcp_nodelay=yes
- ],
- [
- ace_cv_feature_tcp_nodelay=no
- ])
- ], , AC_DEFINE(ACE_LACKS_TCP_NODELAY))
-
-dnl Check if platform supports SO_SNDBUF/SO_RCVBUF socket options
-ACE_CACHE_CHECK(for SO_SNDBUF/SO_RCVBUF socket options,
- ace_cv_feature_so_sndbuf_rcvbuf,[
- AC_EGREP_CPP(ACE_SO_BUF,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-
-#if defined (SO_SNDBUF) && \
- defined (SO_RCVBUF)
- ACE_SO_BUF
-#endif
- ],
- [
- ace_cv_feature_so_sndbuf_rcvbuf=yes
- ],
- [
- ace_cv_feature_so_sndbuf_rcvbuf=no
- ])
- ], , AC_DEFINE(ACE_LACKS_SOCKET_BUFSIZ))
-
-dnl TODO: We only check for ACE_HAS_AUTOMATIC_INIT_FINI on platforms that
-dnl have SVR4 dynamic linking since ACE doesn't support it otherwise.
-if test "$ac_cv_header_dlfcn_h" = yes &&
- test "$ace_has_svr4_dynamic_linking" = yes; then
-dnl Check if platform calls init/fini automatically
- ACE_CACHE_CHECK(for automatic init/fini calls,
- ace_cv_feature_auto_init_fini,[
- ace_cv_feature_auto_init_fini=yes
- # TODO: We know how to check for this, but we need to:
- #
- # 1. Compile one file.
- # 2. Compile and link another file.
- # 3. Run file in point (2); it returns what we need.
- #
- # How do we do all that?
- ], AC_DEFINE(ACE_HAS_AUTOMATIC_INIT_FINI),)
-fi dnl test "$ac_cv_header_dlfcn_h" = yes &&
- dnl "$ace_has_svr4_dynamic_linking" = yes
-
-dnl Check for recursive thread exit semantics
-if test "$ace_user_enable_threads" = yes; then
- ACE_CACHE_CHECK(for recursive thread exit semantics,
- ace_cv_feature_recursive_thr_exit,[
- ace_cv_feature_recursive_thr_exit=yes
- # TODO: How do we check for recursive thread exit semantics
- ], AC_DEFINE(ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS),)
-fi
-
-dnl Check for UNIX domain sockets
-ACE_CACHE_CHECK(for UNIX domain sockets,
- ace_cv_feature_unix_sockets,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/un.h>
- ],
- [
- sockaddr_un su;
- ],
- [
- ace_cv_feature_unix_sockets=yes
- ],
- [
- ace_cv_feature_unix_sockets=no
- ])
- ], , AC_DEFINE(ACE_LACKS_UNIX_DOMAIN_SOCKETS))
-
-dnl Check for ACE_Handle_Set optimized for select()
-ACE_CACHE_CHECK(for ACE_Handle_Set optimized for select(),
- ace_cv_feature_handle_set_optimized_for_select,[
- ace_cv_feature_handle_set_optimized_for_select=yes
- # TODO: We know how to check this. We need to:
- #
- # 1. Compile and link a file.
- # 2. Run nm on that file.
- #
- # How do we do that?
- ], AC_DEFINE(ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT),)
-
-dnl Even we if we don't have IP multicasting, we still need to define
-dnl "ACE_HAS_IP_MULTICAST" since struct ip_mreq gets redefined by ACE.
-dnl What do we do about this problem?
-dnl -Ossama
-dnl Check for IP multicast support
-ACE_CACHE_CHECK(for IP multicast support,
- ace_cv_feature_ip_multicast,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <netinet/in.h>
- ],
- [
- ip_mreq im;
- ],
- [
- ace_cv_feature_ip_multicast=yes
- ],
- [
-dnl Some platforms define ip_mreq in <sys/netinet/in.h>.
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/netinet/in.h>
- ],
- [
- ip_mreq im;
- ],
- [
- ace_cv_feature_ip_multicast=yes
- ],
- [
- ace_cv_feature_ip_multicast=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_IP_MULTICAST),)
-
-ACE_CACHE_CHECK(if running on an Alpha,
- ace_cv_feature_alpha,[
- case "$host" in
- alpha*)
- ace_cv_feature_alpha=yes
- ;;
- *)
- ace_cv_feature_alpha=no
- ;;
- esac
- ],
- [
- case "$host" in
- *linux*)
- dnl We only define ACE_HAS_ALPHA_TIMER if we are running Linux
- dnl on an Alpha and are using GNU C++!
- if test -n "$GXX"; then
- AC_DEFINE(ACE_HAS_ALPHA_TIMER)
- fi
- ;;
- esac
- ],)
-
-ACE_CACHE_CHECK(if running on a Power PC,
- ace_cv_feature_powerpc,[
- case "$host" in
- powerpc*)
- ace_cv_feature_powerpc=yes
- ;;
- *)
- ace_cv_feature_powerpc=no
- ;;
- esac
- ],
- [
- case "$host" in
- *aix*)
- dnl We don't do anything for AIX since AIX already has a
- dnl hi-res timer function!
- ;;
- *)
- dnl Only define ACE_HAS_POWERPC_TIMER when using GNU C++!
- if test -n "$GXX"; then
- AC_DEFINE(ACE_HAS_POWERPC_TIMER)
- fi
- ;;
- esac
- ],)
-
-ACE_CACHE_CHECK(if running on a Pentium(tm) processor,
- ace_cv_feature_pentium,[
- case "$host" in
- i386-* | i486-* |i586-* | i686-*)
-dnl If we do have a pentium, than define ACE_HAS_PENTIUM and add
-dnl gethrtime.cpp to the source list, but only if we're using GNU C++
-dnl since gethrtime.cpp uses assembler code specific to that compiler.
- if test -n "$GXX"; then
- ace_cv_feature_pentium=yes
- else
- ace_cv_feature_pentium=no
- fi
- ;;
- *)
- ace_cv_feature_pentium=no
- ;;
- esac
- ],
- [
- AC_DEFINE(ACE_HAS_PENTIUM)
- ],)
-AM_CONDITIONAL(ACE_ON_PENTIUM, test X$ace_cv_feature_pentium = Xyes)
-
-
-dnl
-dnl SECTION 14: checks for aggregated features
-dnl TODO: Little by little, get rid of these...
-dnl
-
-
-dnl Macro ACE_HAS_REENTRANT_FUNCTIONS means the following functions
-dnl are usable:
-dnl
-dnl rand_r
-dnl strtok_r
-dnl getpwnam_r (if we don't have, define ACE_LACKS_PWD_REENTRANT_FUNCTIONS)
-dnl ctime_r
-dnl localtime_r
-dnl gmtime_r
-dnl asctime_r
-dnl * getprotobyname_r
-dnl * getprotobynumber_r
-dnl * gethostbyaddr_r
-dnl * gethostbyname_r
-dnl * getservbyname_r
-dnl
-dnl Those marked with '*' are NOT usable if
-dnl ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) is defined.
-dnl
-dnl The time has come to create feature macros for each of these...
-dnl With the separate feature macros, we will define (for now)
-dnl ACE_HAS_REENTRANT_FUNCTIONS only when all of those WITHOUHT a '*'
-dnl are defined. Also, if any of those with '*' are missing, we will
-dnl define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS.
-
-dnl Don't bother with reentrant functions if they are disabled by the user.
-if test "$ace_user_enable_reentrant_funcs" = yes &&
- test "$ac_cv_func_rand_r" = yes &&
- test "$ac_cv_func_strtok_r" = yes &&
- test "$ac_cv_func_ctime_r" = yes &&
- test "$ac_cv_func_localtime_r" = yes &&
- test "$ac_cv_func_gmtime_r" = yes &&
- test "$ac_cv_func_asctime_r" = yes; then
- AC_DEFINE(ACE_HAS_REENTRANT_FUNCTIONS)
-fi
-
-dnl Don't bother with reentrant functions if they are disabled by the user.
-if test "$ace_user_enable_reentrant_funcs" = no ||
- test "$ac_cv_func_getprotobyname_r" = no ||
- test "$ac_cv_func_getprotobynumber_r" = no ||
- test "$ac_cv_func_gethostbyaddr_r" = no ||
- test "$ac_cv_func_gethostbyname_r" = no ||
- test "$ac_cv_func_getservbyname_r" = no; then
- AC_DEFINE(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
-fi
-
-dnl FIXME!!!
-dnl The following is a kludge until the netdb reentrant function
-dnl number of arguments is handled.
-case "$host" in
- *linux*) AC_DEFINE(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS);;
- *) ;;
-esac
-
-
-dnl Macro ACE_LACKS_SOME_POSIX_PROTOTYPES implies any of the following
-dnl features:
-dnl
-dnl ! ACE_HAS_MSGSND_MSGBUFP_2
-dnl ! ACE_LACKS_MSGRCV_VOIDP_2
-dnl ! ACE_LACKS_SHMAT_VOIDP_2
-dnl ! ACE_LACKS_SIGACTION_CONSTP_2
-dnl
-dnl So, for now, we define it if any of those were autoconf'ed.
-
-if test "$ace_cv_lib_posix_msgsnd_msgbufp_2" = yes ||
- test "$ace_cv_lib_posix_msgrcv_voidp_2" != yes ||
- test "$ace_cv_lib_posix_shmat_voidp_2" != yes ||
- test "$ace_cv_lib_posix_sigaction_constp_2" != yes; then
- AC_DEFINE(ACE_LACKS_SOME_POSIX_PROTOTYPES)
-fi
-
-if test "$ac_cv_func_msgctl" = yes &&
- test "$ac_cv_func_msgget" = yes &&
- test "$ac_cv_func_msgrcv" = yes &&
- test "$ac_cv_func_semctl" = yes &&
- test "$ac_cv_func_semget" = yes &&
- test "$ac_cv_func_semop" = yes &&
- test "$ac_cv_func_shmat" = yes &&
- test "$ac_cv_func_shmctl" = yes &&
- test "$ac_cv_func_shmdt" = yes &&
- test "$ac_cv_func_shmget" = yes; then
- AC_DEFINE(ACE_HAS_SYSV_IPC)
-fi
-
-if test "$ac_cv_func_shmat" != yes ||
- test "$ac_cv_func_shmctl" != yes ||
- test "$ac_cv_func_shmdt" != yes ||
- test "$ac_cv_func_shmget" != yes; then
- AC_DEFINE(ACE_LACKS_SYSV_SHMEM)
-fi
-
-dnl Check for what POSIX threads draft we have
-AC_MSG_CHECKING(which POSIX thread library was found)
-
-ace_has_pthreads=no
-
-dnl Check if we have Pthreads Draft 4
-dnl if test "$ac_cv_func_pthread_delay_np" = yes &&
-if test "$ac_cv_func_pthread_mutexattr_create" = yes &&
-dnl test "$ac_cv_func_pthread_mutexattr_setkind_np" = yes &&
- test "$ac_cv_func_pthread_mutexattr_delete" = yes &&
- test "$ac_cv_func_pthread_condattr_delete" = yes &&
- test "$ac_cv_func_pthread_condattr_create" = yes &&
- test "$ac_cv_func_pthread_setprio" = yes &&
- test "$ac_cv_func_pthread_getprio" = yes &&
-dnl test "$ac_cv_func_pthread_getspecific" = yes &&
- test "$ac_cv_func_pthread_setcancel" = yes &&
- test "$ac_cv_func_pthread_setasynccancel" = yes &&
- test "$ac_cv_func_pthread_kill" = yes; then
- ace_has_pthreads=yes
- AC_MSG_RESULT(POSIX Threads Draft 4)
- AC_DEFINE(ACE_HAS_PTHREADS_DRAFT4)
-dnl Check if we have Pthreads Draft 6
-elif test "$ac_cv_func_pthread_mutexattr_init" = yes &&
- test "$ac_cv_func_pthread_mutexattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_init" = yes &&
- test "$ac_cv_func_pthread_attr_setprio" = yes &&
- test "$ac_cv_func_pthread_attr_getprio" = yes &&
- test "$ac_cv_func_pthread_setintr" = yes &&
- test "$ac_cv_func_pthread_setintrtype" = yes; then
- ace_has_pthreads=yes
- AC_MSG_RESULT(POSIX Threads Draft 6)
- AC_DEFINE(ACE_HAS_PTHREADS_DRAFT6)
-dnl Check if we have Pthreads Draft 7
-elif test "$ac_cv_func_pthread_mutexattr_init" = yes &&
- test "$ac_cv_func_pthread_mutexattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_init" = yes &&
- test "$ac_cv_func_pthread_setschedparam" = yes &&
- test "$ac_cv_func_pthread_getschedparam" = yes &&
- test "$ac_cv_func_pthread_setcancelstate" = yes &&
- test "$ac_cv_func_pthread_setcanceltype" = yes &&
- test "$ace_has_sched_yield" != yes; then
- ace_has_pthreads=yes
- AC_MSG_RESULT(POSIX Threads Draft 7)
- AC_DEFINE(ACE_HAS_PTHREADS_DRAFT7)
-dnl Check if we have Pthreads Draft Standard
-elif test "$ac_cv_func_pthread_mutexattr_init" = yes &&
- test "$ac_cv_func_pthread_mutexattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_init" = yes &&
- test "$ac_cv_func_pthread_setschedparam" = yes &&
- test "$ac_cv_func_pthread_getschedparam" = yes &&
- test "$ac_cv_func_pthread_setcancelstate" = yes &&
- test "$ac_cv_func_pthread_setcanceltype" = yes &&
- test "$ace_has_sched_yield" = yes; then
- ace_has_pthreads=yes
- AC_MSG_RESULT(POSIX Threads Draft Standard)
- AC_DEFINE(ACE_HAS_PTHREADS_STD)
-else
- ace_has_pthreads=no
- AC_MSG_RESULT(none)
-fi dnl PTHREAD DRAFT CHECKS
-
-dnl Check if we have UNIX International threads
-AC_MSG_CHECKING(if a UNIX International thread library was found)
-if test "$ace_has_sthreads" = yes; then
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-if test "$ace_user_enable_threads" != yes ||
- test "$ace_has_pthreads" != yes &&
- test "$ace_has_sthreads" != yes; then
- dnl We don't have a usable thread library!
- ace_user_enable_threads=no
- dnl Make sure _REENTRANT and _THREAD_SAFE are not in the
- dnl preprocessor flags since thread support is being disabled.
- dnl Removal of these flags is only performed if the configure script
- dnl added them.
- if test -n "$ACE_THR_CPPFLAGS"; then
-changequote(, )dnl
- CPPFLAGS=`eval "echo $CPPFLAGS | sed -e 's/$ACE_THR_CPPFLAGS//' -e 's/-D_THREAD_SAFE\(=[0-9]*\)\?//'"`
-changequote([, ])dnl
- fi
-
- AC_MSG_WARN(It appears that you do NOT have any usable thread libraries)
- AC_MSG_WARN(or thread support was explicitly disabled.)
- AC_MSG_WARN(Disabling thread support.)
- dnl ACE uses different versions of readdir_r depending on the thread
- dnl library being used, i.e. on the ACE_HAS_*THREADS* macros. Since
- dnl it doesn't seem like a good idea to define any ACE_HAS_*THREADS*
- dnl macro if ACE won't be supporting threads, define ACE_LACKS_READDIR_R
- dnl regardless if readdir_r() exists.
- if test "$ac_cv_func_readdir_r" = yes; then
- AC_MSG_WARN(Disabling support for readdir_r() since thread support)
- AC_MSG_WARN(is being disabled.)
- AC_DEFINE(ACE_LACKS_READDIR_R)
- fi dnl test "$ac_cv_func_readdir_r" = yes
-fi dnl
-
-if test "$ace_user_enable_threads" = yes; then
-dnl If we get this far then we have threads.
-dnl FIXME: The "_POSIX" macros may need to be defined _before_ the checks for
-dnl reentrant functions! However, we don't want to define them if
-dnl the UNIX International threads library was detected.
- AC_DEFINE(ACE_HAS_THREADS)
- AC_DEFINE(ACE_MT_SAFE)
- ACE_CPPFLAGS="$ACE_CPPFLAGS $ACE_THR_CPPFLAGS"
- if test "$ace_has_pthreads" = yes &&
- test "$ace_has_sthreads" != yes; then
- AC_DEFINE(_POSIX_THREADS)
- AC_DEFINE(_POSIX_THREAD_SAFE_FUNCTIONS)
- AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
- fi dnl test "$ace_has_pthreads" = yes
-
- if test "$ace_has_pthreads" = yes; then
-
- dnl Check if OS requires non-null status pointer for ::pthread_join ()
- dnl
- dnl This test must be performed after the POSIX threads implementation
- dnl that the platform supports has been determined.
- ACE_CACHE_CHECK(for pthread_join null status pointer support,
- ace_cv_have_null_status_pthread_join,[
- AC_EGREP_CPP(WE_HAVE_PTHREADS_D4,
- [
-#if defined (ACE_HAS_PTHREADS) && defined (ACE_HAS_PTHREADS_DRAFT4)
-/* This test is only valid for Pthreads Draft 4 */
-WE_HAVE_PTHREADS_D4
-#endif
- ],
- [
- AC_TRY_RUN(
- [
-#ifndef _REENTRANT
-#define _REENTRANT
-#endif
-
-#include <pthread.h>
-
-/* _THREAD_SAFE is defined in <pthread.h> on some platforms. */
-#ifndef _THREAD_SAFE
-#define _THREAD_SAFE
-#endif
-
-#include <stdio.h>
-
-#ifdef __cplusplus
-extern "C"
-#endif
-void *
-nothing (void *unused)
-{
- return (void *) 34;
-};
-
-int
-main (int argc, char *argv[])
-{
- pthread_attr_t attr;
- pthread_t id;
- void *status;
- int retval = 0;
-
- /* ----- */
- /* We return 0 on error for these calls since we only want to
- return an error status if pthread_join fails. If these calls
- fail then we've got other problems! */
- if (pthread_attr_create (&attr) != 0) return 0 /*1*/;
-
- if (pthread_create (&id, attr, nothing, 0) != 0) return 0 /*2*/;
-
- if (pthread_attr_delete (&attr) != 0) return /*3*/;
- /* ----- */
-
- /* With a second (status) arg of 0, LynxOS 3.0.0 pthread_join ()
- will fail with errno 14 (address fault detected). */
- if (pthread_join (id, 0) == -1) {
- fprintf (stderr, "%s: %d; ", __FILE__, __LINE__);
- perror ("pthread_join");
- retval = 1;
- }
-
- if (pthread_join (id, &status) == -1) {
- fprintf (stderr, "%s: %d; ", __FILE__, __LINE__);
- perror ("pthread_join");
- retval = 2;
- }
-
- return retval;
-}
- ],
- [
- ace_cv_have_null_status_pthread_join=yes
- ],
- [
- ace_cv_have_null_status_pthread_join=no
- ],
- [
- dnl If we are cross-compiling let's hope that
- dnl that we have a working null status pointer
- dnl for pthread_join.
- ace_cv_have_null_status_pthread_join=yes
- ])
- ],
- [
- ace_cv_have_null_status_pthread_join=yes
- ])
- ], , AC_DEFINE(ACE_LACKS_NULL_PTHREAD_STATUS))
-
- dnl Check if platform needs to #include <sched.h> to get thread
- dnl scheduling defs.
- ACE_CACHE_CHECK([if sched.h is needed for thread scheduling definitions],
- [ace_cv_needs_sched_h],
- [
- AC_TRY_COMPILE(
- [
-#ifdef ACE_HAS_STHREADS
-#include <thread.h>
-#endif
-
-#ifdef ACE_HAS_PTHREADS
-#include <pthread.h>
-#endif
- ],
- [
-int foo = SCHED_OTHER;
- ],
- [
- ace_cv_needs_sched_h=no
- ],
- [
- AC_TRY_COMPILE(
- [
-#ifdef ACE_HAS_STHREADS
-#include <thread.h>
-#endif
-
-#ifdef ACE_HAS_PTHREADS
-#include <pthread.h>
-#endif
-
-#include <sched.h>
- ],
- [
-int foo = SCHED_OTHER;
- ],
- [
- ace_cv_needs_sched_h=yes
- ],
- [
- dnl We're hosed if we get here!
- ace_cv_needs_sched_h=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_NEEDS_SCHED_H)
- ],)
-
- dnl Check if platform only supports SCHED_OTHER scheduling policy
- dnl
- dnl This test must be performed after the POSIX threads implementation
- dnl that the platform supports has been determined.
- ACE_CACHE_CHECK(if SCHED_OTHER is only scheduling policy,
- ace_cv_feature_only_have_sched_other,[
- AC_EGREP_CPP(WE_ONLY_HAVE_SCHED_OTHER,
- [
-#ifdef ACE_HAS_STHREADS
-# include <thread.h>
-#endif
-
-#ifdef ACE_HAS_PTHREADS
-# include <pthread.h>
-#endif
-
-#if defined (ACE_NEEDS_SCHED_H)
-# include <sched.h>
-#endif
-
- /* These are ORed so that ACE will not redefine
- any of them if any of them exist. */
-#if !defined (SCHED_FIFO) && \
- !defined (SCHED_RR) && \
- defined (SCHED_OTHER)
- WE_ONLY_HAVE_SCHED_OTHER
-#endif
- ],
- [
- ace_cv_feature_only_have_sched_other=yes
- ],
- [
- AC_TRY_RUN(
- [
-#ifndef _REENTRANT
-#define _REENTRANT
-#endif
-
-#include <pthread.h>
-
-/* _THREAD_SAFE is defined in <pthread.h> on some platforms. */
-#ifndef _THREAD_SAFE
-#define _THREAD_SAFE
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-
-int main ()
-{
- pthread_attr_t ace_attr;
-
-#if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (pthread_attr_create (&ace_attr) != 0)
-#else
- if (pthread_attr_init (&ace_attr) != 0)
-#endif
- {
- perror ("pthread_attr_init");
- return 0; /* Return "successfully" since only the policy call
- will return with an error for this test. */
- }
-
-#if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (pthread_attr_setsched (&ace_attr, SCHED_FIFO) != 0)
-#else
- if (pthread_attr_setschedpolicy (&ace_attr, SCHED_FIFO) != 0)
-#endif
- {
- perror ("pthread_attr_setschedpolicy");
- return -1;
- }
-
-#if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (pthread_attr_delete (&ace_attr) != 0)
-#else
- if (pthread_attr_destroy (&ace_attr) != 0)
-#endif
- {
- perror ("pthread_attr_destroy");
- return 0; /* Return "successfully" since only the policy call
- will return with an error for this test. */
- }
-
- return 0;
-}
- ],
- [
- ace_cv_feature_only_have_sched_other=no
- ],
- [
- ace_cv_feature_only_have_sched_other=yes
- ],
- [
- dnl We only get here if polices other than SCHED_OTHER
- dnl were found in the headers and we are cross-compiling.
- dnl
- dnl If we are cross-compiling let's hope that the
- dnl scheduling policies found in the headers
- dnl besides SCHED_OTHER (e.g. SCHED_FIFO, SCHED_RR)
- dnl are supported.
- ace_cv_feature_only_have_sched_other=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_ONLY_SCHED_OTHER),)
- fi dnl test "$ace_has_pthreads" = yes
-fi dnl test "$ace_user_enable_threads" = yes
-
-
-if test "$ac_cv_header_libc_h" != yes ||
- test "$ac_cv_header_osfcn_h" != yes; then
- AC_DEFINE(ACE_HAS_CPLUSPLUS_HEADERS)
-fi
-
-
-
-if test "$ace_cv_lib_signal_vi1_2" = yes &&
- test "$ace_cv_lib_signal_vi1_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vi1_handler" = yes; then
- AC_DEFINE(ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES)
-elif test "$ace_cv_lib_signal_vi1_2" != yes &&
- test "$ace_cv_lib_signal_vv1_2" != yes &&
- test "$ace_cv_lib_signal_vi1a2_2" != yes &&
- test "$ace_cv_lib_signal_va1_2" = yes &&
- test "$ace_cv_lib_signal_vi1_ret" != yes &&
- test "$ace_cv_lib_signal_vv1_ret" != yes &&
- test "$ace_cv_lib_signal_vi1a2_ret" != yes &&
- test "$ace_cv_lib_signal_va1_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vi1_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_vv1_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_vi1a2_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_va1_handler" = yes; then
- AC_DEFINE(ACE_HAS_LYNXOS_SIGNALS)
- AC_DEFINE(ACE_HAS_TANDEM_SIGNALS)
- AC_DEFINE(ACE_HAS_IRIX_53_SIGNALS)
- AC_DEFINE(ACE_HAS_SUNOS4_SIGNAL_T)
-elif test "$ace_cv_lib_signal_vi1a2_2" = yes &&
- test "$ace_cv_lib_signal_vi1a2_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vi1a2_handler" = yes; then
- AC_DEFINE(ACE_HAS_SPARCWORKS_401_SIGNALS)
-elif test "$ace_cv_lib_signal_vi1_2" = yes &&
- test "$ace_cv_lib_signal_vi1_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vi1_handler" != yes; then
- AC_DEFINE(ACE_HAS_SVR4_SIGNAL_T)
-elif test "$ace_cv_lib_signal_vi1_2" = yes &&
- test "$ace_cv_lib_signal_vv1_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vv1_handler" = yes; then
- AC_DEFINE(ACE_HAS_SVR4_SIGNAL_T)
-elif test "$ace_cv_lib_signal_vi1_2" = yes &&
- test "$ace_cv_lib_signal_vi1_ret" != yes &&
- test "$ace_cv_lib_signal_vv1_ret" != yes &&
- test "$ace_cv_lib_signal_vi1a2_ret" != yes &&
- test "$ace_cv_lib_signal_va1_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vi1_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_vv1_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_vi1a2_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_va1_handler" = yes; then
- AC_DEFINE(ACE_HAS_UNIXWARE_SVR4_SIGNAL_T)
-fi dnl ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-dnl
-dnl SECTION 15: Final checks
-dnl
-
-dnl Set known platform specific flags
-ACE_SET_PLATFORM_MACROS
-
-dnl Make final substitutions and defines
-if test "$ace_u_long_long_typedef_set" = yes; then
- AC_DEFINE_UNQUOTED(ACE_UINT64_TYPEDEF, $ACE_UINT64)
-fi
-
-dnl Combine package set flags with user's flags.
-dnl User's flags go after package flags to allow user to override
-dnl package defaults.
-dnl X_CFLAGS comes from AC_PATH_XTRA. It may include, for example,
-dnl additional include file paths or macros that need to be defined
-dnl in order for X11 related files to be compiled properly.
-if test "$ace_user_enable_optimize"; then
- dnl We want OCXXFLAGS to be on the end, so we use CXXFLAGS,
- dnl not ACE_CXXFLAGS!
- CXXFLAGS="$CXXFLAGS $OCXXFLAGS"
- CFLAGS="$CFLAGS $OCFLAGS"
-fi
-CXXFLAGS="$ACE_CXXFLAGS $X_CFLAGS $CXXFLAGS"
-CFLAGS="$ACE_CFLAGS $X_CFLAGS $CFLAGS"
-CPPFLAGS="$ACE_CPPFLAGS $CPPFLAGS"
-LDFLAGS="$ACE_LDFLAGS $LDFLAGS"
-
-dnl The following tests should be performed _after_ the bulk of the
-dnl ACE macros have been defined.
-
-dnl Flush the cache so that it is easier to debug the configure script
-dnl if the following integrity check fails.
-AC_CACHE_SAVE
-
-dnl Verify the integrity of the current configuration.
-ACE_CACHE_CHECK(if generated ACE configuration is usable,
- ace_cv_configuration_is_usable,
- [
- dnl We want an empty ace/config.h to prevent multiple defines
- dnl with Autoconf's confdefs.h
- ACE_USE_TEMP_FILE(ace/config.h,
- [
- dnl Now run the compilation test
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#include "ace/OS.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_configuration_is_usable=yes
- ],
- [
- ace_cv_configuration_is_usable=no
- ])
- ])
- ],
- [
- dnl Looks good! Do nothing.
- dnl It appears that ace/OS.cpp compiled. If it didn't compile then
- dnl there would be no chance that the rest of ACE would compile.
- ],
- [
- AC_MSG_ERROR(
- [
-The generated configuration appears to be unusable. Please verify
-that your system path and environment variables are correct. If they
-appear to be correct then please send the maintainer of this configure
-script $ACE_CONFIGURE_MAINTAINER the \`config.log' file and
-the following information:
-
- ACE \`configure' Script Information
- ==================================
- [RCS] translit([$Id$], $") dnl @@ Ignore the following quote:"
-
- C++ Compiler: $CXX
- C++ Preprocessor: $CXXCPP
- C++ Flags: $CXXFLAGS
- Preprocessor Flags: $CPPFLAGS
- Linker: $LD
- Linker Flags: $LDFLAGS
- Libraries: $LIBS
- System type information:
- Build: $build Host: $host
-
-In the meantime, please use the stock ACE build procedure detailed in
-the file \`ACE-INSTALL.html'.
- ])
- ])
-
-dnl Check for ACE_IOStream support
-ACE_CACHE_CHECK(for ACE_IOStream support,
- ace_cv_feature_ace_iostream,
- [
- dnl We want an empty ace/config.h to prevent multiple defines
- dnl with Autoconf's confdefs.h
- ACE_USE_TEMP_FILE(ace/config.h,
- [
- dnl Now run the compilation test
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#include "ace/IOStream.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_feature_ace_iostream=yes
- ],
- [
- ace_cv_feature_ace_iostream=no
- ])
- ])
- ], , AC_DEFINE(ACE_LACKS_ACE_IOSTREAM))
-
-dnl Check if ACE needs minimum iostream header inclusion
-ACE_CACHE_CHECK(if ACE needs minimum iostream header inclusion,
- ace_cv_lib_minimum_iostream,
- [
- dnl We want an empty ace/config.h to prevent multiple defines
- dnl with Autoconf's confdefs.h
- ACE_USE_TEMP_FILE(ace/config.h,
- [
- dnl Now run the compilation test
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#include "ace/OS.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_lib_minimum_iostream=no
- ],
- [
- dnl Now check if ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION makes
- dnl compilation work!
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION
-#include "ace/OS.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_lib_minimum_iostream=yes
- ],
- [
- dnl If we get here, then we have no idea what is wrong!
- ace_cv_lib_minimum_iostream=no
- ])
- ])
- ])
- ], AC_DEFINE(ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION),)
-
-dnl @@ I don't think that this test is correct. The only way I could
-dnl get ACE_Addr::sap_any to work was to explicitly cast it to the
-dnl a constant reference of the derived type.
-dnl -Ossama
-dnl Check if compiler can't handle the static ACE_Addr::sap_any construct
-ACE_CACHE_CHECK(for ACE_addr::sap_any support,
- ace_cv_lib_sap_any_support,
- [
- dnl We want an empty ace/config.h to prevent multiple defines
- dnl with Autoconf's confdefs.h
- ACE_USE_TEMP_FILE(ace/config.h,
- [
- dnl Now run the compilation test
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#include "ace/FILE_Addr.h"
- ],
- [
- ACE_FILE_Addr ace_file ((const ACE_FILE_Addr &) ACE_Addr::sap_any);
- ],
- [
- ace_cv_lib_sap_any_support=yes
- ],
- [
- dnl Now check if ACE_HAS_BROKEN_SAP_ANY makes
- dnl compilation work!
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#define ACE_HAS_BROKEN_SAP_ANY
-#include "ace/FILE_Addr.h"
- ],
- [
- ACE_FILE_Addr ace_file ((const ACE_FILE_Addr &) ACE_Addr::sap_any);
- ],
- [
- ace_cv_lib_sap_any_support=no
- ],
- [
- dnl If we get here, then we have no idea what is wrong!
- ace_cv_lib_sap_any_support=yes
- ])
- ])
- ])
- ],, AC_DEFINE(ACE_HAS_BROKEN_SAP_ANY))
-
-dnl Check if ACE needs conversion to pass ACE_TTY_IO to DEV_Connector
-ACE_CACHE_CHECK(if ACE needs conversion to pass ACE_TTY_IO to DEV_Connector,
- ace_cv_lib_need_dev_io_conv,
- [
- dnl We want an empty ace/config.h to prevent multiple defines
- dnl with Autoconf's confdefs.h
- ACE_USE_TEMP_FILE(ace/config.h,
- [
- dnl Now run the compilation test
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#include "ace/OS.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_lib_need_dev_io_conv=no
- ],
- [
- dnl Now check if ACE_NEEDS_DEV_IO_CONVERSION makes
- dnl compilation work!
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-#include "ace/DEV_Connector.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_lib_need_dev_io_conv=yes
- ],
- [
- dnl If we get here, then we have no idea what is wrong!
- ace_cv_lib_need_dev_io_conv=no
- ])
- ])
- ])
- ], AC_DEFINE(ACE_NEEDS_DEV_IO_CONVERSION),)
-
-dnl End ACE macro tests!
-
-dnl Substitute whatever X libraries ACE needs, if any.
-AC_SUBST(ACE_XLIBS)
-
-dnl Prepend purify and quantify command lines if purify and quantify are
-dnl enabled. Otherwise, PURELINK and PRELINK will just be "blank."
-LD="$PURELINK $PRELINK $LD"
-dnl LDFLAGS="$ACE_LDFLAGS $LDFLAGS"
-
-dnl AC_SUBST(LDFLAGS)
-dnl AC_SUBST(LIBOBJS)
-
-dnl These definitions are expanded in the makefile and ace-config
-if test "$no_x" != yes; then
- ACE_LIBDIR="${X_LIBS} -L\${libdir}"
-else
- ACE_LIBDIR='-L${libdir}'
-fi
-ACE_LIBS="${X_PRE_LIBS} ${ACE_XLIBS} ${X_EXTRA_LIBS} ${LIBS}"
-ACE_INCLUDEDIR='-I${includedir}'
-
-AC_SUBST(ACE_LIBDIR)
-AC_SUBST(ACE_LIBS)
-AC_SUBST(ACE_INCLUDEDIR)
-
-dnl These definitions are expanded in the makefile and ace-config
-#TAO_LIBDIR='-L${libdir}'
-#TAO_LIBS="-lACE ${LIBS}"
-#TAO_INCLUDEDIR='-I${includedir}'
-#
-#AC_SUBST(TAO_LIBDIR)
-#AC_SUBST(TAO_LIBS)
-#AC_SUBST(TAO_INCLUDEDIR)
-
-dnl Force CXXFLAGS to be substituted in Makefiles that don't "need" them.
-AC_SUBST(CXXFLAGS)
-
-dnl
-dnl SECTION 16: `AC_OUTPUT([FILE...])'
-dnl
-dnl
-dnl We can finally create all the files listed here; Makefile is
-dnl created from Makefile.in, etc. Top-level Makefiles should be
-dnl created first.
-
-AC_OUTPUT([
- Makefile
- ace-config
- ace-config.1
- aceConf.sh
- ace/Makefile
- apps/Makefile
- apps/gperf/Makefile
- apps/gperf/src/Makefile
- man/Makefile
- man/man3/Makefile
- netsvcs/Makefile
- netsvcs/clients/Makefile
- netsvcs/clients/Logger/Makefile
- netsvcs/clients/Naming/Makefile
- netsvcs/clients/Naming/Client/Makefile
- netsvcs/clients/Naming/Dump_Restore/Makefile
- netsvcs/clients/Tokens/Makefile
- netsvcs/clients/Tokens/collection/Makefile
- netsvcs/clients/Tokens/deadlock/Makefile
- netsvcs/clients/Tokens/invariant/Makefile
- netsvcs/clients/Tokens/manual/Makefile
- netsvcs/clients/Tokens/mutex/Makefile
- netsvcs/clients/Tokens/rw_lock/Makefile
- netsvcs/lib/Makefile
- netsvcs/servers/Makefile
- tests/Makefile
- ],
- [
- echo ""
- echo "Configuration of ACE is now complete."
- echo ""
- ])
-
-
-
-dnl Configure the TAO directory if it exists.
-dnl if test -d $srcdir/TAO; then
-dnl AC_CONFIG_SUBDIRS (TAO)
-dnl fi
diff --git a/docs/ACE-FMM.html b/docs/ACE-FMM.html
deleted file mode 100644
index 0430b7b9a7d..00000000000
--- a/docs/ACE-FMM.html
+++ /dev/null
@@ -1,283 +0,0 @@
-<!-- $Id$ -->
-
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>ACE FMM</title>
- </head>
-
- <body bgcolor=#ffffff>
-<center>
-<font face=helvetica size=5>ACE Frequently Made Mistakes</font>
-
-<br>
-<br>
-<table border=0 cellpadding=3 cellspacing=1 width=550>
-
-<tr>
-<td align=right valign=top>
- <b>symptom</b>
-</td>
-<td align=left valign=top>
- ACE_Task::getq() returns the error
- <b>resource temporarily unavailable</b>
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>probable cause</b>
-</td>
-<td align=left valign=top>
- Your Task is a subclass of ACE_Task&lt;ACE_NULL_SYNCH&gt; and
- you are using it in a multithreaded program.
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>solution</b>
-</td>
-<td align=left valign=top>
- Try using ACE_Task&lt;ACE_MT_SYNCH&gt;
- instead so that the associated Message_Queue
- is configured for access by multiple threads.
-</td>
-<tr><td colspan=2><hr noshade></td></tr>
-
-<tr>
-<td align=right valign=top>
- <b>symptom</b>
-</td>
-<td align=left valign=top>
- ACE_Task::wait() throws an assert violation
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>probable cause</b>
-</td>
-<td align=left valign=top>
- When you activate()d your Task, you specified
- THR_DETACHED, which causes wait() to be unable to perform what you
- want it to.
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>solution</b>
-</td>
-<td align=left valign=top>
- Make sure you specify the flag THR_JOINABLE when activating
- your ACE_Task object.
-</td>
-<tr><td colspan=2><hr noshade></td></tr>
-
-
-
-<tr>
-<td align=right valign=top>
- <b>symptom</b>
-</td>
-<td align=left valign=top>
- Apparent race conditions when spawning threads (or activating Tasks)
- from within a constructor.
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>probable cause</b>
-</td>
-<td align=left valign=top>
- You are not guaranteed to have a valid <b>this</b> pointer
- until the constructor has exited. Threads spawned from
- a constructor are free to run
- immediately, and may attempt to use an invalid <b>this</b> pointer.
-
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>solution</b>
-</td>
-<td align=left valign=top>
- Move your Task activations and other thread-spawning activites
- <b>out</b> of the constructor.
-</td>
-<tr><td colspan=2><hr noshade></td></tr>
-
-
-
-<tr>
-<td align=right valign=top>
- <b>symptom</b>
-</td>
-<td align=left valign=top>
- Compiler issues warnings/erros regarding using too few template
- arguments, such as "'ACE_Svc_Handler' : too few template arguments".
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>probable cause</b>
-</td>
-<td align=left valign=top>
- Instead of using the appropriate macro, you supplied an actual class
- name as a parameter. This will fail depending upon platform and compiler,
- due to the way templates are handled.
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>solution</b>
-</td>
-<td align=left valign=top>
- Instead of instantiating a template class like <b>ACE_Svc_Handler&lt;<u>ACE_SOCK_Stream</u>, ACE_NULL_SYNCH&gt;</b>, use the form of <b>ACE_Svc_Handler&lt;<u>ACE_SOCK_STREAM</u>, ACE_NULL_SYNCH&gt;</b> which circumvents the platform peculiarities by using the macro. This also applies to some other template classes.
-</td>
-<tr><td colspan=2><hr noshade></td></tr>
-
-
-
-<tr>
-<td align=right valign=top>
- <b>symptom</b>
-</td>
-<td align=left valign=top>
- Unable to compare ACE_thread_t variables (such as ACE_Thread::self())
- using operator== ().
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>probable cause</b>
-</td>
-<td align=left valign=top>
- On some platforms, thread ids are numeric, and on some, they aren't. On some
- implementations, simple a == b comparisons
- are legal and sane. Some are not.
-
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>solution</b>
-</td>
-<td align=left valign=top>
- Use the <b>ACE_OS::thr_equal()</b> function to reliably compare thread
- ids, regardless of platform.
-</td>
-<tr><td colspan=2><hr noshade></td></tr>
-
-<tr>
-<td align=right valign=top>
- <b>symptom</b>
-</td>
-<td align=left valign=top>
- ACE_Reactor::run_event_loop() does not seem to function correctly
- for a Reactor created in your application.
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>probable cause</b>
-</td>
-<td align=left valign=top>
- You have not set the ACE_Reactor::instance() to refer to your new reactor.
- run_event_loop only functions on the reactor currently installed as the
- global Singleton.
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>solution</b>
-</td>
-<td align=left valign=top>
- Use the <b>ACE_Reactor::instance(ACE_Reactor *,
- int delete_reactor = 0)</b> static method to install your reactor as the global
- Singleton before calling run_event_loop().
-</td>
-<tr><td colspan=2><hr noshade></td></tr>
-
-
-
-
-
-<tr>
-<td align=right valign=top>
- <b>symptom</b>
-</td>
-<td align=left valign=top>
-Infinite recursion when you invoke ACE_Reactor::remove_handler()
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>probable cause</b>
-</td>
-<td align=left valign=top>
-You are invoking remove_handler() from within handle_close() (or a
-method invoked by handle_close()) but you have not specified the
-DONT_CALL flag.
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>solution</b>
-</td>
-<td align=left valign=top>
-Be sure to <b>OR</b> in the DONT_CALL flag in this situation.<br>
-e.g. --<br>
-<ul><pre>
-int MyHandler::handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask close_mask)
-{
- ...
- my_reactor_-&gt;remove_handler( this,
- ACE_Event_Handler::READ_MASK |
- ACE_Event_Handler::DONT_CALL );
- ...
- return 0;
-}
-</pre></ul>
-
-</td>
-<tr><td colspan=2><hr noshade></td></tr>
-
-<!--
-
-<tr>
-<td align=right valign=top>
- <b>symptom</b>
-</td>
-<td align=left valign=top>
-
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>probable cause</b>
-</td>
-<td align=left valign=top>
-
-</td>
-</tr>
-<tr>
-<td align=right valign=top>
- <b>solution</b>
-</td>
-<td align=left valign=top>
-
-</td>
-<tr><td colspan=2><hr noshade></td></tr>
-
--->
-<tr>
-<td align=center colspan=2>
-<font size=2>maintained by <a href="mailto:bob@werken.com">bob@werken.com</a></font>
-</td>
-</tr>
-
-</table>
-</center>
-Back to <A HREF="index.html">ACE Documentation Home</A>.
-</body>
-</html>
-
diff --git a/docs/ACE-SSL.html b/docs/ACE-SSL.html
deleted file mode 100644
index 483a523bbf7..00000000000
--- a/docs/ACE-SSL.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<Title>ACE+SSL</TITLE>
-
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#ffffff">
-
-<Body>
-<HR><P>
-<H3>What is ACE+SSL?</H3>
-<p>ACE plus SSL is an addition to the core classes which allow the use of the Secure Socket Layer
-with the ACE framework. The following are the core classes conditionally compiled in when you run
-<code>make ssl=1</code>:</p>
-<ul>
- <li>ACE_SSL contains the interface to the ssl library OpenSSL.
- <li>ACE_SSL_SOCK_Stream uses an interface and behavior nearly identical to
- ACE_SOCK_Stream, only with the additional ssl layer functionality.
- <li>ACE_SSL_SOCK_Acceptor/Connector are again similar to their ACE_SOCK counterparts
-</ul>
-
-<p>The ssl library we use is OpenSSL which is available at
-<A HREF="http://www.openssl.org/">www.openssl.org</A>. This library must be
-installed in order to use ACE+SSL. We cannot answer all of the questions you may have about
-OpenSSL, but hopefully through using the ACE+SSL interface your questions will be reduced.</p>
-
-<H3>What is the status of ACE+SSL</H3>
-<p>ACE+SSL is currently still in early development. If forced to name names, I would call the core
-functionality beta, while the interface and niceties are still in an alpha stage of development.</p>
-
-<H3>How do I get ACE+SSL?</H3>
-<p>Due to the relaxation of export restrictions we have gained permission to distribute ACE+SSL along with the normal ACE distribution. It can be found in $ACE_ROOT/ace/SSL/. Also in the works is SSLIOP for TAO, which can be found in $ACE_ROOT/TAO/orbsvcs/orbsvcs/SSLIOP/.
-
-
-<HR><P>
-Back to <A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">
-ACE</A> home page. <P>
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
diff --git a/docs/ACE-bug-process.html b/docs/ACE-bug-process.html
deleted file mode 100644
index 1adf63bcd23..00000000000
--- a/docs/ACE-bug-process.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!-- $Id$ -->
-
-<HTML>
- <TITLE>ACE+TAO Bug Fixing Policies</TITLE>
- <BODY text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
-
-<HR>
-<H3>ACE+TAO Bug Fixing Policies</H3>
-
-As <A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</A> and <A
-HREF="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A> have grown in
-popularity the volume of mail on the <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-mail.html">ACE+TAO users
-mailing list</A> and USENET newsgroup <A
-HREF="news:comp.soft-sys.ace">comp.soft-sys.ace</A> has grown
-considerably. While this increase is healthy, and a natural
-consequence of the larger number of ACE and TAO users, it is straining
-the resources of the DOC <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-members.html">research
-group</A> at <A
-HREF="http://www.cs.wustl.edu/~schmidt/doc-center.html">Washington
-University</A> and <A
-HREF="http://www.cs.wustl.edu/~schmidt/doc-lab.html">UC Irvine</A> to
-respond to all the traffic immediately. Moreover, our prompt bug
-fixes may actually be discouraging the creation of a larger community
-of users who have deep knowledge of how ACE and TAO work and can help
-provide bug fixes and new features. <P>
-
-Therefore, in order for us to continue supporting ACE and TAO
-effectively and to allow the ACE and TAO user community to evolve, we
-abide by the following policies:
-
-<UL>
-
-<LI> All bug reports that are submitted using the appropriate bug
-report form in <A
-HREF="../PROBLEM-REPORT-FORM">$ACE_ROOT/PROBLEM-REPORT-FORM</A>
-or <A
-HREF="../TAO/PROBLEM-REPORT-FORM">$TAO_ROOT/PROBLEM-REPORT-FORM</A>
-will be given a tracking number and entered into our <A
-HREF="http://deuce.doc.wustl.edu/bugzilla">bug tracking database</A>.
-Please use these forms since bug reports that are not submitted in
-this form are likely to fall through the cracks. Here is our policy
-for addressing these bug reports: <P>
-
-<OL>
-
-<LI> If a report or question is from someone <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-sponsors.html">sponsoring</A>
-our work we will respond to it in a timely manner. Please contact <A
-HREF="mailto:schmidt@cs.wustl.edu">me</A> if you'd like to become a
-sponsor. <P>
-
-<LI> If it's a bug report along with a fix we will also apply this
-in a timely manner. <P>
-
-<LI> If it's a bug report that will prevent ACE or TAO from working on
-a major platform used by our sponsors we'll try to fix it as time
-permits. <P>
-
-</OL>
-
-<LI> If it's a bug report that doesn't fall into the preceding three
-categories, the submitter should enter it into our <A
-HREF="http://deuce.doc.wustl.edu/bugzilla">bug tracking database</A> for
-future processing. We will address these bugs as time permits, but
-may not get to it for a while unless it affects our work or the work
-of our sponsors. If you'd like an immediate response, please contact
-<A HREF="mailto:schmidt@cs.wustl.edu">me</A> about becoming a sponsor
-or contact <A HREF="http://www.riverace.com">Riverace</a> or <A
-HREF="http://www.theaceorb.com">OCI</A> for commercial support of ACE
-or TAO, respectively. <P>
-
-We encourage bug reports for those without support to be posted
-initially to the <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-mail.html">ACE users</A>
-(<A HREF="mailto:ace-users@cs.wustl.edu">ace-users@cs.wustl.edu</A>)
-or <A HREF="http://www.cs.wustl.edu/~schmidt/TAO-mail.html">TAO
-users</A> (<A
-HREF="mailto:tao-users@cs.wustl.edu">tao-users@cs.wustl.edu</A>)
-mailing lists, where the ACE+TAO user community may already have
-developed, or have an interest in developing, a solution. While the
-core ACE+TAO development team will continue to participate in this
-mailing list we can not guarantee immediate response to all
-postings. <P>
-
-<LI> If you find a problem with a version of TAO that was released by
- <A HREF="http://www.theaceorb.com/">OCI</A> then please report it
- to <A
- HREF="mailto:taosupport@ociweb.com">taosupport@ociweb.com</A> since
- their version of TAO is somewhat different from the DOC group's
- version of TAO and thus they provide their own support. <P>
-
-<LI> If it's a general question about how to use ACE or TAO feature
-we'll try to respond as time permits, though we will also rely on the
-experience of the ACE and TAO user community to field these types of
-questions, as well. If you have a question about TAO, you should
-first check out the TAO <A
-HREf="http://www.theaceorb/faq">online FAQ</A> to see if your
-question has already been answered. If you require consulting support
-for ACE and/or TAO, please contact <A
-HREF="http://www.riverace.com">Riverace</a> or <A
-HREF="http://www.theaceorb.com">OCI</A>, as well. <P>
-
-</UL>
-
-Naturally, we encourage other ACE+TAO users to continue to help
-provide fixes and advice in response to postings on the ACE and TAO
-mailing list. <P>
-
-<HR><P>
-Back to the <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</A> page.<BR>
-Back to <A HREF="index.html">ACE Documentation Home</A>.
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
diff --git a/docs/ACE-categories.html b/docs/ACE-categories.html
deleted file mode 100644
index 7f23b88d635..00000000000
--- a/docs/ACE-categories.html
+++ /dev/null
@@ -1,768 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<!-- $Id$ -->
-<head>
-<title>ACE Class Categories</title>
-</head>
-<body>
-
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#ffffff">
-
-<HR><P>
-<h3><a href = "http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a> Class Categories</h3>
-
-This document groups each file in <A
-HREF="../ace">$ACE_ROOT/ace</A>
-into its appropriate class category and provides a link to the C++
-source code and <A
-HREF="http://doc.ece.uci.edu/Doxygen/Current/html/ace/">HTML
-versions</A> of the relevant manual pages</A>. <P>
-
-<b>[ACE]</b>
-<ul>
-<b>[CORBA]</b>
-<ul>
-<li><a href = "../ace/CORBA_Handler.cpp">CORBA_Handler.cpp</a></li>
-<li><a href = "../ace/CORBA_Handler.h">CORBA_Handler.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_CORBA_Handler.html">[doxygen]</a></b>
-<li><a href = "../ace/CORBA_Handler.i">CORBA_Handler.i</a></li>
-<li><a href = "../ace/CORBA_Ref.cpp">CORBA_Ref.cpp</a></li>
-<li><a href = "../ace/CORBA_Ref.h">CORBA_Ref.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_CORBA_Ref.html">[doxygen]</a></b>
-<li><a href = "../ace/CORBA_Ref.i">CORBA_Ref.i</a></li>
-</ul>
-<b>[Containers]</b>
-<ul>
-<li><a href = "../ace/Array.cpp">Array.cpp</a></li>
-<li><a href = "../ace/Array.h">Array.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Array.html">[doxygen]</a></b>
-<li><a href = "../ace/Array.i">Array.i</a></li>
-<li><a href = "../ace/Containers.cpp">Containers.cpp</a></li>
-<li><a href = "../ace/Containers.i">Containers.i</a></li>
-<li><a href = "../ace/Containers.h">Containers.h</a></li>
-<li><a href = "../ace/Hash_Map_Manager.cpp">Hash_Map_Manager.cpp</a></li>
-<li><a href = "../ace/Hash_Map_Manager.h">Hash_Map_Manager.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Hash_Map_Manager.html">[doxygen]</a></b>
-<li><a href = "../ace/Filecache.cpp">Filecache.cpp</a></li>
-<li><a href = "../ace/Filecache.h">Filecache.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Filecache.html">[doxygen]</a></b>
-<li><a href = "../ace/Free_List.cpp">Free_List.cpp</a></li>
-<li><a href = "../ace/Free_List.i">Free_List.i</a></li>
-<li><a href = "../ace/Free_List.h">Free_List.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Free_List.html">[doxygen]</a></b>
-<li><a href = "../ace/Managed_Object.cpp">Managed_Object.cpp</a></li>
-<li><a href = "../ace/Managed_Object.h">Managed_Object.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Managed_Object.html">[doxygen]</a></b>
-<li><a href = "../ace/Managed_Object.i">Managed_Object.i</a></li>
-<li><a href = "../ace/Map_Manager.cpp">Map_Manager.cpp</a></li>
-<li><a href = "../ace/Map_Manager.h">Map_Manager.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Map_Manager.html">[doxygen]</a></b>
-<li><a href = "../ace/Map_Manager.i">Map_Manager.i</a></li>
-<li><a href = "../ace/Object_Manager.cpp">Object_Manager.cpp</a></li>
-<li><a href = "../ace/Object_Manager.i">Object_Manager.i</a></li>
-<li><a href = "../ace/Object_Manager.h">Object_Manager.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Object_Manager.html">[doxygen]</a></b>
-<li><a href = "../ace/SString.cpp">SString.cpp</a></li>
-<li><a href = "../ace/SString.h">SString.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SString.html">[doxygen]</a></b>
-<li><a href = "../ace/SString.i">SString.i</a></li>
-</ul>
-<b>[Concurrency]</b>
-<ul>
-<li><a href = "../ace/Activation_Queue.h">Activation_Queue.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Activation_Queue.html">[doxygen]</a></b>
-<li><a href = "../ace/Activation_Queue.cpp">Activation_Queue.cpp</a></li>
-<li><a href = "../ace/Atomic_Op.i">Atomic_Op.i</a></li>
-<li><a href = "../ace/Future.h">Future.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Future.html">[doxygen]</a></b>
-<li><a href = "../ace/Future.cpp">Future.cpp</a></li>
-<li><a href = "../ace/Method_Request.h">Method_Request.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Method_Request.html">[doxygen]</a></b>
-<li><a href = "../ace/Method_Request.cpp">Method_Request.cpp</a></li>
-<li><a href = "../ace/Process.cpp">Process.cpp</a></li>
-<li><a href = "../ace/Process.h">Process.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Process.html">[doxygen]</a></b>
-<li><a href = "../ace/Process.i">Process.i</a></li>
-<li><a href = "../ace/Process_Manager.cpp">Process_Manager.cpp</a></li>
-<li><a href = "../ace/Process_Manager.h">Process_Manager.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Process_Manager.html">[doxygen]</a></b>
-<li><a href = "../ace/Process_Manager.i">Process_Manager.i</a></li>
-<li><a href = "../ace/Sched_Params.cpp">Sched_Params.cpp</a></li>
-<li><a href = "../ace/Sched_Params.h">Sched_Params.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Sched_Params.html">[doxygen]</a></b>
-<li><a href = "../ace/Sched_Params.i">Sched_Params.i</a></li>
-<li><a href = "../ace/Synch.cpp">Synch.cpp</a></li>
-<li><a href = "../ace/Synch.h">Synch.h</a></li>
-<li><a href = "../ace/Synch.i">Synch.i</a></li>
-<li><a href = "../ace/Synch_Options.cpp">Synch_Options.cpp</a></li>
-<li><a href = "../ace/Synch_Options.h">Synch_Options.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Synch_Options.html">[doxygen]</a></b>
-<li><a href = "../ace/Synch_Options.i">Synch_Options.i</a></li>
-<li><a href = "../ace/Synch_T.cpp">Synch_T.cpp</a></li>
-<li><a href = "../ace/Synch_T.h">Synch_T.h</a></li>
-<li><a href = "../ace/Synch_T.i">Synch_T.i</a></li>
-<li><a href = "../ace/Thread.cpp">Thread.cpp</a></li>
-<li><a href = "../ace/Thread.h">Thread.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Thread.html">[doxygen]</a></b>
-<li><a href = "../ace/Thread.i">Thread.i</a></li>
-<li><a href = "../ace/Thread_Manager.cpp">Thread_Manager.cpp</a></li>
-<li><a href = "../ace/Thread_Manager.h">Thread_Manager.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Thread_Manager.html">[doxygen]</a></b>
-<li><a href = "../ace/Thread_Manager.i">Thread_Manager.i</a></li>
-<li><a href = "../ace/Token.cpp">Token.cpp</a></li>
-<li><a href = "../ace/Token.h">Token.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Token.html">[doxygen]</a></b>
-<li><a href = "../ace/Token.i">Token.i</a></li>
-</ul>
-<b>[Config]</b>
-<ul>
-<li><a href = "../ace/config.h">config.h</a></li>
-<li><a href = "../ace/Basic_Types.cpp">Basic_Types.cpp</a></li>
-<li><a href = "../ace/Basic_Types.h">Basic_Types.h</a></li>
-<li><a href = "../ace/Basic_Types.i">Basic_Types.i</a></li>
-<li><a href = "../ace/Version.h">Version.h</a></li>
-</ul>
-<b>[Connection]</b>
-<ul>
-<li><a href = "../ace/Acceptor.cpp">Acceptor.cpp</a></li>
-<li><a href = "../ace/Acceptor.h">Acceptor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Acceptor.html">[doxygen]</a></b>
-<li><a href = "../ace/Acceptor.i">Acceptor.i</a></li>
-<li><a href = "../ace/Asynch_Acceptor.cpp">Asynch_Acceptor.cpp</a></li>
-<li><a href = "../ace/Asynch_Acceptor.h">Asynch_Acceptor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Asynch_Acceptor.html">[doxygen]</a></b>
-<li><a href = "../ace/Asynch_Acceptor.i">Asynch_Acceptor.i</a></li>
-<li><a href = "../ace/Asynch_IO.cpp">Asynch_IO.cpp</a></li>
-<li><a href = "../ace/Asynch_IO.h">Asynch_IO.h</a></li>
-<li><a href = "../ace/Asynch_IO.i">Asynch_IO.i</a></li>
-<li><a href = "../ace/Connector.cpp">Connector.cpp</a></li>
-<li><a href = "../ace/Connector.h">Connector.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Connector.html">[doxygen]</a></b>
-<li><a href = "../ace/Connector.i">Connector.i</a></li>
-<li><a href = "../ace/Dynamic_Service.cpp">Dynamic_Service.cpp</a></li>
-<li><a href = "../ace/Dynamic_Service.h">Dynamic_Service.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Dynamic_Service.html">[doxygen]</a></b>
-<li><a href = "../ace/Dynamic_Service.i">Dynamic_Service.i</a></li>
-<li><a href = "../ace/Strategies.cpp">Strategies.cpp</a></li>
-<li><a href = "../ace/Strategies.h">Strategies.h</a></li>
-<li><a href = "../ace/Strategies.i">Strategies.i</a></li>
-<li><a href = "../ace/Strategies_T.cpp">Strategies_T.cpp</a></li>
-<li><a href = "../ace/Strategies_T.h">Strategies_T.h</a></li>
-<li><a href = "../ace/Strategies_T.i">Strategies_T.i</a></li>
-<li><a href = "../ace/Svc_Handler.cpp">Svc_Handler.cpp</a></li>
-<li><a href = "../ace/Svc_Handler.h">Svc_Handler.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Svc_Handler.html">[doxygen]</a></b>
-<li><a href = "../ace/Svc_Handler.i">Svc_Handler.i</a></li>
-</ul>
-<b>[IPC]</b>
-<ul>
-<b>[IO_SAP]</b>
-<ul>
-<li><a href = "../ace/IO_SAP.cpp">IO_SAP.cpp</a></li>
-<li><a href = "../ace/IO_SAP.h">IO_SAP.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_IO_SAP.html">[doxygen]</a></b>
-<li><a href = "../ace/IO_SAP.i">IO_SAP.i</a></li>
-<br>
-<b>[DEV_SAP]</b>
-<ul>
-<li><a href = "../ace/DEV.cpp">DEV.cpp</a></li>
-<li><a href = "../ace/DEV.h">DEV.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_DEV.html">[doxygen]</a></b>
-<li><a href = "../ace/DEV.i">DEV.i</a></li>
-<li><a href = "../ace/DEV_Connector.cpp">DEV_Connector.cpp</a></li>
-<li><a href = "../ace/DEV_Connector.h">DEV_Connector.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_DEV_Connector.html">[doxygen]</a></b>
-<li><a href = "../ace/DEV_Connector.i">DEV_Connector.i</a></li>
-<li><a href = "../ace/DEV_IO.cpp">DEV_IO.cpp</a></li>
-<li><a href = "../ace/DEV_IO.h">DEV_IO.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_DEV_IO.html">[doxygen]</a></b>
-<li><a href = "../ace/DEV_IO.i">DEV_IO.i</a></li>
-<li><a href = "../ace/TTY_IO.cpp">TTY_IO.cpp</a></li>
-<li><a href = "../ace/TTY_IO.h">TTY_IO.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_TTY_IO.html">[doxygen]</a></b>
-</ul>
-<b>[FILE_SAP]</b>
-<ul>
-<li><a href = "../ace/FILE.cpp">FILE.cpp</a></li>
-<li><a href = "../ace/FILE.h">FILE.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_FILE.html">[doxygen]</a></b>
-<li><a href = "../ace/FILE.i">FILE.i</a></li>
-<li><a href = "../ace/FILE_Connector.cpp">FILE_Connector.cpp</a></li>
-<li><a href = "../ace/FILE_Connector.h">FILE_Connector.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_FILE_Connector.html">[doxygen]</a></b>
-<li><a href = "../ace/FILE_Connector.i">FILE_Connector.i</a></li>
-<li><a href = "../ace/FILE_IO.cpp">FILE_IO.cpp</a></li>
-<li><a href = "../ace/FILE_IO.h">FILE_IO.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_FILE_IO.html">[doxygen]</a></b>
-<li><a href = "../ace/FILE_IO.i">FILE_IO.i</a></li>
-</ul>
-</ul>
-<b>[IPC_SAP]</b>
-<ul>
-<li><a href = "../ace/IPC_SAP.cpp">IPC_SAP.cpp</a></li>
-<li><a href = "../ace/IPC_SAP.h">IPC_SAP.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_IPC_SAP.html">[doxygen]</a></b>
-<li><a href = "../ace/IPC_SAP.i">IPC_SAP.i</a></li>
-<br>
-<b>[Addr]</b>
-<ul>
-<li><a href = "../ace/Addr.cpp">Addr.cpp</a></li>
-<li><a href = "../ace/Addr.h">Addr.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Addr.html">[doxygen]</a></b>
-<li><a href = "../ace/Addr.i">Addr.i</a></li>
-<li><a href = "../ace/DEV_Addr.cpp">DEV_Addr.cpp</a></li>
-<li><a href = "../ace/DEV_Addr.h">DEV_Addr.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_DEV_Addr.html">[doxygen]</a></b>
-<li><a href = "../ace/DEV_Addr.i">DEV_Addr.i</a></li>
-<li><a href = "../ace/FILE_Addr.cpp">FILE_Addr.cpp</a></li>
-<li><a href = "../ace/FILE_Addr.h">FILE_Addr.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_FILE_Addr.html">[doxygen]</a></b>
-<li><a href = "../ace/FILE_Addr.i">FILE_Addr.i</a></li>
-<li><a href = "../ace/INET_Addr.cpp">INET_Addr.cpp</a></li>
-<li><a href = "../ace/INET_Addr.h">INET_Addr.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_INET_Addr.html">[doxygen]</a></b>
-<li><a href = "../ace/INET_Addr.i">INET_Addr.i</a></li>
-<li><a href = "../ace/SPIPE_Addr.cpp">SPIPE_Addr.cpp</a></li>
-<li><a href = "../ace/SPIPE_Addr.h">SPIPE_Addr.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SPIPE_Addr.html">[doxygen]</a></b>
-<li><a href = "../ace/SPIPE_Addr.i">SPIPE_Addr.i</a></li>
-<li><a href = "../ace/UNIX_Addr.cpp">UNIX_Addr.cpp</a></li>
-<li><a href = "../ace/UNIX_Addr.h">UNIX_Addr.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_UNIX_Addr.html">[doxygen]</a></b>
-<li><a href = "../ace/UNIX_Addr.i">UNIX_Addr.i</a></li>
-<li><a href = "../ace/UPIPE_Addr.h">UPIPE_Addr.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_UPIPE_Addr.html">[doxygen]</a></b>
-</ul>
-<b>[FIFO_SAP]</b>
-<ul>
-<li><a href = "../ace/FIFO.cpp">FIFO.cpp</a></li>
-<li><a href = "../ace/FIFO.h">FIFO.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_FIFO.html">[doxygen]</a></b>
-<li><a href = "../ace/FIFO.i">FIFO.i</a></li>
-<li><a href = "../ace/FIFO_Recv.cpp">FIFO_Recv.cpp</a></li>
-<li><a href = "../ace/FIFO_Recv.h">FIFO_Recv.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_FIFO_Recv.html">[doxygen]</a></b>
-<li><a href = "../ace/FIFO_Recv.i">FIFO_Recv.i</a></li>
-<li><a href = "../ace/FIFO_Recv_Msg.cpp">FIFO_Recv_Msg.cpp</a></li>
-<li><a href = "../ace/FIFO_Recv_Msg.h">FIFO_Recv_Msg.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_FIFO_Recv_Msg.html">[doxygen]</a></b>
-<li><a href = "../ace/FIFO_Recv_Msg.i">FIFO_Recv_Msg.i</a></li>
-<li><a href = "../ace/FIFO_Send.cpp">FIFO_Send.cpp</a></li>
-<li><a href = "../ace/FIFO_Send.h">FIFO_Send.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_FIFO_Send.html">[doxygen]</a></b>
-<li><a href = "../ace/FIFO_Send.i">FIFO_Send.i</a></li>
-<li><a href = "../ace/FIFO_Send_Msg.cpp">FIFO_Send_Msg.cpp</a></li>
-<li><a href = "../ace/FIFO_Send_Msg.h">FIFO_Send_Msg.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_FIFO_Send_Msg.html">[doxygen]</a></b>
-<li><a href = "../ace/FIFO_Send_Msg.i">FIFO_Send_Msg.i</a></li>
-</ul>
-<b>[SOCK_SAP]</b>
-<ul>
-<li><a href = "../ace/LOCK_SOCK_Acceptor.cpp">LOCK_SOCK_Acceptor.cpp</a></li>
-<li><a href = "../ace/LOCK_SOCK_Acceptor.h">LOCK_SOCK_Acceptor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_LOCK_SOCK_Acceptor.html">[doxygen]</a></b>
-<li><a href = "../ace/LSOCK.cpp">LSOCK.cpp</a></li>
-<li><a href = "../ace/LSOCK.h">LSOCK.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_LSOCK.html">[doxygen]</a></b>
-<li><a href = "../ace/LSOCK.i">LSOCK.i</a></li>
-<li><a href = "../ace/LSOCK_Acceptor.cpp">LSOCK_Acceptor.cpp</a></li>
-<li><a href = "../ace/LSOCK_Acceptor.h">LSOCK_Acceptor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_LSOCK_Acceptor.html">[doxygen]</a></b>
-<li><a href = "../ace/LSOCK_Acceptor.i">LSOCK_Acceptor.i</a></li>
-<li><a href = "../ace/LSOCK_CODgram.cpp">LSOCK_CODgram.cpp</a></li>
-<li><a href = "../ace/LSOCK_CODgram.h">LSOCK_CODgram.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_LSOCK_CODgram.html">[doxygen]</a></b>
-<li><a href = "../ace/LSOCK_CODgram.i">LSOCK_CODgram.i</a></li>
-<li><a href = "../ace/LSOCK_Connector.cpp">LSOCK_Connector.cpp</a></li>
-<li><a href = "../ace/LSOCK_Connector.h">LSOCK_Connector.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_LSOCK_Connector.html">[doxygen]</a></b>
-<li><a href = "../ace/LSOCK_Connector.i">LSOCK_Connector.i</a></li>
-<li><a href = "../ace/LSOCK_Dgram.cpp">LSOCK_Dgram.cpp</a></li>
-<li><a href = "../ace/LSOCK_Dgram.h">LSOCK_Dgram.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_LSOCK_Dgram.html">[doxygen]</a></b>
-<li><a href = "../ace/LSOCK_Dgram.i">LSOCK_Dgram.i</a></li>
-<li><a href = "../ace/LSOCK_Stream.cpp">LSOCK_Stream.cpp</a></li>
-<li><a href = "../ace/LSOCK_Stream.h">LSOCK_Stream.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_LSOCK_Stream.html">[doxygen]</a></b>
-<li><a href = "../ace/LSOCK_Stream.i">LSOCK_Stream.i</a></li>
-<li><a href = "../ace/SOCK.cpp">SOCK.cpp</a></li>
-<li><a href = "../ace/SOCK.h">SOCK.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SOCK.html">[doxygen]</a></b>
-<li><a href = "../ace/SOCK.i">SOCK.i</a></li>
-<li><a href = "../ace/SOCK_Acceptor.cpp">SOCK_Acceptor.cpp</a></li>
-<li><a href = "../ace/SOCK_Acceptor.h">SOCK_Acceptor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SOCK_Acceptor.html">[doxygen]</a></b>
-<li><a href = "../ace/SOCK_Acceptor.i">SOCK_Acceptor.i</a></li>
-<li><a href = "../ace/SOCK_CODgram.cpp">SOCK_CODgram.cpp</a></li>
-<li><a href = "../ace/SOCK_CODgram.h">SOCK_CODgram.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SOCK_CODgram.html">[doxygen]</a></b>
-<li><a href = "../ace/SOCK_CODgram.i">SOCK_CODgram.i</a></li>
-<li><a href = "../ace/SOCK_Connector.cpp">SOCK_Connector.cpp</a></li>
-<li><a href = "../ace/SOCK_Connector.h">SOCK_Connector.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SOCK_Connector.html">[doxygen]</a></b>
-<li><a href = "../ace/SOCK_Connector.i">SOCK_Connector.i</a></li>
-<li><a href = "../ace/SOCK_Dgram.cpp">SOCK_Dgram.cpp</a></li>
-<li><a href = "../ace/SOCK_Dgram.h">SOCK_Dgram.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SOCK_Dgram.html">[doxygen]</a></b>
-<li><a href = "../ace/SOCK_Dgram.i">SOCK_Dgram.i</a></li>
-<li><a href = "../ace/SOCK_Dgram_Bcast.cpp">SOCK_Dgram_Bcast.cpp</a></li>
-<li><a href = "../ace/SOCK_Dgram_Bcast.h">SOCK_Dgram_Bcast.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SOCK_Dgram_Bcast.html">[doxygen]</a></b>
-<li><a href = "../ace/SOCK_Dgram_Bcast.i">SOCK_Dgram_Bcast.i</a></li>
-<li><a href = "../ace/SOCK_Dgram_Mcast.cpp">SOCK_Dgram_Mcast.cpp</a></li>
-<li><a href = "../ace/SOCK_Dgram_Mcast.h">SOCK_Dgram_Mcast.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SOCK_Dgram_Mcast.html">[doxygen]</a></b>
-<li><a href = "../ace/SOCK_Dgram_Mcast.i">SOCK_Dgram_Mcast.i</a></li>
-<li><a href = "../ace/SOCK_IO.cpp">SOCK_IO.cpp</a></li>
-<li><a href = "../ace/SOCK_IO.h">SOCK_IO.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SOCK_IO.html">[doxygen]</a></b>
-<li><a href = "../ace/SOCK_IO.i">SOCK_IO.i</a></li>
-<li><a href = "../ace/SOCK_Stream.cpp">SOCK_Stream.cpp</a></li>
-<li><a href = "../ace/SOCK_Stream.h">SOCK_Stream.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SOCK_Stream.html">[doxygen]</a></b>
-<li><a href = "../ace/SOCK_Stream.i">SOCK_Stream.i</a></li>
-</ul>
-<b>[SPIPE_SAP]</b>
-<ul>
-<li><a href = "../ace/SPIPE.cpp">SPIPE.cpp</a></li>
-<li><a href = "../ace/SPIPE.h">SPIPE.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SPIPE.html">[doxygen]</a></b>
-<li><a href = "../ace/SPIPE.i">SPIPE.i</a></li>
-<li><a href = "../ace/SPIPE_Acceptor.cpp">SPIPE_Acceptor.cpp</a></li>
-<li><a href = "../ace/SPIPE_Acceptor.h">SPIPE_Acceptor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SPIPE_Acceptor.html">[doxygen]</a></b>
-<li><a href = "../ace/SPIPE_Acceptor.i">SPIPE_Acceptor.i</a></li>
-<li><a href = "../ace/SPIPE_Connector.cpp">SPIPE_Connector.cpp</a></li>
-<li><a href = "../ace/SPIPE_Connector.h">SPIPE_Connector.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SPIPE_Connector.html">[doxygen]</a></b>
-<li><a href = "../ace/SPIPE_Connector.i">SPIPE_Connector.i</a></li>
-<li><a href = "../ace/SPIPE_Stream.cpp">SPIPE_Stream.cpp</a></li>
-<li><a href = "../ace/SPIPE_Stream.h">SPIPE_Stream.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SPIPE_Stream.html">[doxygen]</a></b>
-<li><a href = "../ace/SPIPE_Stream.i">SPIPE_Stream.i</a></li>
-</ul>
-<b>[TLI_SAP]</b>
-<ul>
-<li><a href = "../ace/TLI.cpp">TLI.cpp</a></li>
-<li><a href = "../ace/TLI.h">TLI.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_TLI.html">[doxygen]</a></b>
-<li><a href = "../ace/TLI.i">TLI.i</a></li>
-<li><a href = "../ace/TLI_Acceptor.cpp">TLI_Acceptor.cpp</a></li>
-<li><a href = "../ace/TLI_Acceptor.h">TLI_Acceptor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_TLI_Acceptor.html">[doxygen]</a></b>
-<li><a href = "../ace/TLI_Acceptor.i">TLI_Acceptor.i</a></li>
-<li><a href = "../ace/TLI_Connector.cpp">TLI_Connector.cpp</a></li>
-<li><a href = "../ace/TLI_Connector.h">TLI_Connector.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_TLI_Connector.html">[doxygen]</a></b>
-<li><a href = "../ace/TLI_Connector.i">TLI_Connector.i</a></li>
-<li><a href = "../ace/TLI_Stream.cpp">TLI_Stream.cpp</a></li>
-<li><a href = "../ace/TLI_Stream.h">TLI_Stream.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_TLI_Stream.html">[doxygen]</a></b>
-<li><a href = "../ace/TLI_Stream.i">TLI_Stream.i</a></li>
-</ul>
-</ul>
-<b>[UPIPE_SAP]</b>
-<ul>
-<li><a href = "../ace/UPIPE_Acceptor.cpp">UPIPE_Acceptor.cpp</a></li>
-<li><a href = "../ace/UPIPE_Acceptor.h">UPIPE_Acceptor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_UPIPE_Acceptor.html">[doxygen]</a></b>
-<li><a href = "../ace/UPIPE_Acceptor.i">UPIPE_Acceptor.i</a></li>
-<li><a href = "../ace/UPIPE_Connector.cpp">UPIPE_Connector.cpp</a></li>
-<li><a href = "../ace/UPIPE_Connector.h">UPIPE_Connector.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_UPIPE_Connector.html">[doxygen]</a></b>
-<li><a href = "../ace/UPIPE_Connector.i">UPIPE_Connector.i</a></li>
-<li><a href = "../ace/UPIPE_Stream.cpp">UPIPE_Stream.cpp</a></li>
-<li><a href = "../ace/UPIPE_Stream.h">UPIPE_Stream.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_UPIPE_Stream.html">[doxygen]</a></b>
-<li><a href = "../ace/UPIPE_Stream.i">UPIPE_Stream.i</a></li>
-</ul>
-<b>[Misc]</b>
-<ul>
-<li><a href = "../ace/IOStream.cpp">IOStream.cpp</a></li>
-<li><a href = "../ace/IOStream.h">IOStream.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_IOStream.html">[doxygen]</a></b>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_IOStream_T.html">[doxygen]</a></b>
-<li><a href = "../ace/IOStream_T.i">IOStream_T.i</a></li>
-<li><a href = "../ace/Pipe.cpp">Pipe.cpp</a></li>
-<li><a href = "../ace/Pipe.h">Pipe.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Pipe.html">[doxygen]</a></b>
-<li><a href = "../ace/Pipe.i">Pipe.i</a></li>
-<li><a href = "../ace/Signal.cpp">Signal.cpp</a></li>
-<li><a href = "../ace/Signal.h">Signal.h</a></li>
-<li><a href = "../ace/Signal.i">Signal.i</a></li>
-</ul>
-</ul>
-<b>[Logging and Tracing]</b>
-<ul>
-<li><a href = "../ace/Dump.cpp">Dump.cpp</a></li>
-<li><a href = "../ace/Dump.h">Dump.h</a></li>
-<li><a href = "../ace/Dump_T.cpp">Dump_T.cpp</a></li>
-<li><a href = "../ace/Dump_T.h">Dump_T.h</a></li>
-<li><a href = "../ace/Log_Msg.cpp">Log_Msg.cpp</a></li>
-<li><a href = "../ace/Log_Msg.h">Log_Msg.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Log_Msg.html">[doxygen]</a></b>
-<li><a href = "../ace/Log_Msg.i">Log_Msg.i</a></li>
-<li><a href = "../ace/Log_Priority.h">Log_Priority.h</a></li>
-<li><a href = "../ace/Log_Record.cpp">Log_Record.cpp</a></li>
-<li><a href = "../ace/Log_Record.h">Log_Record.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Log_Record.html">[doxygen]</a></b>
-<li><a href = "../ace/Log_Record.i">Log_Record.i</a></li>
-<li><a href = "../ace/Trace.cpp">Trace.cpp</a></li>
-<li><a href = "../ace/Trace.h">Trace.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Trace.html">[doxygen]</a></b>
-<li><a href = "../ace/Trace.i">Trace.i</a></li>
-</ul>
-<b>[Memory]</b>
-<ul>
-<b>[Mem_Map]</b>
-<ul>
-<li><a href = "../ace/Mem_Map.cpp">Mem_Map.cpp</a></li>
-<li><a href = "../ace/Mem_Map.h">Mem_Map.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Mem_Map.html">[doxygen]</a></b>
-<li><a href = "../ace/Mem_Map.i">Mem_Map.i</a></li>
-</ul>
-<b>[Shared_Malloc]</b>
-<ul>
-<li><a href = "../ace/Malloc.cpp">Malloc.cpp</a></li>
-<li><a href = "../ace/Malloc.h">Malloc.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Malloc.html">[doxygen]</a></b>
-<li><a href = "../ace/Malloc.i">Malloc.i</a></li>
-<li><a href = "../ace/Malloc_T.cpp">Malloc_T.cpp</a></li>
-<li><a href = "../ace/Malloc_T.h">Malloc_T.h</a></li>
-<li><a href = "../ace/Malloc_T.i">Malloc_T.i</a></li>
-<li><a href = "../ace/Memory_Pool.cpp">Memory_Pool.cpp</a></li>
-<li><a href = "../ace/Memory_Pool.h">Memory_Pool.h</a></li>
-<li><a href = "../ace/Memory_Pool.i">Memory_Pool.i</a></li>
-</ul>
-<b>[Shared_Memory]</b>
-<ul>
-<li><a href = "../ace/Shared_Memory.h">Shared_Memory.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Shared_Memory.html">[doxygen]</a></b>
-<li><a href = "../ace/Shared_Memory_MM.cpp">Shared_Memory_MM.cpp</a></li>
-<li><a href = "../ace/Shared_Memory_MM.h">Shared_Memory_MM.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Shared_Memory_MM.html">[doxygen]</a></b>
-<li><a href = "../ace/Shared_Memory_MM.i">Shared_Memory_MM.i</a></li>
-<li><a href = "../ace/Shared_Memory_SV.cpp">Shared_Memory_SV.cpp</a></li>
-<li><a href = "../ace/Shared_Memory_SV.h">Shared_Memory_SV.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Shared_Memory_SV.html">[doxygen]</a></b>
-<li><a href = "../ace/Shared_Memory_SV.i">Shared_Memory_SV.i</a></li>
-</ul>
-<b>[Utils]</b>
-<ul>
-<li><a href = "../ace/Obstack.cpp">Obstack.cpp</a></li>
-<li><a href = "../ace/Obstack.h">Obstack.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Obstack.html">[doxygen]</a></b>
-<li><a href = "../ace/Read_Buffer.cpp">Read_Buffer.cpp</a></li>
-<li><a href = "../ace/Read_Buffer.h">Read_Buffer.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Read_Buffer.html">[doxygen]</a></b>
-<li><a href = "../ace/Read_Buffer.i">Read_Buffer.i</a></li>
-</ul>
-</ul>
-<b>[Misc]</b>
-<ul>
-<li><a href = "../ace/ARGV.cpp">ARGV.cpp</a></li>
-<li><a href = "../ace/ARGV.h">ARGV.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_ARGV.html">[doxygen]</a></b>
-<li><a href = "../ace/ARGV.i">ARGV.i</a></li>
-<li><a href = "../ace/Auto_Ptr.cpp">Auto_Ptr.cpp</a></li>
-<li><a href = "../ace/Auto_Ptr.h">Auto_Ptr.h</a></li>
-<li><a href = "../ace/Auto_Ptr.i">Auto_Ptr.i</a></li>
-<li><a href = "../ace/Date_Time.cpp">Date_Time.cpp</a></li>
-<li><a href = "../ace/Date_Time.h">Date_Time.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Date_Time.html">[doxygen]</a></b>
-<li><a href = "../ace/Date_Time.i">Date_Time.i</a></li>
-<li><a href = "../ace/Dynamic.cpp">Dynamic.cpp</a></li>
-<li><a href = "../ace/Dynamic.h">Dynamic.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Dynamic.html">[doxygen]</a></b>
-<li><a href = "../ace/Dynamic.i">Dynamic.i</a></li>
-<li><a href = "../ace/Get_Opt.cpp">Get_Opt.cpp</a></li>
-<li><a href = "../ace/Get_Opt.h">Get_Opt.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Get_Opt.html">[doxygen]</a></b>
-<li><a href = "../ace/Get_Opt.i">Get_Opt.i</a></li>
-<li><a href = "../ace/Registry.cpp">Registry.cpp</a></li>
-<li><a href = "../ace/Registry.h">Registry.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Registry.html">[doxygen]</a></b>
-<li><a href = "../ace/Singleton.cpp">Singleton.cpp</a></li>
-<li><a href = "../ace/Singleton.h">Singleton.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Singleton.html">[doxygen]</a></b>
-<li><a href = "../ace/Singleton.i">Singleton.i</a></li>
-<li><a href = "../ace/System_Time.cpp">System_Time.cpp</a></li>
-<li><a href = "../ace/System_Time.h">System_Time.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_System_Time.html">[doxygen]</a></b>
-</ul>
-<b>[Name_Service]</b>
-<ul>
-<li><a href = "../ace/Local_Name_Space.cpp">Local_Name_Space.cpp</a></li>
-<li><a href = "../ace/Local_Name_Space.h">Local_Name_Space.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Local_Name_Space.html">[doxygen]</a></b>
-<li><a href = "../ace/Local_Name_Space_T.cpp">Local_Name_Space_T.cpp</a></li>
-<li><a href = "../ace/Local_Name_Space_T.h">Local_Name_Space_T.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Name_Options.html">[doxygen]</a></b>
-<li><a href = "../ace/Name_Proxy.cpp">Name_Proxy.cpp</a></li>
-<li><a href = "../ace/Name_Proxy.h">Name_Proxy.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Name_Proxy.html">[doxygen]</a></b>
-<li><a href = "../ace/Name_Request_Reply.cpp">Name_Request_Reply.cpp</a></li>
-<li><a href = "../ace/Name_Request_Reply.h">Name_Request_Reply.h</a></li>
-<li><a href = "../ace/Name_Space.cpp">Name_Space.cpp</a></li>
-<li><a href = "../ace/Name_Space.h">Name_Space.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Name_Space.html">[doxygen]</a></b>
-<li><a href = "../ace/Naming_Context.cpp">Naming_Context.cpp</a></li>
-<li><a href = "../ace/Naming_Context.h">Naming_Context.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Naming_Context.html">[doxygen]</a></b>
-<li><a href = "../ace/Registry_Name_Space.cpp">Registry_Name_Space.cpp</a></li>
-<li><a href = "../ace/Registry_Name_Space.h">Registry_Name_Space.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Registry_Name_Space.html">[doxygen]</a></b>
-<li><a href = "../ace/Remote_Name_Space.cpp">Remote_Name_Space.cpp</a></li>
-<li><a href = "../ace/Remote_Name_Space.h">Remote_Name_Space.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Remote_Name_Space.html">[doxygen]</a></b>
-</ul>
-<b>[OS Adapters]</b>
-<ul>
-<li><a href = "../ace/ACE.cpp">ACE.cpp</a></li>
-<li><a href = "../ace/ACE.h">ACE.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE.html">[doxygen]</a></b>
-<li><a href = "../ace/ACE.i">ACE.i</a></li>
-<li><a href = "../ace/OS.cpp">OS.cpp</a></li>
-<li><a href = "../ace/OS.h">OS.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_OS.html">[doxygen]</a></b>
-<li><a href = "../ace/OS.i">OS.i</a></li>
-</ul>
-<b>[Reactor]</b>
-<ul>
-<li><a href = "../ace/Event_Handler.cpp">Event_Handler.cpp</a></li>
-<li><a href = "../ace/Event_Handler.h">Event_Handler.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Event_Handler.html">[doxygen]</a></b>
-<li><a href = "../ace/Event_Handler.i">Event_Handler.i</a></li>
-<li><a href = "../ace/Event_Handler_T.cpp">Event_Handler_T.cpp</a></li>
-<li><a href = "../ace/Event_Handler_T.h">Event_Handler_T.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Event_Handler_T.html">[doxygen]</a></b>
-<li><a href = "../ace/Event_Handler_T.i">Event_Handler_T.i</a></li>
-<li><a href = "../ace/Handle_Set.cpp">Handle_Set.cpp</a></li>
-<li><a href = "../ace/Handle_Set.h">Handle_Set.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Handle_Set.html">[doxygen]</a></b>
-<li><a href = "../ace/Handle_Set.i">Handle_Set.i</a></li>
-<li><a href = "../ace/Priority_Reactor.cpp">Priority_Reactor.cpp</a></li>
-<li><a href = "../ace/Priority_Reactor.i">Priority_Reactor.i</a></li>
-<li><a href = "../ace/Priority_Reactor.h">Priority_Reactor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Priority_Reactor.html">[doxygen]</a></b>
-<li><a href = "../ace/Proactor.h">Proactor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Proactor.html">[doxygen]</a></b>
-<li><a href = "../ace/Proactor.i">Proactor.i</a></li>
-<li><a href = "../ace/Proactor.cpp">Proactor.cpp</a></li>
-<li><a href = "../ace/Reactor.cpp">Reactor.cpp</a></li>
-<li><a href = "../ace/Reactor.h">Reactor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Reactor.html">[doxygen]</a></b>
-<li><a href = "../ace/Reactor.i">Reactor.i</a></li>
-<li><a href = "../ace/Reactor_Impl.h">Reactor_Impl.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Reactor_Impl.html">[doxygen]</a></b>
-<li><a href = "../ace/Select_Reactor.cpp">Select_Reactor.cpp</a></li>
-<li><a href = "../ace/Select_Reactor.h">Select_Reactor.h</a></li>
-<li><a href = "../ace/Select_Reactor.i">Select_Reactor.i</a></li>
-<li><a href = "../ace/WFMO_Reactor.cpp">WFMO_Reactor.cpp</a></li>
-<li><a href = "../ace/WFMO_Reactor.h">WFMO_Reactor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_WFMO_Reactor.html">[doxygen]</a></b>
-<li><a href = "../ace/WFMO_Reactor.i">WFMO_Reactor.i</a></li>
-<li><a href = "../ace/XtReactor.cpp">XtReactor.cpp</a></li>
-<li><a href = "../ace/XtReactor.h">XtReactor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_XtReactor.html">[doxygen]</a></b>
-</ul>
-<b>[Service_Configurator]</b>
-<ul>
-<li><a href = "../ace/DLL.cpp">DLL.cpp</a></li>
-<li><a href = "../ace/DLL.h">DLL.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_DLL.html">[doxygen]</a></b>
-<li><a href = "../ace/Parse_Node.cpp">Parse_Node.cpp</a></li>
-<li><a href = "../ace/Parse_Node.h">Parse_Node.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Parse_Node.html">[doxygen]</a></b>
-<li><a href = "../ace/Parse_Node.i">Parse_Node.i</a></li>
-<li><a href = "../ace/Service_Config.cpp">Service_Config.cpp</a></li>
-<li><a href = "../ace/Service_Config.h">Service_Config.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Service_Config.html">[doxygen]</a></b>
-<li><a href = "../ace/Service_Config.i">Service_Config.i</a></li>
-<li><a href = "../ace/Service_Manager.cpp">Service_Manager.cpp</a></li>
-<li><a href = "../ace/Service_Manager.h">Service_Manager.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Service_Manager.html">[doxygen]</a></b>
-<li><a href = "../ace/Service_Manager.i">Service_Manager.i</a></li>
-<li><a href = "../ace/Service_Object.cpp">Service_Object.cpp</a></li>
-<li><a href = "../ace/Service_Object.h">Service_Object.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Service_Object.html">[doxygen]</a></b>
-<li><a href = "../ace/Service_Object.i">Service_Object.i</a></li>
-<li><a href = "../ace/Service_Repository.cpp">Service_Repository.cpp</a></li>
-<li><a href = "../ace/Service_Repository.h">Service_Repository.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Service_Repository.html">[doxygen]</a></b>
-<li><a href = "../ace/Service_Repository.i">Service_Repository.i</a></li>
-<li><a href = "../ace/Service_Types.cpp">Service_Types.cpp</a></li>
-<li><a href = "../ace/Service_Types.i">Service_Types.i</a></li>
-<li><a href = "../ace/Service_Types.h">Service_Types.h</a></li>
-<li><a href = "../ace/Shared_Object.cpp">Shared_Object.cpp</a></li>
-<li><a href = "../ace/Shared_Object.h">Shared_Object.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Shared_Object.html">[doxygen]</a></b>
-<li><a href = "../ace/Shared_Object.i">Shared_Object.i</a></li>
-<li><a href = "../ace/Svc_Conf.h">Svc_Conf.h</a></li>
-<li><a href = "../ace/Svc_Conf_l.cpp">Svc_Conf_l.cpp</a></li>
-<li><a href = "../ace/Svc_Conf_y.cpp">Svc_Conf_y.cpp</a></li>
-<li><a href = "../ace/Svc_Conf_Tokens.h">Svc_Conf_Tokens.h</a></li>
-</ul>
-<b>[Streams]</b>
-<ul>
-<li><a href = "../ace/IO_Cntl_Msg.cpp">IO_Cntl_Msg.cpp</a></li>
-<li><a href = "../ace/IO_Cntl_Msg.h">IO_Cntl_Msg.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_IO_Cntl_Msg.html">[doxygen]</a></b>
-<li><a href = "../ace/IO_Cntl_Msg.i">IO_Cntl_Msg.i</a></li>
-<li><a href = "../ace/Message_Block.cpp">Message_Block.cpp</a></li>
-<li><a href = "../ace/Message_Block.h">Message_Block.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Message_Block.html">[doxygen]</a></b>
-<li><a href = "../ace/Message_Block.i">Message_Block.i</a></li>
-<li><a href = "../ace/Message_Queue.cpp">Message_Queue.cpp</a></li>
-<li><a href = "../ace/Message_Queue.h">Message_Queue.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Message_Queue.html">[doxygen]</a></b>
-<li><a href = "../ace/Message_Queue.i">Message_Queue.i</a></li>
-<li><a href = "../ace/Message_Queue_T.cpp">Message_Queue_T.cpp</a></li>
-<li><a href = "../ace/Message_Queue_T.h">Message_Queue_T.h</a></li>
-<li><a href = "../ace/Message_Queue_T.i">Message_Queue_T.i</a></li>
-<li><a href = "../ace/Module.cpp">Module.cpp</a></li>
-<li><a href = "../ace/Module.h">Module.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Module.html">[doxygen]</a></b>
-<li><a href = "../ace/Module.i">Module.i</a></li>
-<li><a href = "../ace/Multiplexor.cpp">Multiplexor.cpp</a></li>
-<li><a href = "../ace/Multiplexor.h">Multiplexor.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Multiplexor.html">[doxygen]</a></b>
-<li><a href = "../ace/Multiplexor.i">Multiplexor.i</a></li>
-<li><a href = "../ace/Stream.cpp">Stream.cpp</a></li>
-<li><a href = "../ace/Stream.h">Stream.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Stream.html">[doxygen]</a></b>
-<li><a href = "../ace/Stream.i">Stream.i</a></li>
-<li><a href = "../ace/Stream_Modules.cpp">Stream_Modules.cpp</a></li>
-<li><a href = "../ace/Stream_Modules.h">Stream_Modules.h</a></li>
-<li><a href = "../ace/Stream_Modules.i">Stream_Modules.i</a></li>
-<li><a href = "../ace/Task.cpp">Task.cpp</a></li>
-<li><a href = "../ace/Task.h">Task.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Task.html">[doxygen]</a></b>
-<li><a href = "../ace/Task.i">Task.i</a></li>
-<li><a href = "../ace/Task_T.cpp">Task_T.cpp</a></li>
-<li><a href = "../ace/Task_T.h">Task_T.h</a></li>
-<li><a href = "../ace/Task_T.i">Task_T.i</a></li>
-</ul>
-<b>[System_V_IPC]</b>
-<ul>
-<b>[System_V_Message_Queues]</b>
-<ul>
-<li><a href = "../ace/SV_Message.cpp">SV_Message.cpp</a></li>
-<li><a href = "../ace/SV_Message.h">SV_Message.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SV_Message.html">[doxygen]</a></b>
-<li><a href = "../ace/SV_Message.i">SV_Message.i</a></li>
-<li><a href = "../ace/SV_Message_Queue.cpp">SV_Message_Queue.cpp</a></li>
-<li><a href = "../ace/SV_Message_Queue.h">SV_Message_Queue.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SV_Message_Queue.html">[doxygen]</a></b>
-<li><a href = "../ace/SV_Message_Queue.i">SV_Message_Queue.i</a></li>
-<li><a href = "../ace/Typed_SV_Message.cpp">Typed_SV_Message.cpp</a></li>
-<li><a href = "../ace/Typed_SV_Message.h">Typed_SV_Message.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Typed_SV_Message.html">[doxygen]</a></b>
-<li><a href = "../ace/Typed_SV_Message.i">Typed_SV_Message.i</a></li>
-<li><a href = "../ace/Typed_SV_Message_Queue.cpp">Typed_SV_Message_Queue.cpp</a></
-li>
-<li><a href = "../ace/Typed_SV_Message_Queue.h">Typed_SV_Message_Queue.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Typed_SV_Message_Queue.html">[doxygen]</a></b>
-<li><a href = "../ace/Typed_SV_Message_Queue.i">Typed_SV_Message_Queue.i</a></li>
-</ul>
-<b>[System_V_Semaphores]</b>
-<ul>
-<li><a href = "../ace/SV_Semaphore_Complex.cpp">SV_Semaphore_Complex.cpp</a></li>
-<li><a href = "../ace/SV_Semaphore_Complex.h">SV_Semaphore_Complex.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SV_Semaphore_Complex.html">[doxygen]</a></b>
-<li><a href = "../ace/SV_Semaphore_Complex.i">SV_Semaphore_Complex.i</a></li>
-<li><a href = "../ace/SV_Semaphore_Simple.cpp">SV_Semaphore_Simple.cpp</a></li>
-<li><a href = "../ace/SV_Semaphore_Simple.h">SV_Semaphore_Simple.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SV_Semaphore_Simple.html">[doxygen]</a></b>
-<li><a href = "../ace/SV_Semaphore_Simple.i">SV_Semaphore_Simple.i</a></li>
-</ul>
-<b>[System_V_Shared_Memory]</b>
-<ul>
-<li><a href = "../ace/SV_Shared_Memory.cpp">SV_Shared_Memory.cpp</a></li>
-<li><a href = "../ace/SV_Shared_Memory.h">SV_Shared_Memory.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_SV_Shared_Memory.html">[doxygen]</a></b>
-<li><a href = "../ace/SV_Shared_Memory.i">SV_Shared_Memory.i</a></li>
-</ul>
-</ul>
-<b>[Timers]</b>
-<ul>
-<li><a href = "../ace/High_Res_Timer.cpp">High_Res_Timer.cpp</a></li>
-<li><a href = "../ace/High_Res_Timer.h">High_Res_Timer.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_High_Res_Timer.html">[doxygen]</a></b>
-<li><a href = "../ace/High_Res_Timer.i">High_Res_Timer.i</a></li>
-<li><a href = "../ace/Profile_Timer.cpp">Profile_Timer.cpp</a></li>
-<li><a href = "../ace/Profile_Timer.h">Profile_Timer.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Profile_Timer.html">[doxygen]</a></b>
-<li><a href = "../ace/Profile_Timer.i">Profile_Timer.i</a></li>
-<li><a href = "../ace/Time_Request_Reply.cpp">Time_Request_Reply.cpp</a></li>
-<li><a href = "../ace/Time_Request_Reply.h">Time_Request_Reply.h</a></li>
-<li><a href = "../ace/Time_Value.h">Time_Value.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Time_Value.html">[doxygen]</a></b>
-<li><a href = "../ace/Timer_Hash.cpp">Timer_Hash.cpp</a></li>
-<li><a href = "../ace/Timer_Hash.h">Timer_Hash.h</a></li>
-<li><a href = "../ace/Timer_Hash_T.cpp">Timer_Hash_T.cpp</a></li>
-<li><a href = "../ace/Timer_Hash_T.h">Timer_Hash_T.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Timer_Hash_T.html">[doxygen]</a></b>
-<li><a href = "../ace/Timer_Heap.cpp">Timer_Heap.cpp</a></li>
-<li><a href = "../ace/Timer_Heap.h">Timer_Heap.h</a></li>
-<li><a href = "../ace/Timer_Heap_T.cpp">Timer_Heap_T.cpp</a></li>
-<li><a href = "../ace/Timer_Heap_T.h">Timer_Heap_T.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Timer_Heap_T.html">[doxygen]</a></b>
-<li><a href = "../ace/Timer_List.cpp">Timer_List.cpp</a></li>
-<li><a href = "../ace/Timer_List.h">Timer_List.h</a></li>
-<li><a href = "../ace/Timer_List_T.cpp">Timer_List_T.cpp</a></li>
-<li><a href = "../ace/Timer_List_T.h">Timer_List_T.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Timer_List_T.html">[doxygen]</a></b>
-<li><a href = "../ace/Timer_Queue.cpp">Timer_Queue.cpp</a></li>
-<li><a href = "../ace/Timer_Queue.h">Timer_Queue.h</a></li>
-<li><a href = "../ace/Timer_Queue.i">Timer_Queue.i</a></li>
-<li><a href = "../ace/Timer_Queue_Adapters.cpp">Timer_Queue_Adapters.cpp</a></li>
-<li><a href = "../ace/Timer_Queue_Adapters.h">Timer_Queue_Adapters.h</a></li>
-<li><a href = "../ace/Timer_Queue_Adapters.i">Timer_Queue_Adapters.i</a></li>
-<li><a href = "../ace/Timer_Queue_T.cpp">Timer_Queue_T.cpp</a></li>
-<li><a href = "../ace/Timer_Queue_T.h">Timer_Queue_T.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Timer_Queue_T.html">[doxygen]</a></b>
-<li><a href = "../ace/Timer_Queue_T.i">Timer_Queue_T.i</a></li>
-<li><a href = "../ace/Timer_Wheel.cpp">Timer_Wheel.cpp</a></li>
-<li><a href = "../ace/Timer_Wheel.h">Timer_Wheel.h</a></li>
-<li><a href = "../ace/Timer_Wheel_T.cpp">Timer_Wheel_T.cpp</a></li>
-<li><a href = "../ace/Timer_Wheel_T.h">Timer_Wheel_T.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Timer_Wheel_T.html">[doxygen]</a></b>
-</ul>
-<b>[Token_Service]</b>
-<ul>
-<li><a href = "../ace/Local_Tokens.cpp">Local_Tokens.cpp</a></li>
-<li><a href = "../ace/Local_Tokens.h">Local_Tokens.h</a></li>
-<li><a href = "../ace/Local_Tokens.i">Local_Tokens.i</a></li>
-<li><a href = "../ace/Remote_Tokens.cpp">Remote_Tokens.cpp</a></li>
-<li><a href = "../ace/Remote_Tokens.h">Remote_Tokens.h</a></li>
-<li><a href = "../ace/Remote_Tokens.i">Remote_Tokens.i</a></li>
-<li><a href = "../ace/Token_Collection.cpp">Token_Collection.cpp</a></li>
-<li><a href = "../ace/Token_Collection.h">Token_Collection.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Token_Collection.html">[doxygen]</a></b>
-<li><a href = "../ace/Token_Collection.i">Token_Collection.i</a></li>
-<li><a href = "../ace/Token_Manager.cpp">Token_Manager.cpp</a></li>
-<li><a href = "../ace/Token_Manager.h">Token_Manager.h</a></li>
-<b><a href = "http://doc.ece.uci.edu/Doxygen/Current/html/ace/class_ACE_Token_Manager.html">[doxygen]</a></b>
-<li><a href = "../ace/Token_Manager.i">Token_Manager.i</a></li>
-<li><a href = "../ace/Token_Request_Reply.cpp">Token_Request_Reply.cpp</a></li>
-<li><a href = "../ace/Token_Request_Reply.h">Token_Request_Reply.h</a></li>
-<li><a href = "../ace/Token_Request_Reply.i">Token_Request_Reply.i</a></li>
-<li><a href = "../ace/Token_Invariants.h">Token_Invariants.h</a></li>
-<li><a href = "../ace/Token_Invariants.i">Token_Invariants.i</a></li>
-<li><a href = "../ace/Token_Invariants.cpp">Token_Invariants.cpp</a></li>
-</ul>
-</ul>
-
-<P><HR><P>
-
-Back to the <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-documentation.html">ACE
-documentation</A> page.
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</body>
-</html>
diff --git a/docs/ACE-configuration.txt b/docs/ACE-configuration.txt
deleted file mode 100644
index d9194375d6a..00000000000
--- a/docs/ACE-configuration.txt
+++ /dev/null
@@ -1,181 +0,0 @@
-* $Id$ *
-
-================================================================
-Configuring ACE Using the `configure' Script
-================================================================
-
-QuickStart
-----------
-GNU Autoconf support in ACE is still under development. However it is
-a small subset of Autoconf support in ACE has been made available for
-testing and feedback purposes. To use Autoconf support in ACE, do
-something like the following:
-
- cd ACE_wrappers
- mkdir objdir
- cd objdir
-
-Then:
- Bourne Shell: CXX=c++ ../configure
- C Shell: env CXX=c++ ../configure
-make
-
-Description
------------
-To help speed development, the work being done by the ACE
-Configuration Project is being slowly introduced into the official ACE
-distribution. Some of the functionality in the work created by the
-ACE Configuration Project has been removed so that ACE may be built in
-the usual fashion. Once the ACE Configuration Project work stabilizes
-on more platforms that removed functionality may be added to ACE.
-
-Currently the configure script contains most of the tests that are
-necessary to properly configure ACE on most platforms. However, there
-are still some autoconf tests that are missing. As such, you may
-encounter and most likely will have compilation problems. Please
-report any problems to the contacts listed at the end of this
-document.
-
-The `configure' script that is currently being used has been modified
-from the ACE Configuration Project's `configure' script to prevent
-makefiles from being automatically generated since there are still
-some issues that must be addressed before automatically generated
-makefiles are incorporated into the official ACE distribution.
-
-A listing of available configure script options can be shown by
-entering:
-
- ./configure --help
-
-at the command line. The output should look something like the
-following:
-
-
-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
- [/usr/local]
- --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
-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
---enable and --with options recognized:
- --enable-static[=PKGS] build static libraries [default=no]
- --enable-shared[=PKGS] build shared libraries [default=yes]
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --disable-libtool-lock force libtool not to do file locking
- --enable-debug enable debugging [default=yes]
- --enable-exceptions enable C++ exception handling [default=yes]
- --enable-fast enable -fast flag, e.g. Sun C++ [default=no]
- --enable-inline enable code inlining [default=yes]
- --enable-log-msg-prop enable threads inheriting
- ACE_Log_Msg properties from parent
- thread [default=yes]
- --enable-logging enable ACE logging macros [default=yes]
- --enable-malloc-stats enable malloc statistics
- collection [default=no]
- --enable-optimize enable additional optimizations [default=yes]
- --enable-probe enable ACE_Timeprobes [default=no]
- --enable-profile enable profiling [default=no]
- --enable-purify Purify all executables [default=no]
- --enable-quantify Quantify all executables [default=no]
- --enable-reentrant enable reentrant functions [default=yes]
- --enable-repo use GNU template repository
- GNU C++ with repo patches and
- EGCS only [default=no]
- --enable-rtti enable run-time type
- identification
- *Currently only for Sun C++ [default=no]
- --enable-static-obj-mgr enable static Object_Manager [default=yes]
- --enable-threads enable thread support [default=yes]
- --enable-verb-not-sup enable verbose ENOTSUP reports [default=no]
- --enable-trace enable ACE tracing [default=no]
- --enable-xt-reactor build support for the XtReactor [default=no]
- --with-x use the X Window System
- --with-gperf compile the gperf program [default=yes]
- --with-orbix[=DIR] compile ACE with Orbix [default=no]
- --with-tli-device[=DEV] device for TCP on TLI [default=/dev/tcp]
-
-To enable debugging and disable code inlining, for example, just enter
-the following on the command line:
-
- ./configure --enable-debug --disable-inline
-
-This will generate a configuration header file `ace/config.h' to be
-used when compiling ACE that will enable ACE debugging macros and
-disable code inlining during compilation of ACE.
-
-Once the `ace/config.h' header has been created you will have to
-select a platform macros file. Please read the ACE installation
-documents for more information about this.
-
-----------------------------------------------------------------
-Caveats
-----------------------------------------------------------------
-The `configure' script will check for libraries that contain certain
-functions. If it finds a library that isn't listed in your
-platform_macros.GNU file you will have to add that library to the list
-of libraries to link against.
-
-Shared library generation when using ACE Autoconf support is different
-from the stock ACE shared library generation mechanism. The Autoconf
-supported shared library mechanism does not yet fully support all of
-the platforms ACE's stock shared library mechanism supports. As such,
-you may encounter problems if an attempt is made to build a shared
-library when using ACE's autoconf support.
-
-Remember that the stock ACE build procedure is always available. If
-your attempts to use ACE's Autoconf support are unsuccessful then
-contact the parties listed below, and use ACE stock build procedure as
-described in ACE-INSTALL.html.
-
-----------------------------------------------------------------
-Contacts
-----------------------------------------------------------------
-If you do have problems please e-mail the ACE Configuration Project
-maintainer at:
-
- Ossama Othman <ossama@uci.edu>
-
-or send mail to the ACE mailing list.
-
-For more information take at a look at the ACE Configuration Project
-web page at:
-
- http://www.cs.wustl.edu/~othman/aceconf
-
diff --git a/docs/ACE-development-process.html b/docs/ACE-development-process.html
deleted file mode 100644
index f9bdb64b6e0..00000000000
--- a/docs/ACE-development-process.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<!-- $Id$ -->
-
-<html>
- <head>
- <title>ACE+TAO Development and Release Process</title>
- <link rev=made href="mailto:levine@cs.wustl.edu">
- </head>
-
-<body text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#ffffff">
-
-<hr>
-<h3>The ACE+TAO Development and Release Process</h3>
-
-To improve the quality of our software and minimize development
-effort, we try to follow the structured development and release
-process described below.<p>
-
-An important concept to keep in mind is <em>risk</em>. Before you
-commit <em>any</em> change to ACE+TAO, please consider the effects
-that it will have. Could it possibly cause a build failure, on any
-platform? Could it possibly cause different run-time behavior? And
-so on. If so, it is your responsibility to adequately build and test
-with the change, in order to verify that it has no unintended
-effects.<p>
-
-Please keep in mind the cost of committing a mistake. It may take you
-only a few seconds to fix, but its cost to the group may be much
-larger. With our large group, workspace updates and builds are likely
-to happen at any time. If one break, it can take hours to rebuild it.
-And each developer that was waiting for a successful build would be
-blocked for the duration of the broken build, the fix, and the
-rebuild.<p>
-
-<hr>
-<h3>The ACE+TAO Development Process</h3>
-
-The ACE+TAO development process looks like:<p>
-<ol>
- <li>Every change to ACE+TAO must have a bug report. <em>Change</em>
- includes fixes, enhancements, updates, and so on.
- <li><a href="http://ace.cs.wustl.edu/bugs/index.cgi">Create a bug report</a>.
- <li>Accept the bug report if you are going to implement the change.
- <li>Implement the change in your workspace(s).
- <li>Test the change sufficiently to demonstrate that it both does
- what is intended, and doesn't break anything. The test may be
- as simple as building and running the ACE+TAO tests on one platform.
- Or as complicated as rebuilding and test all of ACE+TAO on
- all platforms that we have.
- <li>Create an appropriate ChangeLog entry.
- <li>Commit the change using a ChangeLogTag commit message.
- <li>Respond to the requester of the change, if any. Please do this
- <em>after</em> committing your change.
- <li>Make sure that the requester is listed in the THANKS file.
- <li>Update the bug report to indicate resolution.
- <li>Monitor the next round of build/tests for problems with your change.
- <li>Respond immediately to reports of problems with your changes.
-</ol>
-
-<p><hr>
-<H3>Bug Lifecycles</H3>
-<P>
-
-A bug should typically follow this life cycle:<p>
-<center><table cellpadding=5 border=0>
-<tr>
- <td>Submitter:</td>
- <td>Enters problem</td>
-<tr>
- <td>Bugmaster:</td>
- <td>Assigns</td>
-<tr>
- <td>Owner:</td>
- <td>Accepts</td>
-<tr>
- <td>Owner:</td>
- <td>Reproduces problem - if it needs a new test, write it and
- put it in the regression tests.
- If it can't be reproduced, set to Resolved/CANT_FIND.<br>
- If it's a duplicate, set it to Resolved/DUPLICATE.
- Fix code, commit changes, set to Resolved.</td>
-<tr>
- <td>Submitter:</td>
- <td>Tests it again; set to Verified (pass) or Reopened (fail)</td>
-<tr>
- <td>Owner:</td>
- <td>After next release is done, re-test; sets to Closed or Reopened.</td>
-</table></center>
-
-<p><hr>
-<H3>The Role of the Build Czar</H3>
-<P>
-
-At all times, we'll have a build czar. The role may be shared by
-multiple people. The build czar is responsible for ensuring that the
-next kits are clean, <em>i.e.</em>, it builds and runs cleanly on all
-platforms. The status of all ACE+TAO builds is tracked automatically
-<A HREF="http://ringil.ece.uci.edu/scoreboard/"</A>online</A>.<p>
-
-The build czar's role is to:<p>
-<ul>
- <li>Remind people to check build logs. Developers are still
- responsible for verifying that their changes are clean.
- <li>Freeze the CVS repository when it's decided to no more
- non-critical changes will be accepted for the next kits.
- The build czar has the final say over when the freeze is
- implemented. The tendency to implement a freeze sooner than
- later is intentional, desirable, beneficial, and the "Right Thing"[TM]
- to do.
- <li>Verifies that the final round of builds/tests are clean.
- <li>Creates the kits.
- <li>Unfreezes the CVS repository.
- <li>Sends email to appropriate news groups announcing the new kits.
- <li>Passes the mantle on to the next build czar.<p>
-</ul>
-
-If another developer interferes with the build czar's duties, the
-build czar has the unilateral authority to pass the mantle to the
-violator. This is also intentional, desirable, beneficial, and the
-Right Thing[TM] to do.<p>
-
-<p><hr>
-<H3>The ACE+TAO Release Process</H3>
-<P>
-
-Minor releases of ACE+TAO occur periodically, typically twice a year.
-Minor releases have two-digit numbers, <EM>e.g.</EM>, 5.1. Major
-releases are released infrequently, typically once a year. Major
-releases are 1-digit numbers, <EM>e.g.</EM>5, that include
-substantially new functionality. Both major and minor releases are
-carefully tested on all platforms the ACE+TAO run on. In particular,
-we do not put out major or minor releases of ACE+TAO until all the
-compilations and regression tests work successful on all the platform
-we support. <P>
-
-Between major/minor releases, we release betas periodically,
-<EM>e.g.</EM>, once a month, so that ACE+TAO users can download and
-test our latest work in progress. ACE+TAO beta kits have three-digit
-numbers, <EM>e.g.,</EM>5.1.1. Betas are often not as stable as the
-major or minor releases, but they often contain important fixes that
-aren't in the official releases. Although we try to ensure the
-quality of betas, they may not compile cleanly on all platforms, nor
-will they necessarily pass all of the tests on all platforms. They
-will, however, compile cleanly and pass most tests on most platforms.
-As usual, we endeavor to fix any problems that arise as quickly as
-possible. Naturally, if you require 100% predictable stability and
-support, please contact <A HREF="http://www.theaceorb.com/">OCI</A>
-for TAO commercial support or <A
-HREF="http://www.riverace.com/">Riverace</A> for ACE commercial
-support. <P>
-
-<hr><p>
- <font size=-1>
- Last modified
-<!--#echo var="LAST_MODIFIED" -->.<p>
- </font><hr>
-
-Back to <A HREF="index.html">ACE Documentation Home</A>.
-
-</body>
-</html>
diff --git a/docs/ACE-guidelines.html b/docs/ACE-guidelines.html
deleted file mode 100644
index 16dbc995d6d..00000000000
--- a/docs/ACE-guidelines.html
+++ /dev/null
@@ -1,1176 +0,0 @@
-<!-- $Id$ -->
-
-<html>
- <head>
- <title>ACE Software Development Guidelines</title>
- <link rev=made href="mailto:levine@cs.wustl.edu">
- </head>
-
-<body text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#ffffff">
-
-<hr>
-<h3>ACE Software Development Guidelines</h3>
-
-<ul>
- <li><strong>General</strong><p>
- <ul>
- <li>Every text file must end with a newline.<p>
-
- <li>Use spaces instead of tabs, except in Makefiles. Emacs users
- can add this to their <strong>.emacs</strong>:
-
- <pre>(setq-default indent-tabs-mode nil)</pre></p>
-
- Microsoft Visual C++ users should do the following:
-
- <pre>
- Choose: Tools -- Options -- Tabs
- Then Set: "Tab size" to 8 and "Indent size" to 2, and
- indent using spaces.
- </pre><p>
-
- <li>Do not end text lines with spaces. Emacs users can add this to
- their <strong>.emacs</strong>:
-
- <pre>(setq-default nuke-trailing-whitespace-p t)</pre><p>
-
- <li>Try to limit the length of source code lines to less than 80
- characters. Users with 14 inch monitors appreciate it when
- reading code. And, it avoids mangling problems with email
- and net news.<p>
-
- <li>If you add a comment to code that is directed to, or
- requires the attention of, a particular individual:
- <strong>SEND EMAIL TO THAT INDIVIDUAL!</strong>.<p>
-
- <li>Every program should have a ``usage'' message. It should be
- printed out if erroneous command line arguments, or a
- <strong><code>-?</code></strong> command line argument, are
- provided to the program.<p>
-
- <li>The program <strong><code>main</code></strong> function must
- always be declared with arguments, <em>e.g.</em>,
- <pre>
- int
- main (int argc, ACE_TCHAR *argv[])
- {
- [...]
-
- return 0;
- }
- </pre><p>
-
- If you don't use the <code>argc</code> and/or <code>argv</code>
- arguments, don't declare them, <em>e.g.</em>,
- <pre>
- int
- main (int, ACE_TCHAR *[])
- {
- [...]
-
- return 0;
- }
- </pre><p>
-
- Please declare the second argument as <code>ACE_TCHAR *[]</code>
- instead of <code>ACE_TCHAR **</code> or <code>char *[]</CODE>. Ancient versions of MSC
- complained about <code>ACE_TCHAR **</code> and <code>char
- *[]</CODE> is not Unicode-compliant.<p>
-
- <code>main</code> must also return 0 on successful
- termination, and non-zero otherwise.<p>
-
- <li>Avoid use of floating point types (float and double) and operations
- unless absolutely necessary. Not all ACE platforms support them.
- Therefore, wherever they are used, ACE_LACKS_FLOATING_POINT
- conditional code must be also be used.<p>
-
- <li>Avoid including the string ``Error'' in a source code filename.
- GNU Make's error messages start with ``Error''. So, it's much
- easier to search for errors if filenames don't contain ``Error''.<p>
-
- <li>Narrow interfaces are better than wide interfaces. If there
- isn't a need for an interface, leave it out. This eases maintenance,
- minimizes footprint, and reduces the likelihood of interference
- when other interfaces need to be added later. (See the
- <a href="#ACE_Time_Value example">ACE_Time_Value example</a>
- below.<p>
-
- </ul>
-
- <li><strong>Code Documentation</strong><p>
- <ul>
- <li>Use comments and whitespace (:-) liberally. Comments
- should consist of complete sentences, <em>i.e.</em>, start
- with a capital letter and end with a period.<p>
-
- <li>Insert a CVS/RCS keyword string at the top of every source file,
- Makefile, config file, <em>etc</em>. For C++ files, it is:
- <pre>
- // $<!-- -->Id$
- </pre>
- It is not necessary to fill in the fields of the keyword string,
- or modify them when you edit a file that already has one. CVS
- does that automatically when you checkout or update the file.<p>
-
- To insert that string at the top of a file:
- <pre>
- perl -pi -e \
- 'if (! $o) {printf "// \$<!-- -->Id\$\n\n";}; $o = 1;' <em>file</em>
- </pre><p>
-
- <li>Be sure to follow the guidelines and restrictions for use of the
- <a href="../bin/README.html">ACE documentation tools</a>, notably
- for header files.<p>
-
- <li>One example of such guidelines is that comments, especially in
- header files, must follow the
- <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a>
- format requirements.
- The complete documentation for Doxygen is available in the
- <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen
- manual</a>.<br>
- For an example header file using Doxygen-style comments,
- please refer to <a href="../ace/ACE.h">ACE.h</a>.<p>
- </ul>
-
- <li><strong>Preprocessor</strong><p>
- <ul>
- <li>Never #include standard headers directly, except in a few
- specific ACE files, <em>e.g.</em>, OS.h and stdcpp.h. Let
- those files #include the correct headers. If you do not do
- this, your code will not compile with the Standard C++ Library.<p>
-
- <li>Always follow a preprocessor <strong><code>#endif</code></strong>
- with a <strong><code>/* */</code></strong> C-style comment. It
- should correspond to the condition in the matching
- <strong><code>#if</code></strong> directive. For example,
- <pre>
- #if defined (ACE_HAS_THREADS)
- # if defined (ACE_HAS_STHREADS)
- # include /**/ &lt;synch.h&gt;
- # include /**/ &lt;thread.h&gt;
- # define ACE_SCOPE_PROCESS P_PID
- # define ACE_SCOPE_LWP P_LWPID
- # define ACE_SCOPE_THREAD (ACE_SCOPE_LWP + 1)
- # else
- # define ACE_SCOPE_PROCESS 0
- # define ACE_SCOPE_LWP 1
- # define ACE_SCOPE_THREAD 2
- # endif /* ACE_HAS_STHREADS */
- #endif /* ACE_HAS_THREADS */
- </pre><p>
-
- <li>Be sure to put spaces around comment delimiters, e.g.,
- <strong><code>char * /* foo */</code></strong> instead of
- <strong><code>char */*foo*/</code></strong>. MS VC++
- complains otherwise.<p>
-
- <li>Always insert a <strong><code>/**/</code></strong> between an
- <strong><code>#include</code></strong> and
- <strong><code>filename</code></strong>, as shown in the above
- example. This avoids dependency problems with Visual C++.<p>
-
- <li>Be very careful with names of macros, enum values, and variables
- It's always best to prefix them with something like <code>ACE_</code>
- or <code>TAO_</code>. There are too many system headers out
- there that #define <code>OK</code>, <code>SUCCESS</code>,
- <code>ERROR</code>, <code>index</code>, <code>s_type</code>,
- and so on.<p>
-
- <li>When using macros in an arithmetic expression, be sure to test
- that the macro is defined, using defined(macro) before specifying
- the expression. For example:
-<pre>
-#if __FreeBSD__ &lt; 3
-</pre>
-
-will evaluate true on any platform where __FreeBSD__ is not defined.
-The correct way to write that guard is:
-<pre>
-#if defined (__FreeBSD__) && __FreeBSD__ &lt; 3
-</pre>
-
- <li>Try to centralize <code>#ifdefs</code> with <code>typedefs</code>
- and <code>#defines</code>. For example, use this:
- <pre>
- #if defined(ACE_PSOS)
- typedef long ACE_NETIF_TYPE;
- # define ACE_DEFAULT_NETIF 0
- #else /* ! ACE_PSOS */
- typedef const TCHAR* ACE_NETIF_TYPE;
- # define ACE_DEFAULT_NETIF ASYS_TEXT("le0")
- #endif /* ! ACE_PSOS */
- </pre><p>
-
- instead of:
-
- <pre><p>
- #if defined (ACE_PSOS)
- // pSOS supports numbers, not names for network interfaces
- long net_if,
- #else /* ! ACE_PSOS */
- const TCHAR *net_if,
- #endif /* ! ACE_PSOS */
- </pre><p>
-
- <li>Protect header files against multiple inclusion with this
- construct:
- <pre>
- #ifndef FOO_H
- #define FOO_H
-
- [contents of header file]
-
- #endif /* FOO_H */
- </pre><p>
-
- This exact construct (note the <code>#ifndef</code>)
- is optimized by many compilers such they only open the
- file once per compilation unit. Thanks to Eric C. Newton
- &lt;ecn@smart.net&gt; for pointing that out.<p>
-
- If the header <code>#includes</code> an ACE library header,
- then it's a good idea to include the <code>#pragma once</code>
- directive:
- <pre>
- #ifndef FOO_H
- #define FOO_H
-
- #include "ace/ACE.h"
- #if !defined (ACE_LACKS_PRAGMA_ONCE)
- # pragma once
- #endif /* ACE_LACKS_PRAGMA_ONCE */
-
- [contents of header file]
-
- #endif /* FOO_H */
- </pre><p>
-
- <code>#pragma once</code> must be protected, because some
- compilers complain about it. The protection depends on
- <code>ACE_LACKS_PRAGMA_ONCE</code>, which is defined in
- some ACE config headers. Therefore, the protected
- <code>#pragma once</code> construct should only be used after
- an <code>#include</code> of an ACE library header. Note that
- many compilers enable the optimization if the <code>#ifndef</code>
- protection construct is used, so for them, <code>#pragma once</code>
- is superfluous.<p>
-
- <strong>No</strong> code can appear after the final
- <code>#endif</code> for the optimization to be effective and
- correct.<p>
-
- <li><p>Files that contain parametric classes should follow this style:
- <pre>
- #ifndef FOO_T_H
- #define FOO_T_H
-
- #include "ace/ACE.h"
- #if !defined (ACE_LACKS_PRAGMA_ONCE)
- # pragma once
- #endif /* ACE_LACKS_PRAGMA_ONCE */
-
- // Put your template declarations here...
-
- #if defined (__ACE_INLINE__)
- #include "Foo_T.i"
- #endif /* __ACE_INLINE__ */
-
- #if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
- #include "Foo_T.cpp"
- #endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
- #if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
- #pragma implementation "Foo_T.cpp"
- #endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
- #endif /* FOO_T_H */
-</pre></p>
- <p>
- Notice that some compilers need to see the code of the template,
- hence the <code>.cpp</code> file must be included from the
- header file.
- </p>
- <p>
- To avoid multiple inclusions of the <code>.cpp</code> file it
- should also be protected as in:
- <pre>
- #ifndef FOO_T_C
- #define FOO_T_C
-
- #include "Foo_T.h"
- #if !defined (ACE_LACKS_PRAGMA_ONCE)
- # pragma once
- #endif /* ACE_LACKS_PRAGMA_ONCE */
-
- #if !defined (__ACE_INLINE__)
- #include "ace/Foo_T.i"
- #endif /* __ACE_INLINE__ */
-
- ACE_RCSID(lib, Foo_T, "$<!-- -->Id$")
-
- // put your template code here
-
- #endif /* FOO_T_H */
-</pre></p>
- <p>Finally, you may want to include the template header file from a
- non-template header file (check
- <code>$ACE_ROOT/ace/Synch.h</code>); in such a case the template
- header should be included <strong>after</strong> the inline
- function definitions, as in:</p>
- <p><pre>
- #ifndef FOO_H
- #define FOO_H
-
- #include "ace/ACE.h"
- #if !defined (ACE_LACKS_PRAGMA_ONCE)
- # pragma once
- #endif /* ACE_LACKS_PRAGMA_ONCE */
-
- // Put your non-template declarations here...
-
- #if defined (__ACE_INLINE__)
- #include "Foo.i"
- #endif /* __ACE_INLINE__ */
-
- #include "Foo_T.h"
-
- #endif /* FOO_H */
-</pre></p></li>
-
- <li>Avoid <code>#include &lt;math.h&gt;</code> if at all possible.
- The <code>/usr/include/math.h</code> on SunOS 5.5.1 through 5.7
- defines a struct name <strong>exception</strong>, which complicates
- use of exceptions.<p>
-
- <li>On a <code>.cpp</code> file always include the corresponding
- header file <em>first</em>, like this:<p>
-<pre>
- // This is Foo.cpp
-
- #include "Foo.h"
- #include "tao/Bar.h"
- #include "ace/Baz.h"
-
- // Here comes the Foo.cpp code....
-</pre><p>
-
- In this way we are sure that the header file is self-contained
- and can be safely included from some place else.
-
- <li>In the TAO library <strong>never</strong> include
- <code>&lt;corba.h&gt</code>, this file should only be included
- by the user and introduces cyclic dependencies in the library
- that we must avoid.<p>
-
- <li>Never include a header file when a forward reference will do,
- remember that templates can be forward referenced too.
- Consult your favorite C++ book to find out when you must include
- the full class definition.<p>
- </ul>
-
- <li><strong>C++ Syntax and Constructs</strong><p>
- <ul>
- <li><strong><code>for</code></strong> loops should look like:
- <pre>
- for (u_int i = 0; i &lt; count; ++i)
- ++total;
- </pre>
- Though, I prefer to always wrap the body of the loop in braces,
- to avoid surprises when other code or debugging statements are
- added, and to maintain sanity when the body consists of a macro,
- such as an ACE_ASSERT without a trailing semicolon:
- <pre>
- for (u_int i = 0; i &lt; count; ++i)
- {
- ACE_ASSERT (++total &lt; UINT_MAX;)
- }
- </pre><p>
-
- Similarly, <strong><code>if</code></strong> statements should have
- a space after the ``<strong>if</strong>'', and no spaces just after
- the opening parenthesis and just before the closing parenthesis.<p>
-
- <li>If a loop index is used after the body of the loop, it
- <strong>must</strong> be declared before the loop. For example,
-
- <pre>
- size_t i = 0;
- for (size_t j = 0; file_name [j] != '\0'; ++i, ++j)
- {
- if (file_name [j] == '\\' && file_name [j + 1] == '\\')
- ++j;
-
- file_name [i] = file_name [j];
- }
-
- // Terminate this string.
- file_name [i] = '\0';
- </pre><p>
-
- <li>Prefix operators are sometimes more efficient than postfix
- operators. Therefore, they are preferred over their postfix
- counterparts where the expression value is not used.<p>
-
- Therefore, use this idiom for iterators, with prefix operator
- on the loop index:
- <pre>
- ACE_Ordered_MultiSet&lt;int&gt; set;
- ACE_Ordered_MultiSet_Iterator&lt;int&gt; iter(set);
-
- for (i = -10; i &lt; 10; ++i)
- set.insert (2 * i + 1);
-
- </pre>
- rather than the postfix operator:
- <pre>
- for (i = -10; i &lt; 10; i++)
- set.insert (2 * i + 1);
- </pre><p>
-
- <li>When a class provides operator==, it must also provide
- operator!=. Also, both these operators must be const.
-
- <li>Avoid unnecessary parenthesis. We're not writing Lisp :-)<p>
-
- <li>Put inline member functions in a <strong><code>.i</code></strong>
- file. That file is conditionally included by both the
- <strong><code>.h</code></strong> file, for example:<p>
-
- <pre>
- class ACE_Export ACE_High_Res_Timer
- {
- [...]
- };
-
- #if defined (__ACE_INLINE__)
- #include "ace/High_Res_Timer.i"
- #endif /* __ACE_INLINE__ */
- </pre><p>
-
- and <strong><code>.cpp</code></strong> file:<p>
-
- <pre>
- #define ACE_BUILD_DLL
- #include "ace/High_Res_Timer.h"
-
- #if !defined (__ACE_INLINE__)
- #include "ace/High_Res_Timer.i"
- #endif /* __ACE_INLINE__ */
-
- ACE_ALLOC_HOOK_DEFINE(ACE_High_Res_Timer)
- </pre><p>
-
- <strong>NOTE:</strong> It is very important to ensure than an
- inline function will not be used before its definition is seen.
- Therefore, the inline functions in the .i file should be arranged
- properly. Some compilers, such as <code>g++</code> with the
- <code>-Wall</code> option, will issue warnings for violations.<p>
-
- <li>Some inlining heuristics:<p>
- <ul>
- <li>One liners should almost always be inline, as in:
-<pre>
-ACE_INLINE
-Foo::bar ()
-{
- this-&gt;baz();
-}
-</pre><p>
-
- <li>The notable exception is virtual functions, which should never be
- inlined.<p>
-
- <li>Big (more than 10 lines) and complex function (more than one if ()
- statement, or a switch, or a loop) should not be inlined.<p>
-
- <li>Medium sized stuff depends on how performance critical it is.
- If you know that it's in the critical path, then make it inline.<p>
- </ul>
-
- <li><code>ACE_Export</code> must be inserted between the
- <code>class</code> keyword and class name for all classes that
- are exported from libraries, as shown in the example above.
- <strong>However</strong>, do <strong>not</strong> use
- <code>ACE_Export</code> for template classes!<p>
-
- <li>Mutators and accessors should be of this form:<p>
-
- <pre>
- void object_addr (const ACE_INET_Addr &);
- // Sets &lt;object_addr_&gt; cache from &lt;host&gt; and &lt;port&gt;.
-
- const ACE_INET_Addr &object_addr const (void);
- // Returns the &lt;ACE_INET_Addr&gt; for this profile.
- </pre><p>
-
- instead of the ``set_'' and ``get_'' form.<p>
-
- <li>Never use <strong><code>delete</code></strong> to deallocate
- memory that was allocated with <strong><code>malloc</code></strong>.
- Similarly, never associate <strong><code>free</code></strong> with
- <strong><code>new</code></strong>.
- <strong><code>ACE_NEW</code></strong> or
- <strong><code>ACE_NEW_RETURN</code></strong> should be used to
- allocate memory, and <strong><code>delete</code></strong> should
- be used to deallocate it. And be careful to use the correct form,
- <strong><code>delete</code></strong> or
- <strong><code>delete []</code></strong> to correspond to the
- allocation.<p>
-
- <li>Don't check for a pointer being 0 before deleting it. It's
- always safe to delete a 0 pointer. If the pointer is visible
- outside the local scope, it's often a good idea to 0 it
- _after_ deleting it. Note, the same argument applies to
- free().<p>
-
- <li>Always use <strong><code>ACE_NEW</code></strong> or
- <strong><code>ACE_NEW_RETURN</code></strong> to allocate memory,
- because they check for successful allocation and set errno
- appropriately if it fails.<p>
-
- <li>Never compare or assign a pointer value with <strong>NULL</strong>;
- use <strong>0</strong> instead. The language allows any pointer to
- be compared or assigned with <strong>0</strong>. The definition
- of <strong>NULL</strong> is implementation dependent, so it is
- difficult to use portably without casting.<p>
-
- <li>Never use TRUE, true, or anything else other than 1 to indicate
- true. Never use FALSE, false, or anything else other than 0 to
- indicate false.<p>
-
- <li>Never cast a pointer to or from an <strong><code>int</code></strong>.
- On all currently supported ACE platforms, it is safe to cast
- a pointer to or from a <strong><code>long</code></strong>.<p>
-
- <li>Be very careful when selecting an integer type that must be a
- certain size, <em>e.g.</em>, 4 bytes. <strong>long</strong> is
- not 4 bytes on all platforms; it is 8 bytes on many 64-bit
- machines. ACE_UINT32 is always 4 bytes, and ACE_UINT64 is
- always 8 bytes.<p>
-
- <li>If a class has any virtual functions, and its destructor is
- declared explicitly in the class, then the destructor should
- <strong>always</strong> be virtual as well. And to support
- compiler activities such as generation of virtual tables and,
- in some cases, template instantiation, the virtual destructor
- should <strong>not be inline</strong>. (Actually, any non-pure
- virtual function could be made non-inline for this purpose. But,
- for convenience, if its performance is not critical, it is usually
- easiest just to make the virtual destructor non-inline.)<p>
-
-
- <li><a name="ACE_Time_Value example">Avoid default arguments</a>
- unless there's a good reason. For an example of how they got
- us into a jam is:
- <pre>
- ACE_Time_Value (long sec, long usec = 0);
- </pre>
-
- So, <code>ACE_Time_Value (2.5)</code> has the unfortunate
- effect of coercing the 2.5 to a long with value 2. That's
- probably not what the programmer intended, and many compilers
- don't warn about it.<p>
-
- A nice fix would be to add an <code>ACE_Time_Value (double)</code>
- constructor. But, that would cause ambiguous overloading
- due to the default value for the second argument of
- <code>ACE_Time_Value (long sec, long usec = 0)</code>.
- We're stuck with <code>ACE_Time_Value</code>, but now we
- know that it's easy to avoid.<p>
-
- <li>Constructor initializers must appear in the same order as
- the data members are declared in the class header. This avoids
- subtle errors, because initialization takes place in the order
- of member declaration.<p>
-
- <li>Initialization is usually cleaner than assignment, especially
- in a conditional. So, instead of writing code like this:
-
- <pre>
- ssize_t n_bytes;
-
- // Send multicast of one byte, enough to wake up server.
- if ((n_bytes = multicast.send ((char *) &reply_port,
- sizeof reply_port)) == -1)
- </pre>
-
- Write it like this:
-
- <pre>
- ssize_t n_bytes = multicast.send ((char *) &reply_port,
- sizeof reply_port)
-
- // Send multicast of one byte, enough to wake up server.
- if (n_bytes == -1)
- </pre><p>
-
- But, beware if the initialization is of a static variable.
- A static variable is only initialized the first time its
- declaration is seen. Of course, we should avoid using
- static variables at all.<p>
-
- <li>It is usually clearer to write conditionals that have
- both branches without a negated condition. For example,<p>
-
- <pre>
- if (test)
- {
- // true branch
- }
- else
- {
- // false branch
- }
- </pre><p>
-
- is preferred over:<p>
-
- <pre>
- if (! test)
- {
- // false test branch
- }
- else
- {
- // true test branch
- }
- </pre><p>
-
- <li>If a cast is necessary, avoid use of function-style casts,
- <em>e.g.</em>, <code>int (foo)</code>. Instead, use
- one of the ACE cast macros:
-
- <pre>
- return ACE_static_cast(size_t, this-&gt;count_) &gt; that-&gt;size_;
- </pre><p>
-
- The general usage guidelines for the four styles of casts are:<p>
- <ul>
- <li><strong>ACE_const_cast</strong>: use to cast away
- constness, or volatile-ness.<p>
- <li><strong>ACE_static_cast</strong>: use to cast between
- compatible types, such as downcasting a pointer or narrowing
- an integer.<p>
- <li><strong>ACE_reinterpret_cast</strong>: use only when
- ACE_static_cast is not suitable.<p>
- <li><strong>ACE_dynamic_cast</strong>: avoid, unless you really
- want to type check at run-time.<p>
- </ul>
-
- <li>In general, if instances of a class should not be copied,
- then a private copy constructor and assignment operator should
- be declared for the class, but not implemented. For example:
-
- <pre>
- // Disallow copying by not implementing the following . . .
- ACE_Object_Manager (const ACE_Object_Manager &);
- ACE_Object_Manager &operator= (const ACE_Object_Manager &);
- </pre><p>
-
- If the class is a template class, then the
- <code>ACE_UNIMPLEMENTED_FUNC</code> macro should be used:
-
- <pre>
- // = Disallow copying...
- ACE_UNIMPLEMENTED_FUNC (ACE_TSS (const ACE_TSS&lt;TYPE&gt; &))
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_TSS&lt;TYPE&gt; &))
- </pre><p>
-
- <code>ACE_UNIMPLEMENTED_FUNC</code> can be used with non-template
- classes as well. Though for consistency and maximum safety, it
- should be avoided for non-template classes.<p>
-
- <li>Never use <code>bool</code>, <code>BOOL</code>, or similar
- types. (CORBA::Boolean is acceptable). Use <code>int</code>
- or <code>u_int</code> instead for boolean types.<p>
-
- <li>Functions should always return -1 to indicate failure, and
- 0 or greater to indicate success.<p>
-
- <li>Separate the code of your templates from the code for
- non-parametric classes: some compilers get confused when
- template and non-template code is mixed in the same file.<p>
-
- <li>It's a good idea to specify the include path (with <code>-I</code>)
- to include any directory which contains files with template
- definitions. The Compaq Tru64 cxx <code>-ptv</code> compiler option
- may help diagnose missing template instantiation problems.<p>
-
- <li>When referring to member variables and functions, use
- <code>this-&gt;</code><em>member</em>. This makes it clear to the
- reader that a class member is being used. It also makes it crystal
- clear to the compiler which variable/function you mean in cases
- where it might make a difference.
- </ul>
-
- <li><strong>I/O</strong><p>
- <ul>
- <li>Use <strong><code>ACE_DEBUG</code></strong> for printouts,
- and <strong><code>ACE_OS::fprintf ()</code></strong> for
- file I/O. Avoid using iostreams because of implementation
- differences across platforms.<p>
- <li>After attempting to open an existing file, always check for success.
- Take appropriate action if the open failed.<p>
- <li>Notice that <strong><code>ACE_DEBUG</code></strong> and
- <strong><code>ACE_ERROR</code></strong> don't support
- <code>%ld</code> of any other multicharacter format.<p>
- </ul>
-
- <li><strong>WCHAR conformity</strong><p>
-
- <ul>
- <li>For ACE, use ACE_TCHAR instead of char for strings and ACE_TEXT ()
- around string literals. Exceptions are char arrays used for data
- and strings that need to remain as 1 byte characters.
-
- <li>If you have a char string that needs to be converted to ACE_TCHAR,
- use the ACE_TEXT_CHAR_TO_TCHAR () macro. If you have a ACE_TCHAR
- string that needs to be converted to a char string, use the
- ACE_TEXT_ALWAYS_CHAR () macro
-
- <li>Do not use the Win32 TCHAR macros. The wide character-ness of ACE
- is separate from UNICODE and _UNICODE.
-
- <li>For TAO, don't use ACE_TCHAR or ACE_TEXT. The CORBA specification
- defines APIs as using char. So most of the time there is no need
- to use wide characters.
- </ul><P>
-
- <li><strong>Exceptions</strong><p>
-
- <ul>
- <li>There are many ways of throwing and catching exceptions. The
- code below gives several examples. Note that each method has
- different semantics and costs. Whenever possible, use the
- first approach.<p>
-
- <pre>
- #include "iostream.h"
-
- class exe_foo
- {
- public:
- exe_foo (int data) : data_ (data)
- { cerr &lt;&lt; "constructor of exception called" &lt;&lt; endl; }
- ~exe_foo ()
- { cerr &lt;&lt; "destructor of exception called" &lt;&lt; endl; }
- exe_foo (const exe_foo& foo) : data_ (foo.data_)
- { cerr &lt;&lt; "copy constructor of exception called"
- &lt;&lt; endl; }
- int data_;
- };
-
-
- void
- good (int a)
- {
- throw exe_foo (a);
- };
-
- void
- bad (int a)
- {
- exe_foo foo (a);
- throw foo;
- };
-
- int main ()
- {
- cout &lt;&lt; endl &lt;&lt; "First exception" &lt;&lt; endl
- &lt;&lt; endl;
- try
- {
- good (0);
- }
- catch (exe_foo &foo)
- {
- cerr &lt;&lt; "exception caught: " &lt;&lt; foo.data_
- &lt;&lt; endl;
- }
-
- cout &lt;&lt; endl &lt;&lt; "Second exception" &lt;&lt; endl
- &lt;&lt; endl;
- try
- {
- good (0);
- }
- catch (exe_foo foo)
- {
- cerr &lt;&lt; "exception caught: " &lt;&lt; foo.data_
- &lt;&lt; endl;
- }
-
- cout &lt;&lt; endl &lt;&lt; "Third exception" &lt;&lt; endl
- &lt;&lt; endl;
- try
- {
- bad (1);
- }
- catch (exe_foo &foo)
- {
- cerr &lt;&lt; "exception caught: " &lt;&lt; foo.data_
- &lt;&lt; endl;
- }
-
- cout &lt;&lt; endl &lt;&lt; "Fourth exception" &lt;&lt; endl
- &lt;&lt; endl;
- try
- {
- bad (1);
- }
- catch (exe_foo foo)
- {
- cerr &lt;&lt; "exception caught: " &lt;&lt; foo.data_
- &lt;&lt; endl;
- }
-
- return 0;
- }
- </pre>
-
- Output is: <p>
-
- <pre>
- First exception
-
- constructor of exception called
- exception caught: 0
- destructor of exception called
-
- Second exception
-
- constructor of exception called
- copy constructor of exception called
- exception caught: 0
- destructor of exception called
- destructor of exception called
-
- Third exception
-
- constructor of exception called
- copy constructor of exception called
- destructor of exception called
- exception caught: 1
- destructor of exception called
-
- Fourth exception
-
- constructor of exception called
- copy constructor of exception called
- destructor of exception called
- copy constructor of exception called
- exception caught: 1
- destructor of exception called
- destructor of exception called
-
- </pre>
-
- </ul><p>
-
- <li><strong>Compilation</strong><p>
- <ul>
- <li>Whenever you add a new test or example to ACE or TAO, make
- sure that you modify the Makefile or project file in the
- parent directory. This will make sure that your code gets
- compiled on a regular basis. In some cases, this also applies
- to MSVC project files.<p>
- </ul><p>
-</ul>
-
-
-<hr>
-<h3><a href="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">ACE</a>
- Usage Guidelines</h3>
-<ul>
- <li>Always use <strong><code>ACE_OS</code></strong> (static)
- member functions instead of bare OS system calls.<p>
-
- <li>As a general rule, the only functions that should go into the
- <strong><code>ACE_OS</code></strong> class are ones that have
- direct equivalents on some OS platform. Functions that are
- extensions should go in the <strong><code>ACE</code></strong> class.<p>
-
- <li>Use the <strong><code>ACE_SYNCH_MUTEX</code></strong> macro,
- instead of using one of the specific mutexes, such as
- <strong><code>ACE_Thread_Mutex</code></strong>. This provides
- portability between threaded and non-threaded platforms.<p>
-
- <li>Avoid creating a static instance of user-defined (class) type.
- Instead, either create it as an
- <strong><code>ACE_Singleton</code></strong>,
- <strong><code>ACE_TSS_Singleton</code></strong>, or as an
- <strong><code>ACE_Cleanup</code></strong> object. See the
- <strong>ACE</strong>
- <a href="../ace/Singleton.h"><code>Singleton.h</code></a>,
- <a href="../ace/Object_Manager.h"><code>Object_Manager.h</code></a>, and
- <a href="../ace/Managed_Object.h"><code>Managed_Object.h</code></a>
- header files for more information.<p>
-
- Static instances of built-in types, such as
- <strong><code>int</code></strong> or any pointer type, are fine.<p>
-
- Construction of static instance of a user-defined type should
- <em>never</em> spawn threads. Because order of construction of
- statics across files is not defined by the language, it is usually
- assumed that only one thread exists during static construction.
- This allows statics suchs as locks to be safely created. We do not
- want to violate this assumption.<p>
-
- <li>Do not use run-time type identification (RTTI) directly since some platforms
- do not support it. Instead, use the ACE macros, e.g.,
- <CODE>ACE_static_cast()</CODE>, <CODE>ACE_dynamic_cast()</CODE>, etc.<p>
-
- <li>Do not use C++ exception handling directly. Some platforms do
- not support it. And, it can impose an execution speed penalty.
- Instead use the TAO/ACE try/catch macros.<p>
-
- <li>Because ACE does not use exception handling, dealing with
- failures requires a bit of care. This is especially true
- in constructors. Consider the following approach:
-
- <pre>
- ACE_NEW_RETURN (this-&gt;name_space_, LOCAL_NAME_SPACE, -1);
-
- if (ACE_LOG_MSG-&gt;op_status () != 0)
- ....
- </pre>
-
- This snip of code is from
- <a href="../ace/Naming_Context.cpp"><code>ACE_Naming_Context</code></a>.
- All failed constructors in ACE (should) call ACE_ERROR. This sets
- the thread-specific <strong>op_status</strong>, which can be checked
- by the caller. This mechanism allows the caller to check for a failed
- constructor without the requiring the constructor to throw
- exceptions.<p>
-
- <LI>Another consequence of ACE's avoidance of exception handling is
- that you should use <CODE>open()</CODE> methods on classes that
- perform initializations that can fail. This is because <CODE>open()</CODE>
- returns an error code that's easily checked by the caller,
- rather than relying on constructor and thread-specific status
- values. <P>
-
- <li>Avoid using the C++ Standard Template Library (STL) in our
- applications. Some platforms do not support it yet.<p>
-
- <li>Be <em>very</em> careful with <code>ACE_ASSERT</code>. It
- must only be used to check values; it may never be used to
- wrap a function call, or contain any other side effect. That's
- because the statement will disappear when ACE_NDEBUG is enabled.
- For example, this code is BAD:
- <pre>
- ACE_ASSERT (this-&gt;next (retv) != 0); // BAD CODE!
- </pre>
-
- Instead, the above should be coded this way:
-
- <pre>
- int result = this-&gt;next (retv);
- ACE_ASSERT (result != 0);
- ACE_UNUSED_ARG (result);
- </pre><p>
-
- <li>Never put side effects in <code>ACE_DEBUG</code> code:
- <pre>
- ACE_DEBUG ((LM_DEBUG,
- "handling signal: %d iterations left\n",
- --this-&gt;iterations_)); // BAD CODE!
- </pre>
-
- Note that this won't work correctly if <code>ACE_NDEBUG</code> is
- defined, for the same reason that having side-effects in
- <code>ACE_ASSERT</code>s won't work either, <em>i.e.</em>, because
- the code is removed.<p>
-
- <li>Be <strong>very</strong> careful with the code that you put
- in a signal handler. On Solaris, the man pages document systems
- calls as being Async-Signal-Safe if they can be called from signal
- handlers. In general, it's best to just set a flag in a signal
- handler and take appropriate action elsewhere. It's also best
- to avoid using signals, especially asynchronous signals.<p>
-
- <li>Immediately after opening a temporary file, unlink it. For
- example:
- <pre><code>
- ACE_HANDLE h = open the file (filename);
-
- ACE_OS::unlink (filename);
- </code></pre><p>
-
- This avoids leaving the temporary file even if the program crashes.<p>
-
- <li>Always use <code>$(RM)</code> instead of <code>rm</code> or
- <code>rm -f</code> in Makefiles.<p>
-
- <li>Be sure to specify the <code>THR_BOUND</code> thread creation
- flag for time-critical threads. This ensures that the thread competes
- for resources globally on Solaris. It is harmless on other platforms.<p>
-</ul>
-
-
-<hr>
-<h3><a href="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">Other
- ACE</a> and
- <a href="http://www.cs.wustl.edu/~schmidt/TAO-overview.html">TAO</a>
- Guidelines</h3>
-<ul>
- <li>When enhancing, updating, or fixing ACE or TAO, always:<p>
- <ol>
- <li>Test your change on at least one platform. All changes
- <strong>must</strong> be tested with egcs before commiting.
- That means you may need to test on at least two platforms.<p>
- <li>An an entry to the appropriate ChangeLog. TAO and some
- ACE subdirectories, such as <a href="../ASNMP">ASNMP</a>,
- <a href="../apps/JAWS">JAWS</a>, and
- <a href="../apps/gperf">gperf,</a> have their
- own ChangeLogs. If you don't use one of those, use the
- <a href="../ChangeLog">ChangeLog</a> in the top-level
- <a href="..">ACE_wrappers</a> directory.<p>
- <li>Commit your change using a message of this form:<p>
-<code>
-ChangeLogTag: Thu Jul 22 09:55:10 1999 David L. Levine
- &lt;levine@cs.wustl.edu&gt;
-</code><p>
- <li>If the change is in response to a request by someone else:
- <ol>
- <li>Make sure that person is acknowledged in
- <a href="../THANKS">ACE_wrappers/THANKS</a>, and<p>
- <li>Respond to that person.<p>
- </ol>
- </ol>
-
- <li>Never add copyrighted, confidential, or otherwise restricted
- code to the ACE or TAO distributions without written permission
- from the owner.<p>
-</ul>
-
-
-<hr>
-<h3><a href="http://www.cs.wustl.edu/~levine/CVS.html">CVS</a>
- Usage Guidelines</h3>
-<ul>
- <li>Always make sure that a change builds and executes correctly
- on at least one platform before checking it into the CVS repository.
- All changes <strong>must</strong> be tested with egcs before commiting.
- That means you may need to test on at least two platforms.<p>
-</ul>
-
-
-<hr>
-<h3>Script Guidelines</h3>
-<ul>
- <li>In general, it's best to write scripts in Perl. It's
- OK to use Bourne shell. Never, never, never use csh, ksh,
- bash, or any other kind of shell.<p>
-
- <li>Follow the Perl style guide guide as closely as
- possible. <code>man perlstyle</code> to view it.
-
- <li>Don't specify a hard-coded path to Perl itself. Use
- the following code at the top of the script to pick up
- perl from the users <code>PATH</code>:<br>
- <pre>
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
- </pre><p>
-
- <li>Never, never, never start the first line of a script
- with ``#'', unless the first line is ``#! /bin/sh''.
- With just ``#'', t/csh users will spawn a new shell.
- That will cause their <code>.[t]cshrc</code> to be
- processed, possibly clobbering a necessary part of
- their environment.<p>
-
- <li>If your Perl script relies on features only available
- in newer versions of Perl, include the a statement similar
- to the following:<br>
- <pre>
- require 5.003;
- </pre>
-
- <li>Don't depend on <strong><code>.</code></strong> being
- in the user's path. If the script spawns another executable
- that is supposed to be in the current directory, be sure the
- prefix its filename with <strong><code>.</code></strong>.<p>
-</ul>
-
-
-<hr>
-<h3>Software Engineering Guidelines</h3>
-<ul>
- <li><strong>Advise</strong>: Keep other developers informed of problems
- and progress.<p>
-
- <li><strong>Authorize</strong>: We have contractual obligations to not
- unilaterally change interfaces. If you need to change or remove an
- interface, get an OK.<p>
-
- <li><strong>Minimize</strong> risk: Test all changes. Solicit review of
- changes.<p>
-
- <li><strong>Revise</strong> only when necessary: Every change has risk,
- so avoid making any change unless there is a good reason for it.<p>
-
- <li><strong>Normalize</strong>: Factor out commonality. For example,
- maintain a data value in only one place.<p>
-
- <li><strong>Synthesize</strong>: Build stubs and scaffolding early to
- simulate the complete system. Maintain a checked-in version of the
- system that cleanly builds and tests at all times.<p>
-
- <li><strong>Be available</strong>: Breaking compilation in one
- platform or another should be avoided (see above),
- but it is bound to happen when so many platforms are in use.
- Be available after making a change,
- if you won't be available for at least 48 hours after the change
- is made then don't make it!<p>
-</ul>
-
-
-<hr>
-<h3><a href="http://www.cs.wustl.edu/~doc/PACE/">PACE</a>
- Software Development Guidelines</h3>
-
-PACE code should be developed following the ACE guidelines
-above, with these exceptions:
-<ul>
- <li>An <code>if</code> statement that has just one statement must
- be written with the braces:
-
-<pre>
-if (condition)
- {
- statement;
- }
-</pre>
-
-This avoids bugs caused by subsequent insertion of code:
-
-<pre>
- if (condition)
- ACE_OS::fprintf (stderr, "I need to see what's going on here\n");
- statement; /* Ooops! This statement will always be executed!!!! */
-</pre>
-</ul>
-
-
-<hr>
-<h3><a href="http://www.cs.wustl.edu/~schmidt/rules.html">ACE
- Design Rules</a></h3>
-
-
-<hr><p>
- <font size=-1>
- Last modified <!--#echo var="LAST_MODIFIED" -->.<p>
- </font>
-
-Back to <A HREF="index.html">ACE Documentation Home</A>.
-
-</body>
-</html>
diff --git a/docs/ACE-inheritance.pdf.gz b/docs/ACE-inheritance.pdf.gz
deleted file mode 100644
index e47b122e39d..00000000000
--- a/docs/ACE-inheritance.pdf.gz
+++ /dev/null
Binary files differ
diff --git a/docs/ACE-inheritance.ps.gz b/docs/ACE-inheritance.ps.gz
deleted file mode 100644
index 3aa19f4b62f..00000000000
--- a/docs/ACE-inheritance.ps.gz
+++ /dev/null
Binary files differ
diff --git a/docs/ACE-lessons.html b/docs/ACE-lessons.html
deleted file mode 100644
index b9cca0bd7cf..00000000000
--- a/docs/ACE-lessons.html
+++ /dev/null
@@ -1,270 +0,0 @@
-<HTML>
-
-<!-- $Id$ -->
-<HEAD>
-<TITLE>Lessons Learned Building Reusable OO Telecommunication Software</TITLE>
-</HEAD>
-
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#ffffff">
-
-<HR>
-<H3>Lessons Learned Building Reusable OO Telecommunication Software Frameworks</H3>
-
-<DT>Douglas C. Schmidt
-<DT>Department of Computer Science
-<DT>Washington University, St. Louis
-<DT><A HREF="http://www.cs.wustl.edu/~schmidt/">http://www.cs.wustl.edu/~schmidt/</A>
-<DT><A HREF="mailto:schmidt@cs.wustl.edu">schmidt@cs.wustl.edu</A>
-
-<P>The following article appeared in the Lucent Bell Labs ``Multiuse
-Express'' magazine, Vol. 4, No. 6, December, 1996. <P>
-
-<P><HR><P>
-
-<H3>The Distributed Software Crisis</H3>
-
-Developing complex software systems is expensive and error-prone.
-Object-oriented (OO) programming languages [Stroustrup:91,Gosling:96],
-components [Box:97], and frameworks [Lewis:95] are heavily touted
-technologies for reducing software cost and improving software
-quality. When stripped of their hype, the primary benefits of OO stem
-from the emphasis on <EM>modularity</EM> and <EM>extensibility</EM>,
-which encapsulate volatile implementation details behind stable
-interfaces and enhance software reuse. <P>
-
-Developers in certain well-traveled domains have successfully applied
-OO techniques and tools for years. For instance, the Microsoft MFC
-GUI framework and OCX components are <EM>de facto</EM> industry
-standards for creating graphical business applications on PC
-platforms. Although these tools have their limitations, they
-demonstrate the productivity benefits of reusing common frameworks and
-components.<P>
-
-Software developers in more complex domains like telecom have
-traditionally lacked standard off-the-shelf middleware components. As
-a result, telecom developers largely build, validate, and maintain
-software systems from scratch. In an era of deregulation and stiff
-global competition, this in-house development process is becoming
-prohibitively costly and time consuming. Across the industry, this
-situation has produced a ``distributed software crisis,'' where
-computing hardware and networks get smaller, faster, and cheaper; yet
-telecom software gets larger, slower, and more expensive to develop
-and maintain. <P>
-
-The challenges of building distributed software stem from
-<EM>inherent</EM> and <EM>accidental</EM> complexities [Brooks:87]
-associated with telecom systems: <P>
-
-<UL>
-<LI> Inherent complexity stems from the fundamental challenges of
- developing telecom software. Chief among these is detecting and
- recovering from network and host failures, minimizing the impact of
- communication latency, and determining an optimal partitioning of
- service components and workload onto processing elements throughout
- a network. <P>
-
-<LI> Accidental complexity stems from limitations with tools and
- techniques used to develop telecom software. A common source of
- accidental complexity is the widespread use of algorithmic
- decomposition, which results in non-extensible and non-reusable
- software designs and implementations. <P>
-</UL>
-
-The lack of extensibility and reuse in-the-large is particularly
-problematic for complex distributed telecom software. Extensibility
-is essential to ensure timely modification and enhancement of services
-and features. Reuse is essential to leverage the domain knowledge of
-expert developers to avoid re-developing and re-validating common
-solutions to recurring requirements and software challenges. <P>
-
-While developing high quality reusable software is hard enough,
-developing high quality extensible and reusable telecom software is
-even harder. Not surprisingly, many companies attempting to build
-reusable middleware fail -- often with enormous loss of money, time,
-and marketshare. Those companies that do succeed, however, reap the
-benefits resulting from their ability to develop and deploy complex
-applications rapidly, rather than wrestling endlessly with
-infrastructure problems. Unfortunately, the skills required to
-successfully produce telecom middleware remain something of a "black
-art," often locked in the heads of expert developers. <P>
-
-<P><HR><P>
-
-<H3>Lessons Learned Building Reusable OO Communication Software Frameworks</H3>
-
-Over the past decade, I've worked with many companies (including
-Motorola Iridium, Ericsson, Siemens, Bellcore, Kodak, and McDonnell
-Douglas) building reusable OO communication software [Schmidt:96]. In
-these projects, we've applied a range of OO middleware tools including
-OMG <A HREF="http://www.cs.wustl.edu/~schmidt/corba.html">CORBA</A>
-(an emerging industry standard for distributed object computing) and
-the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</A>
-framework (a widely used C++ framework that implements many strategic
-and tactical design patterns for concurrent communication software).
-The following are lessons learned from developing and deploying
-reusable OO communication software components and frameworks in
-practice: <P>
-
-<UL>
-<LI> <B><EM> Successful reuse-in-the-large requires non-technical
-prerequisites -- </EM></B><P>
-
- Many political, economical, organizational, and psychological
- factors can impede successful reuse in telecom companies. I've
- found that reuse-in-the-large works best when (1) the marketplace is
- competitive (i.e., time-to-market is crucial, so leveraging existing
- software substantially reduces development effort), (2) the
- application domain is non-trivial (i.e., repeatedly developing
- complete solutions from scratch is too costly), and (3) the
- corporate culture is supportive of an effective reuse process (e.g.,
- developers are rewarded for taking the time to build robust reusable
- components). When these prerequisites <EM>don't</EM> apply, I've
- found that developers often fall victim to the "not-invented-here"
- syndrome and rebuild everything from scratch. <P>
-
-<LI> <B><EM> Iteration and incremental growth is essential </EM></B> -- <P>
-
- Expanding on the corporate culture theme, I've observed that it's
- crucial for software managers to openly support the fact that good
- components, frameworks, and software architectures take time to
- craft and hone. For reuse to succeed in-the-large, management must
- have the vision and resolve to support the incremental evolution of
- reusable software. In general, an 80% solution that can be evolved
- is often preferable to trying to achieve a 100% solution that never
- ships. Fred Brook's observation that ``Plan to throw the first one
- away, you will anyway'' [Brooks:75] applies as much today as it did
- 20 years ago. <P>
-
-<LI> <B><EM> Integrate infrastructure developers with application developers
-</EM></B> -- <P>
-
- Truly useful components and frameworks are derived from solving real
- problems, e.g., telecommunications, medical imaging, avionics, OLTP,
- etc. Therefore, a time honored way of producing reusable components
- is to generalize from working systems and applications. In
- particular, resist the temptation to create ``component teams'' that
- build reusable frameworks in isolation from application teams. I've
- learned the hard way that without intimate feedback from application
- developers, the software artifacts produced by a component team
- won't solve real problems and will not be reused. <P>
-
-<LI> <B><EM> Industry ``standards'' are not panaceas -- </EM></B> <P>
-
- Expecting emerging industry standards (like CORBA or TINA) to
- eliminate telecom software complexity today is very risky. For
- instance, although some CORBA ORB implementations are suited for
- certain telecom tasks (such as managing network elements), the
- semantics of higher level OMG services (such as the Common Object
- Services) are still too vague, under-specified, and non</EM></B>
- -interoperable. Although CORBA isn't yet suited to address certain
- demanding real-time performance and reliability requirements in the
- telecom domain, over the next 2 years we'll see CORBA-based products
- emerge that support such features [Schmidt:96].<P>
-
-<LI> <B><EM> Beware of simple(-minded) solutions to complex software problems
--- </EM></B> <P>
-
- Apply simple solutions to complex problems that sound too good to be
- true typically are... For example, translating code entirely from
- high-level specifications or using trendy OO design methodologies
- and programming languages is no guarantee of success. In my
- experience, there's simply no substitute for skilled software
- developers, which leads to the following final ``lesson learned.''
-<P>
-
-<LI> <B><EM> Respect and reward quality developers </EM></B> -- <P>
-
- Ultimately, reusable components are only as good as the people who
- build and use them. Developing robust, efficient, and reusable
- telecom middleware requires teams with a wide range of skills. We
- need expert analysts and designers who have mastered design
- patterns, software architectures, and communication protocols to
- alleviate the inherent and accidental complexities of telecom
- software. Moreover, we need expert programmers who can implement
- these patterns, architectures, and protocols in reusable frameworks
- and components. In my experience, it is exceptionally hard to find
- high quality software developers. Ironically, many telecom
- companies treat their developers as interchangeable, "unskilled
- labor" who can be replaced easily. I suspect that over time,
- companies who respect and reward their high quality software
- developers will increasingly outperform those who don't. <P>
-</OL>
-
-<P><HR><P>
-<H3>Concluding Remarks</H3>
-
-Developing reusable OO middleware components and frameworks is not a
-silver bullet. Software is inherently abstract, which makes it hard
-to engineer its quality and to manage its production. The good news,
-however, is that OO component and framework technologies are becoming
-mainstream. Developers and users are increasingly adopting and
-succeeding with object-oriented design and programming.<P>
-
-On the other hand, the bad news is that (1) existing OO components and
-frameworks are largely focused on only a few areas (e.g., GUIs) and
-(2) existing industry standards still lack the semantics, features,
-and interoperability to be truly effective throughout the telecom
-software domain. Too often, vendors use industry standards to sell
-proprietary software under the guise of open systems. Therefore, it's
-essential for telecom companies to work with standards organizations
-and middleware vendors to ensure the emerging specifications support
-true interoperability and define features that meet telecom software
-needs.<P>
-
-Finally, to support the standardization effort, it's crucial for us to
-capture and document the patterns that underlie the successful telecom
-software components and frameworks that do exist. Likewise, we need
-to reify these patterns to guide the creation of standard frameworks
-and components for the telecom domain. I'm optimistic that the next
-generation of OO frameworks and components will be a substantial
-improvement over those we've worked with in the past.<P>
-
-For more information on building reusable OO communication software
-frameworks with CORBA and ACE, see the following WWW URLs:<P>
-
-<A HREF="http://www.cs.wustl.edu/~schmidt/corba.html">http://www.cs.wustl.edu/~schmidt/corba.html</A><p>
-<A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">http://www.cs.wustl.edu/~schmidt/ACE.html.</A>
-
-<P><HR><P>
-<H3>References</H3>
-
-[Box:97] Don Box, "Understanding COM," Addison-Wesley,
- Reading, MA, 1997.<P>
-
-[Brooks:75] Frederick P. Brooks, "The Mythical Man-Month,"
- Addison-Wesley, Reading, MA, 1975.<P>
-
-[Brooks:87] Frederick P. Brooks, "No Silver Bullet: Essence and
- Accidents of Software Engineering," IEEE Computer, Volume
- 20, Number 4, April 1987, 10-19.<P>
-
-[Gosling:96] The Java Programming Language, Addison-Wesley,
- Reading, MA, 1996.<P>
-
-[Lewis:95], Ted Lewis et al., "Object Oriented Application
- Frameworks," IEEE Computer Society Press, 1995.<P>
-
-[OMG:95] Object Management Group, The Common Object Request Broker:
- Architecture and Specification 2.0, July, 1995.<P>
-
-[Schmidt:96] Douglas C. Schmidt, "A Family of Design Patterns for
- Application-Level Gateways," Theory and Practice of Object
- Systems, Wiley and Sons, 1996.<P>
-
-[Schmidt:97] Aniruddha Gokhale, Douglas C. Schmidt, Tim Harrison, and
- Guru Parulkar, "Towards Real-time CORBA," IEEE Communications
- Magazine, Volume 14, Number 2, February 1997.<P>
-
-[Stroustrup:91] Bjarne Stroustrup, The C++ Programming Language, 2nd
- Edition, Addison-Wesley, Reading, MA, 1991.<P>
-
-<P><HR><P>
-Back to <A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">
-ACE</A> home page.<BR>
-Back to <A HREF="index.html">ACE Documentation Home</A>.
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
diff --git a/docs/ACE-porting.html b/docs/ACE-porting.html
deleted file mode 100644
index e64bc25fc57..00000000000
--- a/docs/ACE-porting.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<!-- $Id$ -->
-
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Generator" CONTENT="Microsoft Word 97">
- <META NAME="Template" CONTENT="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html
-.dot">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (Win95; I) [Netscape]">
- <TITLE>Porting ACE and TAO to a New OS Platform</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#FF0000">
-
-<HR><P>
-<H3>Porting ACE and TAO to a New OS Platform</H3><P>
-
-The <A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</A>
-framework and the <A
-HREF="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</A> ORB have been
-ported to <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-versions-i.html">many OS
-platforms</A>. Porting ACE and TAO to new platforms is fairly easy.
-The following document describes the step-by-step process to use when
-porting the various <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">components
-and layers</A> in ACE to a new OS platform. Once ACE is ported, it is
-straightforward to port TAO, as well.<P>
-
-<hr align=left width="50%"><P>
-<H4>Create a <CODE>config.h</CODE> Header File for the Target OS Platform</H4>
-
-A <CODE>config-*.h</CODE> header file exists in <A
-HREF="../ace/">$ACE_ROOT/ace</A>
-for each platform to which ACE has been ported. This file contains
-the portability macros for each particular configuration of ACE. A
-complete description of the existent macros can be found in the <A
-HREF="../ace/README">$ACE_ROOT/ace/README</A>
-file. <P>
-
-Currently, you must edit this file by hand to port it to new OS
-platforms. It's a good idea to use the <CODE>config-*.h</CODE> files
-for platforms with similar characteristics as examples. Ultimately,
-we plan to <A HREF="http://www.cs.wustl.edu/~othman/aceconf">auto
-configure</A> these files. <P>
-
-<hr align=left width="50%"><P>
-<H4>Port the <CODE>ACE_OS</CODE> Class</H4>
-
-The <CODE>ACE_OS</CODE> class encapsulates most of variation between
-the different OS implementations, <EM>e.g.</EM>, UNIX, Win32, and
-various real-time operating systems. It is the core class of the ACE
-OS abstraction layer. Most work required to port ACE to a new OS
-platform resides in this class. There are <EM>many</EM> examples of
-how ACE has been ported to other operating systems in the
-<CODE>ACE_OS</CODE> class in the
-<CODE>$ACE_ROOT/ace/OS.{h,i,cpp}</CODE> files. <P>
-
-Optional features in pthreads are covered by <CODE>ACE_HAS_*</CODE>
-and/or <CODE>ACE_LACKS_*</CODE> macros, which are described in the <A
-HREF="../ace/README">$ACE_ROOT/ace/README</A>
-file. Particular platform features, such as DCE pthreads calls that
-end in <CODE>_np</CODE>, should be bracketed by platform defines
-rather than by inventing more <CODE>ACE_HAS_*</CODE> or
-<CODE>ACE_LACKS_*</CODE> definitions. <P>
-
-An important part of porting ACE to a new platform is to map the
-threading API correctly. Currently, ACE has support for the following
-thread APIs: <P>
-
-<UL>
-<LI> <B>UNIX International (UI) Threads</B>
- (<CODE>ACE_HAS_STHREADS</CODE>) - Solaris 2, UnixWare. <P>
-
-<LI> <B>POSIX Pthreads</B> (<CODE>ACE_HAS_PTHREADS</CODE>) - drafts 4
- [DCE], 6 [FSU], 7 [AIX], as well as the final standard (also
- called draft 10) [MIT, Linux, and Solaris]. <P>
-
-<LI> <B>Win32 Threads</B> (<CODE>ACE_HAS_WTHREADS</CODE>) - Windows
- NT, Windows '95/98, and Windows CE <P>
-<LI> <B>VxWorks Tasks</B> (<CODE>VXWORKS</CODE>) - VxWorks <P>
-</UL>
-
-If your OS platform does not support any of these threading packages,
-you must port the <CODE>ACE_OS::thr_*</CODE> functions. <P>
-
-<hr align=left width="50%"><P>
-<H4>Port the C++ Wrapper Components</H4>
-
-After porting the <CODE>ACE_OS</CODE> class, the next step is to port
-all of the ACE C++ wrapper components, such as sockets, threads,
-synchronization mechanisms. A full list of the categories and classes
-can be found in the <A
-HREF="ACE-categories.html">$ACE_ROOT/ACE-categories</a>
-file. It is easiest to concentrate on porting one category at the
-time. The ACE release contain a <A HREF="../tests/README">one-button
-test suite</A> in the <A HREF="../tests/">$ACE_ROOT/tests/</A>
-directory. These tests can be used to validate the correctness of the
-various ACE C++ wrappers as they are ported. <P>
-
-<hr align=left width="50%"><P>
-<H4>Port the Higher-level Framework Components of ACE</H4>
-
-Having ported (and tested) all the components of the ACE OS adaptation
-layer and C++ wrappers, you can proceed to port the higher level
-components of ACE, such as the Reactor, Service Configurator,
-Connector, Acceptor, and Streams frameworks. At this point, it should
-be relatively easy to port the rest of ACE because most of the
-platform-dependent code is localized in the lower layers of ACE. <P>
-
-<hr align=left width="50%"><P>
-<H4>Port TAO</H4>
-
-After porting and successfully testing all the ACE framework
-components, it also should be relatively easy to port and <A
-HREF="../TAO/TAO-INSTALL.html">install</A>
-TAO because all of its platform-dependent code is localized in ACE.
-Typically, the only problems that arise when porting TAO is bugs with
-C++ compilers. <P>
-
-<HR><P>
-<H3>C++ Features Required to Port ACE and TAO</H3>
-
-ACE and TAO have been ported to most C++ compilers. The following is
-a list of which C++ features a compiler must support in order to
-compile ACE and TAO:
-
-<UL>
-<LI> <B>Templates</B> -- The C++ compiler must support templates.
- However, it need not support template member functions nor must it
- support template traits. <P>
-
-<LI> <B>Multiple inheritance and dynamic binding</B> -- The C++
- compiler must support multiple inheritance and dynamic
- binding. <P>
-</UL>
-
-The following is a list of which C++ features that ACE and TAO can
-take advantage of if a compiler supports them:
-
-<UL>
-<LI> <B>Exceptions</B> -- The ACE library itself is ``exception
- neutral,'' <EM>i.e.,</EM> it does not catch or throw C++
- exceptions. However, you can use exceptions in code
- that uses ACE including throwing exceptions inside call back
- methods, as long as you provide the code to handle it.
- TAO can be configured to use C++ exceptions if ACE supports them,
- <EM>i.e.</EM>, if <CODE>ACE_HAS_EXCEPTIONS</CODE> is defined. <P>
-
-<LI> <B>RTTI and ANSI casts</B> -- If the OS platform supports RTTI
- and the new ANSI
- C++ casts, <EM>i.e.</EM>, <CODE>ACE_HAS_ANSI_CASTS</CODE> is
- enabled, then the various <CODE>ACE_*_cast</CODE> macros will
- utilize these casts. Otherwise, the macros will default to
- "C-style" casts. <P>
-
-<LI> <B>Namespaces</B> -- ACE does not utilize namespaces. However,
- TAO will automatically take advantage of namespaces if the C++
- compiler supports them, <EM>i.e.</EM>, if
- <CODE>ACE_HAS_BROKEN_NAMESPACES</CODE> is <EM>not</EM> enabled. <P>
-
-<LI> <B>STL</B> -- Unfortunately many of the platforms that ACE
- supports don't have an STL library. Moreover, different versions
- of STL behave differently. Therefore, ACE does not depends on
- STL and does not use it internally.
- If your target platform(s) support STL you should be able to
- use it with ACE and TAO without problems, though your C++
- compiler may have problems with it (this is beyond the scope
- of ACE, however). <P>
-
- If you are considering STL, you might consider
- <A HREF="http://www.stlport.org/">STLport</a>,
- which is a port of the SGI STL to numerous platforms that ACE
- and TAO also support. <P>
-</UL>
-
-<P><HR><P>
-
-Back to the <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-documentation.html">ACE
-documentation</A> page.<BR>
-Back to <A HREF="index.html">ACE Documentation Home</A>.
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
diff --git a/docs/ACE-subsets.html b/docs/ACE-subsets.html
deleted file mode 100644
index 27e56b8aaf0..00000000000
--- a/docs/ACE-subsets.html
+++ /dev/null
@@ -1,839 +0,0 @@
-<!-- $Id$ -->
-
-<html>
- <head>
- <title>ACE+TAO Subsetting</title>
- <link rev=made href="mailto:ace-users@cs.wustl.edu">
- </head>
-
-<body text = "#000000"
- link="#000fff"
- vlink="#ff0f0f"
- bgcolor="#ffffff">
-
-<hr><p>
-<H3>ACE+TAO Subsetting</H3>
-
-We are currently subsetting ACE+TAO to make them more flexible and to
-reduce their footprint for embedded systems. This document describes
-what we've done thus far, what we're planning to do next, and how to
-leverage our efforts to minimize the size of your ACE+TAO
-applications. <P>
-
-<HR><P>
-<font size=+2><strong>Contents</strong></font>
-<ol>
- <li><a href="#Motivation">Motivation for Splitting ACE into Multiple
- Libraries</a>
- <li><a href="#Configuration Management">Configuration Management</a>
- <li><a href="#Classes">Classes in Each ACE Library Subset</a>
- <li><a href="#ACE Library Size Breakdown">ACE Library Size Breakdown</a>
- <li><a href="#Building ACE Subsets">Building ACE Subsets</a>
- <li><a href="#ACE_OS Adaptation Layer">ACE_OS Adaptation Layer</a>
- <li><a href="#PACE">POSIX ACE (PACE)</a>
- <li><a href="#minimumTAO">Minimum TAO</a>
- <li><a href="#Status">ACE+TAO Subsetting Work in Progress</a>
-</ol><p>
-
-
-<hr><p>
-<h3><a name="Motivation">Motivation for Splitting ACE into Multiple
- Libraries</a></h3>
-
-This document describes how we are splitting ACE into multiple
-libraries, each of which will contain a smaller subset of the overall
-ACE functionality. The primary motivations for subsetting ACE are:
-
-<UL>
-<LI><EM>Principle of parsimony</EM> -- <EM>i.e.</EM>, developers
- should incur time/space overhead for components they use, rather
- than for all the components in the ACE framework. <P>
-
-<LI><EM>Simplify the learning curve</EM> -- <EM>i.e.</EM>, developers
- only need to learn how to program components that they actually
- use. <P>
-</UL>
-
-The main design goals of our approach are as follows: <P>
-
-<OL>
-<LI>Support the original libACE as before. Thus, for users who
-want to use the existing ACE library as is, there will be
-no changes, i.e., just link with <CODE>libACE</CODE> as usual. <P>
-
-<LI>Allow ACE (and TAO) programmers to use smaller subsets of the
-entire <CODE>libACE</CODE> library. These subsets will include the
-following libraries: <P>
-
-<DL>
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_OS</CODE> -- This library contains the OS adaptation
-layer and its supporting classes. All other ACE libraries will depend
-on <CODE>libACE_OS</CODE> and it will depend on <EM>no</EM> other ACE
-libraries. <P>
-
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_Utils</CODE> -- This library contains the various ACE
-container classes and other miscellaneous classes, such as Singleton,
-auto_ptr, timers, etc. This library will depend only on
-<CODE>libACE_OS</CODE>.<P>
-
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_Logging</CODE> -- This library contains the various ACE
-logging and tracing classes. This library will depend only on
-<CODE>libACE_OS</CODE>. <P>
-
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_Threads</CODE> -- This library contains the ACE
-thread/process management and synchronization classes. This library
-will depend only on <CODE>libACE_OS</CODE>. <P>
-
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_Demux</CODE> -- This library contains the ACE Reactor and
-Proactor classes. This library will depend on <CODE>libACE_OS</CODE>
-and <CODE>libACE_Thread</CODE>. <P>
-
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_Connection</CODE> -- This library contains the ACE
-Connection components, i.e., Acceptor, Connector, and Svc_Handler.
-This library will depend on <CODE>libACE_OS</CODE>,
-<CODE>libACE_Thread</CODE>, and <CODE>libACE_Demux</CODE>. <P>
-
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_Sockets</CODE> -- This library contains the ACE C++
-wrappers for sockets. This library will depend on
-<CODE>libACE_OS</CODE>. <P>
-
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_IPC</CODE> -- This library contains all the ACE C++
-wrappers for the other types of IPC and FILE I/O other than sockets.
-This library will depend on <CODE>libACE_OS</CODE> and
-<CODE>libACE_Sockets</CODE>. <P>
-
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_Svcconf</CODE> -- This library contains the ACE C++
-wrappers for the Service Configurator. This library will depend on
-<CODE>libACE_OS</CODE>, <CODE>libACE_Demux</CODE>,
-<CODE>libACE_Thread</CODE>, and <CODE>libACE_Sockets</CODE>. <P>
-
-<DT> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_Streams</CODE> -- This library contains the ACE Streams
-classes. This library will depend on <CODE>libACE_OS</CODE>,
-<CODE>libACE_Demux</CODE>, and <CODE>libACE_Thread</CODE>. <P>
-
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_Memory</CODE> -- This library contains the ACE C++
-wrappers for shared memory and memory-mapped files. This library will
-depend on <CODE>libACE_OS</CODE>.<P>
-
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_Token</CODE> -- This library contains the ACE C++
-wrappers for token support. This library is not needed by
-<a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a>.<p>
-
-<DT> <img alt="o"
-src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
-<CODE>libACE_Other</CODE> -- This library contains miscellaneous code,
-primarily including a CORBA interface and naming support. It is not
-actively supported, and is not needed by <a
-href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a>. Its
-functionality is included in TAO.<P>
-
-</DL>
-</OL>
-
-We are also planning to support the OMG's <A
-HREF="http://www.omg.org/cgi-bin/doc?orbos/98-08-04.pdf">Minimum
-CORBA</A> specification as part of a separate effort. Preliminary
-results of prototypes for Minimum CORBA we've integrate to TAO have
-been very promising, yielding a 40% reduction in ORB footprint. <P>
-
-Note that the ACE library subsets described above are intended as a
-guideline, <EM>not</EM> a complete specification. The actual
-partitioning of files in the final ACE library subsets may differ
-somewhat to improve footprint and simplify common use-cases. <P>
-
-<hr><p>
-<h3><a name="Configuration Management">Configuration Management</a></h3>
-
-Configuration management for the ACE library subsets described above
-will be organized as follows:
-
-<OL>
-<LI>A single source tree with a single "version" for the source
- tree.<P>
-
-<LI>Releases of libACE and its "subsets" will be atomic, <EM>i.e.</EM>,
- all or nothing.<P>
-</OL>
-
-
-<hr><p>
-<h3><a name="Classes">Classes in Each ACE Library Subset</a></h3>
-
-Below, we describe the classes in each ACE library subset.
-
-<H4>libACE_OS</H4>
-
-This library contains the OS adaptation layer and its supporting
-classes. The classes in this library should not depend on any other
-ACE library subsets. All of the other libraries will depend on this
-library. The following classes are included in this library.
-
-<PRE><CODE>
-config.h
-Basic_Types
-OS
-Sched_Params
-Handle_Set
-</code></pre>
-
-<H4>libACE_Utils</H4>
-
-This library contains the following ACE container classes and other
-miscellaneous classes.
-
-<PRE><CODE>
-ACE
-Active_Map_Manager
-Arg_Shifter
-ARGV
-Containers
-Dirent
-Dynamic
-Filecache
-Functor
-Get_Opt
-Hash_Map_Manager
-High_Res_Timer
-Method_Request
-Object_Manager
-Profile_Timer
-Registry
-SString
-Stats
-System_Time
-Time_Request_Reply
-Timeprobe
-Timer_Hash
-Timer_Heap
-Timer_List
-Timer_Queue
-Timer_Wheel
-</code></pre>
-
-<H4>libACE_Logging</H4>
-
-This library contains the various ACE logging and tracing classes.
-
-<PRE><CODE>
-Dump
-Log_Msg
-Log_Record
-Trace
-</code></pre>
-
-<H4>libACE_Threads</H4>
-
-This library contains the ACE thread/process management and
-synchronization classes.
-
-<PRE><CODE>
-Activation_Queue
-Process
-Process_Manager
-Synch
-Synch_Options
-Thread
-Thread_Manager
-Token
-</code></pre>
-
-<H4>libACE_Demux</H4>
-
-This library contains the ACE Reactor and its associated classes,
-including the ACE Connection components.
-
-<PRE><CODE>
-Event_Handler
-POSIX_Proactor
-Priority_Reactor
-Proactor
-Reactor
-Select_Reactor
-Select_Reactor_Base
-WFMO_Reactor
-</code></pre>
-
-<H4>libACE_Connection</H4>
-
-This library contains the ACE Connection components, i.e., Acceptor,
-Connector, and Svc_Handler.
-
-<PRE><CODE>
-Asynch_IO
-Asynch_IO_Impl
-POSIX_Asynch_IO
-Strategies
-</code></pre>
-
-<H4>libACE_Sockets</H4>
-
-This library contains the ACE C++ wrappers for sockets.
-
-<PRE><CODE>
-IPC_SAP
-LSOCK
-LSOCK_Acceptor
-LSOCK_CODgram
-LSOCK_Connector
-LSOCK_Dgram
-LSOCK_Stream
-SOCK
-SOCK_Acceptor
-SOCK_CODgram
-SOCK_Connector
-SOCK_Dgram
-SOCK_Dgram_Bcast
-SOCK_Dgram_Mcast
-SOCK_IO
-SOCK_Stream
-</code></pre>
-
-<H4>libACE_IPC</H4>
-
-This library contains all the ACE C++ wrappers for the other types of
-IPC and FILE I/O other than sockets. This library will depend on the
-<CODE>libACE_Socket</CODE> library.
-
-<PRE><CODE>
-Addr
-DEV
-DEV_Addr
-DEV_Connector
-DEV_IO
-FIFO
-FIFO_Recv
-FIFO_Recv_Msg
-FIFO_Send
-FIFO_Send_Msg
-FILE_Addr
-FILE
-FILE_Connector
-FILE_IO
-INET_Addr
-IO_SAP
-IOStream
-Pipe
-Signal
-SPIPE_Addr
-SPIPE
-SPIPE_Acceptor
-SPIPE_Connector
-SPIPE_Stream
-SV_Message
-SV_Message_Queue
-SV_Semaphore_Complex
-SV_Semaphore_Simple
-SV_Shared_Memory
-TLI
-TLI_Acceptor
-TLI_Connector
-TLI_Stream
-TTY_IO
-UNIX_Addr
-UPIPE_Acceptor
-UPIPE_Connector
-UPIPE_Stream
-</code></pre>
-
-<H4>libACE_Svcconf</H4>
-
-This library contains the ACE C++ wrappers for the Service
-Configurator component.
-
-<PRE><CODE>
-DLL
-Parse_Node
-Service_Config
-Service_Manager
-Service_Object
-Service_Repository
-Service_Types
-Shared_Object
-Svc_Conf_l
-Svc_Conf_y
-</code></pre>
-
-<H4>libACE_Streams</H4>
-
-This library contains the ACE Streams classes.
-
-<PRE><CODE>
-CDR_Stream
-Message_Block
-Message_Queue
-Task
-</code></pre>
-
-<H4>libACE_Memory</H4>
-
-This library contains the ACE C++ wrappers for shared memory and
-memory-mapped files.
-
-<PRE><CODE>
-Malloc
-Mem_Map
-Memory_Pool
-Obstack
-Read_Buffer
-Shared_Memory
-Shared_Memory_MM
-Shared_Memory_SV
-</code></pre>
-
-<H4>libACE_Token</H4>
-
-This componenty contains the ACE C++ wrappers for Token classes.
-
-<pre><code>
-Local_Tokens
-Remote_Tokens
-Token_Collection
-Token_Invariants
-Token_Manager
-Token_Request_Reply
-</code></pre>
-
-<H4>libACE_Other</H4>
-
-This component contains miscellaneous ACE C++ wrappers.
-
-<pre><code>
-CORBA_Handler
-CORBA_Ref
-Local_Name_Space
-Msg_WFMO_Reactor
-Name_Proxy
-Name_Request_Reply
-Name_Space
-Naming_Context
-Registry_Name_Space
-Remote_Name_Space
-TP_Reactor
-XtReactor
-</code></pre>
-
-<hr><p>
-<hr><p>
-<h3><a name="ACE Library Size Breakdown">ACE Library Size Breakdown</a></h3>
-
-Here is an example size breakdown, by ACE library component. It is
-for the ACE 5.0 libACE.a, statically built with these <a
-href="../ACE-INSTALL.html#flags">make
-flags</a>:
-<pre><code>
- debug=0 optimize=1 static_libs_only=1 DEFFLAGS=-DACE_USE_RCSID=0
-</code></pre><p>
-
-These options translate into:<P>
-
-(a) No debugging,<BR>
-(b) Optimization is set to -O2,<BR>
-(c) Static ACE and TAO libraries, and<BR>
-(d) Use of RCS Ids is turned off. <P>
-
-To build an ACE static library, if shared libraries are the default, use
-<code>make static_libs_only=1</code>. If you're using recent versions
-of GNU GCC, you can use the <A
- HREF="../ACE-INSTALL.html#repo">-frepo</A>
-option, which typically reduces the footprint by another 25 percent. <P>
-
-<center><table cellpadding=4 border=4>
- <tr>
- <th>Platform
- <th>Component
- <th>Total
- <th>For TAO<br>subset
- <th>OS
- <th>Utils
- <th>Logging
- <th>Threads
- <th>Demux
- <th>Con-<br>nection
- <th>Sockets
- <th>IPC
- <th>Svcconf
- <th>Streams
- <th>Memory
- <th>Token
- <th>Other
- <tr>
- <th rowspan=2>Linux (RedHat 6.0/Intel)<br>egcs 2.91.66
- <th>Size, bytes
- <td align=center>648727
- <td align=center>515501
- <td align=center>10937
- <td align=center>118305
- <td align=center>13544
- <td align=center>59593
- <td align=center>74629
- <td align=center>49933
- <td align=center>16084
- <td align=center>34820
- <td align=center>92192
- <td align=center>18462
- <td align=center>27002
- <td align=center>71574
- <td align=center>61652
- <tr>
- <th>Percentage of<br>total size
- <td align=center>100
- <td align=center>79.46
- <td align=center>1.69
- <td align=center>18.24
- <td align=center>2.09
- <td align=center>9.19
- <td align=center>11.50
- <td align=center>7.70
- <td align=center>2.48
- <td align=center>5.37
- <td align=center>14.21
- <td align=center>2.85
- <td align=center>4.16
- <td align=center>11.03
- <td align=center>9.50
-
- <tr>
- <th rowspan=2>LynxOS 3.0.0<br>g++ 2.7-97r1
- <th>Size, bytes
- <td align=center>582672
- <td align=center>475216
- <td align=center>25620
- <td align=center>97220
- <td align=center>11000
- <td align=center>44192
- <td align=center>71388
- <td align=center>58100
- <td align=center>13120
- <td align=center>31572
- <td align=center>77972
- <td align=center>21468
- <td align=center>23564
- <td align=center>60832
- <td align=center>46624
- <tr>
- <th>Percentage of<br>total size
- <td align=center>100
- <td align=center>81.56
- <td align=center>4.40
- <td align=center>16.69
- <td align=center>1.89
- <td align=center>7.58
- <td align=center>12.25
- <td align=center>9.97
- <td align=center>2.25
- <td align=center>5.42
- <td align=center>13.38
- <td align=center>3.68
- <td align=center>4.04
- <td align=center>10.44
- <td align=center>8.00
-
- <tr>
- <th rowspan=2>SunOS5.7<br>egcs 2.91.60
- <th>Size, bytes
- <td align=center>709543
- <td align=center>570693
- <td align=center>11877
- <td align=center>115306
- <td align=center>13721
- <td align=center>63027
- <td align=center>87962
- <td align=center>68551
- <td align=center>16917
- <td align=center>42954
- <td align=center>99839
- <td align=center>21357
- <td align=center>29182
- <td align=center>75970
- <td align=center>62880
- <tr>
- <th>Percentage of<br>total size
- <td align=center>100
- <td align=center>80.43
- <td align=center>1.67
- <td align=center>16.25
- <td align=center>1.93
- <td align=center>8.88
- <td align=center>12.40
- <td align=center>9.66
- <td align=center>2.38
- <td align=center>6.05
- <td align=center>14.07
- <td align=center>3.01
- <td align=center>4.11
- <td align=center>10.71
- <td align=center>8.86
-
- <tr>
- <th rowspan=2>SunOS 5.7<br>GreenHills 1.8.9
- <th>Size, bytes
- <td align=center>803651
- <td align=center>653787
- <td align=center>15800
- <td align=center>146633
- <td align=center>18544
- <td align=center>69172
- <td align=center>103584
- <td align=center>60580
- <td align=center>23084
- <td align=center>52986
- <td align=center>108200
- <td align=center>21528
- <td align=center>33676
- <td align=center>79324
- <td align=center>70540
- <tr>
- <th>Percentage of<br>total size
- <td align=center>100
- <td align=center>81.35
- <td align=center>1.97
- <td align=center>18.25
- <td align=center>2.31
- <td align=center>8.61
- <td align=center>12.89
- <td align=center>7.54
- <td align=center>2.87
- <td align=center>6.59
- <td align=center>13.46
- <td align=center>2.68
- <td align=center>4.19
- <td align=center>9.87
- <td align=center>8.78
-
- <tr>
- <th rowspan=2>SunOS 5.7<br>Sun C++ 4.2
- <th>Size, bytes
- <td align=center>626824
- <td align=center>494501
- <td align=center>15502
- <td align=center>64929
- <td align=center>15605
- <td align=center>63364
- <td align=center>106841
- <td align=center>55013
- <td align=center>19945
- <td align=center>73584
- <td align=center>46434
- <td align=center>19685
- <td align=center>25952
- <td align=center>69843
- <td align=center>62480
- <tr>
- <th>Percentage of<br>total size
- <td align=center>100
- <td align=center>78.89
- <td align=center>2.47
- <td align=center>10.36
- <td align=center>2.49
- <td align=center>10.11
- <td align=center>17.04
- <td align=center>8.78
- <td align=center>3.18
- <td align=center>11.74
- <td align=center>7.41
- <td align=center>3.14
- <td align=center>4.14
- <td align=center>11.14
- <td align=center>9.97
-
- <tr>
- <th rowspan=2>VxWorks 5.3.1<br>GreenHills 1.8.8
- <th>Size, bytes
- <td align=center>689564
- <td align=center>542628
- <td align=center>22252
- <td align=center>145036
- <td align=center>19664
- <td align=center>63640
- <td align=center>54296
- <td align=center>980
- <td align=center>22120
- <td align=center>47468
- <td align=center>117932
- <td align=center>23220
- <td align=center>27220
- <td align=center>78900
- <td align=center>68036
- <tr>
- <th>Percentage of<br>total size
- <td align=center>100
- <td align=center>78.69
- <td align=center>3.23
- <td align=center>21.03
- <td align=center>2.85
- <td align=center>9.23
- <td align=center>7.87
- <td align=center>0.14
- <td align=center>3.21
- <td align=center>6.88
- <td align=center>17.10
- <td align=center>3.37
- <td align=center>3.95
- <td align=center>11.44
- <td align=center>9.87
-
- <tr>
- <th rowspan=2>VxWorks 5.3.1<br>g++ cygnus-<br>2.7.2-960126<br>
- (with implicit templates)
- <th>Size, bytes
- <td align=center>1051540
- <td align=center>888244
- <td align=center>36484
- <td align=center>140832
- <td align=center>14344
- <td align=center>66740
- <td align=center>266192
- <td align=center>14480
- <td align=center>15084
- <td align=center>106308
- <td align=center>142500
- <td align=center>55932
- <td align=center>29348
- <td align=center>88564
- <td align=center>74732
- <tr>
- <th>Percentage of<br>total size
- <td align=center>100
- <td align=center>84.47
- <td align=center>3.47
- <td align=center>13.39
- <td align=center>1.36
- <td align=center>6.35
- <td align=center>25.31
- <td align=center>1.38
- <td align=center>1.43
- <td align=center>10.11
- <td align=center>13.55
- <td align=center>5.32
- <td align=center>2.79
- <td align=center>8.42
- <td align=center>7.11
-</table></center><p>
-
-
-<hr><p>
-<h3><a name="Building ACE Subsets">Building ACE Subsets</a></h3>
-
-By default, the ACE library contains all of the components that ACE
-currently supports. To reduce build time and library size, you can
-exclude unused components. To do that, define an
-<code>ACE_COMPONENTS</code> variable using this approach:<p>
-
-<ol>
- <li>In your <code>$(ACE_ROOT)/include/makeinclude/platform_macros.GNU</code>
- file, <em>e.g.</em>, add:
- <pre><code>ACE_COMPONENTS = OS</code></pre>or<p>
-
- <li>On the make command line, <em>e.g.</em>,
- <pre><code>make ACE_COMPONENTS=OS</code></pre>or<p>
-
- <li>Set (and export) the <code>ACE_COMPONENTS</code> environment variable
- to contain the components that you want to build.<p>
-</ol>
-
-Please see <code><a href="../ace/Makefile">../ace/Makefile</a></code>
-for the default contents of <code>ACE_COMPONENTS</code>.<p>
-
-A special value of <code>ACE_COMPONENTS</code> can be used to
-build an ACE library that supports
-<a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a>. The
-special value is <code>FOR_TAO</code>. So, for example, you can
-add this to your
-<code>$(ACE_ROOT)/include/makeinclude/platform_macros.GNU</code>
-to restrict ACE support to just that which is needed for TAO:
-<pre><code>
-ACE_COMPONENTS = FOR_TAO
-</code></pre><p>
-
-Please note the current limitations:<p>
-
-<ol>
- <li>We currently don't check for interdependencies between components.
- For example, if you build any component beside <code>OS</code>, you
- must explicitly include <code>OS</code> in your
- <code>ACE_COMPONENTS</code>.<br><br></li>
-
- <li>We currently don't check this macro in other ACE or TAO Makefiles, or
- in their tests. We'll add those checks as time allows.<br><br></li>
-
- <li>This is only supported by the gmake Makefiles. For example, the MSVC
- projects on Win32 do not support the specification of components.<br><br></li>
-</ol>
-
-
-<hr><p>
-<h3><a name="ACE_OS Adaptation Layer">ACE_OS Adaptation Layer</a></h3>
-
-The lowest-level component, <code>OS</code>, is also called the
-<em>ACE_OS adaption layer</em>. It provides the ACE interface to
-the underlying operating system, but little else. It can be used
-standalone.<p>
-
-To create the ACE_OS adaptation layer, build your <code>libACE</code>
-with <code>ACE_COMPONENTS</code> set to <code>OS</code>. In addition,
-add <code>#include "ace/config-minimal.h"</code> to your
-<code>ACE_wrappers/ace/config.h</code> file.<p>
-
-When using the ACE_OS adaptation layer, you'll be limited to the
-the <code>ACE_OS</code> member functions, ACE's
-<a href="../ace/Basic_Types.h">Basic_Types</a> and
-<a href="../ace/Sched_Params.h">Sched_Params</a>, and macros defined in
-<a href="../ace/OS.h"><code>ace/OS.h</code></a>. See ACE's
-<a href="../tests/Basic_Types_Test.cpp">Basic_Types_Test.cpp</a>
-for an example of usage.<p>
-
-<P><HR><P>
-<a name="PACE">
-The <A
-HREF="http://www.cs.wustl.edu/~luther/PACE/">POSIX ACE</A> (PACE)
-project is an OS abstraction layer designed for lightweight and/or
-verified systems. When complete, it will offer these benefits: <P>
-
-<OL>
-<LI> A strict POSIX.1-like, low-level interface. Its interface is
- ``POSIX compatible'' by that we mean as close to POSIX.1
- as it can be, given that PACE is not an operating system.
- To avoid name conflicts with OS APIs, all low-level
- PACE function names have the <CODE>pace_</CODE> prefix. <P>
-
-<LI> The low-level interface is a C file, so that it can be used in
- both C and C++ programs. <P>
-
-<LI> The low-level interface is partitioned into multiple files, one
- per POSIX.1 section, which will help linkers reduce the footprint for
- statically linked applications.
-</OL><P>
-
-<a name="minimumTAO"><!--#include virtual="../TAO/docs/minimumTAO.html" --></a>
-
-<P><HR><P>
-Back to the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</A>
-home page.<BR>
-Back to <A HREF="index.html">ACE Documentation Home</A>.
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
diff --git a/docs/ACE-tutorials.html b/docs/ACE-tutorials.html
deleted file mode 100644
index 7fd0750a52f..00000000000
--- a/docs/ACE-tutorials.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!-- $Id$ -->
-<HTML>
- <TITLE>ACE Beginners' Guide</TITLE>
- <BODY text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
-
- <HR><P>
- <H3>The Beginners' Guide to ACE</H3>
-
- The <A HREF="http://www.cs.wustl.edu/~schmidt/ACE-members.html">ACE
- development team</A> is creating a set of tutorials to help ACE
- newcomers learn how to use the framework effectively. The following
- links provide further information on this topic. <P>
-
- <TABLE cellpadding=10 cellspacing=0 border=0>
- <TD>
- <DL>
- <DT> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif"> <A
- HREF="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">Overview of ACE</A>
-
- <DT> <img alt="o"
- src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
- ACE programmers guide <A HREF="http://www.cs.wustl.edu/~schmidt/PDF/ACE-tutorial.pdf">[pdf]</A><A HREF="http://www.cs.wustl.edu/~schmidt/ACE-tutorial.ps.gz">[ps]</A>
-
- <DT> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
- <A
- HREF="tutorials/guide-tutorials.html">Online examples from the ACE programmers guide</A>
-
- <DT> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
- <A
- HREF="tutorials/online-tutorials.html">Introductory online ACE tutorials</A>
-
- <DT> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
- <A HREF="tutorials/new-tutorials.html">Developing new tutorials</A>
-
- <!-- Bob's original can always be found at: http://dox.netwrench.com/acedox/fmm/ -->
- <DT> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
- <A
- HREF="http://www.cs.wustl.edu/~schmidt/ACE-papers.html">ACE technical papers</A>
- <DT> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif">
- <A
- HREF="ACE-FMM.html">ACE
-``frequently made mistakes'' (FMM)</A>
-
- </DL>
- </TD>
-
- </TD>
- </TABLE>
-
- <HR><P>
- Back to the <A
- HREF="http://www.cs.wustl.edu/~schmidt/ACE-documentation.html">ACE
- documentation</A> page.
-
- <!--#include virtual="/~schmidt/cgi-sig.html" -->
- </BODY>
-</HTML>
diff --git a/docs/CE-status.txt b/docs/CE-status.txt
deleted file mode 100644
index deb56d64fa8..00000000000
--- a/docs/CE-status.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
-@page wince ACE on Windows CE status
-
-By me, Darrell Brunsch <brunsch@cs.wustl.edu>
-
-@subsection ce_status Status
-
-Been a while since I updated this file. Where to begin. Well, as of the next
-beta kit of ACE (5.1.11), it should be compiling for the PocketPC. And it
-will have new eMbedded Visual C++ project files (*.vcw and *.vcp). Even
-though it does not have all of ACE, the stuff it has should still make it
-useful.
-
-I have shifted off of Windows CE though, so the updates aren't going to come
-in as I once planned. Although I did get the library to compile and link, I
-don't have any tests ready for it.
-
-I'm planning on getting the ACE tests re-ported to Windows CE again. I say
-re-ported because I'm planning on dealing with the lack of stdout a bit
-differently than Nanbor did. Instead of making a GUI front end for each
-test (which I believe is what the WindozeCE stuff is), I'm going to let them
-remain GUI-less and perhaps write an application to read the log files after
-running the tests.
-
-@subsection ce_evc eMbedded Visual C++ Projects
-
-ACE now uses the eMbedded Visual C++ project files (instead of the older
-Windows CE Toolkit for Visual C++ project files). EVC is free from MS, either
-it can be found in the MSDN subscriptions (not free) or a CD from MS
--- which isn't completely free either, since you still have to pay for the
-shipping and handling.
-
-@subsection ce_subsets Subsets
-
-ACE on CE is currently split into two libraries, ace_os.dll and ace.dll.
-The ace_os library contains the files which are considered part of the ACE_OS
-subset. The ace library contains everything else. If ACE becomes more
-splittable, ace.dll will probably be broken apart even more.
-
-And unlike the current *nix subsets, these two libraries are truly separate
-and do not require recompilation when the subsets required are changed.
-
-@subsection ce_tao TAO
-
-While it would be nice to get TAO working on CE, I doubt I'll get a chance to
-work on it before graduating. OCI has said there has been some interest in
-it, but I don't know how that is going right now.
-
-@subsection ce_wchar Unicode/WChar
-
-ACE on WindowsCE automatically has ACE_HAS_WCHAR and ACE_USES_WCHAR turned
-on. Thus ACE_TCHAR and ACE_TEXT() are the wide char versions.
-
-*/ \ No newline at end of file
diff --git a/docs/bugzilla-build-setup.html b/docs/bugzilla-build-setup.html
deleted file mode 100644
index 0deed4d6c45..00000000000
--- a/docs/bugzilla-build-setup.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <!-- $Id$ -->
- <head>
- <title>Setting Up A Bugzilla Nightly Build</title>
- </head>
-
- <body text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
-
- <h1>Setting Up A Bugzilla Nightly Build</h1>
-
- <p>
- The
- <a href="http://www.cs.wustl.edu/~schmidt/doc-center.html">
- Center for Distributed Object Computing</a> has automated
- daily builds to keep track of the progress made each day for
- selected software and hardware platforms.
- </p>
-
- <h2>Unix Instructions</h2>
-
- <p>
- Below are the steps to take to add a platform to the current
- platforms included in the daily builds. BUILD_NAME should be
- replaced with the name you want to give the build (e.g.,
- Solaris8_gcc). It can be helpful to embed the OS and the compiler
- used in BUILD_NAME as in the example in the previous sentence
- (i.e., Solaris8_gcc =>
- the Solaris 8 operating system and GNU's gcc/g++ compiler).
- </p>
-
- <ul>
- <li>Configure CVSROOT as it will be used in the build
-<pre>
- $ cvs checkout ACE_wrappers
-
- $ cd ACE_wrappers
- $ mkdir build build/BUILD_NAME
- $ ./bin/create_ace_build -a build/BUILD_NAME
- $ mkdir build/BUILD_NAME/auto_compile
- $ touch build/BUILD_NAME/auto_compile/history
-</pre>
-
- <li>Configure build/BUILD_NAME/ace/config.h.
- (Solaris 8 is used here as an example.)
-<pre>
- $ echo '#include "ace/config-sunos5.8.h" > build/BUILD_NAME/ace/config.h
-</pre>
-
- <li>Configure build/BUILD_NAME/include/makeinclude/platform_macros.GNU
- Solaris 8 and GNU compiler is used here as an example. This example
- also shows building without debug.
-<pre>
- $ cd build/BUILD_NAME/include/makeinclude
- $ echo 'include $(ACE_ROOT)/include/makeinclude/platform_sunos5_g++.GNU' > platform_macros.GNU
- $ echo 'debug=0' >> platform_macros.GNU
-</pre>
-
- <li>Setup build script in ~bugzilla/bin.
- (Copy an existing build script to use as a template. Solaris 8 and GNU compiler is used here as an example.)
-<pre>
- $ su bugzilla
- $ cd ~/bin
- $ cp auto_compile_sunos_gcc272 auto_compile_sunos8_gcc
-</pre>
- Modify the new auto compile file as needed. At a minimum, CHECKOUT and
- BUILD will need to be modified.<BR><BR>
-
- <li>Create a cron job to run the build.
- (Decide which machine the build should be done. Add a cron job to bugzilla's crontab.)
-<pre>
- $ ssh -l bugzilla <i>machine_of_choice</i>
- $ crontab -e
- <i>Add cron job to kick off the build every day.</i>
-</pre>
-
- <li>After the build has been running successfully a few days (not
- necessarily that there aren't errors or warnings in the compilation or
- execution) incorporate it into the showlog.cgi script.
-<pre>
- $ cd ~bugzilla/.www-docs/cgi-bin
- $ vi showlog.cgi # to include the build you're making
-</pre>
- Modify the new auto compile file as needed. At a minimum, CHECKOUT and
- BUILD will need to be modified.
-
- </ul>
-
- <h2>Win32 Instructions</h2>
-
- <p>
- The Win32 builds use a different set of scripts from the Unix nightly
- builds. Instructions will be provided here for them at a future
- date.
- </p>
-
- <h2>Scoreboard</h2>
-
- <p>
- The scoreboard is the web page created by <code>
- ACE_wrappers/bin/nightlybuilds/scoreboard_update.pl</code>. The main
- build scoreboard for the DOC Group is located at <a href=
- "http://ringil.ece.uci.edu/scoreboard/">
- http://ringil.ece.uci.edu/scoreboard/</a>.
- </p>
-
- <p>
- The <code>scoreboard_update.pl</code> works by downloading a directory
- via http, determining the build that has run last, download it, and
- then parse and create html documents based on it. It requires that the
- builds name their logs based on the time that the log was created (both
- <code>auto_compile</code> and <code>prepare_log.pl</code> do this
- correctly).
- </p>
-
- <p>
- To integrate into the scoreboard, the following steps should be taken:
- </p>
-
- <ol>
- <li>
- Make the directory containing the log files accessible from the
- internet (or at least from the machine running the scoreboard, in
- this case, ringil.ece.uci.edu). This directory must be able to be
- browsed via the web and should not require a password.
- <br><br>
- </li>
-
- <li>
- Add the build to the appropriate *.lst file in the <code>
- ACE_wrappers/bin/nightlybuilds/*.lst</code>. The main scoreboard
- uses builds.lst. Each entry looks like the following:
-<pre>
- [BUILD_NAME]
- TYPE = TIMEONLY
- LIST = http://ace.cs.wustl.edu/~bugzilla/auto_compile_logs/build_dir/
- WEB = http://ace.cs.wustl.edu/~bugzilla/cgi-bin/show_log_dir.cgi?build_dir
-</pre>
- BUILD_NAME, LIST, and WEB should be updated to the appropriate values.
- TYPE currently needs to be TIMEONLY. LIST refers to the address
- needed to browse the logs directory. WEB refers to the address
- used to link to the logs directory (we usually put a url to the
- show_log_dir.cgi script here).
- <br><br>
- </li>
-
- <li>
- Check in the *.lst file. The scoreboard will automatically update
- its copy of the list before parsing it.
- <br><br>
- </li>
- </ol>
-
- <hr>
- <address><a href="mailto:joeh@cs.wustl.edu">Joe Hoffert</a></address>
-<!-- Created: Thu Feb 22 10:15:58 CST 2001 -->
-<!-- hhmts start -->
-Last modified: Wed Feb 28 15:32:45 CST 2001
-<!-- hhmts end -->
- <br>
- </body>
-</html>
diff --git a/docs/exceptions.html b/docs/exceptions.html
deleted file mode 100644
index 60f63f1901e..00000000000
--- a/docs/exceptions.html
+++ /dev/null
@@ -1,536 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<!-- $Id$ -->
-<html> <head>
-<title>Using ACE try Macros to Enhance CORBA Portability</title>
-</head>
-
-<body text="#000000" link="#0000ff" vlink="#cc0000" bgcolor="#ffffff">
-<Hr><P>
-<h3>Using ACE try Macros to Enhance CORBA Portability</h3>
-
-<P>CORBA <CODE>Environment</CODE> arguments provide a way to handle
-exceptions when native c++ exception handling is unavailable or
-undesirable. However, writing portable code using both native C++
-exception handling and <CODE>CORBA::Environment</CODE> objects is very
-hard. If you plan to write portable code that must run on platforms
-that do not have native C++ exceptions, therefore, we recommend you
-use the ACE exception macros. This document explains how these macros
-can help alleviate much of the accidental complexity. However, keep
-in mind macros cannot solve all problems perfectly. </P>
-
-<P>Before reading the rest of this document, we recommend you check
-out pages 307 through to 322 in the book, <A
-HREF="http://cseng.aw.com/bookdetail.qry?ISBN=0-201-37927-9&ptype=0">Advanced
-Corba Programming with C++</A> by <A
-HREF="http://www.triodia.com/staff/michi-henning.html">Michi
-Henning</A> & <A HREF="http://www.iona.com/hyplan/vinoski/">Steve
-Vinoski</A>. Likewise, we recommend that you read the Error Handling chapter from the
-<A HREF="http://theaceorb.com/buy/index.html">TAO Developer's Guide</A>.
-
-<P><HR><P>
-<h3>Table of Contents</h3>
-<ul>
- <li><a href="#nutshell">ACE Try Macros in a Nutshell</a>
- <li><a href="#examples">Examples</a>
- <li><a href="#general">General Guidelines for Exception Handling</a>
- <li><a href="#transition">Transition from TAO try macros to ACE try
- macros</a>
- <li><a href="#caveats">Some Caveats</a>
-</ul>
-
-<HR><P>
-<h3><a name="nutshell">ACE Try Macros in a Nutshell</h3>
-
-<P>This section explains some simple rules of writing programs for
-platforms with and without native exception support using ACE's
-try macros.
-</P>
-
-<ol>
- <li><p>ACE try macros are modelled like C++ language exceptions and
- can be used like them, but with a small difference. These macros
- rely on the CORBA::Environment variable to handle exceptions
- on platforms that do not support exception
- handling. (Please note that native exceptions can be turned on
- or off at COMPILE time as an option to your make)
- The exception macros have been modelled with some extra rules to ensure it works even on
- platforms without native exception support. See some <a
- href="#examples">quick examples</a> on how to use ACE try
- macros.
- </p>
- </li>
-
- <li><P><em>Name of CORBA::Environment variable</em><br>
- A function that may throw a CORBA::Exception needs a
- CORBA::Environment variable to pass up exceptions (to throw in
- the C++ sense) and to gather (catch () in the C++ sense)
- exceptions from functions it called. By default, ACE try macros
- assumes that the variable is named <code>ACE_TRY_ENV</code>.
- <code>ACE_TRY_ENV</code> itself is also a macro which can be
- redefined.
- </pre>
-
- <P>
- You can redefine the name of the variable to
- something else to avoid name clashing. Alternatively, there's
- another macro (<code>ACE_ADOPT_CORBA_ENV</code>) that allow you
- to use another variable name as the default CORBA::Environment
- <em>within</em> a function.
- </P>
- </LI>
-
- <li><P><em>Definition of the CORBA::Environment variable </em><br>
- If you are using TAO for writing application programs and you
- are interested in using exceptions (which is a pretty neat way
- to go about), the environmnet variable can be brought in to your
- scope by the adding a statement <code>ACE_DECLARE_NEW_CORBA_ENV;</code>
- You can then invoke the methods on the servant from the client
- side as
- <pre>
- object_reference->func_name (x, y, ACE_TRY_ENV);
- </pre>
-
-
- Even if you are interested in making calls within the client
- side, you can define your method like this
- <pre>
- int AN_OBJ::foobar (int a, int b, CORBA_Environment &ACE_TRY_ENV);
- </pre>
- <li><P><em>Throwing exceptions:</em><br>
- Use <code>ACE_THROW</code> and <code>ACE_THROW_RETURN</code> to
- throw exceptions. They should never be used within a try
- block; please use <code>ACE_TRY_THROW</code> instead.
- </P>
- </LI>
-
- <li><P><em>Propagating exceptions:</em><br>
- To simulate native exceptions on platforms without native
- exception handling, <em>every</em> function call that may
- throw exceptions must be followed by <code>ACE_CHECK</code> or
- <code>ACE_CHECK_RETURN</code>.</p>
-
- <p><a name="exc-func">Exception-throwing functions include the
- following categories:</p>
-
- <ol>
- <li><p>Any function that takes a
- <code>CORBA_Environment</code> argument.</p>
- </li>
-
- <li><p><code>ACE_NEW_THROW_EX</code>. Notice that you
- <em>should not</em> use <code>ACE_NEW_THROW</code>,
- <code>ACE_NEW_THROW_RETURN</code>,
- <code>ACE_NEW_TRY_THROW</code> anymore because they don't
- work right with ACE try macros. Instead, use
- <code>ACE_NEW_THROW</code> with appropriate ACE_CHECK*
- macros.</p>
- </li>
-
- <li><P><code>ACE_GUARD_THROW_EX</code>,
- <code>ACE_READ_GURAD_THROW_EX</code>, and
- <code>ACE_WRITE_THROW_EX</code>.
-
- <li><p><code>ACE_TRY</code> blocks. Follow every
- <code>ACE_ENDTRY</code> with appropriate ACE_CHECK*
- macros.</p>
- <li>
- </ol>
-
- <P>You should pass <code>ACE_TRY_ENV</code> to these
- functions.
- </p>
-
- <P>Be very careful not to combine exception throwing functions
- in one statement like this:
- </P>
- <pre>
- x = obj1->callme (ACE_TRY_ENV) + obj2->dare_me (ACE_TRY_ENV);
- ACE_CHECK;
- </pre>
- <P>This example may work differently when native exception
- handling is enabled/disabled.
- </p>
- </LI>
-
- <li><P><em>Catching exceptions:</em><br>
- Use <code>ACE_TRY</code> to catch exceptions if there's an
- <code>ACE_TRY_ENV</code> available. Otherwise, you should use
- <code>ACE_DECLARE_NEW_CORBA_ENV</code> to create one at
- <em>proper</em> scope. The use of
- <code>ACE_TRY_NEW_ENV</code> is considered depricated because it
- can't deal with the case when you have multiple <code>TRY</code>
- blocks in the scope of <code>ACE_TRY_NEW_ENV</code>. If there are
- more than one try blocks in a function, use <code>ACE_TRY_EX</code>
- for all subsequence try blocks to avoid name clashing of labels.
- </p>
- <ul>
- <li><P>Within a <code>ACE_TRY</code> block, use the variable
- <code>ACE_TRY_ENV</code> to pass down the
- <code>CORBA_Environment</code> (see <a
- href="#try_env">this</a> example.)
- </p>
- </LI>
-
- <li><P>Follow <em>every</em> exception throwing function with
- <code>ACE_TRY_CHECK</code>. If you are using a TRY block
- within another try block add a <code>ACE_TRY_CHECK</code>
- at the end of this TRY block ie. after
- <code>ACE_ENDTRY</code>.
- </p>
- </LI>
-
- <li><P>Use <code>ACE_CATCH</code> to catch exceptions of certain
- type.
- </p>
- </LI>
-
- <li><P><code>ACE_CATCHANY</code> catches <em>any</em> exceptions
- of type <code>CORBA_Exception</code>. The caught
- exception is stored in a variable call
- <code>ACE_ANY_EXCEPTION</code>.
- </p>
- </LI>
-
- <li><p><code>ACE_CATCHALL</code> emulate the <code>catch
- (...)</code> c++ statement. It is identical to
- <code>ACE_CATCHANY</code> on platforms without native
- exception support. You can not access the caught
- exception within the <code>ACE_CATCHALL</code> block.</p>
-
- <li><P>Use <code>ACE_RETHROW</code> to rethrow the same exception
- within a <code>ACE_CATCH</code> or
- <code>ACE_CATCHANY</code> block.
- </p>
- </LI>
-
- <li><P>A <code>ACE_TRY</code> block must be terminated with
- a <code>ACE_ENDTRY</code> statement.
- </p>
- </LI>
-
- <li><P>Throw an exception within a <code>ACE_TRY</code>
- block or <code>ACE_CATCH</code> block using
- <a href="#ace_try"><code>ACE_TRY_THROW</code></a>.
- </p>
- </LI>
- </ul>
- </li>
-
- <li><p><em>Printing out exceptions.</em> Use <code>ACE_PRINT_EXCEPTION
- (EX,INFO)</code> to print out an exception. The macro takes two
- arguments, a reference to an exception (EX) and a <code>char
- *</code> string (INFO) which provides more information on the
- exception. Since there's no portable way to print out
- exceptions, you can redefine ACE_PRINT_EXCEPTION to fit your
- need (or define it to null.) <em>You should always print out
- the exception itself, not the CORBA_Environment that carries the
- exception.</em></p>
- </li>
-</ol>
-
-<HR><P>
-<h3>Examples</h3><a name="examples">
-
-Refer to <a href="../ace/CORBA_macros.h"><code>
-$ACE_ROOT/ace/CORBA_macros.h</code></a> for complete definitions of
-macros discussed here.
-
-<ul>Examples on using ACE try macros:
- <li><p>
- <pre>
- <a name="try_env">
- ACE_TRY // Use ACE_DECLARE_NEW_CORBA_ENV to create ACE_TRY_ENV
- // if you got undefined symbol warning here.
- {
- some_operation (arg1, arg2, ACE_TRY_ENV);
- ACE_TRY_CHECK;
-
- .
- .
- if (whatever)
- ACE_TRY_THROW (CORBA::BAD_PARAM ());
-
- some_other_operation (arg1, arg2, arg3, ACE_TRY_ENV);
- ACE_TRY_CHECK;
- }
- <a name="ace_try">
- ACE_CATCH (CORBA_some_exception, ex)
- {
- // error handling.
- if (still_has_error)
- ACE_TRY_THROW (CORBA::NOWAY ());
- }
- ACE_CATCHANY
- {
- // error handling.
- // then rethow the exception.
- ACE_RETHROW;
- }
- ACE_ENDTRY;
- ACE_CHECK;
- </pre>
- </p>
- </li>
-
- <li><p><code>ACE_TRY</code> and also declares a label for internal
- use. To avoid defining the same label multiple times within a
- function, use <code>ACE_TRY_EX</code> with different labels for
- different try blocks instead. For example,<br>
-
- <pre>
- ACE_TRY_EX (block_1)
- {
- some_operation (arg1, arg2, ACE_TRY_ENV);
- ACE_TRY_CHECK_EX (block_1);
-
- some_other_operation (arg1, arg2, arg3, ACE_TRY_ENV);
- ACE_TRY_CHECK_EX (block_1);
- }
- ACE_CATCH (CORBA_some_exception, ex)
- {
- // error handling.
- }
- ACE_CATCHANY
- {
- // error handling.
- }
- ACE_ENDTRY;
- ACE_CHECK_RETURN (-1);
-
- // Some other operation here
- // .
- // .
- // .
- // .
-
- ACE_TRY_EX (block_2)
- {
- foo (arg, ACE_TRY_ENV);
- ACE_TRY_CHECK_EX (block_2);
-
- bar (arg1, arg2, ACE_TRY_ENV);
- ACE_TRY_CHECK_EX (block_2);
- }
- ACE_CATCH (CORBA_some_exception, ex)
- {
- // error handling.
- }
- ACE_CATCHANY
- {
- // error handling.
- }
- ACE_ENDTRY;
- ACE_CHECK_RETURN (-1);
- </pre>
- </p>
-
- <li><p>You may want to make a different series of calls after you
- encounter/catch an exception. Here is what we recommend.
-
- <pre>
- ACE_TRY
- {
- // Calls that can raise an exception
- some_call1 (arg1, arg2, ACE_TRY_ENV);
- ACE_TRY_CHECK;
- .
- .
- .
- ACE_TRY_CHECK;
- }
- ACE_CATCH (CORBA_some_exception, ex)
- {
- // Caught an exception, so we need to make some other calls
- // to continue..
-
- ACE_TRY_EX (block1) // basically a label
- {
- some_other_call1 (arg1,.. , ACE_TRY_ENV);
- ACE_TRY_CHECK_EX (block1);
- }
- ACE_CATCH (CORBA_some_other_exception, ex1)
- {
- // Handle the exception here..
- }
- ACE_ENDTRY;
- ACE_CHECK_RETURN (-1); // Needed to catch uncaught exceptions
- }
- ACE_ENDTRY;
- ACE_CHECK_RETURN (-1);
- </pre>
- </p>
-
- <li><p>Be <em>VERY</em> wary of <code>ACE_CATCHALL</code>. It catches
- exceptions of any type. If your program depends on it, then,
- more often than not, there're something wrong with it.
- </P>
- </li>
-
- <li><p>Instead of depending on <code>ACE_CATCHALL</code>, use
- <code>auto_ptr</code> style mechanism to prevent memory leaks
- from exceptions.
- </p>
- </li>
-</ul>
-
-<HR><P>
-<h3><a name="general">General Guidelines for Exception Handling</h3>
-<ul>
- <li><p>Don't catch an exception just to rethrow it. Exceptions cost
- you performance.
- </p>
- </li>
-
- <li><p>When exceptions occur, make sure an object's is still in
- a valid state or change to a state that can be safely
- destructed.
- </p>
- </li>
-
- <li><p>Watch out for side effect in the expression which may cause
- exceptions. In the following example, what should
- <code>i</code> be if an exception does occur?<br>
-<pre>
- ACE_TRY
- {
- obj[i++] = foo_bar_method (a, b, ACE_TRY_ENV);
- }
-</pre></p>
- </li>
-
- <li><p>Make sure an exception doesn't cause resource leak (memory,
- socket, ...) (hint: Use auto_ptr to avoid memory leak,
- and ACE_Guard for locks.)
- </p>
- </li>
-
- <li><p>Don't catch any exception that you don't know how to handle.</p>
- </li>
-
- <li><p>Never throw an exception from destructor (unless you know what
- it implies.)</p>
- </li>
-
- <li><p>Use exceptions to provide more information about the error.</p>
- </li>
-
- <li><p>Rethrow a different exception only to provide <em>more</em>
- information. Do not catch an exception just to rethrow, say,
- <code>unknow_exception</code>.</p>
- </li>
-</ul>
-
-<HR><P>
-<H3><a name="transition">Transition from TAO try macros to ACE try macros</h3>
-
-This list tries to give a comprehensive list of mapping between TAO
-try macros and ACE try macros. It's sole purpose is to provide hints
-in the converting the use of TAO try macros to ACE try macros and is
-by no mean complete.
-
-<OL>
- <li><P>Rename all <code>CORBA_Environment</code> variables to
- <code>ACE_TRY_ENV</code>. </P>
- </li>
-
- <li><P>Replace <code>TAO_TRY</code> <code>TAO_TRY_VAR</code> with
- <code>ACE_TRY</code>. Added
- <code>ACE_DECLARE_NEW_CORBA_ENV</code> if necessary.</p>
- </li>
-
- <li><p>Replace <code>TAO_TRY_EX</code> <code>TAO_TRY_VAR_EX</code>
- with <code>ACE_TRY_EX</code>.</p>
- </li>
-
- <li><p>Replace <code>TAO_CHECK_RETURN</code> and
- <code>TAO_CHECK_RETURN_VOID</code> with <code>ACE_CHECK_RETURN</code>
- and <code>ACE_CHECK</code>. These macros are used
- <em>outside</em> of TRY/CATCH blocks.</P>
- </li>
-
- <li><P>Replace <code>TAO_THROW</code>, <code>TAO_THROW_ENV</code>,
- <code>TAO_THROW_RETURN</code>, <code>TAO_THROW_ENV_RETURN</code>
- with <code>ACE_THROW</code> and
- <code>ACE_THROW_RETURN</code>. </p>
- </li>
-
- <li><P>Replace <code>ACE_NEW_THROW</code>,
- <code>ACE_NEW_THROW_RETURN</code>,
- <code>ACE_TRY_NEW_THROW</code> with
- <code>ACE_NEW_THROW_EX</code> and appropriate
- <code>ACE_CHECK*</code> macros. aformention</P>
-
- <li><p>Replace <code>TAO_CHECK_ENV</code> and
- <code>TAO_CHECK_ENV_EX</code> with <code>ACE_TRY_CHECK</code>
- and <code>ACE_TRY_CHECK_EX</code>.</p>
- </li>
-
- <li><p>Replace <code>TAO_TRY_THOW</code> and
- <code>TAO_TRY_THROW_EX</code> with <code>ACE_TRY_THROW</code>
- and <code>ACE_TRY_THROW_EX</code>. Notice that you can also use
- <code>ACE_TRY_THROW*</code> within CATCH blocks.</p>
- </li>
-
- <li><p>Replace <code>TAO_RETHROW</code>,
- <code>TAO_RETHROW_RETURN</code>,
- <code>TAO_RETHROW_RETURN_VOID</code> with
- <code>ACE_RETHROW</code>.</p>
- </li>
-
- <li><p>Replace <code>TAO_CATCH</code>, <code>TAO_CATCHANY</code>,
- and <code>TAO_CATCHALL</code> with <code>ACE_CATCH</code>,
- <code>ACE_CATCHANY</code> and <code>ACE_CATCHALL</code>
- respectively. </p>
- </li>
-
- <li><p>Replace <code>TAO_ENDTRY</code> with <code>ACE_ENDTRY</code>
- followed by an appropriate CHECK macro (<code>ACE_CHECK</code>,
- <code>ACE_CHECK_RETURN</code>, <code>ACE_TRY_CHECK</code>, or
- <code>ACE_TRY_CHECK_EX</code>.)</P>
- </li>
-</ol>
-
-<HR><P>
-<H3><a name="caveats">Caveats</H3>
-
-<P>As we already mentioned no set of macros can cover all cases
-and preserve the semantics between native C++ exceptions and the
-<CODE>CORBA::Environment</CODE> based mapping.
-Some of the problems that our macros are described below:
-<P>
-
-<UL>
- <LI><P>Using the macros in loops can produce problems with
- <CODE>break</CODE> and <CODE>continue</CODE> statements, for
- example:
- </P>
- <PRE>
- for (int i = 0; i < 10; ++i)
- {
- ACE_TRY
- {
- if (x[i] == 0)
- continue; // will *not* work
- if (x[i] == -1)
- break; // will *not* work either
- }
- ACE_CATCH (CORBA::Exception, ex)
- {
- }
- ACE_ENDTRY;
- ACE_CHECK;
- }
- </PRE>
- </LI>
-</UL>
-
-<P><HR><P>
-
-Back to the <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-documentation.html">ACE
-documentation</A> page.<BR>
-Back to <A HREF="index.html">ACE Documentation Home</A>.
-
-
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</body></HTML>
diff --git a/docs/index.html b/docs/index.html
deleted file mode 100644
index f3cb339e2e1..00000000000
--- a/docs/index.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<html>
-
-<!-- $Id$ -->
-<head>
-<title>ACE Documentation Home</title>
-</head>
-
-<body text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
-
-<hr>
-
-<h1>ACE Documentation Home</h1>
-
-Everything you've always wanted to know about ACE, but were afraid to
-ask. <P>
-
-<hr>
-
-<h2>Bug Reports</h2>
-
-<ul>
- <li><a href="ACE-bug-process.html">ACE+TAO Bug Fixing Policies</a> - Our policies for
- handling bug reports.
- <li><a href="usage-bugzilla.html">Bug Tracking System</a> - Short description of our
- Bugzilla bug tracking system.
-</ul>
-
-
-<hr>
-
-<h2>Structure</h2>
-
-<ul>
- <li><a href="ACE-categories.html">Class Categories</a> - Listing of some of the classes
- in ACE.
- <li>ACE Inheritance Tree <a href="ACE-inheritance.pdf.gz">[pdf.gz]</a> <a href=
- "ACE-inheritance.ps.gz">[ps.gz]</a>
- <li><a href="ACE-subsets.html">ACE Subsets</a> - Outline of some of our ideas
- for subsetting the ACE library.
-
-</ul>
-
-<hr>
-
-<h2>Tutorials</h2>
-
-<ul>
- <li><a href="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">Overview of ACE</a> -
- The top level view.
- <li>ACE programmers guide <a href="http://www.cs.wustl.edu/~schmidt/PDF/ACE-tutorial.pdf">[pdf.gz]</a>
- <a href="http://www.cs.wustl.edu/~schmidt/ACE-tutorial.ps.gz">[ps.gz]</a>
- <li><a href="tutorials/guide-tutorials.html">Online examples from the ACE programmers guide</a>
- <li><a href="tutorials/online-tutorials.html">Introductory online ACE tutorials</a>
- <li><a href="tutorials/new-tutorials.html">New Tutorials</a> - How to develop a new
- ACE tutorial.
- <!-- Bob's original can always be found at: http://dox.netwrench.com/acedox/fmm/ -->
- <li><a href="http://www.cs.wustl.edu/~schmidt/ACE-papers.html">Technical Papers</a> -
- Postscript versions of many ACE papers.
- <li><a href="ACE-FMM.html">ACE FMM</a> - ACE &quot;Frequently Made Mistakes&quot;
-</ul>
-
-<hr>
-
-<h2>ACE Development</h2>
-
-<ul>
- <li><a href="ACE-development-process.html">Development and Release Process</a> - The process we use
- to develop and release the ACE library.
- <li><a href="ACE-guidelines.html">Style Guide</a> - How to write compliant ACE code.
- <li><a href="ACE-porting.html">Porting</a> - What to do to port to a new platform.
- <li><a href="exceptions.html">Exception Macros</a> - How to properly use the ACE TRY
- macros.
-
-</ul>
-
-<hr>
-
-<h2>Other stuff</h2>
-
-<ul>
- <li><a href="ACE-lessons.html">Lessons</a> - Lessons we have learned while
- building ACE.
- <li><a href="ACE-SSL.html">ACE+SSL</a> - What is ACE+SSL and how to get it.
- <li><a href="CE-status.txt">CE-status.txt</a> - The status of ACE on Windows CE.
-</ul>
-
-</body>
-</html>
diff --git a/docs/msvc_notes.txt b/docs/msvc_notes.txt
deleted file mode 100644
index db20825d8ee..00000000000
--- a/docs/msvc_notes.txt
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
-@page msvc Miscellaneous Notes for ACE/TAO and Microsoft Visual C++
-
-Here are just some random information about ACE/TAO with Microsoft Visual
-C++. This is more a collection of ideas right now, so it may not be as
-polished as other ACE documentation.
-
-@subsection msvc_configurations Configurations
-
-MSVC project files come with several configurations. The main two are Debug
-and Release. Debug produces libraries and executables with debugging symbols
-and doesn't enable inlining. The Release configuration enables optimizations
-and leaves out debugging symbols. All projects (with the exception of some
-of the tests) contain both configurations. Most of the libraries also contain
-four more, Static Release/Debug and MFC Release/Debug.
-
-Different configurations produce different libraries and executables. For
-example, Debug versions of dynamic libraries are always named *d.dll (like
-aced.dll) and the executables are placed in the current directory. Release
-versions of dynamic libraries are named *.dll (such as ace.dll) and their
-executables are usually placed in the Release subdirectory. Other common
-suffixes include *sd.lib for Static Debug and *s.lib for Static Release.
-
-Projects only use the same configuration versions of the libraries. The Debug
-version of an ACE example only uses
-
-@subsection msvc_otheroptions How to Set Other Options
-
-Other compile time options are set or unset via the config.h file. For
-example, to turn on a compile time definition, #define it at the beginning of
-config.h. Unsetting a definition just requires #define ACE_FOO 0 or a #undef
-at the end of the file (after including config-win32.h). Different macros
-require different techniques.
-
-@subsection msvc_libraries ACE/TAO Libraries
-
-I don't think we have any documents really giving any info on what libraries
-are produced by the MSVC project files.
-
-So unlike the Unix platforms, Win32 libraries do not have a prefix of "lib",
-instead it is used as an extension. For example, the debug version of the
-dynamic ace library is aced.lib (which is a stub for aced.dll). The three
-ACE libraries are:
-
-- ace
-- ACE_RMCast
-- ACE_SSL
-
-And for TAO we have the main TAO library and several sub libraries which
-contain extra features of TAO that aren't always needed (such as the POA
-in TAO_PortableServer).
-
-- TAO
-- TAO_DynamicAny
-- TAO_DynamicInterface
-- TAO_IORManip
-- TAO_IORTable
-- TAO_PortableServer
-- TAO_SmartProxies
-- TAO_Strategies
-
-And finally we have the orbsvcs libraries. Each ORB service is contained
-in its own library. More libraries may be needed to be linked in, since
-some services require the use of others (such as TAO_AV requiring
-TAO_CosTrading and TAO_CosProperty).
-
-- TAO_AV
-- TAO_CosConcurrency
-- TAO_CosEvent
-- TAO_CosLifeCycle
-- TAO_CosNaming
-- TAO_CosNotification
-- TAO_CosProperty
-- TAO_CosTime
-- TAO_CosTrading
-- TAO_DsLogAdmin
-- TAO_Fault_Tolerance
-- TAO_LoadBalancing
-- TAO_RTEvent
-- TAO_RTOLDEvent
-- TAO_RTSched
-- TAO_RTSchedEvent
-- TAO_Security
-- TAO_SSLIOP
-- TAO_Svc_Utils
-
-The *.lib files are located in the directory where the project that creates
-them exists. The *.dll files are usually placed in ACE_wrappers\bin (so you
-only need to add one directory to your path).
-
-I hesitate to put down explicit instructions on what libraries need to be
-linked in, considering that the libraries are being split apart more and more
-for footprint purposes. For most ACE stuff, you will only need to link in
-ace.lib. For plain TAO clients TAO.lib is enough. TAO servers also require
-TAO_PortableServer.lib for the POA. If the TAO application uses Dynamic Anys,
-TAO_DynamicAny.lib is also needed. Then if any of the ORB Services are used,
-more libraries are needed. For example, a client that uses the Name Service
-would need to link TAO_CosNaming.lib.
-
-And note that the release versions of the libraries are listed above. For
-debug configurations the libraries would be aced.lib, TAOd.lib, etc.
-
-@subsection msvc_external_projects External ACE/TAO Projects
-
-It is a little difficult for us to list how exactly one should create
-projects that use ACE/TAO but are external to the ACE_wrappers tree. Since
-most projects we create are in that tree, we can make assumptions about
-directory structure that doesn't always apply for external projects. In
-other words, we have ideas how they should work, but they usually remain
-a bit, um, untested. :-)
-
-There are three main dependencies a project would have on ACE/TAO.
-
-- Include paths: Since all the headers use a subdirectory way of referring
- to include files (such as "ace/OS.h" instead of just "OS.h"). In order
- to make this work either the path to ACE_wrappers (and ACE_wrappers\TAO and
- ACE_wrappers\TAO\orbsvcs, etc.) to the additional include paths of the
- project or in MSVC. I believe it is a better idea to add them to the global
- MSVC directories. That way the path to ACE on a machine doesn't get hard
- coded into the project itself (this should make it easier to move the
- project between machines where ACE is installed in different places).
-
-- Libraries and library paths: Depending on what features are needed,
- different libraries are needed to be linked in. (This is covered more in
- an above section). These libraries are specified in the project, but can
- be specified in different ways. The first is the hard coded way (a full
- path, such as "C:\ACE_wrappers\ace\aced.lib"). The second is listing only
- the library (such as "aced.lib") and then specify the path either in the
- project or via MSVC global settings. Just like for the include paths, MSVC
- global settings is probably the more robust way of specifying this.
-
-- TAO_IDL: TAO's IDL compiler resides in ACE_wrappers\bin. If the external
- project contains IDL files, then a custom build configuration can be used
- to automatically call TAO_IDL. Note that the location of the release
- version of the compiler is in ACE_wrappers\bin\Release (although it doesn't
- matter which version you use, they both produce the same output). If
- ACE_wrappers\bin is included in the path, then the build command can just
- refer to tao_idl and it can be found via the path. The other options are
- to refer to tao_idl via an absolute hard coded path or to add
- ACE_wrappers\bin to the MSVC's global executable path settings. Either
- way the bin directory must be in the path or in the global settings so
- tao_idl can find aced.dll.
-
-So I guess in summary we would recommend adding most of the settings to Visual
-C++'s global settings (include paths, library paths, and executable paths)
-and just refer to the libraries without any paths.
-
-@subsection msvc_aceroot ACE_ROOT
-
-ACE_ROOT is an interesting environment variable. Even though it is heavily
-used on Unix (in fact, ACE/TAO will not compile without it) it really isn't
-needed for MSVC. The reason for this is that we were interested in making
-configuration and setup really easy for Visual C++ on Windows. In retrospect
-it might have made quite a few things easier to specify if ACE_ROOT was
-required. One thing you might notice is that TAO_IDL will display a message
-if ACE_ROOT isn't set, but it is only a problem if the IDL file includes
-<orb.idl> and you don't use -I to specify where orb.idl is.
-
-*/ \ No newline at end of file
diff --git a/docs/run_test.txt b/docs/run_test.txt
deleted file mode 100644
index 9889a9222e3..00000000000
--- a/docs/run_test.txt
+++ /dev/null
@@ -1,172 +0,0 @@
-/**
-@page run_test_howto How to write a run_test.pl
-
-ACE/TAO's auto_builds expect run_test.pl's to follow some guidelines
-that are needed to keep the auto_builds from hanging and to make
-sure the run_test.pl works on all platforms
-
-- The run_test must not hang or block.
-- The run_test must clean up any temporary files when it is done.
-- The run_test must not require any user input
-- The run_test should return a non-zero value if the test failed
-
-Following is an example
-
-@subsection example Example
-
-@verbatim
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-# -*- perl -*-
-
-use lib '../../../bin';
-use PerlACE::Run_Test;
-
-$status = 0;
-
-$server_ior = PerlACE::LocalFile ("server.ior");
-unlink $server_ior;
-
-$SV = new PerlACE::Process ("server", "-o $server_ior");
-$CL = new PerlACE::Process ("client", "-k file://$server_ior");
-
-$SV->Spawn ();
-
-if (PerlACE::waitforfile_timed ($server_ior, 5) == -1) {
- print STDERR "ERROR: cannot find file <$server_ior>\n";
- $SV->Kill ();
- exit 1;
-}
-
-$client = $CL->SpawnWaitKill (60);
-
-if ($client != 0) {
- print STDERR "ERROR: client returned $client\n";
- $status = 1;
-}
-
-$server = $SV->TerminateWaitKill (5);
-
-if ($server != 0) {
- print STDERR "ERROR: server returned $server\n";
- $status = 1;
-}
-
-unlink $server_ior;
-
-exit $status;
-@endverbatim
-
-@subsection details Example Details
-
-@verbatim
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-@endverbatim
-
-This is the standard header stuff. The eval is a trick used
-to get the perl script to run if it a unix shell treats it as
-a shell script.
-
-The CVS ID string is the usual one we put in.
-
-@verbatim
-use lib '../../../bin';
-use PerlACE::Run_Test;
-@endverbatim
-
-The use lib line is used to tell Perl where the PerlACE modules are.
-It should be a relative path to the bin directory.
-
-And PerlACE::Run_Test is a module to be used by all run_test.pl's.
-It does a couple of things, including parsing some common command
-line arguments (like -Config and -ExeSubDir) and also brings in
-the PerlACE::Process module.
-
-@verbatim
-$status = 0;
-
-$server_ior = PerlACE::LocalFile ("server.ior");
-
-unlink $server_ior;
-@endverbatim
-
-Because of the way tests work on chorus, we need to have a fully
-qualified path to all *.ior and *.conf files. We unlink the file
-immediately because we use PerlACE::waitforfile_timed later.
-
-@verbatim
-$SV = new PerlACE::Process ("server", "-o $server_ior");
-$CL = new PerlACE::Process ("client", " -k file://$server_ior ");
-
-$SV->Spawn ();
-@endverbatim
-
-The PerlACE::Process is constructed with an executable and
-arguments. @note Unlike the old Process module, the process
-isn't started until one of the Spawn methods is used.
-
-@verbatim
-if (PerlACE::waitforfile_timed ($server_ior, 5) == -1) {
- print STDERR "ERROR: cannot find file <$server_ior>\n";
- $SV->Kill ();
- exit 1;
-}
-@endverbatim
-
-The PerlACE::waitforfile_timed method waits until the file is
-created. In this way, we know when to start the client. If
-no IOR file is used, then you'd need to use Perl's sleep
-method.
-
-@verbatim
-$client = $CL->SpawnWaitKill (60);
-
-if ($client != 0) {
- print STDERR "ERROR: client returned $client\n";
- $status = 1;
-}
-@endverbatim
-
-Here is an example of starting the client. SpawnWaitKill will start
-the process and wait for the specified number of seconds for the
-process to end. If the time limit is reached, it will kill the
-process and return -1.
-
-The return value of SpawnWaitKill is the return value of the
-process, unless it timed out. You don't need to check for the
-timeout, since SpawnWaitKill will print out a timeout error.
-Instead, just check for != 0.
-
-@verbatim
-$server = $SV->TerminateWaitKill (5);
-
-if ($server != 0) {
- print STDERR "ERROR: server returned $server\n";
- $status = 1;
-}
-@endverbatim
-
-Here is the termination of the server. Servers are usually terminated
-either by TerminateWaitKill or just WaitKill. TerminateWaitKill is
-used when the server doesn't shut down itself. WaitKill is used when
-it does (such as when the client calls a shutdown method). Once
-again, we check the return status.
-
-
-@verbatim
-unlink $server_ior;
-
-exit $status;
-@endverbatim
-
-And finally, we unlink any files that were created and then just
-exit with $status.
-
-*/ \ No newline at end of file
diff --git a/docs/tutorials/001/001.dsp b/docs/tutorials/001/001.dsp
deleted file mode 100644
index 196a498962a..00000000000
--- a/docs/tutorials/001/001.dsp
+++ /dev/null
@@ -1,108 +0,0 @@
-# Microsoft Developer Studio Project File - Name="001" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=001 - 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 "001.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 "001.mak" CFG="001 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "001 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "001 - 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)" == "001 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "001 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"server.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "001 - Win32 Release"
-# Name "001 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\logger.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/001/00SetEnv b/docs/tutorials/001/00SetEnv
deleted file mode 100644
index eca78e10c85..00000000000
--- a/docs/tutorials/001/00SetEnv
+++ /dev/null
@@ -1,2 +0,0 @@
-export ACE_ROOT=/local/src/ACE/ACE_wrappers
-export LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
diff --git a/docs/tutorials/001/Makefile b/docs/tutorials/001/Makefile
deleted file mode 100644
index 8c465a2faf4..00000000000
--- a/docs/tutorials/001/Makefile
+++ /dev/null
@@ -1,76 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the Reactor Server Logging Daemon
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = server
-
-FILES =
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(addsuffix .o,$(FILES))
-SHOBJ = $(addsuffix .so,$(FILES))
-
-LDLIBS = $(addprefix .shobj/,$(SHOBJ))
-
-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.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-# In order to make the generation of HTML pages from sourcecode
-# easier, I've started putting the comments into *.pre and *.pst files.
-# Those are then combined (via the perl script "combine") with the
-# source code to create the HTMLs. In an effort to declutter the
-# directory, I archive the component files in a shell-archive (eg --
-# shar) file that is commited to the repository.
-
-# Invoke the combine script to pull together the pre-code comments,
-# code and post-code comments that makeup a tutorial page. 'combine'
-# keys itself off of the *.pre files to know what it should build. An
-# accessory file "bodies" specifies which source files comprise the
-# body of each tutorial page.
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-# The SHAR target simply invokes "shar" to create the shell archive.
-# It is important to include all "component" files in the shar command
-# line so that they will be included in the archive. It is not
-# necessary to include the source code files since they're commited as-is.
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-# For orthogonality, we have an UNSHAR to match SHAR.
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-.obj/server.o .shobj/server.so: server.cpp acceptor.h logger.h
-
diff --git a/docs/tutorials/001/acceptor.h b/docs/tutorials/001/acceptor.h
deleted file mode 100644
index d44433bb233..00000000000
--- a/docs/tutorials/001/acceptor.h
+++ /dev/null
@@ -1,128 +0,0 @@
-// $Id$
-
-#ifndef _CLIENT_ACCEPTOR_H
-#define _CLIENT_ACCEPTOR_H
-
-/* A SOCK_Acceptor knows how to accept socket connections. We'll use
- one of those at the heart of our Logging_Acceptor. */
-#include "ace/SOCK_Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* An Event_Handler is what you register with ACE_Reactor. When
- events occur, the reactor will callback on the Event_Handler. More
- on that in a few lines. */
-#include "ace/Event_Handler.h"
-
-/* When a client connects, we'll create a Logging_Handler to deal with
- the connection. Here, we bring in that declaration. */
-#include "logger.h"
-
-/* Our Logging_Acceptor is derived from ACE_Event_Handler. That lets
- the reactor treat our acceptor just like every other handler. */
-class Logging_Acceptor : public ACE_Event_Handler
-{
-public:
-
- /* For this simple case we won't bother with either constructor or
- destructor. In a real application you would certainly have them. */
-
- /* Here's the open() method we called from main(). We have two
- things to accomplish here: (1) Open the acceptor so that we can
- hear client requests and (2) register ourselves with the reactor
- so that we can respond to those requests. */
- int open (const ACE_INET_Addr &addr,
- ACE_Reactor *reactor)
- {
- /* Perform the open() on the acceptor. We pass through the
- address at which main() wants us to listen. The second
- parameter tells the acceptor it is OK to reuse the address.
- This is necessary sometimes to get around closed connections
- that haven't timed out. */
- if (this->peer_acceptor_.open (addr, 1) == -1)
- return -1;
-
- /* Remember the reactor we're using. We'll need it later when we
- create a client connection handler. */
- reactor_ = reactor;
-
- /* Now we can register with the reactor we were given. Since the
- reactor pointer is global, we could have just used that but it's
- gross enough already. Notice that we can pass 'this' right into
- the registration since we're derived from ACE_Event_Handler. We
- also provide ACCEPT_MASK to tell the reactor that we want to
- know about accept requests from clients. */
- return reactor->register_handler (this,
- ACE_Event_Handler::ACCEPT_MASK);
- }
-
-private:
-
- /* To provide multi-OS abstraction, ACE uses the concept of
- "handles" for connection endpoints. In Unix, this is a
- traditional file descriptor (or integer). On other OS's, it may
- be something else. The reactor will need to get the handle (file
- descriptor) to satisfy it's own internal needs. Our relevant
- handle is the handle of the acceptor object, so that's what we
- provide. */
- ACE_HANDLE get_handle (void) const
- {
- return this->peer_acceptor_.get_handle ();
- }
-
- /* When an accept request arrives, the reactor will invoke the
- handle_input() callback. This is where we deal with the
- connection request. */
- virtual int handle_input (ACE_HANDLE handle)
- {
- /* The handle provided to us by the reactor is the one that
- triggered our up-call. In some advanced situations, you might
- actually register a single handler for multiple connections.
- The _handle parameter is a way to sort 'em out. Since we don't
- use that here, we simply ignore the parameter with the
- ACE_UNUSED_ARG() macro. */
- ACE_UNUSED_ARG (handle);
-
- Logging_Handler *svc_handler;
-
- /* In response to the connection request, we create a new
- Logging_Handler. This new object will be used to interact with
- the client until it disconnects. Note how we use the
- ACE_NEW_RETURN macro, which returns -1 if operator new fails. */
- ACE_NEW_RETURN (svc_handler,
- Logging_Handler,
- -1);
-
- /* To complete the connection, we invoke the accept() method call
- on the acceptor object and provide it with the connection
- handler instance. This transfers "ownership" of the connection
- from the acceptor to the connection handler. */
- if (this->peer_acceptor_.accept (*svc_handler) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p",
- "accept failed"),
- -1);
-
- /* Again, most objects need to be open()ed before they are useful.
- We'll give the handler our reactor pointer so that it can
- register for events as well. If the open fails, we'll force a
- close(). */
- if (svc_handler->open (reactor_) == -1)
- svc_handler->close ();
-
- return 0;
- }
-
-protected:
-
- /* Our acceptor object instance */
- ACE_SOCK_Acceptor peer_acceptor_;
-
- /* A place to remember our reactor pointer */
- ACE_Reactor *reactor_;
-};
-
-#endif /* _CLIENT_ACCEPTOR_H */
-
diff --git a/docs/tutorials/001/combine.shar b/docs/tutorials/001/combine.shar
deleted file mode 100644
index 2a7e1b7a47a..00000000000
--- a/docs/tutorials/001/combine.shar
+++ /dev/null
@@ -1,574 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/001'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 524 -rw-rw-r-- hdr
-# 38 -rw-rw-r-- bodies
-# 4034 -rw-rw-r-- page01.pre
-# 2186 -rw-rw-r-- page02.pre
-# 553 -rw-rw-r-- page03.pre
-# 79 -rw-rw-r-- page04.pre
-# 1149 -rw-rw-r-- page05.pre
-# 478 -rw-rw-r-- page02.pst
-# 1434 -rw-rw-r-- page03.pst
-# 279 -rw-rw-r-- page04.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32295; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
-X <TITLE>ACE Tutorial 001</TITLE>
-X <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <META NAME="Description" CONTENT="A first step towards using ACE productively">
-</HEAD>
-<BODY text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
-X
-X
-<CENTER><P><B><FONT SIZE=+2>ACE&nbsp;Tutorial 001<BR>
-A Beginners Guide to Using the ACE&nbsp;Toolkit</FONT></B></P></CENTER>
-X
-<hr>
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-1d643c1c0995e071a0a9e3662d7a440b hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 524 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '524,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-server.cpp
-acceptor.h
-logger.h
-SHAR_EOF
- $shar_touch -am 0117140699 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-20ddb6c1ff71a6481ce0956f1a70a612 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 38 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '38,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-<P>The purpose of this tutorial is to show you how to create a very simple
-server capable of handling multiple client connections. Unlike a &quot;traditional&quot;
-server application, this one handles all requests in one process. Issues
-of multi-processing and multi-threading will be handled in later tutorials.</P>
-X
-<P>
-<HR WIDTH="100%"></P>
-X
-<P>What do you need to create a server?</P>
-X
-<OL>
-<LI>Something which accepts connections from clients</LI>
-X
-<LI>Something which handles established connections</LI>
-X
-<LI>A main program loop that handles it all</LI>
-</OL>
-X
-<P>The ACE&nbsp;Acceptor provides a solution for our first requirement.
-This class is given a TCP/IP&nbsp;port number on which it will listen for
-incoming connections. When a connection is attempted, the acceptor will
-create a new object (the handler) to deal with the client connection while
-the acceptor goes back to listening for other connections.</P>
-X
-<P>The ACE&nbsp;EventHandler solves our second requirement. This doesn't
-seem obvious now but as we progress through this tutorial it will become
-more clear.</P>
-X
-<P>Finally, a simple <I>main()</I> function will provide our program loop.
-After any program initialization, it will enter an infinite loop which
-waits for connection attempts to the Acceptor or data &quot;events&quot;
-on the EventHandler.</P>
-X
-<P>
-<HR WIDTH="100%"></P>
-X
-<P>Before we continue, I need to introduce one more ACE concept: the Reactor.
-</P>
-X
-<P>I don't want to go into great detail at this time on what the Reactor
-is, what it does and how it does it but it is necessary for you to understand
-the basic function of a reactor because it is going to be in the first
-piece of code you see. The figure below depicts the interrelationships
-between the Reactor, the Acceptor and the application handler.</P>
-<P> <center> <img src="simple.gif" align=center> </center>
-X
-<P>Briefly:<BR>
-The reactor is an object which reacts when things happen to other objects.
-These things are called <I>events</I>. The <I>other objects</I> are communications
-objects which you have <I>registered</I> with the reactor. At the time
-of registration, you also specify which events you are interested in. The
-reactor is notified by the operating system when the events of interest
-occur within the registered objects. The reactor then uses member functions
-of the registered object to process the event. Notice that the reactor
-doesn't care what happens because of the event. It is the object's responsibility
-to process the event correctly. The reactor simply notifies the object
-of the event.</P>
-X
-<P>Why use the reactor?</P>
-X
-<P>That will become clear as the tutorial progresses. For now, however,
-a brief answer would be this: it allows multiple simultaneous client connections
-to be processed efficiently by a single-threaded server. </P>
-X
-<P>Servers have traditionally created a separate thread or process for
-each client served. For large-volume services (such as telnet and ftp)
-this is appropriate. However, for small-volume services the overhead of
-process creation far outweighs the actual work being done. So... folks
-begin using threads instead of processes to handle the clients. This is
-good also but still, in some cases, the overhead is too much to bear. Instead,
-why not have a single thread handle several clients and use a more intelligent
-load-balancing methodology than one-thread-or-process-per-client?
-<i>Caveat: Handling all requests in one thread of one process is really
-only good when the requests can be handled almost instantaneously.</i>
-</P>
-X
-<P>This is where the reactor's power and flexibility come into play. The
-developer can create a simple, single-threaded application that is later
-modified to thread-per-client, process-per-client or thread-pool solution.
-<P>
-If all of this is gibberish and makes you think that ACE is way to hard to
-learn, don't worry. We'll go into all the details and explain as we go.
-I only went into all of this so that it can kick around in the back of your
-mind until you need it later.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-58b12a93efda94c99be5d0b38c3096a5 page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 4034 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '4034,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-<P>From here, we to move on to the main program loop. In a way, we're
-starting at the final product when we do this, but it is a very simple
-piece of code and a good place to start.
-X
-<P>The <A HREF="server.cpp">main</A>
-program is really quite simple. The real work is done in the ACE derived
-classes.
-X
-<P>
-Kirthika Parameswaran offers this abstract of Tutorial 1:
-<UL>
-<P>
-This is a simple logging server example.
-The Reactor is used to handle more than one client request using a
-single thread of execution instead of one thread per client. The Reactor
-reactes to events and demultiplexes the events to the appropriate
-Event_Handler registered with it, using the "callback" technique. The
-reactor runs in an infinte event loop handling all the incoming events.
-<P>
-The Logging_Acceptor listens at a SERVER PORT address and passively
-waits for requests to arrive. The Acceptor is also an Event_Handler and
-is registered with the Reactor. This way it is simply yet another
-Event_Handler for the Reactor and hence no special processing is needed
-for it.
-<P>
-Once a connection request occurs, the Acceptor accepts it and
-a connection is established. The reactor instance is passed to the
-handler so that it can register with the Reactor. It does so with an
-ACE_Event_Handler::ACCEPT_MASK.
-<P>
-The Logging_Client is another Event_Handler which actually handles the
-client requests in its handle_input() method. It is also registered
-with the Reactor with the ACE_Event_Handler::READ_MASK.
-<P>
-The Event_Handlers can be unregistered from the Reactor using
-handle_close() methods
-or explicitly calling the remove_handler() methods.
-<P>
-This server application builds and executes succesfully waiting for
-client requests to arrive.
-<P>
-</UL>
-FYI (from Doug):
-<UL>
-The ACCEPT_MASK is defined in the ACE_Event_Handler class. It's used
-to inform the Reactor that you want to register an event handler to
-"accept" a connection passively. Not surprisingly, the ACE_Acceptor
-component uses this.
-<P>
-The READ_MASK is also defined in the ACE_Event_Handler class. It's
-used to inform the Reactor that you want to register an event handler
-to "read" data from an established connection.
-</UL>
-<hr>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-38b2ebf93344832204a8327d37bab41c page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 2186 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '2186,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-<P>Now we begin to look at the <A HREF="acceptor.h">acceptor</A> object.
-X
-<P>
-Kirthika has this analogy:
-<P>
-<UL>
-Consider an office:
-<P>
-Reactor: Receptionist
-<P>
-Event_Handlers: various Departments catering to specific needs.
-<P>
-SERVER_PORT: door
-<P>
-Acceptor: Doorkeeper
-<P>
-Thus when a needy person (client) enters the open door (port)
-maintained by the doorkeeper (acceptor waiting for connection
-request), the receptionist(reactor) directs the person towards the
-appropriate section (event_handler) which would cater to his needs.
-</UL>
-<P>
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-b1eca88136f15c2c1156a2602daaff7e page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 553 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '553,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-<P>Now we begin to look at the <A HREF="logger.h">logger</A>
-object.
-X
-<P>
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-ea4861a868e3dce3607602f1ce35b7fa page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 79 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '79,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-<P>This concludes the first tutorial on using ACE. We've learned how to
-create a simple server without knowing very much about network programming.
-X
-<P>The code used in this tutorial is for illustration purposes. That means
-it may or may not work.&nbsp;&nbsp; Actually, it <I>does</I> work but the
-astute reader will notice a number of places for potential memory leaks.&nbsp;
-We'll work on cleaning those up in future tutorials but if you find one
-feel free to send me a fix and I'll integrate it into the tutorial.
-X
-<UL>
-<LI>
-<A HREF="00SetEnv">Environment
-Settings</A></LI>
-X
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-X
-<LI>
-<A HREF="server.cpp">main
-program</A></LI>
-X
-<LI>
-<A HREF="acceptor.h">acceptor
-object</A></LI>
-X
-<LI>
-<A HREF="logger.h">connection
-handler</A></LI>
-</UL>
-X
-<P>
-To read more about the patterns used in this example (as well as
-quite a few which aren't!), you should check out
-<A HREF="http://www.cs.wustl.edu/~schmidt/patterns-ace.html">http://www.cs.wustl.edu/~schmidt/patterns-ace.html.</A>
-In fact, it's probably safe to say that the concepts found there will keep
-coming back to haunt you as these tutorials continue.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-7d00b8c59c4f7210634bc5fdb75dfbcc page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 1149 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '1149,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pst ==============
-if test -f 'page02.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pst' &&
-<HR WIDTH="100%">
-X
-<P>As I said, the main program is really quite simple:
-<UL>
-<LI>
-Create an address for the <I>port</I> we want to listen to</LI>
-X
-<LI>
-Create an acceptor which listens on that address</LI>
-X
-<LI>
-Register the acceptor with a reactor to respond to the connection requests</LI>
-X
-<LI>
-Enter an infinite loop to let the reactor handle the events</LI>
-</UL>
-On the next page, we will take a look at the acceptor and how it responds
-to new connection requests.
-X
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pst' &&
- chmod 0664 'page02.pst' ||
- $echo 'restore of' 'page02.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pst:' 'MD5 check failed'
-51b1f08eabda5789182b566fdb7756fe page02.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pst'`"
- test 478 -eq "$shar_count" ||
- $echo 'page02.pst:' 'original size' '478,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pst ==============
-if test -f 'page03.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pst' &&
-<HR WIDTH="100%"></PRE>
-It is important to notice here that we have done very little application-specifc
-code in developing this object. In fact, if we take out the progress information,
-the only app-specific code is when we create the new <I>Logging_Handler</I>
-object to give to the <I>accept</I> function. You may begin to wonder why
-there isn't a C++ template that does all of this coding for you. Actually,
-the ACE toolkit happens to have one handy:
-<UL>typedef ACE_Acceptor &lt;<I>YourHandlerClass</I>, ACE_SOCK_ACCEPTOR>
-<I>YourAcceptorClass</I>;</UL>
-We would have used it like this:
-<UL>typedef ACE_Acceptor &lt;Logging_Handler, ACE_SOCK_ACCEPTOR> Client_Acceptor;</UL>
-This will create a piece of code similar to what I've shown above. The
-primary difference is that the <I>handle_input </I>function created by
-the template does NOT register the handler with the reactor. In the long-run,
-that is good for us because we can then move that logic into the <I>open</I>
-function of the <I>Logging_Handler</I> and use a completely-generic acceptor.
-X
-<P>Now that we know how to accept a connection request, let's move on to
-the next page where we learn how to handle the actual connection. Even
-though we just learned about this cool template thing, we will continue
-to use the "hand-written" acceptor developed above. As I mentioned, the
-only difference will be in the <I>open</I> function of the connection handler
-anyway.
-X
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pst' &&
- chmod 0664 'page03.pst' ||
- $echo 'restore of' 'page03.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pst:' 'MD5 check failed'
-7a18def18c6a83a1015e08f63b5868be page03.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pst'`"
- test 1434 -eq "$shar_count" ||
- $echo 'page03.pst:' 'original size' '1434,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pst ==============
-if test -f 'page04.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pst' &&
-<HR WIDTH="100%">
-X
-<P>
-The comments really should tell the story. The really
-interesting stuff is in <i>handle_input()</i>. Everything
-else is just housekeeping.
-In the future, we'll learn about ACE_Svc_Handler&lt;>
-which will take care of most of the housekeeping for us.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pst' &&
- chmod 0664 'page04.pst' ||
- $echo 'restore of' 'page04.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pst:' 'MD5 check failed'
-5baa295de79c6c978bae3e496e32854e page04.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pst'`"
- test 279 -eq "$shar_count" ||
- $echo 'page04.pst:' 'original size' '279,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32295
-exit 0
diff --git a/docs/tutorials/001/logger.h b/docs/tutorials/001/logger.h
deleted file mode 100644
index e292250e17a..00000000000
--- a/docs/tutorials/001/logger.h
+++ /dev/null
@@ -1,178 +0,0 @@
-// $Id$
-
-#ifndef _CLIENT_HANDLER_H
-#define _CLIENT_HANDLER_H
-
-/* A connection handler will also be derived from ACE_Event_Handler so
- that we can register with a reactor. */
-
-#include "ace/Event_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/INET_Addr.h"
-
-/* Since we're doing TCP/IP, we'll need a SOCK_Stream for the
- connection. */
-#include "ace/SOCK_Stream.h"
-
-class Logging_Handler : public ACE_Event_Handler
-{
-public:
- /*
- Like the acceptor, we're simple enough to avoid constructor and destructor.
- */
-
- /* To open the client handler, we have to register ourselves with
- the reactor. Notice that we don't have to "open" our
- ACE_SOCK_Stream member variable. Why? Because the call to the
- acceptor's accept() method took care of those details for us. */
-
- int open (ACE_Reactor *reactor)
- {
- /*
- Remember our reactor...
- */
- reactor_ = reactor;
-
- /* In this case we're using the READ_MASK. Like the acceptor,
- handle_input() will be called due to this mask but it's a nice
- piece of bookkeeping to have separate masks for the separate
- types of activity. */
-
- if (reactor->register_handler (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) can't register with reactor\n"),
- -1);
- return 0;
- }
-
- /* If we're explicitly closed we'll close our "file handle". The
- net result is to close the connection to the client and remove
- ourselves from the reactor if we're registered */
-
- int close (void)
- {
- return this->handle_close (ACE_INVALID_HANDLE,
- ACE_Event_Handler::RWE_MASK);
- }
-
- /* This is a bit of magic... When we call the accept() method of
- the acceptor object, it wants to do work on an ACE_SOCK_Stream.
- We have one of those as our connection to the client but it would
- be gross to provide a method to access that object. It's much
- cooler if the acceptor can just treat the Logging_Handler as an
- ACE_SOCK_Stream. Providing this cast operator lets that happen
- cleanly. */
-
- operator ACE_SOCK_Stream &()
- {
- return this->cli_stream_;
- }
-
-protected:
-
- /* Again, like the acceptor, we need to provide the connection
- handle to the reactor. */
-
- ACE_HANDLE get_handle (void) const
- {
- return this->cli_stream_.get_handle ();
- }
-
- /* And here's the handle_input(). This is really the workhorse of
- the application. */
-
- virtual int handle_input (ACE_HANDLE)
- {
- /*
- Create and initialize a small receive buffer. The extra byte is
- there to allow us to have a null-terminated string when it's over.
- */
- char buf[BUFSIZ + 1];
-
- /* Invoke the recv() method of the ACE_SOCK_Stream to get some
- data. It will return -1 if there is an error. Otherwise, it
- will return the number of bytes read. Of course, if it read
- zero bytes then the connection must be gone. How do I know
- that? Because handle_input() would not be called by the reactor
- if there wasn't *some* kind of activity and a closed connection
- looks like a read request to the reactor. But when you read
- from a closed connection you'll read zero bytes.
-
- Notice that in the error case or closed case we return -1. That
- tells the reactor to call our handle_close() where we'll take
- care of shutting down cleanly.
-
- Although we don't make use of them, there are additional
- parameters you can use with the recv() call. One of these is an
- ACE_Time_Value that allows you to limit the amount of time
- blocking on the recv(). You would use that if you weren't sure
- if data was available. Since we only get to handle_input() when
- data is ready, that would be redundant. On the other hand, if
- you use recv_n() to read *exactly* a number of bytes then
- limiting the time you wait for those bytes might be good. The
- other paramter that may come in handy is an integer
- <i>flags</i>. This is passed directly to the underlying OS
- recv() call. See the man page recv(2) and the header
- sys/socket.h for the gory details. */
-
- ssize_t retval;
- switch (retval = this->cli_stream_.recv (buf, BUFSIZ))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) %p bad read\n",
- "client logger"),
- -1);
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) closing log daemon (fd = %d)\n",
- this->get_handle ()),
- -1);
- default:
- buf[retval] = '\0';
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) from client: %s",
- buf));
- }
-
- return 0;
- }
-
- /* When handle_input() returns -1, we'll end up here. There are a
- few housekeeping chores to handle. */
-
- int handle_close (ACE_HANDLE,
- ACE_Reactor_Mask _mask)
- {
- /* Remove ourselves from the reactor. We have to include the
- DONT_CALL in the mask so that it won't call handle_close() on us
- again! */
- reactor_->remove_handler (this,
- _mask | ACE_Event_Handler::DONT_CALL);
-
- /* Close the socket that we're connected to the client with. */
- cli_stream_.close ();
-
- /* Since we know we were dynamically allocated by the acceptor,
- now is a good time to get rid of ourselves. */
- delete this;
-
- return 0;
- }
-
-protected:
-
- /* Our peer connection. */
- ACE_SOCK_Stream cli_stream_;
-
- /* Our reactor (and our acceptor's reactor). */
- ACE_Reactor *reactor_;
-};
-
-#endif /* _CLIENT_HANDLER_H */
-
diff --git a/docs/tutorials/001/page01.html b/docs/tutorials/001/page01.html
deleted file mode 100644
index f79c256bbeb..00000000000
--- a/docs/tutorials/001/page01.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!-- $Id$ -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
- <TITLE>ACE Tutorial 001</TITLE>
- <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
-</HEAD>
-<BODY text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
-
-
-<CENTER><P><B><FONT SIZE=+2>ACE&nbsp;Tutorial 001<BR>
-A Beginners Guide to Using the ACE&nbsp;Toolkit</FONT></B></P></CENTER>
-
-<hr>
-<P>The purpose of this tutorial is to show you how to create a very simple
-server capable of handling multiple client connections. Unlike a &quot;traditional&quot;
-server application, this one handles all requests in one process. Issues
-of multi-processing and multi-threading will be handled in later tutorials.</P>
-
-<P>
-<HR WIDTH="100%"></P>
-
-<P>What do you need to create a server?</P>
-
-<OL>
-<LI>Something which accepts connections from clients</LI>
-
-<LI>Something which handles established connections</LI>
-
-<LI>A main program loop that handles it all</LI>
-</OL>
-
-<P>The ACE&nbsp;Acceptor provides a solution for our first requirement.
-This class is given a TCP/IP&nbsp;port number on which it will listen for
-incoming connections. When a connection is attempted, the acceptor will
-create a new object (the handler) to deal with the client connection while
-the acceptor goes back to listening for other connections.</P>
-
-<P>The ACE&nbsp;EventHandler solves our second requirement. This doesn't
-seem obvious now but as we progress through this tutorial it will become
-more clear.</P>
-
-<P>Finally, a simple <I>main()</I> function will provide our program loop.
-After any program initialization, it will enter an infinite loop which
-waits for connection attempts to the Acceptor or data &quot;events&quot;
-on the EventHandler.</P>
-
-<P>
-<HR WIDTH="100%"></P>
-
-<P>Before we continue, I need to introduce one more ACE concept: the Reactor.
-</P>
-
-<P>I don't want to go into great detail at this time on what the Reactor
-is, what it does and how it does it but it is necessary for you to understand
-the basic function of a reactor because it is going to be in the first
-piece of code you see. The figure below depicts the interrelationships
-between the Reactor, the Acceptor and the application handler.</P>
-<P> <center> <img src="simple.gif" align=center> </center>
-
-<P>Briefly:<BR>
-The reactor is an object which reacts when things happen to other objects.
-These things are called <I>events</I>. The <I>other objects</I> are communications
-objects which you have <I>registered</I> with the reactor. At the time
-of registration, you also specify which events you are interested in. The
-reactor is notified by the operating system when the events of interest
-occur within the registered objects. The reactor then uses member functions
-of the registered object to process the event. Notice that the reactor
-doesn't care what happens because of the event. It is the object's responsibility
-to process the event correctly. The reactor simply notifies the object
-of the event.</P>
-
-<P>Why use the reactor?</P>
-
-<P>That will become clear as the tutorial progresses. For now, however,
-a brief answer would be this: it allows multiple simultaneous client connections
-to be processed efficiently by a single-threaded server. </P>
-
-<P>Servers have traditionally created a separate thread or process for
-each client served. For large-volume services (such as telnet and ftp)
-this is appropriate. However, for small-volume services the overhead of
-process creation far outweighs the actual work being done. So... folks
-begin using threads instead of processes to handle the clients. This is
-good also but still, in some cases, the overhead is too much to bear. Instead,
-why not have a single thread handle several clients and use a more intelligent
-load-balancing methodology than one-thread-or-process-per-client?
-<i>Caveat: Handling all requests in one thread of one process is really
-only good when the requests can be handled almost instantaneously.</i>
-</P>
-
-<P>This is where the reactor's power and flexibility come into play. The
-developer can create a simple, single-threaded application that is later
-modified to thread-per-client, process-per-client or thread-pool solution.
-<P>
-If all of this is gibberish and makes you think that ACE is way to hard to
-learn, don't worry. We'll go into all the details and explain as we go.
-I only went into all of this so that it can kick around in the back of your
-mind until you need it later.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/001/page02.html b/docs/tutorials/001/page02.html
deleted file mode 100644
index e8a2ea6e156..00000000000
--- a/docs/tutorials/001/page02.html
+++ /dev/null
@@ -1,174 +0,0 @@
-<!-- $Id$ -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
- <TITLE>ACE Tutorial 001</TITLE>
- <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
-</HEAD>
-<BODY text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
-
-
-<CENTER><P><B><FONT SIZE=+2>ACE&nbsp;Tutorial 001<BR>
-A Beginners Guide to Using the ACE&nbsp;Toolkit</FONT></B></P></CENTER>
-
-<hr>
-<P>From here, we to move on to the main program loop. In a way, we're
-starting at the final product when we do this, but it is a very simple
-piece of code and a good place to start.
-
-<P>The <A HREF="server.cpp">main</A>
-program is really quite simple. The real work is done in the ACE derived
-classes.
-
-<P>
-Kirthika Parameswaran offers this abstract of Tutorial 1:
-<UL>
-<P>
-This is a simple logging server example.
-The Reactor is used to handle more than one client request using a
-single thread of execution instead of one thread per client. The Reactor
-reactes to events and demultiplexes the events to the appropriate
-Event_Handler registered with it, using the "callback" technique. The
-reactor runs in an infinte event loop handling all the incoming events.
-<P>
-The Logging_Acceptor listens at a SERVER PORT address and passively
-waits for requests to arrive. The Acceptor is also an Event_Handler and
-is registered with the Reactor. This way it is simply yet another
-Event_Handler for the Reactor and hence no special processing is needed
-for it.
-<P>
-Once a connection request occurs, the Acceptor accepts it and
-a connection is established. The reactor instance is passed to the
-handler so that it can register with the Reactor. It does so with an
-ACE_Event_Handler::ACCEPT_MASK.
-<P>
-The Logging_Client is another Event_Handler which actually handles the
-client requests in its handle_input() method. It is also registered
-with the Reactor with the ACE_Event_Handler::READ_MASK.
-<P>
-The Event_Handlers can be unregistered from the Reactor using
-handle_close() methods
-or explicitly calling the remove_handler() methods.
-<P>
-This server application builds and executes succesfully waiting for
-client requests to arrive.
-<P>
-</UL>
-FYI (from Doug):
-<UL>
-The ACCEPT_MASK is defined in the ACE_Event_Handler class. It's used
-to inform the Reactor that you want to register an event handler to
-"accept" a connection passively. Not surprisingly, the ACE_Acceptor
-component uses this.
-<P>
-The READ_MASK is also defined in the ACE_Event_Handler class. It's
-used to inform the Reactor that you want to register an event handler
-to "read" data from an established connection.
-</UL>
-<hr>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* Include the header file where our client acceptor is defined. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/Reactor.h">ace/Reactor.h</A>"
-
-<font color=red>/* For simplicity, we create our reactor in the global address space.
- In later tutorials we will do something more clever and
- appropriate. However, the purpose of this tutorial is to introduce a
- connection acceptance and handling, not the full capabilities of a
- reactor. */</font>
-ACE_Reactor *g_reactor;
-
-<font color=red>/* Include the header where we define our acceptor object. An
- acceptor is an abstraction that allows a server to "<font color=green>accept</font>"
- connections from clients. */</font>
-<font color=blue>#include</font> "<font color=green>acceptor.h</font>"
-
-<font color=red>/* A TCP/IP server can listen to only one port for connection
- requests. Well-known services can always be found at the same
- address. Lesser-known services are generally told where to listen by
- a configuration file or command-line parameter. For this example,
- we're satisfied with simply hard-coding a random but known value. */</font>
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int, char *[])
-{
- <font color=red>/* Create a Reactor instance. Again, a global pointer isn't exactly
- the best way to handle this but for the simple example here, it
- will be OK. We'll get cute with it later. Note how we use the
- ACE_NEW_RETURN macro, which returns 1 if operator new fails. */</font>
- ACE_NEW_RETURN (g_reactor,
- ACE_Reactor,
- 1);
-
- <font color=red>/* Like the Reactor, I'm skimming over the details of the ADDR
- object. What it provides is an abstraction for addressing services
- in the network. All we need to know at this point is that we are
- creating an address object which specifies the TCP/IP port on
- which the server will listen for new connection requests. */</font>
- ACE_INET_Addr addr (PORT);
-
- Logging_Acceptor *peer_acceptor;
-
- <font color=red>/* We now create an acceptor object. No connections will yet be
- established because the object isn't "<font color=green>open for business</font>" at this
- time. Which brings us to the next line... */</font>
- ACE_NEW_RETURN (peer_acceptor,
- Logging_Acceptor,
- 1);
-
- <font color=red>/* where the acceptor object is opened. You'll find that most ACE
- objects have to be open()ed before they're of any use to you. On
- this open() call, we're telling the acceptor where to listen for
- connections via the 'addr' object. We're also telling it that we
- want it to be registered with our 'g_reactor' instance. */</font>
- if (peer_acceptor->open (addr, g_reactor) == -1 )
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>Opening Acceptor\n</font>"),
- -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) starting up server logging daemon\n</font>"));
-
- <font color=red>/* The reactor's handle_events member function is responsible for
- looking at all registered objects and invoking an appropriate
- member function when anything of interest occurs. When an event is
- processed, the handle_events function returns. In order to get all
- events, we embed this in an infinite loop.
-
- Since we put ourselves into an infinite loop, you'll need to
- CTRL-C to exit the program. */</font>
-
- for (;;)
- g_reactor->handle_events ();
-
- return 0;
-}
-
-</PRE>
-<HR WIDTH="100%">
-
-<P>As I said, the main program is really quite simple:
-<UL>
-<LI>
-Create an address for the <I>port</I> we want to listen to</LI>
-
-<LI>
-Create an acceptor which listens on that address</LI>
-
-<LI>
-Register the acceptor with a reactor to respond to the connection requests</LI>
-
-<LI>
-Enter an infinite loop to let the reactor handle the events</LI>
-</UL>
-On the next page, we will take a look at the acceptor and how it responds
-to new connection requests.
-
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/001/page03.html b/docs/tutorials/001/page03.html
deleted file mode 100644
index a20aacfa007..00000000000
--- a/docs/tutorials/001/page03.html
+++ /dev/null
@@ -1,197 +0,0 @@
-<!-- $Id$ -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
- <TITLE>ACE Tutorial 001</TITLE>
- <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
-</HEAD>
-<BODY text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
-
-
-<CENTER><P><B><FONT SIZE=+2>ACE&nbsp;Tutorial 001<BR>
-A Beginners Guide to Using the ACE&nbsp;Toolkit</FONT></B></P></CENTER>
-
-<hr>
-<P>Now we begin to look at the <A HREF="acceptor.h">acceptor</A> object.
-
-<P>
-Kirthika has this analogy:
-<P>
-<UL>
-Consider an office:
-<P>
-Reactor: Receptionist
-<P>
-Event_Handlers: various Departments catering to specific needs.
-<P>
-SERVER_PORT: door
-<P>
-Acceptor: Doorkeeper
-<P>
-Thus when a needy person (client) enters the open door (port)
-maintained by the doorkeeper (acceptor waiting for connection
-request), the receptionist(reactor) directs the person towards the
-appropriate section (event_handler) which would cater to his needs.
-</UL>
-<P>
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>_CLIENT_ACCEPTOR_H</font>
-<font color=blue>#define</font> <font color=purple>_CLIENT_ACCEPTOR_H</font>
-
-<font color=red>/* A SOCK_Acceptor knows how to accept socket connections. We'll use
- one of those at the heart of our Logging_Acceptor. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Acceptor.h">ace/SOCK_Acceptor.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=red>/* An Event_Handler is what you register with ACE_Reactor. When
- events occur, the reactor will callback on the Event_Handler. More
- on that in a few lines. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/Event_Handler.h">ace/Event_Handler.h</A>"
-
-<font color=red>/* When a client connects, we'll create a Logging_Handler to deal with
- the connection. Here, we bring in that declaration. */</font>
-<font color=blue>#include</font> "<font color=green>logger.h</font>"
-
-<font color=red>/* Our Logging_Acceptor is derived from ACE_Event_Handler. That lets
- the reactor treat our acceptor just like every other handler. */</font>
-class Logging_Acceptor : public ACE_Event_Handler
-{
-public:
-
- <font color=red>/* For this simple case we won't bother with either constructor or
- destructor. In a real application you would certainly have them. */</font>
-
- <font color=red>/* Here's the open() method we called from main(). We have two
- things to accomplish here: (1) Open the acceptor so that we can
- hear client requests and (2) register ourselves with the reactor
- so that we can respond to those requests. */</font>
- int open (const ACE_INET_Addr &addr,
- ACE_Reactor *reactor)
- {
- <font color=red>/* Perform the open() on the acceptor. We pass through the
- address at which main() wants us to listen. The second
- parameter tells the acceptor it is OK to reuse the address.
- This is necessary sometimes to get around closed connections
- that haven't timed out. */</font>
- if (this->peer_acceptor_.open (addr, 1) == -1)
- return -1;
-
- <font color=red>/* Remember the reactor we're using. We'll need it later when we
- create a client connection handler. */</font>
- reactor_ = reactor;
-
- <font color=red>/* Now we can register with the reactor we were given. Since the
- reactor pointer is global, we could have just used that but it's
- gross enough already. Notice that we can pass 'this' right into
- the registration since we're derived from ACE_Event_Handler. We
- also provide ACCEPT_MASK to tell the reactor that we want to
- know about accept requests from clients. */</font>
- return reactor->register_handler (this,
- <font color=#008888>ACE_Event_Handler::ACCEPT_MASK</font>);
- }
-
-private:
-
- <font color=red>/* To provide multi-OS abstraction, ACE uses the concept of
- "<font color=green>handles</font>" for connection endpoints. In Unix, this is a
- traditional file descriptor (or integer). On other OS's, it may
- be something else. The reactor will need to get the handle (file
- descriptor) to satisfy it's own internal needs. Our relevant
- handle is the handle of the acceptor object, so that's what we
- provide. */</font>
- ACE_HANDLE get_handle (void) const
- {
- return this->peer_acceptor_.get_handle ();
- }
-
- <font color=red>/* When an accept request arrives, the reactor will invoke the
- handle_input() callback. This is where we deal with the
- connection request. */</font>
- virtual int handle_input (ACE_HANDLE handle)
- {
- <font color=red>/* The handle provided to us by the reactor is the one that
- triggered our up-call. In some advanced situations, you might
- actually register a single handler for multiple connections.
- The _handle parameter is a way to sort 'em out. Since we don't
- use that here, we simply ignore the parameter with the
- ACE_UNUSED_ARG() macro. */</font>
- ACE_UNUSED_ARG (handle);
-
- Logging_Handler *svc_handler;
-
- <font color=red>/* In response to the connection request, we create a new
- Logging_Handler. This new object will be used to interact with
- the client until it disconnects. Note how we use the
- ACE_NEW_RETURN macro, which returns -1 if operator new fails. */</font>
- ACE_NEW_RETURN (svc_handler,
- Logging_Handler,
- -1);
-
- <font color=red>/* To complete the connection, we invoke the accept() method call
- on the acceptor object and provide it with the connection
- handler instance. This transfers "<font color=green>ownership</font>" of the connection
- from the acceptor to the connection handler. */</font>
- if (this->peer_acceptor_.accept (*svc_handler) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p</font>",
- "<font color=green>accept failed</font>"),
- -1);
-
- <font color=red>/* Again, most objects need to be open()ed before they are useful.
- We'll give the handler our reactor pointer so that it can
- register for events as well. If the open fails, we'll force a
- close(). */</font>
- if (svc_handler->open (reactor_) == -1)
- svc_handler->close ();
-
- return 0;
- }
-
-protected:
-
- <font color=red>/* Our acceptor object instance */</font>
- ACE_SOCK_Acceptor peer_acceptor_;
-
- <font color=red>/* A place to remember our reactor pointer */</font>
- ACE_Reactor *reactor_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* _CLIENT_ACCEPTOR_H */</font>
-
-</PRE>
-<HR WIDTH="100%"></PRE>
-It is important to notice here that we have done very little application-specifc
-code in developing this object. In fact, if we take out the progress information,
-the only app-specific code is when we create the new <I>Logging_Handler</I>
-object to give to the <I>accept</I> function. You may begin to wonder why
-there isn't a C++ template that does all of this coding for you. Actually,
-the ACE toolkit happens to have one handy:
-<UL>typedef ACE_Acceptor &lt;<I>YourHandlerClass</I>, ACE_SOCK_ACCEPTOR>
-<I>YourAcceptorClass</I>;</UL>
-We would have used it like this:
-<UL>typedef ACE_Acceptor &lt;Logging_Handler, ACE_SOCK_ACCEPTOR> Client_Acceptor;</UL>
-This will create a piece of code similar to what I've shown above. The
-primary difference is that the <I>handle_input </I>function created by
-the template does NOT register the handler with the reactor. In the long-run,
-that is good for us because we can then move that logic into the <I>open</I>
-function of the <I>Logging_Handler</I> and use a completely-generic acceptor.
-
-<P>Now that we know how to accept a connection request, let's move on to
-the next page where we learn how to handle the actual connection. Even
-though we just learned about this cool template thing, we will continue
-to use the "hand-written" acceptor developed above. As I mentioned, the
-only difference will be in the <I>open</I> function of the connection handler
-anyway.
-
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/001/page04.html b/docs/tutorials/001/page04.html
deleted file mode 100644
index aa420c45f50..00000000000
--- a/docs/tutorials/001/page04.html
+++ /dev/null
@@ -1,213 +0,0 @@
-<!-- $Id$ -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
- <TITLE>ACE Tutorial 001</TITLE>
- <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
-</HEAD>
-<BODY text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
-
-
-<CENTER><P><B><FONT SIZE=+2>ACE&nbsp;Tutorial 001<BR>
-A Beginners Guide to Using the ACE&nbsp;Toolkit</FONT></B></P></CENTER>
-
-<hr>
-<P>Now we begin to look at the <A HREF="logger.h">logger</A>
-object.
-
-<P>
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>_CLIENT_HANDLER_H</font>
-<font color=blue>#define</font> <font color=purple>_CLIENT_HANDLER_H</font>
-
-<font color=red>/* A connection handler will also be derived from ACE_Event_Handler so
- that we can register with a reactor. */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Event_Handler.h">ace/Event_Handler.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/INET_Addr.h">ace/INET_Addr.h</A>"
-
-<font color=red>/* Since we're doing TCP/IP, we'll need a SOCK_Stream for the
- connection. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-
-class Logging_Handler : public ACE_Event_Handler
-{
-public:
- <font color=red>/*
- Like the acceptor, we're simple enough to avoid constructor and destructor.
- */</font>
-
- <font color=red>/* To open the client handler, we have to register ourselves with
- the reactor. Notice that we don't have to "<font color=green>open</font>" our
- ACE_SOCK_Stream member variable. Why? Because the call to the
- acceptor's accept() method took care of those details for us. */</font>
-
- int open (ACE_Reactor *reactor)
- {
- <font color=red>/*
- Remember our reactor...
- */</font>
- reactor_ = reactor;
-
- <font color=red>/* In this case we're using the READ_MASK. Like the acceptor,
- handle_input() will be called due to this mask but it's a nice
- piece of bookkeeping to have separate masks for the separate
- types of activity. */</font>
-
- if (reactor->register_handler (this,
- <font color=#008888>ACE_Event_Handler::READ_MASK</font>) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) can't register with reactor\n</font>"),
- -1);
- return 0;
- }
-
- <font color=red>/* If we're explicitly closed we'll close our "<font color=green>file handle</font>". The
- net result is to close the connection to the client and remove
- ourselves from the reactor if we're registered */</font>
-
- int close (void)
- {
- return this->handle_close (ACE_INVALID_HANDLE,
- <font color=#008888>ACE_Event_Handler::RWE_MASK</font>);
- }
-
- <font color=red>/* This is a bit of magic... When we call the accept() method of
- the acceptor object, it wants to do work on an ACE_SOCK_Stream.
- We have one of those as our connection to the client but it would
- be gross to provide a method to access that object. It's much
- cooler if the acceptor can just treat the Logging_Handler as an
- ACE_SOCK_Stream. Providing this cast operator lets that happen
- cleanly. */</font>
-
- operator ACE_SOCK_Stream &()
- {
- return this->cli_stream_;
- }
-
-protected:
-
- <font color=red>/* Again, like the acceptor, we need to provide the connection
- handle to the reactor. */</font>
-
- ACE_HANDLE get_handle (void) const
- {
- return this->cli_stream_.get_handle ();
- }
-
- <font color=red>/* And here's the handle_input(). This is really the workhorse of
- the application. */</font>
-
- virtual int handle_input (ACE_HANDLE)
- {
- <font color=red>/*
- Create and initialize a small receive buffer. The extra byte is
- there to allow us to have a null-terminated string when it's over.
- */</font>
- char buf[BUFSIZ + 1];
-
- <font color=red>/* Invoke the recv() method of the ACE_SOCK_Stream to get some
- data. It will return -1 if there is an error. Otherwise, it
- will return the number of bytes read. Of course, if it read
- zero bytes then the connection must be gone. How do I know
- that? Because handle_input() would not be called by the reactor
- if there wasn't *some* kind of activity and a closed connection
- looks like a read request to the reactor. But when you read
- from a closed connection you'll read zero bytes.
-
- Notice that in the error case or closed case we return -1. That
- tells the reactor to call our handle_close() where we'll take
- care of shutting down cleanly.
-
- Although we don't make use of them, there are additional
- parameters you can use with the recv() call. One of these is an
- ACE_Time_Value that allows you to limit the amount of time
- blocking on the recv(). You would use that if you weren't sure
- if data was available. Since we only get to handle_input() when
- data is ready, that would be redundant. On the other hand, if
- you use recv_n() to read *exactly* a number of bytes then
- limiting the time you wait for those bytes might be good. The
- other paramter that may come in handy is an integer
- &lt;i>flags&lt;/i>. This is passed directly to the underlying OS
- recv() call. See the man page recv(2) and the header
- sys/socket.h for the gory details. */</font>
-
- ssize_t retval;
- switch (retval = this->cli_stream_.recv (buf, BUFSIZ))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) %p bad read\n</font>",
- "<font color=green>client logger</font>"),
- -1);
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) closing log daemon (fd = %d)\n</font>",
- this->get_handle ()),
- -1);
- default:
- buf[retval] = '\0';
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) from client: %s</font>",
- buf));
- }
-
- return 0;
- }
-
- <font color=red>/* When handle_input() returns -1, we'll end up here. There are a
- few housekeeping chores to handle. */</font>
-
- int handle_close (ACE_HANDLE,
- ACE_Reactor_Mask _mask)
- {
- <font color=red>/* Remove ourselves from the reactor. We have to include the
- DONT_CALL in the mask so that it won't call handle_close() on us
- again! */</font>
- reactor_->remove_handler (this,
- _mask | <font color=#008888>ACE_Event_Handler::DONT_CALL</font>);
-
- <font color=red>/* Close the socket that we're connected to the client with. */</font>
- cli_stream_.close ();
-
- <font color=red>/* Since we know we were dynamically allocated by the acceptor,
- now is a good time to get rid of ourselves. */</font>
- delete this;
-
- return 0;
- }
-
-protected:
-
- <font color=red>/* Our peer connection. */</font>
- ACE_SOCK_Stream cli_stream_;
-
- <font color=red>/* Our reactor (and our acceptor's reactor). */</font>
- ACE_Reactor *reactor_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* _CLIENT_HANDLER_H */</font>
-
-</PRE>
-<HR WIDTH="100%">
-
-<P>
-The comments really should tell the story. The really
-interesting stuff is in <i>handle_input()</i>. Everything
-else is just housekeeping.
-In the future, we'll learn about ACE_Svc_Handler&lt;>
-which will take care of most of the housekeeping for us.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/001/page05.html b/docs/tutorials/001/page05.html
deleted file mode 100644
index 582fd0de953..00000000000
--- a/docs/tutorials/001/page05.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!-- $Id$ -->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-<HEAD>
- <TITLE>ACE Tutorial 001</TITLE>
- <META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
-</HEAD>
-<BODY text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
-
-
-<CENTER><P><B><FONT SIZE=+2>ACE&nbsp;Tutorial 001<BR>
-A Beginners Guide to Using the ACE&nbsp;Toolkit</FONT></B></P></CENTER>
-
-<hr>
-<P>This concludes the first tutorial on using ACE. We've learned how to
-create a simple server without knowing very much about network programming.
-
-<P>The code used in this tutorial is for illustration purposes. That means
-it may or may not work.&nbsp;&nbsp; Actually, it <I>does</I> work but the
-astute reader will notice a number of places for potential memory leaks.&nbsp;
-We'll work on cleaning those up in future tutorials but if you find one
-feel free to send me a fix and I'll integrate it into the tutorial.
-
-<UL>
-<LI>
-<A HREF="00SetEnv">Environment
-Settings</A></LI>
-
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-
-<LI>
-<A HREF="server.cpp">main
-program</A></LI>
-
-<LI>
-<A HREF="acceptor.h">acceptor
-object</A></LI>
-
-<LI>
-<A HREF="logger.h">connection
-handler</A></LI>
-</UL>
-
-<P>
-To read more about the patterns used in this example (as well as
-quite a few which aren't!), you should check out
-<A HREF="http://www.cs.wustl.edu/~schmidt/patterns-ace.html">http://www.cs.wustl.edu/~schmidt/patterns-ace.html.</A>
-In fact, it's probably safe to say that the concepts found there will keep
-coming back to haunt you as these tutorials continue.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/001/server.cpp b/docs/tutorials/001/server.cpp
deleted file mode 100644
index e5922a56422..00000000000
--- a/docs/tutorials/001/server.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// $Id$
-
-/* Include the header file where our client acceptor is defined. */
-#include "ace/Reactor.h"
-
-/* For simplicity, we create our reactor in the global address space.
- In later tutorials we will do something more clever and
- appropriate. However, the purpose of this tutorial is to introduce a
- connection acceptance and handling, not the full capabilities of a
- reactor. */
-ACE_Reactor *g_reactor;
-
-/* Include the header where we define our acceptor object. An
- acceptor is an abstraction that allows a server to "accept"
- connections from clients. */
-#include "acceptor.h"
-
-/* A TCP/IP server can listen to only one port for connection
- requests. Well-known services can always be found at the same
- address. Lesser-known services are generally told where to listen by
- a configuration file or command-line parameter. For this example,
- we're satisfied with simply hard-coding a random but known value. */
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int, char *[])
-{
- /* Create a Reactor instance. Again, a global pointer isn't exactly
- the best way to handle this but for the simple example here, it
- will be OK. We'll get cute with it later. Note how we use the
- ACE_NEW_RETURN macro, which returns 1 if operator new fails. */
- ACE_NEW_RETURN (g_reactor,
- ACE_Reactor,
- 1);
-
- /* Like the Reactor, I'm skimming over the details of the ADDR
- object. What it provides is an abstraction for addressing services
- in the network. All we need to know at this point is that we are
- creating an address object which specifies the TCP/IP port on
- which the server will listen for new connection requests. */
- ACE_INET_Addr addr (PORT);
-
- Logging_Acceptor *peer_acceptor;
-
- /* We now create an acceptor object. No connections will yet be
- established because the object isn't "open for business" at this
- time. Which brings us to the next line... */
- ACE_NEW_RETURN (peer_acceptor,
- Logging_Acceptor,
- 1);
-
- /* where the acceptor object is opened. You'll find that most ACE
- objects have to be open()ed before they're of any use to you. On
- this open() call, we're telling the acceptor where to listen for
- connections via the 'addr' object. We're also telling it that we
- want it to be registered with our 'g_reactor' instance. */
- if (peer_acceptor->open (addr, g_reactor) == -1 )
- ACE_ERROR_RETURN ((LM_ERROR,
- "Opening Acceptor\n"),
- -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) starting up server logging daemon\n"));
-
- /* The reactor's handle_events member function is responsible for
- looking at all registered objects and invoking an appropriate
- member function when anything of interest occurs. When an event is
- processed, the handle_events function returns. In order to get all
- events, we embed this in an infinite loop.
-
- Since we put ourselves into an infinite loop, you'll need to
- CTRL-C to exit the program. */
-
- for (;;)
- g_reactor->handle_events ();
-
- return 0;
-}
-
diff --git a/docs/tutorials/001/simple.fig b/docs/tutorials/001/simple.fig
deleted file mode 100644
index afea1bddabe..00000000000
--- a/docs/tutorials/001/simple.fig
+++ /dev/null
@@ -1,57 +0,0 @@
-#FIG 3.2
-Landscape
-Center
-Inches
-Letter
-100.00
-Single
--2
-1200 2
-6 7800 5925 11850 6900
-2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
- 11850 6900 11850 5925 7800 5925 7800 6900 11850 6900
-4 0 0 0 0 0 12 0.0000 4 180 3360 7800 6150 Application_Handler (ACE_Event_Handler)\001
-4 0 0 0 0 0 12 0.0000 4 180 3825 7950 6450 handle_input() {read connection, process data ... }\001
-4 0 0 0 0 0 12 0.0000 4 180 1335 7950 6675 get_handle() {...}\001
--6
-2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
- 5100 7200 5100 5925 1725 5925 1725 7200 5100 7200
-2 1 1 1 1 7 0 0 -1 4.000 0 0 -1 1 0 2
- 2 1 1.00 60.00 120.00
- 4950 6600 7725 6600
-2 1 0 1 4 7 0 0 -1 0.000 0 0 -1 0 1 2
- 2 1 1.00 60.00 120.00
- 3900 5925 5400 2250
-2 1 0 1 4 7 0 0 -1 0.000 0 0 -1 0 1 2
- 2 1 1.00 60.00 120.00
- 8400 5925 6600 2250
-2 1 0 1 12 7 0 0 -1 0.000 0 0 -1 1 0 2
- 2 1 1.00 60.00 120.00
- 4500 5925 6000 2250
-2 1 0 1 12 7 0 0 -1 0.000 0 0 -1 1 0 2
- 2 1 1.00 60.00 120.00
- 9000 5925 7200 2250
-2 1 2 2 24 7 0 0 -1 3.000 0 0 -1 0 1 2
- 0 0 1.00 60.00 120.00
- 3300 7200 3300 8325
-2 1 0 2 15 7 0 0 -1 0.000 0 0 -1 1 1 2
- 0 0 1.00 60.00 120.00
- 0 0 1.00 60.00 120.00
- 9600 6900 9600 8025
-2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
- 7500 2250 7500 1425 5100 1425 5100 2250 7500 2250
-4 0 0 0 0 0 12 0.0000 4 180 3045 1800 6150 Client_Acceptor (ACE_Event_Handler)\001
-4 0 0 0 0 0 12 0.0000 4 180 2565 1950 6450 handle_input() {open data conn ...\001
-4 0 0 0 0 0 12 0.0000 4 180 1755 3150 6675 create Handler Obj ... }\001
-4 0 0 0 0 0 12 0.0000 4 180 1335 1950 6900 get_handle() {...}\001
-4 0 1 0 0 0 12 0.0000 4 180 1800 5550 6450 create new Handler Obj\001
-4 0 24 0 0 0 12 0.0000 4 180 1530 2550 7800 Connection Request\001
-4 0 15 0 0 0 12 0.0000 4 135 1275 9000 7500 Data Connection\001
-4 0 0 0 0 0 12 0.0000 4 135 600 5925 1725 Reactor\001
-4 0 0 0 0 0 12 0.0000 4 180 1935 5325 2025 event handler dispatching\001
-4 0 0 0 0 0 12 0.0000 4 180 585 8175 4875 register\001
-4 0 0 0 0 0 12 0.0000 4 180 585 4650 5025 register\001
-4 0 0 0 0 0 12 0.0000 4 180 1110 4200 3675 handle_input()\001
-4 0 0 0 0 0 12 0.0000 4 180 975 4200 3900 get_handle()\001
-4 0 0 0 0 0 12 0.0000 4 180 1110 6675 3675 handle_input()\001
-4 0 0 0 0 0 12 0.0000 4 180 975 6675 3900 get_handle()\001
diff --git a/docs/tutorials/001/simple.gif b/docs/tutorials/001/simple.gif
deleted file mode 100644
index ef29d88a120..00000000000
--- a/docs/tutorials/001/simple.gif
+++ /dev/null
Binary files differ
diff --git a/docs/tutorials/002/002.dsp b/docs/tutorials/002/002.dsp
deleted file mode 100644
index 2632dc42e5f..00000000000
--- a/docs/tutorials/002/002.dsp
+++ /dev/null
@@ -1,104 +0,0 @@
-# Microsoft Developer Studio Project File - Name="002" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=002 - 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 "002.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 "002.mak" CFG="002 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "002 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "002 - 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)" == "002 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "002 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"server.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "002 - Win32 Release"
-# Name "002 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\handler.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/002/00SetEnv b/docs/tutorials/002/00SetEnv
deleted file mode 100644
index eca78e10c85..00000000000
--- a/docs/tutorials/002/00SetEnv
+++ /dev/null
@@ -1,2 +0,0 @@
-export ACE_ROOT=/local/src/ACE/ACE_wrappers
-export LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
diff --git a/docs/tutorials/002/Makefile b/docs/tutorials/002/Makefile
deleted file mode 100644
index f2eca0928bc..00000000000
--- a/docs/tutorials/002/Makefile
+++ /dev/null
@@ -1,55 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the Reactor version of the Server Logging Daemon
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = server
-
-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.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# 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/docs/tutorials/002/combine.shar b/docs/tutorials/002/combine.shar
deleted file mode 100644
index f873c160bf6..00000000000
--- a/docs/tutorials/002/combine.shar
+++ /dev/null
@@ -1,328 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/002'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 590 -rw-rw-r-- hdr
-# 28 -rw-rw-r-- bodies
-# 994 -rw-rw-r-- page01.pre
-# 1816 -rw-rw-r-- page02.pre
-# 100 -rw-rw-r-- page03.pre
-# 429 -rw-rw-r-- page04.pre
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32325; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <META NAME="Description" CONTENT="A first step towards using ACE productively">
-X <TITLE>ACE Tutorial 002</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 002</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Creating a Better Server</FONT></B></CENTER>
-X
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-1c8564e0ea8b3acd6438853dd2bc34d4 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 590 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '590,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-server.cpp
-handler.h
-SHAR_EOF
- $shar_touch -am 0117141899 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-9ec2171f52b5b973c247ef550fb7b035 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 28 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '28,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X
-<P>In this tutorial, we will build a little on what we learned in the first
-tutorial and add a few extras. In the end, we will have a better server
-object that is actually simpler and more maintainable than the one we created
-before.</P>
-X
-<P>
-<HR WIDTH="100%"></P>
-X
-<P>To begin, let's ask ourselves the same thing we did at the beginning
-of tutorial 001:</P>
-X
-<UL>
-<P>What do you need to create a server?</P>
-</UL>
-X
-<OL>
-<OL>
-<LI>Something which accepts connections from clients</LI>
-X
-<LI>Something which handles established connections</LI>
-X
-<LI>A main program loop that handles it all</LI>
-</OL>
-</OL>
-X
-<P>Previously, we created a solution which addressed each one of these
-questions specifically. At the end of it all, we realized that our only
-application-specific coding was confined to the <I>handler</I> portion
-of the program. We hinted that there may be a way to eliminate hand-coding
-an <I>acceptor</I> each time we want to create a server. Here, we will
-explore that approach.</P>
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-ca5fd1b413d68211ee2e6d5132fd04d3 page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 994 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '994,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-X
-<P>Like Tutorial 1, this is also a rather small program.&nbsp; I'm going
-to add a couple of new ideas along the way but to make up for it I'm also
-going to simplify the acceptor a great deal.
-X
-<P>
-Kirthika's Abstract:
-<UL>
-This is a server example made simpler due to the use of off-the-shelf
-components and classes from ACE.
-<P>
-Here, the Logging_Acceptor is an ACE_Acceptor class which is associated
-with the Logging_Handler and the ACE_SOCK_ACCEPTOR. This will now
-accept connection requests from the clients on being opened with the
-reactor instance passed to it.
-<P>
-We also implement a signal to capture CTRL-C [ which generates SIGINT ] using ACE_SigAction and
-ACE_SignalHandler. This signal can now be used to stop the reactor
-from handling events.
-<P>
-Then, the reactor is allowed to loop infintely until it is shut down
-using a ^C, after which both the reactor as well as the acceptor are
-destroyed.
-<P>
-The Logging_Handler derives from the ACE_Svc_Handler instead of the
-Event_Handler since the Svc_Handler has inbuilt SOCK_Stream and
-provides all the calls needed by the reactor. The Svc_Handler has the
-ability to react to events and communicate to remote tasks using the
-underlying data stream passed to it.
-<P>
-A timer is scheduled in the reactor which does nothing but simply
-display how it could be used to provide periodic processing when
-needed. The ACE_TimeValue is used to set the time period.
-<P>
-Also, optimisations have been made in the form of a separate function
-for
-destroying the objects used.
-<P>
-Thus a simpler server has now been built which successfully
-demonstrates how simple a task, writing a server can become on using
-the various ACE components judiciously.
-</UL>
-<P>We begin by looking at the <A HREF="server.cpp">main (server.cpp)</A> portion program:
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-596b8e60a2219f83cbe15600f0f2b29f page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 1816 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '1816,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-X
-<P>Now lets take a look at the new <A HREF="handler.h">Logging_Handler</A>:
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-f62bcf39007ec332f581a0849e33fe50 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 100 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '100,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-X
-<P>Well, that's it for the second tutorial. We've found a much easier way
-to create a server, especially the acceptor part. At the same time, we
-introduced more functionality and robustness. Not bad for a day's work.
-<BR>&nbsp;
-<UL>
-<LI>
-<A HREF="00SetEnv">Environment
-Settings</A></LI>
-X
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-X
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-<LI>
-<A HREF="handler.h">handler.h</A></LI>
-</UL>
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-a215a80c256c303e810c97f0d92f311c page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 429 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '429,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32325
-exit 0
diff --git a/docs/tutorials/002/handler.h b/docs/tutorials/002/handler.h
deleted file mode 100644
index cce05f3aab3..00000000000
--- a/docs/tutorials/002/handler.h
+++ /dev/null
@@ -1,167 +0,0 @@
-// $Id$
-
-#ifndef LOGGING_HANDLER_H
-#define LOGGING_HANDLER_H
-
-#include "ace/INET_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Stream.h"
-#include "ace/Reactor.h"
-
-/* Since we used the template to create the acceptor, we don't know if
- there is a way to get to the reactor it uses. We'll take the easy
- way out and grab the global pointer. (There is a way to get back to
- the acceptor's reactor that we'll see later on.) */
-extern ACE_Reactor *g_reactor;
-
-/* This time we're deriving from ACE_Svc_Handler instead of
- ACE_Event_Handler. The big reason for this is because it already
- knows how to contain a SOCK_Stream and provides all of the method
- calls needed by the reactor. The second template parameter is for
- some advanced stuff we'll do with later servers. For now, just use
- it as is... */
-class Logging_Handler : public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
-
- /* The Acceptor<> template will open() us when there is a new client
- connection. */
- virtual int open (void *)
- {
- ACE_INET_Addr addr;
-
- /* Ask the peer() (held in our baseclass) to tell us the address
- of the cient which has connected. There may be valid reasons
- for this to fail where we wouldn't want to drop the connection
- but I can't think of one. */
- if (this->peer ().get_remote_addr (addr) == -1)
- return -1;
-
- /* The Acceptor<> won't register us with it's reactor, so we have
- to do so ourselves. This is where we have to grab that global
- pointer. Notice that we again use the READ_MASK so that
- handle_input() will be called when the client does something. */
- if (g_reactor->register_handler (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) can't register with reactor\n"),
- -1);
-
- /* Here's another new treat. We schedule a timer event. This
- particular one will fire in two seconds and then every three
- seconds after that. It doesn't serve any useful purpose in our
- application other than to show you how it is done. */
- else if (g_reactor->schedule_timer (this,
- 0,
- ACE_Time_Value (2),
- ACE_Time_Value (3)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "can'(%P|%t) t register with reactor\n"),
- -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) connected with %s\n",
- addr.get_host_name ()));
-
- return 0;
- }
-
- /* This is a matter of style & maybe taste. Instead of putting all
- of this stuff into a destructor, we put it here and request that
- everyone call destroy() instead of 'delete'. */
- virtual void destroy (void)
- {
- /* Remove ourselves from the reactor */
- g_reactor->remove_handler
- (this,
- ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL);
-
- /* Cancel that timer we scheduled in open() */
- g_reactor->cancel_timer (this);
-
- /* Shut down the connection to the client. */
- this->peer ().close ();
-
- /* Free our memory. */
- delete this;
- }
-
- /* If somebody doesn't like us, they will close() us. Actually, if
- our open() method returns -1, the Acceptor<> will invoke close()
- on us for cleanup. */
- virtual int close (u_long flags = 0)
- {
- /* The ACE_Svc_Handler baseclass requires the <flags> parameter.
- We don't use it here though, so we mark it as UNUSED. You can
- accomplish the same thing with a signature like handle_input's
- below. */
- ACE_UNUSED_ARG (flags);
-
- /*
- Clean up and go away.
- */
- this->destroy ();
- return 0;
- }
-
-protected:
-
- /* Respond to input just like Tutorial 1. */
- virtual int handle_input (ACE_HANDLE)
- {
- char buf[128];
- ACE_OS::memset (buf, 0, sizeof (buf));
-
- switch (this->peer ().recv (buf,
- sizeof buf))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) %p bad read\n",
- "client logger"),
- -1);
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) closing log daemon (fd = %d)\n",
- this->get_handle ()),
- -1);
- default:
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) from client: %s",
- buf));
- }
-
- return 0;
- }
-
- /* When the timer expires, handle_timeout() will be called. The
- 'arg' is the value passed after 'this' in the schedule_timer()
- call. You can pass in anything there that you can cast to a
- void*. */
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg)
- {
- ACE_UNUSED_ARG(tv);
- ACE_UNUSED_ARG(arg);
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) handling timeout from this = %u\n",
- this));
- return 0;
- }
-
- /*
- Clean ourselves up when handle_input() (or handle_timer()) returns -1
- */
- virtual int handle_close (ACE_HANDLE,
- ACE_Reactor_Mask)
- {
- this->destroy ();
- return 0;
- }
-};
-
-#endif /* LOGGING_HANDLER_H */
diff --git a/docs/tutorials/002/page01.html b/docs/tutorials/002/page01.html
deleted file mode 100644
index 0b8a99ff965..00000000000
--- a/docs/tutorials/002/page01.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 002</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 002</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a Better Server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>In this tutorial, we will build a little on what we learned in the first
-tutorial and add a few extras. In the end, we will have a better server
-object that is actually simpler and more maintainable than the one we created
-before.</P>
-
-<P>
-<HR WIDTH="100%"></P>
-
-<P>To begin, let's ask ourselves the same thing we did at the beginning
-of tutorial 001:</P>
-
-<UL>
-<P>What do you need to create a server?</P>
-</UL>
-
-<OL>
-<OL>
-<LI>Something which accepts connections from clients</LI>
-
-<LI>Something which handles established connections</LI>
-
-<LI>A main program loop that handles it all</LI>
-</OL>
-</OL>
-
-<P>Previously, we created a solution which addressed each one of these
-questions specifically. At the end of it all, we realized that our only
-application-specific coding was confined to the <I>handler</I> portion
-of the program. We hinted that there may be a way to eliminate hand-coding
-an <I>acceptor</I> each time we want to create a server. Here, we will
-explore that approach.</P>
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/002/page02.html b/docs/tutorials/002/page02.html
deleted file mode 100644
index 42d7a8eefcc..00000000000
--- a/docs/tutorials/002/page02.html
+++ /dev/null
@@ -1,159 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 002</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 002</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a Better Server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>Like Tutorial 1, this is also a rather small program.&nbsp; I'm going
-to add a couple of new ideas along the way but to make up for it I'm also
-going to simplify the acceptor a great deal.
-
-<P>
-Kirthika's Abstract:
-<UL>
-This is a server example made simpler due to the use of off-the-shelf
-components and classes from ACE.
-<P>
-Here, the Logging_Acceptor is an ACE_Acceptor class which is associated
-with the Logging_Handler and the ACE_SOCK_ACCEPTOR. This will now
-accept connection requests from the clients on being opened with the
-reactor instance passed to it.
-<P>
-We also implement a signal to capture CTRL-C [ which generates SIGINT ] using ACE_SigAction and
-ACE_SignalHandler. This signal can now be used to stop the reactor
-from handling events.
-<P>
-Then, the reactor is allowed to loop infintely until it is shut down
-using a ^C, after which both the reactor as well as the acceptor are
-destroyed.
-<P>
-The Logging_Handler derives from the ACE_Svc_Handler instead of the
-Event_Handler since the Svc_Handler has inbuilt SOCK_Stream and
-provides all the calls needed by the reactor. The Svc_Handler has the
-ability to react to events and communicate to remote tasks using the
-underlying data stream passed to it.
-<P>
-A timer is scheduled in the reactor which does nothing but simply
-display how it could be used to provide periodic processing when
-needed. The ACE_TimeValue is used to set the time period.
-<P>
-Also, optimisations have been made in the form of a separate function
-for
-destroying the objects used.
-<P>
-Thus a simpler server has now been built which successfully
-demonstrates how simple a task, writing a server can become on using
-the various ACE components judiciously.
-</UL>
-<P>We begin by looking at the <A HREF="server.cpp">main (server.cpp)</A> portion program:
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* As before, we need a few ACE objects as well as our Logging_Handler
- declaration. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/Acceptor.h">ace/Acceptor.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Acceptor.h">ace/SOCK_Acceptor.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/Reactor.h">ace/Reactor.h</A>"
-<font color=blue>#include</font> "<font color=green>handler.h</font>"
-
-<font color=red>/* We'll still use the global reactor pointer. There's a snappy way
- around this that shows up in later server tutorials. */</font>
-ACE_Reactor *g_reactor;
-
-<font color=red>/* This was hinted at in Tutorial 1. Remember the hand-coded acceptor
- that we created there? This template does all of that and more and
- better. If you find yourself creating code that doesn't feel like a
- part of your application, there's a good chance that ACE has a
- template or framework component to do it for you. */</font>
-typedef ACE_Acceptor &lt;Logging_Handler, ACE_SOCK_ACCEPTOR> Logging_Acceptor;
-
-<font color=red>/* One of the new things will be a signal handler so that we can exit
- the application somewhat cleanly. The 'finished' flag is used
- instead of the previous infninite loop and the 'handler' will set
- that flag in respose to SIGINT (CTRL-C).
- The invocation of <font color=#008888>ACE_Reactor::notify</font>() will cause the
- handle_events() to return so that we can see the new value of 'finished'.
-*/</font>
-static sig_atomic_t finished = 0;
-extern "<font color=green>C</font>" void handler (int)
-{
- finished = 1;
- g_reactor->notify();
-}
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int, char **)
-{
- <font color=red>// Create the reactor we'll register our event handler derivatives with.</font>
- ACE_NEW_RETURN (g_reactor,
- ACE_Reactor,
- 1);
-
- <font color=red>// Create the acceptor that will listen for client connetions</font>
- Logging_Acceptor peer_acceptor;
-
- <font color=red>/* Notice how similar this is to the open() call in Tutorial 1. I
- read ahead when I created that one so that it would come out this
- way... */</font>
- if (peer_acceptor.open (ACE_INET_Addr (PORT),
- g_reactor) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
-
- <font color=red>/* Here's the easiest way to respond to signals in your application.
- Simply construct an ACE_Sig_Action object with a "<font color=green>C</font>" function and
- the signal you want to capture. As you might expect, there is
- also a way to register signal handlers with a reactor but we take
- the easy-out here. */</font>
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) starting up server logging daemon\n</font>"));
-
- <font color=red>// Perform logging service until the signal handler receives SIGINT.</font>
- while (!finished)
- g_reactor->handle_events ();
-
- <font color=red>// Close the acceptor so that no more clients will be taken in.</font>
- peer_acceptor.close();
-
- <font color=red>// Free up the memory allocated for the reactor.</font>
- delete g_reactor;
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) shutting down server logging daemon\n</font>"));
- return 0;
-}
-
-<font color=blue>#if defined</font> (<font color=purple>ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION</font>)
-template class ACE_Acceptor &lt;Logging_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-<font color=blue>#elif defined</font> (<font color=purple>ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Acceptor &lt;Logging_Handler, ACE_SOCK_ACCEPTOR>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-<font color=blue>#endif</font> <font color=red>/* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */</font>
-
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/002/page03.html b/docs/tutorials/002/page03.html
deleted file mode 100644
index 3e36bcfe81f..00000000000
--- a/docs/tutorials/002/page03.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 002</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 002</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a Better Server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>Now lets take a look at the new <A HREF="handler.h">Logging_Handler</A>:
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>LOGGING_HANDLER_H</font>
-<font color=blue>#define</font> <font color=purple>LOGGING_HANDLER_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/INET_Addr.h">ace/INET_Addr.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/Reactor.h">ace/Reactor.h</A>"
-
-<font color=red>/* Since we used the template to create the acceptor, we don't know if
- there is a way to get to the reactor it uses. We'll take the easy
- way out and grab the global pointer. (There is a way to get back to
- the acceptor's reactor that we'll see later on.) */</font>
-extern ACE_Reactor *g_reactor;
-
-<font color=red>/* This time we're deriving from ACE_Svc_Handler instead of
- ACE_Event_Handler. The big reason for this is because it already
- knows how to contain a SOCK_Stream and provides all of the method
- calls needed by the reactor. The second template parameter is for
- some advanced stuff we'll do with later servers. For now, just use
- it as is... */</font>
-class Logging_Handler : public ACE_Svc_Handler &lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
-
- <font color=red>/* The Acceptor&lt;> template will open() us when there is a new client
- connection. */</font>
- virtual int open (void *)
- {
- ACE_INET_Addr addr;
-
- <font color=red>/* Ask the peer() (held in our baseclass) to tell us the address
- of the cient which has connected. There may be valid reasons
- for this to fail where we wouldn't want to drop the connection
- but I can't think of one. */</font>
- if (this->peer ().get_remote_addr (addr) == -1)
- return -1;
-
- <font color=red>/* The Acceptor&lt;> won't register us with it's reactor, so we have
- to do so ourselves. This is where we have to grab that global
- pointer. Notice that we again use the READ_MASK so that
- handle_input() will be called when the client does something. */</font>
- if (g_reactor->register_handler (this,
- <font color=#008888>ACE_Event_Handler::READ_MASK</font>) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) can't register with reactor\n</font>"),
- -1);
-
- <font color=red>/* Here's another new treat. We schedule a timer event. This
- particular one will fire in two seconds and then every three
- seconds after that. It doesn't serve any useful purpose in our
- application other than to show you how it is done. */</font>
- else if (g_reactor->schedule_timer (this,
- 0,
- ACE_Time_Value (2),
- ACE_Time_Value (3)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>can'(%P|%t) t register with reactor\n</font>"),
- -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) connected with %s\n</font>",
- addr.get_host_name ()));
-
- return 0;
- }
-
- <font color=red>/* This is a matter of style & maybe taste. Instead of putting all
- of this stuff into a destructor, we put it here and request that
- everyone call destroy() instead of 'delete'. */</font>
- virtual void destroy (void)
- {
- <font color=red>/* Remove ourselves from the reactor */</font>
- g_reactor->remove_handler
- (this,
- <font color=#008888>ACE_Event_Handler::READ_MASK</font> | ACE_Event_Handler::DONT_CALL);
-
- <font color=red>/* Cancel that timer we scheduled in open() */</font>
- g_reactor->cancel_timer (this);
-
- <font color=red>/* Shut down the connection to the client. */</font>
- this->peer ().close ();
-
- <font color=red>/* Free our memory. */</font>
- delete this;
- }
-
- <font color=red>/* If somebody doesn't like us, they will close() us. Actually, if
- our open() method returns -1, the Acceptor&lt;> will invoke close()
- on us for cleanup. */</font>
- virtual int close (u_long flags = 0)
- {
- <font color=red>/* The ACE_Svc_Handler baseclass requires the &lt;flags> parameter.
- We don't use it here though, so we mark it as UNUSED. You can
- accomplish the same thing with a signature like handle_input's
- below. */</font>
- ACE_UNUSED_ARG (flags);
-
- <font color=red>/*
- Clean up and go away.
- */</font>
- this->destroy ();
- return 0;
- }
-
-protected:
-
- <font color=red>/* Respond to input just like Tutorial 1. */</font>
- virtual int handle_input (ACE_HANDLE)
- {
- char buf[128];
- <font color=#008888>ACE_OS::memset</font> (buf, 0, sizeof (buf));
-
- switch (this->peer ().recv (buf,
- sizeof buf))
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) %p bad read\n</font>",
- "<font color=green>client logger</font>"),
- -1);
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) closing log daemon (fd = %d)\n</font>",
- this->get_handle ()),
- -1);
- default:
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) from client: %s</font>",
- buf));
- }
-
- return 0;
- }
-
- <font color=red>/* When the timer expires, handle_timeout() will be called. The
- 'arg' is the value passed after 'this' in the schedule_timer()
- call. You can pass in anything there that you can cast to a
- void*. */</font>
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg)
- {
- ACE_UNUSED_ARG(tv);
- ACE_UNUSED_ARG(arg);
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) handling timeout from this = %u\n</font>",
- this));
- return 0;
- }
-
- <font color=red>/*
- Clean ourselves up when handle_input() (or handle_timer()) returns -1
- */</font>
- virtual int handle_close (ACE_HANDLE,
- ACE_Reactor_Mask)
- {
- this->destroy ();
- return 0;
- }
-};
-
-<font color=blue>#endif</font> <font color=red>/* LOGGING_HANDLER_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/002/page04.html b/docs/tutorials/002/page04.html
deleted file mode 100644
index 0b04d2eedbf..00000000000
--- a/docs/tutorials/002/page04.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 002</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 002</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a Better Server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>Well, that's it for the second tutorial. We've found a much easier way
-to create a server, especially the acceptor part. At the same time, we
-introduced more functionality and robustness. Not bad for a day's work.
-<BR>&nbsp;
-<UL>
-<LI>
-<A HREF="00SetEnv">Environment
-Settings</A></LI>
-
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-<LI>
-<A HREF="handler.h">handler.h</A></LI>
-</UL>
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/002/server.cpp b/docs/tutorials/002/server.cpp
deleted file mode 100644
index cfef3aa1a59..00000000000
--- a/docs/tutorials/002/server.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-// $Id$
-
-/* As before, we need a few ACE objects as well as our Logging_Handler
- declaration. */
-#include "ace/Acceptor.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/Reactor.h"
-#include "handler.h"
-
-/* We'll still use the global reactor pointer. There's a snappy way
- around this that shows up in later server tutorials. */
-ACE_Reactor *g_reactor;
-
-/* This was hinted at in Tutorial 1. Remember the hand-coded acceptor
- that we created there? This template does all of that and more and
- better. If you find yourself creating code that doesn't feel like a
- part of your application, there's a good chance that ACE has a
- template or framework component to do it for you. */
-typedef ACE_Acceptor <Logging_Handler, ACE_SOCK_ACCEPTOR> Logging_Acceptor;
-
-/* One of the new things will be a signal handler so that we can exit
- the application somewhat cleanly. The 'finished' flag is used
- instead of the previous infninite loop and the 'handler' will set
- that flag in respose to SIGINT (CTRL-C).
- The invocation of ACE_Reactor::notify() will cause the
- handle_events() to return so that we can see the new value of 'finished'.
-*/
-static sig_atomic_t finished = 0;
-extern "C" void handler (int)
-{
- finished = 1;
- g_reactor->notify();
-}
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int, char **)
-{
- // Create the reactor we'll register our event handler derivatives with.
- ACE_NEW_RETURN (g_reactor,
- ACE_Reactor,
- 1);
-
- // Create the acceptor that will listen for client connetions
- Logging_Acceptor peer_acceptor;
-
- /* Notice how similar this is to the open() call in Tutorial 1. I
- read ahead when I created that one so that it would come out this
- way... */
- if (peer_acceptor.open (ACE_INET_Addr (PORT),
- g_reactor) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- /* Here's the easiest way to respond to signals in your application.
- Simply construct an ACE_Sig_Action object with a "C" function and
- the signal you want to capture. As you might expect, there is
- also a way to register signal handlers with a reactor but we take
- the easy-out here. */
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) starting up server logging daemon\n"));
-
- // Perform logging service until the signal handler receives SIGINT.
- while (!finished)
- g_reactor->handle_events ();
-
- // Close the acceptor so that no more clients will be taken in.
- peer_acceptor.close();
-
- // Free up the memory allocated for the reactor.
- delete g_reactor;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) shutting down server logging daemon\n"));
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor <Logging_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor <Logging_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/docs/tutorials/003/003.dsp b/docs/tutorials/003/003.dsp
deleted file mode 100644
index c4a5a21faa4..00000000000
--- a/docs/tutorials/003/003.dsp
+++ /dev/null
@@ -1,100 +0,0 @@
-# Microsoft Developer Studio Project File - Name="003" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=003 - 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 "003.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 "003.mak" CFG="003 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "003 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "003 - 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)" == "003 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "003 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"client.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "003 - Win32 Release"
-# Name "003 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\client.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/003/00SetEnv b/docs/tutorials/003/00SetEnv
deleted file mode 100644
index eca78e10c85..00000000000
--- a/docs/tutorials/003/00SetEnv
+++ /dev/null
@@ -1,2 +0,0 @@
-export ACE_ROOT=/local/src/ACE/ACE_wrappers
-export LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
diff --git a/docs/tutorials/003/Makefile b/docs/tutorials/003/Makefile
deleted file mode 100644
index 874926a64f1..00000000000
--- a/docs/tutorials/003/Makefile
+++ /dev/null
@@ -1,51 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for client logging applications
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = client
-
-LSRC = $(addsuffix .cpp,$(BIN))
-
-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.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
diff --git a/docs/tutorials/003/client.cpp b/docs/tutorials/003/client.cpp
deleted file mode 100644
index fdfa51e1752..00000000000
--- a/docs/tutorials/003/client.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-// $Id$
-
-/* To establish a socket connection to a server, we'll need an
- ACE_SOCK_Connector. */
-#include "ace/Log_Msg.h"
-#include "ace/SOCK_Connector.h"
-
-/* Unlike the previous two tutorials, we're going to allow the user to
- provide command line options this time. Still, we need defaults in
- case that isn't done. */
-static u_short SERVER_PORT = ACE_DEFAULT_SERVER_PORT;
-static const char *const SERVER_HOST = ACE_DEFAULT_SERVER_HOST;
-static const int MAX_ITERATIONS = 4;
-
-int
-main (int argc, char *argv[])
-{
- /* Accept the users's choice of hosts or use the default. Then do
- the same for the TCP/IP port at which the server is listening as
- well as the number of iterations to perform. */
- const char *server_host = argc > 1 ? argv[1] : SERVER_HOST;
- u_short server_port = argc > 2 ? ACE_OS::atoi (argv[2]) : SERVER_PORT;
- int max_iterations = argc > 3 ? ACE_OS::atoi (argv[3]) : MAX_ITERATIONS;
-
- /* Build ourselves a Stream socket. This is a connected socket that
- provides reliable end-to-end communications. We will use the
- server object to send data to the server we connect to. */
- ACE_SOCK_Stream server;
-
- /* And we need a connector object to establish that connection. The
- ACE_SOCK_Connector object provides all of the tools we need to
- establish a connection once we know the server's network
- address... */
- ACE_SOCK_Connector connector;
-
- /* Which we create with an ACE_INET_Addr object. This object is
- given the TCP/IP port and hostname of the server we want to
- connect to. */
- ACE_INET_Addr addr (server_port,
- server_host);
-
- /* So, we feed the Addr object and the Stream object to the
- connector's connect() member function. Given this information, it
- will establish the network connection to the server and attach
- that connection to the server object. */
- if (connector.connect (server, addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- /* Just for grins, we'll send the server several messages. */
- for (int i = 0; i < max_iterations; i++)
- {
- char buf[BUFSIZ];
-
- /* Create our message with the message number */
- ACE_OS::sprintf (buf,
- "message = %d\n",
- i + 1);
- /* Send the message to the server. We use the server object's
- send_n() function to send all of the data at once. There is
- also a send() function but it may not send all of the
- data. That is due to network buffer availability and such. If
- the send() doesn't send all of the data, it is up to you to
- program things such that it will keep trying until all of the
- data is sent or simply give up. The send_n() function already
- does the "keep trying" option for us, so we use it.
-
- Like the send() method used in the servers we've seen, there
- are two additional parameters you can use on the send() and
- send_n() method calls. The timeout parameter limits the
- amount of time the system will attempt to send the data to the
- peer. The flags parameter is passed directly to the OS send()
- system call. See send(2) for the valid flags values. */
- if (server.send_n (buf,
- ACE_OS::strlen (buf)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "send"),
- -1);
- else
- /* Pause for a second. */
- ACE_OS::sleep (1);
- }
-
- /* Close the connection to the server. The servers we've created so
- far all are based on the ACE_Reactor. When we close(), the
- server's reactor will see activity for the registered event
- handler and invoke handle_input(). That, in turn, will try to
- read from the socket but get back zero bytes. At that point, the
- server will know that we've closed from our side. */
- if (server.close () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "close"),
- -1);
- return 0;
-}
diff --git a/docs/tutorials/003/combine.shar b/docs/tutorials/003/combine.shar
deleted file mode 100644
index 21649b57f57..00000000000
--- a/docs/tutorials/003/combine.shar
+++ /dev/null
@@ -1,217 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/003'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 590 -rw-rw-r-- hdr
-# 18 -rw-rw-r-- bodies
-# 1208 -rw-rw-r-- page01.pre
-# 434 -rw-rw-r-- page01.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32347; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <META NAME="Description" CONTENT="A first step towards using ACE productively">
-X <TITLE>ACE Tutorial 003</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 003</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Creating a Simple Client</FONT></B></CENTER>
-X
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-6999fd3c50ab0c7fea97b644e7281f09 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 590 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '590,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=1
-client.cpp
-SHAR_EOF
- $shar_touch -am 0117142499 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-d02fcd98e57e40350f82497be4ac0e0c bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 18 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '18,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X
-<P>Now that we've seen how to create servers, let's spend just a moment
-making a client. Since this is so easy, I'm going to do all of it in this
-one page.
-X
-<P>
-Kirthika says, "Here's an one paragraph abstract for a one page client app:"
-X
-<UL>
-X The server is an Stream object of ACE_SOCK_Stream type. The
-X ACE_Sock_Connector does the job of actively making a connection with the
-X listening server. It does so using the server_host_address and port
-X number which are stored in the ACE_INET_Addr object.Once the
-X connection has been established, the client begins its interaction
-X with the server and bombards it with messages.
-X Note: send_n() call is used since this call sees to the issues of
-X network buffering and reliably gets the data across to the server.
-X Also, a timeout value is set to provide fault tolerance if the server
-X ever dies before the transaction is completed. The server calls a
-X close() method
-X once it reads in zero bytes during the Event_Handler::handle_input()
-X call. This
-X proves that the client has severed its connection. The server then
-X shuts down.
-</UL>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-a141752492580c57f849e42ff287e276 page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 1208 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '1208,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pst ==============
-if test -f 'page01.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pst' &&
-<HR WIDTH="100%">
-X
-<P>Ok, so that was pretty easy. What would be even easier would be to wrap
-all of the connection mess up in an object and overload a couple of basic
-operators to make things less network-centric. Perhaps we'll see that in
-another tutorial.
-X
-<P>If you want to compile it yourself, here's the <A HREF="client.cpp">source</A>,
-the <A HREF="Makefile">Makefile</A>,
-and <A HREF="00SetEnv">Environment
-settings</A>.
-X
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pst' &&
- chmod 0664 'page01.pst' ||
- $echo 'restore of' 'page01.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pst:' 'MD5 check failed'
-4f24418c514b6359350769103a4ed617 page01.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pst'`"
- test 434 -eq "$shar_count" ||
- $echo 'page01.pst:' 'original size' '434,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32347
-exit 0
diff --git a/docs/tutorials/003/page01.html b/docs/tutorials/003/page01.html
deleted file mode 100644
index 5dd805844f0..00000000000
--- a/docs/tutorials/003/page01.html
+++ /dev/null
@@ -1,161 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 003</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 003</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a Simple Client</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>Now that we've seen how to create servers, let's spend just a moment
-making a client. Since this is so easy, I'm going to do all of it in this
-one page.
-
-<P>
-Kirthika says, "Here's an one paragraph abstract for a one page client app:"
-
-<UL>
- The server is an Stream object of ACE_SOCK_Stream type. The
- ACE_Sock_Connector does the job of actively making a connection with the
- listening server. It does so using the server_host_address and port
- number which are stored in the ACE_INET_Addr object.Once the
- connection has been established, the client begins its interaction
- with the server and bombards it with messages.
- Note: send_n() call is used since this call sees to the issues of
- network buffering and reliably gets the data across to the server.
- Also, a timeout value is set to provide fault tolerance if the server
- ever dies before the transaction is completed. The server calls a
- close() method
- once it reads in zero bytes during the Event_Handler::handle_input()
- call. This
- proves that the client has severed its connection. The server then
- shuts down.
-</UL>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* To establish a socket connection to a server, we'll need an
- ACE_SOCK_Connector. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Connector.h">ace/SOCK_Connector.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-<font color=red>/* Unlike the previous two tutorials, we're going to allow the user to
- provide command line options this time. Still, we need defaults in
- case that isn't done. */</font>
-static u_short SERVER_PORT = ACE_DEFAULT_SERVER_PORT;
-static const char *const SERVER_HOST = ACE_DEFAULT_SERVER_HOST;
-static const int MAX_ITERATIONS = 4;
-
-int
-main (int argc, char *argv[])
-{
- <font color=red>/* Accept the users's choice of hosts or use the default. Then do
- the same for the TCP/IP port at which the server is listening as
- well as the number of iterations to perform. */</font>
- const char *server_host = argc > 1 ? argv[1] : SERVER_HOST;
- u_short server_port = argc > 2 ? <font color=#008888>ACE_OS::atoi</font> (argv[2]) : SERVER_PORT;
- int max_iterations = argc > 3 ? <font color=#008888>ACE_OS::atoi</font> (argv[3]) : MAX_ITERATIONS;
-
- <font color=red>/* Build ourselves a Stream socket. This is a connected socket that
- provides reliable end-to-end communications. We will use the
- server object to send data to the server we connect to. */</font>
- ACE_SOCK_Stream server;
-
- <font color=red>/* And we need a connector object to establish that connection. The
- ACE_SOCK_Connector object provides all of the tools we need to
- establish a connection once we know the server's network
- address... */</font>
- ACE_SOCK_Connector connector;
-
- <font color=red>/* Which we create with an ACE_INET_Addr object. This object is
- given the TCP/IP port and hostname of the server we want to
- connect to. */</font>
- ACE_INET_Addr addr (server_port,
- server_host);
-
- <font color=red>/* So, we feed the Addr object and the Stream object to the
- connector's connect() member function. Given this information, it
- will establish the network connection to the server and attach
- that connection to the server object. */</font>
- if (connector.connect (server, addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
-
- <font color=red>/* Just for grins, we'll send the server several messages. */</font>
- for (int i = 0; i &lt; max_iterations; i++)
- {
- char buf[BUFSIZ];
-
- <font color=red>/* Create our message with the message number */</font>
- <font color=#008888>ACE_OS::sprintf</font> (buf,
- "<font color=green>message = %d\n</font>",
- i + 1);
- <font color=red>/* Send the message to the server. We use the server object's
- send_n() function to send all of the data at once. There is
- also a send() function but it may not send all of the
- data. That is due to network buffer availability and such. If
- the send() doesn't send all of the data, it is up to you to
- program things such that it will keep trying until all of the
- data is sent or simply give up. The send_n() function already
- does the "<font color=green>keep trying</font>" option for us, so we use it.
-
- Like the send() method used in the servers we've seen, there
- are two additional parameters you can use on the send() and
- send_n() method calls. The timeout parameter limits the
- amount of time the system will attempt to send the data to the
- peer. The flags parameter is passed directly to the OS send()
- system call. See send(2) for the valid flags values. */</font>
- if (server.send_n (buf,
- <font color=#008888>ACE_OS::strlen</font> (buf)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>send</font>"),
- -1);
- else
- <font color=red>/* Pause for a second. */</font>
- <font color=#008888>ACE_OS::sleep</font> (1);
- }
-
- <font color=red>/* Close the connection to the server. The servers we've created so
- far all are based on the ACE_Reactor. When we close(), the
- server's reactor will see activity for the registered event
- handler and invoke handle_input(). That, in turn, will try to
- read from the socket but get back zero bytes. At that point, the
- server will know that we've closed from our side. */</font>
- if (server.close () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>close</font>"),
- -1);
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-
-<P>Ok, so that was pretty easy. What would be even easier would be to wrap
-all of the connection mess up in an object and overload a couple of basic
-operators to make things less network-centric. Perhaps we'll see that in
-another tutorial.
-
-<P>If you want to compile it yourself, here's the <A HREF="client.cpp">source</A>,
-the <A HREF="Makefile">Makefile</A>,
-and <A HREF="00SetEnv">Environment
-settings</A>.
-
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/004/004.dsp b/docs/tutorials/004/004.dsp
deleted file mode 100644
index 67106a5bf88..00000000000
--- a/docs/tutorials/004/004.dsp
+++ /dev/null
@@ -1,100 +0,0 @@
-# Microsoft Developer Studio Project File - Name="004" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=004 - 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 "004.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 "004.mak" CFG="004 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "004 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "004 - 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)" == "004 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "004 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"client.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "004 - Win32 Release"
-# Name "004 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\client.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/004/00SetEnv b/docs/tutorials/004/00SetEnv
deleted file mode 100644
index eca78e10c85..00000000000
--- a/docs/tutorials/004/00SetEnv
+++ /dev/null
@@ -1,2 +0,0 @@
-export ACE_ROOT=/local/src/ACE/ACE_wrappers
-export LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
diff --git a/docs/tutorials/004/Makefile b/docs/tutorials/004/Makefile
deleted file mode 100644
index 0bfc82e3bd5..00000000000
--- a/docs/tutorials/004/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for client logging applications
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = client
-
-LSRC = $(addsuffix .cpp,$(BIN))
-
-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.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
diff --git a/docs/tutorials/004/client.cpp b/docs/tutorials/004/client.cpp
deleted file mode 100644
index 54bcbc04fa0..00000000000
--- a/docs/tutorials/004/client.cpp
+++ /dev/null
@@ -1,216 +0,0 @@
-// $Id$
-
-/* We need the connector object & we also bring in a simple string
- class. */
-#include "ace/Log_Msg.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/SString.h"
-
-/* In this tutorial, we extend SOCK_Stream by adding a few wrappers
- around the send_n() method. */
-class Client : public ACE_SOCK_Stream
-{
-public:
- // Basic constructor
- Client (void);
-
- /* Construct and open() in one call. This isn't generally a good
- idea because you don't have a clean way to inform the caller when
- open() fails. (Unless you use C++ exceptions.) */
- Client (const char *server,
- u_short port);
-
- /* Open the connection to the server. Notice that this mirrors the
- use of ACE_SOCK_Connector. By providing our own open(), we can
- hide the connector from our caller & make it's interaction easier. */
- int open (const char *server,
- u_short port);
-
- /* These are necessary if you're going to use the constructor that
- invokes open(). */
- int initialized (void) { return initialized_; }
- int error (void) { return error_; }
-
- /* This is where the coolness lies. Most C++ folks are familiar
- with "cout << some-data." It's a very handy and easy way to toss
- data around. By adding these method calls, we're able to do the
- same thing with a socket connection. */
- Client &operator<< (ACE_SString &str);
- Client &operator<< (char *str);
- Client &operator<< (int n);
-
-protected:
- u_char initialized_;
- u_char error_;
-};
-
-/* The basic constructor just sets our flags to reasonable values. */
-Client::Client(void)
-{
- initialized_ = 0;
- error_ = 0;
-}
-
-/* This constructor also sets the flags but then calls open(). If the
- open() fails, the flags will be set appropriately. Use the two
- inline method calls initialized() and error() to check the object
- state after using this constructor. */
-Client::Client (const char *server,
- u_short port)
-{
- initialized_ = 0;
- error_ = 0;
- this->open (server, port);
-}
-
-/* Open a connection to the server. This hides the use of
- ACE_SOCK_Connector from our caller. Since our caller probably
- doesn't care *how* we connect, this is a good thing. */
-int
-Client::open (const char *server,
- u_short port)
-{
- /* This is right out of Tutorial 3. The only thing we've added is
- to set the initialized_ member variable on success. */
-
- ACE_SOCK_Connector connector;
- ACE_INET_Addr addr (port, server);
-
- if (connector.connect (*this, addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
- initialized_ = 1;
- return 0;
-}
-
-/* The first of our put operators sends a simple string object to the
- peer. */
-Client &
-Client::operator<< (ACE_SString &str)
-{
- /* We have to be able to allow: server << foo << bar << stuff;
-
- To accomplish that, every << operator must check that the object
- is in a valid state before doing work. */
-
- if (initialized () && !error ())
- {
- /* Get the actual data held in the string object */
- const char *cp = str.fast_rep ();
-
- /* Send that data to the peer using send_n() as before. If we
- have a problem, we'll set error_ so that subsequent <<
- operations won't try to use a broken stream. */
- if (this->send_n (cp,
- ACE_OS::strlen (cp)) == -1)
- error_ = 1;
- }
- else
- /* Be sure that error_ is set if somebody tries to use us when
- we're not initialized. */
- error_ = 1;
-
- /* We have to return a reference to ourselves to allow chaining of
- put operations (eg -- "server << foo << bar"). Without the
- reference, you would have to do each put operation as a statement.
- That's OK but doesn't have the same feel as standard C++
- iostreams. */
- return *this ;
-}
-
-/* How do you put a char*? We'll take an easy way out and construct
-an ACE_SString from the char* and then put that. It would have been
-more efficient to implement this with the body of the
-operator<<(ACE_SString&) method and then express that method in terms
-of this one. There's always more than one way to do things! */
-
-Client &
-Client::operator<< (char *str)
-{
- ACE_SString newStr (str);
-
- *this << newStr;
-
- return *this ;
-
- /* Notice that we could have been really clever and done:
-
- return *this << ACE_SString (str);
-
- That kind of thing just makes debugging a pain though! */
-}
-
-/* ACE_SString and char* are both about the same thing. What do you
- do about different datatypes though?
-
- Do the same thing we did with char* and convert it to ACE_SString
- where we already have a << operator defined. */
-Client &
-Client::operator<< (int n)
-{
- /* Create a character buffer large enough for the largest number.
- That's a tough call but BUFSIZ should be quite enough. */
- char buf[BUFSIZ];
-
- /* Put the number into our buffer... */
- ACE_OS::sprintf (buf,
- "(%d)\n",
- n);
-
- /* And create the ACE_SString that we know how to put. */
- ACE_SString newStr (buf);
-
- /* Send it and... */
- *this << newStr;
-
- /* return ourselves as usual. */
- return *this;
-}
-
-/* Now we pull it all together. Like Tutorial 3, we'll allow command
- line options. */
-int
-main (int argc, char *argv[])
-{
- const char *server_host = argc > 1 ? argv[1] : ACE_DEFAULT_SERVER_HOST;
- u_short server_port = argc > 2 ? ACE_OS::atoi (argv[2]) : ACE_DEFAULT_SERVER_PORT;
- int max_iterations = argc > 3 ? ACE_OS::atoi (argv[3]) : 4;
-
- /* Use the basic constructor since the other isn't really very safe. */
- Client peer;
-
- /* Open the server connection. Notice how this is simpler than
- Tutorial 3 since we only have to provide a host name and port
- value. */
- if (peer.open (server_host,
- server_port) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- for (int i = 0; i < max_iterations; i++)
- {
- /* Tell the server which iteration we're on. No more mucking
- aroudn with sprintf at this level! It's all hidden from us. */
- peer << "message = " << i+1;
-
- /* Everything OK? */
- if (peer.error ())
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "send"),
- -1);
- else
- ACE_OS::sleep (1);
- }
-
- if (peer.close () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "close"),
- -1);
- return 0;
-}
diff --git a/docs/tutorials/004/combine.shar b/docs/tutorials/004/combine.shar
deleted file mode 100644
index 89c0785719e..00000000000
--- a/docs/tutorials/004/combine.shar
+++ /dev/null
@@ -1,216 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/004'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 591 -rw-rw-r-- hdr
-# 18 -rw-rw-r-- bodies
-# 701 -rw-rw-r-- page01.pre
-# 959 -rw-rw-r-- page01.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32365; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <META NAME="Description" CONTENT="A first step towards using ACE productively">
-X <TITLE>ACE Tutorial 004</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 004</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>A much more clever Client</FONT></B></CENTER>
-X
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-f129543602285ef632d3ae560999a4db hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 591 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '591,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=1
-client.cpp
-SHAR_EOF
- $shar_touch -am 0117142999 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-d02fcd98e57e40350f82497be4ac0e0c bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 18 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '18,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X
-<P>Ok, so the last time around, we learned how to create a simple client
-that can send a chunk of data. A cooler thing to do is to overload
-the C++ put operator (&lt;&lt;) to put some data for us. That's what
-we're going to do this time. (This tutorial is actually where ACE_IOStream
-was born.)
-<P>
-Kirthika says:
-<UL>
-The cool thing about this "cooler" client is how we use a C++ trick for
-streaming incoming data by using the operator<<() method. Also the
-Connector portion is wrapped in the open() method which now takes in the
-server hostname and port. The result is a cleaner looking client which
-successfully interacts with the server when connection is established.
-</UL>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-c0f522e5dbdca1211121476939bb2eaf page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 701 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '701,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pst ==============
-if test -f 'page01.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pst' &&
-<HR WIDTH="100%">
-X
-<P>Ok, now we're done with that. As you can see, it really isn't
-so hard to create an object that makes sending data much more "natural"
-than the typical send() or send_n() invocation. You can even build
-up arbitrary objects and do some neat tricks with C++ templates to stream
-their data out as well. (We may go into that a little later.)
-Of course, writting the full implementation such that these streams are
-interchangable with the standard C++ ostreams is quite a bit more difficult.
-In addition, there are a lot of optimizations that this client would benefit
-from!
-X
-<P>As an exercise to the reader (don't you hate those!) I challenge you
-to write the server side of this. You can take a look at IOStream_Test
-in the ACE distribution if you get stuck...
-X
-<P>If you want to compile it yourself, here's the <A HREF="client.cpp">source</A>,
-the <A HREF="Makefile">Makefile</A>,
-and <A HREF="00SetEnv">Environment
-settings</A>.
-X
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pst' &&
- chmod 0664 'page01.pst' ||
- $echo 'restore of' 'page01.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pst:' 'MD5 check failed'
-82999856145d3dfa74ebbda7e98eb4b2 page01.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pst'`"
- test 959 -eq "$shar_count" ||
- $echo 'page01.pst:' 'original size' '959,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32365
-exit 0
diff --git a/docs/tutorials/004/page01.html b/docs/tutorials/004/page01.html
deleted file mode 100644
index f0ca6eb2ef3..00000000000
--- a/docs/tutorials/004/page01.html
+++ /dev/null
@@ -1,277 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 004</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 004</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>A much more clever Client</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>Ok, so the last time around, we learned how to create a simple client
-that can send a chunk of data. A cooler thing to do is to overload
-the C++ put operator (&lt;&lt;) to put some data for us. That's what
-we're going to do this time. (This tutorial is actually where ACE_IOStream
-was born.)
-<P>
-Kirthika says:
-<UL>
-The cool thing about this "cooler" client is how we use a C++ trick for
-streaming incoming data by using the operator<<() method. Also the
-Connector portion is wrapped in the open() method which now takes in the
-server hostname and port. The result is a cleaner looking client which
-successfully interacts with the server when connection is established.
-</UL>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* We need the connector object & we also bring in a simple string
- class. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Connector.h">ace/SOCK_Connector.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SString.h">ace/SString.h</A>"
-
-<font color=red>/* In this tutorial, we extend SOCK_Stream by adding a few wrappers
- around the send_n() method. */</font>
-class Client : public ACE_SOCK_Stream
-{
-public:
- <font color=red>// Basic constructor</font>
- Client (void);
-
- <font color=red>/* Construct and open() in one call. This isn't generally a good
- idea because you don't have a clean way to inform the caller when
- open() fails. (Unless you use C++ exceptions.) */</font>
- Client (const char *server,
- u_short port);
-
- <font color=red>/* Open the connection to the server. Notice that this mirrors the
- use of ACE_SOCK_Connector. By providing our own open(), we can
- hide the connector from our caller & make it's interaction easier. */</font>
- int open (const char *server,
- u_short port);
-
- <font color=red>/* These are necessary if you're going to use the constructor that
- invokes open(). */</font>
- int initialized (void) { return initialized_; }
- int error (void) { return error_; }
-
- <font color=red>/* This is where the coolness lies. Most C++ folks are familiar
- with "<font color=green>cout &lt;&lt; some-data.</font>" It's a very handy and easy way to toss
- data around. By adding these method calls, we're able to do the
- same thing with a socket connection. */</font>
- Client &operator&lt;&lt; (ACE_SString &str);
- Client &operator&lt;&lt; (char *str);
- Client &operator&lt;&lt; (int n);
-
-protected:
- u_char initialized_;
- u_char error_;
-};
-
-<font color=red>/* The basic constructor just sets our flags to reasonable values. */</font>
-<font color=#008888>Client::Client</font>(void)
-{
- initialized_ = 0;
- error_ = 0;
-}
-
-<font color=red>/* This constructor also sets the flags but then calls open(). If the
- open() fails, the flags will be set appropriately. Use the two
- inline method calls initialized() and error() to check the object
- state after using this constructor. */</font>
-<font color=#008888>Client::Client</font> (const char *server,
- u_short port)
-{
- initialized_ = 0;
- error_ = 0;
- this->open (server, port);
-}
-
-<font color=red>/* Open a connection to the server. This hides the use of
- ACE_SOCK_Connector from our caller. Since our caller probably
- doesn't care *how* we connect, this is a good thing. */</font>
-int
-<font color=#008888>Client::open</font> (const char *server,
- u_short port)
-{
- <font color=red>/* This is right out of Tutorial 3. The only thing we've added is
- to set the initialized_ member variable on success. */</font>
-
- ACE_SOCK_Connector connector;
- ACE_INET_Addr addr (port, server);
-
- if (connector.connect (*this, addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
- initialized_ = 1;
- return 0;
-}
-
-<font color=red>/* The first of our put operators sends a simple string object to the
- peer. */</font>
-Client &
-<font color=#008888>Client::operator</font>&lt;&lt; (ACE_SString &str)
-{
- <font color=red>/* We have to be able to allow: server &lt;&lt; foo &lt;&lt; bar &lt;&lt; stuff;
-
- To accomplish that, every &lt;&lt; operator must check that the object
- is in a valid state before doing work. */</font>
-
- if (initialized () && !error ())
- {
- <font color=red>/* Get the actual data held in the string object */</font>
- const char *cp = str.fast_rep ();
-
- <font color=red>/* Send that data to the peer using send_n() as before. If we
- have a problem, we'll set error_ so that subsequent &lt;&lt;
- operations won't try to use a broken stream. */</font>
- if (this->send_n (cp,
- <font color=#008888>ACE_OS::strlen</font> (cp)) == -1)
- error_ = 1;
- }
- else
- <font color=red>/* Be sure that error_ is set if somebody tries to use us when
- we're not initialized. */</font>
- error_ = 1;
-
- <font color=red>/* We have to return a reference to ourselves to allow chaining of
- put operations (eg -- "<font color=green>server &lt;&lt; foo &lt;&lt; bar</font>"). Without the
- reference, you would have to do each put operation as a statement.
- That's OK but doesn't have the same feel as standard C++
- iostreams. */</font>
- return *this ;
-}
-
-<font color=red>/* How do you put a char*? We'll take an easy way out and construct
-an ACE_SString from the char* and then put that. It would have been
-more efficient to implement this with the body of the
-operator&lt;&lt;(ACE_SString&) method and then express that method in terms
-of this one. There's always more than one way to do things! */</font>
-
-Client &
-<font color=#008888>Client::operator</font>&lt;&lt; (char *str)
-{
- ACE_SString newStr (str);
-
- *this &lt;&lt; newStr;
-
- return *this ;
-
- <font color=red>/* Notice that we could have been really clever and done:
-
- return *this &lt;&lt; ACE_SString (str);
-
- That kind of thing just makes debugging a pain though! */</font>
-}
-
-<font color=red>/* ACE_SString and char* are both about the same thing. What do you
- do about different datatypes though?
-
- Do the same thing we did with char* and convert it to ACE_SString
- where we already have a &lt;&lt; operator defined. */</font>
-Client &
-<font color=#008888>Client::operator</font>&lt;&lt; (int n)
-{
- <font color=red>/* Create a character buffer large enough for the largest number.
- That's a tough call but BUFSIZ should be quite enough. */</font>
- char buf[BUFSIZ];
-
- <font color=red>/* Put the number into our buffer... */</font>
- <font color=#008888>ACE_OS::sprintf</font> (buf,
- "<font color=green>(%d)\n</font>",
- n);
-
- <font color=red>/* And create the ACE_SString that we know how to put. */</font>
- ACE_SString newStr (buf);
-
- <font color=red>/* Send it and... */</font>
- *this &lt;&lt; newStr;
-
- <font color=red>/* return ourselves as usual. */</font>
- return *this;
-}
-
-<font color=red>/* Now we pull it all together. Like Tutorial 3, we'll allow command
- line options. */</font>
-int
-main (int argc, char *argv[])
-{
- const char *server_host = argc > 1 ? argv[1] : ACE_DEFAULT_SERVER_HOST;
- u_short server_port = argc > 2 ? <font color=#008888>ACE_OS::atoi</font> (argv[2]) : ACE_DEFAULT_SERVER_PORT;
- int max_iterations = argc > 3 ? <font color=#008888>ACE_OS::atoi</font> (argv[3]) : 4;
-
- <font color=red>/* Use the basic constructor since the other isn't really very safe. */</font>
- Client peer;
-
- <font color=red>/* Open the server connection. Notice how this is simpler than
- Tutorial 3 since we only have to provide a host name and port
- value. */</font>
- if (peer.open (server_host,
- server_port) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
-
- for (int i = 0; i &lt; max_iterations; i++)
- {
- <font color=red>/* Tell the server which iteration we're on. No more mucking
- aroudn with sprintf at this level! It's all hidden from us. */</font>
- peer &lt;&lt; "<font color=green>message = </font>" &lt;&lt; i+1;
-
- <font color=red>/* Everything OK? */</font>
- if (peer.error ())
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>send</font>"),
- -1);
- else
- <font color=#008888>ACE_OS::sleep</font> (1);
- }
-
- if (peer.close () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>close</font>"),
- -1);
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-
-<P>Ok, now we're done with that. As you can see, it really isn't
-so hard to create an object that makes sending data much more "natural"
-than the typical send() or send_n() invocation. You can even build
-up arbitrary objects and do some neat tricks with C++ templates to stream
-their data out as well. (We may go into that a little later.)
-Of course, writting the full implementation such that these streams are
-interchangable with the standard C++ ostreams is quite a bit more difficult.
-In addition, there are a lot of optimizations that this client would benefit
-from!
-
-<P>As an exercise to the reader (don't you hate those!) I challenge you
-to write the server side of this. You can take a look at IOStream_Test
-in the ACE distribution if you get stuck...
-
-<P>If you want to compile it yourself, here's the <A HREF="client.cpp">source</A>,
-the <A HREF="Makefile">Makefile</A>,
-and <A HREF="00SetEnv">Environment
-settings</A>.
-
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/005/005.dsp b/docs/tutorials/005/005.dsp
deleted file mode 100644
index 785534901f1..00000000000
--- a/docs/tutorials/005/005.dsp
+++ /dev/null
@@ -1,114 +0,0 @@
-# Microsoft Developer Studio Project File - Name="005" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=005 - 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 "005.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 "005.mak" CFG="005 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "005 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "005 - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "005 - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "005 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"server.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "005 - Win32 Release"
-# Name "005 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\client_handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\client_acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\client_handler.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/005/00SetEnv b/docs/tutorials/005/00SetEnv
deleted file mode 100644
index eca78e10c85..00000000000
--- a/docs/tutorials/005/00SetEnv
+++ /dev/null
@@ -1,2 +0,0 @@
-export ACE_ROOT=/local/src/ACE/ACE_wrappers
-export LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
diff --git a/docs/tutorials/005/Makefile b/docs/tutorials/005/Makefile
deleted file mode 100644
index d8f01d76929..00000000000
--- a/docs/tutorials/005/Makefile
+++ /dev/null
@@ -1,118 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-# You can generally find a Makefile in the ACE examples, tests or the library
-# itself that will satisfy our application needs. This one was taken from
-# one of the examples.
-
- # Define the name of the binary we want to create. There has to be
- # a CPP file $(BIN).cpp but it doesn't necessarily have to have your
- # main() in it. Most of the time, though, it will.
-BIN = server
-
- # Few applications will have a single source file. We use the FILES
- # macro to build up a list of additional files to compile. Notice
- # that we leave off the extension just as with BIN
-FILES =
-FILES += client_handler
-
- # The BUILD macro is used by the ACE makefiles. Basically, it tells
- # the system what to build. I don't really know what VBIN is other
- # than it is constructed from the value of BIN. Just go with it...
-BUILD = $(VBIN)
-
- # Here we use some GNU make extensions to build the SRC macro. Basically,
- # we're just adding .cpp to the value of BIN and for each entry of the
- # FILES macro.
-SRC = $(addsuffix .cpp,$(BIN)) $(addsuffix .cpp,$(FILES))
-
- # This is used by my Indent target below. It's not a part of standard
- # ACE and you don't need it yourself.
-HDR = *.h
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
- # This is where the real power lies! These included makefile components
- # are similar to the C++ templates in ACE. That is, they do a tremendous
- # amount of work for you and all you have to do is include them.
- # As a matter of fact, in our project, I created a single file named
- # "app.mk" that includes all of these. Our project makefiles then just
- # need to include app.mk to get everything they need.
-
-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
-#----------------------------------------------------------------------------
-
- # Sometimes I like to reformat my code to make it more readable. This is
- # more useful for the comments than anything else. Unfortunately, the
- # "indent" program doesn't quite grok C++ so I have to post-process it's
- # output just a bit.
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
- # One of the targets in the ACE makefiles is "depend". It will invoke
- # your compiler in a way that will generate a list of dependencies for
- # you. This is a great thing! Unfortunately, it puts all of that mess
- # directly into the Makefile. I prefer my Makefile to stay clean and
- # uncluttered. The perl script referenced here pulls the dependency
- # stuff back out of the Makefile and into a file ".depend" which we then
- # include just like the makefile components above.
- #
- # NOTE: The 'depend' target expects to have GCC available.
- # You can do the same thing with other compilers but the ACE
- # makefiles and utilities are only wired up to work with GCC.
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
- # Don't put anything below here. Between the "depend" target and fix.Makefile
- # it's guaranteed to be lost!
-
- # This is inserted by the fix.Makefile script
-include .depend
diff --git a/docs/tutorials/005/client_acceptor.h b/docs/tutorials/005/client_acceptor.h
deleted file mode 100644
index 44db0e9984b..00000000000
--- a/docs/tutorials/005/client_acceptor.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// $Id$
-
-#ifndef CLIENT_ACCEPTOR_H
-#define CLIENT_ACCEPTOR_H
-
-/* The ACE_Acceptor<> template lives in the ace/Acceptor.h header
- file. You'll find a very consitent naming convention between the
- ACE objects and the headers where they can be found. In general,
- the ACE object ACE_Foobar will be found in ace/Foobar.h. */
-
-#include "ace/Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* Since we want to work with sockets, we'll need a SOCK_Acceptor to
- allow the clients to connect to us. */
-#include "ace/SOCK_Acceptor.h"
-
-/* The Client_Handler object we develop will be used to handle clients
- once they're connected. The ACE_Acceptor<> template's first
- parameter requires such an object. In some cases, you can get by
- with just a forward declaration on the class, in others you have to
- have the whole thing. */
-#include "client_handler.h"
-
-/* Parameterize the ACE_Acceptor<> such that it will listen for socket
- connection attempts and create Client_Handler objects when they
- happen. In Tutorial 001, we wrote the basic acceptor logic on our
- own before we realized that ACE_Acceptor<> was available. You'll
- get spoiled using the ACE templates because they take away a lot of
- the tedious details! */
-typedef ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR> Client_Acceptor;
-
-#endif /* CLIENT_ACCEPTOR_H */
diff --git a/docs/tutorials/005/client_handler.cpp b/docs/tutorials/005/client_handler.cpp
deleted file mode 100644
index d1e51f0833c..00000000000
--- a/docs/tutorials/005/client_handler.cpp
+++ /dev/null
@@ -1,225 +0,0 @@
-// $Id$
-
-/* In client_handler.h I alluded to the fact that we'll mess around
- with a Client_Acceptor pointer. To do so, we need the
- Client_Acceptor object declaration.
-
- We know that including client_handler.h is redundant because
- client_acceptor.h includes it. Still, the sentry prevents
- double-inclusion from causing problems and it's sometimes good to
- be explicit about what we're using.
-
- On the other hand, we don't directly include any ACE header files
- here. */
-#include "client_acceptor.h"
-#include "client_handler.h"
-
-/* Our constructor doesn't do anything. That's generally a good idea.
- Unless you want to start throwing exceptions, there isn't a really
- good way to indicate that a constructor has failed. If I had my
- way, I'd have a boolean return code from it that would cause new to
- return 0 if I failed. Oh well... */
-Client_Handler::Client_Handler (void)
-{
-}
-
-/* Our destructor doesn't do anything either. That is also by design.
- Remember, we really want folks to use destroy() to get rid of us.
- If that's so, then there's nothing left to do when the destructor
- gets invoked. */
-Client_Handler::~Client_Handler (void)
-{
- // Make sure that our peer closes when we're deleted. This
- // will probably happened when the peer is deleted but it
- // doesn't hurt to be explicit.
- this->peer ().close ();
-}
-
-/* The much talked about destroy() method! The reason I keep going on
- about this is because it's just a Bad Idea (TM) to do real work
- inside of a destructor. Although this method is void, it really
- should return int so that it can tell the caller there was a
- problem. Even as void you could at least throw an exception which
- you would never want to do in a destructor. */
-void
-Client_Handler::destroy (void)
-{
- /* Tell the reactor to forget all about us. Notice that we use the
- same args here that we use in the open() method to register
- ourselves. In addition, we use the DONT_CALL flag to prevent
- handle_close() being called. Since we likely got here due to
- handle_close(), that could cause a bit of nasty recursion! */
- this->reactor ()->remove_handler (this,
- ACE_Event_Handler:: READ_MASK | ACE_Event_Handler::DONT_CALL);
-
- /* This is how we're able to tell folks not to use delete. By
- deleting our own instance, we take care of memory leaks after
- ensuring that the object is shut down correctly. */
- delete this;
-}
-
-/* As mentioned before, the open() method is called by the
- Client_Acceptor when a new client connection has been accepted.
- The Client_Acceptor instance pointer is cast to a void* and given
- to us here. We'll use that to avoid some global data... */
-int
-Client_Handler::open (void *_acceptor)
-{
- /* Convert the void* to a Client_Acceptor*. You should probably use
- those fancy ACE_*_cast macros but I can never remember how/when
- to do so. Since you can cast just about anything around a void*
- without compiler warnings be very sure of what you're doing when
- you do this kind of thing. That's where the new-style cast
- operators can save you. */
- Client_Acceptor *acceptor = (Client_Acceptor *) _acceptor;
-
- /* Our reactor reference will be set when we register ourselves but
- I decided to go ahead and set it here. No good reason really... */
- this->reactor (acceptor->reactor ());
-
- /* We need this to store the address of the client that we are now
- connected to. We'll use it later to display a debug message. */
- ACE_INET_Addr addr;
-
- /* Our ACE_Svc_Handler baseclass gives us the peer() method as a way
- to access our underlying ACE_SOCK_Stream. On that object, we can
- invoke the get_remote_addr() method to get an ACE_INET_Addr
- having our client's address information. As with most ACE
- methods, we'll get back (and return) a -1 if there was any kind
- of error. Once we have the ACE_INET_Addr, we can query it to
- find out the clien's host name, TCP/IP address, TCP/IP port value
- and so forth. One word of warning: the get_host_name() method of
- ACE_INET_Addr may return you an empty string if your name server
- can't resolve it. On the other hand, get_host_addr() will always
- give you the dotted-decimal string representing the TCP/IP
- address. */
- if (this->peer ().get_remote_addr (addr) == -1)
- return -1;
-
- /* If we managed to get the client's address then we're connected to
- a real and valid client. I suppose that in some cases, the
- client may connect and disconnect so quickly that it is invalid
- by the time we get here. In any case, the test above should
- always be done to ensure that the connection is worth keeping.
-
- Now, register ourselves with a reactor and tell that reactor that
- we want to be notified when there is something to read.
- Remember, we took our reactor value from the acceptor which
- created us in the first place. Since we're exploring a
- single-threaded implementation, this is the correct thing to do. */
- if (this->reactor ()->register_handler (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) can't register with reactor\n"),
- -1);
-
- /* Here, we use the ACE_INET_Addr object to print a message with the
- name of the client we're connected to. Again, it is possible
- that you'll get an empty string for the host name if your DNS
- isn't configured correctly or if there is some other reason that
- a TCP/IP addreess cannot be converted into a host name. */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) connected with %s\n",
- addr.get_host_name ()));
-
- /* Always return zero on success. */
- return 0;
-}
-
-/* In the open() method, we registered with the reactor and requested
- to be notified when there is data to be read. When the reactor
- sees that activity it will invoke this handle_input() method on us.
- As I mentioned, the _handle parameter isn't useful to us but it
- narrows the list of methods the reactor has to worry about and the
- list of possible virtual functions we would have to override. */
-int
-Client_Handler::handle_input (ACE_HANDLE handle)
-{
- /* Some compilers don't like it when you fail to use a parameter.
- This macro will keep 'em quiet for you. */
- ACE_UNUSED_ARG (handle);
-
- /* Now, we create and initialize a buffer for receiving the data.
- Since this is just a simple test app, we'll use a small buffer
- size. */
- char buf[BUFSIZ];
-
- /* Invoke the process() method with a pointer to our data area.
- We'll let that method worry about interfacing with the data. You
- might choose to go ahead and read the data and then pass the
- result to process(). However, application logic may require that
- you read a few bytes to determine what else to read... It's best
- if we push that all into the application-logic level. */
- return this->process (buf, sizeof (buf));
-}
-
-/* If we return -1 out of handle_input() or if the reactor sees other
- problems with us then handle_close() will be called. The reactor
- framework will take care of removing us (due to the -1), so we
- don't need to use the destroy() method. Instead, we just delete
- ourselves directly. */
-int
-Client_Handler::handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (mask);
-
- delete this;
- return 0;
-}
-
-/* And, at last, we get to the application-logic level. Out of
- everything we've done so far, this is the only thing that really
- has anything to do with what your application will do. In this
- method we will read and process the client's data. In a real
- appliation, you will probably have a bit more in main() to deal
- with command line options but after that point, all of the action
- takes place here. */
-int
-Client_Handler::process (char *rdbuf,
- int rdbuf_len)
-{
- ssize_t bytes_read = -1;
-
- /* Using the buffer provided for us, we read the data from the
- client. If there is a read error (eg -- recv() returns -1) then
- it's a pretty good bet that the connection is gone. Likewise, if
- we read zero bytes then something wrong has happened. The
- reactor wouldn't have called us if there wasn't some kind of read
- activity but there wouldn't be activity if there were no bytes to
- read...
-
- On the other hand, if we got some data then we can display it in
- a debug message for everyone to see. */
- switch ( (bytes_read = this->peer ().recv (rdbuf, rdbuf_len)) )
- {
- case -1: // Complain and leave
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) %p bad read\n",
- "client"),
- -1);
- case 0: // Complain and leave
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) closing daemon (fd = %d)\n",
- this->get_handle ()),
- -1);
- default: // Show the data
- // NULL-terminate the string before printing it.
- rdbuf[bytes_read] = 0;
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) from client: %s",
- rdbuf));
- }
-
- /* It's also worth mentioning that recv() has a cousin: recv_n().
- recv_n() will receive exactly the number of bytes you provide it.
- This is very good when you know exactly how much you expect to
- receive. For the application here, unfortunately, we don't have
- any idea how much the client will be sending. recv() will read
- up-to-but-not-more-than the number of bytes we specify (e.g. --
- _rdbuf_len). That works well when we don't know how much the
- client will provide. */
-
- return 0;
-}
diff --git a/docs/tutorials/005/client_handler.h b/docs/tutorials/005/client_handler.h
deleted file mode 100644
index 03d3b1a8e10..00000000000
--- a/docs/tutorials/005/client_handler.h
+++ /dev/null
@@ -1,100 +0,0 @@
-// $Id$
-
-#ifndef CLIENT_HANDLER_H
-#define CLIENT_HANDLER_H
-
-/* Our client handler must exist somewhere in the ACE_Event_Handler
- object hierarchy. This is a requirement of the ACE_Reactor because
- it maintains ACE_Event_Handler pointers for each registered event
- handler. You could derive our Client_Handler directly from
- ACE_Event_Handler but you still have to have an ACE_SOCK_Stream for
- the actual connection. With a direct derivative of
- ACE_Event_Handler, you'll have to contain and maintain an
- ACE_SOCK_Stream instance yourself. With ACE_Svc_Handler (which is
- a derivative of ACE_Event_Handler) some of those details are
- handled for you. */
-
-#include "ace/Svc_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Stream.h"
-
-/* Another feature of ACE_Svc_Handler is it's ability to present the
- ACE_Task<> interface as well. That's what the ACE_NULL_SYNCH
- parameter below is all about. That's beyond our scope here but
- we'll come back to it in the next tutorial when we start looking at
- concurrency options. */
-class Client_Handler : public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- // Constructor...
- Client_Handler (void);
-
- /* The destroy() method is our preferred method of destruction. We
- could have overloaded the delete operator but that is neither easy
- nor intuitive (at least to me). Instead, we provide a new method
- of destruction and we make our destructor protected so that only
- ourselves, our derivatives and our friends can delete us. It's a
- nice compromise. */
- void destroy (void);
-
- /* Most ACE objects have an open() method. That's how you make them
- ready to do work. ACE_Event_Handler has a virtual open() method
- which allows us to create an override. ACE_Acceptor<> will invoke
- this method after creating a new Client_Handler when a client
- connects. Notice that the parameter to open() is a void*. It just
- so happens that the pointer points to the acceptor which created
- us. You would like for the parameter to be an ACE_Acceptor<>* but
- since ACE_Event_Handler is generic, that would tie it too closely
- to the ACE_Acceptor<> set of objects. In our definition of open()
- you'll see how we get around that. */
- int open (void *acceptor);
-
- /* When there is activity on a registered handler, the
- handle_input() method of the handler will be invoked. If that
- method returns an error code (eg -- -1) then the reactor will
- invoke handle_close() to allow the object to clean itself
- up. Since an event handler can be registered for more than one
- type of callback, the callback mask is provided to inform
- handle_close() exactly which method failed. That way, you don't
- have to maintain state information between your handle_* method
- calls. The <handle> parameter is explained below... As a
- side-effect, the reactor will also invoke remove_handler() for the
- object on the mask that caused the -1 return. This means that we
- don't have to do that ourselves! */
- int handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
-protected:
-
- /* When we register with the reactor, we're going to tell it that we
- want to be notified of READ events. When the reactor sees that
- there is read activity for us, our handle_input() will be
- invoked. The _handle provided is the handle (file descriptor in
- Unix) of the actual connection causing the activity. Since we're
- derived from ACE_Svc_Handler<> and it maintains its own peer
- (ACE_SOCK_Stream) object, this is redundant for us. However, if
- we had been derived directly from ACE_Event_Handler, we may have
- chosen not to contain the peer. In that case, the <handle> would
- be important to us for reading the client's data. */
- int handle_input (ACE_HANDLE handle);
-
- /* This has nothing at all to do with ACE. I've added this here as
- a worker function which I will call from handle_input(). That
- allows me to introduce concurrency in later tutorials with no
- changes to the worker function. You can think of process() as
- application-level code and everything else as
- application-framework code. */
- int process (char *rdbuf, int rdbuf_len);
-
- /* We don't really do anything in our destructor but we've declared
- it to be protected to prevent casual deletion of this object. As
- I said above, I really would prefer that everyone goes through the
- destroy() method to get rid of us. */
- ~Client_Handler (void);
-};
-
-#endif /* CLIENT_HANDLER_H */
diff --git a/docs/tutorials/005/combine.shar b/docs/tutorials/005/combine.shar
deleted file mode 100644
index 841589e3c0c..00000000000
--- a/docs/tutorials/005/combine.shar
+++ /dev/null
@@ -1,423 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/005'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 598 -rw-rw-r-- hdr
-# 97 -rw-rw-r-- bodies
-# 628 -rw-rw-r-- page01.pre
-# 515 -rw-rw-r-- page02.pre
-# 685 -rw-rw-r-- page03.pre
-# 464 -rw-rw-r-- page04.pre
-# 218 -rw-rw-r-- page05.pre
-# 98 -rw-rw-r-- page06.pre
-# 172 -rw-rw-r-- page07.pre
-# 715 -rw-rw-r-- page08.pre
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32383; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
-X <META NAME="Author" CONTENT="Billy Quinn">
-X <META NAME="Description" CONTENT="A first step towards using ACE productively">
-X <TITLE>ACE Tutorial 005</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 005</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>On the road to a multithreaded server</FONT></B></CENTER>
-X
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-197a3d789965f9c046d4d84ee137ace9 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 598 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '598,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-server.cpp
-client_acceptor.h
-client_handler.h
-client_handler.cpp
-Makefile
-X../fix.Makefile
-SHAR_EOF
- $shar_touch -am 0117143799 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-dcbb8d7d85345e022a122f4f7fa10fb9 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 97 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '97,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X
-<P>In this tutorial, we're going to flash-back to the simple server we
-created a while back.&nbsp; We'll create a very simple server where everything
-takes place in one thread.&nbsp; Once we have a solid understanding there,
-we'll move on to the next tutorial where we begin to introduce concurrency
-concepts.
-X
-<P>There are four C++&nbsp;source files in this tutorial:&nbsp; server.cpp,
-client_acceptor.h, client_handler.h and client_handler.cpp.&nbsp; I'll
-talk about each of these in turn with the usual color commentary as we
-go.&nbsp; In addition, I'll briefly discuss the Makefile and a short perl
-script I've added.
-X
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-b819665dcbed1ef2efe12bdc8d8710c5 page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 628 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '628,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-X
-<P>We begin with <I><A HREF="server.cpp">server.cpp</A></I>.
-<P>
-Abstraction by Kirthika:
-<UL>
-This tutorial is a re-cap of the client-server hookup tutorial with much
-X cleaner code (for instance: use of destroy() to delete objects and
-process() which does the task of reading in data from the client).
-<P>
-We again enroll the services of the ACE_Reactor to handle events. Everything
-occurs in a single thread.
-<P>
-This tutorial is a stepping stone towards a mutithreaded server model.
-</ul>
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-94844c847ed36aa6bc7c7b98aafb7bbc page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 515 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '515,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-X
-<P>Now, let's take a look at <I><A HREF="client_acceptor.h">client_acceptor.h</A></I>.&nbsp;
-Since I went on about how it does all the work of letting clients connect
-to us, it must be rather complex.&nbsp; Right?&nbsp; Wrong.
-X
-<P>The more you use ACE, the more you'll find that they've already taken
-care of most details for you.&nbsp; With respect to the acceptance of client
-connections:&nbsp; there just aren't that many ways to do it!&nbsp; The
-ACE team has chosen an approach and created a C++&nbsp;template that does
-all of the work for you.&nbsp; All you're required to do is provide it
-with an object type to instantiate when a new connection arrives.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-edb44ba6e3033259e60b4a83d0675b03 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 685 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '685,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-X
-<P>Ok, so we've got a main() loop that sets up the acceptor and we've seen
-how easy it is to create the acceptor object.&nbsp; So far, we've hardly
-written any code at all.&nbsp; Well, that's just about to change...
-X
-<P>First, we look at <I><A HREF="client_handler.h">client_handler.h</A></I>
-for the declaration of the Client_Handler object.&nbsp; Then we look at
-the definition where all of the real work of the application takes place.
-X
-<P>
-<HR WIDTH="100%">
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-3a0e0d0c79318ca18dd5920dd97ca834 page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 464 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '464,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-X
-<P>Now we're finally at <I><A HREF="client_handler.cpp">client_handler.cpp</A></I>
-where we have to write some code.&nbsp; This file has more code than the
-rest of the application all together.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-d5fa96547c3b94abc387c8b87f2f3c92 page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 218 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '218,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-X
-<P>Before we go, I wanted you to see the <A HREF="Makefile">Makefile</A>.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-b8a35eb354a8e5c90155dd728a8bfa4e page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 98 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '98,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page07.pre ==============
-if test -f 'page07.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page07.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page07.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page07.pre' &&
-X
-<P>And last (and probably least) is the <A HREF="../fix.Makefile">perl script</A>
-that pulls the dependency stuff out of Makefile and into .depend.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page07.pre' &&
- chmod 0664 'page07.pre' ||
- $echo 'restore of' 'page07.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page07.pre:' 'MD5 check failed'
-7f896dc992a365d4d095d0a6d3b9eb47 page07.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page07.pre'`"
- test 172 -eq "$shar_count" ||
- $echo 'page07.pre:' 'original size' '172,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page08.pre ==============
-if test -f 'page08.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page08.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page08.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page08.pre' &&
-X
-<P>That's it for Tutorial 5.&nbsp; In this tutorial we've built a single-threaded
-reactor-based server.&nbsp; We've done a couple of things that aren't exactly
-necessary for such an implementation but I&nbsp;plan to build on that as
-we explore two other concurrency strategies:&nbsp; thread per connection
-and thread pool.
-X
-<P>For reference, here's the file list again:
-<UL>
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-X
-<LI>
-<A HREF="client_acceptor.h">client_acceptor.h</A></LI>
-X
-<LI>
-<A HREF="client_handler.cpp">client_handler.cpp</A></LI>
-X
-<LI>
-<A HREF="client_handler.h">client_handler.h</A></LI>
-X
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-X
-<LI>
-<A HREF="../fix.Makefile">fix.Makefile</A></LI>
-</UL>
-&nbsp;
-SHAR_EOF
- $shar_touch -am 03191459100 'page08.pre' &&
- chmod 0664 'page08.pre' ||
- $echo 'restore of' 'page08.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page08.pre:' 'MD5 check failed'
-678ef0c3162d2a2739d0efdcfeac5cb9 page08.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page08.pre'`"
- test 715 -eq "$shar_count" ||
- $echo 'page08.pre:' 'original size' '715,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32383
-exit 0
diff --git a/docs/tutorials/005/page01.html b/docs/tutorials/005/page01.html
deleted file mode 100644
index a3324f51fa0..00000000000
--- a/docs/tutorials/005/page01.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="Billy Quinn">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 005</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 005</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>On the road to a multithreaded server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>In this tutorial, we're going to flash-back to the simple server we
-created a while back.&nbsp; We'll create a very simple server where everything
-takes place in one thread.&nbsp; Once we have a solid understanding there,
-we'll move on to the next tutorial where we begin to introduce concurrency
-concepts.
-
-<P>There are four C++&nbsp;source files in this tutorial:&nbsp; server.cpp,
-client_acceptor.h, client_handler.h and client_handler.cpp.&nbsp; I'll
-talk about each of these in turn with the usual color commentary as we
-go.&nbsp; In addition, I'll briefly discuss the Makefile and a short perl
-script I've added.
-
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/005/page02.html b/docs/tutorials/005/page02.html
deleted file mode 100644
index d9f111507c1..00000000000
--- a/docs/tutorials/005/page02.html
+++ /dev/null
@@ -1,153 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="Billy Quinn">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 005</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 005</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>On the road to a multithreaded server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>We begin with <I><A HREF="server.cpp">server.cpp</A></I>.
-<P>
-Abstraction by Kirthika:
-<UL>
-This tutorial is a re-cap of the client-server hookup tutorial with much
- cleaner code (for instance: use of destroy() to delete objects and
-process() which does the task of reading in data from the client).
-<P>
-We again enroll the services of the ACE_Reactor to handle events. Everything
-occurs in a single thread.
-<P>
-This tutorial is a stepping stone towards a mutithreaded server model.
-</ul>
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* We try to keep main() very simple. One of the ways we do that is
- to push much of the complicated stuff into worker objects. In this
- case, we only need to include the acceptor header in our main
- source file. We let it worry about the "<font color=green>real work</font>". */</font>
-
-<font color=blue>#include</font> "<font color=green>client_acceptor.h</font>"
-
-<font color=red>/* As before, we create a simple signal handler that will set our
- finished flag. There are, of course, more elegant ways to handle
- program shutdown requests but that isn't really our focus right
- now, so we'll just do the easiest thing. */</font>
-
-static sig_atomic_t finished = 0;
-extern "<font color=green>C</font>" void handler (int)
-{
- finished = 1;
-}
-
-<font color=red>/* A server has to listen for clients at a known TCP/IP port. The
- default ACE port is 10002 (at least on my system) and that's good
- enough for what we want to do here. Obviously, a more robust
- application would take a command line parameter or read from a
- configuration file or do some other clever thing. Just like the
- signal handler above, though, that's not what we want to focus on,
- so we're taking the easy way out. */</font>
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-<font color=red>/* Finally, we get to main. Some C++ compilers will complain loudly
- if your function signature doesn't match the prototype. Even
- though we're not going to use the parameters, we still have to
- specify them. */</font>
-
-int
-main (int argc, char *argv[])
-{
- ACE_UNUSED_ARG(argc);
- ACE_UNUSED_ARG(argv);
-
- <font color=red>/* In our earlier servers, we used a global pointer to get to the
- reactor. I've never really liked that idea, so I've moved it into
- main() this time. When we get to the Client_Handler object you'll
- see how we manage to get a pointer back to this reactor. */</font>
- ACE_Reactor reactor;
-
- <font color=red>/* The acceptor will take care of letting clients connect to us. It
- will also arrange for a Client_Handler to be created for each new
- client. Since we're only going to listen at one TCP/IP port, we
- only need one acceptor. If we wanted, though, we could create
- several of these and listen at several ports. (That's what we
- would do if we wanted to rewrite inetd for instance.) */</font>
- Client_Acceptor peer_acceptor;
-
- <font color=red>/* Create an ACE_INET_Addr that represents our endpoint of a
- connection. We then open our acceptor object with that Addr.
- Doing so tells the acceptor where to listen for connections.
- Servers generally listen at "<font color=green>well known</font>" addresses. If not, there
- must be some mechanism by which the client is informed of the
- server's address.
-
- Note how ACE_ERROR_RETURN is used if we fail to open the acceptor.
- This technique is used over and over again in our tutorials. */</font>
- if (peer_acceptor.open (ACE_INET_Addr (PORT),
- &reactor) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
-
- <font color=red>/* Here, we know that the open was successful. If it had failed, we
- would have exited above. A nice side-effect of the open() is that
- we're already registered with the reactor we provided it. */</font>
-
- <font color=red>/* Install our signal handler. You can actually register signal
- handlers with the reactor. You might do that when the signal
- handler is responsible for performing "<font color=green>real</font>" work. Our simple
- flag-setter doesn't justify deriving from ACE_Event_Handler and
- providing a callback function though. */</font>
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
-
- <font color=red>/* Like ACE_ERROR_RETURN, the ACE_DEBUG macro gets used quite a bit.
- It's a handy way to generate uniform debug output from your
- program. */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) starting up server daemon\n</font>"));
-
- <font color=red>/* This will loop "<font color=green>forever</font>" invoking the handle_events() method of
- our reactor. handle_events() watches for activity on any
- registered handlers and invokes their appropriate callbacks when
- necessary. Callback-driven programming is a big thing in ACE, you
- should get used to it. If the signal handler catches something,
- the finished flag will be set and we'll exit. Conveniently
- enough, handle_events() is also interrupted by signals and will
- exit back to the while() loop. (If you want your event loop to
- not be interrupted by signals, checkout the 'restart' flag on the
- open() method of ACE_Reactor if you're interested.) */</font>
- while (!finished)
- reactor.handle_events ();
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) shutting down server daemon\n</font>"));
-
- return 0;
-}
-
-<font color=blue>#if defined</font> (<font color=purple>ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION</font>)
-template class ACE_Acceptor &lt;Client_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-<font color=blue>#elif defined</font> (<font color=purple>ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Acceptor &lt;Client_Handler, ACE_SOCK_ACCEPTOR>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-<font color=blue>#endif</font> <font color=red>/* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/005/page03.html b/docs/tutorials/005/page03.html
deleted file mode 100644
index eb8d99b9e0d..00000000000
--- a/docs/tutorials/005/page03.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="Billy Quinn">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 005</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 005</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>On the road to a multithreaded server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>Now, let's take a look at <I><A HREF="client_acceptor.h">client_acceptor.h</A></I>.&nbsp;
-Since I went on about how it does all the work of letting clients connect
-to us, it must be rather complex.&nbsp; Right?&nbsp; Wrong.
-
-<P>The more you use ACE, the more you'll find that they've already taken
-care of most details for you.&nbsp; With respect to the acceptance of client
-connections:&nbsp; there just aren't that many ways to do it!&nbsp; The
-ACE team has chosen an approach and created a C++&nbsp;template that does
-all of the work for you.&nbsp; All you're required to do is provide it
-with an object type to instantiate when a new connection arrives.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>CLIENT_ACCEPTOR_H</font>
-<font color=blue>#define</font> <font color=purple>CLIENT_ACCEPTOR_H</font>
-
-<font color=red>/* The ACE_Acceptor&lt;> template lives in the ace/Acceptor.h header
- file. You'll find a very consitent naming convention between the
- ACE objects and the headers where they can be found. In general,
- the ACE object ACE_Foobar will be found in ace/Foobar.h. */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Acceptor.h">ace/Acceptor.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=red>/* Since we want to work with sockets, we'll need a SOCK_Acceptor to
- allow the clients to connect to us. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Acceptor.h">ace/SOCK_Acceptor.h</A>"
-
-<font color=red>/* The Client_Handler object we develop will be used to handle clients
- once they're connected. The ACE_Acceptor&lt;> template's first
- parameter requires such an object. In some cases, you can get by
- with just a forward declaration on the class, in others you have to
- have the whole thing. */</font>
-<font color=blue>#include</font> "<font color=green>client_handler.h</font>"
-
-<font color=red>/* Parameterize the ACE_Acceptor&lt;> such that it will listen for socket
- connection attempts and create Client_Handler objects when they
- happen. In Tutorial 001, we wrote the basic acceptor logic on our
- own before we realized that ACE_Acceptor&lt;> was available. You'll
- get spoiled using the ACE templates because they take away a lot of
- the tedious details! */</font>
-typedef ACE_Acceptor &lt;Client_Handler, ACE_SOCK_ACCEPTOR> Client_Acceptor;
-
-<font color=blue>#endif</font> <font color=red>/* CLIENT_ACCEPTOR_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/005/page04.html b/docs/tutorials/005/page04.html
deleted file mode 100644
index 1cede9705cb..00000000000
--- a/docs/tutorials/005/page04.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="Billy Quinn">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 005</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 005</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>On the road to a multithreaded server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>Ok, so we've got a main() loop that sets up the acceptor and we've seen
-how easy it is to create the acceptor object.&nbsp; So far, we've hardly
-written any code at all.&nbsp; Well, that's just about to change...
-
-<P>First, we look at <I><A HREF="client_handler.h">client_handler.h</A></I>
-for the declaration of the Client_Handler object.&nbsp; Then we look at
-the definition where all of the real work of the application takes place.
-
-<P>
-<HR WIDTH="100%">
-
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>CLIENT_HANDLER_H</font>
-<font color=blue>#define</font> <font color=purple>CLIENT_HANDLER_H</font>
-
-<font color=red>/* Our client handler must exist somewhere in the ACE_Event_Handler
- object hierarchy. This is a requirement of the ACE_Reactor because
- it maintains ACE_Event_Handler pointers for each registered event
- handler. You could derive our Client_Handler directly from
- ACE_Event_Handler but you still have to have an ACE_SOCK_Stream for
- the actual connection. With a direct derivative of
- ACE_Event_Handler, you'll have to contain and maintain an
- ACE_SOCK_Stream instance yourself. With ACE_Svc_Handler (which is
- a derivative of ACE_Event_Handler) some of those details are
- handled for you. */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Svc_Handler.h">ace/Svc_Handler.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-
-<font color=red>/* Another feature of ACE_Svc_Handler is it's ability to present the
- ACE_Task&lt;> interface as well. That's what the ACE_NULL_SYNCH
- parameter below is all about. That's beyond our scope here but
- we'll come back to it in the next tutorial when we start looking at
- concurrency options. */</font>
-class Client_Handler : public ACE_Svc_Handler &lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- <font color=red>// Constructor...</font>
- Client_Handler (void);
-
- <font color=red>/* The destroy() method is our preferred method of destruction. We
- could have overloaded the delete operator but that is neither easy
- nor intuitive (at least to me). Instead, we provide a new method
- of destruction and we make our destructor protected so that only
- ourselves, our derivatives and our friends can delete us. It's a
- nice compromise. */</font>
- void destroy (void);
-
- <font color=red>/* Most ACE objects have an open() method. That's how you make them
- ready to do work. ACE_Event_Handler has a virtual open() method
- which allows us to create an override. ACE_Acceptor&lt;> will invoke
- this method after creating a new Client_Handler when a client
- connects. Notice that the parameter to open() is a void*. It just
- so happens that the pointer points to the acceptor which created
- us. You would like for the parameter to be an ACE_Acceptor&lt;>* but
- since ACE_Event_Handler is generic, that would tie it too closely
- to the ACE_Acceptor&lt;> set of objects. In our definition of open()
- you'll see how we get around that. */</font>
- int open (void *acceptor);
-
- <font color=red>/* When there is activity on a registered handler, the
- handle_input() method of the handler will be invoked. If that
- method returns an error code (eg -- -1) then the reactor will
- invoke handle_close() to allow the object to clean itself
- up. Since an event handler can be registered for more than one
- type of callback, the callback mask is provided to inform
- handle_close() exactly which method failed. That way, you don't
- have to maintain state information between your handle_* method
- calls. The &lt;handle> parameter is explained below... As a
- side-effect, the reactor will also invoke remove_handler() for the
- object on the mask that caused the -1 return. This means that we
- don't have to do that ourselves! */</font>
- int handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
-protected:
-
- <font color=red>/* When we register with the reactor, we're going to tell it that we
- want to be notified of READ events. When the reactor sees that
- there is read activity for us, our handle_input() will be
- invoked. The _handle provided is the handle (file descriptor in
- Unix) of the actual connection causing the activity. Since we're
- derived from ACE_Svc_Handler&lt;> and it maintains its own peer
- (ACE_SOCK_Stream) object, this is redundant for us. However, if
- we had been derived directly from ACE_Event_Handler, we may have
- chosen not to contain the peer. In that case, the &lt;handle> would
- be important to us for reading the client's data. */</font>
- int handle_input (ACE_HANDLE handle);
-
- <font color=red>/* This has nothing at all to do with ACE. I've added this here as
- a worker function which I will call from handle_input(). That
- allows me to introduce concurrency in later tutorials with no
- changes to the worker function. You can think of process() as
- application-level code and everything else as
- application-framework code. */</font>
- int process (char *rdbuf, int rdbuf_len);
-
- <font color=red>/* We don't really do anything in our destructor but we've declared
- it to be protected to prevent casual deletion of this object. As
- I said above, I really would prefer that everyone goes through the
- destroy() method to get rid of us. */</font>
- ~Client_Handler (void);
-};
-
-<font color=blue>#endif</font> <font color=red>/* CLIENT_HANDLER_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/005/page05.html b/docs/tutorials/005/page05.html
deleted file mode 100644
index 541fce8d11a..00000000000
--- a/docs/tutorials/005/page05.html
+++ /dev/null
@@ -1,255 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="Billy Quinn">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 005</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 005</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>On the road to a multithreaded server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>Now we're finally at <I><A HREF="client_handler.cpp">client_handler.cpp</A></I>
-where we have to write some code.&nbsp; This file has more code than the
-rest of the application all together.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* In client_handler.h I alluded to the fact that we'll mess around
- with a Client_Acceptor pointer. To do so, we need the
- Client_Acceptor object declaration.
-
- We know that including client_handler.h is redundant because
- client_acceptor.h includes it. Still, the sentry prevents
- double-inclusion from causing problems and it's sometimes good to
- be explicit about what we're using.
-
- On the other hand, we don't directly include any ACE header files
- here. */</font>
-<font color=blue>#include</font> "<font color=green>client_acceptor.h</font>"
-<font color=blue>#include</font> "<font color=green>client_handler.h</font>"
-
-<font color=red>/* Our constructor doesn't do anything. That's generally a good idea.
- Unless you want to start throwing exceptions, there isn't a really
- good way to indicate that a constructor has failed. If I had my
- way, I'd have a boolean return code from it that would cause new to
- return 0 if I failed. Oh well... */</font>
-<font color=#008888>Client_Handler::Client_Handler</font> (void)
-{
-}
-
-<font color=red>/* Our destructor doesn't do anything either. That is also by design.
- Remember, we really want folks to use destroy() to get rid of us.
- If that's so, then there's nothing left to do when the destructor
- gets invoked. */</font>
-<font color=#008888>Client_Handler::~Client_Handler</font> (void)
-{
- <font color=red>// Make sure that our peer closes when we're deleted. This</font>
- <font color=red>// will probably happened when the peer is deleted but it</font>
- <font color=red>// doesn't hurt to be explicit.</font>
- this->peer ().close ();
-}
-
-<font color=red>/* The much talked about destroy() method! The reason I keep going on
- about this is because it's just a Bad Idea (TM) to do real work
- inside of a destructor. Although this method is void, it really
- should return int so that it can tell the caller there was a
- problem. Even as void you could at least throw an exception which
- you would never want to do in a destructor. */</font>
-void
-<font color=#008888>Client_Handler::destroy</font> (void)
-{
- <font color=red>/* Tell the reactor to forget all about us. Notice that we use the
- same args here that we use in the open() method to register
- ourselves. In addition, we use the DONT_CALL flag to prevent
- handle_close() being called. Since we likely got here due to
- handle_close(), that could cause a bit of nasty recursion! */</font>
- this->reactor ()->remove_handler (this,
- ACE_Event_Handler:: READ_MASK | <font color=#008888>ACE_Event_Handler::DONT_CALL</font>);
-
- <font color=red>/* This is how we're able to tell folks not to use delete. By
- deleting our own instance, we take care of memory leaks after
- ensuring that the object is shut down correctly. */</font>
- delete this;
-}
-
-<font color=red>/* As mentioned before, the open() method is called by the
- Client_Acceptor when a new client connection has been accepted.
- The Client_Acceptor instance pointer is cast to a void* and given
- to us here. We'll use that to avoid some global data... */</font>
-int
-<font color=#008888>Client_Handler::open</font> (void *_acceptor)
-{
- <font color=red>/* Convert the void* to a Client_Acceptor*. You should probably use
- those fancy ACE_*_cast macros but I can never remember how/when
- to do so. Since you can cast just about anything around a void*
- without compiler warnings be very sure of what you're doing when
- you do this kind of thing. That's where the new-style cast
- operators can save you. */</font>
- Client_Acceptor *acceptor = (Client_Acceptor *) _acceptor;
-
- <font color=red>/* Our reactor reference will be set when we register ourselves but
- I decided to go ahead and set it here. No good reason really... */</font>
- this->reactor (acceptor->reactor ());
-
- <font color=red>/* We need this to store the address of the client that we are now
- connected to. We'll use it later to display a debug message. */</font>
- ACE_INET_Addr addr;
-
- <font color=red>/* Our ACE_Svc_Handler baseclass gives us the peer() method as a way
- to access our underlying ACE_SOCK_Stream. On that object, we can
- invoke the get_remote_addr() method to get an ACE_INET_Addr
- having our client's address information. As with most ACE
- methods, we'll get back (and return) a -1 if there was any kind
- of error. Once we have the ACE_INET_Addr, we can query it to
- find out the clien's host name, TCP/IP address, TCP/IP port value
- and so forth. One word of warning: the get_host_name() method of
- ACE_INET_Addr may return you an empty string if your name server
- can't resolve it. On the other hand, get_host_addr() will always
- give you the dotted-decimal string representing the TCP/IP
- address. */</font>
- if (this->peer ().get_remote_addr (addr) == -1)
- return -1;
-
- <font color=red>/* If we managed to get the client's address then we're connected to
- a real and valid client. I suppose that in some cases, the
- client may connect and disconnect so quickly that it is invalid
- by the time we get here. In any case, the test above should
- always be done to ensure that the connection is worth keeping.
-
- Now, register ourselves with a reactor and tell that reactor that
- we want to be notified when there is something to read.
- Remember, we took our reactor value from the acceptor which
- created us in the first place. Since we're exploring a
- single-threaded implementation, this is the correct thing to do. */</font>
- if (this->reactor ()->register_handler (this,
- <font color=#008888>ACE_Event_Handler::READ_MASK</font>) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) can't register with reactor\n</font>"),
- -1);
-
- <font color=red>/* Here, we use the ACE_INET_Addr object to print a message with the
- name of the client we're connected to. Again, it is possible
- that you'll get an empty string for the host name if your DNS
- isn't configured correctly or if there is some other reason that
- a TCP/IP addreess cannot be converted into a host name. */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) connected with %s\n</font>",
- addr.get_host_name ()));
-
- <font color=red>/* Always return zero on success. */</font>
- return 0;
-}
-
-<font color=red>/* In the open() method, we registered with the reactor and requested
- to be notified when there is data to be read. When the reactor
- sees that activity it will invoke this handle_input() method on us.
- As I mentioned, the _handle parameter isn't useful to us but it
- narrows the list of methods the reactor has to worry about and the
- list of possible virtual functions we would have to override. */</font>
-int
-<font color=#008888>Client_Handler::handle_input</font> (ACE_HANDLE handle)
-{
- <font color=red>/* Some compilers don't like it when you fail to use a parameter.
- This macro will keep 'em quiet for you. */</font>
- ACE_UNUSED_ARG (handle);
-
- <font color=red>/* Now, we create and initialize a buffer for receiving the data.
- Since this is just a simple test app, we'll use a small buffer
- size. */</font>
- char buf[BUFSIZ];
-
- <font color=red>/* Invoke the process() method with a pointer to our data area.
- We'll let that method worry about interfacing with the data. You
- might choose to go ahead and read the data and then pass the
- result to process(). However, application logic may require that
- you read a few bytes to determine what else to read... It's best
- if we push that all into the application-logic level. */</font>
- return this->process (buf, sizeof (buf));
-}
-
-<font color=red>/* If we return -1 out of handle_input() or if the reactor sees other
- problems with us then handle_close() will be called. The reactor
- framework will take care of removing us (due to the -1), so we
- don't need to use the destroy() method. Instead, we just delete
- ourselves directly. */</font>
-int
-<font color=#008888>Client_Handler::handle_close</font> (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (mask);
-
- delete this;
- return 0;
-}
-
-<font color=red>/* And, at last, we get to the application-logic level. Out of
- everything we've done so far, this is the only thing that really
- has anything to do with what your application will do. In this
- method we will read and process the client's data. In a real
- appliation, you will probably have a bit more in main() to deal
- with command line options but after that point, all of the action
- takes place here. */</font>
-int
-<font color=#008888>Client_Handler::process</font> (char *rdbuf,
- int rdbuf_len)
-{
- ssize_t bytes_read = -1;
-
- <font color=red>/* Using the buffer provided for us, we read the data from the
- client. If there is a read error (eg -- recv() returns -1) then
- it's a pretty good bet that the connection is gone. Likewise, if
- we read zero bytes then something wrong has happened. The
- reactor wouldn't have called us if there wasn't some kind of read
- activity but there wouldn't be activity if there were no bytes to
- read...
-
- On the other hand, if we got some data then we can display it in
- a debug message for everyone to see. */</font>
- switch ( (bytes_read = this->peer ().recv (rdbuf, rdbuf_len)) )
- {
- case -1: <font color=red>// Complain and leave</font>
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) %p bad read\n</font>",
- "<font color=green>client</font>"),
- -1);
- case 0: <font color=red>// Complain and leave</font>
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) closing daemon (fd = %d)\n</font>",
- this->get_handle ()),
- -1);
- default: <font color=red>// Show the data</font>
- <font color=red>// NULL-terminate the string before printing it.</font>
- rdbuf[bytes_read] = 0;
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) from client: %s</font>",
- rdbuf));
- }
-
- <font color=red>/* It's also worth mentioning that recv() has a cousin: recv_n().
- recv_n() will receive exactly the number of bytes you provide it.
- This is very good when you know exactly how much you expect to
- receive. For the application here, unfortunately, we don't have
- any idea how much the client will be sending. recv() will read
- up-to-but-not-more-than the number of bytes we specify (e.g. --
- _rdbuf_len). That works well when we don't know how much the
- client will provide. */</font>
-
- return 0;
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/005/page06.html b/docs/tutorials/005/page06.html
deleted file mode 100644
index 5034104d33f..00000000000
--- a/docs/tutorials/005/page06.html
+++ /dev/null
@@ -1,146 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="Billy Quinn">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 005</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 005</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>On the road to a multithreaded server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>Before we go, I wanted you to see the <A HREF="Makefile">Makefile</A>.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-#----------------------------------------------------------------------------
-# $Id$
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-# You can generally find a Makefile in the ACE examples, tests or the library
-# itself that will satisfy our application needs. This one was taken from
-# one of the examples.
-
- # Define the name of the binary we want to create. There has to be
- # a CPP file $(BIN).cpp but it doesn't necessarily have to have your
- # main() in it. Most of the time, though, it will.
-BIN = server
-
- # Few applications will have a single source file. We use the FILES
- # macro to build up a list of additional files to compile. Notice
- # that we leave off the extension just as with BIN
-FILES =
-FILES += client_handler
-
- # The BUILD macro is used by the ACE makefiles. Basically, it tells
- # the system what to build. I don't really know what VBIN is other
- # than it is constructed from the value of BIN. Just go with it...
-BUILD = $(VBIN)
-
- # Here we use some GNU make extensions to build the SRC macro. Basically,
- # we're just adding .cpp to the value of BIN and for each entry of the
- # FILES macro.
-SRC = $(addsuffix .cpp,$(BIN)) $(addsuffix .cpp,$(FILES))
-
- # This is used by my Indent target below. It's not a part of standard
- # ACE and you don't need it yourself.
-HDR = *.h
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
- # This is where the real power lies! These included makefile components
- # are similar to the C++ templates in ACE. That is, they do a tremendous
- # amount of work for you and all you have to do is include them.
- # As a matter of fact, in our project, I created a single file named
- # "<font color=green>app.mk</font>" that includes all of these. Our project makefiles then just
- # need to include app.mk to get everything they need.
-
-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
-#----------------------------------------------------------------------------
-
- # Sometimes I like to reformat my code to make it more readable. This is
- # more useful for the comments than anything else. Unfortunately, the
- # "<font color=green>indent</font>" program doesn't quite grok C++ so I have to post-process it's
- # output just a bit.
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb &lt; $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
- # One of the targets in the ACE makefiles is "<font color=green>depend</font>". It will invoke
- # your compiler in a way that will generate a list of dependencies for
- # you. This is a great thing! Unfortunately, it puts all of that mess
- # directly into the Makefile. I prefer my Makefile to stay clean and
- # uncluttered. The perl script referenced here pulls the dependency
- # stuff back out of the Makefile and into a file "<font color=green>.depend</font>" which we then
- <font color=blue># include</font> just like the makefile components above.
- #
- # NOTE: The 'depend' target expects to have GCC available.
- # You can do the same thing with other compilers but the ACE
- # makefiles and utilities are only wired up to work with GCC.
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
- # Don't put anything below here. Between the "<font color=green>depend</font>" target and fix.Makefile
- # it's guaranteed to be lost!
-
- # This is inserted by the fix.Makefile script
-include .depend
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page07.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/005/page07.html b/docs/tutorials/005/page07.html
deleted file mode 100644
index c3043ee1fed..00000000000
--- a/docs/tutorials/005/page07.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="Billy Quinn">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 005</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 005</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>On the road to a multithreaded server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>And last (and probably least) is the <A HREF="../fix.Makefile">perl script</A>
-that pulls the dependency stuff out of Makefile and into .depend.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"<font color=green>$@</font>"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-require "<font color=green>getopts.pl</font>";
-&Getopts("<font color=green>f:o:</font>");
-
-$opt_f = "<font color=green>Makefile</font>" if( ! $opt_f );
-$opt_o = "<font color=green>.depend</font>" if( ! $opt_o );
-
- # Open the Makefile that has been mangled by 'make depend'
- # and suck it into a perl array.
-open(IF,"<font color=green>&lt;$opt_f</font>") || die;
-@makefile = &lt;IF>;
-close(IF);
-
- # Now open our .depend file and a temporary Makefile.
- # We'll split the original Makefile between these two.
-open(DF,"<font color=green>>$opt_o</font>") || die;
-open(MF,"<font color=green>>$opt_f.tmp</font>") || die;
-
- # For each line we read out of the original file...
-foreach (@makefile) {
-
- # If we're into the dependency section, write the line
- # into the .depend file.
- #
- if( $depend ) {
- print DF $_;
- }
- else {
- # If we haven't gotten to the dependency section yet
- # then see if the current line is the separator that
- # "<font color=green>make depend</font>" causes to be inserted.
- #
- if( m/^\Q# DO NOT DELETE THIS LINE -- g++dep uses it.\E/ ) {
-
- # If so, change our "<font color=green>mode</font>" and skip this line.
- ++$depend;
- next;
- }
-
- # Also skip the "<font color=green>include .depend</font>" that we insert. If we
- # don't do this, it is possible to have a bunch of these
- # inserted into the output when we read an unmangled Makefile
- next if( m/^include $opt_o/ );
-
- # Print the non-dependency info to the temporary Makefile
- print MF $_;
- }
-}
-
-# Tell our new Makefile to include the dependency file
-print MF "<font color=green>include $opt_o\n</font>";
-
-# Close the two output files...
-close(DF);
-close(MF);
-
-# Unlink (remove) the original Makefile and rename our
-# temporary file. There's obviously room for error checking
-# here but we've got the Makefile checked into some revision
-# control system anyway. Don't we?
-
-unlink("<font color=green>$opt_f</font>");
-rename("<font color=green>$opt_f.tmp</font>","<font color=green>$opt_f</font>");
-
-exit(0);
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page08.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/005/page08.html b/docs/tutorials/005/page08.html
deleted file mode 100644
index 602c436d0de..00000000000
--- a/docs/tutorials/005/page08.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="Billy Quinn">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 005</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 005</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>On the road to a multithreaded server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>That's it for Tutorial 5.&nbsp; In this tutorial we've built a single-threaded
-reactor-based server.&nbsp; We've done a couple of things that aren't exactly
-necessary for such an implementation but I&nbsp;plan to build on that as
-we explore two other concurrency strategies:&nbsp; thread per connection
-and thread pool.
-
-<P>For reference, here's the file list again:
-<UL>
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-
-<LI>
-<A HREF="client_acceptor.h">client_acceptor.h</A></LI>
-
-<LI>
-<A HREF="client_handler.cpp">client_handler.cpp</A></LI>
-
-<LI>
-<A HREF="client_handler.h">client_handler.h</A></LI>
-
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-
-<LI>
-<A HREF="../fix.Makefile">fix.Makefile</A></LI>
-</UL>
-&nbsp;
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/005/server.brk b/docs/tutorials/005/server.brk
deleted file mode 100644
index ba3d878a1da..00000000000
--- a/docs/tutorials/005/server.brk
+++ /dev/null
@@ -1,154 +0,0 @@
-
-#include "ace/Acceptor.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/Reactor.h"
-#include "ace/Thread.h"
-
-
-ACE_Reactor * g_reactor;
-
-static sig_atomic_t finished = 0;
-
-class Logging_Handler;
-
-extern "C" void handler (int) { finished = 1; }
-
-
-
-class Reactor_Derived : public ACE_Reactor
-{
-
-public :
- Reactor_Derived() : ()
- {
- counter = 0;
- }
-
- virtual ~Reactor_Derived()
- {
- cout << "*****Calling the reactor destructor*****" << endl;
- }
-
-private :
- friend class Logging_Handler;
-
- // counter is used to keep track of the number of service handlers
- // registered with this reactor (Surely theres a better way ;-)
- int counter;
-};
-
-class Logging_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-
-public:
-
- Logging_Handler (void) { };
-
- virtual void destroy (void)
- {
- if (this->thread_reactorP->remove_handler(this,
- ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL) == -1
- )
- ACE_ERROR_RETURN ((LM_ERROR, "can'(%P|%t) t remove service from reactor\n"), -1);
-
- // Decrement the handler tracking variable in the reactor to
- // indicate this service handler has terminated
- --thread_reactorP->counter;
-
- this->peer ().close ();
- delete this;
- }
-
- static void *run_thread(Logging_Handler *this_)
- {
- Reactor_Derived thread_reactor;
-
- this_->thread_reactorP = &thread_reactor;
-
- // Increment our handler counter to account for this service handler
- ++thread_reactor.counter;
-
- if (thread_reactor.register_handler(this_, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,"can'(%P|%t) t register with reactor\n"), -1);
-
- while( thread_reactor.counter > 0 )
- {
- // If thread_reactor.counter = 0 then we have no more service
- // handlers connected to the reactor. We set a timeout value
- // of 1 second so that the handle_events loop break out every
- // second to check on the count ( because of it blocking
- // even when there are no connections we need to do this)
- thread_reactor.handle_events(ACE_Time_Value(1,0));
- }
- }
-
- virtual int open (void *)
- {
- ACE_Thread::spawn(&Logging_Handler::run_thread,this);
- return 0;
- }
-
- virtual int close (u_long)
- {
- this->destroy ();
- return 0;
- }
-
-protected:
-
- virtual int handle_input (ACE_HANDLE)
- {
- char buf[128];
- memset(buf,0,sizeof(buf));
-
- switch( this->peer().recv(buf,sizeof buf) )
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) %p bad read\n", "client logger"), -1);
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) closing log daemon (fd = %d)\n", this->get_handle ()), -1);
- default:
- ACE_DEBUG ((LM_DEBUG, "(%p|%t) from client : %s",buf));
- }
-
- return 0;
- }
-
-
-private:
- Reactor_Derived *thread_reactorP;
-};
-
-
-typedef ACE_Acceptor <Logging_Handler, ACE_SOCK_ACCEPTOR> Logging_Acceptor;
-
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int main (int argc, char *argv[])
-{
- g_reactor = new ACE_Reactor;
-
- // Acceptor factory.
- Logging_Acceptor peer_acceptor;
-
- if (peer_acceptor.open (ACE_INET_Addr (PORT)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
-
- else if (g_reactor->register_handler (&peer_acceptor, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "registering service with ACE_Reactor\n"), -1);
-
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
-
- // Run forever, performing logging service.
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) starting up server logging daemon\n"));
-
- // Perform logging service until QUIT_HANDLER receives SIGINT.
- while ( !finished )
- g_reactor->handle_events ();
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) shutting down server logging daemon\n"));
-
- return 0;
-}
diff --git a/docs/tutorials/005/server.cpp b/docs/tutorials/005/server.cpp
deleted file mode 100644
index dee968339d7..00000000000
--- a/docs/tutorials/005/server.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// $Id$
-
-/* We try to keep main() very simple. One of the ways we do that is
- to push much of the complicated stuff into worker objects. In this
- case, we only need to include the acceptor header in our main
- source file. We let it worry about the "real work". */
-
-#include "client_acceptor.h"
-
-/* As before, we create a simple signal handler that will set our
- finished flag. There are, of course, more elegant ways to handle
- program shutdown requests but that isn't really our focus right
- now, so we'll just do the easiest thing. */
-
-static sig_atomic_t finished = 0;
-extern "C" void handler (int)
-{
- finished = 1;
-}
-
-/* A server has to listen for clients at a known TCP/IP port. The
- default ACE port is 10002 (at least on my system) and that's good
- enough for what we want to do here. Obviously, a more robust
- application would take a command line parameter or read from a
- configuration file or do some other clever thing. Just like the
- signal handler above, though, that's not what we want to focus on,
- so we're taking the easy way out. */
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-/* Finally, we get to main. Some C++ compilers will complain loudly
- if your function signature doesn't match the prototype. Even
- though we're not going to use the parameters, we still have to
- specify them. */
-
-int
-main (int argc, char *argv[])
-{
- ACE_UNUSED_ARG(argc);
- ACE_UNUSED_ARG(argv);
-
- /* In our earlier servers, we used a global pointer to get to the
- reactor. I've never really liked that idea, so I've moved it into
- main() this time. When we get to the Client_Handler object you'll
- see how we manage to get a pointer back to this reactor. */
- ACE_Reactor reactor;
-
- /* The acceptor will take care of letting clients connect to us. It
- will also arrange for a Client_Handler to be created for each new
- client. Since we're only going to listen at one TCP/IP port, we
- only need one acceptor. If we wanted, though, we could create
- several of these and listen at several ports. (That's what we
- would do if we wanted to rewrite inetd for instance.) */
- Client_Acceptor peer_acceptor;
-
- /* Create an ACE_INET_Addr that represents our endpoint of a
- connection. We then open our acceptor object with that Addr.
- Doing so tells the acceptor where to listen for connections.
- Servers generally listen at "well known" addresses. If not, there
- must be some mechanism by which the client is informed of the
- server's address.
-
- Note how ACE_ERROR_RETURN is used if we fail to open the acceptor.
- This technique is used over and over again in our tutorials. */
- if (peer_acceptor.open (ACE_INET_Addr (PORT),
- &reactor) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- /* Here, we know that the open was successful. If it had failed, we
- would have exited above. A nice side-effect of the open() is that
- we're already registered with the reactor we provided it. */
-
- /* Install our signal handler. You can actually register signal
- handlers with the reactor. You might do that when the signal
- handler is responsible for performing "real" work. Our simple
- flag-setter doesn't justify deriving from ACE_Event_Handler and
- providing a callback function though. */
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
-
- /* Like ACE_ERROR_RETURN, the ACE_DEBUG macro gets used quite a bit.
- It's a handy way to generate uniform debug output from your
- program. */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) starting up server daemon\n"));
-
- /* This will loop "forever" invoking the handle_events() method of
- our reactor. handle_events() watches for activity on any
- registered handlers and invokes their appropriate callbacks when
- necessary. Callback-driven programming is a big thing in ACE, you
- should get used to it. If the signal handler catches something,
- the finished flag will be set and we'll exit. Conveniently
- enough, handle_events() is also interrupted by signals and will
- exit back to the while() loop. (If you want your event loop to
- not be interrupted by signals, checkout the 'restart' flag on the
- open() method of ACE_Reactor if you're interested.) */
- while (!finished)
- reactor.handle_events ();
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) shutting down server daemon\n"));
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/docs/tutorials/006/006.dsp b/docs/tutorials/006/006.dsp
deleted file mode 100644
index fe6c488995d..00000000000
--- a/docs/tutorials/006/006.dsp
+++ /dev/null
@@ -1,112 +0,0 @@
-# Microsoft Developer Studio Project File - Name="006" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=006 - 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 "006.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 "006.mak" CFG="006 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "006 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "006 - 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)" == "006 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "006 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"server.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "006 - Win32 Release"
-# Name "006 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\client_handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\client_acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\client_handler.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/006/Makefile b/docs/tutorials/006/Makefile
deleted file mode 100644
index 57a90088d72..00000000000
--- a/docs/tutorials/006/Makefile
+++ /dev/null
@@ -1,114 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-# You can generally find a Makefile in the ACE examples, tests or the library
-# itself that will satisfy our application needs. This one was taken from
-# one of the examples.
-
- # Define the name of the binary we want to create. There has to be
- # a CPP file $(BIN).cpp but it doesn't necessarily have to have your
- # main() in it. Most of the time, though, it will.
-BIN = server
-
- # Few applications will have a single source file. We use the FILES
- # macro to build up a list of additional files to compile. Notice
- # that we leave off the extension just as with BIN
-FILES =
-FILES += client_handler
-
- # The BUILD macro is used by the ACE makefiles. Basically, it tells
- # the system what to build. I don't really know what VBIN is other
- # than it is constructed from the value of BIN. Just go with it...
-BUILD = $(VBIN)
-
- # Here we use some GNU make extensions to build the SRC macro. Basically,
- # we're just adding .cpp to the value of BIN and for each entry of the
- # FILES macro.
-SRC = $(addsuffix .cpp,$(BIN)) $(addsuffix .cpp,$(FILES))
-
- # This is used by my Indent target below. It's not a part of standard
- # ACE and you don't need it yourself.
-HDR = *.h
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
- # This is where the real power lies! These included makefile components
- # are similar to the C++ templates in ACE. That is, they do a tremendous
- # amount of work for you and all you have to do is include them.
- # As a matter of fact, in our project, I created a single file named
- # "app.mk" that includes all of these. Our project makefiles then just
- # need to include app.mk to get everything they need.
-
-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
-#----------------------------------------------------------------------------
-
- # Sometimes I like to reformat my code to make it more readable. This is
- # more useful for the comments than anything else. Unfortunately, the
- # "indent" program doesn't quite grok C++ so I have to post-process it's
- # output just a bit.
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
- # One of the targets in the ACE makefiles is "depend". It will invoke
- # your compiler in a way that will generate a list of dependencies for
- # you. This is a great thing! Unfortunately, it puts all of that mess
- # directly into the Makefile. I prefer my Makefile to stay clean and
- # uncluttered. The perl script referenced here pulls the dependency
- # stuff back out of the Makefile and into a file ".depend" which we then
- # include just like the makefile components above.
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
- # Don't put anything below here. Between the "depend" target and fix.Makefile
- # it's guaranteed to be lost!
-
- # This is inserted by the fix.Makefile script
-include .depend
diff --git a/docs/tutorials/006/client_acceptor.h b/docs/tutorials/006/client_acceptor.h
deleted file mode 100644
index 4a50de72952..00000000000
--- a/docs/tutorials/006/client_acceptor.h
+++ /dev/null
@@ -1,74 +0,0 @@
-// $Id$
-
-#ifndef CLIENT_ACCEPTOR_H
-#define CLIENT_ACCEPTOR_H
-
-/* The ACE_Acceptor<> template lives in the ace/Acceptor.h header
- file. You'll find a very consistent naming convention between the
- ACE objects and the headers where they can be found. In general,
- the ACE object ACE_Foobar will be found in ace/Foobar.h. */
-
-#include "ace/Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* Since we want to work with sockets, we'll need a SOCK_Acceptor to
- allow the clients to connect to us. */
-#include "ace/SOCK_Acceptor.h"
-
-/* The Client_Handler object we develop will be used to handle clients
- once they're connected. The ACE_Acceptor<> template's first
- parameter requires such an object. In some cases, you can get by
- with just a forward declaration on the class, in others you have to
- have the whole thing. */
-#include "client_handler.h"
-
-/* Parameterize the ACE_Acceptor<> such that it will listen for socket
- connection attempts and create Client_Handler objects when they
- happen. In Tutorial 001, we wrote the basic acceptor logic on our
- own before we realized that ACE_Acceptor<> was available. You'll
- get spoiled using the ACE templates because they take away a lot of
- the tedious details! */
-typedef ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR> Client_Acceptor_Base;
-
-/* Here, we use the parameterized ACE_Acceptor<> as a baseclass for
- our customized Client_Acceptor object. I've done this so that we
- can provide it with our choice of concurrency strategies when the
- object is created. Each Client_Handler it creates will use this
- information to determine how to act. If we were going to create a
- system that was always thread-per-connection, we would not have
- bothered to extend Client_Acceptor. */
-class Client_Acceptor : public Client_Acceptor_Base
-{
-public:
- /*
- This is always a good idea. If nothing else, it makes your code more
- orthogonal no matter what baseclasses your objects have.
- */
- typedef Client_Acceptor_Base inherited;
-
- /*
- Construct the object with the concurrency strategy. Since this tutorial
- is focused on thread-per-connection, we make that the default. We could
- have chosen to omitt the default and populate it in main() instead.
- */
- Client_Acceptor (int thread_per_connection = 1)
- : thread_per_connection_ (thread_per_connection)
- {
- }
-
- /* Return the value of our strategy flag. This is used by the
- Client_Handler to decide how to act. If 'true' then the handler
- will behave in a thread-per-connection manner. */
- int thread_per_connection (void)
- {
- return this->thread_per_connection_;
- }
-
-protected:
- int thread_per_connection_;
-};
-
-#endif /* CLIENT_ACCEPTOR_H */
diff --git a/docs/tutorials/006/client_handler.cpp b/docs/tutorials/006/client_handler.cpp
deleted file mode 100644
index 9d6b5362d63..00000000000
--- a/docs/tutorials/006/client_handler.cpp
+++ /dev/null
@@ -1,293 +0,0 @@
-// $Id$
-
-/* In client_handler.h I alluded to the fact that we'll mess around
- with a Client_Acceptor pointer. To do so, we need the
- Client_Acceptor object declaration.
-
- We know that including client_handler.h is redundant because
- client_acceptor.h includes it. Still, the sentry prevents
- double-inclusion from causing problems and it's sometimes good to
- be explicit about what we're using.
-
- On the other hand, we don't directly include any ACE header files
- here. */
-#include "client_acceptor.h"
-#include "client_handler.h"
-
-/* Our constructor doesn't do anything. That's generally a good idea.
- Unless you want to start throwing exceptions, there isn't a really
- good way to indicate that a constructor has failed. If I had my
- way, I'd have a boolean return code from it that would cause new to
- return 0 if I failed. Oh well... */
-Client_Handler::Client_Handler (void)
-{
-}
-
-/* Our destructor doesn't do anything either. That is also by design.
- Remember, we really want folks to use destroy() to get rid of us.
- If that's so, then there's nothing left to do when the destructor
- gets invoked. */
-Client_Handler::~Client_Handler (void)
-{
-}
-
-/* The much talked about destroy() method! The reason I keep going on
- about this is because it's just a Bad Idea (TM) to do real work
- inside of a destructor. Although this method is void, it really
- should return int so that it can tell the caller there was a
- problem. Even as void you could at least throw an exception which
- you would never want to do in a destructor. */
-void
-Client_Handler::destroy (void)
-{
- /* Tell the reactor to forget all about us. Notice that we use the
- same args here that we use in the open() method to register
- ourselves. In addition, we use the DONT_CALL flag to prevent
- handle_close() being called. Since we likely got here due to
- handle_close(), that could cause a bit of nasty recursion! */
- this->reactor ()->remove_handler (this,
- ACE_Event_Handler::READ_MASK
- | ACE_Event_Handler::DONT_CALL);
-
- /* This is how we're able to tell folks not to use delete. By
- deleting our own instance, we take care of memory leaks after
- ensuring that the object is shut down correctly. */
- delete this;
-}
-
-/* As mentioned before, the open() method is called by the
- Client_Acceptor when a new client connection has been accepted.
- The Client_Acceptor instance pointer is cast to a void* and given
- to us here. We'll use that to avoid some global data... */
-int
-Client_Handler::open (void *void_acceptor)
-{
- /* We need this to store the address of the client that we are now
- connected to. We'll use it later to display a debug message. */
- ACE_INET_Addr addr;
-
- /* Our ACE_Svc_Handler baseclass gives us the peer() method as a way
- to access our underlying ACE_SOCK_Stream. On that object, we can
- invoke the get_remote_addr() method to get get an ACE_INET_Addr
- having our client's address information. As with most ACE methods,
- we'll get back (and return) a -1 if there was any kind of error.
- Once we have the ACE_INET_Addr, we can query it to find out the
- client's host name, TCP/IP address, TCP/IP port value and so
- forth. One word of warning: the get_host_name() method of
- ACE_INET_Addr may return you an empty string if your name server
- can't resolve it. On the other hand, get_host_addr() will always
- give you the dotted-decimal string representing the TCP/IP
- address. */
- if (this->peer ().get_remote_addr (addr) == -1)
- return -1;
-
- /* Convert the void* to a Client_Acceptor*. You should probably use
- those fancy ACE_*_cast macros but I can never remember how/when to
- do so. Since you can cast just about anything around a void*
- without compiler warnings be very sure of what you're doing when
- you do this kind of thing. That's where the new-style cast
- operators can save you. */
- Client_Acceptor *acceptor = (Client_Acceptor *) void_acceptor;
-
- /* Our Client_Acceptor is constructed with a concurrency strategy.
- Here, we go back to it to find out what that strategy was. If
- thread-per-connection was selected then we simply activate a
- thread for ourselves and exit. Our svc() method will then begin
- executing in that thread.
-
- If we are told to use the single-threaded strategy, there is no
- difference between this and the Tutorial 5 implementation.
-
- Note that if we're in thread-per-connection mode, open() is exited
- at this point. Furthermore, thread-per-connection mode does not
- use the reactor which means that handle_input() and it's fellows
- are not invoked. */
- if (acceptor->thread_per_connection ())
- return this->activate (THR_DETACHED);
-
- // ************************************************************************
- // From here on, we're doing the traditional reactor thing. If
- // you're operating in thread-per-connection mode, this code does
- // not apply.
- // ************************************************************************
-
- /* Our reactor reference will be set when we register ourselves but
- I decided to go ahead and set it here. No good reason really... */
- this->reactor (acceptor->reactor ());
-
- /* If we managed to get the client's address then we're connected to
- a real and valid client. I suppose that in some cases, the client
- may connect and disconnect so quickly that it is invalid by the
- time we get here. In any case, the test above should always be
- done to ensure that the connection is worth keeping.
-
- Now, regiser ourselves with a reactor and tell that reactor that
- we want to be notified when there is something to read. Remember,
- we took our reactor value from the acceptor which created us in
- the first place. Since we're exploring a single-threaded
- implementation, this is the correct thing to do. */
- if (this->reactor ()->register_handler (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) can't register with reactor\n"),
- -1);
-
- /* Here, we use the ACE_INET_Addr object to print a message with the
- name of the client we're connected to. Again, it is possible that
- you'll get an empty string for the host name if your DNS isn't
- configured correctly or if there is some other reason that a
- TCP/IP addreess cannot be converted into a host name. */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) connected with %s\n", addr.get_host_name ()));
-
- /* Always return zero on success. */
- return 0;
-}
-
-/* As mentioned in the header, the typical way to close an object in a
- threaded context is to invoke it's close() method. Since we
- already have a handle_close() method built to cleanup after us,
- we'll just forward the request on to that object. */
-int
-Client_Handler::close(u_long flags)
-{
- ACE_UNUSED_ARG (flags);
-
- /* We use the destroy() method to clean up after ourselves. That
- will take care of removing us from the reactor and then freeing
- our memory. */
- this->destroy ();
-
- /* Don't forward the close() to the baseclass! handle_close() above
- has already taken care of delete'ing. Forwarding close() would
- cause that to happen again and things would get really ugly at
- that point! */
- return 0;
-}
-
-/* In the open() method, we registered with the reactor and requested
- to be notified when there is data to be read. When the reactor
- sees that activity it will invoke this handle_input() method on us.
- As I mentioned, the _handle parameter isn't useful to us but it
- narrows the list of methods the reactor has to worry about and the
- list of possible virtual functions we would have to override.
-
- Again, this is not used if we're in thread-per-connection mode. */
-int
-Client_Handler::handle_input (ACE_HANDLE handle)
-{
- /* Some compilers don't like it when you fail to use a parameter.
- This macro will keep 'em quiet for you. */
- ACE_UNUSED_ARG (handle);
-
- /* Now, we create and initialize a buffer for receiving the data.
- Since this is just a simple test app, we'll use a small buffer
- size. */
- char buf[BUFSIZ];
-
- /* Invoke the process() method with a pointer to our data area.
- We'll let that method worry about interfacing with the data. You
- might choose to go ahead and read the data and then pass the
- result to process(). However, application logic may require that
- you read a few bytes to determine what else to read... It's best
- if we push that all into the application-logic level. */
- return this->process (buf, sizeof (buf));
-}
-
-/* If we return -1 out of handle_input() or if the reactor sees other
- problems with us then handle_close() will be called. The reactor
- framework will take care of removing us (due to the -1), so we
- don't need to use the destroy() method. Instead, we just delete
- ourselves directly. */
-int
-Client_Handler::handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (mask);
-
- this->destroy ();
- return 0;
-}
-
-/* The ACE_Svc_Handler<> is ultimately derived from ACE_Task<>. If
- you want to create a multi-threaded application, these are your
- tools! Simply override the svc() method in your derivative and
- arrange for your activate() method to be called. The svc() method
- then executes in the new thread.
-
- Of course, this is only valid if we're in thread-per-connection
- mode. If we're using the reactor model, then svc() never comes
- into play. */
-int
-Client_Handler::svc(void)
-{
- /* Like handle_input(), we create a buffer for loading the data.
- Doing so in handle_input() doesn't help any but there is a small
- performance increase by doing this here: the buffer is created
- once when the thread is created instead of for each invocation of
- process(). */
- char buf[BUFSIZ];
-
- // Forever...
- while( 1 )
- {
- /* Invoke the process() method to read and process the data.
- This is exactly the way it is used by handle_input(). That's
- the reason I created process() in the first place: so that it
- can be used in either concurrency strategy. Since process()
- has all of our application-level logic, it's nice that it
- doesn't have to change when we decide to go multi-threaded.
-
- Notice that since the recv() method call in process() blocks until
- there is data ready, this thread doesn't consume any CPU time until
- there is actually data sent from the client. */
- if (this->process(buf, sizeof (buf)) == -1)
- return -1;
- }
-
- return 0;
-}
-
-/* And, at last, we get to the application-logic level. Out of
- everything we've done so far, this is the only thing that really
- has anything to do with what your application will do. In this
- method we will read and process the client's data. In a real
- appliation, you will probably have a bit more in main() to deal
- with command line options but after that point, all of the action
- takes place here. */
-int
-Client_Handler::process (char *rdbuf,
- int rdbuf_len)
-{
- /* Using the buffer provided for us, we read the data from the
- client. If there is a read error (eg -- recv() returns -1) then
- it's a pretty good bet that the connection is gone. Likewise, if
- we read zero bytes then something wrong has happened. The reactor
- wouldn't have called us if there wasn't some kind of read activity
- but there wouldn't be activity if there were no bytes to read...
-
- On the other hand, if we got some data then we can display it in a
- debug message for everyone to see. */
- ssize_t bytes_read;
- switch ( (bytes_read = this->peer ().recv (rdbuf, rdbuf_len)) )
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) %p bad read\n",
- "client"),
- -1);
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) closing daemon (fd = %d)\n",
- this->get_handle ()),
- -1);
- default:
- rdbuf[bytes_read] = 0;
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) from client: %s",
- rdbuf));
- }
-
- return 0;
-}
diff --git a/docs/tutorials/006/client_handler.h b/docs/tutorials/006/client_handler.h
deleted file mode 100644
index e8d3695d37c..00000000000
--- a/docs/tutorials/006/client_handler.h
+++ /dev/null
@@ -1,118 +0,0 @@
-// $Id$
-
-#ifndef CLIENT_HANDLER_H
-#define CLIENT_HANDLER_H
-
-/* Our client handler must exist somewhere in the ACE_Event_Handler
- object hierarchy. This is a requirement of the ACE_Reactor because
- it maintains ACE_Event_Handler pointers for each registered event
- handler. You could derive our Client_Handler directly from
- ACE_Event_Handler but you still have to have an ACE_SOCK_Stream for
- the actually connection. With a direct derivative of
- ACE_Event_Handler, you'll have to contain and maintain an
- ACE_SOCK_Stream instance yourself. With ACE_Svc_Handler (which is
- a derivative of ACE_Event_Handler) some of those details are
- handled for you.
-
- */
-
-#include "ace/Svc_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Stream.h"
-
-/* Another feature of ACE_Svc_Handler is it's ability to present the
- ACE_Task<> interface as well. That's what the ACE_NULL_SYNCH
- parameter below is all about. If our Client_Acceptor has chosen
- thread-per-connection then our open() method will activate us into
- a thread. At that point, our svc() method will execute. We still
- don't take advantage of the things ACE_NULL_SYNCH exists for but
- stick around for Tutorial 7 and pay special attention to the
- Thread_Pool object there for an explanation. */
-class Client_Handler : public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- typedef ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH> inherited;
-
- // Constructor...
- Client_Handler (void);
-
- /* The destroy() method is our preferred method of destruction. We
- could have overloaded the delete operator but that is neither easy
- nor intuitive (at least to me). Instead, we provide a new method
- of destruction and we make our destructor protected so that only
- ourselves, our derivatives and our friends can delete us. It's a
- nice compromise. */
- void destroy (void);
-
- /* Most ACE objects have an open() method. That's how you make them
- ready to do work. ACE_Event_Handler has a virtual open() method
- which allows us to create this overrride. ACE_Acceptor<> will
- invoke this method after creating a new Client_Handler when a
- client connects. Notice that the parameter to open() is a void*.
- It just so happens that the pointer points to the acceptor which
- created us. You would like for the parameter to be an
- ACE_Acceptor<>* but since ACE_Event_Handler is generic, that would
- tie it too closely to the ACE_Acceptor<> set of objects. In our
- definition of open() you'll see how we get around that. */
- int open (void *acceptor);
-
- /* When an ACE_Task<> object falls out of the svc() method, the
- framework will call the close() method. That's where we want to
- cleanup ourselves if we're running in either thread-per-connection
- or thread-pool mode. */
- int close (u_long flags = 0);
-
- /* When there is activity on a registered handler, the
- handle_input() method of the handler will be invoked. If that
- method returns an error code (eg -- -1) then the reactor will
- invoke handle_close() to allow the object to clean itself
- up. Since an event handler can be registered for more than one
- type of callback, the callback mask is provided to inform
- handle_close() exactly which method failed. That way, you don't
- have to maintain state information between your handle_* method
- calls. The <handle> parameter is explained below... As a
- side-effect, the reactor will also invoke remove_handler() for the
- object on the mask that caused the -1 return. This means that we
- don't have to do that ourselves! */
- virtual int handle_close (ACE_HANDLE handle = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask mask = ACE_Event_Handler::ALL_EVENTS_MASK);
-
-protected:
-
- /* If the Client_Acceptor which created us has chosen a
- thread-per-connection strategy then our open() method will
- activate us into a dedicate thread. The svc() method will then
- execute in that thread performing some of the functions we used to
- leave up to the reactor. */
- int svc (void);
-
- /* When we register with the reactor, we're going to tell it that we
- want to be notified of READ events. When the reactor sees that
- there is read activity for us, our handle_input() will be
- invoked. The _handleg provided is the handle (file descriptor in
- Unix) of the actual connection causing the activity. Since we're
- derived from ACE_Svc_Handler<> and it maintains it's own peer
- (ACE_SOCK_Stream) object, this is redundant for us. However, if
- we had been derived directly from ACE_Event_Handler, we may have
- chosen not to contain the peer. In that case, the <handle> would
- be important to us for reading the client's data. */
- int handle_input (ACE_HANDLE handle);
-
- /* This has nothing at all to do with ACE. I've added this here as
- a worker function which I will call from handle_input(). As
- promised in Tutorial 5 I will use this now to make it easier to
- switch between our two possible concurrency strategies. */
- int process (char *rdbuf, int rdbuf_len);
-
- /* We don't really do anything in our destructor but we've declared
- it to be protected to prevent casual deletion of this object. As
- I said above, I really would prefer that everyone goes through the
- destroy() method to get rid of us. */
- ~Client_Handler (void);
-};
-
-#endif /* CLIENT_HANDLER_H */
diff --git a/docs/tutorials/006/combine.shar b/docs/tutorials/006/combine.shar
deleted file mode 100644
index cc191f80850..00000000000
--- a/docs/tutorials/006/combine.shar
+++ /dev/null
@@ -1,508 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/006'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 605 -rw-rw-r-- hdr
-# 72 -rw-rw-r-- bodies
-# 1971 -rw-rw-r-- page01.pre
-# 252 -rw-rw-r-- page02.pre
-# 507 -rw-rw-r-- page03.pre
-# 227 -rw-rw-r-- page04.pre
-# 225 -rw-rw-r-- page05.pre
-# 697 -rw-rw-r-- page06.pre
-# 89 -rw-rw-r-- page02.pst
-# 168 -rw-rw-r-- page03.pst
-# 175 -rw-rw-r-- page04.pst
-# 1418 -rw-rw-r-- page05.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32413; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <META NAME="Description" CONTENT="A first step towards using ACE productively">
-X <TITLE>ACE Tutorial 006</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 006</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Creating a thread-per-connection server</FONT></B></CENTER>
-X
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-3289bf210fdf2f4b9d0a23b69c79a82f hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 605 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '605,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-server.cpp
-client_acceptor.h
-client_handler.h
-client_handler.cpp
-SHAR_EOF
- $shar_touch -am 0118202399 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-1f7383474ecfc75883354e67afaf1b3b bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 72 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '72,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X
-<P>In this tutorial, we're going to extend Tutorial 5 to create a thread-per-connection
-server.&nbsp; This implementation will create a new thread for each client
-which connects to us.&nbsp; The ACE_Reactor is still used but only for
-accepting new connections.&nbsp; The Client_Handler objects won't be registered
-with the reactor.&nbsp; Instead, they'll be responsible for monitoring
-their peer() directly.
-<P>
-Abstract:<sup>*</sup>
-<ul>
-Here, we build a thread-per-connection simple server. This is the next
-step from a simple single-threaded server towards a multithreaded
-server.
-<p>
-We make use of the Strategy Pattern in this example.
-The ACE_Acceptor inherits form the ACE_Acceptor_Base class which
-facilitates us to implement various different concurrency strategies
-depending on whether the server is single-threaded or the server creates
-a new thread per connection. This also allows us to extend the
-capabilities of the server in the future by implementing a different
-strategy.
-<p>
-This information is passed on to the Client_Handler
-(remember ACE_Acceptor < Client_Handler, ACE_SOCK_ACCEPTOR > ?).
-The Client_Handler is an ACE_Svc_Handler as the Svc_Handler is a
-derivative of the Event_Handler and is associated with
-ACE_Sock_Stream. It is also derived form the ACE_Task class which allows
-us to have a thread per connection.
-<p>
-We incorporate the data processing in the svc() method, which will be
-called per thread for the thread-per-connection server.
-<p>
-Note that here all the Client_Handler objects aren't registered with the
-reactor. The Reactor is only used to accept client connections. Once a
-thread has been deicated per connection, the Client Handler object
-reponsible for that client connection now takes up the job of the
-reactor and handles future events.
-<p>
-Thus a simple, thread-per-connection server has been built which doesnt
-delve too deeply into mutli-threading issues.
-</ul>
-<font size=-1>* Abstract by Kirthika as always</font>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-e9c9068f1265c1668c44f382786e1422 page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 1971 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '1971,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-<P>Again, we begin with <A HREF="server.cpp">server.cpp.</A>&nbsp; If you
-look closely you will see that the only difference between this and the
-Tutorial 5 implementation is a single comment.
-X
-<P>
-<HR WIDTH="100%"><FONT FACE="Arial,Helvetica"></FONT>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-e9e18b8add5d997189fb16e67d1467b2 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 252 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '252,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-<P>In <A HREF="client_acceptor.h">client_acceptor.h</A>, we've extended
-our object just a bit.&nbsp; The primary reason is to allow us to select
-the previous single-threaded implementation or our new thread-per-connection
-implementation.&nbsp; Client_Acceptor itself doesn't use this information
-but makes it available to the Client_Handler objects it creates.&nbsp;
-If we wanted a single-strategy implementation, we would have made no changes
-to the Tutorial 5 version of this file.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-40dd465ac9815a2c35375ccdbad0c98b page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 507 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '507,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-<P><A HREF="client_handler.h">client_handler.h</A>
-shows a few more changes than the previous sources.&nbsp; The important
-change is the addition of a svc() method where our connection thread will
-exist.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-8256aff03563fbc281403fc5bb970e69 page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 227 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '227,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-<P><A HREF="client_handler.cpp">client_handler.cpp</A> exposes all the
-things I've been hinting at.&nbsp; Pay special attention to the decision
-made in open() as well as the bit of cleverness in svc().
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-fe144564cd75e806b825ce878a09bfe3 page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 225 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '225,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-<P>That's it for Tutorial 6.&nbsp; With very little effort we've managed
-to extend the previous single-threaded server to an implementation which
-allows runtime selection of single or multi-threaded operation.&nbsp; In
-Tutorial 7 we'll extend that again to allow a thread-pool choice in addition
-to the current two.
-X
-<P>For reference, here's the file list again:
-<UL>
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-X
-<LI>
-<A HREF="client_acceptor.h">client_acceptor.h</A></LI>
-X
-<LI>
-<A HREF="client_handler.cpp">client_handler.cpp</A></LI>
-X
-<LI>
-<A HREF="client_handler.h">client_handler.h</A></LI>
-X
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-X
-<LI>
-<A HREF="fix.Makefile">fix.Makefile</A></LI>
-</UL>
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-0adca372a5154acf673cc373d2acaf5a page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 697 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '697,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pst ==============
-if test -f 'page02.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pst' &&
-<HR WIDTH="100%">
-X
-<P>Let's move along and see what happend to the Client_Acceptor.
-X
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pst' &&
- chmod 0664 'page02.pst' ||
- $echo 'restore of' 'page02.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pst:' 'MD5 check failed'
-0188a5ff7cacc123676e420ac5432207 page02.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pst'`"
- test 89 -eq "$shar_count" ||
- $echo 'page02.pst:' 'original size' '89,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pst ==============
-if test -f 'page03.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pst' &&
-<HR WIDTH="100%">
-X
-<P>Ok, so far we haven't done much to change our concurrency strategy.&nbsp;
-Let's move on to the Client_Handler and see if it has changed any.
-X
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pst' &&
- chmod 0664 'page03.pst' ||
- $echo 'restore of' 'page03.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pst:' 'MD5 check failed'
-7743577254d06f5848b5e50f3b6c3014 page03.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pst'`"
- test 168 -eq "$shar_count" ||
- $echo 'page03.pst:' 'original size' '168,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pst ==============
-if test -f 'page04.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pst' &&
-<HR WIDTH="100%">
-X
-<P>So... we've added a svc() method and alluded to changes in open().&nbsp;
-Let's move on to the object definition and see what all the fuss is about.
-X
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pst' &&
- chmod 0664 'page04.pst' ||
- $echo 'restore of' 'page04.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pst:' 'MD5 check failed'
-dfe0897cc3f000b69c16c87dd1596281 page04.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pst'`"
- test 175 -eq "$shar_count" ||
- $echo 'page04.pst:' 'original size' '175,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pst ==============
-if test -f 'page05.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pst' &&
-<HR WIDTH="100%">
-<P>
-X Did you notice the <i>THR_DETACHED</i> flag on the call to
-X <i>activate()</i>? Threads, like any system resource, are a
-X limited resource. Unless we intend to <i>join()</i> or
-X <i>wait()</i> for the new thread later, we want use THR_DETACHED
-X so that we don't cause a leak. In fact, in most cases, you'll
-X want to specify THR_DETACHED because it's just easier.
-<p>
-X Another handy flag for use with <i>activate()</i> is
-X <i>THR_NEW_LWP</i>. That's short for <i>Light Weight
-X Process</i>. If you've got a multiprocessor, this flag will
-X allocate a new schedulable process and decrease the odds of your
-X threads all fighting for the same process. Of course, if you
-X have a uni-processor, it will neither help nor hurt. Since I
-X developed these on a uni-processor, I've been a bit inconsistent
-X in the use of <i>THR_NEW_LWP</i>.
-X
-<P>Well, that's it!&nbsp; After all the talk &amp; the hype, you would
-have expected it to be more difficult to create a multi-threaded server.&nbsp;
-Surprise!&nbsp; It really is that easy.&nbsp; You still have to handle
-contention issues which we haven't addressed here and that is a rather
-nasty topic.&nbsp; Still, for the simple case, this is all you have to
-do.
-X
-<P>The next page is the last for this tutorial.&nbsp; Head on over there
-&amp; we'll round up the file list one last time.
-X
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pst' &&
- chmod 0664 'page05.pst' ||
- $echo 'restore of' 'page05.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pst:' 'MD5 check failed'
-0589bdf4e09c3c1671f64fd98e8e7747 page05.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pst'`"
- test 1418 -eq "$shar_count" ||
- $echo 'page05.pst:' 'original size' '1418,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32413
-exit 0
diff --git a/docs/tutorials/006/page01.html b/docs/tutorials/006/page01.html
deleted file mode 100644
index 8ea01994aab..00000000000
--- a/docs/tutorials/006/page01.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 006</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 006</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-per-connection server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>In this tutorial, we're going to extend Tutorial 5 to create a thread-per-connection
-server.&nbsp; This implementation will create a new thread for each client
-which connects to us.&nbsp; The ACE_Reactor is still used but only for
-accepting new connections.&nbsp; The Client_Handler objects won't be registered
-with the reactor.&nbsp; Instead, they'll be responsible for monitoring
-their peer() directly.
-<P>
-Abstract:<sup>*</sup>
-<ul>
-Here, we build a thread-per-connection simple server. This is the next
-step from a simple single-threaded server towards a multithreaded
-server.
-<p>
-We make use of the Strategy Pattern in this example.
-The ACE_Acceptor inherits form the ACE_Acceptor_Base class which
-facilitates us to implement various different concurrency strategies
-depending on whether the server is single-threaded or the server creates
-a new thread per connection. This also allows us to extend the
-capabilities of the server in the future by implementing a different
-strategy.
-<p>
-This information is passed on to the Client_Handler
-(remember ACE_Acceptor < Client_Handler, ACE_SOCK_ACCEPTOR > ?).
-The Client_Handler is an ACE_Svc_Handler as the Svc_Handler is a
-derivative of the Event_Handler and is associated with
-ACE_Sock_Stream. It is also derived form the ACE_Task class which allows
-us to have a thread per connection.
-<p>
-We incorporate the data processing in the svc() method, which will be
-called per thread for the thread-per-connection server.
-<p>
-Note that here all the Client_Handler objects aren't registered with the
-reactor. The Reactor is only used to accept client connections. Once a
-thread has been deicated per connection, the Client Handler object
-reponsible for that client connection now takes up the job of the
-reactor and handles future events.
-<p>
-Thus a simple, thread-per-connection server has been built which doesnt
-delve too deeply into mutli-threading issues.
-</ul>
-<font size=-1>* Abstract by Kirthika as always</font>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/006/page02.html b/docs/tutorials/006/page02.html
deleted file mode 100644
index f6439297fe1..00000000000
--- a/docs/tutorials/006/page02.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 006</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 006</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-per-connection server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>Again, we begin with <A HREF="server.cpp">server.cpp.</A>&nbsp; If you
-look closely you will see that the only difference between this and the
-Tutorial 5 implementation is a single comment.
-
-<P>
-<HR WIDTH="100%"><FONT FACE="Arial,Helvetica"></FONT>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* We try to keep main() very simple. One of the ways we do that is
- to push much of the complicated stuff into worker objects. In this
- case, we only need to include the acceptor header in our main
- source file. We let it worry about the "<font color=green>real work</font>". */</font>
-
-<font color=blue>#include</font> "<font color=green>client_acceptor.h</font>"
-
-<font color=red>/* As before, we create a simple signal handler that will set our
- finished flag. There are, of course, more elegant ways to handle
- program shutdown requests but that isn't really our focus right
- now, so we'll just do the easiest thing. */</font>
-
-static sig_atomic_t finished = 0;
-extern "<font color=green>C</font>" void handler (int)
-{
- finished = 1;
-}
-
-<font color=red>/* A server has to listen for clients at a known TCP/IP port. The
- default ACE port is 10002 (at least on my system) and that's good
- enough for what we want to do here. Obviously, a more robust
- application would take a command line parameter or read from a
- configuration file or do some other clever thing. Just like the
- signal handler above, though, that's what we want to focus on, so
- we're taking the easy way out. */</font>
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-<font color=red>/* Finally, we get to main. Some C++ compilers will complain loudly
- if your function signature doesn't match the prototype. Even
- though we're not going to use the parameters, we still have to
- specify them. */</font>
-
-int
-main (int argc, char *argv[])
-{
- ACE_UNUSED_ARG(argc);
- ACE_UNUSED_ARG(argv);
-
- <font color=red>/* In our earlier servers, we used a global pointer to get to the
- reactor. I've never really liked that idea, so I've moved it into
- main() this time. When we get to the Client_Handler object you'll
- see how we manage to get a pointer back to this reactor. */</font>
- ACE_Reactor reactor;
-
- <font color=red>/* The acceptor will take care of letting clients connect to us. It
- will also arrange for a Client_Handler to be created for each new
- client. Since we're only going to listen at one TCP/IP port, we
- only need one acceptor. If we wanted, though, we could create
- several of these and listen at several ports. (That's what we
- would do if we wanted to rewrite inetd for instance.) */</font>
- Client_Acceptor peer_acceptor;
-
- <font color=red>/* Create an ACE_INET_Addr that represents our endpoint of a
- connection. We then open our acceptor object with that Addr.
- Doing so tells the acceptor where to listen for connections.
- Servers generally listen at "<font color=green>well known</font>" addresses. If not, there
- must be some mechanism by which the client is informed of the
- server's address.
-
- Note how ACE_ERROR_RETURN is used if we fail to open the acceptor.
- This technique is used over and over again in our tutorials. */</font>
- if (peer_acceptor.open (ACE_INET_Addr (PORT),
- &reactor) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
-
- <font color=red>/* As with Tutorial 5, we know that we're now registered with our
- reactor so we don't have to mess with that step. */</font>
-
- <font color=red>/* Install our signal handler. You can actually register signal
- handlers with the reactor. You might do that when the signal
- handler is responsible for performing "<font color=green>real</font>" work. Our simple
- flag-setter doesn't justify deriving from ACE_Event_Handler and
- providing a callback function though. */</font>
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
-
- <font color=red>/* Like ACE_ERROR_RETURN, the ACE_DEBUG macro gets used quite a bit.
- It's a handy way to generate uniform debug output from your
- program. */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) starting up server daemon\n</font>"));
-
- <font color=red>/* This will loop "<font color=green>forever</font>" invoking the handle_events() method of
- our reactor. handle_events() watches for activity on any
- registered handlers and invokes their appropriate callbacks when
- necessary. Callback-driven programming is a big thing in ACE, you
- should get used to it. If the signal handler catches something,
- the finished flag will be set and we'll exit. Conveniently
- enough, handle_events() is also interrupted by signals and will
- exit back to the while() loop. (If you want your event loop to
- not be interrupted by signals, checkout the &lt;i>restart&lt;/i> flag on
- the open() method of ACE_Reactor if you're interested.) */</font>
- while (!finished)
- reactor.handle_events ();
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) shutting down server daemon\n</font>"));
-
- return 0;
-}
-
-<font color=blue>#if !defined</font>(<font color=purple>ACE_HAS_GNU_REPO</font>)
-<font color=blue>#if defined</font> (<font color=purple>ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION</font>)
-template class ACE_Acceptor &lt;Client_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-<font color=blue>#elif defined</font> (<font color=purple>ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Acceptor &lt;Client_Handler, ACE_SOCK_ACCEPTOR>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-<font color=blue>#endif</font> <font color=red>/* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_HAS_GNU_REPO */</font>
-</PRE>
-<HR WIDTH="100%">
-
-<P>Let's move along and see what happend to the Client_Acceptor.
-
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/006/page03.html b/docs/tutorials/006/page03.html
deleted file mode 100644
index 24a82ef36e4..00000000000
--- a/docs/tutorials/006/page03.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 006</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 006</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-per-connection server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>In <A HREF="client_acceptor.h">client_acceptor.h</A>, we've extended
-our object just a bit.&nbsp; The primary reason is to allow us to select
-the previous single-threaded implementation or our new thread-per-connection
-implementation.&nbsp; Client_Acceptor itself doesn't use this information
-but makes it available to the Client_Handler objects it creates.&nbsp;
-If we wanted a single-strategy implementation, we would have made no changes
-to the Tutorial 5 version of this file.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>CLIENT_ACCEPTOR_H</font>
-<font color=blue>#define</font> <font color=purple>CLIENT_ACCEPTOR_H</font>
-
-<font color=red>/* The ACE_Acceptor&lt;> template lives in the ace/Acceptor.h header
- file. You'll find a very consistent naming convention between the
- ACE objects and the headers where they can be found. In general,
- the ACE object ACE_Foobar will be found in ace/Foobar.h. */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Acceptor.h">ace/Acceptor.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=red>/* Since we want to work with sockets, we'll need a SOCK_Acceptor to
- allow the clients to connect to us. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Acceptor.h">ace/SOCK_Acceptor.h</A>"
-
-<font color=red>/* The Client_Handler object we develop will be used to handle clients
- once they're connected. The ACE_Acceptor&lt;> template's first
- parameter requires such an object. In some cases, you can get by
- with just a forward declaration on the class, in others you have to
- have the whole thing. */</font>
-<font color=blue>#include</font> "<font color=green>client_handler.h</font>"
-
-<font color=red>/* Parameterize the ACE_Acceptor&lt;> such that it will listen for socket
- connection attempts and create Client_Handler objects when they
- happen. In Tutorial 001, we wrote the basic acceptor logic on our
- own before we realized that ACE_Acceptor&lt;> was available. You'll
- get spoiled using the ACE templates because they take away a lot of
- the tedious details! */</font>
-typedef ACE_Acceptor &lt;Client_Handler, ACE_SOCK_ACCEPTOR> Client_Acceptor_Base;
-
-<font color=red>/* Here, we use the parameterized ACE_Acceptor&lt;> as a baseclass for
- our customized Client_Acceptor object. I've done this so that we
- can provide it with our choice of concurrency strategies when the
- object is created. Each Client_Handler it creates will use this
- information to determine how to act. If we were going to create a
- system that was always thread-per-connection, we would not have
- bothered to extend Client_Acceptor. */</font>
-class Client_Acceptor : public Client_Acceptor_Base
-{
-public:
- <font color=red>/*
- This is always a good idea. If nothing else, it makes your code more
- orthogonal no matter what baseclasses your objects have.
- */</font>
- typedef Client_Acceptor_Base inherited;
-
- <font color=red>/*
- Construct the object with the concurrency strategy. Since this tutorial
- is focused on thread-per-connection, we make that the default. We could
- have chosen to omitt the default and populate it in main() instead.
- */</font>
- Client_Acceptor (int thread_per_connection = 1)
- : thread_per_connection_ (thread_per_connection)
- {
- }
-
- <font color=red>/* Return the value of our strategy flag. This is used by the
- Client_Handler to decide how to act. If 'true' then the handler
- will behave in a thread-per-connection manner. */</font>
- int thread_per_connection (void)
- {
- return this->thread_per_connection_;
- }
-
-protected:
- int thread_per_connection_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* CLIENT_ACCEPTOR_H */</font>
-</PRE>
-<HR WIDTH="100%">
-
-<P>Ok, so far we haven't done much to change our concurrency strategy.&nbsp;
-Let's move on to the Client_Handler and see if it has changed any.
-
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/006/page04.html b/docs/tutorials/006/page04.html
deleted file mode 100644
index 9e707e03467..00000000000
--- a/docs/tutorials/006/page04.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 006</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 006</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-per-connection server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P><A HREF="client_handler.h">client_handler.h</A>
-shows a few more changes than the previous sources.&nbsp; The important
-change is the addition of a svc() method where our connection thread will
-exist.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>CLIENT_HANDLER_H</font>
-<font color=blue>#define</font> <font color=purple>CLIENT_HANDLER_H</font>
-
-<font color=red>/* Our client handler must exist somewhere in the ACE_Event_Handler
- object hierarchy. This is a requirement of the ACE_Reactor because
- it maintains ACE_Event_Handler pointers for each registered event
- handler. You could derive our Client_Handler directly from
- ACE_Event_Handler but you still have to have an ACE_SOCK_Stream for
- the actually connection. With a direct derivative of
- ACE_Event_Handler, you'll have to contain and maintain an
- ACE_SOCK_Stream instance yourself. With ACE_Svc_Handler (which is
- a derivative of ACE_Event_Handler) some of those details are
- handled for you.
-
- */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Svc_Handler.h">ace/Svc_Handler.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-
-<font color=red>/* Another feature of ACE_Svc_Handler is it's ability to present the
- ACE_Task&lt;> interface as well. That's what the ACE_NULL_SYNCH
- parameter below is all about. If our Client_Acceptor has chosen
- thread-per-connection then our open() method will activate us into
- a thread. At that point, our svc() method will execute. We still
- don't take advantage of the things ACE_NULL_SYNCH exists for but
- stick around for Tutorial 7 and pay special attention to the
- Thread_Pool object there for an explanation. */</font>
-class Client_Handler : public ACE_Svc_Handler &lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- typedef ACE_Svc_Handler &lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH> inherited;
-
- <font color=red>// Constructor...</font>
- Client_Handler (void);
-
- <font color=red>/* The destroy() method is our preferred method of destruction. We
- could have overloaded the delete operator but that is neither easy
- nor intuitive (at least to me). Instead, we provide a new method
- of destruction and we make our destructor protected so that only
- ourselves, our derivatives and our friends can delete us. It's a
- nice compromise. */</font>
- void destroy (void);
-
- <font color=red>/* Most ACE objects have an open() method. That's how you make them
- ready to do work. ACE_Event_Handler has a virtual open() method
- which allows us to create this overrride. ACE_Acceptor&lt;> will
- invoke this method after creating a new Client_Handler when a
- client connects. Notice that the parameter to open() is a void*.
- It just so happens that the pointer points to the acceptor which
- created us. You would like for the parameter to be an
- ACE_Acceptor&lt;>* but since ACE_Event_Handler is generic, that would
- tie it too closely to the ACE_Acceptor&lt;> set of objects. In our
- definition of open() you'll see how we get around that. */</font>
- int open (void *acceptor);
-
- <font color=red>/* When an ACE_Task&lt;> object falls out of the svc() method, the
- framework will call the close() method. That's where we want to
- cleanup ourselves if we're running in either thread-per-connection
- or thread-pool mode. */</font>
- int close (u_long flags = 0);
-
- <font color=red>/* When there is activity on a registered handler, the
- handle_input() method of the handler will be invoked. If that
- method returns an error code (eg -- -1) then the reactor will
- invoke handle_close() to allow the object to clean itself
- up. Since an event handler can be registered for more than one
- type of callback, the callback mask is provided to inform
- handle_close() exactly which method failed. That way, you don't
- have to maintain state information between your handle_* method
- calls. The &lt;handle> parameter is explained below... As a
- side-effect, the reactor will also invoke remove_handler() for the
- object on the mask that caused the -1 return. This means that we
- don't have to do that ourselves! */</font>
- virtual int handle_close (ACE_HANDLE handle = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask mask = <font color=#008888>ACE_Event_Handler::ALL_EVENTS_MASK</font>);
-
-protected:
-
- <font color=red>/* If the Client_Acceptor which created us has chosen a
- thread-per-connection strategy then our open() method will
- activate us into a dedicate thread. The svc() method will then
- execute in that thread performing some of the functions we used to
- leave up to the reactor. */</font>
- int svc (void);
-
- <font color=red>/* When we register with the reactor, we're going to tell it that we
- want to be notified of READ events. When the reactor sees that
- there is read activity for us, our handle_input() will be
- invoked. The _handleg provided is the handle (file descriptor in
- Unix) of the actual connection causing the activity. Since we're
- derived from ACE_Svc_Handler&lt;> and it maintains it's own peer
- (ACE_SOCK_Stream) object, this is redundant for us. However, if
- we had been derived directly from ACE_Event_Handler, we may have
- chosen not to contain the peer. In that case, the &lt;handle> would
- be important to us for reading the client's data. */</font>
- int handle_input (ACE_HANDLE handle);
-
- <font color=red>/* This has nothing at all to do with ACE. I've added this here as
- a worker function which I will call from handle_input(). As
- promised in Tutorial 5 I will use this now to make it easier to
- switch between our two possible concurrency strategies. */</font>
- int process (char *rdbuf, int rdbuf_len);
-
- <font color=red>/* We don't really do anything in our destructor but we've declared
- it to be protected to prevent casual deletion of this object. As
- I said above, I really would prefer that everyone goes through the
- destroy() method to get rid of us. */</font>
- ~Client_Handler (void);
-};
-
-<font color=blue>#endif</font> <font color=red>/* CLIENT_HANDLER_H */</font>
-</PRE>
-<HR WIDTH="100%">
-
-<P>So... we've added a svc() method and alluded to changes in open().&nbsp;
-Let's move on to the object definition and see what all the fuss is about.
-
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/006/page05.html b/docs/tutorials/006/page05.html
deleted file mode 100644
index 6dd179e3b15..00000000000
--- a/docs/tutorials/006/page05.html
+++ /dev/null
@@ -1,351 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 006</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 006</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-per-connection server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P><A HREF="client_handler.cpp">client_handler.cpp</A> exposes all the
-things I've been hinting at.&nbsp; Pay special attention to the decision
-made in open() as well as the bit of cleverness in svc().
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* In client_handler.h I alluded to the fact that we'll mess around
- with a Client_Acceptor pointer. To do so, we need the
- Client_Acceptor object declaration.
-
- We know that including client_handler.h is redundant because
- client_acceptor.h includes it. Still, the sentry prevents
- double-inclusion from causing problems and it's sometimes good to
- be explicit about what we're using.
-
- On the other hand, we don't directly include any ACE header files
- here. */</font>
-<font color=blue>#include</font> "<font color=green>client_acceptor.h</font>"
-<font color=blue>#include</font> "<font color=green>client_handler.h</font>"
-
-<font color=red>/* Our constructor doesn't do anything. That's generally a good idea.
- Unless you want to start throwing exceptions, there isn't a really
- good way to indicate that a constructor has failed. If I had my
- way, I'd have a boolean return code from it that would cause new to
- return 0 if I failed. Oh well... */</font>
-<font color=#008888>Client_Handler::Client_Handler</font> (void)
-{
-}
-
-<font color=red>/* Our destructor doesn't do anything either. That is also by design.
- Remember, we really want folks to use destroy() to get rid of us.
- If that's so, then there's nothing left to do when the destructor
- gets invoked. */</font>
-<font color=#008888>Client_Handler::~Client_Handler</font> (void)
-{
-}
-
-<font color=red>/* The much talked about destroy() method! The reason I keep going on
- about this is because it's just a Bad Idea (TM) to do real work
- inside of a destructor. Although this method is void, it really
- should return int so that it can tell the caller there was a
- problem. Even as void you could at least throw an exception which
- you would never want to do in a destructor. */</font>
-void
-<font color=#008888>Client_Handler::destroy</font> (void)
-{
- <font color=red>/* Tell the reactor to forget all about us. Notice that we use the
- same args here that we use in the open() method to register
- ourselves. In addition, we use the DONT_CALL flag to prevent
- handle_close() being called. Since we likely got here due to
- handle_close(), that could cause a bit of nasty recursion! */</font>
- this->reactor ()->remove_handler (this,
- <font color=#008888>ACE_Event_Handler::READ_MASK</font>
- | <font color=#008888>ACE_Event_Handler::DONT_CALL</font>);
-
- <font color=red>/* This is how we're able to tell folks not to use delete. By
- deleting our own instance, we take care of memory leaks after
- ensuring that the object is shut down correctly. */</font>
- delete this;
-}
-
-<font color=red>/* As mentioned before, the open() method is called by the
- Client_Acceptor when a new client connection has been accepted.
- The Client_Acceptor instance pointer is cast to a void* and given
- to us here. We'll use that to avoid some global data... */</font>
-int
-<font color=#008888>Client_Handler::open</font> (void *void_acceptor)
-{
- <font color=red>/* We need this to store the address of the client that we are now
- connected to. We'll use it later to display a debug message. */</font>
- ACE_INET_Addr addr;
-
- <font color=red>/* Our ACE_Svc_Handler baseclass gives us the peer() method as a way
- to access our underlying ACE_SOCK_Stream. On that object, we can
- invoke the get_remote_addr() method to get get an ACE_INET_Addr
- having our client's address information. As with most ACE methods,
- we'll get back (and return) a -1 if there was any kind of error.
- Once we have the ACE_INET_Addr, we can query it to find out the
- client's host name, TCP/IP address, TCP/IP port value and so
- forth. One word of warning: the get_host_name() method of
- ACE_INET_Addr may return you an empty string if your name server
- can't resolve it. On the other hand, get_host_addr() will always
- give you the dotted-decimal string representing the TCP/IP
- address. */</font>
- if (this->peer ().get_remote_addr (addr) == -1)
- return -1;
-
- <font color=red>/* Convert the void* to a Client_Acceptor*. You should probably use
- those fancy ACE_*_cast macros but I can never remember how/when to
- do so. Since you can cast just about anything around a void*
- without compiler warnings be very sure of what you're doing when
- you do this kind of thing. That's where the new-style cast
- operators can save you. */</font>
- Client_Acceptor *acceptor = (Client_Acceptor *) void_acceptor;
-
- <font color=red>/* Our Client_Acceptor is constructed with a concurrency strategy.
- Here, we go back to it to find out what that strategy was. If
- thread-per-connection was selected then we simply activate a
- thread for ourselves and exit. Our svc() method will then begin
- executing in that thread.
-
- If we are told to use the single-threaded strategy, there is no
- difference between this and the Tutorial 5 implementation.
-
- Note that if we're in thread-per-connection mode, open() is exited
- at this point. Furthermore, thread-per-connection mode does not
- use the reactor which means that handle_input() and it's fellows
- are not invoked. */</font>
- if (acceptor->thread_per_connection ())
- return this->activate (THR_DETACHED);
-
- <font color=red>// ************************************************************************</font>
- <font color=red>// From here on, we're doing the traditional reactor thing. If</font>
- <font color=red>// you're operating in thread-per-connection mode, this code does</font>
- <font color=red>// not apply.</font>
- <font color=red>// ************************************************************************</font>
-
- <font color=red>/* Our reactor reference will be set when we register ourselves but
- I decided to go ahead and set it here. No good reason really... */</font>
- this->reactor (acceptor->reactor ());
-
- <font color=red>/* If we managed to get the client's address then we're connected to
- a real and valid client. I suppose that in some cases, the client
- may connect and disconnect so quickly that it is invalid by the
- time we get here. In any case, the test above should always be
- done to ensure that the connection is worth keeping.
-
- Now, regiser ourselves with a reactor and tell that reactor that
- we want to be notified when there is something to read. Remember,
- we took our reactor value from the acceptor which created us in
- the first place. Since we're exploring a single-threaded
- implementation, this is the correct thing to do. */</font>
- if (this->reactor ()->register_handler (this,
- <font color=#008888>ACE_Event_Handler::READ_MASK</font>) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) can't register with reactor\n</font>"),
- -1);
-
- <font color=red>/* Here, we use the ACE_INET_Addr object to print a message with the
- name of the client we're connected to. Again, it is possible that
- you'll get an empty string for the host name if your DNS isn't
- configured correctly or if there is some other reason that a
- TCP/IP addreess cannot be converted into a host name. */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) connected with %s\n</font>", addr.get_host_name ()));
-
- <font color=red>/* Always return zero on success. */</font>
- return 0;
-}
-
-<font color=red>/* As mentioned in the header, the typical way to close an object in a
- threaded context is to invoke it's close() method. Since we
- already have a handle_close() method built to cleanup after us,
- we'll just forward the request on to that object. */</font>
-int
-<font color=#008888>Client_Handler::close</font>(u_long flags)
-{
- ACE_UNUSED_ARG (flags);
-
- <font color=red>/* We use the destroy() method to clean up after ourselves. That
- will take care of removing us from the reactor and then freeing
- our memory. */</font>
- this->destroy ();
-
- <font color=red>/* Don't forward the close() to the baseclass! handle_close() above
- has already taken care of delete'ing. Forwarding close() would
- cause that to happen again and things would get really ugly at
- that point! */</font>
- return 0;
-}
-
-<font color=red>/* In the open() method, we registered with the reactor and requested
- to be notified when there is data to be read. When the reactor
- sees that activity it will invoke this handle_input() method on us.
- As I mentioned, the _handle parameter isn't useful to us but it
- narrows the list of methods the reactor has to worry about and the
- list of possible virtual functions we would have to override.
-
- Again, this is not used if we're in thread-per-connection mode. */</font>
-int
-<font color=#008888>Client_Handler::handle_input</font> (ACE_HANDLE handle)
-{
- <font color=red>/* Some compilers don't like it when you fail to use a parameter.
- This macro will keep 'em quiet for you. */</font>
- ACE_UNUSED_ARG (handle);
-
- <font color=red>/* Now, we create and initialize a buffer for receiving the data.
- Since this is just a simple test app, we'll use a small buffer
- size. */</font>
- char buf[BUFSIZ];
-
- <font color=red>/* Invoke the process() method with a pointer to our data area.
- We'll let that method worry about interfacing with the data. You
- might choose to go ahead and read the data and then pass the
- result to process(). However, application logic may require that
- you read a few bytes to determine what else to read... It's best
- if we push that all into the application-logic level. */</font>
- return this->process (buf, sizeof (buf));
-}
-
-<font color=red>/* If we return -1 out of handle_input() or if the reactor sees other
- problems with us then handle_close() will be called. The reactor
- framework will take care of removing us (due to the -1), so we
- don't need to use the destroy() method. Instead, we just delete
- ourselves directly. */</font>
-int
-<font color=#008888>Client_Handler::handle_close</font> (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (mask);
-
- this->destroy ();
- return 0;
-}
-
-<font color=red>/* The ACE_Svc_Handler&lt;> is ultimately derived from ACE_Task&lt;>. If
- you want to create a multi-threaded application, these are your
- tools! Simply override the svc() method in your derivative and
- arrange for your activate() method to be called. The svc() method
- then executes in the new thread.
-
- Of course, this is only valid if we're in thread-per-connection
- mode. If we're using the reactor model, then svc() never comes
- into play. */</font>
-int
-<font color=#008888>Client_Handler::svc</font>(void)
-{
- <font color=red>/* Like handle_input(), we create a buffer for loading the data.
- Doing so in handle_input() doesn't help any but there is a small
- performance increase by doing this here: the buffer is created
- once when the thread is created instead of for each invocation of
- process(). */</font>
- char buf[BUFSIZ];
-
- <font color=red>// Forever...</font>
- while( 1 )
- {
- <font color=red>/* Invoke the process() method to read and process the data.
- This is exactly the way it is used by handle_input(). That's
- the reason I created process() in the first place: so that it
- can be used in either concurrency strategy. Since process()
- has all of our application-level logic, it's nice that it
- doesn't have to change when we decide to go multi-threaded.
-
- Notice that since the recv() method call in process() blocks until
- there is data ready, this thread doesn't consume any CPU time until
- there is actually data sent from the client. */</font>
- if (this->process(buf, sizeof (buf)) == -1)
- return -1;
- }
-
- return 0;
-}
-
-<font color=red>/* And, at last, we get to the application-logic level. Out of
- everything we've done so far, this is the only thing that really
- has anything to do with what your application will do. In this
- method we will read and process the client's data. In a real
- appliation, you will probably have a bit more in main() to deal
- with command line options but after that point, all of the action
- takes place here. */</font>
-int
-<font color=#008888>Client_Handler::process</font> (char *rdbuf,
- int rdbuf_len)
-{
- <font color=red>/* Using the buffer provided for us, we read the data from the
- client. If there is a read error (eg -- recv() returns -1) then
- it's a pretty good bet that the connection is gone. Likewise, if
- we read zero bytes then something wrong has happened. The reactor
- wouldn't have called us if there wasn't some kind of read activity
- but there wouldn't be activity if there were no bytes to read...
-
- On the other hand, if we got some data then we can display it in a
- debug message for everyone to see. */</font>
- ssize_t bytes_read;
- switch ( (bytes_read = this->peer ().recv (rdbuf, rdbuf_len)) )
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) %p bad read\n</font>",
- "<font color=green>client</font>"),
- -1);
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) closing daemon (fd = %d)\n</font>",
- this->get_handle ()),
- -1);
- default:
- rdbuf[bytes_read] = 0;
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) from client: %s</font>",
- rdbuf));
- }
-
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-<P>
- Did you notice the <i>THR_DETACHED</i> flag on the call to
- <i>activate()</i>? Threads, like any system resource, are a
- limited resource. Unless we intend to <i>join()</i> or
- <i>wait()</i> for the new thread later, we want use THR_DETACHED
- so that we don't cause a leak. In fact, in most cases, you'll
- want to specify THR_DETACHED because it's just easier.
-<p>
- Another handy flag for use with <i>activate()</i> is
- <i>THR_NEW_LWP</i>. That's short for <i>Light Weight
- Process</i>. If you've got a multiprocessor, this flag will
- allocate a new schedulable process and decrease the odds of your
- threads all fighting for the same process. Of course, if you
- have a uni-processor, it will neither help nor hurt. Since I
- developed these on a uni-processor, I've been a bit inconsistent
- in the use of <i>THR_NEW_LWP</i>.
-
-<P>Well, that's it!&nbsp; After all the talk &amp; the hype, you would
-have expected it to be more difficult to create a multi-threaded server.&nbsp;
-Surprise!&nbsp; It really is that easy.&nbsp; You still have to handle
-contention issues which we haven't addressed here and that is a rather
-nasty topic.&nbsp; Still, for the simple case, this is all you have to
-do.
-
-<P>The next page is the last for this tutorial.&nbsp; Head on over there
-&amp; we'll round up the file list one last time.
-
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/006/page06.html b/docs/tutorials/006/page06.html
deleted file mode 100644
index 2b647d9b5e5..00000000000
--- a/docs/tutorials/006/page06.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 006</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 006</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-per-connection server</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>That's it for Tutorial 6.&nbsp; With very little effort we've managed
-to extend the previous single-threaded server to an implementation which
-allows runtime selection of single or multi-threaded operation.&nbsp; In
-Tutorial 7 we'll extend that again to allow a thread-pool choice in addition
-to the current two.
-
-<P>For reference, here's the file list again:
-<UL>
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-
-<LI>
-<A HREF="client_acceptor.h">client_acceptor.h</A></LI>
-
-<LI>
-<A HREF="client_handler.cpp">client_handler.cpp</A></LI>
-
-<LI>
-<A HREF="client_handler.h">client_handler.h</A></LI>
-
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-
-<LI>
-<A HREF="fix.Makefile">fix.Makefile</A></LI>
-</UL>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/006/server.cpp b/docs/tutorials/006/server.cpp
deleted file mode 100644
index 6d0d7010228..00000000000
--- a/docs/tutorials/006/server.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-// $Id$
-
-/* We try to keep main() very simple. One of the ways we do that is
- to push much of the complicated stuff into worker objects. In this
- case, we only need to include the acceptor header in our main
- source file. We let it worry about the "real work". */
-
-#include "client_acceptor.h"
-
-/* As before, we create a simple signal handler that will set our
- finished flag. There are, of course, more elegant ways to handle
- program shutdown requests but that isn't really our focus right
- now, so we'll just do the easiest thing. */
-
-static sig_atomic_t finished = 0;
-extern "C" void handler (int)
-{
- finished = 1;
-}
-
-/* A server has to listen for clients at a known TCP/IP port. The
- default ACE port is 10002 (at least on my system) and that's good
- enough for what we want to do here. Obviously, a more robust
- application would take a command line parameter or read from a
- configuration file or do some other clever thing. Just like the
- signal handler above, though, that's what we want to focus on, so
- we're taking the easy way out. */
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-/* Finally, we get to main. Some C++ compilers will complain loudly
- if your function signature doesn't match the prototype. Even
- though we're not going to use the parameters, we still have to
- specify them. */
-
-int
-main (int argc, char *argv[])
-{
- ACE_UNUSED_ARG(argc);
- ACE_UNUSED_ARG(argv);
-
- /* In our earlier servers, we used a global pointer to get to the
- reactor. I've never really liked that idea, so I've moved it into
- main() this time. When we get to the Client_Handler object you'll
- see how we manage to get a pointer back to this reactor. */
- ACE_Reactor reactor;
-
- /* The acceptor will take care of letting clients connect to us. It
- will also arrange for a Client_Handler to be created for each new
- client. Since we're only going to listen at one TCP/IP port, we
- only need one acceptor. If we wanted, though, we could create
- several of these and listen at several ports. (That's what we
- would do if we wanted to rewrite inetd for instance.) */
- Client_Acceptor peer_acceptor;
-
- /* Create an ACE_INET_Addr that represents our endpoint of a
- connection. We then open our acceptor object with that Addr.
- Doing so tells the acceptor where to listen for connections.
- Servers generally listen at "well known" addresses. If not, there
- must be some mechanism by which the client is informed of the
- server's address.
-
- Note how ACE_ERROR_RETURN is used if we fail to open the acceptor.
- This technique is used over and over again in our tutorials. */
- if (peer_acceptor.open (ACE_INET_Addr (PORT),
- &reactor) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- /* As with Tutorial 5, we know that we're now registered with our
- reactor so we don't have to mess with that step. */
-
- /* Install our signal handler. You can actually register signal
- handlers with the reactor. You might do that when the signal
- handler is responsible for performing "real" work. Our simple
- flag-setter doesn't justify deriving from ACE_Event_Handler and
- providing a callback function though. */
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
-
- /* Like ACE_ERROR_RETURN, the ACE_DEBUG macro gets used quite a bit.
- It's a handy way to generate uniform debug output from your
- program. */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) starting up server daemon\n"));
-
- /* This will loop "forever" invoking the handle_events() method of
- our reactor. handle_events() watches for activity on any
- registered handlers and invokes their appropriate callbacks when
- necessary. Callback-driven programming is a big thing in ACE, you
- should get used to it. If the signal handler catches something,
- the finished flag will be set and we'll exit. Conveniently
- enough, handle_events() is also interrupted by signals and will
- exit back to the while() loop. (If you want your event loop to
- not be interrupted by signals, checkout the <i>restart</i> flag on
- the open() method of ACE_Reactor if you're interested.) */
- while (!finished)
- reactor.handle_events ();
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) shutting down server daemon\n"));
-
- return 0;
-}
-
-#if !defined(ACE_HAS_GNU_REPO)
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* ACE_HAS_GNU_REPO */
diff --git a/docs/tutorials/007/007.dsp b/docs/tutorials/007/007.dsp
deleted file mode 100644
index d069843ec50..00000000000
--- a/docs/tutorials/007/007.dsp
+++ /dev/null
@@ -1,124 +0,0 @@
-# Microsoft Developer Studio Project File - Name="007" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=007 - 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 "007.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 "007.mak" CFG="007 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "007 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "007 - 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)" == "007 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "007 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"server.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "007 - Win32 Release"
-# Name "007 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\client_acceptor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\client_handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\thread_pool.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\client_acceptor.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\client_handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\thread_pool.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/007/Makefile b/docs/tutorials/007/Makefile
deleted file mode 100644
index 7ed33571341..00000000000
--- a/docs/tutorials/007/Makefile
+++ /dev/null
@@ -1,116 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-# You can generally find a Makefile in the ACE examples, tests or the library
-# itself that will satisfy our application needs. This one was taken from
-# one of the examples.
-
- # Define the name of the binary we want to create. There has to be
- # a CPP file $(BIN).cpp but it doesn't necessarily have to have your
- # main() in it. Most of the time, though, it will.
-BIN = server
-
- # Few applications will have a single source file. We use the FILES
- # macro to build up a list of additional files to compile. Notice
- # that we leave off the extension just as with BIN
-FILES =
-FILES += client_handler
-FILES += client_acceptor
-FILES += thread_pool
-
- # The BUILD macro is used by the ACE makefiles. Basically, it tells
- # the system what to build. I don't really know what VBIN is other
- # than it is constructed from the value of BIN. Just go with it...
-BUILD = $(VBIN)
-
- # Here we use some GNU make extensions to build the SRC macro. Basically,
- # we're just adding .cpp to the value of BIN and for each entry of the
- # FILES macro.
-SRC = $(addsuffix .cpp,$(BIN)) $(addsuffix .cpp,$(FILES))
-
- # This is used by my Indent target below. It's not a part of standard
- # ACE and you don't need it yourself.
-HDR = *.h
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
- # This is where the real power lies! These included makefile components
- # are similar to the C++ templates in ACE. That is, they do a tremendous
- # amount of work for you and all you have to do is include them.
- # As a matter of fact, in our project, I created a single file named
- # "app.mk" that includes all of these. Our project makefiles then just
- # need to include app.mk to get everything they need.
-
-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
-#----------------------------------------------------------------------------
-
- # Sometimes I like to reformat my code to make it more readable. This is
- # more useful for the comments than anything else. Unfortunately, the
- # "indent" program doesn't quite grok C++ so I have to post-process it's
- # output just a bit.
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
- # One of the targets in the ACE makefiles is "depend". It will invoke
- # your compiler in a way that will generate a list of dependencies for
- # you. This is a great thing! Unfortunately, it puts all of that mess
- # directly into the Makefile. I prefer my Makefile to stay clean and
- # uncluttered. The perl script referenced here pulls the dependency
- # stuff back out of the Makefile and into a file ".depend" which we then
- # include just like the makefile components above.
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
- # Don't put anything below here. Between the "depend" target and fix.Makefile
- # it's guaranteed to be lost!
-
- # This is inserted by the fix.Makefile script
-include .depend
diff --git a/docs/tutorials/007/client_acceptor.cpp b/docs/tutorials/007/client_acceptor.cpp
deleted file mode 100644
index 079ae8e6d6a..00000000000
--- a/docs/tutorials/007/client_acceptor.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-// $Id$
-
-#include "client_acceptor.h"
-
-/* Construct ourselves with the chosen concurrency strategy. Notice
- that we also set our Thread_Pool reference to our private instance. */
-Client_Acceptor::Client_Acceptor (int concurrency)
- : concurrency_ (concurrency),
- the_thread_pool_ (private_thread_pool_)
-{
-}
-
-/* Construct ourselves with a reference to somebody else' Thread_Pool.
- Obvioulsy our concurrency strategy is "thread_pool_" at this point. */
-Client_Acceptor::Client_Acceptor (Thread_Pool &thread_pool)
- : concurrency_ (thread_pool_),
- the_thread_pool_ (thread_pool)
-{
-}
-
-/* When we're destructed, we may need to cleanup after ourselves. If
- we're running with a thread pool that we own, it is up to us to
- close it down. */
-Client_Acceptor::~Client_Acceptor (void)
-{
- if (this->concurrency() == thread_pool_ && thread_pool_is_private ())
- thread_pool ()->close ();
-}
-
-/* Similar to the destructor (and close() below) it is necessary for
- us to open the thread pool in some circumstances.
-
- Notice how we delegate most of the open() work to the open() method
- of our baseclass. */
-int
-Client_Acceptor::open (const ACE_INET_Addr &addr,
- ACE_Reactor *reactor,
- int pool_size)
-{
- if (this->concurrency() == thread_pool_ && thread_pool_is_private ())
- thread_pool ()->open (pool_size);
-
- return inherited::open (addr, reactor);
-}
-
-/* Here again we find that we have to manage the thread pool. Like
- open() we also delegate the other work to our baseclass. */
-int
-Client_Acceptor::close (void)
-{
- if (this->concurrency() == thread_pool_ && thread_pool_is_private ())
- thread_pool ()->close ();
-
- return inherited::close ();
-}
-
diff --git a/docs/tutorials/007/client_acceptor.h b/docs/tutorials/007/client_acceptor.h
deleted file mode 100644
index fb591f548fb..00000000000
--- a/docs/tutorials/007/client_acceptor.h
+++ /dev/null
@@ -1,125 +0,0 @@
-// $Id$
-
-#ifndef CLIENT_ACCEPTOR_H
-#define CLIENT_ACCEPTOR_H
-
-/* The ACE_Acceptor<> template lives in the ace/Acceptor.h header
- file. You'll find a very consitent naming convention between the
- ACE objects and the headers where they can be found. In general,
- the ACE object ACE_Foobar will be found in ace/Foobar.h. */
-
-#include "ace/Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* Since we want to work with sockets, we'll need a SOCK_Acceptor to
- allow the clients to connect to us. */
-#include "ace/SOCK_Acceptor.h"
-
-/* The Client_Handler object we develop will be used to handle clients
- once they're connected. The ACE_Acceptor<> template's first
- parameter requires such an object. In some cases, you can get by
- with just a forward declaration on the class, in others you have to
- have the whole thing. */
-#include "client_handler.h"
-
-/* Parameterize the ACE_Acceptor<> such that it will listen for socket
- connection attempts and create Client_Handler objects when they
- happen. In Tutorial 001, we wrote the basic acceptor logic on our
- own before we realized that ACE_Acceptor<> was available. You'll
- get spoiled using the ACE templates because they take away a lot of
- the tedious details! */
-typedef ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR> Client_Acceptor_Base;
-
-#include "thread_pool.h"
-
-/* This time we've added quite a bit more to our acceptor. In
- addition to providing a choice of concurrency strategies, we also
- maintain a Thread_Pool object in case that strategy is chosen. The
- object still isn't very complex but it's come a long way from the
- simple typedef we had in Tutorial 5.
-
- Why keep the thread pool as a member? If we go back to the inetd
- concept you'll recall that we need several acceptors to make that
- work. We may have a situation in which our different client types
- requre different resources. That is, we may need a large thread
- pool for some client types and a smaller one for others. We could
- share a pool but then the client types may have undesirable impact
- on one another.
-
- Just in case you do want to share a single thread pool, there is a
- constructor below that will let you do that. */
-class Client_Acceptor : public Client_Acceptor_Base
-{
-public:
- typedef Client_Acceptor_Base inherited;
-
- /* Now that we have more than two strategies, we need more than a
- boolean to tell us what we're using. A set of enums is a good
- choice because it allows us to use named values. Another option
- would be a set of static const integers. */
- enum concurrency_t
- {
- single_threaded_,
- thread_per_connection_,
- thread_pool_
- };
-
- /* The default constructor allows the programmer to choose the
- concurrency strategy. Since we want to focus on thread-pool,
- that's what we'll use if nothing is specified. */
- Client_Acceptor (int concurrency = thread_pool_);
-
- /* Another option is to construct the object with an existing thread
- pool. The concurrency strategy is pretty obvious at that point. */
- Client_Acceptor (Thread_Pool &thread_pool);
-
- /* Our destructor will take care of shutting down the thread-pool if
- applicable. */
- ~Client_Acceptor (void);
-
- /* Open ourselves and register with the given reactor. The thread
- pool size can be specified here if you want to use that
- concurrency strategy. */
- int open (const ACE_INET_Addr &addr,
- ACE_Reactor *reactor,
- int pool_size = Thread_Pool::default_pool_size_);
-
- /* Close ourselves and our thread pool if applicable */
- int close (void);
-
- /* What is our concurrency strategy? */
- int concurrency (void)
- {
- return this->concurrency_;
- }
-
- /* Give back a pointer to our thread pool. Our Client_Handler
- objects will need this so that their handle_input() methods can
- put themselves into the pool. Another alternative would be a
- globally accessible thread pool. ACE_Singleton<> is a way to
- achieve that. */
- Thread_Pool *thread_pool (void)
- {
- return &this->the_thread_pool_;
- }
-
- /* Since we can be constructed with a Thread_Pool reference, there
- are times when we need to know if the thread pool we're using is
- ours or if we're just borrowing it from somebody else. */
- int thread_pool_is_private (void)
- {
- return &the_thread_pool_ == &private_thread_pool_;
- }
-
-protected:
- int concurrency_;
-
- Thread_Pool private_thread_pool_;
-
- Thread_Pool &the_thread_pool_;
-};
-
-#endif /* CLIENT_ACCEPTOR_H */
diff --git a/docs/tutorials/007/client_handler.cpp b/docs/tutorials/007/client_handler.cpp
deleted file mode 100644
index 6399c1636d1..00000000000
--- a/docs/tutorials/007/client_handler.cpp
+++ /dev/null
@@ -1,233 +0,0 @@
-// $Id$
-
-/* Since this is the third time we've seen most of this, I'm going to
- strip out almost all of the comments that you've already seen.
- That way, you can concentrate on the new items. */
-
-#include "client_acceptor.h"
-#include "client_handler.h"
-
-/* We're going to be registering and unregistering a couple of times.
- To make sure that we use the same flags every time, I've created
- these handy macros. */
-#define REGISTER_MASK ACE_Event_Handler::READ_MASK
-#define REMOVE_MASK (ACE_Event_Handler::READ_MASK | ACE_Event_Handler::DONT_CALL)
-
-/* Our constructor still doesn't really do anything. We simply
- initialize the acceptor pointer to "null" and get our current
- thread id. The static self() method of ACE_Thread will return you
- a thread id native to your platform. */
-Client_Handler::Client_Handler (void)
- : client_acceptor_(0),
- creator_ (ACE_Thread::self ())
-{
-}
-
-Client_Handler::~Client_Handler (void)
-{
- this->peer().close();
-}
-
-/* Query our acceptor for the concurrency strategy. Notice that we
- don't bother to check that our acceptor pointer is valid. That is
- proably a bad idea... */
-int
-Client_Handler::concurrency(void)
-{
- return this->client_acceptor ()->concurrency ();
-}
-
-/* And here we ask the acceptor about the thread pool. */
-Thread_Pool *
-Client_Handler::thread_pool (void)
-{
- return this->client_acceptor ()->thread_pool ();
-}
-
-/* Back to our open() method. This is straight out of Tutorial 6.
- There's nothing additional here for the thread-pool implementation. */
-int
-Client_Handler::open (void *acceptor)
-{
- client_acceptor ((Client_Acceptor *) acceptor);
-
- if (concurrency () == Client_Acceptor::thread_per_connection_)
- return this->activate (THR_DETACHED);
-
- this->reactor (client_acceptor()->reactor ());
-
- ACE_INET_Addr addr;
-
- if (this->peer ().get_remote_addr (addr) == -1)
- return -1;
-
- if (this->reactor ()->register_handler (this,
- REGISTER_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) can't register with reactor\n"),
- -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) connected with %s\n",
- addr.get_host_name ()));
- return 0;
-}
-
-/* The destroy() method will remove us from the reactor (with the
- DONT_CALL flag set!) and then free our memory. This allows us to
- be closed from outside of the reactor context without any danger. */
-void
-Client_Handler::destroy (void)
-{
- this->reactor ()->remove_handler (this, REMOVE_MASK);
- delete this;
-}
-
-/* As mentioned in the header, the typical way to close an object in a
- threaded context is to invoke it's close() method. */
-int
-Client_Handler::close (u_long flags)
-{
- ACE_UNUSED_ARG(flags);
-
- /*
- We use the destroy() method to clean up after ourselves.
- That will take care of removing us from the reactor and then
- freeing our memory.
- */
- this->destroy ();
-
- /* Don't forward the close() to the baseclass! handle_close() above
- has already taken care of delete'ing. Forwarding close() would
- cause that to happen again and things would get really ugly at
- that point! */
- return 0;
-}
-
-/* We will be called when handle_input() returns -1. That's our queue
- to delete ourselves to prevent memory leaks. */
-int
-Client_Handler::handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (mask);
-
- delete this;
-
- return 0;
-}
-
-/* In the open() method, we registered with the reactor and requested
- to be notified when there is data to be read. When the reactor
- sees that activity it will invoke this handle_input() method on us.
- As I mentioned, the _handle parameter isn't useful to us but it
- narrows the list of methods the reactor has to worry about and the
- list of possible virtual functions we would have to override.
-
- You've read that much before... Now we have to do some extra stuff
- in case we're using the thread-pool implementation. If we're
- called by our creator thread then we must be in the reactor. In
- that case, we arrange to be put into the thread pool. If we're not
- in the creator thread then we must be in the thread pool and we can
- do some work. */
-int
-Client_Handler::handle_input (ACE_HANDLE handle)
-{
- ACE_UNUSED_ARG (handle);
-
- /* Check our strategy. If we're using the thread pool and we're in
- the creation thread then we know we were called by the reactor. */
- if (concurrency () == Client_Acceptor::thread_pool_)
- {
- if (ACE_OS::thr_equal (ACE_Thread::self(),
- creator_))
- {
- /* Remove ourselves from the reactor and ask to be put into
- the thread pool's queue of work. (You should be able to
- use suspend_handler() but I've had problems with that.)
-
- By removing ourselves from the reactor, we're guaranteed
- that we won't be called back until the thread pool picks
- us up out of the queue. If we didn't remove ourselves,
- then the reactor would continue to invoke handle_input()
- and we don't want that to happen. */
- this->reactor ()->remove_handler (this, REMOVE_MASK);
- return this->thread_pool ()->enqueue (this);
- }
- }
-
- /* Any strategy other than thread-per-connection will eventually get
- here. If we're in the single-threaded implementation or the
- thread-pool, we still have to pass this way. */
-
- char buf[BUFSIZ];
-
- /* Invoke the process() method to do the work but save it's return
- value instead of returning it immediately. */
-
- int rval = this->process (buf, sizeof (buf));
-
- /* Now, we look again to see if we're in the thread-pool
- implementation. If so then we need to re-register ourselves with
- the reactor so that we can get more work when it is available.
- (If suspend_handler() worked then we would use resume_handler()
- here.) */
- if (concurrency () == Client_Acceptor::thread_pool_)
- {
- if (rval != -1)
- /* If we don't remember to re-register ourselves, then we
- won't be able to respond to any future client requests. */
- this->reactor ()->register_handler (this,
- REGISTER_MASK);
- }
-
- /* Return the result of process() */
- return rval;
-}
-
-/* Remember that when we leave our svc() method, the framework will
- take care of calling our close() method so that we can cleanup
- after ourselves. */
-int
-Client_Handler::svc (void)
-{
- char buf[BUFSIZ];
-
- while (1)
- if (this->process (buf, sizeof (buf)) == -1)
- return -1;
-
- return 0;
-}
-
-/* Once again, we see that the application-level logic has not been at
- all affected by our choice of threading models. Of course, I'm not
- sharing data between threads or anything. We'll leave locking
- issues for a later tutorial. */
-int
-Client_Handler::process (char *rdbuf,
- int rdbuf_len)
-{
- ssize_t bytes_read;
- switch ( (bytes_read = this->peer ().recv (rdbuf, rdbuf_len)) )
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) %p bad read\n",
- "client"),
- -1);
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) closing daemon (fd = %d)\n",
- this->get_handle ()),
- -1);
- default:
- rdbuf[bytes_read] = 0;
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) from client: %s",
- rdbuf));
- }
-
- return 0;
-}
diff --git a/docs/tutorials/007/client_handler.h b/docs/tutorials/007/client_handler.h
deleted file mode 100644
index 9bb4af24358..00000000000
--- a/docs/tutorials/007/client_handler.h
+++ /dev/null
@@ -1,156 +0,0 @@
-// $Id$
-
-#ifndef CLIENT_HANDLER_H
-#define CLIENT_HANDLER_H
-
-/* Our client handler must exist somewhere in the ACE_Event_Handler
- object hierarchy. This is a requirement of the ACE_Reactor because
- it maintains ACE_Event_Handler pointers for each registered event
- handler. You could derive our Client_Handler directly from
- ACE_Event_Handler but you still have to have an ACE_SOCK_Stream for
- the actually connection. With a direct derivative of
- ACE_Event_Handler, you'll have to contain and maintain an
- ACE_SOCK_Stream instance yourself. With ACE_Svc_Handler (which is
- a derivative of ACE_Event_Handler) some of those details are
- handled for you. */
-
-#include "ace/Svc_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Stream.h"
-
-class Client_Acceptor;
-class Thread_Pool;
-
-/* Another feature of ACE_Svc_Handler is it's ability to present the
- ACE_Task<> interface as well. That's what the ACE_NULL_SYNCH
- parameter below is all about. That's beyond our scope here but
- we'll come back to it in the next tutorial when we start looking at
- concurrency options. */
-class Client_Handler : public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- typedef ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH> inherited;
-
- // Constructor...
- Client_Handler (void);
-
- /* The destroy() method is our preferred method of destruction. We
- could have overloaded the delete operator but that is neither easy
- nor intuitive (at least to me). Instead, we provide a new method
- of destruction and we make our destructor protected so that only
- ourselves, our derivatives and our friends can delete us. It's a
- nice compromise. */
- void destroy (void);
-
- /* Most ACE objects have an open() method. That's how you make them
- ready to do work. ACE_Event_Handler has a virtual open() method
- which allows us to create this overrride. ACE_Acceptor<> will
- invoke this method after creating a new Client_Handler when a
- client connects. Notice that the parameter to open() is a void*.
- It just so happens that the pointer points to the acceptor which
- created us. You would like for the parameter to be an
- ACE_Acceptor<>* but since ACE_Event_Handler is generic, that would
- tie it too closely to the ACE_Acceptor<> set of objects. In our
- definition of open() you'll see how we get around that. */
- int open (void *acceptor);
-
- /* When an ACE_Task<> object falls out of the svc() method, the
- framework will call the close() method. That's where we want to
- cleanup ourselves if we're running in either thread-per-connection
- or thread-pool mode. */
- int close (u_long flags = 0);
-
- /* When there is activity on a registered handler, the
- handle_input() method of the handler will be invoked. If that
- method returns an error code (eg -- -1) then the reactor will
- invoke handle_close() to allow the object to clean itself
- up. Since an event handler can be registered for more than one
- type of callback, the callback mask is provided to inform
- handle_close() exactly which method failed. That way, you don't
- have to maintain state information between your handle_* method
- calls. The <handle> parameter is explained below... As a
- side-effect, the reactor will also invoke remove_handler() for the
- object on the mask that caused the -1 return. This means that we
- don't have to do that ourselves! */
- int handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- /* When we register with the reactor, we're going to tell it that we
- want to be notified of READ events. When the reactor sees that
- there is read activity for us, our handle_input() will be
- invoked. The _handleg provided is the handle (file descriptor in
- Unix) of the actual connection causing the activity. Since we're
- derived from ACE_Svc_Handler<> and it maintains it's own peer
- (ACE_SOCK_Stream) object, this is redundant for us. However, if
- we had been derived directly from ACE_Event_Handler, we may have
- chosen not to contain the peer. In that case, the <handle> would
- be important to us for reading the client's data. */
- int handle_input (ACE_HANDLE handle);
-
-protected:
-
- /* If the Client_Acceptor which created us has chosen a
- thread-per-connection strategy then our open() method will
- activate us into a dedicate thread. The svc() method will then
- execute in that thread performing some of the functions we used to
- leave up to the reactor. */
- int svc (void);
-
- /* This has nothing at all to do with ACE. I've added this here as
- a worker function which I will call from handle_input(). That
- allows me to introduce concurrencly in later tutorials with a no
- changes to the worker function. You can think of process() as
- application-level code and everything elase as
- application-framework code. */
- int process (char *rdbuf, int rdbuf_len);
-
- /* We don't really do anything in our destructor but we've declared
- it to be protected to prevent casual deletion of this object. As
- I said above, I really would prefer that everyone goes through the
- destroy() method to get rid of us. */
- ~Client_Handler (void);
-
- /* When we get to the definition of Client_Handler we'll see that
- there are several places where we go back to the Client_Acceptor
- for information. It is generally a good idea to do that through
- an accesor rather than using the member variable directly. */
- Client_Acceptor *client_acceptor (void)
- {
- return this->client_acceptor_;
- }
-
- /* And since you shouldn't access a member variable directly,
- neither should you set (mutate) it. Although it might seem silly
- to do it this way, you'll thank yourself for it later. */
- void client_acceptor (Client_Acceptor *_client_acceptor)
- {
- this->client_acceptor_ = _client_acceptor;
- }
-
- /* The concurrency() accessor tells us the current concurrency
- strategy. It actually queries the Client_Acceptor for it but by
- having the accessor in place, we could change our implementation
- without affecting everything that needs to know. */
- int concurrency (void);
-
- /* Likewise for access to the Thread_Pool that we belong to. */
- Thread_Pool * thread_pool (void);
-
- Client_Acceptor *client_acceptor_;
-
- /* For some reason I didn't create accessor/mutator methods for
- this. So much for consistency....
-
- This variable is used to remember the thread in which we were
- created: the "creator" thread in other words. handle_input()
- needs to know if it is operating in the main reactor thread (which
- is the one that created us) or if it is operating in one of the
- thread pool threads. More on this when we get to handle_input(). */
- ACE_thread_t creator_;
-};
-
-#endif /* CLIENT_HANDLER_H */
diff --git a/docs/tutorials/007/combine.shar b/docs/tutorials/007/combine.shar
deleted file mode 100644
index ba4dfe41b2b..00000000000
--- a/docs/tutorials/007/combine.shar
+++ /dev/null
@@ -1,685 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/007'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 576 -rw-rw-r-- hdr
-# 123 -rw-rw-r-- bodies
-# 3383 -rw-rw-r-- page01.pre
-# 87 -rw-rw-r-- page02.pre
-# 120 -rw-rw-r-- page03.pre
-# 171 -rw-rw-r-- page04.pre
-# 105 -rw-rw-r-- page05.pre
-# 160 -rw-rw-r-- page06.pre
-# 340 -rw-rw-r-- page07.pre
-# 377 -rw-rw-r-- page08.pre
-# 2070 -rw-rw-r-- page09.pre
-# 173 -rw-rw-r-- page02.pst
-# 116 -rw-rw-r-- page03.pst
-# 106 -rw-rw-r-- page04.pst
-# 234 -rw-rw-r-- page05.pst
-# 177 -rw-rw-r-- page06.pst
-# 97 -rw-rw-r-- page07.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32447; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <META NAME="Description" CONTENT="A first step towards using ACE productively">
-X <TITLE>ACE Tutorial 007</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 007</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Creating a thread-pool server</FONT></B></CENTER>
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-151b1b4bda96cc1e3ef55356e819ca42 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 576 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '576,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-server.cpp
-client_acceptor.h
-client_acceptor.cpp
-client_handler.h
-client_handler.cpp
-thread_pool.h
-thread_pool.cpp
-X
-SHAR_EOF
- $shar_touch -am 0121152599 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-7675a97fa145886f534c43a8e1a0e6d1 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 123 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '123,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X
-X
-X
-<P>In this tutorial, we're going to extend Tutorial 6 to add a third concurrency
-strategy:&nbsp; thread-pool.&nbsp; Like Tutorial 6 did to Tutorial 5, we're
-going to keep the existing strategies that we've already created and add
-this one in as a "bonus".&nbsp; As you'll see, our basic objects will change
-but not by a whole lot.&nbsp; To accomplish this, we'll introduce one new
-major object that helps to abstract the thread pool concept.
-<P>
-Some folks have noted that this tutorial is a bit confusing if you
-don't first know about ACE_Task. My advice is to give it all a good
-read a couple of times. If you're still having problems, take a look
-at the ACE_Task tests in $ACE_ROOT/tests or examples in $ACE_ROOT/examples.
-<P>
-Kirthika's Abstract:
-<UL>
-In this multithreaded server, the Client_Acceptor has the additional
-strategy of managing a thread pool. This helps when two clients don't
-want to share the same resources or when different clients
-need to run in different priority threads. We could then pool all the
-same priority clients into one thread-pool. The thread_pool class is a
-new addition used to implement this strategy. It inherits from ACE_Task
-with ACE_MT_SYNCH parameter which takes care of syncronization issues
-amongst multiple threads.
-<P>
-ACE_Task follows the Active Object pattern and executes the methods on
-the task object in a new thread of execution, i.e it decouples the
-execution of a method from its invocation. An ACE_Task has an underlying
-thread (or pool of threads) and a Message_Queue which is the only means
-of communication among tasks. A Message_Queue consists of
-Message_Blocks.
-<P>
-The Client_Acceptor is registered with the reactor waiting for
-connection requests.
-On some activity, the reactor calls the handle_input() method on the
-Acceptor. The Client_Handler of the Acceptor (for the thread-pool
-strategy) unregisters itself from the reactor and
-enqueues itself in the Message_Queue of the thread-pool waiting for
-svc() to call handle_input() on it. It would then process the data in
-its new thread of execution. The ACE_MT_SYNCH option facilitates access
-of the Mesage_Blocks across different Message_Queues (here from the main
-thread to the one in the thread pool).
-<P>
-The thread_pool class derives from the ACE_Task class. Its svc() method
-dequeues the threads in the Message_Queue and calls handle_input() on
-them. The idle threads can take work from the queue while the other
-threads are working. It also uses ACE_Atomic_Op as a counter for active
-threads in the pool. Also, the ACE_Guard class has been used to provide
-thread-safe counter-incrementation and destruction of the Message_Blocks
-of the thread-pool. This class guards the critical section region by
-acquiring the mutex lock on creation and releasing it as soon as it goes
-out of scope.
-<P>
-Note: a sleep period before all the threads in the pool exit is
-necessary for complete destruction of the thread pool.
-<P>
-This tutorial gives us a flavour of implementing a server with a
-thread-pool strategy and how it can be managed using the ACE_Task class,
-which provides an OO approach to thread-creation and implementation.
-</UL>
-<font size=-1>* The additions to this tutorial make use of
-ACE_Message_Queue which is discussed in depth in
-<A HREF="../010/page01.html">Tutorial 10</A>. Feel free to read ahead
-if you get lost in the message queue stuff.
-</font>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-0bd3a7ce4fbd16691109b32892c3a864 page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 3383 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '3383,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-<P>As usualy, we start with <A HREF="server.cpp">server.cpp</A>
-<BR>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-37639524942e8882c94523e5189b22ff page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 87 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '87,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-X
-<P>Let's see what things we've had to add to <A HREF="client_acceptor.h">client_acceptor.h</A>.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-64592ded5ea700b4147face8ad77018f page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 120 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '120,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-X
-<P>Something new this time is <A HREF="client_acceptor.cpp">client_acceptor.cpp</A>.&nbsp;
-I finally had enough code to move it out of the header.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-d5640eb97c0a746761c946c4e93db2e8 page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 171 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '171,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-X
-<P>As you might expect, <A HREF="client_handler.h">client_handler.h</A>
-is next.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-e882d389de5d95571737cfc58552153a page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 105 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '105,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-X
-<P><A HREF="client_handler.cpp">client_handler.cpp</A>
-shows some of the changes due to the thread-pool.&nbsp;&nbsp; Just a few
-though.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-d884389625246dfcd8049f0fc648997d page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 160 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '160,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page07.pre ==============
-if test -f 'page07.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page07.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page07.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page07.pre' &&
-<P>Two new files this time.&nbsp; The first is <A HREF="thread_pool.h">thread_pool.h</A>
-where we declare our Thread_Pool object.&nbsp; This is responsible for
-abstracting away the thread pool implementation details and allowing us
-to make so few changes to the rest of the code.
-X
-<P>
-<HR WIDTH="100%"><FONT FACE="Arial,Helvetica"></FONT>
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page07.pre' &&
- chmod 0664 'page07.pre' ||
- $echo 'restore of' 'page07.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page07.pre:' 'MD5 check failed'
-e5bcf4bee3e756dda50ccb69c18ac3a1 page07.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page07.pre'`"
- test 340 -eq "$shar_count" ||
- $echo 'page07.pre:' 'original size' '340,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page08.pre ==============
-if test -f 'page08.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page08.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page08.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page08.pre' &&
-X
-<P>Finally, <A HREF="thread_pool.cpp">thread_pool.cpp</A>
-where we have the Thread_Pool object implementation.
-<P>
-Remember back in <A HREF="../006/page01.html">Tutorial 6</A> when I
-X was talking about <i>THR_NEW_LWP</i>? Look closely and you'll
-X see it here. It's bitwise OR'd with <i>THR_DETACHED</i> just to
-X keep things interesting.
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page08.pre' &&
- chmod 0664 'page08.pre' ||
- $echo 'restore of' 'page08.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page08.pre:' 'MD5 check failed'
-09c4d5adcd767080e64649a01bd0957c page08.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page08.pre'`"
- test 377 -eq "$shar_count" ||
- $echo 'page08.pre:' 'original size' '377,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page09.pre ==============
-if test -f 'page09.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page09.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page09.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page09.pre' &&
-X
-<P>That's it for Tutorial 7.&nbsp; As with Tutorial 6, we really didn't
-have to change much to introduce a new threading strategy.&nbsp; Most of
-the work was in creating the Thread_Pool object itself.&nbsp; Everything
-else was just minor housekeeping.
-X
-<P>There is a fourth common thread strategy:&nbsp; thread-per-request.&nbsp;
-It's not one of my favorites, so I wasn't planning to go into it.&nbsp;
-If you want to contribute a tutorial on that topic though, I'll be glad
-to include it here.
-X
-<P>For reference, here's the file list again:
-<UL>
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-X
-<LI>
-<A HREF="client_acceptor.h">client_acceptor.h</A></LI>
-X
-<LI>
-<A HREF="client_acceptor.cpp">client_acceptor.cpp</A></LI>
-X
-<LI>
-<A HREF="client_handler.cpp">client_handler.cpp</A></LI>
-X
-<LI>
-<A HREF="client_handler.h">client_handler.h</A></LI>
-X
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-X
-<LI>
-<A HREF="thread_pool.h">thread_pool.h</A></LI>
-X
-<LI>
-<A HREF="thread_pool.cpp">thread_pool.cpp</A></LI>
-X
-</UL>
-<P>
-<HR WIDTH="100%">
-<P>
-<center><h2>Danger, Warning!</h2></center>
-Now that I've gone through all of this to create a thread pool server,
-I have to point out that this isn't exactly the best or safest way to
-do so. The biggest danger we face with this approach is the
-possibility of an event handler existing in the thread pool's message
-queue <i>after</i> it has been deleted. When the thread's svc()
-method attempts to invoke <i>handle_input()</i> you will get a nasty
-core dump.
-<p>
-The safest way to handle the situation is to use reference-counted
-pointers everywhere a Client_Handler pointer would be used. That's
-beyond the scope of the tutorial but I encourage you to give it a
-try. If you want to contribute that back as an enhanced Tutorial,
-I'll be glad to include it.
-<p>
-Another approach that should work quite well is to use the
-ACE_TP_Reactor instead of just ACE_Reactor. This takes a little more
-setup but results in a cleaner implementation. Again, I've not had
-time to develop a Tutorial on the TP_Reactor but would welcome any
-contributions.
-SHAR_EOF
- $shar_touch -am 03191459100 'page09.pre' &&
- chmod 0664 'page09.pre' ||
- $echo 'restore of' 'page09.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page09.pre:' 'MD5 check failed'
-8649089f4b28456c033dede0e32276a8 page09.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page09.pre'`"
- test 2070 -eq "$shar_count" ||
- $echo 'page09.pre:' 'original size' '2070,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pst ==============
-if test -f 'page02.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pst' &&
-<HR WIDTH="100%">
-X
-<P>Hmmm... No change there.&nbsp;&nbsp; Maybe I should leave out comments
-on the stuff I don't change.&nbsp; Let's take a look at client_acceptor.h.
-X
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pst' &&
- chmod 0664 'page02.pst' ||
- $echo 'restore of' 'page02.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pst:' 'MD5 check failed'
-b6226123f4f50eeb16db2f7675aaa171 page02.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pst'`"
- test 173 -eq "$shar_count" ||
- $echo 'page02.pst:' 'original size' '173,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pst ==============
-if test -f 'page03.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pst' &&
-<HR WIDTH="100%">
-X
-<P>Well, except for the new Thread_Pool member variable, most of the changes
-are informational.
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pst' &&
- chmod 0664 'page03.pst' ||
- $echo 'restore of' 'page03.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pst:' 'MD5 check failed'
-88a4cc7d635a4a6b7645011be580808f page03.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pst'`"
- test 116 -eq "$shar_count" ||
- $echo 'page03.pst:' 'original size' '116,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pst ==============
-if test -f 'page04.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pst' &&
-<HR WIDTH="100%">
-X
-<P>Nothing really surprising here.&nbsp; Most of it just manages the Thread_Pool.
-X
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pst' &&
- chmod 0664 'page04.pst' ||
- $echo 'restore of' 'page04.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pst:' 'MD5 check failed'
-57acbd600df965b4dc96ef0ad7ea9390 page04.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pst'`"
- test 106 -eq "$shar_count" ||
- $echo 'page04.pst:' 'original size' '106,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pst ==============
-if test -f 'page05.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pst' &&
-<HR WIDTH="100%">
-X
-<P>Still, we're just not seeing a lot of changes due to introduction of
-the thread pool.&nbsp; That's a good thing! You don't want to go turning
-your application upside down just because you changed thread models.
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pst' &&
- chmod 0664 'page05.pst' ||
- $echo 'restore of' 'page05.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pst:' 'MD5 check failed'
-98cba63a4dffe925484ca86368c863bb page05.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pst'`"
- test 234 -eq "$shar_count" ||
- $echo 'page05.pst:' 'original size' '234,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pst ==============
-if test -f 'page06.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pst' &&
-<HR WIDTH="100%">
-X
-<P>Ok, now we've gone and changed handle_input() so that it knows when
-to do work and when to enqueue itself.&nbsp; Beyond that, we're still about
-the same.
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pst' &&
- chmod 0664 'page06.pst' ||
- $echo 'restore of' 'page06.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pst:' 'MD5 check failed'
-bfbc05b1679c397403e7106ef12065d9 page06.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pst'`"
- test 177 -eq "$shar_count" ||
- $echo 'page06.pst:' 'original size' '177,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page07.pst ==============
-if test -f 'page07.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page07.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page07.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page07.pst' &&
-<HR WIDTH="100%">
-X
-<P>Well, that doesn't look too complex.&nbsp; What about the implementation?
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page07.pst' &&
- chmod 0664 'page07.pst' ||
- $echo 'restore of' 'page07.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page07.pst:' 'MD5 check failed'
-c1a7fbfe20f12e5a8bdeccc7c8e1af1c page07.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page07.pst'`"
- test 97 -eq "$shar_count" ||
- $echo 'page07.pst:' 'original size' '97,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32447
-exit 0
diff --git a/docs/tutorials/007/page01.html b/docs/tutorials/007/page01.html
deleted file mode 100644
index c8aacc25752..00000000000
--- a/docs/tutorials/007/page01.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 007</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 007</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-pool server</FONT></B></CENTER>
-<HR>
-
-
-
-<P>In this tutorial, we're going to extend Tutorial 6 to add a third concurrency
-strategy:&nbsp; thread-pool.&nbsp; Like Tutorial 6 did to Tutorial 5, we're
-going to keep the existing strategies that we've already created and add
-this one in as a "bonus".&nbsp; As you'll see, our basic objects will change
-but not by a whole lot.&nbsp; To accomplish this, we'll introduce one new
-major object that helps to abstract the thread pool concept.
-<P>
-Some folks have noted that this tutorial is a bit confusing if you
-don't first know about ACE_Task. My advice is to give it all a good
-read a couple of times. If you're still having problems, take a look
-at the ACE_Task tests in $ACE_ROOT/tests or examples in $ACE_ROOT/examples.
-<P>
-Kirthika's Abstract:
-<UL>
-In this multithreaded server, the Client_Acceptor has the additional
-strategy of managing a thread pool. This helps when two clients don't
-want to share the same resources or when different clients
-need to run in different priority threads. We could then pool all the
-same priority clients into one thread-pool. The thread_pool class is a
-new addition used to implement this strategy. It inherits from ACE_Task
-with ACE_MT_SYNCH parameter which takes care of syncronization issues
-amongst multiple threads.
-<P>
-ACE_Task follows the Active Object pattern and executes the methods on
-the task object in a new thread of execution, i.e it decouples the
-execution of a method from its invocation. An ACE_Task has an underlying
-thread (or pool of threads) and a Message_Queue which is the only means
-of communication among tasks. A Message_Queue consists of
-Message_Blocks.
-<P>
-The Client_Acceptor is registered with the reactor waiting for
-connection requests.
-On some activity, the reactor calls the handle_input() method on the
-Acceptor. The Client_Handler of the Acceptor (for the thread-pool
-strategy) unregisters itself from the reactor and
-enqueues itself in the Message_Queue of the thread-pool waiting for
-svc() to call handle_input() on it. It would then process the data in
-its new thread of execution. The ACE_MT_SYNCH option facilitates access
-of the Mesage_Blocks across different Message_Queues (here from the main
-thread to the one in the thread pool).
-<P>
-The thread_pool class derives from the ACE_Task class. Its svc() method
-dequeues the threads in the Message_Queue and calls handle_input() on
-them. The idle threads can take work from the queue while the other
-threads are working. It also uses ACE_Atomic_Op as a counter for active
-threads in the pool. Also, the ACE_Guard class has been used to provide
-thread-safe counter-incrementation and destruction of the Message_Blocks
-of the thread-pool. This class guards the critical section region by
-acquiring the mutex lock on creation and releasing it as soon as it goes
-out of scope.
-<P>
-Note: a sleep period before all the threads in the pool exit is
-necessary for complete destruction of the thread pool.
-<P>
-This tutorial gives us a flavour of implementing a server with a
-thread-pool strategy and how it can be managed using the ACE_Task class,
-which provides an OO approach to thread-creation and implementation.
-</UL>
-<font size=-1>* The additions to this tutorial make use of
-ACE_Message_Queue which is discussed in depth in
-<A HREF="../010/page01.html">Tutorial 10</A>. Feel free to read ahead
-if you get lost in the message queue stuff.
-</font>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/007/page02.html b/docs/tutorials/007/page02.html
deleted file mode 100644
index e9dc3693cce..00000000000
--- a/docs/tutorials/007/page02.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 007</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 007</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-pool server</FONT></B></CENTER>
-<HR>
-<P>As usualy, we start with <A HREF="server.cpp">server.cpp</A>
-<BR>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* We try to keep main() very simple. One of the ways we do that is
- to push much of the complicated stuff into worker objects. In this
- case, we only need to include the acceptor header in our main
- source file. We let it worry about the "<font color=green>real work</font>". */</font>
-
-<font color=blue>#include</font> "<font color=green>client_acceptor.h</font>"
-
-<font color=red>/* As before, we create a simple signal handler that will set our
- finished flag. There are, of course, more elegant ways to handle
- program shutdown requests but that isn't really our focus right
- now, so we'll just do the easiest thing. */</font>
-
-static sig_atomic_t finished = 0;
-extern "<font color=green>C</font>" void handler (int)
-{
- finished = 1;
-}
-
-<font color=red>/* A server has to listen for clients at a known TCP/IP port. The
- default ACE port is 10002 (at least on my system) and that's good
- enough for what we want to do here. Obviously, a more robust
- application would take a command line parameter or read from a
- configuration file or do some other clever thing. Just like the
- signal handler above, though, that's what we want to focus on, so
- we're taking the easy way out. */</font>
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-<font color=red>/* Finally, we get to main. Some C++ compilers will complain loudly
- if your function signature doesn't match the prototype. Even
- though we're not going to use the parameters, we still have to
- specify them. */</font>
-
-int
-main (int argc, char *argv[])
-{
- ACE_UNUSED_ARG(argc);
- ACE_UNUSED_ARG(argv);
-
- <font color=red>/* In our earlier servers, we used a global pointer to get to the
- reactor. I've never really liked that idea, so I've moved it into
- main() this time. When we get to the Client_Handler object you'll
- see how we manage to get a pointer back to this reactor. */</font>
- ACE_Reactor reactor;
-
- <font color=red>/* The acceptor will take care of letting clients connect to us. It
- will also arrange for a Client_Handler to be created for each new
- client. Since we're only going to listen at one TCP/IP port, we
- only need one acceptor. If we wanted, though, we could create
- several of these and listen at several ports. (That's what we
- would do if we wanted to rewrite inetd for instance.) */</font>
- Client_Acceptor peer_acceptor;
-
- <font color=red>/* Create an ACE_INET_Addr that represents our endpoint of a
- connection. We then open our acceptor object with that Addr.
- Doing so tells the acceptor where to listen for connections.
- Servers generally listen at "<font color=green>well known</font>" addresses. If not, there
- must be some mechanism by which the client is informed of the
- server's address.
-
- Note how ACE_ERROR_RETURN is used if we fail to open the acceptor.
- This technique is used over and over again in our tutorials. */</font>
- if (peer_acceptor.open (ACE_INET_Addr (PORT), &reactor) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
-
- <font color=red>/* Install our signal handler. You can actually register signal
- handlers with the reactor. You might do that when the signal
- handler is responsible for performing "<font color=green>real</font>" work. Our simple
- flag-setter doesn't justify deriving from ACE_Event_Handler and
- providing a callback function though. */</font>
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
-
- <font color=red>/* Like ACE_ERROR_RETURN, the ACE_DEBUG macro gets used quite a bit.
- It's a handy way to generate uniform debug output from your
- program. */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) starting up server daemon\n</font>"));
-
- <font color=red>/* This will loop "<font color=green>forever</font>" invoking the handle_events() method of
- our reactor. handle_events() watches for activity on any
- registered handlers and invokes their appropriate callbacks when
- necessary. Callback-driven programming is a big thing in ACE, you
- should get used to it. If the signal handler catches something,
- the finished flag will be set and we'll exit. Conveniently
- enough, handle_events() is also interrupted by signals and will
- exit back to the while() loop. (If you want your event loop to
- not be interrupted by signals, checkout the &lt;i>restart&lt;/i> flag on
- the open() method of ACE_Reactor if you're interested.) */</font>
- while (!finished)
- reactor.handle_events ();
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) shutting down server daemon\n</font>"));
-
- return 0;
-}
-
-<font color=blue>#if defined</font> (<font color=purple>ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION</font>)
-template class ACE_Acceptor &lt;Client_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-template class ACE_Guard&lt;ACE_Mutex>;
-template class ACE_Atomic_Op&lt;ACE_Mutex, int>;
-<font color=blue>#elif defined</font> (<font color=purple>ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Acceptor &lt;Client_Handler, ACE_SOCK_ACCEPTOR>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Guard&lt;ACE_Mutex>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Atomic_Op&lt;ACE_Mutex, int>
-<font color=blue>#endif</font> <font color=red>/* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */</font>
-</PRE>
-<HR WIDTH="100%">
-
-<P>Hmmm... No change there.&nbsp;&nbsp; Maybe I should leave out comments
-on the stuff I don't change.&nbsp; Let's take a look at client_acceptor.h.
-
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/007/page03.html b/docs/tutorials/007/page03.html
deleted file mode 100644
index 25ddbad3bd1..00000000000
--- a/docs/tutorials/007/page03.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 007</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 007</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-pool server</FONT></B></CENTER>
-<HR>
-
-<P>Let's see what things we've had to add to <A HREF="client_acceptor.h">client_acceptor.h</A>.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>CLIENT_ACCEPTOR_H</font>
-<font color=blue>#define</font> <font color=purple>CLIENT_ACCEPTOR_H</font>
-
-<font color=red>/* The ACE_Acceptor&lt;> template lives in the ace/Acceptor.h header
- file. You'll find a very consitent naming convention between the
- ACE objects and the headers where they can be found. In general,
- the ACE object ACE_Foobar will be found in ace/Foobar.h. */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Acceptor.h">ace/Acceptor.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=red>/* Since we want to work with sockets, we'll need a SOCK_Acceptor to
- allow the clients to connect to us. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Acceptor.h">ace/SOCK_Acceptor.h</A>"
-
-<font color=red>/* The Client_Handler object we develop will be used to handle clients
- once they're connected. The ACE_Acceptor&lt;> template's first
- parameter requires such an object. In some cases, you can get by
- with just a forward declaration on the class, in others you have to
- have the whole thing. */</font>
-<font color=blue>#include</font> "<font color=green>client_handler.h</font>"
-
-<font color=red>/* Parameterize the ACE_Acceptor&lt;> such that it will listen for socket
- connection attempts and create Client_Handler objects when they
- happen. In Tutorial 001, we wrote the basic acceptor logic on our
- own before we realized that ACE_Acceptor&lt;> was available. You'll
- get spoiled using the ACE templates because they take away a lot of
- the tedious details! */</font>
-typedef ACE_Acceptor &lt;Client_Handler, ACE_SOCK_ACCEPTOR> Client_Acceptor_Base;
-
-<font color=blue>#include</font> "<font color=green>thread_pool.h</font>"
-
-<font color=red>/* This time we've added quite a bit more to our acceptor. In
- addition to providing a choice of concurrency strategies, we also
- maintain a Thread_Pool object in case that strategy is chosen. The
- object still isn't very complex but it's come a long way from the
- simple typedef we had in Tutorial 5.
-
- Why keep the thread pool as a member? If we go back to the inetd
- concept you'll recall that we need several acceptors to make that
- work. We may have a situation in which our different client types
- requre different resources. That is, we may need a large thread
- pool for some client types and a smaller one for others. We could
- share a pool but then the client types may have undesirable impact
- on one another.
-
- Just in case you do want to share a single thread pool, there is a
- constructor below that will let you do that. */</font>
-class Client_Acceptor : public Client_Acceptor_Base
-{
-public:
- typedef Client_Acceptor_Base inherited;
-
- <font color=red>/* Now that we have more than two strategies, we need more than a
- boolean to tell us what we're using. A set of enums is a good
- choice because it allows us to use named values. Another option
- would be a set of static const integers. */</font>
- enum concurrency_t
- {
- single_threaded_,
- thread_per_connection_,
- thread_pool_
- };
-
- <font color=red>/* The default constructor allows the programmer to choose the
- concurrency strategy. Since we want to focus on thread-pool,
- that's what we'll use if nothing is specified. */</font>
- Client_Acceptor (int concurrency = thread_pool_);
-
- <font color=red>/* Another option is to construct the object with an existing thread
- pool. The concurrency strategy is pretty obvious at that point. */</font>
- Client_Acceptor (Thread_Pool &thread_pool);
-
- <font color=red>/* Our destructor will take care of shutting down the thread-pool if
- applicable. */</font>
- ~Client_Acceptor (void);
-
- <font color=red>/* Open ourselves and register with the given reactor. The thread
- pool size can be specified here if you want to use that
- concurrency strategy. */</font>
- int open (const ACE_INET_Addr &addr,
- ACE_Reactor *reactor,
- int pool_size = <font color=#008888>Thread_Pool::default_pool_size_</font>);
-
- <font color=red>/* Close ourselves and our thread pool if applicable */</font>
- int close (void);
-
- <font color=red>/* What is our concurrency strategy? */</font>
- int concurrency (void)
- {
- return this->concurrency_;
- }
-
- <font color=red>/* Give back a pointer to our thread pool. Our Client_Handler
- objects will need this so that their handle_input() methods can
- put themselves into the pool. Another alternative would be a
- globally accessible thread pool. ACE_Singleton&lt;> is a way to
- achieve that. */</font>
- Thread_Pool *thread_pool (void)
- {
- return &this->the_thread_pool_;
- }
-
- <font color=red>/* Since we can be constructed with a Thread_Pool reference, there
- are times when we need to know if the thread pool we're using is
- ours or if we're just borrowing it from somebody else. */</font>
- int thread_pool_is_private (void)
- {
- return &the_thread_pool_ == &private_thread_pool_;
- }
-
-protected:
- int concurrency_;
-
- Thread_Pool private_thread_pool_;
-
- Thread_Pool &the_thread_pool_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* CLIENT_ACCEPTOR_H */</font>
-</PRE>
-<HR WIDTH="100%">
-
-<P>Well, except for the new Thread_Pool member variable, most of the changes
-are informational.
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/007/page04.html b/docs/tutorials/007/page04.html
deleted file mode 100644
index 8f5a04a13d9..00000000000
--- a/docs/tutorials/007/page04.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 007</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 007</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-pool server</FONT></B></CENTER>
-<HR>
-
-<P>Something new this time is <A HREF="client_acceptor.cpp">client_acceptor.cpp</A>.&nbsp;
-I finally had enough code to move it out of the header.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>client_acceptor.h</font>"
-
-<font color=red>/* Construct ourselves with the chosen concurrency strategy. Notice
- that we also set our Thread_Pool reference to our private instance. */</font>
-<font color=#008888>Client_Acceptor::Client_Acceptor</font> (int concurrency)
- : concurrency_ (concurrency),
- the_thread_pool_ (private_thread_pool_)
-{
-}
-
-<font color=red>/* Construct ourselves with a reference to somebody else' Thread_Pool.
- Obvioulsy our concurrency strategy is "<font color=green>thread_pool_</font>" at this point. */</font>
-<font color=#008888>Client_Acceptor::Client_Acceptor</font> (Thread_Pool &thread_pool)
- : concurrency_ (thread_pool_),
- the_thread_pool_ (thread_pool)
-{
-}
-
-<font color=red>/* When we're destructed, we may need to cleanup after ourselves. If
- we're running with a thread pool that we own, it is up to us to
- close it down. */</font>
-<font color=#008888>Client_Acceptor::~Client_Acceptor</font> (void)
-{
- if (this->concurrency() == thread_pool_ && thread_pool_is_private ())
- thread_pool ()->close ();
-}
-
-<font color=red>/* Similar to the destructor (and close() below) it is necessary for
- us to open the thread pool in some circumstances.
-
- Notice how we delegate most of the open() work to the open() method
- of our baseclass. */</font>
-int
-<font color=#008888>Client_Acceptor::open</font> (const ACE_INET_Addr &addr,
- ACE_Reactor *reactor,
- int pool_size)
-{
- if (this->concurrency() == thread_pool_ && thread_pool_is_private ())
- thread_pool ()->open (pool_size);
-
- return <font color=#008888>inherited::open</font> (addr, reactor);
-}
-
-<font color=red>/* Here again we find that we have to manage the thread pool. Like
- open() we also delegate the other work to our baseclass. */</font>
-int
-<font color=#008888>Client_Acceptor::close</font> (void)
-{
- if (this->concurrency() == thread_pool_ && thread_pool_is_private ())
- thread_pool ()->close ();
-
- return <font color=#008888>inherited::close</font> ();
-}
-
-</PRE>
-<HR WIDTH="100%">
-
-<P>Nothing really surprising here.&nbsp; Most of it just manages the Thread_Pool.
-
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/007/page05.html b/docs/tutorials/007/page05.html
deleted file mode 100644
index 89307d103d5..00000000000
--- a/docs/tutorials/007/page05.html
+++ /dev/null
@@ -1,188 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 007</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 007</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-pool server</FONT></B></CENTER>
-<HR>
-
-<P>As you might expect, <A HREF="client_handler.h">client_handler.h</A>
-is next.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>CLIENT_HANDLER_H</font>
-<font color=blue>#define</font> <font color=purple>CLIENT_HANDLER_H</font>
-
-<font color=red>/* Our client handler must exist somewhere in the ACE_Event_Handler
- object hierarchy. This is a requirement of the ACE_Reactor because
- it maintains ACE_Event_Handler pointers for each registered event
- handler. You could derive our Client_Handler directly from
- ACE_Event_Handler but you still have to have an ACE_SOCK_Stream for
- the actually connection. With a direct derivative of
- ACE_Event_Handler, you'll have to contain and maintain an
- ACE_SOCK_Stream instance yourself. With ACE_Svc_Handler (which is
- a derivative of ACE_Event_Handler) some of those details are
- handled for you. */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Svc_Handler.h">ace/Svc_Handler.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-
-class Client_Acceptor;
-class Thread_Pool;
-
-<font color=red>/* Another feature of ACE_Svc_Handler is it's ability to present the
- ACE_Task&lt;> interface as well. That's what the ACE_NULL_SYNCH
- parameter below is all about. That's beyond our scope here but
- we'll come back to it in the next tutorial when we start looking at
- concurrency options. */</font>
-class Client_Handler : public ACE_Svc_Handler &lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- typedef ACE_Svc_Handler &lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH> inherited;
-
- <font color=red>// Constructor...</font>
- Client_Handler (void);
-
- <font color=red>/* The destroy() method is our preferred method of destruction. We
- could have overloaded the delete operator but that is neither easy
- nor intuitive (at least to me). Instead, we provide a new method
- of destruction and we make our destructor protected so that only
- ourselves, our derivatives and our friends can delete us. It's a
- nice compromise. */</font>
- void destroy (void);
-
- <font color=red>/* Most ACE objects have an open() method. That's how you make them
- ready to do work. ACE_Event_Handler has a virtual open() method
- which allows us to create this overrride. ACE_Acceptor&lt;> will
- invoke this method after creating a new Client_Handler when a
- client connects. Notice that the parameter to open() is a void*.
- It just so happens that the pointer points to the acceptor which
- created us. You would like for the parameter to be an
- ACE_Acceptor&lt;>* but since ACE_Event_Handler is generic, that would
- tie it too closely to the ACE_Acceptor&lt;> set of objects. In our
- definition of open() you'll see how we get around that. */</font>
- int open (void *acceptor);
-
- <font color=red>/* When an ACE_Task&lt;> object falls out of the svc() method, the
- framework will call the close() method. That's where we want to
- cleanup ourselves if we're running in either thread-per-connection
- or thread-pool mode. */</font>
- int close (u_long flags = 0);
-
- <font color=red>/* When there is activity on a registered handler, the
- handle_input() method of the handler will be invoked. If that
- method returns an error code (eg -- -1) then the reactor will
- invoke handle_close() to allow the object to clean itself
- up. Since an event handler can be registered for more than one
- type of callback, the callback mask is provided to inform
- handle_close() exactly which method failed. That way, you don't
- have to maintain state information between your handle_* method
- calls. The &lt;handle> parameter is explained below... As a
- side-effect, the reactor will also invoke remove_handler() for the
- object on the mask that caused the -1 return. This means that we
- don't have to do that ourselves! */</font>
- int handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
- <font color=red>/* When we register with the reactor, we're going to tell it that we
- want to be notified of READ events. When the reactor sees that
- there is read activity for us, our handle_input() will be
- invoked. The _handleg provided is the handle (file descriptor in
- Unix) of the actual connection causing the activity. Since we're
- derived from ACE_Svc_Handler&lt;> and it maintains it's own peer
- (ACE_SOCK_Stream) object, this is redundant for us. However, if
- we had been derived directly from ACE_Event_Handler, we may have
- chosen not to contain the peer. In that case, the &lt;handle> would
- be important to us for reading the client's data. */</font>
- int handle_input (ACE_HANDLE handle);
-
-protected:
-
- <font color=red>/* If the Client_Acceptor which created us has chosen a
- thread-per-connection strategy then our open() method will
- activate us into a dedicate thread. The svc() method will then
- execute in that thread performing some of the functions we used to
- leave up to the reactor. */</font>
- int svc (void);
-
- <font color=red>/* This has nothing at all to do with ACE. I've added this here as
- a worker function which I will call from handle_input(). That
- allows me to introduce concurrencly in later tutorials with a no
- changes to the worker function. You can think of process() as
- application-level code and everything elase as
- application-framework code. */</font>
- int process (char *rdbuf, int rdbuf_len);
-
- <font color=red>/* We don't really do anything in our destructor but we've declared
- it to be protected to prevent casual deletion of this object. As
- I said above, I really would prefer that everyone goes through the
- destroy() method to get rid of us. */</font>
- ~Client_Handler (void);
-
- <font color=red>/* When we get to the definition of Client_Handler we'll see that
- there are several places where we go back to the Client_Acceptor
- for information. It is generally a good idea to do that through
- an accesor rather than using the member variable directly. */</font>
- Client_Acceptor *client_acceptor (void)
- {
- return this->client_acceptor_;
- }
-
- <font color=red>/* And since you shouldn't access a member variable directly,
- neither should you set (mutate) it. Although it might seem silly
- to do it this way, you'll thank yourself for it later. */</font>
- void client_acceptor (Client_Acceptor *_client_acceptor)
- {
- this->client_acceptor_ = _client_acceptor;
- }
-
- <font color=red>/* The concurrency() accessor tells us the current concurrency
- strategy. It actually queries the Client_Acceptor for it but by
- having the accessor in place, we could change our implementation
- without affecting everything that needs to know. */</font>
- int concurrency (void);
-
- <font color=red>/* Likewise for access to the Thread_Pool that we belong to. */</font>
- Thread_Pool * thread_pool (void);
-
- Client_Acceptor *client_acceptor_;
-
- <font color=red>/* For some reason I didn't create accessor/mutator methods for
- this. So much for consistency....
-
- This variable is used to remember the thread in which we were
- created: the "<font color=green>creator</font>" thread in other words. handle_input()
- needs to know if it is operating in the main reactor thread (which
- is the one that created us) or if it is operating in one of the
- thread pool threads. More on this when we get to handle_input(). */</font>
- ACE_thread_t creator_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* CLIENT_HANDLER_H */</font>
-</PRE>
-<HR WIDTH="100%">
-
-<P>Still, we're just not seeing a lot of changes due to introduction of
-the thread pool.&nbsp; That's a good thing! You don't want to go turning
-your application upside down just because you changed thread models.
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/007/page06.html b/docs/tutorials/007/page06.html
deleted file mode 100644
index 2da15db1278..00000000000
--- a/docs/tutorials/007/page06.html
+++ /dev/null
@@ -1,266 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 007</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 007</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-pool server</FONT></B></CENTER>
-<HR>
-
-<P><A HREF="client_handler.cpp">client_handler.cpp</A>
-shows some of the changes due to the thread-pool.&nbsp;&nbsp; Just a few
-though.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* Since this is the third time we've seen most of this, I'm going to
- strip out almost all of the comments that you've already seen.
- That way, you can concentrate on the new items. */</font>
-
-<font color=blue>#include</font> "<font color=green>client_acceptor.h</font>"
-<font color=blue>#include</font> "<font color=green>client_handler.h</font>"
-
-<font color=red>/* We're going to be registering and unregistering a couple of times.
- To make sure that we use the same flags every time, I've created
- these handy macros. */</font>
-<font color=blue>#define</font> <font color=purple>REGISTER_MASK</font> <font color=#008888>ACE_Event_Handler::READ_MASK</font>
-<font color=blue>#define</font> <font color=purple>REMOVE_MASK</font> (<font color=#008888>ACE_Event_Handler::READ_MASK</font> | ACE_Event_Handler::DONT_CALL)
-
-<font color=red>/* Our constructor still doesn't really do anything. We simply
- initialize the acceptor pointer to "<font color=green>null</font>" and get our current
- thread id. The static self() method of ACE_Thread will return you
- a thread id native to your platform. */</font>
-<font color=#008888>Client_Handler::Client_Handler</font> (void)
- : client_acceptor_(0),
- creator_ (<font color=#008888>ACE_Thread::self</font> ())
-{
-}
-
-<font color=#008888>Client_Handler::~Client_Handler</font> (void)
-{
- this->peer().close();
-}
-
-<font color=red>/* Query our acceptor for the concurrency strategy. Notice that we
- don't bother to check that our acceptor pointer is valid. That is
- proably a bad idea... */</font>
-int
-<font color=#008888>Client_Handler::concurrency</font>(void)
-{
- return this->client_acceptor ()->concurrency ();
-}
-
-<font color=red>/* And here we ask the acceptor about the thread pool. */</font>
-Thread_Pool *
-<font color=#008888>Client_Handler::thread_pool</font> (void)
-{
- return this->client_acceptor ()->thread_pool ();
-}
-
-<font color=red>/* Back to our open() method. This is straight out of Tutorial 6.
- There's nothing additional here for the thread-pool implementation. */</font>
-int
-<font color=#008888>Client_Handler::open</font> (void *acceptor)
-{
- client_acceptor ((Client_Acceptor *) acceptor);
-
- if (concurrency () == <font color=#008888>Client_Acceptor::thread_per_connection_</font>)
- return this->activate (THR_DETACHED);
-
- this->reactor (client_acceptor()->reactor ());
-
- ACE_INET_Addr addr;
-
- if (this->peer ().get_remote_addr (addr) == -1)
- return -1;
-
- if (this->reactor ()->register_handler (this,
- REGISTER_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) can't register with reactor\n</font>"),
- -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) connected with %s\n</font>",
- addr.get_host_name ()));
- return 0;
-}
-
-<font color=red>/* The destroy() method will remove us from the reactor (with the
- DONT_CALL flag set!) and then free our memory. This allows us to
- be closed from outside of the reactor context without any danger. */</font>
-void
-<font color=#008888>Client_Handler::destroy</font> (void)
-{
- this->reactor ()->remove_handler (this, REMOVE_MASK);
- delete this;
-}
-
-<font color=red>/* As mentioned in the header, the typical way to close an object in a
- threaded context is to invoke it's close() method. */</font>
-int
-<font color=#008888>Client_Handler::close</font> (u_long flags)
-{
- ACE_UNUSED_ARG(flags);
-
- <font color=red>/*
- We use the destroy() method to clean up after ourselves.
- That will take care of removing us from the reactor and then
- freeing our memory.
- */</font>
- this->destroy ();
-
- <font color=red>/* Don't forward the close() to the baseclass! handle_close() above
- has already taken care of delete'ing. Forwarding close() would
- cause that to happen again and things would get really ugly at
- that point! */</font>
- return 0;
-}
-
-<font color=red>/* We will be called when handle_input() returns -1. That's our queue
- to delete ourselves to prevent memory leaks. */</font>
-int
-<font color=#008888>Client_Handler::handle_close</font> (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (mask);
-
- delete this;
-
- return 0;
-}
-
-<font color=red>/* In the open() method, we registered with the reactor and requested
- to be notified when there is data to be read. When the reactor
- sees that activity it will invoke this handle_input() method on us.
- As I mentioned, the _handle parameter isn't useful to us but it
- narrows the list of methods the reactor has to worry about and the
- list of possible virtual functions we would have to override.
-
- You've read that much before... Now we have to do some extra stuff
- in case we're using the thread-pool implementation. If we're
- called by our creator thread then we must be in the reactor. In
- that case, we arrange to be put into the thread pool. If we're not
- in the creator thread then we must be in the thread pool and we can
- do some work. */</font>
-int
-<font color=#008888>Client_Handler::handle_input</font> (ACE_HANDLE handle)
-{
- ACE_UNUSED_ARG (handle);
-
- <font color=red>/* Check our strategy. If we're using the thread pool and we're in
- the creation thread then we know we were called by the reactor. */</font>
- if (concurrency () == <font color=#008888>Client_Acceptor::thread_pool_</font>)
- {
- if (<font color=#008888>ACE_OS::thr_equal</font> (ACE_Thread::self(),
- creator_))
- {
- <font color=red>/* Remove ourselves from the reactor and ask to be put into
- the thread pool's queue of work. (You should be able to
- use suspend_handler() but I've had problems with that.)
-
- By removing ourselves from the reactor, we're guaranteed
- that we won't be called back until the thread pool picks
- us up out of the queue. If we didn't remove ourselves,
- then the reactor would continue to invoke handle_input()
- and we don't want that to happen. */</font>
- this->reactor ()->remove_handler (this, REMOVE_MASK);
- return this->thread_pool ()->enqueue (this);
- }
- }
-
- <font color=red>/* Any strategy other than thread-per-connection will eventually get
- here. If we're in the single-threaded implementation or the
- thread-pool, we still have to pass this way. */</font>
-
- char buf[BUFSIZ];
-
- <font color=red>/* Invoke the process() method to do the work but save it's return
- value instead of returning it immediately. */</font>
-
- int rval = this->process (buf, sizeof (buf));
-
- <font color=red>/* Now, we look again to see if we're in the thread-pool
- implementation. If so then we need to re-register ourselves with
- the reactor so that we can get more work when it is available.
- (If suspend_handler() worked then we would use resume_handler()
- here.) */</font>
- if (concurrency () == <font color=#008888>Client_Acceptor::thread_pool_</font>)
- {
- if (rval != -1)
- <font color=red>/* If we don't remember to re-register ourselves, then we
- won't be able to respond to any future client requests. */</font>
- this->reactor ()->register_handler (this,
- REGISTER_MASK);
- }
-
- <font color=red>/* Return the result of process() */</font>
- return rval;
-}
-
-<font color=red>/* Remember that when we leave our svc() method, the framework will
- take care of calling our close() method so that we can cleanup
- after ourselves. */</font>
-int
-<font color=#008888>Client_Handler::svc</font> (void)
-{
- char buf[BUFSIZ];
-
- while (1)
- if (this->process (buf, sizeof (buf)) == -1)
- return -1;
-
- return 0;
-}
-
-<font color=red>/* Once again, we see that the application-level logic has not been at
- all affected by our choice of threading models. Of course, I'm not
- sharing data between threads or anything. We'll leave locking
- issues for a later tutorial. */</font>
-int
-<font color=#008888>Client_Handler::process</font> (char *rdbuf,
- int rdbuf_len)
-{
- ssize_t bytes_read;
- switch ( (bytes_read = this->peer ().recv (rdbuf, rdbuf_len)) )
- {
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) %p bad read\n</font>",
- "<font color=green>client</font>"),
- -1);
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) closing daemon (fd = %d)\n</font>",
- this->get_handle ()),
- -1);
- default:
- rdbuf[bytes_read] = 0;
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) from client: %s</font>",
- rdbuf));
- }
-
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-
-<P>Ok, now we've gone and changed handle_input() so that it knows when
-to do work and when to enqueue itself.&nbsp; Beyond that, we're still about
-the same.
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page07.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/007/page07.html b/docs/tutorials/007/page07.html
deleted file mode 100644
index 52f6ecfac70..00000000000
--- a/docs/tutorials/007/page07.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 007</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 007</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-pool server</FONT></B></CENTER>
-<HR>
-<P>Two new files this time.&nbsp; The first is <A HREF="thread_pool.h">thread_pool.h</A>
-where we declare our Thread_Pool object.&nbsp; This is responsible for
-abstracting away the thread pool implementation details and allowing us
-to make so few changes to the rest of the code.
-
-<P>
-<HR WIDTH="100%"><FONT FACE="Arial,Helvetica"></FONT>
-
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>THREAD_POOL_H</font>
-<font color=blue>#define</font> <font color=purple>THREAD_POOL_H</font>
-
-<font color=red>/* In order to implement a thread pool, we have to have an object that
- can create a thread. The ACE_Task&lt;> is the basis for doing just
- such a thing. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/Task.h">ace/Task.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=red>/* We need a forward reference for ACE_Event_Handler so that our
- enqueue() method can accept a pointer to one. */</font>
-class ACE_Event_Handler;
-
-<font color=red>/* Although we modified the rest of our program to make use of the
- thread pool implementation, if you look closely you'll see that the
- changes were rather minor. The "<font color=green>ACE way</font>" is generally to create a
- helper object that abstracts away the details not relevant to your
- application. That's what I'm trying to do here by creating the
- Thread_Pool object. */</font>
-class Thread_Pool : public ACE_Task&lt;ACE_MT_SYNCH>
-{
-public:
- typedef ACE_Task&lt;ACE_MT_SYNCH> inherited;
-
- <font color=red>/* Provide an enumeration for the default pool size. By doing this,
- other objects can use the value when they want a default. */</font>
- enum size_t
- {
- default_pool_size_ = 5
- };
-
- <font color=red>// Basic constructor</font>
- Thread_Pool (void);
-
- <font color=red>/* Opening the thread pool causes one or more threads to be
- activated. When activated, they all execute the svc() method
- declared below. */</font>
- int open (int pool_size = default_pool_size_);
-
- <font color=red>/* Some compilers will complain that our open() above attempts to
- override a virtual function in the baseclass. We have no
- intention of overriding that method but in order to keep the
- compiler quiet we have to add this method as a pass-thru to the
- baseclass method. */</font>
- virtual int open (void *void_data)
- {
- return <font color=#008888>inherited::open</font> (void_data);
- }
-
- <font color=red>/*
- */</font>
- virtual int close (u_long flags = 0);
-
- <font color=red>/* To use the thread pool, you have to put some unit of work into
- it. Since we're dealing with event handlers (or at least their
- derivatives), I've chosen to provide an enqueue() method that
- takes a pointer to an ACE_Event_Handler. The handler's
- handle_input() method will be called, so your object has to know
- when it is being called by the thread pool. */</font>
- int enqueue (ACE_Event_Handler *handler);
-
- <font color=red>/* Another handy ACE template is ACE_Atomic_Op&lt;>. When
- parameterized, this allows is to have a thread-safe counting
- object. The typical arithmetic operators are all internally
- thread-safe so that you can share it across threads without
- worrying about any contention issues. */</font>
- typedef ACE_Atomic_Op&lt;ACE_Mutex, int> counter_t;
-
-protected:
-
- <font color=red>/* Our svc() method will dequeue the enqueued event handler objects
- and invoke the handle_input() method on each. Since we're likely
- running in more than one thread, idle threads can take work from
- the queue while other threads are busy executing handle_input() on
- some object. */</font>
- int svc (void);
-
- <font color=red>/* We use the atomic op to keep a count of the number of threads in
- which our svc() method is running. This is particularly important
- when we want to close() it down! */</font>
- counter_t active_threads_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* THREAD_POOL_H */</font>
-</PRE>
-<HR WIDTH="100%">
-
-<P>Well, that doesn't look too complex.&nbsp; What about the implementation?
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page08.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/007/page08.html b/docs/tutorials/007/page08.html
deleted file mode 100644
index 09db461fe37..00000000000
--- a/docs/tutorials/007/page08.html
+++ /dev/null
@@ -1,282 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 007</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 007</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-pool server</FONT></B></CENTER>
-<HR>
-
-<P>Finally, <A HREF="thread_pool.cpp">thread_pool.cpp</A>
-where we have the Thread_Pool object implementation.
-<P>
-Remember back in <A HREF="../006/page01.html">Tutorial 6</A> when I
- was talking about <i>THR_NEW_LWP</i>? Look closely and you'll
- see it here. It's bitwise OR'd with <i>THR_DETACHED</i> just to
- keep things interesting.
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>thread_pool.h</font>"
-
-<font color=red>/* We need this header so that we can invoke handle_input() on the
- objects we dequeue. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/Event_Handler.h">ace/Event_Handler.h</A>"
-
-<font color=red>/* All we do here is initialize our active thread counter. */</font>
-<font color=#008888>Thread_Pool::Thread_Pool</font> (void)
- : active_threads_ (0)
-{
-}
-
-<font color=red>/* Our open() method is a thin disguise around the ACE_Task&lt;>
- activate() method. By hiding activate() in this way, the users of
- Thread_Pool don't have to worry about the thread configuration
- flags. */</font>
-int
-<font color=#008888>Thread_Pool::open</font> (int pool_size)
-{
- return this->activate (THR_NEW_LWP|THR_DETACHED, pool_size);
-}
-
-<font color=red>/* Closing the thread pool can be a tricky exercise. I've decided to
- take an easy approach and simply enqueue a secret message for each
- thread we have active. */</font>
-int
-<font color=#008888>Thread_Pool::close</font> (u_long flags)
-{
- ACE_UNUSED_ARG(flags);
-
- <font color=red>/* Find out how many threads are currently active */</font>
- int counter = active_threads_.value ();
-
- <font color=red>/* For each one of the active threads, enqueue a "<font color=green>null</font>" event
- handler. Below, we'll teach our svc() method that "<font color=green>null</font>" means
- "<font color=green>shutdown</font>". */</font>
- while (counter--)
- this->enqueue (0);
-
- <font color=red>/* As each svc() method exits, it will decrement the active thread
- counter. We just wait here for it to reach zero. Since we don't
- know how long it will take, we sleep for a quarter of a second
- between tries. */</font>
- while (active_threads_.value ())
- <font color=#008888>ACE_OS::sleep</font> (ACE_Time_Value (0, 250000));
-
- return(0);
-}
-
-<font color=red>/* When an object wants to do work in the pool, it should call the
- enqueue() method. We introduce the ACE_Message_Block here but,
- unfortunately, we seriously misuse it. */</font>
-int
-<font color=#008888>Thread_Pool::enqueue</font> (ACE_Event_Handler *handler)
-{
- <font color=red>/* An ACE_Message_Block is a chunk of data. You put them into an
- ACE_Message_Queue. ACE_Task&lt;> has an ACE_Message_Queue built in.
- In fact, the parameter to ACE_Task&lt;> is passed directly to
- ACE_Message_Queue. If you look back at our header file you'll see
- that we used ACE_MT_SYNCH as the parameter indicating that we want
- MultiThread Synch safety. This allows us to safely put
- ACE_Message_Block objects into the message queue in one thread and
- take them out in another. */</font>
-
- <font color=red>/* An ACE_Message_Block wants to have char* data. We don't have
- that. We could cast our ACE_Event_Handler* directly to a char*
- but I wanted to be more explicit. Since casting pointers around
- is a dangerous thing, I've gone out of my way here to be very
- clear about what we're doing.
-
- First: Cast the handler pointer to a void pointer. You can't do
- any useful work on a void pointer, so this is a clear message that
- we're making the pointer unusable.
-
- Next: Cast the void pointer to a char pointer that the ACE_Message_Block will accept. */</font>
- void *v_data = (void *) handler;
- char *c_data = (char *) v_data;
-
- ACE_Message_Block *mb;
-
- <font color=red>/* Construct a new ACE_Message_Block. For efficiency, you might
- want to preallocate a stack of these and reuse them. For
- simplicity, I'll just create what I need as I need it. */</font>
- ACE_NEW_RETURN (mb,
- ACE_Message_Block (c_data),
- -1);
-
- <font color=red>/* Our putq() method is a wrapper around one of the enqueue methods
- of the ACE_Message_Queue that we own. Like all good methods, it
- returns -1 if it fails for some reason. */</font>
- if (this->putq (mb) == -1)
- {
- <font color=red>/* Another trait of the ACE_Message_Block objects is that they
- are reference counted. Since they're designed to be passed
- around between various objects in several threads we can't
- just delete them whenever we feel like it. The release()
- method is similar to the destroy() method we've used
- elsewhere. It watches the reference count and will delete the
- object when possible. */</font>
- mb->release ();
- return -1;
- }
-
- return 0;
-}
-
-<font color=red>/* The "<font color=green>guard</font>" concept is very powerful and used throughout
- multi-threaded applications. A guard normally does some operation
- on an object at construction and the "<font color=green>opposite</font>" operation at
- destruction. For instance, when you guard a mutex (lock) object,
- the guard will acquire the lock on construction and release it on
- destruction. In this way, your method can simply let the guard go
- out of scope and know that the lock is released.
-
- Guards aren't only useful for locks however. In this application
- I've created two guard objects for quite a different purpose. */</font>
-
-<font color=red>/* The Counter_Guard is constructed with a reference to the thread
- pool's active thread counter. The guard increments the counter
- when it is created and decrements it at destruction. By creating
- one of these in svc(), I know that the counter will be decremented
- no matter how or where svc() returns. */</font>
-class Counter_Guard
-{
-public:
- Counter_Guard (<font color=#008888>Thread_Pool::counter_t</font> &counter)
- : counter_ (counter)
- {
- ++counter_;
- }
-
- ~Counter_Guard (void)
- {
- --counter_;
- }
-
-protected:
- <font color=#008888>Thread_Pool::counter_t</font> &counter_;
-};
-
-<font color=red>/* My Message_Block_Guard is also a little non-traditional. It
- doesn't do anything in the constructor but it's destructor ensures
- that the message block's release() method is called. This is a
- cheap way to prevent a memory leak if I need an additional exit
- point in svc(). */</font>
-class Message_Block_Guard
-{
-public:
- Message_Block_Guard (ACE_Message_Block *&mb)
- : mb_ (mb)
- {
- }
-
- ~Message_Block_Guard (void)
- {
- mb_->release ();
- }
-
-protected:
- ACE_Message_Block *&mb_;
-};
-
-<font color=red>/* Now we come to the svc() method. As I said, this is being executed
- in each thread of the Thread_Pool. Here, we pull messages off of
- our built-in ACE_Message_Queue and cause them to do work. */</font>
-int
-<font color=#008888>Thread_Pool::svc</font> (void)
-{
- <font color=red>/* The getq() method takes a reference to a pointer. So... we need
- a pointer to give it a reference to. */</font>
- ACE_Message_Block *mb;
-
- <font color=red>/* Create the guard for our active thread counter object. No matter
- where we choose to return() from svc(), we now know that the
- counter will be decremented. */</font>
- Counter_Guard counter_guard (active_threads_);
-
- <font color=red>/* Get messages from the queue until we have a failure. There's no
- real good reason for failure so if it happens, we leave
- immediately. */</font>
- while (this->getq (mb) != -1)
- {
- <font color=red>/* A successful getq() will cause "<font color=green>mb</font>" to point to a valid
- refernce-counted ACE_Message_Block. We use our guard object
- here so that we're sure to call the release() method of that
- message block and reduce it's reference count. Once the count
- reaches zero, it will be deleted. */</font>
- Message_Block_Guard message_block_guard (mb);
-
- <font color=red>/* As noted before, the ACE_Message_Block stores it's data as a
- char*. We pull that out here and later turn it into an
- ACE_Event_Handler* */</font>
- char *c_data = mb->base ();
-
- <font color=red>/* We've chosen to use a "<font color=green>null</font>" value as an indication to leave.
- If the data we got from the queue is not null then we have
- some work to do. */</font>
- if (c_data)
- {
- <font color=red>/* Once again, we go to great lengths to emphasize the fact
- that we're casting pointers around in rather impolite
- ways. We could have cast the char* directly to an
- ACE_Event_Handler* but then folks might think that's an OK
- thing to do.
-
- (Note: The correct way to use an ACE_Message_Block is to
- write data into it. What I should have done was create a
- message block big enough to hold an event handler pointer
- and then written the pointer value into the block. When
- we got here, I would have to read that data back into a
- pointer. While politically correct, it is also a lot of
- work. If you're careful you can get away with casting
- pointers around.) */</font>
- void *v_data = (void *) c_data;
-
- ACE_Event_Handler *handler = (ACE_Event_Handler *) v_data;
-
- <font color=red>/* Now that we finally have an event handler pointer, invoke
- it's handle_input() method. Since we don't know it's
- handle, we just give it a default. That's OK because we
- know that we're not using the handle in the method anyway. */</font>
- if (handler->handle_input (ACE_INVALID_HANDLE) == -1)
- {
- <font color=red>/* Tell the handler that it's time to go home. The
- "<font color=green>normal</font>" method for shutting down a handler whose
- handler failed is to invoke handle_close(). This will
- take care of cleaning it up for us. Notice how we use
- the handler's get_handle() method to populate it's
- "<font color=green>handle</font>" parameter. Convenient isn't it? */</font>
- handler->handle_close (handler->get_handle (), 0);
-
- <font color=red>/* Also notice that we don't exit the svc() method here!
- The first time I did this, I was exiting. After a few
- clients disconnect you have an empty thread pool.
- Hard to do any more work after that... */</font>
- }
- }
- else
- <font color=red>/* If we get here, we were given a message block with "<font color=green>null</font>"
- data. That is our signal to leave, so we return(0) to
- leave gracefully. */</font>
- return 0; <font color=red>// Ok, shutdown request</font>
-
- <font color=red>// message_block_guard goes out of scope here and releases the</font>
- <font color=red>// message_block instance.</font>
- }
-
- return 0;
-}
-
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page09.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/007/page09.html b/docs/tutorials/007/page09.html
deleted file mode 100644
index a80bf7036ad..00000000000
--- a/docs/tutorials/007/page09.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <META NAME="Description" CONTENT="A first step towards using ACE productively">
- <TITLE>ACE Tutorial 007</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 007</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Creating a thread-pool server</FONT></B></CENTER>
-<HR>
-
-<P>That's it for Tutorial 7.&nbsp; As with Tutorial 6, we really didn't
-have to change much to introduce a new threading strategy.&nbsp; Most of
-the work was in creating the Thread_Pool object itself.&nbsp; Everything
-else was just minor housekeeping.
-
-<P>There is a fourth common thread strategy:&nbsp; thread-per-request.&nbsp;
-It's not one of my favorites, so I wasn't planning to go into it.&nbsp;
-If you want to contribute a tutorial on that topic though, I'll be glad
-to include it here.
-
-<P>For reference, here's the file list again:
-<UL>
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-
-<LI>
-<A HREF="client_acceptor.h">client_acceptor.h</A></LI>
-
-<LI>
-<A HREF="client_acceptor.cpp">client_acceptor.cpp</A></LI>
-
-<LI>
-<A HREF="client_handler.cpp">client_handler.cpp</A></LI>
-
-<LI>
-<A HREF="client_handler.h">client_handler.h</A></LI>
-
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-
-<LI>
-<A HREF="thread_pool.h">thread_pool.h</A></LI>
-
-<LI>
-<A HREF="thread_pool.cpp">thread_pool.cpp</A></LI>
-
-</UL>
-<P>
-<HR WIDTH="100%">
-<P>
-<center><h2>Danger, Warning!</h2></center>
-Now that I've gone through all of this to create a thread pool server,
-I have to point out that this isn't exactly the best or safest way to
-do so. The biggest danger we face with this approach is the
-possibility of an event handler existing in the thread pool's message
-queue <i>after</i> it has been deleted. When the thread's svc()
-method attempts to invoke <i>handle_input()</i> you will get a nasty
-core dump.
-<p>
-The safest way to handle the situation is to use reference-counted
-pointers everywhere a Client_Handler pointer would be used. That's
-beyond the scope of the tutorial but I encourage you to give it a
-try. If you want to contribute that back as an enhanced Tutorial,
-I'll be glad to include it.
-<p>
-Another approach that should work quite well is to use the
-ACE_TP_Reactor instead of just ACE_Reactor. This takes a little more
-setup but results in a cleaner implementation. Again, I've not had
-time to develop a Tutorial on the TP_Reactor but would welcome any
-contributions.
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/007/server.cpp b/docs/tutorials/007/server.cpp
deleted file mode 100644
index 4e61be6f23a..00000000000
--- a/docs/tutorials/007/server.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-// $Id$
-
-/* We try to keep main() very simple. One of the ways we do that is
- to push much of the complicated stuff into worker objects. In this
- case, we only need to include the acceptor header in our main
- source file. We let it worry about the "real work". */
-
-#include "client_acceptor.h"
-
-/* As before, we create a simple signal handler that will set our
- finished flag. There are, of course, more elegant ways to handle
- program shutdown requests but that isn't really our focus right
- now, so we'll just do the easiest thing. */
-
-static sig_atomic_t finished = 0;
-extern "C" void handler (int)
-{
- finished = 1;
-}
-
-/* A server has to listen for clients at a known TCP/IP port. The
- default ACE port is 10002 (at least on my system) and that's good
- enough for what we want to do here. Obviously, a more robust
- application would take a command line parameter or read from a
- configuration file or do some other clever thing. Just like the
- signal handler above, though, that's what we want to focus on, so
- we're taking the easy way out. */
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-/* Finally, we get to main. Some C++ compilers will complain loudly
- if your function signature doesn't match the prototype. Even
- though we're not going to use the parameters, we still have to
- specify them. */
-
-int
-main (int argc, char *argv[])
-{
- ACE_UNUSED_ARG(argc);
- ACE_UNUSED_ARG(argv);
-
- /* In our earlier servers, we used a global pointer to get to the
- reactor. I've never really liked that idea, so I've moved it into
- main() this time. When we get to the Client_Handler object you'll
- see how we manage to get a pointer back to this reactor. */
- ACE_Reactor reactor;
-
- /* The acceptor will take care of letting clients connect to us. It
- will also arrange for a Client_Handler to be created for each new
- client. Since we're only going to listen at one TCP/IP port, we
- only need one acceptor. If we wanted, though, we could create
- several of these and listen at several ports. (That's what we
- would do if we wanted to rewrite inetd for instance.) */
- Client_Acceptor peer_acceptor;
-
- /* Create an ACE_INET_Addr that represents our endpoint of a
- connection. We then open our acceptor object with that Addr.
- Doing so tells the acceptor where to listen for connections.
- Servers generally listen at "well known" addresses. If not, there
- must be some mechanism by which the client is informed of the
- server's address.
-
- Note how ACE_ERROR_RETURN is used if we fail to open the acceptor.
- This technique is used over and over again in our tutorials. */
- if (peer_acceptor.open (ACE_INET_Addr (PORT), &reactor) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- /* Install our signal handler. You can actually register signal
- handlers with the reactor. You might do that when the signal
- handler is responsible for performing "real" work. Our simple
- flag-setter doesn't justify deriving from ACE_Event_Handler and
- providing a callback function though. */
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
-
- /* Like ACE_ERROR_RETURN, the ACE_DEBUG macro gets used quite a bit.
- It's a handy way to generate uniform debug output from your
- program. */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) starting up server daemon\n"));
-
- /* This will loop "forever" invoking the handle_events() method of
- our reactor. handle_events() watches for activity on any
- registered handlers and invokes their appropriate callbacks when
- necessary. Callback-driven programming is a big thing in ACE, you
- should get used to it. If the signal handler catches something,
- the finished flag will be set and we'll exit. Conveniently
- enough, handle_events() is also interrupted by signals and will
- exit back to the while() loop. (If you want your event loop to
- not be interrupted by signals, checkout the <i>restart</i> flag on
- the open() method of ACE_Reactor if you're interested.) */
- while (!finished)
- reactor.handle_events ();
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) shutting down server daemon\n"));
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-template class ACE_Guard<ACE_Mutex>;
-template class ACE_Atomic_Op<ACE_Mutex, int>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#pragma instantiate ACE_Guard<ACE_Mutex>
-#pragma instantiate ACE_Atomic_Op<ACE_Mutex, int>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/docs/tutorials/007/thread_pool.cpp b/docs/tutorials/007/thread_pool.cpp
deleted file mode 100644
index 08302a6811f..00000000000
--- a/docs/tutorials/007/thread_pool.cpp
+++ /dev/null
@@ -1,252 +0,0 @@
-// $Id$
-
-#include "thread_pool.h"
-
-/* We need this header so that we can invoke handle_input() on the
- objects we dequeue. */
-#include "ace/Event_Handler.h"
-
-/* All we do here is initialize our active thread counter. */
-Thread_Pool::Thread_Pool (void)
- : active_threads_ (0)
-{
-}
-
-/* Our open() method is a thin disguise around the ACE_Task<>
- activate() method. By hiding activate() in this way, the users of
- Thread_Pool don't have to worry about the thread configuration
- flags. */
-int
-Thread_Pool::open (int pool_size)
-{
- return this->activate (THR_NEW_LWP|THR_DETACHED, pool_size);
-}
-
-/* Closing the thread pool can be a tricky exercise. I've decided to
- take an easy approach and simply enqueue a secret message for each
- thread we have active. */
-int
-Thread_Pool::close (u_long flags)
-{
- ACE_UNUSED_ARG(flags);
-
- /* Find out how many threads are currently active */
- int counter = active_threads_.value ();
-
- /* For each one of the active threads, enqueue a "null" event
- handler. Below, we'll teach our svc() method that "null" means
- "shutdown". */
- while (counter--)
- this->enqueue (0);
-
- /* As each svc() method exits, it will decrement the active thread
- counter. We just wait here for it to reach zero. Since we don't
- know how long it will take, we sleep for a quarter of a second
- between tries. */
- while (active_threads_.value ())
- ACE_OS::sleep (ACE_Time_Value (0, 250000));
-
- return(0);
-}
-
-/* When an object wants to do work in the pool, it should call the
- enqueue() method. We introduce the ACE_Message_Block here but,
- unfortunately, we seriously misuse it. */
-int
-Thread_Pool::enqueue (ACE_Event_Handler *handler)
-{
- /* An ACE_Message_Block is a chunk of data. You put them into an
- ACE_Message_Queue. ACE_Task<> has an ACE_Message_Queue built in.
- In fact, the parameter to ACE_Task<> is passed directly to
- ACE_Message_Queue. If you look back at our header file you'll see
- that we used ACE_MT_SYNCH as the parameter indicating that we want
- MultiThread Synch safety. This allows us to safely put
- ACE_Message_Block objects into the message queue in one thread and
- take them out in another. */
-
- /* An ACE_Message_Block wants to have char* data. We don't have
- that. We could cast our ACE_Event_Handler* directly to a char*
- but I wanted to be more explicit. Since casting pointers around
- is a dangerous thing, I've gone out of my way here to be very
- clear about what we're doing.
-
- First: Cast the handler pointer to a void pointer. You can't do
- any useful work on a void pointer, so this is a clear message that
- we're making the pointer unusable.
-
- Next: Cast the void pointer to a char pointer that the ACE_Message_Block will accept. */
- void *v_data = (void *) handler;
- char *c_data = (char *) v_data;
-
- ACE_Message_Block *mb;
-
- /* Construct a new ACE_Message_Block. For efficiency, you might
- want to preallocate a stack of these and reuse them. For
- simplicity, I'll just create what I need as I need it. */
- ACE_NEW_RETURN (mb,
- ACE_Message_Block (c_data),
- -1);
-
- /* Our putq() method is a wrapper around one of the enqueue methods
- of the ACE_Message_Queue that we own. Like all good methods, it
- returns -1 if it fails for some reason. */
- if (this->putq (mb) == -1)
- {
- /* Another trait of the ACE_Message_Block objects is that they
- are reference counted. Since they're designed to be passed
- around between various objects in several threads we can't
- just delete them whenever we feel like it. The release()
- method is similar to the destroy() method we've used
- elsewhere. It watches the reference count and will delete the
- object when possible. */
- mb->release ();
- return -1;
- }
-
- return 0;
-}
-
-/* The "guard" concept is very powerful and used throughout
- multi-threaded applications. A guard normally does some operation
- on an object at construction and the "opposite" operation at
- destruction. For instance, when you guard a mutex (lock) object,
- the guard will acquire the lock on construction and release it on
- destruction. In this way, your method can simply let the guard go
- out of scope and know that the lock is released.
-
- Guards aren't only useful for locks however. In this application
- I've created two guard objects for quite a different purpose. */
-
-/* The Counter_Guard is constructed with a reference to the thread
- pool's active thread counter. The guard increments the counter
- when it is created and decrements it at destruction. By creating
- one of these in svc(), I know that the counter will be decremented
- no matter how or where svc() returns. */
-class Counter_Guard
-{
-public:
- Counter_Guard (Thread_Pool::counter_t &counter)
- : counter_ (counter)
- {
- ++counter_;
- }
-
- ~Counter_Guard (void)
- {
- --counter_;
- }
-
-protected:
- Thread_Pool::counter_t &counter_;
-};
-
-/* My Message_Block_Guard is also a little non-traditional. It
- doesn't do anything in the constructor but it's destructor ensures
- that the message block's release() method is called. This is a
- cheap way to prevent a memory leak if I need an additional exit
- point in svc(). */
-class Message_Block_Guard
-{
-public:
- Message_Block_Guard (ACE_Message_Block *&mb)
- : mb_ (mb)
- {
- }
-
- ~Message_Block_Guard (void)
- {
- mb_->release ();
- }
-
-protected:
- ACE_Message_Block *&mb_;
-};
-
-/* Now we come to the svc() method. As I said, this is being executed
- in each thread of the Thread_Pool. Here, we pull messages off of
- our built-in ACE_Message_Queue and cause them to do work. */
-int
-Thread_Pool::svc (void)
-{
- /* The getq() method takes a reference to a pointer. So... we need
- a pointer to give it a reference to. */
- ACE_Message_Block *mb;
-
- /* Create the guard for our active thread counter object. No matter
- where we choose to return() from svc(), we now know that the
- counter will be decremented. */
- Counter_Guard counter_guard (active_threads_);
-
- /* Get messages from the queue until we have a failure. There's no
- real good reason for failure so if it happens, we leave
- immediately. */
- while (this->getq (mb) != -1)
- {
- /* A successful getq() will cause "mb" to point to a valid
- refernce-counted ACE_Message_Block. We use our guard object
- here so that we're sure to call the release() method of that
- message block and reduce it's reference count. Once the count
- reaches zero, it will be deleted. */
- Message_Block_Guard message_block_guard (mb);
-
- /* As noted before, the ACE_Message_Block stores it's data as a
- char*. We pull that out here and later turn it into an
- ACE_Event_Handler* */
- char *c_data = mb->base ();
-
- /* We've chosen to use a "null" value as an indication to leave.
- If the data we got from the queue is not null then we have
- some work to do. */
- if (c_data)
- {
- /* Once again, we go to great lengths to emphasize the fact
- that we're casting pointers around in rather impolite
- ways. We could have cast the char* directly to an
- ACE_Event_Handler* but then folks might think that's an OK
- thing to do.
-
- (Note: The correct way to use an ACE_Message_Block is to
- write data into it. What I should have done was create a
- message block big enough to hold an event handler pointer
- and then written the pointer value into the block. When
- we got here, I would have to read that data back into a
- pointer. While politically correct, it is also a lot of
- work. If you're careful you can get away with casting
- pointers around.) */
- void *v_data = (void *) c_data;
-
- ACE_Event_Handler *handler = (ACE_Event_Handler *) v_data;
-
- /* Now that we finally have an event handler pointer, invoke
- it's handle_input() method. Since we don't know it's
- handle, we just give it a default. That's OK because we
- know that we're not using the handle in the method anyway. */
- if (handler->handle_input (ACE_INVALID_HANDLE) == -1)
- {
- /* Tell the handler that it's time to go home. The
- "normal" method for shutting down a handler whose
- handler failed is to invoke handle_close(). This will
- take care of cleaning it up for us. Notice how we use
- the handler's get_handle() method to populate it's
- "handle" parameter. Convenient isn't it? */
- handler->handle_close (handler->get_handle (), 0);
-
- /* Also notice that we don't exit the svc() method here!
- The first time I did this, I was exiting. After a few
- clients disconnect you have an empty thread pool.
- Hard to do any more work after that... */
- }
- }
- else
- /* If we get here, we were given a message block with "null"
- data. That is our signal to leave, so we return(0) to
- leave gracefully. */
- return 0; // Ok, shutdown request
-
- // message_block_guard goes out of scope here and releases the
- // message_block instance.
- }
-
- return 0;
-}
-
diff --git a/docs/tutorials/007/thread_pool.h b/docs/tutorials/007/thread_pool.h
deleted file mode 100644
index 9686b5a29da..00000000000
--- a/docs/tutorials/007/thread_pool.h
+++ /dev/null
@@ -1,89 +0,0 @@
-// $Id$
-
-#ifndef THREAD_POOL_H
-#define THREAD_POOL_H
-
-/* In order to implement a thread pool, we have to have an object that
- can create a thread. The ACE_Task<> is the basis for doing just
- such a thing. */
-#include "ace/Task.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* We need a forward reference for ACE_Event_Handler so that our
- enqueue() method can accept a pointer to one. */
-class ACE_Event_Handler;
-
-/* Although we modified the rest of our program to make use of the
- thread pool implementation, if you look closely you'll see that the
- changes were rather minor. The "ACE way" is generally to create a
- helper object that abstracts away the details not relevant to your
- application. That's what I'm trying to do here by creating the
- Thread_Pool object. */
-class Thread_Pool : public ACE_Task<ACE_MT_SYNCH>
-{
-public:
- typedef ACE_Task<ACE_MT_SYNCH> inherited;
-
- /* Provide an enumeration for the default pool size. By doing this,
- other objects can use the value when they want a default. */
- enum size_t
- {
- default_pool_size_ = 5
- };
-
- // Basic constructor
- Thread_Pool (void);
-
- /* Opening the thread pool causes one or more threads to be
- activated. When activated, they all execute the svc() method
- declared below. */
- int open (int pool_size = default_pool_size_);
-
- /* Some compilers will complain that our open() above attempts to
- override a virtual function in the baseclass. We have no
- intention of overriding that method but in order to keep the
- compiler quiet we have to add this method as a pass-thru to the
- baseclass method. */
- virtual int open (void *void_data)
- {
- return inherited::open (void_data);
- }
-
- /*
- */
- virtual int close (u_long flags = 0);
-
- /* To use the thread pool, you have to put some unit of work into
- it. Since we're dealing with event handlers (or at least their
- derivatives), I've chosen to provide an enqueue() method that
- takes a pointer to an ACE_Event_Handler. The handler's
- handle_input() method will be called, so your object has to know
- when it is being called by the thread pool. */
- int enqueue (ACE_Event_Handler *handler);
-
- /* Another handy ACE template is ACE_Atomic_Op<>. When
- parameterized, this allows is to have a thread-safe counting
- object. The typical arithmetic operators are all internally
- thread-safe so that you can share it across threads without
- worrying about any contention issues. */
- typedef ACE_Atomic_Op<ACE_Mutex, int> counter_t;
-
-protected:
-
- /* Our svc() method will dequeue the enqueued event handler objects
- and invoke the handle_input() method on each. Since we're likely
- running in more than one thread, idle threads can take work from
- the queue while other threads are busy executing handle_input() on
- some object. */
- int svc (void);
-
- /* We use the atomic op to keep a count of the number of threads in
- which our svc() method is running. This is particularly important
- when we want to close() it down! */
- counter_t active_threads_;
-};
-
-#endif /* THREAD_POOL_H */
diff --git a/docs/tutorials/008/008-broadcast.dsp b/docs/tutorials/008/008-broadcast.dsp
deleted file mode 100644
index b7aafc7ba00..00000000000
--- a/docs/tutorials/008/008-broadcast.dsp
+++ /dev/null
@@ -1,102 +0,0 @@
-# Microsoft Developer Studio Project File - Name="008 broadcast" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=008 broadcast - 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 "008-broadcast.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 "008-broadcast.mak" CFG="008 broadcast - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "008 broadcast - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "008 broadcast - 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)" == "008 broadcast - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "008 broadcast - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"../broadcast_client.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "008 broadcast - Win32 Release"
-# Name "008 broadcast - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=broadcast_client.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/008/008-direct.dsp b/docs/tutorials/008/008-direct.dsp
deleted file mode 100644
index a8f6d2386ce..00000000000
--- a/docs/tutorials/008/008-direct.dsp
+++ /dev/null
@@ -1,102 +0,0 @@
-# Microsoft Developer Studio Project File - Name="008 direct" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=008 direct - 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 "008-direct.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 "008-direct.mak" CFG="008 direct - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "008 direct - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "008 direct - 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)" == "008 direct - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "008 direct - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"../directed_client.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "008 direct - Win32 Release"
-# Name "008 direct - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=directed_client.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/008/008-server.dsp b/docs/tutorials/008/008-server.dsp
deleted file mode 100644
index 8db64b2fa66..00000000000
--- a/docs/tutorials/008/008-server.dsp
+++ /dev/null
@@ -1,102 +0,0 @@
-# Microsoft Developer Studio Project File - Name="008 server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=008 server - 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 "008-server.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 "008-server.mak" CFG="008 server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "008 server - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "008 server - 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)" == "008 server - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "008 server - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"../server.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "008 server - Win32 Release"
-# Name "008 server - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/008/Makefile b/docs/tutorials/008/Makefile
deleted file mode 100644
index b595ecbc814..00000000000
--- a/docs/tutorials/008/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = server directed_client broadcast_client
-
-FILES =
-
-BUILD = $(VBIN)
-
-HDR = *.h
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -bli0 -l80 -fca -fc1 -cli0 -cdb < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
- # Don't put anything below here. Between the "depend" target and fix.Makefile
- # it's guaranteed to be lost!
-
- # This is inserted by the fix.Makefile script
-include .depend
diff --git a/docs/tutorials/008/broadcast_client.cpp b/docs/tutorials/008/broadcast_client.cpp
deleted file mode 100644
index 3176de032a2..00000000000
--- a/docs/tutorials/008/broadcast_client.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-// $Id$
-
-#include "ace/Log_Msg.h"
-#include "ace/SOCK_Dgram_Bcast.h"
-#include "ace/INET_Addr.h"
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int argc,char *argv[])
-{
- ACE_UNUSED_ARG(argc);
- ACE_UNUSED_ARG(argv);
-
- ACE_INET_Addr local ((u_short) 0);
-
- /* Instead of creating the ACE_SOCK_Dgram we created last time,
- we'll create an ACE_SOCK_Dgram_Bcast. "Bcast" means, of course,
- "Broadcast". This ACE object is clever enough to go out to the OS
- and find all of the network interfaces. When you send() on a
- Dgram_Bcast, it will send the datagram out on all of those
- interfaces. This is quiet handy if you do it on a multi-homed
- host that plays router... */
- ACE_SOCK_Dgram_Bcast dgram;
-
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "datagram open"),
- -1);
-
- char buf[BUFSIZ];
-
- sprintf (buf, "Hello World!");
-
- /* The only other difference between us and the directed client is
- that we don't specify a host to receive the datagram. Instead, we
- use the magic value "INADDR_BROADCAST". All hosts are obliged to
- respond to datagrams directed to this address the same as they
- would to datagrams sent to their hostname.
-
- Remember, the Dgram_Bcast will send a datagram to all interfaces
- on the host. That's true even if the address is for a specific
- host (and the host address makes sense for the interface). The
- real power is in using an INADDR_BROADCAST addressed datagram
- against all interfaces. */
-
- ACE_INET_Addr remote (PORT,
- INADDR_BROADCAST);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Sending (%s) to the server.\n",
- buf));
-
- if (dgram.send (buf,
- ACE_OS::strlen (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "send"),
- -1);
-
- if (dgram.recv (buf,
- sizeof (buf),
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "recv"),
- -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) The server said: %s\n",
- buf));
-
- /* Using the "remote" object instance, find out where the server
- lives. We could then save this address and use directed datagrams
- to chat with the server for a while. */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) The server can be found at: (%s:%d)\n",
- remote.get_host_name(),
- PORT));
-
- return 0;
-}
diff --git a/docs/tutorials/008/combine.shar b/docs/tutorials/008/combine.shar
deleted file mode 100644
index 972cbb7c6dd..00000000000
--- a/docs/tutorials/008/combine.shar
+++ /dev/null
@@ -1,465 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/008'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 515 -rw-rw-r-- hdr
-# 59 -rw-rw-r-- bodies
-# 2767 -rw-rw-r-- page01.pre
-# 416 -rw-rw-r-- page02.pre
-# 345 -rw-rw-r-- page03.pre
-# 481 -rw-rw-r-- page04.pre
-# 578 -rw-rw-r-- page05.pre
-# 952 -rw-rw-r-- page02.pst
-# 367 -rw-rw-r-- page03.pst
-# 1173 -rw-rw-r-- page04.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32494; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 008</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 008</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams</FONT></B></CENTER>
-X
-X
-<P>
-<HR WIDTH="100%">
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-e74ecd3335da844c263f961a8ba5f867 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 515 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '515,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-server.cpp
-directed_client.cpp
-broadcast_client.cpp
-SHAR_EOF
- $shar_touch -am 0121153799 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-707d1735ca25694e2b5fddc1f6e7e124 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 59 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '59,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-<P>In a lot of IPC&nbsp;programming, the clients know where the servers
-are.&nbsp; A mail client, for instance, has a configuration file that says
-where the mail host is.&nbsp; Your web browser has a "location" field that
-you type into to give it a destination.
-X
-<P>What if you have written a server application and then you execute it
-on several systems in your network?&nbsp; All of the instances are probably
-more or less equal to the client's point of view, so you don't want to
-"configure"&nbsp;the clients to a single server each.&nbsp; Likewise, you
-want the ability to add and remove servers at any time so you can't just
-give the clients a list to choose from.
-X
-<P>So... how do the clients know where the servers are?
-X
-<P>Let 'em ask!
-X
-<P>Datagrams are great for this.&nbsp; You can toss a datagram out onto
-the network and any servers listening at the correct port will* hear it.&nbsp;
-Like ACE_SOCK_Stream that we've seen before, you can get the peer address
-from a datagram.&nbsp; With that, the server can&nbsp; send a response
-back to the client.&nbsp; The client, in turn, can pull the peer address
-out and know exactly where the server lives.
-X
-<P>In this tutorial we'll develop three applications:&nbsp; a server listening
-for datagrams, a client that can send to a known host and a client that
-can send to the entire (sub)network.&nbsp; In the next tutorial, we'll
-expand on this to make the server a bit more prudish.
-<P>
-Kirthika's abstract:
-<UL>
-Here, we play with datagram sockets and use it for server discovery by
-the client. Datagrams are used by UDP, which is an unreliable and
-connectionless protocol. Datagrams packets are generally very small in
-size and aren't designed to be used to handle serious communication
-between the server and the client.
-<P>
-The server waits for datagrams to arrive at a fixed port.
-The client either sends to a datagram to the server at a known host,
-which is not really the case generally, as the client needs to discover
-the server and so it needs to broadcast its datagram request in its
-subnet. Then, all servers listening at that interface receive it. The
-appropriate server will then handle the request. Remember that
-no solid connection is made. On the recv() itself the server obtains the
-address of the remote client and then communicates with it.
-<P>
-Thus, we get a fair glimpse of using another means of communication via
-datagrams.
-</UL>
-<P><FONT SIZE=-1>*&nbsp;Actually, the servers <I>might</I> hear the datagram.&nbsp;
-Datagrams are rather unreliable.&nbsp; (Sort of like some operating systems
-I know.)&nbsp; Still, if the network traffic isn't too bad, they generally
-get through.&nbsp; Your clients can always send out more queries if there
-aren't any responses in a timely fashion.</FONT>
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-0773df98f89130f72767715ed27516b6 page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 2767 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '2767,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-X
-<P>The first thing we want to look at is <A HREF="server.cpp">server.cpp</A>.&nbsp;
-This is a pretty simple application that listens for datagrams at a known
-port and sends back a response.&nbsp; In order to implement a true "discovery"&nbsp;
-mechanism, the server will have to be a little bit more picky about who
-it responds to.&nbsp; We'll tackle that issue in the next tutorial though...
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-6b27ef52d53a13d2d9e5a5ad16e9be4d page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 416 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '416,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-X
-<P>In <A HREF="directed_client.cpp">directed_client.cpp</A> we create a
-client that knows how to send a datagram to a server on a known host.&nbsp;
-This is a good thing if you know where the server lives and want to have
-a conversation.&nbsp;&nbsp; The Unix <I>talk</I> utilitiy, for instance,
-could be written this way.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-aa0724ca0a09f5b5e6c7e3f355646111 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 345 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '345,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-In <A HREF="broadcast_client.cpp">broadcast_client.cpp</A> we
-find out how to send a single datagram to every host on our (sub)network.&nbsp;
-I have to say <I>(sub)network</I> because broadcast datagrams typically
-are not passed through routers.&nbsp; So, if your network admin has divided
-up your network into subnets, your broadcasts will likey stay on the
-subnet you're a part of.
-X
-<P>I've only commented the parts that are different from the directed_client.
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-8811bded669a7a7be85a4878d5076190 page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 481 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '481,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-<BR>That's it for this tutorial.&nbsp; In the next one we'll add some intelligence
-to the data put into the datagrams.&nbsp; By doing so, we'll be able to
-classify our clients and servers into groups.&nbsp; By combining the data
-content and the server's port we can get fairly fine-grained control over
-who talks to who.
-X
-<P>For you convenience:
-<UL>
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-X
-<LI>
-<A HREF="directed_client.cpp">directed_client.cpp</A></LI>
-X
-<LI>
-<A HREF="broadcast_client.cpp">broadcast_client.cpp</A></LI>
-X
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-</UL>
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-b05fdac8c7eb81813c74eb99525cf601 page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 578 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '578,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pst ==============
-if test -f 'page02.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pst' &&
-<HR WIDTH="100%">
-X
-<P>And that's really all there is to it.&nbsp; Obviously there is some
-room for improvement.&nbsp; The most blatant is the somewhat small buffer
-size for receiving the datagram.&nbsp; I've never been able to get a solid
-answer on datagram sizes.&nbsp; The theoretical limit is just under 64k
-but you have to deal with fragmentation.&nbsp; Some readings indicate that
-8k is a reasonable size, others go much smaller.&nbsp; My general rule
-of thumb is to keep datagrams relatively small (eg -- under 8k or so) and
-test a lot.&nbsp; If you find that your routers are fragmenting your larger
-datagrams, back off to something smaller.&nbsp; Of course, if you must
-send 100k and can only do so 1k at a time, you'll have to worry about retransmissions
-&amp; reordering.&nbsp; At that point, you might consider going to TCP.&nbsp;
-Remember:&nbsp; datagrams are unreliable!&nbsp; Don't try to make 'em do
-something they werent' designed for!
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pst' &&
- chmod 0664 'page02.pst' ||
- $echo 'restore of' 'page02.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pst:' 'MD5 check failed'
-3cb7da5f75a40616f6cc498a731f4a16 page02.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pst'`"
- test 952 -eq "$shar_count" ||
- $echo 'page02.pst:' 'original size' '952,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pst ==============
-if test -f 'page03.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pst' &&
-<HR WIDTH="100%">
-X
-<P>That's all neat and good but the point of what we're doing here is not
-to talk to a server we know about but to discover servers we don't know
-about.&nbsp; Now, you could send a directed datagram to every possible
-host address on your network but that's not a very nice thing to do.&nbsp;
-On the next page, we'll find out the right approach...
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pst' &&
- chmod 0664 'page03.pst' ||
- $echo 'restore of' 'page03.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pst:' 'MD5 check failed'
-0fcbc10be47175a0d42590fb4adab43b page03.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pst'`"
- test 367 -eq "$shar_count" ||
- $echo 'page03.pst:' 'original size' '367,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pst ==============
-if test -f 'page04.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pst' &&
-<HR WIDTH="100%">
-X
-<P>&nbsp;About that subnet thing:
-<BLOCKQUOTE>If you run this client on a host that has multiple network
-interfaces, the broadcast will go to all of those (sub)networks.&nbsp;
-What do you do, though, if you need to get past a router?&nbsp; My advice
-is to write a server that will run on hosts on both sides of your router.&nbsp;
-When a server on one side of the router receives a broadcast, it would
-send a directed datagram to it's counterpart on the other side of the router.&nbsp;
-The counterpart would then re-broadcast the original datagram on that sub-net.&nbsp;
-Cheap, simple and effective.</BLOCKQUOTE>
-One final word of warning:
-<BLOCKQUOTE>When creating your broadcast datagrams you may see something
-like this:&nbsp; <I>ACE_SOCK_Dgram_Bcast::mk_broadcast: Broadcast is not
-enable for this interface.: Unknown error</I>.&nbsp; There are some interfaces
-(ppp, slip) that don't support broadcast datagrams.&nbsp; That's what you're
-seeing here.</BLOCKQUOTE>
-Ok, one more warning:
-<blockquote>If you happen to have multiple servers running on your
-network when you invoke this client, the response could come from any
-one of them.
-</blockquote>
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pst' &&
- chmod 0664 'page04.pst' ||
- $echo 'restore of' 'page04.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pst:' 'MD5 check failed'
-2e01fc6b6638dfa77ed629c0e3e77e21 page04.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pst'`"
- test 1173 -eq "$shar_count" ||
- $echo 'page04.pst:' 'original size' '1173,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32494
-exit 0
diff --git a/docs/tutorials/008/directed_client.cpp b/docs/tutorials/008/directed_client.cpp
deleted file mode 100644
index d7c02f69dd3..00000000000
--- a/docs/tutorials/008/directed_client.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-// $Id$
-
-#include "ace/Log_Msg.h"
-#include "ace/SOCK_Dgram.h"
-#include "ace/INET_Addr.h"
-
-/* Once again, we use the default server port. In a "real" system,
- the server's port (or ports) would be published in some way so that
- clients would know where to "look". We could even add entries to
- the operating system's services file and use a service name instead
- of a number. We'll come back to that in some other tutorial
- though. For now, let's stay simple. */
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-/* Our goal here is to develop a client that can send a datagram to a
- server running on a known host. We'll use a command-line argument
- to specify the hostname instead of hard-coding it. */
-int
-main (int argc,char *argv[])
-{
- /* All datagrams must have a point of origin. Since we intend to
- transmit instead of receive, we initialize an address with zero
- and let the OS choose a port for us. We could have chosen our own
- value between 1025 and 65535 as long as it isn't already in use.
-
- The biggest difference between client and server when datagrams
- are used is the fact that servers tend to have a known/fixed
- address at which they listen and clients tend to have arbitrary
- addresses assigned by the OS. */
- ACE_INET_Addr local((u_short) 0);
-
- /* And here is our datagram object. */
- ACE_SOCK_Dgram dgram;
-
- /* Notice that this looks a lot like the server application.
- There's no difference in creating server datagrams an client
- datagrams. You can even use a zero-constructed address for your
- server datagram as long as you tell the client where you're
- listening (eg -- by writting into a file or some such). */
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "datagram open"),
- -1);
-
- /* Yep. We've seen this before too... */
- char buf[BUFSIZ];
-
- /* Ok, now we're doing something different. */
- sprintf (buf, "Hello World!");
-
- /* Just like sending a telegram, we have to address our datagram.
- Here, we create an address object at the desired port on the
- chosen host. To keep us from crashing, we'll provide a default
- host name if we aren't given one. */
- ACE_INET_Addr remote (PORT,
- argc > 1 ? argv[1] : "localhost");
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Sending (%s) to the server.\n",
- buf));
- /* Now we send our buffer of stuff to the remote address. This is
- just exactly what the server did after receiving a client message.
- Datagrams are rather orthogonal that way: they don't generally
- make much of a fuss about being either client or server. */
- if (dgram.send (buf,
- ACE_OS::strlen (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "send"),
- -1);
-
- /* Now we've turned around and put ourselves into "server mode" by
- invoking the recv() method. We know our server is going to send
- us something, so we hang out here and wait for it. Because we
- know datagrams are unreliable, there is a chance that the server
- will respond but we won't hear. You might consider providing a
- timeout on the recv() in that case. If recv() fails due to
- timeout it will return -1 and you can then resend your query and
- attempt the recv() again.
-
- Like the server application, we have to give the recv() an
- uninitialized addr object so that we can find out who is talking
- back to us. */
- if (dgram.recv (buf,
- sizeof (buf),
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "recv"),
- -1);
-
- /* Find out what the server had to say. */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) The server said: %s\n",
- buf));
-
- /* Using the "remote" object instance, find out where the server
- lives. We could then save this address and use directed datagrams
- to chat with the server for a while. */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) The server can be found at: (%s:%d)\n",
- remote.get_host_name(),
- PORT));
-
- return 0;
-}
diff --git a/docs/tutorials/008/page01.html b/docs/tutorials/008/page01.html
deleted file mode 100644
index 602ccdbf4a5..00000000000
--- a/docs/tutorials/008/page01.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 008</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 008</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>In a lot of IPC&nbsp;programming, the clients know where the servers
-are.&nbsp; A mail client, for instance, has a configuration file that says
-where the mail host is.&nbsp; Your web browser has a "location" field that
-you type into to give it a destination.
-
-<P>What if you have written a server application and then you execute it
-on several systems in your network?&nbsp; All of the instances are probably
-more or less equal to the client's point of view, so you don't want to
-"configure"&nbsp;the clients to a single server each.&nbsp; Likewise, you
-want the ability to add and remove servers at any time so you can't just
-give the clients a list to choose from.
-
-<P>So... how do the clients know where the servers are?
-
-<P>Let 'em ask!
-
-<P>Datagrams are great for this.&nbsp; You can toss a datagram out onto
-the network and any servers listening at the correct port will* hear it.&nbsp;
-Like ACE_SOCK_Stream that we've seen before, you can get the peer address
-from a datagram.&nbsp; With that, the server can&nbsp; send a response
-back to the client.&nbsp; The client, in turn, can pull the peer address
-out and know exactly where the server lives.
-
-<P>In this tutorial we'll develop three applications:&nbsp; a server listening
-for datagrams, a client that can send to a known host and a client that
-can send to the entire (sub)network.&nbsp; In the next tutorial, we'll
-expand on this to make the server a bit more prudish.
-<P>
-Kirthika's abstract:
-<UL>
-Here, we play with datagram sockets and use it for server discovery by
-the client. Datagrams are used by UDP, which is an unreliable and
-connectionless protocol. Datagrams packets are generally very small in
-size and aren't designed to be used to handle serious communication
-between the server and the client.
-<P>
-The server waits for datagrams to arrive at a fixed port.
-The client either sends to a datagram to the server at a known host,
-which is not really the case generally, as the client needs to discover
-the server and so it needs to broadcast its datagram request in its
-subnet. Then, all servers listening at that interface receive it. The
-appropriate server will then handle the request. Remember that
-no solid connection is made. On the recv() itself the server obtains the
-address of the remote client and then communicates with it.
-<P>
-Thus, we get a fair glimpse of using another means of communication via
-datagrams.
-</UL>
-<P><FONT SIZE=-1>*&nbsp;Actually, the servers <I>might</I> hear the datagram.&nbsp;
-Datagrams are rather unreliable.&nbsp; (Sort of like some operating systems
-I know.)&nbsp; Still, if the network traffic isn't too bad, they generally
-get through.&nbsp; Your clients can always send out more queries if there
-aren't any responses in a timely fashion.</FONT>
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/008/page02.html b/docs/tutorials/008/page02.html
deleted file mode 100644
index 67ee0e7c4f9..00000000000
--- a/docs/tutorials/008/page02.html
+++ /dev/null
@@ -1,164 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 008</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 008</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-
-<P>The first thing we want to look at is <A HREF="server.cpp">server.cpp</A>.&nbsp;
-This is a pretty simple application that listens for datagrams at a known
-port and sends back a response.&nbsp; In order to implement a true "discovery"&nbsp;
-mechanism, the server will have to be a little bit more picky about who
-it responds to.&nbsp; We'll tackle that issue in the next tutorial though...
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* Our datagram server will, of course, need to create a datagram.
- We'll also need an address object so that we know where to listen.
-*/</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Dgram.h">ace/SOCK_Dgram.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/INET_Addr.h">ace/INET_Addr.h</A>"
-
-<font color=red>/* Use the typical TCP/IP port address for receiving datagrams. */</font>
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int, char**)
-{
- <font color=red>/* This is where we'll listen for datagrams coming from the clients.
- We'll give this address to the open() method below to enable the
- listener. */</font>
- ACE_INET_Addr local (PORT);
-
- <font color=red>/* A simply constructed datagram that we'll listen with. */</font>
- ACE_SOCK_Dgram dgram;
-
- <font color=red>/* Like most ACE objects, the datagram has to be opened before it
- can be uses. Of course, -1 on failure.
-
- A datagram will fail to open if there is already a datagram
- listening at the port we've chosen. It *is* OK to open a datagram
- at a port where there is an ACE_SOCK_Stream though. This is
- because datagrams are UDP and SOCK_Stream is TCP and the two don't
- cross paths. */</font>
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
-
- <font color=red>/* Create a simple buffer to receive the data. You generally need
- to provide a buffer big enough for the largest datagram you expect
- to receive. Some platforms will let you read a little and then
- some more later but other platforms will throw out whatever part
- of the datagram you don't get with the first read. (This is on a
- per-datagram basis BTW.) The theoretical limit on a datagram is
- about 64k. The realistic limit (because of routers & such) is
- much smaller. Choose your buffer size based on your application's
- needs. */</font>
- char buf[BUFSIZ];
-
- <font color=red>/* Unlike ACE_SOCK_Stream, datagrams are unconnected. That is,
- there is no "<font color=green>virtual circuit</font>" between server and client. Because
- of this, the server has to provide a placeholder for the OS to
- fill in the source (client) address information on the recv. You
- can initialize this INET_Addr to anything, it will be overwritten
- when the data arrives. */</font>
- ACE_INET_Addr remote;
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) starting up server daemon\n</font>"));
-
- <font color=red>/* Receive datagrams as long as we're able. */</font>
- while (dgram.recv (buf,
- sizeof (buf),
- remote) != -1)
- {
- <font color=red>/* Display a brief message about our progress. Notice how we
- use the 'remote' object to display the address of the client.
- With an ACE_SOCK_Stream we used get_remote_addr() to get the
- address the socket is connected to. Because datagrams are
- unconnected, we use the addr object provided to recv(). */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Data (%s) from client (%s)\n</font>",
- buf,
- remote.get_host_name ()));
-
- <font color=red>/* To respond to the client's query, we have to become a client
- ourselves. To do so, we need an anonymous local address from
- which we'll send the response and a datagram in which to send
- it. (An anonymous address is simply one where we let the OS
- choose a port for us. We really don't care what it is. */</font>
- ACE_INET_Addr local ((u_short) 0);
- ACE_SOCK_Dgram client;
-
- <font color=red>/* Open up our response datagram as always. */</font>
- if (client.open (local) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>client open</font>"),
- -1);
- return 0;
- }
-
- <font color=red>/* Build a witty response... */</font>
- sprintf (buf,
- "<font color=green>I am here</font>");
-
- <font color=red>/* and send it to the client. Notice the symmetry with the
- recv() method. Again, the unconnected nature of datagrams
- forces us to specify an address object with each read/write
- operation. In the case of read (recv()) that's where the OS
- stuffs the address of the datagram sender. In the case of
- write (send()) that we're doing here, the address is where we
- want the network to deliver the data.
-
- Of course, we're assuming that the client will be listening
- for our reply... */</font>
- if (client.send (buf,
- <font color=#008888>ACE_OS::strlen</font> (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>send</font>"),
- -1);
- }
-
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-
-<P>And that's really all there is to it.&nbsp; Obviously there is some
-room for improvement.&nbsp; The most blatant is the somewhat small buffer
-size for receiving the datagram.&nbsp; I've never been able to get a solid
-answer on datagram sizes.&nbsp; The theoretical limit is just under 64k
-but you have to deal with fragmentation.&nbsp; Some readings indicate that
-8k is a reasonable size, others go much smaller.&nbsp; My general rule
-of thumb is to keep datagrams relatively small (eg -- under 8k or so) and
-test a lot.&nbsp; If you find that your routers are fragmenting your larger
-datagrams, back off to something smaller.&nbsp; Of course, if you must
-send 100k and can only do so 1k at a time, you'll have to worry about retransmissions
-&amp; reordering.&nbsp; At that point, you might consider going to TCP.&nbsp;
-Remember:&nbsp; datagrams are unreliable!&nbsp; Don't try to make 'em do
-something they werent' designed for!
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/008/page03.html b/docs/tutorials/008/page03.html
deleted file mode 100644
index 04878414762..00000000000
--- a/docs/tutorials/008/page03.html
+++ /dev/null
@@ -1,148 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 008</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 008</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-
-<P>In <A HREF="directed_client.cpp">directed_client.cpp</A> we create a
-client that knows how to send a datagram to a server on a known host.&nbsp;
-This is a good thing if you know where the server lives and want to have
-a conversation.&nbsp;&nbsp; The Unix <I>talk</I> utilitiy, for instance,
-could be written this way.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Dgram.h">ace/SOCK_Dgram.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/INET_Addr.h">ace/INET_Addr.h</A>"
-
-<font color=red>/* Once again, we use the default server port. In a "<font color=green>real</font>" system,
- the server's port (or ports) would be published in some way so that
- clients would know where to "<font color=green>look</font>". We could even add entries to
- the operating system's services file and use a service name instead
- of a number. We'll come back to that in some other tutorial
- though. For now, let's stay simple. */</font>
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-<font color=red>/* Our goal here is to develop a client that can send a datagram to a
- server running on a known host. We'll use a command-line argument
- to specify the hostname instead of hard-coding it. */</font>
-int
-main (int argc,char *argv[])
-{
- <font color=red>/* All datagrams must have a point of origin. Since we intend to
- transmit instead of receive, we initialize an address with zero
- and let the OS choose a port for us. We could have chosen our own
- value between 1025 and 65535 as long as it isn't already in use.
-
- The biggest difference between client and server when datagrams
- are used is the fact that servers tend to have a known/fixed
- address at which they listen and clients tend to have arbitrary
- addresses assigned by the OS. */</font>
- ACE_INET_Addr local((u_short) 0);
-
- <font color=red>/* And here is our datagram object. */</font>
- ACE_SOCK_Dgram dgram;
-
- <font color=red>/* Notice that this looks a lot like the server application.
- There's no difference in creating server datagrams an client
- datagrams. You can even use a zero-constructed address for your
- server datagram as long as you tell the client where you're
- listening (eg -- by writting into a file or some such). */</font>
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>datagram open</font>"),
- -1);
-
- <font color=red>/* Yep. We've seen this before too... */</font>
- char buf[BUFSIZ];
-
- <font color=red>/* Ok, now we're doing something different. */</font>
- sprintf (buf, "<font color=green>Hello World!</font>");
-
- <font color=red>/* Just like sending a telegram, we have to address our datagram.
- Here, we create an address object at the desired port on the
- chosen host. To keep us from crashing, we'll provide a default
- host name if we aren't given one. */</font>
- ACE_INET_Addr remote (PORT,
- argc > 1 ? argv[1] : "<font color=green>localhost</font>");
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Sending (%s) to the server.\n</font>",
- buf));
- <font color=red>/* Now we send our buffer of stuff to the remote address. This is
- just exactly what the server did after receiving a client message.
- Datagrams are rather orthogonal that way: they don't generally
- make much of a fuss about being either client or server. */</font>
- if (dgram.send (buf,
- <font color=#008888>ACE_OS::strlen</font> (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>send</font>"),
- -1);
-
- <font color=red>/* Now we've turned around and put ourselves into "<font color=green>server mode</font>" by
- invoking the recv() method. We know our server is going to send
- us something, so we hang out here and wait for it. Because we
- know datagrams are unreliable, there is a chance that the server
- will respond but we won't hear. You might consider providing a
- timeout on the recv() in that case. If recv() fails due to
- timeout it will return -1 and you can then resend your query and
- attempt the recv() again.
-
- Like the server application, we have to give the recv() an
- uninitialized addr object so that we can find out who is talking
- back to us. */</font>
- if (dgram.recv (buf,
- sizeof (buf),
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>recv</font>"),
- -1);
-
- <font color=red>/* Find out what the server had to say. */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) The server said: %s\n</font>",
- buf));
-
- <font color=red>/* Using the "<font color=green>remote</font>" object instance, find out where the server
- lives. We could then save this address and use directed datagrams
- to chat with the server for a while. */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) The server can be found at: (%s:%d)\n</font>",
- remote.get_host_name(),
- PORT));
-
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-
-<P>That's all neat and good but the point of what we're doing here is not
-to talk to a server we know about but to discover servers we don't know
-about.&nbsp; Now, you could send a directed datagram to every possible
-host address on your network but that's not a very nice thing to do.&nbsp;
-On the next page, we'll find out the right approach...
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/008/page04.html b/docs/tutorials/008/page04.html
deleted file mode 100644
index ec24576e73b..00000000000
--- a/docs/tutorials/008/page04.html
+++ /dev/null
@@ -1,139 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 008</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 008</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-In <A HREF="broadcast_client.cpp">broadcast_client.cpp</A> we
-find out how to send a single datagram to every host on our (sub)network.&nbsp;
-I have to say <I>(sub)network</I> because broadcast datagrams typically
-are not passed through routers.&nbsp; So, if your network admin has divided
-up your network into subnets, your broadcasts will likey stay on the
-subnet you're a part of.
-
-<P>I've only commented the parts that are different from the directed_client.
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Dgram_Bcast.h">ace/SOCK_Dgram_Bcast.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/INET_Addr.h">ace/INET_Addr.h</A>"
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int argc,char *argv[])
-{
- ACE_UNUSED_ARG(argc);
- ACE_UNUSED_ARG(argv);
-
- ACE_INET_Addr local ((u_short) 0);
-
- <font color=red>/* Instead of creating the ACE_SOCK_Dgram we created last time,
- we'll create an ACE_SOCK_Dgram_Bcast. "<font color=green>Bcast</font>" means, of course,
- "<font color=green>Broadcast</font>". This ACE object is clever enough to go out to the OS
- and find all of the network interfaces. When you send() on a
- Dgram_Bcast, it will send the datagram out on all of those
- interfaces. This is quiet handy if you do it on a multi-homed
- host that plays router... */</font>
- ACE_SOCK_Dgram_Bcast dgram;
-
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>datagram open</font>"),
- -1);
-
- char buf[BUFSIZ];
-
- sprintf (buf, "<font color=green>Hello World!</font>");
-
- <font color=red>/* The only other difference between us and the directed client is
- that we don't specify a host to receive the datagram. Instead, we
- use the magic value "<font color=green>INADDR_BROADCAST</font>". All hosts are obliged to
- respond to datagrams directed to this address the same as they
- would to datagrams sent to their hostname.
-
- Remember, the Dgram_Bcast will send a datagram to all interfaces
- on the host. That's true even if the address is for a specific
- host (and the host address makes sense for the interface). The
- real power is in using an INADDR_BROADCAST addressed datagram
- against all interfaces. */</font>
-
- ACE_INET_Addr remote (PORT,
- INADDR_BROADCAST);
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Sending (%s) to the server.\n</font>",
- buf));
-
- if (dgram.send (buf,
- <font color=#008888>ACE_OS::strlen</font> (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>send</font>"),
- -1);
-
- if (dgram.recv (buf,
- sizeof (buf),
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>recv</font>"),
- -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) The server said: %s\n</font>",
- buf));
-
- <font color=red>/* Using the "<font color=green>remote</font>" object instance, find out where the server
- lives. We could then save this address and use directed datagrams
- to chat with the server for a while. */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) The server can be found at: (%s:%d)\n</font>",
- remote.get_host_name(),
- PORT));
-
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-
-<P>&nbsp;About that subnet thing:
-<BLOCKQUOTE>If you run this client on a host that has multiple network
-interfaces, the broadcast will go to all of those (sub)networks.&nbsp;
-What do you do, though, if you need to get past a router?&nbsp; My advice
-is to write a server that will run on hosts on both sides of your router.&nbsp;
-When a server on one side of the router receives a broadcast, it would
-send a directed datagram to it's counterpart on the other side of the router.&nbsp;
-The counterpart would then re-broadcast the original datagram on that sub-net.&nbsp;
-Cheap, simple and effective.</BLOCKQUOTE>
-One final word of warning:
-<BLOCKQUOTE>When creating your broadcast datagrams you may see something
-like this:&nbsp; <I>ACE_SOCK_Dgram_Bcast::mk_broadcast: Broadcast is not
-enable for this interface.: Unknown error</I>.&nbsp; There are some interfaces
-(ppp, slip) that don't support broadcast datagrams.&nbsp; That's what you're
-seeing here.</BLOCKQUOTE>
-Ok, one more warning:
-<blockquote>If you happen to have multiple servers running on your
-network when you invoke this client, the response could come from any
-one of them.
-</blockquote>
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/008/page05.html b/docs/tutorials/008/page05.html
deleted file mode 100644
index 63fa5943440..00000000000
--- a/docs/tutorials/008/page05.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 008</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 008</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<BR>That's it for this tutorial.&nbsp; In the next one we'll add some intelligence
-to the data put into the datagrams.&nbsp; By doing so, we'll be able to
-classify our clients and servers into groups.&nbsp; By combining the data
-content and the server's port we can get fairly fine-grained control over
-who talks to who.
-
-<P>For you convenience:
-<UL>
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-
-<LI>
-<A HREF="directed_client.cpp">directed_client.cpp</A></LI>
-
-<LI>
-<A HREF="broadcast_client.cpp">broadcast_client.cpp</A></LI>
-
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-</UL>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/008/server.cpp b/docs/tutorials/008/server.cpp
deleted file mode 100644
index 7cacb040822..00000000000
--- a/docs/tutorials/008/server.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-// $Id$
-
-/* Our datagram server will, of course, need to create a datagram.
- We'll also need an address object so that we know where to listen. */
-#include "ace/Log_Msg.h"
-#include "ace/SOCK_Dgram.h"
-#include "ace/INET_Addr.h"
-
-/* Use the typical TCP/IP port address for receiving datagrams. */
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int, char**)
-{
- /* This is where we'll listen for datagrams coming from the clients.
- We'll give this address to the open() method below to enable the
- listener. */
- ACE_INET_Addr local (PORT);
-
- /* A simply constructed datagram that we'll listen with. */
- ACE_SOCK_Dgram dgram;
-
- /* Like most ACE objects, the datagram has to be opened before it
- can be uses. Of course, -1 on failure.
-
- A datagram will fail to open if there is already a datagram
- listening at the port we've chosen. It *is* OK to open a datagram
- at a port where there is an ACE_SOCK_Stream though. This is
- because datagrams are UDP and SOCK_Stream is TCP and the two don't
- cross paths. */
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- /* Create a simple buffer to receive the data. You generally need
- to provide a buffer big enough for the largest datagram you expect
- to receive. Some platforms will let you read a little and then
- some more later but other platforms will throw out whatever part
- of the datagram you don't get with the first read. (This is on a
- per-datagram basis BTW.) The theoretical limit on a datagram is
- about 64k. The realistic limit (because of routers & such) is
- much smaller. Choose your buffer size based on your application's
- needs. */
- char buf[BUFSIZ];
-
- /* Unlike ACE_SOCK_Stream, datagrams are unconnected. That is,
- there is no "virtual circuit" between server and client. Because
- of this, the server has to provide a placeholder for the OS to
- fill in the source (client) address information on the recv. You
- can initialize this INET_Addr to anything, it will be overwritten
- when the data arrives. */
- ACE_INET_Addr remote;
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) starting up server daemon\n"));
-
- /* Receive datagrams as long as we're able. */
- while (dgram.recv (buf,
- sizeof (buf),
- remote) != -1)
- {
- /* Display a brief message about our progress. Notice how we
- use the 'remote' object to display the address of the client.
- With an ACE_SOCK_Stream we used get_remote_addr() to get the
- address the socket is connected to. Because datagrams are
- unconnected, we use the addr object provided to recv(). */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Data (%s) from client (%s)\n",
- buf,
- remote.get_host_name ()));
-
- /* To respond to the client's query, we have to become a client
- ourselves. To do so, we need an anonymous local address from
- which we'll send the response and a datagram in which to send
- it. (An anonymous address is simply one where we let the OS
- choose a port for us. We really don't care what it is. */
- ACE_INET_Addr local ((u_short) 0);
- ACE_SOCK_Dgram client;
-
- /* Open up our response datagram as always. */
- if (client.open (local) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "client open"),
- -1);
- return 0;
- }
-
- /* Build a witty response... */
- sprintf (buf,
- "I am here");
-
- /* and send it to the client. Notice the symmetry with the
- recv() method. Again, the unconnected nature of datagrams
- forces us to specify an address object with each read/write
- operation. In the case of read (recv()) that's where the OS
- stuffs the address of the datagram sender. In the case of
- write (send()) that we're doing here, the address is where we
- want the network to deliver the data.
-
- Of course, we're assuming that the client will be listening
- for our reply... */
- if (client.send (buf,
- ACE_OS::strlen (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "send"),
- -1);
- }
-
- return 0;
-}
diff --git a/docs/tutorials/009/009-broadcast.dsp b/docs/tutorials/009/009-broadcast.dsp
deleted file mode 100644
index 14867d087a4..00000000000
--- a/docs/tutorials/009/009-broadcast.dsp
+++ /dev/null
@@ -1,102 +0,0 @@
-# Microsoft Developer Studio Project File - Name="009 broadcast" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=009 broadcast - 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 "009-broadcast.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 "009-broadcast.mak" CFG="009 broadcast - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "009 broadcast - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "009 broadcast - 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)" == "009 broadcast - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "009 broadcast - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"../broadcast_client.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "009 broadcast - Win32 Release"
-# Name "009 broadcast - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=broadcast_client.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/009/009-directed.dsp b/docs/tutorials/009/009-directed.dsp
deleted file mode 100644
index a2d80670af8..00000000000
--- a/docs/tutorials/009/009-directed.dsp
+++ /dev/null
@@ -1,102 +0,0 @@
-# Microsoft Developer Studio Project File - Name="009 directed" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=009 directed - 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 "009-directed.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 "009-directed.mak" CFG="009 directed - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "009 directed - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "009 directed - 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)" == "009 directed - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "009 directed - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"../directed_client.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "009 directed - Win32 Release"
-# Name "009 directed - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=directed_client.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/009/009-server.dsp b/docs/tutorials/009/009-server.dsp
deleted file mode 100644
index 051b3e9f357..00000000000
--- a/docs/tutorials/009/009-server.dsp
+++ /dev/null
@@ -1,102 +0,0 @@
-# Microsoft Developer Studio Project File - Name="009 server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=009 server - 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 "009-server.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 "009-server.mak" CFG="009 server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "009 server - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "009 server - 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)" == "009 server - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "009 server - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"../server.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "009 server - Win32 Release"
-# Name "009 server - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=server.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/009/Makefile b/docs/tutorials/009/Makefile
deleted file mode 100644
index b595ecbc814..00000000000
--- a/docs/tutorials/009/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = server directed_client broadcast_client
-
-FILES =
-
-BUILD = $(VBIN)
-
-HDR = *.h
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -bli0 -l80 -fca -fc1 -cli0 -cdb < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
- # Don't put anything below here. Between the "depend" target and fix.Makefile
- # it's guaranteed to be lost!
-
- # This is inserted by the fix.Makefile script
-include .depend
diff --git a/docs/tutorials/009/broadcast_client.cpp b/docs/tutorials/009/broadcast_client.cpp
deleted file mode 100644
index 7eb282f6f73..00000000000
--- a/docs/tutorials/009/broadcast_client.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// $Id$
-
-#include "ace/Log_Msg.h"
-#include "ace/SOCK_Dgram_Bcast.h"
-#include "ace/INET_Addr.h"
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int argc, char *argv[])
-{
- ACE_INET_Addr local ((u_short) 0);
- ACE_INET_Addr remote (PORT, INADDR_BROADCAST);
- ACE_SOCK_Dgram_Bcast dgram;
-
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
- char buf[BUFSIZ];
-
- sprintf (buf,
- argc > 1 ? argv[1] : "Hello World!");
- if (dgram.send (buf,
- ACE_OS::strlen (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "send"),
- -1);
- ACE_Time_Value timeout (2, 0);
- if (dgram.recv (buf,
- sizeof (buf),
- remote,
- 0,
- &timeout) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "recv"),
- -1);
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) The server at (%s) said (%s)\n",
- remote.get_host_name (),
- buf));
- return 0;
-}
diff --git a/docs/tutorials/009/combine.shar b/docs/tutorials/009/combine.shar
deleted file mode 100644
index e0b7604a183..00000000000
--- a/docs/tutorials/009/combine.shar
+++ /dev/null
@@ -1,394 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/009'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 520 -rw-rw-r-- hdr
-# 59 -rw-rw-r-- bodies
-# 2184 -rw-rw-r-- page01.pre
-# 188 -rw-rw-r-- page02.pre
-# 296 -rw-rw-r-- page03.pre
-# 301 -rw-rw-r-- page04.pre
-# 995 -rw-rw-r-- page05.pre
-# 81 -rw-rw-r-- page02.pst
-# 96 -rw-rw-r-- page03.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32524; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 009</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 009</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams again</FONT></B></CENTER>
-X
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-808b7f288617f5b0a55256542f242912 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 520 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '520,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-server.cpp
-directed_client.cpp
-broadcast_client.cpp
-SHAR_EOF
- $shar_touch -am 0121195199 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-707d1735ca25694e2b5fddc1f6e7e124 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 59 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '59,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X
-<P>In our previous tutorial, we created a datagram listener and a couple
-of clients that would send it datagrams.&nbsp; That server would respond
-to any datagram sent to the TCP/IP port at which the server was listening.&nbsp;
-What we really want to do, however, is to have the server only respond
-to clients that meet some criteria.
-X
-<P>Why is this important?
-X
-<P>Imagine you're writting a distributed system that will have many server
-applications.&nbsp; Each of those will probably listen at different (and
-well-known)&nbsp;TCP/IP addresses so that clients can find each server
-without confusion.&nbsp; However...&nbsp; In a large system you might have
-several <I>versions</I> of the same server running at the same time*.&nbsp;
-You probably don't want those servers running at different addresses since
-that breaks the well-known address requirement.
-X
-<P>By creating a datagram listener similar to the last tutorial, a client
-can send broadcast datagrams to locate all of the servers listening at
-the well-known address.&nbsp;&nbsp; By adding a thin protocol layer into
-the datagram contents, the servers can be selective about which clients
-they respond to.&nbsp; Thus, if each client sends its version signature
-in the broadcast, then the servers can choose to respond only to clients
-with matching versions.
-<P>
-Kirthika's Abstract:
-<UL>
-Here, the client uses datagrams for discovery of the server in the
-subnet and also sends a signature for authentification. The server
-decides on replying to the client depending on the signature. The only
-changes from the previous tutorial are in the addition of an extra
-signature matching portion on the server side and providing timeout
-values on the client side which allows the send() and recv() calls to
-return on a timeout if the target party fails to respond.
-<P>
-This feature of discrimnation depending on the client signature could be
-used for security reasons or version confirmation by the server.
-</UL>
-<P><FONT SIZE=-1>*Note:&nbsp; I'm making the assumption that your multiple
-server versions will be running on different hosts since you can only have
-one server listening at the well-known address on a given host.</FONT>
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-fa884a9f35740c89bf25c5eed9ba1ebd page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 2184 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '2184,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-X
-<P>Let's take a look at our new <A HREF="server.cpp">server.cpp</A> where
-we add in just a bit of code to examine the datagram contents before responding.
-X
-<P>
-<HR WIDTH="100%"><TT></TT>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-76a728cf5d0f42ca9b7d7a6fa0637384 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 188 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '188,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-X
-<P>Our new <A HREF="directed_client.cpp">directed_client.cpp</A>&nbsp;
-is very much like our previous one.&nbsp; The primary difference is the
-addition of a timeout to the recv() call so that we can exit somewhat gracefully
-if the server doesn't like what we have to say.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-c89d6d6f4acee2953a95469a3fe6965f page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 296 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '296,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-X
-<P>As you can see in <A HREF="broadcast_client.cpp">broadcast_client.cpp</A>,
-there isn't enough difference to even comment on!&nbsp; Look back to the
-Tutorial 8 version of this file.&nbsp; The only difference is the addition
-of the timeout variable passed to recv().
-X
-<P>
-<HR WIDTH="100%"><TT></TT>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-8c92e7ef51e85491bc2d7991a5b62cbb page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 301 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '301,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-In this tutorial we've expanded on Tutorial 8 to provide a more discriminating
-server application.&nbsp; The changes to the clients were trivial, amounting
-to not much more than the addition of a timeout when reading a server's
-potential response.&nbsp; The server change was a bit more since it had
-to compare the clients' query with it's own signature.
-X
-<P>In a "real" system, the signatures you swap would probably include version
-information.&nbsp; You could even use a major/minor scheme where an exact
-match isn't necessary.&nbsp; Another upgrade might be to have a set of
-signatures at one or both ends of the conversation.&nbsp; The level of
-service provided by the server would be determined by the signature pair
-match.
-X
-<P>Here's the final file list:
-<UL>
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-X
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-X
-<LI>
-<A HREF="directed_client.cpp">directed_client.cpp</A></LI>
-X
-<LI>
-<A HREF="broadcast_client.cpp">broadcast_client.cpp</A></LI>
-</UL>
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-835e97e1b6ac1747ef9508936a56a6cc page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 995 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '995,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pst ==============
-if test -f 'page02.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pst' &&
-<HR WIDTH="100%">
-X
-<P>Let's move on and see what changes the clients require...
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pst' &&
- chmod 0664 'page02.pst' ||
- $echo 'restore of' 'page02.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pst:' 'MD5 check failed'
-76a64b9c5c1d1baa1425085b1649fb31 page02.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pst'`"
- test 81 -eq "$shar_count" ||
- $echo 'page02.pst:' 'original size' '81,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pst ==============
-if test -f 'page03.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pst' &&
-<HR WIDTH="100%">
-X
-<P>On the next page, we see that the directed_client gets similar upgrades.
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pst' &&
- chmod 0664 'page03.pst' ||
- $echo 'restore of' 'page03.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pst:' 'MD5 check failed'
-11fda077df9a3ef7155f33e75cc9b6b6 page03.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pst'`"
- test 96 -eq "$shar_count" ||
- $echo 'page03.pst:' 'original size' '96,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32524
-exit 0
diff --git a/docs/tutorials/009/directed_client.cpp b/docs/tutorials/009/directed_client.cpp
deleted file mode 100644
index 7ec65ee23ff..00000000000
--- a/docs/tutorials/009/directed_client.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// $Id$
-
-#include "ace/Log_Msg.h"
-#include "ace/SOCK_Dgram.h"
-#include "ace/INET_Addr.h"
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int argc, char *argv[])
-{
- ACE_INET_Addr local ((u_short) 0);
- ACE_INET_Addr remote (PORT,
- argc > 1 ? argv[1] : "localhost");
- ACE_SOCK_Dgram dgram;
-
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- char buf[BUFSIZ];
-
- /* In order to conform to the "protocol" required by the server, we
- allow the user to specify a signature. A default matching the
- server's default is also available. */
- sprintf (buf,
- argc > 2 ? argv[2] : "Hello World!");
-
- if (dgram.send (buf,
- ACE_OS::strlen (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "send"),
- -1);
-
- /* Because we may have sent a signature that the server doesn't
- honor, we have to have some way to get out of the recv(). Most
- ACE objects that have potential for infinite blocking give you the
- option of providing a timeout. recv() is no exception. Here, we
- construct an ACE_Time_Value representing two seconds and no
- micro-seconds. If recv() fails to get a response within the two
- seconds, it will return -1. */
- ACE_Time_Value timeout (2, 0);
- if (dgram.recv (buf,
- sizeof (buf),
- remote,
- 0,
- &timeout) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "recv"),
- -1);
-
- /* Note: The fourth parameter to recv() is for flags. These flags
- are passed directly to the underlying recv() or recvfrom() system
- call. For Linux, resonable values are: MSG_OOB process
- out-of-band data MSG_PEEK peek at incoming message (but leave it
- in the OS buffers) MSG_WAITALL wait for full request or error See
- your system documentation for the gory details. */
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) The server said (%s)\n",
- buf));
-
- return 0;
-}
diff --git a/docs/tutorials/009/page01.html b/docs/tutorials/009/page01.html
deleted file mode 100644
index cf6d5f38515..00000000000
--- a/docs/tutorials/009/page01.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 009</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 009</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams again</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>In our previous tutorial, we created a datagram listener and a couple
-of clients that would send it datagrams.&nbsp; That server would respond
-to any datagram sent to the TCP/IP port at which the server was listening.&nbsp;
-What we really want to do, however, is to have the server only respond
-to clients that meet some criteria.
-
-<P>Why is this important?
-
-<P>Imagine you're writting a distributed system that will have many server
-applications.&nbsp; Each of those will probably listen at different (and
-well-known)&nbsp;TCP/IP addresses so that clients can find each server
-without confusion.&nbsp; However...&nbsp; In a large system you might have
-several <I>versions</I> of the same server running at the same time*.&nbsp;
-You probably don't want those servers running at different addresses since
-that breaks the well-known address requirement.
-
-<P>By creating a datagram listener similar to the last tutorial, a client
-can send broadcast datagrams to locate all of the servers listening at
-the well-known address.&nbsp;&nbsp; By adding a thin protocol layer into
-the datagram contents, the servers can be selective about which clients
-they respond to.&nbsp; Thus, if each client sends its version signature
-in the broadcast, then the servers can choose to respond only to clients
-with matching versions.
-<P>
-Kirthika's Abstract:
-<UL>
-Here, the client uses datagrams for discovery of the server in the
-subnet and also sends a signature for authentification. The server
-decides on replying to the client depending on the signature. The only
-changes from the previous tutorial are in the addition of an extra
-signature matching portion on the server side and providing timeout
-values on the client side which allows the send() and recv() calls to
-return on a timeout if the target party fails to respond.
-<P>
-This feature of discrimnation depending on the client signature could be
-used for security reasons or version confirmation by the server.
-</UL>
-<P><FONT SIZE=-1>*Note:&nbsp; I'm making the assumption that your multiple
-server versions will be running on different hosts since you can only have
-one server listening at the well-known address on a given host.</FONT>
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/009/page02.html b/docs/tutorials/009/page02.html
deleted file mode 100644
index 438f580c32a..00000000000
--- a/docs/tutorials/009/page02.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 009</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 009</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams again</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>Let's take a look at our new <A HREF="server.cpp">server.cpp</A> where
-we add in just a bit of code to examine the datagram contents before responding.
-
-<P>
-<HR WIDTH="100%"><TT></TT>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* The actual datagram operations here are exactly the same as those
- used in the previous tutorial. What we've added is some logic that
- will prevent this server from responding to just any old datagram.
- I'll limit my comments to those pieces of code. */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Dgram.h">ace/SOCK_Dgram.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/INET_Addr.h">ace/INET_Addr.h</A>"
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-<font color=red>/* In order to be more selective, our server will be started with a
- "<font color=green>signature</font>". If none is given, we'll use the one here instead. */</font>
-static const char *default_signature = "<font color=green>Hello World!</font>";
-
-int
-main (int argc, char *argv[])
-{
- ACE_INET_Addr local (PORT);
- ACE_SOCK_Dgram dgram;
-
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
-
- char buf[BUFSIZ];
- ACE_INET_Addr remote;
-
- while (dgram.recv (buf,
- sizeof (buf),
- remote) != -1)
- {
- <font color=red>/* What did the client say? */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Received (%s) from (%s)\n</font>",
- buf,
- remote.get_host_name ()));
-
- <font color=red>/* Use a simple string-op to decide if the client is one of our
- own. Of course, you could have sent numeric values or even a
- struct of data. For this simple exercise, however, strings are
- just fine. */</font>
- if (<font color=#008888>ACE_OS::strcmp</font> (buf,
- argc > 1 ? argv[1] : default_signature))
- {
- <font color=red>/* If the client didn't say something we like then log it
- * and move on.
- */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Client query does not match our signature (%s). Response not sent.\n</font>",
- argc > 1 ? argv[1] : default_signature));
- }
- else
- {
- <font color=red>/* As before, we respond to the client's query. */</font>
-
- ACE_INET_Addr local ((u_short) 0);
- ACE_SOCK_Dgram peer;
- if (peer.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>response open</font>"),
- -1);
- sprintf (buf,
- "<font color=green>I am here</font>");
- if (peer.send (buf,
- <font color=#008888>ACE_OS::strlen</font> (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>response send</font>"),
- -1);
- }
- }
-
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-
-<P>Let's move on and see what changes the clients require...
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/009/page03.html b/docs/tutorials/009/page03.html
deleted file mode 100644
index 8f138282c1b..00000000000
--- a/docs/tutorials/009/page03.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 009</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 009</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams again</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>Our new <A HREF="directed_client.cpp">directed_client.cpp</A>&nbsp;
-is very much like our previous one.&nbsp; The primary difference is the
-addition of a timeout to the recv() call so that we can exit somewhat gracefully
-if the server doesn't like what we have to say.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Dgram.h">ace/SOCK_Dgram.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/INET_Addr.h">ace/INET_Addr.h</A>"
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int argc, char *argv[])
-{
- ACE_INET_Addr local ((u_short) 0);
- ACE_INET_Addr remote (PORT,
- argc > 1 ? argv[1] : "<font color=green>localhost</font>");
- ACE_SOCK_Dgram dgram;
-
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
-
- char buf[BUFSIZ];
-
- <font color=red>/* In order to conform to the "<font color=green>protocol</font>" required by the server, we
- allow the user to specify a signature. A default matching the
- server's default is also available. */</font>
- sprintf (buf,
- argc > 2 ? argv[2] : "<font color=green>Hello World!</font>");
-
- if (dgram.send (buf,
- <font color=#008888>ACE_OS::strlen</font> (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>send</font>"),
- -1);
-
- <font color=red>/* Because we may have sent a signature that the server doesn't
- honor, we have to have some way to get out of the recv(). Most
- ACE objects that have potential for infinite blocking give you the
- option of providing a timeout. recv() is no exception. Here, we
- construct an ACE_Time_Value representing two seconds and no
- micro-seconds. If recv() fails to get a response within the two
- seconds, it will return -1. */</font>
- ACE_Time_Value timeout (2, 0);
- if (dgram.recv (buf,
- sizeof (buf),
- remote,
- 0,
- &timeout) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>recv</font>"),
- -1);
-
- <font color=red>/* Note: The fourth parameter to recv() is for flags. These flags
- are passed directly to the underlying recv() or recvfrom() system
- call. For Linux, resonable values are: MSG_OOB process
- out-of-band data MSG_PEEK peek at incoming message (but leave it
- in the OS buffers) MSG_WAITALL wait for full request or error See
- your system documentation for the gory details. */</font>
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) The server said (%s)\n</font>",
- buf));
-
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-
-<P>On the next page, we see that the directed_client gets similar upgrades.
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/009/page04.html b/docs/tutorials/009/page04.html
deleted file mode 100644
index 9148829167e..00000000000
--- a/docs/tutorials/009/page04.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 009</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 009</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams again</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-<P>As you can see in <A HREF="broadcast_client.cpp">broadcast_client.cpp</A>,
-there isn't enough difference to even comment on!&nbsp; Look back to the
-Tutorial 8 version of this file.&nbsp; The only difference is the addition
-of the timeout variable passed to recv().
-
-<P>
-<HR WIDTH="100%"><TT></TT>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Dgram_Bcast.h">ace/SOCK_Dgram_Bcast.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/INET_Addr.h">ace/INET_Addr.h</A>"
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-int
-main (int argc, char *argv[])
-{
- ACE_INET_Addr local ((u_short) 0);
- ACE_INET_Addr remote (PORT, INADDR_BROADCAST);
- ACE_SOCK_Dgram_Bcast dgram;
-
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
- char buf[BUFSIZ];
-
- sprintf (buf,
- argc > 1 ? argv[1] : "<font color=green>Hello World!</font>");
- if (dgram.send (buf,
- <font color=#008888>ACE_OS::strlen</font> (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>send</font>"),
- -1);
- ACE_Time_Value timeout (2, 0);
- if (dgram.recv (buf,
- sizeof (buf),
- remote,
- 0,
- &timeout) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>recv</font>"),
- -1);
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) The server at (%s) said (%s)\n</font>",
- remote.get_host_name (),
- buf));
- return 0;
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/009/page05.html b/docs/tutorials/009/page05.html
deleted file mode 100644
index 6defc777d51..00000000000
--- a/docs/tutorials/009/page05.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 009</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 009</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sending and receiving datagrams again</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-In this tutorial we've expanded on Tutorial 8 to provide a more discriminating
-server application.&nbsp; The changes to the clients were trivial, amounting
-to not much more than the addition of a timeout when reading a server's
-potential response.&nbsp; The server change was a bit more since it had
-to compare the clients' query with it's own signature.
-
-<P>In a "real" system, the signatures you swap would probably include version
-information.&nbsp; You could even use a major/minor scheme where an exact
-match isn't necessary.&nbsp; Another upgrade might be to have a set of
-signatures at one or both ends of the conversation.&nbsp; The level of
-service provided by the server would be determined by the signature pair
-match.
-
-<P>Here's the final file list:
-<UL>
-<LI>
-<A HREF="Makefile">Makefile</A></LI>
-
-<LI>
-<A HREF="server.cpp">server.cpp</A></LI>
-
-<LI>
-<A HREF="directed_client.cpp">directed_client.cpp</A></LI>
-
-<LI>
-<A HREF="broadcast_client.cpp">broadcast_client.cpp</A></LI>
-</UL>
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/009/server.cpp b/docs/tutorials/009/server.cpp
deleted file mode 100644
index ee6dc1be311..00000000000
--- a/docs/tutorials/009/server.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// $Id$
-
-/* The actual datagram operations here are exactly the same as those
- used in the previous tutorial. What we've added is some logic that
- will prevent this server from responding to just any old datagram.
- I'll limit my comments to those pieces of code. */
-
-#include "ace/Log_Msg.h"
-#include "ace/SOCK_Dgram.h"
-#include "ace/INET_Addr.h"
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-/* In order to be more selective, our server will be started with a
- "signature". If none is given, we'll use the one here instead. */
-static const char *default_signature = "Hello World!";
-
-int
-main (int argc, char *argv[])
-{
- ACE_INET_Addr local (PORT);
- ACE_SOCK_Dgram dgram;
-
- if (dgram.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- char buf[BUFSIZ];
- ACE_INET_Addr remote;
-
- while (dgram.recv (buf,
- sizeof (buf),
- remote) != -1)
- {
- /* What did the client say? */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Received (%s) from (%s)\n",
- buf,
- remote.get_host_name ()));
-
- /* Use a simple string-op to decide if the client is one of our
- own. Of course, you could have sent numeric values or even a
- struct of data. For this simple exercise, however, strings are
- just fine. */
- if (ACE_OS::strcmp (buf,
- argc > 1 ? argv[1] : default_signature))
- {
- /* If the client didn't say something we like then log it
- * and move on.
- */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Client query does not match our signature (%s). Response not sent.\n",
- argc > 1 ? argv[1] : default_signature));
- }
- else
- {
- /* As before, we respond to the client's query. */
-
- ACE_INET_Addr local ((u_short) 0);
- ACE_SOCK_Dgram peer;
- if (peer.open (local) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "response open"),
- -1);
- sprintf (buf,
- "I am here");
- if (peer.send (buf,
- ACE_OS::strlen (buf) + 1,
- remote) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "response send"),
- -1);
- }
- }
-
- return 0;
-}
diff --git a/docs/tutorials/010/010.dsp b/docs/tutorials/010/010.dsp
deleted file mode 100644
index 85a15e7585a..00000000000
--- a/docs/tutorials/010/010.dsp
+++ /dev/null
@@ -1,112 +0,0 @@
-# Microsoft Developer Studio Project File - Name="010" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=010 - 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 "010.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 "010.mak" CFG="010 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "010 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "010 - 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)" == "010 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "010 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"message_queue.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "010 - Win32 Release"
-# Name "010 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\message_queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\task.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\block.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\task.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/010/Makefile b/docs/tutorials/010/Makefile
deleted file mode 100644
index 41d9ecfb6bd..00000000000
--- a/docs/tutorials/010/Makefile
+++ /dev/null
@@ -1,73 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = message_queue
-
-FILES =
-FILES += task
-
-BUILD = $(VBIN)
-
-SRC = $(addsuffix .cpp,$(BIN)) $(addsuffix .cpp,$(FILES))
-
-HDR = *.h
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include .depend
diff --git a/docs/tutorials/010/block.h b/docs/tutorials/010/block.h
deleted file mode 100644
index 7288c18724b..00000000000
--- a/docs/tutorials/010/block.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// $Id$
-
-#ifndef BLOCK_H
-#define BLOCK_H
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* This simple ACE_Message_Block derivative will inform us of it's
- construction and destruction. We'll use this to assure ourselves
- that we don't have any memory leaks. In a real application, of
- course, this isn't necessary. */
-class Block : public ACE_Message_Block
-{
-public:
- Block (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Block ctor 0x%x\n",
- (void *) this));
- }
-
- Block (size_t size)
- : ACE_Message_Block (size)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Block ctor 0x%x\n",
- (void *) this));
- }
-
- virtual ~Block (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Block dtor 0x%x\n",
- (void *) this));
- }
-};
-
-#endif /* BLOCK_H */
diff --git a/docs/tutorials/010/combine.shar b/docs/tutorials/010/combine.shar
deleted file mode 100644
index 7679c94e0e3..00000000000
--- a/docs/tutorials/010/combine.shar
+++ /dev/null
@@ -1,550 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/010'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 440 -rw-rw-r-- hdr
-# 49 -rw-rw-r-- bodies
-# 2242 -rw-rw-r-- page01.pre
-# 84 -rw-rw-r-- page02.pre
-# 231 -rw-rw-r-- page03.pre
-# 138 -rw-rw-r-- page04.pre
-# 606 -rw-rw-r-- page05.pre
-# 1493 -rw-rw-r-- page06.pre
-# 444 -rw-rw-r-- page07.pre
-# 689 -rw-rw-r-- page02.pst
-# 236 -rw-rw-r-- page03.pst
-# 387 -rw-rw-r-- page04.pst
-# 647 -rw-rw-r-- page05.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32552; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 010</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 010</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Passing chunks of data through an ACE_Message_Queue</FONT></B></CENTER>
-X
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-e3d97df3787127f8678ec95f024c44c6 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 440 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '440,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-message_queue.cpp
-block.h
-task.h
-task.cpp
-SHAR_EOF
- $shar_touch -am 0124153399 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-888c8b85427980776f703176da1f9ee4 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 49 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '49,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-<P>
-In an earlier tutorial we briefly introduced ACE_Message_Queue. In this
-tutorial we'll go into a bit more detail.
-<P>
-ACE_Message_Queue is modeled after Unix System V IPC mechanisms. The basic
-idea is that you put a block of data into one end of the Queue and take it
-out of the other end. Your basic FIFO in other words. The SysV mechanism
-works great for passing these blocks of data between processes on the same
-host but it's a bit overkill for moving blocks between threads. You could
-use a pipe, socket or similar mechanism but that still has more overhead than
-we really want just for moving data between threads. Process-global memory
-is a good technique but then you need a way to signal the "listening" threads.
-The ACE_Message_Queue is a better approach: Create blocks of data and enqueue
-them in one thread while another thread (or threads) dequeue and perform work.
-<P>
-Kirthika's Abstract:
-<UL>
-The Message Queue is a FIFO accessible from multiple threads.
-That is, a thread puts the produced blocks of data on the message queue
-to be consumed by some other thread/threads and processed. In this
-tutorial, we see how effectively the Message Queue in a ACE_Task can be
-used to pass data among threads in the thread pool.
-(this is very similar to
-<A HREF="../007/page01.html">Tutorial 7</A>
-X wherein we implemented a
-thread-pool server).Here, actual data is passed between the threads and
-also an ACE_Barrier has been used to provide synchronisation among
-multiple threads.
-<P>
-The Message Queue consists of Message Blocks, each of which has a read
-and write pointer. Using these pointers the message blocks can be
-accessed for reading and writing operations. The ACE_Task::svc() method
-will put the block onto the queue without bothering about the existence
-of a consumer for that block. A thread from the thread pool obtains the
-block from the queue, and checks to see whether the block_type is
-MB_HANGUP. If so, it puts the block back on the queue for its
-peers and exits. Otherwise, it reads the block and processes it before
-releasing it.
-<P>
-This simple tutorial makes us aware of the usage and importance of the
-Message Queue which could be used to our advantage especially for
-multithreaded applications.
-</UL>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-a59ecff5ebb6cd48d96531f70c504ffc page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 2242 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '2242,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-X
-We'll look first at <A HREF="message_queue.cpp">main()</A>.
-<P>
-X
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-166bf09c6c4474767e95ef4a7be20a03 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 84 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '84,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-Our <A HREF="block.h">Block</A> object is a very simple derivative
-of the ACE_Message_Block. The only reason I created it was to prove
-that the message blocks to, indeed, get freed when we're done with 'em.
-<P>
-X
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-3164732c254de8d97fac8fd52071ae32 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 231 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '231,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-Our <A HREF="task.h">Task</A> object executes in one or more threads
-and reads from the message queue it contains.
-<P>
-X
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-fec9a7b5b9b2a8f61c0178aaf1b78a91 page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 138 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '138,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-X
-Our <A HREF="task.cpp">Task</A> object definition.
-<P>
-Something to look at here is the ACE_Barrier usage. In the
-constructor, we tell the barrier how many threads we're using. Then,
-in the svc() method, we use the barrier's wait() method. You can
-think of the barrier as a semaphore initialized to the thread count.
-X Each time wait()
-is invoked, the semaphore is decremented and the thread is blocked.
-X When the count equals zero, all threads are unblocked and allowed to
-continue.
-<P>
-<font size=-1>Note: This isn't the way ACE_Barrier really works, it's
-just an analogy</font>
-X
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-ff8fe38f39f3860bcd45aa450cb754da page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 606 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '606,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-X
-Since I added Block just to give us output, let's take a look at that output.
-X
-<P>
-<HR WIDTH="100%">
-<PRE>
-[jcej@chiroptera 010]$./message_queue 4 2
-(8910|1024) Task ctor 0xbffff9c4
-(8910|2050) Task 0xbffff9c4 starts in thread 2050
-(8910|1025) Task 0xbffff9c4 starts in thread 1025
-(8910|1024) Block ctor 0x8052398
-(8910|1024) Block ctor 0x8052488
-(8910|1024) Block ctor 0x8052578
-(8910|1024) Block ctor 0x8052668
-(8910|1024) Block ctor 0x8052758
-(8910|1025) Block 0x8052398 contains (This is message 0.)
-(8910|2050) Block 0x8052488 contains (This is message 1.)
-(8910|1025) Block dtor 0x8052398
-(8910|1025) Block 0x8052578 contains (This is message 2.)
-(8910|2050) Block dtor 0x8052488
-(8910|2050) Block 0x8052668 contains (This is message 3.)
-(8910|1025) Block dtor 0x8052578
-(8910|1025) Task close 0xbffff9c4
-(8910|2050) Block dtor 0x8052668
-(8910|2050) Task close 0xbffff9c4
-(8910|1024) Task dtor 0xbffff9c4
-(8910|1024) Block dtor 0x8052758
-(8910|1024) Application exiting
-[jcej@chiroptera 010]$
-</PRE>
-<HR WIDTH="100%">
-<P>
-Notice that each <i>Block ctor</i> has a corresponding <i>Block dtor</i>.
-We've proven the point that all memory gets cleaned up. We also see that
-both threads get to do some work and that both close as expected.
-<P>
-It's also worth mentioning that it's just an accident that all of the blocks
-are created and enqueued before any are processed. Run the test on a multi-processor
-or with more iterations and you'll see some get processed before all are created.
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-d2a471df09308f89a611a7aa0218737f page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 1493 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '1493,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page07.pre ==============
-if test -f 'page07.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page07.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page07.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page07.pre' &&
-X
-That's it for Tutorial 10. There are some esoteric changes between the thread-pool server
-and this application but it's basically the same. In the next tutorial I'll modify this just
-a bit to move non-trivial data through the queue.
-<P>
-X
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="block.h">block.h</A>
-<LI><A HREF="message_queue.cpp">message_queue.cpp</A>
-<LI><A HREF="task.cpp">task.cpp</A>
-<LI><A HREF="task.h">task.h</A>
-</UL>
-SHAR_EOF
- $shar_touch -am 03191459100 'page07.pre' &&
- chmod 0664 'page07.pre' ||
- $echo 'restore of' 'page07.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page07.pre:' 'MD5 check failed'
-07ae8f9b2a400e46ab102ab8c40a8b81 page07.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page07.pre'`"
- test 444 -eq "$shar_count" ||
- $echo 'page07.pre:' 'original size' '444,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pst ==============
-if test -f 'page02.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pst' &&
-<HR WIDTH="100%">
-<P>
-This looks a lot like our thread-pool server and it even does some things
-better. In particular, I've scoped the Task object so that it's destructor
-will have a chance to get called before the application exits.
-Notice how we write actual data into the message block though. In the thread-pool
-server we just provided a pointer. Writting the data is actually a more correct
-way of doing things since you don't get into strange pointer casting situations.
-What if you want to put complex objects into the message block though? We'll do
-that in the next tutorial, let's stick with the basics first.
-<P>
-On the next page we'll take a look at our Block object...
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pst' &&
- chmod 0664 'page02.pst' ||
- $echo 'restore of' 'page02.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pst:' 'MD5 check failed'
-10957f28adbff16015bd94bdc01cd779 page02.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pst'`"
- test 689 -eq "$shar_count" ||
- $echo 'page02.pst:' 'original size' '689,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pst ==============
-if test -f 'page03.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pst' &&
-<HR WIDTH="100%">
-<P>
-Ok, nothing really magic there. Some folks just feel a little uncomfortable
-not doing an explicit <i>delete</i> on objects they've <i>new</i>'d so I
-wanted to show you that the memory really does get cleaned up.
-X
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pst' &&
- chmod 0664 'page03.pst' ||
- $echo 'restore of' 'page03.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pst:' 'MD5 check failed'
-fe792e145798cee96c099bf4026cf8ef page03.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pst'`"
- test 236 -eq "$shar_count" ||
- $echo 'page03.pst:' 'original size' '236,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pst ==============
-if test -f 'page04.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pst' &&
-<HR WIDTH="100%">
-<P>
-The only thing here that we didn't see in the thread-pool server is the
-ACE_Barrier. The application logic really doesn't need it but it is a
-handy way to synchronize the threads at the beginning of svc(). In testing
-I found that if I didn't sync svc(), the first thread to get activated would
-tend to get all of the messages before the other threads came alive.
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pst' &&
- chmod 0664 'page04.pst' ||
- $echo 'restore of' 'page04.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pst:' 'MD5 check failed'
-2212efef5c096791808b00a5212c4376 page04.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pst'`"
- test 387 -eq "$shar_count" ||
- $echo 'page04.pst:' 'original size' '387,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pst ==============
-if test -f 'page05.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pst' &&
-<HR WIDTH="100%">
-<P>
-This is all pretty straight-forward too. One gottcha we avoided was a memory leak
-due to our shutdown message. Notice that svc() enqueues that block without bothering
-to see if there are any more threads to dequeue it. Thats why our dtor can call getq()
-without worrying about blocking infinitely: it knows the message block will be there.
-<P>
-Also notice that we haven't used <i>THR_DETACHED</i> in this
-X tutorial. Why? Because in <i>message_queue.cpp</i> we call
-X <i>wait()</i> to wait for all of the task's threads to exit.
-X That prevents the leak that we normally avoid by using <i>THR_DETACHED</i>.
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pst' &&
- chmod 0664 'page05.pst' ||
- $echo 'restore of' 'page05.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pst:' 'MD5 check failed'
-802d999314ebcf28ebbffe6fb6dedcfa page05.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pst'`"
- test 647 -eq "$shar_count" ||
- $echo 'page05.pst:' 'original size' '647,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32552
-exit 0
diff --git a/docs/tutorials/010/message_queue.cpp b/docs/tutorials/010/message_queue.cpp
deleted file mode 100644
index a67f72d01e2..00000000000
--- a/docs/tutorials/010/message_queue.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// $Id$
-
-/* To illustrate the ACE_Message_Queue, we use a derivative of
- ACE_Task<>. We also derive from ACE_Message_Block to show that we
- don't have memory leaks. */
-#include "task.h"
-#include "block.h"
-
-int
-run_test (int iterations,
- int threads)
-{
- /* Create and start an instance of our Task object. */
- Task task (threads);
-
- if (task.open () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- /* Give the threads a moment to open. This isn't really necessary
- but if we don't we find that all of our blocks are constructed and
- enqueued before any of the threads get created. Basically, the
- sleep() makes the output look more interesting. */
- ACE_OS::sleep (ACE_Time_Value (1));
-
- int i;
- for (i = 0; i < iterations; ++i)
- {
- /* Create a new message block to hold our data. Here, we ask
- for a block that has 128 bytes of data space. */
- Block *message;
- ACE_NEW_RETURN (message,
- Block (128),
- -1);
-
- /* Grab the "write pointer". This is a pointer into the data
- area where we can write our data. After writting the data you
- have to increment the wr_ptr() so that subsequent writes won't
- clobber what you've put there. */
- ACE_OS::sprintf (message->wr_ptr (),
- "This is message %d.",
- i);
- message->wr_ptr (ACE_OS::strlen (message->rd_ptr ()));
-
- /* Put the message block into the queue. One of the threads in
- the Task object will pick up the block and "do work" on it. */
- if (task.putq (message) == -1)
- break;
- }
-
- /* Once we're done, we have to signal the Task objects to shut
- down. There are several choices including: - Send a message of
- zero length - Send a message with a special content I don't like
- these choices because they're likely to interfere with application
- logic. Instead, I use the message type feature to send a message
- of type "hangup". The default type is MB_DATA, so when the tasks
- get a MB_HANGUP type, they know to go away. */
- Block *message;
-
- ACE_NEW_RETURN (message,
- Block (),
- -1);
- message->msg_type (ACE_Message_Block::MB_HANGUP);
- task.putq (message);
-
- /* Wait for the threads in our task object to go away. */
- task.wait ();
-
- return 0;
-}
-
-int
-main (int argc, char *argv[])
-{
- /* Set the number of iterations through our putq() loop and the
- number of threads to use in our Task<> derivative. */
- int iterations = argc > 1 ? atoi (argv[1]) : 9;
- int threads = argc > 2 ? atoi (argv[2]) : 2;
-
- run_test (iterations, threads);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Application exiting\n"));
-
- return 0;
-}
diff --git a/docs/tutorials/010/page01.html b/docs/tutorials/010/page01.html
deleted file mode 100644
index e1c705b3846..00000000000
--- a/docs/tutorials/010/page01.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 010</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 010</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing chunks of data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-In an earlier tutorial we briefly introduced ACE_Message_Queue. In this
-tutorial we'll go into a bit more detail.
-<P>
-ACE_Message_Queue is modeled after Unix System V IPC mechanisms. The basic
-idea is that you put a block of data into one end of the Queue and take it
-out of the other end. Your basic FIFO in other words. The SysV mechanism
-works great for passing these blocks of data between processes on the same
-host but it's a bit overkill for moving blocks between threads. You could
-use a pipe, socket or similar mechanism but that still has more overhead than
-we really want just for moving data between threads. Process-global memory
-is a good technique but then you need a way to signal the "listening" threads.
-The ACE_Message_Queue is a better approach: Create blocks of data and enqueue
-them in one thread while another thread (or threads) dequeue and perform work.
-<P>
-Kirthika's Abstract:
-<UL>
-The Message Queue is a FIFO accessible from multiple threads.
-That is, a thread puts the produced blocks of data on the message queue
-to be consumed by some other thread/threads and processed. In this
-tutorial, we see how effectively the Message Queue in a ACE_Task can be
-used to pass data among threads in the thread pool.
-(this is very similar to
-<A HREF="../007/page01.html">Tutorial 7</A>
- wherein we implemented a
-thread-pool server).Here, actual data is passed between the threads and
-also an ACE_Barrier has been used to provide synchronisation among
-multiple threads.
-<P>
-The Message Queue consists of Message Blocks, each of which has a read
-and write pointer. Using these pointers the message blocks can be
-accessed for reading and writing operations. The ACE_Task::svc() method
-will put the block onto the queue without bothering about the existence
-of a consumer for that block. A thread from the thread pool obtains the
-block from the queue, and checks to see whether the block_type is
-MB_HANGUP. If so, it puts the block back on the queue for its
-peers and exits. Otherwise, it reads the block and processes it before
-releasing it.
-<P>
-This simple tutorial makes us aware of the usage and importance of the
-Message Queue which could be used to our advantage especially for
-multithreaded applications.
-</UL>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/010/page02.html b/docs/tutorials/010/page02.html
deleted file mode 100644
index a674dee7954..00000000000
--- a/docs/tutorials/010/page02.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 010</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 010</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing chunks of data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-We'll look first at <A HREF="message_queue.cpp">main()</A>.
-<P>
-
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* To illustrate the ACE_Message_Queue, we use a derivative of
- ACE_Task&lt;>. We also derive from ACE_Message_Block to show that we
- don't have memory leaks. */</font>
-<font color=blue>#include</font> "<font color=green>task.h</font>"
-<font color=blue>#include</font> "<font color=green>block.h</font>"
-
-int
-run_test (int iterations,
- int threads)
-{
- <font color=red>/* Create and start an instance of our Task object. */</font>
- Task task (threads);
-
- if (task.open () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
-
- <font color=red>/* Give the threads a moment to open. This isn't really necessary
- but if we don't we find that all of our blocks are constructed and
- enqueued before any of the threads get created. Basically, the
- sleep() makes the output look more interesting. */</font>
- <font color=#008888>ACE_OS::sleep</font> (ACE_Time_Value (1));
-
- int i;
- for (i = 0; i &lt; iterations; ++i)
- {
- <font color=red>/* Create a new message block to hold our data. Here, we ask
- for a block that has 128 bytes of data space. */</font>
- Block *message;
- ACE_NEW_RETURN (message,
- Block (128),
- -1);
-
- <font color=red>/* Grab the "<font color=green>write pointer</font>". This is a pointer into the data
- area where we can write our data. After writting the data you
- have to increment the wr_ptr() so that subsequent writes won't
- clobber what you've put there. */</font>
- <font color=#008888>ACE_OS::sprintf</font> (message->wr_ptr (),
- "<font color=green>This is message %d.</font>",
- i);
- message->wr_ptr (<font color=#008888>ACE_OS::strlen</font> (message->rd_ptr ()));
-
- <font color=red>/* Put the message block into the queue. One of the threads in
- the Task object will pick up the block and "<font color=green>do work</font>" on it. */</font>
- if (task.putq (message) == -1)
- break;
- }
-
- <font color=red>/* Once we're done, we have to signal the Task objects to shut
- down. There are several choices including: - Send a message of
- zero length - Send a message with a special content I don't like
- these choices because they're likely to interfere with application
- logic. Instead, I use the message type feature to send a message
- of type "<font color=green>hangup</font>". The default type is MB_DATA, so when the tasks
- get a MB_HANGUP type, they know to go away. */</font>
- Block *message;
-
- ACE_NEW_RETURN (message,
- Block (),
- -1);
- message->msg_type (<font color=#008888>ACE_Message_Block::MB_HANGUP</font>);
- task.putq (message);
-
- <font color=red>/* Wait for the threads in our task object to go away. */</font>
- task.wait ();
-
- return 0;
-}
-
-int
-main (int argc, char *argv[])
-{
- <font color=red>/* Set the number of iterations through our putq() loop and the
- number of threads to use in our Task&lt;> derivative. */</font>
- int iterations = argc > 1 ? atoi (argv[1]) : 9;
- int threads = argc > 2 ? atoi (argv[2]) : 2;
-
- run_test (iterations, threads);
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Application exiting\n</font>"));
-
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-<P>
-This looks a lot like our thread-pool server and it even does some things
-better. In particular, I've scoped the Task object so that it's destructor
-will have a chance to get called before the application exits.
-Notice how we write actual data into the message block though. In the thread-pool
-server we just provided a pointer. Writting the data is actually a more correct
-way of doing things since you don't get into strange pointer casting situations.
-What if you want to put complex objects into the message block though? We'll do
-that in the next tutorial, let's stick with the basics first.
-<P>
-On the next page we'll take a look at our Block object...
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/010/page03.html b/docs/tutorials/010/page03.html
deleted file mode 100644
index c755d2f9833..00000000000
--- a/docs/tutorials/010/page03.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 010</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 010</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing chunks of data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-Our <A HREF="block.h">Block</A> object is a very simple derivative
-of the ACE_Message_Block. The only reason I created it was to prove
-that the message blocks to, indeed, get freed when we're done with 'em.
-<P>
-
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>BLOCK_H</font>
-<font color=blue>#define</font> <font color=purple>BLOCK_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Message_Block.h">ace/Message_Block.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=red>/* This simple ACE_Message_Block derivative will inform us of it's
- construction and destruction. We'll use this to assure ourselves
- that we don't have any memory leaks. In a real application, of
- course, this isn't necessary. */</font>
-class Block : public ACE_Message_Block
-{
-public:
- Block (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Block ctor 0x%x\n</font>",
- (void *) this));
- }
-
- Block (size_t size)
- : ACE_Message_Block (size)
- {
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Block ctor 0x%x\n</font>",
- (void *) this));
- }
-
- virtual ~Block (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Block dtor 0x%x\n</font>",
- (void *) this));
- }
-};
-
-<font color=blue>#endif</font> <font color=red>/* BLOCK_H */</font>
-</PRE>
-<HR WIDTH="100%">
-<P>
-Ok, nothing really magic there. Some folks just feel a little uncomfortable
-not doing an explicit <i>delete</i> on objects they've <i>new</i>'d so I
-wanted to show you that the memory really does get cleaned up.
-
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/010/page04.html b/docs/tutorials/010/page04.html
deleted file mode 100644
index fe622fee13e..00000000000
--- a/docs/tutorials/010/page04.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 010</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 010</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing chunks of data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-Our <A HREF="task.h">Task</A> object executes in one or more threads
-and reads from the message queue it contains.
-<P>
-
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>TASK_H</font>
-<font color=blue>#define</font> <font color=purple>TASK_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Task.h">ace/Task.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=red>/* Like the thread-pool server tutorial, we'll derive from ACE_Task&lt;>.
- Our goal here is to show off the ACE_Message_Queue and the best way
- to do that is to use one to pass data between threads. The easiest
- way to create threads is with ACE_Task&lt;> */</font>
-class Task : public ACE_Task &lt;ACE_MT_SYNCH>
-{
-public:
-
- typedef ACE_Task &lt;ACE_MT_SYNCH> inherited;
-
- <font color=red>/* The constructor/destructor are simple but take care of some
- necessary housekeeping. */</font>
- Task (size_t n_threads);
- ~Task (void);
-
- <font color=red>/* open() will kick off our thread pool for us. */</font>
- int open (void * = 0);
-
- <font color=red>/* Our worker method */</font>
- int svc (void);
-
- <font color=red>/* All we'll do here is print a message to the user. */</font>
- int close (u_long flags = 0);
-
-protected:
- <font color=red>/* Just to be clever, I'll use an ACE_Barrier to cause the threads
- to sync in svc() before doing any real work. */</font>
- ACE_Barrier barrier_;
-
- size_t n_threads_;
- <font color=red>// Number of threads in the pool.</font>
-};
-
-<font color=blue>#endif</font> <font color=red>/* TASK_H */</font>
-</PRE>
-<HR WIDTH="100%">
-<P>
-The only thing here that we didn't see in the thread-pool server is the
-ACE_Barrier. The application logic really doesn't need it but it is a
-handy way to synchronize the threads at the beginning of svc(). In testing
-I found that if I didn't sync svc(), the first thread to get activated would
-tend to get all of the messages before the other threads came alive.
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/010/page05.html b/docs/tutorials/010/page05.html
deleted file mode 100644
index 1e9ddef1cc6..00000000000
--- a/docs/tutorials/010/page05.html
+++ /dev/null
@@ -1,171 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 010</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 010</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing chunks of data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-Our <A HREF="task.cpp">Task</A> object definition.
-<P>
-Something to look at here is the ACE_Barrier usage. In the
-constructor, we tell the barrier how many threads we're using. Then,
-in the svc() method, we use the barrier's wait() method. You can
-think of the barrier as a semaphore initialized to the thread count.
- Each time wait()
-is invoked, the semaphore is decremented and the thread is blocked.
- When the count equals zero, all threads are unblocked and allowed to
-continue.
-<P>
-<font size=-1>Note: This isn't the way ACE_Barrier really works, it's
-just an analogy</font>
-
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>task.h</font>"
-<font color=blue>#include</font> "<font color=green>block.h</font>"
-
-<font color=red>/* Set our housekeeping pointer to NULL and tell the user we exist. */</font>
-<font color=#008888>Task::Task</font> (size_t n_threads)
- : barrier_ (n_threads),
- n_threads_ (n_threads)
-{
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Task ctor 0x%x\n</font>",
- (void *) this));
-}
-
-<font color=red>/* Take care of cleanup & tell the user we're going away. */</font>
-<font color=#008888>Task::~Task</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Task dtor 0x%x\n</font>",
- (void *) this));
-
- <font color=red>/* Get our shutdown notification out of the queue and release it. */</font>
- ACE_Message_Block *message;
-
- <font color=red>/* Like the getq() in svc() below, this will block until a message
- arrives. By blocking, we know that the destruction will be paused
- until the last thread is done with the message block. */</font>
- this->getq (message);
- message->release ();
-}
-
-<font color=red>/* Open the object to do work. Next, we activate the Task into the
- number of requested threads. */</font>
-int
-<font color=#008888>Task::open</font> (void *unused)
-{
- ACE_UNUSED_ARG (unused);
-
- return this->activate (THR_NEW_LWP,
- n_threads_);
-}
-
-<font color=red>/* Tell the user we're closing and invoke the baseclass' close() to
- take care of things. */</font>
-int
-<font color=#008888>Task::close</font> (u_long flags)
-{
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Task close 0x%x\n</font>",
- (void *) this));
- return <font color=#008888>inherited::close</font> (flags);
-}
-
-<font color=red>/* Our svc() method waits for work on the queue and then processes
- that work. */</font>
-int
-<font color=#008888>Task::svc</font> (void)
-{
- <font color=red>/* This will cause all of the threads to wait on this line until all
- have invoked this method. The net result is that no thread in the
- Task will get a shot at the queue until all of the threads are
- active. There's no real need to do this but it's an easy intro
- into the use of ACE_Barrier. */</font>
- this->barrier_.wait ();
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Task 0x%x starts in thread %d\n</font>",
- (void *) this,
- <font color=#008888>ACE_Thread::self</font> ()));
-
- <font color=red>/* Remember that get() needs a reference to a pointer. To save
- stack thrashing we'll go ahead and create a pointer outside of the
- almost- infinite loop. */</font>
- ACE_Message_Block *message;
-
- for (;;)
- {
- <font color=red>/* Get a message from the queue. Note that getq() will block
- until a message shows up. That makes us very
- processor-friendly. */</font>
- if (this->getq (message) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>getq</font>"),
- -1);
- <font color=red>/* If we got the shutdown request, we need to go away. */</font>
- if (message->msg_type () == <font color=#008888>ACE_Message_Block::MB_HANGUP</font>)
- {
- <font color=red>/* Forward the request to any peer threads. */</font>
- this->putq (message);
-
- <font color=red>/* Leave the infinite loop so that the thread exits. */</font>
- break;
- }
-
- <font color=red>/* The message queue stores char* data. We use rd_ptr() to get
- to the beginning of the data. */</font>
- const char *cp = message->rd_ptr ();
-
- <font color=red>/* Move the rd_ptr() past the data we read. This isn't real
- useful here since we won't be reading any more from the block
- but it's a good habit to get into. */</font>
- message->rd_ptr (<font color=#008888>ACE_OS::strlen</font> (cp));
-
- <font color=red>/* Display the block's address and data to the user. */</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Block 0x%x contains (%s)\n</font>",
- (void *) message,
- cp));
-
- <font color=red>/* Pretend that it takes a while to process the data. */</font>
- <font color=#008888>ACE_OS::sleep</font> (ACE_Time_Value (0, 5000));
-
- <font color=red>/* Release the message block. Notice that we never delete a
- message block. Blocks are reference counted & the release()
- method will take care of the delete when there are no more
- references to the data. */</font>
- message->release ();
- }
-
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-<P>
-This is all pretty straight-forward too. One gottcha we avoided was a memory leak
-due to our shutdown message. Notice that svc() enqueues that block without bothering
-to see if there are any more threads to dequeue it. Thats why our dtor can call getq()
-without worrying about blocking infinitely: it knows the message block will be there.
-<P>
-Also notice that we haven't used <i>THR_DETACHED</i> in this
- tutorial. Why? Because in <i>message_queue.cpp</i> we call
- <i>wait()</i> to wait for all of the task's threads to exit.
- That prevents the leak that we normally avoid by using <i>THR_DETACHED</i>.
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/010/page06.html b/docs/tutorials/010/page06.html
deleted file mode 100644
index 0a34657aca2..00000000000
--- a/docs/tutorials/010/page06.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 010</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 010</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing chunks of data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-Since I added Block just to give us output, let's take a look at that output.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-[jcej@chiroptera 010]$./message_queue 4 2
-(8910|1024) Task ctor 0xbffff9c4
-(8910|2050) Task 0xbffff9c4 starts in thread 2050
-(8910|1025) Task 0xbffff9c4 starts in thread 1025
-(8910|1024) Block ctor 0x8052398
-(8910|1024) Block ctor 0x8052488
-(8910|1024) Block ctor 0x8052578
-(8910|1024) Block ctor 0x8052668
-(8910|1024) Block ctor 0x8052758
-(8910|1025) Block 0x8052398 contains (This is message 0.)
-(8910|2050) Block 0x8052488 contains (This is message 1.)
-(8910|1025) Block dtor 0x8052398
-(8910|1025) Block 0x8052578 contains (This is message 2.)
-(8910|2050) Block dtor 0x8052488
-(8910|2050) Block 0x8052668 contains (This is message 3.)
-(8910|1025) Block dtor 0x8052578
-(8910|1025) Task close 0xbffff9c4
-(8910|2050) Block dtor 0x8052668
-(8910|2050) Task close 0xbffff9c4
-(8910|1024) Task dtor 0xbffff9c4
-(8910|1024) Block dtor 0x8052758
-(8910|1024) Application exiting
-[jcej@chiroptera 010]$
-</PRE>
-<HR WIDTH="100%">
-<P>
-Notice that each <i>Block ctor</i> has a corresponding <i>Block dtor</i>.
-We've proven the point that all memory gets cleaned up. We also see that
-both threads get to do some work and that both close as expected.
-<P>
-It's also worth mentioning that it's just an accident that all of the blocks
-are created and enqueued before any are processed. Run the test on a multi-processor
-or with more iterations and you'll see some get processed before all are created.
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page07.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/010/page07.html b/docs/tutorials/010/page07.html
deleted file mode 100644
index 7f3ea0c031f..00000000000
--- a/docs/tutorials/010/page07.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 010</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 010</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing chunks of data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-That's it for Tutorial 10. There are some esoteric changes between the thread-pool server
-and this application but it's basically the same. In the next tutorial I'll modify this just
-a bit to move non-trivial data through the queue.
-<P>
-
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="block.h">block.h</A>
-<LI><A HREF="message_queue.cpp">message_queue.cpp</A>
-<LI><A HREF="task.cpp">task.cpp</A>
-<LI><A HREF="task.h">task.h</A>
-</UL>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/010/task.cpp b/docs/tutorials/010/task.cpp
deleted file mode 100644
index 238b1882727..00000000000
--- a/docs/tutorials/010/task.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-// $Id$
-
-#include "task.h"
-#include "block.h"
-
-/* Set our housekeeping pointer to NULL and tell the user we exist. */
-Task::Task (size_t n_threads)
- : barrier_ (n_threads),
- n_threads_ (n_threads)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Task ctor 0x%x\n",
- (void *) this));
-}
-
-/* Take care of cleanup & tell the user we're going away. */
-Task::~Task (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Task dtor 0x%x\n",
- (void *) this));
-
- /* Get our shutdown notification out of the queue and release it. */
- ACE_Message_Block *message;
-
- /* Like the getq() in svc() below, this will block until a message
- arrives. By blocking, we know that the destruction will be paused
- until the last thread is done with the message block. */
- this->getq (message);
- message->release ();
-}
-
-/* Open the object to do work. Next, we activate the Task into the
- number of requested threads. */
-int
-Task::open (void *unused)
-{
- ACE_UNUSED_ARG (unused);
-
- return this->activate (THR_NEW_LWP,
- n_threads_);
-}
-
-/* Tell the user we're closing and invoke the baseclass' close() to
- take care of things. */
-int
-Task::close (u_long flags)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Task close 0x%x\n",
- (void *) this));
- return inherited::close (flags);
-}
-
-/* Our svc() method waits for work on the queue and then processes
- that work. */
-int
-Task::svc (void)
-{
- /* This will cause all of the threads to wait on this line until all
- have invoked this method. The net result is that no thread in the
- Task will get a shot at the queue until all of the threads are
- active. There's no real need to do this but it's an easy intro
- into the use of ACE_Barrier. */
- this->barrier_.wait ();
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Task 0x%x starts in thread %d\n",
- (void *) this,
- ACE_Thread::self ()));
-
- /* Remember that get() needs a reference to a pointer. To save
- stack thrashing we'll go ahead and create a pointer outside of the
- almost- infinite loop. */
- ACE_Message_Block *message;
-
- for (;;)
- {
- /* Get a message from the queue. Note that getq() will block
- until a message shows up. That makes us very
- processor-friendly. */
- if (this->getq (message) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "getq"),
- -1);
- /* If we got the shutdown request, we need to go away. */
- if (message->msg_type () == ACE_Message_Block::MB_HANGUP)
- {
- /* Forward the request to any peer threads. */
- this->putq (message);
-
- /* Leave the infinite loop so that the thread exits. */
- break;
- }
-
- /* The message queue stores char* data. We use rd_ptr() to get
- to the beginning of the data. */
- const char *cp = message->rd_ptr ();
-
- /* Move the rd_ptr() past the data we read. This isn't real
- useful here since we won't be reading any more from the block
- but it's a good habit to get into. */
- message->rd_ptr (ACE_OS::strlen (cp));
-
- /* Display the block's address and data to the user. */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Block 0x%x contains (%s)\n",
- (void *) message,
- cp));
-
- /* Pretend that it takes a while to process the data. */
- ACE_OS::sleep (ACE_Time_Value (0, 5000));
-
- /* Release the message block. Notice that we never delete a
- message block. Blocks are reference counted & the release()
- method will take care of the delete when there are no more
- references to the data. */
- message->release ();
- }
-
- return 0;
-}
diff --git a/docs/tutorials/010/task.h b/docs/tutorials/010/task.h
deleted file mode 100644
index 4e0b974a60d..00000000000
--- a/docs/tutorials/010/task.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// $Id$
-
-#ifndef TASK_H
-#define TASK_H
-
-#include "ace/Task.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* Like the thread-pool server tutorial, we'll derive from ACE_Task<>.
- Our goal here is to show off the ACE_Message_Queue and the best way
- to do that is to use one to pass data between threads. The easiest
- way to create threads is with ACE_Task<> */
-class Task : public ACE_Task <ACE_MT_SYNCH>
-{
-public:
-
- typedef ACE_Task <ACE_MT_SYNCH> inherited;
-
- /* The constructor/destructor are simple but take care of some
- necessary housekeeping. */
- Task (size_t n_threads);
- ~Task (void);
-
- /* open() will kick off our thread pool for us. */
- int open (void * = 0);
-
- /* Our worker method */
- int svc (void);
-
- /* All we'll do here is print a message to the user. */
- int close (u_long flags = 0);
-
-protected:
- /* Just to be clever, I'll use an ACE_Barrier to cause the threads
- to sync in svc() before doing any real work. */
- ACE_Barrier barrier_;
-
- size_t n_threads_;
- // Number of threads in the pool.
-};
-
-#endif /* TASK_H */
diff --git a/docs/tutorials/011/011.dsp b/docs/tutorials/011/011.dsp
deleted file mode 100644
index 0118e99d156..00000000000
--- a/docs/tutorials/011/011.dsp
+++ /dev/null
@@ -1,116 +0,0 @@
-# Microsoft Developer Studio Project File - Name="011" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=011 - 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 "011.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 "011.mak" CFG="011 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "011 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "011 - 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)" == "011 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "011 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"message_queue.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "011 - Win32 Release"
-# Name "011 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\message_queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\task.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\block.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\data.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\task.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/011/Makefile b/docs/tutorials/011/Makefile
deleted file mode 100644
index 41d9ecfb6bd..00000000000
--- a/docs/tutorials/011/Makefile
+++ /dev/null
@@ -1,73 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = message_queue
-
-FILES =
-FILES += task
-
-BUILD = $(VBIN)
-
-SRC = $(addsuffix .cpp,$(BIN)) $(addsuffix .cpp,$(FILES))
-
-HDR = *.h
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include .depend
diff --git a/docs/tutorials/011/block.h b/docs/tutorials/011/block.h
deleted file mode 100644
index 28443494c93..00000000000
--- a/docs/tutorials/011/block.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// $Id$
-
-#ifndef BLOCK_H
-#define BLOCK_H
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class Block : public ACE_Message_Block
-{
-public:
- Block (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Block ctor 0x%x\n",
- (void *) this));
- }
-
- Block (size_t size)
- : ACE_Message_Block (size)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Block ctor 0x%x\n",
- (void *) this));
- }
-
- virtual ~Block (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Block dtor 0x%x\n",
- (void *) this));
- }
-};
-
-#endif /* BLOCK_H */
diff --git a/docs/tutorials/011/combine.shar b/docs/tutorials/011/combine.shar
deleted file mode 100644
index 53cf2f988a2..00000000000
--- a/docs/tutorials/011/combine.shar
+++ /dev/null
@@ -1,489 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/011'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 442 -rw-rw-r-- hdr
-# 48 -rw-rw-r-- bodies
-# 869 -rw-rw-r-- page01.pre
-# 164 -rw-rw-r-- page02.pre
-# 174 -rw-rw-r-- page03.pre
-# 127 -rw-rw-r-- page04.pre
-# 2691 -rw-rw-r-- page05.pre
-# 707 -rw-rw-r-- page06.pre
-# 351 -rw-rw-r-- page02.pst
-# 365 -rw-rw-r-- page03.pst
-# 129 -rw-rw-r-- page04.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32588; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 011</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 011</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Passing non-trivial data through an ACE_Message_Queue</FONT></B></CENTER>
-X
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-cf10a170c9ca8512b7051526e2dcf83c hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 442 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '442,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-message_queue.cpp
-task.h task.cpp
-data.h
-SHAR_EOF
- $shar_touch -am 0124155199 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-db3ba3829b49952c833adb921acd3d3f bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 48 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '48,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-<P>
-In the previous tutorial we learned how to put text into a message queue.
-While that may be useful, it isn't very exciting or realistic. In most
-cases you'll need to move complex data structures between your threads.
-<P>
-In this tutorial I'll expand the previous by moving not only a text string
-but also a more complex object. In the next tutorial I'll change things
-again so that we move the complex object a bit more efficiently.
-<P>
-A simple abstract for a simple tutorial:
-<UL>
-In this tutorial, we put some data into the blocks of the message queue.
-We copy the data from a Data object into the block and put it on the
-queue. The block is then dequeued by the thread which picks it up and
-processes it. This tutorial is very similar to the previous
-one with the extra touch being population of the blocks with data.
-</UL>
-(Abstract by Kirthika, as always.)
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-58768929bbe513a9fa2302b1fe3170be page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 869 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '869,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-We'll look first at <A HREF="message_queue.cpp">main()</A>. A large part of this is
-the same as before, so I've only commented the changes.
-<P>
-X
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-ccd60d44cf4f9730aa16ff042f324c8e page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 164 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '164,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-X
-Our Task object <A HREF="task.h">declaration</a> and <A HREF="task.cpp">definition</a>.
-X As with message_queue.cpp,
-I've only commented the changes.
-<P>
-X
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-e99896d191834752e7e07317af06ea0c page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 174 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '174,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-X
-Before we go further, let's look at this <A HREF="data.h">Data</A> object
-that's causing all the fuss.
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-4fe23822fef63921fa81cbf97e25bd5e page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 127 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '127,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-X
-Let's take a look at this new program's output:
-X
-<P>
-<HR WIDTH="100%">
-<PRE>
-[jcej@chiroptera 011]$./message_queue 4 2
-(12108|1024) Task ctor 0xbffff9c8
-(12108|2050) Task 0xbffff9c8 starts in thread 2050
-(12108|1025) Task 0xbffff9c8 starts in thread 1025
-(12108|1024) DataBase ctor 0xbffff9c0
-(12108|1024) Data ctor 0xbffff9c0 for message 0
-(12108|1024) Block ctor 0x8052d08
-(12108|1024) Data dtor 0xbffff9c0
-(12108|1024) DataBase dtor 0xbffff9c0
-(12108|1024) DataBase ctor 0xbffff9c0
-(12108|1024) Data ctor 0xbffff9c0 for message 1
-(12108|1024) Block ctor 0x8052e00
-(12108|1024) Data dtor 0xbffff9c0
-(12108|1024) DataBase dtor 0xbffff9c0
-(12108|1024) DataBase ctor 0xbffff9c0
-(12108|1024) Data ctor 0xbffff9c0 for message 2
-(12108|1024) Block ctor 0x8052ef8
-(12108|1024) Data dtor 0xbffff9c0
-(12108|1024) DataBase dtor 0xbffff9c0
-(12108|1024) DataBase ctor 0xbffff9c0
-(12108|1024) Data ctor 0xbffff9c0 for message 3
-(12108|1024) Block ctor 0x8052ff0
-(12108|1024) Data dtor 0xbffff9c0
-(12108|1024) DataBase dtor 0xbffff9c0
-(12108|1024) Block ctor 0x80530e8
-(12108|1025) Block 0x8052d08 contains (This is message 0.)
-(12108|1025) DataBase ctor 0xbf9ffe20
-(12108|1025) Data ctor 0xbf9ffe20
-(12108|1025) DataBase instance 0xbf9ffe20
-(12108|1025) I am a Data object for message 0
-(12108|1025) Block dtor 0x8052d08
-(12108|1025) Data dtor 0xbf9ffe20
-(12108|1025) DataBase dtor 0xbf9ffe20
-(12108|1025) Block 0x8052e00 contains (This is message 1.)
-(12108|1025) DataBase ctor 0xbf9ffe20
-(12108|1025) Data ctor 0xbf9ffe20
-(12108|1025) DataBase instance 0xbf9ffe20
-(12108|1025) I am a Data object for message 1
-(12108|1025) Block dtor 0x8052e00
-(12108|1025) Data dtor 0xbf9ffe20
-(12108|1025) DataBase dtor 0xbf9ffe20
-(12108|1025) Block 0x8052ef8 contains (This is message 2.)
-(12108|1025) DataBase ctor 0xbf9ffe20
-(12108|1025) Data ctor 0xbf9ffe20
-(12108|1025) DataBase instance 0xbf9ffe20
-(12108|1025) I am a Data object for message 2
-(12108|1025) Block dtor 0x8052ef8
-(12108|1025) Data dtor 0xbf9ffe20
-(12108|1025) DataBase dtor 0xbf9ffe20
-(12108|1025) Block 0x8052ff0 contains (This is message 3.)
-(12108|1025) DataBase ctor 0xbf9ffe20
-(12108|1025) Data ctor 0xbf9ffe20
-(12108|1025) DataBase instance 0xbf9ffe20
-(12108|1025) I am a Data object for message 3
-(12108|2050) Task close 0xbffff9c8
-(12108|1025) Block dtor 0x8052ff0
-(12108|1025) Data dtor 0xbf9ffe20
-(12108|1025) DataBase dtor 0xbf9ffe20
-(12108|1025) Task close 0xbffff9c8
-(12108|1024) Task dtor 0xbffff9c8
-(12108|1024) Block dtor 0x80530e8
-(12108|1024) Application exiting
-[jcej@chiroptera 011]$
-</PRE>
-<HR WIDTH="100%">
-<P>
-Other than being more verbose because of the Data object, this shows us
-the same thing we've seen before.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-b95ed571240b8383db0e0c0b07d04971 page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 2691 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '2691,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-So, this time we stuffed an object into the message queue instead of just text
-data. Each time required two object constructions (and subsequent destructions)
-and two "deep" copy operations on the object. There might actually be times when
-this is OK for your application but I prefer to keep those things down to a
-minimum. In the next tutorial I'll show you a way to do that.
-<P>
-X
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="block.h">block.h</A>
-<LI><A HREF="data.h">data.h</A>*
-<LI><A HREF="message_queue.cpp">message_queue.cpp</A>
-<LI><A HREF="task.cpp">task.cpp</A>
-<LI><A HREF="task.h">task.h</A>
-</UL>
-X
-* data.h hasn't changed at all from Tutorial 7 so I didn't devote a
-X page to it.
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-17d64bbe275773a80d7d767e04e0474c page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 707 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '707,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pst ==============
-if test -f 'page02.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pst' &&
-<HR WIDTH="100%">
-<P>
-The new trick here is the use of copy() to copy our abstract data object
-into the message block memory. Notice that it's OK to let the Data object
-go out of scope at that point since we've got a separate copy. If you've
-got something with a non-trivial ctor/dtor then this won't work. We'll address
-that in the next tutorial.
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pst' &&
- chmod 0664 'page02.pst' ||
- $echo 'restore of' 'page02.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pst:' 'MD5 check failed'
-89fa13e74842bc65092e0e6f61fdd889 page02.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pst'`"
- test 351 -eq "$shar_count" ||
- $echo 'page02.pst:' 'original size' '351,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pst ==============
-if test -f 'page03.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pst' &&
-<HR WIDTH="100%">
-<P>
-Notice how we had to create a temporary Data object to copy the stuff out
-of the message block? Again, if there were non-trivial ctor/dtors involved
-then this wouldn't work at all.
-<P>
-Again, like <A HREF="../010/page01.html">Tutorial 10</A> we've skipped
-<i>THR_DETACHED</i> because we <i>wait()</i> for the threads to exit
-X elsewhere.
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pst' &&
- chmod 0664 'page03.pst' ||
- $echo 'restore of' 'page03.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pst:' 'MD5 check failed'
-1005245771b0756716fa87dfdf966155 page03.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pst'`"
- test 365 -eq "$shar_count" ||
- $echo 'page03.pst:' 'original size' '365,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pst ==============
-if test -f 'page04.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pst' &&
-<HR WIDTH="100%">
-<P>
-Ok, no mysterious magic on this one. Just a simple object and derivative
-that report their existence.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pst' &&
- chmod 0664 'page04.pst' ||
- $echo 'restore of' 'page04.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pst:' 'MD5 check failed'
-777ab8789fb82b1e280b9e127983c4b0 page04.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pst'`"
- test 129 -eq "$shar_count" ||
- $echo 'page04.pst:' 'original size' '129,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32588
-exit 0
diff --git a/docs/tutorials/011/data.h b/docs/tutorials/011/data.h
deleted file mode 100644
index 098644c9a6f..00000000000
--- a/docs/tutorials/011/data.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-#ifndef DATA_H
-#define DATA_H
-
-class DataBase
-{
-public:
- DataBase (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) DataBase ctor 0x%x\n",
- (void *) this));
- }
- virtual ~DataBase (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) DataBase dtor 0x%x\n",
- (void *) this));
- }
-
- void who_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) DataBase instance 0x%x\n",
- (void *) this));
- }
-
- virtual void what_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) I am a DataBase object\n"));
- }
-
-};
-
-class Data : public DataBase
-{
-public:
- Data (void)
- : message_ (-1)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Data ctor 0x%x\n",
- (void *) this));
- }
-
- Data (int message)
- : message_ (message)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Data ctor 0x%x for message %d\n",
- (void *) this, message_));
- }
- virtual ~Data (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Data dtor 0x%x\n",
- (void *) this));
- }
-
- void what_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) I am a Data object for message %d\n",
- message_));
- }
-
-protected:
- int message_;
-};
-
-#endif /* DATA_H */
diff --git a/docs/tutorials/011/message_queue.cpp b/docs/tutorials/011/message_queue.cpp
deleted file mode 100644
index a0813db2e69..00000000000
--- a/docs/tutorials/011/message_queue.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-// $Id$
-
-/* Most of this is the same as the previous tutorial, so I'll just
- point out the differences. */
-#include "task.h"
-#include "block.h"
-#include "data.h"
-
-
-static int
-run_test (int iterations,
- int threads)
-
-{
- Task task (threads);
-
- if (task.open () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- ACE_OS::sleep (ACE_Time_Value (1));
-
- int i;
- for (i = 0; i < iterations; ++i)
- {
- /* Construct a Data object that we'll put into the Queue. */
- Data data (i);
-
- /* Create a block large enough for our Data object as well as a
- text message. */
- Block *message;
-
- ACE_NEW_RETURN (message,
- Block (sizeof (data) + 128),
- -1);
-
- /* As before, put a text message into the block. */
- ACE_OS::sprintf (message->wr_ptr (), "This is message %d.", i);
- message->wr_ptr (strlen (message->rd_ptr ()));
-
- message->wr_ptr (1); // Move beyond the NULL
-
- /* To copy arbitrary data into a message block, we use the
- copy() method. Since it wants a 'const char*', we have to
- cast our Data pointer.
-
- Note that copy() will advance the wr_ptr() for us. This means
- we don't have to do it ourselves! If you do advance it, it
- will be way beyond what you want. */
- message->copy ((const char *) &data,
- sizeof (data));
-
- if (task.putq (message) == -1)
- break;
- }
-
- Block *message;
- ACE_NEW_RETURN (message,
- Block,
- -1);
- message->msg_type (ACE_Message_Block::MB_HANGUP);
- task.putq (message);
-
- task.wait ();
-
- return 0;
-}
-
-int
-main (int argc, char *argv[])
-{
- int iterations = argc > 1 ? atoi (argv[1]) : 4;
- int threads = argc > 2 ? atoi (argv[2]) : 2;
-
- run_test (iterations,
- threads);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Application exiting\n"));
-
- return 0;
-}
diff --git a/docs/tutorials/011/page01.html b/docs/tutorials/011/page01.html
deleted file mode 100644
index 9fdddc8f189..00000000000
--- a/docs/tutorials/011/page01.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 011</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 011</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing non-trivial data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-In the previous tutorial we learned how to put text into a message queue.
-While that may be useful, it isn't very exciting or realistic. In most
-cases you'll need to move complex data structures between your threads.
-<P>
-In this tutorial I'll expand the previous by moving not only a text string
-but also a more complex object. In the next tutorial I'll change things
-again so that we move the complex object a bit more efficiently.
-<P>
-A simple abstract for a simple tutorial:
-<UL>
-In this tutorial, we put some data into the blocks of the message queue.
-We copy the data from a Data object into the block and put it on the
-queue. The block is then dequeued by the thread which picks it up and
-processes it. This tutorial is very similar to the previous
-one with the extra touch being population of the blocks with data.
-</UL>
-(Abstract by Kirthika, as always.)
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/011/page02.html b/docs/tutorials/011/page02.html
deleted file mode 100644
index 63d55989641..00000000000
--- a/docs/tutorials/011/page02.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 011</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 011</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing non-trivial data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-We'll look first at <A HREF="message_queue.cpp">main()</A>. A large part of this is
-the same as before, so I've only commented the changes.
-<P>
-
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* Most of this is the same as the previous tutorial, so I'll just
- point out the differences. */</font>
-<font color=blue>#include</font> "<font color=green>task.h</font>"
-<font color=blue>#include</font> "<font color=green>block.h</font>"
-<font color=blue>#include</font> "<font color=green>data.h</font>"
-
-
-static int
-run_test (int iterations,
- int threads)
-
-{
- Task task (threads);
-
- if (task.open () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>open</font>"),
- -1);
-
- <font color=#008888>ACE_OS::sleep</font> (ACE_Time_Value (1));
-
- int i;
- for (i = 0; i &lt; iterations; ++i)
- {
- <font color=red>/* Construct a Data object that we'll put into the Queue. */</font>
- Data data (i);
-
- <font color=red>/* Create a block large enough for our Data object as well as a
- text message. */</font>
- Block *message;
-
- ACE_NEW_RETURN (message,
- Block (sizeof (data) + 128),
- -1);
-
- <font color=red>/* As before, put a text message into the block. */</font>
- <font color=#008888>ACE_OS::sprintf</font> (message->wr_ptr (), "<font color=green>This is message %d.</font>", i);
- message->wr_ptr (strlen (message->rd_ptr ()));
-
- message->wr_ptr (1); <font color=red>// Move beyond the NULL</font>
-
- <font color=red>/* To copy arbitrary data into a message block, we use the
- copy() method. Since it wants a 'const char*', we have to
- cast our Data pointer.
-
- Note that copy() will advance the wr_ptr() for us. This means
- we don't have to do it ourselves! If you do advance it, it
- will be way beyond what you want. */</font>
- message->copy ((const char *) &data,
- sizeof (data));
-
- if (task.putq (message) == -1)
- break;
- }
-
- Block *message;
- ACE_NEW_RETURN (message,
- Block,
- -1);
- message->msg_type (<font color=#008888>ACE_Message_Block::MB_HANGUP</font>);
- task.putq (message);
-
- task.wait ();
-
- return 0;
-}
-
-int
-main (int argc, char *argv[])
-{
- int iterations = argc > 1 ? atoi (argv[1]) : 4;
- int threads = argc > 2 ? atoi (argv[2]) : 2;
-
- run_test (iterations,
- threads);
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Application exiting\n</font>"));
-
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-<P>
-The new trick here is the use of copy() to copy our abstract data object
-into the message block memory. Notice that it's OK to let the Data object
-go out of scope at that point since we've got a separate copy. If you've
-got something with a non-trivial ctor/dtor then this won't work. We'll address
-that in the next tutorial.
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/011/page03.html b/docs/tutorials/011/page03.html
deleted file mode 100644
index 6426920642c..00000000000
--- a/docs/tutorials/011/page03.html
+++ /dev/null
@@ -1,189 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 011</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 011</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing non-trivial data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-Our Task object <A HREF="task.h">declaration</a> and <A HREF="task.cpp">definition</a>.
- As with message_queue.cpp,
-I've only commented the changes.
-<P>
-
-<HR WIDTH="100%">
-<HR width=50%><P><center>task.h</center><HR width=50%>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>TASK_H</font>
-<font color=blue>#define</font> <font color=purple>TASK_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Task.h">ace/Task.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-class Task : public ACE_Task &lt;ACE_MT_SYNCH>
-{
-public:
-
- typedef ACE_Task &lt;ACE_MT_SYNCH> inherited;
-
- Task (size_t n_threads);
- ~Task (void);
-
- int open (void * = 0);
-
- int svc (void);
-
- int close (u_long flags = 0);
-
-protected:
- ACE_Barrier barrier_;
-
- size_t n_threads_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* TASK_H */</font>
-</PRE>
-<HR width=50%><P><center>task.cpp</center><HR width=50%>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>task.h</font>"
-<font color=blue>#include</font> "<font color=green>block.h</font>"
-<font color=blue>#include</font> "<font color=green>data.h</font>"
-
-<font color=#008888>Task::Task</font> (size_t n_threads)
- : barrier_ (n_threads),
- n_threads_ (n_threads)
-{
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Task ctor 0x%x\n</font>",
- (void *) this));
-}
-
-<font color=#008888>Task::~Task</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Task dtor 0x%x\n</font>",
- (void *) this));
-
- ACE_Message_Block *message;
- this->getq (message);
- message->release ();
-}
-
-int
-<font color=#008888>Task::open</font> (void *)
-{
- return this->activate (THR_NEW_LWP,
- this->n_threads_);
-
-}
-
-int
-<font color=#008888>Task::close</font> (u_long flags)
-{
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Task close 0x%x\n</font>",
- (void *) this));
- return <font color=#008888>inherited::close</font> (flags);
-}
-
-int
-<font color=#008888>Task::svc</font> (void)
-{
- this->barrier_.wait ();
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Task 0x%x starts in thread %d\n</font>",
- (void *) this,
- <font color=#008888>ACE_Thread::self</font> ()));
-
- ACE_Message_Block *message;
-
- for (;;)
- {
- if (this->getq (message) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>getq</font>"),
- -1);
-
- if (message->msg_type () == <font color=#008888>ACE_Message_Block::MB_HANGUP</font>)
- {
- this->putq (message);
-
- break;
- }
-
- const char *cp = message->rd_ptr ();
- <font color=red>// Don't forget to skip the NULL we inserted</font>
- message->rd_ptr (<font color=#008888>ACE_OS::strlen</font> (cp) + 1);
-
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Block 0x%x contains (%s)\n</font>",
- (void *) message,
- cp));
-
- <font color=red>/* Create a Data object into which we can extract the message
- block contents. */</font>
- Data data;
-
- <font color=red>/* Use the rd_ptr() to access the message block data. Note that
- we've already moved it past the text string in the block. */</font>
- <font color=#008888>ACE_OS::memmove</font> ((char *) &data,
- message->rd_ptr (),
- sizeof (data));
- message->rd_ptr (sizeof (data)); <font color=red>// Move the rd_ptr() beyond the data.</font>
-
- <font color=red>/* Invoke a couple of method calls on the object we constructed. */</font>
- data.who_am_i ();
- data.what_am_i ();
-
- <font color=red>/* An alternate approach:
-
- Data * data;
- data = (Data *)message->rd_ptr();
- data->who_am_i();
- data->what_am_i();
- message->rd_ptr(sizeof(Data));
-
- Even though this cuts down on the number of copies &
- constructions, I'm not real fond of it. You can get into
- trouble in a hurry by treating memory blocks as multiple data
- types... */</font>
-
-
- <font color=#008888>ACE_OS::sleep</font> (ACE_Time_Value (0, 5000));
-
- message->release ();
- }
-
- return 0;
-}
-</PRE>
-<HR WIDTH="100%">
-<P>
-Notice how we had to create a temporary Data object to copy the stuff out
-of the message block? Again, if there were non-trivial ctor/dtors involved
-then this wouldn't work at all.
-<P>
-Again, like <A HREF="../010/page01.html">Tutorial 10</A> we've skipped
-<i>THR_DETACHED</i> because we <i>wait()</i> for the threads to exit
- elsewhere.
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/011/page04.html b/docs/tutorials/011/page04.html
deleted file mode 100644
index 04fb9f8a006..00000000000
--- a/docs/tutorials/011/page04.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 011</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 011</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing non-trivial data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-Before we go further, let's look at this <A HREF="data.h">Data</A> object
-that's causing all the fuss.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>DATA_H</font>
-<font color=blue>#define</font> <font color=purple>DATA_H</font>
-
-class DataBase
-{
-public:
- DataBase (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) DataBase ctor 0x%x\n</font>",
- (void *) this));
- }
- virtual ~DataBase (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) DataBase dtor 0x%x\n</font>",
- (void *) this));
- }
-
- void who_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) DataBase instance 0x%x\n</font>",
- (void *) this));
- }
-
- virtual void what_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) I am a DataBase object\n</font>"));
- }
-
-};
-
-class Data : public DataBase
-{
-public:
- Data (void)
- : message_ (-1)
- {
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Data ctor 0x%x\n</font>",
- (void *) this));
- }
-
- Data (int message)
- : message_ (message)
- {
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Data ctor 0x%x for message %d\n</font>",
- (void *) this, message_));
- }
- virtual ~Data (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) Data dtor 0x%x\n</font>",
- (void *) this));
- }
-
- void what_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) I am a Data object for message %d\n</font>",
- message_));
- }
-
-protected:
- int message_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* DATA_H */</font>
-</PRE>
-<HR WIDTH="100%">
-<P>
-Ok, no mysterious magic on this one. Just a simple object and derivative
-that report their existence.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/011/page05.html b/docs/tutorials/011/page05.html
deleted file mode 100644
index 3bd035d4bd1..00000000000
--- a/docs/tutorials/011/page05.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 011</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 011</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing non-trivial data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-
-Let's take a look at this new program's output:
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-[jcej@chiroptera 011]$./message_queue 4 2
-(12108|1024) Task ctor 0xbffff9c8
-(12108|2050) Task 0xbffff9c8 starts in thread 2050
-(12108|1025) Task 0xbffff9c8 starts in thread 1025
-(12108|1024) DataBase ctor 0xbffff9c0
-(12108|1024) Data ctor 0xbffff9c0 for message 0
-(12108|1024) Block ctor 0x8052d08
-(12108|1024) Data dtor 0xbffff9c0
-(12108|1024) DataBase dtor 0xbffff9c0
-(12108|1024) DataBase ctor 0xbffff9c0
-(12108|1024) Data ctor 0xbffff9c0 for message 1
-(12108|1024) Block ctor 0x8052e00
-(12108|1024) Data dtor 0xbffff9c0
-(12108|1024) DataBase dtor 0xbffff9c0
-(12108|1024) DataBase ctor 0xbffff9c0
-(12108|1024) Data ctor 0xbffff9c0 for message 2
-(12108|1024) Block ctor 0x8052ef8
-(12108|1024) Data dtor 0xbffff9c0
-(12108|1024) DataBase dtor 0xbffff9c0
-(12108|1024) DataBase ctor 0xbffff9c0
-(12108|1024) Data ctor 0xbffff9c0 for message 3
-(12108|1024) Block ctor 0x8052ff0
-(12108|1024) Data dtor 0xbffff9c0
-(12108|1024) DataBase dtor 0xbffff9c0
-(12108|1024) Block ctor 0x80530e8
-(12108|1025) Block 0x8052d08 contains (This is message 0.)
-(12108|1025) DataBase ctor 0xbf9ffe20
-(12108|1025) Data ctor 0xbf9ffe20
-(12108|1025) DataBase instance 0xbf9ffe20
-(12108|1025) I am a Data object for message 0
-(12108|1025) Block dtor 0x8052d08
-(12108|1025) Data dtor 0xbf9ffe20
-(12108|1025) DataBase dtor 0xbf9ffe20
-(12108|1025) Block 0x8052e00 contains (This is message 1.)
-(12108|1025) DataBase ctor 0xbf9ffe20
-(12108|1025) Data ctor 0xbf9ffe20
-(12108|1025) DataBase instance 0xbf9ffe20
-(12108|1025) I am a Data object for message 1
-(12108|1025) Block dtor 0x8052e00
-(12108|1025) Data dtor 0xbf9ffe20
-(12108|1025) DataBase dtor 0xbf9ffe20
-(12108|1025) Block 0x8052ef8 contains (This is message 2.)
-(12108|1025) DataBase ctor 0xbf9ffe20
-(12108|1025) Data ctor 0xbf9ffe20
-(12108|1025) DataBase instance 0xbf9ffe20
-(12108|1025) I am a Data object for message 2
-(12108|1025) Block dtor 0x8052ef8
-(12108|1025) Data dtor 0xbf9ffe20
-(12108|1025) DataBase dtor 0xbf9ffe20
-(12108|1025) Block 0x8052ff0 contains (This is message 3.)
-(12108|1025) DataBase ctor 0xbf9ffe20
-(12108|1025) Data ctor 0xbf9ffe20
-(12108|1025) DataBase instance 0xbf9ffe20
-(12108|1025) I am a Data object for message 3
-(12108|2050) Task close 0xbffff9c8
-(12108|1025) Block dtor 0x8052ff0
-(12108|1025) Data dtor 0xbf9ffe20
-(12108|1025) DataBase dtor 0xbf9ffe20
-(12108|1025) Task close 0xbffff9c8
-(12108|1024) Task dtor 0xbffff9c8
-(12108|1024) Block dtor 0x80530e8
-(12108|1024) Application exiting
-[jcej@chiroptera 011]$
-</PRE>
-<HR WIDTH="100%">
-<P>
-Other than being more verbose because of the Data object, this shows us
-the same thing we've seen before.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/011/page06.html b/docs/tutorials/011/page06.html
deleted file mode 100644
index 691facfbe80..00000000000
--- a/docs/tutorials/011/page06.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 011</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 011</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing non-trivial data through an ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-So, this time we stuffed an object into the message queue instead of just text
-data. Each time required two object constructions (and subsequent destructions)
-and two "deep" copy operations on the object. There might actually be times when
-this is OK for your application but I prefer to keep those things down to a
-minimum. In the next tutorial I'll show you a way to do that.
-<P>
-
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="block.h">block.h</A>
-<LI><A HREF="data.h">data.h</A>*
-<LI><A HREF="message_queue.cpp">message_queue.cpp</A>
-<LI><A HREF="task.cpp">task.cpp</A>
-<LI><A HREF="task.h">task.h</A>
-</UL>
-
-* data.h hasn't changed at all from Tutorial 7 so I didn't devote a
- page to it.
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/011/task.cpp b/docs/tutorials/011/task.cpp
deleted file mode 100644
index 76d77caf860..00000000000
--- a/docs/tutorials/011/task.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-// $Id$
-
-#include "task.h"
-#include "block.h"
-#include "data.h"
-
-Task::Task (size_t n_threads)
- : barrier_ (n_threads),
- n_threads_ (n_threads)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Task ctor 0x%x\n",
- (void *) this));
-}
-
-Task::~Task (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Task dtor 0x%x\n",
- (void *) this));
-
- ACE_Message_Block *message;
- this->getq (message);
- message->release ();
-}
-
-int
-Task::open (void *)
-{
- return this->activate (THR_NEW_LWP,
- this->n_threads_);
-
-}
-
-int
-Task::close (u_long flags)
-{
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Task close 0x%x\n",
- (void *) this));
- return inherited::close (flags);
-}
-
-int
-Task::svc (void)
-{
- this->barrier_.wait ();
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Task 0x%x starts in thread %d\n",
- (void *) this,
- ACE_Thread::self ()));
-
- ACE_Message_Block *message;
-
- for (;;)
- {
- if (this->getq (message) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "getq"),
- -1);
-
- if (message->msg_type () == ACE_Message_Block::MB_HANGUP)
- {
- this->putq (message);
-
- break;
- }
-
- const char *cp = message->rd_ptr ();
- // Don't forget to skip the NULL we inserted
- message->rd_ptr (ACE_OS::strlen (cp) + 1);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) Block 0x%x contains (%s)\n",
- (void *) message,
- cp));
-
- /* Create a Data object into which we can extract the message
- block contents. */
- Data data;
-
- /* Use the rd_ptr() to access the message block data. Note that
- we've already moved it past the text string in the block. */
- ACE_OS::memmove ((char *) &data,
- message->rd_ptr (),
- sizeof (data));
- message->rd_ptr (sizeof (data)); // Move the rd_ptr() beyond the data.
-
- /* Invoke a couple of method calls on the object we constructed. */
- data.who_am_i ();
- data.what_am_i ();
-
- /* An alternate approach:
-
- Data * data;
- data = (Data *)message->rd_ptr();
- data->who_am_i();
- data->what_am_i();
- message->rd_ptr(sizeof(Data));
-
- Even though this cuts down on the number of copies &
- constructions, I'm not real fond of it. You can get into
- trouble in a hurry by treating memory blocks as multiple data
- types... */
-
-
- ACE_OS::sleep (ACE_Time_Value (0, 5000));
-
- message->release ();
- }
-
- return 0;
-}
diff --git a/docs/tutorials/011/task.h b/docs/tutorials/011/task.h
deleted file mode 100644
index 2350b0be230..00000000000
--- a/docs/tutorials/011/task.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// $Id$
-
-#ifndef TASK_H
-#define TASK_H
-
-#include "ace/Task.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-class Task : public ACE_Task <ACE_MT_SYNCH>
-{
-public:
-
- typedef ACE_Task <ACE_MT_SYNCH> inherited;
-
- Task (size_t n_threads);
- ~Task (void);
-
- int open (void * = 0);
-
- int svc (void);
-
- int close (u_long flags = 0);
-
-protected:
- ACE_Barrier barrier_;
-
- size_t n_threads_;
-};
-
-#endif /* TASK_H */
diff --git a/docs/tutorials/012/012.dsp b/docs/tutorials/012/012.dsp
deleted file mode 100644
index 3e3fbb7c250..00000000000
--- a/docs/tutorials/012/012.dsp
+++ /dev/null
@@ -1,112 +0,0 @@
-# Microsoft Developer Studio Project File - Name="012" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=012 - 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 "012.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 "012.mak" CFG="012 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "012 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "012 - 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)" == "012 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "012 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"message_queue.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "012 - Win32 Release"
-# Name "012 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\message_queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\task.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\data.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\task.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/012/Makefile b/docs/tutorials/012/Makefile
deleted file mode 100644
index 41d9ecfb6bd..00000000000
--- a/docs/tutorials/012/Makefile
+++ /dev/null
@@ -1,73 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = message_queue
-
-FILES =
-FILES += task
-
-BUILD = $(VBIN)
-
-SRC = $(addsuffix .cpp,$(BIN)) $(addsuffix .cpp,$(FILES))
-
-HDR = *.h
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include .depend
diff --git a/docs/tutorials/012/block.h b/docs/tutorials/012/block.h
deleted file mode 100644
index 06179af2757..00000000000
--- a/docs/tutorials/012/block.h
+++ /dev/null
@@ -1,65 +0,0 @@
-
-// $Id$
-
-#ifndef BLOCK_H
-#define BLOCK_H
-
-#include "work.h"
-
-/*
- We derive a Message_Block from ACE_Message_Block and teach it about
- our Unit_Of_Work object. When our task's svc() method pulls a block
- out of the queue, it can then invoke the virtual methods of the work
- object safely. In this implementation we've also retained the
- original ACE_Message_Block functionallity so that we can use the
- underlying ACE_Data_Block objects to store data other than our
- Unit_Of_Work.
-*/
-class Message_Block : public ACE_Message_Block
-{
-public:
- typedef ACE_Message_Block inherited;
-
- /*
- Construct our underlying ACE_Message_Block with the requested
- data size and initialize our Unit_Of_Work pointer with the
- given object instance. Note that this Message_Block instance
- now assumes ownership of the Unit_Of_Work and will delete it
- when the Message_Block is deleted.
- */
- Message_Block( size_t size, Unit_Of_Work * _data )
- : inherited(size), data_(_data)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Message_Block ctor 0x%x for 0x%x\n", (void *) this, data_));
- }
-
- ~Message_Block(void)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Message_Block dtor 0x%x for 0x%x\n", (void *) this, data_));
- delete data_;
- }
-
- /*
- Return the Unit_Of_Work so that the task can invoke methods on
- it.
- */
- Unit_Of_Work * data(void)
- {
- return this->data_;
- }
-
-protected:
- Unit_Of_Work * data_;
-
- /*
- Disallow these very dangerous operations.
- If we were to copy a Message_Block object then the data_
- pointer would get copied and we would eventually end up
- deleting the same object multiple times! That's not good. By
- preventing the copy, we can avoid this.
- */
- Message_Block &operator= (const Message_Block &);
- Message_Block (const Message_Block &);
-};
-
-#endif
diff --git a/docs/tutorials/012/combine.shar b/docs/tutorials/012/combine.shar
deleted file mode 100644
index 05fb1da2f06..00000000000
--- a/docs/tutorials/012/combine.shar
+++ /dev/null
@@ -1,466 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/012'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 430 -rw-rw-r-- hdr
-# 56 -rw-rw-r-- bodies
-# 1090 -rw-rw-r-- page01.pre
-# 262 -rw-rw-r-- page02.pre
-# 395 -rw-rw-r-- page03.pre
-# 154 -rw-rw-r-- page04.pre
-# 182 -rw-rw-r-- page05.pre
-# 448 -rw-rw-r-- page06.pre
-# 393 -rw-rw-r-- page02.pst
-# 398 -rw-rw-r-- page03.pst
-# 162 -rw-rw-r-- page04.pst
-# 447 -rw-rw-r-- page05.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32620; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 012</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 012</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Passing classes through ACE_Message_Queue</FONT></B></CENTER>
-X
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-1acf94beccfa9e953b2f55e02a0bb2e6 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 430 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '430,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-work.h
-block.h
-message_queue.cpp
-task.h task.cpp
-SHAR_EOF
- $shar_touch -am 0124160199 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-3ad29f0a25bfe156b37630c9ee9f715c bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 56 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '56,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-<P>
-Last time around we put an object into a message queue by using the
-copy() method to create a duplicate of the object. That's probably OK
-for simple objects that aren't very large. However, if you have an
-object that contains pointers or tons of data then that approach is
-going to cause problems.
-<P>
-What we'll do in this tutorial is specialize the ACE_Message_Block
-object so that it can carry our data more efficiently. As you'll see,
-this isn't very difficult at all.
-<P>
-Kirthika's abstract:
-<UL>
-Here, a Message_Block class is derived from ACE_Message_Block and is
-used to hold a pointer to the object of class Work. Also, the block has
-a header containing text. This example simply illustrates a cleaner way
-of utilizing Message_Blocks to store objects rather than copying their
-contents.
-<P>
-The ACE_Barrier class has been used in the Task class which blocks the
-threads until all of them are rearing to go and grab a block from the
-queue and process it.
-<P>
-Thus a message queue can be used to accomplish a variety of tasks by
-storing a object pointer in the blocks.
-</UL>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-c9933ac2153b0a56043967ea9c7eb0c9 page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 1090 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '1090,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-We normally start by looking at main() and work our way out from
-there. This time, I want to start by showing you the ACE_Message_Block
-derivative but before that, I have to introduce you to the Work object
-and it's baseclass Unit_Of_Work
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-91f6bbd4cdf687d420bd52bf6685e2d2 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 262 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '262,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-<P>
-In the previous tutorial we moved our complex data into the queue by
-copy()ing it directly into the message block's data area. I hope that
-most readers got a queasy feeling when I did that. It just isn't a
-good idea...
-<P>
-A better idea would be to teach the message queue about our data types
-(or at least a baseclass) so that it can more efficiently handle things:
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-134a60947715be2de3ca2589a3e652e2 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 395 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '395,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-<P>
-Ok, finally we get to main(). Sorry for the diversion but it was
-important to lay some of that groundwork before getting here.
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-8989e75934f20e9b74d38a2d3687613a page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 154 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '154,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-<P>
-The Task is the only object we've not been through yet. I'll go ahead
-and show both the header and cpp on this one page since the header
-isn't very large.
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-ed1b82e232cc376efa7b78f391c893bd page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 182 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '182,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-<P>
-Once again, we come to the end of a tutorial. By creating a simple
-specialization of ACE_Message_Block, we've been able to remove a lot
-of complexity and erorr potential from our previous implementation.
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="message_queue.cpp">message_queue.cpp</A>
-<LI><A HREF="work.h">work.h</A>
-<LI><A HREF="block.h">block.h</A>
-<LI><A HREF="task.h">task.h</A>
-<LI><A HREF="task.cpp">task.cpp</A>
-</UL>
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-64afabb236ea02927914d03f258e620b page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 448 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '448,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pst ==============
-if test -f 'page02.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pst' &&
-<HR WIDTH="100%">
-<P>
-This is basically the same as the <i>DataBase</i> in the previous
-tutorial but I've changed the name to be more generic. The feeling is
-that a <i>Data</i> object would be a C struct but an <i>Work</i>
-object would be a class with methods.
-<P>
-Now that you know what we'll be putting into the queue, lets go to the
-next page where I specialize the ACE_Message_Block.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pst' &&
- chmod 0664 'page02.pst' ||
- $echo 'restore of' 'page02.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pst:' 'MD5 check failed'
-ab34347fca8c20953552cf0ecebd394f page02.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pst'`"
- test 393 -eq "$shar_count" ||
- $echo 'page02.pst:' 'original size' '393,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pst ==============
-if test -f 'page03.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pst' &&
-<HR WIDTH="100%">
-<P>
-Ok, this looks pretty good. We just construct our specialized
-Message_Block instead of the generic ACE_Message_Block and let it
-carry our data along. When our application is done with the message
-block and release()es it, we know that our work object will also be
-taken care of.
-<P>
-Let's now go to main() and see what we had to change there to use this
-specialization.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pst' &&
- chmod 0664 'page03.pst' ||
- $echo 'restore of' 'page03.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pst:' 'MD5 check failed'
-01e400b5683e0e1c3dfa25cc8120bfa6 page03.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pst'`"
- test 398 -eq "$shar_count" ||
- $echo 'page03.pst:' 'original size' '398,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pst ==============
-if test -f 'page04.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pst' &&
-<HR WIDTH="100%">
-<P>
-That certainly looks cleaner than the previous approach! If you
-blink, you'll miss the part where the Work object goes into the Queue.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pst' &&
- chmod 0664 'page04.pst' ||
- $echo 'restore of' 'page04.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pst:' 'MD5 check failed'
-245db1d5e74203bf085369bb47d646db page04.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pst'`"
- test 162 -eq "$shar_count" ||
- $echo 'page04.pst:' 'original size' '162,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pst ==============
-if test -f 'page05.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pst' &&
-<HR WIDTH="100%">
-<P>
-Like main() this is actually simpler than the previous tutorial. It's
-much cleaner to carry around a pointer to the object we're working
-with than to try copying data.
-<P>
-The only complication is the new ACE_Barrier. It's a pretty simple
-object that makes it easy for you to synch threads in this way. You
-could do some fancy tricks with mutexes, counters & semaphores but why
-bother when the Barrier already exists.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pst' &&
- chmod 0664 'page05.pst' ||
- $echo 'restore of' 'page05.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pst:' 'MD5 check failed'
-a7f519237d11a25b28af7aa33f5aaf30 page05.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pst'`"
- test 447 -eq "$shar_count" ||
- $echo 'page05.pst:' 'original size' '447,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32620
-exit 0
diff --git a/docs/tutorials/012/message_queue.cpp b/docs/tutorials/012/message_queue.cpp
deleted file mode 100644
index c5db97bb00b..00000000000
--- a/docs/tutorials/012/message_queue.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// $Id$
-
-#include "block.h"
-#include "work.h"
-#include "task.h"
-
-/*
- I want to be sure that our Task object gets destructed correctly, so
- I'll do most of the application 'work' in run_test() instead of
- main()
-*/
-int run_test (int iterations, int threads)
-{
- /*
- Create the Task which is our thread pool for doing work
- */
- Task task;
-
- if (task.start (threads) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "start"), -1);
- }
-
- /*
- Give the Task a chance to enter it's svc() method. This isn't
- really necessary and you probably wouldn't do it in a real
- application but it makes the output more interesting.
- */
- ACE_OS::sleep (ACE_Time_Value (1));
-
- for (int i = 0; i < iterations; ++i)
- {
- /*
- Construct a Work object that we'll put into the Queue. Give it
- the iteration number so that it can identify itself in the output.
- */
- Work * data = new Work(i);
-
- /*
- Create a block that contains our Work object but also has
- enough room for a text message.
- */
- Message_Block *message = new Message_Block (128, data);
-
- /*
- As before, put a text message into the block.
- */
- ACE_OS::sprintf (message->wr_ptr (), "This is message %d.", i);
- message->wr_ptr (strlen (message->rd_ptr ())+1);
-
- /*
- Add the work to our thread pool
- */
- if (task.putq (message) == -1)
- {
- break;
- }
- }
-
- /*
- Insert a HANGUP message block to tell the thread pool to shut
- itself down.
- */
- Message_Block *message = new Message_Block (0,0);
- message->msg_type (ACE_Message_Block::MB_HANGUP);
- task.putq (message);
-
- /*
- Wait for the all threads of the Task to exit. It is rather rude
- to let the Task go out of scope without doing this first.
- */
- task.wait ();
-
- return (0);
-}
-
-int main (int argc, char *argv[])
-{
- /*
- Give the user a chance to override the default number of
- iterations and pool threads.
- */
- int iterations = argc > 1 ? atoi (argv[1]) : 4;
- int threads = argc > 2 ? atoi (argv[2]) : 2;
-
- /*
- Use the function above to do the actual test. As I said, this
- lets us see the Task go out of scope and destruct before our
- "exiting" message below.
- */
- (void) run_test (iterations, threads);
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Application exiting\n"));
-
- return (0);
-}
diff --git a/docs/tutorials/012/page01.html b/docs/tutorials/012/page01.html
deleted file mode 100644
index 1650f371399..00000000000
--- a/docs/tutorials/012/page01.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 012</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 012</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing classes through ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-Last time around we put an object into a message queue by using the
-copy() method to create a duplicate of the object. That's probably OK
-for simple objects that aren't very large. However, if you have an
-object that contains pointers or tons of data then that approach is
-going to cause problems.
-<P>
-What we'll do in this tutorial is specialize the ACE_Message_Block
-object so that it can carry our data more efficiently. As you'll see,
-this isn't very difficult at all.
-<P>
-Kirthika's abstract:
-<UL>
-Here, a Message_Block class is derived from ACE_Message_Block and is
-used to hold a pointer to the object of class Work. Also, the block has
-a header containing text. This example simply illustrates a cleaner way
-of utilizing Message_Blocks to store objects rather than copying their
-contents.
-<P>
-The ACE_Barrier class has been used in the Task class which blocks the
-threads until all of them are rearing to go and grab a block from the
-queue and process it.
-<P>
-Thus a message queue can be used to accomplish a variety of tasks by
-storing a object pointer in the blocks.
-</UL>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/012/page02.html b/docs/tutorials/012/page02.html
deleted file mode 100644
index d1323b24464..00000000000
--- a/docs/tutorials/012/page02.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 012</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 012</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing classes through ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-We normally start by looking at main() and work our way out from
-there. This time, I want to start by showing you the ACE_Message_Block
-derivative but before that, I have to introduce you to the Work object
-and it's baseclass Unit_Of_Work
-<P>
-<HR WIDTH="100%">
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>WORK_H</font>
-<font color=blue>#define</font> <font color=purple>WORK_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Message_Block.h">ace/Message_Block.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=red>/*
- We'll start by defining a basic unit of work that can be put into
- the message queue. The threads in the pool will expect to find one
- of these in each message block and will invoke a method or two.
-*/</font>
-class Unit_Of_Work
-{
-public:
- Unit_Of_Work (void)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Unit_Of_Work ctor 0x%x\n</font>", (void *) this));
- }
- virtual ~ Unit_Of_Work (void)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Unit_Of_Work dtor 0x%x\n</font>", (void *) this));
- }
-
- void who_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Unit_Of_Work instance 0x%x\n</font>", (void *) this));
- }
-
- virtual void what_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) I am a Unit_Of_Work object\n</font>"));
- }
-
-};
-
-<font color=red>/*
- Now, we specialize the Unit_Of_Work object to do something
- different. By overriding the virtual methods, we can do whatever
- "<font color=green>real work</font>" is needed but the thread pool doesn't have to know the specifics.
-*/</font>
-class Work : public Unit_Of_Work
-{
-public:
- Work (void)
- : message_ (-1)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Work ctor 0x%x\n</font>", (void *) this));
- }
-
- Work (int message)
- : message_ (message)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Work ctor 0x%x for message %d\n</font>", (void *) this, message_));
- }
- virtual ~ Work (void)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Work dtor 0x%x\n</font>", (void *) this));
- }
-
- void what_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) I am a Work object for message %d\n</font>", message_));
- }
-
-protected:
- int message_;
-
-};
-
-<font color=blue>#endif</font>
-</PRE>
-<HR WIDTH="100%">
-<P>
-This is basically the same as the <i>DataBase</i> in the previous
-tutorial but I've changed the name to be more generic. The feeling is
-that a <i>Data</i> object would be a C struct but an <i>Work</i>
-object would be a class with methods.
-<P>
-Now that you know what we'll be putting into the queue, lets go to the
-next page where I specialize the ACE_Message_Block.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/012/page03.html b/docs/tutorials/012/page03.html
deleted file mode 100644
index 185c28c1ff8..00000000000
--- a/docs/tutorials/012/page03.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 012</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 012</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing classes through ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-In the previous tutorial we moved our complex data into the queue by
-copy()ing it directly into the message block's data area. I hope that
-most readers got a queasy feeling when I did that. It just isn't a
-good idea...
-<P>
-A better idea would be to teach the message queue about our data types
-(or at least a baseclass) so that it can more efficiently handle things:
-<P>
-<HR WIDTH="100%">
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>BLOCK_H</font>
-<font color=blue>#define</font> <font color=purple>BLOCK_H</font>
-
-<font color=blue>#include</font> "<font color=green>work.h</font>"
-
-<font color=red>/*
- We derive a Message_Block from ACE_Message_Block and teach it about
- our Unit_Of_Work object. When our task's svc() method pulls a block
- out of the queue, it can then invoke the virtual methods of the work
- object safely. In this implementation we've also retained the
- original ACE_Message_Block functionallity so that we can use the
- underlying ACE_Data_Block objects to store data other than our
- Unit_Of_Work.
-*/</font>
-class Message_Block : public ACE_Message_Block
-{
-public:
- typedef ACE_Message_Block inherited;
-
- <font color=red>/*
- Construct our underlying ACE_Message_Block with the requested
- data size and initialize our Unit_Of_Work pointer with the
- given object instance. Note that this Message_Block instance
- now assumes ownership of the Unit_Of_Work and will delete it
- when the Message_Block is deleted.
- */</font>
- Message_Block( size_t size, Unit_Of_Work * _data )
- : inherited(size), data_(_data)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Message_Block ctor 0x%x for 0x%x\n</font>", (void *) this, data_));
- }
-
- ~Message_Block(void)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Message_Block dtor 0x%x for 0x%x\n</font>", (void *) this, data_));
- delete data_;
- }
-
- <font color=red>/*
- Return the Unit_Of_Work so that the task can invoke methods on
- it.
- */</font>
- Unit_Of_Work * data(void)
- {
- return this->data_;
- }
-
-protected:
- Unit_Of_Work * data_;
-
- <font color=red>/*
- Disallow these very dangerous operations.
- If we were to copy a Message_Block object then the data_
- pointer would get copied and we would eventually end up
- deleting the same object multiple times! That's not good. By
- preventing the copy, we can avoid this.
- */</font>
- Message_Block &operator= (const Message_Block &);
- Message_Block (const Message_Block &);
-};
-
-<font color=blue>#endif</font>
-</PRE>
-<HR WIDTH="100%">
-<P>
-Ok, this looks pretty good. We just construct our specialized
-Message_Block instead of the generic ACE_Message_Block and let it
-carry our data along. When our application is done with the message
-block and release()es it, we know that our work object will also be
-taken care of.
-<P>
-Let's now go to main() and see what we had to change there to use this
-specialization.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/012/page04.html b/docs/tutorials/012/page04.html
deleted file mode 100644
index 6db332f3bcb..00000000000
--- a/docs/tutorials/012/page04.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 012</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 012</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing classes through ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-Ok, finally we get to main(). Sorry for the diversion but it was
-important to lay some of that groundwork before getting here.
-<P>
-<HR WIDTH="100%">
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>block.h</font>"
-<font color=blue>#include</font> "<font color=green>work.h</font>"
-<font color=blue>#include</font> "<font color=green>task.h</font>"
-
-<font color=red>/*
- I want to be sure that our Task object gets destructed correctly, so
- I'll do most of the application 'work' in run_test() instead of
- main()
-*/</font>
-int run_test (int iterations, int threads)
-{
- <font color=red>/*
- Create the Task which is our thread pool for doing work
- */</font>
- Task task;
-
- if (task.start (threads) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>start</font>"), -1);
- }
-
- <font color=red>/*
- Give the Task a chance to enter it's svc() method. This isn't
- really necessary and you probably wouldn't do it in a real
- application but it makes the output more interesting.
- */</font>
- <font color=#008888>ACE_OS::sleep</font> (ACE_Time_Value (1));
-
- for (int i = 0; i &lt; iterations; ++i)
- {
- <font color=red>/*
- Construct a Work object that we'll put into the Queue. Give it
- the iteration number so that it can identify itself in the output.
- */</font>
- Work * data = new Work(i);
-
- <font color=red>/*
- Create a block that contains our Work object but also has
- enough room for a text message.
- */</font>
- Message_Block *message = new Message_Block (128, data);
-
- <font color=red>/*
- As before, put a text message into the block.
- */</font>
- <font color=#008888>ACE_OS::sprintf</font> (message->wr_ptr (), "<font color=green>This is message %d.</font>", i);
- message->wr_ptr (strlen (message->rd_ptr ())+1);
-
- <font color=red>/*
- Add the work to our thread pool
- */</font>
- if (task.putq (message) == -1)
- {
- break;
- }
- }
-
- <font color=red>/*
- Insert a HANGUP message block to tell the thread pool to shut
- itself down.
- */</font>
- Message_Block *message = new Message_Block (0,0);
- message->msg_type (<font color=#008888>ACE_Message_Block::MB_HANGUP</font>);
- task.putq (message);
-
- <font color=red>/*
- Wait for the all threads of the Task to exit. It is rather rude
- to let the Task go out of scope without doing this first.
- */</font>
- task.wait ();
-
- return (0);
-}
-
-int main (int argc, char *argv[])
-{
- <font color=red>/*
- Give the user a chance to override the default number of
- iterations and pool threads.
- */</font>
- int iterations = argc > 1 ? atoi (argv[1]) : 4;
- int threads = argc > 2 ? atoi (argv[2]) : 2;
-
- <font color=red>/*
- Use the function above to do the actual test. As I said, this
- lets us see the Task go out of scope and destruct before our
- "<font color=green>exiting</font>" message below.
- */</font>
- (void) run_test (iterations, threads);
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Application exiting\n</font>"));
-
- return (0);
-}
-</PRE>
-<HR WIDTH="100%">
-<P>
-That certainly looks cleaner than the previous approach! If you
-blink, you'll miss the part where the Work object goes into the Queue.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/012/page05.html b/docs/tutorials/012/page05.html
deleted file mode 100644
index 12e41c383e0..00000000000
--- a/docs/tutorials/012/page05.html
+++ /dev/null
@@ -1,234 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 012</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 012</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing classes through ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-The Task is the only object we've not been through yet. I'll go ahead
-and show both the header and cpp on this one page since the header
-isn't very large.
-<P>
-<HR WIDTH="100%">
-<HR width=50%><P><center>task.h</center><HR width=50%>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>TASK_H</font>
-<font color=blue>#define</font> <font color=purple>TASK_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Task.h">ace/Task.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=red>/*
- This is our basic thread-pool Task. We have a choice of pool size
- on the open() and the usual svc() and close() methods.
-
- A new addition is the ACE_Barrier object. This will allow the
- synchronization of our svc() methods so that they all start at the
- "<font color=green>same</font>" time. The normal case may allow one thread to start working
- earlier than others. There's no real harm in it but you can get
- better "<font color=green>work by thread</font>" statistics if they start out together.
-*/</font>
-class Task : public ACE_Task &lt; ACE_MT_SYNCH >
-{
-public:
-
- typedef ACE_Task &lt; ACE_MT_SYNCH > inherited;
-
- Task (void);
- ~Task (void);
-
- <font color=red>/*
- I really wanted this to be called open() but that was already
- claimed by the Task framework. start() will kick off our thread
- pool for us.
- */</font>
- int start (int threads = 1);
-
- virtual int svc (void);
-
- virtual int close (u_long flags = 0);
-
-protected:
- ACE_Barrier * barrier_;
-};
-
-<font color=blue>#endif</font>
-</PRE>
-<HR width=50%><P><center>task.cpp</center><HR width=50%>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>task.h</font>"
-<font color=blue>#include</font> "<font color=green>block.h</font>"
-<font color=blue>#include</font> "<font color=green>work.h</font>"
-
-<font color=red>/*
- Boring default constructor. Be sure our barrier_ is initialized in
- case we get destructed before opened.
-*/</font>
-<font color=#008888>Task::Task</font> (void)
-: barrier_ (0)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Task ctor 0x%x\n</font>", (void *) this));
-}
-
-<font color=red>/*
- You'll see in the svc() method that when we get a shutdown request,
- we always putq() it back into our message queue. The last thread in
- the pool will do this also and result in there always being one
- shutdown request left in the queue when we get here. Just to be
- polite, we'll go ahead and get that message and release it.
-
- We also delete the barrier_ object we used to synch the svc()
- methods.
-*/</font>
-<font color=#008888>Task::~Task</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Task dtor 0x%x\n</font>", (void *) this));
-
- ACE_Message_Block *message;
- this->getq (message);
- message->release ();
-
- delete barrier_;
-}
-
-<font color=red>/*
- The ACE_Barrier needs to know how many threads it will be working
- for. For that reason, we have to put off it's construction until we
- get here. We then pass the thread count through to our base class'
- activate().
-*/</font>
-int <font color=#008888>Task::start</font> (int threads)
-{
- barrier_ = new ACE_Barrier (threads);
- return this->activate (THR_NEW_LWP, threads);
-}
-
-<font color=red>/*
- We don't really do anything here but I wanted to provide a message
- in the output.
-*/</font>
-int <font color=#008888>Task::close</font> (u_long flags)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Task close 0x%x\n</font>", (void *) this));
- return <font color=#008888>inherited::close</font> (flags);
-}
-
-<font color=red>/*
- Now the svc() method where everything interesting happens.
-*/</font>
-int <font color=#008888>Task::svc</font> (void)
-{
- <font color=red>/*
- All of the threads will block here until the last thread
- arrives. They will all then be free to begin doing work.
- */</font>
- this->barrier_->wait ();
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Task 0x%x starts in thread %u\n</font>", (void *) this, <font color=#008888>ACE_Thread::self</font> ()));
-
- <font color=red>// Where we getq() the message</font>
- ACE_Message_Block *message;
- <font color=red>// What we really put into the queue is a Message_Block, so we'll</font>
- <font color=red>// cast the 'message' to 'message_block' after getting it. I'm</font>
- <font color=red>// going through some extra steps here just to be explicit</font>
- Message_Block * message_block;
- <font color=red>// The baseclass of the work object we put into the queue. Notice</font>
- <font color=red>// that we can use this and not bother with the Work object at all.</font>
- Unit_Of_Work * unit_of_work;
-
- while (1)
- {
- <font color=red>// Get the message...</font>
- if (this->getq (message) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>getq</font>"), -1);
- }
-
- <font color=red>// Is it a shutdown request?</font>
- if (message->msg_type () == <font color=#008888>ACE_Message_Block::MB_HANGUP</font>)
- {
- <font color=red>// Send the shutdown to all of our pool peers</font>
- this->putq (message);
- break;
- }
-
- <font color=red>// Cast the pointer to our specialized Message_Block. We could</font>
- <font color=red>// have done this at the getq() call but I wanted to be explicit</font>
- <font color=red>// about what we're doing here</font>
- message_block = (Message_Block*)message;
-
- <font color=red>/*
- Since we left alone the ACE_Data_Block used by the
- Message_Block we have chosen to use it to send arbitrary data
- as well.
- */</font>
- const char *cp = message_block->rd_ptr ();
- <font color=red>// Don't forget to skip the NULL we inserted</font>
- message_block->rd_ptr (strlen (cp) + 1);
-
- <font color=red>/*
- Get the Unit_Of_Work pointer out of our specialized
- Message_Block. Since the methods of interest are virtual, we
- don't have to know what kind of work we're to do.
- */</font>
- unit_of_work = message_block->data();
-
- <font color=red>/*
- Invoke a couple of method calls on the object we constructed.
- */</font>
- unit_of_work->who_am_i ();
- unit_of_work->what_am_i ();
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Block 0x%x contains (%s)\n</font>", (void *) message, cp));
-
- <font color=red>/*
- Pretend that the work takes a little time to process. This
- prevents one thread from getting all of the action. In a real
- system you wouldn't need to do this since the work really
- would take time to complete.
- */</font>
- <font color=#008888>ACE_OS::sleep</font> (ACE_Time_Value (0, 5000));
-
- <font color=red>/*
- Release the message block and allow the unit of work to also go
- away.
- */</font>
- message->release ();
- }
-
- return (0);
-}
-</PRE>
-<HR WIDTH="100%">
-<P>
-Like main() this is actually simpler than the previous tutorial. It's
-much cleaner to carry around a pointer to the object we're working
-with than to try copying data.
-<P>
-The only complication is the new ACE_Barrier. It's a pretty simple
-object that makes it easy for you to synch threads in this way. You
-could do some fancy tricks with mutexes, counters & semaphores but why
-bother when the Barrier already exists.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/012/page06.html b/docs/tutorials/012/page06.html
deleted file mode 100644
index ba5369830e3..00000000000
--- a/docs/tutorials/012/page06.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 012</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 012</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Passing classes through ACE_Message_Queue</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-Once again, we come to the end of a tutorial. By creating a simple
-specialization of ACE_Message_Block, we've been able to remove a lot
-of complexity and erorr potential from our previous implementation.
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="message_queue.cpp">message_queue.cpp</A>
-<LI><A HREF="work.h">work.h</A>
-<LI><A HREF="block.h">block.h</A>
-<LI><A HREF="task.h">task.h</A>
-<LI><A HREF="task.cpp">task.cpp</A>
-</UL>
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/012/task.cpp b/docs/tutorials/012/task.cpp
deleted file mode 100644
index 5f7d040237e..00000000000
--- a/docs/tutorials/012/task.cpp
+++ /dev/null
@@ -1,145 +0,0 @@
-
-// $Id$
-
-#include "task.h"
-#include "block.h"
-#include "work.h"
-
-/*
- Boring default constructor. Be sure our barrier_ is initialized in
- case we get destructed before opened.
-*/
-Task::Task (void)
-: barrier_ (0)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Task ctor 0x%x\n", (void *) this));
-}
-
-/*
- You'll see in the svc() method that when we get a shutdown request,
- we always putq() it back into our message queue. The last thread in
- the pool will do this also and result in there always being one
- shutdown request left in the queue when we get here. Just to be
- polite, we'll go ahead and get that message and release it.
-
- We also delete the barrier_ object we used to synch the svc()
- methods.
-*/
-Task::~Task (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Task dtor 0x%x\n", (void *) this));
-
- ACE_Message_Block *message;
- this->getq (message);
- message->release ();
-
- delete barrier_;
-}
-
-/*
- The ACE_Barrier needs to know how many threads it will be working
- for. For that reason, we have to put off it's construction until we
- get here. We then pass the thread count through to our base class'
- activate().
-*/
-int Task::start (int threads)
-{
- barrier_ = new ACE_Barrier (threads);
- return this->activate (THR_NEW_LWP, threads);
-}
-
-/*
- We don't really do anything here but I wanted to provide a message
- in the output.
-*/
-int Task::close (u_long flags)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Task close 0x%x\n", (void *) this));
- return inherited::close (flags);
-}
-
-/*
- Now the svc() method where everything interesting happens.
-*/
-int Task::svc (void)
-{
- /*
- All of the threads will block here until the last thread
- arrives. They will all then be free to begin doing work.
- */
- this->barrier_->wait ();
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Task 0x%x starts in thread %u\n", (void *) this, ACE_Thread::self ()));
-
- // Where we getq() the message
- ACE_Message_Block *message;
- // What we really put into the queue is a Message_Block, so we'll
- // cast the 'message' to 'message_block' after getting it. I'm
- // going through some extra steps here just to be explicit
- Message_Block * message_block;
- // The baseclass of the work object we put into the queue. Notice
- // that we can use this and not bother with the Work object at all.
- Unit_Of_Work * unit_of_work;
-
- while (1)
- {
- // Get the message...
- if (this->getq (message) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "getq"), -1);
- }
-
- // Is it a shutdown request?
- if (message->msg_type () == ACE_Message_Block::MB_HANGUP)
- {
- // Send the shutdown to all of our pool peers
- this->putq (message);
- break;
- }
-
- // Cast the pointer to our specialized Message_Block. We could
- // have done this at the getq() call but I wanted to be explicit
- // about what we're doing here
- message_block = (Message_Block*)message;
-
- /*
- Since we left alone the ACE_Data_Block used by the
- Message_Block we have chosen to use it to send arbitrary data
- as well.
- */
- const char *cp = message_block->rd_ptr ();
- // Don't forget to skip the NULL we inserted
- message_block->rd_ptr (strlen (cp) + 1);
-
- /*
- Get the Unit_Of_Work pointer out of our specialized
- Message_Block. Since the methods of interest are virtual, we
- don't have to know what kind of work we're to do.
- */
- unit_of_work = message_block->data();
-
- /*
- Invoke a couple of method calls on the object we constructed.
- */
- unit_of_work->who_am_i ();
- unit_of_work->what_am_i ();
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Block 0x%x contains (%s)\n", (void *) message, cp));
-
- /*
- Pretend that the work takes a little time to process. This
- prevents one thread from getting all of the action. In a real
- system you wouldn't need to do this since the work really
- would take time to complete.
- */
- ACE_OS::sleep (ACE_Time_Value (0, 5000));
-
- /*
- Release the message block and allow the unit of work to also go
- away.
- */
- message->release ();
- }
-
- return (0);
-}
diff --git a/docs/tutorials/012/task.h b/docs/tutorials/012/task.h
deleted file mode 100644
index afeed1bbf1d..00000000000
--- a/docs/tutorials/012/task.h
+++ /dev/null
@@ -1,47 +0,0 @@
-
-// $Id$
-
-#ifndef TASK_H
-#define TASK_H
-
-#include "ace/Task.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/*
- This is our basic thread-pool Task. We have a choice of pool size
- on the open() and the usual svc() and close() methods.
-
- A new addition is the ACE_Barrier object. This will allow the
- synchronization of our svc() methods so that they all start at the
- "same" time. The normal case may allow one thread to start working
- earlier than others. There's no real harm in it but you can get
- better "work by thread" statistics if they start out together.
-*/
-class Task : public ACE_Task < ACE_MT_SYNCH >
-{
-public:
-
- typedef ACE_Task < ACE_MT_SYNCH > inherited;
-
- Task (void);
- ~Task (void);
-
- /*
- I really wanted this to be called open() but that was already
- claimed by the Task framework. start() will kick off our thread
- pool for us.
- */
- int start (int threads = 1);
-
- virtual int svc (void);
-
- virtual int close (u_long flags = 0);
-
-protected:
- ACE_Barrier * barrier_;
-};
-
-#endif
diff --git a/docs/tutorials/012/work.h b/docs/tutorials/012/work.h
deleted file mode 100644
index 9523fe80b37..00000000000
--- a/docs/tutorials/012/work.h
+++ /dev/null
@@ -1,76 +0,0 @@
-
-// $Id$
-
-#ifndef WORK_H
-#define WORK_H
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/*
- We'll start by defining a basic unit of work that can be put into
- the message queue. The threads in the pool will expect to find one
- of these in each message block and will invoke a method or two.
-*/
-class Unit_Of_Work
-{
-public:
- Unit_Of_Work (void)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Unit_Of_Work ctor 0x%x\n", (void *) this));
- }
- virtual ~ Unit_Of_Work (void)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Unit_Of_Work dtor 0x%x\n", (void *) this));
- }
-
- void who_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Unit_Of_Work instance 0x%x\n", (void *) this));
- }
-
- virtual void what_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) I am a Unit_Of_Work object\n"));
- }
-
-};
-
-/*
- Now, we specialize the Unit_Of_Work object to do something
- different. By overriding the virtual methods, we can do whatever
- "real work" is needed but the thread pool doesn't have to know the specifics.
-*/
-class Work : public Unit_Of_Work
-{
-public:
- Work (void)
- : message_ (-1)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Work ctor 0x%x\n", (void *) this));
- }
-
- Work (int message)
- : message_ (message)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Work ctor 0x%x for message %d\n", (void *) this, message_));
- }
- virtual ~ Work (void)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Work dtor 0x%x\n", (void *) this));
- }
-
- void what_am_i (void)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) I am a Work object for message %d\n", message_));
- }
-
-protected:
- int message_;
-
-};
-
-#endif
diff --git a/docs/tutorials/013/013.dsp b/docs/tutorials/013/013.dsp
deleted file mode 100644
index 92f6469a27e..00000000000
--- a/docs/tutorials/013/013.dsp
+++ /dev/null
@@ -1,132 +0,0 @@
-# Microsoft Developer Studio Project File - Name="013" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=013 - 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 "013.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 "013.mak" CFG="013 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "013 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "013 - 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)" == "013 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "013 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"message_queue.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "013 - Win32 Release"
-# Name "013 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\block.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\message_queue.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\mld.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\task.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\work.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\block.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\mld.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\task.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\work.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/013/Makefile b/docs/tutorials/013/Makefile
deleted file mode 100644
index c150df6639c..00000000000
--- a/docs/tutorials/013/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = message_queue
-
-FILES = task block work mld
-
-BUILD = $(VBIN)
-
-SRC = $(addsuffix .cpp,$(BIN))
-SRC += $(addsuffix .cpp,$(FILES))
-
-HDR = *.h
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../fix.Makefile
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre
- chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-.depend : #
- touch .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include .depend
diff --git a/docs/tutorials/013/block.cpp b/docs/tutorials/013/block.cpp
deleted file mode 100644
index e652d33643a..00000000000
--- a/docs/tutorials/013/block.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-
-// $Id$
-
-#include "block.h"
-
-/*
- Construct a Dat_Block to contain a unit of work. Note the careful
- construction of the baseclass to set the block type and the locking
- strategy.
- */
-Data_Block::Data_Block (Unit_Of_Work * _data)
- : ACE_Data_Block (0, ACE_Message_Block::MB_DATA, 0, 0, new Lock (), 0, 0)
- ,data_ (_data)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Data_Block ctor for 0x%x\n", (void *) this, (void *) data_));
-}
-
-/*
- The Lock object created in the constructor is stored in the baseclass and
- available through the locking_strategy() method. We can cast it's value to
- our Lock object and invoke the destroy() to indicate that we want it to go
- away when the lock is released.
- */
-Data_Block::~Data_Block (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Data_Block dtor for 0x%x\n", (void *) this, (void *) data_));
- ((Lock *) locking_strategy ())->destroy ();
- delete data_;
-}
-
-/*
- Return the data
- */
-Unit_Of_Work *Data_Block::data (void)
-{
- return this->data_;
-}
-
-Data_Block:: Lock::Lock (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Lock ctor\n", (void *) this));
-}
-
-Data_Block:: Lock::~Lock (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Lock dtor\n", (void *) this));
-}
-
-/*
- Delete ourselves to prevent any memory leak
- */
-int Data_Block::Lock::destroy (void)
-{
- delete this;
- return (0);
-}
-
-/*
- Create an baseclass unit of work when we instantiate a hangup message.
- */
-Message_Block::Message_Block (void)
- :ACE_Message_Block (new Data_Block (new Unit_Of_Work ()))
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Message_Block ctor for shutdown\n", (void *) this));
- this->msg_type (MB_HANGUP);
-}
-
-/*
- Store the unit of work in a Data_Block and initialize the baseclass with
- that data.
- */
-Message_Block::Message_Block (Unit_Of_Work * _data)
- :ACE_Message_Block (new Data_Block (_data))
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Message_Block ctor for 0x%x\n", (void *) this, (void *) _data));
-}
-
-Message_Block::~Message_Block (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Message_Block dtor\n", (void *) this));
-}
diff --git a/docs/tutorials/013/block.h b/docs/tutorials/013/block.h
deleted file mode 100644
index 91261c3ecd0..00000000000
--- a/docs/tutorials/013/block.h
+++ /dev/null
@@ -1,84 +0,0 @@
-
-// $Id$
-
-#ifndef BLOCK_H
-#define BLOCK_H
-
-#include "ace/Message_Block.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "mld.h"
-#include "work.h"
-
-/*
- In this Tutorial, we derive from ACE_Data_Block for our special data. With
- the possiblilty that our Task object may forward the unit of work on to
- another thread pool, we have to make sure that the data object doesn't go
- out of scope unexpectedly. An ACE_Message_Block will be deleted as soon as
- it's release() method is called but the ACE_Data_Blocks it uses are
- reference counted and only delete when the last reference release()es the
- block. We use that trait to simplify our object memory management.
- */
-class Data_Block : public ACE_Data_Block
-{
-public:
- typedef ACE_Data_Block inherited;
-
- // Create a data block with a unit of work to be done
- Data_Block (Unit_Of_Work * _data);
-
- ~Data_Block (void);
-
- // Returns the work pointer
- Unit_Of_Work *data (void);
-
-protected:
- Unit_Of_Work * data_;
- MLD; // Our memory leak detector
-
- // The ACE_Data_Block allows us to choose a locking strategy
- // for making the reference counting thread-safe. The
- // ACE_Lock_Adaptor<> template adapts the interface of a
- // number of lock objects so that the ACE_Message_Block will
- // have an interface it can use.
- class Lock : public ACE_Lock_Adapter < ACE_Mutex >
- {
- public:
- typedef ACE_Lock_Adapter < ACE_Mutex > inherited;
-
- Lock (void);
- ~Lock (void);
-
- // destroy() will be called to explicitly delete the
- // lock when we no longer need it. The method will then
- // cleanup to prevent any memory leaks.
- int destroy (void);
-
- protected:
- MLD;
- };
-};
-
-/*
- This simple derivative of ACE_Message_Block will construct our Data_Block
- object to contain a unit of work.
- */
-class Message_Block : public ACE_Message_Block
-{
-public:
- typedef ACE_Message_Block inherited;
-
- Message_Block (void);
- Message_Block (Unit_Of_Work * _data);
-
- ~Message_Block (void);
-
-protected:
- MLD;
-};
-
-#endif
diff --git a/docs/tutorials/013/combine.shar b/docs/tutorials/013/combine.shar
deleted file mode 100644
index 48895131550..00000000000
--- a/docs/tutorials/013/combine.shar
+++ /dev/null
@@ -1,661 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/013'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 386 -rw-rw-r-- hdr
-# 89 -rw-rw-r-- bodies
-# 2412 -rw-rw-r-- page01.pre
-# 432 -rw-rw-r-- page02.pre
-# 1424 -rw-rw-r-- page03.pre
-# 1048 -rw-rw-r-- page04.pre
-# 268 -rw-rw-r-- page05.pre
-# 914 -rw-rw-r-- page06.pre
-# 1360 -rw-rw-r-- page07.pre
-# 860 -rw-rw-r-- page08.pre
-# 204 -rw-rw-r-- page02.pst
-# 704 -rw-rw-r-- page04.pst
-# 385 -rw-rw-r-- page06.pst
-# 369 -rw-rw-r-- page07.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32654; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 013</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 013</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Multiple thread pools</FONT></B></CENTER>
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-abef9831eba4051526151ff2343730d7 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 386 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '386,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-message_queue.cpp
-mld.h mld.cpp
-block.h
-block.cpp
-task.h task.cpp
-work.h work.cpp
-SHAR_EOF
- $shar_touch -am 1114230198 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-826e1e15e593f64228b867cb6143f179 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 89 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '89,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-<P>
-<HR WIDTH="100%">
-<P>
-My intent with this tutorial was to derive from ACE_Data_Block instead
-of ACE_Message_Block so that we could leverage the reference counting
-nature of that object.
-<P>
-Along the way, I sort of got distracted... What I ended up with is a
-poor excuse for ACE_Stream that implements a simple state machine.
-<P>
-The application is built around a thread pool where the pool's svc()
-method takes work units from the message queue for processing. As
-each unit is taken from the queue, the process() method is invoked to
-do some work. The twist is that after processing the message, we
-enqueue it into another thread pool to do more work. This continues
-through a chain of thread pools until the last where the unit's fini()
-method is called for finishing up any outstanding work.
-<P>
-The chain of thread pools is uni-directional using a singly-linked
-list of Task derivatives. Each pool has the same number of tasks in
-order to keep things simple.
-<P>
-Kirthika's abstract:
-<UL>
-In this tutorial, a singly linked list of thread-pools, each of which is
-a subtask and which acts as the finite state machine node, is used to
-simulate a finite state machine.
-<P>
-A task is created with a number of subtasks. Once the message block is
-obtained from the queue, it is verified to see whether a task has a
-subtask. If so, it is forwarded to the subtask. Thus the mesage
-traverses over the whole list. As a safety measure for destroying the
-block after it goes through the whole list, an effective and simple
-Memory Leak Detector has been implemented. It is a counter which
-increments when the object where it resides is created and decrements on
-its deletion.
-<P>
-Another optimisation from the previous tutorials on Message Queues, is
-the bundling of the Data block within the Message Block. The Data block
-provides reference counting, so duplication of data is avoided. It is
-deleted only when its reference count drops to zero. Now updating
-this count between threads call for synchronisation and in comes the
-ACE_Mutex, a lock which takes care that the counting is thread-safe.
-<P>
-Although the example isn't a full-fledged Finite State Machine,
-i.e. it has to be tweaked to be able to jump states on different inputs,
-it definitely proves to be a great lesson and introduces us to quite a
-few new ACE classes and the ways they can be mixed and matched to
-produce the end-system desired.
-</ul>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-a78a6c7a7841ee5d8ce2a87a55cd456f page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 2412 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '2412,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-X
-X
-<P>
-<HR WIDTH="100%">
-<P>
-We'll go back to our tradition of looking at main() first. The only
-change here from our "normal" thread pool is the ability to specify
-the number of subtasks for the pool. (Each subtask is another thread
-pool in the chain. I suppose I should have named that better...)
-I've still got the custom Message_Block so that, at this level, we
-don't even know about custom Data_Blocks.
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-6f4a2e24d7d776b1ec17a07f00f409f8 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 432 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '432,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-X
-X
-<P>
-<HR WIDTH="100%">
-<P>
-I did eventually create that ACE_Data_Block derivative that I wanted.
-My purpose in doing so was to use the reference-counting
-that is provided by ACE_Data_Block and ACE_Message_Block interactions.
-X When you're working with an object in a single
-thread, it's generally not so difficult to manage it's lifetime.
-That is, it doesn't tend to go out of scope or get destroyed unless
-you do it on purpose.
-<P>
-On the other hand, if you're passing data between several threads, it
-is easy to loose track of who "owns" the data at any one time. All
-too frequently, data will be deleted by one thread while another is
-still using it. Reference counting can prevent that. The rule of
-thumb is that you increment the reference count of the object when you
-hand it off to a new thread. You then decrement the count when you're
-done with the object and let the object delete itself when there are
-no more references.
-<P>
-To prove that all of that works correctly in the tutorial, I've
-created a cheap Memory Leak Detector object. All mld instances
-reference a thread-safe counter that is incremented when the mld is
-constructed and decremented when destructed. I then insert an mld
-into each of my dynamically created objects. If I get to the end of
-main() and the counter isn't zero then I either didn't delete enough
-or I deleted too many times.
-<P>
-Simple, cheap, effective.
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-545e09ebf801bfaea60bb1fb07c7ec9f page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 1424 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '1424,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-X
-X
-<P>
-<HR WIDTH="100%">
-<P>
-Let's look now at the changes to our ACE_Message_Block derivative and
-the new ACE_Data_Block derivative.
-<P>
-The important thing to remember is that the data block (not the
-message block) is reference counted. When you instantiate a new
-ACE_Message_Block, it will create one or more ACE_Data_Block objects
-to contain the data you need. Optionally, you can provide it with a
-pointer to a data block.
-<P>
-When you finish with a message block, you should use the release()
-method to make it go away. Do not ever <em>delete</em> an instance of
-a message block! When you invoke release(), the message block will
-invoke release() on the data block(s) it contains. If the block's
-reference count goes to zero as a result then the block will <em>delete</em>
-itself.
-<P>
-To increment the reference count of a data block, use the
-duplicate() method of the message block (or blocks) to get a new
-message block referencing the same data block. This is very efficient
-since the actual data is not copied.
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-c8b4750a824380f2effc43557c8540ad page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 1048 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '1048,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-X
-X
-<P>
-<HR WIDTH="100%">
-<P>
-On this page we have the code for the Data_Block and Message_Block
-objects. As you probably suspect from the header on the previous
-page, the complicated part is in the construction and destruction of
-the Data_Block.
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-a95fdcd3db2356b091228728f4f3f130 page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 268 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '268,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-X
-X
-<P>
-<HR WIDTH="100%">
-<P>
-Let's take a look now at the new Task object. This will obviously be
-different from the Tasks we've created before but I think you'll be
-surprised at how relatively simple it actually is.
-<P>
-Remember that the goal of this tutorial was to use the reference
-counting abilities of the ACE_Data_Block. The only way to show that
-effectively is to have a data block passed between different threads.
-A thread pool isn't really going to do that so, instead, our new Task
-can be part of a chain of tasks. In that way, each Task can pass the
-data on to another and satisfy our need for moving the ACE_Data_Block
-around.
-If we've done the reference counting correctly then none of our tasks
-will be trying to work with deleted data and we won't have any memory
-leaks at the end.
-<P>
-There's not much to the header, so I've included it and the cpp file
-on this one page.
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-a4c9b50df3240c5134733d2033fd5f03 page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 914 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '914,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page07.pre ==============
-if test -f 'page07.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page07.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page07.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page07.pre' &&
-X
-X
-<P>
-<HR WIDTH="100%">
-<P>
-I've been trying to justify the chain of tasks by talking about a
-Work object that implements a state machine. The idea is that your
-Work object has to perform a series of discrete steps to complete it's
-function. Traditionally, all of those steps would take place in one
-thread of execution. That thread would probably be one from a Task
-thread pool.
-<P>
-Suppose, however, that some of those steps spend a lot of time waiting
-for disk IO. You could find that all of your thread-pool threads
-are just sitting there waiting for the disk. You might then be
-tempted to increase the thread pool size to get more work through.
-However, if some of the stages are memory intensive, you could run out
-of memory if all of the workers get to that state at the same time.
-<P>
-One solution might be to have different thread pools for each state.
-Each pool could have it's size tuned appropriately for the work that
-would be done there. That's where the chain of Tasks comes in.
-X In this tutorial's implementation I've taken the
-easy route and set all of the thread pools to the same size but a more
-realistic solution would be to set each thread pool in the chain to a
-specific size as needed by that state of operation.
-<P>
-There's not much to this header either so I've combined it with the
-cpp file as with task.
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page07.pre' &&
- chmod 0664 'page07.pre' ||
- $echo 'restore of' 'page07.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page07.pre:' 'MD5 check failed'
-17c1c426089b288e418c3f62fdc09744 page07.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page07.pre'`"
- test 1360 -eq "$shar_count" ||
- $echo 'page07.pre:' 'original size' '1360,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page08.pre ==============
-if test -f 'page08.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page08.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page08.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page08.pre' &&
-X
-X
-<P>
-<HR WIDTH="100%">
-<P>
-And that's the end of another tutorial. This one is probably the most
-complicated so far because I've introduced or expanded upon
-a number of different
-concepts. Namely: state machines, reference counting and task
-chaining. I hope I didn't complicate things to the point where the
-lesson got lost in the noise. As always, feel free to drop a note to
-the ACE-Users mailing list if you feel that some of this could use a
-little more explaination.
-X
-<P>
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="block.cpp">block.cpp</A>
-<LI><A HREF="block.h">block.h</A>
-<LI><A HREF="message_queue.cpp">message_queue.cpp</A>
-<LI><A HREF="mld.cpp">mld.cpp</A>
-<LI><A HREF="mld.h">mld.h</A>
-<LI><A HREF="task.cpp">task.cpp</A>
-<LI><A HREF="task.h">task.h</A>
-<LI><A HREF="work.cpp">work.cpp</A>
-<LI><A HREF="work.h">work.h</A>
-</UL>
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page08.pre' &&
- chmod 0664 'page08.pre' ||
- $echo 'restore of' 'page08.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page08.pre:' 'MD5 check failed'
-b761e40eff75cbf3174b53b4b0c5c172 page08.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page08.pre'`"
- test 860 -eq "$shar_count" ||
- $echo 'page08.pre:' 'original size' '860,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pst ==============
-if test -f 'page02.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pst' &&
-<HR WIDTH="100%">
-<P>
-Nothing really surprising here... Just remember that your total
-number of threads is ( ( 1 + subtasks ) * threads ). You probably
-don't want to get too carried away with that!
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pst' &&
- chmod 0664 'page02.pst' ||
- $echo 'restore of' 'page02.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pst:' 'MD5 check failed'
-a8c43c5c68518f6eb8c03701d1603a92 page02.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pst'`"
- test 204 -eq "$shar_count" ||
- $echo 'page02.pst:' 'original size' '204,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pst ==============
-if test -f 'page04.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pst' &&
-<HR WIDTH="100%">
-<P>
-One of the most difficult parts of this to get right was the Lock
-object. I didn't even have it in the beginning but I soon realized
-that the reference counts were getting weird. A little careful
-reading of the comments and the source informed me that some sort of
-locking is necessary to keep the counter sane. The simplest thing at
-that point was to use the ACE_Lock_Adaptor&lt;&gt; to adapt ACE_Mutex
-appropriately. The next trick was to ensure that the lock object was
-destroyed at the proper time to prevent both memory leaks and core
-dumps. The finaly product may be a little bit intimidating at first
-but it's really quite simple once you understand the motivation.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pst' &&
- chmod 0664 'page04.pst' ||
- $echo 'restore of' 'page04.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pst:' 'MD5 check failed'
-325565f3f72961b842b612caeb93b36a page04.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pst'`"
- test 704 -eq "$shar_count" ||
- $echo 'page04.pst:' 'original size' '704,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pst ==============
-if test -f 'page06.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pst' &&
-<HR WIDTH="100%">
-<P>
-So you see... it wasn't really that much more complicated. We really
-just have to remember to pass to <i>next_</i> when we finish working
-on the data. If your Unit_Of_Work derivative is going to implement a
-state machine be sure that you also implement a fini() method
-<em>or</em> ensure that your chain of subtasks is large enough for all
-possible states.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pst' &&
- chmod 0664 'page06.pst' ||
- $echo 'restore of' 'page06.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pst:' 'MD5 check failed'
-65a1b8bc21034187e0885cc07fa7734f page06.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pst'`"
- test 385 -eq "$shar_count" ||
- $echo 'page06.pst:' 'original size' '385,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page07.pst ==============
-if test -f 'page07.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page07.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page07.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page07.pst' &&
-<HR>
-<P>
-And that is that. For a more complex machine that may want to "jump
-states" you would have to set some "state information" (sorry, bad
-choice of terminology again) so that process() could decide what to do
-at each call. You might also modify Task::svc() so that it will
-respect the return value of process() and do something useful with the
-information.
-<P>
-SHAR_EOF
- $shar_touch -am 03191459100 'page07.pst' &&
- chmod 0664 'page07.pst' ||
- $echo 'restore of' 'page07.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page07.pst:' 'MD5 check failed'
-21f1bb3615bd4ba5efe5ec25bb895c0e page07.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page07.pst'`"
- test 369 -eq "$shar_count" ||
- $echo 'page07.pst:' 'original size' '369,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32654
-exit 0
diff --git a/docs/tutorials/013/message_queue.cpp b/docs/tutorials/013/message_queue.cpp
deleted file mode 100644
index 6264381810a..00000000000
--- a/docs/tutorials/013/message_queue.cpp
+++ /dev/null
@@ -1,88 +0,0 @@
-
-// $Id$
-
-#include "mld.h"
-#include "task.h"
-#include "work.h"
-#include "block.h"
-
-int run_test (int iterations, int threads, int subtasks)
-{
- // Create a task with some subtasks. Each Task is a thread
- // pool of 'threads' size. If a task has a subtask, it will
- // forward the unit of work to the subtask when finished. See
- // task.{h|cpp} for more details.
- Task *task = new Task (subtasks);
-
- if (task->start (threads) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "start"), -1);
- }
-
- // Give the threads a chance to get ready.
- ACE_OS::sleep (ACE_Time_Value (1));
-
- for (int i = 0; i < iterations; ++i)
- {
- // Create a custom message block that can contain our Work object
- Message_Block *message = new Message_Block (new Work (i));
-
- // Put the "unit of work" into the message queue
- if (task->putq (message) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "putq"), -1);
- }
- }
-
- // The default constructor of our custom message block will
- // insert a message telling our task to shutdown.
- Message_Block *message = new Message_Block ();
-
- // Put the shutdown request into the thread pool
- if (task->putq (message) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "putq"), -1);
- }
-
- // Wait for the task to shut down. Any subtasks will also be
- // waited for.
- task->wait ();
-
- // Delete our Task to prevent a memory leak
- delete task;
-
- // Ask our memory leak detector if things are OK
- if (MLD_COUNTER != 0)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Memory Leak! (counter = %d)\n",MLD_COUNTER));
- }
-
- return (0);
-}
-
-int main (int argc, char *argv[])
-{
- // Number of Work objects to put into the Task pool
- int iterations = argc > 1 ? atoi (argv[1]) : 4;
- // Number of threads for each Task
- int threads = argc > 2 ? atoi (argv[2]) : 2;
- // Number of tasks to chain after the primary task
- int subtasks = argc > 3 ? atoi (argv[3]) : 1;
-
- (void) run_test (iterations, threads, subtasks);
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Application exiting\n"));
-
- return (0);
-}
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Guard < ACE_Mutex >;
-template class ACE_Lock_Adapter < ACE_Mutex >;
-template class ACE_Atomic_Op < ACE_Mutex, int >;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Guard<ACE_Mutex>
-#pragma instantiate ACE_Lock_Adapter<ACE_Mutex>
-#pragma instantiate ACE_Atomic_Op<ACE_Mutex, int>
-#endif /*
- ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
- */
diff --git a/docs/tutorials/013/mld.cpp b/docs/tutorials/013/mld.cpp
deleted file mode 100644
index ca12d9eb514..00000000000
--- a/docs/tutorials/013/mld.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-// $Id$
-
-#include "mld.h"
-
-ACE_Atomic_Op < ACE_Mutex, int >mld::counter_ (0);
-
-// Increment the counter when a new mld is created...
-mld::mld (void)
-{
- ++counter_;
-}
-
-// and decrement it when the object is destructed.
-mld::~mld (void)
-{
- --counter_;
-}
-
-int mld::value (void)
-{
- return counter_.value ();
-}
diff --git a/docs/tutorials/013/mld.h b/docs/tutorials/013/mld.h
deleted file mode 100644
index 015b1a77eaa..00000000000
--- a/docs/tutorials/013/mld.h
+++ /dev/null
@@ -1,49 +0,0 @@
-
-// $Id$
-
-#ifndef MLD_H
-#define MLD_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Singleton.h"
-
-/*
- This is a cheap memory leak detector. Each class I want to watch over
- contains an mld object. The mld object's ctor increments a global counter
- while the dtor decrements it. If the counter is non-zero when the program
- is ready to exit then there may be a leak.
- */
-
-class mld
-{
-public:
- mld (void);
- ~mld (void);
-
- static int value (void);
-
-protected:
- static ACE_Atomic_Op < ACE_Mutex, int >counter_;
-};
-
-// ================================================
-
-/*
- Just drop 'MLD' anywhere in your class definition to get cheap memory leak
- detection for your class.
- */
-#define MLD mld mld_
-
-/*
- Use 'MLD_COUNTER' in main() to see if things are OK.
- */
-#define MLD_COUNTER mld::value()
-
-// ================================================
-
-#endif
diff --git a/docs/tutorials/013/page01.html b/docs/tutorials/013/page01.html
deleted file mode 100644
index 2f5c50afaf9..00000000000
--- a/docs/tutorials/013/page01.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 013</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 013</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Multiple thread pools</FONT></B></CENTER>
-<P>
-<HR WIDTH="100%">
-<P>
-My intent with this tutorial was to derive from ACE_Data_Block instead
-of ACE_Message_Block so that we could leverage the reference counting
-nature of that object.
-<P>
-Along the way, I sort of got distracted... What I ended up with is a
-poor excuse for ACE_Stream that implements a simple state machine.
-<P>
-The application is built around a thread pool where the pool's svc()
-method takes work units from the message queue for processing. As
-each unit is taken from the queue, the process() method is invoked to
-do some work. The twist is that after processing the message, we
-enqueue it into another thread pool to do more work. This continues
-through a chain of thread pools until the last where the unit's fini()
-method is called for finishing up any outstanding work.
-<P>
-The chain of thread pools is uni-directional using a singly-linked
-list of Task derivatives. Each pool has the same number of tasks in
-order to keep things simple.
-<P>
-Kirthika's abstract:
-<UL>
-In this tutorial, a singly linked list of thread-pools, each of which is
-a subtask and which acts as the finite state machine node, is used to
-simulate a finite state machine.
-<P>
-A task is created with a number of subtasks. Once the message block is
-obtained from the queue, it is verified to see whether a task has a
-subtask. If so, it is forwarded to the subtask. Thus the mesage
-traverses over the whole list. As a safety measure for destroying the
-block after it goes through the whole list, an effective and simple
-Memory Leak Detector has been implemented. It is a counter which
-increments when the object where it resides is created and decrements on
-its deletion.
-<P>
-Another optimisation from the previous tutorials on Message Queues, is
-the bundling of the Data block within the Message Block. The Data block
-provides reference counting, so duplication of data is avoided. It is
-deleted only when its reference count drops to zero. Now updating
-this count between threads call for synchronisation and in comes the
-ACE_Mutex, a lock which takes care that the counting is thread-safe.
-<P>
-Although the example isn't a full-fledged Finite State Machine,
-i.e. it has to be tweaked to be able to jump states on different inputs,
-it definitely proves to be a great lesson and introduces us to quite a
-few new ACE classes and the ways they can be mixed and matched to
-produce the end-system desired.
-</ul>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/013/page02.html b/docs/tutorials/013/page02.html
deleted file mode 100644
index d8b037fc70f..00000000000
--- a/docs/tutorials/013/page02.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 013</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 013</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Multiple thread pools</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-We'll go back to our tradition of looking at main() first. The only
-change here from our "normal" thread pool is the ability to specify
-the number of subtasks for the pool. (Each subtask is another thread
-pool in the chain. I suppose I should have named that better...)
-I've still got the custom Message_Block so that, at this level, we
-don't even know about custom Data_Blocks.
-<P>
-<HR WIDTH="100%">
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>mld.h</font>"
-<font color=blue>#include</font> "<font color=green>task.h</font>"
-<font color=blue>#include</font> "<font color=green>work.h</font>"
-<font color=blue>#include</font> "<font color=green>block.h</font>"
-
-int run_test (int iterations, int threads, int subtasks)
-{
- <font color=red>// Create a task with some subtasks. Each Task is a thread</font>
- <font color=red>// pool of 'threads' size. If a task has a subtask, it will</font>
- <font color=red>// forward the unit of work to the subtask when finished. See</font>
- <font color=red>// task.{h|cpp} for more details.</font>
- Task *task = new Task (subtasks);
-
- if (task->start (threads) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>start</font>"), -1);
- }
-
- <font color=red>// Give the threads a chance to get ready.</font>
- <font color=#008888>ACE_OS::sleep</font> (ACE_Time_Value (1));
-
- for (int i = 0; i &lt; iterations; ++i)
- {
- <font color=red>// Create a custom message block that can contain our Work object</font>
- Message_Block *message = new Message_Block (new Work (i));
-
- <font color=red>// Put the "<font color=green>unit of work</font>" into the message queue</font>
- if (task->putq (message) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>putq</font>"), -1);
- }
- }
-
- <font color=red>// The default constructor of our custom message block will</font>
- <font color=red>// insert a message telling our task to shutdown.</font>
- Message_Block *message = new Message_Block ();
-
- <font color=red>// Put the shutdown request into the thread pool</font>
- if (task->putq (message) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>putq</font>"), -1);
- }
-
- <font color=red>// Wait for the task to shut down. Any subtasks will also be</font>
- <font color=red>// waited for.</font>
- task->wait ();
-
- <font color=red>// Delete our Task to prevent a memory leak</font>
- delete task;
-
- <font color=red>// Ask our memory leak detector if things are OK</font>
- if (MLD_COUNTER != 0)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Memory Leak! (counter = %d)\n</font>",MLD_COUNTER));
- }
-
- return (0);
-}
-
-int main (int argc, char *argv[])
-{
- <font color=red>// Number of Work objects to put into the Task pool</font>
- int iterations = argc > 1 ? atoi (argv[1]) : 4;
- <font color=red>// Number of threads for each Task</font>
- int threads = argc > 2 ? atoi (argv[2]) : 2;
- <font color=red>// Number of tasks to chain after the primary task</font>
- int subtasks = argc > 3 ? atoi (argv[3]) : 1;
-
- (void) run_test (iterations, threads, subtasks);
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Application exiting\n</font>"));
-
- return (0);
-}
-<font color=blue>#if defined</font> (<font color=purple>ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION</font>)
-template class ACE_Guard &lt; ACE_Mutex >;
-template class ACE_Lock_Adapter &lt; ACE_Mutex >;
-template class ACE_Atomic_Op &lt; ACE_Mutex, int >;
-<font color=blue>#elif defined</font> (<font color=purple>ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Guard&lt;ACE_Mutex>;
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Lock_Adapter&lt;ACE_Mutex>;
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Atomic_Op&lt;ACE_Mutex, int>;
-<font color=blue>#endif</font> <font color=red>/*
- ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
- */</font>
-</PRE>
-<HR WIDTH="100%">
-<P>
-Nothing really surprising here... Just remember that your total
-number of threads is ( ( 1 + subtasks ) * threads ). You probably
-don't want to get too carried away with that!
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/013/page03.html b/docs/tutorials/013/page03.html
deleted file mode 100644
index 7f73526c99f..00000000000
--- a/docs/tutorials/013/page03.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 013</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 013</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Multiple thread pools</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-I did eventually create that ACE_Data_Block derivative that I wanted.
-My purpose in doing so was to use the reference-counting
-that is provided by ACE_Data_Block and ACE_Message_Block interactions.
- When you're working with an object in a single
-thread, it's generally not so difficult to manage it's lifetime.
-That is, it doesn't tend to go out of scope or get destroyed unless
-you do it on purpose.
-<P>
-On the other hand, if you're passing data between several threads, it
-is easy to loose track of who "owns" the data at any one time. All
-too frequently, data will be deleted by one thread while another is
-still using it. Reference counting can prevent that. The rule of
-thumb is that you increment the reference count of the object when you
-hand it off to a new thread. You then decrement the count when you're
-done with the object and let the object delete itself when there are
-no more references.
-<P>
-To prove that all of that works correctly in the tutorial, I've
-created a cheap Memory Leak Detector object. All mld instances
-reference a thread-safe counter that is incremented when the mld is
-constructed and decremented when destructed. I then insert an mld
-into each of my dynamically created objects. If I get to the end of
-main() and the counter isn't zero then I either didn't delete enough
-or I deleted too many times.
-<P>
-Simple, cheap, effective.
-<P>
-<HR WIDTH="100%">
-<HR width=50%><P><center>mld.h</center><HR width=50%>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>MLD_H</font>
-<font color=blue>#define</font> <font color=purple>MLD_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Synch.h">ace/Synch.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Singleton.h">ace/Singleton.h</A>"
-
-<font color=red>/*
- This is a cheap memory leak detector. Each class I want to watch over
- contains an mld object. The mld object's ctor increments a global counter
- while the dtor decrements it. If the counter is non-zero when the program
- is ready to exit then there may be a leak.
- */</font>
-
-class mld
-{
-public:
- mld (void);
- ~mld (void);
-
- static int value (void);
-
-protected:
- static ACE_Atomic_Op &lt; ACE_Mutex, int >counter_;
-};
-
-<font color=red>// ================================================</font>
-
-<font color=red>/*
- Just drop 'MLD' anywhere in your class definition to get cheap memory leak
- detection for your class.
- */</font>
-<font color=blue>#define</font> <font color=purple>MLD</font> mld mld_
-
-<font color=red>/*
- Use 'MLD_COUNTER' in main() to see if things are OK.
- */</font>
-<font color=blue>#define</font> <font color=purple>MLD_COUNTER</font> <font color=#008888>mld::value</font>()
-
-<font color=red>// ================================================</font>
-
-<font color=blue>#endif</font>
-</PRE>
-<HR width=50%><P><center>mld.cpp</center><HR width=50%>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>mld.h</font>"
-
-ACE_Atomic_Op &lt; ACE_Mutex, int ><font color=#008888>mld::counter_</font> (0);
-
-<font color=red>// Increment the counter when a new mld is created...</font>
-<font color=#008888>mld::mld</font> (void)
-{
- ++counter_;
-}
-
-<font color=red>// and decrement it when the object is destructed.</font>
-<font color=#008888>mld::~mld</font> (void)
-{
- --counter_;
-}
-
-int <font color=#008888>mld::value</font> (void)
-{
- return counter_.value ();
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/013/page04.html b/docs/tutorials/013/page04.html
deleted file mode 100644
index af1410396a2..00000000000
--- a/docs/tutorials/013/page04.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 013</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 013</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Multiple thread pools</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-Let's look now at the changes to our ACE_Message_Block derivative and
-the new ACE_Data_Block derivative.
-<P>
-The important thing to remember is that the data block (not the
-message block) is reference counted. When you instantiate a new
-ACE_Message_Block, it will create one or more ACE_Data_Block objects
-to contain the data you need. Optionally, you can provide it with a
-pointer to a data block.
-<P>
-When you finish with a message block, you should use the release()
-method to make it go away. Do not ever <em>delete</em> an instance of
-a message block! When you invoke release(), the message block will
-invoke release() on the data block(s) it contains. If the block's
-reference count goes to zero as a result then the block will <em>delete</em>
-itself.
-<P>
-To increment the reference count of a data block, use the
-duplicate() method of the message block (or blocks) to get a new
-message block referencing the same data block. This is very efficient
-since the actual data is not copied.
-<P>
-<HR WIDTH="100%">
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>BLOCK_H</font>
-<font color=blue>#define</font> <font color=purple>BLOCK_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Message_Block.h">ace/Message_Block.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Synch.h">ace/Synch.h</A>"
-<font color=blue>#include</font> "<font color=green>mld.h</font>"
-<font color=blue>#include</font> "<font color=green>work.h</font>"
-
-<font color=red>/*
- In this Tutorial, we derive from ACE_Data_Block for our special data. With
- the possiblilty that our Task object may forward the unit of work on to
- another thread pool, we have to make sure that the data object doesn't go
- out of scope unexpectedly. An ACE_Message_Block will be deleted as soon as
- it's release() method is called but the ACE_Data_Blocks it uses are
- reference counted and only delete when the last reference release()es the
- block. We use that trait to simplify our object memory management.
- */</font>
-class Data_Block : public ACE_Data_Block
-{
-public:
- typedef ACE_Data_Block inherited;
-
- <font color=red>// Create a data block with a unit of work to be done</font>
- Data_Block (Unit_Of_Work * _data);
-
- ~Data_Block (void);
-
- <font color=red>// Returns the work pointer</font>
- Unit_Of_Work *data (void);
-
-protected:
- Unit_Of_Work * data_;
- MLD; <font color=red>// Our memory leak detector</font>
-
- <font color=red>// The ACE_Data_Block allows us to choose a locking strategy</font>
- <font color=red>// for making the reference counting thread-safe. The</font>
- <font color=red>// ACE_Lock_Adaptor&lt;> template adapts the interface of a</font>
- <font color=red>// number of lock objects so that the ACE_Message_Block will</font>
- <font color=red>// have an interface it can use.</font>
- class Lock : public ACE_Lock_Adapter &lt; ACE_Mutex >
- {
- public:
- typedef ACE_Lock_Adapter &lt; ACE_Mutex > inherited;
-
- Lock (void);
- ~Lock (void);
-
- <font color=red>// destroy() will be called to explicitly delete the</font>
- <font color=red>// lock when we no longer need it. The method will then</font>
- <font color=red>// cleanup to prevent any memory leaks.</font>
- int destroy (void);
-
- protected:
- MLD;
- };
-};
-
-<font color=red>/*
- This simple derivative of ACE_Message_Block will construct our Data_Block
- object to contain a unit of work.
- */</font>
-class Message_Block : public ACE_Message_Block
-{
-public:
- typedef ACE_Message_Block inherited;
-
- Message_Block (void);
- Message_Block (Unit_Of_Work * _data);
-
- ~Message_Block (void);
-
-protected:
- MLD;
-};
-
-<font color=blue>#endif</font>
-</PRE>
-<HR WIDTH="100%">
-<P>
-One of the most difficult parts of this to get right was the Lock
-object. I didn't even have it in the beginning but I soon realized
-that the reference counts were getting weird. A little careful
-reading of the comments and the source informed me that some sort of
-locking is necessary to keep the counter sane. The simplest thing at
-that point was to use the ACE_Lock_Adaptor&lt;&gt; to adapt ACE_Mutex
-appropriately. The next trick was to ensure that the lock object was
-destroyed at the proper time to prevent both memory leaks and core
-dumps. The finaly product may be a little bit intimidating at first
-but it's really quite simple once you understand the motivation.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/013/page05.html b/docs/tutorials/013/page05.html
deleted file mode 100644
index df9e7cd7c00..00000000000
--- a/docs/tutorials/013/page05.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 013</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 013</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Multiple thread pools</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-On this page we have the code for the Data_Block and Message_Block
-objects. As you probably suspect from the header on the previous
-page, the complicated part is in the construction and destruction of
-the Data_Block.
-<P>
-<HR WIDTH="100%">
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>block.h</font>"
-
-<font color=red>/*
- Construct a Dat_Block to contain a unit of work. Note the careful
- construction of the baseclass to set the block type and the locking
- strategy.
- */</font>
-<font color=#008888>Data_Block::Data_Block</font> (Unit_Of_Work * _data)
- : ACE_Data_Block (0, <font color=#008888>ACE_Message_Block::MB_DATA</font>, 0, 0, new Lock (), 0, 0)
- ,data_ (_data)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Data_Block ctor for 0x%x\n</font>", (void *) this, (void *) data_));
-}
-
-<font color=red>/*
- The Lock object created in the constructor is stored in the baseclass and
- available through the locking_strategy() method. We can cast it's value to
- our Lock object and invoke the destroy() to indicate that we want it to go
- away when the lock is released.
- */</font>
-<font color=#008888>Data_Block::~Data_Block</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Data_Block dtor for 0x%x\n</font>", (void *) this, (void *) data_));
- ((Lock *) locking_strategy ())->destroy ();
- delete data_;
-}
-
-<font color=red>/*
- Return the data
- */</font>
-Unit_Of_Work *<font color=#008888>Data_Block::data</font> (void)
-{
- return this->data_;
-}
-
-Data_Block:: <font color=#008888>Lock::Lock</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Lock ctor\n</font>", (void *) this));
-}
-
-Data_Block:: <font color=#008888>Lock::~Lock</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Lock dtor\n</font>", (void *) this));
-}
-
-<font color=red>/*
- Delete ourselves to prevent any memory leak
- */</font>
-int <font color=#008888>Data_Block::Lock</font>::destroy (void)
-{
- delete this;
- return (0);
-}
-
-<font color=red>/*
- Create an baseclass unit of work when we instantiate a hangup message.
- */</font>
-<font color=#008888>Message_Block::Message_Block</font> (void)
- :ACE_Message_Block (new Data_Block (new Unit_Of_Work ()))
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Message_Block ctor for shutdown\n</font>", (void *) this));
- this->msg_type (MB_HANGUP);
-}
-
-<font color=red>/*
- Store the unit of work in a Data_Block and initialize the baseclass with
- that data.
- */</font>
-<font color=#008888>Message_Block::Message_Block</font> (Unit_Of_Work * _data)
- :ACE_Message_Block (new Data_Block (_data))
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Message_Block ctor for 0x%x\n</font>", (void *) this, (void *) _data));
-}
-
-<font color=#008888>Message_Block::~Message_Block</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Message_Block dtor\n</font>", (void *) this));
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/013/page06.html b/docs/tutorials/013/page06.html
deleted file mode 100644
index 33fa7aba2c9..00000000000
--- a/docs/tutorials/013/page06.html
+++ /dev/null
@@ -1,304 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 013</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 013</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Multiple thread pools</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-Let's take a look now at the new Task object. This will obviously be
-different from the Tasks we've created before but I think you'll be
-surprised at how relatively simple it actually is.
-<P>
-Remember that the goal of this tutorial was to use the reference
-counting abilities of the ACE_Data_Block. The only way to show that
-effectively is to have a data block passed between different threads.
-A thread pool isn't really going to do that so, instead, our new Task
-can be part of a chain of tasks. In that way, each Task can pass the
-data on to another and satisfy our need for moving the ACE_Data_Block
-around.
-If we've done the reference counting correctly then none of our tasks
-will be trying to work with deleted data and we won't have any memory
-leaks at the end.
-<P>
-There's not much to the header, so I've included it and the cpp file
-on this one page.
-<P>
-<HR WIDTH="100%">
-<HR width=50%><P><center>task.h</center><HR width=50%>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>TASK_H</font>
-<font color=blue>#define</font> <font color=purple>TASK_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Task.h">ace/Task.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<font color=green>mld.h</font>"
-
-<font color=red>/*
- This is much like the Task we've used in the past for implementing a thread
- pool. This time, however, I've made the Task an element in a singly-linked
- list. As the svc() method finishes the process() on a unit of work, it
- will enqueue that unit of work to the next_ Task if there is one. If the
- Task does not have a next_ Task, it will invoke the unit of work object's
- fini() method after invoking process().
- */</font>
-class Task : public ACE_Task &lt; ACE_MT_SYNCH >
-{
-public:
-
- typedef ACE_Task &lt; ACE_MT_SYNCH > inherited;
-
- <font color=red>// Construct ourselves and an optional number of subtasks</font>
- <font color=red>// chained beyond us.</font>
- Task (int sub_tasks = 0);
- ~Task (void);
-
- <font color=red>/*
- I really wanted this to be called open() but that was already
- claimed by the Task framework. start() will kick off our thread
- pool for us.
- */</font>
- int start (int threads = 1);
-
- <font color=red>// Take Unit_Of_Work objects from the thread pool and invoke</font>
- <font color=red>// their process() and/or fini() as appropriate.</font>
- int svc (void);
-
- <font color=red>// Shut down the thread pool and it's associated subtasks</font>
- int close (u_long flags = 0);
-
- <font color=red>// Wait for the pool and subtasks to close</font>
- int wait (void);
-
-protected:
- ACE_Barrier * barrier_;
- Task *next_;
- MLD;
-};
-
-<font color=blue>#endif</font>
-</PRE>
-<HR width=50%><P><center>task.cpp</center><HR width=50%>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>task.h</font>"
-<font color=blue>#include</font> "<font color=green>block.h</font>"
-<font color=blue>#include</font> "<font color=green>work.h</font>"
-
-<font color=red>/*
- Construct the Task with zero or more subtasks. If subtasks are requested,
- we assign our next_ pointer to the first of those and let it worry about
- any remaining subtasks.
- */</font>
-<font color=#008888>Task::Task</font> (int sub_tasks)
- : barrier_ (0)
- ,next_ (0)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Task ctor 0x%x\n</font>", (void *) this));
- if (sub_tasks)
- {
- next_ = new Task (--sub_tasks);
- }
-}
-
-<font color=red>/*
- Delete our barrier object and any subtasks we may have.
- */</font>
-<font color=#008888>Task::~Task</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Task dtor 0x%x\n</font>", (void *) this));
-
- delete barrier_;
- delete next_;
-}
-
-<font color=red>/*
- Open our thread pool with the requested number of threads. If subtasks are
- enabled, they inherit the thread-pool size. Make sure that the subtasks can
- be opened before we open our own threadpool.
- */</font>
-int <font color=#008888>Task::start</font> (int threads)
-{
- if (next_)
- {
- if (next_->start (threads) == -1)
- {
- return -1;
- }
- }
-
- barrier_ = new ACE_Barrier (threads);
- return this->activate (THR_NEW_LWP, threads);
-}
-
-<font color=red>/*
- Close ourselves and any subtasks. This just prints a message so that we can
- assure ourselves things are cleaned up correctly.
- */</font>
-int <font color=#008888>Task::close</font> (u_long flags)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Task close 0x%x\n</font>", (void *) this));
- if (next_)
- {
- next_->close (flags);
- }
-
- return (0);
-}
-
-<font color=red>/*
- Wait for all of the threads in our pool to exit and then wait for any
- subtasks. When called from the front of the task chain, this won't return
- until all thread pools in the chain have exited.
- */</font>
-int <font color=#008888>Task::wait</font> (void)
-{
- <font color=#008888>inherited::wait</font> ();
- if (next_)
- {
- next_->wait ();
- }
- return (0);
-}
-
-<font color=red>/*
- Like the thread-pools before, this is where all of the work is done.
- */</font>
-int <font color=#008888>Task::svc</font> (void)
-{
- <font color=red>// Wait for all threads to get this far before continuing.</font>
- this->barrier_->wait ();
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Task 0x%x starts in thread %u\n</font>", (void *) this, <font color=#008888>ACE_Thread::self</font> ()));
-
- <font color=red>// getq() wants an ACE_Message_Block so we'll start out with one</font>
- <font color=red>// of those. We could do some casting (or even auto-casting) to</font>
- <font color=red>// avoid the extra variable but I prefer to be clear about our actions.</font>
- ACE_Message_Block *message;
-
- <font color=red>// What we really put into the queue was our Message_Block.</font>
- <font color=red>// After we get the message from the queue, we'll cast it to this</font>
- <font color=red>// so that we know how to work on it.</font>
- Message_Block *message_block;
-
- <font color=red>// And, of course, our Message_Block contains our Data_Block</font>
- <font color=red>// instead of the typical ACE_Data_Block</font>
- Data_Block *data_block;
-
- <font color=red>// Even though we put Work objects into the queue, we take them</font>
- <font color=red>// out using the baseclass pointer. This allows us to create new</font>
- <font color=red>// derivatives without having to change this svc() method.</font>
- Unit_Of_Work *work;
-
- while (1)
- {
- <font color=red>// Get the ACE_Message_Block</font>
- if (this->getq (message) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>getq</font>"), -1);
- }
-
- <font color=red>// "<font color=green>Convert</font>" it to our Message_Block</font>
- message_block = (Message_Block *) message;
-
- <font color=red>// Get the ACE_Data_Block and "<font color=green>convert</font>" to Data_Block in one step.</font>
- data_block = (Data_Block *) (message_block->data_block ());
-
- <font color=red>// Get the unit of work from the data block</font>
- work = data_block->data ();
-
- <font color=red>// Show the object's instance value and "<font color=green>type name</font>"</font>
- work->who_am_i ();
- work->what_am_i ();
-
- <font color=red>// If there is a hangup we need to tell our pool-peers as</font>
- <font color=red>// well as any subtasks.</font>
- if (message_block->msg_type () == <font color=#008888>ACE_Message_Block::MB_HANGUP</font>)
- {
- <font color=red>// duplicate()ing the message block will increment the</font>
- <font color=red>// reference counts on the data blocks. This allows us</font>
- <font color=red>// to safely release() the message block. The rule of</font>
- <font color=red>// thumb is that if you pass a message block to a new</font>
- <font color=red>// owner, duplicate() it. Then you can release() when</font>
- <font color=red>// you're done and not worry about memory leaks.</font>
- if (this->putq (message_block->duplicate ()) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>putq</font>"), -1);
- }
-
- <font color=red>// If we have a subtask, duplicate() the message block</font>
- <font color=red>// again and pass it to that task's queue</font>
- if (next_ && next_->putq (message_block->duplicate ()) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>putq</font>"), -1);
- }
-
- <font color=red>// We're now done with our copy of the block, so we can</font>
- <font color=red>// release it. Our peers/subtasks have their own message</font>
- <font color=red>// block to access the shared data blocks.</font>
- message_block->release ();
-
- break;
- }
-
- <font color=red>// If this isn't a hangup/shutdown message then we tell the</font>
- <font color=red>// unit of work to process() for a while.</font>
- work->process ();
-
- if (next_)
- {
- <font color=red>// If we have subtasks, we pass the block on to them. Notice</font>
- <font color=red>// that I don't bother to duplicate() the block since I won't</font>
- <font color=red>// release it in this case. I could have invoked</font>
- <font color=red>// duplicate() in the puq() and then release()</font>
- <font color=red>// afterwards. Either is acceptable.</font>
- if (next_->putq (message_block) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>putq</font>"), -1);
- }
- else
- {
- <font color=red>// If we don't have subtasks then invoke fini() to tell</font>
- <font color=red>// the unit of work that we won't be invoking process()</font>
- <font color=red>// any more. Then release() the block. This release()</font>
- <font color=red>// would not change if we duplicate()ed in the above conditional</font>
- work->fini ();
- message_block->release ();
- }
-
- <font color=red>// Pretend that the work takes some time...</font>
- <font color=#008888>ACE_OS::sleep</font> (ACE_Time_Value (0, 250));
- }
-
- return (0);
-}
-</PRE>
-<HR WIDTH="100%">
-<P>
-So you see... it wasn't really that much more complicated. We really
-just have to remember to pass to <i>next_</i> when we finish working
-on the data. If your Unit_Of_Work derivative is going to implement a
-state machine be sure that you also implement a fini() method
-<em>or</em> ensure that your chain of subtasks is large enough for all
-possible states.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page07.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/013/page07.html b/docs/tutorials/013/page07.html
deleted file mode 100644
index c4c5ab5936b..00000000000
--- a/docs/tutorials/013/page07.html
+++ /dev/null
@@ -1,258 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 013</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 013</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Multiple thread pools</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-I've been trying to justify the chain of tasks by talking about a
-Work object that implements a state machine. The idea is that your
-Work object has to perform a series of discrete steps to complete it's
-function. Traditionally, all of those steps would take place in one
-thread of execution. That thread would probably be one from a Task
-thread pool.
-<P>
-Suppose, however, that some of those steps spend a lot of time waiting
-for disk IO. You could find that all of your thread-pool threads
-are just sitting there waiting for the disk. You might then be
-tempted to increase the thread pool size to get more work through.
-However, if some of the stages are memory intensive, you could run out
-of memory if all of the workers get to that state at the same time.
-<P>
-One solution might be to have different thread pools for each state.
-Each pool could have it's size tuned appropriately for the work that
-would be done there. That's where the chain of Tasks comes in.
- In this tutorial's implementation I've taken the
-easy route and set all of the thread pools to the same size but a more
-realistic solution would be to set each thread pool in the chain to a
-specific size as needed by that state of operation.
-<P>
-There's not much to this header either so I've combined it with the
-cpp file as with task.
-<P>
-<HR WIDTH="100%">
-<HR width=50%><P><center>work.h</center><HR width=50%>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>WORK_H</font>
-<font color=blue>#define</font> <font color=purple>WORK_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Synch.h">ace/Synch.h</A>"
-<font color=blue>#include</font> "<font color=green>mld.h</font>"
-
-<font color=red>/*
- Our specilized message queue and thread pool will know how to do "<font color=green>work</font>" on
- our Unit_Of_Work baseclass.
- */</font>
-class Unit_Of_Work
-{
-public:
- Unit_Of_Work (void);
-
- virtual ~ Unit_Of_Work (void);
-
- <font color=red>// Display the object instance value</font>
- void who_am_i (void);
-
- <font color=red>// The baseclass can override this to show it's "<font color=green>type name</font>"</font>
- virtual void what_am_i (void);
-
- <font color=red>// This is where you do application level logic. It will be</font>
- <font color=red>// called once for each thread pool it passes through. It</font>
- <font color=red>// would typically implement a state machine and execute a</font>
- <font color=red>// different state on each call.</font>
- virtual int process (void);
-
- <font color=red>// This is called by the last Task in the series (see task.h)</font>
- <font color=red>// in case our process() didn't get through all of it's states.</font>
- virtual int fini (void);
-
-protected:
- ACE_Atomic_Op &lt; ACE_Mutex, int >state_;
- MLD;
-};
-
-<font color=red>/*
- A fairly trivial work derivative that implements an equally trivial state
- machine in process()
- */</font>
-class Work : public Unit_Of_Work
-{
-public:
- Work (void);
-
- Work (int message);
-
- virtual ~ Work (void);
-
- void what_am_i (void);
-
- int process (void);
-
- int fini (void);
-
-protected:
- int message_;
- MLD;
-};
-
-<font color=blue>#endif</font>
-</PRE>
-<HR width=50%><P><center>work.cpp</center><HR width=50%>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>work.h</font>"
-
-<font color=red>/*
- Initialize the state to zero
- */</font>
-<font color=#008888>Unit_Of_Work::Unit_Of_Work</font> (void)
- : state_ (0)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Unit_Of_Work ctor\n</font>", (void *) this));
-}
-
-<font color=#008888>Unit_Of_Work::~Unit_Of_Work</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Unit_Of_Work dtor\n</font>", (void *) this));
-}
-
-<font color=red>/*
- Display our instance value
- */</font>
-void <font color=#008888>Unit_Of_Work::who_am_i</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Unit_Of_Work instance\n</font>", (void *) this));
-}
-
-<font color=red>/*
- Dispay our type name
- */</font>
-void <font color=#008888>Unit_Of_Work::what_am_i</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x I am a Unit_Of_Work object\n</font>", (void *) this));
-}
-
-<font color=red>/*
- Return failure. You should always derive from Unit_Of_Work...
- */</font>
-int <font color=#008888>Unit_Of_Work::process</font> (void)
-{
- return -1;
-}
-
-<font color=red>/*
- ditto
- */</font>
-int <font color=#008888>Unit_Of_Work::fini</font> (void)
-{
- return -1;
-}
-
-<font color=red>/*
- Default constructor has no "<font color=green>message number</font>"
- */</font>
-<font color=#008888>Work::Work</font> (void)
- :message_ (-1)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Work ctor\n</font>", (void *) this));
-}
-
-<font color=red>/*
- The useful constructor remembers which message it is and will tell you if
- you ask.
- */</font>
-<font color=#008888>Work::Work</font> (int message)
- : message_ (message)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Work ctor for message %d\n</font>", (void *) this, message_));
-}
-
-<font color=#008888>Work::~Work</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Work dtor\n</font>", (void *) this));
-}
-
-<font color=red>/*
- This objects type name is different from the baseclass
- */</font>
-void <font color=#008888>Work::what_am_i</font> (void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x I am a Work object for message %d\n</font>", (void *) this, message_));
-}
-
-<font color=red>/*
- A very simple state machine that just walks through three stages. If it is
- called more than that, it will tell you not to bother.
- */</font>
-int <font color=#008888>Work::process</font> (void)
-{
- switch (++state_)
- {
- case 1:
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Stage One\n</font>", (void *) this));
- break;
- case 2:
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Stage Two\n</font>", (void *) this));
- break;
- case 3:
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x Stage Three\n</font>", (void *) this));
- break;
- default:
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x No work to do in state %d\n</font>",
- (void *) this, state_.value ()));
- break;
- }
- return (0);
-}
-
-<font color=red>/*
- If you don't have enough subtasks in the chain then the state machine won't
- progress to the end. The fini() hook will allow us to recover from that by
- executing the remaining states in the final task of the chain.
- */</font>
-int <font color=#008888>Work::fini</font> (void)
-{
- while (state_.value () &lt; 3)
- {
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) 0x%x <font color=#008888>Work::fini</font>() state %d\n</font>", (void *) this,state_.value()));
- if (this->process () == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>process</font>"), -1);
- }
- }
- return (0);
-}
-</PRE>
-<HR>
-<P>
-And that is that. For a more complex machine that may want to "jump
-states" you would have to set some "state information" (sorry, bad
-choice of terminology again) so that process() could decide what to do
-at each call. You might also modify Task::svc() so that it will
-respect the return value of process() and do something useful with the
-information.
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page08.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/013/page08.html b/docs/tutorials/013/page08.html
deleted file mode 100644
index e3a46b43638..00000000000
--- a/docs/tutorials/013/page08.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 013</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 013</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Multiple thread pools</FONT></B></CENTER>
-
-
-<P>
-<HR WIDTH="100%">
-<P>
-And that's the end of another tutorial. This one is probably the most
-complicated so far because I've introduced or expanded upon
-a number of different
-concepts. Namely: state machines, reference counting and task
-chaining. I hope I didn't complicate things to the point where the
-lesson got lost in the noise. As always, feel free to drop a note to
-the ACE-Users mailing list if you feel that some of this could use a
-little more explaination.
-
-<P>
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="block.cpp">block.cpp</A>
-<LI><A HREF="block.h">block.h</A>
-<LI><A HREF="message_queue.cpp">message_queue.cpp</A>
-<LI><A HREF="mld.cpp">mld.cpp</A>
-<LI><A HREF="mld.h">mld.h</A>
-<LI><A HREF="task.cpp">task.cpp</A>
-<LI><A HREF="task.h">task.h</A>
-<LI><A HREF="work.cpp">work.cpp</A>
-<LI><A HREF="work.h">work.h</A>
-</UL>
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/013/task.cpp b/docs/tutorials/013/task.cpp
deleted file mode 100644
index 37af6f8072f..00000000000
--- a/docs/tutorials/013/task.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-
-// $Id$
-
-#include "task.h"
-#include "block.h"
-#include "work.h"
-
-/*
- Construct the Task with zero or more subtasks. If subtasks are requested,
- we assign our next_ pointer to the first of those and let it worry about
- any remaining subtasks.
- */
-Task::Task (int sub_tasks)
- : barrier_ (0)
- ,next_ (0)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Task ctor 0x%x\n", (void *) this));
- if (sub_tasks)
- {
- next_ = new Task (--sub_tasks);
- }
-}
-
-/*
- Delete our barrier object and any subtasks we may have.
- */
-Task::~Task (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Task dtor 0x%x\n", (void *) this));
-
- delete barrier_;
- delete next_;
-}
-
-/*
- Open our thread pool with the requested number of threads. If subtasks are
- enabled, they inherit the thread-pool size. Make sure that the subtasks can
- be opened before we open our own threadpool.
- */
-int Task::start (int threads)
-{
- if (next_)
- {
- if (next_->start (threads) == -1)
- {
- return -1;
- }
- }
-
- barrier_ = new ACE_Barrier (threads);
- return this->activate (THR_NEW_LWP, threads);
-}
-
-/*
- Close ourselves and any subtasks. This just prints a message so that we can
- assure ourselves things are cleaned up correctly.
- */
-int Task::close (u_long flags)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Task close 0x%x\n", (void *) this));
- if (next_)
- {
- next_->close (flags);
- }
-
- return (0);
-}
-
-/*
- Wait for all of the threads in our pool to exit and then wait for any
- subtasks. When called from the front of the task chain, this won't return
- until all thread pools in the chain have exited.
- */
-int Task::wait (void)
-{
- inherited::wait ();
- if (next_)
- {
- next_->wait ();
- }
- return (0);
-}
-
-/*
- Like the thread-pools before, this is where all of the work is done.
- */
-int Task::svc (void)
-{
- // Wait for all threads to get this far before continuing.
- this->barrier_->wait ();
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Task 0x%x starts in thread %u\n", (void *) this, ACE_Thread::self ()));
-
- // getq() wants an ACE_Message_Block so we'll start out with one
- // of those. We could do some casting (or even auto-casting) to
- // avoid the extra variable but I prefer to be clear about our actions.
- ACE_Message_Block *message;
-
- // What we really put into the queue was our Message_Block.
- // After we get the message from the queue, we'll cast it to this
- // so that we know how to work on it.
- Message_Block *message_block;
-
- // And, of course, our Message_Block contains our Data_Block
- // instead of the typical ACE_Data_Block
- Data_Block *data_block;
-
- // Even though we put Work objects into the queue, we take them
- // out using the baseclass pointer. This allows us to create new
- // derivatives without having to change this svc() method.
- Unit_Of_Work *work;
-
- while (1)
- {
- // Get the ACE_Message_Block
- if (this->getq (message) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "getq"), -1);
- }
-
- // "Convert" it to our Message_Block
- message_block = (Message_Block *) message;
-
- // Get the ACE_Data_Block and "convert" to Data_Block in one step.
- data_block = (Data_Block *) (message_block->data_block ());
-
- // Get the unit of work from the data block
- work = data_block->data ();
-
- // Show the object's instance value and "type name"
- work->who_am_i ();
- work->what_am_i ();
-
- // If there is a hangup we need to tell our pool-peers as
- // well as any subtasks.
- if (message_block->msg_type () == ACE_Message_Block::MB_HANGUP)
- {
- // duplicate()ing the message block will increment the
- // reference counts on the data blocks. This allows us
- // to safely release() the message block. The rule of
- // thumb is that if you pass a message block to a new
- // owner, duplicate() it. Then you can release() when
- // you're done and not worry about memory leaks.
- if (this->putq (message_block->duplicate ()) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "putq"), -1);
- }
-
- // If we have a subtask, duplicate() the message block
- // again and pass it to that task's queue
- if (next_ && next_->putq (message_block->duplicate ()) == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "putq"), -1);
- }
-
- // We're now done with our copy of the block, so we can
- // release it. Our peers/subtasks have their own message
- // block to access the shared data blocks.
- message_block->release ();
-
- break;
- }
-
- // If this isn't a hangup/shutdown message then we tell the
- // unit of work to process() for a while.
- work->process ();
-
- if (next_)
- {
- // If we have subtasks, we pass the block on to them. Notice
- // that I don't bother to duplicate() the block since I won't
- // release it in this case. I could have invoked
- // duplicate() in the puq() and then release()
- // afterwards. Either is acceptable.
- if (next_->putq (message_block) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "putq"), -1);
- }
- else
- {
- // If we don't have subtasks then invoke fini() to tell
- // the unit of work that we won't be invoking process()
- // any more. Then release() the block. This release()
- // would not change if we duplicate()ed in the above conditional
- work->fini ();
- message_block->release ();
- }
-
- // Pretend that the work takes some time...
- ACE_OS::sleep (ACE_Time_Value (0, 250));
- }
-
- return (0);
-}
diff --git a/docs/tutorials/013/task.h b/docs/tutorials/013/task.h
deleted file mode 100644
index c111333b022..00000000000
--- a/docs/tutorials/013/task.h
+++ /dev/null
@@ -1,57 +0,0 @@
-
-// $Id$
-
-#ifndef TASK_H
-#define TASK_H
-
-#include "ace/Task.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "mld.h"
-
-/*
- This is much like the Task we've used in the past for implementing a thread
- pool. This time, however, I've made the Task an element in a singly-linked
- list. As the svc() method finishes the process() on a unit of work, it
- will enqueue that unit of work to the next_ Task if there is one. If the
- Task does not have a next_ Task, it will invoke the unit of work object's
- fini() method after invoking process().
- */
-class Task : public ACE_Task < ACE_MT_SYNCH >
-{
-public:
-
- typedef ACE_Task < ACE_MT_SYNCH > inherited;
-
- // Construct ourselves and an optional number of subtasks
- // chained beyond us.
- Task (int sub_tasks = 0);
- ~Task (void);
-
- /*
- I really wanted this to be called open() but that was already
- claimed by the Task framework. start() will kick off our thread
- pool for us.
- */
- int start (int threads = 1);
-
- // Take Unit_Of_Work objects from the thread pool and invoke
- // their process() and/or fini() as appropriate.
- int svc (void);
-
- // Shut down the thread pool and it's associated subtasks
- int close (u_long flags = 0);
-
- // Wait for the pool and subtasks to close
- int wait (void);
-
-protected:
- ACE_Barrier * barrier_;
- Task *next_;
- MLD;
-};
-
-#endif
diff --git a/docs/tutorials/013/work.cpp b/docs/tutorials/013/work.cpp
deleted file mode 100644
index ac2920fec90..00000000000
--- a/docs/tutorials/013/work.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-
-// $Id$
-
-#include "work.h"
-
-/*
- Initialize the state to zero
- */
-Unit_Of_Work::Unit_Of_Work (void)
- : state_ (0)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Unit_Of_Work ctor\n", (void *) this));
-}
-
-Unit_Of_Work::~Unit_Of_Work (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Unit_Of_Work dtor\n", (void *) this));
-}
-
-/*
- Display our instance value
- */
-void Unit_Of_Work::who_am_i (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Unit_Of_Work instance\n", (void *) this));
-}
-
-/*
- Dispay our type name
- */
-void Unit_Of_Work::what_am_i (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x I am a Unit_Of_Work object\n", (void *) this));
-}
-
-/*
- Return failure. You should always derive from Unit_Of_Work...
- */
-int Unit_Of_Work::process (void)
-{
- return -1;
-}
-
-/*
- ditto
- */
-int Unit_Of_Work::fini (void)
-{
- return -1;
-}
-
-/*
- Default constructor has no "message number"
- */
-Work::Work (void)
- :message_ (-1)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Work ctor\n", (void *) this));
-}
-
-/*
- The useful constructor remembers which message it is and will tell you if
- you ask.
- */
-Work::Work (int message)
- : message_ (message)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Work ctor for message %d\n", (void *) this, message_));
-}
-
-Work::~Work (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Work dtor\n", (void *) this));
-}
-
-/*
- This objects type name is different from the baseclass
- */
-void Work::what_am_i (void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x I am a Work object for message %d\n", (void *) this, message_));
-}
-
-/*
- A very simple state machine that just walks through three stages. If it is
- called more than that, it will tell you not to bother.
- */
-int Work::process (void)
-{
- switch (++state_)
- {
- case 1:
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Stage One\n", (void *) this));
- break;
- case 2:
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Stage Two\n", (void *) this));
- break;
- case 3:
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Stage Three\n", (void *) this));
- break;
- default:
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x No work to do in state %d\n",
- (void *) this, state_.value ()));
- break;
- }
- return (0);
-}
-
-/*
- If you don't have enough subtasks in the chain then the state machine won't
- progress to the end. The fini() hook will allow us to recover from that by
- executing the remaining states in the final task of the chain.
- */
-int Work::fini (void)
-{
- while (state_.value () < 3)
- {
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) 0x%x Work::fini() state %d\n", (void *) this,state_.value()));
- if (this->process () == -1)
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "process"), -1);
- }
- }
- return (0);
-}
diff --git a/docs/tutorials/013/work.h b/docs/tutorials/013/work.h
deleted file mode 100644
index bdd0835e098..00000000000
--- a/docs/tutorials/013/work.h
+++ /dev/null
@@ -1,72 +0,0 @@
-
-// $Id$
-
-#ifndef WORK_H
-#define WORK_H
-
-#include "ace/Log_Msg.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-#include "mld.h"
-
-/*
- Our specilized message queue and thread pool will know how to do "work" on
- our Unit_Of_Work baseclass.
- */
-class Unit_Of_Work
-{
-public:
- Unit_Of_Work (void);
-
- virtual ~ Unit_Of_Work (void);
-
- // Display the object instance value
- void who_am_i (void);
-
- // The baseclass can override this to show it's "type name"
- virtual void what_am_i (void);
-
- // This is where you do application level logic. It will be
- // called once for each thread pool it passes through. It
- // would typically implement a state machine and execute a
- // different state on each call.
- virtual int process (void);
-
- // This is called by the last Task in the series (see task.h)
- // in case our process() didn't get through all of it's states.
- virtual int fini (void);
-
-protected:
- ACE_Atomic_Op < ACE_Mutex, int >state_;
- MLD;
-};
-
-/*
- A fairly trivial work derivative that implements an equally trivial state
- machine in process()
- */
-class Work : public Unit_Of_Work
-{
-public:
- Work (void);
-
- Work (int message);
-
- virtual ~ Work (void);
-
- void what_am_i (void);
-
- int process (void);
-
- int fini (void);
-
-protected:
- int message_;
- MLD;
-};
-
-#endif
diff --git a/docs/tutorials/014/014.dsp b/docs/tutorials/014/014.dsp
deleted file mode 100644
index 0801d52285f..00000000000
--- a/docs/tutorials/014/014.dsp
+++ /dev/null
@@ -1,112 +0,0 @@
-# Microsoft Developer Studio Project File - Name="014" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=014 - 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 "014.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 "014.mak" CFG="014 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "014 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "014 - 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)" == "014 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "014 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"stream.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "014 - Win32 Release"
-# Name "014 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\EndTask.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/014/EndTask.h b/docs/tutorials/014/EndTask.h
deleted file mode 100644
index a8bab2698b5..00000000000
--- a/docs/tutorials/014/EndTask.h
+++ /dev/null
@@ -1,89 +0,0 @@
-// $Id$
-
-// EndTask.h
-//
-// Tutorial regarding a way to use ACE_Stream.
-//
-// written by bob mcwhirter (bob@netwrench.com)
-//
-//
-
-#ifndef ENDTASK_H
-#define ENDTASK_H
-
-#include "Task.h"
-
-// When you setup a Stream and push your modules on,
-// there are two additional modules that go unseen
-// by the user.
-//
-// The Stream pushes on a Stream_Head in front of
-// your first module, and a Stream_Tail behind your
-// last module.
-//
-// If your put() a message to the Stream Tail, it
-// assumes you did so in error. This simple EndTask
-// class allows you to push a message to it and just
-// have it safely Go Away.
-//
-// All this Task does is release the Message_Block
-// and return 0. It's a suitable black-hole.
-
-class EndTask : public Task
-{
-public:
- typedef Task inherited;
-
- EndTask (const char *nameOfTask): inherited (nameOfTask, 0)
- {
- // when we get open()'d, it with 0 threads since there is actually
- // no processing to do.
-
- ACE_DEBUG ((LM_INFO,
- "(%P|%t) Line: %d, File: %s\n",
- __LINE__,
- __FILE__));
- }
-
- virtual int open (void *)
- {
- ACE_DEBUG ((LM_INFO,
- "(%P|%t) Line: %d, File: %s\n",
- __LINE__,
- __FILE__));
- return 0;
- }
-
- virtual int open (void)
- {
- ACE_DEBUG ((LM_INFO,
- "(%P|%t) Line: %d, File: %s\n",
- __LINE__,
- __FILE__));
- return 0;
- }
-
- virtual ~EndTask(void)
- {
- }
-
- virtual int put (ACE_Message_Block *message,
- ACE_Time_Value *timeout)
- {
- ACE_DEBUG ((LM_INFO,
- "(%P|%t) Line: %d, File: %s\n",
- __LINE__,
- __FILE__));
- ACE_UNUSED_ARG (timeout);
-
- // we don't have anything to do, so release() the message.
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) %s EndTask::put() -- releasing Message_Block\n",
- this->nameOfTask ()));
- message->release ();
- return 0;
- }
-
-};
-
-#endif /* ENDTASK_H */
diff --git a/docs/tutorials/014/Makefile b/docs/tutorials/014/Makefile
deleted file mode 100644
index 9ccd4e53357..00000000000
--- a/docs/tutorials/014/Makefile
+++ /dev/null
@@ -1,77 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = stream
-
-FILES = Task
-
-BUILD = $(VBIN)
-
-SRC = $(addsuffix .cpp,$(BIN))
-SRC += $(addsuffix .cpp,$(FILES))
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-rename : #
- for i in *.cxx ; do \
- n=`expr "$$i" : "\(.*\).cxx"` ;\
- mv $$i $$n.cpp ;\
- done
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre > combine.shar && $(RM) hdr bodies *.pre
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include .depend
diff --git a/docs/tutorials/014/Task.cpp b/docs/tutorials/014/Task.cpp
deleted file mode 100644
index f1f3d6fdc33..00000000000
--- a/docs/tutorials/014/Task.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-
-// $Id$
-
-// Task.cxx
-//
-// Tutorial regarding a way to use ACE_Stream.
-//
-// written by bob mcwhirter (bob@netwrench.com)
-//
-//
-
-#include <ace/Message_Block.h>
-
-#include "Task.h"
-
-Task::Task(const char * nameOfTask,
- int numberOfThreads)
- : d_numberOfThreads(numberOfThreads),
- d_barrier(numberOfThreads)
-{
- // Just initialize our name, number of threads, and barrier.
-
- ACE_OS::strcpy(d_nameOfTask, nameOfTask);
-}
-
-Task::~Task(void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s Task::~Task() -- once per Task\n", d_nameOfTask));
-}
-
-int Task::open(void *arg)
-{
- ACE_UNUSED_ARG(arg);
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s Task::open() -- once per Task\n", d_nameOfTask));
-
- // call ACE_Task::activate() to spawn the threads using
- // our Task::svc() as the function to be run.
-
- // No need to use THR_DETACHED here, we're going to wait()
- // for the threads to exit later. No leaks.
-
- return this->activate(THR_NEW_LWP, d_numberOfThreads);
-}
-
-int Task::put(ACE_Message_Block *message,
- ACE_Time_Value *timeout)
-{
- // ACE_Stream uses the put() method of Tasks to send messages.
- // This defaultly does nothing. Here we link our put() method
- // directly to our putq() method, so that Messages put() to us
- // will appear in the Message_Queue that is checked by the
- // service threads.
-
- return this->putq(message, timeout);
-}
-
-int Task::close(u_long flags)
-{
-
- // When the Stream closes the Module, the Module then close()'s the Task
- // and passing a value of (1) as the flag.
-
- // When a service thread exits, it calls close() with a value that is not
- // (1).
-
- // We use this fact to tell the difference between closing a service thread,
- // and closing the main Task itself.
-
- if (flags == 1) {
-
- // The Module has asked to close the main Task.
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s Task::close() -- flags == 1 -- once per Task\n", d_nameOfTask));
-
- // We create a Message_Block...
-
- ACE_Message_Block *hangupBlock = new ACE_Message_Block();
-
- // And make it of the type MB_HANGUP.
-
- hangupBlock->msg_type(ACE_Message_Block::MB_HANGUP);
-
- // We then send this Block into the Message_Queue to be seen by the
- // service threads.
-
- // Once again we duplicate() the Block as send it off...
-
- if (this->putq(hangupBlock->duplicate()) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Task::close() putq"), -1);
- }
-
- // ..and we're free to release() our copy of it.
-
- hangupBlock->release();
-
- // Now, all we have to do is wait() for the service threads to all
- // exit. This is where using THR_DETACHED in the activate() method
- // will come back to haunt you.
-
- // The Stream waits until this returns before attempting to remove
- // the next Module/Task group in the Stream. This allows for an
- // orderly shutting down of the Stream.
-
- return this->wait();
-
-
- } else {
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s Task::close() -- flags != 1 -- once per servicing thread\n", d_nameOfTask));
-
- // This is where we can clean up any mess left over by each service thread.
- // In this Task, there is nothing to do.
-
- }
-
- return 0;
-
-}
-
-int Task::svc(void)
-{
-
- // This is the function that our service threads run once they are spawned.
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s Task::svc() -- once per servicing thread\n", d_nameOfTask));
-
- // First, we wait until all of our peer service threads have arrived
- // at this point also.
-
- d_barrier.wait();
-
- ACE_Message_Block *messageBlock;
-
- while (1) {
-
- // And now we loop almost infinitely.
-
- // getq() will block until a Message_Block is available to be read,
- // or an error occurs.
-
- if ( this->getq(messageBlock, 0) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Task::svc() getq"), -1);
- }
-
- if (messageBlock->msg_type() == ACE_Message_Block::MB_HANGUP) {
-
- // If the Message_Block is of type MB_HANGUP, then we're being asked
- // to shut down nicely.
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s Task::svc() -- HANGUP block received\n", d_nameOfTask));
-
- // So, we duplicate the Block, and put it back into the Message_Queue,
- // in case there are some more peer service threads still running.
-
- if (this->putq(messageBlock->duplicate()) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Task::svc() putq"), -1);
- }
-
- // We release our copy of the Block.
- messageBlock->release();
-
- // And we break out of the nearly infinitely loop, and
- // head towards close() ourselves.
- break;
- }
-
- // If we're here, then we've received a Message_Block that was
- // not informing us to quit, so we're assuming it's a valid
- // meaningful Block.
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s Task::svc() -- Normal block received\n", d_nameOfTask));
-
- // We grab the read-pointer from the Block, and display it through a DEBUG statement.
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s Task::svc() -- %s\n", d_nameOfTask, messageBlock->rd_ptr() ));
-
- // We pretend that this takes to time to process the Block.
- // If you're on a fast machine, you might have to raise this
- // value to actually witness different threads handling
- // blocks for each Task.
-
- ACE_OS::sleep (ACE_Time_Value (0, 250));
-
- // Since we're part of a Stream, we duplicate the Block, and
- // send it on to the next Task.
-
- if (put_next(messageBlock->duplicate()) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Task::svc() put_next"), -1);
- }
-
- // And then we release our copy of it.
-
- messageBlock->release();
-
- }
-
- return 0;
-
-}
-
-
-const char * Task::nameOfTask(void) const
-{
- return d_nameOfTask;
-}
diff --git a/docs/tutorials/014/Task.h b/docs/tutorials/014/Task.h
deleted file mode 100644
index ae02abff1b5..00000000000
--- a/docs/tutorials/014/Task.h
+++ /dev/null
@@ -1,59 +0,0 @@
-// $Id$
-
-// Task.h
-//
-// Tutorial regarding a way to use ACE_Stream.
-//
-// written by bob mcwhirter (bob@netwrench.com)
-
-#ifndef TASK_H
-#define TASK_H
-
-#include <ace/Task.h>
-#include <ace/Synch.h>
-
-// Always typedef when possible.
-
-typedef ACE_Task<ACE_MT_SYNCH> Task_Base;
-
-class Task : public Task_Base
-{
-public:
- typedef Task_Base inherited;
- // This is just good form.
-
- Task (const char *nameOfTask,
- int numberOfThreads);
- // Initialize our Task with a name, and number of threads to spawn.
-
- virtual ~Task (void);
-
- virtual int open (void *arg);
- // This is provided to prevent compiler complaints about hidden
- // virtual functions.
-
- virtual int close (u_long flags);
- // This closes down the Task and all service threads.
-
- virtual int put (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
- // This is the interface that ACE_Stream uses to communicate with
- // our Task.
-
- virtual int svc (void);
- // This is the actual service loop each of the service threads
- // iterates through.
-
- const char *nameOfTask (void) const;
- // Returns the name of this Task.
-
-private:
- int d_numberOfThreads;
- char d_nameOfTask[64];
-
- ACE_Barrier d_barrier;
- // Simple Barrier to make sure all of our service threads have
- // entered their loop before accepting any messages.
-};
-
-#endif /* TASK_H */
diff --git a/docs/tutorials/014/combine.shar b/docs/tutorials/014/combine.shar
deleted file mode 100644
index a9183adebeb..00000000000
--- a/docs/tutorials/014/combine.shar
+++ /dev/null
@@ -1,357 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/014'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 414 -rw-r--r-- hdr
-# 44 -rw-r--r-- bodies
-# 2605 -rw-r--r-- page01.pre
-# 233 -rw-r--r-- page02.pre
-# 657 -rw-r--r-- page03.pre
-# 443 -rw-r--r-- page04.pre
-# 1091 -rw-r--r-- page05.pre
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh32692; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="Bob McWhirter">
-X <TITLE>ACE Tutorial 014</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 014</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>ACE_Stream Tutorial, Of Sorts</FONT></B></CENTER>
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0644 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-25304aa689283dcbed9531b68e7ae2b9 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 414 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '414,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-Task.h
-Task.cpp
-EndTask.h
-stream.cpp
-SHAR_EOF
- $shar_touch -am 1020193698 'bodies' &&
- chmod 0644 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-43305b4b15975a1e4cbd99b6d3592c12 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 44 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '44,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X
-<p><b>ACE_Stream</b> is handy when you have several <b>ACE_Task</b> objects
-that you would like to link together.
-X
-<p>An intermediate class you we will deal with is the <b>ACE_Module</b>.
-X
-<p>The basic plan is to wrap your <b>Task</b> into a <b>Module</b>, push
-the <b>Module</b> onto the <b>Stream</b>. Do this for each <b>Task</b>,
-X and then inject <b>Message_Block</b>s into the <b>Stream</b>.
-X
-<p>Each <b>Task</b> then processes the <b>Message_Block</b>, and forwards
-it on to the next <b>Task</b> in the <b>Stream</b>.
-X
-<p>If you are not already familiar with <b>Message_Block</b>s and <b>Message_Queue</b>s,
-I highly suggest that you check out <A HREF="../#MQ">Tutorials 10-13</A>.
-X
-<p>Streams can be used for both downstream and upstream movement of messages. Used
-this way mirrors closely the way System V STREAMS work. But you don't have to use them
-bidirectionally. In this tutorial, we only use one direction of the Stream. Down.
-X
-<p>This tutorial is contributed by Bob McWhirter (bob@netwrench.com)
-X
-<P>
-Kirthika's abstract:
-<ul>
-In this tutorial, an ACE_Stream has been implemented which has modules
-flowing through it.(literally ;).
-The chain of modules in the Stream include the Head and Tail Modules. A
-Module is simply a reader-writer pair of ACE_Tasks with the writing side
-acting as downstream and the reading side as upstream. Here we are only
-concerned with going downstream so we install a Task into the write-side
-of the module.
-<P>
-The task implementation makes use of flags to decide on whether to close
-the main task or the service thread. The svc () method follows the
-golden rule of copying message blocks before putting them on the queue
-until it comes across a hang-up message. It then puts the message back
-on the queue for its peers to obtain it and exits.
-<P>
-Any message put onto the Tail module is an error. So a customised
-derivative of the Task class is created, which collects all the garbage
-messages put onto the Tail. This End_Task is put into the Stream at the
-start itself such that no modules whould ever follow it!
-<P>
-Then the other modules are pushed from the Tail-end into the Stream.
-This is because we are interested in writing and not reading.
-(Picture this to be a FIFO (queue) with head and tail nodes such
-that the nodes are removed from the front and put into the queue from
-the back)
-<P>
-Each module then opens up the task which spawns threads and begins to
-shove messgaes down the stream. Once we have got all the messages into
-the stream, our job is completed and we shut down the Stream.
-<P>
-A simple way to wade down the stream...;)
-</ul>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0644 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-b0f801c8c6ba2ddcdf8caf89cb672698 page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 2605 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '2605,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-<P>
-You find pretty soon that anytime you work with ACE_Task&lt;&gt; you
-X have to create a derivative. The Task.h header simply provides
-X that derivative with the overrides we'll need in our application.
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0644 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-af6ee3bfc7543c3b536d5c0ff4b70dd5 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 233 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '233,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-<P>
-Before we get to main() let's take a look at the Task implementation.
-X While we've overridden several methods, the real work is done in
-X the close() and svc() methods.
-<P>
-Notice how close() figures out if it is being called by the shutdown
-X of the ACE_Stream or by the exit of svc(). The magic here is
-X provided by the <i>flags</i> parameter. By handling the stream
-X shutdown in this way, we don't have to do anything strange in
-X svc(). We also don't end up with extra hangup messages in the
-X queue when the dust all settles down.
-<P>
-Like our other tutorials, svc() looks for a hangup and processes data.
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0644 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-3403e1bdb202945fc7da5ee1197b4771 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 657 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '657,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-<P>
-As stated in the comments below, the default action of the task at the
-X stream tail is to treat any received data as an error. In our
-X implementation it will often happen that data gets through to
-X the tail. How, then, do we handle this without creating an
-X error condition? Simple: Create a custom Task for use as the
-X stream tail that doesn't consider it an error to receive data.
-<P>
-Read on...
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0644 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-6a3e4f0f1c99fe05cfd1b36b1a1030ed page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 443 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '443,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-<P>
-Now we come to main(). In the previous task-chain tutorial
-X every thread pool had to have the same number of threads. This
-X time around, we leverage the construction method of ACE_Stream
-X and ACE_Module to customize the thread-pool size in each
-X ACE_Task of the stream.
-<P>
-Remember EndTask from the previous page? We create one here and push
-X it into the stream to take care of cleaning up the messages.
-X Technically, we could have replaced the default Tail task
-X created by the ACE framework but it seems to make more sense to
-X just push our "tail" onto the stream like the other tasks. The
-X caveat to this method is that you must be sure you don't push()
-X any other Modules behind the EndTask!
-<P>
-Once the stream of modules containing tasks is all setup then we can
-X put() some data into the stream for processing. The clever use
-X of Task::close() makes shutting downt the stream easier than
-X ever. No messing with hangup messages at the application level,
-X just close() when you're done! What could be simpler?
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0644 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-737e85703d52fe5eefbed872ef22ed7f page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 1091 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '1091,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh32692
-exit 0
diff --git a/docs/tutorials/014/page01.html b/docs/tutorials/014/page01.html
deleted file mode 100644
index cf6972a1156..00000000000
--- a/docs/tutorials/014/page01.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Bob McWhirter">
- <TITLE>ACE Tutorial 014</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 014</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>ACE_Stream Tutorial, Of Sorts</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-
-<p><b>ACE_Stream</b> is handy when you have several <b>ACE_Task</b> objects
-that you would like to link together.
-
-<p>An intermediate class you we will deal with is the <b>ACE_Module</b>.
-
-<p>The basic plan is to wrap your <b>Task</b> into a <b>Module</b>, push
-the <b>Module</b> onto the <b>Stream</b>. Do this for each <b>Task</b>,
- and then inject <b>Message_Block</b>s into the <b>Stream</b>.
-
-<p>Each <b>Task</b> then processes the <b>Message_Block</b>, and forwards
-it on to the next <b>Task</b> in the <b>Stream</b>.
-
-<p>If you are not already familiar with <b>Message_Block</b>s and <b>Message_Queue</b>s,
-I highly suggest that you check out <A HREF="../#MQ">Tutorials 10-13</A>.
-
-<p>Streams can be used for both downstream and upstream movement of messages. Used
-this way mirrors closely the way System V STREAMS work. But you don't have to use them
-bidirectionally. In this tutorial, we only use one direction of the Stream. Down.
-
-<p>This tutorial is contributed by Bob McWhirter (bob@netwrench.com)
-
-<P>
-Kirthika's abstract:
-<ul>
-In this tutorial, an ACE_Stream has been implemented which has modules
-flowing through it.(literally ;).
-The chain of modules in the Stream include the Head and Tail Modules. A
-Module is simply a reader-writer pair of ACE_Tasks with the writing side
-acting as downstream and the reading side as upstream. Here we are only
-concerned with going downstream so we install a Task into the write-side
-of the module.
-<P>
-The task implementation makes use of flags to decide on whether to close
-the main task or the service thread. The svc () method follows the
-golden rule of copying message blocks before putting them on the queue
-until it comes across a hang-up message. It then puts the message back
-on the queue for its peers to obtain it and exits.
-<P>
-Any message put onto the Tail module is an error. So a customised
-derivative of the Task class is created, which collects all the garbage
-messages put onto the Tail. This End_Task is put into the Stream at the
-start itself such that no modules whould ever follow it!
-<P>
-Then the other modules are pushed from the Tail-end into the Stream.
-This is because we are interested in writing and not reading.
-(Picture this to be a FIFO (queue) with head and tail nodes such
-that the nodes are removed from the front and put into the queue from
-the back)
-<P>
-Each module then opens up the task which spawns threads and begins to
-shove messgaes down the stream. Once we have got all the messages into
-the stream, our job is completed and we shut down the Stream.
-<P>
-A simple way to wade down the stream...;)
-</ul>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/014/page02.html b/docs/tutorials/014/page02.html
deleted file mode 100644
index 7184d845eaa..00000000000
--- a/docs/tutorials/014/page02.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Bob McWhirter">
- <TITLE>ACE Tutorial 014</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 014</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>ACE_Stream Tutorial, Of Sorts</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-<P>
-You find pretty soon that anytime you work with ACE_Task&lt;&gt; you
- have to create a derivative. The Task.h header simply provides
- that derivative with the overrides we'll need in our application.
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>// Task.h</font>
-<font color=red>//</font>
-<font color=red>// Tutorial regarding a way to use ACE_Stream.</font>
-<font color=red>//</font>
-<font color=red>// written by bob mcwhirter (bob@netwrench.com)</font>
-
-<font color=blue>#ifndef</font> <font color=purple>TASK_H</font>
-<font color=blue>#define</font> <font color=purple>TASK_H</font>
-
-<font color=blue>#include</font> &lt;ace/Task.h>
-<font color=blue>#include</font> &lt;ace/Synch.h>
-
-<font color=red>// Always typedef when possible.</font>
-
-typedef ACE_Task&lt;ACE_MT_SYNCH> Task_Base;
-
-class Task : public Task_Base
-{
-public:
- typedef Task_Base inherited;
- <font color=red>// This is just good form.</font>
-
- Task (const char *nameOfTask,
- int numberOfThreads);
- <font color=red>// Initialize our Task with a name, and number of threads to spawn.</font>
-
- virtual ~Task (void);
-
- virtual int open (void *arg);
- <font color=red>// This is provided to prevent compiler complaints about hidden</font>
- <font color=red>// virtual functions.</font>
-
- virtual int close (u_long flags);
- <font color=red>// This closes down the Task and all service threads.</font>
-
- virtual int put (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
- <font color=red>// This is the interface that ACE_Stream uses to communicate with</font>
- <font color=red>// our Task.</font>
-
- virtual int svc (void);
- <font color=red>// This is the actual service loop each of the service threads</font>
- <font color=red>// iterates through.</font>
-
- const char *nameOfTask (void) const;
- <font color=red>// Returns the name of this Task.</font>
-
-private:
- int d_numberOfThreads;
- char d_nameOfTask[64];
-
- ACE_Barrier d_barrier;
- <font color=red>// Simple Barrier to make sure all of our service threads have</font>
- <font color=red>// entered their loop before accepting any messages.</font>
-};
-
-<font color=blue>#endif</font> <font color=red>/* TASK_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/014/page03.html b/docs/tutorials/014/page03.html
deleted file mode 100644
index c08ce6b05db..00000000000
--- a/docs/tutorials/014/page03.html
+++ /dev/null
@@ -1,241 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Bob McWhirter">
- <TITLE>ACE Tutorial 014</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 014</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>ACE_Stream Tutorial, Of Sorts</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-<P>
-Before we get to main() let's take a look at the Task implementation.
- While we've overridden several methods, the real work is done in
- the close() and svc() methods.
-<P>
-Notice how close() figures out if it is being called by the shutdown
- of the ACE_Stream or by the exit of svc(). The magic here is
- provided by the <i>flags</i> parameter. By handling the stream
- shutdown in this way, we don't have to do anything strange in
- svc(). We also don't end up with extra hangup messages in the
- queue when the dust all settles down.
-<P>
-Like our other tutorials, svc() looks for a hangup and processes data.
-<P>
-<HR WIDTH="100%">
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=red>// Task.cxx</font>
-<font color=red>//</font>
-<font color=red>// Tutorial regarding a way to use ACE_Stream.</font>
-<font color=red>//</font>
-<font color=red>// written by bob mcwhirter (bob@netwrench.com)</font>
-<font color=red>//</font>
-<font color=red>//</font>
-
-<font color=blue>#include</font> &lt;ace/Message_Block.h>
-
-<font color=blue>#include</font> "<font color=green>Task.h</font>"
-
-<font color=#008888>Task::Task</font>(const char * nameOfTask,
- int numberOfThreads)
- : d_numberOfThreads(numberOfThreads),
- d_barrier(numberOfThreads)
-{
- <font color=red>// Just initialize our name, number of threads, and barrier.</font>
-
- <font color=#008888>ACE_OS::strcpy</font>(d_nameOfTask, nameOfTask);
-}
-
-<font color=#008888>Task::~Task</font>(void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) %s <font color=#008888>Task::~Task</font>() -- once per Task\n</font>", d_nameOfTask));
-}
-
-int <font color=#008888>Task::open</font>(void *arg)
-{
- ACE_UNUSED_ARG(arg);
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) %s <font color=#008888>Task::open</font>() -- once per Task\n</font>", d_nameOfTask));
-
- <font color=red>// call <font color=#008888>ACE_Task::activate</font>() to spawn the threads using</font>
- <font color=red>// our <font color=#008888>Task::svc</font>() as the function to be run.</font>
-
- <font color=red>// No need to use THR_DETACHED here, we're going to wait()</font>
- <font color=red>// for the threads to exit later. No leaks.</font>
-
- return this->activate(THR_NEW_LWP, d_numberOfThreads);
-}
-
-int <font color=#008888>Task::put</font>(ACE_Message_Block *message,
- ACE_Time_Value *timeout)
-{
- <font color=red>// ACE_Stream uses the put() method of Tasks to send messages.</font>
- <font color=red>// This defaultly does nothing. Here we link our put() method</font>
- <font color=red>// directly to our putq() method, so that Messages put() to us</font>
- <font color=red>// will appear in the Message_Queue that is checked by the</font>
- <font color=red>// service threads.</font>
-
- return this->putq(message, timeout);
-}
-
-int <font color=#008888>Task::close</font>(u_long flags)
-{
-
- <font color=red>// When the Stream closes the Module, the Module then close()'s the Task</font>
- <font color=red>// and passing a value of (1) as the flag.</font>
-
- <font color=red>// When a service thread exits, it calls close() with a value that is not</font>
- <font color=red>// (1).</font>
-
- <font color=red>// We use this fact to tell the difference between closing a service thread,</font>
- <font color=red>// and closing the main Task itself.</font>
-
- if (flags == 1) {
-
- <font color=red>// The Module has asked to close the main Task.</font>
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) %s <font color=#008888>Task::close</font>() -- flags == 1 -- once per Task\n</font>", d_nameOfTask));
-
- <font color=red>// We create a Message_Block...</font>
-
- ACE_Message_Block *hangupBlock = new ACE_Message_Block();
-
- <font color=red>// And make it of the type MB_HANGUP.</font>
-
- hangupBlock->msg_type(<font color=#008888>ACE_Message_Block::MB_HANGUP</font>);
-
- <font color=red>// We then send this Block into the Message_Queue to be seen by the</font>
- <font color=red>// service threads.</font>
-
- <font color=red>// Once again we duplicate() the Block as send it off...</font>
-
- if (this->putq(hangupBlock->duplicate()) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green><font color=#008888>Task::close</font>() putq</font>"), -1);
- }
-
- <font color=red>// ..and we're free to release() our copy of it.</font>
-
- hangupBlock->release();
-
- <font color=red>// Now, all we have to do is wait() for the service threads to all</font>
- <font color=red>// exit. This is where using THR_DETACHED in the activate() method</font>
- <font color=red>// will come back to haunt you.</font>
-
- <font color=red>// The Stream waits until this returns before attempting to remove</font>
- <font color=red>// the next Module/Task group in the Stream. This allows for an</font>
- <font color=red>// orderly shutting down of the Stream.</font>
-
- return this->wait();
-
-
- } else {
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) %s <font color=#008888>Task::close</font>() -- flags != 1 -- once per servicing thread\n</font>", d_nameOfTask));
-
- <font color=red>// This is where we can clean up any mess left over by each service thread.</font>
- <font color=red>// In this Task, there is nothing to do.</font>
-
- }
-
- return 0;
-
-}
-
-int <font color=#008888>Task::svc</font>(void)
-{
-
- <font color=red>// This is the function that our service threads run once they are spawned.</font>
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) %s <font color=#008888>Task::svc</font>() -- once per servicing thread\n</font>", d_nameOfTask));
-
- <font color=red>// First, we wait until all of our peer service threads have arrived</font>
- <font color=red>// at this point also.</font>
-
- d_barrier.wait();
-
- ACE_Message_Block *messageBlock;
-
- while (1) {
-
- <font color=red>// And now we loop almost infinitely.</font>
-
- <font color=red>// getq() will block until a Message_Block is available to be read,</font>
- <font color=red>// or an error occurs.</font>
-
- if ( this->getq(messageBlock, 0) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green><font color=#008888>Task::svc</font>() getq</font>"), -1);
- }
-
- if (messageBlock->msg_type() == <font color=#008888>ACE_Message_Block::MB_HANGUP</font>) {
-
- <font color=red>// If the Message_Block is of type MB_HANGUP, then we're being asked</font>
- <font color=red>// to shut down nicely.</font>
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) %s <font color=#008888>Task::svc</font>() -- HANGUP block received\n</font>", d_nameOfTask));
-
- <font color=red>// So, we duplicate the Block, and put it back into the Message_Queue,</font>
- <font color=red>// in case there are some more peer service threads still running.</font>
-
- if (this->putq(messageBlock->duplicate()) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green><font color=#008888>Task::svc</font>() putq</font>"), -1);
- }
-
- <font color=red>// We release our copy of the Block.</font>
- messageBlock->release();
-
- <font color=red>// And we break out of the nearly infinitely loop, and</font>
- <font color=red>// head towards close() ourselves.</font>
- break;
- }
-
- <font color=red>// If we're here, then we've received a Message_Block that was</font>
- <font color=red>// not informing us to quit, so we're assuming it's a valid</font>
- <font color=red>// meaningful Block.</font>
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) %s <font color=#008888>Task::svc</font>() -- Normal block received\n</font>", d_nameOfTask));
-
- <font color=red>// We grab the read-pointer from the Block, and display it through a DEBUG statement.</font>
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) %s <font color=#008888>Task::svc</font>() -- %s\n</font>", d_nameOfTask, messageBlock->rd_ptr() ));
-
- <font color=red>// We pretend that this takes to time to process the Block.</font>
- <font color=red>// If you're on a fast machine, you might have to raise this</font>
- <font color=red>// value to actually witness different threads handling</font>
- <font color=red>// blocks for each Task.</font>
-
- <font color=#008888>ACE_OS::sleep</font> (ACE_Time_Value (0, 250));
-
- <font color=red>// Since we're part of a Stream, we duplicate the Block, and</font>
- <font color=red>// send it on to the next Task.</font>
-
- if (put_next(messageBlock->duplicate()) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green><font color=#008888>Task::svc</font>() put_next</font>"), -1);
- }
-
- <font color=red>// And then we release our copy of it.</font>
-
- messageBlock->release();
-
- }
-
- return 0;
-
-}
-
-
-const char * <font color=#008888>Task::nameOfTask</font>(void) const
-{
- return d_nameOfTask;
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/014/page04.html b/docs/tutorials/014/page04.html
deleted file mode 100644
index 40bc4e2ff96..00000000000
--- a/docs/tutorials/014/page04.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Bob McWhirter">
- <TITLE>ACE Tutorial 014</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 014</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>ACE_Stream Tutorial, Of Sorts</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-<P>
-As stated in the comments below, the default action of the task at the
- stream tail is to treat any received data as an error. In our
- implementation it will often happen that data gets through to
- the tail. How, then, do we handle this without creating an
- error condition? Simple: Create a custom Task for use as the
- stream tail that doesn't consider it an error to receive data.
-<P>
-Read on...
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>// EndTask.h</font>
-<font color=red>//</font>
-<font color=red>// Tutorial regarding a way to use ACE_Stream.</font>
-<font color=red>//</font>
-<font color=red>// written by bob mcwhirter (bob@netwrench.com)</font>
-<font color=red>//</font>
-<font color=red>//</font>
-
-<font color=blue>#ifndef</font> <font color=purple>ENDTASK_H</font>
-<font color=blue>#define</font> <font color=purple>ENDTASK_H</font>
-
-<font color=blue>#include</font> "<font color=green>Task.h</font>"
-
-<font color=red>// When you setup a Stream and push your modules on,</font>
-<font color=red>// there are two additional modules that go unseen</font>
-<font color=red>// by the user.</font>
-<font color=red>//</font>
-<font color=red>// The Stream pushes on a Stream_Head in front of</font>
-<font color=red>// your first module, and a Stream_Tail behind your</font>
-<font color=red>// last module.</font>
-<font color=red>//</font>
-<font color=red>// If your put() a message to the Stream Tail, it</font>
-<font color=red>// assumes you did so in error. This simple EndTask</font>
-<font color=red>// class allows you to push a message to it and just</font>
-<font color=red>// have it safely Go Away.</font>
-<font color=red>//</font>
-<font color=red>// All this Task does is release the Message_Block</font>
-<font color=red>// and return 0. It's a suitable black-hole.</font>
-
-class EndTask : public Task
-{
-public:
- typedef Task inherited;
-
- EndTask (const char *nameOfTask): inherited (nameOfTask, 0)
- {
- <font color=red>// when we get open()'d, it with 0 threads since there is actually</font>
- <font color=red>// no processing to do.</font>
-
- ACE_DEBUG ((LM_INFO,
- "<font color=green>(%P|%t) Line: %d, File: %s\n</font>",
- __LINE__,
- __FILE__));
- }
-
- virtual int open (void *)
- {
- ACE_DEBUG ((LM_INFO,
- "<font color=green>(%P|%t) Line: %d, File: %s\n</font>",
- __LINE__,
- __FILE__));
- return 0;
- }
-
- virtual int open (void)
- {
- ACE_DEBUG ((LM_INFO,
- "<font color=green>(%P|%t) Line: %d, File: %s\n</font>",
- __LINE__,
- __FILE__));
- return 0;
- }
-
- virtual ~EndTask(void)
- {
- }
-
- virtual int put (ACE_Message_Block *message,
- ACE_Time_Value *timeout)
- {
- ACE_DEBUG ((LM_INFO,
- "<font color=green>(%P|%t) Line: %d, File: %s\n</font>",
- __LINE__,
- __FILE__));
- ACE_UNUSED_ARG (timeout);
-
- <font color=red>// we don't have anything to do, so release() the message.</font>
- ACE_DEBUG ((LM_DEBUG,
- "<font color=green>(%P|%t) %s <font color=#008888>EndTask::put</font>() -- releasing Message_Block\n</font>",
- this->nameOfTask ()));
- message->release ();
- return 0;
- }
-
-};
-
-<font color=blue>#endif</font> <font color=red>/* ENDTASK_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/014/page05.html b/docs/tutorials/014/page05.html
deleted file mode 100644
index 3fdb16a0be7..00000000000
--- a/docs/tutorials/014/page05.html
+++ /dev/null
@@ -1,210 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Bob McWhirter">
- <TITLE>ACE Tutorial 014</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 014</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>ACE_Stream Tutorial, Of Sorts</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-<P>
-Now we come to main(). In the previous task-chain tutorial
- every thread pool had to have the same number of threads. This
- time around, we leverage the construction method of ACE_Stream
- and ACE_Module to customize the thread-pool size in each
- ACE_Task of the stream.
-<P>
-Remember EndTask from the previous page? We create one here and push
- it into the stream to take care of cleaning up the messages.
- Technically, we could have replaced the default Tail task
- created by the ACE framework but it seems to make more sense to
- just push our "tail" onto the stream like the other tasks. The
- caveat to this method is that you must be sure you don't push()
- any other Modules behind the EndTask!
-<P>
-Once the stream of modules containing tasks is all setup then we can
- put() some data into the stream for processing. The clever use
- of Task::close() makes shutting downt the stream easier than
- ever. No messing with hangup messages at the application level,
- just close() when you're done! What could be simpler?
-<P>
-<HR WIDTH="100%">
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=red>// stream.cxx</font>
-<font color=red>//</font>
-<font color=red>// Tutorial regarding a way to use ACE_Stream.</font>
-<font color=red>//</font>
-<font color=red>// written by bob mcwhirter (bob@netwrench.com)</font>
-<font color=red>//</font>
-<font color=red>//</font>
-
-<font color=blue>#include</font> "<font color=green>Task.h</font>"
-<font color=blue>#include</font> "<font color=green>EndTask.h</font>"
-<font color=red>// This is our specialized ACE_Task.</font>
-
-<font color=blue>#include</font> &lt;ace/Module.h>
-<font color=blue>#include</font> &lt;ace/Stream.h>
-<font color=blue>#include</font> &lt;ace/streams.h>
-<font color=red>// These are the neccessary ACE headers.</font>
-
-
-typedef ACE_Module&lt;ACE_MT_SYNCH> Module;
-typedef ACE_Stream&lt;ACE_MT_SYNCH> Stream;
-<font color=red>// Just to avoid a lot of typing, typedefs</font>
-<font color=red>// are generally a good idea.</font>
-
-int main(int argc, char *argv[])
-{
- int numberOfMessages = argc > 1 ? <font color=#008888>ACE_OS::atoi</font>(argv[1]) : 3;
- <font color=red>// unless otherwise specified, just send three messages</font>
- <font color=red>// down the stream.</font>
-
- Stream theStream;
- <font color=red>// the ACE_Stream itself.</font>
-
- <font color=red>// Now, we instantiate 4 different Tasks. These do not</font>
- <font color=red>// need to be all the same class, but they do need to</font>
- <font color=red>// all derrive from the same flavor of ACE_Task.</font>
- <font color=red>//</font>
- <font color=red>// Also, we instantiate a fifth end-cap Task to clean</font>
- <font color=red>// up Message_Blocks as they reach the end.</font>
-
- Task *taskOne;
- Task *taskTwo;
- Task *taskThree;
- Task *taskFour;
- Task *taskEnd;
-
- <font color=red>// Out Task's take two arguments: a name, and the number</font>
- <font color=red>// of threads to dedicate to the task.</font>
-
- taskOne = new Task("<font color=green>Task No. 1</font>", 1);
- taskTwo = new Task("<font color=green>Task No. 2</font>", 3);
- taskThree = new Task("<font color=green>Task No. 3</font>", 7);
- taskFour = new Task("<font color=green>Task No. 4</font>", 1);
-
- <font color=red>// Our EndTask only takes 1 argument, as it actually</font>
- <font color=red>// doesn't spawn any threads for processing.</font>
-
- taskEnd = new EndTask("<font color=green>End Task</font>");
-
- Module *moduleOne;
- Module *moduleTwo;
- Module *moduleThree;
- Module *moduleFour;
- Module *moduleEnd;
-
- <font color=red>// ACE_Stream accepts ACE_Modules, which are simply a pair of</font>
- <font color=red>// ACE_Tasks. One is dedicated for writing, while the other</font>
- <font color=red>// is dedicated to reading. Think of the writing side as</font>
- <font color=red>// downstream, and the reading side as upstream.</font>
- <font color=red>//</font>
- <font color=red>// We're only working with a unidirection Stream today,</font>
- <font color=red>// so we'll only actually install a Task into the write</font>
- <font color=red>// side of the module, effectively downstream.</font>
-
- moduleOne = new Module("<font color=green>Module No. 1</font>", taskOne);
- moduleTwo = new Module("<font color=green>Module No. 2</font>", taskTwo);
- moduleThree = new Module("<font color=green>Module No. 3</font>", taskThree);
- moduleFour = new Module("<font color=green>Module No. 4</font>", taskFour);
- moduleEnd = new Module("<font color=green>Module End</font>", taskEnd);
-
- <font color=red>// Now we push the Modules onto the Stream.</font>
- <font color=red>// Pushing adds the module to the head, or</font>
- <font color=red>// otherwise prepends it to whatever modules</font>
- <font color=red>// are already installed.</font>
-
- <font color=red>// So, you need to push() the modules on -backwards-</font>
- <font color=red>// from our viewpoint.</font>
-
- if (theStream.push(moduleEnd) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>push</font>"), -1);
- }
-
- if (theStream.push(moduleFour) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>push</font>"), -1);
- }
-
- <font color=red>// As we push a Module onto the Stream, it gets opened.</font>
- <font color=red>// When a Module open()s, it opens the Tasks that it contains.</font>
- <font color=red>//</font>
- <font color=red>// Since we cannot provide an argument to this embedded</font>
- <font color=red>// call to open(), we supplied specified the number of</font>
- <font color=red>// threads in the constructor of our Tasks.</font>
-
- if (theStream.push(moduleThree) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>push</font>"), -1);
- }
-
- if (theStream.push(moduleTwo) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>push</font>"), -1);
- }
-
- if (theStream.push(moduleOne) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>push</font>"), -1);
- }
-
- <font color=red>// Now that the Modules are open, the Tasks threads should</font>
- <font color=red>// be launching and entering their svc() loop, so we send</font>
- <font color=red>// some messages down the Stream.</font>
-
- int sent = 1;
-
- ACE_Message_Block *message;
-
- while (sent &lt;= numberOfMessages) {
-
- <font color=red>// First, create ourselves a Message_Block.</font>
- <font color=red>// see Tutorials 10-13 for more information</font>
- <font color=red>// about Message_Blocks and Message_Queues.</font>
-
- message = new ACE_Message_Block(128);
-
- <font color=red>// Now, we grab the write-pointer from the Block,</font>
- <font color=red>// and sprintf() our text into it.</font>
-
- <font color=#008888>ACE_OS::sprintf</font>(message->wr_ptr(), "<font color=green>Message No. %d</font>", sent);
-
- <font color=red>// All we have to do now is drop the Message_Block</font>
- <font color=red>// into the Stream.</font>
-
- <font color=red>// It is always a good idea to duplicate() a Message_Block</font>
- <font color=red>// when you put it into any Message_Queue, as then</font>
- <font color=red>// you can always be allowed to release() your copy</font>
- <font color=red>// without worry.</font>
-
- if (theStream.put(message->duplicate(), 0) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>put</font>"), -1);
- }
-
- message->release();
- ++sent;
- }
-
- <font color=red>// Now that we've sent our Message_Blocks, close down</font>
- <font color=red>// the Stream.</font>
- <font color=red>//</font>
- <font color=red>// The Stream will automagically delete the Modules and</font>
- <font color=red>// the contained Tasks. We don't have to do that.</font>
- <font color=red>//</font>
- <font color=red>// This call will block (due to the way we've written our</font>
- <font color=red>// Task class) until all Message_Blocks have cleared the</font>
- <font color=red>// entire Stream, and all associated threads have exited.</font>
-
- theStream.close();
-
- return 0;
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/014/stream.cpp b/docs/tutorials/014/stream.cpp
deleted file mode 100644
index 0e2b784b2f8..00000000000
--- a/docs/tutorials/014/stream.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-
-// $Id$
-
-// stream.cxx
-//
-// Tutorial regarding a way to use ACE_Stream.
-//
-// written by bob mcwhirter (bob@netwrench.com)
-//
-//
-
-#include "Task.h"
-#include "EndTask.h"
-// This is our specialized ACE_Task.
-
-#include <ace/Module.h>
-#include <ace/Stream.h>
-#include <ace/streams.h>
-// These are the neccessary ACE headers.
-
-
-typedef ACE_Module<ACE_MT_SYNCH> Module;
-typedef ACE_Stream<ACE_MT_SYNCH> Stream;
-// Just to avoid a lot of typing, typedefs
-// are generally a good idea.
-
-int main(int argc, char *argv[])
-{
- int numberOfMessages = argc > 1 ? ACE_OS::atoi(argv[1]) : 3;
- // unless otherwise specified, just send three messages
- // down the stream.
-
- Stream theStream;
- // the ACE_Stream itself.
-
- // Now, we instantiate 4 different Tasks. These do not
- // need to be all the same class, but they do need to
- // all derrive from the same flavor of ACE_Task.
- //
- // Also, we instantiate a fifth end-cap Task to clean
- // up Message_Blocks as they reach the end.
-
- Task *taskOne;
- Task *taskTwo;
- Task *taskThree;
- Task *taskFour;
- Task *taskEnd;
-
- // Out Task's take two arguments: a name, and the number
- // of threads to dedicate to the task.
-
- taskOne = new Task("Task No. 1", 1);
- taskTwo = new Task("Task No. 2", 3);
- taskThree = new Task("Task No. 3", 7);
- taskFour = new Task("Task No. 4", 1);
-
- // Our EndTask only takes 1 argument, as it actually
- // doesn't spawn any threads for processing.
-
- taskEnd = new EndTask("End Task");
-
- Module *moduleOne;
- Module *moduleTwo;
- Module *moduleThree;
- Module *moduleFour;
- Module *moduleEnd;
-
- // ACE_Stream accepts ACE_Modules, which are simply a pair of
- // ACE_Tasks. One is dedicated for writing, while the other
- // is dedicated to reading. Think of the writing side as
- // downstream, and the reading side as upstream.
- //
- // We're only working with a unidirection Stream today,
- // so we'll only actually install a Task into the write
- // side of the module, effectively downstream.
-
- moduleOne = new Module("Module No. 1", taskOne);
- moduleTwo = new Module("Module No. 2", taskTwo);
- moduleThree = new Module("Module No. 3", taskThree);
- moduleFour = new Module("Module No. 4", taskFour);
- moduleEnd = new Module("Module End", taskEnd);
-
- // Now we push the Modules onto the Stream.
- // Pushing adds the module to the head, or
- // otherwise prepends it to whatever modules
- // are already installed.
-
- // So, you need to push() the modules on -backwards-
- // from our viewpoint.
-
- if (theStream.push(moduleEnd) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "push"), -1);
- }
-
- if (theStream.push(moduleFour) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "push"), -1);
- }
-
- // As we push a Module onto the Stream, it gets opened.
- // When a Module open()s, it opens the Tasks that it contains.
- //
- // Since we cannot provide an argument to this embedded
- // call to open(), we supplied specified the number of
- // threads in the constructor of our Tasks.
-
- if (theStream.push(moduleThree) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "push"), -1);
- }
-
- if (theStream.push(moduleTwo) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "push"), -1);
- }
-
- if (theStream.push(moduleOne) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "push"), -1);
- }
-
- // Now that the Modules are open, the Tasks threads should
- // be launching and entering their svc() loop, so we send
- // some messages down the Stream.
-
- int sent = 1;
-
- ACE_Message_Block *message;
-
- while (sent <= numberOfMessages) {
-
- // First, create ourselves a Message_Block.
- // see Tutorials 10-13 for more information
- // about Message_Blocks and Message_Queues.
-
- message = new ACE_Message_Block(128);
-
- // Now, we grab the write-pointer from the Block,
- // and sprintf() our text into it.
-
- ACE_OS::sprintf(message->wr_ptr(), "Message No. %d", sent);
-
- // All we have to do now is drop the Message_Block
- // into the Stream.
-
- // It is always a good idea to duplicate() a Message_Block
- // when you put it into any Message_Queue, as then
- // you can always be allowed to release() your copy
- // without worry.
-
- if (theStream.put(message->duplicate(), 0) == -1) {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "put"), -1);
- }
-
- message->release();
- ++sent;
- }
-
- // Now that we've sent our Message_Blocks, close down
- // the Stream.
- //
- // The Stream will automagically delete the Modules and
- // the contained Tasks. We don't have to do that.
- //
- // This call will block (due to the way we've written our
- // Task class) until all Message_Blocks have cleared the
- // entire Stream, and all associated threads have exited.
-
- theStream.close();
-
- return 0;
-}
diff --git a/docs/tutorials/015/015-client.dsp b/docs/tutorials/015/015-client.dsp
deleted file mode 100644
index 5152df92235..00000000000
--- a/docs/tutorials/015/015-client.dsp
+++ /dev/null
@@ -1,138 +0,0 @@
-# Microsoft Developer Studio Project File - Name="015 client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=015 client - 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 "015-client.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 "015-client.mak" CFG="015 client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "015 client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "015 client - 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)" == "015 client - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "015 client - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"../client.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "015 client - Win32 Release"
-# Name "015 client - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=client.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Client_i.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Compressor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Crypt.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Protocol_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Protocol_Task.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Recv.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Xmit.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=Client_i.h
-# End Source File
-# Begin Source File
-
-SOURCE=Protocol_Stream.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/015/015-server.dsp b/docs/tutorials/015/015-server.dsp
deleted file mode 100644
index d9f45886fe9..00000000000
--- a/docs/tutorials/015/015-server.dsp
+++ /dev/null
@@ -1,166 +0,0 @@
-# Microsoft Developer Studio Project File - Name="015 server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=015 server - 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 "015-server.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 "015-server.mak" CFG="015 server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "015 server - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "015 server - 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)" == "015 server - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "015 server - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"../server.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "015 server - Win32 Release"
-# Name "015 server - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=Compressor.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Crypt.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Protocol_Stream.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Protocol_Task.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Recv.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Server_i.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=Xmit.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=Compressor.h
-# End Source File
-# Begin Source File
-
-SOURCE=Crypt.h
-# End Source File
-# Begin Source File
-
-SOURCE=Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=Protocol_Stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=Protocol_Task.h
-# End Source File
-# Begin Source File
-
-SOURCE=Recv.h
-# End Source File
-# Begin Source File
-
-SOURCE=Server_i.h
-# End Source File
-# Begin Source File
-
-SOURCE=Xmit.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/015/Client_i.cpp b/docs/tutorials/015/Client_i.cpp
deleted file mode 100644
index 6415fed1966..00000000000
--- a/docs/tutorials/015/Client_i.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-
-// $Id$
-
-#include "Client_i.h"
-#include "ace/Message_Block.h"
-#include "ace/INET_Addr.h"
-#include "ace/SOCK_Connector.h"
-
-// Simple constructor just remembers the endpoint information for use by open.
-Client::Client( u_short _port, const char * _server)
- : port_(_port), server_(_server)
-{
- ;
-}
-
-/* Do nothing. This should probably call close() if we can make sure
- that it's OK to close() multiple times.
-*/
-Client::~Client(void)
-{
- ;
-}
-
-/* Open the connection to the server. This is traditional ACE. We
- simply construct an endpoint and use a connector to establish the
- link.
-*/
-int Client::open( void )
-{
- ACE_INET_Addr addr(port_,server_);
- ACE_SOCK_Connector con;
-
- if( con.connect(peer(),addr) == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "ACE_SOCK_Connector::connect()"), -1);
- }
-
- // Something new here... We have to use the protocol stream
- // to ensure that our data is in the correct format when
- // received by the server. Thus, we open the stream and
- // transfer ownership of the peer.
- return stream().open( peer() );
-}
-
-// The remainder of the functions just delegate to the stream.
-
-int Client::close( void )
-{
- return stream().close();
-}
-
-int Client::put( ACE_Message_Block * _message )
-{
- return stream().put(_message,0);
-}
-
-int Client::get( ACE_Message_Block * & _response )
-{
- return stream().get(_response);
-}
diff --git a/docs/tutorials/015/Client_i.h b/docs/tutorials/015/Client_i.h
deleted file mode 100644
index 32eaac8dd48..00000000000
--- a/docs/tutorials/015/Client_i.h
+++ /dev/null
@@ -1,73 +0,0 @@
-// $Id$
-
-#ifndef CLIENT_H
-#define CLIENT_H
-
-#include "ace/SOCK_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "Protocol_Stream.h"
-
-class ACE_Message_Block;
-
-/* Hide the details of connection and protocol-conformance from the
- application-level logic.
-*/
-class Client
-{
-public:
- // Provide the server information when constructing the
- // object. This could (and probably should) be moved to the
- // open() method.
- Client (u_short port,
- const char *server);
-
- // Cleanup...
- ~Client (void);
-
- // Open the connection to the server.
- int open (void);
-
- // Close the connection to the server. Be sure to do this
- // before you let the Client go out of scope.
- int close (void);
-
- // Put a message to the server. The Client assumes ownership of
- // <message> at that point and will release() it when done. Do not
- // use <message> after passing it to put().
- int put (ACE_Message_Block *message);
-
- // Get a response from the server. The caller becomes the owner of
- // <response> after this call and is responsible for invoking
- // release() when done.
- int get (ACE_Message_Block *&response);
-
-private:
- // Protocol_Stream hides the protocol conformance details from us.
- Protocol_Stream stream_;
-
- // We create a connection on the peer_ and then pass ownership of it
- // to the protocol stream.
- ACE_SOCK_Stream peer_;
-
- // Endpoing information saved by the constructor for use by open().
- u_short port_;
- const char *server_;
-
- // Accessors for the complex member variables.
-
- Protocol_Stream &stream (void)
- {
- return this->stream_;
- }
-
- ACE_SOCK_Stream &peer (void)
- {
- return this->peer_;
- }
-};
-
-#endif /* CLIENT_H */
diff --git a/docs/tutorials/015/Compressor.cpp b/docs/tutorials/015/Compressor.cpp
deleted file mode 100644
index bbe76eb1a69..00000000000
--- a/docs/tutorials/015/Compressor.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// $Id$
-
-#include "Compressor.h"
-#include "ace/SOCK_Stream.h"
-
-Compressor::Compressor( void )
- : Protocol_Task()
-{
- ;
-}
-
-Compressor::~Compressor(void)
-{
- ;
-}
-
-/* This is where you insert your compression code. Most compressors
- want to work on a block of data instead of a byte-stream.
- Fortunately the message block has a block that can be compressed.
- Take a look at libz for a quick way to add compression to your
- apps
- */
-int Compressor::send(ACE_Message_Block *message, ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(message);
- ACE_UNUSED_ARG(timeout);
-
- ACE_DEBUG ((LM_INFO, "(%P|%t) Compressor::send() compressing (%s)\n", message->rd_ptr() ));
-
- // Create a block to hold the compressed data. I belive libz
- // recommends a buffer about 10-20% larger than the source.
- // Other libraries/algorithms may have their own quirks.
- ACE_Message_Block * compressed = new ACE_Message_Block(
- message->size() +16 );
-
- // Perform a bogus compression algorithm. 'CD' just tells me
- // that this is compressed data and when we "decompress" we'll
- // look for this signature to validate the data received.
- ACE_OS::sprintf( compressed->wr_ptr(), "CD:%s", message->rd_ptr() );
- compressed->wr_ptr( strlen(compressed->wr_ptr())+1 );
-
- // Send the compressed data down the stream to the next module
- this->put_next( compressed );
-
- // We're done here.
- message->release();
-
- return( 0 );
-}
-
-/* And here's the decompression side. We've written Xmit/Recv so that
- we're guaranteed to get an entire block of compressed data. If
- we'd used recv() in the Recv object then we might have gotten a
- partial block and that may not decompress very nicely.
- */
-int Compressor::recv(ACE_Message_Block *message, ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(message);
- ACE_UNUSED_ARG(timeout);
-
- ACE_DEBUG ((LM_INFO, "(%P|%t) Compress::recv() decompressing (%s)\n", message->rd_ptr() ));
-
- // Room for the decompressed data. In the real world you
- // would probably want to send the original (uncompressed)
- // data size in the message. You can predict the maximum
- // possible decompression size but it's cheap and easy just to
- // send that along. Look again at how I do exacly that
- // between Xmit and Recv.
- ACE_Message_Block * decompressed = new ACE_Message_Block(
- message->size() + 16 );
-
- // Check for our signature. Even when you use a real
- // compression algorithm you may want to include your own
- // signature so that you can verify the block. It pays to be
- // paranoid!
- if( ACE_OS::strncmp( message->rd_ptr(), "CD:", 3 ) )
- {
- ACE_DEBUG ((LM_INFO, "(%P|%t) Improperly encompressed data.\n" ));
- message->release();
- return(-1);
- }
-
- // Skip past the signature before going any further.
- message->rd_ptr( 3 );
-
- // Perform a bogus decompression algorithm. This is where you
- // would feed to libz or your favorite decompressor. (It's
- // costly but you could invoke popen() on gzip!)
- ACE_OS::sprintf( decompressed->wr_ptr(), "%s", message->rd_ptr() );
- decompressed->wr_ptr( strlen(decompressed->wr_ptr())+1 );
-
- // Recv the decompressed data down the stream to the next module
- this->put_next( decompressed );
-
- // We're done here.
- message->release();
-
- return( 0 );
-}
-
diff --git a/docs/tutorials/015/Compressor.h b/docs/tutorials/015/Compressor.h
deleted file mode 100644
index cb4c7248cce..00000000000
--- a/docs/tutorials/015/Compressor.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// $Id$
-
-#ifndef COMPRESSOR_H
-#define COMPRESSOR_h
-
-#include "Protocol_Task.h"
-
-/* A reallly dumb compression object. (It actually adds 3 bytes to
- every message block.)
-*/
-class Compressor : public Protocol_Task
-{
-public:
-
- typedef Protocol_Task inherited;
-
- Compressor (void);
-
- ~Compressor (void);
-
-protected:
-
- // This is called when the compressor is on the downstream side.
- // We'll take the message, compress it and move it along to the next
- // module.
- int send (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
- // This one is called on the upstream side. No surprise: we
- // decompress the data and send it on up the stream.
- int recv (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-};
-
-#endif /* COMPRESSOR_H */
diff --git a/docs/tutorials/015/Crypt.cpp b/docs/tutorials/015/Crypt.cpp
deleted file mode 100644
index 2eb1d60d128..00000000000
--- a/docs/tutorials/015/Crypt.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-
-// $Id$
-
-#include "Crypt.h"
-#include "ace/SOCK_Stream.h"
-
-/* The expected constructor...
- */
-Crypt::Crypt( void )
- : Protocol_Task()
-{
-}
-
-Crypt::~Crypt(void)
-{
-}
-
-/* To send the data we'll apply a signature and encryption.
- */
-int Crypt::send(ACE_Message_Block *message, ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(timeout);
-
- ACE_DEBUG ((LM_INFO, "(%P|%t) Crypt::send() encrypting (%s)\n", message->rd_ptr() ));
-
- // I suspect that some encryptors might change the data size.
- // It probably isn't safe to create a same-size destination buffer.
- ACE_Message_Block * encrypted = new ACE_Message_Block(
- message->size() +16 );
-
- // Perform a bogus encryption algorithm and add our safety
- // signature. Adding the original data size is also probably
- // a good idea that I haven't encorporated here.
- ACE_OS::sprintf( encrypted->wr_ptr(), "ED:%s", message->rd_ptr() );
- encrypted->wr_ptr( strlen(encrypted->wr_ptr())+1 );
-
- // Send the encrypted data down the stream to the next module
- this->put_next( encrypted );
-
- // We're done here.
- message->release();
-
- return( 0 );
-}
-
-/* The upstream movement requires that we decrypt what the peer has
- given us.
-*/
-int Crypt::recv(ACE_Message_Block *message, ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(timeout);
-
- ACE_DEBUG ((LM_INFO, "(%P|%t) Crypt::recv() decrypting (%s)\n", message->rd_ptr() ));
-
- // Create a destination for the decrypted data. The same
- // block size caveat exists of course.
- ACE_Message_Block * decrypted = new ACE_Message_Block(
- message->size() +16 );
-
- // Check the signature as expected.
- if( ACE_OS::strncmp( message->rd_ptr(), "ED:", 3 ) )
- {
- ACE_DEBUG ((LM_INFO, "(%P|%t) Improperly encrypted data.\n" ));
- message->release();
- return(-1);
- }
-
- // Don't forget to skip past the signature before decrypting
- // or things will be quite exciting!
- message->rd_ptr( 3 );
-
- // Perform a bogus decryption algorithm
- ACE_OS::sprintf( decrypted->wr_ptr(), "%s", message->rd_ptr() );
- decrypted->wr_ptr( strlen(decrypted->wr_ptr())+1 );
-
- // Send the decrypted data down the stream to the next module
- this->put_next( decrypted );
-
- // We're done here.
- message->release();
-
- return( 0 );
-}
diff --git a/docs/tutorials/015/Crypt.h b/docs/tutorials/015/Crypt.h
deleted file mode 100644
index 6de997fa4a9..00000000000
--- a/docs/tutorials/015/Crypt.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// $Id$
-
-#ifndef CRYPT_H
-#define CRYPT_h
-
-#include "Protocol_Task.h"
-
-/* An interface (adaptor) between your favorite encryption method and
- an ACE_Stream.
-*/
-class Crypt : public Protocol_Task
-{
-public:
-
- typedef Protocol_Task inherited;
-
- Crypt (void);
-
- ~Crypt (void);
-
-protected:
-
- // Moving downstream will encrypt the data
- int send (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
- // And moving upstream will decrypt it.
- int recv (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-};
-
-#endif /* CRYPT_H */
diff --git a/docs/tutorials/015/Handler.cpp b/docs/tutorials/015/Handler.cpp
deleted file mode 100644
index e940a8a8ce7..00000000000
--- a/docs/tutorials/015/Handler.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-
-// $Id$
-
-#include "Handler.h"
-#include "Protocol_Task.h"
-
-/* The Protocol_Stream gives us the option to insert a Protocol_Task
- to process data received by the stream. We'll get into the details
- more when we talk about the stream in detail. For now it's enough
- to know that Handler_Task::recv() will be invoked by the stream
- after data from the client has been received and processed (eg --
- decrypted, uncompressed, and whatever else the protocol requires.)
-*/
-class Handler_Task : public Protocol_Task
-{
-public:
-
- // Typical...
- typedef Protocol_Task inherited;
-
- // Simple...
- Handler_Task(void);
- ~Handler_Task(void);
-
-protected:
-
- // recv() is invoked after received data has been fully
- // processed by the protocol rules. Data processing typically
- // done in handle_input() can then be done here.
- int recv(ACE_Message_Block * message,
- ACE_Time_Value *timeout = 0);
-};
-
-Handler::Handler(void)
-{
- ;
-}
-
-Handler::~Handler(void)
-{
- ;
-}
-
-/* The Acceptor will open() us once the peer() connection is
- established. There are a couple of things we have to do here
- before we're ready to receive data from the client.
-*/
-int Handler::open (void *)
-{
- ACE_INET_Addr addr;
-
- // Make sure that we can get the peer's address. If we can't
- // then there may be a network error or something else that
- // will prevent communicating with the client. This is
- // something you'll want to do in every event handler you create.
- if (this->peer ().get_remote_addr (addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) Cannot get remote addr\n"), -1);
-
- // Announce the client
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) connected with %s\n", addr.get_host_name() ));
-
- // Here's the first new twist to the old event handler.
- // Before we can use the Protocol_Stream to communicate with
- // the peer, we must open() it. We provide the stream with
- // the peer() so that it will have a valid socket on which to
- // read client requests and send our responses. We also
- // provide a Handler_Task instance that will ultimately be
- // responsible for processing any client data we receive.
- int rval = stream().open( this->peer(), new Handler_Task() );
-
- // Of course, we have to account for the chance that the
- // stream's open() may fail.
- if( rval == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) Cannot open the protocol stream.\n"), -1);
- }
-
- // Now that we know the client is valid and that the stream is
- // ready for business we can register with the gloabl reactor
- // instance. Here again is an opportunity for improvement if
- // we expect to have mulitple Server object instances.
- if (ACE_Reactor::instance()->register_handler (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) Cannot register with reactor\n"), -1);
-
- return rval;
-}
-
-/* This is a fairly typical destroy() method that can be shared by
- both close() and handle_close().
-*/
-void Handler::destroy (void)
-{
- ACE_Reactor::instance()->remove_handler(this,ACE_Event_Handler::READ_MASK|ACE_Event_Handler::DONT_CALL);
-
- this->peer ().close ();
-
- delete this;
-}
-
-/* In this simple application we just forward the close() and
- handle_close() requests right on to the destroy() method.
-*/
-
-int Handler::close (u_long)
-{
- this->destroy ();
- return 0;
-}
-
-int Handler::handle_close(ACE_HANDLE, ACE_Reactor_Mask)
-{
- this->destroy();
- return 0;
-}
-
-/* Unlike a "traditional" handle_input() ours is very simple. Because
- of the use of the protocol stream, we delegate the read function to
- the stream's get() and rely on our Handler_Task to do the real work.
-*/
-int Handler::handle_input (ACE_HANDLE)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) Activity from client\n" ));
-
- // This will cause a blocking read from the peer(). The data
- // will then be pushed through the protocol stream.
- if( stream().get( ) == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) Cannot get data from protocol stream\n"), -1);
- }
-
- return 0;
-}
-
-/* A Protocol_Task is derived from ACE_Task and has the option of
- running in one or more threads. I've chosen here to construct the
- baseclass with no threads but it should work just fine with one or
- more if you need. Unless you're sharing the Handler_Task with
- several peers, however, you're probably just wasting a thread to
- activate it. On the other hand, if your reactor is running in a
- single thread (as in this example) then you can easily implement
- thread-per-connection concurrency by giving the baseclass one thread.
-*/
-Handler_Task::Handler_Task(void)
- : inherited()
-{
- ;
-}
-
-Handler_Task::~Handler_Task(void)
-{
- ;
-}
-
-/* When installed into the protocol stream, the Handler_Task's recv()
- method will be called when data is ready for processing.
- */
-int Handler_Task::recv(ACE_Message_Block * message,
- ACE_Time_Value *timeout )
-{
- // Announce the request we got from the client
- ACE_DEBUG ((LM_INFO, "(%P|%t) Handler_Task::recv() got (%s)\n", message->rd_ptr() ));
-
- // Create a response message to send to the client
- ACE_Message_Block * response = new ACE_Message_Block( 128 );
-
- // Nothing very original about this I'm afraid...
- ACE_OS::sprintf( response->wr_ptr(), "You Said: (%s)", message->rd_ptr() );
- response->wr_ptr( strlen(response->wr_ptr())+1 );
-
- // Release the original message block now that we're through
- // "processing" it.
- message->release();
-
- // Turn the message around and send it back down the Stream.
- // In other words, we invoke the put() method on the
- // Protocol_Stream without having to have a direct reference
- // to the stream object.
- return this->reply( response, timeout );
-}
diff --git a/docs/tutorials/015/Handler.h b/docs/tutorials/015/Handler.h
deleted file mode 100644
index 1a0f1a69e46..00000000000
--- a/docs/tutorials/015/Handler.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// $Id$
-
-#ifndef HANDLER_H
-#define HANDLER_H
-
-#include "ace/Svc_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Stream.h"
-#include "Protocol_Stream.h"
-
-/* Just your basic event handler. We use ACE_Svc_Handler<> as a
- baseclass so that it can maintain the peer() and other details for
- us. We're not going to activate() this object, so we can get away
- with the NULL synch choice. */
-class Handler : public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- Handler (void);
- ~Handler (void);
-
- // Called by the acceptor when we're created in response to a client
- // connection.
- int open (void *);
-
- // Called when it's time for us to be deleted. We take care of
- // removing ourselves from the reactor and shutting down the peer()
- // connectin.
- void destroy (void);
-
- // Called when it's time for us to go away. There are subtle
- // differences between destroy() and close() so don't try to use
- // either for all cases.
- int close (u_long);
-
-protected:
- // Respond to peer() activity.
- int handle_input (ACE_HANDLE);
-
- // This will be called when handle_input() returns a failure code.
- // That's our signal that it's time to begin the shutdown process.
- int handle_close (ACE_HANDLE,
- ACE_Reactor_Mask mask);
-private:
-
- // Like the Client, we have to abide by the protocol requirements.
- // We use a local Protocol_Stream object to take care of those
- // details. For us, I/O then just becomes a matter of interacting
- // with the stream.
- Protocol_Stream stream_;
-
- Protocol_Stream &stream (void)
- {
- return this->stream_;
- }
-};
-
-#endif /* HANDLER_H */
diff --git a/docs/tutorials/015/Makefile b/docs/tutorials/015/Makefile
deleted file mode 100644
index 5975764d91d..00000000000
--- a/docs/tutorials/015/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = client server
-
-all clean realclean : #
- $(MAKE) -f Makefile.client $@
- $(MAKE) -f Makefile.server $@
-
-client server : #
- $(MAKE) -f Makefile.$@ all
-
-Depend : #
- $(MAKE) -f Makefile.client $@
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre
- chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend*
diff --git a/docs/tutorials/015/Makefile.client b/docs/tutorials/015/Makefile.client
deleted file mode 100644
index 20680aea15b..00000000000
--- a/docs/tutorials/015/Makefile.client
+++ /dev/null
@@ -1,79 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = client
-
-FILES += Protocol_Stream
-FILES += Protocol_Task
-FILES += Xmit
-FILES += Recv
-FILES += Compressor
-FILES += Crypt
-FILES += Client_i
-
-BUILD = $(VBIN)
-
-SRC = $(addsuffix .cpp,$(BIN))
-SRC += $(addsuffix .cpp,$(FILES))
-
-HDR = *.h
-
-MAKEFILE = Makefile.client
-DEPEND = .depend.client
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-HTML : #
- perl ../combine *.html
-
-rename : #
- for i in *.cxx ; do \
- n=`expr "$$i" : "\(.*\).cxx"` ;\
- mv $$i $$n.cpp ;\
- done
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../fix.Makefile -f $(MAKEFILE) -o $(DEPEND)
-
-$(DEPEND) :
- touch $(DEPEND)
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include $(DEPEND)
-include .depend.client
diff --git a/docs/tutorials/015/Makefile.server b/docs/tutorials/015/Makefile.server
deleted file mode 100644
index 109cecc8e90..00000000000
--- a/docs/tutorials/015/Makefile.server
+++ /dev/null
@@ -1,81 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = server
-
-FILES += Protocol_Stream
-FILES += Protocol_Task
-FILES += Xmit
-FILES += Recv
-FILES += Compressor
-FILES += Crypt
-
-FILES += Handler
-FILES += Server_i
-
-BUILD = $(VBIN)
-
-SRC = $(addsuffix .cpp,$(BIN))
-SRC += $(addsuffix .cpp,$(FILES))
-
-HDR = *.h
-
-MAKEFILE = Makefile.server
-DEPEND = .depend.server
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-HTML : #
- perl ../combine *.html
-
-rename : #
- for i in *.cxx ; do \
- n=`expr "$$i" : "\(.*\).cxx"` ;\
- mv $$i $$n.cpp ;\
- done
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../fix.Makefile -f $(MAKEFILE) -o $(DEPEND)
-
-$(DEPEND) :
- touch $(DEPEND)
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include $(DEPEND)
-include .depend.server
diff --git a/docs/tutorials/015/Protocol_Stream.cpp b/docs/tutorials/015/Protocol_Stream.cpp
deleted file mode 100644
index e1c210ec119..00000000000
--- a/docs/tutorials/015/Protocol_Stream.cpp
+++ /dev/null
@@ -1,195 +0,0 @@
-// $Id$
-
-#include "Protocol_Stream.h"
-#include "Protocol_Task.h"
-
-#include "Xmit.h"
-#include "Recv.h"
-
-#include "Compressor.h"
-#include "Crypt.h"
-
-#include "ace/Stream_Modules.h"
-
-/* You can choose at compile time to include/exclude the protocol
- pieces.
-*/
-#define ENABLE_COMPRESSION
-#define ENABLE_ENCRYPTION
-
-// The usual typedefs to make things easier to type.
-typedef ACE_Module<ACE_MT_SYNCH> Module;
-typedef ACE_Thru_Task<ACE_MT_SYNCH> Thru_Task;
-
-/* An ACE_Stream is a collection of ACE_Modules. You can think of it
- as a doubly-linked list if you like. Each Module contains two
- ACE_Task derivatives. One of these tasks is used when sending data
- "upstream", the other is used for "downstream" operation. In some
- cases, you'll only need to move data in one direction. To provide
- a placeholder for the other direction, ACE_Thru_Task can be used.
- ACE_Thru_Task responds to the put() by simply invoking put_next()
- to send the data to the next module.
- */
-
-/* Do-nothing constructor and destructor
- */
-
-Protocol_Stream::Protocol_Stream (void)
-{
-}
-
-Protocol_Stream::~Protocol_Stream (void)
-{
-}
-
-/* Even opening the stream is rather simple. The important thing to
- remember is that the modules you push onto the stream first will be
- at the tail (eg -- most downstream) end of things when you're
- done.
- */
-int
-Protocol_Stream::open (ACE_SOCK_Stream &peer,
- Protocol_Task *reader)
-{
- // Initialize our peer() to read/write the socket we're given
- peer_.set_handle (peer.get_handle ());
-
- // Construct (and remember) the Recv object so that we can read from
- // the peer().
- ACE_NEW_RETURN (recv_,
- Recv ( this->peer ()),
- -1);
-
- // Add the transmit and receive tasks to the head of the stream. As
- // we add more modules these will get pushed downstream and end up
- // nearest the tail by the time we're done.
- if (stream ().push (new Module ("Xmit/Recv",
- new Xmit ( this->peer ()),
- recv_)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "stream().push(xmit/recv)"),
- -1);
-
- // Add any other protocol tasks to the stream. Each one is added at
- // the head. The net result is that Xmit/Recv are at the tail.
- if (this->open () == -1)
- return -1;
-
- // If a reader task was provided then push that in as the upstream
- // side of the next-to-head module. Any data read from the peer()
- // will be sent through here last. Server applications will
- // typically use this task to do the actual processing of data.
- // Note the use of Thru_Task. Since a module must always have a
- // pair of tasks we use this on the writer side as a no-op.
- if (reader)
- {
- if (stream ().push (new Module ("Reader",
- new Thru_Task (),
- reader)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "stream().push(reader)"),
- -1);
- }
-
- return 0;
-}
-
-/* Add the necessary protocol objects to the stream. The way we're
- pushing things on we will compress the data before encrypting it.
-*/
-int
-Protocol_Stream::open (void)
-{
-#if defined (ENABLE_ENCRYPTION)
- if (stream ().push (new Module ("crypt",
- new Crypt (),
- new Crypt ())) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "stream().push(crypt)"),
- -1);
-#endif /* ENABLE_ENCRYPTION */
-
-#if defined (ENABLE_COMPRESSION)
- if (stream ().push (new Module ("compress",
- new Compressor (),
- new Compressor ())) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "stream().push(comprssor)"),
- -1);
-#endif /* ENABLE_COMPRESSION */
- return 0;
-}
-
-// Closing the Protocol_Stream is as simple as closing the ACE_Stream.
-int
-Protocol_Stream::close (void)
-{
- return stream ().close ();
-}
-
-// Simply pass the data directly to the ACE_Stream.
-int
-Protocol_Stream::put (ACE_Message_Block *&message,
- ACE_Time_Value *timeout)
-{
- return stream ().put (message,
- timeout);
-}
-
-/* Tell the Recv module to read some data from the peer and pass it
- upstream. Servers will typically use this method in a
- handle_input() method to tell the stream to get a client's request. */
-
-int
-Protocol_Stream::get(void)
-{
- // If there is no Recv module, we're in big trouble!
- if (recv_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) No Recv object!\n"),
- -1);
-
- // This tells the Recv module to go to it's peer() and read some
- // data. Once read, that data will be pushed upstream. If there is
- // a reader object then it will have a chance to process the data.
- // If not, the received data will be available in the message queue
- // of the stream head's reader object (eg --
- // stream().head()->reader()->msg_queue()) and can be read with our
- // other get() method below.
- if (recv_->get () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) Cannot queue read request\n"),
- -1);
-
- // For flexibility I've added an error() method to tell us if
- // something bad has happened to the Recv object.
- if (recv_->error ())
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) Recv object error!\n"),
- -1);
-
- return 0;
-}
-
-/* Take a message block off of the stream head reader's message queue.
- If the queue is empty, use get() to read from the peer. This is
- most often used by client applications. Servers will generaly
- insert a reader that will prevent the data from getting all the way
- upstream to the head. */
-int
-Protocol_Stream::get (ACE_Message_Block *&response,
- ACE_Time_Value *timeout )
-{
- if (stream ().head ()->reader ()->msg_queue ()->is_empty ()
- && this->get () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) Cannot get data into the stream.\n"),
- -1);
-
- return stream ().head ()->reader ()->getq (response,
- timeout);
-}
diff --git a/docs/tutorials/015/Protocol_Stream.h b/docs/tutorials/015/Protocol_Stream.h
deleted file mode 100644
index 7ff96f468fc..00000000000
--- a/docs/tutorials/015/Protocol_Stream.h
+++ /dev/null
@@ -1,86 +0,0 @@
-// $Id$
-
-#ifndef PROTOCOL_STREAM_H
-#define PROTOCOL_STREAM_H
-
-#include "ace/SOCK_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Stream.h"
-
-// Shorthand for the stream.
-typedef ACE_Stream<ACE_MT_SYNCH> Stream;
-
-// Forward references to cut down on the number of #includes
-class ACE_Message_Block;
-class Recv;
-class Protocol_Task;
-
-/* The Protocol_Stream provides a tidy interface to an ACE_Stream
- setup to process a data block through a series of protocol stages.
-*/
-class Protocol_Stream
-{
-public:
- Protocol_Stream (void);
- ~Protocol_Stream (void);
-
- // Provide the stream with an ACE_SOCK_Stream on which it can
- // communicate. If _reader is non-null, it will be added as the
- // reader task just below the stream head so that it can process
- // data read from the peer.
- int open (ACE_SOCK_Stream &peer,
- Protocol_Task *reader = 0);
-
- // Close the stream. All of the tasks & modules will also be
- // closed.
- int close (void);
-
- // putting data onto the stream will pass it through all protocol
- // levels and send it to the peer.
- int put (ACE_Message_Block *&message,
- ACE_Time_Value *timeout = 0);
-
- // get will cause the Recv task (at the tail of the stream) to read
- // some data from the peer and pass it upstream. The message block
- // is then taken from the stream reader task's message queue.
- int get (ACE_Message_Block *&response,
- ACE_Time_Value *timeout = 0);
-
- // Tell the Recv task to read some data and send it upstream. The
- // data will pass through the protocol tasks and be queued into the
- // stream head reader task's message queue. If you've installed a
- // _reader in open() then that task's recv() method will see the
- // message and may consume it instead of passing it to the stream
- // head for queueing.
- int get (void);
-
- ACE_SOCK_Stream &peer (void)
- {
- return this->peer_;
- }
-
-private:
- // Our peer connection
- ACE_SOCK_Stream peer_;
-
- // The stream managing the various protocol tasks
- Stream stream_;
-
- // A task which is capable of receiving data on a socket.
- // Note that this is only useful by client-side applications.
- Recv *recv_;
-
- Stream &stream (void)
- {
- return this->stream_;
- }
-
- // Install the protocol tasks into the stream.
- int open (void);
-};
-
-#endif /* PROTOCOL_STREAM_H */
diff --git a/docs/tutorials/015/Protocol_Task.cpp b/docs/tutorials/015/Protocol_Task.cpp
deleted file mode 100644
index 6060fb1ddfa..00000000000
--- a/docs/tutorials/015/Protocol_Task.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-
-// $Id$
-
-#include "Protocol_Task.h"
-#include "ace/ACE.h"
-
-// Construct the object and remember the thread count.
-Protocol_Task::Protocol_Task(void)
-{
- ;
-}
-
-Protocol_Task::~Protocol_Task(void)
-{
- ;
-}
-
-int Protocol_Task::open(void *arg)
-{
- ACE_UNUSED_ARG(arg);
-
- return(0);
-}
-
-int Protocol_Task::close(u_long flags)
-{
- ACE_UNUSED_ARG(flags);
- return 0;
-}
-
-/* When a message is put() onto the task, it's time to process() some data.
-*/
-int Protocol_Task::put(ACE_Message_Block *message,ACE_Time_Value *timeout)
-{
- return this->process(message,timeout);
-}
-
-/* Return an error since we don't want the task to ever be activated.
- */
-int Protocol_Task::svc(void)
-{
- return -1;
-}
-
-/* There's nothing really magic about process(). We just decide if
- we're moving data upstream or downstream and invoke the appropriate
- virtual function to handle it.
-*/
-int Protocol_Task::process(ACE_Message_Block * message, ACE_Time_Value *timeout)
-{
- if( this->is_writer() )
- {
- return this->send(message,timeout);
- }
-
- return this->recv(message,timeout);
-}
-
-/* We must insist that derivatives provide a meaningful overload for
- these methods. It's fairly common for ACE object methods to return
- an error when an overload is expected but the method cannot be
- safely made pure virtual.
- */
-
-int Protocol_Task::send(ACE_Message_Block *message,
- ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(message);
- ACE_UNUSED_ARG(timeout);
- return -1;
-}
-
-int Protocol_Task::recv(ACE_Message_Block * message,
- ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(message);
- ACE_UNUSED_ARG(timeout);
- return -1;
-}
diff --git a/docs/tutorials/015/Protocol_Task.h b/docs/tutorials/015/Protocol_Task.h
deleted file mode 100644
index 2ea7d339eb8..00000000000
--- a/docs/tutorials/015/Protocol_Task.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id$
-
-#ifndef PROTOCOL_TASK_H
-#define PROTOCOL_TASK_H
-
-#include "ace/Task.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* A typical ACE_Task<> derivative that adds a few things appropriate
- to protocol stacks. To keep things a little simpler, we prevent
- activation of the task and just borrow the thread of control from
- the calling method in all cases.
-*/
-class Protocol_Task : public ACE_Task<ACE_MT_SYNCH>
-{
-public:
- typedef ACE_Task<ACE_MT_SYNCH> inherited;
-
- Protocol_Task (void);
-
- ~Protocol_Task (void);
-
- // open() is invoked when the task is inserted into the stream.
- virtual int open (void *arg);
-
- // close() is invoked when the stream is closed (flags will be set
- // to '1') and when the svc() method exits (flags will be '0').
- virtual int close (u_long flags);
-
- // As data travels through the stream, the put() method of each task
- // is invoked to keep the data moving along.
- virtual int put (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
- // We're obligated to provide this signature even though we won't be
- // allowing this object to be activated.
- virtual int svc (void);
-
-protected:
-
- // Called by put() or svc() as necessary to process a block of data.
- int process (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
- // Tasks on the writer (downstream) side of the stream are called
- // upon to send() data that will ultimately go to the peer.
- virtual int send (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
- // Tasks on the reader (upstream) side will be receiving data that
- // came from the peer.
- virtual int recv (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
-};
-
-#endif /* PROTOCOL_TASK_H */
diff --git a/docs/tutorials/015/Recv.cpp b/docs/tutorials/015/Recv.cpp
deleted file mode 100644
index 0cf739e7d25..00000000000
--- a/docs/tutorials/015/Recv.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-
-// $Id$
-
-#include "Recv.h"
-#include "ace/SOCK_Stream.h"
-
-/* Construct the object with the peer reference and other appropriate
- initializations.
-*/
-Recv::Recv( ACE_SOCK_Stream & _peer )
- : Protocol_Task(), peer_(_peer), error_(0)
-{
- // Create the tickler that get() will use to trigger recv()
- // through the baseclass. Since we're single-threaded this is
- // probably overkill but it makes multi-threading easier if we
- // choose to do that.
- tickler_ = new ACE_Message_Block(1);
-}
-
-/* Be sure we manage the lifetime of the tickler to prevent a memory
- leak.
-*/
-Recv::~Recv(void)
-{
- tickler_->release();
-}
-
-/* By putting the tickler to ourselves we cause things to happen in
- the baseclass that will invoke recv(). If we know we're single
- threaded we could directly call recv() and be done with it but then
- we'd have to do something else if we're multi-threaded. Just let
- the baseclass worry about those things!
-*/
-int Recv::get(void)
-{
- return this->put( tickler_, 0 );
-}
-
-int Recv::recv(ACE_Message_Block * message, ACE_Time_Value *timeout)
-{
- int rval;
-
- /* Xmit will send us the message length in clear-text. I
- assume that will be less than 32-bytes!
- */
- char msize[32];
- int b = 0;
-
- /* Read from the socket one byte at a time until we see then
- end-of-string NULL character. Since the OS layers (at least
- in Unix) will provide some buffering this isn't as bad as
- it may seem at first.
-
- The byte-at-a-time recv breaks horribly on Win32 where the
- WFMO_Reactor is used. This is because the socket has been
- placed into non-blocking mode and only the recv() of the
- first byte will block. The solution is to use
- ACE_Select_Reactor which doesn't change the socket
- characteristics. We did that back in main(), so we should
- be in good shape now.
- */
- do
- {
- rval = this->peer().recv( &msize[b], 1, timeout );
- if( rval == -1 )
- {
- error_ = 1;
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Recv::recv() Failed to get message size."), -1);
- }
- }
- while( msize[b++] != 0 );
-
- int size = ACE_OS::atoi(msize);
-
- // Make a block big enough to contain the data we'll read
- message = new ACE_Message_Block( size );
-
- // Read the actual message data into our new message block
- rval = this->peer().recv_n( message->wr_ptr(), size, 0, timeout );
-
- // If we got the data correctly then send it on upstream.
- if( rval > 0 )
- {
- message->wr_ptr( rval );
- return( this->put_next( message ) );
- }
-
- // Something bad happend on the recv_n(). Set an error flag
- // and return error.
- error_ = 1;
-
- return( -1 );
-}
diff --git a/docs/tutorials/015/Recv.h b/docs/tutorials/015/Recv.h
deleted file mode 100644
index 3e65b3ecb1e..00000000000
--- a/docs/tutorials/015/Recv.h
+++ /dev/null
@@ -1,58 +0,0 @@
-// $Id$
-
-#ifndef RECV_H
-#define RECV_h
-
-#include "Protocol_Task.h"
-
-class ACE_SOCK_Stream;
-
-/* Get some data from the peer and send it upstream for
- de-protocol-ization.
-*/
-class Recv : public Protocol_Task
-{
-public:
- typedef Protocol_Task inherited;
-
- // Give it someone to talk to...
- Recv (ACE_SOCK_Stream &peer);
- ~Recv (void);
-
- // Trigger a read from the socket
- int get (void);
-
- // In some cases it might be easier to check the "state" of the Recv
- // object than to rely on return codes filtering back to you.
- int error (void)
- {
- return this->error_;
- }
-
-protected:
-
- ACE_SOCK_Stream &peer (void)
- {
- return this->peer_;
- }
-
- // The baseclass will trigger this when our get() method is called.
- // A message block of the appropriate size is created, filled and
- // passed up the stream.
- int recv (ACE_Message_Block *message,
- ACE_Time_Value *timeout = 0);
-
-private:
- // Our endpoint
- ACE_SOCK_Stream &peer_;
-
- // get() uses a bogus message block to cause the baseclass to invoke
- // recv(). To avoid memory thrashing, we create that bogus message
- // once and reuse it for the life of Recv.
- ACE_Message_Block *tickler_;
-
- // Our error flag (duh)
- int error_;
-};
-
-#endif /* RECV_H */
diff --git a/docs/tutorials/015/Server_i.cpp b/docs/tutorials/015/Server_i.cpp
deleted file mode 100644
index 5de37d07e85..00000000000
--- a/docs/tutorials/015/Server_i.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-
-// $Id$
-
-#include "Server_i.h"
-
-/* We have to allocate space for our static finished_ flag. We also
- initialize it to 'false' so that we don't exit immediately.
-*/
-sig_atomic_t Server::finished_ = 0;
-
-/* The simple constructor and destructor don't do anything but give us
- a place to expand in the future if we want.
-*/
-Server::Server(void)
-{
- ;
-}
-
-Server::~Server(void)
-{
- ;
-}
-
-/* Opening the server is as simple as opening the acceptor with the
- default ACE_Reactor instance. If we want to allow multiple
- instances of Server objects then we should have an ACE_Reactor
- member variable that we can register with.
-*/
-int Server::open(void)
-{
- if (acceptor_.open (ACE_INET_Addr (ACE_DEFAULT_SERVER_PORT), ACE_Reactor::instance()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
-
- return(0);
-}
-
-/* Running the server just means that we execute the basic event
- loop for the reactor. Again, if we had a private reactor then we
- could have multiple server's in their run() method.
-*/
-int Server::run(void)
-{
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) starting up server daemon\n"));
-
- // Here's the basic event loop. I have a 2-second timeout on
- // the handle_events() so that we don't have to wait too long
- // when we set the finished_ flag.
- while (!finished_)
- {
- // Some (all?) platforms return the "remaining time" in the
- // timeout parameter. If we don't reset it each time, we
- // will end up with a 100% CPU spin loop!
- ACE_Time_Value timeout(2);
-
- ACE_Reactor::instance()->handle_events (&timeout);
- }
-
- // Close the acceptor when we're done. This may be handled by
- // the framework but it's good practice to be explicit about things.
- acceptor_.close();
-
- ACE_DEBUG ((LM_DEBUG, "(%P|%t) shutting down server daemon\n"));
-
- return 0;
-}
-
-/* The close() method simply sets the finished_ flag so that run()
- will leave the event loop and exit.
-*/
-int Server::close(void)
-{
- finished_ = 1;
- ACE_Reactor::instance()->notify();
- return(0);
-}
diff --git a/docs/tutorials/015/Server_i.h b/docs/tutorials/015/Server_i.h
deleted file mode 100644
index 2a77c611565..00000000000
--- a/docs/tutorials/015/Server_i.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// $Id$
-
-#ifndef SERVER_H
-#define SERVER_H
-
-#include "ace/Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Acceptor.h"
-#include "Handler.h"
-
-/* Anytime I have templates I try to remember to create a typedef for
- the parameterized object. It makes for much less typing later!
-*/
-typedef ACE_Acceptor <Handler, ACE_SOCK_ACCEPTOR> Acceptor;
-
-class Server
-{
-public:
- // Our simple constructor takes no parameters. To make the
- // server a bit more useful, you may want to pass in the
- // TCP/IP port to be used by the acceptor.
- Server (void);
- ~Server (void);
-
- // Open the server for business
- int open (void);
-
- // Close all server instances by setting the finished_ flag.
- // Actually, the way this class is written, you can only have
- // one instance.
- static int close (void);
-
- // Run the server's main loop. The use of the gloabl ACE_Reactor by
- // this method is what limits us to one Server instance.
- int run (void);
-
-private:
- // This will accept client connection requests and instantiate a
- // Handler object for each new connection.
- Acceptor acceptor_;
-
- // Our shutdown flag
- static sig_atomic_t finished_;
-};
-
-#endif /* SERVER_H */
diff --git a/docs/tutorials/015/Xmit.cpp b/docs/tutorials/015/Xmit.cpp
deleted file mode 100644
index 28be01b1d25..00000000000
--- a/docs/tutorials/015/Xmit.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-// $Id$
-
-#include "Xmit.h"
-#include "ace/SOCK_Stream.h"
-
-/* Construct the object with the peer connection and choose not to
- activate ourselves into a dedicated thread. You might get some
- performance gain by activating but if you really want a
- multi-threaded apprroach you should handle that as a separate
- issue. Attempting to force threading at this level will likely
- cause more trouble than you want to deal with.
-*/
-Xmit::Xmit( ACE_SOCK_Stream & _peer )
- : Protocol_Task(), peer_(_peer)
-{
-}
-
-Xmit::~Xmit(void)
-{
-}
-
-/* Check to see if we're being closed by the stream (flags != 0) or if
- we're responding to the exit of our svc() method.
-*/
-int Xmit::close(u_long flags)
-{
- // Take care of the baseclass closure.
- int rval = inherited::close(flags);
-
- // Only if we're being called at the stream shutdown do we close
- // the peer connection. If, for some reason, we were activated
- // into one or more threads we wouldn't want to close the pipe
- // before all threads had a chance to flush their data.
- if( flags )
- {
- peer().close();
- }
-
- return( rval );
-}
-
-/* Our overload of send() will take care of sending the data to the
- peer.
-*/
-int Xmit::send(ACE_Message_Block *message, ACE_Time_Value *timeout)
-{
- int rval;
-
- ACE_DEBUG ((LM_INFO, "(%P|%t) Xmit::send() sending (%s)(%d)\n", message->rd_ptr(), message->length() ));
-
- /* Since we're going to be sending data that may have been
- compressed and encrypted it's probably important for the
- receiver to get an entire "block" instead of having a
- partial read.
-
- For that reason, we'll send the length of the message block
- (in clear-text) to the peer so that it can then recv_n()
- the entire block contents in one read operation.
- */
- char msize[32];
- sprintf(msize,"%d",message->length());
-
- // Be sure we send the end-of-string NULL so that Recv will
- // know when to stop assembling the length.
- rval = this->peer().send_n( msize, strlen(msize)+1, 0, timeout );
-
- if( rval == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Xmit::send() Failed to send message size."), -1);
- }
-
- /* Now we send the actual data. If you're worried about
- network efficiency then you may choose to create one buffer
- containing msize and the message data and send it all at
- once.
- */
- rval = this->peer().send_n( message->rd_ptr(), message->length(), 0, timeout );
-
- // Release the message block since we're done with it.
- message->release();
-
- return( rval );
-}
diff --git a/docs/tutorials/015/Xmit.h b/docs/tutorials/015/Xmit.h
deleted file mode 100644
index 356bacf25b9..00000000000
--- a/docs/tutorials/015/Xmit.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// $Id$
-
-#ifndef XMIT_H
-#define XMIT_h
-
-#include "Protocol_Task.h"
-
-// Forward reference reduces #include dependencies
-class ACE_SOCK_Stream;
-
-/* A class suitable for sending data to a peer from within an
- ACE_Stream.
- */
-class Xmit : public Protocol_Task
-{
-public:
- typedef Protocol_Task inherited;
-
- // We must be given a valid peer when constructed. Without that we
- // don't know who to send data to.
- Xmit (ACE_SOCK_Stream &peer);
- ~Xmit (void);
-
- // As you know, close() will be called in a couple of ways by the
- // ACE framework. We use that opportunity to terminate the
- // connection to the peer.
- int close (u_long flags);
-
-protected:
-
- ACE_SOCK_Stream &peer (void)
- {
- return this->peer_;
- }
-
- // Send the data to the peer. By now it will have been completely
- // protocol-ized by other tasks in the stream.
- int send (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
-private:
- // A representation of the peer we're talking to.
- ACE_SOCK_Stream &peer_;
-};
-
-#endif /* XMIT_H */
diff --git a/docs/tutorials/015/client.cpp b/docs/tutorials/015/client.cpp
deleted file mode 100644
index 93041dcdfdd..00000000000
--- a/docs/tutorials/015/client.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-
-// $Id$
-
-/* The Client object will implement the nasty details of connecting to
- communicating with the server
-*/
-#include "Client_i.h"
-
-int main(int argc, char *argv[])
-{
- // How many messages will we send?
- int mcount = argc > 1 ? ACE_OS::atoi(argv[1]) : 3;
-
- // Construct a Client with our desired endpoint.
- Client client(ACE_DEFAULT_SERVER_PORT,ACE_DEFAULT_SERVER_HOST);
-
- // Attempt to open the connection to the server.
- if( client.open() == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Client::open()"), -1);
- }
-
- // Send a few messages to the server and get some responses...
- for( int i = 0 ; i < mcount ; ++i )
- {
- // Since we'll be using a Protocol Stream (even though we
- // don't know that at this level) we require the use of
- // ACE_Message_Block objects to send/receive data.
- ACE_Message_Block * message = new ACE_Message_Block( 128 );
-
- // Construct a silly message to send to the server.
- // Notice that we're careful to add one to the strlen() so
- // that we also send the end-of-string NULL character.
- ACE_OS::sprintf (message->wr_ptr (), "This is message %d.", i);
- message->wr_ptr (strlen (message->rd_ptr ())+1);
-
- // client will take ownership of the message block so that
- // we don't have to remember to release(). We *do* have
- // to remember not to use it after put() since it may be
- // released almost immediately.
- client.put( message );
-
- ACE_Message_Block * response;
-
- // get() takes an ACE_Message_Block pointer reference. We then
- // assume ownership of it and must release() when we're done.
- if( client.get( response ) == -1 )
- {
- ACE_DEBUG ((LM_INFO, "(%P|%t) Failed to get response from server\n" ));
- break;
- }
-
- ACE_DEBUG ((LM_INFO, "(%P|%t) The server's response: (%s)\n",
- response->rd_ptr()));
-
- // Now that we're through with the response we have to
- // release() it to avoid memory leaks.
- response->release();
- }
-
- ACE_DEBUG ((LM_INFO, "(%P|%t) Shutting down the stream\n" ));
-
- // Before we exit, it's a good idea to properly close() the connection.
- if( client.close() == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Client::close()"), -1);
- }
-
- return(0);
-}
diff --git a/docs/tutorials/015/combine.shar b/docs/tutorials/015/combine.shar
deleted file mode 100644
index 3116b69e7d6..00000000000
--- a/docs/tutorials/015/combine.shar
+++ /dev/null
@@ -1,1063 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-04-09 01:31 EDT by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/015'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 414 -rw-rw-r-- hdr
-# 419 -rw-rw-r-- bodies
-# 4225 -rw-rw-r-- page01.pre
-# 194 -rw-rw-r-- page02.pre
-# 318 -rw-rw-r-- page03.pre
-# 178 -rw-rw-r-- page04.pre
-# 302 -rw-rw-r-- page05.pre
-# 415 -rw-rw-r-- page06.pre
-# 321 -rw-rw-r-- page07.pre
-# 500 -rw-rw-r-- page08.pre
-# 638 -rw-rw-r-- page09.pre
-# 976 -rw-rw-r-- page10.pre
-# 334 -rw-rw-r-- page11.pre
-# 49 -rw-rw-r-- page12.pre
-# 325 -rw-rw-r-- page13.pre
-# 539 -rw-rw-r-- page14.pre
-# 769 -rw-rw-r-- page15.pre
-# 659 -rw-rw-r-- page16.pre
-# 213 -rw-rw-r-- page17.pre
-# 372 -rw-rw-r-- page18.pre
-# 281 -rw-rw-r-- page19.pre
-# 355 -rw-rw-r-- page20.pre
-# 151 -rw-rw-r-- page21.pre
-# 2563 -rw-rw-r-- page22.pre
-# 406 -rw-rw-r-- page04.pst
-# 616 -rw-rw-r-- page09.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh16810; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 04090120100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-41322d388f7bb6c8eba031c4a6ab53ce hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 414 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '414,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-#
-# The client application specific files
-#
-PAGE=2
-client.cpp
-Client_i.h
-Client_i.cpp
-#
-# The server application specific files
-#
-server.cpp
-Server_i.h
-Server_i.cpp
-Handler.h
-Handler.cpp
-#
-# The basic protocol stream
-#
-Protocol_Stream.h
-Protocol_Stream.cpp
-Protocol_Task.h
-Protocol_Task.cpp
-#
-# Send/Receive objects
-#
-XXmit.h
-XXmit.cpp
-Recv.h
-Recv.cpp
-#
-# Protocol objects
-#
-Compressor.h
-Compressor.cpp
-Crypt.h
-Crypt.cpp
-SHAR_EOF
- $shar_touch -am 1022205498 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-a6c99d6567b0640ad524b196dc43647e bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 419 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '419,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X
-In a typical client/server system you will be sending and receiving
-X data. That's the whole point after all.
-<P>
-In the client/server tutorials that we've done so far it was just a
-X matter of sending a buffer of data to the peer. This was done
-X with the send*() and recv*() methods of the ACE_SOCK* objects.
-<P>
-In a more robust system, one might want to process the data before
-X sending it to a peer and "unprocess" it after reading from a
-X peer. These processing steps might include encryption,
-X compression, applying checksums or any number of other actions.
-<P>
-In this tutorial a Protocol_Stream object is created to encrypt and
-X compress* data being sent between peers. Both client and server
-X applications are presented as well. I present the application
-level code first and then go into the details of the protocol stream
-and it's helper objects. If the stream stuff in the application logic
-is confusing then just read on by and come back to it after the later
-discussions.
-<P>
-Disclaimer:
-<br>
-<ul>
-Several folks have reported problems with this tutorial on Win32.
-There are a couple of ways to solve this. I've chosen to solve it by
-using the ACE_Select_Reactor on all platforms instead of taking the
-OS-default.
-</ul>
-<P>
-Kirthika's abstract:
-<UL>
-The Protocol Stream model consists of a stream layer which pushes the
-data towards the underlying SOCK_Stream thru the stages of encryption
-and compression. This data is received at the other end of the
-SOCK_Stream and sent up to its Protocol_Stream layer via the stages of
-decompression and decryption and an optional Reader task. This is very
-similar to the model of the TCP/IP stack (specifically the datalink to
-physical layer portion).
-<P>
-ACE_Message_Blocks are used to communicate between the client and the
-server across the Protocol Stream, which abstracts the protocol
-conformance details. The underlying SOCK_Stream is used to set up the
-connection using the ACE_SOCK_Connector class. Once the connector
-completes its job, the SOCK_Stream pointer is passed on to the
-Protocol Stream which now takes over. The Client has put() and get()
-methods to send and receive data from the server.
-<P>
-The server is implemented using the ACE_Acceptor to listen at the port
-for connections and a reactor for delegating events to the appropriate
-event handler. The handle_input () method of the handler simply allows
-the stream to receive the data and hand it over to the Handler_Task (a
-derivative of the ACE_Task) which will then process it.
-<P>
-The implementation of this Protocol Stream model is done using the
-ACE_Module class. The module for Xmit/Recv is shoved in first
-into the stream, followed by the encryption and compression modules. The
-optional Reader if defined is bundled with a dummy task
-(ACE_Thru_Task class) into a module. The get() and put() methods do
-the job of reading and writing to the Stream. Each module is made up
-of a pair of Protocol Tasks. A Protocol Task is a derivative of the
-ACE_Task and whose recv() and send() methods need to be filled to
-perform the appropriate task.
-<P>
-The Xmit object derives from the Protocol task and has a send() method
-which does the task of transmitting data to the underlying
-SOCK_Stream. Keeping the fragmentation and reassembly issues in mind,
-block-size is also sent across with the block of data.
-The Recv object uses a dummy Message Block to provoke the Protocol
-Task object to call the recv() on it. This is done by being
-foresighted about the use of mutliple threads instead of a single
-thread.
-<P>
-The compression/decompression is bundled in a single Protocol Task
-object with the send () method doing the compression and the recv()
-doing the decompression. Similarly, the encrption/decryption is done
-using a single Protocol Task object.
-<P>
-This tutorial provides a glimpse on how to design and implement a
-protocol in layers and also revises a lot of what has been learnt until
-now from the previous tutorials.
-(for instance, Message_Block, Task, Acceptor, Connector, Event_Handler
-etc.)
-</UL>
-<P>
-<font size=-1>* Ok, I didn't really implement encryption and
-X compression objects. I'll leave that as a thought
-X exercise!</font>
-SHAR_EOF
- $shar_touch -am 04090120100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-693002c5a94ef0d514f8b6c4bf2ea36e page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 4225 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '4225,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-We'll take a look first at the client application. As usual, our goal
-X is to keep the main() application as simple as possible and
-X delegate the tricky stuff to another object.
-X
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-6a2e64962c95b349625f418502c95952 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 194 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '194,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-The Client object is designed to hide all of the messy connection
-X logic from it's users. It also provides put/get methods for
-X sending data to the server and receiving the server's response.
-X Note the Protocol_Stream member that will take care of
-X converting and sending/receiving the data.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-95326c064b10bbda428d3c967f285760 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 318 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '318,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-The implementation of the Client object. Only the open() method
-X really does any work. The other methods simply delegate their
-X function to the Protocol_Stream.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-2955ca8d3b0fc6840f3d371aea528b8d page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 178 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '178,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-Like the client, we want to keep the main() part of our server code as
-X simple as possible. This is done by putting most of the work
-X into the Handler object that will deal with client connections.
-XFrom the looks of the code below, I think we've been successful in our
-simplification.
-<HR>
-X
-SHAR_EOF
- $shar_touch -am 04090120100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-7413a66059d2bd31c99b6414cfa9faef page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 302 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '302,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-The Server object exists in order simplify the
-main() application level. To that end, it hides the details of
-creating an acceptor and managing the reactor.
-<P>
-The static close() method available for a signal handler as you saw on
-the previous page. Of course the assumption here is that there would
-only be one Server instance but since you can't provide a TCP/IP port,
-that's probably a valid assumption!
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-af07f1b6fd76a7bd82ca2eb679ebe482 page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 415 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '415,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page07.pre ==============
-if test -f 'page07.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page07.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page07.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page07.pre' &&
-And now the implementation of Server. This is actually just the
-main() code from a previous tutorial broken into appropriate method
-calls. It may seem silly to do this rather than keeping the stuff in
-main() but you'll find that you have less trouble enhancing an
-application when you take this sort of approach.
-<HR>
-X
-SHAR_EOF
- $shar_touch -am 04090120100 'page07.pre' &&
- chmod 0664 'page07.pre' ||
- $echo 'restore of' 'page07.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page07.pre:' 'MD5 check failed'
-7dfb75884939c3c05ee1e1000956e9f4 page07.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page07.pre'`"
- test 321 -eq "$shar_count" ||
- $echo 'page07.pre:' 'original size' '321,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page08.pre ==============
-if test -f 'page08.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page08.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page08.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page08.pre' &&
-The Handler object is our event handler. You can use either
-ACE_Event_Handler or ACE_Svc_Handler<> for the baseclass. I generally
-prefer the latter since it takes care of some housekeeping that I
-would otherwise be responsible for.
-<P>
-The class declaration is taken almost exactly from a previous
-tutorial. A good design will have a simple handler object that will
-collect data from the peer and pass it along to another object for
-processing. Again, keep it simple and delegate authority.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page08.pre' &&
- chmod 0664 'page08.pre' ||
- $echo 'restore of' 'page08.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page08.pre:' 'MD5 check failed'
-8e5bd08125af0eb8b2a8ac6fa1cd6773 page08.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page08.pre'`"
- test 500 -eq "$shar_count" ||
- $echo 'page08.pre:' 'original size' '500,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page09.pre ==============
-if test -f 'page09.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page09.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page09.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page09.pre' &&
-Like any other event handler, the handle_input() method will be
-responsible for getting data from the peer() and doing something with
-it. In this case, we have a Protocol_Stream to deal with. We'll use
-the stream for the actual I/O but we are ultimately responsible for
-processing the data from the peer. To do that, we've created a
-Handler_Task that fits within the Protocol_Stream framework to process
-data that has been received. Handler::handle_input() will tell the stream that
-it's time to read data and that data will eventually show up at
-Handler_Task::recv() where we'll process it as required by our
-application logic.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page09.pre' &&
- chmod 0664 'page09.pre' ||
- $echo 'restore of' 'page09.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page09.pre:' 'MD5 check failed'
-4157b3795510b693de745d3fa9890418 page09.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page09.pre'`"
- test 638 -eq "$shar_count" ||
- $echo 'page09.pre:' 'original size' '638,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page10.pre ==============
-if test -f 'page10.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page10.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page10.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page10.pre' &&
-And so finally we come to the Protocol_Stream. That, after all, is
-the focus of the entire tutorial but it took us half of the day to get
-here!
-<P>
-The Protocol_Stream uses an ACE_Stream to move an ACE_Message_Block
-through a series of tasks. Each task in the stream is responsible for
-performing some operation on the data in the message block. That is
-the nature of a protocol stream (or "stack" if you prefer). In this
-stream, the data is compressed and encrypted* on its way between
-peers. We also allow users of the stream to install a reader task to
-handle data that percolates up from the peer. As you saw a page or
-two ago, this is most useful for a server.
-X
-<P>
-<font size=-1>*Again, I just pretend to do these things. It would
-take another day or two to go through any sort of reasonable
-encryption or compression!</font>
-<P>
-Before we get into the code, here's a picture that's shows what's
-going on here.
-<P><center><img src="stream.gif"></center></p>
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page10.pre' &&
- chmod 0664 'page10.pre' ||
- $echo 'restore of' 'page10.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page10.pre:' 'MD5 check failed'
-cd2042fe28f3ec83a293de6d795b6804 page10.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page10.pre'`"
- test 976 -eq "$shar_count" ||
- $echo 'page10.pre:' 'original size' '976,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page11.pre ==============
-if test -f 'page11.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page11.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page11.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page11.pre' &&
-And now the implementation of the Protocol_Stream. There are more
-lines of code here than we've seen so far but it still isn't
-complicated. The basic idea is to construct the ACE_Stream with our
-set of protocol objects that will manipulate the data. Our primary
-concern in this file is to get everything in the correct order!
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page11.pre' &&
- chmod 0664 'page11.pre' ||
- $echo 'restore of' 'page11.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page11.pre:' 'MD5 check failed'
-b0e968102fb417b12710e99465f4e387 page11.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page11.pre'`"
- test 334 -eq "$shar_count" ||
- $echo 'page11.pre:' 'original size' '334,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page12.pre ==============
-if test -f 'page12.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page12.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page12.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page12.pre' &&
-A quick look at the Protocol_Task header...
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page12.pre' &&
- chmod 0664 'page12.pre' ||
- $echo 'restore of' 'page12.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page12.pre:' 'MD5 check failed'
-5258df32a7fddcecfe902aec8440f98f page12.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page12.pre'`"
- test 49 -eq "$shar_count" ||
- $echo 'page12.pre:' 'original size' '49,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page13.pre ==============
-if test -f 'page13.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page13.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page13.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page13.pre' &&
-The Protocol_Task implementation takes care of the open(), close(),
-put() and svc() methods so that derivatives can concentrate on the
-send() and recv() methods. After a while you find that most
-ACE_Task<> derivatives look very similar in the four basic methods and
-only need one or two additional to do any real work.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page13.pre' &&
- chmod 0664 'page13.pre' ||
- $echo 'restore of' 'page13.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page13.pre:' 'MD5 check failed'
-3dd6383ba5c5d97e74a7ace5f44b0b33 page13.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page13.pre'`"
- test 325 -eq "$shar_count" ||
- $echo 'page13.pre:' 'original size' '325,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page14.pre ==============
-if test -f 'page14.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page14.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page14.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page14.pre' &&
-The Xmit object knows how to send data to the peer. It sits at the
-tail of the stream and gets everything that flows down from the head.
-In keeping with the spirit of things, this object does only one thing
-and doesn't concern itself with anyone else' details.
-<P>
-The only thing you might want to do is combine it with Recv. Why?
-As you'll realize in a page or two, the Xmit and Recv objects must
-interact if you're going to ensure a safe transit. By having a single
-object it's easier to coordinate and maintain the interaction.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page14.pre' &&
- chmod 0664 'page14.pre' ||
- $echo 'restore of' 'page14.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page14.pre:' 'MD5 check failed'
-aa057b88a7c770d1a15721cecbf91032 page14.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page14.pre'`"
- test 539 -eq "$shar_count" ||
- $echo 'page14.pre:' 'original size' '539,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page15.pre ==============
-if test -f 'page15.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page15.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page15.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page15.pre' &&
-The implementation of Xmit isn't too complicated. If we choose to
-combine it with the Recv task we simply lift the recv() method from
-that object and drop it into this one.
-<P>
-Note that close() must decide if it's being called when the stream is
-shutdown or when it's svc() method exits. Since we tell the baseclass
-not to use any threads it's a safe bet that flags will always be
-non-zero. Still, it's good practice to plan for the future by
-checking the value.
-<P>
-Note also that when we send the data we prefix it with the data size.
-This let's our sibling Recv ensure that an entire block is received
-together. This can be very important for compression and encryption
-processes which typically work better with blocks of data instead of
-streams of data.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page15.pre' &&
- chmod 0664 'page15.pre' ||
- $echo 'restore of' 'page15.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page15.pre:' 'MD5 check failed'
-adfd8e81c8c9eb43526d58322bbf8acf page15.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page15.pre'`"
- test 769 -eq "$shar_count" ||
- $echo 'page15.pre:' 'original size' '769,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page16.pre ==============
-if test -f 'page16.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page16.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page16.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page16.pre' &&
-Recv is the sibling to Xmit. Again, they could be combined into a
-single object if you want.
-<P>
-An ACE_Stream is designed to handle downstream traffic very
-well. You put() data into it and it flows along towards the tail.
-However, there doesn't seem to be a way to put data in such that it
-will travel upstream. To get around that, I've added a get() method
-to Recv that will trigger a read on the socket. Recv will then put
-the data to the next upstream module and we're on our way. As noted
-earlier, that data will eventually show up either in the <i>reader</i>
-(if installed on the stream open()) or the stream head reader task's
-message queue.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page16.pre' &&
- chmod 0664 'page16.pre' ||
- $echo 'restore of' 'page16.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page16.pre:' 'MD5 check failed'
-17e82c6427c779c22ac5c04c5f9c2bff page16.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page16.pre'`"
- test 659 -eq "$shar_count" ||
- $echo 'page16.pre:' 'original size' '659,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page17.pre ==============
-if test -f 'page17.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page17.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page17.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page17.pre' &&
-The Recv implementation is nearly as simple as Xmit. There's
-opportunity for error when we get the message size and we have to
-manage the lifetime of the tickler but other than that it's pretty
-basic stuff.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page17.pre' &&
- chmod 0664 'page17.pre' ||
- $echo 'restore of' 'page17.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page17.pre:' 'MD5 check failed'
-7db337f2c6ec74d75560534dec550b0e page17.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page17.pre'`"
- test 213 -eq "$shar_count" ||
- $echo 'page17.pre:' 'original size' '213,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page18.pre ==============
-if test -f 'page18.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page18.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page18.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page18.pre' &&
-This and the next three pages present the protocol objects that
-provide compression and encryption. If you were hoping to learn the
-secrets of compression and encryption then I'm going to disappoint
-you. There are some really good libraries out there that do this
-stuff though and if anyone wants to integrate one of them into the
-tutorial I'll be glad to take it!
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page18.pre' &&
- chmod 0664 'page18.pre' ||
- $echo 'restore of' 'page18.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page18.pre:' 'MD5 check failed'
-dc5f706bd5a27009aed167c0b137648e page18.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page18.pre'`"
- test 372 -eq "$shar_count" ||
- $echo 'page18.pre:' 'original size' '372,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page19.pre ==============
-if test -f 'page19.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page19.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page19.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page19.pre' &&
-Here we implement the details of our compression. By having both
-compression and decompression in one object it's easier to keep track
-of implementation details. Splitting Xmit/Recv like I did will make
-things more difficult if something has to change in their interaction.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page19.pre' &&
- chmod 0664 'page19.pre' ||
- $echo 'restore of' 'page19.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page19.pre:' 'MD5 check failed'
-4eb5dcd181f180d6c460971903efb288 page19.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page19.pre'`"
- test 281 -eq "$shar_count" ||
- $echo 'page19.pre:' 'original size' '281,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page20.pre ==============
-if test -f 'page20.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page20.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page20.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page20.pre' &&
-While I might be able to come up with a competitive compressor, I
-don't have a snowball's chance to code up encryption. I'd be better
-off piping the data through the standard Unix crypt command.
-<P>
-So, while I was lazy with Compress, I'm realistic with Crypt. I'll
-show you the hooks and entry points and let someone else contribute an
-encryptor.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page20.pre' &&
- chmod 0664 'page20.pre' ||
- $echo 'restore of' 'page20.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page20.pre:' 'MD5 check failed'
-2e697c01ac1579b409503b14980cadd0 page20.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page20.pre'`"
- test 355 -eq "$shar_count" ||
- $echo 'page20.pre:' 'original size' '355,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page21.pre ==============
-if test -f 'page21.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page21.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page21.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page21.pre' &&
-The encryption implementation isn't any smarter than that of the
-compressor. Still, the hooks are there for you to insert your
-favorite library.
-<HR>
-SHAR_EOF
- $shar_touch -am 04090120100 'page21.pre' &&
- chmod 0664 'page21.pre' ||
- $echo 'restore of' 'page21.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page21.pre:' 'MD5 check failed'
-7f0f64452098cdef38c5496340a4b6c7 page21.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page21.pre'`"
- test 151 -eq "$shar_count" ||
- $echo 'page21.pre:' 'original size' '151,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page22.pre ==============
-if test -f 'page22.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page22.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page22.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page22.pre' &&
-Well, this has certainly been one of the more verbose tutorials to
-date. I must say "thanks" to everyone who stuck it out this far!
-<P>
-A quick review of what we've done:
-<UL>
-X
-<LI>Create a simple client application and Client object that uses a
-Protocol Stream without really knowing how they work. The app (and
-object) rely on the public interface of the Protocol Stream to get the
-job done. At this level the protocol details are irrelevant.
-<P>
-<LI>Next, we create a simple server application and Server object
-similar to the client. The Protocol Stream is of course used and we
-have to know a little more so that we can insert a <i>reader</i> that
-will ultimately process the data from the client.
-<P>
-<LI>We then go into the details of the Protocol_Stream implementation
-and it's Protocol_Task object that forms the basis for the stream
-tasks. Each object is kept as small and simple as possible to improve
-reusability and future maintenance.
-<P>
-<LI>Finally, the individual protocol objects are discused. Separate
-objects for the peer interface were created as well as the bogus
-compressor and encryptor. The protocol can be extended or modified by
-creating new such objects and installing them in the Protocol_Stream's
-open() method.
-X
-</UL>
-<P>
-X
-It doesn't sound like much but it certainly took a bunch of files to
-get there. It's easy to get lost in the details when there's so much
-to cover so you're encouraged to go over things a couple of times.
-As always, enhancments of the tutorials is welcome!
-<P>
-Here's the complete file list:
-<UL>
-<LI><A HREF="client">Makefile</A>
-<P>
-<LI><A HREF="Makefile.client">client Makefile</A>
-<LI><A HREF="client.cpp">client.cpp</A>
-<LI><A HREF="Client_i.h">Client_i.h</A>
-<LI><A HREF="Client_i.cpp">Client_i.cpp</A>
-<P>
-<LI><A HREF="Makefile.server">Server Makefile</A>
-<LI><A HREF="server.cpp">server.cpp</A>
-<LI><A HREF="Server_i.h">Server_i.h</A>
-<LI><A HREF="Server_i.cpp">Server_i.cpp</A>
-<LI><A HREF="Handler.h">Handler.h</A>
-<LI><A HREF="Handler.cpp">Handler.cpp</A>
-<P>
-<LI><A HREF="Protocol_Stream.cpp">Protocol_Stream.cpp</A>
-<LI><A HREF="Protocol_Stream.h">Protocol_Stream.h</A>
-<LI><A HREF="Protocol_Task.cpp">Protocol_Task.cpp</A>
-<LI><A HREF="Protocol_Task.h">Protocol_Task.h</A>
-<P>
-<LI><A HREF="Xmit.cpp">Xmit.cpp</A>
-<LI><A HREF="Xmit.h">Xmit.h</A>
-<LI><A HREF="Recv.cpp">Recv.cpp</A>
-<LI><A HREF="Recv.h">Recv.h</A>
-<P>
-<LI><A HREF="Compressor.cpp">Compressor.cpp</A>
-<LI><A HREF="Compressor.h">Compressor.h</A>
-<LI><A HREF="Crypt.cpp">Crypt.cpp</A>
-<LI><A HREF="Crypt.h">Crypt.h</A>
-</UL>
-SHAR_EOF
- $shar_touch -am 04090120100 'page22.pre' &&
- chmod 0664 'page22.pre' ||
- $echo 'restore of' 'page22.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page22.pre:' 'MD5 check failed'
-da9603b9f082f453a905e40a8ca8523c page22.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page22.pre'`"
- test 2563 -eq "$shar_count" ||
- $echo 'page22.pre:' 'original size' '2563,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pst ==============
-if test -f 'page04.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pst' &&
-<HR>
-<P>
-Ok, that's it for the client. We've seen a very simple main()
-X followed by an equally simple Client object.
-<P>
-For a quick look back:
-<UL>
-<LI><A HREF="Makefile.client">client Makefile</A>
-<LI><A HREF="client.cpp">client.cpp</A>
-<LI><A HREF="Client_i.h">Client_i.h</A>
-<LI><A HREF="Client_i.cpp">Client_i.cpp</A>
-</UL>
-<P>
-Now we'll move on and examine the server counter-part of our client.
-SHAR_EOF
- $shar_touch -am 04090120100 'page04.pst' &&
- chmod 0664 'page04.pst' ||
- $echo 'restore of' 'page04.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pst:' 'MD5 check failed'
-00419a8ab9a3ddae3261840b62afdc4a page04.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pst'`"
- test 406 -eq "$shar_count" ||
- $echo 'page04.pst:' 'original size' '406,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page09.pst ==============
-if test -f 'page09.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page09.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page09.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page09.pst' &&
-<HR>
-<P>
-That's it for the server-specific code. I think I've been fairly
-successful in keeping it simple and to the point. There are a couple
-of places where the as-yet-undescribed Protocol_Stream pops up and may
-cause confusion. We're going to discuss that mystery now but before
-we do here's the list of server files if you want to review:
-X
-<UL>
-<LI><A HREF="Makefile.server">Server Makefile</A>
-<LI><A HREF="server.cpp">server.cpp</A>
-<LI><A HREF="Server_i.h">Server_i.h</A>
-<LI><A HREF="Server_i.cpp">Server_i.cpp</A>
-<LI><A HREF="Handler.h">Handler.h</A>
-<LI><A HREF="Handler.cpp">Handler.cpp</A>
-</UL>
-<P>
-SHAR_EOF
- $shar_touch -am 04090120100 'page09.pst' &&
- chmod 0664 'page09.pst' ||
- $echo 'restore of' 'page09.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page09.pst:' 'MD5 check failed'
-f88b5e21934f51fc3e14b154e5edd1a9 page09.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page09.pst'`"
- test 616 -eq "$shar_count" ||
- $echo 'page09.pst:' 'original size' '616,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh16810
-exit 0
diff --git a/docs/tutorials/015/page01.html b/docs/tutorials/015/page01.html
deleted file mode 100644
index 0709a089c19..00000000000
--- a/docs/tutorials/015/page01.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-
-In a typical client/server system you will be sending and receiving
- data. That's the whole point after all.
-<P>
-In the client/server tutorials that we've done so far it was just a
- matter of sending a buffer of data to the peer. This was done
- with the send*() and recv*() methods of the ACE_SOCK* objects.
-<P>
-In a more robust system, one might want to process the data before
- sending it to a peer and "unprocess" it after reading from a
- peer. These processing steps might include encryption,
- compression, applying checksums or any number of other actions.
-<P>
-In this tutorial a Protocol_Stream object is created to encrypt and
- compress* data being sent between peers. Both client and server
- applications are presented as well. I present the application
-level code first and then go into the details of the protocol stream
-and it's helper objects. If the stream stuff in the application logic
-is confusing then just read on by and come back to it after the later
-discussions.
-<P>
-Disclaimer:
-<br>
-<ul>
-Several folks have reported problems with this tutorial on Win32.
-There are a couple of ways to solve this. I've chosen to solve it by
-using the ACE_Select_Reactor on all platforms instead of taking the
-OS-default.
-</ul>
-<P>
-Kirthika's abstract:
-<UL>
-The Protocol Stream model consists of a stream layer which pushes the
-data towards the underlying SOCK_Stream thru the stages of encryption
-and compression. This data is received at the other end of the
-SOCK_Stream and sent up to its Protocol_Stream layer via the stages of
-decompression and decryption and an optional Reader task. This is very
-similar to the model of the TCP/IP stack (specifically the datalink to
-physical layer portion).
-<P>
-ACE_Message_Blocks are used to communicate between the client and the
-server across the Protocol Stream, which abstracts the protocol
-conformance details. The underlying SOCK_Stream is used to set up the
-connection using the ACE_SOCK_Connector class. Once the connector
-completes its job, the SOCK_Stream pointer is passed on to the
-Protocol Stream which now takes over. The Client has put() and get()
-methods to send and receive data from the server.
-<P>
-The server is implemented using the ACE_Acceptor to listen at the port
-for connections and a reactor for delegating events to the appropriate
-event handler. The handle_input () method of the handler simply allows
-the stream to receive the data and hand it over to the Handler_Task (a
-derivative of the ACE_Task) which will then process it.
-<P>
-The implementation of this Protocol Stream model is done using the
-ACE_Module class. The module for Xmit/Recv is shoved in first
-into the stream, followed by the encryption and compression modules. The
-optional Reader if defined is bundled with a dummy task
-(ACE_Thru_Task class) into a module. The get() and put() methods do
-the job of reading and writing to the Stream. Each module is made up
-of a pair of Protocol Tasks. A Protocol Task is a derivative of the
-ACE_Task and whose recv() and send() methods need to be filled to
-perform the appropriate task.
-<P>
-The Xmit object derives from the Protocol task and has a send() method
-which does the task of transmitting data to the underlying
-SOCK_Stream. Keeping the fragmentation and reassembly issues in mind,
-block-size is also sent across with the block of data.
-The Recv object uses a dummy Message Block to provoke the Protocol
-Task object to call the recv() on it. This is done by being
-foresighted about the use of mutliple threads instead of a single
-thread.
-<P>
-The compression/decompression is bundled in a single Protocol Task
-object with the send () method doing the compression and the recv()
-doing the decompression. Similarly, the encrption/decryption is done
-using a single Protocol Task object.
-<P>
-This tutorial provides a glimpse on how to design and implement a
-protocol in layers and also revises a lot of what has been learnt until
-now from the previous tutorials.
-(for instance, Message_Block, Task, Acceptor, Connector, Event_Handler
-etc.)
-</UL>
-<P>
-<font size=-1>* Ok, I didn't really implement encryption and
- compression objects. I'll leave that as a thought
- exercise!</font>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page02.html b/docs/tutorials/015/page02.html
deleted file mode 100644
index bdf3a3cb44d..00000000000
--- a/docs/tutorials/015/page02.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-We'll take a look first at the client application. As usual, our goal
- is to keep the main() application as simple as possible and
- delegate the tricky stuff to another object.
-
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=red>/* The Client object will implement the nasty details of connecting to
- communicating with the server
-*/</font>
-<font color=blue>#include</font> "<font color=green>Client_i.h</font>"
-
-int main(int argc, char *argv[])
-{
- <font color=red>// How many messages will we send?</font>
- int mcount = argc > 1 ? <font color=#008888>ACE_OS::atoi</font>(argv[1]) : 3;
-
- <font color=red>// Construct a Client with our desired endpoint.</font>
- Client client(ACE_DEFAULT_SERVER_PORT,ACE_DEFAULT_SERVER_HOST);
-
- <font color=red>// Attempt to open the connection to the server.</font>
- if( client.open() == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green><font color=#008888>Client::open</font>()</font>"), -1);
- }
-
- <font color=red>// Send a few messages to the server and get some responses...</font>
- for( int i = 0 ; i &lt; mcount ; ++i )
- {
- <font color=red>// Since we'll be using a Protocol Stream (even though we</font>
- <font color=red>// don't know that at this level) we require the use of</font>
- <font color=red>// ACE_Message_Block objects to send/receive data.</font>
- ACE_Message_Block * message = new ACE_Message_Block( 128 );
-
- <font color=red>// Construct a silly message to send to the server.</font>
- <font color=red>// Notice that we're careful to add one to the strlen() so</font>
- <font color=red>// that we also send the end-of-string NULL character.</font>
- <font color=#008888>ACE_OS::sprintf</font> (message->wr_ptr (), "<font color=green>This is message %d.</font>", i);
- message->wr_ptr (strlen (message->rd_ptr ())+1);
-
- <font color=red>// client will take ownership of the message block so that</font>
- <font color=red>// we don't have to remember to release(). We *do* have</font>
- <font color=red>// to remember not to use it after put() since it may be</font>
- <font color=red>// released almost immediately.</font>
- client.put( message );
-
- ACE_Message_Block * response;
-
- <font color=red>// get() takes an ACE_Message_Block pointer reference. We then</font>
- <font color=red>// assume ownership of it and must release() when we're done.</font>
- if( client.get( response ) == -1 )
- {
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) Failed to get response from server\n</font>" ));
- break;
- }
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) The server's response: (%s)\n</font>",
- response->rd_ptr()));
-
- <font color=red>// Now that we're through with the response we have to</font>
- <font color=red>// release() it to avoid memory leaks.</font>
- response->release();
- }
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) Shutting down the stream\n</font>" ));
-
- <font color=red>// Before we exit, it's a good idea to properly close() the connection.</font>
- if( client.close() == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green><font color=#008888>Client::close</font>()</font>"), -1);
- }
-
- return(0);
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page03.html b/docs/tutorials/015/page03.html
deleted file mode 100644
index d097af1363c..00000000000
--- a/docs/tutorials/015/page03.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The Client object is designed to hide all of the messy connection
- logic from it's users. It also provides put/get methods for
- sending data to the server and receiving the server's response.
- Note the Protocol_Stream member that will take care of
- converting and sending/receiving the data.
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>CLIENT_H</font>
-<font color=blue>#define</font> <font color=purple>CLIENT_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<font color=green>Protocol_Stream.h</font>"
-
-class ACE_Message_Block;
-
-<font color=red>/* Hide the details of connection and protocol-conformance from the
- application-level logic.
-*/</font>
-class Client
-{
-public:
- <font color=red>// Provide the server information when constructing the</font>
- <font color=red>// object. This could (and probably should) be moved to the</font>
- <font color=red>// open() method.</font>
- Client (u_short port,
- const char *server);
-
- <font color=red>// Cleanup...</font>
- ~Client (void);
-
- <font color=red>// Open the connection to the server.</font>
- int open (void);
-
- <font color=red>// Close the connection to the server. Be sure to do this</font>
- <font color=red>// before you let the Client go out of scope.</font>
- int close (void);
-
- <font color=red>// Put a message to the server. The Client assumes ownership of</font>
- <font color=red>// &lt;message> at that point and will release() it when done. Do not</font>
- <font color=red>// use &lt;message> after passing it to put().</font>
- int put (ACE_Message_Block *message);
-
- <font color=red>// Get a response from the server. The caller becomes the owner of</font>
- <font color=red>// &lt;response> after this call and is responsible for invoking</font>
- <font color=red>// release() when done.</font>
- int get (ACE_Message_Block *&response);
-
-private:
- <font color=red>// Protocol_Stream hides the protocol conformance details from us.</font>
- Protocol_Stream stream_;
-
- <font color=red>// We create a connection on the peer_ and then pass ownership of it</font>
- <font color=red>// to the protocol stream.</font>
- ACE_SOCK_Stream peer_;
-
- <font color=red>// Endpoing information saved by the constructor for use by open().</font>
- u_short port_;
- const char *server_;
-
- <font color=red>// Accessors for the complex member variables.</font>
-
- Protocol_Stream &stream (void)
- {
- return this->stream_;
- }
-
- ACE_SOCK_Stream &peer (void)
- {
- return this->peer_;
- }
-};
-
-<font color=blue>#endif</font> <font color=red>/* CLIENT_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page04.html b/docs/tutorials/015/page04.html
deleted file mode 100644
index 0ad3b837366..00000000000
--- a/docs/tutorials/015/page04.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The implementation of the Client object. Only the open() method
- really does any work. The other methods simply delegate their
- function to the Protocol_Stream.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Client_i.h</font>"
-<font color=blue>#include</font> "<A HREF="../../../ace/Message_Block.h">ace/Message_Block.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/INET_Addr.h">ace/INET_Addr.h</A>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Connector.h">ace/SOCK_Connector.h</A>"
-
-<font color=red>// Simple constructor just remembers the endpoint information for use by open.</font>
-<font color=#008888>Client::Client</font>( u_short _port, const char * _server)
- : port_(_port), server_(_server)
-{
- ;
-}
-
-<font color=red>/* Do nothing. This should probably call close() if we can make sure
- that it's OK to close() multiple times.
-*/</font>
-<font color=#008888>Client::~Client</font>(void)
-{
- ;
-}
-
-<font color=red>/* Open the connection to the server. This is traditional ACE. We
- simply construct an endpoint and use a connector to establish the
- link.
-*/</font>
-int <font color=#008888>Client::open</font>( void )
-{
- ACE_INET_Addr addr(port_,server_);
- ACE_SOCK_Connector con;
-
- if( con.connect(peer(),addr) == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green><font color=#008888>ACE_SOCK_Connector::connect</font>()</font>"), -1);
- }
-
- <font color=red>// Something new here... We have to use the protocol stream</font>
- <font color=red>// to ensure that our data is in the correct format when</font>
- <font color=red>// received by the server. Thus, we open the stream and</font>
- <font color=red>// transfer ownership of the peer.</font>
- return stream().open( peer() );
-}
-
-<font color=red>// The remainder of the functions just delegate to the stream.</font>
-
-int <font color=#008888>Client::close</font>( void )
-{
- return stream().close();
-}
-
-int <font color=#008888>Client::put</font>( ACE_Message_Block * _message )
-{
- return stream().put(_message,0);
-}
-
-int <font color=#008888>Client::get</font>( ACE_Message_Block * & _response )
-{
- return stream().get(_response);
-}
-</PRE>
-<HR>
-<P>
-Ok, that's it for the client. We've seen a very simple main()
- followed by an equally simple Client object.
-<P>
-For a quick look back:
-<UL>
-<LI><A HREF="Makefile.client">client Makefile</A>
-<LI><A HREF="client.cpp">client.cpp</A>
-<LI><A HREF="Client_i.h">Client_i.h</A>
-<LI><A HREF="Client_i.cpp">Client_i.cpp</A>
-</UL>
-<P>
-Now we'll move on and examine the server counter-part of our client.
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page05.html b/docs/tutorials/015/page05.html
deleted file mode 100644
index fa2aca0db49..00000000000
--- a/docs/tutorials/015/page05.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-Like the client, we want to keep the main() part of our server code as
- simple as possible. This is done by putting most of the work
- into the Handler object that will deal with client connections.
-From the looks of the code below, I think we've been successful in our
-simplification.
-<HR>
-
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Server_i.h</font>"
-<font color=blue>#include</font> "<A HREF="../../../ace/Select_Reactor.h">ace/Select_Reactor.h</A>"
-
-<font color=red>// A signal handler that will close the server object</font>
-extern "<font color=green>C</font>" void handler (int)
-{
- <font color=#008888>Server::close</font>();
-}
-
-int main (int, char **)
-{
- <font color=red>/* On Win32, the WFMO reactor is used by default.
- Unfortunately, that causes the sockets to be put into
- non-blocking mode which will break <font color=#008888>Recv::recv</font>(). To
- prevent that issue, I explicitly use the Select Reactor
- instead. I'll talk more about the "<font color=green>problem</font>" in the Recv
- comments.
- */</font>
-
- <font color=red>// First, we create a Select_Reactor that will do the work.</font>
- <font color=red>// To keep things simple, I'll create it on the stack.</font>
- ACE_Select_Reactor mySelectReactor;
-
- <font color=red>// Next, we need an ACE_Reactor that is the bridge between the</font>
- <font color=red>// code and the real reactor. It is given a pointer to the</font>
- <font color=red>// real reactor.</font>
- ACE_Reactor myReactor (&mySelectReactor);
-
- <font color=red>// Finally, we set the singleton instance to use the reactor</font>
- <font color=red>// we've created.</font>
- <font color=#008888>ACE_Reactor::instance</font> (&myReactor);
-
- <font color=red>// The server object that abstracts away all of the difficult parts.</font>
- Server server;
-
- <font color=red>// Attempt to open the server. Like all good ACE-based</font>
- <font color=red>// objects, we'll get -1 on failure.</font>
- if( server.open() == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>server.open()</font>"), -1);
- }
-
- <font color=red>// Install a signal handler for ^C so that we can exit gracefully</font>
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
-
- <font color=red>// Run the server's main loop until we're interrupted</font>
- if( server.run() == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>server.run()</font>"), -1);
- }
-
- return 0;
-}
-
-<font color=red>/* These explicit instantiations were taken from an earlier tutorial.
- Your compiler may require others as well.
-*/</font>
-<font color=blue>#if defined</font> (<font color=purple>ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION</font>)
-template class ACE_Acceptor &lt;Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-<font color=blue>#elif defined</font> (<font color=purple>ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Acceptor &lt;Handler, ACE_SOCK_ACCEPTOR>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-<font color=blue>#endif</font> <font color=red>/* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */</font>
-
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page06.html b/docs/tutorials/015/page06.html
deleted file mode 100644
index 828b5501600..00000000000
--- a/docs/tutorials/015/page06.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The Server object exists in order simplify the
-main() application level. To that end, it hides the details of
-creating an acceptor and managing the reactor.
-<P>
-The static close() method available for a signal handler as you saw on
-the previous page. Of course the assumption here is that there would
-only be one Server instance but since you can't provide a TCP/IP port,
-that's probably a valid assumption!
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>SERVER_H</font>
-<font color=blue>#define</font> <font color=purple>SERVER_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Acceptor.h">ace/Acceptor.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Acceptor.h">ace/SOCK_Acceptor.h</A>"
-<font color=blue>#include</font> "<font color=green>Handler.h</font>"
-
-<font color=red>/* Anytime I have templates I try to remember to create a typedef for
- the parameterized object. It makes for much less typing later!
-*/</font>
-typedef ACE_Acceptor &lt;Handler, ACE_SOCK_ACCEPTOR> Acceptor;
-
-class Server
-{
-public:
- <font color=red>// Our simple constructor takes no parameters. To make the</font>
- <font color=red>// server a bit more useful, you may want to pass in the</font>
- <font color=red>// TCP/IP port to be used by the acceptor.</font>
- Server (void);
- ~Server (void);
-
- <font color=red>// Open the server for business</font>
- int open (void);
-
- <font color=red>// Close all server instances by setting the finished_ flag.</font>
- <font color=red>// Actually, the way this class is written, you can only have</font>
- <font color=red>// one instance.</font>
- static int close (void);
-
- <font color=red>// Run the server's main loop. The use of the gloabl ACE_Reactor by</font>
- <font color=red>// this method is what limits us to one Server instance.</font>
- int run (void);
-
-private:
- <font color=red>// This will accept client connection requests and instantiate a</font>
- <font color=red>// Handler object for each new connection.</font>
- Acceptor acceptor_;
-
- <font color=red>// Our shutdown flag</font>
- static sig_atomic_t finished_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* SERVER_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page07.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page07.html b/docs/tutorials/015/page07.html
deleted file mode 100644
index 9adccc2c48d..00000000000
--- a/docs/tutorials/015/page07.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-And now the implementation of Server. This is actually just the
-main() code from a previous tutorial broken into appropriate method
-calls. It may seem silly to do this rather than keeping the stuff in
-main() but you'll find that you have less trouble enhancing an
-application when you take this sort of approach.
-<HR>
-
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Server_i.h</font>"
-
-<font color=red>/* We have to allocate space for our static finished_ flag. We also
- initialize it to 'false' so that we don't exit immediately.
-*/</font>
-sig_atomic_t <font color=#008888>Server::finished_</font> = 0;
-
-<font color=red>/* The simple constructor and destructor don't do anything but give us
- a place to expand in the future if we want.
-*/</font>
-<font color=#008888>Server::Server</font>(void)
-{
- ;
-}
-
-<font color=#008888>Server::~Server</font>(void)
-{
- ;
-}
-
-<font color=red>/* Opening the server is as simple as opening the acceptor with the
- default ACE_Reactor instance. If we want to allow multiple
- instances of Server objects then we should have an ACE_Reactor
- member variable that we can register with.
-*/</font>
-int <font color=#008888>Server::open</font>(void)
-{
- if (acceptor_.open (ACE_INET_Addr (ACE_DEFAULT_SERVER_PORT), <font color=#008888>ACE_Reactor::instance</font>()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>open</font>"), -1);
-
- return(0);
-}
-
-<font color=red>/* Running the server just means that we execute the basic event
- loop for the reactor. Again, if we had a private reactor then we
- could have multiple server's in their run() method.
-*/</font>
-int <font color=#008888>Server::run</font>(void)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) starting up server daemon\n</font>"));
-
- <font color=red>// Here's the basic event loop. I have a 2-second timeout on</font>
- <font color=red>// the handle_events() so that we don't have to wait too long</font>
- <font color=red>// when we set the finished_ flag.</font>
- while (!finished_)
- {
- <font color=red>// Some (all?) platforms return the "<font color=green>remaining time</font>" in the</font>
- <font color=red>// timeout parameter. If we don't reset it each time, we</font>
- <font color=red>// will end up with a 100% CPU spin loop!</font>
- ACE_Time_Value timeout(2);
-
- <font color=#008888>ACE_Reactor::instance</font>()->handle_events (&timeout);
- }
-
- <font color=red>// Close the acceptor when we're done. This may be handled by</font>
- <font color=red>// the framework but it's good practice to be explicit about things.</font>
- acceptor_.close();
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) shutting down server daemon\n</font>"));
-
- return 0;
-}
-
-<font color=red>/* The close() method simply sets the finished_ flag so that run()
- will leave the event loop and exit.
-*/</font>
-int <font color=#008888>Server::close</font>(void)
-{
- finished_ = 1;
- <font color=#008888>ACE_Reactor::instance</font>()->notify();
- return(0);
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page08.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page08.html b/docs/tutorials/015/page08.html
deleted file mode 100644
index 19a74c68690..00000000000
--- a/docs/tutorials/015/page08.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The Handler object is our event handler. You can use either
-ACE_Event_Handler or ACE_Svc_Handler<> for the baseclass. I generally
-prefer the latter since it takes care of some housekeeping that I
-would otherwise be responsible for.
-<P>
-The class declaration is taken almost exactly from a previous
-tutorial. A good design will have a simple handler object that will
-collect data from the peer and pass it along to another object for
-processing. Again, keep it simple and delegate authority.
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>HANDLER_H</font>
-<font color=blue>#define</font> <font color=purple>HANDLER_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Svc_Handler.h">ace/Svc_Handler.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-<font color=blue>#include</font> "<font color=green>Protocol_Stream.h</font>"
-
-<font color=red>/* Just your basic event handler. We use ACE_Svc_Handler&lt;> as a
- baseclass so that it can maintain the peer() and other details for
- us. We're not going to activate() this object, so we can get away
- with the NULL synch choice. */</font>
-class Handler : public ACE_Svc_Handler &lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- Handler (void);
- ~Handler (void);
-
- <font color=red>// Called by the acceptor when we're created in response to a client</font>
- <font color=red>// connection.</font>
- int open (void *);
-
- <font color=red>// Called when it's time for us to be deleted. We take care of</font>
- <font color=red>// removing ourselves from the reactor and shutting down the peer()</font>
- <font color=red>// connectin.</font>
- void destroy (void);
-
- <font color=red>// Called when it's time for us to go away. There are subtle</font>
- <font color=red>// differences between destroy() and close() so don't try to use</font>
- <font color=red>// either for all cases.</font>
- int close (u_long);
-
-protected:
- <font color=red>// Respond to peer() activity.</font>
- int handle_input (ACE_HANDLE);
-
- <font color=red>// This will be called when handle_input() returns a failure code.</font>
- <font color=red>// That's our signal that it's time to begin the shutdown process.</font>
- int handle_close (ACE_HANDLE,
- ACE_Reactor_Mask mask);
-private:
-
- <font color=red>// Like the Client, we have to abide by the protocol requirements.</font>
- <font color=red>// We use a local Protocol_Stream object to take care of those</font>
- <font color=red>// details. For us, I/O then just becomes a matter of interacting</font>
- <font color=red>// with the stream.</font>
- Protocol_Stream stream_;
-
- Protocol_Stream &stream (void)
- {
- return this->stream_;
- }
-};
-
-<font color=blue>#endif</font> <font color=red>/* HANDLER_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page09.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page09.html b/docs/tutorials/015/page09.html
deleted file mode 100644
index 9d1b818fbd3..00000000000
--- a/docs/tutorials/015/page09.html
+++ /dev/null
@@ -1,227 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-Like any other event handler, the handle_input() method will be
-responsible for getting data from the peer() and doing something with
-it. In this case, we have a Protocol_Stream to deal with. We'll use
-the stream for the actual I/O but we are ultimately responsible for
-processing the data from the peer. To do that, we've created a
-Handler_Task that fits within the Protocol_Stream framework to process
-data that has been received. Handler::handle_input() will tell the stream that
-it's time to read data and that data will eventually show up at
-Handler_Task::recv() where we'll process it as required by our
-application logic.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Handler.h</font>"
-<font color=blue>#include</font> "<font color=green>Protocol_Task.h</font>"
-
-<font color=red>/* The Protocol_Stream gives us the option to insert a Protocol_Task
- to process data received by the stream. We'll get into the details
- more when we talk about the stream in detail. For now it's enough
- to know that <font color=#008888>Handler_Task::recv</font>() will be invoked by the stream
- after data from the client has been received and processed (eg --
- decrypted, uncompressed, and whatever else the protocol requires.)
-*/</font>
-class Handler_Task : public Protocol_Task
-{
-public:
-
- <font color=red>// Typical...</font>
- typedef Protocol_Task inherited;
-
- <font color=red>// Simple...</font>
- Handler_Task(void);
- ~Handler_Task(void);
-
-protected:
-
- <font color=red>// recv() is invoked after received data has been fully</font>
- <font color=red>// processed by the protocol rules. Data processing typically</font>
- <font color=red>// done in handle_input() can then be done here.</font>
- int recv(ACE_Message_Block * message,
- ACE_Time_Value *timeout = 0);
-};
-
-<font color=#008888>Handler::Handler</font>(void)
-{
- ;
-}
-
-<font color=#008888>Handler::~Handler</font>(void)
-{
- ;
-}
-
-<font color=red>/* The Acceptor will open() us once the peer() connection is
- established. There are a couple of things we have to do here
- before we're ready to receive data from the client.
-*/</font>
-int <font color=#008888>Handler::open</font> (void *)
-{
- ACE_INET_Addr addr;
-
- <font color=red>// Make sure that we can get the peer's address. If we can't</font>
- <font color=red>// then there may be a network error or something else that</font>
- <font color=red>// will prevent communicating with the client. This is</font>
- <font color=red>// something you'll want to do in every event handler you create.</font>
- if (this->peer ().get_remote_addr (addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>(%P|%t) Cannot get remote addr\n</font>"), -1);
-
- <font color=red>// Announce the client</font>
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) connected with %s\n</font>", addr.get_host_name() ));
-
- <font color=red>// Here's the first new twist to the old event handler.</font>
- <font color=red>// Before we can use the Protocol_Stream to communicate with</font>
- <font color=red>// the peer, we must open() it. We provide the stream with</font>
- <font color=red>// the peer() so that it will have a valid socket on which to</font>
- <font color=red>// read client requests and send our responses. We also</font>
- <font color=red>// provide a Handler_Task instance that will ultimately be</font>
- <font color=red>// responsible for processing any client data we receive.</font>
- int rval = stream().open( this->peer(), new Handler_Task() );
-
- <font color=red>// Of course, we have to account for the chance that the</font>
- <font color=red>// stream's open() may fail.</font>
- if( rval == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>(%P|%t) Cannot open the protocol stream.\n</font>"), -1);
- }
-
- <font color=red>// Now that we know the client is valid and that the stream is</font>
- <font color=red>// ready for business we can register with the gloabl reactor</font>
- <font color=red>// instance. Here again is an opportunity for improvement if</font>
- <font color=red>// we expect to have mulitple Server object instances.</font>
- if (<font color=#008888>ACE_Reactor::instance</font>()->register_handler (this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>(%P|%t) Cannot register with reactor\n</font>"), -1);
-
- return rval;
-}
-
-<font color=red>/* This is a fairly typical destroy() method that can be shared by
- both close() and handle_close().
-*/</font>
-void <font color=#008888>Handler::destroy</font> (void)
-{
- <font color=#008888>ACE_Reactor::instance</font>()->remove_handler(this,ACE_Event_Handler::READ_MASK|ACE_Event_Handler::DONT_CALL);
-
- this->peer ().close ();
-
- delete this;
-}
-
-<font color=red>/* In this simple application we just forward the close() and
- handle_close() requests right on to the destroy() method.
-*/</font>
-
-int <font color=#008888>Handler::close</font> (u_long)
-{
- this->destroy ();
- return 0;
-}
-
-int <font color=#008888>Handler::handle_close</font>(ACE_HANDLE, ACE_Reactor_Mask)
-{
- this->destroy();
- return 0;
-}
-
-<font color=red>/* Unlike a "<font color=green>traditional</font>" handle_input() ours is very simple. Because
- of the use of the protocol stream, we delegate the read function to
- the stream's get() and rely on our Handler_Task to do the real work.
-*/</font>
-int <font color=#008888>Handler::handle_input</font> (ACE_HANDLE)
-{
- ACE_DEBUG ((LM_DEBUG, "<font color=green>(%P|%t) Activity from client\n</font>" ));
-
- <font color=red>// This will cause a blocking read from the peer(). The data</font>
- <font color=red>// will then be pushed through the protocol stream.</font>
- if( stream().get( ) == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>(%P|%t) Cannot get data from protocol stream\n</font>"), -1);
- }
-
- return 0;
-}
-
-<font color=red>/* A Protocol_Task is derived from ACE_Task and has the option of
- running in one or more threads. I've chosen here to construct the
- baseclass with no threads but it should work just fine with one or
- more if you need. Unless you're sharing the Handler_Task with
- several peers, however, you're probably just wasting a thread to
- activate it. On the other hand, if your reactor is running in a
- single thread (as in this example) then you can easily implement
- thread-per-connection concurrency by giving the baseclass one thread.
-*/</font>
-<font color=#008888>Handler_Task::Handler_Task</font>(void)
- : inherited()
-{
- ;
-}
-
-<font color=#008888>Handler_Task::~Handler_Task</font>(void)
-{
- ;
-}
-
-<font color=red>/* When installed into the protocol stream, the Handler_Task's recv()
- method will be called when data is ready for processing.
- */</font>
-int <font color=#008888>Handler_Task::recv</font>(ACE_Message_Block * message,
- ACE_Time_Value *timeout )
-{
- <font color=red>// Announce the request we got from the client</font>
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) <font color=#008888>Handler_Task::recv</font>() got (%s)\n</font>", message->rd_ptr() ));
-
- <font color=red>// Create a response message to send to the client</font>
- ACE_Message_Block * response = new ACE_Message_Block( 128 );
-
- <font color=red>// Nothing very original about this I'm afraid...</font>
- <font color=#008888>ACE_OS::sprintf</font>( response->wr_ptr(), "<font color=green>You Said: (%s)</font>", message->rd_ptr() );
- response->wr_ptr( strlen(response->wr_ptr())+1 );
-
- <font color=red>// Release the original message block now that we're through</font>
- <font color=red>// "<font color=green>processing</font>" it.</font>
- message->release();
-
- <font color=red>// Turn the message around and send it back down the Stream.</font>
- <font color=red>// In other words, we invoke the put() method on the</font>
- <font color=red>// Protocol_Stream without having to have a direct reference</font>
- <font color=red>// to the stream object.</font>
- return this->reply( response, timeout );
-}
-</PRE>
-<HR>
-<P>
-That's it for the server-specific code. I think I've been fairly
-successful in keeping it simple and to the point. There are a couple
-of places where the as-yet-undescribed Protocol_Stream pops up and may
-cause confusion. We're going to discuss that mystery now but before
-we do here's the list of server files if you want to review:
-
-<UL>
-<LI><A HREF="Makefile.server">Server Makefile</A>
-<LI><A HREF="server.cpp">server.cpp</A>
-<LI><A HREF="Server_i.h">Server_i.h</A>
-<LI><A HREF="Server_i.cpp">Server_i.cpp</A>
-<LI><A HREF="Handler.h">Handler.h</A>
-<LI><A HREF="Handler.cpp">Handler.cpp</A>
-</UL>
-<P>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page10.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page10.html b/docs/tutorials/015/page10.html
deleted file mode 100644
index ad8e5276f57..00000000000
--- a/docs/tutorials/015/page10.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-And so finally we come to the Protocol_Stream. That, after all, is
-the focus of the entire tutorial but it took us half of the day to get
-here!
-<P>
-The Protocol_Stream uses an ACE_Stream to move an ACE_Message_Block
-through a series of tasks. Each task in the stream is responsible for
-performing some operation on the data in the message block. That is
-the nature of a protocol stream (or "stack" if you prefer). In this
-stream, the data is compressed and encrypted* on its way between
-peers. We also allow users of the stream to install a reader task to
-handle data that percolates up from the peer. As you saw a page or
-two ago, this is most useful for a server.
-
-<P>
-<font size=-1>*Again, I just pretend to do these things. It would
-take another day or two to go through any sort of reasonable
-encryption or compression!</font>
-<P>
-Before we get into the code, here's a picture that's shows what's
-going on here.
-<P><center><img src="stream.gif"></center></p>
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>PROTOCOL_STREAM_H</font>
-<font color=blue>#define</font> <font color=purple>PROTOCOL_STREAM_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Stream.h">ace/Stream.h</A>"
-
-<font color=red>// Shorthand for the stream.</font>
-typedef ACE_Stream&lt;ACE_MT_SYNCH> Stream;
-
-<font color=red>// Forward references to cut down on the number of <font color=blue>#include</font>s</font>
-class ACE_Message_Block;
-class Recv;
-class Protocol_Task;
-
-<font color=red>/* The Protocol_Stream provides a tidy interface to an ACE_Stream
- setup to process a data block through a series of protocol stages.
-*/</font>
-class Protocol_Stream
-{
-public:
- Protocol_Stream (void);
- ~Protocol_Stream (void);
-
- <font color=red>// Provide the stream with an ACE_SOCK_Stream on which it can</font>
- <font color=red>// communicate. If _reader is non-null, it will be added as the</font>
- <font color=red>// reader task just below the stream head so that it can process</font>
- <font color=red>// data read from the peer.</font>
- int open (ACE_SOCK_Stream &peer,
- Protocol_Task *reader = 0);
-
- <font color=red>// Close the stream. All of the tasks & modules will also be</font>
- <font color=red>// closed.</font>
- int close (void);
-
- <font color=red>// putting data onto the stream will pass it through all protocol</font>
- <font color=red>// levels and send it to the peer.</font>
- int put (ACE_Message_Block *&message,
- ACE_Time_Value *timeout = 0);
-
- <font color=red>// get will cause the Recv task (at the tail of the stream) to read</font>
- <font color=red>// some data from the peer and pass it upstream. The message block</font>
- <font color=red>// is then taken from the stream reader task's message queue.</font>
- int get (ACE_Message_Block *&response,
- ACE_Time_Value *timeout = 0);
-
- <font color=red>// Tell the Recv task to read some data and send it upstream. The</font>
- <font color=red>// data will pass through the protocol tasks and be queued into the</font>
- <font color=red>// stream head reader task's message queue. If you've installed a</font>
- <font color=red>// _reader in open() then that task's recv() method will see the</font>
- <font color=red>// message and may consume it instead of passing it to the stream</font>
- <font color=red>// head for queueing.</font>
- int get (void);
-
- ACE_SOCK_Stream &peer (void)
- {
- return this->peer_;
- }
-
-private:
- <font color=red>// Our peer connection</font>
- ACE_SOCK_Stream peer_;
-
- <font color=red>// The stream managing the various protocol tasks</font>
- Stream stream_;
-
- <font color=red>// A task which is capable of receiving data on a socket.</font>
- <font color=red>// Note that this is only useful by client-side applications.</font>
- Recv *recv_;
-
- Stream &stream (void)
- {
- return this->stream_;
- }
-
- <font color=red>// Install the protocol tasks into the stream.</font>
- int open (void);
-};
-
-<font color=blue>#endif</font> <font color=red>/* PROTOCOL_STREAM_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page11.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page11.html b/docs/tutorials/015/page11.html
deleted file mode 100644
index 76e646f2076..00000000000
--- a/docs/tutorials/015/page11.html
+++ /dev/null
@@ -1,221 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-And now the implementation of the Protocol_Stream. There are more
-lines of code here than we've seen so far but it still isn't
-complicated. The basic idea is to construct the ACE_Stream with our
-set of protocol objects that will manipulate the data. Our primary
-concern in this file is to get everything in the correct order!
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Protocol_Stream.h</font>"
-<font color=blue>#include</font> "<font color=green>Protocol_Task.h</font>"
-
-<font color=blue>#include</font> "<font color=green>Xmit.h</font>"
-<font color=blue>#include</font> "<font color=green>Recv.h</font>"
-
-<font color=blue>#include</font> "<font color=green>Compressor.h</font>"
-<font color=blue>#include</font> "<font color=green>Crypt.h</font>"
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Stream_Modules.h">ace/Stream_Modules.h</A>"
-
-<font color=red>/* You can choose at compile time to include/exclude the protocol
- pieces.
-*/</font>
-<font color=blue>#define</font> <font color=purple>ENABLE_COMPRESSION</font>
-<font color=blue>#define</font> <font color=purple>ENABLE_ENCRYPTION</font>
-
-<font color=red>// The usual typedefs to make things easier to type.</font>
-typedef ACE_Module&lt;ACE_MT_SYNCH> Module;
-typedef ACE_Thru_Task&lt;ACE_MT_SYNCH> Thru_Task;
-
-<font color=red>/* An ACE_Stream is a collection of ACE_Modules. You can think of it
- as a doubly-linked list if you like. Each Module contains two
- ACE_Task derivatives. One of these tasks is used when sending data
- "<font color=green>upstream</font>", the other is used for "<font color=green>downstream</font>" operation. In some
- cases, you'll only need to move data in one direction. To provide
- a placeholder for the other direction, ACE_Thru_Task can be used.
- ACE_Thru_Task responds to the put() by simply invoking put_next()
- to send the data to the next module.
- */</font>
-
-<font color=red>/* Do-nothing constructor and destructor
- */</font>
-
-<font color=#008888>Protocol_Stream::Protocol_Stream</font> (void)
-{
-}
-
-<font color=#008888>Protocol_Stream::~Protocol_Stream</font> (void)
-{
-}
-
-<font color=red>/* Even opening the stream is rather simple. The important thing to
- remember is that the modules you push onto the stream first will be
- at the tail (eg -- most downstream) end of things when you're
- done.
- */</font>
-int
-<font color=#008888>Protocol_Stream::open</font> (ACE_SOCK_Stream &peer,
- Protocol_Task *reader)
-{
- <font color=red>// Initialize our peer() to read/write the socket we're given</font>
- peer_.set_handle (peer.get_handle ());
-
- <font color=red>// Construct (and remember) the Recv object so that we can read from</font>
- <font color=red>// the peer().</font>
- ACE_NEW_RETURN (recv_,
- Recv ( this->peer ()),
- -1);
-
- <font color=red>// Add the transmit and receive tasks to the head of the stream. As</font>
- <font color=red>// we add more modules these will get pushed downstream and end up</font>
- <font color=red>// nearest the tail by the time we're done.</font>
- if (stream ().push (new Module ("<font color=green>Xmit/Recv</font>",
- new Xmit ( this->peer ()),
- recv_)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>stream().push(xmit/recv)</font>"),
- -1);
-
- <font color=red>// Add any other protocol tasks to the stream. Each one is added at</font>
- <font color=red>// the head. The net result is that Xmit/Recv are at the tail.</font>
- if (this->open () == -1)
- return -1;
-
- <font color=red>// If a reader task was provided then push that in as the upstream</font>
- <font color=red>// side of the next-to-head module. Any data read from the peer()</font>
- <font color=red>// will be sent through here last. Server applications will</font>
- <font color=red>// typically use this task to do the actual processing of data.</font>
- <font color=red>// Note the use of Thru_Task. Since a module must always have a</font>
- <font color=red>// pair of tasks we use this on the writer side as a no-op.</font>
- if (reader)
- {
- if (stream ().push (new Module ("<font color=green>Reader</font>",
- new Thru_Task (),
- reader)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>stream().push(reader)</font>"),
- -1);
- }
-
- return 0;
-}
-
-<font color=red>/* Add the necessary protocol objects to the stream. The way we're
- pushing things on we will compress the data before encrypting it.
-*/</font>
-int
-<font color=#008888>Protocol_Stream::open</font> (void)
-{
-<font color=blue>#if defined</font> (<font color=purple>ENABLE_ENCRYPTION</font>)
- if (stream ().push (new Module ("<font color=green>crypt</font>",
- new Crypt (),
- new Crypt ())) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>stream().push(crypt)</font>"),
- -1);
-<font color=blue>#endif</font> <font color=red>/* ENABLE_ENCRYPTION */</font>
-
-<font color=blue>#if defined</font> (<font color=purple>ENABLE_COMPRESSION</font>)
- if (stream ().push (new Module ("<font color=green>compress</font>",
- new Compressor (),
- new Compressor ())) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>stream().push(comprssor)</font>"),
- -1);
-<font color=blue>#endif</font> <font color=red>/* ENABLE_COMPRESSION */</font>
- return 0;
-}
-
-<font color=red>// Closing the Protocol_Stream is as simple as closing the ACE_Stream.</font>
-int
-<font color=#008888>Protocol_Stream::close</font> (void)
-{
- return stream ().close ();
-}
-
-<font color=red>// Simply pass the data directly to the ACE_Stream.</font>
-int
-<font color=#008888>Protocol_Stream::put</font> (ACE_Message_Block *&message,
- ACE_Time_Value *timeout)
-{
- return stream ().put (message,
- timeout);
-}
-
-<font color=red>/* Tell the Recv module to read some data from the peer and pass it
- upstream. Servers will typically use this method in a
- handle_input() method to tell the stream to get a client's request. */</font>
-
-int
-<font color=#008888>Protocol_Stream::get</font>(void)
-{
- <font color=red>// If there is no Recv module, we're in big trouble!</font>
- if (recv_ == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) No Recv object!\n</font>"),
- -1);
-
- <font color=red>// This tells the Recv module to go to it's peer() and read some</font>
- <font color=red>// data. Once read, that data will be pushed upstream. If there is</font>
- <font color=red>// a reader object then it will have a chance to process the data.</font>
- <font color=red>// If not, the received data will be available in the message queue</font>
- <font color=red>// of the stream head's reader object (eg --</font>
- <font color=red>// stream().head()->reader()->msg_queue()) and can be read with our</font>
- <font color=red>// other get() method below.</font>
- if (recv_->get () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) Cannot queue read request\n</font>"),
- -1);
-
- <font color=red>// For flexibility I've added an error() method to tell us if</font>
- <font color=red>// something bad has happened to the Recv object.</font>
- if (recv_->error ())
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) Recv object error!\n</font>"),
- -1);
-
- return 0;
-}
-
-<font color=red>/* Take a message block off of the stream head reader's message queue.
- If the queue is empty, use get() to read from the peer. This is
- most often used by client applications. Servers will generaly
- insert a reader that will prevent the data from getting all the way
- upstream to the head. */</font>
-int
-<font color=#008888>Protocol_Stream::get</font> (ACE_Message_Block *&response,
- ACE_Time_Value *timeout )
-{
- if (stream ().head ()->reader ()->msg_queue ()->is_empty ()
- && this->get () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) Cannot get data into the stream.\n</font>"),
- -1);
-
- return stream ().head ()->reader ()->getq (response,
- timeout);
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page12.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page12.html b/docs/tutorials/015/page12.html
deleted file mode 100644
index 8863a45fda9..00000000000
--- a/docs/tutorials/015/page12.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-A quick look at the Protocol_Task header...
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>PROTOCOL_TASK_H</font>
-<font color=blue>#define</font> <font color=purple>PROTOCOL_TASK_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Task.h">ace/Task.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=red>/* A typical ACE_Task&lt;> derivative that adds a few things appropriate
- to protocol stacks. To keep things a little simpler, we prevent
- activation of the task and just borrow the thread of control from
- the calling method in all cases.
-*/</font>
-class Protocol_Task : public ACE_Task&lt;ACE_MT_SYNCH>
-{
-public:
- typedef ACE_Task&lt;ACE_MT_SYNCH> inherited;
-
- Protocol_Task (void);
-
- ~Protocol_Task (void);
-
- <font color=red>// open() is invoked when the task is inserted into the stream.</font>
- virtual int open (void *arg);
-
- <font color=red>// close() is invoked when the stream is closed (flags will be set</font>
- <font color=red>// to '1') and when the svc() method exits (flags will be '0').</font>
- virtual int close (u_long flags);
-
- <font color=red>// As data travels through the stream, the put() method of each task</font>
- <font color=red>// is invoked to keep the data moving along.</font>
- virtual int put (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
- <font color=red>// We're obligated to provide this signature even though we won't be</font>
- <font color=red>// allowing this object to be activated.</font>
- virtual int svc (void);
-
-protected:
-
- <font color=red>// Called by put() or svc() as necessary to process a block of data.</font>
- int process (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
- <font color=red>// Tasks on the writer (downstream) side of the stream are called</font>
- <font color=red>// upon to send() data that will ultimately go to the peer.</font>
- virtual int send (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
- <font color=red>// Tasks on the reader (upstream) side will be receiving data that</font>
- <font color=red>// came from the peer.</font>
- virtual int recv (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
-};
-
-<font color=blue>#endif</font> <font color=red>/* PROTOCOL_TASK_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page13.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page13.html b/docs/tutorials/015/page13.html
deleted file mode 100644
index 74ce35e96fd..00000000000
--- a/docs/tutorials/015/page13.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The Protocol_Task implementation takes care of the open(), close(),
-put() and svc() methods so that derivatives can concentrate on the
-send() and recv() methods. After a while you find that most
-ACE_Task<> derivatives look very similar in the four basic methods and
-only need one or two additional to do any real work.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Protocol_Task.h</font>"
-<font color=blue>#include</font> "<A HREF="../../../ace/ACE.h">ace/ACE.h</A>"
-
-<font color=red>// Construct the object and remember the thread count.</font>
-<font color=#008888>Protocol_Task::Protocol_Task</font>(void)
-{
- ;
-}
-
-<font color=#008888>Protocol_Task::~Protocol_Task</font>(void)
-{
- ;
-}
-
-int <font color=#008888>Protocol_Task::open</font>(void *arg)
-{
- ACE_UNUSED_ARG(arg);
-
- return(0);
-}
-
-int <font color=#008888>Protocol_Task::close</font>(u_long flags)
-{
- ACE_UNUSED_ARG(flags);
- return 0;
-}
-
-<font color=red>/* When a message is put() onto the task, it's time to process() some data.
-*/</font>
-int <font color=#008888>Protocol_Task::put</font>(ACE_Message_Block *message,ACE_Time_Value *timeout)
-{
- return this->process(message,timeout);
-}
-
-<font color=red>/* Return an error since we don't want the task to ever be activated.
- */</font>
-int <font color=#008888>Protocol_Task::svc</font>(void)
-{
- return -1;
-}
-
-<font color=red>/* There's nothing really magic about process(). We just decide if
- we're moving data upstream or downstream and invoke the appropriate
- virtual function to handle it.
-*/</font>
-int <font color=#008888>Protocol_Task::process</font>(ACE_Message_Block * message, ACE_Time_Value *timeout)
-{
- if( this->is_writer() )
- {
- return this->send(message,timeout);
- }
-
- return this->recv(message,timeout);
-}
-
-<font color=red>/* We must insist that derivatives provide a meaningful overload for
- these methods. It's fairly common for ACE object methods to return
- an error when an overload is expected but the method cannot be
- safely made pure virtual.
- */</font>
-
-int <font color=#008888>Protocol_Task::send</font>(ACE_Message_Block *message,
- ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(message);
- ACE_UNUSED_ARG(timeout);
- return -1;
-}
-
-int <font color=#008888>Protocol_Task::recv</font>(ACE_Message_Block * message,
- ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(message);
- ACE_UNUSED_ARG(timeout);
- return -1;
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page14.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page14.html b/docs/tutorials/015/page14.html
deleted file mode 100644
index 735a6ee32ca..00000000000
--- a/docs/tutorials/015/page14.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The Xmit object knows how to send data to the peer. It sits at the
-tail of the stream and gets everything that flows down from the head.
-In keeping with the spirit of things, this object does only one thing
-and doesn't concern itself with anyone else' details.
-<P>
-The only thing you might want to do is combine it with Recv. Why?
-As you'll realize in a page or two, the Xmit and Recv objects must
-interact if you're going to ensure a safe transit. By having a single
-object it's easier to coordinate and maintain the interaction.
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>XMIT_H</font>
-<font color=blue>#define</font> <font color=purple>XMIT_h</font>
-
-<font color=blue>#include</font> "<font color=green>Protocol_Task.h</font>"
-
-<font color=red>// Forward reference reduces <font color=blue>#include</font> dependencies</font>
-class ACE_SOCK_Stream;
-
-<font color=red>/* A class suitable for sending data to a peer from within an
- ACE_Stream.
- */</font>
-class Xmit : public Protocol_Task
-{
-public:
- typedef Protocol_Task inherited;
-
- <font color=red>// We must be given a valid peer when constructed. Without that we</font>
- <font color=red>// don't know who to send data to.</font>
- Xmit (ACE_SOCK_Stream &peer);
- ~Xmit (void);
-
- <font color=red>// As you know, close() will be called in a couple of ways by the</font>
- <font color=red>// ACE framework. We use that opportunity to terminate the</font>
- <font color=red>// connection to the peer.</font>
- int close (u_long flags);
-
-protected:
-
- ACE_SOCK_Stream &peer (void)
- {
- return this->peer_;
- }
-
- <font color=red>// Send the data to the peer. By now it will have been completely</font>
- <font color=red>// protocol-ized by other tasks in the stream.</font>
- int send (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
-private:
- <font color=red>// A representation of the peer we're talking to.</font>
- ACE_SOCK_Stream &peer_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* XMIT_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page15.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page15.html b/docs/tutorials/015/page15.html
deleted file mode 100644
index 17c6fa772f3..00000000000
--- a/docs/tutorials/015/page15.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The implementation of Xmit isn't too complicated. If we choose to
-combine it with the Recv task we simply lift the recv() method from
-that object and drop it into this one.
-<P>
-Note that close() must decide if it's being called when the stream is
-shutdown or when it's svc() method exits. Since we tell the baseclass
-not to use any threads it's a safe bet that flags will always be
-non-zero. Still, it's good practice to plan for the future by
-checking the value.
-<P>
-Note also that when we send the data we prefix it with the data size.
-This let's our sibling Recv ensure that an entire block is received
-together. This can be very important for compression and encryption
-processes which typically work better with blocks of data instead of
-streams of data.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Xmit.h</font>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-
-<font color=red>/* Construct the object with the peer connection and choose not to
- activate ourselves into a dedicated thread. You might get some
- performance gain by activating but if you really want a
- multi-threaded apprroach you should handle that as a separate
- issue. Attempting to force threading at this level will likely
- cause more trouble than you want to deal with.
-*/</font>
-<font color=#008888>Xmit::Xmit</font>( ACE_SOCK_Stream & _peer )
- : Protocol_Task(), peer_(_peer)
-{
-}
-
-<font color=#008888>Xmit::~Xmit</font>(void)
-{
-}
-
-<font color=red>/* Check to see if we're being closed by the stream (flags != 0) or if
- we're responding to the exit of our svc() method.
-*/</font>
-int <font color=#008888>Xmit::close</font>(u_long flags)
-{
- <font color=red>// Take care of the baseclass closure.</font>
- int rval = <font color=#008888>inherited::close</font>(flags);
-
- <font color=red>// Only if we're being called at the stream shutdown do we close</font>
- <font color=red>// the peer connection. If, for some reason, we were activated</font>
- <font color=red>// into one or more threads we wouldn't want to close the pipe</font>
- <font color=red>// before all threads had a chance to flush their data.</font>
- if( flags )
- {
- peer().close();
- }
-
- return( rval );
-}
-
-<font color=red>/* Our overload of send() will take care of sending the data to the
- peer.
-*/</font>
-int <font color=#008888>Xmit::send</font>(ACE_Message_Block *message, ACE_Time_Value *timeout)
-{
- int rval;
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) <font color=#008888>Xmit::send</font>() sending (%s)(%d)\n</font>", message->rd_ptr(), message->length() ));
-
- <font color=red>/* Since we're going to be sending data that may have been
- compressed and encrypted it's probably important for the
- receiver to get an entire "<font color=green>block</font>" instead of having a
- partial read.
-
- For that reason, we'll send the length of the message block
- (in clear-text) to the peer so that it can then recv_n()
- the entire block contents in one read operation.
- */</font>
- char msize[32];
- sprintf(msize,"<font color=green>%d</font>",message->length());
-
- <font color=red>// Be sure we send the end-of-string NULL so that Recv will</font>
- <font color=red>// know when to stop assembling the length.</font>
- rval = this->peer().send_n( msize, strlen(msize)+1, 0, timeout );
-
- if( rval == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green><font color=#008888>Xmit::send</font>() Failed to send message size.</font>"), -1);
- }
-
- <font color=red>/* Now we send the actual data. If you're worried about
- network efficiency then you may choose to create one buffer
- containing msize and the message data and send it all at
- once.
- */</font>
- rval = this->peer().send_n( message->rd_ptr(), message->length(), 0, timeout );
-
- <font color=red>// Release the message block since we're done with it.</font>
- message->release();
-
- return( rval );
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page16.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page16.html b/docs/tutorials/015/page16.html
deleted file mode 100644
index 023fd224ee0..00000000000
--- a/docs/tutorials/015/page16.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-Recv is the sibling to Xmit. Again, they could be combined into a
-single object if you want.
-<P>
-An ACE_Stream is designed to handle downstream traffic very
-well. You put() data into it and it flows along towards the tail.
-However, there doesn't seem to be a way to put data in such that it
-will travel upstream. To get around that, I've added a get() method
-to Recv that will trigger a read on the socket. Recv will then put
-the data to the next upstream module and we're on our way. As noted
-earlier, that data will eventually show up either in the <i>reader</i>
-(if installed on the stream open()) or the stream head reader task's
-message queue.
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>RECV_H</font>
-<font color=blue>#define</font> <font color=purple>RECV_h</font>
-
-<font color=blue>#include</font> "<font color=green>Protocol_Task.h</font>"
-
-class ACE_SOCK_Stream;
-
-<font color=red>/* Get some data from the peer and send it upstream for
- de-protocol-ization.
-*/</font>
-class Recv : public Protocol_Task
-{
-public:
- typedef Protocol_Task inherited;
-
- <font color=red>// Give it someone to talk to...</font>
- Recv (ACE_SOCK_Stream &peer);
- ~Recv (void);
-
- <font color=red>// Trigger a read from the socket</font>
- int get (void);
-
- <font color=red>// In some cases it might be easier to check the "<font color=green>state</font>" of the Recv</font>
- <font color=red>// object than to rely on return codes filtering back to you.</font>
- int error (void)
- {
- return this->error_;
- }
-
-protected:
-
- ACE_SOCK_Stream &peer (void)
- {
- return this->peer_;
- }
-
- <font color=red>// The baseclass will trigger this when our get() method is called.</font>
- <font color=red>// A message block of the appropriate size is created, filled and</font>
- <font color=red>// passed up the stream.</font>
- int recv (ACE_Message_Block *message,
- ACE_Time_Value *timeout = 0);
-
-private:
- <font color=red>// Our endpoint</font>
- ACE_SOCK_Stream &peer_;
-
- <font color=red>// get() uses a bogus message block to cause the baseclass to invoke</font>
- <font color=red>// recv(). To avoid memory thrashing, we create that bogus message</font>
- <font color=red>// once and reuse it for the life of Recv.</font>
- ACE_Message_Block *tickler_;
-
- <font color=red>// Our error flag (duh)</font>
- int error_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* RECV_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page17.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page17.html b/docs/tutorials/015/page17.html
deleted file mode 100644
index 7d8d52bf788..00000000000
--- a/docs/tutorials/015/page17.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The Recv implementation is nearly as simple as Xmit. There's
-opportunity for error when we get the message size and we have to
-manage the lifetime of the tickler but other than that it's pretty
-basic stuff.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Recv.h</font>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-
-<font color=red>/* Construct the object with the peer reference and other appropriate
- initializations.
-*/</font>
-<font color=#008888>Recv::Recv</font>( ACE_SOCK_Stream & _peer )
- : Protocol_Task(), peer_(_peer), error_(0)
-{
- <font color=red>// Create the tickler that get() will use to trigger recv()</font>
- <font color=red>// through the baseclass. Since we're single-threaded this is</font>
- <font color=red>// probably overkill but it makes multi-threading easier if we</font>
- <font color=red>// choose to do that.</font>
- tickler_ = new ACE_Message_Block(1);
-}
-
-<font color=red>/* Be sure we manage the lifetime of the tickler to prevent a memory
- leak.
-*/</font>
-<font color=#008888>Recv::~Recv</font>(void)
-{
- tickler_->release();
-}
-
-<font color=red>/* By putting the tickler to ourselves we cause things to happen in
- the baseclass that will invoke recv(). If we know we're single
- threaded we could directly call recv() and be done with it but then
- we'd have to do something else if we're multi-threaded. Just let
- the baseclass worry about those things!
-*/</font>
-int <font color=#008888>Recv::get</font>(void)
-{
- return this->put( tickler_, 0 );
-}
-
-int <font color=#008888>Recv::recv</font>(ACE_Message_Block * message, ACE_Time_Value *timeout)
-{
- int rval;
-
- <font color=red>/* Xmit will send us the message length in clear-text. I
- assume that will be less than 32-bytes!
- */</font>
- char msize[32];
- int b = 0;
-
- <font color=red>/* Read from the socket one byte at a time until we see then
- end-of-string NULL character. Since the OS layers (at least
- in Unix) will provide some buffering this isn't as bad as
- it may seem at first.
-
- The byte-at-a-time recv breaks horribly on Win32 where the
- WFMO_Reactor is used. This is because the socket has been
- placed into non-blocking mode and only the recv() of the
- first byte will block. The solution is to use
- ACE_Select_Reactor which doesn't change the socket
- characteristics. We did that back in main(), so we should
- be in good shape now.
- */</font>
- do
- {
- rval = this->peer().recv( &msize[b], 1, timeout );
- if( rval == -1 )
- {
- error_ = 1;
- ACE_ERROR_RETURN ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green><font color=#008888>Recv::recv</font>() Failed to get message size.</font>"), -1);
- }
- }
- while( msize[b++] != 0 );
-
- int size = <font color=#008888>ACE_OS::atoi</font>(msize);
-
- <font color=red>// Make a block big enough to contain the data we'll read</font>
- message = new ACE_Message_Block( size );
-
- <font color=red>// Read the actual message data into our new message block</font>
- rval = this->peer().recv_n( message->wr_ptr(), size, 0, timeout );
-
- <font color=red>// If we got the data correctly then send it on upstream.</font>
- if( rval > 0 )
- {
- message->wr_ptr( rval );
- return( this->put_next( message ) );
- }
-
- <font color=red>// Something bad happend on the recv_n(). Set an error flag</font>
- <font color=red>// and return error.</font>
- error_ = 1;
-
- return( -1 );
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page18.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page18.html b/docs/tutorials/015/page18.html
deleted file mode 100644
index 00ceb114591..00000000000
--- a/docs/tutorials/015/page18.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-This and the next three pages present the protocol objects that
-provide compression and encryption. If you were hoping to learn the
-secrets of compression and encryption then I'm going to disappoint
-you. There are some really good libraries out there that do this
-stuff though and if anyone wants to integrate one of them into the
-tutorial I'll be glad to take it!
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>COMPRESSOR_H</font>
-<font color=blue>#define</font> <font color=purple>COMPRESSOR_h</font>
-
-<font color=blue>#include</font> "<font color=green>Protocol_Task.h</font>"
-
-<font color=red>/* A reallly dumb compression object. (It actually adds 3 bytes to
- every message block.)
-*/</font>
-class Compressor : public Protocol_Task
-{
-public:
-
- typedef Protocol_Task inherited;
-
- Compressor (void);
-
- ~Compressor (void);
-
-protected:
-
- <font color=red>// This is called when the compressor is on the downstream side.</font>
- <font color=red>// We'll take the message, compress it and move it along to the next</font>
- <font color=red>// module.</font>
- int send (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
- <font color=red>// This one is called on the upstream side. No surprise: we</font>
- <font color=red>// decompress the data and send it on up the stream.</font>
- int recv (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-};
-
-<font color=blue>#endif</font> <font color=red>/* COMPRESSOR_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page19.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page19.html b/docs/tutorials/015/page19.html
deleted file mode 100644
index c352e4d24a9..00000000000
--- a/docs/tutorials/015/page19.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-Here we implement the details of our compression. By having both
-compression and decompression in one object it's easier to keep track
-of implementation details. Splitting Xmit/Recv like I did will make
-things more difficult if something has to change in their interaction.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Compressor.h</font>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-
-<font color=#008888>Compressor::Compressor</font>( void )
- : Protocol_Task()
-{
- ;
-}
-
-<font color=#008888>Compressor::~Compressor</font>(void)
-{
- ;
-}
-
-<font color=red>/* This is where you insert your compression code. Most compressors
- want to work on a block of data instead of a byte-stream.
- Fortunately the message block has a block that can be compressed.
- Take a look at libz for a quick way to add compression to your
- apps
- */</font>
-int <font color=#008888>Compressor::send</font>(ACE_Message_Block *message, ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(message);
- ACE_UNUSED_ARG(timeout);
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) <font color=#008888>Compressor::send</font>() compressing (%s)\n</font>", message->rd_ptr() ));
-
- <font color=red>// Create a block to hold the compressed data. I belive libz</font>
- <font color=red>// recommends a buffer about 10-20% larger than the source.</font>
- <font color=red>// Other libraries/algorithms may have their own quirks.</font>
- ACE_Message_Block * compressed = new ACE_Message_Block(
- message->size() +16 );
-
- <font color=red>// Perform a bogus compression algorithm. 'CD' just tells me</font>
- <font color=red>// that this is compressed data and when we "<font color=green>decompress</font>" we'll</font>
- <font color=red>// look for this signature to validate the data received.</font>
- <font color=#008888>ACE_OS::sprintf</font>( compressed->wr_ptr(), "<font color=green>CD:%s</font>", message->rd_ptr() );
- compressed->wr_ptr( strlen(compressed->wr_ptr())+1 );
-
- <font color=red>// Send the compressed data down the stream to the next module</font>
- this->put_next( compressed );
-
- <font color=red>// We're done here.</font>
- message->release();
-
- return( 0 );
-}
-
-<font color=red>/* And here's the decompression side. We've written Xmit/Recv so that
- we're guaranteed to get an entire block of compressed data. If
- we'd used recv() in the Recv object then we might have gotten a
- partial block and that may not decompress very nicely.
- */</font>
-int <font color=#008888>Compressor::recv</font>(ACE_Message_Block *message, ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(message);
- ACE_UNUSED_ARG(timeout);
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) <font color=#008888>Compress::recv</font>() decompressing (%s)\n</font>", message->rd_ptr() ));
-
- <font color=red>// Room for the decompressed data. In the real world you</font>
- <font color=red>// would probably want to send the original (uncompressed)</font>
- <font color=red>// data size in the message. You can predict the maximum</font>
- <font color=red>// possible decompression size but it's cheap and easy just to</font>
- <font color=red>// send that along. Look again at how I do exacly that</font>
- <font color=red>// between Xmit and Recv.</font>
- ACE_Message_Block * decompressed = new ACE_Message_Block(
- message->size() + 16 );
-
- <font color=red>// Check for our signature. Even when you use a real</font>
- <font color=red>// compression algorithm you may want to include your own</font>
- <font color=red>// signature so that you can verify the block. It pays to be</font>
- <font color=red>// paranoid!</font>
- if( <font color=#008888>ACE_OS::strncmp</font>( message->rd_ptr(), "<font color=green>CD:</font>", 3 ) )
- {
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) Improperly encompressed data.\n</font>" ));
- message->release();
- return(-1);
- }
-
- <font color=red>// Skip past the signature before going any further.</font>
- message->rd_ptr( 3 );
-
- <font color=red>// Perform a bogus decompression algorithm. This is where you</font>
- <font color=red>// would feed to libz or your favorite decompressor. (It's</font>
- <font color=red>// costly but you could invoke popen() on gzip!)</font>
- <font color=#008888>ACE_OS::sprintf</font>( decompressed->wr_ptr(), "<font color=green>%s</font>", message->rd_ptr() );
- decompressed->wr_ptr( strlen(decompressed->wr_ptr())+1 );
-
- <font color=red>// Recv the decompressed data down the stream to the next module</font>
- this->put_next( decompressed );
-
- <font color=red>// We're done here.</font>
- message->release();
-
- return( 0 );
-}
-
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page20.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page20.html b/docs/tutorials/015/page20.html
deleted file mode 100644
index 4f2d5833320..00000000000
--- a/docs/tutorials/015/page20.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-While I might be able to come up with a competitive compressor, I
-don't have a snowball's chance to code up encryption. I'd be better
-off piping the data through the standard Unix crypt command.
-<P>
-So, while I was lazy with Compress, I'm realistic with Crypt. I'll
-show you the hooks and entry points and let someone else contribute an
-encryptor.
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>CRYPT_H</font>
-<font color=blue>#define</font> <font color=purple>CRYPT_h</font>
-
-<font color=blue>#include</font> "<font color=green>Protocol_Task.h</font>"
-
-<font color=red>/* An interface (adaptor) between your favorite encryption method and
- an ACE_Stream.
-*/</font>
-class Crypt : public Protocol_Task
-{
-public:
-
- typedef Protocol_Task inherited;
-
- Crypt (void);
-
- ~Crypt (void);
-
-protected:
-
- <font color=red>// Moving downstream will encrypt the data</font>
- int send (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-
- <font color=red>// And moving upstream will decrypt it.</font>
- int recv (ACE_Message_Block *message,
- ACE_Time_Value *timeout);
-};
-
-<font color=blue>#endif</font> <font color=red>/* CRYPT_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page21.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page21.html b/docs/tutorials/015/page21.html
deleted file mode 100644
index daf4d2bc065..00000000000
--- a/docs/tutorials/015/page21.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The encryption implementation isn't any smarter than that of the
-compressor. Still, the hooks are there for you to insert your
-favorite library.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Crypt.h</font>"
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Stream.h">ace/SOCK_Stream.h</A>"
-
-<font color=red>/* The expected constructor...
- */</font>
-<font color=#008888>Crypt::Crypt</font>( void )
- : Protocol_Task()
-{
-}
-
-<font color=#008888>Crypt::~Crypt</font>(void)
-{
-}
-
-<font color=red>/* To send the data we'll apply a signature and encryption.
- */</font>
-int <font color=#008888>Crypt::send</font>(ACE_Message_Block *message, ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(timeout);
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) <font color=#008888>Crypt::send</font>() encrypting (%s)\n</font>", message->rd_ptr() ));
-
- <font color=red>// I suspect that some encryptors might change the data size.</font>
- <font color=red>// It probably isn't safe to create a same-size destination buffer.</font>
- ACE_Message_Block * encrypted = new ACE_Message_Block(
- message->size() +16 );
-
- <font color=red>// Perform a bogus encryption algorithm and add our safety</font>
- <font color=red>// signature. Adding the original data size is also probably</font>
- <font color=red>// a good idea that I haven't encorporated here.</font>
- <font color=#008888>ACE_OS::sprintf</font>( encrypted->wr_ptr(), "<font color=green>ED:%s</font>", message->rd_ptr() );
- encrypted->wr_ptr( strlen(encrypted->wr_ptr())+1 );
-
- <font color=red>// Send the encrypted data down the stream to the next module</font>
- this->put_next( encrypted );
-
- <font color=red>// We're done here.</font>
- message->release();
-
- return( 0 );
-}
-
-<font color=red>/* The upstream movement requires that we decrypt what the peer has
- given us.
-*/</font>
-int <font color=#008888>Crypt::recv</font>(ACE_Message_Block *message, ACE_Time_Value *timeout)
-{
- ACE_UNUSED_ARG(timeout);
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) <font color=#008888>Crypt::recv</font>() decrypting (%s)\n</font>", message->rd_ptr() ));
-
- <font color=red>// Create a destination for the decrypted data. The same</font>
- <font color=red>// block size caveat exists of course.</font>
- ACE_Message_Block * decrypted = new ACE_Message_Block(
- message->size() +16 );
-
- <font color=red>// Check the signature as expected.</font>
- if( <font color=#008888>ACE_OS::strncmp</font>( message->rd_ptr(), "<font color=green>ED:</font>", 3 ) )
- {
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) Improperly encrypted data.\n</font>" ));
- message->release();
- return(-1);
- }
-
- <font color=red>// Don't forget to skip past the signature before decrypting</font>
- <font color=red>// or things will be quite exciting!</font>
- message->rd_ptr( 3 );
-
- <font color=red>// Perform a bogus decryption algorithm</font>
- <font color=#008888>ACE_OS::sprintf</font>( decrypted->wr_ptr(), "<font color=green>%s</font>", message->rd_ptr() );
- decrypted->wr_ptr( strlen(decrypted->wr_ptr())+1 );
-
- <font color=red>// Send the decrypted data down the stream to the next module</font>
- this->put_next( decrypted );
-
- <font color=red>// We're done here.</font>
- message->release();
-
- return( 0 );
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page22.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/015/page22.html b/docs/tutorials/015/page22.html
deleted file mode 100644
index abdf21976cd..00000000000
--- a/docs/tutorials/015/page22.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 015</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 015</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Building a protocol stream</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-Well, this has certainly been one of the more verbose tutorials to
-date. I must say "thanks" to everyone who stuck it out this far!
-<P>
-A quick review of what we've done:
-<UL>
-
-<LI>Create a simple client application and Client object that uses a
-Protocol Stream without really knowing how they work. The app (and
-object) rely on the public interface of the Protocol Stream to get the
-job done. At this level the protocol details are irrelevant.
-<P>
-<LI>Next, we create a simple server application and Server object
-similar to the client. The Protocol Stream is of course used and we
-have to know a little more so that we can insert a <i>reader</i> that
-will ultimately process the data from the client.
-<P>
-<LI>We then go into the details of the Protocol_Stream implementation
-and it's Protocol_Task object that forms the basis for the stream
-tasks. Each object is kept as small and simple as possible to improve
-reusability and future maintenance.
-<P>
-<LI>Finally, the individual protocol objects are discused. Separate
-objects for the peer interface were created as well as the bogus
-compressor and encryptor. The protocol can be extended or modified by
-creating new such objects and installing them in the Protocol_Stream's
-open() method.
-
-</UL>
-<P>
-
-It doesn't sound like much but it certainly took a bunch of files to
-get there. It's easy to get lost in the details when there's so much
-to cover so you're encouraged to go over things a couple of times.
-As always, enhancments of the tutorials is welcome!
-<P>
-Here's the complete file list:
-<UL>
-<LI><A HREF="client">Makefile</A>
-<P>
-<LI><A HREF="Makefile.client">client Makefile</A>
-<LI><A HREF="client.cpp">client.cpp</A>
-<LI><A HREF="Client_i.h">Client_i.h</A>
-<LI><A HREF="Client_i.cpp">Client_i.cpp</A>
-<P>
-<LI><A HREF="Makefile.server">Server Makefile</A>
-<LI><A HREF="server.cpp">server.cpp</A>
-<LI><A HREF="Server_i.h">Server_i.h</A>
-<LI><A HREF="Server_i.cpp">Server_i.cpp</A>
-<LI><A HREF="Handler.h">Handler.h</A>
-<LI><A HREF="Handler.cpp">Handler.cpp</A>
-<P>
-<LI><A HREF="Protocol_Stream.cpp">Protocol_Stream.cpp</A>
-<LI><A HREF="Protocol_Stream.h">Protocol_Stream.h</A>
-<LI><A HREF="Protocol_Task.cpp">Protocol_Task.cpp</A>
-<LI><A HREF="Protocol_Task.h">Protocol_Task.h</A>
-<P>
-<LI><A HREF="Xmit.cpp">Xmit.cpp</A>
-<LI><A HREF="Xmit.h">Xmit.h</A>
-<LI><A HREF="Recv.cpp">Recv.cpp</A>
-<LI><A HREF="Recv.h">Recv.h</A>
-<P>
-<LI><A HREF="Compressor.cpp">Compressor.cpp</A>
-<LI><A HREF="Compressor.h">Compressor.h</A>
-<LI><A HREF="Crypt.cpp">Crypt.cpp</A>
-<LI><A HREF="Crypt.h">Crypt.h</A>
-</UL>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/015/server.cpp b/docs/tutorials/015/server.cpp
deleted file mode 100644
index 6841a6c9b04..00000000000
--- a/docs/tutorials/015/server.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-
-// $Id$
-
-#include "Server_i.h"
-#include "ace/Select_Reactor.h"
-
-// A signal handler that will close the server object
-extern "C" void handler (int)
-{
- Server::close();
-}
-
-int main (int, char **)
-{
- /* On Win32, the WFMO reactor is used by default.
- Unfortunately, that causes the sockets to be put into
- non-blocking mode which will break Recv::recv(). To
- prevent that issue, I explicitly use the Select Reactor
- instead. I'll talk more about the "problem" in the Recv
- comments.
- */
-
- // First, we create a Select_Reactor that will do the work.
- // To keep things simple, I'll create it on the stack.
- ACE_Select_Reactor mySelectReactor;
-
- // Next, we need an ACE_Reactor that is the bridge between the
- // code and the real reactor. It is given a pointer to the
- // real reactor.
- ACE_Reactor myReactor (&mySelectReactor);
-
- // Finally, we set the singleton instance to use the reactor
- // we've created.
- ACE_Reactor::instance (&myReactor);
-
- // The server object that abstracts away all of the difficult parts.
- Server server;
-
- // Attempt to open the server. Like all good ACE-based
- // objects, we'll get -1 on failure.
- if( server.open() == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "server.open()"), -1);
- }
-
- // Install a signal handler for ^C so that we can exit gracefully
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGINT);
-
- // Run the server's main loop until we're interrupted
- if( server.run() == -1 )
- {
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "server.run()"), -1);
- }
-
- return 0;
-}
-
-/* These explicit instantiations were taken from an earlier tutorial.
- Your compiler may require others as well.
-*/
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor <Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor <Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
diff --git a/docs/tutorials/015/stream.gif b/docs/tutorials/015/stream.gif
deleted file mode 100644
index 856bb92eeb7..00000000000
--- a/docs/tutorials/015/stream.gif
+++ /dev/null
Binary files differ
diff --git a/docs/tutorials/016/016.dsp b/docs/tutorials/016/016.dsp
deleted file mode 100644
index 3adcf4cc9db..00000000000
--- a/docs/tutorials/016/016.dsp
+++ /dev/null
@@ -1,108 +0,0 @@
-# Microsoft Developer Studio Project File - Name="016" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=016 - 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 "016.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 "016.mak" CFG="016 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "016 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "016 - 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)" == "016 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "016 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"condition.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "016 - Win32 Release"
-# Name "016 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\condition.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Condition_i.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Condition_i.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/016/Condition_i.cpp b/docs/tutorials/016/Condition_i.cpp
deleted file mode 100644
index 20377f3c935..00000000000
--- a/docs/tutorials/016/Condition_i.cpp
+++ /dev/null
@@ -1,201 +0,0 @@
-
-// $Id$
-
-// Get or declaration
-#include "Condition_i.h"
-
-/* Initialize the condition variable and create the condition mutex.
- Since I don't have any guarantees on the order of member variable
- initialization, I have to new the condition mutex instead of
- simply constructing it.
- */
-Condition::Condition(value_t _value)
- : value_(_value)
-{
- condition_ = new condition_t( this->mutex() );
-}
-
-Condition::~Condition(void)
-{
- // Be sure we don't have a memeory leak
- delete condition_;
-}
-
-/* The cast operator is the easiest way to return a copy of the value
- to clients of the class. It also allows us to use a private method
- for getting a reference to the value when we need to modify it.
- */
-Condition::operator Condition::value_t (void)
-{
- // Place a guard around the variable so that it won't change as
- // we're copying it back to the client.
- guard_t guard(mutex_);
- return value();
-}
-
-/* Traditional prefix increment operator.
- We place a guard around the operation so that we don't collide with
- any other threads. After the modification, we broadcast() a
- condition change to any waiting threads. You can also use signal()
- but that will only tell one thread about the change. If that
- thread, in turn, invokes signal() then all threads will eventually
- find out. I just thought it would be easier to use broadcast() and
- be done with it.
- */
-Condition & Condition::operator++ (void)
-{
- guard_t guard(mutex_);
-
- ++value();
-
- condition().broadcast();
-
- return *this;
-}
-
-/* The remaining operators all follow the same pattern that we have
- above. They only differ in the modification they make to the value().
- */
-
-Condition & Condition::operator-- (void)
-{
- guard_t guard(mutex_);
-
- --value();
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & Condition::operator+= (int _inc)
-{
- guard_t guard(mutex_);
-
- value() += _inc;
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & Condition::operator-= (int _inc)
-{
- guard_t guard(mutex_);
-
- value() -= _inc;
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & Condition::operator*= (int _inc)
-{
- guard_t guard(mutex_);
-
- value() *= _inc;
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & Condition::operator/= (int _inc)
-{
- guard_t guard(mutex_);
-
- value() /= _inc;
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & Condition::operator%= (int _inc)
-{
- guard_t guard(mutex_);
-
- value() %= _inc;
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & Condition::operator= ( value_t _value )
-{
- guard_t guard(mutex_);
-
- value() = _value;
-
- condition().broadcast();
-
- return *this;
-}
-
-/* Now we get into the comparison area.
- Each one follows the pattern we've already established for
- waiters.
- */
-
-/*
- We begin with an equality operator that expects a function object.
- In the while() test we pass a copy of the value to the function
- object for evaluation. The object can then do any comparision it
- wants to check for a desired condition. When the function object
- returns non-zero, the condition is met and we leave.
- */
-int Condition::operator== ( Condition::Compare & _compare )
-{
- guard_t guard(mutex_);
-
- while( ! _compare(this->value()) )
- condition().wait();
-
- return 0;
-}
-
-// As long as the variable equals _value, we wait...
-int Condition::operator== ( value_t _value )
-{
- guard_t guard(mutex_);
-
- while( value() == _value )
- condition().wait();
-
- return 0;
-}
-
-// As long as the variable is not equal to _value, we wait...
-int Condition::operator!= ( value_t _value )
-{
- guard_t guard(mutex_);
-
- while( value() != _value )
- condition().wait();
-
- return 0;
-}
-
-// As long as the variable is less than or equal to _value, we wait...
-int Condition::operator<= ( value_t _value )
-{
- guard_t guard(mutex_);
-
- while( value() <= _value )
- condition().wait();
-
- return 0;
-}
-
-// As long as the variable is greater than or equal to _value, we wait...
-int Condition::operator>= ( value_t _value )
-{
- guard_t guard(mutex_);
-
- while( value() >= _value )
- condition().wait();
-
- return 0;
-}
diff --git a/docs/tutorials/016/Condition_i.h b/docs/tutorials/016/Condition_i.h
deleted file mode 100644
index 83f32489d20..00000000000
--- a/docs/tutorials/016/Condition_i.h
+++ /dev/null
@@ -1,154 +0,0 @@
-// $Id$
-
-#ifndef CONDITION_H
-#define CONDITION_H
-
-#include "ace/Synch.h"
-
-/** A wrapper for ACE_Condition<>. When you're using an
- ACE_Condition<> you have to have three things: - Some variable
- that embodies the condition you're looking for - A mutex to
- prevent simultaneous access to that variable from different
- threads - An ACE_Condition<> that enables blocking on state
- changes in the variable The class I create here will contain those
- three things. For the actual condition variable I've chosen an
- integer. You could easily turn this class into a template
- parameterized on the condition variable's data type if 'int' isn't
- what you want. */
-class Condition
-{
-public:
- // From here on I'll use value_t instead of 'int' to make any
- // future upgrades easier.
- typedef int value_t;
-
- // Initialize the condition variable
- Condition (value_t value = 0);
- ~Condition (void);
-
- /* I've created a number of arithmetic operators on the class that
- pass their operation on to the variable. If you turn this into a
- template then some of these may not be appropriate... For the
- ones that take a parameter, I've stuck with 'int' instead of
- 'value_t' to reinforce the fact that you'll need a close look at
- these if you choose to change the 'value_t' typedef. */
-
- // Increment & decrement
- Condition &operator++ (void);
- Condition &operator-- (void);
-
- // Increase & decrease
- Condition &operator+= (int inc);
- Condition &operator-= (int inc);
-
- // Just to be complete
- Condition &operator*= (int inc);
- Condition &operator/= (int inc);
- Condition &operator%= (int inc);
-
- // Set/Reset the condition variable's value
- Condition &operator= (value_t value);
-
- /* These four operators perform the actual waiting. For instance:
-
- operator!=(int _value)
-
- is implemented as:
-
- Guard guard(mutex_)
- while( value_ != _value )
- condition_.wait();
-
- This is the "typical" use for condition mutexes. Each of the
- operators below behaves this way for their respective
- comparisions.
-
- To use one of these in code, you would simply do:
-
- Condition mycondition;
- ...
- // Wait until the condition variable has the value 42
- mycondition != 42
- ... */
-
- // As long as the condition variable is NOT EQUAL TO <value>, we wait
- int operator!= (value_t value);
-
- // As long as the condition variable is EXACTLY EQUAL TO <value>, we
- // wait
- int operator== (value_t value);
-
- // As long as the condition variable is LESS THAN OR EQUAL TO
- // <value>, we wait
- int operator<= (value_t value);
-
- // As long as the condition variable is GREATER THAN OR EQUAL TO
- // <value>, we wait
- int operator>= (value_t value);
-
- // Return the value of the condition variable
- operator value_t (void);
-
- /* In addition to the four ways of waiting above, I've also create a
- method that will invoke a function object for each iteration of
- the while() loop. Derive yourself an object from
- Condition::Compare and overload operator()(value_t) to take
- advantage of this. Have the function return non-zero when you
- consider the condition to be met. */
- class Compare
- {
- public:
- virtual int operator() (value_t value) = 0;
- };
-
- /* Wait on the condition until _compare(value) returns non-zero.
- This is a little odd since we're not really testing equality.
- Just be sure that _compare(value_) will return non-zero when you
- consider the condition to be met. */
- int operator== (Compare & compare);
-
-private:
- // Prevent copy construction and assignment.
- Condition (const Condition &condition);
- Condition &operator= (const Condition &condition);
-
- /* Typedefs make things easier to change later.
- ACE_Condition_Thread_Mutex is used as a shorthand for
- ACE_Condition<ACE_Thread_Mutex> and also because it may provide
- optimizations we can use. */
- typedef ACE_Thread_Mutex mutex_t;
- typedef ACE_Condition_Thread_Mutex condition_t;
- typedef ACE_Guard<mutex_t> guard_t;
-
- // The mutex that keeps the data save
- mutex_t mutex_;
-
- // The condition mutex that makes waiting on the condition easier.
- condition_t *condition_;
-
- // The acutal variable that embodies the condition we're waiting
- // for.
- value_t value_;
-
- // Accessors for the two mutexes.
- mutex_t &mutex (void)
- {
- return this->mutex_;
- }
-
- condition_t &condition (void)
- {
- return *this->condition_;
- }
-
- // This particular accessor will make things much easier if we
- // decide that 'int' isn't the correct datatype for value_. Note
- // that we keep this private and force clients of the class to use
- // the cast operator to get a copy of the value.
- value_t &value (void)
- {
- return this->value_;
- }
-};
-
-#endif /* CONDITION_H */
diff --git a/docs/tutorials/016/Makefile b/docs/tutorials/016/Makefile
deleted file mode 100644
index f367f64df66..00000000000
--- a/docs/tutorials/016/Makefile
+++ /dev/null
@@ -1,77 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = condition
-
-FILES = Condition_i
-
-BUILD = $(VBIN)
-
-SRC = $(addsuffix .cpp,$(BIN))
-SRC += $(addsuffix .cpp,$(FILES))
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-rename : #
- for i in *.cxx ; do \
- n=`expr "$$i" : "\(.*\).cxx"` ;\
- mv $$i $$n.cpp ;\
- done
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre > combine.shar && $(RM) hdr bodies *.pre
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include .depend
diff --git a/docs/tutorials/016/combine.shar b/docs/tutorials/016/combine.shar
deleted file mode 100644
index ec4a311e54a..00000000000
--- a/docs/tutorials/016/combine.shar
+++ /dev/null
@@ -1,385 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/016'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 422 -rw-rw-r-- hdr
-# 51 -rw-rw-r-- bodies
-# 2905 -rw-rw-r-- page01.pre
-# 1349 -rw-rw-r-- page02.pre
-# 247 -rw-rw-r-- page03.pre
-# 310 -rw-rw-r-- page04.pre
-# 606 -rw-rw-r-- page05.pre
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh00306; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 016</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 016</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Making ACE_Condition easier to use</FONT></B></CENTER>
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-34600093c989939b7a2a6806f2b18f22 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 422 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '422,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-Condition_i.h
-Condition_i.cpp
-condition.cpp
-SHAR_EOF
- $shar_touch -am 1029153398 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-53b96616ae101b38fd1e30b2ab8707a2 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 51 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '51,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-The ACE framework has quite a few objects for syncronizing your
-threads and even processes. We've mentioned a few in passing already:
-X ACE_Thread_Mutex and ACE_Barrier for instance.
-<P>
-Another interesting one is the ACE_Condition template. By using an
-ACE_Condition you can have your code wait for an arbitrary condition
-to occur. That condition is "embodied" in a variable of your choice.
-That variable can, in turn, be any data type you wish. This makes
-ACE_Condition much more flexible than a simple mutex, barrier or
-semaphore.
-<P>
-In this tutorial, I'll create a wrapper class around the ACE_Condition
-and the assorted housekeeping items necessary to make it work. I'll
-use a simple integer as the condition variable but keep in mind that
-you can use any data type you want.
-<P>
-Kirthika's abstract:
-<ul>
-An ACE_Condition class is a synchronisation mechanism employed in
-situations where one or more threads cannot access the shared resource
-unless some 'condition' becomes true. The ACE_Condition is associated
-with a Mutex-lock which is released before blocking internally in the
-wait call. Once the blocked thread is signaled to wake up again it
-internally re-acquires the lock before checking the condition.
-Unless the condition is true and it has the lock, it cant go ahead.
-Once the shared resource is freed, a signal is sent to the waiting
-threads which can now contend for the lock and access the resource.
-<P>
-Pizza-delivery metaphor: (courtesy Dr.Schmidt)
-<ul>
-Pizza delivery boy -- thread<br>
-keys to delivery van -- mutex-lock<br>
-pizza ready for delivery -- condition<br>
-</Ul>
-Situation: <br>
-<ul>
-Five pizza delivery boys use the same van. While the van is
-unavailable, the boys go to sleep. When the van returns and the keys
-are returned, the current user of the van nudges the other sleeping boys
-to wake up and fight for the keys. Once the keys are obtained and the
-pizza
-is ready and out of the kitchen, the boy with the pizza and the keys can
-now deliver it.
-</ul>
-<P>
-This tutorial makes use of a wrapper class around the ACE_Condition and
-uses a integer value as the condition. The four kinds of condition
-implemented
-are: !=, >=, <=, == by using C++ operator overloading. Guards are used
-within
-the methods to make sure that the method is thread-safe. Once the thread
-completes
-its job, it broadcasts to the waiting on it.
-<P>
-An ACE_Task is used to stress test the various conditions.
-A test object is created for each condition and the main thread waits
-until the condition becomes true. For instance: <= condition:
-Five threads are spwaned which in turn increment the condition
-variable, which is initialised to 1 by 2. Remember that you are waiting
-on
-the <= condition. So once 3 threads have been thru it, the value becomes
-6
-and the condition becomes true!
-<P>
-This simple example shows us how to program and use the Condition
-variable for
-synchronisation.
-</ul>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-a6fd2e6607a2b96c93d8a829a1fb53cc page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 2905 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '2905,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-We'll look first at the declaration of the wrapper class.
-<P>
-The way you use ACE_Condition is something like this:
-<UL>
-<LI>First, the setup...
-<UL>
-<LI>Create a variable using your choice of data types
-<LI>Create a mutex that will provide thread-safe access to that
-variable
-<LI>Create an ACE_Condition that uses the mutex
-</UL>
-<P>
-<LI>Waiting for the condition...
-<UL>
-<PRE>
-the_mutex.acquire();
-while( the_variable != some_desired_state_or_value )
-X the_condition.wait();
-the_mutex.release();
-</PRE>
-Note that when <i>the_condition</i> is created, it must be given a
-reference to the mutex. That's because the wait() method will release
-the mutex before waiting and reacquire it after being signaled.
-</UL>
-<P>
-<LI>Setting the condition...
-<UL>
-<PRE>
-the_mutex.acquire();
-the_variable = some_new_value_or_state;
-the_condition.signal() <i>OR</i> the_condition.broadcast()
-</pre>
-</UL>
-</UL>
-<P>
-The problem I have is remembering to setup everything and co-ordinate
-the locking, waiting and signaling. Even if I remember it all
-correctly it just makes my application code more complex than it
-should be.
-<P>
-To help out with that, I've created the class below to encapsulate the
-three elements necessary for the condition to work. I've then added
-methods for manipulation of the condition variable and waiting for the
-condition to occur.
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-6c1b6e8f9597666558619d52c87be915 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 1349 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '1349,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-Ok, now we'll take a look at the definition of the class. You already
-know how to use an ACE_Condition & it's not really that difficult.
-Still, imagine how much more cluttered your code would be if it had to
-include the mess I've got below!
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-bdf2bed6845300288a14d1a41f6ef8a6 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 247 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '247,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-We finally get to the main() application. I create a simple Task
-derivative that will serve as a baseclass for other objects that test
-specific functions of the Condition class. Notice how easy it is to
-integrate a Condition into the application without keeping track of
-three related member variables.
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-a2b2c42216f88e006a18d37adcb31c1d page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 310 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '310,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-And that's all...
-<P>
-For general use, it would make sense to convert Condition into a
-template and get rid of some of the operators that don't make sense.
-Using an integer as the condition type probably isn't realistic since
-you could just use a semaphore or barrier for that case. Still, the
-Tutorial shows the basics and provides a foundation on which you can
-create a more useful class for your application.
-<P>
-<UL>
-<LI><A HREF="Condition_i.h">Condition_i.h</A>
-<LI><A HREF="Condition_i.cpp">Condition_i.cpp</A>
-<LI><A HREF="condition.cpp">condition.cpp</A>
-<LI><A HREF="Makefile">Makefile</A>
-</UL>
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-3926547773016bf56d809fae9170625e page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 606 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '606,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh00306
-exit 0
diff --git a/docs/tutorials/016/condition.cpp b/docs/tutorials/016/condition.cpp
deleted file mode 100644
index 39690ca689b..00000000000
--- a/docs/tutorials/016/condition.cpp
+++ /dev/null
@@ -1,252 +0,0 @@
-
-// $Id$
-
-#include "Condition_i.h"
-#include "ace/Task.h"
-
-/* In order to test our Condition we'll derive from ACE_Task<> so that
- we can have several threads accessing the condition variable
- together.
- */
-class Test : public ACE_Task<ACE_NULL_SYNCH>
-{
-public:
- // Construct the condition variable with an initial value.
- Test( int _max_threads, Condition::value_t _value );
- ~Test(void);
-
- // Open the Task with enough threads to make a useful test.
- int open(void);
-
-protected:
- // Each thread will do work on the Condition.
- int svc(void);
-
- // Override this method to modify the Condition in some way.
- virtual void modify(void) = 0;
-
- // Override this to test the Condition in some way.
- virtual void test(void) = 0;
-
- // How many threads to use in the test. This is also used in the
- // modify() and test() methods of the derivatives.
- int max_threads_;
-
- // We want to sleep for a random amount of time to simulate
- // work. The seed is necessary for proper random number generation.
- ACE_RANDR_TYPE seed_;
-
- // This is the actual condition variable set.
- Condition condition_;
-};
-
-// Initialize the condition variable.
-Test::Test( int _max_threads, Condition::value_t _value )
- : max_threads_(_max_threads), condition_(_value)
-{
- ;
-}
-
-Test::~Test(void)
-{
- ;
-}
-
-// Seed the random number generator and start the threads.
-int Test::open(void)
-{
- seed_ = ACE_OS::gettimeofday().usec();
-
- ACE_OS::srand( seed_ );
-
- // This is not a place where we want to use THR_DETACHED.
- // We're going to be waiting for our threads and if we detach
- // them, we'll loose track and horrible things will happen.
- return this->activate(THR_NEW_LWP, max_threads_);
-}
-
-/* Each thread will modify the condition variable in some way and then
- wait for the condition to be satisfied. The derived classes
- overload modify() and test() to implement a specific test of the
- Condition class.
- */
-int Test::svc(void)
-{
- // Take a moment before we modify the condition. This will
- // cause test() in other threads to delay a bit.
- int stime = ACE_OS::rand_r( seed_ ) % 5;
- ACE_OS::sleep(abs(stime)+2);
-
- ACE_DEBUG ((LM_INFO, "(%P|%t|%T)\tTest::svc() befor modify, condition_ is: %d\n", (int)condition_ ));
-
- // Change the condition variable's value
- modify();
-
- ACE_DEBUG ((LM_INFO, "(%P|%t|%T)\tTest::svc() after modify, condition_ is: %d\n", (int)condition_ ));
-
- // Test for the condition we want
- test();
-
- ACE_DEBUG ((LM_INFO, "(%P|%t|%T)\tTest::svc() leaving.\n" ));
-
- return(0);
-}
-
-/* Test Condition::operator!=()
- The task's svc() method will increment the condition variable and
- then wait until the variable's value reaches max_threads_.
- */
-class Test_ne : public Test
-{
-public:
- // Initialize the condition variable to zero since we're counting up.
- Test_ne( int _max_threads )
- : Test(_max_threads,0)
- {
- ACE_DEBUG ((LM_INFO, "\n(%P|%t|%T)\tTesting condition_ != %d\n", max_threads_));
- }
-
- // Increment the variable
- void modify(void)
- {
- ++condition_;
- }
-
- // Wait until it equals max_threads_
- void test(void)
- {
- condition_ != max_threads_;
- }
-};
-
-/* Test Condition::operator>=()
- Each svc() method will decrement the condition variable and wait
- until it is less than max_threads_. To do this correctly, we have
- to be careful where we start the condition variable.
- */
-class Test_ge : public Test
-{
-public:
- // For max_threads_ == 5, we will start the condition variable at
- // the value 9. When the "last" thread decrements it, the value
- // will be 4 which satisfies the condition.
- Test_ge( int _max_threads )
- : Test(_max_threads,_max_threads*2-1)
- {
- ACE_DEBUG ((LM_INFO, "\n(%P|%t|%T)\tTesting condition_ >= %d\n", max_threads_));
- }
-
- // Decrement by one...
- void modify(void)
- {
- --condition_;
- }
-
- // while( value >= max_threads_ ) wait();
- void test(void)
- {
- condition_ >= max_threads_;
- }
-};
-
-/* Test Condition::operator<=()
- This time we will increment the condition until it is greater than
- max_threads_. Again, we have to be careful where we start the
- value and how we increment.
- */
-class Test_le : public Test
-{
-public:
- // I'm starting the value at 1 so that if we increment by one in
- // each thread, the "last" thread (of 5) will set the value to
- // 6. Since I actually increment by 2, we could start somewhat lower.
- Test_le( int _max_threads )
- : Test( _max_threads, 1 )
- {
- ACE_DEBUG ((LM_INFO, "\n(%P|%t|%T)\tTesting condition_ <= %d\n", max_threads_));
- }
-
- // Try out Condition::operator+=(int)
- // This will cause the third thread to satisfy the condition.
- void modify(void)
- {
- condition_ += 2;
- }
-
- // while( value <= max_threads_ ) wait();
- void test(void)
- {
- condition_ <= max_threads_;
- }
-};
-
-/* For our final test, we'll go after Condition::operator=(Condition::Compare)
- By deriving from Condition::Compare we can perform any arbitrary
- test on the value of the condition variable.
- */
-class Test_fo : public Test
-{
-public:
- // We'll be using operator*=(int) to increment the condition
- // variable, so we need to start with a non-zero value.
- Test_fo( int _max_threads )
- : Test( _max_threads, 1 )
- {
- ACE_DEBUG ((LM_INFO, "\n(%P|%t|%T)\tTesting condition_ == FunctionObject\n" ));
- }
-
- // Double the value for each thread that we have.
- void modify(void)
- {
- condition_ *= 2;
- }
-
- /* Derive our CompareFunction and provide the operator() that
- performs our test. In this case, we'll compare the value to
- the number 32.
- */
- class CompareFunction : public Condition::Compare
- {
- public:
- // When this returns non-zero, the condition test operator
- // will unblock in each thread.
- // Note that 32 was chosen because 2**5 == 32. That is, the
- // fifth thread will modify() the value to 32.
- int operator() ( Condition::value_t _value )
- {
- return _value == 32;
- }
- };
-
- // Create the CompareFunction and wait for the condition variable
- // to reach the state we want.
- void test(void)
- {
- CompareFunction compare;
- condition_ == compare;
- }
-};
-
-/* In main() we just instantiate each of the four test objects that we
- created. After open()ing each, we wait() for it's threads to exit.
- */
-int main(int, char **)
-{
- Test_ne test_ne(5);
- test_ne.open();
- test_ne.wait();
-
- Test_ge test_ge(5);
- test_ge.open();
- test_ge.wait();
-
- Test_le test_le(5);
- test_le.open();
- test_le.wait();
-
- Test_fo test_fo(5);
- test_fo.open();
- test_fo.wait();
-
- return(0);
-}
diff --git a/docs/tutorials/016/page01.html b/docs/tutorials/016/page01.html
deleted file mode 100644
index 3bba1fd518b..00000000000
--- a/docs/tutorials/016/page01.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 016</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 016</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Making ACE_Condition easier to use</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The ACE framework has quite a few objects for syncronizing your
-threads and even processes. We've mentioned a few in passing already:
- ACE_Thread_Mutex and ACE_Barrier for instance.
-<P>
-Another interesting one is the ACE_Condition template. By using an
-ACE_Condition you can have your code wait for an arbitrary condition
-to occur. That condition is "embodied" in a variable of your choice.
-That variable can, in turn, be any data type you wish. This makes
-ACE_Condition much more flexible than a simple mutex, barrier or
-semaphore.
-<P>
-In this tutorial, I'll create a wrapper class around the ACE_Condition
-and the assorted housekeeping items necessary to make it work. I'll
-use a simple integer as the condition variable but keep in mind that
-you can use any data type you want.
-<P>
-Kirthika's abstract:
-<ul>
-An ACE_Condition class is a synchronisation mechanism employed in
-situations where one or more threads cannot access the shared resource
-unless some 'condition' becomes true. The ACE_Condition is associated
-with a Mutex-lock which is released before blocking internally in the
-wait call. Once the blocked thread is signaled to wake up again it
-internally re-acquires the lock before checking the condition.
-Unless the condition is true and it has the lock, it cant go ahead.
-Once the shared resource is freed, a signal is sent to the waiting
-threads which can now contend for the lock and access the resource.
-<P>
-Pizza-delivery metaphor: (courtesy Dr.Schmidt)
-<ul>
-Pizza delivery boy -- thread<br>
-keys to delivery van -- mutex-lock<br>
-pizza ready for delivery -- condition<br>
-</Ul>
-Situation: <br>
-<ul>
-Five pizza delivery boys use the same van. While the van is
-unavailable, the boys go to sleep. When the van returns and the keys
-are returned, the current user of the van nudges the other sleeping boys
-to wake up and fight for the keys. Once the keys are obtained and the
-pizza
-is ready and out of the kitchen, the boy with the pizza and the keys can
-now deliver it.
-</ul>
-<P>
-This tutorial makes use of a wrapper class around the ACE_Condition and
-uses a integer value as the condition. The four kinds of condition
-implemented
-are: !=, >=, <=, == by using C++ operator overloading. Guards are used
-within
-the methods to make sure that the method is thread-safe. Once the thread
-completes
-its job, it broadcasts to the waiting on it.
-<P>
-An ACE_Task is used to stress test the various conditions.
-A test object is created for each condition and the main thread waits
-until the condition becomes true. For instance: <= condition:
-Five threads are spwaned which in turn increment the condition
-variable, which is initialised to 1 by 2. Remember that you are waiting
-on
-the <= condition. So once 3 threads have been thru it, the value becomes
-6
-and the condition becomes true!
-<P>
-This simple example shows us how to program and use the Condition
-variable for
-synchronisation.
-</ul>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/016/page02.html b/docs/tutorials/016/page02.html
deleted file mode 100644
index e84ce3853ad..00000000000
--- a/docs/tutorials/016/page02.html
+++ /dev/null
@@ -1,220 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 016</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 016</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Making ACE_Condition easier to use</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-We'll look first at the declaration of the wrapper class.
-<P>
-The way you use ACE_Condition is something like this:
-<UL>
-<LI>First, the setup...
-<UL>
-<LI>Create a variable using your choice of data types
-<LI>Create a mutex that will provide thread-safe access to that
-variable
-<LI>Create an ACE_Condition that uses the mutex
-</UL>
-<P>
-<LI>Waiting for the condition...
-<UL>
-<PRE>
-the_mutex.acquire();
-while( the_variable != some_desired_state_or_value )
- the_condition.wait();
-the_mutex.release();
-</PRE>
-Note that when <i>the_condition</i> is created, it must be given a
-reference to the mutex. That's because the wait() method will implicitly release
-the mutex before waiting and reacquire it after being signaled.
-</UL>
-<P>
-<LI>Setting the condition...
-<UL>
-<PRE>
-the_mutex.acquire();
-the_variable = some_new_value_or_state;
-the_condition.signal() <i>OR</i> the_condition.broadcast()
-the_mutex.release();
-</pre>
-</UL>
-</UL>
-<P>
-The problem I have is remembering to setup everything and co-ordinate
-the locking, waiting and signaling. Even if I remember it all
-correctly it just makes my application code more complex than it
-should be.
-<P>
-To help out with that, I've created the class below to encapsulate the
-three elements necessary for the condition to work. I've then added
-methods for manipulation of the condition variable and waiting for the
-condition to occur.
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>CONDITION_H</font>
-<font color=blue>#define</font> <font color=purple>CONDITION_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Synch.h">ace/Synch.h</A>"
-
-<font color=red>/** A wrapper for ACE_Condition&lt;>. When you're using an
- ACE_Condition&lt;> you have to have three things: - Some variable
- that embodies the condition you're looking for - A mutex to
- prevent simultaneous access to that variable from different
- threads - An ACE_Condition&lt;> that enables blocking on state
- changes in the variable The class I create here will contain those
- three things. For the actual condition variable I've chosen an
- integer. You could easily turn this class into a template
- parameterized on the condition variable's data type if 'int' isn't
- what you want. */</font>
-class Condition
-{
-public:
- <font color=red>// From here on I'll use value_t instead of 'int' to make any</font>
- <font color=red>// future upgrades easier.</font>
- typedef int value_t;
-
- <font color=red>// Initialize the condition variable</font>
- Condition (value_t value = 0);
- ~Condition (void);
-
- <font color=red>/* I've created a number of arithmetic operators on the class that
- pass their operation on to the variable. If you turn this into a
- template then some of these may not be appropriate... For the
- ones that take a parameter, I've stuck with 'int' instead of
- 'value_t' to reinforce the fact that you'll need a close look at
- these if you choose to change the 'value_t' typedef. */</font>
-
- <font color=red>// Increment & decrement</font>
- Condition &operator++ (void);
- Condition &operator-- (void);
-
- <font color=red>// Increase & decrease</font>
- Condition &operator+= (int inc);
- Condition &operator-= (int inc);
-
- <font color=red>// Just to be complete</font>
- Condition &operator*= (int inc);
- Condition &operator/= (int inc);
- Condition &operator%= (int inc);
-
- <font color=red>// Set/Reset the condition variable's value</font>
- Condition &operator= (value_t value);
-
- <font color=red>/* These four operators perform the actual waiting. For instance:
-
- operator!=(int _value)
-
- is implemented as:
-
- Guard guard(mutex_)
- while( value_ != _value )
- condition_.wait();
-
- This is the "<font color=green>typical</font>" use for condition mutexes. Each of the
- operators below behaves this way for their respective
- comparisions.
-
- To use one of these in code, you would simply do:
-
- Condition mycondition;
- ...
- <font color=red>// Wait until the condition variable has the value 42</font>
- mycondition != 42
- ... */</font>
-
- <font color=red>// As long as the condition variable is NOT EQUAL TO &lt;value>, we wait</font>
- int operator!= (value_t value);
-
- <font color=red>// As long as the condition variable is EXACTLY EQUAL TO &lt;value>, we</font>
- <font color=red>// wait</font>
- int operator== (value_t value);
-
- <font color=red>// As long as the condition variable is LESS THAN OR EQUAL TO</font>
- <font color=red>// &lt;value>, we wait</font>
- int operator&lt;= (value_t value);
-
- <font color=red>// As long as the condition variable is GREATER THAN OR EQUAL TO</font>
- <font color=red>// &lt;value>, we wait</font>
- int operator>= (value_t value);
-
- <font color=red>// Return the value of the condition variable</font>
- operator value_t (void);
-
- <font color=red>/* In addition to the four ways of waiting above, I've also create a
- method that will invoke a function object for each iteration of
- the while() loop. Derive yourself an object from
- <font color=#008888>Condition::Compare</font> and overload operator()(value_t) to take
- advantage of this. Have the function return non-zero when you
- consider the condition to be met. */</font>
- class Compare
- {
- public:
- virtual int operator() (value_t value) = 0;
- };
-
- <font color=red>/* Wait on the condition until _compare(value) returns non-zero.
- This is a little odd since we're not really testing equality.
- Just be sure that _compare(value_) will return non-zero when you
- consider the condition to be met. */</font>
- int operator== (Compare & compare);
-
-private:
- <font color=red>// Prevent copy construction and assignment.</font>
- Condition (const Condition &condition);
- Condition &operator= (const Condition &condition);
-
- <font color=red>/* Typedefs make things easier to change later.
- ACE_Condition_Thread_Mutex is used as a shorthand for
- ACE_Condition&lt;ACE_Thread_Mutex> and also because it may provide
- optimizations we can use. */</font>
- typedef ACE_Thread_Mutex mutex_t;
- typedef ACE_Condition_Thread_Mutex condition_t;
- typedef ACE_Guard&lt;mutex_t> guard_t;
-
- <font color=red>// The mutex that keeps the data save</font>
- mutex_t mutex_;
-
- <font color=red>// The condition mutex that makes waiting on the condition easier.</font>
- condition_t *condition_;
-
- <font color=red>// The acutal variable that embodies the condition we're waiting</font>
- <font color=red>// for.</font>
- value_t value_;
-
- <font color=red>// Accessors for the two mutexes.</font>
- mutex_t &mutex (void)
- {
- return this->mutex_;
- }
-
- condition_t &condition (void)
- {
- return *this->condition_;
- }
-
- <font color=red>// This particular accessor will make things much easier if we</font>
- <font color=red>// decide that 'int' isn't the correct datatype for value_. Note</font>
- <font color=red>// that we keep this private and force clients of the class to use</font>
- <font color=red>// the cast operator to get a copy of the value.</font>
- value_t &value (void)
- {
- return this->value_;
- }
-};
-
-<font color=blue>#endif</font> <font color=red>/* CONDITION_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/016/page03.html b/docs/tutorials/016/page03.html
deleted file mode 100644
index 608eb388e5d..00000000000
--- a/docs/tutorials/016/page03.html
+++ /dev/null
@@ -1,226 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 016</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 016</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Making ACE_Condition easier to use</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-Ok, now we'll take a look at the definition of the class. You already
-know how to use an ACE_Condition & it's not really that difficult.
-Still, imagine how much more cluttered your code would be if it had to
-include the mess I've got below!
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=red>// Get or declaration</font>
-<font color=blue>#include</font> "<font color=green>Condition_i.h</font>"
-
-<font color=red>/* Initialize the condition variable and create the condition mutex.
- Since I don't have any guarantees on the order of member variable
- initialization, I have to new the condition mutex instead of
- simply constructing it.
- */</font>
-<font color=#008888>Condition::Condition</font>(value_t _value)
- : value_(_value)
-{
- condition_ = new condition_t( this->mutex() );
-}
-
-<font color=#008888>Condition::~Condition</font>(void)
-{
- <font color=red>// Be sure we don't have a memeory leak</font>
- delete condition_;
-}
-
-<font color=red>/* The cast operator is the easiest way to return a copy of the value
- to clients of the class. It also allows us to use a private method
- for getting a reference to the value when we need to modify it.
- */</font>
-<font color=#008888>Condition::operator</font> Condition::value_t (void)
-{
- <font color=red>// Place a guard around the variable so that it won't change as</font>
- <font color=red>// we're copying it back to the client.</font>
- guard_t guard(mutex_);
- return value();
-}
-
-<font color=red>/* Traditional prefix increment operator.
- We place a guard around the operation so that we don't collide with
- any other threads. After the modification, we broadcast() a
- condition change to any waiting threads. You can also use signal()
- but that will only tell one thread about the change. If that
- thread, in turn, invokes signal() then all threads will eventually
- find out. I just thought it would be easier to use broadcast() and
- be done with it.
- */</font>
-Condition & <font color=#008888>Condition::operator</font>++ (void)
-{
- guard_t guard(mutex_);
-
- ++value();
-
- condition().broadcast();
-
- return *this;
-}
-
-<font color=red>/* The remaining operators all follow the same pattern that we have
- above. They only differ in the modification they make to the value().
- */</font>
-
-Condition & <font color=#008888>Condition::operator</font>-- (void)
-{
- guard_t guard(mutex_);
-
- --value();
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & <font color=#008888>Condition::operator</font>+= (int _inc)
-{
- guard_t guard(mutex_);
-
- value() += _inc;
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & <font color=#008888>Condition::operator</font>-= (int _inc)
-{
- guard_t guard(mutex_);
-
- value() -= _inc;
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & <font color=#008888>Condition::operator</font>*= (int _inc)
-{
- guard_t guard(mutex_);
-
- value() *= _inc;
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & <font color=#008888>Condition::operator</font>/= (int _inc)
-{
- guard_t guard(mutex_);
-
- value() /= _inc;
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & <font color=#008888>Condition::operator</font>%= (int _inc)
-{
- guard_t guard(mutex_);
-
- value() %= _inc;
-
- condition().broadcast();
-
- return *this;
-}
-
-Condition & <font color=#008888>Condition::operator</font>= ( value_t _value )
-{
- guard_t guard(mutex_);
-
- value() = _value;
-
- condition().broadcast();
-
- return *this;
-}
-
-<font color=red>/* Now we get into the comparison area.
- Each one follows the pattern we've already established for
- waiters.
- */</font>
-
-<font color=red>/*
- We begin with an equality operator that expects a function object.
- In the while() test we pass a copy of the value to the function
- object for evaluation. The object can then do any comparision it
- wants to check for a desired condition. When the function object
- returns non-zero, the condition is met and we leave.
- */</font>
-int <font color=#008888>Condition::operator</font>== ( Condition::Compare & _compare )
-{
- guard_t guard(mutex_);
-
- while( ! _compare(this->value()) )
- condition().wait();
-
- return 0;
-}
-
-<font color=red>// As long as the variable equals _value, we wait...</font>
-int <font color=#008888>Condition::operator</font>== ( value_t _value )
-{
- guard_t guard(mutex_);
-
- while( value() == _value )
- condition().wait();
-
- return 0;
-}
-
-<font color=red>// As long as the variable is not equal to _value, we wait...</font>
-int <font color=#008888>Condition::operator</font>!= ( value_t _value )
-{
- guard_t guard(mutex_);
-
- while( value() != _value )
- condition().wait();
-
- return 0;
-}
-
-<font color=red>// As long as the variable is less than or equal to _value, we wait...</font>
-int <font color=#008888>Condition::operator</font>&lt;= ( value_t _value )
-{
- guard_t guard(mutex_);
-
- while( value() &lt;= _value )
- condition().wait();
-
- return 0;
-}
-
-<font color=red>// As long as the variable is greater than or equal to _value, we wait...</font>
-int <font color=#008888>Condition::operator</font>>= ( value_t _value )
-{
- guard_t guard(mutex_);
-
- while( value() >= _value )
- condition().wait();
-
- return 0;
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/016/page04.html b/docs/tutorials/016/page04.html
deleted file mode 100644
index 5b803954c34..00000000000
--- a/docs/tutorials/016/page04.html
+++ /dev/null
@@ -1,278 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 016</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 016</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Making ACE_Condition easier to use</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-We finally get to the main() application. I create a simple Task
-derivative that will serve as a baseclass for other objects that test
-specific functions of the Condition class. Notice how easy it is to
-integrate a Condition into the application without keeping track of
-three related member variables.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Condition_i.h</font>"
-<font color=blue>#include</font> "<A HREF="../../../ace/Task.h">ace/Task.h</A>"
-
-<font color=red>/* In order to test our Condition we'll derive from ACE_Task&lt;> so that
- we can have several threads accessing the condition variable
- together.
- */</font>
-class Test : public ACE_Task&lt;ACE_NULL_SYNCH>
-{
-public:
- <font color=red>// Construct the condition variable with an initial value.</font>
- Test( int _max_threads, <font color=#008888>Condition::value_t</font> _value );
- ~Test(void);
-
- <font color=red>// Open the Task with enough threads to make a useful test.</font>
- int open(void);
-
-protected:
- <font color=red>// Each thread will do work on the Condition.</font>
- int svc(void);
-
- <font color=red>// Override this method to modify the Condition in some way.</font>
- virtual void modify(void) = 0;
-
- <font color=red>// Override this to test the Condition in some way.</font>
- virtual void test(void) = 0;
-
- <font color=red>// How many threads to use in the test. This is also used in the</font>
- <font color=red>// modify() and test() methods of the derivatives.</font>
- int max_threads_;
-
- <font color=red>// We want to sleep for a random amount of time to simulate</font>
- <font color=red>// work. The seed is necessary for proper random number generation.</font>
- ACE_RANDR_TYPE seed_;
-
- <font color=red>// This is the actual condition variable set.</font>
- Condition condition_;
-};
-
-<font color=red>// Initialize the condition variable.</font>
-<font color=#008888>Test::Test</font>( int _max_threads, Condition::value_t _value )
- : max_threads_(_max_threads), condition_(_value)
-{
- ;
-}
-
-<font color=#008888>Test::~Test</font>(void)
-{
- ;
-}
-
-<font color=red>// Seed the random number generator and start the threads.</font>
-int <font color=#008888>Test::open</font>(void)
-{
- seed_ = <font color=#008888>ACE_OS::gettimeofday</font>().usec();
-
- <font color=#008888>ACE_OS::srand</font>( seed_ );
-
- <font color=red>// This is not a place where we want to use THR_DETACHED.</font>
- <font color=red>// We're going to be waiting for our threads and if we detach</font>
- <font color=red>// them, we'll loose track and horrible things will happen.</font>
- return this->activate(THR_NEW_LWP, max_threads_);
-}
-
-<font color=red>/* Each thread will modify the condition variable in some way and then
- wait for the condition to be satisfied. The derived classes
- overload modify() and test() to implement a specific test of the
- Condition class.
- */</font>
-int <font color=#008888>Test::svc</font>(void)
-{
- <font color=red>// Take a moment before we modify the condition. This will</font>
- <font color=red>// cause test() in other threads to delay a bit.</font>
- int stime = <font color=#008888>ACE_OS::rand_r</font>( seed_ ) % 5;
- <font color=#008888>ACE_OS::sleep</font>(abs(stime)+2);
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t|%T)\<font color=#008888>tTest::svc</font>() befor modify, condition_ is: %d\n</font>", (int)condition_ ));
-
- <font color=red>// Change the condition variable's value</font>
- modify();
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t|%T)\<font color=#008888>tTest::svc</font>() after modify, condition_ is: %d\n</font>", (int)condition_ ));
-
- <font color=red>// Test for the condition we want</font>
- test();
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t|%T)\<font color=#008888>tTest::svc</font>() leaving.\n</font>" ));
-
- return(0);
-}
-
-<font color=red>/* Test <font color=#008888>Condition::operator</font>!=()
- The task's svc() method will increment the condition variable and
- then wait until the variable's value reaches max_threads_.
- */</font>
-class Test_ne : public Test
-{
-public:
- <font color=red>// Initialize the condition variable to zero since we're counting up.</font>
- Test_ne( int _max_threads )
- : Test(_max_threads,0)
- {
- ACE_DEBUG ((LM_INFO, "<font color=green>\n(%P|%t|%T)\tTesting condition_ != %d\n</font>", max_threads_));
- }
-
- <font color=red>// Increment the variable</font>
- void modify(void)
- {
- ++condition_;
- }
-
- <font color=red>// Wait until it equals max_threads_</font>
- void test(void)
- {
- condition_ != max_threads_;
- }
-};
-
-<font color=red>/* Test <font color=#008888>Condition::operator</font>>=()
- Each svc() method will decrement the condition variable and wait
- until it is less than max_threads_. To do this correctly, we have
- to be careful where we start the condition variable.
- */</font>
-class Test_ge : public Test
-{
-public:
- <font color=red>// For max_threads_ == 5, we will start the condition variable at</font>
- <font color=red>// the value 9. When the "<font color=green>last</font>" thread decrements it, the value</font>
- <font color=red>// will be 4 which satisfies the condition.</font>
- Test_ge( int _max_threads )
- : Test(_max_threads,_max_threads*2-1)
- {
- ACE_DEBUG ((LM_INFO, "<font color=green>\n(%P|%t|%T)\tTesting condition_ >= %d\n</font>", max_threads_));
- }
-
- <font color=red>// Decrement by one...</font>
- void modify(void)
- {
- --condition_;
- }
-
- <font color=red>// while( value >= max_threads_ ) wait();</font>
- void test(void)
- {
- condition_ >= max_threads_;
- }
-};
-
-<font color=red>/* Test <font color=#008888>Condition::operator</font>&lt;=()
- This time we will increment the condition until it is greater than
- max_threads_. Again, we have to be careful where we start the
- value and how we increment.
- */</font>
-class Test_le : public Test
-{
-public:
- <font color=red>// I'm starting the value at 1 so that if we increment by one in</font>
- <font color=red>// each thread, the "<font color=green>last</font>" thread (of 5) will set the value to</font>
- <font color=red>// 6. Since I actually increment by 2, we could start somewhat lower.</font>
- Test_le( int _max_threads )
- : Test( _max_threads, 1 )
- {
- ACE_DEBUG ((LM_INFO, "<font color=green>\n(%P|%t|%T)\tTesting condition_ &lt;= %d\n</font>", max_threads_));
- }
-
- <font color=red>// Try out <font color=#008888>Condition::operator</font>+=(int)</font>
- <font color=red>// This will cause the third thread to satisfy the condition.</font>
- void modify(void)
- {
- condition_ += 2;
- }
-
- <font color=red>// while( value &lt;= max_threads_ ) wait();</font>
- void test(void)
- {
- condition_ &lt;= max_threads_;
- }
-};
-
-<font color=red>/* For our final test, we'll go after <font color=#008888>Condition::operator</font>=(Condition::Compare)
- By deriving from <font color=#008888>Condition::Compare</font> we can perform any arbitrary
- test on the value of the condition variable.
- */</font>
-class Test_fo : public Test
-{
-public:
- <font color=red>// We'll be using operator*=(int) to increment the condition</font>
- <font color=red>// variable, so we need to start with a non-zero value.</font>
- Test_fo( int _max_threads )
- : Test( _max_threads, 1 )
- {
- ACE_DEBUG ((LM_INFO, "<font color=green>\n(%P|%t|%T)\tTesting condition_ == FunctionObject\n</font>" ));
- }
-
- <font color=red>// Double the value for each thread that we have.</font>
- void modify(void)
- {
- condition_ *= 2;
- }
-
- <font color=red>/* Derive our CompareFunction and provide the operator() that
- performs our test. In this case, we'll compare the value to
- the number 32.
- */</font>
- class CompareFunction : public <font color=#008888>Condition::Compare</font>
- {
- public:
- <font color=red>// When this returns non-zero, the condition test operator</font>
- <font color=red>// will unblock in each thread.</font>
- <font color=red>// Note that 32 was chosen because 2**5 == 32. That is, the</font>
- <font color=red>// fifth thread will modify() the value to 32.</font>
- int operator() ( <font color=#008888>Condition::value_t</font> _value )
- {
- return _value == 32;
- }
- };
-
- <font color=red>// Create the CompareFunction and wait for the condition variable</font>
- <font color=red>// to reach the state we want.</font>
- void test(void)
- {
- CompareFunction compare;
- condition_ == compare;
- }
-};
-
-<font color=red>/* In main() we just instantiate each of the four test objects that we
- created. After open()ing each, we wait() for it's threads to exit.
- */</font>
-int main(int, char **)
-{
- Test_ne test_ne(5);
- test_ne.open();
- test_ne.wait();
-
- Test_ge test_ge(5);
- test_ge.open();
- test_ge.wait();
-
- Test_le test_le(5);
- test_le.open();
- test_le.wait();
-
- Test_fo test_fo(5);
- test_fo.open();
- test_fo.wait();
-
- return(0);
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/016/page05.html b/docs/tutorials/016/page05.html
deleted file mode 100644
index c48eb8d0fba..00000000000
--- a/docs/tutorials/016/page05.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 016</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 016</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Making ACE_Condition easier to use</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-And that's all...
-<P>
-For general use, it would make sense to convert Condition into a
-template and get rid of some of the operators that don't make sense.
-Using an integer as the condition type probably isn't realistic since
-you could just use a semaphore or barrier for that case. Still, the
-Tutorial shows the basics and provides a foundation on which you can
-create a more useful class for your application.
-<P>
-<UL>
-<LI><A HREF="Condition_i.h">Condition_i.h</A>
-<LI><A HREF="Condition_i.cpp">Condition_i.cpp</A>
-<LI><A HREF="condition.cpp">condition.cpp</A>
-<LI><A HREF="Makefile">Makefile</A>
-</UL>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/017/017.dsp b/docs/tutorials/017/017.dsp
deleted file mode 100644
index 932599a7a46..00000000000
--- a/docs/tutorials/017/017.dsp
+++ /dev/null
@@ -1,108 +0,0 @@
-# Microsoft Developer Studio Project File - Name="017" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=017 - 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 "017.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 "017.mak" CFG="017 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "017 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "017 - 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)" == "017 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "017 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"barrier.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "017 - Win32 Release"
-# Name "017 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\barrier.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Barrier_i.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Barrier_i.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/017/Barrier_i.cpp b/docs/tutorials/017/Barrier_i.cpp
deleted file mode 100644
index 0784205360a..00000000000
--- a/docs/tutorials/017/Barrier_i.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-
-// $Id$
-
-#include "Barrier_i.h"
-
-/* Initialize the threads_ count to zero and the barrier_ pointer to a
- safe value. At the same time, we remember the thread that created
- us so that we can allow it to change the thread count.
-*/
-Barrier::Barrier(void)
- : threads_(0)
- ,barrier_(0)
- ,new_barrier_(0)
-{
- owner_ = ACE_OS::thr_self();
-}
-
-/* Ensure that barrier_ get's deleted so that we don't have a memory leak.
- */
-Barrier::~Barrier(void)
-{
- delete barrier_;
-}
-
-void Barrier::owner( ACE_thread_t _owner )
-{
- owner_ = _owner;
-}
-
-// Report on the number of threads.
-u_int Barrier::threads(void)
-{
- return threads_.value();
-}
-
-/* Allow the owning thread to (re)set the number of threads.
- make_barrier() is called because it will wait() if we were already
- configured. Typical usage would be for the worker threads to
- wait() while the primary (eg -- owner) thread adjusts the thread
- count.
-
- For instance:
- In the worker threads:
- if( myBarrier.threads() != current_thread_count )
- myBarrier.wait();
-
- In the primary thread:
- if( myBarrier.threads() != current_thread_count )
- myBarrier.threads( current_thread_count, 1 );
- */
-int Barrier::threads( u_int _threads, int _wait )
-{
- if( ! ACE_OS::thr_equal(ACE_OS::thr_self(), owner_) )
- {
- return -1;
- }
-
- threads_ = _threads;
-
- return make_barrier(_wait);
-}
-
-/* Wait for all threads to synch if the thread count is valid. Note
- that barrier_ will be 0 if the threads() mutator has not been
- invoked.
-*/
-int Barrier::wait(void)
-{
- if( ! barrier_ )
- {
- return -1;
- }
-
- // If the threads() mutator has been used, new_barrier_ will
- // point to a new ACE_Barrier instance. We'll use a
- // traditional double-check here to move that new object into
- // place and cleanup the old one.
- if( new_barrier_ )
- {
- // mutex so that only one thread can do this part.
- ACE_Guard<ACE_Mutex> mutex(barrier_mutex_);
-
- // We only want the first thread to plug in the new barrier...
- if( new_barrier_ )
- {
- // out with the old and in with the new.
- delete barrier_;
- barrier_ = new_barrier_;
- new_barrier_ = 0;
- }
- }
-
- return barrier_->wait();
-}
-
-/* Wait for all threads to synch. As each thread passes wait(), it
- will decrement our thread counter. (That is why we had to make
- threads_ an atomic op.) When the last thread decrements the
- counter it will also delete the ACE_Barrier & free up a little
- memory.
-*/
-int Barrier::done(void)
-{
- if( this->wait() == -1 )
- {
- return -1;
- }
-
- --threads_;
-
- if( ! threads_.value() )
- {
- delete barrier_;
- barrier_ = 0;
- }
-
- return 0;
-}
-
-/* This will build the actual barrier. I broke this code out of the
- threads() mutator in case it might be useful elsewhere.
- If a barrier already exists, we will wait for all threads before
- creating a new one. This trait is what allows the threads mutator
- to be used as shown above.
- */
-int Barrier::make_barrier( int _wait )
-{
- // Ensure we have a valid thread count.
- if( ! threads_.value() )
- {
- return -1;
- }
-
- // If a barrier already exists, we'll arrange for it to be
- // replaced through the wait() method above.
- if( barrier_ )
- {
- // Create the new barrier that wait() will install for us.
- ACE_NEW_RETURN(new_barrier_,ACE_Barrier(threads_.value()),-1);
-
- // Wait for our siblings to synch before continuing
- if( _wait )
- {
- barrier_->wait();
- }
- }
- else
- {
- // Create the initial barrier.
- ACE_NEW_RETURN(barrier_,ACE_Barrier(threads_.value()),-1);
- }
-
- return 0;
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Atomic_Op <ACE_Mutex, u_int>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Atomic_Op <ACE_Mutex, u_int>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/docs/tutorials/017/Barrier_i.h b/docs/tutorials/017/Barrier_i.h
deleted file mode 100644
index 200f76464a3..00000000000
--- a/docs/tutorials/017/Barrier_i.h
+++ /dev/null
@@ -1,66 +0,0 @@
-// $Id$
-
-#ifndef BARRIER_H
-#define BARRIER_H
-
-#include "ace/Synch.h"
-
-/* Barrier is a simple wrapper for the ACE_Barrier synchronization
- class. The ACE_Barrier is already pretty easy to use but I thought
- I'd wrap it up to create just a bit more abstraction at the
- application level. */
-
-class Barrier
-{
-public:
- // Basic constructor and destructor. If you only need to synch the
- // start of your threads, you can safely delete your Barrier object
- // after invoking done(). Of course, you should be careful to only
- // delete the object once!
- Barrier (void);
- ~Barrier (void);
-
- // Set and get the number of threads that the barrier will manage.
- // If you add or remove threads to your application at run-time you
- // can use the mutator to reflect that change. Note, however, that
- // you can only do that from the thread which first created the
- // Barrier. (This is a limitation of my Barrier object, not the
- // ACE_Barrier.) The optional _wait parameter will cause wait() to
- // be invoked if there is already a valid threads value.
- int threads (u_int threads, int wait = 0);
- u_int threads (void);
-
- // Wait for all threads to reach the point where this is invoked.
- // Because of the snappy way in which ACE_Barrier is implemented,
- // you can invoke these back-to-back with no ill-effects.
- int wait (void);
-
- // done() will invoke wait(). Before returning though, it will
- // delete the barrier_ pointer below to reclaim some memory.
- int done (void);
-
- // Reset the owning thread of the barrier.
- void owner( ACE_thread_t _owner );
-
-protected:
- // The number of threads we're synching
- ACE_Atomic_Op<ACE_Mutex, u_int> threads_;
-
- // The ACE_Barrier that does all of the work
- ACE_Barrier *barrier_;
-
- // If we mutate the number of threads we have to do some black magic
- // to make sure there isn't a memory leak. These two member
- // variables are a part of that magic.
- ACE_Barrier *new_barrier_;
- ACE_Mutex barrier_mutex_;
-
- // The thread which created the Barrier in the first place. Only
- // this thread can change the threads_ value.
- ACE_thread_t owner_;
-
- // An internal method that constructs the barrier_ as needed.
- int make_barrier (int wait);
-};
-
-#endif /* BARRIER_H */
diff --git a/docs/tutorials/017/Makefile b/docs/tutorials/017/Makefile
deleted file mode 100644
index 21e349dd929..00000000000
--- a/docs/tutorials/017/Makefile
+++ /dev/null
@@ -1,77 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = barrier barrier2
-
-FILES = Barrier_i
-
-BUILD = $(VBIN)
-
-LSRC = $(addsuffix .cpp,$(BIN))
-SRC = $(addsuffix .cpp,$(FILES))
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-rename : #
- for i in *.cxx ; do \
- n=`expr "$$i" : "\(.*\).cxx"` ;\
- mv $$i $$n.cpp ;\
- done
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../007/fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include .depend
diff --git a/docs/tutorials/017/barrier.cpp b/docs/tutorials/017/barrier.cpp
deleted file mode 100644
index 93caedee8b3..00000000000
--- a/docs/tutorials/017/barrier.cpp
+++ /dev/null
@@ -1,166 +0,0 @@
-
-// $Id$
-
-#include "Barrier_i.h"
-#include "ace/Task.h"
-
-/* We'll use a simple Task<> derivative to test our new Barrier
- object.
-*/
-class Test : public ACE_Task<ACE_NULL_SYNCH>
-{
-public:
-
- // Construct the object with a desired thread count
- Test(int _threads);
-
- // Open/begin the test. As usual, we have to match the
- // ACE_Task signature.
- int open(void * _unused = 0);
-
- // Change the threads_ value for the next invocation of open()
- void threads(int _threads);
-
- // Get the current threads_ value.
- int threads(void);
-
- // Perform the test
- int svc(void);
-
-protected:
- // How many threads the barrier will test.
- int threads_;
-
- // The Barrier object we'll use in our tests below
- Barrier barrier_;
-};
-
-/* Construct the object & initialize the threads value for open() to
- use.
-*/
-Test::Test(int _threads)
- : threads_(_threads)
-{
-}
-
-/* As usual, our open() will create one or more threads where we'll do
- the interesting work.
-*/
-int Test::open(void * _unused)
-{
- ACE_UNUSED_ARG(_unused);
-
- // One thing about the barrier: You have to tell it how many
- // threads it will be synching. The threads() mutator on my
- // Barrier class lets you do that and hides the implementation
- // details at the same time.
- barrier_.threads(threads_);
-
- // Activate the tasks as usual... Like the other cases where
- // we're joining (or waiting for) our threads, we can't use
- // THR_DETACHED.
- return this->activate(THR_NEW_LWP, threads_);
-}
-
-void Test::threads(int _threads)
-{
- threads_ = _threads;
-}
-
-int Test::threads(void)
-{
- return threads_;
-}
-
-/* svc() will execute in each thread & do a few things with the
- Barrier we have.
- */
-int Test::svc(void)
-{
- ACE_DEBUG ((LM_INFO, "(%P|%t|%T)\tTest::svc() Entry\n"));
-
- // Initialize the random number generator. We'll use this to
- // create sleep() times in each thread. This will help us see
- // if the barrier synch is working.
- ACE_Time_Value now(ACE_OS::gettimeofday());
- ACE_RANDR_TYPE seed = now.usec();
- ACE_OS::srand(seed);
- int delay;
-
- // After saying hello above, sleep for a random amount of time
- // from 1 to 6 seconds. That will cause the next message
- // "Entering wait()" to be staggered on the output as each
- // thread's sleep() returns.
- delay = ACE_OS::rand_r(seed)%5;
- ACE_OS::sleep(abs(delay)+1);
-
- // When executing the app you should see these messages
- // staggered in an at-most 6 second window. That is, you
- // won't likely see them all at once.
- ACE_DEBUG ((LM_INFO, "(%P|%t|%T)\tTest::svc() Entering wait()\n"));
-
- // All of the threads will now wait at this point. As each
- // thread finishes the sleep() above it will join the waiters.
- if( barrier_.wait() == -1 )
- {
- ACE_DEBUG ((LM_INFO, "(%P|%t|%T)\tbarrier_.wait() failed!\n"));
- return 0;
- }
-
- // When all threads have reached wait() they will give us this
- // message. If you execute this, you should see all of the
- // "Everybody together" messages at about the same time.
- ACE_DEBUG ((LM_INFO, "(%P|%t|%T)\tTest::svc() Everybody together?\n"));
-
- // Now we do the sleep() cycle again...
- delay = ACE_OS::rand_r(seed)%5;
- ACE_OS::sleep(abs(delay)+1);
-
- // As before, these will trickle in over a few seconds.
- ACE_DEBUG ((LM_INFO, "(%P|%t|%T)\tTest::svc() Entering done()\n"));
-
- // This time we call done() instead of wait(). done()
- // actually invokes wait() but before returning here, it will
- // clean up a few resources. The goal is to prevent carrying
- // around objects you don't need.
- if( barrier_.done() == -1 )
- {
- ACE_DEBUG ((LM_INFO, "(%P|%t|%T)\tbarrier_.done() failed!\n"));
- return 0;
- }
-
- // Since done() invokes wait() internally, we'll see this
- // message from each thread simultaneously
- ACE_DEBUG ((LM_INFO, "(%P|%t|%T)\tTest::svc() Is everyone still here?\n"));
-
- // A final sleep()
- delay = ACE_OS::rand_r(seed)%5;
- ACE_OS::sleep(abs(delay)+1);
-
- // These should be randomly spaced like all of the other
- // post-sleep messages.
- ACE_DEBUG ((LM_INFO, "(%P|%t|%T)\tTest::svc() Chaos and anarchy for all!\n"));
-
- return(0);
-}
-
-/* Our test application...
- */
-int main(int, char**)
-{
- // Create the test object with 10 threads
- Test test(10);
-
- // and open it to test the barrier.
- test.open();
- // Now wait for them all to exit.
- test.wait();
-
- // Re-open the Test object with just 5 threads
- test.threads(5);
- test.open();
- // and wait for them to complete also.
- test.wait();
-
- return(0);
-}
diff --git a/docs/tutorials/017/barrier2.cpp b/docs/tutorials/017/barrier2.cpp
deleted file mode 100644
index 2ed76decc34..00000000000
--- a/docs/tutorials/017/barrier2.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-
-// $Id$
-
-#include "Barrier_i.h"
-#include "ace/Task.h"
-
-/* We'll use a simple Task<> derivative to test our new Barrier
- object.
-*/
-class Test : public ACE_Task<ACE_NULL_SYNCH>
-{
-public:
-
- // Construct the object with a desired thread count
- Test(int _threads);
-
- // Open/begin the test. As usual, we have to match the
- // ACE_Task signature.
- int open(void * _unused = 0);
-
- // Change the threads_ value for the next invocation of open()
- void threads(int _threads);
-
- // Get the current threads_ value.
- int threads(void);
-
- // Perform the test
- int svc(void);
-
-protected:
- // How many threads the barrier will test.
- u_int threads_;
-
- // The Barrier object we'll use in our tests below
- Barrier barrier_;
-
- // This lets us pick one (eg -- the first) thread as the
- // "controller" for our little test...
- ACE_Atomic_Op<ACE_Mutex,u_int> tcount_;
-};
-
-/* Construct the object & initialize the threads value for open() to
- use.
-*/
-Test::Test(int _threads)
- : threads_(_threads), tcount_(0)
-{
-}
-
-/* As usual, our open() will create one or more threads where we'll do
- the interesting work.
-*/
-int Test::open(void * _unused)
-{
- ACE_UNUSED_ARG(_unused);
-
- // One thing about the barrier: You have to tell it how many
- // threads it will be synching. The threads() mutator on my
- // Barrier class lets you do that and hides the implementation
- // details at the same time.
- barrier_.threads(threads_);
-
- // Activate the tasks as usual...
- return this->activate(THR_NEW_LWP, threads_, 1);
-}
-
-void Test::threads(int _threads)
-{
- threads_ = _threads;
-}
-
-int Test::threads(void)
-{
- return threads_;
-}
-
-/* svc() will execute in each thread & do a few things with the
- Barrier we have.
- */
-int Test::svc(void)
-{
- // Say hello to everyone first.
- ACE_DEBUG(( LM_INFO, "(%P|%t|%T) Created\n" ));
-
- // Increment and save the "tcount" value. We'll use it in
- // just a moment...
- int me = ++tcount_;
-
- // Wait for all initial threads to get to this point before we
- // go any further. This is standard barrier usage...
- barrier_.wait();
-
- // Setup our random number generator.
- ACE_Time_Value now(ACE_OS::gettimeofday());
- ACE_RANDR_TYPE seed = now.usec();
- ACE_OS::srand(seed);
- int delay;
-
- // We'll arbitrarily choose the first activated thread to be
- // the controller. After it sleeps a few seconds, it will add
- // five threads.
- if( me == 1 )
- {
- // Sleep from 1 to 10 seconds so that some of the other
- // threads will be into their for() loop.
- delay = ACE_OS::rand_r(seed)%10;
- ACE_OS::sleep(abs(delay)+1);
-
- // Make ourselves the barrier owner so that we can change
- // the number of threads. This should be done with care...
- barrier_.owner( ACE_OS::thr_self() );
-
- // Add 5 threads to the barrier and then activate() to
- // make them real. Notice the third parameter to
- // activate(). Without this parameter, the threads won't
- // be created.
- if( barrier_.threads(threads_+5) == 0 )
- {
- this->activate(THR_NEW_LWP,5,1);
- }
- }
-
- // This for() loop represents an "infinite" work loop in an
- // application. The theory is that the threads are dividing up
- // some work but need to "recalibrate" if more threads are
- // added. I'll just do five iterations so that the test
- // doesn't run forever.
- int i;
- for( i = 0 ; i < 5 ; ++i )
- {
- // The sleep() represents time doing work.
- delay = ACE_OS::rand_r(seed)%7;
- ACE_OS::sleep(abs(delay)+1);
-
- ACE_DEBUG(( LM_INFO, "(%P|%t|%T)\tThread %.2d of %.2d iteration %.2d\n", me, threads_, i ));
-
- // If the local threads_ variable doesn't match the number
- // in the barrier, then the controller must have changed
- // the thread count. We'll wait() for everyone and then
- // recalibrate ourselves before continuing.
- if( this->threads_ != barrier_.threads() )
- {
- ACE_DEBUG(( LM_INFO, "(%P|%t|%T) Waiting for thread count to increase to %d from %d\n",
- barrier_.threads(), this->threads_ ));
-
- // Wait for all our sibling threads...
- barrier_.wait();
-
- // Set our local variable so that we don't come here again.
- this->threads_ = barrier_.threads();
-
- // Recalibration can be anything you want. At this
- // point, we know that all of the threads are synch'd
- // and ready to go.
- }
- }
-
- // Re-synch all of the threads before they exit. This isn't
- // really necessary but I like to do it.
- barrier_.done();
-
- return(0);
-}
-
-/* Our test application...
- */
-int main(int, char**)
-{
- // Create the test object with 5 threads
- Test test(5);
-
- // and open it to test the barrier.
- test.open();
- // Now wait for them all to exit.
- test.wait();
-
- return(0);
-}
diff --git a/docs/tutorials/017/combine.shar b/docs/tutorials/017/combine.shar
deleted file mode 100644
index c50680b0bd2..00000000000
--- a/docs/tutorials/017/combine.shar
+++ /dev/null
@@ -1,380 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/017'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 422 -rw-rw-r-- hdr
-# 65 -rw-rw-r-- bodies
-# 1393 -rw-rw-r-- page01.pre
-# 420 -rw-rw-r-- page02.pre
-# 736 -rw-rw-r-- page03.pre
-# 479 -rw-rw-r-- page04.pre
-# 375 -rw-rw-r-- page05.pre
-# 374 -rw-rw-r-- page06.pre
-# 216 -rw-rw-r-- page05.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh00331; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 017</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 017</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Using the ACE_Barrier synch object</FONT></B></CENTER>
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-9991b747f6aff75784cbeb88a79c06fc hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 422 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '422,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-barrier.cpp
-Barrier_i.h
-Barrier_i.cpp
-PAGE=6
-barrier2.cpp
-SHAR_EOF
- $shar_touch -am 0224165499 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-95ff65d56968b60df92224ca27a34387 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 65 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '65,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-The ACE_Barrier implements the barrier synchronization pattern.
-<P>
-That's nice. What does it mean?
-<P>
-What it means is that you can use the ACE_Barrier to cause a set of
-threads to all wait at a specific point in your application. In other
-words: the threads reach a barrier that none can pass until all are
-present.
-<P>
-This would typically be used in scientific applications where a set of
-threads are all working in parallel on some great computation but they
-have to synch and summarize before continuing to the next stage of calculation. With
-proper use of ACE_Barrier, the threads can easily synch before
-continuing.
-<P>
-In this tutorial I'll create a simple wrapper for the ACE_Barrier. In
-reality, the ACE_Barrier is so easy that a wrapper isn't really
-needed. I created the wrapper anyway though just because I wanted to.
-<P>
-Kirthika's abstract:
-<ul>
-The ACE_Barrier class is used for collective thread syncronisation. All
-the threads block at the barrier and advance only after everyone is at
-the
-barrier. A thread blocks by calling the wait() method and stays until
-all the other threads invoke wait() one-by-one at the barrier and then
-all
-move ahead.
-Here, an abstract barrier class is created which incorporates the
-ACE_Barrier
-mechanism and is used in a test case of an ACE_Task with 10 and 5
-threads respectively
-which illustrate the use of the barrier pattern.
-</ul>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-6d94644272d64ed997ae76b98475d84e page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 1393 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '1393,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-First, lets take a look at the main() routine and how it will use the
-Barrier wrapper class. A simple ACE_Task derivative is used so that
-we can perform work in multiple threads. These threads will use the
-barrier to synch in a couple of places.
-<P>
-Obviously this isn't a very realistic example but you should be able
-to get the idea of how to use a Barrier without getting hung up in
-application-level details.
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-9e2b4b85abf1bff15b94b6d20bc20f91 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 420 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '420,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-The Barrier class used by the test task is a simple wrapper around
-ACE_Barrier. One of the things about ACE_Barrier is that you have to
-tell it how many threads it will be managing. Since that number
-usually isn't known when you create your Task derivative, you have to
-dynamically allocate the ACE_Barrier. My Barrier wrapper takes care
-of that for you and even provides for a clean way to delete the
-ACE_Barrier instance if you want to save a few bytes.
-<P>
-An interesting extension of this Barrier class would be to wrap it up
-in a smart pointer. You could then have the Barrier destructor invoke
-wait() as a now-protected method. The result would allow you to treat
-the Barrier object almost as a "synchronization guard".
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-4d6cead716800d7625b2a903d0df1b34 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 736 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '736,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-The Barrier implementation is quite simple. The threads() mutator
-took a couple of tries to get right. In particular, be sure you know
-when to apply the _wait paramter and when not to! In fact, the
-requirement that only the "owning" thread can change the thread count
-is rather limiting. A more appropriate solution would allow any
-thread to safely change the count but that would require more complex
-locking that is just a bit more than what I wanted to present here.
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-0c46b51370a57179cea56ef57fd0b1f4 page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 479 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '479,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-Well, that's it for the simple Barrier Tutorial. I encourage you to
-try it out and see what you like and dislike. Any improvements or
-enhancements will gladly be integrated into the Tutorial.
-<P>
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="barrier.cpp">barrier.cpp</A>
-<LI><A HREF="Barrier_i.h">Barrier_i.h</A>
-<LI><A HREF="Barrier_i.cpp">Barrier_i.cpp</A>
-</UL>
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-616a2293adddb11896d28c7172436a65 page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 375 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '375,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-I could have included this in the first Test object of the tutorial
-but that may have complicated things a bit. What we're doing here is
-recognizing when the "owner" thread adds more threads to the pool.
-When we notice that, we use the barrier to wait until everything
-stabilizes and then we recalibrate and move on.
-<P>
-The source is <A HREF="barrier2.cpp">here</A>.
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-0e05cdb27f2d6bfda8fc2246ed981aab page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 374 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '374,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pst ==============
-if test -f 'page05.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pst' &&
-<HR>
-Before we call it a wrap though, there's one more thing I want to show
-you. Remember the comments around Barrier::threads()? On the next
-page, I'll show you how to synch up when the number of threads changes.
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pst' &&
- chmod 0664 'page05.pst' ||
- $echo 'restore of' 'page05.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pst:' 'MD5 check failed'
-4f18e2b82827f498992bd11b36c4ca09 page05.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pst'`"
- test 216 -eq "$shar_count" ||
- $echo 'page05.pst:' 'original size' '216,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh00331
-exit 0
diff --git a/docs/tutorials/017/page01.html b/docs/tutorials/017/page01.html
deleted file mode 100644
index a2ff33ca8ca..00000000000
--- a/docs/tutorials/017/page01.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 017</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 017</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Using the ACE_Barrier synch object</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The ACE_Barrier implements the barrier synchronization pattern.
-<P>
-That's nice. What does it mean?
-<P>
-What it means is that you can use the ACE_Barrier to cause a set of
-threads to all wait at a specific point in your application. In other
-words: the threads reach a barrier that none can pass until all are
-present.
-<P>
-This would typically be used in scientific applications where a set of
-threads are all working in parallel on some great computation but they
-have to synch and summarize before continuing to the next stage of calculation. With
-proper use of ACE_Barrier, the threads can easily synch before
-continuing.
-<P>
-In this tutorial I'll create a simple wrapper for the ACE_Barrier. In
-reality, the ACE_Barrier is so easy that a wrapper isn't really
-needed. I created the wrapper anyway though just because I wanted to.
-<P>
-Kirthika's abstract:
-<ul>
-The ACE_Barrier class is used for collective thread syncronisation. All
-the threads block at the barrier and advance only after everyone is at
-the
-barrier. A thread blocks by calling the wait() method and stays until
-all the other threads invoke wait() one-by-one at the barrier and then
-all
-move ahead.
-Here, an abstract barrier class is created which incorporates the
-ACE_Barrier
-mechanism and is used in a test case of an ACE_Task with 10 and 5
-threads respectively
-which illustrate the use of the barrier pattern.
-</ul>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/017/page02.html b/docs/tutorials/017/page02.html
deleted file mode 100644
index 81aeb9d0b8b..00000000000
--- a/docs/tutorials/017/page02.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 017</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 017</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Using the ACE_Barrier synch object</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-First, lets take a look at the main() routine and how it will use the
-Barrier wrapper class. A simple ACE_Task derivative is used so that
-we can perform work in multiple threads. These threads will use the
-barrier to synch in a couple of places.
-<P>
-Obviously this isn't a very realistic example but you should be able
-to get the idea of how to use a Barrier without getting hung up in
-application-level details.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Barrier_i.h</font>"
-<font color=blue>#include</font> "<A HREF="../../../ace/Task.h">ace/Task.h</A>"
-
-<font color=red>/* We'll use a simple Task&lt;> derivative to test our new Barrier
- object.
-*/</font>
-class Test : public ACE_Task&lt;ACE_NULL_SYNCH>
-{
-public:
-
- <font color=red>// Construct the object with a desired thread count</font>
- Test(int _threads);
-
- <font color=red>// Open/begin the test. As usual, we have to match the</font>
- <font color=red>// ACE_Task signature.</font>
- int open(void * _unused = 0);
-
- <font color=red>// Change the threads_ value for the next invocation of open()</font>
- void threads(int _threads);
-
- <font color=red>// Get the current threads_ value.</font>
- int threads(void);
-
- <font color=red>// Perform the test</font>
- int svc(void);
-
-protected:
- <font color=red>// How many threads the barrier will test.</font>
- int threads_;
-
- <font color=red>// The Barrier object we'll use in our tests below</font>
- Barrier barrier_;
-};
-
-<font color=red>/* Construct the object & initialize the threads value for open() to
- use.
-*/</font>
-<font color=#008888>Test::Test</font>(int _threads)
- : threads_(_threads)
-{
-}
-
-<font color=red>/* As usual, our open() will create one or more threads where we'll do
- the interesting work.
-*/</font>
-int <font color=#008888>Test::open</font>(void * _unused)
-{
- ACE_UNUSED_ARG(_unused);
-
- <font color=red>// One thing about the barrier: You have to tell it how many</font>
- <font color=red>// threads it will be synching. The threads() mutator on my</font>
- <font color=red>// Barrier class lets you do that and hides the implementation</font>
- <font color=red>// details at the same time.</font>
- barrier_.threads(threads_);
-
- <font color=red>// Activate the tasks as usual... Like the other cases where</font>
- <font color=red>// we're joining (or waiting for) our threads, we can't use</font>
- <font color=red>// THR_DETACHED.</font>
- return this->activate(THR_NEW_LWP, threads_);
-}
-
-void <font color=#008888>Test::threads</font>(int _threads)
-{
- threads_ = _threads;
-}
-
-int <font color=#008888>Test::threads</font>(void)
-{
- return threads_;
-}
-
-<font color=red>/* svc() will execute in each thread & do a few things with the
- Barrier we have.
- */</font>
-int <font color=#008888>Test::svc</font>(void)
-{
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t|%T)\<font color=#008888>tTest::svc</font>() Entry\n</font>"));
-
- <font color=red>// Initialize the random number generator. We'll use this to</font>
- <font color=red>// create sleep() times in each thread. This will help us see</font>
- <font color=red>// if the barrier synch is working.</font>
- ACE_Time_Value now(<font color=#008888>ACE_OS::gettimeofday</font>());
- ACE_RANDR_TYPE seed = now.usec();
- <font color=#008888>ACE_OS::srand</font>(seed);
- int delay;
-
- <font color=red>// After saying hello above, sleep for a random amount of time</font>
- <font color=red>// from 1 to 6 seconds. That will cause the next message</font>
- <font color=red>// "<font color=green>Entering wait()</font>" to be staggered on the output as each</font>
- <font color=red>// thread's sleep() returns.</font>
- delay = <font color=#008888>ACE_OS::rand_r</font>(seed)%5;
- <font color=#008888>ACE_OS::sleep</font>(abs(delay)+1);
-
- <font color=red>// When executing the app you should see these messages</font>
- <font color=red>// staggered in an at-most 6 second window. That is, you</font>
- <font color=red>// won't likely see them all at once.</font>
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t|%T)\<font color=#008888>tTest::svc</font>() Entering wait()\n</font>"));
-
- <font color=red>// All of the threads will now wait at this point. As each</font>
- <font color=red>// thread finishes the sleep() above it will join the waiters.</font>
- if( barrier_.wait() == -1 )
- {
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t|%T)\tbarrier_.wait() failed!\n</font>"));
- return 0;
- }
-
- <font color=red>// When all threads have reached wait() they will give us this</font>
- <font color=red>// message. If you execute this, you should see all of the</font>
- <font color=red>// "<font color=green>Everybody together</font>" messages at about the same time.</font>
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t|%T)\<font color=#008888>tTest::svc</font>() Everybody together?\n</font>"));
-
- <font color=red>// Now we do the sleep() cycle again...</font>
- delay = <font color=#008888>ACE_OS::rand_r</font>(seed)%5;
- <font color=#008888>ACE_OS::sleep</font>(abs(delay)+1);
-
- <font color=red>// As before, these will trickle in over a few seconds.</font>
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t|%T)\<font color=#008888>tTest::svc</font>() Entering done()\n</font>"));
-
- <font color=red>// This time we call done() instead of wait(). done()</font>
- <font color=red>// actually invokes wait() but before returning here, it will</font>
- <font color=red>// clean up a few resources. The goal is to prevent carrying</font>
- <font color=red>// around objects you don't need.</font>
- if( barrier_.done() == -1 )
- {
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t|%T)\tbarrier_.done() failed!\n</font>"));
- return 0;
- }
-
- <font color=red>// Since done() invokes wait() internally, we'll see this</font>
- <font color=red>// message from each thread simultaneously</font>
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t|%T)\<font color=#008888>tTest::svc</font>() Is everyone still here?\n</font>"));
-
- <font color=red>// A final sleep()</font>
- delay = <font color=#008888>ACE_OS::rand_r</font>(seed)%5;
- <font color=#008888>ACE_OS::sleep</font>(abs(delay)+1);
-
- <font color=red>// These should be randomly spaced like all of the other</font>
- <font color=red>// post-sleep messages.</font>
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t|%T)\<font color=#008888>tTest::svc</font>() Chaos and anarchy for all!\n</font>"));
-
- return(0);
-}
-
-<font color=red>/* Our test application...
- */</font>
-int main(int, char**)
-{
- <font color=red>// Create the test object with 10 threads</font>
- Test test(10);
-
- <font color=red>// and open it to test the barrier.</font>
- test.open();
- <font color=red>// Now wait for them all to exit.</font>
- test.wait();
-
- <font color=red>// Re-open the Test object with just 5 threads</font>
- test.threads(5);
- test.open();
- <font color=red>// and wait for them to complete also.</font>
- test.wait();
-
- return(0);
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/017/page03.html b/docs/tutorials/017/page03.html
deleted file mode 100644
index cb1a7182512..00000000000
--- a/docs/tutorials/017/page03.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 017</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 017</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Using the ACE_Barrier synch object</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The Barrier class used by the test task is a simple wrapper around
-ACE_Barrier. One of the things about ACE_Barrier is that you have to
-tell it how many threads it will be managing. Since that number
-usually isn't known when you create your Task derivative, you have to
-dynamically allocate the ACE_Barrier. My Barrier wrapper takes care
-of that for you and even provides for a clean way to delete the
-ACE_Barrier instance if you want to save a few bytes.
-<P>
-An interesting extension of this Barrier class would be to wrap it up
-in a smart pointer. You could then have the Barrier destructor invoke
-wait() as a now-protected method. The result would allow you to treat
-the Barrier object almost as a "synchronization guard".
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>BARRIER_H</font>
-<font color=blue>#define</font> <font color=purple>BARRIER_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Synch.h">ace/Synch.h</A>"
-
-<font color=red>/* Barrier is a simple wrapper for the ACE_Barrier synchronization
- class. The ACE_Barrier is already pretty easy to use but I thought
- I'd wrap it up to create just a bit more abstraction at the
- application level. */</font>
-
-class Barrier
-{
-public:
- <font color=red>// Basic constructor and destructor. If you only need to synch the</font>
- <font color=red>// start of your threads, you can safely delete your Barrier object</font>
- <font color=red>// after invoking done(). Of course, you should be careful to only</font>
- <font color=red>// delete the object once!</font>
- Barrier (void);
- ~Barrier (void);
-
- <font color=red>// Set and get the number of threads that the barrier will manage.</font>
- <font color=red>// If you add or remove threads to your application at run-time you</font>
- <font color=red>// can use the mutator to reflect that change. Note, however, that</font>
- <font color=red>// you can only do that from the thread which first created the</font>
- <font color=red>// Barrier. (This is a limitation of my Barrier object, not the</font>
- <font color=red>// ACE_Barrier.) The optional _wait parameter will cause wait() to</font>
- <font color=red>// be invoked if there is already a valid threads value.</font>
- int threads (u_int threads, int wait = 0);
- u_int threads (void);
-
- <font color=red>// Wait for all threads to reach the point where this is invoked.</font>
- <font color=red>// Because of the snappy way in which ACE_Barrier is implemented,</font>
- <font color=red>// you can invoke these back-to-back with no ill-effects.</font>
- int wait (void);
-
- <font color=red>// done() will invoke wait(). Before returning though, it will</font>
- <font color=red>// delete the barrier_ pointer below to reclaim some memory.</font>
- int done (void);
-
- <font color=red>// Reset the owning thread of the barrier.</font>
- void owner( ACE_thread_t _owner );
-
-protected:
- <font color=red>// The number of threads we're synching</font>
- ACE_Atomic_Op&lt;ACE_Mutex, u_int> threads_;
-
- <font color=red>// The ACE_Barrier that does all of the work</font>
- ACE_Barrier *barrier_;
-
- <font color=red>// If we mutate the number of threads we have to do some black magic</font>
- <font color=red>// to make sure there isn't a memory leak. These two member</font>
- <font color=red>// variables are a part of that magic.</font>
- ACE_Barrier *new_barrier_;
- ACE_Mutex barrier_mutex_;
-
- <font color=red>// The thread which created the Barrier in the first place. Only</font>
- <font color=red>// this thread can change the threads_ value.</font>
- ACE_thread_t owner_;
-
- <font color=red>// An internal method that constructs the barrier_ as needed.</font>
- int make_barrier (int wait);
-};
-
-<font color=blue>#endif</font> <font color=red>/* BARRIER_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/017/page04.html b/docs/tutorials/017/page04.html
deleted file mode 100644
index 01aea4ed8c4..00000000000
--- a/docs/tutorials/017/page04.html
+++ /dev/null
@@ -1,188 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 017</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 017</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Using the ACE_Barrier synch object</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The Barrier implementation is quite simple. The threads() mutator
-took a couple of tries to get right. In particular, be sure you know
-when to apply the _wait paramter and when not to! In fact, the
-requirement that only the "owning" thread can change the thread count
-is rather limiting. A more appropriate solution would allow any
-thread to safely change the count but that would require more complex
-locking that is just a bit more than what I wanted to present here.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Barrier_i.h</font>"
-
-<font color=red>/* Initialize the threads_ count to zero and the barrier_ pointer to a
- safe value. At the same time, we remember the thread that created
- us so that we can allow it to change the thread count.
-*/</font>
-<font color=#008888>Barrier::Barrier</font>(void)
- : threads_(0)
- ,barrier_(0)
- ,new_barrier_(0)
-{
- owner_ = <font color=#008888>ACE_OS::thr_self</font>();
-}
-
-<font color=red>/* Ensure that barrier_ get's deleted so that we don't have a memory leak.
- */</font>
-<font color=#008888>Barrier::~Barrier</font>(void)
-{
- delete barrier_;
-}
-
-void <font color=#008888>Barrier::owner</font>( ACE_thread_t _owner )
-{
- owner_ = _owner;
-}
-
-<font color=red>// Report on the number of threads.</font>
-u_int <font color=#008888>Barrier::threads</font>(void)
-{
- return threads_.value();
-}
-
-<font color=red>/* Allow the owning thread to (re)set the number of threads.
- make_barrier() is called because it will wait() if we were already
- configured. Typical usage would be for the worker threads to
- wait() while the primary (eg -- owner) thread adjusts the thread
- count.
-
- For instance:
- In the worker threads:
- if( myBarrier.threads() != current_thread_count )
- myBarrier.wait();
-
- In the primary thread:
- if( myBarrier.threads() != current_thread_count )
- myBarrier.threads( current_thread_count, 1 );
- */</font>
-int <font color=#008888>Barrier::threads</font>( u_int _threads, int _wait )
-{
- if( ! <font color=#008888>ACE_OS::thr_equal</font>(ACE_OS::thr_self(), owner_) )
- {
- return -1;
- }
-
- threads_ = _threads;
-
- return make_barrier(_wait);
-}
-
-<font color=red>/* Wait for all threads to synch if the thread count is valid. Note
- that barrier_ will be 0 if the threads() mutator has not been
- invoked.
-*/</font>
-int <font color=#008888>Barrier::wait</font>(void)
-{
- if( ! barrier_ )
- {
- return -1;
- }
-
- <font color=red>// If the threads() mutator has been used, new_barrier_ will</font>
- <font color=red>// point to a new ACE_Barrier instance. We'll use a</font>
- <font color=red>// traditional double-check here to move that new object into</font>
- <font color=red>// place and cleanup the old one.</font>
- if( new_barrier_ )
- {
- <font color=red>// mutex so that only one thread can do this part.</font>
- ACE_Guard&lt;ACE_Mutex> mutex(barrier_mutex_);
-
- <font color=red>// We only want the first thread to plug in the new barrier...</font>
- if( new_barrier_ )
- {
- <font color=red>// out with the old and in with the new.</font>
- delete barrier_;
- barrier_ = new_barrier_;
- new_barrier_ = 0;
- }
- }
-
- return barrier_->wait();
-}
-
-<font color=red>/* Wait for all threads to synch. As each thread passes wait(), it
- will decrement our thread counter. (That is why we had to make
- threads_ an atomic op.) When the last thread decrements the
- counter it will also delete the ACE_Barrier & free up a little
- memory.
-*/</font>
-int <font color=#008888>Barrier::done</font>(void)
-{
- if( this->wait() == -1 )
- {
- return -1;
- }
-
- --threads_;
-
- if( ! threads_.value() )
- {
- delete barrier_;
- barrier_ = 0;
- }
-
- return 0;
-}
-
-<font color=red>/* This will build the actual barrier. I broke this code out of the
- threads() mutator in case it might be useful elsewhere.
- If a barrier already exists, we will wait for all threads before
- creating a new one. This trait is what allows the threads mutator
- to be used as shown above.
- */</font>
-int <font color=#008888>Barrier::make_barrier</font>( int _wait )
-{
- <font color=red>// Ensure we have a valid thread count.</font>
- if( ! threads_.value() )
- {
- return -1;
- }
-
- <font color=red>// If a barrier already exists, we'll arrange for it to be</font>
- <font color=red>// replaced through the wait() method above.</font>
- if( barrier_ )
- {
- <font color=red>// Create the new barrier that wait() will install for us.</font>
- ACE_NEW_RETURN(new_barrier_,ACE_Barrier(threads_.value()),-1);
-
- <font color=red>// Wait for our siblings to synch before continuing</font>
- if( _wait )
- {
- barrier_->wait();
- }
- }
- else
- {
- <font color=red>// Create the initial barrier.</font>
- ACE_NEW_RETURN(barrier_,ACE_Barrier(threads_.value()),-1);
- }
-
- return 0;
-}
-
-<font color=blue>#if defined</font> (<font color=purple>ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION</font>)
-template class ACE_Atomic_Op &lt;ACE_Mutex, u_int>;
-<font color=blue>#elif defined</font> (<font color=purple>ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Atomic_Op &lt;ACE_Mutex, u_int>
-<font color=blue>#endif</font> <font color=red>/* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/017/page05.html b/docs/tutorials/017/page05.html
deleted file mode 100644
index 1fc924890fc..00000000000
--- a/docs/tutorials/017/page05.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 017</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 017</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Using the ACE_Barrier synch object</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-Well, that's it for the simple Barrier Tutorial. I encourage you to
-try it out and see what you like and dislike. Any improvements or
-enhancements will gladly be integrated into the Tutorial.
-<P>
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="barrier.cpp">barrier.cpp</A>
-<LI><A HREF="Barrier_i.h">Barrier_i.h</A>
-<LI><A HREF="Barrier_i.cpp">Barrier_i.cpp</A>
-</UL>
-<HR>
-Before we call it a wrap though, there's one more thing I want to show
-you. Remember the comments around Barrier::threads()? On the next
-page, I'll show you how to synch up when the number of threads changes.
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/017/page06.html b/docs/tutorials/017/page06.html
deleted file mode 100644
index 8e3704b1b32..00000000000
--- a/docs/tutorials/017/page06.html
+++ /dev/null
@@ -1,206 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 017</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 017</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Using the ACE_Barrier synch object</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-I could have included this in the first Test object of the tutorial
-but that may have complicated things a bit. What we're doing here is
-recognizing when the "owner" thread adds more threads to the pool.
-When we notice that, we use the barrier to wait until everything
-stabilizes and then we recalibrate and move on.
-<P>
-The source is <A HREF="barrier2.cpp">here</A>.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>Barrier_i.h</font>"
-<font color=blue>#include</font> "<A HREF="../../../ace/Task.h">ace/Task.h</A>"
-
-<font color=red>/* We'll use a simple Task&lt;> derivative to test our new Barrier
- object.
-*/</font>
-class Test : public ACE_Task&lt;ACE_NULL_SYNCH>
-{
-public:
-
- <font color=red>// Construct the object with a desired thread count</font>
- Test(int _threads);
-
- <font color=red>// Open/begin the test. As usual, we have to match the</font>
- <font color=red>// ACE_Task signature.</font>
- int open(void * _unused = 0);
-
- <font color=red>// Change the threads_ value for the next invocation of open()</font>
- void threads(int _threads);
-
- <font color=red>// Get the current threads_ value.</font>
- int threads(void);
-
- <font color=red>// Perform the test</font>
- int svc(void);
-
-protected:
- <font color=red>// How many threads the barrier will test.</font>
- u_int threads_;
-
- <font color=red>// The Barrier object we'll use in our tests below</font>
- Barrier barrier_;
-
- <font color=red>// This lets us pick one (eg -- the first) thread as the</font>
- <font color=red>// "<font color=green>controller</font>" for our little test...</font>
- ACE_Atomic_Op&lt;ACE_Mutex,u_int> tcount_;
-};
-
-<font color=red>/* Construct the object & initialize the threads value for open() to
- use.
-*/</font>
-<font color=#008888>Test::Test</font>(int _threads)
- : threads_(_threads), tcount_(0)
-{
-}
-
-<font color=red>/* As usual, our open() will create one or more threads where we'll do
- the interesting work.
-*/</font>
-int <font color=#008888>Test::open</font>(void * _unused)
-{
- ACE_UNUSED_ARG(_unused);
-
- <font color=red>// One thing about the barrier: You have to tell it how many</font>
- <font color=red>// threads it will be synching. The threads() mutator on my</font>
- <font color=red>// Barrier class lets you do that and hides the implementation</font>
- <font color=red>// details at the same time.</font>
- barrier_.threads(threads_);
-
- <font color=red>// Activate the tasks as usual...</font>
- return this->activate(THR_NEW_LWP, threads_, 1);
-}
-
-void <font color=#008888>Test::threads</font>(int _threads)
-{
- threads_ = _threads;
-}
-
-int <font color=#008888>Test::threads</font>(void)
-{
- return threads_;
-}
-
-<font color=red>/* svc() will execute in each thread & do a few things with the
- Barrier we have.
- */</font>
-int <font color=#008888>Test::svc</font>(void)
-{
- <font color=red>// Say hello to everyone first.</font>
- ACE_DEBUG(( LM_INFO, "<font color=green>(%P|%t|%T) Created\n</font>" ));
-
- <font color=red>// Increment and save the "<font color=green>tcount</font>" value. We'll use it in</font>
- <font color=red>// just a moment...</font>
- int me = ++tcount_;
-
- <font color=red>// Wait for all initial threads to get to this point before we</font>
- <font color=red>// go any further. This is standard barrier usage...</font>
- barrier_.wait();
-
- <font color=red>// Setup our random number generator.</font>
- ACE_Time_Value now(<font color=#008888>ACE_OS::gettimeofday</font>());
- ACE_RANDR_TYPE seed = now.usec();
- <font color=#008888>ACE_OS::srand</font>(seed);
- int delay;
-
- <font color=red>// We'll arbitrarily choose the first activated thread to be</font>
- <font color=red>// the controller. After it sleeps a few seconds, it will add</font>
- <font color=red>// five threads.</font>
- if( me == 1 )
- {
- <font color=red>// Sleep from 1 to 10 seconds so that some of the other</font>
- <font color=red>// threads will be into their for() loop.</font>
- delay = <font color=#008888>ACE_OS::rand_r</font>(seed)%10;
- <font color=#008888>ACE_OS::sleep</font>(abs(delay)+1);
-
- <font color=red>// Make ourselves the barrier owner so that we can change</font>
- <font color=red>// the number of threads. This should be done with care...</font>
- barrier_.owner( <font color=#008888>ACE_OS::thr_self</font>() );
-
- <font color=red>// Add 5 threads to the barrier and then activate() to</font>
- <font color=red>// make them real. Notice the third parameter to</font>
- <font color=red>// activate(). Without this parameter, the threads won't</font>
- <font color=red>// be created.</font>
- if( barrier_.threads(threads_+5) == 0 )
- {
- this->activate(THR_NEW_LWP,5,1);
- }
- }
-
- <font color=red>// This for() loop represents an "<font color=green>infinite</font>" work loop in an</font>
- <font color=red>// application. The theory is that the threads are dividing up</font>
- <font color=red>// some work but need to "<font color=green>recalibrate</font>" if more threads are</font>
- <font color=red>// added. I'll just do five iterations so that the test</font>
- <font color=red>// doesn't run forever.</font>
- int i;
- for( i = 0 ; i &lt; 5 ; ++i )
- {
- <font color=red>// The sleep() represents time doing work.</font>
- delay = <font color=#008888>ACE_OS::rand_r</font>(seed)%7;
- <font color=#008888>ACE_OS::sleep</font>(abs(delay)+1);
-
- ACE_DEBUG(( LM_INFO, "<font color=green>(%P|%t|%T)\tThread %.2d of %.2d iteration %.2d\n</font>", me, threads_, i ));
-
- <font color=red>// If the local threads_ variable doesn't match the number</font>
- <font color=red>// in the barrier, then the controller must have changed</font>
- <font color=red>// the thread count. We'll wait() for everyone and then</font>
- <font color=red>// recalibrate ourselves before continuing.</font>
- if( this->threads_ != barrier_.threads() )
- {
- ACE_DEBUG(( LM_INFO, "<font color=green>(%P|%t|%T) Waiting for thread count to increase to %d from %d\n</font>",
- barrier_.threads(), this->threads_ ));
-
- <font color=red>// Wait for all our sibling threads...</font>
- barrier_.wait();
-
- <font color=red>// Set our local variable so that we don't come here again.</font>
- this->threads_ = barrier_.threads();
-
- <font color=red>// Recalibration can be anything you want. At this</font>
- <font color=red>// point, we know that all of the threads are synch'd</font>
- <font color=red>// and ready to go.</font>
- }
- }
-
- <font color=red>// Re-synch all of the threads before they exit. This isn't</font>
- <font color=red>// really necessary but I like to do it.</font>
- barrier_.done();
-
- return(0);
-}
-
-<font color=red>/* Our test application...
- */</font>
-int main(int, char**)
-{
- <font color=red>// Create the test object with 5 threads</font>
- Test test(5);
-
- <font color=red>// and open it to test the barrier.</font>
- test.open();
- <font color=red>// Now wait for them all to exit.</font>
- test.wait();
-
- return(0);
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/018/018.dsp b/docs/tutorials/018/018.dsp
deleted file mode 100644
index cf22bcbfaba..00000000000
--- a/docs/tutorials/018/018.dsp
+++ /dev/null
@@ -1,116 +0,0 @@
-# Microsoft Developer Studio Project File - Name="018" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=018 - 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 "018.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 "018.mak" CFG="018 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "018 - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "018 - 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)" == "018 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "018 - 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 Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Od /I "..\..\.." /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 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"token.exe" /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "018 - Win32 Release"
-# Name "018 - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Test_T.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\token.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\Mutex_i.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Test_T.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_i.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/018/Makefile b/docs/tutorials/018/Makefile
deleted file mode 100644
index 97bcfde576f..00000000000
--- a/docs/tutorials/018/Makefile
+++ /dev/null
@@ -1,77 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = token
-
-FILES =
-
-BUILD = $(VBIN)
-
-SRC = $(addsuffix .cpp,$(BIN))
-SRC += $(addsuffix .cpp,$(FILES))
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-rename : #
- for i in *.cxx ; do \
- n=`expr "$$i" : "\(.*\).cxx"` ;\
- mv $$i $$n.cpp ;\
- done
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre > combine.shar && $(RM) hdr bodies *.pre
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include .depend
diff --git a/docs/tutorials/018/Mutex_i.h b/docs/tutorials/018/Mutex_i.h
deleted file mode 100644
index f360c446679..00000000000
--- a/docs/tutorials/018/Mutex_i.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// $Id$
-
-#ifndef MUTEX_I_H
-#define MUTEX_I_H
-
-#include "Test_T.h"
-
-/* Create a very simple derivative of our Test template. All we have
- to do is provide our mutex choice and a name.
- */
-class Mutex : public Test_T<ACE_Mutex>
-{
-public:
- Mutex (void) : Test_T<ACE_Mutex> ("Mutex") {}
-};
-
-#endif /* MUTEX_I_H */
diff --git a/docs/tutorials/018/Test_T.cpp b/docs/tutorials/018/Test_T.cpp
deleted file mode 100644
index 086ffcdfcdd..00000000000
--- a/docs/tutorials/018/Test_T.cpp
+++ /dev/null
@@ -1,196 +0,0 @@
-// $Id$
-
-/* This is something new... Since we're included by the header, we
- have to provide a sentry to protect against recursive inclusion.
- */
-#ifndef TEST_T_C
-#define TEST_T_C
-
-// Get our definition
-#include "Test_T.h"
-
-// We'll hard-code the thread count. Mucking around with that isn't
-// really the point of the exercise today...
-#define TEST_THREAD_COUNT 5
-
-/* Construction time...
- Initialize the baseclass, the name and the barrier. Since the
- client will probably invoke run() next, we go ahead an announce our
- creation to make the output more readable.
- */
-template <class MUTEX>
-Test_T<MUTEX>::Test_T (const char *name)
- : ACE_Task<ACE_MT_SYNCH>(),
- name_ (name),
- barrier_ (TEST_THREAD_COUNT)
-{
- ACE_DEBUG ((LM_INFO,
- "(%P|%t|%T)\tTest_T (%s) created\n",
- name));
-}
-
-/* Activate the threads and create some test data...
- */
-template <class MUTEX> int
-Test_T<MUTEX>::run (void)
-{
- // Try to activate the set of threads that will test the mutex
- if (this->open () == -1)
- return -1;
-
- // Create a set of messages. I chose twice the thread count so that
- // we can see how they get distributed.
- for (int i = 0; i < TEST_THREAD_COUNT*2; ++i)
- {
- // A message block big enough for a simple message.
- ACE_Message_Block *message;
-
- ACE_NEW_RETURN (message,
- ACE_Message_Block (64),
- -1);
-
- // Put some text into the message block so that we can know
- // what's going on when we get to svc()
- sprintf (message->wr_ptr (),
- "Message Number %d",
- i);
- message->wr_ptr (ACE_OS::strlen (message->rd_ptr ()) + 1);
-
- // Send the message to the thread pool
- if (this->send (message) == -1)
- break;
- }
-
- // Send a hangup to the thread pool so that we can exit.
- if (this->send () == -1)
- return -1;
-
- // Wait for all of the threads to exit and then return to the client.
- return this->wait ();
-}
-
-/* Send a message to the thread pool
- */
-template <class MUTEX> int
-Test_T<MUTEX>::send (ACE_Message_Block *message)
-{
- // If no message was provided, create a hangup message.
- if (message == 0)
- {
- ACE_Message_Block::ACE_Message_Type mb_hangup =
- ACE_Message_Block::MB_HANGUP ;
-
- ACE_NEW_RETURN (message,
- ACE_Message_Block (0, mb_hangup),
- -1);
- }
-
- // Use the duplicate() method when sending the message. For this
- // simple application, that may be overkill but it's a good habit.
- // duplicate() will increment the reference count so that each user
- // of the message can release() it when done. The last user to call
- // release() will cause the data to be deleted.
- if (this->putq (message->duplicate ()) == -1)
- {
- // Error? release() the message block and return failure.
- message->release ();
- return -1;
- }
-
- // release() the data to prevent memory leaks.
- message->release();
-
- return 0;
-}
-
-/* A farily typical open(). Just activate the set of threads and return.
- */
-template <class MUTEX> int
-Test_T<MUTEX>::open (void *arg)
-{
- ACE_UNUSED_ARG(arg);
- return this->activate (THR_NEW_LWP,
- TEST_THREAD_COUNT);
-}
-
-/* svc() is also fairly typical. The new part is the use of the guard
- to simulate protection of shared resources.
- */
-template <class MUTEX> int
-Test_T<MUTEX>::svc (void)
-{
- // Keep a simple thread identifier. We could always use the
- // thread id but this is a nice, simple number.
- int my_number = ++thread_num_;
-
- ACE_DEBUG ((LM_INFO,
- "%d (%P|%t|%T)\tTest_T::svc() Entry\n",
- my_number));
-
- // Wait for all of threads to get started so that they all have a
- // fair shot at the message queue. Comment this out and see how the
- // behaviour changes. Does it surprise you?
- barrier_.wait ();
-
- ACE_Message_Block *message;
- int mcount = 0;
-
- // This would usually be an almost-infinite loop. Instead, I've
- // governed it so that no single thread can get more than "thread
- // count" number of messages. You'll see that with ACE_Mutex, this
- // is just about the only way to keep the first thread from getting
- // all the action. Ths is obviously just for sake of the test since
- // you don't want your real-world app to exit after a fixed number
- // of messages!
- while (mcount < TEST_THREAD_COUNT)
- {
- // Get a message. Since the message queue is already
- // thread-safe we don't have to guard it. In fact, moving the
- // guard up above getq() will decrease your parallelization.
- if (getq (message) == -1)
- break;
-
- // Now we pretend that there are shared resources required to
- // process the data. We grab the mutex through the guard and
- // "do work". In a real application, you'll want to keep these
- // critical sections as small as possible since they will reduce
- // the usefulness of multi-threading.
- guard_t guard (mutex_);
-
- // Increase our message count for the debug output and the
- // governor.
- ++mcount;
-
- // Check for a hangup request... Notice the use of release()
- // again to prevent leaks
- if (message->msg_type () == ACE_Message_Block::MB_HANGUP)
- {
- message->release ();
- break;
- }
-
- // Display the message so that we can see if things are working
- // the way we want.
- ACE_DEBUG ((LM_INFO,
- "%d (%P|%t|%T)\tTest_T::svc() received message #%d (%s)\n",
- my_number,
- mcount,
- message->rd_ptr ()));
-
- // Pretend that the work takes some time to complete. Remember,
- // we're holding that lock during this time!
- ACE_OS::sleep (1);
-
- // No leaks...
- message->release ();
- }
-
- // Send a hangup to the other threads in the pool. If we don't do
- // this then wait() will never exit since all of the other threads
- // are still blocked on getq().
- this->send ();
-
- return 0;
-};
-
-#endif /* TEST_T_C */
diff --git a/docs/tutorials/018/Test_T.h b/docs/tutorials/018/Test_T.h
deleted file mode 100644
index 2dee0e7f9ed..00000000000
--- a/docs/tutorials/018/Test_T.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// $Id$
-
-#ifndef TEST_T_H
-#define TEST_T_H
-
-#include "ace/Task.h"
-
-/* We'll create a simple ACE_Task derivative for testing a couple of
- different locking mechanisms. We've hidden the open() method to
- force our client into using the run() method instead.
-
- The naming convention *_T is fairly typical for ACE. The _T suffix
- on the object name (and it's source files) indicates that this is a
- templated class. Generally, there is a non-templated class defined
- also such as foobar.h that would be included instead of foobar_T.h.
- */
-
-template <class MUTEX>
-class Test_T : public ACE_Task<ACE_MT_SYNCH>
-{
-public:
- // Allow our derivative to name the class so that we can tell the
- // user what's going on as we test the lock.
- Test_T (const char *name);
-
- // This will run the entire test. open() will be called to activate
- // the task's threads. We then add a number of messages to the
- // queue for svc() to process.
- int run (void);
-
-protected:
-
- // Activate a few threads
- int open (void *arg = 0);
-
- // Read some things from the message queue and exercise the lock.
- int svc (void);
-
- // Send a message block to svc(). If _message is 0 then send a
- // shutdown request (e.g., MB_HANGUP)
- int send (ACE_Message_Block * message = 0);
-
- // The object's name. Typically provided by a derivative.
- const char *name_;
-
- // We want to barrier the svc() methods to give all of the threads a
- // fair chance
- ACE_Barrier barrier_;
-
- // As each thread enters svc() it will increment this. While we
- // have a thread id available to us, I wanted a simple value to
- // display in debug messages.
- ACE_Atomic_Op<ACE_Mutex,int> thread_num_;
-
- // Set our mutex type based on the template parameter. We then
- // build a guard type based on that type.
- typedef MUTEX mutex_t;
- typedef ACE_Guard<mutex_t> guard_t;
-
- // Our mutex. We'll use this in svc() to protect imaginary shared
- // resources.
- mutex_t mutex_;
-};
-
-/* Although different compilers differ in their details, almost all of
- them require that you provide the definition of the templated
- object along with the declaration. With any luck, this will change
- someday & we'll have smaller object files. Until then, the lines
- below will take care of you.
- */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "Test_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Test_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* TEST_T_H */
diff --git a/docs/tutorials/018/Token_i.h b/docs/tutorials/018/Token_i.h
deleted file mode 100644
index d07fe366a51..00000000000
--- a/docs/tutorials/018/Token_i.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// $Id$
-
-#ifndef TOKEN_I_H
-#define TOKEN_I_H
-
-#include "Test_T.h"
-
-// Go get ace/Token.h so that we know what an ACE_Token is.
-#include "ace/Token.h"
-
-/* Create a very simple derivative of our Test template. All we have
- to do is provide our mutex choice and a name.
- */
-class Token : public Test_T<ACE_Token>
-{
-public:
- Token (void): Test_T<ACE_Token> ("Token") {}
-};
-
-#endif /* TOKEN_I_H */
diff --git a/docs/tutorials/018/combine.shar b/docs/tutorials/018/combine.shar
deleted file mode 100644
index a653d49c3ce..00000000000
--- a/docs/tutorials/018/combine.shar
+++ /dev/null
@@ -1,440 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/018'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 416 -rw-rw-r-- hdr
-# 64 -rw-rw-r-- bodies
-# 2586 -rw-rw-r-- page01.pre
-# 430 -rw-rw-r-- page02.pre
-# 1279 -rw-rw-r-- page03.pre
-# 688 -rw-rw-r-- page04.pre
-# 259 -rw-rw-r-- page05.pre
-# 1519 -rw-rw-r-- page06.pre
-# 476 -rw-rw-r-- page07.pre
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh00359; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 018</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 018</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>The FIFO Nature of ACE_Token</FONT></B></CENTER>
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-66dbcd27e23cdcc9c230089e9c289bcb hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 416 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '416,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-token.cpp
-Test_T.h
-Test_T.cpp
-Token_i.h Mutex_i.h
-output
-SHAR_EOF
- $shar_touch -am 1114165298 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-22e70b25b6f23655b44d31fcf1a669f8 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 64 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '64,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X
-Welcome to Tutorial 18!
-<P>
-We've seen various ACE methods for synchronization in this and other
-tutorial sections. Something we haven't yet seen is the ACE_Token.
-ACE_Token has a really cool thing: it behaves in a FIFO manner.
-<P>
-Why is that cool?
-<P>
-In the other tutorials, you may have found that one thread will end up
-with all of the work. Even though other threads are available, the OS
-scheduling and lock management just causes it to happen. With
-ACE_Token, the threads are queued up on the token and served in a
-traditional first-in-first-out manner.
-<P>
-Why is FIFO important?
-<P>
-Well, if your app is running in a bunch of threads and each is doing
-the same thing on the local host then FIFO may not be important.
-However, take the case where each thread is connected to a remote
-system. Let's say you have a dozen threads in your app and each is
-connected to a different remote system. Each of the threads will be
-given a block of data which will be passed to the remote for some
-intense calculation. If you use the FIFO then you'll spread the work
-more-or-less evenly between the remote peers. If you use the
-traditional mutex then one peer may get the lion's share of the work.
-<P>
-It gets down to a personal decision based on the application's needs.
-Consider your application, examine its behavior & decide for yourself
-if you want to spread the work evenly or if it's OK to let some
-threads work harder than others.
-<P>
-Kirthika's abstract:
-<UL>
-A token is similar to a mutex-lock, with the difference being that
-the token is given to the waiting threads in a FIFO order. In the case
-of the mutex-lock, any thread (depending on the OS) could acquire
-the lock when its released. It internally implements a recursive mutex,
-i.e. the thread that owns the mutex can reqacquire it without deadlocking.
-The token also has two FIFO lists for writers and readers with writer-
-acquires having a higher priority than reader-acquires.
-<P>
-This tutorial throws light on the differences on having a shared resource governed by
-a lock and a token, both derive from a Task which simply updates a counter with the
-number-of-threads value. A barrier is used for ensuring that all threads get a equal
-opportunity of grabbing the token. The message queue with the message containing the
-thread count moves among the threads to be obtained and read.
-<P>
-On obtaining the results, we conclude that on using the Token, the job to be completed
-can be distributed evenly among available threads. This cant be guaranteed
-in case of simply using the lock for synchronisation.
-</ul>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-c2c450403d3a23fb5c1d2f1dc23a1eb4 page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 2586 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '2586,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-Our main() just keeps getting simpler! I guess that's a good thing.
-<P>
-What we've done is create two Task-derived objects that test different
-locking mechanisms. The Token object uses ACE_Token and the Mutex
-object uses ACE_Mutex. When you execute the application you should
-see quite a difference in thread utilization. At the end of the
-tutorial I've included a link to the output of a typical run of the
-application.
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-a36353959f7874c8e31884d2acd7eb43 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 430 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '430,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-Our Test object is a simple derivative of ACE_Task. Although we've
-certainly used templates in other tutorials, this is the first time
-we've created one of our own.
-<P>
-In a lot of ways, you can think of templates as the sophisticated
-cousin of the old C-style pre-processor macros. With templates,
-however, you get better type-checking and much easier debugging. There
-are certainly other benefits but these are my favorites.
-<P>
-Our template's MUTEX parameter is used to set the mutex type
-<i>mutex_t</i>. That'll be used in svc() so that we can protect
-shared resources needed during the processing of data received on our
-message queue.
-<P>
-Note at the bottom how we have to include the <i>cpp</i> file
-associated with us. Most compilers have to see the definition of
-templated classes along with their declaration. You might be tempted,
-therefore, to just put the definitions in the header file. Resist
-that temptation because templates are one of the fastest growing areas
-of compilers. Including the definition like we do here leads to long
-compile times and overly-large binaries. With luck, the compilers
-will get smarter in the future and we won't need definition
-inclusion. If you've already got them broken out then you'll save
-yourself a lot of time!
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-68432fc61bf23fe391f4ead60fe26b17 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 1279 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '1279,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-Our Test implementation looks much like the other ACE_Task derivatives
-we've used in the past. The most obvious change is the addition of
-the run() method. run() will activate the threads and put a few
-messages into the queue. We could have done that in main() but it
-just makes more sense here.
-<P>
-Notice how svc() grabs the guard after getting a message from the
-queue. Since we constructed our Task baseclass with ACE_MT_SYNCH, we
-know that the queue is already thread-safe. Our purpose in grabbing
-the additional lock is to show how ACE_Token and ACE_Mutex behave
-differently. In a real app, you'd be doing this to protect shared
-resources that the threads might clobber.
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-51ea4870a85f49c113951fedd695e35f page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 688 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '688,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-Here we create simple derivatives of our Test templated class. Each
-is parameterized with our mutex of choice and "named". Using the Test
-template we're able to reuse all of the code with practially no
-retyping and certainly much less chance of error!
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-31b8531c267e036e6f463249cd04b53a page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 259 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '259,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-That's it for the code, now let's take a quick look at some output.
-The first set of output is from the Token test, the second is Mutex
-test. Notice how the threads are evenly utilized in the Token test.
-Each thread gets to see exactly two messages. There's also an
-interesting side-effect that the messages are processed in order. (You
-can't rely on that, it just happend in this particular run.)
-<P>
-With the Mutex test, however, we see that the first thread gets no
-less than 1/2 of all messages. In fact, if we didn't have the
-governor in svc() it might have gotten them all!
-<P>
-Why does this happen?
-<P>
-Primarily because of time slicing. Even though each thread takes time
-to do work (1 second in our test), it can still own the timeslice when
-it gets back to the mutex acquire. Since the other threads are still
-switched out, the current thread regets the lock and continues. On
-the other hand, the ACE_Token is very careful about the order in which
-the acquisition is allowed and more evenly distributes the work.
-<P>
-Play around with the sleep() call in svc(). You'll find that as you
-decrease it, there is more chance that even the Token test will do
-most of its work in one thread. You're still at the mercy of the OS
-time slicing. In reality, though, it will take a moment or two for
-work to be done. The end goal isn't necessarily to distribute the
-work evenly over all threads but, rather, to distribute it evenly
-among <i>available</i> threads. The distinction is subtle but important.
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-ac415a062a971ba79a088d929dda5f36 page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 1519 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '1519,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page07.pre ==============
-if test -f 'page07.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page07.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page07.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page07.pre' &&
-And now we're at the end of another Tutorial. As always, feel free to
-send in questions and comments. There are certainly more
-implementation possibilites and I'll gladly integrate yours into these
-Tutorials.
-<P>
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="token.cpp">token.cpp</A>
-<LI><A HREF="Test.h">Test.h</A>
-<LI><A HREF="Test.cpp">Test.cpp</A>
-<LI><A HREF="Token_i.h">Token_i.h</A>
-<LI><A HREF="Mutex_i.h">Mutex_i.h</A>
-<LI><A HREF="output">output</A>
-</UL>
-SHAR_EOF
- $shar_touch -am 03191459100 'page07.pre' &&
- chmod 0664 'page07.pre' ||
- $echo 'restore of' 'page07.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page07.pre:' 'MD5 check failed'
-b7e7273c9bbeec45bdf2df2e8af06323 page07.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page07.pre'`"
- test 476 -eq "$shar_count" ||
- $echo 'page07.pre:' 'original size' '476,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh00359
-exit 0
diff --git a/docs/tutorials/018/output b/docs/tutorials/018/output
deleted file mode 100644
index b292728e4d6..00000000000
--- a/docs/tutorials/018/output
+++ /dev/null
@@ -1,33 +0,0 @@
-(21386|1024|15:26:32.366520) Test (Token) created
-1 (21386|1025|15:26:32.390340) Test::svc() Entry
-2 (21386|2050|15:26:32.408330) Test::svc() Entry
-3 (21386|3075|15:26:32.427363) Test::svc() Entry
-4 (21386|4100|15:26:32.447285) Test::svc() Entry
-5 (21386|5125|15:26:32.482479) Test::svc() Entry
-1 (21386|1025|15:26:32.498583) Test::svc() received message #1 (Message Number 0)
-2 (21386|2050|15:26:33.517770) Test::svc() received message #1 (Message Number 1)
-3 (21386|3075|15:26:34.537701) Test::svc() received message #1 (Message Number 2)
-4 (21386|4100|15:26:35.557675) Test::svc() received message #1 (Message Number 3)
-5 (21386|5125|15:26:36.577650) Test::svc() received message #1 (Message Number 4)
-1 (21386|1025|15:26:37.597689) Test::svc() received message #2 (Message Number 5)
-2 (21386|2050|15:26:38.607689) Test::svc() received message #2 (Message Number 6)
-3 (21386|3075|15:26:39.617675) Test::svc() received message #2 (Message Number 7)
-4 (21386|4100|15:26:40.637653) Test::svc() received message #2 (Message Number 8)
-5 (21386|5125|15:26:41.657637) Test::svc() received message #2 (Message Number 9)
-
-(21386|1024|15:26:42.679919) Test (Mutex) created
-1 (21386|6150|15:26:42.700301) Test::svc() Entry
-2 (21386|7175|15:26:42.737413) Test::svc() Entry
-3 (21386|8200|15:26:42.754241) Test::svc() Entry
-4 (21386|9225|15:26:42.772122) Test::svc() Entry
-5 (21386|10250|15:26:42.788867) Test::svc() Entry
-1 (21386|6150|15:26:42.806260) Test::svc() received message #1 (Message Number 0)
-1 (21386|6150|15:26:43.807539) Test::svc() received message #2 (Message Number 5)
-1 (21386|6150|15:26:44.817569) Test::svc() received message #3 (Message Number 6)
-1 (21386|6150|15:26:45.827571) Test::svc() received message #4 (Message Number 7)
-1 (21386|6150|15:26:46.837581) Test::svc() received message #5 (Message Number 8)
-2 (21386|7175|15:26:47.847908) Test::svc() received message #1 (Message Number 1)
-2 (21386|7175|15:26:48.857555) Test::svc() received message #2 (Message Number 9)
-4 (21386|9225|15:26:49.867991) Test::svc() received message #1 (Message Number 3)
-3 (21386|8200|15:26:50.887559) Test::svc() received message #1 (Message Number 2)
-5 (21386|10250|15:26:51.898275) Test::svc() received message #1 (Message Number 4)
diff --git a/docs/tutorials/018/page01.html b/docs/tutorials/018/page01.html
deleted file mode 100644
index e6a3db6f086..00000000000
--- a/docs/tutorials/018/page01.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 018</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 018</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>The FIFO Nature of ACE_Token</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-
-Welcome to Tutorial 18!
-<P>
-We've seen various ACE methods for synchronization in this and other
-tutorial sections. Something we haven't yet seen is the ACE_Token.
-ACE_Token has a really cool thing: it behaves in a FIFO manner.
-<P>
-Why is that cool?
-<P>
-In the other tutorials, you may have found that one thread will end up
-with all of the work. Even though other threads are available, the OS
-scheduling and lock management just causes it to happen. With
-ACE_Token, the threads are queued up on the token and served in a
-traditional first-in-first-out manner.
-<P>
-Why is FIFO important?
-<P>
-Well, if your app is running in a bunch of threads and each is doing
-the same thing on the local host then FIFO may not be important.
-However, take the case where each thread is connected to a remote
-system. Let's say you have a dozen threads in your app and each is
-connected to a different remote system. Each of the threads will be
-given a block of data which will be passed to the remote for some
-intense calculation. If you use the FIFO then you'll spread the work
-more-or-less evenly between the remote peers. If you use the
-traditional mutex then one peer may get the lion's share of the work.
-<P>
-It gets down to a personal decision based on the application's needs.
-Consider your application, examine its behavior & decide for yourself
-if you want to spread the work evenly or if it's OK to let some
-threads work harder than others.
-<P>
-Kirthika's abstract:
-<UL>
-A token is similar to a mutex-lock, with the difference being that
-the token is given to the waiting threads in a FIFO order. In the case
-of the mutex-lock, any thread (depending on the OS) could acquire
-the lock when its released. It internally implements a recursive mutex,
-i.e. the thread that owns the mutex can reqacquire it without deadlocking.
-The token also has two FIFO lists for writers and readers with writer-
-acquires having a higher priority than reader-acquires.
-<P>
-This tutorial throws light on the differences on having a shared resource governed by
-a lock and a token, both derive from a Task which simply updates a counter with the
-number-of-threads value. A barrier is used for ensuring that all threads get a equal
-opportunity of grabbing the token. The message queue with the message containing the
-thread count moves among the threads to be obtained and read.
-<P>
-On obtaining the results, we conclude that on using the Token, the job to be completed
-can be distributed evenly among available threads. This cant be guaranteed
-in case of simply using the lock for synchronisation.
-</ul>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/018/page02.html b/docs/tutorials/018/page02.html
deleted file mode 100644
index 84dc9c9c281..00000000000
--- a/docs/tutorials/018/page02.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 018</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 018</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>The FIFO Nature of ACE_Token</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-Our main() just keeps getting simpler! I guess that's a good thing.
-<P>
-What we've done is create two Task-derived objects that test different
-locking mechanisms. The Token object uses ACE_Token and the Mutex
-object uses ACE_Mutex. When you execute the application you should
-see quite a difference in thread utilization. At the end of the
-tutorial I've included a link to the output of a typical run of the
-application.
-<HR>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=red>// Get our two Test derivatives...</font>
-<font color=blue>#include</font> "<font color=green>Token_i.h</font>"
-<font color=blue>#include</font> "<font color=green>Mutex_i.h</font>"
-
-int main(int,char**)
-{
- <font color=red>// See what an ACE_Token does for us.</font>
- Token token;
- token.run();
-
- <font color=red>// And now the ACE_Mutex.</font>
- Mutex mutex;
- mutex.run();
-
- return(0);
-}
-<font color=blue>#if defined</font> (<font color=purple>ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION</font>)
-template class Test_T &lt;ACE_Mutex>;
-template class Test_T &lt;ACE_Token>;
-template class ACE_Atomic_Op &lt;ACE_Mutex, int>;
-<font color=blue>#elif defined</font> (<font color=purple>ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> Test_T &lt;ACE_Mutex>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> Test_T &lt;ACE_Token>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Atomic_Op &lt;ACE_Mutex, int>
-<font color=blue>#endif</font> <font color=red>/* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */</font>
-
-
-
-
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/018/page03.html b/docs/tutorials/018/page03.html
deleted file mode 100644
index c11e0e5b972..00000000000
--- a/docs/tutorials/018/page03.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 018</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 018</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>The FIFO Nature of ACE_Token</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-Our Test object is a simple derivative of ACE_Task. Although we've
-certainly used templates in other tutorials, this is the first time
-we've created one of our own.
-<P>
-In a lot of ways, you can think of templates as the sophisticated
-cousin of the old C-style pre-processor macros. With templates,
-however, you get better type-checking and much easier debugging. There
-are certainly other benefits but these are my favorites.
-<P>
-Our template's MUTEX parameter is used to set the mutex type
-<i>mutex_t</i>. That'll be used in svc() so that we can protect
-shared resources needed during the processing of data received on our
-message queue.
-<P>
-Note at the bottom how we have to include the <i>cpp</i> file
-associated with us. Most compilers have to see the definition of
-templated classes along with their declaration. You might be tempted,
-therefore, to just put the definitions in the header file. Resist
-that temptation because templates are one of the fastest growing areas
-of compilers. Including the definition like we do here leads to long
-compile times and overly-large binaries. With luck, the compilers
-will get smarter in the future and we won't need definition
-inclusion. If you've already got them broken out then you'll save
-yourself a lot of time!
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>TEST_T_H</font>
-<font color=blue>#define</font> <font color=purple>TEST_T_H</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Task.h">ace/Task.h</A>"
-
-<font color=red>/* We'll create a simple ACE_Task derivative for testing a couple of
- different locking mechanisms. We've hidden the open() method to
- force our client into using the run() method instead.
-
- The naming convention *_T is fairly typical for ACE. The _T suffix
- on the object name (and it's source files) indicates that this is a
- templated class. Generally, there is a non-templated class defined
- also such as foobar.h that would be included instead of foobar_T.h.
- */</font>
-
-template &lt;class MUTEX>
-class Test_T : public ACE_Task&lt;ACE_MT_SYNCH>
-{
-public:
- <font color=red>// Allow our derivative to name the class so that we can tell the</font>
- <font color=red>// user what's going on as we test the lock.</font>
- Test_T (const char *name);
-
- <font color=red>// This will run the entire test. open() will be called to activate</font>
- <font color=red>// the task's threads. We then add a number of messages to the</font>
- <font color=red>// queue for svc() to process.</font>
- int run (void);
-
-protected:
-
- <font color=red>// Activate a few threads</font>
- int open (void *arg = 0);
-
- <font color=red>// Read some things from the message queue and exercise the lock.</font>
- int svc (void);
-
- <font color=red>// Send a message block to svc(). If _message is 0 then send a</font>
- <font color=red>// shutdown request (e.g., MB_HANGUP)</font>
- int send (ACE_Message_Block * message = 0);
-
- <font color=red>// The object's name. Typically provided by a derivative.</font>
- const char *name_;
-
- <font color=red>// We want to barrier the svc() methods to give all of the threads a</font>
- <font color=red>// fair chance</font>
- ACE_Barrier barrier_;
-
- <font color=red>// As each thread enters svc() it will increment this. While we</font>
- <font color=red>// have a thread id available to us, I wanted a simple value to</font>
- <font color=red>// display in debug messages.</font>
- ACE_Atomic_Op&lt;ACE_Mutex,int> thread_num_;
-
- <font color=red>// Set our mutex type based on the template parameter. We then</font>
- <font color=red>// build a guard type based on that type.</font>
- typedef MUTEX mutex_t;
- typedef ACE_Guard&lt;mutex_t> guard_t;
-
- <font color=red>// Our mutex. We'll use this in svc() to protect imaginary shared</font>
- <font color=red>// resources.</font>
- mutex_t mutex_;
-};
-
-<font color=red>/* Although different compilers differ in their details, almost all of
- them require that you provide the definition of the templated
- object along with the declaration. With any luck, this will change
- someday & we'll have smaller object files. Until then, the lines
- below will take care of you.
- */</font>
-
-<font color=blue>#if defined</font> (<font color=purple>ACE_TEMPLATES_REQUIRE_SOURCE</font>)
-<font color=blue>#include</font> "<font color=green>Test_T.cpp</font>"
-<font color=blue>#endif</font> <font color=red>/* ACE_TEMPLATES_REQUIRE_SOURCE */</font>
-
-<font color=blue>#if defined</font> (<font color=purple>ACE_TEMPLATES_REQUIRE_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>implementation</font> ("<font color=green>Test_T.cpp</font>")
-<font color=blue>#endif</font> <font color=red>/* ACE_TEMPLATES_REQUIRE_PRAGMA */</font>
-
-<font color=blue>#endif</font> <font color=red>/* TEST_T_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/018/page04.html b/docs/tutorials/018/page04.html
deleted file mode 100644
index 809d05e06fd..00000000000
--- a/docs/tutorials/018/page04.html
+++ /dev/null
@@ -1,229 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 018</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 018</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>The FIFO Nature of ACE_Token</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-Our Test implementation looks much like the other ACE_Task derivatives
-we've used in the past. The most obvious change is the addition of
-the run() method. run() will activate the threads and put a few
-messages into the queue. We could have done that in main() but it
-just makes more sense here.
-<P>
-Notice how svc() grabs the guard after getting a message from the
-queue. Since we constructed our Task baseclass with ACE_MT_SYNCH, we
-know that the queue is already thread-safe. Our purpose in grabbing
-the additional lock is to show how ACE_Token and ACE_Mutex behave
-differently. In a real app, you'd be doing this to protect shared
-resources that the threads might clobber.
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/* This is something new... Since we're included by the header, we
- have to provide a sentry to protect against recursive inclusion.
- */</font>
-<font color=blue>#ifndef</font> <font color=purple>TEST_T_C</font>
-<font color=blue>#define</font> <font color=purple>TEST_T_C</font>
-
-<font color=red>// Get our definition</font>
-<font color=blue>#include</font> "<font color=green>Test_T.h</font>"
-
-<font color=red>// We'll hard-code the thread count. Mucking around with that isn't</font>
-<font color=red>// really the point of the exercise today...</font>
-<font color=blue>#define</font> <font color=purple>TEST_THREAD_COUNT</font> 5
-
-<font color=red>/* Construction time...
- Initialize the baseclass, the name and the barrier. Since the
- client will probably invoke run() next, we go ahead an announce our
- creation to make the output more readable.
- */</font>
-template &lt;class MUTEX>
-Test_T&lt;MUTEX>::Test_T (const char *name)
- : ACE_Task&lt;ACE_MT_SYNCH>(),
- name_ (name),
- barrier_ (TEST_THREAD_COUNT)
-{
- ACE_DEBUG ((LM_INFO,
- "<font color=green>(%P|%t|%T)\tTest_T (%s) created\n</font>",
- name));
-}
-
-<font color=red>/* Activate the threads and create some test data...
- */</font>
-template &lt;class MUTEX> int
-Test_T&lt;MUTEX>::run (void)
-{
- <font color=red>// Try to activate the set of threads that will test the mutex</font>
- if (this->open () == -1)
- return -1;
-
- <font color=red>// Create a set of messages. I chose twice the thread count so that</font>
- <font color=red>// we can see how they get distributed.</font>
- for (int i = 0; i &lt; TEST_THREAD_COUNT*2; ++i)
- {
- <font color=red>// A message block big enough for a simple message.</font>
- ACE_Message_Block *message;
-
- ACE_NEW_RETURN (message,
- ACE_Message_Block (64),
- -1);
-
- <font color=red>// Put some text into the message block so that we can know</font>
- <font color=red>// what's going on when we get to svc()</font>
- sprintf (message->wr_ptr (),
- "<font color=green>Message Number %d</font>",
- i);
- message->wr_ptr (<font color=#008888>ACE_OS::strlen</font> (message->rd_ptr ()) + 1);
-
- <font color=red>// Send the message to the thread pool</font>
- if (this->send (message) == -1)
- break;
- }
-
- <font color=red>// Send a hangup to the thread pool so that we can exit.</font>
- if (this->send () == -1)
- return -1;
-
- <font color=red>// Wait for all of the threads to exit and then return to the client.</font>
- return this->wait ();
-}
-
-<font color=red>/* Send a message to the thread pool
- */</font>
-template &lt;class MUTEX> int
-Test_T&lt;MUTEX>::send (ACE_Message_Block *message)
-{
- <font color=red>// If no message was provided, create a hangup message.</font>
- if (message == 0)
- {
- <font color=#008888>ACE_Message_Block::ACE_Message_Type</font> mb_hangup =
- <font color=#008888>ACE_Message_Block::MB_HANGUP</font> ;
-
- ACE_NEW_RETURN (message,
- ACE_Message_Block (0, mb_hangup),
- -1);
- }
-
- <font color=red>// Use the duplicate() method when sending the message. For this</font>
- <font color=red>// simple application, that may be overkill but it's a good habit.</font>
- <font color=red>// duplicate() will increment the reference count so that each user</font>
- <font color=red>// of the message can release() it when done. The last user to call</font>
- <font color=red>// release() will cause the data to be deleted.</font>
- if (this->putq (message->duplicate ()) == -1)
- {
- <font color=red>// Error? release() the message block and return failure.</font>
- message->release ();
- return -1;
- }
-
- <font color=red>// release() the data to prevent memory leaks.</font>
- message->release();
-
- return 0;
-}
-
-<font color=red>/* A farily typical open(). Just activate the set of threads and return.
- */</font>
-template &lt;class MUTEX> int
-Test_T&lt;MUTEX>::open (void *arg)
-{
- ACE_UNUSED_ARG(arg);
- return this->activate (THR_NEW_LWP,
- TEST_THREAD_COUNT);
-}
-
-<font color=red>/* svc() is also fairly typical. The new part is the use of the guard
- to simulate protection of shared resources.
- */</font>
-template &lt;class MUTEX> int
-Test_T&lt;MUTEX>::svc (void)
-{
- <font color=red>// Keep a simple thread identifier. We could always use the</font>
- <font color=red>// thread id but this is a nice, simple number.</font>
- int my_number = ++thread_num_;
-
- ACE_DEBUG ((LM_INFO,
- "<font color=green>%d (%P|%t|%T)\<font color=#008888>tTest_T::svc</font>() Entry\n</font>",
- my_number));
-
- <font color=red>// Wait for all of threads to get started so that they all have a</font>
- <font color=red>// fair shot at the message queue. Comment this out and see how the</font>
- <font color=red>// behaviour changes. Does it surprise you?</font>
- barrier_.wait ();
-
- ACE_Message_Block *message;
- int mcount = 0;
-
- <font color=red>// This would usually be an almost-infinite loop. Instead, I've</font>
- <font color=red>// governed it so that no single thread can get more than "thread</font>
- <font color=red>// count" number of messages. You'll see that with ACE_Mutex, this</font>
- <font color=red>// is just about the only way to keep the first thread from getting</font>
- <font color=red>// all the action. Ths is obviously just for sake of the test since</font>
- <font color=red>// you don't want your real-world app to exit after a fixed number</font>
- <font color=red>// of messages!</font>
- while (mcount &lt; TEST_THREAD_COUNT)
- {
- <font color=red>// Get a message. Since the message queue is already</font>
- <font color=red>// thread-safe we don't have to guard it. In fact, moving the</font>
- <font color=red>// guard up above getq() will decrease your parallelization.</font>
- if (getq (message) == -1)
- break;
-
- <font color=red>// Now we pretend that there are shared resources required to</font>
- <font color=red>// process the data. We grab the mutex through the guard and</font>
- <font color=red>// "<font color=green>do work</font>". In a real application, you'll want to keep these</font>
- <font color=red>// critical sections as small as possible since they will reduce</font>
- <font color=red>// the usefulness of multi-threading.</font>
- guard_t guard (mutex_);
-
- <font color=red>// Increase our message count for the debug output and the</font>
- <font color=red>// governor.</font>
- ++mcount;
-
- <font color=red>// Check for a hangup request... Notice the use of release()</font>
- <font color=red>// again to prevent leaks</font>
- if (message->msg_type () == <font color=#008888>ACE_Message_Block::MB_HANGUP</font>)
- {
- message->release ();
- break;
- }
-
- <font color=red>// Display the message so that we can see if things are working</font>
- <font color=red>// the way we want.</font>
- ACE_DEBUG ((LM_INFO,
- "<font color=green>%d (%P|%t|%T)\<font color=#008888>tTest_T::svc</font>() received message #%d (%s)\n</font>",
- my_number,
- mcount,
- message->rd_ptr ()));
-
- <font color=red>// Pretend that the work takes some time to complete. Remember,</font>
- <font color=red>// we're holding that lock during this time!</font>
- <font color=#008888>ACE_OS::sleep</font> (1);
-
- <font color=red>// No leaks...</font>
- message->release ();
- }
-
- <font color=red>// Send a hangup to the other threads in the pool. If we don't do</font>
- <font color=red>// this then wait() will never exit since all of the other threads</font>
- <font color=red>// are still blocked on getq().</font>
- this->send ();
-
- return 0;
-};
-
-<font color=blue>#endif</font> <font color=red>/* TEST_T_C */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/018/page05.html b/docs/tutorials/018/page05.html
deleted file mode 100644
index 5c669aa3155..00000000000
--- a/docs/tutorials/018/page05.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 018</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 018</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>The FIFO Nature of ACE_Token</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-Here we create simple derivatives of our Test templated class. Each
-is parameterized with our mutex of choice and "named". Using the Test
-template we're able to reuse all of the code with practially no
-retyping and certainly much less chance of error!
-<HR>
-<HR width=50%><P><center>Token_i.h</center><HR width=50%>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>TOKEN_I_H</font>
-<font color=blue>#define</font> <font color=purple>TOKEN_I_H</font>
-
-<font color=blue>#include</font> "<font color=green>Test_T.h</font>"
-
-<font color=red>// Go get ace/Token.h so that we know what an ACE_Token is.</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/Token.h">ace/Token.h</A>"
-
-<font color=red>/* Create a very simple derivative of our Test template. All we have
- to do is provide our mutex choice and a name.
- */</font>
-class Token : public Test_T&lt;ACE_Token>
-{
-public:
- Token (void): Test_T&lt;ACE_Token> ("<font color=green>Token</font>") {}
-};
-
-<font color=blue>#endif</font> <font color=red>/* TOKEN_I_H */</font>
-</PRE>
-<HR width=50%><P><center>Mutex_i.h</center><HR width=50%>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>MUTEX_I_H</font>
-<font color=blue>#define</font> <font color=purple>MUTEX_I_H</font>
-
-<font color=blue>#include</font> "<font color=green>Test_T.h</font>"
-
-<font color=red>/* Create a very simple derivative of our Test template. All we have
- to do is provide our mutex choice and a name.
- */</font>
-class Mutex : public Test_T&lt;ACE_Mutex>
-{
-public:
- Mutex (void) : Test_T&lt;ACE_Mutex> ("<font color=green>Mutex</font>") {}
-};
-
-<font color=blue>#endif</font> <font color=red>/* MUTEX_I_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/018/page06.html b/docs/tutorials/018/page06.html
deleted file mode 100644
index 8d348b2289e..00000000000
--- a/docs/tutorials/018/page06.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 018</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 018</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>The FIFO Nature of ACE_Token</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-That's it for the code, now let's take a quick look at some output.
-The first set of output is from the Token test, the second is Mutex
-test. Notice how the threads are evenly utilized in the Token test.
-Each thread gets to see exactly two messages. There's also an
-interesting side-effect that the messages are processed in order. (You
-can't rely on that, it just happend in this particular run.)
-<P>
-With the Mutex test, however, we see that the first thread gets no
-less than 1/2 of all messages. In fact, if we didn't have the
-governor in svc() it might have gotten them all!
-<P>
-Why does this happen?
-<P>
-Primarily because of time slicing. Even though each thread takes time
-to do work (1 second in our test), it can still own the timeslice when
-it gets back to the mutex acquire. Since the other threads are still
-switched out, the current thread regets the lock and continues. On
-the other hand, the ACE_Token is very careful about the order in which
-the acquisition is allowed and more evenly distributes the work.
-<P>
-Play around with the sleep() call in svc(). You'll find that as you
-decrease it, there is more chance that even the Token test will do
-most of its work in one thread. You're still at the mercy of the OS
-time slicing. In reality, though, it will take a moment or two for
-work to be done. The end goal isn't necessarily to distribute the
-work evenly over all threads but, rather, to distribute it evenly
-among <i>available</i> threads. The distinction is subtle but important.
-<HR>
-<PRE>
-(21386|1024|15:26:32.366520) Test (Token) created
-1 (21386|1025|15:26:32.390340) <font color=#008888>Test::svc</font>() Entry
-2 (21386|2050|15:26:32.408330) <font color=#008888>Test::svc</font>() Entry
-3 (21386|3075|15:26:32.427363) <font color=#008888>Test::svc</font>() Entry
-4 (21386|4100|15:26:32.447285) <font color=#008888>Test::svc</font>() Entry
-5 (21386|5125|15:26:32.482479) <font color=#008888>Test::svc</font>() Entry
-1 (21386|1025|15:26:32.498583) <font color=#008888>Test::svc</font>() received message #1 (Message Number 0)
-2 (21386|2050|15:26:33.517770) <font color=#008888>Test::svc</font>() received message #1 (Message Number 1)
-3 (21386|3075|15:26:34.537701) <font color=#008888>Test::svc</font>() received message #1 (Message Number 2)
-4 (21386|4100|15:26:35.557675) <font color=#008888>Test::svc</font>() received message #1 (Message Number 3)
-5 (21386|5125|15:26:36.577650) <font color=#008888>Test::svc</font>() received message #1 (Message Number 4)
-1 (21386|1025|15:26:37.597689) <font color=#008888>Test::svc</font>() received message #2 (Message Number 5)
-2 (21386|2050|15:26:38.607689) <font color=#008888>Test::svc</font>() received message #2 (Message Number 6)
-3 (21386|3075|15:26:39.617675) <font color=#008888>Test::svc</font>() received message #2 (Message Number 7)
-4 (21386|4100|15:26:40.637653) <font color=#008888>Test::svc</font>() received message #2 (Message Number 8)
-5 (21386|5125|15:26:41.657637) <font color=#008888>Test::svc</font>() received message #2 (Message Number 9)
-
-(21386|1024|15:26:42.679919) Test (Mutex) created
-1 (21386|6150|15:26:42.700301) <font color=#008888>Test::svc</font>() Entry
-2 (21386|7175|15:26:42.737413) <font color=#008888>Test::svc</font>() Entry
-3 (21386|8200|15:26:42.754241) <font color=#008888>Test::svc</font>() Entry
-4 (21386|9225|15:26:42.772122) <font color=#008888>Test::svc</font>() Entry
-5 (21386|10250|15:26:42.788867) <font color=#008888>Test::svc</font>() Entry
-1 (21386|6150|15:26:42.806260) <font color=#008888>Test::svc</font>() received message #1 (Message Number 0)
-1 (21386|6150|15:26:43.807539) <font color=#008888>Test::svc</font>() received message #2 (Message Number 5)
-1 (21386|6150|15:26:44.817569) <font color=#008888>Test::svc</font>() received message #3 (Message Number 6)
-1 (21386|6150|15:26:45.827571) <font color=#008888>Test::svc</font>() received message #4 (Message Number 7)
-1 (21386|6150|15:26:46.837581) <font color=#008888>Test::svc</font>() received message #5 (Message Number 8)
-2 (21386|7175|15:26:47.847908) <font color=#008888>Test::svc</font>() received message #1 (Message Number 1)
-2 (21386|7175|15:26:48.857555) <font color=#008888>Test::svc</font>() received message #2 (Message Number 9)
-4 (21386|9225|15:26:49.867991) <font color=#008888>Test::svc</font>() received message #1 (Message Number 3)
-3 (21386|8200|15:26:50.887559) <font color=#008888>Test::svc</font>() received message #1 (Message Number 2)
-5 (21386|10250|15:26:51.898275) <font color=#008888>Test::svc</font>() received message #1 (Message Number 4)
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page07.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/018/page07.html b/docs/tutorials/018/page07.html
deleted file mode 100644
index 28586aea1cf..00000000000
--- a/docs/tutorials/018/page07.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 018</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 018</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>The FIFO Nature of ACE_Token</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-And now we're at the end of another Tutorial. As always, feel free to
-send in questions and comments. There are certainly more
-implementation possibilites and I'll gladly integrate yours into these
-Tutorials.
-<P>
-<UL>
-<LI><A HREF="Makefile">Makefile</A>
-<LI><A HREF="token.cpp">token.cpp</A>
-<LI><A HREF="Test.h">Test.h</A>
-<LI><A HREF="Test.cpp">Test.cpp</A>
-<LI><A HREF="Token_i.h">Token_i.h</A>
-<LI><A HREF="Mutex_i.h">Mutex_i.h</A>
-<LI><A HREF="output">output</A>
-</UL>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/018/token.cpp b/docs/tutorials/018/token.cpp
deleted file mode 100644
index 040a6ead6c6..00000000000
--- a/docs/tutorials/018/token.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-// $Id$
-
-// Get our two Test derivatives...
-#include "Token_i.h"
-#include "Mutex_i.h"
-
-int main(int,char**)
-{
- // See what an ACE_Token does for us.
- Token token;
- token.run();
-
- // And now the ACE_Mutex.
- Mutex mutex;
- mutex.run();
-
- return(0);
-}
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class Test_T <ACE_Mutex>;
-template class Test_T <ACE_Token>;
-template class ACE_Atomic_Op <ACE_Mutex, int>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate Test_T <ACE_Mutex>
-#pragma instantiate Test_T <ACE_Token>
-#pragma instantiate ACE_Atomic_Op <ACE_Mutex, int>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-
-
-
diff --git a/docs/tutorials/019/019-client.dsp b/docs/tutorials/019/019-client.dsp
deleted file mode 100644
index aae33177cd5..00000000000
--- a/docs/tutorials/019/019-client.dsp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Microsoft Developer Studio Project File - Name="019 client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=019 client - 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 "019 client.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 "019 client.mak" CFG="019 client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "019 client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "019 client - 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)" == "019 client - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "019 client - 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 ""
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "019 client - Win32 Release"
-# Name "019 client - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\client.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\shmem.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\shmem.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/019/019-client2.dsp b/docs/tutorials/019/019-client2.dsp
deleted file mode 100644
index d1f6e685c92..00000000000
--- a/docs/tutorials/019/019-client2.dsp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Microsoft Developer Studio Project File - Name="019 client2" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=019 client2 - 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 "019 client2.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 "019 client2.mak" CFG="019 client2 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "019 client2 - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "019 client2 - 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)" == "019 client2 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "019 client2 - 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 ""
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "019 client2 - Win32 Release"
-# Name "019 client2 - Win32 Debug"
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\shmem.h
-# End Source File
-# End Group
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\client2.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\shmem.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/019/019-server.dsp b/docs/tutorials/019/019-server.dsp
deleted file mode 100644
index 789431e0ba8..00000000000
--- a/docs/tutorials/019/019-server.dsp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Microsoft Developer Studio Project File - Name="019 server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=019 server - 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 "019 server.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 "019 server.mak" CFG="019 server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "019 server - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "019 server - 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)" == "019 server - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "019 server - 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 ""
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "019 server - Win32 Release"
-# Name "019 server - Win32 Debug"
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\shmem.h
-# End Source File
-# End Group
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\server.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\shmem.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/019/019-server2.dsp b/docs/tutorials/019/019-server2.dsp
deleted file mode 100644
index f3b72b718a6..00000000000
--- a/docs/tutorials/019/019-server2.dsp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Microsoft Developer Studio Project File - Name="019 server2" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=019 server2 - 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 "019 server2.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 "019 server2.mak" CFG="019 server2 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "019 server2 - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "019 server2 - 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)" == "019 server2 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "019 server2 - 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 ""
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "019 server2 - Win32 Release"
-# Name "019 server2 - Win32 Debug"
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\shmem.h
-# End Source File
-# End Group
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\server2.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\shmem.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/019/Makefile b/docs/tutorials/019/Makefile
deleted file mode 100644
index 897c0f8d9ac..00000000000
--- a/docs/tutorials/019/Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = client server client2 server2
-
-FILES = shmem
-
-BUILD = $(VBIN)
-
-BSRC = $(addsuffix .cpp,$(BIN))
-
-SRC += $(addsuffix .cpp,$(FILES))
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-rename : #
- for i in *.cxx ; do \
- n=`expr "$$i" : "\(.*\).cxx"` ;\
- mv $$i $$n.cpp ;\
- done
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : #
- $(MAKE) SRC="$(SRC) $(BSRC)" depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre > combine.shar && $(RM) hdr bodies *.pre
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include .depend
diff --git a/docs/tutorials/019/client.cpp b/docs/tutorials/019/client.cpp
deleted file mode 100644
index 55b99b52667..00000000000
--- a/docs/tutorials/019/client.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// $Id$
-
-// Again, the common stuff
-#include "shmem.h"
-
-#include "ace/Log_Msg.h"
-
-#if defined(ACE_LACKS_SYSV_SHMEM)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "System V Shared Memory not available on this platform\n"),
- 100);
-}
-#else // ACE_LACKS_SYSV_SHMEM
-int
-main (int, char *[])
-{
- /*
- Attach ourselves to the shared memory segment.
- */
- ACE_Shared_Memory_SV shm_client (SHM_KEY, SHMSZ);
-
- /*
- Get our reference to the segment...
- */
- char *shm = (char *) shm_client.malloc ();
-
- /*
- If the segment identified by SHM_KEY didn't exist then we'll
- get back a 0 from malloc(). You should do this check even
- if you include the CREATE flag 'cause you never know when it
- might fail.
- */
- if (shm == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) Could not get the segment!\n"),
- 100);
-
- /*
- Does this match what your server said?
- */
- ACE_DEBUG ((LM_INFO,
- "(%P|%t) Shared Memory is at 0x%x\n",
- shm ));
-
- /*
- Show the shared data to the user and convert it all to
- uppper-case along the way.
- */
- for (char *s = shm; *s != '\0'; s++)
- {
- putchar (*s);
- *s = toupper(*s);
- }
-
- putchar ('\n');
-
- /*
- Flag the server that we're done.
- */
- *shm = '*';
-
- /*
- Here, we use close() instead of remove(). Remember, that
- will just remove our attachment to the segment. Look
- closely at the 'nattch' column of the ipcs output & you'll
- see that this decrements it by one.
- */
- shm_client.close();
-
- return 0;
-}
-
-#endif /* ACE_LACKS_SYSV_SHMEM */
diff --git a/docs/tutorials/019/client2.cpp b/docs/tutorials/019/client2.cpp
deleted file mode 100644
index 6ef80ad2454..00000000000
--- a/docs/tutorials/019/client2.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// $Id$
-
-#include "shmem.h"
-
-#include "ace/Log_Msg.h"
-
-#if defined(ACE_LACKS_SYSV_SHMEM)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "System V Shared Memory not available on this platform\n"),
- 100);
-}
-#else // ACE_LACKS_SYSV_SHMEM
-int
-main (int, char *[])
-{
- ACE_Shared_Memory_SV shm_client (SHM_KEY,
- sizeof (SharedData));
-
- char *shm = (char *) shm_client.malloc ();
-
- ACE_DEBUG ((LM_INFO,
- "(%P|%t) Shared Memory is at 0x%x\n",
- shm));
-
- /*
- More placement new. The constructor parameter prevents
- clobbering what the server may have written with it's show()
- method.
- */
- SharedData *sd = new (shm) SharedData (0);
-
- // Show it
- sd->show ();
-
- // Change it
- sd->set ();
-
- // Advertise it
- sd->available (1);
-
- shm_client.close ();
-
- return 0;
-}
-
-#endif /* ACE_LACKS_SYSV_SHMEM */
diff --git a/docs/tutorials/019/combine.shar b/docs/tutorials/019/combine.shar
deleted file mode 100644
index 260a7f8a7b8..00000000000
--- a/docs/tutorials/019/combine.shar
+++ /dev/null
@@ -1,358 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/019'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 409 -rw-rw-r-- hdr
-# 71 -rw-rw-r-- bodies
-# 2006 -rw-rw-r-- page01.pre
-# 562 -rw-rw-r-- page02.pre
-# 217 -rw-rw-r-- page03.pre
-# 674 -rw-rw-r-- page04.pre
-# 178 -rw-rw-r-- page05.pre
-# 401 -rw-rw-r-- page06.pre
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh00389; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 019</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 019</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Sharing your Memories</FONT></B></CENTER>
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-3b7d0df272c309b4b8d67d872956bae3 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 409 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '409,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-server.cpp
-client.cpp
-server2.cpp client2.cpp
-shmem.h shmem.cpp
-SHAR_EOF
- $shar_touch -am 1228162198 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-7eebfcd7b463404b494b4c97107f9d14 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 71 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '71,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X Did you ever wish you could read someone's mind? Or that they could
-X read yours?
-X <p>
-X Well, we won't be doing that here but we'll try to get close by
-X letting your code do something similar: Shared Memory.
-X <p>
-X What we're going to do is ask the operating system to set
-X aside a part of RAM that we can share with another process. By
-X doing this, we can allow our applications to swap data very
-X efficiently.
-X <p>
-X Along the way, we'll have to come up with some sort of
-X coordination betweent the processes. That is the most
-X difficult part of a shared memory system. In the tutorial we're
-X just going to take a simplistic approach (eg -- busy loop) but
-X real-world applications will need to take a serious look at
-X process-level synch mechanisms such as ACE_*_Semaphore.
-X <P>
-X Caveat: I've barely begun to use shared memory
-X myself. This tutorial and the next are very simple-minded and
-X primitive. Anyone who wants to provide more realistic
-X replacements is encouraged to drop me a note
-X (<A HREF="mailto:jcej@lads.com">jcej@lads.com</A>).
-<P>
-A tutorial wouldn't be complete without Kirthika's abstract:
-<UL>
-This tutorial shows how to use memory as a shared resource between the
-client and server processes. ACE_Shared_Memory_SV has been used for
-creating
-the shared memory segment. Two different approaches have been used. One
-uses the malloc () method to allocate memory while the other uses the
-placement new expression (C++) of allocating a memory chunk in advance
-and using it on demand.
-<P>
-The server has a string of alphabets from a-z which are converted to
-uppercase
-by the client proving that the same memory locations are being shared
-between
-the two processes. The syncronisation between the server and client is
-done
-using the ACE_OS::sleep () instead of a semaphore/mutexes with the aim
-of keeping our first dive into shared memory usage simple and easy to
-fathom.
-</UL>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-a039d9160f8f35867c38c73ced65aaef page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 2006 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '2006,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-We'll first take a look at the server side. As usual with
-co-operating applications, you need the server up and running first.
-In the case of shared memory applications, the server will create the
-shared memory segment. In this example, it will also remove the
-segment when done. It is important to realize though that the segment
-can be created external to your application and can persist beyond
-it's lifetime. In fact, you can use shared memory to create a layer
-of persistence between application instances (at least, until the
-machine comes down.)
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-c879cf850b3141d673c5c56e98a80e16 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 562 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '562,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-The client app looks much like the server. We could have included the
-CREATE flag with no ill effects but note the use of close() instead of
-remove(). Picking the correct detachment method is rather important!
-<HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-a244be660bba913fe08d218180cefca5 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 217 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '217,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-X Before we move on to shmem.h, I want to show a different approach. In
-X this new client/server pair, I use placement new to stuff an object
-X (instead of a blob of bytes) into the shared memory segment.
-X <P>
-X There are a few caveats to putting objects into shared memory. The
-X most important ones all deal with pointers:
-X <ul>
-X <li>Be sure your pointers point into the shared memory and not
-X local process memory.
-X <li>Only in very special cases will objects with virtual methods
-X work (because of the VTable pointers).
-X </ul>
-<P>
-That's not to say you shouldn't try... Just try carefully and test a lot!
-X <HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-721c4a100d908d9d62c9d98950ace482 page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 674 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '674,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-X Here's the mysterious shmem.h. I wanted to show it after the
-X placement-new client and server so that the SharedData object
-X would have some relevance.
-X <HR>
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-42f4ddae6f0ce1583d1dc03d5e485cba page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 178 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '178,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-X That's it! I warned you that this one was pretty primitive.
-X
-X <ul>
-X <li><A HREF="server.cpp">server.cpp</A>
-X <li><A HREF="client.cpp">client.cpp</A>
-X <li><A HREF="server2.cpp">server2.cpp</A>
-X <li><A HREF="client2.cpp">client2.cpp</A>
-X <li><A HREF="shmem.h">shmem.h</A>
-X <li><A HREF="shmem.cpp">shmem.cpp</A>
-X <li><A HREF="Makefile">Makefile</A>
-X </ul>
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-6e3002889733f5e80e7f9cc945965955 page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 401 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '401,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh00389
-exit 0
diff --git a/docs/tutorials/019/page01.html b/docs/tutorials/019/page01.html
deleted file mode 100644
index 8a6d09e5ab0..00000000000
--- a/docs/tutorials/019/page01.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 019</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 019</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
- Did you ever wish you could read someone's mind? Or that they could
- read yours?
- <p>
- Well, we won't be doing that here but we'll try to get close by
- letting your code do something similar: Shared Memory.
- <p>
- What we're going to do is ask the operating system to set
- aside a part of RAM that we can share with another process. By
- doing this, we can allow our applications to swap data very
- efficiently.
- <p>
- Along the way, we'll have to come up with some sort of
- coordination betweent the processes. That is the most
- difficult part of a shared memory system. In the tutorial we're
- just going to take a simplistic approach (eg -- busy loop) but
- real-world applications will need to take a serious look at
- process-level synch mechanisms such as ACE_*_Semaphore.
- <P>
- Caveat: I've barely begun to use shared memory
- myself. This tutorial and the next are very simple-minded and
- primitive. Anyone who wants to provide more realistic
- replacements is encouraged to drop me a note
- (<A HREF="mailto:jcej@lads.com">jcej@lads.com</A>).
-<P>
-A tutorial wouldn't be complete without Kirthika's abstract:
-<UL>
-This tutorial shows how to use memory as a shared resource between the
-client and server processes. ACE_Shared_Memory_SV has been used for
-creating
-the shared memory segment. Two different approaches have been used. One
-uses the malloc () method to allocate memory while the other uses the
-placement new expression (C++) of allocating a memory chunk in advance
-and using it on demand.
-<P>
-The server has a string of alphabets from a-z which are converted to
-uppercase
-by the client proving that the same memory locations are being shared
-between
-the two processes. The syncronisation between the server and client is
-done
-using the ACE_OS::sleep () instead of a semaphore/mutexes with the aim
-of keeping our first dive into shared memory usage simple and easy to
-fathom.
-</UL>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/019/page02.html b/docs/tutorials/019/page02.html
deleted file mode 100644
index b769313915f..00000000000
--- a/docs/tutorials/019/page02.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 019</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 019</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-We'll first take a look at the server side. As usual with
-co-operating applications, you need the server up and running first.
-In the case of shared memory applications, the server will create the
-shared memory segment. In this example, it will also remove the
-segment when done. It is important to realize though that the segment
-can be created external to your application and can persist beyond
-it's lifetime. In fact, you can use shared memory to create a layer
-of persistence between application instances (at least, until the
-machine comes down.)
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>/*
- The client and server both need to know the shared memory key and
- size. To prevent headaches, I've put those into a header they both
- can share.
- */</font>
-<font color=blue>#include</font> "<font color=green>shmem.h</font>"
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-<font color=blue>#if defined</font> (<font color=purple>ACE_LACKS_SYSV_SHMEM</font>)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>System V Shared Memory not available on this platform\n</font>"),
- 100);
-}
-#else <font color=red>// ACE_LACKS_SYSV_SHMEM</font>
-int
-main (int, char *argv[])
-{
- <font color=red>/*
- You can use the ACE_Malloc template to create memory pools
- from various shared memory strategies. It's really cool.
- We're not going to use it.
-
- Instead, I want to get to the roots of it all and directly
- use ACE_Shared_Memory_SV. Like many ACE objects, this is a
- wrapper around OS services.
-
- With this constructor we create a shared memory area to
- use. The ACE_CREATE flag will cause it to be created if it
- doesn't already exist. The SHM_KEY value (from shmem.h)
- uniquely identifies the segment and allows other apps to
- attach to the same segment. Execute 'ipcs -m' before and
- after starting this app to see that the segment is created.
- (I can't for the life of me correlate the SHM_KEY value back
- to the key/id reported by ipcs though.)
- */</font>
- ACE_Shared_Memory_SV shm_server (SHM_KEY, SHMSZ,
- <font color=#008888>ACE_Shared_Memory_SV::ACE_CREATE</font>);
-
- <font color=red>/*
- The constructor created the segment for us but we still need
- to map the segment into our address space. (Note that you
- can pass a value to malloc() but it will be silently
- igored.) The void* (cast to char*) that is returned will
- point to the beginning of the shared segment.
- */</font>
- char *shm = (char *) shm_server.malloc ();
-
- <font color=red>/*
- Since we're asking to create the segment, we will fail if it
- already exists. We could fall back and simply attach to it
- like the client but I'd rather not assume it was a previous
- instance of this app that left the segment around.
- */</font>
- if (shm == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n\t(%P|%t) Cannot create shared memory segment.\n</font>"
- "<font color=green>\tUse 'ipcs' to see if it already exists\n</font>",
- argv[0]),
- 100);
-
- <font color=red>/*
- This second pointer will be used to walk through the block
- of memory...
- */</font>
- char *s = shm;
-
- <font color=red>/*
- Out of curiosity, I added this output message. The tests
- I've done so far show me the same address for client and
- server. What does your OS tell you?
- */</font>
- ACE_DEBUG ((LM_INFO,
- "<font color=green>(%P|%t) Shared Memory is at 0x%x\n</font>",
- shm ));
-
- <font color=red>/*
- At this point, our application can use the pointer just like
- any other given to us by new or malloc. For our purposes,
- we'll copy in the alpabet as a null-terminated string.
- */</font>
- for (char c = 'a'; c &lt;= 'z'; c++)
- *s++ = c;
-
- *s = '\0';
-
- <font color=red>/*
- Using a simple not-too-busy loop, we'll wait for the client
- (or anyone else) to change the first byte in the shared area
- to a '*' character. This is where you would rather use
- semaphores or some similar "<font color=green>resource light</font>" approach.
- */</font>
- while (*shm != '*')
- <font color=#008888>ACE_OS::sleep</font> (1);
-
- <font color=red>/*
- Let's see what the client did to the segment...
- */</font>
- for (s = shm; *s != '\0'; s++)
- putchar (*s);
-
- putchar ('\n');
-
- <font color=red>/*
- If you're done with the segment and ready for it to be
- removed from the system, use the remove() method. Once the
- program exits, do 'ipcs -m' again and you'll see that the
- segment is gone. If you just want to terminate your use of
- the segment but leave it around for other apps, use the
- close() method instead.
-
- The free() method may be tempting but it doesn't actually do
- anything. If your app is *really* done with the shared
- memory then use either close() or remove().
- */</font>
- if (shm_server.remove () &lt; 0)
- ACE_ERROR ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>remove</font>"));
- return 0;
-}
-
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_SYSV_SHMEM */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/019/page03.html b/docs/tutorials/019/page03.html
deleted file mode 100644
index dd9d82eb5ee..00000000000
--- a/docs/tutorials/019/page03.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 019</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 019</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The client app looks much like the server. We could have included the
-CREATE flag with no ill effects but note the use of close() instead of
-remove(). Picking the correct detachment method is rather important!
-<HR>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=red>// Again, the common stuff</font>
-<font color=blue>#include</font> "<font color=green>shmem.h</font>"
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-<font color=blue>#if defined</font>(<font color=purple>ACE_LACKS_SYSV_SHMEM</font>)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>System V Shared Memory not available on this platform\n</font>"),
- 100);
-}
-#else <font color=red>// ACE_LACKS_SYSV_SHMEM</font>
-int
-main (int, char *[])
-{
- <font color=red>/*
- Attach ourselves to the shared memory segment.
- */</font>
- ACE_Shared_Memory_SV shm_client (SHM_KEY, SHMSZ);
-
- <font color=red>/*
- Get our reference to the segment...
- */</font>
- char *shm = (char *) shm_client.malloc ();
-
- <font color=red>/*
- If the segment identified by SHM_KEY didn't exist then we'll
- get back a 0 from malloc(). You should do this check even
- if you include the CREATE flag 'cause you never know when it
- might fail.
- */</font>
- if (shm == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P|%t) Could not get the segment!\n</font>"),
- 100);
-
- <font color=red>/*
- Does this match what your server said?
- */</font>
- ACE_DEBUG ((LM_INFO,
- "<font color=green>(%P|%t) Shared Memory is at 0x%x\n</font>",
- shm ));
-
- <font color=red>/*
- Show the shared data to the user and convert it all to
- uppper-case along the way.
- */</font>
- for (char *s = shm; *s != '\0'; s++)
- {
- putchar (*s);
- *s = toupper(*s);
- }
-
- putchar ('\n');
-
- <font color=red>/*
- Flag the server that we're done.
- */</font>
- *shm = '*';
-
- <font color=red>/*
- Here, we use close() instead of remove(). Remember, that
- will just remove our attachment to the segment. Look
- closely at the 'nattch' column of the ipcs output & you'll
- see that this decrements it by one.
- */</font>
- shm_client.close();
-
- return 0;
-}
-
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_SYSV_SHMEM */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/019/page04.html b/docs/tutorials/019/page04.html
deleted file mode 100644
index 898ed89e107..00000000000
--- a/docs/tutorials/019/page04.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 019</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 019</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
- Before we move on to shmem.h, I want to show a different approach. In
- this new client/server pair, I use placement new to stuff an object
- (instead of a blob of bytes) into the shared memory segment.
- <P>
- There are a few caveats to putting objects into shared memory. The
- most important ones all deal with pointers:
- <ul>
- <li>Be sure your pointers point into the shared memory and not
- local process memory.
- <li>Only in very special cases will objects with virtual methods
- work (because of the VTable pointers).
- </ul>
-<P>
-That's not to say you shouldn't try... Just try carefully and test a lot!
- <HR>
-<HR width=50%><P><center>server2.cpp</center><HR width=50%>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>shmem.h</font>"
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-<font color=blue>#if defined</font> (<font color=purple>ACE_LACKS_SYSV_SHMEM</font>)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>System V Shared Memory not available on this platform\n</font>"),
- 100);
-}
-#else <font color=red>// ACE_LACKS_SYSV_SHMEM</font>
-int
-main (int, char *argv[])
-{
- <font color=red>// Be sure the segment is sized to hold our object.</font>
- ACE_Shared_Memory_SV shm_server (SHM_KEY,
- sizeof (SharedData),
- <font color=#008888>ACE_Shared_Memory_SV::ACE_CREATE</font>);
- char *shm = (char *) shm_server.malloc ();
-
- if (shm == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>%p\n\t(%P|%t) Cannot create shared memory segment.\n</font>"
- "<font color=green>\tUse 'ipcs' to see if it already exists\n</font>",
- argv[0]),
- 100);
-
- ACE_DEBUG ((LM_INFO,
- "<font color=green>(%P|%t) Shared Memory is at 0x%x\n</font>",
- shm ));
-
- <font color=red>/*
- Use the placement new syntax to stuff the object into the
- correct location. I think they generally reserve this for
- the advanced class...
- */</font>
- SharedData *sd = new (shm) SharedData;
-
- <font color=red>// Use the set() method to put some data into the object</font>
- sd->set ();
-
- <font color=red>// Set the 'available' flag to zero so that we can wait on it</font>
- sd->available (0);
-
- <font color=red>/*
- Another cheesy busy loop while we wait for the object to
- become available. The cool way would be to hide a semaphore
- or two behind this method call & eliminate the sleep.
- */</font>
- while (sd->available () == 0)
- <font color=#008888>ACE_OS::sleep</font> (1);
-
- <font color=red>// Show the user what's in the segment</font>
- sd->show ();
-
- <font color=red>// All done.</font>
- if (shm_server.remove () &lt; 0)
- ACE_ERROR ((LM_ERROR,
- "<font color=green>%p\n</font>",
- "<font color=green>remove</font>"));
- return 0;
-}
-
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_SYSV_SHMEM */</font>
-</PRE>
-<HR width=50%><P><center>client2.cpp</center><HR width=50%>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>shmem.h</font>"
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-<font color=blue>#if defined</font>(<font color=purple>ACE_LACKS_SYSV_SHMEM</font>)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>System V Shared Memory not available on this platform\n</font>"),
- 100);
-}
-#else <font color=red>// ACE_LACKS_SYSV_SHMEM</font>
-int
-main (int, char *[])
-{
- ACE_Shared_Memory_SV shm_client (SHM_KEY,
- sizeof (SharedData));
-
- char *shm = (char *) shm_client.malloc ();
-
- ACE_DEBUG ((LM_INFO,
- "<font color=green>(%P|%t) Shared Memory is at 0x%x\n</font>",
- shm));
-
- <font color=red>/*
- More placement new. The constructor parameter prevents
- clobbering what the server may have written with it's show()
- method.
- */</font>
- SharedData *sd = new (shm) SharedData (0);
-
- <font color=red>// Show it</font>
- sd->show ();
-
- <font color=red>// Change it</font>
- sd->set ();
-
- <font color=red>// Advertise it</font>
- sd->available (1);
-
- shm_client.close ();
-
- return 0;
-}
-
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_SYSV_SHMEM */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/019/page05.html b/docs/tutorials/019/page05.html
deleted file mode 100644
index 4f81f90b7d9..00000000000
--- a/docs/tutorials/019/page05.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 019</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 019</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
- Here's the mysterious shmem.h. I wanted to show it after the
- placement-new client and server so that the SharedData object
- would have some relevance.
- <HR>
-<HR width=50%><P><center>shmem.h</center><HR width=50%>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>SHMEM_H</font>
-<font color=blue>#define</font> <font color=purple>SHMEM_H</font>
-
-<font color=red>// This is where you'll find the ACE_Shared_Memory_SV object</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/Shared_Memory_SV.h">ace/Shared_Memory_SV.h</A>"
-
-<font color=red>// SHMSZ is just enough for the alphabet and a null terminator</font>
-<font color=blue>#define</font> <font color=purple>SHMSZ</font> 27
-
-<font color=red>// Play with this, pick a value you like that isn't used by something else.</font>
-<font color=blue>#define</font> <font color=purple>SHM_KEY</font> 4200
-
-<font color=red>/*
- This is what we stuff into shared memory via placement new in the
- second client/server pair. Notice that it is a very basic object
- with no virtual methods and only concrete data.
- */</font>
-class SharedData
-{
-public:
- <font color=red>// Construct the object and optionally initialize buf_.</font>
- SharedData (int initialized = 1);
-
- <font color=red>// Put some data into buf_</font>
- void set (void);
-
- <font color=red>// Show the data in buf_</font>
- void show (void);
-
- <font color=red>// What is the value of available_</font>
- int available (void);
-
- <font color=red>// Set the value of available_</font>
- void available (int not_in_use);
-
-protected:
- <font color=red>// Big enough for a simple message</font>
- char buf_[128];
- <font color=red>// A cheap mutex</font>
- int available_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* SHMEM_H */</font>
-</PRE>
-<HR width=50%><P><center>shmem.cpp</center><HR width=50%>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>shmem.h</font>"
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-#if ! defined (ACE_LACKS_SYSV_SHMEM)
-
-<font color=red>/*
- Set the available_ flag to zero & optionally initialize the buf_
- area.
-*/</font>
-
-<font color=#008888>SharedData::SharedData</font> (int initialize)
- : available_ (0)
-{
- if (initialize)
- <font color=#008888>ACE_OS::sprintf</font> (buf_, "<font color=green>UNSET\n</font>");
-}
-
-<font color=red>/*
- Write the process ID into the buffer. This will prove to us that
- the data really is shared between the client and server.
-*/</font>
-void <font color=#008888>SharedData::set</font> (void)
-{
- <font color=#008888>ACE_OS::sprintf</font> (buf_,
- "<font color=green>My PID is (%d)\n</font>",
- <font color=#008888>ACE_OS::getpid</font> ());
-}
-
-<font color=red>/*
- Display the buffer to the user
-*/</font>
-void <font color=#008888>SharedData::show</font>(void)
-{
- ACE_DEBUG ((LM_INFO,
- "<font color=green>(%P|%t) Shared Data text is (%s)\n</font>",
- buf_));
-}
-
-<font color=red>// Show flag</font>
-int <font color=#008888>SharedData::available</font>(void)
-{
- return available_;
-}
-
-<font color=red>// Set flag</font>
-void <font color=#008888>SharedData::available</font>(int a)
-{
- available_ = a;
-}
-
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_SYSV_SHMEM */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/019/page06.html b/docs/tutorials/019/page06.html
deleted file mode 100644
index 88b263a0400..00000000000
--- a/docs/tutorials/019/page06.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 019</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 019</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
- That's it! I warned you that this one was pretty primitive.
-
- <ul>
- <li><A HREF="server.cpp">server.cpp</A>
- <li><A HREF="client.cpp">client.cpp</A>
- <li><A HREF="server2.cpp">server2.cpp</A>
- <li><A HREF="client2.cpp">client2.cpp</A>
- <li><A HREF="shmem.h">shmem.h</A>
- <li><A HREF="shmem.cpp">shmem.cpp</A>
- <li><A HREF="Makefile">Makefile</A>
- </ul>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/019/server.cpp b/docs/tutorials/019/server.cpp
deleted file mode 100644
index ec65de3bfb5..00000000000
--- a/docs/tutorials/019/server.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-// $Id$
-
-/*
- The client and server both need to know the shared memory key and
- size. To prevent headaches, I've put those into a header they both
- can share.
- */
-#include "shmem.h"
-
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_SYSV_SHMEM)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "System V Shared Memory not available on this platform\n"),
- 100);
-}
-#else // ACE_LACKS_SYSV_SHMEM
-int
-main (int, char *argv[])
-{
- /*
- You can use the ACE_Malloc template to create memory pools
- from various shared memory strategies. It's really cool.
- We're not going to use it.
-
- Instead, I want to get to the roots of it all and directly
- use ACE_Shared_Memory_SV. Like many ACE objects, this is a
- wrapper around OS services.
-
- With this constructor we create a shared memory area to
- use. The ACE_CREATE flag will cause it to be created if it
- doesn't already exist. The SHM_KEY value (from shmem.h)
- uniquely identifies the segment and allows other apps to
- attach to the same segment. Execute 'ipcs -m' before and
- after starting this app to see that the segment is created.
- (I can't for the life of me correlate the SHM_KEY value back
- to the key/id reported by ipcs though.)
- */
- ACE_Shared_Memory_SV shm_server (SHM_KEY, SHMSZ,
- ACE_Shared_Memory_SV::ACE_CREATE);
-
- /*
- The constructor created the segment for us but we still need
- to map the segment into our address space. (Note that you
- can pass a value to malloc() but it will be silently
- igored.) The void* (cast to char*) that is returned will
- point to the beginning of the shared segment.
- */
- char *shm = (char *) shm_server.malloc ();
-
- /*
- Since we're asking to create the segment, we will fail if it
- already exists. We could fall back and simply attach to it
- like the client but I'd rather not assume it was a previous
- instance of this app that left the segment around.
- */
- if (shm == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n\t(%P|%t) Cannot create shared memory segment.\n"
- "\tUse 'ipcs' to see if it already exists\n",
- argv[0]),
- 100);
-
- /*
- This second pointer will be used to walk through the block
- of memory...
- */
- char *s = shm;
-
- /*
- Out of curiosity, I added this output message. The tests
- I've done so far show me the same address for client and
- server. What does your OS tell you?
- */
- ACE_DEBUG ((LM_INFO,
- "(%P|%t) Shared Memory is at 0x%x\n",
- shm ));
-
- /*
- At this point, our application can use the pointer just like
- any other given to us by new or malloc. For our purposes,
- we'll copy in the alpabet as a null-terminated string.
- */
- for (char c = 'a'; c <= 'z'; c++)
- *s++ = c;
-
- *s = '\0';
-
- /*
- Using a simple not-too-busy loop, we'll wait for the client
- (or anyone else) to change the first byte in the shared area
- to a '*' character. This is where you would rather use
- semaphores or some similar "resource light" approach.
- */
- while (*shm != '*')
- ACE_OS::sleep (1);
-
- /*
- Let's see what the client did to the segment...
- */
- for (s = shm; *s != '\0'; s++)
- putchar (*s);
-
- putchar ('\n');
-
- /*
- If you're done with the segment and ready for it to be
- removed from the system, use the remove() method. Once the
- program exits, do 'ipcs -m' again and you'll see that the
- segment is gone. If you just want to terminate your use of
- the segment but leave it around for other apps, use the
- close() method instead.
-
- The free() method may be tempting but it doesn't actually do
- anything. If your app is *really* done with the shared
- memory then use either close() or remove().
- */
- if (shm_server.remove () < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "remove"));
- return 0;
-}
-
-#endif /* ACE_LACKS_SYSV_SHMEM */
diff --git a/docs/tutorials/019/server2.cpp b/docs/tutorials/019/server2.cpp
deleted file mode 100644
index dca34b15acd..00000000000
--- a/docs/tutorials/019/server2.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// $Id$
-
-#include "shmem.h"
-
-#include "ace/Log_Msg.h"
-
-#if defined (ACE_LACKS_SYSV_SHMEM)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "System V Shared Memory not available on this platform\n"),
- 100);
-}
-#else // ACE_LACKS_SYSV_SHMEM
-int
-main (int, char *argv[])
-{
- // Be sure the segment is sized to hold our object.
- ACE_Shared_Memory_SV shm_server (SHM_KEY,
- sizeof (SharedData),
- ACE_Shared_Memory_SV::ACE_CREATE);
- char *shm = (char *) shm_server.malloc ();
-
- if (shm == 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n\t(%P|%t) Cannot create shared memory segment.\n"
- "\tUse 'ipcs' to see if it already exists\n",
- argv[0]),
- 100);
-
- ACE_DEBUG ((LM_INFO,
- "(%P|%t) Shared Memory is at 0x%x\n",
- shm ));
-
- /*
- Use the placement new syntax to stuff the object into the
- correct location. I think they generally reserve this for
- the advanced class...
- */
- SharedData *sd = new (shm) SharedData;
-
- // Use the set() method to put some data into the object
- sd->set ();
-
- // Set the 'available' flag to zero so that we can wait on it
- sd->available (0);
-
- /*
- Another cheesy busy loop while we wait for the object to
- become available. The cool way would be to hide a semaphore
- or two behind this method call & eliminate the sleep.
- */
- while (sd->available () == 0)
- ACE_OS::sleep (1);
-
- // Show the user what's in the segment
- sd->show ();
-
- // All done.
- if (shm_server.remove () < 0)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "remove"));
- return 0;
-}
-
-#endif /* ACE_LACKS_SYSV_SHMEM */
diff --git a/docs/tutorials/019/shmem.cpp b/docs/tutorials/019/shmem.cpp
deleted file mode 100644
index 2f05aa01160..00000000000
--- a/docs/tutorials/019/shmem.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-// $Id$
-
-#include "shmem.h"
-
-#include "ace/Log_Msg.h"
-
-#if ! defined (ACE_LACKS_SYSV_SHMEM)
-
-/*
- Set the available_ flag to zero & optionally initialize the buf_
- area.
-*/
-
-SharedData::SharedData (int initialize)
- : available_ (0)
-{
- if (initialize)
- ACE_OS::sprintf (buf_, "UNSET\n");
-}
-
-/*
- Write the process ID into the buffer. This will prove to us that
- the data really is shared between the client and server.
-*/
-void SharedData::set (void)
-{
- ACE_OS::sprintf (buf_,
- "My PID is (%d)\n",
- ACE_OS::getpid ());
-}
-
-/*
- Display the buffer to the user
-*/
-void SharedData::show(void)
-{
- ACE_DEBUG ((LM_INFO,
- "(%P|%t) Shared Data text is (%s)\n",
- buf_));
-}
-
-// Show flag
-int SharedData::available(void)
-{
- return available_;
-}
-
-// Set flag
-void SharedData::available(int a)
-{
- available_ = a;
-}
-
-#endif /* ACE_LACKS_SYSV_SHMEM */
diff --git a/docs/tutorials/019/shmem.h b/docs/tutorials/019/shmem.h
deleted file mode 100644
index 74d4798b794..00000000000
--- a/docs/tutorials/019/shmem.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// $Id$
-
-#ifndef SHMEM_H
-#define SHMEM_H
-
-// This is where you'll find the ACE_Shared_Memory_SV object
-#include "ace/Shared_Memory_SV.h"
-
-// SHMSZ is just enough for the alphabet and a null terminator
-#define SHMSZ 27
-
-// Play with this, pick a value you like that isn't used by something else.
-#define SHM_KEY 4200
-
-/*
- This is what we stuff into shared memory via placement new in the
- second client/server pair. Notice that it is a very basic object
- with no virtual methods and only concrete data.
- */
-class SharedData
-{
-public:
- // Construct the object and optionally initialize buf_.
- SharedData (int initialized = 1);
-
- // Put some data into buf_
- void set (void);
-
- // Show the data in buf_
- void show (void);
-
- // What is the value of available_
- int available (void);
-
- // Set the value of available_
- void available (int not_in_use);
-
-protected:
- // Big enough for a simple message
- char buf_[128];
- // A cheap mutex
- int available_;
-};
-
-#endif /* SHMEM_H */
diff --git a/docs/tutorials/020/020-client.dsp b/docs/tutorials/020/020-client.dsp
deleted file mode 100644
index 92d8ebe78b0..00000000000
--- a/docs/tutorials/020/020-client.dsp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Microsoft Developer Studio Project File - Name="020 client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=020 client - 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 "020 client.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 "020 client.mak" CFG="020 client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "020 client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "020 client - 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)" == "020 client - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "020 client - 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 ""
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "020 client - Win32 Release"
-# Name "020 client - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\client.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\mmap.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\mmap.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/020/020-client2.dsp b/docs/tutorials/020/020-client2.dsp
deleted file mode 100644
index 4bd463b95b3..00000000000
--- a/docs/tutorials/020/020-client2.dsp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Microsoft Developer Studio Project File - Name="020 client2" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=020 client2 - 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 "020 client2.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 "020 client2.mak" CFG="020 client2 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "020 client2 - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "020 client2 - 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)" == "020 client2 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "020 client2 - 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 ""
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "020 client2 - Win32 Release"
-# Name "020 client2 - Win32 Debug"
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\mmap.h
-# End Source File
-# End Group
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\client2.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\mmap.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/020/020-server.dsp b/docs/tutorials/020/020-server.dsp
deleted file mode 100644
index 26eced19e76..00000000000
--- a/docs/tutorials/020/020-server.dsp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Microsoft Developer Studio Project File - Name="020 server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=020 server - 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 "020 server.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 "020 server.mak" CFG="020 server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "020 server - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "020 server - 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)" == "020 server - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "020 server - 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 ""
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "020 server - Win32 Release"
-# Name "020 server - Win32 Debug"
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\mmap.h
-# End Source File
-# End Group
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\mmap.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\server.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/020/020-server2.dsp b/docs/tutorials/020/020-server2.dsp
deleted file mode 100644
index 9011a553e0f..00000000000
--- a/docs/tutorials/020/020-server2.dsp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Microsoft Developer Studio Project File - Name="020 server2" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=020 server2 - 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 "020 server2.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 "020 server2.mak" CFG="020 server2 - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "020 server2 - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "020 server2 - 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)" == "020 server2 - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "020 server2 - 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 ""
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "020 server2 - Win32 Release"
-# Name "020 server2 - Win32 Debug"
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\mmap.h
-# End Source File
-# End Group
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\mmap.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\server2.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/020/Makefile b/docs/tutorials/020/Makefile
deleted file mode 100644
index f71ec01f963..00000000000
--- a/docs/tutorials/020/Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = client server client2 server2
-
-FILES = mmap
-
-BUILD = $(VBIN)
-
-BSRC = $(addsuffix .cpp,$(BIN))
-
-SRC += $(addsuffix .cpp,$(FILES))
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-rename : #
- for i in *.cxx ; do \
- n=`expr "$$i" : "\(.*\).cxx"` ;\
- mv $$i $$n.cpp ;\
- done
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : #
- $(MAKE) SRC="$(SRC) $(BSRC)" depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include .depend
diff --git a/docs/tutorials/020/client.cpp b/docs/tutorials/020/client.cpp
deleted file mode 100644
index 2ffb34a7404..00000000000
--- a/docs/tutorials/020/client.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-// $Id$
-
-#include "mmap.h"
-
-#include "ace/Log_Msg.h"
-
-int main (int, char *[])
-{
- ACE_Shared_Memory_MM shm_client (SHM_KEY, SHMSZ);
- char *shm = (char *) shm_client.malloc ();
-
- ACE_DEBUG ((LM_INFO, "(%P|%t) Memory Mapped file is at 0x%x\n",
- shm ));
-
- if( ! shm )
- {
- ACE_ERROR_RETURN ((LM_ERROR,"(%P|%t) Could not get the mmapped file!\n"),100);
- }
-
- for (char *s = shm; *s != '\0'; s++)
- {
- putchar (*s);
- *s = toupper(*s);
- }
-
- putchar ('\n');
- *shm = '*';
-
- shm_client.close();
-
- return 0;
-}
diff --git a/docs/tutorials/020/client2.cpp b/docs/tutorials/020/client2.cpp
deleted file mode 100644
index 0bd19359e41..00000000000
--- a/docs/tutorials/020/client2.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-// $Id$
-
-#include "mmap.h"
-
-#include "ace/Log_Msg.h"
-
-int main (int, char *[])
-{
- ACE_Shared_Memory_MM shm_client (SHM_KEY, sizeof(SharedData));
-
- char *shm = (char *) shm_client.malloc ();
-
- ACE_DEBUG ((LM_INFO, "(%P|%t) Memory Mapped file is at 0x%x\n",
- shm ));
-
- SharedData * sd = new(shm) SharedData(0);
-
- sd->show();
- sd->set();
- sd->available(1);
-
- shm_client.close();
-
- return 0;
-}
diff --git a/docs/tutorials/020/combine.shar b/docs/tutorials/020/combine.shar
deleted file mode 100644
index 5ea0eebeecd..00000000000
--- a/docs/tutorials/020/combine.shar
+++ /dev/null
@@ -1,364 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/020'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 426 -rw-rw-r-- hdr
-# 69 -rw-rw-r-- bodies
-# 1394 -rw-rw-r-- page01.pre
-# 524 -rw-rw-r-- page02.pre
-# 115 -rw-rw-r-- page03.pre
-# 410 -rw-rw-r-- page04.pre
-# 102 -rw-rw-r-- page05.pre
-# 371 -rw-rw-r-- page06.pre
-# 131 -rw-rw-r-- page02.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh00417; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 020</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 020</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Sharing your Memories with persistence</FONT></B></CENTER>
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-edd6dc67f13434391cf73b7604485b80 hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 426 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '426,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-server.cpp
-client.cpp
-server2.cpp client2.cpp
-mmap.h mmap.cpp
-SHAR_EOF
- $shar_touch -am 1228174898 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-a5d087bf1c11cf431c082ba146f3c6aa bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 69 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '69,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X This tutorial mirrors the previous. Instead of using shared memory,
-X this time we'll be using a memory-mapped file.
-X <p>
-X The cool thing about doing it this way is that we gain
-X persistence of memory even across reboots. I wonder if you
-X could memory map a file that's mounted via NFS?
-X <p>
-X Like the shared memory tutorial, this one is also very basic and
-X primitive. I'm assuming you've read that one, so I'll just hit
-X the high points this time through..
-<P>
-Kirthika's abstract:
-<UL>
-Here, the ACE_Shared_Memory_MM class has been used to provide
-persistence of the contents of the shared memory resource used by
-the server and client. A memory_map which is really a file mapped onto
-memory appears like an array which can be
-easily manipulated while actually the data is stored in a file thus
-making the contents permanent. In the previous tutorial, this wasnt
-possible as we were dealing with shared memory allocated from the RAM.
-<P>
-Again, here too, the example consists of a server and a client sharing
-memory
-(the mem_map) and the server writing a a-z string to it which will
-be successfully converted to uppercase by the client.
-<P>
-Notice that, similarities in usage abound between the previous and the
-current tutorial which will prove to be a force for templatisation.
-For that we need to go ahead -- to the next tutorial!
-X
-</UL>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-abcb95607715bae0a3e648672ec2c2bd page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 1394 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '1394,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-X Here's our new server using a memory mapped file instead of Unix
-X System V shared memory. Print out both servers and hold 'em up
-X to a strong light. I think you'll see there isn't much
-X difference.
-X <p>
-X The filename is defined in mmap.h as <i>mmapfile</i>. You can
-X <i>cat</i> it any time to see what's in there. If you're
-X feeling brave, try writting some data into it. On my system it
-X causes unpleasant things to happen. I'd recommend that you
-X don't do that!
-<hr>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-94e75b2122d4d4c57e6f2f75c8d09b18 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 524 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '524,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-There's no important difference between this and the SV client. Is
-X everybody thinking "template" here?
-<hr>
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-4ecbc37dd434a7f7ac6d17967625cfcb page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 115 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '115,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-I wanted to show placement new again & prove that you can use it with
-X a memory mapped file just as easily as with a shared memory
-X segment.
-X <p>
-Imagine if you had an object that contained an image & then you mapped
-X that to a file... Instead of a bunch of jpg files laying
-X around, you would actually have objects instead. Save the
-X image? No problem, it's already there!
-<hr>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-e774cae1bab0348030a224b6d2836d50 page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 410 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '410,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-The mmap.h where we define stuff that needs to be shared between the
-X apps at compile-time.
-<hr>
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-4dd4610ed79583de6edd62eeb02bf7fe page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 102 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '102,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-This one was even shorter than the last!
-X
-X <ul>
-X <li><A HREF="server.cpp">server.cpp</A>
-X <li><A HREF="client.cpp">client.cpp</A>
-X <li><A HREF="server2.cpp">server2.cpp</A>
-X <li><A HREF="client2.cpp">client2.cpp</A>
-X <li><A HREF="mmap.h">mmap.h</A>
-X <li><A HREF="mmap.cpp">mmap.cpp</A>
-X <li><A HREF="Makefile">Makefile</A>
-X </ul>
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-8c515447a6b2a9c39a25915248260602 page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 371 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '371,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pst ==============
-if test -f 'page02.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pst' &&
-<HR>
-BTW: In ACE 4.6.7 and prior there is a bug that prevents the remove()
-X method from actually removing the physical file.
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pst' &&
- chmod 0664 'page02.pst' ||
- $echo 'restore of' 'page02.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pst:' 'MD5 check failed'
-6c619eb19adbe3a79b5e6d2bf8b0e6d0 page02.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pst'`"
- test 131 -eq "$shar_count" ||
- $echo 'page02.pst:' 'original size' '131,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh00417
-exit 0
diff --git a/docs/tutorials/020/mmap.cpp b/docs/tutorials/020/mmap.cpp
deleted file mode 100644
index b99811aa0d4..00000000000
--- a/docs/tutorials/020/mmap.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-
-// $Id$
-
-#include "mmap.h"
-
-#include "ace/Log_Msg.h"
-
-SharedData::SharedData(int _initialize)
- : available_(0)
-{
- if( _initialize )
- {
- ACE_OS::sprintf(buf_,"UNSET\n");
- }
-}
-
-void SharedData::set(void)
-{
- ACE_OS::sprintf(buf_,"My PID is (%d)\n",ACE_OS::getpid());
-}
-
-void SharedData::show(void)
-{
- ACE_DEBUG ((LM_INFO, "(%P|%t) Shared Data text is (%s)\n",
- buf_ ));
-}
-
-int SharedData::available(void)
-{
- return available_;
-}
-
-void SharedData::available(int _available)
-{
- available_ = _available;
-}
diff --git a/docs/tutorials/020/mmap.h b/docs/tutorials/020/mmap.h
deleted file mode 100644
index 1604b678ccb..00000000000
--- a/docs/tutorials/020/mmap.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// $Id$
-
-#ifndef MMAP_H
-#define MMAP_H
-
-// The expected filename for ACE_Shared_Memory_MM.h
-#include "ace/Shared_Memory_MM.h"
-
-// Just enough for the alphabet...
-#define SHMSZ 27
-
-/*
- Here we use a real filename instead of an arbitrary number. This
- actually will exist in the filesystem. You can 'cat' it and
- everything!
-*/
-#define SHM_KEY "mmapfile"
-
-/*
- The SV Shared Memory SharedData object returns. It is identical to
- the one we used in that tutorial. I didn't even change the name.
- */
-class SharedData
-{
-public:
- SharedData (int initialize = 1);
-
- void set (void);
- void show (void);
- int available (void);
- void available (int not_in_use);
-
-protected:
- char buf_[128];
- int available_;
-};
-
-#endif /* MMAP_H */
diff --git a/docs/tutorials/020/mmapfile b/docs/tutorials/020/mmapfile
deleted file mode 100644
index 7ea5caf832b..00000000000
--- a/docs/tutorials/020/mmapfile
+++ /dev/null
@@ -1,8 +0,0 @@
-root tty2 Dec 13 19:43
-jcej tty5 Dec 14 20:36
-dialout modem Dec 28 15:51 (/usr/sbin/diald -daemon -f /etc/diald.lads)
-jcej ttyp1 Dec 22 00:31 (:0.0)
-jcej ttyp2 Dec 22 11:22 (:0.0)
-jcej ttyp7 Dec 22 18:22 (:0.0)
-jcej ttyp9 Dec 24 00:04 (:0.0)
-jcej ttyp8 Dec 22 18:47 (:0.0)
diff --git a/docs/tutorials/020/page01.html b/docs/tutorials/020/page01.html
deleted file mode 100644
index 61646622780..00000000000
--- a/docs/tutorials/020/page01.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 020</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 020</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories with persistence</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
- This tutorial mirrors the previous. Instead of using shared memory,
- this time we'll be using a memory-mapped file.
- <p>
- The cool thing about doing it this way is that we gain
- persistence of memory even across reboots. I wonder if you
- could memory map a file that's mounted via NFS?
- <p>
- Like the shared memory tutorial, this one is also very basic and
- primitive. I'm assuming you've read that one, so I'll just hit
- the high points this time through..
-<P>
-Kirthika's abstract:
-<UL>
-Here, the ACE_Shared_Memory_MM class has been used to provide
-persistence of the contents of the shared memory resource used by
-the server and client. A memory_map which is really a file mapped onto
-memory appears like an array which can be
-easily manipulated while actually the data is stored in a file thus
-making the contents permanent. In the previous tutorial, this wasnt
-possible as we were dealing with shared memory allocated from the RAM.
-<P>
-Again, here too, the example consists of a server and a client sharing
-memory
-(the mem_map) and the server writing a a-z string to it which will
-be successfully converted to uppercase by the client.
-<P>
-Notice that, similarities in usage abound between the previous and the
-current tutorial which will prove to be a force for templatisation.
-For that we need to go ahead -- to the next tutorial!
-
-</UL>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/020/page02.html b/docs/tutorials/020/page02.html
deleted file mode 100644
index 38d27404fa8..00000000000
--- a/docs/tutorials/020/page02.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 020</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 020</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories with persistence</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
- Here's our new server using a memory mapped file instead of Unix
- System V shared memory. Print out both servers and hold 'em up
- to a strong light. I think you'll see there isn't much
- difference.
- <p>
- The filename is defined in mmap.h as <i>mmapfile</i>. You can
- <i>cat</i> it any time to see what's in there. If you're
- feeling brave, try writting some data into it. On my system it
- causes unpleasant things to happen. I'd recommend that you
- don't do that!
-<hr>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>mmap.h</font>"
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-int
-main (int, char *[])
-{
- <font color=red>/*
- The default behavior of the memory map wrapper is to create
- the file if it doesn't exist. This is a minor change from
- the SV shared memory wrapper.
- */</font>
- ACE_Shared_Memory_MM shm_server (SHM_KEY, SHMSZ);
- char *shm = (char *) shm_server.malloc ();
- char *s = shm;
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) Memory Mapped file is at 0x%x\n</font>",
- shm ));
-
- for (char c = 'a'; c &lt;= 'z'; c++)
- *s++ = c;
-
- *s = '\0';
-
- while (*shm != '*')
- <font color=#008888>ACE_OS::sleep</font> (1);
-
- for (s = shm; *s != '\0'; s++)
- {
- putchar (*s);
- }
-
- putchar ('\n');
-
- if (shm_server.remove () &lt; 0)
- ACE_ERROR ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>remove</font>"));
-
- return 0;
-}
-
-</PRE>
-<HR>
-BTW: In ACE 4.6.7 and prior there is a bug that prevents the remove()
- method from actually removing the physical file.
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/020/page03.html b/docs/tutorials/020/page03.html
deleted file mode 100644
index 69782913b5d..00000000000
--- a/docs/tutorials/020/page03.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 020</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 020</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories with persistence</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-There's no important difference between this and the SV client. Is
- everybody thinking "template" here?
-<hr>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>mmap.h</font>"
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-int main (int, char *[])
-{
- ACE_Shared_Memory_MM shm_client (SHM_KEY, SHMSZ);
- char *shm = (char *) shm_client.malloc ();
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) Memory Mapped file is at 0x%x\n</font>",
- shm ));
-
- if( ! shm )
- {
- ACE_ERROR_RETURN ((LM_ERROR,"<font color=green>(%P|%t) Could not get the mmapped file!\n</font>"),100);
- }
-
- for (char *s = shm; *s != '\0'; s++)
- {
- putchar (*s);
- *s = toupper(*s);
- }
-
- putchar ('\n');
- *shm = '*';
-
- shm_client.close();
-
- return 0;
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/020/page04.html b/docs/tutorials/020/page04.html
deleted file mode 100644
index 573ddaa23f0..00000000000
--- a/docs/tutorials/020/page04.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 020</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 020</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories with persistence</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-I wanted to show placement new again & prove that you can use it with
- a memory mapped file just as easily as with a shared memory
- segment.
- <p>
-Imagine if you had an object that contained an image & then you mapped
- that to a file... Instead of a bunch of jpg files laying
- around, you would actually have objects instead. Save the
- image? No problem, it's already there!
-<hr>
-<HR width=50%><P><center>server2.cpp</center><HR width=50%>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>mmap.h</font>"
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-int
-main (int, char *[])
-{
- ACE_Shared_Memory_MM shm_server (SHM_KEY, sizeof(SharedData) );
-
- char *shm = (char *) shm_server.malloc ();
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) Memory Mapped file is at 0x%x\n</font>",
- shm ));
-
- SharedData * sd = new(shm) SharedData;
-
- sd->set();
- sd->available(0);
-
- while ( ! sd->available() )
- <font color=#008888>ACE_OS::sleep</font> (1);
-
- sd->show();
-
- if (shm_server.remove () &lt; 0)
- ACE_ERROR ((LM_ERROR, "<font color=green>%p\n</font>", "<font color=green>remove</font>"));
-
- return 0;
-}
-
-</PRE>
-<HR width=50%><P><center>client2.cpp</center><HR width=50%>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>mmap.h</font>"
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-int main (int, char *[])
-{
- ACE_Shared_Memory_MM shm_client (SHM_KEY, sizeof(SharedData));
-
- char *shm = (char *) shm_client.malloc ();
-
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) Memory Mapped file is at 0x%x\n</font>",
- shm ));
-
- SharedData * sd = new(shm) SharedData(0);
-
- sd->show();
- sd->set();
- sd->available(1);
-
- shm_client.close();
-
- return 0;
-}
-
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/020/page05.html b/docs/tutorials/020/page05.html
deleted file mode 100644
index 4113c64151b..00000000000
--- a/docs/tutorials/020/page05.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 020</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 020</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories with persistence</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-The mmap.h where we define stuff that needs to be shared between the
- apps at compile-time.
-<hr>
-<HR width=50%><P><center>mmap.h</center><HR width=50%>
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>MMAP_H</font>
-<font color=blue>#define</font> <font color=purple>MMAP_H</font>
-
-<font color=red>// The expected filename for ACE_Shared_Memory_MM.h</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/Shared_Memory_MM.h">ace/Shared_Memory_MM.h</A>"
-
-<font color=red>// Just enough for the alphabet...</font>
-<font color=blue>#define</font> <font color=purple>SHMSZ</font> 27
-
-<font color=red>/*
- Here we use a real filename instead of an arbitrary number. This
- actually will exist in the filesystem. You can 'cat' it and
- everything!
-*/</font>
-<font color=blue>#define</font> <font color=purple>SHM_KEY</font> "<font color=green>mmapfile</font>"
-
-<font color=red>/*
- The SV Shared Memory SharedData object returns. It is identical to
- the one we used in that tutorial. I didn't even change the name.
- */</font>
-class SharedData
-{
-public:
- SharedData (int initialize = 1);
-
- void set (void);
- void show (void);
- int available (void);
- void available (int not_in_use);
-
-protected:
- char buf_[128];
- int available_;
-};
-
-<font color=blue>#endif</font> <font color=red>/* MMAP_H */</font>
-</PRE>
-<HR width=50%><P><center>mmap.cpp</center><HR width=50%>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>mmap.h</font>"
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Log_Msg.h">ace/Log_Msg.h</A>"
-
-<font color=#008888>SharedData::SharedData</font>(int _initialize)
- : available_(0)
-{
- if( _initialize )
- {
- <font color=#008888>ACE_OS::sprintf</font>(buf_,"<font color=green>UNSET\n</font>");
- }
-}
-
-void <font color=#008888>SharedData::set</font>(void)
-{
- <font color=#008888>ACE_OS::sprintf</font>(buf_,"<font color=green>My PID is (%d)\n</font>",ACE_OS::getpid());
-}
-
-void <font color=#008888>SharedData::show</font>(void)
-{
- ACE_DEBUG ((LM_INFO, "<font color=green>(%P|%t) Shared Data text is (%s)\n</font>",
- buf_ ));
-}
-
-int <font color=#008888>SharedData::available</font>(void)
-{
- return available_;
-}
-
-void <font color=#008888>SharedData::available</font>(int _available)
-{
- available_ = _available;
-}
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/020/page06.html b/docs/tutorials/020/page06.html
deleted file mode 100644
index 2e4b7b91fa7..00000000000
--- a/docs/tutorials/020/page06.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 020</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 020</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Sharing your Memories with persistence</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-This one was even shorter than the last!
-
- <ul>
- <li><A HREF="server.cpp">server.cpp</A>
- <li><A HREF="client.cpp">client.cpp</A>
- <li><A HREF="server2.cpp">server2.cpp</A>
- <li><A HREF="client2.cpp">client2.cpp</A>
- <li><A HREF="mmap.h">mmap.h</A>
- <li><A HREF="mmap.cpp">mmap.cpp</A>
- <li><A HREF="Makefile">Makefile</A>
- </ul>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/020/server.cpp b/docs/tutorials/020/server.cpp
deleted file mode 100644
index 549189ae2b1..00000000000
--- a/docs/tutorials/020/server.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-// $Id$
-
-#include "mmap.h"
-
-#include "ace/Log_Msg.h"
-
-int
-main (int, char *[])
-{
- /*
- The default behavior of the memory map wrapper is to create
- the file if it doesn't exist. This is a minor change from
- the SV shared memory wrapper.
- */
- ACE_Shared_Memory_MM shm_server (SHM_KEY, SHMSZ);
- char *shm = (char *) shm_server.malloc ();
- char *s = shm;
-
- ACE_DEBUG ((LM_INFO, "(%P|%t) Memory Mapped file is at 0x%x\n",
- shm ));
-
- for (char c = 'a'; c <= 'z'; c++)
- *s++ = c;
-
- *s = '\0';
-
- while (*shm != '*')
- ACE_OS::sleep (1);
-
- for (s = shm; *s != '\0'; s++)
- {
- putchar (*s);
- }
-
- putchar ('\n');
-
- if (shm_server.remove () < 0)
- ACE_ERROR ((LM_ERROR, "%p\n", "remove"));
-
- return 0;
-}
diff --git a/docs/tutorials/020/server2.cpp b/docs/tutorials/020/server2.cpp
deleted file mode 100644
index abbe2f5b68b..00000000000
--- a/docs/tutorials/020/server2.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-// $Id$
-
-#include "mmap.h"
-
-#include "ace/Log_Msg.h"
-
-int
-main (int, char *[])
-{
- ACE_Shared_Memory_MM shm_server (SHM_KEY, sizeof(SharedData) );
-
- char *shm = (char *) shm_server.malloc ();
-
- ACE_DEBUG ((LM_INFO, "(%P|%t) Memory Mapped file is at 0x%x\n",
- shm ));
-
- SharedData * sd = new(shm) SharedData;
-
- sd->set();
- sd->available(0);
-
- while ( ! sd->available() )
- ACE_OS::sleep (1);
-
- sd->show();
-
- if (shm_server.remove () < 0)
- ACE_ERROR ((LM_ERROR, "%p\n", "remove"));
-
- return 0;
-}
diff --git a/docs/tutorials/021/021-client.dsp b/docs/tutorials/021/021-client.dsp
deleted file mode 100644
index 052ba50237a..00000000000
--- a/docs/tutorials/021/021-client.dsp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Microsoft Developer Studio Project File - Name="021 client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=021 client - 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 "021 client.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 "021 client.mak" CFG="021 client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "021 client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "021 client - 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)" == "021 client - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "021 client - 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 ""
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "021 client - Win32 Release"
-# Name "021 client - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\client.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\mpool.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\mpool.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/021/021-server.dsp b/docs/tutorials/021/021-server.dsp
deleted file mode 100644
index 3667e52aa5f..00000000000
--- a/docs/tutorials/021/021-server.dsp
+++ /dev/null
@@ -1,105 +0,0 @@
-# Microsoft Developer Studio Project File - Name="021 server" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=021 server - 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 "021 server.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 "021 server.mak" CFG="021 server - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "021 server - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "021 server - 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)" == "021 server - 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 "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "021 server - 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 ""
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "021 server - Win32 Release"
-# Name "021 server - Win32 Debug"
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\mpool.h
-# End Source File
-# End Group
-# Begin Group "Source Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\mpool.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\server.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/docs/tutorials/021/Makefile b/docs/tutorials/021/Makefile
deleted file mode 100644
index 9df7f7c3a25..00000000000
--- a/docs/tutorials/021/Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-
-# $Id$
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = client server
-
-FILES = mpool
-
-BUILD = $(VBIN)
-
-BSRC = $(addsuffix .cpp,$(BIN))
-
-SRC += $(addsuffix .cpp,$(FILES))
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-rename : #
- for i in *.cxx ; do \
- n=`expr "$$i" : "\(.*\).cxx"` ;\
- mv $$i $$n.cpp ;\
- done
-
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb -ts2 -bl -bli0 < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- -e 's/ / /g' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
-Depend : #
- $(MAKE) SRC="$(SRC) $(BSRC)" depend
- perl ../fix.Makefile
-
-.depend : #
- touch .depend
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
-include .depend
diff --git a/docs/tutorials/021/client.cpp b/docs/tutorials/021/client.cpp
deleted file mode 100644
index 544f72b49fe..00000000000
--- a/docs/tutorials/021/client.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// $Id$
-
-#include "mpool.h"
-
-#if defined(ACE_LACKS_SYSV_SHMEM)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "System V Semaphores not available on this platform.\n"),100);
-}
-#else // ACE_LACKS_SYSV_SHMEM
-int
-main (int, char *[])
-{
- /*
- Use the same pool name used by the server when we create our
- Allocator. This assures us that we don't create a whole new
- pool.
- */
- Allocator allocator (Constants::PoolName);
-
- /*
- You can put anything in the memory pool. Not just the
- character array we want. The find() method till, therefore,
- return a void* that we will have to cast.
- */
- void *region;
-
- /*
- We use find() to locate a named region in the pool. This is
- the counterpart to bind() used in the server.
- Here, we go try to find the region that the server has created
- and filled with data. If there was a problem getting the pool
- or finding the region, we'll get back -1 from find().
- */
- if (allocator.pool ().find (Constants::RegionName,region) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Cannot find the name '%s'\n",
- Constants::RegionName),
- 100);
-
- /*
- Since find() returns us a void*, we cast it here to the char*
- that we want.
- */
- char *shm = (char *) region;
-
- ACE_DEBUG ((LM_INFO,
- "Shared memory is at 0x%x\n",
- shm));
-
- /*
- The same pair of semaphores as used by the server are created
- here. We probably don't need the CREATE flag since the server
- should have already done that. There may be some very small
- windows, however, where the server would have created the
- memory pool but not yet gotten to the semaphores.
- */
- ACE_SV_Semaphore_Complex mutex;
- ACE_ASSERT (mutex.open (Constants::SEM_KEY_1,
- ACE_SV_Semaphore_Complex::ACE_CREATE,
- 0) != -1);
-
- ACE_SV_Semaphore_Complex synch;
- ACE_ASSERT (synch.open (Constants::SEM_KEY_2,
- ACE_SV_Semaphore_Complex::ACE_CREATE,
- 0) != -1);
-
- /*
- It doesn't matter if we created 'mutex' or if the server did.
- In either case, it was created in a locked state and we will
- block here until somebody unlocks it. In our scenario, that
- will have to be the server.
- */
- if (mutex.acquire () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P) client mutex.acquire"),
- 1);
-
- /*
- Now that we know it is safe to access the data, we'll run
- through and make sure that it contains what we think the server
- supplied.
- */
- for (int i = 0; i < Constants::SHMSZ; i++)
- ACE_ASSERT (Constants::SHMDATA[i] == shm[i]);
-
- /*
- Look back at the server. After filling the region, it will
- attempt to acquire the lock on 'synch'. It will wait there
- until we release() the semaphore. That will allow it to remove
- the pool and cleanup. We can simply exit once we perform the
- release. (Ok, a free() of the region would probably be polite...)
- */
- if (synch.release () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P) client synch.release"),
- 1);
-
- return 0;
-}
-
-/*
- Again, we have the necessary explicit template instantiations
- because I based this on an ACE example instead of creating it from scratch.
- */
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple>;
-template class ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple, ACE_Control_Block>;
-template class ACE_Guard<ACE_SV_Semaphore_Simple>;
-template class ACE_Write_Guard<ACE_SV_Semaphore_Simple>;
-template class ACE_Read_Guard<ACE_SV_Semaphore_Simple>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple>
-#pragma instantiate ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple, ACE_Control_Block>
-#pragma instantiate ACE_Guard<ACE_SV_Semaphore_Simple>
-#pragma instantiate ACE_Write_Guard<ACE_SV_Semaphore_Simple>
-#pragma instantiate ACE_Read_Guard<ACE_SV_Semaphore_Simple>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_LACKS_SYSV_SHMEM */
diff --git a/docs/tutorials/021/combine.shar b/docs/tutorials/021/combine.shar
deleted file mode 100644
index 1c720b3abfa..00000000000
--- a/docs/tutorials/021/combine.shar
+++ /dev/null
@@ -1,398 +0,0 @@
-#!/bin/sh
-# This is a shell archive (produced by GNU sharutils 4.2).
-# To extract the files from this archive, save it to some FILE, remove
-# everything before the `!/bin/sh' line above, then type `sh FILE'.
-#
-# Made on 2000-03-19 15:00 EST by <jcej@chiroptera.tragus.org>.
-# Source directory was `/home/jcej/projects/ACE_wrappers/docs/tutorials/021'.
-#
-# Existing files will *not* be overwritten unless `-c' is specified.
-#
-# This shar contains:
-# length mode name
-# ------ ---------- ------------------------------------------
-# 409 -rw-rw-r-- hdr
-# 47 -rw-rw-r-- bodies
-# 2293 -rw-rw-r-- page01.pre
-# 282 -rw-rw-r-- page02.pre
-# 207 -rw-rw-r-- page03.pre
-# 295 -rw-rw-r-- page04.pre
-# 61 -rw-rw-r-- page05.pre
-# 616 -rw-rw-r-- page06.pre
-# 785 -rw-rw-r-- page04.pst
-#
-save_IFS="${IFS}"
-IFS="${IFS}:"
-gettext_dir=FAILED
-locale_dir=FAILED
-first_param="$1"
-for dir in $PATH
-do
- if test "$gettext_dir" = FAILED && test -f $dir/gettext \
- && ($dir/gettext --version >/dev/null 2>&1)
- then
- set `$dir/gettext --version 2>&1`
- if test "$3" = GNU
- then
- gettext_dir=$dir
- fi
- fi
- if test "$locale_dir" = FAILED && test -f $dir/shar \
- && ($dir/shar --print-text-domain-dir >/dev/null 2>&1)
- then
- locale_dir=`$dir/shar --print-text-domain-dir`
- fi
-done
-IFS="$save_IFS"
-if test "$locale_dir" = FAILED || test "$gettext_dir" = FAILED
-then
- echo=echo
-else
- TEXTDOMAINDIR=$locale_dir
- export TEXTDOMAINDIR
- TEXTDOMAIN=sharutils
- export TEXTDOMAIN
- echo="$gettext_dir/gettext -s"
-fi
-touch -am 1231235999 $$.touch >/dev/null 2>&1
-if test ! -f 1231235999 && test -f $$.touch; then
- shar_touch=touch
-else
- shar_touch=:
- echo
- $echo 'WARNING: not restoring timestamps. Consider getting and'
- $echo "installing GNU \`touch', distributed in GNU File Utilities..."
- echo
-fi
-rm -f 1231235999 $$.touch
-#
-if mkdir _sh00446; then
- $echo 'x -' 'creating lock directory'
-else
- $echo 'failed to create lock directory'
- exit 1
-fi
-# ============= hdr ==============
-if test -f 'hdr' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'hdr' '(file already exists)'
-else
- $echo 'x -' extracting 'hdr' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'hdr' &&
-<HTML>
-<HEAD>
-X <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
-X <META NAME="Author" CONTENT="James CE Johnson">
-X <TITLE>ACE Tutorial 021</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-X
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 021</FONT></B></CENTER>
-X
-<CENTER><B><FONT SIZE=+2>Pooling your memories</FONT></B></CENTER>
-X
-<P>
-<HR WIDTH="100%">
-SHAR_EOF
- $shar_touch -am 03191459100 'hdr' &&
- chmod 0664 'hdr' ||
- $echo 'restore of' 'hdr' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'hdr:' 'MD5 check failed'
-9ffa6eb1308f4872f390b30f74a6de3b hdr
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'hdr'`"
- test 409 -eq "$shar_count" ||
- $echo 'hdr:' 'original size' '409,' 'current size' "$shar_count!"
- fi
-fi
-# ============= bodies ==============
-if test -f 'bodies' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'bodies' '(file already exists)'
-else
- $echo 'x -' extracting 'bodies' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'bodies' &&
-PAGE=2
-server.cpp
-client.cpp
-mpool.h
-mpool.cpp
-SHAR_EOF
- $shar_touch -am 0106135399 'bodies' &&
- chmod 0664 'bodies' ||
- $echo 'restore of' 'bodies' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'bodies:' 'MD5 check failed'
-470abefc6e5e401ad9ffdfa76e3ca143 bodies
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'bodies'`"
- test 47 -eq "$shar_count" ||
- $echo 'bodies:' 'original size' '47,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page01.pre ==============
-if test -f 'page01.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page01.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page01.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page01.pre' &&
-X The previous two tutorials were very primitive & basic. They
-X showed very simple uses of shared memory and memory mapped
-X files.
-X <p>
-X If we move the level of abstraction up just a bit, the next
-X thing we encounter is memory pools. ACE_Malloc&lt;&gt; provides
-X this to us.
-X <p>
-X In this tutorial, we'll use ACE_Malloc&lt;&gt; to create a
-X memory pool that is sharable between a client and server. We'll
-X use a memory mapped file to provide the physical storage but
-X shared memory works just as well.
-<P>
-Kirthika's abstract:
-<UL>
-The ACE_Malloc class is templatised by the type of memory pool
-and the lock for it. The name of the memory pool provided can be used
-in the "bind" call made by the server. This helps the other party
-wanting to access it do so by a "find" call. The ACE_Malloc will
-allocate
-memory and on a "malloc" will return memory chunks from its reserve.
-When the memory chunk is freed by the user, it will be appended to the
-free list maintained by the class. Unless a "remove" is done explicitly,
-the memory wont be returned to the OS. Various memory pool types can be
-used,
-X ACE_MMap_Memory_Pool,ACE_Sbrk_Memory_Pool to name a few.
-For further details: <A HREF="../../ace/Memory_Pool.h">ace/Memory_Pool.h</A>.
-<P>
-In this tutorial, a ACE_Malloc class with ACE_MMAP_MEMORY_POOL
-and a semophore for syncronisation has been used. This is locked by
-the server initially and released after it writes into it so that
-the client waiting for it can go ahead and do its job. There is yet
-another semaphore used by the server to exit only after the client
-has finished its task, which is locked by the client at the start
-and released when its done.
-<P>
-Some more information regarding memory management:
-ACE also provides the ACE_Allocator class which uses
-dynamic binding and is flexible, though at a cost of using
-virtual pointer tables. Also, there is an ACE_Allocator_Adapter class
-which has an ACE_Allocator interface but ACE_Malloc functionality.
-<P>
-Bottomline: Memory can be managed either using the ACE_Allocator
-set of classes which uses polymorphism and is thus flexible but not as
-efficient as the templatised version which is the ACE_Malloc set of
-classes which are more efficient but not as felxible.
-X
-</UL>
-SHAR_EOF
- $shar_touch -am 03191459100 'page01.pre' &&
- chmod 0664 'page01.pre' ||
- $echo 'restore of' 'page01.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page01.pre:' 'MD5 check failed'
-24cacb4803303b37ae4871ff0aae141b page01.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page01.pre'`"
- test 2293 -eq "$shar_count" ||
- $echo 'page01.pre:' 'original size' '2293,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page02.pre ==============
-if test -f 'page02.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page02.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page02.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page02.pre' &&
-X The key components for creating the memory pool are:
-X <ul>
-X <li>Create and name the pool
-X <li>Allocate a chunk (region) of memory from the pool
-X <li>Name the allocated region
-X </ul>
-X The rest of it is just critical sections and data manipulation.
-<hr>
-SHAR_EOF
- $shar_touch -am 03191459100 'page02.pre' &&
- chmod 0664 'page02.pre' ||
- $echo 'restore of' 'page02.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page02.pre:' 'MD5 check failed'
-6742359e1f990299bdab5992d0629d96 page02.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page02.pre'`"
- test 282 -eq "$shar_count" ||
- $echo 'page02.pre:' 'original size' '282,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page03.pre ==============
-if test -f 'page03.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page03.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page03.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page03.pre' &&
-X The client side is a little simpler than the server. Mainly
-X because we don't try to delete the pool:
-X <ul>
-X <li>Create an Allocator to access the pool
-X <li>Find the named region
-X </ul>
-<hr>
-SHAR_EOF
- $shar_touch -am 03191459100 'page03.pre' &&
- chmod 0664 'page03.pre' ||
- $echo 'restore of' 'page03.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page03.pre:' 'MD5 check failed'
-9929e87d376461c200ea8d6ad819c2b0 page03.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page03.pre'`"
- test 207 -eq "$shar_count" ||
- $echo 'page03.pre:' 'original size' '207,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pre ==============
-if test -f 'page04.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pre' &&
-X Everything common the server & client is kept here. In
-X particular, the Constants class where we keep the names &
-X semaphore keys.
-X <p>
-X The Allocator class is just a thin wrapper around
-X ACE_Malloc&lt;&gt; that moves some of the details out of the
-X application logic.
-<hr>
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pre' &&
- chmod 0664 'page04.pre' ||
- $echo 'restore of' 'page04.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pre:' 'MD5 check failed'
-82e8c15a608311faae46c4a2c6b0a5e1 page04.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pre'`"
- test 295 -eq "$shar_count" ||
- $echo 'page04.pre:' 'original size' '295,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page05.pre ==============
-if test -f 'page05.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page05.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page05.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page05.pre' &&
-And here we have the implementation of the Allocator...
-<hr>
-SHAR_EOF
- $shar_touch -am 03191459100 'page05.pre' &&
- chmod 0664 'page05.pre' ||
- $echo 'restore of' 'page05.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page05.pre:' 'MD5 check failed'
-eef6d56514a448ce6cd962b7d34dd50f page05.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page05.pre'`"
- test 61 -eq "$shar_count" ||
- $echo 'page05.pre:' 'original size' '61,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page06.pre ==============
-if test -f 'page06.pre' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page06.pre' '(file already exists)'
-else
- $echo 'x -' extracting 'page06.pre' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page06.pre' &&
-X As you can see, using a memory pool is really rather easy. The
-X most difficult part, as always, is with the synch mechanisms.
-X <P>
-X The other nice thing about ACE_Malloc&lt;> is that you can swap
-X between System V shared memory and memory mapped files just by
-X changing the template parameters. The truly adventurous will
-X likely find a runtime way of doing this.
-X <p>
-X
-X <ul>
-X <li><A HREF="Makefile">Makefile</A>
-X <li><A HREF="server.cpp">server.cpp</A>
-X <li><A HREF="client.cpp">client.cpp</A>
-X <li><A HREF="mpool.h">mpool.h</A>
-X <li><A HREF="mpool.cpp">mpool.cpp</A>
-X </ul>
-SHAR_EOF
- $shar_touch -am 03191459100 'page06.pre' &&
- chmod 0664 'page06.pre' ||
- $echo 'restore of' 'page06.pre' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page06.pre:' 'MD5 check failed'
-0814cb31bbfbb6ff19abba9087cb6c6c page06.pre
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page06.pre'`"
- test 616 -eq "$shar_count" ||
- $echo 'page06.pre:' 'original size' '616,' 'current size' "$shar_count!"
- fi
-fi
-# ============= page04.pst ==============
-if test -f 'page04.pst' && test "$first_param" != -c; then
- $echo 'x -' SKIPPING 'page04.pst' '(file already exists)'
-else
- $echo 'x -' extracting 'page04.pst' '(text)'
- sed 's/^X//' << 'SHAR_EOF' > 'page04.pst' &&
-<HR>
-X The really hard stuff is done by the ACE_Malloc<> template. This
-X template takes two parameters.<sup>*</sup> The first is a
-X memory pool class to use. ACE has several, I've choosen one
-X that uses a memory-mapped file. The second parameter is a lock
-X class of some sort. This is needed so that the ACE_Malloc<> can
-X protect its internal data. Note that you still have to
-X provide your own mutex around the data you put into the
-X malloc'd area.
-X
-<P>
-X * Actually, some implementations may require a different
-X number of parameters.
-X That's why ACE uses those funky macros. ACE_MMAP_MEMORY_POOL
-X for instance turns into ACE_MMAP_Memory_Pool on Linux but may
-X do other things on your platform.
-SHAR_EOF
- $shar_touch -am 03191459100 'page04.pst' &&
- chmod 0664 'page04.pst' ||
- $echo 'restore of' 'page04.pst' 'failed'
- if ( md5sum --help 2>&1 | grep 'sage: md5sum \[' ) >/dev/null 2>&1 \
- && ( md5sum --version 2>&1 | grep -v 'textutils 1.12' ) >/dev/null; then
- md5sum -c << SHAR_EOF >/dev/null 2>&1 \
- || $echo 'page04.pst:' 'MD5 check failed'
-e2274ca81b8b99472c556ff05a090737 page04.pst
-SHAR_EOF
- else
- shar_count="`LC_ALL= LC_CTYPE= LANG= wc -c < 'page04.pst'`"
- test 785 -eq "$shar_count" ||
- $echo 'page04.pst:' 'original size' '785,' 'current size' "$shar_count!"
- fi
-fi
-rm -fr _sh00446
-exit 0
diff --git a/docs/tutorials/021/mpool.cpp b/docs/tutorials/021/mpool.cpp
deleted file mode 100644
index 7e55555e5bb..00000000000
--- a/docs/tutorials/021/mpool.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-
-// $Id$
-
-#include "mpool.h"
-
-#if !defined (ACE_LACKS_SYSV_SHMEM)
-
-/*
- Set the values of all of the constants. This guarantees that client
- and server don't get confused.
- */
-const int Constants::SEM_KEY_1 = ACE_DEFAULT_SEM_KEY + 1;
-const int Constants::SEM_KEY_2 = ACE_DEFAULT_SEM_KEY + 2;
-
-const int Constants::SHMSZ = 27;
-const char * Constants::SHMDATA = "abcdefghijklmnopqrstuvwxyz";
-
-const char * Constants::PoolName = "SharedMemoryPool";
-const char * Constants::RegionName = "Alphabet";
-
-/*
- We have to create a copy of the _name parameter in case the caller
- has dynamically allocated it. The pool_ is set to NULL & will be
- allocated by the accessor.
- */
-Allocator::Allocator (const char *_name)
- : name_ (ACE_OS::strdup (_name)),
- pool_ (0)
-{
- if (name_ == 0)
- ACE_ERROR ((LM_ERROR, "(%P) %p",
- "Allocator::Allocator cannot strdup pool name"));
-}
-
-Allocator::~Allocator (void)
-{
- /*
- strdup() uses malloc(), so we must use free() to clean up.
- */
- if (name_)
- ACE_OS::free (name_);
-
- // delete doesn't really care if you give it a NULL pointer.
- delete pool_;
-}
-
-/*
- Allocate the pool. Since we return a reference, we'll be in really
- bad shape if the new fails. This is a great place to throw an
- exception!
- The other concern is thread safety. If two threads call here at
- about the same time, we may create the pool twice. We can't use a
- Singleton because we want to have multiple Allocator instances. The
- Singleton techniques can be used though.
- */
-
-Allocator::pool_t &
-Allocator::pool (void)
-{
- if (pool_ == 0)
- pool_ = new pool_t (name_);
-
- return *pool_;
-}
-
-#endif /* ACE_LACKS_SYSV_SHMEM */
diff --git a/docs/tutorials/021/mpool.h b/docs/tutorials/021/mpool.h
deleted file mode 100644
index fbb18e21e57..00000000000
--- a/docs/tutorials/021/mpool.h
+++ /dev/null
@@ -1,67 +0,0 @@
-
-// $Id$
-
-#ifndef MPOOL_H
-#define MPOOL_H
-
-// Everything else we need is in this one header
-#include "ace/Malloc.h"
-
-#if !defined (ACE_LACKS_SYSV_SHMEM)
-
-/*
- With this we will abstract away some of the details of the memory
- pool. Note that we don't treat this as a singleton because an
- application may need more than one pool. Each would have a
- different name and be used for different purposes.
- */
-
-class Allocator
-{
-public:
- // The pool name will be used to create a unique semaphore to
- // keep this pool separate from others.
- Allocator (const char * _name = "MemoryPool");
- ~Allocator (void);
-
- typedef ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple> pool_t;
-
- // Provide an accessor to the pool. This will also allocate the
- // pool when first invoked.
- pool_t &pool (void);
-
-protected:
-
- // The name we gave to the pool
- char *name_;
-
- pool_t *pool_;
-};
-
-/*
- The client and server need to agree on a certain set of values. By
- placing them in the Constants class we can eliminate a bit of confusion.
- */
-class Constants
-{
-public:
- // The semaphore keys are needed for the two semaphores that
- // synch access to the shared memory area.
- static const int SEM_KEY_1;
- static const int SEM_KEY_2;
-
- // How big the pool will be and what we'll put into it. A real
- // app wouldn't need SHMDATA of course.
- static const int SHMSZ;
- static const char *SHMDATA;
-
- // The name assigned to the memory pool by the server is needed
- // by the client. Without it, the pool cannot be found.
- // Likewise, the name the server will bind() to the region of the
- // pool must be available to the client.
- static const char *PoolName;
- static const char *RegionName;
-};
-
-#endif /* ACE_LACKS_SYSV_SHMEM */
-#endif /* MPOOL_H */
diff --git a/docs/tutorials/021/page01.html b/docs/tutorials/021/page01.html
deleted file mode 100644
index 0237f40242f..00000000000
--- a/docs/tutorials/021/page01.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 021</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 021</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Pooling your memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
- The previous two tutorials were very primitive & basic. They
- showed very simple uses of shared memory and memory mapped
- files.
- <p>
- If we move the level of abstraction up just a bit, the next
- thing we encounter is memory pools. ACE_Malloc&lt;&gt; provides
- this to us.
- <p>
- In this tutorial, we'll use ACE_Malloc&lt;&gt; to create a
- memory pool that is sharable between a client and server. We'll
- use a memory mapped file to provide the physical storage but
- shared memory works just as well.
-<P>
-Kirthika's abstract:
-<UL>
-The ACE_Malloc class is templatised by the type of memory pool
-and the lock for it. The name of the memory pool provided can be used
-in the "bind" call made by the server. This helps the other party
-wanting to access it do so by a "find" call. The ACE_Malloc will
-allocate
-memory and on a "malloc" will return memory chunks from its reserve.
-When the memory chunk is freed by the user, it will be appended to the
-free list maintained by the class. Unless a "remove" is done explicitly,
-the memory wont be returned to the OS. Various memory pool types can be
-used,
- ACE_MMap_Memory_Pool,ACE_Sbrk_Memory_Pool to name a few.
-For further details: <A HREF="../../ace/Memory_Pool.h">ace/Memory_Pool.h</A>.
-<P>
-In this tutorial, a ACE_Malloc class with ACE_MMAP_MEMORY_POOL
-and a semophore for syncronisation has been used. This is locked by
-the server initially and released after it writes into it so that
-the client waiting for it can go ahead and do its job. There is yet
-another semaphore used by the server to exit only after the client
-has finished its task, which is locked by the client at the start
-and released when its done.
-<P>
-Some more information regarding memory management:
-ACE also provides the ACE_Allocator class which uses
-dynamic binding and is flexible, though at a cost of using
-virtual pointer tables. Also, there is an ACE_Allocator_Adapter class
-which has an ACE_Allocator interface but ACE_Malloc functionality.
-<P>
-Bottomline: Memory can be managed either using the ACE_Allocator
-set of classes which uses polymorphism and is thus flexible but not as
-efficient as the templatised version which is the ACE_Malloc set of
-classes which are more efficient but not as felxible.
-
-</UL>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/021/page02.html b/docs/tutorials/021/page02.html
deleted file mode 100644
index 1310357d60d..00000000000
--- a/docs/tutorials/021/page02.html
+++ /dev/null
@@ -1,186 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 021</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 021</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Pooling your memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
- The key components for creating the memory pool are:
- <ul>
- <li>Create and name the pool
- <li>Allocate a chunk (region) of memory from the pool
- <li>Name the allocated region
- </ul>
- The rest of it is just critical sections and data manipulation.
-<hr>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=red>/*
- I've hidden the details in an Allocator class declared in mpool.h
- We'll come to that a little later.
-*/</font>
-<font color=blue>#include</font> "<font color=green>mpool.h</font>"
-
-<font color=blue>#if defined</font>(<font color=purple>ACE_LACKS_SYSV_SHMEM</font>)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>System V Semaphores not available on this platform.\n</font>"),100);
-}
-#else <font color=red>// ACE_LACKS_SYSV_SHMEM</font>
-int
-main (int, char *[])
-{
- <font color=red>/*
- Construction of an Allocator will create the memory pool and
- provide it with a name. The Constants class is also
- declared in mpool.h to keep server and client on the same
- page. The name is used to generate a unique semaphore which
- prevents simultaneous access to the pools housekeeping
- information. (Note that you still have to provide your own
- synch mechanisms for the data *you* put in the poo.)
- */</font>
- Allocator allocator (<font color=#008888>Constants::PoolName</font>);
-
- <font color=red>/*
- The Allocator class provides the pool() member so that you
- have access to the actual memory pool. A more robust
- implementation would behave more as a bridge class but this
- is good enough for what we're doing here.
- Once you have a reference to the pool, the malloc() method
- can be used to get some bytes. If successful, shm will
- point to the data. Otherwise, it will be zero.
- */</font>
- char *shm = (char *) allocator.pool ().malloc (27);
-
- ACE_ASSERT (shm != 0);
-
- <font color=red>/// FYI</font>
- ACE_DEBUG ((LM_INFO,
- "<font color=green>Shared memory is at 0x%x\n</font>",
- shm));
-
- <font color=red>/*
- Something that we can do with a memory pool is map a name to
- a region provided by malloc. By doing this, we can
- communicate that name to the client as a rendezvous
- location. Again, a member of Constants is used to keep the
- client and server coordinated.
- */</font>
- if (allocator.pool ().bind(<font color=#008888>Constants::RegionName</font>,shm) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>Cannot bind the name '%s' to the pointer 0x%x\n</font>",
- <font color=#008888>Constants::RegionName</font>,
- shm),
- 100);
-
- <font color=red>/*
- One of the best ways to synch between different processes is
- through the use of semaphores. ACE_SV_Semaphore_Complex
- hides the gory details and lets us use them rather easily.
-
- Here, we'll create two semaphores: mutex and synch. mutex
- will be used to provide mutually exclusive access to the
- shared region for writting/reading. synch will be used to
- prevent the server from removing the memory pool before the
- client is done with it.
-
- Both semaphores are created in an initially locked state.
- */</font>
-
- ACE_SV_Semaphore_Complex mutex;
- ACE_ASSERT (mutex.open (<font color=#008888>Constants::SEM_KEY_1</font>,
- <font color=#008888>ACE_SV_Semaphore_Complex::ACE_CREATE</font>,
- 0) != -1);
-
- ACE_SV_Semaphore_Complex synch;
- ACE_ASSERT (synch.open (<font color=#008888>Constants::SEM_KEY_2</font>,
- <font color=#008888>ACE_SV_Semaphore_Complex::ACE_CREATE</font>,
- 0) != -1);
-
- <font color=red>/*
- We know the mutex is locked because we created it that way.
- Take a moment to write some data into the shared region.
- */</font>
- for (int i = 0; i &lt; <font color=#008888>Constants::SHMSZ</font>; i++)
- shm[i] = <font color=#008888>Constants::SHMDATA</font>[i];
-
- <font color=red>/*
- The client will be blocking on an acquire() of mutex. By
- releasing it here, the client can go look at the shared data.
- */</font>
- if (mutex.release () == -1)
- ACE_ERROR ((LM_ERROR,
- "<font color=green>(%P) %p</font>",
- "<font color=green>server mutex.release</font>"));
- <font color=red>/*
- Even though we created the synch semaphore in a locked
- state, if we attempt to acquire() it, we will block. Our
- design requires that the client release() synch when it is
- OK for us to remove the shared memory.
- */</font>
- else if (synch.acquire () == -1)
- ACE_ERROR ((LM_ERROR,
- "<font color=green>(%P) %p</font>",
- "<font color=green>server synch.acquire</font>"));
- <font color=red>/*
- This will remove all of the memory pool's resources. In the
- case where a memory mapped file is used, the physical file
- will also be removed.
- */</font>
- if (allocator.pool ().remove () == -1)
- ACE_ERROR ((LM_ERROR,
- "<font color=green>(%P) %p\n</font>",
- "<font color=green>server allocator.remove</font>"));
- <font color=red>/*
- We now have to cleanup the semaphores we created. Use the
- ipcs command to see that they did, indeed, go away after the
- server exits.
- */</font>
-
- if (mutex.remove () == -1)
- ACE_ERROR ((LM_ERROR,
- "<font color=green>(%P) %p\n</font>",
- "<font color=green>server mutex.remove</font>"));
- else if (synch.remove () == -1)
- ACE_ERROR ((LM_ERROR,
- "<font color=green>(%P) %p\n</font>",
- "<font color=green>server synch.remove</font>"));
- return 0;
-}
-
-<font color=red>/*
- This tutorial was created by shamelessly modifying one of the ACE
- examples. Someone there had already created the necessary explicit
- template instantiations & I don't want them to go to waste...
- */</font>
-<font color=blue>#if defined</font> (<font color=purple>ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION</font>)
-template class ACE_Malloc&lt;ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple>;
-template class ACE_Malloc_T&lt;ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple, ACE_Control_Block>;
-template class ACE_Guard&lt;ACE_SV_Semaphore_Simple>;
-template class ACE_Write_Guard&lt;ACE_SV_Semaphore_Simple>;
-template class ACE_Read_Guard&lt;ACE_SV_Semaphore_Simple>;
-<font color=blue>#elif defined</font> (<font color=purple>ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Malloc&lt;ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Malloc_T&lt;ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple, ACE_Control_Block>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Guard&lt;ACE_SV_Semaphore_Simple>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Write_Guard&lt;ACE_SV_Semaphore_Simple>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Read_Guard&lt;ACE_SV_Semaphore_Simple>
-<font color=blue>#endif</font> <font color=red>/* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */</font>
-
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_SYSV_SHMEM */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/021/page03.html b/docs/tutorials/021/page03.html
deleted file mode 100644
index 03347b633c0..00000000000
--- a/docs/tutorials/021/page03.html
+++ /dev/null
@@ -1,150 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 021</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 021</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Pooling your memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
- The client side is a little simpler than the server. Mainly
- because we don't try to delete the pool:
- <ul>
- <li>Create an Allocator to access the pool
- <li>Find the named region
- </ul>
-<hr>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>mpool.h</font>"
-
-<font color=blue>#if defined</font>(<font color=purple>ACE_LACKS_SYSV_SHMEM</font>)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>System V Semaphores not available on this platform.\n</font>"),100);
-}
-#else <font color=red>// ACE_LACKS_SYSV_SHMEM</font>
-int
-main (int, char *[])
-{
- <font color=red>/*
- Use the same pool name used by the server when we create our
- Allocator. This assures us that we don't create a whole new
- pool.
- */</font>
- Allocator allocator (<font color=#008888>Constants::PoolName</font>);
-
- <font color=red>/*
- You can put anything in the memory pool. Not just the
- character array we want. The find() method till, therefore,
- return a void* that we will have to cast.
- */</font>
- void *region;
-
- <font color=red>/*
- We use find() to locate a named region in the pool. This is
- the counterpart to bind() used in the server.
- Here, we go try to find the region that the server has created
- and filled with data. If there was a problem getting the pool
- or finding the region, we'll get back -1 from find().
- */</font>
- if (allocator.pool ().find (<font color=#008888>Constants::RegionName</font>,region) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>Cannot find the name '%s'\n</font>",
- <font color=#008888>Constants::RegionName</font>),
- 100);
-
- <font color=red>/*
- Since find() returns us a void*, we cast it here to the char*
- that we want.
- */</font>
- char *shm = (char *) region;
-
- ACE_DEBUG ((LM_INFO,
- "<font color=green>Shared memory is at 0x%x\n</font>",
- shm));
-
- <font color=red>/*
- The same pair of semaphores as used by the server are created
- here. We probably don't need the CREATE flag since the server
- should have already done that. There may be some very small
- windows, however, where the server would have created the
- memory pool but not yet gotten to the semaphores.
- */</font>
- ACE_SV_Semaphore_Complex mutex;
- ACE_ASSERT (mutex.open (<font color=#008888>Constants::SEM_KEY_1</font>,
- <font color=#008888>ACE_SV_Semaphore_Complex::ACE_CREATE</font>,
- 0) != -1);
-
- ACE_SV_Semaphore_Complex synch;
- ACE_ASSERT (synch.open (<font color=#008888>Constants::SEM_KEY_2</font>,
- <font color=#008888>ACE_SV_Semaphore_Complex::ACE_CREATE</font>,
- 0) != -1);
-
- <font color=red>/*
- It doesn't matter if we created 'mutex' or if the server did.
- In either case, it was created in a locked state and we will
- block here until somebody unlocks it. In our scenario, that
- will have to be the server.
- */</font>
- if (mutex.acquire () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P) client mutex.acquire</font>"),
- 1);
-
- <font color=red>/*
- Now that we know it is safe to access the data, we'll run
- through and make sure that it contains what we think the server
- supplied.
- */</font>
- for (int i = 0; i &lt; <font color=#008888>Constants::SHMSZ</font>; i++)
- ACE_ASSERT (<font color=#008888>Constants::SHMDATA</font>[i] == shm[i]);
-
- <font color=red>/*
- Look back at the server. After filling the region, it will
- attempt to acquire the lock on 'synch'. It will wait there
- until we release() the semaphore. That will allow it to remove
- the pool and cleanup. We can simply exit once we perform the
- release. (Ok, a free() of the region would probably be polite...)
- */</font>
- if (synch.release () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "<font color=green>(%P) client synch.release</font>"),
- 1);
-
- return 0;
-}
-
-<font color=red>/*
- Again, we have the necessary explicit template instantiations
- because I based this on an ACE example instead of creating it from scratch.
- */</font>
-<font color=blue>#if defined</font> (<font color=purple>ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION</font>)
-template class ACE_Malloc&lt;ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple>;
-template class ACE_Malloc_T&lt;ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple, ACE_Control_Block>;
-template class ACE_Guard&lt;ACE_SV_Semaphore_Simple>;
-template class ACE_Write_Guard&lt;ACE_SV_Semaphore_Simple>;
-template class ACE_Read_Guard&lt;ACE_SV_Semaphore_Simple>;
-<font color=blue>#elif defined</font> (<font color=purple>ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Malloc&lt;ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Malloc_T&lt;ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple, ACE_Control_Block>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Guard&lt;ACE_SV_Semaphore_Simple>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Write_Guard&lt;ACE_SV_Semaphore_Simple>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Read_Guard&lt;ACE_SV_Semaphore_Simple>
-<font color=blue>#endif</font> <font color=red>/* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */</font>
-
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_SYSV_SHMEM */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/021/page04.html b/docs/tutorials/021/page04.html
deleted file mode 100644
index 2886b87e19e..00000000000
--- a/docs/tutorials/021/page04.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 021</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 021</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Pooling your memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
- Everything common the server & client is kept here. In
- particular, the Constants class where we keep the names &
- semaphore keys.
- <p>
- The Allocator class is just a thin wrapper around
- ACE_Malloc&lt;&gt; that moves some of the details out of the
- application logic.
-<hr>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>MPOOL_H</font>
-<font color=blue>#define</font> <font color=purple>MPOOL_H</font>
-
-<font color=red>// Everything else we need is in this one header</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/Malloc.h">ace/Malloc.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_SYSV_SHMEM</font>)
-
-<font color=red>/*
- With this we will abstract away some of the details of the memory
- pool. Note that we don't treat this as a singleton because an
- application may need more than one pool. Each would have a
- different name and be used for different purposes.
- */</font>
-
-class Allocator
-{
-public:
- <font color=red>// The pool name will be used to create a unique semaphore to</font>
- <font color=red>// keep this pool separate from others.</font>
- Allocator (const char * _name = "<font color=green>MemoryPool</font>");
- ~Allocator (void);
-
- typedef ACE_Malloc&lt;ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple> pool_t;
-
- <font color=red>// Provide an accessor to the pool. This will also allocate the</font>
- <font color=red>// pool when first invoked.</font>
- pool_t &pool (void);
-
-protected:
-
- <font color=red>// The name we gave to the pool</font>
- char *name_;
-
- pool_t *pool_;
-};
-
-<font color=red>/*
- The client and server need to agree on a certain set of values. By
- placing them in the Constants class we can eliminate a bit of confusion.
- */</font>
-class Constants
-{
-public:
- <font color=red>// The semaphore keys are needed for the two semaphores that</font>
- <font color=red>// synch access to the shared memory area.</font>
- static const int SEM_KEY_1;
- static const int SEM_KEY_2;
-
- <font color=red>// How big the pool will be and what we'll put into it. A real</font>
- <font color=red>// app wouldn't need SHMDATA of course.</font>
- static const int SHMSZ;
- static const char *SHMDATA;
-
- <font color=red>// The name assigned to the memory pool by the server is needed</font>
- <font color=red>// by the client. Without it, the pool cannot be found.</font>
- <font color=red>// Likewise, the name the server will bind() to the region of the</font>
- <font color=red>// pool must be available to the client.</font>
- static const char *PoolName;
- static const char *RegionName;
-};
-
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_SYSV_SHMEM */</font>
-<font color=blue>#endif</font> <font color=red>/* MPOOL_H */</font>
-</PRE>
-<HR>
- The really hard stuff is done by the ACE_Malloc<> template. This
- template takes two parameters.<sup>*</sup> The first is a
- memory pool class to use. ACE has several, I've choosen one
- that uses a memory-mapped file. The second parameter is a lock
- class of some sort. This is needed so that the ACE_Malloc<> can
- protect its internal data. Note that you still have to
- provide your own mutex around the data you put into the
- malloc'd area.
-
-<P>
- * Actually, some implementations may require a different
- number of parameters.
- That's why ACE uses those funky macros. ACE_MMAP_MEMORY_POOL
- for instance turns into ACE_MMAP_Memory_Pool on Linux but may
- do other things on your platform.
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/021/page05.html b/docs/tutorials/021/page05.html
deleted file mode 100644
index c72b87ac570..00000000000
--- a/docs/tutorials/021/page05.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 021</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 021</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Pooling your memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
-And here we have the implementation of the Allocator...
-<hr>
-<PRE>
-
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>mpool.h</font>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_SYSV_SHMEM</font>)
-
-<font color=red>/*
- Set the values of all of the constants. This guarantees that client
- and server don't get confused.
- */</font>
-const int <font color=#008888>Constants::SEM_KEY_1</font> = ACE_DEFAULT_SEM_KEY + 1;
-const int <font color=#008888>Constants::SEM_KEY_2</font> = ACE_DEFAULT_SEM_KEY + 2;
-
-const int <font color=#008888>Constants::SHMSZ</font> = 27;
-const char * <font color=#008888>Constants::SHMDATA</font> = "<font color=green>abcdefghijklmnopqrstuvwxyz</font>";
-
-const char * <font color=#008888>Constants::PoolName</font> = "<font color=green>SharedMemoryPool</font>";
-const char * <font color=#008888>Constants::RegionName</font> = "<font color=green>Alphabet</font>";
-
-<font color=red>/*
- We have to create a copy of the _name parameter in case the caller
- has dynamically allocated it. The pool_ is set to NULL & will be
- allocated by the accessor.
- */</font>
-<font color=#008888>Allocator::Allocator</font> (const char *_name)
- : name_ (<font color=#008888>ACE_OS::strdup</font> (_name)),
- pool_ (0)
-{
- if (name_ == 0)
- ACE_ERROR ((LM_ERROR, "<font color=green>(%P) %p</font>",
- "<font color=green><font color=#008888>Allocator::Allocator</font> cannot strdup pool name</font>"));
-}
-
-<font color=#008888>Allocator::~Allocator</font> (void)
-{
- <font color=red>/*
- strdup() uses malloc(), so we must use free() to clean up.
- */</font>
- if (name_)
- <font color=#008888>ACE_OS::free</font> (name_);
-
- <font color=red>// delete doesn't really care if you give it a NULL pointer.</font>
- delete pool_;
-}
-
-<font color=red>/*
- Allocate the pool. Since we return a reference, we'll be in really
- bad shape if the new fails. This is a great place to throw an
- exception!
- The other concern is thread safety. If two threads call here at
- about the same time, we may create the pool twice. We can't use a
- Singleton because we want to have multiple Allocator instances. The
- Singleton techniques can be used though.
- */</font>
-
-<font color=#008888>Allocator::pool_t</font> &
-<font color=#008888>Allocator::pool</font> (void)
-{
- if (pool_ == 0)
- pool_ = new pool_t (name_);
-
- return *pool_;
-}
-
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_SYSV_SHMEM */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page06.html">Continue This Tutorial</A>]</CENTER>
-
diff --git a/docs/tutorials/021/page06.html b/docs/tutorials/021/page06.html
deleted file mode 100644
index 6fef55a7bbf..00000000000
--- a/docs/tutorials/021/page06.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>ACE Tutorial 021</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 021</FONT></B></CENTER>
-
-<CENTER><B><FONT SIZE=+2>Pooling your memories</FONT></B></CENTER>
-
-<P>
-<HR WIDTH="100%">
- As you can see, using a memory pool is really rather easy. The
- most difficult part, as always, is with the synch mechanisms.
- <P>
- The other nice thing about ACE_Malloc&lt;> is that you can swap
- between System V shared memory and memory mapped files just by
- changing the template parameters. The truly adventurous will
- likely find a runtime way of doing this.
- <p>
-
- <ul>
- <li><A HREF="Makefile">Makefile</A>
- <li><A HREF="server.cpp">server.cpp</A>
- <li><A HREF="client.cpp">client.cpp</A>
- <li><A HREF="mpool.h">mpool.h</A>
- <li><A HREF="mpool.cpp">mpool.cpp</A>
- </ul>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] </CENTER>
-
diff --git a/docs/tutorials/021/server.cpp b/docs/tutorials/021/server.cpp
deleted file mode 100644
index 78e9e161171..00000000000
--- a/docs/tutorials/021/server.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-
-// $Id$
-
-/*
- I've hidden the details in an Allocator class declared in mpool.h
- We'll come to that a little later.
-*/
-#include "mpool.h"
-
-#if defined(ACE_LACKS_SYSV_SHMEM)
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "System V Semaphores not available on this platform.\n"),100);
-}
-#else // ACE_LACKS_SYSV_SHMEM
-int
-main (int, char *[])
-{
- /*
- Construction of an Allocator will create the memory pool and
- provide it with a name. The Constants class is also
- declared in mpool.h to keep server and client on the same
- page. The name is used to generate a unique semaphore which
- prevents simultaneous access to the pools housekeeping
- information. (Note that you still have to provide your own
- synch mechanisms for the data *you* put in the poo.)
- */
- Allocator allocator (Constants::PoolName);
-
- /*
- The Allocator class provides the pool() member so that you
- have access to the actual memory pool. A more robust
- implementation would behave more as a bridge class but this
- is good enough for what we're doing here.
- Once you have a reference to the pool, the malloc() method
- can be used to get some bytes. If successful, shm will
- point to the data. Otherwise, it will be zero.
- */
- char *shm = (char *) allocator.pool ().malloc (27);
-
- ACE_ASSERT (shm != 0);
-
- /// FYI
- ACE_DEBUG ((LM_INFO,
- "Shared memory is at 0x%x\n",
- shm));
-
- /*
- Something that we can do with a memory pool is map a name to
- a region provided by malloc. By doing this, we can
- communicate that name to the client as a rendezvous
- location. Again, a member of Constants is used to keep the
- client and server coordinated.
- */
- if (allocator.pool ().bind(Constants::RegionName,shm) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "Cannot bind the name '%s' to the pointer 0x%x\n",
- Constants::RegionName,
- shm),
- 100);
-
- /*
- One of the best ways to synch between different processes is
- through the use of semaphores. ACE_SV_Semaphore_Complex
- hides the gory details and lets us use them rather easily.
-
- Here, we'll create two semaphores: mutex and synch. mutex
- will be used to provide mutually exclusive access to the
- shared region for writting/reading. synch will be used to
- prevent the server from removing the memory pool before the
- client is done with it.
-
- Both semaphores are created in an initially locked state.
- */
-
- ACE_SV_Semaphore_Complex mutex;
- ACE_ASSERT (mutex.open (Constants::SEM_KEY_1,
- ACE_SV_Semaphore_Complex::ACE_CREATE,
- 0) != -1);
-
- ACE_SV_Semaphore_Complex synch;
- ACE_ASSERT (synch.open (Constants::SEM_KEY_2,
- ACE_SV_Semaphore_Complex::ACE_CREATE,
- 0) != -1);
-
- /*
- We know the mutex is locked because we created it that way.
- Take a moment to write some data into the shared region.
- */
- for (int i = 0; i < Constants::SHMSZ; i++)
- shm[i] = Constants::SHMDATA[i];
-
- /*
- The client will be blocking on an acquire() of mutex. By
- releasing it here, the client can go look at the shared data.
- */
- if (mutex.release () == -1)
- ACE_ERROR ((LM_ERROR,
- "(%P) %p",
- "server mutex.release"));
- /*
- Even though we created the synch semaphore in a locked
- state, if we attempt to acquire() it, we will block. Our
- design requires that the client release() synch when it is
- OK for us to remove the shared memory.
- */
- else if (synch.acquire () == -1)
- ACE_ERROR ((LM_ERROR,
- "(%P) %p",
- "server synch.acquire"));
- /*
- This will remove all of the memory pool's resources. In the
- case where a memory mapped file is used, the physical file
- will also be removed.
- */
- if (allocator.pool ().remove () == -1)
- ACE_ERROR ((LM_ERROR,
- "(%P) %p\n",
- "server allocator.remove"));
- /*
- We now have to cleanup the semaphores we created. Use the
- ipcs command to see that they did, indeed, go away after the
- server exits.
- */
-
- if (mutex.remove () == -1)
- ACE_ERROR ((LM_ERROR,
- "(%P) %p\n",
- "server mutex.remove"));
- else if (synch.remove () == -1)
- ACE_ERROR ((LM_ERROR,
- "(%P) %p\n",
- "server synch.remove"));
- return 0;
-}
-
-/*
- This tutorial was created by shamelessly modifying one of the ACE
- examples. Someone there had already created the necessary explicit
- template instantiations & I don't want them to go to waste...
- */
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple>;
-template class ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple, ACE_Control_Block>;
-template class ACE_Guard<ACE_SV_Semaphore_Simple>;
-template class ACE_Write_Guard<ACE_SV_Semaphore_Simple>;
-template class ACE_Read_Guard<ACE_SV_Semaphore_Simple>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple>
-#pragma instantiate ACE_Malloc_T<ACE_MMAP_MEMORY_POOL, ACE_SV_Semaphore_Simple, ACE_Control_Block>
-#pragma instantiate ACE_Guard<ACE_SV_Semaphore_Simple>
-#pragma instantiate ACE_Write_Guard<ACE_SV_Semaphore_Simple>
-#pragma instantiate ACE_Read_Guard<ACE_SV_Semaphore_Simple>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#endif /* ACE_LACKS_SYSV_SHMEM */
diff --git a/docs/tutorials/022/Acceptor_Service.cpp b/docs/tutorials/022/Acceptor_Service.cpp
deleted file mode 100644
index aa4976cc228..00000000000
--- a/docs/tutorials/022/Acceptor_Service.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-// $Id$
-
-#include "Acceptor_Service.h"
-#include "ace/Dynamic_Service.h"
-
-#include "client_handler.h"
-
-/* A server has to listen for clients at a known TCP/IP port. The
- default ACE port is 10002 (at least on my system) and that's good
- enough for what we want to do here. Obviously, a more robust
- application would take a command line parameter or read from a
- configuration file or do some other clever thing. Just like the
- signal handler above, though, that's not what we want to focus on,
- so we're taking the easy way out. */
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-/* As in all our simple tutorials, our contructor also does nothing */
-Acceptor_Service::Acceptor_Service (void)
-{
- // Constructor
-}
-
-/* Same in the destructor case */
-Acceptor_Service::~Acceptor_Service (void)
-{
- // Constructor
-}
-
-/* This is the virtual method inherited from ACE_Service_Object. This
- method is called to initialize the service. In a generic sense, we
- initialize everything that is needed to initialize our service
- here. Ofcourse we need to do that only if there are not already
- initialized. One important point to note here is that we have to
- make sure that everything that is initialized here is actually
- removed when the service is shutdown */
-int
-Acceptor_Service::init (int argc, char *argv[])
-{
- /* As you will see, we will not be using argc and argv here and
- hence declare them to be unused variables. This helps us from the
- complaints from the picky compilers about unused variables. */
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
-
- /* Lets have a debug statement so that we can know that our
- Acceptor_Service will be initialized soon */
- ACE_DEBUG ((LM_DEBUG,
- "Starting the Acceptor_Service\n"));
-
- /* Create an ACE_INET_Addr that represents our endpoint of a
- connection. We then open our acceptor object with that Addr.
- Doing so tells the acceptor where to listen for connections.
- Servers generally listen at "well known" addresses. If not, there
- must be some mechanism by which the client is informed of the
- server's address. */
- if (this->open (ACE_INET_Addr (PORT),
- ACE_Reactor::instance ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
- return 0;
-}
-
-/* This virtual method will be invoked when we pass a directive to the
- service configurator framework to remove our service. Remember the
- threads and anything else that are initialized in the init
- method and remove each of them. If we leave anything that we
- initialized still running after this method is invoked ...well .. you
- know what happens :-) */
-int
-Acceptor_Service::fini (void)
-{
- /* Lets have another debug statement to inform us the state of the
- service. */
- ACE_DEBUG ((LM_DEBUG,
- "Closing down the Acceptor_Service\n"));
-
- /* Now, lets see what did we start or initialize during the
- initialization process. The only thing that we did was opening
- our Acceptor to start listening for requests. So, lets close it
- down. */
- this->close ();
-
- return 0;
-}
-
-/* Now, lets see how we can suspend the service that we initialized
- and is running. By suspension, we mean that the Reactor still knows
- about the service and receives the requests. But, it just keeps
- quite even if there are any requests. It actually queues the
- requests and sends them to the service once it is resumed. */
-int
-Acceptor_Service::suspend (void)
-{
-/* You must be wondering, as I did, how we can simply suspend this
- service without any complex method invocations. Thanks to our
- ACE_Reactor class, we can actually suspend the service by just
- invoking the following method and passing a pointer to ourself.
- This method actually takes care of all the particulars for
- suspending the services and keeps us happy. */
- ACE_Reactor::instance ()->suspend_handler (this);
- return 0;
-}
-
-int
-Acceptor_Service::resume (void)
-{
- /* I had the same question again ... how do I do this ?? As before,
- our ACE_Reactor class came to a help with this method. ACE
- classes do make life simpler .. don't they !! */
- ACE_Reactor::instance ()->resume_handler (this);
-
- return 0;
-}
-
-/* The macro to be used to define the factory method and destructor
- for our dynamically loadable service. */
-ACE_SVC_FACTORY_DEFINE (Acceptor_Service)
-
-/* This macro helps to register a statically linked service into the
- service configurator. It is defined in ace/OS.h. All the parameters
- needed by the service configurator to build and control the
- statically linked servuce are configured in a single structure. An
- instance of this structure is statically initialized using this
- macro. The First parameter is SERVICE_CLASS i.e. the name of the
- class that implements the service. As we did implicitly, this class
- must derive from ACE_Service_Configurator. The second parameter is
- the NAME of the service. This name is used by the service
- configurator to match the configuration options provided in the
- svc.conf file. The third parameter is the type of the object which
- could be either streams or service objects. The next parameter is
- the name of the factory function which we defined in our header
- file and above using the macros ACE_FACTORY_DECLARE and
- ACE_FACTORY_DEFINE. The fifth parameter are a set of options or
- flags which are used to control the ownership and life cycle of the
- object. The final argument helps us to choose if we want a new
- thread for this service. If the argument is not 0, a thread will be
- dedicated to this service. .. lots of parameters .. Huh !! */
-ACE_STATIC_SVC_DEFINE (Acceptor_Service,
- ACE_TEXT ("Acceptor_Service"),
- ACE_SVC_OBJ_T,
- &ACE_SVC_NAME (Acceptor_Service),
- ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
- 0)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/docs/tutorials/022/Acceptor_Service.h b/docs/tutorials/022/Acceptor_Service.h
deleted file mode 100644
index d21bd70a42d..00000000000
--- a/docs/tutorials/022/Acceptor_Service.h
+++ /dev/null
@@ -1,93 +0,0 @@
-//$Id$
-
-#ifndef ACCEPTOR_SERVICE_H
-#define ACCEPTOR_SERVICE_H
-#include "ace/pre.h"
-
-/* The ACE_Acceptor<> template lives in the ace/Acceptor.h header
- file. */
-#include "ace/Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-/* Since we want to work with sockets, we'll need a SOCK_Acceptor to
- allow the clients to connect to us. */
-#include "ace/SOCK_Acceptor.h"
-
-/* The Client_Handler object we develop will be used to handle clients
- once they're connected. The ACE_Acceptor<> template's first
- parameter requires such an object. In some cases, you can get by
- with just a forward declaration on the class, in others you have to
- have the whole thing. */
-#include "client_handler.h"
-
-/* In our original simple server, we instantiated a
- ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR> object. We can
- make it much simpler and efficient by inheriting our
- Acceptor_Service from ACE_Acceptor itself.
-
- Our Acceptor_Service class also needs to inherit from
- ACE_Service_Object. ACE_Service_Object is an abstract class which
- includes methods called by the Service Configurator framework to
- start, remove, suspend or resume our service.
-
- You might have noticed that we didnt explicitly inherit from
- ACE_Service_Object here. That is because, ACE_Acceptor derives from
- ACE_Service_Object and hence there is no need to specify it again. */
-
- /* TO Do: Describe what/why ACE_Svc_Export */
-
-class ACE_Svc_Export Acceptor_Service : public ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>
-{
- public:
- // Constructor
- Acceptor_Service (void);
-
- // Destructor
- ~Acceptor_Service (void);
-
- /* This method is the one which is called by the Service
- Configurator Framework to initialize or start the service. */
- virtual int init (int argc, char *argv[]);
-
- /* Called by the Service Configurator framework to remove this
- Service. */
- virtual int fini (void);
-
- /* You could easily guess that this method is called to suspend the
- service by the same Service Configurator Framework. When in the
- suspend mode, the service is not removed completely and is *still
- there*. The difference is that the service is not in a active
- state and doesnot accept requests.*/
- virtual int suspend (void);
-
- /* And your guess that this method is called to resume the service
- is also not wrong. This call brings the service back to the
- active state and the service is all ready to accept requests */
- virtual int resume (void);
-
-};
-
-/* The following macros and similar macros which we will use in the
- implementation file later are used to define helper functions for
- the Service Configurator. As we can easily guess, these macros are
- intended to dynamically load ancd configure services using the
- svc.conf file. These macros will also help to dynamically configure
- even the statically linked services. */
-
-/* This macro is used to declare a data structure required to register a
- statically linked service into the service configurator. As you can
- see it has only one argument which is the name of the class that
- implements this service... so Acceptor_Service in our case. */
-ACE_STATIC_SVC_DECLARE (Acceptor_Service)
-
-/* Once the service implementation is dynamically loaded, the Service
- Configurator uses a factory method to create the object. This
- macro declares such a factory function with the proper interface
- and export macros. */
-ACE_SVC_FACTORY_DECLARE (Acceptor_Service)
-
-#include "ace/post.h"
-#endif /* ACCEPTOR_SERVICE_H */
diff --git a/docs/tutorials/022/Makefile b/docs/tutorials/022/Makefile
deleted file mode 100644
index c164a653cac..00000000000
--- a/docs/tutorials/022/Makefile
+++ /dev/null
@@ -1,105 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-# You can generally find a Makefile in the ACE examples, tests or the library
-# itself that will satisfy our application needs. This one was taken from
-# one of the examples.
-
- # Define the name of the binary we want to create. There has to be
- # a CPP file $(BIN).cpp but it doesn't necessarily have to have your
- # main() in it. Most of the time, though, it will.
-MAKEFILE = Makefile
-BIN = server
-LIBNAME = libAcceptor_Server
-LIB = $(LIBNAME).a
-SHLIB = $(LIBNAME).$(SOEXT)
- # Few applications will have a single source file. We use the FILES
- # macro to build up a list of additional files to compile. Notice
- # that we leave off the extension just as with BIN
-FILES =
-FILES += Acceptor_Service client_handler
-
- # Here we use some GNU make extensions to build the SRC macro. Basically,
- # we're just adding .cpp to the value of BIN and for each entry of the
- # FILES macro.
-PSRC = $(addsuffix .cpp,$(BIN))
-LSRC = $(addsuffix .cpp,$(FILES))
-
-LDLIBS =
-
-LIBS += $(ACELIB)
-
- # The BUILD macro is used by the ACE makefiles. Basically, it tells
- # the system what to build. I don't really know what VBIN is other
- # than it is constructed from the value of BIN. Just go with it...
-BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN)
-
-#----------------------------------------------------------------------------
-# Include macros and targets
-#----------------------------------------------------------------------------
-
- # This is where the real power lies! These included makefile components
- # are similar to the C++ templates in ACE. That is, they do a tremendous
- # amount of work for you and all you have to do is include them.
- # As a matter of fact, in our project, I created a single file named
- # "app.mk" that includes all of these. Our project makefiles then just
- # need to include app.mk to get everything they need.
-
-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
-#----------------------------------------------------------------------------
-
- # Sometimes I like to reformat my code to make it more readable. This is
- # more useful for the comments than anything else. Unfortunately, the
- # "indent" program doesn't quite grok C++ so I have to post-process it's
- # output just a bit.
-Indent : #
- for i in $(SRC) $(HDR) ; do \
- indent -npsl -l80 -fca -fc1 -cli0 -cdb < $$i | \
- sed -e 's/: :/::/g' \
- -e 's/^.*\(public:\)/\1/' \
- -e 's/^.*\(protected:\)/\1/' \
- -e 's/^.*\(private:\)/\1/' \
- -e 's/:\(public\)/ : \1/' \
- -e 's/:\(protected\)/ : \1/' \
- -e 's/:\(private\)/ : \1/' \
- > $$i~ ;\
- mv $$i~ $$i ;\
- done
-
- # One of the targets in the ACE makefiles is "depend". It will invoke
- # your compiler in a way that will generate a list of dependencies for
- # you. This is a great thing! Unfortunately, it puts all of that mess
- # directly into the Makefile. I prefer my Makefile to stay clean and
- # uncluttered. The perl script referenced here pulls the dependency
- # stuff back out of the Makefile and into a file ".depend" which we then
- # include just like the makefile components above.
- #
- # NOTE: The 'depend' target expects to have GCC available.
- # You can do the same thing with other compilers but the ACE
- # makefiles and utilities are only wired up to work with GCC.
-Depend : depend
- perl ../fix.Makefile
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-
- # Don't put anything below here. Between the "depend" target and fix.Makefile
- # it's guaranteed to be lost!
diff --git a/docs/tutorials/022/client/Makefile b/docs/tutorials/022/client/Makefile
deleted file mode 100644
index 0bfc82e3bd5..00000000000
--- a/docs/tutorials/022/client/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for client logging applications
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = client
-
-LSRC = $(addsuffix .cpp,$(BIN))
-
-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.bin.GNU
-include $(ACE_ROOT)/include/makeinclude/rules.local.GNU
-
-
-HTML : #
- [ -f hdr ] || $(MAKE) UNSHAR
- perl ../combine *.pre ; chmod +r *.html
-
-SHAR : #
- [ ! -f combine.shar ] || exit 1
- shar -T hdr bodies *.pre *.pst > combine.shar && $(RM) hdr bodies *.pre *.pst
-
-UNSHAR : #
- sh combine.shar
-
-CLEAN : realclean
- $(RM) hdr bodies *.pre *.pst .depend
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
diff --git a/docs/tutorials/022/client/client.cpp b/docs/tutorials/022/client/client.cpp
deleted file mode 100644
index 54bcbc04fa0..00000000000
--- a/docs/tutorials/022/client/client.cpp
+++ /dev/null
@@ -1,216 +0,0 @@
-// $Id$
-
-/* We need the connector object & we also bring in a simple string
- class. */
-#include "ace/Log_Msg.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/SString.h"
-
-/* In this tutorial, we extend SOCK_Stream by adding a few wrappers
- around the send_n() method. */
-class Client : public ACE_SOCK_Stream
-{
-public:
- // Basic constructor
- Client (void);
-
- /* Construct and open() in one call. This isn't generally a good
- idea because you don't have a clean way to inform the caller when
- open() fails. (Unless you use C++ exceptions.) */
- Client (const char *server,
- u_short port);
-
- /* Open the connection to the server. Notice that this mirrors the
- use of ACE_SOCK_Connector. By providing our own open(), we can
- hide the connector from our caller & make it's interaction easier. */
- int open (const char *server,
- u_short port);
-
- /* These are necessary if you're going to use the constructor that
- invokes open(). */
- int initialized (void) { return initialized_; }
- int error (void) { return error_; }
-
- /* This is where the coolness lies. Most C++ folks are familiar
- with "cout << some-data." It's a very handy and easy way to toss
- data around. By adding these method calls, we're able to do the
- same thing with a socket connection. */
- Client &operator<< (ACE_SString &str);
- Client &operator<< (char *str);
- Client &operator<< (int n);
-
-protected:
- u_char initialized_;
- u_char error_;
-};
-
-/* The basic constructor just sets our flags to reasonable values. */
-Client::Client(void)
-{
- initialized_ = 0;
- error_ = 0;
-}
-
-/* This constructor also sets the flags but then calls open(). If the
- open() fails, the flags will be set appropriately. Use the two
- inline method calls initialized() and error() to check the object
- state after using this constructor. */
-Client::Client (const char *server,
- u_short port)
-{
- initialized_ = 0;
- error_ = 0;
- this->open (server, port);
-}
-
-/* Open a connection to the server. This hides the use of
- ACE_SOCK_Connector from our caller. Since our caller probably
- doesn't care *how* we connect, this is a good thing. */
-int
-Client::open (const char *server,
- u_short port)
-{
- /* This is right out of Tutorial 3. The only thing we've added is
- to set the initialized_ member variable on success. */
-
- ACE_SOCK_Connector connector;
- ACE_INET_Addr addr (port, server);
-
- if (connector.connect (*this, addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
- initialized_ = 1;
- return 0;
-}
-
-/* The first of our put operators sends a simple string object to the
- peer. */
-Client &
-Client::operator<< (ACE_SString &str)
-{
- /* We have to be able to allow: server << foo << bar << stuff;
-
- To accomplish that, every << operator must check that the object
- is in a valid state before doing work. */
-
- if (initialized () && !error ())
- {
- /* Get the actual data held in the string object */
- const char *cp = str.fast_rep ();
-
- /* Send that data to the peer using send_n() as before. If we
- have a problem, we'll set error_ so that subsequent <<
- operations won't try to use a broken stream. */
- if (this->send_n (cp,
- ACE_OS::strlen (cp)) == -1)
- error_ = 1;
- }
- else
- /* Be sure that error_ is set if somebody tries to use us when
- we're not initialized. */
- error_ = 1;
-
- /* We have to return a reference to ourselves to allow chaining of
- put operations (eg -- "server << foo << bar"). Without the
- reference, you would have to do each put operation as a statement.
- That's OK but doesn't have the same feel as standard C++
- iostreams. */
- return *this ;
-}
-
-/* How do you put a char*? We'll take an easy way out and construct
-an ACE_SString from the char* and then put that. It would have been
-more efficient to implement this with the body of the
-operator<<(ACE_SString&) method and then express that method in terms
-of this one. There's always more than one way to do things! */
-
-Client &
-Client::operator<< (char *str)
-{
- ACE_SString newStr (str);
-
- *this << newStr;
-
- return *this ;
-
- /* Notice that we could have been really clever and done:
-
- return *this << ACE_SString (str);
-
- That kind of thing just makes debugging a pain though! */
-}
-
-/* ACE_SString and char* are both about the same thing. What do you
- do about different datatypes though?
-
- Do the same thing we did with char* and convert it to ACE_SString
- where we already have a << operator defined. */
-Client &
-Client::operator<< (int n)
-{
- /* Create a character buffer large enough for the largest number.
- That's a tough call but BUFSIZ should be quite enough. */
- char buf[BUFSIZ];
-
- /* Put the number into our buffer... */
- ACE_OS::sprintf (buf,
- "(%d)\n",
- n);
-
- /* And create the ACE_SString that we know how to put. */
- ACE_SString newStr (buf);
-
- /* Send it and... */
- *this << newStr;
-
- /* return ourselves as usual. */
- return *this;
-}
-
-/* Now we pull it all together. Like Tutorial 3, we'll allow command
- line options. */
-int
-main (int argc, char *argv[])
-{
- const char *server_host = argc > 1 ? argv[1] : ACE_DEFAULT_SERVER_HOST;
- u_short server_port = argc > 2 ? ACE_OS::atoi (argv[2]) : ACE_DEFAULT_SERVER_PORT;
- int max_iterations = argc > 3 ? ACE_OS::atoi (argv[3]) : 4;
-
- /* Use the basic constructor since the other isn't really very safe. */
- Client peer;
-
- /* Open the server connection. Notice how this is simpler than
- Tutorial 3 since we only have to provide a host name and port
- value. */
- if (peer.open (server_host,
- server_port) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
-
- for (int i = 0; i < max_iterations; i++)
- {
- /* Tell the server which iteration we're on. No more mucking
- aroudn with sprintf at this level! It's all hidden from us. */
- peer << "message = " << i+1;
-
- /* Everything OK? */
- if (peer.error ())
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "send"),
- -1);
- else
- ACE_OS::sleep (1);
- }
-
- if (peer.close () == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "close"),
- -1);
- return 0;
-}
diff --git a/docs/tutorials/022/client_handler.cpp b/docs/tutorials/022/client_handler.cpp
deleted file mode 100644
index d1e51f0833c..00000000000
--- a/docs/tutorials/022/client_handler.cpp
+++ /dev/null
@@ -1,225 +0,0 @@
-// $Id$
-
-/* In client_handler.h I alluded to the fact that we'll mess around
- with a Client_Acceptor pointer. To do so, we need the
- Client_Acceptor object declaration.
-
- We know that including client_handler.h is redundant because
- client_acceptor.h includes it. Still, the sentry prevents
- double-inclusion from causing problems and it's sometimes good to
- be explicit about what we're using.
-
- On the other hand, we don't directly include any ACE header files
- here. */
-#include "client_acceptor.h"
-#include "client_handler.h"
-
-/* Our constructor doesn't do anything. That's generally a good idea.
- Unless you want to start throwing exceptions, there isn't a really
- good way to indicate that a constructor has failed. If I had my
- way, I'd have a boolean return code from it that would cause new to
- return 0 if I failed. Oh well... */
-Client_Handler::Client_Handler (void)
-{
-}
-
-/* Our destructor doesn't do anything either. That is also by design.
- Remember, we really want folks to use destroy() to get rid of us.
- If that's so, then there's nothing left to do when the destructor
- gets invoked. */
-Client_Handler::~Client_Handler (void)
-{
- // Make sure that our peer closes when we're deleted. This
- // will probably happened when the peer is deleted but it
- // doesn't hurt to be explicit.
- this->peer ().close ();
-}
-
-/* The much talked about destroy() method! The reason I keep going on
- about this is because it's just a Bad Idea (TM) to do real work
- inside of a destructor. Although this method is void, it really
- should return int so that it can tell the caller there was a
- problem. Even as void you could at least throw an exception which
- you would never want to do in a destructor. */
-void
-Client_Handler::destroy (void)
-{
- /* Tell the reactor to forget all about us. Notice that we use the
- same args here that we use in the open() method to register
- ourselves. In addition, we use the DONT_CALL flag to prevent
- handle_close() being called. Since we likely got here due to
- handle_close(), that could cause a bit of nasty recursion! */
- this->reactor ()->remove_handler (this,
- ACE_Event_Handler:: READ_MASK | ACE_Event_Handler::DONT_CALL);
-
- /* This is how we're able to tell folks not to use delete. By
- deleting our own instance, we take care of memory leaks after
- ensuring that the object is shut down correctly. */
- delete this;
-}
-
-/* As mentioned before, the open() method is called by the
- Client_Acceptor when a new client connection has been accepted.
- The Client_Acceptor instance pointer is cast to a void* and given
- to us here. We'll use that to avoid some global data... */
-int
-Client_Handler::open (void *_acceptor)
-{
- /* Convert the void* to a Client_Acceptor*. You should probably use
- those fancy ACE_*_cast macros but I can never remember how/when
- to do so. Since you can cast just about anything around a void*
- without compiler warnings be very sure of what you're doing when
- you do this kind of thing. That's where the new-style cast
- operators can save you. */
- Client_Acceptor *acceptor = (Client_Acceptor *) _acceptor;
-
- /* Our reactor reference will be set when we register ourselves but
- I decided to go ahead and set it here. No good reason really... */
- this->reactor (acceptor->reactor ());
-
- /* We need this to store the address of the client that we are now
- connected to. We'll use it later to display a debug message. */
- ACE_INET_Addr addr;
-
- /* Our ACE_Svc_Handler baseclass gives us the peer() method as a way
- to access our underlying ACE_SOCK_Stream. On that object, we can
- invoke the get_remote_addr() method to get an ACE_INET_Addr
- having our client's address information. As with most ACE
- methods, we'll get back (and return) a -1 if there was any kind
- of error. Once we have the ACE_INET_Addr, we can query it to
- find out the clien's host name, TCP/IP address, TCP/IP port value
- and so forth. One word of warning: the get_host_name() method of
- ACE_INET_Addr may return you an empty string if your name server
- can't resolve it. On the other hand, get_host_addr() will always
- give you the dotted-decimal string representing the TCP/IP
- address. */
- if (this->peer ().get_remote_addr (addr) == -1)
- return -1;
-
- /* If we managed to get the client's address then we're connected to
- a real and valid client. I suppose that in some cases, the
- client may connect and disconnect so quickly that it is invalid
- by the time we get here. In any case, the test above should
- always be done to ensure that the connection is worth keeping.
-
- Now, register ourselves with a reactor and tell that reactor that
- we want to be notified when there is something to read.
- Remember, we took our reactor value from the acceptor which
- created us in the first place. Since we're exploring a
- single-threaded implementation, this is the correct thing to do. */
- if (this->reactor ()->register_handler (this,
- ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) can't register with reactor\n"),
- -1);
-
- /* Here, we use the ACE_INET_Addr object to print a message with the
- name of the client we're connected to. Again, it is possible
- that you'll get an empty string for the host name if your DNS
- isn't configured correctly or if there is some other reason that
- a TCP/IP addreess cannot be converted into a host name. */
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) connected with %s\n",
- addr.get_host_name ()));
-
- /* Always return zero on success. */
- return 0;
-}
-
-/* In the open() method, we registered with the reactor and requested
- to be notified when there is data to be read. When the reactor
- sees that activity it will invoke this handle_input() method on us.
- As I mentioned, the _handle parameter isn't useful to us but it
- narrows the list of methods the reactor has to worry about and the
- list of possible virtual functions we would have to override. */
-int
-Client_Handler::handle_input (ACE_HANDLE handle)
-{
- /* Some compilers don't like it when you fail to use a parameter.
- This macro will keep 'em quiet for you. */
- ACE_UNUSED_ARG (handle);
-
- /* Now, we create and initialize a buffer for receiving the data.
- Since this is just a simple test app, we'll use a small buffer
- size. */
- char buf[BUFSIZ];
-
- /* Invoke the process() method with a pointer to our data area.
- We'll let that method worry about interfacing with the data. You
- might choose to go ahead and read the data and then pass the
- result to process(). However, application logic may require that
- you read a few bytes to determine what else to read... It's best
- if we push that all into the application-logic level. */
- return this->process (buf, sizeof (buf));
-}
-
-/* If we return -1 out of handle_input() or if the reactor sees other
- problems with us then handle_close() will be called. The reactor
- framework will take care of removing us (due to the -1), so we
- don't need to use the destroy() method. Instead, we just delete
- ourselves directly. */
-int
-Client_Handler::handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask)
-{
- ACE_UNUSED_ARG (handle);
- ACE_UNUSED_ARG (mask);
-
- delete this;
- return 0;
-}
-
-/* And, at last, we get to the application-logic level. Out of
- everything we've done so far, this is the only thing that really
- has anything to do with what your application will do. In this
- method we will read and process the client's data. In a real
- appliation, you will probably have a bit more in main() to deal
- with command line options but after that point, all of the action
- takes place here. */
-int
-Client_Handler::process (char *rdbuf,
- int rdbuf_len)
-{
- ssize_t bytes_read = -1;
-
- /* Using the buffer provided for us, we read the data from the
- client. If there is a read error (eg -- recv() returns -1) then
- it's a pretty good bet that the connection is gone. Likewise, if
- we read zero bytes then something wrong has happened. The
- reactor wouldn't have called us if there wasn't some kind of read
- activity but there wouldn't be activity if there were no bytes to
- read...
-
- On the other hand, if we got some data then we can display it in
- a debug message for everyone to see. */
- switch ( (bytes_read = this->peer ().recv (rdbuf, rdbuf_len)) )
- {
- case -1: // Complain and leave
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) %p bad read\n",
- "client"),
- -1);
- case 0: // Complain and leave
- ACE_ERROR_RETURN ((LM_ERROR,
- "(%P|%t) closing daemon (fd = %d)\n",
- this->get_handle ()),
- -1);
- default: // Show the data
- // NULL-terminate the string before printing it.
- rdbuf[bytes_read] = 0;
- ACE_DEBUG ((LM_DEBUG,
- "(%P|%t) from client: %s",
- rdbuf));
- }
-
- /* It's also worth mentioning that recv() has a cousin: recv_n().
- recv_n() will receive exactly the number of bytes you provide it.
- This is very good when you know exactly how much you expect to
- receive. For the application here, unfortunately, we don't have
- any idea how much the client will be sending. recv() will read
- up-to-but-not-more-than the number of bytes we specify (e.g. --
- _rdbuf_len). That works well when we don't know how much the
- client will provide. */
-
- return 0;
-}
diff --git a/docs/tutorials/022/client_handler.h b/docs/tutorials/022/client_handler.h
deleted file mode 100644
index 03d3b1a8e10..00000000000
--- a/docs/tutorials/022/client_handler.h
+++ /dev/null
@@ -1,100 +0,0 @@
-// $Id$
-
-#ifndef CLIENT_HANDLER_H
-#define CLIENT_HANDLER_H
-
-/* Our client handler must exist somewhere in the ACE_Event_Handler
- object hierarchy. This is a requirement of the ACE_Reactor because
- it maintains ACE_Event_Handler pointers for each registered event
- handler. You could derive our Client_Handler directly from
- ACE_Event_Handler but you still have to have an ACE_SOCK_Stream for
- the actual connection. With a direct derivative of
- ACE_Event_Handler, you'll have to contain and maintain an
- ACE_SOCK_Stream instance yourself. With ACE_Svc_Handler (which is
- a derivative of ACE_Event_Handler) some of those details are
- handled for you. */
-
-#include "ace/Svc_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Stream.h"
-
-/* Another feature of ACE_Svc_Handler is it's ability to present the
- ACE_Task<> interface as well. That's what the ACE_NULL_SYNCH
- parameter below is all about. That's beyond our scope here but
- we'll come back to it in the next tutorial when we start looking at
- concurrency options. */
-class Client_Handler : public ACE_Svc_Handler <ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
-public:
- // Constructor...
- Client_Handler (void);
-
- /* The destroy() method is our preferred method of destruction. We
- could have overloaded the delete operator but that is neither easy
- nor intuitive (at least to me). Instead, we provide a new method
- of destruction and we make our destructor protected so that only
- ourselves, our derivatives and our friends can delete us. It's a
- nice compromise. */
- void destroy (void);
-
- /* Most ACE objects have an open() method. That's how you make them
- ready to do work. ACE_Event_Handler has a virtual open() method
- which allows us to create an override. ACE_Acceptor<> will invoke
- this method after creating a new Client_Handler when a client
- connects. Notice that the parameter to open() is a void*. It just
- so happens that the pointer points to the acceptor which created
- us. You would like for the parameter to be an ACE_Acceptor<>* but
- since ACE_Event_Handler is generic, that would tie it too closely
- to the ACE_Acceptor<> set of objects. In our definition of open()
- you'll see how we get around that. */
- int open (void *acceptor);
-
- /* When there is activity on a registered handler, the
- handle_input() method of the handler will be invoked. If that
- method returns an error code (eg -- -1) then the reactor will
- invoke handle_close() to allow the object to clean itself
- up. Since an event handler can be registered for more than one
- type of callback, the callback mask is provided to inform
- handle_close() exactly which method failed. That way, you don't
- have to maintain state information between your handle_* method
- calls. The <handle> parameter is explained below... As a
- side-effect, the reactor will also invoke remove_handler() for the
- object on the mask that caused the -1 return. This means that we
- don't have to do that ourselves! */
- int handle_close (ACE_HANDLE handle,
- ACE_Reactor_Mask mask);
-
-protected:
-
- /* When we register with the reactor, we're going to tell it that we
- want to be notified of READ events. When the reactor sees that
- there is read activity for us, our handle_input() will be
- invoked. The _handle provided is the handle (file descriptor in
- Unix) of the actual connection causing the activity. Since we're
- derived from ACE_Svc_Handler<> and it maintains its own peer
- (ACE_SOCK_Stream) object, this is redundant for us. However, if
- we had been derived directly from ACE_Event_Handler, we may have
- chosen not to contain the peer. In that case, the <handle> would
- be important to us for reading the client's data. */
- int handle_input (ACE_HANDLE handle);
-
- /* This has nothing at all to do with ACE. I've added this here as
- a worker function which I will call from handle_input(). That
- allows me to introduce concurrency in later tutorials with no
- changes to the worker function. You can think of process() as
- application-level code and everything else as
- application-framework code. */
- int process (char *rdbuf, int rdbuf_len);
-
- /* We don't really do anything in our destructor but we've declared
- it to be protected to prevent casual deletion of this object. As
- I said above, I really would prefer that everyone goes through the
- destroy() method to get rid of us. */
- ~Client_Handler (void);
-};
-
-#endif /* CLIENT_HANDLER_H */
diff --git a/docs/tutorials/022/page01.html b/docs/tutorials/022/page01.html
deleted file mode 100644
index 4bbb6ff8c40..00000000000
--- a/docs/tutorials/022/page01.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!-- $Id$ -->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>ACE Tutorial 022</title>
- </head>
-
- <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 022</FONT></B></CENTER>
-<CENTER> <h1>Using Service Configurator Framework</h1> </CENTER>
-
- <P>When building distributed systems, there will almost certainly
- be multiple processes or services running at all
- times. It is helpful if these services can (re)configured and
- control at installation-time or run-time. In this tutorial, we
- illustrate how to configure services in a fine-grained manner,
- rather than having to stop and restart all services in an application. </P>
-
- <P>The examples we show are based on the <A HREF="http://www.cs.wustl.edu/~schmidt/POSA/">Component Configurator</A> pattern,
- which enables a service to be started, removed, suspended or resumed
- dynamically. This pattern decouples the implementation of a
- service from its (re)configuration. Thus, new services can be added or unnecessary services
- can be suspended or removed.</P>
-
- <P>In this tutorial, we will use the simple server and client
- which we developed and used in our tutorial 005 as the base and
- modify it as needed.</P>
- <P>
- <P><HR WIDTH="100%">
- <CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page02.html">Continue This Tutorial</A>]</CENTER>
-
- <hr>
- <address><a href="mailto:pgontla@ece.uci.edu">Priyanka Gontla</a></address>
-<!-- Created: Thu Dec 28 14:19:26 PST 2000 -->
-<!-- hhmts start -->
-Last modified: Sat Jan 20 10:18:42 CST 2001
-<!-- hhmts end -->
- </body>
-</html>
diff --git a/docs/tutorials/022/page02.html b/docs/tutorials/022/page02.html
deleted file mode 100644
index 144a28112fd..00000000000
--- a/docs/tutorials/022/page02.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!-- $Id$ -->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>ACE Tutorial 022</title>
- </head>
-
- <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 022</FONT></B></CENTER>
- We begin with <a href="server.cpp">server.cpp</a>
- <UL>
- <P>Abstract:
-
- We begin with the server and the acceptor which we developed in
- our ACE Tutorial 005. We modify these and add new
- implementation files so as to make the acceptor service dynamically
- (un)loadable. What we want to do is separate the implementation
- of the service from its configuration. So, our server will
- now just act as a daemon waiting for requests.
- We again enroll the services of the ACE_Reactor to handle
- events. Everything occurs in a single thread. <P>
-
- This tutorial helps us learn apply the service configurator
- pattern and make services dynamically configurable. In that
- process, we are trying to make the acceptor we have developed
- previously as a dynamically configurable service.
- </UL>
- <P>
- <HR WIDTH="100%">
- <P>
- <PRE>
- <font color=red>/* We try to keep the server much simpler than before and
- remove any thing related to the acceptor from the main ().
- This lets keep the server running irrespective of the
- state of the acceptor service. */
- </font>
- <font color=red>/* As always, we would need the
- ACE_Service_Config to help run the server as a daemon. */ </font>
- <font color=blue>#include </font><font color=green>"ace/Service_Config.h"</font>
-
- <font color=red>/* Since we are seperating the acceptor service class from the
- server, we need to declare our Acceptor_Service */ </font>
- <font color=blue>#include </font><font color=green>"Acceptor_Service.h"</font>
-
- int
- main (int argc, char *argv [])
- {
- <font color=red>
- /* Perform daemon services update ... this opens the svc.conf
- file and reads the entries present in the svc.conf
- file. We will later learn the syntax of making an entry
- into a svc.conf file. But for now, remember that this is a
- file which has the entries to load or unload a service
- dynamically or statically. */
-
- In case, the function call returns a (-1), which is
- indicative of an error, we print out a debug statement
- and return (-1) to indicate an failure.</font>
- if (ACE_Service_Config::open (argc,
- argv,
- ACE_DEFAULT_LOGGER_KEY,
- 0) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ACE_Service_Config::open"),
- -1);
-
- <font color=red>
- /* Install our signal handler. As we already know, you can actually
- register signal handlers with the reactor. You might do that
- when the signal handler is responsible for performing "real"
- work. Our simple flag-setter doesn't justify deriving from
- ACE_Event_Handler and providing a callback function
- though. */ </font>
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGHUP);
-
- <font color=red>
- /* Start running the event loop so that it
- listens for events and acts accordingly. This event loop will run
- either the event loop is ended explicitly or an error
- occurs. */ </font>
- ACE_Reactor::run_event_loop ();
-
- <font color=red>/* NOT REACHED */</font>
- }
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page03.html">Continue This Tutorial</A>]</CENTER>
-
- <hr>
- <address><a href="mailto:pgontla@ece.uci.edu">Priyanka Gontla</a></address>
-<!-- Created: Thu Dec 28 15:17:34 PST 2000 -->
-<!-- hhmts start -->
-Last modified: Sat Jan 20 10:19:22 CST 2001
-<!-- hhmts end -->
- </body>
-</html>
diff --git a/docs/tutorials/022/page03.html b/docs/tutorials/022/page03.html
deleted file mode 100644
index 4a095ae9a8f..00000000000
--- a/docs/tutorials/022/page03.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!-- $Id$ -->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>ACE Tutorial 022</title>
- </head>
-
- <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 022</FONT></B></CENTER>
- Now, lets implement the Acceptor Service. As the first step, let
- us take a look at <I><A HREF="Acceptor_Service.h">Acceptor_Service.h</A></I>.
-
-<P>
-<HR WIDTH="100%">
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#ifndef</font> <font color=purple>ACCEPTOR_SERVICE_H</font>
-<font color=blue>#define</font> <font color=purple>ACCEPTOR_SERVICE_H</font>
-
-<font color=red>/* The ACE_Acceptor&lt;> template lives in the ace/Acceptor.h header
- file. */</font>
-
-<font color=blue>#include</font> "<A HREF="../../../ace/Acceptor.h">ace/Acceptor.h</A>"
-
-<font color=blue>#if !defined</font> (<font color=purple>ACE_LACKS_PRAGMA_ONCE</font>)
-<font color=blue># pragma</font> <font color=purple>once</font>
-<font color=blue>#endif</font> <font color=red>/* ACE_LACKS_PRAGMA_ONCE */</font>
-
-<font color=red>/* Since we want to work with sockets, we'll need a SOCK_Acceptor to
- allow the clients to connect to us. */</font>
-<font color=blue>#include</font> "<A HREF="../../../ace/SOCK_Acceptor.h">ace/SOCK_Acceptor.h</A>"
-
-<font color=red>/* The Client_Handler object we develop will be used to handle clients
- once they're connected. The ACE_Acceptor&lt;> template's first
- parameter requires such an object. In some cases, you can get by
- with just a forward declaration on the class, in others you have to
- have the whole thing. */</font>
-<font color=blue>#include</font> "<font color=green>client_handler.h</font>"
-
-<font color=red>/* In our original simple server, we instantiated a
- ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR> object. We can
- make it much simpler and efficient by inheriting our
- Acceptor_Service from ACE_Acceptor itself.
-
- Our Acceptor_Service class also needs to inherit from
- ACE_Service_Object. ACE_Service_Object is an abstract class which
- includes methods called by the Service Configurator framework to
- start, remove, suspend or resume our service.
-
- You might have noticed that we didnt explicitly inherit from
- ACE_Service_Object here. That is because, ACE_Acceptor derives from
- ACE_Service_Object and hence there is no explicitly specify it. */
-
- /* TO Do: Describe what/why ACE_Svc_Export */
- We use the ACE_Svc_Export macro to export the symbols from the
-library on Win.</font>
-class ACE_Svc_Export Acceptor_Service : public ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>
-{
- public:
- <font color=red> // Constructor </font>
- Acceptor_Service (void);
-
- <font color=red> // Destructor </font>
- ~Acceptor_Service (void);
-
- <font color=red>/* This method is the one which is called by the Service
- Configurator Framework to initialize or start the service. */ </font>
- virtual int init (int argc, char *argv[]);
-
- <font color=red>/* Called by the Service Configurator framework to remove this
- Service. */ </font>
- virtual int fini (void);
-
- <font color=red>/* You could easily guess that this method is called to suspend the
- service by the same Service Configurator Framework. When in the
- suspend mode, the service is not removed completely and is *still
- there*. The difference is that the service is not in a active
- state and doesnot accept requests.*/ </font>
- virtual int suspend (void);
-
- <font color=red> /* And your guess that this method is called to resume the service
- is also right. This call brings the service back to the
- active state and the service is all ready to accept requests */ </font>
- virtual int resume (void);
-
-};
-
-<font color=red>/* The following macros and similar macros which we
- will use in the implementation file later are used to define helper
- functions for the Service Configurator. As we can easily guess, these
- macros are intended to dynamically load ancd configure services using
- the svc.conf file. These macros will also help to dynamically configure
- even the statically linked services. */</font>
-
-<font color=red>/* This macro is used to declare a data structure
- required to register a statically linked service into the service
- configurator. As you can see it has only one argument which is the
- name of the class that implements this service... so
- Acceptor_Service in our case. */</font>
-ACE_STATIC_SVC_DECLARE (Acceptor_Service)
-
-<font color=red>/* Once the service implementation is dynamically loaded, the Service
- Configurator uses a factory method to create the object. This
- macro declares such a factory function with the proper interface
- and export macros. */</font>
-ACE_SVC_FACTORY_DECLARE (Acceptor_Service)
-
-#include "ace/post.h"
-<font color=blue>#endif</font> <<font color=red> /* ACCEPTOR_SERVICE_H */</font>
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page04.html">Continue This Tutorial</A>]</CENTER>
-
- <hr>
- <address><a href="mailto:pgontla@ece.uci.edu">Priyanka Gontla</a></address>
-<!-- Created: Thu Jan 18 17:46:58 PST 2001 -->
-<!-- hhmts start -->
-Last modified: Fri Jan 19 11:38:39 PST 2001
-<!-- hhmts end -->
- </body>
-</html>
diff --git a/docs/tutorials/022/page04.html b/docs/tutorials/022/page04.html
deleted file mode 100644
index eae9d24fef4..00000000000
--- a/docs/tutorials/022/page04.html
+++ /dev/null
@@ -1,177 +0,0 @@
-<!-- $Id$ -->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>ACE Tutorial 022</title>
- </head>
-
- <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 022</FONT></B></CENTER>
-<pre>
-<font color=red>/* Now that we know the interface, lets proceed to its
- implementation. We obviosuly want to include the corresponding header
- file. */</font>
-<font color=blue>#include</font> "<A
- HREF="Acceptor_Service.h">Acceptor_Service.h</A>"
-
-<font color=red>/* A server has to listen for clients at a known
- TCP/IP port. The default ACE port is 10002 (at least on my
- system) and that's good enough for what we want to do here.
- Obviously, a more robust application would take a command line
- parameter or read from a configuration file or do some other
- clever thing. Just like the signal handler above, though,
- that's not what we want to focus on, so we're taking the easy
- way out. */</font>
-
-static const u_short PORT = ACE_DEFAULT_SERVER_PORT;
-
-<font color=red>/* As in all our simple tutorials, our contructor also does nothing */</font>
-Acceptor_Service::Acceptor_Service (void)
-{
- <font color=red>// Constructor</font>
-}
-
-<font color=red>/* Same in the destructor case */</font>
-Acceptor_Service::~Acceptor_Service (void)
-{
- <font color=red>// Destructor</font>
-}
-
-<font color=red>/* This is the virtual method inherited from ACE_Service_Object. This
- method is called to initialize the service. In a generic sense, we
- initialize everything that is needed to initialize our service
- here. Ofcourse we need to do that only if there are not already
- initialized. One important point to note here is that we have to
- make sure that everything that is initialized here is actually
- removed when the service is shutdown */</font>
-int
-Acceptor_Service::init (int argc, char *argv[])
-{
- <font color=red>/* As you will see, we will not be using argc and
- argv here and hence declare them to be unused variables. This
- helps us from the complaints from the picky compilers about
- unused variables. */</font>
- ACE_UNUSED_ARG (argc);
- ACE_UNUSED_ARG (argv);
-
- <font color=red>/* Lets have a debug statement so that we can know that our
- Acceptor_Service will be initialized soon */</font>
- ACE_DEBUG ((LM_DEBUG,
- "Starting the Acceptor_Service\n"));
-
- <font color=red>/* Create an ACE_INET_Addr that represents our endpoint of a
- connection. We then open our acceptor object with that Addr.
- Doing so tells the acceptor where to listen for connections.
- Servers generally listen at "well known" addresses. If not, there
- must be some mechanism by which the client is informed of the
- server's address. */</font>
- if (this->open (ACE_INET_Addr (PORT),
- ACE_Reactor::instance ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
- return 0;
-}
-
-<font color=red>/* This virtual method will be invoked when we pass
- a directive to the service configurator framework to remove
- our service. Remember the threads and anything else that are
- initialized in the init method and remove each of them. If we
- leave anything that we initialized still running after this
- method is invoked ...well .. you know what happens :-) */ </font>
-int
-Acceptor_Service::fini (void)
-{
- <font color=red> /* Lets have another debug statement to inform us the state of the
- service. */</font>
- ACE_DEBUG ((LM_DEBUG,
- "Closing down the Acceptor_Service\n"));
-
- <font color=red> /* Now, lets see what did we start or initialize during the
- initialization process. The only thing that we did was opening
- our Acceptor to start listening for requests. So, lets close it
- down. */</font>
- this->close ();
-
- return 0;
-}
-
- <font color=red>/* Now, lets see how we can suspend the service that we initialized
- and is running. By suspension, we mean that the Reactor still knows
- about the service and receives the requests. But, it just keeps
- quite even if there are any requests. It actually queues the
- requests and sends them to the service once it is resumed.*/</font>
-int
-Acceptor_Service::suspend (void)
-{
- <font color=red>/* You must be wondering, as I did, how we can simply suspend this
- service without any complex method invocations. Thanks to our
- ACE_Reactor class, we can actually suspend the service by just
- invoking the following method and passing a pointer to ourself.
- This method actually takes care of all the particulars for
- suspending the services and keeps us happy. */</font>
- ACE_Reactor::instance ()->suspend_handler (this);
- return 0;
-}
-
-int
-Acceptor_Service::resume (void)
-{
- <font color=red> /* I had the same question again ... how do I do this ?? As before,
- our ACE_Reactor class came to a help with this method. ACE
- classes do make life simpler .. don't they !! */</font>
- ACE_Reactor::instance ()->resume_handler (this);
-
- return 0;
-}
-
-<font color=red>/* The macro to be used to define the factory method
- and destructor for our dynamically loadable service. */ </font>
-ACE_SVC_FACTORY_DEFINE (Acceptor_Service)
-
-<font color=red>/* This macro helps to register a statically linked
- service into the service configurator. It is defined in ace/OS.h. All
- the parameters needed by the service configurator to build and control the
- statically linked servuce are configured in a single structure. An
- instance of this structure is statically initialized using this
- macro. The First parameter is SERVICE_CLASS i.e. the name of the
- class that implements the service. As we did implicitly, this class
- must derive from ACE_Service_Configurator. The second parameter is
- the NAME of the service. This name is used by the service
- configurator to match the configuration options provided in the
- svc.conf file. The third parameter is the type of the object which
- could be either streams or service objects. The next parameter is
- the name of the factory function which we defined in our header
- file and above using the macros ACE_FACTORY_DECLARE and
- ACE_FACTORY_DEFINE. The fifth parameter are a set of options or
- flags which are used to control the ownership and life cycle of the
- object. The final argument helps us to choose if we want a new
- thread for this service. If the argument is not 0, a thread will be
- dedicated to this service. .. lots of parameters .. Huh !! */ </font>
-ACE_STATIC_SVC_DEFINE (Acceptor_Service,
- ACE_TEXT ("Acceptor_Service"),
- ACE_SVC_OBJ_T,
- &ACE_SVC_NAME (Acceptor_Service),
- ACE_Service_Type::DELETE_THIS | ACE_Service_Type::DELETE_OBJ,
- 0)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor <Client_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-</PRE>
-<P><HR WIDTH="100%">
-<CENTER>[<A HREF="../online-tutorials.html">Tutorial Index</A>] [<A HREF="page05.html">Continue This Tutorial</A>]</CENTER>
- <hr>
- <address><a href="mailto:pgontla@ece.uci.edu">Priyanka Gontla</a></address>
-<!-- Created: Thu Jan 18 18:24:15 PST 2001 -->
-<!-- hhmts start -->
-Last modified: Fri Jan 19 11:37:49 PST 2001
-<!-- hhmts end -->
- </body>
-</html>
diff --git a/docs/tutorials/022/page05.html b/docs/tutorials/022/page05.html
deleted file mode 100644
index 5b14622b2c4..00000000000
--- a/docs/tutorials/022/page05.html
+++ /dev/null
@@ -1,130 +0,0 @@
-<!-- $Id$ -->
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <head>
- <title>ACE Tutorial 022</title>
- </head>
-
- <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<CENTER><B><FONT SIZE=+2>ACE Tutorial 022</FONT></B></CENTER>
- <p>So, by now we have implemented our Acceptor Service: known how to
- initialize, remove, suspend and resume our service. We have the
- server daemon set up to run to accept requests. The only thing
- that is left is the client_handler. We need to declare and define
- the Client_Handler object. We will use the same <I><A
- HREF="../005/Client_Handler.h">Client_Handler.h</A></I> and
- <I><A HREF="../005/Client_Hander.cpp">Client_Handler.cpp</A></I>
- that we used in our ACE Tutorial 005.</p>
-
- <p>With this, we are done with everything that we want to get our
- Acceptor Service dynamically configurable in addition to the
- actual functionality of the Acceptor.</p>
-
- <p>To compile, we can use the same <I><A
- HREF="../005/Makefile">Makefile</A></I> that we used
- previously and make appropriate changes for the new files that
- we added. You could use this <I><A HREF="Makefile">Makefile</A></I>
-
- <p>Now, lets compile it and be all set to configure our Acceptor
- Service. Let us run our server to start acting as a daemon and
- accept requests.</p>
-
- <pre>$ ./server </pre>
-
- <p>Obviously, we will want to load our service dynamically and see
- if our Acceptor Service is running as we want it to. For this,
- we need to make an entry in the svc.conf file.
-
- <p>The Service Configurator framework reads the entries in the
- svc.conf file in the working directory by default. According to
- the entries in the svc.con file, the framework does the
- needful. You could use a different name for the file like
- server.conf but in that case, we need to explicitly specify to
- the application the configuration file that has to be read using
- the <I>-ORBSvcconf</I> option.
-
- <p>Coming back to where we were, now we want to make an entry in
- this svc.conf file to load our service. I will show you the
- general format for this entry and then we will make our entry.</p>
-
- A dynamic service could be initialized as:
- <pre>dynamic service_name type_of_service * location_of_shared_lib:name_of_object "parameters" </pre>
-
- and a static service is initialized as:
-<pre> static service_name "parameters_sent_to_service_object" </pre>
-
- <p>Lets start making our entry. The first keyword specifies if this
- is a dynamic service or a static one. Since we want our service
- to be a dynamically configurable one, the first parameter in our
- entry will be <I>dynamic</I>. The next parameter is the name of
- the service that we want to be loaded. This is the same name
- that we specified in the ACE_STATIC_SVC_DEFINE macro. Since our
- service name is Acceptor_Service, that becomes the second
- parameter of our entry. The next argument is the type of the
- service .. as we know already, there are two options:
- Stream or Service_Object. And, we declared our service to be a
- <I>Service_Object</I> in the ACE_STATIC_SVC_DEFINE macro. So, that
- becomes the next parameter. The next entry is the location of
- the shared library which has our service and that is
- Acceptor_Server according to our Makefile. The next parameter is
- the name of the object and finally the list of parameters that
- we want to pass to our service. So, we are now erady to make our
- entry in the svc.conf file to initialize our service.
-
-<pre> dynamic Acceptor_Service Service_Object * ./Acceptor_Server:_make_Acceptor_Service () "" </pre>
-
- <p>Now, we want to reconfigure so that our service will be
- initialized. This could be done by sending a signal which would
- be received eventually by the Reactor listening for requests and
- it would invoke the ACE_Service::reconfigure () method which
- does the reconfiguration of the services.
-
- <pre>$ kill -1 PID_of_our_server </pre>
-
- Now, that we know how to initialize our service and actually
- initialized the service .. we could check if our service is
- working good. Ofcourse, the debug statements we left in the init
- method would help .. but to double check !! For this purpose, we
- can use the simple client which we used in our ACE Tutorial
- 005. Just compile the <I><A
- HREF="client/client.cpp">client.cpp</A></I> using this <A
- HREF="client/Makefile">Makefile</A> and run it. You can see the
- responses from the service.
-
- <p>Now, we can check if we can suspend and resume and finally
- remove the service. The entries for these functionalities are
- very simple unlike the initialization entry.
-
- <pre>$ suspend Acceptor_Service </pre>
- <pre>$ resume Acceptor_Service </pre>
- <pre>$ remove Acceptor_Service </pre>
-
- <p>Lets first suspend the service by commenting out the entry for
- the initialization and making the new entry for suspension in
- the svc.conf file. Now, send a signal as before. The Reactor
- will receive this event and suspend the service. Just to double
- check, you could run our client again and see the response. </p>
-
- <p>Now, to resume the service, the procedure is the same. Comment
- out other entries and make the entry for the resumption of the
- service. And finally, send a signal. Again, you could run the
- client and see what is happening. But, even before running the
- client, you must have noticed that as soon as you resumed the
- service, you saw some response from the Acceptor_Service. This
- is because, as I explained before, the Reactor will queue the
- request when the service is in suspension mode and send the
- service the queued requests as and when it is active again.
-
- <p>Finally, lets remove our service.
-
- <p>So, now we know how to implement a dynamically configurable
- service and how to dynamically configure the service. </p>
- <hr>
- <address><a href="mailto:pgontla@ece.uci.edu">Priyanka Gontla</a></address>
-<!-- Created: Fri Jan 19 10:19:46 PST 2001 -->
-<!-- hhmts start -->
-Last modified: Fri Jan 19 11:37:23 PST 2001
-<!-- hhmts end -->
- </body>
-</html>
diff --git a/docs/tutorials/022/server.cpp b/docs/tutorials/022/server.cpp
deleted file mode 100644
index 5c3bce4601e..00000000000
--- a/docs/tutorials/022/server.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-// $Id$
-
-/* We try to keep the server much simpler than before and
- remove any thing related to the acceptor or the handler
- from the main (). This lets keep the server running irrespective of
- the state of the acceptor service, in our case and any service in
- the general case. */
-
-/* We would need the ACE_Service_Config class as it provides an
- application developers interface to the entire Service
- Configuration Framework */
-#include "ace/Service_Config.h"
-
-/* Since we are seperating the acceptor service class from the
- server, we need to declare our Acceptor_Service */
-#include "Acceptor_Service.h"
-
-extern "C" void handler (int)
-{
- ACE_Service_Config::reconfig_occurred (1);
-}
-
-int
-main (int argc, char *argv[])
-{
- /* Perform daemon services update ... this opens the svc.conf
- file and reads the entries present in the svc.conf
- file. We will later learn the syntax of making an entry
- into a svc.conf file. But for now, remember that this is a
- file which has the entries to load or unload a service
- dynamically or statically. */
- if (ACE_Service_Config::open (argc,
- argv,
- ACE_DEFAULT_LOGGER_KEY,
- 0) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ACE_Service_Config::open"),
- -1);
-
- /* Install our signal handler. As we already know, you can actually
- register signal handlers with the reactor. You might do that
- when the signal handler is responsible for performing "real"
- work. Our simple flag-setter doesn't justify deriving from
- ACE_Event_Handler and providing a callback function though. */
- ACE_Sig_Action sa ((ACE_SignalHandler) handler, SIGHUP);
-
- /* Start running the event loop so that it
- listens for events and acts accordingly. This event loop will run
- until either the event loop is ended explicitly or an error
- occurs. */
- ACE_Reactor::run_event_loop ();
-
- /* NOT REACHED */
-
-}
diff --git a/docs/tutorials/022/svc.conf b/docs/tutorials/022/svc.conf
deleted file mode 100644
index 1c3ae8eb8ce..00000000000
--- a/docs/tutorials/022/svc.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-# $Id$
-
-
-#dynamic Acceptor_Service Service_Object * ./Acceptor_Server:_make_Acceptor_Service () ""
-
-#remove Acceptor_Service
-
-#suspend Acceptor_Service
-#resume Acceptor_Service
diff --git a/docs/tutorials/Chap_2/Chap_2.zip b/docs/tutorials/Chap_2/Chap_2.zip
deleted file mode 100644
index fb356b7ee09..00000000000
--- a/docs/tutorials/Chap_2/Chap_2.zip
+++ /dev/null
Binary files differ
diff --git a/docs/tutorials/Chap_2/ex01.html b/docs/tutorials/Chap_2/ex01.html
deleted file mode 100644
index e702ee77078..00000000000
--- a/docs/tutorials/Chap_2/ex01.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter: "IPC SAP" (Interprocess Communication
-Mechanisms in ACE).</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#FF0000">//Example 1</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Stream.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">SIZE_DATA
-18</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">SIZE_BUF
-1024</FONT>
-
-<P>class Server{
-
-<P>public:
-<BR>Server (int port):
-<BR>&nbsp;server_addr_(port),peer_acceptor_(server_addr_){
-<BR>&nbsp;data_buf_= new char[SIZE_BUF];
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Handle the connection once it has been established.</FONT>
-<BR><FONT COLOR="#FF0000">//Here the connection is handled by reading SIZE_DATA
-amount of data</FONT>
-<BR><FONT COLOR="#FF0000">//from the remote and then closing the connection</FONT>
-<BR><FONT COLOR="#FF0000">//stream down.</FONT>
-<BR>int handle_connection(){
-<BR>&nbsp;<FONT COLOR="#FF0000"> // Read data from client</FONT>
-<BR>&nbsp;if(new_stream_.recv_n (data_buf_, SIZE_DATA, 0)==-1)
-<BR>&nbsp; ACE_ERROR ((LM_ERROR, "%p\n", "Error in recv"));
-<BR>&nbsp;
-
-<P>&nbsp;ACE_DEBUG((LM_DEBUG,"Server recieved %s \n",data_buf_));
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">// Close new endpoint</FONT>
-<BR>&nbsp;if (new_stream_.close () == -1)
-<BR>&nbsp; ACE_ERROR ((LM_ERROR, "%p\n", "close"));
-<BR>&nbsp;return 0;
-<BR>}
-<BR><FONT COLOR="#FF0000">//Use the acceptor component peer_acceptor_ to
-accept the connection</FONT>
-<BR><FONT COLOR="#FF0000">//into the underlying stream new_stream_. After
-the connection has been</FONT>
-<BR><FONT COLOR="#FF0000">//established call the handle_connenction() method.</FONT>
-<BR>int accept_connections (){
-<BR>&nbsp;if (peer_acceptor_.get_local_addr (server_addr_) == -1)
-<BR>&nbsp; ACE_ERROR_RETURN ((LM_ERROR,"%p\n","Error in get_local_addr"),1);
-
-<P>&nbsp;ACE_DEBUG ((LM_DEBUG,"Starting server at port %d\n",
-<BR>&nbsp; server_addr_.get_port_number ()));
-<BR>&nbsp;
-
-<P>&nbsp;<FONT COLOR="#FF0000">// Performs the iterative server activities.</FONT>
-<BR>&nbsp;while(1){
-<BR>&nbsp; ACE_Time_Value timeout (ACE_DEFAULT_TIMEOUT);
-<BR>&nbsp; if (peer_acceptor_.accept
-<BR>&nbsp;&nbsp;&nbsp; (new_stream_, &amp;client_addr_, &amp;timeout)==
--1){
-<BR>&nbsp;&nbsp; ACE_ERROR ((LM_ERROR, "%p\n", "accept"));
-<BR>&nbsp;&nbsp; continue;
-<BR>&nbsp;&nbsp; }
-<BR>&nbsp; else
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_DEBUG,
-<BR>&nbsp;&nbsp; "Connection established with remote %s:%d\n",
-<BR>&nbsp;&nbsp; client_addr_.get_host_name(),client_addr_.get_port_number()));
-<BR>&nbsp;&nbsp; <FONT COLOR="#FF0000">//Handle the connection</FONT>
-<BR>&nbsp;&nbsp; handle_connection();
-<BR>&nbsp; }
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR>&nbsp;
-
-<P>private:
-<BR>&nbsp;char *data_buf_;
-<BR>&nbsp;ACE_INET_Addr server_addr_;
-<BR>&nbsp;ACE_INET_Addr client_addr_;
-<BR>&nbsp;ACE_SOCK_Acceptor peer_acceptor_;
-<BR>&nbsp;ACE_SOCK_Stream new_stream_;
-<BR>&nbsp;ACE_HANDLE newhandle;
-<BR>};
-
-<P>int main (int argc, char *argv[]){
-<BR>&nbsp;if(argc&lt;2){
-<BR>&nbsp; ACE_ERROR((LM_ERROR,"Usage egX &lt;port_num>"));
-<BR>&nbsp; ACE_OS::exit(1);
-<BR>&nbsp; }
-<BR>&nbsp;Server server(ACE_OS::atoi(argv[1]));
-<BR>&nbsp;server.accept_connections();
-<BR>}
-
-<P>&nbsp;<A HREF="ex02.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_2/ex02.html b/docs/tutorials/Chap_2/ex02.html
deleted file mode 100644
index 51d3a6cb624..00000000000
--- a/docs/tutorials/Chap_2/ex02.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 2</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE&nbsp;Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">//// &nbsp;Chapter:&nbsp;"IPC&nbsp;SAP" (Interprocess
-Communication Mechanisms in ACE).</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR:&nbsp;Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT><FONT COLOR="#FF0000"></FONT>
-
-<P><FONT COLOR="#FF0000">//</FONT><FONT COLOR="#CC0000">Example 2</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Connector.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/INET_Addr.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">SIZE_BUF
-128</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">NO_ITERATIONS
-5</FONT>
-
-<P>class Client{
-<BR>public:
-<BR>Client(char *hostname, int port):remote_addr_(hostname){
-<BR>&nbsp;remote_addr_.set_port_number(port);
-<BR>&nbsp;data_buf_=new char[SIZE_BUF];
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Uses a connector component connector_ to connect
-to a remote machine</FONT>
-<BR><FONT COLOR="#FF0000">//and pass the connection into a stream component
-client_stream_</FONT>
-<BR>int connect_to_server(){
-<BR>&nbsp; <FONT COLOR="#FF0000">// Initiate blocking connection with server.</FONT>
-<BR>&nbsp; ACE_DEBUG ((LM_DEBUG, "(%P|%t) Starting connect to %s:%d\n",
-<BR>&nbsp;&nbsp;&nbsp; remote_addr_.get_host_name(),remote_addr_.get_port_number()));
-<BR>&nbsp; if (connector_.connect (client_stream_, remote_addr_) == -1)
-<BR>&nbsp;&nbsp;&nbsp; ACE_ERROR_RETURN ((LM_ERROR,"(%P|%t) %p\n","connection
-failed"),-1);
-<BR>&nbsp; else
-<BR>&nbsp;&nbsp;&nbsp; ACE_DEBUG ((LM_DEBUG,"(%P|%t) connected to %s\n",
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; remote_addr_.get_host_name ()));
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-
-<P><FONT COLOR="#FF0000">//Uses a stream component to send data to the
-remote host.</FONT>
-<BR>int send_to_server(){
-<BR>&nbsp;<FONT COLOR="#FF0000"> // Send data to server</FONT>
-<BR>&nbsp;ACE_OS::sprintf(data_buf_,"Hello from Client");
-<BR>&nbsp;for(int i=0;i&lt;NO_ITERATIONS; i++){
-<BR>&nbsp; if (client_stream_.send_n
-<BR>&nbsp;&nbsp;&nbsp; (data_buf_, ACE_OS::strlen(data_buf_), 0) == -1){
-<BR>&nbsp; ACE_ERROR_RETURN ((LM_ERROR,"(%P|%t) %p\n","send_n"),0);
-<BR>&nbsp; break;
-<BR>&nbsp; }
-<BR>&nbsp;}
-<BR>&nbsp;<FONT COLOR="#FF0000">//Close down the connection</FONT>
-<BR>&nbsp;close();
-<BR>}
-
-<P><FONT COLOR="#FF0000">//Close down the connection properly.</FONT>
-<BR>int close(){
-<BR>&nbsp;if (client_stream_.close () == -1)
-<BR>&nbsp; ACE_ERROR_RETURN ((LM_ERROR,"(%P|%t) %p\n","close"),-1);
-<BR>&nbsp;else
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-
-<P>private:
-<BR>&nbsp;ACE_SOCK_Stream client_stream_;
-<BR>&nbsp;ACE_INET_Addr remote_addr_;
-<BR>&nbsp;ACE_SOCK_Connector connector_;
-<BR>&nbsp;char *data_buf_;
-<BR>};
-
-<P>int main (int argc, char *argv[]){
-<BR>&nbsp;if(argc&lt;3){
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,?Usage egX &lt;hostname> &lt;port_number>\n?));
-<BR>&nbsp; ACE_OS::exit(1);
-<BR>&nbsp; }
-<BR>&nbsp;Client client(argv[1],ACE_OS::atoi(argv[2]));
-<BR>&nbsp;client.connect_to_server();
-<BR>&nbsp;client.send_to_server();
-<BR>}
-
-<P>&nbsp;<A HREF="ex03.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_2/ex03.html b/docs/tutorials/Chap_2/ex03.html
deleted file mode 100644
index 69e4a57c3c1..00000000000
--- a/docs/tutorials/Chap_2/ex03.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 3</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE&nbsp;Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">//// &nbsp;Chapter:&nbsp;"IPC&nbsp;SAP" (Interprocess
-Communication Mechanisms in ACE).</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR:&nbsp;Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT><FONT COLOR="#FF0000"></FONT>
-
-<P><FONT COLOR="#CC0000">// Example 3</FONT><FONT COLOR="#FF0000"></FONT>
-
-<P><FONT COLOR="#FF0000">//Server</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/OS.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Dgram.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/INET_Addr.h"</FONT>
-
-<P><FONT COLOR="#000099">#define </FONT><FONT COLOR="#663366">DATA_BUFFER_SIZE
-1024</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">SIZE_DATA
-18</FONT>
-
-<P>class Server{
-<BR>public:
-<BR>Server(int local_port)
-<BR>&nbsp;:local_addr_(local_port),local_(local_addr_){
-<BR>&nbsp; data_buf = new char[DATA_BUFFER_SIZE];
-<BR>&nbsp; }
-<BR><FONT COLOR="#FF0000">//Expect data to arrive from the remote machine.
-Accept it and display it.</FONT>
-<BR><FONT COLOR="#FF0000">// After recieveing data immediately send some
-data back to the remote.</FONT>
-<BR>int accept_data(){
-<BR>&nbsp;while(local_.recv(data_buf,DATA_BUFFER_SIZE,remote_addr_)!=-1){
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG, "Data received from remote %s was %s \n"
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,remote_addr_.get_host_name(), data_buf));
-<BR>&nbsp; ACE_OS::sleep(1);
-<BR>&nbsp; if(send_data()==-1) break;
-<BR>&nbsp; }
-<BR>&nbsp;return -1;
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR>&nbsp;
-
-<P><FONT COLOR="#FF0000">//Method used to send data to the remote using
-the datagram component local_</FONT>
-<BR>int send_data(){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Preparing to send reply to client %s:%d\n",
-<BR>&nbsp; remote_addr_.get_host_name(),remote_addr_.get_port_number()));
-<BR>&nbsp;ACE_OS::strcpy(data_buf,"Server says hello to you too");
-<BR>&nbsp;if(
-<BR>&nbsp;local_.send(data_buf, ACE_OS::strlen(data_buf)+1,remote_addr_)==-1)
-<BR>&nbsp; return -1;
-<BR>&nbsp;else
-<BR>&nbsp; return 0;
-<BR>&nbsp;}
-
-<P>private:
-<BR>&nbsp;char *data_buf;
-<BR>&nbsp;ACE_INET_Addr remote_addr_;
-<BR>&nbsp;ACE_INET_Addr local_addr_;
-<BR>&nbsp;ACE_SOCK_Dgram local_;
-<BR>};
-
-<P>int main(int argc, char *argv[]){
-<BR>&nbsp;Server server(ACE_OS::atoi(argv[1]));
-<BR>&nbsp;server.accept_data();
-<BR>&nbsp;return 0;
-<BR>}
-
-<P>&nbsp;<A HREF="ex04.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_2/ex04.html b/docs/tutorials/Chap_2/ex04.html
deleted file mode 100644
index 716251de4ec..00000000000
--- a/docs/tutorials/Chap_2/ex04.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 4</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter: "IPC SAP" (Interprocess Communication
-Mechanisms in ACE).</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 4</FONT>
-<BR><FONT COLOR="#FF0000">//Client</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/OS.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Dgram.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/INET_Addr.h"</FONT>
-
-<P><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">DATA_BUFFER_SIZE
-1024</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">SIZE_DATA
-28</FONT>
-<BR>class Client{
-<BR>public:
-<BR>Client(char * remote_addr,int port)
-<BR>&nbsp;:remote_addr_(remote_addr),
-<BR>&nbsp; local_addr_((u_short)0),local_(local_addr_){
-<BR>&nbsp;&nbsp;&nbsp; data_buf = new char[DATA_BUFFER_SIZE];
-<BR>&nbsp; remote_addr_.set_port_number(port);
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">//Accept data from the remote host using the
-datgram component local_</FONT>
-<BR>int accept_data(){
-<BR>&nbsp;if(local_.recv(data_buf,DATA_BUFFER_SIZE,remote_addr_)!=-1){
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG, "Data received from remote server %s
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; was: %s \n" ,remote_addr_.get_host_name(),
-data_buf));
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-<BR>&nbsp;else
-<BR>&nbsp; return -1;
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Send data to the remote. Once data has been
-sent wait for a reply from</FONT>
-<BR><FONT COLOR="#FF0000">//the server.</FONT>
-<BR>int send_data(){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Preparing to send data to server %s:%d\n",
-<BR>&nbsp;&nbsp; remote_addr_.get_host_name(),remote_addr_.get_port_number()));
-<BR>&nbsp;ACE_OS::strcpy(data_buf,"Client says hello");
-<BR>&nbsp;
-<BR>&nbsp;while(local_.send
-<BR>&nbsp;&nbsp;&nbsp; (data_buf,ACE_OS::strlen(data_buf)+1,remote_addr_)!=-1){
-<BR>&nbsp; ACE_OS::sleep(1);
-<BR>&nbsp; if(accept_data()==-1)
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; }
-<BR>&nbsp; return -1;
-<BR>&nbsp; }
-
-<P>private:
-<BR>&nbsp;char *data_buf;
-<BR>&nbsp;ACE_INET_Addr remote_addr_;
-<BR>&nbsp;ACE_INET_Addr local_addr_;
-<BR>&nbsp;ACE_SOCK_Dgram local_;
-<BR>};
-
-<P>int main(int argc, char *argv[]){
-<BR>if(argc&lt;3){
-<BR>&nbsp;ACE_OS::printf("Usage: Client hostname port_number \n");
-<BR>&nbsp;ACE_OS::exit(1);
-<BR>&nbsp;}
-<BR>Client client(argv[1],ACE_OS::atoi(argv[2]));
-<BR>client.send_data();
-<BR>return 0;
-<BR>}
-<BR>&nbsp;
-<BR>&nbsp;<A HREF="ex05.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_2/ex05.htm b/docs/tutorials/Chap_2/ex05.htm
deleted file mode 100644
index ad61833b686..00000000000
--- a/docs/tutorials/Chap_2/ex05.htm
+++ /dev/null
@@ -1,88 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 5</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter: "IPC SAP" (Interprocess Communication
-Mechanisms in ACE).</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 5</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Dgram_Mcast.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/OS.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">DEFAULT_MULTICAST_ADDR
-"224.9.9.2"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">TIMEOUT
-5</FONT>
-
-<P>class Reciever_Multicast{
-
-<P>public:
-<BR>Reciever_Multicast(int port):
-<BR>&nbsp;mcast_addr_(port,DEFAULT_MULTICAST_ADDR),remote_addr_((u_short)0){
-<BR>&nbsp;<FONT COLOR="#FF0000"> // Subscribe to multicast address.</FONT>
-<BR>&nbsp; if (mcast_dgram_.subscribe (mcast_addr_) == -1){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Error in subscribing to Multicast address
-\n"));
-<BR>&nbsp;exit(-1);
-<BR>&nbsp;}
-<BR>}
-
-<P>~Reciever_Multicast(){
-<BR>&nbsp;if(mcast_dgram_.unsubscribe()==-1)
-<BR>&nbsp; ACE_DEBUG((LM_ERROR,?Error in unsubscribing from Mcast group\n?));
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR>&nbsp;
-<BR>&nbsp;
-
-<P><FONT COLOR="#FF0000">//Receive data from someone who is sending data
-on the multicast group</FONT>
-<BR><FONT COLOR="#FF0000">//address to do so it must use the multicast
-datagram component</FONT>
-<BR><FONT COLOR="#FF0000">//mcast_dgram_.</FONT>
-<BR>int recv_multicast(){
-<BR><FONT COLOR="#FF0000">&nbsp;//get ready to recieve data from the sender.</FONT>
-<BR>&nbsp;if(mcast_dgram_.recv
-<BR>&nbsp;&nbsp;&nbsp; (&amp;mcast_info,sizeof (mcast_info),remote_addr_)==-1)
-<BR>&nbsp;&nbsp;&nbsp; return -1;
-<BR>&nbsp;ACE_DEBUG ((LM_DEBUG, "(%P|%t) Received multicast from %s:%d.\n",
-<BR>&nbsp;remote_addr_.get_host_name(), remote_addr_.get_port_number()));
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Successfully receieved %d\n", mcast_info));
-<BR>&nbsp;return 0;
-<BR>&nbsp; }
-
-<P>private:
-<BR>&nbsp;ACE_INET_Addr mcast_addr_;
-<BR>&nbsp;ACE_INET_Addr remote_addr_;
-<BR>&nbsp;ACE_SOCK_Dgram_Mcast mcast_dgram_;
-<BR>&nbsp;int mcast_info;
-<BR>};
-<BR>&nbsp;
-<BR>&nbsp;
-<BR>int main(int argc, char*argv[]){
-<BR>&nbsp;Reciever_Multicast m(2000);
-<BR>&nbsp;<FONT COLOR="#FF0000">//Will run forever</FONT>
-<BR>&nbsp;while(m.recv_multicast()!=-1) {
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"Multicaster succesful \n"));
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR>&nbsp;ACE_DEBUG((LM_ERROR,"Multicaster failed \n"));
-<BR>&nbsp;exit(-1);
-<BR>}
-
-<P>&nbsp;<A HREF="ex06.html">Next Example</A>
-<BR>&nbsp;
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_2/ex05.html b/docs/tutorials/Chap_2/ex05.html
deleted file mode 100644
index ad61833b686..00000000000
--- a/docs/tutorials/Chap_2/ex05.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 5</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter: "IPC SAP" (Interprocess Communication
-Mechanisms in ACE).</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 5</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Dgram_Mcast.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/OS.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">DEFAULT_MULTICAST_ADDR
-"224.9.9.2"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">TIMEOUT
-5</FONT>
-
-<P>class Reciever_Multicast{
-
-<P>public:
-<BR>Reciever_Multicast(int port):
-<BR>&nbsp;mcast_addr_(port,DEFAULT_MULTICAST_ADDR),remote_addr_((u_short)0){
-<BR>&nbsp;<FONT COLOR="#FF0000"> // Subscribe to multicast address.</FONT>
-<BR>&nbsp; if (mcast_dgram_.subscribe (mcast_addr_) == -1){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Error in subscribing to Multicast address
-\n"));
-<BR>&nbsp;exit(-1);
-<BR>&nbsp;}
-<BR>}
-
-<P>~Reciever_Multicast(){
-<BR>&nbsp;if(mcast_dgram_.unsubscribe()==-1)
-<BR>&nbsp; ACE_DEBUG((LM_ERROR,?Error in unsubscribing from Mcast group\n?));
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR>&nbsp;
-<BR>&nbsp;
-
-<P><FONT COLOR="#FF0000">//Receive data from someone who is sending data
-on the multicast group</FONT>
-<BR><FONT COLOR="#FF0000">//address to do so it must use the multicast
-datagram component</FONT>
-<BR><FONT COLOR="#FF0000">//mcast_dgram_.</FONT>
-<BR>int recv_multicast(){
-<BR><FONT COLOR="#FF0000">&nbsp;//get ready to recieve data from the sender.</FONT>
-<BR>&nbsp;if(mcast_dgram_.recv
-<BR>&nbsp;&nbsp;&nbsp; (&amp;mcast_info,sizeof (mcast_info),remote_addr_)==-1)
-<BR>&nbsp;&nbsp;&nbsp; return -1;
-<BR>&nbsp;ACE_DEBUG ((LM_DEBUG, "(%P|%t) Received multicast from %s:%d.\n",
-<BR>&nbsp;remote_addr_.get_host_name(), remote_addr_.get_port_number()));
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Successfully receieved %d\n", mcast_info));
-<BR>&nbsp;return 0;
-<BR>&nbsp; }
-
-<P>private:
-<BR>&nbsp;ACE_INET_Addr mcast_addr_;
-<BR>&nbsp;ACE_INET_Addr remote_addr_;
-<BR>&nbsp;ACE_SOCK_Dgram_Mcast mcast_dgram_;
-<BR>&nbsp;int mcast_info;
-<BR>};
-<BR>&nbsp;
-<BR>&nbsp;
-<BR>int main(int argc, char*argv[]){
-<BR>&nbsp;Reciever_Multicast m(2000);
-<BR>&nbsp;<FONT COLOR="#FF0000">//Will run forever</FONT>
-<BR>&nbsp;while(m.recv_multicast()!=-1) {
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"Multicaster succesful \n"));
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR>&nbsp;ACE_DEBUG((LM_ERROR,"Multicaster failed \n"));
-<BR>&nbsp;exit(-1);
-<BR>}
-
-<P>&nbsp;<A HREF="ex06.html">Next Example</A>
-<BR>&nbsp;
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_2/ex06.html b/docs/tutorials/Chap_2/ex06.html
deleted file mode 100644
index b5c1f873e99..00000000000
--- a/docs/tutorials/Chap_2/ex06.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 6</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter: "IPC SAP" (Interprocess Communication
-Mechanisms in ACE).</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 6</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">DEFAULT_MULTICAST_ADDR
-"224.9.9.2"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">TIMEOUT
-5</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/SOCK_Dgram_Mcast.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/OS.h"</FONT>
-
-<P>class Sender_Multicast{
-<BR>public:
-<BR>Sender_Multicast(int port):
-<BR>&nbsp;local_addr_((u_short)0),dgram_(local_addr_),
-<BR>&nbsp;multicast_addr_(port,DEFAULT_MULTICAST_ADDR){}
-
-<P><FONT COLOR="#FF0000">//Method which uses a simple datagram component
-to send data to the multicast group.</FONT>
-<BR>int send_to_multicast_group(){
-<BR>&nbsp;&nbsp; <FONT COLOR="#FF0000">//Convert the information we wish
-to send into network byte order</FONT>
-<BR>&nbsp;mcast_info= htons (1000);
-
-<P><FONT COLOR="#FF0000">&nbsp;// Send multicast</FONT>
-<BR>&nbsp;if(dgram_.send
-<BR>&nbsp;&nbsp;&nbsp; (&amp;mcast_info, sizeof (mcast_info), multicast_addr_)==-1)
-<BR>&nbsp;&nbsp;&nbsp; return -1;
-
-<P>&nbsp;ACE_DEBUG ((LM_DEBUG,
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-"%s; Sent multicast to group.&nbsp; Number sent is %d.\n",
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-__FILE__,
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-mcast_info));
-<BR>&nbsp; return 0;
-<BR>}
-
-<P>private:
-<BR>&nbsp;ACE_INET_Addr multicast_addr_;
-<BR>&nbsp;ACE_INET_Addr local_addr_;
-<BR>&nbsp;ACE_SOCK_Dgram dgram_;
-<BR>&nbsp;int mcast_info;
-<BR>};
-<BR>&nbsp;
-
-<P>int main(int argc, char*argv[]){
-<BR>Sender_Multicast m(2000);
-<BR>if(m.send_to_multicast_group()==-1) {
-<BR>&nbsp;ACE_DEBUG((LM_ERROR,"Send to Multicast group failed \n"));
-<BR>&nbsp;exit(-1);
-<BR>&nbsp;}
-<BR>else
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Send to Multicast group succesful \n"));
-<BR>}
-
-<P>&nbsp;<A HREF="../Chap_3/ex01.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_3/Chap_3.zip b/docs/tutorials/Chap_3/Chap_3.zip
deleted file mode 100644
index c99463d18d9..00000000000
--- a/docs/tutorials/Chap_3/Chap_3.zip
+++ /dev/null
Binary files differ
diff --git a/docs/tutorials/Chap_3/Makefile b/docs/tutorials/Chap_3/Makefile
deleted file mode 100644
index e3f1f3ae1c8..00000000000
--- a/docs/tutorials/Chap_3/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-# Makefile for all the ACE ``one-button' tests
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = mm
-
-PSRC=$(addsuffix .cpp,$(BIN))
-
-#----------------------------------------------------------------------------
-# 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
-
-ex03.html : mm.cpp
- ../colorize < mm.cpp > ex03.html
diff --git a/docs/tutorials/Chap_3/README b/docs/tutorials/Chap_3/README
deleted file mode 100644
index 228579ca4c5..00000000000
--- a/docs/tutorials/Chap_3/README
+++ /dev/null
@@ -1,14 +0,0 @@
-Note:
-
-Example 2 (ex02.html) will not compile and work on Win32 because
-it relies on SystemV Shared Memory and fork() which are not
-available on that platoform.
-
-Example 3 (ex03.html) is basically the same but uses a memory-mapped
-file instead of SYSV Shared Memory. It also takes a single command
-line parament 's' to start it in server mode or 'c' to start it
-in client mode. (This is to work around the lack of fork()).
-
-(Thanks to Nanbor Wang for working this out for us.)
-
-JCEJ - 08/01/1999
diff --git a/docs/tutorials/Chap_3/ex01.html b/docs/tutorials/Chap_3/ex01.html
deleted file mode 100644
index 6993d74b3ab..00000000000
--- a/docs/tutorials/Chap_3/ex01.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 1</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "Memory Management"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 1&nbsp;</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Malloc.h"</FONT>
-<BR><FONT COLOR="#FF0000">//A chunk of size 1K is created</FONT>
-<BR><FONT COLOR="#000099">typedef</FONT> <FONT COLOR="#993300">char</FONT><FONT COLOR="#666600">
-MEMORY_BLOCK[1024];</FONT>
-<BR>&nbsp;
-<BR>&nbsp;
-
-<P><FONT COLOR="#FF0000">//Create an ACE_Cached_Allocator which is passed
-in the type of the</FONT>
-<BR><FONT COLOR="#FF0000">//chunk&nbsp; that it must pre-allocate and assign
-on the free</FONT>
-<BR><FONT COLOR="#FF0000">//list</FONT>
-<BR><FONT COLOR="#000000">typedef ACE_Cached_Allocator&lt;MEMORY_BLOCK,ACE_SYNCH_MUTEX>
-Allocator;</FONT>
-<BR>&nbsp;
-<BR>class MessageManager{
-<BR>public:
-<BR><FONT COLOR="#FF0000">//The constructor is passed the number of chunks
-that the allocator should pre-allocate //and maintain on its free list.</FONT>
-<BR>MessageManager(int n_blocks):
-<BR>&nbsp;allocator_(n_blocks),message_count_(0){}
-
-<P><FONT COLOR="#FF0000">//Allocate memory for a message using the Allocator</FONT>
-<BR>void allocate_msg(const char *msg){
-<BR>&nbsp;mesg_array_[message_count_]=
-<BR>&nbsp;&nbsp;&nbsp; (char*)allocator_.malloc(ACE_OS::strlen(msg));
-<BR>&nbsp;ACE_OS::strcpy(mesg_array_[message_count_],msg);
-<BR>&nbsp;message_count_++;
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Free all memory allocated. This will cause the
-chunks to be returned</FONT>
-<BR><FONT COLOR="#FF0000">//to the allocators internal free list and NOT
-to the OS.</FONT>
-<BR>void free_all_msg(){
-<BR>&nbsp;for(int i=0;i&lt;message_count_;i++)
-<BR>&nbsp; allocator_.free(mesg_array_[i]);
-<BR>&nbsp;message_count_=0;
-<BR>&nbsp;}
-<BR>void display_all_msg(){
-<BR>&nbsp;for(int i=0;i&lt;message_count_;i++)
-<BR>&nbsp; ACE_OS::printf("%s\n",mesg_array_[i]);
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR>private:
-<BR>&nbsp;char *mesg_array_[20];
-<BR>&nbsp;Allocator allocator_;
-<BR>&nbsp;int message_count_;
-<BR>};
-<BR>&nbsp;
-
-<P>int main(int argc, char* argv[]){
-
-<P>if(argc&lt;2){
-<BR>&nbsp;ACE_OS::printf("Usage: egXX &lt;Number of blocks>\n");
-<BR>&nbsp;exit(1);
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">//Instatiate the Memory Manager class</FONT>
-<BR>int n_blocks=ACE_OS::atoi(argv[1]);
-<BR>MessageManager mm(n_blocks);
-<BR>&nbsp;
-
-<P><FONT COLOR="#FF0000">//Use the Memory Manager class to assign messages
-and free them.</FONT> <FONT COLOR="#FF0000">Run this in your</FONT>
-<BR><FONT COLOR="#FF0000">//debug environment and you will notice that
-//the</FONT> <FONT COLOR="#FF0000">amount of memory your program uses</FONT>
-<BR><FONT COLOR="#FF0000">//after Memory Manager has been</FONT> <FONT COLOR="#FF0000">instantiated
-remains the same. That means the</FONT>
-<BR><FONT COLOR="#FF0000">//Cached Allocator</FONT> <FONT COLOR="#FF0000">controls
-or manages all the memory for the application.</FONT>
-
-<P><FONT COLOR="#FF0000">//Do forever.</FONT>
-<BR>while(1){
-<BR>&nbsp; <FONT COLOR="#FF0000">//allocate the messages somewhere</FONT>
-<BR>&nbsp;for(int i=0; i&lt;n_blocks;i++)
-<BR>&nbsp; mm.allocate_msg("Hi there");
-<BR>&nbsp;<FONT COLOR="#FF0000">//show the messages</FONT>
-<BR>&nbsp;mm.display_all_msg();
-<BR>&nbsp;
-<BR>&nbsp;for( i=0;i&lt;n_blocks;i++)
-<BR>&nbsp; mm.free_all_msg();
-<BR>&nbsp;}
-<BR>}
-
-<P>&nbsp;<A HREF="ex02.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_3/ex02.html b/docs/tutorials/Chap_3/ex02.html
deleted file mode 100644
index ed5f0caf497..00000000000
--- a/docs/tutorials/Chap_3/ex02.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 2</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "Memory Management"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 2</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Shared_Memory_MM.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Malloc.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Malloc_T.h"</FONT>
-<BR><FONT COLOR="#000099">#define </FONT><FONT COLOR="#663366">DATA_SIZE
-100</FONT>
-<BR><FONT COLOR="#000099">#define</FONT><FONT COLOR="#663366"> MESSAGE1
-"Hiya over there client process"</FONT>
-<BR><FONT COLOR="#000099">#define </FONT><FONT COLOR="#663366">MESSAGE2&nbsp;
-"Did you hear me the first time?"</FONT>
-<BR>LPCTSTR poolname="My_Pool";
-
-<P><FONT COLOR="#000000">typedef ACE_Malloc&lt;ACE_SHARED_MEMORY_POOL,ACE_Null_Mutex>
-Malloc_Allocator;</FONT>
-
-<P>static void
-<BR>server (void){
-<BR>&nbsp;<FONT COLOR="#FF0000">//Create the memory allocator passing it
-the shared memory</FONT>
-<BR>&nbsp;<FONT COLOR="#FF0000">//pool that you want to use</FONT>
-<BR>&nbsp;Malloc_Allocator shm_allocator(poolname);
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Create a message, allocate memory for
-it and bind it with</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//a name so that the client can the find
-it in the memory</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//pool</FONT>
-<BR>&nbsp;char* Message1=(char*)shm_allocator.malloc(strlen(MESSAGE1));
-<BR>&nbsp;ACE_OS::strcpy(Message1,MESSAGE1);
-<BR>&nbsp;shm_allocator.bind("FirstMessage",Message1);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"&lt;&lt;%s\n",Message1));
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//How about a second message</FONT>
-<BR>&nbsp;char* Message2=(char*)shm_allocator.malloc(strlen(MESSAGE2));
-<BR>&nbsp;ACE_OS::strcpy(Message2,MESSAGE2);
-<BR>&nbsp;shm_allocator.bind("SecondMessage",Message2);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"&lt;&lt;%s\n",Message2));
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//Set the Server to go to sleep for a while
-so that the client has</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//a chance to do its stuff</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,
-<BR>&nbsp;&nbsp;&nbsp; "Server done writing.. going to sleep zzz..\n\n\n"));
-<BR>&nbsp;ACE_OS::sleep(2);
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//Get rid of all resources allocated by
-the server. In other</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//words get rid of the shared memory pool
-that had been</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//previously allocated</FONT>
-<BR>&nbsp;shm_allocator.remove();
-<BR>&nbsp;
-<BR>}
-<BR>&nbsp;
-
-<P>static void
-<BR>client(void){
-<BR>&nbsp;<FONT COLOR="#FF0000">//Create a memory allocator. Be sure that
-the client passes</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// in the "right" name here so that both
-the client and the</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//server use the same memory pool. We wouldnt
-want them to</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// BOTH create different underlying pools.</FONT>
-<BR>&nbsp;Malloc_Allocator shm_allocator(poolname);
-
-<P><FONT COLOR="#FF0000">&nbsp;//Lets get that first message. Notice that
-the find is looking up the</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//memory based on the "name" that was bound
-to it by the server.</FONT>
-<BR>&nbsp;void *Message1;
-<BR>&nbsp;if(shm_allocator.find("FirstMessage",Message1)==-1){
-<BR>&nbsp; ACE_ERROR((LM_ERROR,
-<BR>&nbsp;&nbsp;&nbsp; "Client: Problem cant find data that server has
-sent\n"));
-<BR>&nbsp; ACE_OS::exit(1);
-<BR>&nbsp; }
-<BR>&nbsp;ACE_OS::printf(">>%s\n",(char*) Message1);
-<BR>&nbsp;ACE_OS::fflush(stdout);
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Lets get that second message now.</FONT>
-<BR>&nbsp;void *Message2;
-<BR>&nbsp;if(shm_allocator.find("SecondMessage",Message2)==-1){
-<BR>&nbsp; ACE_ERROR((LM_ERROR,"Client: Problem cant find data that server
-has sent\n"));
-<BR>&nbsp; ACE_OS::exit(1);
-<BR>&nbsp; }
-<BR>&nbsp;ACE_OS::printf(">>%s\n",(char*)Message2);
-<BR>&nbsp;ACE_OS::fflush(stdout);
-
-<P>&nbsp;ACE_DEBUG((LM_DEBUG,"Client done reading! BYE NOW\n"));
-<BR>&nbsp;ACE_OS::fflush(stdout);
-<BR>}
-<BR>&nbsp;
-
-<P>int main (int, char *[]){
-<BR>switch (ACE_OS::fork ())
-<BR>&nbsp;&nbsp;&nbsp; {
-<BR>&nbsp;&nbsp;&nbsp; case -1:
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
-"fork"), 1);
-<BR>&nbsp;&nbsp;&nbsp; case 0:
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR="#FF0000"> // Make sure the
-server starts up first.</FONT>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::sleep (1);
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; client ();
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
-<BR>&nbsp;&nbsp;&nbsp; default:
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server ();
-<BR>&nbsp;&nbsp;&nbsp; break;
-<BR>&nbsp;}
-<BR>&nbsp; return 0;
-<BR>}
-<BR>&nbsp;
-<BR>&nbsp;<A HREF="../Chap_4/ex01.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_3/ex03.html b/docs/tutorials/Chap_3/ex03.html
deleted file mode 100644
index 743f0b395d2..00000000000
--- a/docs/tutorials/Chap_3/ex03.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<PRE>
-<font color=red>// $Id$</font>
-
-<font color=blue>#include</font> "<font color=green>ace/Memory_Pool.h</font>"
-<font color=blue>#include</font> "<font color=green>ace/Shared_Memory_MM.h</font>"
-<font color=blue>#include</font> "<font color=green>ace/Malloc.h</font>"
-<font color=blue>#include</font> "<font color=green>ace/Malloc_T.h</font>"
-<font color=blue>#include</font> "<font color=green>ace/Thread_Manager.h</font>"
-
-<font color=blue>#define</font> <font color=purple>DATA_SIZE</font> 100
-<font color=blue>#define</font> <font color=purple>MESSAGE1</font> "<font color=green>Hiya over there client process</font>"
-<font color=blue>#define</font> <font color=purple>MESSAGE2</font> "<font color=green>Did you hear me the first time?</font>"
-LPCTSTR poolname="<font color=green>My_Pool</font>";
-
-typedef ACE_Malloc&lt;ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex> Malloc_Allocator;
-
-static void *
-server (void * = 0)
-{
- ACE_MMAP_Memory_Pool_Options opt;
-
- <font color=red>//Create the memory allocator passing it the shared memory</font>
- <font color=red>//pool that you want to use</font>
- Malloc_Allocator shm_allocator(poolname,poolname,&opt);
-
- <font color=red>//Create a message, allocate memory for it and bind it with</font>
- <font color=red>//a name so that the client can the find it in the memory</font>
- <font color=red>//pool</font>
- char* Message1=(char*)shm_allocator.malloc(strlen(MESSAGE1)+1);
-
- <font color=#008888>ACE_OS::strcpy</font>(Message1,MESSAGE1);
- shm_allocator.bind("<font color=green>FirstMessage</font>",Message1);
- ACE_DEBUG((LM_DEBUG,"<font color=green>&lt;&lt;%s\n</font>",Message1));
-
- <font color=red>//How about a second message</font>
- char* Message2=(char*)shm_allocator.malloc(strlen(MESSAGE2)+1);
- <font color=#008888>ACE_OS::strcpy</font>(Message2,MESSAGE2);
- shm_allocator.bind("<font color=green>SecondMessage</font>",Message2);
- ACE_DEBUG((LM_DEBUG,"<font color=green>&lt;&lt;%s\n</font>",Message2));
-
- <font color=red>//Set the Server to go to sleep for a while so that the client has</font>
- <font color=red>//a chance to do its stuff</font>
- ACE_DEBUG((LM_DEBUG, "<font color=green>Server done writing.. going to sleep zzz..\n\n\n</font>"));
- <font color=#008888>ACE_OS::sleep</font>(10);
-
- ACE_DEBUG ((LM_DEBUG, "<font color=green>server exit\n</font>"));
-
- return 0;
-}
-
-static void *
-client (void * = 0)
-{
- ACE_MMAP_Memory_Pool_Options opt;
-
- <font color=red>//Create the memory allocator passing it the shared memory</font>
- <font color=red>//pool that you want to use</font>
- Malloc_Allocator shm_allocator(poolname,poolname,&opt);
-
- <font color=red>//Lets get that first message. Notice that the find is looking up the</font>
- <font color=red>//memory based on the "<font color=green>name</font>" that was bound to it by the server.</font>
- void *Message1 = 0;
- if(shm_allocator.find("<font color=green>FirstMessage</font>") == -1 )
- {
- ACE_ERROR((LM_ERROR,
- "<font color=green>Client ack\n</font>"));
- return 0;
- }
- if(shm_allocator.find("<font color=green>FirstMessage</font>",Message1)==-1)
- {
- ACE_ERROR((LM_ERROR,
- "<font color=green>Client: Problem cant find data that server has sent\n</font>"));
- return 0;
- }
-
- <font color=#008888>ACE_OS::printf</font>("<font color=green>>>%s\n</font>",(char*) Message1);
- <font color=#008888>ACE_OS::fflush</font>(stdout);
-
- <font color=red>//Lets get that second message now.</font>
- void *Message2;
- if(shm_allocator.find("<font color=green>SecondMessage</font>",Message2)==-1)
- {
- ACE_ERROR((LM_ERROR,
- "<font color=green>Client: Problem cant find data that server has sent\n</font>"));
- <font color=#008888>ACE_OS::exit</font>(1);
- }
- <font color=#008888>ACE_OS::printf</font>("<font color=green>>>%s\n</font>",(char*)Message2);
- <font color=#008888>ACE_OS::fflush</font>(stdout);
-
- ACE_DEBUG((LM_DEBUG,"<font color=green>Client done reading! BYE NOW\n</font>"));
- <font color=#008888>ACE_OS::fflush</font>(stdout);
-
- <font color=red>//Get rid of all resources allocated by the server. In other</font>
- <font color=red>//words get rid of the shared memory pool that had been</font>
- <font color=red>//previously allocated</font>
- shm_allocator.remove();
-
- return 0;
-}
-
-int main (int, char *argv[])
-{
- switch (*argv[1])
- {
- case 's':
- server ();
- break;
- default:
- client ();
- break;
- }
-
- return 0;
-}
-</PRE>
diff --git a/docs/tutorials/Chap_3/mm.cpp b/docs/tutorials/Chap_3/mm.cpp
deleted file mode 100644
index 43188360f66..00000000000
--- a/docs/tutorials/Chap_3/mm.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-// $Id$
-
-#include "ace/Memory_Pool.h"
-#include "ace/Shared_Memory_MM.h"
-#include "ace/Malloc.h"
-#include "ace/Malloc_T.h"
-#include "ace/Thread_Manager.h"
-
-#define DATA_SIZE 100
-#define MESSAGE1 "Hiya over there client process"
-#define MESSAGE2 "Did you hear me the first time?"
-const ACE_TCHAR *poolname="My_Pool";
-
-typedef ACE_Malloc<ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex> Malloc_Allocator;
-
-static void *
-server (void * = 0)
-{
- ACE_MMAP_Memory_Pool_Options opt;
-
- //Create the memory allocator passing it the shared memory
- //pool that you want to use
- Malloc_Allocator shm_allocator(poolname,poolname,&opt);
-
- //Create a message, allocate memory for it and bind it with
- //a name so that the client can the find it in the memory
- //pool
- char* Message1=(char*)shm_allocator.malloc(strlen(MESSAGE1)+1);
-
- ACE_OS::strcpy(Message1,MESSAGE1);
- shm_allocator.bind("FirstMessage",Message1);
- ACE_DEBUG((LM_DEBUG,"<<%s\n",Message1));
-
- //How about a second message
- char* Message2=(char*)shm_allocator.malloc(strlen(MESSAGE2)+1);
- ACE_OS::strcpy(Message2,MESSAGE2);
- shm_allocator.bind("SecondMessage",Message2);
- ACE_DEBUG((LM_DEBUG,"<<%s\n",Message2));
-
- //Set the Server to go to sleep for a while so that the client has
- //a chance to do its stuff
- ACE_DEBUG((LM_DEBUG, "Server done writing.. going to sleep zzz..\n\n\n"));
- ACE_OS::sleep(10);
-
- ACE_DEBUG ((LM_DEBUG, "server exit\n"));
-
- return 0;
-}
-
-static void *
-client (void * = 0)
-{
- ACE_MMAP_Memory_Pool_Options opt;
-
- //Create the memory allocator passing it the shared memory
- //pool that you want to use
- Malloc_Allocator shm_allocator(poolname,poolname,&opt);
-
- //Lets get that first message. Notice that the find is looking up the
- //memory based on the "name" that was bound to it by the server.
- void *Message1 = 0;
- if(shm_allocator.find("FirstMessage") == -1 )
- {
- ACE_ERROR((LM_ERROR,
- "Client ack\n"));
- return 0;
- }
- if(shm_allocator.find("FirstMessage",Message1)==-1)
- {
- ACE_ERROR((LM_ERROR,
- "Client: Problem cant find data that server has sent\n"));
- return 0;
- }
-
- ACE_OS::printf(">>%s\n",(char*) Message1);
- ACE_OS::fflush(stdout);
-
- //Lets get that second message now.
- void *Message2;
- if(shm_allocator.find("SecondMessage",Message2)==-1)
- {
- ACE_ERROR((LM_ERROR,
- "Client: Problem cant find data that server has sent\n"));
- ACE_OS::exit(1);
- }
- ACE_OS::printf(">>%s\n",(char*)Message2);
- ACE_OS::fflush(stdout);
-
- ACE_DEBUG((LM_DEBUG,"Client done reading! BYE NOW\n"));
- ACE_OS::fflush(stdout);
-
- //Get rid of all resources allocated by the server. In other
- //words get rid of the shared memory pool that had been
- //previously allocated
- shm_allocator.remove();
-
- return 0;
-}
-
-int main (int, char *argv[])
-{
- switch (*argv[1])
- {
- case 's':
- server ();
- break;
- default:
- client ();
- break;
- }
-
- return 0;
-}
diff --git a/docs/tutorials/Chap_4/Chap_4.zip b/docs/tutorials/Chap_4/Chap_4.zip
deleted file mode 100644
index b29059f1457..00000000000
--- a/docs/tutorials/Chap_4/Chap_4.zip
+++ /dev/null
Binary files differ
diff --git a/docs/tutorials/Chap_4/ex01.html b/docs/tutorials/Chap_4/ex01.html
deleted file mode 100644
index 39f479473e8..00000000000
--- a/docs/tutorials/Chap_4/ex01.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 1</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "Thread Management"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 1</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Thread.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/OS.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch_T.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Synch.h"</FONT>
-<BR>static int number=0;
-<BR>static int seed=0;
-
-<P>static void*
-<BR>worker(void *arg){
-<BR>&nbsp;ACE_UNUSED_ARG(arg);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Thread (%t) Created to do some work"));
-<BR>&nbsp;::number++;
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG," and number is %d\n",::number));
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//Let the other guy go while I fall asleep
-for a random period of time</FONT>
-<BR>&nbsp;ACE_Thread::yield();
-<BR>&nbsp;ACE_OS::sleep(ACE_OS::rand()%2);
-
-<P><FONT COLOR="#FF0000">&nbsp;//Exiting now</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,
-<BR>&nbsp;&nbsp; "\t\t Thread (%t) Done! \t The number is now: %d\n",number));
-<BR>&nbsp;ACE_OS::fflush(stdout);
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-<BR>&nbsp;
-
-<P>int main(int argc, char *argv[]){
-<BR>if(argc&lt;2)
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Usage: &lt;program_name> &lt;number of threads>\n"));
-<BR>&nbsp;
-<BR>int n_threads=ACE_OS::atoi(argv[1]);
-<BR><FONT COLOR="#FF0000">//Setup the random number generator</FONT>
-<BR>ACE_OS::srand(::seed);
-
-<P><FONT COLOR="#FF0000">//Spawn off n_threads number of threads</FONT>
-<BR>for(int i=0; i&lt;n_threads; i++){
-<BR>&nbsp;if(ACE_Thread::spawn((ACE_THR_FUNC)worker)==-1)
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"Error in spawning thread\n"));
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Wait for all the threads to exit before you
-let the main fall through</FONT>
-<BR><FONT COLOR="#FF0000">//and have the process exit. This way of using
-join is non-portable</FONT>
-<BR><FONT COLOR="#FF0000">//and may not work on a system using pthreads.</FONT>
-<BR>int check_count=0;
-<BR>while(ACE_Thread::join(NULL,NULL,NULL)==0) check_count++;
-<BR>ACE_ASSERT(check_count==n_threads);
-<BR>}
-
-<P>&nbsp;<A HREF="ex02.html">Next Example</A>
-<BR>&nbsp;
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_4/ex02.html b/docs/tutorials/Chap_4/ex02.html
deleted file mode 100644
index 6e3a6afeebb..00000000000
--- a/docs/tutorials/Chap_4/ex02.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 2</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "Thread Management"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 2</FONT>
-<BR><FONT COLOR="#000099">#include </FONT><FONT COLOR="#006600">"ace/OS.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch.h"</FONT>
-
-<P><FONT COLOR="#FF0000">//Arguments that are to be passed to the worker
-thread are passed through this class.</FONT>
-<BR>class Args{
-<BR>public:
-<BR>Args(int iterations):
-<BR>&nbsp;mutex_(),iterations_(iterations){}
-<BR>ACE_Thread_Mutex mutex_;
-<BR>int iterations_;
-<BR>};
-
-<P><FONT COLOR="#FF0000">//The starting point for the worker threads</FONT>
-<BR>static void*
-<BR>worker(void*arguments){
-<BR>Args *arg= (Args*) arguments;
-<BR>for(int i=0;i&lt;arg->iterations_;i++){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,
-<BR>&nbsp;&nbsp;&nbsp; "(%t) Trying to get a hold of this iteration\n"));
-<BR><FONT COLOR="#FF0000">&nbsp;//This is our critical section</FONT>
-<BR>&nbsp;arg->mutex_.acquire();
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t) This is iteration number %d\n",i));
-<BR><FONT COLOR="#FF0000">&nbsp;//work</FONT>
-<BR>&nbsp;ACE_OS::sleep(2);
-<BR>&nbsp;arg->mutex_.release();
-<BR>&nbsp;}
-<BR>return 0;
-<BR>}
-
-<P>int main(int argc, char*argv[]){
-<BR>if(argc&lt;2){
-<BR>ACE_OS::printf("Usage: egx &lt;number_of_threads>
-<BR>&nbsp;&nbsp;&nbsp; &lt;number_of_iterations>\n");
-<BR>&nbsp;ACE_OS::exit(1);
-<BR>&nbsp;}
-<BR><FONT COLOR="#FF0000">//Setup the arguments</FONT>
-<BR>Args arg(ACE_OS::atoi(argv[2]));
-
-<P>ACE_Thread::spawn_n
-<BR>&nbsp;&nbsp; (ACE_OS::atoi(argv[1]),(ACE_THR_FUNC)worker,(void*)&amp;arg);
-<BR><FONT COLOR="#FF0000">//Spawn the worker threads</FONT>
-<BR>while(ACE_Thread::join(NULL,NULL,NULL)==0);
-<BR>}
-<BR>&nbsp;
-<BR>&nbsp; <A HREF="ex03.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_4/ex03.html b/docs/tutorials/Chap_4/ex03.html
deleted file mode 100644
index 78d5555e17c..00000000000
--- a/docs/tutorials/Chap_4/ex03.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 3</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "Thread Management"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 3</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/OS.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch_T.h"</FONT>
-
-<P><FONT COLOR="#FF0000">//Arguments that are to be passed to the worker
-thread are passed through this class.</FONT>
-<BR>class Args{
-<BR>public:
-<BR>Args(ACE_Lock* lock,int iterations):
-<BR>&nbsp;mutex_(lock),iterations_(iterations){}
-<BR>ACE_Lock* mutex_;
-<BR>int iterations_;
-<BR>};
-
-<P><FONT COLOR="#FF0000">//The starting point for the worker threads</FONT>
-<BR>static void*
-<BR>worker(void*arguments){
-<BR>Args *arg= (Args*) arguments;
-<BR>for(int i=0;i&lt;arg->iterations_;i++){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,
-<BR>&nbsp;&nbsp;&nbsp; "(%t) Trying to get a hold of this iteration\n"));
-<BR><FONT COLOR="#FF0000">&nbsp;//This is our critical section</FONT>
-<BR>&nbsp;arg->mutex_->acquire();
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t) This is iteration number %d\n",i));
-<BR><FONT COLOR="#FF0000">&nbsp;//work</FONT>
-<BR>&nbsp;ACE_OS::sleep(2);
-<BR>&nbsp;arg->mutex_->release();
-<BR>&nbsp;}
-<BR>return 0;
-<BR>}
-
-<P>int main(int argc, char*argv[]){
-<BR>if(argc&lt;4){
-<BR>&nbsp;ACE_OS::printf("Usage: egx &lt;number_of_threads>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;number_of_iterations> &lt;lock_type>\n");
-<BR>&nbsp;ACE_OS::exit(1);
-<BR>&nbsp;}
-<BR><FONT COLOR="#FF0000">//Lock used by application</FONT>
-<BR>ACE_Lock *lock;
-
-<P><FONT COLOR="#FF0000">//Decide which lock you want to use at run time.
-Possible due to</FONT>
-<BR><FONT COLOR="#FF0000">//ACE_Lock.</FONT>
-<BR>if(ACE_OS::strcmp(argv[3],"Thread"))
-<BR>&nbsp;lock=new ACE_Lock_Adapter&lt;ACE_Thread_Mutex>;
-<BR>else
-<BR>&nbsp;lock=new ACE_Lock_Adapter&lt;ACE_Mutex>
-
-<P><FONT COLOR="#FF0000">//Setup the arguments</FONT>
-<BR>Args arg(lock,ACE_OS::atoi(argv[2]));
-<BR><FONT COLOR="#FF0000">//Spawn the worker threads</FONT>
-<BR>ACE_Thread::spawn_n
-<BR>&nbsp;&nbsp;&nbsp; (ACE_OS::atoi(argv[1]),(ACE_THR_FUNC)worker,(void*)&amp;arg);
-<BR>while(ACE_Thread::join(NULL,NULL,NULL)==0);
-<BR>}
-
-<P>&nbsp;<A HREF="ex04.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_4/ex04.html b/docs/tutorials/Chap_4/ex04.html
deleted file mode 100644
index 4d4a753002c..00000000000
--- a/docs/tutorials/Chap_4/ex04.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 4</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "Thread Management"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 4</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/OS.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Token.h"</FONT>
-
-<P><FONT COLOR="#FF0000">//Arguments that are to be passed to the worker
-thread are passed</FONT>
-<BR><FONT COLOR="#FF0000">//through this class.</FONT>
-<BR>class Args{
-<BR>public:
-<BR>Args(int iterations):
-<BR>&nbsp;mutex_(),iterations_(iterations){}
-<BR>ACE_Token mutex_;
-<BR>int iterations_;
-<BR>};
-
-<P><FONT COLOR="#FF0000">//The starting point for the worker threads</FONT>
-<BR>static void*
-<BR>worker(void*arguments){
-<BR>Args *arg= (Args*) arguments;
-<BR>for(int i=0;i&lt;arg->iterations_;i++){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t) Trying to get a hold of this iteration\n"));
-<BR><FONT COLOR="#FF0000">&nbsp;//This is our critical section</FONT>
-<BR>&nbsp;arg->mutex_.acquire();
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t) This is iteration number %d\n",i));
-<BR><FONT COLOR="#FF0000">&nbsp;//work</FONT>
-<BR>&nbsp;ACE_OS::sleep(2);
-<BR>&nbsp;arg->mutex_.release();
-<BR>&nbsp;}
-<BR>return 0;
-<BR>}
-<BR>&nbsp;
-
-<P>int main(int argc, char*argv[]){
-<BR>if(argc&lt;4){
-<BR>&nbsp;ACE_OS::printf("Usage: egx &lt;number_of_threads>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;number_of_iterations> &lt;lock_type>\n");
-<BR>&nbsp;ACE_OS::exit(1);
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Setup the arguments</FONT>
-<BR>Args arg(ACE_OS::atoi(argv[2]));
-<BR><FONT COLOR="#FF0000">//Spawn the worker threads</FONT>
-<BR>ACE_Thread::spawn_n(ACE_OS::atoi(argv[1]),(ACE_THR_FUNC)worker,(void*)&amp;arg);
-
-<P>while(ACE_Thread::join(NULL,NULL,NULL)==0);
-
-<P>}
-
-<P>&nbsp;<A HREF="ex05.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_4/ex05.html b/docs/tutorials/Chap_4/ex05.html
deleted file mode 100644
index 44bd153af25..00000000000
--- a/docs/tutorials/Chap_4/ex05.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 5</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "Thread Management"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 5</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/OS.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch_T.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Token.h"</FONT>
-
-<P><FONT COLOR="#FF0000">//Arguments that are to be passed to the worker
-thread are passed through this class.</FONT>
-<BR>class Args{
-<BR>public:
-<BR>Args(int iterations):
-<BR>&nbsp;mutex_(),iterations_(iterations){}
-<BR>ACE_Token mutex_;
-<BR>int iterations_;
-<BR>};
-
-<P><FONT COLOR="#FF0000">//The starting point for the worker threads</FONT>
-<BR>static void*
-<BR>worker(void*arguments){
-<BR>Args *arg= (Args*) arguments;
-<BR>for(int i=0;i&lt;arg->iterations_;i++){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t) Trying to get a hold of this iteration\n"));
-<BR>&nbsp; {<FONT COLOR="#FF0000">//begin critical section</FONT>
-<BR>&nbsp; ACE_Guard&lt;ACE_Token> guard(arg->mutex_);
-<BR>&nbsp;&nbsp;&nbsp;<FONT COLOR="#FF0000"> //This is our critical section</FONT>
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"(%t) This is iteration number %d\n",i));
-<BR><FONT COLOR="#FF0000">&nbsp; //work</FONT>
-<BR>&nbsp; ACE_OS::sleep(2);
-<BR>&nbsp; }<FONT COLOR="#FF0000">//end critical section</FONT>
-<BR>&nbsp;}
-<BR>return 0;
-<BR>}
-<BR>&nbsp;
-
-<P>int main(int argc, char*argv[]){
-<BR>if(argc&lt;3){
-<BR>&nbsp;ACE_OS::printf("Usage: egx &lt;number_of_threads> &lt;number_of_iterations>
-\n");
-<BR>&nbsp;ACE_OS::exit(1);
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Setup the arguments</FONT>
-<BR>Args arg(ACE_OS::atoi(argv[2]));
-<BR><FONT COLOR="#FF0000">//Spawn the worker threads</FONT>
-<BR>ACE_Thread::spawn_n(ACE_OS::atoi(argv[1]),(ACE_THR_FUNC)worker,(void*)&amp;arg);
-<BR>while(ACE_Thread::join(NULL,NULL,NULL)==0);
-<BR>}
-
-<P>&nbsp;<A HREF="ex06.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_4/ex06.html b/docs/tutorials/Chap_4/ex06.html
deleted file mode 100644
index d8d96090f18..00000000000
--- a/docs/tutorials/Chap_4/ex06.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 6</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "Thread Management"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 6</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Thread.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/OS.h"</FONT>
-<BR><FONT COLOR="#000099">#include </FONT><FONT COLOR="#006600">"ace/Synch_T.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Synch.h"</FONT>
-
-<P>static int number=0;
-<BR>static int seed=0;
-
-<P>class Args{
-<BR>public:
-<BR>Args(ACE_Condition&lt;ACE_Thread_Mutex> *cond, int threads):
-<BR>&nbsp;cond_(cond), threads_(threads){}
-<BR>ACE_Condition&lt;ACE_Thread_Mutex> *cond_;
-<BR>int threads_;
-<BR>};
-
-<P>static void*
-<BR>worker(void *arguments){
-<BR>&nbsp;Args *arg= (Args*)arguments;
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Thread (%t) Created to do some work\n"));
-<BR>&nbsp;::number++;
-<BR><FONT COLOR="#FF0000">&nbsp;//Work</FONT>
-<BR>&nbsp;ACE_OS::sleep(ACE_OS::rand()%2);
-
-<P><FONT COLOR="#FF0000">&nbsp;//Exiting now</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,
-<BR>&nbsp;&nbsp;&nbsp; "\tThread (%t) Done! \n\tThe number is now: %d\n",number));
-<BR><FONT COLOR="#FF0000">&nbsp;//If all threads are done signal main thread
-that program can now exit</FONT>
-<BR>&nbsp;if(number==arg->threads_){
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; "(%t) Last Thread!\n All threads have done
-their job!
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; Signal main thread\n"));
-<BR>&nbsp; arg->cond_->signal();
-<BR>&nbsp; }
-<BR>return 0;
-<BR>}
-<BR>&nbsp;
-
-<P>int main(int argc, char *argv[]){
-<BR>if(argc&lt;2){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Usage: &lt;program_name> &lt;number of threads>\n"));
-<BR>&nbsp;ACE_OS::exit(1);
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR>int n_threads=ACE_OS::atoi(argv[1]);
-
-<P><FONT COLOR="#FF0000">//Setup the random number generator</FONT>
-<BR>ACE_OS::srand(::seed);
-
-<P><FONT COLOR="#FF0000">//Setup arguments for threads</FONT>
-<BR>ACE_Thread_Mutex mutex;
-<BR>ACE_Condition&lt;ACE_Thread_Mutex> cond(mutex);
-<BR>Args arg(&amp;cond,n_threads);
-
-<P><FONT COLOR="#FF0000">//Spawn off n_threads number of threads</FONT>
-<BR>for(int i=0; i&lt;n_threads; i++){
-<BR>&nbsp;if(ACE_Thread::spawn((ACE_THR_FUNC)worker,(void*)&amp;arg,
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; THR_DETACHED|THR_NEW_LWP)==-1)
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"Error in spawning thread\n"));
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Wait for signal indicating that all threads
-are done and program can exit</FONT>
-<BR>mutex.acquire();
-<BR>if(number!=n_threads)
-<BR>&nbsp;cond.wait();
-<BR>ACE_DEBUG((LM_DEBUG,"(%t) Main Thread got signal. Program exiting..\n"));
-<BR>mutex.release();
-<BR>ACE_OS::exit(0);
-<BR>}
-
-<P>&nbsp;<A HREF="ex07.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_4/ex07.html b/docs/tutorials/Chap_4/ex07.html
deleted file mode 100644
index 680de23b8fd..00000000000
--- a/docs/tutorials/Chap_4/ex07.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 7</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "Thread Management"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 7</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Thread.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/OS.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch_T.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch.h"</FONT>
-
-<P>static int number=0;
-<BR>static int seed=0;
-
-<P>class Args{
-<BR>public:
-<BR>Args(ACE_Barrier *barrier):
-<BR>&nbsp;barrier_(barrier){}
-<BR>ACE_Barrier *barrier_;
-<BR>};
-
-<P>static void*
-<BR>worker(void *arguments){
-<BR>&nbsp;Args *arg= (Args*)arguments;
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Thread (%t) Created to do some work\n"));
-<BR>&nbsp;::number++;
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//Work</FONT>
-<BR>&nbsp;ACE_OS::sleep(ACE_OS::rand()%2);
-
-<P><FONT COLOR="#FF0000">&nbsp;//Exiting now</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,
-<BR>&nbsp;&nbsp;&nbsp; "\tThread (%t) Done! \n\tThe number is now: %d\n",number));
-<BR><FONT COLOR="#FF0000">&nbsp;//Let the barrier know we are done.</FONT>
-<BR>&nbsp;arg->barrier_->wait();
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Thread (%t) is exiting \n"));
-<BR>&nbsp;return 0;
-<BR>}
-<BR>&nbsp;
-
-<P>int main(int argc, char *argv[]){
-<BR>if(argc&lt;2){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Usage: &lt;program_name> &lt;number of threads>\n"));
-<BR>&nbsp;ACE_OS::exit(1);
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR>int n_threads=ACE_OS::atoi(argv[1]);
-<BR>ACE_DEBUG((LM_DEBUG,"Preparing to spawn %d threads",n_threads));
-<BR><FONT COLOR="#FF0000">//Setup the random number generator</FONT>
-<BR>ACE_OS::srand(::seed);
-
-<P><FONT COLOR="#FF0000">//Setup arguments for threads</FONT>
-<BR>ACE_Barrier barrier(n_threads);
-<BR>Args arg(&amp;barrier);
-
-<P><FONT COLOR="#FF0000">//Spawn off n_threads number of threads</FONT>
-<BR>for(int i=0; i&lt;n_threads; i++){ if(ACE_Thread::spawn((ACE_THR_FUNC)worker,(void*)&amp;arg,THR_DETACHED|THR_NEW_LWP)==-1)
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"Error in spawning thread\n"));
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Wait for all the other threads to let the main
-thread</FONT>
-<BR><FONT COLOR="#FF0000">// know that they are done using hte barrier</FONT>
-<BR>barrier.wait();
-<BR>ACE_DEBUG((LM_DEBUG,"(%t)Other threads are finished. Program exiting..\n"));
-<BR>ACE_OS::sleep(2);
-<BR>}
-
-<P>&nbsp;<A HREF="ex08.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_4/ex08.html b/docs/tutorials/Chap_4/ex08.html
deleted file mode 100644
index 98333413849..00000000000
--- a/docs/tutorials/Chap_4/ex08.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 8</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "Thread Management"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 8</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch_T.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch.h"</FONT>
-
-<P>ACE_Atomic_Op&lt;ACE_Thread_Mutex,int> foo;
-
-<P>static void*
-<BR>worker(void *arg){
-<BR>&nbsp; ACE_UNUSED_ARG(arg);
-<BR>&nbsp; foo=5;
-<BR>&nbsp; ACE_ASSERT (foo == 5);
-<BR>&nbsp;
-<BR>&nbsp; ++foo;
-<BR>&nbsp; ACE_ASSERT (foo == 6);
-<BR>&nbsp;
-<BR>&nbsp; --foo;
-<BR>&nbsp; ACE_ASSERT (foo == 5);
-<BR>&nbsp;
-<BR>&nbsp; foo += 10;
-<BR>&nbsp; ACE_ASSERT (foo == 15);
-<BR>&nbsp;
-<BR>&nbsp; foo -= 10;
-<BR>&nbsp; ACE_ASSERT (foo == 5);
-<BR>&nbsp;
-<BR>&nbsp; foo = 5L;
-<BR>&nbsp; ACE_ASSERT (foo == 5);
-<BR>&nbsp;return 0;
-<BR>}
-
-<P>int main(int argc, char *argv[]){
-<BR>if(argc&lt;2){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Usage: &lt;program_name> &lt;number of threads>\n"));
-<BR>&nbsp;ACE_OS::exit(1);
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR>int n_threads=ACE_OS::atoi(argv[1]);
-<BR>ACE_DEBUG((LM_DEBUG,"Preparing to spawn %d threads\n",n_threads));
-<BR>&nbsp;
-
-<P><FONT COLOR="#FF0000">//Spawn off n_threads number of threads</FONT>
-<BR>for(int i=0; i&lt;n_threads; i++){
-<BR>&nbsp;if(ACE_Thread::spawn((ACE_THR_FUNC)worker,0,THR_DETACHED|THR_NEW_LWP)==-1)
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"Error in spawning thread\n"));
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Wait for all the other threads to let the main
-thread know when it is time to exit</FONT>
-<BR>while(ACE_Thread::join(NULL,NULL,NULL)==0);
-<BR>ACE_DEBUG((LM_DEBUG,"(%t)Other threads are finished. Program exiting..\n"));
-<BR>}
-
-<P>&nbsp;<A HREF="../Chap_5/ex01.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_5/Chap_5.zip b/docs/tutorials/Chap_5/Chap_5.zip
deleted file mode 100644
index 5eb2b6646d0..00000000000
--- a/docs/tutorials/Chap_5/Chap_5.zip
+++ /dev/null
Binary files differ
diff --git a/docs/tutorials/Chap_5/ex01.html b/docs/tutorials/Chap_5/ex01.html
deleted file mode 100644
index b50a03627ee..00000000000
--- a/docs/tutorials/Chap_5/ex01.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 1</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Reactor" (Event
-Management)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#FF0000">//Example 1</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">&lt;signal.h></FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Event_Handler.h"</FONT>
-
-<P><FONT COLOR="#FF0000">//Create our subclass to handle the signal events</FONT>
-<BR><FONT COLOR="#FF0000">//that we wish to handle. Since we know that
-this particular</FONT>
-<BR><FONT COLOR="#FF0000">//event handler is going to be using signals
-we only overload the</FONT>
-<BR><FONT COLOR="#FF0000">//handle_signal method.</FONT>
-
-<P>class
-<BR>MyEventHandler: public ACE_Event_Handler{
-<BR>int
-<BR>handle_signal(int signum, siginfo_t*,ucontext_t*){
-<BR>&nbsp;switch(signum){
-<BR>&nbsp; case SIGWINCH:
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_DEBUG, "You pressed SIGWINCH \n"));
-<BR>&nbsp;&nbsp; break;
-
-<P>&nbsp; case SIGINT:
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_DEBUG, "You pressed SIGINT \n"));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp;&nbsp; }
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-<BR>};
-
-<P>int main(int argc, char *argv[]){
-<BR><FONT COLOR="#FF0000">&nbsp;//instantiate the handler</FONT>
-<BR>&nbsp;MyEventHandler *eh =new MyEventHandler;
-
-<P><FONT COLOR="#FF0000">//Register the handler asking to call back when
-either SIGWINCH</FONT>
-<BR><FONT COLOR="#FF0000">//or SIGINT signals occur. Note that in both
-the cases we asked the</FONT>
-<BR><FONT COLOR="#FF0000">//Reactor to call back the same Event_Handler
-i.e., MyEventHandler.</FONT>
-<BR><FONT COLOR="#FF0000">//This is the reason why we had to write a switch
-statement in the handle_signal()</FONT>
-<BR><FONT COLOR="#FF0000">//method above. Also note that the</FONT>
-<BR><FONT COLOR="#FF0000">//ACE_Reactor is being used as a Singleton object&nbsp;
-(Singleton pattern)</FONT>
-
-<P>&nbsp;ACE_Reactor::instance()->register_handler(SIGWINCH,eh);
-<BR>&nbsp;ACE_Reactor::instance()->register_handler(SIGINT,eh);
-<BR>&nbsp;while(1)
-<BR>&nbsp;<FONT COLOR="#FF0000"> //Start the reactors event loop</FONT>
-<BR>&nbsp; ACE_Reactor::instance()->handle_events();
-<BR>}
-
-<P>&nbsp;<A HREF="ex02.html">Next Example</A>
-<BR>&nbsp;
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_5/ex02.html b/docs/tutorials/Chap_5/ex02.html
deleted file mode 100644
index 8652d2b806f..00000000000
--- a/docs/tutorials/Chap_5/ex02.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 2</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Reactor" (Event
-Management)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 2</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">PORT_NO
-19998</FONT>
-<BR>typedef ACE_SOCK_Acceptor Acceptor;
-<BR><FONT COLOR="#FF0000">//forward declaration</FONT>
-<BR>class My_Accept_Handler;
-
-<P>class
-<BR>My_Input_Handler: public ACE_Event_Handler{
-<BR>public:
-<BR><FONT COLOR="#FF0000">&nbsp;//Constructor</FONT>
-<BR>&nbsp;My_Input_Handler(){
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,?Constructor\n?);
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//Called back to handle any input receieved</FONT>
-<BR>&nbsp;int
-<BR>&nbsp;handle_input(ACE_HANDLE){
-<BR><FONT COLOR="#FF0000">&nbsp; //receive the data</FONT>
-<BR>&nbsp; peer_i().recv_n(data,12);
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,?%s\n?,data));
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000"> // do something with the input received.</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp; // ...</FONT>
-
-<P><FONT COLOR="#FF0000">&nbsp; //keep yourself registered with the reactor</FONT>
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//Used by the reactor to determine the
-underlying handle</FONT>
-<BR>&nbsp;ACE_HANDLE
-<BR>&nbsp;get_handle()const {
-<BR>&nbsp; return this->peer_i().get_handle();
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//Returns a reference to the underlying
-stream.</FONT>
-<BR>&nbsp;ACE_SOCK_Stream &amp;
-<BR>&nbsp;peer_i(){
-<BR>&nbsp; return this->peer_;
-<BR>&nbsp; }
-
-<P>private:
-<BR>&nbsp;ACE_SOCK_Stream peer_;
-<BR>&nbsp;char data [12];
-<BR>};
-<BR>&nbsp;
-
-<P>class
-<BR>My_Accept_Handler: public ACE_Event_Handler{
-<BR>public:
-<BR><FONT COLOR="#FF0000">//Constructor</FONT>
-<BR>&nbsp;My_Accept_Handler(ACE_Addr &amp;addr){
-<BR>&nbsp; this->open(addr);
-<BR>&nbsp; }
-
-<P><FONT COLOR="#FF0000">//Open the peer_acceptor so it starts to ?listen?</FONT>
-<BR><FONT COLOR="#FF0000">//for incoming clients.</FONT>
-<BR>&nbsp;int
-<BR>&nbsp;open(ACE_Addr &amp;addr){
-<BR>&nbsp; peer_acceptor.open(addr);
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-
-<P><FONT COLOR="#FF0000">//Overload the handle input method</FONT>
-<BR>&nbsp;int
-<BR>&nbsp;handle_input(ACE_HANDLE handle){
-<BR>&nbsp;<FONT COLOR="#FF0000"> //Client has requested connection to server.</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp; //Create a handler to handle the connection</FONT>
-<BR>&nbsp; My_Input_Handler *eh= new My_Input_Handler();
-
-<P>&nbsp; <FONT COLOR="#FF0000">//Accept the connection ?into? the Event
-Handler</FONT>
-<BR>&nbsp; if (this->peer_acceptor.accept (eh->peer (), <FONT COLOR="#FF0000">//
-stream</FONT>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, <FONT COLOR="#FF0000">// remote address</FONT>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0, <FONT COLOR="#FF0000">// timeout</FONT>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1) ==-1) <FONT COLOR="#FF0000">//restart
-if interrupted</FONT>
-<BR>&nbsp;&nbsp;&nbsp; ACE_DEBUG((LM_ERROR,"Error in connection\n"));
-
-<P>&nbsp; ACE_DEBUG((LM_DEBUG,"Connection established\n"));
-
-<P><FONT COLOR="#FF0000">&nbsp; //Register the input event handler for
-reading</FONT>
-<BR>&nbsp; ACE_Reactor::instance()->
-<BR>&nbsp;&nbsp; register_handler(eh,ACE_Event_Handler::READ_MASK);
-
-<P><FONT COLOR="#FF0000">&nbsp; //Unregister as the acceptor is not expecting
-new clients</FONT>
-<BR>&nbsp; return -1;
-<BR>&nbsp; }
-
-<P><FONT COLOR="#FF6666">&nbsp;//Used by the reactor to determine the underlying
-handle</FONT>
-<BR>&nbsp;ACE_HANDLE
-<BR>&nbsp;get_handle(void) const{
-<BR>&nbsp; return this->peer_acceptor.get_handle();
-<BR>&nbsp; }
-<BR>private:
-<BR>&nbsp;Acceptor peer_acceptor;
-<BR>};
-
-<P>int main(int argc, char * argv[]){
-<BR><FONT COLOR="#FF0000">&nbsp;//Create an address on which to receive
-connections</FONT>
-<BR>&nbsp;ACE_INET_Addr addr(PORT_NO);
-
-<P><FONT COLOR="#FF0000">//Create the Accept Handler which automatically
-begins to "listen"</FONT>
-<BR><FONT COLOR="#FF0000">//for client requests for connections</FONT>
-<BR>&nbsp;My_Accept_Handler *eh=new My_Accept_Handler(addr);
-
-<P><FONT COLOR="#FF0000">//Register the reactor to call back when incoming
-client connects</FONT>
-<BR>ACE_Reactor::instance()->register_handler(eh,
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_Event_Handler::ACCEPT_MASK);
-
-<P><FONT COLOR="#FF0000">//Start the event loop</FONT>
-<BR>while(1)
-<BR>&nbsp;ACE_Reactor::instance()->handle_events();
-<BR>}
-
-<P>&nbsp;<A HREF="ex03.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_5/ex03.html b/docs/tutorials/Chap_5/ex03.html
deleted file mode 100644
index 0928cb6a6d5..00000000000
--- a/docs/tutorials/Chap_5/ex03.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 3</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Reactor" (Event
-Management)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#FF0000">//Example 3</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> "<FONT COLOR="#006600">ace/Timer_Queue.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> "<FONT COLOR="#006600">ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">NUMBER_TIMERS
-10</FONT>
-
-<P>static int done = 0;
-<BR>static int count = 0;
-
-<P>class Time_Handler : public ACE_Event_Handler
-<BR>{
-<BR>public:
-<BR>&nbsp;<FONT COLOR="#FF0000">//Method which is called back by the Reactor
-when timeout occurs.</FONT>
-<BR>&nbsp;virtual int handle_timeout (const ACE_Time_Value &amp;tv,
-<BR>&nbsp;const void *arg){
-<BR>&nbsp; long current_count = long (arg);
-<BR>&nbsp; ACE_ASSERT (current_count == count);
-<BR>&nbsp; ACE_DEBUG ((LM_DEBUG, "%d: Timer #%d timed out at %d!\n",
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; count, current_count, tv.sec()));
-<BR>&nbsp;
-
-<P><FONT COLOR="#FF0000">//Increment count</FONT>
-<BR>&nbsp; count ++;
-
-<P><FONT COLOR="#FF0000">//Make sure assertion doesnt fail for missing
-5th timer.</FONT>
-<BR>&nbsp; if (count ==5)
-<BR>&nbsp;&nbsp; count++;
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp; //If all timers done then set done flag</FONT>
-<BR>&nbsp; if (current_count == NUMBER_TIMERS - 1)
-<BR>&nbsp;&nbsp; done = 1;
-<BR><FONT COLOR="#FF0000">&nbsp; //Keep yourself registered with the Reactor.</FONT>
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-<BR>};
-
-<P>int
-<BR>main (int, char *[])
-<BR>{
-<BR>&nbsp;ACE_Reactor reactor;
-<BR>&nbsp;Time_Handler *th=new Time_Handler;
-<BR>&nbsp;int timer_id[NUMBER_TIMERS];
-<BR>&nbsp;int i;
-
-<P>&nbsp;for (i = 0; i &lt; NUMBER_TIMERS; i++)
-<BR>&nbsp; timer_id[i] = reactor.schedule_timer (th,
-<BR>&nbsp;&nbsp; (const void *) i, <FONT COLOR="#FF0000">// argument sent
-to handle_timeout()</FONT>
-<BR>&nbsp;&nbsp; ACE_Time_Value (2 * i + 1));<FONT COLOR="#FF0000"> //set
-timer to go off with delay</FONT>
-
-<P><FONT COLOR="#CC0000">&nbsp;//Cancel the fifth timer before it goes
-off</FONT>
-<BR>&nbsp;reactor.cancel_timer(timer_id[5]);<FONT COLOR="#FF0000">//Timer
-ID of timer to be removed</FONT>
-
-<P>&nbsp;while (!done)
-<BR>&nbsp; reactor.handle_events ();
-
-<P>&nbsp;return 0;
-<BR>}
-
-<P>&nbsp;<A HREF="ex04.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_5/ex04.html b/docs/tutorials/Chap_5/ex04.html
deleted file mode 100644
index 95971be40b3..00000000000
--- a/docs/tutorials/Chap_5/ex04.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 4</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Reactor" (Event
-Management)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#FF0000">//Example 4</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Event_Handler.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch_T.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Thread_Manager.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">WAIT_TIME
-1</FONT>
-<BR><FONT COLOR="#000099">#define</FONT><FONT COLOR="#663366"> SLEEP_TIME
-2</FONT>
-
-<P>class My_Handler: public ACE_Event_Handler{
-<BR>&nbsp;public:
-
-<P><FONT COLOR="#FF0000">&nbsp;//Start the event handling process.</FONT>
-<BR>&nbsp;My_Handler(){
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"Event Handler created\n"));
-<BR>&nbsp; ACE_Reactor::instance()->max_notify_iterations(5);
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-
-<P><FONT COLOR="#FF0000">//Perform the notifications i.e., notify the reactor
-10 times</FONT>
-<BR>&nbsp;void perform_notifications(){
-<BR>&nbsp; for(int i=0;i&lt;10;i++)
-<BR>&nbsp;&nbsp; ACE_Reactor::instance()->
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; notify(this,ACE_Event_Handler::READ_MASK);
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//The actual handler which in this case
-will handle the notifications</FONT>
-<BR>&nbsp;int handle_input(int){
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"Got notification # %d\n",no));
-<BR>&nbsp; no++;
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-<BR>private:
-<BR>&nbsp;static int no;
-<BR>};
-
-<P><FONT COLOR="#FF0000">//Static members</FONT>
-<BR>int My_Handler::no=1;
-<BR>&nbsp;
-
-<P>int main(int argc, char *argv[]){
-<BR><FONT COLOR="#FF0000">&nbsp; //Instantiating the handler</FONT>
-<BR>&nbsp;My_Handler handler;
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//The done flag is set to not done yet.</FONT>
-<BR>&nbsp;int done=0;
-
-<P>while(1){
-<BR>&nbsp;<FONT COLOR="#FF0000"> //After WAIT_TIME the handle_events will
-fall through if no events arrive.</FONT>
-<BR>&nbsp; ACE_Reactor::instance()->handle_events(ACE_Time_Value(WAIT_TIME));
-<BR>&nbsp; if(!done){
-<BR>&nbsp;&nbsp; handler.perform_notifications();
-<BR>&nbsp;&nbsp; done=1;
-<BR>&nbsp;&nbsp; }
-<BR>&nbsp; sleep(SLEEP_TIME);
-<BR>&nbsp;}
-<BR>}
-
-<P>&nbsp;<A HREF="ex05.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_5/ex05.html b/docs/tutorials/Chap_5/ex05.html
deleted file mode 100644
index 80422683cd6..00000000000
--- a/docs/tutorials/Chap_5/ex05.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 5</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Reactor" (Event
-Management)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 5</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Event_Handler.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch_T.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Thread_Manager.h"</FONT>
-
-<P>class My_Handler: public ACE_Event_Handler{
-<BR>public:
-<BR><FONT COLOR="#FF0000">&nbsp;//Start the event handling process.</FONT>
-<BR>&nbsp;My_Handler(){
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"Got open\n"));
-<BR>&nbsp; activate_threads();
-<BR>&nbsp; ACE_Reactor::instance()->max_notify_iterations(5);
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-
-<P><FONT COLOR="#FF0000">//Spawn a separate thread so that it notifies
-the reactor</FONT>
-<BR>&nbsp;void activate_threads(){
-<BR>&nbsp; ACE_Thread_Manager::instance()
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; ->spawn((ACE_THR_FUNC)svc_start,(void*)this);
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//Notify the Reactor 10 times.</FONT>
-<BR>&nbsp;void svc(){
-<BR>&nbsp; for(int i=0;i&lt;10;i++)
-<BR>&nbsp;&nbsp; ACE_Reactor::instance()
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; ->notify(this, ACE_Event_Handler::READ_MASK);
-<BR>&nbsp;&nbsp; }
-
-<P><FONT COLOR="#FF0000">//The actual handler which in this case will handle
-the notifications</FONT>
-<BR>&nbsp;int handle_input(int){
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG, ?Got notification # %d\n?, no));
-<BR>&nbsp; no++;
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-
-<P>&nbsp;<FONT COLOR="#FF0000">//The entry point for the new thread that
-is to be created.</FONT>
-<BR>&nbsp;static int svc_start(void* arg);
-<BR>private:
-<BR>&nbsp;static int no;
-<BR>};
-<BR>&nbsp;
-
-<P><FONT COLOR="#FF0000">//Static members</FONT>
-<BR>int My_Handler::no=1;
-<BR>int My_Handler::svc_start(void* arg){
-<BR>&nbsp;My_Handler *eh= (My_Handler*)arg;
-<BR>&nbsp;eh->svc();
-<BR>&nbsp;return -1; <FONT COLOR="#FF0000">//de-register from the reactor</FONT>
-<BR>&nbsp;}
-
-<P>int main(int argc, char *argv[]){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Starting test \n"));
-<BR>&nbsp;My_Handler handler;
-
-<P>&nbsp;while(1){
-<BR>&nbsp; ACE_Reactor::instance()->handle_events();
-<BR>&nbsp; sleep(3);
-<BR>&nbsp; }
-<BR>}
-<BR>&nbsp;
-<BR>&nbsp;
-<BR>&nbsp; <A HREF="../Chap_6/ex01.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_6/Chap_6.zip b/docs/tutorials/Chap_6/Chap_6.zip
deleted file mode 100644
index fcfd5455cba..00000000000
--- a/docs/tutorials/Chap_6/Chap_6.zip
+++ /dev/null
Binary files differ
diff --git a/docs/tutorials/Chap_6/ex01.html b/docs/tutorials/Chap_6/ex01.html
deleted file mode 100644
index 473c1c3b0e9..00000000000
--- a/docs/tutorials/Chap_6/ex01.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 1</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Acceptor/Connector"&nbsp;
-(Connection Initialization)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#FF0000">//Example 1</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Svc_Handler.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Synch.h"</FONT>
-<BR><FONT COLOR="#000099">#include </FONT><FONT COLOR="#006600">"ace/SOCK_Acceptor.h"</FONT>
-
-<P><FONT COLOR="#FF0000">//Create a Service Handler whose open() method
-will be called back automatically.</FONT>
-<BR><FONT COLOR="#FF0000">//This class MUST derive from ACE_Svc_Handler
-which is an interface and</FONT>
-<BR><FONT COLOR="#FF0000">//as can be seen is a template container class
-itself. The first parameter to //ACE_Svc_Handler is the underlying stream
-that it may use for communication.</FONT>
-<BR><FONT COLOR="#FF0000">//Since we are using TCP sockets the stream is
-ACE_SOCK_STREAM.</FONT>
-<BR><FONT COLOR="#FF0000">//The second is the internal synchronization
-mechanism it could use.</FONT>
-<BR><FONT COLOR="#FF0000">//Since we have a single threaded application
-we pass it a "null" lock</FONT>
-<BR><FONT COLOR="#FF0000">//which will do nothing.</FONT>
-
-<P>class My_Svc_Handler:
-<BR>&nbsp;public ACE_Svc_Handler &lt;ACE_SOCK_STREAM,ACE_NULL_SYNCH>{
-<BR><FONT COLOR="#FF0000">//the open method which will be called back automatically
-after the</FONT>
-<BR><FONT COLOR="#FF0000">//connection has been established</FONT>.
-
-<P>public:
-<BR>int open(void*){
-<BR>&nbsp;cout&lt;&lt;?Connection established?&lt;&lt;endl;
-<BR>&nbsp;}
-<BR>};
-<BR><FONT COLOR="#FF0000">// Create the acceptor as described above.</FONT>
-<BR>typedef ACE_Acceptor&lt;My_Svc_Handler,ACE_SOCK_ACCEPTOR> MyAcceptor;
-
-<P>int main(int argc, char* argv[]){
-<BR><FONT COLOR="#FF0000">//create the&nbsp; address on which we wish to
-connect. The constructor takes</FONT>
-<BR><FONT COLOR="#FF0000">//the port number on which to listen and will
-automatically take the hosts</FONT>
-<BR><FONT COLOR="#FF0000">//IP address as the IP Address for the addr object</FONT>
-
-<P>ACE_INET_Addr addr(PORT_NUM);
-
-<P><FONT COLOR="#FF0000">//instantiate the appropriate acceptor object
-with the address on which we wish to</FONT>
-<BR><FONT COLOR="#FF0000">//accept and the Reactor instance we want to
-use. In this case we just use the global</FONT>
-<BR><FONT COLOR="#FF0000">//ACE_Reactor singleton. (Read more about the
-reactor in the previous chapter)</FONT>
-<BR>MyAcceptor acceptor(address, ACE_Reactor::instance());
-
-<P>while(1)
-<BR><FONT COLOR="#FF0000">&nbsp;// Start the reactors event loop</FONT>
-<BR>&nbsp;ACE_Reactor::instance()->handle_events();
-<BR>}
-
-<P>&nbsp;<A HREF="ex02.html">Next Example</A>
-<BR>&nbsp;
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_6/ex02.html b/docs/tutorials/Chap_6/ex02.html
deleted file mode 100644
index fffb3b64adb..00000000000
--- a/docs/tutorials/Chap_6/ex02.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 2</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Acceptor/Connector"&nbsp;
-(Connection Initialization)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 2</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Svc_Handler.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">PORT_NUM
-10101</FONT>
-<BR><FONT COLOR="#000099">#define</FONT><FONT COLOR="#663366"> DATA_SIZE
-12</FONT>
-
-<P><FONT COLOR="#FF0000">//forward declaration</FONT>
-<BR>class My_Svc_Handler;
-
-<P><FONT COLOR="#FF0000">//Create the Acceptor class</FONT>
-<BR>typedef ACE_Acceptor&lt;My_Svc_Handler,ACE_SOCK_ACCEPTOR> MyAcceptor;
-
-<P><FONT COLOR="#FF0000">//Create a service handler similar to as seen
-in example 1.</FONT>
-<BR><FONT COLOR="#FF0000">//Except this time include the handle_input()
-method which will be</FONT>
-<BR><FONT COLOR="#FF0000">//called back automatically by the reactor when
-new data arrives</FONT>
-<BR><FONT COLOR="#FF0000">//on the newly established connection</FONT>
-<BR>class My_Svc_Handler:
-<BR>&nbsp;public ACE_Svc_Handler &lt;ACE_SOCK_STREAM,ACE_NULL_SYNCH>{
-<BR>public:
-<BR>My_Svc_Handler(){
-<BR>&nbsp;data= new char[DATA_SIZE];
-<BR>&nbsp;}
-<BR>int open(void*){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Connection established"));
-
-<P><FONT COLOR="#FF0000">&nbsp;//Register the service handler with the
-reactor</FONT>
-<BR>&nbsp;ACE_Reactor::instance()->register_handler(this,
-<BR>&nbsp;ACE_Event_Handler::READ_MASK);
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-
-<P>int handle_input(ACE_HANDLE){
-<BR>&nbsp;<FONT COLOR="#FF0000">//After using the peer() method of ACE_Svc_Handler
-to obtain a</FONT>
-<BR><FONT COLOR="#FF0000">//reference to the underlying stream of the service
-handler class</FONT>
-<BR><FONT COLOR="#FF0000">//we call recv_n() on it to read the data which
-has been received.</FONT>
-<BR><FONT COLOR="#FF0000">//This data is stored in the data array and then
-printed out</FONT>
-<BR>&nbsp;peer().recv_n(data,DATA_SIZE);
-<BR>&nbsp;ACE_OS::printf("&lt;&lt; %s\n",data);
-
-<P>&nbsp;<FONT COLOR="#FF0000">//keep yourself registered with the reactor</FONT>
-<BR>&nbsp; return 0;
-<BR>&nbsp;}
-<BR>private:
-<BR>&nbsp;char* data;
-<BR>};
-
-<P>int main(int argc, char* argv[]){
-<BR>&nbsp;ACE_INET_Addr addr(PORT_NUM);
-<BR><FONT COLOR="#FF0000">&nbsp;//create the acceptor</FONT>
-<BR>&nbsp;MyAcceptor acceptor(addr, <FONT COLOR="#FF0000">//address to
-accept on</FONT>
-<BR>&nbsp; ACE_Reactor::instance()); <FONT COLOR="#FF0000">//the reactor
-to use</FONT>
-
-<P>while(1)
-<BR><FONT COLOR="#FF0000">&nbsp;//Start the reactor?s event loop</FONT>
-<BR>&nbsp;ACE_Reactor::instance()->handle_events();
-<BR>}
-
-<P>&nbsp;<A HREF="ex03.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_6/ex03.html b/docs/tutorials/Chap_6/ex03.html
deleted file mode 100644
index fd88fd05eaf..00000000000
--- a/docs/tutorials/Chap_6/ex03.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 3</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Acceptor/Connector"&nbsp;
-(Connection Initialization)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example3</FONT>
-
-<P>class My_Svc_Handler:
-<BR>public ACE_Svc_Handler &lt;ACE_LSOCK_STREAM,ACE_NULL_SYNCH>{
-<BR>public:
-<BR>int open(void*){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Connection established"));
-<BR>&nbsp;ACE_Reactor::instance() ->register_handler(this,ACE_Event_Handler::READ_MASK);
-<BR>&nbsp;&nbsp; }
-
-<P>&nbsp;int handle_input(ACE_HANDLE){
-<BR>&nbsp; char* data= new char[DATA_SIZE];
-<BR>&nbsp; peer().recv_n(data,DATA_SIZE);
-<BR>&nbsp; ACE_OS::printf("&lt;&lt; %s\n",data);
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-<BR>};
-
-<P>typedef ACE_Acceptor&lt;My_Svc_Handler,ACE_LSOCK_ACCEPTOR> MyAcceptor;
-
-<P>int main(int argc, char* argv[]){
-<BR>&nbsp;ACE_UNIX_Addr addr("/tmp/addr.ace");
-<BR>&nbsp;MyAcceptor acceptor(address, ACE_Reactor::instance());
-
-<P>while(1) <FONT COLOR="#FF0000">/* Start the reactors event loop */</FONT>
-<BR>&nbsp; ACE_Reactor::instance()->handle_events();
-<BR>}
-
-<P>&nbsp;<A HREF="ex04.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_6/ex04.html b/docs/tutorials/Chap_6/ex04.html
deleted file mode 100644
index c0577bb1752..00000000000
--- a/docs/tutorials/Chap_6/ex04.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 4</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Acceptor/Connector"&nbsp;
-(Connection Initialization)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 4 (Use in conjunction with other examples
-to create running example)</FONT><FONT COLOR="#CC0000"></FONT>
-
-<P>typedef ACE_Connector&lt;My_Svc_Handler,ACE_SOCK_CONNECTOR> MyConnector;
-
-<P>int main(int argc, char * argv[]){
-<BR>&nbsp;ACE_INET_Addr addr(PORT_NO,HOSTNAME);
-<BR>&nbsp;My_Svc_Handler * handler= new My_Svc_Handler;
-
-<P><FONT COLOR="#FF0000">//Create the connector</FONT>
-<BR>&nbsp;MyConnector connector;
-
-<P><FONT COLOR="#FF0000">//Connects to remote machine</FONT>
-<BR>&nbsp;if(connector.connect(handler,addr)==-1)
-<BR>&nbsp; ACE_ERROR(LM_ERROR,?%P|%t, %p?,?Connection failed?);
-<BR>&nbsp;
-
-<P><FONT COLOR="#FF0000">//Registers with the Reactor</FONT>
-<BR>&nbsp;while(1)
-<BR>&nbsp; ACE_Reactor::instance()->handle_events();
-<BR>}
-
-<P>&nbsp;<A HREF="ex05.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_6/ex05.html b/docs/tutorials/Chap_6/ex05.html
deleted file mode 100644
index 9763486a71f..00000000000
--- a/docs/tutorials/Chap_6/ex05.html
+++ /dev/null
@@ -1,130 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 5</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Acceptor/Connector"&nbsp;
-(Connection Initialization)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 5</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> "<FONT COLOR="#006600">ace/Svc_Handler.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> "<FONT COLOR="#006600">ace/Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Thread.h"</FONT>
-
-<P><FONT COLOR="#FF0000">//Add our own Reactor singleton</FONT>
-<BR>typedef ACE_Singleton&lt;ACE_Reactor,ACE_Null_Mutex> Reactor;
-<BR><FONT COLOR="#FF0000">//Create an Acceptor</FONT>
-<BR>typedef ACE_Acceptor&lt;MyServiceHandler,ACE_SOCK_ACCEPTOR> Acceptor;
-<BR><FONT COLOR="#FF0000">//Create a Connector</FONT>
-<BR>typedef ACE_Connector&lt;MyServiceHandler,ACE_SOCK_CONNECTOR> Connector;
-
-<P>class MyServiceHandler:
-<BR>public ACE_Svc_Handler&lt;ACE_SOCK_STREAM,ACE_NULL_SYNCH>{
-<BR>public:
-<BR><FONT COLOR="#FF0000">&nbsp;//Used by the two threads "globally" to
-determine their peer stream</FONT>
-<BR>&nbsp;static ACE_SOCK_Stream* Peer;
-
-<P><FONT COLOR="#FF0000">//Thread ID used to identify the threads</FONT>
-<BR>&nbsp;ACE_thread_t t_id;
-
-<P>int open(void*){
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"Acceptor: received new connection\n"));
-
-<P><FONT COLOR="#FF0000">//Register with the reactor to remember this handlle</FONT>
-<BR>&nbsp; Reactor::instance() ->register_handler(this,ACE_Event_Handler::READ_MASK);
-
-<P><FONT COLOR="#FF0000">//Determine the peer stream and record it globally</FONT>
-<BR>&nbsp; MyServiceHandler::Peer=&amp;peer();
-<BR>&nbsp;
-<BR>&nbsp; <FONT COLOR="#FF0000">//Spawn new thread to send string every
-second</FONT>
-<BR>&nbsp; ACE_Thread::spawn((ACE_THR_FUNC)send_data,0,THR_NEW_LWP,&amp;t_id);
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000"> //keep the service handler registered
-by returning 0 to the reactor</FONT>
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-<BR>&nbsp;
-
-<P>static void* send_data(void*){
-<BR>&nbsp; while(1){
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_DEBUG,"Hello World\n"));
-<BR>&nbsp;&nbsp; Peer->send_n("Hello World",sizeof("Hello World"));
-<BR>&nbsp;
-<BR>&nbsp;&nbsp; <FONT COLOR="#FF0000">//Go to sleep for a second before
-sending again</FONT>
-<BR>&nbsp;&nbsp; ACE_OS::sleep(1);
-<BR>&nbsp;&nbsp;&nbsp; }
-<BR>&nbsp; return 0;
-<BR>&nbsp; }
-<BR>&nbsp;
-
-<P>int handle_input(ACE_HANDLE){
-<BR>&nbsp; char* data= new char[12];
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000"> //Check if peer aborted the connection</FONT>
-<BR>&nbsp; if(Peer.recv_n(data,12)==0){
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_DEBUG,"Peer probably aborted connection\n"));
-<BR>&nbsp;&nbsp; ACE_Thread::cancel(t_id); <FONT COLOR="#CC0000">//kill
-sending thread ..</FONT>
-<BR>&nbsp;&nbsp; return -1; <FONT COLOR="#FF0000">//de-register from the
-Reactor.</FONT>
-<BR>&nbsp;&nbsp; }
-
-<P>&nbsp;<FONT COLOR="#FF0000"> //Show what you got..</FONT>
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"&lt;&lt; %s\n",data));
-<BR>&nbsp;
-<BR>&nbsp; <FONT COLOR="#FF0000">//keep yourself registered</FONT>
-<BR>&nbsp; return 0;
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
-<BR>};
-
-<P><FONT COLOR="#FF0000">//Global stream identifier used by both threads</FONT>
-<BR>ACE_SOCK_Stream * MyServiceHandler::Peer=0;
-<BR>&nbsp;
-
-<P>void main_accept(){
-<BR>&nbsp;ACE_INET_Addr addr(PORT_NO);
-<BR>&nbsp;Acceptor myacceptor(addr,Reactor::instance());
-<BR>&nbsp;while(1)
-<BR>&nbsp; Reactor::instance()->handle_events();
-
-<P>&nbsp;return 0;
-<BR>&nbsp;}
-
-<P>void main_connect(){
-<BR>&nbsp;ACE_INET_Addr addr(PORT_NO,HOSTNAME);
-<BR>&nbsp;Connector myconnector;
-<BR>&nbsp;myconnector.connect(my_svc_handler,addr);
-<BR>&nbsp;while(1)
-<BR>&nbsp; Reactor::instance()->handle_events();
-
-<P>&nbsp;}
-<BR>&nbsp;
-
-<P>int main(int argc, char* argv[]){
-<BR><FONT COLOR="#FF0000">&nbsp;// Use ACE_Get_Opt to parse and obtain
-arguments and then call the</FONT>
-<BR>&nbsp;<FONT COLOR="#FF0000">// approriate function for accept or connect.</FONT>
-<BR><FONT COLOR="#CC0000">//...</FONT>
-<BR>}
-<BR>&nbsp;
-<BR>&nbsp;<A HREF="ex06.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_6/ex06.html b/docs/tutorials/Chap_6/ex06.html
deleted file mode 100644
index 9c6fd395d52..00000000000
--- a/docs/tutorials/Chap_6/ex06.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 6</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Acceptor/Connector"&nbsp;
-(Connection Initialization)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 6</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Svc_Handler.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Acceptor.h"</FONT>
-
-<P>class MyServiceHandler; //forward declaration
-<BR>typedef ACE_Singleton&lt;ACE_Reactor,ACE_Null_Mutex> Reactor;
-<BR>typedef ACE_Acceptor&lt;MyServiceHandler,ACE_SOCK_ACCEPTOR> Acceptor;
-
-<P>class MyServiceHandler:
-<BR>public ACE_Svc_Handler&lt;ACE_SOCK_STREAM,ACE_MT_SYNCH>{
-<BR><FONT COLOR="#FF0000">// The two thread names are kept here</FONT>
-<BR>ACE_thread_t thread_names[2];
-
-<P>public:
-<BR>int open(void*){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG, "Acceptor: received new connection \n"));
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//Register with the reactor to remember
-this handler..</FONT>
-<BR>&nbsp;Reactor::instance() ->register_handler(this,ACE_Event_Handler::READ_MASK);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Acceptor: ThreadID:(%t) open\n"));
-
-<P><FONT COLOR="#CC0000">&nbsp;//Create two new threads to create and send
-messages to the remote machine.</FONT>
-<BR>&nbsp;activate(THR_NEW_LWP,
-<BR>&nbsp;&nbsp; 2, <FONT COLOR="#FF0000">//2 new threads</FONT>
-<BR>&nbsp;&nbsp; 0, <FONT COLOR="#FF0000">//force active false, if already
-created dont try again.</FONT>
-<BR>&nbsp;&nbsp; ACE_DEFAULT_THREAD_PRIORITY,<FONT COLOR="#FF0000">//Use
-default thread priority</FONT>
-<BR>&nbsp;&nbsp; -1,
-<BR>&nbsp;&nbsp; this,<FONT COLOR="#FF0000">//Which ACE_Task object to
-create? In this case this one.</FONT>
-<BR>&nbsp;&nbsp; 0,<FONT COLOR="#FF0000">// dont care about thread handles
-used</FONT>
-<BR>&nbsp;&nbsp; 0,<FONT COLOR="#FF0000">// dont care about where stacks
-are created</FONT>
-<BR>&nbsp;&nbsp; 0,<FONT COLOR="#FF0000">//dont care about stack sizes</FONT>
-<BR>&nbsp;&nbsp; thread_names); <FONT COLOR="#FF0000">// keep identifiers
-in thread_names</FONT>
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//keep the service handler registered with
-the acceptor.</FONT>
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-
-<P>void send_message1(void){
-<BR>&nbsp;<FONT COLOR="#FF0000">//Send message type 1</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t)Sending message >>"));
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Send the data to the remote peer</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Sent message1"));
-<BR>&nbsp;peer().send_n("Message1",LENGTH_MSG_1);
-<BR>&nbsp;} <FONT COLOR="#FF0000">//end send_message1</FONT>
-
-<P>int send_message2(void){
-<BR>&nbsp;<FONT COLOR="#FF0000">//Send message type 1</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t)Sending message >>"));
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Send the data to the remote peer</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Sent Message2"));
-<BR>&nbsp;peer().send_n("Message2",LENGTH_MSG_2);
-<BR>&nbsp;}<FONT COLOR="#FF0000">//end send_message_2</FONT>
-<BR>&nbsp;
-<BR>int svc(void){
-<BR>&nbsp;ACE_DEBUG( (LM_DEBUG,?(%t) Svc thread \n?));
-<BR>&nbsp;
-<BR>&nbsp;if(ACE_Thread::self()== thread_names[0])
-<BR>&nbsp; while(1) send_message1(); <FONT COLOR="#FF0000">//send message
-1s forever</FONT>
-<BR>&nbsp;else
-<BR>&nbsp; while(1) send_message2(); <FONT COLOR="#FF0000">//send message
-2s forever</FONT>
-<BR>&nbsp;return 0; <FONT COLOR="#FF0000">// keep the compiler happy.</FONT>
-<BR>}
-<BR>&nbsp;
-<BR>int handle_input(ACE_HANDLE){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,?(%t) handle_input ::?));
-<BR>&nbsp;char* data= new char[13];
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//Check if peer aborted the connection</FONT>
-<BR>&nbsp;if(peer().recv_n(data,12)==0){
-<BR>&nbsp; ACE_OS::printf("Peer probably aborted connection\n");
-<BR>&nbsp; return -1; <FONT COLOR="#FF0000">//de-register from the Reactor.</FONT>
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//Show what you got..</FONT>
-<BR>&nbsp;ACE_OS::printf("&lt;&lt; %s\n",data);
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//keep yourself registered</FONT>
-<BR>&nbsp;return 0;
-<BR>&nbsp;
-<BR>&nbsp;}
-<BR>};
-
-<P>int main(int argc, char* argv[]){
-<BR>&nbsp;ACE_INET_Addr addr(10101);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Thread: (%t) main\n"));
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Prepare to accept connections</FONT>
-<BR>&nbsp;Acceptor myacceptor(addr,Reactor::instance());
-
-<P><FONT COLOR="#FF0000">&nbsp;// wait for something to happen.</FONT>
-<BR>&nbsp;while(1)
-<BR>&nbsp; Reactor::instance()->handle_events();
-<BR>&nbsp;
-<BR>&nbsp;return 0;
-<BR>}
-
-<P>&nbsp;<A HREF="ex07.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_6/ex07.html b/docs/tutorials/Chap_6/ex07.html
deleted file mode 100644
index 60053887cf5..00000000000
--- a/docs/tutorials/Chap_6/ex07.html
+++ /dev/null
@@ -1,174 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 7</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Acceptor/Connector"&nbsp;
-(Connection Initialization)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 7</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Svc_Handler.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Synch.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include </FONT><FONT COLOR="#006600">"ace/Thread.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">NETWORK_SPEED
-3</FONT>
-<BR>class MyServiceHandler;<FONT COLOR="#FF0000"> //forward declaration</FONT>
-<BR>typedef ACE_Singleton&lt;ACE_Reactor,ACE_Null_Mutex> Reactor;
-<BR>typedef ACE_Acceptor&lt;MyServiceHandler,ACE_SOCK_ACCEPTOR> Acceptor;
-
-<P>class MyServiceHandler:
-<BR>public ACE_Svc_Handler&lt;ACE_SOCK_STREAM,ACE_MT_SYNCH>{
-<BR><FONT COLOR="#FF0000">// The message sender and creator threads are
-handled here.</FONT>
-<BR>ACE_thread_t thread_names[2];
-
-<P>public:
-<BR>int open(void*){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG, "Acceptor: received new connection \n"));
-
-<P><FONT COLOR="#FF0000">&nbsp;//Register with the reactor to remember
-this handler..</FONT>
-<BR>&nbsp;Reactor::instance() ->register_handler(this,ACE_Event_Handler::READ_MASK);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Acceptor: ThreadID:(%t) open\n"));
-
-<P><FONT COLOR="#CC0000">&nbsp;//Create two new threads to create and send
-messages to the</FONT>
-<BR><FONT COLOR="#CC0000">&nbsp;//remote machine.</FONT>
-<BR>&nbsp;activate(THR_NEW_LWP,
-<BR>&nbsp;&nbsp; 2, <FONT COLOR="#FF0000">//2 new threads</FONT>
-<BR>&nbsp;&nbsp; 0,
-<BR>&nbsp;&nbsp; ACE_DEFAULT_THREAD_PRIORITY,
-<BR>&nbsp;&nbsp; -1,
-<BR>&nbsp;&nbsp; this,
-<BR>&nbsp;&nbsp; 0,
-<BR>&nbsp;&nbsp; 0,
-<BR>&nbsp;&nbsp; 0,
-<BR>&nbsp;&nbsp; thread_names); <FONT COLOR="#FF0000">// identifiers in
-thread_handles</FONT>
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//keep the service handler registered with
-the acceptor.</FONT>
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-
-<P>void send_message(void){
-<BR><FONT COLOR="#FF0000">&nbsp;//Dequeue the message and send it off</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t)Sending message >>"));
-
-<P><FONT COLOR="#FF0000">&nbsp;//dequeue the message from the message queue</FONT>
-<BR>&nbsp;ACE_Message_Block *mb;
-<BR>&nbsp;ACE_ASSERT(this->getq(mb)!=-1);
-<BR>&nbsp;int length=mb->length();
-<BR>&nbsp;char *data =mb->rd_ptr();
-
-<P>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//Send the data to the remote peer</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"%s \n",data,length));
-<BR>&nbsp;peer().send_n(data,length);
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Simulate very SLOW network.</FONT>
-<BR>&nbsp;ACE_OS::sleep(NETWORK_SPEED);
-
-<P><FONT COLOR="#FF0000">&nbsp;//release the message block</FONT>
-<BR>&nbsp;mb->release();
-<BR>&nbsp;} <FONT COLOR="#FF0000">//end send_message</FONT>
-
-<P>int construct_message(void){
-<BR><FONT COLOR="#FF0000">&nbsp;// A very fast message creation algorithm</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// would lead to the need for queuing messages..</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// here. These messages are created and
-then sent</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// using the SLOW send_message() routine
-which is</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// running in a different thread so that
-the message</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//construction thread isn?t blocked.</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t)Constructing message >> "));
-
-<P>&nbsp; <FONT COLOR="#FF0000">// Create a new message to send</FONT>
-<BR>&nbsp;ACE_Message_Block *mb;
-<BR>&nbsp;char *data="Hello Connector";
-<BR>&nbsp;ACE_NEW_RETURN (mb,ACE_Message_Block (16,<FONT COLOR="#FF0000">//Message
-16 bytes long</FONT>
-<BR>&nbsp;&nbsp; ACE_Message_Block::MB_DATA,<FONT COLOR="#FF0000">//Set
-header to data</FONT>
-<BR>&nbsp;&nbsp; 0,<FONT COLOR="#FF0000">//No continuations</FONT>.
-<BR>&nbsp;&nbsp; data<FONT COLOR="#FF0000">//The data we want to send</FONT>
-<BR>&nbsp;&nbsp; ), 0);
-<BR>&nbsp;mb->wr_ptr(16); <FONT COLOR="#FF0000">//Set the write pointer.</FONT>
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">// Enqueue the message into the message
-queue</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// we COULD have done a timed wait for
-enqueuing in case</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// someone else holds the lock to the queue
-so it doesn?t block</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//forever..</FONT>
-<BR>&nbsp;ACE_ASSERT(this->putq(mb)!=-1);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Enqueued msg successfully\n"));
-<BR>}
-<BR>&nbsp;
-<BR>int svc(void){
-<BR>&nbsp;ACE_DEBUG( (LM_DEBUG,?(%t) Svc thread \n?));
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//call the message creator thread</FONT>
-<BR>&nbsp;if(ACE_Thread::self()== thread_names[0])
-<BR>&nbsp; while(1) construct_message(); <FONT COLOR="#FF0000">//create
-messages forever</FONT>
-<BR>&nbsp;else
-<BR>&nbsp; while(1) send_message(); <FONT COLOR="#FF0000">//send messages
-forever</FONT>
-<BR>&nbsp;return 0; <FONT COLOR="#FF0000">// keep the compiler happy.</FONT>
-<BR>}
-<BR>&nbsp;
-<BR>int handle_input(ACE_HANDLE){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t) handle_input "));
-<BR>&nbsp;char* data= new char[13];
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//Check if peer aborted the connection</FONT>
-<BR>&nbsp;if(peer().recv_n(data,12)==0){
-<BR>&nbsp; ACE_OS::printf("Peer probably aborted connection");
-<BR>&nbsp; return -1; <FONT COLOR="#FF0000">//de-register from the Reactor.</FONT>
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//Show what you got..</FONT>
-<BR>&nbsp;ACE_OS::printf("&lt;&lt; %s\n",data);
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//keep yourself registered</FONT>
-<BR>&nbsp;return 0;
-<BR>&nbsp;
-<BR>&nbsp;}
-<BR>};
-
-<P>int main(int argc, char* argv[]){
-<BR>&nbsp;ACE_INET_Addr addr(10101);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Thread: (%t) main\n"));
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Prepare to accept connections</FONT>
-<BR>&nbsp;Acceptor myacceptor(addr,Reactor::instance());
-
-<P><FONT COLOR="#FF0000">&nbsp;// wait for something to happen.</FONT>
-<BR>&nbsp;while(1)
-<BR>&nbsp; Reactor::instance()->handle_events();
-<BR>&nbsp;
-<BR>&nbsp;return 0;
-<BR>}
-
-<P>&nbsp;<A HREF="ex08.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_6/ex08.html b/docs/tutorials/Chap_6/ex08.html
deleted file mode 100644
index 5e044e9e0a4..00000000000
--- a/docs/tutorials/Chap_6/ex08.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 8</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Acceptor/Connector"&nbsp;
-(Connection Initialization)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 8</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Svc_Handler.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT><FONT COLOR="#663366"> PORT_NUM
-10101</FONT>
-<BR><FONT COLOR="#000099">#define</FONT><FONT COLOR="#663366"> DATA_SIZE
-12</FONT><FONT COLOR="#FF0000"></FONT>
-
-<P><FONT COLOR="#FF0000">//forward declaration</FONT>
-<BR>class My_Svc_Handler;<FONT COLOR="#FF0000"></FONT>
-
-<P><FONT COLOR="#FF0000">//instantiate a strategy acceptor</FONT>
-<BR>typedef ACE_Strategy_Acceptor&lt;My_Svc_Handler,ACE_SOCK_ACCEPTOR>
-MyAcceptor;<FONT COLOR="#FF0000"></FONT>
-
-<P><FONT COLOR="#FF0000">//instantiate a concurrency strategy</FONT>
-<BR>typedef ACE_Process_Strategy&lt;My_Svc_Handler> Concurrency_Strategy;
-
-<P><FONT COLOR="#FF0000">// Define the Service Handler</FONT>
-<BR>class My_Svc_Handler:
-<BR>&nbsp;public ACE_Svc_Handler &lt;ACE_SOCK_STREAM,ACE_NULL_SYNCH>{
-<BR>private:
-<BR>&nbsp;&nbsp;&nbsp; char* data;
-<BR>public:
-<BR>&nbsp;&nbsp;&nbsp; My_Svc_Handler(){
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data= new char[DATA_SIZE];
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
-<BR>&nbsp;&nbsp;&nbsp; My_Svc_Handler(ACE_Thread_Manager* tm){
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data= new char[DATA_SIZE];
-<BR>&nbsp;&nbsp;&nbsp; }
-<BR>&nbsp;&nbsp;&nbsp; int open(void*){
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_DEBUG((LM_DEBUG,"Connection
-established\n"));
-<BR><FONT COLOR="#FF0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-//Register with the reactor</FONT>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_Reactor::instance()->register_handler(this,
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACE_Event_Handler::READ_MASK);
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; }
-
-<P>&nbsp;&nbsp;&nbsp; int handle_input(ACE_HANDLE){
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; peer().recv_n(data,DATA_SIZE);
-<BR>&nbsp;&nbsp;&nbsp;&nbsp; ACE_OS::printf(?&lt;&lt; %s\n?,data);
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;&nbsp;&nbsp; // keep yourself registered
-with the reactor</FONT>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;
-<BR>&nbsp;&nbsp;&nbsp; }
-<BR>};
-
-<P>int main(int argc, char* argv[]){
-<BR>&nbsp;ACE_INET_Addr addr(PORT_NUM);
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Concurrency Strategy</FONT>
-<BR>&nbsp;Concurrency_Strategy my_con_strat;
-
-<P><FONT COLOR="#FF0000">//Instantiate the acceptor</FONT>
-<BR>&nbsp;MyAcceptor acceptor(addr, <FONT COLOR="#FF0000">//address to
-accept on</FONT>
-<BR>&nbsp; ACE_Reactor::instance(), <FONT COLOR="#FF0000">//the reactor
-to use</FONT>
-<BR>&nbsp; 0, <FONT COLOR="#FF0000">// dont care about creation strategy</FONT>
-<BR>&nbsp; 0, <FONT COLOR="#FF0000">// dont care about connection estb.
-strategy</FONT>
-<BR>&nbsp; &amp;my_con_strat);<FONT COLOR="#FF0000"> // use our new process
-concurrency strategy</FONT>
-
-<P>while(1)<FONT COLOR="#FF0000"> // Start the reactors event loop</FONT>
-<BR>&nbsp;ACE_Reactor::instance()->handle_events();
-<BR>}
-
-<P>&nbsp;<A HREF="ex09.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_6/ex09.html b/docs/tutorials/Chap_6/ex09.html
deleted file mode 100644
index e280f2371c0..00000000000
--- a/docs/tutorials/Chap_6/ex09.html
+++ /dev/null
@@ -1,212 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 9</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Acceptor/Connector"&nbsp;
-(Connection Initialization)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 9</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#663366"> </FONT><FONT COLOR="#006600">"ace/Svc_Handler.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Connector.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Synch.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Connector.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/INET_Addr.h"</FONT>
-
-<P><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">PORT_NUM
-10101</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">DATA_SIZE
-16</FONT>
-
-<P><FONT COLOR="#FF0000">//forward declaration</FONT>
-<BR>class My_Svc_Handler;
-<BR><FONT COLOR="#FF0000">//Function prototype</FONT>
-<BR>static void make_connections(void *arg);
-
-<P><FONT COLOR="#FF0000">// Template specializations for the hashing function
-for the</FONT>
-<BR><FONT COLOR="#FF0000">// hash_map which is used by the cache. The cache
-is used internally by the</FONT>
-<BR><FONT COLOR="#FF0000">// Cached Connection Strategy . Here we use ACE_Hash_Addr</FONT>
-<BR><FONT COLOR="#FF0000">// as our external identifier. This utility class
-has already</FONT>
-<BR><FONT COLOR="#FF0000">// overloaded the == operator and the hash()
-method. (The</FONT>
-<BR><FONT COLOR="#FF0000">// hashing function). The hash() method delgates
-the work to</FONT>
-<BR><FONT COLOR="#FF0000">// hash_i() and we use the IP address and port
-to get a</FONT>
-<BR><FONT COLOR="#FF0000">// a unique integer hash value.</FONT>
-<BR>size_t
-<BR>ACE_Hash_Addr&lt;ACE_INET_Addr>::hash_i (const ACE_INET_Addr &amp;addr)
-const
-<BR>{
-<BR>&nbsp; return addr.get_ip_address () + addr.get_port_number ();
-<BR>}
-
-<P><FONT COLOR="#FF0000">//instantiate a strategy acceptor</FONT>
-<BR>typedef ACE_Strategy_Connector&lt;My_Svc_Handler,ACE_SOCK_CONNECTOR>
-<BR>STRATEGY_CONNECTOR;
-
-<P><FONT COLOR="#FF0000">//Instantiate the Creation Strategy</FONT>
-<BR>typedef ACE_NOOP_Creation_Strategy&lt;My_Svc_Handler>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL_CREATION_STRATEGY;
-<BR><FONT COLOR="#FF0000">//Instantiate the Concurrency Strategy</FONT>
-<BR>typedef ACE_NOOP_Concurrency_Strategy&lt;My_Svc_Handler>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NULL_CONCURRENCY_STRATEGY;
-<BR><FONT COLOR="#FF0000">//Instantiate the Connection Strategy</FONT>
-<BR>typedef ACE_Cached_Connect_Strategy&lt;My_Svc_Handler,
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-ACE_SOCK_CONNECTOR,
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-ACE_SYNCH_RW_MUTEX>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CACHED_CONNECT_STRATEGY;
-<BR>&nbsp;
-<BR>class My_Svc_Handler:
-<BR>public ACE_Svc_Handler &lt;ACE_SOCK_STREAM,ACE_MT_SYNCH>{
-<BR>private:
-<BR>char* data;
-
-<P>public:
-<BR>My_Svc_Handler(){
-<BR>data= new char[DATA_SIZE];
-<BR>&nbsp;}
-<BR>My_Svc_Handler(ACE_Thread_Manager* tm){
-<BR>data= new char[DATA_SIZE];
-<BR>&nbsp;}
-<BR><FONT COLOR="#FF0000">//Called before the service handler is recycled..</FONT>
-<BR>int
-<BR>recycle (void *a=0){
-<BR>&nbsp;&nbsp; ACE_DEBUG ((LM_DEBUG,
-<BR>&nbsp;&nbsp;&nbsp; "(%P|%t) recycling Svc_Handler %d with handle %d\n",
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-this, this->peer ().get_handle ()));
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-
-<P>int open(void*){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t)Connection established \n"));
-<BR>&nbsp;
-<BR>&nbsp;
-<BR>&nbsp;
-
-<P><FONT COLOR="#FF0000">&nbsp;//Register the service handler with the
-reactor</FONT>
-<BR>&nbsp;ACE_Reactor::instance() ->register_handler(this,ACE_Event_Handler::READ_MASK);
-<BR>&nbsp;activate(THR_NEW_LWP|THR_DETACHED);
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-
-<P>int handle_input(ACE_HANDLE){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Got input in thread: (%t) \n"));
-<BR>&nbsp;peer().recv_n(data,DATA_SIZE);
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"&lt;&lt; %s\n",data));
-
-<P>&nbsp;<FONT COLOR="#FF0000">//keep yourself registered with the reactor</FONT>
-<BR>&nbsp;return 0;
-<BR>}
-
-<P>int svc(void){
-<BR><FONT COLOR="#FF0000">&nbsp;//send a few messages and then mark connection
-as idle so that it can be recycled later.</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Started the service routine \n"));
-
-<P>&nbsp;for(int i=0;i&lt;3;i++){
-<BR>&nbsp; ACE_DEBUG((LM_DEBUG,"(%t)>>Hello World\n"));
-<BR>&nbsp; ACE_OS::fflush(stdout);
-<BR>&nbsp; peer().send_n("Hello World",sizeof("Hello World"));
-<BR>&nbsp; }
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Mark the service handler as being idle
-now and let the other threads reuse this connection</FONT>
-<BR>&nbsp;this->idle(1);
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Wait for the thread to die</FONT>
-<BR>&nbsp;this->thr_mgr()->wait();
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-<BR>};
-<BR>ACE_INET_Addr *addr;
-
-<P>int main(int argc, char* argv[]){
-<BR>&nbsp;addr= new ACE_INET_Addr(PORT_NUM,argv[1]);
-<BR><FONT COLOR="#FF0000">&nbsp;//Creation Strategy</FONT>
-<BR>&nbsp;NULL_CREATION_STRATEGY creation_strategy;
-
-<P><FONT COLOR="#FF0000">&nbsp;//Concurrency Strategy</FONT>
-<BR>&nbsp;&nbsp; NULL_CONCURRENCY_STRATEGY concurrency_strategy;
-
-<P><FONT COLOR="#FF0000">&nbsp;//Connection Strategy</FONT>
-<BR>&nbsp;CACHED_CONNECT_STRATEGY caching_connect_strategy;
-<BR>&nbsp;
-
-<P><FONT COLOR="#FF0000">&nbsp;//instantiate the connector</FONT>
-<BR>&nbsp;STRATEGY_CONNECTOR connector(
-<BR>&nbsp;&nbsp; ACE_Reactor::instance(),<FONT COLOR="#FF0000"> //the reactor
-to use</FONT>
-<BR>&nbsp;&nbsp; &amp;creation_strategy,
-<BR>&nbsp;&nbsp; &amp;caching_connect_strategy,
-<BR>&nbsp;&nbsp; &amp;concurrency_strategy);
-<BR><FONT COLOR="#FF0000">&nbsp;//Use the thread manager to&nbsp; spawn
-a single thread to</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//connect multiple times passing it the
-address</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//of the strategy connector</FONT>
-<BR>&nbsp;if(ACE_Thread_Manager::instance()->spawn(
-<BR>&nbsp;&nbsp;&nbsp; (ACE_THR_FUNC) make_connections,
-<BR>&nbsp;&nbsp;&nbsp; (void *) &amp;connector,
-<BR>&nbsp;&nbsp;&nbsp; THR_NEW_LWP) == -1)
-<BR>&nbsp;ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n%a", "client thread spawn
-failed"));
-
-<P>while(1) /* Start the reactor?s event loop */
-<BR>&nbsp;ACE_Reactor::instance()->handle_events();
-<BR>}
-
-<P><FONT COLOR="#FF0000">//Connection establishment function, tries to
-establish connections</FONT>
-<BR><FONT COLOR="#FF0000">//to the same server again and re-uses the connections
-from the</FONT>
-<BR><FONT COLOR="#FF0000">//cache</FONT>
-<BR>void make_connections(void *arg){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"(%t)Prepared to connect \n"));
-<BR>&nbsp;STRATEGY_CONNECTOR *connector= (STRATEGY_CONNECTOR*) arg;
-<BR>&nbsp;for (int i = 0; i &lt; 10; i++){
-<BR>&nbsp;My_Svc_Handler *svc_handler = 0;
-<BR>&nbsp;
-
-<P>&nbsp;<FONT COLOR="#FF0000">// Perform a blocking connect to the server
-using the Strategy</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// Connector with a connection caching
-strategy.&nbsp; Since we are</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// connecting to the same &lt;server_addr>
-these calls will return the</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;// same dynamically allocated &lt;Svc_Handler>
-for each &lt;connect> call.</FONT>
-<BR>&nbsp;if (connector->connect (svc_handler, *addr) == -1){
-<BR>&nbsp; ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n", "connection failed\n"));
-<BR>&nbsp; return;
-<BR>&nbsp; }
-
-<P><FONT COLOR="#FF0000">&nbsp;// Rest for a few seconds so that the connection
-has been freed up</FONT>
-<BR>&nbsp;ACE_OS::sleep (5);
-<BR>&nbsp;}
-<BR>}
-<BR>&nbsp;
-<BR>&nbsp;<A HREF="ex10.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_6/ex10.html b/docs/tutorials/Chap_6/ex10.html
deleted file mode 100644
index 5d57ca7d99e..00000000000
--- a/docs/tutorials/Chap_6/ex10.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 10</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Acceptor/Connector"&nbsp;
-(Connection Initialization)</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 10</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Reactor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Svc_Handler.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Synch.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/SOCK_Acceptor.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">PORT_NUM
-10101</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">DATA_SIZE
-12</FONT>
-
-<P><FONT COLOR="#FF0000">//forward declaration</FONT>
-<BR>class My_Svc_Handler;
-
-<P><FONT COLOR="#FF0000">//Create the Acceptor class</FONT>
-<BR>typedef ACE_Acceptor&lt;My_Event_Handler,ACE_SOCK_ACCEPTOR>
-<BR>MyAcceptor;
-
-<P><FONT COLOR="#FF0000">//Create an event handler similar to as seen in
-example 2.</FONT>
-<BR><FONT COLOR="#FF0000">//We have to overload the get_handle() method
-and write the peer()</FONT>
-<BR><FONT COLOR="#FF0000">//method. We also provide the data member peer_
-as the underlying</FONT>
-<BR><FONT COLOR="#FF0000">//stream which is used.</FONT>
-<BR>class My_Event_Handler:
-<BR>&nbsp;public ACE_Event_Handler{
-<BR>private:
-<BR>char* data;
-<BR><FONT COLOR="#FF0000">//Add a new attribute for the underlying stream
-which will be used by the Event Handler</FONT>
-<BR>ACE_SOCK_Stream peer_;
-<BR>public:
-<BR>My_Event_Handler(){
-<BR>&nbsp;data= new char[DATA_SIZE];
-<BR>&nbsp;}
-
-<P>int
-<BR>open(void*){
-<BR>&nbsp;ACE_DEBUG((LM_DEBUG,"Connection established\n"));
-<BR><FONT COLOR="#FF0000">&nbsp;//Register the event handler with the reactor</FONT>
-<BR>&nbsp;ACE_Reactor::instance()->register_handler(this, ACE_Event_Handler::READ_MASK);
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-
-<P>int
-<BR>handle_input(ACE_HANDLE){
-<BR>&nbsp;<FONT COLOR="#FF0000">// After using the peer() method of our
-ACE_Event_Handler to obtain a</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//reference to the underlying stream of
-the service handler class we</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//call recv_n() on it to read the data
-which has been received. This</FONT>
-<BR><FONT COLOR="#FF0000">&nbsp;//data is stored in the data array and
-then printed out</FONT>
-<BR>&nbsp;peer().recv_n(data,DATA_SIZE);
-<BR>&nbsp;ACE_OS::printf("&lt;&lt; %s\n",data);
-
-<P>&nbsp;<FONT COLOR="#FF0000">// keep yourself registered with the reactor</FONT>
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">// new method which returns the handle to the
-reactor when it asks for it.</FONT>
-<BR>ACE_HANDLE
-<BR>get_handle(void) const{
-<BR>&nbsp;return this->peer_.get_handle();
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//new method which returns a reference to the
-peer stream</FONT>
-<BR>ACE_SOCK_Stream &amp;
-<BR>peer(void) const{
-<BR>&nbsp;return (ACE_SOCK_Stream &amp;) this->peer_;
-<BR>&nbsp;}
-<BR>};
-
-<P>int main(int argc, char* argv[]){
-<BR>&nbsp;ACE_INET_Addr addr(PORT_NUM);
-<BR>&nbsp;<FONT COLOR="#FF0000">//create the acceptor</FONT>
-<BR>&nbsp;MyAcceptor acceptor(addr,<FONT COLOR="#FF0000"> //address to
-accept on</FONT>
-<BR>&nbsp; ACE_Reactor::instance()); <FONT COLOR="#FF0000">//the reactor
-to use</FONT>
-<BR>while(1)<FONT COLOR="#FF0000"> // Start the reactors event loop</FONT>
-<BR>&nbsp;ACE_Reactor::instance()->handle_events();
-<BR>}
-<BR>&nbsp;
-<BR>&nbsp;<A HREF="../Chap_7/ex01.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_7/Chap_7.zip b/docs/tutorials/Chap_7/Chap_7.zip
deleted file mode 100644
index 0073e63d504..00000000000
--- a/docs/tutorials/Chap_7/Chap_7.zip
+++ /dev/null
Binary files differ
diff --git a/docs/tutorials/Chap_7/ex01.html b/docs/tutorials/Chap_7/ex01.html
deleted file mode 100644
index 988c876bf39..00000000000
--- a/docs/tutorials/Chap_7/ex01.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 1</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Message Queue"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 1</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> "<FONT COLOR="#006600">ace/Message_Queue.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> <FONT COLOR="#006600">"ace/Get_Opt.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">SIZE_BLOCK
-1</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">NO_MSGS
-10</FONT>
-
-<P>class QTest{
-<BR>public:
-<BR>QTest():no_msgs_(NO_MSGS){
-<BR>&nbsp;<FONT COLOR="#FF0000">//First create a message queue of default
-size.</FONT>
-<BR>&nbsp;if(!(this->mq_=new ACE_Message_Queue&lt;ACE_NULL_SYNCH> ()))
-<BR>&nbsp; ACE_DEBUG((LM_ERROR,"Error in message queue initialization \n"));
-<BR>&nbsp;}
-<BR>&nbsp;
-<BR>int start_test(){
-<BR>&nbsp; for(int i=0; i&lt;no_msgs_;i++){
-<BR>&nbsp;<FONT COLOR="#FF0000">//create a new message block of size 1</FONT>
-<BR>&nbsp;ACE_Message_Block *mb= new ACE_Message_Block(SIZE_BLOCK);<FONT COLOR="#FF0000"></FONT>
-
-<P><FONT COLOR="#FF0000">&nbsp;//Insert data into the message block using
-the rd_ptr</FONT>
-<BR>&nbsp;*mb->wr_ptr()=i;
-
-<P><FONT COLOR="#FF0000">&nbsp;//Be careful to advance the wr_ptr</FONT>
-<BR>&nbsp;mb->wr_ptr(1);
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Enqueue the message block onto the message
-queue</FONT>
-<BR>&nbsp;if(this->mq_->enqueue_prio(mb)==-1){
-<BR>&nbsp; ACE_DEBUG((LM_ERROR,"\nCould not enqueue on to mq!!\n"));
-<BR>&nbsp; return -1;
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"EQd data: %d\n",*mb->rd_ptr()));
-<BR>&nbsp;&nbsp; } <FONT COLOR="#FF0000">//end for</FONT>
-
-<P><FONT COLOR="#FF0000">//Now dequeue all the messages</FONT>
-<BR>this->dequeue_all();
-<BR>return 0;
-<BR>&nbsp;}
-
-<P>void dequeue_all(){
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"\n\nBeginning DQ \n"));
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"No. of Messages on Q:%d Bytes on Q:%d \n",mq_->message_count(),
-mq_->message_bytes()));
-<BR>&nbsp;ACE_Message_Block *mb;
-
-<P>&nbsp;<FONT COLOR="#FF0000">//dequeue the head of the message queue
-until no more messages are left</FONT>
-<BR>&nbsp;for(int i=0;i&lt;no_msgs_;i++){
-<BR>&nbsp; mq_->dequeue_head(mb);
-<BR>&nbsp; ACE_DEBUG((LM_INFO,"DQd data %d\n",*mb->rd_ptr()));
-<BR>&nbsp; }
-<BR>&nbsp;}
-<BR>private:
-<BR>&nbsp;ACE_Message_Queue&lt;ACE_NULL_SYNCH> *mq_;
-<BR>&nbsp;int no_msgs_;
-<BR>};
-<BR>&nbsp;
-
-<P>int main(int argc, char* argv[]){
-<BR>&nbsp;QTest test;
-<BR>&nbsp;if(test.start_test()&lt;0)
-<BR>&nbsp; ACE_DEBUG((LM_ERROR,"Program failure \n"));
-<BR>}
-
-<P>&nbsp;<A HREF="ex02.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_7/ex02.html b/docs/tutorials/Chap_7/ex02.html
deleted file mode 100644
index 65b148fde6e..00000000000
--- a/docs/tutorials/Chap_7/ex02.html
+++ /dev/null
@@ -1,166 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 2</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Message Queue"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 2</FONT><FONT COLOR="#000099"></FONT>
-
-<P><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Message_Queue.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT><FONT COLOR="#006600"> "ace/Get_Opt.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> "<FONT COLOR="#006600">ace/Malloc_T.h"</FONT>
-<BR><FONT COLOR="#000099">#define</FONT> <FONT COLOR="#663366">SIZE_BLOCK
-1</FONT>
-
-<P>class Args{
-<BR>public:
-<BR>Args(int argc, char*argv[],int&amp; no_msgs, ACE_Message_Queue&lt;ACE_NULL_SYNCH>*
-&amp;mq){
-<BR>&nbsp;ACE_Get_Opt get_opts(argc,argv,"h:l:t:n:xsd");
-<BR>&nbsp;while((opt=get_opts())!=-1)
-<BR>&nbsp; switch(opt){
-<BR>&nbsp; case 'n':
-<BR>&nbsp;&nbsp;<FONT COLOR="#FF0000"> //set the number of messages we
-wish to enqueue and dequeue</FONT>
-<BR>&nbsp;&nbsp; no_msgs=ACE_OS::atoi(get_opts.optarg);
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_INFO,"Number of Messages %d \n",no_msgs));
-<BR>&nbsp;&nbsp; break;
-
-<P>&nbsp; case 'h':
-<BR>&nbsp;&nbsp; <FONT COLOR="#FF0000">//set the high water mark</FONT>
-<BR>&nbsp;&nbsp; hwm=ACE_OS::atoi(get_opts.optarg);
-<BR>&nbsp;&nbsp; mq->high_water_mark(hwm);
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_INFO,"High Water Mark %d msgs \n",hwm));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; case 'l':
-<BR>&nbsp;&nbsp;<FONT COLOR="#FF0000"> //set the low water mark</FONT>
-<BR>&nbsp;&nbsp; lwm=ACE_OS::atoi(get_opts.optarg);
-<BR>&nbsp;&nbsp; mq->low_water_mark(lwm);
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_INFO,"Low Water Mark %d msgs \n",lwm));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; default:
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_ERROR, "Usage -n&lt;no. messages> -h&lt;hwm>
--l&lt;lwm>\n"));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; }
-<BR>&nbsp;}
-
-<P>private:
-<BR>&nbsp;int opt;
-<BR>&nbsp;int hwm;
-<BR>&nbsp;int lwm;
-<BR>};
-<BR>&nbsp;
-<BR>&nbsp;
-
-<P>class QTest{
-<BR>public:
-<BR>QTest(int argc, char*argv[]){
-<BR><FONT COLOR="#FF0000">&nbsp;//First create a message queue of default
-size.</FONT>
-<BR>&nbsp;if(!(this->mq_=new ACE_Message_Queue&lt;ACE_NULL_SYNCH> ()))
-<BR>&nbsp; ACE_DEBUG((LM_ERROR,"Error in message queue initialization \n"));
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//Use the arguments to set the water marks
-and the no of messages</FONT>
-<BR>&nbsp;args_ = new Args(argc,argv,no_msgs_,mq_);
-<BR>&nbsp;}
-<BR>int start_test(){
-<BR>&nbsp; for(int i=0; i&lt;no_msgs_;i++){
-<BR>&nbsp;<FONT COLOR="#FF0000">//Create a new message block of data buffer
-size 1</FONT>
-<BR>&nbsp;ACE_Message_Block * mb= new ACE_Message_Block(SIZE_BLOCK);
-<BR>&nbsp;
-<BR><FONT COLOR="#FF0000">&nbsp;//Insert data into the message block using
-the rd_ptr</FONT>
-<BR>&nbsp;*mb->wr_ptr()=i;
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//Be careful to advance the wr_ptr</FONT>
-<BR>&nbsp;mb->wr_ptr(1);
-
-<P><FONT COLOR="#FF0000">&nbsp;//Enqueue the message block onto the message
-queue</FONT>
-<BR>&nbsp;if(this->mq_->enqueue_prio(mb)==-1){
-<BR>&nbsp; ACE_DEBUG((LM_ERROR,"\nCould not enqueue on to mq!!\n"));
-<BR>&nbsp; return -1;
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"EQd data: %d\n",*mb->rd_ptr()));
-<BR>&nbsp; }
-<BR>&nbsp;<FONT COLOR="#FF0000">//Use the iterators to read</FONT>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this->read_all();
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Dequeue all the messages</FONT>
-<BR>&nbsp;this->dequeue_all();
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;
-<BR>&nbsp;}
-
-<P>void read_all(){
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"No. of Messages on Q:%d Bytes on Q:%d \n",
-mq_->message_count(),mq_->message_bytes()));
-<BR>&nbsp;ACE_Message_Block *mb;
-
-<P>&nbsp;<FONT COLOR="#FF0000">//Use the forward iterator</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"\n\nBeginning Forward Read \n"));
-<BR>&nbsp;ACE_Message_Queue_Iterator&lt;ACE_NULL_SYNCH> mq_iter_(*mq_);
-<BR>&nbsp;while(mq_iter_.next(mb)){
-<BR>&nbsp; mq_iter_.advance();
-<BR>&nbsp; ACE_DEBUG((LM_INFO,"Read data %d\n",*mb->rd_ptr()));
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR>&nbsp;<FONT COLOR="#FF0000">//Use the reverse iterator</FONT>
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"\n\nBeginning Reverse Read \n"));
-<BR>&nbsp;ACE_Message_Queue_Reverse_Iterator&lt;ACE_NULL_SYNCH>
-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mq_rev_iter_(*mq_);
-<BR>&nbsp;while(mq_rev_iter_.next(mb)){
-<BR>&nbsp; mq_rev_iter_.advance();
-<BR>&nbsp; ACE_DEBUG((LM_INFO,"Read data %d\n",*mb->rd_ptr()));
-<BR>&nbsp; }
-<BR>&nbsp;
-<BR>&nbsp;}
-
-<P>void dequeue_all(){
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"\n\nBeginning DQ \n"));
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"No. of Messages on Q:%d Bytes on Q:%d \n",
-mq_->message_count(),mq_->message_bytes()));
-<BR>&nbsp;ACE_Message_Block *mb;
-
-<P><FONT COLOR="#FF0000">&nbsp;//dequeue the head of the message queue
-until no more messages are left</FONT>
-<BR>&nbsp;for(int i=0;i&lt;no_msgs_;i++){
-<BR>&nbsp; mq_->dequeue_head(mb);
-<BR>&nbsp; ACE_DEBUG((LM_INFO,"DQd data %d\n",*mb->rd_ptr()));
-<BR>&nbsp; }
-<BR>&nbsp;}
-
-<P>private:
-<BR>&nbsp;Args *args_;
-<BR>&nbsp;ACE_Message_Queue&lt;ACE_NULL_SYNCH> *mq_;
-<BR>&nbsp;int no_msgs_;
-<BR>};
-<BR>&nbsp;
-<BR>&nbsp;
-
-<P>int main(int argc, char* argv[]){
-<BR>&nbsp;QTest test(argc,argv);
-<BR>&nbsp;if(test.start_test()&lt;0)
-<BR>&nbsp; ACE_DEBUG((LM_ERROR,"Program failure \n"));
-<BR>&nbsp;
-<BR>}
-
-<P>&nbsp;<A HREF="ex03.html">Next Example</A>
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Chap_7/ex03.html b/docs/tutorials/Chap_7/ex03.html
deleted file mode 100644
index 71ae5e8a7a8..00000000000
--- a/docs/tutorials/Chap_7/ex03.html
+++ /dev/null
@@ -1,159 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="Author" CONTENT="Ambreen Ilyas">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
- <TITLE>Example 3</TITLE>
-</HEAD>
-<BODY>
-<FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-<BR><FONT COLOR="#CC0000">//// This example is from the ACE Programmers
-Guide.</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; Chapter:&nbsp; "The Message Queue"</FONT>
-<BR><FONT COLOR="#CC0000">//// For details please see the guide at</FONT>
-<BR><FONT COLOR="#CC0000">//// http://www.cs.wustl.edu/~schmidt/ACE.html</FONT>
-<BR><FONT COLOR="#CC0000">////&nbsp; AUTHOR: Umar Syyid (usyyid@hns.com)</FONT>
-<BR><FONT COLOR="#CC0000">//// and Ambreen Ilyas (ambreen@bitsmart.com)</FONT>
-<BR><FONT COLOR="#CC0000">/////////////////////////////////////////////////////////////////////////////////////////////////////////////</FONT>
-
-<P><FONT COLOR="#CC0000">//Example 3</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> "<FONT COLOR="#006600">ace/Message_Queue.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> "<FONT COLOR="#006600">ace/Get_Opt.h"</FONT>
-<BR><FONT COLOR="#000099">#include</FONT> "<FONT COLOR="#006600">ace/OS.h"</FONT>
-
-<P>class Args{
-<BR>public:
-<BR>Args(int argc, char*argv[],int&amp; no_msgs, int&amp; time,ACE_Message_Queue&lt;ACE_NULL_SYNCH>*
-&amp;mq){
-<BR>&nbsp;ACE_Get_Opt get_opts(argc,argv,"h:l:t:n:xsd");
-<BR>&nbsp;while((opt=get_opts())!=-1)
-<BR>&nbsp; switch(opt){
-<BR>&nbsp; case 't':
-<BR>&nbsp;&nbsp; time=ACE_OS::atoi(get_opts.optarg);
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_INFO,"Time: %d \n",time));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; case 'n':
-<BR>&nbsp;&nbsp; no_msgs=ACE_OS::atoi(get_opts.optarg);
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_INFO,"Number of Messages %d \n",no_msgs));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; case 'x':
-<BR>&nbsp;&nbsp; mq=ACE_Message_Queue_Factory&lt;ACE_NULL_SYNCH>:: create_laxity_message_queue();
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_DEBUG,"Creating laxity q\n"));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; case 'd':
-<BR>&nbsp;&nbsp; mq=ACE_Message_Queue_Factory&lt;ACE_NULL_SYNCH>:: create_deadline_message_queue();
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_DEBUG,"Creating deadline q\n"));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; case 's':
-<BR>&nbsp;&nbsp; mq=ACE_Message_Queue_Factory&lt;ACE_NULL_SYNCH>:: create_static_message_queue();
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_DEBUG,"Creating static q\n"));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; case 'h':
-<BR>&nbsp;&nbsp; hwm=ACE_OS::atoi(get_opts.optarg);
-<BR>&nbsp;&nbsp; mq->high_water_mark(hwm);
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_INFO,"High Water Mark %d msgs \n",hwm));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; case 'l':
-<BR>&nbsp;&nbsp; lwm=ACE_OS::atoi(get_opts.optarg);
-<BR>&nbsp;&nbsp; mq->low_water_mark(lwm);
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_INFO,"Low Water Mark %d msgs \n",lwm));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; default:
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_ERROR,"Usage specify queue type\n"));
-<BR>&nbsp;&nbsp; break;
-<BR>&nbsp; }
-<BR>&nbsp;}
-
-<P>private:
-<BR>&nbsp;int opt;
-<BR>&nbsp;int hwm;
-<BR>&nbsp;int lwm;
-<BR>};
-<BR>&nbsp;
-<BR>&nbsp;
-
-<P>class QTest{
-<BR>public:
-<BR>QTest(int argc, char*argv[]){
-<BR>&nbsp;args_ = new Args(argc,argv,no_msgs_,time_,mq_);
-<BR>&nbsp;array_ =new ACE_Message_Block*[no_msgs_];
-<BR>&nbsp;}
-
-<P>int start_test(){
-<BR>&nbsp;for(int i=0; i&lt;no_msgs_;i++){
-<BR>&nbsp; ACE_NEW_RETURN (array_[i], ACE_Message_Block (1), -1);
-<BR>&nbsp; set_deadline(i);
-<BR>&nbsp; set_execution_time(i);
-<BR>&nbsp; enqueue(i);
-<BR>&nbsp; }
-
-<P>&nbsp;this->dequeue_all();
-<BR>&nbsp;return 0;
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Call the underlying ACE_Message_Block method
-msg_deadline_time() to set the deadline of the message.</FONT>
-<BR>void set_deadline(int msg_no){
-<BR>&nbsp;float temp=(float) time_/(msg_no+1);
-<BR>&nbsp;ACE_Time_Value tv;
-<BR>&nbsp;tv.set(temp);
-<BR>&nbsp;ACE_Time_Value deadline(ACE_OS::gettimeofday()+tv);
-<BR>&nbsp;array_[msg_no]->msg_deadline_time(deadline);
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"EQd with DLine %d:%d\n", deadline.sec(),deadline.usec()));
-<BR>&nbsp;}
-
-<P><FONT COLOR="#FF0000">//Call the underlying ACE_Message_Block method
-to set the execution time</FONT>
-<BR>void set_execution_time(int msg_no){
-<BR>&nbsp;float temp=(float) time_/10*msg_no;
-<BR>&nbsp;ACE_Time_Value tv;
-<BR>&nbsp;tv.set(temp);
-<BR>&nbsp;ACE_Time_Value xtime(ACE_OS::gettimeofday()+tv);
-<BR>&nbsp;array_[msg_no]->msg_execution_time (xtime);
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"Xtime %d:%d\n",xtime.sec(),xtime.usec()));
-<BR>&nbsp;}
-
-<P>void enqueue(int msg_no){
-<BR><FONT COLOR="#FF0000">&nbsp;//Set the value of data at the read position</FONT>
-<BR>&nbsp;*array_[msg_no]->rd_ptr()=msg_no;
-<BR><FONT COLOR="#FF0000">&nbsp;//Advance write pointer</FONT>
-<BR>&nbsp;array_[msg_no]->wr_ptr(1);
-<BR><FONT COLOR="#FF0000">&nbsp;//Enqueue on the message queue</FONT>
-<BR>&nbsp;if(mq_->enqueue_prio(array_[msg_no])==-1){
-<BR>&nbsp; ACE_DEBUG((LM_ERROR,"\nCould not enqueue on to mq!!\n"));
-<BR>&nbsp; return;
-<BR>&nbsp; }
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"Data %d\n",*array_[msg_no]->rd_ptr()));
-<BR>&nbsp;}
-
-<P>void dequeue_all(){
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"Beginning DQ \n"));
-<BR>&nbsp;ACE_DEBUG((LM_INFO,"No. of Messages on Q:%d Bytes on Q:%d \n",
-mq_->message_count(),mq_->message_bytes()));
-<BR>&nbsp;for(int i=0;i&lt;no_msgs_ ;i++){
-<BR>&nbsp; ACE_Message_Block *mb;
-<BR>&nbsp; if(mq_->dequeue_head(mb)==-1){
-<BR>&nbsp;&nbsp; ACE_DEBUG((LM_ERROR,'\nCould not dequeue from mq!!\n"));
-<BR>&nbsp;&nbsp; return;
-<BR>&nbsp;&nbsp; }
-<BR>&nbsp; ACE_DEBUG((LM_INFO,"DQd data %d\n",*mb->rd_ptr()));
-<BR>&nbsp; }
-<BR>&nbsp;}
-<BR>private:
-<BR>&nbsp;Args *args_;
-<BR>&nbsp;ACE_Message_Block **array_;
-<BR>&nbsp;ACE_Message_Queue&lt;ACE_NULL_SYNCH> *mq_;
-<BR>&nbsp;int no_msgs_;
-<BR>&nbsp;int time_;
-<BR>};
-
-<P>int main(int argc, char* argv[]){
-<BR>&nbsp;QTest test(argc,argv);
-<BR>&nbsp;if(test.start_test()&lt;0)
-<BR>&nbsp; ACE_DEBUG((LM_ERROR,"Program failure \n"));
-<BR>&nbsp;
-<BR>}
-<BR>&nbsp;
-</BODY>
-</HTML>
diff --git a/docs/tutorials/Makefile b/docs/tutorials/Makefile
deleted file mode 100644
index 4a88e3b566a..00000000000
--- a/docs/tutorials/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-
-# $Id$
-
-all clean realclean UNSHAR SHAR HTML CLEAN : #
- for i in ??? ; do \
- [ -f $$i/Makefile ] || continue ; \
- ( cd $$i ; $(MAKE) $@ ) ; \
- done
-
diff --git a/docs/tutorials/colorize b/docs/tutorials/colorize
deleted file mode 100755
index ee61d4bfb14..00000000000
--- a/docs/tutorials/colorize
+++ /dev/null
@@ -1,20 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-print "<PRE>\n";
-while( <STDIN> )
-{
- s/</\&lt;/g;
- s,\#(\s*)(e?l?if !?defined|pragma|ifn?def|define)(\W*)([\w\.]+),<font color=blue>\#$1$2</font>$3<font color=purple>$4</font>,;
- s,\#\s*(include|endif),<font color=blue>$&</font>,;
- s,"([^"]+)","<font color=green>$1</font>",g;
- s,//.*$,<font color=red>$&</font>,;
- s,/\*,<font color=red>$&,;
- s,\*/,$&</font>,;
- s,\w+::\~?\w+,<font color=\#008888>$&</font>,;
- print STDOUT $_;
-}
-print "</PRE>\n";
-
-0;
diff --git a/docs/tutorials/combine b/docs/tutorials/combine
deleted file mode 100755
index 24f208880a4..00000000000
--- a/docs/tutorials/combine
+++ /dev/null
@@ -1,171 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-# $Id$
-
-#
-# This perl script will combine a set of files into one or more HTML pages.
-#
-# The file fooNN.html will be created by combining the files:
-# fooNN.hdr
-# fooNN.pre
-# fooNN.bdy
-# fooNN.pst
-#
-# Where NN is a 2-digit number. If fooNN.hdr does not exist, the file 'hdr'
-# will be used. If any of the other file-parts don't exist, they will be
-# ignored.
-#
-# Usage:
-# combine *.html
-# combine *.pre
-#
-# Input files:
-#
-#
-# hdr
-# If no *.hdr exists for the current page, this is used. You will typically
-# use this to add <TITLE> and such to each page created.
-#
-# *.hdr
-# You can override the generic hdr you create by creating one for
-# a specific page.
-#
-# *.pre
-# Prefix files. Their content is included after the hdr.
-#
-# *.bdy
-# Body files follow prefix. You generally use the links file to create
-# links between source-code and a bdy filename. The bdy files are
-# examined and "fontified" (think emacs).
-#
-# bodies
-# The list of files to use for the body of the HTML pages generated
-#
-# *.pst
-# Post files. This content follows the bdy content.
-#
-# *.html
-# These are the output. If they exist before you run combine, they
-# will be overwritten.
-#
-use File::Copy;
-
-%format = ();
-
-$PAGE=0;
-
-open(LINKS,"<bodies") || die("No 'bodies' file found!");
-while( ($file = <LINKS>) ) {
-
- chomp($file);
-
- next if( $file =~ /^#/ || $file eq '' );
-
- if( $file =~ /^.*=/ ) {
- ($var,$value) = split(/=/,$file);
- if( $var =~ /PAGE/ ) {
- $PAGE = $value + 0;
- }
- next;
- }
-
- $body{$PAGE++} = "$file";
-}
-close(LINKS);
-
-foreach $file (@ARGV) {
- ($base = $file) =~ s/.html$//;
- $base =~ s/.pre$//;
-
- open(FILE,">$base.html") || die;
- select(FILE);
- $| = 1;
-
- print FILE '<!-- $Id$ -->' . "\n";
-
- # .hdr has the HTML header, title, etc...
- if( -f "$base.hdr" ) {
- copy("$base.hdr",\*FILE);
- }
- elsif( -f "hdr" ) {
- copy("hdr",\*FILE);
- }
- # .pre has the discussion of what you'll see on this page
- if( -f "$base.pre" ) {
- copy("$base.pre",\*FILE);
- }
- # .bdy is the body of the page
- if( -f "$base.bdy" ) {
- &addFile("$base.bdy");
- }
-
- ($num = $base) =~ s/[A-z]//g;
- $num += 0;
-
- if( -f "$body{$num}" || "$body{$num}" =~ /\s/ ) {
- &addFile("$body{$num}");
- }
- # .pst summarizes what was seen
- if( -f "$base.pst" ) {
- copy("$base.pst",\*FILE);
- }
- # .ftr follows the footer to show "continue to next page" stuff
- if( -f "$base.ftr" ) {
- copy("$base.ftr",\*FILE);
- }
- else {
- ++$num;
- $base =~ s/[0-9]//g;
- $next = sprintf("$base%02.2d",$num);
- print FILE "<P><HR WIDTH=\"100%\">\n";
- print FILE "<CENTER>[<A HREF=\"../online-tutorials.html\">Tutorial Index</A>] ";
- if( $file ne $ARGV[$#ARGV] ) {
- print FILE "[<A HREF=\"$next.html\">Continue This Tutorial</A>]";
- }
- print FILE "</CENTER>\n";
- }
- print FILE "\n";
- close(FILE);
-}
-
-sub addFile {
- local($file) = @_;
-
- local(@file) = split(/\s+/,$file);
-
- foreach $file (@file)
- {
- if( $#file > 0 )
- {
- print FILE "<HR width=50%><P><center>$file</center><HR width=50%>\n";
- }
- print FILE "<PRE>\n" ;
- open(INPUT,"<$file") || die "Cannot open $file for read\n";
- # Do some substitutes on each line to try and get the output to
- # look like it does in fontified emacs.
- while( <INPUT> )
- {
- s/</\&lt;/g;
- if( m,include\s+"ace/.*\.h", ) {
- s,(ace/.*\.h),<A HREF="../../../$1">$1</A>,;
- s,\#\s*include,<font color=blue>$&</font>,;
- }
- else
- {
- s,\#(\s*)(e?l?if !?defined|pragma|ifn?def|define)(\W*)([\w\.]+),<font color=blue>\#$1$2</font>$3<font color=purple>$4</font>,;
- s,\#\s*(include|endif),<font color=blue>$&</font>,;
- s,"([^"]+)","<font color=green>$1</font>",g;
- s,//.*$,<font color=red>$&</font>,;
- s,/\*,<font color=red>$&,;
- s,\*/,$&</font>,;
- s,\w+::\~?\w+,<font color=\#008888>$&</font>,;
- }
- s/[ \t]+$//;
- s/\t/ /g;
- print FILE $_;
- }
- print FILE "</PRE>\n";
- }
-}
diff --git a/docs/tutorials/fix.Makefile b/docs/tutorials/fix.Makefile
deleted file mode 100755
index 8e3d2ac9187..00000000000
--- a/docs/tutorials/fix.Makefile
+++ /dev/null
@@ -1,68 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-require "getopts.pl";
-&Getopts("f:o:");
-
-$opt_f = "Makefile" if( ! $opt_f );
-$opt_o = ".depend" if( ! $opt_o );
-
- # Open the Makefile that has been mangled by 'make depend'
- # and suck it into a perl array.
-open(IF,"<$opt_f") || die;
-@makefile = <IF>;
-close(IF);
-
- # Now open our .depend file and a temporary Makefile.
- # We'll split the original Makefile between these two.
-open(DF,">$opt_o") || die;
-open(MF,">$opt_f.tmp") || die;
-
- # For each line we read out of the original file...
-foreach (@makefile) {
-
- # If we're into the dependency section, write the line
- # into the .depend file.
- #
- if( $depend ) {
- print DF $_;
- }
- else {
- # If we haven't gotten to the dependency section yet
- # then see if the current line is the separator that
- # "make depend" causes to be inserted.
- #
- if( m/^\Q# DO NOT DELETE THIS LINE -- g++dep uses it.\E/ ) {
-
- # If so, change our "mode" and skip this line.
- ++$depend;
- next;
- }
-
- # Also skip the "include .depend" that we insert. If we
- # don't do this, it is possible to have a bunch of these
- # inserted into the output when we read an unmangled Makefile
- next if( m/^include $opt_o/ );
-
- # Print the non-dependency info to the temporary Makefile
- print MF $_;
- }
-}
-
-# Tell our new Makefile to include the dependency file
-print MF "include $opt_o\n";
-
-# Close the two output files...
-close(DF);
-close(MF);
-
-# Unlink (remove) the original Makefile and rename our
-# temporary file. There's obviously room for error checking
-# here but we've got the Makefile checked into some revision
-# control system anyway. Don't we?
-
-unlink("$opt_f");
-rename("$opt_f.tmp","$opt_f");
-
-exit(0);
diff --git a/docs/tutorials/guide-tutorials.html b/docs/tutorials/guide-tutorials.html
deleted file mode 100644
index 38455b7e51d..00000000000
--- a/docs/tutorials/guide-tutorials.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.05 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]">
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#333333" ALINK="#FE0000">
-
-<HR WIDTH="100%"><P>
-<H3>Online Examples from the ACE Programmers Guide</H3>
-
-The following page has links to the example code that is presented in
-the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE-tutorial.ps.gz">ACE
-programmers guide</a>. The guide was created at <A
-HREF="http://www.hns.com">Hughes Network Systems</A>. Questions
-regarding the guide should be sent to <A
-HREF="mailto:usyyid@hns.com">Umar Syyid &lt;usyyid@hns.com></A>
-
-<P>
-<HR WIDTH="100%">
-<H3>Chapter Breakdown</H3>
-
-
-<H4> Chapter 2: <A HREF="Chap_2/ex01.html">IPC&nbsp;_SAP</A></H4>
-
-<H4> Chapter 3: <A HREF="Chap_3/ex01.html">Memory Management</A></H4>
-
-<H4> Chapter 4: <A HREF="Chap_4/ex01.html">Thread Management</A></H4>
-
-<H4> Chapter 5: Tasks and Active&nbsp;Objects</H4>
-
-<H4> Chapter 6: <A HREF="Chap_5/ex01.html">The Reactor</A></H4>
-
-<H4> Chapter 7: <A HREF="Chap_6/ex01.html">The Acceptor and Connector</A></H4>
-
-<H4> Chapter 8: The Service Configurator</H4>
-
-<H4> Chapter 9: <A HREF="Chap_7/ex01.html">Message Queues</A></H4>
-
-<P><HR>
-
-<P>Back to the <A HREF="../ACE-tutorials.html">ACE tutorials</A> page.
-
-<P>
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
diff --git a/docs/tutorials/linify b/docs/tutorials/linify
deleted file mode 100755
index ad2016905ff..00000000000
--- a/docs/tutorials/linify
+++ /dev/null
@@ -1,54 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}'
- & eval 'exec perl -S $0 $argv:q'
- if 0;
-
-while( $#ARGV > -1 ) {
-
- print "$ARGV[0]\n";
-
- $source = "$ARGV[0]";
-
- if( $source =~ /~$/ ) {
- $dest = "$`";
- } else {
- rename("$source","$source"."~") || die "Cannot rename ($source)";
- $dest = "$source";
- $source .= "~";
- }
-
- open(INPUT,"<$source") || die "Cannot open ($source)";
- open(OUTPUT,">$dest") || die "Cannot open ($dest)";
-
- $n = 1;
-
- $prestrip = 0;
- while( <INPUT> ) {
- chomp;
-
- if( ! $prestrip && /^[0-9]+\.\t/ ) {
- $prestrip = 1;
- $_ = $';
- } elsif( $prestrip ) {
- if( /^[0-9]+\.\t/ ) {
- $_ = $';
- } else {
- s/^\t//;
- }
- }
-
- if( /^\s*$/ || /^\s*({|})\s*;?\s*$/ || /^\s*\/\//
- || /^\s*private\s*:/ || /^\s*protected\s*:/ || /^\s*public\s*:/
- || /^\s*}?\s*else\s*{?\s*:/
- ) {
- print OUTPUT "\t$_\n";
- } else {
- print OUTPUT "$n.\t$_\n";
- ++$n;
- }
- }
-
- close(INPUT);
- close(OUTPUT);
-
- shift(@ARGV);
-}
diff --git a/docs/tutorials/new-tutorials.html b/docs/tutorials/new-tutorials.html
deleted file mode 100644
index 60748d02f4b..00000000000
--- a/docs/tutorials/new-tutorials.html
+++ /dev/null
@@ -1,76 +0,0 @@
- <!-- $Id$ -->
-<TITLE>Developing New ACE+TAO Tutorials</TITLE>
-<BODY text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
-
-<HR><P>
-<H3>Developing New ACE+TAO Tutorials</H3>
-
-Here are some general guidelines for creating new ACE+TAO tutorials:
-<P>
-
-<hr width=50% align=left>
-<H4>Choose a Topic You Know Very Well (or are just learning)</h4>
-
- This isn't really a conflict...
-<P>
- If you know a topic very well, you're likely to know what is most
- important to the novice and what can be left until later. If you're
- just learning a topic, then you know what questions you have that
- must be answered before you can continue.
-<P>
-<hr width=50% align=left>
-<H4> Keep It Simple</H4>
-<P>
- Don't try to use a lot of really cool ACE+TAO features along the way. Stick
- to the basic stuff and show that. Try to use a minimum of ACE+TAO objects
- that are not the direct target of the tutorial.
-<P>
- (For instance, don't get all caught up in ACE_Singleton<> if you're
- trying to show how to use an ACE_Reactor.)
-<P>
- If you want to show something really cool that happens to depend on
- another ACE+TAO feature, do a tutorial on that other feature first! I've
- found that folks will tend to get stuck on *anything* they don't
- understand even if it isn't directly relevant to what you're trying
- to teach.
-<P>
-<hr width=50% align=left>
-<h4>Document the Heck Out of It!</H4>
-<P>
- There's no such thing as too much documentation. Don't worry about
- repeating yourself along the way. Assume that the reader knows nothing
- at all about the topic at hand and explain even the parts that you feel
- are painfully obvious.
-<P>
- If you feel that sticking a bunch of comments in the code makes it harder
- to read then stick in a label and document at the end of the file or
- something. Alternately, create both a well-documented version and a
- sparsely-documented version. Then folks can choose between 'em.
-<P>
-<hr width=50% align=left>
-<h4>Over-teach It</H4>
-<P>
- If there's a tutorial created for a topic that you feel strong in,
- create another one anyway. Everybody tends to code a little differently.
- Perhaps your tutorial style will "feel" better to some newcomers
- than an existing tutorial. You won't hurt anybody's feelings if
- you present the same material in a different way.
-<P>
-<hr width=50% align=left>
-<h4>Leverage Existing Code</H4>
-<P>
- The ultimate form of code reuse :-) Seriously... grab one or more
- of the existing ACE+TAO tests or examples. Then strip it down to the
- bare bones & add heaps of comments. I don't think the software-police
- will be coming after anyone for that!
-
-<P> If this thing takes off, I'll start to organize the tutorials into
-groups. For now, lets concentrate on quantity & quality.
-Organization can come later... <P>
-
-<HR><P>
-Back to the <A
-HREF="../ACE-tutorials.html">ACE
-tutorials</A> or <A HREF="../../TAO/docs/TAO-tutorials.html">TAO
-tutorials</A> page.
-
diff --git a/docs/tutorials/online-tutorials.html b/docs/tutorials/online-tutorials.html
deleted file mode 100644
index 60be812258d..00000000000
--- a/docs/tutorials/online-tutorials.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; Linux 2.0.32 i486) [Netscape]">
- <META NAME="Author" CONTENT="James CE Johnson">
- <TITLE>Online ACE Tutorials</TITLE>
-</HEAD>
-<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-
-<HR>
-<H3>
-Online ACE Tutorials</H3>
-
-The following online tutorials are designed to help get you started
-with ACE. The original audience for these tutorials was the <A
-HREF="http://www.lads.com">Automated Design Systems</A> (ADS) IPC
-team, lead by <A HREF="mailto:jcej@lads.com">James Johnson</A>. Since
-then, the scope has been changed to include anyone who wants to learn
-about the ACE framework. Hopefully, even experienced ACE programmers
-will find something new here. With a framework as encompassing as ACE,
-it is easy to become an expert in one area and know little or nothing
-about others. <P>
-
-<FONT size=-1>Before you try compiling Tutorial 2 (and beyond) you
-might want to read these comments about <A HREF="templates.html">C++
-templates</A></font> <P>
-
-<P><HR WIDTH="50%" align=left><P>
-<H4>
-Your basic Client/Server hookup</H4>
-
-<OL>
-<LI>
-<A HREF="001/page01.html">A
-Simple Server</A></LI>
-
-<LI>
-<A HREF="002/page01.html">A
-Simpler Server</A></LI>
-
-<LI>
-<A HREF="003/page01.html">Finally,
-a Client</A></LI>
-
-<LI>
-<A HREF="004/page01.html">A
-much <I>cooler</I> client</A></LI>
-</OL>
-
-<P><HR WIDTH="50%" align=left><P>
-<H4>
-A word about concurrency</H4>
-
-<OL>
-<LI>
-<A HREF="005/page01.html">No
-threads, nothing fancy, just do the work!</A></LI>
-
-<LI>
-<A HREF="006/page01.html">I'd
-like to dedicate... a thread to each connection.</A></LI>
-
-<LI>
-<A HREF="007/page01.html">Let's
-pool our resources:&nbsp; a fixed-size pool of threads.</A></LI>
-</OL>
-
-<P><HR WIDTH="50%" align=left><P>
-
-<H4>
-Finding servers on your network</H4>
-
-<OL>
-<LI>
-<A HREF="008/page01.html">Calling
-all servers!</A></LI>
-
-<LI>
-<A HREF="009/page01.html">Discriminating tastes...</A></LI>
-</OL>
-
-<P><HR WIDTH="50%" align=left><P>
-
-<H4>
-A word about ACE_Message_Queue</H4>
-
-<OL>
-<LI>
-<A HREF="010/page01.html">Puttin' data</A></LI>
-<LI>
-<A HREF="011/page01.html">What about non-trivial data?</A></LI>
-<LI>
-<A HREF="012/page01.html">Puttin' pointers</A></LI>
-<LI>
-<A HREF="013/page01.html">Task chains and state machines</A></LI>
-</OL>
-
-<P><HR WIDTH="50%" align=left><P>
-
-<H4>
-Paddling down (and up) the ACE_Stream</H4>
-
-<OL>
-<LI>
-<A HREF="014/page01.html">ACE_Stream Tutorial, Of Sorts</A></LI>
-<LI>
-<A HREF="015/page01.html">A certain amount of Protocol is required!</A></LI>
-</OL>
-
-<P><HR WIDTH="50%" align=left><P>
-
-<H4>
-Keeping yourself in synch</H4>
-<OL>
-<LI>
-<A HREF="016/page01.html">On one condition...</A>
-<LI>
-<A HREF="017/page01.html">Something about Barriers</A>
-<LI>
-<A HREF="018/page01.html">Tokens & templates</A>
-</OL>
-
-<P><HR WIDTH="50%" align=left><P>
-
-<H4>
-Do you remember...</H4>
-<OL>
-<LI>
-<A HREF="019/page01.html">Using System V Shared Memory for telepathy</A>
-<LI>
-<A HREF="020/page01.html">Never forget anything else again!</A>
-<LI>
-<A HREF="021/page01.html">Pooling your memories via ACE_Malloc</A>
-</OL>
-
-<P><HR WIDTH="50%" align=left><P>
-
-<H4>
-Configurin' components dynamically</H4>
-<OL>
-<LI>
-<A HREF="022/page01.html">Using the ACE Service Configurator framework</A>
-</OL>
-
-<HR>
-
-<P>Back to the <A HREF="../ACE-tutorials.html">ACE tutorials</A> page.
-
-<P>
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
-
diff --git a/docs/tutorials/templates.html b/docs/tutorials/templates.html
deleted file mode 100644
index 76822f7071d..00000000000
--- a/docs/tutorials/templates.html
+++ /dev/null
@@ -1,190 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <!-- $Id$ -->
- <head>
- <title>About C++ Templates</title>
- </head>
-
- <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#000FFF" VLINK="#FF0F0F">
-<center>
- <h1>About C++ Templates</h1>
-</center>
-
-
- <hr>
-
-When you get to server.cpp in Tutorial 2 you'll see these lines at the bottom:
-<P>
-<UL>
-<PRE>
-<font color=blue>#if defined</font> (<font color=purple>ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION</font>)
-template class ACE_Acceptor &lt;Logging_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-<font color=blue>#elif defined</font> (<font color=purple>ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA</font>)
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Acceptor &lt;Logging_Handler, ACE_SOCK_ACCEPTOR>
-<font color=blue>#pragma</font> <font color=purple>instantiate</font> ACE_Svc_Handler&lt;ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-<font color=blue>#endif</font> <font color=red>/* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */</font>
-Thanks to Krishna Padmasola for providing these.
-</PRE>
-</UL>
-<P>
-What's that all about?
-<P>
-Well, if you've been doing ACE for more than about 30 seconds you will
-have run into the joys and sorrows of C++ templates. They're really
-great things that prevent the need for complex #define'd macros,
-ensure type safety and do other really nifty things. One of the
-problems, however, is that not all compilers can figure out what
-templates you need.
-<P>
-Take the simple templated class:
-<UL>
-<PRE>
-
-template &lt;class DATATYPE>
-class MyTemplate
-{
-public:
- MyTemplate(void)
- {
- }
-
- DATATYPE data(void)
- {
- return data_;
- }
-
- void data( DATATYPE _data )
- {
- data_ = _data;
- }
-
-protected:
-
- DATATYPE data_;
-};
-</PRE>
-</UL>
-<P>
-Now suppose you write the following code fragment:
-<P>
-<UL>
-<PRE>
-int main(int,char**)
-{
- MyTemplate&lt;int> itemp;
- MyTemplate&lt;char> ctemp;
-
- ...
-}
-</pre>
-</ul>
-<P>
-Some compilers will take care of you and automatically generate the
-equivalent classes:
-<UL>
-<pre>
-class MyTemplate
-{
-public:
- MyTemplate(void)
- {
- }
-
- int data(void)
- {
- return data_;
- }
-
- void data( int _data )
- {
- data_ = _data;
- }
-
-protected:
-
- int data_;
-};
-
-class MyTemplate
-{
-public:
- MyTemplate(void)
- {
- }
-
- char data(void)
- {
- return data_;
- }
-
- void data( char _data )
- {
- data_ = _data;
- }
-
-protected:
-
- char data_;
-};
-</pre>
-</ul>
-<P>
-On the other hand, some compilers will complain loudly about undefined
-symbols and all sorts of other things. When Clinton Carr compiled
-server.cpp of Tutorial 2 on his RedHat 5.1 (gcc) system, for instance,
-he was rewarded with these lovely errors:
-<P>
-<UL>
-<PRE>
-server.cpp:60: undefined reference to `ACE_Acceptor&lt;Client_Handler, ACE_SOCK_Acceptor>::ACE_Acceptor(ACE_Reactor *)'
-server.cpp:72: undefined reference to `ACE_Acceptor&lt;Client_Handler, ACE_SOCK_Acceptor>::open(ACE_INET_Addr const &, ACE_Reactor *,int)'
-server.cpp:73: undefined reference to `ACE_Acceptor&lt;Client_Handler, ACE_SOCK_Acceptor>::~ACE_Acceptor(void)'
-server.cpp:112: undefined reference to `ACE_Acceptor&lt;Client_Handler, ACE_SOCK_Acceptor>::~ACE_Acceptor(void)'
-
-</PRE>
-</UL>
-<P>
-Figuring out the correct manual instantiations is usually an
-iterative and tedious process. On Linux, I generally use a version of gcc that
-will do automatic instantiaion. "Normal" gcc with the Cygnus repo
-patches does that as does egcs. Lately (1/99) I've been using egcs
-1.1.1 with pretty good results. On our Digital Unix 4.0b system the
-native compiler (CXX) has switches that will request it to also
-automatically instantiate templates as needed.
-<P>
-The tradeoffs?
-<P>
-If you choose to do manual instantiation then your code will work just
-about anywhere ACE will. For complex applications, it can take a
-number of hours to get things right.
-<P>
-If you choose to let the compiler do instantiations for you then it
-will perform the iterative process. That means that every compile
-will be longer than without manual instantiations.
-<P>
-Compromise?
-<P>
-Yes, you can do that. You can manually instantiate some
-templates and let the compiler get the rest. Some compilers will
-generate output that you can then use to figure out the correct
-templates. Gcc/egcs create .rpo files for each object. These files
-contain mangled names that the compiler uses to figure out what to
-instantiate. With c++filt and some patience, you can parse that stuff
-to figure out what the compiler is instantiating for you. Note that
-c++filt expects you to have a GNU-flavored C++ compiler available.
-<P>
-My best advice is to get a compiler that will handle the
-instantiations for you. When you have some free time on your hands,
-take a look at its intermediate files (if any) and start working on
-manual instantiation.
-<P>
-For some more hints, take a look at <A HREF="../../ACE-INSTALL.html#g++">ACE-INSTALL</A>
-<P>
- <hr>
-
-Thanks to Amos Shapira for catching a number of errors here.
-
- </body>
-</html>
-
diff --git a/docs/tutorials/tutorials.dsw b/docs/tutorials/tutorials.dsw
deleted file mode 100644
index f443e215f03..00000000000
--- a/docs/tutorials/tutorials.dsw
+++ /dev/null
@@ -1,412 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "001"=.\001\001.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "002"=.\002\002.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "003"=.\003\003.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "004"=.\004\004.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "005"=.\005\005.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "006"=.\006\006.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "007"=.\007\007.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "008 broadcast"=".\008\008-broadcast.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "008 direct"=".\008\008-direct.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "008 server"=".\008\008-server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "009 broadcast"=".\009\009-broadcast.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "009 directed"=".\009\009-directed.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "009 server"=".\009\009-server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "010"=.\010\010.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "011"=.\011\011.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "012"=.\012\012.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "013"=.\013\013.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "014"=.\014\014.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "015 client"=".\015\015-client.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "015 server"=".\015\015-server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "016"=.\016\016.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "017"=.\017\017.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "018"=.\018\018.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "019 client"=".\019\019-client.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "019 client2"=".\019\019-client2.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "019 server"=".\019\019-server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "019 server2"=".\019\019-server2.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "020 client"=".\020\020-client.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "020 client2"=".\020\020-client2.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "020 server"=".\020\020-server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "020 server2"=".\020\020-server2.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "021 client"=".\021\021-client.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "021 server"=".\021\021-server.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
diff --git a/docs/usage-bugzilla.html b/docs/usage-bugzilla.html
deleted file mode 100644
index 57563471d9f..00000000000
--- a/docs/usage-bugzilla.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <!-- $Id$ -->
- <head>
- <title>DOC Center Bug Tracking System Usage</title>
- </head>
-
- <body text = "#000000" link="#000fff" vlink="#ff0f0f" bgcolor="#ffffff">
- <h1>DOC Center Bug Tracking System Usage</h1>
-
- <p>
- The
- <a href="http://www.cs.wustl.edu/~schmidt/doc-center.html">
- Center for Distributed Object Computing</a> uses the
- <a href="http://www.mozilla.org//bugs/source.html">Bugzilla</a>
- bug tracking system to keep track of existing problems and
- enhancement requests.
-
- <p>
- To streamline our development process, you can now use it to
- enter problem reports or make a request for a particular feature
- that you'd like to see integrated into
- <a href="http://www.cs.wustl.edu/~schmidt/ACE.html">ACE</a> or
- <a href="http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a>.
-
- <p>
- You can also use it to track the status of a particular bug or
- enhancement. In addition, the bug tracking system can be used
- to add comments and attachments that contain solutions or simple
- test cases.
-
- <p>
- The bug tracking system is located at the following web site:
- <samp>
- <a href="http://deuce.doc.wustl.edu/bugzilla/">
- http://deuce.doc.wustl.edu/bugzilla/
- </a>
- </samp>
-
- <p>
- If all you want to do is browse through the bugs in our bug
- tracking system or view bug summary reports, then you can use
- the bug tracking system right away. However, if you want to be
- able to submit bug reports then you will have to create a bug
- tracking system account.
-
- <p>
- Upon entering a bug or enhancement request for the first time,
- you will be asked to enter an e-mail address. Once you've done
- that, you will be mailed a password that you can use to log on
- to the bug tracking system. You will only be asked to do this
- once. Any changes to bug reports you submit will be mailed to
- the e-mail address you provide.
-
- <p>
- Once you've logged on, you will have the ability to enter bug
- reports and modify existing ones. Other than adding comments,
- fixes and attachments, please do not modify bug reports you
- haven't submitted.
-
- <p>
- The bug tracking system is fairly straightforward to use. When
- entering bug reports or enhancement requests, enter as much
- information as possible. Most of the bug form fields provide
- help if you are unsure what a particular field is used for.
-
- <p>
- For more information about using Bugzilla, and about bug
- reporting in general, please see the following web sites:
-
- <p>
- <blockquote>
- <samp>
- <a href="http://www.mozilla.org/bugs">
- http://www.mozilla.org/bugs/
- </a><br>
- <a href="http://www.mozilla.org/quality/bug-writing-guidelines.html">
- http://www.mozilla.org/quality/bug-writing-guidelines.html
- </a>
- </samp>
- </blockquote>
-
- <p>
- Keep in mind that the Bugzilla installation at the above web
- site is <em>not</em> the same Bugzilla installation at the
- Center for Distributed Object Computing. All bug reports and
- enhancement requests for ACE and TAO should be done at the
- Center for Distributed Object Computing's Bugzilla web site.
-
-
-
- <hr>
- <address><a href="mailto:othman@cs.wustl.edu">Ossama Othman</a></address>
-<!-- Created: Wed Aug 18 14:45:31 EDT 1999 -->
-<!-- hhmts start -->
-Last modified: Wed Nov 14 21:36:32 Pacific Standard Time 2001
-<!-- hhmts end -->
- <br>
- Back to <a href="index.html">ACE Documentation Home</a>.
- </body>
-</html>
diff --git a/docs/wchar.txt b/docs/wchar.txt
deleted file mode 100644
index 14c0d9e5ce0..00000000000
--- a/docs/wchar.txt
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
-@page wchar Wide Character/Unicode support in ACE
-
-Here's a first stab at some sort of documentation for the magic
-wide-character (wchar) stuff in ACE. It should be possible to compile
-ACE with wchar support on most platforms that ACE runs on. In some
-cases, we don't enable wchar support by default since it increases the
-footprint a bit. If you run into any problems, please use the
-$ACE_ROOT/PROBLEM-REPORT-FORM to let us know.
-
-@subsection wchar_overview Overview
-
-There are three different wchar configurations that ACE can use. These are
-no support mode, regular support mode, and full support mode (well, those are
-the best names I can come up with for now).
-
-@subsection wchar_nosupport No Support
-
-By default, ACE will not use wchar_t at all. This is for platforms where
-wchar_t does not exist or support for it is pretty flakey.
-
-@subsection wchar_regular Regular Support
-
-If ACE_HAS_WCHAR is defined, then ACE classes will be expanded to have extra
-methods which take in wchar_t strings. Note that all the methods available
-with No Support are also available here. This is the default in Windows
-right now, and has been tested to work on Linux and VxWorks (well, only been
-tested to compile/link of VxWorks).
-
-@subsection wchar_full Full Support
-
-Full support is turned on if ACE_HAS_WCHAR and ACE_USES_WCHAR are defined.
-Like Regular Support, both char and wchar_t versions of some methods are
-available, but unlike Regular Support, other methods that have char arguments
-or return values may have wchar_t arguments or return values.
-
-This has only been tested in Windows, and is the default for Windows CE.
-
-@subsection wchar_othermacros Other Important Macros
-
-In addition to the ACE_HAS_WCHAR and ACE_USES_WCHAR mentioned above, there
-are several other macros that are important when using wide character support
-in ACE.
-
-These other macros are used in code to conditionally switch between char and
-wchar_t. ACE_TCHAR is a char normally and wchar_t when ACE_USES_WCHAR is
-defined. ACE_TEXT ("foo") expands to "foo" normally and L"foo" when
-ACE_USES_WCHAR is defined.
-
-ACE_TEXT_CHAR_TO_TCHAR and ACE_TEXT_WCHAR_TO_TCHAR are used when a string
-that is always a char or wchar_t string needs to be converted to a ACE_TCHAR
-string. On the same note, ACE_TEXT_ALWAYS_CHAR is used when a string is
-ACE_TCHAR * and needs to be a char * string.
-
-ACE_TEXT_WIDE ("foo") is unique in that it always maps to L"foo". It is not
-a conditional macro.
-
-For string constants in code, ACE_TEXT and ACE_LIB_TEXT are used to put the
-Unicode prefix (Usually 'L') before the string when needed. By default both
-are controlled by ACE_USES_WCHAR.
-
-All ACE code except for the ACE library should use ACE_TEXT. ACE_LIB_TEXT
-was introduced as a short-term fix for backwards compatibility purposes.
-This allows ACE_TEXT to be overriden to act just like TEXT in Microsoft
-Windows while not affecting ACE's interface. In the future ACE_LIB_TEXT and
-this backwards compatibility will be deprecated and removed.
-
-Finally, on Windows there are a bunch of ACE_TEXT_Apicall type macros which
-are used to choose the correct version of a Win32 API function depending on
-ACE_USES_WCHAR. I'm hoping to remove these by adding a new ACE_OS_Win32
-class to perform the same task, but until then these ugly macros get the job
-done.
-
-@subsection wchar_logmsg ACE_Log_Msg support
-
-One of the more troublesome aspect of supporting wide and Ansi strings is
-the fact that the format strings for ACE_DEBUG and family always had to have
-ACE_TEXT (or ACE_LIB_TEXT) around them.
-
-Now this should not be the case, since ACE_Log_Msg was extended to support
-both types of format strings concurrently. This is okay, but when strings
-are printed out via the format_string, care has to be taken.
-
-It is interesting how Unix and Windows treats the format specifiers
-differently, based on their history. Win32 uses %s, %c, %S and %C, whereas
-Linux seems to use %s, %c, %ls, and %lc. And they even treat %s and %c
-differently. The route ACE takes is a bit of a mixture of both:
-
-- %c: prints out an Ansi character
-- %C: prints out an Ansi string
-- %s: prints out an ACE_TCHAR string
-- %w: prints out a Wide character
-- %W: prints out a Wide string
-
-An example, which will also function correctly even when ACE_USES_WCHAR is
-defined:
-
-@verbatim
-void print (char *a_str, wchar_t *w_str, ACE_TCHAR *t_str)
-{
- ACE_DEBUG ((LM_DEBUG,
- "%C %s %W\n",
- a_str,
- t_str,
- w_str));
-}
-@endverbatim
-
-@subsection wchar_win32macros Relation to Win32's UNICODE and _UNICODE macros
-
-It used to be that in previous versions of ACE that the Win32 macros affected
-ACE in some way. This has been all removed in favor of the ACE_USES_WCHAR
-and ACE_HAS_WCHAR macros. Along with this, the definition of some of the
-Win32 string types (LPTSTR, LPCSTR, etc.) have been also removed. Since this
-isn't a direct concern of ACE, they will have to be defined separately if
-they are needed on non-Win32 platforms.
-
-The way I'd recommend doing this is to add the typdefs to config.h.
-
-@subsection wchar_legacy Legacy Support
-
-Most of the old macros (ACE_HAS_UNICODE, ACE_HAS_MOSTLY_UNICODE_APIS) are
-ignored by default by ACE, since the new macros replaced them. If
-ACE_LEGACY_MODE is defined, there is an attempt to map them to the new scheme
-by just ACE_HAS_UNICODE == ACE_HAS_WCHAR and ACE_HAS_MOSTLY_UNICODE_APIS ==
-ACE_USES_WCHAR.
-
-*/
diff --git a/etc/DOC-way.html b/etc/DOC-way.html
deleted file mode 100644
index 6f81a25c3c9..00000000000
--- a/etc/DOC-way.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-
-<HEAD>
-<TITLE>The Way of DOC</TITLE>
-</HEAD>
-
-<BODY text = "#ffffff"
-link="#80ffff"
-vlink="#ffde00"
-bgcolor="#000055">
-
-<HR>
-<H3>The Way of DOC</H3>
-
-To build an effective systems research group, it's essential to
-develop a culture that is supportive to software development and
-software system researchers and developers. The following are some of
-the key precepts that underly the culture of the <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-members.html">DOC</A>
-research group:
-
-<UL>
-<LI> Work hard
-<LI> Have fun
-<LI> Be creative
-<LI> Be curious
-<LI> Be <A HREF="http://www.XProgramming.com/Practices/xpractices.htm">extreme</A>
-<LI> Learn new skills
-<LI> Teach your skills to others
-<LI> Value the contributions of team members
-<LI> <A HREF="http://www.cs.wustl.edu/~schmidt/research.html">Write papers</A>
-<LI> Read papers
-<LI> <A HREF="http://www.cs.wustl.edu/~schmidt/tutorials.html">Give presentations</A>
-<LI> Be responsive to ACE/TAO users questions and issues
-<LI> Act now, rather than later
-<LI> Accept responsibility
-<LI> Delegate responsibility
-<LI> Play chess
-<LI> Play chess after being awake all night
-<LI> Make paper airplanes
-<li> Drink Nestea
-<li> Watch South Park
-<li> Juggle and bounce balls
-<LI> Play ping-pong
-<LI> Swear under your breath at <A HREF="http://www.cs.wustl.edu/~schmidt/C++/">C++</A>
-<LI> Fix at least two bugs every day
-<LI> Create at least one bug every day (and then fix it ;-))
-<LI> Fix your own bugs
-<LI> Swear at other people's bugs.... but also fix them
-<LI> Resist the temptation to express "code rage"
-<LI> Resist the temptation to become <A HREF="http://www.cs.wustl.edu/~schmidt/demotivation.html">demotivated</A>
-<LI> Go ballroom dancing
-<LI> Drive <A
-HREF="http://www.cs.wustl.edu/~schmidt/gifs/vette.jpg">Corvettes</A>
-<LI> Move one step closer to <A HREF="http://www.cs.wustl.edu/~schmidt/gifs/microsoft.gif">world domination</A> every day
-</UL>
-
-</BODY>
-</HTML>
-
-
-
diff --git a/etc/README b/etc/README
deleted file mode 100644
index e55a06ad89c..00000000000
--- a/etc/README
+++ /dev/null
@@ -1,32 +0,0 @@
-$Id$
-
-Svc_Conf_[ly].cpp.diff are used to patch their respective files in
-ACE_wrappers/ace. They are used by the Makefile in that directory,
-so users don't ordinarily need to be concerned with them.
-
-To update Svc_Conf_l.cpp.diff:
-
-1) % cd ACE_wrappers/ace.
-
-2) Create the unpatched version of the file, in Svc_Conf_l.cpp.orig:
- % /bin/rm Svc_Conf_l.cpp
- % make Svc_Conf_l.cpp RM=echo
- % cp -p Svc_Conf_l.cpp.orig Svc_Conf_l.cpp.save
-
-3) Create the new version of Svc_Conf_l.cpp. If the old patch succeeds,
- you can use it:
- % /bin/rm Svc_Conf_l.cpp
- % make
- % mv Svc_Conf_l.cpp.save Svc_Conf_l.cpp.orig
-
- Otherwise, the new version has to be created manually.
-
-4) % diff -u Svc_Conf_l.cpp.orig Svc_Conf_l.cpp > ../etc/Svc_Conf_l.cpp.diff
-
-5) % rm Svc_Conf_l.cpp.orig
-
-6) % cd ../etc
- % cvs commit -ko -m'updated diff file' Svc_Conf_l.cpp.diff
-
-To update Svc_Conf_y.cpp.diff, follow the same procedure, above, as
-for updating Svc_Conf_l.cpp.diff, but replace "_l" with "_y".
diff --git a/etc/Svc_Conf_l.cpp.diff b/etc/Svc_Conf_l.cpp.diff
deleted file mode 100644
index 229d82fd8bd..00000000000
--- a/etc/Svc_Conf_l.cpp.diff
+++ /dev/null
@@ -1,641 +0,0 @@
---- Svc_Conf_l.cpp Sun Nov 18 22:46:25 2001
-+++ Svc_Conf_l.cpp.new Sun Nov 18 22:43:21 2001
-@@ -1,17 +1,14 @@
-+#define ACE_YY_NO_UNPUT
- /* A lexical scanner generated by flex */
-
- /* Scanner skeleton version:
-- * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
-+ * $Header: /project/cvs-repository/ACE_wrappers-repository/ace/Svc_Conf_l.cpp,v 4.55 2001/11/15 04:27:01 crodrigu Exp $
- */
-
- #define FLEX_SCANNER
- #define ACE_YY_FLEX_MAJOR_VERSION 2
- #define ACE_YY_FLEX_MINOR_VERSION 5
-
--#include "ace/OS.h"
--#include "ace/OS.h"
--
--
- /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
- #ifdef c_plusplus
- #ifndef __cplusplus
-@@ -22,7 +19,8 @@
-
- #ifdef __cplusplus
-
--#include /**/ <stdlib.h>
-+#include "ace/OS.h"
-+#include "ace/Object_Manager.h"
-
- /* Use prototypes in function declarations. */
- #define ACE_YY_USE_PROTOS
-@@ -132,7 +130,9 @@
- } \
- while ( 0 )
-
-+#if 0
- #define unput(c) ace_yyunput( c, ace_yytext_ptr )
-+#endif /* 0 */
-
- /* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
-@@ -145,8 +145,8 @@
- {
- FILE *ace_yy_input_file;
-
-- char *ace_yy_ch_buf; /* input buffer */
-- char *ace_yy_buf_pos; /* current position in input buffer */
-+ ACE_TCHAR *ace_yy_ch_buf; /* input buffer */
-+ ACE_TCHAR *ace_yy_buf_pos; /* current position in input buffer */
-
- /* Size of input buffer in bytes, not including room for EOB
- * characters.
-@@ -208,7 +208,7 @@
-
-
- /* ace_yy_hold_char holds the character lost when ace_yytext is formed. */
--static char ace_yy_hold_char;
-+static ACE_TCHAR ace_yy_hold_char;
-
- static int ace_yy_n_chars; /* number of characters read into ace_yy_ch_buf */
-
-@@ -216,7 +216,7 @@
- int ace_yyleng;
-
- /* Points to current character in buffer. */
--static char *ace_yy_c_buf_p = (char *) 0;
-+static ACE_TCHAR *ace_yy_c_buf_p = (ACE_TCHAR *) 0;
- static int ace_yy_init = 1; /* whether we need to initialize */
- static int ace_yy_start = 0; /* start state number */
-
-@@ -235,9 +235,9 @@
- void ace_yy_flush_buffer ACE_YY_PROTO(( ACE_YY_BUFFER_STATE b ));
- #define ACE_YY_FLUSH_BUFFER ace_yy_flush_buffer( ace_yy_current_buffer )
-
--ACE_YY_BUFFER_STATE ace_yy_scan_buffer ACE_YY_PROTO(( char *base, ace_yy_size_t size ));
--ACE_YY_BUFFER_STATE ace_yy_scan_string ACE_YY_PROTO(( ace_yyconst char *ace_yy_str ));
--ACE_YY_BUFFER_STATE ace_yy_scan_bytes ACE_YY_PROTO(( ace_yyconst char *bytes, int len ));
-+ACE_YY_BUFFER_STATE ace_yy_scan_buffer ACE_YY_PROTO(( ACE_TCHAR *base, ace_yy_size_t size ));
-+ACE_YY_BUFFER_STATE ace_yy_scan_string ACE_YY_PROTO(( ace_yyconst ACE_TCHAR *ace_yy_str ));
-+ACE_YY_BUFFER_STATE ace_yy_scan_bytes ACE_YY_PROTO(( ace_yyconst ACE_TCHAR *bytes, int len ));
-
- static void *ace_yy_flex_alloc ACE_YY_PROTO(( ace_yy_size_t ));
- static void *ace_yy_flex_realloc ACE_YY_PROTO(( void *, ace_yy_size_t ));
-@@ -261,16 +261,16 @@
-
- #define ACE_YY_AT_BOL() (ace_yy_current_buffer->ace_yy_at_bol)
-
--typedef unsigned char ACE_YY_CHAR;
-+typedef ACE_TCHAR ACE_YY_CHAR;
- FILE *ace_yyin = (FILE *) 0, *ace_yyout = (FILE *) 0;
- typedef int ace_yy_state_type;
--extern char *ace_yytext;
-+extern ACE_TCHAR *ace_yytext;
- #define ace_yytext_ptr ace_yytext
-
- static ace_yy_state_type ace_yy_get_previous_state ACE_YY_PROTO(( void ));
- static ace_yy_state_type ace_yy_try_NUL_trans ACE_YY_PROTO(( ace_yy_state_type current_state ));
- static int ace_yy_get_next_buffer ACE_YY_PROTO(( void ));
--static void ace_yy_fatal_error ACE_YY_PROTO(( ace_yyconst char msg[] ));
-+static void ace_yy_fatal_error ACE_YY_PROTO(( ace_yyconst ACE_TCHAR msg[] ));
-
- /* Done after the current pattern has been matched and before the
- * corresponding action - sets up ace_yytext.
-@@ -490,7 +490,7 @@
- } ;
-
- static ace_yy_state_type ace_yy_last_accepting_state;
--static char *ace_yy_last_accepting_cpos;
-+static ACE_TCHAR *ace_yy_last_accepting_cpos;
-
- /* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
-@@ -499,9 +499,9 @@
- #define ace_yymore() ace_yymore_used_but_not_detected
- #define ACE_YY_MORE_ADJ 0
- #define ACE_YY_RESTORE_ACE_YY_MORE_OFFSET
--char *ace_yytext;
-+ACE_TCHAR *ace_yytext;
- #define INITIAL 0
--// $Id: Svc_Conf.l,v 4.17 2001/10/17 06:14:08 othman Exp $
-+// $Id: Svc_Conf_l.cpp,v 4.55 2001/11/15 04:27:01 crodrigu Exp $
- // Sample lexical analysis for regular expression subset. Must be
- // compiled with FLEX and an ANSI C++ compiler.
-
-@@ -512,7 +512,7 @@
-
- ACE_RCSID (ace,
- Svc_Conf_l,
-- "$Id: Svc_Conf.l,v 4.17 2001/10/17 06:14:08 othman Exp $")
-+ "$Id: Svc_Conf_l.cpp,v 4.55 2001/11/15 04:27:01 crodrigu Exp $")
-
- // Keeps track of the current line for debugging output.
- int ace_yylineno = 1;
-@@ -536,15 +536,15 @@
- #endif
-
- #ifndef ACE_YY_NO_UNPUT
--static void ace_yyunput ACE_YY_PROTO(( int c, char *buf_ptr ));
-+static void ace_yyunput ACE_YY_PROTO(( int c, ACE_TCHAR *buf_ptr ));
- #endif
-
- #ifndef ace_yytext_ptr
--static void ace_yy_flex_strncpy ACE_YY_PROTO(( char *, ace_yyconst char *, int ));
-+static void ace_yy_flex_strncpy ACE_YY_PROTO(( ACE_TCHAR *, ace_yyconst ACE_TCHAR *, int ));
- #endif
-
- #ifdef ACE_YY_NEED_STRLEN
--static int ace_yy_flex_strlen ACE_YY_PROTO(( ace_yyconst char * ));
-+static int ace_yy_flex_strlen ACE_YY_PROTO(( ace_yyconst ACE_TCHAR * ));
- #endif
-
- #ifndef ACE_YY_NO_INPUT
-@@ -614,16 +614,16 @@
- int c = '*', n; \
- for ( n = 0; n < max_size && \
- (c = getc( ace_yyin )) != EOF && c != '\n'; ++n ) \
-- buf[n] = (char) c; \
-+ buf[n] = (ACE_TCHAR) c; \
- if ( c == '\n' ) \
-- buf[n++] = (char) c; \
-+ buf[n++] = (ACE_TCHAR) c; \
- if ( c == EOF && ferror( ace_yyin ) ) \
-- ACE_YY_FATAL_ERROR( "input in flex scanner failed" ); \
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "input in flex scanner failed") ); \
- result = n; \
- } \
-- else if ( ((result = fread( buf, 1, max_size, ace_yyin )) == 0) \
-+ else if ( ((result = fread( buf, sizeof (ACE_TCHAR), max_size, ace_yyin )) == 0) \
- && ferror( ace_yyin ) ) \
-- ACE_YY_FATAL_ERROR( "input in flex scanner failed" );
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT("input in flex scanner failed") );
- #endif
-
- /* No semi-colon after return; correct usage is to write "ace_yyterminate();" -
-@@ -671,8 +671,15 @@
-
- ACE_YY_DECL
- {
-+ ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX,
-+ ace_mon,
-+ *ACE_Static_Object_Lock::instance (),
-+ -1));
-+
-+ ACE_Svc_Conf_Lexer_Guard ace_lexer_guard (ACE_SVC_CONF_PARAM);
-+
- register ace_yy_state_type ace_yy_current_state;
-- register char *ace_yy_cp = NULL, *ace_yy_bp = NULL;
-+ register ACE_TCHAR *ace_yy_cp=0, *ace_yy_bp=0;
- register int ace_yy_act;
-
-
-@@ -770,71 +777,71 @@
- case 2:
- ACE_YY_RULE_SETUP
- { return token (ACE_DYNAMIC); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 3:
- ACE_YY_RULE_SETUP
- { return token (ACE_STATIC); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 4:
- ACE_YY_RULE_SETUP
- { return token (ACE_SUSPEND); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 5:
- ACE_YY_RULE_SETUP
- { return token (ACE_RESUME); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 6:
- ACE_YY_RULE_SETUP
- { return token (ACE_REMOVE); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 7:
- ACE_YY_RULE_SETUP
- { return token (ACE_USTREAM); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 8:
- ACE_YY_RULE_SETUP
- { return token (ACE_MODULE_T); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 9:
- ACE_YY_RULE_SETUP
- { return token (ACE_SVC_OBJ_T); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 10:
- ACE_YY_RULE_SETUP
- { return token (ACE_STREAM_T); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 11:
- ACE_YY_RULE_SETUP
- { return token (ACE_ACTIVE); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 12:
- ACE_YY_RULE_SETUP
- { return token (ACE_INACTIVE); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 13:
- ACE_YY_RULE_SETUP
- { return token (':'); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 14:
- ACE_YY_RULE_SETUP
- { return token ('*'); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 15:
- ACE_YY_RULE_SETUP
- { return token ('('); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 16:
- ACE_YY_RULE_SETUP
- { return token (')'); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 17:
- ACE_YY_RULE_SETUP
- { return token ('{'); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 18:
- ACE_YY_RULE_SETUP
- { return token ('}'); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 19:
- ACE_YY_RULE_SETUP
- {
-@@ -853,28 +860,28 @@
- ace_yyleng -= 1;
- ace_yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (ace_yytext + 1, ace_yyleng);
- return token (ACE_STRING); }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 20:
- ACE_YY_RULE_SETUP
- {
- ace_yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (ace_yytext, ace_yyleng);
- return token (ACE_IDENT);
- }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 21:
- ACE_YY_RULE_SETUP
- {
- ace_yylval->ident_ = ACE_SVC_CONF_PARAM->obstack.copy (ace_yytext, ace_yyleng);
- return token (ACE_PATHNAME);
- }
-- ACE_YY_BREAK
-+ // ACE_YY_BREAK
- case 22:
- ACE_YY_RULE_SETUP
- ; /* EMPTY */
- ACE_YY_BREAK
- case 23:
- ACE_YY_RULE_SETUP
--{ ACE_SVC_CONF_PARAM->ace_yylineno++; ace_ace_yylineno++; }
-+{ ACE_SVC_CONF_PARAM->yylineno++; ace_yylineno++; }
- ACE_YY_BREAK
- case 24:
- ACE_YY_RULE_SETUP
-@@ -891,7 +898,7 @@
- case ACE_YY_STATE_EOF(PARAMETERS):
- case ACE_YY_STATE_EOF(NORMAL):
- { ace_yyterminate(); }
-- ACE_YY_BREAK
-+// ACE_YY_BREAK
- case 25:
- ACE_YY_RULE_SETUP
- ACE_SVC_CONF_ECHO;
-@@ -899,7 +906,7 @@
-
- case ACE_YY_END_OF_BUFFER:
- {
-- /* Amount of text matched not including the EOB char. */
-+ /* Amount of text matched not including the EOB ACE_TCHAR. */
- int ace_yy_amount_of_matched_text = (int) (ace_yy_cp - ace_yytext_ptr) - 1;
-
- /* Undo the effects of ACE_YY_DO_BEFORE_ACTION. */
-@@ -1021,7 +1028,7 @@
-
- default:
- ACE_YY_FATAL_ERROR(
-- "fatal flex scanner internal error--no action found" );
-+ ACE_LIB_TEXT("fatal flex scanner internal error--no action found") );
- } /* end of action switch */
- } /* end of scanning one token */
- } /* end of ace_yylex */
-@@ -1037,14 +1044,14 @@
-
- static int ace_yy_get_next_buffer()
- {
-- register char *dest = ace_yy_current_buffer->ace_yy_ch_buf;
-- register char *source = ace_yytext_ptr;
-+ register ACE_TCHAR *dest = ace_yy_current_buffer->ace_yy_ch_buf;
-+ register ACE_TCHAR *source = ace_yytext_ptr;
- register int number_to_move, i;
- int ret_val;
-
- if ( ace_yy_c_buf_p > &ace_yy_current_buffer->ace_yy_ch_buf[ace_yy_n_chars + 1] )
- ACE_YY_FATAL_ERROR(
-- "fatal flex scanner internal error--end of buffer missed" );
-+ ACE_LIB_TEXT("fatal flex scanner internal error--end of buffer missed") );
-
- if ( ace_yy_current_buffer->ace_yy_fill_buffer == 0 )
- { /* Don't try to fill the buffer, so this is an EOF. */
-@@ -1087,8 +1094,8 @@
- while ( num_to_read <= 0 )
- { /* Not enough room in the buffer - grow it. */
- #ifdef ACE_YY_USES_REJECT
-- ACE_YY_FATAL_ERROR(
--"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT(
-+"input buffer overflow, can't enlarge buffer because scanner uses REJECT") );
- #else
-
- /* just a shorter name for the current buffer */
-@@ -1106,18 +1113,18 @@
- else
- b->ace_yy_buf_size *= 2;
-
-- b->ace_yy_ch_buf = (char *)
-+ b->ace_yy_ch_buf = (ACE_TCHAR *)
- /* Include room in for 2 EOB chars. */
- ace_yy_flex_realloc( (void *) b->ace_yy_ch_buf,
-- b->ace_yy_buf_size + 2 );
-+ (b->ace_yy_buf_size + 2)*sizeof(ACE_TCHAR));
- }
- else
- /* Can't grow it, we don't own it. */
- b->ace_yy_ch_buf = 0;
-
- if ( ! b->ace_yy_ch_buf )
-- ACE_YY_FATAL_ERROR(
-- "fatal error - scanner input buffer overflow" );
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT(
-+ "fatal error - scanner input buffer overflow") );
-
- ace_yy_c_buf_p = &b->ace_yy_ch_buf[ace_yy_c_buf_p_offset];
-
-@@ -1126,8 +1133,8 @@
- #endif
- }
-
-- if ( num_to_read > ACE_YY_READ_BUF_SIZE )
-- num_to_read = ACE_YY_READ_BUF_SIZE;
-+ if ( num_to_read * sizeof (ACE_TCHAR) > ACE_YY_READ_BUF_SIZE )
-+ num_to_read = ACE_YY_READ_BUF_SIZE/sizeof (ACE_TCHAR);
-
- /* Read in more data. */
- ACE_YY_INPUT( (&ace_yy_current_buffer->ace_yy_ch_buf[number_to_move]),
-@@ -1165,12 +1172,12 @@
- }
-
-
--/* ace_yy_get_previous_state - get the state just before the EOB char was reached */
-+/* ace_yy_get_previous_state - get the state just before the EOB ACE_TCHAR was reached */
-
- static ace_yy_state_type ace_yy_get_previous_state()
- {
- register ace_yy_state_type ace_yy_current_state;
-- register char *ace_yy_cp;
-+ register ACE_TCHAR *ace_yy_cp;
-
- ace_yy_current_state = ace_yy_start;
- ace_yy_current_state += ACE_YY_AT_BOL();
-@@ -1210,7 +1217,7 @@
- #endif
- {
- register int ace_yy_is_jam;
-- register char *ace_yy_cp = ace_yy_c_buf_p;
-+ register ACE_TCHAR *ace_yy_cp = ace_yy_c_buf_p;
-
- register ACE_YY_CHAR ace_yy_c = 1;
- if ( ace_yy_accept[ace_yy_current_state] )
-@@ -1233,14 +1240,14 @@
-
- #ifndef ACE_YY_NO_UNPUT
- #ifdef ACE_YY_USE_PROTOS
--static void ace_yyunput( int c, register char *ace_yy_bp )
-+static void ace_yyunput( int c, register ACE_TCHAR *ace_yy_bp )
- #else
- static void ace_yyunput( c, ace_yy_bp )
- int c;
--register char *ace_yy_bp;
-+register ACE_TCHAR *ace_yy_bp;
- #endif
- {
-- register char *ace_yy_cp = ace_yy_c_buf_p;
-+ register ACE_TCHAR *ace_yy_cp = ace_yy_c_buf_p;
-
- /* undo effects of setting up ace_yytext */
- *ace_yy_cp = ace_yy_hold_char;
-@@ -1249,9 +1256,9 @@
- { /* need to shift things up to make room */
- /* +2 for EOB chars. */
- register int number_to_move = ace_yy_n_chars + 2;
-- register char *dest = &ace_yy_current_buffer->ace_yy_ch_buf[
-+ register ACE_TCHAR *dest = &ace_yy_current_buffer->ace_yy_ch_buf[
- ace_yy_current_buffer->ace_yy_buf_size + 2];
-- register char *source =
-+ register ACE_TCHAR *source =
- &ace_yy_current_buffer->ace_yy_ch_buf[number_to_move];
-
- while ( source > ace_yy_current_buffer->ace_yy_ch_buf )
-@@ -1263,10 +1270,10 @@
- ace_yy_n_chars = ace_yy_current_buffer->ace_yy_buf_size;
-
- if ( ace_yy_cp < ace_yy_current_buffer->ace_yy_ch_buf + 2 )
-- ACE_YY_FATAL_ERROR( "flex scanner push-back overflow" );
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "flex scanner push-back overflow") );
- }
-
-- *--ace_yy_cp = (char) c;
-+ *--ace_yy_cp = (ACE_TCHAR) c;
-
-
- ace_yytext_ptr = ace_yy_bp;
-@@ -1420,16 +1427,16 @@
-
- b = (ACE_YY_BUFFER_STATE) ace_yy_flex_alloc( sizeof( struct ace_yy_buffer_state ) );
- if ( ! b )
-- ACE_YY_FATAL_ERROR( "out of dynamic memory in ace_yy_create_buffer()" );
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_create_buffer()") );
-
- b->ace_yy_buf_size = size;
-
- /* ace_yy_ch_buf has to be 2 characters longer than the size given because
- * we need to put in 2 end-of-buffer characters.
- */
-- b->ace_yy_ch_buf = (char *) ace_yy_flex_alloc( b->ace_yy_buf_size + 2 );
-+ b->ace_yy_ch_buf = (ACE_TCHAR *) ace_yy_flex_alloc( (b->ace_yy_buf_size + 2 ) * sizeof (ACE_TCHAR));
- if ( ! b->ace_yy_ch_buf )
-- ACE_YY_FATAL_ERROR( "out of dynamic memory in ace_yy_create_buffer()" );
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_create_buffer()") );
-
- b->ace_yy_is_our_buffer = 1;
-
-@@ -1459,6 +1466,11 @@
- }
-
-
-+#ifndef ACE_YY_ALWAYS_INTERACTIVE
-+#ifndef ACE_YY_NEVER_INTERACTIVE
-+extern int nop_isatty ACE_YY_PROTO(( int ));
-+#endif
-+#endif
-
- #ifdef ACE_YY_USE_PROTOS
- void ace_yy_init_buffer( ACE_YY_BUFFER_STATE b, FILE *file )
-@@ -1519,10 +1531,10 @@
-
- #ifndef ACE_YY_NO_SCAN_BUFFER
- #ifdef ACE_YY_USE_PROTOS
--ACE_YY_BUFFER_STATE ace_yy_scan_buffer( char *base, ace_yy_size_t size )
-+ACE_YY_BUFFER_STATE ace_yy_scan_buffer( ACE_TCHAR *base, ace_yy_size_t size )
- #else
- ACE_YY_BUFFER_STATE ace_yy_scan_buffer( base, size )
--char *base;
-+ACE_TCHAR *base;
- ace_yy_size_t size;
- #endif
- {
-@@ -1536,7 +1548,7 @@
-
- b = (ACE_YY_BUFFER_STATE) ace_yy_flex_alloc( sizeof( struct ace_yy_buffer_state ) );
- if ( ! b )
-- ACE_YY_FATAL_ERROR( "out of dynamic memory in ace_yy_scan_buffer()" );
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_scan_buffer()" ));
-
- b->ace_yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
- b->ace_yy_buf_pos = b->ace_yy_ch_buf = base;
-@@ -1557,10 +1569,10 @@
-
- #ifndef ACE_YY_NO_SCAN_STRING
- #ifdef ACE_YY_USE_PROTOS
--ACE_YY_BUFFER_STATE ace_yy_scan_string( ace_yyconst char *ace_yy_str )
-+ACE_YY_BUFFER_STATE ace_yy_scan_string( ace_yyconst ACE_TCHAR *ace_yy_str )
- #else
- ACE_YY_BUFFER_STATE ace_yy_scan_string( ace_yy_str )
--ace_yyconst char *ace_yy_str;
-+ace_yyconst ACE_TCHAR *ace_yy_str;
- #endif
- {
- int len;
-@@ -1574,23 +1586,23 @@
-
- #ifndef ACE_YY_NO_SCAN_BYTES
- #ifdef ACE_YY_USE_PROTOS
--ACE_YY_BUFFER_STATE ace_yy_scan_bytes( ace_yyconst char *bytes, int len )
-+ACE_YY_BUFFER_STATE ace_yy_scan_bytes( ace_yyconst ACE_TCHAR *bytes, int len )
- #else
- ACE_YY_BUFFER_STATE ace_yy_scan_bytes( bytes, len )
--ace_yyconst char *bytes;
-+ace_yyconst ACE_TCHAR *bytes;
- int len;
- #endif
- {
- ACE_YY_BUFFER_STATE b;
-- char *buf;
-+ ACE_TCHAR *buf;
- ace_yy_size_t n;
- int i;
-
- /* Get memory for full buffer, including space for trailing EOB's. */
- n = len + 2;
-- buf = (char *) ace_yy_flex_alloc( n );
-+ buf = (ACE_TCHAR *) ace_yy_flex_alloc( n * sizeof (ACE_TCHAR));
- if ( ! buf )
-- ACE_YY_FATAL_ERROR( "out of dynamic memory in ace_yy_scan_bytes()" );
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "out of dynamic memory in ace_yy_scan_bytes()" ));
-
- for ( i = 0; i < len; ++i )
- buf[i] = bytes[i];
-@@ -1599,7 +1611,7 @@
-
- b = ace_yy_scan_buffer( buf, n );
- if ( ! b )
-- ACE_YY_FATAL_ERROR( "bad buffer in ace_yy_scan_bytes()" );
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "bad buffer in ace_yy_scan_bytes()") );
-
- /* It's okay to grow etc. this buffer, and we should throw it
- * away when we're done.
-@@ -1634,8 +1646,8 @@
- (void *) ace_yy_start_stack, new_size );
-
- if ( ! ace_yy_start_stack )
-- ACE_YY_FATAL_ERROR(
-- "out of memory expanding start-condition stack" );
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT(
-+ "out of memory expanding start-condition stack" ));
- }
-
- ace_yy_start_stack[ace_yy_start_stack_ptr++] = ACE_YY_START;
-@@ -1649,7 +1661,7 @@
- static void ace_yy_pop_state()
- {
- if ( --ace_yy_start_stack_ptr < 0 )
-- ACE_YY_FATAL_ERROR( "start-condition stack underflow" );
-+ ACE_YY_FATAL_ERROR(ACE_LIB_TEXT( "start-condition stack underflow" ));
-
- BEGIN(ace_yy_start_stack[ace_yy_start_stack_ptr]);
- }
-@@ -1668,13 +1680,13 @@
- #endif
-
- #ifdef ACE_YY_USE_PROTOS
--static void ace_yy_fatal_error( ace_yyconst char msg[] )
-+static void ace_yy_fatal_error( ace_yyconst ACE_TCHAR msg[] )
- #else
- static void ace_yy_fatal_error( msg )
--char msg[];
-+ACE_TCHAR msg[];
- #endif
- {
-- (void) fprintf( stderr, "%s\n", msg );
-+ (void) ACE_OS::fprintf( stderr, ACE_LIB_TEXT("%s\n"), msg );
- exit( ACE_YY_EXIT_FAILURE );
- }
-
-@@ -1700,11 +1712,11 @@
-
- #ifndef ace_yytext_ptr
- #ifdef ACE_YY_USE_PROTOS
--static void ace_yy_flex_strncpy( char *s1, ace_yyconst char *s2, int n )
-+static void ace_yy_flex_strncpy( ACE_TCHAR *s1, ace_yyconst ACE_TCHAR *s2, int n )
- #else
- static void ace_yy_flex_strncpy( s1, s2, n )
--char *s1;
--ace_yyconst char *s2;
-+ACE_TCHAR *s1;
-+ace_yyconst ACE_TCHAR *s2;
- int n;
- #endif
- {
-@@ -1716,10 +1728,10 @@
-
- #ifdef ACE_YY_NEED_STRLEN
- #ifdef ACE_YY_USE_PROTOS
--static int ace_yy_flex_strlen( ace_yyconst char *s )
-+static int ace_yy_flex_strlen( ace_yyconst ACE_TCHAR *s )
- #else
- static int ace_yy_flex_strlen( s )
--ace_yyconst char *s;
-+ace_yyconst ACE_TCHAR *s;
- #endif
- {
- register int n;
diff --git a/etc/Svc_Conf_y.cpp.diff b/etc/Svc_Conf_y.cpp.diff
deleted file mode 100644
index af80ecff605..00000000000
--- a/etc/Svc_Conf_y.cpp.diff
+++ /dev/null
@@ -1,358 +0,0 @@
---- Svc_Conf_y.cpp Sun Nov 18 23:59:11 2001
-+++ Svc_Conf_y.cpp.new Mon Nov 19 00:07:29 2001
-@@ -61,7 +61,7 @@
-
- #define ACE_YYTRANSLATE(x) ((unsigned)(x) <= 270 ? ace_yytranslate[x] : 43)
-
--static const char ace_yytranslate[] = { 0,
-+static const ACE_TCHAR ace_yytranslate[] = { 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-@@ -130,13 +130,51 @@
-
- #if ACE_YYDEBUG != 0 || defined (ACE_YYERROR_VERBOSE)
-
--static const char * const ace_yytname[] = { "$","error","$undefined.","ACE_DYNAMIC",
--"ACE_STATIC","ACE_SUSPEND","ACE_RESUME","ACE_REMOVE","ACE_USTREAM","ACE_MODULE_T",
--"ACE_STREAM_T","ACE_SVC_OBJ_T","ACE_ACTIVE","ACE_INACTIVE","ACE_PATHNAME","ACE_IDENT",
--"ACE_STRING","'{'","'}'","':'","'('","')'","'*'","svc_config_entries","svc_config_entry",
--"dynamic","static","suspend","resume","remove","stream","@1","stream_ops","stream_modules",
--"@2","module_list","module","svc_location","status","svc_initializer","type",
--"parameters_opt","pathname", NULL
-+static const ACE_TCHAR * const ace_yytname[] = { ACE_LIB_TEXT("$"),
-+ ACE_LIB_TEXT("error"),
-+ ACE_LIB_TEXT("$undefined."),
-+ ACE_LIB_TEXT("ACE_DYNAMIC"),
-+ ACE_LIB_TEXT("ACE_STATIC"),
-+ ACE_LIB_TEXT("ACE_SUSPEND"),
-+ ACE_LIB_TEXT("ACE_RESUME"),
-+ ACE_LIB_TEXT("ACE_REMOVE"),
-+ ACE_LIB_TEXT("ACE_USTREAM"),
-+ ACE_LIB_TEXT("ACE_MODULE_T"),
-+ ACE_LIB_TEXT("ACE_STREAM_T"),
-+ ACE_LIB_TEXT("ACE_SVC_OBJ_T"),
-+ ACE_LIB_TEXT("ACE_ACTIVE"),
-+ ACE_LIB_TEXT("ACE_INACTIVE"),
-+ ACE_LIB_TEXT("ACE_PATHNAME"),
-+ ACE_LIB_TEXT("ACE_IDENT"),
-+ ACE_LIB_TEXT("ACE_STRING"),
-+ ACE_LIB_TEXT("'{'"),
-+ ACE_LIB_TEXT("'}'"),
-+ ACE_LIB_TEXT("':'"),
-+ ACE_LIB_TEXT("'('"),
-+ ACE_LIB_TEXT("')'"),
-+ ACE_LIB_TEXT("'*'"),
-+ ACE_LIB_TEXT("svc_config_entries"),
-+ ACE_LIB_TEXT("svc_config_entry"),
-+ ACE_LIB_TEXT("dynamic"),
-+ ACE_LIB_TEXT("static"),
-+ ACE_LIB_TEXT("suspend"),
-+ ACE_LIB_TEXT("resume"),
-+ ACE_LIB_TEXT("remove"),
-+ ACE_LIB_TEXT("stream"),
-+ ACE_LIB_TEXT("@1"),
-+ ACE_LIB_TEXT("stream_ops"),
-+ ACE_LIB_TEXT("stream_modules"),
-+
-+ ACE_LIB_TEXT("@2"),
-+ ACE_LIB_TEXT("module_list"),
-+ ACE_LIB_TEXT("module"),
-+ ACE_LIB_TEXT("svc_location"),
-+ ACE_LIB_TEXT("status"),
-+ ACE_LIB_TEXT("svc_initializer"),
-+ ACE_LIB_TEXT("type"),
-+ ACE_LIB_TEXT("parameters_opt"),
-+ ACE_LIB_TEXT("pathname"),
-+ NULL
- };
- #endif
-
-@@ -317,7 +355,7 @@
- goto ace_yybackup; \
- } \
- else \
-- { ace_yyerror ("syntax error: cannot back up"); ACE_YYERROR; } \
-+ { ace_yyerror (ACE_LIB_TEXT("syntax error: cannot back up")); ACE_YYERROR; } \
- while (0)
-
- #define ACE_YYTERROR 1
-@@ -396,12 +434,12 @@
- in available built-in functions on various systems. */
- static void
- __ace_yy_memcpy (to, from, count)
-- char *to;
-- char *from;
-+ ACE_TCHAR *to;
-+ ACE_TCHAR *from;
- unsigned int count;
- {
-- register char *f = from;
-- register char *t = to;
-+ register ACE_TCHAR *f = from;
-+ register ACE_TCHAR *t = to;
- register int i = count;
-
- while (i-- > 0)
-@@ -413,10 +451,10 @@
- /* This is the most reliable way to avoid incompatibilities
- in available built-in functions on various systems. */
- static void
--__ace_yy_memcpy (char *to, char *from, unsigned int count)
-+__ace_yy_memcpy (ACE_TCHAR *to, ACE_TCHAR *from, unsigned int count)
- {
-- register char *t = to;
-- register char *f = from;
-+ register ACE_TCHAR *t = to;
-+ register ACE_TCHAR *f = from;
- register int i = count;
-
- while (i-- > 0)
-@@ -503,7 +541,7 @@
-
- #if ACE_YYDEBUG != 0
- if (ace_yydebug)
-- ACE_OS::fprintf(stderr, "Starting parse\n");
-+ ACE_OS::fprintf(stderr, ACE_LIB_TEXT("Starting parse\n"));
- #endif
-
- ace_yystate = 0;
-@@ -548,13 +586,13 @@
- #ifdef ACE_YYLSP_NEEDED
- /* This used to be a conditional around just the two extra args,
- but that might be undefined if ace_yyoverflow is a macro. */
-- ace_yyoverflow("parser stack overflow",
-+ ace_yyoverflow(ACE_LIB_TEXT("parser stack overflow"),
- &ace_yyss1, size * sizeof (*ace_yyssp),
- &ace_yyvs1, size * sizeof (*ace_yyvsp),
- &ace_yyls1, size * sizeof (*ace_yylsp),
- &ace_yystacksize);
- #else
-- ace_yyoverflow("parser stack overflow",
-+ ace_yyoverflow(ACE_LIB_TEXT("parser stack overflow"),
- &ace_yyss1, size * sizeof (*ace_yyssp),
- &ace_yyvs1, size * sizeof (*ace_yyvsp),
- &ace_yystacksize);
-@@ -568,7 +606,7 @@
- /* Extend the stack our own way. */
- if (ace_yystacksize >= ACE_YYMAXDEPTH)
- {
-- ace_yyerror("parser stack overflow");
-+ ace_yyerror(ACE_LIB_TEXT("parser stack overflow"));
- if (ace_yyfree_stacks)
- {
- free (ace_yyss);
-@@ -586,14 +624,14 @@
- ace_yyfree_stacks = 1;
- #endif
- ace_yyss = (short *) ACE_YYSTACK_ALLOC (ace_yystacksize * sizeof (*ace_yyssp));
-- __ace_yy_memcpy ((char *)ace_yyss, (char *)ace_yyss1,
-+ __ace_yy_memcpy ((ACE_TCHAR *)ace_yyss, (ACE_TCHAR *)ace_yyss1,
- size * (unsigned int) sizeof (*ace_yyssp));
- ace_yyvs = (ACE_YYSTYPE *) ACE_YYSTACK_ALLOC (ace_yystacksize * sizeof (*ace_yyvsp));
-- __ace_yy_memcpy ((char *)ace_yyvs, (char *)ace_yyvs1,
-+ __ace_yy_memcpy ((ACE_TCHAR *)ace_yyvs, (ACE_TCHAR *)ace_yyvs1,
- size * (unsigned int) sizeof (*ace_yyvsp));
- #ifdef ACE_YYLSP_NEEDED
- ace_yyls = (ACE_YYLTYPE *) ACE_YYSTACK_ALLOC (ace_yystacksize * sizeof (*ace_yylsp));
-- __ace_yy_memcpy ((char *)ace_yyls, (char *)ace_yyls1,
-+ __ace_yy_memcpy ((ACE_TCHAR *)ace_yyls, (ACE_TCHAR *)ace_yyls1,
- size * (unsigned int) sizeof (*ace_yylsp));
- #endif
- #endif /* no ace_yyoverflow */
-@@ -606,7 +644,7 @@
-
- #if ACE_YYDEBUG != 0
- if (ace_yydebug)
-- ACE_OS::fprintf(stderr, "Stack size increased to %d\n", ace_yystacksize);
-+ ACE_OS::fprintf(stderr, ACE_LIB_TEXT("Stack size increased to %d\n"), ace_yystacksize);
- #endif
-
- if (ace_yyssp >= ace_yyss + ace_yystacksize - 1)
-@@ -615,7 +653,7 @@
-
- #if ACE_YYDEBUG != 0
- if (ace_yydebug)
-- ACE_OS::fprintf(stderr, "Entering state %d\n", ace_yystate);
-+ ACE_OS::fprintf(stderr, ACE_LIB_TEXT("Entering state %d\n"), ace_yystate);
- #endif
-
- goto ace_yybackup;
-@@ -640,7 +678,7 @@
- {
- #if ACE_YYDEBUG != 0
- if (ace_yydebug)
-- ACE_OS::fprintf(stderr, "Reading a token: ");
-+ ACE_OS::fprintf(stderr, ACE_LIB_TEXT("Reading a token: "));
- #endif
- ace_yychar = ACE_YYLEX;
- }
-@@ -654,7 +692,7 @@
-
- #if ACE_YYDEBUG != 0
- if (ace_yydebug)
-- ACE_OS::fprintf(stderr, "Now at end of input.\n");
-+ ACE_OS::fprintf(stderr, ACE_LIB_TEXT("Now at end of input.\n"));
- #endif
- }
- else
-@@ -664,13 +702,13 @@
- #if ACE_YYDEBUG != 0
- if (ace_yydebug)
- {
-- ACE_OS::fprintf (stderr, "Next token is %d (%s", ace_yychar, ace_yytname[ace_yychar1]);
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT("Next token is %d (%s"), ace_yychar, ace_yytname[ace_yychar1]);
- /* Give the individual parser a way to print the precise meaning
- of a token, for further debugging info. */
- #ifdef ACE_YYPRINT
- ACE_YYPRINT (stderr, ace_yychar, ace_yylval);
- #endif
-- ACE_OS::fprintf (stderr, ")\n");
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT(")\n"));
- }
- #endif
- }
-@@ -705,7 +743,7 @@
-
- #if ACE_YYDEBUG != 0
- if (ace_yydebug)
-- ACE_OS::fprintf(stderr, "Shifting token %d (%s), ", ace_yychar, ace_yytname[ace_yychar1]);
-+ ACE_OS::fprintf(stderr, ACE_LIB_TEXT("Shifting token %d (%s), "), ace_yychar, ace_yytname[ace_yychar1]);
- #endif
-
- /* Discard the token being shifted unless it is eof. */
-@@ -741,13 +779,13 @@
- {
- int i;
-
-- ACE_OS::fprintf (stderr, "Reducing via rule %d (line %d), ",
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT("Reducing via rule %d (line %d), "),
- ace_yyn, ace_yyrline[ace_yyn]);
-
- /* Print the symbols being reduced, and their result. */
- for (i = ace_yyprhs[ace_yyn]; ace_yyrhs[i] > 0; i++)
-- ACE_OS::fprintf (stderr, "%s ", ace_yytname[ace_yyrhs[i]]);
-- ACE_OS::fprintf (stderr, " -> %s\n", ace_yytname[ace_yyr1[ace_yyn]]);
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT("%s "), ace_yytname[ace_yyrhs[i]]);
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT(" -> %s\n"), ace_yytname[ace_yyr1[ace_yyn]]);
- }
- #endif
-
-@@ -1013,10 +1051,10 @@
- if (ace_yydebug)
- {
- short *ssp1 = ace_yyss - 1;
-- ACE_OS::fprintf (stderr, "state stack now");
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT("state stack now"));
- while (ssp1 != ace_yyssp)
-- ACE_OS::fprintf (stderr, " %d", *++ssp1);
-- ACE_OS::fprintf (stderr, "\n");
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT(" %d"), *++ssp1);
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT("\n"));
- }
- #endif
-
-@@ -1067,42 +1105,42 @@
- if (ace_yyn > ACE_YYFLAG && ace_yyn < ACE_YYLAST)
- {
- int size = 0;
-- char *msg;
-+ ACE_TCHAR *msg;
- int x, count;
-
- count = 0;
- /* Start X at -ace_yyn if nec to avoid negative indexes in ace_yycheck. */
- for (x = (ace_yyn < 0 ? -ace_yyn : 0);
-- x < (sizeof(ace_yytname) / sizeof(char *)); x++)
-+ x < (sizeof(ace_yytname) / sizeof(ACE_TCHAR *)); x++)
- if (ace_yycheck[x + ace_yyn] == x)
-- size += strlen(ace_yytname[x]) + 15, count++;
-- msg = (char *) malloc(size + 15);
-+ size += ACE_OS::strlen(ace_yytname[x]) + 15, count++;
-+ msg = new ACE_TCHAR[size + 15];
- if (msg != 0)
- {
-- strcpy(msg, "parse error");
-+ ACE_OS::strcpy(msg, ACE_LIB_TEXT("parse error"));
-
- if (count < 5)
- {
- count = 0;
- for (x = (ace_yyn < 0 ? -ace_yyn : 0);
-- x < (sizeof(ace_yytname) / sizeof(char *)); x++)
-+ x < (sizeof(ace_yytname) / sizeof(ACE_TCHAR *)); x++)
- if (ace_yycheck[x + ace_yyn] == x)
- {
-- strcat(msg, count == 0 ? ", expecting `" : " or `");
-- strcat(msg, ace_yytname[x]);
-- strcat(msg, "'");
-+ ACE_OS::strcat(msg, count == 0 ? ACE_LIB_TEXT(", expecting `") : ACE_LIB_TEXT(" or `"));
-+ ACE_OS::strcat(msg, ACE_TEXT_CHAR_TO_TCHAR (ace_yytname[x]));
-+ ACE_OS::strcat(msg, ACE_LIB_TEXT("'"));
- count++;
- }
- }
- ace_yyerror(msg);
-- free(msg);
-+ delete [] msg;
- }
- else
-- ace_yyerror ("parse error; also virtual memory exceeded");
-+ ace_yyerror (ACE_LIB_TEXT("parse error; also virtual memory exceeded"));
- }
- else
- #endif /* ACE_YYERROR_VERBOSE */
-- ace_yyerror("parse error");
-+ ace_yyerror(ACE_LIB_TEXT("parse error"));
- }
-
- goto ace_yyerrlab1;
-@@ -1118,7 +1156,7 @@
-
- #if ACE_YYDEBUG != 0
- if (ace_yydebug)
-- ACE_OS::fprintf(stderr, "Discarding token %d (%s).\n", ace_yychar, ace_yytname[ace_yychar1]);
-+ ACE_OS::fprintf(stderr, ACE_LIB_TEXT("Discarding token %d (%s).\n"), ace_yychar, ace_yytname[ace_yychar1]);
- #endif
-
- ace_yychar = ACE_YYEMPTY;
-@@ -1153,10 +1191,10 @@
- if (ace_yydebug)
- {
- short *ssp1 = ace_yyss - 1;
-- ACE_OS::fprintf (stderr, "Error: state stack now");
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT("Error: state stack now"));
- while (ssp1 != ace_yyssp)
-- ACE_OS::fprintf (stderr, " %d", *++ssp1);
-- ACE_OS::fprintf (stderr, "\n");
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT(" %d"), *++ssp1);
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT("\n"));
- }
- #endif
-
-@@ -1186,7 +1224,7 @@
-
- #if ACE_YYDEBUG != 0
- if (ace_yydebug)
-- ACE_OS::fprintf(stderr, "Shifting error token, ");
-+ ACE_OS::fprintf(stderr, ACE_LIB_TEXT("Shifting error token, "));
- #endif
-
- *++ace_yyvsp = ace_yylval;
-@@ -1355,13 +1393,13 @@
- // Main driver program.
-
- int
--main (int argc, char *argv[])
-+main (int argc, ACE_TCHAR *argv[])
- {
- ACE_Svc_Conf_Param param (stdin);
-
- // Try to reopen any filename argument to use ACE_YYIN.
-- if (argc > 1 && (ace_yyin = freopen (argv[1], "r", stdin)) == 0)
-- (void) ::ACE_OS::fprintf (stderr, "usage: %s [file]\n", argv[0]), ACE_OS::exit (1);
-+ if (argc > 1 && (ace_yyin = freopen (argv[1], ACE_LIB_TEXT("r"), stdin)) == 0)
-+ ACE_OS::fprintf (stderr, ACE_LIB_TEXT("usage: %s [file]\n"), argv[0]), ACE_OS::exit (1);
-
- return ace_yyparse (&param);
- }
diff --git a/etc/ace.doxygen b/etc/ace.doxygen
deleted file mode 100644
index 3e5f63c29c6..00000000000
--- a/etc/ace.doxygen
+++ /dev/null
@@ -1,192 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = ACE
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = docs ace
-FILE_PATTERNS = *.h *.cpp *.inl *.i *.txt
-RECURSIVE = NO
-EXCLUDE = ace/config.h
-EXCLUDE_PATTERNS = config-*.h
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/ace
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES =
-GENERATE_TAGFILE = html/ace/ACE.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS =
diff --git a/etc/ace_man.doxygen b/etc/ace_man.doxygen
deleted file mode 100644
index 98b569188cb..00000000000
--- a/etc/ace_man.doxygen
+++ /dev/null
@@ -1,192 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = ACE
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = NO
-SOURCE_BROWSER = NO
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = NO
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = ace
-FILE_PATTERNS = *.h
-RECURSIVE = NO
-EXCLUDE = ace/config.h
-EXCLUDE_PATTERNS = config-*.h
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = NO
-HTML_OUTPUT =
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = YES
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES =
-GENERATE_TAGFILE =
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = NO
-CLASS_GRAPH = NO
-COLLABORATION_GRAPH = NO
-INCLUDE_GRAPH = NO
-INCLUDED_BY_GRAPH = NO
-GRAPHICAL_HIERARCHY = NO
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS =
diff --git a/etc/ace_qos.doxygen b/etc/ace_qos.doxygen
deleted file mode 100644
index de0ceeeb2a9..00000000000
--- a/etc/ace_qos.doxygen
+++ /dev/null
@@ -1,192 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = ACE_QoS
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = ace/QoS
-FILE_PATTERNS = *.cpp *.h *.i *.inl
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/ace/QoS
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=..
-GENERATE_TAGFILE = html/ace/QoS/ACE_QoS.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS =
diff --git a/etc/ace_rmcast.doxygen b/etc/ace_rmcast.doxygen
deleted file mode 100644
index 855c47e1051..00000000000
--- a/etc/ace_rmcast.doxygen
+++ /dev/null
@@ -1,192 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = ACE_RMCast
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = ace/RMCast
-FILE_PATTERNS = *.cpp *.h *.i *.inl
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/ace/rmcast
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=..
-GENERATE_TAGFILE = html/ace/rmcast/ACE_RMCast.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS =
diff --git a/etc/ace_ssl.doxygen b/etc/ace_ssl.doxygen
deleted file mode 100644
index 6ad55cb9f9b..00000000000
--- a/etc/ace_ssl.doxygen
+++ /dev/null
@@ -1,192 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = ACE_SSL
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = ace/SSL
-FILE_PATTERNS = *.cpp *.h *.i *.inl
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/ace/ssl
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = NO
-EXPAND_ONLY_PREDEF = NO
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=..
-GENERATE_TAGFILE = html/ace/ssl/ACE_SSL.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS =
diff --git a/etc/create-jace-release b/etc/create-jace-release
deleted file mode 100755
index 50206b14a01..00000000000
--- a/etc/create-jace-release
+++ /dev/null
@@ -1,9 +0,0 @@
-#! /bin/sh
-# $Id$
-# Builds the JACE release.
-
-umask 2
-
-cd java
-find src doc examples apps tests classes -name CVS -prune -o -print | cpio -o -H tar | gzip -9 > ../JACE-1.2.tar.gz
-find src doc examples apps tests classes ImageProcessing -name CVS -prune -o -print | cpio -o -H tar | gzip -9 > ../JACE-1.3.tar.gz
diff --git a/etc/enforce_ace_try.diff b/etc/enforce_ace_try.diff
deleted file mode 100644
index c17a1f855fa..00000000000
--- a/etc/enforce_ace_try.diff
+++ /dev/null
@@ -1,271 +0,0 @@
-Index: ace/CORBA_macros.h
-===================================================================
-RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/ace/CORBA_macros.h,v
-retrieving revision 1.19
-diff -u -r1.19 CORBA_macros.h
---- CORBA_macros.h 1999/06/28 00:53:07 1.19
-+++ CORBA_macros.h 1999/07/31 22:52:52
-@@ -174,15 +174,15 @@
- // or ACE_CHECK_ENV. These two macros should _NOT_ be used within
- // try blocks. Use ACE_TRY_CHECK or ACE_TRY_CHECK_EX instead.
- # define ACE_CHECK \
-- if (ACE_TRY_ENV . exception () != 0) \
-+ if (ACE_TRY_ENV . _exception () != 0) \
- return
- // When function requires a return value
- # define ACE_CHECK_RETURN(RETV) \
-- if (ACE_TRY_ENV . exception () != 0) \
-+ if (ACE_TRY_ENV . _exception () != 0) \
- return RETV
-
- // ACE_THROW_INT should not be used by the user.
--# define ACE_THROW_INT(EXCEPTION) ACE_TRY_ENV.exception (new EXCEPTION)
-+# define ACE_THROW_INT(EXCEPTION) ACE_TRY_ENV._exception (new EXCEPTION)
-
- // Throwing exceptions will inevitably cause an return from the current
- // function. These two macros should _NOT_ be used within try blocks.
-@@ -190,14 +190,14 @@
- # define ACE_THROW(EXCEPTION) \
- do \
- { \
-- ACE_TRY_ENV.exception (new EXCEPTION); \
-+ ACE_TRY_ENV._exception (new EXCEPTION); \
- return; \
- } while (0)
-
- # define ACE_THROW_RETURN(EXCEPTION,RETV) \
- do \
- { \
-- ACE_TRY_ENV.exception (new EXCEPTION); \
-+ ACE_TRY_ENV._exception (new EXCEPTION); \
- return RETV; \
- } while (0)
-
-@@ -245,7 +245,7 @@
- // Check for exceptions within try blocks.
- # define ACE_TRY_CHECK \
- { \
-- if (ACE_TRY_ENV.exception () != 0) \
-+ if (ACE_TRY_ENV._exception () != 0) \
- { \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL; \
-@@ -255,7 +255,7 @@
- // Checking exception within EX try blocks.
- # define ACE_TRY_CHECK_EX(LABEL) \
- { \
-- if (ACE_TRY_ENV.exception () != 0) \
-+ if (ACE_TRY_ENV._exception () != 0) \
- { \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL ## LABEL; \
-@@ -265,14 +265,14 @@
- // Throwing exception within TRY blocks.
- # define ACE_TRY_THROW(EXCEPTION) \
- { \
-- ACE_TRY_ENV.exception (new EXCEPTION); \
-+ ACE_TRY_ENV._exception (new EXCEPTION); \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL; \
- }
-
- # define ACE_TRY_THROW_EX(EXCEPTION,LABEL) \
- { \
-- ACE_TRY_ENV.exception (new EXCEPTION); \
-+ ACE_TRY_ENV._exception (new EXCEPTION); \
- ACE_TRY_FLAG = 0; \
- goto ACE_TRY_LABEL ## LABEL; \
- }
-@@ -291,14 +291,14 @@
- # define ACE_CATCH(TYPE,VAR) \
- } while (0); \
- do \
-- if (ACE_TRY_ENV.exception () != 0 && ACE_EXCEPTION_NOT_CAUGHT && \
-- TYPE::_narrow(ACE_TRY_ENV.exception ()) != 0) \
-+ if (ACE_TRY_ENV._exception () != 0 && ACE_EXCEPTION_NOT_CAUGHT && \
-+ TYPE::_narrow(ACE_TRY_ENV._exception ()) != 0) \
- { \
- CORBA::Environment ACE_CAUGHT_ENV = ACE_TRY_ENV;\
- ACE_EXCEPTION_NOT_CAUGHT = 0; \
-- TYPE &VAR = *TYPE::_narrow (ACE_CAUGHT_ENV.exception ()); \
-+ TYPE &VAR = *TYPE::_narrow (ACE_CAUGHT_ENV._exception ()); \
- ACE_UNUSED_ARG (VAR); \
-- ACE_TRY_ENV.clear ();
-+ ACE_TRY_ENV._clear ();
-
- // ACE_CATCHANY uses ACE_CATCH to catch all CORBA exceptions.
- # define ACE_CATCHANY ACE_CATCH (CORBA::Exception, ACE_ANY_EXCEPTION)
-Index: TAO/tao/Environment.cpp
-===================================================================
-RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Environment.cpp,v
-retrieving revision 1.29
-diff -u -r1.29 Environment.cpp
---- Environment.cpp 1999/06/24 01:49:38 1.29
-+++ Environment.cpp 1999/07/31 22:52:52
-@@ -88,15 +88,15 @@
- {
- if (this != &rhs)
- {
-- this->clear ();
-- this->exception (rhs.exception_);
-+ this->_clear ();
-+ this->_exception (rhs.exception_);
- }
- return *this;
- }
-
- CORBA_Environment::~CORBA_Environment (void)
- {
-- this->clear ();
-+ this->_clear ();
-
- // If previous is 0 then this is the first Environment, allocated
- // with the ORB, it shouldn't try to pop because the ORB is beign
-@@ -106,11 +106,11 @@
- }
-
- void
--CORBA_Environment::exception (CORBA_Exception *ex)
-+CORBA_Environment::_exception (CORBA_Exception *ex)
- {
- if (ex != this->exception_)
- {
-- this->clear ();
-+ this->_clear ();
- this->exception_ = ex;
- }
- if (this->exception_ != 0)
-@@ -123,7 +123,7 @@
- }
-
- void
--CORBA_Environment::clear (void)
-+CORBA_Environment::_clear (void)
- {
- if (this->exception_)
- this->exception_->_decr_refcnt ();
-@@ -149,7 +149,7 @@
- // the Environment argument) because then the user is supposed to
- // clear the environment before calling into the ORB.
- //
-- TAO_ORB_Core_instance ()->default_environment ()->clear ();
-+ TAO_ORB_Core_instance ()->default_environment ()->_clear ();
- #endif /* TAO_HAS_EXCEPTIONS */
-
- return CORBA::default_environment ();
-@@ -210,8 +210,8 @@
- // standard I/O stream passed as a parameter.
-
- void
--CORBA::Environment::print_exception (const char *info,
-- FILE *) const
-+CORBA::Environment::_print_exception (const char *info,
-+ FILE *) const
- {
- if (this->exception_)
- {
-Index: TAO/tao/Environment.h
-===================================================================
-RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Environment.h,v
-retrieving revision 1.17
-diff -u -r1.17 Environment.h
---- Environment.h 1999/06/25 19:51:05 1.17
-+++ Environment.h 1999/07/31 22:52:52
-@@ -76,11 +76,11 @@
- static CORBA_Environment * _nil (void);
- // Some static methods that need to be defined in every pseudo object
-
-- CORBA_Exception* exception (void) const;
-+ CORBA_Exception* _exception (void) const;
- // Return the exception. Caller must call <_incr_refcnf> in order
- // to keep the ptr.
-
-- void exception (CORBA_Exception *ex);
-+ void _exception (CORBA_Exception *ex);
- // Set the exception to <ex>, taking a reference on it.
-
- int exception_type (void) const;
-@@ -90,10 +90,10 @@
- const char *exception_id (void) const;
- // return the repository ID for the exception.
-
-- void clear (void);
-+ void _clear (void);
- // Clear the exception.
-
-- void print_exception (const char *info,
-+ void _print_exception (const char *info,
- FILE *f=stdout) const;
- // Print the exception to output determined by f. This function is
- // not CORBA compliant.
-Index: TAO/tao/Environment.i
-===================================================================
-RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Environment.i,v
-retrieving revision 1.7
-diff -u -r1.7 Environment.i
---- Environment.i 1999/06/25 19:50:57 1.7
-+++ Environment.i 1999/07/31 22:52:52
-@@ -15,7 +15,7 @@
- }
-
- ACE_INLINE CORBA_Exception*
--CORBA_Environment::exception (void) const
-+CORBA_Environment::_exception (void) const
- {
- return this->exception_;
- }
-Index: TAO/tao/Invocation.cpp
-===================================================================
-RCS file: /project/ace/cvs-repository/ACE_wrappers-repository/TAO/tao/Invocation.cpp,v
-retrieving revision 1.102
-diff -u -r1.102 Invocation.cpp
---- Invocation.cpp 1999/07/22 20:06:46 1.102
-+++ Invocation.cpp 1999/07/31 22:52:52
-@@ -47,6 +47,12 @@
-
- #endif /* ACE_ENABLE_TIMEPROBES */
-
-+#if defined (ACE_CORBA_HAS_EXCEPTIONS)
-+#define ACE_THROW_EX(EXCEPTION) EXCEPTION->_raise ();
-+#else
-+#define ACE_THROW_EX(EXCEPTION) ACE_TRY_ENV._exception (EXCEPTION)
-+#endif /* ACE_CORBA_HAS_EXCEPTIONS */
-+
- // Normal invocations don't involve any heap al; messages are
- // constructed into stack-based buffers and are read into those
- // buffers too. Larger buffers are heap-allocated as needed.
-@@ -472,9 +478,7 @@
- CORBA::COMPLETED_YES));
- ACE_CHECK_RETURN (TAO_INVOKE_EXCEPTION);
-
-- // @@ Think about a better way to raise the exception here,
-- // maybe we need some more macros?
-- ACE_TRY_ENV.exception (exception); // We can not use ACE_THROW here.
-+ ACE_THROW_EX (exception);
- return TAO_INVOKE_EXCEPTION;
- }
-
-@@ -560,9 +564,7 @@
- "TAO: (%P|%t) Raising exception %s\n",
- buf.in ()));
-
-- // @@ Think about a better way to raise the exception here,
-- // maybe we need some more macros?
-- ACE_TRY_ENV.exception (exception); // We can not use ACE_THROW here.
-+ ACE_THROW_EX (exception);
- return TAO_INVOKE_EXCEPTION;
- }
-
-@@ -746,11 +748,7 @@
- ex->minor (minor);
- ex->completed (CORBA::CompletionStatus (completion));
-
--
-- // @@ There should be a better way to raise this exception!
-- // This code works for both native and emulated exceptions,
-- // but it is ugly.
-- ACE_TRY_ENV.exception (ex); // We can not use ACE_THROW here.
-+ ACE_THROW_EX (ex);
- return TAO_INVOKE_OK;
- }
- // NOTREACHED.
diff --git a/etc/purify.solaris2 b/etc/purify.solaris2
deleted file mode 100644
index cd01a1fa08b..00000000000
--- a/etc/purify.solaris2
+++ /dev/null
@@ -1,161 +0,0 @@
-#### $Id$
-####
-#### To use: create a symlink, named .purify, to this file in your home
-#### directory:
-#### % ln -s $ACE_ROOT/env/purify.solaris2 ~/.purify
-#### Please note the leading dot in .purify.
-####
-#### I use these Purify options:
-#### -best-effort -cache-dir=/tmp/purifycache -chain-length=20 \
-#### -fds-inuse-at-exit=no -ignore-signals=SIGINT -inuse-at-exit \
-#### -max_threads=100
-#### These options are hard-coded in ACE wrapper_macros.GNU.
-
-####
-#### In addition to what's already in Purify's .purify.solaris2:
-####
-suppress miu malloc; *alloc; thr_setspecific
-suppress miu malloc; realloc; thr_keycreate
-suppress mlk malloc; calloc; thr_setspecific
-suppress plk malloc; *alloc; thr_setspecific
-suppress miu malloc; realloc; putenv
-
-####
-#### This looks like a minor problem in the g++ rx library or the Solaris 2.5
-#### C library qsort.
-####
-suppress umr qst; qsort; rx_compactify_nfa; rx_compile; re_compile_pattern; Regex::Regex(const char*,int,int,const char*); Regex::_GLOBAL_.I.(const Regex&)
-
-####
-#### A problem in Solaris LWPs? This shows up in the ACE Thread_Manager_Test.
-####
-suppress umr _lwp_in_syscall; _thrp_suspend
-
-####
-#### These look like benign UMRs in the threads library.
-####
-suppress umr __sigprocmask; _thrp_exit; _t_cancel; _thr_exit_common
-suppress umr __sigprocmask; _thrp_exit; _thr_exit_common; _age
-
-####
-#### With Solaris 2.5.1, time (and other) functions apparently hold
-#### on to memory for the duration of a process. Not unexpected, but
-#### the following suppress the Purify MIU reports.
-####
-suppress miu malloc; calloc; _tzload; _ltzset_u; localtime_u; ctime
-suppress miu malloc; calloc; _tzload; _ltzset_u; localtime_u; localtime_r; ctime_r
-suppress miu malloc; strdup; _tzload; _ltzset_u; localtime_u; ctime
-suppress miu malloc; strdup; _tzload; _ltzset_u; localtime_u; localtime_r; ctime_r
-suppress miu malloc; tzcpy; getzname; _ltzset_u; localtime_u; ctime
-suppress miu malloc; tzcpy; getzname; _ltzset_u; localtime_u; localtime_r; ctime_r
-suppress miu malloc; strdup; getsystemTZ; _ltzset_u; localtime_u; localtime_r; ctime_r
-suppress miu malloc; _atfork_append; _ld_concurrency; _init
-suppress miu malloc; Balloc; _IO_dtoa; _IO_outfloat; ostream::operator <<(double)
-
-####
-#### Another small leak, this doesn't look harmful.
-####
-suppress miu malloc; process_nls_path; catopen; __STATIC_CONSTRUCTOR(void); _init
-
-####
-#### Socket-related allocations, revealed by IOStream_Test or
-#### SOCK_Connector_Test.
-####
-suppress miu malloc; _nss_XbyY_buf_alloc; gethostbyaddr
-suppress miu malloc; _nss_XbyY_buf_alloc; gethostbyname
-suppress miu malloc; _s_alloc_bufs; _s_alloc; _s_socreate
-suppress miu malloc; add_silink; _s_alloc; _s_socreate
-suppress miu malloc; calloc; fgetnetconfig; getnetlist; setnetconfig
-suppress miu malloc; getnetlist; setnetconfig
-suppress miu malloc; *; getnetlist; setnetconfig
-suppress miu malloc; *; *; getnetlist; setnetconfig
-suppress miu malloc; realloc; rx_compactify_nfa
-suppress miu malloc; strdup; __rpc_getconfip; gethostby*_r
-suppress miu malloc; strdup; getlookups; fgetnetconfig; getnetlist
-suppress miu malloc; *; _nsw_getoneconfig; do_getconfig
-suppress miu malloc; add_concell; do_getconfig; __nsw_getconfig
-
-####
-#### Allocations during OS accept call. Can be seen in the
-#### Cached_Accept_Conn_Test and Cached_Conn_Test
-####
-suppress mlk malloc; setnetconfig; _s_match_netconf; _s_socreate; __accept; accept
-
-####
-#### With Sun C++ 4.2, there's an FMR within the ostream deletion.
-####
-suppress fmr unsafe_ostream::flush(void); unsafe_ostream::~unsafe_ostream(void); ostream::~ostream(void); iostream::~iostream(void)
-
-####
-#### Problem with FMR in thread-specific storage? The Purify
-#### trace doesn't show where the allocated storage was freed;
-#### it usually does for FMRs.
-####
-#### **** Purify instrumented ./TSS_Test (pid 16650) ****
-#### FMR: Free memory read:
-#### * This is occurring while in thread 5:
-#### thr_getspecific [libthread.so.1]
-#### worker(void*) [OS.i:3975]
-#### _thread_start [libthread.so.1]
-#### * Reading 4 bytes from 0x7e8c8 in the heap.
-#### * Address 0x7e8c8 is 24 bytes into a freed block at 0x7e8b0 of 32 bytes.
-#### * This block was allocated from thread 4:
-#### malloc [rtlib.o]
-#### realloc [rtlib.o]
-#### thr_keycreate [libthread.so.1]
-#### ACE_OS::thr_keycreate(unsigned int*,void(*)(void*),void*) [OS.cpp:1938]
-#### worker(void*) [TSS_Test.cpp:125]
-#### _thread_start [libthread.so.1]
-#### * There have been 0 frees since this block was freed thread 4.
-####
-#### **** Purify instrumented ./TSS_Test (pid 16650) ****
-#### FMR: Free memory read:
-#### * This is occurring while in thread 5:
-#### thr_setspecific [libthread.so.1]
-#### ACE_OS::thr_setspecific(unsigned int,void*) [OS.cpp:1866]
-#### worker(void*) [TSS_Test.cpp:98]
-#### _thread_start [libthread.so.1]
-#### * Reading 4 bytes from 0x7e8c8 in the heap.
-#### * Address 0x7e8c8 is 24 bytes into a freed block at 0x7e8b0 of 32 bytes.
-#### * This block was allocated from thread 4:
-#### malloc [rtlib.o]
-#### realloc [rtlib.o]
-#### thr_keycreate [libthread.so.1]
-#### ACE_OS::thr_keycreate(unsigned int*,void(*)(void*),void*) [OS.cpp:1938]
-#### worker(void*) [TSS_Test.cpp:125]
-#### _thread_start [libthread.so.1]
-#### * There have been 0 frees since this block was freed thread 4.
-####
-suppress fmr thr_getspecific
-suppress fmr thr_setspecific
-
-####
-#### Write of one byte beyond the stack in ::pthread_setcanceltype ().
-#### This code fragment exhibits the BSW error:
-#### int result;
-#### return ::pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &result);
-####
-suppress bsw pthread_setcanceltype
-
-####
-#### TSS leaks: on Solaris, TSS isn't cleaned up very well.
-####
-suppress mlk malloc; __0OnWuI; operator new(unsigned int); ACE_TSS<*>::make_TSS_TYPE(void) const
-
-# Don't seem to need these any more:
-# suppress miu malloc; __bUiLtIn_nEw; __builtin_new; ACE_Task_Exit::instance ()
-# suppress miu malloc; __bUiLtIn_nEw; __builtin_new; ACE_TSS<*>::make_TSS_TYPE () const
-# suppress mlk malloc; __bUiLtIn_nEw; __builtin_new; ACE_TSS<*>::make_TSS_TYPE () const
-# suppress plk malloc; __bUiLtIn_nEw; __builtin_new; ACE_TSS<*>::make_TSS_TYPE () const
-
-####
-#### SunOS 5.7's thread library has these leaks.
-####
-suppress miu malloc; _atfork_append; _t0init; _init
-suppress miu malloc; _atfork_append; _ld_concurrency; _t0init; _init
-
-suppress umr *; get_info_by_class; sched_getparam
-suppress umr *; *; get_info_by_class; sched_getparam
-suppress umr get_local_info; order_haddrlist; _get_hostserv_inetnetdir_byname; gethostbyname_r
-
-#### EOF
diff --git a/etc/tao.doxygen b/etc/tao.doxygen
deleted file mode 100644
index 624235b8fb8..00000000000
--- a/etc/tao.doxygen
+++ /dev/null
@@ -1,192 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/tao
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl *.txt
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS = InterfaceC.cpp Services.h
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../ace
-GENERATE_TAGFILE = html/tao/TAO.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_av.doxygen b/etc/tao_av.doxygen
deleted file mode 100644
index 39ac4929019..00000000000
--- a/etc/tao_av.doxygen
+++ /dev/null
@@ -1,197 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_AV
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/orbsvcs/orbsvcs/AVStreams.idl \
- TAO/orbsvcs/orbsvcs/Null_MediaCtrl.idl \
- TAO/orbsvcs/orbsvcs/sfp.idl \
- TAO/orbsvcs/orbsvcs/AV
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl *.idl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/av
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=.. \
- html/tao/portableserver/TAO_PortableServer.tag=../portableserver
-GENERATE_TAGFILE = html/tao/av/TAO_AV.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_cosevent.doxygen b/etc/tao_cosevent.doxygen
deleted file mode 100644
index f2b57903ef2..00000000000
--- a/etc/tao_cosevent.doxygen
+++ /dev/null
@@ -1,198 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_CosEvent
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = \
- TAO/orbsvcs/orbsvcs/CosEventComm.idl \
- TAO/orbsvcs/orbsvcs/CosEventChannelAdmin.idl \
- TAO/orbsvcs/orbsvcs/CosEvent
-FILE_PATTERNS = CEC_*.cpp CEC_*.h CEC_*.i CEC_*.inl CEC_*.pidl *.idl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/cosevent
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO/orbsvcs TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=.. \
- html/tao/portableserver/TAO_PortableServer.tag=../portableserver \
- html/tao/esf/TAO_ESF.tag=../esf
-GENERATE_TAGFILE = html/tao/cosevent/TAO_CosEvent.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_cosnotification.doxygen b/etc/tao_cosnotification.doxygen
deleted file mode 100644
index 85918aebd0a..00000000000
--- a/etc/tao_cosnotification.doxygen
+++ /dev/null
@@ -1,201 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_CosNotification
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = \
- TAO/orbsvcs/orbsvcs/CosNotification.idl \
- TAO/orbsvcs/orbsvcs/CosNotifyFilter.idl \
- TAO/orbsvcs/orbsvcs/CosNotifyComm.idl \
- TAO/orbsvcs/orbsvcs/CosNotifyChannelAdmin.idl \
- TAO/orbsvcs/orbsvcs/Notify
-FILE_PATTERNS = *.cpp *.h CEC_*.i CEC_*.inl CEC_*.pidl *.idl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/cosnotification
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO/orbsvcs TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=.. \
- html/tao/portableserver/TAO_PortableServer.tag=../portableserver \
- html/tao/cosevent/TAO_CosEvent.tag=../cosevent \
- html/tao/esf/TAO_ESF.tag=../esf
-GENERATE_TAGFILE = html/tao/cosevent/TAO_CosEvent.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_dynamicany.doxygen b/etc/tao_dynamicany.doxygen
deleted file mode 100644
index 956222287a0..00000000000
--- a/etc/tao_dynamicany.doxygen
+++ /dev/null
@@ -1,192 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_DynamicAny
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/tao/DynamicAny
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS = InterfaceC.cpp Services.h
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/dynamicany
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace html/tao/TAO.tag=..
-GENERATE_TAGFILE = html/tao/dynamicany/TAO_DynamicAny.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_dynamicinterface.doxygen b/etc/tao_dynamicinterface.doxygen
deleted file mode 100644
index c8a3cc5c626..00000000000
--- a/etc/tao_dynamicinterface.doxygen
+++ /dev/null
@@ -1,192 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_DynamicInterface
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/tao/DynamicInterface
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS = InterfaceC.cpp Services.h
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/dynamicinterface
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace html/tao/TAO.tag=..
-GENERATE_TAGFILE = html/tao/dynamicinterface/TAO_DynamicInterface.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_esf.doxygen b/etc/tao_esf.doxygen
deleted file mode 100644
index a89324f4776..00000000000
--- a/etc/tao_esf.doxygen
+++ /dev/null
@@ -1,194 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_ESF
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/orbsvcs/orbsvcs/ESF
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl *.idl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/esf
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=.. \
- html/tao/portableserver/TAO_PortableServer.tag=../portableserver
-GENERATE_TAGFILE = html/tao/esf/TAO_ESF.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_implrepo.doxygen b/etc/tao_implrepo.doxygen
deleted file mode 100644
index 57c159763d6..00000000000
--- a/etc/tao_implrepo.doxygen
+++ /dev/null
@@ -1,195 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_Implementation_Repository
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/orbsvcs/ImplRepo_Service
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.txt
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/implrepo_service
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO/orbsvcs TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=.. \
- html/tao/portableserver/TAO_PortableServer.tag=../portableserver \
- html/tao/iortable/TAO_IORTable.tag=../iortable
-GENERATE_TAGFILE = html/tao/implrepo_service/TAO_ImplRepo.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_iormanip.doxygen b/etc/tao_iormanip.doxygen
deleted file mode 100644
index bfc78145ed2..00000000000
--- a/etc/tao_iormanip.doxygen
+++ /dev/null
@@ -1,193 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_IORManipulation
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/tao/IORManipulation
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS = InterfaceC.cpp Services.h
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/iormanipulation
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=..
-GENERATE_TAGFILE = html/tao/iormanipulation/TAO_IORManipulation.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_iortable.doxygen b/etc/tao_iortable.doxygen
deleted file mode 100644
index 06c04397f93..00000000000
--- a/etc/tao_iortable.doxygen
+++ /dev/null
@@ -1,193 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_IORTable
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/tao/IORTable
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS = InterfaceC.cpp Services.h
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/iortable
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=..
-GENERATE_TAGFILE = html/tao/iortable/TAO_IORTable.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Beta
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Beta/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Beta
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_portableserver.doxygen b/etc/tao_portableserver.doxygen
deleted file mode 100644
index 244ff6b30d4..00000000000
--- a/etc/tao_portableserver.doxygen
+++ /dev/null
@@ -1,193 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_PortableServer
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/tao/PortableServer
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS = InterfaceC.cpp Services.h
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/portableserver
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=..
-GENERATE_TAGFILE = html/tao/portableserver/TAO_PortableServer.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_rtcorba.doxygen b/etc/tao_rtcorba.doxygen
deleted file mode 100644
index 2ccb2f91256..00000000000
--- a/etc/tao_rtcorba.doxygen
+++ /dev/null
@@ -1,193 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_RTCORBA
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/tao/RTCORBA
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/rtcorba
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=..
-GENERATE_TAGFILE = html/tao/rtcorba/TAO_RTCORBA.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_rtevent.doxygen b/etc/tao_rtevent.doxygen
deleted file mode 100644
index 5a232503233..00000000000
--- a/etc/tao_rtevent.doxygen
+++ /dev/null
@@ -1,203 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_RTEvent
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/orbsvcs/orbsvcs/RtecEventComm.idl \
- TAO/orbsvcs/orbsvcs/RtecEventChannelAdmin.idl \
- TAO/orbsvcs/orbsvcs/RtecBase.idl \
- TAO/orbsvcs/orbsvcs/RtecDefaultEventData.idl \
- TAO/orbsvcs/orbsvcs/RtecUDPAdmin.idl \
- TAO/orbsvcs/orbsvcs/Event_Utilities.h \
- TAO/orbsvcs/orbsvcs/Event_Utilities.i \
- TAO/orbsvcs/orbsvcs/Event_Utilities.cpp \
- TAO/orbsvcs/orbsvcs/Event
-FILE_PATTERNS = EC_*.cpp EC_*.h EC_*.i EC_*.inl EC_*.pidl *.idl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/rtevent
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO/orbsvcs TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=.. \
- html/tao/portableserver/TAO_PortableServer.tag=../portableserver \
- html/tao/esf/TAO_ESF.tag=../esf
-GENERATE_TAGFILE = html/tao/rtevent/TAO_RTEvent.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_rtportableserver.doxygen b/etc/tao_rtportableserver.doxygen
deleted file mode 100644
index a6276c0df4d..00000000000
--- a/etc/tao_rtportableserver.doxygen
+++ /dev/null
@@ -1,193 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_RTPortableServer
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/tao/RTPortableServer
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/rtportableserver
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=..
-GENERATE_TAGFILE = html/tao/rtportableserver/TAO_RTPortableServer.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_security.doxygen b/etc/tao_security.doxygen
deleted file mode 100644
index 2dcf79c035e..00000000000
--- a/etc/tao_security.doxygen
+++ /dev/null
@@ -1,199 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_Security
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/orbsvcs/orbsvcs/Security.idl \
- TAO/orbsvcs/orbsvcs/SecurityLevel1.idl \
- TAO/orbsvcs/orbsvcs/SecurityLevel2.idl \
- TAO/orbsvcs/orbsvcs/SecurityAdmin.idl \
- TAO/orbsvcs/orbsvcs/SecurityReplaceable.idl \
- TAO/orbsvcs/orbsvcs/Security
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl *.idl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/security
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=.. \
- html/tao/portableserver/TAO_PortableServer.tag=../portableserver
-GENERATE_TAGFILE = html/tao/security/TAO_Security.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_smartproxies.doxygen b/etc/tao_smartproxies.doxygen
deleted file mode 100644
index 38ea6cefa4b..00000000000
--- a/etc/tao_smartproxies.doxygen
+++ /dev/null
@@ -1,192 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_SmartProxies
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/tao/SmartProxies
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS = InterfaceC.cpp Services.h
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/smartproxies
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace html/tao/TAO.tag=..
-GENERATE_TAGFILE = html/tao/smartproxies/TAO_SmartProxies.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_ssliop.doxygen b/etc/tao_ssliop.doxygen
deleted file mode 100644
index bcff52d4b9a..00000000000
--- a/etc/tao_ssliop.doxygen
+++ /dev/null
@@ -1,200 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_SSLIOP
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/orbsvcs/orbsvcs/Security.idl \
- TAO/orbsvcs/orbsvcs/SecurityLevel1.idl \
- TAO/orbsvcs/orbsvcs/SecurityLevel2.idl \
- TAO/orbsvcs/orbsvcs/Security \
- TAO/orbsvcs/orbsvcs/SSLIOP.idl \
- TAO/orbsvcs/orbsvcs/SSLIOP
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl *.idl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/ssliop
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace \
- html/tao/TAO.tag=.. \
- html/tao/portableserver/TAO_PortableServer.tag=../portableserver \
- html/tao/security/TAO_Security.tag=../security
-GENERATE_TAGFILE = html/tao/ssliop/TAO_SSLIOP.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/tao_strategies.doxygen b/etc/tao_strategies.doxygen
deleted file mode 100644
index a9d2170da9e..00000000000
--- a/etc/tao_strategies.doxygen
+++ /dev/null
@@ -1,192 +0,0 @@
-# Doxyfile 1.1.5
-#
-# $Id$
-#
-
-PROJECT_NAME = TAO_Strategies
-PROJECT_NUMBER = Snapshot
-OUTPUT_DIRECTORY = .
-OUTPUT_LANGUAGE = English
-DISABLE_INDEX = NO
-EXTRACT_ALL = YES
-EXTRACT_PRIVATE = YES
-EXTRACT_STATIC = YES
-HIDE_UNDOC_MEMBERS = NO
-HIDE_UNDOC_CLASSES = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ALWAYS_DETAILED_SEC = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-INTERNAL_DOCS = NO
-CLASS_DIAGRAMS = YES
-SOURCE_BROWSER = YES
-INLINE_SOURCES = YES
-STRIP_CODE_COMMENTS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-VERBATIM_HEADERS = YES
-SHOW_INCLUDE_FILES = YES
-JAVADOC_AUTOBRIEF = NO
-INHERIT_DOCS = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-TAB_SIZE = 8
-ENABLED_SECTIONS =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-QUIET = YES
-WARNINGS = NO
-WARN_IF_UNDOCUMENTED = NO
-WARN_FORMAT = "$file:$line: $text"
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-INPUT = TAO/tao/Strategies
-FILE_PATTERNS = *.cpp *.h *.i *.inl *.pidl
-RECURSIVE =
-EXCLUDE =
-EXCLUDE_PATTERNS = InterfaceC.cpp Services.h
-EXAMPLE_PATH =
-EXAMPLE_PATTERNS =
-IMAGE_PATH =
-INPUT_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 1
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-GENERATE_HTML = YES
-HTML_OUTPUT = html/tao/strategies
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-GENERATE_LATEX = NO
-LATEX_OUTPUT = latex
-COMPACT_LATEX = NO
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = NO
-LATEX_BATCHMODE = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = YES
-EXPAND_ONLY_PREDEF = YES
-SEARCH_INCLUDES = YES
-INCLUDE_PATH = TAO .
-PREDEFINED =
-EXPAND_AS_DEFINED = ACE_RCSID \
- ACE_UNIMPLEMENTED_FUNC \
- ACE_THROW_SPEC
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references
-#---------------------------------------------------------------------------
-
-TAGFILES = html/ace/ACE.tag=../../ace html/tao/TAO.tag=..
-GENERATE_TAGFILE = html/tao/strategies/TAO_Strategies.tag
-ALLEXTERNALS = NO
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz
-
-HAVE_DOT = YES
-CLASS_GRAPH = YES
-COLLABORATION_GRAPH = YES
-INCLUDE_GRAPH = YES
-INCLUDED_BY_GRAPH = YES
-GRAPHICAL_HIERARCHY = YES
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found on the path.
-DOT_PATH = /usr/local/bin
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine
-#---------------------------------------------------------------------------
-
-SEARCHENGINE = NO
-
-# The CGI_NAME tag should be the name of the CGI script that
-# starts the search engine (doxysearch) with the correct parameters.
-# A script with this name will be generated by doxygen.
-
-CGI_NAME = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the
-# cgi binaries are located. See the documentation of your http daemon for
-# details.
-
-CGI_URL = http://doc.ece.uci.edu/cgi-bin/Doxygen/Current
-
-# The DOC_URL tag should be the absolute URL to the directory where the
-# documentation is located. If left blank the absolute path to the
-# documentation, with file:// prepended to it, will be used.
-
-DOC_URL = http://doc.ece.uci.edu/Doxygen/Current/
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the
-# documentation is located. If left blank the directory on the local machine
-# will be used.
-
-DOC_ABSPATH = /project/doctmp/Doxygen/Current
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
-# is installed.
-
-BIN_ABSPATH = /usr/bin
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to
-# documentation generated for other projects. This allows doxysearch to search
-# the documentation for these projects as well.
-
-EXT_DOC_PATHS = html/ace
diff --git a/etc/xlc_dummy.cpp b/etc/xlc_dummy.cpp
deleted file mode 100644
index 6a89bb5becf..00000000000
--- a/etc/xlc_dummy.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-// $Id$
-//
-// This file exists only to help with template instantiation when building
-// shared libraries on AIX using C Set++. See rules.lib.GNU for usage.
-
-main() {}
diff --git a/html/README b/html/README
deleted file mode 100644
index 600b2a0ab3c..00000000000
--- a/html/README
+++ /dev/null
@@ -1,11 +0,0 @@
-# $Id$
-
- The following directory is a placeholder for the Doxygen
-generated files. The index.html file only makes sense if you download
-the ACE-html.tar.gz documents from:
-
-ftp://ace.cs.wustl.edu/pub/ACE/
-
- or if you generate the Doxygen documentation using the
-configuration files in $ACE_ROOT/etc/*.doxygen and/or the perl script
-in $ACE_ROOT/bin/generate_doxygen.pl
diff --git a/html/Stats/Stats.css b/html/Stats/Stats.css
deleted file mode 100644
index 67c9baefb84..00000000000
--- a/html/Stats/Stats.css
+++ /dev/null
@@ -1,4 +0,0 @@
-BODY {
- background: white;
- color: black;
-}
diff --git a/html/Stats/configuration.shtml b/html/Stats/configuration.shtml
deleted file mode 100644
index 5ff1d9f2f8b..00000000000
--- a/html/Stats/configuration.shtml
+++ /dev/null
@@ -1,82 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
- <HEAD>
- <!-- $Id$ -->
- <TITLE>Configuration</TITLE>
- <LINK href="Stats.css" rel="stylesheet" type="text/css">
- </HEAD>
-
- <BODY>
-
- <!--#include file="navigation.html"-->
-
- <P>All the experiments run on a dual Pentium III @733Mhz, with
- 512Mb of RAM. The machine is running Linux (Debian 2.2),
- and we use gcc-2.95.2 to compile ACE+TAO, with static libraries
- and optimizations enabled.
- </P>
-
- <TABLE border="2">
-<!-- <THEAD>
- <TR><TH>Name</TH><TH>Obtained Using</TH></TR>
- <TR><TH colspan="2">Details</TH></TR>
- </THEAD>
--->
- <TBODY>
- <TR><TD>ACE+TAO Configuration</TD><TD>config.h</TD></TR>
- <TR><TD colspan="2">
-<PRE>
-<!--#include file="data/config.h.txt"-->
-</PRE>
- </TD>
- </TR>
- <TR><TD>ACE+TAO Configuration</TD><TD>platform_macros.GNU</TD></TR>
- <TR><TD colspan="2">
-<PRE>
-<!--#include file="data/platform_macros.GNU.txt"-->
-</PRE>
- </TD>
- </TR>
- <TR><TD>CPU Information</TD><TD>/proc/cpuinfo</TD></TR>
- <TR><TD colspan="2">
-<PRE>
-<!--#include file="data/cpuinfo.txt"-->
-</PRE>
- </TD>
- </TR>
- <TR><TD>Available Memory</TD><TD>/proc/meminfo</TD></TR>
- <TR><TD colspan="2">
-<PRE>
-<!--#include file="data/meminfo.txt"-->
-</PRE>
- </TD>
- </TR>
- <TR><TD>OS Version</TD><TD>uname -a</TD></TR>
- <TR><TD colspan="2">
-<PRE>
-<!--#include file="data/uname.txt"-->
-</PRE>
- </TD>
- </TR>
- <TR><TD>Compiler Version</TD><TD>gcc -v</TD></TR>
- <TR><TD colspan="2">
-<PRE>
-<!--#include file="data/gcc.txt"-->
-</PRE>
- </TD>
- </TR>
- <TR><TD>Library Version</TD><TD>/lib/libc.so.6</TD></TR>
- <TR><TD colspan="2">
-<PRE>
-<!--#include file="data/libc.txt"-->
-</PRE>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
-
-<!--#include file="footer.html"-->
-
- </BODY>
-</HTML>
diff --git a/html/Stats/detailed_footprint.shtml b/html/Stats/detailed_footprint.shtml
deleted file mode 100644
index fbdb5fda785..00000000000
--- a/html/Stats/detailed_footprint.shtml
+++ /dev/null
@@ -1,287 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
- <HEAD>
- <!-- $Id$ -->
- <TITLE>Footprint Metrics Detailed Results</TITLE>
- <LINK href="Stats.css" rel="stylesheet" type="text/css">
- </HEAD>
- <BODY>
-
- <!--#include file="navigation.html"-->
-
- <DIV align="center">
- <P>
- <TABLE BORDER="2">
- <THEAD>
- <TR>
- <TH>Component Name</TH>
- <TH>Chart</TH>
- <TH>Recent results</TH>
- <TH>Complete History</TH>
- </TR>
- </THEAD>
- <TBODY>
- <TR>
- <TD>ORB_init</TD>
- <TD><A HREF="images/ORB_init_size.png">
- <IMG ALT="ORB_init_size" SRC="images/thumbnails/ORB_init_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_ORB_init_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/ORB_init_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>ORB_destroy</TD>
- <TD><A HREF="images/ORB_destroy_size.png">
- <IMG ALT="ORB_destroy_size" SRC="images/thumbnails/ORB_destroy_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_ORB_destroy_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/ORB_destroy_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libACE</TD>
- <TD><A HREF="images/libACE.a_size.png">
- <IMG ALT="libACE.a_size" SRC="images/thumbnails/libACE.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libACE.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libACE.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO</TD>
- <TD><A HREF="images/libTAO.a_size.png">
- <IMG ALT="libTAO.a_size" SRC="images/thumbnails/libTAO.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_PortableServer</TD>
- <TD><A HREF="images/libTAO_PortableServer.a_size.png">
- <IMG ALT="libTAO_PortableServer.a_size" SRC="images/thumbnails/libTAO_PortableServer.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_PortableServer.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_PortableServer.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_Strategies</TD>
- <TD><A HREF="images/libTAO_Strategies.a_size.png">
- <IMG ALT="libTAO_Strategies.a_size" SRC="images/thumbnails/libTAO_Strategies.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_Strategies.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_Strategies.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_DynamicAny</TD>
- <TD><A HREF="images/libTAO_DynamicAny.a_size.png">
- <IMG ALT="libTAO_DynamicAny.a_size" SRC="images/thumbnails/libTAO_DynamicAny.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_DynamicAny.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_DynamicAny.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_DynamicInterface</TD>
- <TD><A HREF="images/libTAO_DynamicInterface.a_size.png">
- <IMG ALT="libTAO_DynamicInterface.a_size" SRC="images/thumbnails/libTAO_DynamicInterface.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_DynamicInterface.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_DynamicInterface.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_IFR_Client</TD>
- <TD><A HREF="images/libTAO_IFR_Client.a_size.png">
- <IMG ALT="libTAO_IFR_Client.a_size" SRC="images/thumbnails/libTAO_IFR_Client.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_IFR_Client.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_IFR_Client.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_BiDirGIOP</TD>
- <TD><A HREF="images/libTAO_BiDirGIOP.a_size.png">
- <IMG ALT="libTAO_BiDirGIOP.a_size" SRC="images/thumbnails/libTAO_BiDirGIOP.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_BiDirGIOP.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_BiDirGIOP.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_Domain</TD>
- <TD><A HREF="images/libTAO_Domain.a_size.png">
- <IMG ALT="libTAO_Domain.a_size" SRC="images/thumbnails/libTAO_Domain.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_Domain.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_Domain.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_IORManip</TD>
- <TD><A HREF="images/libTAO_IORManip.a_size.png">
- <IMG ALT="libTAO_IORManip.a_size" SRC="images/thumbnails/libTAO_IORManip.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_IORManip.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_IORManip.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_IORTable</TD>
- <TD><A HREF="images/libTAO_IORTable.a_size.png">
- <IMG ALT="libTAO_IORTable.a_size" SRC="images/thumbnails/libTAO_IORTable.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_IORTable.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_IORTable.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_TypeCodeFactory</TD>
- <TD><A HREF="images/libTAO_TypeCodeFactory.a_size.png">
- <IMG ALT="libTAO_TypeCodeFactory.a_size" SRC="images/thumbnails/libTAO_TypeCodeFactory.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_TypeCodeFactory.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_TypeCodeFactory.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_SmartProxies</TD>
- <TD><A HREF="images/libTAO_SmartProxies.a_size.png">
- <IMG ALT="libTAO_SmartProxies.a_size" SRC="images/thumbnails/libTAO_SmartProxies.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_SmartProxies.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_SmartProxies.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_RTCORBA</TD>
- <TD><A HREF="images/libTAO_RTCORBA.a_size.png">
- <IMG ALT="libTAO_RTCORBA.a_size" SRC="images/thumbnails/libTAO_RTCORBA.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_RTCORBA.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_RTCORBA.a_size.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>libTAO_RTPortableServer</TD>
- <TD><A HREF="images/libTAO_RTPortableServer.a_size.png">
- <IMG ALT="libTAO_RTPortableServer.a_size" SRC="images/thumbnails/libTAO_RTPortableServer.a_size.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_libTAO_RTPortableServer.a_size.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/libTAO_RTPortableServer.a_size.txt">[Download]</A>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
- </DIV>
-
-<!--#include file="footer.html"-->
-
- </BODY>
-</HTML>
diff --git a/html/Stats/detailed_performance.shtml b/html/Stats/detailed_performance.shtml
deleted file mode 100644
index 05c6b77e87f..00000000000
--- a/html/Stats/detailed_performance.shtml
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
- <HEAD>
- <!-- $Id$ -->
- <TITLE>Performance Metrics Detailed Results</TITLE>
- <LINK href="Stats.css" rel="stylesheet" type="text/css">
- </HEAD>
- <BODY>
-
- <!--#include file="navigation.html"-->
-
- <P>
- Results for the performance experiments in
- <CODE>$ACE_ROOT/TAO/performance-tests</CODE>.
- The results for all the tests are combined in a single chart.
- </P>
- <DIV align="center">
- <P>
- <IMG alt="All Invocation Modes and Configurations" border=0
- src="images/CORBA.png"
- width="640" height="480">
- </P>
- </DIV>
- <HR>
- <P>The tests below are all located in
- <CODE>$TAO_ROOT/performance-tests</CODE>.
- Each test has a driver script that runs it,
- these scripts run the tests over the loopback network
- interface.
- Unless indicated otherwise, the tests use the default ORB
- configuration.
- </P>
- <DIV align="center">
- <P>
- <TABLE BORDER="2">
- <THEAD>
- <TR>
- <TH>Test Name</TH>
- <TH>Chart</TH>
- <TH>Recent results</TH>
- <TH>Complete History</TH>
- </TR>
- </THEAD>
- <TBODY>
- <TR>
- <TD>AMI_Latency</TD>
- <TD><A HREF="images/AMI.png">
- <IMG ALT="AMI" SRC="images/thumbnails/AMI.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_AMI.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/AMI.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>DII_Latency</TD>
- <TD><A HREF="images/DII.png">
- <IMG ALT="DII" SRC="images/thumbnails/DII.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_DII.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/DII.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>DSI_Latency</TD>
- <TD><A HREF="images/DSI.png">
- <IMG ALT="DSI" SRC="images/thumbnails/DSI.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_DSI.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/DSI.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>Deferred_Latency</TD>
- <TD><A HREF="images/Deferred.png">
- <IMG ALT="Deferred" SRC="images/thumbnails/Deferred.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_Deferred.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/Deferred.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>Single_Threaded_Latency<BR>
- Configuration optimized<BR>
- for single-threaded apps<BR>
- </TD>
- <TD><A HREF="images/Single_Threaded.png">
- <IMG ALT="Single_Threaded" SRC="images/thumbnails/Single_Threaded.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_Single_Threaded.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/Single_Threaded.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>Single_Threaded_Latency</TD>
- <TD><A HREF="images/Default.png">
- <IMG ALT="Default" SRC="images/thumbnails/Default.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_Default.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/Default.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>Thread_Per_Connection_Latency</TD>
- <TD><A HREF="images/Thread_Per_Connection.png">
- <IMG ALT="Thread_Per_Connection" SRC="images/thumbnails/Thread_Per_Connection.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_Thread_Per_Connection.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/Thread_Per_Connection.txt">[Download]</A>
- </TD>
- </TR>
- <TR>
- <TD>Thread_Pool_Latency</TD>
- <TD><A HREF="images/Thread_Pool.png">
- <IMG ALT="Thread_Pool" SRC="images/thumbnails/Thread_Pool.png">
- </A>
- </TD>
- <TD>
- <PRE>
-<!--#include file="data/LAST_Thread_Pool.txt" -->
- </PRE>
- </TD>
- <TD>
- <A HREF="data/Thread_Pool.txt">[Download]</A>
- </TD>
- </TR>
- </TBODY>
- </TABLE>
- </DIV>
-
-<!--#include file="footer.html"-->
-
- </BODY>
-</HTML>
diff --git a/html/Stats/footer.html b/html/Stats/footer.html
deleted file mode 100644
index 3fafa143afc..00000000000
--- a/html/Stats/footer.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- $Id$ -->
-<HR>
- <address>
- <a href="http://validator.w3.org/check/referer">
- <img border="0"
- src="/image/valid-html401.png"
- alt="Valid HTML 4.01!" height="31" width="88">
- </a>
- <a href="mailto:coryan@uci.edu">
- Carlos O'Ryan
- </a>
- </address>
diff --git a/html/Stats/index.shtml b/html/Stats/index.shtml
deleted file mode 100644
index fdad8b33614..00000000000
--- a/html/Stats/index.shtml
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<HTML>
- <HEAD>
- <!-- $Id$ -->
- <TITLE>ACE+TAO Performance and Footprint Metrics</TITLE>
- <LINK href="Stats.css" rel="stylesheet" type="text/css">
- </HEAD>
- <BODY>
-
- <!--#include file="navigation.html"-->
-
- <P>These pages track footprint and performance metrics for ACE+TAO.
- The results are collected on one of our nightly regression tests.
- The complete source for the tests is available as part of the
- ACE+TAO
- <A HREF="http://ace.cs.wustl.edu/Download.html">
- distribution
- </A>.
- The hardware and software configuration used for these tests is
- described <A HREF="configuration.shtml">here</A>.
- Notice, however, that the results contained here may be
- different from what you will obtain using a TAO release or beta
- kit, since the experiments are based on our current source tree.
- </P>
-
- <P>More information about ACE+TAO footprints, and the continuing
- effort to reduce the library and application's code size can be
- found in the
- <A HREF="http://ace.cs.wustl.edu/cvsweb/ace-latest.cgi/ACE_wrappers/docs/ACE-subsets.html">
- ACE+TAO subsetting
- </A>
- page.
- </P>
-
- <HR>
-
- <H2>Performance Results</H2>
-
- <P>ORB throughput, in requests per second,
- using the performance test in:
- <CODE>$ACE_ROOT/TAO/performance-tests/Single_Threaded_Latency</CODE>,
- the ORB configuration is optimized for single threaded
- applications using the <CODE>svc.conf</CODE> file in said
- directory.
- The test is executed over the loopback interface, using the
- <CODE>run_test.pl</CODE> driver script in the same directory.
- </P>
- <DIV align="center">
- <IMG alt="Single Threaded"
- src="images/Single_Threaded.png"
- width="640" height="480">
- </DIV>
-
- <HR>
-
- <H2>Footprint Results</H2>
-
- <P>Client footprint, in kilobytes, text and data segments for the test in
- <CODE>$ACE_ROOT/TAO/tests/ORB_init</CODE>.
- </P>
- <DIV align="center">
- <IMG alt="ORB_init"
- src="images/ORB_init_size.png"
- width="640" height="480">
- </DIV>
-
- <P>Server footprint, in kilobytes, text and data segments for the test in
- <CODE>$ACE_ROOT/TAO/tests/ORB_init</CODE>.
- </P>
- <DIV align="center">
- <IMG alt="ORB_destroy"
- src="images/ORB_destroy_size.png"
- width="640" height="480">
- </DIV>
-
-<!--#include file="footer.html"-->
-
- </BODY>
-</HTML>
diff --git a/html/Stats/navigation.html b/html/Stats/navigation.html
deleted file mode 100644
index 62c778456c8..00000000000
--- a/html/Stats/navigation.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!-- $Id$ -->
-
-<DIV align="center">
- <h1>ACE+TAO Performance and Footprint Metrics</h1>
-
- <IMG alt="DOC Laboratory" src="/image/doc.jpg"
- width="223" height="63">
- <TABLE>
- <TR>
- <TD>
- [<A href="index.shtml">Main Page</A>]
- </TD>
- <TD>
- [<A href="detailed_performance.shtml">Detailed Performance</A>]
- </TD>
- <TD>
- [<A href="detailed_footprint.shtml">Detailed Footprint</A>]
- </TD>
- <TD>
- [<A href="configuration.shtml">Configuration</A>]
- </TD>
- </TR>
- </TABLE>
- <TABLE>
- <TR>
- <TD>
- [<A href="http://doc.ece.uci.edu/Stats/History/index.shtml">Historic Data</A>]
- </TD>
- </TR>
- </TABLE>
-</DIV>
diff --git a/html/doxygen.css b/html/doxygen.css
deleted file mode 100644
index 6afcb64d97f..00000000000
--- a/html/doxygen.css
+++ /dev/null
@@ -1,5 +0,0 @@
-<!-- $Id$ -->
-BODY {
- background: white;
- color: black;
-}
diff --git a/html/index.html b/html/index.html
deleted file mode 100644
index 5f99c9ad3ad..00000000000
--- a/html/index.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
- <!-- $Id$ -->
- <head>
- <title>ACE+TAO Documentation</title>
- <LINK href="doxygen.css" rel="stylesheet" type="text/css">
- </head>
-
- <body>
-
- <CENTER>
- <h1>ACE+TAO Documentation</h1>
- </CENTER>
-
- <P>Documentation is separated by components:
- </P>
-
- <UL>
- <LI><P><A HREF="ace/index.html">
- The ACE library
- </A>
- </P>
- </LI>
- <LI><P><A HREF="ace/ssl/index.html">ACE SSL Adapters
- </A>
- </P>
- </LI>
- <LI><P><A HREF="ace/rmcast/index.html">ACE Reliable Multicast
- components
- </A>
- </P>
- </LI>
- <LI><P><A HREF="ace/QoS/index.html">ACE Components for
- QoS-enabled networking APIs.
- </A>
- </P>
- </LI>
- <LI><P><A HREF="tao/index.html">
- The TAO library and components
- </A>
- </P>
- </LI>
- <LI><P><A HREF="tao/portableserver/index.html">TAO_PortableServer:
- </A>
- TAO's Portable Object Adapter
- </P>
- </LI>
- <LI><P><A HREF="tao/dynamicany/index.html">TAO_DynamicAny:
- </A>
- TAO's implementation of Dynamic Anys.
- </P>
- </LI>
- <LI><P><A HREF="tao/dynamicinterface/index.html">TAO_DynamicInterface:
- </A>
- TAO's implementation of DII/DSI.
- </P>
- </LI>
- <LI><P><A HREF="tao/smartproxies/index.html">TAO_SmartProxies:
- </A>
- TAO's smart proxies support library.
- </P>
- </LI>
- <LI><P><A HREF="tao/iormanipulation/index.html">TAO_IORManipulation:
- </A>
- TAO extension to manipulate IORs.
- </P>
- </LI>
- <LI><P><A HREF="tao/iortable/index.html">TAO_IORTable:
- </A>
- TAO's ad-hoc adapter for simple Object Keys.
- </P>
- </LI>
- <LI><P><A HREF="tao/strategies/index.html">TAO_Strategies:
- </A>
- Additional configuration options and protocols for TAO.
- </P>
- </LI>
- <LI><P><A HREF="tao/rtportableserver/index.html">TAO_RTPortableServer:
- </A>
- The Portable Object Adapter with RT-CORBA support
- </P>
- </LI>
- <LI><P><A HREF="tao/rtcorba/index.html">TAO_RTCORBA:
- </A>
- Aditional components to support RT-CORBA
- </P>
- </LI>
- </UL>
-
- <hr>
- <UL>
- <LI><P><A HREF="tao/implrepo_service/index.html">
- Implementation Repository:
- </A>
- TAO's object activation daemon.
- </P>
- </LI>
- <LI><P><A HREF="tao/esf/index.html">TAO_ESF:
- </A>
- TAO's Event Service Framework,
- a collection of template classes used to implement TAO Event
- Services.
- </P>
- </LI>
- <LI><P><A HREF="tao/rtevent/index.html">TAO_RTEvent:
- </A>
- TAO's RT Event Service implementation.
- </P>
- </LI>
- <LI><P><A HREF="tao/cosevent/index.html">TAO_CosEvent:
- </A>
- TAO's COS Event Service implementation.
- </P>
- </LI>
- <LI><P><A HREF="tao/cosnotification/index.html">TAO_CosNotification:
- </A>
- TAO's COS Notification Service implementation.
- </P>
- </LI>
- <LI><P><A HREF="tao/av/index.html">TAO_AV:
- </A>
- TAO's Audio/Video Streaming Service implementation.
- </P>
- </LI>
- <LI><P><A HREF="tao/security/index.html">TAO_Security: </A>
- TAO's CORBA Security Service implementation.
- </P>
- </LI>
- <LI><P><A HREF="tao/ssliop/index.html">TAO_SSLIOP: </A>
- TAO's SSLIOP protocol implementation.
- </P>
- </LI>
- </UL>
-
- </body>
-</html>
diff --git a/include/makeinclude/Makefile.rtems b/include/makeinclude/Makefile.rtems
deleted file mode 100644
index 39a44334129..00000000000
--- a/include/makeinclude/Makefile.rtems
+++ /dev/null
@@ -1,31 +0,0 @@
-# $id: Makefile $
-
-#export RTEMS_MAKEFILE_PATH=/opt/rtems/sparc-rtems/erc32/
-include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
-include $(RTEMS_CUSTOM)
-include $(PROJECT_ROOT)/make/leaf.cfg
-
-
-print_cxx:
- @echo "$(CXX)"
-
-print_cc:
- @echo "$(CC_FOR_TARGET)"
-
-print_cflags:
- @echo "$(GCCSPECS) $(CPU_CFLAGS)"
-
-print_prefix:
- @echo $(prefix)
-
-print_target:
- @echo $(NM_FOR_TARGET:%nm=%)
-
-is_big_endian:
- t=`echo "#include <rtems.h>" | \
- $(CC_FOR_TARGET) $(GCCSPECS) $(CPU_CFLAGS) -E -dM - | \
- grep CPU_BIG_ENDIAN | cut -d' ' -f3` ; echo $$t
-
-rtems_init.o: rtems_init.c
- $(CC_FOR_TARGET) $(GCCSPECS) $(CPU_CFLAGS) -c rtems_init.c
-
diff --git a/include/makeinclude/ace_flags.bor b/include/makeinclude/ace_flags.bor
deleted file mode 100644
index 228e04565ed..00000000000
--- a/include/makeinclude/ace_flags.bor
+++ /dev/null
@@ -1,114 +0,0 @@
-#
-# Flags specific for compiling ACE library and applications
-# with Borland C++Builder
-#
-
-!ifdef STATIC
-DLL_FLAG=0
-DLL_NAME=
-!else
-DLL_FLAG=1
-DLL_NAME=dll
-!endif
-
-#
-# Compiler flags
-#
-!ifdef DEBUG
-ACE_CFLAGS = -I$(ACE_ROOT) -DACE_HAS_DLL=$(DLL_FLAG) -DACE_OS_HAS_DLL=$(DLL_FLAG) -DACE_NO_INLINE=1
-!else
-ACE_CFLAGS = -I$(ACE_ROOT) -DACE_HAS_DLL=$(DLL_FLAG) -DACE_OS_HAS_DLL=$(DLL_FLAG)
-!endif
-!ifdef SSL_ROOT
-SSL_CFLAGS = -I$(SSL_ROOT)\inc32 -DACE_HAS_SSL=1
-!endif
-ACE_SSL_CFLAGS = -I$(ACE_ROOT) -DACE_SSL_HAS_DLL=$(DLL_FLAG)
-ACE_QOS_CFLAGS = -I$(ACE_ROOT) -DACE_QoS_HAS_DLL=$(DLL_FLAG)
-ACE_RMCAST_CFLAGS = -I$(ACE_ROOT) -DACE_RMCAST_HAS_DLL=$(DLL_FLAG)
-TAO_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_HAS_DLL=$(DLL_FLAG)
-TAO_DOMAIN_FLAGS = -I$(ACE_ROOT)\TAO -DTAO_DOMAIN_HAS_DLL=$(DLL_FLAG)
-TAO_DYNAMICANY_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_DYNAMICANY_HAS_DLL=$(DLL_FLAG)
-TAO_DYNAMICINTERFACE_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_DYNAMICINTERFACE_HAS_DLL=$(DLL_FLAG)
-TAO_BIDIRGIOP_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_BIDIRGIOP_HAS_DLL=$(DLL_FLAG)
-TAO_IFR_CLIENT_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_IFR_CLIENT_HAS_DLL=$(DLL_FLAG)
-TAO_STRATEGIES_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_STRATEGIES_HAS_DLL=$(DLL_FLAG)
-TAO_PORTABLESERVER_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_PORTABLESERVER_HAS_DLL=$(DLL_FLAG)
-TAO_IORMANIP_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_IORMANIP_HAS_DLL=$(DLL_FLAG)
-TAO_IORTABLE_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_IORTABLE_HAS_DLL=$(DLL_FLAG)
-TAO_SMARTPROXIES_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_SMARTPROXIES_HAS_DLL=$(DLL_FLAG)
-TAO_TYPECODEFACTORY_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_TYPECODEFACTORY_HAS_DLL=$(DLL_FLAG)
-TAO_RTCORBA_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_RTCORBA_HAS_DLL=$(DLL_FLAG)
-TAO_RTPORTABLESERVER_CFLAGS = -I$(ACE_ROOT)\TAO -DTAO_RTPORTABLESERVER_HAS_DLL=$(DLL_FLAG)
-TAO_IDL_BE_CFLAGS = -I$(ACE_ROOT)\TAO\TAO_IDL -I$(ACE_ROOT)\TAO\TAO_IDL\be_include \
- -DTAO_IDL_BE_HAS_DLL=$(DLL_FLAG)
-TAO_IDL_FE_CFLAGS = -I$(ACE_ROOT)\TAO\TAO_IDL -I$(ACE_ROOT)\TAO\TAO_IDL\fe \
- -I$(ACE_ROOT)\TAO\TAO_IDL\include -I$(ACE_ROOT)\TAO\TAO_IDL\util -DTAO_IDL_FE_HAS_DLL=$(DLL_FLAG)
-TAO_SVC_UTILS_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_SVC_UTILS_HAS_DLL=$(DLL_FLAG)
-TAO_AV_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_AV_HAS_DLL=$(DLL_FLAG)
-TAO_CONCURRENCY_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_CONCURRENCY_HAS_DLL=$(DLL_FLAG)
-TAO_EVENT_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_EVENT_HAS_DLL=$(DLL_FLAG)
-TAO_FT_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_FT_HAS_DLL=$(DLL_FLAG)
-TAO_LIFECYCLE_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_LIFECYCLE_HAS_DLL=$(DLL_FLAG)
-TAO_LOADBALANCING_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_LOADBALANCING_HAS_DLL=$(DLL_FLAG)
-TAO_LOG_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_LOG_HAS_DLL=$(DLL_FLAG)
-TAO_NAMING_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_NAMING_HAS_DLL=$(DLL_FLAG)
-TAO_NOTIFY_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_NOTIFY_HAS_DLL=$(DLL_FLAG)
-TAO_PROPERTY_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_PROPERTY_HAS_DLL=$(DLL_FLAG)
-TAO_RTEVENT_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_RTEVENT_HAS_DLL=$(DLL_FLAG)
-TAO_RTOLDEVENT_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_RTOLDEVENT_HAS_DLL=$(DLL_FLAG)
-TAO_RTSCHED_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_RTSCHED_HAS_DLL=$(DLL_FLAG)
-TAO_RTSCHEDEVENT_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_RTSCHEDEVENT_HAS_DLL=$(DLL_FLAG)
-TAO_SECURITY_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_SECURITY_HAS_DLL=$(DLL_FLAG)
-TAO_SSLIOP_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_SSLIOP_HAS_DLL=$(DLL_FLAG)
-TAO_TIME_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_TIME_HAS_DLL=$(DLL_FLAG)
-TAO_TRADING_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs -DTAO_TRADING_HAS_DLL=$(DLL_FLAG)
-
-#
-# Libraries
-#
-ACE_LIB = $(CORE_BINDIR)\ace$(LIB_DECORATOR).lib
-!ifdef SSL_ROOT
-SSL_LIB = $(SSL_ROOT)\out32$(DLL_NAME)\libeay32.lib $(SSL_ROOT)\out32$(DLL_NAME)\ssleay32.lib
-!endif
-ACE_SSL_LIB = $(CORE_BINDIR)\ACE_SSL$(LIB_DECORATOR).lib
-ACE_QOS_LIB = $(CORE_BINDIR)\ACE_QoS$(LIB_DECORATOR).lib
-NETSVCS_LIB = $(CORE_BINDIR)\netsvcs$(LIB_DECORATOR).lib
-ACE_RMCAST_LIB = $(CORE_BINDIR)\ACE_RMCast$(LIB_DECORATOR).lib
-TAO_LIB = $(CORE_BINDIR)\TAO$(LIB_DECORATOR).lib
-TAO_DOMAIN_LIB = $(CORE_BINDIR)\TAO_Domain$(LIB_DECORATOR).lib
-TAO_DYNAMICANY_LIB = $(CORE_BINDIR)\TAO_DynamicAny$(LIB_DECORATOR).lib
-TAO_DYNAMICINTERFACE_LIB = $(CORE_BINDIR)\TAO_DynamicInterface$(LIB_DECORATOR).lib
-TAO_BIDIRGIOP_LIB = $(CORE_BINDIR)\TAO_BiDirGIOP$(LIB_DECORATOR).lib
-TAO_IFR_CLIENT_LIB = $(CORE_BINDIR)\TAO_IFR_Client$(LIB_DECORATOR).lib
-TAO_PORTABLESERVER_LIB = $(CORE_BINDIR)\TAO_PortableServer$(LIB_DECORATOR).lib
-TAO_STRATEGIES_LIB = $(CORE_BINDIR)\TAO_Strategies$(LIB_DECORATOR).lib
-TAO_IORMANIP_LIB = $(CORE_BINDIR)\TAO_IORManip$(LIB_DECORATOR).lib
-TAO_IORTABLE_LIB = $(CORE_BINDIR)\TAO_IORTable$(LIB_DECORATOR).lib
-TAO_SMARTPROXIES_LIB = $(CORE_BINDIR)\TAO_SmartProxies$(LIB_DECORATOR).lib
-TAO_TYPECODEFACTORY_LIB = $(CORE_BINDIR)\TAO_TypeCodeFactory$(LIB_DECORATOR).lib
-TAO_RTCORBA_LIB = $(CORE_BINDIR)\TAO_RTCORBA$(LIB_DECORATOR).lib
-TAO_RTPORTABLESERVER_LIB = $(CORE_BINDIR)\TAO_RTPortableServer$(LIB_DECORATOR).lib
-TAO_IDL_BE_LIB = $(CORE_BINDIR)\TAO_IDL_BE$(LIB_DECORATOR).lib
-TAO_IDL_FE_LIB = $(CORE_BINDIR)\TAO_IDL_FE$(LIB_DECORATOR).lib
-TAO_SVC_UTILS_LIB = $(CORE_BINDIR)\TAO_Svc_Utils$(LIB_DECORATOR).lib
-TAO_AV_LIB = $(CORE_BINDIR)\TAO_AV$(LIB_DECORATOR).lib
-TAO_CONCURRENCY_LIB = $(CORE_BINDIR)\TAO_CosConcurrency$(LIB_DECORATOR).lib
-TAO_EVENT_LIB = $(CORE_BINDIR)\TAO_CosEvent$(LIB_DECORATOR).lib
-TAO_FT_LIB = $(CORE_BINDIR)\TAO_FaultTolerance$(LIB_DECORATOR).lib
-TAO_LIFECYCLE_LIB = $(CORE_BINDIR)\TAO_CosLifeCycle$(LIB_DECORATOR).lib
-TAO_LOADBALANCING_LIB = $(CORE_BINDIR)\TAO_LoadBalancing$(LIB_DECORATOR).lib
-TAO_LOG_LIB = $(CORE_BINDIR)\TAO_DsLogAdmin$(LIB_DECORATOR).lib
-TAO_NAMING_LIB = $(CORE_BINDIR)\TAO_CosNaming$(LIB_DECORATOR).lib
-TAO_NOTIFY_LIB = $(CORE_BINDIR)\TAO_CosNotification$(LIB_DECORATOR).lib
-TAO_PROPERTY_LIB = $(CORE_BINDIR)\TAO_CosProperty$(LIB_DECORATOR).lib
-TAO_RTEVENT_LIB = $(CORE_BINDIR)\TAO_RTEvent$(LIB_DECORATOR).lib
-TAO_RTOLDEVENT_LIB = $(CORE_BINDIR)\TAO_RTOLDEvent$(LIB_DECORATOR).lib
-TAO_RTSCHED_LIB = $(CORE_BINDIR)\TAO_RTSched$(LIB_DECORATOR).lib
-TAO_RTSCHEDEVENT_LIB = $(CORE_BINDIR)\TAO_RTSchedEvent$(LIB_DECORATOR).lib
-TAO_SECURITY_LIB = $(CORE_BINDIR)\TAO_Security$(LIB_DECORATOR).lib
-TAO_SSLIOP_LIB = $(CORE_BINDIR)\TAO_SSLIOP$(LIB_DECORATOR).lib
-TAO_TIME_LIB = $(CORE_BINDIR)\TAO_CosTime$(LIB_DECORATOR).lib
-TAO_TRADING_LIB = $(CORE_BINDIR)\TAO_CosTrading$(LIB_DECORATOR).lib
-
-TAO_RTEVENT_TEST_CFLAGS = -I$(ACE_ROOT)\TAO\orbsvcs\tests\Event\lib -DEC_TEST_HAS_DLL=$(DLL_FLAG)
-TAO_RTEVENT_TEST_LIB = $(CORE_BINDIR)\ECTests$(LIB_DECORATOR).lib
diff --git a/include/makeinclude/build_core_exe.bor b/include/makeinclude/build_core_exe.bor
deleted file mode 100644
index 79353a42cd3..00000000000
--- a/include/makeinclude/build_core_exe.bor
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# Makefile for building a core executable. A core executable
-# is one that would be part of an ACE/TAO distribution. That
-# is, you would pick it up and take it to another computer.
-#
-
-INSTALL_THIS_TARGET = 1
-
-!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor>
diff --git a/include/makeinclude/build_core_library.bor b/include/makeinclude/build_core_library.bor
deleted file mode 100644
index 3e9f2dbfdd1..00000000000
--- a/include/makeinclude/build_core_library.bor
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-# Makefile for building a core library. A core library
-# is one that would be part of an ACE/TAO distribution. That
-# is, you would pick it up and take it to another computer.
-#
-
-INSTALL_THIS_TARGET = 1
-
-!include <$(ACE_ROOT)\include\makeinclude\build_library.bor>
diff --git a/include/makeinclude/build_dll.bor b/include/makeinclude/build_dll.bor
deleted file mode 100644
index 8101289214d..00000000000
--- a/include/makeinclude/build_dll.bor
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-# Rules for linking a dll
-#
-# Inputs:
-# ~~~~~~~
-# NAME - undecorated name of target
-# CFLAGS - extra compiler flags for building target
-# CPPDIR - list of directories containing source files
-# OBJFILES - list of (non-system) object files
-# LIBFILES - list of (non-system) libraries
-# PASCAL - if defined means link dll against pascal run-time library
-# DEBUG - if defined means building with debug information
-#
-
-# All DLLs are copied into the common bin directory so that they always
-# available on the path for the tests.
-BINDIR = $(CORE_BINDIR)
-
-!include <$(ACE_ROOT)\include\makeinclude\decorator.bor>
-!include <$(ACE_ROOT)\include\makeinclude\outputdir.bor>
-!include <$(ACE_ROOT)\include\makeinclude\compiler.bor>
-
-!ifdef NAME
-!ifndef TARGET
-TARGET = $(BINDIR)\$(NAME)$(LIB_DECORATOR).dll
-!endif
-!endif
-
-all: $(TARGET)
- @echo Do nothing >NUL
-
-!ifdef TARGET
-$(TARGET): $(OBJFILES) $(RESOURCE)
- @$(MAKE_BINDIR)
- $(LD) @&&!
- $(COMMON_LFLAGS) $(DLL_LFLAGS) $(LFLAGS) +
- $(DLL_STARTUP_OBJ) $(OBJFILES), +
- $(TARGET),, +
- $(COMMON_LIBS) $(LIBFILES),, +
- $(RESOURCE)
-!
-!ifndef DEBUG
- @del $(TARGET:.dll=.tds)
-!endif
-!endif
-
-!include <$(ACE_ROOT)\include\makeinclude\clean.bor>
-
-INSTALL_TYPES = dll lib includes
-
-!include <$(ACE_ROOT)\include\makeinclude\install.bor>
-
-!ifdef CPPDIR
-.path.cpp = $(CPPDIR)
-!endif
-
-!ifdef CDIR
-.path.c = $(CDIR)
-!endif
-
-!ifdef RESDIR
-.path.rc = $(RESDIR)
-!else
-.path.rc = .
-!endif
-
-.path.obj = $(OBJDIR)
-
-.cpp.obj:
- @$(MAKE_OBJDIR)
- $(CC) $(COMMON_CFLAGS) $(DLL_CFLAGS) $(CFLAGS) -c -n$(@D) $<
-
-.c.obj:
- @$(MAKE_OBJDIR)
- $(CC) $(COMMON_CFLAGS) $(DLL_CFLAGS) $(CFLAGS) -c -n$(@D) $<
-
-.rc.res:
- @$(MAKE_OBJDIR)
- $(RC) -fo$@ $<
-
-.autodepend
diff --git a/include/makeinclude/build_example.bor b/include/makeinclude/build_example.bor
deleted file mode 100644
index 2a1d2bda837..00000000000
--- a/include/makeinclude/build_example.bor
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Makefile for building the example executables
-#
-
-TAO_IDL = $(CORE_BINDIR)\tao_idl -g $(CORE_BINDIR)\gperf.exe -Ge 1
-
-CFLAGS = \
- $(ACE_CFLAGS) \
- $(TAO_CFLAGS) \
- $(TAO_IORTABLE_CFLAGS) \
- $(TAO_PORTABLESERVER_CFLAGS) \
- $(TAO_SVC_UTILS_CFLAGS) \
- $(TAO_NAMING_CFLAGS)
-
-LIBFILES = \
- $(ACE_LIB) \
- $(TAO_LIB) \
- $(TAO_IORTABLE_LIB) \
- $(TAO_PORTABLESERVER_LIB) \
- $(TAO_SVC_UTILS_LIB) \
- $(TAO_NAMING_LIB)
-
-!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor>
-
diff --git a/include/makeinclude/build_exe.bor b/include/makeinclude/build_exe.bor
deleted file mode 100644
index 3e601e8f61d..00000000000
--- a/include/makeinclude/build_exe.bor
+++ /dev/null
@@ -1,93 +0,0 @@
-#
-# Rules for building an executable
-#
-# Inputs:
-# ~~~~~~~
-# NAME - undecorated name of target
-# CFLAGS - extra compiler flags for building target
-# CPPDIR - list of directories containing source files
-# OBJFILES - list of (non-system) object files
-# LIBFILES - list of (non-system) libraries
-# STATIC - if defined means link exe with static libraries
-# PASCAL - if defined means link dll against pascal run-time library
-# DEBUG - if defined means building with debug information
-#
-
-!include <$(ACE_ROOT)\include\makeinclude\decorator.bor>
-!include <$(ACE_ROOT)\include\makeinclude\outputdir.bor>
-!include <$(ACE_ROOT)\include\makeinclude\compiler.bor>
-
-!ifdef NAME
-!ifndef TARGET
-TARGET = $(BINDIR)\$(NAME).exe
-!endif
-!ifdef INSTALL_THIS_TARGET
-# We use a separate CORE_TARGET to copy the executable to the
-# core bin directory. This is so there will be a copy of the
-# exe file left in the local directory for the test scripts
-# to use.
-CORE_TARGET = $(CORE_BINDIR)\$(NAME).exe
-!endif
-!endif
-
-all: $(TARGET) $(CORE_TARGET)
- @echo Do nothing >NUL
-
-!ifdef TARGET
-$(TARGET): $(OBJFILES) $(RESOURCE)
- @$(MAKE_BINDIR)
- $(LD) @&&!
- $(COMMON_LFLAGS) $(EXE_LFLAGS) $(LFLAGS) +
- $(EXE_STARTUP_OBJ) $(OBJFILES), +
- $(TARGET),, +
- $(COMMON_LIBS) $(LIBFILES),, +
- $(RESOURCE)
-!
-!ifndef DEBUG
- @del $(TARGET:.exe=.tds)
-!endif
-!ifdef CORE_TARGET
-$(CORE_TARGET): $(TARGET)
- @copy $(TARGET) $(CORE_TARGET) >NUL
-!ifdef DEBUG
- @copy $(TARGET:.exe=.tds) $(CORE_TARGET:.exe=.tds) >NUL
-!endif
-!endif
-!endif
-
-
-!include <$(ACE_ROOT)\include\makeinclude\clean.bor>
-
-INSTALL_TYPES = exe
-
-!include <$(ACE_ROOT)\include\makeinclude\install.bor>
-
-!ifdef CPPDIR
-.path.cpp = $(CPPDIR)
-!endif
-
-!ifdef CDIR
-.path.c = $(CDIR)
-!endif
-
-!ifdef RESDIR
-.path.rc = $(RESDIR)
-!else
-.path.rc = .
-!endif
-
-.path.obj = $(OBJDIR)
-
-.cpp.obj:
- @$(MAKE_OBJDIR)
- $(CC) $(COMMON_CFLAGS) $(EXE_CFLAGS) $(CFLAGS) -c -n$(@D) $<
-
-.c.obj:
- @$(MAKE_OBJDIR)
- $(CC) $(COMMON_CFLAGS) $(EXE_CFLAGS) $(CFLAGS) -c -n$(@D) $<
-
-.rc.res:
- @$(MAKE_OBJDIR)
- $(RC) -fo$@ $<
-
-.autodepend
diff --git a/include/makeinclude/build_lib.bor b/include/makeinclude/build_lib.bor
deleted file mode 100644
index 49f9850ea17..00000000000
--- a/include/makeinclude/build_lib.bor
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# Rules for building a static library
-#
-# Inputs:
-# ~~~~~~~
-# NAME - undecorated name of target
-# CFLAGS - extra compiler flags for building target
-# CPPDIR - list of directories containing source files
-# OBJFILES - list of (non-system) object files
-# LIBFILES - list of (non-system) libraries
-# PASCAL - if defined means link dll against pascal run-time library
-# DEBUG - if defined means building with debug information
-#
-
-!ifdef INSTALL_THIS_TARGET
-BINDIR = $(CORE_BINDIR)
-!endif
-
-!include <$(ACE_ROOT)\include\makeinclude\decorator.bor>
-!include <$(ACE_ROOT)\include\makeinclude\outputdir.bor>
-!include <$(ACE_ROOT)\include\makeinclude\compiler.bor>
-
-!ifdef NAME
-!ifndef TARGET
-TARGET = $(BINDIR)\$(NAME)$(LIB_DECORATOR).lib
-!endif
-!endif
-
-all: $(TARGET)
- @echo Do nothing >NUL
-
-!ifdef TARGET
-$(TARGET): $(OBJFILES)
- @$(MAKE_BINDIR)
- -@del $(TARGET) 2>NUL
- $(AR) $(LIB_LFLAGS) $(TARGET) @&&!
-+ $(**: = &^
-+ )
-!
-!endif
-
-!include <$(ACE_ROOT)\include\makeinclude\clean.bor>
-
-INSTALL_TYPES = lib includes
-
-!include <$(ACE_ROOT)\include\makeinclude\install.bor>
-
-!ifdef CPPDIR
-.path.cpp = $(CPPDIR)
-!endif
-
-!ifdef CDIR
-.path.c = $(CDIR)
-!endif
-
-.path.obj = $(OBJDIR)
-
-.cpp.obj:
- @$(MAKE_OBJDIR)
- $(CC) $(COMMON_CFLAGS) $(LIB_CFLAGS) $(CFLAGS) -c -n$(@D) $<
-
-.c.obj:
- @$(MAKE_OBJDIR)
- $(CC) $(COMMON_CFLAGS) $(LIB_CFLAGS) $(CFLAGS) -c -n$(@D) $<
-
-.autodepend
diff --git a/include/makeinclude/build_library.bor b/include/makeinclude/build_library.bor
deleted file mode 100644
index 4fca252a364..00000000000
--- a/include/makeinclude/build_library.bor
+++ /dev/null
@@ -1,10 +0,0 @@
-#
-# Makefile rules for building a static or dynamic library
-#
-
-!ifdef STATIC
-!include <$(ACE_ROOT)\include\makeinclude\build_lib.bor>
-!else
-!include <$(ACE_ROOT)\include\makeinclude\build_dll.bor>
-!endif
-
diff --git a/include/makeinclude/clean.bor b/include/makeinclude/clean.bor
deleted file mode 100644
index 7e2dd6162fd..00000000000
--- a/include/makeinclude/clean.bor
+++ /dev/null
@@ -1,63 +0,0 @@
-#
-# Rules for cleaning up intermediate files
-#
-
-clean:
- @copy &&!
-@del $(OBJFILES:.obj=.obj ^
-@del ) $(IDLFILES:.idl=C.cpp ^
-@del ) $(IDLFILES:.idl=C.h ^
-@del ) $(IDLFILES:.idl=C.i ^
-@del ) $(IDLFILES:.idl=S.cpp ^
-@del ) $(IDLFILES:.idl=S.h ^
-@del ) $(IDLFILES:.idl=S.i ^
-@del ) $(IDLFILES:.idl=S_T.cpp ^
-@del ) $(IDLFILES:.idl=S_T.h ^
-@del ) $(IDLFILES:.idl=S_T.i ^
-@del ) $(IDLFILES:.idl=Cli.cpp ^
-@del ) $(IDLFILES:.idl=Cli.h ^
-@del ) $(IDLFILES:.idl=Cli.i ^
-@del ) $(IDLFILES:.idl=Ser.cpp ^
-@del ) $(IDLFILES:.idl=Ser.h ^
-@del ) $(IDLFILES:.idl=Ser.i ^
-@del ) $(IDLFILES:.idl=Ser_T.cpp ^
-@del ) $(IDLFILES:.idl=Ser_T.h ^
-@del ) $(IDLFILES:.idl=Ser_T.i ^
-@del ) $(RESOURCE)
-! clean_$(NAME)~.bat 1> NUL
- -@clean_$(NAME)~.bat 2> NUL
- @del clean_$(NAME)~.bat
-
-realclean:
- @copy &&!
-@del $(OBJFILES:.obj=.obj ^
-@del ) $(IDLFILES:.idl=C.cpp ^
-@del ) $(IDLFILES:.idl=C.h ^
-@del ) $(IDLFILES:.idl=C.i ^
-@del ) $(IDLFILES:.idl=S.cpp ^
-@del ) $(IDLFILES:.idl=S.h ^
-@del ) $(IDLFILES:.idl=S.i ^
-@del ) $(IDLFILES:.idl=S_T.cpp ^
-@del ) $(IDLFILES:.idl=S_T.h ^
-@del ) $(IDLFILES:.idl=S_T.i ^
-@del ) $(IDLFILES:.idl=Cli.cpp ^
-@del ) $(IDLFILES:.idl=Cli.h ^
-@del ) $(IDLFILES:.idl=Cli.i ^
-@del ) $(IDLFILES:.idl=Ser.cpp ^
-@del ) $(IDLFILES:.idl=Ser.h ^
-@del ) $(IDLFILES:.idl=Ser.i ^
-@del ) $(IDLFILES:.idl=Ser_T.cpp ^
-@del ) $(IDLFILES:.idl=Ser_T.h ^
-@del ) $(IDLFILES:.idl=Ser_T.i ^
-@del ) $(RESOURCE)
-! realclean_$(NAME)~.bat 1> NUL
- -@realclean_$(NAME)~.bat 2> NUL
- @del realclean_$(NAME)~.bat
- -@del $(TARGET) 2>NUL
- -@del $(TARGET:.exe=.tds) 2>NUL
- -@del $(TARGET:.dll=.tds) 2>NUL
- -@del $(TARGET:.dll=.lib) 2>NUL
-!ifdef CORE_TARGET
- -@del $(CORE_TARGET) 2>NUL
- -@del $(CORE_TARGET:.exe=.tds) 2>NUL
-!endif
diff --git a/include/makeinclude/compiler.bor b/include/makeinclude/compiler.bor
deleted file mode 100644
index 745dd5fafeb..00000000000
--- a/include/makeinclude/compiler.bor
+++ /dev/null
@@ -1,143 +0,0 @@
-#
-# Defines specific to a particular version of the compiler
-#
-# Inputs:
-# ~~~~~~~
-# STATIC - if defined means creating a static library or executable
-# PASCAL - if defined means link dll against pascal run-time library
-# DEBUG - if defined means building with debug information
-#
-# Outputs:
-# ~~~~~~~~
-# CC - name of compiler
-# LD - name of linker
-# AR - name of librarian
-# RC - name of resource compiler
-# COMMON_CFLAGS - compiler flags for all targets
-# COMMON_LFLAGS - linker flags for all targets
-# COMMON_LIBS - linker library files for all targets
-# DLL_CFLAGS - compiler flags specific to DLL targets
-# DLL_LFLAGS - linker flags specific to DLL targets
-# DLL_STARTUP_OBJ - start-up object files for DLL targets
-# EXE_CFLAGS - compiler flags specific to EXE targets
-# EXE_LFLAGS - linker flags specific to EXE targets
-# EXE_STARTUP_OBJ - start-up object files for EXE targets
-# LIB_CFLAGS - compiler flags specific to static lib targets
-# LIB_LFLAGS - flags specific to static lib targets (passed to
-# librarian)
-#
-
-
-!include <$(ACE_ROOT)\include\makeinclude\ace_flags.bor>
-
-#
-# Build tools
-#
-
-CC = bcc32
-LD = ilink32
-AR = tlib
-RC = brcc32
-
-#
-# Common flags
-#
-
-!ifdef DEBUG
-DEBUG_CFLAGS = -v -y -Od -r- -vi- -k -D_DEBUG
-DEBUG_LFLAGS = -v
-!else
-DEBUG_CFLAGS = -O2 -DNDEBUG
-DEBUG_LFLAGS =
-!endif
-
-!ifdef STATIC
-STATIC_CFLAGS =
-STATIC_LFLAGS =
-!else
-STATIC_CFLAGS = -tWR
-STATIC_LFLAGS =
-!endif
-
-!ifdef CODEGUARD
-CODEGUARD_CFLAGS = -vG
-!endif
-
-THREAD_CFLAGS = -D_MT -tWM
-WARNINGS_CFLAGS = -w-rvl -w-rch -w-ccc -w-obs -w-aus -w-pia -w-inl
-DEFINES_CFLAGS = -DWIN32;_NO_VCL
-QUIET_CFLAGS = -q
-MISC_CFLAGS = -a8 -b
-
-COMMON_CFLAGS = $(QUIET_CFLAGS) $(DEBUG_CFLAGS) $(THREAD_CFLAGS) \
- $(STATIC_CFLAGS) $(WARNINGS_CFLAGS) $(DEFINES_CFLAGS) \
- $(MISC_CFLAGS) $(CODEGUARD_CFLAGS)
-
-COMMON_LFLAGS = $(DEBUG_LFLAGS) $(STATIC_LFLAGS) -x -w-dup -Gn
-
-#
-# DLL specific flags
-#
-
-DLL_CFLAGS = -tWD
-DLL_LFLAGS = -Tpd -Gi
-!ifdef PASCAL
-DLL_STARTUP_OBJ = c0d32.obj sysinit.obj
-!else
-DLL_STARTUP_OBJ = c0d32.obj
-!endif
-
-#
-# EXE specific flags
-#
-
-EXE_CFLAGS =
-EXE_LFLAGS = -Tpe
-!ifdef PASCAL
-EXE_STARTUP_OBJ = c0x32.obj sysinit.obj
-!else
-EXE_STARTUP_OBJ = c0x32.obj
-!endif
-
-#
-# Static lib specific flags
-#
-
-LIB_CFLAGS =
-!ifdef DEBUG
-LIB_LFLAGS = /C /P4096
-!else
-LIB_LFLAGS = /C /P512
-!endif
-
-#
-# VCL lib version number
-#
-
-!if $(BCBVER) == 5
-VCLVER = 50
-!else
-VCLVER = 40
-!endif
-
-#
-# Libraries to be linked
-#
-
-!ifdef CODEGUARD
-CODEGUARD_LIB = cg32.lib
-!endif
-
-!ifdef STATIC
-!ifdef PASCAL
-COMMON_LIBS = $(CODEGUARD_LIB) import32.lib vcl$(VCLVER).lib vcle$(VCLVER).lib cp32mt.lib ws2_32.lib
-!else
-COMMON_LIBS = $(CODEGUARD_LIB) import32.lib cw32mt.lib ws2_32.lib
-!endif
-!else
-!ifdef PASCAL
-COMMON_LIBS = $(CODEGUARD_LIB) import32.lib vcl$(VCLVER).bpi vcle$(VCLVER).lib cp32mti.lib ws2_32.lib
-!else
-COMMON_LIBS = $(CODEGUARD_LIB) import32.lib cw32mti.lib ws2_32.lib
-!endif
-!endif
diff --git a/include/makeinclude/decorator.bor b/include/makeinclude/decorator.bor
deleted file mode 100644
index 0b20bcbdeb5..00000000000
--- a/include/makeinclude/decorator.bor
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-# Creates a suffix for decorating output file names
-#
-# Inputs:
-# ~~~~~~~
-# DEBUG - defined if building a debug library/executable
-# STATIC - defined if building a static library
-# PASCAL - defined if linking against cp32*
-#
-# Outputs:
-# ~~~~~~~~
-# LIB_DECORATOR - suffix to be added to library output file name
-# EXE_DECORATOR - suffix to be added to executable output file name
-#
-
-DECO_PREFIX=
-
-# If you want decoration for Borland, set this to something like "B"
-# otherwise, make it blank
-BORLAND_DECO=b
-
-!ifdef BORLAND_DECO
-DECO_PREFIX=_
-!endif
-
-!ifdef PASCAL
-DECO_PREFIX=_
-PASCAL_DECO=p
-!endif
-
-!ifdef STATIC
-DECO_PREFIX=_
-STATIC_DECO=s
-!endif
-
-!ifdef DEBUG
-DECO_PREFIX=_
-DEBUG_DECO=d
-!endif
-
-LIB_DECORATOR=$(DECO_PREFIX)$(BORLAND_DECO)$(PASCAL_DECO)$(STATIC_DECO)$(DEBUG_DECO)
-
-!ifdef NO_EXE_DECORATION
-EXE_DECORATOR=
-!else
-EXE_DECORATOR=$(DECO_PREFIX)$(BORLAND_DECO)$(PASCAL_DECO)$(STATIC_DECO)$(DEBUG_DECO)
-!endif
-
diff --git a/include/makeinclude/install.bor b/include/makeinclude/install.bor
deleted file mode 100644
index dcaf6489a46..00000000000
--- a/include/makeinclude/install.bor
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# Rules for installing files
-#
-
-# This ugliness is to remove extra spaces from between the items in the list.
-INSTALL_TYPES_1 = $(INSTALL_TYPES) $(BLANK_SPACE)
-INSTALL_TYPES_2 = $(INSTALL_TYPES_1: =%)
-INSTALL_TYPES_3 = $(INSTALL_TYPES_2:%%=%)
-INSTALL_TYPES_4 = $(INSTALL_TYPES_3:%%=%)
-INSTALL_TYPES_5 = $(INSTALL_TYPES_4:%=_install )
-
-!ifdef INSTALL_THIS_TARGET
-install: $(INSTALL_TYPES_5)
-!else
-install:
-!endif
- @echo Do Nothing 1> NUL
-
-exe_install: $(TARGET) $(CORE_TARGET)
- @$(MAKE_INSTALL_EXEDIR)
- -copy "$(TARGET)" $(INSTALL_EXEDIR) 1> NUL
-
-!ifdef DEBUG
-dll_install: $(TARGET) $(TARGET:.dll=.tds)
-!else
-dll_install: $(TARGET)
-!endif
- @$(MAKE_INSTALL_DLLDIR)
- -&copy "$**" $(INSTALL_DLLDIR) 1> NUL
-
-lib_install: $(TARGET:.dll=.lib)
- @$(MAKE_INSTALL_LIBDIR)
- -&copy "$**" $(INSTALL_LIBDIR) 1> NUL
-
-includes_install: $(INCLUDES)
- @$(MAKE_INSTALL_INCDIR)
- -&copy "$**" $(INSTALL_INCDIR) 1> NUL
diff --git a/include/makeinclude/macros.GNU b/include/makeinclude/macros.GNU
deleted file mode 100644
index b2d1a517c10..00000000000
--- a/include/makeinclude/macros.GNU
+++ /dev/null
@@ -1,23 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Local and nested target definitions
-#----------------------------------------------------------------------------
-
-TARGETS_LOCAL = \
- all.local \
- debug.local \
- profile.local \
- optimize.local \
- install.local \
- deinstall.local \
- clean.local \
- realclean.local \
- clobber.local \
- depend.local \
- rcs_info.local \
- idl_stubs.local
-
-TARGETS_NESTED = \
- $(TARGETS_LOCAL:.local=.nested)
-
diff --git a/include/makeinclude/make_flags.bor b/include/makeinclude/make_flags.bor
deleted file mode 100644
index 1850247563b..00000000000
--- a/include/makeinclude/make_flags.bor
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# Makefile flags for recursive invocations of make
-#
-
-!ifdef DEBUG
-DEBUG_FLAG = -DDEBUG
-!endif
-
-!ifdef STATIC
-STATIC_FLAG = -DSTATIC
-!endif
-
-!ifdef PASCAL
-PASCAL_FLAG = -DPASCAL
-!if $(BCBVER) != 4
-!ifndef FORCE_PASCAL
-!message
-!message -------------------------------------------------------------
-!message The PASCAL build configuration is *not* required for use with
-!message Borland C++Builder 5.
-!message
-!message Since both VCL and non-VCL applications share a common run-
-!message time library (i.e. cc3250mt.dll), you can simply link your
-!message VCL code with a non-PASCAL build of the ACE+TAO libraries.
-!message
-!message If you still really want to build a PASCAL configuration, add
-!message -DFORCE_PASCAL to your make command.
-!message -------------------------------------------------------------
-!message
-!error Aborting build
-!else
-PASCAL_FLAG = -DPASCAL -DFORCE_PASCAL
-!endif
-!endif
-!endif
-
-!ifdef CODEGUARD
-CODEGUARD_FLAG = -DCODEGUARD
-!endif
-
-!ifdef INSTALL_DIR
-INSTALL_DIR_FLAG = -DINSTALL_DIR=$(INSTALL_DIR)
-!endif
-
-MAKE_FLAGS = $(DEBUG_FLAG) $(STATIC_FLAG) $(PASCAL_FLAG) \
- $(CODEGUARD_FLAG) $(INSTALL_DIR_FLAG)
diff --git a/include/makeinclude/outputdir.bor b/include/makeinclude/outputdir.bor
deleted file mode 100644
index 026dada72d0..00000000000
--- a/include/makeinclude/outputdir.bor
+++ /dev/null
@@ -1,122 +0,0 @@
-#
-# Creates output object and binary file directories
-#
-# Inputs:
-# ~~~~~~~
-# NAME - undecorated name of target
-# DEBUG - defined if building a debug library/executable
-# STATIC - defined if building a static library
-#
-# Outputs:
-# ~~~~~~~~
-# BINDIR - name of directory where binaries are placed
-# MAKE_BINDIR - command to be used for creating BINDIR
-# OBJDIR - name of directory where object fils are placed
-# MAKE_OBJDIR - command to be used for creating OBJDIR
-#
-
-!ifdef STATIC
-STATIC_DIR=Static
-!else
-STATIC_DIR=Dynamic
-!endif
-
-!ifdef DEBUG
-DEBUG_DIR=Debug
-!else
-DEBUG_DIR=Release
-!endif
-
-!ifdef PASCAL
-PASCAL_DIR=Pascal
-!else
-PASCAL_DIR=.
-!endif
-
-# By default binaries are built underneath the current build directory
-!ifndef BASE_BINDIR
-BASE_BINDIR=.
-!endif
-
-# By default object files are built underneath the current build directory
-!ifndef BASE_OBJDIR
-BASE_OBJDIR=.\obj
-!endif
-
-!ifndef BINDIR
-BINDIR=$(BASE_BINDIR)\$(STATIC_DIR)\$(DEBUG_DIR)\$(PASCAL_DIR)
-!endif
-
-!ifndef CORE_BINDIR
-CORE_BINDIR=$(ACE_ROOT)\bin\$(STATIC_DIR)\$(DEBUG_DIR)\$(PASCAL_DIR)
-!endif
-
-!ifdef MKDIR
-MAKE_BINDIR=$(MKDIR) "$(BINDIR)"
-!else
-# Use default mkdir provided by command shell. May not work on Win9x.
-MAKE_BINDIR=if not exist "$(BINDIR)" mkdir "$(BINDIR)"
-!endif
-
-!ifndef OBJDIR
-OBJDIR=$(BASE_OBJDIR)\$(NAME)\$(STATIC_DIR)\$(DEBUG_DIR)\$(PASCAL_DIR)
-!endif
-
-!ifdef MKDIR
-MAKE_OBJDIR=$(MKDIR) "$(OBJDIR)"
-!else
-# Use default mkdir provided by command shell. May not work on Win9x.
-MAKE_OBJDIR=if not exist "$(OBJDIR)" mkdir "$(OBJDIR)"
-!endif
-
-!ifndef INSTALL_EXEDIR
-!ifndef STATIC
-!ifndef DEBUG
-INSTALL_EXEDIR=$(INSTALL_DIR)\bin
-!else
-INSTALL_EXEDIR=$(INSTALL_DIR)\bin\$(STATIC_DIR)\$(DEBUG_DIR)
-!endif
-!else
-INSTALL_EXEDIR=$(INSTALL_DIR)\bin\$(STATIC_DIR)\$(DEBUG_DIR)
-!endif
-!endif
-
-!ifdef MKDIR
-MAKE_INSTALL_EXEDIR=$(MKDIR) "$(INSTALL_EXEDIR)"
-!else
-# Use default mkdir provided by command shell. May not work on Win9x.
-MAKE_INSTALL_EXEDIR=if not exist "$(INSTALL_EXEDIR)" mkdir "$(INSTALL_EXEDIR)"
-!endif
-
-!ifndef INSTALL_DLLDIR
-INSTALL_DLLDIR=$(INSTALL_DIR)\bin
-!endif
-
-!ifdef MKDIR
-MAKE_INSTALL_DLLDIR=$(MKDIR) "$(INSTALL_DLLDIR)"
-!else
-# Use default mkdir provided by command shell. May not work on Win9x.
-MAKE_INSTALL_DLLDIR=if not exist "$(INSTALL_DLLDIR)" mkdir "$(INSTALL_DLLDIR)"
-!endif
-
-!ifndef INSTALL_LIBDIR
-INSTALL_LIBDIR=$(INSTALL_DIR)\lib
-!endif
-
-!ifdef MKDIR
-MAKE_INSTALL_LIBDIR=$(MKDIR) "$(INSTALL_LIBDIR)"
-!else
-# Use default mkdir provided by command shell. May not work on Win9x.
-MAKE_INSTALL_LIBDIR=if not exist "$(INSTALL_LIBDIR)" mkdir "$(INSTALL_LIBDIR)"
-!endif
-
-!ifndef INSTALL_INCDIR
-INSTALL_INCDIR=$(INSTALL_DIR)\include\$(INCDIR_NAME)
-!endif
-
-!ifdef MKDIR
-MAKE_INSTALL_INCDIR=$(MKDIR) "$(INSTALL_INCDIR)"
-!else
-# Use default mkdir provided by command shell. May not work on Win9x.
-MAKE_INSTALL_INCDIR=if not exist "$(INSTALL_INCDIR)" mkdir "$(INSTALL_INCDIR)"
-!endif
diff --git a/include/makeinclude/platform_aix.GNU b/include/makeinclude/platform_aix.GNU
deleted file mode 100644
index 675b1af991b..00000000000
--- a/include/makeinclude/platform_aix.GNU
+++ /dev/null
@@ -1,3 +0,0 @@
-# $Id$
-
-include $(ACE_ROOT)/include/makeinclude/platform_aix4_cset++.GNU
diff --git a/include/makeinclude/platform_aix4.2.GNU b/include/makeinclude/platform_aix4.2.GNU
deleted file mode 100644
index 395f30adbcb..00000000000
--- a/include/makeinclude/platform_aix4.2.GNU
+++ /dev/null
@@ -1,3 +0,0 @@
-# $Id$
-
-include $(ACE_ROOT)/include/makeinclude/platform_aix4_cset++.GNU \ No newline at end of file
diff --git a/include/makeinclude/platform_aix4_cset++.GNU b/include/makeinclude/platform_aix4_cset++.GNU
deleted file mode 100644
index 429d64a354e..00000000000
--- a/include/makeinclude/platform_aix4_cset++.GNU
+++ /dev/null
@@ -1,118 +0,0 @@
-# $Id$
-
-# AIX 4.x using the IBM C Set++ compiler.
-# *not* using Orbix
-#
-# NOTE! IBM is no longer supporting AIX at any version earlier than 4.3,
-# and Riverace is not testing or supporting ACE on them either. No steps
-# have been taken to intentionally disable anything, but it is not being
-# tested either.
-#
-# NOTE 2! This file is only for use with the older CSet++ compiler, which
-# IBM doesn't sell or support any longer. Riverace doesn't support ACE
-# with it either. This file is still here in case there is some site
-# still using the old compiler, but it is completely unsupported.
-#
-# On 4.1, this file assumes that the user has installed the AIX patch
-# containing the dl*() APIs. To use these APIs, IBM has created a
-# separate product (free to AIX licensees) called shared library
-# hookable symbols (or slhs/6000). If they don't have this patch, the
-# sv* commands for compiling and linking will not be present on the
-# system.
-#
-# On 4.2, the AIX fileset bos.rte.bind_cmds must be at version 4.2.0.2 or
-# higher in order to build libACEshr.a, and at 4.2.0.4 or higher for dl*()
-# routines to work properly. Best to apply the update available at:
-# ftp://service.boulder.ibm.com/aix/fixes/v4/os/bos.rte.bind_cmds.4.2.0.4.bff
-# or a successor.
-
-ifeq (,$(debug))
- debug = 1
-endif
-ifeq (,$(distrib))
- distrib = 0
-endif
-ifeq (,$(exceptions))
- exceptions = 1
-endif
-ifeq (,$(optimize))
- optimize = 0
-endif
-ifeq (,$(threads))
- threads = 1
-endif
-
-# There's no way to turn off exceptions with IBM C/C++
-ifeq (0,$(exceptions))
- exceptions = 1
-endif
-
-# In case anything here or in the config depends on OS version number,
-# grab it here and pass it all to the compiler as well.
-AIX_MAJOR_VERS := $(shell uname -v)
-AIX_MINOR_VERS := $(shell uname -r)
-
-# aix_build turns on the funky shared library building code.
-aix_build = 1
-# ibmcxx_build turns on the extra step for instantiating and compiling
-# template instances.
-ibmcxx_build = 1
-
-ifeq ($(threads),1)
-CC = xlc_r
-CXX = xlC_r
-DLD = makeC++SharedLib_r
-else
-CC = xlc
-CXX = xlC
-DLD = makeC++SharedLib
-endif
-
-# -qextchk is handy, but produces false type mismatches when linking
-# netsvcs with 3.1.4, so it's disabled. IBM reports this fixed in 3.6.4.
-CCFLAGS += $(CFLAGS) -qtempinc -qinfo
-
-# IBM C/C++ compiler 3.6.x produces a bazillion warnings about 0-valued
-# preprocessor defs. Since both 3.1 and 3.4 could be installed, don't ask
-# lslpp for one or the other. Instead, compile a file and see which compiler
-# the user has set up for use. This trick was submitted by Craig Rodrigues
-# <rodrigc@mediaone.net>, originally from the vacpp compiler newsgroup.
-# It relies on the preprocessor defining __xlC__ to the proper version
-# number of the compiler.
-XLCVERSION := $(shell echo "__xlC__" > ./testAIXCompilerVersion.cpp)
-XLCVERSION := $(shell $(CXX) -E ./testAIXCompilerVersion.cpp | tail -1')
-ACE_AIX_CLEAN := $(shell $(RM) ./testAIXCompilerVersion.cpp)
-ifeq ($(XLCVERSION),0x0306)
- CCFLAGS += -qflag=e:e
-else
- CCFLAGS += -qflag=w:w
-endif
-CPPFLAGS += -qlanglvl=ansi -DACE_AIX_MAJOR_VERS=$(AIX_MAJOR_VERS) -DACE_AIX_MINOR_VERS=$(AIX_MINOR_VERS)
-
-# -qinitauto seems useful, but when built with -qinitauto=5F, the
-# Process_Strategy_Test went CPU bound in ostream, so I removed it (S. Huston)
-DCFLAGS += -g -qcheck=nobounds:div:null
-
-ACELIB = -lACE
-LD = $(CXX)
-
-ifeq ($(AIX_MINOR_VERS),1)
-LLIBS = -lsvld -ltli_r $(ACELIB)
-LIBS += $(filter-out $(SHLIBA:lib%.a=-l%), $(LLIBS))
-else
-LIBS += -ltli_r -ldl
-endif
-
-ARFLAGS = ruv
-AR = ar
-LDFLAGS += -bI:/lib/pse.exp
-# Default OCCFLAGS builds common code for all RS/6000 architectures but
-# this can be set to optimize for your particular computer. The commented
-# out example optimizes for RS/6000 43P.
-# OCCFLAGS is not used by default. To used it, set optimize=1
-# either in this file or on the command line.
-#OCCFLAGS += -qarch=ppc -qtune=604
-OCCFLAGS += -O2 -qarch=com
-RANLIB = ranlib
-SOFLAGS = -p 0
-TEMPINCDIR = tempinc
diff --git a/include/makeinclude/platform_aix4_g++.GNU b/include/makeinclude/platform_aix4_g++.GNU
deleted file mode 100644
index 3c2ababa8a1..00000000000
--- a/include/makeinclude/platform_aix4_g++.GNU
+++ /dev/null
@@ -1,71 +0,0 @@
-# $Id$
-#
-# Platform macros for building on AIX 4.x with g++. This has been tested on
-# AIX 4.3 with egcs 1.1.2 and gcc 2.95.2.
-#
-# Original contributed by Ian Wright <I.Wright@elsevier.co.uk>. Updated for
-# AIX 4 and egcs by Steve Huston <shuston@riverace.com>.
-
-
-ifeq (,$(debug))
- debug = 1
-endif
-ifeq (,$(distrib))
- distrib = 0
-endif
-ifeq (,$(optimize))
- optimize = 0
-endif
-ifeq (,$(threads))
- threads = 1
-endif
-ifeq (,$(exceptions))
- exceptions = 0
-endif
-
-ifeq (0,$(threads))
- CFLAGS += -DACE_MT_SAFE=0
-endif
-ifeq (1,$(threads))
- CFLAGS += -mthreads
-endif
-
-# In case anything here or in the config depends on OS version number,
-# grab it here and pass it all to the compiler as well.
-AIX_MAJOR_VERS := $(shell uname -v)
-AIX_MINOR_VERS := $(shell uname -r)
-AIX_VERS := $(AIX_MAJOR_VERS)0$(AIX_MINOR_VERS)
-
-CC = gcc
-CXX = g++
-CFLAGS += -W -Wall -pipe -mcpu=common -DACE_AIX_VERS=$(AIX_VERS)
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS += -Wl,-bI:/lib/pse.exp
-# Linking TAO_IDL runs out of TOC space unless -bbigtoc is given to ld.
-# Don't do it for everything because it decreases run-time performance.
-ifeq ($(notdir $(shell pwd)), TAO_IDL)
-LDFLAGS += -Wl,-bbigtoc
-endif
-OCFLAGS = -O2
-OCCFLAGS = $(OCFLAGS)
-ifeq ($(threads),1)
-SOFLAGS += -mthreads
-endif
-SOFLAGS += -shared -Wl,-bexpall # -Wl,-bloadmap:lib.map
-LIBS += -ltli_r -ldl
-ARFLAGS = cruv
-RANLIB = ranlib
-
-# On AIX, shared libraries are not generally left in .so form to link against.
-# To do so requires the run-time linker and that is an unnecessary evil.
-# So build the .so as usual, but then put in an archive library to link
-# against. The archive lib is the one installed for run-time use also, though
-# if you want to use ACE's dynamic loading features, you'll also need the
-# .so file.
-ifeq ($(shared_libs),1)
-ACELIB = -lACEshr
-SHLIBA = $(SHLIB:lib%.so=lib%shr.a)
-endif
diff --git a/include/makeinclude/platform_aix_g++.GNU b/include/makeinclude/platform_aix_g++.GNU
deleted file mode 100644
index e3762f17957..00000000000
--- a/include/makeinclude/platform_aix_g++.GNU
+++ /dev/null
@@ -1,31 +0,0 @@
-# $Id$
-#
-# Platform macros for building on AIX with g++. This has been tested on
-# AIX 4.1.4 and gcc 2.7.2.3.
-#
-# A note - later versions of gcc(>2.7.2.3, I don't know which) have a -mthreads
-# flag which does the same job more elegantly.
-# I haven't managed to get the shared library to work.
-# I know having tli_r and tli is a bad idea, but it won't link otherwise.
-#
-# Contributed by Ian Wright <I.Wright@elsevier.co.uk>
-
-debug = 1
-static_libs_only = 1
-
-CC = gcc
-CXX = gcc
-CFLAGS += -W -Wall -nostdlib -mcpu=common
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-#only needed for one of the tests and causes compiler errors in building libACE
-#CCFLAGS += -fhandle-exceptions
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-OCFLAGS = -O2
-OCCFLAGS = $(OCFLAGS)
-LIBS += /lib/crt0_r.o -L/usr/lib/threads -lsvld -lC_r -lpthreads
--lc_r -ltli_r -lg++ -lstdc++ -lm -lg -ltli -lgcc
-PIC = -fPIC
-ARFLAGS = cruv
-RANLIB = ranlib
diff --git a/include/makeinclude/platform_aix_ibm.GNU b/include/makeinclude/platform_aix_ibm.GNU
deleted file mode 100644
index 6fd5fc49a7e..00000000000
--- a/include/makeinclude/platform_aix_ibm.GNU
+++ /dev/null
@@ -1,146 +0,0 @@
-# $Id$
-
-# This file is for use with AIX 4.3 and up, using either of the IBM
-# compilers (IBM C/C++ 3.6.6 or Visual Age C++ 5 batch compiler).
-# If you wish to use the CSet++ compiler, please use platform_aix4_cset++.GNU.
-# Note that as of ACE 6.0, the only supported compiler from IBM will
-# be Visual Age C++ 5 and up (either batch or incremental).
-
-ifeq (,$(debug))
- debug = 1
-endif
-ifeq (,$(distrib))
- distrib = 0
-endif
-ifeq (,$(exceptions))
- exceptions = 1
-endif
-ifeq (,$(optimize))
- optimize = 0
-endif
-ifeq (,$(rtti))
- rtti = 0
-endif
-ifeq (,$(threads))
- threads = 1
-endif
-ifeq (,$(buildbits))
- buildbits = 32
-endif
-
-# First, find out which compiler we're building with. The settings we
-# use for compiling, as well as how to build shared libraries, depend on
-# the compiler version. There's no easy way to ask lslpp which is installed.
-# Instead, compile a file and see which compiler is set up for use. This
-# trick was submitted by Craig Rodrigues <rodrigc@mediaone.net>, originally
-# from the vacpp compiler newsgroup.
-# It relies on the preprocessor defining __xlC__ to the proper version
-# number of the compiler.
-XLCVERSION := $(shell echo "__xlC__" > ./testAIXCompilerVersion.cpp)
-XLCVERSION := $(shell xlC -E ./testAIXCompilerVersion.cpp | tail -1')
-ACE_AIX_CLEAN := $(shell $(RM) ./testAIXCompilerVersion.cpp)
-
-# In case anything here or in the config depends on OS version number,
-# grab it here and pass it all to the compiler as well.
-AIX_MAJOR_VERS := $(shell uname -v)
-AIX_MINOR_VERS := $(shell uname -r)
-AIX_VERS := $(AIX_MAJOR_VERS)0$(AIX_MINOR_VERS)
-
-# Use of exceptions should be a compiler-specific setting, but for now it's
-# not. IBM C/C++ doesn't have a way to turn exceptions off, and Visual
-# Age C++ V5 building ACE without exception handling causes segv on startup
-# of every test. Until this is straightened out, force exceptions=1 for
-# both compilers.
-exceptions=1
-
-# Yes, believe it or not...
-# The way to make a shared lib on AIX is to make a shared object file and
-# then put that in an archive.
-# Non-shared archives are named lib<x>ns.a - ns = non-shared.
-SOEXT = a
-# aix_build turns on the funky shared library building code in
-# rules.lib.GNU
-aix_build = 1
-SHR_FILTER=$(ACE_ROOT)/bin/aix_shr
-
-ifeq ($(threads),1)
-# Note - the _r form of the compiler command turns on -qthreads and the
-# thread-required preprocessor defines, as well as -lpthreads for linking.
-# If this is Visual Age C++ 5, DLD will get reset below.
-CC = xlc_r
-CXX = xlC_r
-DLD = makeC++SharedLib_r
-else
-CC = xlc
-CXX = xlC
-DLD = makeC++SharedLib
-endif
-
-ARFLAGS = ruv
-AR = ar
-LD = $(ACE_ROOT)/bin/aix_shr $(CXX)
-RANLIB = ranlib
-TEMPINCDIR = tempinc
-
-CPPFLAGS += -DACE_AIX_VERS=$(AIX_VERS)
-# -qinitauto seems like an interesting option, but some tests (specifically
-# Process_Strategy_Test) hang with it turned on. This should be investigated
-# at some point.
-DCFLAGS += -g -qcheck=nobounds:div:null
-
-# Now sort out the compiler differences here...
-ifeq ($(XLCVERSION),0x0306)
- CCFLAGS += -qlanglvl=ansi -qflag=e:e
- SOFLAGS = -p 0
-# ibmcxx_build turns on the extra step for instantiating and compiling
-# template instances in rules.lib.GNU.
- ibmcxx_build = 1
- rtti = 0
-else
- ifeq ($(XLCVERSION),0x0500)
- CCFLAGS += -qflag=w:w -qsuppress=1540-1102:1500-010
- DLD = $(CXX) -qmkshrobj
- SOFLAGS = $(CCFLAGS) $(CPPFLAGS) $(INCLDIRS)
- ifeq ($(buildbits),64)
- DLD += -q64
- CCFLAGS += -q64
- ARFLAGS := -X64 $(ARFLAGS)
- endif
- else
- CXX = echo "Unrecognized compiler version $(XLCVERSION)\n"
- endif
-endif
-
-# -qextchk is handy, but produces false type mismatches when linking
-# netsvcs, so it's disabled. IBM reports this fixed in 3.6.4, but it's
-# still producing the warnings... should be looked at.
-CCFLAGS += $(CFLAGS) -qonce -qtempinc
-ifeq ($(exceptions),0)
-CCFLAGS += -qnoeh
-endif
-
-ifeq (1,$(rtti))
- CCFLAGS += -qrtti=dynamiccast
-else # ! rtti
- CCFLAGS += -DACE_LACKS_RTTI
-endif # ! rtti
-
-ifeq ($(shared_libs),1)
-ACELIB = -lACE
-else
-ACELIB = -lACEns
-endif
-
-LIBS += $(ACELIB) -ltli_r -ldl
-
-# Default OCCFLAGS builds common code for all RS/6000 architectures but
-# this can be set to optimize for your particular computer. The commented
-# out example optimizes for RS/6000 43P.
-# OCCFLAGS is not used by default. To used it, set optimize=1
-# either in this file or on the command line.
-#OCCFLAGS += -qarch=ppc -qtune=604
-
-# -O2 is too much for Visual Age C++ 5.0. It ends up calling
-# the wrong methods in some cases (orbsvcs/tests/EC_Throughput).
-# Chad Elliott 7/24/2001
-OCCFLAGS += -qlibansi -O -qarch=com
diff --git a/include/makeinclude/platform_chorus.GNU b/include/makeinclude/platform_chorus.GNU
deleted file mode 100644
index 3f949d50a31..00000000000
--- a/include/makeinclude/platform_chorus.GNU
+++ /dev/null
@@ -1,116 +0,0 @@
-# $Id$
-
-# Chorus 3.1b with GNU g++ 2.7.2
-
-CHORUS = 1
-CROSS-COMPILE = 1
-
-debug = 1
-exceptions = 0
-optimize = 1
-shared_libs =
-static_libs = 1
-
-#
-# Directory where the Chorus Development System is installed
-#
-ifndef CLX_CDSPATH
- CLX_CDSPATH = /vob/k_bbansw/chorus_r321_bin/CDS
-endif #CLX_CDSPATH
-ifndef CLX_CDSVERSION
- CLX_CDSVERSION = 4.3
-endif #CLX_CDSVERSION
-ifndef CLX_CDSHOST
- CLX_CDSHOST = solaris
-endif #CLX_CDSHOST
-ifndef CLASSIXDIR
- CLASSIXDIR=$(MERGEDIR)
-endif #CLASSIXDIR
-ifndef CPU
- CPU=powerpc
-endif
-
-XROOT = $(CLX_CDSPATH)/$(CPU)/$(CLX_CDSHOST)/$(CLX_CDSVERSION)
-XDIR = $(XROOT)/$(CPU)-elf
-CC = $(XDIR)/bin/gcc -B$(XROOT)/lib/gcc-lib/
-
-#
-# Tool PATH
-#
-TOOLDIR = $(XDIR)/bin/
-INC_DIR = $(CLASSIXDIR)/include
-BIN_DIR =
-LIB_DIR = $(CLASSIXDIR)/lib
-#CC = gcc
-#CXX = g++
-CXX = $(CC)
-CFLAGS += -w
-CCFLAGS += $(CFLAGS) -fno-implicit-templates \
- -fno-strict-prototypes \
- -Usun \
- -fno-builtin \
- -fconserve-space \
- -fcheck-new \
- -nostdinc \
- -pipe \
- -fno-rtti \
- -fwritable-strings \
- -fsigned-char \
- "-msoft-float" \
- -D_POSIX_THREADS \
- -D_POSIX_THREAD_SAFE_FUNCTIONS \
- "-DNO_FPU_SUPPORT"
-
-ifeq ($(CPU),powerpc)
-CCFLAGS += -mstrict-align \
- -mno-sdata
-endif
-
-ifeq ($(exceptions),1)
-else # ! exceptions
- CCFLAGS += -fno-exceptions
-endif # ! exceptions
-
-#DCFLAGS += -gstabs+
-INCLDIRS += -I$(INC_DIR)/posix \
- -I$(INC_DIR)/stdc \
- -I$(INC_DIR)/chorus/ \
- -I$(INC_DIR)/chorus/iom \
- -I$(INC_DIR)/CC
-DLD =
-LD = $(XDIR)/bin/ld
-#LDFLAGS += -r $(CLASSIXDIR)/lib/CC/libC.a $(CLASSIXDIR)/lib/classix/libcx.u.a
-MATHLIB = -L$(CLASSIXDIR)/lib/libm -lm
-
-LINK.cc.override = $(LD) -u _main -u _premain
-LINK.cc=override
-
-CHORUSLINK=true
-
-# $(CLASSIXDIR)/dtool/mkctors helloCxx_u.xp.o > helloCxx_u.ct.s
-# $(CXX) -c helloCxx_u.ct.s
-# $(RM) helloCxx_u.ct.s
-# $(LD) $(LDOPTIONS) -e _start -o helloCxx_u \
-# $(CLASSIXDIR)/lib/crt/crth.u.o $(CLASSIXDIR)/lib/crt/crt0.o $(CLASSIXDIR)/lib/crt/crti.o helloCxx_u.xp.o helloCxx_u.ct.o $(CLASSIXDIR)/lib/crt/crtn.o \
-# -dn -T $(CLASSIXDIR)/src/act/slots/act_u.ld
-# $(RM) helloCxx_u.xp.o
-# $(RM) helloCxx_u.ct.o
-
-POSTLINK= -r $(CLASSIXDIR)/lib/CC/libC.a $(CLASSIXDIR)/lib/classix/libcx.u.a; \
- mv $@ $@.xp.o; \
- $(CLASSIXDIR)/dtool/mkctors $@.xp.o > $@.ct.s; \
- $(CXX) -c $@.ct.s; \
- $(RM) $@.ct.s; \
- $(LD) $(LDOPTIONS) -e _start -o $@ $(MERGEDIR)/lib/crt/crth.u.o $(MERGEDIR)/lib/crt/crt0.o $(MERGEDIR)/lib/crt/crti.o $@.xp.o $@.ct.o $(MERGEDIR)/lib/crt/crtn.o -dn -T $(MERGEDIR)/src/act/slots/act_u.ld; \
- $(RM) $@.xp.o; \
- $(RM) $@.ct.o
-
-
-OCFLAGS += -O
-PIC = -fPIC
-
-AR = $(TOOLDIR)ar
-ARFLAGS = srv
-
-RANLIB = $(TOOLDIR)ranlib
-PRELIB = @true
diff --git a/include/makeinclude/platform_chorus4.x_g++.GNU b/include/makeinclude/platform_chorus4.x_g++.GNU
deleted file mode 100644
index 42c79bd92b2..00000000000
--- a/include/makeinclude/platform_chorus4.x_g++.GNU
+++ /dev/null
@@ -1,174 +0,0 @@
-# $Id$
-#
-# Chorus 4.0 with egcs 1.1.2
-#
-# This version of plaform macros builds upon the previous version
-# of chorus. Many of the macros were the same so inclusion of
-# the previous macros file seemed the easiest way to go.
-#
-# You will probably need to set the following environment variables
-# or macros:
-#
-# Define your CPU:
-# CPU powerpc (default), sparc or ...
-#
-# Define these:
-# CHTOOLS_DIR <chorus install path>/4.0/chorus-$CPU/tools
-# NUCLEUS_DIR <chorus install path>/4.0/chorus-$CPU/kernel
-#
-# or
-#
-# Define MERGEDIR to your kernel build location.
-#
-
-CHORUS = 1
-CHORUS_4 = 1
-CROSS-COMPILE = 1
-
-ifeq (,$(debug))
- debug = 1
-endif
-exceptions = 0
-ifeq (,$(optimize))
- optimize = 1
-endif
-static_libs_only = 1
-
-#
-# Directory where the Chorus Development System is installed
-#
-ifdef MERGEDIR
- include $(MERGEDIR)/Paths
-endif
-ifndef CHTOOLS_DIR
- CONFIGURATION_ERROR_CHTOOLS: CHTOOLS_DIR_must_be_set!
-endif
-ifndef NUCLEUS_DIR
- CONFIGURATION_ERROR_NUCLEUS: NUCLEUS_DIR_must_be_set!
-endif
-ifndef CPU
- CPU=powerpc
-endif
-ifndef CLX_TYPE
- CLX_TYPE=$(CPU)-elf
-endif
-ifndef CLX_CDSVERSION
- CLX_CDSVERSION = 5.00
-endif
-ifndef CLX_CDSHOST
- CLX_CDSHOST = solaris
-endif
-ifndef OS_DIR
- OS_DIR = $(NUCLEUS_DIR)/../os
-endif
-
-XROOT = $(CHTOOLS_DIR)/$(CPU)/$(CLX_CDSHOST)/$(CLX_CDSVERSION)
-XDIR = $(XROOT)/$(CLX_TYPE)
-TOOLDIR = $(XDIR)/bin
-
-
-#
-# Include Dirs
-#
-NUCLEUS_INCLDIR = $(NUCLEUS_DIR)/include
-OS_INCLDIR = $(OS_DIR)/include
-
-INCLDIRS += -I$(OS_INCLDIR) \
- -I$(NUCLEUS_INCLDIR) \
- -I$(OS_INCLDIR)/chorus \
- -I$(NUCLEUS_INCLDIR)/chorus \
- -I$(OS_INCLDIR)/CC \
- -I$(NUCLEUS_INCLDIR)/posix \
- -I$(NUCLEUS_INCLDIR)/stdc \
- -I$(NUCLEUS_INCLDIR)/chorus/iom \
- -I$(NUCLEUS_INCLDIR)/CC
-
-
-
-
-#
-# Tools
-#
-CC = $(TOOLDIR)/gcc -B$(XROOT)/lib/gcc-lib/
-CXX = $(CC)
-DLD =
-LD = $(XDIR)/bin/ld
-MATHLIB = -L$(NUCLEUS_DIR)/lib/libm -lm
-AR = $(TOOLDIR)/ar
-RANLIB = $(TOOLDIR)/ranlib
-
-
-#
-# Flag Settings
-#
-CFLAGS += -w
-CCFLAGS += $(CFLAGS) -fno-implicit-templates \
- -fno-strict-prototypes \
- -Usun \
- -fno-builtin \
- -fconserve-space \
- -fcheck-new \
- -nostdinc \
- -pipe \
- -fno-rtti \
- -fwritable-strings \
- -fsigned-char \
- "-msoft-float" \
- -DSOFT_FLOAT \
- -D_POSIX_THREADS \
- -D_POSIX_THREAD_SAFE_FUNCTIONS \
- "-DNO_FPU_SUPPORT"
-
-ifeq ($(CPU),powerpc)
-CCFLAGS += -mstrict-align \
- -mno-sdata
-endif
-
-CPPFLAGS += -DCHORUS_4
-CCFLAGS += -D__CHORUS__=400 \
- -DCHORUS_VERSION_MAJOR=4 \
- -DCHORUS_VERSION_MINOR=0 \
- -DCHORUS_PATCH_LEVEL=0 \
- -DCHORUS_4 \
- -D_POSIX_THREAD_PROCESS_SHARED
-
-ifeq ($(exceptions),1)
-else # ! exceptions
- CCFLAGS += -fno-exceptions
-endif # ! exceptions
-
-OCFLAGS += -O
-PIC = -fPIC
-ARFLAGS = srv
-#
-# Adding debug symbols makes the binaries too
-# large to load into memory.
-#DCFLAGS += -g
-
-
-
-LINK.cc.override = $(CXX) -u _main -u _premain
-LINK.cc = override
-
-CHORUSLINK = true
-PRELIB = @true
-
-#
-# Special link process to get the right libraries and
-# build up the static constructors and destructors.
-#
-POSTLINK= -r $(OS_DIR)/lib/CC/libC.a $(OS_DIR)/lib/libbsd/libbsd.a \
- $(OS_DIR)/lib/classix/libcx.a \
- $(NUCLEUS_DIR)/lib/classix/libsys.u.a \
- -nostdlib -lgcc-chorus; \
- mv $@ $@.xp.o; \
- $(CHTOOLS_DIR)/host/bin/mkctors $@.xp.o > $@.ct.s; \
- $(CXX) -c $@.ct.s -o $@.ct.o; \
- $(RM) $@.ct.s; \
- $(LD) $(LDOPTIONS) -e _start -r -dn -o $@ \
- $(NUCLEUS_DIR)/lib/crt/crth.u.o $(NUCLEUS_DIR)/lib/crt/crt0.o \
- $(NUCLEUS_DIR)/lib/crt/crti.o $@.xp.o $@.ct.o \
- $(NUCLEUS_DIR)/lib/crt/crtn.o; \
- $(RM) $@.xp.o; \
- $(RM) $@.ct.o
-
diff --git a/include/makeinclude/platform_chorus_ghs.GNU b/include/makeinclude/platform_chorus_ghs.GNU
deleted file mode 100644
index 18460b1f417..00000000000
--- a/include/makeinclude/platform_chorus_ghs.GNU
+++ /dev/null
@@ -1,77 +0,0 @@
-# $Id$
-#
-# Chorus with Green Hills
-
-# Locations of Green Hills installation, MVME installation, etc. The
-# ifndef protection allows setting via environment variables.
-ifndef GHS_DIR
- GHS_DIR=/project/doc/mvme/green68k/GreenHills/releases/chorus-m68k
-endif # GHS_DIR
-
-ifndef COOL_DIR
- COOL_DIR=/project/doc/mvme/miniCOOL/minicool.r4.3/classix-r3-flm-mvme177-gh
-endif # COOL_DIR
-
-ifndef MVME_DIR
- MVME_DIR=/project/doc/mvme/mvme177
-endif # MVME_DIR
-
-ifndef MVME_INCL
- MVME_INCL = $(MVME_DIR)/include
-endif # MVME_INCL
-
-ifndef MVME_LIB
- MVME_LIB = $(MVME_DIR)/lib
-endif # MVME_LIB
-
-CHORUS = 1
-CROSS-COMPILE = 1
-
-debug = 1
-ifndef exceptions
- exceptions = 1
-endif # exceptions
-optimize = 1
-shared_libs =
-static_libs = 1
-
-PATH +=:$(GHS_DIR)
-
-CC = cxch68
-CXX = $(CC)
-CFLAGS = -groot=$(MVME_DIR)/ -alttools=$(GHS_DIR)/gnuch68 -68040 -fprecise \
- -I$(MVME_INCL)/posix \
- -I$(MVME_INCL)/stdc \
- -I$(MVME_INCL)/chorus \
- -I$(MVME_INCL)/CC
-CCFLAGS += $(CFLAGS) --mkctors --multibyte_chars --no_rtti --wchar_t_keyword \
- -tnone
-DCFLAGS += -g -G
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS = --no_auto_instantiation -u __main -u __premain -u _abort -r \
- $(COOL_DIR)/lib/libOrb.a \
- $(MVME_DIR)/lib/CC/libC.a \
- $(MVME_DIR)/lib/classix/libcx.s.a
-OCFLAGS += -OL -OM
-AR = $(GHS_DIR)/gnuch68/ar
-ARFLAGS = rv
-RANLIB = @true
-
-ifeq ($(debug),)
- CRTH = $(MVME_DIR)/lib/crt/crth.s.o
-else
- CRTH = $(MVME_DIR)/lib/crt/crth_d.s.o
-endif # debug
-
-ifeq (1,$(exceptions))
- CCFLAGS += --exceptions
-endif # exceptions
-
-POSTLINK = ; $(CC) -groot=$(MVME_DIR)/ -alttools=$(GHS_DIR)/gnuch68 -68040 \
- -nostartfiles -nostdlib -e __start -o $@.final \
- $(CRTH) $(MVME_DIR)/lib/crt/crt0.o \
- $(MVME_DIR)/lib/crt/crti.o $@ \
- $(MVME_DIR)/lib/crt/crtn.o \
- -locatedprogram -r; \
- mv -f $@.final $@; chmod +x $@; $(RM) /tmp/gh_*.[os]
diff --git a/include/makeinclude/platform_cray.GNU b/include/makeinclude/platform_cray.GNU
deleted file mode 100644
index 30b63d3a089..00000000000
--- a/include/makeinclude/platform_cray.GNU
+++ /dev/null
@@ -1,50 +0,0 @@
-# $Id$
-
-# Platform macros for SGI/Cray UNICOS (vector) & UNICOS/mk (mpp) -
-# UNICOS 9.0.2.8
-# UNICOS 10.0.0.5
-# UNICOS/mk 2.0.4.57
-# Cray C++ Version 3.2.0.1
-# Cray Standard C Version 6.2.0.1
-#
-# Contributed by Doug Anderson <dla@home.com>
-
-debug = 1
-exceptions = 1
-static_libs_only = 1
-quantify =
-purify =
-
-# Cray's autoinstantiation seems to be broken, resulting in
-# C++ prelinker: error: instantiation loop
-# So, we're using ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
-CC = cc
-LDLIB += -L$(ACE_ROOT)/ace
-CXX = CC
-#CFLAGS +=
-CCFLAGS += -h noautoinstantiate
-DCFLAGS += -g
-DCCFLAGS += $(DCFLAGS)
-OCFLAGS += -O2
-OCCFLAGS += $(OCFLAGS)
-
-ifeq (1,$(exceptions))
- CCFLAGS += -h exceptions
-else
- CCFLAGS += -h noexceptions
-endif # exceptions
-
-DLD = $(CXX)
-LD = $(CXX)
-LIBS = -lpthread
-PIC =
-AR = ar
-ARFLAGS = ruv
-RANLIB = /bin/true
-
-# This is necessary to get libraries to contain template info, but only
-# necessary when using autoinstantiation
-# PRELIB = @echo ""; \
-# echo "int main() { return 0; }" >dummy.cpp; \
-# echo "$(CXX) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) $(LIBS) -o dummy dummy.cpp $?";\
-# $(CXX) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS) $(LIBS) -o dummy dummy.cpp $?;
diff --git a/include/makeinclude/platform_cygwin32.GNU b/include/makeinclude/platform_cygwin32.GNU
deleted file mode 100644
index 69837b81084..00000000000
--- a/include/makeinclude/platform_cygwin32.GNU
+++ /dev/null
@@ -1,24 +0,0 @@
-# $Id$
-
-#
-# This file should allow to build ACE for cygwin32 with cygwin tools.
-#
-# Edit to change TCPU and w32api defs below.
-#
-# Don't forget to define the ACE_ROOT environment variable!
-#
-
-#
-# Chose your target CPU (uncomment ONE of these).
-#
-TCPU = pentiumpro
-#TCPU = pentium
-#TCPU = i486
-#TCPU = i386
-
-cygwin32 = 1
-threads = 0
-static_libs_only = 1
-optimize = 0
-
-include $(ACE_ROOT)/include/makeinclude/platform_gnuwin32_common.GNU
diff --git a/include/makeinclude/platform_dgux4_epc.GNU b/include/makeinclude/platform_dgux4_epc.GNU
deleted file mode 100644
index 7af2281d13a..00000000000
--- a/include/makeinclude/platform_dgux4_epc.GNU
+++ /dev/null
@@ -1,23 +0,0 @@
-# $Id$
-
-# SunOS 5.x (Solaris 2.x) with SunC++ 4.x
-# *not* using Orbix
-
-debug = 1
-
-CC = gcc
-CXX = ec++
-## CCFLAGS += -relax -tproff
-CCFLAGS += $(CFLAGS) -relax -v -eh
-DCFLAGS += -g
-DLD = $(CXX)
-LIBS += -lgen -lsocket -ldl -lnsl -lc
-PIC = -KPIC
-AR = ar
-ARFLAGS = -ruv
-RANLIB = echo
-SOFLAGS = -G $(CPPFLAGS)
-#SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
-# $(SOLINK.cc) -o $@ -h $@ $(LDFLAGS) $(VSHDIR)$*.o
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
diff --git a/include/makeinclude/platform_dgux4_ghs.GNU b/include/makeinclude/platform_dgux4_ghs.GNU
deleted file mode 100644
index 05c5b3ad787..00000000000
--- a/include/makeinclude/platform_dgux4_ghs.GNU
+++ /dev/null
@@ -1,27 +0,0 @@
-# $Id$
-
-# DG/UX 4.x using Green Hills Multi's C++ compiler.
-
-debug = 1
-#shared_libs_only = 0
-#static_libs_only = 1
-#static_libs = 1
-
-CC = cc
-CXX = ghcx
-CCFLAGS += $(CFLAGS) -elf -template=noauto # -ansicxx
-# There was a link-time failure if -g (debugging) was turned on, and Green
-# Hills was not able to try to fix it, so debugging is via ACE_OS::printf :-(
-DCFLAGS += # -g
-DLD = $(CXX) -shared
-LD = $(CXX)
-LIBS += -lthread -lrte -lgen -lsocket -ldl -lnsl # -lc
-PIC = -pic
-AR = $(CXX) -archive -o
-ARFLAGS =
-RANLIB = echo
-#SOFLAGS = -G $(CPPFLAGS)
-#SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
-# $(SOLINK.cc) -o $@ -h $@ $(LDFLAGS) $(VSHDIR)$*.o
-#SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
-# $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
diff --git a/include/makeinclude/platform_freebsd.GNU b/include/makeinclude/platform_freebsd.GNU
deleted file mode 100644
index 631ad555c72..00000000000
--- a/include/makeinclude/platform_freebsd.GNU
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id$
-
-# platform_freebsd.GNU
-
-VERSION := $(shell uname -r | sed -e "s/`uname -r | sed -e 's/.//'`//")
-ifeq ($(VERSION),2)
-versioned_so = 1
-endif
-
-optimize = 1
-
-debug = 1
-
-CC = gcc
-CXX = g++
-CFLAGS += -W -Wall -Wpointer-arith -pipe
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-DCFLAGS += -g
-ifneq ($(VERSION),3)
- LDFLAGS += -Wl,-rpath $(ACE_ROOT)/ace
-endif
-DLD = $(CXX)
-LD = $(CXX)
-LIBS += -lstdc++
-OCFLAGS += -O2
-PIC = -fpic
-AR = ar
-ARFLAGS = ruv
-RANLIB = ranlib
-
-SOFLAGS = $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @echo
diff --git a/include/makeinclude/platform_freebsd_pthread.GNU b/include/makeinclude/platform_freebsd_pthread.GNU
deleted file mode 100644
index a6cfdd13203..00000000000
--- a/include/makeinclude/platform_freebsd_pthread.GNU
+++ /dev/null
@@ -1,8 +0,0 @@
-# $Id$
-
-# platform_freebsd_pthread.GNU
-
-include $(ACE_ROOT)/include/makeinclude/platform_freebsd.GNU
-
-LDFLAGS += -pthread
-CFLAGS += -D_THREAD_SAFE
diff --git a/include/makeinclude/platform_gnuwin32_common.GNU b/include/makeinclude/platform_gnuwin32_common.GNU
deleted file mode 100644
index aee06d0ed29..00000000000
--- a/include/makeinclude/platform_gnuwin32_common.GNU
+++ /dev/null
@@ -1,112 +0,0 @@
-# $Id$
-
-ifneq ($(mingw32),1)
- ifneq ($(cygwin32),1)
- fail := \
- $(shell \
- echo "You should not use this file but one of"; \
- echo "platform_mingw32.GNU or platform_cygwin32.GNU"; \
- exit 1)
- endif
-endif
-
-# debug = 1
-# optimize = 1
-# exceptions = 0
-
-ifndef winsock2
- winsock2 = 1
-endif
-
-ifndef exceptions
- exceptions = 0
-endif
-ifeq (,$(debug))
- debug = 1
-endif
-ifeq (,$(optimize))
- optimize = 1
-endif
-ifeq (,$(threads))
- threads = 1
-endif
-ifeq ($(threads),0)
- CFLAGS += -DACE_MT_SAFE=0
-endif # threads
-
-ifeq ($(mingw32),1)
-CFLAGS += \
- -I$(MINGW_BASE)/mingw32/include \
- -I$(MINGW_BASE)/w32api/include \
- -I$(MINGW_BASE)/include
-LDFLAGS += \
- -L$(MINGW_BASE)/mingw32/lib \
- -L$(MINGW_BASE)/w32api/lib \
- -L$(MINGW_BASE)/lib
-endif
-
-ifeq ($(debug),0)
-CFLAGS += -DNDEBUG
-endif
-
-CC = gcc
-CXX = g++
-
-MODEL_FLAGS += -m$(TCPU)
-
-# Never use -pipe with 95/98. On NT/2000, not sure if it helps.
-CFLAGS += -W -Wall -Wpointer-arith
-ifeq ($(threads),1)
- MODEL_FLAGS += -mthreads
-endif # threads
-
-CFLAGS += $(MODEL_FLAGS)
-
-# Never use -pipe with 95/98. On NT/2000, not sure if it helps.
-CFLAGS += -W -Wall -Wpointer-arith
-
-ifeq ($(IMPLICIT_TEMPLATES_FLAG),)
- IMPLICIT_TEMPLATES_FLAG=-fno-implicit-templates
-endif
-
-EXEEXT = .exe
-
-CCFLAGS += $(CFLAGS) $(IMPLICIT_TEMPLATES_FLAG)
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-
-ifeq ($(mingw32),1)
-ifeq ($(winsock2),1)
-LIBS += -lws2_32 -lmswsock
-endif
-LIBS += -lwsock32
-endif
-
-OCFLAGS += -O3
-PIC = -DACE_OS_HAS_DLL=1
-AR = ar
-ARFLAGS = rsuv
-RANLIB = ranlib
-SOEXT = dll
-SOFLAGS = $(MODEL_FLAGS) $(CPPFLAGS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-
-# The sed below is to strip comments on the .def file,
-# to workaround to a bug in ld.
-SHLIBBUILD = \
- $(RM) $(VSHDIR)/$@.def.old $(VSHDIR)/$@.def; \
- dlltool --export-all --output-def $(VSHDIR)/$@.def --dllname $@ \
- $(VSHOBJS1) \
- && mv $(VSHDIR)/$@.def $(VSHDIR)/$@.def.old \
- && sed 's/;.*$$//g' < $(VSHDIR)/$@.def.old > $(VSHDIR)/$@.def \
- && $(SOLINK.cc) -Wl,--enable-auto-image-base -Wl,--out-implib,$@.a \
- -shared -o $@ $(LDFLAGS) $(VSHDIR)/$@.def \
- $(VSHOBJS1) $(ACE_SHLIBS) $(LIBS)
-
-ifeq ($(exceptions),1)
-SHLIBBUILD += \
- ;echo "Warning: exceptions fail when mixing DLL and non DLL calls."
-endif
-
-PRELIB = @true
diff --git a/include/makeinclude/platform_hpux.GNU b/include/makeinclude/platform_hpux.GNU
deleted file mode 100644
index 2388aaf5be9..00000000000
--- a/include/makeinclude/platform_hpux.GNU
+++ /dev/null
@@ -1,28 +0,0 @@
-# $Id$
-
-debug = 1
-
-# First, extract the OS version number.
-HPVERS_WORDS := $(subst ., ,$(shell uname -r))
-HPUX_VERS := $(join $(word 2,$(HPVERS_WORDS)),$(word 3,$(HPVERS_WORDS)))
-#
-
-CC = /bin/cc
-CXX = /usr/bin/CC -pta -ti,/bin/true -tr,/bin/true
-CFLAGS = -Aa -z +a1
-CCFLAGS = $(CFLAGS) -D_REENTRANT -DACE_LACKS_PRAGMA_ONCE -DHPUX_VERS=$(HPUX_VERS)
-DCFLAGS += -g
-DLD = /usr/bin/CC
-LD = /usr/bin/CC
-PIC = +Z
-ARFLAGS = ruv
-RANLIB = echo
-LDFLAGS = -L$(ACE_ROOT)/ace -Wl,+s
-LIBS += -lxti
-SOFLAGS = -b
-SOEXT = sl
-SOBUILD = @echo ""; \
- echo "$(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<"; \
- $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- echo "$(SOLINK.cc) -o $@ $(VSHDIR)$*.o"; \
- $(SOLINK.cc) -o $@ $(VSHDIR)$*.o
diff --git a/include/makeinclude/platform_hpux_aCC.GNU b/include/makeinclude/platform_hpux_aCC.GNU
deleted file mode 100644
index 7048896e0e9..00000000000
--- a/include/makeinclude/platform_hpux_aCC.GNU
+++ /dev/null
@@ -1,171 +0,0 @@
-# $Id$
-#
-# This is for the HP-UX 10.x and 11.x using the aC++ compiler.
-#
-# For 10.x, most of the difference for threaded vs. non-threaded is
-# contained in ace/config-hpux-10.x.h. However, to build without threads,
-# you should run the make with "threads=0" since the default is to build
-# with threads.
-#
-# HP-UX 11 supports both 32-bit and 64-bit builds, regardless of which
-# architecture the build is done on. This file is set up to build native
-# to the machine it's running on. To cross-build for another platform, add
-# "buildbits=32" to make a 32-bit build, and "buildbits=64" to do a 64-bit
-# build. Note that if you explicitly specify a 64-bit build, the option
-# -Wl,+vnocompatwarnings is added to shut up the "At least one PA 2.0 object
-# file detected..." messages.
-
-ifeq (,$(buildbits))
- buildbits = 0
-endif
-ifeq (,$(debug))
- debug = 1
-endif
-ifeq (,$(distrib))
- distrib = 0
-endif
-ifeq (,$(exceptions))
- exceptions = 1
-endif
-ifeq (,$(optimize))
- optimize = 0
-endif
-ifeq (,$(stdcpplib))
- stdcpplib = 1
-endif
-ifeq (,$(threads))
- threads = 1
-endif
-
-# First, extract the OS version number.
-HPVERS_WORDS := $(subst ., ,$(shell uname -r))
-HPUX_VERS := $(join $(word 2,$(HPVERS_WORDS)),$(word 3,$(HPVERS_WORDS)))
-#
-CC = /bin/cc
-CXX = aCC
-
-# Extract the compiler version number. If it's A.03.27 (on HP-UX 11) or
-# A.01.27 (on HP-UX 10.20) (or higher) then we can turn on the standard
-# C++ library usage, else we need to stick with the old one.
-CXXVERS_WORDS := $(subst ., , $(shell $(CXX) -V 2>&1))
-CXXVERS := $(word 8, $(CXXVERS_WORDS))
-ifneq (27,$(CXXVERS))
-ifneq (30,$(CXXVERS))
- stdcpplib = 0
-endif
-endif
-
-ifeq (1,$(stdcpplib))
- CCFLAGS += -AA -DACE_HAS_STANDARD_CPP_LIBRARY=1
-ifeq (1, $(threads))
- CCFLAGS += -D_RWSTD_MULTI_THREAD -D_REENTRANT
-endif
-# Compile errors using -AA and +noeh together - HP problem report
-# JAGad12608, fix slated for Dec 2001 Release -- Steve Huston, April 10, 2001.
- exceptions = 1
-endif
-
-# Set the appropriate preprocessor defs for threading based on OS version.
-# If the user has requested building without threads, then don't set any
-# for 10.20, but for 11.00, the default is to use threads, so explicitly
-# turn them off if the user requested build without threads.
-# On HP-UX 11, even without building for threads, the *_r reentrant
-# functions are available, and _REENTRANT enables them.
-ifeq ($(threads),1)
-ifeq ($(word 2,$(HPVERS_WORDS)), 11)
-THR_DEFS = -DACE_HAS_THREADS -D_POSIX_C_SOURCE=199506L
-else
-THR_DEFS = -DACE_HAS_THREADS -D_REENTRANT
-endif
-else
-ifeq ($(word 2,$(HPVERS_WORDS)), 11)
-THR_DEFS = -DACE_HAS_THREADS=0 -D_REENTRANT
-endif
-endif
-
-# Suppress warning 302 ((...) parameter list is a non-portable feature)
-CCFLAGS += $(THR_DEFS) -DHPUX_VERS=$(HPUX_VERS) -DACE_LACKS_PRAGMA_ONCE +W302
-
-# If exception support is explicitly disabled, tell the compiler.
-# This is not recommended since the run-time library can throw exceptions.
-ifneq ($(exceptions),1)
-CCFLAGS += +noeh
-endif
-
-# Additionally, on HP-UX 10.20, suppress 495 to shut up the warnings from
-# the system header files. 667 is also suppressed, but the compiler still
-# tells you there was a future error, but at least you can pick out any real
-# errors by quickly scanning the output. 829 is suppressed because the
-# system headers have offending string literals assigned to char *.
-ifeq ($(word 2,$(HPVERS_WORDS)), 10)
-CCFLAGS += +W495,667,829,908
-endif
-DCCFLAGS += -g
-DLD = $(CXX) $(CCFLAGS)
-LD = $(CXX)
-OCCFLAGS = -O
-PIC = +Z
-
-AR = $(COMPILE.cc) +inst_close $^; /bin/ar
-ARFLAGS = ruv
-RANLIB = echo
-LDFLAGS = -Wl,+s -z
-SOFLAGS = -b
-
-ifeq ($(distrib),1)
-
-ifeq ($(word 2,$(HPVERS_WORDS)), 10)
-SOFLAGS += -Wl,-x -Wl,+h/usr/lib/$(@F)
-else
-ifeq ($(buildbits),32)
-SOFLAGS += -Wl,-x -Wl,+h/usr/lib/$(@F)
-endif
-ifeq ($(buildbits),64)
-SOFLAGS += -Wl,-x -Wl,+h/usr/lib/pa20_64/$(@F)
-endif
-endif
-
-endif
-
-SOEXT = sl
-
-ifeq ($(buildbits),32)
-CCFLAGS += +DA1.1 +DS1.1
-else
-ifeq ($(buildbits),64)
- ifeq ($(word 2,$(HPVERS_WORDS)), 11)
- ## Without the W, it isn't really a 64-bit build
- CCFLAGS += +DA2.0W +DS2.0W
- else
- CCFLAGS += +DA2.0 +DS2.0
- endif
-LDFLAGS += -Wl,+vnocompatwarnings
-else
-CCFLAGS += +DAportable
-endif
-endif
-
-#
-# Grab the appropriate libraries based on the version of HP-UX we're building
-# on and whether or not thread support is being used.
-#
-ifeq ($(word 2,$(HPVERS_WORDS)), 11)
-
-#11.x:
-ifeq ($(threads),1)
-## -L./ must directly preceed the system libraries for 64-bit builds
-## with aCC 3.27. Without this change, libpthread.sl can not be found.
-LIBS += -L./ -lxti -lpthread -lrt -ldld
-else
-LIBS += -lxti -lrt -ldld
-endif
-
-else
-
-# 10.x:
-LIBS += -lxti -ldld
-ifeq ($(threads),1)
-LIBS += -lcma
-endif
-
-endif
diff --git a/include/makeinclude/platform_hpux_gcc.GNU b/include/makeinclude/platform_hpux_gcc.GNU
deleted file mode 100644
index 4ef25dac395..00000000000
--- a/include/makeinclude/platform_hpux_gcc.GNU
+++ /dev/null
@@ -1,68 +0,0 @@
-# $Id$
-#
-
-debug = 1
-optimize = 1
-threads = 1
-
-# First, extract the OS version number.
-HPVERS_WORDS := $(subst ., ,$(shell uname -r))
-HPUX_VERS := $(join $(word 2,$(HPVERS_WORDS)),$(word 3,$(HPVERS_WORDS)))
-#
-CC = gcc
-CXX = g++
-CFLAGS += -w
-#
-# Set the appropriate preprocessor defs for threading based on OS version.
-# If the user has requested building without threads, then don't set any.
-#
-ifeq ($(threads),1)
-ifeq ($(word 2,$(HPVERS_WORDS)), 11)
-THR_DEFS = -DACE_HAS_THREADS -D_POSIX_C_SOURCE=199506L
-else
-THR_DEFS = -DACE_HAS_THREADS -D_REENTRANT
-endif
-endif
-
-CCFLAGS += $(CFLAGS) -fno-implicit-templates -DHPUX_VERS=$(HPUX_VERS) $(THR_DEFS)
-# On HP-UX 11, there's a conflict with pthread_atfork in sys/unistd.h and
-# sys/pthread.h - both define the function, but slightly differently.
-# -fstrict-prototype resolves the issue.
-ifeq ($(word 2,$(HPVERS_WORDS)), 11)
-CCFLAGS += -fstrict-prototype
-endif
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-OCFLAGS += -O2
-PIC = -fPIC
-ARFLAGS = ruv
-RANLIB = echo
-LDFLAGS = -L. -L$(ACE_ROOT)/ace -Wl,+s
-SOFLAGS = $(CPPFLAGS) -shared -nostdlib $(PIC)
-SOEXT = sl
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.$(SOEXT) $<
-SHLIBBUILD = $(SOLINK.cc) -o $@ $(VSHOBJS1)
-PRELIB = @true
-#
-# Grab the appropriate libraries based on the version of HP-UX we're building
-# on and whether or not thread support is being used.
-#
-ifeq ($(word 2,$(HPVERS_WORDS)), 11)
-
-#11.x:
-ifeq ($(threads),1)
-LIBS += -lxti -lpthread -lrt -ldld
-else
-LIBS += -lxti -lrt -ldld
-endif
-
-else
-
-# 10.x:
-LIBS += -lxti -ldld
-ifeq ($(threads),1)
-LIBS += -lcma
-endif
-
-endif
diff --git a/include/makeinclude/platform_hpux_kcc.GNU b/include/makeinclude/platform_hpux_kcc.GNU
deleted file mode 100644
index eb7c11dee0d..00000000000
--- a/include/makeinclude/platform_hpux_kcc.GNU
+++ /dev/null
@@ -1,119 +0,0 @@
-# $Id$
-#
-# This is for HP-UX 11.x using the KCC compiler.
-#
-# HP-UX 11 supports both 32-bit and 64-bit builds, regardless of which
-# architecture the build is done on. This file is set up to build native
-# to the machine it's running on. To cross-build for another platform, add
-# "buildbits=32" to make a 32-bit build, and "buildbits=64" to do a 64-bit
-# build. Note that if you explicitly specify a 64-bit build, the option
-# -Wl,+vnocompatwarnings is added to shut up the "At least one PA 2.0 object
-# file detected..." messages.
-#
-# NOTE: This has only been tested with "buildbits" left as the default.
-#
-
-ifeq (,$(buildbits))
- buildbits = 0
-endif
-ifeq (,$(debug))
- debug = 1
-endif
-ifeq (,$(distrib))
- distrib = 0
-endif
-ifeq (,$(optimize))
- optimize = 0
-endif
-ifeq (,$(threads))
- threads = 1
-endif
-
-# The only way we can disable exceptions is to also disable threads
-ifeq ($(threads),1)
- THR_DEFS = --thread_safe -DACE_HAS_THREADS -D_POSIX_C_SOURCE=199506L
- LDFLAGS = --thread_safe
- ARFLAGS = --thread_safe
- exceptions = 1
-else
- THR_DEFS = -DACE_HAS_THREADS=0
- LDFLAGS =
- ARFLAGS =
- ifeq (0,$(exceptions))
- CCFLAGS += --no_exceptions
- LDFLAGS += --no_exceptions
- endif
-endif
-
-
-CC = cc
-CXX = KCC
-CCFLAGS += $(CFLAGS) $(THR_DEFS) -DACE_LACKS_PRAGMA_ONCE
-DCFLAGS += +K0 -g
-DLD = $(CXX) $(CCFLAGS)
-LD = $(CXX)
-OCCFLAGS = +K3 -O
-PIC = +Z
-LDFLAGS += -Wl,+s -z
-SOFLAGS =
-SOEXT = sl
-
-# Please note that KCC can not replace object files within a
-# static library. You must rebuild the library with all of the .o's
-# The ar rule will require you to touch all of the object files in .obj,
-# including the ones under .obj/ti_files, to do this.
-AR = KCC
-ARFLAGS += -Bstatic -o
-
-# KCC allows suppresion of warnings and errors.
-# Warning #111 statement is unreachable
-CCFLAGS += --diag_suppress 111
-
-#
-# libpthread is automatically linked in by KCC if we use --thread_safe,
-# therefore we do not need to explicitly supply it.
-# If we link statically and libpthread is supplied with $(LIBS), the
-# program will core dump.
-#
-LIBS += -Bdynamic -lxti -lrt -ldld
-
-ifdef static_libs_only
- ifneq ($(static_libs_only),0)
- static_libs=1
- endif
-endif
-# Kind of a hack since LDFLAGS is used for both non-static
-# library generation and binary generation. LD is only used for
-# binary generation.
-ifneq ($(static_libs),0)
- CCFLAGS += --one_instantiation_per_object
- LD += -Bstatic
- # libc is also automatically linked in by KCC, but when we are linking
- # statically libc must be linked dynamically or gethostbyname does not
- # function properly.
- LIBS += -lc -Bstatic
-endif
-
-#
-# This section has not been tested.
-#
-ifeq ($(distrib),1)
- ifeq ($(buildbits),32)
- SOFLAGS += -Wl,-x -Wl,+h/usr/lib/$(@F)
- endif
- ifeq ($(buildbits),64)
- SOFLAGS += -Wl,-x -Wl,+h/usr/lib/pa20_64/$(@F)
- endif
-endif
-ifeq ($(buildbits),32)
- CCFLAGS += +DA1.1 +DS1.1
-else
- ifeq ($(buildbits),64)
- CCFLAGS += +DA2.0 +DS2.0
- LDFLAGS += -Wl,+vnocompatwarnings
- else
- CCFLAGS += +DAportable
- endif
-endif
-
-
diff --git a/include/makeinclude/platform_hpux_orbix.GNU b/include/makeinclude/platform_hpux_orbix.GNU
deleted file mode 100644
index fa05720bf14..00000000000
--- a/include/makeinclude/platform_hpux_orbix.GNU
+++ /dev/null
@@ -1,30 +0,0 @@
-# $Id$
-
-# Assume the existence of Orbix with HP/UX...
-
-debug = 1
-
-CC = /bin/cc
-CXX = /usr/bin/CC
-CFLAGS = -Aa -z +z
-CCFLAGS = $(CFLAGS) -pta -ptb
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-INCLDIRS = -I$(ORBIX_ROOT)/include
-PIC =
-ARFLAGS = ruv
-RANLIB = echo
-LDFLAGS = -L$(ORBIX_ROOT)/lib -L$(ACE_ROOT)/ace -Wl,+s
-SOFLAGS = -b
-SOBUILD = @echo ""; \
- echo "$(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<"; \
- $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(RM) -rf $(VSHDIR)pt$*; mkdir $(VSHDIR)pt$*; \
- echo "int main() { return 0; }" >dummy.C; \
- echo "$(CXX) $(CCFLAGS) $(PIC) $(CPPFLAGS) $(LDFLAGS) -ptr$(VSHDIR)pt$* -ptr./ptrepository dummy.C $<";\
- YYZ="`$(CXX) $(CCFLAGS) $(PIC) $(CPPFLAGS) $(LDFLAGS) -ptr$(VSHDIR)pt$* -ptr./ptrepository dummy.C $<`"; \
- $(RM) -rf a.out dummy.*; \
- YYZ="`echo $(VSHDIR)pt$*/*.o`"; \
- echo "$(SOLINK.cc) -o $@ ./$(VSHDIR)$*.o $(YYZ)"; \
- $(SOLINK.cc) -o $@ ./$(VSHDIR)$*.o $(YYZ)
diff --git a/include/makeinclude/platform_irix5.2.GNU b/include/makeinclude/platform_irix5.2.GNU
deleted file mode 100644
index 57a80d16440..00000000000
--- a/include/makeinclude/platform_irix5.2.GNU
+++ /dev/null
@@ -1,21 +0,0 @@
-# $Id$
-
-# Irix 5.2 with gcc 2.6.1
-
-debug = 1
-optimize = 1
-
-MAKE = gmake
-CC = gcc
-CXX = g++
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS +=
-LIBS += -ldl
-OCFLAGS += -O2
-PIC = -fpic
-RANLIB = echo
-SOFLAGS =
-SOBUILD =
diff --git a/include/makeinclude/platform_irix5.3_g++.GNU b/include/makeinclude/platform_irix5.3_g++.GNU
deleted file mode 100644
index 2353ab4170d..00000000000
--- a/include/makeinclude/platform_irix5.3_g++.GNU
+++ /dev/null
@@ -1,21 +0,0 @@
-# $Id$
-
-# Irix 5.3 with GNU C++
-
-debug = 1
-optimize = 1
-
-CC = gcc
-CXX = g++
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS += -L$(ACE_ROOT)/ace
-OCFLAGS += -O2
-PIC = -fpic
-RANLIB = echo
-SOFLAGS = -shared $(CPPFLAGS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
-
diff --git a/include/makeinclude/platform_irix5.3_sgic++.GNU b/include/makeinclude/platform_irix5.3_sgic++.GNU
deleted file mode 100644
index 4616cfb40c3..00000000000
--- a/include/makeinclude/platform_irix5.3_sgic++.GNU
+++ /dev/null
@@ -1,25 +0,0 @@
-# $Id$
-
-# Irix 5.3 with SGI C++
-
-# This suppresses common compiler warnings which appear in the
-# ACE code but should not matter. The warnings can be turned on
-# again by removing the -woff clause in the CPPFLAGS definition.
-
-debug = 1
-
-CC = cc
-CXX = CC
-CCFLAGS += $(CFLAGS)
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-CPPFLAGS += -ptused -prelink +pp -woff 3203,3209,3161,3262,3665
-LIBS =
-PIC = -KPIC
-AR = ar
-ARFLAGS = r
-RANLIB = echo
-SOFLAGS = -shared $(CPPFLAGS) -all
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
diff --git a/include/makeinclude/platform_irix6.x_common.GNU b/include/makeinclude/platform_irix6.x_common.GNU
deleted file mode 100644
index 5338d972dcd..00000000000
--- a/include/makeinclude/platform_irix6.x_common.GNU
+++ /dev/null
@@ -1,14 +0,0 @@
-# $Id$
-
-xt_reactor = 1
-exceptions = 1
-
-PLATFORM_XT_CPPFLAGS=
-PLATFORM_XT_LIBS=-lXm -lXt -lX11
-PLATFORM_XT_LDFLAGS=
-
-ifndef ACE_IRIX_VERS
-ACE_IRIX_VERS := $(subst .,,$(shell uname -r))
-endif # ACE_IRIX_VERS
-
-CPPFLAGS += -DACE_IRIX_VERS=$(ACE_IRIX_VERS)
diff --git a/include/makeinclude/platform_irix6.x_g++.GNU b/include/makeinclude/platform_irix6.x_g++.GNU
deleted file mode 100644
index 0541ebf6ad2..00000000000
--- a/include/makeinclude/platform_irix6.x_g++.GNU
+++ /dev/null
@@ -1,30 +0,0 @@
-# $Id$
-
-# Irix 6.X with GNU C++
-
-include $(ACE_ROOT)/include/makeinclude/platform_irix6.x_common.GNU
-
-ifeq (,$(debug))
- debug = 1
-endif
-ifeq (,$(optimize))
- optimize = 1
-endif
-
-CC = gcc
-CXX = g++
-CFLAGS += $(DCFLAGS)
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS += -L$(ACE_ROOT)/ace -Wl,-dont_warn_unused
-LIBS += -lpthread
-OCFLAGS += -O2
-PIC = -fpic
-# AR = ar
-ARFLAGS = rv
-RANLIB = @true
-SOFLAGS = -shared $(CPPFLAGS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) $(LDFLAGS) -o $@ $(VSHDIR)$*.o
diff --git a/include/makeinclude/platform_irix6.x_kcc.GNU b/include/makeinclude/platform_irix6.x_kcc.GNU
deleted file mode 100644
index 1662186caa9..00000000000
--- a/include/makeinclude/platform_irix6.x_kcc.GNU
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id$
-
-# Irix 6.x with KCC 3.4d
-
-include $(ACE_ROOT)/include/makeinclude/platform_irix6.x_common.GNU
-
-# WARNING_FLAGS +=
-# 111: statement is unreachable. There's a whole bunch of these
-# in the ace code.
-# 280: declaration of a member with the same name as its class
-# Get this from <netinet/in.h>.
-# 608: this pragma must immediately precede a declaration or statement
-# Get this from <ucontext.h>
-WARNING_FLAGS += --diag_suppress 111,280,608
-
-debug = 1
-optimize = 1
-
-CC = KCC
-CXX = $(CC)
-CFLAGS += -n32
-KCCOPTS = --thread_safe --one_per
-CCFLAGS += $(CFLAGS) -DNULL=0 $(WARNING_FLAGS) $(KCCOPTS)
-ifeq ($(optimize),1)
-DCFLAGS += -g
-else
-DCFLAGS += +K0 -g
-endif
-DLD = $(CC)
-LD = $(CC)
-# warning 84: "" is not used for resolving any symbol.
-LDFLAGS += -n32 -L$(ACE_ROOT)/ace -L. --backend -Wl,-woff,84
-#LIBS += -lpthread
-OCFLAGS += +K3 -O2
-PIC =
-AR = $(CC)
-ARFLAGS = $(KCCOPTS) -o
-RANLIB = @true
-SOFLAGS = $(CPPFLAGS) $(KCCOPTS) -L$(ACE_ROOT)/ace $(ACELIB)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_irix6.x_sgic++.GNU b/include/makeinclude/platform_irix6.x_sgic++.GNU
deleted file mode 100644
index 8e96342a476..00000000000
--- a/include/makeinclude/platform_irix6.x_sgic++.GNU
+++ /dev/null
@@ -1,80 +0,0 @@
-# $Id$
-
-# Irix 6.[234] with SGI C++
-# In order to get the -n32 flag enabled please set the SGI_ABI
-# environment variable to -n32. This causes a new compiler to be
-# invoked.
-
-ifeq (,$(debug))
- debug = 1
-endif
-ifeq (,$(optimize))
- optimize = 1
-endif
-ifeq (,$(threads))
- threads = 1
-endif
-
-include $(ACE_ROOT)/include/makeinclude/platform_irix6.x_common.GNU
-
-# Instead of setting the ABI here we rely on the the macro SGI_ABI.
-CC = cc
-CXX = CC
-DLD = $(CXX)
-LD = $(CXX)
-
-# Basic flags
-
-# In Irix 6.2 w/o the thread patches this macro should have no effect.
-ifeq ($(threads),1)
- CPPFLAGS += -D_SGI_MP_SOURCE
-else
- CPPFLAGS += -DACE_MT_SAFE=0
-endif
-
-OCCFLAGS += -O -OPT:Olimit=0
-DCCFLAGS += -g
-
-# Enable exceptions even in the o32 bit ABI.
-CCFLAGS += -exceptions -DACE_HAS_EXCEPTIONS
-
-# Use the standard library and standard template instantiation mechanisms
-CCFLAGS += -LANG:std
-
-# Instantiate no templates automatically, do not run prelinker. There
-# are other choices available, but those have not been used in a while.
-CCFLAGS += -ptnone -no_prelink
-# Instantiate everything; without this, apps/Gateway/Gateway/gatewayd might
-# not build due to missing template instantiations. NOTE: it seems
-# this setting no longer works for ACE.
-#CCFLAGS += -ptall
-# Instantiate used templates, plus prelinking instantiation
-#CCFLAGS += -ptused -prelink
-# Instantiate used templates, but do not run prelinker
-#CCFLAGS += -ptused
-# Suppress warnings about "pack" pragmas not being defined
-CCFLAGS += -diag_suppress 3284
-
-LDFLAGS += -Wl,-woff,15
-LDFLAGS += -Wl,-woff,84
-LDFLAGS += -Wl,-woff,85
-LDFLAGS += -Wl,-woff,133
-
-# You need to remove this if you are using 6.2 without the Pthread
-# patches or if you want to compile without threads support.
-ifndef DONT_LINK_PTHREADS
-ifeq ($(threads),1)
- LIBS += -lpthread
-endif
-endif
-
-PIC = -KPIC
-AR = ar
-ARFLAGS = r
-RANLIB = echo
-SOFLAGS = -shared $(CCFLAGS) $(CPPFLAGS) -all -multigot
-SOBUILD = $(RM) $@; $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $< && \
- /bin/ln $(VSHDIR)$*.o $@
-
-# The math library
-MATHLIB=-lm
diff --git a/include/makeinclude/platform_linux.GNU b/include/makeinclude/platform_linux.GNU
deleted file mode 100644
index 4ffb25ecab4..00000000000
--- a/include/makeinclude/platform_linux.GNU
+++ /dev/null
@@ -1,117 +0,0 @@
-# $Id$
-
-# According to Bryon G. Rigg <bgrigg@opus.bcbnet.com>, this file
-# should allow ACE to be built on Linux.
-
-# debug = 1
-# optimize = 1
-
-ifndef exceptions
- exceptions = 1
-endif
-ifeq (,$(debug))
- debug = 1
-endif
-ifeq (,$(optimize))
- optimize = 1
-endif
-ifeq (,$(threads))
- threads = 1
-endif
-ifeq ($(threads),0)
- CPPFLAGS += -DACE_MT_SAFE=0
-endif # threads
-
-PLATFORM_XT_CPPFLAGS=
-PLATFORM_XT_LIBS=-lXt
-LATFORM_XT_LDFLAGS=
-
-PLATFORM_FL_CPPFLAGS=
-PLATFORM_FL_LIBS=-lfltk
-PLATFORM_FL_LDFLAGS=
-
-PLATFORM_X11_CPPFLAGS=-I/usr/X11R6/include
-PLATFORM_X11_LIBS=-lX11
-PLATFORM_X11_LDFLAGS=-L/usr/X11R6/lib
-
-PLATFORM_GL_CPPFLAGS=-I/usr/X11R6/include
-PLATFORM_GL_LIBS =-lGL
-PLATFORM_GL_LDFLAGS =-L/usr/X11R6/lib
-
-PLATFORM_GTK_CPPFLAGS=$(shell gtk-config --cflags)
-PLATFORM_GTK_LIBS =$(shell gtk-config --libs)
-PLATFORM_GTK_LDFLAGS=
-
-PLATFORM_WX_CPPFLAGS= $(shell wx-config --cflags) $(PLATFORM_GTK_CPPFLAGS)
-PLATFORM_WX_LIBS = $(shell wx-config --libs) $(PLATFORM_GTK_LIBS)
-PLATFORM_WX_LDFLAGS =
-
-PLATFORM_AIO_SUPPORT := \
- $(shell test -e /usr/lib/librt.so && echo -DACE_HAS_AIO_CALLS)
-
-ifeq ($(insure),1)
-CC = insure
-CXX = insure
-else
-CC = gcc
-CXX = g++
-endif
-
-CFLAGS += -W -Wall -Wpointer-arith -pipe
-ifeq ($(threads),1)
- CPPFLAGS += -D_POSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS -D_REENTRANT \
- $(PLATFORM_AIO_SUPPORT)
-endif # threads
-
-ifeq ($(IMPLICIT_TEMPLATES_FLAG),)
- IMPLICIT_TEMPLATES_FLAG=-fno-implicit-templates
-endif
-
-CCFLAGS += $(CFLAGS) $(IMPLICIT_TEMPLATES_FLAG)
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LIBS += -ldl
-
-ifeq ($(threads),1)
- LIBS += -lpthread
- ifeq (-DACE_HAS_AIO_CALLS,$(PLATFORM_AIO_SUPPORT))
- LIBS += -lrt
- endif
-endif
-
-PLATFORM_QT_CPPFLAGS=-I$(QTDIR)/include
-PLATFORM_QT_LIBS=-lqt
-PLATFORM_QT_LDFLAGS=-L$(QTDIR)/lib
-
-OCFLAGS += -O3
-PIC = -fPIC
-AR = ar
-ARFLAGS = rsuv
-RANLIB = @true
-SOFLAGS = $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<; \
- $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
-PRELIB = @true
-
-# Added line below to support "Executable Shared Object" files (as
-# needed by the service configurator).
-# Marius Kjeldahl <mariusk@sn.no, marius@funcom.com>
-ifeq ($(threads),1)
- ESOBUILD = $(COMPILEESO.cc) $(PIC) -shared -o $(VSHDIR)$*.so $<
- ifndef PRELIB
- PRELIB = @true
- endif # ! PRELIB
-endif
-
-#### GNU gas has a string limit of 4096 characters. On Alphas,
-#### builds will fail due to running over that limit. There are
-#### at least two workarounds:
-#### 1) Change the limit to 8192 characters and rebuild gas. See
-#### ACE-INSTALL.html for more information.
-#### 2) Don't use -g when compiling those files.
-#### If you're building on an Alpha and you haven't hacked and
-#### rebuilt gas, you might need to uncomment the following.
-#### ifeq ($(debug),1)
-#### SUPPRESS_DASH_G = 1
-#### endif # debug
diff --git a/include/makeinclude/platform_linux_cxx.GNU b/include/makeinclude/platform_linux_cxx.GNU
deleted file mode 100644
index 52997f3348b..00000000000
--- a/include/makeinclude/platform_linux_cxx.GNU
+++ /dev/null
@@ -1,51 +0,0 @@
-# $Id$
-
-# This platform macros file is intended to work with
-# Linux, using the cxx compiler..
-
-debug = 1
-exceptions = 1
-rtti = 1
-
-CC = cxx
-CXX = $(CC)
-CFLAGS +=
-
- #### RedHat 5.2 /usr/include/malloc.h has an extraneous semicolon.
- WARNING_FLAGS += -w0 -msg_disable 381
- ifneq (,$(VERBOSE_WARNING))
- WARNING_FLAGS += -msg_display_number -msg_display_tag
- endif # VERBOSE_WARNING
-
-CCFLAGS += $(CFLAGS) $(WARNING_FLAGS)
-ifeq ($(rtti),0)
- CCFLAGS += -nortti
-endif # rtti
-DCFLAGS += -g -O0
-DLD = $(CXX)
-LD = $(CXX)
-LIBS += -ldl -lpthread
-ifeq (-DACE_HAS_AIO_CALLS,$(PLATFORM_AIO_SUPPORT))
- LIBS += -lrt
-endif
-MATHLIB = -lm
-OCFLAGS += -O4
-PIC =
-ARFLAGS = rsuv
-RANLIB = @true
-SOFLAGS = -shared $(ACELIB)
-SOBUILD = $(RM) $@; $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $< && \
- ln $(VSHDIR)$*.o $@
-
-ifeq (0,$(exceptions))
- #### Disable the default exception handling of cxx >= 6.0.
- #### This is untested. exceptions=1 is the default, so it's not used
- #### by default.
- ifndef CXX_VERSION
- CXX_VERSION := $(shell $(CXX) -V)
- endif # ! CXX_VERSION
-
- ifeq (6.,$(findstring 6.,$(CXX_VERSION)))
- CCFLAGS += -nocleanup
- endif # 6.x
-endif # ! exceptions
diff --git a/include/makeinclude/platform_linux_kcc.GNU b/include/makeinclude/platform_linux_kcc.GNU
deleted file mode 100644
index 8a46f81611b..00000000000
--- a/include/makeinclude/platform_linux_kcc.GNU
+++ /dev/null
@@ -1,73 +0,0 @@
-# $Id$
-
-# According to Ben Eng <ben@jetpen.com>, this file
-# should allow ACE to be built on Linux using KAI C++ 3.3a.
-#
-# NOTE: evaluation copies of KCC might include libraries that
-# were compiled with exception handling enabled. To enable link
-# compatibility with those libraries, you must build ACE with
-# exception handling enabled, as well. To do that, either set
-# the exceptions macro below to 1, or build with:
-# make exceptions=1
-
-ifeq (,$(debug))
- debug=0
-endif
-ifeq (,$(optimize))
- optimize=1
-endif
-ifeq (,$(threads))
- threads = 1
-endif
-
-CC = KCC
-CXX = $(CC)
-CFLAGS += -D_POSIX_THREADS -D_POSIX_THREAD_SAFE_FUNCTIONS -D_REENTRANT \
- -D_GNU_SOURCE
-
-CCFLAGS += $(CFLAGS) -DNULL=0
-DCFLAGS += +K0 -g
-OCFLAGS += +K3 -O --one_instantiation_per_object
-DLD = $(CC)
-LD = $(CC)
-# Using just -ldl results in a very annoying warning (nm: no symbols),
-# because the prelinker searches for missing templates in the libdl
-# library. Passing the option directly to the linker fixes the
-# warning.
-LIBS += -Wl,-ldl
-MATHLIB = -lm
-
-ifeq (,$(exceptions))
- exceptions=0
-endif # exceptions
-
-ifeq ($(exceptions),0)
- CCFLAGS += --no_exceptions
-endif # ! exceptions
-
-ifeq ($(threads),1)
- CFLAGS += --thread_safe
- LDFLAGS += --thread_safe
-endif # threads
-
-# KCC allows suppresion of warnings and errors.
-# Warning #280 declaration of a member with the same name as its class
-CCFLAGS += --diag_suppress 280
-
-ifdef static_libs_only
- ifneq ($(static_libs_only),0)
- static_libs=1
- endif
-endif
-ifneq ($(static_libs),0)
- CCFLAGS += --one_instantiation_per_object
-endif
-
-PIC = -fPIC
-AR = $(CC)
-ARFLAGS = $(CCFLAGS) $(CPPFLAGS) -Bstatic -o
-RANLIB = @true
-SOFLAGS = $(PIC) $(CCFLAGS) $(CPPFLAGS)
-SOBUILD = $(COMPILE.cc) $(SOFLAGS) -o $(VSHDIR)$*.o $<
-PRELIB = @true
-PRELIB_USES_OBJ_ONLY = 1
diff --git a/include/makeinclude/platform_lynxos.GNU b/include/makeinclude/platform_lynxos.GNU
deleted file mode 100644
index 20bfb86d622..00000000000
--- a/include/makeinclude/platform_lynxos.GNU
+++ /dev/null
@@ -1,115 +0,0 @@
-# $Id$
-#
-# LynxOS with g++. Defaults to LynxOS Version 3.0.0. For Version 3.1.0,
-# for example, add "VERSION=3.1.0" to your make invocation.
-
-#### NOTE: It's best to create a file that includes this one, instead
-#### of symlinking it. That way, you can easily override the default
-#### configuration. For example, to configure for a PowerPC target, I
-#### use a include/makeinclude/platform_macros.GNU that contains the
-#### following lines (without comment markers):
-####
-#### LYNXTARGET = ppc
-#### include $(ACE_ROOT)/include/makeinclude/platform_lynxos.GNU
-####
-#### Similarly, the default VERSION and HOST_OS settings (see below)
-#### can be overridden for your particular platform.
-
-
-ifeq ($(debug),)
- debug = 1
-endif
-shared_libs =
-static_libs = 1
-#### optimize is defined below because it is version-dependent.
-
-ifneq ($(shell uname -s),LynxOS)
- CROSS-COMPILE = 1
-
- PACE_SYSNAME = LynxOS
-
- #### The following may need to be customized for your host or target type.
- #### Or, you can source the appropriate (for your shell) Lynx SETUP file
- #### before running "make".
-
- ifeq (,$(VERSION))
- export VERSION=3.0.0
- endif # VERSION
-
- PACE_SYSVER = 0x$(VERSION)
-
- ifeq (,$(LYNXTARGET))
- export LYNXTARGET = x86
- endif # LYNXTARGET
-
- ifeq (,$(OBJSFORMAT))
- ifeq (x86,$(LYNXTARGET))
- OBJSFORMAT = coff
- else # ! x86
- OBJSFORMAT = xcoff
- endif # ! x86
- export OBJSFORMAT
- endif # OBJSFORMAT
-
- ifeq (,$(HOST_OS))
- export HOST_OS = sunos
- endif # HOST_OS
-
- ifeq (,$(HOST_OS_REVISION))
- #### Added for 3.1.0
- export HOST_OS_REVISION = `uname -r`
- endif # HOST_OS_REVISION
-
- ifeq (,$(HOST_OS_TYPE))
- #### Added for 3.1.0
- export HOST_OS_TYPE = solaris
- endif # HOST_OS_TYPE
-
- ifeq (,$(ENV_PREFIX))
- export ENV_PREFIX = /usr/lynx/$(VERSION)/$(LYNXTARGET)
- endif # ENV_PREFIX
-
- ifeq (,$(findstring $(ENV_PREFIX),$(PATH)))
- export PATH:=\
-$(ENV_PREFIX)/cdk/$(HOST_OS)-$(OBJSFORMAT)-$(LYNXTARGET)/bin:$(ENV_PREFIX)/cdk/$(HOST_OS)-$(OBJSFORMAT)-$(LYNXTARGET)/usr/bin:$(PATH)
- endif # PATH
-endif # ! LynxOS
-
-ifeq (2.5.0,$(VERSION))
- # NOTE: On LynxOS Version 2.5.0, optimization causes these warnings:
- # warning: internal compiler error: debugging info corrupted
- optimize = 0
- ACE_HAS_GNUG_PRE_2_8 = 1
-else
- optimize = 1
-
- #### Even though the g++ version is 2.7-97r1, it supports nested
- #### classes, so it can build the TAO tests.
- ACE_HAS_GNUG_PRE_2_8 = 0
-endif # VERSION
-
-CC = gcc
-CXX = g++
-CFLAGS += -mthreads -pipe -ansi -Wpointer-arith
-#### -Winline complains a lot with -O2.
-#### CFLAGS += -Winline
-#### LynxOS 3.0.0's g++ has a lot of warnings about non-virtual base class
-#### destructors with -Wall.
-ifeq (2.5.0,$(VERSION))
- CFLAGS += -Wall
-endif # VERSION
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LIBS += -lnetinet -lnsl
-OCFLAGS += -O2
-AR = ar
-ARFLAGS = ruv
-RANLIB = @true
-PRELIB = @true
-
-# To save much disk space, strip all executables. Comment the
-# following line out if you want to debug. Or, add "POSTLINK="
-# to your make invocation.
-POSTLINK = ; strip $@
diff --git a/include/makeinclude/platform_m88k.GNU b/include/makeinclude/platform_m88k.GNU
deleted file mode 100644
index 382c6e2adc2..00000000000
--- a/include/makeinclude/platform_m88k.GNU
+++ /dev/null
@@ -1,30 +0,0 @@
-# $Id$
-
-# SunOS 5.x (Solaris 2.x) with SunC++ 4.x
-# *not* using Orbix
-
-debug = 1
-optimize = 1
-
-CC = gcc
-CXX = g++
-CFLAGS += -w
-CCFLAGS += $(CFLAGS) -D__m88k__ -fno-implicit-templates -fno-strict-prototypes
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-INCLDIRS += -I$(ACE_ROOT) -I.
-INCLDIRS += -I/devel/rmm/v1.0/local/src/threads/include
-LDFLAGS += -L $(ACE_ROOT)/ace -L ./
-LDFLAGS += -L/devel/rmm/v1.0/local/src/threads/lib
-LIBS += -lsocket -ldl -lnsl -lgen -lstdc++ -lg++
-LIBS += -lgthreads -lgmalloc
-OCFLAGS += -O2
-PIC = -fpic
-AR = ar
-ARFLAGS = ruv
-RANLIB = /bin/true
-SOFLAGS = -G $(CPPFLAGS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) -o $@ -h $@ $(LDFLAGS) $(VSHDIR)$*.o
-PRELIB = @true
diff --git a/include/makeinclude/platform_macosx.GNU b/include/makeinclude/platform_macosx.GNU
deleted file mode 100644
index c9b9037a175..00000000000
--- a/include/makeinclude/platform_macosx.GNU
+++ /dev/null
@@ -1,21 +0,0 @@
-# platform_macosx.GNU,v 4.6 2001/08/14 18:57:28 bala Exp
-# platform_macosx.GNU
-# preliminary support for Mac OS X DP4, some stuff still doesn't work.
-
-CC = cc
-CXX = c++
-CFLAGS += -Wall -Wpointer-arith -pipe
-CCFLAGS += $(CFLAGS) -fimplicit-templates -fcheck-new
-DCFLAGS += -g
-DLD = libtool
-LD = $(CXX)
-LDFLAGS += -flat_namespace
-LDONLYFLAGS += -flat-namespace
-LIBS += -lcc_dynamic -lstdc++ -lpcap
-OCFLAGS += -O3
-RANLIB = ranlib
-SOEXT = dylib
-SOFLAGS = -dynamic
-SOBUILD = -o $(VSHDIR)$*.dylib $<
-
-
diff --git a/include/makeinclude/platform_mingw32.GNU b/include/makeinclude/platform_mingw32.GNU
deleted file mode 100644
index 800877565f8..00000000000
--- a/include/makeinclude/platform_mingw32.GNU
+++ /dev/null
@@ -1,55 +0,0 @@
-# $Id$
-
-# This file should allow to build ACE for mingw32 with mingw tools.
-# Edit to change TCPU and M32_BASE below.
-#
-# Don't forget to define the ACE_ROOT environment variable!
-
-# mingw32 packages as distributed from sourceforge:
-# http://sourceforge.net/project/showfiles.php?group_id=2435&release_id=15084
-# See also http://www.mingw.org.
-#
-# You will also need a GNU Make for win32 (so you can actualy
-# USE this file :-). Tested with make/sh from cygwin.
-#
-# Tested with:
-#
-# mingw-runtime-0.5-20010221
-# w32api-0.5-20010301
-# gcc-2.95.2-20001116
-# binutils-2.10.91-20010114
-# ld-2.10.91-20010126
-# libbfd-2.10.91-20010121
-#
-# Caveat:
-#
-# If ld complains about not finding crt2.o, dllcrt2.o or gcrt2.o
-# when linking executables, you will need to modify the specs file for gcc:
-# lib/gcc-lib/mingw32/2.95.2/specs
-# look for the line after the one begining ``*startfile:'', and add
-# full path as prefix for crt2, dllcrt2 and gcrt2
-# (i.e., change
-# ... %{!shared:%{!mdll:crt2%O%s}} ...
-# with
-# ... %{!shared:%{!mdll:c:/mingw32/lib/gcc-lib/mingw32/2.95.2/crt2%O%s}} ...
-# or something similar depending on the location of your instalation).
-
-# Chose your target CPU (uncomment ONE of these).
-TCPU = pentiumpro
-#TCPU = pentium
-#TCPU = i486
-#TCPU = i386
-
-# Define here mingw32 instalation location.
-# These asumes no fancy hierachy, just all packages above unpacked on
-# the same base directory.
-# Optionally, you can define it as an environment variable, or set it
-# on your platform_macros.GNU before including this file.
-
-ifndef MINGW_BASE
- MINGW_BASE = c:/live/local/mingw32
-endif
-
-mingw32 = 1
-
-include $(ACE_ROOT)/include/makeinclude/platform_gnuwin32_common.GNU
diff --git a/include/makeinclude/platform_mvs.GNU b/include/makeinclude/platform_mvs.GNU
deleted file mode 100644
index 69215470627..00000000000
--- a/include/makeinclude/platform_mvs.GNU
+++ /dev/null
@@ -1,34 +0,0 @@
-# $Id$
-
-# For MVS OpenEdition platform
-
-debug = 0
-
-CXX = cxx
-DCFLAGS += -g
-DCCFLAGS += -g
-CPPFLAGS += -+
-DEFFLAGS = -D_ALL_SOURCE -DNDEBUG
-CC = $(CXX)
-LD = $(CXX)
-DLD = $(CXX)
-AR = ar
-ARFLAGS = ruv
-RANLIB = echo
-#LDFLAGS = -W l,p,map
-
-# MVCMD needed because cxx does not use the -o option to place objects
-MVCMD = @test ! -s $(@F) || mv $(@F) $(@D)/$(@F)
-
-# Used to build static executables
-ACELIB_STATIC = -lACE
-
-# Used to build shared executables (much smaller in size)
-ACELIB_DLL = $(ACE_ROOT)/ace/libACE.x
-
-# set accordingly to build either static or shared executables
-ACELIB = $(ACELIB_DLL)
-
-SOFLAGS = -W l,dll
-PIC = -W c,exportall
-static_libs = 1
diff --git a/include/makeinclude/platform_netbsd.GNU b/include/makeinclude/platform_netbsd.GNU
deleted file mode 100644
index d9e08b01139..00000000000
--- a/include/makeinclude/platform_netbsd.GNU
+++ /dev/null
@@ -1,28 +0,0 @@
-# $Id$
-
-# platform_netbsd.GNU
-
-# ***** Notice: This file is still under testing. *****
-# To be used on netbsd platform without pthread support.
-
-debug = 1
-optimize = 1
-versioned_so = 1
-
-CC = gcc
-CXX = g++
-CFLAGS += -w -fno-strict-prototypes
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-DCFLAGS += -g
-DLD = ld
-LD = $(CXX)
-LIBS += -lstdc++ #-lcompat -lresolv
-##OCFLAGS += -O2
-PIC = -fpic -DPIC
-AR = ar
-ARFLAGS = ruv
-RANLIB = ranlib
-
-SOFLAGS = -Bshareable -x /usr/lib/c++rt0.o
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @echo
diff --git a/include/makeinclude/platform_osf1_3.2_cxx.GNU b/include/makeinclude/platform_osf1_3.2_cxx.GNU
deleted file mode 100644
index ef52f05bf58..00000000000
--- a/include/makeinclude/platform_osf1_3.2_cxx.GNU
+++ /dev/null
@@ -1,47 +0,0 @@
-# $Id$
-
-# This platform macros file is intended to work with Digital UNIX 3.2
-# (OSF/1 3.2g) with CXX 5.7 or later.
-
-ifeq (,$(debug))
- debug = 1
-endif
-
-# exceptions=1 is the default on this platform. exceptions=0 has not
-# been tested. See the bottom of this file for more. Turning off exceptions
-# on this platform can cause bad things to happen.
-
-ifeq (,$(exceptions))
- exceptions = 1
-endif
-
-# We want to test with rtti=1
-
-ifeq (,$(rtti))
- rtti = 1
-endif
-
-ifeq (,$(threads))
- threads = 1
-endif
-
-CC = cxx
-CXX = $(CC)
-CFLAGS += -threads
-#### CCFLAGS += -x cxx
-CCFLAGS += $(CFLAGS) -w0
-DCFLAGS += -g -O0
-#### DLD = ld -shared -expect_unresolved '*'
-DLD = ld
-LD = $(CXX)
-#### LIBS += -lpthreads -lmach -lsys5 -lxti -ltli -lcxx -lexc -lc -lrt
-LIBS += -qltli_r -ltli -qlrt_r -lrt -qlcxxstd_r -lcxxstd -qlcxx_r \
- -lcxx -qlots_r -lots -lpthreads -lmach -lexc -lc_r -lc
-#### PIC = -pic
-ARFLAGS = cruv
-RANLIB = /usr/bin/true
-#### SOFLAGS = -shared
-SOFLAGS = -L/usr/lib/cmplrs/cxx -rpath /usr/lib/cmplrs/cxx \
- -L$(ACE_ROOT)/ace -L./ -g2 -O0 -shared
-SOBUILD = $(RM) $@; $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $< && \
- ln $(VSHDIR)$*.o $@
diff --git a/include/makeinclude/platform_osf1_4.x_cxx.GNU b/include/makeinclude/platform_osf1_4.x_cxx.GNU
deleted file mode 100644
index ac568306178..00000000000
--- a/include/makeinclude/platform_osf1_4.x_cxx.GNU
+++ /dev/null
@@ -1,104 +0,0 @@
-# $Id$
-
-# This platform macros file is intended to work with
-# Digital UNIX 4.x (OSF/1 4.x), using the cxx compiler..
-
-# Note that TAO has not been tested with debug=0 on this platform. So
-# you should be careful when turning off debug.
-
-ifeq (,$(debug))
- debug = 1
-endif
-
-# exceptions=1 is the default on this platform. exceptions=0 has not
-# been tested. See the bottom of this file for more. Turning off exceptions
-# on this platform can cause bad things to happen.
-
-ifeq (,$(exceptions))
- exceptions = 1
-endif
-
-# We want to test with rtti=1
-
-ifeq (,$(rtti))
- rtti = 1
-endif
-
-ifeq (,$(threads))
- threads = 1
-endif
-
-CC = cxx
-CXX = $(CC)
-
-# Note: Just get the version if it hasnt been defined so far.
-ifndef CXX_VERSION
- CXX_VERSION := $(shell $(CXX) -V)
-endif # ! CXX_VERSION
-
-#### Note: -thread uses POSIX threads. If you want to use DCE threads
-#### instead, change "-pthread" to "-threads".
-ifeq ($(threads),1)
- CFLAGS += -pthread
-else
- CFLAGS += -DACE_MT_SAFE=0
-endif
-
-
-
-#### These flags can only be used with cxx Version 6.0 and later.
-#### They are enabled by default; they can be disabled by settting
-#### CXX_VER to CXX_5 either on the make command line, or by
-#### or by setting the CXX_VER environment variable to CXX_5.
-ifneq ($(CXX_VER),CXX_5)
- WARNING_FLAGS += -w0
- ifneq (,$(VERBOSE_WARNING))
- WARNING_FLAGS += -msg_display_number -msg_display_tag
- endif # VERBOSE_WARNING
-
- ifneq (,$(optimize))
- #### See ace/config-cxx-common.h for the meaning of this warning.
- #### It's not necessary on DU 5.0.
- WARNING_FLAGS += -msg_disable 1016
- endif # optimize
- ifeq (4.,$(findstring 4.,$(shell uname -r)))
- # 9: nested comment not allowed. But there's one in /usr/include/pdsc.h!
- WARNING_FLAGS += -msg_disable 9
- endif
-endif # 6.0 or later
-
-CCFLAGS += $(CFLAGS) $(WARNING_FLAGS)
-DCFLAGS += -g -O0
-DLD = $(CXX)
-LD = $(CXX)
-LIBS += $(CFLAGS) -ltli -lrt
-MATHLIB = -lm
-OCFLAGS += -O4
-PIC =
-ARFLAGS = cruvZ
-# When libraries are archived, a hash index is automatically created
-# so there is no need for ranlib
-RANLIB = @true
-SOFLAGS = -shared -use_ld_input $(ACELIB)
-#### The -hidden [...] -non_hidden business avoids multiply defined
-#### symbols between the shared library and libcxxstd.a. It's the
-#### workaround recommended in PTR 43-4-204. It must appear at (or
-#### very near) the end of the link line.
-LIBS := $(LIBS) \
- -hidden $(wildcard /usr/lib/cmplrs/cxx/libcxxstd.a) -non_hidden
-SOBUILD = $(RM) $@; $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $< && \
- ln $(VSHDIR)$*.o $@
-ifeq (0,$(rtti))
- CCFLAGS += -nortti
-endif # rtti
-
-
-ifeq (0,$(exceptions))
- #### Disable the default exception handling of cxx >= 6.0.
- #### This is untested. exceptions=1 is the default, so it's not used
- #### by default.
- ifeq (6.,$(findstring 6.,$(CXX_VERSION)))
- CCFLAGS += -nocleanup
- endif # 6.x
-endif # ! exceptions
-
diff --git a/include/makeinclude/platform_osf1_4.x_g++.GNU b/include/makeinclude/platform_osf1_4.x_g++.GNU
deleted file mode 100644
index 0f3f03b02ae..00000000000
--- a/include/makeinclude/platform_osf1_4.x_g++.GNU
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id$
-
-# This platform macros file is intended to work with Digital UNIX 4.x
-# (OSF/1 4.x) and GCC in version 2.7.2.1 (or newer).
-
-ifeq (,$(debug))
- debug = 1
-endif
-
-ifeq (,$(exceptions))
- exceptions = 1
-endif
-ifeq (,$(rtti))
- rtti = 1
-endif
-
-ifeq (,$(threads))
- threads = 1
-endif
-
-ifeq (,$(optimize))
- optimize = 1
-endif
-
-CC = gcc
-CXX = g++
-CFLAGS += -D_REENTRANT
-CCFLAGS += $(CFLAGS) -fno-implicit-templates -fno-strict-prototypes
-DCFLAGS += -g
-LD = $(CXX)
-DLD = $(CXX)
-LIBS += -lpthread -lmach -lexc -ltli -lrt
-OCFLAGS += -O2
-PIC = -fpic
-ARFLAGS = cruvZ
-# When libraries are archived, a hash index is automatically created so there
-# is no need for ranlib
-RANLIB = /usr/bin/true
-SOFLAGS = -shared $(CPPFLAGS) $(ACELIB)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_osf1_4.x_kcc.GNU b/include/makeinclude/platform_osf1_4.x_kcc.GNU
deleted file mode 100644
index 474ac00e134..00000000000
--- a/include/makeinclude/platform_osf1_4.x_kcc.GNU
+++ /dev/null
@@ -1,65 +0,0 @@
-# $Id$
-
-# This platform macros file is intended to work with Digital UNIX 4.x
-# (OSF/1 4.x) and KAI C++ 3.3f.
-
-ifeq (,$(debug))
- debug = 1
-endif
-
-ifeq (,$(exceptions))
- exceptions = 1
-endif
-
-ifeq (,$(rtti))
- rtti = 1
-endif
-
-ifeq (,$(threads))
- threads = 1
-endif
-
-ifeq (,$(optimize))
- optimize = 1
-endif
-
-# WARNING_FLAGS +=
-# 9: nested comment not allowed. But there's one in /usr/include/pdsc.h!
-# and /usr/include/net/if_types.h
-# 111: statement is unreachable. There's a whole bunch of these
-# in the ace code.
-WARNING_FLAGS += --display_error_number --diag_suppress 9,111
-
-CC = KCC
-CXX = $(CC)
-CFLAGS += -D_REENTRANT
-KCCOPTS = --thread_safe --one_per
-CCFLAGS += $(CFLAGS) -DNULL=0 $(WARNING_FLAGS) $(KCCOPTS)
-ifeq ($(optimize),1)
-DCFLAGS += -g3
-else
-DCFLAGS += +K0 -g
-endif
-LD = $(CC)
-DLD = $(CC)
-LIBS += -lpthread -lmach -lexc -ltli -lrt -lm
-OCFLAGS += +K3 -O
-PIC =
-AR = $(CC)
-ARFLAGS = $(KCCOPTS) -o
-# When libraries are archived, a hash index is automatically created so there
-# is no need for ranlib
-RANLIB = /usr/bin/true
-SOFLAGS = $(CPPFLAGS) $(KCCOPTS) -L$(ACE_ROOT)/ace $(ACELIB) -lc
-
-# With kcc 4, if it does template splitting and ends up with more than
-# a certain number of templates, it can screw up the link command so that
-# the entry point for the program gets set to one of the template
-# instantiations! This forces the correct entry point.
-LDFLAGS += --backend -Wl,-e,__start
-
-# Work around kcc overflowing the arg list...
-SHLIBBUILD = $(AR) $(ARFLAGS) $@-tmp.a $(VSHOBJS1) $(LDFLAGS) $(LIBS); $(filter-out -c,$(COMPILE.cc) $(PIC)) -o $@ -all $@-tmp.a -none $(LDFLAGS) $(LIBS) -lc --COMPO_ln_dy -expect_unresolved --COMPO_ln_dy '*'; rm $@-tmp.a
-
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_osf1_4.x_rcc.GNU b/include/makeinclude/platform_osf1_4.x_rcc.GNU
deleted file mode 100644
index 4e54558e56f..00000000000
--- a/include/makeinclude/platform_osf1_4.x_rcc.GNU
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id$
-
-# This platform macros file is intended to work with Rational C++ (2.4.1) on
-# Digital UNIX 4.0 (OSF/1 4.0).
-
-ifeq (,$(debug))
- debug = 1
-endif
-
-ifeq (,$(exceptions))
- exceptions = 1
-endif
-ifeq (,$(rtti))
- rtti = 1
-endif
-
-ifeq (,$(threads))
- threads = 1
-endif
-
-ifeq (,$(optimize))
- optimize = 1
-endif
-
-CC = rcc
-CXX = RCC
-CFLAGS += -D_REENTRANT
-CCFLAGS += $(CFLAGS) -nosienna
-DCFLAGS += -g -O0
-DLD = $(CXX)
-LD = $(CXX)
-LIBS += -lpthread -lc_r -ltli -lrt
-OCFLAGS += -O4
-PIC = -pic
-ARFLAGS = cruvZ
-# When libraries are archived, a hash index is automatically created
-# so there is no need for ranlib
-RANLIB = /usr/bin/true
-SOFLAGS = -shared # -use_ld_input $(ACELIB)
-SOBUILD = $(RM) $@; $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $< && \
- ln $(VSHDIR)$*.o $@
diff --git a/include/makeinclude/platform_psos_diab.GNU b/include/makeinclude/platform_psos_diab.GNU
deleted file mode 100644
index d250c30ad6d..00000000000
--- a/include/makeinclude/platform_psos_diab.GNU
+++ /dev/null
@@ -1,189 +0,0 @@
-# $Id$
-# pSOS with Diab Data C++ 4.1a Compiler
-
-# ================================================================
-# pSOS sTUFF
-# ================================================================
-
-PSS_LIBC_DIR = $(PSS_ROOT)/sys/libc
-PSS_SYS_DIR = $(PSS_ROOT)/sys/os
-
-PSOS_LIBS = -L $(PSS_LIBC_DIR) -lprepc -lcxxsp \
- -L $(PSS_SYS_DIR) -lsysxx -lsys
-
-PSS_BSP_LIB = -L $(PSS_BSP) -lbsp
-
-# DIAB_LIBS = -L $(DIABLIB)/MC60FS/psos -lpsos
-
-# DIAB_LIBS = -L $(DIABLIB)/MC60FS -li -lchar -lg -limpl -lram -ld \
-# -L $(DIABLIB)/MC60FS -lcfp -lm -limpfp -lcomplex -lios \
-# -L $(DIABLIB)/MC60FS/psos -lpsos \
-# -L $(PSS_ROOT)/sys/libc -lprepc
-
-# DIAB_LIBS = -L $(DIABLIB)/MC60FS -limpfp \
-# -L $(DIABLIB)/MC60F -limpl \
-# -L $(DIABLIB)/MC60F/psos -lpsos
-
-
-#DIAB_LIBS = -L $(DIABLIB)/MC60F/psos -lc \
-# -L $(PSS_ROOT)/sys/libc -lprepc
-# -L $(DIABLIB)/MC60F -lchar -lg -limpl -lram -ld \
-# -L $(DIABLIB)/MC60FS -lcfp -lm -limpfp -lcomplex -lios -li
-
-PSOSINCL = -I$(PSS_ROOT)/include -I$(PSS_BSP)
-# PSOSINCL = -Y I,$(PSS_ROOT)/include -I$(PSS_BSP)
-
-# hacks to resolve incompatibilities between the compiler and OS headers
-DIAB_PSOS_HACKS = -D__Itypes -D_TIME_T_DEFINED -D_WCHAR_T_DEFINED -D__wchar_t
-# DIAB_PSOS_HACKS = -D__Itypes -D_WCHAR_T_DEFINED -D__wchar_t
-
-# ================================================================
-# Compilation Settings and Flags
-# ================================================================
-
-# turn on debugging
-debug = 1
-
-# turn on optimization
-optimize = 1
-
-# turn off shared libraries
-shared_libs =
-
-# turn on static libraries
-static_libs = 1
-
-
-# C Compiler
-CC = dcc -tMC68060FS:psos
-# -WDCDCONFIG=psos.conf
-
-# C Debug Compiler Flags
-# -D<name>[=<value>] defines symbol to preprocessor
-# -U<name> undefine preprocessor symbol
-# -I<path> adds a directory path to the include file search path
-# -V[V] display the current version number of D-C++ (this could be
-# useful for crafting a single pSOS config.h file)
-# -W is used to pass arguments to specific tools (compiler, linker, etc),
-# to change which tool is used, etc
-# -o renames the output (we need to do this to avoid colliding with .i files)
-# -X<name | number>[=<value>]gives detailed control of the compiler
-# -Xlint turns on a bunch of useful warning messages
-# -Xno-old-style disables the use of old style C function declarations
-# and narrows the compiler error messages
-# -Xmnem-emb accepts only Motorola Embedded Mnemonics (assembler directive)
-# -Xkeywords=0x04 defines the inline keyword to be valid
-# -Xkill-opt=0x400 turns off the split optimization. Per Jim Terman
-# at DDI, this fixes a known problem
-# -Y changes the default search path for include files and libraries
-# -t<CPU><object format><floating point support>[:<environment>] is used to
-# describe the target board. The object format is F for ELF, E for COFF,
-# or N for GNU/VxWorks. The floating point support is H for hardware
-# support, S for software support, or N for no floating point support
-CFLAGS += -D__DIAB -D__DIAB_42a -Xkill-opt=0x400 -Xno-old-style -Xlint $(PSOSINCL)
-
-# C Compiler Debug Flags (passed iff debug == 1)
-# -# prints subprograms with arguments as they are executed
-# -## prints subprograms with arguments without executing them
-# -### prints subprograms with arguments (in quotes) without executing them
-# -g embeds debug info but turns off a bunch of optimizations, including inlining
-# -g1 embeds debug info but not line numbers, and preserves inlining
-# -v runs the compiler in verbose mode
-# -w suppresses warnings
-# -H prints path names of all include files to stderr
-# -E stops compilation after preprocessing and sends
-# results to stdout
-# -P same as -E except it sends it to the source file specified by the -o flag
-# (IMPORTANT: for ACE, some *other* file name must be specified, as the
-# default behavior for -P without the -o option will overwrite *our*
-# .i (inline) file)
-# -X<name | number>[=<value>]gives detailed control of the compiler
-# -Xlint turns on a bunch of useful warning messages
-# -Xstop-on-warning treats warnings like errors and stops compilation
-# -Xinit-locals[=<mask>] initializes memory pattern for local variables
-# -Xno-optimized-debug turns off optimizations for debugging
-DCFLAGS += -g -w -Ws
-#DCFLAGS += -g -w -Ws -P -o precomp.out
-#DCFLAGS += -g -w -Ws -H
-
-# C Compiler Optimization Flags (passed iff optimize == 1)
-# -O
-# -XO
-# OCFLAGS += -XO
-
-# C++ Compiler
-CXX = dplus -tMC68060FS:psos
-### This (without the above -t option cannot resolve DOBJECT, etc.)
-# CXX = dplus
-
-# C++ Compiler Flags
-# -o renames the output (we need to do this to avoid colliding with .i files)
-# -W is used to pass arguments to specific tools (compiler, linker, etc),
-# to change which tool is used, etc
-# -X<name | number>[=<value>]gives detailed control of the compiler
-# -Xexception enables exception handling
-# -Xno-implicit-templates produces smaller code, but requires explicit
-# template instantiation (see pp 91 of D-C++ user guide)
-# -Xcomdat (per Jim Terman) is the "preferred" way of instantiating templates as of 4.1a (but, there are problems there with Synch_T.cpp and Synch_T.h)
-
-#CCFLAGS += $(CFLAGS) $(DIAB_PSOS_HACKS) -Xno-implicit-templates
-#CCFLAGS += $(CFLAGS) $(DIAB_PSOS_HACKS) -Xno-implicit-templates=3
-#CCFLAGS += $(CFLAGS) $(DIAB_PSOS_HACKS) -Xno-implicit-templates=2
-#CCFLAGS += $(CFLAGS) $(DIAB_PSOS_HACKS) -Xcomdat
-CCFLAGS += $(CFLAGS) $(DIAB_PSOS_HACKS)
-
-# C++ Compiler Debug Flags (passed iff debug == 1)
-DCCFLAGS += $(DCFLAGS)
-
-# Dynamic Linker
-# DLD = dld
-DLD = dplus -tMC68060FS:psos -Wm$(PSS_BSP)/ram.lnk
-
-# Static Linker
-# LD = dld
-LD = dplus -tMC68060FS:psos -Wm$(PSS_BSP)/ram.lnk
-
-# Static Linker Flags
-# -L<path> adds a directory path to the linker search path
-# -l<name> adds a library name to the list the linker uses
-# -f<val> fills in holes in an output section with the given 16 bit pattern
-# -m generates a link map of the input and output sections on stdout
-# -m2 generates a more detailed link map of the input and output sections on stdout
-# -r performs incremental link
-# -r2 add relocation tables, treat unresolved symbols as errors
-# -r3 add relocation tables, treat unresolved symbols as warnings
-# -Xcheck-overlap checks for overlap of output sections and sections that wrap around
-# 32 bit address boundary
-# -Xdont-die forces the linker to continue after errors
-# -Xexpl-instantiations causes linker to write source lines of explicit template
-# instantiations to stdout
-#LDFLAGS += -Xdont-die -Xexpl-instantiations
-#LDFLAGS += -Xdont-die
-#LDFLAGS += -Xdont-die
-#LDFLAGS += -Xdont-die -Xexpl-instantiations
-
-# Additional libraries used by the linker
-LIBS += $(PSOS_LIBS) $(PSS_BSP_LIB)
-#LIBS += $(PSOS_LIBS) $(PSS_BSP_LIB) $(DIAB_LIBS)
-
-# position independent code flag (do we need this ?)
-# PIC = -fpic
-
-# Archive Utility
-AR = dar
-
-# Archive Utility Flags
-# -d[lv] delete the named files from the archive
-# -m[abiv] move the named files
-# -r[abciluv] replace the named files in the archive
-ARFLAGS = -r
-
-RANLIB = echo
-
-# Shared Object Library Stuff (do we need this ?)
-# SOFLAGS = -G $(CPPFLAGS)
-# SOBUILD - compile into .so directly
-# SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-
-# Unidentified Stuff
-# PRELIB = @true
diff --git a/include/makeinclude/platform_psos_diab_ppc.GNU b/include/makeinclude/platform_psos_diab_ppc.GNU
deleted file mode 100644
index e2a4cbc49fa..00000000000
--- a/include/makeinclude/platform_psos_diab_ppc.GNU
+++ /dev/null
@@ -1,202 +0,0 @@
-# $Id$
-# pSOS with Diab Data C++ 4.1a Compiler
-
-# ================================================================
-# pSOS sTUFF
-# ================================================================
-
-PSS_LIBC_DIR = $(PSS_ROOT)/sys/libc
-PSS_SYS_DIR = $(PSS_ROOT)/sys/os
-
-# PSOS_LIBS = -L $(PSS_LIBC_DIR) -lprepcH -lcxxsp \
-# -L $(PSS_SYS_DIR) -lsysxx -lsys
-
-PSOS_LIBS = -L $(PSS_LIBC_DIR) -lprepcH -lcxxsp \
- -L $(PSS_SYS_DIR) -lsys
-
-PSS_BSP_LIB = -L $(PSS_BSP) -lbsp
-
-# DIAB_LIBS = -L $(DIABLIB)/MC60FS/psos -lpsos
-
-# DIAB_LIBS = -L $(DIABLIB)/MC60FS -li -lchar -lg -limpl -lram -ld \
-# -L $(DIABLIB)/MC60FS -lcfp -lm -limpfp -lcomplex -lios \
-# -L $(DIABLIB)/MC60FS/psos -lpsos \
-# -L $(PSS_ROOT)/sys/libc -lprepc
-
-# DIAB_LIBS = -L $(DIABLIB)/MC60FS -limpfp \
-# -L $(DIABLIB)/MC60F -limpl \
-# -L $(DIABLIB)/MC60F/psos -lpsos
-
-
-#DIAB_LIBS = -L $(DIABLIB)/MC60F/psos -lc \
-# -L $(PSS_ROOT)/sys/libc -lprepc
-# -L $(DIABLIB)/MC60F -lchar -lg -limpl -lram -ld \
-# -L $(DIABLIB)/MC60FS -lcfp -lm -limpfp -lcomplex -lios -li
-
-PSOSINCL = -I$(PSS_ROOT)/include -I$(PSS_BSP)
-# PSOSINCL = -Y I,$(PSS_ROOT)/include -I$(PSS_BSP)
-
-# hacks to resolve incompatibilities between the compiler and OS headers
-DIAB_PSOS_HACKS = -D__Itypes -D_WCHAR_T_DEFINED -D__wchar_t
-
-# ================================================================
-# Compilation Settings and Flags
-# ================================================================
-
-# turn on debugging
-debug = 1
-
-# turn on optimization
-optimize = 1
-
-# turn off shared libraries
-shared_libs =
-
-# turn on static libraries
-static_libs = 1
-
-
-# C Compiler
-CC = dcc -tPPC860ES:psos
-# -WDCDCONFIG=psos.conf
-
-# C Debug Compiler Flags
-# -D<name>[=<value>] defines symbol to preprocessor
-# -U<name> undefine preprocessor symbol
-# -I<path> adds a directory path to the include file search path
-# -V[V] display the current version number of D-C++ (this could be
-# useful for crafting a single pSOS config.h file)
-# -W is used to pass arguments to specific tools (compiler, linker, etc),
-# to change which tool is used, etc
-# -o renames the output (we need to do this to avoid colliding with .i files)
-# -X<name | number>[=<value>]gives detailed control of the compiler
-# -Xlint turns on a bunch of useful warning messages
-# -Xno-old-style disables the use of old style C function declarations
-# and narrows the compiler error messages
-# -Xmnem-emb accepts only Motorola Embedded Mnemonics (assembler directive)
-# -Xkeywords=0x04 defines the inline keyword to be valid
-# -Xkill-opt=0x400 turns off the split optimization. Per Jim Terman
-# at DDI, this fixes a known problem
-# -Y changes the default search path for include files and libraries
-# -t<CPU><object format><floating point support>[:<environment>] is used to
-# describe the target board. The object format is F for ELF, E for COFF,
-# or N for GNU/VxWorks. The floating point support is H for hardware
-# support, S for software support, or N for no floating point support
-CFLAGS += -D__DIAB -D__DIAB_42a -Xkill-opt=0x400 -Xno-old-style -Xlint $(PSOSINCL)
-
-# C Compiler Debug Flags (passed iff debug == 1)
-# -# prints subprograms with arguments as they are executed
-# -## prints subprograms with arguments without executing them
-# -### prints subprograms with arguments (in quotes) without executing them
-# -g embeds debug info but turns off a bunch of optimizations,
-# including inlining. It may also trigger a known bug in the Diab 4.2b
-# and earlier compilers that results in an internal compiler error
-# about ctmpl_copystm () when compiling certain ACE tests.
-# -g1 embeds debug info but not line numbers, and preserves inlining. It may
-# also trigger the same compiler bugs that -g triggers.
-# -v runs the compiler in verbose mode
-# -w suppresses warnings
-# -H prints path names of all include files to stderr
-# -E stops compilation after preprocessing and sends
-# results to stdout
-# -P same as -E except it sends it to the source file specified by the -o flag
-# (IMPORTANT: for ACE, some *other* file name must be specified, as the
-# default behavior for -P without the -o option will overwrite *our*
-# .i (inline) file)
-# -X<name | number>[=<value>]gives detailed control of the compiler
-# -Xlint turns on a bunch of useful warning messages
-# -Xstop-on-warning treats warnings like errors and stops compilation
-# -Xinit-locals[=<mask>] initializes memory pattern for local variables
-# -Xno-optimized-debug turns off optimizations for debugging
-DCFLAGS += -g -w -Ws
-
-# These cause internal compiler errors for some ACE tests, because of the
-# debug information embedded by the -g and -g1 switches (see above).
-#DCFLAGS += -g1 -w -Ws
-#DCFLAGS += -g -w -Ws
-#DCFLAGS += -g -w -Ws -P -o precomp.out
-#DCFLAGS += -g -w -Ws -H
-
-# C Compiler Optimization Flags (passed iff optimize == 1)
-# -O
-# -XO
-# OCFLAGS += -XO
-
-# C++ Compiler
-CXX = dplus -tPPC860ES:psos
-### This (without the above -t option cannot resolve DOBJECT, etc.)
-# CXX = dplus
-
-# C++ Compiler Flags
-# -o renames the output (we need to do this to avoid colliding with .i files)
-# -W is used to pass arguments to specific tools (compiler, linker, etc),
-# to change which tool is used, etc
-# -X<name | number>[=<value>]gives detailed control of the compiler
-# -Xexception enables exception handling
-# -Xno-implicit-templates produces smaller code, but requires explicit
-# template instantiation (see pp 91 of D-C++ user guide)
-# -Xcomdat (per Jim Terman) is the "preferred" way of instantiating templates as of 4.1a (but, there are problems there with Synch_T.cpp and Synch_T.h)
-# -ei1676 turns off the gazillion messages about not overriding pure virtual
-# functions in derived classes.
-
-#CCFLAGS += $(CFLAGS) $(DIAB_PSOS_HACKS) -Xno-implicit-templates
-#CCFLAGS += $(CFLAGS) $(DIAB_PSOS_HACKS) -Xno-implicit-templates=3
-#CCFLAGS += $(CFLAGS) $(DIAB_PSOS_HACKS) -Xno-implicit-templates=2
-#CCFLAGS += $(CFLAGS) $(DIAB_PSOS_HACKS) -Xcomdat
-CCFLAGS += $(CFLAGS) $(DIAB_PSOS_HACKS) -ei1676
-
-# C++ Compiler Debug Flags (passed iff debug == 1)
-DCCFLAGS += $(DCFLAGS)
-
-# Dynamic Linker
-# DLD = dld
-DLD = dplus -tPPC860ES:psos -Wm $(PSS_BSP)/ram.dld $(PSS_BSP)/anchor.dld
-
-# Static Linker
-# LD = dld
-LD = dplus -tPPC860ES:psos -Wm $(PSS_BSP)/ram.dld $(PSS_BSP)/anchor.dld
-
-# Static Linker Flags
-# -L<path> adds a directory path to the linker search path
-# -l<name> adds a library name to the list the linker uses
-# -f<val> fills in holes in an output section with the given 16 bit pattern
-# -m generates a link map of the input and output sections on stdout
-# -m2 generates a more detailed link map of the input and output sections on stdout
-# -r performs incremental link
-# -r2 add relocation tables, treat unresolved symbols as errors
-# -r3 add relocation tables, treat unresolved symbols as warnings
-# -Xcheck-overlap checks for overlap of output sections and sections that wrap around
-# 32 bit address boundary
-# -Xdont-die forces the linker to continue after errors
-# -Xexpl-instantiations causes linker to write source lines of explicit template
-# instantiations to stdout
-#LDFLAGS += -Xdont-die -Xexpl-instantiations
-#LDFLAGS += -Xdont-die
-#LDFLAGS += -Xdont-die
-#LDFLAGS += -Xdont-die -Xexpl-instantiations
-
-# Additional libraries used by the linker
-LIBS += $(PSOS_LIBS) $(PSS_BSP_LIB)
-#LIBS += $(PSOS_LIBS) $(PSS_BSP_LIB) $(DIAB_LIBS)
-
-# position independent code flag (do we need this ?)
-# PIC = -fpic
-
-# Archive Utility
-AR = dar
-
-# Archive Utility Flags
-# -d[lv] delete the named files from the archive
-# -m[abiv] move the named files
-# -r[abciluv] replace the named files in the archive
-ARFLAGS = -r
-
-RANLIB = echo
-
-# Shared Object Library Stuff (do we need this ?)
-# SOFLAGS = -G $(CPPFLAGS)
-# SOBUILD - compile into .so directly
-# SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-
-# Unidentified Stuff
-# PRELIB = @true
diff --git a/include/makeinclude/platform_psos_tm.GNU b/include/makeinclude/platform_psos_tm.GNU
deleted file mode 100644
index 42a00c54ec1..00000000000
--- a/include/makeinclude/platform_psos_tm.GNU
+++ /dev/null
@@ -1,47 +0,0 @@
-# $Id$
-# pSOS with Trimedia compiler
-
-####
-#### Notes:
-####
-#### 1) This file assumes that the PSS_ROOT environment variable is set.
-####
-
-TCS = /net/neptune/neptune/n3/jin
-#TCS = /net/video/video/v0/dtv_stage1/TCS/SunOS
-HOST = tmsim
-ENDIAN = el
-
-PSS_ROOT = $(TCS)/OS/pSOS/pSOSystem
-PSS_SYS_DIR = $(PSS_ROOT)/sys/os
-PSS_SYS_LIBS = $(PSS_SYS_DIR)/psos_tm_$(ENDIAN).o
-
-PSOS_SYSTEM = $(TCS)/OS/pSOS/pSOSystem
-PSOS_DEFS = -DSC_PSOS=YES -DSC_PSOSM=NO -DSC_PNA=NO -D__sparc
-CC = $(TCS)/bin/tmcc -$(ENDIAN) -host $(HOST) $(PSOS_DEFS)
-CXX = $(TCS)/bin/tmCC -$(ENDIAN) -host $(HOST) $(PSOS_DEFS)
-CINCS = -I. -I$(PSOS_SYSTEM)/include
-#-I$(TCS)/include/$(HOST)
-CFLAGS = $(CINCS)
-CCFLAGS = $(CINCS)
-
-AR = $(TCS)/bin/tmar
-ARFLAGS = rcv
-LD = $(TCS)/bin/tmld
-LDFLAGS = -bremoveunusedcode -bcompact -bfoldcode -ldev_g
-
-RANLIB = echo
-
-# -w suppresses warnings
-# -H tells you which header files are being included
-# (switch between these)
-#DCFLAGS += -g
-#DCFLAGS += -g -H
-#DCFLAGS += -g -H -w
-#DCFLAGS += -g -w
-
-LIBS += $(PSS_SYS_LIBS)
-
-#INCLDIRS += -I$(PSS_ROOT)/include -I$(PSS_BSP) -I$(ACE_ROOT)/ace
-
-
diff --git a/include/makeinclude/platform_psosim_g++.GNU b/include/makeinclude/platform_psosim_g++.GNU
deleted file mode 100644
index 3918f3c4122..00000000000
--- a/include/makeinclude/platform_psosim_g++.GNU
+++ /dev/null
@@ -1,57 +0,0 @@
-# $Id$
-# PSOSim with GNU g++ 2.7.2
-
-####
-#### Notes:
-####
-#### 1) This file assumes that the PSS_ROOT environment variable is set.
-####
-#### 2) There is a separate Makefile in $(PSS_CFG_DIR) that must be used
-#### to create $(PSS_CFG_DIR)/acepsos.a
-####
-####
-
-CPU_FAMILY = psosim
-CPU = psosim
-CPU_TOOLS = psosim
-BOARD = psosim
-
-PSS_CFG_DIR = $(ACE_ROOT)/psosim
-PSS_SYS_DIR = $(PSS_ROOT)/sys/os
-PSS_SYS_LIBS = $(PSS_SYS_DIR)/prepc.a $(PSS_SYS_DIR)/psos.a $(PSS_SYS_DIR)/pna.a
-PSS_BSP = $(PSS_ROOT)/bsps/psosim
-PSS_BSP_LIB = $(PSS_BSP)/bsp.a
-
-debug = 1
-optimize = 1
-
-CC = gcc
-CXX = g++
-CFLAGS += -W -Wall -Wpointer-arith -pipe #### -Winline
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-
-# -w suppresses warnings
-# -H tells you which header files are being included
-# (switch between these)
-#DCFLAGS += -g
-#DCFLAGS += -g -H
-#DCFLAGS += -g -H -w
-DCFLAGS += -g -w
-
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS += # -z muldefs
-LIBS += $(PSS_SYS_LIBS) $(PSS_BSP_LIB) $(PSS_CFG_DIR)/acepsos.a -lsocket -lnsl -lm
-OCFLAGS += -O2
-#OCFLAGS += -O0
-PIC = -fpic
-AR = ar
-ARFLAGS = rsuv
-RANLIB = @true
-SOFLAGS = -G $(CPPFLAGS)
-# SOBUILD - compile into .so directly
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
-INCLDIRS += -I$(PSS_ROOT)/include -I$(PSS_BSP) -I$(ACE_ROOT)/ace
-
-
diff --git a/include/makeinclude/platform_qnx_neutrino.GNU b/include/makeinclude/platform_qnx_neutrino.GNU
deleted file mode 100644
index 2aa29221f1c..00000000000
--- a/include/makeinclude/platform_qnx_neutrino.GNU
+++ /dev/null
@@ -1,35 +0,0 @@
-# $Id$
-
-# QNX 4.25 hosted GNU g++ for Neutrino 2.0
-
-CROSS-COMPILE = 1
-ACE_HAS_GNUG_PRE_2_8 := 0
-static_libs_only = 1
-
-ifeq (,$(debug))
- debug = 1
-endif # ! debug
-ifeq (,$(optimize))
- optimize = 1
-endif # ! optimize
-ifeq (,$(repo))
- repo = 1
-endif # ! repo
-
-CC = i386-nto-gcc
-CXX = i386-nto-g++
-CFLAGS += -pipe -W -Wall -Wpointer-arith
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS +=
-LIBS += -lsocket -lstdc++
-OCFLAGS += -O2
-PIC = -fPIC
-AR = i386-nto-ar
-ARFLAGS = ruv
-RANLIB = i386-nto-ranlib
-SOFLAGS = -G $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_qnx_rtp_gcc.GNU b/include/makeinclude/platform_qnx_rtp_gcc.GNU
deleted file mode 100644
index 6b69a6a3749..00000000000
--- a/include/makeinclude/platform_qnx_rtp_gcc.GNU
+++ /dev/null
@@ -1,39 +0,0 @@
-# $Id$
-
-# QNX/RTP hosted, using gcc-2.95.2
-
-ACE_HAS_GNUG_PRE_2_8 := 0
-
-inline = 1
-debug = 1
-optimize = 1
-exceptions = 1
-
-ifeq ($(exceptions),1)
- CCFLAGS += -fexceptions
- LDFLAGS += -fexceptions
-else
- CCLAGS += -fno-exceptions
- LDLAGS += -fno-exceptions
-endif # ! exceptions
-
-CC = gcc
-CXX = g++
-DCFLAGS += -gstabs
-
-CFLAGS += -pipe -W -Wall -Wpointer-arith
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-
-DLD = $(CXX)
-LD = $(CXX)
-LIBS += -lsocket -lstdc++ -lm
-OCFLAGS += -O3
-PIC = -fPIC
-AR = ar
-ARFLAGS = ruv
-#RANLIB = ranlib
-SOFLAGS = $(CPPFLAGS) -shared
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
-
-
diff --git a/include/makeinclude/platform_rtems.x_g++.GNU b/include/makeinclude/platform_rtems.x_g++.GNU
deleted file mode 100644
index df0b0515847..00000000000
--- a/include/makeinclude/platform_rtems.x_g++.GNU
+++ /dev/null
@@ -1,92 +0,0 @@
-# $Id$
-#
-# RTEMS 4.5.0 and later with GNU g++.
-
-#### Notes:
-#### 1) This file requires that the WIND_BASE and WIND_HOST_TYPE environment
-#### variables be set. If the target CPU is not a PPC604, then your CPU
-#### environment variable must be set. If perl is not on your path,
-#### you'll also need to set your PERL_PATH environment variable to
-#### the full path to perl.
-
-CROSS-COMPILE = 1
-
-ifndef debug
- debug = 1
-endif # ! debug
-ifndef optimize
- optimize = 1
-endif # ! optimize
-ifndef rtti
- rtti =
-endif # ! rtti
-
-shared_libs =
-static_libs = 1
-
-ifeq (,$(RTEMS_MAKEFILE_PATH))
- default:
- @ERROR: you must set your RTEMS_MAKEFILE_PATH environment variable
-endif # RTEMS_MAKEFILE_PATH
-
-ifeq (,$(PERL_PATH))
- PERL_PATH = perl
-endif # ! PERL_PATH
-
-
-#### BEGIN target CPU-specific settings
-
-# look them up
-CFLAGS = $(shell make --no-print-directory -f $(ACE_ROOT)/include/makeinclude/Makefile.rtems print_cflags)
-#CCFLAGS = $(shell make --no-print-directory -f $(ACE_ROOT)/include/makeinclude/Makefile.rtems print_cflags) -fno-implicit-templates
-CCFLAGS = -fno-implicit-templates
-
-#### END target CPU-specific settings
-
-CXX := $(shell make --no-print-directory -f $(ACE_ROOT)/include/makeinclude/Makefile.rtems print_cxx)
-
-ifndef ACE_CC
-ACE_CC := $(shell make --no-print-directory -f $(ACE_ROOT)/include/makeinclude/Makefile.rtems print_cc)
-endif # ! ACE_CC
-ifndef ACE_CC_VERSION
- ACE_CC_VERSION := $(shell $(ACE_CC) --version)
-endif # ! ACE_CC_VERSION
-
-ifeq (egcs,$(findstring egcs,$(ACE_CC_VERSION)))
- ACE_HAS_GNUG_PRE_2_8 := 0
- CFLAGS +=
- ifneq (1,$(exceptions))
- #### With exceptions, this is applied in wrapper_macros.GNU.
- #### Without, we do it here.
- CFLAGS += -Wno-uninitialized
- endif # ! exceptions
-endif # egcs
-
-#CFLAGS += -D_REENTRANT -ansi -fno-builtin -fno-defer-pop \
-# -fvolatile $(PIPE_OPT) -W -Wall
-#CCFLAGS += $(CFLAGS)
-ifeq (,$(rtti))
- #### Don't use RTTI even with egcs, because Tornado 1.0.x libraries
- #### don't support it.
- CCFLAGS += -fno-rtti -DACE_LACKS_RTTI
-endif # rtti
-DCFLAGS += -g
-DLD = $(LD)
-INCLDIRS +=
-# Hand build tests/rtems_init.o .. something like this
-# sparc-rtems-gcc -B/opt/rtems/sparc-rtems/erc32/lib/ -specs bsp_specs \
-# -qrtems -mcpu=cypress -O -g \
-# -I$(ACE_ROOT) -c -o rtems_init.o rtems_init.c
-
-LD = $(CXX) $(CCFLAGS) $(ACE_ROOT)/tests/rtems_init.o
-LDFLAGS += #-Wl,-X -Wl,-r
-OCFLAGS += -O
-PIC =
-
-
-#### ld can't handle INCLDIRS, so override LINK definitions.
-LINK.c = override
-LINK.c.override = $(LD) $(LDFLAGS) $(LDLIBS) $(LIBS)
-
-LINK.cc = override
-LINK.cc.override = $(LD)
diff --git a/include/makeinclude/platform_sco-nothread.GNU b/include/makeinclude/platform_sco-nothread.GNU
deleted file mode 100644
index efbdad9bd02..00000000000
--- a/include/makeinclude/platform_sco-nothread.GNU
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id$
-
-debug = 1
-optimize = 1
-
-CC = gcc
-CXX = g++
-CFLAGS += -w
-CCFLAGS += $(CFLAGS) -fno-implicit-templates -fno-strict-prototypes
-DCFLAGS += -g #### should this be -gstabs?
-DLD = $(CXX)
-LD = $(CXX)
-LIBS = -lsocket
-OCFLAGS = -O2
-PIC =
-AR = ar
-ARFLAGS = ruv
-RANLIB = /bin/true
-
-SOFLAGS = $(CPPFLAGS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_sco5.0.0-CC-fsu-pthread.GNU b/include/makeinclude/platform_sco5.0.0-CC-fsu-pthread.GNU
deleted file mode 100644
index b516ca8228d..00000000000
--- a/include/makeinclude/platform_sco5.0.0-CC-fsu-pthread.GNU
+++ /dev/null
@@ -1,36 +0,0 @@
-# $Id$
-
-# Requires FSU pthreads and gcc 2.7.2 Skunkware 97
-# to produce libACE.so correctly changed the specs file for gcc 2.7.2
-# for not link -lc and -lgcc and other not shared libraries
-
-debug = 1
-optimize = 1
-
-CC = cc
-# for threads
-# for no threads
-#CXX = gcc -fno-implicit-templates -w -fno-strict-prototypes
-# LDFLAGS += -L $(ACE_ROOT)/ace -L ./ ${FSU_PTHREADS_DIR}/init/init.o # -z muldefs
-# LDLIBS += -L $(ACE_ROOT)/ace -L ./ ${FSU_PTHREADS_DIR}/init/init.o -lACE # -z muldefs
-LDLIBS += -L $(ACE_ROOT)/ace # -z muldefs
-CXX = CC
-CFLAGS += -belf
-CCFLAGS += +.cpp +d -Dvolatile= -belf -Kpic -pts -I ${FSU_PTHREADS_DIR}/include
-DCFLAGS += -g
-DCCFLAGS += $(DCFLAGS)
-DLD = $(CXX)
-LD = $(CXX) /usr/lib/libc.so.1
-#LD = $(CXX)
-LIBS = -lm -L${FSU_PTHREADS_DIR}/lib -lgthreads -lnsl -lsocket -lgthreads
-OCFLAGS += -O2
-OCCFLAGS += $(OCFLAGS)
-PIC = -fPIC
-AR = ar
-ARFLAGS = ruv
-RANLIB = /bin/true
-
-SOFLAGS = $(CPPFLAGS) -melf -fPIC -G
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-# SOLINK = $(SOLINK.cc) -o $@ $(LDFLAGS) $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU b/include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU
deleted file mode 100644
index 4eba0aa5e00..00000000000
--- a/include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU
+++ /dev/null
@@ -1,46 +0,0 @@
-# $Id$
-#
-# Note 1: the above file from ACE 4.6 has been modified by Mike P. to get
-# rid of thread related stuff until we can obtain fsu-threads library.
-#
-# Note 2: You must setup FSU_PTHREADS_DIR environment var to your FSU
-# pthreads directory.
-
-# Requires gcc 2.7.2 Skunkware 97
-# to produce libACE.so correctly changed the specs file for gcc 2.7.2
-# for not link -lc and -lgcc and other not shared libraries
-
-debug = 0
-optimize = 1
-
-CC = gcc
-# for no threads
-LDLIBS += -lm -L $(ACE_ROOT)/ace
-CXX = g++
-CFLAGS += -melf -m386 -w
-CCFLAGS += -melf -m386
-ifneq ($(FSU_PTHREADS_DIR),"")
-CCFLAGS += -I$(FSU_PTHREADS_DIR)/include
-endif
-# -g option not supported for C++ on systems using the DWARF debugging format
-DCFLAGS += -g
-DCCFLAGS += $(DCFLAGS)
-DLD = $(CXX)
-LD = $(CXX) /usr/lib/libc.so.1
-ifneq ($(FSU_PTHREADS_DIR),"")
-LIBS += -L$(FSU_PTHREADS_DIR)/lib
-endif
-LIBS += -lgthreads
-LIBS += -lnsl -lsocket
-LIBS += -lgthreads
-OCFLAGS += -O2
-OCCFLAGS += $(OCFLAGS)
-PIC = -fpic
-AR = ar
-ARFLAGS = ruv
-RANLIB = /bin/true
-
-SOFLAGS =
-SOLINK = gcc $(PIC) -melf -shared
-SOBUILD = $(SOLINK) -o $(VSHDIR)$*.so $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_sco5.0.0-mit-pthread.GNU b/include/makeinclude/platform_sco5.0.0-mit-pthread.GNU
deleted file mode 100644
index f43397bf5ed..00000000000
--- a/include/makeinclude/platform_sco5.0.0-mit-pthread.GNU
+++ /dev/null
@@ -1,35 +0,0 @@
-# $Id$
-
-# Requires MIT pthreads and gcc 2.7.2 installed in /usr/progressive
-# to produce libACE.so correctly changed the specs file for gcc 2.7.2
-# for not link -lc and -lgcc and other not shared libraries
-
-debug = 1
-optimize = 1
-
-CC = gcc
-# for threads
-# for no threads
-#CXX = gcc -fno-implicit-templates -w -fno-strict-prototypes
-# LDFLAGS += -L $(ACE_ROOT)/ace -L ./ ${MIT_PTHREADS_DIR}/init/init.o # -z muldefs
-# LDLIBS += -L $(ACE_ROOT)/ace -L ./ ${MIT_PTHREADS_DIR}/init/init.o -lACE # -z muldefs
-LDLIBS += -L $(ACE_ROOT)/ace -L ./ -lACE # -z muldefs
-CXX = g++
-CFLAGS += -melf -w
-CCFLAGS += -melf -fPIC -Xpg4plus -fno-implicit-templates -I ${MIT_PTHREADS_DIR}/include -I /usr/progressive/lib/g++-include
-DCFLAGS += -gstabs
-DCCFLAGS += $(DCFLAGS)
-DLD = $(CXX)
-LD = $(CXX)
-LIBS = -L${MIT_PTHREADS_DIR} -lnsl -lpthread
-OCFLAGS += -O2
-OCCFLAGS += $(OCFLAGS)
-PIC = -fPIC
-AR = ar
-ARFLAGS = ruv
-RANLIB = /bin/true
-
-SOFLAGS = $(CPPFLAGS) -melf -fPIC -G
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-# SOLINK = $(SOLINK.cc) -o $@ $(LDFLAGS) $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_sco5.0.0-nothread.GNU b/include/makeinclude/platform_sco5.0.0-nothread.GNU
deleted file mode 100644
index 6267de6e682..00000000000
--- a/include/makeinclude/platform_sco5.0.0-nothread.GNU
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id$
-#
-# NOTE: the above file from ACE 4.6 has been modified by Mike P. to get rid of
-# thread related stuff until we can obtain fsu-threads library.
-
-# Requires gcc 2.7.2 Skunkware 97
-# to produce libACE.so correctly changed the specs file for gcc 2.7.2
-# for not link -lc and -lgcc and other not shared libraries
-
-debug = 1
-optimize = 1
-
-CC = gcc
-# for no threads
-LDLIBS += -lm -L $(ACE_ROOT)/ace
-CXX = g++
-CFLAGS += -melf -w
-CCFLAGS += -melf -fno-implicit-templates
-# -g option not supported for C++ on systems using the DWARF debugging format
-#DCFLAGS += -g
-DCCFLAGS += $(DCFLAGS)
-DLD = $(CXX)
-LD = $(CXX) /usr/lib/libc.so.1
-LIBS = -lnsl -lsocket
-OCCFLAGS += $(OCFLAGS)
-PIC = -fPIC
-AR = ar
-ARFLAGS = ruv
-RANLIB = /bin/true
-
-SOFLAGS = $(CPPFLAGS) -melf -fPIC -G
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_sunos4_g++.GNU b/include/makeinclude/platform_sunos4_g++.GNU
deleted file mode 100644
index 35c3f8f61b9..00000000000
--- a/include/makeinclude/platform_sunos4_g++.GNU
+++ /dev/null
@@ -1,26 +0,0 @@
-# $Id$
-
-# SunOS 4.x (Solaris 1.x) with g++ *not* using Orbix
-
-debug = 1
-optimize = 1
-
-CC = gcc
-CXX = g++
-CFLAGS += -fno-strict-prototypes
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-DCFLAGS += -g
-DLD = /bin/ld
-LD = $(CXX)
-#
-# for G++ v2.6.0
-OCFLAGS += -O2
-PIC = -fpic
-AR = ar
-ARFLAGS = ruv
-RANLIB = ranlib
-SOFLAGS = -assert pure-text
-# SOBUILD - compile into .so directly
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-# SOLINK = $(SOLINK.cc) -o $@ $(LDFLAGS) $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_sunos4_lucid.GNU b/include/makeinclude/platform_sunos4_lucid.GNU
deleted file mode 100644
index a6efedcf796..00000000000
--- a/include/makeinclude/platform_sunos4_lucid.GNU
+++ /dev/null
@@ -1,21 +0,0 @@
-# $Id$
-
-# SunOS 4.x (Solaris 1.x) with Lucid
-
-debug = 1
-
-CC = lcc
-CXX = lcc
-CFLAGS = -Xa # use ANSI c complier
-CCFLAGS = -XF -Xpt- # use c++ ARM compiler with auto templates turned off
-DCFLAGS += -g
-DCCFLAGS += $(DCFLAGS)
-DLD = /bin/ld
-LD = $(CXX)
-LIBS +=
-PIC = -pic
-ARFLAGS = ruv
-RANLIB = ranlib
-SOFLAGS = -assert pure-text
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
diff --git a/include/makeinclude/platform_sunos4_sunc++3.x.GNU b/include/makeinclude/platform_sunos4_sunc++3.x.GNU
deleted file mode 100644
index a00eb562e11..00000000000
--- a/include/makeinclude/platform_sunos4_sunc++3.x.GNU
+++ /dev/null
@@ -1,27 +0,0 @@
-# $Id$
-
-# SunOS 4.x (Solaris 1.x) with SunC++ 3.x (note that this is a very old C++
-# compiler, based on cfront. In paricular, it's not the same thing as
-# SunC++ 4.x (which is also known as SPARCWorks 3.x).
-
-debug = 1
-
-CC = cc
-CXX = CC
-CCFLAGS += $(CFLAGS)
-DCFLAGS += -g
-DLD = /bin/ld
-LD = $(CXX)
-LIBS +=
-PIC = -pic
-AR = ar
-ARFLAGS = ruv
-RANLIB = ranlib
-SOFLAGS = -assert pure-text
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(RM) -rf $(VSHDIR)pt$*; mkdir $(VSHDIR)pt$*; \
- YYZ="`$(CXX) $(CCFLAGS) $(CPPFLAGS) \
- -ptr$(VSHDIR)pt$* -ptr./ptrepository $<`"; \
- $(RM) -rf a.out; \
- YYZ="`echo $(VSHDIR)pt$*/*.o`"; \
- $(SOLINK.cc) -o $@ ./$(VSHDIR)$*.o $(YYZ)
diff --git a/include/makeinclude/platform_sunos4_sunc++4.x.GNU b/include/makeinclude/platform_sunos4_sunc++4.x.GNU
deleted file mode 100644
index b122a76859f..00000000000
--- a/include/makeinclude/platform_sunos4_sunc++4.x.GNU
+++ /dev/null
@@ -1,24 +0,0 @@
-# $Id$
-
-# SunOS 4.x (Solaris 1.x) with SunC++ 4.x
-
-debug = 1
-
-CC = cc
-CXX = CC
-CCFLAGS += $(CFLAGS)
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LIBS +=
-LDFLAGS += $(PIC)
-AR = CC
-ARFLAGS = -xar -o
-PIC = -PIC
-RANLIB = ranlib
-SOFLAGS = -G $(CPPFLAGS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) $(PIC) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
-
-#### Create template repository to avoid compiler warning.
-TEMPLATE_REPOSITORY = Templates.DB
diff --git a/include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU b/include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU
deleted file mode 100644
index fec612a3113..00000000000
--- a/include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU
+++ /dev/null
@@ -1,25 +0,0 @@
-# $Id$
-
-# SunOS 4.x (Solaris 1.x) with SunC++ 4.x and Orbix.
-
-debug = 1
-
-CC = cc
-CXX = CC
-CCFLAGS += $(CFLAGS)
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LIBS +=
-INCLDIRS = -I$(ORBIX_ROOT)/include
-AR = CC
-LDFLAGS += -L$(ORBIX_ROOT)/lib
-ARFLAGS = -xar -o
-PIC = -pic
-RANLIB = ranlib
-SOFLAGS = -G $(CPPFLAGS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
-
-#### Create template repository to avoid compiler warning.
-TEMPLATE_REPOSITORY = Templates.DB
diff --git a/include/makeinclude/platform_sunos5_centerline.GNU b/include/makeinclude/platform_sunos5_centerline.GNU
deleted file mode 100644
index 0d8cc04c666..00000000000
--- a/include/makeinclude/platform_sunos5_centerline.GNU
+++ /dev/null
@@ -1,22 +0,0 @@
-# $Id$
-
-# SunOS 5.x (Solaris 2.x) with Centerline C++
-
-debug = 1
-
-CC = cc
-CXX = CC
-CFLAGS += -mt
-CCFLAGS += $(CFLAGS)
-DCFLAGS += -g
-DLD = $(CXX) -mt
-LD = $(CXX) -mt
-LIBS += -lsocket -ldl -lnsl -lgen
-PIC = -PIC
-#AR = CC
-#ARFLAGS = -xar -o
-ARFLAGS = ruv
-RANLIB = echo
-SOFLAGS = -G $(CPPFLAGS) $(PTDIRS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) $(PIC) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
diff --git a/include/makeinclude/platform_sunos5_centerline_orbix.GNU b/include/makeinclude/platform_sunos5_centerline_orbix.GNU
deleted file mode 100644
index 7265e806673..00000000000
--- a/include/makeinclude/platform_sunos5_centerline_orbix.GNU
+++ /dev/null
@@ -1,23 +0,0 @@
-# $Id$
-
-# SunOS 5.x (Solaris 2.x) with Centerline C++
-
-debug = 1
-
-CC = cc
-CXX = CC
-CFLAGS += -mt
-CCFLAGS += $(CFLAGS)
-DCFLAGS += -g
-DLD = $(CXX) -mt
-LD = $(CXX) -mt
-INCLDIRS = -I$(ORBIX_ROOT)/include
-LDFLAGS += -L$(ORBIX_ROOT)/lib
-LIBS += -lITsrv -lsocket -ldl -lnsl -lgen
-PIC = -PIC
-AR = CC
-ARFLAGS = -xar -o
-RANLIB = echo
-SOFLAGS = -G $(CPPFLAGS) $(PTDIRS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) $(PIC) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
diff --git a/include/makeinclude/platform_sunos5_g++.GNU b/include/makeinclude/platform_sunos5_g++.GNU
deleted file mode 100644
index 3fd2c02898c..00000000000
--- a/include/makeinclude/platform_sunos5_g++.GNU
+++ /dev/null
@@ -1,80 +0,0 @@
-# $Id$
-
-# SunOS 5.x (Solaris 2.x) with g++ *not* using Orbix
-
-# NOTE: with g++ 2.8.0, you'll need to disable optimization in order to
-# instantiate ACE_Map_Manager (ace/Map_Manager.cpp). The easiest
-# way to do that is to set "optimize = 0", either below or on
-# your make command line.
-
-# NOTE: On Solaris86, you'll need to use GNU as instead of /usr/ccs/bin/as,
-# if you want -gstabs+ and -pipe support.
-
-ACE_HAS_GNUG_PRE_2_8 := \
- $(shell \
- if $(CXX) --version | egrep '^(cygnus-)?2\.[0-7]' > /dev/null; then \
- echo 1; else echo 0; fi)
-
-ifeq (,$(debug))
- debug = 1
-endif
-ifeq (,$(optimize))
- optimize = 1
-endif
-ifeq (,$(threads))
- threads = 1
-endif
-
-ifeq ($(threads),0)
- CFLAGS += -DACE_MT_SAFE=0
-endif # threads
-
-ifeq (,$(exceptions))
-exceptions = 0
-endif
-# if we are not working with old gcc ...
-ifeq ($(ACE_HAS_GNUG_PRE_2_8),0)
-ifeq ($(exceptions),0)
-CFLAGS += -fno-exceptions
-endif # exceptions
-endif # ! ACE_HAS_GNUG_PRE_2_8
-
-ifeq ($(shell /bin/uname -m),i86pc)
- #### gcc on Solaris86 doesn't use -g
- DCFLAGS += -gstabs+
-else # ! i86pc
- DCFLAGS += -g
-endif # ! i86pc
-
-CC = gcc
-CXX = g++
-CFLAGS += -W -Wall -Wpointer-arith -pipe #### -Winline
-
-ifeq ($(threads),1)
- CPPFLAGS += -D_REENTRANT
-endif
-
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS +=
-LIBS += -lsocket -ldl -lgen -lnsl -lposix4 -lthread
-OCFLAGS += -O3
-PIC = -fPIC
-AR = ar
-ARFLAGS = ruv
-RANLIB = @true
-SOFLAGS = -G $(CPPFLAGS)
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-PRELIB = @true
-
-PLATFORM_X11_CPPFLAGS= -I/usr/openwin/include -I/usr/dt/include
-PLATFORM_X11_LIBS =-lX11
-PLATFORM_X11_LDFLAGS=
-
-## Unfortunately, gcc 3.0 fails to many cpp files with
-## optimization enabled. Even -O causes the compiler
-## to core dump on some files.
-ifeq ($(shell $(CXX) --version),3.0)
- override optimize = 0
-endif
diff --git a/include/makeinclude/platform_sunos5_ghs.GNU b/include/makeinclude/platform_sunos5_ghs.GNU
deleted file mode 100644
index 8933d0fc199..00000000000
--- a/include/makeinclude/platform_sunos5_ghs.GNU
+++ /dev/null
@@ -1,38 +0,0 @@
-# $Id$
-
-# SunOS 5.x (Solaris 2.x) with GreenHills compiler.
-
-debug = 1
-exceptions = 0
-optimize = 1
-threads = 1
-
-CC = gcx
-CXX = $(CC)
-CCFLAGS += $(CFLAGS) --no_rtti -tnone
-DCFLAGS += -g
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS = --no_auto_instantiation
-LIBS += -lsocket -ldl -lgen -lnsl -lposix4
-OCFLAGS += -OL -OM
-PIC = -PIC
-RANLIB = @true
-AR = $(CC) $(LDFLAGS)
-ARFLAGS = -archive -o
-RANLIB = @true
-SOFLAGS = -shared
-
-ifeq ($(threads),1)
- #### Don't use g7 register with threading.
- CFLAGS += -Xleaveg7
- LIBS += -lthread
-else # ! threads
- CFLAGS += -DACE_MT_SAFE=0
-endif # ! threads
-
-ifeq (1,$(exceptions))
- CCFLAGS += --exceptions
-else # ! exceptions
- CCFLAGS += --no_exceptions
-endif # ! exceptions
diff --git a/include/makeinclude/platform_sunos5_kcc.GNU b/include/makeinclude/platform_sunos5_kcc.GNU
deleted file mode 100644
index 7c72745e217..00000000000
--- a/include/makeinclude/platform_sunos5_kcc.GNU
+++ /dev/null
@@ -1,99 +0,0 @@
-# $Id$ -*- Makefile -*-
-
-# SunOS 5.x (Solaris 2.x) with KAI C++ 3.3e, *not* using Orbix.
-#
-
-debug = 1
-distrib = 0
-threads = 1
-exceptions = 1
-
-# These are required for KCC 3.4g compiler.
-LDFLAGS += --one_instantiation_per_object
-CCFLAGS += --one_instantiation_per_object
-
-ifeq ($(threads),1)
- CFLAGS += --thread_safe
- LDFLAGS += --thread_safe
- ARFLAGS = --thread_safe
-else
- ARFLAGS =
- CCFLAGS += -DACE_HAS_THREADS=0
-endif # threads
-
-CC = KCC
-CXX = KCC
-
-DCFLAGS += +K0 -g
-DLD = $(CXX)
-LD = $(CXX)
-
-ifeq (1,$(exceptions))
- CCFLAGS += --exceptions
-else
- CCFLAGS += --no_exceptions
- LDFLAGS += --no_exceptions
-endif
-
-
-
-LIBS += -Bdynamic -lsocket -lnsl -lgen -ldl -lposix4
-MATHLIB = -lm
-CPPFLAGS += $(CFLAGS)
-OCFLAGS += +K3 -o
-PIC = -KPIC
-AR = KCC
-ARFLAGS += -Bstatic -o
-RANLIB = echo
-SOFLAGS = -G $(CPPFLAGS)
-
-
-ifdef static_libs_only
- ifneq ($(static_libs_only),0)
- static_libs=1
- endif
-endif
-ifneq ($(static_libs),0)
- CCFLAGS += --one_instantiation_per_object
-endif
-
-
-
-#### Create template repository to avoid compiler warning.
-TEMPLATE_REPOSITORY = Templates.DB
-
-ifdef BIN
- #### Builds .shobj/$*.o file, then .shobj/$*.so file. The .o files
- #### are used for building libraries and executables. But, it seems
- #### to be necessary to build the .so files (with -G) in order to get
- #### all template instantiations.
- SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) -o $@ -h $@ $(LDFLAGS) $(VSHDIR)$*.o
-else
- #### Optimize builds when no executables are built in the current
- #### directory. Only a library is being created, and -G is used
- #### in that step. Therefore, all templates instantations are
- #### included in the library. This optimization saves almost 11 Mb
- #### (2.6 percent) and 27 minutes (22 percent) on the entire ACE
- #### build on a 168 MHz Sun Ultra2.
- ####
- #### Sun C++ won't allow the output from a compile to be named with
- #### a .so extension. Rather than muck with the ACE build rules and
- #### risk upsetting builds on other platforms, just ln the output
- #### after building it.
- SOBUILD = $(RM) $@; $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $< && \
- /bin/ln $(VSHDIR)$*.o $@
-endif # BIN
-
-#### The following macro overrides enable creation of fast executables.
-#### They _don't_ support fast compilation :-)
-#### To use, add fast=1 to your "make" invocation.
-####
-#### -g is incompatible with -fast. If you need -g, you can
-#### use "-fast -O3".
-####
-ifeq (1,$(fast))
- CFLAGS += -fast +K3
- DCFLAGS =
- LDFLAGS += -fast +K3
-endif # fast
diff --git a/include/makeinclude/platform_sunos5_sunc++.GNU b/include/makeinclude/platform_sunos5_sunc++.GNU
deleted file mode 100644
index e39d5f586de..00000000000
--- a/include/makeinclude/platform_sunos5_sunc++.GNU
+++ /dev/null
@@ -1,220 +0,0 @@
-# $Id$
-
-# SunOS 5.x (Solaris 2.x) with Sun C++ 4.2 and 5.x, *not* using Orbix.
-#
-# NOTE: Sun C++ 5.0 users might need to add this to their CCFLAGS:
-# -compat=4 and/or remove -instances=explicit. Please note that
-# inlining is disabled by default with Sun C++ 5.0. If you'd like
-# to try enabling it, comment out the "inline = 0" line below.
-#
-# To enable compilation of 64-bit binaries with Sun CC 5.0, a
-# platform_macros.GNU file such as this can be used:
-# fast=1
-# include $(ACE_ROOT)/include/makeinclude/platform_sunos5_sunc++.GNU
-# CCFLAGS += -xtarget=ultra2 -xarch=v9a #### CPU specific!
-# SOFLAGS += -xtarget=ultra2 -xarch=v9a
-# LDFLAGS += -L/opt/SUNWspro/SC5.0/lib/v9 -L/usr/lib/sparcv9
-# Please note that the xtarget and xarch settings are specific to
-# the target CPU. The /opt/SUNWspro/ Sun C++ installation directory
-# is site-specific.
-#
-# With slight modification, this file could be used with Sun C++ 4.1.
-# However, it's likely that you won't be able to build all of ACE
-# with Sun C++ 4.1.
-#
-# NOTE: some ACE files might generate this warning:
-# "Warning: Could not find source for " one of the following:
-# default constructor, copy constructor, destructor, or assignment
-# operator. It appears that with +w, Sun C++ 4.x issues this warning
-# whenever it has to generate one of these functions (because it wasn't
-# defined by the user). This isn't really a problem.
-# This warning appears to be fixed by Sun C++ 4.2 jumbo patch 104631-02.
-#
-# -pta instantiates all template members, which makes libraries bigger.
-# But, it's supposed to put each member into it's own .o, so executable
-# size should not be penalized. We don't use it because it's not
-# necessary with automatic template instantiation.
-
-ifeq (,$(compat4))
- compat4 = 0
-endif
-ifeq (,$(debug))
- debug = 1
-endif
-ifeq (,$(distrib))
- distrib = 0
-endif
-ifeq (,$(stdcpplib))
- stdcpplib = 1
-endif
-ifeq (,$(threads))
- threads = 1
-endif
-
-tk_reactor = 0
-ace_with_x11 = 0
-
-PLATFORM_TK_CPPFLAGS=
-PLATFORM_TK_LIBS=-ltk -ltcl
-PLATFORM_TK_LDFLAGS=
-
-PLATFORM_X11_CPPFLAGS= -I/usr/openwin/include -I/usr/dt/include
-PLATFORM_X11_LIBS =-lX11
-PLATFORM_X11_LDFLAGS=
-
-ifeq ($(threads),1)
- CFLAGS += -mt
- LDFLAGS += -mt
-endif # threads
-
-CC = cc
-CXX = CC
-
-CC_VERSION = $(shell $(CXX) -V 2>&1)
-
-ifeq (Compilers 4.2,$(findstring Compilers 4.2,$(CC_VERSION)))
- #### CC 4.2, only, supports -features=castop
- CCFLAGS += $(CFLAGS) -features=castop
-
- #### RTTI can coexist with ACE, but it doesn't use it. To enable,
- #### add rtti=1 to your make invocation. Sun C++ 4.2, only, supports
- #### this option.
- ifeq (1,$(rtti))
- CCFLAGS += -features=rtti
- else # ! rtti
- #### ACE_LACKS_RTTI is necessary with -features=castop, but
- #### without -features=rtti, to convert dynamic_cast to static_cast.
- CCFLAGS += -DACE_LACKS_RTTI
- endif # ! rtti
-
- #### Create template repository to avoid compiler warning.
- TEMPLATE_REPOSITORY = Templates.DB
-else # ! 4.2
- ifeq (C++ 5,$(findstring C++ 5,$(CC_VERSION)))
- #### CC 5.0 or later
- #### Inlining appears to cause link problems with early releases of
- #### CC 5.0.
- ifeq (C++ 5.2,$(findstring C++ 5.2,$(CC_VERSION)))
- inline = 1
- exceptions = 1
- else
- inline = 0
- endif
-
- CCFLAGS += $(CFLAGS)
-
- #### If compat=4 is desired, set up for that. There are syntactic diffs
- #### in the compatibility modes, but here all we need to be concerned with
- #### is turning on -compat=4, and not trying to enable the new libraries.
- #### RTTI may work, but has not been tested. To try it, cut/paste the
- #### rtti conditions from the 4.2 section, above.
- ifeq ($(compat4),1)
- CCFLAGS += -compat=4 -DACE_LACKS_RTTI -instances=explicit
- else
- #### Support RTTI by default. And, use explicit template instantiation
- #### because automatic instantiation appears to be broken, at least
- #### with early releases of CC 5.0. And, use old iostreams.
- CCFLAGS += -instances=explicit
- ifeq (C++ 5.0,$(findstring C++ 5.0,$(CC_VERSION)))
- ifeq (1,$(stdcpplib))
- CCFLAGS += -library=Cstd
- else
- CCFLAGS += -library=iostream,no%Cstd -DACE_USES_OLD_IOSTREAMS
- endif # stdcpplib
- else
- ifeq (0,$(stdcpplib))
- CCFLAGS += -library=iostream -DACE_USES_OLD_IOSTREAMS
- endif # stdcpplib
- endif # CC 5.0
- endif # compat4 requested
- endif # CC 5.0 or later
-endif # ! 4.2
-
-DCFLAGS += -g
-DCCFLAGS += -g
-DLD = $(CXX)
-
-
-#### Exception handling breaks on MP machines prior to Sun C++ 4.2
-#### with jumbo patch 104631-02, see ace/config-sunos5.5.h.
-#### If you are using a version of Sun C++ prior to 4,2, or haven't
-#### applied that jumbo patch to your 4.2, or don't want to pay the
-#### performance penalty of exception handling, then use the default
-#### of no exceptions. If you want to enable exception handling,
-#### add "exceptions=1" to your "make" invocation.
-ifeq (0,$(exceptions))
- CCFLAGS += -noex
-endif # ! exceptions
-
-LD = $(CXX)
-
-ifdef orbix
- LDFLAGS += $(PIC) -L$(ORBIX_ROOT)/corba2/lib \
- -R $(ACE_ROOT)/ace -R./ -R $(ORBIX_ROOT)/corba2/lib
-ifeq ($(mt_orbix),1)
- LIBS += -lITinimt -liiopmt -lorbixmt -lthread
-else
- LIBS += -lITini -liiop -lorbix
-endif
-
- LIBS += -lsocket -ldl -lnsl -lgen -lposix4
- CPPFLAGS += -I$(ORBIX_ROOT)/corba2/include
-else
-ifeq ($(distrib),0)
- LDFLAGS += -R $(ACE_ROOT)/ace -R./
-endif
- LIBS += -lsocket -ldl -lnsl -lgen -lposix4
-endif # orbix
-
-ifeq (C++ 5,$(findstring C++ 5,$(CC_VERSION)))
- ifeq ($(compat4),1)
- COMPAT_LIBDIR=/opt/SUNWspro/lib/CC4
- LIBS += -L$(COMPAT_LIBDIR) -lC
- endif
-endif
-
-LDFLAGS += -xildoff
-
-OCFLAGS += -O
-PIC = -KPIC
-AR = CC
-ARFLAGS = -xar -o
-RANLIB = echo
-SOFLAGS = -G $(CPPFLAGS)
-
-ifdef BIN
- #### Builds .shobj/$*.o file, then .shobj/$*.so file. The .o files
- #### are used for building libraries and executables. But, it seems
- #### to be necessary to build the .so files (with -G) in order to get
- #### all template instantiations.
- SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) -o $@ -h $@ $(LDFLAGS) $(VSHDIR)$*.o
-else
- #### Optimize builds when no executables are built in the current
- #### directory. Only a library is being created, and -G is used
- #### in that step. Therefore, all templates instantations are
- #### included in the library. This optimization saves almost 11 Mb
- #### (2.6 percent) and 27 minutes (22 percent) on the entire ACE
- #### build on a 168 MHz Sun Ultra2.
- ####
- #### Sun C++ won't allow the output from a compile to be named with
- #### a .so extension. Rather than muck with the ACE build rules and
- #### risk upsetting builds on other platforms, just ln the output
- #### after building it.
- SOBUILD = $(RM) $@; $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $< && \
- /bin/ln $(VSHDIR)$*.o $@
-endif # BIN
-
-#### The following macro overrides enable creation of fast executables.
-#### They _don't_ support fast compilation :-)
-#### To use, add fast=1 to your "make" invocation.
-####
-#### -g is incompatible with -fast. If you need -g, you can
-#### use "-fast -O3".
-####
-ifeq (1,$(fast))
- CFLAGS += -fast
- DCFLAGS =
- DCCFLAGS =
- LDFLAGS += -fast
-endif # fast
diff --git a/include/makeinclude/platform_sunos5_sunc++_orbix.GNU b/include/makeinclude/platform_sunos5_sunc++_orbix.GNU
deleted file mode 100644
index 001576f06f1..00000000000
--- a/include/makeinclude/platform_sunos5_sunc++_orbix.GNU
+++ /dev/null
@@ -1,7 +0,0 @@
-# $Id$
-
-orbix=1
-mt_orbix=1
-exceptions=1
-
-include $(ACE_ROOT)/include/makeinclude/platform_sunos5_sunc++.GNU
diff --git a/include/makeinclude/platform_tandem.GNU b/include/makeinclude/platform_tandem.GNU
deleted file mode 100644
index 294525c4e82..00000000000
--- a/include/makeinclude/platform_tandem.GNU
+++ /dev/null
@@ -1,93 +0,0 @@
-# $Id$
-
-# NonStop-UX NCC 3.20
-
-debug = 1
-
-# Please see the config-NonS... file for more information about status
-# This file is built from Sunos5(os) and sgic++(compiler)
-
-CC = cc
-CXX = NCC
-DLD = $(CXX)
-LD = $(CXX)
-CPPFLAGS += -no_exceptions
-CPPFLAGS += -I/usr/include3.18
-CPPFLAGS += -D_REENTRANT
-#CPPFLAGS += -ptused -prelink
-CPPFLAGS += -pta
-#CPPFLAGS += +pp
-#CPPFLAGS += -show
-#-D_SGI_MP_SOURCE
-#3106 nested comment is not allowed
-#3203 statement is unreachable
-#3252 argument of type "X" is incompatible with parameter of type "Y"
-#3262 Parameter "X" declared and never referenced
-#3611 a value of "X" cannot be assigned to an entity of type "Y"
-#3140 macro redefined differently (param redefines NULL)
-
-CPPFLAGS += -woff 3106,3203,3262
-#CPPFLAGS += -woff 3106,3203,3262,3611,3252
-#CPPFLAGS += -woff 3106,3203,3212,3252,3262,3611
-
-# For the new 32 bit C++ compiler (-n32)
-#CPPFLAGS += -n32 -woff 1174,1209,1375,1506,1110,1552,1021,1171
-# For the old C++ compiler (-32)
-#CPPFLAGS += +pp
-LDFLAGS += -rpath "$(ACE_ROOT)/ace"
-#LDFLAGS += -Wl,-woff,85
-LIBS += -lsocket
-LIBS += -ldl
-LIBS += -lnsl
-LIBS += -lgen
-LIBS += -lthread
-PIC = -KPIC
-AR = ar
-ARFLAGS = r
-RANLIB = echo
-SOFLAGS = -shared $(CPPFLAGS) -all
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) -o $@ $(LDFLAGS) $(VSHDIR)$*.o
-
-#3106 nested comment is not allowed
-#3203 statement is unreachable
-#3252 argument of type "X" is incompatible with parameter of type "Y"
-#3262 Parameter declared and never referenced
-#3611 a value of "X" cannot be assigned to an entity of type "Y"
-#WARNOFF += -woff 3106,3203,3262,3611
-#INCDIR += -I/usr/include -I/usr/include3.18
-# -I /usr/ucbinclude
-#### No threads
-#CCFLAGS += -no_exceptions -pta $(WARNOFF) $(INCDIR)
-#### Threads
-#CCFLAGS += -D_REENTRANT -no_exceptions -pta $(WARNOFF)
-
-#DLD = $(CXX)
-#LD = $(CXX)
-#LDFLAGS += -R $(ACE_ROOT)/ace
-#LIBS += -lsocket -ldl -lnsl -lgen -lthread # Threads
-#LIBS += -lsocket -ldl -lnsl -lgen # No threads
-#PIC = -PIC
-# SUNC++ 4.1 has a bug with the -xar command:
-#
-# from 'CC -readme' the following bug is reported:
-#
-# 4. Using -xar to add generated templates
-# ----------------------------------------
-#
-# When using -xar to add generated templates to an archive,
-# please be aware that this command will both update
-# existing object files in the archive, and add new ones.
-# Existing object files that may be obsolete will still
-# be present. In these cases, the safest course of action
-# would be to delete the .a file prior to the invocation of -xar.
-#
-# so here we remove the archive prior to making the new one
-#
-#AR = CC
-#ARFLAGS = -xar -o
-#RANLIB = echo
-#SOFLAGS = -G $(CPPFLAGS)
-#SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \
- $(SOLINK.cc) -o $@ -h $@ $(LDFLAGS) $(VSHDIR)$*.o
-
diff --git a/include/makeinclude/platform_tru64_cxx.GNU b/include/makeinclude/platform_tru64_cxx.GNU
deleted file mode 100644
index 62a95b3dd24..00000000000
--- a/include/makeinclude/platform_tru64_cxx.GNU
+++ /dev/null
@@ -1,33 +0,0 @@
-# $Id$
-
-# This platform macros file is intended to work with
-# Digital UNIX using the cxx compiler.
-
-# Include the common macros for all compilers
-#
-include $(ACE_ROOT)/include/makeinclude/platform_tru64_pre.GNU
-
-
-# Include the macro file for osf1_4.x
-#
-include $(ACE_ROOT)/include/makeinclude/platform_osf1_4.x_cxx.GNU
-
-
-# Flags specific to 5.x
-#
-ifeq (5.,$(findstring 5.,$(ACE_DU_VERSION)))
- SOFLAGS = -shared -use_ld_input $(ACELIB)
-endif # ! 5.x
-
-### There is a bug with pthreads header file shipped with v1885 of
-### V5.1. We need to turn this flag to get asm () inline for
-### compilation.
-ifeq (1885,$(findstring 1885,$(ACE_DU_SUBVERSION)))
- ifeq (6.,$(findstring 6.,$(CXX_VERSION)))
- CPPFLAGS += -D_PTHREAD_ENV_DECCXX
- endif # 6.x
-endif #v1885
-
-# Include the common macros for all compilers
-#
-include $(ACE_ROOT)/include/makeinclude/platform_tru64_post.GNU
diff --git a/include/makeinclude/platform_tru64_g++.GNU b/include/makeinclude/platform_tru64_g++.GNU
deleted file mode 100644
index 155d71109f8..00000000000
--- a/include/makeinclude/platform_tru64_g++.GNU
+++ /dev/null
@@ -1,20 +0,0 @@
-# $Id$
-
-# This platform macros file is intended to work with
-# Digital UNIX using the GNU compiler.
-
-# Of late, this platform and compiler combination hasn't been tested. In
-# fact neither compilation nor testing has been done for almost a year.
-# So it's better to avoid this combination, if possible.
-
-# Include the common macros for all compilers
-#
-include $(ACE_ROOT)/include/makeinclude/platform_tru64_pre.GNU
-
-# Include the macro file for osf1_4.x
-#
-include $(ACE_ROOT)/include/makeinclude/platform_osf1_4.x_g++.GNU
-
-# Include the common macros for all compilers
-#
-include $(ACE_ROOT)/include/makeinclude/platform_tru64_post.GNU
diff --git a/include/makeinclude/platform_tru64_kcc.GNU b/include/makeinclude/platform_tru64_kcc.GNU
deleted file mode 100644
index 0fe62b9c24d..00000000000
--- a/include/makeinclude/platform_tru64_kcc.GNU
+++ /dev/null
@@ -1,35 +0,0 @@
-# $Id$
-
-# This platform macros file is intended to work with
-# Digital UNIX using the KAI compiler.
-
-# Include the common macros for all compilers
-#
-include $(ACE_ROOT)/include/makeinclude/platform_tru64_pre.GNU
-
-# Include the macro file for osf1_4.x
-#
-include $(ACE_ROOT)/include/makeinclude/platform_osf1_4.x_kcc.GNU
-
-ifeq (4.,$(findstring 4.,$(ACE_DU_VERSION)))
- ifeq (4.0F,$(findstring 4.0F,$(ACE_DU_SUBVERSION)))
- # variable "" was declared but never referenced.
- # Get these from PTHREAD_THIS_CATCH_NP.
- WARNING_FLAGS += --diag_suppress 177
- endif # ! 4.0F
-
-else # ! 4.x
-ifeq (5.,$(findstring 5.,$(ACE_DU_VERSION)))
- # variable "" was declared but never referenced.
- # Get these from PTHREAD_THIS_CATCH_NP.
- WARNING_FLAGS += --diag_suppress 177
-
- # KCC makes a lot of these warnings from the C compiler.
- WARNING_FLAGS += --backend -msg_disable --backend nonstandcast,missingreturn,uninit1,ptrmismatch
-
-endif # 5.x
-endif # ! 4.x
-
-# Include the common macros for all compilers
-#
-include $(ACE_ROOT)/include/makeinclude/platform_tru64_post.GNU
diff --git a/include/makeinclude/platform_tru64_post.GNU b/include/makeinclude/platform_tru64_post.GNU
deleted file mode 100644
index 52ccdc93d1a..00000000000
--- a/include/makeinclude/platform_tru64_post.GNU
+++ /dev/null
@@ -1,32 +0,0 @@
-# $Id$
-
-# Common definitions which were in multiple files adding to the confusion
-
-# All versions of 4.x...Why doesn't Digital have 4.[a-z] ? That would be
-# more fun...
-
-ifeq (4.,$(findstring 4.,$(ACE_DU_VERSION)))
- ifeq (4.0D,$(findstring 4.0D,$(ACE_DU_SUBVERSION)))
- CFLAGS += -DDIGITAL_UNIX=0x40D
- else
- ifeq (4.0E,$(findstring 4.0E,$(ACE_DU_SUBVERSION)))
- CFLAGS += -DDIGITAL_UNIX=0x40E
- else
- ifeq (4.0F,$(findstring 4.0F,$(ACE_DU_SUBVERSION)))
- CFLAGS += -DDIGITAL_UNIX=0x40F
- else
- ifeq (4.0G,$(findstring 4.0G,$(ACE_DU_SUBVERSION)))
- CFLAGS += -DDIGITAL_UNIX=0x40F # can't have 0x40G
- else
- CFLAGS += -DDIGITAL_UNIX=0x400
- endif
- endif
- endif
- endif
-else # ! 4.x
- ifeq (V5.1,$(findstring V5.1,$(ACE_DU_SUBVERSION)))
- CFLAGS += -DDIGITAL_UNIX=0x510
- else
- CFLAGS += -DDIGITAL_UNIX=0x500
- endif
-endif # ! 5.x
diff --git a/include/makeinclude/platform_tru64_pre.GNU b/include/makeinclude/platform_tru64_pre.GNU
deleted file mode 100644
index 318ba855258..00000000000
--- a/include/makeinclude/platform_tru64_pre.GNU
+++ /dev/null
@@ -1,11 +0,0 @@
-# $Id$
-
-# Common definitions for all versions of Digital Unix.
-
-ifndef ACE_DU_VERSION
- ACE_DU_VERSION := $(shell uname -r)
-endif # ! ACE_DU_VERSION
-
-ifndef ACE_DU_SUBVERSION
- ACE_DU_SUBVERSION := $(shell /usr/sbin/sizer -v)
-endif # ! ACE_DU_SUBVERSION
diff --git a/include/makeinclude/platform_unixware_g++.GNU b/include/makeinclude/platform_unixware_g++.GNU
deleted file mode 100644
index af072940b9a..00000000000
--- a/include/makeinclude/platform_unixware_g++.GNU
+++ /dev/null
@@ -1,52 +0,0 @@
-# $Id$
-
-# UnixWare V2.2.1.2 with g++ version 2.7.2.2 *not* using Orbix
-
-#ifndef debug
-debug = 0
-#endif
-
-#ifndef exceptions
-exceptions = 1
-#endif
-
-#ifndef threads
-threads = 1
-#endif
-
-
-CC = gcc
-CXX = g++
-#CFLAGS += #-frepo -fexternal-templates
-#CFLAGS += -D__STDC__=0
-#CCFLAGS += $(CFLAGS) -fno-implicit-templates
-#CCFLAGS += $(CFLAGS) #-fexceptions #-fno-implicit-templates or -frepo
-
-
-CFLAGS += -W -Wall -Wpointer-arith -pipe #### -Winline
-CCFLAGS += $(CFLAGS) -fno-implicit-templates
-
-ACE_GNUG_ON_UNIXWARE = 1
-
-#ifeq ($(exceptions),1)
- CCFLAGS += -fexceptions
-#endif
-
-DCFLAGS += -g
-#DCFLAGS += -g
-
-OCCFLAGS += -O2
-
-DLD = $(CXX) -g
-LD = $(CXX)
-LIBS += -lsocket -lnsl -lgen -lthread
-PIC = -fpic
-AR = ar
-ARFLAGS = ruv
-RANLIB = /bin/true
-#SOFLAGS = -assert pure-text
-SOFLAGS = -shared
-# SOBUILD - compile into .so directly
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-# SOLINK = $(SOLINK.cc) -o $@ $(LDFLAGS) $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_unixware_udk.GNU b/include/makeinclude/platform_unixware_udk.GNU
deleted file mode 100644
index 60e85b62649..00000000000
--- a/include/makeinclude/platform_unixware_udk.GNU
+++ /dev/null
@@ -1,47 +0,0 @@
-# $Id$
-
-# UnixWare V2.2.1.2 with g++ version 2.7.2.2 *not* using Orbix
-
-#ifndef debug
-debug = 1
-#endif
-
-#ifndef exceptions
-exceptions = 1
-#endif
-
-#ifndef threads
-threads = 1
-#endif
-
-
-CC = CC
-CXX = CC
-
-CFLAGS += -Kthread
-
-#CFLAGS += -W -Wall -Wpointer-arith
-CCFLAGS += $(CFLAGS) -Tno_implicit,no_auto,none -Wf,--display_error_number
-
-#ifeq ($(exceptions),1)
-# CCFLAGS += -fexceptions
-#endif
-
-DCFLAGS += -g
-#DCFLAGS += -g
-
-OCCFLAGS += -O2
-
-DLD = $(CXX) -g
-LD = $(CXX)
-LIBS += -lsocket -lnsl -lgen
-PIC = -KPIC
-AR = ar
-ARFLAGS = ruv
-RANLIB = /bin/true
-#SOFLAGS = -assert pure-text
-SOFLAGS = -G
-# SOBUILD - compile into .so directly
-SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.so $<
-# SOLINK = $(SOLINK.cc) -o $@ $(LDFLAGS) $<
-PRELIB = @true
diff --git a/include/makeinclude/platform_vxworks5.x_diab.GNU b/include/makeinclude/platform_vxworks5.x_diab.GNU
deleted file mode 100644
index 1f350d844d5..00000000000
--- a/include/makeinclude/platform_vxworks5.x_diab.GNU
+++ /dev/null
@@ -1,153 +0,0 @@
-# $Id$
-# VxWorks with Diab 4.2a/4.3.
-
-#### Notes:
-#### 1) This file requires that the WIND_BASE and WIND_HOST_TYPE environment
-#### variables be set. If the target CPU is not a PPC604, then your CPU
-#### environment variable must be set. If perl is not on your path,
-#### you'll also need to set your PERL_PATH environment variable to
-#### the full path to perl.
-#### 2) If you have problems with munch output not being compilable
-#### because it contains identifiers with ".", e.g., ".cpp", in them:
-#### add a global variable or function to that .cpp file. See
-#### ace/IOStream_T.cpp for an explanation and example.
-#### 3) If you're building on a WIN32 host, be sure that $(CC) is on
-#### your PATH (or is a full pathname).
-
-VXWORKS = 1
-CROSS-COMPILE = 1
-
-ifndef debug
- debug = 1
-endif # ! debug
-ifndef optimize
- optimize = 1
-endif # ! optimize
-ifndef rtti
- rtti = 0
-endif # ! rtti
-
-shared_libs =
-static_libs = 1
-
-ifeq (,$(WIND_BASE))
- default:
- @ERROR: you must set your WIND_BASE environment variable
-endif # WIND_BASE
-
-ifeq (,$(WIND_HOST_TYPE))
- default:
- @ERROR: you must set your WIND_HOST_TYPE environment variable
-endif # WIND_HOST_TYPE
-
-HOST_DIR = $(WIND_BASE)/host/$(WIND_HOST_TYPE)
-
-ifeq (,$(PERL_PATH))
- PERL_PATH = perl
-endif # ! PERL_PATH
-
-#### BEGIN target CPU-specific settings
-
-#### This is kind of messy so that it can support multiple targets.
-#### You'll need to set CPU to a supported CPU using one of these
-#### methods (unless your CPU is a PowerPC 604):
-#### 1) create a $ACE_ROOT/include/makeinclude/platform_macros.GNU
-#### that contains something like:
-####
-#### WIND_BASE = /project/doc/pkg/wind
-#### WIND_HOST_TYPE = sun4-solaris2
-#### CPU = I80486
-####
-#### include $(ACE_ROOT)/include/makeinclude/platform_vxworks5.x_g++.GNU
-####
-#### 2) modify the code below to set CPU, or
-#### 3) set CPU on the command line, e.g., "make CPU=I80486"
-ifeq ($(CPU),)
- CPU = PPC604
-endif # default CPU
-
-ifeq ($(CPU),PPC604)
- BINXSYM_NAME = xsym
- CFLAGS += -tPPC604EH:tornado -DCPU=PPC604
- CCFLAGS +=
- TOOLENV = ppc
-else
-ifeq ($(CPU),PPC603)
- BINXSYM_NAME = xsym
- CFLAGS += -tPPC604EH:tornado -DCPU=PPC603
- CCFLAGS +=
- TOOLENV = ppc
-else
-ifeq ($(CPU),PPC860)
- BINXSYM_NAME = xsym
- CFLAGS += -tPPC860EH:tornado -DCPU=PPC860
- TOOLENV = ppc
-else
-ifeq ($(CPU),I80486)
- BINXSYM_NAME = xsymDec
- CFLAGS += -tI486EH:tornado -DCPU=I80486 #### not sure about that
- TOOLENV = 386
-else
-ifeq ($(CPU),I80386)
- BINXSYM_NAME = xsymDec
- CFLAGS += -tI386EH:tornado -DCPU=I80386 #### not sure about that
- TOOLENV = 386
-else
- BINXSYM_NAME = xsym
-endif # I80386
-endif # I80486
-endif # PPC860
-endif # PPC603
-endif # PPC604
-
-#### END target CPU-specific settings
-
-
-ifeq ($(shared_libs),1)
- SHARED_LIBS = 1
-endif
-ifeq ($(shared_libs_only),1)
- SHARED_LIBS = 1
-endif
-
-ifeq ($(SHARED_LIBS),1)
- ACELIB = -L./
- #### There's no difference between non-shared and shared object code.
- VSHDIR = .obj/
-endif # shared_libs
-
-ifeq ($(static_libs),1)
- AR = ar$(TOOLENV)
- ARFLAGS = rv
-else # ! static_libs
- AR = echo
- ARFLAGS = "build shared lib only"
-endif # ! static_libs
-
-CC = dplus
-CXX = $(CC)
-CFLAGS += -Xsmall-data=0 -Xsmall-const=0 -Xno-implicit-templates \
- -Xstrings-in-text=0 -tPPC750EN:tornado
-CCFLAGS += $(CFLAGS) -Xenum-is-int -Xbool-is-int
-ifeq (0,$(rtti))
- #### Don't use RTTI, because Tornado 1.0.x libraries don't support it.
- CCFLAGS += -DACE_LACKS_RTTI
-endif # rtti
-DCFLAGS += -g
-DLD = $(LD)
-INCLDIRS += -I$(WIND_BASE)/target/h
-LD = $(PERL_PATH) $(ACE_ROOT)/bin/ace_ld \
- -C $(COMPILE.c) -traditional -- \
- -m "ddump -M" -n nm$(TOOLENV) dld
-LDFLAGS += -r4
-#### WindRiver only recommends -O, not -O2, with some CPUs, including
-#### the i386 family. And -O2 causes some compilation failures.
-OCFLAGS += -XO
-PIC =
-
-#### ld can't handle INCLDIRS, so override LINK definitions.
-LINK.c = override
-LINK.c.override = $(LD) $(LDFLAGS) $(LDLIBS) $(LIBS)
-
-LINK.cc = override
-LINK.cc.override = $(LD)
diff --git a/include/makeinclude/platform_vxworks5.x_g++.GNU b/include/makeinclude/platform_vxworks5.x_g++.GNU
deleted file mode 100644
index c9ebfff01d6..00000000000
--- a/include/makeinclude/platform_vxworks5.x_g++.GNU
+++ /dev/null
@@ -1,346 +0,0 @@
-# platform_vxworks5.x_g++.GNU,v 4.83 2001/05/16 07:41:05 mk1 Exp
-#
-# VxWorks 5.3.1 and later with GNU g++ that is distributed by Wind River.
-
-#### Notes:
-#### 1) This file requires that the WIND_BASE and WIND_HOST_TYPE environment
-#### variables be set. If the target CPU is not a PPC604, then your CPU
-#### environment variable must be set. If perl is not on your path,
-#### you'll also need to set your PERL_PATH environment variable to
-#### the full path to perl.
-#### 2) If you have problems with munch output not being compilable
-#### because it contains identifiers with ".", e.g., ".cpp", in them:
-#### add a global variable or function to that .cpp file. See
-#### ace/IOStream_T.cpp for an explanation and example.
-#### 3) If you're building on a WIN32 host, be sure that $(CC) is on
-#### your PATH (or is a full pathname).
-
-VXWORKS = 1
-CROSS-COMPILE = 1
-
-ifndef exceptions
- exceptions = 0
-endif # ! exceptions
-ifndef debug
- debug = 1
-endif # ! debug
-ifndef optimize
- optimize = 1
-endif # ! optimize
-ifndef rtti
- rtti = 0
-endif # ! rtti
-
-shared_libs =
-static_libs = 1
-
-ifeq (,$(WIND_BASE))
- default:
- @ERROR: you must set your WIND_BASE environment variable
-endif # WIND_BASE
-
-ifeq (,$(WIND_HOST_TYPE))
- default:
- @ERROR: you must set your WIND_HOST_TYPE environment variable
-endif # WIND_HOST_TYPE
-
-HOST_DIR = $(WIND_BASE)/host/$(WIND_HOST_TYPE)
-
-ifeq (,$(findstring $(HOST_DIR)/bin,$(PATH)))
- #### Use := instead of += because += inserts a space.
- PATH := $(PATH):$(HOST_DIR)/bin
-endif # PATH
-
-ifeq (,$(PERL_PATH))
- PERL_PATH = perl
-endif # ! PERL_PATH
-
-
-#### BEGIN target CPU-specific settings
-
-#### This is kind of messy so that it can support multiple targets.
-#### You'll need to set CPU to a supported CPU using one of these
-#### methods (unless your CPU is a PowerPC 604):
-#### 1) create a $ACE_ROOT/include/makeinclude/platform_macros.GNU
-#### that contains something like:
-####
-#### WIND_BASE = /project/doc/pkg/wind
-#### WIND_HOST_TYPE = sun4-solaris2
-#### CPU = I80486
-####
-#### include $(ACE_ROOT)/include/makeinclude/platform_vxworks5.x_g++.GNU
-####
-#### 2) modify the code below to set CPU, or
-#### 3) set CPU on the command line, e.g., "make CPU=I80486"
-ifeq ($(CPU),)
- CPU = PPC604
-endif # default CPU
-
-ifeq ($(CPU),SH7700)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=SH7700 -m3
- CCFLAGS += -fno-implicit-templates
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/sh-wrs-vxworks/gcc-2.96
- TOOLENV = sh
-else
-ifeq ($(CPU),SH7700LE)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=SH7700 -m3 -ml
- CCFLAGS += -fno-implicit-templates
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/sh-wrs-vxworks/gcc-2.96
- TOOLENV = sh
-else
-ifeq ($(CPU),SH7750)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=SH7750 -m4
- CCFLAGS += -fno-implicit-templates
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/sh-wrs-vxworks/gcc-2.96
- TOOLENV = sh
-else
-ifeq ($(CPU),SH7750LE)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=SH7750 -m4 -ml -mspace
- CCFLAGS += -fno-implicit-templates
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/sh-wrs-vxworks/gcc-2.96
- TOOLENV = sh
-else
-ifeq ($(CPU),PPC403)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=PPC403 -mcpu=403
- CCFLAGS += -fno-implicit-templates
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/powerpc-wrs-vxworks/cygnus-2.7.2-960126
- TOOLENV = ppc
-else
-ifeq ($(CPU),PPC604)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=PPC604
- CCFLAGS += -fno-implicit-templates -mlongcall
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/powerpc-wrs-vxworks/cygnus-2.7.2-960126
- TOOLENV = ppc
-else
-ifeq ($(CPU),PPC603)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=PPC603
- CCFLAGS += -fno-implicit-templates -mlongcall
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/powerpc-wrs-vxworks/cygnus-2.7.2-960126
- TOOLENV = ppc
-else
-ifeq ($(CPU),PPC860)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=PPC860 -mcpu=860
- CCFLAGS += -fno-implicit-templates -mlongcal
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/powerpc-wrs-vxworks/cygnus-2.7.2-960126
- TOOLENV = ppc
-else
-ifeq ($(CPU),SIMNT)
- BINXSYM_NAME = xsym
- CFLAGS += -U__WINNT -UWIN32 -U__WINNT__ -UWINNT -U__MINGW32__ -U_WIN32 \
- -U__WIN32 -U__WIN32__ -U__WIN32 -B$(GCCLIB_DIR) -DCPU=SIMNT
- CCFLAGS += -fno-implicit-templates
- GCCLIB_DIR = \
- $(HOST_DIR)/lib/gcc-lib/powerpc-wrs-vxworks/cygnus-2.7.2-960126
- TOOLENV = simpc
-else
-ifeq ($(CPU),PENTIUMPRO)
- BINXSYM_NAME = xsymDec
- CFLAGS += -DCPU=PENTIUMPRO
- TOOLENV = 386
-else
-ifeq ($(CPU),PENTIUM)
- BINXSYM_NAME = xsymDec
- CFLAGS += -DCPU=PENTIUM
- TOOLENV = 386
-else
-ifeq ($(CPU),I80486)
- #### Note: -fno-implicit-templates doesn't seem to work well with g++
- #### cygnus-2.7.2-960126 for pc486 target. Some member functions don't
- #### get instantiated. Wind River knows about this problem (SPR 8483).
- #### -fno-implicit-templates should be supported on Tornado II, so
- #### it is added for that platform below.
- BINXSYM_NAME = xsymDec
- CFLAGS += -DCPU=I80486 -m486
- TOOLENV = 386
-else
-ifeq ($(CPU),I80386)
- BINXSYM_NAME = xsymDec
- CFLAGS += -DCPU=I80386
- TOOLENV = 386
-else
-ifeq ($(CPU),SIMSPARCSOLARIS)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=SIMSPARCSOLARIS
- CCFLAGS += -fno-implicit-templates
- GCCLIB_DIR = \
- $(HOST_DIR)/lib/gcc-lib/sparc-sun-solaris2.5.1/cygnus-2.7.2-960126
- TOOLENV = simso
-else
-ifeq ($(CPU),SPARC)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=SPARC
- CCFLAGS += -fno-implicit-templates
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/sparc-wrs-vxworks/cygnus-2.7.2-960126
- TOOLENV = sparc
-else
-ifeq ($(CPU),MC68020)
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=MC68020 -m68020 -m68881
- CCFLAGS += -fno-implicit-templates -DACE_VXWORKS=0x540
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/m68k-wrs-vxworks/cygnus-2.7.2-960126
- TOOLENV = 68k
-else
-ifeq ($(CPU),MC68030)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=MC68030 -m68030 -m68881
- CCFLAGS += -fno-implicit-templates -DACE_VXWORKS=0x540
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/m68k-wrs-vxworks/cygnus-2.7.2-960126
- TOOLENV = 68k
-else
-ifeq ($(CPU),MC68040)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=MC68040 -m68040 -m68881
- CCFLAGS += -fno-implicit-templates -DACE_VXWORKS=0x540
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/m68k-wrs-vxworks/cygnus-2.7.2-960126
- TOOLENV = 68k
-else
-ifeq ($(CPU),MC68060)
- BINXSYM_NAME = xsym
- CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=MC68060 -m68040 -m68881
- CCFLAGS += -fno-implicit-templates -DACE_VXWORKS=0x540
- GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/m68k-wrs-vxworks/cygnus-2.7.2-960126
- TOOLENV = 68k
-else
- BINXSYM_NAME = xsym
- CCFLAGS += -fno-implicit-templates
-endif # MC68060
-endif # MC68040
-endif # MC68030
-endif # MC68020
-endif # SPARC
-endif # SIMSPARCSOLARIS
-endif # I80386
-endif # I80486
-endif # PENTIUM
-endif # PENTIUMPRO
-endif # SIMNT
-endif # PPC860
-endif # PPC603
-endif # PPC604
-endif # PPC403
-endif # SH7750LE
-endif # SH7750
-endif # SH7700LE
-endif # SH7700
-
-#### END target CPU-specific settings
-
-
-#### Set up Win32 vs. Unix host specific macros.
-ifeq ($(WIND_HOST_TYPE),x86-win32)
- CXX = cc$(TOOLENV)
-else
-ifeq ($(TOOLENV),simso)
- #### vxsim needs to use ccsimso, not g++simso.
- CXX = cc$(TOOLENV)
-else
- CXX = g++$(TOOLENV)
- PIPE_OPT = -pipe
-endif # simso
-endif # x86-win32
-
-ifeq ($(shared_libs),1)
- SHARED_LIBS = 1
-endif
-ifeq ($(shared_libs_only),1)
- SHARED_LIBS = 1
-endif
-
-ifeq ($(SHARED_LIBS),1)
- ACELIB = -L./
- #### There's no difference between non-shared and shared object code.
- VSHDIR = .obj/
-endif # shared_libs
-
-ifeq ($(static_libs),1)
- AR = ar$(TOOLENV)
- ARFLAGS = rv
-else # ! static_libs
- AR = echo
- ARFLAGS = "build shared lib only"
-endif # ! static_libs
-
-CC = cc$(TOOLENV)
-
-#### Tornado II uses egcs
-ifndef ACE_CC
- ifndef COMSPEC
- ifdef ComSpec
- #### ACE+TAO use COMSPEC, but ComSpec is defined on some WIN32's.
- COMSPEC = $(ComSpec)
- endif # ComSpec
- endif # ! COMPSPEC
-
- ifdef COMSPEC
- #### Assume we're on a WIN32 host. Further, assume that $(CC)
- #### is on the user's PATH.
- ACE_CC := $(CC)
- else # ! COMSPEC
- #### Don't use this on WIN32 host, because the shell there seems
- #### to have trouble exec'ing sed.
- ACE_CC := $(shell PATH=${PATH} type $(CC) | sed -e 's/.* is //')
- endif # ! COMSPEC
-endif # ! ACE_CC
-ifndef ACE_CC_VERSION
- ACE_CC_VERSION := $(shell $(ACE_CC) --version)
-endif # ! ACE_CC_VERSION
-ifeq (egcs,$(findstring egcs,$(ACE_CC_VERSION)))
- ACE_HAS_GNUG_PRE_2_8 := 0
- CFLAGS += -DACE_VXWORKS=0x540
- ifeq ($(TOOLENV),386)
- #### Tornado II should support -fno-implicit-templates for pc486.
- CCFLAGS += -fno-implicit-templates
- endif # 386
- ifneq (1,$(exceptions))
- #### With exceptions, this is applied in wrapper_macros.GNU.
- #### Without, we do it here.
- CFLAGS += -Wno-uninitialized
- endif # ! exceptions
-endif # egcs
-
-CFLAGS += -D_REENTRANT -ansi -fno-builtin -fno-defer-pop \
- -fvolatile -nostdinc -nostdlib $(PIPE_OPT) -W -Wall
-CCFLAGS += $(CFLAGS)
-ifeq (0,$(rtti))
- #### Don't use RTTI even with egcs, because Tornado 1.0.x libraries
- #### don't support it.
- CCFLAGS += -fno-rtti -DACE_LACKS_RTTI
-endif # rtti
-DCFLAGS += -g
-DLD = $(LD)
-INCLDIRS += -I$(WIND_BASE)/target/h
-LD = $(PERL_PATH) $(ACE_ROOT)/bin/ace_ld \
- -C $(COMPILE.c) -traditional -- \
- -m munch -n nm$(TOOLENV) ld$(TOOLENV)
-LDFLAGS += -X -r
-#### WindRiver only recommends -O, not -O2, with some CPUs, including
-#### the i386 family. And -O2 causes some compilation failures.
-OCFLAGS += -O
-PIC =
-
-
-#### ld can't handle INCLDIRS, so override LINK definitions.
-LINK.c = override
-LINK.c.override = $(LD) $(LDFLAGS) $(LDLIBS) $(LIBS)
-
-LINK.cc = override
-LINK.cc.override = $(LD)
-
-
-#### To extract the symbol table from each executable, uncomment the POSTLINK
-#### definition below.
-## POSTLINK = ; VX_CPU_FAMILY=$(TOOLENV) $(BINXSYM_NAME) < $@ > $@.sym
-
-ifeq (1,$(exceptions))
- #### The VxWorks libraries don't support exceptions. And, exceptions
- #### give the (Tornado II) compiler fits, e.g., with
- #### ACE_wrappers/TAO/tao/IORManipulation.cpp.
- CONFIGURATION_ERROR: exception_handling_is_not_supported_on_VxWorks!
-endif # exceptions
diff --git a/include/makeinclude/platform_vxworks5.x_ghs.GNU b/include/makeinclude/platform_vxworks5.x_ghs.GNU
deleted file mode 100644
index 0fdf04dd0c3..00000000000
--- a/include/makeinclude/platform_vxworks5.x_ghs.GNU
+++ /dev/null
@@ -1,99 +0,0 @@
-# $Id$
-#
-# VxWorks 5.3.1 and later with Green Hills 1.8.8 and later.
-
-#### Notes:
-#### 1) This file requires that your PATH be set to include the location
-#### of the Green Hills executables. And, it usually requires that
-#### WIND_BASE and WIND_HOST_TYPE be set.
-####
-#### 2) If your CPU is not a ppc, you'll need to set your CPU environment
-#### variable.
-####
-#### 3) You'll probably need to set your GHS environment variable to the
-#### location of your Green Hills executables.
-####
-#### 4) For x86 target, the ghsblin.o, ghsmath.o, and objghsvx/*.o
-#### object files were added to libedgnoe.a using this command:
-####
-#### $(WIND_BASE)/host/$(WIND_HOST_TYPE)/bin/ar386 rsv libedgnoe.a \
-#### ghs*.o objghsvx/*.o
-####
-#### If you don't do that, you'll have to add the individual .o files
-#### to LIBS below.
-####
-#### Here's an example platform_macros.GNU file:
-####
-#### WIND_BASE = /project/doc/pkg/wind
-#### WIND_HOST_TYPE = sun4-solaris2
-####
-#### ifeq (,$(findstring /project/doc/pkg/wind/green,$PATH))
-#### PATH +=:/project/doc/pkg/wind/green
-#### endif # PATH
-####
-#### CPU = 86
-#### GHSROOT = /project/doc/pkg/wind/green
-#### include $(ACE_ROOT)/include/makeinclude/platform_vxworks5.x_ghs.GNU
-
-VXWORKS = 1
-CROSS-COMPILE = 1
-
-debug = 1
-optimize = 1
-shared_libs =
-static_libs = 1
-
-
-#### CPU type
-ifndef CPU
- CPU = ppc
-endif # CPU
-
-#### Green Hills location, and target-specific definitions.
-ifeq ($(CPU),86)
- # With GHS' ax, ld386 complains that it can't read the
- # archive symbol table.
- ifndef GHSROOT
- GHSROOT = /project/doc/pkg/wind/green
- endif
- ifndef GHS
- GHS = $(GHSROOT)/vx$(CPU)
- endif # GHS
- AR = $(WIND_BASE)/host/$(WIND_HOST_TYPE)/bin/ar386
- ARFLAGS = rsu
-
- #### For GHS 1.8.8:
- #### LIBS += $(GHS)/libedgnoe.a
-else
-ifeq ($(CPU),ppc)
- ifndef GHSROOT
- GHSROOT = /appl/newgreen
- endif
- ifndef GHS
- GHS = $(GHSROOT)/vx$(CPU)603
- endif # GHS
- AR = ax
- ARFLAGS = cr
-
- #### For GHS 1.8.8:
- #### LIBS += $(GHS)/ghsbltin.o $(GHS)/ghsmath.o
-endif # ppc
-endif # CPU
-
-#### For GHS 1.8.9:
-LIBS += $(GHS)/libscnoe.a $(GHS)/libsedgnoe.a $(GHS)/liblockinit_sc.o $(GHSROOT)/$(CPU)/libarch.a
-
-CC = cxvx$(CPU)
-CXX = $(CC)
-CCFLAGS += $(CFLAGS) --no_rtti -tnone -Dghs -I$(GHSROOT)/vxworks/include -I$(WIND_BASE)/target/h
-DCFLAGS += -g
-SOFLAGS += -shared
-DLD = $(CXX)
-LD = $(CXX)
-LDFLAGS = --no_auto_instantiation
-OCFLAGS += -OL -OM
-PIC =
-
-ifeq (1, $(exceptions))
- CCFLAGS += --stdle --exceptions
-endif # exceptions
diff --git a/include/makeinclude/recurse.bor b/include/makeinclude/recurse.bor
deleted file mode 100644
index 8ef992d43e9..00000000000
--- a/include/makeinclude/recurse.bor
+++ /dev/null
@@ -1,211 +0,0 @@
-#
-# Macros for recursive invocations of make
-#
-# Inputs:
-# ~~~~~~~
-# DIRS - list of sub-directories to invoke make in
-# MAKEFILES - list of makefiles to be run
-# NAMES - list of names of targets to be built
-#
-
-!include <$(ACE_ROOT)\include\makeinclude\make_flags.bor>
-
-# We want to avoid all of this recursion if this is a multi-target sub-make.
-!ifndef TARGET_NAME
-# This is not a multi-target sub-make ...
-
-!ifdef DIRS
-
-all: $(DIRS)
-
-# We use an extra level of make recursion to ensure the current directory is
-# automatically restored when the sub-directory is finished.
-$(DIRS):
- @echo Entering directory $<
- @$(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f&&!
-all:
- @cd $<
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -fMakefile.bor
-!
-
-# This ugliness is to remove extra spaces from between the items in the list.
-DIRS_CLEAN_1 = $(DIRS) $(BLANK_SPACE)
-DIRS_CLEAN_2 = $(DIRS_CLEAN_1: =%)
-DIRS_CLEAN_3 = $(DIRS_CLEAN_2:%%=%)
-DIRS_CLEAN_4 = $(DIRS_CLEAN_3:%%=%)
-DIRS_CLEAN = $(DIRS_CLEAN_4:%=.Clean )
-
-clean: $(DIRS_CLEAN)
-
-# We use an extra level of make recursion to ensure the current directory is
-# automatically restored when the sub-directory is finished.
-$(DIRS_CLEAN):
- @echo Cleaning directory $(<:.Clean=)
- @$(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f&&!
-all:
- @cd $(<:.Clean=)
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -fMakefile.bor clean
-!
-
-# This ugliness is to remove extra spaces from between the items in the list.
-DIRS_REALCLEAN_1 = $(DIRS) $(BLANK_SPACE)
-DIRS_REALCLEAN_2 = $(DIRS_REALCLEAN_1: =%)
-DIRS_REALCLEAN_3 = $(DIRS_REALCLEAN_2:%%=%)
-DIRS_REALCLEAN_4 = $(DIRS_REALCLEAN_3:%%=%)
-DIRS_REALCLEAN = $(DIRS_REALCLEAN_4:%=.RealClean )
-
-realclean: $(DIRS_REALCLEAN)
-
-# We use an extra level of make recursion to ensure the current directory is
-# automatically restored when the sub-directory is finished.
-$(DIRS_REALCLEAN):
- @echo Cleaning directory $(<:.RealClean=)
- @$(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f&&!
-all:
- @cd $(<:.RealClean=)
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -fMakefile.bor realclean
-!
-
-# This ugliness is to remove extra spaces from between the items in the list.
-DIRS_INSTALL_1 = $(DIRS) $(BLANK_SPACE)
-DIRS_INSTALL_2 = $(DIRS_INSTALL_1: =%)
-DIRS_INSTALL_3 = $(DIRS_INSTALL_2:%%=%)
-DIRS_INSTALL_4 = $(DIRS_INSTALL_3:%%=%)
-DIRS_INSTALL = $(DIRS_INSTALL_4:%=.Install )
-
-install: $(DIRS_INSTALL)
-
-# We use an extra level of make recursion to ensure the current directory is
-# automatically restored when the sub-directory is finished.
-$(DIRS_INSTALL):
- @echo Installing directory $(<:.Install=)
- @$(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f&&!
-all:
- @cd $(<:.Install=)
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -fMakefile.bor install
-!
-
-!endif
-
-!ifdef MAKEFILES
-
-# This ugliness is to remove extra spaces from between the items in the list.
-MAKEFILES_ALL_1 = $(MAKEFILES) $(BLANK_SPACE)
-MAKEFILES_ALL_2 = $(MAKEFILES_ALL_1: =%)
-MAKEFILES_ALL_3 = $(MAKEFILES_ALL_2:%%=%)
-MAKEFILES_ALL_4 = $(MAKEFILES_ALL_3:%%=%)
-MAKEFILES_ALL = $(MAKEFILES_ALL_4:%=.All )
-
-all: $(MAKEFILES_ALL)
-
-$(MAKEFILES_ALL):
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f$(<:.All=)
-
-# This ugliness is to remove extra spaces from between the items in the list.
-MAKEFILES_CLEAN_1 = $(MAKEFILES) $(BLANK_SPACE)
-MAKEFILES_CLEAN_2 = $(MAKEFILES_CLEAN_1: =%)
-MAKEFILES_CLEAN_3 = $(MAKEFILES_CLEAN_2:%%=%)
-MAKEFILES_CLEAN_4 = $(MAKEFILES_CLEAN_3:%%=%)
-MAKEFILES_CLEAN = $(MAKEFILES_CLEAN_4:%=.Clean )
-
-clean: $(MAKEFILES_CLEAN)
-
-$(MAKEFILES_CLEAN):
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f$(<:.Clean=) clean
-
-# This ugliness is to remove extra spaces from between the items in the list.
-MAKEFILES_REALCLEAN_1 = $(MAKEFILES) $(BLANK_SPACE)
-MAKEFILES_REALCLEAN_2 = $(MAKEFILES_REALCLEAN_1: =%)
-MAKEFILES_REALCLEAN_3 = $(MAKEFILES_REALCLEAN_2:%%=%)
-MAKEFILES_REALCLEAN_4 = $(MAKEFILES_REALCLEAN_3:%%=%)
-MAKEFILES_REALCLEAN = $(MAKEFILES_REALCLEAN_4:%=.RealClean )
-
-realclean: $(MAKEFILES_REALCLEAN)
-
-$(MAKEFILES_REALCLEAN):
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f$(<:.RealClean=) realclean
-
-# This ugliness is to remove extra spaces from between the items in the list.
-MAKEFILES_INSTALL_1 = $(MAKEFILES) $(BLANK_SPACE)
-MAKEFILES_INSTALL_2 = $(MAKEFILES_INSTALL_1: =%)
-MAKEFILES_INSTALL_3 = $(MAKEFILES_INSTALL_2:%%=%)
-MAKEFILES_INSTALL_4 = $(MAKEFILES_INSTALL_3:%%=%)
-MAKEFILES_INSTALL = $(MAKEFILES_INSTALL_4:%=.Install )
-
-install: $(MAKEFILES_INSTALL)
-
-$(MAKEFILES_INSTALL):
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f$(<:.Install=) install
-
-!endif
-
-!ifdef NAMES
-
-# This macro may be defined in the environment (e.g. the nightly build
-# scripts) so we need to remove it.
-!undef NAME
-
-# Multi-target recursion assumes Makefile.bor. For multiple targets in
-# makefiles with other names, you must set the MAKEFILE variable to the
-# name of the file.
-!ifndef MAKEFILE
-MAKEFILE = Makefile.bor
-!endif
-
-# This ugliness is to remove extra spaces from between the items in the list.
-NAMES_ALL_1 = $(NAMES) $(BLANK_SPACE)
-NAMES_ALL_2 = $(NAMES_ALL_1: =%)
-NAMES_ALL_3 = $(NAMES_ALL_2:%%=%)
-NAMES_ALL_4 = $(NAMES_ALL_3:%%=%)
-NAMES_ALL = $(NAMES_ALL_4:%=.All )
-
-all: $(NAMES_ALL)
-
-$(NAMES_ALL):
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f$(MAKEFILE) -DTARGET_NAME=$(<:.All=)
-
-# This ugliness is to remove extra spaces from between the items in the list.
-NAMES_CLEAN_1 = $(NAMES) $(BLANK_SPACE)
-NAMES_CLEAN_2 = $(NAMES_CLEAN_1: =%)
-NAMES_CLEAN_3 = $(NAMES_CLEAN_2:%%=%)
-NAMES_CLEAN_4 = $(NAMES_CLEAN_3:%%=%)
-NAMES_CLEAN = $(NAMES_CLEAN_4:%=.Clean )
-
-clean: $(NAMES_CLEAN)
-
-$(NAMES_CLEAN):
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f$(MAKEFILE) -DTARGET_NAME=$(<:.Clean=) clean
-
-# This ugliness is to remove extra spaces from between the items in the list.
-NAMES_REALCLEAN_1 = $(NAMES) $(BLANK_SPACE)
-NAMES_REALCLEAN_2 = $(NAMES_REALCLEAN_1: =%)
-NAMES_REALCLEAN_3 = $(NAMES_REALCLEAN_2:%%=%)
-NAMES_REALCLEAN_4 = $(NAMES_REALCLEAN_3:%%=%)
-NAMES_REALCLEAN = $(NAMES_REALCLEAN_4:%=.RealClean )
-
-realclean: $(NAMES_REALCLEAN)
-
-$(NAMES_REALCLEAN):
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f$(MAKEFILE) -DTARGET_NAME=$(<:.RealClean=) realclean
-
-# This ugliness is to remove extra spaces from between the items in the list.
-NAMES_INSTALL_1 = $(NAMES) $(BLANK_SPACE)
-NAMES_INSTALL_2 = $(NAMES_INSTALL_1: =%)
-NAMES_INSTALL_3 = $(NAMES_INSTALL_2:%%=%)
-NAMES_INSTALL_4 = $(NAMES_INSTALL_3:%%=%)
-NAMES_INSTALL = $(NAMES_INSTALL_4:%=.Install )
-
-install: $(NAMES_INSTALL)
-
-$(NAMES_INSTALL):
- $(MAKE) -$(MAKEFLAGS) $(MAKE_FLAGS) -f$(MAKEFILE) -DTARGET_NAME=$(<:.Install=) install
-
-!endif
-
-!else
-# This is a multi-target sub-make ...
-
-# Set the name of the current target.
-NAME = $(TARGET_NAME)
-
-!endif
diff --git a/include/makeinclude/rules.bin.GNU b/include/makeinclude/rules.bin.GNU
deleted file mode 100644
index a15e9d9f373..00000000000
--- a/include/makeinclude/rules.bin.GNU
+++ /dev/null
@@ -1,29 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Build binaries
-# GNU version
-# Requires GNU make
-#----------------------------------------------------------------------------
-
-VOBJS = \
- $(subst .cpp,.$(OBJEXT),$(foreach file,$(SRC),$(VDIR)$(notdir $(file))))
-
-ifeq ($(CHORUSLINK),true)
-$(BIN): %: $(VDIR)%.$(OBJEXT) $(VOBJS)
- $(LINK.cc) $(CC_OUTPUT_FLAG) $@ $^ $(VLDLIBS) $(LDFLAGS) $(POSTLINK)
-# $(MERGEDIR)/dtool/mkctors $@.xp.o > $@.ct.s
-# $(CXX) -c $@.ct.s
-# $(RM) $@.ct.s
-# $(LD) $(LDOPTIONS) -e _start -o $@ $(MERGEDIR)/lib/crt/crth.u.o $(MERGEDIR)/lib/crt/crt0.o $(MERGEDIR)/lib/crt/crti.o $@.xp.o $@.ct.o $(MERGEDIR)/lib/crt/crtn.o -dn -T $(MERGEDIR)/src/act/slots/act_u.ld
-# $(RM) $@.xp.o
-# $(RM) $@.ct.o
-else
-ifeq (1,$(using_aix_vacpp))
-$(BIN): %: %.icc $(SRC)
- vacbld_r $< -severitylevel=warning
-else
-$(BIN): %: $(VDIR)%.$(OBJEXT) $(VOBJS)
- $(LINK.cc) $(LDFLAGS) $(CC_OUTPUT_FLAG) $@ $^ $(VLDLIBS) $(POSTLINK)
-endif
-endif
diff --git a/include/makeinclude/rules.common.GNU b/include/makeinclude/rules.common.GNU
deleted file mode 100644
index 84fe0c26ab6..00000000000
--- a/include/makeinclude/rules.common.GNU
+++ /dev/null
@@ -1,17 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Common targets
-#----------------------------------------------------------------------------
-
-all: all.nested all.local
-debug: debug.nested debug.local
-profile: profile.nested profile.local
-install: install.nested install.local
-deinstall: deinstall.nested deinstall.local
-clean: clean.nested clean.local
-realclean: realclean.nested realclean.local
-clobber: clobber.nested clobber.local
-depend: depend.nested depend.local
-rcs_info: rcs_info.nested rcs_info.local
-idl_stubs: idl_stubs.nested idl_stubs.local
diff --git a/include/makeinclude/rules.lib.GNU b/include/makeinclude/rules.lib.GNU
deleted file mode 100644
index 13f8d41f0f7..00000000000
--- a/include/makeinclude/rules.lib.GNU
+++ /dev/null
@@ -1,171 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Build libraries (i.e., contain no binary executables)
-# GNU version
-# Requires GNU make
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# The following targets arrange to build both unshared and shared libraries
-#----------------------------------------------------------------------------
-
-VSHLIB = $(SHLIB:%.$(SOEXT)=%$(VAR).$(SOEXT))
-ifdef SHLIBA
-VSHLIBA = $(SHLIBA:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
-endif
-
-VLOBJS = $(subst .c,.$(OBJEXT), \
- $(subst .cpp,.$(OBJEXT), \
- $(foreach file,$(LSRC),$(VDIR)$(notdir $(file)))))
-
-LSRC += $(LSRC2)
-ifdef PRELIB
-ifdef PRELIB_USES_OBJ_ONLY
- VSHOBJS = $(subst .c,.$(OBJEXT), \
- $(subst .cpp,.$(OBJEXT), \
- $(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))))
-else # ! PRELIB_USES_OBJ_ONLY
- VSHOBJS = $(subst .c,.$(OBJEXT), \
- $(subst .cpp,.$(OBJEXT), \
- $(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))))
-endif # ! PRELIB_USES_OBJ_ONLY
- VSHOBJS1 = $(VSHOBJS)
-else # ! PRELIB
- VSHOBJS = $(subst .c,.$(OBJEXT), \
- $(subst .cpp,.$(OBJEXT), \
- $(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))))
- VSHOBJS1 = $(subst .c,.$(OBJEXT), \
- $(subst .cpp,.$(OBJEXT), \
- $(foreach file,$(LSRC),$(VSHDIR)$(notdir $(file)))))
-endif # ! PRELIB
-
-# Comment out for now...
-# $(DEFS:%=$(INSINC)/%) \
-
-ifdef static_libs
- INSTALL += $(VLIB:%.$(LIBEXT)=$(INSLIB)/%.$(LIBEXT))
-endif # static_libs
-
-ifdef shared_libs
- INSTALL += \
- $(VSHLIB:%.$(SOEXT)=$(INSLIB)/%.$(SOEXT)$(ACE_LDSO_Version_Number))
-ifdef SHLIBA
- INSTALL += $(VSHLIBA:%=$(INSLIB)/%)
-endif
-endif # shared_libs
-
-ifdef PRELIB
-# Unfortunately, gcc has to do a link of all of the objects (during which
-# it may decide to recompile some of the objects), before we can safely build
-# any libraries or shared objects. Comment this line if no shared
-# libraries or objects are used.
-#
-# I have no idea why this dependency has any effect similar to what is
-# described above, so I will comment it out. This eliminates the VERY
-# annoying messages from make such as:
-# make: Circular .shobj/interp.so <- libcorba.so dependency dropped.
-#$(VSHOBJS): $(VSHLIB)
-endif
-
-# Comment these lines out if you want to build both *.a and *.so libraries...
-#$(VSHLIB): $(VSHOBJS)
-#ifdef PRELIB
-# $(PRELIB)
-#endif
-# $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(LDFLAGS) $(VSHDIR)*.$(OBJEXT)
-
-# Uncomment the remaining lines if you want to build both *.a and *.so libraries...
-VLIB = $(LIB:%.$(LIBEXT)=%$(VAR).$(LIBEXT))
-
-$(VLIB): $(VLOBJS)
-
-ifeq (1,$(repo))
- ifneq (,$(ACELIB))
- #### With repo, link in all of the ace object files to the lib.
- #### This avoids multiple instantiations. We haven't found it to
- #### be necessary with shared libs, so just do it for static libs.
- vpath %.$(OBJEXT) $(ACE_ROOT)/ace/$(VDIR)
-
- $(VLIB): $(ACE_ROOT)/ace/$(VDIR)*.$(OBJEXT)
- endif # ! ACELIB
-endif # repo
-
-ifdef PRELIB
- $(PRELIB)
-endif
-ifeq (1,$(ace_lib_prelink))
- #### Attempt a link (which will fail), to add template instantiations
- #### to lib files, for example.
- -$(LINK.cc) $(LINK_OUTPUT_FLAG) ace-templ_inst $? $(LDFLAGS) $(ACE_NUL_STDERR)
-endif # ace_lib_prelink
- $(AR) $(ARFLAGS) $@ $?
-ifdef ibmcxx_build
-# This is required to get AIX IBM C/C++ to instantiate and compile the needed
-# templates.
- if test -s ./$(TEMPINCDIR)/*.C; \
- then \
- $(LINK.cc) $(LINK_OUTPUT_FLAG) dummy $(LDFLAGS) $(ACE_ROOT)/etc/xlc_dummy.cpp $^ $(ACE_SHLIBS) $(LIBS); \
- $(RM) dummy; \
- $(AR) $(ARFLAGS) $@ tempinc/*.$(OBJEXT); \
- fi
-endif
- -chmod a+r $@
-ifneq (,$(RANLIB))
- -$(RANLIB) $@
-endif # RANLIB
-
-# Note that if you don't want to build shared libraries, just remove the $(VSHOBJS)
-ifdef SHLIBBUILD
-$(VSHLIB): $(VSHOBJS)
-else
-ifeq (1,$(aix_build))
-$(VSHLIB): shr.o
- $(AR) $(ARFLAGS) $@ $?
- -chmod a+rx $@
-ifneq (,$(RANLIB))
- -$(RANLIB) $@
-endif # RANLIB
- $(RM) shr.o
-
-shr.o: $(VSHOBJS1)
-else
-$(VSHLIB): $(VSHOBJS1)
-endif # aix_build
-endif # SHLIBBUILD
-ifdef PRELIB
- $(PRELIB)
-endif
-ifdef ibmcxx_build
-# This is required to get AIX IBM C/C++ to instantiate and compile the needed
-# templates before building the library.
- if test -s ./$(TEMPINCDIR)/*.C; \
- then \
- $(LINK.cc) $(LINK_OUTPUT_FLAG) dummy $(LDFLAGS) $(ACE_ROOT)/etc/xlc_dummy.cpp $^ $(ACE_SHLIBS) $(LIBS); \
- $(RM) dummy; \
- fi
-endif
-ifdef SHLIBBUILD
- $(SHLIBBUILD)
-else
-ifdef ibmcxx_build
- if test -s ./$(TEMPINCDIR)/*.$(OBJEXT); \
- then \
- $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(VSHOBJS1) $(TEMPINCDIR)/*.$(OBJEXT) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS); \
- else \
- $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(VSHOBJS1) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS); \
- fi
-else
-ifeq (1,$(ace_lib_prelink))
- #### Attempt a link (which will fail), to add template instantiations
- #### to lib files, for example.
- -$(LINK.cc) $(LINK_OUTPUT_FLAG) ace-templ_inst $(VSHOBJS1) $(LDFLAGS) $(ACE_NUL_STDERR)
-endif # ace_lib_prelink
-ifeq ($(split),1)
- $(SHR_FILTER) $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(VSHDIR)/*.$(OBJEXT) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS)
-else
- $(SHR_FILTER) $(SOLINK.cc) $(SO_OUTPUT_FLAG) $@ $(VSHOBJS1) $(LDFLAGS) $(ACE_SHLIBS) $(LIBS)
-endif
-endif
- -chmod a+rx $@
-endif
diff --git a/include/makeinclude/rules.local.GNU b/include/makeinclude/rules.local.GNU
deleted file mode 100644
index b10ded1fe8f..00000000000
--- a/include/makeinclude/rules.local.GNU
+++ /dev/null
@@ -1,320 +0,0 @@
-# -*- Makefile -*-
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Local targets
-# GNU version
-# Requires GNU make
-#----------------------------------------------------------------------------
-
-#### TEMPLATE_REPOSITORY can be set in individual platform files
-#### to create template repository directories. See
-#### platform_sunos5_sunc++.GNU for an example.
-OBJDIRS += $(TEMPLATE_REPOSITORY)
-
-all.local: $(split_target) build.objdirs build.local install.local
-
-#----------------------------------------------------------------------------
-# C/C++ compilation targets
-#----------------------------------------------------------------------------
-
-build.local: $(BUILD)
-
-# Set up the suffixes for C++ and IDL.
-.SUFFIXES:
-.SUFFIXES: .cpp .cc .C .idl $(SUFFIXES)
-
-ifndef TAO_ROOT
-# and here's how to compile C++ files from the IDL file.
-# only ONE of these rules will be run at make-time,
-
-# The rules are only used if TAO_ROOT is not defined to avoid
-# conflicts with a similar rule in TAO.
-
-%S.cpp: %.idl
- $(IDL) --version $(IDLFLAGS) $<
-
-%C.cpp: %.idl
- $(IDL) --version $(IDLFLAGS) $<
-
-%.hh: %.idl
- $(IDL) --version $(IDLFLAGS) $<
-endif # TAO_ROOT
-
-# C++ related targets
-
-ifeq ($(OS),"Windows_NT")
-$(VDIR)%.obj: %.c
- $(COMPILE.c) $(CC_OUTPUT_FLAG) $@ $<
- ${MVCMD}
-
-$(VDIR)%.obj: %.cpp
- $(COMPILE.cc) $(CC_OUTPUT_FLAG) $@ $<
- ${MVCMD}
-else
-$(VDIR)%.o: %.c $(VDIR).creation_stamp
- $(COMPILE.c) $(CC_OUTPUT_FLAG) $@ $<
- ${MVCMD}
-
-$(VDIR)%.o: %.cpp $(VDIR).creation_stamp
- $(COMPILE.cc) $(CC_OUTPUT_FLAG) $@ $<
- ${MVCMD}
-endif
-
-$(VDIR)%.o: %.C $(VDIR).creation_stamp
- $(COMPILE.cc) $(CC_OUTPUT_FLAG) $@ $<
- ${MVCMD}
-
-$(VDIR)%.o: %.cc $(VDIR).creation_stamp
- $(COMPILE.cc) $(CC_OUTPUT_FLAG) $@ $<
- ${MVCMD}
-
-# If SOLINK is defined, then the .$(SOEXT) file is built from the
-# .$(OBJEXT) file via separate rules in the same directory.
-# Otherwise, the .$(SOEXT) and .$(OBJEXT) are built via the same rule.
-# SOLINK is required for the repository under gcc.
-ifndef SOLINK
-# I added the "Executable Shared Object (ESO)" define to separate between
-# normal shared object files and executable shared object files (the kind
-# that the service configurator needs to be able to function).
-# 970104 Marius Kjeldahl <mariusk@sn.no, marius@funcom.com>
-ifdef (ESOBUILD)
-$(VSHDIR)%.$(SOEXT): %.cpp $(VSHDIR).creation_stamp
- $(ESOBUILD)
-else
-$(VSHDIR)%.$(SOEXT): %.cpp $(VSHDIR).creation_stamp
- $(SOBUILD)
-endif
-
-ifeq ($(split), 1)
-$(VSHDIR)%.$(OBJEXT): %.cpp $(VSHDIR).creation_stamp
- $(COMPILE.cc) $(PIC) SPLIT/`echo $< | sed "s/.cpp/_S\*/"`
- mv *.$(OBJEXT) $(VSHDIR)
-else
-
-$(VSHDIR)%.$(OBJEXT): %.cpp $(VSHDIR).creation_stamp
- $(COMPILE.cc) $(PIC) $(CC_OUTPUT_FLAG) $@ $<
-endif
-
-$(VSHDIR)%.$(OBJEXT): %.cc $(VSHDIR).creation_stamp
- $(COMPILE.cc) $(PIC) $(CC_OUTPUT_FLAG) $@ $<
-
-$(VSHDIR)%.$(OBJEXT): %.c $(VSHDIR).creation_stamp
- $(COMPILE.c) $(PIC) $(CC_OUTPUT_FLAG) $@ $<
-
-$(VSHDIR)%.$(SOEXT): $(VSHDIR)%.$(OBJEXT)
- $(SOLINK)
-endif
-
-ifeq ($(OS),"Windows_NT")
-$(VDIR).creation_stamp:
- @if not exist $(VDIR) mkdir $(VDIR)
- @echo > $@
-else
-$(VDIR).creation_stamp:
- @-test -d $(VDIR) || mkdir $(VDIR) $(ACE_NUL_STDERR)
- @touch $@
-endif
-
-ifneq ($(VDIR),$(VSHDIR))
- ifeq ($(OS),"Windows_NT")
-$(VSHDIR).creation_stamp:
- @if not exist $(VSHDIR) mkdir $(VSHDIR)
- @echo > $@
- else
-$(VSHDIR).creation_stamp:
- @-test -d $(VSHDIR) || mkdir $(VSHDIR) $(ACE_NUL_STDERR)
- @touch $@
- endif
-endif
-
-#----------------------------------------------------------------------------
-# Library generation targets
-#----------------------------------------------------------------------------
-
-.PRECIOUS: $(VLIB)
-
-#### show_statics shows static objects in locally-created object files.
-#### It assumes that the object files were built using g++.
-#### TOOLENV selects the proper nm in VxWorks host environments.
-#### TOOLDIR allows specification of the full path to nm via definition
-#### in the platform_macros.GNU file.
-show_statics:
- -@$(TOOLDIR)nm$(TOOLENV) -Co $(VSHDIR)*o | \
- egrep ' global destructors '; true
-
-#### show_uninit shows uninitialized data in locally-created object files.
-#### TOOLENV selects the proper nm in VxWorks host environments.
-show_uninit:
- -@$(TOOLDIR)nm$(TOOLENV) -Co $(VSHDIR)*o | egrep ' b '
-
-#----------------------------------------------------------------------------
-# Installation targets
-#----------------------------------------------------------------------------
-
-install.local: $(INSTALL)
-
-deinstall.local:
- $(RM) $(INSTALL) $(LIB:%.$(LIBEXT)=$(INSLIB)/%*.$(LIBEXT)) \
-$(SHLIB:%.$(SOEXT)=$(INSLIB)/%*.$(SOEXT))
-
-
-#### To disable installs, just add "INSTALL=" to your "make" invocation.
-
-ifeq (,$(LN_S))
- ifndef COMSPEC
- ifdef ComSpec
- #### ACE+TAO use COMSPEC, but ComSpec is defined.
- COMSPEC = $(ComSpec)
- endif # ComSpec
- endif # ! COMPSPEC
-
- ifdef COMSPEC
- #### Assume we're on a WIN32 host.
- LN_S = cp -p
- else # ! WIN32
- LN_S = ln -s
- endif # ! WIN32
-endif # ! LN_S
-
-$(INSBIN)/%$(VAR)$(EXEEXT) \
-$(INSINC)/ace% \
-$(INSLIB)/% \
-$(INSMAN)/man1/% \
-$(INSMAN)/man2/% \
-$(INSMAN)/man3/% \
-$(INSMAN)/man4/% \
-$(INSMAN)/man5/% \
-$(INSMAN)/man6/% \
-$(INSMAN)/man7/% \
-$(INSMAN)/man8/% \
-$(INSMAN)/manl/% \
-$(INSMAN)/mann/% :
- @if test $(shell pwd) != $(@D) -o -n "$(ACE_LDSO_Version_Number)" ; then \
- if test -s $@ ; then \
- echo "$(@F) already installed" ; \
- else \
- echo "Installing $(@F) -> $(@D)" ; \
- $(RM) $(@); $(LN_S) $(shell pwd)/$(@F:%.$(SOEXT)$(ACE_LDSO_Version_Number)=%.$(SOEXT)) $(@) ; \
- fi ; \
- fi
-ifdef MVSLIB
-#special for MVS in order to use the .x files
- @if test -w $(@D) ; then \
- if test -s $(@:.$(SOEXT)=.x) ; then \
- echo "$(@F:.$(SOEXT)=.x) already installed" ; \
- else \
- echo "Installing $(@F:.$(SOEXT)=.x) -> $(@D)" ; \
- $(RM) $(@); $(LN_S) $(shell pwd)/$(@F:.$(SOEXT)=.x) $(@:.$(SOEXT)=.x) ; \
- fi \
- fi
-endif
-
-#----------------------------------------------------------------------------
-# Cleanup targets
-#----------------------------------------------------------------------------
-
-clean.local:
- -$(RM) *.$(OBJEXT) *~ *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core
- -$(RM) -r $(OBJDIRS) $(TEMPINCDIR) cxx_repository ptrepository ti_files
- -$(RM) -r Templates.DB gcctemp.c gcctemp so_locations *.ics
- -$(RM) -r SunWS_cache ir.out
-
-realclean.local: clean.local
- -$(RM) $(BIN:%=%$(EXEEXT)) $(BIN:%=%_debug$(EXEEXT)) $(BIN:%=%_profile$(EXEEXT)) $(BIN:%=%_optimize$(EXEEXT)) $(LIB:%=%) $(LIB:%=%_debug) $(LIB:%=%_profile) $(LIB:%=%_optimize) $(SHLIB:%=%) $(SHLIB:%=%.a) $(SHLIB:%=%_debug) $(SHLIB:%=%_profile) $(SHLIB:%=%_optimize) $(SHLIBA:%=%) $(BIN2:%=%$(EXEEXT)) $(BIN2:%=%_debug$(EXEEXT)) $(BIN2:%=%_profile$(EXEEXT)) $(BIN2:%=%_optimize$(EXEEXT)) $(LIB2:%=%) $(LIB2:%=%_debug) $(LIB2:%=%_profile) $(LIB2:%=%_optimize) $(SHLIB2:%=%) $(SHLIB2:%=%_debug) $(SHLIB2:%=%_profile) $(SHLIB2:%=%_optimize) $(SHLIBA2:%=%)
-
-#----------------------------------------------------------------------------
-# Dependency generation target
-#----------------------------------------------------------------------------
-
-ifeq ($(MAKEFILE),)
- MAKEFILE = Makefile
-endif # ! MAKEFILE
-
-ifeq ($(DEPENDENCY_FILE),)
- DEPENDENCY_FILE = $(MAKEFILE)
-endif
-
-ifndef TAO_ROOT
- TAO_ROOT = $(ACE_ROOT)/TAO
-endif # TAO_ROOT
-
-# If no libraries are build in the current directory (actually, if
-# rules.lib.GNU isn't included), then SOEXT might not be set.
-ifndef SOEXT
- SOEXT=so
-endif # SOEXT
-
-ORIGdepend.local: $(MAKEFILE)
- @$(RM) $(MAKEFILE).old
- @cp $(MAKEFILE) $(MAKEFILE).old
- $(ACE_ROOT)/bin/g++dep -f $(MAKEFILE) $(CPPFLAGS) -DMAKEDEPEND $(LSRC) $(SRC) $(PSRC)
- @cat $(MAKEFILE) | \
- sed -e "s;$(TAO_ROOT);\$$(TAO_ROOT);g" \
- -e "s;$(ACE_ROOT);\$$(ACE_ROOT);g" \
- $(ACE_DEPEND_SED_CMD) \
- -e '/$$(ACE_ROOT)\/ace\/config[^\.]*\.h/d' \
- -e "s; /[-a-zA-Z0-9_./]*\.h;;g" \
- -e "s;\([-a-zA-Z0-9._]*\)\.$(OBJEXT):;.obj/\1.$(OBJEXT) .obj/\1.$(SOEXT) $(VSHDIR)\1.$(OBJEXT) $(VSHDIR)\1.$(SOEXT):;" \
- > $(MAKEFILE).new
- @cat $(MAKEFILE).new >$(MAKEFILE)
- @$(RM) $(MAKEFILE).new
- @if cmp -s $(MAKEFILE) $(MAKEFILE).old ;\
- then echo "Makefile dependencies unchanged." ;\
- else \
- echo "Makefile dependencies updated." ;\
- fi ;\
- $(RM) $(MAKEFILE).old ;
-
-ifneq ($(MAKEFILE),$(DEPENDENCY_FILE))
-$(DEPENDENCY_FILE):
- touch $(DEPENDENCY_FILE)
-depend.local: $(DEPENDENCY_FILE)
-include $(DEPENDENCY_FILE)
-endif
-
-depend.local: $(MAKEFILE)
- @$(RM) $(DEPENDENCY_FILE).old
- @cp $(DEPENDENCY_FILE) $(DEPENDENCY_FILE).old
- SOEXT=$(SOEXT) VSHDIR=$(VSHDIR) ACE_DEPEND_SED_CMD="$(ACE_DEPEND_SED_CMD)" $(ACE_ROOT)/bin/g++dep -A -f $(DEPENDENCY_FILE) $(CPPFLAGS) -DMAKEDEPEND $(LSRC) $(SRC) $(PSRC)
- @if cmp -s $(DEPENDENCY_FILE) $(DEPENDENCY_FILE).old ;\
- then echo "Makefile dependencies unchanged." ;\
- else \
- echo "Makefile dependencies updated." ;\
- fi ;\
- $(RM) $(DEPENDENCY_FILE).old ;
-
-#----------------------------------------------------------------------------
-# RCS info target
-#----------------------------------------------------------------------------
-
-idl_stubs.local: $(foreach file, $(IDL_FILES), $(file)$(IDL_CLIENT_HDR_EXT))
-
-#----------------------------------------------------------------------------
-# RCS info target
-#----------------------------------------------------------------------------
-
-rcs_info.local:
- @rcs info
-
-#----------------------------------------------------------------------------
-# Variant targets and conditional macros
-#----------------------------------------------------------------------------
-
-build.objdirs: $(OBJDIRS)
-
-ifeq ($(OS),"Windows_NT")
-$(OBJDIRS):
- @if not exist $@ mkdir $@
-else
-$(OBJDIRS):
- @test -d $@ || mkdir $@ $(ACE_NUL_STDERR)
-endif
-
-#---------------------------------------------------------------------------
-# Source file splitting
-#---------------------------------------------------------------------------
-SPLIT:
- @echo "Splitting source files..."
- @$(ACE_ROOT)/bin/split-cpp -s Svc_Conf_l.cpp -s Svc_Conf_y.cpp $(LSRC)
- @echo "done."
diff --git a/include/makeinclude/rules.nested.GNU b/include/makeinclude/rules.nested.GNU
deleted file mode 100644
index 756a545258a..00000000000
--- a/include/makeinclude/rules.nested.GNU
+++ /dev/null
@@ -1,20 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Nested directory targets makefile definitions
-#----------------------------------------------------------------------------
-
-ifeq ($(MAKEFILE),)
- MAKEFILE = Makefile
-endif # ! MAKEFILE
-
-$(TARGETS_NESTED):
-ifneq ($(DIRS),)
- ifeq (Windows,$(findstring Windows,$(OS)))
- @cmd /c "FOR /D %i IN ($(DIRS)) DO $(MAKE) -C %i $(@:.nested=)"
- else # ! Windows
- @for dir in $(DIRS); do \
- $(MAKE) -f $(MAKEFILE) -C $$dir $(@:.nested=) $(ACE_NESTED_COMMAND); \
- done
- endif # ! Windows
-endif # DIRS
diff --git a/include/makeinclude/rules.nolocal.GNU b/include/makeinclude/rules.nolocal.GNU
deleted file mode 100644
index f440e3b7d5e..00000000000
--- a/include/makeinclude/rules.nolocal.GNU
+++ /dev/null
@@ -1,8 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for directories with no local build targets
-#----------------------------------------------------------------------------
-
-$(TARGETS_LOCAL):
-
diff --git a/include/makeinclude/rules.nonested.GNU b/include/makeinclude/rules.nonested.GNU
deleted file mode 100644
index a144a511fc0..00000000000
--- a/include/makeinclude/rules.nonested.GNU
+++ /dev/null
@@ -1,8 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Null nested targets
-#----------------------------------------------------------------------------
-
-$(TARGETS_NESTED):
-
diff --git a/include/makeinclude/wrapper_macros.GNU b/include/makeinclude/wrapper_macros.GNU
deleted file mode 100644
index 3c0b386445c..00000000000
--- a/include/makeinclude/wrapper_macros.GNU
+++ /dev/null
@@ -1,702 +0,0 @@
-# -*- Makefile -*-
-
-#----------------------------------------------------------------------------
-# $Id$
-#----------------------------------------------------------------------------
-#
-# ACE supports the following flags. They can be enabled either on
-# the command line, e.g., "make purify=1", or added to your
-# platform_macros.GNU. To disable the option, set the flag to null,
-# e.g., "make debug=". Some flags support setting to 0 disable,
-# e.g., "make debug=0". debug=1 is enabled in the platform files
-# that are released with ACE.
-#
-# Please note that the effects of a flag may be platform specific.
-# Also, combinations of certain flags may or may not be allowed on
-# specific platforms, e.g., debug=1 opt=1 is supported by g++ but
-# not all other C++ compilers.
-#
-# Flag Description
-# ---- -----------
-# debug Enable debugging; see DCFLAGS and DCCFLAGS.
-# exceptions Enable exception handling (not supported by all platforms).
-# minimum_corba Enable minimumCORBA support. (Documented here, but
-# implemented in TAO/rules.TAO.GNU.)
-# fast Enable -fast option, e.g., with Sun C++.
-# inline Enable ACE inlining. Some platforms enable inlining by
-# default, others do not.
-# optimize Enable optimization; see OCFLAGS and OCCFLAGS.
-# orbix Enable use of Orbix.
-# pace Enable PACE as the underpinnings of ACE_OS.
-# probe Enable ACE_Timeprobes.
-# profile Enable profiling; see PCFLAGS and PCCFLAGS.
-# purify Purify all executables. purify must be in user's PATH!
-# quantify Quantify all executables. quantify must be in user's PATH!
-# repo Use GNU template repository (g++ with repo patches and
-# egcs only).
-# rtti Enable run-time type identification. On some platforms,
-# it is enabled by default, so this is ignored.
-# shared_libs Build shared libraries. Ignored if static_libs_only is set.
-# static_libs Build static libraries. Ignored if shared_libs_only is set.
-# shared_libs_only Only build shared libraries. Ignored if no SHLIBs are
-# specified by the Makefile, as in performance-tests/Misc.
-# static_libs_only Only build static libraries.
-# threads Build with thread support.
-# xt_reactor Build the XtReactor.
-# fl_reactor Build the FlReactor.
-# tk_reactor Build the TkReactor.
-# qt_reactor Build the QtReactor.
-# gtk_reactor Build the GtkReactor.
-# ssl Build with OpenSSL support.
-# rapi Build with RAPI
-# split Build the library by first splitting up the ACE source to several
-# files, with one object code entity for each source file. This allows
-# an application that is linked with ACE to extract _exactly_ what it
-# needs from the library, resulting in a smaller executable.
-# Setting this to 1 overrides debug to 0.
-#
-# Usually, users do not need to be concerned with make targets.
-# Just enter "make" on the command line to build. A few notable
-# targets are listed below.
-#
-# Target Description
-# ------ -----------
-# show_statics Lists all static objects in object files built for
-# current directory. Only supported for g++.
-# show_uninit Lists all uninitialized in object files built for
-# current directory. Only supported for g++.
-#
-# The following describes the ACE wrapper macros:
-#
-# Variable Description
-# -------- -----------
-# ACE_HAS_GNUG_PRE_2_8 CXX includes "g++", and the g++ version is
-# prior to 2.8.0. This is automatically determined
-# below, but can be overridden in the user's
-# platform_macros.GNU or environment. Three values
-# are supported:
-# 1 for g++ < 2.8.0,
-# 0 for g++ >= 2.8.0 or egcs,
-# undefined for non-g++ compilers.
-# ARFLAGS Flags for the archive utility (ar)
-# CC C compiler command
-# CXX C++ compiler command
-# COMPILE.c Flags for compiling with C
-# COMPILE.cc Flags for compiling with C++
-# CPPFLAGS C pre-processor flags
-# CFLAGS C compilation flags
-# CCFLAGS C++ compilation flags
-# DCFLAGS C compilation flags for debugging
-# DCCFLAGS C++ compilation flags for debugging
-# DEFFLAGS C++ preprocessor flag for defining symbols
-# DLD Name of dynamic linker
-# LD Name of linker
-# IDL Name of the CORBA IDL compiler
-# INSBIN Binary (executable) installation directory
-# INSINC Include file installation directory
-# INSMAN Manpage installation directory
-# INSLIB Library installation directory
-# LDFLAGS ld linker flags
-# LINK.c Flags for linking with C
-# LINK.cc Flags for linking with C++
-# MAKEFLAGS Flags that are passed into the compilation from the commandline
-# OCFLAGS Optimizing C compilation flags
-# OCCFLAGS Optimizing C++ compilation flags
-# ORBIX_ROOT Root of IONA's Orbix CORBA implementation
-# PCFLAGS C compilation flags for profiling
-# PCCFLAGS C++ compilation flags for profiling
-# PLATFORM_XT_CPPFLAGS Platform CPP options for X11 (some require -I...)
-# PLATFORM_XT_LDFLAGS Platform LD options for X11 (some require -L...)
-# PLATFORM_XT_LIBS Platform libraries require with X11
-# PLATFORM_SSL_CPPFLAGS Platform CPP options for OpenSSL (may need -I...)
-# PLATFORM_SSL_LDFLAGS Platform LD options for OpenSSL (may need -L...)
-# PLATFORM_SSL_LIBS Platform libraries required with OpenSSL
-# PLATFORM_RAPI_CPPFLAGS Platform CPP options for RAPI
-# PLATFORM_RAPI_LDFLAGS Platform LD options for RAPI
-# PLATFORM_RAPI_LIBS Platform libraries required with RAPI
-# PRELINK Executable to precede linking, such as quantify
-# PURELINK If set, contains purify executable as well as all options
-# PURE_CACHE_BASE_DIR
-# The base directory in which Pure products will produce
-# instrumented libraries. If you don't want that to be below
-# /tmp, set this variable in your environment or on the make
-# command line.
-# PURE_CACHE_DIR
-# The full name of the directory in which Pure produces will
-# produce instrumented libraries.
-# PTDIRS Pathnames of directories containing template code
-# RM Name of program to use to remove files
-# SOFLAGS Flags used to build a shared library
-# SOLINK.cc Link line necessary to build a share library
-# VAR Variant identifier suffix
-# VDIR Directory for object code
-# VSHDIR Directory for shared object code
-# ACE_ROOT Pathname for the root of the build tree
-#
-#----------------------------------------------------------------------------
-# Platform-dependent macro definitions
-# (link to the appropriate platform-specific config file).
-#----------------------------------------------------------------------------
-
-#### Default to building shared libraries only. Set it here to give the
-#### platform a chance to override.
-ifeq ($(shared_libs),)
- shared_libs = 1
-endif # shared_libs
-ifeq ($(static_libs),)
- static_libs = 0
-endif # static_libs
-
-#### Defined versioned_so = 1 if your platform requires version number
-#### be appended after so library.
-versioned_so = 0
-
-#### The system has X Windows and we want to include the XtReactor in
-#### the library
-xt_reactor = 0
-
-ifndef PACE_ROOT
- PACE_ROOT = $(ACE_ROOT)/PACE
-endif # PACE_ROOT
-
-# Include this before the below variables to make it possible for
-# platform_macros.GNU to set default values for them.
-include $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
-
-####
-#### Defaults are exceptions off (0), fast off (0), and rtti off (0)
-####
-ifndef exceptions
- exceptions = 0
-endif
-
-ifndef fast
- fast = 0
-endif
-
-# @@@ Should this really be the default? Or should we let the
-# compiler choose?
-ifndef rtti
- rtti = 0
-endif
-
-#----------------------------------------------------------------------------
-# Platform-independent macro definitions
-#----------------------------------------------------------------------------
-
-CPPFLAGS += $(DEFFLAGS) $(INCLDIRS)
-
-# Define default extentions for IDL-generated files
-ifeq ($(IDL_CLIENT_HDR_EXT),)
-IDL_CLIENT_HDR_EXT = C.h
-endif
-ifeq ($(IDL_CLIENT_INL_EXT),)
-IDL_CLIENT_INL_EXT = C.i
-endif
-ifeq ($(IDL_CLIENT_SRC_EXT),)
-IDL_CLIENT_SRC_EXT = C.cpp
-endif
-ifeq ($(IDL_SERVER_HDR_EXT),)
-IDL_SERVER_HDR_EXT = S.h
-endif
-ifeq ($(IDL_SERVER_INL_EXT),)
-IDL_SERVER_INL_EXT = S.i
-endif
-ifeq ($(IDL_SERVER_SRC_EXT),)
-IDL_SERVER_SRC_EXT = S.cpp
-endif
-ifeq ($(IDL_SERVER_THDR_EXT),)
-IDL_SERVER_THDR_EXT = S_T.h
-endif
-ifeq ($(IDL_SERVER_TINL_EXT),)
-IDL_SERVER_TINL_EXT = S_T.i
-endif
-ifeq ($(IDL_SERVER_TSRC_EXT),)
-IDL_SERVER_TSRC_EXT = S_T.cpp
-endif
-
-# This is for Orbix support, not related to TAO's IDL compiler.
-# It is probably obsolete by now, if it works at all.
-IDL = idl
-IDLFLAGS = -A -B -s $(IDL_SERVER_SRC_EXT) -c $(IDL_CLIENT_SRC_EXT)
-
-ifeq (,$(findstring -I$(ACE_ROOT),$(INCLDIRS)))
- INCLDIRS += -I$(ACE_ROOT)
-endif
-INSBIN = $(ACE_ROOT)/bin
-INSINC = $(ACE_ROOT)/ace
-INSLIB = $(ACE_ROOT)/ace
-INSMAN = $(ACE_ROOT)/man
-ifeq (,$(findstring -L$(ACE_ROOT)/ace,$(LDFLAGS)))
- LDFLAGS += -L$(ACE_ROOT)/ace -L./
-endif
-LEX = flex
-
-ifndef COMSPEC
- ifdef ComSpec
- #### ACE+TAO use COMSPEC, but ComSpec is defined.
- COMSPEC = $(ComSpec)
- endif # ComSpec
-endif # ! COMPSPEC
-
-ifdef COMSPEC
- #### Assume we're on a WIN32 host.
- ACE_NUL = nul
-else # ! WIN32
- ACE_NUL = /dev/null
-endif # ! WIN32
-
-#### Redirect stderr to nul device, and mask exit status.
-ACE_NUL_STDERR = 2>$(ACE_NUL) || true
-PCFLAGS += #### set in platform_macros.GNU file, e.g., -p
-PCCFLAGS += #### set in platform_macros.GNU file, e.g., -p
-VAR =
-
-# Let users override the default VDIR directories
-ifndef VDIR
-VDIR = .obj/
-endif # VDIR
-ifndef VSHDIR
- VSHDIR = .shobj/
-endif # VSHDIR
-
-ifndef ACELIB
- ACELIB = -lACE
-endif
-
-# NOTE: VLDLIBS is defined below, in case it is overridden for static-
-# or shared-only builds.
-YACC = bison
-
-# Define SOEXT trailing digits if platform needs it.
-ifeq ($(versioned_so),1)
- ACE_LDSO_Version_Number := $(shell echo .`perl -ne 'if (/ACE version/) \
- { s/[^0-9]+(\d+\.\d+)(\.\d+)?.+/\1/ ; print }' ${ACE_ROOT}/VERSION `)
-else
- ACE_LDSO_Version_Number =
-endif
-
-#----------------------------------------------------------------------------
-# Platform-dependent macros that require platform_macros.GNU.
-#----------------------------------------------------------------------------
-
-ifeq ($(findstring g++,$(CXX)),g++)
- ifndef ACE_HAS_GNUG_PRE_2_8
- ifeq ($(filter g++,$(notdir $(CXX))),g++)
- ACE_HAS_GNUG_PRE_2_8 := \
- $(shell \
- if $(CXX) --version | egrep '^(cygnus-)?2\.[0-7]' > /dev/null; then \
- echo 1; else echo 0; fi)
- else # ! g++
- ifeq (eg++,$(filter g++,$(notdir $(CXX))),eg++)
- # Assume that eg++ is egcs.
- ACE_HAS_GNUG_PRE_2_8 := 0
- else # ! plain g++ or eg++
- # CXX is something like g++386. Assume, for now, that it's an old g++.
- ACE_HAS_GNUG_PRE_2_8 := 1
- endif # ! plain g++ or eg++
- endif # ! g++
- endif # ! ACE_HAS_GNUG_PRE_2_8
-endif # g++
-
-# We dont want to hard code. Looks like the contents of VDIR should
-# have the right contents in any type of builds. If not, folks please
-# feel to revert it to the way things were in rev 4.114.
-ifndef OBJDIRS
- OBJDIRS = $(basename $(VDIR))
-endif # OBJDIRS
-
-ifndef OBJEXT
- OBJEXT=o
-endif
-
-ifndef SOEXT
- SOEXT=so
-endif
-
-ifndef LIBEXT
- LIBEXT=a
-endif
-
-ifndef CC_OUTPUT_FLAG
- CC_OUTPUT_FLAG = -o
-endif # CC_OUTPUT_FLAG
-
-ifndef SO_OUTPUT_FLAG
- SO_OUTPUT_FLAG = -o
-endif # SO_OUTPUT_FLAG
-
-ifndef LINK_OUTPUT_FLAG
- LINK_OUTPUT_FLAG = -o
-endif # LINK_OUTPUT_FLAG
-
-#----------------------------------------------------------------------------
-# make flags
-#----------------------------------------------------------------------------
-
-ifeq ($(optimize),0)
- override optimize =
-endif # optimize
-
-ifneq ($(optimize),)
- CFLAGS += $(OCFLAGS)
- CCFLAGS += $(OCCFLAGS)
-endif # optimize
-
-ifeq ($(split),0)
- override split =
-endif # split
-
-ifneq ($(split),)
- override split_target = SPLIT
- override debug = 0
- CPPFLAGS += -DACE_IS_SPLITTING
-else
- override split_target =
-endif # split
-
-ifeq ($(debug),0)
- override debug =
-endif # debug
-
-ifeq ($(debug),)
- CPPFLAGS += -DACE_NDEBUG
-# Disable the RCSID for release/non-debug builds.
- ifeq (,$(findstring ACE_USE_RCSID,$(CPPFLAGS)))
- CPPFLAGS += -DACE_USE_RCSID=0
- endif
-else
- CFLAGS += $(DCFLAGS)
- CCFLAGS += $(DCCFLAGS)
-endif # debug
-
-ifeq ($(threads),0)
- override threads =
-endif # threads
-
-ifeq ($(xt_reactor),0)
- override xt_reactor =
-endif # xt_reactor
-
-ifneq ($(xt_reactor),)
- override ace_with_x11=1
- CPPFLAGS += -DACE_HAS_XT $(PLATFORM_XT_CPPFLAGS)
- LIBS += $(PLATFORM_XT_LIBS)
- LDFLAGS += $(PLATFORM_XT_LDFLAGS)
-endif # xt_reactor
-
-ifeq ($(fl_reactor),0)
- override fl_reactor =
-endif # fl_reactor
-
-ifneq ($(fl_reactor),)
- override ace_with_x11=1
- override ace_with_gl=1
- CPPFLAGS += -DACE_HAS_FL $(PLATFORM_FL_CPPFLAGS)
- LIBS += $(PLATFORM_FL_LIBS)
- LDFLAGS += $(PLATFORM_FL_LDFLAGS)
-endif # fl_reactor
-
-ifeq ($(tk_reactor),0)
- override tk_reactor =
-endif # tk_reactor
-
-ifneq ($(tk_reactor),)
- override ace_with_tk=1
- CPPFLAGS += -DACE_HAS_TK $(PLATFORM_TK_CPPFLAGS)
- LIBS += $(PLATFORM_TK_LIBS)
- LDFLAGS += $(PLATFORM_TK_LDFLAGS)
-endif # tk_reactor
-
-ifeq ($(qt_reactor),0)
- override qt_reactor =
-endif # qt_reactor
-
-ifneq ($(qt_reactor),)
- override ace_with_qt=1
- CPPFLAGS += -DACE_HAS_QT $(PLATFORM_QT_CPPFLAGS)
- LIBS += $(PLATFORM_QT_LIBS)
- LDFLAGS += $(PLATFORM_QT_LDFLAGS)
-endif # qt_reactor
-
-ifneq ($(QTDIR),)
- MOC = ${QTDIR}/bin/moc
-else
- MOC = moc
-endif
-
-ifeq ($(gtk_reactor),0)
- override gtk_reactor =
-endif # gtk_reactor
-
-ifneq ($(gtk_reactor),)
- override ace_with_gtk=1
- CPPFLAGS += -DACE_HAS_GTK $(PLATFORM_GTK_CPPFLAGS)
- LIBS += $(PLATFORM_GTK_LIBS)
- LDFLAGS += $(PLATFORM_GTK_LDFLAGS)
-endif # gtk_reactor
-
-ifeq ($(rapi),0)
- override rapi =
-endif #rapi
-
-ifneq ($(rapi),)
- CPPFLAGS += -DACE_HAS_RAPI $(PLATFORM_RAPI_CPPFLAGS)
- LIBS += $(PLATFORM_RAPI_LIBS)
- LDFLAGS += $(PLATFORM_RAPI_LDFLAGS)
-endif # rapi
-
-ifeq ($(ace_with_gl),0)
- override ace_with_gl =
-endif # ace_with_gl
-
-ifneq ($(ace_with_gl),)
- override ace_with_x11 = 1
- CPPFLAGS += $(PLATFORM_GL_CPPFLAGS)
- LIBS += $(PLATFORM_GL_LIBS)
- LDFLAGS += $(PLATFORM_GL_LDFLAGS)
-endif # ace_with_gl
-
-ifeq ($(ace_with_x11),0)
- override ace_with_x11 =
-endif # ace_with_x11
-
-ifneq ($(ace_with_x11),)
- CPPFLAGS += $(PLATFORM_X11_CPPFLAGS)
- LIBS += $(PLATFORM_X11_LIBS)
- LDFLAGS += $(PLATFORM_X11_LDFLAGS)
-endif # ace_with_x11
-
-ifeq ($(ssl),0)
- override ssl =
-endif # ssl
-
-ifneq ($(ssl),)
- CPPFLAGS += $(PLATFORM_SSL_CPPFLAGS)
- LIBS += $(PLATFORM_SSL_LIBS)
- LDFLAGS += $(PLATFORM_SSL_LDFLAGS)
-endif # ssl
-
-ifeq ($(exceptions),0)
- ifeq ($(ACE_HAS_GNUG_PRE_2_8),0)
- #### Disable the default exception handling of g++ >= 2.8.0.
- ifneq ($(ACE_GNUG_ON_UNIXWARE),)
- CCFLAGS += -fcheck-new
- else
- CCFLAGS += -fno-exceptions -fcheck-new
- endif # ! ACE_GNUG_ON_UNIXWARE
- endif # ! ACE_HAS_GNUG_PRE_2_8
-else # exceptions
- CPPFLAGS += -DACE_HAS_EXCEPTIONS
- ifeq ($(ACE_HAS_GNUG_PRE_2_8),1)
- #### Enable exception handling with g++ < 2.8.0. Not recommended,
- #### but provided here for completeness.
- CCFLAGS += -fhandle-exceptions
- else # ! ACE_HAS_GNUG_PRE_2_8
- ifeq ($(ACE_HAS_GNUG_PRE_2_8),0)
- #### Disable this warning on g++ >= 2.8.0 if exceptions are enabled,
- #### it gets confused and reports too many bogus warnings.
- CFLAGS += -Wno-uninitialized
- endif # g++ > 2.8.0
- endif # ! ACE_HAS_GNUG_PRE_2_8
-endif # exceptions
-
-ifeq ($(pace),0)
- override pace=
-endif # pace
-
-ifneq ($(pace),)
- ifneq ($(inline),0)
- CPPFLAGS += -DPACE_HAS_INLINE=1
- endif
- CPPFLAGS += -DACE_HAS_PACE -DPACE_HAS_ALL_POSIX_FUNCS -I$(ACE_ROOT)/PACE
- ACELIB = -lACE
- ifeq ($(inline),0)
- ACELIB += -lPACE
- LDFLAGS += -L$(PACE_ROOT)/pace/
- endif # inline == 0
- ifdef VXWORKS
- ACELIB += -lPACE
- LDFLAGS += -L$(PACE_ROOT)/pace/
- endif # inline == 0
- include $(PACE_ROOT)/include/makeinclude/rules.common.GNU
-endif # pace
-
-ifeq ($(profile),0)
- override profile =
-endif # profile
-
-ifneq ($(profile),)
- CFLAGS += $(PCFLAGS)
- CCFLAGS += $(PCCFLAGS)
-endif # profile
-
-ifeq ($(inline),0)
- CPPFLAGS += -DACE_NO_INLINE
-else
-ifeq ($(inline),1)
- CPPFLAGS += -D__ACE_INLINE__
-endif # inline eq 1
-endif # inline eq 0
-
-ifeq ($(shared_libs),0)
- override shared_libs =
-endif # shared_libs
-ifeq ($(static_libs),0)
- override static_libs =
-endif # static_libs
-
-ifeq ($(shared_libs_only),0)
- override shared_libs_only =
-endif # shared_libs_only
-ifeq ($(static_libs_only),0)
- override static_libs_only =
-endif # static_libs_only
-
-ifdef shared_libs_only
- override shared_libs = 1
- override static_libs =
-endif # shared_libs_only
-ifdef static_libs_only
- override shared_libs =
- override static_libs = 1
-endif # static_libs_only
-
-#### We need to set VBIN here, because it's used in the BUILD
-#### definitions below.
-VBIN = $(BIN:%=%$(VAR))
-
-ifdef shared_libs
- ifdef static_libs
- #### Build both shared and static libs.
- BUILD = $(VSHLIB) $(SHLIBA) $(VLIB) $(VBIN)
- else # ! static_libs
- #### Build shared libs only.
- ifeq ($(SHLIB),)
- #### Makefile only specifies static libs, so only build static libs.
- BUILD = $(VLIB) $(VBIN)
- else # ! SHLIB
- #### Don't build static libs.
- BUILD = $(VSHLIB) $(SHLIBA) $(VBIN)
- LIB =
-# OBJEXT = so
- ifndef VXWORKS
- VDIR = $(basename $(VSHDIR))
- ifeq ($(BIN),)
- #### No executables are being built, so don't create .obj/.
- OBJDIRS = $(VSHDIR)
- endif # BIN
- endif # ! VXWORKS
- endif # ! SHLIB
- endif # ! static_libs
-
- ifdef SHLIBA
- LDLIBS := $(LDLIBS:-l%=-l%shr)
- ACE_SHLIBS := $(ACE_SHLIBS:-l%=-l%shr)
- endif # SHLIBA
-else # ! shared_libs
- ifdef static_libs
- #### Don't build shared libs.
- BUILD = $(VLIB) $(VBIN)
- OBJDIRS = $(basename $(VDIR))
- PIC =
- SHLIB =
- SOEXT = o
- VSHDIR = $(basename $(VDIR))
- VLDLIBS = $(LDLIBS:%.so=%.o)
- else # ! static_libs
- #### Don't build any libs.
- BUILD = $(VBIN)
- endif # ! static_libs
-endif # ! shared_libs
-
-VLDLIBS = $(LDLIBS) $(ACELIB) $(LIBS)
-
-ifeq ($(probe),0)
- override probe =
-endif # probe
-
-ifeq ($(probe),1)
- CPPFLAGS += -DACE_COMPILE_TIMEPROBES
-endif # probe
-
-ifeq ($(purify),0)
- override purify =
-endif # purify
-
-PURE_CACHE_BASE_DIR = /tmp/purifycache
-PURE_CACHE_DIR = $(PURE_CACHE_BASE_DIR)-$(LOGNAME)-$(notdir $(CXX) )
-
-ifdef purify
- #### Pick up Purify directory from the users PATH.
- ACE_PURIFY_DIR := \
- $(shell type purify | sed -e 's/.* is //' -e 's%/purify$$%%')
-
- #### You might want to adjust the Purify options below.
- #### -best-effort is undocumented but supported, and seems
- #### to help avoid occasional link failure.
- PURELINK += purify -best-effort -cache-dir=$(PURE_CACHE_DIR) \
- -chain-length=20 -fds-inuse-at-exit=no \
- -inuse-at-exit -max_threads=100
- CPPFLAGS += -DACE_HAS_PURIFY -I$(ACE_PURIFY_DIR)
-endif # purify
-
-ifeq ($(quantify),0)
- override quantify =
-endif # quantify
-
-ifdef quantify
- #### Pick up Quantify directory from the users PATH.
- ACE_QUANTIFY_DIR := \
- $(shell type quantify | sed -e 's/.* is //' -e 's%/quantify$$%%')
-
- #### You might want to adjust the Quantify options below.
- #### -best-effort is undocumented but supported, and seems
- #### to help avoid occasional link failure.
- PRELINK += quantify -best-effort -cache-dir=$(PURE_CACHE_DIR) \
- -max_threads=100
- CPPFLAGS += -DACE_HAS_QUANTIFY -I$(ACE_QUANTIFY_DIR)
-
- ifeq ($(shell uname -p),sparc)
- PRELINK += -record-register-window-traps
- endif # sparc
-endif # quantify
-
-ifeq ($(repo),0)
- override repo =
-endif # repo
-
-ifdef repo
- #### Remove -fno-implicit-templates from, and add -frepo to, CCFLAGS.
- CCFLAGS := $(strip $(subst -fno-implicit-templates,,$(CCFLAGS)))
- CCFLAGS += -frepo
- CPPFLAGS += -DACE_HAS_GNU_REPO
-# ace_lib_prelink := 1
-endif # repo
-
-
-#----------------------------------------------------------------------------
-# Conditional macro definitions
-#----------------------------------------------------------------------------
-
-COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
-COMPILE.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS) -c
-COMPILE-NO_DASH_G.cc = `echo $(COMPILE.cc) | sed 's/-g //'`
-# 960905 Marius Kjeldahl <marius@funcom.com>
-# Added the line below to be used for compiling executable shared objects
-COMPILEESO.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS)
-
-ifeq ($(LINK.c),override)
- LINK.c = $(LINK.c.override)
-else
- LINK.c = $(PURELINK) $(PRELINK) $(LD) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) \
- $(LDLIBS) $(LIBS)
-endif # LINK.c.override
-
-ifeq ($(LINK.cc),override)
- LINK.cc = $(LINK.cc.override)
-else
- LINK.cc = $(PURELINK) $(PRELINK) $(LD) $(CCFLAGS) $(CPPFLAGS) $(PTDIRS)
-endif # LINK.cc.override
-
-SOLINK.cc = $(PRELINK) $(DLD) $(SOFLAGS)
diff --git a/java/ChangeLog b/java/ChangeLog
deleted file mode 100644
index 5fa59aa5b77..00000000000
--- a/java/ChangeLog
+++ /dev/null
@@ -1,137 +0,0 @@
-Fri Mar 16 16:17:24 2001 Carlos O'Ryan <coryan@uci.edu>
-
- * java/EAC/User Manual.doc:
- * java/EAC/User_Manual.doc:
- Renamed documentation file, many a script gets confused with
- names that have spaces in them.
-
-Sun Jun 4 14:53:05 2000 Darrell Brunsch <brunsch@uci.edu>
-
- * ImageProcessing/framework/MedJava.html:
- * ImageProcessing/framework/test.html:
- * apps/NexusII/start.html:
-
- Added in missing CVS Id strings.
-
-Tue Aug 24 13:09:15 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/*, tests/*, netsvcs/*: Implemented major changes to the
- package system. Now all files descend from the JACE directory
- under the main archive level. All files are further grouped by
- their subpackage names. This is the way Java usually wants it,
- and makes JACE javadoc friendly.
-
- Rewrote and added javadoc comments throughout JACE.
-
- Changed all concurrency mechanisms to inherit from AbstractLock,
- obeying all its requirements such as not releasing the lock
- unless the accessing thread is the owner.
-
- Added the token service.
-
- Added and rewrote tests for Concurrency mechs and ServiceConfig.
-
- Rewrote network services to inherit from JACE.netsvcs.Server and
- JACE.netsvcs.Handler, abstracting much of the work out to these
- base classes.
-
- Debugging is now OFF by default.
-
-Wed Aug 18 19:43:23 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/GetOpt.java: Added another constructor to GetOpt with an
- option to return args even if not in the optstring. This is
- useful for the default case in a switch (for printUsage
- and exit).
-
-Wed Aug 18 13:35:46 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/TimerQueue.java: Now when createInternalThread is specified
- in the constructor, it is set to be a daemon thread. Thus, if a
- TimerQueue thread is the only one executing, the VM exits.
-
-Wed Jul 14 11:27:47 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/StrategyAcceptor.java, AcceptStrategy.java
- StrategyAcceptor now inherits from Acceptor. AcceptStrategy
- can now delegate to an Acceptor, rather than having its own
- SOCKAcceptor. Its default is to delegate to a generic
- Acceptor instance (that uses a SOCKAcceptor).
-
-Fri Jul 09 13:58:42 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/Acceptor.java, TimeValue.java
- Solved a few javadoc warnings.
-
-Fri Jul 09 11:08:32 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/TimedWait.java, Stream*.java, Token.java
- Fixed a bug in TimedWait from the recent changes. Made
- Streams (and Modules) use absolute times for timeouts.
-
-Thu Jul 08 14:54:36 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/Condition.java, TimedWait.java, EventHandler.java,
- MessageQueue.java, ServiceObject.java, SvcHandler.java,
- Task.java, Mutex.java, Semaphore.java, Token.java,
- TimerQueue.java
-
- Changed the semantics of Condition, TimedWait, MessageQueue,
- Task, Mutex, Semaphore, and Token to use absolute times for
- their timeouts.
-
- Changed the semantics of EventHandler, ServiceObject, and
- SvcHandler such that handleTimeout receives a TimeValue
- representing when the event occured.
-
- Changed TimerQueue internally to reflect the above changes.
-
- Also made better checks in Token and Mutex so that non-owners
- can call release without adverse effects. I plan to try to
- do this with Semaphore and RWMutex as well.
-
-Thu Jul 08 11:20:17 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/TimeValue.java: Added relativeTimeOfDay(offsets)
- methods which return TimeValues. These should help people
- since many classes will be changed to use
- absolute TimeValues shortly to correspond to ACE's versions.
-
-Wed Jul 07 22:42:27 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/Token.java: Fixed several bugs in tryacquire and renew.
- Specifying a null TimeValue in acquire or renew now means to wait
- until the lock is obtained. Specifying TimeValue.zero in acquire
- means just to poll and don't call sleepHook(). In renew, it is
- the same as specifying a requePosition of 0 -- doesn't give up
- the token.
-
-Wed Jul 07 21:54:35 1999 Everett Anderson <eea1@cs.wustl.edu>
-
- * src/TimedWait.java: Fixed the semantics of
- timedWait(TimeValue tv). Now when tv represents zero, it has
- polling semantics, checking the condition once and returning
- on success or throwing a TimeoutException on failure. Before,
- it blocked until notified. (Also affects synch mechanisms)
-
-Wed May 20 14:37:48 CDT 1998 Everett Anderson <eea1@cs.wustl.edu>
-
-Reset the ChangeLog file for future users. If anyone wants more complete
-file by file changes, they can be provided with the CVS log command.
-
-Updated the JACE page at http://www.cs.wustl.edu/~eea1/JACE.html to reflect
-the Version 1.4.4 changes, which included:
-
-* Removed CUP and JLex from JACE. The java_cup directory is still in CVS,
- but won't be included in future versions. This means that the option to
- load C++ ACE ServiceConfigurator files is gone.
-
-* Changed the SOCKStream system so it uses DataInputStream and DataOutputStream
- to maintain compatibility with other languages and remove the deprecation
- warnings from using PrintStream. (Can't use Reader/Writers since they
- write 16-bit chars not 8-bit bytes)
-
-* Made lots of modifications to comments and code to remove javadoc warnings
- and deprecation warnings. They were all straight-forward changes such as
- making sure a @throws line was in the comments for all exceptions a method
- had, etc.
diff --git a/java/EAC/BoundsException.java b/java/EAC/BoundsException.java
deleted file mode 100644
index 12010d570b0..00000000000
--- a/java/EAC/BoundsException.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Title: BoundsException
- * Description: An exception class for when graphical objects are positioned
- * partially out of their container's boundaries
- */
-package EAC;
-
-public class BoundsException extends Exception {
-
- public BoundsException(String msg) {
- super(msg);
- }
-} \ No newline at end of file
diff --git a/java/EAC/Configuration.java b/java/EAC/Configuration.java
deleted file mode 100644
index 426a8ba2a5e..00000000000
--- a/java/EAC/Configuration.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/**
- * Title: Configuration
- * Description: A container of Event Analysis Configurator primitives,
- * capable of executing interactions among those primitives
- * one "tick" at a time.
- */
-package EAC;
-import java.awt.*;
-import java.lang.*;
-
-public class Configuration extends Thread {
-
- // highest simulation clock value
- public final long MAX_SIM_CLOCK = 1000000;
-
- // maximum number of primitives in a configuration
- public final int MAX_PRIMITIVES = 100;
-
- // execution modes
- public final int INITIAL = 0;
- public final int RUNNING = 1;
- public final int STOPPED = 2;
-
- // current mode
- protected int mode = INITIAL;
-
- // simulation "clock"
- protected long simulation_time;
-
- // one simulation time unit (msec)
- public int tick; // will be set by runtime parameter
-
- // number of missed execution deadlines
- protected int missed_deadlines;
-
- // simulated resource pool
- protected ResourcePool rp;
-
- // event queue
- protected Queue eventQ;
-
- // input and output areas
- protected TextField inputArea;
- protected Label reportArea;
-
- // collection of primitives
- private Primitive primitive[];
-
- // number of primitives currently stored
- private int primitive_count;
-
- public Configuration(TextField i, Label r) {
- inputArea = i;
- reportArea = r;
- eventQ = new Queue();
- clear();
- mode = INITIAL;
- } /* constructor */
-
- public void clear() {
- primitive_count = 0;
- simulation_time = 0;
- missed_deadlines = 0;
- rp = new ResourcePool();
- primitive = new Primitive[MAX_PRIMITIVES];
- eventQ.clear();
- } /* clear */
-
- public void restart() {
- int i;
-
- simulation_time = 0;
- missed_deadlines = 0;
- rp.release(rp.usage());
- eventQ.clear();
- for (i = 0; i < primitive_count; i++)
- primitive[i].restart();
-
- } /* restart */
-
- public void setTick(int t) {
- tick = t;
- } /* setTick */
-
- public void addLabel(Primitive p) {
- reportArea.setText("Need a label");
- } /* addLabel */
-
- public int getPrimitiveCount() {
- return primitive_count;
- } /* getPrimitiveCount */
-
- public Primitive getPrimitive(int n) {
- return primitive[n];
- } /* getPrimitive */
-
- protected void setPrimitive(int n, Primitive p) {
- primitive[n] = p;
- } /* setPrimitive */
-
- public int addPrimitive(Primitive p) throws TooManyPrimitivesException {
- if (primitive_count == MAX_PRIMITIVES)
- throw new TooManyPrimitivesException("ERROR: Too many primitives");
-
- primitive[primitive_count++] = p;
- return primitive_count;
- } /* addPrimitive */
-
- public boolean deletePrimitive(int i) {
- if (primitive[i] == null)
- return false;
- else {
- primitive[i] = null;
- return true;
- }
- } /* deletePrimitive */
-
- public int leftSideOverlaps(Primitive p) {
- int i;
-
- for (i = 0; i < primitive_count; i++) {
- if (primitive[i] != null) {
- if ((primitive[i].contains(p.upperLeft())) ||
- (primitive[i].contains(p.lowerLeft())) ||
- (p.contains(primitive[i].lowerLeft())) ||
- (p.contains(primitive[i].upperLeft()))) {
- return i;
- } /* if */
- } /* if */
- } /* for */
-
- // no overlap detected
- return -1;
- } /* leftSideOverlaps */
-
- public int rightSideOverlaps(Primitive p) {
- int i;
-
- for (i = 0; i < primitive_count; i++) {
- if (primitive[i] != null) {
- if ((primitive[i].contains(p.lowerRight())) ||
- (primitive[i].contains(p.upperRight())) ||
- (p.contains(primitive[i].upperRight())) ||
- (p.contains(primitive[i].lowerRight()))) {
- return i;
- } /* if */
- } /* if */
- } /* for */
-
- // no overlap detected
- return -1;
- } /* rightSideOverlaps */
-
- public Primitive primitiveContaining (Point p) {
- int i;
-
- for (i = 0; i < primitive_count; i++)
- if (primitive[i].contains(p))
- return primitive[i];
-
- return null;
- } /* primitiveContaining */
-
- public void draw() {
- int i;
-
- for (i = 0; i < primitive_count; i++)
- if (primitive[i] != null)
- try {
- primitive[i].draw();
- } catch (BoundsException be) {
- // can't happen
- }
- } /* draw */
-
- public void eventEnqueue(Primitive p, long t) {
- eventQ.enqueue(p,t);
- } /* eventEnqueue */
-
- public long getTime() {
- return simulation_time;
- } /* getTime */
-
- public void run() {
- Primitive nextP;
-
- while (true) {
- simulation_time += 1;
- simulation_time %= MAX_SIM_CLOCK;
- try {
- reportArea.setText("Simulation Time: " +
- java.lang.Long.toString(simulation_time) +
- " Resource Consumption: " +
- java.lang.Integer.toString(rp.usage()) +
- "% Missed Deadlines: " +
- java.lang.Integer.toString(missed_deadlines) +
- " Next Event: " +
- java.lang.Long.toString(eventQ.frontTime()));
-
- // wake up all primitives who've set alarms for current time
- while (simulation_time == eventQ.frontTime()) {
- nextP = eventQ.dequeue();
- nextP.wakeup(simulation_time);
- } /* while */
- } catch (EmptyQueueException eqe) {
- System.out.println("Event queue empty. We're done?");
- } catch (ConnectionException ce) {
- System.out.println("Connection exception in run");
- }
-
- try {
- sleep(tick);
- }
- catch (InterruptedException ie) {
- System.out.println("Interrupted");
- }
- } /* outer while */
- } /* run */
-
-} \ No newline at end of file
diff --git a/java/EAC/Configurator.java b/java/EAC/Configurator.java
deleted file mode 100644
index 1a9bc7a0ed8..00000000000
--- a/java/EAC/Configurator.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * Title: Configurator
- * Description: The application class for the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-import java.awt.event.*;
-
-public class Configurator extends Frame {
-
- // Initial dimensions of the frame
- public final int INITIAL_WIDTH = 800;
- public final int INITIAL_HEIGHT = 600;
-
- protected TextField inputArea = new TextField("Input Area", 80);
- protected Label reportArea = new Label();
- protected Configuration config = new Configuration(inputArea,reportArea);
- protected EACPanel canvas = new EACPanel(config,inputArea,reportArea);
- protected EACMenuBar menuBar = new EACMenuBar(canvas,config,inputArea,reportArea);
-
- Configurator(int tick) {
- config.setTick(tick);
-
- setTitle("The Event Analysis Configurator");
- setLayout(new BorderLayout());
- reportArea.setText("Report Area");
-
- // Input Area at top of frame
- add(inputArea,"North");
-
- // Report Area at bottom of frame
- add(reportArea,"South");
-
- // Canvas in the middle of frame
- add(canvas,"Center");
-
- // Menu Bar
- setMenuBar(menuBar);
-
- // Move and resize
- setLocation(0,0);
- setSize(INITIAL_WIDTH,INITIAL_HEIGHT);
-
- // For exiting
- addWindowListener(new Closer());
- }
-
- public static void main (String[] argv) {
- new Configurator(java.lang.Integer.valueOf(argv[0]).intValue()).show();
- }
-
- class Closer extends WindowAdapter {
- public void windowClosing (WindowEvent e) {
- System.exit (0);
- }
- }
-
-} /* Configurator */
diff --git a/java/EAC/ConnectionException.java b/java/EAC/ConnectionException.java
deleted file mode 100644
index a1f3efab7ab..00000000000
--- a/java/EAC/ConnectionException.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Title: ConnectionException
- * Description: An exception class for when an attempt is made to connect
- * an input where one is already connected, or to add an
- * output when the maximum number of outputs are already set
- */
-package EAC;
-
-public class ConnectionException extends Exception {
-
- public ConnectionException(String msg) {
- super(msg);
- }
-} \ No newline at end of file
diff --git a/java/EAC/Connector.java b/java/EAC/Connector.java
deleted file mode 100644
index 27c02e820bc..00000000000
--- a/java/EAC/Connector.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- * Title: Connector
- * Description: Connects two primitives in the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-
-public class Connector extends Primitive {
-
- // for drawing
- protected RubberbandLine rbLine;
-
- // Primitives connected by connector
- Primitive startP,
- endP;
-
- // the second point of the connector
- // (the anchor point is inherited from Primitive)
- protected Point endpoint;
-
- public Connector(EACPanel p) {
- super(p);
- rbLine = new RubberbandLine(p);
- }
-
- // inappropriate inherited methods: should not be used
- public void setTop(Point p) {}
- public Point getTop() { return null; }
-
- public void setEndpoint(Point p) {
- endpoint = p;
- } /* setEndpoint */
-
- public Point getEndpoint() {
- return endpoint;
- } /* getEndpoint */
-
- // Anchor the rubberband line AND the connector itself
- public void anchor(Point p) {
- rbLine.anchor(p);
- anchor = p;
- } /* anchor */
-
- // Stretch the rubberband line
- public void stretch(Point p) {
- rbLine.stretch(p);
- } /* stretch */
-
- // End the rubberband line AND the connector itself
- public void end(Point p) {
- rbLine.end(p);
- endpoint = p;
- } /* end */
-
- public void draw() throws BoundsException {
- if (inBounds()) {
- Graphics g = canvas.getGraphics();
-
- g.drawLine(anchor.x,anchor.y,endpoint.x,endpoint.y);
- drawArrowhead(g);
- } else
- throw new BoundsException("ERROR: Attempted to place Connector endpoint out of bounds");
- } /* draw */
-
- private void drawArrowhead(Graphics g) {
- final int arrowHeadWidth = 10;
- Point P1 = anchor;
- Point P2 = endpoint;
-
- // Draw Arrowhead (using java.lang.Math and floating point)
- // source provided by Erik in newsgroup posting
- double dx = P2.x - P1.x;
- double dy = P2.y - P1.y;
- final double ra = java.lang.Math.sqrt(dx*dx + dy*dy);
- final double ri = (double) arrowHeadWidth;
- dx /= ra;
- dy /= ra;
- Point p2 = new Point((int)Math.round(P2.x - dx*ri),
- (int)Math.round(P2.y - dy*ri));
- int[] x = new int[3];
- int[] y = new int[3];
- double r = 0.4 * ri;
- x[0] = (int)Math.round(p2.x + dy * r);
- y[0] = (int)Math.round(p2.y - dx * r);
- x[1] = P2.x;
- y[1] = P2.y;
- x[2] = (int)Math.round(p2.x - dy * r);
- y[2] = (int)Math.round(p2.y + dx * r);
- g.fillPolygon(x, y, x.length);
- } /* drawArrowhead */
-
- public boolean contains(Point p) {
- return false;
- } /* contains */
-
- public Point upperLeft() {
- return anchor;
- } /* upperLeft */
-
- public Point lowerRight() {
- return endpoint;
- } /* lowerRight */
-
- public Point upperRight() {
- return endpoint;
- } /* upperRight */
-
- public Point lowerLeft() {
- return anchor;
- } /* lowerLeft */
-
- public boolean inBounds() {
- if (canvas.contains(endpoint))
- return true;
- else
- return false;
- } /* inBounds */
-
- public void write(File f) throws java.io.IOException {
- f.writeInt(f.CONNECTOR);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- f.writeInt(endpoint.x);
- f.writeInt(endpoint.y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- anchor = new Point();
- endpoint = new Point();
-
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- endpoint.x = f.readInt();
- endpoint.y = f.readInt();
- } /* read */
-
- public int addInput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Connectors cannot connect each other");
- } /* addInput */
-
- public int addOutput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Connectors cannot connect each other");
- } /* addOutput */
-
- public void setInput(Primitive p) {
- startP = p;
- } /* setInput */
-
- public void setOutput(Primitive p) {
- endP = p;
- } /* setOutput */
-
- public Primitive getInput() {
- return startP;
- } /* getInput */
-
- public Primitive getOutput() {
- return endP;
- } /* getOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- throw new ConnectionException("Internal error: wrong getInput() called on Connector");
- } /* getInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- throw new ConnectionException("Internal error: wrong getOutput() called on Connector");
- } /* getOutput */
-
- public void removeInput(int i) throws ConnectionException {
- //throw new ConnectionException("ERROR: Attempted to remove input from connector");
- startP = null;
- } /* removeInput */
-
- public void removeOutput(int i) throws ConnectionException {
- //throw new ConnectionException("ERROR: Attempted to remove output from connector");
- endP = null;
- } /* removeOutput */
-
- public int getInputCount() throws ConnectionException {
- //throw new ConnectionException("ERROR: Attempted to retrieve input count from connector");
- return (startP == null) ? 0 : 1;
- } /* getInputCount */
-
- public int getOutputCount() throws ConnectionException {
- //throw new ConnectionException("ERROR: Attempted to retrieve output count from connector");
- return (endP == null) ? 0 : 1;
- } /* getOutputCount */
-
- public void event(Source s) throws ConnectionException {
- //throw new ConnectionException("ERROR: Attempted to push event to connector");
- endP.event(s);
- } /* event */
-
- public void wakeup(long t) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to wake up connector");
- } /* wakeup */
-} \ No newline at end of file
diff --git a/java/EAC/EACComponent.java b/java/EAC/EACComponent.java
deleted file mode 100644
index f26aca96880..00000000000
--- a/java/EAC/EACComponent.java
+++ /dev/null
@@ -1,460 +0,0 @@
-/**
- * Title: Component
- * Description: A real-time component emulator, for use in the Event Analysis
- * Configurator.
- */
-package EAC;
-import java.awt.*;
-
-public class EACComponent extends Primitive {
-
- class QueueEntry {
-
- Source source;
- long request_time;
- boolean running;
-
- } /* QueueEntry */
-
- public class ServiceQueue {
-
- public QueueEntry queue[];
-
- public int size;
-
- void enqueue(QueueEntry e) {
- int i;
-
- for (i = 0; i < size; i++)
- if (e.source == queue[i].source) {
- System.out.println("Internal error: attempt to enqueue duplicate source");
- System.exit(-1);
- }
-
- if (size >= MAX_INPUTS) {
- System.out.println("Internal error: queue size at max");
- System.exit(-1);
- }
-
- queue[size++] = e;
- } /* enqueue */
-
- QueueEntry dequeue() {
- QueueEntry front = queue[0];
- int i;
-
- for (i = 0; i < size; i++)
- queue[i] = queue[i+1];
-
- --size;
-
- return front;
- } /* dequeue */
-
- boolean containsSource (Primitive p) {
- int i;
-
- for (i = 0; i < size; i++)
- if (queue[i].source == p)
- return true;
-
- return false;
- } /* containsSource */
-
- } /* ServiceQueue */
-
- // queue of running/waiting event sources
- protected ServiceQueue sq;
-
- // Font for text
- protected Font text_font = new EACFont().getFont();
-
- // dimensions of the rectangle to be drawn on-screen
- protected final int HEIGHT = 40;
- protected final int WIDTH = 30;
-
- // Configuration to which the component belongs
- protected Configuration config;
-
- // percentage of Resource Pool consumed during execution
- protected int resource_consumption;
-
- // duration of execution
- protected int duration;
-
- // input
- protected Connector input;
-
- // outputs
- protected Connector output[] = new Connector[MAX_OUTPUTS];
- protected int output_count = 0;
-
- // helps with dragging the component
- protected boolean selected = false;
- protected Point old_anchor;
-
- // Black-on-white (normal) or white-on-black (reversed)?
- protected boolean reverse_color = false;
-
- public EACComponent(EACPanel p, Configuration c) {
- super(p);
- config = c;
- sq = new ServiceQueue();
- sq.queue = new QueueEntry[MAX_INPUTS];
- sq.size = 0;
- } /* constructor */
-
- public void restart() {
- sq.size = 0;
- reverse_color = false;
- selected = false;
- } /* restart */
-
- public void setTop(Point p) {
- anchor = new Point(p.x - (int) (WIDTH / 2), p.y);
- } /* setTop */
-
- public Point getTop() {
- return new Point(anchor.x + (int) (WIDTH / 2), anchor.y);
- } /* getTop */
-
- public void setResourceConsumption(int rc) throws NumberFormatException {
- if ((rc > 0) && (rc <= 100))
- resource_consumption = rc;
- else
- throw new NumberFormatException();
- } /* setResourceConsumption */
-
- public int getResourceConsumption() {
- return resource_consumption;
- } /* getResourceConsumption */
-
- public void setDuration(int d) throws NumberFormatException {
- if (d > 0)
- duration = d;
- else
- throw new NumberFormatException();
- } /* setDuration */
-
- public int getDuration() {
- return duration;
- } /* getDuration */
-
- public void event(Source s) throws ConnectionException {
- long time = config.getTime();
-
- s.reverseColor();
- try {
- s.draw();
- } catch (BoundsException be) {}
-
- //System.out.print(label.getText());
- //System.out.print(" event at: ");
- //System.out.println(time);
-
- if (sq.containsSource(s)) { // missed a deadline
- config.missed_deadlines++;
- System.out.print(label.getText());
- System.out.print(" missed a deadline for ");
- System.out.print(s.getLabel().getText());
- System.out.print(" at: ");
- System.out.println(java.lang.Long.toString(time));
- } else { // there's no existing service call for this source
- // prepare to add new entry to Service Queue
- QueueEntry e = new QueueEntry();
- e.source = s;
- e.request_time = time;
- if (config.rp.reserve(resource_consumption)) { // resource reservation succeeded
- reverseColor(); // indicate we're working it
- try {
- draw();
- } catch (BoundsException be) {}
- config.eventEnqueue(this,time + duration); // set wakeup call to release resources
-
- // new entry will be running
- e.running = true;
- } else { // resource reservation failed
- config.eventEnqueue(this,time + 1); // set wakeup call to try for resources again
-
- // new entry will be waiting
- e.running = false;
- } /* else */
-
- sq.enqueue(e); // add new entry to Service Queue
- } /* else */
- } /* event */
-
- public void wakeup(long t) throws ConnectionException {
- int i;
-
- //System.out.print(label.getText());
- //System.out.println(" wakeup at: " + java.lang.Long.toString(t));
-
- while (sq.size > 0) {
- if ((sq.queue[0].running) && (sq.queue[0].request_time + duration <= t)) { // time to release
- config.rp.release(resource_consumption);
- try {
- Source s = sq.dequeue().source; // dequeue and get the source
- s.normalColor(); // indicates we're done
- normalColor();
- s.draw();
- draw();
- } catch (BoundsException be) {}
- } else
- break;
- } /* while */
-
- // satisfy as many waiting service calls as possible
- for (i = 0; i < sq.size; i++) {
- if (!sq.queue[i].running) {
- if (config.rp.reserve(resource_consumption)) { // resource reservation succeeded
- config.eventEnqueue(this,t + duration); // set wakeup call to release resources
- sq.queue[i].request_time = t;
- sq.queue[i].running = true;
- sq.queue[i].source.reverseColor(); // indicates we're working it
- reverseColor();
- try {
- draw();
- sq.queue[i].source.draw();
- } catch (BoundsException be) {}
- } else { // resource reservation failed
- config.eventEnqueue(this,t + 1); // set wakeup call to try for resources again
- break; // no reason to keep trying right now
- } /* else */
- } /* if */
- } /* while */
-
- } /* wakeup */
-
- public int addInput(Connector c) throws ConnectionException {
- if (input == null) {
- input = c;
- return 1;
- }
- else
- throw new ConnectionException("ERROR: Input already established for this component");
- } /* setInput */
-
- public int addOutput(Connector c) throws ConnectionException {
- if (output_count < MAX_OUTPUTS)
- output[output_count++] = c;
- else
- throw new ConnectionException("ERROR: Maximum outputs established for this component");
-
- return output_count;
- } /* addOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- if (i != 0)
- throw new ConnectionException("ERROR: Bad input index for component");
- else if (input == null)
- throw new ConnectionException("ERROR: No input for this component");
- else
- return input;
- } /* getInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- if ((i >= 0) && (i < output_count))
- return output[i];
- else
- throw new ConnectionException("ERROR: Bad output index for component");
- } /* getOutput */
-
- public void removeInput(int i) throws ConnectionException {
- if (i != 0)
- throw new ConnectionException("ERROR: Bad input index for component");
- else
- input = null;
- } /* removeInput */
-
- public void removeOutput(int i) throws ConnectionException {
- if ((i >= 0) && (i < output_count)) {
- output[i] = output[output_count-1];
- --output_count;
- } else
- throw new ConnectionException("ERROR: Bad output index for component");
- } /* removeOutput */
-
- public int getOutputCount() throws ConnectionException {
- return output_count;
- } /* getOutputCount */
-
- public int getInputCount() throws ConnectionException {
- return (input == null) ? 0 : 1;
- } /* getInputCount */
-
- public boolean contains(Point p) {
- if ((p.x >= anchor.x) &&
- (p.x <= anchor.x + WIDTH) &&
- (p.y >= anchor.y) &&
- (p.y <= anchor.y + HEIGHT))
- return true;
- else
- return false;
- } /* contains */
-
- public Point upperLeft() {
- return anchor;
- } /* upperLeft */
-
- public Point lowerRight() {
- return new Point(anchor.x + WIDTH, anchor.y + HEIGHT);
- } /* lowerRight */
-
- public Point upperRight() {
- return new Point(anchor.x + WIDTH, anchor.y);
- } /* upperRight */
-
- public Point lowerLeft() {
- return new Point(anchor.x, anchor.y + HEIGHT);
- } /* lowerLeft */
-
- public void draw() throws BoundsException {
- if (selected)
- selected = false;
- else if (inBounds()) {
- Graphics g = canvas.getGraphics();
- char stringData[];
- Color bg,
- fg;
-
- if (reverse_color) {
- bg = Color.black;
- fg = Color.white;
- } else {
- bg = Color.white;
- fg = Color.black;
- }
-
- g.setColor(Color.black); // rectangle is always black
- g.drawRect(anchor.x,anchor.y,WIDTH,HEIGHT);
-
- g.setColor(bg); // interior
- g.fillRect(anchor.x+1,anchor.y+1,WIDTH-1,HEIGHT-1);
-
- g.setColor(fg); // middle line and text
- g.drawLine(anchor.x,anchor.y + (int) (HEIGHT / 2),
- anchor.x + WIDTH, anchor.y + (int) (HEIGHT / 2));
-
- // print resource consumption percentage
- g.setFont(text_font);
- g.drawString(java.lang.String.valueOf(resource_consumption),
- anchor.x + 16 - (3 * java.lang.String.valueOf(resource_consumption).length()),
- anchor.y + (int) (HEIGHT / 3));
-
- // print duration
- g.drawString(java.lang.String.valueOf(duration),
- anchor.x + 16 - (3 * java.lang.String.valueOf(duration).length()),
- anchor.y + (int) (HEIGHT * 3 / 4) + 3);
-
- } else
- throw new BoundsException("ERROR: Attempted to place Component partially out of bounds");
- } /* draw */
-
- public void reverseColor() {
- reverse_color = true;
- } /* reverseColor */
-
- public void normalColor() {
- reverse_color = false;
- } /* normalColor */
-
- public void specialDraw() {
- Graphics g = canvas.getGraphics();
-
- g.setXORMode(canvas.getBackground());
- g.drawRect(anchor.x,anchor.y,WIDTH,HEIGHT);
- } /* specialDraw */
-
- public void specialUndraw() {
- Graphics g = canvas.getGraphics();
-
- g.setColor(canvas.getBackground());
- g.setXORMode(canvas.getForeground());
- g.drawRect(anchor.x,anchor.y,WIDTH,HEIGHT);
- } /* specialUndraw */
-
- public void selectedDraw() {
- // this will preclude drawing this component for one repaint() call
- selected = true;
-
- old_anchor = anchor;
-
- super.selectedDraw();
- } /* selectedDraw */
-
- public void reconnect() {
- int i;
-
- // move output anchors
- for (i = 0; i < output_count; i++)
- output[i].setAnchor(new Point(output[i].getAnchor().x + anchor.x - old_anchor.x,
- output[i].getAnchor().y + anchor.y - old_anchor.y));
-
- // move input endpoint
- input.setEndpoint(new Point(input.upperRight().x + anchor.x - old_anchor.x,
- input.upperRight().y + anchor.y - old_anchor.y));
-
- // move label anchor
- label.setAnchor(new Point(label.getAnchor().x + anchor.x - old_anchor.x,
- label.getAnchor().y + anchor.y - old_anchor.y));
- } /* reconnect */
-
- public boolean inBounds() {
- if ((canvas.contains(upperLeft())) &&
- (canvas.contains(lowerRight())))
- return true;
- else
- return false;
- } /* inBounds */
-
- public void write(File f) throws java.io.IOException {
- char temp[]; // for writing label
- int i, n;
-
- f.writeInt(f.COMPONENT);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- f.writeInt(resource_consumption);
- f.writeInt(duration);
-
- // Write out the associated label
- n = label.getText().length();
- f.writeInt(n); // text length
- temp = new char[n];
- temp = label.getText().toCharArray();
- for (i = 0; i < n; i++)
- f.writeChar(temp[i]);
- f.writeInt(label.getAnchor().x); // label position
- f.writeInt(label.getAnchor().y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- char temp[]; // for reading label
- int i, n;
- int label_x, label_y;
-
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- resource_consumption = f.readInt();
- duration = f.readInt();
-
- // get label info
- n = f.readInt(); // text length
- label = new EACLabel(canvas,n);
- temp = new char[n];
- for (i = 0; i < n; i++)
- temp[i] = f.readChar();
- label.setText(java.lang.String.valueOf(temp));
- label_x = f.readInt();
- label_y = f.readInt();
- label.setAnchor(new Point(label_x,label_y));
- label.setLabelee(this);
- try {
- config.addPrimitive(label);
- } catch (TooManyPrimitivesException tmpe) {
- // have faith :-)
- }
- } /* read */
-} \ No newline at end of file
diff --git a/java/EAC/EACFont.java b/java/EAC/EACFont.java
deleted file mode 100644
index 97f4d39b6cb..00000000000
--- a/java/EAC/EACFont.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * Title: EACFont
- * Description: The font to be used for on-screen text
- */
-package EAC;
-import java.awt.*;
-
-public class EACFont {
-
- // Use 9-point Courier New
- public final int FONT_SIZE = 10;
- protected Font eac_font = new Font("Courier New",Font.PLAIN,FONT_SIZE);
-
- public EACFont() {
- }
-
- public Font getFont() {
- return eac_font;
- } /* getFont */
-
-} \ No newline at end of file
diff --git a/java/EAC/EACLabel.java b/java/EAC/EACLabel.java
deleted file mode 100644
index e841c4e4c40..00000000000
--- a/java/EAC/EACLabel.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/**
- * Title: EACLabel
- * Description: Text labels for Event Analysis Configurator graphical
- * primitives
- */
-package EAC;
-import java.awt.*;
-
-public class EACLabel extends Primitive {
-
- // Font for labels
- protected Font label_font = new EACFont().getFont();
-
- // Font Metrics for sizing and bounds checking labels
- protected FontMetrics fm = canvas.getFontMetrics(label_font);
-
- // Label text
- protected char[] text;
-
- // associated Primitive
- protected Primitive labelee;
-
- public EACLabel(EACPanel p, int n) {
- super(p);
- text = new char[n];
- } /* constructor */
-
- public void setLabelee(Primitive p) {
- labelee = p;
- } /* setLabelee */
-
- public Primitive getLabelee() {
- return labelee;
- } /* getLabelee */
-
- public void setText(String s) {
- text = s.toCharArray();
- } /* setText */
-
- public String getText() {
- return java.lang.String.valueOf(text);
- } /* getText */
-
- public void setTop(Point p) {
- anchor = new Point(p.x - (3 * text.length),
- p.y + 9);
- } /* setTop */
-
- public Point getTop() {
- return new Point(anchor.x + (3 * text.length),
- anchor.y - 9);
- } /* getTop */
-
- public void draw() throws BoundsException {
- if (inBounds()) {
- Graphics g = canvas.getGraphics();
- g.setFont(label_font);
- g.drawChars(text,0,text.length,anchor.x,anchor.y);
- } else
- throw new BoundsException("Attempted to place Label partially out of bounds");
- } /* draw */
-
- public void specialDraw() {
- Graphics g = canvas.getGraphics();
-
- g.setXORMode(canvas.getBackground());
- g.drawRect(upperLeft().x, upperLeft().y,
- upperRight().x - upperLeft().x, // WIDTH
- lowerRight().y - upperRight().y); // HEIGHT
- } /* specialDraw */
-
- public void specialUndraw() {
- Graphics g = canvas.getGraphics();
-
- g.setColor(canvas.getBackground());
- g.setXORMode(canvas.getForeground());
- g.drawRect(upperLeft().x, upperLeft().y,
- upperRight().x - upperLeft().x, // WIDTH
- lowerRight().y - upperRight().y); // HEIGHT
- } /* specialUndraw */
-
- public boolean contains(Point p) {
- return ((p.x >= upperLeft().x) &&
- (p.x <= upperRight().x) &&
- (p.y <= lowerLeft().y) &&
- (p.y >= upperLeft().y));
- } /* contains */
-
- public boolean inBounds() {
- // don't know why we need this, but fm.stringWidth seems to return a
- // value that's bigger than the actual width of the text
- //final int xTweak = 20;
-
- //if (canvas.contains(anchor.x + fm.stringWidth(text.toString()) - xTweak,
- // anchor.y - fm.getHeight()))
- if ((canvas.contains(upperLeft())) &&
- (canvas.contains(upperRight())) &&
- (canvas.contains(lowerLeft())) &&
- (canvas.contains(lowerRight())))
- return true;
- else
- return false;
- } /* inBounds */
-
- public Point upperLeft() {
- return new Point(anchor.x,anchor.y - 9);
- } /* upperLeft */
-
- public Point upperRight() {
- return new Point(anchor.x + (6 * text.length),anchor.y - 9);
- } /* upperRight */
-
- public Point lowerLeft() {
- return anchor;
- } /* lowerLeft */
-
- public Point lowerRight() {
- return new Point(anchor.x + (6 * text.length),anchor.y);
- } /* lowerRight */
-
- public void write(File f) throws java.io.IOException {
- int i;
-
- // if there's an associated primitive, that primitive
- // is responsible for writing out the label info too,
- // so only write out the info if there is no labelee
- if (labelee == null) {
- f.writeInt(f.LABEL);
- f.writeInt(text.length);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- for (i = 0; i < text.length; i++)
- f.writeChar(text[i]);
- }
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- int i;
-
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
-
- for (i = 0; i < text.length; i++)
- text[i] = f.readChar();
- } /* read */
-
- public int addInput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to add input to label");
- } /* addInput */
-
- public int addOutput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to add output to label");
- } /* addOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve input from label");
- } /* getInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve output from label");
- } /* getOutput */
-
- public int getInputCount() throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve input count from label");
- } /* getInputCount */
-
- public int getOutputCount() throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve output count from label");
- } /* getOutputCount */
-
- public void removeInput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to remove input from label");
- } /* removeInput */
-
- public void removeOutput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to remove output from label");
- } /* removeOutput */
-
- public void event(Source s) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to push event to label");
- } /* event */
-
- public void wakeup(long t) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to wake up label");
- } /* wakeup */
-} \ No newline at end of file
diff --git a/java/EAC/EACMenuBar.java b/java/EAC/EACMenuBar.java
deleted file mode 100644
index d34a776635d..00000000000
--- a/java/EAC/EACMenuBar.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/**
- * Title: EACMenuBar
- * Description: A subclass of MenuBar for the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-import java.awt.event.*;
-
-public class EACMenuBar extends MenuBar {
-
- protected EACPanel canvas;
- protected Configuration config;
- protected TextField inputArea;
- protected Label reportArea;
-
- public EACMenuBar(EACPanel p, Configuration c, TextField i, Label r) {
- canvas = p;
- config = c;
- inputArea = i;
- reportArea = r;
-
- // Configuration menu
- Menu menu = new Menu("Configuration");
-
- // Configuration menu options
- MenuItem mi = new MenuItem("Clear");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode == config.RUNNING) {
- config.suspend();
- config.mode = config.STOPPED;
- } /* if */
- config.clear();
- canvas.repaint();
- inputArea.setText("");
- reportArea.setText("Configuration cleared");
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Load");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode == config.RUNNING) {
- config.suspend();
- config.mode = config.STOPPED;
- } /* if */
- config.clear();
- canvas.repaint();
- inputArea.setText("");
- reportArea.setText("Please enter a filename");
- canvas.mode = canvas.LOAD;
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Save");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode == config.RUNNING) {
- config.suspend();
- config.mode = config.STOPPED;
- } /* if */
- canvas.repaint();
- canvas.mode = canvas.SAVE;
- inputArea.setText("");
- reportArea.setText("Please enter a filename");
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Run/Restart");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode == config.INITIAL) {
- config.start();
- } else if (config.mode == config.STOPPED) {
- config.restart();
- canvas.repaint();
- config.resume();
- }
- System.out.println();
- System.out.println("Configuration running...");
- config.mode = config.RUNNING;
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Pause/Unpause");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode == config.RUNNING) {
- config.suspend();
- config.mode = config.STOPPED;
- } else if (config.mode == config.STOPPED) {
- config.resume();
- config.mode = config.RUNNING;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- add(menu);
-
- // New menu
- menu = new Menu("New");
-
- // New menu options
- mi = new MenuItem("Component");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.current_component = new EACComponent(canvas,config);
- canvas.repaint();
- canvas.mode = canvas.COMPONENT;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Union");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.current_shape = new Union(canvas);
- canvas.repaint();
- canvas.mode = canvas.EDIT;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Intersection");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.current_shape = new Intersection(canvas);
- canvas.repaint();
- canvas.mode = canvas.EDIT;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Source");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.current_source = new Source(canvas,config);
- canvas.repaint();
- canvas.mode = canvas.SOURCE;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Sink");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.current_shape = new Sink(canvas);
- canvas.repaint();
- canvas.mode = canvas.EDIT;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Connector");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- canvas.repaint();
- canvas.mode = canvas.CONNECTING;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- mi = new MenuItem("Label");
- mi.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (config.mode != config.RUNNING) {
- reportArea.setText("Enter the text for your label in the input area");
- inputArea.setText("");
- canvas.repaint();
- canvas.mode = canvas.LABEL_TYPING;
- }
- } /* actionPerformed */
- }); /* addActionListener */
- menu.add(mi);
-
- add(menu);
-
- } /* constructor */
-
-} /* EACMenuBar */
-
diff --git a/java/EAC/EACPanel.java b/java/EAC/EACPanel.java
deleted file mode 100644
index 333321ef545..00000000000
--- a/java/EAC/EACPanel.java
+++ /dev/null
@@ -1,425 +0,0 @@
-/**
- * Title: EACPanel
- * Description: A subclass of Panel for the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-import java.awt.event.*;
-
-public class EACPanel extends Panel {
-
- protected TextField inputArea;
- protected Label reportArea;
-
- // input modes
- public final int COMMAND = 0;
- public final int SELECT = 1;
- public final int CUT = 2;
- public final int COPY = 3;
- public final int PASTE = 4;
- public final int EDIT = 5;
- public final int CONNECTING = 6;
- public final int COMPONENT = 7;
- public final int LABEL_TYPING = 8;
- public final int LABEL_ADDING = 9;
- public final int RC_TYPING = 10;
- public final int DURATION_TYPING = 11;
- public final int PERIOD_TYPING = 12;
- public final int SOURCE = 13;
- public final int CONNECTING_END = 14;
- public final int LOAD = 15;
- public final int SAVE = 16;
-
- // current input mode
- protected int mode;
-
- // current primitive for drawing
- protected Primitive current_shape;
-
- // current text label
- protected EACLabel current_label;
-
- // current component
- protected EACComponent current_component;
-
- // current source
- protected Source current_source;
-
- // current connector, and associated primitives (indices into config's collection)
- protected Connector current_connector;
- protected int connector_start_index;
- protected int connector_end_index;
-
- // flag for associating the required label with a component or source
- protected boolean component_needs_label = false;
- protected boolean source_needs_label = false;
-
- // Component Configuration associated with this panel
- protected Configuration config;
-
- // for dragging primitives around the panel
- int moving_dx,
- moving_dy;
- boolean repainted;
-
-
- // Constructor
- public EACPanel(Configuration c, TextField i, Label r) {
- config = c;
- inputArea = i;
- inputArea.addKeyListener(eac_key_adapter);
- reportArea = r;
- mode = COMMAND;
- addMouseListener(eac_mouse_adapter);
- addMouseMotionListener(eac_mm_adapter);
- } /* constructor */
-
- // Mouse Adapter
- private class EACMouseAdapter extends MouseAdapter
- implements MouseListener {
-
- EACPanel canvas;
-
- public EACMouseAdapter(EACPanel p) {
- canvas = p;
- } /* constructor */
-
- public void mousePressed(MouseEvent e) {
- switch (mode) {
- case EDIT:
- current_shape.setTop(new Point(e.getX(),e.getY()));
- try {
- if ((config.leftSideOverlaps(current_shape) == -1) &&
- (config.rightSideOverlaps(current_shape) == -1)) {
- current_shape.draw();
- reportArea.setText("");
- config.addPrimitive(current_shape);
- mode = COMMAND;
- } else {
- reportArea.setText("ERROR: Primitives too close together");
- } /* if */
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- } /* try */
- break;
- case SOURCE:
- current_source.setTop(new Point(e.getX(),e.getY()));
- try {
- if ((config.leftSideOverlaps(current_source) == -1) &&
- (config.rightSideOverlaps(current_source) == -1)) {
- current_source.draw();
- config.addPrimitive(current_source);
- reportArea.setText("Please enter the period for this source in the input area");
- inputArea.setText("");
- mode = PERIOD_TYPING;
- } else {
- reportArea.setText("ERROR: Primitives too close together");
- } /* if */
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- } /* try */
- break;
- case COMPONENT:
- current_component.setTop(new Point(e.getX(),e.getY()));
- try {
- if ((config.leftSideOverlaps(current_component) == -1) &&
- (config.rightSideOverlaps(current_component) == -1)) {
- current_component.draw();
- config.addPrimitive(current_component);
- reportArea.setText("Please enter the resource consumption for this component in the input area");
- inputArea.setText("");
- mode = RC_TYPING;
- } else {
- reportArea.setText("ERROR: Primitives too close together");
- } /* if */
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- } /* try */
- break;
- case CONNECTING:
- current_connector = new Connector(canvas);
- current_connector.anchor(new Point(e.getX(),e.getY()));
- connector_start_index = config.leftSideOverlaps(current_connector);
- if (connector_start_index == -1)
- reportArea.setText("ERROR: Connector must begin inside a primitive");
- else
- mode = CONNECTING_END;
- break;
- case LABEL_ADDING:
- current_label.setTop(new Point(e.getX(),e.getY()));
- try {
- current_label.specialUndraw();
- current_label.draw();
- reportArea.setText("");
- config.addPrimitive(current_label);
- mode = COMMAND;
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- } /* try */
- break;
- default: // SELECT mode
- mode = SELECT;
- current_shape = config.primitiveContaining(new Point(e.getX(),e.getY()));
- repaint();
- if (current_shape != null) {
- repaint(); // if there was a previously selected shape, it ignored
- // the last repaint() (kludge--looks better for dragging)
- moving_dx = e.getX() - current_shape.getTop().x;
- moving_dy = e.getY() - current_shape.getTop().y;
- current_shape.selectedDraw();
- repainted = false;
- } else
- repaint(); // need to repaint a second time
- break;
- } /* switch */
- } /* mousePressed */
-
- public void mouseReleased(MouseEvent e) {
- switch (mode) {
- case CONNECTING_END:
- current_connector.end(new Point(e.getX(),e.getY()));
- try {
- connector_end_index = config.rightSideOverlaps(current_connector);
- if (connector_end_index != -1) {
- if (connector_end_index == connector_start_index)
- reportArea.setText("ERROR: Connector cannot start and end at same primitive");
- else {
- Primitive startP = config.getPrimitive(connector_start_index);
- Primitive endP = config.getPrimitive(connector_end_index);
-
- // connect primitives
- try {
- startP.addOutput(current_connector);
- current_connector.setInput(startP);
- current_connector.setOutput(endP);
- endP.addInput(current_connector);
-
- // if everything okay, draw arrow
- current_connector.draw();
- reportArea.setText("");
- config.addPrimitive(current_connector);
-
- mode = COMMAND;
-
- } catch (ConnectionException ce) {
- reportArea.setText(ce.getMessage());
- }
- } /* else */
- } else {
- reportArea.setText("ERROR: Connector must terminate inside a primitive");
- } /* if */
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- } /* try */
- mode = CONNECTING;
- break;
- case SELECT:
- if (current_shape != null)
- current_shape.reconnect();
- if (repainted) // dragging occurred
- repaint();
- break;
- default:
- //no-op
- } /* switch */
- } /* mouseReleased */
-
- public void mouseClicked(MouseEvent e) {}
- public void mouseEntered(MouseEvent e) {}
- public void mouseExited(MouseEvent e) {}
-
- } /* EACMouseAdapter */
-
- // Mouse Motion Adapter
- private class EACMouseMotionAdapter extends MouseMotionAdapter
- implements MouseMotionListener {
-
- public void mouseDragged(MouseEvent e) {
- switch (mode) {
- case CONNECTING_END:
- current_connector.stretch(new Point(e.getX(),e.getY()));
- break;
- case SELECT:
- if (current_shape != null) {
- Point old_top = current_shape.getTop();
- if (!repainted) {
- repaint();
- repainted = true;
- } /* if */
- current_shape.specialUndraw();
- current_shape.setTop(new Point(e.getX() - moving_dx,e.getY() - moving_dy));
- if (!current_shape.inBounds())
- current_shape.setTop(old_top);
- current_shape.specialDraw();
- } /* if */
- default:
- //no-op
- } /* switch */
- } /* mouseDragged */
-
- public void mouseMoved(MouseEvent e) {
- switch (mode) {
- case COMPONENT:
- if (current_component.getAnchor() != null)
- current_component.specialUndraw();
- current_component.setTop(new Point(e.getX(),e.getY()));
- current_component.specialDraw();
- break;
- case SOURCE:
- if (current_source.getAnchor() != null)
- current_source.specialUndraw();
- current_source.setTop(new Point(e.getX(),e.getY()));
- current_source.specialDraw();
- break;
- case EDIT:
- if (current_shape.getAnchor() != null)
- current_shape.specialUndraw();
- current_shape.setTop(new Point(e.getX(),e.getY()));
- current_shape.specialDraw();
- break;
- case LABEL_ADDING:
- if (current_label.getAnchor() != null)
- current_label.specialUndraw();
- current_label.setTop(new Point(e.getX(),e.getY()));
- current_label.specialDraw();
- break;
- default:
- //no-op
- } /* switch */
- } /* mouseMoved */
-
- } /* EACMouseMotionAdapter */
-
- // Key Adapter
- private class EACKeyAdapter extends KeyAdapter implements KeyListener {
-
- EACPanel canvas;
-
- public EACKeyAdapter(EACPanel p) {
- canvas = p;
- } /* constructor */
-
- public void keyPressed(KeyEvent e) {
- Graphics g = getGraphics();
- String input;
-
- if ((mode == RC_TYPING) && (e.getKeyChar() == '\n')) {
- input = new String(inputArea.getText());
- try {
- current_component.setResourceConsumption(Integer.parseInt(input));
- current_component.draw();
- reportArea.setText("Please enter the duration for this component in the input area");
- inputArea.setText("");
- mode = DURATION_TYPING;
- } catch (NumberFormatException nfe) {
- reportArea.setText("Please enter an integer value between 1 and 100, inclusive");
- inputArea.setText("");
- return;
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } /* try */
- } else if ((mode == DURATION_TYPING) && (e.getKeyChar() == '\n')) {
- input = new String(inputArea.getText());
- try {
- current_component.setDuration(Integer.parseInt(input));
- current_component.draw();
- reportArea.setText("Please enter a label for this component in the input area");
- inputArea.setText("");
- component_needs_label = true;
- mode = LABEL_TYPING;
- } catch (NumberFormatException nfe) {
- reportArea.setText("Please enter an integer value");
- inputArea.setText("");
- return;
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } /* try */
- } else if ((mode == LABEL_TYPING) && (e.getKeyChar() == '\n')) {
- current_label = new EACLabel(canvas,inputArea.getText().length());
- current_label.setText(inputArea.getText());
- if (component_needs_label) {
- component_needs_label = false;
- current_component.setLabel(current_label);
- current_label.setLabelee(current_component);
- } else if (source_needs_label) {
- source_needs_label = false;
- current_source.setLabel(current_label);
- current_label.setLabelee(current_source);
- }
- reportArea.setText("Click at desired label location");
- inputArea.setText("");
- mode = LABEL_ADDING;
- } else if ((mode == PERIOD_TYPING) && (e.getKeyChar() == '\n')) {
- input = new String(inputArea.getText());
- try {
- current_source.setPeriod(Integer.parseInt(input));
- current_source.draw();
- inputArea.setText("");
- reportArea.setText("Please enter a label for this source in the input area");
- mode = LABEL_TYPING;
- source_needs_label = true;
- } catch (NumberFormatException nfe) {
- reportArea.setText("Please enter a positive integer value");
- inputArea.setText("");
- return;
- } catch (BoundsException be) {
- reportArea.setText(be.getMessage());
- } /* try */
- } else if ((mode == LOAD) && (e.getKeyChar() == '\n')) {
- File input_file;
- input = new String(inputArea.getText());
- try {
- input_file = new File(input,"r",config,canvas);
- input_file.readConfiguration();
- input_file.close();
- reportArea.setText("Configuration loaded successfully");
- inputArea.setText("");
- } catch (java.io.FileNotFoundException fnfe) {
- } catch (java.io.IOException ioe) {
- } catch (TooManyPrimitivesException tmpe) {
- reportArea.setText(tmpe.getMessage());
- }
- } else if ((mode == SAVE) && (e.getKeyChar() == '\n')) {
- File output_file;
- input = new String(inputArea.getText());
- try {
- output_file = new File(input,"rw",config,canvas);
- output_file.writeConfiguration();
- output_file.close();
- reportArea.setText("Configuration saved successfully");
- inputArea.setText("");
- } catch (java.io.FileNotFoundException fnfe) {
- } catch (java.io.IOException ioe) {}
- } /* if */
- } /* keyPressed */
- } /* EACKeyAdapter */
-
- // Mouse Adapter Instances
- private EACMouseAdapter eac_mouse_adapter = new EACMouseAdapter(this);
- private EACMouseMotionAdapter eac_mm_adapter = new EACMouseMotionAdapter();
-
- // Key Adapter Instance
- private EACKeyAdapter eac_key_adapter = new EACKeyAdapter(this);
-
- public void paint(Graphics g) {
- g.setColor(getBackground());
- g.fillRect(0,0,getSize().width,getSize().height);
- g.setColor(getForeground());
- g.drawRect(0,0,getSize().width - 1,getSize().height - 1);
- config.draw();
- } /* paint */
-
- public void repaint() {
- paint(getGraphics());
- } /* repaint */
-} \ No newline at end of file
diff --git a/java/EAC/EACPrintStream.java b/java/EAC/EACPrintStream.java
deleted file mode 100644
index 9e8d82d03f0..00000000000
--- a/java/EAC/EACPrintStream.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * Title: EACFileStream
- * Description: A stream class for conducting file I/O in the Event Analysis Configurator.
- */
-package EAC;
-
-import java.io.RandomAccessF;
-
-public class EACPrintStream {
-
- PrintStream ps;
-
- public EACPrintStream(String filename) {
- ps = new PrintStream(new FileOutputStream(filename), true);
- }
-} \ No newline at end of file
diff --git a/java/EAC/EmptyQueueException.java b/java/EAC/EmptyQueueException.java
deleted file mode 100644
index 0b2af00c36f..00000000000
--- a/java/EAC/EmptyQueueException.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Title: EmptyQueueException
- * Description: An exception class for when an attempt is made to access
- * the head of the event queue when the queue is empty
- */
-package EAC;
-
-public class EmptyQueueException extends Exception {
-
- public EmptyQueueException(String msg) {
- super(msg);
- }
-} \ No newline at end of file
diff --git a/java/EAC/File.java b/java/EAC/File.java
deleted file mode 100644
index 6ba151cddc0..00000000000
--- a/java/EAC/File.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/**
- * Title: File
- * Description: A file I/O class for the Event Analysis Configurator
- */
-package EAC;
-
-import java.io.RandomAccessFile;
-
-public class File extends RandomAccessFile {
-
- public final int SOURCE = 1;
- public final int SINK = 2;
- public final int COMPONENT = 3;
- public final int CONNECTOR = 4;
- public final int UNION = 5;
- public final int INTERSECTION = 6;
- public final int LABEL = 7;
-
- protected Configuration config;
-
- protected EACPanel canvas;
-
- public File(String filename, String mode, Configuration c, EACPanel p)
- throws java.io.FileNotFoundException {
- super(filename,mode);
- config = c;
- canvas = p;
- } /* constructor */
-
- public void writeConfiguration() throws java.io.IOException {
- int i;
-
- // write number of primitives
- writeInt(config.getPrimitiveCount());
-
- // write primitives
- for (i = 0; i < config.getPrimitiveCount(); i++)
- config.getPrimitive(i).write(this);
-
- } /* writeConfiguration */
-
- public void readConfiguration() throws java.io.IOException, TooManyPrimitivesException {
- int i,
- num,
- label_length, // for reading the number of chars in an EACLabel
- primitiveID;
-
- Primitive next_primitive = new Union(canvas); // dummy initialization
-
- Connector next_connector;
-
- // read number of primitives
- num = readInt();
-
- for (i = 0; i < num; i++) {
- primitiveID = readInt();
- switch(primitiveID) {
- case SOURCE:
- next_primitive = new Source(canvas,config);
- next_primitive.read(this);
- i++; // Add one more to the loop counter 'cause we read our own label
- break;
- case SINK:
- next_primitive = new Sink(canvas);
- next_primitive.read(this);
- break;
- case COMPONENT:
- next_primitive = new EACComponent(canvas,config);
- next_primitive.read(this);
- i++; // Add one more to the loop counter 'cause we read our own label
- break;
- case CONNECTOR:
- next_connector = new Connector(canvas);
- next_primitive = next_connector; // so it can be added to the config
- next_connector.read(this);
- try {
- int connector_start_index = config.leftSideOverlaps(next_connector);
- int connector_end_index = config.rightSideOverlaps(next_connector);
-
- Primitive startP = config.getPrimitive(connector_start_index);
- Primitive endP = config.getPrimitive(connector_end_index);
-
- // reinstate connection
- startP.addOutput(next_connector);
- next_connector.setInput(startP);
- next_connector.setOutput(endP);
- endP.addInput(next_connector);
-
- } catch (ConnectionException ce) {
- // can't happen (right?)
- } /* try */
- break;
- case UNION:
- next_primitive = new Union(canvas);
- next_primitive.read(this);
- break;
- case INTERSECTION:
- next_primitive = new Intersection(canvas);
- next_primitive.read(this);
- break;
- case LABEL:
- label_length = readInt();
- next_primitive = new EACLabel(canvas,label_length);
- next_primitive.read(this);
- break;
- } /* switch */
-
- // add to configuration
- config.addPrimitive(next_primitive);
-
- } /* for */
-
- // draw the configuration
- config.draw();
-
- } /* readConfiguration */
-
-} \ No newline at end of file
diff --git a/java/EAC/InputMode.java b/java/EAC/InputMode.java
deleted file mode 100644
index c44e4a45c4d..00000000000
--- a/java/EAC/InputMode.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * Title: InputMode
- * Description: Maintains Configurator state for deciding how to handle input
- */
-package EAC;
-
-public class InputMode {
-
- public final int COMMAND = 0;
- public final int SELECT = 1;
- public final int CUT = 2;
- public final int COPY = 3;
- public final int PASTE = 4;
- public final int EDIT = 5;
- public final int RESIZE = 6;
-
- protected int mode;
-
- protected Primitive current_shape;
-
- public InputMode() {
- mode = COMMAND;
- } /* constructor */
-
- public int getMode() {
- return mode;
- } /* getMode */
-
- protected void setMode(int m) {
- mode = m;
- } /* setMode */
-} \ No newline at end of file
diff --git a/java/EAC/Intersection.java b/java/EAC/Intersection.java
deleted file mode 100644
index 1e1beafb770..00000000000
--- a/java/EAC/Intersection.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Title: Intersection
- * Description: A binary intersection operator class for the Event Analysis
- * Configurator. Acts as a sort of filter, combining two event
- * streams into one.
- */
-package EAC;
-import java.awt.*;
-
-public class Intersection extends Operator {
-
- // Where did the last event come from?
- protected Primitive last_event_source;
-
- public Intersection(EACPanel p) {
- super(p);
- last_event_source = null;
- } /* constructor */
-
- public void draw() throws BoundsException {
- // the intersection symbol
- final char iSymbol = '^';
-
- // subtle adjustments to position symbol within circle
- final int xTweak = 2;
- final int yTweak = -5;
-
- char symbol[] = new char[1];
- Graphics g = canvas.getGraphics();
-
- super.draw();
- symbol[0] = iSymbol;
- g.drawChars(symbol,0,1,
- anchor.x + (int) (DIAMETER / 2) - xTweak,
- anchor.y + (int) (DIAMETER / 2) - yTweak);
- } /* draw */
-
- public void event(Source s) throws ConnectionException {
- //System.out.println("Intersection event");
- if (last_event_source == null)
- last_event_source = s;
- else if (last_event_source != s) { // we've now gotten events from two distinct sources
- int i;
-
- last_event_source = null;
- for (i = 0; i < output_count; i++)
- output[i].event(s);
- } // else no-op, because this event is from the same source as the last event
- } /* event */
-
- public void write(File f) throws java.io.IOException {
- f.writeInt(f.INTERSECTION);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- } /* read */
-} \ No newline at end of file
diff --git a/java/EAC/Operator.java b/java/EAC/Operator.java
deleted file mode 100644
index 724c9583b20..00000000000
--- a/java/EAC/Operator.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/**
- * Title: Operator
- * Description: An abstract binary operator class for the Event Analysis
- * Configurator
- */
-package EAC;
-import java.awt.*;
-
-public abstract class Operator extends Primitive {
-
- // Radius of the circle
- protected final int DIAMETER = 40;
-
- // inputs
- protected Connector left_input,
- right_input;
-
- // outputs
- protected Connector output[] = new Connector[MAX_OUTPUTS];
- protected int output_count = 0;
-
- // helps with dragging the operator
- protected boolean selected;
- Point old_anchor;
-
- public Operator(EACPanel p) {
- super(p);
- } /* constructor */
-
- public void setTop(Point p) {
- anchor = new Point(p.x - (int) (DIAMETER / 2), p.y);
- } /* setTop */
-
- public Point getTop() {
- return new Point(anchor.x + (int) (DIAMETER / 2), anchor.y);
- } /* getTop */
-
- public void draw() throws BoundsException {
- Graphics g = canvas.getGraphics();
-
- if (selected)
- selected = false;
- else if (inBounds())
- g.drawOval(anchor.x, anchor.y, DIAMETER, DIAMETER);
- else
- throw new BoundsException("ERROR: Attempted to place Operator partially out of bounds");
- } /* draw */
-
- public void specialDraw() {
- Graphics g = canvas.getGraphics();
-
- g.setXORMode(canvas.getBackground());
- g.drawOval(anchor.x,anchor.y,DIAMETER,DIAMETER);
- } /* specialDraw */
-
- public void specialUndraw() {
- Graphics g = canvas.getGraphics();
-
- g.setColor(canvas.getBackground());
- g.setXORMode(canvas.getForeground());
- g.drawOval(anchor.x,anchor.y,DIAMETER,DIAMETER);
- } /* specialUndraw */
-
- public void selectedDraw() {
- old_anchor = anchor;
- selected = true;
- super.selectedDraw();
- } /* selectedDraw */
-
- public void reconnect() {
- int i;
-
- // move output anchors
- for (i = 0; i < output_count; i++)
- output[i].setAnchor(new Point(output[i].getAnchor().x + anchor.x - old_anchor.x,
- output[i].getAnchor().y + anchor.y - old_anchor.y));
-
- // move input endpoints
- if (left_input != null)
- left_input.setEndpoint(new Point(left_input.upperRight().x + anchor.x - old_anchor.x,
- left_input.upperRight().y + anchor.y - old_anchor.y));
- if (right_input != null)
- right_input.setEndpoint(new Point(right_input.upperRight().x + anchor.x - old_anchor.x,
- right_input.upperRight().y + anchor.y - old_anchor.y));
-
- } /* reconnect */
-
- public boolean contains(Point p) {
- if ((p.x >= anchor.x) &&
- (p.x <= anchor.x + DIAMETER) &&
- (p.y >= anchor.y) &&
- (p.y <= anchor.y + DIAMETER))
- return true;
- else
- return false;
- } /* contains */
-
- public Point upperLeft() {
- return anchor;
- } /* upperLeft */
-
- public Point lowerRight() {
- return new Point(anchor.x + DIAMETER, anchor.y + DIAMETER);
- } /* lowerRight */
-
- public Point upperRight() {
- return new Point(anchor.x + DIAMETER, anchor.y);
- } /* upperRight */
-
- public Point lowerLeft() {
- return new Point(anchor.x, anchor.y + DIAMETER);
- } /* lowerLeft */
-
- public int addInput(Connector c) throws ConnectionException {
- if (left_input == null) {
- left_input = c;
- return 0;
- } else if (right_input == null) {
- right_input = c;
- return 1;
- } else
- throw new ConnectionException("ERROR: Operator already has two inputs");
- } /* addInput */
-
- public int addOutput(Connector c) throws ConnectionException {
- if (output_count < MAX_OUTPUTS)
- output[output_count++] = c;
- else
- throw new ConnectionException("ERROR: Maximum outputs established for this operator");
-
- return output_count;
- } /* addOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- if ((i < 0) || (i > 1))
- throw new ConnectionException("ERROR: Bad input index for operator");
- else if (i == 0) {
- if (left_input == null)
- throw new ConnectionException("ERROR: No left input for operator");
- else
- return left_input;
- } else // i == 1
- if (right_input == null)
- throw new ConnectionException("ERROR: No right input for operator");
-
- return right_input;
- } /* getInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- if ((i >= 0) && (i < output_count))
- return output[i];
- else
- throw new ConnectionException("ERROR: Bad output index for operator");
- } /* getOutput */
-
- public void removeInput(int i) throws ConnectionException {
- if ((i < 0) || (i > 1))
- throw new ConnectionException("ERROR: Bad input index for operator");
- else if (i == 0) {
- if (left_input == null)
- throw new ConnectionException("ERROR: No left input for operator");
- else
- left_input = null;
- } else if (i == 1) {
- if (right_input == null)
- throw new ConnectionException("ERROR: No right input for operator");
- else
- right_input = null;
- }
- } /* removeInput */
-
- public void removeOutput(int i) throws ConnectionException {
- if ((i < 0) || (i > output_count))
- throw new ConnectionException("ERROR: Bad output index for operator");
- else {
- output[i] = output[output_count-1];
- --output_count;
- }
- } /* removeOutput */
-
- public int getOutputCount() throws ConnectionException {
- return output_count;
- } /* getOutputCount */
-
- public int getInputCount() throws ConnectionException {
- if (left_input == null)
- return 0;
- else if (right_input == null)
- return 1;
- else
- return 2;
- } /* getInputCount */
-
- public void wakeup(long t) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to wake up operator");
- } /* wakeup */
-
- public boolean inBounds() {
- if (canvas.contains(anchor.x,anchor.y) &&
- canvas.contains(anchor.x + DIAMETER, anchor.y + DIAMETER))
- return true;
- else
- return false;
- } /* inBounds */
-
-} \ No newline at end of file
diff --git a/java/EAC/Primitive.java b/java/EAC/Primitive.java
deleted file mode 100644
index a0532a9731b..00000000000
--- a/java/EAC/Primitive.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * Title: Primitive
- * Description: An abstract class for Event Analysis Configurator graphical
- * primitives
- */
-package EAC;
-import java.awt.*;
-import java.io.*;
-
-public abstract class Primitive {
-
- // maximum number of outputs from any primitive
- public final int MAX_OUTPUTS = 8;
-
- // maximum number of inputs to a sink
- public final int MAX_INPUTS = 8;
-
- // where the primitive will be drawn
- protected EACPanel canvas;
-
- // anchor point of the graphical shape
- protected Point anchor;
-
- // associated label
- protected EACLabel label;
-
- public Primitive(EACPanel p) {
- canvas = p;
- } /* constructor */
-
- public void setAnchor(Point p) {
- anchor = p;
- } /* setAnchor */
-
- public Point getAnchor() {
- return anchor;
- } /* getAnchor */
-
- public void setLabel(EACLabel l) {
- label = l;
- } /* setLabel */
-
- public EACLabel getLabel() {
- return label;
- } /* getLabel */
-
- public void restart() {
- // no-op for most primitives
- // overload as needed
- } /* restart */
-
- public void specialDraw() {
- // no-op for some primitives
- // overload as needed
- } /* specialDraw */
-
- public void specialUndraw() {
- // no-op for some primitives
- // overload as needed
- } /* specialUndraw */
-
- public void reconnect() {
- // no-op for some primitives
- // overload as needed
- } /* reconnect */
-
- public void selectedDraw() {
- final int d = 4; // dimension of hotspot
- Graphics g = canvas.getGraphics();
-
- g.setColor(java.awt.Color.darkGray);
- g.drawRect(upperLeft().x - (d/2),upperLeft().y - (d/2), d, d);
- g.drawRect(lowerLeft().x - (d/2),lowerLeft().y - (d/2), d, d);
- g.drawRect(upperRight().x - (d/2),upperRight().y - (d/2), d, d);
- g.drawRect(lowerRight().x - (d/2),lowerRight().y - (d/2), d, d);
- } /* selectedDraw */
-
- // establish the top center point of the graphical shape
- public abstract void setTop(Point p);
-
- public abstract Point getTop();
-
- public abstract boolean inBounds();
-
- public abstract int addInput(Connector c) throws ConnectionException;
-
- public abstract int addOutput(Connector c) throws ConnectionException;
-
- public abstract Connector getInput(int i) throws ConnectionException;
-
- public abstract Connector getOutput(int i) throws ConnectionException;
-
- public abstract void removeInput(int i) throws ConnectionException;
-
- public abstract void removeOutput(int i) throws ConnectionException;
-
- public abstract int getInputCount() throws ConnectionException;
-
- public abstract int getOutputCount() throws ConnectionException;
-
- public abstract void event(Source s) throws ConnectionException;
-
- public abstract void wakeup(long t) throws ConnectionException;
-
- public abstract void draw() throws BoundsException;
-
- public abstract void write(File f) throws java.io.IOException;
-
- public abstract void read(File f) throws java.io.IOException;
-
- public abstract boolean contains(Point p);
-
- public abstract Point upperLeft();
-
- public abstract Point lowerRight();
-
- public abstract Point upperRight();
-
- public abstract Point lowerLeft();
-
-} \ No newline at end of file
diff --git a/java/EAC/Queue.java b/java/EAC/Queue.java
deleted file mode 100644
index 20c4483a17a..00000000000
--- a/java/EAC/Queue.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Title: Queue
- * Description: The primary event queue for the Event Analysis Configurator
- */
-package EAC;
-
-public class Queue {
-
- private class Node {
-
- public Primitive primitive;
- public long time;
- public Node next;
-
- public Node(Primitive p, long t, Node n) {
- primitive = p;
- time = t;
- next = n;
- } /* constructor */
-
- } /* Node */
-
- private Node head;
-
- private int count;
-
- public Queue() {
- count = 0;
- } /* constructor */
-
- public boolean empty() {
- return (count == 0);
- } /* empty */
-
- public void clear() {
- while (!empty())
- try {
- dequeue();
- } catch (EmptyQueueException eqe) {
- // can't happen
- }
- } /* clear */
-
- public void enqueue(Primitive p, long t) {
- if (head == null) {
- head = new Node(p,t,null);
- count = 1;
- } else { // non-empty
- if ((head.time == t) && (head.primitive == p))
- return; // no duplicates
- else if (head.time >= t) { // need new head
- Node temp = new Node(p,t,head);
- head = temp;
- } else { // find insertion point
- Node ptr = head;
-
- while (ptr.next != null)
- if (ptr.next.time < t)
- ptr = ptr.next;
- else
- break;
-
- if (ptr.next == null)
- ptr.next = new Node(p,t,null);
- else if ((ptr.next.time == t) && (ptr.next.primitive == p))
- return; // no duplicates
- else {
- Node temp = new Node(p,t,ptr.next);
- ptr.next = temp;
- }
- }
-
- count++;
- } /* else */
- } /* enqueue */
-
- public Primitive dequeue () throws EmptyQueueException {
- if (count == 0)
- throw new EmptyQueueException("ERROR: dequeue called when queue empty");
-
- Primitive temp = head.primitive;
- head = head.next;
- --count;
- return temp;
- } /* dequeue */
-
- public long frontTime () throws EmptyQueueException {
- if (count == 0)
- throw new EmptyQueueException("ERROR: frontTime called when queue empty");
-
- return head.time;
- } /* frontTime */
-
-} \ No newline at end of file
diff --git a/java/EAC/README b/java/EAC/README
deleted file mode 100644
index 91773ab16bd..00000000000
--- a/java/EAC/README
+++ /dev/null
@@ -1,6 +0,0 @@
-This directory contains the source code for the Event Analysis Configurator (EAC).
-The EAC was built as a final project for an Advanced User Interface (CS 501) course,
-taught by Dr. Kimura in the fall of 2000.
-
-There are also two MS-Word documents which were written as part of the project.
-Hopefully these will explain what the EAC is, what it does, and how it works.
diff --git a/java/EAC/ResourcePool.java b/java/EAC/ResourcePool.java
deleted file mode 100644
index c2200baa2fc..00000000000
--- a/java/EAC/ResourcePool.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Title: ResourcePool
- * Description: An abstraction of a collection of resources that can be
- * reserved and released by real-time components
- */
-package EAC;
-
-public class ResourcePool {
-
- // percentage of resources reserved
- protected int reserved;
-
- public ResourcePool()
- {
- reserved = 0;
- } /* default constructor */
-
- public ResourcePool(int r) {
- reserved = r;
- } /* constructor */
-
- public int usage() {
- return reserved;
- } /* usage */
-
- public boolean reserve(int r) {
- if (reserved + r > 100)
- return false;
- else {
- //System.out.println("Reservation ok: " + java.lang.Integer.toString(r));
- reserved += r;
- return true;
- } /* else */
- } /* reserve */
-
- public boolean release(int r) {
- if (reserved - r < 0)
- return false;
- else {
- //System.out.println("Release ok: " + java.lang.Integer.toString(r));
- reserved -= r;
- return true;
- } /* else */
- } /* release */
-
-} \ No newline at end of file
diff --git a/java/EAC/Rubberband.java b/java/EAC/Rubberband.java
deleted file mode 100644
index b5fcf7e60a0..00000000000
--- a/java/EAC/Rubberband.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * A abstract base class for rubberbands.<p>
- *
- * Rubberbands do their rubberbanding inside of a Component,
- * which must be specified at construction time.<p>
- *
- * Subclasses are responsible for implementing
- * <em>void drawLast(Graphics g)</em> and
- * <em>void drawNext(Graphics g)</em>.
- *
- * drawLast() draws the appropriate geometric shape at the last
- * rubberband location, while drawNext() draws the appropriate
- * geometric shape at the next rubberband location. All of the
- * underlying support for rubberbanding is taken care of here,
- * including handling XOR mode setting; extensions of Rubberband
- * need not concern themselves with anything but drawing the
- * last and next geometric shapes.<p>
- *
- * @version 1.00, 12/27/95
- * @author David Geary
- */
-package EAC;
-import java.awt.*;
-
-abstract public class Rubberband {
- protected Point anchor = new Point(0,0);
- protected Point stretched = new Point(0,0);
- protected Point last = new Point(0,0);
- protected Point end = new Point(0,0);
-
- private Component component;
- private boolean firstStretch = true;
-
- abstract public void drawLast(Graphics g);
- abstract public void drawNext(Graphics g);
-
- public Rubberband(Component component) {
- this.component = component;
- }
-
- public Point getAnchor () { return anchor; }
- public Point getStretched() { return stretched; }
- public Point getLast () { return last; }
- public Point getEnd () { return end; }
- public void setAnchor(Point p) { anchor = p; }
- public void setEnd(Point p) { end = p; }
-
- public void anchor(Point p) {
- firstStretch = true;
- anchor.x = p.x;
- anchor.y = p.y;
-
- stretched.x = last.x = anchor.x;
- stretched.y = last.y = anchor.y;
- }
-
- public void stretch(Point p) {
- last.x = stretched.x;
- last.y = stretched.y;
- stretched.x = p.x;
- stretched.y = p.y;
-
- Graphics g = component.getGraphics();
- if (g != null) {
- g.setXORMode(component.getBackground());
-
- if (firstStretch == true)
- firstStretch = false;
- else
- drawLast(g);
-
- drawNext(g);
- }
- }
-
- public void end(Point p) {
- last.x = end.x = p.x;
- last.y = end.y = p.y;
-
- Graphics g = component.getGraphics();
- if(g != null) {
- g.setXORMode(component.getBackground());
- drawLast(g);
- }
- }
-
- public Rectangle bounds() {
- return new Rectangle(stretched.x < anchor.x ?
- stretched.x : anchor.x,
- stretched.y < anchor.y ?
- stretched.y : anchor.y,
- Math.abs(stretched.x - anchor.x),
- Math.abs(stretched.y - anchor.y));
- }
-
- public Rectangle lastBounds() {
- return new Rectangle(
- last.x < anchor.x ? last.x : anchor.x,
- last.y < anchor.y ? last.y : anchor.y,
- Math.abs(last.x - anchor.x),
- Math.abs(last.y - anchor.y));
- }
-}
diff --git a/java/EAC/RubberbandLine.java b/java/EAC/RubberbandLine.java
deleted file mode 100644
index 8a4ebfd2230..00000000000
--- a/java/EAC/RubberbandLine.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * Title: RubberbandLine
- * Description: A line subclass of Rubberband
- */
-package EAC;
-import java.awt.*;
-
-public class RubberbandLine extends Rubberband {
-
- public RubberbandLine(EACPanel p) {
- super(p);
- } /* RubberbandLine constructor */
-
- public void drawNext(Graphics g) {
- g.drawLine(getAnchor().x,
- getAnchor().y,
- getStretched().x,
- getStretched().y);
- } /* drawNext */
-
- public void drawLast(Graphics g) {
- g.drawLine(getAnchor().x,
- getAnchor().y,
- getLast().x,
- getLast().y);
- } /* drawLast */
-
-} /* RubberbandLine */
diff --git a/java/EAC/Sink.java b/java/EAC/Sink.java
deleted file mode 100644
index f4f8d02d0fe..00000000000
--- a/java/EAC/Sink.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/**
- * Title: Sink
- * Description: An event sink for the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-
-public class Sink extends Primitive {
-
- // triangle dimensions
- protected final int WIDTH = 20;
- protected final int HEIGHT = 35;
-
- // lower left and lower right corner points
- // inherited anchor attribute holds the top point
- protected Point p2,
- p3;
-
- // inputs
- protected Connector input[] = new Connector[MAX_INPUTS];
- protected int input_count;
-
- // for help with dragging this Sink
- Point old_anchor;
-
- public Sink(EACPanel p) {
- super(p);
- } /* constructor */
-
- public void draw() throws BoundsException {
- int x[] = new int[3],
- y[] = new int[3];
-
- if (inBounds()) {
- Graphics g = canvas.getGraphics();
-
- g.drawLine(anchor.x,anchor.y,p2.x,p2.y);
- g.drawLine(p2.x,p2.y,p3.x,p3.y);
- g.drawLine(p3.x,p3.y,anchor.x,anchor.y);
-
- /* Make it black */
- x[0] = anchor.x;
- x[1] = p2.x;
- x[2] = p3.x;
-
- y[0] = anchor.y;
- y[1] = p2.y;
- y[2] = p3.y;
-
- g.fillPolygon(x,y,3);
- } else
- throw new BoundsException("ERROR: Attempted to place Sink partially out of bounds");
- } /* draw */
-
- public void selectedDraw() {
- old_anchor = anchor;
- super.selectedDraw();
- } /* selectedDraw */
-
- public void specialDraw() {
- int x[] = new int[3],
- y[] = new int[3];
-
- Graphics g = canvas.getGraphics();
-
- g.setXORMode(canvas.getBackground());
- g.drawLine(anchor.x,anchor.y,p2.x,p2.y);
- g.drawLine(p2.x,p2.y,p3.x,p3.y);
- g.drawLine(p3.x,p3.y,anchor.x,anchor.y);
-
- /* Make it black */
- x[0] = anchor.x;
- x[1] = p2.x;
- x[2] = p3.x;
-
- y[0] = anchor.y;
- y[1] = p2.y;
- y[2] = p3.y;
-
- g.fillPolygon(x,y,3);
- } /* specialDraw */
-
- public void specialUndraw() {
- int x[] = new int[3],
- y[] = new int[3];
-
- Graphics g = canvas.getGraphics();
-
- g.setColor(canvas.getBackground());
- g.setXORMode(canvas.getForeground());
- g.drawLine(anchor.x,anchor.y,p2.x,p2.y);
- g.drawLine(p2.x,p2.y,p3.x,p3.y);
- g.drawLine(p3.x,p3.y,anchor.x,anchor.y);
-
- /* Make it black */
- x[0] = anchor.x;
- x[1] = p2.x;
- x[2] = p3.x;
-
- y[0] = anchor.y;
- y[1] = p2.y;
- y[2] = p3.y;
-
- g.fillPolygon(x,y,3);
- } /* specialUndraw */
-
- public void reconnect() {
- int i;
-
- for (i = 0; i < input_count; i++)
- input[i].setEndpoint(new Point(input[i].upperRight().x + anchor.x - old_anchor.x,
- input[i].upperRight().y + anchor.y - old_anchor.y));
- } /* reconnect */
-
- public boolean contains(Point p) {
- if ((p.x >= p2.x) &&
- (p.x <= p3.x) &&
- (p.y >= anchor.y) &&
- (p.y <= anchor.y + HEIGHT))
- return true;
- else
- return false;
- } /* contains */
-
- public Point upperLeft() {
- return new Point(p2.x,anchor.y);
- } /* upperLeft */
-
- public Point lowerRight() {
- return p3;
- } /* lowerRight */
-
- public Point upperRight() {
- return new Point(p3.x,anchor.y);
- } /* upperRight */
-
- public Point lowerLeft() {
- return p2;
- } /* lowerLeft */
-
- public void setTop(Point p) {
- anchor = p;
- p2 = bottomLeft();
- p3 = bottomRight();
- } /* setTop */
-
- public Point getTop() {
- return anchor;
- } /* getTop */
-
- public boolean inBounds() {
- if (canvas.contains(bottomLeft()) &&
- canvas.contains(bottomRight()))
- return true;
- else
- return false;
- } /* inBounds */
-
- private Point bottomLeft() {
- return new Point(anchor.x - WIDTH, anchor.y + HEIGHT);
- } /* bottomLeft */
-
- private Point bottomRight() {
- return new Point(anchor.x + WIDTH, anchor.y + HEIGHT);
- } /* bottomRight */
-
- public void write(File f) throws java.io.IOException {
- f.writeInt(f.SINK);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- p2 = bottomLeft();
- p3 = bottomRight();
- } /* read */
-
- public int addInput(Connector c) throws ConnectionException {
- if (input_count == MAX_INPUTS)
- throw new ConnectionException("ERROR: Maximum inputs established for sink");
- else
- input[input_count++] = c;
-
- return input_count;
- } /* addInput */
-
- public int addOutput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to add output to sink");
- } /* addOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- if ((i < 0) || (i >= input_count))
- throw new ConnectionException("ERROR: Bad input index for sink");
- else
- return input[i];
- } /* getInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve output from source");
- } /* getOutput */
-
- public void removeOutput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to remove output from source");
- } /* removeOutput */
-
- public void removeInput(int i) throws ConnectionException {
- if ((i >= 0) && (i < input_count)) {
- input[i] = input[input_count-1];
- --input_count;
- } else
- throw new ConnectionException("ERROR: Bad input index for sink");
- } /* removeInput */
-
- public int getInputCount() throws ConnectionException {
- return input_count;
- } /* getInputCount */
-
- public int getOutputCount() throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve output count from sink");
- } /* getOutputCount */
-
- public void event(Source s) {
- } /* event */
-
- public void wakeup(long t) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to wake up sink");
- } /* wakeup */
-} \ No newline at end of file
diff --git a/java/EAC/Source.java b/java/EAC/Source.java
deleted file mode 100644
index d8b50ee224f..00000000000
--- a/java/EAC/Source.java
+++ /dev/null
@@ -1,341 +0,0 @@
-/**
- * Title: Source
- * Description: An event source for the Event Analysis Configurator
- */
-package EAC;
-import java.awt.*;
-
-public class Source extends Primitive {
-
- // Font for text
- protected Font text_font = new EACFont().getFont();
-
- // triangle dimensions
- protected final int WIDTH = 20;
- protected final int HEIGHT = 35;
-
- // lower left and lower right corner points
- // inherited anchor attribute holds the top point
- protected Point p2,
- p3;
-
- // period at which events will be generated
- protected int period;
-
- // where the Source was anchored prior to a move
- protected Point old_anchor;
-
- // where events will be pushed
- protected Connector output[] = new Connector[MAX_OUTPUTS];
- protected int output_count;
-
- // Is this Source currently selected for dragging?
- protected boolean selected = false;
-
- // Black-on-white (normal) or white-on-black (reversed)?
- protected boolean reverse_color = false;
-
- // configuration to which the Source belongs
- Configuration config;
-
- public Source(EACPanel p, Configuration c) {
- super(p);
- config = c;
- output_count = 0;
- period = 0;
- } /* constructor */
-
- private void drawTriangle(Graphics g) {
- g.drawLine(anchor.x,anchor.y,p2.x,p2.y);
- g.drawLine(p2.x,p2.y,p3.x,p3.y);
- g.drawLine(p3.x,p3.y,anchor.x,anchor.y);
- } /* drawTriangle */
-
- public void draw() throws BoundsException {
- int x[] = new int[3],
- y[] = new int[3];
-
- if (selected)
- selected = false;
- else if (inBounds()) {
- Graphics g = canvas.getGraphics();
- Color bg,
- fg;
-
- x[0] = anchor.x;
- x[1] = p2.x;
- x[2] = p3.x;
-
- y[0] = anchor.y;
- y[1] = p2.y;
- y[2] = p3.y;
-
- if (reverse_color) {
- bg = Color.black;
- fg = Color.white;
- } else {
- bg = Color.white;
- fg = Color.black;
- }
-
- g.setColor(bg); // for interior
- g.fillPolygon(x,y,3);
-
- g.setColor(Color.black); // triangle itself is always black
- drawTriangle(g);
-
- g.setColor(fg); // for text
-
- // print period
- if (period > 0) {
- g.setFont(text_font);
- g.drawString(java.lang.String.valueOf(period),
- anchor.x - (3 * java.lang.String.valueOf(period).length()),
- anchor.y + 28);
- }
- } else
- throw new BoundsException("ERROR: Attempted to place source partially out of bounds");
- } /* draw */
-
- public void selectedDraw() {
- Graphics g = canvas.getGraphics();
- int x[] = new int[3],
- y[] = new int[3];
-
- old_anchor = anchor;
- x[0] = anchor.x;
- x[1] = p2.x;
- x[2] = p3.x;
-
- y[0] = anchor.y;
- y[1] = p2.y;
- y[2] = p3.y;
-
- //drawTriangle();
- g.setColor(canvas.getBackground());
- g.fillPolygon(x,y,3);
-
- // this will preclude drawing this Source for one repaint() call
- selected = true;
-
- super.selectedDraw();
- } /* selectedDraw */
-
- public void specialDraw() {
- Graphics g = canvas.getGraphics();
-
- g.setXORMode(canvas.getBackground());
- drawTriangle(g);
- } /* specialDraw */
-
- public void specialUndraw() {
- Graphics g = canvas.getGraphics();
-
- g.setColor(canvas.getBackground());
- g.setXORMode(canvas.getForeground());
- drawTriangle(g);
- } /* specialUndraw */
-
- public void reverseColor() {
- reverse_color = true;
- } /* reverseColor */
-
- public void normalColor() {
- reverse_color = false;
- } /* normalColor */
-
- public void reconnect() {
- int i;
-
- for (i = 0; i < output_count; i++)
- output[i].setAnchor(new Point(output[i].getAnchor().x + anchor.x - old_anchor.x,
- output[i].getAnchor().y + anchor.y - old_anchor.y));
-
- // move label anchor
- label.setAnchor(new Point(label.getAnchor().x + anchor.x - old_anchor.x,
- label.getAnchor().y + anchor.y - old_anchor.y));
- } /* reconnect */
-
- public boolean contains(Point p) {
- if ((p.x >= p2.x) &&
- (p.x <= p3.x) &&
- (p.y >= anchor.y) &&
- (p.y <= anchor.y + HEIGHT))
- return true;
- else
- return false;
- } /* contains */
-
- public Point upperLeft() {
- return new Point(p2.x,anchor.y);
- } /* upperLeft */
-
- public Point lowerRight() {
- return p3;
- } /* lowerRight */
-
- public Point upperRight() {
- return new Point(p3.x,anchor.y);
- } /* upperRight */
-
- public Point lowerLeft() {
- return p2;
- } /* lowerLeft */
-
- public void setTop(Point p) {
- anchor = p;
- p2 = bottomLeft();
- p3 = bottomRight();
- } /* setTop */
-
- public Point getTop() {
- return anchor;
- } /* getTop */
-
- public void setPeriod(int p) throws NumberFormatException {
- if (p > 0) {
- period = p;
- config.eventEnqueue(this,period); // Enqueue first wakeup time
- }
- else
- throw new NumberFormatException();
- } /* setPeriod */
-
- public int getPeriod() {
- return period;
- } /* getPeriod */
-
- public void restart() {
- config.eventEnqueue(this,period);
- reverse_color = false;
- selected = false;
- } /* restart */
-
- public int addOutput(Connector c) throws ConnectionException {
- if (output_count == MAX_OUTPUTS)
- throw new ConnectionException("ERROR: Maximum outputs established for source");
- else
- output[output_count++] = c;
-
- return output_count;
- } /* addOutput */
-
- public int addInput(Connector c) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to add input to source");
- } /* addInput */
-
- public Connector getOutput(int i) throws ConnectionException {
- if ((i < 0) || (i >= output_count))
- throw new ConnectionException("ERROR: Bad output index for source");
- else
- return output[i];
- } /* getOutput */
-
- public Connector getInput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve input from source");
- } /* getInput */
-
- public void removeInput(int i) throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to remove input from source");
- } /* removeInput */
-
- public void removeOutput(int i) throws ConnectionException {
- if ((i >= 0) && (i < output_count)) {
- output[i] = output[output_count-1];
- --output_count;
- } else
- throw new ConnectionException("ERROR: Bad output index for source");
- } /* removeOutput */
-
- public int getOutputCount() throws ConnectionException {
- return output_count;
- } /* getOutputCount */
-
- public int getInputCount() throws ConnectionException {
- throw new ConnectionException("ERROR: Attempted to retrieve input count from source");
- } /* getInputCount */
-
- public void event(Source s) throws ConnectionException {
- throw new ConnectionException("Internal error: event() called on source");
- } /* event */
-
- public void wakeup(long t) throws ConnectionException {
- int i;
-
- //System.out.println("Source wakeup at: " + java.lang.Long.toString(t));
- config.eventEnqueue(this,t + period); // enqueue next wakeup time
-
- // send an event to all outputs
- for (i = 0; i < output_count; i++)
- output[i].event(this);
- } /* wakeup */
-
- public boolean inBounds() {
- if (canvas.contains(bottomLeft()) &&
- canvas.contains(bottomRight()) &&
- canvas.contains(anchor))
- return true;
- else
- return false;
- } /* inBounds */
-
- private Point bottomLeft() {
- return new Point(anchor.x - WIDTH, anchor.y + HEIGHT);
- } /* bottomLeft */
-
- private Point bottomRight() {
- return new Point(anchor.x + WIDTH, anchor.y + HEIGHT);
- } /* bottomRight */
-
- public void write(File f) throws java.io.IOException {
- char temp[]; // for reading label
- int i, n;
-
- f.writeInt(f.SOURCE);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- f.writeInt(period);
-
- // Write out the associated label
- n = label.getText().length();
- f.writeInt(n); // text length
- temp = new char[n];
- temp = label.getText().toCharArray();
-
- for (i = 0; i < n; i++)
- f.writeChar(temp[i]);
- f.writeInt(label.getAnchor().x); // label position
- f.writeInt(label.getAnchor().y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- char temp[]; // for reading label
- int i, n;
- int label_x, label_y;
-
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- period = f.readInt();
- config.eventEnqueue(this,period); // Enqueue first event
- p2 = bottomLeft();
- p3 = bottomRight();
-
- // get label info
- n = f.readInt(); // text length
- label = new EACLabel(canvas,n);
- temp = new char[n];
- for (i = 0; i < n; i++)
- temp[i] = f.readChar();
- label.setText(java.lang.String.valueOf(temp));
- label_x = f.readInt();
- label_y = f.readInt();
- label.setAnchor(new Point(label_x,label_y));
- label.setLabelee(this);
- try {
- config.addPrimitive(label);
- } catch (TooManyPrimitivesException tmpe) {
- // have faith :-)
- }
- } /* read */
-} \ No newline at end of file
diff --git a/java/EAC/System Manual.doc b/java/EAC/System Manual.doc
deleted file mode 100644
index 89d76eba720..00000000000
--- a/java/EAC/System Manual.doc
+++ /dev/null
Binary files differ
diff --git a/java/EAC/TooManyPrimitivesException.java b/java/EAC/TooManyPrimitivesException.java
deleted file mode 100644
index d9cb8efa733..00000000000
--- a/java/EAC/TooManyPrimitivesException.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Title: TooManyPrimitivesException
- * Description: An exception class for when an attempt is made to add a
- * primitives when the maximum number have already been added
- */
-package EAC;
-
-public class TooManyPrimitivesException extends Exception {
-
- public TooManyPrimitivesException(String msg) {
- super(msg);
- }
-} \ No newline at end of file
diff --git a/java/EAC/Union.java b/java/EAC/Union.java
deleted file mode 100644
index 107390dc560..00000000000
--- a/java/EAC/Union.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Title: Union
- * Description: A binary union operator class for the Event Analysis
- * Configurator. Acts as a sort of multiplexor, combining two
- * event streams into one.
- */
-package EAC;
-import java.awt.*;
-
-public class Union extends Operator {
-
- public Union(EACPanel p) {
- super(p);
- } /* constructor */
-
- public void draw() throws BoundsException {
- // the union symbol
- final char uSymbol = 'U';
-
- // subtle adjustments to position symbol within circle
- final int xTweak = 4;
- final int yTweak = -4;
-
- char symbol[] = new char[1];
-
- Graphics g = canvas.getGraphics();
-
- super.draw();
- symbol[0] = (char) uSymbol;
- g.drawChars(symbol,0,1,
- anchor.x + (int) (DIAMETER / 2) - xTweak,
- anchor.y + (int) (DIAMETER / 2) - yTweak);
- } /* draw */
-
- public void event(Source s) throws ConnectionException {
- int i;
-
- //System.out.println("Union event");
-
- // send an event to all outputs
- for (i = 0; i < output_count; i++)
- output[i].event(s);
- } /* event */
-
- public void write(File f) throws java.io.IOException {
- f.writeInt(f.UNION);
- f.writeInt(anchor.x);
- f.writeInt(anchor.y);
- } /* write */
-
- public void read(File f) throws java.io.IOException {
- anchor = new Point();
- anchor.x = f.readInt();
- anchor.y = f.readInt();
- } /* read */
-} \ No newline at end of file
diff --git a/java/EAC/User_Manual.doc b/java/EAC/User_Manual.doc
deleted file mode 100644
index 5f17fc98f37..00000000000
--- a/java/EAC/User_Manual.doc
+++ /dev/null
Binary files differ
diff --git a/java/ImageProcessing/ImageProcessing.dsp b/java/ImageProcessing/ImageProcessing.dsp
deleted file mode 100644
index 897cf304526..00000000000
--- a/java/ImageProcessing/ImageProcessing.dsp
+++ /dev/null
@@ -1,253 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ImageProcessing" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=ImageProcessing - Java Virtual Machine 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 "ImageProcessing.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 "ImageProcessing.mak"\
- CFG="ImageProcessing - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ImageProcessing - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "ImageProcessing - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "ImageProcessing - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "ImageProcessing - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "ImageProcessing - Java Virtual Machine Release"
-# Name "ImageProcessing - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\filters\Assert.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\BaseButton.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\BenchmarkApplet.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\BleachFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\BlurFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\DarkenFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\DeSpeckleFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\DialogManager.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\DialogType.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\DissolveFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\EdgeDetectFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\EmbossFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\FileBrowser.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\FilePanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\GifEncoder.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\GIFHandler.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\Hierarchy.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\HierarchyAdapter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\Icon.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\ImageApp.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\ImageByteCounter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\ImageCanvas.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\ImageEncoder.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\ImageProcessor.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\ImageSender.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\IntHashtable.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\ListFiles.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\LoadURLFrame.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\MedFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\OilPaintFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\Options.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\PixelizeFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\RandomizeFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\RotateFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\SaveURLFrame.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\Separator.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\ServerHandler.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\ServerTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\SharpenFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\SpatialFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\SpreadFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\StatusDisplay.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\StatusIndicator.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\Tester.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\framework\TestHandler.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\filters\Timer.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/ImageProcessing/ImageProcessing.dsw b/java/ImageProcessing/ImageProcessing.dsw
deleted file mode 100644
index 672fddb912b..00000000000
--- a/java/ImageProcessing/ImageProcessing.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "ImageProcessing"=.\ImageProcessing.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/java/ImageProcessing/filters/Assert.java b/java/ImageProcessing/filters/Assert.java
deleted file mode 100644
index c83f9ca94c0..00000000000
--- a/java/ImageProcessing/filters/Assert.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package imaging.filters;
-
-/**
- * A simple assertion mechanism for asserting validity of
- * arguments.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- */
-class Assert {
- static public void notFalse(boolean b)
- throws IllegalArgumentException {
- if(b == false)
- throw new IllegalArgumentException(
- "boolean expression false");
- }
- static public void notNull(Object obj)
- throws IllegalArgumentException {
- if(obj == null)
- throw new IllegalArgumentException("null argument");
- }
-
- static public void notFalse(boolean b, String s)
- throws IllegalArgumentException {
- if(b == false)
- throw new IllegalArgumentException(s);
- }
- static public void notNull(Object obj, String s)
- throws IllegalArgumentException {
- if(obj == null)
- throw new IllegalArgumentException(s);
- }
-}
diff --git a/java/ImageProcessing/filters/BleachFilter.java b/java/ImageProcessing/filters/BleachFilter.java
deleted file mode 100644
index e9d6a0b9e0e..00000000000
--- a/java/ImageProcessing/filters/BleachFilter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-/**
- * A derivation of RGBImageFilter that bleaches an image.<p>
- *
- * Extent of the bleaching effect is controlled by the only
- * constructor argument: an integer representing the percentage
- * of bleaching. The percentage of bleaching may also be
- * controlled after instantiation by invoking the
- * void percent(int) method.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see RGBImageFilter
- */
-public class BleachFilter extends RGBImageFilter implements MedFilter
-{
- private int percent;
-
- public BleachFilter()
- {
- this(25);
- }
-
- public BleachFilter(int percent)
- {
- Assert.notFalse(percent >= 0 && percent <= 100);
- this.percent = percent;
- canFilterIndexColorModel = true;
- }
-
- public String info ()
- {
- return "Bleaches/Lightens an image";
- }
-
- public int percent() { return percent; }
- public void percent(int percent) { percent = percent; }
-
- public int filterRGB(int x, int y, int rgb) {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
-
- int alpha = cm.getAlpha(rgb);
- int red = cm.getRed (rgb);
- int green = cm.getGreen(rgb);
- int blue = cm.getBlue (rgb);
- double percentMultiplier = (double)percent/100;
-
- red = Math.min((int)
- (red + (red * percentMultiplier)), 255);
- green = Math.min((int)
- (green + (green * percentMultiplier)), 255);
- blue = Math.min((int)
- (blue + (blue * percentMultiplier)), 255);
-
- alpha = alpha << 24;
- red = red << 16;
- green = green << 8;
-
- return alpha | red | green | blue;
- }
-}
diff --git a/java/ImageProcessing/filters/BlurFilter.java b/java/ImageProcessing/filters/BlurFilter.java
deleted file mode 100644
index e071324e491..00000000000
--- a/java/ImageProcessing/filters/BlurFilter.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class BlurFilter extends SpatialFilter
-{
- private int[][] mean_filter;
- private int degree_ = 3;
-
- public BlurFilter()
- {
- }
-
- public BlurFilter(int degree)
- {
- degree_ = degree;
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error");
- return;
- }
-
- System.gc();
-
- int[] pixels = new int[columns_*rows_];
- int pixel = 0, count = 0;
- int red, green, blue, index;
- int alpha, n2 = degree_/2;
-
- profile_timer_.start();
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
-
- for (int y = 0, i = 0; y < rows_; y++)
- {
- for (int x = 0; x < columns_; x++, i++)
- {
- red = 0; green = 0; blue = 0; count = 0;
- alpha = (raster_[i] >> 24) & 0xff;
-
- for (int y1 = y - n2; y1 < y + n2; y1++)
- {
- index = y1*columns_;
- if (y1 >= 0 && y1 < rows_)
- {
- for (int x1 = x - n2; x1 < x + n2; x1++)
- {
- if (x1 >= 0 && x1 < columns_)
- {
- pixel = raster_[index + x1];
-
- red += (pixel >> 16) & 0xff;
- green += (pixel >> 8) & 0xff;
- blue += (pixel) & 0xff;
- count++;
- }
- }
- }
- }
-
- red /= count;
- green /= count;
- blue /= count;
-
- if (red < 0) red = 0;
- if (green < 0) green = 0;
- if (blue < 0) blue = 0 ;
-
- if (red > 255) red = 255;
- if (green > 255) green = 255;
- if (blue > 255) blue = 255;
-
- pixels[i] = (alpha << 24) | (red << 16) | (green << 8) | blue;
- }
- }
- }
-
- profile_timer_.stop();
-
- System.out.println("Finished altering image");
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- consumer.imageComplete(status);
- }
-
- public String info ()
- {
- return "Blurs an image.";
- }
-}
diff --git a/java/ImageProcessing/filters/DarkenFilter.java b/java/ImageProcessing/filters/DarkenFilter.java
deleted file mode 100644
index ea20d15a46b..00000000000
--- a/java/ImageProcessing/filters/DarkenFilter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class DarkenFilter extends RGBImageFilter implements MedFilter
-{
- private int percent_;
-
- public DarkenFilter ()
- {
- percent_ = 50;
- canFilterIndexColorModel = true;
- }
-
- public DarkenFilter(int percent)
- {
- Assert.notFalse(percent >= 0 && percent <= 100);
- percent_ = percent;
- canFilterIndexColorModel = true;
- }
-
- public String info ()
- {
- return "Darkens an image.";
- }
-
- public int filterRGB(int x, int y, int rgb)
- {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
-
- int alpha = cm.getAlpha(rgb);
- int red = cm.getRed (rgb);
- int green = cm.getGreen(rgb);
- int blue = cm.getBlue (rgb);
- double percentMultiplier = (double)((double)1.0 - (double)percent_/100);
-
- red *= percentMultiplier;
- blue *= percentMultiplier;
- green *= percentMultiplier;
-
- alpha = alpha << 24;
- red = red << 16;
- green = green << 8;
-
- return alpha | red | green | blue;
- }
-}
diff --git a/java/ImageProcessing/filters/DeSpeckleFilter.java b/java/ImageProcessing/filters/DeSpeckleFilter.java
deleted file mode 100644
index d9bff1de3b5..00000000000
--- a/java/ImageProcessing/filters/DeSpeckleFilter.java
+++ /dev/null
@@ -1,123 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class DeSpeckleFilter extends SpatialFilter
-{
- private int degree_ = 3;
-
- public DeSpeckleFilter()
- {
- }
-
- public DeSpeckleFilter(int degree)
- {
- degree_ = degree;
- }
-
- public String info ()
- {
- return "Removes speckles from an image.";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("DeSpeckleFilter Image Error: " + status);
- return;
- }
-
- System.gc();
-
- int rsum, bsum, gsum, r, g, b, a;
- int count, n2, nsq, c2, lcv, lcv2, index;
- int[] rtab, gtab, btab;
- int[] pixels = new int[columns_*rows_];
-
- profile_timer_.start();
-
- n2 = degree_/2;
- nsq = degree_ * degree_;
-
- rtab = new int[nsq];
- gtab = new int[nsq];
- btab = new int[nsq];
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
- for (int y = 0, k = 0; y < rows_; y++)
- {
- lcv = y + n2;
- for (int x = 0; x < columns_; x++, k++)
- {
- rsum = gsum = bsum = 0;
- count = 0;
-
- lcv2 = x + n2;
- for (int y1 = y - n2; y1 < lcv; y1++)
- {
- index = y1*columns_;
- if (y1 >= 0 && y1 < rows_)
- {
- for (int x1 = x - n2; x1 < lcv2; x1++)
- {
- if (x1 >= 0 && x1 < columns_)
- {
- int pixel = raster_[index + x1];
- rtab[count] = (pixel >> 16) & 0xff;
- gtab[count] = (pixel >> 8) & 0xff;
- btab[count] = (pixel) & 0xff;
- count++;
- }
- }
- }
- }
-
- for (int d = count >> 1; d > 0; d >>= 1)
- {
- for (int i = d; i < count; i++)
- {
- for (int j = i - d; j >= 0 && rtab[j] > rtab[j+d]; j -= d)
- {
- int t = rtab[j];
- rtab[j] = rtab[j + d];
- rtab[j + d] = t;
- }
-
- for (int j = i - d; j >= 0 && gtab[j] > gtab[j+d]; j -= d)
- {
- int t = gtab[j];
- gtab[j] = gtab[j + d];
- gtab[j + d] = t;
- }
-
- for (int j = i - d; j >= 0 && btab[j] > btab[j+d]; j -= d)
- {
- int t = btab[j];
- btab[j] = btab[j + d];
- btab[j + d] = t;
- }
- }
- }
-
- c2 = count >> 1;
-
- a = (raster_[k] >> 24) & 0xff;
- r = ( (count % 2 == 0) ? (rtab[c2] + rtab[c2 - 1]) >> 1 : rtab[c2]);
- g = ( (count % 2 == 0) ? (gtab[c2] + gtab[c2 - 1]) >> 1 : gtab[c2]);
- b = ( (count % 2 == 0) ? (btab[c2] + btab[c2 - 1]) >> 1 : btab[c2]);
-
- pixels[k] = (a << 24) | (r << 16) | (g << 8) | b;
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- consumer.imageComplete(status);
- }
-
-}
diff --git a/java/ImageProcessing/filters/DissolveFilter.java b/java/ImageProcessing/filters/DissolveFilter.java
deleted file mode 100644
index 0225aad6ad1..00000000000
--- a/java/ImageProcessing/filters/DissolveFilter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-/**
- * A derivation of RGBImageFilter that partially or wholly
- * dissolves an image.<p>
- *
- * Extent of dissolving is set by the setOpacity(int) method,
- * which is passed an integer between 0 and 255 (inclusive).
- * The integer represents the alpha value to be applied to
- * every color in the image.<p>
- *
- * An alpha value of 255 signifies an opaque color, while an
- * alpha value of 0 signifies a translucent color.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see RGBImageFilter
- */
-public class DissolveFilter extends RGBImageFilter implements MedFilter
-{
- private int opacity;
-
- public DissolveFilter() {
- this(0);
- }
- public DissolveFilter(int opacity) {
- canFilterIndexColorModel = true;
- setOpacity(opacity);
- }
- public String info ()
- {
- return "Dissolves an image";
- }
- public void setOpacity(int opacity) {
- Assert.notFalse(opacity >= 0 && opacity <= 255);
- this.opacity = opacity;
- }
- public int filterRGB(int x, int y, int rgb) {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
- int alpha = cm.getAlpha(rgb);
- int red = cm.getRed (rgb);
- int green = cm.getGreen(rgb);
- int blue = cm.getBlue (rgb);
-
- alpha = opacity;
-
- return alpha << 24 | red << 16 | green << 8 | blue;
- }
-}
diff --git a/java/ImageProcessing/filters/EdgeDetectFilter.java b/java/ImageProcessing/filters/EdgeDetectFilter.java
deleted file mode 100644
index 87cc88d475d..00000000000
--- a/java/ImageProcessing/filters/EdgeDetectFilter.java
+++ /dev/null
@@ -1,250 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class EdgeDetectFilter extends SpatialFilter
-{
- public EdgeDetectFilter()
- {
- }
-
- public String info ()
- {
- return "Edge detection filter.";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error");
- return;
- }
-
- System.gc();
-
- int[] pixels = new int[columns_*rows_];
- int pixel = 0;
- int red, green, blue;
- int row1, row2, row3;
- int new_red1 = 0, new_green1 = 0, new_blue1 = 0,
- new_red2 = 0, new_green2 = 0, new_blue2 = 0;
- int ul, um, ur, ll, lm, lr, ml, mr;
- int alpha, lcv, lcv2;
-
- profile_timer_.start();
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
- lcv = rows_ - 1;
- lcv2 = columns_ - 1;
- for (int x = 1, index = 0; x < lcv; x++, index += columns_)
- {
- for (int y = 1; y < lcv2; y++)
- {
- row1 = index + y;
- row2 = row1 + columns_;
- row3 = row2 + columns_;
-
- ul = raster_[row1 - 1];
- um = raster_[row1];
- ur = raster_[row1 + 1];
- ml = raster_[row2 - 1];
- mr = raster_[row2 + 1];
- ll = raster_[row3 - 1];
- lm = raster_[row3];
- lr = raster_[row3 + 1];
-
- alpha = (raster_[row2] >> 24) & 0xff;
-
- new_red1 =
- (((ul >> 16) & 0xff)
- + (((um >> 16) & 0xff) << 1)
- + ((ur >> 16) & 0xff)
- - ((ll >> 16) & 0xff)
- - (((lm >> 16) & 0xff) << 1)
- - ((lr >> 16) & 0xff));
-
- new_green1 =
- (((ul >> 8) & 0xff)
- + (((um >> 8) & 0xff) << 1)
- + ((ur >> 8) & 0xff)
- - ((ll >> 8) & 0xff)
- - (((lm >> 8) & 0xff) << 1)
- - ((lr >> 8) & 0xff));
-
- new_blue1 =
- (((ul) & 0xff)
- + (((um) & 0xff) << 1)
- + ((ur) & 0xff)
- - ((ll) & 0xff)
- - (((lm) & 0xff) << 1)
- - ((lr) & 0xff));
-
- new_red2 =
- (- ((ul >> 16) & 0xff)
- + ((ur >> 16) & 0xff)
- - (((ml >> 16) & 0xff) << 1)
- + (((mr >> 16) & 0xff) << 1)
- - ((ll >> 16) & 0xff)
- + ((lr >> 16) & 0xff));
-
- new_green2 =
- (- ((ul >> 8) & 0xff)
- + ((ur >> 8) & 0xff)
- - (((ml >> 8) & 0xff) << 1)
- + (((mr >> 8) & 0xff) << 1)
- - ((ll >> 8) & 0xff)
- + ((lr >> 8) & 0xff));
-
- new_blue2 =
- (- ((ul) & 0xff)
- + ((ur) & 0xff)
- - (((ml) & 0xff) << 1)
- + (((mr) & 0xff) << 1)
- - ((ll) & 0xff)
- + ((lr) & 0xff));
-
-
- new_red1 = (int)Math.sqrt(new_red1*new_red1 + new_red2*new_red2);
- new_green1 = (int)Math.sqrt(new_green1*new_green1 + new_green2*new_green2);
- new_blue1 = (int)Math.sqrt(new_blue1*new_blue1 + new_blue2*new_blue2);
-
- if (new_red1 < 0) red = 0;
- if (new_green1 < 0) green = 0;
- if (new_blue1 < 0) blue = 0 ;
-
-
- if (new_red1 > 255)
- new_red1 = 255;
-
- if (new_green1 > 255)
- new_green1 = 255;
-
- if (new_blue1 > 255)
- new_blue1 = 255;
-
- pixels[row2] = (alpha << 24) | (new_red1 << 16) | (new_green1 << 8) | new_blue1;
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- consumer.imageComplete(status);
- }
-
- /*
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error");
- return;
- }
-
- int[][] pixels = new int[rows_*columns_];
- int pixel = 0;
- int red, green, blue;
- int row1, row2, row3, row4, row5;
- int a, b, c, d, rsum, gsum, bsum, v, maxv = 0;
- int ul, um, ur, ml, mr, ll, lm, lr, lcv, lcv2;
- int alpha;
-
- lcv = rows_ -1;
- for (int y = 1; y < lcv; y++)
- {
- lcv2 = columns_ -1;
- for (int x = 1; x < lcv2; x++)
- {
- row1 = columns_*(y-1) + x;
- row2 = row1 + columns_;
- row3 = row2 + columns_;
- ul = raster_[row1 - 1];
- um = raster_[row1];
- ur = raster_[row1 + 1];
- ml = raster_[row2 - 1];
- mr = raster_[row2 + 1];
- ll = raster_[row3 - 1];
- lm = raster_[row3];
- lr = raster_[row3 + 1];
-
- alpha = defaultRGB_.getAlpha(raster_[row2]);
-
- a = ((lr >> 16) & 0xff) - ((ul >> 16) & 0xff);
- b = ((mr >> 16) & 0xff) - ((ml >> 16) & 0xff);
- c = ((ur >> 16) & 0xff) - ((ll >> 16) & 0xff);
- d = ((um >> 16) & 0xff) - ((lm >> 16) & 0xff);
-
- rsum = a + b + c;
- if (rsum < 0) rsum = -rsum;
- a = a - c - d;
- if (a < 0) a = -a;
- if (rsum > a) rsum = a;
- rsum /= 3;
-
- a = ((lr >> 8) & 0xff) - ((ul >> 8) & 0xff);
- b = ((mr >> 8) & 0xff) - ((ml >> 8) & 0xff);
- c = ((ur >> 8) & 0xff) - ((ll >> 8) & 0xff);
- d = ((um >> 8) & 0xff) - ((lm >> 8) & 0xff);
-
- gsum = a + b + c;
- if (gsum < 0) gsum = -gsum;
- a = a - c - d;
- if (a < 0) a = -a;
- if (gsum > a) gsum = a;
- gsum /= 3;
-
- a = ((lr) & 0xff) - ((ul) & 0xff);
- b = ((mr) & 0xff) - ((ml) & 0xff);
- c = ((ur) & 0xff) - ((ll) & 0xff);
- d = ((um) & 0xff) - ((lm) & 0xff);
-
- bsum = a + b + c;
- if (bsum < 0) bsum = -bsum;
- a = a - c - d;
- if (a < 0) a = -a;
- if (bsum > a) bsum = a;
- bsum /= 3;
-
- pixels[row2] = (alpha << 24) | (rsum << 16) | (gsum << 8) | bsum;
-
- v = (((int)(rsum)*11 + ((int)(gsum) << 4) + (int)(bsum)*5) >> 5);
-
- if (maxv < v)
- maxv = v;
- }
-
- }
-
- for (int y = 1; y < rows_ - 1; y++)
- {
- for (int x = 1; x < columns_ - 1; x++)
- {
- pixel = pixels[y][x];
- alpha = (pixel >> 24) & 0xff;
- red = (((pixel >> 16) & 0xff) * 255) / maxv;
- green = (((pixel >> 8) & 0xff) * 255) / maxv;
- blue = ((pixel & 0xff) * 255) / maxv;
-
- if (red < 0) red = 0;
- if (green < 0) green = 0;
- if (blue < 0) blue = 0 ;
-
- if (red > 255) red = 255;
- if (green > 255) green = 255;
- if (blue > 255) blue = 255;
-
- pixels[y*x] = (alpha << 24) | (red << 16) | (green << 8) | blue;
- }
-
- consumer.setPixels(0, y, columns_, 1, defaultRGB_, pixels[y], 0, columns_);
- }
-
- consumer.imageComplete(status);
- }
- */
-}
diff --git a/java/ImageProcessing/filters/EmbossFilter.java b/java/ImageProcessing/filters/EmbossFilter.java
deleted file mode 100644
index e6d5833ee39..00000000000
--- a/java/ImageProcessing/filters/EmbossFilter.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class EmbossFilter extends SpatialFilter
-{
-
- public EmbossFilter()
- {
- }
-
- public String info ()
- {
- return "Embosses an image.";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Emboss: Image Error: " + status);
- return;
- }
-
- System.out.println("Beginning to emboss an image.");
- System.gc();
-
- int[] pixels = new int[columns_*rows_];
- int pixel = 0;
- int red, green, blue;
- int row1, row2, row3, ul, um, ml, mr, lm, lr;
- int new_grey = 0, lcv, lcv2;
- int alpha;
-
- profile_timer_.start();
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
- lcv = rows_ -1;
- for (int x = 1, index = 0; x < lcv; x++, index += columns_)
- {
- lcv2 = columns_ - 1;
- for (int y = 1; y < lcv2; y++)
- {
-
- row1 = index + y;
- row2 = row1 + columns_;
- row3 = row2 + columns_;
-
- ul = raster_[row1 - 1];
- um = raster_[row1];
- ml = raster_[row2 - 1];
- mr = raster_[row2 + 1];
- lm = raster_[row3];
- lr = raster_[row3 + 1];
-
- alpha = (raster_[row2] >> 24) & 0xff;
-
- red = ((- (((ul >> 16) & 0xff) << 1) - ((um >> 16) & 0xff) -
- ((ml >> 16) & 0xff) + ((mr >> 16) & 0xff) +
- ((lm >> 16) & 0xff) + (((lr >> 16) & 0xff) << 1)) >> 3) + 128;
-
- green = ((- (((ul >> 8) & 0xff) << 1) - ((um >> 8) & 0xff) -
- ((ml >> 8) & 0xff) + ((mr >> 8) & 0xff) +
- ((lm >> 8) & 0xff) + (((lr >> 8) & 0xff) << 1)) >> 3) + 128;
-
- blue = ((- ((ul & 0xff) << 1) - (um & 0xff) -
- (ml & 0xff) + (mr & 0xff) +
- (lm & 0xff) + ((lr & 0xff) << 1)) >> 3) + 128;
-
- new_grey = (((int)(red)*11 + ((int)(green) << 4) + (int)(blue)*5) >> 5);
-
- pixels[row2] = (alpha << 24) | (new_grey << 16) | (new_grey << 8) | new_grey;
-
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- // System.out.println(timer);
- consumer.imageComplete(status);
- }
-}
diff --git a/java/ImageProcessing/filters/Makefile b/java/ImageProcessing/filters/Makefile
deleted file mode 100644
index 253bc9b5c22..00000000000
--- a/java/ImageProcessing/filters/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-# Makefile
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-DOCDIR = $(JACE_WRAPPER)/doc
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-
-clean:
- rm -rf *~
-
-realclean: clean
- rm -rf $(JACE_WRAPPER)/classes/imaging/filters/*.class
-
-files = MedFilter.java \
- Assert.java \
- BleachFilter.java \
- BlurFilter.java \
- DarkenFilter.java \
- DeSpeckleFilter.java \
- DissolveFilter.java \
- EdgeDetectFilter.java \
- EmbossFilter.java \
- OilPaintFilter.java \
- PixelizeFilter.java \
- RotateFilter.java \
- SharpenFilter.java \
- SpatialFilter.java \
- SpreadFilter.java \
- Timer.java
-
diff --git a/java/ImageProcessing/filters/MedFilter.java b/java/ImageProcessing/filters/MedFilter.java
deleted file mode 100644
index def0bd2075a..00000000000
--- a/java/ImageProcessing/filters/MedFilter.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package imaging.filters;
-
-public interface MedFilter
-{
- String info ();
-}
diff --git a/java/ImageProcessing/filters/OilPaintFilter.java b/java/ImageProcessing/filters/OilPaintFilter.java
deleted file mode 100644
index 68bcf79e5c2..00000000000
--- a/java/ImageProcessing/filters/OilPaintFilter.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class OilPaintFilter extends SpatialFilter
-{
- private int degree_ = 3;
-
- public OilPaintFilter()
- {
- }
-
- public OilPaintFilter(int degree)
- {
- degree_ = degree;
- }
-
- public String info ()
- {
- return "Converts an image into an oil painting.";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Oil Paint FilterImage Error: " + status);
- return;
- }
-
- System.gc();
-
- int[] pixels = new int[columns_*rows_];
- int[] nnrect = new int[degree_*degree_];
- int offset = degree_/2, cnt = 0, maxcnt = 0, col = 0, tmp;
- int lcv1 = rows_,
- lcv2 = columns_,
- lcv3 = degree_*degree_;
-
- profile_timer_.start();
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
- for (int y = 0, index = 0; y < lcv1; y++)
- {
- for (int x = 0; x < lcv2; x++, index++)
- {
- cnt = 0;
- for (int i = y - offset; i < y + offset; i++)
- {
- tmp = i*columns_;
- for (int j = x - offset; j < x + offset; j++, cnt++)
- {
- if (i >= 0 && i < lcv1 && j >= 0 && j < lcv2)
- nnrect[cnt] = raster_[tmp + j];
- else
- nnrect[cnt] = -1;
- }
- }
-
- maxcnt = 0;
- col = 0;
- cnt = 0;
- for (int i = 0; i < lcv3; i++)
- {
- if (nnrect[i] != -1)
- {
- cnt = 1;
-
- for (int j = i+1; j < lcv3; j++)
- {
- if (nnrect[i] == nnrect[j])
- cnt++;
- }
-
- if (cnt > maxcnt)
- {
- col = nnrect[i];
- maxcnt = cnt;
- }
- }
- }
-
- pixels[index] = col;
- }
- }
- }
-
- System.err.println("Oil Paint should be finished.");
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- consumer.imageComplete(status);
- }
-}
diff --git a/java/ImageProcessing/filters/PixelizeFilter.java b/java/ImageProcessing/filters/PixelizeFilter.java
deleted file mode 100644
index cdfe768789a..00000000000
--- a/java/ImageProcessing/filters/PixelizeFilter.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class PixelizeFilter extends SpatialFilter
-{
- private int pwidth_ = 4;
- private int pheight_ = 4;
-
- public PixelizeFilter()
- {
- }
-
- public PixelizeFilter(int pwidth, int pheight)
- {
- pwidth_ = pwidth;
- pheight_ = pheight;
- }
-
- public String info ()
- {
- return "Pixelizes the image.";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Pixelize Image Error: " + status);
- return;
- }
-
- System.gc();
-
- int pixel;
- int nsum, asum, rsum, gsum, bsum, nwide, nhigh, stx, sty, x, y;
- int x_offset, y_offset, x_extent, y_extent, lcv, lcv2, lcv3, index;
- int[] results = new int[rows_*columns_];
-
- profile_timer_.start();
-
- for (int z = SpatialFilter.iterations_; z-- > 0;)
- {
- lcv3 = pwidth_*pheight_;
- nwide = (columns_ + pwidth_ - 1) / pwidth_;
- nhigh = (rows_ + pheight_ - 1) / pheight_;
-
- stx = -(nwide*pwidth_ - columns_)/2;
- sty = -(nhigh*pheight_ - rows_)/2;
-
- y = sty;
- for (int i = 0; i < nhigh; i++, y += pheight_)
- {
- x = stx;
- for (int j = 0; j < nwide; j++, x += pwidth_)
- {
- nsum = asum = rsum = bsum = gsum = 0;
-
- lcv = y + pheight_;
- lcv2 = x + pwidth_;
- for (int y1 = y; y1 < lcv; y1++)
- {
- index = y1*columns_;
- for (int x1 = x; x1 < lcv2; x1++)
- {
- if (x1 >= 0 && y1 >= 0 && x1 < columns_ && y1 < rows_)
- {
- nsum++;
- pixel = raster_[index + x1];
-
- asum += (pixel >> 24) & 0xff;
- rsum += (pixel >> 16) & 0xff;
- gsum += (pixel >> 8 ) & 0xff;
- bsum += pixel & 0xff;
- }
- }
- }
-
- if (nsum > 0)
- {
- rsum /= nsum;
- gsum /= nsum;
- bsum /= nsum;
-
- if (asum < 0) asum = 0;
- if (rsum < 0) rsum = 0;
- if (gsum < 0) gsum = 0;
- if (bsum < 0) bsum = 0;
-
- if (asum > 255) asum = 255;
- if (rsum > 255) rsum = 255;
- if (gsum > 255) gsum = 255;
- if (bsum > 255) bsum = 255;
-
- }
-
- for (int y1 = y; y1< lcv; y1++)
- {
- index = y1*columns_;
- for (int x1 = x; x1 < lcv2; x1++)
- {
- if (x1 >= 0 && y1 >= 0 && x1 < columns_ && y1 < rows_)
- results[index + x1]
- = (asum << 24) | (rsum << 16) | (gsum << 8) | bsum;
- }
- }
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, results, 0, columns_);
- consumer.imageComplete(status);
- }
-}
diff --git a/java/ImageProcessing/filters/RandomizeFilter.java b/java/ImageProcessing/filters/RandomizeFilter.java
deleted file mode 100644
index 438f79e01c0..00000000000
--- a/java/ImageProcessing/filters/RandomizeFilter.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-import java.util.Random;
-
-public class RandomizeFilter extends RGBImageFilter implements MedFilter
-{
- private static Random rand = new Random(System.currentTimeMillis());
-
- public RandomizeFilter ()
- {
- canFilterIndexColorModel = true;
- }
-
- public String info ()
- {
- return "Randomizes an image.";
- }
-
- public int filterRGB(int x, int y, int rgb)
- {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
-
- int alpha = cm.getAlpha(rgb);
- int red = rand.nextInt() % 255;
- int green = rand.nextInt() % 255;
- int blue = rand.nextInt() % 255;
-
- alpha = alpha << 24;
- red = red << 16;
- green = green << 8;
-
- return alpha | red | green | blue;
- }
-}
diff --git a/java/ImageProcessing/filters/RotateFilter.java b/java/ImageProcessing/filters/RotateFilter.java
deleted file mode 100644
index 39551017a4b..00000000000
--- a/java/ImageProcessing/filters/RotateFilter.java
+++ /dev/null
@@ -1,358 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-
-public class RotateFilter extends SpatialFilter
-{
- private double angle_;
- private int rotx_, roty_;
- private int rotheight_, rotwidth_;
-
- public RotateFilter ()
- {
- this.angle_ = 90.0;
- }
-
- public RotateFilter(double angle)
- {
- this.angle_ = angle;
- }
-
- public String info ()
- {
- return "Rotates an image";
- }
-
- public void setDimensions(int width, int height)
- {
- DoublePoint temp;
-
- rows_ = height;
- columns_ = width;
-
- // Convert the angle into radians
- double rotrad = angle_ * Math.PI / (double)180.0;
-
- // Compute the corner points after rotation
- double center_x = (double)(columns_ - 1) / (double)2.0;
- double center_y = (double)(rows_ - 1) / (double)2.0;
-
- // The new top left corner
- temp = rotatePoint(0, 0, center_x, center_y, rotrad);
- int rtl_x = (int)(temp.x_ + ((temp.x_ < 0) ? -0.5 : 0.5));
- int rtl_y = (int)(temp.y_ + ((temp.y_ < 0) ? -0.5 : 0.5));
-
- // the new top right corner
- temp = rotatePoint(0, rows_, center_x, center_y, rotrad);
- int rtr_x = (int)(temp.x_ + ((temp.x_ < 0) ? -0.5 : 0.5));
- int rtr_y = (int)(temp.y_ + ((temp.y_ < 0) ? -0.5 : 0.5));
-
- // the new bottom left corner
- temp = rotatePoint(columns_, 0, center_x, center_y, rotrad);
- int rbl_x = (int)(temp.x_ + ((temp.x_ < 0) ? -0.5 : 0.5));
- int rbl_y = (int)(temp.y_ + ((temp.y_ < 0) ? -0.5 : 0.5));
-
- // the new bottom right corner
- temp = rotatePoint(columns_, rows_, center_x, center_y, rotrad);
- int rbr_x = (int)(temp.x_ + ((temp.x_ < 0) ? -0.5 : 0.5));
- int rbr_y = (int)(temp.y_ + ((temp.y_ < 0) ? -0.5 : 0.5));
-
- //System.out.println(" ( " + center_x + "," + center_y + " ) ");
- //System.out.println(" ( " + rtl_x + "," + rtl_y + " ) ");
- //System.out.println(" ( " + rtr_x + "," + rtr_y + " ) ");
- //System.out.println(" ( " + rbr_x + "," + rbr_y + " ) ");
- //System.out.println(" ( " + rbl_x + "," + rbl_y + " ) ");
-
- // rotated bounding box
- int rbbx1, rbby1;
- int rbbx = rbbx1 = rtl_x;
- int rbby = rbby1 = rtl_y;
-
- if (rtr_x < rbbx) rbbx = rtr_x;
- if (rtr_x > rbbx1) rbbx1 = rtr_x;
- if (rtr_y < rbby) rbby = rtr_y;
- if (rtr_y > rbby1) rbby1 = rtr_y;
-
- if (rbl_x < rbbx) rbbx = rbl_x;
- if (rbl_x > rbbx1) rbbx1 = rbl_x;
- if (rbl_y < rbby) rbby = rbl_y;
- if (rbl_y > rbby1) rbby1 = rbl_y;
-
- if (rbr_x < rbbx) rbbx = rbr_x;
- if (rbr_x > rbbx1) rbbx1 = rbr_x;
- if (rbr_y < rbby) rbby = rbr_y;
- if (rbr_y > rbby1) rbby1 = rbr_y;
-
- int rbbw = rbbx1 - rbbx;
- int rbbh = rbby1 - rbby;
-
- //System.out.println("(rbbx, rbby): " + rbbx + " " + rbby);
- //System.out.println("(rbbx1, rbby1): " + rbbx1 + " " + rbby1);
- //System.out.println("(rbbw, rbbh): " + rbbw + " " + rbbh);
-
-
- //rbbx--; rbby--; rbbw+=2; rbbh+=2;
-
-
- // Ensure we haven't increased the size of the image
-
- /*
- int x = rbbx + rbbw - 1, y = rbby + rbbh - 1;
- if (rbbx < 0) rbbx = 0;
- if (rbbx > columns_ - 1 ) rbbx = columns_ - 1;
- if (rbby < 0) rbby = 0;
- if (rbby > rows_ - 1) rbby = rows_ - 1;
- */
-
- /*
-
- if (x < 0) x = 0;
- if (x > columns_ - 1) x = columns_ - 1;
- if (y < 0) y = 0;
- if (y > rows_ - 1) y = rows_ - 1;
-
- if (x < rbbx) x = rbbx;
- if (y < rbby) y = rbby;
- rbbw = (x - rbbx) + 1;
- rbbh = (y - rbby) + 1;
-
- */
-
- rotx_ = rbbx;
- roty_ = rbby;
- rotheight_ = rbbh;
- rotwidth_ = rbbw;
-
- //System.out.println("(rotx,roty): " + rotx_ + " " +
- // roty_);
- //System.out.println("(rotwidth,rotheight): " + rotwidth_ + " " +
- // rotheight_);
- //System.out.println("(columns,rows): " + columns_ +
- // " " + rows_);
-
-
- raster_ = new int[columns_*rows_];
- consumer.setDimensions(rotwidth_, rotheight_);
- }
-
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error: " + status);
- return;
- }
-
- // For each pixel in the dimensions of the rotated image, if the
- // inverse rotation falls in the bounds of the original image. If
- // it does, compute and store an appropriate color, otherwise skip
- // it.
-
- System.gc();
-
- double xf, yf, px, py, apx, apy;
- int[] pixels = new int[rotwidth_*rotheight_];
- int ox, oy, ox1, oy1, index, pixel;
- double cx = (columns_ - 1) / 2;
- double cy = (rows_ - 1) / 2;
- double rotrad = angle_ * Math.PI / 180.0, ang, d;
- int p0r = 0, p0g = 0, p0b = 0,
- p1r = 0, p1g = 0,p1b = 0,
- p2r = 0, p2g = 0, p2b = 0,
- p3r = 0, p3g = 0, p3b = 0, lcv, lcv2;
- int rv,gv,bv, alpha;
- double rd,gd,bd, p0wgt = 0,
- p1wgt = 0, p2wgt = 0, p3wgt = 0, xfrac, yfrac;
-
- profile_timer_.start();
-
- lcv = roty_ + rotheight_;
- lcv2 = rotx_ + rotwidth_;
- for (int y = roty_, i = 0; y < lcv; y++)
- {
- for (int x = rotx_; x < lcv2; x++, i++)
- {
- // Inverse rotate the point (x,y)
- // Inlining the call to rotatePoint
- xf = (double)x;
- yf = (double)y;
- d = Math.sqrt((xf - cx) * (xf - cx) + (yf - cy) * (yf - cy));
-
- if ((xf - cx) != 0.0)
- {
- ang = Math.atan((cy-yf)/(xf-cx));
- if ((xf - cx) < 0)
- ang += Math.PI;
- }
- else
- {
- if ((yf - cy) > 0.0)
- ang = (Math.PI * 3.0) / 2;
- else
- ang = Math.PI / 2;
- }
-
- xf = cx + (d * Math.cos(ang - rotrad));
- yf = cy - (d * Math.sin(ang - rotrad));
- // end inline
-
- // Cheat a little
- if (xf < 0.0 && xf > -0.5) xf = 0.0;
- if (yf < 0.0 && yf > -0.5) yf = 0.0;
-
- ox = (int)Math.floor(xf);
- oy = (int)Math.floor(yf);
-
- if ((ox >= 0) && (oy >= 0) &&
- (ox < columns_) && (oy < rows_) )
- {
- // The color will be a linear combination of the colors of
- // the center pixel, its left or right neighbor, its top
- // or bottom neighbor, and its corner neighbor. Which
- // neighbors are used is determined by the position of
- // the fractional part of xf, xy within the 1-unit square
- // of the pixel.
-
- /* compute px,py: fractional offset from center of pixel (x.5,y.5) */
- xfrac = xf - ox; /* 0 - .9999 */
- yfrac = yf - oy;
- px = ((xfrac >= .5) ? (xfrac - .5) : (-.5 + xfrac));
- py = ((yfrac >= .5) ? (yfrac - .5) : (-.5 + yfrac));
- apx = ((px < 0) ? -px : px);
- apy = ((py < 0) ? -py : py);
-
- /* get neighbor colors: p0col, p1col, p2col, p3col */
- ox1 = ox + ((px < 0.0) ? -1 : 1);
- oy1 = oy + ((py < 0.0) ? -1 : 1);
-
- index = oy * columns_ + ox;
- pixel = raster_[index];
- alpha = (pixel >> 24) & 0xff;
- p0r = (pixel >> 16) & 0xff;
- p0g = (pixel >> 8) & 0xff;
- p0b = pixel & 0xff;
-
- if (ox1 >= 0 && ox1 < columns_)
- {
- index = oy*columns_ + ox1;
- pixel = raster_[index];
- p1r = (pixel >> 16) & 0xff;
- p1g = (pixel >> 8) & 0xff;
- p1b = pixel & 0xff;
- p1wgt = apx * (1.0 - apy);
- }
- else { p1r=p1g=p1b=0; p1wgt = 0.0; }
-
- if (oy1 >= 0 && oy1 < rows_)
- {
- index = oy1*columns_ + ox;
- pixel = raster_[index];
- p2r = (pixel >> 16) & 0xff;
- p2g = (pixel >> 8) & 0xff;
- p2b = pixel & 0xff;
- p2wgt = apx * (1.0 - apy);
- }
- else { p2r=p2g=p2b=0; p2wgt = 0.0; }
-
- if (ox1 >= 0 && ox1 < columns_ &&
- oy1 >= 0 && oy1 < rows_)
- {
- index = oy1 * columns_ + ox1;
- pixel = raster_[index];
- p3r = (pixel >> 16) & 0xff;
- p3g = (pixel >> 8) & 0xff;
- p3b = pixel & 0xff;
- p3wgt = apx * (1.0 - apy);
- }
- else { p3r=p3g=p3b=0; p3wgt = 0.0; }
-
- p1wgt = p1wgt * .7; /* black art */
- p2wgt = p2wgt * .7;
- p3wgt = p3wgt * .7;
-
- p0wgt = 1.0 - (p1wgt + p2wgt + p3wgt);
-
- /* okay, compute and store resulting color */
- rd = p0r * p0wgt + p1r * p1wgt + p2r * p2wgt + p3r * p3wgt;
- gd = p0g * p0wgt + p1g * p1wgt + p2g * p2wgt + p3g * p3wgt;
- bd = p0b * p0wgt + p1b * p1wgt + p2b * p2wgt + p3b * p3wgt;
-
- rv = (int) (rd + 0.5);
- gv = (int) (gd + 0.5);
- bv = (int) (bd + 0.5);
-
- if (rv < 0) rv = 0;
- if (gv < 0) gv = 0;
- if (bv < 0) bv = 0 ;
-
- if (rv > 255) rv = 255;
- if (gv > 255) gv = 255;
- if (bv > 255) bv = 255;
-
- pixels[i] = (alpha << 24) | (rv << 16) | (gv << 8) | bv;
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, rotwidth_, rotheight_, defaultRGB_,
- pixels, 0, rotwidth_);
-
- consumer.imageComplete(status);
- }
-
- private final static DoublePoint rotatePoint(int x, int y,
- double cx, double cy, double rad)
- {
- /* rotate point x, y 'rad' radians around cx, cy, return rx, ry */
- double d, xf, yf, ang, rx, ry;
-
- xf = (double)x;
- yf = (double)y;
-
- // d = distance from the point to the center
- d = Math.sqrt((xf - cx) * (xf - cx) + (yf - cy) * (yf - cy));
-
- if ((xf - cx) != 0.0)
- {
- // Compute the angle between the axis and the point in radians
- // using the inverse tangent function.
- ang = Math.atan((cy-yf)/(xf-cx));
-
- // If the x value falls below the axis the angle is between
- // PI and 2*PI.
- if ((xf - cx) < 0)
- ang += Math.PI;
- }
- else
- {
- // The point is on the positive y-axis so its angle is 3/2*PI
- // I'm guessing this the cooridnate system is flipped in
- // screen graphics.
- if ((yf - cy) > 0.0)
- ang = (Math.PI * 3.0) / 2;
- else
- ang = Math.PI / 2;
- }
-
- rx = cx + (d * Math.cos(ang + rad));
- ry = cy - (d * Math.sin(ang + rad));
-
- return new DoublePoint(rx, ry);
- }
-}
-
-class DoublePoint
-{
- public double x_;
- public double y_;
-
- DoublePoint(double x, double y)
- {
- x_ = x;
- y_ = y;
- }
-}
diff --git a/java/ImageProcessing/filters/SharpenFilter.java b/java/ImageProcessing/filters/SharpenFilter.java
deleted file mode 100644
index fcb6f03c7ac..00000000000
--- a/java/ImageProcessing/filters/SharpenFilter.java
+++ /dev/null
@@ -1,272 +0,0 @@
-package imaging.filters;
-
-import java.awt.Color;
-import java.awt.image.*;
-import java.util.*;
-
-public class SharpenFilter extends SpatialFilter
-{
- float percentage_ = (float)75.0;
-
- public SharpenFilter()
- {
- }
-
- public SharpenFilter(float percentage)
- {
- percentage_ = percentage;
- }
-
- public String info ()
- {
- return "Sharpens an image.";
- }
-
-
- public void imageComplete(int status)
- {
- System.out.println("Image Complete called");
-
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error");
- return;
- }
-
- System.gc();
-
- float[] hsv = new float[3];
- int rgb, red, green, blue;
- int pixel, alpha, lcv, lcv2, lcv3;
- int[] pixels = new int[columns_*rows_];
- float fact, ifact, hue, sat, val, vsum;
- float[] line0 = new float[columns_],
- linep1 = new float[columns_],
- linem1 = new float[columns_],
- tmpptr;
-
- profile_timer_.start();
-
- for (int z = 0; z < SpatialFilter.iterations_; z++)
- {
- fact = percentage_/(float)100.0;
- ifact = (float)1.0 - fact;
-
- for (int x = 0; x < columns_; x++)
- {
- pixel = raster_[x];
- hsv = getHSV(((pixel >> 16) & 0xff), ((pixel >> 8) & 0xff), (pixel & 0xff),hsv);
- line0[x] = hsv[2];
- }
-
- lcv = columns_ << 1;
- for (int x = columns_, index = 0; x < lcv; x++, index++)
- {
- pixel = raster_[x];
- hsv = getHSV(((pixel >> 16) & 0xff), ((pixel >> 8) & 0xff), (pixel & 0xff),hsv);
- linep1[index] = hsv[2];
- }
-
- lcv = columns_ - 1;
- lcv2 = rows_ - 1;
- for (int y = 1, i = columns_; y < lcv2; y++)
- {
- tmpptr = linem1;
- linem1 = line0;
- line0 = linep1;
- linep1 = tmpptr;
-
- lcv3 = columns_*(y+2);
- for (int x = columns_*(y+1), index= 0; x < lcv; x++, index++)
- {
- pixel = raster_[x];
- // Note hsv is only instantiated once
- hsv = getHSV(((pixel >> 16) & 0xff), ((pixel >> 8) & 0xff), (pixel & 0xff), hsv);
- linep1[index] = hsv[2];
- }
-
- i++;
- for (int x = 1; x < lcv; x++, i++)
- {
- vsum = (float)0.0;
- vsum = linem1[x-1] + linem1[x] + linem1[x+1] +
- line0[x-1] + line0[x] + line0[x + 1] +
- linep1[x-1] + linep1[x] + linep1[x + 1];
-
- pixel = raster_[i];
- alpha = (pixel >> 24) & 0xff;
- hsv = getHSV(((pixel >> 16) & 0xff), ((pixel >> 8) & 0xff), (pixel & 0xff), hsv);
-
- val = ((hsv[2] - (fact * vsum) / 9) / ifact);
- if (val < 1.0)
- {
- if (val < 0.0)
- val = (float)0.0;
- }
- else
- val = (float)1.0;
-
- hsv[2] = val;
- rgb = getRGB(hsv[0], hsv[1], hsv[2]);
-
- red = (rgb >> 16) & 0xff;
- green = (rgb >> 8) & 0xff;
- blue = rgb & 0xff;
-
- if (red < 0) red = 0;
- if (green < 0) green = 0;
- if (blue < 0) blue = 0 ;
-
- if (red > 255) red = 255;
- if (green > 255) green = 255;
- if (blue > 255) blue = 255;
-
- pixels[i] =
- (alpha << 24) | (red << 16) | (green << 8) | blue;
- }
- i++;
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
-
- System.out.println("Finished altering image");
- consumer.imageComplete(status);
- }
-
-
- static private float[] getHSV(int red, int green, int blue, float[] hsv)
- {
- float rd, gd, bd, max, min, del, rc, gc, bc, hue, sat;
- if (hsv == null)
- hsv = new float[3];
-
- /* convert RGB to HSV */
- rd = red / (float)255.0; /* rd,gd,bd range 0-1 instead of 0-255 */
- gd = green / (float)255.0;
- bd = blue / (float)255.0;
-
- /* compute maximum of rd,gd,bd */
- if (rd >= gd)
- {
- if (rd >= bd)
- max = rd;
- else
- max = bd;
- }
- else
- {
- if (gd >= bd)
- max = gd;
- else
- max = bd;
- }
-
- /* compute minimum of rd,gd,bd */
- if (rd<=gd)
- {
- if (rd<=bd)
- min = rd;
- else
- min = bd;
- }
- else
- {
- if (gd<=bd)
- min = gd;
- else
- min = bd;
- }
-
- del = max - min;
- hsv[2] = max;
-
- if (max != 0.0)
- sat = (del) / max;
- else
- sat = (float)0.0;
-
- hue = -1;
-
- if (sat != 0.0)
- {
- rc = (max - rd) / del;
- gc = (max - gd) / del;
- bc = (max - bd) / del;
-
- if (rd == max)
- hue = bc - gc;
- else
- if (gd == max)
- hue = 2 + rc - bc;
- else
- if (bd == max)
- hue = 4 + gc - rc;
-
- hue *= 60;
- if (hue<0)
- hue += 360;
- }
-
- hsv[0] = hue;
- hsv[1] = sat;
- return hsv;
- }
-
- static private int getRGB(float hue, float sat, float val)
- {
- int j, r, g, b;
- float rd, gd, bd;
- float f, p, q, t;
-
- /* convert HSV back to RGB */
- if (hue == -1 || sat == 0.0)
- {
- rd = val; gd = val; bd = val;
- }
- else
- {
- if (hue==(float)360.0) hue = (float)0.0;
- hue = hue / (float)60.0;
- j = (int) hue;
- if (j<0) j=0; /* either hue or floor seem to go neg on some sys */
- f = hue - j;
- p = val * (1-sat); // val - sat* val
- q = val * (1 - (sat*f)); // val - val*sat*f
- t = val * (1 - (sat*(1 - f)));
-
- switch (j) {
- case 0: rd = val; gd = t; bd = p; break;
- case 1: rd = q; gd = val; bd = p; break;
- case 2: rd = p; gd = val; bd = t; break;
- case 3: rd = p; gd = q; bd = val; break;
- case 4: rd = t; gd = p; bd = val; break;
- case 5: rd = val; gd = p; bd = q; break;
- default: rd = val; gd = t; bd = p; break; /* never happen */
- }
- }
- r = (int)(rd * 255.0 + 0.5);
- g = (int)(gd * 255.0 + 0.5);
- b = (int)(bd * 255.0 + 0.5);
-
- return 0xff000000 | (r << 16) | (g << 8) | b;
- }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java/ImageProcessing/filters/SpatialFilter.java b/java/ImageProcessing/filters/SpatialFilter.java
deleted file mode 100644
index ad56164819e..00000000000
--- a/java/ImageProcessing/filters/SpatialFilter.java
+++ /dev/null
@@ -1,213 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-import JACE.Timers.ProfileTimer;
-
-public class SpatialFilter extends ImageFilter implements MedFilter
-{
- public SpatialFilter()
- {
- }
-
- public SpatialFilter(int[][] matrix, int degree)
- {
- this(matrix, degree, 1, 0);
- }
-
- public SpatialFilter(int[][] matrix, int degree, int div_factor, int offset)
- {
- matrix_ = matrix;
- div_factor_ = div_factor;
- offset_ = offset;
- degree_ = degree;
- }
-
- public void setFilter(int[][] matrix, int degree, int div_factor)
- {
- matrix_ = matrix;
- degree_ = degree;
- div_factor_ = div_factor;
- }
-
- public String info ()
- {
- return "Base Filter class. Doesn't do much";
- }
-
- public long filterTime()
- {
- return profile_timer_.elapsedTime();
- }
-
- public static void setTimer(int internal_iterations)
- {
- iterations_ = internal_iterations;
- }
-
- public void setDimensions(int width, int height)
- {
- rows_ = height;
- columns_ = width;
- raster_ = new int[width * height];
- consumer.setDimensions(width, height);
- }
-
- public void setPixels(int x, int y, int w, int h, ColorModel model,
- byte pixels[], int off, int scansize)
- {
- int source_offset = off;
- int dest_offset = y * columns_ + x;
-
- for (int y_ind = 0; y_ind < h; y_ind++)
- {
- for (int x_ind = 0; x_ind < w; x_ind++)
- {
- raster_[dest_offset] = model.getRGB(pixels[source_offset] & 0xff);
- dest_offset++;
- source_offset++;
- }
-
- source_offset += (scansize - w);
- dest_offset += (columns_ - w);
- }
- }
-
- public void setPixels(int x, int y, int w, int h, ColorModel model,
- int pixels[], int off, int scansize)
- {
- int source_offset = off;
- int dest_offset = y * columns_ + x;
-
- if (model == defaultRGB_)
- {
- for (int yc = 0; yc < h; yc++)
- {
- System.arraycopy(pixels, source_offset, raster_, dest_offset, w);
- source_offset += scansize;
- dest_offset += columns_;
- }
- }
- else
- {
-
- for (int yc = 0; yc < h; yc++)
- {
- for (int xc = 0; xc < w; xc++)
- {
- raster_[dest_offset] = model.getRGB(pixels[source_offset]);
- dest_offset++;
- source_offset++;
- }
- source_offset += (scansize - w);
- dest_offset += (columns_ - w);
- }
- }
- }
-
- public void setColorModel(ColorModel model)
- {
- consumer.setColorModel(defaultRGB_);
- }
-
- public void setHints(int hintflags)
- {
- consumer.setHints(TOPDOWNLEFTRIGHT
- | COMPLETESCANLINES
- | SINGLEPASS
- | (hintflags & SINGLEFRAME));
- }
-
-
- public void imageComplete(int status)
- {
- System.out.println("Image Complete called");
-
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Image Error");
- return;
- }
-
- int[] pixels = new int[columns_];
- int[][] new_raster= expandRaster();
- int pixel = 0;
- int red, green, blue;
- int new_red = 0, new_green = 0, new_blue = 0;
- int alpha;
-
- for (int x = raster_offset_; x < rows_; x++)
- {
- for (int y = raster_offset_; y < columns_; y++)
- {
- new_red = 0; new_green = 0; new_blue = 0;
- alpha = defaultRGB_.getAlpha(new_raster[x][y]);
- for (int i = 0; i < degree_; i++)
- {
- for (int j = 0; j < degree_; j++)
- {
- pixel = new_raster[x + (i - raster_offset_)][y + (j - raster_offset_)];
-
- red = defaultRGB_.getRed(pixel) * matrix_[i][j];
- blue = defaultRGB_.getBlue(pixel) * matrix_[i][j];
- green = defaultRGB_.getGreen(pixel) * matrix_[i][j];
-
- new_red += red;
- new_green += green;
- new_blue += blue;
- }
- }
-
- new_red /= div_factor_;
- new_green /= div_factor_;
- new_blue /= div_factor_;
-
- new_red = Math.min(Math.abs(new_red), 255);
- new_green = Math.min(Math.abs(new_green), 255);
- new_blue = Math.min(Math.abs(new_blue), 255);
-
- pixels[y - raster_offset_] =
- (alpha << 24) | (new_red << 16) | (new_green << 8) | new_blue;
- }
-
- consumer.setPixels(0, x - raster_offset_, columns_, 1, defaultRGB_, pixels, 0, columns_);
- }
-
- System.out.println("Finished altering image");
- consumer.imageComplete(status);
- }
-
- protected int[][] expandRaster()
- {
- int[][] new_raster;
- int index = 0;
-
- raster_offset_ = degree_ / 2;
- new_raster = new int[rows_ + raster_offset_*2][columns_ + raster_offset_*2];
-
- for (int x = 0; x < rows_; x++)
- {
- for (int y = 0; y < columns_; y++)
- {
- new_raster[x + raster_offset_][y + raster_offset_] = raster_[index];
- index++;
- }
- }
-
- return new_raster;
- }
-
- protected static final int intensity(int rd, int gn, int bl)
- {
- return (((int)(rd)*11 + (int)(gn)*16 + (int)(bl)*5) >> 5);
- }
-
- protected static int iterations_ = 1;
- protected static final ColorModel defaultRGB_ = ColorModel.getRGBdefault();
- protected int[][] matrix_;
- protected int[] raster_;
- protected int rows_ = 0, columns_ = 0;
- protected int div_factor_ = 1, offset_, degree_;
- protected int raster_offset_ = 0;
- protected final ProfileTimer profile_timer_ = new ProfileTimer();
-}
diff --git a/java/ImageProcessing/filters/SpreadFilter.java b/java/ImageProcessing/filters/SpreadFilter.java
deleted file mode 100644
index c78790c9235..00000000000
--- a/java/ImageProcessing/filters/SpreadFilter.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package imaging.filters;
-
-import java.awt.image.*;
-import java.util.Random;
-
-public class SpreadFilter extends SpatialFilter
-{
- private int pwidth_ = 5;
- private int pheight_ = 5;
-
- public SpreadFilter()
- {
- }
-
- public SpreadFilter(int pwidth, int pheight)
- {
- pwidth_ = pwidth;
- pheight_ = pheight;
- }
-
- public String info ()
- {
- return "Spreads an image (an effect of being under water).";
- }
-
- public void imageComplete(int status)
- {
- if (status == IMAGEERROR || status == IMAGEABORTED)
- {
- consumer.imageComplete(status);
- System.out.println("Spread Image Error: " + status);
- return;
- }
-
- System.gc();
-
- Random rand = new Random();
- int[] pixels = new int[columns_*rows_];
- int d, dx, dy, x1, y1, xrng, xoff, yrng, yoff;
- int minx, maxx, miny, maxy, rdist, tmp;
-
- profile_timer_.start();
-
- for (int z = 0; z < SpatialFilter.iterations_; z++)
- {
- for (int y = 0, i=0; y < rows_; y++)
- {
- for (int x = 0; x < columns_; x++, i++)
- {
- if (pwidth_ < 0)
- {
- d = (pwidth_ < 0 ? -pwidth_ : pwidth_);
-
- minx = x - d;
- if (minx < 0)
- minx = 0;
-
- maxx = x + d;
- if (maxx >= columns_)
- maxx = columns_ - 1;
-
- tmp = rand.nextInt();
- tmp = (tmp < 0 ? -tmp : tmp);
- x1 = minx + tmp % ((maxx - minx) + 1);
-
- miny = y - d;
- if (miny < 0)
- miny = 0;
-
- maxy = y + d;
- if (maxy >= rows_)
- maxy = rows_ - 1;
-
- rdist = d - (x1 < x ? -(x1 - x) : x1 - x);
- if (y - miny > rdist)
- miny = (y - rdist);
- if (maxy - y > rdist)
- maxy = (y + rdist);
-
- tmp = rand.nextInt();
- tmp = (tmp < 0 ? -tmp : tmp);
- y1 = miny + tmp % ((maxy - miny) + 1);
- }
- else
- {
- minx = x - pwidth_;
- if (minx < 0)
- minx = 0;
-
- maxx = x + pwidth_;
- if (maxx >= columns_)
- maxx = columns_ - 1;
-
- tmp = rand.nextInt();
- tmp = (tmp < 0 ? -tmp : tmp);
- x1 = minx + tmp % ((maxx - minx) + 1);
-
- miny = y - pheight_;
- if (miny < 0)
- miny = 0;
-
- maxy = y + pheight_;
- if (maxx >= columns_)
- maxx = columns_ - 1;
-
- tmp = rand.nextInt();
- tmp = (tmp < 0 ? -tmp : tmp);
- y1 = miny + tmp % ((maxy - miny) + 1);
- }
-
- if (x1 >= 0 && y1 >= 0 && x1 < columns_ && y1 < rows_)
- {
- int pixel = raster_[i];
- int alpha = (pixel >> 24) & 0xff;
- int red = (pixel >> 16) & 0xff;
- int green = (pixel >> 8) & 0xff;
- int blue = pixel & 0xff;
-
- pixels[i] = (alpha << 24) | (red << 16) | (green << 8) | blue;
- }
- }
- }
- }
-
- profile_timer_.stop();
-
- consumer.setPixels(0, 0, columns_, rows_, defaultRGB_, pixels, 0, columns_);
- consumer.imageComplete(status);
- }
-}
diff --git a/java/ImageProcessing/filters/Timer.java b/java/ImageProcessing/filters/Timer.java
deleted file mode 100644
index 609ec8aa366..00000000000
--- a/java/ImageProcessing/filters/Timer.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package imaging.filters;
-
-public class Timer
-{
- long start_time_;
- long stop_time_;
-
- public void start()
- {
- start_time_ = System.currentTimeMillis();
- }
-
- public void stop()
- {
- stop_time_ = System.currentTimeMillis();
- }
-
- public String toString()
- {
- long total = stop_time_ - start_time_;
- return "Total Time:" + total + " ms";
- }
-}
diff --git a/java/ImageProcessing/framework/BaseButton.java b/java/ImageProcessing/framework/BaseButton.java
deleted file mode 100644
index 794670b2f3f..00000000000
--- a/java/ImageProcessing/framework/BaseButton.java
+++ /dev/null
@@ -1,234 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import imaging.filters.*;
-
-public class BaseButton extends Panel
-{
- public BaseButton (String title, String description, ImageApp parent)
- {
- this.setLayout (new BorderLayout ());
- this.button_ = new Button (title);
- this.add ("Center", this.button_);
- this.resize (100, 100);
- this.description_ = description;
- this.parent_ = parent;
- }
-
- public boolean mouseEnter(Event evt, int x, int y)
- {
- this.parent_.displayStatus (this.description_);
- return true;
- }
-
- public boolean mouseExit(Event evt, int x, int y)
- {
- this.parent_.displayStatus ("");
- return true;
- }
-
- protected ImageApp parent_;
- private String description_;
- private Button button_;
-}
-
-class URLDialogButton extends BaseButton
-{
- public URLDialogButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- this.openURLFrame_ = new LoadURLFrame ("Open URL <2>", this.parent_);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.openURLFrame_.show ();
- return true;
- }
- private LoadURLFrame openURLFrame_;
-}
-
-// ******************
-// Should continue to remember the password
-// ******************
-class SaveButton extends BaseButton
-{
- public SaveButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- this.openURLFrame_ = new SaveURLFrame ("Save Image <2>", this.parent_);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.openURLFrame_.show ();
- return true;
- }
- private SaveURLFrame openURLFrame_;
-}
-
-class ReloadButton extends BaseButton
-{
- public ReloadButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.parent_.reloadFilters ();
- return true;
- }
-}
-
-class ApplyButton extends BaseButton
-{
- public ApplyButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.parent_.apply ();
- return true;
- }
-}
-
-class ResetButton extends BaseButton
-{
- public ResetButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.parent_.resetImage ();
- return true;
- }
-}
-
-class ZoomInButton extends BaseButton
-{
- public ZoomInButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.parent_.zoomFactor (1.6);
- return true;
- }
-}
-
-class ZoomOutButton extends BaseButton
-{
- public ZoomOutButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- this.parent_.zoomFactor (0.625);
- return true;
- }
-}
-
-
-class AboutButton extends BaseButton
-{
- public AboutButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- DialogManager.popDialog (DialogType.ABOUT, null);
- return true;
- }
-}
-
-class HelpButton extends BaseButton
-{
- public HelpButton (String title, String desc, ImageApp parent)
- {
- super (title, desc, parent);
- }
-
- public boolean action (Event e, Object arg)
- {
- DialogManager.popDialog (DialogType.HELP, null);
- return true;
- }
-}
-
-class ChoicePanel extends Panel
-{
- public ChoicePanel (String desc, ImageApp parent)
- {
- this.description_ = desc;
- this.parent_ = parent;
-
- this.loadFilters ();
- // Set the layout of the Choice Panel. Note that the Choice Panel
- // holds the choice button of filters.
- this.setLayout (new FlowLayout ());
- this.resize (150, 100);
- }
-
- public void choice (Choice choice)
- {
- this.choice_ = choice;
- }
-
- public Choice choice ()
- {
- return this.choice_;
- }
-
- public void loadFilters ()
- {
- // First remove all components of the panel including the
- // choices of filters
- this.removeAll ();
-
- // Now create new choices
- this.choice_ = this.parent_.getFilters ();
-
- // Add the choices to our choice panel
- this.add (this.choice_);
- }
-
- public boolean mouseEnter(Event evt, int x, int y)
- {
- MedFilter filter = null;
- String displayString = null;
- String filterName = this.choice_.getSelectedItem ();
-
- if (filterName.compareTo ("Filters:") == 0)
- displayString = "No filter selected";
- else
- {
- filter = (MedFilter) this.parent_.getFilter (filterName);
- displayString = filter.info ();
- }
- this.parent_.displayStatus (displayString);
- // this.parent_.displayStatus (this.description_);
- return true;
- }
-
- public boolean mouseExit(Event evt, int x, int y)
- {
- this.parent_.displayStatus ("");
- return true;
- }
-
- private Choice choice_;
- private ImageApp parent_;
- String description_;
-}
-
diff --git a/java/ImageProcessing/framework/BenchmarkApplet.java b/java/ImageProcessing/framework/BenchmarkApplet.java
deleted file mode 100644
index ac125a1d9de..00000000000
--- a/java/ImageProcessing/framework/BenchmarkApplet.java
+++ /dev/null
@@ -1,622 +0,0 @@
-package imaging.framework;
-
-import JACE.Timers.ProfileTimer;
-import imaging.filters.*;
-import java.awt.*;
-import java.awt.image.*;
-import java.applet.*;
-import java.net.*;
-import java.util.*;
-import java.io.*;
-import gjt.*;
-
-public class BenchmarkApplet extends Applet implements Runnable
-{
- public static final Font GLOBAL_FONT = new Font("Dialog", Font.BOLD, 10);
- private static final String NEW_LINE = System.getProperty("line.separator");
- private static final String WELCOME = "Welcome to MedJava Image Processing Benchmarking Tool";
- private static final String COPYRIGHT = "(c) 1997 Distributed Object Computing Group, Washington Univesity";
- private static final String ABORT = "Image Processing Tests Aborted";
- private static final String STOP = "Stop";
- private static final String START= "Start";
- private static final String CLEAR= "Clear";
- private static final String RANDOM= "Create Random Image";
- private static final int INTERNAL_ITERATIONS = 10;
- private static final int TRIALS = 1;
-
- private List images_, filters_;
- private TextArea console_;
- private TextField new_image_;
- private Button start_button_;
- private Button stop_button_;
- private Button clear_button_;
- private Button random_button_;
- private ButtonPanel button_panel_ = new ButtonPanel();
- private Hashtable filter_table_ = new Hashtable();
- private Hashtable image_table_ = new Hashtable();
- private Thread benchmarker_;
- private long elapsed_time_;
- private SpatialFilter filter_;
- private Object monitor_ = new Object();
-
- public void init()
- {
- Panel control_panel = new Panel();
- Panel sub_panel1 = new Panel();
- Panel filter_panel = new Panel();
- Panel image_panel = new Panel();
- Label image_panel_label = new Label("Images");
- Label filter_panel_label = new Label("Filters");
-
- new_image_ = new TextField();
- console_ = new TextArea();
- images_ = new List();
- filters_ = new List();
-
- console_.setEditable(false);
- images_.setMultipleSelections(true);
- filters_.setMultipleSelections(true);
- console_.setFont(GLOBAL_FONT);
- images_.setFont(GLOBAL_FONT);
- filters_.setFont(GLOBAL_FONT);
- image_panel_label.setFont(GLOBAL_FONT);
- filter_panel_label.setFont(GLOBAL_FONT);
-
- console_.appendText(WELCOME + NEW_LINE);
- console_.appendText(COPYRIGHT + NEW_LINE);
-
- image_panel.setLayout(new BorderLayout());
- image_panel.add("North", image_panel_label);
- image_panel.add("Center", images_);
- image_panel.add("South", new_image_);
-
- filter_panel.setLayout(new BorderLayout());
- filter_panel.add("North", filter_panel_label);
- filter_panel.add("Center", filters_);
-
- sub_panel1.setLayout(new GridLayout(1, 2, 5, 5));
- sub_panel1.add(filter_panel);
- sub_panel1.add(image_panel);
-
- control_panel.setLayout(new GridLayout(2, 1, 5, 5));
- control_panel.add(sub_panel1);
- control_panel.add(console_);
-
- setLayout(new BorderLayout());
-
- stop_button_ = button_panel_.add(STOP);
- start_button_ = button_panel_.add(START);
- clear_button_ = button_panel_.add(CLEAR);
- random_button_ = button_panel_.add(RANDOM);
-
- stop_button_.disable();
- add("Center", control_panel);
- add("South", button_panel_);
-
- getFilters();
- getImages();
- }
-
- synchronized public void run()
- {
- Image image;
- String image_name, filter_name;
- int image_height, image_width;
- String[] image_list = images_.getSelectedItems();
- String[] filter_list = filters_.getSelectedItems();
- ImageProducer image_source;
- FilteredImageSource filtered_image;
- // BenchmarkFrame bframe = BenchmarkFrame.instance();
-
- double cumulative_time;
- double best_time;
-
- SpatialFilter.setTimer(INTERNAL_ITERATIONS);
- console_.appendText(NEW_LINE);
- console_.appendText("Benchmark tests: [mem=" +
- Runtime.getRuntime().freeMemory() +"/" +
- Runtime.getRuntime().totalMemory() +"]"
- + NEW_LINE);
-
- for (int i = 0; i < image_list.length; i++)
- {
-
- image_name = image_list[i];
- image = (Image)image_table_.get(image_name);
-
- image_width = image.getWidth(this);
- image_height = image.getHeight(this);
-
- console_.appendText("Begining tests for image " + image_name);
- console_.appendText(" (size " + image_width + "x" + image_height +
- " = " + image_height*image_width*4 + " bytes )");
- console_.appendText(NEW_LINE);
-
- console_.appendText(NEW_LINE + " ********** " + NEW_LINE);
- // bframe.init("Begining tests for image " + image_name, image, image_width, image_height);
-
- // if (! bframe.isShowing())
- // bframe.show();
-
- for (int j = 0; j < filter_list.length; j++)
- {
- filter_name = filter_list[j];
- filter_ = (SpatialFilter)filter_table_.get(filter_name);
-
- if (filter_ == null)
- System.err.println(filter_name + " is null");
-
- best_time = Double.MAX_VALUE;
- cumulative_time = 0;
- image_source = image.getSource();
- filtered_image = new FilteredImageSource(image.getSource(), filter_);
-
- for (int l = 0; l < TRIALS; l++)
- {
- elapsed_time_ = 0;
- prepareImage(createImage(filtered_image), this);
-
- try
- {
- // synchronized(monitor_)
- // {
- while (elapsed_time_ == 0)
- {
- System.out.println("Waiting for image loading to complete.");
- // monitor_.wait();
- wait();
- }
-
- System.out.println("Image loading has completed.");
- // }
- }
- catch(Exception excp)
- {
- System.out.println(excp);
- stop();
- }
-
- cumulative_time = (double)elapsed_time_ / (double)INTERNAL_ITERATIONS;
- System.out.println(image_name + " " + filter_name + " " + elapsed_time_);
-
- if (best_time > cumulative_time)
- best_time = cumulative_time;
- }
-
- console_.appendText(filter_name + ": best time from " +
- TRIALS + " trials of " + INTERNAL_ITERATIONS +
- " iterations equals: " + best_time + " ms");
- console_.appendText(NEW_LINE);
- Thread.yield();
- }
-
- console_.appendText(NEW_LINE);
- }
-
- console_.appendText("Tests concluded." + NEW_LINE);
-
- // if (bframe.isShowing())
- // bframe.hide();
-
- stop_button_.disable();
- start_button_.enable();
- }
-
- synchronized public boolean imageUpdate(Image img, int infoflags, int x, int y,
- int width, int height)
- {
- System.out.println("Image Update called");
-
- boolean return_value = false;
- try
- {
- if ((infoflags & ALLBITS) != 0 ||
- (infoflags & SOMEBITS) != 0)
- {
- System.out.println("notify called" + width + " " + height);
- elapsed_time_ = filter_.filterTime();
- return_value = true;
- // monitor_.notify();
- notifyAll();
- }
- else if ((infoflags & ImageObserver.ABORT) != 0 ||
- (infoflags & ERROR) != 0)
- {
- System.out.println("image error!");
- // stop();
- return_value = true;
- }
- }
- catch(SecurityException excp)
- {
- System.err.println(excp);
- }
-
- return return_value;
- }
-
- public void stop()
- {
- try
- {
- if (benchmarker_.isAlive())
- {
- BenchmarkFrame bframe = BenchmarkFrame.instance();
-
- if (bframe.isShowing())
- bframe.hide();
-
- System.out.println("Stopping tests...");
- benchmarker_.stop();
- console_.appendText(NEW_LINE + ABORT + NEW_LINE);
- }
-
- start_button_.enable();
- stop_button_.disable();
- }
- catch(SecurityException exception)
- {
- console_.appendText(NEW_LINE + "Stop Failed." + NEW_LINE);
- }
- }
-
- public boolean action(Event evt, Object what)
- {
- if (what.equals(START))
- {
- boolean proceed = ! (benchmarker_ != null && benchmarker_.isAlive());
-
- stop_button_.enable();
-
- if (proceed &&
- images_.getSelectedIndexes() != null &&
- filters_.getSelectedIndexes() != null)
- {
- System.out.println("Starting tests...");
- start_button_.disable();
- benchmarker_ = new Thread(this);
- benchmarker_.setPriority(Math.min(Thread.currentThread().getPriority() + 2,
- Thread.MAX_PRIORITY - 1));
- benchmarker_.start();
- }
- }
- else if (what.equals(STOP))
- {
- stop();
- }
- else if (what.equals(CLEAR))
- {
- console_.setText("");
- console_.appendText(WELCOME + NEW_LINE);
- console_.appendText(COPYRIGHT + NEW_LINE);
- }
- else if (what.equals(RANDOM))
- {
- RandomImageDialog.instance(this).show();
- }
- else if (evt.target == new_image_)
- {
- getSingleImage(new_image_.getText());
- }
-
-
- return true;
- }
-
- private void getSingleImage(String image_url)
- {
- Image image;
- MediaTracker tracker = new MediaTracker(this);
-
- try
- {
- image = getImage(new URL(image_url));
- tracker.addImage(image, 0);
- tracker.waitForID(0);
-
- if (image != null)
- {
- int index = image_url.lastIndexOf('/');
-
- if (index != -1)
- image_url = image_url.substring(index + 1);
-
- image_table_.put(image_url, image);
- images_.addItem(image_url);
- }
- }
- catch(MalformedURLException e)
- {
- System.err.println(e);
- }
- catch(InterruptedException excp)
- {
- System.err.println(excp);
- }
-
- }
-
- private void getImages()
- {
- Image image;
- String image_list = getParameter("images"), image_url;
- StringTokenizer str_tok = new StringTokenizer(image_list, ",");
-
- while (str_tok.hasMoreTokens())
- {
- image_url = str_tok.nextToken();
- getSingleImage(image_url);
- }
- }
-
- private void getFilters()
- {
- URL url;
- Object download;
- String config_file;
- String configInfo= null;
- Choice choice = new Choice ();
- ImageFilter filter;
-
- config_file = getParameter ("configFile");
-
- if (config_file == null)
- config_file = "http://www.cs.wustl.edu/~pjain/java/ACE_wrappers/java/ImageProcessing/framework/filter.conf";
-
- try
- {
- System.out.println ("Configuration File: " + config_file);
- // Create a new URL
- url = new URL (config_file);
-
- // Get the input stream and pipe it to a DataInputStream
- DataInputStream iStream = new DataInputStream (url.openStream ());
-
- // Create a buffer to hold all the data we get
- StringBuffer tempBuf = new StringBuffer ();
- // Keep reading the data until we are done
- String tempString = iStream.readLine ();
- while (tempString != null)
- {
- tempBuf.append (tempString);
- tempBuf.append (" ");
- tempString = iStream.readLine ();
- }
-
- configInfo = tempBuf.toString ();
- System.out.println(configInfo);
-
- if (configInfo != null)
- {
- StringTokenizer tokens = new StringTokenizer (configInfo);
- String fullFilterName = null;
- String filterName = null;
- // Now parse the string, picking up filter names. Use these
- // names to load the actual filters as well add new choices to
- // the filter choices.
- while (tokens.hasMoreTokens ())
- {
- // Get the next token
- fullFilterName = tokens.nextToken ();
- filterName = this.extractFilterName (fullFilterName);
-
- System.out.println ("Loading: " + fullFilterName);
- // Load the filter class
- Class c = Class.forName (fullFilterName);
- // Class c = this.filterRepository_.load (filter);
-
- filter = (ImageFilter)c.newInstance();
-
- if (filter instanceof SpatialFilter)
- {
- // Add the filter to the Filter Repository
- filter_table_.put(filterName, filter);
-
- // Add filter name to the list of filter choices
- filters_.addItem (filterName);
- }
- }
- }
- }
- catch (Exception e)
- {
- System.err.println ("Filter not found: " + e);
- }
- }
-
- private String extractFilterName (String s)
- {
- String filterName = null;
- StringTokenizer tokens = new StringTokenizer (s, ".");
- while (tokens.hasMoreTokens ())
- filterName = tokens.nextToken ();
- return filterName;
- }
-
- public void generateRandomImage(String name, int width, int height)
- {
- Image image = createImage(width, height);
- Graphics g = image.getGraphics();
- FilteredImageSource filtered_image;
-
- if (g != null)
- {
- ImageFilter filter = new RandomizeFilter();
- g.fillRect(0, 0, width, height);
- filtered_image = new FilteredImageSource(image.getSource(), filter);
- image_table_.put(name, createImage(filtered_image));
- images_.addItem(name);
- }
- }
-}
-
-class RandomImageDialog extends Frame
-{
- private static String GENERATE = "Generate";
- private static String CANCEL = "Cancel";
-
- private TextField name_ = new TextField(30),
- width_ = new TextField(5),
- height_= new TextField(5);
- private BenchmarkApplet applet_;
- private Button generate_button_;
- private Button cancel_button_;
- private ButtonPanel button_panel_ = new ButtonPanel();
-
- private static RandomImageDialog instance_;
-
- public static RandomImageDialog instance(BenchmarkApplet applet)
- {
- if (instance_ == null)
- instance_ = new RandomImageDialog(applet);
-
- return instance_;
- }
-
- protected RandomImageDialog(BenchmarkApplet applet)
- {
- super("Generate Random Image");
- applet_ = applet;
-
- Panel controls = new Panel();
- GridBagLayout gb = new GridBagLayout();
- GridBagConstraints gc = new GridBagConstraints();
- Label width = new Label("Width: "),
- height = new Label("Height: "),
- name = new Label("Name: ");
-
- reshape (0, 0, 300, 200);
-
- controls.setLayout(gb);
- gc.gridx = 0;
- gc.gridy = 0;
- gc.gridwidth = 1;
- gc.insets = new Insets(5,5,5,5);
- gc.anchor = GridBagConstraints.WEST;
- width.setFont(BenchmarkApplet.GLOBAL_FONT);
- gb.setConstraints(width, gc);
- controls.add(width);
-
- gc.gridx = 1;
- gc.anchor = GridBagConstraints.CENTER;
- gc.fill = GridBagConstraints.HORIZONTAL;
- gb.setConstraints(width_, gc);
- controls.add(width_);
-
- gc.gridx = 2;
- gc.anchor = GridBagConstraints.WEST;
- gc.fill = GridBagConstraints.NONE;
- height.setFont(BenchmarkApplet.GLOBAL_FONT);
- gb.setConstraints(height, gc);
- controls.add(height);
-
- gc.gridx = 3;
- gc.anchor = GridBagConstraints.CENTER;
- gc.fill = GridBagConstraints.HORIZONTAL;
- gb.setConstraints(height_, gc);
- controls.add(height_);
-
- gc.gridx = 0;
- gc.gridy = 1;
- gc.gridwidth = 1;
- gc.fill = GridBagConstraints.NONE;
- gc.anchor = GridBagConstraints.WEST;
- name.setFont(BenchmarkApplet.GLOBAL_FONT);
- gb.setConstraints(name, gc);
- controls.add(name);
-
- gc.gridx = 1;
- gc.gridwidth = GridBagConstraints.REMAINDER;
- gc.anchor = GridBagConstraints.CENTER;
- gc.fill = GridBagConstraints.HORIZONTAL;
- gb.setConstraints(name_, gc);
- controls.add(name_);
-
- setLayout(new BorderLayout());
- generate_button_ = button_panel_.add(GENERATE);
- cancel_button_ = button_panel_.add(CANCEL);
- add("Center", controls);
- add("South", button_panel_);
-
- }
-
- public boolean action(Event evt, Object what)
- {
- if (what.equals(GENERATE))
- {
- String width = width_.getText(),
- height = height_.getText(),
- name = name_.getText();
-
- try
- {
- int width_num = Integer.parseInt(width),
- height_num = Integer.parseInt(height);
-
- applet_.generateRandomImage(name, width_num, height_num);
- dispose();
- }
- catch(NumberFormatException nfe)
- {
- width_.setText("");
- height_.setText("");
- }
- }
- else if (what.equals(CANCEL))
- dispose();
-
- return true;
- }
-}
-
-class BenchmarkFrame extends Frame
-{
- private String desc_;
- private Image image_;
- private int height_, width_;
- private static BenchmarkFrame instance_;
- private static final Font FONT = new Font("Dialog", Font.BOLD, 12);
-
- public static BenchmarkFrame instance()
- {
- if (instance_ == null)
- instance_ = new BenchmarkFrame();
-
- return instance_;
- }
-
- public void init(String desc, Image image, int width, int height)
- {
- reshape(0, 0, width, height + 50);
- setImage(desc, image);
- }
-
- public void setImage(String desc, Image image)
- {/*
- try
- {
- MediaTracker tracker = new MediaTracker(this);
- tracker.addImage(image, 0);
- tracker.waitForID(0);
- }
- catch(InterruptedException excp)
- {
- }
- */
- desc_ = desc;
- image_ = image;
- }
-
- public void paint(Graphics g)
- {
- g.setColor(Color.black);
- g.setFont(FONT);
- g.drawImage(image_, 0, 50, this);
- g.drawString(desc_, 5, 40);
- }
-
- protected BenchmarkFrame()
- {
- super("Benchmark Frame");
- }
-}
diff --git a/java/ImageProcessing/framework/DialogManager.java b/java/ImageProcessing/framework/DialogManager.java
deleted file mode 100644
index cca0c037af1..00000000000
--- a/java/ImageProcessing/framework/DialogManager.java
+++ /dev/null
@@ -1,277 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import java.applet.*;
-import java.util.*;
-import java.io.*;
-import java.net.*;
-
-class DialogManager
-{
- public static void initialize (Applet parent)
- {
- codeBase_ = parent.getCodeBase ().toString ();
- aboutFrame_ = new AboutFrame ();
- helpFrame_ = new HelpFrame (codeBase_);
- }
-
- public static void popDialog (int type, String message)
- {
- Frame frame = null;
-
- switch (type)
- {
- case DialogType.ABOUT:
- aboutFrame_.show ();
- break;
- case DialogType.HELP:
- helpFrame_.show ();
- break;
- case DialogType.MALFORMED_URL:
- case DialogType.NOT_SUPPORTED:
- case DialogType.URL_NOT_FOUND:
- frame = new MessageFrame ("Error", message);
- break;
- case DialogType.NOT_YET_IMPLEMENTED:
- frame = new MessageFrame ("", message);
- break;
- }
- Dimension d = Toolkit.getDefaultToolkit ().getScreenSize ();
- frame.move ((d.width - frame.size ().width)/2,
- (d.height - frame.size ().height)/2);
- frame.show ();
- }
-
- private static String codeBase_ = "";
- private static AboutFrame aboutFrame_;
- private static HelpFrame helpFrame_;
-}
-
-class MessageFrame extends Frame
-{
- public MessageFrame (String title, String message)
- {
- super (title);
-
- this.resize (message.length () * 8, 100);
- this.setLayout (new BorderLayout ());
-
- this.text_ = new TextField (message);
- this.text_.setEditable (false);
-
- Panel okButtonPanel = new Panel ();
- okButtonPanel.add (this.okButton_);
- okButtonPanel.resize (100, 100);
-
- this.add ("Center", this.text_);
- this.add ("South", okButtonPanel);
- }
-
- public boolean handleEvent (Event evt)
- {
- if (evt.id == Event.WINDOW_DESTROY)
- {
- this.dispose ();
- return true;
- }
- return super.handleEvent (evt);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.okButton_)
- {
- this.dispose ();
- }
- return true;
- }
- else
- return false;
- }
-
- private Button okButton_ = new Button (" ok ");
- private TextField text_ = null;
-}
-
-class AboutFrame extends Frame
-{
- public AboutFrame ()
- {
- super ("About");
- this.resize (300,300);
- this.setLayout (new BorderLayout ());
-
- Panel okButtonPanel = new Panel ();
- okButtonPanel.add (this.okButton_);
- AboutFrameTextPanel textPanel = new AboutFrameTextPanel ();
-
- this.add ("Center", textPanel);
- this.add ("South", okButtonPanel);
- }
-
- // Handle window destroy events
- public boolean handleEvent (Event evt)
- {
- if (evt.id == Event.WINDOW_DESTROY)
- {
- this.hide ();
- return true;
- }
- return super.handleEvent (evt);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.okButton_)
- {
- this.hide ();
- }
- return true;
- }
- else
- return false;
- }
- private Button okButton_ = new Button (" ok ");
-}
-
-class AboutFrameTextPanel extends Panel
-{
- public void paint (Graphics g)
- {
- int width = this.size ().width;
- int height = this.size ().height;
-
- g.clearRect (0, 0, width, height);
- this.setBackground (Color.cyan);
-
- // First draw the title
- g.setFont (new Font ("TimesRoman", Font.BOLD | Font.ITALIC, 48));
- FontMetrics fontMetrics = g.getFontMetrics ();
- int x = (width - fontMetrics.stringWidth (title_))/2;
- int y = 100;
-
- Color color = g.getColor ();
- g.setColor (Color.orange);
- g.drawString(title_, x+2, y+2);
- g.setColor (color);
- g.drawString(title_, x, y);
-
- // Then draw author's name
- g.setFont (new Font ("TimesRoman", Font.ITALIC, 24));
- fontMetrics = g.getFontMetrics ();
- x = (width - fontMetrics.stringWidth (by_))/2;
- y += 50;
- g.drawString(by_, x, y);
-
- x = (width - fontMetrics.stringWidth (author_))/2;
- y += 50;
- g.drawString(author_, x, y);
-
- // Finally draw other information -- version number etc.
- g.setFont (new Font ("TimesRoman", Font.ITALIC, 18));
- fontMetrics = g.getFontMetrics ();
- x = (width - fontMetrics.stringWidth (info_))/2;
- y += 50;
- g.drawString(info_, x, y);
- }
-
- private String title_ = "MedJava";
- private String by_ = "by";
- private String author_ = "Prashant Jain";
- private String info_ = "Version 1.0";
-}
-
-class HelpFrame extends Frame
-{
- public HelpFrame (String codeBase)
- {
- super ("Help");
- this.setBackground (Color.white);
- this.text_.setEditable (false);
- Font defaultFont = new Font ("TimesRoman", Font.PLAIN, 14);
- this.text_.setFont (defaultFont);
-
- try
- {
- URL url = new URL (codeBase + "../ImageProcessing/framework/help.conf");
- String delim = "\n";
-
- // Get the input stream and pipe it to a DataInputStream
- DataInputStream iStream = new DataInputStream (url.openStream ());
-
- // Keep reading the data until we are done
- String tempString = iStream.readLine ();
- while (tempString != null)
- {
- if (tempString.startsWith ("<START>"))
- delim = "";
- else if (tempString.startsWith ("<END>"))
- delim = "\n";
- else if (tempString.startsWith ("<TAB>"))
- this.text_.appendText ("\t");
- else if (tempString.startsWith ("<P>"))
- this.text_.appendText ("\n");
- else
- {
- this.text_.appendText (tempString);
- this.text_.appendText (delim);
- }
- tempString = iStream.readLine ();
- }
- }
- catch (MalformedURLException e)
- {
- System.err.println (e);
- }
- catch (IOException e)
- {
- System.err.println (e);
- }
-
- this.resize (600,700);
- this.setLayout (new BorderLayout ());
-
- Panel okButtonPanel = new Panel ();
- okButtonPanel.add (this.okButton_);
- this.add ("South", okButtonPanel);
- this.add ("Center", this.text_);
- }
-
- // Handle window destroy events
- public boolean handleEvent (Event evt)
- {
- if (evt.id == Event.WINDOW_DESTROY)
- {
- this.hide ();
- return true;
- }
- return super.handleEvent (evt);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.okButton_)
- {
- this.hide ();
- }
- return true;
- }
- else
- return false;
- }
-
- private Vector helpInfo_ = new Vector ();
- private Button okButton_ = new Button (" ok ");
- private TextArea text_ = new TextArea ();
-}
-
diff --git a/java/ImageProcessing/framework/DialogType.java b/java/ImageProcessing/framework/DialogType.java
deleted file mode 100644
index c95372c08e1..00000000000
--- a/java/ImageProcessing/framework/DialogType.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package imaging.framework;
-
-public class DialogType
-{
- public static final int ABOUT = 0;
- public static final int MALFORMED_URL = 1;
- public static final int URL_NOT_FOUND = 2;
- public static final int NOT_SUPPORTED = 3;
- public static final int HELP = 4;
- public static final int NOT_YET_IMPLEMENTED = 10;
-}
diff --git a/java/ImageProcessing/framework/FileBrowser.java b/java/ImageProcessing/framework/FileBrowser.java
deleted file mode 100644
index 27245b1f2f4..00000000000
--- a/java/ImageProcessing/framework/FileBrowser.java
+++ /dev/null
@@ -1,173 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import java.net.*;
-import java.applet.*;
-import gjt.Separator;
-import gjt.ComponentScroller;
-
-class FileNode extends HierarchyAdapter
-{
- public FileNode (String name,
- Icon icon,
- boolean root,
- ImageApp app)
- {
- super (name, icon, root);
- this.app_ = app;
- }
-
- public FileNode (String name,
- Icon icon,
- ListFiles list,
- ImageApp app)
- {
- super (name, icon);
- this.list_ = list;
- this.app_ = app;
- }
-
- public ImageApp app ()
- {
- return this.app_;
- }
-
- public void handleEvent ()
- {
- String s = null;
- String pString = "";
- Hierarchy p = this.getHierarchyParent ();
-
- while (p != null)
- {
- pString = p.getName () + pString;
- p = p.getHierarchyParent ();
- }
-
- if (pString.endsWith ("/"))
- s = "http://" + pString + this.getName ();
- else
- s = "http://" + pString + "/" + this.getName ();
-
- System.out.println ("Opening: " + s);
-
- // If list is null, then it is a file, else it is a directory and
- // use list to get the rest of the directory.
- if (this.list_ == null)
- this.app_.openURL (s); // It is a file
- else
- this.list_.listFiles (s, this); // It is a directory.
- }
-
- private ListFiles list_ = null;
- private ImageApp app_ = null;
-}
-
-class BrowserPanel extends Panel
-{
- public BrowserPanel (ImageApp parent)
- {
- this.resize (300, 300);
- this.parent_ = parent;
- this.setLayout (new BorderLayout ());
- }
-
- public int initialize (String url, ListFiles list)
- {
- String directory = null;
- int index = -1;
-
- String pString = list.stripProtocolHeader (url);
- if (!pString.endsWith ("/"))
- pString = pString + "/";
-
- try
- {
- Icon dirIcon = new Icon (this.parent_.getCodeBase () +
- "../ImageProcessing/framework/" +
- "file03.gif", (Applet) this.parent_);
- System.out.println (this.parent_.getCodeBase () +
- "../ImageProcessing/framework/" +
- "file03.gif");
- this.root_ = new FileNode (pString,
- dirIcon, true, this.parent_);
- }
- catch (MalformedURLException e)
- {
- }
-
- int count = list.listFiles (url, this.root_);
- // System.out.println ("Count: " + count);
- if (count > 0)
- {
- // Add the root to the component scroller and then add the
- // component scroller to the panel.
- this.scroller_ = new ComponentScroller (this.root_);
- this.add ("Center", this.scroller_);
- }
- return count;
- }
-
- private FileNode root_ = null;
- private ImageApp parent_;
- private ComponentScroller scroller_;
-}
-
-class FileBrowser extends Frame
-{
- public FileBrowser (String title, ImageApp parent)
- {
- super (title);
- this.resize (300, 300);
- this.browser_ = new BrowserPanel (parent);
- this.setLayout (new BorderLayout ());
-
- this.cancelButton_ = new Button (" cancel ");
- Panel buttonPanel = new Panel ();
- buttonPanel.add (this.cancelButton_);
- buttonPanel.resize (100, 100);
-
- Panel southPanel = new Panel ();
- southPanel.setLayout (new BorderLayout ());
- southPanel.add ("North", new Separator ());
- southPanel.add ("South", buttonPanel);
- this.add ("South", southPanel);
- this.add ("Center", this.browser_);
- }
-
- public int initialize (String url, ListFiles list)
- {
- return this.browser_.initialize (url, list);
- }
-
- // Handle window destroy events
- public boolean handleEvent (Event evt)
- {
- if (evt.id == Event.WINDOW_DESTROY)
- {
- this.dispose ();
- return true;
- }
- return super.handleEvent (evt);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.cancelButton_)
- {
- this.dispose ();
- }
- validate ();
- return true;
- }
- else
- return false;
- }
-
- private Button cancelButton_;;
- private BrowserPanel browser_;
-}
diff --git a/java/ImageProcessing/framework/FilePanel.java b/java/ImageProcessing/framework/FilePanel.java
deleted file mode 100644
index f8ffc7dbca8..00000000000
--- a/java/ImageProcessing/framework/FilePanel.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-
-// Create a panel for all the buttons
-class FilePanel extends Panel
-{
- FilePanel (ImageApp parent)
- {
- this.parent_ = parent;
-
- this.setLayout (new GridLayout (2, 1));
-
- // First create all the buttons
- this.URLDialogButton_ = new URLDialogButton ("Open URL", "Download an image", this.parent_);
- this.saveButton_ = new SaveButton ("Save", "Upload an image", this.parent_);
-
- // Place the created buttons in the panel
- this.add (this.URLDialogButton_);
- this.add (this.saveButton_);
-
- // Disable the save button for now
- this.disableSaveButton ();
- this.resize (400, 400);
- }
-
- public void enableSaveButton ()
- {
- this.saveButton_.enable ();
- }
-
- public void disableSaveButton ()
- {
- this.saveButton_.disable ();
- }
-
- // All the created buttons
- private URLDialogButton URLDialogButton_;
- private SaveButton saveButton_;
-
- private ImageApp parent_;
-}
-
-// Create a panel for all the buttons
-class ResetPanel extends Panel
-{
- ResetPanel (ImageApp parent)
- {
- this.parent_ = parent;
-
- this.setLayout (new GridLayout (2, 1));
-
- // First create all the buttons
- this.reloadButton_ = new ReloadButton ("Reload Filters", "Reload all filters", this.parent_);
-
- // **********************
- // Disable this until it works
- // **********************
- this.reloadButton_.disable();
-
-
- this.resetButton_ = new ResetButton ("Reset", "Reset the image", this.parent_);
-
-
- // Place the created buttons in the panel
- this.add (this.resetButton_);
- this.add (this.reloadButton_);
-
- this.resize (400, 400);
- }
-
- // All the created buttons
- private ReloadButton reloadButton_;
- private ResetButton resetButton_;
-
- private ImageApp parent_;
-}
-
-
-class ZoomPanel extends Panel
-{
- ZoomPanel (ImageApp parent)
- {
- this.parent_ = parent;
-
- this.setLayout (new GridLayout (2, 1));
-
- // First create the two zoom buttons
- this.zoomInButton_ = new ZoomInButton ("<< Zoom in", "Zoom into the image", this.parent_);
- this.zoomOutButton_ = new ZoomOutButton ("Zoom out >>", "Zoom out of the image", this.parent_);
-
- // Now add the buttons to the panel
- this.add (this.zoomInButton_);
- this.add (this.zoomOutButton_);
-
- this.resize (100, 100);
- }
-
- private ZoomInButton zoomInButton_;
- private ZoomOutButton zoomOutButton_;
-
- private ImageApp parent_;
-}
-
-
-class FilterPanel extends Panel
-{
- FilterPanel (ImageApp parent)
- {
- this.parent_ = parent;
-
- this.setLayout (new GridLayout (2, 1));
- this.applyButton_ = new ApplyButton ("Apply", "Apply the selected filter", this.parent_);
-
- // Set the layout of the Choice Panel. Note that the Choice Panel
- // holds the choice button of filters.
- this.choicePanel_ = new ChoicePanel ("Select filter", this.parent_);
-
- this.add (this.applyButton_);
- this.add (this.choicePanel_);
- this.resize (200,200);
- }
-
- public Choice choice ()
- {
- return this.choicePanel_.choice ();
- }
-
- public void loadFilters ()
- {
- this.choicePanel_.loadFilters ();
- }
-
- private ChoicePanel choicePanel_;
- private ApplyButton applyButton_;
- private ImageApp parent_;
-}
-
-class HelpPanel extends Panel
-{
- HelpPanel (ImageApp parent)
- {
- this.parent_ = parent;
-
- this.setLayout (new GridLayout (2, 1));
-
- this.aboutButton_ = new AboutButton ("About", "About the applet", this.parent_);
- this.helpButton_ = new HelpButton ("Help", "Help on how to use the applet", this.parent_);
-
- // Now add the buttons to the panel
- this.add (this.aboutButton_);
- this.add (this.helpButton_);
-
- this.resize (100, 100);
- }
-
- private AboutButton aboutButton_;
- private HelpButton helpButton_;
-
- private ImageApp parent_;
-}
diff --git a/java/ImageProcessing/framework/FilterTest.java b/java/ImageProcessing/framework/FilterTest.java
deleted file mode 100644
index b1e33482be9..00000000000
--- a/java/ImageProcessing/framework/FilterTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import imaging.filters.Timer;
-
-public class FilterTest
-{
- public static void main(String[] args)
- {
- Timer timer = new Timer();
- ImageProcessor ip = new ImageProcessor();
- ImageFilterFactory iff = new ImageFilterFactory();
- Frame frame = new Frame("Rotate Example");
- Toolkit tk = Toolkit.getDefaultToolkit();
- Dimension d = tk.getScreenSize();
- Image old_image = tk.getImage("myphoto.gif"), image;
- int image_x, image_y, x = 50, y = 50;
- Graphics g;
-
- frame.reshape(d.width/4, d.height/8, d.width/2, 3*d.height/4);
- frame.show();
- g = frame.getGraphics();
- d = frame.size();
-
- MediaTracker tracker = new MediaTracker(frame);
- tracker.addImage(old_image, 0);
- try { tracker.waitForID(0); } catch(InterruptedException excp) {}
- g.drawImage(old_image, x, y, frame);
- x += old_image.getWidth(frame) + 50;
-
- timer.start();
- image = ip.processImage(old_image, iff.createMeanImageFilter(), frame);
- timer.stop();
- System.out.println(timer);
- g.drawImage(image, x, y, frame);
- x += old_image.getWidth(frame) + 50;
-
- timer.start();
- image = ip.processImage(old_image, iff.createSobelFilter(), frame);
- timer.stop();
- System.out.println(timer);
- g.drawImage(image, x, y, frame);
- x = 50;
- y += old_image.getHeight(frame) + 50;
-
- timer.start();
- image = ip.processImage(old_image, iff.createEmbossFilter(), frame);
- timer.stop();
- System.out.println(timer);
- g.drawImage(image, x, y, frame);
- x += old_image.getWidth(frame) + 50;
-
- image = ip.processImage(old_image, iff.createSharpenFilter(), frame);
- g.drawImage(image, x, y, frame);
- x = 50;
- y += old_image.getHeight(frame) + 50;
-
- image = ip.processImage(old_image, iff.createRotateImageFilter(), frame);
- g.drawImage(image, x, y, frame);
- }
-}
diff --git a/java/ImageProcessing/framework/GIFHandler.java b/java/ImageProcessing/framework/GIFHandler.java
deleted file mode 100644
index 3d099ba294c..00000000000
--- a/java/ImageProcessing/framework/GIFHandler.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.io.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-
-public class GIFHandler extends BlobWriter
-{
- public GIFHandler (String filename, Image image, int length)
- {
- super (null, length, 0, filename);
- this.image_ = image;
- }
-
- /******************************
- * Used for HTTP 1.1 PUT authorization
- *****************************/
- public GIFHandler (String filename, Image image, int length, String authentication)
- {
- super (null, length, 0, filename, authentication);
- this.image_ = image;
- }
-
- protected int sendRequest ()
- {
- if (this.sendHeader () == -1)
- {
- ACE.ERROR ("GIFHandler::sendHeader failed.");
- return -1;
- }
- else
- if (this.sendData () == -1)
- {
- ACE.ERROR ("GIFHandler::sendData failed.");
- return -1;
- }
- return 0;
- }
-
- // Send the data
- protected int sendData ()
- {
-
-
- try
- {
- if (this.length_ > 0)
- {
- OutputStream ostream = this.peer ().outputStream ();
-
- this.encoder_ = new GifEncoder (this.image_, ostream);
-
- this.encoder_.encode ();
-
- ostream.flush();
-
- // this.encoder_ = new GIFEncoder (this.image_);
- // this.encoder_.Write (ostream);
- }
- this.bytesWritten_ = this.length_;
-
- }
- catch (IOException e)
- {
- ACE.ERROR ("Error writing to server");
- }
- return 0;
- }
-
- GifEncoder encoder_ = null;
- // GIFEncoder encoder_ = null;
- Image image_ = null;
-}
diff --git a/java/ImageProcessing/framework/GifEncoder.java b/java/ImageProcessing/framework/GifEncoder.java
deleted file mode 100644
index 91a3927d95d..00000000000
--- a/java/ImageProcessing/framework/GifEncoder.java
+++ /dev/null
@@ -1,693 +0,0 @@
-// GifEncoder - write out an image as a GIF
-//
-// Transparency handling and variable bit size courtesy of Jack Palevich.
-//
-// Copyright (C) 1996 by Jef Poskanzer <jef@acme.com>. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-// SUCH DAMAGE.
-//
-// Visit the ACME Labs Java page for up-to-date versions of this and other
-// fine Java utilities: http://www.acme.com/java/
-
-package imaging.framework;
-
-import java.util.*;
-import java.io.*;
-import java.awt.Image;
-import java.awt.image.*;
-
-/// Write out an image as a GIF.
-// <P>
-// <A HREF="/resources/classes/Acme/JPM/Encoders/GifEncoder.java">Fetch the software.</A><BR>
-// <A HREF="/resources/classes/Acme.tar.Z">Fetch the entire Acme package.</A>
-// <P>
-// @see ToGif
-
-public class GifEncoder extends ImageEncoder
- {
-
- private boolean interlace = false;
-
- /// Constructor from Image.
- // @param img The image to encode.
- // @param out The stream to write the GIF to.
- public GifEncoder( Image img, OutputStream out ) throws IOException
- {
- super( img, out );
- }
-
- /// Constructor from Image with interlace setting.
- // @param img The image to encode.
- // @param out The stream to write the GIF to.
- // @param interlace Whether to interlace.
- public GifEncoder( Image img, OutputStream out, boolean interlace ) throws IOException
- {
- super( img, out );
- this.interlace = interlace;
- }
-
- /// Constructor from ImageProducer.
- // @param prod The ImageProducer to encode.
- // @param out The stream to write the GIF to.
- public GifEncoder( ImageProducer prod, OutputStream out ) throws IOException
- {
- super( prod, out );
- }
-
- /// Constructor from ImageProducer with interlace setting.
- // @param prod The ImageProducer to encode.
- // @param out The stream to write the GIF to.
- public GifEncoder( ImageProducer prod, OutputStream out, boolean interlace ) throws IOException
- {
- super( prod, out );
- this.interlace = interlace;
- }
-
-
- int width, height;
- int[][] rgbPixels;
-
- void encodeStart( int width, int height ) throws IOException
- {
- this.width = width;
- this.height = height;
- rgbPixels = new int[height][width];
- }
-
- void encodePixels(
- int x, int y, int w, int h, int[] rgbPixels, int off, int scansize )
- throws IOException
- {
- // Save the pixels.
- for ( int row = 0; row < h; ++row )
- System.arraycopy(
- rgbPixels, row * scansize + off,
- this.rgbPixels[y + row], x, w );
-
- }
-
- IntHashtable colorHash;
-
- void encodeDone() throws IOException
- {
- int transparentIndex = -1;
- int transparentRgb = -1;
- // Put all the pixels into a hash table.
- colorHash = new IntHashtable();
- int index = 0;
- for ( int row = 0; row < height; ++row )
- {
- int rowOffset = row * width;
- for ( int col = 0; col < width; ++col )
- {
- int rgb = rgbPixels[row][col];
- boolean isTransparent = ( ( rgb >>> 24 ) < 0x80 );
- if ( isTransparent )
- {
- if ( transparentIndex < 0 )
- {
- // First transparent color; remember it.
- transparentIndex = index;
- transparentRgb = rgb;
- }
- else if ( rgb != transparentRgb )
- {
- // A second transparent color; replace it with
- // the first one.
- rgbPixels[row][col] = rgb = transparentRgb;
- }
- }
- GifEncoderHashitem item =
- (GifEncoderHashitem) colorHash.get( rgb );
- if ( item == null )
- {
- if ( index >= 256 )
- throw new IOException( "too many colors for a GIF" );
- item = new GifEncoderHashitem(
- rgb, 1, index, isTransparent );
- ++index;
- colorHash.put( rgb, item );
- }
- else
- ++item.count;
- }
- }
-
- // Figure out how many bits to use.
- int logColors;
- if ( index <= 2 )
- logColors = 1;
- else if ( index <= 4 )
- logColors = 2;
- else if ( index <= 16 )
- logColors = 4;
- else
- logColors = 8;
-
- // Turn colors into colormap entries.
- int mapSize = 1 << logColors;
- byte[] reds = new byte[mapSize];
- byte[] grns = new byte[mapSize];
- byte[] blus = new byte[mapSize];
- for ( Enumeration e = colorHash.elements(); e.hasMoreElements(); )
- {
- GifEncoderHashitem item = (GifEncoderHashitem) e.nextElement();
- reds[item.index] = (byte) ( ( item.rgb >> 16 ) & 0xff );
- grns[item.index] = (byte) ( ( item.rgb >> 8 ) & 0xff );
- blus[item.index] = (byte) ( item.rgb & 0xff );
- }
-
- GIFEncode(
- out, width, height, interlace, (byte) 0, transparentIndex,
- logColors, reds, grns, blus );
- }
-
- byte GetPixel( int x, int y ) throws IOException
- {
- GifEncoderHashitem item =
- (GifEncoderHashitem) colorHash.get( rgbPixels[y][x] );
- if ( item == null )
- throw new IOException( "color not found" );
- return (byte) item.index;
- }
-
- static void writeString( OutputStream out, String str ) throws IOException
- {
- int len = str.length();
- byte[] buf = new byte[len];
- str.getBytes( 0, len, buf, 0 );
- out.write( buf );
- }
-
- // Adapted from ppmtogif, which is based on GIFENCOD by David
- // Rowley <mgardi@watdscu.waterloo.edu>. Lempel-Zim compression
- // based on "compress".
-
- int Width, Height;
- boolean Interlace;
- int curx, cury;
- int CountDown;
- int Pass = 0;
-
- void GIFEncode(
- OutputStream outs, int Width, int Height, boolean Interlace, byte Background, int Transparent, int BitsPerPixel, byte[] Red, byte[] Green, byte[] Blue )
- throws IOException
- {
- byte B;
- int LeftOfs, TopOfs;
- int ColorMapSize;
- int InitCodeSize;
- int i;
-
- this.Width = Width;
- this.Height = Height;
- this.Interlace = Interlace;
- ColorMapSize = 1 << BitsPerPixel;
- LeftOfs = TopOfs = 0;
-
- // Calculate number of bits we are expecting
- CountDown = Width * Height;
-
- // Indicate which pass we are on (if interlace)
- Pass = 0;
-
- // The initial code size
- if ( BitsPerPixel <= 1 )
- InitCodeSize = 2;
- else
- InitCodeSize = BitsPerPixel;
-
- // Set up the current x and y position
- curx = 0;
- cury = 0;
-
- // Write the Magic header
- writeString( outs, "GIF89a" );
-
- // Write out the screen width and height
- Putword( Width, outs );
- Putword( Height, outs );
-
- // Indicate that there is a global colour map
- B = (byte) 0x80; // Yes, there is a color map
- // OR in the resolution
- B |= (byte) ( ( 8 - 1 ) << 4 );
- // Not sorted
- // OR in the Bits per Pixel
- B |= (byte) ( ( BitsPerPixel - 1 ) );
-
- // Write it out
- Putbyte( B, outs );
-
- // Write out the Background colour
- Putbyte( Background, outs );
-
- // Pixel aspect ratio - 1:1.
- //Putbyte( (byte) 49, outs );
- // Java's GIF reader currently has a bug, if the aspect ratio byte is
- // not zero it throws an ImageFormatException. It doesn't know that
- // 49 means a 1:1 aspect ratio. Well, whatever, zero works with all
- // the other decoders I've tried so it probably doesn't hurt.
- Putbyte( (byte) 0, outs );
-
- // Write out the Global Colour Map
- for ( i = 0; i < ColorMapSize; ++i )
- {
- Putbyte( Red[i], outs );
- Putbyte( Green[i], outs );
- Putbyte( Blue[i], outs );
- }
-
- // Write out extension for transparent colour index, if necessary.
- if ( Transparent != -1 )
- {
- Putbyte( (byte) '!', outs );
- Putbyte( (byte) 0xf9, outs );
- Putbyte( (byte) 4, outs );
- Putbyte( (byte) 1, outs );
- Putbyte( (byte) 0, outs );
- Putbyte( (byte) 0, outs );
- Putbyte( (byte) Transparent, outs );
- Putbyte( (byte) 0, outs );
- }
-
- // Write an Image separator
- Putbyte( (byte) ',', outs );
-
- // Write the Image header
- Putword( LeftOfs, outs );
- Putword( TopOfs, outs );
- Putword( Width, outs );
- Putword( Height, outs );
-
- // Write out whether or not the image is interlaced
- if ( Interlace )
- Putbyte( (byte) 0x40, outs );
- else
- Putbyte( (byte) 0x00, outs );
-
- // Write out the initial code size
- Putbyte( (byte) InitCodeSize, outs );
-
- // Go and actually compress the data
- compress( InitCodeSize+1, outs );
-
- // Write out a Zero-length packet (to end the series)
- Putbyte( (byte) 0, outs );
-
- // Write the GIF file terminator
- Putbyte( (byte) ';', outs );
- }
-
- // Bump the 'curx' and 'cury' to point to the next pixel
- void BumpPixel()
- {
- // Bump the current X position
- ++curx;
-
- // If we are at the end of a scan line, set curx back to the beginning
- // If we are interlaced, bump the cury to the appropriate spot,
- // otherwise, just increment it.
- if ( curx == Width )
- {
- curx = 0;
-
- if ( ! Interlace )
- ++cury;
- else
- {
- switch( Pass )
- {
- case 0:
- cury += 8;
- if ( cury >= Height )
- {
- ++Pass;
- cury = 4;
- }
- break;
-
- case 1:
- cury += 8;
- if ( cury >= Height )
- {
- ++Pass;
- cury = 2;
- }
- break;
-
- case 2:
- cury += 4;
- if ( cury >= Height )
- {
- ++Pass;
- cury = 1;
- }
- break;
-
- case 3:
- cury += 2;
- break;
- }
- }
- }
- }
-
- static final int EOF = -1;
-
- // Return the next pixel from the image
- int GIFNextPixel() throws IOException
- {
- byte r;
-
- if ( CountDown == 0 )
- return EOF;
-
- --CountDown;
-
- r = GetPixel( curx, cury );
-
- BumpPixel();
-
- return r & 0xff;
- }
-
- // Write out a word to the GIF file
- void Putword( int w, OutputStream outs ) throws IOException
- {
- Putbyte( (byte) ( w & 0xff ), outs );
- Putbyte( (byte) ( ( w >> 8 ) & 0xff ), outs );
- }
-
- // Write out a byte to the GIF file
- void Putbyte( byte b, OutputStream outs ) throws IOException
- {
- outs.write( b );
- }
-
-
- // GIFCOMPR.C - GIF Image compression routines
- //
- // Lempel-Ziv compression based on 'compress'. GIF modifications by
- // David Rowley (mgardi@watdcsu.waterloo.edu)
-
- // General DEFINEs
-
- static final int BITS = 12;
-
- static final int HSIZE = 5003; // 80% occupancy
-
- // GIF Image compression - modified 'compress'
- //
- // Based on: compress.c - File compression ala IEEE Computer, June 1984.
- //
- // By Authors: Spencer W. Thomas (decvax!harpo!utah-cs!utah-gr!thomas)
- // Jim McKie (decvax!mcvax!jim)
- // Steve Davies (decvax!vax135!petsd!peora!srd)
- // Ken Turkowski (decvax!decwrl!turtlevax!ken)
- // James A. Woods (decvax!ihnp4!ames!jaw)
- // Joe Orost (decvax!vax135!petsd!joe)
-
- int n_bits; // number of bits/code
- int maxbits = BITS; // user settable max # bits/code
- int maxcode; // maximum code, given n_bits
- int maxmaxcode = 1 << BITS; // should NEVER generate this code
-
- final int MAXCODE( int n_bits )
- {
- return ( 1 << n_bits ) - 1;
- }
-
- int[] htab = new int[HSIZE];
- int[] codetab = new int[HSIZE];
-
- int hsize = HSIZE; // for dynamic table sizing
-
- int free_ent = 0; // first unused entry
-
- // block compression parameters -- after all codes are used up,
- // and compression rate changes, start over.
- boolean clear_flg = false;
-
- // Algorithm: use open addressing double hashing (no chaining) on the
- // prefix code / next character combination. We do a variant of Knuth's
- // algorithm D (vol. 3, sec. 6.4) along with G. Knott's relatively-prime
- // secondary probe. Here, the modular division first probe is gives way
- // to a faster exclusive-or manipulation. Also do block compression with
- // an adaptive reset, whereby the code table is cleared when the compression
- // ratio decreases, but after the table fills. The variable-length output
- // codes are re-sized at this point, and a special CLEAR code is generated
- // for the decompressor. Late addition: construct the table according to
- // file size for noticeable speed improvement on small files. Please direct
- // questions about this implementation to ames!jaw.
-
- int g_init_bits;
-
- int ClearCode;
- int EOFCode;
-
- void compress( int init_bits, OutputStream outs ) throws IOException
- {
- int fcode;
- int i /* = 0 */;
- int c;
- int ent;
- int disp;
- int hsize_reg;
- int hshift;
-
- // Set up the globals: g_init_bits - initial number of bits
- g_init_bits = init_bits;
-
- // Set up the necessary values
- clear_flg = false;
- n_bits = g_init_bits;
- maxcode = MAXCODE( n_bits );
-
- ClearCode = 1 << ( init_bits - 1 );
- EOFCode = ClearCode + 1;
- free_ent = ClearCode + 2;
-
- char_init();
-
- ent = GIFNextPixel();
-
- hshift = 0;
- for ( fcode = hsize; fcode < 65536; fcode *= 2 )
- ++hshift;
- hshift = 8 - hshift; // set hash code range bound
-
- hsize_reg = hsize;
- cl_hash( hsize_reg ); // clear hash table
-
- output( ClearCode, outs );
-
- outer_loop:
- while ( (c = GIFNextPixel()) != EOF )
- {
- fcode = ( c << maxbits ) + ent;
- i = ( c << hshift ) ^ ent; // xor hashing
-
- if ( htab[i] == fcode )
- {
- ent = codetab[i];
- continue;
- }
- else if ( htab[i] >= 0 ) // non-empty slot
- {
- disp = hsize_reg - i; // secondary hash (after G. Knott)
- if ( i == 0 )
- disp = 1;
- do
- {
- if ( (i -= disp) < 0 )
- i += hsize_reg;
-
- if ( htab[i] == fcode )
- {
- ent = codetab[i];
- continue outer_loop;
- }
- }
- while ( htab[i] >= 0 );
- }
- output( ent, outs );
- ent = c;
- if ( free_ent < maxmaxcode )
- {
- codetab[i] = free_ent++; // code -> hashtable
- htab[i] = fcode;
- }
- else
- cl_block( outs );
- }
- // Put out the final code.
- output( ent, outs );
- output( EOFCode, outs );
- }
-
- // output
- //
- // Output the given code.
- // Inputs:
- // code: A n_bits-bit integer. If == -1, then EOF. This assumes
- // that n_bits =< wordsize - 1.
- // Outputs:
- // Outputs code to the file.
- // Assumptions:
- // Chars are 8 bits long.
- // Algorithm:
- // Maintain a BITS character long buffer (so that 8 codes will
- // fit in it exactly). Use the VAX insv instruction to insert each
- // code in turn. When the buffer fills up empty it and start over.
-
- int cur_accum = 0;
- int cur_bits = 0;
-
- int masks[] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F,
- 0x001F, 0x003F, 0x007F, 0x00FF,
- 0x01FF, 0x03FF, 0x07FF, 0x0FFF,
- 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF };
-
- void output( int code, OutputStream outs ) throws IOException
- {
- cur_accum &= masks[cur_bits];
-
- if ( cur_bits > 0 )
- cur_accum |= ( code << cur_bits );
- else
- cur_accum = code;
-
- cur_bits += n_bits;
-
- while ( cur_bits >= 8 )
- {
- char_out( (byte) ( cur_accum & 0xff ), outs );
- cur_accum >>= 8;
- cur_bits -= 8;
- }
-
- // If the next entry is going to be too big for the code size,
- // then increase it, if possible.
- if ( free_ent > maxcode || clear_flg )
- {
- if ( clear_flg )
- {
- maxcode = MAXCODE(n_bits = g_init_bits);
- clear_flg = false;
- }
- else
- {
- ++n_bits;
- if ( n_bits == maxbits )
- maxcode = maxmaxcode;
- else
- maxcode = MAXCODE(n_bits);
- }
- }
-
- if ( code == EOFCode )
- {
- // At EOF, write the rest of the buffer.
- while ( cur_bits > 0 )
- {
- char_out( (byte) ( cur_accum & 0xff ), outs );
- cur_accum >>= 8;
- cur_bits -= 8;
- }
-
- flush_char( outs );
- }
- }
-
- // Clear out the hash table
-
- // table clear for block compress
- void cl_block( OutputStream outs ) throws IOException
- {
- cl_hash( hsize );
- free_ent = ClearCode + 2;
- clear_flg = true;
-
- output( ClearCode, outs );
- }
-
- // reset code table
- void cl_hash( int hsize )
- {
- for ( int i = 0; i < hsize; ++i )
- htab[i] = -1;
- }
-
- // GIF Specific routines
-
- // Number of characters so far in this 'packet'
- int a_count;
-
- // Set up the 'byte output' routine
- void char_init()
- {
- a_count = 0;
- }
-
- // Define the storage for the packet accumulator
- byte[] accum = new byte[256];
-
- // Add a character to the end of the current packet, and if it is 254
- // characters, flush the packet to disk.
- void char_out( byte c, OutputStream outs ) throws IOException
- {
- accum[a_count++] = c;
- if ( a_count >= 254 )
- flush_char( outs );
- }
-
- // Flush the packet to disk, and reset the accumulator
- void flush_char( OutputStream outs ) throws IOException
- {
- if ( a_count > 0 )
- {
- outs.write( a_count );
- outs.write( accum, 0, a_count );
- a_count = 0;
- }
- }
-
- }
-
-class GifEncoderHashitem
- {
-
- public int rgb;
- public int count;
- public int index;
- public boolean isTransparent;
-
- public GifEncoderHashitem( int rgb, int count, int index, boolean isTransparent )
- {
- this.rgb = rgb;
- this.count = count;
- this.index = index;
- this.isTransparent = isTransparent;
- }
-
- }
diff --git a/java/ImageProcessing/framework/Hierarchy.java b/java/ImageProcessing/framework/Hierarchy.java
deleted file mode 100644
index 41b1825ef4d..00000000000
--- a/java/ImageProcessing/framework/Hierarchy.java
+++ /dev/null
@@ -1,347 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.util.Vector;
-
-public class Hierarchy extends Canvas
-{
- // Attributes
- private String name_;
- private Hierarchy root_;
- private Hierarchy parent_;
- private Icon icon_ = null;
-
- // State
- private boolean collapsed_ = true;
- private boolean deadend_ = true;
- private Vector contained_ = new Vector();
- private Rectangle self_;
- private Rectangle scope_;
-
- // Constants
- private Color COLOR = Color.black;
- private Font FONT = new Font("Dialog", Font.BOLD, 12);
- private static int TRI_HEIGHT = 8;
- private int SPACE = 15;
-
- static Hierarchy last_lit_ = null;
-
- public Hierarchy(String name, boolean root)
- {
- name_ = name;
-
- if (root)
- {
- deadend_ = false;
- root_ = this;
- parent_ = null;
- }
- }
-
- public Hierarchy(String name, Icon icon, boolean root)
- {
- this(name, root);
- icon_ = icon;
- }
-
- public Hierarchy(String name)
- {
- this(name, false);
- }
-
- public Hierarchy(String name, Icon icon)
- {
- this(name, icon, false);
- }
-
- public void setExpandable(boolean expandable)
- {
- deadend_ = ! expandable;
-
- /*
- if (root_ != null)
- root_.repaint();
- */
- }
-
- public void setCollapsed(boolean collapsed)
- {
- collapsed_ = collapsed;
-
- if (root_ != null)
- root_.repaint();
- }
-
- public void addEntry(Hierarchy entry)
- {
- deadend_ = false;
- entry.parent_ = this;
- entry.root_ = root_;
- entry.FONT = FONT;
- entry.COLOR = COLOR;
- entry.SPACE = SPACE;
-
- contained_.addElement(entry);
- }
-
- public boolean removeEntry(String name)
- {
- if (contained_.size() == 1)
- deadend_ = true;
-
- return contained_.removeElement(name);
- }
-
- public String getName()
- {
- return name_;
- }
-
- public void setName(String name)
- {
- name_ = name;
- }
-
- public Hierarchy getHierarchyParent()
- {
- return parent_;
- }
-
- public void setFont(Font font)
- {
- FONT = font;
- }
-
- public void setColor(Color color)
- {
- COLOR = color;
- }
-
- public void setSpace(int space)
- {
- SPACE = space;
- }
-
- public void handleEvent() {}
-
- public boolean mouseDown(Event evt, int x, int y)
- {
- Hierarchy value = mouseInside(x, y);
-
- if (value != null)
- {
- if (! value.deadend_)
- {
- if (x < value.self_.x + TRI_HEIGHT + SPACE)
- {
- value.collapsed_ = ! value.collapsed_;
- if (value.contained_.isEmpty())
- value.handleEvent();
- repaint();
- }
- }
- else
- {
- if (value.contained_.isEmpty())
- value.handleEvent();
- }
- }
-
- return false;
- }
-
- public boolean mouseMove(Event evt, int x, int y)
- {
- Hierarchy value = mouseInside(x, y);
-
- if ((value != last_lit_) && (last_lit_ != null))
- last_lit_.highlight(getGraphics(), false);
-
- if (value != null && value.deadend_)
- value.highlight(getGraphics(), true);
-
- last_lit_ = value;
-
- return false;
- }
-
- public void paint(Graphics g)
- {
- Dimension d = size();
-
- drawLevel(g, SPACE, SPACE);
-
- if (d.width < scope_.width || d.height < scope_.height ||
- d.width > scope_.width || d.height > scope_.height)
- resize(scope_.width, scope_.height);
- }
-
-
- private Point drawLevel(Graphics g, int x, int y)
- {
- g.setFont(FONT);
- FontMetrics font_metrics = g.getFontMetrics();
- int string_height = font_metrics.getHeight();
- int string_width = font_metrics.stringWidth(name_);
- int entry_height = string_height;
- int entry_width = string_width + 2*SPACE + TRI_HEIGHT;
- int total_height, total_width, initial_x = x, initial_y = y;
- int indent = SPACE + TRI_HEIGHT/2;
- int temp_x = x;
- Point place_marker;
- Hierarchy entry;
-
- if (icon_ != null)
- {
- entry_height = Math.max(string_height, icon_.iconSize().height);
- entry_width += icon_.iconSize().width + SPACE;
- indent += icon_.iconSize().width/2;
- if (! deadend_)
- drawShape(g, x, y + (entry_height - TRI_HEIGHT)/2, deadend_, collapsed_);
- }
- else
- drawShape(g, x, y + (entry_height - TRI_HEIGHT)/2, deadend_, collapsed_);
-
- self_ = new Rectangle(initial_x, initial_y, entry_width, entry_height);
-
- temp_x += TRI_HEIGHT + SPACE;
-
- if (icon_ != null)
- {
- icon_.drawIcon(g, temp_x, y, root_);
- temp_x += SPACE + icon_.iconSize().width;
- }
-
- g.setColor(COLOR);
-
- g.drawString(name_, temp_x, y + (entry_height + string_height)/2);
-
- total_width = entry_width;
- y += entry_height + SPACE;
-
- if (! (deadend_ || collapsed_))
- {
- x += indent;
- for (int i = 0; i < contained_.size(); i++)
- {
- entry = (Hierarchy)contained_.elementAt(i);
- place_marker = entry.drawLevel(g, x, y);
- total_width = Math.max(total_width, entry.scope_.width + indent + SPACE);
- x = place_marker.x;
- y = place_marker.y;
- }
- x -= indent;
- }
-
- total_height = y - initial_y;
- scope_ = new Rectangle(initial_x, initial_y, total_width, total_height);
-
- return new Point(x, y);
- }
-
- private Hierarchy mouseInside(int x, int y)
- {
- Hierarchy entry;
- Hierarchy return_value = null;
-
- if (self_.inside(x, y))
- {
- return_value = this;
- }
- else
- {
- if (scope_.inside(x, y) && (! collapsed_))
- {
- for (int i = 0; i < contained_.size(); i++)
- {
- entry = (Hierarchy)contained_.elementAt(i);
- if ((return_value = entry.mouseInside(x, y)) != null)
- break;
- }
- }
- else
- return_value = null;
- }
-
- return return_value;
- }
-
- private void highlight(Graphics g, boolean lit)
- {
- g.setFont(FONT);
- FontMetrics fm = g.getFontMetrics();
- int string_height = fm.getHeight();
- int x = self_.x + SPACE + TRI_HEIGHT;
- int y = self_.y;
-
- if (icon_ != null)
- x += icon_.iconSize().width + SPACE;
-
- if (lit)
- g.setColor(Color.magenta);
- else
- g.setColor(COLOR);
-
- g.drawString(name_, x, y + (self_.height + string_height)/2);
- }
-
-
- private static void drawShape(Graphics g, int x, int y, boolean dead_end, boolean collapsed)
- {
- int xpoints[] = new int[3];
- int ypoints[] = new int[3];
-
- xpoints[0] = x;
- ypoints[0] = y;
-
- if (dead_end)
- {
- g.fillOval(x, y, TRI_HEIGHT, TRI_HEIGHT);
- }
- else
- {
- // Draw a small collapsed triangle: |>
- if (collapsed)
- {
- xpoints[1] = x;
- xpoints[2] = x + TRI_HEIGHT;
- ypoints[1] = y + TRI_HEIGHT;
- ypoints[2] = y + TRI_HEIGHT/2;
- g.fillPolygon(xpoints, ypoints, 3);
- }
- //Draw a small uncollapsed triangle
- else
- {
- xpoints[1] = x + TRI_HEIGHT;
- xpoints[2] = x + TRI_HEIGHT/2;
- ypoints[1] = y;
- ypoints[2] = y + TRI_HEIGHT;
- g.fillPolygon(xpoints, ypoints, 3);
- }
- }
- }
-
- private static void drawVertHashedLine(Graphics g, int x, int y1, int y2, int hashsize)
- {
- for (int ytemp = y1; ytemp < y2; ytemp += hashsize*3)
- {
- if (y2 - hashsize < ytemp)
- g.drawLine(x, ytemp, x, y2);
- else
- g.drawLine(x, ytemp, x, ytemp + hashsize);
- }
- }
-
- private static void drawHoroHashedLine(Graphics g, int y, int x1, int x2, Color color, int hashsize)
- {
- for (int xtemp = x1; xtemp < x2; xtemp += hashsize*3)
- {
- if (x2 - hashsize < xtemp)
- g.drawLine(xtemp, y, x1, y);
- else
- g.drawLine(xtemp, y, xtemp + hashsize, y);
- }
- }
-}
-
-
diff --git a/java/ImageProcessing/framework/HierarchyAdapter.java b/java/ImageProcessing/framework/HierarchyAdapter.java
deleted file mode 100644
index a265be656ea..00000000000
--- a/java/ImageProcessing/framework/HierarchyAdapter.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-
-class HierarchyAdapter extends Hierarchy
-{
- public HierarchyAdapter(String name, boolean root)
- {
- super(name, root);
- }
-
- public HierarchyAdapter(String name, Icon icon, boolean root)
- {
- super(name, icon, root);
- }
-
- public HierarchyAdapter(String name)
- {
- super(name);
- }
-
- public HierarchyAdapter(String name, Icon icon)
- {
- super(name, icon);
- }
-
- public void paint(Graphics g)
- {
- super.paint(g);
-
- Container p = getParent().getParent();
- p.getLayout ().layoutContainer (p);
- }
-}
diff --git a/java/ImageProcessing/framework/Icon.java b/java/ImageProcessing/framework/Icon.java
deleted file mode 100644
index eed91ed55c7..00000000000
--- a/java/ImageProcessing/framework/Icon.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.applet.*;
-import java.net.*;
-
-public class Icon
-{
- protected Image icon_;
- protected Dimension iconSize_;
-
- Icon()
- {
- super();
- }
-
- Icon(String file_name, Component comp)
- {
- this.icon_ = Toolkit.getDefaultToolkit().getImage(file_name);
- this.loadImage(comp);
- }
-
- Icon(Image icon_image, Component comp)
- {
- this.icon_ = icon_image;
- this.loadImage(comp);
- }
-
- Icon(String url, Applet applet) throws MalformedURLException
- {
- this.icon_ = applet.getImage(new URL(url));
- loadImage(applet);
- }
-
- public void drawIcon(Graphics g, int x, int y, Component comp)
- {
- g.drawImage(this.icon_, x, y, comp);
- }
-
- private void loadImage(Component comp)
- {
- try
- {
- MediaTracker tracker = new MediaTracker(comp);
- tracker.addImage(this.icon_, 0);
- tracker.waitForID(0);
-
- this.iconSize_ = new Dimension(this.icon_.getWidth(comp), this.icon_.getHeight(comp));
- }
- catch (InterruptedException excp)
- {
- System.err.println("Icon::getIcon image failed to load");
- }
- }
-
- public Dimension iconSize()
- {
- return this.iconSize_;
- }
-
- public Image getIconImage()
- {
- return this.icon_;
- }
-
-}
-
-
-
-
diff --git a/java/ImageProcessing/framework/ImageApp.java b/java/ImageProcessing/framework/ImageApp.java
deleted file mode 100644
index 486f45b9afb..00000000000
--- a/java/ImageProcessing/framework/ImageApp.java
+++ /dev/null
@@ -1,303 +0,0 @@
-package imaging.framework;
-
-import java.util.*;
-import java.awt.*;
-import java.net.*;
-import java.io.*;
-import java.awt.image.*;
-import java.applet.*;
-import gjt.Separator;
-import gjt.Util;
-
-public class ImageApp extends Applet
-{
- public void init ()
- {
- // Use BorderLayout for our applet frame
- this.setLayout (new BorderLayout ());
-
- // Now load all the filters specified in the config file
- // this.loadFilters ();
- this.setupButtonPanel ();
- this.add ("Center", this.imageCanvas_);
- // Check if we are running in test mode
- String testFile = getParameter ("testFile");
- if (testFile != null)
- {
- this.tester_ = new Tester (testFile, this);
- this.tester_.initialize ();
- }
- // Initialize the DialogManager
- DialogManager.initialize (this);
- }
-
- private void setupButtonPanel ()
- {
- Panel southPanel = new Panel ();
- southPanel.setLayout (new BorderLayout ());
-
- Panel buttonPanel = new Panel ();
- buttonPanel.setLayout (new GridLayout (1, 5));
-
- this.statusDisplay_ = new StatusDisplay ();
- // Create a panel for all the buttons
- this.filePanel_ = new FilePanel (this);
- this.resetPanel_ = new ResetPanel (this);
- this.zoomPanel_ = new ZoomPanel (this);
- this.filterPanel_ = new FilterPanel (this);
- this.helpPanel_ = new HelpPanel (this);
-
- buttonPanel.add (this.filePanel_);
- buttonPanel.add (this.resetPanel_);
- buttonPanel.add (this.zoomPanel_);
- buttonPanel.add (this.filterPanel_);
- buttonPanel.add (this.helpPanel_);
-
- southPanel.add ("North", new Separator ());
- southPanel.add ("Center", buttonPanel);
- southPanel.add ("South", this.statusDisplay_);
-
- southPanel.resize (400, 400);
-
- // Now add all these components to the main frame
- this.add ("South", southPanel);
- this.add ("North", new Panel ()); // Empty panel (for aesthetics)
- // this.add ("East", new Panel ()); // Empty panel (for aesthetics)
- // this.add ("West", new Panel ()); // Empty panel (for aesthetics)
- }
-
- public void displayStatus (String s)
- {
- this.statusDisplay_.setText (s);
- }
-
- // Handle all action events
- public void zoomFactor (double zoomFactor)
- {
- this.imageCanvas_.zoomFactor (zoomFactor);
- }
-
- public void reloadFilters ()
- {
- this.filterPanel_.loadFilters ();
- repaint ();
- }
-
- public Hashtable filterTable ()
- {
- return this.filterTable_;
- }
-
- public ImageFilter getFilter (String s)
- {
- return (ImageFilter) this.filterTable_.get (s);
- }
-
- public void apply ()
- {
- ImageFilter filter = this.getFilter (this.filterPanel_.choice ().getSelectedItem ());
- this.apply (filter);
- }
-
- public void apply (ImageFilter filter)
- {
- if (filter != null)
- {
- Util.getFrame (this).setCursor (Frame.WAIT_CURSOR);
- this.imageCanvas_.applyFilter (filter);
- Util.getFrame (this).setCursor (Frame.DEFAULT_CURSOR);
- }
- }
-
- public void resetImage ()
- {
- this.imageCanvas_.applyFilter (null);
- }
-
- public int openURL (String url)
- {
- if (url == null)
- return -1;
-
- Image image = null;
- try
- {
- System.out.println("Getting image");
- image = getImage (new URL (url));
- System.out.println("Done");
- }
- catch (MalformedURLException e)
- {
- return -1;
- }
-
- if (image != null)
- {
- // Check if the image was actually loaded. Note that we have
- // to wait for the potential image to finish loading before we
- // know if it is a valid image.
- if (this.imageCanvas_.setImage (image) == -1)
- return -1;
- else
- this.filePanel_.enableSaveButton ();
- }
- else
- return -1;
- return 0;
- }
-
- // maintain compatibility
- public void saveFile (String url)
- {
- this.saveFile (url, null);
- }
-
- public void saveFile (String url, String authentication)
- {
- ImageSender imageSender = new ImageSender (this);
- imageSender.open (this.imageCanvas_.getImage (), url);
- int bytesSent = imageSender.send (authentication);
- if (bytesSent == -1)
- DialogManager.popDialog (DialogType.NOT_SUPPORTED,
- "Server does not support uploading or URL not found");
- }
-
- public Choice getFilters ()
- {
- Choice choice = new Choice ();
-
- // Add the default choice first
- choice.addItem ("Filters:");
-
- // Now do the file processing -- to determine which filters need
- // to be loaded.
-
- // Check if the filename has been previously specified and
- // if not then check if the user has specified the name of the
- // config file
- if (this.configFile_ == null)
- this.configFile_ = getParameter ("configFile");
-
- /*
- if (this.configFile_ == null)
- this.configFile_ = "http://www.cs.wustl.edu/~pjain/java/ACE_wrappers/java/ImageProcessing/framework/filter.conf";
- */
-
- if (this.configFile_ == null)
- this.configFile_ = this.getCodeBase().toString() + "../ImageProcessing/framework/filter.conf";
-
- String configInfo = null;
-
- // Only get the file as a URL if it was specified as an http style parameter!
- if ((this.configFile_ != null) && ((this.configFile_.startsWith("http://")) ||
- (this.configFile_.startsWith("file://")) ||
- (this.configFile_.startsWith("ftp://")))) {
-
- URL url;
-
- try
- {
- System.out.println ("Configuration File: " + this.configFile_);
- // Create a new URL
- url = new URL (this.configFile_);
-
- // Get the input stream and pipe it to a DataInputStream
- DataInputStream iStream = new DataInputStream (url.openStream ());
-
- // Create a buffer to hold all the data we get
- StringBuffer tempBuf = new StringBuffer ();
- // Keep reading the data until we are done
- String tempString = iStream.readLine ();
- while (tempString != null)
- {
- tempBuf.append (tempString);
- tempBuf.append (" ");
- tempString = iStream.readLine ();
- }
- configInfo = tempBuf.toString ();
- }
- catch (MalformedURLException e)
- {
- System.err.println (e);
- }
- catch (IOException e)
- {
- System.err.println (e);
- }
- }
-
- if (configInfo != null)
- {
- try
- {
- StringTokenizer tokens = new StringTokenizer (configInfo);
- String fullFilterName = null;
- String filterName = null;
- // Now parse the string, picking up filter names. Use these
- // names to load the actual filters as well add new choices to
- // the filter choices.
- while (tokens.hasMoreTokens ())
- {
- // Get the next token
- fullFilterName = tokens.nextToken ();
- filterName = this.extractFilterName (fullFilterName);
-
- System.out.println ("Loading: " + fullFilterName);
- // Load the filter class
- Class c = Class.forName (fullFilterName);
- // Class c = this.filterRepository_.load (filter);
-
- // Add the filter to the Filter Repository
- this.filterTable_.put (filterName,
- (ImageFilter) c.newInstance ());
-
- // Add filter name to the list of filter choices
- choice.addItem (filterName);
- }
- }
- catch (ClassNotFoundException e)
- {
- System.err.println ("Filter not found: " + e);
- return null;
- }
- catch (IllegalAccessException e)
- {
- System.err.println ("Filter not found: " + e);
- return null;
- }
- catch (InstantiationException e)
- {
- System.err.println ("Filter not found: " + e);
- return null;
- }
- }
- return choice;
- }
-
- // Extract the short filter name from the full filter name. For
- // example, this method returns "EmbossFilter" if it is given the
- // string "imaging/filters/EmbossFilter"
- private String extractFilterName (String s)
- {
- String filterName = null;
- StringTokenizer tokens = new StringTokenizer (s, ".");
- while (tokens.hasMoreTokens ())
- filterName = tokens.nextToken ();
- return filterName;
- }
-
- private Panel centerPanel_ = new Panel ();
- private String configFile_ = null;
- private Choice choice_ = null;
- private ImageCanvas imageCanvas_ = new ImageCanvas ();
- private FilePanel filePanel_;
- private ResetPanel resetPanel_;
- private ZoomPanel zoomPanel_;
- private FilterPanel filterPanel_;
- private HelpPanel helpPanel_;
-
- private StatusDisplay statusDisplay_;
- private Hashtable filterTable_ = new Hashtable ();
- private Tester tester_;
-
-}
diff --git a/java/ImageProcessing/framework/ImageByteCounter.java b/java/ImageProcessing/framework/ImageByteCounter.java
deleted file mode 100644
index c907c9f1c92..00000000000
--- a/java/ImageProcessing/framework/ImageByteCounter.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.awt.*;
-import java.applet.*;
-import java.net.*;
-import JACE.OS.*;
-
-public class ImageByteCounter
-{
- public ImageByteCounter (String title, Image image, Applet parent)
- {
- this.image_ = image;
- this.parent_ = parent;
-
- Image im = null;
- try
- {
- im = this.parent_.getImage (new URL (this.parent_.getCodeBase () +
- "../ImageProcessing/framework/" +
- "10.gif"));
- }
- catch (MalformedURLException e)
- {
- ACE.ERROR (e);
- }
-
- indicator_ = new StatusIndicator ("", im);
- }
-
- public int count ()
- {
- int length = 0;
- try
- {
- GIFOutputStream ostream = new GIFOutputStream (indicator_);
- // GIFOutputStream ostream = new GIFOutputStream (null);
- GifEncoder encoder = new GifEncoder (this.image_, ostream);
- encoder.encode ();
-
- length = ostream.count ();
- System.out.println ("send: " + length);
- }
- catch (IOException e)
- {
- ACE.ERROR ("Exception generating gif");
- }
- indicator_.dispose ();
- return length;
- }
-
- Image image_ = null;
- StatusIndicator indicator_ = null;
- boolean done_ = false;
- Applet parent_;
-}
-
-class GIFOutputStream extends OutputStream
-{
- public GIFOutputStream (StatusIndicator indicator)
- {
- super ();
- this.indicator_ = indicator;
- }
-
- public synchronized void write (int b) throws IOException
- {
- bytesWritten_++;
- if (this.indicator_ != null)
- this.indicator_.update (bytesWritten_);
- }
-
- public synchronized void write (byte buf[]) throws IOException
- {
- bytesWritten_ += buf.length;
- if (this.indicator_ != null)
- this.indicator_.update (bytesWritten_);
- }
-
- public synchronized void write (byte buf[], int offset, int length) throws IOException
- {
- bytesWritten_ += length;
- if (this.indicator_ != null)
- this.indicator_.update (bytesWritten_);
- }
-
- public int count ()
- {
- return this.bytesWritten_;
- }
-
- private int bytesWritten_ = 0;
- private StatusIndicator indicator_ = null;
-}
diff --git a/java/ImageProcessing/framework/ImageCanvas.java b/java/ImageProcessing/framework/ImageCanvas.java
deleted file mode 100644
index 182bd54bf9b..00000000000
--- a/java/ImageProcessing/framework/ImageCanvas.java
+++ /dev/null
@@ -1,166 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import gjt.Util;
-import JACE.OS.*;
-
-class ImageCanvas extends Canvas
-{
- public static final double MAX_ZOOM = 4.0;
- public static final double MIN_ZOOM = 0.5;
-
- public int setImage (Image image)
- {
- int flags = 0;
- if (image != null)
- {
- // Load the image
- this.tracker_.addImage(image, 0);
- try { this.tracker_.waitForID(0); } catch(InterruptedException excp) {}
-
- // Check if the image was actually loaded. Note that we have
- // to wait for the potential image to finish loading before we
- // know if it is a valid image.
- flags = this.checkImage (image, this);
- if (ACE.BIT_ENABLED (flags, ImageObserver.ERROR))
- return -1;
-
- // If we reached here, it means image was loaded successfully so cache it
- this.image_ = image;
- this.originalImage_ = this.image_;
-
- this.x_ = (this.size ().width - this.image_.getWidth (this))/2;
- this.y_ = (this.size ().height - this.image_.getHeight (this))/2;
- this.original_x_ = this.x_;
- this.original_y_ = this.y_;
- repaint ();
- }
- return 0;
- }
-
- public Image getImage ()
- {
- return this.image_;
- }
-
- public void paint (Graphics g)
- {
- this.setBackground (Color.white);
- if (this.image_ != null)
- g.drawImage(this.image_,
- this.x_, this.y_,
- (int) (this.image_.getWidth (this) * this.zoom_),
- (int) (this.image_.getHeight (this) * this.zoom_),
- this);
- }
-
- public void applyFilter (ImageFilter filter)
- {
- if (this.image_ != null)
- {
- Image temp;
- if (filter == null)
- {
- temp = this.originalImage_;
- this.x_ = this.original_x_;
- this.y_ = this.original_y_;
- this.zoom_ = 1.0;
- }
- else
- temp = this.ip_.processImage(this.image_, filter, this);
-
- this.tracker_.addImage(temp, 0);
- try { this.tracker_.waitForID(0); } catch(InterruptedException excp) {}
-
- this.image_ = temp;
-
- // Originally I needed to flush the pixel data for the image to be
- // drawn properly. When running the applet in appletviewer, the
- // image used to jump around, but running in a browser seems to be
- // ok.
- //this.image_.flush();
- repaint ();
- }
- }
-
- public void zoomFactor (double zoom)
- {
- this.zoom_ *= zoom;
- if (this.zoom_ > ImageCanvas.MAX_ZOOM)
- this.zoom_ = ImageCanvas.MAX_ZOOM;
- else if (this.zoom_ < ImageCanvas.MIN_ZOOM)
- this.zoom_ = ImageCanvas.MIN_ZOOM;
-
- repaint ();
- }
-
- public boolean mouseDown (Event evt, int x, int y)
- {
- if (inBounds (x, y))
- {
- this.selected_ = true;
- this.last_x_ = x;
- this.last_y_ = y;
- }
- return true;
- }
-
- public boolean mouseUp (Event evt, int x, int y)
- {
- this.selected_ = false;
- return true;
- }
-
- public boolean mouseDrag (Event evt, int x, int y)
- {
- if (this.selected_)
- {
- this.x_ = x - (this.last_x_ - this.x_);
- this.y_ = y - (this.last_y_ - this.y_);
- this.last_x_ = x;
- this.last_y_ = y;
- repaint ();
- }
- return true;
- }
-
- public boolean mouseMove (Event evt, int x, int y)
- {
- if (this.image_ != null && inBounds (x, y))
- Util.getFrame (this).setCursor (Frame.HAND_CURSOR);
- else
- Util.getFrame (this).setCursor (Frame.DEFAULT_CURSOR);
- return true;
- }
-
- public boolean mouseExit (Event evt, int x, int y)
- {
- Util.getFrame (this).setCursor (Frame.DEFAULT_CURSOR);
- return true;
- }
-
- // Check if mouse is within the bounds of the image
- private boolean inBounds (int x, int y)
- {
- if (this.image_ == null)
- return false;
- else
- return (x >= this.x_) &&
- (y >= this.y_) &&
- (x <= (this.x_ + this.zoom_ * this.image_.getWidth (this))) &&
- (y <= (this.y_ + this.zoom_ * this.image_.getHeight (this)));
- }
-
- private MediaTracker tracker_ = new MediaTracker(this);
- private Image image_, originalImage_;
- private int x_ = 0, y_ = 0;
- private int original_x_ = 0, original_y_ = 0;
- private int width_ = 0, height_ = 0;
- private ImageProcessor ip_ = new ImageProcessor ();
- private boolean selected_ = false;
- private int last_x_ = 0, last_y_ = 0;
- private double zoom_ = 1.0;
-
-}
-
diff --git a/java/ImageProcessing/framework/ImageEncoder.java b/java/ImageProcessing/framework/ImageEncoder.java
deleted file mode 100644
index a0aac0d559f..00000000000
--- a/java/ImageProcessing/framework/ImageEncoder.java
+++ /dev/null
@@ -1,271 +0,0 @@
-// ImageEncoder - abstract class for writing out an image
-//
-// Copyright (C) 1996 by Jef Poskanzer <jef@acme.com>. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-// SUCH DAMAGE.
-//
-// Visit the ACME Labs Java page for up-to-date versions of this and other
-// fine Java utilities: http://www.acme.com/java/
-
-package imaging.framework;
-
-import java.util.*;
-import java.io.*;
-import java.awt.Image;
-import java.awt.image.*;
-
-/// Abstract class for writing out an image.
-// <P>
-// A framework for classes that encode and write out an image in
-// a particular file format.
-// <P>
-// This provides a simplified rendition of the ImageConsumer interface.
-// It always delivers the pixels as ints in the RGBdefault color model.
-// It always provides them in top-down left-right order.
-// If you want more flexibility you can always implement ImageConsumer
-// directly.
-// <P>
-// <A HREF="/resources/classes/Acme/JPM/Encoders/ImageEncoder.java">Fetch the software.</A><BR>
-// <A HREF="/resources/classes/Acme.tar.Z">Fetch the entire Acme package.</A>
-// <P>
-// @see GifEncoder
-// @see PpmEncoder
-// @see Acme.JPM.Decoders.ImageDecoder
-
-public abstract class ImageEncoder implements ImageConsumer
- {
-
- protected OutputStream out;
-
- private ImageProducer producer;
- private int width = -1;
- private int height = -1;
- private int hintflags = 0;
- private boolean started = false;
- private boolean encoding;
- private IOException iox;
- private static final ColorModel rgbModel = ColorModel.getRGBdefault();
- private Hashtable props = null;
-
- /// Constructor.
- // @param img The image to encode.
- // @param out The stream to write the bytes to.
- public ImageEncoder( Image img, OutputStream out ) throws IOException
- {
- this( img.getSource(), out );
- }
-
- /// Constructor.
- // @param producer The ImageProducer to encode.
- // @param out The stream to write the bytes to.
- public ImageEncoder( ImageProducer producer, OutputStream out ) throws IOException
- {
- this.producer = producer;
- this.out = out;
- }
-
-
- // Methods that subclasses implement.
-
- /// Subclasses implement this to initialize an encoding.
- abstract void encodeStart( int w, int h ) throws IOException;
-
- /// Subclasses implement this to actually write out some bits. They
- // are guaranteed to be delivered in top-down-left-right order.
- // One int per pixel, index is row * scansize + off + col,
- // RGBdefault (AARRGGBB) color model.
- abstract void encodePixels(
- int x, int y, int w, int h, int[] rgbPixels, int off, int scansize )
- throws IOException;
-
- /// Subclasses implement this to finish an encoding.
- abstract void encodeDone() throws IOException;
-
-
- // Our own methods.
-
- /// Call this after initialization to get things going.
- public synchronized void encode() throws IOException
- {
- encoding = true;
- iox = null;
- producer.startProduction( this );
- while ( encoding )
- try
- {
- wait();
- }
- catch ( InterruptedException e ) {}
- if ( iox != null )
- throw iox;
- }
-
- private boolean accumulate = false;
- private int[] accumulator;
-
- private void encodePixelsWrapper(
- int x, int y, int w, int h, int[] rgbPixels, int off, int scansize )
- throws IOException
- {
- if ( ! started )
- {
- started = true;
- encodeStart( width, height );
- if ( ( hintflags & TOPDOWNLEFTRIGHT ) == 0 )
- {
- accumulate = true;
- accumulator = new int[width * height];
- }
- }
- if ( accumulate )
- for ( int row = 0; row < h; ++row )
- System.arraycopy(
- rgbPixels, row * scansize + off,
- accumulator, ( y + row ) * width + x,
- w );
- else
- encodePixels( x, y, w, h, rgbPixels, off, scansize );
- }
-
- private void encodeFinish() throws IOException
- {
- if ( accumulate )
- {
- encodePixels( 0, 0, width, height, accumulator, 0, width );
- accumulator = null;
- accumulate = false;
- }
- }
-
- private synchronized void stop()
- {
- encoding = false;
- notifyAll();
- }
-
-
- // Methods from ImageConsumer.
-
- public void setDimensions( int width, int height )
- {
- this.width = width;
- this.height = height;
- }
-
- public void setProperties( Hashtable props )
- {
- this.props = props;
- }
-
- public void setColorModel( ColorModel model )
- {
- // Ignore.
- }
-
- public void setHints( int hintflags )
- {
- this.hintflags = hintflags;
- }
-
- public void setPixels(
- int x, int y, int w, int h, ColorModel model, byte[] pixels,
- int off, int scansize )
- {
- int[] rgbPixels = new int[w];
- for ( int row = 0; row < h; ++row )
- {
- int rowOff = off + row * scansize;
- for ( int col = 0; col < w; ++col )
- rgbPixels[col] = model.getRGB( pixels[rowOff + col] & 0xff );
- try
- {
- encodePixelsWrapper( x, y + row, w, 1, rgbPixels, 0, w );
- }
- catch ( IOException e )
- {
- iox = e;
- stop();
- return;
- }
- }
- }
-
- public void setPixels(
- int x, int y, int w, int h, ColorModel model, int[] pixels,
- int off, int scansize )
- {
- if ( model == rgbModel )
- {
- try
- {
- encodePixelsWrapper( x, y, w, h, pixels, off, scansize );
- }
- catch ( IOException e )
- {
- iox = e;
- stop();
- return;
- }
- }
- else
- {
- int[] rgbPixels = new int[w];
- for ( int row = 0; row < h; ++row )
- {
- int rowOff = off + row * scansize;
- for ( int col = 0; col < w; ++col )
- rgbPixels[col] = model.getRGB( pixels[rowOff + col] );
- try
- {
- encodePixelsWrapper( x, y + row, w, 1, rgbPixels, 0, w );
- }
- catch ( IOException e )
- {
- iox = e;
- stop();
- return;
- }
- }
- }
- }
-
- public void imageComplete( int status )
- {
- producer.removeConsumer( this );
- if ( status == ImageConsumer.IMAGEABORTED )
- iox = new IOException( "image aborted" );
- else
- {
- try
- {
- encodeFinish();
- encodeDone();
- }
- catch ( IOException e )
- {
- iox = e;
- }
- }
- stop();
- }
-
- }
diff --git a/java/ImageProcessing/framework/ImageProcessor.java b/java/ImageProcessing/framework/ImageProcessor.java
deleted file mode 100644
index 422298d508f..00000000000
--- a/java/ImageProcessing/framework/ImageProcessor.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import java.util.Vector;
-
-public class ImageProcessor
-{
- private Vector pipeline_ = new Vector();
-
-
- public ImageProcessor()
- {
- }
-
- public void addFilter(String filter_name, ImageFilter filter)
- {
- pipeline_.addElement(new FilterNode(filter_name, filter));
- }
-
- public boolean removeFilter(String name)
- {
- FilterNode filter_node;
-
- for (int i = 0; i < pipeline_.size(); i++)
- {
- filter_node = (FilterNode)pipeline_.elementAt(i);
- if (name.equals(filter_node.getName()))
- {
- pipeline_.removeElementAt(i);
- pipeline_.trimToSize();
- return true;
- }
- }
-
- return false;
- }
-
- public Image processImage(Image image, ImageFilter filter, Component component)
- {
- Image old_image = image, new_image = old_image;
- MediaTracker tracker = new MediaTracker(component);
-
- try
- {
- new_image = component.createImage(new FilteredImageSource(old_image.getSource(), filter));
- tracker.addImage(new_image, 0);
- tracker.waitForID(0);
- }
- catch(InterruptedException excp)
- {
- System.out.println("ImageProcessor::processImage Image failed to load.");
- System.out.println(excp);
- return null;
- }
-
- return new_image;
- }
-
- public Image processImage(Image image, Component component)
- {
- Image old_image = image, new_image = null;
- ImageFilter image_filter;
- FilterNode filter_node;
- MediaTracker tracker = new MediaTracker(component);
-
- try
- {
- for (int i = 0; i < pipeline_.size(); i++)
- {
- filter_node = (FilterNode) pipeline_.elementAt(i);
- image_filter = filter_node.getFilter();
- new_image = component.createImage(new FilteredImageSource(old_image.getSource(), image_filter));
- old_image = new_image;
- tracker.addImage(new_image, 0);
- tracker.waitForID(0);
- }
- }
- catch(InterruptedException excp)
- {
- System.out.println("ImageProcessor::processImage Image failed to load.");
- System.out.println(excp);
- return null;
- }
-
- return new_image;
- }
-}
-
-
-class FilterNode
-{
- private String name_;
- private ImageFilter filter_;
-
- FilterNode(String name, ImageFilter filter)
- {
- name_ = name;
- filter_ = filter;
- }
-
- String getName()
- {
- return name_;
- }
-
- ImageFilter getFilter()
- {
- return filter_;
- }
-}
diff --git a/java/ImageProcessing/framework/ImageSender.java b/java/ImageProcessing/framework/ImageSender.java
deleted file mode 100644
index c1659267537..00000000000
--- a/java/ImageProcessing/framework/ImageSender.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.net.*;
-import java.io.*;
-import java.applet.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ImageSender
-{
- public ImageSender (Applet parent)
- {
- this.parent_ = parent;
- }
-
- // ******************
- // Currently bombs if it's not in an http or / format
- //
- public void open (Image image, String url)
- {
- this.image_ = image;
-
- this.hostname_ = url;
- if (this.hostname_.startsWith ("http://"))
- this.hostname_ = this.hostname_.substring (7);
-
- int index = -1;
- if ((index = this.hostname_.indexOf (":")) != -1)
- {
- String temp = this.hostname_.substring (index + 1);
- int i = -1;
- if ((i = temp.indexOf ("/")) != -1)
- {
- this.port_ = (new Integer (temp.substring (0, i))).intValue ();
- this.filename_ = temp.substring (i);
- }
- this.hostname_ = this.hostname_.substring (0, index);
- }
- else
- {
- int i = -1;
- if ((i = this.hostname_.indexOf ("/")) != -1)
- {
- this.filename_ = hostname_.substring (i);
- }
- this.hostname_ = this.hostname_.substring (0, i);
- this.port_ = 80;
- }
- }
-
- // Maintain compatibility
- public int send ()
- {
- return send(null);
- }
-
- /*******************************************
- * The authenication string allows the PUT command to work if the server
- * accepts the basic HTTP 1.1 encryption scheme
- *******************************************/
- public int send (String authentication)
- {
- ImageByteCounter byteCounter = new ImageByteCounter ("", this.image_, this.parent_);
- // StatusIndicator indicator = new StatusIndicator ("");
- // ImageByteCounter byteCounter = new ImageByteCounter ("", this.image_, indicator);
- int length = byteCounter.count ();
- // indicator.dispose ();
- // First determine how many bytes we will be sending
- /*
- try
- {
- GIFOutputStream ostream = new GIFOutputStream ();
- GifEncoder encoder = new GifEncoder (this.image_, ostream);
- encoder.encode ();
-
- length = ostream.count ();
- System.out.println ("send: " + length);
- }
- catch (IOException e)
- {
- ACE.ERROR ("Exception generating gif");
- }
- */
-
- GIFHandler gifHandler;
- if (authentication == null)
- gifHandler = new GIFHandler (this.filename_, this.image_, length);
- else
- gifHandler = new GIFHandler (this.filename_, this.image_, length, authentication);
-
- try
- {
- // Connect to the server and send the image
- this.connector_.open (this.hostname_, this.port_);
- this.connector_.connect (gifHandler);
- }
- catch (UnknownHostException e)
- {
- ACE.ERROR (e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
-
- if (gifHandler.returnCode () != -1)
- return gifHandler.bytesWritten ();
- else
- return -1;
- }
-
- private Image image_ = null;
- String filename_;
- String hostname_;
- int port_;
- Connector connector_ = new Connector ();
- Applet parent_;
-}
-
diff --git a/java/ImageProcessing/framework/IntHashtable.java b/java/ImageProcessing/framework/IntHashtable.java
deleted file mode 100644
index 95e6cbc25e0..00000000000
--- a/java/ImageProcessing/framework/IntHashtable.java
+++ /dev/null
@@ -1,396 +0,0 @@
-// IntHashtable - a Hashtable that uses ints as the keys
-//
-// This is 90% based on JavaSoft's java.util.Hashtable.
-//
-// Visit the ACME Labs Java page for up-to-date versions of this and other
-// fine Java utilities: http://www.acme.com/java/
-
-package imaging.framework;
-
-import java.util.*;
-
-/// A Hashtable that uses ints as the keys.
-// <P>
-// Use just like java.util.Hashtable, except that the keys must be ints.
-// This is much faster than creating a new Integer for each access.
-// <P>
-// <A HREF="/resources/classes/Acme/IntHashtable.java">Fetch the software.</A><BR>
-// <A HREF="/resources/classes/Acme.tar.Z">Fetch the entire Acme package.</A>
-// <P>
-// @see java.util.Hashtable
-
-public class IntHashtable extends Dictionary implements Cloneable
- {
- /// The hash table data.
- private IntHashtableEntry table[];
-
- /// The total number of entries in the hash table.
- private int count;
-
- /// Rehashes the table when count exceeds this threshold.
- private int threshold;
-
- /// The load factor for the hashtable.
- private float loadFactor;
-
- /// Constructs a new, empty hashtable with the specified initial
- // capacity and the specified load factor.
- // @param initialCapacity the initial number of buckets
- // @param loadFactor a number between 0.0 and 1.0, it defines
- // the threshold for rehashing the hashtable into
- // a bigger one.
- // @exception IllegalArgumentException If the initial capacity
- // is less than or equal to zero.
- // @exception IllegalArgumentException If the load factor is
- // less than or equal to zero.
- public IntHashtable( int initialCapacity, float loadFactor )
- {
- if ( initialCapacity <= 0 || loadFactor <= 0.0 )
- throw new IllegalArgumentException();
- this.loadFactor = loadFactor;
- table = new IntHashtableEntry[initialCapacity];
- threshold = (int) ( initialCapacity * loadFactor );
- }
-
- /// Constructs a new, empty hashtable with the specified initial
- // capacity.
- // @param initialCapacity the initial number of buckets
- public IntHashtable( int initialCapacity )
- {
- this( initialCapacity, 0.75f );
- }
-
- /// Constructs a new, empty hashtable. A default capacity and load factor
- // is used. Note that the hashtable will automatically grow when it gets
- // full.
- public IntHashtable()
- {
- this( 101, 0.75f );
- }
-
- /// Returns the number of elements contained in the hashtable.
- public int size()
- {
- return count;
- }
-
- /// Returns true if the hashtable contains no elements.
- public boolean isEmpty()
- {
- return count == 0;
- }
-
- /// Returns an enumeration of the hashtable's keys.
- // @see IntHashtable#elements
- public synchronized Enumeration keys()
- {
- return new IntHashtableEnumerator( table, true );
- }
-
- /// Returns an enumeration of the elements. Use the Enumeration methods
- // on the returned object to fetch the elements sequentially.
- // @see IntHashtable#keys
- public synchronized Enumeration elements()
- {
- return new IntHashtableEnumerator( table, false );
- }
-
- /// Returns true if the specified object is an element of the hashtable.
- // This operation is more expensive than the containsKey() method.
- // @param value the value that we are looking for
- // @exception NullPointerException If the value being searched
- // for is equal to null.
- // @see IntHashtable#containsKey
- public synchronized boolean contains( Object value )
- {
- if ( value == null )
- throw new NullPointerException();
- IntHashtableEntry tab[] = table;
- for ( int i = tab.length ; i-- > 0 ; )
- {
- for ( IntHashtableEntry e = tab[i] ; e != null ; e = e.next )
- {
- if ( e.value.equals( value ) )
- return true;
- }
- }
- return false;
- }
-
- /// Returns true if the collection contains an element for the key.
- // @param key the key that we are looking for
- // @see IntHashtable#contains
- public synchronized boolean containsKey( int key )
- {
- IntHashtableEntry tab[] = table;
- int hash = key;
- int index = ( hash & 0x7FFFFFFF ) % tab.length;
- for ( IntHashtableEntry e = tab[index] ; e != null ; e = e.next )
- {
- if ( e.hash == hash && e.key == key )
- return true;
- }
- return false;
- }
-
- /// Gets the object associated with the specified key in the
- // hashtable.
- // @param key the specified key
- // @returns the element for the key or null if the key
- // is not defined in the hash table.
- // @see IntHashtable#put
- public synchronized Object get( int key )
- {
- IntHashtableEntry tab[] = table;
- int hash = key;
- int index = ( hash & 0x7FFFFFFF ) % tab.length;
- for ( IntHashtableEntry e = tab[index] ; e != null ; e = e.next )
- {
- if ( e.hash == hash && e.key == key )
- return e.value;
- }
- return null;
- }
-
- /// A get method that takes an Object, for compatibility with
- // java.util.Dictionary. The Object must be an Integer.
- public Object get( Object okey )
- {
- if ( ! ( okey instanceof Integer ) )
- throw new InternalError( "key is not an Integer" );
- Integer ikey = (Integer) okey;
- int key = ikey.intValue();
- return get( key );
- }
-
- /// Rehashes the content of the table into a bigger table.
- // This method is called automatically when the hashtable's
- // size exceeds the threshold.
- protected void rehash()
- {
- int oldCapacity = table.length;
- IntHashtableEntry oldTable[] = table;
-
- int newCapacity = oldCapacity * 2 + 1;
- IntHashtableEntry newTable[] = new IntHashtableEntry[newCapacity];
-
- threshold = (int) ( newCapacity * loadFactor );
- table = newTable;
-
- for ( int i = oldCapacity ; i-- > 0 ; )
- {
- for ( IntHashtableEntry old = oldTable[i] ; old != null ; )
- {
- IntHashtableEntry e = old;
- old = old.next;
-
- int index = ( e.hash & 0x7FFFFFFF ) % newCapacity;
- e.next = newTable[index];
- newTable[index] = e;
- }
- }
- }
-
- /// Puts the specified element into the hashtable, using the specified
- // key. The element may be retrieved by doing a get() with the same key.
- // The key and the element cannot be null.
- // @param key the specified key in the hashtable
- // @param value the specified element
- // @exception NullPointerException If the value of the element
- // is equal to null.
- // @see IntHashtable#get
- // @return the old value of the key, or null if it did not have one.
- public synchronized Object put( int key, Object value )
- {
- // Make sure the value is not null.
- if ( value == null )
- throw new NullPointerException();
-
- // Makes sure the key is not already in the hashtable.
- IntHashtableEntry tab[] = table;
- int hash = key;
- int index = ( hash & 0x7FFFFFFF ) % tab.length;
- for ( IntHashtableEntry e = tab[index] ; e != null ; e = e.next )
- {
- if ( e.hash == hash && e.key == key )
- {
- Object old = e.value;
- e.value = value;
- return old;
- }
- }
-
- if ( count >= threshold )
- {
- // Rehash the table if the threshold is exceeded.
- rehash();
- return put( key, value );
- }
-
- // Creates the new entry.
- IntHashtableEntry e = new IntHashtableEntry();
- e.hash = hash;
- e.key = key;
- e.value = value;
- e.next = tab[index];
- tab[index] = e;
- ++count;
- return null;
- }
-
- /// A put method that takes an Object, for compatibility with
- // java.util.Dictionary. The Object must be an Integer.
- public Object put( Object okey, Object value )
- {
- if ( ! ( okey instanceof Integer ) )
- throw new InternalError( "key is not an Integer" );
- Integer ikey = (Integer) okey;
- int key = ikey.intValue();
- return put( key, value );
- }
-
- /// Removes the element corresponding to the key. Does nothing if the
- // key is not present.
- // @param key the key that needs to be removed
- // @return the value of key, or null if the key was not found.
- public synchronized Object remove( int key )
- {
- IntHashtableEntry tab[] = table;
- int hash = key;
- int index = ( hash & 0x7FFFFFFF ) % tab.length;
- for ( IntHashtableEntry e = tab[index], prev = null ; e != null ; prev = e, e = e.next )
- {
- if ( e.hash == hash && e.key == key )
- {
- if ( prev != null )
- prev.next = e.next;
- else
- tab[index] = e.next;
- --count;
- return e.value;
- }
- }
- return null;
- }
-
- /// A remove method that takes an Object, for compatibility with
- // java.util.Dictionary. The Object must be an Integer.
- public Object remove( Object okey )
- {
- if ( ! ( okey instanceof Integer ) )
- throw new InternalError( "key is not an Integer" );
- Integer ikey = (Integer) okey;
- int key = ikey.intValue();
- return remove( key );
- }
-
- /// Clears the hash table so that it has no more elements in it.
- public synchronized void clear()
- {
- IntHashtableEntry tab[] = table;
- for ( int index = tab.length; --index >= 0; )
- tab[index] = null;
- count = 0;
- }
-
- /// Creates a clone of the hashtable. A shallow copy is made,
- // the keys and elements themselves are NOT cloned. This is a
- // relatively expensive operation.
- public synchronized Object clone()
- {
- try
- {
- IntHashtable t = (IntHashtable) super.clone();
- t.table = new IntHashtableEntry[table.length];
- for ( int i = table.length ; i-- > 0 ; )
- t.table[i] = ( table[i] != null ) ?
- (IntHashtableEntry) table[i].clone() : null;
- return t;
- }
- catch ( CloneNotSupportedException e)
- {
- // This shouldn't happen, since we are Cloneable.
- throw new InternalError();
- }
- }
-
- /// Converts to a rather lengthy String.
- public synchronized String toString()
- {
- int max = size() - 1;
- StringBuffer buf = new StringBuffer();
- Enumeration k = keys();
- Enumeration e = elements();
- buf.append( "{" );
-
- for ( int i = 0; i <= max; ++i )
- {
- String s1 = k.nextElement().toString();
- String s2 = e.nextElement().toString();
- buf.append( s1 + "=" + s2 );
- if ( i < max )
- buf.append( ", " );
- }
- buf.append( "}" );
- return buf.toString();
- }
- }
-
-
-class IntHashtableEntry
- {
- int hash;
- int key;
- Object value;
- IntHashtableEntry next;
-
- protected Object clone()
- {
- IntHashtableEntry entry = new IntHashtableEntry();
- entry.hash = hash;
- entry.key = key;
- entry.value = value;
- entry.next = ( next != null ) ? (IntHashtableEntry) next.clone() : null;
- return entry;
- }
- }
-
-
-class IntHashtableEnumerator implements Enumeration
- {
- boolean keys;
- int index;
- IntHashtableEntry table[];
- IntHashtableEntry entry;
-
- IntHashtableEnumerator( IntHashtableEntry table[], boolean keys )
- {
- this.table = table;
- this.keys = keys;
- this.index = table.length;
- }
-
- public boolean hasMoreElements()
- {
- if ( entry != null )
- return true;
- while ( index-- > 0 )
- if ( ( entry = table[index] ) != null )
- return true;
- return false;
- }
-
- public Object nextElement()
- {
- if ( entry == null )
- while ( ( index-- > 0 ) && ( ( entry = table[index] ) == null ) )
- ;
- if ( entry != null )
- {
- IntHashtableEntry e = entry;
- entry = e.next;
- return keys ? new Integer( e.key ) : e.value;
- }
- throw new NoSuchElementException( "IntHashtableEnumerator" );
- }
- }
diff --git a/java/ImageProcessing/framework/ListFiles.java b/java/ImageProcessing/framework/ListFiles.java
deleted file mode 100644
index 7abe067341c..00000000000
--- a/java/ImageProcessing/framework/ListFiles.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package imaging.framework;
-
-import java.net.*;
-import java.io.*;
-import java.applet.*;
-
-public class ListFiles
-{
- public ListFiles ()
- {
- }
-
- public ListFiles (FileBrowser browser, Applet parent)
- {
- this.browser_ = browser;
- try
- {
- this.fileIcon_ = new Icon (parent.getCodeBase () +
- "../ImageProcessing/framework/" +
- "doc01.gif",
- parent);
- this.dirIcon_ = new Icon (parent.getCodeBase () +
- "../ImageProcessing/framework/" +
- "file03.gif",
- parent);
- }
- catch (MalformedURLException e)
- {
- }
- }
-
- public String stripProtocolHeader (String url)
- {
- if (url.startsWith ("http://"))
- {
- return url.substring (7);
- }
- else
- return url;
- }
-
- public int listFiles (String url, FileNode fileNode)
- {
- String s = this.stripProtocolHeader (url);
- String hostname = s;
- String directory = null;
- int index = -1;
-
- if ((index = s.indexOf ("/")) != -1)
- {
- hostname = s.substring (0, index);
- directory = s.substring (index);
- }
- return this.listFiles (hostname, directory, fileNode);
- }
-
- public int listFiles (String url, String directory, FileNode fileNode)
- {
- boolean validDirectory = false;
- int count = 0;
- String hostname = this.stripProtocolHeader (url);
- this.url_ = url;
- this.directory_ = directory;
- try
- {
- Socket sock = new Socket (hostname, 80);
- PrintStream out = new PrintStream (sock.getOutputStream ());
- DataInputStream in = new DataInputStream (sock.getInputStream ());
- System.out.println ("Connected to: " + hostname);
-
- String request = null;
- if (directory.endsWith ("/"))
- request = "GET " + directory + "\n\n";
- else
- request = "GET " + directory + "/\n\n";
-
- System.out.println ("Sending request: " + request);
-
- // Send the request
- out.println (request);
-
- String reply = null;
- // Receive the reply
-
- // Read all the data in a loop. Search for "Parent Directory"
- // to verify that this indeed is a directory. If we encounter
- // the string "<HTML>" then assume that this is an HTML page
- // and therefore the directory contained "index.html"
- while ((reply = in.readLine ()) != null)
- {
- if (validDirectory)
- this.parse (reply, fileNode);
- else
- {
- // Take a guess at the type of data we get back
- if (reply.indexOf ("Parent Directory") != -1)
- validDirectory = true;
- else if ((reply.toUpperCase ().indexOf ("<HTML>") != -1) ||
- (reply.toUpperCase ().indexOf ("<P>") != -1) ||
- (reply.toUpperCase ().indexOf ("<TABLE") != -1))
- return 0;
- }
- }
- }
- catch (MalformedURLException e)
- {
- System.err.println (e);
- }
- catch (IOException e)
- {
- System.err.println (e);
- }
- if (validDirectory == false)
- return -1;
- return 1;
- }
-
- private int parse (String s, FileNode fileNode)
- {
- int i= -1;
- int j = -1;
- int startIndex = -1;
- int endIndex = -1;
- boolean isFile = true;
- String name = null;
-
- if ((i = s.indexOf ("HREF=")) != -1)
- startIndex = i + 6;
- else
- return -1;
-
- if ((j = s.indexOf (">", i)) != -1)
- endIndex = j - 1;
- else
- return -1;
-
- // Check if this is a directory
- if (s.charAt (endIndex - 1) == '/')
- isFile = false;
-
- if (endIndex >= startIndex)
- {
- name = s.substring (startIndex, endIndex);
- if (browser_ != null)
- {
- // System.out.println (name);
- if (isFile)
- fileNode.addEntry (new FileNode (name, this.fileIcon_, null,
- fileNode.app ()));
- else
- {
- FileNode f = new FileNode (name, this.dirIcon_, this,
- fileNode.app ());
- fileNode.addEntry (f);
- f.setExpandable (true);
- }
- }
- }
- return 0;
- }
-
- private FileBrowser browser_ = null;
- private String url_ = null;
- private String directory_ = null;
- private Icon fileIcon_;
- private Icon dirIcon_;
-}
diff --git a/java/ImageProcessing/framework/LoadURLFrame.java b/java/ImageProcessing/framework/LoadURLFrame.java
deleted file mode 100755
index 610d9eaafa8..00000000000
--- a/java/ImageProcessing/framework/LoadURLFrame.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import java.net.*;
-import java.io.*;
-
-/******************************************************
- * Future idea:
- *
- * Create a smart button class with an invoke method that's
- * to be called when the button is pressed.
- *
- * Subclasses override the invoke method to define
- * specific behavior.
- *
- * That would allow things like load and save frames
- * to be almost exactly the same -- one could inherit
- * from the other and override addButtons, etc
- *****************************************************/
-
-class LoadURLFrame extends Frame
-{
- public LoadURLFrame (String title, ImageApp parent)
- {
- super (title);
-
- this.parent_ = parent;
- this.resize (500,130);
-
- this.addButtons();
- }
-
- private void addButtons()
- {
- this.setLayout (new BorderLayout ());
-
- Panel textPanel = new Panel ();
- textPanel.setLayout (new BorderLayout ());
- textPanel.add ("North", new Label ("Image Location:"));
- textPanel.add ("Center", this.openURLText_);
-
- Panel buttonPanel = new Panel ();
- buttonPanel.setLayout (new FlowLayout (FlowLayout.CENTER));
-
- buttonPanel.add (this.openButton_);
-
- buttonPanel.add (this.clearButton_);
- buttonPanel.add (this.cancelButton_);
-
- this.add ("North", textPanel);
- this.add ("South", buttonPanel);
- }
-
- private int browseFiles (String url)
- {
- fileBrowser_ = new FileBrowser ("Browse", this.parent_);
- ListFiles list = new ListFiles (this.fileBrowser_, this.parent_);
- return this.fileBrowser_.initialize (url, list);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.openButton_)
- {
- this.getURL ();
- }
- else if (e.target == this.clearButton_)
- {
- this.openURLText_.setText (new String ());
- this.openURLText_.requestFocus ();
- }
- else if (e.target == this.cancelButton_)
- this.dispose ();
- validate ();
- return true;
- }
- else
- return false;
- }
-
- public boolean keyDown (Event e, int key)
- {
- if (key == 10)
- {
- this.getURL ();
- return true;
- }
- else
- return false;
- }
-
- private void getURL ()
- {
- this.hide ();
- String url = this.openURLText_.getText ();
- this.dispose ();
-
- // The following is only for debugging
- if (url.compareTo ("ru") == 0)
- url = "http://www.cs/~pjain/gifs/";
- else if (url.compareTo ("pj") == 0)
- url = "http://www.cs/~pjain/myphoto.gif";
-
- if (!url.endsWith ("/") &&
- (this.parent_.openURL (url) != -1)) // Try to open it as an image
- return;
- else
- {
- ListFiles list = new ListFiles ();
- switch (this.browseFiles (url))
- {
- case 1:
- this.fileBrowser_.show ();
- break;
- case 0:
- DialogManager.popDialog (DialogType.MALFORMED_URL,
- "Error: Directory contains index.html");
- break;
- default:
- DialogManager.popDialog (DialogType.MALFORMED_URL,
- "Error: Not a valid image or URL not found");
- break;
- }
- }
- }
-
- // Create the Open URL Frame and also the buttons which appear in
- // it
- private Button openButton_ = new Button ("Open");
- private Button clearButton_ = new Button ("Clear");
- private Button cancelButton_ = new Button ("Cancel");
-
- private TextField openURLText_ = new TextField (40);
-
- private FileBrowser fileBrowser_ = null;
- private ImageApp parent_;
-
-}
diff --git a/java/ImageProcessing/framework/Makefile b/java/ImageProcessing/framework/Makefile
deleted file mode 100644
index 1187b8a88d7..00000000000
--- a/java/ImageProcessing/framework/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-# Makefile
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-DOCDIR = $(JACE_WRAPPER)/doc
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-
-clean:
- rm -rf *~
-
-realclean: clean
- rm -rf $(JACE_WRAPPER)/classes/imaging/framework
-
-files = ImageProcessor.java \
- DialogType.java \
- LoadURLFrame.java \
- SaveURLFrame.java \
- DialogManager.java \
- ImageCanvas.java \
- ImageApp.java \
- BaseButton.java \
- FilePanel.java \
- StatusDisplay.java \
- Icon.java \
- Hierarchy.java \
- HierarchyAdapter.java \
- FileBrowser.java \
- ListFiles.java \
- IntHashtable.java \
- ImageEncoder.java \
- GifEncoder.java \
- ImageByteCounter.java \
- StatusIndicator.java \
- GIFHandler.java \
- ImageSender.java \
- ServerTest.java \
- ServerHandler.java \
- Tester.java \
- TestHandler.java
diff --git a/java/ImageProcessing/framework/MedJava.html b/java/ImageProcessing/framework/MedJava.html
deleted file mode 100644
index fe9ce09e7eb..00000000000
--- a/java/ImageProcessing/framework/MedJava.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#888888">
-
-<HR>
-<APPLET CODEBASE="/classes/" CODE="imaging.framework.ImageApp.class" width=700 height=700>
-<param name=filename value="myphoto.gif">
-
-</APPLET>
-<HR>
-
-</HTML>
diff --git a/java/ImageProcessing/framework/Options.java b/java/ImageProcessing/framework/Options.java
deleted file mode 100644
index edbe90ba904..00000000000
--- a/java/ImageProcessing/framework/Options.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-
-class Options
-{
- // Set GridBagConstraints
- public static void constrain (Container container, Component component,
- int gridx, int gridy,
- int gridwidth, int gridheight,
- int fill, int anchor)
- {
- GridBagConstraints c = new GridBagConstraints ();
- GridBagLayout gbl = (GridBagLayout) container.getLayout ();
-
- c.gridx = gridx;
- c.gridy = gridy;
- c.gridwidth = gridwidth;
- c.gridheight = gridheight;
- c.fill = fill;
- c.anchor = anchor;
- gbl.setConstraints (component, c);
- container.add (component);
- }
-}
diff --git a/java/ImageProcessing/framework/SaveURLFrame.java b/java/ImageProcessing/framework/SaveURLFrame.java
deleted file mode 100755
index c3b6adf3490..00000000000
--- a/java/ImageProcessing/framework/SaveURLFrame.java
+++ /dev/null
@@ -1,133 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import java.awt.image.*;
-import java.net.*;
-import java.io.*;
-
-/******************************************************
- * Future idea:
- *
- * Create a smart button class with an invoke method that's
- * to be called when the button is pressed.
- *
- * Subclasses override the invoke method to define
- * specific behavior.
- *
- * That would allow things like load and save frames
- * to be almost exactly the same -- one could inherit
- * from the other and override addButtons, etc
- *****************************************************/
-
-
-class SaveURLFrame extends Frame
-{
- public SaveURLFrame (String title, ImageApp parent)
- {
- super (title);
-
- this.parent_ = parent;
- this.resize (500,200);
-
- this.addButtons();
- }
-
- private void addButtons()
- {
- this.setLayout (new BorderLayout ());
-
- Panel textPanels = new Panel();
- textPanels.setLayout(new BorderLayout());
-
- Panel URLPanel = new Panel ();
- URLPanel.setLayout (new BorderLayout ());
- URLPanel.add ("North", new Label ("Image Location:"));
- URLPanel.add ("Center", this.openURLText_);
-
- // Password panel
- Panel pwPanel = new Panel();
- pwPanel.setLayout (new BorderLayout ());
- pwPanel.add ("North", new Label ("Authentication:"));
- pwPanel.add ("Center", this.passwordText_);
-
- textPanels.add("North", URLPanel);
- textPanels.add("South", pwPanel);
-
- Panel buttonPanel = new Panel ();
- buttonPanel.setLayout (new FlowLayout (FlowLayout.CENTER));
-
- buttonPanel.add (this.saveButton_);
- buttonPanel.add (this.clearButton_);
- buttonPanel.add (this.cancelButton_);
-
- this.add ("North", textPanels);
- this.add ("South", buttonPanel);
- }
-
- // Handle all action events
- public boolean action (Event e, Object arg)
- {
- if (e.target instanceof Button)
- {
- if (e.target == this.saveButton_)
- {
- this.saveFile ();
- }
- else if (e.target == this.clearButton_)
- {
- this.openURLText_.setText (new String ());
- this.openURLText_.requestFocus ();
- }
- else if (e.target == this.cancelButton_)
- this.dispose ();
- validate ();
- return true;
- }
- else
- return false;
- }
-
- public boolean keyDown (Event e, int key)
- {
- if (key == 10)
- {
- this.saveFile ();
- return true;
- }
- else
- return false;
- }
-
- private void saveFile ()
- {
- String url = this.openURLText_.getText ();
- String password = this.passwordText_.getText();
- this.hide ();
- this.dispose ();
-
- // The following is only for debugging
- if (url.startsWith ("#"))
- url = "http://merengue.cs:5432/" + url.substring (1);
-
- if ((password != null) && (password.length() > 0))
- this.parent_.saveFile (url, password);
- else
- this.parent_.saveFile (url);
- }
-
-
- // Create the Open URL Frame and also the buttons which appear in
- // it
- private Button saveButton_ = new Button ("Save");
- private Button clearButton_ = new Button ("Clear");
- private Button cancelButton_ = new Button ("Cancel");
-
- private TextField openURLText_ = new TextField (40);
- private TextField passwordText_ = new TextField (40);
-
- private ImageApp parent_;
-
- // Flag indicating if this is a load window or a save window
- private boolean open_ = true;
-
-}
diff --git a/java/ImageProcessing/framework/Separator.java b/java/ImageProcessing/framework/Separator.java
deleted file mode 100644
index 6bd610e1ad9..00000000000
--- a/java/ImageProcessing/framework/Separator.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A separator that is drawn either vertically or horizontally
- * depending upon how it is laid out. Can be drawn either
- * etched-in or etched-out, with varying thicknesses. Both
- * thickness and etching are settable at construction time
- * only.<p>
- *
- * Default thickness is 2 pixels and default etching is
- * Etching.IN. Note that thicknesses greater than 4 loose the
- * etching effect.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Etching
- * @see gjt.test.SeparatorTest
- */
-public class Separator extends Canvas {
- static private Etching _defaultEtching = Etching.IN;
- static private int _defaultThickness = 2;
-
- private Etching etching;
- private int thickness;
-
- public Separator() {
- this(_defaultThickness, _defaultEtching);
- }
- public Separator(int thickness) {
- this(thickness, _defaultEtching);
- }
- public Separator(Etching etching) {
- this(_defaultThickness, etching);
- }
- public Separator(int thickness, Etching etching) {
- this.etching = etching;
- this.thickness = thickness;
- resize(thickness, thickness);
- }
- public Dimension minimumSize() {
- return preferredSize();
- }
- public Dimension preferredSize() {
- return new Dimension(thickness, thickness);
- }
- public void paint(Graphics g) {
- Dimension size = size();
- Color brighter = getBackground().brighter().brighter();
- Color darker = getBackground().darker().darker();
-
- if(etching == Etching.IN) {
- if(size.width > size.height)
- paintHorizontal(g, size, darker, brighter);
- else
- paintVertical(g, size, darker, brighter);
- }
- else {
- if(size.width > size.height)
- paintHorizontal(g, size, brighter, darker);
- else
- paintVertical(g, size, brighter, darker);
- }
- }
- public String paramString() {
- Dimension size = size();
- Orientation orient = size.width > size.height ?
- Orientation.HORIZONTAL :
- Orientation.VERTICAL;
- return super.paramString() + "thickness=" +
- thickness + "," + etching + "," + orient;
- }
- private void paintHorizontal(Graphics g, Dimension size,
- Color top, Color bottom) {
- g.setColor(top);
- g.fillRect(0, (size.height/2) - (thickness/2),
- size.width, thickness/2);
- g.setColor(bottom);
- g.fillRect(0, size.height/2, size.width, thickness/2);
- }
- private void paintVertical(Graphics g, Dimension size,
- Color left, Color right) {
- g.setColor(left);
- g.fillRect((size.width/2) - (thickness/2),
- 0, thickness/2, size.height);
- g.setColor(right);
- g.fillRect(size.width/2, 0, thickness/2, size.height);
- }
-}
diff --git a/java/ImageProcessing/framework/ServerHandler.java b/java/ImageProcessing/framework/ServerHandler.java
deleted file mode 100644
index 88da64d6328..00000000000
--- a/java/ImageProcessing/framework/ServerHandler.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ServerHandler extends SvcHandler
-{
- public int open (Object obj)
- {
- new Thread (this).start ();
- return 0;
- }
-
- public void run ()
- {
- int msg_len;
- try
- {
- while (true)
- {
- StringBuffer msg = new StringBuffer ();
- msg_len = this.peer ().recv (msg);
- if (msg_len == 0)
- break;
- System.out.println (msg);
- }
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("connection reset by peer");
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- finally
- {
- try
- {
- this.peer ().close ();
- }
- catch (IOException e)
- {
- }
- }
-
- }
-}
diff --git a/java/ImageProcessing/framework/ServerTest.java b/java/ImageProcessing/framework/ServerTest.java
deleted file mode 100644
index b5ab00596ea..00000000000
--- a/java/ImageProcessing/framework/ServerTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ServerTest
-{
- void print_usage_and_die ()
- {
- System.out.println ("Usage: ServerTest [<port>]");
- System.exit (0);
- }
-
- public void init (int port)
- {
- try
- {
- Acceptor acceptor = new Acceptor (Class.forName ("imaging.framework.ServerHandler"));
- acceptor.open (port);
- while (true)
- {
- acceptor.accept ();
- }
- }
- catch (ClassNotFoundException e)
- {
- ACE.ERROR (e);
- }
- catch (SocketException e)
- {
- ACE.ERROR ("Socket Exception: " + e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR ("Dang!" + e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- public static void main (String [] args)
- {
- int port = ACE.DEFAULT_SERVER_PORT;
- ServerTest server = new ServerTest ();
-
- if (args.length == 1)
- {
- try
- {
- port = Integer.parseInt (args[0]);
- }
- catch (NumberFormatException e)
- {
- server.print_usage_and_die ();
- }
- }
- server.init (port);
- }
-}
diff --git a/java/ImageProcessing/framework/StatusDisplay.java b/java/ImageProcessing/framework/StatusDisplay.java
deleted file mode 100644
index e20e9b8384d..00000000000
--- a/java/ImageProcessing/framework/StatusDisplay.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package imaging.framework;
-
-import java.awt.*;
-import gjt.Separator;
-
-class StatusDisplay extends Panel
-{
- public StatusDisplay ()
- {
- this.setLayout (new BorderLayout ());
- this.textField_.setEditable (false);
- this.add ("North", new Separator ());
- this.add ("Center", this.textField_);
- this.add ("South", new Separator ());
- }
-
- public void setText (String s)
- {
- this.textField_.setText (s);
- }
-
- private TextField textField_ = new TextField ();
-}
diff --git a/java/ImageProcessing/framework/StatusIndicator.java b/java/ImageProcessing/framework/StatusIndicator.java
deleted file mode 100644
index 0f13a71c016..00000000000
--- a/java/ImageProcessing/framework/StatusIndicator.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.awt.*;
-
-public class StatusIndicator extends Frame
-{
- public StatusIndicator (String title, Image image)
- {
- super (title);
- this.image_ = image;
- // statusCanvas_ = new CounterCanvas (image);
- this.setLayout (new BorderLayout ());
- this.text_ = new TextField ();
- this.label_ = new TextField ("Generating");
-
- this.add ("North", this.label_);
- this.add ("Center", text_);
- // this.add ("Center", statusCanvas_);
- // this.add ("Center", new Button ("Hello"));
- // this.add ("South", new Button ("Hello"));
- this.resize (300,200);
- this.show ();
- }
-
- public void update (int count)
- {
- // this.label_.setText ("Generating...");
- this.text_.setText ((new Integer (count++)).toString ());
- // statusCanvas_.update ();
- // textCanvas_.setCount (count);
- }
-
- TextField text_;
- TextField label_;
- Image image_;
- // CounterCanvas statusCanvas_ = null;
-}
-
-class CounterCanvas extends Canvas
-{
- public CounterCanvas (Image image)
- {
- this.image_ = image;
- }
-
- public void paint (Graphics g)
- {
- g.clearRect (0, 0, this.size ().width, this.size ().height);
- this.setBackground (Color.white);
-
- if (this.image_ != null)
- g.drawImage(this.image_,
- 40, 40,
- this.image_.getWidth (this),
- this.image_.getHeight (this),
- this);
-
- g.setFont (new Font ("TimesRoman", Font.PLAIN, 18));
- g.drawString ("Generating GIF format: ", 120, 120);
- }
-
- public void update ()
- {
- repaint ();
- }
-
- Image image_ = null;
-}
-
diff --git a/java/ImageProcessing/framework/TestHandler.java b/java/ImageProcessing/framework/TestHandler.java
deleted file mode 100644
index 5a97ae6f8b2..00000000000
--- a/java/ImageProcessing/framework/TestHandler.java
+++ /dev/null
@@ -1,149 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.net.*;
-import java.awt.*;
-import java.awt.image.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Timers.*;
-
-public class TestHandler extends SvcHandler
-{
- public TestHandler (String imageList,
- String JAWSServer, int JAWSPort,
- ImageApp parent)
- {
- this.imageList_ = imageList;
- this.JAWSServer_ = JAWSServer;
- this.JAWSPort_ = JAWSPort;
- this.parent_ = parent;
- this.filterTable_ = this.parent_.filterTable();
- }
-
- public int open (Object obj)
- {
- // We got called by the Connector so assume connection was set up
- // fine and therfore do not use standard output
- stdOut = false;
-
- doTesting ();
- return 0;
- }
-
- public void doTesting ()
- {
- if (imageList_ != null)
- {
- StringTokenizer tokens = new StringTokenizer (imageList_);
- String image = null;
-
- // Now parse the string, picking up image names.
- while (tokens.hasMoreTokens ())
- {
- // Get the next token
- image = tokens.nextToken ();
- this.process (image);
- }
- }
- }
-
- private void write (String data)
- {
- try
- {
- // If we are connected to the server then send the data to the
- // server, otherwise write it to standard out.
- if (stdOut)
- System.out.print (data);
- else
- this.peer ().send (data);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- private void process (String image)
- {
- this.write ("Image: " + image + "\n");
-
- this.loadImage (image);
- this.processImage (image);
- this.uploadImage (image);
- }
-
- private void loadImage (String image)
- {
- this.write ("\tLoading...");
-
- // Start the timer
- timer_.start ();
-
- // Load the image
- parent_.openURL (image);
-
- // Stop the timer
- timer_.stop ();
- long time = timer_.elapsedTime ();
-
- this.write ("done (" + ((double) time)/1000 + " seconds).\n");
- }
-
- private void processImage (String image)
- {
- this.write ("\tProcessing...\n");
-
- for (Enumeration e = filterTable_.keys (); e.hasMoreElements (); )
- {
- String filterName = (String) e.nextElement ();
-
- this.write ("\t\t" + filterName + "...");
-
- ImageFilter filter = (ImageFilter) filterTable_.get (filterName);
-
- // Reset the image -- in case it was modified earlier
- this.parent_.resetImage ();
-
- // Start the timer
- timer_.start ();
-
- this.parent_.apply (filter);
-
- // Stop the timer
- timer_.stop ();
- long time = timer_.elapsedTime ();
-
- this.write ("done (" + ((double) time)/1000 + " seconds).\n");
- }
- }
-
- private void uploadImage (String image)
- {
- int index = image.lastIndexOf ("/");
- String imageName = image.substring (index+1);
- String url = "http://" + this.JAWSServer_ + ":" + this.JAWSPort_ + "/" + imageName;
- this.write ("\tUploading " + url + "...");
-
- // Start the timer
- timer_.start ();
-
- this.parent_.saveFile (url);
-
- // Stop the timer
- timer_.stop ();
- long time = timer_.elapsedTime ();
-
- this.write ("done (" + ((double) time)/1000 + " seconds).\n");
- }
-
- private ImageApp parent_ = null;
- private ProfileTimer timer_ = new ProfileTimer ();
- private String imageList_ = null;
- private boolean stdOut = true;
- private Hashtable filterTable_ = null;
- private String JAWSServer_ = null;
- private int JAWSPort_ = 5432;
-}
diff --git a/java/ImageProcessing/framework/Tester.java b/java/ImageProcessing/framework/Tester.java
deleted file mode 100644
index 79204bb4c5a..00000000000
--- a/java/ImageProcessing/framework/Tester.java
+++ /dev/null
@@ -1,148 +0,0 @@
-package imaging.framework;
-
-import java.io.*;
-import java.net.*;
-import java.awt.*;
-import java.awt.image.*;
-import java.util.*;
-import JACE.Connection.*;
-import JACE.OS.*;
-
-public class Tester implements Runnable
-{
- public static final String DEFAULT_TEST_SERVER = "siesta.cs.wustl.edu";
- public static final int DEFAULT_TEST_SERVER_PORT = 7787;
- public static final String DEFAULT_JAWS_SERVER = "siesta.cs.wustl.edu";
- public static final int DEFAULT_JAWS_SERVER_PORT = 5432;
-
- public Tester (String testInFile,
- ImageApp parent)
- {
- this.testInFile_ = testInFile;
- this.parent_ = parent;
- }
-
- public void initialize ()
- {
- System.out.println ("Initializing tester...");
-
- // Get the hostname of the test server
- this.server_ = this.parent_.getParameter ("testServer");
- if (this.server_ == null)
- this.server_ = DEFAULT_TEST_SERVER;
-
- // Get the port number of the test server
- String testPortString = this.parent_.getParameter ("testPort");
- if (testPortString == null)
- this.port_ = DEFAULT_TEST_SERVER_PORT;
- else
- this.port_ = (new Integer (testPortString)).intValue ();
-
- // Get the hostname of the JAWS server
- this.JAWSServer_ = this.parent_.getParameter ("JAWSServer");
- if (this.JAWSServer_ == null)
- this.JAWSServer_ = DEFAULT_JAWS_SERVER;
-
- // Get the port number of the JAWS server
- String JAWSPortString = this.parent_.getParameter ("JAWSPort");
- if (JAWSPortString == null)
- this.JAWSServerPort_ = DEFAULT_JAWS_SERVER_PORT;
- else
- this.JAWSServerPort_ = (new Integer (JAWSPortString)).intValue ();
-
- System.out.println ("Test Input File: " + this.testInFile_);
- System.out.println ("Test Server: " + this.server_ + "\tPort: " + this.port_);
- System.out.println ("JAWS Server: " + this.JAWSServer_ + "\tPort: " + this.JAWSServerPort_);
-
- // Run in your own thread of control
- (new Thread (this)).start ();
- }
-
- public void run ()
- {
- this.setupConnection (this.getImages ());
- }
-
- private String getImages ()
- {
- URL inputURL;
- String imageList = null;
- try
- {
- // Create input URL
- inputURL = new URL (this.testInFile_);
-
- // Get the input stream and pipe it to a DataInputStream
- DataInputStream iStream = new DataInputStream (inputURL.openStream ());
-
- // Create a buffer to hold all the data we get
- StringBuffer tempBuf = new StringBuffer ();
- // Keep reading the data until we are done
- String tempString = iStream.readLine ();
- while (tempString != null)
- {
- tempBuf.append (tempString);
- tempBuf.append (" ");
- tempString = iStream.readLine ();
- }
- imageList = tempBuf.toString ();
- }
- catch (MalformedURLException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- return imageList;
- }
-
- private void setupConnection (String imageList)
- {
- // First try to connect to the server. If the server is not
- // running then we will write to standard output.
-
- // Create a handler which will handle our connection.
- TestHandler handler = new TestHandler (imageList,
- this.JAWSServer_, this.JAWSServerPort_,
- this.parent_);
- try
- {
- Connector connector = new Connector ();
- connector.open (server_, port_);
- connector.connect (handler);
- }
- catch (UnknownHostException e)
- {
- ACE.ERROR (e);
- }
- catch (SocketException e)
- {
- System.out.println ("Test Server not running! Writing to standard out...");
- // The server is not running so write all the output to screen
- handler.doTesting ();
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- private String testInFile_ = null;
- private ImageApp parent_ = null;
- private String server_ = "siesta.cs.wustl.edu";
- private int port_ = 7787;
-
- private String JAWSServer_ = "siesta.cs.wustl.edu";
- private int JAWSServerPort_ = 5432;
-}
-
diff --git a/java/ImageProcessing/framework/doc01.gif b/java/ImageProcessing/framework/doc01.gif
deleted file mode 100644
index 51262529f6d..00000000000
--- a/java/ImageProcessing/framework/doc01.gif
+++ /dev/null
Binary files differ
diff --git a/java/ImageProcessing/framework/file03.gif b/java/ImageProcessing/framework/file03.gif
deleted file mode 100644
index c98654c604b..00000000000
--- a/java/ImageProcessing/framework/file03.gif
+++ /dev/null
Binary files differ
diff --git a/java/ImageProcessing/framework/filter.conf b/java/ImageProcessing/framework/filter.conf
deleted file mode 100644
index 2e90ea136ce..00000000000
--- a/java/ImageProcessing/framework/filter.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-imaging.filters.EmbossFilter
-imaging.filters.BleachFilter
-imaging.filters.BlurFilter
-imaging.filters.DarkenFilter
-imaging.filters.DeSpeckleFilter
-imaging.filters.EdgeDetectFilter
-imaging.filters.OilPaintFilter
-imaging.filters.PixelizeFilter
-imaging.filters.RotateFilter
-imaging.filters.SharpenFilter
-imaging.filters.SpreadFilter
-
-
-
-
diff --git a/java/ImageProcessing/framework/help.conf b/java/ImageProcessing/framework/help.conf
deleted file mode 100644
index 8a07e2867d9..00000000000
--- a/java/ImageProcessing/framework/help.conf
+++ /dev/null
@@ -1,216 +0,0 @@
- MedJava
- ~~~~~~~
-
-Overview
---------
-
-MedJava is a prototype of a large scale distributed medical imaging
-system. It has been developed using Java, in particular, several
-components of Java ACE.
-
-Here are the key features of the MedJava toolkit:
-
-* Images can be both downloaded and uploaded across the network.
-* Images can be uploaded to Web servers that support HTTP PUT
- functionality (for example, JAWS).
-* The tool contains more than a dozen image filters to do image
- processing.
-* The image filters can be configured into the system dynamically
- using the Service Configurator pattern.
-
-Please send comments/suggestions to Prashant Jain (pjain@cs.wustl.edu).
-
-======================================================================
-Getting Started
----------------
-
-MedJava applet can be configured with several (optional) parameters
-via the HTML file from which the applet is invoked. Here is a list of
-the parameters:
-
-Note:
- 1) * indicates test-mode parameters
- 2) All Default URLs begin with
- http://www.cs.wustl.edu/~pjain/java/ACE_wrappers/java/ImageProcessing/framework/
-
-<START>
-Name
-<TAB>
-<TAB>
-Description
-<TAB>
-<TAB>
-<TAB>
-<TAB>
-Default
-<P>
---------------------------------------------------------------
-<P>
-configFile
-<TAB>
-<TAB>
-Specifies a URL that points to the filter
-<P>
-<TAB>
-<TAB>
-configuration file.
-<TAB>
-<TAB>
-<TAB>
-<TAB>
-<TAB>
-filter.conf
-<P>
-<P>
-*testFile
-<TAB>
-<TAB>
-Specifies a URL that points to the file that contains
-<P>
-<TAB>
-<TAB>
-a list of images that need to be tested.
-<TAB>
-<TAB>
-<TAB>
-testImages.conf
-<P>
-<P>
-*testServer
-<TAB>
-Specifies the name of the test server.
-<TAB>
-<TAB>
-<TAB>
-siesta.cs.wustl.edu
-<P>
-<P>
-*testPort
-<TAB>
-<TAB>
-Specifies the port number of the test server.
-<TAB>
-<TAB>
-<TAB>
-7789
-<P>
-<P>
-*JAWSServer
-<TAB>
-Specifies the name of the server to use in
-<P>
-<TAB>
-<TAB>
-doing image uploading during testing.
-<TAB>
-<TAB>
-<TAB>
-siesta.cs.wustl.edu
-<P>
-<P>
-*JAWSPort
-<TAB>
-Specifies the port number of the server to use
-<P>
-<TAB>
-<TAB>
-in doing image uploading during testing.
-<TAB>
-<TAB>
-<TAB>
-5432
-<P>
-======================================================================
-<END>
-
-Menu
-----
-
-o Open URL
-
- Allows user to specify a URL. If the URL points to an image that is
- readable, then the image is downloaded and displayed in the view
- panel.
-
- If the URL points to a directory that is readable then a window
- appears displaying a list of files in that directory. The user can
- then click on an image file in this window to fetch an image.
-
- IMPORTANT NOTE: If the URL points to a directory, the directory must
- not contain an "index.html" file! If it does, the
- query will fail and no list of files will appear.
-
-o Save
-
- Allows user to specify a URL to save the currently loaded image to.
- All images are saved in GIF format. Note that saving/uploading a
- file can take a while depending upon the size of the image. This is
- because, the tool first generates the GIF format and then sends the
- bytes across the network.
-
- IMPORTANT NOTE: The Web server must support image uploading, that is
- HTTP PUT functionality. Also, due to applet
- restrictions, the server MUST be running on the same
- host from which the applet was downloaded from.
-
-o Reset
-
- Resets the image to the original. Note that the effects of any
- filters that were applied to the image will be lost.
-
-o Reload Filters
-
- Reads the filter configuration file again and reloads all the image
- filters. Note that this serves as the trigger of the Service
- Configurator pattern allowing the tool to reconfigure based on new
- configuration information.
-
- The filters are specified in filter.conf. To add/remove filters,
- change this file and then select "Reload Filters".
-
- To specify a different configuration file, please see "Getting Started".
-
-o Zoom In
-
- Zooms in to the currently displayed image. Note that the applet only
- allows to zoom in 4 x times.
-
-o Zoom Out
-
- Zooms out of the currently displayed image. Note that the applet
- only allows to zoom out 1/4 x times.
-
-o Apply
-
- Apply the currently selected filter. By default no filter is
- selected. Note that applying a filter to an image can taken
- anywhere between a few seconds to a few minutes depending upon the
- image size, the filter type, and the speed of the machine on which
- the applet is running.
-
-o Filters:
-
- Allows the user to select a filter from the ones that have been
- configured into the applet. Note that this is a choice menu and its
- entries depend upon the filters that were specified in the filter
- configuration file.
-
- For more information, on how to specify the filters, please see
- "Getting Started".
-
-o About
-
- Displays the "About" dialog containing the version of the MedJava
- applet.
-
-o Help
-
- Displays this window
-
-======================================================================
-
-Limitations
------------
-
-In several browsers, for images larger than 100 KB, the Java virtual
-machine may run out of memory while doing image processing.
diff --git a/java/ImageProcessing/framework/test.html b/java/ImageProcessing/framework/test.html
deleted file mode 100644
index 4c0c080bbfa..00000000000
--- a/java/ImageProcessing/framework/test.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<HTML>
-<!-- $Id$ -->
-
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#888888">
-
-<HR>
-<APPLET CODEBASE="../../classes" CODE="imaging.framework.ImageApp.class" width=700 height=700>
-<param name=configFile value="http://www.cs.wustl.edu/~pjain/java/ACE_wrappers/java/ImageProcessing/framework/testFilter.conf">
-<param name=testFile value="http://www.cs.wustl.edu/~pjain/java/ACE_wrappers/java/ImageProcessing/framework/testImages.conf">
-<param name=testServer value="siesta.cs.wustl.edu">
-<param name=testPort value="7789">
-<param name=JAWSServer value="siesta.cs.wustl.edu">
-<param name=JAWSPort value="5432">
-</APPLET>
-<HR>
-
-</HTML>
diff --git a/java/ImageProcessing/framework/testFilter.conf b/java/ImageProcessing/framework/testFilter.conf
deleted file mode 100644
index 2e90ea136ce..00000000000
--- a/java/ImageProcessing/framework/testFilter.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-imaging.filters.EmbossFilter
-imaging.filters.BleachFilter
-imaging.filters.BlurFilter
-imaging.filters.DarkenFilter
-imaging.filters.DeSpeckleFilter
-imaging.filters.EdgeDetectFilter
-imaging.filters.OilPaintFilter
-imaging.filters.PixelizeFilter
-imaging.filters.RotateFilter
-imaging.filters.SharpenFilter
-imaging.filters.SpreadFilter
-
-
-
-
diff --git a/java/JACE/ASX/IOCntlCmds.java b/java/JACE/ASX/IOCntlCmds.java
deleted file mode 100644
index 3cc7c76256d..00000000000
--- a/java/JACE/ASX/IOCntlCmds.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TaskFlags.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * Constants used for IOCTL messages.
- *
- *@see JACE.ASX.IOCntlMsg
- */
-public abstract class IOCntlCmds
-{
- /** Set the low water mark. */
- public static final int SET_LWM = 1;
-
- /** Get the low water mark. */
- public static final int GET_LWM = 2;
-
- /** Set the high water mark. */
- public static final int SET_HWM = 3;
-
- /** Get the high water mark. */
- public static final int GET_HWM = 4;
-
- /** Link modules */
- public static final int MOD_LINK = 5;
-
- /** Unlink modules */
- public static final int MOD_UNLINK = 6;
-}
diff --git a/java/JACE/ASX/IOCntlMsg.java b/java/JACE/ASX/IOCntlMsg.java
deleted file mode 100644
index 4eea18b36f6..00000000000
--- a/java/JACE/ASX/IOCntlMsg.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * IOCntlMsg.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * Data format for IOCTL messages.
- */
-public class IOCntlMsg
-{
-
- // = Initialization method.
-
- /*
- * Initialize the control message.
- *@param c IOCntlCmd for the control message. Note that this should
- * be of type IOCntlCmds
- */
- public IOCntlMsg (int c)
- {
- this.cmd_ = c;
- }
-
- // = Get/set methods
-
- /*
- * Get the command.
- *@return the command.
- */
- public int cmd ()
- {
- return this.cmd_;
- }
-
- /*
- * Set the command.
- *@param c the command.
- */
- public void cmd (int c)
- {
- this.cmd_ = c;
- }
-
- /*
- * Get the count.
- *@return the count.
- */
- public int count ()
- {
- return this.count_;
- }
-
- /*
- * Set the count.
- *@param c the count.
- */
- public void count (int c)
- {
- this.count_ = c;
- }
-
- /*
- * Get the error.
- *@return the error.
- */
- public int error ()
- {
- return this.error_;
- }
-
- /*
- * Set the error.
- *@param e the error.
- */
- public void error (int e)
- {
- this.error_ = e;
- }
-
- /*
- * Get the return value.
- *@return the return value.
- */
- public int rval ()
- {
- return this.rval_;
- }
-
- /*
- * Set the return value.
- *@param r the return value.
- */
- public void rval (int r)
- {
- this.rval_ = r;
- }
-
- public String toString ()
- {
- return (new Integer (this.cmd_)).toString ();
- }
-
- private int cmd_;
- // Command.
-
- private int count_;
- // Count.
-
- private int error_;
- // Error.
-
- private int rval_;
- // Return value
-}
diff --git a/java/JACE/ASX/MessageBlock.java b/java/JACE/ASX/MessageBlock.java
deleted file mode 100644
index 4035e34a7bd..00000000000
--- a/java/JACE/ASX/MessageBlock.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * MessageBlock.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * Object used to store messages in the ASX framework.<P>
- *
- * <tt>MessageBlock</tt> is modeled after the message data structures
- * used in System V STREAMS. A <tt>MessageBlock</tt> is composed of
- * one or more <tt>MessageBlock</tt>s that are linked together by
- * <em>PREV</em> and <em>NEXT</em> pointers. In addition, a
- * <tt>MessageBlock</tt> may also be linked to a chain of other
- * <tt>MessageBlock</tt>s. This structure enables efficient manipulation
- * of arbitrarily-large messages <em>without</em> incurring memory
- * copying overhead.
- *
- *@see MessageQueue
- */
-public class MessageBlock
-{
- /**
- * Create an empty Message Block
- */
- public MessageBlock ()
- {
- this (0);
- }
-
- /**
- * Create an empty Message Block.
- * Note that this assumes that type of MessageBlock is MB_DATA.
- *@param size size of the Message Block to create.
- */
- public MessageBlock (int size)
- {
- // Note the explicit cast toString() is needed. For some strange
- // reason, it fails otherwise if size == 0.
- this ((new StringBuffer (size)).toString ());
- }
-
- /**
- * Create a Message Block. Note that this assumes that type of
- * MessageBlock is MB_DATA.
- *@param data initial data to create a Message Block with.
- */
- public MessageBlock (String data)
- {
- this (MessageType.MB_DATA,
- null,
- data);
- }
-
- /**
- * Create a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param data initial data to create Message Block with
- */
- public MessageBlock (int type,
- MessageBlock cont,
- String data)
- {
- this.flags_ = 0;
- this.priority_ = 0;
- this.next_ = null;
- this.prev_ = null;
-
- this.init (type, cont, data);
- }
-
- /**
- * Create a Message Block. Note that this assumes that type of
- * MessageBlock is MB_OBJECT.
- *@param obj initial object to create a Message Block with.
- */
- public MessageBlock (Object obj)
- {
- this (MessageType.MB_OBJECT,
- null,
- obj);
- }
-
- /**
- * Create a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param obj initial object to create Message Block with
- */
- public MessageBlock (int type,
- MessageBlock cont,
- Object obj)
- {
- this.init (type, cont, obj);
- }
-
- /* Initialize the Message Block
- *@param data data to initialize Message Block with
- */
- public void init (String data)
- {
- this.base_ = new StringBuffer (data);
- }
-
- /**
- * Initialize a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param data data to initialize Message Block with
- */
- public void init (int msgType,
- MessageBlock msgCont,
- String data)
- {
- if (data.length () == 0)
- this.base_ = new StringBuffer (0);
- else
- this.base_ = new StringBuffer (data);
- this.type_ = msgType;
- this.cont_ = msgCont;
- }
-
- /**
- * Initialize a Message Block. Note that this assumes that type of
- * MessageBlock is MB_OBJECT.
- *@param obj initial object to initialize a Message Block with.
- */
- public void init (Object obj)
- {
- this.init (MessageType.MB_OBJECT, null, obj);
- }
-
- /**
- * Initialize a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param obj object to initialize Message Block with
- */
- public void init (int msgType,
- MessageBlock msgCont,
- Object obj)
- {
- this.obj_ = obj;
- this.type_ = msgType;
- this.cont_ = msgCont;
- this.flags_ = 0;
- this.priority_ = 0;
- this.next_ = null;
- this.prev_ = null;
- }
-
- /**
- * Set message flags. Note that the flags will be set on top of
- * already set flags.
- *@param moreFlags flags to set for the Message Block.
- */
- public long setFlags (long moreFlags)
- {
- // Later we might mask more_flags so that user can't change
- // internal ones: more_flags &= ~(USER_FLAGS -1).
- this.flags_ = ACE.SET_BITS (this.flags_, moreFlags);
- return this.flags_;
- }
-
- /**
- * Unset message flags.
- *@param lessFlags flags to unset for the Message Block.
- */
- public long clrFlags (long lessFlags)
- {
- // Later we might mask more_flags so that user can't change
- // internal ones: less_flags &= ~(USER_FLAGS -1).
- this.flags_ = ACE.CLR_BITS (this.flags_, lessFlags);
- return this.flags_;
- }
-
- /**
- * Get the message flags.
- *@return Message flags
- */
- public long flags ()
- {
- return this.flags_;
- }
-
- /**
- * Get the type of the message.
- *@return message type
- */
- public int msgType ()
- {
- return this.type_;
- }
-
- /**
- * Set the type of the message.
- *@param t type of the message
- */
- public void msgType (int t)
- {
- this.type_ = t;
- }
-
- /**
- * Get the class of the message. Note there are two classes,
- * <normal> messages and <high-priority> messages.
- *@return message class
- */
- public int msgClass ()
- {
- return this.msgType () >= MessageType.MB_PRIORITY
- ? MessageType.MB_PRIORITY : MessageType.MB_NORMAL;
- }
-
- /**
- * Find out if the message is a data message.
- *@return true if message is a data message, false otherwise
- */
- public boolean isDataMsg ()
- {
- int mt = this.msgType ();
- return mt == MessageType.MB_DATA
- || mt == MessageType.MB_PROTO
- || mt == MessageType.MB_PCPROTO;
- }
-
- /**
- * Find out if the message is an object message.
- *@return true if message is an object message, false otherwise
- */
- public boolean isObjMsg ()
- {
- int mt = this.msgType ();
- return mt == MessageType.MB_OBJECT
- || mt == MessageType.MB_PROTO
- || mt == MessageType.MB_PCPROTO;
- }
-
- /**
- * Get the priority of the message.
- *@return message priority
- */
- public long msgPriority ()
- {
- return this.priority_;
- }
-
- /**
- * Set the priority of the message.
- *@param pri priority of the message
- */
- public void msgPriority (long pri)
- {
- this.priority_ = pri;
- }
-
- /**
- * Get message data. This assumes that msgType is MB_DATA.
- *@return message data
- */
- public String base ()
- {
- // Create a String object to return
- char temp[] = new char [this.base_.length ()];
- this.base_.getChars (0, this.base_.length (), temp, 0);
- return new String (temp);
- }
-
- /**
- * Set the message data. This assumes that msgType is MB_DATA.
- *@param data message data
- *@param msgFlags message flags
- */
- public void base (String data,
- long msgFlags)
- {
- this.base_ = new StringBuffer (data);
- this.flags_ = msgFlags;
- }
-
- /**
- * Get message object. This assumes that msgType is MB_OBJECT.
- *@return message object
- */
- public Object obj ()
- {
- return this.obj_;
- }
-
- /**
- * Set the message object. This assumes that msgType is MB_OBJECT.
- *@param object message object
- *@param msgFlags message flags
- */
- public void obj (Object obj,
- long msgFlags)
- {
- this.obj_ = obj;
- this.flags_ = msgFlags;
- }
-
- // = The following four methods only make sense if the Message_Block
- // is of type MB_DATA and not MB_OBJECT.
-
- /**
- * Get length of the message. This method only makes sense if the
- * MessageBlock is of type MB_DATA and not MB_OBJECT.
- *@return length of the message.
- */
- public int length ()
- {
- return this.base_.length ();
- }
-
- /**
- * Set the length of the message. This method only makes sense if the
- * MessageBlock is of type MB_DATA and not MB_OBJECT.
- *@param n message length
- */
- public void length (int n)
- {
- this.base_.setLength (n);
- }
-
- /**
- * Get size of the allocated buffer for the message. This method
- * only makes sense if the MessageBlock is of type MB_DATA and not
- * MB_OBJECT.
- *@return size of the message buffer
- */
- public int size ()
- {
- return this.base_.capacity ();
- }
-
- /**
- * Set the total size of the buffer. This method will grow the
- * buffer if need be. Also, this method only makes sense if the
- * MessageBlock is of type MB_DATA and not MB_OBJECT.
- *@param n size of message buffer
- */
- public void size (int n)
- {
- this.base_.ensureCapacity (n);
- }
-
-
- /**
- * Get the continuation field. The coninuation field is used to
- * chain together composite messages.
- *@return the continuation field
- */
- public MessageBlock cont ()
- {
- return this.cont_;
- }
-
- /**
- * Set the continuation field. The coninuation field is used to
- * chain together composite messages.
- *@param msgCont continuation field
- */
- void cont (MessageBlock msgCont)
- {
- this.cont_ = msgCont;
- }
-
- /**
- * Get link to next message. The next message points to the
- * <MessageBlock> directly ahead in the MessageQueue.
- *@return next message block
- */
- MessageBlock next ()
- {
- return this.next_;
- }
-
- /**
- * Set link to next message. The next message points to the
- * <MessageBlock> directly ahead in the MessageQueue.
- *@param msgBlock next message block
- */
- void next (MessageBlock msgBlock)
- {
- this.next_ = msgBlock;
- }
-
- /**
- * Get link to previous message. The previous message points to the
- * <MessageBlock> directly before in the MessageQueue.
- *@return previous message block
- */
- MessageBlock prev ()
- {
- return this.prev_;
- }
-
- /**
- * Set link to previous message. The previous message points to the
- * <MessageBlock> directly before in the MessageQueue.
- *@param msgBlock previous message block
- */
- void prev (MessageBlock msgBlock)
- {
- this.prev_ = msgBlock;
- }
-
- private int type_;
- // Type of message.
-
- private long flags_;
- // Misc flags.
-
- private long priority_;
- // Priority of message.
-
- private StringBuffer base_;
- // String data of message block (initialized to null).
-
- private Object obj_;
- // Object data of message block (initialized to null).
-
- private MessageBlock cont_;
- // Next message block in the chain.
-
- private MessageBlock next_;
- // Next message in the list.
-
- private MessageBlock prev_;
- // Previous message in the list.
-
-}
-
diff --git a/java/JACE/ASX/MessageQueue.java b/java/JACE/ASX/MessageQueue.java
deleted file mode 100644
index df25870dd52..00000000000
--- a/java/JACE/ASX/MessageQueue.java
+++ /dev/null
@@ -1,633 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * MessageQueue.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import java.util.Date;
-import JACE.OS.*;
-import JACE.Reactor.*;
-
-class NotFullCondition extends TimedWait
-{
- public NotFullCondition (MessageQueue mq)
- {
- super (mq);
- this.mq_ = mq;
- }
-
- public boolean condition () {
- // Delegate to the appropriate conditional
- // check on the MessageQueue.
- return !this.mq_.isFull ();
- }
- private MessageQueue mq_;
-}
-
-class NotEmptyCondition extends TimedWait
-{
- public NotEmptyCondition (MessageQueue mq)
- {
- super (mq);
- this.mq_ = mq;
- }
-
- public boolean condition () {
- // Delegate to the appropriate conditional
- // check on the MessageQueue.
- return !this.mq_.isEmpty ();
- }
- private MessageQueue mq_;
-}
-
-
-/**
- * A thread-safe message queueing facility, modeled after the
- * queueing facilities in System V StreamS. <P>
- *
- * <tt>MessageQueue</tt> is the central queueing facility for messages
- * in the ASX framework. All operations are thread-safe, as it is intended
- * to be used for inter-thread communication (<em>e.g.</em>, a producer and
- * consumer thread joined by a <tt>MessageQueue</tt>). The queue
- * consists of <tt>MessageBlock</tt>s.
- *</blockquote>
- *
- *@see MessageBlock
- *@see TimeValue
- */
-public class MessageQueue
-{
- /**
- * Default constructor
- */
- public MessageQueue ()
- {
- this (DEFAULT_HWM, DEFAULT_LWM);
- }
-
- /**
- * Create a Message Queue with high and low water marks.
- *@param hwm High water mark (max number of bytes allowed in the
- * queue)
- *@param lwm Low water mark (min number of bytes in the queue)
- */
- public MessageQueue (int hwm, int lwm)
- {
- if (this.open (hwm, lwm) == -1)
- ACE.ERROR ("open");
- }
-
- /**
- * Initialize a Message Queue with high and low water marks.
- *@param hwm High water mark (max number of bytes allowed in the
- * queue)
- *@param lwm Low water mark (min number of bytes in the queue)
- */
- public synchronized int open (int hwm, int lwm)
- {
- this.highWaterMark_ = hwm;
- this.lowWaterMark_ = lwm;
- this.deactivated_ = false;
- this.currentBytes_ = 0;
- this.currentCount_ = 0;
- this.tail_ = null;
- this.head_ = null;
- return 0;
- }
-
- // ************ Note! ***********
- // = For enqueue, enqueueHead, enqueueTail, and dequeueHead if
- // timeout is specified, the caller will wait until the *absolute time*
- // tv. Calls will return, however, when queue is closed,
- // deactivated, or if it is past the time tv
-
- /**
- * Enqueue a <MessageBlock> into the <MessageQueue> in accordance
- * with its <msgPriority> (0 is lowest priority). Note that the
- * call will block (unless the queue has been deactivated).
- *
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- *@param newItem item to enqueue onto the Message Queue
- *@return -1 on failure, else the number of items still on the queue.
- */
- public synchronized int enqueue (MessageBlock newItem) throws InterruptedException
- {
- return this.enqueue (newItem, null);
- }
-
- /**
- * Enqueue a <MessageBlock> into the <MessageQueue> in accordance
- * with its <msgPriority> (0 is lowest priority). Note that the
- * call will return if the queue has been deactivated or it is
- * later than the specified absolute time value.
- *@param newItem item to enqueue onto the Message Queue
- *@param tv absolute TimeValue to timeout after
- *@return -1 on failure, else the number of items still on the
- * queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueue (MessageBlock newItem,
- TimeValue tv) throws InterruptedException
- {
- int result = -1;
- if (this.deactivated_)
- return -1;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notFullCondition_.timedWait ();
- else // Need to do a timed wait
- notFullCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return -1;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return -1;
- else
- result = this.enqueueInternal (newItem);
-
- // Tell any blocked threads that the queue has a new item!
- this.notEmptyCondition_.broadcast ();
- return result;
- }
-
- /**
- * Enqueue a <MessageBlock> at the end of the <MessageQueue>. Note
- * that the call will block (unless the queue has been deactivated).
- *@param newItem item to enqueue onto the Message Queue
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueTail (MessageBlock newItem) throws InterruptedException
- {
- return this.enqueueTail (newItem, null);
- }
-
- /**
- * Enqueue a <MessageBlock> at the end of the <MessageQueue>. Note
- * that the call will return when it's later than the given TimeValue or
- * if the queue has been deactivated.
- *@param newItem item to enqueue onto the Message Queue
- *@param tv absolute TimeValue to wait until before returning (unless
- * the operation compeltes before this time)
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueTail (MessageBlock newItem,
- TimeValue tv) throws InterruptedException
- {
- int result = -1;
- if (this.deactivated_)
- return -1;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notFullCondition_.timedWait ();
- else // Need to do a timed wait
- notFullCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return -1;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return -1;
- else
- result = this.enqueueTailInternal (newItem);
-
- // Tell any blocked threads that the queue has a new item!
- this.notEmptyCondition_.broadcast ();
- return result;
- }
-
- /**
- * Enqueue a <MessageBlock> at the head of the <MessageQueue>. Note
- * that the call will block (unless the queue has been deactivated).
- *@param newItem item to enqueue onto the Message Queue
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueHead (MessageBlock newItem) throws InterruptedException
- {
- return this.enqueueHead (newItem, null);
- }
-
- /**
- * Enqueue a <MessageBlock> at the head of the <MessageQueue>. Note
- * that the call will return when it's later than the given TimeValue or
- * if the queue has been deactivated.
- *@param newItem item to enqueue onto the Message Queue
- *@param tv absolute TimeValue to wait until before returning (unless
- * the operation completes before that time)
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueHead (MessageBlock newItem,
- TimeValue tv) throws InterruptedException
- {
- int result = -1;
- if (this.deactivated_)
- return -1;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notFullCondition_.timedWait ();
- else // Need to do a timed wait
- notFullCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return -1;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return -1;
- else
- result = this.enqueueHeadInternal (newItem);
-
- // Tell any blocked threads that the queue has a new item!
- this.notEmptyCondition_.broadcast ();
- return result;
- }
-
- /**
- * Dequeue and return the <MessageBlock> at the head of the
- * <MessageQueue>. Note that the call will block (unless the queue
- * has been deactivated).
- *@return null on failure, else the <MessageBlock> at the head of queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized MessageBlock dequeueHead () throws InterruptedException
- {
- return this.dequeueHead (null);
- }
-
- /**
- * Dequeue and return the <MessageBlock> at the head of the
- * <MessageQueue>. Note that the call when return if the queue has
- * been deactivated or when the current time is later than the given
- * time value.
- *@param tv absolute time timeout (blocks indefinitely if null)
- *@return null on failure, else the <MessageBlock> at the head of queue.
- *@exception InterruptedException Interrupted while accessing queue
- */
- public synchronized MessageBlock dequeueHead (TimeValue tv)
- throws InterruptedException
- {
- MessageBlock result = null;
- if (this.deactivated_)
- return null;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notEmptyCondition_.timedWait ();
- else // Need to do a timed wait
- notEmptyCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return null;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return null;
- else
- result = this.dequeueHeadInternal ();
-
- // Tell any blocked threads that the queue has room for an item!
- this.notFullCondition_.broadcast ();
- return result;
- }
-
- /**
- * Check if queue is full.
- *@return true if queue is full, else false.
- */
- public synchronized boolean isFull ()
- {
- return this.isFullInternal ();
- }
-
- /**
- * Check if queue is empty.
- *@return true if queue is empty, else false.
- */
- public synchronized boolean isEmpty ()
- {
- return this.isEmptyInternal ();
- }
-
- /**
- * Get total number of bytes on the queue.
- *@return total number number of bytes on the queue
- */
- public int messageBytes ()
- {
- return this.currentBytes_;
- }
-
- /**
- * Get total number of messages on the queue.
- *@return total number number of messages on the queue
- */
- public int messageCount ()
- {
- return this.currentCount_;
- }
-
- // = Flow control routines
-
- /**
- * Get high watermark.
- *@return high watermark
- */
- public int highWaterMark ()
- {
- return this.highWaterMark_;
- }
-
- /**
- * Set high watermark.
- *@param hwm high watermark
- */
- public void highWaterMark (int hwm)
- {
- this.highWaterMark_ = hwm;
- }
-
- /**
- * Get low watermark.
- *@return low watermark
- */
- public int lowWaterMark ()
- {
- return this.lowWaterMark_;
- }
-
- /**
- * Set low watermark.
- *@param lwm low watermark
- */
- public void lowWaterMark (int lwm)
- {
- this.lowWaterMark_ = lwm;
- }
-
- // = Activation control methods.
-
- /**
- * Deactivate the queue and wakeup all threads waiting on the queue
- * so they can continue. No messages are removed from the queue,
- * however. Any other operations called until the queue is
- * activated again will immediately return -1.
- *@return WAS_INACTIVE if queue was inactive before the call and
- * WAS_ACTIVE if queue was active before the call.
- */
- public synchronized int deactivate ()
- {
- return this.deactivateInternal ();
- }
-
-
- /**
- * Reactivate the queue so that threads can enqueue and dequeue
- * messages again.
- *@return WAS_INACTIVE if queue was inactive before the call and
- * WAS_ACTIVE if queue was active before the call.
- */
- public synchronized int activate ()
- {
- return this.activateInternal ();
- }
-
- protected boolean isEmptyInternal ()
- {
- // Not sure about this one!!!!
- return this.currentBytes_ <= this.lowWaterMark_ && this.currentCount_ <= 0;
- }
-
- protected boolean isFullInternal ()
- {
- return this.currentBytes_ > this.highWaterMark_;
- }
-
- protected int deactivateInternal ()
- {
- int currentStatus =
- this.deactivated_ ? WAS_INACTIVE : WAS_ACTIVE;
-
- this.notFullCondition_.broadcast ();
- this.notEmptyCondition_.broadcast ();
-
- this.deactivated_ = true;
- return currentStatus;
- }
-
- protected int activateInternal ()
- {
- int currentStatus =
- this.deactivated_ ? WAS_INACTIVE : WAS_ACTIVE;
- this.deactivated_ = false;
-
- return currentStatus;
- }
-
- protected int enqueueTailInternal (MessageBlock newItem)
- {
- if (newItem == null)
- return -1;
-
- // List was empty, so build a new one.
- if (this.tail_ == null)
- {
- this.head_ = newItem;
- this.tail_ = newItem;
- newItem.next (null);
- newItem.prev (null);
- }
- // Link at the end.
- else
- {
- newItem.next (null);
- this.tail_.next (newItem);
- newItem.prev (this.tail_);
- this.tail_ = newItem;
- }
-
- if (newItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to count *all* the bytes in a composite message!!!
- for (MessageBlock temp = newItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ += temp.size ();
- }
-
- this.currentCount_++;
- return this.currentCount_;
- }
-
- protected int enqueueHeadInternal (MessageBlock newItem)
- {
- if (newItem == null)
- return -1;
-
- newItem.prev (null);
- newItem.next (this.head_);
-
- if (this.head_ != null)
- this.head_.prev (newItem);
- else
- this.tail_ = newItem;
-
- this.head_ = newItem;
-
- if (newItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to count *all* the bytes in a composite message!!!
- for (MessageBlock temp = newItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ += temp.size ();
- }
-
- this.currentCount_++;
-
- return this.currentCount_;
- }
-
- protected int enqueueInternal (MessageBlock newItem)
- {
- if (newItem == null)
- return -1;
-
- if (this.head_ == null)
- // Check for simple case of an empty queue, where all we need to
- // do is insert <newItem> into the head.
- return this.enqueueHeadInternal (newItem);
- else
- {
- MessageBlock temp;
-
- // Figure out where the new item goes relative to its priority.
-
- for (temp = this.head_;
- temp != null;
- temp = temp.next ())
- {
- if (temp.msgPriority () <= newItem.msgPriority ())
- // Break out when we've located an item that has lower
- // priority that <newItem>.
- break;
- }
-
- if (temp == null)
- // Check for simple case of inserting at the end of the queue,
- // where all we need to do is insert <newItem> after the
- // current tail.
- return this.enqueueTailInternal (newItem);
- else if (temp.prev () == null)
- // Check for simple case of inserting at the beginning of the
- // queue, where all we need to do is insert <newItem> before
- // the current head.
- return this.enqueueHeadInternal (newItem);
- else
- {
- // Insert the message right before the item of equal or lower
- // priority.
- newItem.next (temp);
- newItem.prev (temp.prev ());
- temp.prev ().next (newItem);
- temp.prev (newItem);
- }
- }
-
- if (newItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to count *all* the bytes in a composite message!!!
- for (MessageBlock temp = newItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ += temp.size ();
- }
-
- this.currentCount_++;
- return this.currentCount_;
- }
-
- protected MessageBlock dequeueHeadInternal ()
- {
- MessageBlock firstItem = this.head_;
- this.head_ = this.head_.next ();
-
- if (this.head_ == null)
- this.tail_ = null;
-
- if (firstItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to subtract off all of the bytes associated with this
- // message.
- for (MessageBlock temp = firstItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ -= temp.size ();
- }
-
- this.currentCount_--;
- return firstItem;
- }
-
-
- /** Default high watermark (16 K). */
- public final static int DEFAULT_HWM = 16 * 1024;
-
- /** Default low watermark. */
- public final static int DEFAULT_LWM = 0;
-
- /** Message queue was active before activate() or deactivate(). */
- public final static int WAS_ACTIVE = 1;
-
- /** Message queue was inactive before activate() or deactivate(). */
- public final static int WAS_INACTIVE = 2;
-
- private int highWaterMark_;
- // Greatest number of bytes before blocking.
-
- private int lowWaterMark_;
- // Lowest number of bytes before unblocking occurs.
-
- private boolean deactivated_;
- // Indicates that the queue is inactive.
-
- private int currentBytes_;
- // Current number of bytes in the queue.
-
- private int currentCount_;
- // Current number of messages in the queue.
-
- private MessageBlock head_;
- // Head of Message_Block list.
-
- private MessageBlock tail_;
- // Tail of Message_Block list.
-
- // The Delegated Notification mechanisms.
- private NotFullCondition notFullCondition_ = new NotFullCondition (this);
- private NotEmptyCondition notEmptyCondition_ = new NotEmptyCondition (this);
-
-}
diff --git a/java/JACE/ASX/MessageType.java b/java/JACE/ASX/MessageType.java
deleted file mode 100644
index 97e33a6c6ba..00000000000
--- a/java/JACE/ASX/MessageType.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * MessageType.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * Message types used by MessageBlock. <P>
- *
- * Defines bit masks used to identify various types of messages.<P>
- *
- * This class is not intended to be instantiable.
- *
- *@see MessageBlock
- */
-public class MessageType
-{
- // = Data and protocol messages (regular and priority)
- /** regular data */
- public static final int MB_DATA = 0x01;
-
- /** protocol control */
- public static final int MB_PROTO = 0x02;
-
- /** regular data */
- public static final int MB_OBJECT = 0x09;
-
-
- // = Control messages (regular and priority)
- /** line break */
- public static final int MB_BREAK = 0x03;
-
- /** pass file pointer */
- public static final int MB_PASSFP = 0x04;
-
- /** post an event to an event queue */
- public static final int MB_EVENT = 0x05;
-
- /** generate process signal */
- public static final int MB_SIG = 0x06;
-
- /** ioctl; set/get params */
- public static final int MB_IOCTL = 0x07;
-
- /** set various stream head options */
- public static final int MB_SETOPTS = 0x08;
-
-
- // = Control messages (high priority; go to head of queue)
- /** acknowledge ioctl */
- public static final int MB_IOCACK = 0x81;
-
- /** negative ioctl acknowledge */
- public static final int MB_IOCNAK = 0x82;
-
- /** priority proto message */
- public static final int MB_PCPROTO = 0x83;
-
- /** generate process signal */
- public static final int MB_PCSIG = 0x84;
-
- /** generate read notification */
- public static final int MB_READ = 0x85;
-
- /** flush your queues */
- public static final int MB_FLUSH = 0x86;
-
- /** stop transmission immediately */
- public static final int MB_STOP = 0x87;
-
- /** restart transmission after stop */
- public static final int MB_START = 0x88;
-
- /** line disconnect */
- public static final int MB_HANGUP = 0x89;
-
- /** fatal error used to set u.u_error */
- public static final int MB_ERROR = 0x8a;
-
- /** post an event to an event queue */
- public static final int MB_PCEVENT = 0x8b;
-
-
- /** Normal priority messages */
- public static final int MB_NORMAL = 0x00;
-
- /** High priority control messages */
- public static final int MB_PRIORITY = 0x80;
-
- // Default private constructor to avoid instantiation
- private MessageType ()
- {
- }
-}
-
diff --git a/java/JACE/ASX/Module.java b/java/JACE/ASX/Module.java
deleted file mode 100644
index 2b80cd690c9..00000000000
--- a/java/JACE/ASX/Module.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * Module.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * Provides an abstraction for managing a bi-directional flow of
- * messages. <P>
- *
- * This is based on the Module concept in System V Streams,
- * which contains a pair of Tasks, one for handling upstream
- * processing, one for handling downstream processing.
- */
-public class Module
-{
- // = Initialization and termination methods.
-
- /**
- * Create an empty Module.
- */
- public Module ()
- {
- // Do nothing...
- this.name ("<unknown>");
- }
-
- /*
- * Create an initialized module.
- *@param modName identity of the module.
- *@param writerQ writer task of the module.
- *@param readerQ reader task of the module.
- *@param flags Module flags
- */
- public Module (String modName,
- Task writerQ,
- Task readerQ,
- Object flags)
- {
- this.open (modName, writerQ, readerQ, flags);
- }
-
- /*
- * Create an initialized module.
- *@param modName identity of the module.
- *@param writerQ writer task of the module.
- *@param readerQ reader task of the module.
- *@param flags Module flags
- */
- public void open (String modName,
- Task writerQ,
- Task readerQ,
- Object arg)
- {
- this.name (modName);
- this.arg_ = arg;
-
- if (writerQ == null)
- writerQ = new ThruTask ();
- if (readerQ == null)
- readerQ = new ThruTask ();
-
- this.reader (readerQ);
- this.writer (writerQ);
-
- // Setup back pointers.
- readerQ.module (this);
- writerQ.module (this);
- }
-
-
- /*
- * Set the writer task.
- *@param q the writer task
- */
- public void writer (Task q)
- {
- this.qPair_[1] = q;
- if (q != null)
- q.flags (ACE.CLR_BITS (q.flags (), TaskFlags.ACE_READER));
- }
-
- /*
- * Set the reader task.
- *@param q the reader task
- */
- public void reader (Task q)
- {
- this.qPair_[0] = q;
- if (q != null)
- q.flags (ACE.SET_BITS (q.flags (), TaskFlags.ACE_READER));
- }
-
- /*
- * Link this Module on top of Module.
- *@param m the module to link this on top of.
- */
- public void link (Module m)
- {
- this.next (m);
- this.writer ().next (m.writer ());
- m.reader ().next (this.reader ());
- }
-
- /*
- * Set and get pointer to sibling Task in Module.
- *@param orig the task to get the sibling for
- *@return the sibling of the task
- */
- public Task sibling (Task orig)
- {
- if (this.qPair_[0] == orig)
- return this.qPair_[1];
- else if (this.qPair_[1] == orig)
- return this.qPair_[0];
- else
- return null;
- }
-
- /*
- * Close down the module and its tasks.
- *@param flags Module flags
- *@return 0 on success, -1 on failure
- */
- public int close (long flags)
- {
- Task readerQ = this.reader ();
- Task writerQ = this.writer ();
- int result = 0;
-
- if (readerQ != null)
- {
- if (readerQ.close (flags) == -1)
- result = -1;
- readerQ.flush (flags);
- readerQ.next (null);
- }
-
- if (writerQ != null)
- {
- if (writerQ.close (flags) == -1)
- result = -1;
- writerQ.flush (flags);
- writerQ.next (null);
- }
-
- return result;
- }
-
- /*
- * Get the argument passed to tasks.
- *@return the argument passed to tasks.
- */
- public Object arg ()
- {
- return this.arg_;
- }
-
- /*
- * Set the argument to be passed to tasks.
- *@param a the argument to be passed to tasks.
- */
- public void arg (Object a)
- {
- this.arg_ = a;
- }
-
- /*
- * Get the name of the module.
- *@return the name of the module.
- */
- public String name ()
- {
- return this.name_;
- }
-
- /*
- * Set the name of the module.
- *@param n the name of the module.
- */
- public void name (String n)
- {
- this.name_ = n;
- }
-
- /*
- * Get the writer task of the module.
- *@return the writer task of the module.
- */
- public Task writer ()
- {
- return this.qPair_[1];
- }
-
- /*
- * Get the reader task of the module.
- *@return the reader task of the module.
- */
- public Task reader ()
- {
- return this.qPair_[0];
- }
-
- /*
- * Get the next pointer to the module above in the stream.
- *@return the next pointer to the module above in the stream.
- */
- public Module next ()
- {
- return this.next_;
- }
-
- /*
- * Set the next pointer to the module above in the stream.
- *@param m the next pointer to the module above in the stream.
- */
- public void next (Module m)
- {
- this.next_ = m;
- }
-
- private Task qPair_[] = new Task[2];
- // Pair of Tasks that form the "read-side" and "write-side" of the
- // ACE_Module partitioning.
-
- private String name_ = null;
- // Name of the ACE_Module.
-
- private Module next_;
- // Next ACE_Module in the stack.
-
- private Object arg_;
- // Argument passed through to the reader and writer task when they
- // are opened.
-
-}
-
diff --git a/java/JACE/ASX/Stream.java b/java/JACE/ASX/Stream.java
deleted file mode 100644
index 6a968714ab7..00000000000
--- a/java/JACE/ASX/Stream.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * Stream.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * This class is the primary abstraction for the ASX framework.
- * It is moduled after System V Stream. <P>
- *
- * A Stream consists of a stack of Modules, each of which
- * contains two Tasks.
- *
- *@see Module
- *@see Task
- */
-
-public class Stream
-{
-
- public Stream ()
- {
- this (null, null, null);
- }
-
- // Create a Stream consisting of <head> and <tail> as the Stream
- // head and Stream tail, respectively. If these are 0 then the
- // <ACE_Stream_Head> and <ACE_Stream_Tail> are used, respectively.
- // <arg> is the value past in to the open() methods of the tasks.
-
- public Stream (Object a,
- Module head,
- Module tail)
- {
- this.linkedUs_ = null;
- // this.final_close_ = this.lock_;
-
- if (this.open (a, head, tail) == -1)
- ACE.ERROR ("open" + head.name () + " " + tail.name ());
- }
-
- public int push (Module newTop)
- {
- if (this.pushModule (newTop,
- this.streamHead_.next (),
- this.streamHead_) == -1)
- return -1;
- else
- return 0;
- }
-
- // Note that the timeout tv is absolute time
- public int put (MessageBlock mb, TimeValue tv)
- {
- return this.streamHead_.writer ().put (mb, tv);
- }
-
- // Note that the timeout tv is absolute time
- public MessageBlock get (TimeValue tv) throws InterruptedException
- {
- return this.streamHead_.reader ().getq (tv);
- }
-
-// Return the "top" ACE_Module in a ACE_Stream, skipping over the
-// stream_head.
-
- public Module top ()
- {
- if (this.streamHead_.next () == this.streamTail_)
- return null;
- else
- return this.streamHead_.next ();
- }
-
-// Remove the "top" ACE_Module in a ACE_Stream, skipping over the
-// stream_head.
-
- public int pop (long flags)
- {
- if (this.streamHead_.next () == this.streamTail_)
- return -1;
- else
- {
- // Skip over the ACE_Stream head.
- Module top = this.streamHead_.next ();
- Module newTop = top.next ();
-
- this.streamHead_.next (newTop);
-
- // Close the top ACE_Module.
-
- top.close (flags);
-
- this.streamHead_.writer ().next (newTop.writer ());
- newTop.reader ().next (this.streamHead_.reader ());
-
- return 0;
- }
- }
-
-// Remove a named ACE_Module from an arbitrary place in the
-// ACE_Stream.
-
- public int remove (String name, long flags)
- {
- Module prev = null;
-
- for (Module mod = this.streamHead_;
- mod != null; mod = mod.next ())
- if (name.compareTo (mod.name ()) == 0)
- {
- if (prev == null) // Deleting ACE_Stream Head
- this.streamHead_.link (mod.next ());
- else
- prev.link (mod.next ());
-
- mod.close (flags);
- return 0;
- }
- else
- prev = mod;
-
- return -1;
- }
-
- public Module find (String name)
- {
- for (Module mod = this.streamHead_;
- mod != null;
- mod = mod.next ())
- if (name.compareTo (mod.name ()) == 0)
- return mod;
-
- return null;
- }
-
-// Actually push a module onto the stack...
-
- private int pushModule (Module newTop,
- Module currentTop,
- Module head)
- {
- Task ntReader = newTop.reader ();
- Task ntWriter = newTop.writer ();
- Task ctReader = null;
- Task ctWriter = null;
-
- if (currentTop != null)
- {
- ctReader = currentTop.reader ();
- ctWriter = currentTop.writer ();
- ctReader.next (ntReader);
- }
-
- ntWriter.next (ctWriter);
-
- if (head != null)
- {
- if (head != newTop)
- head.link (newTop);
- }
- else
- ntReader.next (null);
-
- newTop.next (currentTop);
-
- if (ntReader.open (newTop.arg ()) == -1)
- return -1;
-
- if (ntWriter.open (newTop.arg ()) == -1)
- return -1;
- return 0;
- }
-
- public synchronized int open (Object a,
- Module head,
- Module tail)
- {
- Task h1 = null, h2 = null;
- Task t1 = null, t2 = null;
-
- if (head == null)
- {
- h1 = new StreamHead ();
- h2 = new StreamHead ();
- head = new Module ("ACEStreamHead", h1, h2, a);
- }
-
- if (tail == null)
- {
- t1 = new StreamTail ();
- t2 = new StreamTail ();
- tail = new Module ("ACEStreamTail",
- t1, t2, a);
- }
-
- // Make sure *all* the allocation succeeded!
- if (h1 == null || h2 == null || head == null
- || t1 == null || t2 == null || tail == null)
- {
- // Close up!
- head.close (0);
- tail.close (0);
- return -1;
- }
-
- this.streamHead_ = head;
- this.streamTail_ = tail;
-
- if (this.pushModule (this.streamTail_,
- null, null) == -1)
- return -1;
- else if (this.pushModule (this.streamHead_,
- this.streamTail_,
- this.streamHead_) == -1)
- return -1;
- else
- return 0;
- }
-
- public synchronized int close (long flags)
- {
- if (this.streamHead_ != null
- && this.streamTail_ != null)
- {
- // Don't bother checking return value here.
- this.unlinkInternal ();
-
- int result = 0;
-
- // Remove and cleanup all the intermediate modules.
-
- while (this.streamHead_.next () != this.streamTail_)
- {
- if (this.pop (flags) == -1)
- result = -1;
- }
-
- // Clean up the head and tail of the stream.
- if (this.streamHead_.close (flags) == -1)
- result = -1;
- if (this.streamTail_.close (flags) == -1)
- result = -1;
-
- this.streamHead_ = null;
- this.streamTail_ = null;
-
- // Tell all threads waiting on the close that we are done.
- // this.final_close_.broadcast ();
- return result;
- }
- return 0;
- }
-
- public int control (int cmd, Object a) throws InterruptedException
- {
- IOCntlMsg ioc = new IOCntlMsg (cmd);
-
- // Create a data block that contains the user-supplied data.
- MessageBlock db =
- new MessageBlock (MessageType.MB_IOCTL,
- null,
- a);
-
- // Create a control block that contains the control field and a
- // pointer to the data block.
- MessageBlock cb =
- new MessageBlock (MessageType.MB_IOCTL,
- db,
- (Object) ioc);
-
- int result = 0;
-
- if (this.streamHead_.writer ().put (cb, null) == -1)
- result = -1;
- else if ((cb = this.streamHead_.reader ().getq (null)) == null)
- result = -1;
- else
- result = ((IOCntlMsg ) cb.obj ()).rval ();
-
- return result;
- }
-
-// Link two streams together at their bottom-most Modules (i.e., the
-// one just above the Stream tail). Note that all of this is premised
-// on the fact that the Stream head and Stream tail are non-NULL...
-// This must be called with locks held.
-
- private int linkInternal (Stream us)
- {
- this.linkedUs_ = us;
- // Make sure the other side is also linked to us!
- us.linkedUs_ = this;
-
- Module myTail = this.streamHead_;
-
- if (myTail == null)
- return -1;
-
- // Locate the module just above our Stream tail.
- while (myTail.next () != this.streamTail_)
- myTail = myTail.next ();
-
- Module otherTail = us.streamHead_;
-
- if (otherTail == null)
- return -1;
-
- // Locate the module just above the other Stream's tail.
- while (otherTail.next () != us.streamTail_)
- otherTail = otherTail.next ();
-
- // Reattach the pointers so that the two streams are linked!
- myTail.writer ().next (otherTail.reader ());
- otherTail.writer ().next (myTail.reader ());
- return 0;
- }
-
- public synchronized int link (Stream us)
- {
- return this.linkInternal (us);
- }
-
-// Must be called with locks held...
-
- private int unlinkInternal ()
- {
- // Only try to unlink if we are in fact still linked!
-
- if (this.linkedUs_ != null)
- {
- Module myTail = this.streamHead_;
-
- // Only relink if we still exist!
- if (myTail != null)
- {
- // Find the module that's just before our stream tail.
- while (myTail.next () != this.streamTail_)
- myTail = myTail.next ();
-
- // Restore the writer's next() link to our tail.
- myTail.writer ().next (this.streamTail_.writer ());
- }
-
- Module otherTail = this.linkedUs_.streamHead_;
-
- // Only fiddle with the other side if it in fact still remains.
- if (otherTail != null)
- {
- while (otherTail.next () != this.linkedUs_.streamTail_)
- otherTail = otherTail.next ();
-
- otherTail.writer ().next (this.linkedUs_.streamTail_.writer ());
-
- }
-
- // Make sure the other side is also aware that it's been unlinked!
- this.linkedUs_.linkedUs_ = null;
-
- this.linkedUs_ = null;
- return 0;
- }
- else
- return -1;
- }
-
- public synchronized int unlink ()
- {
- return this.unlinkInternal ();
- }
-
- public void dump ()
- {
- ACE.DEBUG ("-------- module links --------");
-
- for (Module mp = this.streamHead_; ; mp = mp.next ())
- {
- ACE.DEBUG ("module name = " + mp.name ());
- if (mp == this.streamTail_)
- break;
- }
-
- ACE.DEBUG ("-------- writer links --------");
-
- Task tp;
-
- for (tp = this.streamHead_.writer (); ; tp = tp.next ())
- {
- ACE.DEBUG ("writer queue name = " + tp.name ());
- tp.dump ();
- ACE.DEBUG ("-------\n");
- if (tp == this.streamTail_.writer ()
- || (this.linkedUs_ != null && tp == this.linkedUs_.streamHead_.reader ()))
- break;
- }
-
- ACE.DEBUG ("-------- reader links --------\n");
- for (tp = this.streamTail_.reader (); ; tp = tp.next ())
- {
- ACE.DEBUG ("reader queue name = " + tp.name ());
- tp.dump ();
- ACE.DEBUG ("-------\n");
- if (tp == this.streamHead_.reader ()
- || (this.linkedUs_ != null && tp == this.linkedUs_.streamHead_.writer ()))
- break;
- }
- }
-
- Module streamHead_ = null;
- // Pointer to the head of the stream.
-
- Module streamTail_ = null;
- // Pointer to the tail of the stream.
-
- Stream linkedUs_ = null;
- // Pointer to an adjoining linked stream.
-
- // = Synchronization objects used for thread-safe streams.
- // ACE_SYNCH_MUTEX lock_;
- // Protect the stream against race conditions.
-
- // ACE_SYNCH_CONDITION final_close_;
- // Use to tell all threads waiting on the close that we are done.
-
-}
-
-
diff --git a/java/JACE/ASX/StreamHead.java b/java/JACE/ASX/StreamHead.java
deleted file mode 100644
index 1492b43a297..00000000000
--- a/java/JACE/ASX/StreamHead.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * StreamHead.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * Standard module that acts as the head of a ustream.
- */
-
-public class StreamHead extends Task
-{
- // Module that acts as the head of a Stream.
-
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long l)
- {
- return 0;
- }
-
- public int svc ()
- {
- return -1;
- }
-
- private int control (MessageBlock mb)
- {
-
- IOCntlMsg ioc = (IOCntlMsg) mb.obj ();
- int cmd = ioc.cmd ();
-
- switch (cmd)
- {
- case IOCntlCmds.SET_LWM:
- case IOCntlCmds.SET_HWM:
- this.waterMarks (cmd, mb.cont ().length ());
- ioc.rval (0);
- break;
- default:
- return 0;
- }
- return ioc.rval ();
- }
-
- /* Performs canonical flushing at the ACE_Stream Head */
-
- private int canonicalFlush (MessageBlock mb)
- {
- String s = mb.base ();
- long f = (new Long (s)).longValue ();
-
- if ((f & TaskFlags.ACE_FLUSHR) != 0)
- {
- this.flush (TaskFlags.ACE_FLUSHALL);
- f &= ~TaskFlags.ACE_FLUSHR;
- }
- if ((f & TaskFlags.ACE_FLUSHW) != 0)
- return this.reply (mb, null);
- return 0;
- }
-
- // Will block forever to add the given MessageBlock
- public int put (MessageBlock mb)
- {
- return this.put (mb, null);
- }
-
- // tv is absolute time
- public int put (MessageBlock mb, TimeValue tv)
- {
- int res = 0;
- if (mb.msgType () == MessageType.MB_IOCTL
- && (res = this.control (mb)) == -1)
- return res;
-
- if (this.isWriter ())
- {
- return this.putNext (mb, tv);
- }
- else /* this.isReader () */
- {
- switch (mb.msgType ())
- {
- case MessageType.MB_FLUSH:
- return this.canonicalFlush (mb);
- default:
- break;
- }
-
- try
- {
- return this.putq (mb, tv);
- }
- catch (InterruptedException e)
- {
- return -1;
- }
- }
- }
-
- public void dump ()
- {
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-
-}
diff --git a/java/JACE/ASX/StreamTail.java b/java/JACE/ASX/StreamTail.java
deleted file mode 100644
index c1148a4c0f1..00000000000
--- a/java/JACE/ASX/StreamTail.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * StreamTail.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * Standard module that acts as the tail of a ustream.
- */
-public class StreamTail extends Task
-{
- // Module that acts as the tail of a Stream.
-
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long l)
- {
- return 0;
- }
-
- public int svc ()
- {
- return -1;
- }
-
- private int control (MessageBlock mb)
- {
- IOCntlMsg ioc = (IOCntlMsg) mb.obj ();
- int cmd = ioc.cmd ();
-
- switch (cmd)
- {
- case IOCntlCmds.SET_LWM:
- case IOCntlCmds.SET_HWM:
- {
- int size = mb.cont ().length ();
-
- this.waterMarks (cmd, size);
- this.sibling ().waterMarks (cmd, size);
- ioc.rval (0);
- break;
- }
- default:
- mb.msgType (MessageType.MB_IOCNAK);
- }
- return this.reply (mb, null);
- }
-
- // Perform flush algorithm as though we were the driver
- private int canonicalFlush (MessageBlock mb)
- {
- String s = mb.base ();
- long f = (new Long (s)).longValue ();
-
- if ((f & TaskFlags.ACE_FLUSHW) != 0)
- {
- this.flush (TaskFlags.ACE_FLUSHALL);
- f &= ~TaskFlags.ACE_FLUSHW;
- }
- if ((f & TaskFlags.ACE_FLUSHR) != 0)
- {
- this.sibling ().flush (TaskFlags.ACE_FLUSHALL);
- return this.reply (mb, null);
- }
- return 0;
- }
-
- // put the given MessageBlock without a timeout (block forever if
- // necessary)
- public int put (MessageBlock mb)
- {
- return this.put (mb, null);
- }
-
- // tv is an absolute time timeout
- public int put (MessageBlock mb, TimeValue tv)
- {
- if (this.isWriter ())
- {
- switch (mb.msgType ())
- {
- case MessageType.MB_IOCTL:
- return this.control (mb);
- /* NOTREACHED */
- default:
- break;
- }
- }
-
- return -1;
- }
-
- public void dump ()
- {
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-
-}
diff --git a/java/JACE/ASX/Task.java b/java/JACE/ASX/Task.java
deleted file mode 100644
index b13de64f16a..00000000000
--- a/java/JACE/ASX/Task.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * Task.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-import JACE.Reactor.*;
-import JACE.Concurrency.*;
-
-/**
- * Primary interface for application message processing, as well
- * as input and output message queueing. <P>
- *
- * This class serves as the basis for passive and active objects
- * in ACE.
- *
- *@see MessageQueue
- *@see EventHandler
- */
-public abstract class Task implements Runnable, EventHandler
-{
- // = Initialization/termination methods.
-
- /**
- * Initialize a Task. Note, we allocate a message queue ourselves.
- */
- public Task ()
- {
- this.msgQueue_ = new MessageQueue ();
- this.thrMgr_ = null;
- }
-
- /**
- * Initialize a Task. Note, we use the message queue and thread
- * manager supplied by the user.
- *@param mq Message Queue to hold list of messages on the Task
- *@param thrMgr Thread Manager that manages all the spawned threads
- */
- public Task (MessageQueue mq,
- ThreadManager thrMgr)
- {
- this.msgQueue_ = mq;
- this.thrMgr_ = thrMgr;
- }
-
- /**
- * Not meant to be invoked by the user directly!. This needs to be
- * in the public interface in order to get invoked by Thread
- * class.
- */
- public void run ()
- {
- this.svc ();
- }
-
- // = Initialization and termination hooks (note that these *must* be
- // defined by subclasses).
-
- /**
- * Hook called to open a Task.
- *@param obj used to pass arbitrary information
- */
- public abstract int open (Object obj);
-
- /**
- * Hook called to close a Task.
- */
- public abstract int close (long flags);
-
- // = Immediate and deferred processing methods, respectively.
-
- /**
- * Transfer a message into the queue to handle immediate
- * processing.
- *@param mb Message Block to handle immediately
- *@param tv Latest time to wait until (absolute time)
- */
- public abstract int put (MessageBlock mb, TimeValue tv);
-
- /**
- * Run by a daemon thread to handle deferred processing. Note, that
- * to do anything useful, this method should be overriden by the
- * subclass.
- *@return default implementation always returns 0.
- */
- public int svc ()
- {
- return 0;
- }
-
- /**
- * Set the underlying Thread Manager.
- *@param t Thread Manager to use
- */
- public synchronized void thrMgr (ThreadManager t)
- {
- this.thrMgr_ = t;
- }
-
- /**
- * Get the Thread Manager.
- *@return Underlying Thread Manager
- */
- public synchronized ThreadManager thrMgr ()
- {
- return this.thrMgr_;
- }
-
- // = Active object method.
-
- /**
- * Turn the task into an active object. That is, having <nThreads>
- * separate threads of control that all invoke Task::svc.
- *@param flags Task Flags
- *@param nThreads number of threads to spawn
- *@param forceActive whether to force creation of new threads or not
- *@return -1 if failure occurs, 1 if Task is already an active
- * object and <forceActive> is false (doesn't *not* create a new
- * thread in this case), and 0 if Task was not already an active
- * object and a thread is created successfully or thread is an active
- * object and <forceActive> is true.
- */
- public synchronized int activate (long flags, int nThreads, boolean forceActive)
- {
- // Create a Thread Manager if we do not already have one
- if (this.thrMgr_ == null)
- this.thrMgr_ = new ThreadManager ();
-
- if (this.thrCount () > 0 && forceActive == false)
- return 1; // Already active.
- this.flags_ = flags;
-
- if (ACE.BIT_ENABLED (flags, TaskFlags.THR_DAEMON))
- this.thrMgr_.spawnN (nThreads, this, true); // Spawn off all threads as daemon threads
- else // Spawn off all threads as normal threads
- this.thrMgr_.spawnN (nThreads, this, false);
-
- return 0;
- }
-
- // = Suspend/resume a Task
-
- /**
- * Suspend a task. Default implementation is a no-op.
- */
- public synchronized void suspend ()
- {
- }
-
- /**
- * Resume a suspended task. Default implementation is a no-op.
- */
- public synchronized void resume ()
- {
- }
-
- /**
- * Get the current group name.
- *@return name of the current thread group
- */
- public synchronized String grpName ()
- {
- if (this.thrMgr_ != null)
- return this.thrMgr_.thrGrp ().getName ();
- else
- return null;
- }
-
- /**
- * Get the message queue associated with this task.
- *@return the message queue associated with this task.
- */
- public MessageQueue msgQueue ()
- {
- return this.msgQueue_;
- }
-
- /**
- * Set the message queue associated with this task.
- *@param mq Message Queue to use with this Task.
- */
- public void msgQueue (MessageQueue mq)
- {
- this.msgQueue_ = mq;
- }
-
- /**
- * Get the number of threads currently running within the Task.
- *@return the number of threads currently running within the Task.
- * 0 if we're a passive object, else > 0.
- */
- public synchronized int thrCount ()
- {
- if (this.thrMgr_ != null)
- return this.thrMgr_.thrGrp ().activeCount ();
- else
- return 0;
- }
-
- /**
- * Set the Task flags
- *@param flags Task Flags
- */
- public synchronized void flags (long flags)
- {
- this.flags_ = flags;
- }
-
- /**
- * Get the Task flags
- *@return Task Flags
- */
- public synchronized long flags ()
- {
- return this.flags_;
- }
-
- // = Message queue manipulation methods.
-
-
- /*
- * Dump debug information.
- */
- public void dump ()
- {
- }
-
- /**
- * Insert a message into the queue, blocking forever if necessary.
- *@param mb Message Block to insert
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected int putq (MessageBlock mb) throws InterruptedException
- {
- return this.putq(mb, null);
- }
-
- /**
- * Insert message into the message queue.
- *@param mb Message Block to insert into the Message Queue
- *@param tv time to wait until (absolute time)
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected int putq (MessageBlock mb, TimeValue tv) throws InterruptedException
- {
- return this.msgQueue_.enqueueTail (mb, tv);
- }
-
- /**
- * Extract the first message from the queue, blocking forever if
- * necessary.
- *@return the first Message Block from the Message Queue.
- *@exception InterrupteException Interrupted while accessing queue
- */
- protected MessageBlock getq() throws InterruptedException
- {
- return this.getq(null);
- }
-
- /**
- * Extract the first message from the queue. Note that the call is blocking.
- *@return the first Message Block from the Message Queue.
- *@param tv Latest time to wait until (absolute time)
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected MessageBlock getq (TimeValue tv) throws InterruptedException
- {
- return this.msgQueue_.dequeueHead (tv);
- }
-
- /**
- * Return a message back to the queue.
- *@param mb Message Block to return back to the Message Queue
- *@param tv Latest time to wait until (absolute time)
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected int ungetq (MessageBlock mb, TimeValue tv) throws InterruptedException
- {
- return this.msgQueue_.enqueueHead (mb, tv);
- }
-
- /**
- * Transfer message to the adjacent ACETask in an ACEStream.
- *@param mb Message Block to transfer to the adjacent Task
- *@param tv Latest time to wait until (absolute time)
- *@return -1 if there is no adjacent Task, else the return value of
- * trying to put the Message Block on that Task's Message Queue.
- */
- protected int putNext (MessageBlock mb, TimeValue tv)
- {
- return this.next_ == null ? -1 : this.next_.put (mb, tv);
- }
-
- /**
- * Turn the message back around. Puts the message in the sibling's
- * Message Queue.
- *@param mb Message Block to put into sibling's Message Queue
- *@param tv Latest time to wait until (absolute time)
- *@return -1 if there is no adjacent Task to the sibling, else the
- * return value of trying to put the Message Block on sibling's
- * Message Queue.
- */
- protected int reply (MessageBlock mb, TimeValue tv)
- {
- return this.sibling ().putNext (mb, tv);
- }
-
- // = ACE_Task utility routines to identify names et al.
-
- /**
- * Get the name of the enclosing Module.
- *@return the name of the enclosing Module if there's one associated
- * with the Task, else null.
- */
- protected String name ()
- {
- if (this.mod_ == null)
- return null;
- else
- return this.mod_.name ();
- }
-
- /**
- * Get the Task's sibling.
- *@return the Task's sibling if there's one associated with the
- * Task's Module, else null.
- */
- protected Task sibling ()
- {
- if (this.mod_ == null)
- return null;
- else
- return this.mod_.sibling (this);
- }
-
- /**
- * Set the Task's module.
- *@param mod the Task's Module.
- */
- protected void module (Module mod)
- {
- this.mod_ = mod;
- }
-
- /**
- * Get the Task's module.
- *@return the Task's Module if there is one, else null.
- */
- protected Module module ()
- {
- return this.mod_;
- }
-
- /**
- * Check if queue is a reader.
- *@return true if queue is a reader, else false.
- */
- protected boolean isReader ()
- {
- return (ACE.BIT_ENABLED (this.flags_, TaskFlags.ACE_READER));
- }
-
- /**
- * Check if queue is a writer.
- *@return true if queue is a writer, else false.
- */
- protected boolean isWriter ()
- {
- return (ACE.BIT_DISABLED (this.flags_, TaskFlags.ACE_READER));
- }
-
- // = Pointers to next ACE_Queue (if ACE is part of an ACE_Stream).
-
- /**
- * Get next Task pointer.
- *@return pointer to the next Task
- */
- protected Task next ()
- {
- return this.next_;
- }
-
- /**
- * Set next Task pointer.
- *@param task next task pointer
- */
- protected void next (Task task)
- {
- this.next_ = task;
- }
-
- // Special routines corresponding to certain message types.
-
- /**
- * Flush the Message Queue
- *@return 0 if Message Queue is null, 1 if flush succeeds, -1 if
- * ACE_FLUSHALL bit is not enabled in flags.
- */
- protected int flush (long flag)
- {
- if (ACE.BIT_ENABLED (flag, TaskFlags.ACE_FLUSHALL))
- return (this.msgQueue_ == null ? 0 : 1);
- else
- return -1;
- }
-
-
- /**
- * Manipulate watermarks.
- *@param cmd IOCntlCmd
- *@param size watermark
- */
- protected void waterMarks (int cmd, int size)
- {
- if (cmd == IOCntlCmds.SET_LWM)
- this.msgQueue_.lowWaterMark (size);
- else /* cmd == IOCntlMsg.SET_HWM */
- this.msgQueue_.highWaterMark (size);
- }
-
- private ThreadManager thrMgr_ = null;
- // Thread_Manager that manages all the spawned threads
-
- private long flags_;
- // Task flags.
-
- private MessageQueue msgQueue_;
- // List of messages on the Task..
-
- private Task next_;
- // Adjacent ACE_Task.
-
- private Module mod_;
- // Back-pointer to the enclosing module.
-}
diff --git a/java/JACE/ASX/TaskFlags.java b/java/JACE/ASX/TaskFlags.java
deleted file mode 100644
index 13347283adf..00000000000
--- a/java/JACE/ASX/TaskFlags.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TaskFlags.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * Flags used within Task.
- *
- *@see Task
- */
-public abstract class TaskFlags
-{
- /** Identifies a Task as being the "reader" in a Module. */
- public static final int ACE_READER = 01;
-
- /** Just flush data messages in the queue. */
- public static final int ACE_FLUSHDATA = 02;
-
- /** Flush all messages in the Queue. */
- public static final int ACE_FLUSHALL = 04;
-
- /** Flush read queue */
- public static final int ACE_FLUSHR = 010;
-
- /** Flush write queue */
- public static final int ACE_FLUSHW = 020;
-
- /** Flush both queues */
- public static final int ACE_FLUSHRW = 030;
-
- /** Identifies a thread as suspended */
- public static final int THR_SUSPENDED = 0x00000080;
-
- /** Identifies a thread as a daemon thread */
- public static final int THR_DAEMON = 0x00000100;
-
- // Default private constructor to avoid instantiation
- private TaskFlags ()
- {
- }
-}
diff --git a/java/JACE/ASX/ThruTask.java b/java/JACE/ASX/ThruTask.java
deleted file mode 100644
index 3fd0bbd4476..00000000000
--- a/java/JACE/ASX/ThruTask.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * ThruTask.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * Standard module that acts as a "no op", simply passing on all
- * data to its adjacent neighbor.
- */
-public class ThruTask extends Task
-{
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int put (MessageBlock msg, TimeValue tv)
- {
- return this.putNext (msg, tv);
- }
-
- public int svc ()
- {
- return -1;
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-}
diff --git a/java/JACE/ASX/TimeValue.java b/java/JACE/ASX/TimeValue.java
deleted file mode 100644
index 452f80447c4..00000000000
--- a/java/JACE/ASX/TimeValue.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Reactor
- *
- * = FILENAME
- * TimeValue.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-//package JACE.Reactor;
-package JACE.ASX;
-
-/**
- * Encapsulates a specific time or time interval. <P>
- *
- * Also provides methods for generating absolute times from
- * relative times. This is used throughout JACE for timeouts.
- *
- *@see TimedWait
- */
-public class TimeValue
-{
- /**
- * TimeValue representing 0 seconds and 0 nanoseconds.
- */
- public final static TimeValue zero = new TimeValue (0,0);
-
- /**
- * Default constructor. This creates a TimeValue that is
- * equal to TimeValue.zero.
- */
- public TimeValue ()
- {
- this (0, 0);
- }
-
- /**
- * Constructor
- *@param sec seconds
- */
- public TimeValue (long sec)
- {
- this (sec, 0);
- }
-
- /**
- * Constructor
- *@param sec seconds
- *@param nanos nanoseconds
- */
- public TimeValue (long sec, int nanos)
- {
- this.set (sec, nanos);
- }
-
- /**
- * Sets the seconds and nanoseconds of Time Value
- *@param sec seconds
- *@param nanos nanoseconds
- */
- public void set (long sec, int nanos)
- {
- this.millisec_ = sec * 1000;
- this.nanos_ = nanos;
- this.normalize ();
- }
-
- /**
- * Get seconds
- *@return Seconds
- */
- public long sec ()
- {
- return this.millisec_/1000;
- }
-
- /**
- * Get nanoseconds
- *@return Nanoseconds
- */
- public int nanos ()
- {
- return this.nanos_;
- }
-
- /**
- * Get time in milliseconds.
- *@return time in milliseconds
- */
- public long getMilliTime ()
- {
- return this.millisec_;
- }
-
- /**
- * Get a String representation of the Time Value.
- *@return String representation of the Time Value
- */
- public String toString ()
- {
- return (new Long (this.millisec_/1000)).toString () + ":" +
- (new Integer (this.nanos_)).toString ();
- }
-
- /**
- * Get current time.
- *@return the current system time as a new TimeValue
- */
- public static TimeValue getTimeOfDay ()
- {
- return new TimeValue (System.currentTimeMillis ()/1000);
- }
-
- /**
- * Return a new TimeValue that represents the current system time
- * of day offset by the given number of seconds and nanoseconds.
- *@param sec Number of seconds to offset by
- *@param nanos Number of nanoseconds to offset by
- *@see JACE.ASX.TimeValue
- *@return TimeValue for the system time plus the given offset
- */
- public static TimeValue relativeTimeOfDay(long sec, int nanos)
- {
- return new TimeValue ((System.currentTimeMillis() / 1000) + sec,
- nanos);
- }
-
- /**
- * Return a new TimeValue that represents the current system time
- * of day offset by the given TimeValue.
- *@param tv TimeValue to offset by
- *@see JACE.ASX.TimeValue
- *@return TimeValue for the system time plus the given offset
- */
- public static TimeValue relativeTimeOfDay(TimeValue offset)
- {
- return new TimeValue ((System.currentTimeMillis() / 1000) +
- offset.sec(),
- offset.nanos());
- }
-
- /**
- * Compare two Time Values for equality.
- *@param tv Time Value to compare with
- *@return true if the two Time Values are equal, false otherwise
- */
- public boolean equals (TimeValue tv)
- {
- return this.millisec_ == (tv.sec () * 1000) && this.nanos_ == tv.nanos ();
- }
-
- /**
- * Compare two Time Values for non-equality.
- *@param tv Time Value to compare with
- *@return true if the two Time Values are not equal, false otherwise
- */
- public boolean notEquals (TimeValue tv)
- {
- return !this.equals (tv);
- }
-
- /**
- * Add two Time Values.
- *@param tv1 The first Time Value
- *@param tv2 The second Time Value
- *@return sum of the two Time Values.
- */
- public static TimeValue plus (TimeValue tv1, TimeValue tv2)
- {
- TimeValue tv = new TimeValue (tv1.sec () + tv2.sec (),
- tv1.nanos () + tv2.nanos ());
- tv.normalize ();
- return tv;
- }
-
- /**
- * Subtract two Time Values.
- *@param tv1 The first Time Value
- *@param tv2 The second Time Value
- *@return difference of the two Time Values.
- */
- public static TimeValue minus (TimeValue tv1, TimeValue tv2)
- {
- TimeValue tv = new TimeValue (tv1.sec () - tv2.sec (),
- tv1.nanos () - tv2.nanos ());
- tv.normalize ();
- return tv;
- }
-
- /**
- * Add Time Value to "this".
- *@param tv The Time Value to add to this.
- */
- public void plusEquals (TimeValue tv)
- {
- this.set (this.sec () + tv.sec (),
- this.nanos () + tv.nanos ());
- this.normalize ();
- }
-
- /**
- * Subtract Time Value from "this".
- *@param tv The Time Value to subtract from this.
- */
- public void minusEquals (TimeValue tv)
- {
- this.set (this.sec () - tv.sec (),
- this.nanos () - tv.nanos ());
- this.normalize ();
- }
-
- /**
- * Compare two Time Values for less than.
- *@param tv Time Value to compare with
- *@return true if "this" is less than tv, false otherwise
- */
- public boolean lessThan (TimeValue tv)
- {
- return tv.greaterThan (this);
- }
-
- /**
- * Compare two Time Values for greater than.
- *@param tv Time Value to compare with
- *@return true if "this" is greater than tv, false otherwise
- */
- public boolean greaterThan (TimeValue tv)
- {
- if (this.sec () > tv.sec ())
- return true;
- else if (this.sec () == tv.sec ()
- && this.nanos () > tv.nanos ())
- return true;
- else
- return false;
- }
-
- /**
- * Compare two Time Values for <=.
- *@param tv Time Value to compare with
- *@return true if "this" <= tv, false otherwise
- */
- public boolean lessThanEqual (TimeValue tv)
- {
- return tv.greaterThanEqual (this);
- }
-
- /**
- * Compare two Time Values for >=.
- *@param tv Time Value to compare with
- *@return true if "this" >= tv, false otherwise
- */
- public boolean greaterThanEqual (TimeValue tv)
- {
- return this.sec () >= tv.sec () && this.nanos () >= tv.nanos ();
- }
-
- private void normalize ()
- {
- if (this.nanos_ >= ONE_MILLISECOND)
- {
- do
- {
- this.millisec_++;
- this.nanos_ -= ONE_MILLISECOND;
- }
- while (this.nanos_ >= ONE_MILLISECOND);
- }
- else if (this.nanos_ <= -ONE_MILLISECOND)
- {
- do
- {
- this.millisec_--;
- this.nanos_ += ONE_MILLISECOND;
- }
- while (this.nanos_ <= -ONE_MILLISECOND);
- }
-
- if (this.millisec_ >= 1 && this.nanos_ < 0)
- {
- this.millisec_--;
- this.nanos_ += ONE_MILLISECOND;
- }
- else if (this.millisec_ < 0 && this.nanos_ > 0)
- {
- this.millisec_++;
- this.nanos_ -= ONE_MILLISECOND;
- }
- }
-
- private long millisec_;
- private int nanos_;
- private final static int ONE_MILLISECOND = 1000000;
-}
diff --git a/java/JACE/ASX/TimedWait.java b/java/JACE/ASX/TimedWait.java
deleted file mode 100644
index dc1d0bab673..00000000000
--- a/java/JACE/ASX/TimedWait.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TimedWait.java
- *
- *@author Prashant Jain and Doug Schmidt
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * A wait/notify system with absolute time timeouts and built-in
- * check of a condition. <P>
- *
- * Subclasses define the condition to check, and the object to
- * wait on can be specified.
- */
-public abstract class TimedWait
-{
- /**
- * Default Constructor. Sets "this" to be used for the delegation of
- * the wait() call to.
- */
- public TimedWait ()
- {
- object_ = this;
- }
-
- /**
- * Constructor. Allows subclasses to supply us with an Object that
- * is delegated the wait() call.
- *@param obj The Object that is delegated the wait() call.
- */
- public TimedWait (Object obj)
- {
- object_ = obj;
- }
-
- /**
- * Hook method that needs to be implemented by subclasses.
- */
- public abstract boolean condition ();
-
- /**
- * Wait until condition becomes true. Note that the method
- * blocks. Also note that this method is final to ensure that no one
- * overrides it.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- *@exception InterruptedException Interrupted during wait
- */
- public final void timedWait () throws InterruptedException
- {
- // Acquire the monitor lock.
- if (!condition ())
- {
- // Only attempt to perform the wait if the condition isn't
- // true initially.
- for (;;)
- {
- // Wait until we are notified.
- object_.wait ();
-
- // Recheck the condition.
- if (condition ())
- break; // Condition became true.
-
- // else we were falsely notified so go back into wait
- }
- }
- }
-
- /**
- * Template Method that implements the actual timed wait. Note that
- * this method is final to ensure that no one overrides it.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- * If the specified wait time is zero, this checks the condition,
- * then returns on success or throws a TimeoutException on failure.
- *@param tv Absolute time to wait until before throwing an exception
- * if the condition isn't satisfied
- *@exception java.lang.InterruptedException Interrupted during wait
- *@exception JACE.ASX.TimeoutException Reached timeout specified
- */
- public final void timedWait (TimeValue tv)
- throws InterruptedException,
- TimeoutException
- {
- if (tv == null) {
- this.timedWait();
- return;
- }
-
- // Acquire the monitor lock.
- if (!condition ())
- {
- long start = System.currentTimeMillis();
- long waitTime = tv.getMilliTime() - start;
-
- for (;;) {
-
- // Prevent a conversion from absolute to relative time from
- // generating a zero or negative waitTime.
- if (waitTime < 1)
- throw new TimeoutException ();
-
- // Wait until we are notified.
- object_.wait (waitTime);
-
- // Recheck the condition.
- if (!condition ()) {
-
- long now = System.currentTimeMillis();
-
- // Timed out!
- if (now >= tv.getMilliTime ())
- throw new TimeoutException ();
- else
- // We still have some time left to wait, so adjust the
- // wait_time.
- waitTime = tv.getMilliTime() - now;
- }
- else
- break; // Condition became true.
- }
- }
- }
-
- /**
- * Notify any one thread waiting on the object_.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- */
- public final void signal () {
- object_.notify ();
- }
-
- /**
- * Notify all threads waiting on the object_.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- */
- public final void broadcast () {
- object_.notifyAll ();
- }
-
- /**
- * The object we delegate to. If a subclass gives us a particular
- * object, we use that to delegate to, otherwise, we ``delegate''
- * to ourself (i.e., this).
- */
- protected Object object_;
-
-}
diff --git a/java/JACE/ASX/TimeoutException.java b/java/JACE/ASX/TimeoutException.java
deleted file mode 100644
index d55cc4fe999..00000000000
--- a/java/JACE/ASX/TimeoutException.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TimeoutException.java
- *
- *@author Prashant Jain and Doug Schmidt
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * Thrown when a timer has expired.
- */
-public class TimeoutException extends Exception
-{
- /**
- * Default Constructor.
- */
- public TimeoutException ()
- {
- super ("Timed Out");
- }
-
- /**
- * Constructor.
- *@param timeout The timeout value which expired.
- *@param desc Textual description of the exception
- */
- public TimeoutException (TimeValue timeout, String desc)
- {
- super ("Timed Out in " + timeout + ": " + desc);
- }
-
-}
diff --git a/java/JACE/ASX/package.html b/java/JACE/ASX/package.html
deleted file mode 100644
index 346782ed083..00000000000
--- a/java/JACE/ASX/package.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Message queueing facilities.
-<P>
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#ipc">
-Documents on ACE interprocess communication components</a>
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#streams">
-Documents on the ACE streams framework</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/Concurrency/AbstractLock.java b/java/JACE/Concurrency/AbstractLock.java
deleted file mode 100644
index c8afaf789ae..00000000000
--- a/java/JACE/Concurrency/AbstractLock.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Lock.java
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.Concurrency;
-
-import JACE.ASX.*;
-
-/**
- * Interface for any Java ACE synchronization mechanism.
- * <P>
- * Defines the interface for Token, Mutex, RWMutex, Semaphore,
- * and the RemoteLock proxies in the Token service, as well as
- * the possible constant return values.
- * <P>
- * Methods which take TimeValue timeouts can throw
- * JACE.ASX.TimeoutExceptions. The locks should continue to
- * function properly after a thread times out or is interrupted.
- * <em>Also note that the timeouts are absolute time-of-day
- * values, not relative times.</em>
- * <P>
- * An AbstractLock.FAILURE can be returned for an undefined type of
- * failure.
- * <P>
- * You can assume that
- * AbstractLock.FAILURE < AbstractLock.SUCCESS < AbstractLock.SLEEPHOOK
- * <P>
- * Any method can throw a LockException, providing a way to return
- * unusual error cases in future types of locks (such as the Token
- * service).
- * <P>
- * It is safe to call release () in a finally block, since it will
- * return FAILURE if the accessing thread is not the owner.
- *
- */
-public interface AbstractLock
-{
- /**
- * Generic failure indication, used as a return value.
- */
- public static final int FAILURE = -1;
-
- /**
- * Success indication, used as a return value.
- */
- int SUCCESS = 0;
-
- /**
- * Success indication, but notes that the thread had to sleep
- * to complete it (and it called the sleep hook). Used as a
- * return value.
- */
- int SLEEPHOOK = 1;
-
-
- /**
- * Acquire ownership of the lock, blocking indefinitely if necessary.
- * <P>
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException special exception defined by a later
- * implementation
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int acquire () throws LockException, InterruptedException;
-
- /**
- * Acquire ownership of the lock by the given absolute time time-out.
- * A value of null for the timeout parameter results in a blocking
- * acquire.
- * A value of TimeValue.zero throws a TimeoutException if the
- * acquire would block.
- * <P>
- *@param timeout absolute time by which the lock must be acquired
- *@return appropriate Lock return value (AbstractLock.FAILURE,
- * AbstractLock.SUCCESS or AbstractLock.SLEEPHOOK)
- *@exception LockException special exception defined by a later
- * implementation
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- *@see AbstractLock#tryAcquire
- */
- public int acquire (TimeValue timeout)
- throws LockException, TimeoutException, InterruptedException;
-
- /**
- * Acquire a read lock, blocking indefinitely if necessary. This can
- * be used to implement Reader-Writer locks in which multiple readers
- * may have simultaneous access.
- * <P>
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException special exception defined by a later
- * implementation
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int acquireRead () throws LockException, InterruptedException;
-
- /**
- * Acquire a read lock by the given absolute time time-out. This can
- * be used to implement Reader-Writer locks in which multiple readers
- * may have simultaneous access.
- * <P>
- *@param timeout absolute time by which the lock must be acquired
- *@return appropriate lock return value (AbstractLock.FAILURE,
- * AbstractLock.SUCCESS or AbstractLock.SLEEPHOOK)
- *@exception LockException special exception defined by a later
- * implementation
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- *@see AbstractLock#tryAcquireRead
- */
- public int acquireRead (TimeValue timeout)
- throws LockException, TimeoutException, InterruptedException;
-
- /**
- * Acquire a write lock, blocking indefinitely if necessary. This can
- * be used to implement Reader-Writer locks in which a writer has
- * exclusive access.
- * <P>
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException special exception defined by a later
- * implementation
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int acquireWrite () throws LockException, InterruptedException;
-
- /**
- * Acquire a write lock by the given absolute time time-out. This can
- * be used to implement Reader-Writer locks in which a writer has
- * exclusive access.
- * <P>
- *@param timeout absolute time by which the lock must be acquired
- *@return appropriate AbstractLock return value (AbstractLock.FAILURE,
- * AbstractLock.SUCCESS or AbstractLock.SLEEPHOOK)
- *@exception LockException special exception defined by a later
- * implementation
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- *@see AbstractLock#tryAcquireWrite
- */
- public int acquireWrite (TimeValue timeout)
- throws LockException, TimeoutException, InterruptedException;
-
- /**
- * Give up the lock to some number of waiting threads (if any), then
- * reacquire, blocking indefinitely if necessary.
- * <P>
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token.
- * <P>
- *@param requeuePosition position in the waiters queue to insert
- * this thread. If this value is -1 and there are other
- * threads waiting to obtain the token, this thread is queued
- * at the end. If this value is greater than -1, then it
- * indicates how many entries to skip over before inserting
- * our thread into the queue. (For example, if it is 0,
- * this thread is put at the front of the queue.) If this
- * value is greater than the number of waiters, this thread is
- * simply put at the end of the current waiters queue.
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException special exception defined by a later
- * implementation
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int renew (int requeuePosition) throws LockException,
- InterruptedException;
-
- /**
- * Give up the lock to some waiting threads (if any), then reacquire
- * by the given absolute time time-out.
- * <P>
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token.
- * <P>
- * A value of null for the timeout should indicate a blocking renew.
- * <P>
- *@param requeuePosition position in the waiters queue to insert
- * this thread. If this value is -1 and there are other
- * threads waiting to obtain the token, this thread is queued
- * at the end. If this value is greater than -1, then it
- * indicates how many entries to skip over before inserting
- * our thread into the queue. (For example, if it is 0,
- * this thread is put at the front of the queue.) If this
- * value is greater than the number of waiters, this thread is
- * simply put at the end of the current waiters queue.
- *
- *@param timeout absolute time by which the lock must be reacquired
- *
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException special exception defined by a later
- * implementation
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int renew (int requeuePosition, TimeValue timeout)
- throws LockException, TimeoutException, InterruptedException;
-
- /**
- * Try to acquire the lock without blocking.
- * <P>
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException special exception defined by a later
- * implementation
- */
- public int tryAcquire () throws LockException;
-
- /**
- * Try to acquire a read lock without blocking.
- * <P>
- *@see #acquireRead
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException special exception defined by a later
- * implementation
- */
- public int tryAcquireRead () throws LockException;
-
- /**
- * Try to acquire a write lock without blocking.
- *<P>
- *@see #acquireWrite
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException special exception defined by a later
- * implementation
- */
- public int tryAcquireWrite () throws LockException;
-
- /**
- * Method that is called before a thread goes to sleep in an
- * acquire. This should be overridden by a subclass to define
- * the appropriate behavior.
- */
- public void sleepHook ();
-
- /**
- * Release ownership of this lock.
- * <P>
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException special exception defined by a later
- * implementation
- */
- public int release () throws LockException;
-}
diff --git a/java/JACE/Concurrency/Condition.java b/java/JACE/Concurrency/Condition.java
deleted file mode 100644
index 1889f6e1edf..00000000000
--- a/java/JACE/Concurrency/Condition.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Condition.java
- *
- *@author Irfan Pyarali
- *
- *************************************************/
-package JACE.Concurrency;
-
-import JACE.ASX.TimeoutException;
-import JACE.ASX.TimeValue;
-
-/**
- * Abstraction for <em>traditional</em>
- * condition variable
- * <P>
- * This condition variable allows the use of one
- * mutex between multiple conditions.
- * This implementation is based on the C++ version of ACE.
- */
-public class Condition
-{
- /**
- * Default constructor
- *@param Mutex for synchronization
- */
- public Condition (Mutex mutex)
- {
- mutex_ = mutex;
- }
-
- /**
- * Wait for condition to become signaled.
- *@exception InterruptedException exception during wait
- */
- public void Wait ()
- throws InterruptedException
- {
- waiters_++;
-
- try
- {
- mutex_.release();
- synchronized (waitObject_) {
- waitObject_.wait ();
- }
- mutex_.acquire ();
- }
- finally
- {
- waiters_--;
- }
- }
-
- /**
- * TimedWait for condition to become signaled. Note that the
- * given TimeValue is an absolute time, not a relative time.
- *
- *@param tv Absolute time to wait until before timing out
- *@exception TimeoutException wait timed out exception
- *@exception InterruptedException exception during wait
- */
- public void Wait (TimeValue tv)
- throws TimeoutException, InterruptedException
- {
- waiters_++;
-
- try
- {
- mutex_.release();
-
- synchronized (waitObject_) {
- long start = System.currentTimeMillis();
- long waitTime = tv.getMilliTime() - start;
- if (waitTime < 1)
- throw new TimeoutException ();
- waitObject_.wait (waitTime);
- }
-
- mutex_.acquire (tv);
- }
- finally
- {
- waiters_--;
- }
- }
-
- /**
- * Signal condition. Wake one waiter (if any).
- */
- public void signal ()
- {
- synchronized (waitObject_) {
- waitObject_.notify ();
- }
- }
-
- /**
- * Signal condition. Wake up all waiters (if any).
- */
- public void broadcast ()
- {
- synchronized (waitObject_) {
- waitObject_.notifyAll ();
- }
- }
-
- /**
- * Accessor to lock
- *@return Mutex
- */
- public Mutex mutex ()
- {
- return mutex_;
- }
-
- private int waiters_;
- private Object waitObject_ = new Object ();
- private Mutex mutex_;
-}
diff --git a/java/JACE/Concurrency/LockAdapter.java b/java/JACE/Concurrency/LockAdapter.java
deleted file mode 100644
index db2e9de05c7..00000000000
--- a/java/JACE/Concurrency/LockAdapter.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Lock.java
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.Concurrency;
-
-import JACE.ASX.*;
-
-/**
- * Abstract adapter class which provides useful default implementations
- * for several methods in the AbstractLock interface, as well as
- * protected helper functions for making sure only the owner
- * can perform certain operations.
- *
- *@see JACE.Concurrency.AbstractLock
- */
-public abstract class LockAdapter implements AbstractLock
-{
- /**
- * Default implementation that calls acquire (TimeValue) with a null
- * timeout.
- *
- *@see AbstractLock#acquire
- */
- public int acquire () throws InterruptedException
- {
- try {
- return acquire (null);
- } catch (TimeoutException e) {
- // This should never happen
- return AbstractLock.FAILURE;
- }
- }
-
- /**
- * Acquire ownership of the lock by the given absolute time time-out.
- * A value of null for the timeout parameter results in a blocking
- * acquire.
- * A value of TimeValue.zero throws a TimeoutException if the
- * acquire would block.
- * <P>
- *@param timeout absolute time by which the lock must be acquired
- *@return appropriate Lock return value (AbstractLock.FAILURE,
- * AbstractLock.SUCCESS or AbstractLock.SLEEPHOOK)
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- *@see AbstractLock#tryAcquire
- */
- public abstract int acquire (TimeValue timeout)
- throws TimeoutException, InterruptedException;
-
- /**
- * Default implementation that calls acquireRead (TimeValue) with a
- * null timeout.
- *
- *@see AbstractLock#acquireRead
- */
- public int acquireRead () throws InterruptedException
- {
- try {
- return acquireRead (null);
- } catch (TimeoutException e) {
- // This should never happen
- }
-
- return AbstractLock.FAILURE;
- }
-
- /**
- * Default implementation that calls acquire (TimeValue).
- *
- *@see AbstractLock#acquireRead(TimeValue)
- */
- public int acquireRead (TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- return acquire (timeout);
- }
-
- /**
- * Default implementation that calls acquire with a null
- * timeout.
- *
- *@see AbstractLock#acquireWrite
- */
- public int acquireWrite () throws InterruptedException
- {
- try {
- return acquire (null);
- } catch (TimeoutException e) {
- // This should never happen
- }
-
- return AbstractLock.FAILURE;
- }
-
- /**
- * Default implementation that calls acquire (TimeValue).
- *
- *@see AbstractLock#acquireWrite(TimeValue)
- */
- public int acquireWrite (TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- return acquire (timeout);
- }
-
- /**
- * Default implementation that calls renew (int, TimeValue) with
- * a null timeout.
- *
- *@see AbstractLock#renew(int)
- */
- public int renew (int requeuePosition) throws InterruptedException
- {
- try
- {
- return renew (requeuePosition, null);
- } catch (TimeoutException e) {
- // Note that this should never happen since we requested a
- // blocking acquire.
- return AbstractLock.FAILURE;
- }
- }
-
- /**
- * Give up the lock to some waiting threads (if any), then reacquire
- * by the given absolute time time-out.
- * <P>
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token.
- * <P>
- * A value of null for the timeout should indicate a blocking renew.
- * <P>
- *@param requeuePosition position in the waiters queue to insert
- * this thread. If this value is -1 and there are other
- * threads waiting to obtain the token, this thread is queued
- * at the end. If this value is greater than -1, then it
- * indicates how many entries to skip over before inserting
- * our thread into the queue. (For example, if it is 0,
- * this thread is put at the front of the queue.) If this
- * value is greater than the number of waiters, this thread is
- * simply put at the end of the current waiters queue.
- *
- *@param timeout absolute time by which the lock must be reacquired
- *
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public abstract int renew (int requeuePosition,
- TimeValue timeout)
- throws TimeoutException,
- InterruptedException;
-
- /**
- * Default implementation that calls tryAcquire ().
- *
- *@see AbstractLock#tryAcquireRead
- */
- public int tryAcquireRead ()
- {
- return tryAcquire ();
- }
-
- /**
- * Default implementation that calls tryAcquire ().
- *
- *@see AbstractLock#tryAcquireWrite
- */
- public int tryAcquireWrite ()
- {
- return tryAcquire ();
- }
- /**
- * Try to acquire the lock without blocking.
- * <P>
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- */
- public abstract int tryAcquire ();
-
- /**
- * Default implementation as a no-op.
- *
- *@see AbstractLock#sleepHook
- */
- public void sleepHook ()
- {
- }
-
- /**
- * Release ownership of this lock.
- * <P>
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- */
- public abstract int release ();
-
- /**
- * Obtains an Object which uniquely identifies the current accessor
- * (usually a thread). This is used to make sure only an owner can
- * perform certain operations like release. Subclasses can redefine
- * the behavior as necessary, such as in the Token service where it is
- * defined to be the client ID sent by the proxy.
- * <P>
- * When using Java 1.2 or later, it might be more efficient to use
- * ThreadLocal and an Integer for the ID. The current default
- * implementation returns the Thread.currentThread () reference.
- *
- *@return Object representing a unique ID for this accessor
- */
- protected Object accessorID ()
- {
- return Thread.currentThread();
- }
-
- /**
- * Check to see if the current accessor is the (or a) owner of this
- * lock.
- */
- protected boolean isOwner()
- {
- return accessorID().equals(this.owner_);
- }
-
- /**
- * Set the current accessor to be the (or a) owner of this lock.
- */
- protected void setOwner()
- {
- this.owner_ = accessorID();
- }
-
- /**
- * Make sure that this accessor is no longer the (or a) owner of this
- * lock.
- */
- protected void clearOwner()
- {
- this.owner_ = null;
- }
-
- /**
- * Reference to the accessorID of the owner.
- */
- private Object owner_;
-}
diff --git a/java/JACE/Concurrency/LockException.java b/java/JACE/Concurrency/LockException.java
deleted file mode 100644
index dff4c09c626..00000000000
--- a/java/JACE/Concurrency/LockException.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package JACE.Concurrency;
-
-/**
- * Base class for possible exceptions thrown from Lock
- * mechanisms. This can be used by later Lock
- * implementations to signal special types of exceptions, such
- * as a remote failure, etc.
- * <P>
- */
-public class LockException extends java.lang.Exception
-{
- /**
- * Default constructor
- */
- public LockException () { }
-
- /**
- * Constructor with a string message that will be returned
- * via the getMessage() method on Exception.
- * <P>
- *@see java.lang.Exception#getMessage
- */
- public LockException (String message)
- {
- super(message);
- }
-}
-
diff --git a/java/JACE/Concurrency/Mutex.java b/java/JACE/Concurrency/Mutex.java
deleted file mode 100644
index 856fdbd79eb..00000000000
--- a/java/JACE/Concurrency/Mutex.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Mutex.java
- *
- *@author Prashant Jain
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.ASX.*;
-
-/**
- * Value added abstraction for mutex variable creation.
- *
- * A mutex whose operations do not block forever and can time out.
- * <P>
- * <EM>This class does not support recursive semantics.</EM>
- */
-public class Mutex extends LockAdapter
-{
- /**
- * Acquire ownership of the lock, blocking indefinitely if necessary.
- * <P>
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public synchronized int acquire () throws InterruptedException
- {
- if (this.monitor_.condition ()) {
- this.monitor_.condition (false);
- setOwner ();
- return AbstractLock.SUCCESS;
- }
-
- this.numberOfWaiters_++;
- try {
- sleepHook ();
- this.monitor_.timedWait ();
- } finally {
- this.numberOfWaiters_--;
- }
- this.monitor_.condition (false);
- setOwner();
-
- return AbstractLock.SLEEPHOOK;
- }
-
- public int renew (int requeuePosition,
- TimeValue timeout)
- throws InterruptedException,
- TimeoutException
- {
- RenewObject rwo;
-
- synchronized (this) {
-
- if (!this.isOwner ())
- return AbstractLock.FAILURE;
-
- if (numberOfWaiters_ == 0 || requeuePosition == 0)
- return AbstractLock.SUCCESS;
-
- if (requeuePosition < 0 || requeuePosition > numberOfWaiters_)
- requeuePosition = numberOfWaiters_;
-
- rwo = new RenewObject (requeuePosition);
-
- this.release ();
- this.renewers_.addElement (rwo);
- }
-
- // We can't have the method synchronized, or synchronize on (this)
- // in here because then the Thread that was woken up won't be able
- // to continue its acquire.
- //
- // Normally when an exception occurs in timedWait, this thread just
- // needs to remove itself from the renewers queue.
- //
- // However, the following situation exists:
- // Thread A is the current owner, and is doing processing in release()
- // This thread generates a timeout exception in timedWait
- // Thread A signals this thread to wake up and take ownership, and
- // removes it from the queue.
- // This thread never takes ownership -- the exception keeps going up.
- //
- // This could lead to other renewers waiting in limbo forever.
- //
- // Solution: If this thread has an exception and it looks like it
- // has been proclaimed the owner, then it calls release and lets
- // the exception continue.
-
- boolean exceptionOccured = true;
- try {
- synchronized (rwo) {
- rwo.timedWait (timeout);
-
- exceptionOccured = false;
- }
- } finally {
- if (exceptionOccured) {
- synchronized (this) {
- if (!renewers_.removeElement (rwo)) {
- setOwner ();
- release ();
- }
- }
- }
- }
-
- synchronized (this) {
- setOwner ();
- }
-
- // By this point, we should know that we have the lock. The condition
- // flag is never set to true in the release() call from the Thread
- // that gave us control.
-
- return AbstractLock.SUCCESS;
- }
-
- public synchronized int tryAcquire () {
- if (this.monitor_.condition ()) {
- this.monitor_.condition (false);
- setOwner();
- return AbstractLock.SUCCESS;
- } else
- return AbstractLock.FAILURE;
- }
-
- public synchronized int acquire (TimeValue tv)
- throws TimeoutException, InterruptedException
- {
- if (this.monitor_.condition ()) {
- this.monitor_.condition (false);
- setOwner ();
- return AbstractLock.SUCCESS;
- }
-
- this.numberOfWaiters_++;
- try {
- sleepHook ();
- this.monitor_.timedWait (tv);
- } finally {
- this.numberOfWaiters_--;
- }
- this.monitor_.condition (false);
- setOwner();
-
- return AbstractLock.SLEEPHOOK;
- }
-
- /**
- * Checks any objects in the renewers queue, giving one of them
- * the lock if it is appropriate. Assumes the synchronization
- * lock is already held.
- *
- *@return true if a renewer was signaled, else false
- */
- protected boolean signalNextRenewer ()
- {
- // First find the renewer with the minimum yieldTo count, processing
- // all of them along the way.
- if (this.renewers_.size() > 0) {
-
- RenewObject renewer = (RenewObject)renewers_.
- elementAt (renewers_.size () - 1);
-
- renewer.decrementYieldTo ();
-
- for (int i = this.renewers_.size() - 2; i >=0; i--) {
-
- RenewObject rwo = (RenewObject)renewers_.elementAt (i);
-
- rwo.decrementYieldTo ();
-
- renewer = renewer.min (rwo);
- }
-
- // If the renewer with the minimum yieldTo count has yielded to
- // enough threads, or if there are no waiting threads, it should
- // be signaled (thus, it wakes up and obtains the lock again).
-
- if (renewer.condition () || numberOfWaiters_ == 0) {
- // Note that we leave monitor_.condition in the false state so
- // we are assured that only the renewer (and not another
- // Thread that does an acquire) will gain control. This
- // is important since the renew method can't be synchronized
- // in its current implementation.
- renewers_.removeElement(renewer);
-
- synchronized (renewer) {
- renewer.signal ();
- }
-
- return true;
- }
- }
-
- return false;
- }
-
- public synchronized int release ()
- {
- if (!isOwner())
- return AbstractLock.FAILURE;
-
- if (!signalNextRenewer ()) {
- // Do a normal release if there are no threads waiting to renew
- // or no such threads are ready to renew.
- this.monitor_.condition (true);
- this.monitor_.signal ();
- }
-
- return AbstractLock.SUCCESS;
- }
-
- /**
- * Monitor used to signal whether or not this Mutex is available.
- */
- protected WaitObject monitor_ = new WaitObject (true, this);
- // The monitor (adapter) to wait on
-
- /**
- * Queue of waiting renewers.
- */
- protected Vector renewers_ = new Vector ();
-
- /**
- * Number of waiting threads.
- */
- protected int numberOfWaiters_ = 0;
-}
diff --git a/java/JACE/Concurrency/RWMutex.java b/java/JACE/Concurrency/RWMutex.java
deleted file mode 100644
index abb30ce3bc8..00000000000
--- a/java/JACE/Concurrency/RWMutex.java
+++ /dev/null
@@ -1,268 +0,0 @@
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.ASX.*;
-
-/**
- * A read/write lock allows multiple
- * readers or a single writer to access the guarded element.
- * <P>
- * <EM>This class does not support recursive semantics.</EM>
- */
-public class RWMutex extends LockAdapter
-{
- public synchronized int tryAcquire ()
- {
- if (referenceCount_ == 0) {
- referenceCount_ = -1;
- setOwner ();
- return AbstractLock.SUCCESS;
- } else
- return AbstractLock.FAILURE;
- }
-
- public synchronized int tryAcquireRead ()
- {
- if (referenceCount_ > -1 && waiters_.size () == 0) {
- referenceCount_++;
- setOwner ();
- return AbstractLock.SUCCESS;
- } else
- return AbstractLock.FAILURE;
- }
-
- public int acquire(TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- return acquireWrite(timeout);
- }
-
- public void waitUntilIsOwner (RWWaitObject waitObj, TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- boolean exceptionOccured = true;
- try {
- sleepHook ();
- synchronized (waitObj) {
- waitObj.timedWait (timeout);
- }
- exceptionOccured = false;
- } finally {
-
- synchronized (this) {
-
- if (exceptionOccured) {
- if (!waiters_.removeElement (waitObj)) {
- setOwner ();
- release ();
- }
- } else
- setOwner();
- }
- }
- }
-
- public int acquireRead(TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- RWWaitObject waitObj = null;
-
- synchronized (this) {
-
- if (referenceCount_ > -1 && waiters_.size () == 0) {
- referenceCount_++;
- setOwner ();
- return AbstractLock.SUCCESS;
- }
-
- waitObj = new RWWaitObject (true);
-
- waiters_.addElement (waitObj);
- }
-
- waitUntilIsOwner (waitObj, timeout);
-
- return AbstractLock.SLEEPHOOK;
- }
-
- public int acquireWrite(TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- RWWaitObject waitObj = null;
-
- synchronized (this) {
-
- if (referenceCount_ == 0) {
- referenceCount_ = -1;
- setOwner ();
- return AbstractLock.SUCCESS;
- }
-
- waitObj = new RWWaitObject (false);
-
- waiters_.addElement (waitObj);
- }
-
- waitUntilIsOwner (waitObj, timeout);
-
- // When the writer gets here, it has been cleared to go by
- // whatever thread specifically gave control to this writer in
- // release. The referenceCount_ and numberOfWaitingWriters_
- // variables are also adjusted by the releasing thread since
- // it already has a synchronization lock. Not doing that,
- // and then having another synchronized (this) block in here
- // could lead to a situation in which another thread sneaks
- // in inbetween when this thread leaves timedWait and goes to
- // adjust them.
-
- return AbstractLock.SLEEPHOOK;
- }
-
-
- public synchronized int release ()
- {
- if (!isOwner ())
- return AbstractLock.FAILURE;
-
- clearOwner ();
-
- // Releasing a reader.
- if (referenceCount_ > 0) {
- referenceCount_--;
-
- if (referenceCount_ != 0)
- return AbstractLock.SUCCESS;
-
- } else {
- // releasing a writer
- referenceCount_ = 0;
- }
-
- if (waiters_.size () == 0)
- return AbstractLock.SUCCESS;
-
- if (releaseFirstReaders () == 0) {
- RWWaitObject waitObj = (RWWaitObject)waiters_.firstElement ();
- waiters_.removeElementAt (0);
-
- referenceCount_ = -1;
-
- waitObj.condition (true);
- synchronized (waitObj) {
- waitObj.signal ();
- }
- }
-
- return AbstractLock.SUCCESS;
- }
-
- // Releases all waiting readers up to the first waiting writer
- // or the end of the queue. Returns the number of readers
- // released.
- protected int releaseFirstReaders ()
- {
- int releasedReaders = 0;
-
- do {
-
- RWWaitObject waitObj = (RWWaitObject)waiters_.firstElement ();
- if (!waitObj.isReader ())
- break;
-
- waiters_.removeElementAt (0);
-
- referenceCount_++;
- releasedReaders++;
-
- waitObj.condition (true);
- synchronized (waitObj) {
- waitObj.signal ();
- }
-
- } while (waiters_.size () > 0);
-
- return releasedReaders;
- }
-
- public int renew (int requeuePosition,
- JACE.ASX.TimeValue timeout)
- throws InterruptedException,
- TimeoutException
- {
- RWWaitObject waitObj = null;
-
- synchronized (this) {
-
- if (!isOwner ())
- return AbstractLock.FAILURE;
-
- if (requeuePosition == 0 || waiters_.size () == 0)
- return AbstractLock.SUCCESS;
-
- waitObj = new RWWaitObject (referenceCount_ > 0);
-
- if (requeuePosition < 0 || requeuePosition > waiters_.size ()) {
- requeuePosition = waiters_.size ();
- }
-
- waiters_.insertElementAt (waitObj, requeuePosition);
-
- release ();
- }
-
- waitUntilIsOwner (waitObj, timeout);
-
- // When the writer gets here, it has been cleared to go by
- // whatever thread specifically gave control to this writer in
- // release. The referenceCount_ and numberOfWaitingWriters_
- // variables are also adjusted by the releasing thread since
- // it already has a synchronization lock. Not doing that,
- // and then having another synchronized (this) block in here
- // could lead to a situation in which another thread sneaks
- // in inbetween when this thread leaves timedWait and goes to
- // adjust them.
-
- return AbstractLock.SUCCESS;
- }
-
- static class RWWaitObject extends WaitObject
- {
- public RWWaitObject (boolean isReader)
- {
- isReader_ = isReader;
- }
-
- public boolean isReader ()
- {
- return isReader_;
- }
-
- private boolean isReader_ = false;
- }
-
- protected boolean isOwner ()
- {
- return owners_.containsKey (accessorID());
- }
-
- protected void setOwner ()
- {
- owners_.put (accessorID(), this);
- }
-
- protected void clearOwner ()
- {
- owners_.remove (accessorID());
- }
-
- private Vector waiters_ = new Vector ();
-
- private int referenceCount_ = 0;
- // Value is -1 if writer has the lock, else this keeps track of the
- // number of readers holding the lock.
-
- private Hashtable owners_ = new Hashtable ();
-
- private int nestingLevel_ = 0;
-}
-
diff --git a/java/JACE/Concurrency/RenewObject.java b/java/JACE/Concurrency/RenewObject.java
deleted file mode 100644
index b690958968a..00000000000
--- a/java/JACE/Concurrency/RenewObject.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package JACE.Concurrency;
-
-import JACE.ASX.TimedWait;
-
-class RenewObject extends TimedWait
-{
- public RenewObject (int maxYieldTo)
- {
- yieldTo_ = maxYieldTo;
- }
-
- public boolean condition ()
- {
- return yieldTo_ <= 0;
- }
-
- public void decrementYieldTo()
- {
- this.yieldTo_--;
- }
-
- public int yieldTo ()
- {
- return this.yieldTo_;
- }
-
- public RenewObject min (RenewObject other)
- {
- if (other.yieldTo_ < this.yieldTo_)
- return other;
- else
- return this;
- }
-
- private int yieldTo_;
-}
diff --git a/java/JACE/Concurrency/Semaphore.java b/java/JACE/Concurrency/Semaphore.java
deleted file mode 100644
index 5e558035aee..00000000000
--- a/java/JACE/Concurrency/Semaphore.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Semaphore.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.ASX.*;
-
-/**
- * Implementation of Dijkstra's counting semaphore in java.
- * <P>
- * <EM>This class does not support recursive semantics.</EM>
- */
-public class Semaphore extends LockAdapter
-{
- static class TimedWaitSAdapter extends JACE.ASX.TimedWait
- {
- TimedWaitSAdapter (Object obj)
- {
- super (obj);
- }
-
- // Check to see if there are any semaphores available.
- public boolean condition ()
- {
- return this.count_ > 0;
- }
-
- // Increment the count by one
- public void increment ()
- {
- this.count_++;
- }
-
- // Decrement the count by one
- public void decrement ()
- {
- this.count_--;
- }
-
- // Set the count
- public void count (int c)
- {
- this.count_ = c;
- }
-
- public int count ()
- {
- return this.count_;
- }
-
- private int count_ = 0;
- }
-
- /**
- * Create a Semaphore.
- *@param count semaphore count
- */
- public Semaphore (int c)
- {
- this.monitor_.count (c);
- this.owners_ = new Hashtable (c);
- }
-
- /**
- * Create a binary Semaphore.
- */
- public Semaphore ()
- {
- this.monitor_.count (1);
- this.owners_ = new Hashtable (1);
- }
-
- public synchronized int tryAcquire ()
- {
- if (this.monitor_.condition ()) {
- this.monitor_.decrement ();
- setOwner ();
- return AbstractLock.SUCCESS;
- } else
- return AbstractLock.FAILURE;
- }
-
- /**
- * Acquire the Semaphore. Throws a TimeoutException if the semaphore
- * isn't acquired before the given absolute time.
- *@param tv time (TimeValue) to wait until before throwing a
- * TimeoutException (unless the semaphore is acquired before that)
- *@exception TimeoutException wait timed out exception
- *@exception InterruptedException exception during wait
- */
- public synchronized int acquire (TimeValue tv)
- throws TimeoutException, InterruptedException
- {
- if (this.monitor_.condition ()) {
- this.monitor_.decrement ();
- setOwner ();
- return AbstractLock.SUCCESS;
- }
-
- numberOfWaiters_++;
-
- try {
- sleepHook ();
- this.monitor_.timedWait (tv);
- } finally {
- numberOfWaiters_--;
- }
-
- this.monitor_.decrement ();
- setOwner ();
-
- return AbstractLock.SLEEPHOOK;
- }
-
- public synchronized int release ()
- {
- if (!isOwner ())
- return AbstractLock.FAILURE;
-
- if (!signalNextRenewer ()) {
- this.monitor_.increment ();
- this.monitor_.signal ();
- clearOwner ();
- }
-
- return AbstractLock.SUCCESS;
- }
-
- /**
- * Checks any objects in the renewers queue, giving one of them
- * the lock if it is appropriate. Assumes the synchronization
- * lock is already held.
- *
- *@return true if a renewer was signaled, else false
- */
- protected boolean signalNextRenewer ()
- {
- // First find the renewer with the minimum yieldTo count, processing
- // all of them along the way.
- if (this.renewers_.size() > 0) {
-
- RenewObject renewer = (RenewObject)renewers_.
- elementAt (renewers_.size () - 1);
-
- renewer.decrementYieldTo ();
-
- for (int i = this.renewers_.size() - 2; i >=0; i--) {
-
- RenewObject rwo = (RenewObject)renewers_.elementAt (i);
-
- rwo.decrementYieldTo ();
-
- renewer = renewer.min (rwo);
- }
-
- // If the renewer with the minimum yieldTo count has yielded to
- // enough threads, or if there are no waiting threads, it should
- // be signaled (thus, it wakes up and obtains the lock again).
-
- if (renewer.condition () || numberOfWaiters_ == 0) {
- // Note that we leave monitor_.inUse in the true state so
- // we are assured that only the renewer (and not another
- // Thread that does an acquire) will gain control. This
- // is important since the renew method can't be synchronized
- // in its current implementation.
- renewers_.removeElement(renewer);
-
- synchronized (renewer) {
- renewer.signal ();
- }
-
- return true;
- }
- }
-
- return false;
- }
-
- public int renew (int requeuePosition,
- JACE.ASX.TimeValue timeout)
- throws InterruptedException,
- TimeoutException
- {
- RenewObject rwo;
-
- synchronized (this) {
-
- if (!this.isOwner ())
- return AbstractLock.FAILURE;
-
- if (numberOfWaiters_ == 0 ||
- requeuePosition == 0 ||
- this.monitor_.condition ())
- return AbstractLock.SUCCESS;
-
- if (requeuePosition < 0 || requeuePosition > numberOfWaiters_)
- requeuePosition = numberOfWaiters_;
-
- rwo = new RenewObject (requeuePosition);
-
- this.release ();
- this.renewers_.addElement (rwo);
- }
-
- boolean exceptionOccured = true;
- try {
- synchronized (rwo) {
- rwo.timedWait (timeout);
-
- exceptionOccured = false;
- }
- } finally {
- synchronized (this) {
-
- if (exceptionOccured) {
- if (!renewers_.removeElement (rwo)) {
- setOwner ();
- release ();
- }
- } else {
- setOwner();
- }
- }
- }
-
- // By this point, we should know that we have the lock. The inUse
- // flag is never set to false in the release() call from the Thread
- // that gave us control. That thread also set the owner value.
-
- return AbstractLock.SUCCESS;
- }
-
- protected boolean isOwner ()
- {
- return owners_.containsKey (accessorID());
- }
-
- protected void setOwner ()
- {
- owners_.put (accessorID(), this);
- }
-
- protected void clearOwner ()
- {
- owners_.remove (accessorID());
- }
-
- private TimedWaitSAdapter monitor_ = new TimedWaitSAdapter (this);
- // The monitor (adapter) to wait on
-
- private Hashtable owners_;
- private Vector renewers_ = new Vector ();
- private int numberOfWaiters_ = 0;
-}
diff --git a/java/JACE/Concurrency/ThreadManager.java b/java/JACE/Concurrency/ThreadManager.java
deleted file mode 100644
index d23e2410676..00000000000
--- a/java/JACE/Concurrency/ThreadManager.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * ThreadManager.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.OS.*;
-
-/**
- * Wrapper for a ThreadGroup which provides additional methods for
- * creating a certain number of Runnable instances.
- */
-public class ThreadManager
-{
- /**
- * Default constructor
- */
- public ThreadManager ()
- {
- this (ACE.DEFAULT_THREAD_GROUP_NAME);
- }
-
- /**
- * Create a Thread Manager.
- *@param groupName name of the thread group that the Thread Manager
- * will manage
- */
- public ThreadManager (String groupName)
- {
- this.thrGrp_ = new ThreadGroup (groupName);
- if (this.thrGrp_ == null)
- ACE.ERROR ("Thread group create failed");
- }
-
- /**
- * Create a new thread.
- *@param thr the caller whose run method will be invoked when the
- * thread has been spawned
- *@param daemon flag indicating whether the thread should be
- * spawned off as a daemon thread
- */
- public void spawn (Runnable thr,
- boolean daemon)
- {
- Thread t = new Thread (this.thrGrp_, thr);
- if (daemon) // Set the thread to be a daemon thread
- t.setDaemon (true);
- t.start ();
- }
-
- /**
- * Create a new thread and also give it a name.
- *@param thr the caller whose run method will be invoked when the
- * thread has been spawned
- *@param threadName the name of the new thread
- *@param daemon flag indicating whether the thread should be
- * spawned off as a daemon thread
- */
- public void spawn (Runnable thr,
- String threadName,
- boolean daemon)
- {
- Thread t = new Thread (this.thrGrp_, thr, threadName);
- if (daemon) // Set the thread to be a daemon thread
- t.setDaemon (true);
- t.start ();
- }
-
-
- /**
- * Create <n> new threads.
- *@param n the number of threads to spawn
- *@param thr the caller whose run method will be invoked by each of
- * the <n> threads
- *@param daemon flag indicating whether the threads should be
- * spawned off as daemon threads
- */
- public void spawnN (int n,
- Runnable thr,
- boolean daemon)
- {
- // Spawn off all the threads.
- for (int i = 0; i < n; i++)
- {
- this.spawn (thr, daemon);
- }
- }
-
- /**
- * Get the thread group containing all the threads. Note that the
- * thread group can be used to get information regarding number of
- * active threads as well as to suspend/resume all the threads in
- * the group.
- *@return the thread group that contains all the threads managed by
- * the Thread Manager
- */
- public ThreadGroup thrGrp ()
- {
- return this.thrGrp_;
- }
-
- private ThreadGroup thrGrp_;
- // Thread Group that contains all the spawned threads
-
-}
diff --git a/java/JACE/Concurrency/Token.java b/java/JACE/Concurrency/Token.java
deleted file mode 100644
index c9080b47fbe..00000000000
--- a/java/JACE/Concurrency/Token.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Token.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.ASX.*;
-
-import JACE.OS.*;
-
-/**
- * Class that acquires, renews, and releases a synchronization
- * token that is serviced in strict FIFO ordering.
- * <P>
- * This is a general-purpose synchronization mechanism that offers
- * several benefits. For example, it implements "recursive mutex"
- * semantics, where a thread that owns the token can reacquire it
- * without deadlocking. In addition, threads that are blocked
- * awaiting the token are serviced in strict FIFO order as other
- * threads release the token. The solution makes use of the
- * Specific Notification pattern presented by Tom Cargill in
- * "Specific Notification for Java Thread Synchronization," PLoP96.
- *
- * <P>
- * This class DOES support recursive semantics.
- */
-public class Token extends LockAdapter
-{
- /**
- * Acquire ownership of the lock, blocking indefinitely if necessary.
- * <P>
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception InterruptedException indicates another thread has
- * interrupted this one during wait
- */
- public int acquire () throws InterruptedException
- {
- try
- {
- return this.acquire (null);
- }
- catch (TimeoutException e)
- {
- // This really shouldn't happen since we are supposed to
- // block.
- return AbstractLock.FAILURE;
- }
- }
-
- /**
- * Acquire the token by the given absolute time time-out. The
- * method uses synchronized blocks internally to avoid race conditions.
- *@param timeout time to wait until before throwing a
- * TimeoutException (unless the token is acquired before that).
- * Performs a blocking acquire if the given timeout is null.
- *@return AbstractLock.SUCCESS if acquires without calling <sleepHook>
- * AbstractLock.SLEEPHOOK if <sleepHook> is called.
- * AbstractLock.FAILURE if failure occurs
- *@exception TimeoutException if time-out occurs
- *@exception InterruptedException exception during wait
- */
- public int acquire (TimeValue timeout) throws TimeoutException,
- InterruptedException
- {
- int result = AbstractLock.SUCCESS;
- WaitObject snl = new WaitObject ();
- boolean mustWait;
- synchronized (snl)
- {
- synchronized (this)
- {
- mustWait = !this.snq_.isEmpty ();
-
- if (mustWait && isOwner ())
- {
- // I am the one who has the token. So just increment
- // the nesting level
- this.nestingLevel_++;
- return AbstractLock.SUCCESS;
- }
- // Add local lock to the queue
- this.snq_.addElement (snl);
- }
- if (mustWait)
- {
- result = AbstractLock.SLEEPHOOK;
- sleepHook();
-
- boolean exceptionOccured = true;
- try {
- snl.timedWait(timeout);
- exceptionOccured = false;
- } finally {
- if (exceptionOccured) {
- synchronized (this) {
- if (!snq_.removeElement (snl)) {
- setOwner ();
- release ();
- }
- }
- }
- }
- }
-
- // Set the owner of the token
- synchronized (this) {
- setOwner();
- }
- }
-
- return result;
- }
-
- /**
- * Try to acquire the token. Implements a non-blocking acquire.
- *
- *@return AbstractLock.SUCCESS if acquires
- * AbstractLock.FAILURE if failure occurs
- */
- public synchronized int tryAcquire ()
- {
- int result = AbstractLock.SUCCESS;
-
- if (this.snq_.isEmpty ())
- {
- // No one has the token, so acquire it
- this.snq_.addElement (new WaitObject ());
-
- setOwner();
- }
- else if (isOwner())
- {
- this.nestingLevel_++;
- }
- // Someone else has the token.
- else
- {
- // Would have to block to acquire the token, so return
- // failure.
- result = AbstractLock.FAILURE;
- }
- return result;
- }
-
- /**
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token. If the given TimeValue
- * is null, it's the same as calling renew(int requeuePosition).
- *@param requeuePosition Position in the queue where to insert the
- * lock. If requeuePosition == -1 and there are other threads
- * waiting to obtain the token we are queued at the end of the list
- * of waiters. If requeuePosition > -1 then it indicates how many
- * entries to skip over before inserting our thread into the list of
- * waiters (e.g.,requeuePosition == 0 means "insert at front of the
- * queue").
- *@param timeout Throw a TimeoutException if the token isn't renewed
- * before this absolute time timeout.
- *@return AbstractLock.SUCCESS if renewed the lock
- * AbstractLock.FAILURE if failure occurs
- *@exception TimeoutException exception if timeout occurs
- *@exception InterruptedException exception during wait
- */
- public int renew (int requeuePosition, TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- WaitObject snl = null;
- int saveNestingLevel = 0;
-
- synchronized (this)
- {
- if (!isOwner ())
- return AbstractLock.FAILURE;
-
- // Check if there is a thread waiting to acquire the token. If
- // not or if requeuePosition == 0, then we don't do anything
- // and we simply keep the token.
- if (this.snq_.size () > 1 && requeuePosition != 0)
- {
- // Save the nesting level
- saveNestingLevel = this.nestingLevel_;
- this.nestingLevel_ = 0;
-
- // Reinsert ourselves at requeuePosition in the queue
- snl = (WaitObject) this.snq_.firstElement ();
- this.snq_.removeElementAt (0);
-
- if (requeuePosition < 0)
- this.snq_.addElement (snl); // Insert at end
- else
- this.snq_.insertElementAt (snl, Math.min(requeuePosition,
- this.snq_.size()));
-
- synchronized (this.snq_.firstElement ())
- {
- // Notify the first waiting thread in the queue
- WaitObject obj = (WaitObject) this.snq_.firstElement ();
- // Set its condition to be true so that it falls out
- // of the for loop
- obj.condition (true);
- // Now signal the thread
- obj.signal ();
- }
- }
- }
-
- // Check if we reinserted the lock in the queue and therefore need
- // to do a wait
- if (snl != null)
- {
- synchronized (snl)
- {
- // Set the condition to be false so that we can begin the
- // wait
- snl.condition (false);
- // Wait until the given absolute time (or until notified
- // if the timeout is null)
-
- boolean exceptionOccured = true;
- try {
-
- snl.timedWait (timeout);
-
- exceptionOccured = false;
-
- } finally {
- if (exceptionOccured) {
- synchronized (this) {
- if (!snq_.removeElement (snl)) {
- setOwner ();
- release ();
- }
- }
- }
- }
- }
-
- synchronized (this) {
- // Restore the nesting level and current owner of the lock
- this.nestingLevel_ = saveNestingLevel;
-
- // Set the owner of the token
- setOwner();
- }
- }
-
- return AbstractLock.SUCCESS;
- }
-
- /**
- * Release the token. It is safe for non-owners to call
- * this.
- *@return AbstractLock.SUCCESS on success
- * AbstractLock.FAILURE on failure (for instance, a non-owner
- * calling release)
- */
- public synchronized int release ()
- {
- if (!isOwner())
- return AbstractLock.FAILURE;
-
- // Check if nestingLevel > 0 and if so, decrement it
- if (this.nestingLevel_ > 0)
- this.nestingLevel_--;
- else
- {
- clearOwner ();
- this.snq_.removeElementAt (0);
- if (!this.snq_.isEmpty ())
- {
- synchronized (this.snq_.firstElement ())
- {
- // Notify the first waiting thread in the queue
- WaitObject obj = (WaitObject) this.snq_.firstElement ();
- // Set its condition to be true so that it falls out
- // of the for loop
- obj.condition (true);
- // Now signal the thread
- obj.signal ();
- }
- }
- }
-
- return AbstractLock.SUCCESS;
- }
-
- private Vector snq_ = new Vector ();
- // Vector of lock objects
-
- private int nestingLevel_ = 0;
- // Current Nesting Level
-}
diff --git a/java/JACE/Concurrency/WaitObject.java b/java/JACE/Concurrency/WaitObject.java
deleted file mode 100644
index b7c8cbc7191..00000000000
--- a/java/JACE/Concurrency/WaitObject.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package JACE.Concurrency;
-
-import JACE.ASX.TimedWait;
-
-class WaitObject extends TimedWait
-{
- public WaitObject ()
- {
- super ();
- }
-
- public WaitObject (Object obj)
- {
- super (obj);
- }
-
- public WaitObject (boolean initialState)
- {
- condition_ = initialState;
- }
-
- public WaitObject (boolean initialState, Object obj)
- {
- super (obj);
- condition_ = initialState;
- }
-
- public boolean condition ()
- {
- return this.condition_;
- }
-
- public void condition (boolean c)
- {
- this.condition_ = c;
- }
-
- private boolean condition_ = false;
-}
diff --git a/java/JACE/Concurrency/package.html b/java/JACE/Concurrency/package.html
deleted file mode 100644
index ceadb36f662..00000000000
--- a/java/JACE/Concurrency/package.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Collection of concurrency mechanisms and a Thread manager.
-<P>
-JACE concurrency mechanisms now inherit from a common base class,
-AbstractLock. This allows users to write code without regard to
-whether a lock is local or remote.
-
-@see JACE.netsvcs.Token.RemoteLock
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#concurrency">Documents on ACE concurrency components</a>
-</BODY>
-</HTML>
-
-
diff --git a/java/JACE/Connection/AcceptStrategy.java b/java/JACE/Connection/AcceptStrategy.java
deleted file mode 100644
index 3af87865c79..00000000000
--- a/java/JACE/Connection/AcceptStrategy.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * AcceptStrategy.java
- *
- *@author Prashant Jain
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-
-/**
- * Interface for specifying a passive connection
- * acceptance strategy for a
- * <a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>
- * .
- * <P>
- * This class provides a strategy that manages passive
- * connection setup for an application, and can be extended
- * to define new strategies.
- * <P>
- *
- * The default implementation delegates to a generic Acceptor.
- *
- *@see SvcHandler
- *@see Acceptor
- */
-public class AcceptStrategy
-{
- /**
- * Create an instance of AcceptStrategy that delegates to the given
- * Acceptor.
- *@param port port number where the server will listen for connections
- *@param peer Acceptor instance to delegate to
- */
- AcceptStrategy (int port, Acceptor peer) throws IOException
- {
- this.acceptor_ = peer;
- this.open (port);
- }
-
- /**
- * Create an instance of Accept Strategy that delegates to Acceptor.
- *@param port port number where the server will listen for connections
- *@exception IOException couldn't open port
- */
- AcceptStrategy (int port) throws IOException
- {
- this.acceptor_ = new Acceptor ();
- this.open (port);
- }
-
- /**
- * Initialize AcceptStrategy.
- *@param port port number where the server will listen for connections
- *@exception IOException couldn't open port
- */
- public void open (int port) throws IOException
- {
- this.acceptor_.open (port);
- }
-
- /**
- * Accept connections into the SvcHandler. Note that subclasses
- * should overwrite this method to provide a different accept
- * strategy.
- *@param sh Svc Handler in which to accept the connection
- *@exception SocketException Socket error
- *@exception IOException Socket error
- *@return 0
- */
- public int acceptSvcHandler (SvcHandler sh) throws
- SocketException, IOException
- {
- return this.acceptor_.acceptSvcHandler (sh);
- }
-
- // The Acceptor we delegate to (if any)
- private Acceptor acceptor_;
-}
diff --git a/java/JACE/Connection/Acceptor.java b/java/JACE/Connection/Acceptor.java
deleted file mode 100644
index 00dbed4c056..00000000000
--- a/java/JACE/Connection/Acceptor.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * Acceptor.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-import JACE.ServiceConfigurator.*;
-
-/**
- * Abstract factory for creating a service handler
- * (<a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>),
- * accepting into the
- * <a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>, and activating the
- * <a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>.
- * <P>
- *
- * Implements the basic strategy for passively establishing
- * connections with applications. The <tt>Acceptor</tt>
- * is a factory for <tt>SvcHandler</tt> instances, and, by default
- * generates a new <tt>SvcHandler</tt> instance for each connection
- * esablished.
- *
- * <p>
- *
- * The user of this class <em>must</em> provide a
- * reference to a handler factory prior to calling <a
- * href="#accept()"><tt>accept</tt></a>, or an exception will be
- * thrown. The handler factory is identified by the meta-class for
- * the <tt>SvcHandler</tt>, and is typically obtained by calling <a
- * href="java.lang.Class#classForName(java.lang.String)"><tt>Class.classForName("SvcHandler")</tt></a>.
- *
- * <p>
- *
- * TCP is the transport mechanism used, via
- * <a href="ACE.SOCK_SAP.SOCKAcceptor.html#_top_"><tt>SOCKAcceptor</tt></a>,
- * <em>et.al.</em> The SvcHandler is instantiated with a concrete type
- * that performs the application-specific service.
- *
- * <P>
- *
- * This class is not directly related to the
- * <tt>AcceptorStrategy</tt> class.
- *
- *
- * @see java.lang.Class
- * @see JACE.Connection.SvcHandler
- * @see JACE.SOCK_SAP.SOCKAcceptor
- */
-public class Acceptor extends ServiceObject
-{
- /**
- * Create an instance of Acceptor. Default constructor. Note that if
- * an instance is created via this method, <tt>setHandlerFactory</tt>
- * must be called prior to using <tt>accept</tt>.
- *
- * @see JACE.Connection.Acceptor#setHandlerFactory
- */
- public Acceptor ()
- {
- }
-
- /**
- * Create an instance of Acceptor.
- *@param handlerFactory meta-class reference used to create
- * an instance of a SvcHandler when a connection is accepted
- * (typically obtained by calling <tt>Class.classForName</tt>).
- *
- *@see java.lang.Class#forName
- */
- public Acceptor (Class handlerFactory)
- {
- this.handlerFactory_ = handlerFactory;
- }
-
- /**
- * Set the handler factory. This is provided to aid the default
- * no-arg constructor.
- *@param handlerFactory meta-class reference used to create
- * an instance of a SvcHandler when a connection is accepted
- * (typically obtained by calling <tt>Class.forName</tt>).
- *
- *@see java.lang.Class#forName
- */
- public void setHandlerFactory (Class handlerFactory)
- {
- this.handlerFactory_ = handlerFactory;
- }
-
- /**
- * Initialize the Acceptor.
- *@param port TCP port number where the Acceptor will listen for connections
- *@exception IOException socket level exception
- */
- public void open (int port) throws IOException
- {
- this.port_ = port;
- this.sockAcceptor_ = new SOCKAcceptor (port);
- }
-
- /**
- * Template method for accepting connections. Delegates operational
- * activities to the following bridge methods:
- * <ul>
- * <li><tt>makeSvcHandler</tt></li>
- * <li><tt>acceptSvcHandler</tt></li>
- * <li><tt>activateSvcHandler</tt></li>
- * </ul>
- *
- * <p>
- *
- * The method first obtains a <tt>SvcHandler</tt> via
- * <tt>makeSvcHandler</tt>, accepts the connection <q>into</q> the
- * handler using <tt>acceptSvcHandler</tt>, and finally turns over
- * control to the handler with <tt>activateSvcHandler</tt>.
- *
- *@exception SocketException socket level error
- *@exception InstantiationException <tt>makeSvcHandler</tt> failure
- *@exception IllegalAccessException <tt>makeSvcHandler</tt> failure
- *@exception IOException socket level error
- */
- public void accept () throws SocketException,
- InstantiationException,
- IllegalAccessException,
- IOException
- {
-
- // Create a Svc_Handler using the appropriate Creation_Strategy
- SvcHandler sh = this.makeSvcHandler ();
-
- // Accept a connection into the SvcHandler using the appropriate
- // Accept_Strategy
- this.acceptSvcHandler (sh);
-
- // Activate the SvcHandler using the appropriate ActivationStrategy
- this.activateSvcHandler (sh);
- }
-
- /**
- * Bridge method for creating a <tt>SvcHandler</tt>. The default is to
- * create a new <SvcHandler>. However, subclasses can override this
- * policy to perform <SvcHandler> creation in any way that they like
- * (such as creating subclass instances of <SvcHandler>, using a
- * singleton, etc.)
- *@return a new instance of the SvcHandler
- *@exception InstantiationException could not create new SvcHandler
- *@exception IllegalAccessException no SvcHandler factory provided
- */
- protected SvcHandler makeSvcHandler ()
- throws InstantiationException, IllegalAccessException
- {
- // Create a new handler for the connection
- return (SvcHandler) handlerFactory_.newInstance ();
- }
-
- /**
- * Bridge method for accepting the new connection into the
- * <tt>SvcHandler</tt>. The default behavior delegates the work to
- * <tt>SOCKAcceptor.accept</tt>. However, subclasses can override this
- * strategy.
- *@param sh SvcHandler in which to accept the connection
- *@return 0
- *@exception SocketException socket level error
- *@exception IOException socket level error
- */
- protected int acceptSvcHandler (SvcHandler sh)
- throws SocketException, IOException
- {
- // Create a new stream
- SOCKStream sockStream = new SOCKStream ();
-
- // Block in accept. Returns when a connection shows up
- this.sockAcceptor_.accept (sockStream);
-
- // Set the streams for the new handler
- sh.setHandle (sockStream);
- return 0;
- }
-
- /**
- * Bridge method for activating a <tt>SvcHandler</tt>. The default
- * behavior of this method is to activate the <tt>SvcHandler</tt> by
- * calling its open() method (which allows the <tt>SvcHandler</tt> to
- * define its own concurrency strategy). However, subclasses can
- * override this strategy to do more sophisticated concurrency
- * activations.
- *@param sh SvcHandler to activate
- *@return 0
- */
- protected int activateSvcHandler (SvcHandler sh)
- {
- sh.open (null);
- return 0;
- }
-
- protected int port_ = ACE.DEFAULT_SERVER_PORT;
-
- // Handler class that should be instantiated when a connection is
- // made with a client
- protected Class handlerFactory_;
-
- // Our connection acceptance factory
- protected SOCKAcceptor sockAcceptor_;
-}
-
diff --git a/java/JACE/Connection/ActivateStrategy.java b/java/JACE/Connection/ActivateStrategy.java
deleted file mode 100644
index 91072a6c823..00000000000
--- a/java/JACE/Connection/ActivateStrategy.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * ActivateStrategy.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-
-/**
- * Bridge supporting activation strategy used by
- * <a href="ACE.Connection.StrategyAcceptor.html#_top_"><tt>StrategyAcceptor</tt></a>
- * <P>
- * Subclass and overload
- * <a href="#activateSvcHandler(ACE.Connection.SvcHandler)"><tt>activateSvcHandler</tt></a>
- * in order change the activation strategy. Then, submit this subclass to
- * <a href="ACE.Connection.StrategyAcceptor.html#_top_"><tt>StrategyAcceptor</tt></a>
- * as the activation strategy.
- *
- *@see StrategyAcceptor
- */
-public class ActivateStrategy
-{
- /**
- * Activate the Svc Handler. Note that subclasses should overwrite
- * this method to provide a different Activate strategy.
- *@param sh Svc Handler to activate
- *@return zero if success, non-zero for failure
- */
- public int activateSvcHandler (SvcHandler sh)
- {
- sh.open (null);
- return 0;
- }
-}
diff --git a/java/JACE/Connection/Blob.java b/java/JACE/Connection/Blob.java
deleted file mode 100644
index d3102c81aa2..00000000000
--- a/java/JACE/Connection/Blob.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * Blob.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-/**
- * Provides a way of reading from or writing to a remote file
- * using MessageBlocks.
- */
-public class Blob
-{
- /**
- * Initialize the Blob.
- *
- *@param filename File to read or write
- *@param hostname Host to contact for the file
- *@param port Port on which to connect
- */
- public int open (String filename, String hostname , int port)
- {
- this.filename_ = filename;
- this.hostname_ = hostname;
- this.port_ = port;
- return 0;
- }
-
- /**
- * Read a certain amount from the file.
- */
- public MessageBlock read (int length, int offset)
- {
- // Check if we have a valid length and a valid offset
- if (length < 0 || offset < 0)
- {
- ACE.ERROR ("Blob::read(): Negative length or offset");
- return null;
- }
-
- // Create a Blob Reader
- BlobReader blobReader = new BlobReader (length,
- offset,
- this.filename_,
- this.hostname_, this.port_);
-
- // Receive data
- MessageBlock mb = blobReader.receiveData ();
- if (blobReader.bytesRead () != length)
- return null;
- else
- return mb;
- }
-
- /**
- * Write a certain amount to the file.
- */
- public int write (MessageBlock mb, int length, int offset)
- {
- // Check if we have a valid length and a valid offset
- if (length < 0 || offset < 0)
- ACE.ERROR ("Blob::write(): Negative length or offset");
-
- // Create a Blob Writer
- BlobWriter blobWriter = new BlobWriter (mb, length, offset, this.filename_);
-
- try
- {
- // Connect to the server
- this.connector_.open (this.hostname_, this.port_);
- this.connector_.connect (blobWriter);
- }
- catch (UnknownHostException e)
- {
- ACE.ERROR (e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
-
- return blobWriter.bytesWritten ();
- }
-
- public int close ()
- {
- return 0;
- }
-
- String filename_;
- String hostname_;
- int port_;
- Connector connector_ = new Connector ();
-}
diff --git a/java/JACE/Connection/BlobHandler.java b/java/JACE/Connection/BlobHandler.java
deleted file mode 100644
index ec282bdeaa9..00000000000
--- a/java/JACE/Connection/BlobHandler.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * BlobHandler.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-public abstract class BlobHandler extends SvcHandler
-{
- public BlobHandler (int length, int offset, String filename)
- {
- this.length_ = length;
- this.offset_ = offset;
- this.filename_ = filename;
- }
-
- public abstract int open (Object obj);
-
- protected int length_ = 0;
- protected int offset_ = 0;
- protected String filename_ = null;
-}
-
diff --git a/java/JACE/Connection/BlobReader.java b/java/JACE/Connection/BlobReader.java
deleted file mode 100644
index 4de6b65bedc..00000000000
--- a/java/JACE/Connection/BlobReader.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * BlobReader.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-/**
- * Provides a way to read from a remote file using
- * MessageBlocks (and HTTP). <P>
- *
- * Created by Blob during a call to read.
- */
-public class BlobReader
-{
- public BlobReader (int length,
- int offset,
- String filename,
- String hostname,
- int port)
- {
- this.length_ = length;
- this.offset_= offset;
- this.filename_ = filename;
- this.hostname_ = hostname;
- this.port_ = port;
- }
-
-
- public MessageBlock receiveData ()
- {
- String hostname = this.hostname_;
- String filename = this.filename_;
-
- // Check if the filename begins with a "/" and if so, remove it
- // since we are concatenating a "/" to the hostname.
- if (this.filename_.startsWith ("/"))
- filename = this.filename_.substring (1);
-
- hostname = hostname + ":" + this.port_ + "/";
- // System.out.println (hostname + filename);
-
- // Allocate a buffer to hold the offset worth of data
- byte tempBuf [] = new byte [this.offset_];
- // Allocate a buffer to hold the actual data
- byte dataBuf [] = new byte [this.length_];
-
- try
- {
- // Create a URL to fetch the file
- URL url = new URL (this.protocol_ + hostname + filename);
-
- // Get the input stream and pipe it to a DataInputStream
- DataInputStream iStream = new DataInputStream (url.openStream ());
-
- // Read the offset worth of bytes
- iStream.readFully (tempBuf, 0, this.offset_);
-
- // Read length worth of bytes
- iStream.readFully (dataBuf, 0, this.length_);
- }
- catch (MalformedURLException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- // Cache number of bytes read
- this.bytesRead_ = this.length_;
- return new MessageBlock (new String (dataBuf, 0, this.length_));
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int bytesRead ()
- {
- return this.bytesRead_;
- }
-
- private String protocol_ = "http://";
-
- int length_ = 0;
- int offset_= 0;
- String filename_ = null;
- String hostname_ = "localhost";
- int port_ = 80;
-
- int bytesRead_ = 0;
-}
-
-
diff --git a/java/JACE/Connection/BlobWriter.java b/java/JACE/Connection/BlobWriter.java
deleted file mode 100644
index 18c9b092964..00000000000
--- a/java/JACE/Connection/BlobWriter.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * BlobWriter.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-/**
- * Provides a way to write to a remote file using MessageBlocks
- * (and HTTP). <P>
- *
- * Created by Blob during a write.
- */
-public class BlobWriter extends BlobHandler
-{
- public BlobWriter (MessageBlock mb,
- int length,
- int offset,
- String filename)
- {
- super (length, offset, filename);
- this.mb_ = mb;
- this.returnCode_ = -1;
-
- }
-
- /*******************************
- * This constructor should be used when using the basic HTTP 1.1
- * authentication scheme
- *******************************/
- public BlobWriter (MessageBlock mb,
- int length,
- int offset,
- String filename,
- String authentication)
- {
- super (length, offset, filename);
- this.mb_ = mb;
- this.returnCode_ = -1;
- this.authentication_ = authentication;
- }
-
-
- public int open (Object obj)
- {
- if (this.sendRequest () != 0)
- {
- ACE.ERROR ("BlobWriter::open():sendRequest failed");
- return -1;
- }
- else if (this.receiveReply () != 0)
- {
- ACE.ERROR ("BlobWriter::open():receiveReply failed");
- return -1;
- }
- return 0;
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int bytesWritten ()
- {
- return this.bytesWritten_;;
- }
-
- protected int sendRequest ()
- {
- // Check for sanity -- check if we have any data to send.
- if (this.offset_+ this.length_ > this.mb_.length ())
- {
- ACE.ERROR ("BlobWriter::sendRequest():Invalid offset/length");
- return -1;
- }
-
- if (this.sendHeader () == -1)
- {
- ACE.ERROR ("BlobWriter::sendHeader failed.");
- return -1;
- }
- else
- if (this.sendData () == -1)
- {
- ACE.ERROR ("BlobWriter::sendData failed.");
- return -1;
- }
- return 0;
- }
-
- // Send the header
- protected int sendHeader ()
- {
- String filename = this.filename_;
- // Check if the filename begins with a "/" and if it doesn't, add it
- if (!this.filename_.startsWith ("/"))
- filename = "/" + this.filename_;
-
- // Create the header, store the actual length in mesglen
- String mesg = this.requestPrefix_ + " " + filename + " " + this.requestSuffix_;
-
- if (this.authentication_ != null)
- mesg += "Authorization: Basic " + JACE.Connection.HTTPHelper.EncodeBase64(this.authentication_) + '\n';
-
- mesg += "Content-length: " + this.length_ + "\n";
-
- try
- {
- if (this.peer ().send (mesg) < 0)
- {
- ACE.ERROR ("Error sending request");
- return -1;
- }
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- return -1;
- }
- return 0;
- }
-
- // Send the data
- protected int sendData ()
- {
- // Get the actual data to send
- String data = this.mb_.base ().substring (this.offset_,
- this.offset_ + this.length_);
-
-
- try
- {
- // System.out.println (data);
- // Now send the data
- if (this.peer ().send (data) != this.length_)
- {
- ACE.ERROR ("Error sending file");
- return -1;
- }
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- return -1;
- }
- this.bytesWritten_ = this.length_;
- return 0;
- }
-
-
- protected int receiveReply ()
- {
- System.out.println("Waiting for reply");
-
- // Receive the reply from the server
- StringBuffer reply = new StringBuffer (1024);
-
- try
- {
- if (this.peer ().recv (reply) < 0)
- {
- ACE.ERROR ("Error receiving reply from server");
- return -1;
- }
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
-
- String s = reply.toString ();
-
- int index = -1;
- // Now parse the reply to see if it was a success or a failure
- if ((index = s.indexOf (replyPrefix_)) == -1)
- {
- ACE.ERROR ("Error receiving reply from server");
- return -1;
- }
-
- int codeIndex = index + replyPrefix_.length () + 1;
-
- // Assume code is a 3 digit number
- String codeString = s.substring (codeIndex, codeIndex + 3);
-
- returnCode_ = (new Integer (codeString)).intValue ();
- // System.out.println (code);
-
- if (returnCode_ >= 200 && returnCode_ < 300) { // Check if everything went smoothly
- System.out.println("We got the goodies!");
- return 0;
- } else
- return -1;
- }
-
- public int returnCode ()
- {
- return this.returnCode_;
- }
-
- protected String authentication_ = null;
- protected String protocol_ = "http://";
- protected int bytesWritten_ = 0;
- protected MessageBlock mb_ = null;
- protected String requestPrefix_ = "PUT";
- protected String requestSuffix_ = "HTTP/1.0\n";
- protected String replyPrefix_ = "HTTP/1.0";
- protected int returnCode_;
-}
-
-
diff --git a/java/JACE/Connection/Connector.java b/java/JACE/Connection/Connector.java
deleted file mode 100644
index dbe72b8c359..00000000000
--- a/java/JACE/Connection/Connector.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * Connector.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-import JACE.ServiceConfigurator.*;
-
-/**
- * Abstract factory for connecting a
- * (<a href="JACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>),
- * to an application.
- * <P>
- * Implements the basic strategy for actively establishing connections
- * with applications. The <tt>Connector</tt> establishes the connection,
- * passing it on to a <tt>SvcHandler</tt> instance, and handing over
- * control to that instance.
- *<p>
- * TCP is the transport mechanism used, via
- * <a href="JACE.SOCK_SAP.SOCKConnector.html#_top_"><tt>SOCKConnector</tt></a>.
- *<P>
- * This class, as currently implemented, does not work like its C++
- * counterpart.
- * Future versions are expected to rectify this discrepancy.
- *
- *@see SOCKConnector
- *@see SvcHandler
- */
-public class Connector extends ServiceObject
-{
- /**
- * Create a Connector. Do nothing constructor. Allows user to
- * call <a href="#open(java.lang.String)">open</a>() later.
- */
- public Connector ()
- {
- }
-
- /**
- * Create a Connector passing in server hostname and port
- * number, effectively shorthand for calling
- * <a href="#open(java.lang.String)">open</a>().
- *@param hostname server hostname
- *@param port server port number
- */
- public Connector (String hostname, int port)
- {
- this.open (hostname, port);
- }
-
- /**
- * Initialize the Connector passing in server hostname and port
- * number. Note that no connection attempt is made.
- *@param hostname server hostname
- *@param port server port number
- */
- public void open (String hostname, int port)
- {
- this.hostname_ = hostname;
- this.port_ = port;
- }
-
- /**
- * Connect to the server.
- *@param sh Svc Handler to use to handle the connection
- *@exception UnknownHostException Bad host
- *@exception SocketException Socket error
- *@exception InstantiationException Couldn't create new SOCKConnector
- *@exception IllegalAccessException No strategy available
- *@exception IOException Socket error
- */
- public void connect (SvcHandler sh) throws UnknownHostException,
- SocketException,
- InstantiationException,
- IllegalAccessException,
- IOException
- {
- // Make a connection using the appropriate Connection_Strategy
- this.connectSvcHandler (sh);
-
- // Activate the Svc_Handler using the appropriate Activation_Strategy
- this.activateSvcHandler (sh);
- }
-
- /**
- * Bridge method for making a new connection. The default behavior
- * creates a new SOCKConnector and then calls setHandle() on the
- * <SvcHandler> that was passed in. Subclasses can override this
- * strategy, if needed.
- *@param sh Svc Handler to use to handle the connection
- *@return 0
- *@exception SocketException Socket error
- *@exception IOException Socket error
- */
- protected int connectSvcHandler (SvcHandler sh) throws
- SocketException, IOException
- {
- // Create a new stream
- SOCKStream sockStream = new SOCKStream ();
-
- // Create a SOCK_Connector (note the constructor does the connect for us)
- this.sockConnector_ = new SOCKConnector (sockStream,
- this.hostname_,
- this.port_);
- ACE.DEBUG ("Connected to " +
- sockStream.socket ().getInetAddress ());
-
- // Set the streams for the new handler
- sh.setHandle (sockStream);
- return 0;
- }
-
- /**
- * Bridge method for activating a <SvcHandler>. The default
- * behavior of this method is to activate the <SvcHandler> by
- * calling its open() method (which allows the SVC_HANDLER to define
- * its own concurrency strategy). However, subclasses can override
- * this strategy to do more sophisticated concurrency activations.
- *@param sh Svc Handler to activate
- *@return 0
- */
- protected int activateSvcHandler (SvcHandler sh)
- {
- sh.open (null);
- return 0;
- }
-
-
- // Port server is listening on
- private int port_;
-
- // Server hostname
- private String hostname_;
-
- // Our connection factory
- private SOCKConnector sockConnector_;
-}
diff --git a/java/JACE/Connection/CreationStrategy.java b/java/JACE/Connection/CreationStrategy.java
deleted file mode 100644
index f4828d5bff5..00000000000
--- a/java/JACE/Connection/CreationStrategy.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * CreationStrategy.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-/**
- * Defines the interface for specifying a creation strategy for a
- * <a href="ACE.Connection.SvcHandler.html#_top_"><tt>SvcHandler</tt></a> to the
- * <a href="ACE.Connection.StrategyAcceptor.html#_top_"><tt>StrategyAcceptor</tt></a>.
- * <P>
- * The default behavior is to make a new SvcHandler. However,
- * subclasses can override this strategy to perform SvcHandler
- * creation in any way that they like (such as creating subclass
- * instances of SvcHandler, using a singleton, dynamically
- * linking the handler, etc.).
- *
- *@see SvcHandler
- *@see StrategyAcceptor
- *@see AcceptStrategy
- *@see ActivateStrategy
- */
-public class CreationStrategy
-{
- /**
- * Create an instance of Creation Strategy.
- *@param handlerFactory Svc Handler factory that is used to create
- * an instance of a Svc Handler
- */
- public CreationStrategy (Class handlerFactory)
- {
- this.handlerFactory_ = handlerFactory;
- }
-
- /**
- * Create a new SvcHandler. Note that subclasses should override
- * this method to provide a new creation strategy.
- *@return reference to a new instance of the SvcHandler (or subclass)
- *@exception InstantiationException Unable to instantiate.
- *@exception IllegalAccessException No handler factory available.
- */
- public SvcHandler makeSvcHandler () throws InstantiationException,
- IllegalAccessException
- {
- // Create a new Svc_Handler
- return (SvcHandler) handlerFactory_.newInstance ();
- }
-
- private Class handlerFactory_;
-}
diff --git a/java/JACE/Connection/HTTPHelper.java b/java/JACE/Connection/HTTPHelper.java
deleted file mode 100644
index 2901d74a14a..00000000000
--- a/java/JACE/Connection/HTTPHelper.java
+++ /dev/null
@@ -1,182 +0,0 @@
-package JACE.Connection;
-
-import JACE.OS.*;
-
-/**
- * Collection of methods concerning HTTP.
- */
-public class HTTPHelper
-{
- /**
- * Alphabet used in encoding and decoding basic base64 authentication.
- * See the HTTP 1.1 RFC for details.
- */
- public static String Alphabet
- = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
- /**
- * Decode a secret encrypted with the basic base64 HTTP 1.1 authentication
- * scheme.
- *
- *@param secret Message to decode
- *@return null on error, decoded String on success
- */
- public static String DecodeBase64 (String secret)
- {
- StringBuffer output = new StringBuffer ();
- boolean inalphabet [] = new boolean[256];
- char decoder [] = new char [256];
-
- for (int i = 0; i < 256; i++) {
- inalphabet [i] = false;
- decoder [i] = 0;
- }
-
- for (int i = Alphabet.length () - 1;
- i >= 0;
- i--)
- {
- inalphabet [(int)Alphabet.charAt (i)] = true;
- decoder [(int)Alphabet.charAt (i)] = (char)i;
- }
-
- int inidx = 0;
- int c = 0;
- int char_count = 0;
- int bits = 0;
- boolean error = false;
-
- while (inidx < secret.length ())
- {
- c = secret.charAt (inidx++);
-
- if (c == '=')
- break;
-
- if (c > 255 || !inalphabet[(int)c])
- continue;
-
- bits += decoder[c];
- char_count++;
- if (char_count == 4) {
- output.append ((char) (bits >> 16));
- output.append ((char) ((bits >> 8) & 0xff));
- output.append ((char) (bits & 0xff));
- bits = 0;
- char_count = 0;
- } else
- bits <<= 6;
- }
-
- if (c == '\0') {
- if (char_count != 0) {
- ACE.DEBUG ("base64 encoding incomplete: at least "
- + ((4 - char_count) * 6) + " bits truncated");
- error = true;
- }
- } else {
- // c == '='
- switch (char_count)
- {
- case 1:
- ACE.DEBUG ("output so far: " + output.toString ());
- ACE.DEBUG ("base64 encoding incomplete: at least 2 bits missing");
- error = true;
- break;
- case 2:
- output.append ((char) (bits >> 10));
- break;
- case 3:
- output.append ((char) (bits >> 16));
- output.append ((char) ((bits >> 8) & 0xff));
- break;
- }
- }
-
- if (!error)
- return output.toString ();
- else
- return null;
- }
-
- /**
- * Encode a message with the basic base64 HTTP 1.1 authentication
- * scheme. Adapted from James' JAWS HTTP_Helpers code.
- *
- *@param secret Message to encode
- *@return null on error, an encoded String on success
- */
- public static String EncodeBase64 (String secret)
- {
- StringBuffer output = new StringBuffer ();
-
- // Index of the input string
- int inidx = 0;
-
- // character value
- int c;
-
- int char_count = 0;
- int bits = 0;
- boolean error = false;
-
- while (inidx < secret.length())
- {
- c = secret.charAt(inidx++);
-
- // This will mess up internationalization. I wonder if it is really
- // necessary for HTTP?
- if (c > 255)
- {
- ACE.DEBUG ("encountered char > 255 (decimal %d): " + c);
- error = true;
- break;
- }
-
- bits += c;
- char_count++;
-
- if (char_count == 3)
- {
- output.append(HTTPHelper.Alphabet.charAt(bits >> 18));
- output.append(HTTPHelper.Alphabet.charAt((bits >> 12) & 0x3f));
- output.append(HTTPHelper.Alphabet.charAt((bits >> 6) & 0x3f));
- output.append(HTTPHelper.Alphabet.charAt(bits & 0x3f));
-
- bits = 0;
- char_count = 0;
- }
- else
- bits <<= 8;
- }
-
- if (!error)
- {
- if (char_count != 0)
- {
- bits <<= 16 - (8 * char_count);
- output.append(HTTPHelper.Alphabet.charAt(bits >> 18));
- output.append(HTTPHelper.Alphabet.charAt((bits >> 12) & 0x3f));
-
- if (char_count == 1)
- {
- output.append("==");
- }
- else
- {
- output.append(HTTPHelper.Alphabet.charAt((bits >> 6) & 0x3f));
- output.append('=');
- }
- }
-
- return output.toString();
- }
-
- // Returns null on error
- return null;
- }
-
- private HTTPHelper () {}
-}
-
-
diff --git a/java/JACE/Connection/StrategyAcceptor.java b/java/JACE/Connection/StrategyAcceptor.java
deleted file mode 100644
index 743d384776f..00000000000
--- a/java/JACE/Connection/StrategyAcceptor.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * StrategyAcceptor.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-
-/**
- * Abstract factory for creating, accepting into, and activating
- * a service handler.
- * <P>
- * Uses instances of CreationStrategy, AcceptStrategy, and
- * ActivateStrategy.
- *
- *@see SvcHandler
- *@see CreationStrategy
- *@see AcceptStrategy
- *@see ActivateStrategy
- */
-public class StrategyAcceptor extends Acceptor
-{
- /**
- * Create an instance of StrategyAcceptor. The caller must
- * call setHandlerFactory before open!
- */
- public StrategyAcceptor ()
- {
- this (null, null, null, null);
- }
-
- /**
- * Create an instance of StrategyAcceptor.
- *@param handlerFactory Svc Handler factory that is used to create
- * an instance of a Svc Handler when a connection is accepted.
- */
- public StrategyAcceptor (Class handlerFactory)
- {
- this (handlerFactory, null, null, null);
- }
-
- /**
- * Create an instance of StrategyAcceptor. Use the creation
- * strategy and the handlerFactory passed in to creae a new instance
- * of the Svc Handler.
- *@param handlerFactory Svc Handler factory that is used to create
- * an instance of a Svc Handler when a connection is accepted.
- *@param creStrategy Creation strategy to use to create a new
- * instance of the Svc Handler.
- *@param acceptStrategy Accept strategy to use to accept a new
- * connection into the Svc Handler.
- *@param activateStrategy Activate strategy to use to activate the
- * instance of the Svc Handler.
- */
- public StrategyAcceptor (Class handlerFactory,
- CreationStrategy creStrategy,
- AcceptStrategy acceptStrategy,
- ActivateStrategy activateStrategy)
- {
- // Cache everything
- this.handlerFactory_ = handlerFactory;
- this.creStrategy_ = creStrategy;
- this.acceptStrategy_ = acceptStrategy;
- this.activateStrategy_ = activateStrategy;
- }
-
- /**
- * Initialize the Strategy Acceptor. The method creates the
- * appropriate strategies as needed.
- *@param port port number where the server will listen for connections
- *@exception IOException Socket level error
- */
- public void open (int port) throws IOException
- {
- if (this.creStrategy_ == null)
- this.creStrategy_ = new CreationStrategy (this.handlerFactory_);
- if (this.acceptStrategy_ == null)
- this.acceptStrategy_ = new AcceptStrategy (port);
- else
- this.acceptStrategy_.open (port);
- if (this.activateStrategy_ == null)
- this.activateStrategy_ = new ActivateStrategy ();
- }
-
- /**
- * Accept a connection using the appropriate strategies.
- *
- *@exception SocketException Socket level error
- *@exception InstantiationException Problem creating a handler
- *@exception IllegalAccessException No strategy available
- *@exception IOException Socket level error
- */
- public void accept () throws SocketException,
- InstantiationException,
- IllegalAccessException,
- IOException
- {
- // Create a Svc_Handler using the appropriate Creation_Strategy
- SvcHandler sh = this.makeSvcHandler ();
-
- // Accept a connection into the Svc_Handler
- this.acceptSvcHandler (sh);
-
- // Activate the Svc_Handler
- this.activateSvcHandler (sh);
- }
-
- /**
- * Bridge method for creating a SvcHandler. The strategy for
- * creating a SvcHandler is configured into the Acceptor via it's
- * creStrategy_. If no strategy is passed in, the default behavior
- * of this method is to use the default CreationStrategy.
- *@return a new instance of the Svc Handler
- *@exception InstantiationException Couldn't create SvcHandler
- *@exception IllegalAccessException No strategy available
- */
- protected SvcHandler makeSvcHandler ()
- throws InstantiationException, IllegalAccessException
- {
- // Create a new handler for the connection
- return this.creStrategy_.makeSvcHandler ();
- }
-
-
- /**
- * Bridge method for accepting the new connection into the
- * <SvcHandler>. The strategy for accepting into a SvcHandler is
- * configured into the Acceptor via it's acceptStrategy_. If no
- * strategy is passed in, the default behavior of this method is to
- * use the default AcceptStrategy.
- *@param sh Svc Handler in which to accept the connection
- *@return result of accepting a connection using the accept strategy
- *@exception SocketException Socket level error
- *@exception IOException Socket level error
- */
- protected int acceptSvcHandler (SvcHandler sh) throws SocketException, IOException
- {
- // Delegate responsibility to the appropriate strategy
- return this.acceptStrategy_.acceptSvcHandler (sh);
- }
-
- /**
- * Bridge method for activating a <SvcHandler>. The strategy for
- * activating a SvcHandler is configured into the Acceptor via it's
- * activateStrategy_. If no strategy is passed in, the default
- * behavior of this method is to use the default ActivateStrategy.
- *@param sh Svc Handler to activate
- *@return result of activating the Svc Handler
- */
- protected int activateSvcHandler (SvcHandler sh)
- {
- // Delegate responsibility to the appropriate strategy
- return this.activateStrategy_.activateSvcHandler (sh);
- }
-
- // Creation Strategy
- private CreationStrategy creStrategy_;
-
- // Accept Strategy
- private AcceptStrategy acceptStrategy_;
-
- // Activation Strategy
- private ActivateStrategy activateStrategy_;
-}
diff --git a/java/JACE/Connection/SvcHandler.java b/java/JACE/Connection/SvcHandler.java
deleted file mode 100644
index 1df62247baa..00000000000
--- a/java/JACE/Connection/SvcHandler.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * SvcHandler.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.Reactor.*;
-
-/**
- * Defines the interface for a service that exchanges data with its
- * connected peer.
- * <P>
- * This class provides a well-defined interface that the Acceptor and
- * Connector pattern factories use as their target. Typically, client
- * applications will subclass SvcHandler and do all the interesting work
- * in the subclass. One thing that the SvcHandler does contain is a
- * peer SOCKStream endpoint that is initialized by Acceptor or Connector
- * when a connection is established successfully. This endpoint is used
- * to exchange data between a SvcHandler and the peer it is connected
- * with.
- */
-public abstract class SvcHandler extends Task
-{
-
- /**
- * Do nothing constructor.
- */
- public SvcHandler ()
- {
- }
-
- /**
- * Set the stream using the SOCKStream passed in. This sets the
- * underlying peer
- *@param s SOCK Stream to use for the connection
- */
- public void setHandle (SOCKStream s) throws IOException
- {
- this.stream_ = s;
- }
-
- /**
- * Get the underlying peer
- *@return the underlying peer
- */
- public SOCKStream peer ()
- {
- return this.stream_;
- }
-
- /**
- * Abstract method that subclasses must define to allow
- * initialization to take place.
- */
- public abstract int open (Object obj);
-
- /**
- * Provide a default implementation to simplify ancestors.
- *@return 0
- */
- public int close (long flags)
- {
- return 0;
- }
-
- /**
- * Provide a default implementation to simplify ancestors.
- *@return -1
- */
- public int put (MessageBlock mb, TimeValue tv)
- {
- return -1;
- }
-
- /**
- * Provide a default implementation to simplify ancestors.
- *@param tv Time Value when the event occured
- *@param obj An arbitrary object that was passed to the Timer Queue
- * (Asynchronous Completion Token)
- */
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return -1;
- }
-
- /**
- * Underlying peer socket stream.
- */
- protected SOCKStream stream_;
-}
diff --git a/java/JACE/Connection/package.html b/java/JACE/Connection/package.html
deleted file mode 100644
index 429904216d5..00000000000
--- a/java/JACE/Connection/package.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Collection of factories for services.
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#initialize">Documents on ACE object and service initialization components</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/Makefile b/java/JACE/Makefile
deleted file mode 100644
index fd8d7b7a68a..00000000000
--- a/java/JACE/Makefile
+++ /dev/null
@@ -1,234 +0,0 @@
-# Makefile
-# $Id$
-
-.SUFFIXES: .java .class
-
-VERSION = 1.5
-JACE_WRAPPER = ..
-CLASSDIR = $(JACE_WRAPPER)/classes
-DOCDIR = $(JACE_WRAPPER)/doc
-
-JC = javac
-JCOPTS = -d $(CLASSDIR)
-JD = javadoc
-JDOPTS = -classpath $(CLASSDIR) -sourcepath $(JACE_WRAPPER) -windowtitle \
- "Java ACE $(VERSION) Documentation" -bottom \
- "Java ACE Version $(VERSION)<BR> \
- <A HREF="http://www.cs.wustl.edu/~schmidt"> \
- http://www.cs.wustl.edu/~schmidt</A>" \
- -doctitle "Java ACE Version $(VERSION) Documentation" -d $(DOCDIR) \
- -overview overview.html
-
-COMPILE.java = $(JC) $(JCOPTS) $(filter %.java,$?)
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all: asx os concurrency connection timers misc reactor svcconfig socksap netsvcs
-
-pkg_all = $(pkg_asx_timestuff) $(pkg_asx) $(pkg_os) $(pkg_concurrency) \
- $(pkg_connection) $(pkg_timers) $(pkg_misc) $(pkg_reactor) \
- $(pkg_socksap) $(pkg_svcconfig) $(pkg_netsvcs)
-
-doc:
- $(JD) $(JDOPTS) $(packages)
-
-docclean:
- find ${JACE_WRAPPER}/doc -name '*.html' -print | xargs ${RM}
-
-clean:
- find ${JACE_WRAPPER}/classes/JACE -name '*.class' -print | xargs ${RM}
-
-realclean: clean docclean
-
-
-pkg_asx_timestuff = \
- TimeValue \
- TimeoutException \
- TimedWait
-
-asx_timestuff: $(addprefix ASX/,$(addsuffix .java,$(pkg_asx_timestuff)))
- $(COMPILE.java)
-
-pkg_asx = \
- IOCntlCmds \
- IOCntlMsg \
- Task \
- TaskFlags \
- ThruTask \
- Module \
- MessageType \
- MessageBlock \
- MessageQueue \
- StreamHead \
- StreamTail \
- Stream
-
-asx: os asx_timestuff reactor concurrency \
- $(addprefix ASX/,$(addsuffix .java,$(pkg_asx)))
- $(COMPILE.java)
-
-pkg_os = \
- OS \
- ACE
-
-os: $(addprefix OS/,$(addsuffix .java,$(pkg_os)))
- $(COMPILE.java)
-
-pkg_concurrency = \
- AbstractLock \
- LockAdapter \
- LockException \
- WaitObject \
- RenewObject \
- Condition \
- Mutex \
- RWMutex \
- Semaphore \
- ThreadManager \
- Token
-
-concurrency: $(addprefix Concurrency/,$(addsuffix .java,\
- $(pkg_concurrency))) asx_timestuff os
- $(COMPILE.java)
-
-pkg_connection = \
- SvcHandler \
- Acceptor \
- Connector \
- AcceptStrategy \
- ActivateStrategy \
- CreationStrategy \
- StrategyAcceptor \
- Blob \
- BlobHandler \
- BlobReader \
- BlobWriter \
- HTTPHelper
-
-connection: os socksap svcconfig $(addprefix Connection/,\
- $(addsuffix .java,$(pkg_connection)))
- $(COMPILE.java)
-
-pkg_timers = \
- ProfileTimer
-
-timers: $(addprefix Timers/,$(addsuffix .java,$(pkg_timers)))
- $(COMPILE.java)
-
-pkg_misc = \
- GetOpt
-
-misc: $(addprefix Misc/,$(addsuffix .java,$(pkg_misc)))
- $(COMPILE.java)
-
-pkg_reactor = \
- EventHandler \
- TimerQueue
-
-reactor: asx_timestuff $(addprefix Reactor/,\
- $(addsuffix .java,$(pkg_reactor)))
- $(COMPILE.java)
-
-pkg_socksap = \
- INETAddr \
- SOCKStream \
- SOCKAcceptor \
- SOCKConnector
-
-socksap: os $(addprefix SOCK_SAP/,\
- $(addsuffix .java,$(pkg_socksap)))
- $(COMPILE.java)
-
-pkg_svcconfig = \
- Service \
- ServiceLoader \
- ServiceObject \
- ServiceConfig \
- ServiceRepository
-
-svcconfig: os reactor misc $(addprefix ServiceConfigurator/,\
- $(addsuffix .java,$(pkg_svcconfig)))
- $(COMPILE.java)
-
-netsvcs: netsvcs_base netsvcs_logger netsvcs_naming netsvcs_time \
- netsvcs_token
-
-pkg_netsvcs = $(pkg_netsvcs_base) $(pkg_netsvcs_logger) \
- $(pkg_netsvcs_time) $(pkg_netsvcs_naming) $(pkg_netsvcs_token)
-
-pkg_netsvcs_base = \
- Server \
- Handler
-
-netsvcs_base: os asx concurrency connection socksap svcconfig \
- $(addprefix netsvcs/,$(addsuffix .java,$(pkg_netsvcs_base)))
- $(COMPILE.java)
-
-pkg_netsvcs_logger = \
- LogRecord \
- LoggingStrategy \
- StderrStrategy \
- ServerLoggingHandler \
- ServerLoggingAcceptor
-
-netsvcs_logger: netsvcs_base $(addprefix netsvcs/Logger/,\
- $(addsuffix .java,$(pkg_netsvcs_logger)))
- $(COMPILE.java)
-
-pkg_netsvcs_naming = \
- NameRequest \
- NameReply \
- NameProxy \
- NameHandler \
- NameAcceptor
-
-netsvcs_naming: netsvcs_base $(addprefix netsvcs/Naming/,\
- $(addsuffix .java,$(pkg_netsvcs_naming)))
- $(COMPILE.java)
-
-pkg_netsvcs_time = \
- TimeInfo \
- TimeRequest \
- TSClerkHandler \
- TSClerkProcessor \
- TSServerHandler \
- TSServerAcceptor
-
-netsvcs_time: netsvcs_base $(addprefix netsvcs/Time/,\
- $(addsuffix .java,$(pkg_netsvcs_time)))
- $(COMPILE.java)
-
-pkg_netsvcs_token = \
- TokenRequest \
- TokenReply \
- TokenRequestHandler \
- LockHandler \
- LockHandlerAdapter \
- LockOperations \
- LockTypes \
- TokenAcceptor \
- RemoteLock \
- RemoteMutex \
- RemoteRWMutex \
- MutexHandler \
- RWMutexHandler
-
-netsvcs_token: netsvcs_base $(addprefix netsvcs/Token/,\
- $(addsuffix .java,$(pkg_netsvcs_token)))
- $(COMPILE.java)
-
-packages = \
- JACE.ASX \
- JACE.Connection \
- JACE.Concurrency \
- JACE.Misc \
- JACE.OS \
- JACE.Reactor \
- JACE.SOCK_SAP \
- JACE.ServiceConfigurator \
- JACE.Timers \
- JACE.netsvcs \
- JACE.netsvcs.Logger \
- JACE.netsvcs.Naming \
- JACE.netsvcs.Time \
- JACE.netsvcs.Token
diff --git a/java/JACE/Misc/GetOpt.java b/java/JACE/Misc/GetOpt.java
deleted file mode 100644
index e373baedb67..00000000000
--- a/java/JACE/Misc/GetOpt.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Misc
- *
- * = FILENAME
- * GetOpt.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Misc;
-
-import java.io.*;
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-
-/**
- * Iterator for parsing command-line arguments.
- * <P>
- * This version of `get_opt' appears to the caller like standard
- * Unix `get_opt' but it behaves differently for the user, since
- * it allows the user to intersperse the options with the other
- * arguments.
- *
- * <p> As `get_opt' works, it permutes the elements of `argv' so that,
- * when it is done, all the options precede everything else. Thus
- * all application programs are extended to handle flexible argument
- * order.
- */
-public class GetOpt
-{
- /**
- * Constructor
- *@param args command line arguments
- *@param optstring string containing the legitimate option
- * characters. A colon in optstring means that the previous character
- * is an option that wants an argument which is then taken from the
- * rest of the current args-element. Here is an example of what
- * optstring might look like: "c:dP:p".
- */
- public GetOpt (String[] args, String optstring)
- {
- this (args, optstring, false);
- }
-
- /**
- * Constructor
- *@param args command line arguments
- *@param optstring string containing the legitimate option
- * characters. A colon in optstring means that the previous character
- * is an option that wants an argument which is then taken from the
- * rest of the current args-element. Here is an example of what
- * optstring might look like: "c:dP:p".
- *@param returnAllArgs specify true if next() should return any
- * arguments, even if not in the optstring. This is useful for
- * providing an error message.
- */
- public GetOpt (String[] args, String optstring, boolean returnAllArgs)
- {
- returnAllArgs_ = returnAllArgs;
-
- // Cache the arguments
- this.args_ = args;
- this.hasArg_ = false;
-
- // Build the arg hashtable
- this.buildArgTable (optstring);
- }
-
- /**
- * Scan elements specified in optstring for next option flag.
- *@return The character corresponding to the next flag.
- */
- public int next ()
- {
- if (this.args_ == null)
- return -1;
-
- if (this.index_ < this.args_.length)
- {
- String arg = this.args_[this.index_++];
-
- // Make sure flag starts with "-"
- if (!arg.startsWith ("-"))
- return -1;
-
- // Check if there is more than one character specified as flag
- if (arg.length () > 2)
- return -1;
-
- // So far so good
- // Check if the flag is in the arg_table and if it is get the
- // associated binding.
- Character c = (Character) this.argTable_.get
- (new Character (arg.charAt (1)));
-
- if (c == null) {
- if (returnAllArgs_)
- return arg.charAt (1);
- else
- return -1;
- }
-
- if (c.charValue () == '#')
- {
- this.hasArg_ = false;
- return arg.charAt (1);
- }
- else if (c.charValue () == ':')
- {
- this.hasArg_ = true;
- return arg.charAt (1);
- }
- else // This should not happen
- return -1;
- }
- return -1;
- }
-
- /**
- * Get the argument (if any) associated with the flag.
- *@return the argument associated with the flag.
- */
- public String optarg ()
- {
- if (this.hasArg_)
- return this.args_[this.index_++];
- else
- return null;
- }
-
- // Build the argument table
- private void buildArgTable (String s)
- {
- this.argTable_ = new Hashtable ();
- StringTokenizer tokens = new StringTokenizer (s, ":");
- while (tokens.hasMoreTokens ())
- {
- // Get the next token
- String t = tokens.nextToken ();
-
- // First add all flags except the one with ":" after it
- // Note "#" is an arbitrary character we use to distinguish
- // the two cases
- for (int i = 0; i < t.length () - 1; i++)
- this.argTable_.put (new Character (t.charAt (i)),
- new Character ('#'));
-
- // Now Add the flag just before ":" to the arg_table
- this.argTable_.put (new Character (t.charAt (t.length () - 1)),
- new Character (':'));
- }
- }
-
- private String [] args_;
- // Copy of the args passed in
-
- private boolean hasArg_;
- // Indicator that the flag has an argument following it
-
- private int index_;
- // Index into the array of arguments
-
- private Hashtable argTable_;
- // Table of flags that take arguments after them
-
- private boolean returnAllArgs_;
- // When true, GetOpt returns arguments even if not present in the
- // given optstring.
-}
diff --git a/java/JACE/Misc/package.html b/java/JACE/Misc/package.html
deleted file mode 100644
index 31803472e19..00000000000
--- a/java/JACE/Misc/package.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Miscellaneous utility classes.
-</BODY>
-</HTML>
diff --git a/java/JACE/OS/ACE.java b/java/JACE/OS/ACE.java
deleted file mode 100644
index 3979fa6c2d2..00000000000
--- a/java/JACE/OS/ACE.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.OS
- *
- * = FILENAME
- * JACE.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.OS;
-
-/**
- * Constants, utility "functions", etc.
- * <P>
- * Defines default constants for ACE. Many of these are used for the
- * ACE tests and applications. You may want to change some of these to
- * correspond to your environment. Also, routines for error handling,
- * debugging and bit manipulation are included.
- * <P>
- * This class is non-instantiable, and intended only to provide a constrained
- * namespace.
- */
-public abstract class ACE
-{
- /**
- * Default port on which a server listens for connections.
- */
- public static final int DEFAULT_SERVER_PORT = 10002;
-
- /**
- * Default name to use for a thread group.
- */
- public static final String DEFAULT_THREAD_GROUP_NAME = "ace_thread_group";
-
- /**
- * Disable debugging. Once debugging is disabled, all ACE.DEBUG
- * statements would be ignored.
- */
- public static final void disableDebugging ()
- {
- ACE.debug_ = false;
- }
-
- /**
- * Enable debugging. Once debugging is enabled, all ACE.DEBUG
- * statements get printed.
- */
- public static final void enableDebugging ()
- {
- ACE.debug_ = true;
- }
-
- /**
- * Print the string representation of Java Exception.
- *@param e Java exception
- */
- public static final void ERROR (Exception e)
- {
- System.err.println (e);
- }
-
- /**
- * Print the string being passed in.
- *@param s a Java String
- */
- public static final void ERROR (String s)
- {
- System.err.println (s);
- }
-
- /**
- * Print the string being passed in.
- *@param s A Java String
- *@return Error value passed in
- */
- public static final int ERROR_RETURN (String s, int errorVal)
- {
- System.err.println (s);
- return errorVal;
- }
-
- /**
- * Print the string being passed in. Note the behavior will vary
- * depending upon whether debugging is enabled or disabled.
- *@param s a Java String
- */
- public static final void DEBUG (String s)
- {
- if (ACE.debug_)
- System.out.println (s);
- }
-
- /**
- * Flush out any data that may be buffered.
- */
- public static final void FLUSH ()
- {
- System.out.flush ();
- }
-
- /**
- * Set the bits of WORD using BITS as the mask.
- *@param WORD the bits to be set.
- *@param BITS the mask to use.
- *@return The value obtained after setting the bits.
- */
- public static final long SET_BITS (long WORD, long BITS)
- {
- return WORD | BITS;
- }
-
- /**
- * Clear the bits of WORD using BITS as the mask.
- *@param WORD the bits to clear.
- *@param BITS the mask to use.
- *@return The value obtained after clearing the bits.
- */
- public static final long CLR_BITS (long WORD, long BITS)
- {
- return WORD & ~BITS;
- }
-
- /**
- * Check if bits are enabled in WORD.
- *@param WORD the bits to check.
- *@param BIT the bit to check to see if it is enabled or not.
- *@return true if bit is enabled, false otherwise.
- */
- public static final boolean BIT_ENABLED (long WORD, long BIT)
- {
- return (WORD & BIT) != 0;
- }
-
- /**
- * Check if bits are disabled in WORD.
- *@param WORD the bits to check.
- *@param BIT the bit to check to see if it is disabled or not.
- *@return true if bit is disabled, false otherwise.
- */
- public static final boolean BIT_DISABLED (long WORD, long BIT)
- {
- return (WORD & BIT) == 0;
- }
-
- // Debug flag (turn debugging on/off)
- private static boolean debug_ = false;
-
- // Default private constructor to avoid instantiation
- private ACE ()
- {
- }
-}
-
-
diff --git a/java/JACE/OS/OS.java b/java/JACE/OS/OS.java
deleted file mode 100644
index 3f15a028cc2..00000000000
--- a/java/JACE/OS/OS.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.OS
- *
- * = FILENAME
- * OS.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.OS;
-
-import java.util.StringTokenizer;
-
-/**
- * Methods to extend the capabilities of the Java runtime system.
- * <P>
- * This non-instantiable class contains little <q>utility functions</q>
- * that should have been in Java to begin with :-)
- */
-public class OS
-{
- /**
- * Create an array of Strings from a single String using <delim> as
- * the delimiter.
- *@param args the String to break up to make an array of Strings
- *@param delim the delimeter to use to break the String up
- *@return an array containing the original String broken up
- */
- public static String [] createStringArray (String args, String delim)
- {
- // First determine the number of arguments
- int count = 0;
- StringTokenizer tokens = new StringTokenizer (args, delim);
- while (tokens.hasMoreTokens ())
- {
- tokens.nextToken ();
- count++;
- }
- if (count == 0)
- return null;
-
- // Create argument array
- String [] argArray = new String [count];
- int index = 0;
- tokens = new StringTokenizer (args, " ");
- while (tokens.hasMoreTokens ())
- {
- argArray [index] = tokens.nextToken ();
- index++;
- }
-
- // Assert index == count
- if (index != count)
- return null;
- else
- return argArray;
- }
-
- // Default private constructor to avoid instantiation
- private OS ()
- {
- }
-}
diff --git a/java/JACE/OS/package.html b/java/JACE/OS/package.html
deleted file mode 100644
index 01245ef0b51..00000000000
--- a/java/JACE/OS/package.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Extensions to the Java runtime system.
-</BODY>
-</HTML>
diff --git a/java/JACE/Reactor/EventHandler.java b/java/JACE/Reactor/EventHandler.java
deleted file mode 100644
index 220f999fcb5..00000000000
--- a/java/JACE/Reactor/EventHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Reactor
- *
- * = FILENAME
- * EventHandler.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Reactor;
-
-import JACE.ASX.TimeValue;
-
-/**
- * Provides an abstract interface for handling timer events.
- * <P>
- * Classes implementing this interface handle a timer's
- * expiration.
- * <P>
- * Users of C++ ACE will notice that this defines a substantially
- * smaller interface than the C++ counterpart. Signal events are
- * absent due to the complete absence of this feature from Java itself.
- * Moreover, at this point
- * there is still some question regarding whether or not the I/O
- * portion will make any sense or fit into the Java model for I/O.
- *
- *@see JACE.Reactor.TimerQueue
- *@see JACE.Reactor
- */
-public interface EventHandler
-{
- /**
- * Called when timer expires.
- *@param tv Time Value for which timer was set
- *@param obj An arbitrary object that was passed to the Timer Queue
- * (Asynchronous Completion Token)
- */
- public int handleTimeout (TimeValue tv, Object obj);
-}
-
-// Note that more methods will be added as needed
diff --git a/java/JACE/Reactor/TimerQueue.java b/java/JACE/Reactor/TimerQueue.java
deleted file mode 100644
index 638cffe3391..00000000000
--- a/java/JACE/Reactor/TimerQueue.java
+++ /dev/null
@@ -1,437 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Reactor
- *
- * = FILENAME
- * TimerQueue.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Reactor;
-
-import java.util.*;
-import JACE.ASX.*;
-
-import JACE.OS.*;
-
-/**
- * Timer Queue implementation which calls back to the handleTimeout
- * method on EventHandler implementations when their timers expire.
- * <P>
- * This is a simple implementation that keeps a linked list of
- * absolute timers. It allows multiple timers to be scheduled
- * and returns a timer id for each timer scheduled. In addition,
- * it allows periodic timers to be scheduled.
- * <P>
- * Note that timeouts given to the TimerQueue are relative time
- * ("2 seconds from now", etc).
- */
-public class TimerQueue implements Runnable
-{
- static class TimerNode
- {
- public TimerNode (EventHandler handler,
- Object arg,
- TimeValue timerValue,
- TimeValue interval,
- TimerNode next,
- int timerId)
- {
- this.handler_ = handler;
- this.arg_ = arg;
- this.timerValue_ = timerValue;
- this.interval_ = interval;
- this.next_ = next;
- this.timerId_ = timerId;
- }
-
- public EventHandler handler_;
- // Handler to invoke <handleTimeout> on when a timeout occurs.
-
- public Object arg_;
- // Argument to pass to <handleTimeout>.
-
- public TimeValue timerValue_;
- // Time until the timer expires.
-
- public TimeValue interval_;
- // If this is a periodic timer this holds the time until the next
- // timeout.
-
- public TimerNode next_;
- // Pointer to next timer.
-
- public int timerId_;
- // Id of this timer (used to cancel timers before they expire).
- }
-
- static class WaitObject extends TimedWait
- {
- public boolean condition ()
- {
- return this.condition_;
- }
-
- public void condition (boolean c)
- {
- this.condition_ = c;
- }
-
- private boolean condition_ = false;
- }
-
- /**
- * Constructor. The caller is responsible for calling handleEvents ()
- * to run the event loop.
- */
- public TimerQueue ()
- {
- this (false);
- }
-
- /**
- * Constructor.
- *@param createInternalThread flag specifying whether to create an
- * internal thread that runs the event loop. If it is true, a thread
- * is spawned and it runs the event loop, handling all timeout
- * events. If it is false, the caller is then responsible for calling
- * handleEvents () to run the event loop. The thread that is created
- * is set to be a daemon thread.
- */
- public TimerQueue (boolean createInternalThread)
- {
- this.eventLoopRunning_ = false;
- if (createInternalThread) {
- Thread queueThread = new Thread (this, "Timer Queue");
- queueThread.setDaemon (true);
- queueThread.start ();
- }
- }
-
- /**
- * The thread run method. Do *NOT* call this method! It gets called
- * automatically.
- */
- public void run ()
- {
- this.handleEvents ();
- }
-
- /**
- * Handle timeout events. This forms the event loop and takes care
- * of all scheduling. This method should only be called if the Timer
- * Queue was constructed with the value of createInternalThread as
- * false.
- */
- public void handleEvents ()
- {
- if (!this.eventLoopRunning_)
- {
- // Set the flag indicating that the event loop is now running
- this.eventLoopRunning_ = true;
-
- for (;;)
- {
- synchronized (this.obj_)
- {
- try {
- // Extract the earliest time from the queue and do a
- // timed wait
-
- this.obj_.timedWait (this.earliestTime ());
-
- // We have been notified. Check to see if we need to
- // restart the wait with a different timeout
- if (this.reset_)
- {
- this.reset_ = false;
- this.obj_.condition (false);
- }
-
- } catch (TimeoutException e) {
- // Timeout occurred. Call handleTimeout on appropriate
- // Event Handlers
- this.dispatchHandlers ();
-
- } catch (InterruptedException e) {
- ACE.ERROR ("TimerQueue was interrupted");
- return;
- }
- }
- }
- }
- }
-
- /**
- * Check if the queue is empty.
- *@return true if queue is empty, else false.
- */
- boolean isEmpty ()
- {
- return this.head_ == null;
- }
-
- /**
- * Get the node of the earliest node in the TimerQueue.
- *@return the time of the earlier node in the TimerQueue.
- */
- TimeValue earliestTime ()
- {
- synchronized (this.obj_)
- {
- if (!this.isEmpty ())
- return this.head_.timerValue_;
- else
- return null;
- }
- }
-
- /**
- * Schedule an <EventHandler> that will expire after <delta> amount
- * of time. If it expires then <obj> is passed in as the value to
- * the <EventHandler>'s <handleTimeout> callback method. This method
- * returns a timer id that uniquely identifies the timer and can be
- * used to cancel the timer before it expires.
- *@param handler Event Handler that is to be scheduled with the timer
- *@param obj Object that is passed back to the Event Handler when
- * timeout occurs (Asynchronous Completion Token)
- *@param delta amount of time for which to schedule the timer
- *@return id of the timer scheduled
- */
- public int scheduleTimer (EventHandler handler,
- Object obj,
- TimeValue delta)
- {
- return this.scheduleTimer (handler, obj, delta, TimeValue.zero);
- }
-
- /**
- * Schedule an <EventHandler> that will expire after <delta> amount
- * of time. If it expires then <obj> is passed in as the value to
- * the <EventHandler>'s <handleTimeout> callback method. If
- * <interval> is != to <TimeValue.zero> then it is used to
- * reschedule the <EventHandler> automatically. This method
- * returns a timer id that uniquely identifies the timer and can be
- * used to cancel the timer before it expires.
- *@param handler Event Handler that is to be scheduled with the timer
- *@param arg Object that is passed back to the Event Handler when
- * timeout occurs (Asynchronous Completion Token)
- *@param timeout amount of time for which to schedule the timer
- *@param interval amount of time to use to reschedule the timer
- *@return id of the timer scheduled
- */
- public int scheduleTimer (EventHandler handler,
- Object arg,
- TimeValue timeout,
- TimeValue interval)
- {
-
- // Increment the sequence number (it will wrap around).
- this.timerId_++;
-
- ACE.DEBUG("scheduleTimer (" + this.timerId_ + "): " +
- timeout + ", " + interval);
-
-
- TimeValue futureTime = TimeValue.plus (timeout, TimeValue.getTimeOfDay ());
- TimerNode node = new TimerNode (handler,
- arg,
- futureTime,
- interval,
- null,
- this.timerId_);
- synchronized (this.obj_)
- {
- // Check if event loop is running. If it is not, then we can
- // just place it at the appropriate place in the queue and
- // don't need to do any notification. If event loop is
- // running, then check if the node is the first node in the
- // queue (either because the queue is empty or because the
- // time for the node is earlier than the currently scheduled
- // timer node).
- if (this.eventLoopRunning_ &&
- (this.isEmpty () || futureTime.lessThan (this.earliestTime ())))
- {
- // Insert the node into (the beginning of) the queue to be
- // scheduled.
- this.reschedule (node);
-
- // Notify the waiting thread so that it can reschedule
- // using the earliest timeout
- this.obj_.notify ();
- }
- else // Place in the appropriate position in the queue.
- {
- this.reschedule (node);
- }
- }
- return this.timerId_;
- }
-
-
- /**
- * Cancel the single timer associated with <timerId>.
- *@param timerId id of the timer that needs to be cancelled.
- *@return Object that was passed in when timer was scheduled
- * (Asynchronous Completion Token).
- */
- public Object cancelTimer (int timerId)
- {
- TimerNode prev = null;
- TimerNode curr = null;
-
- synchronized (this.obj_)
- {
- // Try to locate the TimerNode that matches the timerId.
- for (curr = this.head_;
- curr != null && curr.timerId_ != timerId;
- curr = curr.next_)
- prev = curr;
-
- if (curr != null)
- {
- if (prev == null)
- this.head_ = curr.next_;
- else
- prev.next_ = curr.next_;
-
- return curr.arg_;
- }
- }
- return null;
- }
-
- /**
- * Cancel all timers associated with <Event Handler>.
- *@param handler Event Handler whose associated timers need to be cancelled.
- */
- public void cancelTimer (EventHandler handler)
- {
- TimerNode prev = null;
- TimerNode curr = this.head_;
-
- synchronized (this.obj_)
- {
- while (curr != null)
- {
- if (curr.handler_ == handler)
- {
- if (prev == null)
- {
- this.head_ = curr.next_;
- curr = this.head_;
- }
- else
- {
- prev.next_ = curr.next_;
- curr = prev.next_;
- }
- }
- else
- {
- prev = curr;
- curr = curr.next_;
- }
- }
- }
- }
-
- // Call handleTimeout() on all handlers whose timers have expired.
- private void dispatchHandlers ()
- {
- TimeValue currentTime = TimeValue.getTimeOfDay ();
-
- for (;;)
- {
- if (this.isEmpty () || this.earliestTime ().greaterThan (currentTime))
- break; // There aren't any more timers eligible to expire.
-
- TimerNode expired = this.head_;
- EventHandler handler = expired.handler_;
- Object arg = expired.arg_;
- int result;
-
- this.head_ = this.head_.next_;
-
- // Check whether this is an interval timer.
- if (expired.interval_.greaterThan (TimeValue.zero))
- {
- // Make sure that we skip past values that have already
- // "expired".
- do
- expired.timerValue_.plusEquals (expired.interval_);
- while (expired.timerValue_.lessThanEqual (currentTime));
-
- // Since this is an interval timer, we need to reschedule
- // it.
- this.reschedule (expired);
- }
-
- ACE.DEBUG("Calling handleTimeout for ID " + expired.timerId_);
-
- // Perform the callback.
- result = handler.handleTimeout (currentTime, arg);
-
- if (result == -1)
- this.cancelTimer (handler);
- }
- }
-
- // Reschedule a TimerNode by inserting it at the appropriate
- // position in the queue.
- private void reschedule (TimerNode expired)
- {
- if (this.isEmpty () ||
- expired.timerValue_.lessThan (this.earliestTime ()))
- {
- expired.next_ = this.head_;
- this.head_ = expired;
- // Set the condition to true so that the waiting thread can be
- // notified and it can reschedule.
- this.obj_.condition (true);
- this.reset_ = true;
- }
- else
- {
- TimerNode prev = this.head_;
- TimerNode after = this.head_.next_;
-
- // Locate the proper position in the queue.
-
- while (after != null
- && expired.timerValue_.greaterThan (after.timerValue_))
- {
- prev = after;
- after = after.next_;
- }
-
- expired.next_ = after;
- prev.next_ = expired;
- }
- }
-
- public boolean eventLoopRunning ()
- {
- return eventLoopRunning_;
- }
-
- private WaitObject obj_ = new WaitObject ();
- // Synchronization object (as well as object to use to do wait on)
-
- private TimerNode head_;
- // Pointer to linked list of TimerHandles.
-
- private int timerId_;
- // Keeps track of the timer id that uniquely identifies each timer.
- // This id can be used to cancel a timer via the <cancel (int)>
- // method.
-
- private boolean reset_;
- // Flag indicating whether to start the wait again
-
- private boolean eventLoopRunning_;
- // Flag indicating whether the event loop is running or not
-}
-
diff --git a/java/JACE/Reactor/package.html b/java/JACE/Reactor/package.html
deleted file mode 100644
index 8cf9b2a941a..00000000000
--- a/java/JACE/Reactor/package.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Timer queue implementation and a system for handling timeout events.
-</BODY>
-</HTML>
diff --git a/java/JACE/SOCK_SAP/INETAddr.java b/java/JACE/SOCK_SAP/INETAddr.java
deleted file mode 100644
index 11b74a2b0ba..00000000000
--- a/java/JACE/SOCK_SAP/INETAddr.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.SOCK_SAP
- *
- * = FILENAME
- * INETAddr.java
- *
- *@author Chris Cleeland
- *
- *************************************************/
-package JACE.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-
-/**
- * Defines an endpoint of a connection, encapsulating host and port.
- * This is only a part-way implementation of C++ ACE's ACE_INET_Addr.
- * <P>
- * Currently the class is very limited in its capabilities; it will
- * be expanded in future revisions of ACE.
- */
-public class INETAddr // extends Addr
-{
- private InetAddress addr_;
- private int port_ = 0;
- /**
- */
- public INETAddr ()
- {
- // Do nothing constructor
- }
-
- /**
- * Create an INETAddr from a port/hostname
- *@param port port number to connect with server at
- *@param hostname hostname of the server
- */
- public INETAddr (int port, String hostname) throws UnknownHostException
- {
- super();
- port_ = port;
- addr_ = InetAddress.getByName(hostname);
- // Should really use getAllByName(),
- // but I don't think we do that in
- // C++ ACE, even.
- }
-
- /**
- * Create an INETAddr from an address.
- * @param address an address in the form "ip-number:port-number", <em>e.g.</em> <pre>tango.cs.wustl.edu:1234</pre> or <pre>128.252.166.57:1234</pre>; if no ':' is present address is assumed to be <b>INADDR_ANY</b> and address contains only the port number
- * @throws UnknownHostException
- */
- public INETAddr (String address) throws UnknownHostException
- {
- int colon = address.indexOf(':');
- if (colon != 0)
- {
- addr_ = InetAddress.getByName(address.substring(0, colon));
- address = address.substring(colon+1);
- }
-
- port_ = Integer.parseInt(address);
- }
-
- /**
- * Return the name of the host.
- */
- public String getHostName()
- {
- return addr_.getHostName();
- }
-
- /**
- * Return the dotted Internet address.
- */
- public String getHostAddr()
- {
- return addr_.toString();
- }
-
- /**
- * Return the port number.
- */
- public int getPortNumber()
- {
- return port_;
- }
-
- public String toString()
- {
- return getHostAddr() + Integer.toString(port_);
- }
-}
diff --git a/java/JACE/SOCK_SAP/SOCKAcceptor.java b/java/JACE/SOCK_SAP/SOCKAcceptor.java
deleted file mode 100644
index dc9e12c8496..00000000000
--- a/java/JACE/SOCK_SAP/SOCKAcceptor.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.SOCK_SAP
- *
- * = FILENAME
- * SOCKAcceptor.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-
-/**
- * Defines a factory that creates new SOCKStreams passively.
- */
-public class SOCKAcceptor
-{
- // = Initialization
-
- /**
- * Create a SOCKAcceptor. Do nothing constructor. Allows user to
- * call open() later and pass in the port number.
- */
- public SOCKAcceptor ()
- {
- }
-
- /**
- * Create a SOCKAcceptor.
- *@param port port number where the server will listen for connections
- */
- public SOCKAcceptor (int port) throws IOException
- {
- this.open (port);
- }
-
- /**
- * Create socket to listen for connections on.
- *@param port port number where the server will listen for connections
- */
- public void open(int port) throws IOException
- {
- // Close old socket (if there is one)
- this.close ();
-
- // Create a new server socket
- this.listenSocket_ = new ServerSocket (port);
- // ACE.DEBUG ("Server listening on port " + port);
- }
-
- /**
- * Close the socket and do any necessary cleanup.
- */
- public void close () throws IOException
- {
- if (this.listenSocket_ != null)
- {
- this.listenSocket_.close ();
- this.listenSocket_ = null;
- }
- }
-
- /**
- * Accept a connection. The streams are set when the method returns.
- *@param sockStream SOCK Stream to use for the connection
- */
- public void accept (SOCKStream sockStream) throws SocketException, IOException
- {
- // Block in accept. Returns when a connection shows up and sets
- // the streams
- sockStream.socket (this.listenSocket_.accept ());
- ACE.DEBUG ("Accepted connection from " +
- sockStream.socket ().getInetAddress ());
- }
-
- /**
- * Get the underlying listen socket.
- *@return the underlying listen socket
- */
- public ServerSocket listenSocket ()
- {
- return this.listenSocket_;
- }
-
- /**
- * Set the underlying listen socket.
- *@param s the underlying listen socket
- */
- public void listenSocket (ServerSocket s)
- {
- this.listenSocket_ = s;
- }
-
- /**
- * Clean up when the garbage collector gets run (if at all). Note
- * that there is no guarantee that finalize () will get called.
- *@exception Throwable (Probably IOException from the socket level)
- */
- protected void finalize () throws Throwable
- {
- super.finalize ();
- this.close ();
- }
-
- // Socket on which listen for connections (by default initialized to
- // null)
- private ServerSocket listenSocket_;
-}
diff --git a/java/JACE/SOCK_SAP/SOCKConnector.java b/java/JACE/SOCK_SAP/SOCKConnector.java
deleted file mode 100644
index cc3a558f77f..00000000000
--- a/java/JACE/SOCK_SAP/SOCKConnector.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.SOCK_SAP
- *
- * = FILENAME
- * SOCKConnector.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-
-/**
- * Defines an active connection factory for the socket wrappers.
- */
-public class SOCKConnector
-{
- // = Initialization
-
- /**
- * Create a SOCKConnector. Do nothing constructor. Allows user to
- * call connect() later.
- */
- public SOCKConnector ()
- {
- // Do nothing constructor
- }
-
- /**
- * Create a SOCKConnector and connect to the server.
- *@param sockStream SOCK Stream to use for the connection
- *@param hostname hostname of the server
- *@param port port number to connect with server at
- */
- public SOCKConnector (SOCKStream sockStream,
- String hostname,
- int port) throws SocketException, IOException
- {
- this.connect (sockStream,
- hostname,
- port);
- }
-
- /**
- * Connect to the server.
- *@param sockStream SOCK Stream to use for the connection
- *@param hostname hostname of the server
- *@param port port number to connect with server at
- */
- public void connect (SOCKStream sockStream,
- String hostname,
- int port) throws SocketException, IOException
- {
- sockStream.socket (new Socket (hostname, port));
- }
-
- /**
- * Connect to the server.
- *@param sockStream SOCK Stream to use for the connection
- *@param addr INETAddr instance specifying host/port
- */
- public void connect (SOCKStream sockStream,
- INETAddr addr) throws SocketException, IOException
- {
- sockStream.socket (new Socket (addr.getHostName(),
- addr.getPortNumber()));
- }
-}
diff --git a/java/JACE/SOCK_SAP/SOCKStream.java b/java/JACE/SOCK_SAP/SOCKStream.java
deleted file mode 100644
index 05e2535e62a..00000000000
--- a/java/JACE/SOCK_SAP/SOCKStream.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.SOCK_SAP
- *
- * = FILENAME
- * SOCKStream.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-
-/**
- * This adds additional wrapper methods atop the java Socket class.
- */
-public class SOCKStream
-{
- /**
- * Create a default SOCK Stream. Do nothing constructor.
- */
- public SOCKStream ()
- {
- }
-
- /**
- * Create a SOCK Stream.
- *@param s Socket to initialize SOCK Stream with.
- */
- public SOCKStream (Socket s) throws IOException
- {
- this.socket (s);
- }
-
- /**
- * Set the socket and the underlying streams.
- *@param s Socket associated with the SOCK Stream.
- */
- public void socket (Socket s) throws IOException
- {
- this.socket_ = s;
- // Note that if s is not a valid socket or is null, the
- // following calls will throw exceptions
-
- this.iStream_ =
- new DataInputStream(new BufferedInputStream(s.getInputStream()));
-
- this.oStream_ =
- new DataOutputStream(new BufferedOutputStream(s.getOutputStream()));
- }
-
- /* Get the underlying Socket.
- *@return the underlying socket
- */
- public Socket socket ()
- {
- return this.socket_;
- }
-
- /**
- * Close the streams and the underlying socket.
- */
- public void close () throws IOException
- {
- if (this.socket_ != null)
- this.socket_.close ();
- this.socket_ = null;
- }
-
- // = The following send and recv methods are overloaded to provide a
- // flexible interface
-
- /**
- * Send a StringBuffer. Note that the method blocks.
- *@param s the StringBuffer to send
- *@return the length of the StringBuffer
- */
- public int send (StringBuffer s) throws IOException
- {
- // Get the data out
- String buf = s.toString ();
-
- //this.oStream_.println(buf);
- this.oStream_.writeChars(buf.toString());
- this.oStream_.writeChar('\n');
- this.oStream_.flush ();
-
- return buf.length ();
- }
-
- /**
- * Send a String. Note that the method blocks.
- *@param s the String to send
- *@return the length of the String
- */
- public int send (String s) throws IOException
- {
- this.oStream_.writeChars(s);
- this.oStream_.writeChar('\n');
-
- //this.oStream_.println(s);
- this.oStream_.flush();
-
- return s.length ();
- }
-
- /**
- * Send an array of bytes. Note that the method blocks.
- *@param b array of bytes to send
- *@param offset offset into the byte array to start sending from
- *@param length number of bytes to send
- *@return number of bytes sent
- */
- public int sendN (byte[] b, int offset, int length) throws IOException
- {
- this.oStream_.write (b, offset, length);
- this.oStream_.flush ();
- return length;
- }
-
- /**
- * Receive data and append it to the StringBuffer that was passed
- * in. Note that the method blocks.
- *@param s the StringBuffer to append the result of the recv to
- *@return the length of the String received
- */
- public int recv (StringBuffer s) throws IOException
- {
- int len = 0;
- char in = (char)this.iStream_.readByte();
-
- while (in != '\n') {
- s.append(in);
- in = (char)this.iStream_.readByte();
- len++;
- }
-
- return len;
- }
-
- /**
- * Receive an array of characters. This method blocks until either
- * all the bytes are read, the end of the stream is detected, or
- * an exception is thrown.
- *@param b byte array to receive the data in
- *@param offset the start offset of the data in the byte array.
- *@param n number of bytes to receive
- *@return n
- */
- public int recvN (byte[] b, int offset, int n) throws IOException
- {
- this.iStream_.readFully (b, offset, n);
- return n;
- }
-
- /**
- * Set the underlying input stream.
- *@param iStream the input stream
- */
- public void inputStream (InputStream iStream)
- {
- this.iStream_ = new DataInputStream(new BufferedInputStream(iStream));
- }
-
- /**
- * Get the underlying input stream.
- *@return the underlying input stream
- */
- public InputStream inputStream ()
- {
- return this.iStream_;
- }
-
- /**
- * Set the underlying output stream.
- *@param iStream the output stream
- */
- public void outputStream (OutputStream oStream)
- {
- this.oStream_ = new DataOutputStream(new BufferedOutputStream(oStream));
- }
-
- /**
- * Get the underlying output stream.
- *@return the underlying output stream
- */
- public OutputStream outputStream ()
- {
- return this.oStream_;
- }
-
- /**
- * Get the underlying stream wrapped in a buffered DataOutputStream
- */
- public DataOutputStream dataOutputStream ()
- {
- return this.oStream_;
- }
-
- /**
- * Get the underlying stream wrapped in a buffered DataInputStream
- */
- public DataInputStream dataInputStream ()
- {
- return this.iStream_;
- }
-
- /**
- * Cleanup when the SOCK Stream is garbage collected.
- *@exception Throwable (Probably IOException from the socket level)
- */
- protected void finalize () throws Throwable
- {
- super.finalize ();
- this.close ();
- }
-
- private Socket socket_;
-
- // = The input and output streams (by default null)
- private DataInputStream iStream_;
- private DataOutputStream oStream_;
-}
diff --git a/java/JACE/SOCK_SAP/package.html b/java/JACE/SOCK_SAP/package.html
deleted file mode 100644
index fa4b9346aab..00000000000
--- a/java/JACE/SOCK_SAP/package.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Wrappers for the sockets system.
-
-@see JACE.Connection.Acceptor
-</BODY>
-</HTML>
diff --git a/java/JACE/ServiceConfigurator/Service.java b/java/JACE/ServiceConfigurator/Service.java
deleted file mode 100644
index fac0b0fc54b..00000000000
--- a/java/JACE/ServiceConfigurator/Service.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package JACE.ServiceConfigurator;
-
-/**
- * Interface common to all services loaded with the
- * Service Configurator.
- * <P>
- * In order to create a completely new type of service, all that
- * is necessary is to implement this interface, and ServiceConfig
- * will be able to load it. A concrete example is ServiceObject,
- * the base class for the network services.
- * <P>
- * Implementing classes must also:
- * <UL>
- * <LI> Provide a default constructor
- * <LI> Begin in their own thread (probably in init (String[]))
- * </UL>
- * <P>
- * Implementing classes should also:
- * <UL>
- * <LI> Shut down completely when close () has been called. That
- * means ending thread activity.
- * </UL>
- *
- *@see JACE.ServiceConfigurator.ServiceObject
- *@see JACE.ServiceConfigurator.ServiceConfig
- *@author Everett Anderson
- */
-public interface Service
-{
- /**
- * Temporarily disable this service. This will only be called for a
- * service which returns false from its suspended() method.
- * <P>
- *@return -1 on failure, 0 on success
- */
- int suspend ();
-
- /**
- * Re-enable this service. This will only be called for a service
- * which returns true from its suspended() method.
- * <P>
- *@return -1 on failure, 0 on success
- */
- int resume ();
-
- /**
- * Initialize this service. The arguments will be given as if they
- * were from the command line, separated into Strings using spaces
- * as the delimiters.
- * <P>
- *@param args set of command line arguments
- *@return -1 on failure, 0 on success
- */
- int init (String [] args);
-
- /**
- * Close this service and free any internal resources.
- * <P>
- *@return -1 on failure, 0 on success
- */
- int fini ();
-
- /**
- * Provide a status message for this service.
- * <P>
- *@return status message
- */
- String info ();
-
- /**
- * Return the name of this service. The name is typically set
- * in ServiceConfig to a name supplied in a configuration file.
- * <P>
- *@return name of this service
- */
- String name ();
-
- /**
- * Set the name of this service. This is typically caled in
- * ServiceConfig, setting the name to one supplied in a configuration
- * file.
- * <P>
- *@param name new name for this service
- */
- void name (String name);
-
- /**
- * Returns whether or not this service is suspended. The result
- * determines whether or not this service's resume() and suspend()
- * methods will be called by ServiceConfig. (For instance, while
- * a service returns true, its suspend() method will not be called.)
- * <P>
- *@return true if suspended, else false
- */
- boolean suspended ();
-}
diff --git a/java/JACE/ServiceConfigurator/ServiceConfig.java b/java/JACE/ServiceConfigurator/ServiceConfig.java
deleted file mode 100644
index 894cf415f06..00000000000
--- a/java/JACE/ServiceConfigurator/ServiceConfig.java
+++ /dev/null
@@ -1,482 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ServiceConfig.java
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import java.util.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-
-/**
- * Provide the base class that supplies common server daemon
- * operations. Also provides a global point for interacting with
- * the service repository. Services can be suspended, resumed,
- * removed, and reloaded.
- * <P>
- * ServiceConfig files contain lines of the following forms:
- *
- * <PRE>
- * load (Service Name) (Class Name) (Type) "argument list" (opt URL path)
- *
- * resume (Service Name)
- * suspend (Service Name)
- * remove (Service Name)
- *
- * where (Type) is currently only ServiceObject or Service_Object
- * [Note: This is not enforced by the ServiceConfig program, but
- * something must be there.]
- * </PRE>
- * <P>
- * <B>Valid command line arguments:</B>
- * <PRE>
- * -f (filename) Specify name of the service config file
- * -d Enable debugging
- * -p (URL path) If not found locally, search this URL path
- * for classes (multiple -p options allowed)
- * </PRE>
- *
- *@author Prashant Jain
- *@author Everett Anderson
- */
-public class ServiceConfig
-{
- /** Begins the process of loading a service configurator file:
- * parses the command line and calls processDirectives
- *
- *@param args command line arguments to the Service Configurator
- *@exception FileNotFoundException Couldn't find service config file
- *@exception IOException Problem reading or parsing the config file
- *@exception ClassNotFoundException Couldn't find a certain class
- *@exception IllegalAccessException Inappropriate method call on a class
- *@exception InstantiationException Couldn't create a certain class instance
- *@return -1 on failure, 0 on success
- */
- public static int open (String [] args)
- throws FileNotFoundException, IOException, ClassNotFoundException,
- IllegalAccessException, InstantiationException
- {
- // Parse the command line
- if (ServiceConfig.parseArgs (args) < 0) {
- printUsage ();
- return -1;
- }
-
- return ServiceConfig.processDirectives ();
- }
-
- protected static void printUsage ()
- {
- ACE.ERROR ("Valid options:\n");
- ACE.ERROR ("-f <filename> Specify name of the service config file");
- ACE.ERROR ("-d Enable debugging");
- ACE.ERROR ("-p <URL path> If not found locally, search this URL path");
- ACE.ERROR (" for classes (multiple -p options allowed)");
- }
-
- /** Parse the command line.
- * <P>
- * Currently, valid command line options are the following:
- * <PRE>
- * -d Debug mode
- * -f (filename) Load services in the given file
- * -p (URL path) If not found locally, search this URL path for classes
- * (there can be multiple -p URL options)
- * </PRE>
- *@param args command line arguments
- *@exception ClassNotFoundException Couldn't find a specified Service
- *@exception IllegalAccessException Inappropriate method call on a Service
- *@exception InstantiationException Couldn't create a Service instance
- */
- protected static int parseArgs (String [] args)
- throws ClassNotFoundException, IllegalAccessException,
- InstantiationException
- {
- GetOpt getopt = new GetOpt (args, "df:p:", true);
- for (int c; (c = getopt.next ()) != -1; )
- switch (c)
- {
- case 'p':
- // Specify a URL path
- try {
- ServiceConfig.loader_.addURLPath (getopt.optarg ());
- } catch (MalformedURLException e) {
- ACE.ERROR ("Invalid URL: " + getopt.optarg ());
- }
- break;
- /*
- Not supported:
-
- case 'b':
- ServiceConfig.beADaemon_ = true;
- break;
- case 'n':
- break;
- */
- case 'd':
- ACE.enableDebugging ();
- ACE.DEBUG ("Debugging is enabled");
- break;
- case 'f':
- // Specify the file name of the config file
- ServiceConfig.serviceConfigFile_ = getopt.optarg ();
- break;
- default:
- ACE.ERROR ((char ) c + " is not a ServiceConfig option");
- return -1;
- }
-
- return 0;
- }
-
- /**
- * Uses the Service Repository to suspend a service with the given name.
- *
- *@param name name of the Service to suspend
- *@return -1 on failure, 0 on success
- */
- public static int suspend (String name)
- {
- return ServiceConfig.svcRep_.suspend (name);
- }
-
- /**
- * Uses the Service Repository to resume a service with the given name.
- *
- *@param name name of the Service to resume
- *@return -1 on failure, 0 on success
- */
- public static int resume (String name)
- {
- return ServiceConfig.svcRep_.resume (name);
- }
-
- /**
- * Removes the specified Service from the Service Repository.
- *
- *@param name name of the Service to remove
- *@return -1 on failure, 0 on success
- */
- public static int remove (String name)
- {
- return ServiceConfig.svcRep_.remove (name);
- }
-
- /**
- * Returns the info String from the specified Service.
- *
- *@param name name of the Service to query
- *@return information about the Service
- */
- public static String info (String name)
- {
- return ServiceConfig.svcRep_.info (name);
- }
-
- /**
- * Call fini on the specified Service.
- *
- *@param name name of the Service to shut down
- *@return -1 on failure, 0 on success
- */
- public static int fini (String name)
- {
- return ServiceConfig.svcRep_.fini (name);
- }
-
- /**
- * Call init on the specified Service. This is only needed
- * when a user wants to add a Service to the repository without
- * using service config files.
- *
- *@param name name of the Service to initialize
- *@param args command line arguments to pass to the Service
- *@return -1 on failure, 0 on success
- *@see ServiceConfig#insert
- */
- public static int init (String name, String [] args)
- {
- return ServiceConfig.svcRep_.init (name, args);
- }
-
- /**
- * Adds the given Service to the Service Repository. This is
- * only needed when a user wants to add a Service to the repository
- * without using service config files.
- *
- *@param service Service to insert
- *@see ServiceConfig#init
- */
- public static void insert (Service service)
- {
- ServiceConfig.svcRep_.insert (service);
- }
-
- /**
- * Check to see if the specified Service is suspended.
- *
- *@param name name of the Service to check
- *@return true if it is suspended, else false
- */
- public static boolean suspended (String name)
- {
- return ServiceConfig.svcRep_.suspended (name);
- }
-
- /**
- * Check to see if the repository contains a service with the given
- * name.
- *
- *@param name name of the Service to check
- *@return true if it is in the repository, else false
- */
- public static boolean contains (String name)
- {
- return (ServiceConfig.svcRep_.find (name) == null ? false : true);
- }
-
- /**
- * Get an Enumeration of all of the names of the Services in the
- * repository.
- *
- *@return Enumeration of Service names
- */
- public static Enumeration serviceNames ()
- {
- return ServiceConfig.svcRep_.serviceNames ();
- }
-
- /**
- * Get an Enumeration of all Services in the repository.
- *
- *@return Enumeration of Services
- */
- public static Enumeration services ()
- {
- return ServiceConfig.svcRep_.services ();
- }
-
- /**
- * Load a service of the given name, type, and arguments, then
- * initialize it with the given arguments.
- *
- * Should be aware that this could also throw a class cast exception if
- * the author of the service didn't implement the Service interface.
- *
- *@param serviceName name of the service to load
- *@param className class name to load
- *@param args command line arguments to initialize the service
- *@exception ClassNotFoundException couldn't find the specified class file
- *@exception IllegalAccessException problem calling a method on the service
- *@exception InstantiationException problem creating an instance
- *@exception IOException problem reading the class file
- *@return -1 on failure, 0 on success
- */
- public static int load (String serviceName,
- String className,
- String [] args)
- throws ClassNotFoundException, IllegalAccessException,
- InstantiationException, IOException
- {
- Class svcClass = ServiceConfig.loader_.loadClass (className);
-
- Service svc = (Service)(svcClass.newInstance());
-
- svc.name (serviceName);
-
- ServiceConfig.svcRep_.insert (svc);
-
- return ServiceConfig.svcRep_.init (serviceName, args);
- }
-
- /**
- * Same as load (String, String, String[]) but creates the
- * String array from the given args parameter using the space
- * character as a delimiter.
- *
- */
- public static int load (String serviceName,
- String className,
- String args)
- throws ClassNotFoundException, IllegalAccessException,
- InstantiationException, IOException
- {
- return ServiceConfig.load (serviceName,
- className,
- OS.createStringArray (args, " "));
- }
-
- /**
- * Parse a service configurator file, creating classes as necessary.
- *
- *@return -1 on failure, 0 on success
- *@exception FileNotFoundException Couldn't find the file
- *(default "svc.conf")
- *@exception IOException Problem reading/parsing
- *@exception ClassNotFoundException Couldn't find a certain class
- *@exception IllegalAccessException Inappropriate method call
- *@exception InstantiationException Couldn't create a class instance
- */
- protected static int processDirectives ()
- throws FileNotFoundException, IOException, ClassNotFoundException,
- IllegalAccessException, InstantiationException
- {
- ACE.DEBUG("Processing directives in file " +
- ServiceConfig.serviceConfigFile_);
-
- File configFile = new File (ServiceConfig.serviceConfigFile_);
-
- // Check if file exists and is a normal file
- if (!configFile.exists () || !configFile.isFile ())
- throw new FileNotFoundException ("File " +
- ServiceConfig.serviceConfigFile_ +
- " not found");
-
- // Check if the file is readable
- if (!configFile.canRead ())
- throw new IOException ("File " +
- ServiceConfig.serviceConfigFile_ +
- " not readable");
-
- // Set up the stream
- FileInputStream fileIn = new FileInputStream (configFile);
-
- // Parse the file
- Reader r = new BufferedReader(new InputStreamReader(fileIn));
- StreamTokenizer in = new StreamTokenizer (r);
-
- // Set characters in ASCII range 32 to 47, ASCII range 91 to 96,
- // and ASCII range 123 to 126 as ordinary characters
- in.wordChars ('.', '/'); // ASCII range 32 to 47
- in.wordChars (':', '@'); // ASCII range 58 to 64
- in.wordChars ('[', '`'); // ASCII range 91 to 96
- in.wordChars ('{', '~'); // ASCII range 123 to 126
- in.quoteChar ('\"');
- in.commentChar ('#');
- in.eolIsSignificant(true);
- in.lowerCaseMode(false);
-
- Vector strs = new Vector();
- int lineNumber = 1;
-
- while (in.nextToken () != StreamTokenizer.TT_EOF) {
-
- if (in.ttype == StreamTokenizer.TT_EOL) {
-
- String command = ((String)strs.elementAt(COMMAND_NAME)).toLowerCase();
- String name = (String)strs.elementAt(SERVICE_NAME);
-
- if (strs.size() == 2) {
- if (command.equals("remove"))
- ServiceConfig.remove(name);
- else
- if (command.equals("suspend"))
- ServiceConfig.suspend(name);
- else
- if (command.equals("resume"))
- ServiceConfig.resume(name);
- } else {
-
- if (!command.equals("load"))
- throw new IOException ("Unknown command: " +
- command +
- " at line " +
- lineNumber);
-
- if (strs.size() < 5)
- throw new IOException ("Line " + lineNumber +
- " requires 5 values, not " +
- strs.size());
-
- // Type is currently unenforced since everything must descend
- // from Service anyway.
- //String type = (String)strs.elementAt (SERVICE_TYPE);
- String className = (String)strs.elementAt (CLASS_NAME);
-
- if (strs.size () > CODE_BASE) {
- try {
- String url = (String)strs.elementAt (CODE_BASE);
-
- ServiceConfig.loader_.addURLPath (url);
-
- } catch (MalformedURLException e) {
- ACE.ERROR("Bad code base on line " + lineNumber);
- }
- }
-
- ServiceConfig.load(name,
- className,
- (String)strs.elementAt(ARGS));
- }
-
- lineNumber++;
- strs.removeAllElements();
- continue;
- }
-
- // Skip over non-strings
- if ((in.ttype == StreamTokenizer.TT_WORD) ||
- (in.ttype == '\"'))
- strs.addElement(new String(in.sval));
- else
- ACE.DEBUG ("Invalid string on line " + lineNumber +
- " element " + strs.size() +
- " type " + in.ttype);
- }
-
- return 0;
- }
-
- /**
- * Close all services.
- */
- public static void close ()
- {
- ServiceConfig.svcRep_.close ();
- }
-
- /**
- * Return a reference to the ServiceLoader used to load
- * classes.
- *
- *@return ServiceLoader used internally by ServiceConfig.
- */
- public static ServiceLoader loader ()
- {
- return ServiceConfig.loader_;
- }
-
- /**
- * Specify the ServiceLoader to be used by ServiceConfig.
- *
- *@param loader ServiceLoader instance to use (should support remote
- * loading)
- */
- public static void loader (ServiceLoader loader)
- {
- ServiceConfig.loader_ = loader;
- }
-
- // Set by command line options
- private static boolean beADaemon_ = false;
-
- private static String serviceConfigFile_ = "svc.conf";
-
- private static ServiceRepository svcRep_ = new ServiceRepository ();
- private static ServiceLoader loader_ = new ServiceLoader ();
-
- // Order for the commands on a line in the config file
- private final static int COMMAND_NAME = 0;
- private final static int SERVICE_NAME = 1;
- private final static int CLASS_NAME = 2;
- private final static int SERVICE_TYPE = 3;
- private final static int ARGS = 4;
- private final static int CODE_BASE = 5;
-}
diff --git a/java/JACE/ServiceConfigurator/ServiceLoader.java b/java/JACE/ServiceConfigurator/ServiceLoader.java
deleted file mode 100644
index 75297f9631d..00000000000
--- a/java/JACE/ServiceConfigurator/ServiceLoader.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ServiceLoader.java
- *
- * Implementation of a network-capable class loader
- *
- *@author Prashant Jain
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import java.util.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-
-/**
- * ClassLoader that can load classes from across the network
- * via provided URL search paths, or from the local machine.
- * <P>
- * This operates in the same way as the JDK 1.2 ClassLoader by
- * first checking for preloaded classes, then trying to use the system
- * loader, and finally trying to load it via the network. The user can also
- * provide URL search paths, or explicitly call the loadClass method which
- * takes a URL.
- *
- *@see java.lang.ClassLoader
- *@see java.lang.Class
- */
-public class ServiceLoader extends ClassLoader
-{
- /**
- * Creates a loader that will only search the local machine for classes
- * until URL paths are registered via addURLPath.
- */
- public ServiceLoader ()
- {
- this.URLSearchPaths_ = new Vector();
- }
-
- /**
- * Creates a loader that will search the local machine followed by
- * this array of URL paths when loading classes. Note that additional
- * paths can be added later with the addURLPath method.
- *@param remotePaths array of URLs to search when loading classes, after
- *attempts to load from the local machine have failed
- */
- public ServiceLoader (URL remotePaths[])
- {
- this();
-
- if (remotePaths == null)
- return;
-
- for (int i = 0; i < remotePaths.length; i++)
- this.addURLPath(remotePaths[i]);
- }
-
- /**
- * Add the given URL to the list of URL paths to search when loading
- * classes.
- *@param url URL ending in '/' where classes can be found
- */
- public void addURLPath (URL url)
- {
- if (!URLSearchPaths_.contains(url))
- URLSearchPaths_.addElement(url);
- }
-
- /**
- * Add the given URL to the list of URL paths to search when loading
- * classes.
- *@param String representation of a URL ending in '/'
- *@exception MalformedURLException the given String wasn't a valid URL
- */
- public void addURLPath (String url) throws MalformedURLException
- {
- URL resource = new URL (url);
- this.addURLPath (resource);
- }
-
- /**
- * Tries to load the given class by following the example of JDK 1.2
- * ClassLoader. First check loaded classes, then try to use the system
- * loader, and only then perform the user defined subclass behavior
- * from findClass (in this case, it's searching over the network).
- *@param name name of the class to load
- *@param resolve whether or not to resolve the class
- *@exception ClassNotFoundException if the class could not be found
- *@return loaded Class instance
- */
- protected Class loadClass(String name,
- boolean resolve)
- throws ClassNotFoundException
- {
-
- Class c = null;
-
- // Has this class already been loaded once?
- c = findLoadedClass(name);
- if (c != null)
- return c;
-
- try {
-
- // Can the system loader find it?
- c = findSystemClass(name);
- return c;
-
- } catch (ClassNotFoundException e2) {
- // The system loader couldn't find it
- }
-
- // If none of the above, try searching our way
- return findClass(name);
- }
-
- /**
- * This should duplicate the behavior of this class in JDK 1.2. It is
- * called by the protected loadClass method after trying to load the
- * class in other ways. It simply calls loadClassData and then defines
- * the class.
- *@param name name of the class to load
- *@exception ClassNotFoundException couldn't find the class
- *@return loaded Class
- */
- protected Class findClass(String name) throws ClassNotFoundException
- {
- byte[] b = loadClassData(name);
- return defineClass(name, b, 0, b.length);
- }
-
- /**
- * Try loading a class with the given name, searching the remote
- * URL paths that have been registered. Note that this will only
- * be called after first checking to see if the class has already
- * been loaded, then checking to see whether or not the system
- * loader can find it.
- * <P>
- * This could be overriden by subclasses to define different
- * loading behavior.
- *
- *@param className name of the class (not file name) of the class to load
- *@exception ClassNotFoundException couldn't find the class
- *@return bytes of a .class file
- */
- private byte[] loadClassData(String className) throws ClassNotFoundException
- {
- byte data[] = null;
-
- // Try to load it by reading in the bytes from the net
- Enumeration e = URLSearchPaths_.elements();
-
- while (e.hasMoreElements())
- {
- try
- {
- URL path = (URL)e.nextElement();
- URL classFileURL;
-
- try
- {
- classFileURL = new URL(path.toExternalForm() +
- className +
- ".class");
- } catch (MalformedURLException ex) {
- ACE.ERROR("Bad URL: " + ex.getMessage());
- continue;
- }
-
- ACE.DEBUG("Looking for " + classFileURL.toExternalForm());
- URLConnection urlConnection = classFileURL.openConnection ();
-
- // Get the input stream associated with the URL connection and
- // pipe it to a newly created DataInputStream
- DataInputStream i = new DataInputStream
- (urlConnection.getInputStream ());
-
- // Allocate a buffer big enough to hold the contents of the
- // data we are about to read
- data = new byte [urlConnection.getContentLength ()];
-
- // Now read all the data into the buffer
- i.readFully (data);
-
- } catch (IOException ex) {
- // Either the URL wasn't there or we couldn't get the data
- continue;
- }
- }
-
- // Couldn't find it or it loaded improperly
- if (data == null)
- throw new ClassNotFoundException("Can't obtain " + className);
-
- return data;
- }
-
- /**
- * Load a class from across the network
- *
- * The newer way to do this is similar to JDK 1.2 URLClassLoader:
- * Add URLs that end in '/' via the addURLPath method
- * Call loadClass (class name without .class extension) method
- *
- *@param url URL of the class to load
- *@exception ClassNotFoundException Couldn't find the class
- *@return loaded Class
- */
- public Class loadClass (URL url) throws ClassNotFoundException
- {
- // Extract the name of the class from the URL
- String URLPath = url.getFile();
-
- // Get the class name by removing any directory information
- int idx = URLPath.lastIndexOf("/");
- if (idx == -1)
- throw new ClassNotFoundException("Can't find " + URLPath);
- String className = URLPath.substring(idx + 1);
- URLPath = URLPath.substring(0, idx + 1);
-
- // Get rid of the class suffix
- idx = className.lastIndexOf(".class");
- if (idx != -1)
- className = className.substring(0, idx);
-
- ACE.DEBUG("The name of the class about to load is " + className);
-
- try {
- // Add the URL to the list of URL search paths
- URL path = new URL(URLPath);
-
- this.addURLPath(path);
-
- } catch (MalformedURLException e) {
- throw new ClassNotFoundException("Can't find " + URLPath);
- }
-
- // Try to load the class
- return loadClass(className);
- }
-
- /**
- * Collection of URLs which end in the HTTP path separator. Used
- * for searching for classes across the network.
- */
- protected Vector URLSearchPaths_;
-}
diff --git a/java/JACE/ServiceConfigurator/ServiceObject.java b/java/JACE/ServiceConfigurator/ServiceObject.java
deleted file mode 100644
index 4538698e8a6..00000000000
--- a/java/JACE/ServiceConfigurator/ServiceObject.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ServiceObject.java
- *
- *@author Prashant Jain
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import JACE.ASX.*;
-import JACE.Reactor.*;
-
-/**
- * Provides a default implementation of the Service interface, and can also
- * be registered with the Reactor.
- *
- *@see JACE.Reactor
- *@see Service
- */
-public class ServiceObject implements EventHandler, Service
-{
- /**
- * Initialize object when dynamic loading occurs. Overwrite this
- * method to do anything useful.
- *@return -1 (default implementation)
- */
- public int init (String [] args)
- {
- return -1;
- }
-
- /**
- * Terminate the object. Note that an object can not be explicitly
- * unloaded. Overwrite this method to do anything useful.
- *@return -1 (default implementation)
- */
- public int fini ()
- {
- return -1;
- }
-
- /**
- * Get information on an active object. Overwrite this method to do
- * anything useful.
- *@return null (default implementation)
- */
- public String info ()
- {
- return null;
- }
-
- /**
- * Called when timer expires. Overwrite this method to do
- * anything useful.
- *@param tv Time Value for when timer expired
- *@param obj An arbitrary object that was passed to the Timer Queue
- * (Asynchronous Completion Token)
- *@return -1
- */
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return -1;
- }
-
- /**
- * Request that this service suspend activity. Overwrite this
- * method to do anything useful. Currently, this sets an internal
- * state variable to true.
- */
- public int suspend ()
- {
- this.suspended_ = true;
-
- return 0;
- }
-
- /**
- * Request that this service resume activity. Currently, this sets
- * an internal state variable to false.
- */
- public int resume ()
- {
- this.suspended_ = false;
-
- return 0;
- }
-
- /**
- * Is this service suspended?
- */
- public boolean suspended ()
- {
- return this.suspended_;
- }
-
- /**
- * Return the name of the Service. Implementation provided.
- */
- public String name ()
- {
- return this.name_;
- }
-
- /**
- * Set the name of the Service. Should be called when a Service is
- * created -- this is done automatically by ServiceConfig when loading
- * from a file. Implementation provided.
- */
- public void name (String name)
- {
- this.name_ = name;
- }
-
- /**
- * Name of this ServiceObject.
- */
- protected String name_ = null;
-
- /**
- * Status of whether this ServiceObject is suspended or not.
- * (Initially false)
- */
- protected boolean suspended_ = false;
-}
diff --git a/java/JACE/ServiceConfigurator/ServiceRepository.java b/java/JACE/ServiceConfigurator/ServiceRepository.java
deleted file mode 100644
index 33f9a088077..00000000000
--- a/java/JACE/ServiceConfigurator/ServiceRepository.java
+++ /dev/null
@@ -1,274 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ServiceRepository.java
- *
- * The service repository stores the network services, allowing them to be
- * removed, suspended, resumed, etc.
- *
- *@see JACE.ServiceConfigurator.ServiceConfig;
- *@see JACE.ServiceConfigurator.Service;
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Stores Services, providing operations such as remove, suspend, resume, etc.
- */
-public class ServiceRepository
-{
- /**
- * Constructor
- */
- public ServiceRepository ()
- {
- this.serviceMap_ = new Hashtable ();
- this.serviceNames_ = new Vector ();
- }
-
- /**
- * Constructor
- *
- *@param initialSize Initial vector size for the repository
- */
- public ServiceRepository (int initialSize)
- {
- this.serviceMap_ = new Hashtable (initialSize);
- this.serviceNames_ = new Vector (initialSize);
- }
-
- /**
- * Shut down all the services, closing them in reverse order of insertion.
- * This calls fini on each service.
- *@return -1 on failure, 0 on sucess
- */
- public int close()
- {
- int result = 0;
-
- for (int i = this.size() - 1; i >= 0; i--) {
-
- String name = (String)this.serviceNames_.elementAt (i);
-
- Service s = (Service)this.serviceMap_.get (name);
-
- result = (s.fini () == -1 ? -1 : result);
- }
-
- this.serviceMap_.clear ();
- this.serviceNames_.removeAllElements ();
-
- return result;
- }
-
- /**
- * Insert a Service into the repository.
- * (If already in, calls fini() and replaces)
- *
- *@param service Service to add
- */
- public void insert (Service service)
- {
- String name = service.name ();
- Service alreadyIn = this.find (name);
-
- if (alreadyIn != null) {
-
- alreadyIn.fini ();
- this.remove (alreadyIn);
-
- } else {
-
- this.serviceMap_.put (name, service);
- this.serviceNames_.addElement (name);
-
- }
- }
-
- /**
- * Returns an enumeration of all the Service objects.
- *
- */
- public Enumeration services ()
- {
- return this.serviceMap_.elements ();
- }
-
- /**
- * Returns an enumeration of all the Service names
- */
- public Enumeration serviceNames ()
- {
- return this.serviceMap_.keys ();
- }
-
- /**
- * Convenience method that returns null when the service isn't
- * found.
- */
- public Service find (String name)
- {
- Object serviceObj = this.serviceMap_.get (name);
-
- if (serviceObj == null)
- return null;
-
- return (Service)serviceObj;
- }
-
- /**
- * Finds the Service associated with a given
- * name.
- *
- *@param name Name of the service to find
- *@exception NoSuchElementException if the given service is not found
- */
- protected Service findService (String name) throws NoSuchElementException
- {
- Object serviceObj = this.serviceMap_.get (name);
-
- if (serviceObj == null)
- throw new NoSuchElementException ("Service " + name + " not found.");
-
- return (Service)serviceObj;
- }
-
- /**
- * Removes the given Service and calls its fini () method.
- *@param service Service to remove
- *@return -1 on failure, 0 on success
- */
- protected int remove (Service service)
- {
- String name = service.name ();
-
- this.serviceMap_.remove (name);
-
- int index = this.serviceNames_.indexOf (name);
-
- this.serviceNames_.removeElementAt (index);
-
- return service.fini ();
- }
-
- /**
- * Shut down the specified Service.
- *
- *@param name name of the Service to shut down
- *@return -1 on failure, 0 on success
- */
- public int fini (String name)
- {
- Service service = this.findService (name);
-
- return service.fini ();
- }
-
- /**
- * Remove the specified Service, calling its fini () method.
- *
- *@param name name of the Service to remove
- *@return -1 on failure, 0 on success
- */
- public int remove (String name)
- {
- Service service = this.findService (name);
-
- return this.remove (service);
- }
-
- /**
- * Resume a suspended service
- *@param name Name of the service to resume
- *@return -1 on failure, 0 on success
- */
- public int resume (String name)
- {
- Service service = this.findService (name);
-
- return service.resume();
- }
-
- /**
- * Suspend a service
- *@param name Name of the service to suspend
- *@return -1 on failure, 0 on success
- */
- public int suspend (String name)
- {
- Service service = this.findService (name);
-
- if (service.suspended ())
- return 0;
-
- return service.suspend ();
- }
-
- /**
- * Returns status information about the specified Service.
- *
- *@param name name of the Service to query
- *@return String of information about the Service's status
- */
- public String info (String name)
- {
- Service service = this.findService (name);
-
- return service.info ();
- }
-
- /**
- * Check to see if the specified Service is suspended or not
- */
- public boolean suspended (String name)
- {
- Service service = this.findService (name);
-
- return service.suspended ();
- }
-
- /**
- * Initialize the specified Service with the given command
- * line arguments.
- */
- public int init (String name, String [] args)
- {
- Service service = this.findService (name);
-
- return service.init (args);
- }
-
- /**
- * Returns the number of items in the repository
- */
- public int size ()
- {
- return this.serviceNames_.size();
- }
-
- /**
- * Stores the Service names in order of insertion
- */
- Vector serviceNames_;
-
- /**
- * A mapping between Service names and Service objects
- */
- Hashtable serviceMap_;
-};
-
-
-
-
-
-
-
-
diff --git a/java/JACE/ServiceConfigurator/package.html b/java/JACE/ServiceConfigurator/package.html
deleted file mode 100644
index 2092fc34f5a..00000000000
--- a/java/JACE/ServiceConfigurator/package.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Point for loading and managing services.
-<P>
-See also:
-<a href="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#config">
-Documents on the ACE Service Configurator</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/Timers/ProfileTimer.java b/java/JACE/Timers/ProfileTimer.java
deleted file mode 100644
index 210d8887907..00000000000
--- a/java/JACE/Timers/ProfileTimer.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Timers
- *
- * = FILENAME
- * ProfileTimer.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Timers;
-
-/**
- * A Java wrapper for interval timers.
- */
-public class ProfileTimer
-{
- /**
- * Start the timer.
- */
- public void start ()
- {
- this.startTime_ = java.lang.System.currentTimeMillis ();
- }
-
- /**
- * Stop the timer.
- */
- public void stop ()
- {
- this.stopTime_ = java.lang.System.currentTimeMillis ();
- }
-
- /**
- * Determine elapsed time between start and stop.
- *@return Total elapsed time (stop - start).
- */
- public long elapsedTime ()
- {
- return this.stopTime_ - this.startTime_;
- }
-
- private long startTime_;
- private long stopTime_;
-}
diff --git a/java/JACE/Timers/package.html b/java/JACE/Timers/package.html
deleted file mode 100644
index 4aa67ec1fd6..00000000000
--- a/java/JACE/Timers/package.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Time related classes.
-
-@see JACE.ASX.TimeValue
-</BODY>
-</HTML>
diff --git a/java/JACE/makebat.zip b/java/JACE/makebat.zip
deleted file mode 100644
index a05c72f274e..00000000000
--- a/java/JACE/makebat.zip
+++ /dev/null
Binary files differ
diff --git a/java/JACE/netsvcs/Handler.java b/java/JACE/netsvcs/Handler.java
deleted file mode 100644
index 7bf73f01206..00000000000
--- a/java/JACE/netsvcs/Handler.java
+++ /dev/null
@@ -1,185 +0,0 @@
-package JACE.netsvcs;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-/**
- * Abstract class representing a handler for a Server. Provides
- * default implementations and template methods.
- *
- *@see Server
- *@author Everett Anderson
- */
-public abstract class Handler extends SvcHandler
-{
- /**
- * Initialize this Handler. The default implementation sets the
- * done flag to false.
- *
- *@return -1 on failure, 0 on success
- */
- public int open (Object obj)
- {
- done_ = false;
- return 0;
- }
-
- /**
- * Shut down this handler. Default implementation calls close ().
- */
- public int close (long flags)
- {
- return close ();
- }
-
- /**
- * Shut down this handler, setting the done flag, and removing it
- * from the parent Server's handler list.
- */
- public synchronized int close ()
- {
- if (!done ()) {
- try {
- done_ = true;
- parent_.removeHandler (this);
- peer ().close ();
- } catch (IOException e) {
- return -1;
- }
- }
-
- return 0;
- }
-
- /**
- * Returns the name of the host that is connected to this handler,
- * or null if not connected.
- */
- public String hostName ()
- {
- if (done ())
- return null;
- else
- return this.peer().socket().getInetAddress().getHostName();
- }
-
- /**
- * Process a single request and handle any errors. The default
- * implementation calls handleRequest with an Object from
- * newRequest ().
- */
- public void handleRequest ()
- {
- handleRequest (newRequest ());
- }
-
- /**
- * Process a single request and handle any errors. The default
- * implementation calls processRequest with the given request
- * Object, and then handles exceptions appropriately. Subclasses
- * normally just implement processRequest rather than override
- * this method.
- *
- *@param request request to process
- */
- public void handleRequest (Object request)
- {
- try {
-
- processRequest (request);
-
- } catch (NullPointerException e) {
- if (!done ()) {
- ACE.ERROR("Failure: " + e);
- close ();
- }
- } catch (SocketException e) {
- if (!done ()) {
- ACE.DEBUG (hostName () + " disconnected");
- close ();
- }
- } catch (EOFException e) {
- if (!done ()) {
- ACE.DEBUG (hostName () + " disconnected");
- close ();
- }
- } catch (IOException e) {
- if (!done ()) {
- ACE.ERROR ("Lost connection: " + e);
- close ();
- }
- }
- }
-
- /**
- * Process a single request (including reading it from the wire)
- * without handling errors. Subclasses must define the behavior.
- *
- *@param requestObject request to process
- *@exception SocketException problem with the socket
- *@exception EOFException end of connection,
- * usually means client disconnected
- *@exception IOException error during transmission
- */
- protected abstract void processRequest (Object requestObject)
- throws SocketException, EOFException, IOException;
-
- /**
- * Returns a new instance of a request object. Subclasses must
- * define the behavior.
- */
- public abstract Object newRequest ();
-
- /**
- * Called by the JVM when a Handler is run in its own Thread. The
- * default implementation creates a single request object which is
- * reused during multiple handleRequest calls. The loop exits
- * when the Handler's done() method returns true.
- */
- public void run()
- {
- Object request = newRequest ();
-
- while (!done ())
- handleRequest (request);
-
- close ();
- }
-
- /**
- * Set the Server parent of this Handler.
- */
- public void parent (Server parent)
- {
- parent_ = parent;
- }
-
- /**
- * Return the Server parent of this Handler.
- */
- public Server parent ()
- {
- return parent_;
- }
-
- /**
- * Check to see if this Handler should shut down.
- */
- protected synchronized boolean done ()
- {
- return done_;
- }
-
- /**
- * Closes the handler, freeing resources.
- */
- protected void finalize () throws Throwable
- {
- close ();
- }
-
- private boolean done_ = true;
- private Server parent_;
-}
diff --git a/java/JACE/netsvcs/Logger/LogRecord.java b/java/JACE/netsvcs/Logger/LogRecord.java
deleted file mode 100644
index 972cf45af74..00000000000
--- a/java/JACE/netsvcs/Logger/LogRecord.java
+++ /dev/null
@@ -1,290 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.netsvcs.Logger
- *
- * = FILENAME
- * LogRecord.java
- *
- *@author Chris Cleeland, Everett Anderson
- *
- *************************************************/
-package JACE.netsvcs.Logger;
-
-import java.util.*;
-import java.io.*;
-import JACE.OS.*;
-
-/**
- * Communicates logging information. Compatible with the C++ ACE
- * ACE_Log_Record class.
- */
-public class LogRecord
-{
- /**
- * Maximum size of a LogRecord
- */
- final public int MAXLOGMSGLEN = 4 * 1024;
-
- private int type_;
- private int length_;
- private long msec_;
- private int pid_;
- private byte[] msgData_;
- private final static int numIntMembers = 5;
- private final static int sizeofIntInBytes = 4;
-
- /**
- * Create a default instance.
- */
- public LogRecord()
- {
- type(0);
- timeStamp((int)new Date().getTime());
- length(0);
- pid(0);
- }
-
- /**
- * Create a LogRecord. This is the designated initializer.
- * @param priority a numeric specification of the priority (ascending)
- * @param milliseconds time attached to the log entry in Unix <pre>time_t</pre> format
- * @param pid the process ID
- */
- public LogRecord(int priority,
- long milliseconds,
- int pid)
- {
- type(priority);
- timeStamp(milliseconds);
- length(0);
- pid(pid);
- }
-
- /**
- * Create a LogRecord with the current time and the given message.
- *
- *@param message message to log
- */
- public LogRecord (String message)
- {
- this ();
-
- msgData (message);
- }
-
- /**
- * Conversion to string. Only includes the <pre>msgData_</pre> member.
- */
- public String toString()
- {
- String result = null;
- try {
- result = new String (msgData_,
- "US-ASCII");
- } catch (UnsupportedEncodingException e) {
- result = new String (msgData_);
- }
-
- return result;
- }
-
- /**
- * Place a textual representation of the record on a PrintStream.
- * When verbose is specified to be true, the output takes the form
- * <PRE>(Date)@(host name)@(PID)@(type)@(message)</PRE>
- * Otherwise it just prints the message.
- * @param hostname name of the host generating this record
- * @param verbose specify how much information to print (see above)
- * @param ps A PrintStream instance to which the output should go.
- */
- public void print(String hostname,
- boolean verbose,
- PrintStream ps)
- {
- String toprint;
- if (verbose)
- {
- Date now = new Date(this.timeStamp());
-
- /* 01234567890123456789012345 */
- /* Wed Oct 18 14:25:36 1989n0 */
- toprint = now.toString().substring(4) + "@"
- + hostname + "@" + pid_ + "@" + type_ + "@"
- + this.toString();
- }
- else
- {
- toprint = this.toString();
- }
- ps.println(toprint);
- }
-
- /**
- * Read in the data for this LogRecord from the given InputStream.
- *
- *@param is InputStream to read from
- *@exception IOException error during transmission
- */
- public void streamInFrom (InputStream is) throws IOException
- {
- BufferedInputStream bis = new BufferedInputStream (is);
-
- DataInputStream dis = new DataInputStream (bis);
-
- streamInFrom (dis);
- }
-
- /**
- * Read in the data for this LogRecord from the given DataInputStream.
- *
- *@param dis DataInputStream to read from
- *@exception IOException error during transmission
- */
- public void streamInFrom(DataInputStream dis) throws IOException
- {
- // Order here must match layout order in the C++ class.
- length(dis.readInt());
- type(dis.readInt());
- this.timeStamp((long)dis.readInt() * 1000);
-
- // Skip smaller time resolution info since we're lucky if Java's
- // timer can handle more than millisecond precision, anyway
- dis.skipBytes(4);
-
- pid(dis.readInt());
-
- int dataLength = (int) (length_ - numIntMembers * sizeofIntInBytes);
-
- msgData_ = new byte[dataLength];
-
- dis.readFully(msgData_, 0, dataLength);
- }
-
- /**
- * Write this LogRecord out to the given OutputStream.
- *
- *@param os OutputStream to write to
- *@exception IOException error during transmission
- */
- public void streamOutTo (OutputStream os) throws IOException
- {
- BufferedOutputStream bos = new BufferedOutputStream (os);
-
- DataOutputStream dos = new DataOutputStream (bos);
-
- streamOutTo (dos);
- }
-
- /**
- * Write this LogRecord out to the given DataOutputStream.
- *
- *@param dos OutputStream to write to
- *@exception IOException error during transmission
- */
- public void streamOutTo(DataOutputStream dos) throws IOException
- {
- dos.writeInt(length());
- dos.writeInt(type());
- dos.writeInt((int)(this.msec_ / 1000));
- dos.writeInt(0);
- dos.writeInt(pid());
-
- dos.write(msgData_);
-
- dos.flush ();
- }
-
- /**
- * Return the LogRecord type.
- */
- public int type() { return type_; }
-
- /**
- * Set the LogRecord type.
- */
- public void type(int t) { type_ = t; }
-
- /**
- * Return the length of this LogRecord.
- */
- public int length() { return length_; }
-
- /**
- * Set the length of this LogRecord.
- */
- public void length(int l) { length_ = l; }
-
- /**
- * Calculate the length of this LogRecord from the size of
- * the message and the header.
- */
- private void setLen(int msgLen)
- { length(msgLen + numIntMembers * sizeofIntInBytes); }
-
- /**
- * Return the millisec time stamp of this LogRecord.
- */
- public long timeStamp() { return this.msec_; }
-
- /**
- * Set the millisec time stamp of this LogRecord.
- */
- public void timeStamp(long msec){ this.msec_ = msec; }
-
- /**
- * Return the PID of this LogRecord.
- */
- public int pid() { return pid_; }
-
- /**
- * Set the PID of this LogRecord.
- */
- public void pid(int p) { pid_ = p; }
-
- /**
- * Return the message of this LogRecord as a byte array.
- */
- public byte[] msgData() { return msgData_; }
-
- /**
- * Set the message of this LogRecord to a given byte array.
- */
- public void msgData(byte[] m)
- {
- int size = m.length;
-
- if (size > MAXLOGMSGLEN)
- size = MAXLOGMSGLEN;
-
- this.msgData_ = new byte[size];
-
- System.arraycopy(m, 0, msgData_, 0, size);
-
- setLen(size);
- }
-
- /**
- * Set the message of this LogRecord to a given byte array. First
- * tries to use US-ASCII encoding, then uses the default encoding
- * if that fails. The toString method is essentially the opposite
- * version.
- */
- public void msgData(String m)
- {
- byte temp[] = null;
- try {
- temp = m.getBytes("US-ASCII");
- } catch (UnsupportedEncodingException e) {
- temp = m.getBytes ();
- }
- if (temp.length > MAXLOGMSGLEN) {
- this.msgData_ = new byte[MAXLOGMSGLEN];
-
- System.arraycopy(temp, 0, msgData_, 0, MAXLOGMSGLEN);
- } else
- this.msgData_ = temp;
-
- setLen(msgData_.length);
- }
-}
diff --git a/java/JACE/netsvcs/Logger/LoggingStrategy.java b/java/JACE/netsvcs/Logger/LoggingStrategy.java
deleted file mode 100644
index b7912499385..00000000000
--- a/java/JACE/netsvcs/Logger/LoggingStrategy.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Logger
- *
- * = FILENAME
- * LogMessageReceiver.java
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.netsvcs.Logger;
-
-import java.io.*;
-
-/**
- * Encapsulates the handling of a LogRecord from a given host, allowing
- * easy swapping of behavior in the logging service. Strategies could
- * be developed to save to a file, print on a certain stream, forward
- * to another service, etc.
- *
- *@see StderrStrategy
- *@see LogRecord
- */
-public interface LoggingStrategy
-{
- /**
- * Process the given LogRecord.
- *
- *@param hostname host from which this LogRecord originated
- *@param record LogRecord instance to process
- */
- public void logRecord (String hostname,
- LogRecord record);
-}
diff --git a/java/JACE/netsvcs/Logger/ServerLoggingAcceptor.java b/java/JACE/netsvcs/Logger/ServerLoggingAcceptor.java
deleted file mode 100644
index c0ef8831fc6..00000000000
--- a/java/JACE/netsvcs/Logger/ServerLoggingAcceptor.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package JACE.netsvcs.Logger;
-
-import java.util.*;
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.Connection.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-import JACE.netsvcs.Server;
-
-/**
- * Server for the logging service. Sets the default logging strategy
- * to StderrStrategy so that logging requests are printed on the
- * System.err stream. Other strategies can be specified on the
- * command line.
- * <P>
- * <B>Valid command line arguments:</B>
- * <PRE>
- * -r (class name) Specify a LoggingStrategy
- * (Default is StdErrStrategy)
- * -p (port) Port to listen on for clients
- * -d Enable debugging messages
- * -a (class name) Specify ActivateStrategy
- * (Default is thread per connection)
- * </PRE>
- *
- *@see LoggingStrategy
- *@see StderrStrategy
- */
-public class ServerLoggingAcceptor extends Server
-{
- /**
- * Default constructor. Sets the default LoggingStrategy to
- * StderrStrategy.
- */
- public ServerLoggingAcceptor ()
- {
- name ("Logging Service");
- logStrategy_ = new StderrStrategy ();
- }
-
- /**
- * Simple main program for running the logging service without the
- * service configurator.
- *
- *@param args command line arguments
- */
- public static void main (String [] args)
- {
- ServerLoggingAcceptor sla = new ServerLoggingAcceptor();
-
- sla.init(args);
- }
-
- /**
- * Accessor for the LoggingStrategy
- */
- public LoggingStrategy loggingStrategy ()
- {
- return this.logStrategy_;
- }
-
- /**
- * Creates a new ServerLoggingHandler instance.
- */
- protected SvcHandler makeSvcHandler ()
- {
- return new ServerLoggingHandler ();
- }
-
- /**
- * Prints out the valid command line arguments. See the class
- * description for more information. Called by Server.init when
- * parseArgs returns -1.
- */
- protected void printUsage ()
- {
- ACE.ERROR ("Valid options:\n");
- ACE.ERROR ("-r <class name> Specify a LoggingStrategy");
- ACE.ERROR (" (Default is StdErrStrategy");
- ACE.ERROR ("-p <port> Port to listen on for clients");
- ACE.ERROR ("-d Enable debugging messages");
- ACE.ERROR ("-a <class name> Specify ActivateStrategy");
- ACE.ERROR (" (Default is single threaded");
- }
-
- /**
- * Parses the command line arguments. See the class description
- * for more information.
- *
- *@param args command line arguments
- *@return -1 on failure, 0 on success
- */
- protected int parseArgs (String args[])
- {
- String s;
- Object strategy;
- GetOpt opt = new GetOpt (args, "p:r:da:", true);
- int c = 0;
-
- try {
-
- while ((c = opt.next ()) != -1)
- {
- switch (c)
- {
- case 'd':
- ACE.enableDebugging ();
- ACE.DEBUG ("Debugging is enabled");
- break;
- case 'p':
- if (!port (opt.optarg ()))
- return -1;
- break;
- case 'a':
- strategy = newStrategyInstance (opt.optarg (),
- "ActivateStrategy");
- if (strategy == null)
- return -1;
-
- activateStrategy ((ActivateStrategy) strategy);
- break;
- case 'r':
- // Load the Strategy with the given name
- strategy = newStrategyInstance (opt.optarg (),
- "LoggingStrategy");
- if (strategy == null)
- return -1;
-
- logStrategy_ = (LoggingStrategy)strategy;
- break;
- default:
- ACE.ERROR ("Unknown argument: " + c);
- return -1;
- }
- }
- } catch (ArrayIndexOutOfBoundsException e) {
- ACE.ERROR ("Option -" + (char)c + " requires an argument");
- return -1;
- }
-
- return 0;
- }
-
- private LoggingStrategy logStrategy_;
-}
diff --git a/java/JACE/netsvcs/Logger/ServerLoggingHandler.java b/java/JACE/netsvcs/Logger/ServerLoggingHandler.java
deleted file mode 100644
index 88a564c2c34..00000000000
--- a/java/JACE/netsvcs/Logger/ServerLoggingHandler.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Logger
- *
- * = FILENAME
- * ServerLoggingHandler.java
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.netsvcs.Logger;
-
-import java.io.*;
-import java.util.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.Connection.*;
-import JACE.OS.*;
-import JACE.netsvcs.Handler;
-
-/**
- *
- * Created by ServerLoggingAcceptor to handle logging requests. This
- * simply reads the record and hands it to the registered LoggingStrategy.
- *
- * @see JACE.netsvcs.Logger.ServerLoggingAcceptor
- */
-public class ServerLoggingHandler extends Handler
-{
- /**
- * Reads in the given LogRecord request and hands it to the
- * LoggingStrategy registered with the ServerLoggingAcceptor parent.
- *
- *@param request LogRecord instance to use
- */
- public void processRequest (Object request)
- throws SocketException, EOFException, IOException
- {
- LogRecord rec = (LogRecord)request;
-
- rec.streamInFrom (this.peer ().dataInputStream ());
-
- ServerLoggingAcceptor parent = (ServerLoggingAcceptor)parent ();
-
- parent.loggingStrategy ().logRecord (this.hostName (), rec);
- }
-
- /**
- * Creates a new instance of LogRecord.
- */
- public Object newRequest ()
- {
- return new LogRecord ();
- }
-}
-
-
-
-
diff --git a/java/JACE/netsvcs/Logger/StderrStrategy.java b/java/JACE/netsvcs/Logger/StderrStrategy.java
deleted file mode 100644
index ee927e19062..00000000000
--- a/java/JACE/netsvcs/Logger/StderrStrategy.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Logger
- *
- * = FILENAME
- * DefaultLMR.java
- *
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.netsvcs.Logger;
-
-import java.io.*;
-
-/**
- * Default LoggingStrategy for the logging service. This prints out the
- * LogRecord on the System.err stream.
- *
- * @see JACE.netsvcs.Logger.LogRecord
- */
-public class StderrStrategy implements LoggingStrategy
-{
- /**
- * Process the given LogRecord by printing it on the System.err stream.
- *
- *@param hostname host from which this LogRecord originated
- *@param record LogRecord instance to process
- */
- public void logRecord (String hostname,
- LogRecord record)
- {
- record.print(hostname, true, System.err);
- }
-}
diff --git a/java/JACE/netsvcs/Logger/c.bat b/java/JACE/netsvcs/Logger/c.bat
deleted file mode 100644
index 6600766df1d..00000000000
--- a/java/JACE/netsvcs/Logger/c.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-@echo off
-javac -d C:\Everett\JACE\classes *.java
diff --git a/java/JACE/netsvcs/Logger/package.html b/java/JACE/netsvcs/Logger/package.html
deleted file mode 100644
index 84bffb246d9..00000000000
--- a/java/JACE/netsvcs/Logger/package.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Logging Service for processing logging records received from remote hosts.
-<P>
-The strategy for how to process the records can be easily changed via the
-command line.
-<P>
-A simple test client is available in the tests directory under netsvcs\Logger.
-The service itself can either be run on the command line (by running
-ServerLoggingAcceptor) or by loading it with a ServiceConfig file (see
-the tests for the service configurator).
-
-@see JACE.netsvcs.Logger.LoggingStrategy
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-netsvcs.html">ACE Network Services</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/netsvcs/Naming/NameAcceptor.java b/java/JACE/netsvcs/Naming/NameAcceptor.java
deleted file mode 100644
index 7e7be457d70..00000000000
--- a/java/JACE/netsvcs/Naming/NameAcceptor.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Naming
- *
- * = FILENAME
- * NameAcceptor.java
- *
- *************************************************/
-package JACE.netsvcs.Naming;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.ASX.TimeValue;
-import JACE.netsvcs.Server;
-
-/**
- * Server for the naming service.
- * Listens on the specified port (command line option) and launches
- * NameHandlers when connections are made.
- * <P>
- * The hash table for the mapping and a timer queue are created here.
- * Periodically, if it has been changed, the mapping is saved to a file.
- * If the data file exists at load time, it is read from disk. Currently,
- * the service stores the entire mapping in one Hashtable (which is probably
- * kept in memory at all times).
- * <P>
- * <B>Valid command line arguments:</B>
- * <PRE>
- * -f (file name) File name of the database
- * (Default is namedata.dat)
- * -p (port number) Port to listen on for clients
- * -d Enable debugging
- * -t (time sec) How often to save the database (default 60 sec)
- * -a (class name) Specify ActivateStrategy
- * (Default is multi-threaded)
- * </PRE>
- *
- *@see NameHandler
- *
- *@author Everett Anderson
- *
- */
-public class NameAcceptor extends Server
-{
- /**
- * Constructor
- */
- public NameAcceptor ()
- {
- // Set the name in case we are not using the service
- // configurator
- name ("Naming Service");
-
- // Create the hash table and timer queue
- this.mapping_ = new Hashtable ();
- this.tq_ = new TimerQueue (true);
- }
-
- /**
- * Simple main program. See the class description for more
- * information about command line arguments.
- */
- public static void main (String [] args)
- {
- // Simple main program to get things rolling
- NameAcceptor na = new NameAcceptor();
-
- na.init(args);
- }
-
- /**
- * Check to see if the mapping has been modified since the last
- * save.
- */
- synchronized boolean modifiedMapping ()
- {
- return mappingWasModified_;
- }
-
- /**
- * Set the modified state of the mapping.
- */
- synchronized void modifiedMapping (boolean value)
- {
- mappingWasModified_ = value;
- }
-
- /**
- * Cancels the timer which was used to save the mapping, then delegates
- * to Server.fini ().
- *
- *@return -1 on failure, 0 on success
- */
- public int fini ()
- {
- if (!done () && tq_ != null)
- tq_.cancelTimer (this);
-
- return super.fini ();
- }
-
- /**
- * Read the data file (if it exists) and schedule a periodic timer
- * to save it at intervals. At the end, this delegates to
- * Server.initialize () (which currently sets the default
- * activation scheme if it wasn't defined on the command line).
- *
- *@see Server#initialize
- *@return -1 on failure, 0 on success
- */
- protected int initialize ()
- {
- this.loadTable ();
-
- this.tq_.scheduleTimer (this,
- null,
- new TimeValue (this.updateInterval_),
- new TimeValue (this.updateInterval_));
-
- // Use whatever default ActivateStrategy is defined in the
- // Server class (unless specified in parseArgs)
- return super.initialize ();
- }
-
- /**
- * Create a new NameHandler instance.
- */
- protected SvcHandler makeSvcHandler ()
- {
- return new NameHandler (mapping_);
- }
-
- /**
- * Prints out the valid command line arguments. See the class
- * description for more information. Called by Server.init when
- * parseArgs returns -1.
- */
- protected void printUsage ()
- {
- ACE.ERROR ("Valid options:\n");
- ACE.ERROR ("-f <file name> File name of the database");
- ACE.ERROR (" (Default is namedata.dat)");
- ACE.ERROR ("-p <port number> Port to listen on for clients");
- ACE.ERROR ("-d Enable debugging");
- ACE.ERROR ("-t <time sec> How often to save the database");
- ACE.ERROR (" (Default is 60 seconds)");
- ACE.ERROR ("-a <class name> Specify ActivateStrategy");
- ACE.ERROR (" (Default is multi-threaded");
- }
-
- /**
- * Parses the command line arguments. See the class description
- * for more information.
- *
- *@param args command line arguments
- *@return -1 on failure, 0 on success
- */
- protected int parseArgs (String [] args)
- {
- int c = 0;
- String s;
- GetOpt opt = new GetOpt (args, "p:f:t:da:", true);
-
- try {
-
- while ((c = opt.next ()) != -1) {
- switch (c)
- {
- case 'f':
- this.filename_ = opt.optarg ();
- break;
- case 't':
- try {
- this.updateInterval_ = Integer.parseInt (opt.optarg ());
- } catch (NumberFormatException e) {
- ACE.ERROR ("Invalid interval specified: " + e.getMessage ());
- return -1;
- }
- break;
- case 'd':
- ACE.enableDebugging ();
- ACE.DEBUG ("Debugging is enabled");
- break;
- case 'p':
- if (!port (opt.optarg ()))
- return -1;
- break;
- case 'a':
- Object strategy = newStrategyInstance (opt.optarg (),
- "ActivateStrategy");
- if (strategy == null)
- return -1;
-
- activateStrategy ((ActivateStrategy) strategy);
- break;
- default:
- ACE.ERROR ("Unknown argument: " + (char)c);
- return -1;
- }
- }
- } catch (ArrayIndexOutOfBoundsException e) {
- ACE.ERROR ("Option -" + (char)c + " requires an argument");
- return -1;
- }
-
- return 0;
- }
-
- /**
- * Loads the hash table into memory from the specified
- * file. Uses ObjectInputStream.
- */
- protected void loadTable ()
- {
- File file = new File(this.filename_);
- FileInputStream fis;
- ObjectInputStream ois;
-
- Hashtable ht = null;
-
- try {
-
- if ((file.exists()) && (file.canRead())) {
-
- fis = new FileInputStream (file);
-
- ois = new ObjectInputStream(fis);
-
- ht = (Hashtable)ois.readObject();
- } else
- return;
- } catch (ClassNotFoundException e) {
- ACE.ERROR(e);
- } catch (StreamCorruptedException e) {
- ACE.ERROR(e);
- } catch (SecurityException e) {
- ACE.ERROR(e);
- } catch (IOException e) {
- ACE.ERROR(e);
- }
-
- if (ht != null)
- this.mapping_ = ht;
-
- }
-
- /**
- * Writes the table out to the specified file if it has been modified.
- */
- protected void saveTable ()
- {
- if (!modifiedMapping ())
- return;
-
- FileOutputStream fos;
- ObjectOutputStream oos;
-
- try {
-
- fos = new FileOutputStream(this.filename_);
- oos = new ObjectOutputStream(fos);
-
- synchronized (this.mapping_) {
- oos.writeObject(this.mapping_);
-
- modifiedMapping (false);
- }
-
- oos.flush();
-
- oos.close();
-
- } catch (OptionalDataException e) {
- ACE.ERROR(e);
- } catch (NotSerializableException e) {
- ACE.ERROR(e);
- } catch (IOException e) {
- ACE.ERROR(e);
- }
- }
-
- /**
- * Call back for the TimerQueue. This calls the method to save the
- * hash table. The default time out is 60 seconds.
- */
- public int handleTimeout (TimeValue tv, Object obj)
- {
- this.saveTable();
-
- return 0;
- }
-
- // Mapping data structure
- Hashtable mapping_ = null;
-
- // Default file name
- String filename_ = "namedata.dat";
-
- // How often to save the table (seconds)
- int updateInterval_ = 60;
-
- // Calls handleTimeout at updateInterval_ intervals
- TimerQueue tq_ = null;
-
- boolean mappingWasModified_ = false;
-}
-
diff --git a/java/JACE/netsvcs/Naming/NameHandler.java b/java/JACE/netsvcs/Naming/NameHandler.java
deleted file mode 100644
index 9989e925543..00000000000
--- a/java/JACE/netsvcs/Naming/NameHandler.java
+++ /dev/null
@@ -1,473 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Naming
- *
- * = FILENAME
- * NameHandler.java
- *
- *************************************************/
-package JACE.netsvcs.Naming;
-
-import java.net.SocketException;
-import java.io.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.SOCK_SAP.*;
-import JACE.netsvcs.Handler;
-
-/**
- * Handlers interaction between a client (NameProxy) and the naming
- * service database. Created by NameAcceptor to handle requests.
- * <P>
- * In general, the user binds a name to a (value, type) pair. The type is just
- * treated as just another String (in the C++ version the name and value are
- * arrays of 16 bit data types and the type is an array of 8 bit chars).
- * <P>
- * For this to work in the hash table scheme, the type and value are wrapped in
- * a ValueType class defined as a nested top level class within the
- * NameHandler.
- * <P>
- * This is compatible with the C++ ACE remote name service.
- *
- *@see JACE.netsvcs.Naming.NameAcceptor
- *@see JACE.netsvcs.Naming.NameRequest
- *@see JACE.netsvcs.Naming.NameReply
- *
- *@author Everett Anderson
- */
-public class NameHandler extends Handler
-{
- /**
- * Constructor
- *
- * @param mapping Hash table created in NameAcceptor
- */
- public NameHandler (Hashtable mapping)
- {
- this.mapping_ = mapping;
- }
-
- /**
- * Read in the given NameRequest and calls dispatch.
- */
- public void processRequest (Object request)
- throws SocketException, EOFException, IOException
- {
- NameRequest nameRequest = (NameRequest)request;
-
- nameRequest.streamInFrom (peer ().dataInputStream ());
-
- this.dispatch (nameRequest);
- }
-
- /**
- * Create a new instance of NameRequest.
- */
- public Object newRequest ()
- {
- return new NameRequest ();
- }
-
- /**
- * This is the point at which a request is sent to the various methods
- * that fulfill it. It switches on the request type -- bind,
- * rebind, resolve, etc.
- *
- *@param nameRequest The request to respond to
- */
- void dispatch (NameRequest nameRequest) throws IOException
- {
- NameAcceptor parent = (NameAcceptor)parent ();
-
- // Call the various other member functions based on the
- // message type of the request -- bind, rebind, etc.
- switch (nameRequest.requestType())
- {
- case NameRequest.BIND:
- this.bind(nameRequest, false);
- parent.modifiedMapping (true);
- break;
- case NameRequest.REBIND:
- this.bind(nameRequest, true);
- parent.modifiedMapping (true);
- break;
- case NameRequest.RESOLVE:
- this.resolve(nameRequest);
- break;
- case NameRequest.UNBIND:
- this.unbind(nameRequest);
- parent.modifiedMapping (true);
- break;
- case NameRequest.LIST_NAMES:
- this.listByName(nameRequest.name(), false);
- break;
- case NameRequest.LIST_VALUES:
- this.listByValue(nameRequest.name(), false);
- break;
- case NameRequest.LIST_TYPES:
- this.listByType(nameRequest.name(), false);
- break;
- case NameRequest.LIST_NAME_ENTRIES:
- this.listByName(nameRequest.name(), true);
- break;
- case NameRequest.LIST_VALUE_ENTRIES:
- this.listByValue(nameRequest.name(), true);
- break;
- case NameRequest.LIST_TYPE_ENTRIES:
- this.listByType(nameRequest.name(), true);
- break;
- default:
- ACE.ERROR("Unknown type: " + nameRequest.requestType());
-
- // Send a failure message. This will only work if the other
- // side is expecting something like a NameReply rather than
- // a NameRequest. It would've been better to have everything
- // use NameRequests to avoid this kind of thing.
- NameReply reply = new NameReply (NameReply.FAILURE, 0);
- reply.streamOutTo(peer ().dataOutputStream ());
- break;
- }
-
- }
-
- /**
- *
- * Bind a name and a (value, type) pair. All this data is given in the
- * NameRequest from the client. Returns a NameReply back to the client
- * with either Reply.SUCCESS or Reply.FAILURE as the type.
- *
- *@param request NameRequest given by the client
- *@param rebind Is this a rebind or not?
- */
- void bind (NameRequest request,
- boolean rebind) throws IOException
- {
- // The hash table entries consists of (String name, ValueType data)
- // pairs, so create the appropriate ValueType
- ValueType vt = new ValueType(request.type(),
- request.value());
-
- // Reply to tell sender of success or failure
- NameReply reply = new NameReply();
-
- // If it's a rebind request, overwrite the old entry. If the key doesn't
- // exist, add it. If it does exist and it's not a bind request, return
- // a failure code via a NameReply.
- if ((rebind) || (!this.mapping_.containsKey(request.name()))) {
-
- ACE.DEBUG ("Binding: " + request.name() + " and " + vt.value_);
-
- // Add/Update the entry in the hash table
- this.mapping_.put(request.name(), vt);
-
- // Set the reply code to success
- reply.type(NameReply.SUCCESS);
-
- } else {
-
- ACE.DEBUG ("Key " + request.name() + " already exists");
-
- // Set reply code to failure
- reply.type(NameReply.FAILURE);
-
- // reply error code unused as far as I know
- }
-
- reply.streamOutTo(peer ().dataOutputStream ());
- }
-
- /**
- * Given a name, this looks up and returns the type and value. This is
- * done by sending back a full NameRequest with the correct info. If
- * there is a problem, an "empty" NameRequest is returned -- it has no
- * name, type, or value fields.
- *
- *@param request NameRequest sent by the client (has the name to lookup)
- */
- void resolve (NameRequest request) throws IOException
- {
- // A NameRequest is also used in response
- NameRequest result;
-
- // If the requested name is in the hash table, return the data
- if (this.mapping_.containsKey(request.name())) {
-
- // Get the data pair based on the name
- ValueType vt = (ValueType)this.mapping_.get(request.name());
-
- ACE.DEBUG("Good resolve: " + vt.value_);
-
- // Fill the reply structure
- result = new NameRequest(NameRequest.RESOLVE,
- null,
- vt.value_,
- vt.type_,
- null);
-
- } else {
-
- // Otherwise return a null response
- result = new NameRequest(NameRequest.RESOLVE,
- null,
- null,
- null,
- null);
-
- }
-
- result.streamOutTo (peer ().dataOutputStream ());
- }
-
- /**
- *
- * Given a name, remove its entry in the mapping. Returns a NameReply
- * to the client with NameReply.SUCCESS or NameReply.FAILURE.
- *
- *@param request NameRequest from the client (has the name to remove)
- */
- void unbind (NameRequest request) throws IOException
- {
- NameReply reply = new NameReply();
-
- // If the given key isn't in the table, return an error
- // Otherwise remove it. Uses a NameReply to respond.
- if (!this.mapping_.containsKey(request.name()))
- reply.type(NameReply.FAILURE);
- else {
- this.mapping_.remove(request.name());
- reply.type(NameReply.SUCCESS);
- }
-
- // Send the reply out to the socket
- reply.streamOutTo (peer ().dataOutputStream ());
- }
-
- /**
- *
- * Given a pattern string (given in NameRequest's name field), this
- * finds all the entries in the mapping which have a name that begins with
- * the string. Each one is sent back separately via a NameRequest, and this
- * sequence is followed by a blank NameRequest.
- *
- *@param pattern Pattern to find (what result names should
- * begin with)
- *@param completeLookup Should the value and type be returned as well?
- */
- void listByName (String pattern,
- boolean completeLookup) throws IOException
- {
- // Get a listing of all the keys in the hash table
- Enumeration enum = this.mapping_.keys();
-
- // References used in the loop
- String name;
- ValueType vt;
-
- // A NameRequest is used to return each item corresponding to the pattern.
- NameRequest result =
- new NameRequest((completeLookup ? NameRequest.LIST_NAMES :
- NameRequest.LIST_NAME_ENTRIES),
- null,
- null,
- null,
- null);
-
- // Keep ourselves safe from null pointer exceptions
- if (pattern == null)
- pattern = new String("");
-
- // Scan through all the elements
- while (enum.hasMoreElements()) {
-
- // Get a key
- name = (String)enum.nextElement();
-
- // Does it fit the pattern?
- if (name.startsWith(pattern)) {
-
- // Set the result name
- result.name(name);
-
- // Only make another hash table request if the user
- // wants all the data
- if (completeLookup) {
-
- // Get data from the hash table
- vt = (ValueType)mapping_.get(name);
-
- // Set the rest of the data
- result.type(vt.type_);
- result.value(vt.value_);
- }
-
- // Send it to the socket
- result.streamOutTo (peer ().dataOutputStream ());
- }
- }
-
- // Send final null message
- result.name(null);
- result.type(null);
- result.value(null);
- result.requestType(NameRequest.MAX_ENUM);
- result.streamOutTo (peer ().dataOutputStream ());
- }
-
- /**
- *
- * Given a pattern string (given in NameRequest's name field), this
- * finds all the entries in the mapping which have a type that begins with
- * the string. Each one is sent back separately via a NameRequest, and this
- * sequence is followed by a blank NameRequest.
- *
- *@param pattern Pattern to find (what result types should
- * begin with)
- *@param completeLookup Should the value be returned as well? This is
- * only used to decide between LIST_TYPES and
- * LIST_TYPE_ENTRIES since we might as well send
- * back both if we look them up together.
- */
- void listByType (String pattern,
- boolean completeLookup) throws IOException
- {
- // Get a listing of all the keys in the hash table
- Enumeration enum = this.mapping_.keys();
-
- // References used in the loop
- String name;
- ValueType vt;
-
- // A NameRequest is used to return each item corresponding to the pattern.
- NameRequest result =
- new NameRequest((completeLookup ? NameRequest.LIST_TYPES :
- NameRequest.LIST_TYPE_ENTRIES),
- null,
- null,
- null,
- null);
- // Keep ourselves safe from null pointer exceptions
- if (pattern == null)
- pattern = new String("");
-
- // Scan through all the elements
- while (enum.hasMoreElements()) {
-
- // Get a key
- name = (String)enum.nextElement();
-
- // Have to get all the data for this entry to compare
- vt = (ValueType)mapping_.get(name);
-
- // Does it fit the pattern?
- if (vt.type_ != null)
- if (vt.type_.startsWith(pattern)) {
-
- // Set the result values
- result.name(name);
- result.type(vt.type_);
- result.value(vt.value_);
-
- // Send it out to the socket
- result.streamOutTo (peer ().dataOutputStream ());
- }
- }
-
- // Send final null message
- result.name(null);
- result.type(null);
- result.value(null);
- result.requestType(NameRequest.MAX_ENUM);
- result.streamOutTo (peer ().dataOutputStream ());
- }
- /**
- *
- * Given a pattern string (given in NameRequest's name field), this
- * finds all the entries in the mapping which have a value that begins with
- * the string. Each one is sent back separately via a NameRequest, and this
- * sequence is followed by a blank NameRequest.
- *
- *@param pattern Pattern to find (what result values should
- * begin with)
- *@param completeLookup Should the value be returned as well? This is
- * only used to decide between LIST_TYPES and
- * LIST_TYPE_ENTRIES since we might as well send
- * back both if we look them up together.
- */
- void listByValue (String pattern,
- boolean completeLookup) throws IOException
- {
- // Get a listing of all the keys in the hash table
- Enumeration enum = this.mapping_.keys();
-
- // References used in the loop
- String name;
- ValueType vt;
-
- // A NameRequest is used to return each item corresponding to the pattern.
- NameRequest result =
- new NameRequest((completeLookup ? NameRequest.LIST_VALUES :
- NameRequest.LIST_VALUE_ENTRIES),
- null,
- null,
- null,
- null);
- // Keep ourselves safe from null pointer exceptions
- if (pattern == null)
- pattern = new String("");
-
- // Scan through all the elements
- while (enum.hasMoreElements()) {
-
- // Get a key
- name = (String)enum.nextElement();
-
- // Have to get all the data for this entry to compare
- vt = (ValueType)mapping_.get(name);
-
- // Does it fit the pattern?
- if (vt.value_ != null)
- if (vt.value_.startsWith(pattern)) {
-
- // Set the result values
- result.name(name);
- result.type(vt.type_);
- result.value(vt.value_);
-
- // Send it out to the socket
- result.streamOutTo (peer ().dataOutputStream ());
- }
- }
-
- // Send final null message
- result.name(null);
- result.type(null);
- result.value(null);
- result.requestType(NameRequest.MAX_ENUM);
- result.streamOutTo (peer ().dataOutputStream ());
- }
-
- // References to the hash table and the timer queue
- private Hashtable mapping_;
-
- /**
- * A simple wrapper to keep the type and value together in
- * the hash table.
- */
- static class ValueType implements Serializable
- {
- /**
- * Constructor
- *
- *@param type Type string to include
- *@param value Value string to include
- */
- ValueType(String type, String value)
- { this.type_ = type; this.value_ = value; }
-
- public String type_;
- public String value_;
- }
-}
diff --git a/java/JACE/netsvcs/Naming/NameProxy.java b/java/JACE/netsvcs/Naming/NameProxy.java
deleted file mode 100644
index 9b1b3102f1d..00000000000
--- a/java/JACE/netsvcs/Naming/NameProxy.java
+++ /dev/null
@@ -1,405 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Naming
- *
- * = FILENAME
- * NameProxy.java
- *
- *************************************************/
-package JACE.netsvcs.Naming;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-import JACE.Connection.*;
-
-/**
- * Proxy which clients can use to interact with the naming service.
- * Can be used with the Connector.
- *
- *@see JACE.Connection.Connector
- *@see NameAcceptor
- *@see NameHandler
- *
- *@author Everett Anderson
- */
-public class NameProxy extends SvcHandler
-{
- /**
- * Constructor, connects itself using a Connector.
- *
- *@param host name of the host of the naming service
- *@param port port to connect to on the host
- */
- public NameProxy (String host, int port)
- throws UnknownHostException,
- SocketException,
- InstantiationException,
- IllegalAccessException,
- IOException
- {
- Connector c = new Connector ();
- c.open (host, port);
- c.connect (this);
- }
-
- /**
- * Default constructor. Proxies created with this constructor must
- * be connected to use.
- */
- public NameProxy ()
- {
- }
-
- /**
- * Constructor taking a SOCKStream to use.
- *
- *@param sock SOCKStream already open to the naming service
- */
- public NameProxy (SOCKStream sock)
- {
- this.stream_ = sock;
- }
-
- /**
- * Initialize this proxy. (Called by Connector)
- */
- public int open (Object obj)
- {
- connected_ = true;
- return 0;
- }
-
- /**
- * Close the proxy, shutting down the connection to the service.
- */
- public int close ()
- {
- if (!connected_)
- return 0;
-
- try {
- this.peer ().close ();
- } catch (IOException e) {
- return -1;
- } finally {
- connected_ = false;
- }
-
- return 0;
- }
-
- /**
- * Attempt to bind the given data pair
- * @param name Name/key
- * @param value Value to bind
- *
- * @return True iff bind is successful
- */
- public boolean bind(String name, String value) throws IOException
- {
- return this.bind(name, value, null, false);
- }
-
- /**
- * Attempt to bind the given data triplet
- * @param name Name/key
- * @param value Value to bind
- * @param type Type to bind (another string)
- *
- * @return True iff the bind was successful
- */
- public boolean bind(String name, String value, String type)
- throws IOException
- {
- return this.bind(name, value, type, false);
- }
-
- /**
- * The most generic of the bind methods. Allows factoring out of
- * common code. Not public.
- */
- boolean bind (String name, String value, String type, boolean rebind)
- throws IOException
- {
- // Create a new NameRequest with the desired info
- NameRequest request =
- new NameRequest(rebind ? NameRequest.REBIND : NameRequest.BIND,
- name,
- value,
- type,
- null);
-
- // Send it to the naming service
- request.streamOutTo(this.stream_);
-
- // Create a reply
- NameReply reply = new NameReply();
-
- // Get the status of the bind from the naming service
- reply.streamInFrom(this.stream_);
-
- // Return true on success
- return (reply.type() == NameReply.SUCCESS ? true : false);
- }
-
- /**
- * Rebind a name and a value
- * @param name Name/key
- * @param value Bound value
- *
- * @return True if the rebind was successful
- */
- public boolean rebind (String name, String value) throws IOException
- {
- return this.bind(name, value, null, true);
- }
-
- /**
- * Rebind a name, value, and type
- * @param name Name/key
- * @param value Bound value
- * @param type Bound type
- *
- * @return True if rebind was successful
- */
- public boolean rebind (String name, String value, String type)
- throws IOException
- {
- return this.bind(name, value, type, true);
- }
- /**
- * Look up information bound to the given key/name.
- *
- * @param name Name/key
- *
- * @return Vector with three elements:
- * 0 Name/key
- * 1 Value
- * 2 Type
- */
- public Vector resolve (String name) throws IOException
- {
- // Create a new NameRequest with the name & request type
- NameRequest request = new NameRequest(NameRequest.RESOLVE,
- name,
- null,
- null,
- null);
-
- // Send it to the naming service
- request.streamOutTo(this.stream_);
-
- // Get a response (hopefully with the value and type)
- request.streamInFrom(this.stream_);
-
- // Dump the result into a vector
- Vector result = new Vector();
-
- result.addElement(request.name());
- result.addElement(request.value());
- result.addElement(request.type());
-
- // Cut it down to the size we need
- result.trimToSize();
-
- return result;
- }
-
- /**
- * Remove the entry in the mapping corresponding to the given name/key.
- *
- * @param name Name/key
- *
- * @return True if the unbind was successful
- */
- public boolean unbind (String name) throws IOException
- {
- NameRequest request = new NameRequest(NameRequest.UNBIND,
- name,
- null,
- null,
- null);
- // Send the request to the naming service
- request.streamOutTo(this.stream_);
-
- NameReply reply = new NameReply();
-
- // Get reply
- reply.streamInFrom(this.stream_);
-
- return (reply.type() == NameReply.SUCCESS ? true : false);
- }
-
- /**
- * Return a vector that's a list of names (Strings) that begin with
- * the given pattern
- * @param pattern Search pattern
- * @return Vector List of names
- */
- public Vector listNames (String pattern) throws IOException
- {
- return this.requestSimpleList(pattern, NameRequest.LIST_NAMES);
- }
-
- /**
- * Return a vector that's a list of types (Strings) that begin with
- * the given pattern
- * @param pattern Search pattern
- * @return Vector List of types
- */
- public Vector listTypes (String pattern) throws IOException
- {
- return this.requestSimpleList(pattern, NameRequest.LIST_TYPES);
- }
-
- /**
- * Return a vector that's a list of values (Strings) that begin with
- * the given pattern
- * @param pattern Search pattern
- * @return Vector List of values
- */
- public Vector listValues (String pattern) throws IOException
- {
- return this.requestSimpleList(pattern, NameRequest.LIST_VALUES);
- }
-
- /**
- * Non-public generic list gathering method
- */
- Vector requestSimpleList (String pattern, int type) throws IOException
- {
- // Make request for a list of the given type
- NameRequest request = new NameRequest(type,
- pattern,
- null,
- null,
- null);
- request.streamOutTo(this.stream_);
-
- // Allocate and reuse the DIS here rather than each time we call
- // streamInFrom
- DataInputStream dis = new DataInputStream(this.stream_.inputStream());
-
- request.streamInFrom(dis);
- Vector result = new Vector();
-
- // Add elements until there's a null message with the MAX_ENUM
- // request type
- while (request.requestType() != NameRequest.MAX_ENUM) {
- if (type == NameRequest.LIST_NAMES)
- result.addElement(new String(request.name()));
- else
- if (type == NameRequest.LIST_VALUES)
- result.addElement(new String(request.value()));
- else
- result.addElement(new String(request.type()));
-
- request.streamInFrom(dis);
- }
-
- // Adjust the vector to the minimal size
- result.trimToSize();
-
- return result;
- }
-
- /**
- * Get a vector with the entire data set for entries whose name begins with
- * the given pattern. Each element in the vector is another vector
- * with the following layout:
- * 0 Name/key
- * 1 Value
- * 2 Type
- *
- * @param pattern Search pattern
- * @return Vector of vectors
- */
- public Vector listNameEntries (String pattern) throws IOException
- {
- return this.requestComplexList(pattern, NameRequest.LIST_NAME_ENTRIES);
- }
-
- /**
- * Get a vector with the entire data set for entries whose value begins with
- * the given pattern. Each element in the vector is another vector
- * with the following layout:
- * 0 Name/key
- * 1 Value
- * 2 Type
- *
- * @param pattern Search pattern
- * @return Vector of vectors
- */
- public Vector listValueEntries (String pattern) throws IOException
- {
- return this.requestComplexList(pattern, NameRequest.LIST_VALUE_ENTRIES);
- }
-
- /**
- * Get a vector with the entire data set for entries whose type begins with
- * the given pattern. Each element in the vector is another vector
- * with the following layout:
- * 0 Name/key
- * 1 Value
- * 2 Type
- *
- * @param pattern Search pattern
- * @return Vector of vectors
- */
-
- public Vector listTypeEntries (String pattern) throws IOException
- {
- return this.requestComplexList(pattern, NameRequest.LIST_TYPE_ENTRIES);
- }
-
- /**
- * Non-public generic method for getting a a vector of vectors with the
- * entire data set for entries fitting the given pattern.
- */
- Vector requestComplexList (String pattern, int type) throws IOException
- {
- // Create request with desired type
- NameRequest request = new NameRequest(type,
- pattern,
- null,
- null,
- null);
- // Send it to the naming service
- request.streamOutTo(this.stream_);
-
- // Allocate the DIS here and reuse
- DataInputStream dis = new DataInputStream(this.stream_.inputStream());
-
- // Get the first response
- request.streamInFrom(dis);
- Vector result = new Vector();
-
- // Loop while we don't see a null response with the MAX_ENUM
- //request type
- while (request.requestType() != NameRequest.MAX_ENUM) {
- Vector entry = new Vector();
-
- // Create an element in the main vector
- entry.addElement(request.name());
- entry.addElement(request.value());
- entry.addElement(request.type());
- entry.trimToSize();
-
- // Add it to the result
- result.addElement(entry);
-
- // Get another NameRequest
- request.streamInFrom(dis);
- }
-
- result.trimToSize();
-
- return result;
- }
-
- private boolean connected_ = false;
-}
diff --git a/java/JACE/netsvcs/Naming/NameReply.java b/java/JACE/netsvcs/Naming/NameReply.java
deleted file mode 100644
index d20c9ed05f0..00000000000
--- a/java/JACE/netsvcs/Naming/NameReply.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Naming
- *
- * = FILENAME
- * NameReply.java
- *
- *************************************************/
-package JACE.netsvcs.Naming;
-
-import java.io.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.ASX.*;
-import JACE.SOCK_SAP.*;
-
-/**
- * Used by the naming server to give quick status messages
- * to the client. This is only used to signal the success or
- * failure of bind and unbind requests. The error number seems
- * to be unused in the C++ version.
- *
- *@see NameHandler
- *@author Everett Anderson
- *
- */
-public class NameReply
-{
- /** Successful operation indicator */
- public final static int SUCCESS = 0;
-
- /** Failed operation indicator */
- public final static int FAILURE = -1;
-
- /**
- * Default Constructor (success, errno 0)
- */
- public NameReply ()
- {
- this.type_ = this.SUCCESS;
- this.errno_ = 0;
- }
-
- /**
- * Constructor
- *
- *@param type Success or failure
- *@param err Error number (unused)
- */
- public NameReply (int type, int err)
- {
- this.type_ = type;
- this.errno_ = err;
- }
-
- /**
- * Length accessor
- */
- int length()
- { return this.length_; }
-
- /**
- * Type accessor -- success or failure
- */
- int type()
- { return this.type_; }
-
- /**
- * Error number accessor
- */
- int errno()
- { return this.errno_; }
-
- /**
- * Set type
- * @param type New type
- */
- void type(int type)
- { this.type_ = type; }
-
- /**
- * Set error number
- * @param errno New error number
- */
- void errno(int errno)
- { this.errno_ = errno; }
-
- /**
- * Send this data to the given SOCKStream.
- *
- *@param sock SOCKStream to send to
- */
- public void streamOutTo (JACE.SOCK_SAP.SOCKStream sock) throws IOException
- {
- streamOutTo (sock.dataOutputStream ());
- }
-
- /**
- * Send this instance to the given DataOutputStream.
- */
- public void streamOutTo (DataOutputStream dos) throws IOException
- {
- dos.writeInt(this.length_);
- dos.writeInt(this.type_);
- dos.writeInt(this.errno_);
-
- dos.flush();
- }
-
- /**
- * Send this instance to the given OutputStream.
- */
- public void streamOutTo (OutputStream os) throws IOException
- {
- BufferedOutputStream bos = new BufferedOutputStream (os);
- DataOutputStream dos = new DataOutputStream (bos);
-
- streamOutTo (dos);
- }
-
- /**
- * Fill the fields of this instance from data in the socket
- *
- *@param sock SOCKStream to read from
- */
- public void streamInFrom (JACE.SOCK_SAP.SOCKStream sock) throws IOException
- {
- this.streamInFrom(sock.dataInputStream ());
- }
-
- /**
- * Fill this instance from the DataInputStream (which should be buffered).
- *
- *@param dis DataInputStream to use
- */
- public void streamInFrom (DataInputStream dis) throws IOException
- {
- int length = dis.readInt();
-
- if (length != this.length_)
- throw new IOException("Incorrect NameReply length");
-
- type_ = dis.readInt();
- errno_ = dis.readInt();
- }
-
- /**
- * Fill this instance from the given InputStream.
- */
- public void streamInFrom (InputStream is) throws IOException
- {
- BufferedInputStream bis = new BufferedInputStream (is);
- DataInputStream dis = new DataInputStream (bis);
-
- streamInFrom (dis);
- }
-
- final static int length_ = 12;
-
- int type_;
- int errno_;
-}
-
-
-
-
diff --git a/java/JACE/netsvcs/Naming/NameRequest.java b/java/JACE/netsvcs/Naming/NameRequest.java
deleted file mode 100644
index 706b14728c5..00000000000
--- a/java/JACE/netsvcs/Naming/NameRequest.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Naming
- *
- * = FILENAME
- * NameRequest.java
- *
- *@see netsvcs.Naming.NameHandler
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.netsvcs.Naming;
-
-import java.io.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.ASX.*;
-import JACE.SOCK_SAP.*;
-
-/**
- * Holds information including name, value, type, and request
- * type. Used by both client and naming server as detailed in
- * NameHandler. Compatible with the C++ ACE_Name_Request.
- *
- *@see NameHandler
- */
-public class NameRequest
-{
- /** Bind request type */
- public static final int BIND = 1;
-
- /** Rebind request type */
- public static final int REBIND = 2;
-
- /** Resolve request type */
- public static final int RESOLVE = 3;
-
- /** Unbind request type */
- public static final int UNBIND = 4;
-
- /** List Names request type */
- public static final int LIST_NAMES = 5;
-
- /** List Values request type */
- public static final int LIST_VALUES = 13;
-
- /** List Types request type */
- public static final int LIST_TYPES = 21;
-
- /** List Name Entries request type */
- public static final int LIST_NAME_ENTRIES = 6;
-
- /** List Value Entries request type */
- public static final int LIST_VALUE_ENTRIES = 14;
-
- /** List Type Entries request type */
- public static final int LIST_TYPE_ENTRIES = 22;
-
- /** Type used to send a final "null" request when returning
- * a list of items */
- public static final int MAX_ENUM = 11;
- /**
- * Maximum length of a NameRequest instance.
- * See C++ ACE Name_Request_Reply.h for the details of the
- * value of this constant.
- */
- public static final int MAX_LEN = 6182;
-
- /**
- * Default constructor.
- */
- public NameRequest ()
- {
- this.name_ = this.value_ = this.type_ = null;
- this.length_ = 32;
- }
-
- /**
- * Constructor
- *
- * @param requestType Type of request this is (BIND, REBIND, etc)
- * @param name Key to bind
- * @param value Value to bind
- * @param type Type to couple with the value
- * @param timeout Timer information (not really used in JACE yet)
- */
- public NameRequest(int requestType,
- String name,
- String value,
- String type,
- TimeValue timeout)
- {
- this.requestType_ = requestType;
-
- if (timeout == null) {
-
- this.blockForever_ = 1;
- this.secTimeout_ = 0;
- this.usecTimeout_ = 0;
- } else {
-
- this.blockForever_ = 0;
- this.secTimeout_ = (int)timeout.sec();
- this.usecTimeout_ = (int)timeout.getMilliTime() * 1000;
- }
-
- // This is necessary to make sure null pointer exceptions are
- // avoided. It makes it more consistent later on
- if (name == null)
- this.name_ = new String("");
- else
- this.name_ = new String(name);
- if (value == null)
- this.value_ = new String("");
- else
- this.value_ = new String(value);
- if (type == null)
- this.type_ = new String("");
- else
- this.type_ = new String(type);
-
- // Set the length
- this.calculateLength();
- }
-
- /**
- * Calculate the transmission length (bytes) of this structure
- */
- private void calculateLength()
- {
- // The type is sent as an 8 bit data type (chars in the C++ version),
- // but the name and value are sent as 16 bit chars (ACE_USHORT16's in C++)
-
- this.length_ = 34 + this.type_.length() + 2 * (this.name_.length() +
- this.value_.length());
- }
-
- /**
- * Return the transmission length
- */
- public int length()
- { return this.length_; }
-
- /**
- * Return the name/key
- */
- public String name()
- { return new String(this.name_); }
-
- /**
- * Set the name/key
- * @param name Name to set to
- */
- public void name(String name)
- {
- if (name == null)
- this.name_ = new String("");
- else
- this.name_ = new String(name);
-
- this.calculateLength();
- }
-
- /**
- * Return the value
- */
- public String value()
- { return new String(this.value_); }
-
- /**
- * Set the value
- * @param value New value
- */
- public void value(String value)
- {
- if (value == null)
- this.value_ = new String("");
- else
- this.value_ = new String(value);
-
- this.calculateLength();
- }
-
- /**
- * Return the type
- */
- public String type()
- { return new String(this.type_); }
-
- /**
- * Set the type
- * @param type New type
- */
- public void type(String type)
- {
- if (type == null)
- this.type_ = new String("");
- else
- this.type_ = new String(type);
-
- this.calculateLength();
- }
-
- /**
- * Fill the fields of this instance with data from the InputStream.
- */
- public void streamInFrom (InputStream is) throws IOException
- {
- BufferedInputStream bis = new BufferedInputStream (is);
-
- DataInputStream dis = new DataInputStream (bis);
-
- this.streamInFrom(dis);
- }
-
- /**
- * Fill the fields of this instance with data from the SOCKStream.
- */
- public void streamInFrom (SOCKStream sock) throws IOException
- {
- streamInFrom (sock.dataInputStream ());
- }
-
- /**
- * Fill the fields of this instance from the given DataInputStream
- *
- *@param dis DataInputStream to read from
- */
- public void streamInFrom (DataInputStream dis) throws IOException
- {
- // Read the length (32 bits)
- length_ = dis.readInt();
-
- if (length_ > MAX_LEN)
- throw new IOException ("Invalid NameRequest length " + length_);
-
- // Read the request type
- requestType_ = dis.readInt();
-
- // Can we block forever to fulfill this request? (unused)
- blockForever_ = dis.readInt();
-
- // How long until we should time out this request? (unused)
- secTimeout_ = dis.readInt();
- usecTimeout_ = dis.readInt();
-
- // The sizes are in bytes, and there are two bytes per char
- // (ACE_USHORT16 in C++ land)
- int nameLen = dis.readInt() / 2;
- int valueLen = dis.readInt() / 2;
-
- int typeLen = dis.readInt();
-
- // Read the name -- just read chars since they're 16 bits.
- // Hopefully the SOCKStream has buffered the data
- char buf[] = new char[nameLen];
- for (int i = 0; i < nameLen; i++) {
- buf[i] = dis.readChar();
- }
- this.name_ = new String(buf);
-
- // Read the value
- buf = new char[valueLen];
- for (int i = 0; i < valueLen; i++)
- buf[i] = dis.readChar();
- this.value_ = new String(buf);
-
- // Read the type -- now we can use readFully since
- // the type was sent as 8 bit chars
- byte tbuf[] = new byte[typeLen];
- dis.readFully(tbuf);
- this.type_ = new String(tbuf);
-
- // Skip the null char at the end
- dis.skipBytes(2);
- }
-
- /**
- * Write the data of this instance to the given SOCKStream.
- */
- public void streamOutTo (SOCKStream sock) throws IOException
- {
- streamOutTo (sock.dataOutputStream ());
- }
-
- /**
- * Write the data of this instance to the given OutputStream.
- */
- public void streamOutTo (OutputStream os) throws IOException
- {
- BufferedOutputStream bos = new BufferedOutputStream (os);
- DataOutputStream dos = new DataOutputStream (bos);
-
- streamOutTo (dos);
- }
-
- /**
- * Send this NameRequest out to the given DataOutputStream
- */
- public void streamOutTo (DataOutputStream dos) throws IOException
- {
- dos.writeInt(length_);
- dos.writeInt(requestType_);
- dos.writeInt(blockForever_);
- dos.writeInt(secTimeout_);
- dos.writeInt(usecTimeout_);
-
- // Byte sizes are sent, and the name and value are stored as
- // 16 bit char arrays (ACE_USHORT16 arrays in C++ version)
- dos.writeInt(this.name_.length() * 2);
- dos.writeInt(this.value_.length() * 2);
- dos.writeInt(this.type_.length());
-
- // Making sure the name_ wasn't null comes in handy
- // in situations like this
- dos.writeChars(this.name_);
- dos.writeChars(this.value_);
- dos.writeBytes(this.type_);
-
- // Null termination
- dos.writeChar(0);
-
- // Send it for real
- dos.flush();
- }
-
- /**
- * Set the requestType
- *@param type Type to set to
- */
- public void requestType(int type)
- {
- this.requestType_ = type;
- }
-
- /**
- * Get requestType
- */
- public int requestType()
- {
- return this.requestType_;
- }
-
- /**
- * Can we block forever to fulfill the request? (unused)
- */
- public boolean blockForever()
- {
- return (this.blockForever_ != 0) ? true : false;
- }
-
- /**
- * Allowed timeout (unused)
- */
- public int secTimeout()
- {
- return this.secTimeout_;
- }
-
- int length_;
- int requestType_;
- int blockForever_;
- int secTimeout_;
- int usecTimeout_;
-
- String name_;
- String value_;
- String type_;
-};
diff --git a/java/JACE/netsvcs/Naming/c.bat b/java/JACE/netsvcs/Naming/c.bat
deleted file mode 100644
index 2b540b1b051..00000000000
--- a/java/JACE/netsvcs/Naming/c.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-@echo off
-javac -d c:\Everett\JACE\classes *.java
diff --git a/java/JACE/netsvcs/Naming/package.html b/java/JACE/netsvcs/Naming/package.html
deleted file mode 100644
index b7ee951fc2e..00000000000
--- a/java/JACE/netsvcs/Naming/package.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Naming Service for associating names and values in a distributed system.
-<P>
-A simple test program for NameProxy and the naming service is in
-the tests directory under netsvcs\Naming.
-
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-netsvcs.html">ACE Network Services</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/netsvcs/Server.java b/java/JACE/netsvcs/Server.java
deleted file mode 100644
index 199a830d0c5..00000000000
--- a/java/JACE/netsvcs/Server.java
+++ /dev/null
@@ -1,356 +0,0 @@
-package JACE.netsvcs;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Misc.GetOpt;
-import JACE.ServiceConfigurator.Service;
-
-/**
- * Abstract class providing default implementations for several
- * Service methods. Currently, all the network services
- * descend from this class. The real work for a service is done
- * by a Handler.
- * <P>
- * Inner classes are provided for thread per connection
- * and single threaded server activation strategies. Currently,
- * specifying a single threaded strategy means that the server will
- * disconnect the client after handling one request. Acceptor and
- * EventHandler may be changed later to incorporate handleInput to
- * address this. Thus, the default activation strategy is thread
- * per connection.
- *
- *@see Handler
- *@see JACE.Connection.ActivateStrategy
- *@author Everett Anderson
- */
-public abstract class Server extends Acceptor implements Runnable
-{
- /**
- * Safely shuts down all the handlers as well as the accepting socket.
- *
- *@return -1 on failure, 0 on success
- */
- public synchronized int fini ()
- {
- if (!done ()) {
- ACE.DEBUG ("Shutting down " + name ());
- try {
- this.done_ = true;
- for (int i = handlers_.size () - 1; i >= 0; i--)
- ((Handler)handlers_.elementAt (i)).close ();
-
- this.sockAcceptor_.close();
- } catch (IOException e) {
- ACE.ERROR(e);
- return -1;
- }
- }
-
- return 0;
- }
-
- /**
- * Returns information about the state of the service such as
- * suspended, not running, or running.
- */
- public String info ()
- {
- if (suspended ())
- return "suspended";
- else
- if (done ())
- return "not running";
- else
- return "running on port " + port_;
- }
-
- /**
- * Provided for extra initialization in subclasses after the
- * command line arguments have been parsed but before starting the
- * service. This is a good place to set the default ActivateStrategy
- * since you can make sure it wasn't set in parseArgs. The default
- * implementation sets the strategy to Server.ThreadPerConnection.
- *
- *@return -1 on error, 0 on success
- */
- protected int initialize ()
- {
- if (activateStrategy_ == null)
- activateStrategy (new Server.ThreadPerConnection ());
-
- return 0;
- }
-
- /**
- * Template method for initialization. Calls parseArgs, initialize,
- * sets the done() state to false, and starts this Server in its own
- * thread. If parseArgs fails, this calls printUsage.
- *
- *@param args command line arguments
- *@return -1 on failure, 0 on success
- */
- public int init (String [] args)
- {
- // Parse arguments
- if (this.parseArgs (args) == -1) {
- printUsage ();
- return -1;
- }
-
- if (initialize () < 0) {
- ACE.ERROR (name () + " failed initializing");
- return -1;
- }
-
- ACE.DEBUG ("Using " + activateStrategy_.getClass().getName ());
- ACE.DEBUG ("Starting " + name () + " on port: " + this.port_);
-
- done_ = false;
-
- // Run in own thread of control so that we don't block the caller
- new Thread (this).start();
- return 0;
- }
-
- /**
- * Called by the JVM when this Server starts running in its own
- * thread.
- */
- public void run ()
- {
- try {
- this.open (this.port_);
- while (!this.done ()) {
- this.accept ();
- }
- } catch (InstantiationException e) {
- ACE.ERROR (e);
- } catch (IllegalAccessException e) {
- ACE.ERROR (e);
- } catch (IOException e) {
- if (!done ())
- ACE.ERROR (e);
- } finally {
- fini ();
- }
- }
-
- /**
- * Calls the appropriate activation strategy with the given
- * service handler. This assumes the SvcHandler is an instance
- * of type Handler, and sets its parent accordingly.
- *
- *@param sh SvcHandler (assumed to be a Handler) to activate
- *@return -1 on failure, 0 on success
- */
- protected int activateSvcHandler (SvcHandler sh)
- {
- if (done ())
- return -1;
-
- addHandler (sh);
- ((Handler)sh).parent (this);
-
- while (suspended () && !done ())
- Thread.yield ();
-
- if (activateStrategy_.activateSvcHandler (sh) != 0) {
- removeHandler (sh);
- return -1;
- }
-
- return 0;
- }
-
- /**
- * Add the given SvcHandler to this Servers list of handlers.
- * @param sh service handler to add (assumed to be a Handler)
- */
- protected void addHandler (SvcHandler sh)
- {
- handlers_.addElement (sh);
- }
-
- /**
- * Called by Handler instances during their close () method.
- *@param sh service handler to remove
- */
- public void removeHandler (SvcHandler sh)
- {
- handlers_.removeElement (sh);
- }
-
- /**
- * Parses the command line arguments. Subclasses must override
- * this.
- *
- *@param args command line arguments
- *@return -1 on failure, 0 on success
- */
- protected abstract int parseArgs (String [] args);
-
- /**
- * Create the appropriate Handler. Subclasses must override this,
- * returning a new instance of the proper subclass of Handler.
- *
- *@return new Handler instance
- */
- protected abstract SvcHandler makeSvcHandler ();
-
- /**
- * Print out the correct syntax and meaning of the command line
- * arguments.
- */
- protected abstract void printUsage ();
-
- /**
- * Set the ActivateStrategy for handlers.
- *
- *@param strategy new ActivateStrategy to use
- *@see JACE.Connection.ActivateStrategy
- */
- protected void activateStrategy (ActivateStrategy strategy)
- {
- activateStrategy_ = strategy;
- }
-
- /**
- * Return the current ActivateStrategy for handlers.
- *
- *@return current ActivateStrategy instance
- */
- protected ActivateStrategy activateStrategy ()
- {
- return activateStrategy_;
- }
-
- /**
- * Check to see if this Server has been shut down.
- */
- protected synchronized boolean done ()
- {
- return done_;
- }
-
- /**
- * Useful method for subclasses when parsing the port command
- * line option.
- *
- *@param port String gathered from the command line representing the port
- *@return false if there was an error, true if successful
- */
- protected boolean port (String port)
- {
- try {
-
- this.port_ = Integer.parseInt (port);
-
- } catch (NumberFormatException e) {
- ACE.ERROR("Invalid port specified: " + e.getMessage ());
- return false;
- } catch (ArrayIndexOutOfBoundsException e) {
- ACE.ERROR("Port option requires an argument");
- return false;
- }
-
- return true;
- }
-
- /**
- * Useful method for subclasses when trying to load and instantiate
- * a certain class from a command line argument. This can be used
- * when a possible command line argument is what kind of activation
- * strategy is used for handlers.
- *
- *@param classname name of the class to load and create an instance of
- *@param descrption descrption of what type of class it is
- *@return null if failed loading, a new instance of the class on success
- */
- protected Object newStrategyInstance (String classname,
- String description)
- {
- try {
- Class factory = Class.forName (classname);
-
- return factory.newInstance ();
-
- } catch (ClassNotFoundException e) {
- ACE.ERROR("Unable to find " + description + ": "
- + e.getMessage ());
- } catch (InstantiationException e) {
- ACE.ERROR ("Instantiating " + description + ": "
- + e.getMessage ());
- } catch (IllegalAccessException e) {
- ACE.ERROR ("Illegal access on " + description + ": "
- + e.getMessage ());
- }
-
- return null;
- }
-
- /**
- * Shuts down the Server if it wasn't already done
- */
- protected void finalize () throws Throwable
- {
- fini ();
- }
-
- private boolean done_ = true;
-
- /**
- * List of currently active Handlers
- */
- protected Vector handlers_ = new Vector ();
- private ActivateStrategy activateStrategy_ = null;
-
- /**
- * Activation strategy in which each Handler is run in its own
- * Thread.
- */
- public static class ThreadPerConnection extends ActivateStrategy
- {
- /**
- * Opens the given service handler, and runs it in its own
- * Thread.
- *@param sh service handler to activate
- *@return -1 on failure, 0 on success
- */
- public int activateSvcHandler (SvcHandler sh)
- {
- if (sh.open (null) < 0)
- return -1;
-
- new Thread (sh).start ();
- return 0;
- }
- }
-
- /**
- * Activation strategy in which all Handlers are run in the
- * Server Thread in sequence. This assumes that the given
- * SvcHandler is a Handler instance.
- */
- public static class SingleThreaded extends ActivateStrategy
- {
- /**
- * Opens the given service handler, calls Handler.handleRequest, and
- * then Handler.close before returning.
- *@param sh service handler to activate (assumed to be a Handler)
- *@return -1 on failure, 0 on success
- */
- public int activateSvcHandler (SvcHandler sh)
- {
- if (sh.open (null) < 0)
- return -1;
-
- ((Handler)sh).handleRequest ();
- ((Handler)sh).close ();
-
- return 0;
- }
- }
-}
diff --git a/java/JACE/netsvcs/Time/TSClerkHandler.java b/java/JACE/netsvcs/Time/TSClerkHandler.java
deleted file mode 100644
index e0a2290d81b..00000000000
--- a/java/JACE/netsvcs/Time/TSClerkHandler.java
+++ /dev/null
@@ -1,195 +0,0 @@
-package JACE.netsvcs.Time;
-
-import java.io.*;
-import java.net.*;
-
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.ASX.*;
-
-/**
- * Requests a time update from a time server. This is used by the
- * TSClerkProcessor to query a server.
- */
-public class TSClerkHandler extends SvcHandler
-{
- /**
- * Constructor.
- *
- *@param parent TSClerkProcessor which is creating this instance
- *@param host name of the machine this handler is connected to
- *@param port port on the time server to connect to
- */
- public TSClerkHandler (TSClerkProcessor parent,
- String host,
- int port)
- {
- parent_ = parent;
- host_ = host;
- port_ = port;
- }
-
- /**
- * Initialize this handler. Called automatically by Connector when a
- * successful connection is made.
- *
- *@return -1 on failure, 0 on success
- */
- public int open (Object obj)
- {
- ACE.DEBUG ("Successful connection to " + host ());
- connected (true);
- return 0;
- }
-
- /**
- * Safely shut down this handler, closing the socket.
- *
- *@return -1 on failure, 0 on success
- */
- public synchronized int close ()
- {
- if (!connected ())
- return 0;
-
- ACE.DEBUG ("Shutting down connection to " + host ());
- try {
- peer ().close ();
- } catch (IOException e) {
- return -1;
- } finally {
- connected (false);
- }
-
- return 0;
- }
-
- /**
- * Accessor for the port number of the server.
- */
- public int port ()
- {
- return port_;
- }
-
- /**
- * Accessor for the host name of the server.
- */
- public String host ()
- {
- return host_;
- }
-
- /**
- * Check to see if this handler is currently connected to a server.
- */
- public synchronized boolean connected ()
- {
- return connected_;
- }
-
- /**
- * Set the connected state.
- *
- *@param state true if connected, false if not
- */
- protected synchronized void connected (boolean state)
- {
- connected_ = state;
- }
-
- /**
- * (Isn't used, just fulfills the interface. Returns -1 by
- * default)
- */
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return -1;
- }
-
- /**
- * (Isn't used, just fulfills the interface.)
- */
- public void run ()
- {
- ACE.ERROR ("TSClerkHandler is not setup to run in its own thread");
- }
-
- /**
- * Sends a request to the server and waits for a reply. This is called
- * by TSClerkProcessor.
- *
- *@return -1 on failure, 0 on success
- */
- public int sendRequest ()
- {
- // Ask the clerk processor to connect this handler if it isn't
- // already. Thus, it tries to reconnect if the server has gone
- // down.
- if (!connected ())
- parent_.connectHandler (this, host_, port_);
-
- TimeRequest request = new TimeRequest ();
-
- long start, stop;
- try {
-
- start = System.currentTimeMillis ();
- request.streamOutTo (peer().outputStream ());
-
- request.streamInFrom (peer().inputStream ());
- stop = System.currentTimeMillis ();
-
- } catch (NullPointerException e) {
- close ();
- return -1;
- } catch (IOException e) {
- close ();
- return -1;
- }
-
- // Compute the difference in the local time and the server time
- // (in seconds)
- long difference = request.time () - (stop / 1000);
-
- // Calculate the transmission time (in seconds)
- long oneWayTime = (stop - start) / 2000;
-
- difference += oneWayTime;
-
- /*
- ACE.DEBUG (host() + " reports:");
- ACE.DEBUG (" time difference: " + difference);
- ACE.DEBUG (" trans. delay: " + oneWayTime);
- */
-
- // Set the time difference for this handler
- delta (difference);
-
- return 0;
- }
-
- /**
- * Returns the current time difference between local time and
- * the server (in seconds).
- */
- public synchronized long delta ()
- {
- return delta_;
- }
-
- /**
- * Sets the current time difference between local time and the
- * server (in seconds).
- */
- protected synchronized void delta (long delta)
- {
- delta_ = delta;
- }
-
- private long delta_;
- private TSClerkProcessor parent_;
- private boolean connected_ = false;
- private String host_;
- private int port_;
-}
diff --git a/java/JACE/netsvcs/Time/TSClerkProcessor.java b/java/JACE/netsvcs/Time/TSClerkProcessor.java
deleted file mode 100644
index bec3bd417df..00000000000
--- a/java/JACE/netsvcs/Time/TSClerkProcessor.java
+++ /dev/null
@@ -1,307 +0,0 @@
-package JACE.netsvcs.Time;
-
-import java.net.*;
-import java.io.*;
-import java.util.*;
-
-import JACE.ASX.TimeValue;
-import JACE.Connection.*;
-import JACE.OS.*;
-import JACE.Reactor.*;
-import JACE.Misc.*;
-
-/**
- * Clerk used to query a number of time servers, compute the average
- * of the time differences, and report it with a sequence number. This
- * can be used to adjust the current local time accordingly.
- * <P>
- * <B>Valid command line arguments:</B>
- * <PRE>
- * -h (host name:port) Specify a time server to contact
- * -t (time in seconds) Specify how often to query the servers
- * (Defaults to five minutes)
- * -d Enable debugging messages
- * </PRE>
- */
-public class TSClerkProcessor implements EventHandler, Runnable
-{
- /**
- * Prints out the valid command line arguments. See the class
- * description for more information.
- */
- public void printUsage ()
- {
- ACE.ERROR ("Valid options:");
- ACE.ERROR ("-h <host name>:<port> Specify a time server to contact");
- ACE.ERROR ("-t <time in seconds> How often to query the servers");
- ACE.ERROR ("-d Enable debugging messages");
- }
-
- /**
- * Parses the command line arguments. See the class description
- * for more information.
- */
- protected int parseArgs (String args[])
- {
- GetOpt opt = new GetOpt (args, "h:t:d", true);
- for (int c; (c = opt.next ()) != -1; )
- {
- switch (c)
- {
- // Specify a hostname:port pair to query
- case 'h':
- if (newHandler (opt.optarg ()) == -1) {
- printUsage ();
- return -1;
- }
- break;
- // Specify time interval to query servers
- case 't':
- int sec = Integer.parseInt (opt.optarg ());
- updateInterval_ = new TimeValue (sec);
- break;
- case 'd':
- ACE.enableDebugging ();
- ACE.DEBUG ("Debugging is enabled");
- break;
- default:
- ACE.ERROR ("Unknown argument: " + (char)c);
- printUsage ();
- return -1;
- }
- }
- return 0;
- }
-
- /**
- * Safely shut down the clerk and all its handlers.
- */
- public synchronized void close ()
- {
- if (!done_) {
- done_ = true;
- tq_.cancelTimer (this);
-
- for (int i = 0; i < handlerSet_.size (); i++) {
- TSClerkHandler h = (TSClerkHandler)handlerSet_.elementAt (i);
-
- h.close ();
- }
- }
- }
-
- /**
- * Called by the JVM when the clerk is run in its own thread. If the
- * TimerQueue provided to (or created by) this TSClerkProcessor isn't
- * running its event loop, it will be run in this thread (by calling
- * handleEvents ()).
- *
- *@see JACE.Reactor.TimerQueue
- */
- public void run ()
- {
- if (handlerSet_.size () == 0) {
- ACE.DEBUG ("No servers are registered. Call init first.");
- return;
- }
-
- if (!tq_.eventLoopRunning ())
- tq_.handleEvents ();
- }
-
- /**
- * Initialize this TSClerkProcessor with command line arguments. See
- * the class description for more information. This also schedules
- * a timeout with the timer queue for when to query the servers.
- *
- *@return -1 on failure, 0 on success
- */
- public int init (String args[])
- {
- if (args.length < 2) {
- printUsage ();
- return -1;
- }
-
- if (parseArgs (args) == -1)
- return -1;
-
- if (handlerSet_.size () == 0) {
- ACE.ERROR ("No servers are registered.");
- done_ = true;
- return -1;
- }
-
- if (tq_ == null)
- tq_ = new TimerQueue (true);
-
- tq_.scheduleTimer (this,
- "Time Service Processor",
- TimeValue.zero,
- updateInterval_);
-
- return 0;
- }
-
- /**
- * Called by TSClerkHandler instances when they need to connect
- * (or reconnect) to a server. This uses Connector to make the
- * connection.
- *
- *@param handler TSClerkHandler to connect to the server
- *@param host name of the service
- *@param port port to connect to on the server
- */
- void connectHandler (TSClerkHandler handler,
- String host,
- int port)
- {
- // Don't let handlers reconnect if we are in the process of closing
- if (done_)
- return;
-
- ACE.DEBUG ("Connecting handler to " + host + " on port " + port);
- try {
-
- Connector c = new Connector ();
- c.open (host, port);
- c.connect (handler);
-
- } catch (UnknownHostException e) {
- synchronized (this) {
- handlerSet_.removeElement (handler);
- }
- ACE.ERROR (e);
- } catch (SocketException e) {
- ACE.ERROR (e);
- } catch (InstantiationException e) {
- ACE.ERROR (e);
- } catch (IllegalAccessException e) {
- ACE.ERROR (e);
- } catch (IOException e) {
- ACE.ERROR (e);
- }
- }
-
- /**
- * Create a new TSClerkHandler for the given (host name):(port)
- * combination. See the class description for more information about
- * providing a host names and ports on the command line.
- *
- *@param hostAndPort String with the host name and port separated by
- * a colon.
- *@return -1 on failure, 0 on success
- */
- protected int newHandler (String hostAndPort)
- {
- int colon = hostAndPort.lastIndexOf (':');
-
- if (colon < 1) {
- ACE.ERROR ("Invalid -h <host>:<port> parameter: " + hostAndPort);
- return -1;
- }
-
- int port = Integer.parseInt (hostAndPort.substring (colon + 1));
- String host = hostAndPort.substring (0, colon);
-
- ACE.DEBUG ("New handler for server " + host + " on port " + port);
-
- TSClerkHandler handler = new TSClerkHandler (this, host, port);
- handlerSet_.addElement (handler);
-
- return 0;
- }
-
- /**
- * Have each TSClerkHandler query its time server, average the results,
- * and set the timeStatus accordingly. This is called by the
- * TimerQueue when appropriate. The interval can be specified on the
- * command line.
- */
- public synchronized int handleTimeout (TimeValue tv, Object obj)
- {
- if (done_)
- return -1;
-
- // Increment the sequence number
- int sequenceNumber = status_.sequenceNumber () + 1;
- Enumeration handlers = handlerSet_.elements ();
-
- long total = 0;
- int count = 0;
-
- // Use each handler to query its server, collecting the time
- // difference information.
- while (handlers.hasMoreElements ()) {
- TSClerkHandler h = (TSClerkHandler)handlers.nextElement ();
-
- if (h.sendRequest () < 0)
- continue;
-
- total += h.delta ();
- count++;
- }
-
- if (count == 0) {
- ACE.ERROR ("Could not reach any time servers, will keep trying.");
- return 0;
- }
-
- timeStatus (new TimeInfo (sequenceNumber, total / count));
-
- ACE.DEBUG ("Status: " + timeStatus ());
-
- return 0;
- }
-
- /**
- * Return the current sequence number and time difference pair.
- */
- public synchronized TimeInfo timeStatus ()
- {
- return status_;
- }
-
- /**
- * Set the current sequence number and time difference pair.
- */
- protected synchronized void timeStatus (TimeInfo status)
- {
- status_ = status;
- }
-
- /**
- * Default constructor. Results in this TSClerkProcessor creating
- * a new timer queue which runs in its own thread. Thus, this
- * TSClerkProcessor runs in its own thread.
- */
- public TSClerkProcessor ()
- {
- // Effectively runs in its own thread because of the timer queue
- }
-
- /**
- * Constructor allowing the timer queue to be specified. If the timer
- * queue isn't already running, the caller is responsible for calling
- * handleEvents to start the clerk. Be careful since the querying
- * process for the servers may take a while.
- *
- *@param queue TimerQueue to register with
- */
- public TSClerkProcessor (TimerQueue queue)
- {
- tq_ = queue;
- }
-
- private boolean done_ = false;
-
- // List of the TSClerkHandlers this uses to maintain its
- // server connections.
- private Vector handlerSet_ = new Vector ();
- private TimerQueue tq_ = null;
-
- // Default is every five minutes
- private TimeValue updateInterval_ = new TimeValue (300, 0);
-
- TimeInfo status_ = new TimeInfo ();
-}
diff --git a/java/JACE/netsvcs/Time/TSServerAcceptor.java b/java/JACE/netsvcs/Time/TSServerAcceptor.java
deleted file mode 100644
index 7e8b9476c19..00000000000
--- a/java/JACE/netsvcs/Time/TSServerAcceptor.java
+++ /dev/null
@@ -1,116 +0,0 @@
-package JACE.netsvcs.Time;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.ASX.TimeValue;
-import JACE.Concurrency.ThreadManager;
-import JACE.netsvcs.Server;
-
-/**
- * Server for the time service. Creates TSServerHandlers as necessary
- * to handle the requests.
- * <P>
- * <B>Valid command line arguments:</B>
- * <PRE>
- * -p (port) Port to listen on for clients");
- * -d Enable debugging messages");
- * -a (class name) Specify ActivateStrategy");
- * (Default is multi-threaded");
- * </PRE>
- *
- */
-public class TSServerAcceptor extends Server
-{
- public TSServerAcceptor ()
- {
- // Set the name in case we're not using the service configurator
- name ("Time Service");
- }
-
- /**
- * Simple main program for running the logging service without the
- * service configurator.
- *
- *@param args command line arguments
- */
- public static void main (String [] args)
- {
- // Simple main program to get things rolling
- TSServerAcceptor ta = new TSServerAcceptor();
-
- ta.init (args);
- }
-
- /**
- * Creates a new TSServerHandler instance.
- */
- protected SvcHandler makeSvcHandler ()
- {
- return new TSServerHandler ();
- }
-
- /**
- * Prints out the valid command line arguments. See the class
- * description for more information. Called by Server.init when
- * parseArgs returns -1.
- */
- protected void printUsage ()
- {
- ACE.ERROR ("Valid options:\n");
- ACE.ERROR ("-p <port> Port to listen on for clients");
- ACE.ERROR ("-d Enable debugging messages");
- ACE.ERROR ("-a <class name> Specify ActivateStrategy");
- ACE.ERROR (" (Default is multi-threaded");
- }
-
- /**
- * Parses the command line arguments. See the class description
- * for more information.
- *
- *@param args command line arguments
- *@return -1 on failure, 0 on success
- */
- protected int parseArgs (String [] args)
- {
- int c = 0;
- GetOpt opt = new GetOpt(args, "p:da:", true);
-
- try {
-
- while ((c = opt.next ()) != -1) {
- switch (c)
- {
- case 'd':
- ACE.enableDebugging ();
- ACE.DEBUG ("Debugging is enabled");
- break;
- case 'p':
- if (!port (opt.optarg ()))
- return -1;
- break;
- case 'a':
- Object strategy = newStrategyInstance (opt.optarg (),
- "ActivateStrategy");
- if (strategy == null)
- return -1;
-
- activateStrategy ((ActivateStrategy) strategy);
- break;
- default:
- ACE.ERROR("Unknown argument: " + (char)c);
- return -1;
- }
- }
- } catch (ArrayIndexOutOfBoundsException e) {
- ACE.ERROR ("Option -" + (char)c + " requires an argument");
- return -1;
- }
-
- return 0;
- }
-}
diff --git a/java/JACE/netsvcs/Time/TSServerHandler.java b/java/JACE/netsvcs/Time/TSServerHandler.java
deleted file mode 100644
index 69bf4239280..00000000000
--- a/java/JACE/netsvcs/Time/TSServerHandler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package JACE.netsvcs.Time;
-
-import java.io.*;
-import java.util.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.SOCK_SAP.*;
-import JACE.netsvcs.Handler;
-
-/**
- * Created by TSServerAcceptor to handle time update requests. Currently,
- * this simply sends back the current time (in seconds).
- *
- * @see JACE.netsvcs.Logger.ServerLoggingAcceptor
- */
-public class TSServerHandler extends Handler
-{
- /**
- * Reads in the given TimeRequest request and calls dispatch.
- *
- *@param request TimeRequest instance to use
- */
- public void processRequest (Object requestObject)
- throws SocketException, EOFException, IOException
- {
- TimeRequest request = (TimeRequest)requestObject;
-
- request.streamInFrom (peer ().dataInputStream ());
-
- this.dispatch (request);
- }
-
- /**
- * Sets the time value of the request to be the local time (in sec)
- * and sends it back to the client.
- */
- void dispatch(TimeRequest request) throws IOException
- {
- request.time ((int)(System.currentTimeMillis () / 1000));
-
- request.streamOutTo (peer().outputStream ());
- }
-
- /**
- * Creates a new instance of TimeRequest.
- */
- public Object newRequest ()
- {
- return new TimeRequest ();
- }
-}
diff --git a/java/JACE/netsvcs/Time/TimeInfo.java b/java/JACE/netsvcs/Time/TimeInfo.java
deleted file mode 100644
index 4ebfc793adb..00000000000
--- a/java/JACE/netsvcs/Time/TimeInfo.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package JACE.netsvcs.Time;
-
-/**
- * Wrapper for use with the clerk, containing a sequence number and
- * time offset pair.
- */
-public class TimeInfo
-{
- /**
- * Default constructor.
- */
- public TimeInfo ()
- {
- this (0, 0);
- }
-
- /**
- * Constructor.
- *
- *@param seqNum sequence number
- *@param delta time offset in seconds
- */
- public TimeInfo (int seqNum, long delta)
- {
- sequenceNumber_ = seqNum;
- delta_ = delta;
- }
-
- /**
- * Returns this TimeInfo's sequence number.
- */
- public int sequenceNumber ()
- {
- return sequenceNumber_;
- }
-
- /**
- * Sets this TimeInfo's sequence number.
- */
- public void sequenceNumber (int num)
- {
- sequenceNumber_ = num;
- }
-
- /**
- * Returns the time offset represented by this TimeInfo instance.
- * (in sec)
- */
- public long delta ()
- {
- return delta_;
- }
-
- /**
- * Sets the time offset (in sec).
- */
- public void delta (long num)
- {
- delta_ = num;
- }
-
- /**
- * Returns an informative String about the time difference represented
- * by this TimeInfo instance. The sequence number is included in
- * brackets.
- * <P>
- * Example:
- * <PRE>
- * Local time is 3 sec slower [57]
- * </PRE>
- */
- public String toString ()
- {
- String result = "Local time is ";
- if (delta_ > 0) {
- result += (delta_ + " sec slower");
- } else
- if (delta_ < 0) {
- result += (delta_ + " sec faster");
- } else
- result += "the same as the average";
-
- result += " [" + sequenceNumber_ + "]";
-
- return result;
- }
-
- private long delta_;
- private int sequenceNumber_;
-}
diff --git a/java/JACE/netsvcs/Time/TimeRequest.java b/java/JACE/netsvcs/Time/TimeRequest.java
deleted file mode 100644
index 1b0e691398a..00000000000
--- a/java/JACE/netsvcs/Time/TimeRequest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package JACE.netsvcs.Time;
-
-import java.io.*;
-import java.net.*;
-
-/**
- * Request for a time update (and its reply). This is compatible with
- * C++ ACE_Time_Request. Currently, the Java version always specifies to
- * block forever for requests.
- */
-public class TimeRequest
-{
- /**
- * Type for requesting updates.
- */
- public static int TIME_UPDATE = 01;
-
- /**
- * Default constructor, specifies block forever for an update.
- */
- public TimeRequest ()
- {
- messageType_ = TIME_UPDATE;
- blockForever_ = 1;
- }
-
- /**
- * Constructor specifying the type of request, the current
- * time, and to block forever.
- */
- public TimeRequest (int messageType,
- int timeSec)
- {
- time_ = timeSec;
- messageType_ = messageType;
- blockForever_ = 1;
- }
-
- /**
- * Dump all class information to a String.
- */
- public String toString ()
- {
- return "TimeRequest (" + messageType_ +
- ", " + blockForever_ + ", " + secTimeout_ + ", " +
- usecTimeout_ + ", " + time_ + ")";
- }
-
- /**
- * Read the TimeRequest in from a given InputStream.
- */
- public void streamInFrom (InputStream is)
- throws IOException, EOFException
- {
- BufferedInputStream bis = new BufferedInputStream (is, 25);
- DataInputStream dis = new DataInputStream (bis);
-
- streamInFrom (dis);
- }
-
- /**
- * Read the TimeRequest in from a given DataInputStream.
- */
- public void streamInFrom (DataInputStream dis)
- throws IOException, EOFException
- {
- messageType_ = dis.readInt ();
- blockForever_ = dis.readInt ();
- secTimeout_ = dis.readInt ();
- usecTimeout_ = dis.readInt ();
- time_ = dis.readInt ();
- }
-
- /**
- * Write this TimeRequest out to a given OutputStream.
- */
- public void streamOutTo (OutputStream os)
- throws IOException
- {
- BufferedOutputStream bos = new BufferedOutputStream (os, 25);
- DataOutputStream dos = new DataOutputStream (bos);
-
- streamOutTo (dos);
- }
-
- /**
- * Write this TimeRequest out to a given DataOutputStream.
- */
- public void streamOutTo (DataOutputStream dos) throws IOException
- {
- dos.writeInt (messageType_);
- dos.writeInt (blockForever_);
- dos.writeInt (secTimeout_);
- dos.writeInt (usecTimeout_);
- dos.writeInt (time_);
-
- dos.flush ();
- }
-
- /**
- * Return the time value in seconds.
- */
- public int time ()
- {
- return time_;
- }
-
- /**
- * Set the time value in seconds.
- */
- public void time (int value)
- {
- time_ = value;
- }
-
- private int messageType_;
- private int blockForever_;
- private int secTimeout_;
- private int usecTimeout_;
- private int time_;
-}
diff --git a/java/JACE/netsvcs/Time/c.bat b/java/JACE/netsvcs/Time/c.bat
deleted file mode 100644
index 5e9e99f5807..00000000000
--- a/java/JACE/netsvcs/Time/c.bat
+++ /dev/null
@@ -1 +0,0 @@
-javac -d C:\Everett\JACE\classes *.java
diff --git a/java/JACE/netsvcs/Time/package.html b/java/JACE/netsvcs/Time/package.html
deleted file mode 100644
index 96fff45b643..00000000000
--- a/java/JACE/netsvcs/Time/package.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Time Service for synchronizing clocks of collaborating network computers.
-<P>
-A simple test client is available under the tests directory in netsvcs\Time.
-
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-netsvcs.html">ACE Network Services</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/netsvcs/Time/r.bat b/java/JACE/netsvcs/Time/r.bat
deleted file mode 100644
index 7c89fbddd77..00000000000
--- a/java/JACE/netsvcs/Time/r.bat
+++ /dev/null
@@ -1 +0,0 @@
-java JACE.netsvcs.Time.%1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/java/JACE/netsvcs/Token/LockHandler.java b/java/JACE/netsvcs/Token/LockHandler.java
deleted file mode 100644
index 8e3612efb42..00000000000
--- a/java/JACE/netsvcs/Token/LockHandler.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package JACE.netsvcs.Token;
-
-/**
- * Defines a handler for a certain type of lock. This allows new types
- * of synchronization mechanisms to be added to the Token service without
- * any modification of existing code. Implementing class instances that
- * are registered (via the command line or another way)
- * with the token service can be created as requests for that type of
- * lock come into the service.
- *
- *@see LockHandlerAdapter
- *@see MutexHandler
- *@author Everett Anderson
- */
-public interface LockHandler
-{
- /**
- * Process a given TokenRequest and construct the appropriate
- * reply. The request has already been read from the connection,
- * and the reply will be sent without the LockHandler having to
- * worry about the details.
- *
- *@param caller TokenRequestHandler which is accessing this LockHandler
- *@param request request read from the connection
- *@return appropriate TokenReply (success, failure, etc)
- */
- TokenReply handleRequest(TokenRequestHandler caller,
- TokenRequest request);
-
- /**
- * Release any claim the client represented with the given ID
- * has on this handler's lock. This is used when a client
- * disconnects.
- *
- *@param clientID ID of the client whose claims to abandon
- */
- void abandonLock (String clientID);
-}
diff --git a/java/JACE/netsvcs/Token/LockHandlerAdapter.java b/java/JACE/netsvcs/Token/LockHandlerAdapter.java
deleted file mode 100644
index e240000161c..00000000000
--- a/java/JACE/netsvcs/Token/LockHandlerAdapter.java
+++ /dev/null
@@ -1,380 +0,0 @@
-package JACE.netsvcs.Token;
-
-import java.util.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-import JACE.Concurrency.*;
-
-/**
- * LockHandler implementation for any AbstractLock.
- * <P>
- * Provides the dispatching to appropriate methods on an AbstractLock
- * as requests come in.
- */
-public class LockHandlerAdapter implements LockHandler
-{
- /**
- * Constructor taking an AbstractLock to use as the locking
- * mechanism the requests work on.
- */
- public LockHandlerAdapter (AbstractLock lock)
- {
- lock_ = lock;
- }
-
- /**
- * Default constructor.
- */
- public LockHandlerAdapter ()
- {
- lock_ = null;
- }
-
- /**
- * Dispatch the request according to its type, calling the
- * appropriate methods on the AbstractLock member.
- *
- *@param caller TokenRequestHandler which called handleRequest (unused)
- *@param request request to process
- *@return appropriate reply to send to the client
- */
- public TokenReply handleRequest (TokenRequestHandler caller,
- TokenRequest request)
- {
- String client = request.clientID ();
- String token = request.tokenName ();
- TokenReply result = null;
-
- // Dispatch according to operation type
- switch (request.operationType ())
- {
- case LockOperations.ACQUIRE:
- ACE.DEBUG (client + " begins ACQUIRE for " + token);
- result = acquireDispatcher (request);
- break;
- case LockOperations.RELEASE:
- ACE.DEBUG (client + " begins RELEASE for " + token);
- result = release (request);
- break;
- case LockOperations.RENEW:
- ACE.DEBUG (client + " begins RENEW for " + token);
- result = renew (request);
- break;
- case LockOperations.REMOVE:
- ACE.DEBUG (client + " begins REMOVE for " + token);
- result = remove (request);
- break;
- case LockOperations.TRY_ACQUIRE:
- ACE.DEBUG (client + " begins TRY_ACQUIRE for " + token);
- result = tryAcquireDispatcher (request);
- break;
- default:
- ACE.ERROR ("Unknown operation: " + request.operationType ());
- break;
- }
-
- ACE.DEBUG (client + " result: " + result);
-
- return result;
- }
-
- /**
- * Create a TimeValue from the given request's timeout information. Note
- * that the time in the request is an absolute time timeout.
- *
- *@param request request to obtain the timeout info from
- *@return null if useTimeout is false, otherwise a TimeValue
- * representing the appropriate time period
- */
- protected TimeValue getTimeout (TokenRequest request)
- {
- if (request.useTimeout ())
- return new TimeValue (request.sec (),
- request.usec () * 1000);
- else
- return null;
- }
-
- /**
- * Call acquireWrite on the lock, returning its return value.
- *
- *@see AbstractLock#acquireWrite
- *@return value from the lock's operation
- */
- protected int acquireWrite (TokenRequest request, TimeValue timeout)
- throws LockException, TimeoutException, InterruptedException
- {
- int result;
-
- if (timeout != null)
- result = lock_.acquireWrite (timeout);
- else
- result = lock_.acquireWrite ();
-
- return result;
- }
-
- /**
- * Call acquireRead on the lock, returning its return value.
- *
- *@see AbstractLock#acquireRead
- *@return value from the lock's operation
- */
- protected int acquireRead (TokenRequest request, TimeValue timeout)
- throws LockException, TimeoutException, InterruptedException
- {
- int result;
-
- if (timeout != null)
- result = lock_.acquireRead (timeout);
- else
- result = lock_.acquireRead ();
-
- return result;
- }
-
- /**
- * Call acquire on the lock, returning its return value.
- *
- *@see AbstractLock#acquire
- *@return value from the lock's operation
- */
- protected int acquire (TokenRequest request, TimeValue timeout)
- throws LockException, TimeoutException, InterruptedException
- {
- int result;
-
- if (timeout != null)
- result = lock_.acquire (timeout);
- else
- result = lock_.acquire ();
-
- return result;
- }
-
- /**
- * Dispatch to the appropriate acquire method. In C++ ACE, when
- * the type is LockTypes.RWLOCK and the proxy type is
- * LockTypes.WRITE_LOCK_PROXY, then this calls acquireWrite.
- * If it's RWLOCK and the proxy is READ_LOCK_PROXY, it calls
- * acquireRead. In the normal case, it just calls acquire.
- *
- *@return reply to be sent back to the client (values for errno
- * include constants in TokenReply such as EFAULT, ETIME,
- * EINTR, or NO_ERRORS)
- */
- protected TokenReply acquireDispatcher (TokenRequest request)
- {
- int result;
- TimeValue timeout = getTimeout (request);
-
- try {
-
- /*
- ACE specifies that when requesting a reader lock, the
- token type will be RWLOCK and the proxy type is 0.
- When it's a writer lock, the proxy type is 1.
- */
- if (request.tokenType () == LockTypes.RWLOCK) {
- if (request.proxyType () == LockTypes.READ_LOCK_PROXY)
- result = acquireRead (request, timeout);
- else
- result = acquireWrite (request, timeout);
- } else
- result = acquire (request, timeout);
-
- } catch (LockException e) {
- return new TokenReply (TokenReply.EFAULT,
- request.arg ());
- } catch (TimeoutException e) {
- return new TokenReply (TokenReply.ETIME,
- request.arg ());
- } catch (InterruptedException e) {
- return new TokenReply (TokenReply.EINTR,
- request.arg ());
- }
-
- if (result == AbstractLock.FAILURE) {
- return new TokenReply (TokenReply.EFAULT,
- request.arg ());
- } else {
- return new TokenReply (TokenReply.NO_ERRORS,
- request.arg ());
- }
- }
-
- /**
- * Process a release request and construct a reply. The values
- * for errno include TokenReply constants EFAULT, EACCES, or
- * NO_ERRORS.
- */
- protected TokenReply release (TokenRequest request)
- {
- int result;
-
- try {
- result = lock_.release ();
- } catch (LockException e) {
- return new TokenReply (TokenReply.EFAULT,
- request.arg ());
- }
-
- if (result == AbstractLock.FAILURE) {
- return new TokenReply (TokenReply.EACCES,
- request.arg ());
- } else {
- return new TokenReply (TokenReply.NO_ERRORS,
- request.arg ());
- }
- }
-
- /**
- * Process a renew request and construct a reply. The values for
- * errno include TokenReply constants EFAULT, ETIME, EINTR, EACCES,
- * or NO_ERRORS.
- */
- protected TokenReply renew (TokenRequest request)
- {
- int result = AbstractLock.FAILURE;
- TimeValue timeout = getTimeout (request);
-
- try {
-
- if (timeout != null) {
- result = lock_.renew (request.requeuePosition (),
- timeout);
- } else {
- result = lock_.renew (request.requeuePosition ());
- }
-
- } catch (LockException e) {
- return new TokenReply (TokenReply.EFAULT,
- request.arg ());
- } catch (TimeoutException e) {
- return new TokenReply (TokenReply.ETIME,
- request.arg ());
- } catch (InterruptedException e) {
- return new TokenReply (TokenReply.EINTR,
- request.arg ());
- }
-
- if (result == AbstractLock.FAILURE) {
- return new TokenReply (TokenReply.EACCES,
- request.arg ());
- } else {
- return new TokenReply (TokenReply.NO_ERRORS,
- request.arg ());
- }
- }
-
- /**
- * Process a remove request and construct a reply. This currently
- * is not supported in the normal AbstractLock interface, so the
- * default implementation returns a reply with errno set to
- * TokenReply.ENOTSUP.
- */
- protected TokenReply remove (TokenRequest request)
- {
- ACE.ERROR ("Remove is unimplemented");
- return new TokenReply (TokenReply.ENOTSUP,
- request.arg ());
- }
-
- /**
- * Call tryAcquireWrite on the lock, returning the result.
- */
- protected int tryAcquireWrite (TokenRequest request)
- throws LockException
- {
- return lock_.tryAcquireWrite ();
- }
-
- /**
- * Call tryAcquireRead on the lock, returning the result.
- */
- protected int tryAcquireRead (TokenRequest request)
- throws LockException
- {
- return lock_.tryAcquireRead ();
- }
-
- /**
- * Call tryAcquire on the lock, returning the result.
- */
- protected int tryAcquire (TokenRequest request) throws LockException
- {
- return lock_.tryAcquire ();
- }
-
- /**
- * Dispatch to the appropriate tryAcquire method. In C++ ACE, when
- * the type is LockTypes.RWLOCK and the proxy type is
- * LockTypes.WRITE_LOCK_PROXY, then this calls acquireWrite.
- * If it's RWLOCK and the proxy is READ_LOCK_PROXY, it calls
- * acquireRead. In the normal case, it just calls acquire.
- *
- *@return reply to be sent back to the client (values for errno
- * include constants in TokenReply such as EFAULT,
- * EWOULDBLOCK, or NO_ERRORS).
- */
- protected TokenReply tryAcquireDispatcher (TokenRequest request)
- {
- int result;
-
- try {
-
- /*
- ACE specifies that when requesting a reader lock, the
- token type will be RWLOCK and the proxy type is 0.
- When it's a writer lock, the proxy type is 1.
- */
- if (request.tokenType () == LockTypes.RWLOCK) {
- if (request.proxyType () == LockTypes.READ_LOCK_PROXY)
- result = tryAcquireRead (request);
- else
- result = tryAcquireWrite (request);
- } else
- result = tryAcquire (request);
-
- } catch (LockException e) {
- return new TokenReply (TokenReply.EFAULT,
- request.arg ());
- }
-
- if (result == AbstractLock.FAILURE) {
- return new TokenReply (TokenReply.EWOULDBLOCK,
- request.arg ());
- } else {
- return new TokenReply (TokenReply.NO_ERRORS,
- request.arg ());
- }
- }
-
- /**
- * Abandon any claim the specified client has on the lock.
- *
- *@param clientID identification of the client
- */
- public void abandonLock (String clientID)
- {
- ACE.DEBUG (clientID + " abandoning lock");
- try {
- int nesting_level = 0;
- while (lock_.release () != AbstractLock.FAILURE)
- {
- nesting_level++;
- // Loop until not the owner in case the lock
- // supports nested acquires
- }
- if (nesting_level == 0)
- ACE.DEBUG (clientID + " was not the owner");
- else
- ACE.DEBUG (clientID + " had " + nesting_level + " locks");
- } catch (LockException e) {
- ACE.ERROR ("While abandoning lock: " + e.getMessage ());
- // Don't need to send a reply to the client
- }
- }
-
- protected AbstractLock lock_;
-}
diff --git a/java/JACE/netsvcs/Token/LockOperations.java b/java/JACE/netsvcs/Token/LockOperations.java
deleted file mode 100644
index f5dfa5bc486..00000000000
--- a/java/JACE/netsvcs/Token/LockOperations.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package JACE.netsvcs.Token;
-
-/**
- * Constants defining the operation types available on a lock.
- * For information on specifying a read/write style lock, see LockTypes.
- *
- *@see LockTypes
- */
-public interface LockOperations
-{
- int ACQUIRE = 0;
- int RELEASE = 1;
- int RENEW = 2;
- int REMOVE = 3;
- int TRY_ACQUIRE = 4;
-}
diff --git a/java/JACE/netsvcs/Token/LockTypes.java b/java/JACE/netsvcs/Token/LockTypes.java
deleted file mode 100644
index f377529367a..00000000000
--- a/java/JACE/netsvcs/Token/LockTypes.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package JACE.netsvcs.Token;
-
-/**
- * Constants related to the default lock and proxy types. New types
- * of LockHandlers and lock types can be created and registered with
- * the token service on the command line without modifying this.
- * <P>
- * C++ ACE handles RWLOCK in this way:
- * When a request comes through for a RWLOCK, the proxy type is
- * 0 for a read lock request and 1 for a write lock request.
- */
-public interface LockTypes
-{
- int MUTEX = 0;
- int RWLOCK = 1;
-
- int READ_LOCK_PROXY = 0;
- int WRITE_LOCK_PROXY = 1;
-}
diff --git a/java/JACE/netsvcs/Token/MutexHandler.java b/java/JACE/netsvcs/Token/MutexHandler.java
deleted file mode 100644
index 82f79fe5a76..00000000000
--- a/java/JACE/netsvcs/Token/MutexHandler.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package JACE.netsvcs.Token;
-
-import JACE.Concurrency.*;
-
-/**
- * LockHandler implementation for a mutex lock.
- * <P>
- * Currently, this uses JACE.Concurrency.Token as the actual lock since
- * it supports nested acquires.
- *
- *@see LockHandler
- */
-public class MutexHandler extends LockHandlerAdapter
-{
- // Uses token since it supports nested acquires.
- static class ExtendedMutex extends Token
- {
- // This is so that we don't make any assumptions about previous
- // implementations of LockAdapter, and enable owner checking with
- // the client ID from TokenRequest. The thread name is set in
- // handleRequest.
- protected Object accessorID ()
- {
- return Thread.currentThread().getName();
- }
- }
-
- /**
- * Default constructor.
- */
- public MutexHandler ()
- {
- super (new ExtendedMutex ());
- }
-
- public TokenReply handleRequest (TokenRequestHandler caller,
- TokenRequest request)
- {
- Thread.currentThread().setName (request.clientID ());
-
- return super.handleRequest (caller, request);
- }
-
- public void abandonLock (String clientID)
- {
- Thread.currentThread().setName (clientID);
-
- super.abandonLock (clientID);
- }
-}
-
diff --git a/java/JACE/netsvcs/Token/RWMutexHandler.java b/java/JACE/netsvcs/Token/RWMutexHandler.java
deleted file mode 100644
index 89dc679dd8d..00000000000
--- a/java/JACE/netsvcs/Token/RWMutexHandler.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package JACE.netsvcs.Token;
-
-import JACE.Concurrency.*;
-
-/**
- * LockHandler implementation for a reader/writer mutex lock.
- * <P>
- * Since it uses RWMutex as the actual lock, it doesn't support
- * nested acquires.
- *
- *@see LockHandler
- */
-public class RWMutexHandler extends LockHandlerAdapter
-{
- static class ExtendedRWMutex extends RWMutex
- {
- // This is so that we don't make any assumptions about previous
- // implementations of LockAdapter, and enable owner checking with
- // the client ID from TokenRequest. The thread name is set in
- // handleRequest.
- protected Object accessorID ()
- {
- return Thread.currentThread().getName();
- }
- }
-
- /**
- * Default constructor.
- */
- public RWMutexHandler ()
- {
- super (new ExtendedRWMutex ());
- }
-
- public TokenReply handleRequest (TokenRequestHandler caller,
- TokenRequest request)
- {
- // Set the name of this thread to the client ID to perform
- // proper owner checking.
- Thread.currentThread().setName (request.clientID ());
-
- // process the request
- return super.handleRequest (caller, request);
- }
-
- public void abandonLock (String clientID)
- {
- // Set the name of this thread to the client ID to perform
- // proper owner checking.
- Thread.currentThread().setName (clientID);
-
- super.abandonLock (clientID);
- }
-}
diff --git a/java/JACE/netsvcs/Token/RemoteLock.java b/java/JACE/netsvcs/Token/RemoteLock.java
deleted file mode 100644
index 824e05a31f0..00000000000
--- a/java/JACE/netsvcs/Token/RemoteLock.java
+++ /dev/null
@@ -1,543 +0,0 @@
-package JACE.netsvcs.Token;
-
-import java.io.*;
-import JACE.Concurrency.*;
-import JACE.ASX.*;
-import JACE.Connection.*;
-import JACE.OS.*;
-
-/**
- * Proxy used by clients to connect to the token service. This
- * implements the AbstractLock interface, so can be used like any
- * other synchronization mechanism. The user can either use this
- * class directly, or use a proxy which already inputs its type.
- * <P>
- * Currently, a separate instance (and thus a separate socket connection)
- * must be used for each thread which accesses the service. The token
- * service itself could handle multiple client IDs and token names per
- * connection with the following requirement -- since the service blocks
- * in its operations, a shadow mutex would have to be used in the proxy.
- * <P>
- * It would be best if the user called the close () method after finishing
- * up with a RemoteLock, but that is not absolutely necessary. The socket
- * will be closed when the JVM exits or finalize is called. (That will also
- * free the actual token in the token service in case release was never
- * called.)
- * <P>
- * The SLEEPHOOK result is never returned, only SUCCESS or FAILURE. (C++
- * version doesn't seem to indicate the sleep hook result.)
- *
- *@see MutexHandler
- *@see RWMutexHandler
- *@see JACE.Concurrency.AbstractLock
- *
- *@author Everett Anderson
- */
-public class RemoteLock extends SvcHandler implements AbstractLock
-{
- /**
- * Accessor for the token name.
- *
- *@return name of the token
- */
- public String tokenName ()
- {
- return request_.tokenName ();
- }
-
- /**
- * Set the name of the token.
- */
- public void tokenName (String name)
- {
- request_.tokenName (name);
- }
-
- /**
- * Accessor for the client ID.
- */
- public String clientID ()
- {
- return request_.clientID ();
- }
-
- /**
- * Set the client ID.
- */
- public void clientID (String clientID)
- {
- request_.clientID (clientID);
- }
-
- /**
- * Constructor.
- *
- *@see LockTypes
- *@param tokenType type of token to create in the token service
- *@param proxyType type of proxy to define this RemoteLock as
- *@param tokenName name of the token to connect to in the token service
- *@param clientID clientID to use to refer to this client
- *@param host host name of the token service
- *@param port port to connect to for the token service
- */
- public RemoteLock (int tokenType,
- int proxyType,
- String tokenName,
- String clientID,
- String host,
- int port)
- {
- host_ = host;
- port_ = port;
-
- // Only allocates one reply and one request
- reply_ = new TokenReply ();
-
- request_ = new TokenRequest (tokenType,
- proxyType,
- 0,
- tokenName,
- clientID);
- }
-
- /**
- * Reconnect this proxy to the token service.
- *
- *@exception LockException problem occured in reconnecting
- */
- protected void reconnect () throws LockException
- {
- Connector c = new Connector ();
- c.open (host_, port_);
-
- try {
- c.connect (this);
- } catch (InstantiationException e) {
- throw new LockException (e.getMessage());
- } catch (IllegalAccessException e) {
- throw new LockException (e.getMessage());
- } catch (IOException e) {
- throw new LockException (e.getMessage());
- }
- }
-
- /**
- * Check to see if this RemoteLock is connected.
- */
- public boolean connected ()
- {
- return connected_;
- }
-
- /**
- * Initialize this RemoteLock. Called by Connector.
- */
- public int open (Object obj)
- {
- connected_ = true;
- return 0;
- }
-
- /**
- * Shut down the connection to the server. Current implementation
- * calls close ().
- */
- public int close (long flags)
- {
- return close ();
- }
-
- /**
- * Shut down the connection to the server and mark this lock
- * as disconnected.
- */
- public int close ()
- {
- if (connected ()) {
- try {
- connected_ = false;
- peer ().close ();
- } catch (IOException e) {
- return -1;
- }
- }
-
- return 0;
- }
-
- /**
- * Send the given request to the token service, throwing a
- * LockException on error.
- */
- protected void sendRequest (TokenRequest request) throws LockException
- {
- try {
- if (!connected ())
- reconnect ();
-
- request.streamOutTo (peer ().dataOutputStream ());
-
- } catch (IOException e) {
- close ();
- throw new LockException (e.getMessage ());
- }
- }
-
- /**
- * Receive a reply from the token service, throwing a LockException
- * on error.
- */
- protected void receiveReply (TokenReply reply) throws LockException
- {
- if (!connected ())
- throw new LockException ("Proxy wasn't connected, any replies lost");
-
- try {
-
- reply.streamInFrom (peer ().dataInputStream ());
-
- } catch (IOException e) {
- close ();
- throw new LockException (e.getMessage ());
- }
- }
-
- /**
- * For errors that shouldn't generate exceptions, return the
- * appropriate result code as defined in AbstractLock.
- *
- *@return AbstractLock.SUCCESS or AbstractLock.FAILURE
- */
- protected int processErrno (TokenReply reply)
- {
- switch (reply.errno ())
- {
- case TokenReply.NO_ERRORS:
- return AbstractLock.SUCCESS;
- case TokenReply.EIO:
- close ();
- return AbstractLock.FAILURE;
- default:
- return AbstractLock.FAILURE;
- }
- }
-
- /**
- * Make a request to the token service with the given operation
- * type and arguments.
- *
- *@see LockOperations
- *@see LockTypes
- *@param operationType type of operation to perform
- *@param proxyType type of proxy this is
- *@param requeuePosition put this owner at this position in the
- * waiting queue (only makes sense if the
- * operation is renew)
- *@return AbstractLock.SUCCESS or AbstractLock.FAILURE
- *@exception LockException remote access error occured
- */
- protected int makeRequest (int operationType,
- int proxyType,
- int requeuePosition)
- throws LockException
- {
- request_.operationType (operationType);
- request_.proxyType (proxyType);
- request_.requeuePosition (requeuePosition);
- request_.useTimeout (false);
-
- sendRequest (request_);
- receiveReply (reply_);
-
- // make sure that if someone does send a magic cookie arg back,
- // to keep it going
- request_.arg (reply_.arg ());
-
- return processErrno (reply_);
- }
-
- /**
- * Make a request to the token service with the given arguments
- * that must be performed by the given absolute time timeout.
- * Currently, the timeout is managed by the remote service.
- *
- *@see LockOperations
- *@see LockTypes
- *@param operationType type of operation to perform
- *@param proxyType type of proxy this is
- *@param requeuePosition put this owner at this position in the
- * waiting queue (only makes sense if the
- * operation is renew)
- *@param timeout absolute time timeout to accomplish the operation by
- *@return AbstractLock.SUCCESS or AbstractLock.FAILURE
- *@exception LockException remote access error occured
- */
- protected int makeRequest (int operationType,
- int proxyType,
- int requeuePosition,
- TimeValue timeout)
- throws LockException, TimeoutException
- {
- request_.operationType (operationType);
- request_.proxyType (proxyType);
- request_.requeuePosition (requeuePosition);
- request_.useTimeout (timeout);
-
- sendRequest (request_);
- receiveReply (reply_);
-
- request_.arg (reply_.arg ());
-
- if (reply_.errno () == TokenReply.ETIME)
- throw new TimeoutException (timeout, "Remote Lock");
-
- return processErrno (reply_);
- }
-
- /**
- * Acquire ownership of the lock, blocking indefinitely if necessary.
- * <P>
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException a remote error occured
- */
- public int acquire () throws LockException
- {
- return makeRequest (LockOperations.ACQUIRE, 0, 0);
- }
-
- /**
- * Acquire ownership of the lock by the given absolute time time-out.
- * A value of null for the timeout parameter results in a blocking
- * acquire.
- * A value of TimeValue.zero throws a TimeoutException if the
- * acquire would block.
- * <P>
- *@param timeout absolute time by which the lock must be acquired
- *@return appropriate Lock return value (AbstractLock.FAILURE,
- * AbstractLock.SUCCESS or AbstractLock.SLEEPHOOK)
- *@exception LockException a remote error occured
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@see #tryAcquire
- */
- public int acquire (TimeValue timeout)
- throws LockException, TimeoutException
- {
- return makeRequest (LockOperations.ACQUIRE, 0, 0, timeout);
- }
-
- /**
- * Acquire a read lock, blocking indefinitely if necessary.
- *
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException a remote error occured
- */
- public int acquireRead () throws LockException
- {
- return makeRequest (LockOperations.ACQUIRE,
- LockTypes.READ_LOCK_PROXY,
- 0);
- }
-
- /**
- * Acquire a read lock by the given absolute time time-out.
- *
- *@param timeout absolute time by which the lock must be acquired
- *@return appropriate lock return value (AbstractLock.FAILURE,
- * AbstractLock.SUCCESS or AbstractLock.SLEEPHOOK)
- *@exception LockException a remote error occured
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@see #tryAcquireRead
- */
- public int acquireRead (TimeValue timeout)
- throws LockException, TimeoutException
- {
- return makeRequest (LockOperations.ACQUIRE,
- LockTypes.READ_LOCK_PROXY,
- 0,
- timeout);
- }
-
- /**
- * Acquire a write lock, blocking indefinitely if necessary.
- *
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException a remote error occured
- */
- public int acquireWrite ()
- throws LockException
- {
- return makeRequest (LockOperations.ACQUIRE,
- LockTypes.WRITE_LOCK_PROXY,
- 0);
- }
-
- /**
- * Acquire a write lock by the given absolute time time-out.
- *
- *@param timeout absolute time by which the lock must be acquired
- *@return appropriate lock return value (AbstractLock.FAILURE,
- * AbstractLock.SUCCESS or AbstractLock.SLEEPHOOK)
- *@exception LockException a remote error occured
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- *@see #tryAcquireWrite
- */
- public int acquireWrite (TimeValue timeout)
- throws LockException, TimeoutException
- {
- return makeRequest (LockOperations.ACQUIRE,
- LockTypes.WRITE_LOCK_PROXY,
- 0,
- timeout);
- }
-
-
- /**
- * Give up the lock to some number of waiting threads (if any), then
- * reacquire, blocking indefinitely if necessary.
- * <P>
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token.
- * <P>
- *@param requeuePosition position in the waiters queue to insert
- * this thread. If this value is -1 and there are other
- * threads waiting to obtain the token, this thread is queued
- * at the end. If this value is greater than -1, then it
- * indicates how many entries to skip over before inserting
- * our thread into the queue. (For example, if it is 0,
- * this thread is put at the front of the queue.) If this
- * value is greater than the number of waiters, this thread is
- * simply put at the end of the current waiters queue.
- *@return AbstractLock.FAILURE or AbstractLock.SUCCESS
- *@exception LockException a remote error occured
- */
- public int renew (int requeuePosition)
- throws LockException
- {
- return makeRequest (LockOperations.RENEW,
- 0,
- requeuePosition);
- }
-
- /**
- * Give up the lock to some waiting threads (if any), then reacquire
- * by the given absolute time time-out.
- * <P>
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token.
- * <P>
- * A value of null for the timeout indicates a blocking renew.
- * <P>
- *@param requeuePosition position in the waiters queue to insert
- * this thread. If this value is -1 and there are other
- * threads waiting to obtain the token, this thread is queued
- * at the end. If this value is greater than -1, then it
- * indicates how many entries to skip over before inserting
- * our thread into the queue. (For example, if it is 0,
- * this thread is put at the front of the queue.) If this
- * value is greater than the number of waiters, this thread is
- * simply put at the end of the current waiters queue.
- *
- *@param timeout absolute time by which the lock must be reacquired
- *
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException a remote error occured
- *@exception JACE.ASX.TimeoutException thrown when the lock is not
- * obtained by the desired time
- */
- public int renew (int requeuePosition, TimeValue timeout)
- throws LockException, TimeoutException
- {
- return makeRequest (LockOperations.RENEW,
- 0,
- requeuePosition,
- timeout);
- }
-
- /**
- * Try to acquire the lock without blocking.
- * <P>
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException a remote error occured
- */
- public int tryAcquire () throws LockException
- {
- return makeRequest (LockOperations.TRY_ACQUIRE, 0, 0);
- }
-
- /**
- * Try to acquire a read lock without blocking.
- * <P>
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException a remote error occured
- */
- public int tryAcquireRead () throws LockException
- {
- return makeRequest (LockOperations.TRY_ACQUIRE,
- LockTypes.READ_LOCK_PROXY,
- 0);
- }
-
- /**
- * Try to acquire a write lock without blocking.
- *
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException a remote error occured
- */
- public int tryAcquireWrite () throws LockException
- {
- return makeRequest (LockOperations.TRY_ACQUIRE,
- LockTypes.WRITE_LOCK_PROXY,
- 0);
- }
-
- /**
- * Release ownership of this lock.
- *
- *@return appropriate AbstractLock return value
- * (AbstractLock.FAILURE or AbstractLock.SUCCESS)
- *@exception LockException a remote error occured
- */
- public int release () throws LockException
- {
- return makeRequest (LockOperations.RELEASE, 0, 0);
- }
-
- /**
- * Closes the connection to the server (if it is still open).
- */
- protected void finalize () throws Throwable
- {
- close ();
- }
-
- /**
- * No-op implementation for the sleep hook (unused).
- */
- public void sleepHook () {}
-
- /** Status of whether this RemoteLock is connected to the server or not */
- protected boolean connected_ = false;
-
- /** Request object for transmissions to the server */
- protected TokenRequest request_;
-
- /** Reply object for receiving transmissions from the server */
- protected TokenReply reply_;
-
- /** Host name of the token service */
- protected String host_;
-
- /** Port number of the token service */
- protected int port_;
-}
diff --git a/java/JACE/netsvcs/Token/RemoteMutex.java b/java/JACE/netsvcs/Token/RemoteMutex.java
deleted file mode 100644
index 7f2a4311116..00000000000
--- a/java/JACE/netsvcs/Token/RemoteMutex.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package JACE.netsvcs.Token;
-
-/**
- * Proxy used by clients for accessing a mutex at the token service.
- */
-public class RemoteMutex extends RemoteLock
-{
- /**
- * Constructor.
- *
- *@param tokenName name of the mutex to access
- *@param clientID identification of this client
- *@param host host of the token service
- *@param port port number of the token service
- */
- public RemoteMutex (String tokenName,
- String clientID,
- String host,
- int port)
- {
- super (LockTypes.MUTEX,
- 0,
- tokenName,
- clientID,
- host,
- port);
- }
-}
diff --git a/java/JACE/netsvcs/Token/RemoteRWMutex.java b/java/JACE/netsvcs/Token/RemoteRWMutex.java
deleted file mode 100644
index cc666bfd70f..00000000000
--- a/java/JACE/netsvcs/Token/RemoteRWMutex.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package JACE.netsvcs.Token;
-
-/**
- * Proxy used by clients for accessing a reader/writer mutex
- * at the token service.
- */
-public class RemoteRWMutex extends RemoteLock
-{
- /**
- * Constructor.
- *
- *@param tokenName name of the reader/writer lock to access
- *@param clientID identification of this client
- *@param host host of the token service
- *@param port port number of the token service
- */
- public RemoteRWMutex (String tokenName,
- String clientID,
- String host,
- int port)
- {
- super (LockTypes.RWLOCK,
- 0,
- tokenName,
- clientID,
- host,
- port);
- }
-}
diff --git a/java/JACE/netsvcs/Token/TokenAcceptor.java b/java/JACE/netsvcs/Token/TokenAcceptor.java
deleted file mode 100644
index 53adf08753b..00000000000
--- a/java/JACE/netsvcs/Token/TokenAcceptor.java
+++ /dev/null
@@ -1,353 +0,0 @@
-package JACE.netsvcs.Token;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-import JACE.Connection.*;
-import JACE.netsvcs.Server;
-
-/**
- * Server for the token service. Launches TokenRequestHandlers as
- * connections are made. Currently, the activation strategy must be
- * thread per connection since the operations are allowed to block
- * during acquires, etc.
- * <P>
- * Two types of locks are supported by default -- Mutex and RWMutex.
- * New lock types can be added from the command line without changing
- * any code in the service. To do this, just create a class which
- * implements the LockHandler interface.
- * <P>
- * When a request for a new lock comes in, a LockHandler of the corresponding
- * type is created and a mapping is created between the lock name and the
- * handler. Later requests reuse that mapping.
- * <P>
- * <B>Valid command line arguments:</B>
- * <PRE>
- * -f (class name):(type) Specify a LockHandler for a type of lock");
- * -p (port number) Port to listen on for clients");
- * -d Enable debugging messages");
- * </PRE>
- *
- *@see JACE.netsvcs.Server
- *@see TokenRequestHandler
- *@see LockHandler
- *@see LockTypes
- */
-public class TokenAcceptor extends Server
-{
- protected void addDefaultFactories() throws ClassNotFoundException {
- addHandlerFactory(LockTypes.MUTEX,
- Class.forName("JACE.netsvcs.Token.MutexHandler"));
- addHandlerFactory(LockTypes.RWLOCK,
- Class.forName("JACE.netsvcs.Token.RWMutexHandler"));
- }
-
- /**
- * Default constructor.
- */
- public TokenAcceptor() {
-
- // Set the name in case we aren't using the service configurator.
- name ("Token Service");
-
- lockHandlerMap_ = new Hashtable();
- handlerFactoryMap_ = new Hashtable();
- clientHandlerMap_ = new Hashtable ();
- }
-
- /**
- * Add a map between a type of lock and the factory which
- * creates LockHandler instances that handle it.
- *
- *@see LockTypes
- *@param type number representing the type of lock
- *@param factory Class object for a LockHandler class
- */
- public void addHandlerFactory(Integer type, Class factory) {
- handlerFactoryMap_.put(type, factory);
- }
-
- /**
- * Add a map between a type of lock and the factory which
- * creates LockHandler instances that handle it.
- *
- *@see LockTypes
- *@param type number representing the type of lock
- *@param factory Class object for a LockHandler class
- */
- public void addHandlerFactory(int type, Class factory) {
- addHandlerFactory(new Integer(type), factory);
- }
-
- /**
- * Remove the LockHandler factory which handles locks
- * of the specified type.
- *
- *@param type type of LockHandler to cease supporting
- *@return the LockHandler instance (or null if not found)
- */
- public Object removeHandlerFactory(Integer type) {
- return handlerFactoryMap_.remove(type);
- }
-
- /**
- * Remove the LockHandler factory which handles locks
- * of the specified type.
- *
- *@param type type of LockHandler to cease supporting
- *@return the LockHandler instance (or null if not found)
- */
- public Object removeHandlerFactory(int type) {
- return handlerFactoryMap_.remove(new Integer(type));
- }
-
- /**
- * Retrieve the LockHandler corresponding to the given name
- * or create a new one if it doesn't exist. This is called by
- * TokenRequestHandlers.
- *
- *@param lockName name of the lock to retrieve or create a LockHandler for
- *@param lockType type of the lock
- *@return LockHandler which handles the lock with that name
- */
- public LockHandler getLockHandler (String lockName,
- int lockType) {
- synchronized (lockHandlerMap_) {
-
- Object obj = lockHandlerMap_.get(lockName);
-
- if (obj != null)
- return (LockHandler)obj;
- else {
- LockHandler handler = newHandler (lockType);
- lockHandlerMap_.put (lockName, handler);
- return handler;
- }
- }
- }
-
- /**
- * Create a new LockHandler of the specified type.
- *
- *@param type type of LockHandler to create
- *@return a new LockHandler instance
- */
- protected LockHandler newHandler (int type) {
- ACE.DEBUG ("Creating new handler of type " + type);
- Object factoryObj = handlerFactoryMap_.get(new Integer(type));
- if (factoryObj == null)
- return null;
-
- Class factory = (Class)factoryObj;
- LockHandler handler = null;
-
- try {
- handler = (LockHandler)factory.newInstance();
- } catch (InstantiationException e) {
- ACE.ERROR("Can't create a handler of type " + type);
- } catch (IllegalAccessException e) {
- ACE.ERROR("Handler of type " + type +
- " must have a default constructor");
- }
- return handler;
- }
-
- /**
- * Simple main program. See the class description for more
- * information about command line arguments.
- */
- public static void main(String args[]) {
- TokenAcceptor ta = new TokenAcceptor();
-
- ta.init(args);
- }
-
- /**
- * Create a new TokenRequestHandler instance.
- */
- protected SvcHandler makeSvcHandler()
- {
- return new TokenRequestHandler();
- }
-
- /**
- * Sets up the default factories so the user can override them on
- * the command line, then delegates back to Server.init (String[]).
- *
- *@see JACE.netsvcs.Server#init
- *@param args command line arguments
- *@return -1 on failure, 0 on success
- */
- public int init(String [] args) {
- try {
- addDefaultFactories ();
- } catch (ClassNotFoundException e) {
- ACE.ERROR ("Can't find default factory " + e.getMessage ());
- return -1;
- }
-
- return super.init (args);
- }
-
- /**
- * Prints out the valid command line arguments. See the class
- * description for more information. Called by Server.init when
- * parseArgs returns -1.
- */
- protected void printUsage ()
- {
- ACE.ERROR ("Valid options:\n");
- ACE.ERROR ("-f <class name>:<type> Specify a handler for a type of lock");
- ACE.ERROR ("-p <port number> Port to listen on for clients");
- ACE.ERROR ("-d Enable debugging messages");
- }
-
- /**
- * Parses the command line arguments. See the class description
- * for more information.
- *
- *@param args command line arguments
- *@return -1 on failure, 0 on success
- */
- protected int parseArgs(String [] args)
- {
- int c = 0;
- GetOpt opt = new GetOpt(args, "p:f:d", true);
-
- try {
-
- while ((c = opt.next ()) != -1) {
- switch (c)
- {
- case 'd':
- ACE.enableDebugging ();
- ACE.DEBUG ("Debugging is enabled");
- break;
- case 'p':
- if (!port (opt.optarg ()))
- return -1;
- break;
- case 'f':
- if (newHandlerFactory (opt.optarg ()) < 0)
- return -1;
- break;
- default:
- ACE.ERROR("Unknown argument: " + (char)c);
- return -1;
- }
- }
- } catch (ArrayIndexOutOfBoundsException e) {
- ACE.ERROR ("Option -" + (char)c + " requires an argument");
- return -1;
- }
-
- return 0;
- }
-
- /**
- * Load the Class for the specified LockHandler and create a mapping
- * from its type to the Class instance. Used to parse the command
- * line pair of (class name):(type).
- *
- *@param nameAndType (class name):(type) pair from the command line
- *@return -1 on failure, 0 on success
- */
- protected int newHandlerFactory (String nameAndType)
- {
- int colon = nameAndType.lastIndexOf (':');
-
- if (colon < 1) {
- ACE.ERROR ("Invalid -f <class name>:<type num> for handler: " +
- nameAndType);
- return -1;
- }
-
- int type = 0;
- try {
- type = Integer.parseInt (nameAndType.substring (colon + 1));
- } catch (NumberFormatException e) {
- ACE.ERROR ("Invalid token type: " + e.getMessage ());
- return -1;
- }
-
- String name = nameAndType.substring (0, colon);
-
- Class factory;
- try {
- factory = Class.forName (name);
- } catch (ClassNotFoundException e) {
- ACE.ERROR (e.getMessage ());
- return -1;
- }
-
- addHandlerFactory (type, factory);
- ACE.DEBUG ("New handler " + name + " with type " + type);
-
- return 0;
- }
-
- /**
- * Create a mapping between a client ID and a LockHandler. This is
- * only used by TokenRequestHandlers in order to keep track of which
- * locks a client touches. That way, if/when a client disconnects,
- * all its locks can be abandoned successfully.
- *
- *@param clientID client identification (key in the mapping)
- *@param handler LockHandler to map to (value in the mapping)
- *
- */
- void addClientLockHandler (String clientID,
- LockHandler handler)
- {
- Object obj = clientHandlerMap_.get (clientID);
- if (obj == null) {
- // Probably won't have more than 10 locks per client ID, and the Vector
- // should resize automatically even if someone does.
- Vector handlerList = new Vector (10);
- handlerList.addElement (handler);
- clientHandlerMap_.put (clientID, handlerList);
- } else {
- Vector handlerList = (Vector)obj;
- int alreadyThereIndex = handlerList.indexOf (handler);
- if (alreadyThereIndex == -1)
- handlerList.addElement (handler);
- }
- }
-
- /**
- * Called by TokenRequestHandlers to remove a specified client ID
- * from the client ID to LockHandler mapping.
- */
- void removeClient (String clientID)
- {
- clientHandlerMap_.remove (clientID);
- }
-
- /**
- * Called by TokenRequestHandlers to obtain a list of all LockHandlers
- * accessed by a particular client. Useful for abandoning the locks.
- */
- Enumeration getClientLockHandlers (String clientID)
- {
- Object obj = clientHandlerMap_.get (clientID);
- if (obj == null)
- return null;
- else
- return ((Vector)obj).elements ();
- }
-
- // These should be replaced by weak hash maps when available
-
- // Map consisting of (token name) to (LockHandler instance) pairs
- private Hashtable lockHandlerMap_;
-
- // Map consisting of (Integer token type) to (Class instance for
- // corresponding LockHandler class)
- private Hashtable handlerFactoryMap_;
-
- // Map consisting of (client ID) to (Vector of LockHandler) pairs
- private Hashtable clientHandlerMap_;
-}
-
diff --git a/java/JACE/netsvcs/Token/TokenReply.java b/java/JACE/netsvcs/Token/TokenReply.java
deleted file mode 100644
index 35f50901610..00000000000
--- a/java/JACE/netsvcs/Token/TokenReply.java
+++ /dev/null
@@ -1,171 +0,0 @@
-package JACE.netsvcs.Token;
-
-import java.io.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-/**
- * Reply from a lock operation, and constants involved in it.
- * This is compatible with the C++ ACE version. The user probably
- * never deals directly with the constant errno values in Java ACE since
- * the proxy (RemoteLock) should hide those details.
- */
-public class TokenReply
-{
-
- /** indicates success */
- public static final int NO_ERRORS = 0;
-
- /** indicates a timeout */
- public static final int ETIME = 62;
-
- /** indicates the operation was interrupted */
- public static final int EINTR = 4;
-
- /** deadlock indication errno (JACE currently doesn't implement a
- * deadlock detection system, but C++ ACE does and JACE proxies
- * act appropriately).
- */
- public static final int EDEADLK = 45;
-
- /** indicates the operation would block, used in tryAcquire */
- public static final int EWOULDBLOCK = 11;
-
- /** indicates a token name or client ID was too long */
- public static final int ENAMETOOLONG = 78;
-
- /** indicates an operation type was not supported */
- public static final int ENOTSUP = 48;
-
- /** indicates that this client was not the owner of the lock,
- * so couldn't perform the desired operation */
- public static final int EACCES = 13;
-
- /** indicates an IO error occured during transmission of the request */
- public static final int EIO = 5;
-
- /** indicates a generic failure to complete the request */
- public static final int EFAULT = 14;
-
- /** indicates an operation was requested on an unknown type of token */
- public static final int EINVAL = 22;
-
- /** constant length of a valid token reply */
- private final static int LENGTH = 12;
-
- /** error code */
- private int errno_;
-
- /** argument (unused in JACE) */
- private int arg_;
-
- /** Dump the state of this TokenReply to a String */
- public String toString ()
- {
- return "TokenReply(" + this.length() + ", " + this.errno_
- + ", " + this.arg_ + ")";
- }
-
- /** Default constructor (NO_ERRORS) */
- public TokenReply ()
- {
- errno_ = NO_ERRORS;
- arg_ = 0;
- }
-
- /** Constructor which takes the error code and argument */
- public TokenReply (int errno, int arg)
- {
- errno_ = errno;
- arg_ = arg;
- }
-
- /**
- * Accessor for the length of this TokenReply.
- */
- public int length ()
- {
- return LENGTH;
- }
-
- /** Accessor for the error code of this TokenReply. */
- public int errno ()
- {
- return errno_;
- }
-
- /**
- * Set the error code of this TokenReply.
- */
- public void errno (int value)
- {
- errno_ = value;
- }
-
- /**
- * Accessor of the argument of this TokenReply. (Unused in JACE)
- */
- public int arg ()
- {
- return arg_;
- }
-
- /**
- * Set the argument of this TokenReply. (Unused in JACE)
- */
- public void arg (int value)
- {
- arg_ = value;
- }
-
- /**
- * Read this TokenReply in from the given InputStream.
- */
- public void streamInFrom (InputStream is)
- throws IOException, EOFException
- {
- BufferedInputStream bis = new BufferedInputStream (is, LENGTH);
- DataInputStream dis = new DataInputStream (bis);
-
- streamInFrom (dis);
- }
-
- /**
- * Read this TokenReply in from the given DataInputStream.
- */
- public void streamInFrom (DataInputStream dis)
- throws IOException, EOFException
- {
- int length = dis.readInt ();
- if (length != LENGTH)
- throw new IOException ("Invalid TokenReply length " + length);
-
- this.errno_ = dis.readInt ();
- this.arg_ = dis.readInt ();
- }
-
- /**
- * Write this TokenReply out to the given OutputStream.
- */
- public void streamOutTo (OutputStream os)
- throws IOException
- {
- BufferedOutputStream bos = new BufferedOutputStream (os, LENGTH);
- DataOutputStream dos = new DataOutputStream (bos);
-
- streamOutTo (dos);
- }
-
- /**
- * Write this TokenReply out to the given DataOutputStream.
- */
- public void streamOutTo (DataOutputStream dos)
- throws IOException
- {
- dos.writeInt (LENGTH);
- dos.writeInt (this.errno_);
- dos.writeInt (this.arg_);
-
- dos.flush ();
- }
-}
diff --git a/java/JACE/netsvcs/Token/TokenRequest.java b/java/JACE/netsvcs/Token/TokenRequest.java
deleted file mode 100644
index eb1113428c5..00000000000
--- a/java/JACE/netsvcs/Token/TokenRequest.java
+++ /dev/null
@@ -1,426 +0,0 @@
-package JACE.netsvcs.Token;
-
-import java.io.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-/**
- * Request for an operation on a lock. This is compatible with the
- * C++ ACE version. The US-ASCII character encoding is used for
- * String to byte conversions (and vice versa). If
- * that encoding isn't supported, it attempts to use the default
- * encoding (but prints a message). Users probably never need to
- * deal with this class directly. The notify field isn't used
- * in JACE (or in C++ ACE as far as I can tell).
- *
- *@author Everett Anderson
- */
-public class TokenRequest
-{
- /** Maximum length for a token name */
- public final static int MAX_TOKEN_NAME_LEN = 40;
-
- /** Maximum length for a client ID */
- public final static int MAX_CLIENT_ID_LEN = 276;
-
- /** Length of the fixed size header */
- protected final static int HEADER_LEN = 40;
-
- /** Maximum length of any TokenRequest (total) */
- protected final static int MAX_LEN = 359;
-
- /**
- * Dump this TokenRequest's state out to a String.
- */
- public String toString()
- {
- return "TokenRequest(" + this.length() + ", " +
- this.tokenType_ + ", " +
- this.proxyType_ + ", " +
- this.operationType_ + ", " +
- this.requeuePosition_ + ", " +
- this.notify_ + ", " +
- this.useTimeout_ + ", " +
- this.sec_ + ", " +
- this.usec_ + ", " +
- this.arg_ + ", " +
- this.tokenName_ + ", " +
- this.clientID_ + ")";
- }
-
- /** Default constructor. */
- public TokenRequest()
- {
- // Remember that the length is transmitted first
- tokenType_ = 0;
- proxyType_ = 0;
- operationType_ = 0;
- requeuePosition_ = 0;
- notify_ = 0;
- useTimeout_ = 0;
- sec_ = 0;
- usec_ = 0;
- arg_ = 0;
- tokenName_ = "";
- clientID_ = "";
- // Transmission is "<10 ints><token name>(null):<clientID>(null)"
-
- charEncoding_ = "US-ASCII";
-
- buffer_ = new byte[MAX_LEN];
- }
-
- /**
- * Create a request which doesn't use timeouts.
- *
- *@param tokenType type of token (usually a constant in LockTypes)
- *@param proxyType type of proxy (usually a constant in LockTypes)
- *@param operationType type of operation (usually a constant in
- * LockOperations)
- *@param tokenName name of the token to operate on
- *@param clientID name of the client requesting an operation
- *
- *@see LockTypes
- *@see LockOperations
- */
- public TokenRequest(int tokenType,
- int proxyType,
- int operationType,
- String tokenName,
- String clientID)
- {
- this();
-
- this.tokenType_ = tokenType;
- this.proxyType_ = proxyType;
- this.operationType_ = operationType;
- this.tokenName_ = tokenName;
- this.clientID_ = clientID;
- }
-
- /**
- * Create a request which uses the given absolute time timeout.
- *
- *@param tokenType type of token (usually a constant in LockTypes)
- *@param proxyType type of proxy (usually a constant in LockTypes)
- *@param operationType type of operation (usually a constant in
- * LockOperations)
- *@param tokenName name of the token to operate on
- *@param clientID name of the client requesting an operation
- *@param tv absolute time timeout to process the request by
- *
- *@see LockTypes
- *@see LockOperations
- */
- public TokenRequest(int tokenType,
- int proxyType,
- int operationType,
- String tokenName,
- String clientID,
- TimeValue tv)
- {
- this(tokenType,
- proxyType,
- operationType,
- tokenName,
- clientID);
-
- this.useTimeout_ = 1;
- this.sec_ = (int)tv.sec();
- this.usec_ = tv.nanos() / 1000;
- }
-
- /**
- * Return the length of this TokenRequest.
- * <P>
- * Details:
- * <PRE>
- * Fixed size header of length HEADER_LEN
- * token name
- * null
- * :
- * client ID
- * null
- * </PRE>
- */
- public int length()
- {
- return (HEADER_LEN +
- this.tokenName_.length() +
- this.clientID_.length() + 3);
- }
-
- /** Accessor for the token type. */
- public int tokenType()
- {
- return this.tokenType_;
- }
- /** Set the token type. */
- public void tokenType(int type)
- {
- this.tokenType_ = type;
- }
- /** Accessor for the proxy type. */
- public int proxyType()
- {
- return this.proxyType_;
- }
- /** Set the proxy type. */
- public void proxyType(int type)
- {
- this.proxyType_ = type;
- }
- /** Accessor for the operation type. */
- public int operationType()
- {
- return this.operationType_;
- }
- /** Set the operation type. */
- public void operationType(int type)
- {
- this.operationType_ = type;
- }
- /** Accessor for the requeue position. This only makes
- * sense for a renew operation. */
- public int requeuePosition()
- {
- return this.requeuePosition_;
- }
- /** Set the requeue position. This only makes sense for
- * a renew operation. */
- public void requeuePosition(int position)
- {
- this.requeuePosition_ = position;
- }
- /** Accessor for the flag to determine if a timeout should be used. */
- public boolean useTimeout()
- {
- return (this.useTimeout_ == 1 ? true : false);
- }
- /** Set the flag to enable or disable use of timeouts.
- */
- public void useTimeout(boolean useIt)
- {
- this.useTimeout_ = (useIt == true ? 1 : 0);
- }
-
- /**
- * Set the absolute time timeout to the given TimeValue's value, and
- * enable the useTimeout flag.
- */
- public void useTimeout (TimeValue timeout)
- {
- this.useTimeout_ = 1;
- this.sec_ = (int)timeout.sec ();
- this.usec_ = timeout.nanos () / 1000;
- }
-
- /**
- * Accessor for the seconds component of the absolute time timeout.
- */
- public int sec()
- {
- return this.sec_;
- }
- /** Set the seconds component of the timeout. */
- public void sec(int sec)
- {
- this.sec_ = sec;
- }
- /** Accessor for the usec component of the timeout. */
- public int usec()
- {
- return this.usec_;
- }
- /** Set the usec component of the timeout. */
- public void usec(int usec)
- {
- this.usec_ = usec;
- }
- /** Accessor for the arg value. (unused in JACE) */
- public int arg()
- {
- return this.arg_;
- }
- /** Set the arg value. (unused in JACE) */
- public void arg(int arg)
- {
- this.arg_ = arg;
- }
-
- /** Accessor for the name of the token. */
- public String tokenName()
- {
- return this.tokenName_;
- }
-
- /** Set the name of the token. */
- public void tokenName(String name)
- {
- this.tokenName_ = name;
- }
-
- /** Accessor for the client identification string. */
- public String clientID()
- {
- return this.clientID_;
- }
-
- /** Set the client identification string. */
- public void clientID(String ID)
- {
- this.clientID_ = ID;
- }
-
- /**
- * Construct a String from a specific subset of the byte array.
- * The string begins at the start index and ends at either the
- * end of the buffer or the first byte with value 0 (null).
- * Tries to use the specified encoding, but uses the default
- * platform encoding if it isn't available.
- *
- *@param start beginning index in the buffer
- *@param bufferLength total length of the buffer
- */
- protected String stringFromBuffer(int start, int bufferLength)
- {
- int end = start;
- String result = null;
-
- while (end < bufferLength && this.buffer_[end] != 0)
- end++;
-
- try {
- result = new String(this.buffer_,
- start,
- end - start,
- this.charEncoding_);
- } catch (UnsupportedEncodingException e) {
- ACE.ERROR(this.charEncoding_ + " is not supported!");
- result = new String (this.buffer_, start, end - start);
- }
-
- return result;
- }
-
- /**
- * Read the request in from the given InputStream.
- */
- public void streamInFrom(InputStream is)
- throws IOException, EOFException
- {
- BufferedInputStream bis = new BufferedInputStream(is,
- MAX_LEN);
- DataInputStream dis = new DataInputStream(bis);
-
- streamInFrom (dis);
- }
-
- /**
- * Read the request in from the given DataInputStream.
- */
- public void streamInFrom (DataInputStream dis)
- throws IOException, EOFException
- {
- int length = dis.readInt();
- if (length > MAX_LEN || length < HEADER_LEN + 5)
- throw new IOException ("Invalid TokenRequest length: " + length);
-
- this.tokenType_ = dis.readInt();
- this.proxyType_ = dis.readInt();
- this.operationType_ = dis.readInt();
- this.requeuePosition_ = dis.readInt();
- this.notify_ = dis.readInt();
- this.useTimeout_ = dis.readInt();
- this.sec_ = dis.readInt();
- this.usec_ = dis.readInt();
- this.arg_ = dis.readInt();
-
- int total = dis.read(this.buffer_, 0, length - HEADER_LEN);
-
- this.tokenName_ = this.stringFromBuffer(0, total);
-
- this.clientID_ = this.stringFromBuffer(this.tokenName_.length() + 2,
- total);
-
- if (this.tokenName_.length() > MAX_TOKEN_NAME_LEN ||
- this.clientID_.length() > MAX_CLIENT_ID_LEN)
- throw new IOException("Exceeds maximum token name or client ID");
- }
-
- /**
- * Write the request out to the given OutputStream.
- */
- public void streamOutTo (OutputStream os)
- throws IOException
- {
- BufferedOutputStream bos = new BufferedOutputStream(os);
- DataOutputStream dos = new DataOutputStream(bos);
-
- streamOutTo (dos);
- }
-
- /**
- * Write the request out to the given DataOutputStream. Tries to use
- * the specified encoding to the convert the token name and client ID
- * to bytes, but uses the platform default encoding if necessary.
- */
- public void streamOutTo (DataOutputStream dos)
- throws IOException
- {
- dos.writeInt(this.length());
- dos.writeInt(this.tokenType_);
- dos.writeInt(this.proxyType_);
- dos.writeInt(this.operationType_);
- dos.writeInt(this.requeuePosition_);
-
- dos.writeInt(this.notify_);
- dos.writeInt(this.useTimeout_);
- dos.writeInt(this.sec_);
- dos.writeInt(this.usec_);
- dos.writeInt(this.arg_);
-
- StringBuffer data = new StringBuffer(this.tokenName_.length() +
- this.clientID_.length() +
- 3);
-
- data.append(this.tokenName_);
- data.append('\0');
- data.append(':');
- data.append(this.clientID_);
- data.append('\0');
-
- byte buf [] = null;
- String dataString = data.toString ();
- try {
- buf = dataString.getBytes (this.charEncoding_);
- } catch (UnsupportedEncodingException e) {
- ACE.ERROR (charEncoding_ + " is unsupported, trying to use default");
- buf = dataString.getBytes ();
- }
-
- dos.write(buf, 0, buf.length);
- dos.flush();
- }
-
- private int tokenType_;
- private int proxyType_;
- private int operationType_;
- private int requeuePosition_;
- private int notify_;
- private int useTimeout_;
- private int sec_;
- private int usec_;
- private int arg_;
-
- private String tokenName_;
- private String clientID_;
-
- private byte buffer_[];
-
- /**
- * Character encoding to use for converting the token name and
- * client ID to/from bytes.
- */
- protected String charEncoding_;
-}
diff --git a/java/JACE/netsvcs/Token/TokenRequestHandler.java b/java/JACE/netsvcs/Token/TokenRequestHandler.java
deleted file mode 100644
index cb6d729f3bd..00000000000
--- a/java/JACE/netsvcs/Token/TokenRequestHandler.java
+++ /dev/null
@@ -1,180 +0,0 @@
-package JACE.netsvcs.Token;
-
-import java.io.*;
-import java.net.SocketException;
-import java.util.*;
-import JACE.Connection.*;
-import JACE.OS.*;
-import JACE.netsvcs.Handler;
-
-/**
- * Created by TokenAcceptor to handle token requests. Delegates to
- * the appropriate LockHandler. This is fairly robust, and can handle
- * multiple clients and locks (meaning requests can come in to this
- * handle with varying client IDs and token names and still be processed
- * and released appropriately.) Compatible with the C++ ACE token service.
- *
- *@author Everett Anderson
- */
-class TokenRequestHandler extends Handler
-{
- /**
- * Default constructor.
- */
- public TokenRequestHandler() {
- this.clients_ = new Vector (10);
- }
-
- /**
- * Creates a new TokenRequest instance.
- */
- public Object newRequest ()
- {
- return new TokenRequest ();
- }
-
- /**
- * Sends an error message to a client with the TokenReply.EIO
- * errno before abandoning the connection. This is used when an IO
- * error occured while receiving the request.
- *
- *@param lastRequest request object to get the arg from
- */
- protected void sendAbortMessage (TokenRequest lastRequest)
- {
- TokenReply reply = new TokenReply (TokenReply.EIO,
- lastRequest.arg ());
- try {
- reply.streamOutTo (this.peer ().dataOutputStream ());
- } catch (Exception e) {
- // Doesn't matter if there is an error here, we've abandoned
- // the connection.
- }
- }
-
- /**
- * Safely shuts down this handler, making sure to release any locks
- * that were touched by clients from this TokenRequestHandler.
- *
- *@return -1 on failure, 0 on success
- */
- public synchronized int close ()
- {
- // For every client X that has used this handler
- // for every LockHandler that X has used
- // release the lock until it fails because X isn't the owner
- // remove the client entries
- // Call Handler.close ()
- if (!done ()) {
-
- TokenAcceptor parent = (TokenAcceptor) parent ();
- Enumeration clientEnum = clients_.elements ();
-
- while (clientEnum.hasMoreElements ()) {
- String clientID = (String)clientEnum.nextElement ();
-
- Enumeration handlers = parent.getClientLockHandlers (clientID);
- if (handlers == null)
- continue;
-
- int num = 0;
-
- while (handlers.hasMoreElements ()) {
- LockHandler handler = (LockHandler)handlers.nextElement ();
-
- handler.abandonLock (clientID);
-
- num++;
- }
-
- parent.removeClient (clientID);
- }
-
- return super.close ();
- }
-
- return 0;
- }
-
- /**
- * Read in the given TokenRequest and delegates to the appropriate
- * LockHandler.
- *
- *@see JACE.netsvcs.Handler
- *@param requestObject TokenRequest object to use
- */
- public void processRequest (Object requestObject)
- throws SocketException, EOFException, IOException
- {
- TokenRequest request = (TokenRequest)requestObject;
- TokenAcceptor parent = (TokenAcceptor) parent ();
-
- try {
- request.streamInFrom (this.peer ().dataInputStream ());
-
- if (!request.tokenName ().equals (lastTokenName_)) {
- // Switched tokens:
- //
- // Either find a handler that's already been made (which would
- // mean this token has been accessed before), or create a new
- // one with a new token
- handler_ = parent.getLockHandler(request.tokenName(),
- request.tokenType());
-
- if (handler_ == null) {
- // The client asked for an operation on a type of token
- // that we don't know about.
- ACE.ERROR ("Unknown lock type: " + request.tokenType ());
- TokenReply error = new TokenReply (TokenReply.EINVAL,
- request.arg ());
- error.streamOutTo(this.peer ().dataOutputStream ());
- return;
- }
-
- // Add this LockHandler to the list of those accessed by
- // this clientID
- parent.addClientLockHandler (request.clientID (),
- handler_);
- }
-
- if (!request.clientID ().equals (lastClientID_)) {
- // Switched clients
-
- if (!clients_.contains (request.clientID ()))
- clients_.addElement (request.clientID ());
-
- parent.addClientLockHandler (request.clientID (),
- handler_);
- }
-
- lastClientID_ = request.clientID ();
- lastTokenName_ = request.tokenName ();
-
- TokenReply reply = handler_.handleRequest(this, request);
-
- reply.streamOutTo(this.peer ().dataOutputStream ());
-
- } catch (NullPointerException e) {
- sendAbortMessage (request);
- throw e;
- } catch (IOException e) {
- sendAbortMessage (request);
- throw e;
- }
- }
-
- // List of clientIDs that have been processed by this instance
- // of TokenRequestHandler. This is useful when abandoning the
- // locks of any clients that have been using this socket.
- private Vector clients_;
-
- // Name of the last token accessed
- private String lastTokenName_ = null;
-
- // Last client ID which accessed a token from this handler
- private String lastClientID_ = null;
-
- // Current LockHandler
- private LockHandler handler_ = null;
-}
-
diff --git a/java/JACE/netsvcs/Token/package.html b/java/JACE/netsvcs/Token/package.html
deleted file mode 100644
index 80777aecc0a..00000000000
--- a/java/JACE/netsvcs/Token/package.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Token Service for remote mutexes and reader/writer locks.
-<P>
-New types of lock can be easily added on the command line to the service
-without changing existing code by implementing a LockHandler for the new
-type.
-<P>
-A simple test client is available in the tests directory under
-netsvcs\Token.
-
-@see JACE.netsvcs.Token.LockHandler
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-netsvcs.html">ACE Network Services</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/netsvcs/package.html b/java/JACE/netsvcs/package.html
deleted file mode 100644
index a806080aece..00000000000
--- a/java/JACE/netsvcs/package.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Bases classes for the network services and two activation strategies.
-<P>
-Services can be loaded and managed via the Service Configurator.
-
-@see JACE.ServiceConfigurator
-@see <a href="http://www.cs.wustl.edu/~schmidt/ACE-netsvcs.html">ACE Network Services</a>
-</BODY>
-</HTML>
diff --git a/java/JACE/overview.html b/java/JACE/overview.html
deleted file mode 100644
index a0c2fdabd73..00000000000
--- a/java/JACE/overview.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-Java ACE is a collection of Java packages containing classes that have been
-converted from the C++ version of the
-<A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ADAPTIVE Communication
-Environment</A> (ACE).
-<P>
-The C++ version of ACE is a large object-oriented network programming toolkit
-which contains over 125,000 lines of C++ code and uses advanced C++ features
-like templates.
-</P>
-<P>The goal of converting ACE from C++ to Java is to provide a portable
-programming toolkit with a similar interface and functionality to the original
- version of ACE. This allows new and current users of C++ ACE an easy transition
-to Java and also adds significant value to programming concurrent Java
-networking applications. Note that applications written using Java ACE can
-communicate seamlessly over sockets with applications written using C++ ACE.
-</P>
-<P>
-The following diagram illustrates the architecture of the Java version of ACE:
-</P>
-
-<P ALIGN="CENTER">
-<IMG SRC="images/java-ace.gif" WIDTH="735" HEIGHT="339" ALIGN="BOTTOM" BORDER="0">
-</P>
-
-<P>
-The Java ACE architecture has fewer components than the diagram illustrating
-the architecture for the
-<A HREF="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">C++ version
-of ACE </A>. This reduction in size occurs for two reasons. First, the Java
-Virtual Machine (JVM) handles many of the portability issues provided by C++
-ACE. Therefore, the OS adaptation layer is unnecessary. Second,
-Java doesn't support certain OS features provided by Win32, UNIX, and other
-OS platforms that C++ ACE is ported to. For example, Java doesn't support
-shared memory and memory-mapped files and therefore the memory management
-wrappers (such as <CODE>Mem_Map</CODE> and <CODE>Shared_Malloc</CODE>) are
-omitted from Java ACE.
-</P>
-
-<P>
-The process of converting ACE from C++ to Java provided us with an excellent
-source of insights on the strengths and weaknesses of using Java for
-industrial-strength software system frameworks. We've written a paper
-documenting our
-<A HREF="http://www.cs.wustl.edu/~schmidt/C++2java.html">experiences</A>
-converting the C++ version of ACE to Java.
-</P>
-
-<H3>Copyright Information for Java ACE</H3>
-
-<P>
-Java ACE is copyrighted by
-<A HREF="http://www.cs.wustl.edu/~schmidt">Douglas C. Schmidt</A> and his
-research group at
-<A HREF="http://www.wustl.edu">Washington University</A>.
-You are free to do anything you like with the Java ACE source code such
-as including it in commercial software, as long as you include this copyright
-statement along with code built using Java ACE.
-</P>
-<P>
-You are under no obligation to freely redistribute any of your source
-code that is built using Java ACE. Please note, however, that you may
-not do anything to the Java ACE code that will prevent it from being
-distributed freely (such as copyrighting it yourself). Naturally, I am not
-responsible for any problems caused by using Java ACE.
-</P>
-<P>
-My goal is to see Java ACE continue to evolve and become a more
-comprehensive, robust, and well-documented Java toolkit that is freely
-available to researchers and developers. If you have any
-improvements, suggestions, and or comments, I'd like to hear about it.
-</P>
-<P>
-Thanks,
-</P>
-<P>
-Douglas C. Schmidt
-<BR>
-<A HREF="mailto@schmidt@cs.wustl.edu">schmidt@cs.wustl.edu</A>
-</P>
-</BODY>
-</HTML>
diff --git a/java/JACE/package.html b/java/JACE/package.html
deleted file mode 100644
index 72d43449ea7..00000000000
--- a/java/JACE/package.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-<BODY>
-
-<H3>Overview of Java ACE</H3>
-<P>Java ACE is a collection of Java packages containing classes that have been converted from the C++ version of
-the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">ADAPTIVE Communication Environment</A> (ACE). The C++ version
-of ACE is a large object-oriented network programming toolkit which contains over 125,000 lines of C++ code and
-uses advanced C++ features like templates.</P>
-<P>The goal of converting ACE from C++ to Java is to provide a portable programming toolkit with a similar interface
-and functionality to the original version of ACE. This allows new and current users of C++ ACE an easy transition
-to Java and also adds significant value to programming concurrent Java networking applications. Note that applications
-written using Java ACE can communicate seamlessly over sockets with applications written using C++ ACE.</P>
-<P>The following diagram illustrates the architecture of the Java version of ACE:</P>
-<CENTER>
-<IMG SRC="java-ace.gif" ALIGN="BOTTOM" BORDER="0"></CENTER>
-<P>
-The Java ACE architecture has fewer components than the diagram illustrating the architecture for the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE-overview.html">C++
-version of ACE </A>. This reduction in size occurs for two reasons. First, the Java Virtual Machine (JVM) handles
-many of the portability issues provided by C++ ACE. Therefore, the OS adaptation layer is unnecessary. Second,
-Java doesn't support certain OS features provided by Win32, UNIX, and other OS platforms that C++ ACE is ported
-to. For example, Java doesn't support shared memory and memory-mapped files and therefore the memory management
-wrappers (such as <CODE>Mem_Map</CODE> and <CODE>Shared_Malloc</CODE>) are omitted from Java ACE.</P>
-
-<P>The process of converting ACE from C++ to Java provided us with an excellent source of insights on the strengths
-and weaknesses of using Java for industrial-strength software system frameworks. We've written a paper documenting
-our <A HREF="http://www.cs.wustl.edu/~schmidt/C++2java.html">experiences</A> converting the C++ version of ACE
-to Java.
-
-</BODY>
-</HTML>
-
diff --git a/java/JACE/tests/ASX/BufferStreamTest.java b/java/JACE/tests/ASX/BufferStreamTest.java
deleted file mode 100644
index a9600da19dc..00000000000
--- a/java/JACE/tests/ASX/BufferStreamTest.java
+++ /dev/null
@@ -1,189 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.ASX
-//
-// = FILENAME
-// BufferStreamTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.ASX;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.ASX.*;
-
-/**
- * This short program copies stdin to stdout via the use of an ASX
- * STREAM. It illustrates an implementation of the classic "bounded
- * buffer" program using an ASX STREAM containing two Modules. Each
- * Module contains two Tasks.
- */
-public class BufferStreamTest
-{
-
- static class CommonTask extends Task
- {
- // ACE_Task hooks
- public int open (Object obj)
- {
- if (this.activate (0, 1, false) == -1)
- ACE.ERROR ("spawn");
- return 0;
- }
-
- public int close (long exitStatus)
- {
- ACE.DEBUG (Thread.currentThread () + " thread is exiting with status " +
- exitStatus + " in module " + this.name () + "\n");
- return 0;
- }
-
- public int put (MessageBlock mb, TimeValue tv)
- {
- return 0;
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
- }
-
- // Define the Producer interface.
-
- static class Producer extends CommonTask
- {
- // Read data from stdin and pass to consumer.
- // The Consumer reads data from the stdin stream, creates a message,
- // and then queues the message in the message list, where it is
- // removed by the consumer thread. A 0-sized message is enqueued when
- // there is no more data to read. The consumer uses this as a flag to
- // know when to exit.
-
- public int svc ()
- {
- // Keep reading stdin, until we reach EOF.
-
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
-
- String msg = null;
- try
- {
- while (true)
- {
- System.out.print ("Enter input: ");
- System.out.flush ();
- msg = in.readLine ();
- if (msg == null)
- {
- // Send a shutdown message to the other thread and exit.
- if (this.putNext (new MessageBlock (0), null) == -1)
- ACE.ERROR ("putNext");
- break;
- }
- else
- {
- // Send the message to the other thread.
- if (this.putNext (new MessageBlock (msg), null) == -1)
- ACE.ERROR ("putNext");
- }
- }
- }
- catch (IOException e)
- {
- }
- return 0;
- }
- }
-
- static class Consumer extends CommonTask
- // = TITLE
- // Define the Consumer interface.
- {
- // Enqueue the message on the MessageQueue for subsequent
- // handling in the svc() method.
- public int put (MessageBlock mb, TimeValue tv)
- {
- try
- {
- return this.putq (mb, tv);
- }
- catch (InterruptedException e)
- {
- }
- return 0;
- }
-
- // The consumer dequeues a message from the ACE_Message_Queue, writes
- // the message to the stderr stream, and deletes the message. The
- // Consumer sends a 0-sized message to inform the consumer to stop
- // reading and exit.
-
- public int svc ()
- {
- MessageBlock mb = null;
-
- // Keep looping, reading a message out of the queue, until we
- // timeout or get a message with a length == 0, which signals us to
- // quit.
- try
- {
- while (true)
- {
- // Wait for upto 4 seconds
- mb = this.getq (TimeValue.relativeTimeOfDay (4, 0));
-
- if (mb == null)
- break;
-
- int length = mb.length ();
-
- if (length > 0)
- System.out.println ("\n" + mb.base ());
-
- if (length == 0)
- break;
- }
- }
- catch (InterruptedException e)
- {
- }
- if (mb == null)
- {
- ACE.ERROR ("timed out waiting for message");
- System.exit (1);
- }
- return 0;
- }
- }
-
- // Spawn off a new thread.
-
- public static void main (String args[])
- {
- ACE.enableDebugging ();
-
- // Control hierachically-related active objects
- Stream stream = new Stream ();
- Module pm = new Module ("Consumer", new Consumer (), null, null);
- Module cm = new Module ("Producer", new Producer (), null, null);
-
- // Create Producer and Consumer Modules and push them onto the
- // STREAM. All processing is performed in the STREAM.
-
- if (stream.push (pm) == -1)
- {
- ACE.ERROR ("push");
- return;
- }
- else if (stream.push (cm) == -1)
- {
- ACE.ERROR ("push");
- return;
- }
- }
-}
diff --git a/java/JACE/tests/ASX/MessageQueueTest.java b/java/JACE/tests/ASX/MessageQueueTest.java
deleted file mode 100644
index 38f098c1bb7..00000000000
--- a/java/JACE/tests/ASX/MessageQueueTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.ASX
-//
-// = FILENAME
-// MessageQueueTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.ASX;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.ASX.*;
-
-public class MessageQueueTest
-{
- public static void main (String args[])
- {
- ACE.enableDebugging ();
-
- try
- {
- MessageBlock conMb;
- MessageQueue msgQueue = new MessageQueue ();
- MessageBlock mb1 = new MessageBlock ("hello");
- MessageBlock mb2 = new MessageBlock ("world");
- mb1.msgPriority (5);
- mb2.msgPriority (7);
-
- // Enqueue in priority order.
- if (msgQueue.enqueue (mb1) == -1)
- ACE.ERROR ("put_next");
-
- if (msgQueue.enqueue (mb2) == -1)
- ACE.ERROR ("put_next");
-
- // Now try to dequeue
- if ((conMb = msgQueue.dequeueHead ()) == null)
- ACE.ERROR ("dequeueHead");
- else
- ACE.DEBUG ("Consumer: removed item " + conMb.base ()
- + " of priority " + conMb.msgPriority ());
- }
- catch (InterruptedException e)
- {
- ACE.ERROR (e);
- }
- }
-}
-
diff --git a/java/JACE/tests/ASX/PriorityBufferTest.java b/java/JACE/tests/ASX/PriorityBufferTest.java
deleted file mode 100644
index 37f0370522d..00000000000
--- a/java/JACE/tests/ASX/PriorityBufferTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.ASX
-//
-// = FILENAME
-// PriorityBufferTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.ASX;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.ASX.*;
-
-class consumer extends Thread
-{
- public void run ()
- {
- MessageBlock mb = null;
- long curPriority = 0;
- int length = 0;
-
- try
- {
- // Keep looping, reading a message out of the queue, until we
- // get a message with a length == 0, which signals us to quit.
- for (;;)
- {
- if ((mb = PriorityBufferTest.msgQueue.dequeueHead ()) == null)
- break;
-
- length = mb.length ();
- curPriority = mb.msgPriority ();
-
- if (length > 0)
- ACE.DEBUG ("Consumer: removed item \"" + mb.base () + "\" of priority: " + curPriority);
-
- if (length == 0)
- break;
- }
- }
- catch (InterruptedException e)
- {
- }
- }
-}
-
-class producer extends Thread
-{
- producer (int delay)
- {
- this.delay_ = delay;
- }
-
- public void run ()
- {
- try
- {
- long count = 0;
- for (char c = 'a'; c <= 'z'; c++)
- {
- count++;
- // Allocate a new message
- MessageBlock mb = new MessageBlock (new Character (c).toString ());
- // Set the priority
- mb.msgPriority (count);
-
- // Enqueue in priority order.
- if (PriorityBufferTest.msgQueue.enqueue (mb) == -1)
- ACE.ERROR ("put_next");
- else
- {
- ACE.DEBUG ("Producer: inserted item \"" + mb.base () + "\" of priority: " + count);
- if (this.delay_ > 0)
- this.sleep (this.delay_);
- }
- }
-
- // Now send a 0-sized shutdown message to the other thread
- if (PriorityBufferTest.msgQueue.enqueueTail (new MessageBlock (0)) == -1)
- ACE.ERROR ("put_next");
- }
- catch (InterruptedException e)
- {
- }
- }
-
- private int delay_;
-}
-
-public class PriorityBufferTest
-{
- public static MessageQueue msgQueue = new MessageQueue ();
-
- public static void main (String args[])
- {
- ACE.enableDebugging ();
-
- int delay = 0;
- if (args.length == 1)
- {
- try
- {
- delay = Integer.parseInt (args[0]);
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
- }
- new producer (delay).start ();
- new consumer ().start ();
- }
-}
diff --git a/java/JACE/tests/ASX/TaskTest.java b/java/JACE/tests/ASX/TaskTest.java
deleted file mode 100644
index 09ebfe22a1f..00000000000
--- a/java/JACE/tests/ASX/TaskTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.ASX
-//
-// = FILENAME
-// TaskTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.ASX;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.ASX.*;
-import JACE.Reactor.*;
-
-public class TaskTest extends Task
-{
- int nThreads_;
- int nIterations_;
-
- public TaskTest (int nThreads, int nIterations)
- {
- this.nIterations_ = nIterations;
- this.nThreads_ = nThreads;
- }
-
- public void beginTest ()
- {
- if (this.activate (0, this.nThreads_, true) == -1)
- ACE.ERROR ("activate failed");
- }
-
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int put (MessageBlock mb, TimeValue tv)
- {
- return 0;
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-
- public int svc ()
- {
- for (int i = 1; i <= this.nIterations_; i++)
- {
- ACE.DEBUG (Thread.currentThread ().toString () +
- " in iteration " + i);
- // Allow other threads to run
- Thread.yield ();
- }
- return 0;
- }
-
- public static void main (String args[])
- {
- int nThreads = 1;
- int nIterations = 1;
-
- ACE.enableDebugging ();
-
- try
- {
- if (args.length == 2)
- {
- nThreads = Integer.parseInt (args[0]);
- nIterations = Integer.parseInt (args[1]);
- }
- else if (args.length == 1)
- {
- nThreads = Integer.parseInt (args[0]);
- }
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
- TaskTest tt = new TaskTest (nThreads, nIterations);
- tt.beginTest ();
- }
-}
diff --git a/java/JACE/tests/ASX/ThreadPoolTest.java b/java/JACE/tests/ASX/ThreadPoolTest.java
deleted file mode 100644
index c48b0caf3c2..00000000000
--- a/java/JACE/tests/ASX/ThreadPoolTest.java
+++ /dev/null
@@ -1,187 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.ASX
-//
-// = FILENAME
-// ThreadPoolTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.ASX;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.ASX.*;
-import JACE.Reactor.*;
-
-public class ThreadPoolTest extends Task
-{
- int nThreads_;
- int nIterations_;
-
- public static int MAX_MB_SIZE = 1024;
-
- public ThreadPoolTest (int nThreads, int nIterations)
- {
- this.nIterations_ = nIterations;
- this.nThreads_ = nThreads;
- if (this.activate (0, nThreads, true) == -1)
- ACE.ERROR ("activate failed");
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int put (MessageBlock mb, TimeValue tv)
- {
- try
- {
- return this.putq (mb, tv);
- }
- catch (InterruptedException e)
- {
- }
- return 0;
- }
-
- public int svc ()
- {
- int count = 1;
-
- // Keep looping, reading a message out of the queue, until we get a
- // message with a length == 0, which signals us to quit.
- try
- {
- for (;; count++)
- {
- MessageBlock mb = this.getq (null);
- if (mb == null)
- {
- ACE.ERROR (Thread.currentThread ().toString () + " in iteration " + count + ", got result -1, exiting");
- break;
- }
- int length = mb.length ();
-
- if (length > 0)
- ACE.DEBUG (Thread.currentThread ().toString () +
- " in iteration " + count + ", length = " +
- length + ", text = \"" + mb.base () + "\"");
-
- if (length == 0)
- {
- ACE.DEBUG (Thread.currentThread ().toString () +
- " in iteration " + count +
- ", got NULL message, exiting");
- break;
- }
- Thread.yield ();
- }
- }
- catch (InterruptedException e)
- {
- }
- return 0;
- }
-
- public static void produce (ThreadPoolTest threadPool, int nIterations)
- {
- int count = 0;
- for (int n = 0;;)
- {
- // Allocate a new message.
- MessageBlock mb = new MessageBlock (new Integer (count).toString ());
-
- if (count == nIterations)
- n = 1; // Indicate that we need to shut down.
- else
- count++;
-
- if (count == 0 || (count % 20 == 0))
- {
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
- }
- if (n != 1)
- {
- ACE.DEBUG ("Producing...");
- // Pass the message to the Thread_Pool.
- if (threadPool.put (mb, null) == -1)
- ACE.ERROR ("put");
- }
- else
- {
- // Send a shutdown message to the waiting threads and exit.
- ACE.DEBUG ("start loop, dump of task");
-
- for (int i = threadPool.thrCount (); i > 0; i--)
- {
- ACE.DEBUG (Thread.currentThread ().toString () +
- "EOF, enqueueing NULL block for thread " + i);
-
- // Enqueue a NULL message to flag each consumer to
- // shutdown.
- if (threadPool.put (new MessageBlock (0), null) == -1)
- ACE.ERROR ("put");
- }
-
- break;
- }
- }
- }
-
- public static void main (String args[])
- {
- int nThreads = 1;
- int nIterations = 100;
-
- ACE.enableDebugging ();
-
- try
- {
- if (args.length == 2)
- {
- nThreads = Integer.parseInt (args[0]);
- nIterations = Integer.parseInt (args[1]);
- }
- else if (args.length == 1)
- {
- nThreads = Integer.parseInt (args[0]);
- }
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
- ACE.DEBUG ("Threads = " + nThreads + " Iterations = " + nIterations);
-
- // Create the worker tasks.
- ThreadPoolTest threadPool = new ThreadPoolTest (nThreads,
- nIterations);
-
- // Create work for the worker tasks to process in their own threads.
- produce (threadPool, nIterations);
- ACE.DEBUG ("exiting...");
- }
-}
-
-
diff --git a/java/JACE/tests/Concurrency/Condition/Consumer.java b/java/JACE/tests/Concurrency/Condition/Consumer.java
deleted file mode 100644
index e43a28f00e0..00000000000
--- a/java/JACE/tests/Concurrency/Condition/Consumer.java
+++ /dev/null
@@ -1,75 +0,0 @@
-//File: Consumer.java
-//Seth Widoff 8/8/96
-//This class attempts at random intervals to dequeue random elements
-//from a queue. If the queue is empty the thread waits until an element
-//has been enqueued and another thread has invoked the notify() method.
-package JACE.tests.Concurrency.Condition;
-
-import java.lang.Math;
-import JACE.ASX.TimeValue;
-import java.util.Random;
-
-public class Consumer implements Runnable
-{
- //Maximum pause between dequeues (in milliseconds)
- private static final int MAX_PAUSE = 1000;
-
- private SimpleMessageQueue queue_;
- private boolean stop_requested_ = false;
- private String name_;
- private int iterations_;
- private TimeValue timeout_;
-
- public Consumer(String name,
- SimpleMessageQueue queue,
- int iterations,
- TimeValue timeout)
- {
- name_ = "Consumer " + name;
- queue_ = queue;
- iterations_ = iterations;
- timeout_ = timeout;
- }
-
- public void run()
- {
- //Set the random number generator seed to the current time in
- //milliseconds.
-
- Random random = new Random(System.currentTimeMillis());
- Integer element;
-
- for (int i = 0; i < iterations_; )
- {
- try
- {
- TimeValue absTv = TimeValue.relativeTimeOfDay (timeout_);
- element = (Integer)queue_.dequeue(absTv);
- if (element != null)
- {
-
- System.out.println("Consumer::run() " + name_ + " dequeued "
- + element.toString() +
- " Queue size: " + queue_.size());
-
- Thread.sleep(Math.abs (random.nextLong()) % MAX_PAUSE);
- }
- else
- {
- System.out.println ("Null");
- }
- i++;
- }
- catch(Exception excp)
- {
- System.out.print ("Consumer::run() Exception: ");
- System.out.println(excp);
- }
- }
- }
-
- public void requestStop()
- {
- stop_requested_ = true;
- }
-}
diff --git a/java/JACE/tests/Concurrency/Condition/JoinableThreadGroup.java b/java/JACE/tests/Concurrency/Condition/JoinableThreadGroup.java
deleted file mode 100644
index 908da33f9f9..00000000000
--- a/java/JACE/tests/Concurrency/Condition/JoinableThreadGroup.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package JACE.tests.Concurrency.Condition;
-
-public class JoinableThreadGroup extends ThreadGroup
-{
- public JoinableThreadGroup(String name)
- {
- super(name);
- }
-
- public JoinableThreadGroup(ThreadGroup parent, String name)
- {
- super(parent, name);
- }
-
- public void join() throws InterruptedException
- {
- Thread list[] = new Thread[activeCount()];
-
- enumerate(list, true);
-
- for (int i = 0; i < list.length; i++)
- list[i].join();
- }
-}
diff --git a/java/JACE/tests/Concurrency/Condition/Producer.java b/java/JACE/tests/Concurrency/Condition/Producer.java
deleted file mode 100644
index cda5063ceed..00000000000
--- a/java/JACE/tests/Concurrency/Condition/Producer.java
+++ /dev/null
@@ -1,70 +0,0 @@
-//File: Producer.java
-//Seth Widoff 8/8/96
-//This class attempts at random intervals to enqueue random elements
-//into a queue. If the queue is full the thread waits until an element
-//has been dequeued and another thread has invoked the notify() method.
-
-package JACE.tests.Concurrency.Condition;
-
-import JACE.ASX.TimeValue;
-import java.lang.Math;
-import java.util.Random;
-
-public class Producer implements Runnable
-{
- //Maximum pause between enqueues (in milliseconds)
- private static final int MAX_PAUSE = 1000;
-
- private SimpleMessageQueue queue_;
- private boolean stop_requested_ = false;
- private String name_;
- private int iterations_;
- private TimeValue timeout_;
-
- public Producer(String name,
- SimpleMessageQueue queue,
- int iterations,
- TimeValue timeout)
- {
- name_ = "Producer " + name;
- queue_ = queue;
- iterations_ = iterations;
- timeout_ = timeout;
- }
-
- public void run()
- {
- //Set the random number generator seed to the current time in milliseconds.
- Random random = new Random(System.currentTimeMillis());
- int element = 1;
-
- for (int i = 0; i < iterations_; )
- {
- try
- {
- // element = random.nextInt();
- TimeValue absTv = TimeValue.relativeTimeOfDay (timeout_);
- queue_.enqueue((Object)new Integer(element), absTv);
-
- System.out.println("Producer::run() " + name_
- + " enqueued " + element +
- " Queue size: " + queue_.size());
-
- Thread.sleep(Math.abs (random.nextLong()) % MAX_PAUSE);
- i++;
- element++;
- }
- catch(Exception excp)
- {
- System.out.print("Producer::run() Exception: ");
- System.out.println(excp);
- }
- }
- }
-
- public void requestStop()
- {
- stop_requested_ = true;
- }
-}
-
diff --git a/java/JACE/tests/Concurrency/Condition/QueueTest.java b/java/JACE/tests/Concurrency/Condition/QueueTest.java
deleted file mode 100644
index 7d6560b11a7..00000000000
--- a/java/JACE/tests/Concurrency/Condition/QueueTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-//File: QueueTest.java
-//Seth Widoff, 8/8/96
-//This class is a test method for the Producer and Consumer classes.
-//The main method takes as arguments the number of producers, the
-//number of consumers and the number of elements in the queue. It then
-//spawn the specified threads and starts them.
-
-package JACE.tests.Concurrency.Condition;
-
-import JACE.ASX.TimeValue;
-
-public class QueueTest
-{
- public static void main(String[] args)
- {
- if (args.length < 5)
- {
- System.out.println("Usage: java QueueTest <# producers> <# consumers> " +
- "<# elements> <#iterations> <#timeout secs> <#timeout nano secs>");
- System.exit(1);
- }
-
- int num_producers = Integer.parseInt(args[0]),
- num_consumers = Integer.parseInt(args[1]),
- num_elements = Integer.parseInt(args[2]),
- num_iterations = Integer.parseInt(args[3]),
- num_timeout_secs = Integer.parseInt(args[4]),
- num_timeout_nano_secs = Integer.parseInt(args[5]);
-
- if (num_elements < 1
- || num_consumers < 1
- || num_producers < 1)
- {
- System.out.println("All the parameters must be larger than zero.");
- System.exit(1);
- }
-
- SimpleMessageQueue queue = new SimpleMessageQueue(num_elements);
- Consumer[] consumers = new Consumer[num_consumers];
- Producer[] producers = new Producer[num_producers];
- JoinableThreadGroup thread_group = new JoinableThreadGroup("Producer Consumer");
-
- for (int i = 0; i < num_producers; i++)
- {
- producers[i] = new Producer("Number " + (i + 1),
- queue,
- num_iterations,
- new TimeValue (num_timeout_secs, num_timeout_nano_secs));
- new Thread(thread_group, producers[i]).start();
- }
-
- for (int i = 0; i < num_consumers; i++)
- {
- consumers[i] = new Consumer("Number " + (i + 1), queue, num_iterations, new TimeValue (num_timeout_secs, num_timeout_nano_secs));
- new Thread(thread_group, consumers[i]).start();
- }
-
- try
- {
- thread_group.join();
- }
- catch(InterruptedException excp)
- {
- System.out.println("QueueTest::main");
- System.out.println(excp);
- }
- }
-}
diff --git a/java/JACE/tests/Concurrency/Condition/SimpleMessageQueue.java b/java/JACE/tests/Concurrency/Condition/SimpleMessageQueue.java
deleted file mode 100644
index f2a465a9025..00000000000
--- a/java/JACE/tests/Concurrency/Condition/SimpleMessageQueue.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package JACE.tests.Concurrency.Condition;
-
-import JACE.ASX.TimeoutException;
-import JACE.ASX.TimeValue;
-import JACE.Concurrency.*;
-
-public class SimpleMessageQueue
-{
- private int num_items_ = 0;
- private int head_ = 0, tail_ = 0;
- private Object[] queue_;
-
- private Mutex lock_ = new Mutex ();
- private Condition notFull_ = new Condition (lock_);
- private Condition notEmpty_ = new Condition (lock_);
-
- public SimpleMessageQueue(int size)
- {
- queue_ = new Object[size];
- }
-
- public void enqueue(Object element, TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- try
- {
- lock_.acquire ();
- while (this.isFull ())
- notFull_.Wait (timeout);
-
- if (tail_ == queue_.length)
- tail_ = 0;
- queue_[tail_] = element;
- tail_++;
-
- num_items_++;
- notEmpty_.signal ();
- }
- finally
- {
- lock_.release ();
- }
- }
-
- public Object dequeue (TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- Object return_value = null;
-
- try
- {
- lock_.acquire ();
- while (this.isEmpty ())
- notEmpty_.Wait (timeout);
-
- return_value = queue_[head_];
- head_++;
- if (head_ == queue_.length)
- head_ = 0;
-
- num_items_--;
- notFull_.signal ();
- }
- finally
- {
- lock_.release ();
- }
- return return_value;
- }
-
- public boolean isEmpty()
- {
- return num_items_ == 0;
- }
-
- public boolean isFull()
- {
- return num_items_ == queue_.length;
- }
-
- public int size()
- {
- return num_items_;
- }
-}
-
diff --git a/java/JACE/tests/Concurrency/IterationTest.java b/java/JACE/tests/Concurrency/IterationTest.java
deleted file mode 100644
index 79e083e7f7a..00000000000
--- a/java/JACE/tests/Concurrency/IterationTest.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.tests.Concurrency
- *
- * = FILENAME
- * IterationTest.java
- *
- *@author Prashant Jain
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.tests.Concurrency;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.Concurrency.*;
-
-/**
- * Test which uses an AbstractLock to prevent threads from mangling
- * shared data. This currently tests the four local concurrency
- * mechanisms -- Token, Mutex, RWMutex, and Semaphore.
- */
-public class IterationTest
-{
- static class LockReader extends Thread
- {
- LockReader (int nIterations, AbstractLock lock)
- {
- this.nIterations_ = nIterations;
- this.lock_ = lock;
- }
-
- public void run ()
- {
- for (int i = 1; i <= this.nIterations_; i++)
- {
- // Acquire the lock (will block until it gets it)
- try
- {
- this.lock_.acquire ();
- }
- catch (InterruptedException e)
- {
- ACE.ERROR (e);
- }
- catch (LockException e)
- {
- ACE.ERROR (e);
- }
-
- IterationTest.count++;
- ACE.DEBUG (Thread.currentThread ().toString () +
- " reader acquired lock in iteration " + i +
- ", count = " + IterationTest.count);
-
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
- // Release the lock
- try
- {
- this.lock_.release ();
- }
- catch (LockException e)
- {
- ACE.ERROR (e);
- }
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
-
- }
- }
-
- int nIterations_;
- AbstractLock lock_;
- }
-
- static class LockWriter extends Thread
- {
- LockWriter (int nIterations, AbstractLock lock)
- {
- this.nIterations_ = nIterations;
- this.lock_ = lock;
- }
-
- public void run ()
- {
- for (int i = 1; i <= this.nIterations_; i++)
- {
- // Acquire the lock (will block until it gets it)
- try
- {
- this.lock_.acquire ();
- }
- catch (InterruptedException e)
- {
- ACE.ERROR (e);
- }
- catch (LockException e)
- {
- ACE.ERROR (e);
- }
-
-
- IterationTest.count++;
- ACE.DEBUG (Thread.currentThread ().toString () +
- " writer acquired lock in iteration " + i +
- ", count = " + IterationTest.count);
-
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
-
- // Release the lock
- try
- {
- this.lock_.release ();
- }
- catch (LockException e)
- {
- ACE.ERROR (e);
- }
-
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
-
- }
- }
-
- int nIterations_;
- AbstractLock lock_;
- }
-
- final static int TOKEN = 0;
- final static int MUTEX = 1;
- final static int RWMUTEX = 2;
- final static int SEMAPHORE = 3;
-
- /**
- * Command line arguments:
- *
- * (number of readers) (number of writers) (number of iterations)
- */
- public static void main (String args[]) throws InterruptedException
- {
- int nReaders = 1;
- int nWriters = 1;
- int nIterations = 100;
- int i;
-
- ACE.enableDebugging ();
-
- try
- {
- if (args.length == 3)
- {
- nReaders = Integer.parseInt (args[0]);
- nWriters = Integer.parseInt (args[1]);
- nIterations = Integer.parseInt (args[2]);
- }
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
-
- AbstractLock lock = null;
- Thread threads[] = new Thread [nReaders + nWriters];
-
- for (int state = TOKEN; state <= SEMAPHORE; state++) {
-
- count = 0;
-
- switch (state)
- {
- case TOKEN:
- ACE.DEBUG ("--------\nTesting Token:");
- lock = new Token ();
- break;
- case MUTEX:
- ACE.DEBUG ("--------\nTesting Mutex:");
- lock = new Mutex ();
- break;
- case RWMUTEX:
- ACE.DEBUG ("--------\nTesting RWMutex:");
- lock = new RWMutex ();
- break;
- case SEMAPHORE:
- ACE.DEBUG ("--------\nTesting Semaphore:");
- lock = new Semaphore ();
- break;
- }
-
- int numThreads = 0;
-
- // Spawn off the readers and writers
- for (i = 0; i < nReaders; i++) {
- threads[numThreads] = new LockReader (nIterations, lock);
- threads[numThreads].start ();
- numThreads++;
- }
-
- for (i = 0; i < nWriters; i++) {
- threads[numThreads] = new LockWriter (nIterations, lock);
- threads[numThreads].start ();
- numThreads++;
- }
-
- for (i = 0; i < numThreads; i++)
- threads[i].join ();
-
- }
- }
-
- public static int count;
-}
diff --git a/java/JACE/tests/Concurrency/RWMutexTest.java b/java/JACE/tests/Concurrency/RWMutexTest.java
deleted file mode 100644
index ff2bbc1f396..00000000000
--- a/java/JACE/tests/Concurrency/RWMutexTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.tests.Concurrency
- *
- * = FILENAME
- * RWMutexTest.java
- *
- *@author Ross Dargahi (rossd@krinfo.com)
- *
- *************************************************/
-package JACE.tests.Concurrency;
-
-import JACE.OS.*;
-import JACE.Concurrency.*;
-
-public class RWMutexTest
-{
- static class TestThread extends Thread
- {
- TestThread(String name,
- boolean writer,
- AbstractLock lock)
- {
- super (name);
- mWriter = writer;
- mLock = lock;
- }
-
- public void output (String msg)
- {
- synchronized (iosynch) {
- ACE.DEBUG (msg);
- }
- }
-
- public void run()
- {
- for (int i = 0; i < 10; i++)
- {
- try
- {
- if (!mWriter)
- {
- mLock.acquireRead();
- output (getName() + ": Acquired Read Lock");
-
- int sleepTime = 10;
- sleep (sleepTime);
-
- mLock.release ();
- output (getName () + ": Released Read Lock");
- }
- else
- {
- mLock.acquireWrite ();
- output (getName () + ": Acquired Write Lock");
-
- int sleepTime = 10;
- sleep (sleepTime);
-
- mLock.release ();
- output (getName () + ": Released Write Lock");
- }
- }
- catch (InterruptedException ex)
- {
- ACE.ERROR ("InterruptedException");
- }
- catch (LockException ex)
- {
- ACE.ERROR ("LockException: " + ex.getMessage ());
- }
- }
- }
-
- AbstractLock mLock;
- boolean mWriter;
-
- static Object iosynch = new Object ();
- }
-
- /**
- * Command line arguments:
- *
- * Optional class name to use for the tests (must implement the
- * AbstractLock interface). Followed by an optional number of
- * iterations.
- */
- public static void main(String [] args)
- throws ClassNotFoundException,
- IllegalAccessException,
- InstantiationException,
- InterruptedException,
- NumberFormatException
- {
- AbstractLock lock;
- int iterations = 1;
-
- ACE.enableDebugging ();
-
- if (args.length > 0) {
- ACE.DEBUG("Using class " + args[0] + " as the Lock");
-
- lock = (AbstractLock)(Class.forName (args[0]).newInstance ());
-
- if (args.length > 1)
- iterations = Integer.parseInt (args[1]);
-
- } else
- lock = new RWMutex ();
-
- for (int i = 0; i < iterations; i++) {
-
- ACE.DEBUG("Iteration " + (i + 1));
-
- TestThread t1 = new TestThread ("1", false, lock);
- TestThread t2 = new TestThread ("2", false, lock);
- TestThread t3 = new TestThread ("3", false, lock);
- TestThread t4 = new TestThread ("4", true, lock);
- TestThread t5 = new TestThread ("5", false, lock);
- TestThread t6 = new TestThread ("6", false, lock);
- TestThread t7 = new TestThread ("7", false, lock);
- TestThread t8 = new TestThread ("8", true, lock);
-
- t1.start ();
- t2.start ();
- t3.start ();
- t4.start ();
- t5.start ();
- t6.start ();
- t7.start ();
- t8.start ();
- }
- }
-}
-
diff --git a/java/JACE/tests/Concurrency/TimingTest.java b/java/JACE/tests/Concurrency/TimingTest.java
deleted file mode 100644
index 783d2e003a2..00000000000
--- a/java/JACE/tests/Concurrency/TimingTest.java
+++ /dev/null
@@ -1,290 +0,0 @@
-package JACE.tests.Concurrency;
-
-import JACE.OS.*;
-import JACE.ASX.*;
-import JACE.Concurrency.*;
-
-/**
- * Performs a test with 5 threads. This should test what happens during
- * renews, also testing what happens when timeout exceptions are generated
- * during operations.
- *
- * Sample output:
- *
- * Thread 1 calling acquire
- * Thread 1 got lock
- * Thread 1 doing work
- * Thread 2 calling acquire
- * Thread 1 finished doing work
- * Thread 1 calling renew -1 1
- * Thread 2 got lock
- * Thread 2 doing work
- * Thread 3 calling acquire
- * Thread 4 calling acquire
- * Thread 5 calling acquire with 1 sec timeout
- * Thread 1 timed out in renew
- * Thread 1 failed renewing
- * Thread 1 calling release
- * Thread 1 failed release
- * Thread 5 timed out in acquire
- * Thread 5 failed acquire
- * Thread 5 calling release
- * Thread 5 failed release
- * Thread 2 finished doing work
- * Thread 2 calling renew 1
- * Thread 3 got lock
- * Thread 3 doing work
- * Thread 3 finished doing work
- * Thread 3 calling release
- * Thread 3 released
- * Thread 2 got the lock back
- * Thread 2 calling release
- * Thread 2 released
- * Thread 4 got lock
- * Thread 4 doing work
- * Thread 4 finished doing work
- * Thread 4 calling release
- * Thread 4 released
- */
-public class TimingTest
-{
- static class Worker extends Thread
- {
- AbstractLock lock;
- String name;
- int order;
-
- public Worker (String name, int order, AbstractLock lock)
- {
- this.name = name;
- this.order = order;
- this.lock = lock;
- }
-
- public void run()
- {
- switch (this.order)
- {
- case 1:
- methodA();
- break;
- case 2:
- methodB();
- break;
- case 3:
- methodC();
- break;
- case 4:
- methodD();
- break;
- }
- }
-
- public void methodA()
- {
- // acquires
- // launches a class 2 worker
- // works
- // renew -1 with a 1 sec timeout (intended to fail)
- // release
-
- try {
- if (acquire() == AbstractLock.FAILURE)
- return;
-
- new Worker("Thread 2", 2, lock).start();
-
- work(3000);
-
- renew(-1, 1);
- } finally {
- release();
- }
- }
-
- public void methodB()
- {
- // acquire
- // launch two new class 3 workers and one class 4 worker
- // work
- // renew, yielding to one waiter
- // release
- try {
- if (acquire() == AbstractLock.FAILURE)
- return;
-
- new Worker ("Thread 3", 3, lock).start ();
- new Worker ("Thread 4", 3, lock).start ();
- new Worker ("Thread 5", 4, lock).start ();
-
- work(3000);
-
- renew(1);
- } finally {
- release();
- }
- }
-
- public void methodC()
- {
- // acquire
- // work
- // release
-
- try {
- if (acquire() == AbstractLock.FAILURE)
- return;
-
- work(1000);
- } finally {
- release();
- }
-
- }
-
- public void methodD()
- {
- // acquire with a short timeout
- // (shouldn't get past the timeout)
- try {
- if (acquire (1) == AbstractLock.FAILURE)
- return;
-
- ACE.DEBUG (name + " probably should have timed out in acquire");
- work (1000);
- } finally {
- release ();
- }
- }
-
- public int acquire (int relativeTimeout)
- {
- int result = AbstractLock.FAILURE;
- ACE.DEBUG(name + " calling acquire with " + relativeTimeout +
- " sec timeout");
-
- try {
- result = lock.acquire (TimeValue.relativeTimeOfDay (relativeTimeout, 0));
- } catch (JACE.ASX.TimeoutException e) {
- ACE.DEBUG(name + " timed out in acquire");
- } catch (Exception e) {
- ACE.DEBUG (name + " got exception: " + e);
- }
-
- if (result != AbstractLock.FAILURE)
- ACE.DEBUG(name + " got lock");
- else
- ACE.DEBUG(name + " failed acquire");
-
- return result;
- }
-
- public int acquire()
- {
- int result = AbstractLock.FAILURE;
-
- ACE.DEBUG(name + " calling acquire");
- try {
- result = lock.acquire();
- } catch (Exception e) {
- ACE.DEBUG(name + " got exception: " + e);
- }
- if (result != AbstractLock.FAILURE)
- ACE.DEBUG(name + " got lock");
- else
- ACE.DEBUG(name + " failed acquire");
-
- return result;
- }
-
- public void release()
- {
- ACE.DEBUG(name + " calling release");
- int result = AbstractLock.FAILURE;
- try {
- result = lock.release();
- } catch (Exception e) {
- ACE.DEBUG (name + " got exception: " + e);
- }
-
- if (result != AbstractLock.FAILURE)
- ACE.DEBUG(name + " released");
- else
- ACE.DEBUG(name + " failed release");
- }
-
- public void renew(int pos)
- {
- int result = AbstractLock.FAILURE;
- ACE.DEBUG(name + " calling renew " + pos);
- try {
- result = lock.renew(pos);
- } catch (Exception e) {
- ACE.DEBUG (name + " got exception: " + e);
- }
-
- if (result != AbstractLock.FAILURE)
- ACE.DEBUG(name + " got the lock back");
- else
- ACE.DEBUG(name + " failed renewing");
- }
-
- public void renew(int pos, int relativeTimeout)
- {
- int result = AbstractLock.FAILURE;
- ACE.DEBUG(name + " calling renew " + pos + " " +
- relativeTimeout);
- try {
- result = lock.renew(pos,
- TimeValue.relativeTimeOfDay(relativeTimeout,
- 0));
- } catch (JACE.ASX.TimeoutException e) {
- ACE.DEBUG(name + " timed out in renew");
- } catch (Exception e) {
- ACE.DEBUG (name + " got exception: " + e);
- }
-
- if (result != AbstractLock.FAILURE)
- ACE.DEBUG(name + " got the lock back");
- else
- ACE.DEBUG(name + " failed renewing");
- }
-
- public void work(int ms)
- {
- ACE.DEBUG(name + " doing work");
- try {
- Thread.sleep(ms);
- } catch (InterruptedException e) {
- ACE.DEBUG(name + " was interrupted");
- }
- ACE.DEBUG(name + " finished doing work");
- }
- }
-
- /**
- * Command line:
- *
- * Optional class name (which implements AbstractLock) to test
- */
- public static void main(String args[]) {
- AbstractLock lock;
-
- ACE.enableDebugging ();
-
- try {
-
- if (args.length > 0) {
- ACE.DEBUG("Using class " + args[0] + " as the Lock");
-
- lock = (AbstractLock)(Class.forName (args[0]).newInstance ());
- } else
- lock = new Token ();
-
- new Worker("Thread 1", 1, lock).start();
-
- } catch (Exception e) {
- ACE.ERROR("Error: " + e);
- }
- }
-}
diff --git a/java/JACE/tests/Concurrency/TokenTest.java b/java/JACE/tests/Concurrency/TokenTest.java
deleted file mode 100644
index 162170f1996..00000000000
--- a/java/JACE/tests/Concurrency/TokenTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * tests.Concurrency
- *
- * = FILENAME
- * TokenTest.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.tests.Concurrency;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.Concurrency.ThreadManager;
-import JACE.Concurrency.*;
-import JACE.ASX.TimeValue;
-
-public class TokenTest implements Runnable
-{
- static class MyToken extends Token
- {
- public void sleepHook ()
- {
- ACE.DEBUG (Thread.currentThread ().getName () +
- " blocking, sleepHook called");
- }
- }
-
- public void run ()
- {
- String name = Thread.currentThread().getName();
- try
- {
- if (this.token_.acquire () != AbstractLock.FAILURE)
- ACE.DEBUG (name + " got token");
- else
- ACE.DEBUG (name + " couldn't get token");
-
- ACE.DEBUG (name + " calling acquire again (test nesting)");
- if (this.token_.acquire() != AbstractLock.FAILURE)
- ACE.DEBUG (name + " got token again");
- else
- ACE.DEBUG (name + " couldn't get token");
-
- Thread.sleep (1000);
-
- ACE.DEBUG (name + " gives it up for max 2 sec to first waiter");
- this.token_.renew (1, TimeValue.relativeTimeOfDay(2, 0));
-
- ACE.DEBUG (name + " releases the token once");
- this.token_.release ();
- ACE.DEBUG (name + " calls release again (nesting level was 2)");
- this.token_.release ();
- }
- catch (InterruptedException e)
- {
- this.token_.release ();
- }
- catch (JACE.ASX.TimeoutException e)
- {
- ACE.DEBUG (name + " timed out");
- }
- }
-
- /**
- * Command line: optional number of threads to create (defaults to 2)
- */
- public static void main (String args [])
- {
- ThreadManager tm = new ThreadManager ();
- int n = 2;
-
- ACE.enableDebugging ();
-
- try
- {
- if (args.length == 1)
- {
- n = Integer.parseInt (args[0]);
- }
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
-
- tm.spawnN (n,
- new TokenTest (),
- false);
- }
-
- private static MyToken token_ = new MyToken ();
-}
diff --git a/java/JACE/tests/Connection/AcceptorTest.java b/java/JACE/tests/Connection/AcceptorTest.java
deleted file mode 100644
index 0e313ba1f43..00000000000
--- a/java/JACE/tests/Connection/AcceptorTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Connection
-//
-// = FILENAME
-// AcceptorTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class AcceptorTest
-{
- void print_usage_and_die ()
- {
- System.out.println ("Usage: test_server [<port>]");
- System.exit (0);
- }
-
- public void init (int port)
- {
- try
- {
- Acceptor acceptor =
- new Acceptor
- (Class.forName ("JACE.tests.Connection.ServerHandler"));
- acceptor.open (port);
- while (true)
- {
- acceptor.accept ();
- }
- }
- catch (ClassNotFoundException e)
- {
- ACE.ERROR (e);
- }
- catch (SocketException e)
- {
- ACE.ERROR ("Socket Exception: " + e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR ("Dang!" + e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- public static void main (String [] args)
- {
- int port = ACE.DEFAULT_SERVER_PORT;
- AcceptorTest acceptorTest = new AcceptorTest ();
-
- ACE.enableDebugging ();
-
- if (args.length == 1)
- {
- try
- {
- port = Integer.parseInt (args[0]);
- }
- catch (NumberFormatException e)
- {
- acceptorTest.print_usage_and_die ();
- }
- }
- acceptorTest.init (port);
- }
-}
diff --git a/java/JACE/tests/Connection/ClientHandler.java b/java/JACE/tests/Connection/ClientHandler.java
deleted file mode 100644
index d5885a892e9..00000000000
--- a/java/JACE/tests/Connection/ClientHandler.java
+++ /dev/null
@@ -1,77 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Connection
-//
-// = FILENAME
-// ClientHandler.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ClientHandler extends SvcHandler
-{
- public ClientHandler ()
- {
- }
-
- public int open (Object obj)
- {
- new Thread (this).start ();
- return 0;
- }
-
- public void run ()
- {
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
-
- String msg;
- StringBuffer ack = new StringBuffer ();
- int ack_len;
- try
- {
- while (true)
- {
- System.out.print ("Enter input: ");
- System.out.flush ();
- msg = in.readLine ();
- if (msg == null)
- break;
- this.peer ().send (new StringBuffer (msg));
- System.out.println ("Waiting for ack...");
- ack_len = this.peer ().recv (ack);
- if (ack_len == 0)
- break;
- else
- System.out.println (ack);
- }
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("connection reset by peer");
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- finally
- {
- try
- {
- this.peer ().close ();
- }
- catch (IOException e)
- {
- }
- }
-
- }
-}
diff --git a/java/JACE/tests/Connection/ConnectorTest.java b/java/JACE/tests/Connection/ConnectorTest.java
deleted file mode 100644
index 285e492dcaf..00000000000
--- a/java/JACE/tests/Connection/ConnectorTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Connection
-//
-// = FILENAME
-// ConnectorTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ConnectorTest
-{
- void print_usage_and_die ()
- {
- System.out.println ("Usage: test_Connector <hostname> [<port>]");
- System.exit (0);
- }
-
- public void init (String hostname, int port)
- {
- try
- {
- Connector connector = new Connector ();
- connector.open (hostname, port);
- connector.connect (new ClientHandler ());
- }
- catch (UnknownHostException e)
- {
- ACE.ERROR (e);
- }
- catch (SocketException e)
- {
- ACE.ERROR ("Connection refused");
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- public static void main (String [] args)
- {
- int port = ACE.DEFAULT_SERVER_PORT;
- ConnectorTest connectorTest = new ConnectorTest ();
-
- ACE.enableDebugging ();
-
- if (args.length == 2)
- {
- try
- {
- port = Integer.parseInt (args[1]);
- }
- catch (NumberFormatException e)
- {
- connectorTest.print_usage_and_die ();
- }
- }
- connectorTest.init (args[0], port);
- }
-}
diff --git a/java/JACE/tests/Connection/HTTPHelperTest.java b/java/JACE/tests/Connection/HTTPHelperTest.java
deleted file mode 100644
index 28967acb8d3..00000000000
--- a/java/JACE/tests/Connection/HTTPHelperTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package JACE.tests.Connection;
-
-import java.io.*;
-import JACE.Connection.*;
-import JACE.OS.*;
-
-public class HTTPHelperTest
-{
- public static void main(String args[])
- {
- ACE.enableDebugging ();
- // This is just a quick test to confirm that the Base 64
- // encoding and decoding work
- // (tests the example given in the HTTP 1.1 RFC)
-
- String secret = "Aladdin:open sesame";
-
- String encoded = HTTPHelper.EncodeBase64(secret);
-
- System.err.println("Encoding string: \"" + secret + '\"');
-
- System.err.println("Result: \"" + encoded + '\"');
-
- System.err.println("Is this right? " +
- (encoded.equals("QWxhZGRpbjpvcGVuIHNlc2FtZQ==") ?
- "Yes" : "No"));
-
- String decoded = HTTPHelper.DecodeBase64 (encoded);
- System.err.println("Decoded: \"" + decoded + '\"');
-
- System.err.println("Is this right? " +
- (decoded.equals (secret) ? "Yes" : "No"));
- }
-}
diff --git a/java/JACE/tests/Connection/ServerHandler.java b/java/JACE/tests/Connection/ServerHandler.java
deleted file mode 100644
index 4dec8186427..00000000000
--- a/java/JACE/tests/Connection/ServerHandler.java
+++ /dev/null
@@ -1,68 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Connection
-//
-// = FILENAME
-// ServerHandler.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ServerHandler extends SvcHandler
-{
- public ServerHandler ()
- {
- }
-
- public int open (Object obj)
- {
- new Thread (this).start ();
- return 0;
- }
-
- public void run ()
- {
- int msg_len;
- System.out.println ("Waiting for messages...");
- try
- {
- while (true)
- {
- StringBuffer msg = new StringBuffer ();
- msg_len = this.peer ().recv (msg);
- if (msg_len == 0)
- break;
- System.out.println ("Received: " + msg);
- this.peer ().send (new StringBuffer ("Got it!"));
- }
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("connection reset by peer");
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- finally
- {
- try
- {
- this.peer ().close ();
- }
- catch (IOException e)
- {
- }
- }
-
- }
-}
diff --git a/java/JACE/tests/Makefile b/java/JACE/tests/Makefile
deleted file mode 100644
index f6336bd7ebb..00000000000
--- a/java/JACE/tests/Makefile
+++ /dev/null
@@ -1,115 +0,0 @@
-# Makefile for JACE tests
-# $Id$
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-
-JC = javac
-JCOPTS = -d $(CLASSDIR)
-
-COMPILE.java = $(JC) $(JCOPTS) $(filter %.java,$?)
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all: asx concurrency condition connection misc reactor socksap svcconfig netsvcs
-
-pkg_all = $(pkg_asx) $(pkg_concurrency) $(pkg_condition) $(pkg_connection) \
- $(pkg_misc) $(pkg_reactor) $(pkg_socksap) $(pkg_svcconfig) $(pkg_netsvcs)
-
-clean:
- find ${JACE_WRAPPER}/classes/JACE/tests -name '*.class' -print | xargs ${RM}
-
-pkg_asx = \
- BufferStreamTest \
- MessageQueueTest \
- PriorityBufferTest \
- TaskTest \
- ThreadPoolTest
-
-asx: $(addprefix ASX/,$(addsuffix .java,$(pkg_asx)))
- $(COMPILE.java)
-
-pkg_concurrency = \
- IterationTest \
- RWMutexTest \
- TimingTest \
- TokenTest
-
-concurrency: $(addprefix Concurrency/,$(addsuffix .java,$(pkg_concurrency)))
- $(COMPILE.java)
-
-pkg_condition = \
- Consumer \
- JoinableThreadGroup \
- Producer \
- QueueTest \
- SimpleMessageQueue
-
-condition: $(addprefix Concurrency/Condition/,$(addsuffix .java,$(pkg_condition)))
- $(COMPILE.java)
-
-pkg_connection = \
- AcceptorTest \
- ClientHandler \
- ConnectorTest \
- HTTPHelperTest \
- ServerHandler
-
-connection: $(addprefix Connection/,$(addsuffix .java,$(pkg_connection)))
- $(COMPILE.java)
-
-pkg_misc = \
- ParseArgsTest
-
-misc: $(addprefix Misc/,$(addsuffix .java,$(pkg_misc)))
- $(COMPILE.java)
-
-pkg_reactor = \
- TimeValueTest \
- TimerQueueTest
-
-reactor: $(addprefix Reactor/,$(addsuffix .java,$(pkg_reactor)))
- $(COMPILE.java)
-
-pkg_socksap = \
- SOCKAcceptorTest \
- SOCKConnectorTest
-
-socksap: $(addprefix SOCK_SAP/,$(addsuffix .java,$(pkg_socksap)))
- $(COMPILE.java)
-
-pkg_svcconfig = \
- Main
-
-svcconfig: $(addprefix ServiceConfigurator/,$(addsuffix .java,$(pkg_svcconfig)))
- $(COMPILE.java)
-
-netsvcs: logger_tests naming_tests time_tests token_tests
-
-pkg_logger_tests = \
- LoggerTest
-
-logger_tests: $(addprefix netsvcs/Logger/,$(addsuffix .java,$(pkg_logger_tests)))
- $(COMPILE.java)
-
-pkg_naming_tests = \
- ClientTest
-
-naming_tests: $(addprefix netsvcs/Naming/,$(addsuffix .java,$(pkg_naming_tests)))
- $(COMPILE.java)
-
-pkg_time_tests = \
- TSClient
-
-time_tests: $(addprefix netsvcs/Time/,$(addsuffix .java,$(pkg_time_tests)))
- $(COMPILE.java)
-
-pkg_token_tests = \
- ProxyClientTest
-
-token_tests: $(addprefix netsvcs/Token/,$(addsuffix .java,$(pkg_token_tests)))
- $(COMPILE.java)
-
-
diff --git a/java/JACE/tests/Misc/ParseArgsTest.java b/java/JACE/tests/Misc/ParseArgsTest.java
deleted file mode 100644
index cc27b28d75b..00000000000
--- a/java/JACE/tests/Misc/ParseArgsTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Misc
-//
-// = FILENAME
-// ParseArgsTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.Misc;
-
-import JACE.OS.*;
-import JACE.Misc.*;
-
-public class ParseArgsTest
-{
- public static void main (String args[])
- {
- ACE.enableDebugging ();
-
- String s;
- GetOpt opt = new GetOpt (args, "p:rs:", true);
- for (int c; (c = opt.next ()) != -1; )
- {
- System.out.println ("c is " + (char)c);
- switch (c)
- {
- case 'p':
- s = opt.optarg ();
- ACE.DEBUG ("Option <p> selected with argument " + s);
- break;
- case 'r':
- ACE.DEBUG ("Option <r> selected");
- break;
- case 's':
- s = opt.optarg ();
- ACE.DEBUG ("Option <s> selected with argument " + s);
- break;
- default:
- ACE.DEBUG ("Usage: java tests.Misc.ParseArgsTest [-p arg1] [-r] [-s arg2]");
- break;
- }
- }
- }
-}
diff --git a/java/JACE/tests/Reactor/TimeValueTest.java b/java/JACE/tests/Reactor/TimeValueTest.java
deleted file mode 100644
index 559f6d15176..00000000000
--- a/java/JACE/tests/Reactor/TimeValueTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * ACE.Reactor
- *
- * = FILENAME
- * TimeValueTest.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.tests.Reactor;
-
-import JACE.OS.*;
-import JACE.ASX.*;
-
-public class TimeValueTest
-{
- public void ASSERT (boolean expression, int i)
- {
- if (!expression)
- ACE.ERROR ("ASSERT failed for " + i);
- }
-
- public void runTest ()
- {
- TimeValue tv1 = new TimeValue ();
- TimeValue tv2 = new TimeValue (2);
- TimeValue tv3 = new TimeValue (100);
- TimeValue tv4 = new TimeValue (1, 1000000000);
- TimeValue tv5 = new TimeValue (2);
- TimeValue tv6 = new TimeValue (1, -1000000000);
-
- this.ASSERT (tv1.equals (new TimeValue (0)), 1);
- this.ASSERT (tv2.lessThan (tv3), 2);
- this.ASSERT (tv2.lessThanEqual (tv2), 3);
- this.ASSERT (tv2.greaterThanEqual (tv4), 4);
- this.ASSERT (tv5.greaterThanEqual (tv6), 5);
- this.ASSERT (tv2.equals (new TimeValue (1, 1000000000)), 6);
- this.ASSERT (tv5.equals (tv4), 7);
- this.ASSERT (tv2.equals (tv4), 8);
- this.ASSERT (tv1.notEquals (tv2), 9);
- this.ASSERT (tv6.equals (tv1), 10);
- }
-
- public static void main (String [] args)
- {
- ACE.enableDebugging ();
-
- new TimeValueTest ().runTest ();
- }
-}
diff --git a/java/JACE/tests/Reactor/TimerQueueTest.java b/java/JACE/tests/Reactor/TimerQueueTest.java
deleted file mode 100644
index 93845ccb6ec..00000000000
--- a/java/JACE/tests/Reactor/TimerQueueTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Reactor
-//
-// = FILENAME
-// TimerQueueTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.Reactor;
-
-import JACE.OS.*;
-import JACE.ASX.*;
-import JACE.Reactor.*;
-
-public class TimerQueueTest implements EventHandler
-{
- public int handleTimeout (TimeValue tv, Object obj)
- {
- ACE.DEBUG ("handleTimeout: " + tv.toString () + " " + (String) obj);
- return 0;
- }
-
- public static void main (String args [])
- {
- ACE.enableDebugging ();
-
- TimerQueue tq = new TimerQueue (true);
- TimerQueueTest th1 = new TimerQueueTest ();
- int n = 5;
-
- ACE.enableDebugging ();
-
- try
- {
- if (args.length == 1)
- {
- n = Integer.parseInt (args[0]);
- }
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
-
- // Set a periodic timer
- int id = tq.scheduleTimer (th1,
- "periodic",
- new TimeValue (2),
- new TimeValue (3));
-
- int i;
- // Set a bunch of single timers
- for (i=1; i <= n; i++)
- {
- tq.scheduleTimer (th1,
- "A-timer-" + new Integer (i),
- new TimeValue (i*2));
- }
-
- TimerQueueTest th2 = new TimerQueueTest ();
- for (i=1; i <= n; i++)
- {
- tq.scheduleTimer (th2,
- "B-timer-" + new Integer (i),
- new TimeValue (i*3));
- }
- // Cancel all timers associated with this handler
- tq.cancelTimer (th2);
-
- try
- {
- Thread.sleep (30000);
- }
- catch (InterruptedException e)
- {
- }
- tq.cancelTimer (id);
- System.exit (0);
- }
-}
diff --git a/java/JACE/tests/SOCK_SAP/SOCKAcceptorTest.java b/java/JACE/tests/SOCK_SAP/SOCKAcceptorTest.java
deleted file mode 100644
index 3251030fe1c..00000000000
--- a/java/JACE/tests/SOCK_SAP/SOCKAcceptorTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.SOCK_SAP
-//
-// = FILENAME
-// SOCKAcceptorTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-
-class TestHandler extends Thread
-{
- public TestHandler (SOCKStream stream)
- {
- this.stream_ = stream;
- }
-
- public void run ()
- {
- int msgLen;
- System.out.println ("Waiting for messages...");
- try
- {
- while (true)
- {
- StringBuffer msg = new StringBuffer ();
- msgLen = this.stream_.recv (msg);
- if (msgLen == 0)
- break;
- ACE.DEBUG ("Received: " + msg);
- this.stream_.send ("Got it!");
- }
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("connection reset by peer");
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- finally
- {
- try
- {
- this.stream_.close ();
- }
- catch (IOException e)
- {
- }
- }
- }
- SOCKStream stream_;
-}
-
-public class SOCKAcceptorTest
-{
- void print_usage_and_die ()
- {
- ACE.DEBUG ("Usage: SOCKAcceptorTest [<port>]");
- System.exit (0);
- }
-
- public void init (int port)
- {
- try
- {
- SOCKAcceptor acceptor = new SOCKAcceptor (port);
- while (true)
- {
- SOCKStream stream = new SOCKStream ();
- acceptor.accept (stream);
- TestHandler handler = new TestHandler (stream);
- handler.start ();
- }
- }
- catch (IOException e)
- {
- }
- }
-
- public static void main (String [] args)
- {
- ACE.enableDebugging ();
-
- int port = ACE.DEFAULT_SERVER_PORT;
- SOCKAcceptorTest server = new SOCKAcceptorTest ();
- if (args.length == 1)
- {
- try
- {
- port = Integer.parseInt (args[0]);
- }
- catch (NumberFormatException e)
- {
- server.print_usage_and_die ();
- }
- }
- server.init (port);
- }
-}
diff --git a/java/JACE/tests/SOCK_SAP/SOCKConnectorTest.java b/java/JACE/tests/SOCK_SAP/SOCKConnectorTest.java
deleted file mode 100644
index e14b63936f5..00000000000
--- a/java/JACE/tests/SOCK_SAP/SOCKConnectorTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.SOCK_SAP
-//
-// = FILENAME
-// SOCKConnectorTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package JACE.tests.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-
-public class SOCKConnectorTest
-{
- static void print_usage_and_die ()
- {
- System.out.println ("Usage: SOCKConnectorTest <hostname> [<port>]");
- System.exit (0);
- }
-
- void processRequests (SOCKStream stream) throws IOException
- {
- // 1.0 JDK DataInputStream in = new DataInputStream (System.in);
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- String msg;
- int ack_len;
-
- while (true)
- {
- StringBuffer ack = new StringBuffer ();
- ACE.DEBUG ("Enter input: ");
- ACE.FLUSH ();
- msg = in.readLine ();
- if (msg == null)
- break;
- stream.send (msg);
- ACE.DEBUG ("Waiting for ack...");
- ack_len = stream.recv (ack);
- if (ack_len == 0)
- break;
- else
- ACE.DEBUG (ack.toString ());
- }
- }
-
- public void init (String host, int port)
- {
- SOCKStream stream = new SOCKStream ();
- SOCKConnector connector = new SOCKConnector ();
- try
- {
- connector.connect (stream,
- host,
- port);
- processRequests (stream);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- public static void main (String [] args)
- {
- ACE.enableDebugging ();
-
- int port = ACE.DEFAULT_SERVER_PORT;
- SOCKConnectorTest client = new SOCKConnectorTest ();
-
- // check arg count
- if (args.length == 0 || args.length > 2)
- print_usage_and_die();
-
- if (args.length == 2)
- {
- try
- {
- port = Integer.parseInt (args[1]);
- }
- catch (NumberFormatException e)
- {
- client.print_usage_and_die ();
- }
- }
- client.init (args[0], port);
-
-
- }
-}
-
diff --git a/java/JACE/tests/ServiceConfigurator/Main.java b/java/JACE/tests/ServiceConfigurator/Main.java
deleted file mode 100644
index 2b57d5ad429..00000000000
--- a/java/JACE/tests/ServiceConfigurator/Main.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package JACE.tests.ServiceConfigurator;
-
-import java.io.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.ServiceConfigurator.*;
-
-/**
- * Runs the service configurator, allowing the user to interact with it.
- */
-public class Main
-{
- public static void main (String args[])
- throws FileNotFoundException, IOException, ClassNotFoundException,
- IllegalAccessException, InstantiationException
- {
- ACE.enableDebugging ();
-
- if (ServiceConfig.open (args) < 0) {
- System.err.println ("Error opening ServiceConfig");
- return;
- }
-
- processCommands (args);
-
- // close everything down
- ServiceConfig.close ();
- }
-
- public static void report(String s) {
- System.out.println(s);
- }
-
- static InputStreamReader stdin = new InputStreamReader (System.in);
-
- public static void showMenu ()
- {
- report ("\n[C]lose all");
- report ("[S]uspend all");
- report ("[R]esume all");
- report ("[Re[l]oad all");
- report ("List [n]ames");
-
- report ("\n[Q]uit");
- System.out.print ("\nOption (CSRLNQ): ");
- }
-
- public static void processCommands (String [] args)
- throws FileNotFoundException, IOException, ClassNotFoundException,
- IllegalAccessException, InstantiationException
- {
- int ch = 0;
- Enumeration svcs;
-
- showMenu ();
-
- do {
-
- ch = stdin.read ();
-
- switch (ch)
- {
- case 'c':
- case 'C':
- ServiceConfig.close ();
- break;
- case 's':
- case 'S':
- svcs = ServiceConfig.serviceNames ();
- while (svcs.hasMoreElements ())
- ServiceConfig.suspend ((String)svcs.nextElement ());
- break;
- case 'r':
- case 'R':
- svcs = ServiceConfig.serviceNames ();
- while (svcs.hasMoreElements ())
- ServiceConfig.resume ((String)svcs.nextElement ());
- break;
- case 'l':
- case 'L':
- ServiceConfig.close ();
- svcs = ServiceConfig.serviceNames ();
- while (svcs.hasMoreElements ())
- ServiceConfig.remove ((String)svcs.nextElement ());
- ServiceConfig.open (args);
- break;
- case 'n':
- case 'N':
- report ("\nService names:\n");
- svcs = ServiceConfig.services ();
- while (svcs.hasMoreElements ()) {
- Service sv = (Service)svcs.nextElement ();
- report (sv.name () + " : " + sv.info ());
- }
- break;
- case 'q':
- case 'Q':
- report ("\nExiting...");
- return;
- case -1:
- case 10:
- case 13:
- continue;
- default:
- break;
- }
-
- showMenu ();
-
- } while (true);
- }
-
-}
diff --git a/java/JACE/tests/ServiceConfigurator/svc.conf b/java/JACE/tests/ServiceConfigurator/svc.conf
deleted file mode 100644
index 5c0c331ed94..00000000000
--- a/java/JACE/tests/ServiceConfigurator/svc.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-load TimeService JACE.netsvcs.Time.TSServerAcceptor ServiceObject "-d -p 30000"
-load LogService JACE.netsvcs.Logger.ServerLoggingAcceptor ServiceObject "-d -p 30001"
-load NameService JACE.netsvcs.Naming.NameAcceptor ServiceObject "-d -p 30002"
-load TokenService JACE.netsvcs.Token.TokenAcceptor ServiceObject "-d -p 30003"
diff --git a/java/JACE/tests/netsvcs/Logger/LoggerTest.java b/java/JACE/tests/netsvcs/Logger/LoggerTest.java
deleted file mode 100644
index ae835b07753..00000000000
--- a/java/JACE/tests/netsvcs/Logger/LoggerTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*************************************************
- *
- * = FILENAME
- * LoggerTest.java
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.tests.netsvcs.Logger;
-
-import JACE.SOCK_SAP.*;
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.netsvcs.Logger.*;
-
-/**
- *
- * This is a simple test log client very similar to the direct_logging
- * client of C++ ACE. The logging service should correctly receive
- * messages from both the C++ and Java version.
- *
- * @see JACE.netsvcs.Logger.ServerLoggingAcceptor
- */
-public class LoggerTest {
-
- /** Command line: <hostname> [<port>]
- *
- * Creates a "hello world" log message and sends it to the server logging
- * service.
- */
- public static void main(String args[])
- {
- if (args.length != 2) {
- System.err.println("Use: LoggerTest <host name> [<port>]");
- System.exit(0);
- }
-
- ACE.enableDebugging ();
-
- // Set the port
- int port = args.length > 1 ?
- (new Integer(args[1])).intValue() : ACE.DEFAULT_SERVER_PORT;
-
- SOCKStream cli_stream = new SOCKStream();
- INETAddr remote_addr;
- String host;
-
- // Try to find the host
- try {
-
- host = args[0];
-
- remote_addr = new INETAddr(port, host);
-
- } catch (UnknownHostException uhe) {
- ACE.ERROR("UnknownHostException " + uhe);
- return;
- }
-
- System.out.println("Connecting to " + host + " on port " + port);
-
- SOCKConnector con = new SOCKConnector();
-
- try {
-
- // Connect to the service
- con.connect(cli_stream, remote_addr);
-
- } catch (SocketException se) {
-
- ACE.ERROR("Socket Exception " + se);
- return;
-
- } catch (IOException ie) {
-
- ACE.ERROR("IOException " + ie);
- return;
- }
-
-
- // Send a message with priority 4, the current time,
- // and 0 for the process ID.
- LogRecord record = new LogRecord(4,
- System.currentTimeMillis(),
- 0);
-
- // Set the text of the message
- record.msgData("hello world");
-
- try {
-
- // Send it
- record.streamOutTo(cli_stream.socket().getOutputStream ());
-
- // Close the socket
- cli_stream.close();
-
- } catch (IOException ie) {
-
- ACE.ERROR("" + ie);
- return;
- }
- }
-};
-
-
-
-
-
-
-
-
-
-
diff --git a/java/JACE/tests/netsvcs/Naming/ClientTest.java b/java/JACE/tests/netsvcs/Naming/ClientTest.java
deleted file mode 100644
index f6af6f906ea..00000000000
--- a/java/JACE/tests/netsvcs/Naming/ClientTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package JACE.tests.netsvcs.Naming;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.SOCK_SAP.*;
-import JACE.netsvcs.Naming.*;
-
-/**
- * Simple test program for NameProxy and the naming service.
- *
- * Command line: (hostname) (port)
- */
-public class ClientTest
-{
- public static void print_usage_and_die ()
- {
- System.out.println ("Usage: ClientTest <hostname> [<port>]");
- System.exit (0);
- }
- public static void main (String [] args)
- throws UnknownHostException,
- SocketException,
- InstantiationException,
- IllegalAccessException,
- IOException
- {
- ACE.enableDebugging ();
-
- int port = ACE.DEFAULT_SERVER_PORT;
-
- if (args.length == 0 || args.length > 2)
- print_usage_and_die ();
-
- if (args.length == 2) {
- try
- {
- port = Integer.parseInt (args[1]);
- }
- catch (NumberFormatException e)
- {
- print_usage_and_die ();
- }
- }
-
- System.out.println("Trying to open port " + port + " on " + args[0]);
-
- NameProxy proxy = new NameProxy ();
-
- Connector c = new Connector ();
- c.open (args[0], port);
- c.connect (proxy);
-
- System.out.println("---- Beginning tests ----");
-
- try {
-
- System.out.println("Binding (five, six, seven): "
- + proxy.bind("five", "six", "seven"));
- System.out.println("Binding (filth, rat, eats): "
- + proxy.bind("filth", "rat", "eats"));
-
- Vector res = proxy.resolve("five");
-
- System.out.println("Resolve (five) : "
- + (String)res.elementAt(1) + " "
- + (String)res.elementAt(2));
-
- System.out.println("Binding (fish, words, him): "
- + proxy.bind("fish", "words", "him"));
-
- System.out.println("Unbind (five, six, seven): "
- + proxy.unbind("five"));
-
- res = proxy.resolve("five");
-
- System.out.println("Resolve (five) : "
- + (String)res.elementAt(1) + " "
- + (String)res.elementAt(2));
-
- System.out.println("Binding (fiction, us, you): "
- + proxy.bind("fiction", "us", "you"));
-
- System.out.println("\nGetting all records whose names begin with fi:\n");
- Vector res2 = proxy.listNameEntries("fi");
-
- Enumeration iter = res2.elements();
-
- while (iter.hasMoreElements()) {
- Vector res3 = (Vector)(iter.nextElement());
-
- System.out.println((String)res3.elementAt(0)
- + "\t" + (String)res3.elementAt(1)
- + "\t" + (String)res3.elementAt(2));
- }
-
- } catch (Exception e) {
- System.err.println ("" + e);
- e.printStackTrace ();
- } finally {
- proxy.close ();
- }
- }
-}
-
diff --git a/java/JACE/tests/netsvcs/Time/TSClient.java b/java/JACE/tests/netsvcs/Time/TSClient.java
deleted file mode 100644
index 7a8adf93f42..00000000000
--- a/java/JACE/tests/netsvcs/Time/TSClient.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package JACE.tests.netsvcs.Time;
-
-import JACE.netsvcs.Time.*;
-import JACE.OS.*;
-import JACE.Reactor.*;
-
-public class TSClient
-{
-
- // Will run until killed since the default is to run the timer
- // queue in its own thread.
- public static void main (String args[])
- {
- ACE.enableDebugging ();
-
- TSClerkProcessor cp = new TSClerkProcessor ();
-
- if (cp.init (args) != 0)
- return;
-
- ACE.DEBUG ("***************************");
- ACE.DEBUG ("Press enter to end the test");
- ACE.DEBUG ("***************************");
-
- try {
- System.in.read();
-
- cp.close ();
-
- } catch (Exception e) {
- ACE.ERROR (e);
- }
- }
-}
-
-
-
diff --git a/java/JACE/tests/netsvcs/Token/ProxyClientTest.java b/java/JACE/tests/netsvcs/Token/ProxyClientTest.java
deleted file mode 100644
index 1b2118b7f9e..00000000000
--- a/java/JACE/tests/netsvcs/Token/ProxyClientTest.java
+++ /dev/null
@@ -1,200 +0,0 @@
-package JACE.tests.netsvcs.Token;
-
-import java.net.*;
-import java.io.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-import JACE.Concurrency.*;
-import JACE.netsvcs.Token.*;
-
-public class ProxyClientTest
-{
- public static void report(String s) {
- System.out.println(s);
- }
-
- static InputStreamReader stdin = new InputStreamReader (System.in);
- static RemoteLock lock;
- static int requeuePosition = -1, timeout = -1;
-
- public static void showMenu ()
- {
- report ("\n[A]cquire");
- report ("Acquire [w]rite");
- report ("Acquire rea[d]");
- report ("[T]ry Acquire");
- report ("Try acquire wr[i]te");
- report ("Try acquire r[e]ad");
- report ("Re[n]ew");
- report ("[R]elease");
-
- report ("\n[Q]uit");
- System.out.print ("\nOption (AWDTIENRQ): ");
- }
-
- public static void processCommands () throws IOException
- {
- int ch = 0, result = -1;
-
- showMenu ();
- do {
-
- ch = stdin.read();
-
- try {
-
- switch (ch)
- {
- case 'a':
- case 'A':
- if (timeout >= 0) {
- TimeValue tv = TimeValue.relativeTimeOfDay (timeout, 0);
- result = lock.acquire (tv);
- } else
- result = lock.acquire ();
- break;
- case 'w':
- case 'W':
- if (timeout >= 0) {
- TimeValue tv = TimeValue.relativeTimeOfDay (timeout, 0);
- result = lock.acquireWrite (tv);
- } else
- result = lock.acquire ();
- break;
- case 'd':
- case 'D':
- if (timeout >= 0) {
- TimeValue tv = TimeValue.relativeTimeOfDay (timeout, 0);
- result = lock.acquireRead (tv);
- } else
- result = lock.acquire ();
- break;
- case 't':
- case 'T':
- result = lock.tryAcquire ();
- break;
- case 'i':
- case 'I':
- result = lock.tryAcquireWrite ();
- break;
- case 'e':
- case 'E':
- result = lock.tryAcquireRead ();
- break;
- case 'r':
- case 'R':
- result = lock.release ();
- break;
- case 'n':
- case 'N':
- if (timeout >= 0) {
- TimeValue tv = TimeValue.relativeTimeOfDay (timeout, 0);
- result = lock.renew (requeuePosition, tv);
- } else
- result = lock.renew (requeuePosition);
- break;
- case 'q':
- case 'Q':
- continue;
- case -1:
- case 10:
- case 13:
- // Ignore line feeds and carriage returns
- continue;
- default:
- report ("Unknown command: " + (char)ch + " (" + ch + ")\n");
- showMenu ();
- continue;
- }
-
- report ("\nResult: " + (result == lock.SUCCESS ? "Success" :
- "Failure"));
-
- } catch (TimeoutException e) {
- report ("\nRequest timed out");
- /*
- } catch (InterruptedException e) {
- report ("\nInterrupted while attemping operation");
- */
- } catch (LockException e) {
- report ("\nLock failure: " + e.getMessage ());
- }
-
- showMenu ();
-
- } while (ch != 'Q' && ch != 'q');
- }
-
- public static void printUsage ()
- {
- report ("Valid options:\n");
- report ("-h <host name> Specify token server host");
- report ("-p <port number> Port to connect to");
- report ("-t <time in sec> Relative timeout to use");
- report ("-l <lock type> 0 Mutex, 1 RWMutex");
- report ("-c <client ID> Specify ID (default is this machine name)");
- report ("-n <token name> Specify token name");
- report ("-q <requeue pos> Use this requeue position in renew");
- report ("-d Enable debugging");
- }
-
- public static void main (String args[]) throws IOException
- {
- GetOpt opt = new GetOpt (args, "h:p:t:l:c:n:q:d", true);
-
- String host = "localhost", tokenName = "token1";
- int port = ACE.DEFAULT_SERVER_PORT;
- int type = LockTypes.MUTEX, c;
- String clientID = InetAddress.getLocalHost().getHostName ();
-
- try {
- while ((c = opt.next ()) != -1) {
- switch (c)
- {
- case 'h':
- host = opt.optarg ();
- break;
- case 'p':
- port = Integer.parseInt (opt.optarg ());
- break;
- case 't':
- timeout = Integer.parseInt (opt.optarg ());
- break;
- case 'l':
- type = Integer.parseInt (opt.optarg ());
- break;
- case 'c':
- clientID = opt.optarg ();
- break;
- case 'n':
- tokenName = opt.optarg ();
- break;
- case 'q':
- requeuePosition = Integer.parseInt (opt.optarg ());
- break;
- case 'd':
- ACE.enableDebugging ();
- ACE.DEBUG ("Debugging is enabled");
- break;
- default:
- printUsage ();
- return;
- }
- }
- } catch (ArrayIndexOutOfBoundsException e) {
- printUsage ();
- return;
- }
-
- report ("Using : " + host + " on port " + port);
- report ("Token : " + tokenName);
- report ("Client ID: " + clientID);
-
- lock = new RemoteLock (type, 0, tokenName, clientID, host, port);
-
- processCommands ();
-
- lock.close ();
- }
-}
diff --git a/java/MSVJProjects.zip b/java/MSVJProjects.zip
deleted file mode 100644
index d5d7c95ebe5..00000000000
--- a/java/MSVJProjects.zip
+++ /dev/null
Binary files differ
diff --git a/java/README b/java/README
deleted file mode 100644
index 961a0d94c66..00000000000
--- a/java/README
+++ /dev/null
@@ -1,40 +0,0 @@
-Java ACE Version 1.5
-
-JACE is compatible with Java 1.1 and higher.
-
-Directory information:
-
-JACE/ All main, network service, and test source files
-
-classes/ Output directory for all the .class files. This may
- need to be added to your classpath.
-
-doc/ If you generate the javadoc documentation, it will be
- placed here. Requires javadoc 1.2 or later. I think
- 1.2.2 is the first version that correctly "inherits"
- comments.
-
-Notes on building Java ACE:
-
-UNIX:
-
-Use GNU make on the Makefile in the JACE subdirectory. That will
-build the main and network service sources. To build the tests,
-use the Makefile in the JACE/tests subdirectory.
-
-Generate the javadoc documentation with the command "make doc" with
-the Makefile in the JACE subdirectory.
-
-Windows:
-
-Visual J++ 6.0 solution and project files are provided. The main
-JACE solution file compiles all the source files (main, network
-service, and test). The solutions and projects are in
-MSVJProjects.zip.
-
-If you don't have VJ++ and are using the JDK from the command line,
-you can compile JACE with the batch files in makebat.zip in the JACE
-subdirectory.
-
-Generate the javadoc documentation with the makedoc.bat file (also
-in makebat.zip).
diff --git a/java/VERSION b/java/VERSION
deleted file mode 100644
index 8c004c2231b..00000000000
--- a/java/VERSION
+++ /dev/null
@@ -1,5 +0,0 @@
-This is Java ACE version 1.5.
-
-If you have any problems, please send email to Douglas C. Schmidt
-at (schmidt@cs.wustl.edu)
-
diff --git a/java/apps/NexusII/README b/java/apps/NexusII/README
deleted file mode 100644
index 60a630cef5a..00000000000
--- a/java/apps/NexusII/README
+++ /dev/null
@@ -1,58 +0,0 @@
-Nexus II - A chat application in Java with image support
---------------------------------------------------------
-
- Rajeev Bector (rajeev@cs.wustl.edu)
- Aravind Gopalan (aravind@cs.wustl.edu)
- Sumedh Mungee (sumedh@cs.wustl.edu)
-
-This is the README file. This distribution contains the NexusII
-server, which is a java application that can be started by a command
-similar to the one contained in the sample "start" shell-script.
-
-It also contains a "start.html" file, which serves as an example on how
-a client applet can be included within a .html file.
-
-A sample use of this, alongwith a simple users manual, can be found at
-http://cumbia.cs.wustl.edu/NexusII/
-
-Compiling (optional, all the class files are already present)
--------------------------------------------------------------
-
-All the source .java files, alongwith the makefile should be placed in
-the same directory, and can then be compiled using make.
-
-The client/server use the following packages:
-
- awtCommand: This package provides a GUI toolkit for the applet
- ACE: This is used both by the client/server for
- networking. ACE documentation can be found at:
- http://www.cs.wustl.edu/~schmidt/ACE.html
-
-Running
--------
-
-See the "start" and "start.html" files for examples on how to run the
-server and client applet, respectively. The "mywebaddress" variable is
-the "temporary" URL of the server, and the "mywebdir" variable is the
-temporary directory in which images are cached by the server. Make
-sure that both these exist and are world-readable. The "mywebdir"
-should be writable to by the server. The "mywebdir" and "mywebaddress"
-variables should thus point to the same location, of which mywebdir
-contains the path, and mywebaddress contains the URL.
-
-See "start" for an example on how to do this.
-
-If you only want to use an existing running server, all you need to
-know is the server host-name and port number, and you can directly run
-the start.html file via appletviewer.
-
-Notes
------
-
-1. You can compile the client and server using the same makefile.
-2. The client applet MUST reside on the same host as the server is running on.
-4. run the server using start script. Change the paramters in the start script,
- suitable to your configurations. The start script contains further
- information on this.
-
-
diff --git a/java/apps/NexusII/classes/ClientHandler.class b/java/apps/NexusII/classes/ClientHandler.class
deleted file mode 100644
index ecfff46e582..00000000000
--- a/java/apps/NexusII/classes/ClientHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/FrameHandler.class b/java/apps/NexusII/classes/FrameHandler.class
deleted file mode 100644
index c7582979625..00000000000
--- a/java/apps/NexusII/classes/FrameHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/ImageCanvas.class b/java/apps/NexusII/classes/ImageCanvas.class
deleted file mode 100644
index 5768eef7116..00000000000
--- a/java/apps/NexusII/classes/ImageCanvas.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/NexusClientApplet.class b/java/apps/NexusII/classes/NexusClientApplet.class
deleted file mode 100644
index f5c913215f6..00000000000
--- a/java/apps/NexusII/classes/NexusClientApplet.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/NexusIIserver.class b/java/apps/NexusII/classes/NexusIIserver.class
deleted file mode 100644
index 5cf554e2961..00000000000
--- a/java/apps/NexusII/classes/NexusIIserver.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/Room.class b/java/apps/NexusII/classes/Room.class
deleted file mode 100644
index 1dc6e2fab54..00000000000
--- a/java/apps/NexusII/classes/Room.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/RoomFactory.class b/java/apps/NexusII/classes/RoomFactory.class
deleted file mode 100644
index e7addff06a4..00000000000
--- a/java/apps/NexusII/classes/RoomFactory.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/RoomFrame.class b/java/apps/NexusII/classes/RoomFrame.class
deleted file mode 100644
index 76e27e3b97b..00000000000
--- a/java/apps/NexusII/classes/RoomFrame.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/RoomThread.class b/java/apps/NexusII/classes/RoomThread.class
deleted file mode 100644
index 219a0cb0bc9..00000000000
--- a/java/apps/NexusII/classes/RoomThread.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CApplet.class b/java/apps/NexusII/classes/awtCommand/CApplet.class
deleted file mode 100644
index 998ff08bcef..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CApplet.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CApplet.java b/java/apps/NexusII/classes/awtCommand/CApplet.java
deleted file mode 100644
index a8680d9abf3..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CApplet.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-import java.applet.*;
-
-public class CApplet extends Applet {
-
- protected Command gotFocusCommand = null,
- lostFocusCommand = null;
- protected Command mouseDownCommand = null,
- mouseDragCommand = null,
- mouseEnterCommand = null,
- mouseExitCommand = null,
- mouseMoveCommand = null,
- mouseUpCommand = null;
- protected Command keyUpCommand = null,
- keyDownCommand = null;
-
- /**
- * Constructs a new CApplet.
- */
- public CApplet() {
- super();
- }
-
- /*
- * event handling methods
- */
-
- /**
- * Called if the window gains focus. This results in a call to
- * the gotFocusCommand object with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the window loses focus. This results in a call to
- * the lostFocusCommand object with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse is down.
- * This results in a call to the mouseDownCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDown(Event evt, int x, int y) {
- if (mouseDownCommand != null)
- mouseDownCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is dragged.
- * This results in a call to the mouseDragCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDrag(Event evt, int x, int y) {
- if (mouseDragCommand != null)
- mouseDragCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse enters the window.
- * This results in a call to the mouseEnterCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseEnter(Event evt, int x, int y) {
- if (mouseEnterCommand != null)
- mouseEnterCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse moves inside the window.
- * This results in a call to the mouseMoveCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseMove(Event evt, int x, int y) {
- if (mouseExitCommand != null)
- mouseExitCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is up.
- * This results in a call to the mouseUpCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseUp(Event evt, int x, int y) {
- if (mouseUpCommand != null)
- mouseUpCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if a character is pressed.
- * This results in a call to the keyDownCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyDown(Event evt, int key) {
- if (keyDownCommand != null)
- keyDownCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
- /**
- * Called if a character is released.
- * This results in a call to the keyUpCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyUp(Event evt, int key) {
- if (keyUpCommand != null)
- keyUpCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
-
- /*
- * set...Command methods
- */
-
-
- /**
- * Sets the mouseDownCommand object.
- */
- public void setMouseDownCommand(Command c) {
- mouseDownCommand = c;
- }
-
- /**
- * Sets the moueDragCommand object.
- */
- public void setMouseDragCommand(Command c) {
- mouseDragCommand = c;
- }
-
- /**
- * Sets the mouseEnterCommand object.
- */
- public void setMouseEnterCommand(Command c) {
- mouseEnterCommand = c;
- }
-
- /**
- * Sets the mouseExitCommand object.
- */
- public void setMouseExitCommand(Command c) {
- mouseExitCommand = c;
- }
-
- /**
- * Sets the mouseMoveCommand object.
- */
- public void setMouseMoveCommand(Command c) {
- mouseMoveCommand = c;
- }
-
- /**
- * Sets the mouseUpCommand object.
- */
- public void setMouseUpCommand(Command c) {
- mouseUpCommand = c;
- }
-
- /**
- * Sets the keyDownCommand object.
- */
- public void setKeyDownCommand(Command c) {
- keyDownCommand = c;
- }
-
- /**
- * Sets the keyUpCommand object.
- */
- public void setKeyUpCommand(Command c) {
- keyUpCommand = c;
- }
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CButton.class b/java/apps/NexusII/classes/awtCommand/CButton.class
deleted file mode 100644
index b099c2dc4a6..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CButton.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CButton.java b/java/apps/NexusII/classes/awtCommand/CButton.java
deleted file mode 100644
index ff0f3385bad..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CButton.java
+++ /dev/null
@@ -1,41 +0,0 @@
-
-package awtCommand;
-
-import java.lang.*;
-import java.awt.*;
-
-public class CButton extends java.awt.Button {
- protected Command actionCommand = null;
-
- /**
- * Constructs a CButton.
- */
- public CButton() {
- super();
- }
-
- /**
- * Constructs a CButton with the given name.
- */
- public CButton(String name) {
- super(name);
- }
-
- /**
- * Sets the actionCommand object.
- */
- public void setActionCommand(Command action) {
- actionCommand = action;
- }
-
- /**
- * Called when the button is selected..
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the button's label.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CCanvas.class b/java/apps/NexusII/classes/awtCommand/CCanvas.class
deleted file mode 100644
index 48f63357daf..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CCanvas.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CCanvas.java b/java/apps/NexusII/classes/awtCommand/CCanvas.java
deleted file mode 100644
index 837b6f56f7a..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CCanvas.java
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CCanvas extends Canvas {
-
- protected Command gotFocusCommand = null,
- lostFocusCommand = null;
- protected Command mouseDownCommand = null,
- mouseDragCommand = null,
- mouseEnterCommand = null,
- mouseExitCommand = null,
- mouseMoveCommand = null,
- mouseUpCommand = null;
- protected Command keyUpCommand = null,
- keyDownCommand = null;
- protected Command actionCommand = null;
- protected Command scrollAbsoluteCommand = null,
- lineDownCommand = null,
- lineUpCommand = null,
- pageDownCommand = null,
- pageUpCommand = null;
- protected Command selectCommand = null,
- deselectCommand = null;
-
-
- /**
- * Constructs a new CCanvas.
- */
- public CCanvas() {
- super();
- }
-
- /**
- * Handles the event.
- * Calls methods for variousL events and passes
- * others to its superclass method.
- */
- public boolean handleEvent(Event evt) {
- switch (evt.id) {
- case Event.SCROLL_ABSOLUTE:
- return scrollAbsolute(evt, evt.arg);
- case Event.SCROLL_LINE_DOWN:
- return lineDown(evt, evt.arg);
- case Event.SCROLL_LINE_UP:
- return lineUp(evt, evt.arg);
- case Event.SCROLL_PAGE_DOWN:
- return pageDown(evt, evt.arg);
- case Event.SCROLL_PAGE_UP:
- return pageUp(evt, evt.arg);
- case Event.LIST_SELECT:
- return select(evt, evt.arg);
- case Event.LIST_DESELECT:
- return deselect(evt, evt.arg);
- default:
- return super.handleEvent(evt);
- }
- }
-
-
- /*
- * event handling methods
- */
-
- /**
- * Called if the window gains focus. This results in a call to
- * the gotFocusCommand object with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the window loses focus. This results in a call to
- * the lostFocusCommand object with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse is down.
- * This results in a call to the mouseDownCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDown(Event evt, int x, int y) {
- if (mouseDownCommand != null)
- mouseDownCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is dragged.
- * This results in a call to the mouseDragCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDrag(Event evt, int x, int y) {
- if (mouseDragCommand != null)
- mouseDragCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse enters the window.
- * This results in a call to the mouseEnterCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseEnter(Event evt, int x, int y) {
- if (mouseEnterCommand != null)
- mouseEnterCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse moves inside the window.
- * This results in a call to the mouseMoveCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseMove(Event evt, int x, int y) {
- if (mouseExitCommand != null)
- mouseExitCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is up.
- * This results in a call to the mouseUpCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseUp(Event evt, int x, int y) {
- if (mouseUpCommand != null)
- mouseUpCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if a character is pressed.
- * This results in a call to the keyDownCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyDown(Event evt, int key) {
- if (keyDownCommand != null)
- keyDownCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
- /**
- * Called if a character is released.
- * This results in a call to the keyUpCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyUp(Event evt, int key) {
- if (keyUpCommand != null)
- keyUpCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
- /**
- * Called when an ACTION_EVENT is generated.
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the event's arg.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is dragged.
- * This results in a call to the scrollAbsoluteCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean scrollAbsolute(Event evt, Object what) {
- if (scrollAbsoluteCommand != null)
- scrollAbsoluteCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented down.
- * This results in a call to the lineDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineDown(Event evt, Object what) {
- if (lineDownCommand != null)
- lineDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented up.
- * This results in a call to the lineUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineUp(Event evt, Object what) {
- if (lineUpCommand != null)
- lineUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages up.
- * This results in a call to the pageUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageUp(Event evt, Object what) {
- if (pageUpCommand != null)
- pageUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages down.
- * This results in a call to the pageDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageDown(Event evt, Object what) {
- if (pageDownCommand != null)
- pageDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse selects an item in a List.
- * This results in a call to the selectCommand object
- * with <code>what</code> set to the selected index.
- */
- public boolean select(Event evt, Object what) {
- if (selectCommand != null)
- selectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /**
- * Called if the mouse deselects an item in a List.
- * This results in a call to the deselectCommand object
- * with <code>what</code> set to the deselected index.
- */
- public boolean deselect(Event evt, Object what) {
- if (deselectCommand != null)
- deselectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /*
- * set...Command methods
- */
-
-
-
- /**
- * Sets the mouseDownCommand object.
- */
- public void setMouseDownCommand(Command c) {
- mouseDownCommand = c;
- }
-
- /**
- * Sets the moueDragCommand object.
- */
- public void setMouseDragCommand(Command c) {
- mouseDragCommand = c;
- }
-
- /**
- * Sets the mouseEnterCommand object.
- */
- public void setMouseEnterCommand(Command c) {
- mouseEnterCommand = c;
- }
-
- /**
- * Sets the mouseExitCommand object.
- */
- public void setMouseExitCommand(Command c) {
- mouseExitCommand = c;
- }
-
- /**
- * Sets the mouseMoveCommand object.
- */
- public void setMouseMoveCommand(Command c) {
- mouseMoveCommand = c;
- }
-
- /**
- * Sets the mouseUpCommand object.
- */
- public void setMouseUpCommand(Command c) {
- mouseUpCommand = c;
- }
-
- /**
- * Sets the keyDownCommand object.
- */
- public void setKeyDownCommand(Command c) {
- keyDownCommand = c;
- }
-
- /**
- * Sets the keyUpCommand object.
- */
- public void setKeyUpCommand(Command c) {
- keyUpCommand = c;
- }
-
- /**
- * Sets the actionCommand object.
- */
- public void setActionCommand(Command action) {
- actionCommand = action;
- }
-
- /**
- * Sets the scrollAbsoluteCommand.
- */
- public void setScrollAbsoluteCommand(Command c) {
- scrollAbsoluteCommand = c;
- }
-
- /**
- * Sets the lineUpCommand.
- */
- public void setLineUpCommand(Command c) {
- lineUpCommand = c;
- }
-
- /**
- * Sets the lineDownCommand.
- */
- public void setLineDownCommand(Command c) {
- lineDownCommand = c;
- }
-
- /**
- * Sets the pageUpCommand.
- */
- public void setPageUpCommand(Command c) {
- pageUpCommand = c;
- }
-
- /**
- * Sets the pageDownCommand.
- */
- public void setPageDownCommand(Command c) {
- pageDownCommand = c;
- }
-
- /**
- * Sets the selectCommand.
- */
- public void setSelectCommand(Command select) {
- selectCommand = select;
- }
-
- /**
- * Sets the deselectCommand.
- */
- public void setDeselectCommand(Command deselect) {
- deselectCommand = deselect;
- }
-
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CFrame.class b/java/apps/NexusII/classes/awtCommand/CFrame.class
deleted file mode 100644
index 27f87ab82c8..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CFrame.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CFrame.java b/java/apps/NexusII/classes/awtCommand/CFrame.java
deleted file mode 100644
index f63d3ce8b9a..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CFrame.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CFrame extends Frame {
-
- protected Command destroyCommand = null,
- deiconifyCommand = null,
- iconifyCommand = null,
- movedCommand = null;
- protected Command gotFocusCommand = null,
- lostFocusCommand = null;
- protected Command mouseDownCommand = null,
- mouseDragCommand = null,
- mouseEnterCommand = null,
- mouseExitCommand = null,
- mouseMoveCommand = null,
- mouseUpCommand = null;
- protected Command keyUpCommand = null,
- keyDownCommand = null;
- protected Command actionCommand = null;
- protected Command scrollAbsoluteCommand = null,
- lineDownCommand = null,
- lineUpCommand = null,
- pageDownCommand = null,
- pageUpCommand = null;
- protected Command selectCommand = null,
- deselectCommand = null;
-
- /**
- * Constructs a new, initially invisible CFrame.
- */
- public CFrame() {
- super();
- }
-
- /**
- * Constructs a new, initially invisible CFrame with the
- * specified title.
- */
- public CFrame(String title) {
- super(title);
- }
-
- /**
- * Handles the event
- */
- public boolean handleEvent(Event evt) {
- switch (evt.id) {
- case Event.WINDOW_DESTROY:
- return windowDestroy(evt);
- case Event.WINDOW_DEICONIFY:
- return windowDeiconify(evt);
- case Event.WINDOW_ICONIFY:
- return windowIconify(evt);
- case Event.WINDOW_MOVED:
- return windowMoved(evt);
- case Event.SCROLL_ABSOLUTE:
- return scrollAbsolute(evt, evt.arg);
- case Event.SCROLL_LINE_DOWN:
- return lineDown(evt, evt.arg);
- case Event.SCROLL_LINE_UP:
- return lineUp(evt, evt.arg);
- case Event.SCROLL_PAGE_DOWN:
- return pageDown(evt, evt.arg);
- case Event.SCROLL_PAGE_UP:
- return pageUp(evt, evt.arg);
- case Event.LIST_SELECT:
- return select(evt, evt.arg);
- case Event.LIST_DESELECT:
- return deselect(evt, evt.arg);
- default:
- return super.handleEvent(evt);
- }
- }
-
- /*
- * event handling methods
- */
-
- /**
- * Called if the dialog's window is destroyed. This results in a call to
- * the destroyCommand object with <code>what</code> set to null
- */
- public boolean windowDestroy(Event evt) {
- if (destroyCommand != null)
- destroyCommand.execute(this, evt, null);
- return false;
- }
-
- /**
- * Called if the dialog's window is deiconified. This results in a call to
- * the deiconifyCommand object with <code>what</code> set to null
- */
- public boolean windowDeiconify(Event evt) {
- if (deiconifyCommand != null)
- deiconifyCommand.execute(this, evt, null);
- return false;
- }
-
- /**
- * Called if the dialog is iconified. This results in a call to
- * the iconifyCommand object with <code>what</code> set to null
- */
- public boolean windowIconify(Event evt) {
- if (iconifyCommand != null)
- iconifyCommand.execute(this, evt, null);
- return false;
- }
-
- /**
- * Called if the dialog's window is moved. This results in a call to
- * the movedCommand object with <code>what</code> set to Point(x, y)
- */
- public boolean windowMoved(Event evt) {
- if (movedCommand != null)
- movedCommand.execute(this, evt, new Point(evt.x, evt.y));
- return false;
- }
-
- /*
- * I don't know where what objects this next set should belong
- * to. Putting them at the top is ok for now
- */
-
- /**
- * Called if the window gains focus. This results in a call to
- * the gotFocusCommand object with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the window loses focus. This results in a call to
- * the lostFocusCommand object with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse is down.
- * This results in a call to the mouseDownCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDown(Event evt, int x, int y) {
- if (mouseDownCommand != null)
- mouseDownCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is dragged.
- * This results in a call to the mouseDragCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDrag(Event evt, int x, int y) {
- if (mouseDragCommand != null)
- mouseDragCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse enters the window.
- * This results in a call to the mouseEnterCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseEnter(Event evt, int x, int y) {
- if (mouseEnterCommand != null)
- mouseEnterCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse moves inside the window.
- * This results in a call to the mouseMoveCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseMove(Event evt, int x, int y) {
- if (mouseExitCommand != null)
- mouseExitCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is up.
- * This results in a call to the mouseUpCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseUp(Event evt, int x, int y) {
- if (mouseUpCommand != null)
- mouseUpCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if a character is pressed.
- * This results in a call to the keyDownCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyDown(Event evt, int key) {
- if (keyDownCommand != null)
- keyDownCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
- /**
- * Called if a character is released.
- * This results in a call to the keyUpCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyUp(Event evt, int key) {
- if (keyUpCommand != null)
- keyUpCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
-
- /**
- * Called when an ACTION_EVENT is generated.
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the event's arg.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is dragged.
- * This results in a call to the scrollAbsoluteCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean scrollAbsolute(Event evt, Object what) {
- if (scrollAbsoluteCommand != null)
- scrollAbsoluteCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented down.
- * This results in a call to the lineDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineDown(Event evt, Object what) {
- if (lineDownCommand != null)
- lineDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented up.
- * This results in a call to the lineUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineUp(Event evt, Object what) {
- if (lineUpCommand != null)
- lineUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages up.
- * This results in a call to the pageUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageUp(Event evt, Object what) {
- if (pageUpCommand != null)
- pageUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages down.
- * This results in a call to the pageDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageDown(Event evt, Object what) {
- if (pageDownCommand != null)
- pageDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse selects an item in a List.
- * This results in a call to the selectCommand object
- * with <code>what</code> set to the selected index.
- */
- public boolean select(Event evt, Object what) {
- if (selectCommand != null)
- selectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /**
- * Called if the mouse deselects an item in a List.
- * This results in a call to the deselectCommand object
- * with <code>what</code> set to the deselected index.
- */
- public boolean deselect(Event evt, Object what) {
- if (deselectCommand != null)
- deselectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /*
- * set...Command methods
- */
-
-
- /**
- * Sets the destroyCommand object.
- */
- public void setDestroyCommand(Command c) {
- destroyCommand = c;
- }
-
- /**
- * Sets the deiconifyCommand object.
- */
- public void setDeiconifyCommand(Command c) {
- deiconifyCommand = c;
- }
-
- /**
- * Sets the iconifyCommand object.
- */
- public void setIconifyCommand(Command c) {
- iconifyCommand = c;
- }
-
- /**
- * Sets the movedCommand object.
- */
- public void setMovedCommand(Command c) {
- movedCommand = c;
- }
-
- /**
- * Sets the mouseDownCommand object.
- */
- public void setMouseDownCommand(Command c) {
- mouseDownCommand = c;
- }
-
- /**
- * Sets the moueDragCommand object.
- */
- public void setMouseDragCommand(Command c) {
- mouseDragCommand = c;
- }
-
- /**
- * Sets the mouseEnterCommand object.
- */
- public void setMouseEnterCommand(Command c) {
- mouseEnterCommand = c;
- }
-
- /**
- * Sets the mouseExitCommand object.
- */
- public void setMouseExitCommand(Command c) {
- mouseExitCommand = c;
- }
-
- /**
- * Sets the mouseMoveCommand object.
- */
- public void setMouseMoveCommand(Command c) {
- mouseMoveCommand = c;
- }
-
- /**
- * Sets the mouseUpCommand object.
- */
- public void setMouseUpCommand(Command c) {
- mouseUpCommand = c;
- }
-
- /**
- * Sets the keyDownCommand object.
- */
- public void setKeyDownCommand(Command c) {
- keyDownCommand = c;
- }
-
- /**
- * Sets the keyUpCommand object.
- */
- public void setKeyUpCommand(Command c) {
- keyUpCommand = c;
- }
-
- /**
- * Sets the actionCommand object.
- */
- public void setActionCommand(Command action) {
- actionCommand = action;
- }
-
- /**
- * Sets the scrollAbsoluteCommand.
- */
- public void setScrollAbsoluteCommand(Command c) {
- scrollAbsoluteCommand = c;
- }
-
- /**
- * Sets the lineUpCommand.
- */
- public void setLineUpCommand(Command c) {
- lineUpCommand = c;
- }
-
- /**
- * Sets the lineDownCommand.
- */
- public void setLineDownCommand(Command c) {
- lineDownCommand = c;
- }
-
- /**
- * Sets the pageUpCommand.
- */
- public void setPageUpCommand(Command c) {
- pageUpCommand = c;
- }
-
- /**
- * Sets the pageDownCommand.
- */
- public void setPageDownCommand(Command c) {
- pageDownCommand = c;
- }
-
- /**
- * Sets the selectCommand.
- */
- public void setSelectCommand(Command select) {
- selectCommand = select;
- }
-
- public void setGotFocusCommand(Command c) {
- gotFocusCommand = c ;
- }
- /**
- * Sets the deselectCommand.
- */
- public void setDeselectCommand(Command deselect) {
- deselectCommand = deselect;
- }
-
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java/apps/NexusII/classes/awtCommand/CList.class b/java/apps/NexusII/classes/awtCommand/CList.class
deleted file mode 100644
index 1de89790826..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CList.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CList.java b/java/apps/NexusII/classes/awtCommand/CList.java
deleted file mode 100644
index 110e6a01db2..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CList.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CList extends List {
- protected Command selectCommand = null;
- protected Command deselectCommand = null;
- protected Command actionCommand = null;
-
- /**
- * Handles the event
- */
- public boolean handleEvent(Event evt) {
- switch (evt.id) {
- case Event.LIST_SELECT:
- return select(evt, evt.arg);
- case Event.LIST_DESELECT:
- return deselect(evt, evt.arg);
- default:
- return super.handleEvent(evt);
- }
- }
-
- /*
- * event handling methods
- */
-
-
- /**
- * Called if the Enter key is pressed.
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the selected item.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse selects an item.
- * This results in a call to the selectCommand object
- * with <code>what</code> set to the selected index.
- */
- public boolean select(Event evt, Object what) {
- if (selectCommand != null)
- selectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /**
- * Called if the mouse deselects an item.
- * This results in a call to the deselectCommand object
- * with <code>what</code> set to the deselected index.
- */
- public boolean deselect(Event evt, Object what) {
- if (deselectCommand != null)
- deselectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /**
- * Sets the actionCommand.
- */
- public void setActionCommand(Command action) {
- actionCommand = action;
- }
-
- /**
- * Sets the selectCommand.
- */
- public void setSelectCommand(Command select) {
- selectCommand = select;
- }
-
- /**
- * Sets the deselectCommand.
- */
- public void setDeselectCommand(Command deselect) {
- deselectCommand = deselect;
- }
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CPanel.class b/java/apps/NexusII/classes/awtCommand/CPanel.class
deleted file mode 100644
index a1b72ca7cb7..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CPanel.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CPanel.java b/java/apps/NexusII/classes/awtCommand/CPanel.java
deleted file mode 100644
index 1c8d39f8537..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CPanel.java
+++ /dev/null
@@ -1,381 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CPanel extends Panel {
-
- protected Command gotFocusCommand = null,
- lostFocusCommand = null;
- protected Command mouseDownCommand = null,
- mouseDragCommand = null,
- mouseEnterCommand = null,
- mouseExitCommand = null,
- mouseMoveCommand = null,
- mouseUpCommand = null;
- protected Command keyUpCommand = null,
- keyDownCommand = null;
- protected Command actionCommand = null;
- protected Command scrollAbsoluteCommand = null,
- lineDownCommand = null,
- lineUpCommand = null,
- pageDownCommand = null,
- pageUpCommand = null;
- protected Command selectCommand = null,
- deselectCommand = null;
-
- /**
- * Constructs a new CPanel.
- */
- public CPanel() {
- super();
- }
-
-
- /**
- * Handles the event.
- * Calls methods for variousL events and passes
- * others to its superclass method.
- */
- public boolean handleEvent(Event evt) {
- switch (evt.id) {
- case Event.SCROLL_ABSOLUTE:
- return scrollAbsolute(evt, evt.arg);
- case Event.SCROLL_LINE_DOWN:
- return lineDown(evt, evt.arg);
- case Event.SCROLL_LINE_UP:
- return lineUp(evt, evt.arg);
- case Event.SCROLL_PAGE_DOWN:
- return pageDown(evt, evt.arg);
- case Event.SCROLL_PAGE_UP:
- return pageUp(evt, evt.arg);
- case Event.LIST_SELECT:
- return select(evt, evt.arg);
- case Event.LIST_DESELECT:
- return deselect(evt, evt.arg);
- default:
- return super.handleEvent(evt);
- }
- }
-
- /*
- * event handling methods
- */
-
- /**
- * Called if the window gains focus. This results in a call to
- * the gotFocusCommand object with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the window loses focus. This results in a call to
- * the lostFocusCommand object with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse is down.
- * This results in a call to the mouseDownCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDown(Event evt, int x, int y) {
- if (mouseDownCommand != null)
- mouseDownCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is dragged.
- * This results in a call to the mouseDragCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseDrag(Event evt, int x, int y) {
- if (mouseDragCommand != null)
- mouseDragCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse enters the window.
- * This results in a call to the mouseEnterCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseEnter(Event evt, int x, int y) {
- if (mouseEnterCommand != null)
- mouseEnterCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse moves inside the window.
- * This results in a call to the mouseMoveCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseMove(Event evt, int x, int y) {
- if (mouseExitCommand != null)
- mouseExitCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if the mouse is up.
- * This results in a call to the mouseUpCommand object with
- * <code>what</code> set to Point(x, y)
- */
- public boolean mouseUp(Event evt, int x, int y) {
- if (mouseUpCommand != null)
- mouseUpCommand.execute(this, evt, new Point(x, y));
- return false;
- }
-
- /**
- * Called if a character is pressed.
- * This results in a call to the keyDownCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyDown(Event evt, int key) {
- if (keyDownCommand != null)
- keyDownCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
- /**
- * Called if a character is released.
- * This results in a call to the keyUpCommand object with
- * <code>what</code> set to Integer(key).
- */
- public boolean keyUp(Event evt, int key) {
- if (keyUpCommand != null)
- keyUpCommand.execute(this, evt, new Integer(key));
- return false;
- }
-
-
- /**
- * Called when an ACTION_EVENT is generated.
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the event's arg.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is dragged.
- * This results in a call to the scrollAbsoluteCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean scrollAbsolute(Event evt, Object what) {
- if (scrollAbsoluteCommand != null)
- scrollAbsoluteCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented down.
- * This results in a call to the lineDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineDown(Event evt, Object what) {
- if (lineDownCommand != null)
- lineDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar is incremented up.
- * This results in a call to the lineUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean lineUp(Event evt, Object what) {
- if (lineUpCommand != null)
- lineUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages up.
- * This results in a call to the pageUpCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageUp(Event evt, Object what) {
- if (pageUpCommand != null)
- pageUpCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when a scrollbar pages down.
- * This results in a call to the pageDownCommand object
- * with <code>what</code> set to the slider location value.
- */
- public boolean pageDown(Event evt, Object what) {
- if (pageDownCommand != null)
- pageDownCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called if the mouse selects an item in a List.
- * This results in a call to the selectCommand object
- * with <code>what</code> set to the selected index.
- */
- public boolean select(Event evt, Object what) {
- if (selectCommand != null)
- selectCommand.execute(this, evt, what);
- return false;
- }
-
-
- /**
- * Called if the mouse deselects an item in a List.
- * This results in a call to the deselectCommand object
- * with <code>what</code> set to the deselected index.
- */
- public boolean deselect(Event evt, Object what) {
- if (deselectCommand != null)
- deselectCommand.execute(this, evt, what);
- return false;
- }
-
- /*
- * set...Command methods
- */
-
-
-
- /**
- * Sets the mouseDownCommand object.
- */
- public void setMouseDownCommand(Command c) {
- mouseDownCommand = c;
- }
-
- /**
- * Sets the moueDragCommand object.
- */
- public void setMouseDragCommand(Command c) {
- mouseDragCommand = c;
- }
-
- /**
- * Sets the mouseEnterCommand object.
- */
- public void setMouseEnterCommand(Command c) {
- mouseEnterCommand = c;
- }
-
- /**
- * Sets the mouseExitCommand object.
- */
- public void setMouseExitCommand(Command c) {
- mouseExitCommand = c;
- }
-
- /**
- * Sets the mouseMoveCommand object.
- */
- public void setMouseMoveCommand(Command c) {
- mouseMoveCommand = c;
- }
-
- /**
- * Sets the mouseUpCommand object.
- */
- public void setMouseUpCommand(Command c) {
- mouseUpCommand = c;
- }
-
- /**
- * Sets the keyDownCommand object.
- */
- public void setKeyDownCommand(Command c) {
- keyDownCommand = c;
- }
-
- /**
- * Sets the keyUpCommand object.
- */
- public void setKeyUpCommand(Command c) {
- keyUpCommand = c;
- }
-
-
- /**
- * Sets the actionCommand object.
- */
- public void setActionCommand(Command action) {
- actionCommand = action;
- }
-
- /**
- * Sets the scrollAbsoluteCommand.
- */
- public void setScrollAbsoluteCommand(Command c) {
- scrollAbsoluteCommand = c;
- }
-
- /**
- * Sets the lineUpCommand.
- */
- public void setLineUpCommand(Command c) {
- lineUpCommand = c;
- }
-
- /**
- * Sets the lineDownCommand.
- */
- public void setLineDownCommand(Command c) {
- lineDownCommand = c;
- }
-
- /**
- * Sets the pageUpCommand.
- */
- public void setPageUpCommand(Command c) {
- pageUpCommand = c;
- }
-
- /**
- * Sets the pageDownCommand.
- */
- public void setPageDownCommand(Command c) {
- pageDownCommand = c;
- }
-
- /**
- * Sets the selectCommand.
- */
- public void setSelectCommand(Command select) {
- selectCommand = select;
- }
-
- /**
- * Sets the deselectCommand.
- */
- public void setDeselectCommand(Command deselect) {
- deselectCommand = deselect;
- }
-
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CTextArea.class b/java/apps/NexusII/classes/awtCommand/CTextArea.class
deleted file mode 100644
index 307cbf9e01c..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CTextArea.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CTextArea.java b/java/apps/NexusII/classes/awtCommand/CTextArea.java
deleted file mode 100644
index eacaf526929..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CTextArea.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CTextArea extends TextArea {
-
- protected Command gotFocusCommand = null,
- lostFocusCommand = null;
-
- /**
- * Constructs a new TextArea.
- */
- public CTextArea() {
- super();
- }
-
- /**
- * Constructs a new TextArea with the specified number of rows and columns.
- * @param rows the number of rows
- * @param cols the number of columns
- */
- public CTextArea(int rows, int cols) {
- super(rows, cols);
- }
-
- /**
- * Constructs a new TextArea with the specified text displayed.
- * @param text the text to be displayed
- */
- public CTextArea(String text) {
- super(text);
- }
-
- /**
- * Constructs a new TextArea with the specified text and the
- * specified number of rows
- * and columns.
- * @param text the text to be displayed
- * @param rows the number of rows
- * @param cols the number of cols
- */
- public CTextArea(String text, int rows, int cols) {
- super(text, rows, cols);
- }
-
-
- /**
- * Called when the text area gains the focus.
- * This results in a call to the gotFocusCommand object
- * with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when the text area loses the focus.
- * This results in a call to the lostFocusCommand object
- * with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Sets the gotFocusCommand object.
- */
- public void setGotFocusCommand(Command c) {
- gotFocusCommand = c;
- }
-
- /**
- * Sets the lostFocusCommand object.
- */
- public void setLostFocusCommand(Command c) {
- lostFocusCommand = c;
- }
-}
diff --git a/java/apps/NexusII/classes/awtCommand/CTextField.class b/java/apps/NexusII/classes/awtCommand/CTextField.class
deleted file mode 100644
index 9e8e8bea709..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CTextField.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/CTextField.java b/java/apps/NexusII/classes/awtCommand/CTextField.java
deleted file mode 100644
index 146f13206e5..00000000000
--- a/java/apps/NexusII/classes/awtCommand/CTextField.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-package awtCommand;
-
-import java.awt.*;
-
-public class CTextField extends TextField {
-
- protected Command actionCommand = null,
- gotFocusCommand = null,
- lostFocusCommand = null;
-
- /**
- * Constructs a new CTextField.
- */
- public CTextField() {
- super();
- }
-
- /**
- * Constructs a new CTextField initialized with the specified columns.
- * @param cols the number of columns
- */
- public CTextField(int cols) {
- super(cols);
- }
-
- /**
- * Constructs a new CTextField initialized with the specified text.
- * @param text the text to be displayed
- */
- public CTextField(String text) {
- super(text);
- }
-
-
- /**
- * Constructs a new CTextField initialized with the specified text and columns.
- * @param text the text to be displayed
- * @param cols the number of columns
- */
- public CTextField(String text, int cols) {
- super(text, cols);
- }
-
-
- /**
- * Called when Enter is pressed in the text field.
- * This results in a call to the actionCommand object
- * with <code>what</code> set to the text contents.
- */
- public boolean action(Event evt, Object what) {
- if (actionCommand != null)
- actionCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when the text field gains the focus.
- * This results in a call to the gotFocusCommand object
- * with <code>what</code> set to null.
- */
- public boolean gotFocus(Event evt, Object what) {
- if (gotFocusCommand != null)
- gotFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Called when the text field loses the focus.
- * This results in a call to the lostFocusCommand object
- * with <code>what</code> set to null.
- */
- public boolean lostFocus(Event evt, Object what) {
- if (lostFocusCommand != null)
- lostFocusCommand.execute(this, evt, what);
- return false;
- }
-
- /**
- * Sets the actionCommand object.
- */
- public void setActionCommand(Command c) {
- actionCommand = c;
- }
-
-
- /**
- * Sets the gotFocusCommand object.
- */
- public void setGotFocusCommand(Command c) {
- gotFocusCommand = c;
- }
-
- /**
- * Sets the lostFocusCommand object.
- */
- public void setLostFocusCommand(Command c) {
- lostFocusCommand = c;
- }
-}
diff --git a/java/apps/NexusII/classes/awtCommand/Command.class b/java/apps/NexusII/classes/awtCommand/Command.class
deleted file mode 100644
index 6b3c12c24f7..00000000000
--- a/java/apps/NexusII/classes/awtCommand/Command.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/awtCommand/Command.java b/java/apps/NexusII/classes/awtCommand/Command.java
deleted file mode 100644
index 373c7a363cf..00000000000
--- a/java/apps/NexusII/classes/awtCommand/Command.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 1996 Jan Newmarch, University of Canberra.
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The author
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- */
-
-
-
-package awtCommand;
-
-import java.awt.*;
-
-public interface Command {
-
- /**
- * Executes application logic.
- * Called by events occurring in associated objects
- */
- public abstract void execute(Object target, Event evt, Object what);
-}
diff --git a/java/apps/NexusII/classes/commandHandler.class b/java/apps/NexusII/classes/commandHandler.class
deleted file mode 100644
index ce09bf08a09..00000000000
--- a/java/apps/NexusII/classes/commandHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/commandParser.class b/java/apps/NexusII/classes/commandParser.class
deleted file mode 100644
index 19b91f654ff..00000000000
--- a/java/apps/NexusII/classes/commandParser.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/connectionHandler.class b/java/apps/NexusII/classes/connectionHandler.class
deleted file mode 100644
index b91e9259402..00000000000
--- a/java/apps/NexusII/classes/connectionHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/joinHandler.class b/java/apps/NexusII/classes/joinHandler.class
deleted file mode 100644
index 82dc4cd27b3..00000000000
--- a/java/apps/NexusII/classes/joinHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/roomHandler.class b/java/apps/NexusII/classes/roomHandler.class
deleted file mode 100644
index f952c389176..00000000000
--- a/java/apps/NexusII/classes/roomHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/classes/textHandler.class b/java/apps/NexusII/classes/textHandler.class
deleted file mode 100644
index d5ce3bf1d5e..00000000000
--- a/java/apps/NexusII/classes/textHandler.class
+++ /dev/null
Binary files differ
diff --git a/java/apps/NexusII/src/Consumer.java b/java/apps/NexusII/src/Consumer.java
deleted file mode 100644
index 84df9b3a3ae..00000000000
--- a/java/apps/NexusII/src/Consumer.java
+++ /dev/null
@@ -1,74 +0,0 @@
-
-// This class encapsulates a Consumer. The consumer dq's from the queue
-// Supports both a timed and blocking consumer.
-// Each instance of this class creates a different thread of control.
-// On timeout, the producer returns.
-// The producer tries to dq "iteration" number of times, unless it times out
-
-//package NexusII.util ;
-
-public class Consumer extends Thread
-{
-public static final int DEFAULT_ITERATIONS = 1 ;
-public Consumer(MT_Bounded_Queue queue)
- {
- this.queue_ = queue ;
- this.iterations_ = new Integer(DEFAULT_ITERATIONS);
- this.time_out_ = -1 ;
- }
-
-public Consumer(MT_Bounded_Queue queue, String name)
- {
- super(name);
- this.queue_ = queue ;
- this.iterations_ = new Integer(DEFAULT_ITERATIONS);
- this.time_out_ = -1 ;
- }
-
-
-public Consumer(MT_Bounded_Queue queue, String name, Integer iterations)
- {
- super(name);
- this.queue_ = queue ;
- this.iterations_ = iterations ;
- this.time_out_ = -1 ;
- }
-
-
-public Consumer(MT_Bounded_Queue queue, String name, Integer iterations, long msec_timeout)
- {
- super(name);
- this.queue_ = queue ;
- this.iterations_ = iterations ;
- this.time_out_ = msec_timeout ;
- }
-
-
-
-public void run()
- {
- for(int i=0;i<iterations_.intValue();i++)
- {
- if(time_out_ < 0)
- System.out.println(getName() + ": dequeued " + queue_.dq());
- else
- {
- Object err = queue_.dq(time_out_);
- if(err == null)
- {
- System.out.println(getName() + ": Timedout\n");
- return ;
- }
-
- else
- System.out.println(getName() + ": dequeued " + err);
- }
- }
- }
-
-
-protected MT_Bounded_Queue queue_ ;
-private Integer iterations_ ;
-private long time_out_ ;
-}
-
diff --git a/java/apps/NexusII/src/MT_Bounded_Queue.java b/java/apps/NexusII/src/MT_Bounded_Queue.java
deleted file mode 100644
index a9b493fa263..00000000000
--- a/java/apps/NexusII/src/MT_Bounded_Queue.java
+++ /dev/null
@@ -1,226 +0,0 @@
-
-// package NexusII.util ;
-
-// The minimun functionality to be associated with a queue
-interface Queue
-{
-public void nq(Object item);
-public Object dq();
-public boolean is_full();
-public boolean is_empty();
-public static final int DEF_SIZE = 1;
-};
-
-// Specific Conditions associated with MT_Bounded_Queue
-// Is true if there is space in the queue
-
-class Not_Full_Condition extends Timed_Wait
-{
-
-public Not_Full_Condition(MT_Bounded_Queue q)
- {
- super(q);
- }
-
-public synchronized boolean condition()
- {
- MT_Bounded_Queue mq_ = (MT_Bounded_Queue) object_;
- return !mq_.is_full ();
- }
-
-}
-
-// Is true if there's something in the queue
-
-class Not_Empty_Condition extends Timed_Wait
-{
-
-public Not_Empty_Condition(MT_Bounded_Queue q)
- {
- super(q);
- }
-
-public synchronized boolean condition()
- {
- // Delegate to the appropriate conditional
- // check on the MessageQueue.
- MT_Bounded_Queue mq_ = (MT_Bounded_Queue) object_;
- return !mq_.is_empty ();
- }
-
-private MT_Bounded_Queue mq_ ;
-}
-
-
-
-
-// Encapsulates a bounded - synchronized queue
-
-public class MT_Bounded_Queue implements Queue
-{
-
-
-private Object[] queue_ ;
-private int front_ ;
-private int back_ ;
-private int max_size_ ;
-private int size_ ;
-private Not_Empty_Condition not_empty_condition_ ;
-private Not_Full_Condition not_full_condition_ ;
-private int nq_count_ ;
-private int dq_count_ ;
-
-// The counters counts the number of nq's and dq's operations made on this
-// instance of the queue
-
-public int dq_count()
-{
- return dq_count_ ;
-}
-
-public int nq_count()
-{
- return nq_count_ ;
-}
-
-public MT_Bounded_Queue()
- {
- // call the other constructor with DEF_SIZE
- this(DEF_SIZE);
- }
-
-public MT_Bounded_Queue(int max_size)
- {
- this.front_ = 0 ;
- this.back_ = 0 ;
- this.max_size_ = max_size ;
- this.size_ = 0 ;
- // these are included for STATISTICS
- this.nq_count_ = 0 ;
- this.dq_count_ = 0 ;
- this.queue_ = new Object[this.max_size_];
- not_full_condition_ = new Not_Full_Condition(this);
- not_empty_condition_ = new Not_Empty_Condition(this);
- }
-
-// Blocking nq
-public synchronized void nq(Object item)
- {
- // Wait till the queue has space
- while(is_full())
- {
- try {
- wait();
- } catch (InterruptedException e) {}
- }
-
- // enqueue here
- queue_[back_] = item ;
- back_ = (back_ + 1) % max_size_ ;
- size_++ ;
- // One more enqueue operation has occured
- nq_count_ ++ ;
- // wakeup the sleeping guys
- notifyAll();
- }
-
- // Timed nq
-// returns -1 if timed_out
-public synchronized int nq(Object item,long msec_timeout)
- {
- // Wait till the queue has space
- try {
- not_full_condition_.timed_wait(msec_timeout);
- } catch (InterruptedException e) {}
- catch (TimeoutException t)
- {
- return -1 ;
- }
-
- // enqueue here
- queue_[back_] = item ;
- back_ = (back_ + 1) % max_size_ ;
- size_++ ;
-
- // One more enqueue operation has occured
- nq_count_ ++ ;
- // wakeup the sleeping consumers
- not_empty_condition_.broadcast ();
- return 0 ;
- }
-
-
-
-
- // Blockin dq
-public synchronized Object dq()
- {
- // wait till the queue has something in it
- while(is_empty())
- {
- try {
- wait();
- } catch (InterruptedException e) {}
- }
-
- // dequeue here
- Object return_object = queue_[front_] ;
- front_ = (front_ + 1) % max_size_ ;
- size_ -- ;
- // One more enqueue operation has occured
- dq_count_ ++ ;
- //wake up the sleeping producers
- notifyAll();
- return return_object ;
- }
-
-
- // Timed dq
-
-public synchronized Object dq(long msec_timeout)
- {
- // wait till the queue has something in it
- try {
- not_empty_condition_.timed_wait(msec_timeout);
- } catch (InterruptedException e) {}
- catch (TimeoutException t)
- {
- return null;
- }
-
- // dequeue here
- Object return_object = queue_[front_] ;
- front_ = (front_ + 1) % max_size_ ;
- size_ -- ;
-
- // One more enqueue operation has occured
- dq_count_ ++ ;
-
- //wake up the sleeping guys
- not_full_condition_.broadcast();
- return return_object ;
- }
-
-public boolean is_empty()
- {
- if (size_ == 0)
- return true ;
- else
- return false ;
-
- }
-
-public boolean is_full()
- {
- if (size_ == max_size_)
- return true ;
- else
- return false ;
- }
-
-}
-
-
-
-
-
diff --git a/java/apps/NexusII/src/MT_Bounded_Queue_Group.java b/java/apps/NexusII/src/MT_Bounded_Queue_Group.java
deleted file mode 100644
index 734dc51a84b..00000000000
--- a/java/apps/NexusII/src/MT_Bounded_Queue_Group.java
+++ /dev/null
@@ -1,79 +0,0 @@
-//package NexusII.server;
-
-//import NexusII.util.*;
-import java.util.*;
-
-
-public class MT_Bounded_Queue_Group {
-
- public Vector q_group_ = new Vector();
-
- public MT_Bounded_Queue_Group(int num) {
-
- q_group_ = new Vector(num);
-
- }
-
- public MT_Bounded_Queue_Group() {
-
- // q_group_ = new Vector();
-
- }
-
- public String toString() {
-
- return q_group_.toString();
-
- }
-
- // always returns true
- public boolean addToGroup(MT_Bounded_Queue q) {
-
- q_group_.addElement(q);
- return true; // for now
-
- }
-
-
- // returns false if the q was not part of the group
- public boolean delFromGroup(MT_Bounded_Queue q) {
-
- return q_group_.removeElement(q);
-
- }
-
-
- public boolean checkInGroup(MT_Bounded_Queue q) {
-
- return q_group_.contains(q);
-
- }
-
-
- // returns number of q's on which data was successfully enqueued
- public int nq(Object o) {
-
- if(q_group_.isEmpty() )
- return 0;
-
- Enumeration e = q_group_.elements();
-
- int i = 0;
- while(e.hasMoreElements()) {
-
- MT_Bounded_Queue q = (MT_Bounded_Queue) e.nextElement();
- q.nq(o);
- i++;
-
- }
-
- return i;
- }
-
-}
-
-
-
-
-
-
diff --git a/java/apps/NexusII/src/NexusClientApplet.java b/java/apps/NexusII/src/NexusClientApplet.java
deleted file mode 100644
index 58b26930718..00000000000
--- a/java/apps/NexusII/src/NexusClientApplet.java
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:10:59 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.3 1996/12/06 07:25:29 rajeev
-# Got SetRoomName to work -- needed for LROOMS
-#
-# Revision 1.2 1996/12/06 04:48:21 rajeev
-# added handling for l_users and L_room packets from server
-#
-# Revision 1.1 1996/12/06 03:37:22 rajeev
-# Initial revision
-#
-
- This is the client applet
- Part of Nexus-II project !!
- Copyright : Aravind Gopalan, Rajeev Bector, Sumedh Mungee
-*/
-
-// package NexusII;
-
-// I hate packages
-
-import java.applet.Applet;
-import java.awt.* ;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-//import NexusII.networking.* ;
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-
-// get the awtCommand package now
-import awtCommand.* ;
-
-// The applet runs the root thread -- easy access to graphics now ...
-
-public class NexusClientApplet extends CApplet implements consts,Runnable {
-
- // Who am I -- will be modified if the /nick command is given
- public static String myName = new String("anonymous");
-
- /* All Event Handlers */
-
- // To check if applet is connected
- boolean connected = false;
-
- // The connector handler
- connectionHandler nexusConnector ;
-
- // join handler
- joinHandler nexusJoiner ;
-
- // command handler
- commandParser nexusParser ;
-
- commandHandler commandLineHandler ;
- // Streams for writing and reading from Socket
- DataOutputStream outStream;
- DataInputStream inStream;
-
- // Thread which does everything for the applet
- Thread mainThread ;
-
- // this is just a visit
- // host where I live actually ;-)
- String host;
-
- // Which server to connect to
- Integer serverPort ;
-
- // Where are the queues for reading and writing
- // reader and writers will access these and also the interpretor and dep.
-
- MT_Bounded_Queue read_q ;
- MT_Bounded_Queue write_q ;
- MT_Bounded_Queue root_q ;
- // Where Aravind writes his commands
- MT_Bounded_Queue command_q ;
-
-
-
-
- // ***********************************************************
- // Graphics objects
- // ***********************************************************
-
- // Total applet size
- int minWidth_ = 500;
- int minHeight_ = 450;
-
- // State variables needed to be maintained
- boolean connected_ = false;
- int numRooms_ = 0;
-
- // Buttons
- private CButton bConn;
- private CButton bJoin;
- private CButton bLeave;
- private CButton bRooms;
- private CButton bUsers;
-
- private CTextField tfCommandLine = new CTextField(80);
- private CTextField tfRoomName = new CTextField(16);
- private List lRooms = new List(10,false);
- private Label roomLabel = new Label("Rooms:");
- private List lUsers = new List(10,false);
- private Label userLabel = new Label("Users:");
-
-// private RoomSpace roomspace = new RoomSpace();
- private Panel roomspace = new Panel();
-
- public Dimension preferredSize() {
- return minimumSize();
- }
-
- public Dimension minimumSize() {
- return new Dimension(minWidth_, minHeight_);
- }
-
- // -----------------------------------------------------------------
- // Basically draws up all the components (not sub-components) of the
- // Applet window ...
- // Pretty much straightforward barring quirks of AWT -- ArGo
- void SetUpButtons(GridBagLayout gbl, GridBagConstraints gbc) {
- // The Connect Button
- gbc.weightx = 1.0;
- gbc.weighty = 0.5;
- gbc.gridx = 2;
- gbc.gridy = 1;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.anchor = GridBagConstraints.CENTER;
- gbc.ipady = 5;
- bConn = new CButton("Connect");
- bConn.setActionCommand(nexusConnector);
- gbl.setConstraints(bConn, gbc);
- add(bConn);
- gbc.ipady = 0;
-
- // The remaining buttons
- gbc.fill = GridBagConstraints.BOTH;
- gbc.anchor = GridBagConstraints.CENTER;
- gbc.weightx = 1.0;
- gbc.weighty = 0.5;
- gbc.insets = new Insets(2,2,2,2);
- gbc.ipadx = 2;
- gbc.ipady = 2;
-
- // Join Button
- gbc.gridx = 0;
- gbc.gridy = 3;
- bJoin = new CButton("Join");
- gbl.setConstraints(bJoin,gbc);
- add(bJoin);
-
- // Leave Button
- gbc.gridx = 1;
- gbc.gridy = 3;
- bLeave = new CButton("Leave");
- gbl.setConstraints(bLeave,gbc);
- add(bLeave);
-
- // List Rooms Button
- gbc.gridx = 0;
- gbc.gridy = 4;
- bRooms = new CButton("List Rooms");
- gbl.setConstraints(bRooms,gbc);
- add(bRooms);
-
- // List Users Button
- gbc.gridx = 1;
- gbc.gridy = 4;
- bUsers = new CButton("List Users");
- gbl.setConstraints(bUsers,gbc);
- add(bUsers);
-
- } // of SetUpButtons
-
- void SetUpGraphics() {
-
- resize(preferredSize());
-
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
- setFont(new Font("Helvetica", Font.PLAIN, 14));
- setLayout (gbl);
-
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
-
- // For the list of rooms
- // First the Room list label
- gbc.weightx = 0;
- gbc.weighty = 0;
- gbc.gridx = 0;
- gbc.gridy = 0;
- gbc.anchor = GridBagConstraints.SOUTHWEST;
- gbc.fill = GridBagConstraints.NONE;
- gbl.setConstraints(roomLabel,gbc);
- add(roomLabel);
- // Now the Room combo -- list + text field
- // the actual list
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
- gbc.gridy = 1;
- gbc.fill = GridBagConstraints.VERTICAL;
- gbc.anchor = GridBagConstraints.NORTH;
- // gbc.insets = new Insets(0,2,0,2);
- gbl.setConstraints(lRooms,gbc);
- add(lRooms);
- if (DEBUG)
- lRooms.addItem("Room_1");
- // The text field
- gbc.weightx = 0;
- gbc.weighty = 0;
- gbc.gridy = 2;
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(0,0,0,0);
- gbl.setConstraints(tfRoomName,gbc);
- add(tfRoomName);
-
- // Similarly for the list of users
- // label
- gbc.weightx = 0;
- gbc.weighty = 0;
- gbc.gridx = 1;
- gbc.gridy = 0;
- gbc.anchor = GridBagConstraints.SOUTHWEST;
- gbc.fill = GridBagConstraints.NONE;
- gbc.insets = new Insets(0,0,0,0);
- gbl.setConstraints(userLabel,gbc);
- add(userLabel);
- // The list
- gbc.weightx = 1;
- gbc.weighty = 1;
- gbc.gridy = 1;
- gbc.fill = GridBagConstraints.VERTICAL;
- gbc.anchor = GridBagConstraints.NORTH;
- gbl.setConstraints(lUsers,gbc);
- add(lUsers);
- if (DEBUG)
- lUsers.addItem("USer #1");
-
- // Setup all the buttons
- SetUpButtons(gbl,gbc) ;
-
- // The command line
- gbc.gridx = 0;
- gbc.gridy = 5;
- gbc.ipadx = 0;
- gbc.ipady = 0;
- gbc.insets = new Insets(0,0,0,0);
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.fill = GridBagConstraints.NONE;
- gbc.anchor = GridBagConstraints.CENTER;
- gbl.setConstraints(tfCommandLine,gbc);
- add(tfCommandLine);
-
-
- // We are done -- startup with all buttons except connect disabled
- OnDisconnect();
- return;
- }
-
- public void init() {
- //Get the address of the host the applet was downloaded from
- host = getCodeBase().getHost();
- // Get servers portnumber from the home page
- serverPort = Integer.valueOf(getParameter("serverport"));
-
-
- // Create the nexusconnector object whose execute will be called later
- // on pressing the connect button
- nexusConnector = new connectionHandler(host,serverPort,this);
-
- if(DEBUG){
- System.out.println("Server Portnumber is " + serverPort + "\n");
- }
-
- // initialize the graphics
- SetUpGraphics();
- } // of method init
-
- public synchronized void start() {
- // Aravind will create the "connect" button here and register an instance
-
- if (DEBUG) {
- System.out.println("In start() method.");
- }
- }
-
-
- // Here is the stop for the applet
- // Called when the user goes away from the page
- public synchronized void stop() {
- if (!DEBUG) {
- showStatus("Stop has been called ");
- }
-
- if (connected) {
- nexusConnector.execute(null,null,null);
- }
- }
-
-
-
-
- // -----------------------------------------------------------------------
- // Public Access functions
- public Hashtable Mapper() {
- return nexusJoiner.Mapper();
- }
-
- public String GetRoomName() {
- StringTokenizer t = new StringTokenizer(tfRoomName.getText());
- if(t.hasMoreTokens()) {
- return t.nextToken();
- }
- else
- return "" ;
- }
-
- public void AddRoomName(String name) {
- int count = lRooms.countItems();
- for (int i=0;i<count;i++)
- if (lRooms.getItem(i).equalsIgnoreCase(name))
- return;
- lRooms.addItem(name);
- }
-
- public void SetRoomName(String name) {
- int count = lRooms.countItems();
- for(int i=0;i<count;i++) {
- if(lRooms.getItem(i).equalsIgnoreCase(name)) {
- // Have to simulate a select event by doing the selection ourselves
- lRooms.select(i);
- tfRoomName.setText(lRooms.getSelectedItem());
- tfRoomName.selectAll();
- break ;
- }
- }
- }
-
- public void sendNickToServer(String name) {
- nexusJoiner.sendTestPacket("ROOT","NICK",name,nexusConnector.writer_q());
- }
-
-
- // will run the mainthread
- public void run() {
- if(DEBUG) {
- System.out.println("Root thread is starting -- ");
- }
-
- root_q = new MT_Bounded_Queue(QUEUE_SIZE);
- nexusJoiner.Mapper().put("ROOT",root_q);
- // continously wait for something to read and then update the graphics
- // objects ----
- if(DEBUG) {
- nexusJoiner.sendTestPacket("ROOT","LROOMS","a b c d",root_q);
- }
-
- for(;;) {
- dataPacket rootPacket = (dataPacket)root_q.dq();
- if(DEBUG) {
- System.out.println("Root got a packet --- ");
- }
- if(rootPacket.contentType().equalsIgnoreCase("LROOMS")) {
- update_lrooms(rootPacket.content());
- }
- else if(rootPacket.contentType().equalsIgnoreCase("LUSERS")) {
- update_lusers(rootPacket.destination(),rootPacket.content());
- }
- }
-
- }
-
-
-
- // This method will update the graphics of lrooms
- void update_lrooms(String data) {
- lRooms.disable();
- tfRoomName.disable();
- lRooms.clear();
-
- StringTokenizer t = new StringTokenizer(data);
- while(t.hasMoreTokens()) {
- lRooms.addItem(t.nextToken());
- }
- if (lRooms.countItems() != 0) {
- lRooms.select(0);
- tfRoomName.setText(lRooms.getItem(0));
- }
- tfRoomName.enable();
- lRooms.enable();
- repaint();
- }
-
- void update_lusers(String name,String data) {
- lUsers.disable();
- userLabel.setText("Users: "+ name);
- lUsers.clear();
- StringTokenizer t = new StringTokenizer(data);
- while(t.hasMoreTokens()) {
- lUsers.addItem(t.nextToken());
- }
- lUsers.enable();
- repaint();
- }
-
- // -----------------------------------------------------------------------
- // User Input handling -- ArGo
-
- // Function to handle Connect button being pressed
- public void OnConnect(){
- // Create the event handlers --
- nexusJoiner = new joinHandler(nexusConnector.writer_q(),this);
- nexusParser = new commandParser(nexusConnector.writer_q(),this);
- commandLineHandler = new commandHandler(this);
- // start the main thread in the applets context
- mainThread = new Thread(this);
- mainThread.start();
- // test
- // Graphics here --
- bJoin.enable();
- bJoin.setActionCommand(nexusJoiner);
- bLeave.enable();
- bLeave.setActionCommand(nexusJoiner);
- bRooms.enable();
- bRooms.setActionCommand(nexusParser);
- bUsers.enable();
- bUsers.setActionCommand(nexusParser);
- tfCommandLine.enable();
- tfCommandLine.setActionCommand(commandLineHandler);
- tfRoomName.enable();
- lRooms.enable();
- lUsers.enable();
- // Change the name to "Disconnect" and ensure that update happens
- bConn.setLabel("Disconnect");
- validate(); // Don't know if this is necessary
- connected = true; // Applet is now connected
- }
-
- // Function to handle Connect button being pressed
- public void OnDisconnect(){
- bJoin.disable();
- bLeave.disable();
- bRooms.disable();
- bUsers.disable();
- tfCommandLine.disable();
- tfRoomName.disable();
- lRooms.disable();
- lUsers.disable();
- // Change the name back to "Connect" and ensure update happens
- bConn.setLabel("Connect");
- validate();
- // Stop the ROOT room thread
- if (connected) {
- mainThread.stop();
- connected = false; // Applet is disconnected
- }
- }
-
- // Basically take care of the inputs
- public boolean handleEvent(Event event) {
- if (event.target == lRooms) {
- if (event.id == Event.LIST_SELECT) { // selected the item
- tfRoomName.setText(lRooms.getSelectedItem());
- tfRoomName.selectAll();
- if (DEBUG)
- System.out.println("Actually handling the select event");
- return true;
- }
- }
- return super.handleEvent(event);
- }
-
- public void update(Graphics g) {
- paint(g);
- }
-} // of class NexusClientApplet
-
-
-
diff --git a/java/apps/NexusII/src/NexusIIserver.java b/java/apps/NexusII/src/NexusIIserver.java
deleted file mode 100644
index e3b5a52acd5..00000000000
--- a/java/apps/NexusII/src/NexusIIserver.java
+++ /dev/null
@@ -1,280 +0,0 @@
-// The Nexus II server.
-// Sumedh Mungee <sumedh@cs.wustl.edu>
-
-import java.net.*;
-import java.io.*;
-import java.util.*;
-import ACE.OS.*;
-import ACE.SOCK_SAP.*;
-
-public class NexusIIserver implements consts {
-
- // Entry point into the server
- public static void main(String args[]) throws IOException {
-
- if(args.length != 1) {
- System.out.println("Usage: java NexusIIserver <port_num>");
- return;
- }
-
- // Create a "Hotel", which is a factory to generate Rooms
- // as and when required.
- RoomFactory Hotel = new RoomFactory();
-
- System.out.println("NexusII server booting");
- SOCKAcceptor sacceptor = new SOCKAcceptor( (new Integer(args[0])).intValue());
-
- System.out.println("NexusII is now accepting connections on port " + (new Integer(args[0])).intValue());
-
- for(;;) {
-
- SOCKStream s = new SOCKStream();
- sacceptor.accept(s);
- // Accepted connection
- // construct a client handler..
- // Pass in the connected socket as an argument,
- // and a reference to the Hotel, in case it needs
- // to create rooms..
- // and away you go..
- new Thread(new ClientHandler(s, Hotel)).start();
-
- }
- }
-}
-
-
-// This thread handles the clients..
-// It uses 2 additional threads for read/write network operations
-// These threads are dedicated to read/write from the
-// respective read/write queues..
-class ClientHandler implements Runnable,consts {
-
- private SOCKStream s_;
- private RoomFactory Hotel_;
- private MT_Bounded_Queue rq_ = new MT_Bounded_Queue(QUEUE_SIZE);
- private MT_Bounded_Queue wq_ = new MT_Bounded_Queue(QUEUE_SIZE);
- private String my_name_;
- private Vector roomlist_ = new Vector();
- private boolean finished_ = false;
- private String init_image_;
-
- public ClientHandler(SOCKStream s, RoomFactory h) {
- s_ = s;
- Hotel_ = h;
- init_image_ = new String(System.getProperty("mywebaddress") + NEXUS_LOGO);
- }
-
- public void run() {
- // Construct the reader/writer threads with the queues and the
- // corresponding socket data streams as parameters.
- Thread r_ = new socketReaderThread(rq_, new DataInputStream(s_.inputStream()));
- Thread w_ = new socketWriterThread(wq_, new DataOutputStream(s_.outputStream()));
- r_.start();
- w_.start();
-
- // now start parsing the messages, and take action..
- // todo: optimize the below..
-
- while(!finished_) {
- dataPacket d = (dataPacket) rq_.dq();
- if(d.contentType().startsWith("INIT"))
- nexus_init(d);
- if(d.contentType().startsWith("JOIN"))
- nexus_join(d);
- if(d.contentType().startsWith("LEAVE"))
- nexus_leave(d);
- if(d.contentType().startsWith("QUIT"))
- nexus_quit(d);
- if(d.contentType().startsWith("TEXT"))
- nexus_text(d);
- if(d.contentType().startsWith("LUSERS"))
- nexus_lusers(d);
- if(d.contentType().startsWith("LROOMS"))
- nexus_lrooms(d);
- if(d.contentType().startsWith("NICK"))
- nexus_nick(d);
- if(d.contentType().startsWith("URL"))
- nexus_url(d);
- }
- }
-
- // The following classes implement the server functions..
-
- private void nexus_init(dataPacket packet) {
- my_name_ = new String(packet.clientName());
- wq_.nq(packet);
- }
-
- private void nexus_join(dataPacket packet) {
- Room r = Hotel_.getRoom(packet.content());
- if(r.checkClient(this))
- return;
- r.addClient(this);
- roomlist_.addElement(r);
- writeRoom(r, my_name_ + " has joined the room ");
- String contenttype = new String("url");
- dataPacket d = new dataPacket(my_name_, packet.content(), contenttype, (new Integer(init_image_.length())).toString() , init_image_);
- wq_.nq(d);
- }
-
- private void nexus_text(dataPacket packet) {
- Room r = Hotel_.getRoom(packet.destination());
- r.getQ().nq(packet);
- }
-
- private void nexus_lusers(dataPacket packet) {
-
- Room r = Hotel_.getRoom(packet.content());
- Enumeration e = r.clientList();
- StringBuffer sb = new StringBuffer();
- while(e.hasMoreElements())
- sb.append(" " + ((ClientHandler)e.nextElement()).getName() + " ");
- dataPacket d = new dataPacket(my_name_, packet.destination(), packet.contentType(), (new Integer(sb.length())).toString(), sb.toString());
- wq_.nq(d);
- }
-
- private void nexus_lrooms(dataPacket packet) {
- String s = Hotel_.listRooms();
- dataPacket d = new dataPacket(my_name_, packet.destination(), packet.contentType(), (new Integer(s.length())).toString(), s.toString());
- wq_.nq(d);
- }
-
- private void nexus_nick(dataPacket packet) {
- Enumeration e = roomlist_.elements();
- while(e.hasMoreElements())
- writeRoom((Room)e.nextElement(), my_name_ + " is now known as " + packet.content());
-
- my_name_ = new String(packet.content());
- }
-
- private void nexus_leave(dataPacket packet) {
-
- Room r = Hotel_.getRoom(packet.content());
- writeRoom(r, my_name_ + " has left the room " + packet.content());
- if(r.delClient(this)) Hotel_.delRoom(r);
- roomlist_.removeElement(r);
- }
-
- private void nexus_quit(dataPacket packet) {
-
- Enumeration e = roomlist_.elements();
- while(e.hasMoreElements()) {
- Room r = (Room)e.nextElement();
- writeRoom(r, my_name_ + " has quit " );
- r.delClient(this);
- }
- finished_ = true;
- }
-
- private void nexus_url(dataPacket packet) {
- try {
- URL u = new URL(packet.content());
-
- // first extract the filename stripped of its path.
- int index = u.getFile().lastIndexOf("/");
- String infilename = u.getFile().substring(index + 1);
-
- // next construct the name of the temporary file
- String outfilename = (System.getProperty("mywebdir") + "_" + packet.destination() + "." + infilename);
-
- // now the temporary URL assigned to this request
- String imageURL = new String(System.getProperty("mywebaddress") + "_" + packet.destination() + "." + infilename);
-
- // Open temporary file for writing
- FileOutputStream fout = new FileOutputStream(outfilename);
-
- // Now contact alien ship
- InputStream i = u.openStream();
- byte[] buffer = new byte[1024];
-
- // And download the image
- for(;;) {
- int num = i.read(buffer);
- if(num < 0)
- break;
- fout.write(buffer, 0, num);
- }
-
- fout.close();
- i.close();
-
- // Get room for which this request was issued
- Room r = Hotel_.getRoom(packet.destination());
-
- // invalidate previous entry
- File f = new File(r.getLastImageName());
- if(f.exists()) f.delete();
-
- // add new image name
- r.putNextImageName(outfilename);
- writeRoom(r,"Asynchronously transferring image " + packet.content() + " from " + my_name_ );
- dataPacket d = new dataPacket(my_name_, packet.destination(), packet.contentType(), (new Integer(imageURL.length())).toString(), imageURL);
- r.getQ().nq(d); // multicast this imageURL onto the room..
-
- }
- catch(java.net.MalformedURLException ue) {
- System.out.println("warning:Invalid URL requested");
- }
- catch(java.io.IOException e) {
- System.out.println("warning: IOException occurred");
- }
-
- }
-
- // Sends a "system" message msg onto room r
- private void writeRoom(Room r, String msg) {
- StringBuffer sb = new StringBuffer();
- sb.append("==>");
- sb.append(msg);
- dataPacket d = new dataPacket(my_name_, r.getName() , "TEXT" , (new Integer(sb.length())).toString(), sb.toString());
- r.getQ().nq(d);
- }
-
- public String getName() {
- return my_name_;
- }
-
- public MT_Bounded_Queue getQ() {
- return wq_;
- }
-
-}
-// ----------------------------------------------------------------------
-/** This class implements a room factory. getRoom returns an existing room,
- or else creates it and returns a reference to a new room.
-
-**/
-class RoomFactory implements consts {
-
- private Vector Hotel_;
- public RoomFactory() {
- Hotel_ = new Vector();
- }
- public synchronized Room getRoom(String name) {
- Enumeration e = Hotel_.elements();
- while(e.hasMoreElements()) {
- Room r = (Room) e.nextElement();
- if(r.getName().equals(name))
- return r;
- }
- addRoom(name);
- return getRoom(name);
- }
-
- private synchronized void addRoom(String name) {
- Room r = new Room(name);
- Hotel_.addElement(r);
- }
- public synchronized void delRoom(Room r) {
- Hotel_.removeElement(r);
- }
- public synchronized String listRooms() {
- Enumeration e = Hotel_.elements();
- StringBuffer sb = new StringBuffer();
- while(e.hasMoreElements())
- sb.append(" " + ((Room)e.nextElement()).getName() + " ");
- return sb.toString();
- }
-}
-
-
diff --git a/java/apps/NexusII/src/Producer.java b/java/apps/NexusII/src/Producer.java
deleted file mode 100644
index 4153f7d79df..00000000000
--- a/java/apps/NexusII/src/Producer.java
+++ /dev/null
@@ -1,87 +0,0 @@
-// This class encapsulates a Producer. Each new instance of this class
-// creates a different thread which tries to nq into the queue
-// Currently queues random values generated by the Random class
-// If timeout expires, the Producer instance returns
-
-//package NexusII.util ;
-
-import java.util.Random ;
-
-public class Producer extends Thread
-{
-
-// If no time out is desired, timeout value is set to one. so the run method
-// knows which nq to call
-
-public Producer(MT_Bounded_Queue queue)
- {
- this.queue_ = queue ;
- this.iterations_ = new Integer(DEFAULT_ITERATIONS);
- this.time_out_ = -1 ;
- }
-
-// Include the name of the thread as a parameter
-public Producer(MT_Bounded_Queue queue, String name)
- {
- super(name);
- this.queue_ = queue ;
- this.iterations_ = new Integer(DEFAULT_ITERATIONS);
- this.time_out_ = -1 ;
- }
-
-// If the number of iterations are also included --
-public Producer(MT_Bounded_Queue queue, String name, Integer iterations)
- {
- super(name);
- this.queue_ = queue ;
- iterations_ = iterations ;
- this.time_out_ = -1 ;
- }
-
-// Finally, if the timeout period is also included
-
-public Producer(MT_Bounded_Queue queue, String name, Integer iterations, long msec_timeout)
- {
- super(name);
- this.queue_ = queue ;
- iterations_ = iterations ;
- this.time_out_ = msec_timeout ;
- }
-
-// The hook method called by start()
-
-public void run()
- {
- // Initialize the random number generator
- Random rand = new Random();
- for(int i=0;i<iterations_.intValue();i++)
- {
- int err = 0 ;
- // Get the next random value for insertion into queue
- Integer new_item = new Integer(rand.nextInt()) ;
-
- // Doesnt make sense to have a negative timeout -- default
- if(time_out_ < 0)
- queue_.nq(new_item);
- else
- err = queue_.nq(new_item,time_out_);
-
- // If timedout stop this thread
- if(err == -1)
- {
- System.out.println(getName() + ": Timed Out \n");
- return ;
- }
-
- System.out.println(getName() + ": enqueued " + new_item.intValue());
- }
-
- }
-
-private static final int DEFAULT_ITERATIONS = 1 ;
-protected MT_Bounded_Queue queue_ ;
-private Integer iterations_ ;
-private long time_out_ ;
-}
-
-
diff --git a/java/apps/NexusII/src/Room.java b/java/apps/NexusII/src/Room.java
deleted file mode 100644
index 4a9a294c653..00000000000
--- a/java/apps/NexusII/src/Room.java
+++ /dev/null
@@ -1,97 +0,0 @@
-// RoomThread and Room implement the concept of a chat "room"
-// Sumedh Mungee <sumedh@cs.wustl.edu>
-
-
-import java.util.*;
-import java.io.File;
-
-// This class(&thread) is responsible for multicasting
-// packets on its incoming "client" queues, onto one or
-// more outgoing queues, which are picked up by the client.
-class RoomThread implements Runnable, consts {
-
- private MT_Bounded_Queue rq_;
- private Vector clientlist_;
-
- public RoomThread(MT_Bounded_Queue rq, Vector clientlist) {
- rq_ = rq;
- clientlist_ = clientlist;
- }
-
- public void run() {
- for(;;) {
- dataPacket d = (dataPacket) rq_.dq(); // Extract packet
- Enumeration e = clientlist_.elements(); // Iterate over clients
- while(e.hasMoreElements())
- ((ClientHandler)e.nextElement()).getQ().nq(d); // Enqueue packet
- }
- }
-}
-
-
-public class Room implements consts {
-
- private String name_; // name of this "room"
- private String last_image_ = new String("NexusII.gif"); // filename of the last image broadcast
- private Thread roomthread_;
- private MT_Bounded_Queue rq_ = new MT_Bounded_Queue();
- private Vector clientlist_ = new Vector();
-
- // Constructors
- public Room(String name) {
- int i;
- name_ = new String(name);
- roomthread_ = new Thread(new RoomThread(rq_, clientlist_));
- roomthread_.start();
- }
-
- // Client management methods follow..
-
- public synchronized void addClient(ClientHandler client) {
- clientlist_.addElement(client);
- }
- // Returns true if this room has now become empty
- public synchronized boolean delClient(ClientHandler client) {
- clientlist_.removeElement(client);
- return clientlist_.isEmpty();
- }
-
- public synchronized boolean checkClient(ClientHandler client) {
- return clientlist_.contains(client);
- }
-
- public synchronized Enumeration clientList() {
- return clientlist_.elements();
- }
-
- public String getName() {
- return name_;
- }
-
- public MT_Bounded_Queue getQ() {
- return rq_;
- }
-
- public synchronized String getLastImageName() {
- return last_image_;
- }
-
- public synchronized void putNextImageName(String s) {
- last_image_ = s;
- }
-
- protected void finalize() {
- roomthread_.stop();
- File f = new File(last_image_);
- if(f.exists())
- f.delete();
- roomthread_ = null;
- }
-}
-
-
-
-
-
-
-
diff --git a/java/apps/NexusII/src/RoomFrame.java b/java/apps/NexusII/src/RoomFrame.java
deleted file mode 100644
index e9da19b31d6..00000000000
--- a/java/apps/NexusII/src/RoomFrame.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:02 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.2 1996/12/07 06:25:18 rajeev
-# backup
-#
-# Revision 1.1 1996/12/07 06:15:12 rajeev
-# Initial revision
-#
-
-
-*/
-import java.awt.*;
-import awtCommand.*;
-import java.util.* ;
-
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-//import NexusII.networking.*;
-
-class RoomFrame extends CFrame implements consts {
- private static String rcsId = new String("$Id$");
-
- // Graphics Objects
- private CTextField tfInput ;
- private CTextArea taOutput ;
- private CButton bLeave ;
- private ImageCanvas icOutput;
- private Font normalFont = new Font("Helvetica", Font.PLAIN, 14);
- private Font boldFont = new Font("Helvetica", Font.BOLD, 14);
- private Font italicFont = new Font("Helvetica", Font.ITALIC, 14);
- private static final int LINE_LENGTH = 70;
-
- // Other required objects
- private MT_Bounded_Queue write_q_ ;
- private NexusClientApplet applet_ ;
- private String myName_ ;
-
- public RoomFrame(MT_Bounded_Queue write_q,
- NexusClientApplet applet,
- String name) {
- super(name);
- write_q_ = write_q ;
- applet_ = applet ;
- myName_ = name ;
- SetUpGraphics();
- this.pack();
- this.show();
- }
-
- void SetUpGraphics() {
- // Initialize the graphics objects
- // The input text line
- tfInput = new CTextField(LINE_LENGTH);
- textHandler handlerT = new textHandler(write_q_,applet_,myName_);
- tfInput.setActionCommand(handlerT);
- // The leave button
- bLeave = new CButton(LEAVE_STR);
- bLeave.setActionCommand(applet_.nexusJoiner);
-
- icOutput = new ImageCanvas(myName_);
- taOutput = new CTextArea(10,LINE_LENGTH);
-
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
- setFont(normalFont);
- setLayout (gbl);
-
- gbc.insets = new Insets(5,5,5,5);
- gbc.ipadx = 5;
- gbc.ipady = 5;
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
-
- // First the Image so that sizes are fixed
- gbc.gridx = 1;
- gbc.gridy = 0;
- gbc.anchor = GridBagConstraints.CENTER;
- gbc.fill = GridBagConstraints.BOTH;
- gbl.setConstraints(icOutput, gbc);
- add(icOutput);
-
- // The Text Output Area
- gbc.gridx = 0;
- gbc.gridy = 0;
- gbc.weighty = 0.0;
- gbc.anchor = GridBagConstraints.SOUTH;
- gbc.fill = GridBagConstraints.BOTH;
- gbl.setConstraints(taOutput,gbc);
- taOutput.setEditable(false);
- add(taOutput);
-
- // The Text Input Field
- gbc.gridx = 0;
- gbc.gridy = 1;
- gbc.weighty = 0.0;
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(tfInput,gbc);
- add(tfInput);
-
- // The Leave Button
- gbc.gridx = 1;
- gbc.gridy = 1;
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(bLeave,gbc);
- add(bLeave);
-
- resize(800,280);
- setResizable(true); // Allow the user to resize
- validate();
- }
-
- public boolean handleEvent(Event event) {
- if (event.id == Event.WINDOW_DESTROY)
- dispose();
- return super.handleEvent(event);
- }
-
- // This function will be called by the RoomHandler when it receives
- // anything for this room and will add the data
- public void addText(String tobeadded) {
- if (false) {
- String speaker = null;
- String msg = null;
- int pos = tobeadded.indexOf(':');
- if (pos >= 0)
- speaker = tobeadded.substring(0,pos+1);
- else
- speaker = new String("");
- msg = tobeadded.substring(pos+1);
- Font oldf = taOutput.getFont();
- taOutput.setFont(boldFont);
- taOutput.appendText(speaker);
- taOutput.setFont(italicFont);
- taOutput.appendText(msg+"\n");
- taOutput.setFont(oldf);
- }
- else {
- taOutput.appendText(tobeadded+"\n");
- }
- return;
- }
-
- // This function will also be called by the RoomHandler whenit receives
- // Image data for this room.
- public void updateImage(Image im) {
- if(DEBUG) {
- System.out.println("Room : I got an image");
- }
- icOutput.setImage(im);
- }
-
-
-}
-
-
-
-/**
- * The ImageCanvas Class -- for the image in the class
- */
-class ImageCanvas extends Canvas implements consts {
-
- Image image_ = null;
- int defWidth_ = 128;
- int defHeight_ = 128;
- int margin = 5;
-
- String name_ = new String("Nexus Room");
- Font nameFont = new Font("Helvetica",0,14);
-
- public ImageCanvas(String s)
- {
- name_ = s;
- }
-
- public Dimension preferredSize() {
- return minimumSize();
- }
- public Dimension minimumSize() {
- return new Dimension(defWidth_, defHeight_);
- }
-
- public void setImage(Image newIm) {
- image_ = newIm;
- repaint();
- }
- public Image getImage() {
- return image_;
- }
-
- public void name(String n) {
- name_ = n;
- }
- public String name() {
- return name_;
- }
-
- public void paint(Graphics g) {
- Dimension d = size();
- int width = d.width;
- int height = d.height;
-
- if (DEBUG)
- System.out.println("ImageCanvas:: width = "+width+ " height="+height);
-
- g.setColor(Color.black);
- g.fillRect(0,0,width-1,height-1);
- g.setColor(Color.white);
- g.fillRect(margin,margin,width-2*margin,height-2*margin);
- // Create image if reqd
- if (image_ == null)
- image_ = createImage(width-2*margin,height-2*margin);
-
- g.drawImage(image_, margin, margin,
- width-2*margin, height-2*margin, Color.white, this);
- g.setColor(Color.blue);
- g.setFont(nameFont);
- FontMetrics fm = g.getFontMetrics();
- g.drawString(name_,(width - fm.stringWidth(name_))/2,
- (int)(height*0.9 - fm.getMaxDescent()));
- validate();
- return;
- }
-
- public void update(Graphics g) {
- paint(g);
- }
-
-} // End of the Image Canvas Class
-
-
-
-// this is the event handler for the textfield -- whenever anything is typed
-class textHandler implements Command,consts,Runnable {
- private MT_Bounded_Queue write_q_ ;
- private NexusClientApplet applet_ ;
- private String name_ ;
- Object what_ ;
-
- public textHandler(MT_Bounded_Queue write_q,
- NexusClientApplet applet,
- String name) {
- write_q_ = write_q ;
- applet_ = applet ;
- name_ = name ;
- }
-
- public void execute(Object target, Event evt, Object what) {
- // get the string and send it across in a different thread
- what_ = what ;
- // clear the field in the gui
- ((TextField)target).setText("");
- // send it off
- new Thread(this).start();
- }
-
- // send off the string in a different thread
- public void run() {
- String data = (String)what_;
- // check if data begins with / and is followed by url
- if(!data.startsWith("/url")) {
-
- String user = NexusClientApplet.myName ;
- String command = user + ":" + data ;
- String len = Integer.toString(command.length());
- dataPacket packet = new dataPacket(NexusClientApplet.myName,name_,
- "TEXT",len,command);
- write_q_.nq(packet);
- }
- else {
- // it is /url
- StringTokenizer t = new StringTokenizer(data);
- // take out the /url from here
- String ur = t.nextToken();
- // data now
- String command = t.nextToken();
- String len = Integer.toString(command.length());
- dataPacket packet = new dataPacket(NexusClientApplet.myName,name_,
- "URL",len,command);
- write_q_.nq(packet);
- }
- }
-} // end of class
-
-
-
diff --git a/java/apps/NexusII/src/RoomSpace.java b/java/apps/NexusII/src/RoomSpace.java
deleted file mode 100644
index 9afb78ddff1..00000000000
--- a/java/apps/NexusII/src/RoomSpace.java
+++ /dev/null
@@ -1,110 +0,0 @@
-import java.awt.*;
-
-class RoomFrame extends Frame // implements Runnable
-{
-
- // Graphics Objects
- private Panel panel = new Panel();
- private TextField tfInput = new TextField(80);
- private TextArea taOutput = new TextArea(80,10);
- Button bLeave = new Button("Leave");
- ImageCanvas icOutput = new ImageCanvas();
-
- void InitGraphics()
- {
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
- setFont(new Font("Helvetica", Font.PLAIN, 14));
- panel.setLayout (gbl);
-
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
-
- // First the Image so that sizes are fixed
- gbc.gridx = 1;
- gbc.gridy = 0;
- gbc.anchor = GridBagConstraints.CENTER;
- gbc.fill = GridBagConstraints.NONE;
- gbl.setConstraints(icOutput, gbc);
- panel.add(icOutput);
-
- // The Text Output Area
- gbc.gridx = 0;
- gbc.gridy = 0;
- gbc.anchor = GridBagConstraints.WEST;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(taOutput,gbc);
- taOutput.setEditable(false);
- panel.add(taOutput);
-
- // The Text Input Field
- gbc.gridx = 0;
- gbc.gridy = 1;
- gbc.anchor = GridBagConstraints.WEST;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(tfInput,gbc);
- panel.add(tfInput);
-
- // The Leave Button
- gbc.gridx = 1;
- gbc.gridy = 1;
- gbc.anchor = GridBagConstraints.WEST;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(bLeave,gbc);
- panel.add(bLeave);
- }
-
-
- public RoomFrame()
- {
- this("Anonymous");
- }
-
- public RoomFrame(String s)
- {
- InitGraphics();
- super(s);
- this.pack();
- this.show();
- }
-
- public boolean handleEvent(Event event)
- {
- if (event.id == Event.WINDOW_DESTROY)
- dispose();
- return super.handleEvent(event);
- }
-
-}
-
-class ImageCanvas extends Canvas {
-
- Image image_;
- int imgWidth_ = 128;
- int imgHeight_ = 128;
-
- public Dimension preferredSize() {
- return minimumSize();
- }
-
- public Dimension minimumSize() {
- return new Dimension(imgWidth_, imgHeight_);
- }
-
- public void image(Image newIm) {
- image_ = newIm;
- }
-
- public Image image() {
- return image_;
- }
-
- public void paint(Graphics g) {
- g.drawImage(image_,0,0,this);
- }
-
- public void update() {
- paint();
- }
-
-} // End of the Image Canvas Class
diff --git a/java/apps/NexusII/src/Timed_Wait.java b/java/apps/NexusII/src/Timed_Wait.java
deleted file mode 100644
index 792db39ceb9..00000000000
--- a/java/apps/NexusII/src/Timed_Wait.java
+++ /dev/null
@@ -1,86 +0,0 @@
-// package NexusII.util ;
-
-
-// Subclass the Exception class to get TimeoutException
-
-class TimeoutException extends Exception
-{
- public TimeoutException()
- {
- super();
- }
-
- public TimeoutException(String s)
- {
- super(s);
- }
-
-}
-
-// Timed_wait class. This can used by enq and deq to do timed_waits
-public abstract class Timed_Wait
-{
- // By default the object is itself
-public Timed_Wait ()
- {
- object_ = this;
- }
- // If the calling class specifies objects, delegate to it.
-public Timed_Wait (Object obj)
- {
- object_ = obj;
- }
-
- // This is the object we delegate to if a
- // subclass gives us a particular object,
- // otherwise, we ``delegate'' to ourself
- // (i.e., to this).
-protected Object object_;
-
- // This hook method must be overridden
- // by a subclass to provide the condition.
-
-public abstract boolean condition ();
-
- // This will borrow the monitor lock from the calling class
-
-public final void timed_wait(long msec_timeout)
-throws InterruptedException, TimeoutException
- {
- // wait if the condition is false
- if (!condition())
- {
- long start = System.currentTimeMillis() ;
- long wait_time = msec_timeout ;
-
- for(;;)
- {
- // anyway have to wait atleast till waittime
- object_.wait(wait_time);
-
- // on coming out check for the condition again
- if(!condition())
- {
- long now = System.currentTimeMillis() ;
- long time_so_far = now - start ;
-
- // if timed out
- if(time_so_far >= msec_timeout)
- throw new TimeoutException() ;
- else
- // retry !! we have some time left
- wait_time = msec_timeout - time_so_far ;
- }
- else // the condition is true here
- break ;
- }
- }
- }
-
- // Notify all threads waiting on the object_.
-public final void broadcast ()
- {
- object_.notifyAll ();
- }
-}
-
diff --git a/java/apps/NexusII/src/Timer.java b/java/apps/NexusII/src/Timer.java
deleted file mode 100644
index df781274913..00000000000
--- a/java/apps/NexusII/src/Timer.java
+++ /dev/null
@@ -1,31 +0,0 @@
-// This class encapsulates a Timer mechanism
-// Can be used for Profiling of parts of code and gathering statistics
-
-package NexusII ;
-
-public class Timer {
-
-public Timer()
-{
- start_ = 0 ;
-}
-
-public void start()
-
-{
- start_ = System.currentTimeMillis();
-}
-
-public long elapsed_time()
-{
- return System.currentTimeMillis() - start_ ;
-}
-
-public void stop()
-{
- start_ = 0 ;
-}
-
-private long start_ = 0 ;
-
-}
diff --git a/java/apps/NexusII/src/commandHandler.java b/java/apps/NexusII/src/commandHandler.java
deleted file mode 100644
index 4cf80d04235..00000000000
--- a/java/apps/NexusII/src/commandHandler.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// To handle the events generated by command-line. The user will be saying
-// /nick <nick-name>
-
-import java.awt.* ;
-import java.util.* ;
-
-//import NexusII.client.* ;
-
-import awtCommand.* ;
-
-
-public class commandHandler implements Command,consts {
- NexusClientApplet applet_ ;
- // will handle the /nick command for now -- urgent
- public commandHandler(NexusClientApplet applet ) {
- applet_ = applet ;
- }
-
- public void execute(Object target,Event evt,Object what) {
- // Right now assume that it is just a nick command
- if(DEBUG) {
- System.out.println("Nick typed in ---- ");
- }
- StringTokenizer t = new StringTokenizer((String)what) ;
- // string for holding /nick and <nickname>
- String command = null ;
- if(t.hasMoreTokens()) {
- command = t.nextToken();
- }
-
- if(command.equalsIgnoreCase("/nick")) {
- if(t.hasMoreTokens()) {
- // have to send a nick packet to server
- applet_.myName = new String(t.nextToken());
- applet_.sendNickToServer(applet_.myName);
-
- }
- }
- // clear the field in the gui
- ((TextField)target).setText("");
-
- }
-}
-// of class
diff --git a/java/apps/NexusII/src/commandParser.java b/java/apps/NexusII/src/commandParser.java
deleted file mode 100644
index 64e6da66122..00000000000
--- a/java/apps/NexusII/src/commandParser.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:06 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:05:08 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-// why not use java utilities !!
-
-import java.util.* ;
-import java.lang.* ;
-import java.awt.* ;
-
-
-
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-//import NexusII.networking.* ;
-
-
-
-import awtCommand.* ;
-
-// This class takes a command parses it and packetizes it and puts it in the
-// global send queue. It works in its own thread of control and after nqing
-// its run() method falls off. It does its work and dies
-// Will act as an eventHandler for TextField most probably
-
-public class commandParser implements Command,consts,Runnable {
-
- String command ;
- MT_Bounded_Queue q_ ;
- NexusClientApplet applet_ ;
- // constructor
-
- public commandParser(MT_Bounded_Queue write_q,NexusClientApplet applet) {
- // create a reference to the write_q
- q_ = write_q ;
- // note the applet name
- applet_ = applet ;
-
- }
-
-
- public void execute(Object target, Event evt, Object what) {
- // Get the text which was entered there --
- command = new String((String) what) ;
- // run in a separate thread
- Thread main = new Thread(this);
- main.start();
- }
-
- // The parser etc. run here
- public synchronized void run() {
- String actual_command = new String();
- String data = new String();
- String data_len = new String();
- if(DEBUG) {
- System.out.println("commandParser thread running --- \n");
- }
-
- // Do the parsing first
- if(command.equalsIgnoreCase(LUSERS_STR)) {
- actual_command = new String("LUSERS") ;
- data = applet_.GetRoomName() ;
- data_len = new String(String.valueOf(data.length()));
- if(data.length() == 0)
- return ;
- }
-
- else if(command.equalsIgnoreCase(LROOMS_STR)) {
- actual_command = new String("LROOMS") ;
- data = new String("") ;
- data_len = new String("0") ;
- }
-
- String room = new String("ROOT");
-
- if(DEBUG) {
- System.out.println("The room is " + room + "\n");
- }
-
- /*
- StringBuffer databuffer = new StringBuffer();
-
- // Get the data
- while(t.hasMoreTokens()) {
- databuffer.append(t.nextToken());
- }
- String data = new String(databuffer);
- if(DEBUG) {
- System.out.println("The data is " + data + "\n");
- }
-
- // data length
- String data_len = String.valueOf(data.length());
- // Now make a packet
- */
-
- dataPacket pack = new dataPacket(NexusClientApplet.myName,room,actual_command,data_len,data);
- // enqueue it now
- q_.nq(pack);
-
- } // my job is over
-
-}
-// of class
-
diff --git a/java/apps/NexusII/src/connectionHandler.java b/java/apps/NexusII/src/connectionHandler.java
deleted file mode 100644
index 5e9d3823a68..00000000000
--- a/java/apps/NexusII/src/connectionHandler.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:07 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:05:30 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-// This class will handle the event generated when user presses "connect/dis
-// connect" button. It will maintain all the state associated with a
-// connection ;
-// In particular, it will create reader,writer and demux threads and stop
-// them when user pressed disconnect. It also sends the init and quit
-// packet to the server
-// -- Rajeev Bector 11/26/96
-
-// package NexusII.networking ;
-
-import awtCommand.* ;
-
-import java.net.* ;
-import java.awt.* ;
-import java.io.* ;
-import java.util.* ;
-import ACE.OS.*;
-import ACE.SOCK_SAP.*;
-
-public class connectionHandler implements Command,consts,Runnable {
-
- // The socket for reading and writing
- // private Socket nexusSocket;
- private SOCKConnector nexusConnector_ = new SOCKConnector();
- private SOCKStream nexusStream_ = new SOCKStream();
-
- // Threads which will do reading and writing from Socket
- private Thread readerThread ;
- private Thread writerThread ;
-
- // Threads which demuxes the data from Write Queue
- private Thread demuxThread;
-
- // The socket
- // private Socket nexusSocket_ ;
-
- // Data Streams which flow the data out
- private DataInputStream is_ ;
- private DataOutputStream os_ ;
-
- // links to the outside world
- private MT_Bounded_Queue read_q_ ;
- private MT_Bounded_Queue write_q_ ;
-
- Integer port_ ;
- String host_ ;
-
- NexusClientApplet applet_ ;
- // Constructor
- public connectionHandler(String host,Integer port,NexusClientApplet applet) {
- host_ = host ;
- port_ = port ;
- applet_ = applet ;
- } // of constructor
-
- // This will be called when the "connect/disconnet" button is pressed
-
- public void execute(Object target, Event evt, Object what) {
- // run in a separate thread
- new Thread(this).start();
- }
-
- public synchronized void run() {
-
- // If not connected -- then connect
- if(!applet_.connected) {
-
- // Initialize the queues now
- read_q_ = new MT_Bounded_Queue(QUEUE_SIZE);
- write_q_ = new MT_Bounded_Queue(QUEUE_SIZE);
-
- // Try to connect to the server now
- // nexusSocket_ = new Socket(host_,port_.intValue());
- try {
- nexusConnector_.connect(nexusStream_, host_, port_.intValue());
- }
- catch(SocketException s) { }
- catch(IOException i) { }
- // Attach Streams to read and write end os socket
- os_ = new DataOutputStream(nexusStream_.outputStream());
- is_ = new DataInputStream(nexusStream_.inputStream());
-
- // do something now
-
- // create and start the socket reader first
- readerThread = new socketReaderThread(read_q_,is_);
- readerThread.start();
-
- // now create the writer also -- subclass of consumer
- writerThread = new socketWriterThread(write_q_,os_);
- writerThread.start();
- // Have to send the init packet to the server
- sayHelloToServer();
-
-
- // Do all the graphics needed and also init the join handlers etc.
- applet_.OnConnect();
-
- // make sure that when demux is created -- joinHandler is there ... !!
-
- // Create the demux here -- he'll spawn off the rooms
- demuxThread = new nexusDemuxThread(read_q_,applet_.Mapper());
- demuxThread.start();
-
- } // of if !connected
-
- // if connected already then I have to disconnect --- have to
- // write code for this
- else {
-
- // first leave all the rooms
- for(Enumeration e = applet_.Mapper().keys(); e.hasMoreElements();) {
- String name = (String) e.nextElement() ;
- applet_.SetRoomName(name);
- applet_.nexusJoiner.execute(null,null,LEAVE_STR);
- }
- // send a quit packet to the server
- sayByeToServer();
-
- // Have to send a leave for all the rooms and leave all the rooms
-
- // stop the running threads
- readerThread.stop();
- demuxThread.stop();
-
- // Again meddle with graphics
- applet_.OnDisconnect();
- return ;
- }
- } // of run
-
- // This method returns the underlying socket descriptor
- public Socket handle() {
- return nexusStream_.socket();
- }
-
- public DataInputStream getinStream() {
- return is_ ;
- }
-
- public DataOutputStream getoutStream() {
- return os_ ;
- }
-
- public MT_Bounded_Queue reader_q() {
- return read_q_ ;
- }
-
-
- public MT_Bounded_Queue writer_q() {
- if(write_q_ == null)
- System.out.println("Sending a null write_q");
- return write_q_ ;
- }
-
- // This method will compose a hello packet and send it off -- cannot run
- // this in a separate thread. Has to send this first surely to our TCP
- // Connection
-
- public void sayHelloToServer() {
- // hello doesnt have any body
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH] ;
- String clientID = new String(NexusClientApplet.myName);
- String roomID = new String("ROOT");
- String contentType = new String("INIT");
- String contentLength = new String("0");
-
- // Make a proper packet out of it
- dataPacket initPacket = new dataPacket(clientID,roomID,contentType,contentLength);
-
- // enqueue that packet for socketWriter to read
- write_q_.nq(initPacket);
-
- }
-
- // This method send a Quit command to the server -- to say that it is
- // pushing off
- public void sayByeToServer() {
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH] ;
- String clientID = new String(NexusClientApplet.myName);
- String roomID = new String("null");
- String contentType = new String("QUIT");
- String contentLength = new String("0");
-
- // Make a proper packet out of it
- dataPacket quitPacket = new dataPacket(clientID,roomID,contentType,contentLength);
-
- // enqueue that packet for socketWriter to read
- write_q_.nq(quitPacket);
- } // of sayByeToServer
-
-} // of class
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java/apps/NexusII/src/consts.java b/java/apps/NexusII/src/consts.java
deleted file mode 100644
index 304ec41a41e..00000000000
--- a/java/apps/NexusII/src/consts.java
+++ /dev/null
@@ -1,40 +0,0 @@
-// package NexusII.client ;
-
-// An interface for all the public constants shared by clientApplet
-// All classes that need to access constants will implement this
-
-public interface consts {
- // Length of each field in the header
- public static final int FIELD_LENGTH = 32 ;
-
- // Total length of header
- public static final int PACKET_HEADER_LENGTH = 128;
-
- // Offset where we can find the data length
- public static final int DATA_LEN_OFFSET = 96;
-
- // Size of Queues where reader and writer work
- public static final int QUEUE_SIZE = 20 ;
-
- // Separator used by tokens in the packet
- public static final String SEPARATOR = " " ;
-
- // End of message
- public static final String END_OF_DATA = "\n" ;
-
- // Useful for debugging -- set to false for release version (demo) -- Aravind
- public static final boolean DEBUG = false;
-
- // Size of hash tables
- public static final int HASH_SIZE = 16 ;
-
- public static final String JOIN_STR = "Join" ;
- public static final String LEAVE_STR = "Leave" ;
- public static final String LUSERS_STR = "List Users" ;
- public static final String LROOMS_STR = "List Rooms" ;
-
- public static final int SERVER_PORT = 42429 ;
- public static final String NEXUS_LOGO = "Nexus_Logo.gif";
-}
-
-
diff --git a/java/apps/NexusII/src/dataPacket.java b/java/apps/NexusII/src/dataPacket.java
deleted file mode 100644
index 1bd2dfeb6ab..00000000000
--- a/java/apps/NexusII/src/dataPacket.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:08 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.2 1996/12/07 06:27:38 rajeev
-# yaah paranoid backup ...
-#
-# Revision 1.1 1996/12/06 18:23:45 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:07:53 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-// This class encapsulates a dataPacket
-// Will encapsulate the byteStream as a characterStream into a single thing
-// no packets for now
-// package NexusII.networking ;
-
-//import NexusII.client.* ;
-
-public class dataPacket implements consts, Cloneable{
-
- private String clientName ;
- private String roomName ;
- private String contentType ;
- private String contentLength ;
- private String content ;
-
- // constructor -- will create the data packet
- public dataPacket(byte[] header, byte[] body) {
- int len = FIELD_LENGTH ;
- clientName = new String(header,0,0,len);
- roomName = new String(header,0,1*len,len);
- contentType = new String(header,0,2*len,len);
- contentLength = new String(header,0,3*len,len);
- content = new String(body,0);
- if(DEBUG)
- System.out.println("datapacket: Constructed packet with header " + header + " and body " + body);
- }
-
- // another constructor for length 0 packets
- public dataPacket(String client, String room, String type,String len)
- {
- clientName = new String(client);
- roomName = new String(room);
- contentType = new String(type);
- contentLength = new String(len);
- content = new String();
- }
-
- // another one for some data also
- public dataPacket(String client, String room, String type,String len,String data)
- {
- this(client,room,type,len);
- content = new String(data);
- }
-
- // return the data in bytized header and body
- public void bytize(byte[] header, byte[] body)
- {
- // clear the header and body -- fill them with whitespace
- String white_space = new String(" ");
-
- if(DEBUG) {
- System.out.println("dataPacket: length is " + new Integer(contentLength.trim()).intValue() + "\n");
- }
-
- int len = FIELD_LENGTH ;
- // copy the header
- clientName.getBytes(0,clientName.length(),header,0);
- roomName.getBytes(0,roomName.length(),header,len*1);
- contentType.getBytes(0,contentType.length(),header,len*2);
- contentLength.getBytes(0,contentLength.length(),header,len*3);
-
- int body_len = (new Integer(contentLength.trim())).intValue();
- // copy the body also
- content.getBytes(0,body_len,body,0);
- }
-
- public int contentLength() {
- return new Integer(contentLength.trim()).intValue();
- }
-
- // Returns the destination for the current packet
- public String destination(){
- return roomName.trim() ;
- }
-
- public String contentType() {
- return contentType.trim() ;
- }
-
-
- public String content() {
- return content.trim() ;
- }
-
- public String clientName() {
- return clientName.trim() ;
- }
-
-}
-// of class datapacket
-
-
-
-
-
-
-
-
diff --git a/java/apps/NexusII/src/joinHandler.java b/java/apps/NexusII/src/joinHandler.java
deleted file mode 100644
index 3ff071c26ed..00000000000
--- a/java/apps/NexusII/src/joinHandler.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:09 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:06:22 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-
-// This class will handle the event generated when user presses "join/leave"
-// button. It will maintain all the state associated with all the rooms
-// It'll also create and maintain the rooms
-// -- Rajeev Bector 11/26/96
-
-// package NexusII.networking ;
-
-// This is a SINGLETON
-
-
-import java.net.* ;
-import java.util.* ;
-import java.awt.* ;
-import java.io.* ;
-
-
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-//import NexusII.networking.* ;
-
-import awtCommand.* ;
-
-public class joinHandler implements Command,consts {
- MT_Bounded_Queue write_q_ ;
- Hashtable name_to_q_ ;
- Hashtable name_to_handler_ ;
- NexusClientApplet applet_ ;
-
- // This will be called when the "join/leave" button is pressed
- public joinHandler(MT_Bounded_Queue writer_q,NexusClientApplet applet) {
- write_q_ = writer_q ;
- applet_ = applet ;
- // init. the Hashtables
- name_to_q_ = new Hashtable(HASH_SIZE);
- name_to_handler_ = new Hashtable(HASH_SIZE);
-
- }
-
- public Hashtable Mapper() {
- return name_to_q_ ;
- }
-
- public void execute(Object target, Event evt, Object what) {
-
- String roomName = applet_.GetRoomName() ;
- if(roomName.length()==0) {
- return ;
- }
-
- // if it is the join button
- if(((String)what).equalsIgnoreCase(JOIN_STR)) {
- //if already joined -- return
- if(name_to_q_.get(roomName) != null)
- return ;
-
- // room doesnt exist
- // Just in case the room name isn't listed
- applet_.AddRoomName(roomName);
- // create a new queue for the room to use
-
- MT_Bounded_Queue q_ = new MT_Bounded_Queue(QUEUE_SIZE);
- if(DEBUG) {
- System.out.println("joinHandler: inserted the queue in hash ");
- }
- name_to_q_.put(roomName,q_);
- roomHandler handler = new roomHandler(roomName,q_,write_q_,applet_);
- name_to_handler_.put(roomName,handler);
-
- // send a request to the server
- sayJoinToServer(roomName);
- // sendTestPacket(roomName,"URL","http://cumbia.cs.wustl.edu:4242/~sumedh/NexusII/NexusII.gif",q_);
- } // of join
-
- else {
- // its a "leave packet"
- if(name_to_q_.get(roomName) == null)
- return ;
- // remove the entry from the queue
- name_to_q_.remove(roomName);
-
- roomHandler handle = (roomHandler) name_to_handler_.get(roomName);
- if(DEBUG)
- System.out.println("joinHandler:Stopiing the room thread" + roomName);
- handle.mystop();
- // handle = null ;
-
- // remove the entry from the queue
- name_to_handler_.remove(roomName);
- sayLeaveToServer(roomName);
- } // of else
- } // of execute
-
- private void sayJoinToServer(String roomName) {
- //if (DEBUG)
- // System.out.println("In the say J to server...");
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH] ;
- String clientID = new String(NexusClientApplet.myName);
- String roomID = new String("ROOT");
- String contentType = new String("JOIN");
- String contentLength = String.valueOf(roomName.length());
- String content = new String(roomName);
- // Make a proper packet out of it
- dataPacket joinPacket = new dataPacket(clientID,roomID,contentType,contentLength,content);
-
- // enqueue that packet for socketWriter to read
- write_q_.nq(joinPacket);
- }
-
- private void sayLeaveToServer(String roomName) {
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH] ;
- String clientID = new String(NexusClientApplet.myName);
- String roomID = new String("ROOT");
- String contentType = new String("LEAVE");
- String contentLength = new String(Integer.toString(roomName.length()));
- String content = new String(roomName);
-
- // Make a proper packet out of it
- dataPacket leavePacket = new dataPacket(clientID,roomID,contentType,contentLength,content);
-
- // enqueue that packet for socketWriter to read
- write_q_.nq(leavePacket);
- }
-
-
- public void sendTestPacket(String roomName,String type,String content,MT_Bounded_Queue readq) {
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH] ;
- String clientID = new String(NexusClientApplet.myName);
- String contentLength = new String(Integer.toString(content.length()));
-
-
- // Make a proper packet out of it
- dataPacket testPacket = new dataPacket(clientID,roomName,type,contentLength,content);
-
- // enqueue that packet for socketWriter to read
- readq.nq(testPacket);
- }
-
-
-}
-
-// of class
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/java/apps/NexusII/src/makefile b/java/apps/NexusII/src/makefile
deleted file mode 100644
index c3cff521511..00000000000
--- a/java/apps/NexusII/src/makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-all: client server
-
-client: ../classes/NexusClientApplet.class
-
-../classes/NexusClientApplet.class:
- javac -d ../classes -depend -g NexusClientApplet.java
-
-server: ../classes/NexusIIserver.class
-
-../classes/NexusIIserver.class:
- javac -d ../classes -depend -g NexusIIserver.java
-
-clean:
- rm -f ../classes/*.class *~
-
diff --git a/java/apps/NexusII/src/nexusDemuxThread.java b/java/apps/NexusII/src/nexusDemuxThread.java
deleted file mode 100644
index 96d0fdd06e1..00000000000
--- a/java/apps/NexusII/src/nexusDemuxThread.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:10 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.2 1996/12/05 05:39:47 sumedh
-# ok
-#
-# Revision 1.1 1996/12/02 06:08:20 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-
-// Will take the packets from the input queue
-// Parse the packet
-// Call the room handler thread which Aravind will provide
-
-// Mapper object is the one which returns the room_q reference if you pass
-// it the room number. Aravind has to implement this object called roomMapper
-// which has an instance called mapper in the Applet context. This will be
-// referred by nexusDemuxThread whenever it has anything to put in the room_q
-
-// package NexusII.networking ;
-
-//import NexusII.util.* ;
-//import NexusII.client.* ;
-
-import java.util.* ;
-
-public class nexusDemuxThread extends Thread implements consts {
- MT_Bounded_Queue q_ ;
- dataPacket packet ;
- Hashtable mapper_ ;
-
- // constructor
- public nexusDemuxThread(MT_Bounded_Queue read_q,Hashtable mapper) {
- q_ = read_q ;
- mapper_ = mapper ;
- }
-
- public void run() {
- // run till infinity
- for(;;) {
- if(DEBUG) {
- System.out.println("Demux running ---- ");
- }
- // take out packets from the queue
- // parse to find out which room they belong to
- packet = ((dataPacket)q_.dq());
- if(DEBUG) {
- System.out.println("Demux got something ---- ");
- }
-
- String roomName = packet.destination().trim();
- if(DEBUG) {
- System.out.println("demux: destination is : " + roomName);
- }
- if(DEBUG) {
- System.out.println("Hashtable size is " + new Integer(mapper_.size()));
- }
- // Get a reference to which queue to put it in
- MT_Bounded_Queue room_q = (MT_Bounded_Queue)mapper_.get(roomName);
-
- // nq the packet on the room q
- if(room_q != null) {
- room_q.nq(packet);
- System.out.println("deMux: I have enqueued it successfully");
- }
- else
- {
- System.out.println("demux: room_q was null: i couldnt do much");
- }
- }
- }
- // of run
-}
-// of class
-
-
-
-
-
-// 11/24/96 -- Rajeev Bector
diff --git a/java/apps/NexusII/src/roomHandler.java b/java/apps/NexusII/src/roomHandler.java
deleted file mode 100644
index bd125631b74..00000000000
--- a/java/apps/NexusII/src/roomHandler.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:11 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.4 1996/12/07 06:22:49 rajeev
-# taking a backup !
-#
-# Revision 1.3 1996/12/06 06:20:07 rajeev
-# Changes to include leave handler
-#
-# Revision 1.2 1996/12/06 04:49:44 rajeev
-# working now hopefully !
-#
-# Revision 1.1 1996/12/06 03:44:32 rajeev
-# Initial revision
-#
-
-*/
-
-// per room
-import java.awt.* ;
-import awtCommand.* ;
-import java.io.* ;
-import java.net.* ;
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-//import NexusII.networking.*;
-
-public class roomHandler implements Runnable,consts{
-
- String roomName_ ;
- MT_Bounded_Queue read_q_ ;
- MT_Bounded_Queue write_q_ ;
- RoomFrame rf_;
- Thread mainThread ;
- NexusClientApplet applet_ ;
-
- // I dont know what to do currently
- public roomHandler(String roomName, MT_Bounded_Queue reader_q,MT_Bounded_Queue writer_q,NexusClientApplet applet) {
- roomName_ = roomName ;
- read_q_ = reader_q ;
- write_q_ = writer_q ;
- applet_ = applet ;
- rf_ = new RoomFrame(write_q_,applet_,roomName_);
- // whenever this frame gets the mouse focus, handler will be called
- FrameHandler fh_ = new FrameHandler(applet_);
- rf_.setGotFocusCommand(fh_);
- mainThread = new Thread(this);
- mainThread.start();
- }
-
-
- public void mystop() {
- // dispose the graphics part here
- if(DEBUG)
- System.out.println("Roomhandlers stop called \n");
- rf_.hide();
- rf_.dispose();
- // no longer need the roomframe
- rf_ = null ;
- mainThread.stop();
- }
-
- public void run() {
- if(DEBUG) {
- System.out.println("Room receiver running ---- ");
- }
- while(Thread.currentThread() == mainThread) {
- // get the data packet
- dataPacket packet = (dataPacket)(read_q_.dq()) ;
- if(DEBUG)
- System.out.println("Room - I got something\n");
-
- // if the packet is of text type -- display it
- if(packet.contentType().trim().equalsIgnoreCase("TEXT")) {
- rf_.addText(packet.content());
- }
- // if the packet is a url address -- pull the image across
- // this url has to be an image as of now
- if(packet.contentType().equalsIgnoreCase("URL")) {
- Image im = null ;
- try {
- im = applet_.getImage(new URL(packet.content()));
- } catch (MalformedURLException i) {
- // nothing as of now
- }
- // display the image
- rf_.updateImage(im);
-
- }
-
- if (DEBUG)
- System.out.println("roomhandler" + roomName_ + " got data");
- }
- }
-
- public String toString() {
- return roomName_ ;
- }
-
-} // of class roomHandler
-
-// is executed when the room frame gets mouse focus
-
-class FrameHandler implements Command {
- NexusClientApplet applet_ ;
- public FrameHandler(NexusClientApplet applet) {
- applet_ = applet ;
- }
-
- public void execute(Object target, Event evt, Object what) {
- if(target instanceof Frame) {
- applet_.SetRoomName(((RoomFrame)target).getTitle());
- }
- }
-}
-
diff --git a/java/apps/NexusII/src/socketReaderThread.java b/java/apps/NexusII/src/socketReaderThread.java
deleted file mode 100644
index 35679c504b4..00000000000
--- a/java/apps/NexusII/src/socketReaderThread.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:11 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.3 1996/12/03 01:35:37 rajeev
-# fixed a big bug with respect to trim()
-#
-# Revision 1.2 1996/12/03 01:01:27 rajeev
-# // fixed the bug at line 76
-#
-# Revision 1.1 1996/12/02 06:08:56 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-// The socketReaderThread is like a Producer who reads from the socket and
-// nqs it onto the queue. Thats it ... Big Deal. huh !
-
-// This threads task is
-// 1. Take things from SocketBuffer.
-// 2. Ensure that Full Packets are read
-// 3. Put the packet onto the queue
-
-//package NexusII.networking ;
-
-// get hold of java classes
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-
-import java.io.* ;
-
-
-public class socketReaderThread extends Producer implements Runnable,consts
-{
- DataInputStream is_ ;
-
- // new constructor
- // Pass the queue and socketid to the constructor
-
- public socketReaderThread(MT_Bounded_Queue q, DataInputStream is) {
- // call the super constructor
- super(q);
- is_ = is ;
- }
-
- // This will just override the run method and thats it
- // I want to have my own run !
-
- public void run() {
- // run indefinitely -- i am a daemon anyway
- if(DEBUG) {
- System.out.println("--- This is socketReaderThread --- \n");
- }
-
- for(;;) {
-
- // read header bytes from stream
- int field_len = FIELD_LENGTH ;
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH];
- try {
- is_.readFully(packetHeader,0,PACKET_HEADER_LENGTH);
- }
- catch (IOException e) {
- // do something here
- System.out.println("socketReader: I/O exception in read: I am quitting");
- // what to do here -- right now quit
- return ;
- }
- if(DEBUG){
- System.out.println("socketReader read:" + new String(packetHeader,0));
- }
-
- // take out the length field from this
- String length = new String(packetHeader,0,DATA_LEN_OFFSET,field_len);
-
- // Read this much more from the socket
- if(DEBUG) {
- System.out.println("The length of packet is " + length);
- }
-
- Integer Test = new Integer(length.trim());
- int len = Test.intValue();
- if(DEBUG) {
- System.out.println("srt: attempting to read " + Test + " bytes ");
- }
-
- byte[] packetBody = new byte[len] ;
- try {
- if(len != 0)
- is_.readFully(packetBody,0,len);
- }
- catch (IOException e) {
- // do something here
- System.out.println("socketReader: I/O exception in read: I am quitting");
- // what to do here -- right now quit
- return ;
- }
-
- // The header and the body are there now -- so make a packet
- dataPacket packet = new dataPacket(packetHeader,packetBody);
- if(DEBUG)
- System.out.println("srt: Now nq'ing item body " + packet.content() );
- queue_.nq(packet);
- if(DEBUG)
- System.out.println("srt: Done nq'ing..");
-
- // go back to reading the socket now
- }
- // of for(;;)
- }
- // of method run
-}
diff --git a/java/apps/NexusII/src/socketWriterThread.java b/java/apps/NexusII/src/socketWriterThread.java
deleted file mode 100644
index 395449b6a53..00000000000
--- a/java/apps/NexusII/src/socketWriterThread.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- $RCSfile$
- $Author$
-
- Last Update: $Date$
- $Revision$
-
- REVISION HISTORY:
- $Log$
- Revision 1.1 1997/01/31 01:11:12 sumedh
- Added the Nexus II source code files.
-
-# Revision 1.1 1996/12/07 06:27:38 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:09:22 rajeev
-# Initial revision
-#
-# Revision 1.1 1996/12/02 06:02:24 rajeev
-# Initial revision
-#
-
-*/
-// The socketWriterThread is like a Consumer who reads from the write_q and
-// puts it onto the socket. Thats it ... Big Deal. huh !
-
-// This threads task is
-// 1. Write things to SocketBuffer.
-// 2. Ensure that Full Packets are sent
-// 3. Read the packet off the queue
-
-//package NexusII.networking ;
-
-// get hold of java classes
-
-import java.io.* ;
-
-//import NexusII.client.* ;
-//import NexusII.util.* ;
-
-public class socketWriterThread extends Consumer implements Runnable,consts
-{
- DataOutputStream os_ ;
-
- // new constructor
- // Pass the queue and outstream to the constructor
-
- public socketWriterThread(MT_Bounded_Queue q, DataOutputStream os) {
- // call the super constructor
- super(q);
- os_ = os ;
- }
-
- // This will just override the run method and thats it
- // I want to have my own run !
-
- public void run() {
- // run indefinitely -- i am a daemon anyway
- if(DEBUG) {
- System.out.println("--- This is socketWriterThread --- \n");
- }
- boolean bye_sent = false ;
- while(!bye_sent) {
-
- // read the packet from the queue
- dataPacket packet = (dataPacket) queue_.dq();
- if(DEBUG){
- System.out.println("socketWriterThread: I got something -- \n");
- }
-
- // read length bytes from packet
- int len = packet.contentLength() ;
- if(DEBUG) {
- System.out.println("socketWriterThread: length is " + new Integer(len));
- }
-
-
- int field_len = FIELD_LENGTH ;
-
- // Allocate storage for holding the fields
-
- byte[] packetHeader = new byte[PACKET_HEADER_LENGTH];
- byte[] packetBody = new byte[len] ;
-
- // Fill them
- packet.bytize(packetHeader,packetBody);
-
- // put it on the wire now --
-
- try {
- os_.write(packetHeader,0,PACKET_HEADER_LENGTH);
- }
- catch (IOException e) {
- // do something here
- }
- if(DEBUG){
- System.out.println("I wrote:" + new String(packetHeader,0));
- }
-
- try {
- os_.write(packetBody,0,len);
- }
- catch (IOException e) {
- // do something here
- }
- if(DEBUG){
- System.out.println("I wrote:" + new String(packetBody,0));
- }
- // this is to handle if the user presses disconnect without leaving the
- // room
- if(packet.contentType().equalsIgnoreCase("QUIT"))
- bye_sent = true ;
- // go back to reading the queue now
- }
- // of for(;;)
- }
- // of method run
-
-}
diff --git a/java/apps/NexusII/src/url_to_url.java b/java/apps/NexusII/src/url_to_url.java
deleted file mode 100644
index 0fe08ab6db3..00000000000
--- a/java/apps/NexusII/src/url_to_url.java
+++ /dev/null
@@ -1,33 +0,0 @@
-// This method takes in a url and a prefix name and pulls that url across the
-// network, stores it in a local file named prefix
-
-// for now it assumes that the url is an image only !
-
-import java.net.* ;
-import java.io.* ;
-import java.awt.* ;
-public class url_to_url {
- Image im ;
-
- public url_to_url(URL url,String prefix) {
- try {
- im = (Image)url.getContent();
- } catch (IOException i) {}
- String www_path = System.getProperty("www-path");
- String home_dir = System.getProperty("user.home");
- String dir = home_dir + www_path ;
- System.out.println("web dir is this : " + dir);
-
- }
-
- public static void main(String[] argv) {
- URL test = null ;
- try {
- test = new URL("http://www.cs.wustl.edu/~rajeev/images/sand.jpg");
- } catch ( MalformedURLException e) {}
-
- url_to_url t = new url_to_url(test,"root") ;
-
- }
-
-}
diff --git a/java/apps/NexusII/start b/java/apps/NexusII/start
deleted file mode 100755
index c699c96da60..00000000000
--- a/java/apps/NexusII/start
+++ /dev/null
@@ -1,27 +0,0 @@
-#! /bin/sh
-
-## This is an example script to launch the server.
-
-# the mywebaddress variable should point to a URL which is world-readable
-# the mywebdir variable should point to the actual pathname of the URL
-# which is specified by the mywebaddress variable
-# The server needs to have write access to the mywebdir directory.
-# Thus, the server saves images into the "mywebdir", and clients
-# can access them via the "mywebaddress" URL.
-
-# the 222222 number is the port number on which the server is to be launched
-# the same port number should appear in the html document containing
-# the client applet (see start.html for an example)
-
-# while running the server, the ./classes should be part of the CLASSPATH.
-# while running the client, the client classes as well as the awtCommand
-# toolkit should be world-readable. (The awtcommand toolkit is included
-# in this toolkit, under the classes directory.)
-
-
-umask 022
-java -Dmywebaddress=http://cumbia.cs.wustl.edu/NexusII/tmp/ -Dmywebdir=/project/cumbia/sumedh/web/apache/root/NexusII/tmp/ NexusIIserver 222222
-
-
-
-
diff --git a/java/apps/NexusII/start.html b/java/apps/NexusII/start.html
deleted file mode 100644
index e80bdd13d4b..00000000000
--- a/java/apps/NexusII/start.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<!-- $Id$ -->
-<applet code=NexusClientApplet.class width=550 height=500>
- <param name=serverport value="222222">
-</applet>
diff --git a/java/classes/README.TXT b/java/classes/README.TXT
deleted file mode 100644
index ba771e6615d..00000000000
--- a/java/classes/README.TXT
+++ /dev/null
@@ -1,2 +0,0 @@
-The .class files are not included in the release archive. When properly
-setup and built, a JACE subdirectory will be here.
diff --git a/java/doc/images/GridBagEx.gif b/java/doc/images/GridBagEx.gif
deleted file mode 100644
index 16c326d88ca..00000000000
--- a/java/doc/images/GridBagEx.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/OpenBookIcon.gif b/java/doc/images/OpenBookIcon.gif
deleted file mode 100644
index 86384f7733f..00000000000
--- a/java/doc/images/OpenBookIcon.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/blue-ball-small.gif b/java/doc/images/blue-ball-small.gif
deleted file mode 100644
index d4c5cde5b00..00000000000
--- a/java/doc/images/blue-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/blue-ball.gif b/java/doc/images/blue-ball.gif
deleted file mode 100644
index edc29b786ce..00000000000
--- a/java/doc/images/blue-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/class-index.gif b/java/doc/images/class-index.gif
deleted file mode 100644
index 7f276bcb242..00000000000
--- a/java/doc/images/class-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/constructor-index.gif b/java/doc/images/constructor-index.gif
deleted file mode 100644
index 435cac42386..00000000000
--- a/java/doc/images/constructor-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/constructors.gif b/java/doc/images/constructors.gif
deleted file mode 100644
index d1a6ae507ca..00000000000
--- a/java/doc/images/constructors.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/cyan-ball-small.gif b/java/doc/images/cyan-ball-small.gif
deleted file mode 100644
index 7f74357443a..00000000000
--- a/java/doc/images/cyan-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/cyan-ball.gif b/java/doc/images/cyan-ball.gif
deleted file mode 100644
index 97ca1f2b6e3..00000000000
--- a/java/doc/images/cyan-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/error-index.gif b/java/doc/images/error-index.gif
deleted file mode 100644
index 22835ff8c64..00000000000
--- a/java/doc/images/error-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/exception-index.gif b/java/doc/images/exception-index.gif
deleted file mode 100644
index e3830d9c52e..00000000000
--- a/java/doc/images/exception-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/green-ball-small.gif b/java/doc/images/green-ball-small.gif
deleted file mode 100644
index 17fea5b32bb..00000000000
--- a/java/doc/images/green-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/green-ball.gif b/java/doc/images/green-ball.gif
deleted file mode 100644
index 71e1b2ec2db..00000000000
--- a/java/doc/images/green-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/interface-index.gif b/java/doc/images/interface-index.gif
deleted file mode 100644
index bf93dda9e35..00000000000
--- a/java/doc/images/interface-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/magenta-ball-small.gif b/java/doc/images/magenta-ball-small.gif
deleted file mode 100644
index bd0584b3c67..00000000000
--- a/java/doc/images/magenta-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/magenta-ball.gif b/java/doc/images/magenta-ball.gif
deleted file mode 100644
index 5da03b84d2b..00000000000
--- a/java/doc/images/magenta-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/method-index.gif b/java/doc/images/method-index.gif
deleted file mode 100644
index a05e7051160..00000000000
--- a/java/doc/images/method-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/methods.gif b/java/doc/images/methods.gif
deleted file mode 100644
index 949e01b8a33..00000000000
--- a/java/doc/images/methods.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/package-index.gif b/java/doc/images/package-index.gif
deleted file mode 100644
index f894d4210d7..00000000000
--- a/java/doc/images/package-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/red-ball-small.gif b/java/doc/images/red-ball-small.gif
deleted file mode 100644
index f6b3c372ca1..00000000000
--- a/java/doc/images/red-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/red-ball.gif b/java/doc/images/red-ball.gif
deleted file mode 100644
index dca92960148..00000000000
--- a/java/doc/images/red-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/variable-index.gif b/java/doc/images/variable-index.gif
deleted file mode 100644
index 65cc029e722..00000000000
--- a/java/doc/images/variable-index.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/variables.gif b/java/doc/images/variables.gif
deleted file mode 100644
index e8a735399a6..00000000000
--- a/java/doc/images/variables.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/yellow-ball-small.gif b/java/doc/images/yellow-ball-small.gif
deleted file mode 100644
index 8e5f57cdfcb..00000000000
--- a/java/doc/images/yellow-ball-small.gif
+++ /dev/null
Binary files differ
diff --git a/java/doc/images/yellow-ball.gif b/java/doc/images/yellow-ball.gif
deleted file mode 100644
index 2b8c0bb3d6b..00000000000
--- a/java/doc/images/yellow-ball.gif
+++ /dev/null
Binary files differ
diff --git a/java/examples/Logger/README b/java/examples/Logger/README
deleted file mode 100644
index 1da7dbcbb19..00000000000
--- a/java/examples/Logger/README
+++ /dev/null
@@ -1,29 +0,0 @@
-This directory contains a simple client/server Java implementation of the
-distributed logging server described in several papers in the C++
-Report (which can be obtained via the following WWW URLs:
-http://www.cs.wustl.edu/~schmidt/{Reactor1-93.ps.gz,Reactor2-93.ps.gz}).
-
-The example consists of the following two directories:
-
- . client
- NOT YET CONVERTED
- This program talks directly to the server logging
- daemon. The server daemon must be started before you
- can run this test.
-
- . simple-server
-
- This program runs a simple
- implementation of the
- distributed logging server daemon. It also contains
- code for a simple client as well.
-
- . Acceptor-server
- NOT YET CONVERTED
- This program runs templated, Acceptor-based
- single-threaded Reactive implementation of the
- distributed logging server daemon.
-
-The server implemented in "simple" is completely compatible with the
-client defined in the C++ version of ACE.
-
diff --git a/java/examples/Logger/simple-server/LogRecord.java b/java/examples/Logger/simple-server/LogRecord.java
deleted file mode 100644
index e29ed6e32b9..00000000000
--- a/java/examples/Logger/simple-server/LogRecord.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * Class used to communicate logging information; compatible with
- * the C++ ACE ACE_Log_Record class.
- *
- * @author Chris Cleeland
- */
-
-//package ACE.SimpleLogger;
-
-import java.util.Date;
-import java.io.DataOutputStream;
-import java.io.DataInputStream;
-import java.io.PrintStream;
-import java.io.IOException;
-
-public class LogRecord
-{
- final public static int MAXLOGMSGLEN = 4 * 1024;
-
- private int type_;
- private int length_;
- private int timeStamp_;
- private int pid_;
- private byte[] msgData_ = new byte[MAXLOGMSGLEN];
- private final static int numIntMembers = 4;
- private final static int sizeofIntInBytes = 4;
-
- /**
- * Create a default instance.
- */
- public LogRecord()
- {
- this(0, (int) ((new Date()).getTime()/1000), 0);
- }
-
- /**
- * Create a LogRecord. This is the designated initializer.
- * @param priority a numeric specification of the priority (ascending)
- * @param time_stamp time attached to the log entry in Unix <pre>time_t</pre> format
- * @param pid the process ID; not currently used
- */
- public LogRecord(int priority,
- int timeStamp,
- int pid)
- {
- type(priority);
- timeStamp(timeStamp);
- length(0);
- pid(pid);
- }
-
- /**
- * Conversion to string. Only includes the <pre>msgData_</pre> member.
- */
- public String toString()
- {
- return new String(msgData_, 0);
- }
-
- /**
- * Place a textual representation of the record on a PrintStream.
- * @param hostname name of the host generating this record
- * @param verbose if <b>true</b>, print information in the form, (give example)
- * @param ps A PrintStream instance to which the output should go.
- * @see PrintStream,String
- */
- public void print(String hostname,
- boolean verbose,
- PrintStream ps)
- {
- String toprint;
- if (verbose)
- {
- long cur = (long)timeStamp() * (long)1000;
- Date now = new Date(cur);
-
- /* 01234567890123456789012345 */
- /* Wed Oct 18 14:25:36 1989n0 */
- toprint = now.toString().substring(4) + "@"
- + hostname + "@" + pid_ + "@" + type_ + "@"
- + this.toString();
- }
- else
- {
- toprint = this.toString();
- }
- ps.println(toprint);
- }
-
- /**
- * Streaming methods
- */
- public void streamInFrom(DataInputStream dis) throws IOException
- {
- // Order here must match layout order in the C++ class.
- // This, of course, is VERY fragile, and ought not be used as
- // a model for anything except how NOT to do anything.
- type(dis.readInt());
- length(dis.readInt());
- timeStamp(dis.readInt());
- pid(dis.readInt());
-
- // Does readFully() allocate space for the buffer? Either
- // way, we won't have memory leaks :-)
- int dataLength = (int) (length_ - numIntMembers * sizeofIntInBytes);
- msgData_ = new byte[dataLength];
- dis.readFully(msgData_, 0, dataLength);
- }
-
- public void streamOutTo(DataOutputStream dos) throws IOException
- {
- dos.writeInt(type());
- dos.writeInt(length());
- dos.writeInt(timeStamp());
- dos.writeInt(pid());
- int dataLength = (int) (length_ - numIntMembers * sizeofIntInBytes);
- dos.write(msgData_, 0, dataLength);
- }
-
- /**
- * Accessor methods
- */
- public int type() { return type_; }
- public void type(int t) { type_ = t; }
-
- public int length() { return length_; }
- public void length(int l) { length_ = l; }
- private void setLen(int msgLen)
- { length(msgLen + numIntMembers * sizeofIntInBytes); }
-
- public int timeStamp() { return timeStamp_; }
- public void timeStamp(int t){ timeStamp_ = t; }
-
- public int pid() { return pid_; }
- public void pid(int p) { pid_ = p; }
-
- public byte[] msgData() { return msgData_; }
- public void msgData(byte[] m){ msgData_ = m; setLen(m.length); }
- public void msgData(String m)
- {
- m.getBytes(0, m.length(), msgData_, 0);
- setLen(m.length());
- }
-};
-
diff --git a/java/examples/Logger/simple-server/LoggerConstants.java b/java/examples/Logger/simple-server/LoggerConstants.java
deleted file mode 100644
index db62d2fff6e..00000000000
--- a/java/examples/Logger/simple-server/LoggerConstants.java
+++ /dev/null
@@ -1,7 +0,0 @@
-// package ACE.Logger;
-
-public class LoggerConstants
-{
- final public static int DEFAULT_SERVER_PORT = 4000;
- final public static String DEFAULT_SERVER_HOSTNAME = "localhost";
-}
diff --git a/java/examples/Logger/simple-server/LoggingAcceptor.java b/java/examples/Logger/simple-server/LoggingAcceptor.java
deleted file mode 100644
index 7925e3d5a15..00000000000
--- a/java/examples/Logger/simple-server/LoggingAcceptor.java
+++ /dev/null
@@ -1,33 +0,0 @@
-//package ACE.SimpleLogger;
-
-import JACE.SOCK_SAP.*;
-import java.io.IOException;
-
-public class LoggingAcceptor extends Thread
-{
- private SOCKAcceptor peerAcceptor_;
-
- public LoggingAcceptor(int port) throws IOException
- {
- peerAcceptor_ = new SOCKAcceptor(port);
- this.setName("LoggingAcceptor");
- System.err.println("Waiting for connection on port " +
- port);
- }
-
- public void run()
- {
- try
- {
- while (true)
- {
- LoggingHandler handler = new LoggingHandler();
- peerAcceptor_.accept(handler.stream());
- handler.open();
- }
- }
- catch (IOException e)
- {
- }
- }
-};
diff --git a/java/examples/Logger/simple-server/LoggingClient.java b/java/examples/Logger/simple-server/LoggingClient.java
deleted file mode 100644
index e6ea986c011..00000000000
--- a/java/examples/Logger/simple-server/LoggingClient.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * Main class that acts as an example logging client.
- */
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import LogRecord;
-import LoggerConstants;
-
-public class LoggingClient implements Runnable
-{
- private String loggerHost_;
- private int port_;
- private int maxIter_;
- private static final int DEFAULT_ITERATIONS = 10;
-
- public static void main(String[] args)
- {
- // Really need to put code in here to parse options
- int iter;
- int port;
- String host;
-
- iter = (args.length > 0) ? Integer.parseInt(args[0])
- : DEFAULT_ITERATIONS;
- port = (args.length > 1) ? Integer.parseInt(args[1])
- : LoggerConstants.DEFAULT_SERVER_PORT;
- host = (args.length > 2) ? args[2]
- : LoggerConstants.DEFAULT_SERVER_HOSTNAME;
-
- LoggingClient lc = new LoggingClient(iter, port, host);
- lc.run();
- }
-
- public LoggingClient()
- {
-
- this(DEFAULT_ITERATIONS,
- LoggerConstants.DEFAULT_SERVER_PORT,
- LoggerConstants.DEFAULT_SERVER_HOSTNAME);
- }
-
- public LoggingClient(int iterations, int thePort, String theHost)
- {
- maxIter_ = iterations;
- port_ = thePort;
- loggerHost_ = theHost;
- }
-
- public void run()
- {
- SOCKStream logger = new SOCKStream();
- SOCKConnector connector = new SOCKConnector();
- // INETAddr addr = new INETAddr(port_, loggerHost_);
-
- LogRecord rec = new LogRecord(9, 2, 0);
-
- try
- {
- connector.connect(logger, loggerHost_, port_);
-
- int oneSecond = 1000;
- // Currently SOCKStream uses DataInputStream for its input stream,
- // and PrintStream for its output stream. It probably ought to use
- // DataOutputStream for the output stream for symmetry, or at least
- // provide a mechanism for changing the type of the filter stream
- // used (which might be better in the long run...give it the class
- // id).
- BufferedOutputStream bos = new BufferedOutputStream((OutputStream) logger.outputStream(), LogRecord.MAXLOGMSGLEN);
- DataOutputStream dos = new DataOutputStream(bos);
-
- for (int i = 0; i < maxIter_; i++)
- {
- // Need to overload LogRecord.msgData to take a String
- // argument so that it's easy to create instances with text
- // inside.
- rec.msgData("message = " + i);
- try
- {
- dos.writeInt(rec.length());
- rec.streamOutTo(dos);
- bos.flush();
- rec.print("localhost", true, System.err);
- }
- catch (IOException ex) { }
-
- try
- {
- Thread.sleep(oneSecond);
- }
- catch (InterruptedException ex) { }
- }
-
- try { logger.close(); } catch (IOException ex) { }
-
- }
- catch (SocketException ex)
- {
- System.err.println("socket exception: " + ex);
- }
- catch (IOException ex)
- {
- System.err.println("io exception: " + ex);
- }
-
- }
-}
diff --git a/java/examples/Logger/simple-server/LoggingHandler.java b/java/examples/Logger/simple-server/LoggingHandler.java
deleted file mode 100644
index aeffc991ac3..00000000000
--- a/java/examples/Logger/simple-server/LoggingHandler.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*************************************************
- *
- *@author Chris Cleeland
- *
- * What we really need to define is a run() (or whatever
- * the Thread class has as its method to execute code), and
- * have that do the usual delegated work of handle_input.
- * We also need to figure out the best place to close the
- * the socket, which probably ISN'T the finalizer.
- *
- *************************************************/
-
-//package ACE.SimpleLogger;
-
-import JACE.SOCK_SAP.*;
-import java.util.*;
-import java.io.*;
-
-// Should this extend or simply be handed to a Thread instance to
-// be run?
-public class LoggingHandler extends Thread
-{
- private SOCKStream cliStream_;
-
- /**
- * Create a default Logging Handler
- */
- public LoggingHandler()
- {
- this(new SOCKStream());
- }
-
- /**
- * Create a LoggingHandler with an existing stream
- */
- public LoggingHandler(SOCKStream aStream)
- {
- cliStream_ = aStream;
- setName();
- }
-
- private void setName()
- {
- int portnum = ((cliStream_.socket() == null)
- ? 0
- : cliStream_.socket().getLocalPort());
- this.setName("LoggingHandler#" + portnum);
- }
-
- /**
- * Start
- */
- public void open()
- {
- this.start();
- }
-
- /**
- */
- public SOCKStream stream()
- {
- return cliStream_;
- }
-
- /**
- * Handle logging events
- */
- public void run()
- {
- DataInputStream dis = (DataInputStream) cliStream_.inputStream();
-
- for (;;)
- {
- // Messages arrive in the following format:
- // o 4 byte length (network format)
- // o message, in ACE.LogRecord format
- //
- // Hey! We need exception catching in here too!
- try
- {
- // Reconstitute a log message from the wire
- LogRecord rec = new LogRecord();
-
- // We don't really need this, because
- // the object already knows how to
- // extract itself properly. However,
- // in order to interoperate with the
- // C++ version, this must be extracted.
- // Plus, it makes a convenient way to
- // check everything.
- int length = dis.readInt();
-
- rec.streamInFrom(dis);
-
- if (rec.length() == length)
- {
- rec.print(cliStream_.socket().getInetAddress().getHostName(),
- true, System.out);
- System.out.flush();
- }
- else
- {
- System.err.println("Logging_Handler: Length error receiving logging message\n");
- }
- }
- catch (EOFException eof)
- {
- System.err.println(Thread.currentThread().getName()
- + ": end-of-file condition found; terminating.");
- try { cliStream_.close(); } catch (IOException n) { }
- this.stop();
- }
- catch (IOException ioe)
- {
- System.err.println(Thread.currentThread().getName()
- + ": IOException received -- "
- + ioe.getMessage());
- }
- }
- }
-};
diff --git a/java/examples/Logger/simple-server/Makefile b/java/examples/Logger/simple-server/Makefile
deleted file mode 100644
index 5be1b0d048e..00000000000
--- a/java/examples/Logger/simple-server/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-.SUFFIXES: .java .class
-
-CLASSDIR = .
-DOCDIR = .
-
-JC = javac_g
-JCOPTS = -g -d $(CLASSDIR)
-JD = javadoc
-JDOPTS = -d $(DOCDIR)
-
-COMPILE.java = $(JC) $(JCOPTS) $<
-DOCCOMP.java = $(JD) $(JDOPTS) $<
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-CLASSES = LoggerConstants LogRecord LoggingHandler \
- LoggingAcceptor SimpleLogger LoggingClient
-CLASSFILES = $(addsuffix .class,$(CLASSES))
-DOCFILES = $(addsuffix .html,$(CLASSES))
-
-%.class: %.java
- $(COMPILE.java)
-
-%.html: %.java
- $(DOCCOMP.java)
-
-all: classes doc
-
-classes: $(CLASSFILES)
-doc: $(DOCFILES)
-
-clean:
- $(RM) *~ $(CLASSFILES) $(DOCFILES)
-
diff --git a/java/examples/Logger/simple-server/README b/java/examples/Logger/simple-server/README
deleted file mode 100644
index 90393c1aae8..00000000000
--- a/java/examples/Logger/simple-server/README
+++ /dev/null
@@ -1,25 +0,0 @@
-======
-BASICS
-======
-
-This directory contains both the client (LoggingClient.java) and the
-server (SimpleLogger.java). To compile, use GNU make with no specific
-target.
-
-To execute, use "java <classname>" where <classname> is from the
-following table:
-
- Application <classname>
- ===========================================
- client LoggingClient
- server SimpleLogger
-
-
-==============
-KNOWN PROBLEMS
-==============
-
-Interoperability between the C++ client and the Java server
-implementation is fine. Interoperability between the C++ server and
-the Java client seems to work right now. See the CVS information on
-LoggingClient.java for details.
diff --git a/java/examples/Logger/simple-server/SimpleLogger.java b/java/examples/Logger/simple-server/SimpleLogger.java
deleted file mode 100644
index f562689e283..00000000000
--- a/java/examples/Logger/simple-server/SimpleLogger.java
+++ /dev/null
@@ -1,44 +0,0 @@
-//package ACE.SimpleLogger;
-
-import java.io.IOException;
-
-class SimpleLogger implements Runnable
-{
- private LoggingAcceptor la;
- private int port;
-
- public static void main(String[] args)
- {
- SimpleLogger sl = new SimpleLogger();
- sl.run();
- }
-
- public SimpleLogger()
- {
- this(LoggerConstants.DEFAULT_SERVER_PORT);
- }
-
- public SimpleLogger(int port)
- {
- try
- {
- la = new LoggingAcceptor(port);
- }
- catch (IOException ioe)
- {
- System.err.println("SimpleLogger: unable to create LoggingAcceptor ("
- + ioe.getMessage() + ")");
- }
- }
-
- public void run()
- {
- la.run();
- try
- {
- la.join();
- }
- catch (InterruptedException ie)
- { }
- }
-};
diff --git a/java/gjt/Assert.java b/java/gjt/Assert.java
deleted file mode 100644
index b704be9ff3c..00000000000
--- a/java/gjt/Assert.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package gjt;
-
-/**
- * A simple assertion mechanism for asserting validity of
- * arguments.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- */
-public class Assert {
- static public void notFalse(boolean b)
- throws IllegalArgumentException {
- if(b == false)
- throw new IllegalArgumentException(
- "boolean expression false");
- }
- static public void notNull(Object obj)
- throws IllegalArgumentException {
- if(obj == null)
- throw new IllegalArgumentException("null argument");
- }
-
- static public void notFalse(boolean b, String s)
- throws IllegalArgumentException {
- if(b == false)
- throw new IllegalArgumentException(s);
- }
- static public void notNull(Object obj, String s)
- throws IllegalArgumentException {
- if(obj == null)
- throw new IllegalArgumentException(s);
- }
-}
diff --git a/java/gjt/Bargauge.java b/java/gjt/Bargauge.java
deleted file mode 100644
index 27be8afad7b..00000000000
--- a/java/gjt/Bargauge.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A bargauge which can be filled (wholly or partially) with a
- * client-specified color. Fill color is specified at
- * construction time; both fill color and fill percent may be
- * set after construction time.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ThreeDRectangle
- * @see gjt.test.BargaugeTest
- */
-public class Bargauge extends Canvas {
- private double percentFill = 0;
- private ThreeDRectangle border = new ThreeDRectangle(this);
- private Color fillColor;
-
- public Bargauge(Color fillColor) {
- setFillColor(fillColor);
- }
- public void setFillColor(Color fillColor) {
- this.fillColor = fillColor;
- }
- public void setFillPercent(double percentage) {
- Assert.notFalse(percentage >= 0 && percentage <= 100);
- percentFill = percentage;
- }
- public void resize(int w, int h) {
- reshape(location().x, location().y, w, h);
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x,y,w,h);
- border.resize(w,h);
- }
- public Dimension minimumSize() { return preferredSize(); }
-
- public Dimension preferredSize() {
- int w = border.getThickness() * 3;
- return new Dimension(w, w*4);
- }
- public void paint(Graphics g) {
- border.raise();
- border.paint();
- fill();
- }
- public void fill() {
- Graphics g = getGraphics();
-
- if((g != null) && (percentFill > 0)) {
- Rectangle b = border.getInnerBounds();
- int fillw = b.width;
- int fillh = b.height;
-
- if(b.width > b.height) fillw *= percentFill/100;
- else fillh *= percentFill/100;
-
- g.setColor(fillColor);
- border.clearInterior();
-
- if(b.width > b.height)
- g.fillRect(b.x, b.y, fillw, b.height);
- else
- g.fillRect(b.x, b.y + b.height - fillh,
- b.width, fillh);
- }
- }
- protected String paramString() {
- Dimension size = size();
- Orientation orient = size.width > size.height ?
- Orientation.HORIZONTAL :
- Orientation.VERTICAL;
- String str = "fill percent=" + percentFill + "," +
- "orientation=" + orient + "," +
- "color" + fillColor;
- return str;
- }
-}
diff --git a/java/gjt/Border.java b/java/gjt/Border.java
deleted file mode 100644
index ba80ef2e76a..00000000000
--- a/java/gjt/Border.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A panel containing a single component, around which a border
- * is drawn. Of course, the single component may be a
- * container which may contain other components, so a Border
- * can surround multiple components.<p>
- *
- * Thickness of the border, and the gap between the Component
- * and the border are specified at time of construction.
- * Default border thickness is 2 - default gap is 0.<p>
- *
- * Border color may be set via setLineColor(Color).<p>
- *
- * Border employs a DrawnRectangle to paint the border. Derived
- * classes are free to override DrawnRectangle border() if they
- * wish to use an extension of DrawnRectangle for drawing their
- * border.<p>
- *
- * The following code snippet, from gjt.test.BorderTest creates
- * and AWT Button, and embeds the button in a border. That
- * border is then embedded in another border. The AWT Button
- * winds up inside of a cyan border with a pixel width of 7,
- * inside of a black border (pixel width 2):<p>
- *
- * <pre>
- * private Border makeBorderedAWTButton() {
- * Button button;
- * Border cyanBorder, blackBorder;
- *
- * button = new Button("Button Inside Two Borders");
- * cyanBorder = new Border(button, 7);
- * cyanBorder.setLineColor(Color.cyan);
- *
- * blackBorder = new Border(cyanBorder);
- *
- * return blackBorder;
- * }
- *</pre>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see DrawnRectangle
- * @see ThreeDBorder
- * @see EtchedBorder
- * @see gjt.test.BorderTest
- */
-public class Border extends Panel {
- protected int thickness;
- protected int gap;
- protected DrawnRectangle border;
-
- protected static int _defaultThickness = 2;
- protected static int _defaultGap = 0;
-
- public Border(Component borderMe) {
- this(borderMe, _defaultThickness, _defaultGap);
- }
- public Border(Component borderMe, int thickness) {
- this(borderMe, thickness, _defaultGap);
- }
- public Border(Component borderMe, int thickness, int gap) {
- this.thickness = thickness;
- this.gap = gap;
-
- setLayout(new BorderLayout());
- add("Center", borderMe);
- }
- public Insets insets() {
- return new Insets(thickness+gap, thickness+gap,
- thickness+gap, thickness+gap);
- }
- public Rectangle getInnerBounds() {
- return border().getInnerBounds();
- }
- public void setLineColor(Color c) {
- border().setLineColor(c);
- }
- public Color getLineColor() {
- return border().getLineColor();
- }
- public void paint(Graphics g) {
- border().paint();
- }
- public void resize(int w, int h) {
- Point location = location();
- reshape(location.x, location.y, w, h);
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x, y, w, h);
- border().resize(w, h);
- }
- protected String paramString() {
- return super.paramString() + ",border=" +
- border().toString() + ",thickness=" + thickness
- + ",gap=" + gap;
- }
- protected DrawnRectangle border() {
- if(border == null)
- border = new DrawnRectangle(this, thickness);
- return border;
- }
-}
diff --git a/java/gjt/Box.java b/java/gjt/Box.java
deleted file mode 100644
index 8feda366942..00000000000
--- a/java/gjt/Box.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A Panel containing a single component; an etched rectangle is
- * drawn around the component, and a Label is centered at the top
- * of the rectangle. Of course, the single component may be
- * a container, and therefore a Box may surround many components.
- * <p>
- *
- * Both the Component around which the box is drawn, and the
- * String drawn at the top of the box are specified at
- * construction time.<p>
- *
- * Etching of the box is controlled by etchedIn() and
- * etchedOut(). Default etching is etched in.<p>
- *
- * <em>Note: AWT 1.0.2 contains a bug which causes the
- * Label.CENTER argument of the Label created for the title
- * to be ignored, under Win95. Therefore, under Win95, the
- * title will be off-center.</em><p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see EtchedRectangle
- * @see gjt.test.BoxTest
- */
-public class Box extends Panel {
- private EtchedRectangle box = new EtchedRectangle(this);
- private Label titleLabel;
-
- public Box(Component surrounded, String title) {
- this(surrounded, new Label(title, Label.CENTER));
- }
- public Box(Component surrounded, Label label) {
- Assert.notNull(surrounded);
- Assert.notNull(label);
-
- titleLabel = label;
-
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
-
- setLayout(gbl);
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.anchor = GridBagConstraints.NORTH;
- gbl.setConstraints(titleLabel, gbc);
- add(titleLabel);
-
- gbc.insets = new Insets(0,10,10,10);
- gbc.anchor = GridBagConstraints.CENTER;
- gbc.weighty = 1.0;
- gbc.weightx = 1.0;
- gbc.fill = GridBagConstraints.BOTH;
- gbl.setConstraints(surrounded,gbc);
- add(surrounded);
- }
- public void etchedIn () { box.etchedIn (); }
- public void etchedOut() { box.etchedOut(); }
- public void paint (Graphics g) { box.paint(); }
-
- public void resize(int w, int h) {
- reshape(location().x, location().y, w, h);
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x,y,w,h);
-
- FontMetrics fm = titleLabel.getFontMetrics(
- titleLabel.getFont());
- int top = insets().top + fm.getAscent();
- Dimension size = size();
-
- box.reshape(0, top, size.width-1, size.height-top-1);
- }
- protected String paramString() {
- return super.paramString() + ",etching=" +
- (box.isEtchedIn() ? Etching.IN : Etching.OUT) +
- ",title=" + titleLabel;
- }
-}
diff --git a/java/gjt/BulletinLayout.java b/java/gjt/BulletinLayout.java
deleted file mode 100644
index 848a280de03..00000000000
--- a/java/gjt/BulletinLayout.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Lays out components as though they were pinned to
- * a bulletin board.<p>
- *
- * Components are simply reshaped to their location and their
- * preferred size. BulletinLayout is preferrable to setting
- * a container's layout manager to null and explicitly positioning
- * and sizing components.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- */
-public class BulletinLayout implements LayoutManager {
- public BulletinLayout() {
- }
- public void addLayoutComponent(String name, Component comp) {
- }
- public void removeLayoutComponent(Component comp) {
- }
- public Dimension preferredLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
- Rectangle preferredBounds = new Rectangle(0,0);
- Rectangle compPreferredBounds;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.preferredSize();
- compPreferredBounds =
- new Rectangle(comp.location());
- compPreferredBounds.width = d.width;
- compPreferredBounds.height = d.height;
-
- preferredBounds =
- preferredBounds.union(compPreferredBounds);
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
-
- return dim;
- }
- public Dimension minimumLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
- Rectangle minimumBounds = new Rectangle(0,0);
- Rectangle compMinimumBounds;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.minimumSize();
- compMinimumBounds =
- new Rectangle(comp.location());
- compMinimumBounds.width = d.width;
- compMinimumBounds.height = d.height;
-
- minimumBounds =
- minimumBounds.union(compMinimumBounds);
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
-
- return dim;
- }
- public void layoutContainer(Container target) {
- Insets insets = target.insets();
- int ncomponents = target.countComponents();
- Component comp;
- Dimension ps;
- Point loc;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- ps = comp.preferredSize();
- loc = comp.location();
-
- comp.reshape(insets.left + loc.x,
- insets.top + loc.y,
- ps.width, ps.height);
- }
- }
- }
-}
diff --git a/java/gjt/ButtonPanel.java b/java/gjt/ButtonPanel.java
deleted file mode 100644
index 6fc72ecaab2..00000000000
--- a/java/gjt/ButtonPanel.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Button panel employs a BorderLayout to lay out a Separator in
- * the north, and a Panel to which Buttons are added in the
- * center.<p>
- *
- * Buttons may be added to the panel via two methods:
- * <dl>
- * <dd> void add(Button)
- * <dd> Button add(String)
- * </dl>
- * <p>
- *
- * Button add(String) creates a Button and adds it to the
- * panel, then returns the Button created, as a convenience to
- * clients so that they do not have to go through the pain
- * and agony of creating an ImageButton.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see MessageDialog
- * @see QuestionDialog
- * @see YesNoDialog
- * @see gjt.test.DialogTest
- * @see gjt.test.ComponentScrollerTest
- */
-public class ButtonPanel extends Panel {
- Panel buttonPanel = new Panel();
- Separator separator = new Separator();
-
- public ButtonPanel() {
- setLayout(new BorderLayout(0,5));
- add("North", separator);
- add("Center", buttonPanel);
- }
- public void add(Button button) {
- buttonPanel.add(button);
- }
- public Button add(String buttonLabel) {
- Button addMe = new Button(buttonLabel);
- buttonPanel.add(addMe);
- return addMe;
- }
- protected String paramString() {
- return super.paramString() + "buttons=" +
- countComponents();
- }
-}
diff --git a/java/gjt/CardPanel.java b/java/gjt/CardPanel.java
deleted file mode 100644
index c2ab1a9033c..00000000000
--- a/java/gjt/CardPanel.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * CardPanel employs a BorderLayout to lay out North and Center
- * panels; extensions of CardPanel must implement
- * Component viewSelector(). The component returned from
- * Component viewSelector() is centered in the North panel, and
- * should contain UI controls that allow selection of the
- * component to be displayed in the Center panel.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see IconCardPanel
- * @see ChoiceCardPanel
- * @see gjt.test.ChoiceCardPanelTest
- * @see gjt.test.IconCardPanelTest
- */
-public abstract class CardPanel extends Panel {
- private Panel north, center;
- private CardLayout cards;
-
- abstract public Component viewSelector();
-
- public CardPanel() {
- center = new Panel();
- north = new Panel();
-
- setLayout(new BorderLayout());
- center.setLayout(cards = new CardLayout());
- north.setLayout (new BorderLayout());
-
- add("North", north);
- add("Center", center);
- }
- public void addNotify() {
- super.addNotify();
- north.add("Center", viewSelector());
- north.add("South", new Separator());
- }
- protected void addView(String name, Component component) {
- center.add(name, component);
- }
- protected void showView(String name) {
- cards.show(center, name);
- }
-}
diff --git a/java/gjt/ChoiceCardPanel.java b/java/gjt/ChoiceCardPanel.java
deleted file mode 100644
index 6273e03a5aa..00000000000
--- a/java/gjt/ChoiceCardPanel.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * ChoiceCardPanel is an extension of CardPanel which presents
- * an awt.Choice for selecting the panel to be displayed
- * in the center panel.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CardPanel
- * @see IconCardPanel
- * @see gjt.test.IconCardPanelTest
- * @see gjt.test.ChoiceCardPanelTest
- */
-public class ChoiceCardPanel extends CardPanel {
- private ChoiceViewSelector viewSelector;
-
- public ChoiceCardPanel() {
- viewSelector = new ChoiceViewSelector(this);
- }
- public Component viewSelector() {
- return viewSelector;
- }
- public void addChoice(String name,
- Component component) {
- viewSelector.addItem(name);
- super.addView(name, component);
- }
-}
-
-class ChoiceViewSelector extends Panel {
- private ChoiceCardPanel mvp;
- private Choice choice;
-
- public ChoiceViewSelector(ChoiceCardPanel panel) {
- setLayout(new FlowLayout());
- add(choice = new Choice());
- mvp = panel;
- }
- public void addItem(String name) {
- choice.addItem(name);
- }
- public boolean handleEvent(Event event) {
- if(event.id == Event.ACTION_EVENT) {
- if(event.target instanceof Choice) {
- mvp.showView(choice.getSelectedItem());
- }
- }
- return super.handleEvent(event);
- }
-}
diff --git a/java/gjt/ColumnLayout.java b/java/gjt/ColumnLayout.java
deleted file mode 100644
index bc51b44e456..00000000000
--- a/java/gjt/ColumnLayout.java
+++ /dev/null
@@ -1,154 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * ColumnLayout lays out components in a column. At
- * construction time, both horizontal orientation and vertical
- * orientation may be specified, along with the gap to use
- * between components.<p>
- *
- * Horizontal orientation must be one of the following:
- * <dl>
- * <dd> LEFT
- * <dd> CENTER
- * <dd> RIGHT
- * </dl>
- *
- * Vertical orientation must be one of the following:
- * <dl>
- * <dd> TOP
- * <dd> CENTER
- * <dd> BOTTOM
- * </dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Orientation
- * @see RowLayout
- */
-public class ColumnLayout implements LayoutManager {
- static private int _defaultGap = 5;
-
- private int gap;
- private Orientation horizontalOrientation;
- private Orientation verticalOrientation;
-
- public ColumnLayout() {
- this(Orientation.CENTER,
- Orientation.CENTER, _defaultGap);
- }
- public ColumnLayout(int gap) {
- this(Orientation.CENTER, Orientation.CENTER, gap);
- }
- public ColumnLayout(Orientation horizontalOrient,
- Orientation verticalOrient) {
- this(horizontalOrient, verticalOrient, _defaultGap);
- }
- public ColumnLayout(Orientation horizontalOrient,
- Orientation verticalOrient, int gap) {
- Assert.notFalse(gap >= 0);
- Assert.notFalse(
- horizontalOrient == Orientation.LEFT ||
- horizontalOrient == Orientation.CENTER ||
- horizontalOrient == Orientation.RIGHT);
- Assert.notFalse(
- verticalOrient == Orientation.TOP ||
- verticalOrient == Orientation.CENTER ||
- verticalOrient == Orientation.BOTTOM);
-
- this.gap = gap;
- this.verticalOrientation = verticalOrient;
- this.horizontalOrientation = horizontalOrient;
- }
-
- public void addLayoutComponent(String name,
- Component comp) {
- }
- public void removeLayoutComponent(Component comp) {
- }
-
- public Dimension preferredLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.preferredSize();
- if(i > 0)
- dim.height += gap;
-
- dim.height += d.height;
- dim.width = Math.max(d.width, dim.width);
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
- return dim;
- }
- public Dimension minimumLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.minimumSize();
-
- dim.width = Math.max(d.width, dim.width);
- dim.height += d.height;
-
- if(i > 0) dim.height += gap;
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
-
- return dim;
- }
- public void layoutContainer(Container target) {
- Insets insets = target.insets();
- int top = insets.top;
- int left = 0;
- int ncomponents = target.countComponents();
- Dimension preferredSize = target.preferredSize();
- Dimension targetSize = target.size();
- Component comp;
- Dimension ps;
-
- if(verticalOrientation == Orientation.CENTER)
- top += (targetSize.height/2) -
- (preferredSize.height/2);
- else if(verticalOrientation == Orientation.BOTTOM)
- top = targetSize.height - preferredSize.height +
- insets.top;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
- left = insets.left;
-
- if(comp.isVisible()) {
- ps = comp.preferredSize();
-
- if(horizontalOrientation == Orientation.CENTER)
- left = (targetSize.width/2) - (ps.width/2);
- else if(
- horizontalOrientation == Orientation.RIGHT) {
- left = targetSize.width - ps.width -
- insets.right;
- }
- comp.reshape(left,top,ps.width,ps.height);
- top += ps.height + gap;
- }
- }
- }
-}
diff --git a/java/gjt/ComponentScroller.java b/java/gjt/ComponentScroller.java
deleted file mode 100644
index 3aef71c4ea2..00000000000
--- a/java/gjt/ComponentScroller.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Scrolls any component. Component to be scrolled may be a
- * container, so ultimately many components may be scrolled
- * at once.<p>
- *
- * Component to be scrolled may be specified at construction
- * time, or may be set after construction via
- * void setComponent(Component).<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see BulletinLayout
- * @see Scroller
- * @see ScrollerLayout
- * @see ImageScroller
- * @see gjt.test.ComponentScrollerTest
- */
-public class ComponentScroller extends Scroller {
- private Component scrollMe;
-
- public ComponentScroller() {
- }
- public ComponentScroller(Component component) {
- setComponent(component);
- }
- public void setComponent(Component component) {
- scrollMe = component;
- viewport.setLayout(new BulletinLayout());
- viewport.add (scrollMe);
- viewport.move (0,0);
- }
- public void scrollTo(int x, int y) {
- scrollMe.move(-x,-y);
- }
- public Dimension getScrollAreaSize() {
- return scrollMe.preferredSize();
- }
-}
diff --git a/java/gjt/DialogClient.java b/java/gjt/DialogClient.java
deleted file mode 100644
index 7e67cea758e..00000000000
--- a/java/gjt/DialogClient.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package gjt;
-
-import java.awt.Dialog;
-
-/**
- * DialogClients are notified when the Dialog with which they
- * are associated is dismissed. A reference to the dismissed
- * Dialog is passed as a parameter of dialogDismissed() in case
- * a DialogClient is a client of more than one Dialog.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see MessageDialog
- * @see QuestionDialog
- * @see YesNoDialog
- * @see gjt.test.DialogTest
- */
-public interface DialogClient {
- abstract public void dialogDismissed(Dialog d);
-}
diff --git a/java/gjt/DrawingPanel.java b/java/gjt/DrawingPanel.java
deleted file mode 100644
index cda3fd69431..00000000000
--- a/java/gjt/DrawingPanel.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package gjt;
-
-import java.awt.*;
-import gjt.rubberband.*;
-
-/**
- * An extension of gjt.rubberband.RubberbandPanel which serves
- * as a panel used for drawing simple shapes (lines, rectangles,
- * and ellipses). The shapes may be filled (except for lines,
- * of course), and the color of the shapes may be specified.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.rubberband.RubberbandPanel
- * @see gjt.rubberband.RubberbandEllipse
- * @see gjt.rubberband.RubberbandLine
- * @see gjt.rubberband.RubberbandRectangle
- * @see gjt.test.RubberbandTest
- * @see gjt.test.ToolbarTest
- */
-public class DrawingPanel extends RubberbandPanel {
- private Rubberband rbLine, rbRect, rbEllipse;
- private Color color;
- private boolean fill;
-
- public DrawingPanel() {
- rbLine = new RubberbandLine (this);
- rbRect = new RubberbandRectangle(this);
- rbEllipse = new RubberbandEllipse (this);
-
- setRubberband(rbLine);
- }
- public void drawLines () { setRubberband(rbLine); }
- public void drawRectangles() { setRubberband(rbRect); }
- public void drawEllipses () { setRubberband(rbEllipse); }
-
- public void setColor(Color color) { this.color = color; }
- public Color getColor() { return color; }
-
- public void setFill(boolean b) { fill = b; }
- public boolean getFill() { return fill; }
-
- public boolean mouseUp(Event event, int x, int y) {
- Rubberband rb = getRubberband();
- Graphics g = getGraphics();
-
- super.mouseUp(event, x, y);
- g.setColor(color);
-
- if(rb == rbLine) drawLine (rb, g);
- else if(rb == rbRect) drawRectangle(rb, g);
- else if(rb == rbEllipse) drawEllipse (rb, g);
-
- return true;
- }
- protected void drawLine(Rubberband rb, Graphics g) {
- Point anchor = rb.getAnchor(), end = rb.getEnd();
- g.drawLine(anchor.x, anchor.y, end.x, end.y);
- }
- protected void drawRectangle(Rubberband rb, Graphics g) {
- Rectangle r = rb.bounds();
-
- if(fill) g.fillRect(r.x, r.y, r.width, r.height);
- else g.drawRect(r.x, r.y, r.width, r.height);
- }
- protected void drawEllipse(Rubberband rb, Graphics g) {
- Rectangle r = rb.bounds();
-
- if(fill) g.fillArc(r.x, r.y, r.width, r.height, 0, 360);
- else g.drawArc(r.x, r.y, r.width, r.height, 0, 360);
- }
-}
diff --git a/java/gjt/DrawnRectangle.java b/java/gjt/DrawnRectangle.java
deleted file mode 100644
index e96fd8d3673..00000000000
--- a/java/gjt/DrawnRectangle.java
+++ /dev/null
@@ -1,136 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A Rectangle which draws itself inside of a Component.<p>
- *
- * DrawnRectangles may have their thickness and line color set,
- * and are capable of reporting their inner bounds (the area
- * inside the lines).<p>
- *
- * Default thickness is 2.<p>
- *
- * If not set explicitly, the line color used is three shades
- * darker than the background color of the Component being
- * drawn into.<p>
- *
- * DrawnRectangles may be clear()ed, which clears both the
- * exterior (the lines) and the interior (the area inside of
- * the lines) of the DrawnRectangle.<p>
- *
- * DrawnRectangles may also be fill()ed with a specified color
- * by calling fill(Color), or by calling setFillColor(Color)
- * followed by fill().<p>
- *
- * By default, the fill Color is the background color of the
- * Component drawn into.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ThreeDRectangle
- * @see EtchedRectangle
- * @see Border
- * @see EtchedBorder
- * @see ThreeDBorder
- * @see gjt.test.DrawnRectangleTest
- */
-public class DrawnRectangle extends Rectangle {
- protected static int _defaultThickness = 2;
-
- protected Component drawInto;
- private int thick;
- private Color lineColor, fillColor;
-
- public DrawnRectangle(Component drawInto) {
- this(drawInto, _defaultThickness, 0, 0, 0, 0);
- }
- public DrawnRectangle(Component drawInto, int thick) {
- this(drawInto, thick, 0, 0, 0, 0);
- }
- public DrawnRectangle(Component drawInto, int x, int y,
- int w, int h) {
- this(drawInto, _defaultThickness, x, y, w, h);
- }
- public DrawnRectangle(Component drawInto, int thick,
- int x, int y, int w, int h) {
- Assert.notNull(drawInto);
- Assert.notFalse(thick > 0);
-
- this.drawInto = drawInto;
- this.thick = thick;
- reshape(x,y,w,h);
- }
- public Component component() {return drawInto; }
- public int getThickness () {return thick; }
- public void setThickness (int thick) {this.thick = thick; }
-
- public void setLineColor(Color lineColor) {
- this.lineColor = lineColor;
- }
- public void setFillColor(Color fillColor) {
- this.fillColor = fillColor;
- }
- public void fill() {
- fill(getFillColor());
- }
- public Color getLineColor() {
- if(lineColor == null)
- lineColor =
- drawInto.getBackground().darker().darker().darker();
- return lineColor;
- }
- public Color getFillColor() {
- if(fillColor == null)
- fillColor = drawInto.getBackground();
- return fillColor;
- }
- public Rectangle getInnerBounds() {
- return new Rectangle(x+thick, y+thick,
- width-(thick*2), height-(thick*2));
- }
- public void paint() {
- Graphics g = drawInto.getGraphics();
- paintFlat(g, getLineColor());
- }
- private void paintFlat(Graphics g, Color color) {
- if(g != null) {
- g.setColor(color);
- for(int i=0; i < thick; ++i)
- g.drawRect(x+i, y+i,
- width-(i*2)-1, height-(i*2)-1);
- }
- }
- public void clearInterior() {
- fill(drawInto.getBackground());
- }
- public void clearExterior() {
- paintFlat(drawInto.getGraphics(),
- drawInto.getBackground());
- }
- public void clear() {
- clearExterior();
- clearInterior();
- }
- public void fill(Color color) {
- Graphics g = drawInto.getGraphics();
-
- if(g != null) {
- Rectangle r = getInnerBounds();
- g.setColor(color);
- g.fillRect(r.x, r.y, r.width, r.height);
- setFillColor(color);
- }
- }
- public String toString() {
- return super.toString() + "[" + paramString() + "]";
- }
- public String paramString() {
- return "color=" + getLineColor() + ",thickness=" +
- thick + ",fillColor=" + getFillColor();
- }
- protected Color brighter() {
- return
- getLineColor().brighter().brighter().brighter().brighter();
- }
-}
diff --git a/java/gjt/EtchedBorder.java b/java/gjt/EtchedBorder.java
deleted file mode 100644
index 09ff845014b..00000000000
--- a/java/gjt/EtchedBorder.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * An extension of Border that draws an etched border.
- *
- * Drawn etchedIn by default, drawing style used by paint() is
- * controlled by etchedIn() and etchedOut(). Note that
- * etchedIn() and etchedOut() do not result in anything being
- * painted, but only set the state for the next call to paint().
- * To set the state and paint in one operation, use
- * paintEtchedIn() and paintEtchedOut().<p>
- *
- * The current state of the border may be obtained by calling
- * isEtchedIn().<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Border
- * @see ThreeDRectangle
- * @see gjt.test.BorderTest
- */
-public class EtchedBorder extends Border {
- public EtchedBorder(Component borderMe) {
- this(borderMe, _defaultThickness, _defaultGap);
- }
- public EtchedBorder(Component borderMe,
- int borderThickness) {
- this(borderMe, borderThickness, _defaultGap);
- }
- public EtchedBorder(Component borderMe,
- int borderThickness, int gap) {
- super(borderMe, borderThickness, gap);
- }
- public void etchedIn() {
- ((EtchedRectangle)border()).etchedIn();
- }
- public void etchedOut() {
- ((EtchedRectangle)border()).etchedOut();
- }
- public void paintEtchedIn() {
- ((EtchedRectangle)border()).paintEtchedIn ();
- }
- public void paintEtchedOut() {
- ((EtchedRectangle)border()).paintEtchedOut();
- }
- public boolean isEtchedIn() {
- return ((EtchedRectangle)border()).isEtchedIn();
- }
- protected String paramString() {
- return super.paramString() + (EtchedRectangle)border();
- }
- protected DrawnRectangle border() {
- if(border == null)
- border = new EtchedRectangle(this, thickness);
- return border;
- }
-}
diff --git a/java/gjt/EtchedRectangle.java b/java/gjt/EtchedRectangle.java
deleted file mode 100644
index b8026d42f8d..00000000000
--- a/java/gjt/EtchedRectangle.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A DrawnRectangle that draws an etched border.<p>
- *
- * Drawn etched in by default, drawing style used by paint() is
- * controlled by etchedIn() and etchedOut(). Note that
- * etchedIn() and etchedOut() do not result in anything being
- * painted, but only set the state for the next call to paint().
- * To set the state and paint in one operation, use
- * paintEtchedIn() and paintEtchedOut().<p>
- *
- * Although it is permissible to set the thickness of
- * EtchedRectangles, they tend to loose the etching effect
- * if thickness is greater than 4.<p>
- *
- * The current state of the rectangle may be obtained by
- * calling isEtchedIn().
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see DrawnRectangle
- * @see ThreeDRectangle
- * @see gjt.test.DrawnRectangleTest
- */
-public class EtchedRectangle extends DrawnRectangle {
- protected static Etching _defaultEtching = Etching.IN;
- private Etching etching;
-
- public EtchedRectangle(Component drawInto) {
- this(drawInto, _defaultEtching,
- _defaultThickness, 0, 0, 0, 0);
- }
- public EtchedRectangle(Component drawInto, int thickness) {
- this(drawInto, _defaultEtching, thickness, 0, 0, 0, 0);
- }
- public EtchedRectangle(Component drawInto, int x, int y,
- int w, int h) {
- this(drawInto, _defaultEtching,
- _defaultThickness, x, y, w, h);
- }
- public EtchedRectangle(Component drawInto, int thickness,
- int x, int y,
- int w, int h) {
- this(drawInto, _defaultEtching, thickness, x, y, w, h);
- }
- public EtchedRectangle(Component drawInto, Etching etching,
- int thickness, int x, int y,
- int w, int h) {
- super(drawInto, thickness, x, y, w, h);
- this.etching = etching;
- }
- public void etchedIn () { etching = Etching.IN; }
- public void etchedOut () { etching = Etching.OUT; }
- public boolean isEtchedIn() { return etching == Etching.IN;}
-
- public void paint() {
- if(etching == Etching.IN) paintEtchedIn();
- else paintEtchedOut();
- }
- public void paintEtchedIn() {
- Graphics g = drawInto.getGraphics();
- if(g != null)
- paintEtched(g, getLineColor(), brighter());
-
- etchedIn();
- }
- public void paintEtchedOut() {
- Graphics g = drawInto.getGraphics();
- if(g != null)
- paintEtched(g, brighter(), getLineColor());
-
- etchedOut();
- }
- public String paramString() {
- return super.paramString() + "," + etching;
- }
- private void paintEtched(Graphics g,
- Color topLeft,
- Color bottomRight) {
- int thickness = getThickness();
- int w = width - thickness;
- int h = height - thickness;
-
- g.setColor(topLeft);
- for(int i=0; i < thickness/2; ++i)
- g.drawRect(x+i, y+i, w, h);
-
- g.setColor(bottomRight);
-
- for(int i=0; i < thickness/2; ++i)
- g.drawRect(x+(thickness/2)+i,
- y+(thickness/2)+i, w, h);
- }
-}
diff --git a/java/gjt/Etching.java b/java/gjt/Etching.java
deleted file mode 100644
index ad40d9caaea..00000000000
--- a/java/gjt/Etching.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package gjt;
-
-/**
- * Constants for Etching.
- *
- * This class may not be instantiated.
- *
- * @version 1.0, Apr 11 1996
- * @author David Geary
- */
-public class Etching {
- public static final Etching OUT = new Etching();
- public static final Etching IN = new Etching();
-
- public String toString() {
- if(this == Etching.OUT)
- return getClass().getName() + "=OUT";
- else
- return getClass().getName() + "=IN";
- }
- private Etching() { }
-}
diff --git a/java/gjt/ExclusiveImageButtonPanel.java b/java/gjt/ExclusiveImageButtonPanel.java
deleted file mode 100644
index f1d0878a499..00000000000
--- a/java/gjt/ExclusiveImageButtonPanel.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package gjt;
-
-import java.awt.Image;
-
-/**
- * An ImageButtonPanel which fits all of its ImageButtons with
- * a StickyImageButtonController. ExclusiveImageButtonPanel
- * relies upon its superclass' controller: a
- * RadioImageButtonPanelController, which ensures that only one
- * of the ImageButtons is selected at a time.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonPanel
- * @see gjt.test.ToolbarTest
- */
-public class ExclusiveImageButtonPanel extends
- ImageButtonPanel {
- public ExclusiveImageButtonPanel(Orientation orient) {
- this(orient, 5);
- }
- public ExclusiveImageButtonPanel(Orientation orient,
- int gap) {
- super(orient, gap);
- }
- public ExclusiveImageButtonPanel(Orientation orient,
- Orientation horient,
- Orientation vorient,
- int gap) {
- super(orient, horient, vorient, gap);
- }
- public void add(ImageButton button) {
- super.add(button);
- new StickyImageButtonController(button);
- }
- public ImageButton add(Image image) {
- ImageButton button = super.add(image);
- new StickyImageButtonController(button);
- return button;
- }
- public ImageButton add(Image image, String name) {
- ImageButton button = super.add(image, name);
- new StickyImageButtonController(button);
- return button;
- }
-}
diff --git a/java/gjt/FontDialog.java b/java/gjt/FontDialog.java
deleted file mode 100644
index 182ca582884..00000000000
--- a/java/gjt/FontDialog.java
+++ /dev/null
@@ -1,362 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A dialog used for selecting a font. FontDialog is
- * constructed with a Frame, DialogClient, initial font to
- * display, and boolean that indicates modality.<p>
- *
- * FontDialog contains a preview panel which previews the
- * currently selected font. Updating of the preview panel is
- * triggered by a preview button at the bottom of the dialog.<p>
- *
- * FontDialog contains 3 methods which define the labels for
- * the buttons it contains:
- * <dl>
- * <dd> String getPreviewButtonLabel()
- * <dd> String getOkButtonLabel()
- * <dd> String getCancelButtonLabel()
- * </dl><p>
- *
- * By default the 3 methods return "Preview", "Ok" and "Cancel"
- * respectively. FontDialog may be extended and the 3 methods
- * overridden to customize the labels displayed in the
- * buttons.<p>
- *
- * FontDialog uses Toolkit to get a list of fonts by invoking
- * Toolkit.getFontList(). This is done in the getFontNames()
- * method, which may be overridden by extensions of FontDialog
- * in case the standard set of font names are inadequate.<p>
- *
- * Finally, font sizes are obtained by the getFontSizes()
- * method. FontDialog defines 8 sizes by default: 8, 12, 14,
- * 16, 18, 24, 48 and 64. Extensions of FontDialog may override
- * getFontSizes() to provide a different list of sizes.<p>
- *
- * See gjt.test.FontDialogTest for an example of an extension
- * of FontDialog which overrides the methods discussed above.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see java.awt.Dialog
- * @see java.awt.Toolkit
- * @see DialogClient
- * @see gjt.test.FontDialogTest
- */
-public class FontDialog extends Dialog {
- private static String _defaultSizes[] =
- { "8", "12", "14", "16", "18", "24", "48", "64" };
-
- private FontPanel fontPanel;
- private Font fontSelected;
- private DialogClient client;
-
- public FontDialog(Frame frame,
- DialogClient client,
- Font font, // initial font
- boolean modal) {
- super(frame, "Select A Font", modal);
- this.client = client;
-
- setLayout(new BorderLayout());
- add("Center", fontPanel = new FontPanel(this, font));
- }
- public boolean handleEvent(Event event) {
- if(event.id == Event.WINDOW_DESTROY)
- done(null);
-
- return super.handleEvent(event);
- }
- public String[] getFontNames() {
- return getToolkit().getFontList();
- }
- public String[] getFontSizes() {
- return _defaultSizes;
- }
-
- public String getPreviewButtonLabel() { return "Preview"; }
- public String getOkButtonLabel () { return "Ok"; }
- public String getCancelButtonLabel () { return "Cancel"; }
-
- public void show() {
- Point frameLoc = getParent().location();
- reshape(frameLoc.x + 50, frameLoc.x + 50, 550, 450);
- super.show();
- }
- public void done(Font font) {
- fontSelected = font;
- client.dialogDismissed(this);
- hide ();
- dispose();
- }
- public Font getFontSelected() {
- return fontSelected;
- }
- public void listSelectedInPicker() {
- fontPanel.getPreviewButton().requestFocus();
- }
-}
-
-class FontPanel extends Panel {
- private static Font defaultFont =
- new Font("TimesRoman", Font.PLAIN, 12);
-
- private FontPreviewPanel preview;
- private FontSelectionPanel fsp;
-
- public FontPanel(FontDialog dialog, Font f) {
- Font font = f == null ? defaultFont : f;
-
- setLayout(new BorderLayout());
- add("North", preview = new FontPreviewPanel ());
- add("Center", fsp =
- new FontSelectionPanel(dialog, preview, font));
- }
- public Button getPreviewButton() {
- return fsp.getPreviewButton();
- }
-}
-
-class FontPreviewPanel extends Panel {
- TextField textField = new TextField();
- Box box = new Box(textField, "Preview");
-
- public FontPreviewPanel() {
- textField.setEditable(false);
-
- setLayout(new BorderLayout());
- add("Center", box);
- }
- public void setPreviewFont(Font font) {
- String name = font.getName();
- String size = String.valueOf(font.getSize());
- String style = new String();
-
- if(font.isPlain () == true) style = "Plain";
- else {
- if(font.isBold () == true) style += "Bold";
- if(font.isItalic() == true) style += "Italic";
- }
- textField.setFont(font);
- textField.setText(name + " " + style + " " + size);
- retrofitPreviewPanel();
- }
- private void retrofitPreviewPanel() {
- Dimension tfps, tfs;
- FontPanel fontPanel = (FontPanel)getParent();
-
- tfps = textField.preferredSize();
- tfs = textField.size();
-
- if(tfps.width != tfs.width ||
- tfps.height != tfs.height) {
- fontPanel.invalidate();
- fontPanel.getParent().validate();
- box.repaint(); // Only necessary on Win95
- }
- }
-}
-
-class FontSelectionPanel extends Panel {
- private FontPickerPanel picker;
- private FontButtonsPanel buttons;
- private FontPreviewPanel preview;
- private Font initialFont;
-
- public FontSelectionPanel(FontDialog dialog,
- FontPreviewPanel preview,
- Font initialFont) {
- this.preview = preview;
- this.initialFont = initialFont;
-
- picker = new FontPickerPanel (dialog, initialFont);
- buttons = new FontButtonsPanel(dialog, picker, preview);
-
- setLayout(new BorderLayout());
- add("Center", picker);
- add("South", buttons);
- }
- public void addNotify() {
- super.addNotify();
- preview.setPreviewFont(initialFont);
- }
- public Button getPreviewButton() {
- return buttons.getPreviewButton();
- }
-}
-
-class FontPickerPanel extends Panel {
- private FontDialog dialog;
- private Button previewButton;
- private List fonts = new List();
- private List styles = new List();
- private List sizes = new List();
- private Font initialFont;
-
- public FontPickerPanel(FontDialog dialog,
- Font initialFont) {
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
- Label family = new Label("Family");
- Label style = new Label("Style");
- Label size = new Label("Size");
-
- this.initialFont = initialFont;
- this.dialog = dialog;
-
- populateFonts ();
- populateStyles();
- populateSizes ();
-
- setLayout(gbl);
-
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = 1;
- gbl.setConstraints(family, gbc); add(family);
- gbl.setConstraints(style, gbc); add(style);
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbl.setConstraints(size, gbc); add(size);
-
- gbc.gridwidth = 1;
- gbc.weighty = 1.0;
- gbc.weightx = 1.0;
- gbc.fill = GridBagConstraints.BOTH;
- gbl.setConstraints(fonts, gbc); add(fonts);
- gbl.setConstraints(styles, gbc); add(styles);
- gbl.setConstraints(sizes, gbc); add(sizes);
- }
- public boolean handleEvent(Event event) {
- if(event.id == Event.LIST_SELECT) {
- dialog.listSelectedInPicker();
- return true;
- }
- return false;
- }
- public void addNotify() {
- super.addNotify();
- String initialFamily = initialFont.getName();
- int initialSize = initialFont.getSize();
- int initialStyle = initialFont.getStyle();
-
- styles.select(initialStyle);
-
- for(int i=0; i < fonts.countItems(); ++i) {
- String nextFamily = fonts.getItem(i);
- if(nextFamily.equals(initialFamily))
- fonts.select(i);
- }
- for(int i=0; i < sizes.countItems(); ++i) {
- String nextSize = sizes.getItem(i);
- if(nextSize.equals(String.valueOf(initialSize)))
- sizes.select(i);
- }
- }
- public String fontSelected() {
- return fonts.getSelectedItem ();
- }
- public String styleSelected() {
- return styles.getSelectedItem();
- }
- public int sizeSelected() {
- String szstring = sizes.getSelectedItem();
-
- if(szstring != null) {
- Integer integer = new Integer(szstring);
- return integer.intValue();
- }
- else
- return 0;
- }
- private void populateFonts() {
- String names[] = dialog.getFontNames();
-
- for(int i=0; i < names.length; ++i) {
- fonts.addItem(names[i]);
- }
- }
- private void populateSizes() {
- String sizeArray[] = dialog.getFontSizes();
-
- for(int i=0; i < sizeArray.length; ++i) {
- sizes.addItem(sizeArray[i]);
- }
- }
- private void populateStyles() {
- styles.addItem("Plain");
- styles.addItem("Bold");
- styles.addItem("Italic");
- styles.addItem("BoldItalic");
- }
-}
-
-class FontButtonsPanel extends Panel {
- private FontDialog dialog;
- private FontPickerPanel picker;
- private FontPreviewPanel preview;
- private Button previewButton,
- okButton,
- cancelButton;
-
- public FontButtonsPanel(FontDialog dialog,
- FontPickerPanel picker,
- FontPreviewPanel preview) {
- this.picker = picker;
- this.preview = preview;
- this.dialog = dialog;
-
- add(previewButton =
- new Button(dialog.getPreviewButtonLabel()));
- add(cancelButton =
- new Button(dialog.getCancelButtonLabel()));
- add(okButton =
- new Button(dialog.getOkButtonLabel()));
- }
- public void addNotify() {
- super.addNotify();
- cancelButton.requestFocus();
- }
- public boolean action(Event event, Object object) {
- Button button = (Button)event.target;
- boolean handledEvent = true;
-
- if(event.target == previewButton) {
- Font selectedFont = fontSelected();
-
- if(selectedFont != null) {
- preview.setPreviewFont(selectedFont);
- okButton.requestFocus();
- }
- }
- else if(event.target == okButton)
- dialog.done(fontSelected());
- else if(event.target == cancelButton)
- dialog.done(null);
- else
- handledEvent = false;
-
- return handledEvent;
- }
- public Button getPreviewButton() {
- return previewButton;
- }
- private Font fontSelected() {
- String font = picker.fontSelected ();
- String style = picker.styleSelected();
- int size = picker.sizeSelected ();
- int istyle = Font.PLAIN;
-
- if(font != null && style != null && size > 0) {
- if(style.equals("Bold")) istyle = Font.BOLD;
- if(style.equals("Plain")) istyle = Font.PLAIN;
- if(style.equals("Italic")) istyle = Font.ITALIC;
-
- if(style.equals("BoldItalic"))
- istyle = Font.BOLD + Font.ITALIC;
-
- return new Font(font, istyle, size);
- }
- else
- return null;
- }
-}
diff --git a/java/gjt/GJT.DSP b/java/gjt/GJT.DSP
deleted file mode 100644
index e2060a0ad72..00000000000
--- a/java/gjt/GJT.DSP
+++ /dev/null
@@ -1,456 +0,0 @@
-# Microsoft Developer Studio Project File - Name="GJT" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=GJT - Java Virtual Machine 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 "GJT.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 "GJT.MAK" CFG="GJT - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "GJT - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "GJT - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "GJT - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "GJT - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "GJT - Java Virtual Machine Release"
-# Name "GJT - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\Assert.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\AttributesPanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Bargauge.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\BargaugeTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\image\BleachImageFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\BleachImageFilterTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Border.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\BorderTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Box.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\BoxTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\BulletinLayout.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\BumpAnimationTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ButtonPanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\CardPanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ChoiceCardPanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\ChoiceCardPanelTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\animation\CollisionArena.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\animation\CollisionDetector.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ColumnLayout.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\ColumnLayoutTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ComponentScroller.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\ComponentScrollerTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\ConnectionsPanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\DialogClient.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\DialogTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\image\DissolveFilter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\DrawingPanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\DrawnRectangle.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\DrawnRectangleTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\animation\EdgeCollisionDetector.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\EtchedBorder.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\EtchedRectangle.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Etching.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ExclusiveImageButtonPanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\FontDialog.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\FontDialogTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\GJTDialog.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\IconCardPanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\IconCardPanelTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ImageButton.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ImageButtonController.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ImageButtonEvent.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ImageButtonPanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ImageButtonPanelController.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\ImageButtonTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ImageCanvas.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\image\ImageDissolver.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\ImageDissolverTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ImageScroller.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\ImageScrollerTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\LabelCanvas.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\LabelCanvasTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\MessageDialog.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\MessageDialogTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\MouseController.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\OccupationOracle.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Orientation.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\animation\Playfield.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ProgressDialog.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\QuestionDialog.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\RadioImageButtonPanelController.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\RowLayout.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\RowLayoutTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\rubberband\Rubberband.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\rubberband\RubberbandEllipse.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\rubberband\RubberbandLine.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\rubberband\RubberbandPanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\rubberband\RubberbandRectangle.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\RubberbandTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Scroller.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ScrollerLayout.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\SelectionEvent.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Separator.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\SeparatorTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\animation\Sequence.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\SimpleAnimationTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\SimpleBargaugeTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\SpringyImageButtonController.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\animation\Sprite.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\animation\SpriteCollisionDetector.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\StateButton.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\StateButtonController.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\StateButtonTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\StickyImageButtonController.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stopwatch.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\StopwatchClient.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\TenPixelBorder.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ThreeDBorder.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ThreeDBorderStyle.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ThreeDRectangle.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\TitledPanel.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Toolbar.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\ToolbarTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\TwoDrinkersAnimationTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\test\UnitTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Util.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\YesNoDialog.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/gjt/GJT.DSW b/java/gjt/GJT.DSW
deleted file mode 100644
index fb82e10ad55..00000000000
--- a/java/gjt/GJT.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: "GJT"=.\GJT.DSP - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/java/gjt/GJTDialog.java b/java/gjt/GJTDialog.java
deleted file mode 100644
index 7fc0bd39f40..00000000000
--- a/java/gjt/GJTDialog.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A base class for gjt dialog classes, this concrete class
- * establishes the relationship between a dialog and its
- * client (DialogClient).<p>
- *
- * Note that show() is overridden to ensure that the dialog is
- * centered in the frame which is specified as its parent. This
- * is necessary due to a bug in the Win95 implementation of the
- * AWT (version 1.0.2) that causes dialogs to be displayed at
- * a screen coordinate of 0,0. While the overridden show() is
- * not necessary under non-Win95 Java implementations, it
- * alleviates the Win95 bug and results in no dire consequences
- * on other platforms.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see MessageDialog
- * @see QuestionDialog
- * @see YesNoDialog
- * @see ProgressDialog
- * @see gjt.test.DialogTest
- */
-public class GJTDialog extends Dialog {
- protected DialogClient client;
-
- public GJTDialog(Frame frame,
- String title,
- DialogClient client,
- boolean modal) {
- super(frame, title, modal);
- setClient(client);
- }
- public void setClient(DialogClient client) {
- this.client = client;
- }
- public void show() { // Fixes bug under Win95
- Dimension frameSize = getParent().size();
- Point frameLoc = getParent().location();
- Dimension mySize = size();
- int x,y;
-
- x = frameLoc.x + (frameSize.width/2) -(mySize.width/2);
- y = frameLoc.y + (frameSize.height/2)-(mySize.height/2);
- reshape(x,y,size().width,size().height);
- super.show();
- }
-}
diff --git a/java/gjt/IconCardPanel.java b/java/gjt/IconCardPanel.java
deleted file mode 100644
index 78940bf8f4f..00000000000
--- a/java/gjt/IconCardPanel.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A CardPanel whose Component viewSelector() returns
- * a panel with image buttons to control the selection of the
- * panel to be displayed beneath the view selector panel.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CardPanel
- * @see ChoiceCardpanel
- * @see gjt.test.IconCardPanelTest
- */
-public class IconCardPanel extends CardPanel {
- private ImageButtonPanel viewSelector;
-
- public IconCardPanel() {
- viewSelector = new IconViewSelector(this);
- }
- public Component viewSelector() {
- return viewSelector;
- }
- public void addImageButton(Image image,
- String name,
- Component component) {
- ImageButton newButton;
-
- viewSelector.add(
- newButton = new ImageButton(image), name);
- newButton.setController(
- new StickyImageButtonController(newButton));
- super.addView(name, component);
- }
-}
-
-class IconViewSelector extends ImageButtonPanel {
- private IconCardPanel mvp;
-
- public IconViewSelector(IconCardPanel panel) {
- super(Orientation.HORIZONTAL);
- setLayout(new FlowLayout());
- mvp = panel;
- }
- public boolean handleEvent(Event event) {
- if(event.id == Event.MOUSE_DOWN) {
- if(event.target instanceof ImageButton) {
- ImageButton ib = (ImageButton)event.target;
- mvp.showView(getButtonName(ib));
- }
- }
- return super.handleEvent(event);
- }
-}
diff --git a/java/gjt/ImageButton.java b/java/gjt/ImageButton.java
deleted file mode 100644
index 07bdeff0ef8..00000000000
--- a/java/gjt/ImageButton.java
+++ /dev/null
@@ -1,209 +0,0 @@
-package gjt;
-
-import java.awt.*;
-import java.awt.image.FilteredImageSource;
-
-import gjt.image.BleachImageFilter;
-
-/**
- * An Image painted in a Canvas, bordered by a ThreeDRectangle.
- * <p>
- *
- * ImageButtons have two constructors, both of which take an
- * Image. The Image passed to the constructor must not be null;
- * this is enforced by an assertion.<p>
- *
- * Default border thickness is 2 pixels - thickness may be set
- * at construction time only.<p>
- *
- * Event handling is delegated to an ImageButtonController. By
- * default, all ImageButtons are fitted with an instance of
- * SpringyImageButtonController, however,
- * setController(ImageButtonController) may be used to fit an
- * ImageButton with a different derivation of
- * ImageButtonController after construction.<p>
- *
- * ImageButtons ensure that their Images are completely loaded
- * before they are displayed.<p>
- *
- * Drawn either raised or inset, current state may be queried
- * via the isRaised() method.<p>
- *
- * disable() disables response to input and repaints the image
- * with a bleached version. enable() restores the original
- * image and enables response to input. The intensity of the
- * bleaching effect may be controlled (for all ImageButtons)
- * via the static setBleachPercent(int) method.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ThreeDRectangle
- * @see ImageButtonController
- * @see ImageButtonEvent
- * @see SpringyImageButtonController
- * @see StickyImageButtonController
- * @see BleachImageFilter
- * @see gjt.test.ImageButtonTest
- */
-public class ImageButton extends Canvas {
- private static BleachImageFilter _bleachFilter;
- private static int _bleachPercent = 50;
- private static int _offset = 1;
- private static int _defaultThickness = 2;
-
- private ThreeDRectangle border = new ThreeDRectangle(this);
- private boolean isDisabled = false;
- private Dimension preferredSize = new Dimension(0,0);
- private int thickness;
- private Image image, disabledImage;
- private ImageButtonController controller;
-
- public static int setBleachPercent() {
- return _bleachPercent;
- }
- public static void getBleachPercent(int p) {
- _bleachPercent = p;
- }
- public ImageButton(Image image) {
- this(image, _defaultThickness, null);
- }
- public ImageButton(Image image,
- ImageButtonController controller) {
- this(image, _defaultThickness, controller);
- }
- public ImageButton(Image image, int thickness,
- ImageButtonController controller) {
- Assert.notNull(image);
- Assert.notFalse(thickness > 0);
-
- if(controller == null)
- this.controller =
- new SpringyImageButtonController(this);
- else
- this.controller = controller;
-
- border.setThickness(this.thickness = thickness);
- setImage(image);
- }
- public void setImage(Image image) {
- Util.waitForImage(this, this.image = image);
-
- preferredSize.width = image.getWidth (this) +
- (2*thickness);
- preferredSize.height = image.getHeight(this) +
- (2*thickness);
- }
- public Dimension minimumSize() {
- return preferredSize;
- }
- public Dimension preferredSize() {
- return preferredSize;
- }
- public boolean isRaised () { return border.isRaised(); }
- public boolean isDisabled() { return isDisabled; }
-
- public void enable() {
- isDisabled = false;
- repaint();
- }
- public void disable() {
- isDisabled = true;
-
- if(disabledImage == null)
- createDisabledImage();
-
- repaint();
- }
- public void resize(int w, int h) {
- reshape(location().x, location().y, w, h);
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x,y,w,h);
- border.resize(w,h);
- }
- public void paint(Graphics g) {
- if(isRaised()) paintRaised();
- else paintInset ();
- }
- public void paintInset() {
- Point upperLeft = findUpperLeft();
- Graphics g = getGraphics();
- Image image = isDisabled() ?
- disabledImage : this.image;
- Dimension size = size();
-
- if(g != null) {
- border.clearInterior();
- g.drawImage(image,
- upperLeft.x + thickness + _offset,
- upperLeft.y + thickness + _offset,this);
-
- g.setColor(getBackground().darker());
- for(int i=0; i < _offset; ++i) {
- g.drawLine(thickness+i,thickness+i,
- size.width-thickness-i,thickness+i);
- g.drawLine(thickness+i,thickness+i,
- thickness+i,size.height-thickness-i);
- }
- border.paintInset();
- }
- }
- public void paintRaised() {
- Point upperLeft = findUpperLeft();
- Graphics g = getGraphics();
- Image image = isDisabled() ?
- disabledImage : this.image;
-
- if(g != null) {
- border.clearInterior();
- g.drawImage(image, upperLeft.x + thickness,
- upperLeft.y + thickness, this);
- border.paintRaised();
- }
- }
- public boolean isInside(int x, int y) {
- Dimension size = size();
- return x >= 0 && x < size.width && y >= 0 &&
- y < size.height;
- }
- public void setController(ImageButtonController controller){
- this.controller = controller;
- }
- public ImageButtonController getController() {
- return controller;
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(isDisabled()) return false;
- else return controller.mouseDown(event,x,y);
- }
- public boolean mouseUp(Event event, int x, int y) {
- if(isDisabled()) return false;
- else return controller.mouseUp(event,x,y);
- }
- public boolean mouseDrag(Event event, int x, int y) {
- if(isDisabled()) return false;
- else return controller.mouseDrag(event,x,y);
- }
-
- private void createDisabledImage() {
- if(_bleachFilter == null)
- _bleachFilter =
- new BleachImageFilter(_bleachPercent);
-
- if(_bleachPercent != _bleachFilter.percent())
- _bleachFilter.percent(_bleachPercent);
-
- FilteredImageSource fis =
- new FilteredImageSource(image.getSource(),
- _bleachFilter);
-
- Util.waitForImage(this, disabledImage=createImage(fis));
- }
- private Point findUpperLeft() {
- Dimension size = size();
- return new Point((size.width/2) -
- (preferredSize.width/2),
- (size.height/2) -
- (preferredSize.height/2));
- }
-}
diff --git a/java/gjt/ImageButtonController.java b/java/gjt/ImageButtonController.java
deleted file mode 100644
index 0f6aa6f4add..00000000000
--- a/java/gjt/ImageButtonController.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package gjt;
-import java.awt.Event;
-
-/**
- * A controller for an ImageButton, this abstract class
- * establishes the association between itself and an ImageButton
- * and delivers events to its ImageButton.<p>
- *
- * ImageButtonControllers must be constructed with an
- * ImageButton; the ImageButton's controller gets set by
- * ImageButtonController's constructor.<p>
- *
- * The ImageButton passed into the constructor must not be null;
- * this is enforced by an assertion.<p>
- *
- * Methods defined in the MouseController interface are left
- * for subclasses to implement. ImageButtonController defines
- * mouseMove(), mouseEnter() and mouseExit() as no-ops, so
- * that extensions of ImageButtonController only have to
- * implement mouseDown(), mouseUp() and mouseDrag(). Note
- * that extensions are still free to override mouseMove(),
- * mouseEnter() and mouseExit() if desired.<p>
- *
- * Subclasses should also call the protected XXXButton(Event)
- * methods below, where XXX is either arm, disarm, activate, or
- * deactivate as appropriate. SpringyImageButtonController is
- * a good example of this (so is StickyImageButtonController,
- * but it is more complicated than it's springy sibling).<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see MouseController
- * @see ImageButton
- * @see ImageButtonEvent
- * @see SpringyImageButtonController
- * @see StickyImageButtonController
- * @see gjt.test.ImageButtonTest
- */
-public abstract class ImageButtonController
- implements MouseController {
- private ImageButton button;
-
- ImageButtonController(ImageButton button) {
- Assert.notNull(button);
- this.button = button;
- button.setController(this);
- }
- public ImageButton getButton() {
- return button;
- }
- public boolean mouseEnter(Event event, int x, int y) {
- return false;
- }
- public boolean mouseExit (Event event, int x, int y) {
- return false;
- }
- public boolean mouseMove (Event event, int x, int y) {
- return false;
- }
-
- protected void armButton(Event event) {
- button.deliverEvent(
- new ImageButtonEvent(button,
- event,
- ImageButtonEvent.ARM));
- }
- protected void disarmButton(Event event) {
- button.deliverEvent(
- new ImageButtonEvent(button,
- event,
- ImageButtonEvent.DISARM));
- }
- protected void activateButton(Event event) {
- button.deliverEvent(
- new ImageButtonEvent(button,
- event,
- ImageButtonEvent.ACTIVATE));
- }
-}
diff --git a/java/gjt/ImageButtonEvent.java b/java/gjt/ImageButtonEvent.java
deleted file mode 100644
index bb7f196698f..00000000000
--- a/java/gjt/ImageButtonEvent.java
+++ /dev/null
@@ -1,103 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * An extension of java.awt.Event, specifically designed for
- * ImageButton events.<p>
- *
- * ImageButtonEvents are constructed with 3 arguments:
- * <dl>
- * <dd> ImageButton in which the event occurred
- * <dd> The AWT event that triggered the image button event
- * <dd> The id of the event.
- * </dl>
- *
- * An ImageButtonEvent's id (the constructor's 3rd argument),
- * must be one of the following:
- *
- * <dl>
- * <dd> ImageButtonEvent.ARM
- * <dd> ImageButtonEvent.DISARM
- * <dd> ImageButtonEvent.ACTIVATE
- * </dl>
- *
- * ImageButtonEvent has only a constructor and a paramString()
- * method. Containers that contain ImageButtons should check
- * for ImageButtonEvents like so: <p>
- *
- * <pre>
- * // handleEvent(Event) method of a container that
- * // contains ImageButtons.
- *
- * public boolean handleEvent(Event event) {
- * if(event instanceof ImageButtonEvent) {
- * ImageButtonEvent ibevent =
- * (ImageButtonEvent)event;
- *
- * if(ibevent.isArmed()) {
- * // do something for arming
- * }
- * if(ibevent.isDisarmed()) {
- * // do something for disarming
- * }
- * if(ibevent.isActivated()) {
- * // do something for activation
- * }
- * }
- * }
- * </pre>
- *
- * ImageButtonController is the only GJT class that creates
- * ImageButtonEvents.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonController
- * @see SpringyImageButtonController
- * @see StickyImageButtonController
- * @see gjt.test.ImageButtonTest
- */
-public class ImageButtonEvent extends Event {
- public static final int ARM = 1;
- public static final int DISARM = 2;
- public static final int ACTIVATE = 3;
-
- private int eventType;
-
- public ImageButtonEvent(ImageButton button,
- Event event,
- int type) {
- super(button, event.when, event.id, event.x, event.y,
- event.key, event.modifiers, event.arg);
-
- Assert.notFalse(type == ARM ||
- type == DISARM ||
- type == ACTIVATE);
-
- eventType = type;
- id = -1;
- }
- public boolean isArmed() {
- return eventType == ARM;
- }
- public boolean isDisarmed() {
- return eventType == DISARM;
- }
- public boolean isActivated() {
- return eventType == ACTIVATE;
- }
- protected String paramString() {
- String str = new String();
-
- if(eventType == ImageButtonEvent.ARM)
- str = "ARM";
- else if(eventType == ImageButtonEvent.DISARM)
- str = "DISARM";
- else if(eventType == ImageButtonEvent.ACTIVATE)
- str = "ACTIVATE";
-
- return super.paramString() + str;
- }
-}
diff --git a/java/gjt/ImageButtonPanel.java b/java/gjt/ImageButtonPanel.java
deleted file mode 100644
index 0d033b7967b..00000000000
--- a/java/gjt/ImageButtonPanel.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package gjt;
-
-import java.awt.*;
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-/**
- * A panel which contains a collection of ImageButtons,
- * arranged either horizontally or vertically.<p>
- *
- * Handling of mouse events is delegated to an image button
- * panel controller. By default, an image button panel is
- * outfitted with an instance of RadioImageButtonPanelController
- * which implements mutually exclusive selection behavior.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see RadioImageButtonPanelController
- * @see gjt.test.ToolbarTest
- */
-public class ImageButtonPanel extends Panel {
- static private int _defaultGap = 5;
-
- private Hashtable nameAndButtonPairs = new Hashtable();
- private ImageButtonPanelController controller;
-
- public ImageButtonPanel(Orientation orient) {
- this(orient, Orientation.CENTER,
- Orientation.CENTER, _defaultGap);
- }
- public ImageButtonPanel(Orientation orient, int gap) {
- this(orient, Orientation.CENTER,
- Orientation.CENTER, gap);
- }
- public ImageButtonPanel(Orientation orient,
- Orientation horient,
- Orientation vorient, int gap) {
- Assert.notFalse(orient == Orientation.HORIZONTAL ||
- orient == Orientation.VERTICAL);
-
- if(orient == Orientation.VERTICAL)
- setLayout(new ColumnLayout(horient, vorient, gap));
- else
- setLayout(new RowLayout(horient, vorient, gap));
-
- setController(
- new RadioImageButtonPanelController(this));
- }
- public void setController(ImageButtonPanelController c) {
- this.controller = c;
- }
- public Insets insets() { return new Insets(10,10,10,10); }
-
- public ImageButton add(Image image, String name) {
- ImageButton button = new ImageButton(image);
- add(button);
- nameAndButtonPairs.put(name, button);
- return button;
- }
- public ImageButton add(Image image) {
- return add(image, "noname");
- }
- public void add(ImageButton button) {
- add(button, "noname");
- }
- public void add(ImageButton button, String name) {
- nameAndButtonPairs.put(name, button);
- super.add(button);
- }
- public ImageButton getButtonByName(String name) {
- return (ImageButton)nameAndButtonPairs.get(name);
- }
- public String getButtonName(ImageButton button) {
- Enumeration e = nameAndButtonPairs.keys();
- ImageButton nbutt;
- String nstr;
-
- while(e.hasMoreElements()) {
- nstr = (String)e.nextElement();
- nbutt = (ImageButton)nameAndButtonPairs.get(nstr);
-
- if(nbutt.equals(button))
- return nstr;
- }
- return null;
- }
- public void addSpacer(int sizeInPixels) {
- Assert.notFalse(sizeInPixels > 0);
- Canvas spacer = new Canvas();
- spacer.resize(sizeInPixels, sizeInPixels);
- add(spacer);
- }
- public boolean mouseDown(Event event, int x, int y) {
- return controller != null ?
- controller.mouseDown(event,x,y) : false;
- }
- public boolean mouseDrag(Event event, int x, int y) {
- return controller != null ?
- controller.mouseDrag(event,x,y) : false;
- }
- public boolean mouseUp(Event event, int x, int y) {
- return controller != null ?
- controller.mouseUp(event,x,y) : false;
- }
-}
diff --git a/java/gjt/ImageButtonPanelController.java b/java/gjt/ImageButtonPanelController.java
deleted file mode 100644
index 74f900001b6..00000000000
--- a/java/gjt/ImageButtonPanelController.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * A controller for an ImageButtonPanel, this abstract class
- * does nothing more than establish the association between an
- * ImageButton and its controller.<p>
- *
- * ImageButtonControllers must be constructed with an
- * ImageButtonPanel; the ImageButtonPanels' controller gets set
- * by the constructor.<p>
- *
- * The ImageButton passed into the constructor must not be null;
- * this is enforced by an assertion.<p>
- *
- * Methods defined in the MouseController interface are left
- * for subclasses to implement.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see MouseController
- * @see ImageButtonPanel
- * @see gjt.test.Toolbar
- */
-abstract class ImageButtonPanelController implements
- MouseController {
- private ImageButtonPanel panel;
-
- ImageButtonPanelController(ImageButtonPanel panel) {
- Assert.notNull(panel);
- this.panel = panel;
- panel.setController(this);
- }
- public ImageButtonPanel panel() {
- return panel;
- }
- public boolean mouseEnter(Event event, int x, int y) {
- return false;
- }
- public boolean mouseExit (Event event, int x, int y) {
- return false;
- }
- public boolean mouseMove (Event event, int x, int y) {
- return false;
- }
-}
diff --git a/java/gjt/ImageCanvas.java b/java/gjt/ImageCanvas.java
deleted file mode 100644
index 49e3bc72f3f..00000000000
--- a/java/gjt/ImageCanvas.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A Canvas that displays an image.<p>
- *
- * update() is overridden to call paint() directly, thus
- * bypassing the default implementation of update() which
- * erases the background of the canvas before calling paint().
- * This eliminates nasty flashing.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Util
- */
-class ImageCanvas extends Canvas {
- private Image image;
-
- public ImageCanvas(Image image) {
- this.image = image;
- Util.waitForImage(this, image);
- resize(image.getWidth(this), image.getHeight(this));
- }
- public void paint(Graphics g) {
- g.drawImage(image, 0, 0, this);
- }
- public void update(Graphics g) {
- paint(g);
- }
-}
diff --git a/java/gjt/ImageScroller.java b/java/gjt/ImageScroller.java
deleted file mode 100644
index 79fdc86ea3c..00000000000
--- a/java/gjt/ImageScroller.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * An extension of Scroller that smoothly scrolls an Image.<p>
- *
- * An Image must be supplied at construction time. The image
- * may be reset any time after construction.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Scroller
- * @see ImageCanvas
- * @see gjt.test.ScrollerTest
- */
-public class ImageScroller extends Scroller {
- private Image image;
- private ScrollerImageCanvas canvas;
-
- public ImageScroller(Image image) {
- viewport.setLayout(new BorderLayout());
- setImage(image);
- }
- public void resetImage(Image image) {
- viewport.remove(canvas);
- setImage(image);
- invalidate();
- validate();
- }
- public void scrollTo(int x, int y) {
- Graphics g = canvas.getGraphics();
- if(g != null) {
- g.translate(-x,-y);
- g.drawImage(image, 0, 0, this);
- }
- }
- public Dimension getScrollAreaSize() {
- return new Dimension(image.getWidth(this),
- image.getHeight(this));
- }
- private void setImage(Image image) {
- this.image = image;
- hbar.setValue(0);
- vbar.setValue(0);
- viewport.add("Center",
- canvas = new ScrollerImageCanvas(this, image));
- }
-}
-
-class ScrollerImageCanvas extends ImageCanvas {
- private ImageScroller scroller;
-
- public ScrollerImageCanvas(ImageScroller scroller,
- Image image) {
- super(image);
- this.scroller = scroller;
- }
- public void paint(Graphics g) {
- scroller.repaint();
- }
-}
diff --git a/java/gjt/LabelCanvas.java b/java/gjt/LabelCanvas.java
deleted file mode 100644
index ba733249b76..00000000000
--- a/java/gjt/LabelCanvas.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A selectable label. Clients can set the insets around the
- * label via setInsets(Insets).
- *
- * LabelCanvases generate SelectionEvents when they are
- * selected or deselected.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see SelectionEvent
- * @see gjt.test.LabelCanvasTest
- */
-public class LabelCanvas extends Canvas {
- private String label;
- private boolean selected = false;
- private Insets insets = new Insets(2,2,2,2);
- private Point labelLoc = new Point(0,0);
-
- public LabelCanvas(String label) {
- this.label = label;
- }
- public void paint(Graphics g) {
- if(selected == true) paintSelected(g);
- else
- g.drawString(label, labelLoc.x, labelLoc.y);
- }
- public void setInsets(Insets insets) {
- this.insets = insets;
- repaint();
- }
- public String getLabel () { return label; }
- public boolean isSelected() { return selected; }
- public void select () { selected = true; repaint(); }
- public void deselect () { selected = false; repaint(); }
-
- public void resize(int w, int h) {
- reshape(location().x, location().y, w, h);
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x, y, w, h);
- labelLoc = labelLocation(getGraphics());
- }
- public Dimension minimumSize() {
- return preferredSize();
- }
- public Dimension preferredSize() {
- FontMetrics fm = getFontMetrics(getFont());
- return new Dimension(
- insets.left + fm.stringWidth(label) +
- insets.right,
- insets.top + fm.getHeight() +
- insets.bottom);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(selected) deselect();
- else select ();
-
- int eventType = isSelected() ?
- SelectionEvent.SELECT :
- SelectionEvent.DESELECT;
-
- Event newEvent = new SelectionEvent(this,
- event,
- eventType);
- deliverEvent(newEvent);
-
- return true;
- }
- protected void paintSelected(Graphics g) {
- Point labelLoc = labelLocation(g);
-
- g.setColor(getForeground());
- g.fillRect(0,0,size().width,size().height);
- g.setColor(getBackground());
- g.drawString(label, labelLoc.x, labelLoc.y);
- }
- protected String paramString() {
- return super.paramString() + ",text=" + label;
- }
- private Point labelLocation(Graphics g) {
- Dimension size = size();
- FontMetrics fm = g.getFontMetrics();
-
- int x = (size.width/2) - (fm.stringWidth(label)/2);
- int y = (size.height/2) + (fm.getAscent()/2) -
- fm.getLeading();
- return new Point(x,y);
- }
-}
diff --git a/java/gjt/Makefile b/java/gjt/Makefile
deleted file mode 100644
index ef6e80748a7..00000000000
--- a/java/gjt/Makefile
+++ /dev/null
@@ -1,67 +0,0 @@
-# Makefile
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ..
-CLASSDIR = $(JACE_WRAPPER)/classes
-DOCDIR = $(JACE_WRAPPER)/doc
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-
-clean:
- rm -rf *~
-
-realclean: clean
- rm -rf $(JACE_WRAPPER)/classes/gjt
-
-files = Assert.java \
- Border.java \
- BulletinLayout.java \
- CardPanel.java \
- ChoiceCardPanel.java \
- ColumnLayout.java \
- ComponentScroller.java \
- DialogClient.java \
- DrawingPanel.java \
- DrawnRectangle.java \
- EtchedBorder.java \
- EtchedRectangle.java \
- Etching.java \
- ExclusiveImageButtonPanel.java \
- FontDialog.java \
- GJTDialog.java \
- IconCardPanel.java \
- ImageButton.java \
- ImageButtonController.java \
- ImageButtonEvent.java \
- ImageButtonPanel.java \
- ImageButtonPanelController.java \
- ImageCanvas.java \
- ImageScroller.java \
- LabelCanvas.java \
- MessageDialog.java \
- MouseController.java \
- Orientation.java \
- ProgressDialog.java \
- QuestionDialog.java \
- RadioImageButtonPanelController.java \
- RowLayout.java \
- Scroller.java \
- ScrollerLayout.java \
- SelectionEvent.java \
- Separator.java \
- SpringyImageButtonController.java \
- StateButton.java \
- StateButtonController.java \
- StickyImageButtonController.java \
- Stopwatch.java \
- StopwatchClient.java \
- ThreeDBorder.java \
- ThreeDBorderStyle.java \
- ThreeDRectangle.java \
- Toolbar.java \
- Util.java \
- YesNoDialog.java
diff --git a/java/gjt/MessageDialog.java b/java/gjt/MessageDialog.java
deleted file mode 100644
index 4b00bc7033f..00000000000
--- a/java/gjt/MessageDialog.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A dialog that displays a message and comes equipped with an
- * Ok button with which the dialog is dismissed.<p>
- *
- * Note that there is only one MessageDialog, that gets
- * reused. Clients must call getMessageDialog() in order to
- * access the one and only MessageDialog.<p>
- *
- * <em>Note: The 1.0.2 version of the AWT seems to have
- * introduced a bug that causes pack() to work incorrectly
- * under Win95.</em>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see GJTDialog
- * @see gjt.test.MessageDialogTest
- * @see gjt.test.DialogTest
- */
-public class MessageDialog extends GJTDialog {
- static private MessageDialog _theMessageDialog;
-
- private Button okButton;
- private String message;
- private ButtonPanel buttonPanel = new ButtonPanel();
-
- static public MessageDialog getMessageDialog(Frame frame,
- DialogClient client,
- String title,
- String message) {
- if(_theMessageDialog == null)
- _theMessageDialog = new MessageDialog(frame,
- client,
- title,
- message);
- else {
- _theMessageDialog.setClient (client);
- _theMessageDialog.setTitle (title);
- _theMessageDialog.setMessage(message);
- }
- return _theMessageDialog;
- }
- private MessageDialog(Frame frame, DialogClient client,
- String title, String message) {
- super(frame, title, client, true);
- okButton = buttonPanel.add("Ok");
-
- setLayout(new BorderLayout());
- add("Center", new MessagePanel(message));
- add("South", buttonPanel);
- pack();
- }
- public void show() {
- okButton.requestFocus();
- super.show();
- }
- public boolean action(Event event, Object what) {
- hide();
- client.dialogDismissed(this);
- return true;
- }
- private void setMessage(String message) {
- this.message = message;
- }
-}
-
-class MessagePanel extends Panel {
- public MessagePanel(String message) {
- add("Center", new Label(message, Label.CENTER));
- }
- public Insets insets() {
- return new Insets(10,10,10,10);
- }
-}
diff --git a/java/gjt/MouseController.java b/java/gjt/MouseController.java
deleted file mode 100644
index f044adee5ba..00000000000
--- a/java/gjt/MouseController.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * An interface for handling mouse events.<p>
- *
- * Components delegate handling of mouse events to a
- * MouseController derivation.<p>
- *
- * For instance:<p>
- *<pre>
- * mouseDown(Event event, int x, int y) {
- * return controller.mouseDown(event,x,y);
- * }
- *</pre>
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonController
- * @see SpringyImageButtonController
- * @see StickyImageButtonController
- */
-public interface MouseController {
- public boolean mouseEnter(Event event, int x, int y);
- public boolean mouseExit (Event event, int x, int y);
-
- public boolean mouseMove (Event event, int x, int y);
- public boolean mouseDown (Event event, int x, int y);
- public boolean mouseUp (Event event, int x, int y);
- public boolean mouseDrag (Event event, int x, int y);
-}
diff --git a/java/gjt/Orientation.java b/java/gjt/Orientation.java
deleted file mode 100644
index f83b27451da..00000000000
--- a/java/gjt/Orientation.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package gjt;
-
-/**
- * Constants for orientations (and alignments).<p>
- *
- * This class may not be instantiated.
- *
- * @version 1.0, Apr 11 1996
- * @author David Geary
- */
-public class Orientation {
- public static final Orientation BAD = new Orientation();
- public static final Orientation NORTH = new Orientation();
- public static final Orientation SOUTH = new Orientation();
- public static final Orientation EAST = new Orientation();
- public static final Orientation WEST = new Orientation();
- public static final Orientation CENTER = new Orientation();
- public static final Orientation TOP = new Orientation();
- public static final Orientation LEFT = new Orientation();
- public static final Orientation RIGHT = new Orientation();
- public static final Orientation BOTTOM = new Orientation();
-
- public static final Orientation HORIZONTAL =
- new Orientation();
- public static final Orientation VERTICAL =
- new Orientation();
-
- static public Orientation fromString(String s) {
- Orientation o = BAD;
-
- if(s.equals("NORTH") || s.equals("north")) o = NORTH;
- else if(s.equals("SOUTH") || s.equals("south"))
- o = SOUTH;
- else if(s.equals("EAST") || s.equals("east"))
- o = EAST;
- else if(s.equals("WEST") || s.equals("west"))
- o = WEST;
- else if(s.equals("CENTER") || s.equals("center"))
- o = CENTER;
- else if(s.equals("TOP") || s.equals("top"))
- o = TOP;
- else if(s.equals("LEFT") || s.equals("left"))
- o = LEFT;
- else if(s.equals("RIGHT") || s.equals("right"))
- o = RIGHT;
- else if(s.equals("BOTTOM") || s.equals("bottom"))
- o = BOTTOM;
- else if(s.equals("VERTICAL") || s.equals("vertical"))
- o = VERTICAL;
- else if(s.equals("HORIZONTAL") ||
- s.equals("horizontal"))
- o = HORIZONTAL;
-
- return o;
- }
- public String toString() {
- String s = new String();
-
- if(this == Orientation.NORTH)
- s = getClass().getName() + "=NORTH";
- else if(this == Orientation.SOUTH)
- s = getClass().getName() + "=SOUTH";
- else if(this == Orientation.EAST)
- s = getClass().getName() + "=EAST";
- else if(this == Orientation.WEST)
- s = getClass().getName() + "=WEST";
- else if(this == Orientation.CENTER)
- s = getClass().getName() + "=CENTER";
- else if(this == Orientation.TOP)
- s = getClass().getName() + "=TOP";
- else if(this == Orientation.LEFT)
- s = getClass().getName() + "=LEFT";
- else if(this == Orientation.RIGHT)
- s = getClass().getName() + "=RIGHT";
- else if(this == Orientation.BOTTOM)
- s = getClass().getName() + "=BOTTOM";
- else if(this == Orientation.HORIZONTAL)
- s = getClass().getName() + "=HORIZONTAL";
- else if(this == Orientation.VERTICAL)
- s = getClass().getName() + "=VERTICAL";
- else if(this == Orientation.BAD)
- s = getClass().getName() + "=BAD";
-
- return s;
- }
- private Orientation() { } // Defeat instantiation
-}
diff --git a/java/gjt/ProgressDialog.java b/java/gjt/ProgressDialog.java
deleted file mode 100644
index de7d4be1674..00000000000
--- a/java/gjt/ProgressDialog.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A dialog that uses a bargauge to indicate progress made on a
- * task that presumably takes some time to complete.
- *
- * ProgressDialog implements the singleton pattern: clients
- * may only access the one and only ProgressDialog through the
- * static getProgressDialog() method.<p>
- *
- * <em>Note: The 1.0.2 version of the AWT has introduced a
- * bug that breaks the ProgressDialog under Motif - the
- * bargauge does not function. This worked fine in 1.0.1.<em>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see GJTDialog
- * @see Bargauge
- * @see gjt.test.DialogTest
- */
-public class ProgressDialog extends GJTDialog {
- static private ProgressDialog _theProgressDialog;
- static private int _preferredWidth = 400;
- static private int _preferredHeight = 75;
- static private Color _color;
- static private boolean _dialogUp;
-
- private Bargauge bargauge;
-
- static public ProgressDialog getProgressDialog(
- Frame frame,
- String title,
- Color color){
- if(_theProgressDialog == null)
- _theProgressDialog = new ProgressDialog(frame,
- title,
- color);
- else {
- _theProgressDialog.setTitle (title);
- _theProgressDialog.reset ();
- }
- return _theProgressDialog;
- }
- private ProgressDialog(Frame frame,
- String title,
- Color color) {
- super(frame, title, null, true);
- setLayout(new BorderLayout());
- add("Center", bargauge = new Bargauge(color));
- pack();
- }
- public void setPercentComplete(double percent) {
- bargauge.setFillPercent(percent);
- bargauge.fill();
-
- if(percent == 100)
- hide();
- }
- public void reset() {
- bargauge.setFillPercent(0);
- }
- public Dimension preferredSize() {
- return new Dimension(_preferredWidth, _preferredHeight);
- }
-}
diff --git a/java/gjt/QuestionDialog.java b/java/gjt/QuestionDialog.java
deleted file mode 100644
index 042b491e178..00000000000
--- a/java/gjt/QuestionDialog.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A dialog that presents a prompt and a TextField into which
- * a reply may be entered. Comes complete with an Ok button
- * and a Cancel button, whose uses will be left to the
- * imagination.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see GJTDialog
- * @see gjt.test.DialogTest
- */
-public class QuestionDialog extends GJTDialog {
- static private int _defaultTextFieldSize = 20;
- private Button okButton;
- private Button cancelButton;
- private String question;
- private TextField textField;
- private boolean wasCancelled;
- private ButtonPanel buttonPanel = new ButtonPanel();
-
- public QuestionDialog(Frame frame, DialogClient client,
- String title, String question,
- String initialResponse) {
- this(frame, client, title, question, initialResponse,
- _defaultTextFieldSize);
- }
- public QuestionDialog(Frame frame, DialogClient client,
- String title, String question) {
- this(frame, client, title,
- question, null, _defaultTextFieldSize);
- }
- public QuestionDialog(Frame frame, DialogClient client,
- String title, String question,
- int textFieldSize) {
- this(frame, client, title,
- question, null, textFieldSize);
- }
- public QuestionDialog(Frame frame, DialogClient client,
- String title, String question,
- String initialResponse,
- int textFieldSize) {
- super(frame, title, client, true);
-
- QuestionPanel questionPanel;
-
- okButton = buttonPanel.add("Ok");
- cancelButton = buttonPanel.add("Cancel");
-
- setLayout(new BorderLayout());
- add("North", questionPanel =
- new QuestionPanel(this, question,
- initialResponse, textFieldSize));
- add("South", buttonPanel);
- textField = questionPanel.getTextField();
- pack();
- }
- public boolean action(Event event, Object what) {
- if(event.target == cancelButton) wasCancelled = true;
- else wasCancelled = false;
-
- hide();
- dispose();
- client.dialogDismissed(this);
- return true;
- }
- public void show() {
- textField.requestFocus();
- super.show();
- }
- public void returnInTextField() {
- okButton.requestFocus();
- }
- public TextField getTextField() {
- return textField;
- }
- public String getAnswer() {
- return textField.getText();
- }
- public boolean wasCancelled() {
- return wasCancelled;
- }
- private void setQuestion(String question) {
- this.question = question;
- }
-}
-
-class QuestionPanel extends Panel {
- private TextField field;
- private QuestionDialog dialog;
-
- public QuestionPanel(QuestionDialog dialog,
- String question) {
- this(dialog, question, null, 0);
- }
- public QuestionPanel(QuestionDialog dialog, String question,
- int columns) {
- this(dialog, question, null, columns);
- }
- public QuestionPanel(QuestionDialog dialog, String question,
- String initialResponse, int cols) {
- this.dialog = dialog;
- setLayout(new RowLayout());
- add(new Label(question));
-
- if(initialResponse != null) {
- if(cols != 0)
- add(field=new TextField(initialResponse, cols));
- else
- add(field=new TextField(initialResponse));
- }
- else {
- if(cols != 0) add(field = new TextField(cols));
- else add(field = new TextField());
- }
- }
- public TextField getTextField() {
- return field;
- }
- public boolean action(Event event, Object what) {
- dialog.returnInTextField();
- return false;
- }
- public Insets insets() {
- return new Insets(10,10,10,10);
- }
-}
diff --git a/java/gjt/RadioImageButtonPanelController.java b/java/gjt/RadioImageButtonPanelController.java
deleted file mode 100644
index 8dc34d25bff..00000000000
--- a/java/gjt/RadioImageButtonPanelController.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * A controller for an ImageButtonPanel that ensures that only
- * one ImageButton in its associated ImageButtonPanel is
- * selected at a time.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButtonPanelController
- * @see ImageButton
- * @see ImageButtonPanel
- * @see gjt.test.ToolbarTest
- */
-class RadioImageButtonPanelController
- extends ImageButtonPanelController {
- ImageButton down;
-
- public RadioImageButtonPanelController(
- ImageButtonPanel panel) {
- super(panel);
- }
- public boolean mouseDown(Event event, int x, int y) {
- ImageButton button;
-
- if(event.target instanceof ImageButton) {
- button = (ImageButton)event.target;
- if(down == button) return false;
-
- if(down != null)
- down.paintRaised();
-
- down = button;
- }
- return false;
- }
- public boolean mouseUp(Event event, int x, int y) {
- return false;
- }
- public boolean mouseDrag(Event event, int x, int y) {
- return false;
- }
-}
diff --git a/java/gjt/RowLayout.java b/java/gjt/RowLayout.java
deleted file mode 100644
index eecd074c34f..00000000000
--- a/java/gjt/RowLayout.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * RowLayout lays out components in a row. At construction
- * time, both horizontal orientation and vertical orientation
- * may be specified, along with the gap to use between
- * components.<p>
- *
- * Horizontal orientation must be one of the following:
- * <dl>
- * <dd> LEFT
- * <dd> CENTER
- * <dd> RIGHT
- * </dl>
- *
- * Vertical orientation must be one of the following:
- * <dl>
- * <dd> TOP
- * <dd> CENTER
- * <dd> BOTTOM
- * </dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ColumnLayout
- * @see Orientation
- */
-public class RowLayout implements LayoutManager {
- static private int _defaultGap = 5;
-
- private int gap;
- private Orientation verticalOrientation;
- private Orientation horizontalOrientation;
-
- public RowLayout() {
- this(Orientation.CENTER,
- Orientation.CENTER, _defaultGap);
- }
- public RowLayout(int gap) {
- this(Orientation.CENTER, Orientation.CENTER, gap);
- }
- public RowLayout(Orientation horizontalOrient,
- Orientation verticalOrient) {
- this(horizontalOrient, verticalOrient, _defaultGap);
- }
- public RowLayout(Orientation horizontalOrient,
- Orientation verticalOrient, int gap) {
- Assert.notFalse(gap >= 0);
- Assert.notFalse(
- horizontalOrient == Orientation.LEFT ||
- horizontalOrient == Orientation.CENTER ||
- horizontalOrient == Orientation.RIGHT);
- Assert.notFalse(
- verticalOrient == Orientation.TOP ||
- verticalOrient == Orientation.CENTER ||
- verticalOrient == Orientation.BOTTOM);
-
- this.gap = gap;
- this.verticalOrientation = verticalOrient;
- this.horizontalOrientation = horizontalOrient;
- }
-
- public void addLayoutComponent(String name, Component comp) {
- }
- public void removeLayoutComponent(Component comp) {
- }
-
- public Dimension preferredLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.preferredSize();
-
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
-
- if(i > 0) dim.width += gap;
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
-
- return dim;
- }
- public Dimension minimumLayoutSize(Container target) {
- Insets insets = target.insets();
- Dimension dim = new Dimension(0,0);
- int ncomponents = target.countComponents();
- Component comp;
- Dimension d;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- d = comp.minimumSize();
-
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
-
- if(i > 0) dim.width += gap;
- }
- }
- dim.width += insets.left + insets.right;
- dim.height += insets.top + insets.bottom;
-
- return dim;
- }
- public void layoutContainer(Container target) {
- Insets insets = target.insets();
- int ncomponents = target.countComponents();
- int top = 0;
- int left = insets.left;
- Dimension tps = target.preferredSize();
- Dimension targetSize = target.size();
- Component comp;
- Dimension ps;
-
- if(horizontalOrientation == Orientation.CENTER)
- left = left + (targetSize.width/2) - (tps.width/2);
- if(horizontalOrientation == Orientation.RIGHT)
- left = left + targetSize.width - tps.width;
-
- for (int i = 0 ; i < ncomponents ; i++) {
- comp = target.getComponent(i);
-
- if(comp.isVisible()) {
- ps = comp.preferredSize();
-
- if(verticalOrientation == Orientation.CENTER)
- top = (targetSize.height/2) - (ps.height/2);
- else if(verticalOrientation == Orientation.TOP)
- top = insets.top;
- else if(
- verticalOrientation == Orientation.BOTTOM)
- top = targetSize.height -
- ps.height - insets.bottom;
-
- comp.reshape(left,top,ps.width,ps.height);
- left += ps.width + gap;
- }
- }
- }
-}
diff --git a/java/gjt/Scroller.java b/java/gjt/Scroller.java
deleted file mode 100644
index 61d6e5f55e5..00000000000
--- a/java/gjt/Scroller.java
+++ /dev/null
@@ -1,154 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Each Scroller contains a Panel (viewport) and two Scrollbars
- * (horizontal and vertical). Works in conjunction with a
- * ScrollerLayout, that lays out the viewport and two
- * scrollbars.<p>
- *
- * Subclasses must override:<p>
- * <dl>
- * <dd> abstract public void scrollTo(int x, int y)
- * <dd> abstract public Dimension getScrollAreaSize()
- * </dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ComponentScroller
- * @see ImageScroller
- * @see ScrollerLayout
- * @see gjt.test.ComponentScrollerTest
- * @see gjt.test.ImageScrollerTest
- */
-public abstract class Scroller extends Panel {
- protected Panel viewport;
- protected Scrollbar hbar, vbar;
-
- abstract public void scrollTo(int x, int y);
- abstract public Dimension getScrollAreaSize();
-
- public Scroller() {
- setLayout(new ScrollerLayout(this));
- add("Scroll", viewport = new Panel());
- add("East", vbar = new Scrollbar(Scrollbar.VERTICAL));
- add("South",hbar = new Scrollbar(Scrollbar.HORIZONTAL));
- }
- public Scrollbar getHorizontalScrollbar() {return hbar; }
- public Scrollbar getVerticalScrollbar () {return vbar; }
- public Panel getViewport () {return viewport;}
-
- public boolean handleEvent(Event event) {
- boolean handledEvent;
-
- switch(event.id) {
- case Event.SCROLL_LINE_UP: scrollLineUp(event);
- break;
- case Event.SCROLL_LINE_DOWN: scrollLineDown(event);
- break;
- case Event.SCROLL_PAGE_UP: scrollPageUp (event);
- break;
- case Event.SCROLL_PAGE_DOWN: scrollPageDown(event);
- break;
- case Event.SCROLL_ABSOLUTE: scrollAbsolute(event);
- break;
- }
- handledEvent = event.id == Event.SCROLL_LINE_UP ||
- event.id == Event.SCROLL_LINE_DOWN ||
- event.id == Event.SCROLL_PAGE_UP ||
- event.id == Event.SCROLL_PAGE_DOWN ||
- event.id == Event.SCROLL_ABSOLUTE;
-
- if(handledEvent) return true;
- else return super.handleEvent(event);
- }
- public void paint (Graphics g) { scroll(); }
- public void update(Graphics g) { paint(g); }
-
- public void manageScrollbars() {
- manageHorizontalScrollbar();
- manageVerticalScrollbar ();
- }
- protected void manageHorizontalScrollbar() {
- Dimension size = size();
- Dimension scrollAreaSize = getScrollAreaSize();
-
- if(vbar.isVisible())
- size.width -= vbar.size().width;
-
- if(scrollAreaSize.width > size.width) {
- if( ! hbar.isVisible())
- hbar.show();
- }
- else if(hbar.isVisible()) {
- hbar.hide();
- hbar.setValue(0);
- repaint();
- }
- }
- protected void manageVerticalScrollbar() {
- Dimension size = size();
- Dimension scrollAreaSize = getScrollAreaSize();
-
- if(hbar.isVisible())
- size.height -= hbar.size().height;
-
- if(scrollAreaSize.height > size.height) {
- if( ! vbar.isVisible())
- vbar.show();
- }
- else if(vbar.isVisible()) {
- vbar.hide();
- vbar.setValue(0);
- repaint();
- }
- }
- public void setScrollbarValues() {
- if(hbar.isVisible()) setHorizontalScrollbarValues();
- if(vbar.isVisible()) setVerticalScrollbarValues();
- }
- protected void setHorizontalScrollbarValues() {
- Dimension vsize = viewport.size();
- Dimension scrollAreaSize = getScrollAreaSize();
- int max = scrollAreaSize.width - vsize.width;
-
- hbar.setValues(hbar.getValue(), // value
- vsize.width, // amt visible/page
- 0, // minimum
- max); // maximum
-
- setHorizontalLineAndPageIncrements();
- }
- protected void setVerticalScrollbarValues() {
- Dimension vsize = viewport.size();
- Dimension scrollAreaSize = getScrollAreaSize();
- int max = scrollAreaSize.height - vsize.height;
-
- vbar.setValues(vbar.getValue(), // value
- vsize.height, // amt visible/page
- 0, // minimum
- max); // maximum
-
- setVerticalLineAndPageIncrements();
- }
- protected void scrollLineUp (Event event) { scroll(); }
- protected void scrollLineDown(Event event) { scroll(); }
- protected void scrollPageUp (Event event) { scroll(); }
- protected void scrollPageDown(Event event) { scroll(); }
- protected void scrollAbsolute(Event event) { scroll(); }
-
- protected void setHorizontalLineAndPageIncrements() {
- Dimension size = getScrollAreaSize();
- hbar.setLineIncrement(size.width/10);
- hbar.setPageIncrement(size.width/5);
- }
- protected void setVerticalLineAndPageIncrements() {
- Dimension size = getScrollAreaSize();
- vbar.setLineIncrement(size.height/10);
- vbar.setPageIncrement(size.height/5);
- }
- protected void scroll() {
- scrollTo(hbar.getValue(), vbar.getValue());
- }
-}
diff --git a/java/gjt/ScrollerLayout.java b/java/gjt/ScrollerLayout.java
deleted file mode 100644
index 21012fd5688..00000000000
--- a/java/gjt/ScrollerLayout.java
+++ /dev/null
@@ -1,160 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Layout manager for a Scroller.<p>
- *
- * Lays out 3 Components: a horizontal scrollbar, a vertical
- * scrollbar and a viewport (Panel).<p>
- *
- * Valid names/Component pairs that can be added via
- * addLayoutComponent(String, Component):<p>
- * <dl>
- * <dd> "East" Scrollbar (vertical)
- * <dd> "West" Scrollbar (vertical)
- * <dd> "North" Scrollbar (horizontal)
- * <dd> "South" Scrollbar (horizontal)
- * <dd> "Scroll" Panel (viewport)
- * </dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Scroller
- */
-public class ScrollerLayout implements LayoutManager {
- private Scroller scroller;
- private Scrollbar hbar, vbar;
- private String hbarPosition, vbarPosition;
- private Component viewport;
- private int top, bottom, right, left;
-
- public ScrollerLayout(Scroller scroller) {
- this.scroller = scroller;
- }
-
- public void addLayoutComponent(String name,
- Component comp) {
- Assert.notFalse(comp != null);
-
- if(comp instanceof Scrollbar) {
- Scrollbar sbar = (Scrollbar)comp;
-
- if(sbar.getOrientation() == Scrollbar.VERTICAL) {
- Assert.notFalse("East".equals(name) == true ||
- "West".equals(name) == true);
- vbar = sbar;
- vbarPosition = name;
- }
- else {
- Assert.notFalse("North".equals(name) == true ||
- "South".equals(name) == true);
- hbar = sbar;
- hbarPosition = name;
- }
- }
- else {
- Assert.notFalse("Scroll".equals(name) == true);
- viewport = comp;
- }
- }
- public void removeLayoutComponent(Component comp) {
- if(comp == vbar) vbar = null;
- if(comp == hbar) hbar = null;
- if(comp == viewport) viewport = null;
- }
- public Dimension preferredLayoutSize(Container parent) {
- Dimension dim = new Dimension(0,0);
-
- if(vbar != null && vbar.isVisible()) {
- Dimension d = vbar.preferredSize();
- dim.width += d.width;
- dim.height = d.height;
- }
- if(hbar != null && hbar.isVisible()) {
- Dimension d = hbar.preferredSize();
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
- }
- if(viewport != null && viewport.isVisible()) {
- Dimension d = viewport.preferredSize();
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
- }
- return dim;
- }
- public Dimension minimumLayoutSize(Container parent) {
- Dimension dim = new Dimension(0,0);
-
- if(vbar != null && vbar.isVisible()) {
- Dimension d = vbar.minimumSize();
- dim.width += d.width;
- dim.height = d.height;
- }
- if(hbar != null && hbar.isVisible()) {
- Dimension d = hbar.minimumSize();
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
- }
- if(viewport != null && viewport.isVisible()) {
- Dimension d = viewport.minimumSize();
- dim.width += d.width;
- dim.height = Math.max(d.height, dim.height);
- }
- return dim;
- }
- public void layoutContainer(Container target) {
- Insets insets = target.insets();
- Dimension targetSize = target.size();
-
- top = insets.top;
- bottom = targetSize.height - insets.bottom;
- left = insets.left;
- right = targetSize.width - insets.right;
-
- scroller.manageScrollbars();
-
- reshapeHorizontalScrollbar();
- reshapeVerticalScrollbar ();
- reshapeViewport ();
-
- scroller.setScrollbarValues();
- }
- private void reshapeHorizontalScrollbar() {
- if(hbar != null && hbar.isVisible()) {
- if("North".equals(hbarPosition)) {
- Dimension d = hbar.preferredSize();
- hbar.reshape(left, top, right - left, d.height);
- top += d.height;
- }
- else { // South
- Dimension d = hbar.preferredSize();
- hbar.reshape(left, bottom - d.height,
- right - left,d.height);
- bottom -= d.height;
- }
- }
- }
- private void reshapeVerticalScrollbar() {
- if(hbar != null && vbar.isVisible()) {
- if("East".equals(vbarPosition)) {
- Dimension d = vbar.preferredSize();
- vbar.reshape(right - d.width, top,
- d.width, bottom - top);
- right -= d.width;
- }
- else { // West
- Dimension d = vbar.preferredSize();
- vbar.reshape(left, top,
- d.width, bottom - top);
- left += d.width;
- }
- }
- }
- private void reshapeViewport() {
- if(viewport != null && viewport.isVisible()) {
- viewport.reshape(left, top,
- right - left, bottom - top);
- }
- }
-}
diff --git a/java/gjt/SelectionEvent.java b/java/gjt/SelectionEvent.java
deleted file mode 100644
index 4bcab59cd0a..00000000000
--- a/java/gjt/SelectionEvent.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * An extension of java.awt.Event, specifically designed for
- * selection events.<p>
- *
- * SelectionEvents are constructed with arguments:<p>
- * <dl>
- * <dd> The AWT event that triggered the image button event
- * <dd> The id of the event.
- * </dl>
- *
- * An SelectionEvent's id (the constructor's 3rd argument),
- * must be one of the following:<p>
- * <dl>
- * <dd> SelectionEvent.SELECT
- * <dd> SelectionEvent.DESELECT
- * </dl>
- *
- * SelectionEvent has only a constructor and a paramString()
- * method. Containers that contain objects which are capable
- * of generating SelectionEvents should check the events
- * like so:
- *
- * <pre>
- * // handleEvent(Event) method of a container that
- * // contain objects that generate SelectionEvents
- *
- * public boolean handleEvent(Event event) {
- * if(event instanceof SelectionEvent) {
- * SelectionEvent sevent =
- * (SelectionEvent)event;
- *
- * if(sevent.isSelected()) {
- * // do something for selection
- * }
- * else {
- * // do something for deselection
- * }
- * }
- * }
- * </pre>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see LabelCanvas
- * @see ImageButtonEvent
- * @see gjt.test.LabelCanvasTest
- */
-public class SelectionEvent extends Event {
- public static final int SELECT = 1;
- public static final int DESELECT = 2;
-
- private int eventType;
-
- public SelectionEvent(Object target,
- Event event,
- int type) {
- super(target, event.when, event.id, event.x, event.y,
- event.key, event.modifiers, event.arg);
-
- Assert.notFalse(type == SELECT || type == DESELECT);
-
- eventType = type;
- id = -1;
- }
- public boolean isSelected() {
- return eventType == SELECT;
- }
- protected String paramString() {
- String typeString = new String();
-
- if(eventType == SelectionEvent.SELECT)
- typeString = "SELECT";
- else if(eventType == SelectionEvent.DESELECT)
- typeString = "DESELECT";
-
- return super.paramString() + typeString;
- }
-}
diff --git a/java/gjt/Separator.java b/java/gjt/Separator.java
deleted file mode 100644
index 6bd610e1ad9..00000000000
--- a/java/gjt/Separator.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A separator that is drawn either vertically or horizontally
- * depending upon how it is laid out. Can be drawn either
- * etched-in or etched-out, with varying thicknesses. Both
- * thickness and etching are settable at construction time
- * only.<p>
- *
- * Default thickness is 2 pixels and default etching is
- * Etching.IN. Note that thicknesses greater than 4 loose the
- * etching effect.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Etching
- * @see gjt.test.SeparatorTest
- */
-public class Separator extends Canvas {
- static private Etching _defaultEtching = Etching.IN;
- static private int _defaultThickness = 2;
-
- private Etching etching;
- private int thickness;
-
- public Separator() {
- this(_defaultThickness, _defaultEtching);
- }
- public Separator(int thickness) {
- this(thickness, _defaultEtching);
- }
- public Separator(Etching etching) {
- this(_defaultThickness, etching);
- }
- public Separator(int thickness, Etching etching) {
- this.etching = etching;
- this.thickness = thickness;
- resize(thickness, thickness);
- }
- public Dimension minimumSize() {
- return preferredSize();
- }
- public Dimension preferredSize() {
- return new Dimension(thickness, thickness);
- }
- public void paint(Graphics g) {
- Dimension size = size();
- Color brighter = getBackground().brighter().brighter();
- Color darker = getBackground().darker().darker();
-
- if(etching == Etching.IN) {
- if(size.width > size.height)
- paintHorizontal(g, size, darker, brighter);
- else
- paintVertical(g, size, darker, brighter);
- }
- else {
- if(size.width > size.height)
- paintHorizontal(g, size, brighter, darker);
- else
- paintVertical(g, size, brighter, darker);
- }
- }
- public String paramString() {
- Dimension size = size();
- Orientation orient = size.width > size.height ?
- Orientation.HORIZONTAL :
- Orientation.VERTICAL;
- return super.paramString() + "thickness=" +
- thickness + "," + etching + "," + orient;
- }
- private void paintHorizontal(Graphics g, Dimension size,
- Color top, Color bottom) {
- g.setColor(top);
- g.fillRect(0, (size.height/2) - (thickness/2),
- size.width, thickness/2);
- g.setColor(bottom);
- g.fillRect(0, size.height/2, size.width, thickness/2);
- }
- private void paintVertical(Graphics g, Dimension size,
- Color left, Color right) {
- g.setColor(left);
- g.fillRect((size.width/2) - (thickness/2),
- 0, thickness/2, size.height);
- g.setColor(right);
- g.fillRect(size.width/2, 0, thickness/2, size.height);
- }
-}
diff --git a/java/gjt/SpringyImageButtonController.java b/java/gjt/SpringyImageButtonController.java
deleted file mode 100644
index 3559e040459..00000000000
--- a/java/gjt/SpringyImageButtonController.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-import java.awt.Graphics;
-
-/**
- * An ImageButtonController that reacts to mouseDown/mouseUp
- * events exactly as a java.awt.Button does.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonController
- * @see StickyImageButtonController
- */
-public class SpringyImageButtonController
- extends ImageButtonController {
- public SpringyImageButtonController(ImageButton ib) {
- super(ib);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(event.modifiers == 0) {
- getButton().paintInset();
- armButton(event);
- }
- return false;
- }
- public boolean mouseUp(Event event, int x, int y) {
- if(event.modifiers == 0) {
- if(getButton().isRaised() == false) {
- getButton().paintRaised();
- activateButton(event);
- }
- }
- return false;
- }
- public boolean mouseDrag(Event event, int x, int y) {
- if(event.modifiers == 0) {
- if(getButton().isInside(x,y)) {
- if(getButton().isRaised()) {
- getButton().paintInset();
- armButton(event);
- }
- }
- else {
- if(getButton().isRaised() == false) {
- getButton().paintRaised();
- disarmButton(event);
- }
- }
- }
- return false;
- }
-}
diff --git a/java/gjt/StateButton.java b/java/gjt/StateButton.java
deleted file mode 100644
index 6de20a76f98..00000000000
--- a/java/gjt/StateButton.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package gjt;
-
-import java.awt.Image;
-
-/**
- * An ImageButton that cycles through a series of images. The
- * image advances to the next image in the series every time
- * the button is activated.<p>
- *
- * Note that the cycling is actually performed by the buttons'
- * controller - a StateButtonController.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see StateButtonController
- * @see gjt.test.StateButtonTest
- */
-public class StateButton extends ImageButton {
- private Image[] images;
- private int state = 0;
- private int numStates;
-
- public StateButton(Image[] images) {
- super(images[0]);
-
- this.images = images;
- numStates = images.length;
- setController(new StateButtonController(this));
- waitForImages();
- }
- public Image nextImage() {
- if(state + 1 < numStates) state++;
- else state = 0;
-
- return images[state];
- }
- public int state() {
- return state;
- }
- private void waitForImages() {
- for(int i=0; i < images.length; ++i)
- Util.waitForImage(this, images[i]);
- }
-}
diff --git a/java/gjt/StateButtonController.java b/java/gjt/StateButtonController.java
deleted file mode 100644
index d6fc83830a6..00000000000
--- a/java/gjt/StateButtonController.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-
-/**
- * A controller for a StateButton, that cycles through a
- * series of images which reside in the StateButton class.
- * Each time a mouse up is detected in the StateButton, the
- * buttons image is set to the next image in the array.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see StateButton
- * @see SpringyImageButtonController
- * @see gjt.test.StateButtonTest
- */
-class StateButtonController extends SpringyImageButtonController {
- public StateButtonController(StateButton button) {
- super(button);
- }
- public boolean mouseUp(Event event, int x, int y) {
- StateButton button = (StateButton)getButton();
- button.setImage(button.nextImage());
- activateButton(event);
- return super.mouseUp(event, x, y);
- }
-}
diff --git a/java/gjt/StickyImageButtonController.java b/java/gjt/StickyImageButtonController.java
deleted file mode 100644
index c459e5cdae1..00000000000
--- a/java/gjt/StickyImageButtonController.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package gjt;
-
-import java.awt.Event;
-import java.awt.Graphics;
-
-/**
- * An ImageButtonController that causes its associated
- * ImageButton to "stick" when activated. If the ImageButton
- * is raised it depresses<b>[1]</b> upon a mouse down and stays
- * down upon a subsequent mouse up event. The same "sticky"
- * behaviour occurs when a depressed ImageButton encounters a
- * mouse down followed by a subsequent mouse up.<p>
- *
- * Note that false is returned from mouse event handlers;
- * therefore mouse events will be propagated to the
- * ImageButton's container. While this is not always
- * desirable, it was deemed a better default than swallowing
- * the event here. Subclasses may, of course, modify this
- * behavior.<p>
- *
- * <b>[1]</b> No psychiatric consultation is necessary.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonController
- * @see SpringyImageButtonController
- */
-public class StickyImageButtonController
- extends ImageButtonController {
- private boolean buttonUpOnLastMouseDown = true;
-
- public StickyImageButtonController(ImageButton ib) {
- super(ib);
- }
- public boolean mouseDown(Event event, int x, int y) {
- ImageButton button = getButton();
-
- if(event.modifiers == 0) {
- if(button.isRaised()) button.paintInset();
- else button.paintRaised();
-
- buttonUpOnLastMouseDown = getButton().isRaised();
- armButton(event);
- }
- return false;
- }
- public boolean mouseUp(Event event, int x, int y) {
- activateButton(event);
- return false;
- }
- public boolean mouseDrag(Event event, int x, int y) {
- ImageButton button = getButton();
-
- if(event.modifiers == 0) {
- if(button.isInside(x,y)) {
- if(buttonUpOnLastMouseDown) {
- if(button.isRaised() == false) {
- button.paintRaised();
- armButton(event);
- }
- }
- else {
- if(button.isRaised()) {
- button.paintInset();
- armButton(event);
- }
- }
- }
- else {
- if(buttonUpOnLastMouseDown) {
- if(button.isRaised()) {
- button.paintInset();
- disarmButton(event);
- }
- }
- else {
- if(button.isRaised() == false) {
- button.paintRaised();
- disarmButton(event);
- }
- }
- }
- }
- return false;
- }
-}
diff --git a/java/gjt/Stopwatch.java b/java/gjt/Stopwatch.java
deleted file mode 100644
index fc8963e88a1..00000000000
--- a/java/gjt/Stopwatch.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A Thread that acts as a stopwatch.<p>
- *
- * Stopwatch starts running when it is constructed, and may be
- * reset by the reset() method. getHour(), getMinute(),
- * getSecond(), and getMillisecond() are used to get the
- * elapsed time since construction, or since the last reset.<p>
- *
- * toString() returns the elapsed time in the form of
- * HH:MM:SS:mm, where HH == hours, MM == minutes, SS == seconds
- * and mm == milliseconds.<p>
- *
- * Each Stopwatch may have a StopwatchClient associated with it.
- * If the StopwatchClient is non-null, the StopwatchClients'
- * tick() method is invoked every 50 milliseconds.<p>
- *
- * @version 1.0, Apr 21 1996
- * @author David Geary
- * @see StopwatchClient
- * @see gjt.animation.Sequence
- * @see gjt.animation.Sprite
- */
-public class Stopwatch extends Thread {
- private StopwatchClient client;
- private long start, now, elapsed;
- private long hour, minute, second, millisecond;
-
- public Stopwatch() {
- this(null);
- }
- public Stopwatch(StopwatchClient client) {
- start = System.currentTimeMillis();
- this.client = client;
- }
- public void update() {
- now = System.currentTimeMillis();
- elapsed = now - start;
- hour = minute = second = millisecond = 0;
-
- second = elapsed / 1000;
- millisecond = elapsed % 1000;
- millisecond = (millisecond == 0) ? 0 : millisecond/10;
-
- if(second > 59) {
- minute = second / 60;
- second = second - (minute*60);
- }
- if(minute > 59) {
- hour = minute / 60;
- minute = minute - (hour*60);
- }
- }
- public String toString() {
- update();
- return new String(stringValueOf(hour) + ":" +
- stringValueOf(minute) + ":" +
- stringValueOf(second) + ":" +
- stringValueOf(millisecond));
- }
- public long getHour () { return hour; }
- public long getMinute () { return minute; }
- public long getSecond () { return second; }
- public long getMillisecond () { return millisecond; }
-
- public long elapsedTime() {
- update();
- return elapsed;
- }
- public void reset() {
- start = System.currentTimeMillis();
- }
- public void run() {
- while(true) {
- try {
- Thread.currentThread().sleep(50, 0);
- update();
- if(client != null)
- client.tick();
- }
- catch(InterruptedException e) {
- Assert.notFalse(false);
- }
- }
- }
- private String stringValueOf(long l) {
- if(l < 10) return "0" + String.valueOf(l);
- else return String.valueOf(l);
-
- }
-}
diff --git a/java/gjt/StopwatchClient.java b/java/gjt/StopwatchClient.java
deleted file mode 100644
index c2eb5fb0460..00000000000
--- a/java/gjt/StopwatchClient.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package gjt;
-
-/**
- * Client of a Stopwatch. Stopwatches that have non-null
- * clients, call their clients' tick() method every 50
- * milliseconds.<p>
- *
- * @version 1.0, Apr 21 1996
- * @author David Geary
- * @see Stopwatch
- */
-public interface StopwatchClient {
- public void tick();
-}
diff --git a/java/gjt/ThreeDBorder.java b/java/gjt/ThreeDBorder.java
deleted file mode 100644
index 0441fdf3052..00000000000
--- a/java/gjt/ThreeDBorder.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Extension of Border that draws a 3D border.
- *
- * Drawn raised by default, drawing style used by paint() is
- * controlled by raise() and inset(). Note that raise() and
- * inset() do not result in anything being painted, but only set
- * the state for the next call to paint(). To set the state and
- * paint in one operation, use paintRaised() and paintInset().
- * <p>
- *
- * The current state of the border may be obtained by calling
- * isRaised().<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Border
- * @see EtchedRectangle
- * @see gjt.test.BorderTest
- */
-public class ThreeDBorder extends Border {
- public ThreeDBorder(Component borderMe) {
- this(borderMe, _defaultThickness, _defaultGap);
- }
- public ThreeDBorder(Component borderMe,
- int borderThickness) {
- this(borderMe, borderThickness, _defaultGap);
- }
- public ThreeDBorder(Component borderMe,
- int borderThickness, int gap) {
- super(borderMe, borderThickness, gap);
- }
- public void inset() { ((ThreeDRectangle)border()).inset(); }
- public void raise() { ((ThreeDRectangle)border()).raise(); }
-
- public void paintRaised() {
- ((ThreeDRectangle)border()).paintRaised();
- }
- public void paintInset() {
- ((ThreeDRectangle)border()).paintInset ();
- }
- public boolean isRaised() {
- return ((ThreeDRectangle)border()).isRaised();
- }
- protected DrawnRectangle border() {
- if(border == null)
- border = new ThreeDRectangle(this, thickness);
- return border;
- }
-}
diff --git a/java/gjt/ThreeDBorderStyle.java b/java/gjt/ThreeDBorderStyle.java
deleted file mode 100644
index b0e1b7d8ab8..00000000000
--- a/java/gjt/ThreeDBorderStyle.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package gjt;
-
-/**
- * Constants for 3D border styles.
- *
- * This class may not be instantiated.
- *
- * @version 1.0, Apr 11 1996
- * @author David Geary
- */
-public class ThreeDBorderStyle {
- public static final ThreeDBorderStyle RAISED =
- new ThreeDBorderStyle();
- public static final ThreeDBorderStyle INSET =
- new ThreeDBorderStyle();
-
- public String toString() {
- if(this == ThreeDBorderStyle.RAISED)
- return getClass().getName() + "=RAISED";
- else
- return getClass().getName() + "=INSET";
- }
- private ThreeDBorderStyle() { } // defeat instantiation
-}
diff --git a/java/gjt/ThreeDRectangle.java b/java/gjt/ThreeDRectangle.java
deleted file mode 100644
index 647129190c5..00000000000
--- a/java/gjt/ThreeDRectangle.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A DrawnRectangle which draws in 3D.<p>
- *
- * Drawn raised by default, drawing style used by paint() is
- * controlled by raise() and inset(). Note that raise() and
- * inset() do not result in anything being painted, but only set
- * the state for the next call to paint(). To set the state and
- * paint in one operation, use paintRaised() and paintInset().
- * <p>
- *
- * The current state of the rectangle may be obtained by
- * calling isRaised().<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see DrawnRectangle
- * @see EtchedRectangle
- * @see gjt.test.DrawnRectangleTest
- */
-public class ThreeDRectangle extends DrawnRectangle {
- protected static ThreeDBorderStyle
- _defaultState = ThreeDBorderStyle.RAISED;
-
- private ThreeDBorderStyle state;
-
- public ThreeDRectangle(Component drawInto) {
- this(drawInto, _defaultState,
- _defaultThickness, 0, 0, 0, 0);
- }
- public ThreeDRectangle(Component drawInto, int thickness) {
- this(drawInto, _defaultState, thickness, 0, 0, 0, 0);
- }
- public ThreeDRectangle(Component drawInto,
- int x, int y, int w, int h) {
- this(drawInto,
- _defaultState, _defaultThickness, x, y, w, h);
- }
- public ThreeDRectangle(Component drawInto, int thickness,
- int x, int y,
- int w, int h) {
- this(drawInto, _defaultState, thickness, x, y, w, h);
- }
- public ThreeDRectangle(Component drawInto,
- ThreeDBorderStyle state,
- int thickness, int x, int y,
- int w, int h) {
- super(drawInto, thickness, x, y, w, h);
- this.state = state;
- }
- public void paint() {
- if(state == ThreeDBorderStyle.RAISED) paintRaised();
- else paintInset ();
- }
- public void raise() { state = ThreeDBorderStyle.RAISED; }
- public void inset() { state = ThreeDBorderStyle.INSET; }
-
- public boolean isRaised() {
- return state == ThreeDBorderStyle.RAISED;
- }
- public String paramString() {
- return super.paramString() + "," + state;
- }
- public void paintRaised() {
- Graphics g = drawInto.getGraphics();
-
- if(g != null) {
- raise ();
- drawTopLeftLines (g, brighter());
- drawBottomRightLines(g, getLineColor());
- }
- }
- public void paintInset() {
- Graphics g = drawInto.getGraphics();
-
- if(g != null) {
- inset ();
- drawTopLeftLines (g, getLineColor());
- drawBottomRightLines(g, brighter());
- }
- }
- private void drawTopLeftLines(Graphics g, Color color) {
- int thick = getThickness();
- g.setColor(color);
-
- for(int i=0; i < thick; ++i) {
- g.drawLine(x+i, y+i, x + width-(i+1), y+i);
- g.drawLine(x+i, y+i+1, x+i, y + height-(i+1));
- }
- }
- private void drawBottomRightLines(Graphics g, Color color) {
- int thick = getThickness();
- g.setColor(color);
-
- for(int i=1; i <= thick; ++i) {
- g.drawLine(x+i-1, y + height-i,
- x + width-i, y + height-i);
- g.drawLine(x + width-i, y+i-1,
- x + width-i, y + height-i);
- }
- }
-}
diff --git a/java/gjt/Toolbar.java b/java/gjt/Toolbar.java
deleted file mode 100644
index 4d6ebddc217..00000000000
--- a/java/gjt/Toolbar.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * A toolbar containing image buttons which are laid out to the
- * north of (horizontal) separator.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ImageButton
- * @see ImageButtonPanel
- * @see gjt.test.ToolbarTest
- */
-public class Toolbar extends Panel {
- static private int _defaultGap = 0;
- static private int _defaultLeftInset = 0;
-
- private ToolbarButtonPanel buttonPanel;
-
- public Toolbar() {
- this(_defaultLeftInset, _defaultGap);
- }
- public Toolbar(int leftInset, int gap) {
- buttonPanel = new ToolbarButtonPanel(leftInset, gap);
-
- setLayout(new BorderLayout());
- add ("North", buttonPanel);
- add ("South", new Separator());
- }
- public ImageButton add(Image image) {
- return buttonPanel.add(image);
- }
- public void add(ImageButton button) {
- buttonPanel.add(button);
- }
- public void addSpacer(int sizeInPixels) {
- Assert.notFalse(sizeInPixels > 0);
- buttonPanel.addSpacer(sizeInPixels);
- }
-}
-
-class ToolbarButtonPanel extends ImageButtonPanel {
- private int leftInset;
-
- public ToolbarButtonPanel(int leftInset, int gap) {
- super(Orientation.HORIZONTAL,
- Orientation.LEFT,
- Orientation.CENTER,
- gap);
-
- this.leftInset = leftInset;
- setController(null);
- }
- public Insets insets() {
- return new Insets(5,leftInset,5,5);
- }
-}
diff --git a/java/gjt/Util.java b/java/gjt/Util.java
deleted file mode 100644
index 0970a6fd488..00000000000
--- a/java/gjt/Util.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package gjt;
-
-import java.applet.Applet;
-import java.awt.*;
-
-/**
- * A handy collection of methods for getting a component's
- * frame, getting a component's applet, waiting for a
- * component's image, and wallpapering a components background.
- * <p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- */
-public class Util {
- public static Frame getFrame(Component component) {
- Component c = component;
-
- if(c instanceof Frame)
- return (Frame)c;
-
- while((c = c.getParent()) != null) {
- if(c instanceof Frame)
- return (Frame)c;
- }
- return null;
- }
- public static Applet getApplet(Component component) {
- Component c = component;
-
- if(c instanceof Applet)
- return (Applet)c;
-
- while((c = c.getParent()) != null) {
- if(c instanceof Applet)
- return (Applet)c;
- }
- return null;
- }
- public static void waitForImage(Component component,
- Image image) {
- MediaTracker tracker = new MediaTracker(component);
- try {
- tracker.addImage(image, 0);
- tracker.waitForID(0);
- }
- catch(InterruptedException e) { Assert.notNull(null); }
- }
- public static void wallPaper(Component component,
- Graphics g,
- Image image) {
- Dimension compsize = component.size();
- Util.waitForImage(component, image);
-
- int patchW = image.getWidth(component);
- int patchH = image.getHeight(component);
-
- Assert.notFalse(patchW != -1 && patchH != -1);
-
- for(int r=0; r < compsize.width; r += patchW) {
- for(int c=0; c < compsize.height; c += patchH)
- g.drawImage(image, r, c, component);
- }
- }
- public static void setCursor(int cursor,
- Component component) {
- getFrame(component).setCursor(cursor);
- }
-}
diff --git a/java/gjt/YesNoDialog.java b/java/gjt/YesNoDialog.java
deleted file mode 100644
index 2db64ea6e4b..00000000000
--- a/java/gjt/YesNoDialog.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package gjt;
-
-import java.awt.*;
-
-/**
- * Similar in fuction to the MessageDialog, YesNoDialog poses
- * a question, that is answered by selection of either a Yes
- * button or a No button.<p>
- *
- * Note that the YesNoDialog is a singleton - meaning there is
- * only one YesNoDialog in existence per applet. Clients
- * may obtain the YesNoDialog by invoking getYesNoDialog().<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see GJTDialog
- * @see MessageDialog
- * @see gjt.test.DialogTest
- */
-public class YesNoDialog extends GJTDialog {
- static private YesNoDialog _theYesNoDialog;
- private Button yesButton;
- private Button noButton;
- private String message;
- private boolean answer = false;
- private ButtonPanel buttonPanel = new ButtonPanel();
-
- static public YesNoDialog getYesNoDialog( Frame frame,
- DialogClient client,
- String title,
- String message) {
- if(_theYesNoDialog == null)
- _theYesNoDialog = new YesNoDialog(frame,client,
- title,message);
- else {
- _theYesNoDialog.setClient (client);
- _theYesNoDialog.setTitle (title);
- _theYesNoDialog.setMessage(message);
- }
- return _theYesNoDialog;
- }
- private YesNoDialog(Frame frame, DialogClient client,
- String title, String message) {
- super(frame, title, client, true);
- yesButton = buttonPanel.add("Yes");
- noButton = buttonPanel.add("No");
-
- setLayout(new BorderLayout());
- add("Center", new YesNoPanel(message));
- add("South", buttonPanel);
- pack();
- }
- public void show() {
- yesButton.requestFocus();
- super.show();
- }
- public boolean answeredYes() {
- return answer;
- }
- public boolean action(Event event, Object what) {
- if(event.target == yesButton) answer = true;
- else answer = false;
-
- hide();
- client.dialogDismissed(this);
- return true;
- }
- private void setMessage(String message) {
- this.message = message;
- }
-}
-
-class YesNoPanel extends Panel {
- public YesNoPanel(String question) {
- add("Center", new Label(question, Label.CENTER));
- }
- public Insets insets() {
- return new Insets(10,10,10,10);
- }
-}
diff --git a/java/gjt/animation/CollisionArena.java b/java/gjt/animation/CollisionArena.java
deleted file mode 100644
index defb1a6d86b..00000000000
--- a/java/gjt/animation/CollisionArena.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package gjt.animation;
-
-import java.awt.Dimension;
-import java.awt.Insets;
-import java.util.Vector;
-import gjt.Orientation;
-
-/**
- * A CollisionArena is defined as an arena in which collisions
- * may take place.<p>
- *
- * CollisionArenas must be able to report their size and
- * insets, and return a Vector of the Sprites contained in the
- * arena.<p>
- *
- * CollisionArenas must also implement two methods for handling
- * sprite and edge collisions, respectively.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Playfield
- * @see CollisionDetector
- * @see EdgeCollisionDetector
- * @see SpriteCollisionDetector
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public interface CollisionArena {
- abstract public Vector getSprites();
- abstract public Dimension getSize ();
- abstract public Insets getInsets ();
-
- abstract public void spriteCollision(Sprite sprite,
- Sprite other);
-
- abstract public void edgeCollision(Sprite sprite,
- Orientation orient);
-}
diff --git a/java/gjt/animation/CollisionDetector.java b/java/gjt/animation/CollisionDetector.java
deleted file mode 100644
index ff05f16c6d3..00000000000
--- a/java/gjt/animation/CollisionDetector.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package gjt.animation;
-
-/**
- * Collision detectors detect collisions that take place within
- * a CollisionArena.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CollisionArena
- * @see EdgeCollisionDetector
- * @see SpriteCollisionDetector
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-abstract public class CollisionDetector {
- protected CollisionArena arena;
-
- abstract public void detectCollisions();
-
- public CollisionDetector(CollisionArena arena) {
- this.arena = arena;
- }
-}
diff --git a/java/gjt/animation/EdgeCollisionDetector.java b/java/gjt/animation/EdgeCollisionDetector.java
deleted file mode 100644
index 8624b7c2f28..00000000000
--- a/java/gjt/animation/EdgeCollisionDetector.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package gjt.animation;
-
-import java.awt.*;
-import java.util.Enumeration;
-import java.util.Vector;
-import gjt.Orientation;
-
-/**
- * A CollisionDetector that detects collisions between Sprites
- * and the edges of the CollisionArena in which they reside.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CollisionDetector
- * @see Sprite
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public class EdgeCollisionDetector extends CollisionDetector {
- public EdgeCollisionDetector(CollisionArena arena) {
- super(arena);
- }
- public void detectCollisions() {
- Enumeration sprites = arena.getSprites().elements();
- Dimension arenaSize = arena.getSize();
- Insets arenaInsets = arena.getInsets();
- Sprite sprite;
-
- while(sprites.hasMoreElements()) {
- sprite = (Sprite)sprites.nextElement();
-
- Point nl = sprite.nextLocation ();
- Point mv = sprite.getMoveVector();
- int nextRightEdge = nl.x + sprite.width();
- int nextBottomEdge = nl.y + sprite.height();
- int arenaBottomEdge = arenaSize.height -
- arenaInsets.bottom;
- int arenaRightEdge = arenaSize.width -
- arenaInsets.right;
-
- if(nextRightEdge > arenaRightEdge)
- arena.edgeCollision(sprite, Orientation.LEFT);
- else if(nl.x < arenaInsets.left)
- arena.edgeCollision(sprite, Orientation.RIGHT);
-
- if(nextBottomEdge > arenaBottomEdge)
- arena.edgeCollision(sprite, Orientation.BOTTOM);
- else if(nl.y < arenaInsets.top)
- arena.edgeCollision(sprite, Orientation.TOP);
- }
- }
-}
diff --git a/java/gjt/animation/Playfield.java b/java/gjt/animation/Playfield.java
deleted file mode 100644
index 386c0fb24c4..00000000000
--- a/java/gjt/animation/Playfield.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package gjt.animation;
-
-import java.awt.*;
-import java.util.Enumeration;
-import java.util.Vector;
-import gjt.Util;
-
-/**
- * A surface upon which Sprites are animated. Playfields are
- * responsible for animating the sprites.<p>
- *
- * Each Playfield comes complete with two collision detectors:
- * an edge collision detector and a sprite collision detector.
- *
- * Playfield is an abstract class: extensions must implement
- * the following methods:
- * <dl>
- * <dd> void paintBackground(Graphics)
- * <dd> void void spriteCollision(Sprite sprite, Sprite other)
- * <dd> void void edgeCollision (Sprite sprite, Sprite other)
- * </dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CollisionArena
- * @see Sprite
- * @see SpriteCollisionDetector
- * @see EdgeCollisionDetector
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public abstract class Playfield extends Canvas
- implements Runnable,
- CollisionArena {
- protected Vector sprites = new Vector();
- private boolean running = false;
- private Insets insets = new Insets(0,0,0,0);
-
- private Thread animationThread;
- private Image bgoffscreen,
- workplaceBuffer;
- private Dimension offscreenSize;
- private EdgeCollisionDetector edgeCollisionDetector;
- private SpriteCollisionDetector spriteCollisionDetector;
-
- abstract public void paintBackground(Graphics g);
-
- public Playfield() {
- edgeCollisionDetector =
- new EdgeCollisionDetector(this);
- spriteCollisionDetector =
- new SpriteCollisionDetector(this);
- }
- public void stop () { running = false; }
- public boolean running () { return running; }
- public Dimension getSize () { return size(); }
- public Insets getInsets () { return insets; }
- public Vector getSprites() { return sprites; }
-
- public void addSprite(Sprite sprite) {
- sprites.addElement(sprite);
- }
- public void setInsets(Insets insets) {
- this.insets = insets;
- }
- public void start() {
- animationThread = new Thread(this);
- running = true;
- animationThread.start();
- }
- public void paint(Graphics g) {
- if(needNewOffscreenBuffer()) {
- workplaceBuffer = createOffscreenImage(size());
- bgoffscreen = createOffscreenImage(size());
- paintBackground(bgoffscreen.getGraphics());
- }
- g.drawImage(bgoffscreen, 0, 0, this);
- paintSprites();
- }
- public void reshape(int x, int y, int w, int h) {
- super.reshape(x,y,w,h);
- repaint();
- }
- public void run() {
- while(running == true) {
- edgeCollisionDetector.detectCollisions ();
- spriteCollisionDetector.detectCollisions();
-
- animateSprites();
- Thread.currentThread().yield();
- }
- animationThread = null;
- }
- private boolean needNewOffscreenBuffer() {
- return (workplaceBuffer == null ||
- bgoffscreen == null ||
- size().width != offscreenSize.width ||
- size().height != offscreenSize.height);
- }
- private Image createOffscreenImage(Dimension size) {
- Image image = createImage(size.width, size.height);
- Util.waitForImage(this, image);
- offscreenSize = size;
- return image;
- }
- protected void animateSprites() {
- Sprite nextSprite;
- Enumeration e = sprites.elements();
-
- while(e.hasMoreElements()) {
- nextSprite = (Sprite)e.nextElement();
- nextSprite.animate();
- }
- }
- protected void paintSprites() {
- Sprite nextSprite;
- Enumeration e = sprites.elements();
-
- while(e.hasMoreElements()) {
- nextSprite = (Sprite)e.nextElement();
- paintSprite(nextSprite);
- }
- }
- protected void paintSprite(Sprite sprite) {
- Graphics g = getGraphics();
- Graphics wpg = workplaceBuffer.getGraphics();
- Rectangle clip = sprite.clipRect();
-
- wpg.clipRect(clip.x, clip.y, clip.width, clip.height);
- wpg.drawImage(bgoffscreen, 0, 0, this);
- sprite.paint(wpg);
-
- g.clipRect (clip.x, clip.y, clip.width, clip.height);
- g.drawImage(workplaceBuffer, 0, 0, this);
-
- g.dispose();
- wpg.dispose();
- }
-}
diff --git a/java/gjt/animation/Sequence.java b/java/gjt/animation/Sequence.java
deleted file mode 100644
index 7b777ecd0d8..00000000000
--- a/java/gjt/animation/Sequence.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package gjt.animation;
-
-import java.util.Vector;
-import java.awt.*;
-import java.awt.image.ImageObserver;
-import gjt.Util;
-import gjt.Stopwatch;
-
-/**
- * A sequence of images used in an animation. Each sequence
- * keeps track of the number of cycles the sequence is to run,
- * and reports whether or not the cycles have been completed
- * via the boolean animationOver() method.
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Sprite
- * @see Playfield
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public class Sequence {
- private static long infiniteCycle = -1;
-
- private Vector cells = new Vector();
- private Point lastPaintLocation = new Point(0,0);
- private Stopwatch cellAdvanceTimer = new Stopwatch();
- private Image currentImage, lastImagePainted;
- private long cellAdvanceInterval = 0,
- currentCycle = 0,
- cyclesPerAnimation = 0;
-
- public Sequence() { }
-
- public Sequence(Component component, Image[] images) {
- for(int i=0; i < images.length; ++i) {
- addImage(component, images[i]);
- }
- cyclesPerAnimation = infiniteCycle;
- }
- public void start () { cellAdvanceTimer.start(); }
- public Image getLastImage () { return lastImagePainted; }
- public Point getLastLocation() { return lastPaintLocation; }
- public int getNumImages () { return cells.size(); }
-
- public long getCurrentCycle() { return currentCycle; }
- public void setCurrentCycle(long c) { currentCycle = c; }
-
- public long getCyclesPerAnimation() {
- return currentCycle;
- }
- public void setCyclesPerAnimation(long cyclesPerAnimation) {
- this.cyclesPerAnimation = cyclesPerAnimation;
- }
- public Image getFirstImage() {
- return (Image)cells.firstElement();
- }
- public Image getCurrentImage() {
- return currentImage;
- }
- public int getCurrentImagePosition() {
- return cells.indexOf(currentImage);
- }
- public Image getNextImage() {
- int index = cells.indexOf(currentImage);
- Image image;
-
- if(index == cells.size() - 1)
- image = (Image)cells.elementAt(0);
- else
- image = (Image)cells.elementAt(index + 1);
-
- return image;
- }
- public void setAdvanceInterval(long interval) {
- cellAdvanceInterval = interval;
- }
- public void addImage(Component component, Image image) {
- if(currentImage == null)
- currentImage = image;
-
- Util.waitForImage(component, image);
- cells.addElement(image);
- }
- public void removeImage(Image image) {
- cells.removeElement(image);
- }
- public boolean needsRepainting(Point point) {
- return (lastPaintLocation.x != point.x ||
- lastPaintLocation.y != point.y ||
- lastImagePainted != currentImage);
- }
- public void paint(Graphics g, int x, int y,
- ImageObserver observer) {
- g.drawImage(currentImage, x, y, observer);
- lastPaintLocation.x = x;
- lastPaintLocation.y = y;
- lastImagePainted = currentImage;
- }
- public boolean isAtLastImage() {
- return getCurrentImagePosition() == (cells.size() - 1);
- }
- public boolean timeToAdvanceCell() {
- return
- cellAdvanceTimer.elapsedTime() > cellAdvanceInterval;
- }
- public boolean animationOver() {
- return (cyclesPerAnimation != infiniteCycle) &&
- (currentCycle >= cyclesPerAnimation);
- }
- public void advance() {
- if(isAtLastImage())
- ++currentCycle;
-
- currentImage = getNextImage();
- cellAdvanceTimer.reset();
- }
-}
diff --git a/java/gjt/animation/Sprite.java b/java/gjt/animation/Sprite.java
deleted file mode 100644
index e7840b7615b..00000000000
--- a/java/gjt/animation/Sprite.java
+++ /dev/null
@@ -1,191 +0,0 @@
-package gjt.animation;
-
-import java.awt.*;
-import java.util.Vector;
-import gjt.Assert;
-import gjt.Stopwatch;
-import gjt.Util;
-
-/**
- * A sequence of images which are animated and moved about on
- * a Playfield.<p>
- *
- * Each Sprite is constructed with a reference to it's
- * Playfield, a Sequence, and a beginning position for it's
- * upper left hand corner.<p>
- *
- * A Sprite's animation is controlled by invoking the following
- * methods:
- *<dl>
- *<dd> setMoveVector(Point)
- *<dd> setMoveInterval(long)
- *<dd> setImageChangeInterval(long)
- *<dd> setMainSequence(Sequence)
- *<dd> setSequence(Sequence)
- *</dl>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see Sequence
- * @see Playfield
- * @see SpriteCollisionDetector
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public class Sprite {
- private Playfield field;
- private Sequence currentSequence, mainSequence;
- private Stopwatch moveTimer = new Stopwatch();
-
- private Point ulhc = new Point(0,0);
- private Point start = new Point(0,0);
- private Point moveVector = new Point(1,1);
-
- private Rectangle clip = new Rectangle(0,0);
- private Rectangle curBounds, lastBounds;
-
- private int width, height;
- private long moveInterval = 0;
-
- public Sprite(Playfield field,
- Sequence sequence,
- Point ulhc) {
- Assert.notNull(field);
- Assert.notNull(sequence);
- Assert.notNull(ulhc);
-
- this.field = field;
- this.ulhc = ulhc;
- start.x = ulhc.x;
- start.y = ulhc.y;
-
- setSequence(sequence);
- setMainSequence(sequence);
-
- initializeBounds();
- moveTimer.start();
- currentSequence.start();
- }
- public Playfield getPlayfield() { return field; }
- public Rectangle clipRect () { return clip; }
- public Rectangle curBounds () { return curBounds; }
-
- public int width () { return width; }
- public int height () { return height; }
- public void reverseX () { moveVector.x = 0-moveVector.x; }
- public void reverseY () { moveVector.y = 0-moveVector.y; }
- public void reverse () { reverseX(); reverseY(); }
- public Point start () { return start; }
-
- public void setMoveVector (Point p) { moveVector = p; }
- public Point getMoveVector() { return moveVector; }
-
- public void play(Sequence sequence, long cycles) {
- setSequence(sequence);
- sequence.setCyclesPerAnimation(cycles);
- sequence.setCurrentCycle(0);
- }
- public void animate() {
- if(currentSequence.animationOver())
- currentSequence = mainSequence;
-
- if(timeToChangeImage()) currentSequence.advance();
- if(timeToMove()) move();
- if(needsRepainting()) field.paintSprite(this);
- }
- public void setMainSequence(Sequence sequence) {
- mainSequence = sequence;
- }
- public Sequence getMainSequence() {
- return mainSequence;
- }
- public void setSequence(Sequence sequence) {
- currentSequence = sequence;
-
- if(curBounds != null)
- updateBounds();
- }
- public Sequence getSequence() {
- return currentSequence;
- }
- public boolean intersects(Sprite otherSprite) {
- return curBounds().intersects(otherSprite.curBounds());
- }
- public boolean willIntersect(Sprite otherSprite) {
- return
- nextBounds().intersects(otherSprite.nextBounds());
- }
- public boolean timeToMove() {
- return moveTimer.elapsedTime() > moveInterval;
- }
- public boolean timeToChangeImage() {
- return currentSequence.timeToAdvanceCell();
- }
- public void moveTo(Point p) {
- ulhc = p;
- moveTimer.reset();
- }
- public boolean needsRepainting() {
- return currentSequence.needsRepainting(ulhc);
- }
- public void setMoveInterval(long interval) {
- moveInterval = interval;
- }
- public void setImageChangeInterval(long interval) {
- currentSequence.setAdvanceInterval(interval);
- }
- public void move() {
- ulhc.x += moveVector.x;
- ulhc.y += moveVector.y;
- updateBounds();
- moveTimer.reset();
- }
- public Point location() {
- return ulhc;
- }
- public Point nextLocation() {
- return new Point(ulhc.x + moveVector.x,
- ulhc.y + moveVector.y);
- }
- public Rectangle nextBounds() {
- Image nextImage = currentSequence.getNextImage();
- Point nextLoc = nextLocation();
-
- return new Rectangle(
- nextLoc.x, nextLoc.y, width, height);
- }
- public void paint(Graphics g) {
- currentSequence.paint(g, ulhc.x, ulhc.y, field);
- }
- private void initializeBounds() {
- Image curImage = currentSequence.getCurrentImage();
-
- width = curImage.getWidth (field);
- height = curImage.getHeight(field);
-
- curBounds =
- new Rectangle(ulhc.x, ulhc.y, width, height);
-
- lastBounds = new Rectangle(curBounds.x,
- curBounds.y,
- curBounds.width,
- curBounds.height);
-
- clip = lastBounds.union(curBounds);
- }
- private void updateBounds() {
- Image curImage = currentSequence.getCurrentImage();
-
- lastBounds.width = curBounds.width;
- lastBounds.height = curBounds.height;
-
- curBounds.width = width = curImage.getWidth(field);
- curBounds.height = height = curImage.getHeight(field);
-
- lastBounds.move(curBounds.x, curBounds.y);
- curBounds.move (ulhc.x, ulhc.y);
-
- clip = lastBounds.union(curBounds);
- }
-}
diff --git a/java/gjt/animation/SpriteCollisionDetector.java b/java/gjt/animation/SpriteCollisionDetector.java
deleted file mode 100644
index 2ef37d79208..00000000000
--- a/java/gjt/animation/SpriteCollisionDetector.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package gjt.animation;
-
-import java.awt.*;
-import java.util.Enumeration;
-import java.util.Vector;
-import gjt.Orientation;
-
-/**
- * A CollisionDetector that detects collisions between Sprites
- * residing in a CollisionArena.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see CollisionArena
- * @see CollisionDetector
- * @see Sprite
- * @see gjt.test.SimpleAnimationTest
- * @see gjt.test.BumpAnimationTest
- * @see gjt.test.TwoDrinkersAnimationTest
- */
-public class SpriteCollisionDetector extends CollisionDetector {
- public SpriteCollisionDetector(CollisionArena arena) {
- super(arena);
- }
- public void detectCollisions() {
- Enumeration sprites = arena.getSprites().elements();
- Sprite sprite;
-
- while(sprites.hasMoreElements()) {
- sprite = (Sprite)sprites.nextElement();
-
- Enumeration otherSprites =
- arena.getSprites().elements();
- Sprite otherSprite;
-
- while(otherSprites.hasMoreElements()) {
- otherSprite=(Sprite)otherSprites.nextElement();
-
- if(otherSprite != sprite)
- if(sprite.willIntersect(otherSprite))
- arena.spriteCollision(sprite,otherSprite);
- }
- }
- }
-}
diff --git a/java/gjt/image/BleachImageFilter.java b/java/gjt/image/BleachImageFilter.java
deleted file mode 100644
index f698a218284..00000000000
--- a/java/gjt/image/BleachImageFilter.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package gjt.image;
-
-import java.awt.image.*;
-import gjt.Assert;
-
-/**
- * A derivation of RGBImageFilter that bleaches an image.<p>
- *
- * Extent of the bleaching effect is controlled by the only
- * constructor argument: an integer representing the percentage
- * of bleaching. The percentage of bleaching may also be
- * controlled after instantiation by invoking the
- * void percent(int) method.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see RGBImageFilter
- */
-public class BleachImageFilter extends RGBImageFilter {
- private int percent;
-
- public BleachImageFilter(int percent) {
- Assert.notFalse(percent >= 0 && percent <= 100);
- this.percent = percent;
- canFilterIndexColorModel = true;
- }
- public int percent() { return percent; }
- public void percent(int percent) { percent = percent; }
-
- public int filterRGB(int x, int y, int rgb) {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
-
- int alpha = cm.getAlpha(rgb);
- int red = cm.getRed (rgb);
- int green = cm.getGreen(rgb);
- int blue = cm.getBlue (rgb);
- double percentMultiplier = (double)percent/100;
-
- red = Math.min((int)
- (red + (red * percentMultiplier)), 255);
- green = Math.min((int)
- (green + (green * percentMultiplier)), 255);
- blue = Math.min((int)
- (blue + (blue * percentMultiplier)), 255);
-
- alpha = alpha << 24;
- red = red << 16;
- green = green << 8;
-
- return alpha | red | green | blue;
- }
-}
diff --git a/java/gjt/image/DissolveFilter.java b/java/gjt/image/DissolveFilter.java
deleted file mode 100644
index 027455b39b6..00000000000
--- a/java/gjt/image/DissolveFilter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package gjt.image;
-
-import java.awt.image.*;
-import gjt.Assert;
-
-/**
- * A derivation of RGBImageFilter that partially or wholly
- * dissolves an image.<p>
- *
- * Extent of dissolving is set by the setOpacity(int) method,
- * which is passed an integer between 0 and 255 (inclusive).
- * The integer represents the alpha value to be applied to
- * every color in the image.<p>
- *
- * An alpha value of 255 signifies an opaque color, while an
- * alpha value of 0 signifies a translucent color.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see RGBImageFilter
- */
-public class DissolveFilter extends RGBImageFilter {
- private int opacity;
-
- public DissolveFilter() {
- this(0);
- }
- public DissolveFilter(int opacity) {
- canFilterIndexColorModel = true;
- setOpacity(opacity);
- }
- public void setOpacity(int opacity) {
- Assert.notFalse(opacity >= 0 && opacity <= 255);
- this.opacity = opacity;
- }
- public int filterRGB(int x, int y, int rgb) {
- DirectColorModel cm =
- (DirectColorModel)ColorModel.getRGBdefault();
- int alpha = cm.getAlpha(rgb);
- int red = cm.getRed (rgb);
- int green = cm.getGreen(rgb);
- int blue = cm.getBlue (rgb);
-
- alpha = opacity;
-
- return alpha << 24 | red << 16 | green << 8 | blue;
- }
-}
diff --git a/java/gjt/image/ImageDissolver.java b/java/gjt/image/ImageDissolver.java
deleted file mode 100644
index 5d0e6a2daf6..00000000000
--- a/java/gjt/image/ImageDissolver.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package gjt.image;
-
-import java.awt.*;
-import java.awt.image.*;
-import gjt.Util;
-
-/**
- * Given an image, an ImageDissolver produces an array of
- * images of varying opacity that are used in the fadeIn()
- * and fadeOut() methods for fading the image in and out
- * respectively.<p>
- *
- * As a convenience, ImageDissolver has a static method:
- * Image[] createImages() that creates the array of images
- * mentioned above, in case clients would like to create their
- * own array of images instead of using an ImageDissolver
- * directly.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see ThreeDBorder
- * @see ImageButtonController
- * @see SpringyImageButtonController
- * @see StickyImageButtonController
- * @see BleachImageFilter
- * @see gjt.test.ImageButtonTest
- */
-public class ImageDissolver {
- private static int _defaultNumImages = 10,
- _defaultPause = 50;
- Component comp;
- int numImages, pauseInterval;
- Image image, offscreen;
- Image[] dissolvedImages;
-
- static public Image[] createImages(Image image,
- int numImages,
- Component component) {
- Image images[] = new Image[numImages];
- MediaTracker tracker = new MediaTracker(component);
-
- DissolveFilter filter;
- FilteredImageSource fis;
-
- for(int i=0; i < numImages; ++i) {
- filter = new DissolveFilter((255/(numImages-1))*i);
- fis = new FilteredImageSource(image.getSource(),
- filter);
-
- images[i] = component.createImage(fis);
- tracker.addImage(images[i], i);
- }
- try { tracker.waitForAll(); }
- catch(InterruptedException e) { }
-
- return images;
- }
-
- public ImageDissolver(Component comp, Image image) {
- this(comp, image, _defaultNumImages, _defaultPause);
- }
- public ImageDissolver(Component comp, Image im,
- int numImages, int pause) {
- this.image = im;
- this.comp = comp;
- this.numImages = numImages;
- dissolvedImages = new Image[numImages];
- pauseInterval = pause;
-
- Util.waitForImage(comp, im);
- dissolvedImages = createImages(image, numImages, comp);
- }
- public void fadeIn(int x, int y) {
- if(offscreen == null)
- offscreen = comp.createImage(image.getWidth(comp),
- image.getHeight(comp));
-
- Graphics offg = offscreen.getGraphics();
- Graphics compg = comp.getGraphics();
-
- if(offg != null && compg != null) {
- clearComponent(compg, x, y);
- for(int i=0; i < numImages; ++i) {
- blitImage(compg, offg, x, y, i);
- pause ();
- }
- blitOpaqueImage(compg, offg, x, y);
- }
- }
- public void fadeOut(int x, int y) {
- if(offscreen == null)
- offscreen = comp.createImage(image.getWidth(comp),
- image.getHeight(comp));
-
- Graphics offg = offscreen.getGraphics();
- Graphics compg = comp.getGraphics();
-
- if(offg != null && compg != null) {
- blitOpaqueImage(compg, offg, x, y);
- for(int i=numImages-1; i >= 0; --i) {
- clearOffscreen();
- blitImage (compg, offg, x, y, i);
- pause ();
- }
- }
- }
- private void blitImage(Graphics compg, Graphics offg,
- int x, int y, int index) {
- offg.drawImage (dissolvedImages[index], 0, 0, comp);
- compg.drawImage(offscreen, x, y, comp);
- }
- private void blitOpaqueImage(Graphics compg, Graphics offg,
- int x, int y) {
- offg.drawImage(image, 0, 0, comp);
- compg.drawImage(offscreen, x, y, comp);
- }
- private void clearComponent(Graphics compg, int x, int y) {
- clearOffscreen();
- compg.drawImage(offscreen, x, y, comp);
- }
- private void clearOffscreen() {
- Graphics offg = offscreen.getGraphics();
-
- offg.setColor(comp.getBackground());
- offg.fillRect(0, 0,
- image.getWidth(comp), image.getHeight(comp));
- }
- private void pause() {
- try { Thread.currentThread().sleep(pauseInterval); }
- catch(InterruptedException e) { }
- }
-}
diff --git a/java/gjt/rubberband/Rubberband.java b/java/gjt/rubberband/Rubberband.java
deleted file mode 100644
index be4b1b6ac05..00000000000
--- a/java/gjt/rubberband/Rubberband.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package gjt.rubberband;
-
-import java.awt.*;
-
-/**
- * A abstract base class for rubberbands.<p>
- *
- * Rubberbands do their rubberbanding inside of a Component,
- * which must be specified at construction time.<p>
- *
- * Subclasses are responsible for implementing
- * <em>void drawLast(Graphics g)</em> and
- * <em>void drawNext(Graphics g)</em>.
- *
- * drawLast() draws the appropriate geometric shape at the last
- * rubberband location, while drawNext() draws the appropriate
- * geometric shape at the next rubberband location. All of the
- * underlying support for rubberbanding is taken care of here,
- * including handling XOR mode setting; extensions of Rubberband
- * need not concern themselves with anything but drawing the
- * last and next geometric shapes.<p>
- *
- * @version 1.00, 12/27/95
- * @author David Geary
- * @see RubberbandLine
- * @see RubberbandRectangle
- * @see RubberbandEllipse
- * @see gjt.test.RubberbandTest
- */
-abstract public class Rubberband {
- protected Point anchor = new Point(0,0);
- protected Point stretched = new Point(0,0);
- protected Point last = new Point(0,0);
- protected Point end = new Point(0,0);
-
- private Component component;
- private boolean firstStretch = true;
-
- abstract public void drawLast(Graphics g);
- abstract public void drawNext(Graphics g);
-
- public Rubberband(Component component) {
- this.component = component;
- }
- public Point getAnchor () { return anchor; }
- public Point getStretched() { return stretched; }
- public Point getLast () { return last; }
- public Point getEnd () { return end; }
-
- public void anchor(Point p) {
- firstStretch = true;
- anchor.x = p.x;
- anchor.y = p.y;
-
- stretched.x = last.x = anchor.x;
- stretched.y = last.y = anchor.y;
- }
- public void stretch(Point p) {
- last.x = stretched.x;
- last.y = stretched.y;
- stretched.x = p.x;
- stretched.y = p.y;
-
- Graphics g = component.getGraphics();
- if(g != null) {
- g.setXORMode(component.getBackground());
-
- if(firstStretch == true) firstStretch = false;
- else drawLast(g);
-
- drawNext(g);
- }
- }
- public void end(Point p) {
- last.x = end.x = p.x;
- last.y = end.y = p.y;
-
- Graphics g = component.getGraphics();
- if(g != null) {
- g.setXORMode(component.getBackground());
- drawLast(g);
- }
- }
- public Rectangle bounds() {
- return new Rectangle(stretched.x < anchor.x ?
- stretched.x : anchor.x,
- stretched.y < anchor.y ?
- stretched.y : anchor.y,
- Math.abs(stretched.x - anchor.x),
- Math.abs(stretched.y - anchor.y));
- }
-
- public Rectangle lastBounds() {
- return new Rectangle(
- last.x < anchor.x ? last.x : anchor.x,
- last.y < anchor.y ? last.y : anchor.y,
- Math.abs(last.x - anchor.x),
- Math.abs(last.y - anchor.y));
- }
-}
diff --git a/java/gjt/rubberband/RubberbandEllipse.java b/java/gjt/rubberband/RubberbandEllipse.java
deleted file mode 100644
index 50ddb0cdd6b..00000000000
--- a/java/gjt/rubberband/RubberbandEllipse.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package gjt.rubberband;
-
-import java.awt.Component;
-import java.awt.Graphics;
-import java.awt.Rectangle;
-
-/**
- * A Rubberband that does ellipses.
- *
- * @version 1.00, 12/27/95
- * @author David Geary
- * @see Rubberband
- * @see gjt.test.RubberbandTest
- */
-public class RubberbandEllipse extends Rubberband {
- private final int startAngle = 0;
- private final int endAngle = 360;
-
- public RubberbandEllipse(Component component) {
- super(component);
- }
- public void drawLast(Graphics graphics) {
- Rectangle r = lastBounds();
- graphics.drawArc(r.x, r.y,
- r.width, r.height, startAngle, endAngle);
- }
- public void drawNext(Graphics graphics) {
- Rectangle r = bounds();
- graphics.drawArc(r.x, r.y,
- r.width, r.height, startAngle, endAngle);
- }
-}
diff --git a/java/gjt/rubberband/RubberbandLine.java b/java/gjt/rubberband/RubberbandLine.java
deleted file mode 100644
index 95daafa32a6..00000000000
--- a/java/gjt/rubberband/RubberbandLine.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package gjt.rubberband;
-
-import java.awt.Component;
-import java.awt.Graphics;
-
-/**
- * A Rubberband that does lines.
- *
- * @version 1.0, 12/27/95
- * @author David Geary
- * @see Rubberband
- * @see gjt.test.RubberbandTest
- */
-public class RubberbandLine extends Rubberband {
- public RubberbandLine(Component component) {
- super(component);
- }
- public void drawLast(Graphics graphics) {
- graphics.drawLine(anchor.x, anchor.y, last.x, last.y);
- }
- public void drawNext(Graphics graphics) {
- graphics.drawLine(anchor.x, anchor.y,
- stretched.x, stretched.y);
- }
-}
diff --git a/java/gjt/rubberband/RubberbandPanel.java b/java/gjt/rubberband/RubberbandPanel.java
deleted file mode 100644
index e4c25f4efb5..00000000000
--- a/java/gjt/rubberband/RubberbandPanel.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package gjt.rubberband;
-
-import java.awt.*;
-
-/**
- * An extension of Panel which is fitted with a Rubberband.
- * Handling of mouse events is automatically handled for
- * rubberbanding.<p>
- *
- * Clients may set or get the Rubberband at any time.<p>
- *
- * @version 1.0, Dec 27 1995
- * @author David Geary
- * @see Rubberband
- * @see gjt.test.RubberbandTest
- */
-public class RubberbandPanel extends Panel {
- private Rubberband rubberband;
-
- public void setRubberband(Rubberband rubberband) {
- this.rubberband = rubberband;
- }
- public Rubberband getRubberband() {
- return rubberband;
- }
- public boolean mouseDown(Event event, int x, int y) {
- rubberband.anchor(new Point(x,y));
- return false;
- }
- public boolean mouseDrag(Event event, int x, int y) {
- rubberband.stretch(new Point(x,y));
- return false;
- }
- public boolean mouseUp(Event event, int x, int y) {
- rubberband.end(new Point(x,y));
- return false;
- }
-}
diff --git a/java/gjt/rubberband/RubberbandRectangle.java b/java/gjt/rubberband/RubberbandRectangle.java
deleted file mode 100644
index bfcb1bfc32c..00000000000
--- a/java/gjt/rubberband/RubberbandRectangle.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package gjt.rubberband;
-
-import java.awt.Component;
-import java.awt.Graphics;
-import java.awt.Rectangle;
-
-/**
- * A Rubberband that does rectangles.
- *
- * @version 1.00, 12/27/95
- * @author David Geary
- * @see Rubberband
- * @see gjt.test.RubberbandTest
- */
-public class RubberbandRectangle extends Rubberband {
- public RubberbandRectangle(Component component) {
- super(component);
- }
- public void drawLast(Graphics graphics) {
- Rectangle rect = lastBounds();
- graphics.drawRect(rect.x, rect.y,
- rect.width, rect.height);
- }
- public void drawNext(Graphics graphics) {
- Rectangle rect = bounds();
- graphics.drawRect(rect.x, rect.y,
- rect.width, rect.height);
- }
-}
diff --git a/java/gjt/test/AttributesPanel.java b/java/gjt/test/AttributesPanel.java
deleted file mode 100644
index 535a12edaeb..00000000000
--- a/java/gjt/test/AttributesPanel.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import gjt.*;
-
-class AttributesPanel extends Panel {
- private Applet applet;
- private Box iconbox, labelbox, checkboxbox;
- private Panel panelInLabelbox = new Panel();
- private Panel panelInCheckboxbox = new Panel();
- private ExclusiveImageButtonPanel panelInIconbox;
-
- public AttributesPanel(Applet applet) {
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
-
- this.applet = applet;
- panelInIconbox = new ExclusiveImageButtonPanel(
- Orientation.HORIZONTAL);
-
- populateIconPanel ();
- populateLabelPanel ();
- populateCheckboxPanel();
-
- iconbox = new Box(panelInIconbox,
- "Meaningless Images");
- labelbox = new Box(panelInLabelbox, "Labels");
- checkboxbox = new Box(panelInCheckboxbox, "Fruits");
- iconbox.etchedOut();
-
- setLayout(gbl);
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.weighty = 0.50;
- gbl.setConstraints(iconbox, gbc);
- add(iconbox);
- gbl.setConstraints(labelbox, gbc);
- add(labelbox);
-
- gbc.anchor = GridBagConstraints.SOUTH;
- gbc.weighty = 0;
- gbl.setConstraints(panelInCheckboxbox, gbc);
- add(checkboxbox);
- }
- private void populateIconPanel() {
- Image ballot, film, ticket;
-
- ballot = applet.getImage(applet.getCodeBase(),
- "gifs/ballot_box.gif");
- ticket = applet.getImage(applet.getCodeBase(),
- "gifs/movie_ticket.gif");
- film = applet.getImage(applet.getCodeBase(),
- "gifs/filmstrip.gif");
-
- panelInIconbox.add(ballot);
- panelInIconbox.add(ticket);
- panelInIconbox.add(film);
- }
- private void populateLabelPanel() {
- panelInLabelbox.add(new Label("Label One"));
- panelInLabelbox.add(new Label("Label Two"));
- panelInLabelbox.add(new Label("Label Three"));
- panelInLabelbox.add(new Label("Label Four"));
- panelInLabelbox.add(new Label("Label Five"));
- }
- private void populateCheckboxPanel() {
- CheckboxGroup group = new CheckboxGroup();
-
- panelInCheckboxbox.setLayout(new GridLayout(3,0));
- panelInCheckboxbox.add(new Checkbox("apples",
- group, false));
- panelInCheckboxbox.add(new Checkbox("oranges",
- group, false));
- panelInCheckboxbox.add(new Checkbox("pears",
- group, true));
- }
-}
diff --git a/java/gjt/test/BargaugeTest.java b/java/gjt/test/BargaugeTest.java
deleted file mode 100644
index 47733d6b0bf..00000000000
--- a/java/gjt/test/BargaugeTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import java.applet.*;
-import gjt.Bargauge;
-
-/**
- * An array of either horizontal or vertical animated bargauges.
- * The orientation of the bargauges is controlled by a parameter
- * passed into the applet.<p>
- *
- * <em>
- * Warning: An AWT bug causes this test to be a gluttenous
- * consumer of resources (especially under Win95). A mouse down
- * will halt the animation thread along with its consumption of
- * resources.<p>
- * </em>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.Bargauge
- */
-public class BargaugeTest extends UnitTest {
- private Bargauge[] gauges = new Bargauge[10];
- private Thread animatorThread;
- private boolean running;
-
- public String title() {
- return "Bargauge Test";
- }
- public Panel centerPanel() {
- return new BargaugeTestPanel(
- gauges, getParameter("orientation"));
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(running == true) {
- animatorThread.suspend();
- running = false;
- }
- else {
- animatorThread.resume ();
- running = true;
- }
- return true;
- }
- public void start() {
- super.start();
- animatorThread = new BargaugeAnimator(gauges);
- animatorThread.start();
- running = true;
- }
- public void stop() {
- super.stop();
- animatorThread.suspend();
- running = false;
- }
-}
-
-class BargaugeTestPanel extends Panel {
- public BargaugeTestPanel(Bargauge[] gauges, String orient) {
- Panel bargaugePanel = new Panel();
-
- setLayout(new BorderLayout());
- add("North",
- new Label("Mouse Down Starts/Stops",Label.CENTER));
- add("Center", bargaugePanel);
-
- bargaugePanel.add(new BargaugeGridPanel(gauges,orient));
- }
-}
-
-class BargaugeGridPanel extends Panel {
- private Dimension preferredSize = new Dimension(200, 250);
-
- public BargaugeGridPanel(Bargauge[] gauges, String orient) {
- Bargauge nextGauge;
- Color color = Color.gray;
-
- if("horizontal".equals(orient))
- setLayout(new GridLayout(gauges.length,0,5,5));
- else
- setLayout(new GridLayout(0,gauges.length,5,5));
-
- for(int i=0; i < gauges.length; ++i) {
- switch(i) {
- case 1: color = Color.darkGray; break;
- case 2: color = Color.blue; break;
- case 3: color = Color.magenta; break;
- case 4: color = Color.yellow; break;
- case 5: color = Color.green; break;
- case 6: color = Color.cyan; break;
- case 7: color = Color.orange; break;
- case 8: color = Color.pink; break;
- case 9: color = Color.red; break;
- case 10: color = Color.yellow; break;
- }
- nextGauge = new Bargauge(color);
- gauges[i] = nextGauge;
- add(nextGauge);
- }
- }
- public Dimension preferredSize() { return preferredSize; }
- public Dimension minimumSize () { return preferredSize; }
-}
-
-class BargaugeAnimator extends Thread {
- private Bargauge[] gauges;
- private boolean firstAnimation = true;
-
- public BargaugeAnimator(Bargauge[] gauges) {
- this.gauges = gauges;
- }
- public void run() {
- int count = gauges.length;
-
- while(true) {
- try { Thread.currentThread().sleep(500,0); }
- catch(InterruptedException e) { }
- for(int i=0; i < count; ++i) {
- gauges[i].setFillPercent(Math.random() * 100);
- gauges[i].fill();
-
- if(firstAnimation)
- System.out.println(gauges[i].toString());
- }
- firstAnimation = false;
- }
- }
-}
diff --git a/java/gjt/test/BleachImageFilterTest.java b/java/gjt/test/BleachImageFilterTest.java
deleted file mode 100644
index 08fda725a08..00000000000
--- a/java/gjt/test/BleachImageFilterTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import java.awt.image.FilteredImageSource;
-
-import gjt.Util;
-import gjt.image.BleachImageFilter;
-
-/**
- * Initially displays an unbleached image. Subsequent mouse
- * clicks in the canvas containing the image toggle between
- * a bleached version of the image and an unbleached version.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.image.BleachImageFilter
- */
-public class BleachImageFilterTest extends UnitTest {
- public String title() {
- return "BleachImageFilter Test " +
- "(Click below to Bleach/Unbleach Picture)";
- }
- public Panel centerPanel() {
- return new BleachImageFilterTestPanel(this);
- }
-}
-
-class BleachImageFilterTestPanel extends Panel {
- BleachImageFilterTestCanvas canvas;
-
- public BleachImageFilterTestPanel(Applet applet) {
- add(canvas = new BleachImageFilterTestCanvas(applet));
- }
- public boolean mouseDown(Event event, int x, int y) {
- canvas.toggleBleaching();
- canvas.repaint();
- return true;
- }
-}
-
-class BleachImageFilterTestCanvas extends Canvas {
- private Image im;
- private Image bleached;
- private boolean showingBleached = false;
-
- public BleachImageFilterTestCanvas(Applet applet) {
- int bp;
- String bleachPercent =
- applet.getParameter("bleachPercent");
-
- if(bleachPercent != null)
- bp = new Integer(bleachPercent).intValue();
- else
- bp = 50;
-
- im = applet.getImage(applet.getCodeBase(),
- "gifs/saint.gif");
- Util.waitForImage(this, im);
-
- FilteredImageSource source =
- new FilteredImageSource(im.getSource(),
- new BleachImageFilter(bp));
-
- bleached = createImage(source);
- Util.waitForImage(this, bleached);
-
- showImageSize();
- }
- public Dimension preferredSize() {
- return new Dimension(im.getWidth(this),
- im.getHeight(this));
- }
- public void paint(Graphics g) {
- if(showingBleached) g.drawImage(bleached,0,0,this);
- else g.drawImage(im, 0,0,this);
- }
- public void toggleBleaching() {
- showingBleached = showingBleached ? false : true;
- }
- private void showImageSize() {
- System.out.print ("Image width=" + im.getWidth(this));
- System.out.println(" height=" + im.getHeight(this));
- }
-}
diff --git a/java/gjt/test/BorderTest.java b/java/gjt/test/BorderTest.java
deleted file mode 100644
index 450b5ffc7ea..00000000000
--- a/java/gjt/test/BorderTest.java
+++ /dev/null
@@ -1,202 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import gjt.Border;
-import gjt.Box;
-import gjt.EtchedBorder;
-import gjt.ImageButton;
-import gjt.ThreeDBorder;
-
-/**
- * Creates 10 bordered Components:
- * <dl>
- * <dd> A Canvas (click in canvas to depress/raise the border).
- * <dd> A Label with an etched out border.
- * <dd> A TextField with an inset 3D border.
- * <dd> A CheckBox with a default border.
- * <dd> A List with a raised 3D border.
- * <dd> A Choice with an etched in border.
- * <dd> A Box with a raised 3D border.
- * <dd> An ImageButton with a thick, red border.
- * <dd> An AWT Button with a cyan border.
- * <dd> A TextArea with a blue default-width border.
- * </dl>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.Border
- * @see gjt.ThreeDBorder
- * @see gjt.EtchedBorder
- */
-public class BorderTest extends UnitTest {
- public String title() {
- return "Border Test";
- }
- public Panel centerPanel() {
- return new BorderTestPanel(this);
- }
-}
-
-class BorderTestPanel extends Panel {
- TextField tf = new TextField(
- "Inset TextField: border 5 pixels, gap 5 pixels ");
- ThreeDBorder threeDBorder;
- EtchedBorder etchedLabel;
- Border border;
-
- public BorderTestPanel(Applet applet) {
- setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
-
- add(new BorderedCanvas());
- add(etchedLabel =
- new EtchedBorder(new Label("Etched Label")));
- add(threeDBorder = new ThreeDBorder(tf, 5, 5));
- add(new Border(new Checkbox("Check Me Out")));
- add(makeThreeDBorderedList ());
- add(makeEtchedBorderedChoice ());
- add(makeThreeDBorderedCheckboxes());
- add(makeBorderedImageButton (applet));
- add(makeBorderedAWTButton ());
- add(makeBorderedTextArea ());
-
- threeDBorder.inset();
- etchedLabel.etchedOut();
- }
- private Border makeThreeDBorderedList() {
- List list = new List(10, true);
-
- list.addItem("One");
- list.addItem("Two");
- list.addItem("Three");
- list.addItem("Four");
- list.addItem("Five");
- list.addItem("Six");
- list.addItem("Seven");
- list.addItem("Eight");
- list.addItem("Nine");
- list.addItem("Ten");
- list.addItem("Eleven");
- list.addItem("Twelve");
- list.addItem("Thirteen");
- list.addItem("Fourteen");
- list.addItem("Fiveteen");
- list.addItem("Sixteen");
- list.addItem("Seventeen");
- list.addItem("Eightteen");
- list.addItem("Nineteen");
- list.addItem("Twenty");
-
- return new ThreeDBorder(list);
- }
- private Border makeEtchedBorderedChoice() {
- Choice choice = new Choice();
-
- choice.addItem("Toadies");
- choice.addItem("SilverChair");
- choice.addItem("Rug Burns");
- choice.addItem("Cracker");
- choice.addItem("Seven Mary Three");
- choice.addItem("Dishwalla");
- choice.addItem("Blues Traveler");
- choice.addItem("BottleRockets");
- choice.addItem("SpaceHog");
-
- return new EtchedBorder(choice);
- }
- private Border makeBorderedImageButton(Applet applet) {
- Image snail;
- Border border;
-
- snail = applet.getImage(applet.getCodeBase(),
- "gifs/snail.gif");
- border = new Border(new ImageButton(snail), 10);
- border.setLineColor(Color.red);
-
- return border;
- }
- private Border makeBorderedAWTButton() {
- Button button;
- Border cyanBorder, blackBorder;
-
- button = new Button("Button Inside Two Borders");
- cyanBorder = new Border(button, 7);
- cyanBorder.setLineColor(Color.cyan);
-
- blackBorder = new Border(cyanBorder);
-
- return blackBorder;
- }
- private Border makeThreeDBorderedCheckboxes() {
- Panel panel = new Panel();
- Box box = new Box(panel, "Options");
- CheckboxGroup group = new CheckboxGroup();
-
- panel.setLayout(new GridLayout(3,0));
- panel.add(new Checkbox("bordered", group, false));
- panel.add(new Checkbox("transparent", group, false));
- panel.add(new Checkbox("continuous", group, true));
-
- return new ThreeDBorder(box, 4);
- }
- private Border makeBorderedTextArea() {
- Border border;
-
- border = new Border(
- new TextArea("Blue Bordered TextArea", 5, 30));
- border.setLineColor(Color.blue);
-
- return border;
- }
-}
-
-class BorderedCanvas extends ThreeDBorder {
- public BorderedCanvas() {
- super(new TestCanvas());
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(isRaised()) paintInset ();
- else paintRaised();
- return true;
- }
-}
-
-class TestCanvas extends Canvas {
- private boolean centeredShowing = false;
- private String centered = new String ("Red Centered Text");
-
- public void paint(Graphics g) {
- String canvas = "Canvas";
- String click = "Click Me";
- Dimension size = size();
- FontMetrics fm = g.getFontMetrics();
-
- g.drawString(canvas, (size.width/2) -
- (fm.stringWidth(canvas)/2),
- fm.getHeight() - fm.getDescent());
-
- g.drawString(click, (size.width/2) -
- (fm.stringWidth(click)/2),
- size.height - fm.getHeight() +
- fm.getAscent());
-
- if(centeredShowing == true) {
- g.setColor(Color.red);
- g.drawString(centered,
- size.width/2-(fm.stringWidth(centered)/2),
- size.height/2 - (fm.getHeight()/2) +
- fm.getAscent());
- }
- }
- public Dimension preferredSize() {
- FontMetrics fm = getGraphics().getFontMetrics();
- return new Dimension(fm.stringWidth(centered)+10, 100);
- }
- public boolean mouseUp(Event event, int x, int y) {
- if(centeredShowing == false) centeredShowing = true;
- else centeredShowing = false;
- repaint();
- return true;
- }
-}
diff --git a/java/gjt/test/BoxTest.java b/java/gjt/test/BoxTest.java
deleted file mode 100644
index 24e3de9213e..00000000000
--- a/java/gjt/test/BoxTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import gjt.Box;
-import gjt.ExclusiveImageButtonPanel;
-import gjt.Orientation;
-
-/**
- * Three Boxes, each of which surrounds either: ImageButtons,
- * Labels or Checkboxes. The Box surrounding the ImageButtons
- * is etched out, while the other two Boxes are etched in.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ImageButton
- * @see gjt.Box
- */
-public class BoxTest extends UnitTest {
- public String title() {
- return "Box Test";
- }
- public Panel centerPanel() {
- return new BoxTestPanel(this);
- }
-}
-
-class BoxTestPanel extends Panel {
- private Applet applet;
- private Box iconbox, labelbox, checkboxbox;
- private Panel panelInLabelbox = new Panel();
- private Panel panelInCheckboxbox = new Panel();
- private ExclusiveImageButtonPanel panelInIconbox;
-
- public BoxTestPanel(Applet applet) {
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
-
- this.applet = applet;
- panelInIconbox = new ExclusiveImageButtonPanel(
- Orientation.HORIZONTAL);
-
- populateIconPanel ();
- populateLabelPanel ();
- populateCheckboxPanel();
-
- iconbox = new Box(panelInIconbox,
- "Meaningless Images");
- labelbox = new Box(panelInLabelbox, "Labels");
- checkboxbox = new Box(panelInCheckboxbox, "Fruits");
- iconbox.etchedOut();
-
- setLayout(gbl);
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.weighty = 0.50;
- gbl.setConstraints(iconbox, gbc);
- add(iconbox);
- gbl.setConstraints(labelbox, gbc);
- add(labelbox);
-
- gbc.anchor = GridBagConstraints.SOUTH;
- gbc.weighty = 0;
- gbl.setConstraints(checkboxbox, gbc);
- add(checkboxbox);
- }
- private void populateIconPanel() {
- Image ballot, film, ticket;
-
- ballot = applet.getImage(applet.getCodeBase(),
- "gifs/ballot_box.gif");
- ticket = applet.getImage(applet.getCodeBase(),
- "gifs/movie_ticket.gif");
- film = applet.getImage(applet.getCodeBase(),
- "gifs/filmstrip.gif");
-
- panelInIconbox.add(ballot);
- panelInIconbox.add(ticket);
- panelInIconbox.add(film);
- }
- private void populateLabelPanel() {
- panelInLabelbox.add(new Label("Label One"));
- panelInLabelbox.add(new Label("Label Two"));
- panelInLabelbox.add(new Label("Label Three"));
- panelInLabelbox.add(new Label("Label Four"));
- panelInLabelbox.add(new Label("Label Five"));
- }
- private void populateCheckboxPanel() {
- CheckboxGroup group = new CheckboxGroup();
-
- panelInCheckboxbox.setLayout(new GridLayout(3,0));
- panelInCheckboxbox.add(new Checkbox("apples",
- group, false));
- panelInCheckboxbox.add(new Checkbox("oranges",
- group, false));
- panelInCheckboxbox.add(new Checkbox("pears",
- group, true));
- }
-}
diff --git a/java/gjt/test/BumpAnimationTest.java b/java/gjt/test/BumpAnimationTest.java
deleted file mode 100644
index 81b6fb5ce8e..00000000000
--- a/java/gjt/test/BumpAnimationTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-package gjt.test;
-
-import java.net.URL;
-import java.applet.Applet;
-import java.awt.*;
-
-import gjt.Util;
-import gjt.Orientation;
-import gjt.animation.*;
-
-/**
- * A simple animation playfield with one sprite that bounces
- * off the boundaries of the playfield.<p>
- *
- * When the sprite bounces off the left wall, it plays a
- * bump sequence once; when it bounces off the right wall
- * it plays the bump sequence twice.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.animation.Playfield
- * @see gjt.animation.Sprite
- */
-public class BumpAnimationTest extends UnitTest {
- public String title() {
- return "Bump Animation - Mouse Down Starts/Stops";
- }
- public Panel centerPanel() {
- return new BumpAnimationTestPanel(this);
- }
-}
-
-class BumpAnimationTestPanel extends Panel {
- public BumpAnimationTestPanel(Applet applet) {
- setLayout(new BorderLayout());
- add("Center", new BumpPlayfield(applet));
- }
-}
-
-class BumpPlayfield extends Playfield {
- private Applet applet;
- private URL cb;
- private Sprite javaDrinker;
- private Sequence spinSequence, bumpSequence;
-
- public BumpPlayfield(Applet applet) {
- this.applet = applet;
- cb = applet.getCodeBase();
- makeSequencesAndSprites();
- }
- public void paintBackground(Graphics g) {
- Image bg = applet.getImage(cb, "gifs/background.gif");
- Util.wallPaper(this, g, bg);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(running() == true) stop ();
- else start();
- return true;
- }
- public void spriteCollision(Sprite sprite, Sprite sprite2) {
- // Nothing to do: only 1 sprite!
- }
- public void edgeCollision(Sprite sprite,
- Orientation orientation) {
- if(orientation == Orientation.RIGHT ||
- orientation == Orientation.LEFT) {
- if(sprite.getSequence() != bumpSequence) {
- sprite.reverseX();
-
- if(orientation == Orientation.RIGHT)
- sprite.play(bumpSequence, 1);
- else
- sprite.play(bumpSequence, 2);
- }
- }
- else
- sprite.reverseY();
- }
- private void makeSequencesAndSprites() {
- String file;
- Point startLoc = new Point(10, 10);
- Image[] spinImages = new Image[19];
- Image[] bumpImages = new Image[6];
-
- for(int i=0; i < spinImages.length; ++i) {
- file = "gifs/spin";
-
- if(i < 10) file += "0" + i + ".gif";
- else file += i + ".gif";
-
- spinImages[i] = applet.getImage(cb, file);
- }
- for(int i=0; i < bumpImages.length; ++i) {
- file = "gifs/bump0" + i + ".gif";
- bumpImages[i] = applet.getImage(cb, file);
- }
- spinSequence = new Sequence(this, spinImages);
- bumpSequence = new Sequence(this, bumpImages);
- javaDrinker = new Sprite(this, spinSequence, startLoc);
-
- spinSequence.setAdvanceInterval(100);
- bumpSequence.setAdvanceInterval(200);
-
- javaDrinker.setMoveVector(new Point(2,2));
- addSprite(javaDrinker);
- }
-}
diff --git a/java/gjt/test/ChoiceCardPanelTest.java b/java/gjt/test/ChoiceCardPanelTest.java
deleted file mode 100644
index 4ec27ac8945..00000000000
--- a/java/gjt/test/ChoiceCardPanelTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import gjt.ChoiceCardPanel;
-
-/**
- * A ChoiceCardPanel that controls three Panels.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ChoiceCardPanel
- */
-public class ChoiceCardPanelTest extends UnitTest {
- public String title() { return "Choice CardPanel Test"; }
- public Panel centerPanel() {
- return new ChoiceCardPanelTestPanel(this);
- }
-}
-
-class ChoiceCardPanelTestPanel extends Panel {
- private ChoiceCardPanel mvp = new ChoiceCardPanel();
-
- public ChoiceCardPanelTestPanel(Applet applet) {
- setLayout(new BorderLayout());
-
- mvp.addChoice("Attributes",
- new AttributesPanel(applet));
- mvp.addChoice("Connections", new ConnectionsPanel());
- mvp.addChoice("Oracle", new OccupationOracle());
- add("Center", mvp);
- }
-}
diff --git a/java/gjt/test/ColumnLayoutTest.java b/java/gjt/test/ColumnLayoutTest.java
deleted file mode 100644
index fcef2151a25..00000000000
--- a/java/gjt/test/ColumnLayoutTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.net.URL;
-import java.awt.*;
-import gjt.*;
-
-/**
- * Lays out 3 image buttons, and provides controls for setting
- * orientations and gaps on the fly.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ImageButton
- * @see gjt.Box
- */
-public class ColumnLayoutTest extends UnitTest {
- public String title() {
- return "ColumnLayout Test";
- }
- public Panel centerPanel() {
- ColumnButtonPanel buttonPanel;
- Panel panel = new Panel();
-
- buttonPanel = new ColumnButtonPanel(this);
-
- panel.setLayout(new BorderLayout());
- panel.add("Center", buttonPanel);
- panel.add("North", new Box(new ColumnPicker(buttonPanel),
- "Column Layout Settings"));
- return panel;
- }
-}
-
-class ColumnButtonPanel extends Panel implements DialogClient {
- private ImageButton one, two, three;
- private Panel panel = new Panel();
- private TenPixelBorder border = new TenPixelBorder(panel);
-
- public ColumnButtonPanel(Applet applet) {
- URL cb = applet.getCodeBase();
-
- one = new ImageButton(applet.getImage(cb,
- "gifs/one.gif"));
- two = new ImageButton(applet.getImage(cb,
- "gifs/two.gif"));
- three = new ImageButton(applet.getImage(cb,
- "gifs/three.gif"));
-
- panel.setLayout(new ColumnLayout(0));
- panel.add(one);
- panel.add(two);
- panel.add(three);
-
- setLayout(new BorderLayout());
- add ("Center", border);
- }
- public void updateOrientations(Orientation horient,
- Orientation vorient,
- int gap) {
- panel.setLayout(new ColumnLayout(horient, vorient, gap));
- border.validate();
- }
- public void dialogDismissed(Dialog d) { }
-}
-
-class ColumnPicker extends Panel {
- private Label horientLabel = new Label("Horizontal:");
- private Label vorientLabel = new Label("Vertical:");
- private Label gapLabel = new Label("Gap:");
-
- private Choice hchoice = new Choice();
- private Choice vchoice = new Choice();
- private Choice gapChoice = new Choice();
-
- private ColumnButtonPanel buttonPanel;
-
- public ColumnPicker(ColumnButtonPanel buttonPanel) {
- Panel orientations = new Panel();
- Panel gap = new Panel();
-
- this.buttonPanel = buttonPanel;
- hchoice.addItem("left");
- hchoice.addItem("center");
- hchoice.addItem("right");
- hchoice.select(1);
-
- vchoice.addItem("top");
- vchoice.addItem("center");
- vchoice.addItem("bottom");
- vchoice.select(1);
-
- gapChoice.addItem("0");
- gapChoice.addItem("5");
- gapChoice.addItem("10");
- gapChoice.addItem("15");
- gapChoice.addItem("20");
-
- orientations.add(horientLabel);
- orientations.add(hchoice);
- orientations.add(vorientLabel);
- orientations.add(vchoice);
-
- gap.add(gapLabel);
- gap.add(gapChoice);
-
- add(new Box(orientations, "Orientations"));
- add(new Box(gap, "Gap"));
- }
- public boolean action(Event event, Object what) {
- String horient, vorient;
- int gap;
-
- horient = hchoice.getSelectedItem();
- vorient = vchoice.getSelectedItem();
- gap =
- (new Integer(gapChoice.getSelectedItem())).intValue();
-
- buttonPanel.updateOrientations(
- Orientation.fromString(horient),
- Orientation.fromString(vorient), gap);
-
- return true;
- }
-}
diff --git a/java/gjt/test/ComponentScrollerTest.java b/java/gjt/test/ComponentScrollerTest.java
deleted file mode 100644
index 4f0e4a2ec70..00000000000
--- a/java/gjt/test/ComponentScrollerTest.java
+++ /dev/null
@@ -1,205 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import java.util.Vector;
-import java.applet.Applet;
-import java.net.URL;
-
-import gjt.Border;
-import gjt.ButtonPanel;
-import gjt.ColumnLayout;
-import gjt.ComponentScroller;
-import gjt.EtchedBorder;
-import gjt.ImageButton;
-import gjt.RowLayout;
-import gjt.Separator;
-import gjt.StickyImageButtonController;
-
-/**
- * A phony image store, where you can purchase images.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see Border
- * @see ButtonPanel
- * @see ImageButton
- * @see Separator
- * @see StickyImageButtonController
- * @see ComponentScroller
- */
-public class ComponentScrollerTest extends UnitTest {
- public String title() {
- return "ComponentScroller Test";
- }
- public Panel centerPanel() {
- return new ComponentScrollerTestPanel(this);
- }
-}
-
-class ComponentScrollerTestPanel extends Panel {
- private ComponentScroller scroller;
- private Panel purchasePanel;
- private ImageButtonRow nextRow;
- private String[][] imageNames = {
- { "gifs/ballot_box.gif", "gifs/filmstrip.gif",
- "gifs/fly.gif", "gifs/eagle.gif",
- "gifs/bullet_hole.gif" },
- { "gifs/mad_hacker.gif", "gifs/tricycle.gif",
- "gifs/light_bulb1.gif", "gifs/scissors.gif",
- "gifs/palette.gif" },
- { "gifs/frog.gif", "gifs/gear.gif",
- "gifs/wrench.gif", "gifs/www.gif",
- "gifs/Dining.gif" },
- { "gifs/ant.gif", "gifs/abomb.gif",
- "gifs/basketball.gif", "gifs/soccer.gif",
- "gifs/skelly.gif" },
- };
- public ComponentScrollerTestPanel(Applet applet) {
- URL base = applet.getCodeBase();
- Image nextImage;
- Border border, blackBorder;
-
- purchasePanel = new Panel();
- purchasePanel.setLayout(new ColumnLayout());
-
- for(int r=0; r < imageNames.length; ++r) {
- nextRow = new ImageButtonRow();
- nextRow.setLayout(new RowLayout());
-
- for(int c=0; c < imageNames[r].length; ++c) {
- nextImage = applet.getImage(base,
- imageNames[r][c]);
- nextRow.add(nextImage);
- }
- purchasePanel.add(nextRow);
- }
- purchasePanel.add(new ButtonPurchaseForm());
-
- scroller = new ComponentScroller();
- border = new Border(purchasePanel, 3, 2);
- blackBorder = new Border(border, 1, 0);
-
- border.setLineColor(Color.gray);
- blackBorder.setLineColor(Color.black);
- scroller.setComponent(blackBorder);
-
- setLayout(new BorderLayout());
- add("Center", scroller);
- }
-}
-
-class ButtonPurchaseForm extends Panel {
- TextField nameField = new TextField(25);
- TextField addressField = new TextField(25);
- TextField cityField = new TextField(15);
- TextField stateField = new TextField(2);
-
- Choice paymentChoice = new Choice();
-
- Button paymentButton = new Button("Purchase");
- Button cancelButton = new Button("Cancel");
-
- public ButtonPurchaseForm() {
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
-
- Separator sep = new Separator();
- Label title =
- new Label("Purchase A Fine Image Today");
- Label name = new Label("Name:");
- Label address = new Label("Address:");
- Label payment = new Label("Purchase Method:");
- Label phone = new Label("Phone:");
- Label city = new Label("City:");
- Label state = new Label("State:");
-
- setLayout(gbl);
-
- paymentChoice.addItem("Visa");
- paymentChoice.addItem("MasterCard");
- paymentChoice.addItem("COD");
-
- title.setFont(new Font("Times-Roman",
- Font.BOLD + Font.ITALIC,
- 16));
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbl.setConstraints(title, gbc);
- add(title);
-
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.insets = new Insets(0,0,10,0);
- gbl.setConstraints(sep, gbc);
- add(sep);
-
- gbc.anchor = GridBagConstraints.WEST;
- gbc.gridwidth = 1;
- gbc.insets = new Insets(0,0,0,10);
- gbl.setConstraints(name, gbc);
- add(name);
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbl.setConstraints(nameField, gbc);
- add(nameField);
-
- gbc.gridwidth = 1;
- gbl.setConstraints(address, gbc);
- add(address);
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbl.setConstraints(addressField, gbc);
- add(addressField);
-
- gbc.gridwidth = 1;
- gbl.setConstraints(city, gbc);
- add(city);
-
- gbl.setConstraints(cityField, gbc);
- add(cityField);
-
- gbl.setConstraints(state, gbc);
- add(state);
-
- gbl.setConstraints(stateField, gbc);
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbl.setConstraints(stateField, gbc);
- add(stateField);
-
- gbc.gridwidth = 1;
- gbl.setConstraints(payment, gbc);
- gbc.insets = new Insets(5,0,5,0);
- add(payment);
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.fill = GridBagConstraints.NONE;
- gbl.setConstraints(paymentChoice, gbc);
- add(paymentChoice);
-
- ButtonPanel buttonPanel = new ButtonPanel();
-
- buttonPanel.add(paymentButton);
- buttonPanel.add(cancelButton);
-
- gbc.anchor = GridBagConstraints.SOUTH;
- gbc.insets = new Insets(5,0,0,0);
- gbc.fill = GridBagConstraints.HORIZONTAL;
- gbc.gridwidth = 4;
- gbl.setConstraints(buttonPanel, gbc);
- add(buttonPanel);
- }
-}
-class ImageButtonRow extends Panel {
- public ImageButtonRow() {
- setLayout(new RowLayout());
- }
- public void add(Image image) {
- ImageButton button = new ImageButton(image);
- add(button);
- button.setController(
- new StickyImageButtonController(button));
- }
-}
diff --git a/java/gjt/test/ConnectionsPanel.java b/java/gjt/test/ConnectionsPanel.java
deleted file mode 100644
index 7790d0709b1..00000000000
--- a/java/gjt/test/ConnectionsPanel.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-
-class ConnectionsPanel extends Panel {
- public ConnectionsPanel() {
- add(new Label("Connections"));
- }
-}
diff --git a/java/gjt/test/DialogTest.java b/java/gjt/test/DialogTest.java
deleted file mode 100644
index f92069b7c49..00000000000
--- a/java/gjt/test/DialogTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import java.applet.Applet;
-
-import gjt.Util;
-import gjt.DialogClient;
-import gjt.MessageDialog;
-import gjt.ProgressDialog;
-import gjt.QuestionDialog;
-import gjt.YesNoDialog;
-
-/**
- * Tests 4 gjt custom dialogs:
- * <dl>
- * <dd> MessageDialog (a dialog which displays a message)
- * <dd> QuestionDialog (a dialog which asks a question)
- * <dd> YesNoDialog (a dialog with yes/no buttons)
- * <dd> ProgressDialog (a dialog which records progress of task)
- * </dl>
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.DialogClient
- * @see gjt.MessageDialog
- * @see gjt.ProgressDialog;
- * @see gjt.QuestionDialog;
- * @see gjt.YesNoDialog;
- */
-public class DialogTest extends UnitTest {
- public String title() {
- return "Graphic Java Toolkit Dialog Test";
- }
- public Panel centerPanel() {
- return new DialogLauncher();
- }
-}
-
-class DialogLauncher extends Panel implements DialogClient {
- private MessageDialog messageDialog;
- private QuestionDialog questionDialog;
- private YesNoDialog yesNoDialog;
- private ProgressDialog progressDialog;
-
- private Button messageDialogButton, questionDialogButton,
- yesNoDialogButton, progressDialogButton;
-
- public DialogLauncher() {
- setLayout(new GridLayout(0,1));
-
- add(messageDialogButton =
- new Button("Message Dialog"));
-
- add(questionDialogButton =
- new Button("Question Dialog"));
-
- add(yesNoDialogButton =
- new Button("YesNo Dialog"));
-
- add(progressDialogButton =
- new Button("Progress Dialog"));
- }
- public boolean action(Event event, Object what) {
- if(event.target == messageDialogButton) {
- messageDialog = MessageDialog.getMessageDialog(
- Util.getFrame(this), this,
- "Example Message Dialog",
- "This is an example of a message dialog.");
-
- messageDialog.show();
- }
- else if(event.target == questionDialogButton) {
- questionDialog =
- new QuestionDialog(Util.getFrame(this), this,
- "Example Question Dialog",
- "Name: ", "Gumby", 45);
- questionDialog.show();
- }
- else if(event.target == yesNoDialogButton) {
- yesNoDialog =
- YesNoDialog.getYesNoDialog(Util.getFrame(this),
- this,
- "Example YesNo Dialog",
- "Another cup of Java?");
- yesNoDialog.show();
- }
- else if(event.target == progressDialogButton) {
- progressDialog =
- ProgressDialog.getProgressDialog(
- Util.getFrame(this),
- "Example Progress Dialog",
- Color.blue);
-
- progressDialog.show();
-
- ProgressThread thread =
- new ProgressThread(progressDialog);
- thread.start();
- }
-
- return true;
- }
- public void dialogDismissed(Dialog d) {
- if(d == messageDialog) {
- System.out.println("MessageDialog Down");
- }
- if(d == questionDialog) {
- if(questionDialog.wasCancelled())
- System.out.println("CANCELLED");
- else
- System.out.println(
- "Name: " +
- questionDialog.getTextField().getText());
- }
- if(d == yesNoDialog) {
- if(yesNoDialog.answeredYes())
- System.out.println("YES");
- else
- System.out.println("NO");
- }
- }
-}
-
-class ProgressThread extends Thread {
- private ProgressDialog dialog;
- private double percentComplete = 0;
-
- public ProgressThread(ProgressDialog dialog) {
- this.dialog = dialog;
- }
- public void run() {
- while(percentComplete <= 100) {
- try { Thread.currentThread().sleep(500); }
- catch(InterruptedException e) { }
-
- dialog.setPercentComplete(percentComplete);
- percentComplete += 10;
- }
- }
-}
diff --git a/java/gjt/test/DrawnRectangleTest.java b/java/gjt/test/DrawnRectangleTest.java
deleted file mode 100644
index 19e3c195f7c..00000000000
--- a/java/gjt/test/DrawnRectangleTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import gjt.DrawnRectangle;
-import gjt.EtchedRectangle;
-import gjt.ThreeDRectangle;
-
-/**
- * 9 DrawnRectangles (some of which are EtchedRectangles
- * and ThreeDRectangles) with varying characteristics such
- * as line widths and colors.<p>
- *
- * A mouse down (any mouse button) in any of the rectangles
- * causes information about the rectangle to be printed to
- * System.out. (Output will go to Java Console in Netscape).<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.DrawnRectangle
- * @see gjt.EtchedRectangle
- * @see gjt.ThreeDRectangle
- */
-public class DrawnRectangleTest extends UnitTest {
- public String title() {
- return "Drawn Rectangle Test";
- }
- public Panel centerPanel() {
- return new DrawnRectangleTestPanel();
- }
-}
-
-class DrawnRectangleTestPanel extends Panel {
- private DrawnRectangle drawnFilledOrange,
- drawnFilledBlue, drawnBlue;
- private EtchedRectangle etchedOut,
- etchedIn, etchedFilledCyan;
- private ThreeDRectangle thinRaised,
- thinInset, thickRaised, thickInset;
-
- public DrawnRectangleTestPanel() {
- drawnFilledOrange =
- new DrawnRectangle (this, 10, 10, 100, 100);
- drawnFilledBlue =
- new DrawnRectangle (this, 135, 135, 100, 100);
- drawnBlue =
- new DrawnRectangle (this, 505, 135, 100, 100);
- etchedFilledCyan =
- new EtchedRectangle(this, 10, 135, 100, 100);
-
- etchedIn = new EtchedRectangle(this, 385, 10, 100, 100);
- etchedOut= new EtchedRectangle(this, 505, 10, 100, 100);
-
- thinRaised =
- new ThreeDRectangle(this, 135, 10, 100, 100);
- thinInset =
- new ThreeDRectangle(this, 260, 10, 100, 100);
- thickRaised =
- new ThreeDRectangle(this, 385, 135, 100, 100);
- thickInset =
- new ThreeDRectangle(this, 260, 135, 100, 100);
-
- drawnFilledOrange.setLineColor(Color.black);
-
- drawnFilledBlue.setLineColor(Color.yellow);
- drawnFilledBlue.setThickness(3);
-
- drawnBlue.setLineColor(Color.blue);
- drawnBlue.setThickness(5);
-
- thickRaised.setThickness(5);
- thickInset.setThickness (5);
- }
- public Dimension preferredSize() {
- return new Dimension(610, 270);
- }
- public void paint(Graphics g) {
- drawnFilledOrange.paint();
- drawnFilledOrange.fill (Color.orange);
-
- drawnFilledBlue.paint ();
- drawnFilledBlue.fill (Color.blue);
-
- drawnBlue.paint ();
-
- etchedIn.paintEtchedIn ();
- etchedOut.paintEtchedOut();
-
- etchedFilledCyan.paintEtchedIn();
- etchedFilledCyan.fill(Color.cyan);
-
- thinRaised.paintRaised ();
- thinInset.paintInset ();
-
- thickRaised.paintRaised ();
-
- thickInset.paintInset ();
- thickInset.fill (Color.red);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(drawnFilledOrange.inside(x,y))
- show(drawnFilledOrange);
-
- if(drawnFilledBlue.inside(x,y)) show(drawnFilledBlue);
- if(drawnBlue.inside(x,y)) show(drawnBlue);
- if(etchedIn.inside(x,y)) show(etchedIn);
- if(etchedOut.inside(x,y)) show(etchedOut);
- if(etchedFilledCyan.inside(x,y)) show(etchedFilledCyan);
- if(thinRaised.inside(x,y)) show(thinRaised);
- if(thickRaised.inside(x,y)) show(thickRaised);
- if(thinInset.inside(x,y)) show(thinInset);
- if(thickInset.inside(x,y)) show(thickInset);
-
- return true;
- }
- private void show(DrawnRectangle drawnRectangle) {
- System.out.println(drawnRectangle);
- }
-}
diff --git a/java/gjt/test/FontDialogTest.java b/java/gjt/test/FontDialogTest.java
deleted file mode 100644
index d0b535c27f9..00000000000
--- a/java/gjt/test/FontDialogTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-
-import gjt.FontDialog;
-import gjt.DialogClient;
-import gjt.Util;
-
-/**
- * Activating the button causes the FontDialog to be displayed.
- * Selecting a font from the FontDialog causes the button to
- * use the selected font.<p>
- *
- * This unit test overrides FontDialog to reset the labels
- * displayed in the buttons, and to reset the list of font
- * sizes displayed. See FontDialog for a discussion of the
- * overridden methods.<p>
- *
- *<em>Note: The FontDialog takes forever to come up in
- * Netscape.</em>
- *
- * @version 1.0, Apr 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.Util
- * @see gjt.FontDialog
- * @see gjt.DialogClient
- */
-class LotsOfSizesFontDialog extends FontDialog {
- private static String _defaultSizes[] =
- { "8", "10", "12", "14", "16",
- "18", "20", "22", "24",
- "26", "28", "30", "32", "34",
- "36", "38", "40", "42", "44",
- "46", "48", "50", "52", "54",
- "56", "58", "60", "62", "64",
- "66", "68", "70", "72", "74",
- "76", "78", "80", "82", "84",
- "86", "88", "90", "92", "94",
- "96", "98", "100" };
-
- public LotsOfSizesFontDialog(Frame frame,
- DialogClient client,
- Font font) {
- super(frame, client, font, true);
- }
- public String getPreviewButtonLabel() {
- return "Preview Selected Font";
- }
- public String getOkButtonLabel () {
- return "I'll Take It";
- }
- public String getCancelButtonLabel () {
- return "Nevermind";
- }
- public String[] getFontSizes () {
- return _defaultSizes;
- }
-}
-
-public class FontDialogTest extends UnitTest {
- public String title() { return "Font Dialog Test"; }
- public Panel centerPanel() {
- return new FontDialogTestPanel();
- }
-}
-
-class FontDialogTestPanel extends Panel
- implements DialogClient {
- private Button fontButton;
-
- public FontDialogTestPanel() {
- setLayout(new BorderLayout());
- add("Center", fontButton = new Button("Fonts ..."));
- }
- public boolean handleEvent(Event event) {
- if(event.id == Event.ACTION_EVENT) {
- LotsOfSizesFontDialog d;
- d = new LotsOfSizesFontDialog(Util.getFrame(this),
- this,
- fontButton.getFont());
- d.show();
- }
- return true;
- }
- public void dialogDismissed(Dialog d) {
- FontDialog fontDialog = (FontDialog)d;
- Font fontSelected = fontDialog.getFontSelected();
-
- if(fontSelected != null)
- fontButton.setFont(fontSelected);
-
- fontButton.requestFocus();
- }
-}
diff --git a/java/gjt/test/IconCardPanelTest.java b/java/gjt/test/IconCardPanelTest.java
deleted file mode 100644
index 33a65e1939c..00000000000
--- a/java/gjt/test/IconCardPanelTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import java.net.URL;
-import gjt.IconCardPanel;
-
-/**
- * A gjt.IconCardPanel that controls 3 Panels.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.IconCardPanel
- */
-public class IconCardPanelTest extends UnitTest {
- public String title() { return "IconCardPanel Test"; }
- public Panel centerPanel() {
- return new CardPanelTestPanel(this);
- }
-}
-class CardPanelTestPanel extends Panel {
- IconCardPanel mvp = new IconCardPanel();
-
- public CardPanelTestPanel(Applet applet) {
- URL cb = applet.getCodeBase();
-
- setLayout(new BorderLayout());
-
- Image folks = applet.getImage(cb,"gifs/cell_phone.gif");
- Image pencil = applet.getImage(cb,"gifs/clipboard.gif");
- Image library =
- applet.getImage(cb, "gifs/mad_hacker.gif");
-
- mvp.addImageButton(folks,
- "Attributes",
- new AttributesPanel(applet));
- mvp.addImageButton(pencil,
- "Connections",
- new ConnectionsPanel());
- mvp.addImageButton(library,
- "Oracle",
- new OccupationOracle());
-
- add("Center", mvp);
- }
-}
diff --git a/java/gjt/test/ImageButtonTest.java b/java/gjt/test/ImageButtonTest.java
deleted file mode 100644
index 52df6efeba0..00000000000
--- a/java/gjt/test/ImageButtonTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import gjt.Box;
-import gjt.ImageButton;
-import gjt.ImageButtonEvent;
-import gjt.SpringyImageButtonController;
-import gjt.StickyImageButtonController;
-
-/**
- * 2 ImageButtons, one springy and the other sticky, both
- * crabby.<p>
- *
- * Both ImageButtons come with an awt.Button that is used to
- * enable/disable the ImageButton it's associated with.<p>
- *
- * ImageButtonEvents, along with mouse enter and mouse exit
- * events for the two image buttons are printed out.<p>
- *
- * @version 1.0, Apr 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ImageButton
- * @see gjt.ImageButtonEvent
- * @see gjt.SpringyImageButtonController
- * @see gjt.StickyImageButtonController
- */
-public class ImageButtonTest extends UnitTest {
- public String title() {
- return "ImageButton Test";
- }
- public Panel centerPanel() {
- return new ImageButtonTestPanel(this);
- }
-}
-
-class ImageButtonTestPanel extends Panel {
- private ImageButton springyButton;
- private Button springyButtonEnabler;
- private ImageButton stickyButton;
- private Button stickyButtonEnabler;
-
- public ImageButtonTestPanel(Applet applet) {
- Image image;
- Box springyBox, stickyBox;
- GridBagLayout gbl = new GridBagLayout();
- GridBagConstraints gbc = new GridBagConstraints();
-
- image =
- applet.getImage(applet.getCodeBase(), "gifs/crab.gif");
-
- springyButton = new ImageButton(image);
- springyButtonEnabler = new Button ("Disable");
- stickyButton = new ImageButton(image);
- stickyButtonEnabler = new Button ("Disable");
-
- stickyButton.setController(
- new StickyImageButtonController(stickyButton));
-
- setLayout(gbl);
-
- gbc.anchor = GridBagConstraints.NORTH;
- springyBox = new Box(springyButton, "Springy");
- gbc.insets = new Insets(10,0,0,0);
- gbl.setConstraints(springyBox, gbc); add(springyBox);
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.insets = new Insets(45,10,0,0);
- gbl.setConstraints(springyButtonEnabler, gbc);
- add(springyButtonEnabler);
-
- gbc.anchor = GridBagConstraints.NORTH;
- gbc.gridwidth = 1;
- stickyBox = new Box(stickyButton, "Sticky");
- gbc.insets = new Insets(10,0,0,0);
- gbc.weighty = 1.0;
- gbl.setConstraints(stickyBox, gbc); add(stickyBox);
-
- gbc.gridwidth = GridBagConstraints.REMAINDER;
- gbc.insets = new Insets(45,10,0,0);
- gbl.setConstraints(stickyButtonEnabler, gbc);
- add(stickyButtonEnabler);
- }
- public boolean action(Event event, Object what) {
- Button button = (Button)event.target;
- String label = (String)what;
-
- if(button == stickyButtonEnabler) {
- if(label.equals("Disable")) stickyButton.disable();
- else stickyButton.enable();
- }
- else {
- if(label.equals("Disable")) springyButton.disable();
- else springyButton.enable();
- }
- if(label.equals("Disable")) button.setLabel("Enable");
- else button.setLabel("Disable");
-
- return true;
- }
- public boolean handleEvent(Event event) {
- boolean eventHandled = false;
-
- if(event instanceof ImageButtonEvent) {
- System.out.println("ImageButton " + event);
- eventHandled = true;
- }
- if(event.id == Event.MOUSE_ENTER) {
- if(event.target == stickyButton)
- System.out.println("Sticky Button Entered");
-
- else if(event.target == springyButton)
- System.out.println("Springy Button Entered");
-
- eventHandled = true;
- }
- if(event.id == Event.MOUSE_EXIT) {
- if(event.target == stickyButton)
- System.out.println("Sticky Button Exited");
-
- else if(event.target == springyButton)
- System.out.println("Springy Button Exited");
-
- eventHandled = true;
- }
- if(eventHandled) return true;
- else return super.handleEvent(event);
- }
-}
diff --git a/java/gjt/test/ImageDissolverTest.java b/java/gjt/test/ImageDissolverTest.java
deleted file mode 100644
index c157408d2af..00000000000
--- a/java/gjt/test/ImageDissolverTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import java.awt.image.FilteredImageSource;
-
-import gjt.Util;
-import gjt.image.ImageDissolver;
-
-/**
- * Initially displays an image. Subsequent mouse clicks in the
- * canvas containing the image cause the image to fade in or
- * fade out, depending upon it's current state.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.image.DissolveFilter
- * @see gjt.image.ImageDissolver
- */
-public class ImageDissolverTest extends UnitTest {
- public String title() {
- return "ImageDissolver Test " +
- "(Click Below to Fade Picture In/Out)";
- }
- public Panel centerPanel() {
- return new ImageDissolverTestPanel(this);
- }
-}
-
-class ImageDissolverTestPanel extends Panel {
- ImageDissolverTestCanvas canvas;
-
- public ImageDissolverTestPanel(Applet applet) {
- add(canvas = new ImageDissolverTestCanvas(applet));
- }
- public boolean mouseDown(Event event, int x, int y) {
- canvas.doFade();
- return true;
- }
-}
-
-class ImageDissolverTestCanvas extends Canvas {
- private boolean isFaded = false;
- private Image image;
- private ImageDissolver dissolver;
-
- public ImageDissolverTestCanvas(Applet applet) {
- image =
- applet.getImage(applet.getCodeBase(),"gifs/saint.gif");
-
- Util.waitForImage(this, image);
- dissolver = new ImageDissolver(this, image);
- }
- public void paint(Graphics g) {
- if( ! isFaded)
- g.drawImage(image, 0, 0, this);
- }
- public Dimension preferredSize() {
- return new Dimension(image.getWidth(this),
- image.getHeight(this));
- }
- public void doFade() {
- if(isFaded) dissolver.fadeIn (0,0);
- else dissolver.fadeOut(0,0);
-
- isFaded = isFaded ? false : true;
- }
-}
diff --git a/java/gjt/test/ImageScrollerTest.java b/java/gjt/test/ImageScrollerTest.java
deleted file mode 100644
index 0476682eb6d..00000000000
--- a/java/gjt/test/ImageScrollerTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import java.applet.Applet;
-import java.net.URL;
-
-import gjt.ImageScroller;
-import gjt.Util;
-
-/**
- * Four images are loaded; subsequent mouse clicks cycle
- * through the images, that are displayed in an ImageScroller.
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.Scroller
- * @see gjt.ImageScroller
- */
-public class ImageScrollerTest extends UnitTest {
- public String title() {
- return "ImageScroller Test";
- }
- public Panel centerPanel() {
- return new ImageScrollerTestPanel(this);
- }
-}
-
-class ImageScrollerTestPanel extends Panel {
- private Image[] images = new Image[4];
- private int imageIndex = 0;
- private ImageScroller scroller;
-
- public ImageScrollerTestPanel(Applet applet) {
- URL cb = applet.getCodeBase();
-
- images[0]=applet.getImage(cb,"gifs/ashleyAndRoy.gif");
- images[1]=applet.getImage(cb,"gifs/ashleyAndSabre.gif");
- images[2]=applet.getImage(cb,"gifs/anjinAndMariko.gif");
- images[3]=applet.getImage(cb,"gifs/ashleyAndAnjin.gif");
-
- setLayout(new BorderLayout());
- add("Center", scroller = new ImageScroller(images[0]));
- }
- public boolean mouseUp(Event event, int x, int y) {
- if(imageIndex == images.length-1) imageIndex = 0;
- else imageIndex++;
-
- Util.setCursor(Frame.WAIT_CURSOR, this);
- scroller.resetImage(images[imageIndex]);
- Util.setCursor(Frame.DEFAULT_CURSOR, this);
-
- return true;
- }
-}
diff --git a/java/gjt/test/LabelCanvasTest.java b/java/gjt/test/LabelCanvasTest.java
deleted file mode 100644
index cb4c0a857ae..00000000000
--- a/java/gjt/test/LabelCanvasTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package gjt.test;
-import java.applet.Applet;
-import java.awt.Event;
-import java.awt.Panel;
-import java.awt.Insets;
-import java.awt.Graphics;
-import gjt.LabelCanvas;
-import gjt.SelectionEvent;
-import gjt.Util;
-
-/**
- * Four LabelCanvases, each with different insets. The leftmost
- * LabelCanvas has standard insets (2 all around), while the
- * other three were constructed as follows:
- * <pre>
- * insetFive.setInsets (new Insets(5,5,5,5));
- * insetTen.setInsets (new Insets(10,10,10,10));
- * insetFifteen.setInsets(new Insets(15,15,15,15));
- * </pre><p>
- *
- * LabelCanvases generate SelectionEvents, that we watch
- * for in our handleEvent() method, and print out.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.LabelCanvas
- */
-public class LabelCanvasTest extends UnitTest {
- public String title() { return "LabelCanvas Test"; }
- public Panel centerPanel() {
- return new LabelCanvasTestPanel(this);
- }
-}
-
-class LabelCanvasTestPanel extends Panel {
- Applet applet;
- public LabelCanvasTestPanel(Applet applet) {
- this.applet = applet;
- LabelCanvas standard =
- new LabelCanvas("Standard Insets");
- LabelCanvas insetFive =
- new LabelCanvas("Insets = Five");
- LabelCanvas insetTen =
- new LabelCanvas("Insets = Ten");
- LabelCanvas insetFifteen =
- new LabelCanvas("Insets = Fifteen");
-
- insetFive.setInsets (new Insets(5,5,5,5));
- insetTen.setInsets (new Insets(10,10,10,10));
- insetFifteen.setInsets(new Insets(15,15,15,15));
-
- add(standard);
- add(insetFive);
- add(insetTen);
- add(insetFifteen);
- }
- public boolean handleEvent(Event event) {
- if(event instanceof SelectionEvent) {
- SelectionEvent sevent = (SelectionEvent)event;
- LabelCanvas canvas = (LabelCanvas)event.target;
-
- if(sevent.isSelected())
- System.out.println("LabelCanvas " +
- canvas.getLabel() +
- " selected");
- else
- System.out.println("LabelCanvas " +
- canvas.getLabel() +
- " deselected");
- return true;
- }
- return super.handleEvent(event);
- }
-}
diff --git a/java/gjt/test/MessageDialogTest.java b/java/gjt/test/MessageDialogTest.java
deleted file mode 100644
index 6efddd08cb4..00000000000
--- a/java/gjt/test/MessageDialogTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-
-package gjt.test;
-
-import java.awt.*;
-import java.applet.Applet;
-
-import gjt.MessageDialog;
-import gjt.DialogClient;
-import gjt.Util;
-
-/**
- * Simple unit test that exercises gjt.MessageDialog. This
- * unit test serves to illustrate the use of gjt.DialogClient.
- * For a unit test which covers all of the gjt dialogs,
- * see gjt.test.DialogTest.
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.DialogClient
- * @see gjt.MessageDialog
- */
-public class MessageDialogTest extends UnitTest {
- public String title() {
- return "Message Dialog Test";
- }
- public Panel centerPanel() {
- return new MessageDialogLauncher();
- }
-}
-
-class MessageDialogLauncher extends Panel
- implements DialogClient {
- private MessageDialog messageDialog;
-
- public MessageDialogLauncher() {
- add(new Button("Show Message Dialog"));
- }
- public boolean action(Event event, Object what) {
- messageDialog = MessageDialog.getMessageDialog(
- Util.getFrame(this), this,
- "Example Message Dialog",
- "This is an example of a message dialog.");
- messageDialog.show();
- return true;
- }
- public void dialogDismissed(Dialog d) {
- System.out.println("MessageDialog Down");
- }
-}
diff --git a/java/gjt/test/OccupationOracle.java b/java/gjt/test/OccupationOracle.java
deleted file mode 100644
index a34c2ad2064..00000000000
--- a/java/gjt/test/OccupationOracle.java
+++ /dev/null
@@ -1,334 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-
-// The OccupationOracle class makes a guess at a person's occupation
-// within an engineering organization based on a few "key" traits.
-// Invalid entries in numeric fields result in an "Unknown" occupation.
-// This applet uses the awt.GridBagLayout class to structure the
-// occupation form. The awt.GridBagLayout class allows fields to
-// be placed in rows and columns within a form. Each component
-// is given a "display area" based on the constraints in effect
-// when it is added to the layout.
-
-// Author: Jerry Jackson (thanks, sifu)
-
-public class OccupationOracle extends Panel {
-
- // Construct the form. Create each component of the form and
- // add it to the layout. Initialize the occupation to "Unknown".
-
- public OccupationOracle() {
-
- // Use the GridBagLayout layout to construct rows and
- // columns.
-
- GridBagLayout gridbag = new GridBagLayout();
-
- // Create a new set of constraints to use when adding
- // a component to the layout. The constraint values
- // in effect when a component is added to the layout
- // are cloned and stored in conjunction with the component
- // by the layout.
-
- GridBagConstraints constraints = new GridBagConstraints();
-
- // Set the font for the form.
-
- //setFont(new Font("TimesRoman", Font.BOLD, 12));
-
- // Associate the GridBagLayout object with the applet.
-
- setLayout(gridbag);
-
- // The "anchor" constraint determines how a component
- // is justified within its display area.
-
- constraints.anchor = GridBagConstraints.WEST;
-
- // Determines how much space should be given to this component.
- // if left at 0.0, all components clump up in the middle as the
- // padding is applied to the outside.
-
- constraints.weightx = 1.0;
-
- // Create a name label and text field.
-
- makeNameField();
-
- // Setting the "gridwidth" constraint to 1 will
- // cause the component to take up the minimum
- // horizontal space in its row.
-
- constraints.gridwidth = 1;
-
- // "addFormComponent" will associate the current constraints
- // with a component and add the component to the form.
-
- addFormComponent(gridbag, nameLabel, constraints);
-
- // Setting the "gridwidth" constraint to REMAINDER will
- // cause the component to fill up the remainder of its row.
- // i.e. it will be the last entry in the row.
-
- constraints.gridwidth = GridBagConstraints.REMAINDER;
-
- // The "fill" constraint tells what to do if the item is in
- // a area larger than it is. In this case we want to fill
- // any extra horizontal space.
-
- constraints.fill = GridBagConstraints.HORIZONTAL;
-
- addFormComponent(gridbag, nameField, constraints);
-
- // Create and add an age label and text field.
-
- makeAgeField();
-
- constraints.gridwidth = 1;
- constraints.fill = GridBagConstraints.NONE;
- constraints.weightx = 0.0;
- addFormComponent(gridbag, ageLabel, constraints);
- constraints.gridwidth = GridBagConstraints.REMAINDER;
- constraints.weightx = 1.0;
- addFormComponent(gridbag, ageField, constraints);
-
- // Create and add a world view label and a single checkbox
- // for a true/false value.
-
- makeWorldViewField();
-
- constraints.gridwidth = 1;
- constraints.weightx = 0.0;
- addFormComponent(gridbag, worldViewLabel, constraints);
- constraints.gridwidth = GridBagConstraints.REMAINDER;
- constraints.weightx = 1.0;
- addFormComponent(gridbag, worldViewField, constraints);
-
-
- // Create and add a coffee consumption label and text field.
-
- makeCoffeeField();
-
- constraints.gridwidth = 1;
- constraints.weightx = 0.0;
- addFormComponent(gridbag, coffeeLabel, constraints);
- constraints.gridwidth = GridBagConstraints.REMAINDER;
- constraints.weightx = 1.0;
- addFormComponent(gridbag, coffeeField, constraints);
-
-
- // Create and add a fashion sense label and a checkbox
- // group that has three mutually exclusive values.
-
- makeFashionField();
-
- constraints.gridwidth = GridBagConstraints.REMAINDER;
- constraints.weightx = 0.0;
- constraints.weighty = 0.0;
- addFormComponent(gridbag, fashionLabel, constraints);
-
- // The three checkboxes that represent fashion sense.
-
- addFormComponent(gridbag, low, constraints);
- addFormComponent(gridbag, medium, constraints);
- addFormComponent(gridbag, high, constraints);
-
- // The Occupation field is output only.
-
- makeOccupationField();
-
- constraints.gridwidth = 1;
- constraints.weightx = 0.0;
- constraints.weighty = 1.0;
- constraints.fill = GridBagConstraints.NONE;
- addFormComponent(gridbag, occupationLabel, constraints);
- constraints.fill = GridBagConstraints.HORIZONTAL;
- constraints.gridwidth = GridBagConstraints.REMAINDER;
- constraints.weightx = 1.0;
- addFormComponent(gridbag, occupationField, constraints);
-
- // Display the initial "Unknown" occupation.
-
- recalculateOccupation();
-
- resize(400, 250);
- }
-
- // The paint() method for this applet just calls the paintComponents()
- // method which is defined by the Container class. It causes all
- // the components visible within the Container to get painted.
-
- public void paint(Graphics g) {
- paintComponents(g);
- }
-
- // When any action occurs within the form we do the same thing:
- // recalculate the person's occupation.
-
- public boolean action(Event event, Object arg) {
- recalculateOccupation();
- return true;
- }
-
- // A helper function that associates constraints with a component
- // and adds it to the form.
-
- private void addFormComponent(GridBagLayout grid, Component comp,
- GridBagConstraints c) {
- grid.setConstraints(comp, c);
- add(comp);
- }
-
-
- // recalculateOccupation() fetches the values of each component
- // and computes an occupation based on some truly stupid heuristics.
-
- private void recalculateOccupation() {
-
- // If we don't have a name yet we might incorrectly categorize
- // the CEO!
-
- if (nameField.getText() == "") {
- occupationField.setText("Unknown");
- }
-
- // Fetch other important values that we'll use in our
- // calculations.
-
- int age;
- int coffeeConsumption;
- boolean binaryView = worldViewField.getState();
-
-
- // Try to fetch integer values for age and coffeeConsumption.
- // If the values in the fields can't be parsed as integers,
- // set the occupation to "Unknown".
-
- try {
- age = Integer.parseInt(ageField.getText());
- coffeeConsumption = Integer.parseInt(coffeeField.getText());
- } catch (Exception e) {
- occupationField.setText("Unknown");
- return;
- }
-
- // Check for the CEO.
-
- String name = nameField.getText();
-
- if (name.endsWith("II") ||
- name.endsWith("III") ||
- name.endsWith("IV")) {
-
- if (age < 35 || coffeeConsumption < 4) {
- occupationField.setText("Junior Executive");
- } else {
- occupationField.setText("CEO");
- }
-
- return;
- }
-
- // Fashion sense is a critical piece of information.
- // The getCurrent() method of CheckboxGroup returns whichever
- // Checkbox in the group is currently selected. Only one
- // can be selected at a time.
-
- Checkbox fashionValue = fashionGroup.getCurrent();
-
- if (fashionValue == low || fashionValue == medium) {
-
- // There are two kinds of people in the world: those who
- // divide people into two kinds and those who don't.
-
- if (binaryView && coffeeConsumption >= 4) {
- occupationField.setText("Engineer");
-
- } else if ((age > 40 && binaryView) ||
- (age < 40 && coffeeConsumption >= 4)) {
- occupationField.setText("Engineering Manager");
-
- } else {
- occupationField.setText("Product Manager");
- }
-
- } else {
-
- // High fashion sense. Not an engineer!
-
- if (binaryView || coffeeConsumption >= 4) {
- occupationField.setText("Vice President");
-
- } else {
- occupationField.setText("Product Marketing");
- }
- }
- }
-
- // Helper functions to create form components.
-
- private void makeNameField() {
- nameLabel = new Label("Name: ");
- nameField = new TextField(40);
- }
-
- private void makeAgeField() {
- ageLabel = new Label("Age: ");
- ageField = new TextField(3);
- }
-
- private void makeOccupationField() {
- occupationLabel = new Label("Occupation: ");
- occupationField = new TextField(40);
- }
-
- private void makeWorldViewField() {
- worldViewLabel = new Label("Binary World View: ");
- worldViewField = new Checkbox();
- }
-
- private void makeCoffeeField() {
- coffeeLabel = new Label("Coffee consumption: ");
- coffeeField = new TextField(3);
- }
-
- private void makeFashionField() {
- fashionLabel = new Label("Fashion sense:");
-
- fashionGroup = new CheckboxGroup();
- low = new Checkbox("Low ", fashionGroup, false);
- medium = new Checkbox("Medium", fashionGroup, true);
- high = new Checkbox("High ", fashionGroup, false);
- }
-
- // Text fields.
-
- private TextField nameField;
- private TextField ageField;
- private TextField coffeeField;
- private TextField occupationField;
-
- // Labels.
-
- private Label nameLabel;
- private Label ageLabel;
- private Label coffeeLabel;
- private Label fashionLabel;
- private Label worldViewLabel;
- private Label occupationLabel;
-
- // Checkboxes.
-
- private Checkbox worldViewField;
- private Checkbox low;
- private Checkbox medium;
- private Checkbox high;
-
- // The fashion sense checkbox group.
-
- private CheckboxGroup fashionGroup;
-}
-
-
diff --git a/java/gjt/test/RowLayoutTest.java b/java/gjt/test/RowLayoutTest.java
deleted file mode 100644
index eb7b419ca17..00000000000
--- a/java/gjt/test/RowLayoutTest.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.net.URL;
-import java.awt.*;
-import gjt.*;
-
-/**
- * Lays out 3 image buttons, and provides controls for setting
- * orientations and gaps on the fly.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ImageButton
- * @see gjt.Box
- */
-public class RowLayoutTest extends UnitTest {
- public String title() {
- return "RowLayout Test";
- }
- public Panel centerPanel() {
- RowButtonPanel buttonPanel = new RowButtonPanel(this);
- Panel panel = new Panel();
-
- panel.setLayout(new BorderLayout());
- panel.add("Center", buttonPanel);
- panel.add("North", new Box(new RowPicker(buttonPanel),
- "Row Layout Settings"));
- return panel;
- }
-}
-
-class RowButtonPanel extends Panel implements DialogClient {
- private ImageButton one, two, three;
- private Panel panel = new Panel();
- private TenPixelBorder border = new TenPixelBorder(panel);
-
- public RowButtonPanel(Applet applet) {
- URL cb = applet.getCodeBase();
-
- one = new ImageButton(applet.getImage(cb,
- "gifs/one.gif"));
- two = new ImageButton(applet.getImage(cb,
- "gifs/two.gif"));
- three = new ImageButton(applet.getImage(cb,
- "gifs/three.gif"));
-
- panel.setLayout(new RowLayout(0));
- panel.add(one);
- panel.add(two);
- panel.add(three);
-
- setLayout(new BorderLayout());
- add ("Center", border);
- }
- public void updateOrientations(Orientation horient,
- Orientation vorient,
- int gap) {
- panel.setLayout(new RowLayout(horient, vorient, gap));
- border.validate();
- }
- public void dialogDismissed(Dialog d) { }
-}
-
-class RowPicker extends Panel {
- private Label horientLabel = new Label("Horizontal:");
- private Label vorientLabel = new Label("Vertical:");
- private Label gapLabel = new Label("Gap:");
-
- private Choice hchoice = new Choice();
- private Choice vchoice = new Choice();
- private Choice gapChoice = new Choice();
-
- private RowButtonPanel buttonPanel;
-
- public RowPicker(RowButtonPanel buttonPanel) {
- Panel orientations = new Panel();
- Panel gap = new Panel();
-
- this.buttonPanel = buttonPanel;
- hchoice.addItem("left");
- hchoice.addItem("center");
- hchoice.addItem("right");
- hchoice.select(1);
-
- vchoice.addItem("top");
- vchoice.addItem("center");
- vchoice.addItem("bottom");
- vchoice.select(1);
-
- gapChoice.addItem("0");
- gapChoice.addItem("5");
- gapChoice.addItem("10");
- gapChoice.addItem("15");
- gapChoice.addItem("20");
-
- orientations.add(horientLabel);
- orientations.add(hchoice);
- orientations.add(vorientLabel);
- orientations.add(vchoice);
-
- gap.add(gapLabel);
- gap.add(gapChoice);
-
- add(new Box(orientations, "Orientations"));
- add(new Box(gap, "Gap"));
- }
- public boolean action(Event event, Object what) {
- String horient, vorient;
- int gap;
-
- horient = hchoice.getSelectedItem();
- vorient = vchoice.getSelectedItem();
- gap =
- (new Integer(gapChoice.getSelectedItem())).intValue();
-
- buttonPanel.updateOrientations(
- Orientation.fromString(horient),
- Orientation.fromString(vorient), gap);
-
- return true;
- }
-}
diff --git a/java/gjt/test/RubberbandTest.java b/java/gjt/test/RubberbandTest.java
deleted file mode 100644
index ae256fb2c3a..00000000000
--- a/java/gjt/test/RubberbandTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import gjt.DrawingPanel;
-import gjt.Separator;
-import gjt.RowLayout;
-import gjt.rubberband.*;
-
-/**
- * A simple drawing applet that demonstrates the utility of
- * the gjt.rubberband package.<p>
- *
- * Note that this unit test also serves as the unit test for
- * gjt.DrawingPanel.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.DrawingPanel
- * @see gjt.rubberband.Rubberband
- * @see gjt.rubberband.RubberbandLine
- * @see gjt.rubberband.RubberbandRectangle
- * @see gjt.rubberband.RubberbandEllipse
- * @see gjt.rubberband.RubberbandPanel
- */
-public class RubberbandTest extends UnitTest {
- public String title() {
- return "Rubberband Test";
- }
- public Panel centerPanel() {
- return new RubberbandTestPanel();
- }
-}
-
-class RubberbandTestPanel extends Panel {
- private DrawingPanel drawingPanel;
- private ChoicePanel choicePanel;
-
- public RubberbandTestPanel() {
- drawingPanel = new DrawingPanel();
- choicePanel = new ChoicePanel(drawingPanel);
-
- setLayout(new BorderLayout());
- add("North", choicePanel);
- add("Center", drawingPanel);
- }
-}
-
-class ChoicePanel extends Panel {
- private DrawingPanel drawingPanel;
- private Color color;
- private Checkbox fillCheckbox = new Checkbox();
-
- public ChoicePanel(DrawingPanel drawingPanel) {
- Panel choicePanel = new Panel();
- Choice geometricChoice = new Choice();
- Choice colorChoice = new Choice();
-
- this.drawingPanel = drawingPanel;
-
- geometricChoice.addItem("Lines");
- geometricChoice.addItem("Rectangles");
- geometricChoice.addItem("Ellipses");
-
- colorChoice.addItem("Black");
- colorChoice.addItem("Red");
- colorChoice.addItem("Blue");
- colorChoice.addItem("Gray");
- colorChoice.addItem("White");
-
- choicePanel.setLayout(new RowLayout(10));
- choicePanel.add(new Label("Shape:"));
- choicePanel.add(geometricChoice);
- choicePanel.add(new Label("Color:"));
- choicePanel.add(colorChoice);
- choicePanel.add(new Label("Fill:"));
- choicePanel.add(fillCheckbox);
-
- setLayout(new BorderLayout());
- add("Center", choicePanel);
- add("South", new Separator());
- }
- public boolean action(Event event, Object what) {
- if(event.target instanceof Checkbox) {
- drawingPanel.setFill(fillCheckbox.getState());
- }
- else if(event.target instanceof Choice) {
- if(((String)what).equals("Lines")) {
- fillCheckbox.setState(false);
- drawingPanel.drawLines();
- }
- else if(((String)what).equals("Rectangles")) {
- System.out.println("Rectangles");
- drawingPanel.drawRectangles();
- }
- else if(((String)what).equals("Ellipses"))
- drawingPanel.drawEllipses ();
- else if(((String)what).equals("Black"))
- drawingPanel.setColor(Color.black);
- else if(((String)what).equals("Red"))
- drawingPanel.setColor(Color.red);
- else if(((String)what).equals("Blue"))
- drawingPanel.setColor(Color.blue);
- else if(((String)what).equals("Gray"))
- drawingPanel.setColor(Color.gray);
- else if(((String)what).equals("White"))
- drawingPanel.setColor(Color.white);
- }
- return true;
- }
- public Insets insets() { return new Insets(5,0,5,0); }
-}
diff --git a/java/gjt/test/SeparatorTest.java b/java/gjt/test/SeparatorTest.java
deleted file mode 100644
index 3dd80173ea3..00000000000
--- a/java/gjt/test/SeparatorTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import gjt.Etching;
-import gjt.Separator;
-
-/**
- * Two Separators, one horizontal and the other vertical, the
- * former etched in, and the latter etched out are laid out with
- * an adorning Label for each.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.UnitTest
- * @see gjt.Separator
- */
-public class SeparatorTest extends UnitTest {
- public String title () { return "Separator Test"; }
- public Panel centerPanel() {
- return new SeparatorTestPanel();
- }
-}
-
-class SeparatorTestPanel extends Panel {
- public SeparatorTestPanel() {
- setLayout(new BorderLayout());
- add("North", new SeparatorTestNorthPanel ());
- add("Center", new SeparatorTestCenterPanel());
- }
-}
-
-class SeparatorTestNorthPanel extends Panel {
- Separator separator = new Separator();
-
- public SeparatorTestNorthPanel() {
- setLayout(new BorderLayout());
- add("North", new Label("North Of Etched-In Separator"));
- add("South", separator);
- }
-}
-
-class SeparatorTestCenterPanel extends Panel {
- Separator separator = new Separator(Etching.OUT);
-
- public SeparatorTestCenterPanel() {
- GridBagConstraints gbc = new GridBagConstraints();
- GridBagLayout gbl = new GridBagLayout();
- Label label = new Label("West Of Etched-Out Separator");
-
- setLayout(gbl);
- gbc.anchor = GridBagConstraints.WEST;
- gbc.insets = new Insets(0,0,0,10);
- gbl.setConstraints(label, gbc);
- add(label);
-
- gbc.insets = new Insets(0,0,0,0);
- gbc.weightx = 1.0;
- gbc.weighty = 1.0;
- gbc.fill = GridBagConstraints.VERTICAL;
- gbl.setConstraints(separator, gbc);
- add(separator);
-
- }
-}
diff --git a/java/gjt/test/SimpleAnimationTest.java b/java/gjt/test/SimpleAnimationTest.java
deleted file mode 100644
index faf0c7c611c..00000000000
--- a/java/gjt/test/SimpleAnimationTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package gjt.test;
-
-import java.net.URL;
-import java.applet.Applet;
-import java.awt.*;
-
-import gjt.Util;
-import gjt.Orientation;
-import gjt.animation.*;
-
-/**
- * An animation playfield containing a lone sprite that bounces
- * off the boundaries of the playfield.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.test.AnimationTest
- * @see gjt.animation.Playfield
- * @see gjt.animation.Sprite
- */
-public class SimpleAnimationTest extends UnitTest {
- public String title() {
- return "Simple Animation - Mouse Down Starts/Stops";
- }
- public Panel centerPanel() {
- return new SimpleAnimationTestPanel(this);
- }
-}
-
-class SimpleAnimationTestPanel extends Panel {
- public SimpleAnimationTestPanel(Applet applet) {
- setLayout(new BorderLayout());
- add("Center", new SimplePlayfield(applet));
- }
-}
-
-class SimplePlayfield extends Playfield {
- private Applet applet;
- private URL cb;
- private Sprite javaDrinker;
- private Sequence spinSequence;
-
- public SimplePlayfield(Applet applet) {
- this.applet = applet;
- cb = applet.getCodeBase();
- makeSequencesAndSprites();
- }
- public void paintBackground(Graphics g) {
- Image bg = applet.getImage(cb, "gifs/background.gif");
- Util.wallPaper(this, g, bg);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(running() == true) stop ();
- else start();
- return true;
- }
- public void spriteCollision(Sprite sprite, Sprite sprite2) {
- // Nothing to do: only 1 sprite!
- }
- public void edgeCollision(Sprite sprite,
- Orientation orientation) {
- if(orientation == Orientation.RIGHT ||
- orientation == Orientation.LEFT)
- sprite.reverseX();
- else
- sprite.reverseY();
- }
- private void makeSequencesAndSprites() {
- String file;
- Point startLoc = new Point(10, 10);
- Image[] spinImages = new Image[19];
-
- for(int i=0; i < spinImages.length; ++i) {
- file = "gifs/spin";
-
- if(i < 10) file += "0" + i + ".gif";
- else file += i + ".gif";
-
- spinImages[i] = applet.getImage(cb, file);
- }
- spinSequence = new Sequence(this, spinImages);
- javaDrinker = new Sprite(this, spinSequence, startLoc);
-
- javaDrinker.setMoveVector(new Point(2,2));
- addSprite(javaDrinker);
- }
-}
diff --git a/java/gjt/test/SimpleBargaugeTest.java b/java/gjt/test/SimpleBargaugeTest.java
deleted file mode 100644
index 57eb464f4b1..00000000000
--- a/java/gjt/test/SimpleBargaugeTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-import gjt.Bargauge;
-
-/**
- * A lone Barguage which animates. This unit test is meant to
- * illustrate that a Bargauge can cope with having its
- * orientation chanaged from horizontal to vertical or
- * vice-versa. This test is best run in appletviewer, so that
- * the window may be resized such that the Bargauge changes its
- * orientation.<p>
- *
- * <em>
- * Warning: An AWT bug causes this test to be a gluttenous
- * consumer of resources (especially under Win95). A mouse down
- * will halt the animation thread along with its consumption of
- * resources.<p>
- * </em>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.Bargauge
- */
-public class SimpleBargaugeTest extends UnitTest {
- public String title() {
- return "Simple Bargauge Test";
- }
- public Panel centerPanel() {
- return new SimpleBargaugeTestPanel();
- }
-}
-
-class SimpleBargaugeTestPanel extends Panel implements Runnable {
- private Bargauge gauge = new Bargauge(Color.blue);
- private boolean running = true;
- private Thread t;
-
- public SimpleBargaugeTestPanel() {
- setLayout(new BorderLayout());
- add("Center", gauge);
-
- t = new Thread(this);
- t.start();
- }
- public void run() {
- while(true) {
- try { Thread.currentThread().sleep(500,0); }
- catch(InterruptedException e) { }
-
- gauge.setFillPercent(Math.random() * 100);
- gauge.fill();
- }
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(running) { t.suspend(); running = false; }
- else { t.resume (); running = true; }
- return true;
- }
-}
diff --git a/java/gjt/test/StateButtonTest.java b/java/gjt/test/StateButtonTest.java
deleted file mode 100644
index 508aee1682e..00000000000
--- a/java/gjt/test/StateButtonTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package gjt.test;
-
-import java.applet.Applet;
-import java.awt.*;
-import java.net.URL;
-import gjt.StateButton;
-import gjt.ImageButtonEvent;
-
-/**
- * A StateButton which cycles through a fascinating series of
- * Images.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.StateButton
- */
-public class StateButtonTest extends UnitTest {
- public String title () { return "StateButton Test"; }
- public Panel centerPanel() {
- return new StateButtonTestPanel(this);
- }
-}
-
-class StateButtonTestPanel extends Panel {
- private URL codeBase;
- private Image[] images;
- private StateButton button;
-
- public StateButtonTestPanel(Applet applet) {
- codeBase = applet.getCodeBase();
- images = new Image[3];
- images[0] = applet.getImage(codeBase, "gifs/fly.gif");
- images[1] = applet.getImage(codeBase, "gifs/frog.gif");
- images[2] = applet.getImage(codeBase, "gifs/eagle.gif");
- button = new StateButton(images);
-
- setLayout(new FlowLayout(FlowLayout.CENTER, 20, 20));
- add (button);
- }
-}
diff --git a/java/gjt/test/TenPixelBorder.java b/java/gjt/test/TenPixelBorder.java
deleted file mode 100644
index bab694d0fb1..00000000000
--- a/java/gjt/test/TenPixelBorder.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package gjt.test;
-
-import java.awt.*;
-
-public class TenPixelBorder extends Panel {
- public TenPixelBorder(Component borderMe) {
- setLayout(new BorderLayout());
- add("Center", borderMe);
- }
- public void paint(Graphics g) {
- Dimension mySize = size();
- Insets myInsets = insets();
-
- g.setColor(Color.gray);
-
- // Top Inset area
- g.fillRect(0,
- 0,
- mySize.width,
- myInsets.top);
-
- // Left Inset area
- g.fillRect(0,
- 0,
- myInsets.left,
- mySize.height);
-
- // Right Inset area
- g.fillRect(mySize.width - myInsets.right,
- 0,
- myInsets.right,
- mySize.height);
-
- // Bottom Inset area
- g.fillRect(0,
- mySize.height - myInsets.bottom,
- mySize.width,
- mySize.height);
- }
- public Insets insets() {
- return new Insets(10,10,10,10);
- }
-
-}
diff --git a/java/gjt/test/TitledPanel.java b/java/gjt/test/TitledPanel.java
deleted file mode 100644
index cb8d054e888..00000000000
--- a/java/gjt/test/TitledPanel.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package gjt.test;
-
-import java.awt.BorderLayout;
-import java.awt.Label;
-import java.awt.Panel;
-import gjt.Separator;
-
-/**
- * A Panel fitted with a BorderLayout that contains a Label
- * (title) in the North, and a Separator in the South.
- *
- * @version 1.0, Apr 2 1996
- * @author David Geary
- */
-
-public class TitledPanel extends Panel {
- public TitledPanel(String title) {
- setLayout(new BorderLayout());
- add("North", new Label(title, Label.CENTER));
- add("South", new Separator());
- }
-}
diff --git a/java/gjt/test/ToolbarTest.java b/java/gjt/test/ToolbarTest.java
deleted file mode 100644
index f739ce96236..00000000000
--- a/java/gjt/test/ToolbarTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package gjt.test;
-
-import java.net.URL;
-import java.awt.*;
-import java.applet.Applet;
-import gjt.ExclusiveImageButtonPanel;
-import gjt.ImageButton;
-import gjt.ImageButtonEvent;
-import gjt.Orientation;
-import gjt.Toolbar;
-import gjt.Separator;
-
-/**
- * A Toolbar to the north, and an ExclusiveImageButtonPanel on
- * the west give this little applet its own unique charm.
- * Owner is motivated.<p>
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see gjt.test.UnitTest
- * @see gjt.ExclusiveImageButtonPanel
- * @see gjt.ImageButton
- * @see gjt.Toolbar
- */
-public class ToolbarTest extends UnitTest {
- public String title() {
- return "Toolbar/ImageButtonPanel Test";
- }
- public Panel centerPanel() {
- return new ToolbarTestPanel(this);
- }
-}
-
-class ToolbarTestPanel extends Panel {
- ImageButton newButton, openButton, diskButton,
- printButton, cutButton, copyButton,
- pasteButton;
-
- public ToolbarTestPanel(Applet app) {
- setLayout(new BorderLayout());
- add("North", makeToolbar(app, app.getCodeBase()));
- add("West", makePalette(app, app.getCodeBase()));
- }
- public boolean handleEvent(Event event) {
- if(event instanceof ImageButtonEvent) {
- ImageButtonEvent ibevent = (ImageButtonEvent)event;
-
- if(ibevent.isActivated()) {
- if(event.target == newButton)
- System.out.println("New Button Activated");
- if(event.target == openButton)
- System.out.println("Open Button Activated");
- if(event.target == diskButton)
- System.out.println("Disk Button Activated");
- if(event.target == printButton)
- System.out.println("Print Button Activated");
- if(event.target == cutButton)
- System.out.println("Cut Button Activated");
- if(event.target == copyButton)
- System.out.println("Copy Button Activated");
- if(event.target == pasteButton)
- System.out.println("Paste Button Activated");
-
- return true;
- }
- }
-
- return super.handleEvent(event);
- }
- private Toolbar makeToolbar(Applet app, URL cb) {
- Toolbar tb = new Toolbar(10, 0);
-
- newButton = tb.add(app.getImage(cb, "gifs/new.gif"));
- openButton = tb.add(app.getImage(cb, "gifs/open.gif"));
- diskButton = tb.add(app.getImage(cb, "gifs/disk.gif"));
-
- tb.addSpacer(newButton.preferredSize().width);
-
- printButton = tb.add(app.getImage(cb, "gifs/print.gif"));
-
- tb.addSpacer(newButton.preferredSize().width);
-
- cutButton = tb.add(app.getImage(cb, "gifs/cut.gif"));
- copyButton = tb.add(app.getImage(cb, "gifs/copy.gif"));
- pasteButton = tb.add(app.getImage(cb, "gifs/paste.gif"));
-
- return tb;
- }
- private Panel makePalette(Applet app, URL cb) {
- ExclusiveImageButtonPanel iconPalette;
- Panel iconPalettePanel = new Panel();
-
- iconPalette = new ExclusiveImageButtonPanel(
- Orientation.VERTICAL,
- Orientation.CENTER,
- Orientation.TOP, 10);
-
- iconPalette.add(app.getImage(cb,"gifs/ballot_box.gif"));
- iconPalette.add(app.getImage(cb,"gifs/palette.gif"));
- iconPalette.add(app.getImage(cb,"gifs/light_bulb1.gif"));
- iconPalette.add(app.getImage(cb,"gifs/Dining.gif"));
- iconPalette.add(app.getImage(cb,"gifs/scissors.gif"));
- iconPalette.add(app.getImage(cb,"gifs/tricycle.gif"));
-
- iconPalettePanel = new Panel();
- iconPalettePanel.setLayout(new BorderLayout());
- iconPalettePanel.add ("Center", iconPalette);
- iconPalettePanel.add ("East", new Separator());
- return iconPalettePanel;
- }
-}
diff --git a/java/gjt/test/TwoDrinkersAnimationTest.java b/java/gjt/test/TwoDrinkersAnimationTest.java
deleted file mode 100644
index ae4041b9eb6..00000000000
--- a/java/gjt/test/TwoDrinkersAnimationTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package gjt.test;
-
-import java.net.URL;
-import java.applet.Applet;
-import java.awt.*;
-import java.awt.Panel;
-
-import gjt.Util;
-import gjt.Orientation;
-import gjt.animation.*;
-
-/**
- * An animation playfield containing two "java drinkers", that
- * both bounce off the sides of the playfield.<p>
- *
- * One of the java drinkers moves slow and spins fast, while
- * the other java drinker moves fast and spins slow. When
- * the two java drinkers collide, they both play a bump
- * sequence - at different speeds.<p>
- *
- * @version 1.0, Apr 1 1996
- * @author David Geary
- * @see gjt.test.AnimationTest
- * @see gjt.animation.Playfield
- * @see gjt.animation.Sprite
- */
-public class TwoDrinkersAnimationTest extends UnitTest {
- public String title() {
- return
- "TwoDrinkers Animation - Mouse Down Starts/Stops";
- }
- public Panel centerPanel() {
- return new TwoDrinkersAnimationTestPanel(this);
- }
-}
-
-class TwoDrinkersAnimationTestPanel extends Panel {
- public TwoDrinkersAnimationTestPanel(Applet applet) {
- setLayout(new BorderLayout());
- add("Center", new TwoDrinkersPlayfield(applet));
- }
-}
-
-class TwoDrinkersPlayfield extends Playfield {
- private Applet applet;
- private URL cb;
- private Sprite moveFastSpinSlow, moveSlowSpinFast;
- private Sequence fastSpinSequence,
- slowSpinSequence,
- fastBumpSequence,
- slowBumpSequence;
-
- public TwoDrinkersPlayfield(Applet applet) {
- this.applet = applet;
- cb = applet.getCodeBase();
- makeSequencesAndSprites();
- }
- public void paintBackground(Graphics g) {
- Image bg = applet.getImage(cb, "gifs/background.gif");
- Util.wallPaper(this, g, bg);
- }
- public boolean mouseDown(Event event, int x, int y) {
- if(running() == true) stop ();
- else start();
- return true;
- }
- public void spriteCollision(Sprite sprite, Sprite sprite2) {
- if(moveSlowSpinFast.getSequence() != fastBumpSequence) {
- sprite.reverse();
- sprite2.reverse();
-
- moveSlowSpinFast.play(fastBumpSequence, 3);
- moveFastSpinSlow.play(slowBumpSequence, 3);
- }
- }
- public void edgeCollision(Sprite sprite,
- Orientation orientation) {
- if(orientation == Orientation.RIGHT ||
- orientation == Orientation.LEFT)
- sprite.reverseX();
- else
- sprite.reverseY();
- }
- private void makeSequencesAndSprites() {
- String file;
- Image[] spinImages = new Image[19];
- Image[] bumpImages = new Image[6];
- Image[] volleyball = new Image[4];
-
- for(int i=0; i < spinImages.length; ++i) {
- file = "gifs/spin";
-
- if(i < 10) file += "0" + i + ".gif";
- else file += i + ".gif";
-
- spinImages[i] = applet.getImage(cb, file);
- }
- for(int i=0; i < bumpImages.length; ++i) {
- file = "gifs/bump0" + i + ".gif";
- bumpImages[i] = applet.getImage(cb, file);
- }
- fastSpinSequence = new Sequence(this, spinImages);
- slowSpinSequence = new Sequence(this, spinImages);
-
- fastBumpSequence = new Sequence(this, bumpImages);
- slowBumpSequence = new Sequence(this, bumpImages);
-
- moveFastSpinSlow =
- new Sprite(this,
- slowSpinSequence, new Point(25, 75));
-
- moveSlowSpinFast =
- new Sprite(this,
- fastSpinSequence, new Point(250,250));
-
- fastSpinSequence.setAdvanceInterval(50);
- slowSpinSequence.setAdvanceInterval(300);
-
- fastBumpSequence.setAdvanceInterval(25);
- slowBumpSequence.setAdvanceInterval(200);
-
- moveFastSpinSlow.setMoveVector(new Point(2,3));
- moveSlowSpinFast.setMoveVector(new Point(-1,-1));
-
- moveSlowSpinFast.setMoveInterval(100);
-
- addSprite(moveFastSpinSlow);
- addSprite(moveSlowSpinFast);
- }
-}
diff --git a/java/gjt/test/UnitTest.java b/java/gjt/test/UnitTest.java
deleted file mode 100644
index 1fa262d5629..00000000000
--- a/java/gjt/test/UnitTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package gjt.test;
-
-import java.awt.BorderLayout;
-import java.awt.Frame;
-import java.awt.Panel;
-import java.applet.Applet;
-import gjt.*;
-
-/**
- * An (abstract) Applet fitted with a BorderLayout that
- * contains a TitledPanel in the North, and a Panel created by
- * derived classes in the Center.<p>
- *
- * Since some Applets take awhile to load, UnitTest changes the
- * cursor to a wait cursor in init(), changing it back to the
- * default cursor in start(). Derived classes must be sure to
- * call super.init() if they override init(); likewise for
- * start().<p>
- *
- * Subclasses must implement:
- * <dl>
- * <dd>String title()
- * <dd>Panel centerPanel()
- * </dl>
- * Subclasses should populate the Panel returned from
- * centerPanel() with whatever makes sense for their unit test.
- *
- * @version 1.0, April 25, 1996
- * @author David Geary
- * @see TitledPanel
- */
-abstract public class UnitTest extends Applet {
- abstract public String title();
- abstract public Panel centerPanel();
-
- public void init() {
- Util.getFrame(this).setCursor(Frame.WAIT_CURSOR);
- Panel titledPanel = new TitledPanel(title());
- setLayout(new BorderLayout());
- add("North", titledPanel);
- add("Center", centerPanel());
- }
- public void start() {
- Util.getFrame(this).setCursor(Frame.DEFAULT_CURSOR);
- }
-}
diff --git a/java/java-ace.gif b/java/java-ace.gif
deleted file mode 100644
index c3d89df46c0..00000000000
--- a/java/java-ace.gif
+++ /dev/null
Binary files differ
diff --git a/java/netsvcs/Logger/DefaultLMR.java b/java/netsvcs/Logger/DefaultLMR.java
deleted file mode 100644
index 19e319de015..00000000000
--- a/java/netsvcs/Logger/DefaultLMR.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Logger
- *
- * = FILENAME
- * DefaultLMR.java
- *
- *
- *@author Everett Anderson
- *
- *************************************************/
-package netsvcs.Logger;
-
-import java.io.*;
-
-/**
- *
- * <p><h2>DESCRIPTION</h2>
- *
- * <blockquote>
- * The LogMessageReceiver removes the code that handles a log message from
- * the logging service acceptor. The DefaultLMR simply calls the LogRecord's
- * print method.
- *
- * @see netsvcs.Logger.ServerLoggingAcceptor
- * @see netsvcs.Logger.LogRecord
- */
-class DefaultLMR implements LogMessageReceiver
-{
- public void logRecord (String hostname,
- LogRecord record)
- {
- record.print(hostname, true, System.err);
- }
-}
diff --git a/java/netsvcs/Logger/LogMessageReceiver.java b/java/netsvcs/Logger/LogMessageReceiver.java
deleted file mode 100644
index c001e06f2bd..00000000000
--- a/java/netsvcs/Logger/LogMessageReceiver.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Logger
- *
- * = FILENAME
- * LogMessageReceiver.java
- *
- *@author Everett Anderson
- *
- *************************************************/
-package netsvcs.Logger;
-
-import java.io.*;
-
-/**
- *
- * <p><h2>DESCRIPTION</h2>
- *
- * <blockquote>
- * The LogMessageReceiver removes the code that handles a log message from
- * the logging service acceptor. The DefaultLMR simply calls the LogRecord's
- * print method. Other implementations of this interface can be built and
- * given to the ServerLoggingAcceptor to change the result.
- *
- * @see netsvcs.Logger.ServerLoggingAcceptor
- * @see netsvcs.Logger.LogRecord
- */
-public interface LogMessageReceiver
-{
- public void logRecord (String hostname,
- LogRecord record);
-};
diff --git a/java/netsvcs/Logger/LogRecord.java b/java/netsvcs/Logger/LogRecord.java
deleted file mode 100644
index 0043c040f74..00000000000
--- a/java/netsvcs/Logger/LogRecord.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Logger
- *
- * = FILENAME
- * LogRecord.java
- *
- *@author Chris Cleeland, Everett Anderson
- *
- *************************************************/
-package netsvcs.Logger;
-
-import java.util.Date;
-import java.io.DataOutputStream;
-import java.io.DataInputStream;
-import java.io.PrintStream;
-import java.io.IOException;
-import JACE.OS.*;
-
-/**
- *
- * <p><h2>DESCRIPTION</h2>
- *
- * <blockquote>
- * Communicates logging information. Compatible with the C++ ACE
- * ACE_Log_Record class.
- *
- */
-public class LogRecord
-{
- final public int MAXLOGMSGLEN = 4 * 1024;
-
- private int type_;
- private int length_;
- private long msec_;
- private int pid_;
- private byte[] msgData_;
- private final static int numIntMembers = 5;
- private final static int sizeofIntInBytes = 4;
-
- /**
- * Create a default instance.
- */
- public LogRecord()
- {
- type(0);
- timeStamp((int)new Date().getTime());
- length(0);
- pid(0);
- }
-
- /**
- * Create a LogRecord. This is the designated initializer.
- * @param priority a numeric specification of the priority (ascending)
- * @param milliseconds time attached to the log entry in Unix <pre>time_t</pre> format
- * @param pid the process ID; not currently used
- */
- public LogRecord(int priority,
- long milliseconds,
- int pid)
- {
- type(priority);
- timeStamp(milliseconds);
- length(0);
- pid(pid);
- }
-
- /**
- * Conversion to string. Only includes the <pre>msgData_</pre> member.
- */
- public String toString()
- {
- return new String(msgData_);
- }
-
- /**
- * Place a textual representation of the record on a PrintStream.
- * @param hostname name of the host generating this record
- * @param verbose if <b>true</b>, print information in the form, (give example)
- * @param ps A PrintStream instance to which the output should go.
- * @see PrintStream,String
- */
- public void print(String hostname,
- boolean verbose,
- PrintStream ps)
- {
- String toprint;
- if (verbose)
- {
- Date now = new Date(this.timeStamp());
-
- /* 01234567890123456789012345 */
- /* Wed Oct 18 14:25:36 1989n0 */
- toprint = now.toString().substring(4) + "@"
- + hostname + "@" + pid_ + "@" + type_ + "@"
- + this.toString();
- }
- else
- {
- toprint = this.toString();
- }
- ps.println(toprint);
- }
-
- /**
- * Streaming methods
- */
- public void streamInFrom(DataInputStream dis) throws IOException
- {
- // Order here must match layout order in the C++ class.
- // This, of course, is VERY fragile, and ought not be used as
- // a model for anything except how NOT to do anything.
- length(dis.readInt());
- type(dis.readInt());
- this.timeStamp((long)dis.readInt() * 1000);
-
- // Skip smaller time resolution info since we're lucky if Java's
- // timer can handle more than millisecond precision, anyway
- dis.skipBytes(4);
-
- pid(dis.readInt());
-
- // Does readFully() allocate space for the buffer? Either
- // way, we won't have memory leaks :-)
- int dataLength = (int) (length_ - numIntMembers * sizeofIntInBytes);
-
- msgData_ = new byte[dataLength];
- dis.readFully(msgData_, 0, dataLength);
- }
-
- public void streamOutTo(DataOutputStream dos) throws IOException
- {
- dos.writeInt(length());
- dos.writeInt(type());
- dos.writeInt((int)(this.msec_ / 1000));
- dos.writeInt(0);
- dos.writeInt(pid());
-
- dos.write(msgData_);
- }
-
- /**
- * Accessor methods
- */
- public int type() { return type_; }
- public void type(int t) { type_ = t; }
-
- public int length() { return length_; }
- public void length(int l) { length_ = l; }
- private void setLen(int msgLen)
- { length(msgLen + numIntMembers * sizeofIntInBytes); }
-
- public long timeStamp() { return this.msec_; }
- public void timeStamp(long msec){ this.msec_ = msec; }
-
- public int pid() { return pid_; }
- public void pid(int p) { pid_ = p; }
-
- public byte[] msgData() { return msgData_; }
- public void msgData(byte[] m)
- {
- int size = m.length;
-
- if (size > MAXLOGMSGLEN)
- size = MAXLOGMSGLEN;
-
- this.msgData_ = new byte[size];
-
- System.arraycopy(m, 0, msgData_, 0, size);
-
- setLen(size);
- }
-
- public void msgData(String m)
- {
- byte temp[] = m.getBytes();
- if (temp.length > MAXLOGMSGLEN) {
- this.msgData_ = new byte[MAXLOGMSGLEN];
-
- System.arraycopy(temp, 0, msgData_, 0, MAXLOGMSGLEN);
- } else
- this.msgData_ = temp;
-
- setLen(msgData_.length);
- }
-};
-
diff --git a/java/netsvcs/Logger/Makefile b/java/netsvcs/Logger/Makefile
deleted file mode 100644
index a15f673eba0..00000000000
--- a/java/netsvcs/Logger/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# $Id$
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = $(ACE_ROOT)/java
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-files = LogMessageReceiver.java \
- DefaultLMR.java \
- LogRecord.java \
- ServerLoggingAcceptor.java \
- ServerLoggingHandler.java
-
-packages = netsvcs \
- netsvcs.Logger
-
-realclean:
- /bin/rm -rf ${JACE_WRAPPER}/classes/netsvcs/Logger
-
diff --git a/java/netsvcs/Logger/ServerLoggingAcceptor.java b/java/netsvcs/Logger/ServerLoggingAcceptor.java
deleted file mode 100644
index d5d4ae5220d..00000000000
--- a/java/netsvcs/Logger/ServerLoggingAcceptor.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Logger
- *
- * = FILENAME
- * ServerLoggingAcceptor.java
- *
- *@author Chris Cleeland, Everett Anderson
- *
- *************************************************/
-package netsvcs.Logger;
-
-import JACE.SOCK_SAP.*;
-import JACE.Connection.*;
-import JACE.OS.*;
-import java.io.*;
-import java.net.*;
-import JACE.Misc.*;
-
-/**
- *
- * <p><h2>DESCRIPTION</h2>
- *
- * <blockquote>
- * Acceptor: Listens on a specified port and launches ServerLoggingHandlers
- * in response to requests. A LogMessageReceiver can be specified on the
- * command line to change the way the logging service processes messages.
- *
- * @see netsvcs.Logger.ServerLoggingHandler, netsvcs.Logger.LogMessageReceiver
- */
-public class ServerLoggingAcceptor extends Acceptor implements Runnable
-{
- /** Main function to bootstrap the process
- *
- * Command line arguments:
- *
- * -p <port> Select a port for listening for requests
- * -r <class name> Specify a LogMessageReceiver (make sure it's a full class name)
- *
- */
- public static void main (String [] args)
- {
- ServerLoggingAcceptor sla = new ServerLoggingAcceptor();
-
- sla.init(args);
- }
-
- /**
- * Receives the command line and launches its own thread
- */
- public int init (String [] args)
- {
- this.parseArgs(args);
-
- // If the user didn't specify a LogMessageReceiver, use the default
- // (which just calls a print method on LogMessage)
- if (this.receiver_ == null)
- this.receiver_ = new DefaultLMR();
-
- new Thread (this).start();
- return 0;
- }
-
- /**
- * Specify what LogMessageReceiver to use
- */
- public void setLMR(LogMessageReceiver receiver)
- {
- this.receiver_ = receiver;
- }
-
- /**
- * Accessor for the LogMessageReceiver
- */
- public LogMessageReceiver getLMR ()
- {
- return this.receiver_;
- }
-
- /**
- * Create a new ServerLoggingHandler
- */
- protected SvcHandler makeSvcHandler ()
- throws InstantiationException, IllegalAccessException
- {
- return new netsvcs.Logger.ServerLoggingHandler (this.receiver_);
- }
-
- /**
- * Run forever accepting new connections
- */
- public void run ()
- {
- try {
-
- this.open (this.port_);
- while (true)
- this.accept();
-
- } catch (SocketException e)
- {
- ACE.ERROR ("Socket Exception: " + e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
-
- ACE.ERROR("ServerLoggingAcceptor has exited");
- }
-
- /**
- * Process the command line
- */
- protected void parseArgs (String args[])
- {
- String s;
- GetOpt opt = new GetOpt (args, "p:r:");
- for (int c; (c = opt.next ()) != -1; )
- {
- switch (c)
- {
- case 'p':
- s = opt.optarg ();
- this.port_ = (new Integer (s)).intValue ();
- break;
- case 'r':
- // Load the LMR with the given name
- s = new String(opt.optarg ());
- Class LMRfactory;
- try {
- LMRfactory = Class.forName(s);
-
- receiver_ = (LogMessageReceiver)LMRfactory.newInstance();
-
- } catch (ClassNotFoundException e) {
- ACE.ERROR("Unable to find LMR factory: " + e);
- } catch (InstantiationException e) {
- ACE.ERROR("Creating LMR: " + e);
- } catch (IllegalAccessException e) {
- ACE.ERROR("Creating LMR: " + e);
- }
- // Any of the above exceptions will result in just using the
- // default LMR
- break;
- default:
- ACE.ERROR ("Unknown argument: " + c);
- ACE.ERROR ("Valid args: -p <port> -r <LogMessageReceiver name>");
- break;
- }
- }
- }
-
- private int port_ = ACE.DEFAULT_SERVER_PORT;
- private LogMessageReceiver receiver_ = null;
-};
-
-
-
-
-
-
diff --git a/java/netsvcs/Logger/ServerLoggingHandler.java b/java/netsvcs/Logger/ServerLoggingHandler.java
deleted file mode 100644
index 40f1aee8440..00000000000
--- a/java/netsvcs/Logger/ServerLoggingHandler.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Logger
- *
- * = FILENAME
- * ServerLoggingHandler.java
- *
- *@author Chris Cleeland, Everett Anderson
- *
- *************************************************/
-package netsvcs.Logger;
-
-import JACE.SOCK_SAP.*;
-import JACE.Connection.*;
-import JACE.OS.*;
-import java.util.*;
-import java.io.*;
-
-/**
- *
- * <p><h2>DESCRIPTION</h2>
- *
- * <blockquote>
- * Created by ServerLoggingAcceptor every time a client connects. This reads
- * a logging statement passes it to the LogMessageReceiver for processing.
- * </blockquote>
- *
- * @see netsvcs.Logger.ServerLoggingAcceptor
- */
-public class ServerLoggingHandler extends SvcHandler
-{
- // Processes log messages
- private LogMessageReceiver receiver_;
-
- /**
- * Constructor
- *
- *@param receiver LogMessageReceiver that handles what to do with a message
- */
- public ServerLoggingHandler (LogMessageReceiver receiver)
- {
- super();
- this.receiver_ = receiver;
- }
-
- /**
- * Start this handler in its own thread
- */
- public int open(Object obj)
- {
- new Thread (this).start();
- return 0;
- }
-
- /**
- * Accessor: get the host name of the connected client
- */
- protected String hostName ()
- {
- return new String(this.peer().socket().getInetAddress().getHostName());
- }
-
- /**
- * Receive input from the client, and send it to the LMR. This is the
- * main loop for this thread.
- */
- public void run()
- {
- DataInputStream dis = new DataInputStream(this.peer().inputStream());
-
- for (;;)
- {
- // Messages arrive in the ACE.LogRecord format
- //
- // Hey! We need exception catching in here too!
- try
- {
- // Reconstitute a log message from the wire
- LogRecord rec = new LogRecord();
-
- rec.streamInFrom(dis);
-
- // Give the record to the log processor
- this.receiver_.logRecord(this.hostName(),
- rec);
- }
- catch (EOFException eof)
- {
- try {
- this.stream_.close();
- } catch (IOException n) { }
-
- return;
- }
- catch (IOException ioe)
- {
- ACE.ERROR(Thread.currentThread().getName()
- + ": "
- + ioe);
- }
- }
- }
-};
-
diff --git a/java/netsvcs/Naming/Makefile b/java/netsvcs/Naming/Makefile
deleted file mode 100644
index af49d9061d8..00000000000
--- a/java/netsvcs/Naming/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-# Makefile
-# $Id$
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = $(WRAPPER_ROOT)/java
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-files = NameAcceptor.java \
- NameHandler.java \
- NameRequest.java \
- NameReply.java \
- NameProxy.java \
-
-packages = netsvcs \
- netsvcs.Naming
-
-realclean:
- /bin/rm -rf ${JACE_WRAPPER}/classes/netsvcs/Naming
-
diff --git a/java/netsvcs/Naming/NameAcceptor.java b/java/netsvcs/Naming/NameAcceptor.java
deleted file mode 100644
index f704504ee3c..00000000000
--- a/java/netsvcs/Naming/NameAcceptor.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Naming
- *
- * = FILENAME
- * NameAcceptor.java
- *
- * Listens on the specified port (command line option) and launches
- * NameHandlers when connections are made. Each NameHandler runs in
- * its own thread.
- *
- * The hash table for the mapping and a timer queue are created here.
- * Periodically the mapping is written out to a file.
- *
- * A small main program is included to start things off. If the
- * data file exists, it is read into memory. Currently the service
- * stores the entire mapping in memory at all times. The mapping is
- * dumped to a file at regular intervals.
- *
- *@see netsvcs.Naming.NameHandler
- *
- *@author Everett Anderson
- *
- *************************************************/
-package netsvcs.Naming;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.ASX.TimeValue;
-
-public class NameAcceptor extends Acceptor implements Runnable
-{
- /**
- * Constructor
- */
- public NameAcceptor ()
- {
- super();
-
- // Create the hash table and timer queue
- this.mapping_ = new Hashtable();
- this.tq_ = new TimerQueue(true);
- }
-
- /**
- * Simple main program. Command line options are
- * described under parseArgs.
- */
- public static void main (String [] args)
- {
- // Simple main program to get things rolling
- NameAcceptor na = new NameAcceptor();
-
- na.init(args);
- }
-
-
- /**
- * Close the socket when shutting down
- */
- public int fini ()
- {
- try
- {
- this.done_ = true;
- this.sockAcceptor_.close();
- }
- catch (IOException e)
- {
- ACE.ERROR("" + e);
- return -1;
- }
-
- return 0;
- }
-
- /**
- * Stops accepting when suspended
- */
- public int suspend()
- {
- this.suspended_ = true;
- return 0;
- }
-
- /**
- * Resumes accepting
- */
- public int resume()
- {
- this.suspended_ = false;
- return 0;
- }
-
-
- /**
- * Runs this instance in its own thread
- */
- public int init (String [] args)
- {
- // Parse arguments
- this.parseArgs (args);
-
- System.out.println("Starting naming service on port: " + this.port_);
-
- // Run in own thread of control so that we don't block the caller
- new Thread (this).start();
-
- return 0;
- }
-
- /**
- *
- * Main loop: launches NameHandlers in separate threads whenever a
- * connection request is made
- */
- public void run ()
- {
- // Load the hash table from disk
- this.loadTable();
-
- // Schedule to write out the memory copy of the hash table at regular
- // intervals
- this.tq_.scheduleTimer(this,
- null,
- new TimeValue(this.updateInterval_),
- new TimeValue(this.updateInterval_));
-
- try
- {
- // Create new NameHandlers as requests come in
- this.open (this.port_);
- while (!this.done_) {
-
- if (!this.suspended_)
- this.accept ();
- }
- }
- catch (SocketException e)
- {
- ACE.ERROR ("Socket Exception: " + e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- /**
- * Create a new NameHandler
- */
- protected SvcHandler makeSvcHandler ()
- throws InstantiationException, IllegalAccessException
- {
- return new netsvcs.Naming.NameHandler (this.mapping_);
- }
-
- /**
- * Process the command line. The following options are available:
- *
- * -p <port> Port number for listening
- * -f <filename> Name of the database file
- * -t <time> Mapping write-out time interval (in seconds)
- *
- */
- protected void parseArgs (String args[])
- {
- String s;
- GetOpt opt = new GetOpt (args, "p:f:t:");
- for (int c; (c = opt.next ()) != -1; )
- {
- switch (c)
- {
- // Specify port
- case 'p':
- s = opt.optarg ();
- this.port_ = (new Integer (s)).intValue ();
- break;
- // Specify file name of the database
- case 'f':
- s = opt.optarg ();
- this.filename_ = new String(s);
- break;
- // Specify time interval to write out the table
- case 't':
- s = opt.optarg ();
- this.updateInterval_ = (new Integer (s)).intValue();
- break;
- default:
- ACE.ERROR ("Unknown argument: " + c);
- break;
- }
- }
- }
-
- /**
- * Loads the hash table into memory from the specified
- * file. Uses ObjectInputStream.
- */
- protected void loadTable ()
- {
- File file = new File(this.filename_);
- FileInputStream fis;
- ObjectInputStream ois;
-
- Hashtable ht = null;
-
- try {
-
- if ((file.exists()) && (file.canRead())) {
-
- fis = new FileInputStream (file);
-
- ois = new ObjectInputStream(fis);
-
- ht = (Hashtable)ois.readObject();
- } else
- return;
- } catch (ClassNotFoundException e) {
- ACE.ERROR(e);
- } catch (StreamCorruptedException e) {
- ACE.ERROR(e);
- } catch (SecurityException e) {
- ACE.ERROR(e);
- } catch (IOException e) {
- ACE.ERROR(e);
- }
-
- if (ht != null)
- this.mapping_ = ht;
-
- }
-
- /**
- * Writes the table out to the specified file.
- */
- protected void saveTable ()
- {
- FileOutputStream fos;
- ObjectOutputStream oos;
-
- try {
-
- fos = new FileOutputStream(this.filename_);
- oos = new ObjectOutputStream(fos);
-
- oos.writeObject(this.mapping_);
-
- oos.flush();
-
- oos.close();
-
- } catch (OptionalDataException e) {
- ACE.ERROR(e);
- } catch (NotSerializableException e) {
- ACE.ERROR(e);
- } catch (IOException e) {
- ACE.ERROR(e);
- }
- }
-
- /**
- * Call back for the TimerQueue. This calls the method to save the
- * hash table. The default time out is 60 seconds.
- */
- public int handleTimeout (TimeValue tv, Object obj)
- {
- this.saveTable();
-
- return 0;
- }
-
- // Port to listen on
- private int port_ = ACE.DEFAULT_SERVER_PORT;
-
- // Mapping data structure
- Hashtable mapping_ = null;
-
- // Default file name
- String filename_ = "namedata.dat";
-
- // How often to save the table (seconds)
- int updateInterval_ = 60;
-
- // Calls handleTimeout at updateInterval_ intervals
- TimerQueue tq_ = null;
-
- boolean done_ = false;
- boolean suspended_ = false;
-
-}
-
diff --git a/java/netsvcs/Naming/NameHandler.java b/java/netsvcs/Naming/NameHandler.java
deleted file mode 100644
index a619eab0733..00000000000
--- a/java/netsvcs/Naming/NameHandler.java
+++ /dev/null
@@ -1,521 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Naming
- *
- * = FILENAME
- * NameHandler.java
- *
- * An instance of this class is created in a separate thread for each connection
- * request received by the NameAcceptor. All interaction between the
- * client's requests and the database are handled here.
- *
- * In general, the user binds a name to a (value, type) pair. The type is just
- * treated as just another String (in the C++ version the name and value are
- * arrays of 16 bit data types and the type is an array of 8 bit chars).
- *
- * For this to work in the hash table scheme, the type and value are wrapped in
- * a ValueType class defined at the end of this file.
- *
- * This is compatible with the C++ ACE remote name service.
- *
- *@see netsvcs.Naming.NameAcceptor
- *@see netsvcs.Naming.NameRequest
- *@see netsvcs.Naming.NameReply
- *
- *@author Everett Anderson
- *
- *************************************************/
-package netsvcs.Naming;
-
-import java.io.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.SOCK_SAP.*;
-
-public class NameHandler extends SvcHandler
-{
- /**
- * Constructor
- *
- * @param mapping Hash table created in NameAcceptor
- */
- public NameHandler (Hashtable mapping)
- {
- super();
-
- this.mapping_ = mapping;
- }
-
- /**
- * Starts this handler in its own thread
- *
- */
- public int open (Object obj)
- {
- new Thread (this).start ();
- return 0;
- }
-
- /**
- * Main loop that this thread executes. Waits for connection requests and
- * creates a NameHandler thread for each.
- *
- */
- public void run ()
- {
- ACE.DEBUG("NameHandler instance running");
-
- // Can't assume the SOCKStream uses DataInputStream, so put one
- // over its OutputStream
- DataInputStream dis = new DataInputStream (this.peer().inputStream());
-
- // The NameRequest is the how all requests come in to the naming service.
- NameRequest nameRequest = new NameRequest();
-
- // Main loop -- wait for requests
- int msgLen;
- try
- {
- while (!this.done_)
- {
- // Read a NameRequest from the stream
- nameRequest.streamInFrom(dis);
-
- // Decide what to do based on the request type
- this.dispatch(nameRequest);
-
- }
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("Connection reset by peer");
- }
- catch (EOFException e)
- {
- /* The client has shut down the connection */
-
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- finally
- {
- try
- {
- this.peer ().close ();
- }
- catch (IOException e)
- {
- }
- }
- }
-
-
- /**
- *
- * This is the point at which a request is sent to the various methods
- * that fulfill it. Switches on the request type -- bind, rebind, resolve,
- * etc.
- *
- *@param nameRequest The request to fill
- */
- void dispatch(NameRequest nameRequest) throws IOException
- {
-
- // Call the various other member functions based on the
- // message type of the request -- bind, rebind, etc.
- switch (nameRequest.requestType())
- {
- case NameRequest.BIND:
- this.bind(nameRequest, false);
- break;
- case NameRequest.REBIND:
- this.bind(nameRequest, true);
- break;
- case NameRequest.RESOLVE:
- this.resolve(nameRequest);
- break;
- case NameRequest.UNBIND:
- this.unbind(nameRequest);
- break;
- case NameRequest.LIST_NAMES:
- this.listByName(nameRequest.name(), false);
- break;
- case NameRequest.LIST_VALUES:
- this.listByValue(nameRequest.name(), false);
- break;
- case NameRequest.LIST_TYPES:
- this.listByType(nameRequest.name(), false);
- break;
- case NameRequest.LIST_NAME_ENTRIES:
- this.listByName(nameRequest.name(), true);
- break;
- case NameRequest.LIST_VALUE_ENTRIES:
- this.listByValue(nameRequest.name(), true);
- break;
- case NameRequest.LIST_TYPE_ENTRIES:
- this.listByType(nameRequest.name(), true);
- break;
- default:
- System.err.println("unknown type");
-
- ACE.ERROR("Unknown type: " + nameRequest.requestType());
-
- // Send a failure message. This will only work if the other
- // side is expecting something like a NameReply rather than
- // a NameRequest. It would've been better to have everything
- // use NameRequests to avoid this kind of thing.
- NameReply reply = new NameReply(NameReply.FAILURE, 0);
- reply.streamOutTo(this.peer());
-
- break;
- }
-
- }
-
- /**
- *
- * Bind a name and a (value, type) pair. All this data is given in the
- * NameRequest from the client. Returns a NameReply back to the client
- * with either Reply.SUCCESS or Reply.FAILURE as the type.
- *
- *@param request NameRequest given by the client
- *@param rebind Is this a rebind or not?
- */
- void bind (NameRequest request, boolean rebind) throws IOException
- {
- // The hash table entries consists of (String name, ValueType data) pairs, so
- // create the appropriate ValueType
- ValueType vt = new ValueType(request.type(),
- request.value());
-
- // Reply to tell sender of success or failure
- NameReply reply = new NameReply();
-
- // If it's a rebind request, overwrite the old entry. If the key doesn't
- // exist, add it. If it does exist and it's not a bind request, return
- // a failure code via a NameReply.
- if ((rebind) || (!this.mapping_.containsKey(request.name()))) {
-
- System.err.println("Binding: " + request.name() + " and " + vt.value_);
-
- // Add/Update the entry in the hash table
- this.mapping_.put(request.name(), vt);
-
- // Set the reply code to success
- reply.type(NameReply.SUCCESS);
-
- } else {
-
- ACE.DEBUG("Key " + request.name() + " already exists");
-
- // Set reply code to failure
- reply.type(NameReply.FAILURE);
-
- // reply error code unused as far as I know
- }
-
- reply.streamOutTo(this.peer());
- }
-
- /**
- * Given a name, this looks up and returns the type and value. This is
- * done by sending back a full NameRequest with the correct info. If
- * there is a problem, an "empty" NameRequest is returned -- it has no
- * name, type, or value fields.
- *
- *@param request NameRequest sent by the client (has the name to lookup)
- */
- void resolve (NameRequest request) throws IOException
- {
- // A NameRequest is also used in response
- NameRequest result;
-
- // Wrap a DataOutputStream around the socket's output stream
- // (the socket should already have at least a BufferedOutputStream)
- DataOutputStream dos = new DataOutputStream(this.peer().outputStream());
-
- // If the requested name is in the hash table, return the data
- if (this.mapping_.containsKey(request.name())) {
-
- // Get the data pair based on the name
- ValueType vt = (ValueType)this.mapping_.get(request.name());
-
- ACE.DEBUG("Good resolve: " + vt.value_);
-
- // Fill the reply structure
- result = new NameRequest(NameRequest.RESOLVE,
- null,
- vt.value_,
- vt.type_,
- null);
-
- } else {
-
- // Otherwise return a null response
- result = new NameRequest(NameRequest.RESOLVE,
- null,
- null,
- null,
- null);
-
- }
-
- // Send the result to the socket
- // result.streamOutTo(dos);
-
- result.streamOutTo(this.peer());
-
- }
-
- /**
- *
- * Given a name, remove its entry in the mapping. Returns a NameReply
- * to the client with NameReply.SUCCESS or NameReply.FAILURE.
- *
- *@param request NameRequest from the client (has the name to remove)
- */
- void unbind (NameRequest request) throws IOException
- {
- NameReply reply = new NameReply();
-
- // If the given key isn't in the table, return an error
- // Otherwise remove it. Uses a NameReply to respond.
- if (!this.mapping_.containsKey(request.name()))
- reply.type(NameReply.FAILURE);
- else {
- this.mapping_.remove(request.name());
- reply.type(NameReply.SUCCESS);
- }
-
- // Send the reply out to the socket
- reply.streamOutTo(this.peer());
- }
-
- /**
- *
- * Given a pattern string (given in NameRequest's name field), this
- * finds all the entries in the mapping which have a name that begins with
- * the string. Each one is sent back separately via a NameRequest, and this
- * sequence is followed by a blank NameRequest.
- *
- *@param pattern Pattern to find (what result names should begin with)
- *@param completeLookup Should the value and type be returned as well?
- */
- void listByName (String pattern, boolean completeLookup) throws IOException
- {
- // Get a listing of all the keys in the hash table
- Enumeration enum = this.mapping_.keys();
-
- // References used in the loop
- String name;
- ValueType vt;
-
- // A NameRequest is used to return each item corresponding to the pattern.
- NameRequest result = new NameRequest((completeLookup ? NameRequest.LIST_NAMES :
- NameRequest.LIST_NAME_ENTRIES),
- null,
- null,
- null,
- null);
-
- // Keep ourselves safe from null pointer exceptions
- if (pattern == null)
- pattern = new String("");
-
- // Scan through all the elements
- while (enum.hasMoreElements()) {
-
- // Get a key
- name = (String)enum.nextElement();
-
- // Does it fit the pattern?
- if (name.startsWith(pattern)) {
-
- // Set the result name
- result.name(name);
-
- // Only make another hash table request if the user
- // wants all the data
- if (completeLookup) {
-
- // Get data from the hash table
- vt = (ValueType)mapping_.get(name);
-
- // Set the rest of the data
- result.type(vt.type_);
- result.value(vt.value_);
- }
-
- // Send it to the socket
- result.streamOutTo(this.peer());
- }
- }
-
- // Send final null message
- result.name(null);
- result.type(null);
- result.value(null);
- result.requestType(NameRequest.MAX_ENUM);
- result.streamOutTo(this.peer());
- }
-
- /**
- *
- * Given a pattern string (given in NameRequest's name field), this
- * finds all the entries in the mapping which have a type that begins with
- * the string. Each one is sent back separately via a NameRequest, and this
- * sequence is followed by a blank NameRequest.
- *
- *@param pattern Pattern to find (what result types should begin with)
- *@param completeLookup Should the value be returned as well? This is only
- * used to decide between LIST_TYPES and LIST_TYPE_ENTRIES
- * since we might as well send back both if we look them up
- * together.
- */
- void listByType (String pattern, boolean completeLookup) throws IOException
- {
- // Get a listing of all the keys in the hash table
- Enumeration enum = this.mapping_.keys();
-
- // References used in the loop
- String name;
- ValueType vt;
-
- // A NameRequest is used to return each item corresponding to the pattern.
- NameRequest result = new NameRequest((completeLookup ? NameRequest.LIST_TYPES :
- NameRequest.LIST_TYPE_ENTRIES),
- null,
- null,
- null,
- null);
- // Keep ourselves safe from null pointer exceptions
- if (pattern == null)
- pattern = new String("");
-
- // Scan through all the elements
- while (enum.hasMoreElements()) {
-
- // Get a key
- name = (String)enum.nextElement();
-
- // Have to get all the data for this entry to compare
- vt = (ValueType)mapping_.get(name);
-
- // Does it fit the pattern?
- if (vt.type_ != null)
- if (vt.type_.startsWith(pattern)) {
-
- // Set the result values
- result.name(name);
- result.type(vt.type_);
- result.value(vt.value_);
-
- // Send it out to the socket
- result.streamOutTo(this.peer());
- }
- }
-
- // Send final null message
- result.name(null);
- result.type(null);
- result.value(null);
- result.requestType(NameRequest.MAX_ENUM);
- result.streamOutTo(this.peer());
- }
- /**
- *
- * Given a pattern string (given in NameRequest's name field), this
- * finds all the entries in the mapping which have a value that begins with
- * the string. Each one is sent back separately via a NameRequest, and this
- * sequence is followed by a blank NameRequest.
- *
- *@param pattern Pattern to find (what result values should begin with)
- *@param completeLookup Should the type be returned as well? This is only
- * used to decide between LIST_VALUES and LIST_VALUE_ENTRIES
- * since we might as well send back both if we look them up
- * together.
- */
-
- void listByValue (String pattern, boolean completeLookup) throws IOException
- {
- // Get a listing of all the keys in the hash table
- Enumeration enum = this.mapping_.keys();
-
- // References used in the loop
- String name;
- ValueType vt;
-
- // A NameRequest is used to return each item corresponding to the pattern.
- NameRequest result = new NameRequest((completeLookup ? NameRequest.LIST_VALUES :
- NameRequest.LIST_VALUE_ENTRIES),
- null,
- null,
- null,
- null);
- // Keep ourselves safe from null pointer exceptions
- if (pattern == null)
- pattern = new String("");
-
- // Scan through all the elements
- while (enum.hasMoreElements()) {
-
- // Get a key
- name = (String)enum.nextElement();
-
- // Have to get all the data for this entry to compare
- vt = (ValueType)mapping_.get(name);
-
- // Does it fit the pattern?
- if (vt.value_ != null)
- if (vt.value_.startsWith(pattern)) {
-
- // Set the result values
- result.name(name);
- result.type(vt.type_);
- result.value(vt.value_);
-
- // Send it out to the socket
- result.streamOutTo(this.peer());
- }
- }
-
- // Send final null message
- result.name(null);
- result.type(null);
- result.value(null);
- result.requestType(NameRequest.MAX_ENUM);
- result.streamOutTo(this.peer());
- }
-
- boolean done_ = false;
-
-
- // References to the hash table and the timer queue
- Hashtable mapping_;
-}
-
-
-/**
- * A simple wrapper to keep the type and value together in
- * the hash table.
- */
-class ValueType implements Serializable
-{
- /**
- * Constructor
- *
- *@param type Type string to include
- *@param value Value string to include
- */
- ValueType(String type, String value)
- { this.type_ = type; this.value_ = value; }
-
- public String type_;
- public String value_;
-}
-
diff --git a/java/netsvcs/Naming/NameProxy.java b/java/netsvcs/Naming/NameProxy.java
deleted file mode 100644
index 249f745f5ce..00000000000
--- a/java/netsvcs/Naming/NameProxy.java
+++ /dev/null
@@ -1,351 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Naming
- *
- * = FILENAME
- * NameProxy.java
- *
- * This is a proxy which clients can use to interact with the naming service. They
- * open a SOCKStream to the service, and can then call simple bind and resolve
- * methods.
- *
- *@see netsvcs.Naming.NameAcceptor
- *@see netsvcs.Naming.NameHandler
- *
- *@author Everett Anderson
- *
- *************************************************/
-package netsvcs.Naming;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-
-public class NameProxy
-{
- /**
- * Constructor
- *
- *@param socket A SOCKStream already connected to the naming service
- */
- public NameProxy(SOCKStream socket)
- {
- this.socket_ = socket;
- }
-
- /**
- * Attempt to bind the given data pair
- * @param name Name/key
- * @param value Value to bind
- *
- * @return True iff bind is successful
- */
- public boolean bind(String name, String value) throws IOException
- {
- return this.bind(name, value, null, false);
- }
-
- /**
- * Attempt to bind the given data triplet
- * @param name Name/key
- * @param value Value to bind
- * @param type Type to bind (another string)
- *
- * @return True iff the bind was successful
- */
- public boolean bind(String name, String value, String type) throws IOException
- {
- return this.bind(name, value, type, false);
- }
-
- /**
- * The most generic of the bind methods. Allows factoring out of common code. Not public.
- */
- boolean bind (String name, String value, String type, boolean rebind) throws IOException
- {
- // Create a new NameRequest with the desired info
- NameRequest request = new NameRequest(rebind ? NameRequest.REBIND : NameRequest.BIND,
- name,
- value,
- type,
- null);
-
- // Send it to the naming service
- request.streamOutTo(this.socket_);
-
- // Create a reply
- NameReply reply = new NameReply();
-
- // Get the status of the bind from the naming service
- reply.streamInFrom(this.socket_);
-
- // Return true on success
- return (reply.type() == NameReply.SUCCESS ? true : false);
- }
-
- /**
- * Rebind a name and a value
- * @param name Name/key
- * @param value Bound value
- *
- * @return True if the rebind was successful
- */
- public boolean rebind (String name, String value) throws IOException
- {
- return this.bind(name, value, null, true);
- }
-
- /**
- * Rebind a name, value, and type
- * @param name Name/key
- * @param value Bound value
- * @param type Bound type
- *
- * @return True if rebind was successful
- */
- public boolean rebind (String name, String value, String type) throws IOException
- {
- return this.bind(name, value, type, true);
- }
- /**
- * Look up information bound to the given key/name.
- *
- * @param name Name/key
- *
- * @return Vector with three elements:
- * 0 Name/key
- * 1 Value
- * 2 Type
- */
- public Vector resolve (String name) throws IOException
- {
- // Create a new NameRequest with the name & request type
- NameRequest request = new NameRequest(NameRequest.RESOLVE,
- name,
- null,
- null,
- null);
-
- // Send it to the naming service
- request.streamOutTo(this.socket_);
-
- // Get a response (hopefully with the value and type)
- request.streamInFrom(this.socket_);
-
- // Dump the result into a vector
- Vector result = new Vector();
-
- result.addElement(request.name());
- result.addElement(request.value());
- result.addElement(request.type());
-
- // Cut it down to the size we need
- result.trimToSize();
-
- return result;
- }
-
- /**
- * Remove the entry in the mapping corresponding to the given name/key.
- *
- * @param name Name/key
- *
- * @return True if the unbind was successful
- */
- public boolean unbind (String name) throws IOException
- {
- NameRequest request = new NameRequest(NameRequest.UNBIND,
- name,
- null,
- null,
- null);
- // Send the request to the naming service
- request.streamOutTo(this.socket_);
-
- NameReply reply = new NameReply();
-
- // Get reply
- reply.streamInFrom(this.socket_);
-
- return (reply.type() == NameReply.SUCCESS ? true : false);
- }
-
- /**
- * Return a vector that's a list of names (Strings) that begin with
- * the given pattern
- * @param pattern Search pattern
- * @return Vector List of names
- */
- public Vector listNames (String pattern) throws IOException
- {
- return this.requestSimpleList(pattern, NameRequest.LIST_NAMES);
- }
-
- /**
- * Return a vector that's a list of types (Strings) that begin with
- * the given pattern
- * @param pattern Search pattern
- * @return Vector List of types
- */
- public Vector listTypes (String pattern) throws IOException
- {
- return this.requestSimpleList(pattern, NameRequest.LIST_TYPES);
- }
-
- /**
- * Return a vector that's a list of values (Strings) that begin with
- * the given pattern
- * @param pattern Search pattern
- * @return Vector List of values
- */
- public Vector listValues (String pattern) throws IOException
- {
- return this.requestSimpleList(pattern, NameRequest.LIST_VALUES);
- }
-
- /**
- * Non-public generic list gathering method
- */
- Vector requestSimpleList (String pattern, int type) throws IOException
- {
- // Make request for a list of the given type
- NameRequest request = new NameRequest(type,
- pattern,
- null,
- null,
- null);
- request.streamOutTo(this.socket_);
-
- // Allocate and reuse the DIS here rather than each time we call
- // streamInFrom
- DataInputStream dis = new DataInputStream(this.socket_.inputStream());
-
- request.streamInFrom(dis);
- Vector result = new Vector();
-
- // Add elements until there's a null message with the MAX_ENUM
- // request type
- while (request.requestType() != NameRequest.MAX_ENUM) {
- if (type == NameRequest.LIST_NAMES)
- result.addElement(new String(request.name()));
- else
- if (type == NameRequest.LIST_VALUES)
- result.addElement(new String(request.value()));
- else
- result.addElement(new String(request.type()));
-
- request.streamInFrom(dis);
- }
-
- // Adjust the vector to the minimal size
- result.trimToSize();
-
- return result;
- }
-
- /**
- * Get a vector with the entire data set for entries whose name begins with
- * the given pattern. Each element in the vector is another vector
- * with the following layout:
- * 0 Name/key
- * 1 Value
- * 2 Type
- *
- * @param pattern Search pattern
- * @return Vector of vectors
- */
- public Vector listNameEntries (String pattern) throws IOException
- {
- return this.requestComplexList(pattern, NameRequest.LIST_NAME_ENTRIES);
- }
-
- /**
- * Get a vector with the entire data set for entries whose value begins with
- * the given pattern. Each element in the vector is another vector
- * with the following layout:
- * 0 Name/key
- * 1 Value
- * 2 Type
- *
- * @param pattern Search pattern
- * @return Vector of vectors
- */
- public Vector listValueEntries (String pattern) throws IOException
- {
- return this.requestComplexList(pattern, NameRequest.LIST_VALUE_ENTRIES);
- }
-
- /**
- * Get a vector with the entire data set for entries whose type begins with
- * the given pattern. Each element in the vector is another vector
- * with the following layout:
- * 0 Name/key
- * 1 Value
- * 2 Type
- *
- * @param pattern Search pattern
- * @return Vector of vectors
- */
-
- public Vector listTypeEntries (String pattern) throws IOException
- {
- return this.requestComplexList(pattern, NameRequest.LIST_TYPE_ENTRIES);
- }
-
- /**
- * Non-public generic method for getting a a vector of vectors with the
- * entire data set for entries fitting the given pattern.
- */
- Vector requestComplexList (String pattern, int type) throws IOException
- {
- // Create request with desired type
- NameRequest request = new NameRequest(type,
- pattern,
- null,
- null,
- null);
- // Send it to the naming service
- request.streamOutTo(this.socket_);
-
- // Allocate the DIS here and reuse
- DataInputStream dis = new DataInputStream(this.socket_.inputStream());
-
- // Get the first response
- request.streamInFrom(dis);
- Vector result = new Vector();
-
- // Loop while we don't see a null response with the MAX_ENUM request type
- while (request.requestType() != NameRequest.MAX_ENUM) {
- Vector entry = new Vector();
-
- // Create an element in the main vector
- entry.addElement(request.name());
- entry.addElement(request.value());
- entry.addElement(request.type());
- entry.trimToSize();
-
- // Add it to the result
- result.addElement(entry);
-
- // Get another NameRequest
- request.streamInFrom(dis);
- }
-
- result.trimToSize();
-
- return result;
- }
-
- // The SOCKStream used to communication with the service
- SOCKStream socket_;
-};
-
-
-
-
-
-
-
diff --git a/java/netsvcs/Naming/NameReply.java b/java/netsvcs/Naming/NameReply.java
deleted file mode 100644
index 52ebb111574..00000000000
--- a/java/netsvcs/Naming/NameReply.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Naming
- *
- * = FILENAME
- * NameReply.java
- *
- * Used by the naming server to give quick status messages
- * to the client. This is only used to signal the success or
- * failure of bind and unbind requests. The error number is
- * unused (same in C++ version?).
- *
- *@see netsvcs.Naming.NameHandler
- *
- *@author Everett Anderson
- *
- *************************************************/
-package netsvcs.Naming;
-
-import java.io.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.ASX.*;
-import JACE.SOCK_SAP.*;
-
-public class NameReply
-{
- // Success and failure constants
- public final static int SUCCESS = 1;
- public final static int FAILURE = 2;
-
- /**
- * Default Constructor
- */
- public NameReply ()
- {
- this.type_ = this.SUCCESS;
- this.errno_ = 0;
- }
-
- /**
- * Constructor
- *
- *@param type Success or failure
- *@param err Error number (unused)
- */
- public NameReply (int type, int err)
- {
- this.type_ = type;
- this.errno_ = err;
- }
-
- /**
- * Length accessor
- */
- int length()
- { return this.length_; }
-
- /**
- * Type accessor -- success or failure
- */
- int type()
- { return this.type_; }
-
- /**
- * Error number accessor
- */
- int errno()
- { return this.errno_; }
-
- /**
- * Set type
- * @param type New type
- */
- void type(int type)
- { this.type_ = type; }
-
- /**
- * Set error number
- * @param errno New error number
- */
- void errno(int errno)
- { this.errno_ = errno; }
-
- /**
- * Send this data to the given SOCKStream
- *
- *@param sock SOCKStream to send to
- */
- public void streamOutTo (JACE.SOCK_SAP.SOCKStream sock) throws IOException
- {
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- DataOutputStream dos = new DataOutputStream(bout);
-
- dos.writeInt(this.length_);
- dos.writeInt(this.type_);
- dos.writeInt(this.errno_);
-
- dos.flush();
-
- byte[] array = bout.toByteArray();
-
- sock.sendN(array, 0, array.length);
- }
-
- /**
- * Fill the fields of this instance from data in the socket
- *
- *@param sock SOCKStream to read from
- */
- public void streamInFrom (JACE.SOCK_SAP.SOCKStream sock) throws IOException
- {
- DataInputStream dis = new DataInputStream(sock.inputStream());
-
- this.streamInFrom(dis);
- }
-
- /**
- * Send this data to the given DataInputStream (which should be buffered)
- *
- *@param dis DataInputStream to use
- */
- public void streamInFrom (DataInputStream dis) throws IOException
- {
- int length = dis.readInt();
-
- if (length != this.length_)
- throw new IOException("Incorrect NameReply length");
-
- type_ = dis.readInt();
- errno_ = dis.readInt();
- }
-
- final static int length_ = 12;
-
- int type_;
- int errno_;
-}
-
-
-
-
diff --git a/java/netsvcs/Naming/NameRequest.java b/java/netsvcs/Naming/NameRequest.java
deleted file mode 100644
index f8a3579fa35..00000000000
--- a/java/netsvcs/Naming/NameRequest.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Naming
- *
- * = FILENAME
- * NameRequest.java
- *
- * Used by both client and naming server as detailed in
- * the NameHandler. This structure transfers information
- * including name, value, type, and request type.
- *
- *@see netsvcs.Naming.NameHandler
- *
- *@author Everett Anderson
- *
- *************************************************/
-package netsvcs.Naming;
-
-import java.io.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.ASX.*;
-import JACE.SOCK_SAP.*;
-
-public class NameRequest
-{
- /**
- * Different types of requests
- */
- public static final int BIND = 1;
- public static final int REBIND = 2;
- public static final int RESOLVE = 3;
- public static final int UNBIND = 4;
- public static final int LIST_NAMES = 5;
- public static final int LIST_VALUES = 13;
- public static final int LIST_TYPES = 21;
- public static final int LIST_NAME_ENTRIES = 6;
- public static final int LIST_VALUE_ENTRIES = 14;
- public static final int LIST_TYPE_ENTRIES = 22;
- public static final int MAX_ENUM = 11;
-
- /**
- * Default constructor
- */
- public NameRequest ()
- {
- this.name_ = this.value_ = this.type_ = null;
- this.length_ = 32;
- }
-
- /**
- * Constructor
- *
- * @param requestType Type of request this is (BIND, REBIND, etc)
- * @param name Key to bind
- * @param value Value to bind
- * @param type Type to couple with the value
- * @param timeout Timer information (not really used in JACE yet)
- */
- public NameRequest(int requestType,
- String name,
- String value,
- String type,
- TimeValue timeout)
- {
- this.requestType_ = requestType;
-
- if (timeout == null) {
-
- this.blockForever_ = 1;
- this.secTimeout_ = 0;
- this.usecTimeout_ = 0;
- } else {
-
- this.blockForever_ = 0;
- this.secTimeout_ = (int)timeout.sec();
- this.usecTimeout_ = (int)timeout.getMilliTime() * 1000;
- }
-
- // This is necessary to make sure null pointer exceptions are
- // avoided. It makes it more consistent later on
- if (name == null)
- this.name_ = new String("");
- else
- this.name_ = new String(name);
- if (value == null)
- this.value_ = new String("");
- else
- this.value_ = new String(value);
- if (type == null)
- this.type_ = new String("");
- else
- this.type_ = new String(type);
-
- // Set the length
- this.calculateLength();
- }
-
- /**
- * Calculate the transmission length (bytes) of this structure
- */
- private void calculateLength()
- {
- // The type is sent as an 8 bit data type (chars in the C++ version),
- // but the name and value are sent as 16 bit chars (ACE_USHORT16's in C++)
-
- this.length_ = 34 + this.type_.length() + 2 * (this.name_.length() +
- this.value_.length());
-
- }
-
- /**
- * Return the transmission length
- */
- public int length()
- { return this.length_; }
-
- /**
- * Return the name/key
- */
- public String name()
- { return new String(this.name_); }
-
- /**
- * Set the name/key
- * @param name Name to set to
- */
- public void name(String name)
- {
- if (name == null)
- this.name_ = new String("");
- else
- this.name_ = new String(name);
-
- this.calculateLength();
- }
-
- /**
- * Return the value
- */
- public String value()
- { return new String(this.value_); }
-
- /**
- * Set the value
- * @param value New value
- */
- public void value(String value)
- {
- if (value == null)
- this.value_ = new String("");
- else
- this.value_ = new String(value);
-
- this.calculateLength();
- }
-
- /**
- * Return the type
- */
- public String type()
- { return new String(this.type_); }
-
- /**
- * Set the type
- * @param type New type
- */
- public void type(String type)
- {
- if (type == null)
- this.type_ = new String("");
- else
- this.type_ = new String(type);
-
- this.calculateLength();
- }
-
- /**
- * Fill the fields of this instance with data from the socket
- *
- *@param sock Socket to read from
- */
- public void streamInFrom (JACE.SOCK_SAP.SOCKStream sock) throws IOException
- {
- DataInputStream dis = new DataInputStream(sock.inputStream());
-
- this.streamInFrom(dis);
- }
-
- /**
- * Fill the fields of this instance from the given DataInputStream
- *
- *@param dis DataInputStream to read from
- */
- public void streamInFrom (DataInputStream dis) throws IOException
- {
- // Read the length (32 bits)
- length_ = dis.readInt();
-
- // Read the request type
- requestType_ = dis.readInt();
-
- // Can we block forever to fulfill this request? (unused)
- blockForever_ = dis.readInt();
-
- // How long until we should time out this request? (unused)
- secTimeout_ = dis.readInt();
- usecTimeout_ = dis.readInt();
-
- // The sizes are in bytes, and there are two bytes per char
- // (ACE_USHORT16 in C++ land)
- int nameLen = dis.readInt() / 2;
- int valueLen = dis.readInt() / 2;
-
- int typeLen = dis.readInt();
-
- // Read the name -- just read chars since they're 16 bits.
- // Hopefully the SOCKStream has buffered the data
- char buf[] = new char[nameLen];
- for (int i = 0; i < nameLen; i++) {
- buf[i] = dis.readChar();
- }
- this.name_ = new String(buf);
-
- // Read the value
- buf = new char[valueLen];
- for (int i = 0; i < valueLen; i++)
- buf[i] = dis.readChar();
- this.value_ = new String(buf);
-
- // Read the type -- now we can use readFully since
- // the type was sent as 8 bit chars
- byte tbuf[] = new byte[typeLen];
- dis.readFully(tbuf);
- this.type_ = new String(tbuf);
-
- // Skip the null char at the end
- dis.skipBytes(2);
- }
-
- /**
- * Send this NameRequest out to the given SOCKStream
- *
- *@param sock SOCKStream to send to
- */
- public void streamOutTo (JACE.SOCK_SAP.SOCKStream sock) throws IOException
- {
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- DataOutputStream dos = new DataOutputStream(bout);
-
- dos.writeInt(length_);
- dos.writeInt(requestType_);
- dos.writeInt(blockForever_);
- dos.writeInt(secTimeout_);
- dos.writeInt(usecTimeout_);
-
- // Byte sizes are sent, and the name and value are stored as
- // 16 bit char arrays (ACE_USHORT16 arrays in C++ version)
- dos.writeInt(this.name_.length() * 2);
- dos.writeInt(this.value_.length() * 2);
- dos.writeInt(this.type_.length());
-
- // Making sure the name_ wasn't null comes in handy
- // in situations like this
- dos.writeChars(this.name_);
- dos.writeChars(this.value_);
- dos.writeBytes(this.type_);
-
- // Null termination
- dos.writeChar(0);
-
- // Send it for real
- dos.flush();
-
- byte[] array = bout.toByteArray();
-
- sock.sendN(array, 0, array.length);
- }
-
- /**
- * Set the requestType
- *@param type Type to set to
- */
- public void requestType(int type)
- {
- this.requestType_ = type;
- }
-
- /**
- * Get requestType
- */
- public int requestType()
- {
- return this.requestType_;
- }
-
- /**
- * Can we block forever to fulfill the request? (unused)
- */
- public boolean blockForever()
- {
- return (this.blockForever_ != 0) ? true : false;
- }
-
- /**
- * Allowed timeout (unused)
- */
- public int secTimeout()
- {
- return this.secTimeout_;
- }
-
- int length_;
- int requestType_;
- int blockForever_;
- int secTimeout_;
- int usecTimeout_;
-
- String name_;
- String value_;
- String type_;
-};
-
-
-
-
-
-
diff --git a/java/netsvcs/Time/Clerk.java b/java/netsvcs/Time/Clerk.java
deleted file mode 100755
index f29e08e06f8..00000000000
--- a/java/netsvcs/Time/Clerk.java
+++ /dev/null
@@ -1,23 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// netsvcs.Time
-//
-// = FILENAME
-// Clerk.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package netsvcs.Time;
-
-// Test driver for the time server clerk
-public class Clerk
-{
- public static void main (String [] args)
- {
- TSClerkProcessor clerk = new TSClerkProcessor ();
- clerk.init (args);
- }
-}
diff --git a/java/netsvcs/Time/Makefile b/java/netsvcs/Time/Makefile
deleted file mode 100755
index 830c2646a8a..00000000000
--- a/java/netsvcs/Time/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# $Id$
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = $(ACE_ROOT)/java
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-files = TSClerkProcessor.java \
- TSClerkHandler.java \
- TSRequestAcceptor.java \
- TSRequestHandler.java \
- TSServerAcceptor.java \
- TSServerHandler.java \
- Clerk.java \
- Server.java
-
-packages = netsvcs \
- netsvcs.Time
-
-realclean:
- /bin/rm -rf ${JACE_WRAPPER}/classes/netsvcs/Time
-
diff --git a/java/netsvcs/Time/Server.java b/java/netsvcs/Time/Server.java
deleted file mode 100755
index 6b44ddf8d9f..00000000000
--- a/java/netsvcs/Time/Server.java
+++ /dev/null
@@ -1,23 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// netsvcs.Time
-//
-// = FILENAME
-// Server.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package netsvcs.Time;
-
-// Test driver for the time service server
-public class Server
-{
- public static void main (String [] args)
- {
- TSServerAcceptor server = new TSServerAcceptor ();
- server.init (args);
- }
-}
diff --git a/java/netsvcs/Time/TSClerkHandler.java b/java/netsvcs/Time/TSClerkHandler.java
deleted file mode 100755
index fc89b69c45c..00000000000
--- a/java/netsvcs/Time/TSClerkHandler.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Time
- *
- * = FILENAME
- * TS_Clerk_Handler.java
- *
- *@author Prashant Jain, Everett Anderson
- *
- *************************************************/
-package netsvcs.Time;
-
-import java.io.*;
-import java.util.Date;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.ASX.TimeValue;
-
-/**
- * <hr>
- * <p><h2>SYNOPSIS</h2>
- *
- * <blockquote>Requests the remote time on a server at regular
- * intervals.</blockquote>
- *
- * <p><h2>DESCRIPTION</h2>
- *
- * <blockquote>TSClerkHandlers are created by a TSClerkProcessor. There
- * is one handler for each server that the Clerk Processor factors into
- * its calculations.</blockquote>
- */
-public class TSClerkHandler extends SvcHandler
-{
- /**
- * Constructor. TSClerkProcessor specifies the server machine and
- * port, as well as the interval at which to make the query.
- */
- public TSClerkHandler (String hostname,
- int port,
- TimerQueue tq,
- int timeout,
- TSClerkProcessor parent)
- {
-
- this.hostname_ = hostname;
- this.port_ = port;
- this.tq_ = tq;
- this.timeout_ = timeout;
-
- this.initialTimeout_ = timeout;
- this.processor_ = parent;
-
- this.sendMsg_ = new String ("TIME_UPDATE_REQUEST");
- }
-
- /**
- * Called to start this handler in a new thread. This only
- * does it when the state of the handler is INITIALIZING.
- */
- public int open (Object obj)
- {
- if (this.state_ != RECONNECTING) {
-
- Thread test = new Thread(this);
-
- new Thread (this).start ();
-
- }
- return 0;
- }
-
- /**
- * Accessor - return the host name of the server
- */
- public String hostname ()
- {
- return this.hostname_;
- }
-
- /**
- * Accessor - return the port used to contact the server
- */
- public int port ()
- {
- return this.port_;
- }
-
- /**
- * Accessor - returns the difference between the local time and
- * the remote server.
- */
- public long delta ()
- {
- return this.delta_;
- }
-
- /**
- * Called when the thread starts. Schedules itself with the
- * timer queue.
- */
- public void run ()
- {
- this.timerId_ = this.tq_.scheduleTimer (this,
- null,
- new TimeValue (this.timeout_),
- new TimeValue (this.timeout_));
-
- }
-
- /**
- * Accessor - return the state
- */
- public int state()
- {
- return this.state_;
- }
-
- /**
- * Sets the state of the handler
- */
- public void state(int newState)
- {
- this.state_ = newState;
- }
-
- /**
- * Provides a new time out interval (exponentially increasing) so
- * that if the server doesn't respond, we don't keep trying to
- * reconnect as often. Maximum value is 5 minutes.
- */
- public int recalculateTimeout()
- {
- this.timeout_ *= 2;
-
- if (this.timeout_ > this.max_timeout_)
- this.timeout_ = max_timeout_;
-
- return this.timeout_;
- }
-
- /**
- * Start the recovery from a server disconnection by closing the
- * port and recalculating the timeout value.
- */
- protected void errorRecovery()
- {
- ACE.DEBUG("Time Service failure with server " + this.hostname_);
-
- this.timeout_ = this.recalculateTimeout();
-
- this.reschedule();
- }
-
- /**
- * Removes this handler from the timer queue, and reschedules it
- * (presumably with a new timeout value)
- */
- public void reschedule()
- {
- this.tq_.cancelTimer(this);
-
- this.timerId_ = this.tq_.scheduleTimer (this,
- null,
- new TimeValue (this.timeout_),
- new TimeValue (this.timeout_));
- }
-
- /**
- * Called back by the timer queue. If the handler isn't connected,
- * it tries to reconnect to the server. Otherwise, it requests
- * the remote time. The server is said to have disconnected when
- * an exception is thrown in the socket system, or the result is
- * a string with length <= 0.
- */
- public int handleTimeout (TimeValue tv, Object obj)
- {
- if (this.state_ != CONNECTED) {
-
- this.processor_.initiateConnection(this);
-
- // If still not connected
- if (this.state_ != CONNECTED) {
-
- // used to set state to reconnecting here
- this.state_ = RECONNECTING;
-
- // Reschedule to try again later
- this.errorRecovery();
- return 0;
- }
-
- // If connected, poll the server at the requested intervals
- this.resetTimeout();
- }
-
- StringBuffer ack = new StringBuffer ();
- int ackLen;
- try
- {
- // Used to calculate the turn-around time
- long sendTime = System.currentTimeMillis();
-
- this.peer ().send(this.sendMsg_);
- ackLen = this.peer ().recv (ack);
-
- long recvTime = System.currentTimeMillis();
-
- if (ackLen <= 0) {
-
- this.state_ = DISCONNECTED;
- return -1;
-
- } else {
-
- long delta = (new Long(ack.toString())).longValue() - recvTime;
-
- delta += (recvTime - sendTime) / 2;
-
- this.delta_ = delta;
-
- System.err.println("Delta: " + this.delta_);
- }
-
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("connection reset by peer");
- this.state_ = DISCONNECTED;
- return -1;
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- this.state_ = DISCONNECTED;
- return -1;
- }
-
- return 0;
- }
-
- /**
- * Resets the timer interval to be the one supplied to the
- * constructor.
- */
- public void resetTimeout()
- {
- this.timeout_ = this.initialTimeout_;
-
- this.reschedule();
- }
-
- private TSClerkProcessor processor_;
- // Reference used to re-establish connections
-
- public static final int MAX_RETRY_TIMEOUT = 300;
- // Wait at most 5 minutes before trying to reconnect
-
- // States
- public static final int CONNECTED = 0;
- public static final int DISCONNECTED = 1;
- public static final int RECONNECTING = 2;
-
- // If there has been a failure, try reconnecting
- // at least every MAX_RETRY_TIMEOUT seconds
- private int max_timeout_ = MAX_RETRY_TIMEOUT;
-
- // State of the handler
- private int state_ = DISCONNECTED;
-
- // Difference between the remote time and the local time.
- private long delta_ = 0;
-
- // Name of the remote host
- private String hostname_;
-
- // Port used for the connection
- private int port_;
-
- // Current timer interval
- private int timeout_;
-
- // Reference to the Clerk Processor's timer queue
- private TimerQueue tq_;
-
- // Message to send for a time update
- private String sendMsg_;
-
- // ID of the handler in the queue
- private int timerId_;
-
- // Desired time interval to receive updates
- private int initialTimeout_;
-
-}
diff --git a/java/netsvcs/Time/TSClerkProcessor.java b/java/netsvcs/Time/TSClerkProcessor.java
deleted file mode 100755
index d7b1773cc9e..00000000000
--- a/java/netsvcs/Time/TSClerkProcessor.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Time
- *
- * = FILENAME
- * TSClerkProcessor.java
- *
- *@author Prashant Jain, Everett Anderson
- *
- *************************************************/
-package netsvcs.Time;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-import JACE.ASX.TimeValue;
-
-/**
- *
- * <hr>
- * <p><h2>SYNOPSIS</h2>
- *
- * <blockquote>Monitors a specified port (default 7989) and launches
- * TSClerkHandlers when connections are made. The handlers communicate
- * with servers and calculate the difference between the server time
- * and local time. The Clerk Processor averages these differences
- * and reports them to clients.</blockquote>
- *
- * <p><h2>DESCRIPTION</h2>
- *
- * <blockquote>This doesn't actually change the system clock, but it
- * provides the average of the differences of the local and server
- * times. A client could use this information to adjust the clock, or
- * just use the midpoint to determine the correct network time.</blockquote>
- *
- */
-public class TSClerkProcessor extends Connector implements Runnable
-{
- /**
- * Default constructor
- */
- public TSClerkProcessor ()
- {
- this.serverArray_ = new Vector ();
-
- }
-
- /**
- * Parse the command line, setup the TSRequestAcceptor, and run
- * the Clerk Processor in its own thread.
- */
- public int init (String [] args)
- {
- // Parse arguments
- this.parseArgs (args);
-
- TSRequestAcceptor ra = new TSRequestAcceptor (this);
- ra.init (args);
-
- // Run in own thread of control so that we don't block the caller
- new Thread (this).start ();
- return 0;
- }
-
-
- /**
- * Makes connections to the servers, schedules itself for intervals
- * to update the delta time.
- */
- public void run ()
- {
-
- // Set up connections with all servers
- Enumeration table = this.serverArray_.elements ();
- while (table.hasMoreElements ())
- {
- this.initiateConnection((TSClerkHandler)table.nextElement());
- }
-
- // Set up timer
- this.timer_id_ = this.tq_.scheduleTimer (this,
- null,
- new TimeValue (this.timeout_),
- new TimeValue (this.timeout_));
- }
-
- /**
- * Makes connections to the servers.
- */
- public void initiateConnection (TSClerkHandler handler)
- {
- this.open (handler.hostname(), handler.port());
-
- try
- {
- // Connect to the server
- this.connect (handler);
-
- // Set the state of the Clerk Handler so it queries the
- // server at intervals.
- handler.state(TSClerkHandler.CONNECTED);
-
- }
- catch (UnknownHostException e)
- {
- ACE.ERROR (e);
- }
- catch (SocketException e)
- {
- ACE.ERROR ("Connection refused");
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
-
- /**
- *
- * Called by the timer queue. Calls updateTime().
- */
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return this.updateTime ();
- }
-
- /**
- * Calculates the delta time by averaging the results from
- * Clerk Handler delta()'s. It only includes handlers whose
- * state is currently CONNECTED. If they're not connected, it
- * reschedules them to begin the error correction process of
- * trying to reconnect to the server (possible synch problems?).
- */
- protected int updateTime ()
- {
- TSClerkHandler handler;
- int count = 0;
- long totalDeltaTime = 0;
-
- Enumeration table = this.serverArray_.elements ();
-
- while (table.hasMoreElements ())
- {
- handler = (TSClerkHandler) table.nextElement ();
-
- if (handler.state() != TSClerkHandler.CONNECTED) {
-
- // Reconnecting state means we don't need to put
- // it in the timer queue again
- if (handler.state() == TSClerkHandler.RECONNECTING)
- continue;
- else
- if (handler.state() == TSClerkHandler.DISCONNECTED)
- handler.state(TSClerkHandler.RECONNECTING);
-
- handler.errorRecovery();
- continue;
- }
-
- long delta = handler.delta();
-
- ACE.DEBUG(handler.hostname() + ": " + delta);
-
- totalDeltaTime += delta;
- count++;
- }
-
- if (count > 0) {
-
- this.timeDelta_ = totalDeltaTime / count;
-
- ACE.DEBUG("Average deviation: " + totalDeltaTime/count);
-
- } else
-
- this.timeDelta_ = 0;
-
- return 0;
- }
-
- /**
- * Return the delta time.
- */
- public long getDelta()
- {
- return this.timeDelta_;
- }
-
- /**
- * Parse the command line. Watches for -t <time> and
- * -h <machine:port> switches. Must specify time
- * value before host switches!
- */
- protected void parseArgs (String args[])
- {
- String s;
- GetOpt opt = new GetOpt (args, "t:h:");
- for (int c; (c = opt.next ()) != -1; )
- {
- switch (c)
- {
- case 't':
- s = opt.optarg ();
- this.timeout_ = (new Integer (s)).intValue ();
- break;
- case 'h':
- s = opt.optarg ();
- this.addNewHandler (s);
- break;
- default:
- ACE.ERROR ("Bad command line argument: " + c);
-
- ACE.ERROR ("Valid arguments: -t <timeout> -h <hostname>:<port> -h ...");
- break;
- }
- }
- }
-
- /**
- *
- * Creates a new Clerk Handler and adds it to the serverArray_
- */
- private void addNewHandler (String s)
- {
- StringTokenizer tokens = new StringTokenizer (s, ":");
- String hostname = tokens.nextToken ();
-
- int port = (new Integer (tokens.nextToken ())).intValue ();
-
- // Create new handler and add it to array of servers
- this.serverArray_.addElement (new TSClerkHandler (hostname,
- port,
- this.tq_,
- this.timeout_,
- this));
- }
-
- // Vector of TSClerkHandlers, one for each server
- private Vector serverArray_;
-
- // Default interval at which to update the time
- private int timeout_ = 1000;
-
- // Timer queue which calls handleTimeout when the Clerk Processor
- // is supposed to update the time.
- private TimerQueue tq_ = new TimerQueue (true);
-
- // Clerk Processor ID in the timer queue
- private int timer_id_;
-
- // Average of the differences of the local and server times.
- private long timeDelta_;
-}
diff --git a/java/netsvcs/Time/TSRequestAcceptor.java b/java/netsvcs/Time/TSRequestAcceptor.java
deleted file mode 100755
index e02b0b261ba..00000000000
--- a/java/netsvcs/Time/TSRequestAcceptor.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Time
- *
- * = FILENAME
- * TSRequestAcceptor.java
- *
- *@author Prashant Jain, Everett Anderson
- *
- *************************************************/
-package netsvcs.Time;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-
-/**
- * <hr>
- * <p><h2>SYNOPSIS</h2>
- *
- * <blockquote>Monitors a specified port (default 7990) and launches
- * TSRequestHandlers when connections are made. The handlers
- * report the average deviation from the local time when input
- * is received to their sockets.</blockquote>
- *
- * <p><h2>DESCRIPTION</h2>
- * <blockquote>This is in place of the shared memory system used in C++ ACE.
- * The clients need to request the correct time range from the Clerk, so
- * they can do it with <a href="ACE.SOCK_SAP.SOCKStream.html#_top_">
- * <tt>sockets</tt></a>. An instance of TSRequestAcceptor is created
- * and initialized in TSClerkProcessor init(). This should be the
- * only place it's used.</blockquote>
- *
- * @see ACE.SOCK_SAP.SOCKAcceptor,ACE.netsvcs.Time.TSClerkProcessor
- */
-
-public class TSRequestAcceptor extends Acceptor implements Runnable
-{
- /**
- * Create an instance of TSRequestAcceptor. Default constructor.
- */
- public TSRequestAcceptor (TSClerkProcessor parent)
- {
- this.parent_ = parent;
- }
-
- /**
- *
- * Process command line arguments (port), and start this instance
- * in its own thread.
- *
- */
- public int init(String [] args)
- {
- this.parseArgs (args);
-
- new Thread (this).start();
- return 0;
- }
-
- /**
- *
- * Called when the thread starts. Open the port and accept
- * connections.
- */
- public void run ()
- {
- try {
- this.open (this.port_);
- while (true)
- this.accept();
- }
- catch (SocketException e)
- {
- ACE.ERROR (e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
-
- System.err.println("Stopped accepting");
- }
-
- /**
- *
- * Parse the command line. This only looks for -p <port number>.
- *
- */
- protected void parseArgs (String args[])
- {
- String s;
- GetOpt opt = new GetOpt (args, "p:");
-
- for (int c; (c = opt.next ()) != -1; )
- {
- switch (c)
- {
- case 'p':
- s = opt.optarg ();
- this.port_ = (new Integer (s)).intValue ();
- break;
- default:
- ACE.ERROR("Invalid argument: " + c);
- break;
- }
- }
- }
-
- /**
- *
- * Modifies to behavior of Acceptor accept() so the TSClerkProcessor
- * reference can be passed to the TSRequestHandler.
- *
- */
-
- protected SvcHandler makeSvcHandler ()
- throws InstantiationException, IllegalAccessException
- {
- return (SvcHandler) new TSRequestHandler(parent_);
- }
-
- // Port to monitor
- private int port_ = 7990;
-
- // Reference to the Clerk Processor (which holds the time value)
- private TSClerkProcessor parent_;
-};
-
diff --git a/java/netsvcs/Time/TSRequestHandler.java b/java/netsvcs/Time/TSRequestHandler.java
deleted file mode 100755
index dbeded22250..00000000000
--- a/java/netsvcs/Time/TSRequestHandler.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package netsvcs.Time;
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Time
- *
- * = FILENAME
- * TSRequestHandler.java
- *
- *@author Prashant Jain, Everett Anderson
- *
- *************************************************/
-import java.io.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-
-/**
- * <hr>
- * <p><h2>SYNOPSIS</h2>
- *
- * <blockquote>Handles giving the client the average difference between
- * the local time and the server times.</blockquote>
- *
- * <p><h2>DESCRIPTION</h2>
- *
- * <blockquote>Whenever the RequestHandler receives input to the port, it
- * sends the current delta (average difference time) in return as a string.
- * Instances of this class are created by TSRequestAcceptor.</blockquote>
- */
-public class TSRequestHandler extends SvcHandler
-{
- /**
- * Constructor. Takes in a reference to the Clerk Processor
- * so it can call TSClerkProcessor getDelta().
- */
- public TSRequestHandler (TSClerkProcessor processor)
- {
- this.processor_ = processor;
- }
-
- /**
- *
- * Run this in a separate thread.
- */
- public int open (Object obj)
- {
- new Thread (this).start ();
- return 0;
- }
-
- /**
- *
- * Called when the thread starts. This is the main code -- whenever
- * input comes to the socket, it sends out the current delta time
- * as a string.
- */
- public void run ()
- {
- int msgLen;
- try
- {
- while (true)
- {
- StringBuffer msg = new StringBuffer ();
-
- msgLen = this.peer ().recv (msg);
-
- if (msgLen < 0)
- break;
- else {
-
- // No matter what was sent in, send the average difference back
-
- String msgOut = new String("" + this.processor_.getDelta() + '\n');
- this.peer ().send (msgOut);
-
- }
- }
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("Connection reset by peer");
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- finally
- {
- try
- {
- this.peer ().close ();
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
- }
-
-
- // Reference to the Clerk Processor to call getDelta()
- TSClerkProcessor processor_;
-}
diff --git a/java/netsvcs/Time/TSServerAcceptor.java b/java/netsvcs/Time/TSServerAcceptor.java
deleted file mode 100755
index 2d54f7b740b..00000000000
--- a/java/netsvcs/Time/TSServerAcceptor.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Time
- *
- * = FILENAME
- * TS_Server_Acceptor.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package netsvcs.Time;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-
-/**
- * <hr>
- * <p><h2>DESCRIPTION</h2>
- *
- * Acceptor: listens to a port and launches TSServerHandlers
- * when connections are made.
- *
- * @see netsvcs.Time.TSServerHandler, JACE.Connection.Acceptor
- */
-public class TSServerAcceptor extends Acceptor implements Runnable
-{
- // Run this in its own thread
- public int init (String [] args)
- {
- // Parse arguments
- this.parseArgs (args);
-
- // Run in own thread of control so that we don't block the caller
- new Thread (this).start ();
- return 0;
- }
-
- // Create a TSServerHandler for each client that wants to connect
- public void run ()
- {
- try
- {
- this.setHandlerFactory (Class.forName ("netsvcs.Time.TSServerHandler"));
- this.open (this.port_);
- while (true)
- this.accept ();
- }
- catch (ClassNotFoundException e)
- {
- ACE.ERROR (e);
- }
- catch (SocketException e)
- {
- ACE.ERROR ("Socket Exception: " + e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
-
- System.err.println("Stopped accepting");
- }
-
- // Process the command line
- protected void parseArgs (String args[])
- {
- String s;
- GetOpt opt = new GetOpt (args, "p:");
- for (int c; (c = opt.next ()) != -1; )
- {
- switch (c)
- {
- case 'p':
- s = opt.optarg ();
- this.port_ = (new Integer (s)).intValue ();
- break;
- default:
- ACE.ERROR ("Unknown argument: " + c);
- break;
- }
- }
- }
-
- private int port_ = 7989;
-}
-
diff --git a/java/netsvcs/Time/TSServerHandler.java b/java/netsvcs/Time/TSServerHandler.java
deleted file mode 100755
index 4ee700254ed..00000000000
--- a/java/netsvcs/Time/TSServerHandler.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * netsvcs.Time
- *
- * = FILENAME
- * TS_Server_Handler.java
- *
- *@author Prashant Jain, Everett Anderson
- *
- *************************************************/
-package netsvcs.Time;
-
-import java.io.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.Reactor.*;
-
-/**
- * <hr>
- * <p><h2>DESCRIPTION</h2>
- *
- * <blockquote>Handles requests from a TSClerkHandler and sends
- * back the current local time.</blockquote>
- *
- * @see netsvcs.Time.TSClerkHandler. netsvcs.Time.TSServerAcceptor
- */
-
-public class TSServerHandler extends SvcHandler
-{
- // Constructor
- public TSServerHandler ()
- {
- }
-
- // Start this handler in its own thread
- public int open (Object obj)
- {
-
- new Thread (this).start ();
- return 0;
- }
-
- // Wait for messages from the Client and send the current local
- // time back as a string.
- public void run ()
- {
- int msgLen;
- try
- {
- while (true)
- {
- // Use a new one each time since recv appends
- StringBuffer msg = new StringBuffer ();
-
- // Get the message from the client (blocks)
- msgLen = this.peer ().recv (msg);
-
- // Just keep waiting if there's a problem
- if (msgLen <= 0)
- break;
-
- // Is the message for the right thing?
- if (msg.toString().compareTo ("TIME_UPDATE_REQUEST") != 0) {
- System.err.println("Unknown message: \"" + msg + '\"');
- this.peer().send("\n"); // send so other side isn't stuck
- break;
- }
-
- // Get local time
- long time = System.currentTimeMillis();
-
- // Send as a string
- this.peer ().send ("" + time);
-
- ACE.DEBUG("Time: " + new Date(time));
- }
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("Connection reset by peer");
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- finally
- {
- try
- {
- this.peer ().close ();
- }
- catch (IOException e)
- {
- }
- }
- }
-}
diff --git a/java/src/ACE.java b/java/src/ACE.java
deleted file mode 100644
index 8fa6e1823fa..00000000000
--- a/java/src/ACE.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.OS
- *
- * = FILENAME
- * JACE.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.OS;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- * <blockquote>Constants, utility "functions", etc.</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * Defines default constants for ACE. Many of these are used for the
- * ACE tests and applications. You may want to change some of these to
- * correspond to your environment. Also, routines for error handling,
- * debugging and bit manipulation are included.
- *</blockquote>
- *
- * <h2>NOTES</h2>
- *<blockquote>
- * This class is non-instantiable, and intended only to provide a constrained
- * namespace.
- *</blockquote>
- */
-public abstract class ACE
-{
- /**
- * Default port on which a server listens for connections.
- */
- public static final int DEFAULT_SERVER_PORT = 10002;
-
- /**
- * Default name to use for a thread group.
- */
- public static final String DEFAULT_THREAD_GROUP_NAME = "ace_thread_group";
-
- /**
- * Disable debugging. Once debugging is disabled, all ACE.DEBUG
- * statements would be ignored.
- */
- public static final void disableDebugging ()
- {
- ACE.debug_ = false;
- }
-
- /**
- * Enable debugging. Once debugging is enabled, all ACE.DEBUG
- * statements get printed.
- */
- public static final void enableDebugging ()
- {
- ACE.debug_ = true;
- }
-
- /**
- * Print the string representation of Java Exception.
- *@param e Java exception
- */
- public static final void ERROR (Exception e)
- {
- System.err.println (e);
- }
-
- /**
- * Print the string being passed in.
- *@param s a Java String
- */
- public static final void ERROR (String s)
- {
- System.err.println (s);
- }
-
- /**
- * Print the string being passed in.
- *@param s A Java String
- *@return Error value passed in
- */
- public static final int ERROR_RETURN (String s, int errorVal)
- {
- System.err.println (s);
- return errorVal;
- }
-
- /**
- * Print the string being passed in. Note the behavior will vary
- * depending upon whether debugging is enabled or disabled.
- *@param s a Java String
- */
- public static final void DEBUG (String s)
- {
- if (ACE.debug_)
- System.out.println (s);
- }
-
- /**
- * Flush out any data that may be buffered.
- */
- public static final void FLUSH ()
- {
- System.out.flush ();
- }
-
- /**
- * Set the bits of WORD using BITS as the mask.
- *@param WORD the bits to be set.
- *@param BITS the mask to use.
- *@return The value obtained after setting the bits.
- */
- public static final long SET_BITS (long WORD, long BITS)
- {
- return WORD | BITS;
- }
-
- /**
- * Clear the bits of WORD using BITS as the mask.
- *@param WORD the bits to clear.
- *@param BITS the mask to use.
- *@return The value obtained after clearing the bits.
- */
- public static final long CLR_BITS (long WORD, long BITS)
- {
- return WORD & ~BITS;
- }
-
- /**
- * Check if bits are enabled in WORD.
- *@param WORD the bits to check.
- *@param BIT the bit to check to see if it is enabled or not.
- *@return true if bit is enabled, false otherwise.
- */
- public static final boolean BIT_ENABLED (long WORD, long BIT)
- {
- return (WORD & BIT) != 0;
- }
-
- /**
- * Check if bits are disabled in WORD.
- *@param WORD the bits to check.
- *@param BIT the bit to check to see if it is disabled or not.
- *@return true if bit is disabled, false otherwise.
- */
- public static final boolean BIT_DISABLED (long WORD, long BIT)
- {
- return (WORD & BIT) == 0;
- }
-
- // Debug flag (turn debugging on/off)
- private static boolean debug_ = true;
-
- // Default private constructor to avoid instantiation
- private ACE ()
- {
- }
-}
-
-
diff --git a/java/src/AcceptStrategy.java b/java/src/AcceptStrategy.java
deleted file mode 100644
index e5af43f07f5..00000000000
--- a/java/src/AcceptStrategy.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * AcceptStrategy.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Interface for specifying a passive connection
- * acceptance strategy for a
- * <a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>
- * .
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *
- *<blockquote>
- * This class provides a strategy that manages passive
- * connection setup for an application, and can be extended
- * to define new strategies.
- *</blockquote>
- *
- * @see SvcHandler
- * @see Acceptor
- */
-
-public class AcceptStrategy
-{
- /**
- * Create an instance of Accept Strategy.
- *@param port port number where the server will listen for connections
- *@exception IOException couldn't open port
- */
- AcceptStrategy (int port) throws IOException
- {
- this.open (port);
- }
-
- /**
- * Initialize AcceptStrategy.
- *@param port port number where the server will listen for connections
- *@exception IOException couldn't open port
- */
- public void open (int port) throws IOException
- {
- // Create a new SOCK_Acceptor to accept client connections
- this.sockAcceptor_ = new SOCKAcceptor (port);
- }
-
- /**
- * Accept connections into the SvcHandler. Note that subclasses
- * should overwrite this method to provide a different accept
- * strategy.
- *@param sh Svc Handler in which to accept the connection
- *@exception SocketException Socket error
- *@exception IOException Socket error
- *@return 0
- */
- public int acceptSvcHandler (SvcHandler sh) throws
- SocketException, IOException
- {
- // Create a new stream
- SOCKStream sockStream = new SOCKStream ();
-
- // Block in accept. Returns when a connection shows up
- this.sockAcceptor_.accept (sockStream);
-
- // Set the streams for the new handler
- sh.setHandle (sockStream);
- return 0;
- }
-
- // Our connection acceptance factory
- private SOCKAcceptor sockAcceptor_;
-
-}
diff --git a/java/src/Acceptor.java b/java/src/Acceptor.java
deleted file mode 100644
index 945f170fe38..00000000000
--- a/java/src/Acceptor.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * Acceptor.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-import JACE.ServiceConfigurator.*;
-
-/**
- * <hr>
- * <p><h2>SYNOPSIS</h2>
- *
- * <blockquote>Abstract factory for creating a service handler
- * (<a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>),
- * accepting into the
- * <a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>, and activating the
- * <a href="ACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>.</blockquote>
- *
- * <p><h2>DESCRIPTION</h2>
- *
- * <blockquote>Implements the basic strategy for passively establishing
- * connections with applications. The <tt>Acceptor</tt>
- * is a factory for <tt>SvcHandler</tt> instances, and, by default
- * generates a new <tt>SvcHandler</tt> instance for each connection
- * esablished.</blockquote>
- *
- * <p>
- *
- * <blockquote> The user of this class <em>must</em> provide a
- * reference to a handler factory prior to calling <a
- * href="#accept()"><tt>accept</tt></a>, or an exception will be
- * thrown. The handler factory is identified by the meta-class for
- * the <tt>SvcHandler</tt>, and is typically obtained by calling <a
- * href="java.lang.Class#classForName(java.lang.String)"><tt>Class.classForName("SvcHandler")</tt></a>.
- * </blockquote>
- *
- * <p>
- *
- * <blockquote> TCP is the transport mechanism used, via
- * <a href="ACE.SOCK_SAP.SOCKAcceptor.html#_top_"><tt>SOCKAcceptor</tt></a>,
- * <em>et.al.</em> The SvcHandler is instantiated with a concrete type
- * that performs the application-specific service. </blockquote>
- *
- * <h2>NOTES</h2>
- *
- * <blockquote> This class is not directly related to the
- * <tt>AcceptorStrategy</tt> class.</blockquote>
- *
- *
- * @see java.lang.Class
- * @see JACE.Connection.SvcHandler
- * @see JACE.SOCK_SAP.SOCKAcceptor
- */
-public class Acceptor extends ServiceObject
-{
- /**
- * Create an instance of Acceptor. Default constructor. Note that if
- * an instance is created via this method, <tt>setHandlerFactory</tt>
- * must be called prior to using <tt>accept</tt>.
- *
- * @see JACE.Connection.Acceptor#setHandlerFactory
- */
- public Acceptor ()
- {
- }
-
- /**
- * Create an instance of Acceptor.
- *@param handlerFactory meta-class reference used to create
- * an instance of a SvcHandler when a connection is accepted
- * (typically obtained by calling <tt>Class.classForName</tt>).
- *
- *@see java.lang.Class#forName
- */
- public Acceptor (Class handlerFactory)
- {
- this.handlerFactory_ = handlerFactory;
- }
-
- /**
- * Set the handler factory. This is provided to aid the default
- * no-arg constructor.
- *@param handlerFactory meta-class reference used to create
- * an instance of a SvcHandler when a connection is accepted
- * (typically obtained by calling <tt>Class.forName</tt>).
- *
- *@see java.lang.Class#forName
- */
- public void setHandlerFactory (Class handlerFactory)
- {
- this.handlerFactory_ = handlerFactory;
- }
-
- /**
- * Initialize the Acceptor.
- *@param port TCP port number where the Acceptor will listen for connections
- *@exception IOException socket level exception
- */
- public void open (int port) throws IOException
- {
- this.sockAcceptor_ = new SOCKAcceptor (port);
- }
-
- /**
- * Template method for accepting connections. Delegates operational
- * activities to the following bridge methods:
- * <ul>
- * <li><tt>makeSvcHandler</tt></li>
- * <li><tt>acceptSvcHandler</tt></li>
- * <li><tt>activateSvcHandler</tt></li>
- * </ul>
- *
- * <p>
- *
- * The method first obtains a <tt>SvcHandler</tt> via
- * <tt>makeSvcHandler</tt>, accepts the connection <q>into</q> the
- * handler using <tt>acceptSvcHandler</tt>, and finally turns over
- * control to the handler with <tt>activateSvcHandler</tt>.
- *
- *@exception SocketException socket level error
- *@exception InstantiationException <tt>makeSvcHandler</tt> failure
- *@exception IllegalAccessException <tt>makeSvcHandler</tt> failure
- *@exception IOException socket level error
- */
- public void accept () throws SocketException,
- InstantiationException,
- IllegalAccessException,
- IOException
- {
-
- // Create a Svc_Handler using the appropriate Creation_Strategy
- SvcHandler sh = this.makeSvcHandler ();
-
- // Accept a connection into the SvcHandler using the appropriate
- // Accept_Strategy
- this.acceptSvcHandler (sh);
-
- // Activate the SvcHandler using the appropriate ActivationStrategy
- this.activateSvcHandler (sh);
- }
-
- /**
- * Bridge method for creating a <tt>SvcHandler</tt>. The default is to
- * create a new <SvcHandler>. However, subclasses can override this
- * policy to perform <SvcHandler> creation in any way that they like
- * (such as creating subclass instances of <SvcHandler>, using a
- * singleton, etc.)
- *@return a new instance of the SvcHandler
- *@exception InstantiationException could not create new SvcHandler
- *@exception IllegalAccessException no SvcHandler factory provided
- */
- protected SvcHandler makeSvcHandler ()
- throws InstantiationException, IllegalAccessException
- {
- // Create a new handler for the connection
- return (SvcHandler) handlerFactory_.newInstance ();
- }
-
- /**
- * Bridge method for accepting the new connection into the
- * <tt>SvcHandler</tt>. The default behavior delegates the work to
- * <tt>SOCKAcceptor.accept</tt>. However, subclasses can override this
- * strategy.
- *@param sh SvcHandler in which to accept the connection
- *@return 0
- *@exception SocketException socket level error
- *@exception IOException socket level error
- */
- protected int acceptSvcHandler (SvcHandler sh)
- throws SocketException, IOException
- {
- // Create a new stream
- SOCKStream sockStream = new SOCKStream ();
-
- // Block in accept. Returns when a connection shows up
- this.sockAcceptor_.accept (sockStream);
-
- // Set the streams for the new handler
- sh.setHandle (sockStream);
- return 0;
- }
-
- /**
- * Bridge method for activating a <tt>SvcHandler</tt>. The default
- * behavior of this method is to activate the <tt>SvcHandler</tt> by
- * calling its open() method (which allows the <tt>SvcHandler</tt> to
- * define its own concurrency strategy). However, subclasses can
- * override this strategy to do more sophisticated concurrency
- * activations.
- *@param sh SvcHandler to activate
- *@return 0
- */
- protected int activateSvcHandler (SvcHandler sh)
- {
- sh.open (null);
- return 0;
- }
-
- // Handler class that should be instantiated when a connection is
- // made with a client
- private Class handlerFactory_;
-
- // Our connection acceptance factory
- protected SOCKAcceptor sockAcceptor_;
-}
diff --git a/java/src/ActivateStrategy.java b/java/src/ActivateStrategy.java
deleted file mode 100644
index 882203ad552..00000000000
--- a/java/src/ActivateStrategy.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * ActivateStrategy.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-
-/**
- * <hr>
- *<h2>SYNOPSIS</h2>
- * Bridge supporting activation strategy used by
- * <a href="ACE.Connection.StrategyAcceptor.html#_top_"><tt>StrategyAcceptor</tt></a>
- *
- *<h2>DESCRIPTION</h2>
- * Subclass and overload
- * <a href="#activateSvcHandler(ACE.Connection.SvcHandler)"><tt>activateSvcHandler</tt></a>
- * in order change the activation strategy. Then, submit this subclass to
- * <a href="ACE.Connection.StrategyAcceptor.html#_top_"><tt>StrategyAcceptor</tt></a>
- * as the activation strategy.
- *
- *@see StrategyAcceptor
- */
-public class ActivateStrategy
-{
- /**
- * Activate the Svc Handler. Note that subclasses should overwrite
- * this method to provide a different Activate strategy.
- *@param sh Svc Handler to activate
- *@return zero if success, non-zero for failure
- */
- public int activateSvcHandler (SvcHandler sh)
- {
- sh.open (null);
- return 0;
- }
-}
diff --git a/java/src/AddServiceObjectNode.java b/java/src/AddServiceObjectNode.java
deleted file mode 100644
index aa99c51ebc3..00000000000
--- a/java/src/AddServiceObjectNode.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import JACE.OS.*;
-
-class AddServiceObjectNode extends ParseNode
-{
-
- public AddServiceObjectNode ()
- {
- this.locator_ = new String();
- this.params_ = new String();
- }
-
- /* This should be the class name, fully qualified or in the class path */
- public String locator ()
- {
- return this.locator_;
- }
-
- public String params ()
- {
- return this.params_;
- }
-
- public void params (String params)
- {
- this.params_ = params;
- }
-
- public boolean suspended ()
- {
- return this.suspended_;
- }
-
- public void init(String name, String locator, boolean suspended)
- {
- super.name_ = name;
- this.locator_ = locator;
- this.suspended_ = suspended;
- }
-
- public void apply ()
- {
- ACE.DEBUG("AddServiceObjectNode apply");
-
- if (JACE.ServiceConfigurator.ServiceConfig.initialize(this) == -1)
- ACE.ERROR("Error adding " + this.name_);
- }
-
- String params_;
- String locator_;
- boolean suspended_;
-};
diff --git a/java/src/Blob.java b/java/src/Blob.java
deleted file mode 100644
index 69feef248b3..00000000000
--- a/java/src/Blob.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * Blob.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-public class Blob
-{
- public int open (String filename, String hostname , int port)
- {
- this.filename_ = filename;
- this.hostname_ = hostname;
- this.port_ = port;
- return 0;
- }
-
- public MessageBlock read (int length, int offset)
- {
- // Check if we have a valid length and a valid offset
- if (length < 0 || offset < 0)
- {
- ACE.ERROR ("Blob::read(): Negative length or offset");
- return null;
- }
-
- // Create a Blob Reader
- BlobReader blobReader = new BlobReader (length, offset, this.filename_, this.hostname_, this.port_);
-
- // Receive data
- MessageBlock mb = blobReader.receiveData ();
- if (blobReader.bytesRead () != length)
- return null;
- else
- return mb;
- }
-
- public int write (MessageBlock mb, int length, int offset)
- {
- // Check if we have a valid length and a valid offset
- if (length < 0 || offset < 0)
- ACE.ERROR ("Blob::write(): Negative length or offset");
-
- // Create a Blob Writer
- BlobWriter blobWriter = new BlobWriter (mb, length, offset, this.filename_);
-
- try
- {
- // Connect to the server
- this.connector_.open (this.hostname_, this.port_);
- this.connector_.connect (blobWriter);
- }
- catch (UnknownHostException e)
- {
- ACE.ERROR (e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
-
- return blobWriter.bytesWritten ();
- }
-
- public int close ()
- {
- return 0;
- }
-
- String filename_;
- String hostname_;
- int port_;
- Connector connector_ = new Connector ();
-}
diff --git a/java/src/BlobHandler.java b/java/src/BlobHandler.java
deleted file mode 100644
index ec282bdeaa9..00000000000
--- a/java/src/BlobHandler.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * BlobHandler.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-public abstract class BlobHandler extends SvcHandler
-{
- public BlobHandler (int length, int offset, String filename)
- {
- this.length_ = length;
- this.offset_ = offset;
- this.filename_ = filename;
- }
-
- public abstract int open (Object obj);
-
- protected int length_ = 0;
- protected int offset_ = 0;
- protected String filename_ = null;
-}
-
diff --git a/java/src/BlobReader.java b/java/src/BlobReader.java
deleted file mode 100644
index 7209f3c721f..00000000000
--- a/java/src/BlobReader.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * BlobReader.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-// Reader **************************************************
-
-public class BlobReader
-{
- public BlobReader (int length,
- int offset,
- String filename,
- String hostname,
- int port)
- {
- this.length_ = length;
- this.offset_= offset;
- this.filename_ = filename;
- this.hostname_ = hostname;
- this.port_ = port;
- }
-
-
- public MessageBlock receiveData ()
- {
- String hostname = this.hostname_;
- String filename = this.filename_;
-
- // Check if the filename begins with a "/" and if so, remove it
- // since we are concatenating a "/" to the hostname.
- if (this.filename_.startsWith ("/"))
- filename = this.filename_.substring (1);
-
- hostname = hostname + ":" + this.port_ + "/";
- // System.out.println (hostname + filename);
-
- // Allocate a buffer to hold the offset worth of data
- byte tempBuf [] = new byte [this.offset_];
- // Allocate a buffer to hold the actual data
- byte dataBuf [] = new byte [this.length_];
-
- try
- {
- // Create a URL to fetch the file
- URL url = new URL (this.protocol_ + hostname + filename);
-
- // Get the input stream and pipe it to a DataInputStream
- DataInputStream iStream = new DataInputStream (url.openStream ());
-
- // Read the offset worth of bytes
- iStream.readFully (tempBuf, 0, this.offset_);
-
- // Read length worth of bytes
- iStream.readFully (dataBuf, 0, this.length_);
- }
- catch (MalformedURLException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- // Cache number of bytes read
- this.bytesRead_ = this.length_;
- return new MessageBlock (new String (dataBuf, 0, this.length_));
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int bytesRead ()
- {
- return this.bytesRead_;
- }
-
- private String protocol_ = "http://";
-
- int length_ = 0;
- int offset_= 0;
- String filename_ = null;
- String hostname_ = "localhost";
- int port_ = 80;
-
- int bytesRead_ = 0;
-}
-
-
diff --git a/java/src/BlobWriter.java b/java/src/BlobWriter.java
deleted file mode 100644
index 09cc88a1f9e..00000000000
--- a/java/src/BlobWriter.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * BlobWriter.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.OS.*;
-
-// Writer **************************************************
-
-public class BlobWriter extends BlobHandler
-{
- public BlobWriter (MessageBlock mb,
- int length,
- int offset,
- String filename)
- {
- super (length, offset, filename);
- this.mb_ = mb;
- this.returnCode_ = -1;
-
- }
-
- /*******************************
- * This constructor should be used when using the basic HTTP 1.1
- * authentication scheme
- *******************************/
- public BlobWriter (MessageBlock mb,
- int length,
- int offset,
- String filename,
- String authentication)
- {
- super (length, offset, filename);
- this.mb_ = mb;
- this.returnCode_ = -1;
- this.authentication_ = authentication;
- }
-
-
- public int open (Object obj)
- {
- if (this.sendRequest () != 0)
- {
- ACE.ERROR ("BlobWriter::open():sendRequest failed");
- return -1;
- }
- else if (this.receiveReply () != 0)
- {
- ACE.ERROR ("BlobWriter::open():receiveReply failed");
- return -1;
- }
- return 0;
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int bytesWritten ()
- {
- return this.bytesWritten_;;
- }
-
- protected int sendRequest ()
- {
- // Check for sanity -- check if we have any data to send.
- if (this.offset_+ this.length_ > this.mb_.length ())
- {
- ACE.ERROR ("BlobWriter::sendRequest():Invalid offset/length");
- return -1;
- }
-
- if (this.sendHeader () == -1)
- {
- ACE.ERROR ("BlobWriter::sendHeader failed.");
- return -1;
- }
- else
- if (this.sendData () == -1)
- {
- ACE.ERROR ("BlobWriter::sendData failed.");
- return -1;
- }
- return 0;
- }
-
- // Send the header
- protected int sendHeader ()
- {
- String filename = this.filename_;
- // Check if the filename begins with a "/" and if it doesn't, add it
- if (!this.filename_.startsWith ("/"))
- filename = "/" + this.filename_;
-
- // Create the header, store the actual length in mesglen
- String mesg = this.requestPrefix_ + " " + filename + " " + this.requestSuffix_;
-
- if (this.authentication_ != null)
- mesg += "Authorization: Basic " + JACE.Connection.HTTPHelper.EncodeBase64(this.authentication_) + '\n';
-
- mesg += "Content-length: " + this.length_ + "\n";
-
- try
- {
- if (this.peer ().send (mesg) < 0)
- {
- ACE.ERROR ("Error sending request");
- return -1;
- }
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- return -1;
- }
- return 0;
- }
-
- // Send the data
- protected int sendData ()
- {
- // Get the actual data to send
- String data = this.mb_.base ().substring (this.offset_,
- this.offset_ + this.length_);
-
-
- try
- {
- // System.out.println (data);
- // Now send the data
- if (this.peer ().send (data) != this.length_)
- {
- ACE.ERROR ("Error sending file");
- return -1;
- }
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- return -1;
- }
- this.bytesWritten_ = this.length_;
- return 0;
- }
-
-
- protected int receiveReply ()
- {
- System.out.println("Waiting for reply");
-
- // Receive the reply from the server
- StringBuffer reply = new StringBuffer (1024);
-
- try
- {
- if (this.peer ().recv (reply) < 0)
- {
- ACE.ERROR ("Error receiving reply from server");
- return -1;
- }
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
-
- String s = reply.toString ();
-
- int index = -1;
- // Now parse the reply to see if it was a success or a failure
- if ((index = s.indexOf (replyPrefix_)) == -1)
- {
- ACE.ERROR ("Error receiving reply from server");
- return -1;
- }
-
- int codeIndex = index + replyPrefix_.length () + 1;
-
- // Assume code is a 3 digit number
- String codeString = s.substring (codeIndex, codeIndex + 3);
-
- returnCode_ = (new Integer (codeString)).intValue ();
- // System.out.println (code);
-
- if (returnCode_ >= 200 && returnCode_ < 300) { // Check if everything went smoothly
- System.out.println("We got the goodies!");
- return 0;
- } else
- return -1;
- }
-
- public int returnCode ()
- {
- return this.returnCode_;
- }
-
- protected String authentication_ = null;
- protected String protocol_ = "http://";
- protected int bytesWritten_ = 0;
- protected MessageBlock mb_ = null;
- protected String requestPrefix_ = "PUT";
- protected String requestSuffix_ = "HTTP/1.0\n";
- protected String replyPrefix_ = "HTTP/1.0";
- protected int returnCode_;
-}
-
-
diff --git a/java/src/ClassNameGenerator.java b/java/src/ClassNameGenerator.java
deleted file mode 100644
index 0be175c5275..00000000000
--- a/java/src/ClassNameGenerator.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ClassNameGenerator.java
- *
- * Given a locator string which may specify a class name, this generates as many possible locations for that
- * class file as possible. This is needed when trying to infer a class name from a C++ DLL line in the
- * svc.conf file. Implements the Enumeration interface. A variety of questionable tactics are
- * used.
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import java.util.*;
-import JACE.OS.*;
-
-public class ClassNameGenerator implements Enumeration
-{
- /**
- * Constructor
- * @param locator Locator string -- approximate class name
- */
- public ClassNameGenerator (String locator)
- {
- this.locator_ = locator;
- this.current_ = 0;
- this.suggestions_ = new Vector();
-
- this.makeSuggestions();
- }
-
- /**
- * More unseen possibilities?
- */
- public boolean hasMoreElements()
- {
- return this.current_ < this.suggestions_.size();
- }
-
- /**
- * Get the next string
- */
- public Object nextElement()
- {
- return this.suggestions_.elementAt(this.current_++);
- }
-
- /**
- * Take away things underscores, adjust capitalization. This
- * makes a name more like a Java class name
- */
- String makeJavaName(String oldName)
- {
- StringTokenizer tok = new StringTokenizer(oldName, "_");
- String result = new String();
-
- while (tok.hasMoreTokens()) {
- String token = tok.nextToken();
-
- if (token.length() > 0) {
-
- result += (Character.toUpperCase(token.charAt(0)) + token.substring(1));
- }
- }
-
- return result;
- }
-
-
- /**
- * Generate the suggestions
- */
- void makeSuggestions()
- {
- String slash = new String(System.getProperty("file.separator"));
-
- // Discard things like .shobj
- if ((this.locator_.charAt(0) == '.') && (this.locator_.charAt(1) != '.')) {
- int firstslash = this.locator_.indexOf(slash);
- if (firstslash > 0)
- this.locator_ = this.locator_.substring(firstslash + 1);
- }
-
- // Find the last directory separator and the colon (inbetween
- // these two is the last directory name, and by our convention
- // this should be the class name)
- int lastSlash = this.locator_.lastIndexOf(slash);
- int colon = this.locator_.lastIndexOf(":");
-
- ACE.DEBUG("Working with " + this.locator_ + " " +
- lastSlash + " " + colon);
-
- // Best bet first:
- // Locator string is a path, and the last directory name is the class
- // name
- String lastDir = new String(this.locator_.substring(lastSlash + 1,
- colon));
-
- // Save any other path info for later tries
- String path = null;
- if (lastSlash >= 0)
- path = this.locator_.substring(0, lastSlash + 1);
-
- int tryNum = 0;
-
- if (lastDir.length() > 0) {
-
- // Add this try
- this.suggestions_.addElement(lastDir);
-
- if (path != null)
- this.suggestions_.addElement(path + lastDir);
-
- // Second try:
- // Same as the first, but changed to the Java convention for class names:
- // Begins with a capital letter, capital letters for new words rather
- // than underscores.
-
- String try2 = this.makeJavaName(lastDir);
-
- this.suggestions_.addElement(try2);
- if (path != null)
- this.suggestions_.addElement(path + try2);
- }
-
- // Third try:
- // After the colon, the name of the method that created instances of the
- // class in C++ may contain the class name. Maybe in the format of
- // make_classname, etc.
-
- String lastWord = new String(this.locator_.substring(colon + 1));
-
- if (lastWord.length() > 0) {
-
- // Try the word after the colon, too
- this.suggestions_.addElement(lastWord);
- if (path != null)
- this.suggestions_.addElement(path + lastWord);
-
- String try2 = this.makeJavaName(lastWord);
-
- this.suggestions_.addElement(try2);
- if (path != null)
- this.suggestions_.addElement(path + try2);
-
- int make = lastWord.indexOf("make");
- if (make >= 0) {
-
- make += 4;
- String makeTry = new String(lastWord.substring(make));
-
- if (makeTry.length() > 0) {
-
- this.suggestions_.addElement(makeTry);
- if (path != null)
- this.suggestions_.addElement(path + makeTry);
-
- String try3 = this.makeJavaName(makeTry);
-
- this.suggestions_.addElement(try3);
- if (path != null)
- this.suggestions_.addElement(path + try3);
- }
- }
- }
-
- }
-
- String locator_;
- Vector suggestions_;
-
- int current_;
-};
-
-
diff --git a/java/src/ClassReader.java b/java/src/ClassReader.java
deleted file mode 100644
index c10c00b061c..00000000000
--- a/java/src/ClassReader.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ClassReader.java
- *
- *@author Everett Anderson
- *
- *@see JACE.ServiceConfigurator
- *@see JACE.ServiceConfigurator.ServiceLoader
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import JACE.OS.*;
-import java.io.*;
-import java.util.*;
-
-/**
- * <hr>
- * <p><b>TITLE</b><br>
- * Given a classfile name, this determines the qualified class name
- * of what's inside (pacakage and class name together). It is necessary
- * when users want to dynamically load classes, but don't provide the
- * full name in svc.conf.
- */
-
-public class ClassReader
-{
- // Types found in classfiles
- public static final byte CONSTANT_Class = 7;
- public static final byte CONSTANT_Fieldref = 9;
- public static final byte CONSTANT_Methodref = 10;
- public static final byte CONSTANT_InterfaceMethodref = 11;
- public static final byte CONSTANT_String = 8;
- public static final byte CONSTANT_Integer = 3;
- public static final byte CONSTANT_Float = 4;
- public static final byte CONSTANT_Long = 5;
- public static final byte CONSTANT_Double = 6;
- public static final byte CONSTANT_NameAndType = 12;
- public static final byte CONSTANT_Utf8 = 1;
-
- /** Returns a string that is the qualified class name of the
- * given file. It returns null if there are any problems.
- *
- *@param fileName File to examine
- *
- *@return String that's the qualified class name of the
- * given file (null on error)
- */
- public static String getClassName(String fileName)
- {
- try {
-
- // Open the .class file
- FileInputStream fis = new FileInputStream(fileName);
-
- DataInputStream dis = new DataInputStream(fis);
-
- // Skip magic number and version numbers
- dis.skipBytes(8);
-
- // Find out how many entries are in the constant pool table
- int count = dis.readUnsignedShort();
-
- // Hash table to hold the text entries (possibilities for
- // the class name)
- Hashtable ht = new Hashtable();
-
- // Vector that holds the index of the class name for each
- // class record (the vector is indexed by placement in the
- // table)
- Vector vt = new Vector(count);
- Integer noValue = new Integer(-1);
- int type;
-
- // Scan through all the entries
- for (int i = 1; i < count; i++) {
-
- // Read what type of entry this is
- type = dis.readUnsignedByte();
-
- switch (type) {
-
- case CONSTANT_Class:
- // Save the index of the class name
- vt.addElement(new Integer(dis.readUnsignedShort()));
- break;
- case CONSTANT_Fieldref:
- case CONSTANT_Methodref:
- case CONSTANT_InterfaceMethodref:
- case CONSTANT_Integer:
- case CONSTANT_Float:
- case CONSTANT_NameAndType:
- // Skip the data
- vt.addElement(noValue);
- dis.skipBytes(4);
- break;
- case CONSTANT_String:
- // Skip the data
- vt.addElement(noValue);
- dis.skipBytes(2);
- break;
- case CONSTANT_Long:
- case CONSTANT_Double:
- // Skip the data
- vt.addElement(noValue);
- dis.skipBytes(8);
- // These take up two spots in the table
- i++;
- break;
- case CONSTANT_Utf8:
- vt.addElement(noValue);
- // Save the text in the hash table
- ht.put(new Integer(i), new String(dis.readUTF()));
- break;
- default:
- ACE.DEBUG("Unknown type: " + type);
- break;
-
- }
-
- }
-
- // Skip the access flags
- dis.skipBytes(2);
-
- // Get index in table of this class
- int classIdx = dis.readUnsignedShort();
-
- // Get index in the table of the name of this class
- Integer idx = (Integer)vt.elementAt(classIdx - 1);
-
- // Put the result in period separated notation
- String result = new String(((String)ht.get(idx)).replace('/', '.'));
-
- return result;
-
- } catch (IOException e) {
- ACE.ERROR("" + e);
- return null;
- }
- }
-}
diff --git a/java/src/Condition.java b/java/src/Condition.java
deleted file mode 100644
index d0b5e10a84e..00000000000
--- a/java/src/Condition.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Condition.java
- *
- *@author Irfan Pyarali
- *
- *************************************************/
-package JACE.Concurrency;
-
-import JACE.ASX.TimeoutException;
-import JACE.ASX.TimeValue;
-
-/**
- * <hr>
- * <h2>TITLE</h2>
- *<blockquote>
- * Abstraction for <em>traditional</em>
- * condition variable
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * This condition variable allows the use of one
- * mutex between multiple conditions.
- * This implementation is based on the C++ version of ACE.
- *</blockquote>
- */
-public class Condition
-{
- /**
- * Default constructor
- *@param Mutex for synchronization
- */
- public Condition (Mutex mutex)
- {
- mutex_ = mutex;
- }
-
- /**
- * Wait for condition to become signaled.
- *@exception InterruptedException exception during wait
- */
- public void Wait ()
- throws InterruptedException
- {
- waiters_++;
-
- try
- {
- mutex_.release();
- semaphore_.acquire ();
- mutex_.acquire ();
- }
- finally
- {
- waiters_--;
- }
- }
-
- /**
- * TimedWait for condition to become signaled. Note that the
- * given TimeValue is an absolute time, not a relative time.
- *
- *@param tv Absolute time to wait until before timing out
- *@exception TimeoutException wait timed out exception
- *@exception InterruptedException exception during wait
- */
- public void Wait (TimeValue tv)
- throws TimeoutException, InterruptedException
- {
- waiters_++;
-
- try
- {
- mutex_.release();
-
- semaphore_.acquire (tv);
-
- mutex_.acquire (tv);
- }
- finally
- {
- waiters_--;
- }
- }
-
- /**
- * Signal condition. Wake one waiter (if any).
- */
- public void signal ()
- {
- if (waiters_ > 0)
- semaphore_.release ();
- }
-
- /**
- * Signal condition. Wake up all waiters (if any).
- */
- public void broadcast ()
- {
- for (int i = waiters_; i > 0; i--)
- semaphore_.release ();
- }
-
- /**
- * Accessor to lock
- *@return Mutex
- */
- public Mutex mutex ()
- {
- return mutex_;
- }
-
- private int waiters_;
- private Semaphore semaphore_ = new Semaphore (0);
- private Mutex mutex_;
-
-}
diff --git a/java/src/Connector.java b/java/src/Connector.java
deleted file mode 100644
index 7393ea486e0..00000000000
--- a/java/src/Connector.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * Connector.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-import JACE.ServiceConfigurator.*;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Abstract factory for connecting a
- * (<a href="JACE.Connection.SvcHandler.html"><tt>SvcHandler</tt></a>),
- * to an application.
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * Implements the basic strategy for actively establishing connections
- * with applications. The <tt>Connector</tt> establishes the connection,
- * passing it on to a <tt>SvcHandler</tt> instance, and handing over
- * control to that instance.
- *<p>
- * TCP is the transport mechanism used, via
- * <a href="JACE.SOCK_SAP.SOCKConnector.html#_top_"><tt>SOCKConnector</tt></a>.
- *</blockquote>
- *
- *<h2>NOTES</h2>
- *<blockquote>
- * This class, as currently implemented, does not work like its C++ counterpart.
- * Future versions are expected to rectify this discrepancy.
- *</blockquote>
- *
- *@see SOCKConnector
- *@see SvcHandler
- */
-public class Connector extends ServiceObject
-{
- /**
- * Create a Connector. Do nothing constructor. Allows user to
- * call <a href="#open(java.lang.String)">open</a>() later.
- */
- public Connector ()
- {
- }
-
- /**
- * Create a Connector passing in server hostname and port
- * number, effectively shorthand for calling
- * <a href="#open(java.lang.String)">open</a>().
- *@param hostname server hostname
- *@param port server port number
- */
- public Connector (String hostname, int port)
- {
- this.open (hostname, port);
- }
-
- /**
- * Initialize the Connector passing in server hostname and port
- * number. Note that no connection attempt is made.
- *@param hostname server hostname
- *@param port server port number
- */
- public void open (String hostname, int port)
- {
- this.hostname_ = hostname;
- this.port_ = port;
- }
-
- /**
- * Connect to the server.
- *@param sh Svc Handler to use to handle the connection
- *@exception UnknownHostException Bad host
- *@exception SocketException Socket error
- *@exception InstantiationException Couldn't create new SOCKConnector
- *@exception IllegalAccessException No strategy available
- *@exception IOException Socket error
- */
- public void connect (SvcHandler sh) throws UnknownHostException,
- SocketException,
- InstantiationException,
- IllegalAccessException,
- IOException
- {
- // Make a connection using the appropriate Connection_Strategy
- this.connectSvcHandler (sh);
-
- // Activate the Svc_Handler using the appropriate Activation_Strategy
- this.activateSvcHandler (sh);
- }
-
- /**
- * Bridge method for making a new connection. The default behavior
- * creates a new SOCKConnector and then calls setHandle() on the
- * <SvcHandler> that was passed in. Subclasses can override this
- * strategy, if needed.
- *@param sh Svc Handler to use to handle the connection
- *@return 0
- *@exception SocketException Socket error
- *@exception IOException Socket error
- */
- protected int connectSvcHandler (SvcHandler sh) throws
- SocketException, IOException
- {
- // Create a new stream
- SOCKStream sockStream = new SOCKStream ();
-
- // Create a SOCK_Connector (note the constructor does the connect for us)
- this.sockConnector_ = new SOCKConnector (sockStream,
- this.hostname_,
- this.port_);
- ACE.DEBUG ("Connected to " +
- sockStream.socket ().getInetAddress ());
-
- // Set the streams for the new handler
- sh.setHandle (sockStream);
- return 0;
- }
-
- /**
- * Bridge method for activating a <SvcHandler>. The default
- * behavior of this method is to activate the <SvcHandler> by
- * calling its open() method (which allows the SVC_HANDLER to define
- * its own concurrency strategy). However, subclasses can override
- * this strategy to do more sophisticated concurrency activations.
- *@param sh Svc Handler to activate
- *@return 0
- */
- protected int activateSvcHandler (SvcHandler sh)
- {
- sh.open (null);
- return 0;
- }
-
-
- // Port server is listening on
- private int port_;
-
- // Server hostname
- private String hostname_;
-
- // Our connection factory
- private SOCKConnector sockConnector_;
-}
diff --git a/java/src/CreationStrategy.java b/java/src/CreationStrategy.java
deleted file mode 100644
index f929ef86204..00000000000
--- a/java/src/CreationStrategy.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * CreationStrategy.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Defines the interface for specifying a creation strategy for a
- * <a href="ACE.Connection.SvcHandler.html#_top_"><tt>SvcHandler</tt></a> to the
- * <a href="ACE.Connection.StrategyAcceptor.html#_top_"><tt>StrategyAcceptor</tt></a>.
- *</blockquote>
- *
- * <p><b>DESCRIPTION</b><br>
- *<blockquote>
- * The default behavior is to make a new SvcHandler. However,
- * subclasses can override this strategy to perform SvcHandler
- * creation in any way that they like (such as creating subclass
- * instances of SvcHandler, using a singleton, dynamically
- * linking the handler, etc.).
- *</blockquote>
- *
- *@see SvcHandler
- *@see StrategyAcceptor
- *@see AcceptStrategy
- *@see ActivateStrategy
- */
-public class CreationStrategy
-{
- /**
- * Create an instance of Creation Strategy.
- *@param handlerFactory Svc Handler factory that is used to create
- * an instance of a Svc Handler
- */
- public CreationStrategy (Class handlerFactory)
- {
- this.handlerFactory_ = handlerFactory;
- }
-
- /**
- * Create a new SvcHandler. Note that subclasses should override
- * this method to provide a new creation strategy.
- *@return reference to a new instance of the SvcHandler (or subclass)
- *@exception InstantiationException Unable to instantiate.
- *@exception IllegalAccessException No handler factory available.
- */
- public SvcHandler makeSvcHandler () throws InstantiationException,
- IllegalAccessException
- {
- // Create a new Svc_Handler
- return (SvcHandler) handlerFactory_.newInstance ();
- }
-
- private Class handlerFactory_;
-}
diff --git a/java/src/EventHandler.java b/java/src/EventHandler.java
deleted file mode 100644
index 30f5bb1dba4..00000000000
--- a/java/src/EventHandler.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Reactor
- *
- * = FILENAME
- * EventHandler.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Reactor;
-
-import JACE.ASX.TimeValue;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Provides an abstract interface for handling timer events.
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * Classes implementing this interface handle a timer's
- * expiration.
- *</blockquote>
- *
- * <h2>NOTES</h2>
- *<blockquote>
- * Users of C++ ACE will notice that this defines a substantially
- * smaller interface than the C++ counterpart. Signal events are
- * absent due to the complete absence of this feature from Java itself.
- * Moreover, at this point
- * there is still some question regarding whether or not the I/O
- * portion will make any sense or fit into the Java model for I/O.
- *</blockquote>
- *
- *@see TimerQueue
- *@see JACE.Reactor
- */
-public interface EventHandler
-{
- /**
- * Called when timer expires.
- *@param tv Time Value at which the event occured
- *@param obj An arbitrary object that was passed to the Timer Queue
- * (Asynchronous Completion Token)
- */
- public int handleTimeout (TimeValue tv, Object obj);
-}
-
-// Note that more methods will be added as needed
diff --git a/java/src/GetOpt.java b/java/src/GetOpt.java
deleted file mode 100644
index 2bf5d27c406..00000000000
--- a/java/src/GetOpt.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Misc
- *
- * = FILENAME
- * GetOpt.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Misc;
-
-import java.io.*;
-import java.util.Hashtable;
-import java.util.StringTokenizer;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Iterator for parsing command-line arguments.
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * This version of `get_opt' appears to the caller like standard
- * Unix `get_opt' but it behaves differently for the user, since
- * it allows the user to intersperse the options with the other
- * arguments.
- *
- * <p> As `get_opt' works, it permutes the elements of `argv' so that,
- * when it is done, all the options precede everything else. Thus
- * all application programs are extended to handle flexible argument
- * order.
- *</blockquote>
- *
- */
-public class GetOpt
-{
- /**
- * Constructor
- *@param args command line arguments
- *@param optstring string containing the legitimate option
- * characters. A colon in optstring means that the previous character
- * is an option that wants an argument which is then taken from the
- * rest of the current args-element. Here is an example of what
- * optstring might look like: "c:dP:p".
- */
- public GetOpt (String[] args, String optstring)
- {
- // Cache the arguments
- this.args_ = args;
- this.hasArg_ = false;
-
- // Build the arg hashtable
- this.buildArgTable (optstring);
- }
-
- /**
- * Scan elements specified in optstring for next option flag.
- *@return The character corresponding to the next flag.
- */
- public int next ()
- {
- if (this.args_ == null)
- return -1;
-
- if (this.index_ < this.args_.length)
- {
- String arg = this.args_[this.index_++];
-
- // Make sure flag starts with "-"
- if (!arg.startsWith ("-"))
- return -1;
-
- // Check if there is more than one character specified as flag
- if (arg.length () > 2)
- return -1;
-
- // So far so good
- // Check if the flag is in the arg_table and if it is get the
- // associated binding.
- Character c = (Character) this.argTable_.get (new Character (arg.charAt (1)));
- if (c == null)
- return -1;
-
- if (c.charValue () == '#')
- {
- this.hasArg_ = false;
- return arg.charAt (1);
- }
- else if (c.charValue () == ':')
- {
- this.hasArg_ = true;
- return arg.charAt (1);
- }
- else // This should not happen
- return -1;
- }
- return -1;
- }
-
- /**
- * Get the argument (if any) associated with the flag.
- *@return the argument associated with the flag.
- */
- public String optarg ()
- {
- if (this.hasArg_)
- return this.args_[this.index_++];
- else
- return null;
- }
-
- // Build the argument table
- private void buildArgTable (String s)
- {
- this.argTable_ = new Hashtable ();
- StringTokenizer tokens = new StringTokenizer (s, ":");
- while (tokens.hasMoreTokens ())
- {
- // Get the next token
- String t = tokens.nextToken ();
-
- // First add all flags except the one with ":" after it
- // Note "#" is an arbitrary character we use to distinguish
- // the two cases
- for (int i = 0; i < t.length () - 1; i++)
- this.argTable_.put (new Character (t.charAt (i)),
- new Character ('#'));
-
- // Now Add the flag just before ":" to the arg_table
- this.argTable_.put (new Character (t.charAt (t.length () - 1)),
- new Character (':'));
- }
- }
-
- private String [] args_;
- // Copy of the args passed in
-
- private boolean hasArg_;
- // Indicator that the flag has an argument following it
-
- private int index_;
- // Index into the array of arguments
-
- private Hashtable argTable_;
- // Table of flags that take arguments after them
-}
diff --git a/java/src/HTTPHelper.java b/java/src/HTTPHelper.java
deleted file mode 100644
index d946913693c..00000000000
--- a/java/src/HTTPHelper.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package JACE.Connection;
-
-import JACE.OS.*;
-// Collection of various methods that have to do with HTTP
-
-public class HTTPHelper
-{
- // Encoding and decoding yadda
- public static String Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
- // Basic encoding used in the HTTP 1.1 RFC. This doesn't
- // put the string "Basic " at the beginning of the return
- // string. Adapted from James' JAWS HTTP_Helpers code.
- // Returns null on error.
- public static String EncodeBase64 (String secret)
- {
- StringBuffer output = new StringBuffer();
-
- // Index of the input string
- int inidx = 0;
-
- // character value
- int c;
-
- int char_count = 0;
- int bits = 0;
- boolean error = false;
-
- while (inidx < secret.length())
- {
- c = secret.charAt(inidx++);
-
- // This will mess up internationalization. I wonder if it is really
- // necessary for HTTP?
- if (c > 255)
- {
- ACE.DEBUG ("encountered char > 255 (decimal %d): " + c);
- error = true;
- break;
- }
-
- bits += c;
- char_count++;
-
- if (char_count == 3)
- {
- output.append(HTTPHelper.Alphabet.charAt(bits >> 18));
- output.append(HTTPHelper.Alphabet.charAt((bits >> 12) & 0x3f));
- output.append(HTTPHelper.Alphabet.charAt((bits >> 6) & 0x3f));
- output.append(HTTPHelper.Alphabet.charAt(bits & 0x3f));
-
- bits = 0;
- char_count = 0;
- }
- else
- bits <<= 8;
- }
-
- if (!error)
- {
- if (char_count != 0)
- {
- bits <<= 16 - (8 * char_count);
- output.append(HTTPHelper.Alphabet.charAt(bits >> 18));
- output.append(HTTPHelper.Alphabet.charAt((bits >> 12) & 0x3f));
-
- if (char_count == 1)
- {
- output.append("==");
- }
- else
- {
- output.append(HTTPHelper.Alphabet.charAt((bits >> 6) & 0x3f));
- output.append('=');
- }
- }
-
- return output.toString();
- }
-
- // Returns null on error
- return null;
- }
-};
diff --git a/java/src/INETAddr.java b/java/src/INETAddr.java
deleted file mode 100644
index 8d16c46c6b3..00000000000
--- a/java/src/INETAddr.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.SOCK_SAP
- *
- * = FILENAME
- * INETAddr.java
- *
- *@author Chris Cleeland
- *
- *************************************************/
-package JACE.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-
-/**
- * <hr>
- * <p><b>TITLE</b><br>
- * Defines an endpoint of a connection, encapsulating host and port.
- * This is only a part-way implementation of C++ ACE's ACE_INET_Addr.
- *
- * <p><b>LIMITATIONS</b><br>
- * Currently the class is very limited in its capabilities; it will
- * be expanded in future revisions of ACE.
- */
-public class INETAddr // extends Addr
-{
- private InetAddress addr_;
- private int port_ = 0;
- /**
- */
- public INETAddr ()
- {
- // Do nothing constructor
- }
-
- /**
- * Create an INETAddr from a port/hostname
- *@param port port number to connect with server at
- *@param hostname hostname of the server
- */
- public INETAddr (int port, String hostname) throws UnknownHostException
- {
- super();
- port_ = port;
- addr_ = InetAddress.getByName(hostname);
- // Should really use getAllByName(),
- // but I don't think we do that in
- // C++ ACE, even.
- }
-
- /**
- * Create an INETAddr from an address.
- * @param address an address in the form "ip-number:port-number", <em>e.g.</em> <pre>tango.cs.wustl.edu:1234</pre> or <pre>128.252.166.57:1234</pre>; if no ':' is present address is assumed to be <b>INADDR_ANY</b> and address contains only the port number
- * @throws UnknownHostException
- */
- public INETAddr (String address) throws UnknownHostException
- {
- int colon = address.indexOf(':');
- if (colon != 0)
- {
- addr_ = InetAddress.getByName(address.substring(0, colon));
- address = address.substring(colon+1);
- }
-
- port_ = Integer.parseInt(address);
- }
-
- /**
- * Return the name of the host.
- */
- public String getHostName()
- {
- return addr_.getHostName();
- }
-
- /**
- * Return the dotted Internet address.
- */
- public String getHostAddr()
- {
- return addr_.toString();
- }
-
- /**
- * Return the port number.
- */
- public int getPortNumber()
- {
- return port_;
- }
-
- public String toString()
- {
- return getHostAddr() + Integer.toString(port_);
- }
-}
diff --git a/java/src/IOCntlCmds.java b/java/src/IOCntlCmds.java
deleted file mode 100644
index 2469428a3a6..00000000000
--- a/java/src/IOCntlCmds.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TaskFlags.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-public abstract class IOCntlCmds
-{
- /** Set the low water mark. */
- public static final int SET_LWM = 1;
-
- /** Get the low water mark. */
- public static final int GET_LWM = 2;
-
- /** Set the high water mark. */
- public static final int SET_HWM = 3;
-
- /** Get the high water mark. */
- public static final int GET_HWM = 4;
-
- /** Link modules */
- public static final int MOD_LINK = 5;
-
- /** Unlink modules */
- public static final int MOD_UNLINK = 6;
-
-}
diff --git a/java/src/IOCntlMsg.java b/java/src/IOCntlMsg.java
deleted file mode 100644
index 8b69310c4f7..00000000000
--- a/java/src/IOCntlMsg.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * IOCntlMsg.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Data format for IOCTL messages
- *</blockquote>
- */
-public class IOCntlMsg
-{
-
- // = Initialization method.
-
- /*
- * Initialize the control message.
- *@param c IOCntlCmd for the control message. Note that this should
- * be of type IOCntlCmds
- */
- public IOCntlMsg (int c)
- {
- this.cmd_ = c;
- }
-
- // = Get/set methods
-
- /*
- * Get the command.
- *@return the command.
- */
- public int cmd ()
- {
- return this.cmd_;
- }
-
- /*
- * Set the command.
- *@param c the command.
- */
- public void cmd (int c)
- {
- this.cmd_ = c;
- }
-
- /*
- * Get the count.
- *@return the count.
- */
- public int count ()
- {
- return this.count_;
- }
-
- /*
- * Set the count.
- *@param c the count.
- */
- public void count (int c)
- {
- this.count_ = c;
- }
-
- /*
- * Get the error.
- *@return the error.
- */
- public int error ()
- {
- return this.error_;
- }
-
- /*
- * Set the error.
- *@param e the error.
- */
- public void error (int e)
- {
- this.error_ = e;
- }
-
- /*
- * Get the return value.
- *@return the return value.
- */
- public int rval ()
- {
- return this.rval_;
- }
-
- /*
- * Set the return value.
- *@param r the return value.
- */
- public void rval (int r)
- {
- this.rval_ = r;
- }
-
- public String toString ()
- {
- return (new Integer (this.cmd_)).toString ();
- }
-
- private int cmd_;
- // Command.
-
- private int count_;
- // Count.
-
- private int error_;
- // Error.
-
- private int rval_;
- // Return value
-}
diff --git a/java/src/JACE.DSP b/java/src/JACE.DSP
deleted file mode 100644
index 8c564995235..00000000000
--- a/java/src/JACE.DSP
+++ /dev/null
@@ -1,292 +0,0 @@
-# Microsoft Developer Studio Project File - Name="JACE" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 5.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=JACE - Java Virtual Machine 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 "JACE.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 "JACE.MAK" CFG="JACE - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "JACE - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "JACE - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "JACE - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\classes-r\"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "JACE - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\classes\"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "JACE - Java Virtual Machine Release"
-# Name "JACE - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\Acceptor.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\AcceptStrategy.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ACE.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ActivateStrategy.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\AddServiceObjectNode.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Blob.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\BlobHandler.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\BlobReader.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\BlobWriter.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ClassNameGenerator.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ClassReader.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Condition.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Connector.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\CreationStrategy.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\EventHandler.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\GetOpt.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\HTTPHelper.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\INETAddr.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOCntlCmds.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\IOCntlMsg.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\MessageBlock.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\MessageQueue.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\MessageType.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Module.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Mutex.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\OS.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ParseNode.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ProfileTimer.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\RemoveNode.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ResumeNode.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\RWMutex.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Semaphore.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ServiceConfig.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ServiceLoader.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ServiceObject.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ServiceObjectRecord.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ServiceRecord.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ServiceRepository.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCKAcceptor.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCKConnector.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\SOCKStream.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\StrategyAcceptor.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Stream.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\StreamHead.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\StreamTail.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\SuspendNode.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\SvcHandler.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Task.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\TaskFlags.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ThreadManager.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\ThruTask.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\TimedWait.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\TimeoutException.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\TimerQueue.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\TimeValue.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/src/JACE.DSW b/java/src/JACE.DSW
deleted file mode 100644
index 1adb106b259..00000000000
--- a/java/src/JACE.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: "JACE"=.\JACE.DSP - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/java/src/Makefile b/java/src/Makefile
deleted file mode 100644
index ebdf2329861..00000000000
--- a/java/src/Makefile
+++ /dev/null
@@ -1,153 +0,0 @@
-# Makefile
-# $Id$
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ..
-CLASSDIR = $(JACE_WRAPPER)/classes
-DOCDIR = $(JACE_WRAPPER)/doc
-
-JC = javac
-JCOPTS = -g -d $(CLASSDIR)
-JD = javadoc
-JDOPTS = -d $(DOCDIR)
-
-COMPILE.java = $(JC) $(JCOPTS) $(filter %.java,$?)
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all: asx os concurrency connection timers misc reactor svcconfig socksap
-
-pkg_all = $(pkg_asx_timestuff) $(pkg_asx) $(pkg_os) $(pkg_concurrency) \
- $(pkg_connection) $(pkg_timers) $(pkg_misc) $(pkg_reactor) \
- $(pkg_socksap) $(pkg_svcconfig)
-
-doc:
- $(JD) $(JDOPTS) $(addsuffix .java,$(pkg_all)) $(packages)
-
-clean:
- find ${JACE_WRAPPER}/classes/JACE -name '*.class' -print | xargs ${RM}
-
-docclean:
- find ${JACE_WRAPPER}/doc -name '*.html' -print | xargs ${RM}
-
-realclean: clean docclean
-
-
-pkg_asx_timestuff = \
- TimeValue \
- TimeoutException \
- TimedWait
-
-asx_timestuff: $(addsuffix .java,$(pkg_asx_timestuff))
- $(COMPILE.java)
-
-pkg_asx = \
- IOCntlCmds \
- IOCntlMsg \
- Task \
- TaskFlags \
- ThruTask \
- Module \
- MessageType \
- MessageBlock \
- MessageQueue \
- StreamHead \
- StreamTail \
- Stream
-
-asx: os asx_timestuff reactor concurrency $(addsuffix .java,$(pkg_asx))
- $(COMPILE.java)
-
-pkg_os = \
- OS \
- ACE
-
-os: $(addsuffix .java,$(pkg_os))
- $(COMPILE.java)
-
-pkg_concurrency = \
- Condition \
- Mutex \
- RWMutex \
- Semaphore \
- ThreadManager \
- Token
-
-concurrency: $(addsuffix .java,$(pkg_concurrency)) asx_timestuff os
- $(COMPILE.java)
-
-pkg_connection = \
- SvcHandler \
- Acceptor \
- Connector \
- AcceptStrategy \
- ActivateStrategy \
- CreationStrategy \
- StrategyAcceptor \
- Blob \
- BlobHandler \
- BlobReader \
- BlobWriter \
- HTTPHelper
-
-connection: os socksap svcconfig $(addsuffix .java,$(pkg_connection))
- $(COMPILE.java)
-
-pkg_timers = \
- ProfileTimer
-
-timers: $(addsuffix .java,$(pkg_timers))
- $(COMPILE.java)
-
-pkg_misc = \
- GetOpt
-
-misc: $(addsuffix .java,$(pkg_misc))
- $(COMPILE.java)
-
-pkg_reactor = \
- EventHandler \
- TimerQueue
-
-reactor: asx_timestuff $(addsuffix .java,$(pkg_reactor))
- $(COMPILE.java)
-
-pkg_socksap = \
- INETAddr \
- SOCKStream \
- SOCKAcceptor \
- SOCKConnector
-
-socksap: os $(addsuffix .java,$(pkg_socksap))
- $(COMPILE.java)
-
-pkg_svcconfig = \
- ServiceLoader \
- ClassReader \
- ParseNode \
- SuspendNode \
- ResumeNode \
- RemoveNode \
- ServiceRecord \
- ServiceObjectRecord \
- AddServiceObjectNode \
- ServiceObject \
- ServiceConfig \
- ServiceRepository
-
-svcconfig: os reactor misc $(addsuffix .java,$(pkg_svcconfig))
- $(COMPILE.java)
-
-packages = JACE \
- JACE.ASX \
- JACE.Connection \
- JACE.Concurrency \
- JACE.Misc \
- JACE.OS \
- JACE.Reactor \
- JACE.SOCK_SAP \
- JACE.ServiceConfigurator \
- JACE.Timers
-
-
diff --git a/java/src/MessageBlock.java b/java/src/MessageBlock.java
deleted file mode 100644
index 1741f9bef80..00000000000
--- a/java/src/MessageBlock.java
+++ /dev/null
@@ -1,453 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * MessageBlock.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Object used to store messages in the ASX framework.
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * <tt>MessageBlock</tt> is modeled after the message data structures
- * used in System V STREAMS. A <tt>MessageBlock</tt> is composed of
- * one or more <tt>MessageBlock</tt>s that are linked together by <em>PREV</em>
- * and <em>NEXT</em> pointers. In addition, a <tt>MessageBlock</tt> may also be
- * linked to a chain of other <tt>MessageBlock</tt>s. This structure
- * enables efficient manipulation of arbitrarily-large messages
- * <em>without</em> incurring memory copying overhead.
- *</blockquote>
- *
- *@see MessageQueue
- */
-public class MessageBlock
-{
- /**
- * Create an empty Message Block
- */
- public MessageBlock ()
- {
- this (0);
- }
-
- /**
- * Create an empty Message Block.
- * Note that this assumes that type of MessageBlock is MB_DATA.
- *@param size size of the Message Block to create.
- */
- public MessageBlock (int size)
- {
- // Note the explicit cast toString() is needed. For some strange
- // reason, it fails otherwise if size == 0.
- this ((new StringBuffer (size)).toString ());
- }
-
- /**
- * Create a Message Block. Note that this assumes that type of
- * MessageBlock is MB_DATA.
- *@param data initial data to create a Message Block with.
- */
- public MessageBlock (String data)
- {
- this (MessageType.MB_DATA,
- null,
- data);
- }
-
- /**
- * Create a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param data initial data to create Message Block with
- */
- public MessageBlock (int type,
- MessageBlock cont,
- String data)
- {
- this.flags_ = 0;
- this.priority_ = 0;
- this.next_ = null;
- this.prev_ = null;
-
- this.init (type, cont, data);
- }
-
- /**
- * Create a Message Block. Note that this assumes that type of
- * MessageBlock is MB_OBJECT.
- *@param obj initial object to create a Message Block with.
- */
- public MessageBlock (Object obj)
- {
- this (MessageType.MB_OBJECT,
- null,
- obj);
- }
-
- /**
- * Create a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param obj initial object to create Message Block with
- */
- public MessageBlock (int type,
- MessageBlock cont,
- Object obj)
- {
- this.init (type, cont, obj);
- }
-
- /* Initialize the Message Block
- *@param data data to initialize Message Block with
- */
- public void init (String data)
- {
- this.base_ = new StringBuffer (data);
- }
-
- /**
- * Initialize a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param data data to initialize Message Block with
- */
- public void init (int msgType,
- MessageBlock msgCont,
- String data)
- {
- if (data.length () == 0)
- this.base_ = new StringBuffer (0);
- else
- this.base_ = new StringBuffer (data);
- this.type_ = msgType;
- this.cont_ = msgCont;
- }
-
- /**
- * Initialize a Message Block. Note that this assumes that type of
- * MessageBlock is MB_OBJECT.
- *@param obj initial object to initialize a Message Block with.
- */
- public void init (Object obj)
- {
- this.init (MessageType.MB_OBJECT, null, obj);
- }
-
- /**
- * Initialize a Message Block.
- *@param type type of the Message Block (must be one of those
- * specified in class Message Type)
- *@param cont next block of data
- *@param obj object to initialize Message Block with
- */
- public void init (int msgType,
- MessageBlock msgCont,
- Object obj)
- {
- this.obj_ = obj;
- this.type_ = msgType;
- this.cont_ = msgCont;
- this.flags_ = 0;
- this.priority_ = 0;
- this.next_ = null;
- this.prev_ = null;
- }
-
- /**
- * Set message flags. Note that the flags will be set on top of
- * already set flags.
- *@param moreFlags flags to set for the Message Block.
- */
- public long setFlags (long moreFlags)
- {
- // Later we might mask more_flags so that user can't change
- // internal ones: more_flags &= ~(USER_FLAGS -1).
- this.flags_ = ACE.SET_BITS (this.flags_, moreFlags);
- return this.flags_;
- }
-
- /**
- * Unset message flags.
- *@param lessFlags flags to unset for the Message Block.
- */
- public long clrFlags (long lessFlags)
- {
- // Later we might mask more_flags so that user can't change
- // internal ones: less_flags &= ~(USER_FLAGS -1).
- this.flags_ = ACE.CLR_BITS (this.flags_, lessFlags);
- return this.flags_;
- }
-
- /**
- * Get the message flags.
- *@return Message flags
- */
- public long flags ()
- {
- return this.flags_;
- }
-
- /**
- * Get the type of the message.
- *@return message type
- */
- public int msgType ()
- {
- return this.type_;
- }
-
- /**
- * Set the type of the message.
- *@param t type of the message
- */
- public void msgType (int t)
- {
- this.type_ = t;
- }
-
- /**
- * Get the class of the message. Note there are two classes,
- * <normal> messages and <high-priority> messages.
- *@return message class
- */
- public int msgClass ()
- {
- return this.msgType () >= MessageType.MB_PRIORITY
- ? MessageType.MB_PRIORITY : MessageType.MB_NORMAL;
- }
-
- /**
- * Find out if the message is a data message.
- *@return true if message is a data message, false otherwise
- */
- public boolean isDataMsg ()
- {
- int mt = this.msgType ();
- return mt == MessageType.MB_DATA
- || mt == MessageType.MB_PROTO
- || mt == MessageType.MB_PCPROTO;
- }
-
- /**
- * Find out if the message is an object message.
- *@return true if message is an object message, false otherwise
- */
- public boolean isObjMsg ()
- {
- int mt = this.msgType ();
- return mt == MessageType.MB_OBJECT
- || mt == MessageType.MB_PROTO
- || mt == MessageType.MB_PCPROTO;
- }
-
- /**
- * Get the priority of the message.
- *@return message priority
- */
- public long msgPriority ()
- {
- return this.priority_;
- }
-
- /**
- * Set the priority of the message.
- *@param pri priority of the message
- */
- public void msgPriority (long pri)
- {
- this.priority_ = pri;
- }
-
- /**
- * Get message data. This assumes that msgType is MB_DATA.
- *@return message data
- */
- public String base ()
- {
- // Create a String object to return
- char temp[] = new char [this.base_.length ()];
- this.base_.getChars (0, this.base_.length (), temp, 0);
- return new String (temp);
- }
-
- /**
- * Set the message data. This assumes that msgType is MB_DATA.
- *@param data message data
- *@param msgFlags message flags
- */
- public void base (String data,
- long msgFlags)
- {
- this.base_ = new StringBuffer (data);
- this.flags_ = msgFlags;
- }
-
- /**
- * Get message object. This assumes that msgType is MB_OBJECT.
- *@return message object
- */
- public Object obj ()
- {
- return this.obj_;
- }
-
- /**
- * Set the message object. This assumes that msgType is MB_OBJECT.
- *@param object message object
- *@param msgFlags message flags
- */
- public void obj (Object obj,
- long msgFlags)
- {
- this.obj_ = obj;
- this.flags_ = msgFlags;
- }
-
- // = The following four methods only make sense if the Message_Block
- // is of type MB_DATA and not MB_OBJECT.
-
- /**
- * Get length of the message. This method only makes sense if the
- * MessageBlock is of type MB_DATA and not MB_OBJECT.
- *@return length of the message.
- */
- public int length ()
- {
- return this.base_.length ();
- }
-
- /**
- * Set the length of the message. This method only makes sense if the
- * MessageBlock is of type MB_DATA and not MB_OBJECT.
- *@param n message length
- */
- public void length (int n)
- {
- this.base_.setLength (n);
- }
-
- /**
- * Get size of the allocated buffer for the message. This method
- * only makes sense if the MessageBlock is of type MB_DATA and not
- * MB_OBJECT.
- *@return size of the message buffer
- */
- public int size ()
- {
- return this.base_.capacity ();
- }
-
- /**
- * Set the total size of the buffer. This method will grow the
- * buffer if need be. Also, this method only makes sense if the
- * MessageBlock is of type MB_DATA and not MB_OBJECT.
- *@param n size of message buffer
- */
- public void size (int n)
- {
- this.base_.ensureCapacity (n);
- }
-
-
- /**
- * Get the continuation field. The coninuation field is used to
- * chain together composite messages.
- *@return the continuation field
- */
- public MessageBlock cont ()
- {
- return this.cont_;
- }
-
- /**
- * Set the continuation field. The coninuation field is used to
- * chain together composite messages.
- *@param msgCont continuation field
- */
- void cont (MessageBlock msgCont)
- {
- this.cont_ = msgCont;
- }
-
- /**
- * Get link to next message. The next message points to the
- * <MessageBlock> directly ahead in the MessageQueue.
- *@return next message block
- */
- MessageBlock next ()
- {
- return this.next_;
- }
-
- /**
- * Set link to next message. The next message points to the
- * <MessageBlock> directly ahead in the MessageQueue.
- *@param msgBlock next message block
- */
- void next (MessageBlock msgBlock)
- {
- this.next_ = msgBlock;
- }
-
- /**
- * Get link to previous message. The previous message points to the
- * <MessageBlock> directly before in the MessageQueue.
- *@return previous message block
- */
- MessageBlock prev ()
- {
- return this.prev_;
- }
-
- /**
- * Set link to previous message. The previous message points to the
- * <MessageBlock> directly before in the MessageQueue.
- *@param msgBlock previous message block
- */
- void prev (MessageBlock msgBlock)
- {
- this.prev_ = msgBlock;
- }
-
- private int type_;
- // Type of message.
-
- private long flags_;
- // Misc flags.
-
- private long priority_;
- // Priority of message.
-
- private StringBuffer base_;
- // String data of message block (initialized to null).
-
- private Object obj_;
- // Object data of message block (initialized to null).
-
- private MessageBlock cont_;
- // Next message block in the chain.
-
- private MessageBlock next_;
- // Next message in the list.
-
- private MessageBlock prev_;
- // Previous message in the list.
-
-}
-
diff --git a/java/src/MessageQueue.java b/java/src/MessageQueue.java
deleted file mode 100644
index 8c8dab1a0fe..00000000000
--- a/java/src/MessageQueue.java
+++ /dev/null
@@ -1,639 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * MessageQueue.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import java.util.Date;
-import JACE.OS.*;
-import JACE.Reactor.*;
-
-class NotFullCondition extends TimedWait
-{
- public NotFullCondition (MessageQueue mq)
- {
- super (mq);
- this.mq_ = mq;
- }
-
- public boolean condition () {
- // Delegate to the appropriate conditional
- // check on the MessageQueue.
- return !this.mq_.isFull ();
- }
- private MessageQueue mq_;
-}
-
-class NotEmptyCondition extends TimedWait
-{
- public NotEmptyCondition (MessageQueue mq)
- {
- super (mq);
- this.mq_ = mq;
- }
-
- public boolean condition () {
- // Delegate to the appropriate conditional
- // check on the MessageQueue.
- return !this.mq_.isEmpty ();
- }
- private MessageQueue mq_;
-}
-
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * A thread-safe message queueing facility, modeled after the
- * queueing facilities in System V StreamS.
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *</blockquote>
- * <tt>MessageQueue</tt> is the central queueing facility for messages
- * in the ASX framework. All operations are thread-safe, as it is intended
- * to be used for inter-thread communication (<em>e.g.</em>, a producer and
- * consumer thread joined by a <tt>MessageQueue</tt>). The queue
- * consiste of <tt>MessageBlock</tt>s.
- *</blockquote>
- *
- *@see MessageBlock
- *@see TimeValue
- */
-public class MessageQueue
-{
- /**
- * Default constructor
- */
- public MessageQueue ()
- {
- this (DEFAULT_HWM, DEFAULT_LWM);
- }
-
- /**
- * Create a Message Queue with high and low water marks.
- *@param hwm High water mark (max number of bytes allowed in the
- * queue)
- *@param lwm Low water mark (min number of bytes in the queue)
- */
- public MessageQueue (int hwm, int lwm)
- {
- if (this.open (hwm, lwm) == -1)
- ACE.ERROR ("open");
- }
-
- /**
- * Initialize a Message Queue with high and low water marks.
- *@param hwm High water mark (max number of bytes allowed in the
- * queue)
- *@param lwm Low water mark (min number of bytes in the queue)
- */
- public synchronized int open (int hwm, int lwm)
- {
- this.highWaterMark_ = hwm;
- this.lowWaterMark_ = lwm;
- this.deactivated_ = false;
- this.currentBytes_ = 0;
- this.currentCount_ = 0;
- this.tail_ = null;
- this.head_ = null;
- return 0;
- }
-
- // ************ Note! ***********
- // = For enqueue, enqueueHead, enqueueTail, and dequeueHead if
- // timeout is specified, the caller will wait until the *absolute time*
- // tv. Calls will return, however, when queue is closed,
- // deactivated, or if it is past the time tv
-
- /**
- * Enqueue a <MessageBlock> into the <MessageQueue> in accordance
- * with its <msgPriority> (0 is lowest priority). Note that the
- * call will block (unless the queue has been deactivated).
- *
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- *@param newItem item to enqueue onto the Message Queue
- *@return -1 on failure, else the number of items still on the queue.
- */
- public synchronized int enqueue (MessageBlock newItem) throws InterruptedException
- {
- return this.enqueue (newItem, null);
- }
-
- /**
- * Enqueue a <MessageBlock> into the <MessageQueue> in accordance
- * with its <msgPriority> (0 is lowest priority). Note that the
- * call will return if the queue has been deactivated or it is
- * later than the specified absolute time value.
- *@param newItem item to enqueue onto the Message Queue
- *@param tv absolute TimeValue to timeout after
- *@return -1 on failure, else the number of items still on the
- * queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueue (MessageBlock newItem,
- TimeValue tv) throws InterruptedException
- {
- int result = -1;
- if (this.deactivated_)
- return -1;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notFullCondition_.timedWait ();
- else // Need to do a timed wait
- notFullCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return -1;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return -1;
- else
- result = this.enqueueInternal (newItem);
-
- // Tell any blocked threads that the queue has a new item!
- this.notEmptyCondition_.broadcast ();
- return result;
- }
-
- /**
- * Enqueue a <MessageBlock> at the end of the <MessageQueue>. Note
- * that the call will block (unless the queue has been deactivated).
- *@param newItem item to enqueue onto the Message Queue
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueTail (MessageBlock newItem) throws InterruptedException
- {
- return this.enqueueTail (newItem, null);
- }
-
- /**
- * Enqueue a <MessageBlock> at the end of the <MessageQueue>. Note
- * that the call will return when it's later than the given TimeValue or
- * if the queue has been deactivated.
- *@param newItem item to enqueue onto the Message Queue
- *@param tv absolute TimeValue to wait until before returning (unless
- * the operation compeltes before this time)
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueTail (MessageBlock newItem,
- TimeValue tv) throws InterruptedException
- {
- int result = -1;
- if (this.deactivated_)
- return -1;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notFullCondition_.timedWait ();
- else // Need to do a timed wait
- notFullCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return -1;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return -1;
- else
- result = this.enqueueTailInternal (newItem);
-
- // Tell any blocked threads that the queue has a new item!
- this.notEmptyCondition_.broadcast ();
- return result;
- }
-
- /**
- * Enqueue a <MessageBlock> at the head of the <MessageQueue>. Note
- * that the call will block (unless the queue has been deactivated).
- *@param newItem item to enqueue onto the Message Queue
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueHead (MessageBlock newItem) throws InterruptedException
- {
- return this.enqueueHead (newItem, null);
- }
-
- /**
- * Enqueue a <MessageBlock> at the head of the <MessageQueue>. Note
- * that the call will return when it's later than the given TimeValue or
- * if the queue has been deactivated.
- *@param newItem item to enqueue onto the Message Queue
- *@param tv absolute TimeValue to wait until before returning (unless
- * the operation completes before that time)
- *@return -1 on failure, else the number of items still on the queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized int enqueueHead (MessageBlock newItem,
- TimeValue tv) throws InterruptedException
- {
- int result = -1;
- if (this.deactivated_)
- return -1;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notFullCondition_.timedWait ();
- else // Need to do a timed wait
- notFullCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return -1;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return -1;
- else
- result = this.enqueueHeadInternal (newItem);
-
- // Tell any blocked threads that the queue has a new item!
- this.notEmptyCondition_.broadcast ();
- return result;
- }
-
- /**
- * Dequeue and return the <MessageBlock> at the head of the
- * <MessageQueue>. Note that the call will block (unless the queue
- * has been deactivated).
- *@return null on failure, else the <MessageBlock> at the head of queue.
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- public synchronized MessageBlock dequeueHead () throws InterruptedException
- {
- return this.dequeueHead (null);
- }
-
- /**
- * Dequeue and return the <MessageBlock> at the head of the
- * <MessageQueue>. Note that the call when return if the queue has
- * been deactivated or when the current time is later than the given
- * time value.
- *@param tv absolute time timeout (blocks indefinitely if null)
- *@return null on failure, else the <MessageBlock> at the head of queue.
- *@exception InterruptedException Interrupted while accessing queue
- */
- public synchronized MessageBlock dequeueHead (TimeValue tv)
- throws InterruptedException
- {
- MessageBlock result = null;
- if (this.deactivated_)
- return null;
- try
- {
- if (tv == null) // Need to do a blocking wait
- notEmptyCondition_.timedWait ();
- else // Need to do a timed wait
- notEmptyCondition_.timedWait (tv);
- }
- catch (TimeoutException e)
- {
- return null;
- }
-
- // Check again if queue is still active
- if (this.deactivated_)
- return null;
- else
- result = this.dequeueHeadInternal ();
-
- // Tell any blocked threads that the queue has room for an item!
- this.notFullCondition_.broadcast ();
- return result;
- }
-
- /**
- * Check if queue is full.
- *@return true if queue is full, else false.
- */
- public synchronized boolean isFull ()
- {
- return this.isFullInternal ();
- }
-
- /**
- * Check if queue is empty.
- *@return true if queue is empty, else false.
- */
- public synchronized boolean isEmpty ()
- {
- return this.isEmptyInternal ();
- }
-
- /**
- * Get total number of bytes on the queue.
- *@return total number number of bytes on the queue
- */
- public int messageBytes ()
- {
- return this.currentBytes_;
- }
-
- /**
- * Get total number of messages on the queue.
- *@return total number number of messages on the queue
- */
- public int messageCount ()
- {
- return this.currentCount_;
- }
-
- // = Flow control routines
-
- /**
- * Get high watermark.
- *@return high watermark
- */
- public int highWaterMark ()
- {
- return this.highWaterMark_;
- }
-
- /**
- * Set high watermark.
- *@param hwm high watermark
- */
- public void highWaterMark (int hwm)
- {
- this.highWaterMark_ = hwm;
- }
-
- /**
- * Get low watermark.
- *@return low watermark
- */
- public int lowWaterMark ()
- {
- return this.lowWaterMark_;
- }
-
- /**
- * Set low watermark.
- *@param lwm low watermark
- */
- public void lowWaterMark (int lwm)
- {
- this.lowWaterMark_ = lwm;
- }
-
- // = Activation control methods.
-
- /**
- * Deactivate the queue and wakeup all threads waiting on the queue
- * so they can continue. No messages are removed from the queue,
- * however. Any other operations called until the queue is
- * activated again will immediately return -1.
- *@return WAS_INACTIVE if queue was inactive before the call and
- * WAS_ACTIVE if queue was active before the call.
- */
- public synchronized int deactivate ()
- {
- return this.deactivateInternal ();
- }
-
-
- /**
- * Reactivate the queue so that threads can enqueue and dequeue
- * messages again.
- *@return WAS_INACTIVE if queue was inactive before the call and
- * WAS_ACTIVE if queue was active before the call.
- */
- public synchronized int activate ()
- {
- return this.activateInternal ();
- }
-
- protected boolean isEmptyInternal ()
- {
- // Not sure about this one!!!!
- return this.currentBytes_ <= this.lowWaterMark_ && this.currentCount_ <= 0;
- }
-
- protected boolean isFullInternal ()
- {
- return this.currentBytes_ > this.highWaterMark_;
- }
-
- protected int deactivateInternal ()
- {
- int currentStatus =
- this.deactivated_ ? WAS_INACTIVE : WAS_ACTIVE;
-
- this.notFullCondition_.broadcast ();
- this.notEmptyCondition_.broadcast ();
-
- this.deactivated_ = true;
- return currentStatus;
- }
-
- protected int activateInternal ()
- {
- int currentStatus =
- this.deactivated_ ? WAS_INACTIVE : WAS_ACTIVE;
- this.deactivated_ = false;
-
- return currentStatus;
- }
-
- protected int enqueueTailInternal (MessageBlock newItem)
- {
- if (newItem == null)
- return -1;
-
- // List was empty, so build a new one.
- if (this.tail_ == null)
- {
- this.head_ = newItem;
- this.tail_ = newItem;
- newItem.next (null);
- newItem.prev (null);
- }
- // Link at the end.
- else
- {
- newItem.next (null);
- this.tail_.next (newItem);
- newItem.prev (this.tail_);
- this.tail_ = newItem;
- }
-
- if (newItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to count *all* the bytes in a composite message!!!
- for (MessageBlock temp = newItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ += temp.size ();
- }
-
- this.currentCount_++;
- return this.currentCount_;
- }
-
- protected int enqueueHeadInternal (MessageBlock newItem)
- {
- if (newItem == null)
- return -1;
-
- newItem.prev (null);
- newItem.next (this.head_);
-
- if (this.head_ != null)
- this.head_.prev (newItem);
- else
- this.tail_ = newItem;
-
- this.head_ = newItem;
-
- if (newItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to count *all* the bytes in a composite message!!!
- for (MessageBlock temp = newItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ += temp.size ();
- }
-
- this.currentCount_++;
-
- return this.currentCount_;
- }
-
- protected int enqueueInternal (MessageBlock newItem)
- {
- if (newItem == null)
- return -1;
-
- if (this.head_ == null)
- // Check for simple case of an empty queue, where all we need to
- // do is insert <newItem> into the head.
- return this.enqueueHeadInternal (newItem);
- else
- {
- MessageBlock temp;
-
- // Figure out where the new item goes relative to its priority.
-
- for (temp = this.head_;
- temp != null;
- temp = temp.next ())
- {
- if (temp.msgPriority () <= newItem.msgPriority ())
- // Break out when we've located an item that has lower
- // priority that <newItem>.
- break;
- }
-
- if (temp == null)
- // Check for simple case of inserting at the end of the queue,
- // where all we need to do is insert <newItem> after the
- // current tail.
- return this.enqueueTailInternal (newItem);
- else if (temp.prev () == null)
- // Check for simple case of inserting at the beginning of the
- // queue, where all we need to do is insert <newItem> before
- // the current head.
- return this.enqueueHeadInternal (newItem);
- else
- {
- // Insert the message right before the item of equal or lower
- // priority.
- newItem.next (temp);
- newItem.prev (temp.prev ());
- temp.prev ().next (newItem);
- temp.prev (newItem);
- }
- }
-
- if (newItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to count *all* the bytes in a composite message!!!
- for (MessageBlock temp = newItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ += temp.size ();
- }
-
- this.currentCount_++;
- return this.currentCount_;
- }
-
- protected MessageBlock dequeueHeadInternal ()
- {
- MessageBlock firstItem = this.head_;
- this.head_ = this.head_.next ();
-
- if (this.head_ == null)
- this.tail_ = null;
-
- if (firstItem.msgType() != MessageType.MB_OBJECT)
- {
- // Make sure to subtract off all of the bytes associated with this
- // message.
- for (MessageBlock temp = firstItem;
- temp != null;
- temp = temp.cont ())
- this.currentBytes_ -= temp.size ();
- }
-
- this.currentCount_--;
- return firstItem;
- }
-
-
- /** Default high watermark (16 K). */
- public final static int DEFAULT_HWM = 16 * 1024;
-
- /** Default low watermark. */
- public final static int DEFAULT_LWM = 0;
-
- /** Message queue was active before activate() or deactivate(). */
- public final static int WAS_ACTIVE = 1;
-
- /** Message queue was inactive before activate() or deactivate(). */
- public final static int WAS_INACTIVE = 2;
-
- private int highWaterMark_;
- // Greatest number of bytes before blocking.
-
- private int lowWaterMark_;
- // Lowest number of bytes before unblocking occurs.
-
- private boolean deactivated_;
- // Indicates that the queue is inactive.
-
- private int currentBytes_;
- // Current number of bytes in the queue.
-
- private int currentCount_;
- // Current number of messages in the queue.
-
- private MessageBlock head_;
- // Head of Message_Block list.
-
- private MessageBlock tail_;
- // Tail of Message_Block list.
-
- // The Delegated Notification mechanisms.
- private NotFullCondition notFullCondition_ = new NotFullCondition (this);
- private NotEmptyCondition notEmptyCondition_ = new NotEmptyCondition (this);
-
-}
diff --git a/java/src/MessageType.java b/java/src/MessageType.java
deleted file mode 100644
index 62c34455854..00000000000
--- a/java/src/MessageType.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * MessageType.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Message types used by ACE.MessageBlock.
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * Defines bit masks used to identify various types of messages.
- *</blockquote>
- *
- *<h2>NOTES</h2>
- *<blockquote>
- * This class is not intended to be instantiable.
- *</blockquote>
- */
-public class MessageType
-{
- // = Data and protocol messages (regular and priority)
- /** regular data */
- public static final int MB_DATA = 0x01;
-
- /** protocol control */
- public static final int MB_PROTO = 0x02;
-
- /** regular data */
- public static final int MB_OBJECT = 0x09;
-
-
- // = Control messages (regular and priority)
- /** line break */
- public static final int MB_BREAK = 0x03;
-
- /** pass file pointer */
- public static final int MB_PASSFP = 0x04;
-
- /** post an event to an event queue */
- public static final int MB_EVENT = 0x05;
-
- /** generate process signal */
- public static final int MB_SIG = 0x06;
-
- /** ioctl; set/get params */
- public static final int MB_IOCTL = 0x07;
-
- /** set various stream head options */
- public static final int MB_SETOPTS = 0x08;
-
-
- // = Control messages (high priority; go to head of queue)
- /** acknowledge ioctl */
- public static final int MB_IOCACK = 0x81;
-
- /** negative ioctl acknowledge */
- public static final int MB_IOCNAK = 0x82;
-
- /** priority proto message */
- public static final int MB_PCPROTO = 0x83;
-
- /** generate process signal */
- public static final int MB_PCSIG = 0x84;
-
- /** generate read notification */
- public static final int MB_READ = 0x85;
-
- /** flush your queues */
- public static final int MB_FLUSH = 0x86;
-
- /** stop transmission immediately */
- public static final int MB_STOP = 0x87;
-
- /** restart transmission after stop */
- public static final int MB_START = 0x88;
-
- /** line disconnect */
- public static final int MB_HANGUP = 0x89;
-
- /** fatal error used to set u.u_error */
- public static final int MB_ERROR = 0x8a;
-
- /** post an event to an event queue */
- public static final int MB_PCEVENT = 0x8b;
-
-
- /** Normal priority messages */
- public static final int MB_NORMAL = 0x00;
-
- /** High priority control messages */
- public static final int MB_PRIORITY = 0x80;
-
- // Default private constructor to avoid instantiation
- private MessageType ()
- {
- }
-}
-
diff --git a/java/src/Module.java b/java/src/Module.java
deleted file mode 100644
index 6eb56bcbf43..00000000000
--- a/java/src/Module.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * Module.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Provides an abstraction for managing a bi-directional flow of
- * messages.
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * This is based on the Module concept in System V Streams,
- * which contains a pair of Tasks, one for handling upstream
- * processing, one for handling downstream processing.
- *</blockquote>
- */
-public class Module
-{
- // = Initialization and termination methods.
-
- /**
- * Create an empty Module.
- */
- public Module ()
- {
- // Do nothing...
- this.name ("<unknown>");
- }
-
- /*
- * Create an initialized module.
- *@param modName identity of the module.
- *@param writerQ writer task of the module.
- *@param readerQ reader task of the module.
- *@param flags Module flags
- */
- public Module (String modName,
- Task writerQ,
- Task readerQ,
- Object flags)
- {
- this.open (modName, writerQ, readerQ, flags);
- }
-
- /*
- * Create an initialized module.
- *@param modName identity of the module.
- *@param writerQ writer task of the module.
- *@param readerQ reader task of the module.
- *@param flags Module flags
- */
- public void open (String modName,
- Task writerQ,
- Task readerQ,
- Object arg)
- {
- this.name (modName);
- this.arg_ = arg;
-
- if (writerQ == null)
- writerQ = new ThruTask ();
- if (readerQ == null)
- readerQ = new ThruTask ();
-
- this.reader (readerQ);
- this.writer (writerQ);
-
- // Setup back pointers.
- readerQ.module (this);
- writerQ.module (this);
- }
-
-
- /*
- * Set the writer task.
- *@param q the writer task
- */
- public void writer (Task q)
- {
- this.qPair_[1] = q;
- if (q != null)
- q.flags (ACE.CLR_BITS (q.flags (), TaskFlags.ACE_READER));
- }
-
- /*
- * Set the reader task.
- *@param q the reader task
- */
- public void reader (Task q)
- {
- this.qPair_[0] = q;
- if (q != null)
- q.flags (ACE.SET_BITS (q.flags (), TaskFlags.ACE_READER));
- }
-
- /*
- * Link this Module on top of Module.
- *@param m the module to link this on top of.
- */
- public void link (Module m)
- {
- this.next (m);
- this.writer ().next (m.writer ());
- m.reader ().next (this.reader ());
- }
-
- /*
- * Set and get pointer to sibling Task in Module.
- *@param orig the task to get the sibling for
- *@return the sibling of the task
- */
- public Task sibling (Task orig)
- {
- if (this.qPair_[0] == orig)
- return this.qPair_[1];
- else if (this.qPair_[1] == orig)
- return this.qPair_[0];
- else
- return null;
- }
-
- /*
- * Close down the module and its tasks.
- *@param flags Module flags
- *@return 0 on success, -1 on failure
- */
- public int close (long flags)
- {
- Task readerQ = this.reader ();
- Task writerQ = this.writer ();
- int result = 0;
-
- if (readerQ != null)
- {
- if (readerQ.close (flags) == -1)
- result = -1;
- readerQ.flush (flags);
- readerQ.next (null);
- }
-
- if (writerQ != null)
- {
- if (writerQ.close (flags) == -1)
- result = -1;
- writerQ.flush (flags);
- writerQ.next (null);
- }
-
- return result;
- }
-
- /*
- * Get the argument passed to tasks.
- *@return the argument passed to tasks.
- */
- public Object arg ()
- {
- return this.arg_;
- }
-
- /*
- * Set the argument to be passed to tasks.
- *@param a the argument to be passed to tasks.
- */
- public void arg (Object a)
- {
- this.arg_ = a;
- }
-
- /*
- * Get the name of the module.
- *@return the name of the module.
- */
- public String name ()
- {
- return this.name_;
- }
-
- /*
- * Set the name of the module.
- *@param n the name of the module.
- */
- public void name (String n)
- {
- this.name_ = n;
- }
-
- /*
- * Get the writer task of the module.
- *@return the writer task of the module.
- */
- public Task writer ()
- {
- return this.qPair_[1];
- }
-
- /*
- * Get the reader task of the module.
- *@return the reader task of the module.
- */
- public Task reader ()
- {
- return this.qPair_[0];
- }
-
- /*
- * Get the next pointer to the module above in the stream.
- *@return the next pointer to the module above in the stream.
- */
- public Module next ()
- {
- return this.next_;
- }
-
- /*
- * Set the next pointer to the module above in the stream.
- *@param m the next pointer to the module above in the stream.
- */
- public void next (Module m)
- {
- this.next_ = m;
- }
-
- private Task qPair_[] = new Task[2];
- // Pair of Tasks that form the "read-side" and "write-side" of the
- // ACE_Module partitioning.
-
- private String name_ = null;
- // Name of the ACE_Module.
-
- private Module next_;
- // Next ACE_Module in the stack.
-
- private Object arg_;
- // Argument passed through to the reader and writer task when they
- // are opened.
-
-}
-
diff --git a/java/src/Mutex.java b/java/src/Mutex.java
deleted file mode 100644
index 1b796062ae8..00000000000
--- a/java/src/Mutex.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Mutex.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.ASX.*;
-
-class TimedWaitMAdapter extends TimedWait
-{
- TimedWaitMAdapter (Object obj)
- {
- super (obj);
- }
-
- // Check to see if the lock is currently held or not.
- public boolean condition ()
- {
- return !this.inUse_;
- }
-
- // Acquire/Release the lock
- public void inUse (boolean c)
- {
- this.inUse_ = c;
- }
-
- private boolean inUse_ = false;
- // The actual lock
-}
-
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Value added abstraction for mutex variable creation.
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * A timed mutex, <em>i.e.</em> a mutex whose operations do not
- * block forever and can <q>time out</q>.
- *</blockquote>
- */
-public class Mutex
-{
- /**
- * Acquire the mutex. Note that this will block.
- *@exception InterruptedException exception during wait
- */
- public synchronized void acquire () throws InterruptedException
- {
- this.monitor_.timedWait ();
- this.monitor_.inUse (true);
- setOwner();
- }
-
- /**
- * Acquire the mutex.
- * Throws a TimeoutException if the mutex isn't acquired before the
- * given absolute time timeout.
- *@param tv time (TimeValue) to wait until before throwing a
- * TimeoutException (unless the mutex is acquired before that)
- *@exception TimeoutException wait timed out exception
- *@exception InterruptedException exception during wait
- */
- public synchronized void acquire (TimeValue tv) throws
- TimeoutException, InterruptedException
- {
- this.monitor_.timedWait (tv);
- this.monitor_.inUse (true);
- setOwner();
- }
-
- /**
- * Release the mutex. This is safe for non-owners to call.
- */
- public synchronized void release ()
- {
- if (isOwner()) {
- this.monitor_.inUse (false);
- this.monitor_.signal ();
- }
- }
-
- private TimedWaitMAdapter monitor_ = new TimedWaitMAdapter (this);
- // The monitor (adapter) to wait on
-
- // Keep track of the owner. Allow subclasses to redefine this
- // behavior
- private Object owner_ = null;
-
- protected void setOwner() {
- this.owner_ = Thread.currentThread().toString();
- }
-
- protected boolean isOwner() {
- return Thread.currentThread().toString().equals(this.owner_);
- }
-}
diff --git a/java/src/OS.java b/java/src/OS.java
deleted file mode 100644
index c17fd6d07f2..00000000000
--- a/java/src/OS.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.OS
- *
- * = FILENAME
- * OS.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.OS;
-
-import java.util.StringTokenizer;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Methods to extend the capabilities of the Java runtime system.
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * This non-instantiable class contains little <q>utility functions</q>
- * that should have been in Java to begin with :-)
- *</blockquote>
- */
-public class OS
-{
- /**
- * Create an array of Strings from a single String using <delim> as
- * the delimiter.
- *@param args the String to break up to make an array of Strings
- *@param delim the delimeter to use to break the String up
- *@return an array containing the original String broken up
- */
- public static String [] createStringArray (String args, String delim)
- {
- // First determine the number of arguments
- int count = 0;
- StringTokenizer tokens = new StringTokenizer (args, delim);
- while (tokens.hasMoreTokens ())
- {
- tokens.nextToken ();
- count++;
- }
- if (count == 0)
- return null;
-
- // Create argument array
- String [] argArray = new String [count];
- int index = 0;
- tokens = new StringTokenizer (args, " ");
- while (tokens.hasMoreTokens ())
- {
- argArray [index] = tokens.nextToken ();
- index++;
- }
-
- // Assert index == count
- if (index != count)
- return null;
- else
- return argArray;
- }
-
- // Default private constructor to avoid instantiation
- private OS ()
- {
- }
-}
diff --git a/java/src/ParseNode.java b/java/src/ParseNode.java
deleted file mode 100644
index cdf8bb57955..00000000000
--- a/java/src/ParseNode.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ParseNode.java
- *
- * Base class for the data types used in the parse tree for adjusting
- * services. Things like SuspendNode extend this.
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import JACE.OS.*;
-
-public class ParseNode
-{
- /**
- * Constructor
- *
- */
- public ParseNode ()
- {
- this.name_ = new String("Uninitialized");
- }
-
- /**
- * Initialize the service (subclasses
- * may do more than set the name)
- */
- public void init (String name)
- {
- this.name_ = name;
- }
-
- /**
- * Subclasses override to do real work, usually
- * initiating a service or modifying one
- */
- public void apply ()
- {
- // Empty
- }
-
- /**
- * Retrive the service name
- */
- public String name()
- {
- return this.name_;
- }
-
- /**
- * Set the name of the service
- */
- public void name(String newName)
- {
- this.name_ = newName;
- }
-
- String name_;
-};
-
-
-
diff --git a/java/src/ProfileTimer.java b/java/src/ProfileTimer.java
deleted file mode 100644
index b7e9c908a13..00000000000
--- a/java/src/ProfileTimer.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Timers
- *
- * = FILENAME
- * ProfileTimer.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Timers;
-
-/**
- * <hr>
- * <p><b>TITLE</b><br>
- * A Java wrapper for interval timers.
- */
-public class ProfileTimer
-{
- /**
- * Start the timer.
- */
- public void start ()
- {
- this.startTime_ = java.lang.System.currentTimeMillis ();
- }
-
- /**
- * Stop the timer.
- */
- public void stop ()
- {
- this.stopTime_ = java.lang.System.currentTimeMillis ();
- }
-
- /**
- * Determine elapsed time between start and stop.
- *@return Total elapsed time (stop - start).
- */
- public long elapsedTime ()
- {
- return this.stopTime_ - this.startTime_;
- }
-
- private long startTime_;
- private long stopTime_;
-}
diff --git a/java/src/README b/java/src/README
deleted file mode 100644
index 1882de26380..00000000000
--- a/java/src/README
+++ /dev/null
@@ -1,19 +0,0 @@
-$Id$
-
-Make sure to update the environment variable CLASSPATH to include the
-path to where java/classes/ is located. The Java compiler uses this to
-find classes when resolving dependencies.
-
-As with the C++ version of ACE, the Makefile requires GNU Make.
-
-Suggestions are welcome to:
-
-Douglas C. Schmidt (schmidt@cs.wustl.edu)
-Everett Anderson (eea1@cs.wustl.edu)
-Darrell Brunsch (brunsch@cs.wustl.edu)
-Prashant Jain (pjain@cs.wustl.edu)
-
-The documentation for Java ACE has not been included in the release
-but can be automatically generated by typing "make doc" in the src
-directory. Note that the gif images needed by the documentation ARE
-included in the release.
diff --git a/java/src/RWMutex.java b/java/src/RWMutex.java
deleted file mode 100644
index 1161d9a8618..00000000000
--- a/java/src/RWMutex.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * RWMutex.java
- *
- *@author Ross Dargahi (rossd@krinfo.com), Prashant Jain, and Irfan Pyarali
- *
- *************************************************/
-
-package JACE.Concurrency;
-
-import JACE.OS.*;
-
-/*******************************************************************************
-* <HR>
-* <B> Description </B>
-* <BR>
-* This class increments a read/write lock. A read/write lock allows multiple
-* readers or a single writer to access the guarded element.
-* This implementation is based on the C++ version of ACE.
-* </PRE><P><HR>
-* <B> Notes </B>
-* <UL>
-* <LI> This class does not support recursive semantics
-* </UL>
-*******************************************************************************/
-public class RWMutex
-{
- /**
- * Acquires the write lock
- * @exception InterruptedException Lock acquisition interrupted
- **/
- public void acquire()
- throws InterruptedException
- {
- acquireWrite();
- }
-
- /**
- * Acquires the read lock
- * @exception InterruptedException Lock acquisition interrupted
- **/
- public void acquireRead()
- throws InterruptedException
- {
- // make sure we start with no exception
- InterruptedException exception_ = null;
-
- // grab lock
- lock_.acquire ();
-
- // Give preference to writers who are waiting.
- while (referenceCount_ < 0 || numberOfWaitingWriters_ > 0)
- {
- numberOfWaitingReaders_++;
- try
- {
- waitingReaders_.Wait ();
- }
- catch (InterruptedException exception)
- {
- // cache exception
- exception_ = exception;
- }
- numberOfWaitingReaders_--;
- }
-
- if (exception_ == null)
- // No errors
- referenceCount_++;
-
- // make sure this is released in all cases
- lock_.release ();
-
- if (exception_ != null)
- // error: propogate
- throw exception_;
- }
-
- /**
- * Acquires the write lock
- * @exception InterruptedException Lock acquisition interrupted
- **/
- public void acquireWrite()
- throws InterruptedException
- {
- // make sure we start with no exception
- InterruptedException exception_ = null;
-
- // grab lock
- lock_.acquire ();
-
- // Give preference to writers who are waiting.
- while (referenceCount_ != 0)
- {
- numberOfWaitingWriters_++;
- try
- {
- waitingWriters_.Wait ();
- }
- catch (InterruptedException exception)
- {
- // cache exception
- exception_ = exception;
- }
- numberOfWaitingWriters_--;
- }
-
- if (exception_ == null)
- // No errors
- referenceCount_ = -1;
-
- // make sure this is released in all cases
- lock_.release ();
-
- if (exception_ != null)
- // error: propogate
- throw exception_;
- }
-
- /**
- * Release held lock
- * @exception InterruptedException Lock acquisition interrupted
- **/
- public void release()
- throws InterruptedException
- {
- lock_.acquire ();
-
- // Releasing a reader.
- if (referenceCount_ > 0)
- referenceCount_--;
- else
- // Releasing a writer.
- if (referenceCount_ == -1)
- referenceCount_ = 0;
-
- // Give preference to writers over readers...
- if (numberOfWaitingWriters_ > 0)
- {
- waitingWriters_.signal ();
- }
- else if (numberOfWaitingReaders_ > 0)
- {
- waitingReaders_.broadcast ();
- }
-
-
- lock_.release ();
- }
-
- private Mutex lock_ = new Mutex ();
- // Serialize access to internal state.
-
- private Condition waitingReaders_ = new Condition (lock_);
- // Reader threads waiting to acquire the lock.
-
- private int numberOfWaitingReaders_;
- // Number of waiting readers.
-
- private Condition waitingWriters_ = new Condition (lock_);
- // Writer threads waiting to acquire the lock.
-
- private int numberOfWaitingWriters_ = 0;
- // Number of waiting writers.
-
- private int referenceCount_ = 0;
- // Value is -1 if writer has the lock, else this keeps track of the
- // number of readers holding the lock.
-}
-
diff --git a/java/src/RemoveNode.java b/java/src/RemoveNode.java
deleted file mode 100644
index b613d981ee5..00000000000
--- a/java/src/RemoveNode.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * RemoveNode.java
- *
- * Used when a service is specified to be removed based on a line
- * in a service configurator file. Note: Make sure to call the
- * prepareToReload method in ServiceConfig before reloading the
- * service that is being removed.
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import JACE.OS.*;
-
-class RemoveNode extends ParseNode
-{
- public RemoveNode ()
- {
- }
-
- public void apply ()
- {
- ACE.DEBUG("RemoveNode apply");
-
- if (JACE.ServiceConfigurator.ServiceConfig.remove(this.name_) == -1)
- ACE.ERROR("Error removing " + this.name_);
- }
-};
diff --git a/java/src/ResumeNode.java b/java/src/ResumeNode.java
deleted file mode 100644
index 055c19da408..00000000000
--- a/java/src/ResumeNode.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ResumeNode.java
- *
- * Used when a service is specified to be resumed based on a line
- * in a service configurator file. The actual implementation of the
- * service being resumed does the work.
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import JACE.OS.*;
-
-class ResumeNode extends ParseNode
-{
- public ResumeNode ()
- {
- }
-
- public void apply ()
- {
- ACE.DEBUG("ResumeNode apply: " + this.name_);
-
- if (JACE.ServiceConfigurator.ServiceConfig.resume(this.name_) == -1)
- ACE.ERROR("Error resuming " + this.name_);
- }
-};
diff --git a/java/src/SOCKAcceptor.java b/java/src/SOCKAcceptor.java
deleted file mode 100644
index f94d037d462..00000000000
--- a/java/src/SOCKAcceptor.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.SOCK_SAP
- *
- * = FILENAME
- * SOCKAcceptor.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-
-/**
- * <hr>
- * <p><b>TITLE</b><br>
- * Defines the format and interface for an ACE.SOCKAcceptor.
- */
-public class SOCKAcceptor
-{
- // = Initialization
-
- /**
- * Create a SOCKAcceptor. Do nothing constructor. Allows user to
- * call open() later and pass in the port number.
- */
- public SOCKAcceptor ()
- {
- }
-
- /**
- * Create a SOCKAcceptor.
- *@param port port number where the server will listen for connections
- */
- public SOCKAcceptor (int port) throws IOException
- {
- this.open (port);
- }
-
- /**
- * Create socket to listen for connections on.
- *@param port port number where the server will listen for connections
- */
- public void open(int port) throws IOException
- {
- // Close old socket (if there is one)
- this.close ();
-
- // Create a new server socket
- this.listenSocket_ = new ServerSocket (port);
- // ACE.DEBUG ("Server listening on port " + port);
- }
-
- /**
- * Close the socket and do any necessary cleanup.
- */
- public void close () throws IOException
- {
- if (this.listenSocket_ != null)
- {
- this.listenSocket_.close ();
- this.listenSocket_ = null;
- }
- }
-
- /**
- * Accept a connection. The streams are set when the method returns.
- *@param sockStream SOCK Stream to use for the connection
- */
- public void accept (SOCKStream sockStream) throws SocketException, IOException
- {
- // Block in accept. Returns when a connection shows up and sets
- // the streams
- sockStream.socket (this.listenSocket_.accept ());
- ACE.DEBUG ("Accepted connection from " +
- sockStream.socket ().getInetAddress ());
- }
-
- /**
- * Get the underlying listen socket.
- *@return the underlying listen socket
- */
- public ServerSocket listenSocket ()
- {
- return this.listenSocket_;
- }
-
- /**
- * Set the underlying listen socket.
- *@param s the underlying listen socket
- */
- public void listenSocket (ServerSocket s)
- {
- this.listenSocket_ = s;
- }
-
- /**
- * Clean up when the garbage collector gets run (if at all). Note
- * that there is no guarantee that finalize () will get called.
- *@exception Throwable (Probably IOException from the socket level)
- */
- protected void finalize () throws Throwable
- {
- super.finalize ();
- this.close ();
- }
-
- // Socket on which listen for connections (by default initialized to
- // null)
- private ServerSocket listenSocket_;
-}
diff --git a/java/src/SOCKConnector.java b/java/src/SOCKConnector.java
deleted file mode 100644
index 98dfcaf6b3d..00000000000
--- a/java/src/SOCKConnector.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.SOCK_SAP
- *
- * = FILENAME
- * SOCKConnector.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-
-/**
- * <hr>
- * <p><b>TITLE</b><br>
- * Defines an active connection factory for the socket wrappers.
- */
-public class SOCKConnector
-{
- // = Initialization
-
- /**
- * Create a SOCKConnector. Do nothing constructor. Allows user to
- * call connect() later.
- */
- public SOCKConnector ()
- {
- // Do nothing constructor
- }
-
- /**
- * Create a SOCKConnector and connect to the server.
- *@param sockStream SOCK Stream to use for the connection
- *@param hostname hostname of the server
- *@param port port number to connect with server at
- */
- public SOCKConnector (SOCKStream sockStream,
- String hostname,
- int port) throws SocketException, IOException
- {
- this.connect (sockStream,
- hostname,
- port);
- }
-
- /**
- * Connect to the server.
- *@param sockStream SOCK Stream to use for the connection
- *@param hostname hostname of the server
- *@param port port number to connect with server at
- */
- public void connect (SOCKStream sockStream,
- String hostname,
- int port) throws SocketException, IOException
- {
- sockStream.socket (new Socket (hostname, port));
- }
-
- /**
- * Connect to the server.
- *@param sockStream SOCK Stream to use for the connection
- *@param addr INETAddr instance specifying host/port
- */
- public void connect (SOCKStream sockStream,
- INETAddr addr) throws SocketException, IOException
- {
- sockStream.socket (new Socket (addr.getHostName(),
- addr.getPortNumber()));
- }
-}
diff --git a/java/src/SOCKStream.java b/java/src/SOCKStream.java
deleted file mode 100644
index f255b7bc44a..00000000000
--- a/java/src/SOCKStream.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.SOCK_SAP
- *
- * = FILENAME
- * SOCKStream.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-
-/**
- * <hr>
- * <p><b>TITLE</b><br>
- * Defines the methods in the ACE.SOCKStream abstraction.
- *
- * <p><b>DESCRIPTION</b><br>
- * This adds additional wrapper methods atop the java Socket class.
- */
-public class SOCKStream
-{
- /**
- * Create a default SOCK Stream. Do nothing constructor.
- */
- public SOCKStream ()
- {
- }
-
- /**
- * Create a SOCK Stream.
- *@param s Socket to initialize SOCK Stream with.
- */
- public SOCKStream (Socket s) throws IOException
- {
- this.socket (s);
- }
-
- /**
- * Set the socket and the underlying streams.
- *@param s Socket associated with the SOCK Stream.
- */
- public void socket (Socket s) throws IOException
- {
- this.socket_ = s;
- // Note that if s is not a valid socket or is null, the
- // following calls will throw exceptions
-
- // Create buffered, platform independent byte streams. This hasn't been switched
- // to the newer character streams since the change would break cross talk with
- // non-Java sockets.
-
- this.iStream_ = new DataInputStream(new BufferedInputStream(s.getInputStream()));
-
- this.oStream_ = new DataOutputStream(new BufferedOutputStream(s.getOutputStream()));
- }
-
- /* Get the underlying Socket.
- *@return the underlying socket
- */
- public Socket socket ()
- {
- return this.socket_;
- }
-
- /**
- * Close the streams and the underlying socket.
- */
- public void close () throws IOException
- {
- if (this.socket_ != null)
- this.socket_.close ();
- this.socket_ = null;
- }
-
- // = The following send and recv methods are overloaded to provide a
- // flexible interface
-
- /**
- * Send a StringBuffer. Note that the method blocks.
- *@param s the StringBuffer to send
- *@return the length of the StringBuffer
- */
- public int send (StringBuffer s) throws IOException
- {
- // Get the data out
- String buf = s.toString ();
-
- //this.oStream_.println(buf);
- this.oStream_.writeChars(buf.toString());
- this.oStream_.writeChar('\n');
- this.oStream_.flush ();
-
- return buf.length ();
- }
-
- /**
- * Send a String. Note that the method blocks.
- *@param s the String to send
- *@return the length of the String
- */
- public int send (String s) throws IOException
- {
- this.oStream_.writeChars(s);
- this.oStream_.writeChar('\n');
-
- //this.oStream_.println(s);
- this.oStream_.flush();
-
- return s.length ();
- }
-
- /**
- * Send an array of bytes. Note that the method blocks.
- *@param b array of bytes to send
- *@param offset offset into the byte array to start sending from
- *@param length number of bytes to send
- *@return number of bytes sent
- */
- public int sendN (byte[] b, int offset, int length) throws IOException
- {
- this.oStream_.write (b, offset, length);
- this.oStream_.flush ();
- return length;
- }
-
- /**
- * Receive data and append it to the StringBuffer that was passed
- * in. Note that the method blocks.
- *@param s the StringBuffer to append the result of the recv to
- *@return the length of the String received
- */
- public int recv (StringBuffer s) throws IOException
- {
- int len = 0;
- char in = (char)this.iStream_.readByte();
-
- while (in != '\n') {
- s.append(in);
- in = (char)this.iStream_.readByte();
- len++;
- }
-
- return len;
- }
-
- /**
- * Receive an array of characters. This method blocks until either
- * all the bytes are read, the end of the stream is detected, or
- * an exception is thrown.
- *@param b byte array to receive the data in
- *@param offset the start offset of the data in the byte array.
- *@param n number of bytes to receive
- *@return n
- */
- public int recvN (byte[] b, int offset, int n) throws IOException
- {
- this.iStream_.readFully (b, offset, n);
- return n;
- }
-
- /**
- * Set the underlying input stream.
- *@param iStream the input stream
- */
- public void inputStream (InputStream iStream)
- {
- this.iStream_ = new DataInputStream(new BufferedInputStream(iStream));
- }
-
- /**
- * Get the underlying input stream.
- *@return the underlying input stream
- */
- public InputStream inputStream ()
- {
- return this.iStream_;
- }
-
- /**
- * Set the underlying output stream.
- *@param iStream the output stream
- */
- public void outputStream (OutputStream oStream)
- {
- this.oStream_ = new DataOutputStream(new BufferedOutputStream(oStream));
- }
-
- /**
- * Get the underlying output stream.
- *@return the underlying output stream
- */
- public OutputStream outputStream ()
- {
- return this.oStream_;
- }
-
- /**
- * Cleanup when the SOCK Stream is garbage collected.
- *@exception Throwable (Probably IOException from the socket level)
- */
- protected void finalize () throws Throwable
- {
- super.finalize ();
- this.close ();
- }
-
- private Socket socket_;
-
- // = The input and output streams (by default null)
- private DataInputStream iStream_;
- private DataOutputStream oStream_;
-}
diff --git a/java/src/Semaphore.java b/java/src/Semaphore.java
deleted file mode 100644
index 6c5427bb0c0..00000000000
--- a/java/src/Semaphore.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Semaphore.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.ASX.*;
-
-class TimedWaitSAdapter extends JACE.ASX.TimedWait
-{
- TimedWaitSAdapter (Object obj)
- {
- super (obj);
- }
-
- // Check to see if there are any semaphores available.
- public boolean condition ()
- {
- return this.count_ > 0;
- }
-
- // Increment the count by one
- public void increment ()
- {
- this.count_++;
- }
-
- // Decrement the count by one
- public void decrement ()
- {
- this.count_--;
- }
-
- // Set the count
- public void count (int c)
- {
- this.count_ = c;
- }
-
- private int count_ = 0;
-}
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- * Implementation of Dijkstra's counting semaphore in java.
- */
-public class Semaphore
-{
- /**
- * Create a Semaphore.
- *@param count semaphore count
- */
- public Semaphore (int c)
- {
- this.monitor_.count (c);
- }
-
- /**
- * Acquire the Semaphore. Note that this will block.
- *@exception InterruptedException exception during wait
- */
- public synchronized void acquire () throws InterruptedException
- {
- this.monitor_.timedWait ();
- this.monitor_.decrement ();
- }
-
- /**
- * Acquire the Semaphore. Throws a TimeoutException if the semaphore
- * isn't acquired before the given absolute time.
- *@param tv time (TimeValue) to wait until before throwing a
- * TimeoutException (unless the semaphore is acquired before that)
- *@exception TimeoutException wait timed out exception
- *@exception InterruptedException exception during wait
- */
- public synchronized void acquire (TimeValue tv)
- throws JACE.ASX.TimeoutException, InterruptedException
- {
- this.monitor_.timedWait (tv);
- this.monitor_.decrement ();
- }
-
- /**
- * Release the Semaphore.
- */
- public synchronized void release ()
- {
- this.monitor_.increment ();
- this.monitor_.signal ();
- }
-
- private TimedWaitSAdapter monitor_ = new TimedWaitSAdapter (this);
- // The monitor (adapter) to wait on
-}
diff --git a/java/src/ServiceConfig.java b/java/src/ServiceConfig.java
deleted file mode 100644
index e749076137b..00000000000
--- a/java/src/ServiceConfig.java
+++ /dev/null
@@ -1,375 +0,0 @@
- /*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ServiceConfig.java
- *
- * Services can be suspended, resumed, removed, and reloaded. Reloading requires a
- * call to prepareForReload method after removing a service (done in remove()). You can't access
- * the ServiceObjects that are loaded directly -- anything loaded with a class loader
- * must be wrapped and have its methods called via reflection. This is because a
- * loaded class doesn't exist in the same space as one loaded with the system loader.
- *
- *
- *@author Prashant Jain, Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import java.util.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-
-/**
- * <hr>
- * <p><b>TITLE</b><br>
- * Provide the base class that supplies common server daemon
- * operations. Also provides a global point for interacting with
- * the service repository.
- */
-public class ServiceConfig
-{
- /** Begins the process of loading a service configurator file:
- * parses the command line and calls processDirectives
- *
- *@exception FileNotFoundException Couldn't find service config file
- *@exception IOException Problem reading or parsing
- *@exception ClassNotFoundException Couldn't find a certain class
- *@exception IllegalAccessException Inappropriate method call on a class
- *@exception InstantiationException Couldn't create a certain class instance
- */
- public static int open (String [] args) throws FileNotFoundException, IOException, ClassNotFoundException, IllegalAccessException, InstantiationException
- {
- // Parse the command line
- ServiceConfig.parseArgs (args);
-
- // Create a repository and class loader
- if (ServiceConfig.svcRep_ == null)
- ServiceConfig.svcRep_ = new ServiceRepository ();
- if (ServiceConfig.loader_ == null)
- ServiceConfig.loader_ = new ServiceLoader();
-
- return ServiceConfig.processDirectives ();
-
- }
-
- /** Parses the command line
- * Valid command line options:
- * -b Run as a daemon (not implemented yet)
- * -d Debug mode
- * -n No defaults
- * -f <filename> Load services in the given file [see below for info]
- *
- */
- protected static void parseArgs (String [] args)
- {
- GetOpt getopt = new GetOpt (args, "bdnf:");
- for (int c; (c = getopt.next ()) != -1; )
- switch (c)
- {
- case 'b':
- // Note: not supported yet!
- ServiceConfig.beADaemon_ = true;
- break;
- case 'd':
- ServiceConfig.debug_ = true;
- break;
- case 'n':
- ServiceConfig.noDefaults_ = true;
- break;
- case 'f':
- ServiceConfig.serviceConfigFile_ = getopt.optarg ();
- break;
- default:
- ACE.ERROR ((char ) c + " is not a ServiceConfig option");
- break;
- }
- }
-
- /** Called by ParseNode subclass
- * Asks the Service Repository to spend a service
- */
- public static int suspend (String name)
- {
- return svcRep_.suspend(name);
- }
-
- /** Called by ParseNode subclass
- * Asks the Service Repository to resume a service
- */
- public static int resume (String name)
- {
- return svcRep_.resume(name);
- }
-
- /** Called by ParseNode subclass
- * Asks the Service Repository to remove a service, also calls
- * prepareForReload so the user doesn't have to.
- */
- public static int remove (String name)
- {
- int result = svcRep_.remove(name);
-
- prepareForReload();
-
- return result;
- }
-
- /** Should be called before the user wants to reload
- * a service. This calls garbage collection to
- * (hopefully) obliterate the names of any unused
- * service classes, and creates a new instance
- * of the ClassLoader so there won't be problems
- * reloading.
- */
- public static void prepareForReload()
- {
- ServiceConfig.loader_ = new ServiceLoader();
-
- System.gc();
-
- }
-
- /**
- * Parse a service configurator file, creating classes as necessary
- *
- * This is getting complicated, but there were too many installation problems when using
- * CUP and JLex to merit developing a grammar.
- *
- * Current formats:
- *
- * load <Service Name> <Full Class Name> Service_Object "<argument list>"
- *
- * resume <Service Name>
- * suspend <Service Name>
- * remove <Service Name>
- *
- *@exception FileNotFoundException Couldn't find the file (default "svc.conf")
- *@exception IOException Problem reading/parsing
- *@exception ClassNotFoundException Couldn't find a certain class
- *@exception IllegalAccessException Inappropriate method call
- *@exception InstantiationException Couldn't create a class instance
- */
- protected static int processDirectives () throws FileNotFoundException, IOException, ClassNotFoundException, IllegalAccessException, InstantiationException
- {
- if (ServiceConfig.serviceConfigFile_ == null)
- ServiceConfig.serviceConfigFile_ = "svc.conf";
-
- ACE.DEBUG("Processing directives in file " + ServiceConfig.serviceConfigFile_);
-
- File configFile = new File (ServiceConfig.serviceConfigFile_);
-
- // Check if file exists and is a normal file
- if (!configFile.exists () || !configFile.isFile ())
- throw new FileNotFoundException ("File " + ServiceConfig.serviceConfigFile_ + " not found");
-
- // Check if the file is readable
- if (!configFile.canRead ())
- throw new IOException ("File " + ServiceConfig.serviceConfigFile_ + " not readable");
-
- // Set up the stream
- FileInputStream fileIn = new FileInputStream (configFile);
-
- // Parse the file
- Reader r = new BufferedReader(new InputStreamReader(fileIn));
- StreamTokenizer in = new StreamTokenizer (r);
-
- // Set '#' as comment character to be ignored and set '/' as
- // ordinary character (was original comment character)
- // in.commentChar ('#');
- in.ordinaryChar ('/');
-
- // Set characters in ASCII range 33 to 47, ASCII range 91 to 96,
- // and ASCII range 123 to 126 as ordinary characters
- in.wordChars ('!', '/'); // ASCII range 33 to 47
- in.wordChars (':', '@'); // ASCII range 58 to 64
- in.wordChars ('[', '`'); // ASCII range 91 to 96
- in.wordChars ('{', '~'); // ASCII range 123 to 126
-
- String commandName = null;
- String serviceName = null;
- String className = null;
- String classType = null;
- String args = null;
- // Create a state machine
- int state = ServiceConfig.COMMAND_NAME;
-
- // The apply() method on ParseNode starts the process of actually executing the
- // desired action (suspend, load, etc)
- ParseNode result = null;
-
- while (in.nextToken () != StreamTokenizer.TT_EOF)
- {
- switch (state)
- {
- case ServiceConfig.COMMAND_NAME:
- if (in.ttype == StreamTokenizer.TT_WORD) {
- commandName = in.sval;
-
- // **** This should be changed so that instantiation is only done
- // when we find out the type (ServiceObject or something else) a few
- // words later. Right now it works because we only have ServiceObjects
- // to load.
- if (commandName.equals("load"))
- result = new AddServiceObjectNode();
- else
- if (commandName.equals("remove"))
- result = new RemoveNode();
- else
- if (commandName.equals("suspend"))
- result = new SuspendNode();
- else
- if (commandName.equals("resume"))
- result = new ResumeNode();
- else
- throw new IOException ("COMMAND NAME missing or invalid: " + commandName);
-
- ACE.DEBUG("Command node type: " + ((Object)result).getClass().getName());
-
-
- } else
- throw new IOException ("Illegal COMMAND NAME argument in file " + ServiceConfig.serviceConfigFile_);
- state = ServiceConfig.SERVICE_NAME;
- break;
- case ServiceConfig.SERVICE_NAME:
- if (in.ttype == StreamTokenizer.TT_WORD)
- serviceName = in.sval;
- else
- throw new IOException ("Illegal SERVICE NAME argument in file " + ServiceConfig.serviceConfigFile_);
-
-
- if (!commandName.equals("load")) {
- result.init(serviceName);
- result.apply();
- in.whitespaceChars (' ', ' ');
- state = ServiceConfig.SERVICE_NAME;
- } else
- state = ServiceConfig.CLASS_NAME;
- break;
- case ServiceConfig.CLASS_NAME:
- if (in.ttype == StreamTokenizer.TT_WORD)
- className = in.sval;
- else
- throw new IOException ("Illegal CLASS NAME argument in file " + ServiceConfig.serviceConfigFile_);
- state = ServiceConfig.CLASS_TYPE;
- break;
- case ServiceConfig.CLASS_TYPE:
- // This is only Service_Object or ServiceObject at this time
- if (in.ttype == StreamTokenizer.TT_WORD)
- classType = in.sval;
- else
- throw new IOException ("Illegal CLASS TYPE argument in file " + ServiceConfig.serviceConfigFile_);
- state = ServiceConfig.ARGS;
- // Set space to be an ordinary character to allow
- // arguments to be parsed in
- in.wordChars (' ', ' ');
- break;
- case ServiceConfig.ARGS:
- ACE.DEBUG("Processing arguments");
-
- args = new String("");
-
- if (in.ttype == StreamTokenizer.TT_WORD)
- {
- args = in.sval;
-
- // If just two double quotes, there are no args
- if (args.length() == 2) {
- args = new String("");
- } else
- args = args.substring(1, args.length() - 1);
- }
-
- // Quick hack until more parsing necessary -- set the needed data
- ((AddServiceObjectNode)result).init(serviceName, className, false);
- ((AddServiceObjectNode)result).params(args);
-
- result.apply();
-
- state = ServiceConfig.SERVICE_NAME;
- // Set space back to whitespace-character to extract the
- // next token
- in.whitespaceChars (' ', ' ');
- break;
- default:
- throw new IOException ("Illegal argument in file " + ServiceConfig.serviceConfigFile_);
- }
- }
- return 0;
- }
-
-
- /**
- * This is called when apply() is called on AddServiceObjectNodes. Similar
- * methods could be developed for later data types (AddStreamNode, etc). This
- * tries to load the ServiceObject and its classes. When trying to find info
- * from the C++ files, this generates possible file paths.
- */
- public static int initialize (AddServiceObjectNode son)
- {
- Class c = null;
-
- try {
-
- c = loader_.loadClass(son.locator(), true);
-
- } catch (ClassNotFoundException e) {
- ACE.ERROR("Can't find class with locator: " + son.locator());
- return -1;
- }
-
- try {
-
- Object service = c.newInstance();
- // Can't cast this to a ServiceObject, even though it will look just
- // like one -- Java puts things loaded with a non-standard class loader
- // in their own name space. The ServiceObjectRecord is a wrapper that
- // gets around this by using reflection.
- ServiceObjectRecord svcObjRec = new ServiceObjectRecord(service, son.name());
-
- // Split the argument array up into smaller pieces
- String [] argArray = OS.createStringArray (son.params(), " ");
-
- // Initialize the service -- start it running
- svcObjRec.init(argArray);
-
- // Put it in the service repository
- svcRep_.insert((ServiceRecord)svcObjRec);
-
- } catch (IllegalAccessException e) {
- ACE.ERROR("Error " + e);
- return -1;
- } catch (InstantiationException e) {
- ACE.ERROR("Error " + e);
- return -1;
- }
-
- return 0;
- }
-
- // Set by command line options
- private static boolean beADaemon_ = false;
- private static boolean debug_ = false;
- private static boolean noDefaults_ = false;
-
- public static String serviceConfigFile_ = "svc.conf";
-
- private static ServiceRepository svcRep_ = null;
- private static ServiceLoader loader_ = null;
-
- // States for the state-machine used in parsing the config file
- private final static int SERVICE_NAME = 0;
- private final static int CLASS_NAME = 1;
- private final static int CLASS_TYPE = 2;
- private final static int ARGS = 3;
- private final static int COMMAND_NAME = 4;
-
-
-}
-
-
-
diff --git a/java/src/ServiceLoader.java b/java/src/ServiceLoader.java
deleted file mode 100644
index 86f15dc57c9..00000000000
--- a/java/src/ServiceLoader.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ServiceLoader.java
- *
- * Implementation of a ClassLoader
- *
- *@author Prashant Jain, Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import java.util.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Misc.*;
-
-public class ServiceLoader extends ClassLoader
-{
- /**
- * Constructor
- */
- public ServiceLoader ()
- {
- super ();
- this.getClassPath ();
- }
-
- /**
- * Searches the class path for a given file
- *
- *@param filename File name to look for
- *@return Returns the absolute path to the file
- * (useful for package name)
- */
- public String findFileInClasspath (String filename)
- {
- // Checks for the given name across the classpath
- StringTokenizer tokens = new StringTokenizer (this.classPath_,
- this.pathSeparator_);
-
- while (tokens.hasMoreTokens())
- {
- String fn = tokens.nextToken() + this.fileSeparator_ + filename;
-
- File f = new File (fn);
-
- if (f.exists() && f.isFile() && f.canRead())
- return new String(f.getAbsolutePath());
- }
-
- return null;
- }
-
- /**
- * Load a class from across the network
- *@exception ClassNotFoundException Couldn't find the class
- */
- public Class loadClass (URL url, boolean resolve) throws ClassNotFoundException
- {
- Class newClass = null;
-
- // Extract the name of the class from the URL
-
- String className = url.getFile();
-
- // Remove any directory information
- int idx = className.lastIndexOf("/");
- if (idx != -1)
- className = className.substring(idx + 1);
-
- // Get rid of the class suffix
- idx = className.lastIndexOf(".class");
- if (idx != -1)
- className = className.substring(0, idx);
-
- ACE.DEBUG("The name of the class about to load is " + className);
-
- // Try to load it the class by reading in the bytes.
- // Note that we are not catching ClassNotFoundException here
- // since our caller will catch it.
- try
- {
- URLConnection urlConnection = url.openConnection ();
-
- // Get the input stream associated with the URL connection and
- // pipe it to a newly created DataInputStream
- DataInputStream i = new DataInputStream (urlConnection.getInputStream ());
-
- // Allocate a buffer big enough to hold the contents of the
- // data we are about to read
- byte [] buf = new byte [urlConnection.getContentLength ()];
-
- // Now read all the data into the buffer
- i.readFully (buf);
-
- newClass = defineClass (className, buf, 0, buf.length);
- // ACE.DEBUG ("Loaded class: "+ name);
-
- // Check if we need to load other classes referred to by this class.
- if (resolve)
- resolveClass (newClass);
- }
- catch (IOException e)
- {
- throw new ClassNotFoundException (e.toString ());
- }
- return newClass;
- }
-
-
- /**
- * Load a class file:
- *
- * @param fn A file name WITHOUT the .class extension
- * @param resolve Standard resolve flag -- user should set to true
- *
- * @return A Class file capable of creating quasi-useful instances
- * of the loaded class. They can't exist in the normal
- * Java space, though, so it's impossible to cast them
- * to something useful. Use a wrapper and reflection
- * as in ServiceRecords.
- *@exception ClassNotFoundException Couldn't find the class
- */
- public Class loadClass (String fn, boolean resolve) throws ClassNotFoundException
- {
- Class newClass;
-
- // Load built-in java classes with the system loader
- if (fn.startsWith("java")) {
- newClass = findSystemClass(fn);
- if (newClass == null)
- throw (new ClassNotFoundException());
- else
- return newClass;
- }
-
- // If given a dot separated qualified name, put it in OS path format.
- // This assumes the file separator is one char
- String str = new String(fn);
- if (str.indexOf('.') >= 0)
- str = str.replace('.', this.fileSeparator_.charAt(0));
- str = str + ".class";
-
- // Search the class path for the given file name
- String fullname = this.findFileInClasspath(str);
- if (fullname == null) {
-
- // If we can't find the class file, see if the
- // system can
- if ((newClass = findSystemClass(fn)) != null) {
- return newClass;
- } else
- throw (new ClassNotFoundException());
- }
-
- try
- {
- // Try to load it the class by reading in the bytes.
- // Note that we are not catching ClassNotFoundException here
- // since our caller will catch it.
- try
- {
- byte[] buf = bytesForClass (fullname);
-
- // ***** Note *****
- // This looks inside the class file and digs up the true
- // fully qualified class name. You need this to
- // load the class!
- String className = ClassReader.getClassName(fullname);
-
- if (className != null) {
- ACE.DEBUG("Defining class with name: " + className);
- newClass = defineClass (className, buf, 0, buf.length);
- } else {
- // Try it anyway
- newClass = defineClass (null, buf, 0, buf.length);
-
- ACE.ERROR("Unknown class name");
- }
-
- // Check if we need to load other classes referred to by this class.
- if (resolve)
- resolveClass (newClass);
-
- } catch (ClassNotFoundException e) {
-
- ACE.DEBUG ("Using default loader for class: " + fn);
-
- if ((newClass = findSystemClass (fn)) != null)
- return newClass;
- else
- throw (e); // Rethrow the exception
- }
- }
- catch (IOException e)
- {
- throw new ClassNotFoundException (e.toString ());
- }
-
- return newClass;
- }
-
- /**
- * Get system properties for later use
- */
- private void getClassPath ()
- {
- // Cache system properties that are needed when trying to find a
- // class file
- this.classPath_ = System.getProperty ("java.class.path", ".");
- this.pathSeparator_ = System.getProperty ("path.separator", ":");
- this.fileSeparator_ = System.getProperty ("file.separator", "/");
- }
-
- /**
- * Read file into a byte array
- */
- private byte[] bytesForClass (String name) throws IOException, ClassNotFoundException
- {
- // Set up the stream
- FileInputStream in = new FileInputStream (name);
-
- // Get byte count
- int length = in.available ();
-
- if (length == 0)
- throw new ClassNotFoundException (name);
-
- // Create an array of bytes to read the file in
- byte[] buf = new byte[length];
-
- // Read the file
- in.read (buf);
-
- // Return byte array
- return buf;
- }
-
- private String classPath_;
- // Class path that is loaded at construction
-
- private String pathSeparator_;
- // Platform-dependent path separator (e.g., : or ;)
-
- private String fileSeparator_;
- // Platform-dependent file separator (e.g., / or \)
-
- private String context_ = null;
-}
-
-
-
-
-
-
diff --git a/java/src/ServiceObject.java b/java/src/ServiceObject.java
deleted file mode 100644
index faf5a28daa4..00000000000
--- a/java/src/ServiceObject.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ServiceObject.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import JACE.ASX.*;
-import JACE.Reactor.*;
-
-public class ServiceObject implements EventHandler
-{
- /**
- * Initialize object when dynamic loading occurs. Overwrite this
- * method to do anything useful.
- *@return -1 (default implementation)
- */
- public int init (String [] args)
- {
- return -1;
- }
-
- /**
- * Terminate the object. Note that an object can not be explicitly
- * unloaded. Overwrite this method to do anything useful.
- *@return -1 (default implementation)
- */
- public int fini ()
- {
- return -1;
- }
-
- /**
- * Get information on an active object. Overwrite this method to do
- * anything useful.
- *@return null (default implementation)
- */
- public String info ()
- {
- return null;
- }
-
- /**
- * Called when timer expires. Overwrite this method to do
- * anything useful.
- *@param tv Time Value for when timer expired
- *@param obj An arbitrary object that was passed to the Timer Queue
- * (Asynchronous Completion Token)
- *@return -1
- */
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return -1;
- }
-
- /**
- * Request that this service suspend activity. Overwrite this
- * method to do anything useful.
- */
- public int suspend ()
- {
- return -1;
- }
-
- /**
- * Request that this service resume activity. Overwrite this
- * method to do anything useful.
- */
- public int resume ()
- {
- return -1;
- }
-}
diff --git a/java/src/ServiceObjectRecord.java b/java/src/ServiceObjectRecord.java
deleted file mode 100644
index 282d4360fbf..00000000000
--- a/java/src/ServiceObjectRecord.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ServiceObjectRecord.java
- *
- * Provided to show future symmetry. ServiceRecord currently
- * provides all the desired behavior necessary for a record
- * of a ServiceObject, but later there could be ModuleRecords,
- * etc.
- *
- *@see JACE.ServiceConfigurator.ServiceRecord;
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-public class ServiceObjectRecord extends ServiceRecord
-{
- public ServiceObjectRecord (Object so, String name)
- {
- super (so, name);
- }
-
-};
-
-
-
-
-
diff --git a/java/src/ServiceRecord.java b/java/src/ServiceRecord.java
deleted file mode 100644
index e0bd75a1405..00000000000
--- a/java/src/ServiceRecord.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ServiceRecord.java
- *
- * This class structure is used in the ServiceRepository. Each service
- * object, module, or stream in the repository should be wrapped by a
- * type of ServiceRecord. The contained object does the real work.
- *
- * Modules and Streams will require records with more functionality.
- *
- * The caller should never be allowed to access the Object within the
- * record -- casting will result in a ClassCastException because of
- * the problem with loading classes with a ClassLoader. To get
- * around this, all the method calls are made on the Object via
- * reflection.
- *
- *@see JACE.ServiceConfigurator.ServiceObject
- *@see JACE.ServiceConfigurator.ServiceRepository
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import java.lang.reflect.*;
-import JACE.OS.*;
-
-public class ServiceRecord
-{
- /**
- * Constructor
- *
- *@param service A java Object, the service
- *@param name Name of this service
- */
- ServiceRecord (Object service, String name)
- {
- this.service_ = service;
- this.name_ = name;
- this.suspended_ = false;
- }
-
- /**
- * Forward the call to suspend
- * @return -1 error
- */
- public int suspend()
- {
- this.setSuspend(true);
-
- Object result = this.invokeSimpleReflected("suspend");
-
- if (result == null)
- return -1;
- else
- return ((Integer)result).intValue();
- }
-
-
- /**
- * Forward the call to resume
- * @return -1 error
- */
- public int resume()
- {
- this.setSuspend(false);
-
- Object result = this.invokeSimpleReflected("resume");
-
- if (result == null)
- return -1;
- else
- return ((Integer)result).intValue();
- }
-
-
- /**
- * Initialize the service, provide the given command line args to it.
- *
- */
- public int init(String [] args)
- {
- Class types[] = new Class[1];
- if (args == null)
- args = new String[0];
-
- types[0] = args.getClass();
-
- // Find the method we want to call
- Method m;
- try {
- m = this.object().getClass().getMethod("init", types);
- } catch (NoSuchMethodException e) {
- ACE.ERROR("" + e);
- return -1;
- } catch (SecurityException e) {
- ACE.ERROR("" + e);
- return -1;
- }
-
- Class ptypes[] = m.getParameterTypes();
- //for (int x = 0; x < ptypes.length; x++)
- // System.err.println(ptypes[x].getName());
- Object params[] = new Object[1];
-
- params[0] = args;
-
- int result = -1;
- try {
- result = ((Integer)m.invoke(this.object(), params)).intValue();
- } catch (IllegalAccessException e) {
- ACE.ERROR("" + e);
- return -1;
- } catch (IllegalArgumentException e) {
- ACE.ERROR("" + e);
- return -1;
- } catch (InvocationTargetException e) {
- ACE.ERROR("init(): " + e.getTargetException());
- return -1;
- }
-
- return result;
- }
-
- /**
- * Prepare to close it
- */
- public int fini()
- {
- Object result = this.invokeSimpleReflected("fini");
-
- if (result == null)
- return -1;
- else
- return ((Integer)result).intValue();
- }
-
- /**
- * Obtain information about this service
- */
- public String info()
- {
- Object result = this.invokeSimpleReflected("info");
-
- if (result == null)
- return null;
- else
- return new String((String)result);
- }
-
- /** Invokes the method with the given name on the ServiceObject.
- * The invoked method must take no parameters for this to work.
- * Could be adjusted to throw a generic exception.
- */
- private Object invokeSimpleReflected(String name)
- {
- Method m;
-
- // find the desired method
- try {
- m = this.object().getClass().getMethod(name, null);
- } catch (NoSuchMethodException e) {
- ACE.ERROR("" + e);
- return null;
- } catch (SecurityException e) {
- ACE.ERROR("" + e);
- return null;
- }
-
- // Invoke it
- Object result = null;
-
- try {
- result = m.invoke(this.object(), null);
- } catch (IllegalAccessException e) {
- ACE.ERROR("" + e);
- } catch (IllegalArgumentException e) {
- ACE.ERROR("" + e);
- } catch (InvocationTargetException e) {
- ACE.ERROR(name + "(): " + e.getTargetException());
- }
-
- return result;
- }
-
- /**
- * Accessor for the name
- */
- public String name()
- {
- return new String(this.name_);
- }
-
- /** Set the name of the service
- */
- public void name(String name)
- {
- this.name_ = name;
- }
-
- /** Is this service suspended?
- */
- public boolean suspended()
- {
- return this.suspended_;
- }
-
- /** Set the suspended flag
- */
- void setSuspend (boolean suspended)
- {
- this.suspended_ = suspended;
- }
-
- /** Accessor for the contained Object. This should
- * never be available to the end user since they
- * might try casting the result.
- */
- Object object()
- {
- return this.service_;
- }
-
- /**
- * Set the contained object
- */
- void object(Object service)
- {
- this.service_ = service;
- }
-
- Object service_;
- String name_;
- boolean suspended_;
-};
-
-
-/*
-class ModuleRecord extends ServiceRecord
-{
-};
-
-class StreamRecord extends ServiceRecord
-{
-};
-*/
-
-
diff --git a/java/src/ServiceRepository.java b/java/src/ServiceRepository.java
deleted file mode 100644
index 4190646d213..00000000000
--- a/java/src/ServiceRepository.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * ServiceRepository.java
- *
- * The service repository stores the network services, allowing them to be removed, suspended,
- * resumed, etc. To reload a service, ServiceConfig.prepareForReload() must be called. This is
- * already done in the ServiceConfig.remove method.
- *
- *@see JACE.ServiceConfigurator.ServiceRecord;
- *@see JACE.ServiceConfigurator.ServiceConfig;
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import java.util.*;
-
-public class ServiceRepository
-{
- /**
- * Constructor
- */
- public ServiceRepository ()
- {
- this.serviceVector_ = new Vector();
- }
-
- /**
- * Constructor
- *
- *@param initialSize Initial vector size for the repository
- */
- public ServiceRepository (int initialSize)
- {
- this.serviceVector_ = new Vector (initialSize);
- }
-
- /**
- * Shut down all the services, closing them in reverse order of insertion
- *
- * Maybe should be called by finalize?
- */
- public int close()
- {
- for (int i = this.size() - 1; i >= 0; i--) {
- ServiceRecord rec = (ServiceRecord)this.serviceVector_.elementAt(i);
-
- rec.fini();
-
- this.serviceVector_.removeElementAt(i);
- }
-
- return 0;
- }
-
- /**
- * Insert a ServiceRecord into the repository.
- * (If already in, calls fini() and replaces)
- *
- *@param srvRec ServiceRecord to add
- */
- public void insert (ServiceRecord srvRec)
- {
- ServiceRecord alreadyIn = find(srvRec.name());
-
- // Replace the service
- if (alreadyIn != null) {
- alreadyIn.fini();
- this.serviceVector_.removeElement(alreadyIn);
- }
-
- this.serviceVector_.addElement(srvRec);
- }
-
- /**
- * Finds the ServiceRecord associated with a given
- * service name. Note -- the user should not try to
- * get a ServiceObject out of the ServiceRecord.
- * Same as saying ignoreSuspended is false on the
- * next method.
- *
- *@param name Name of the service to find
- */
- public ServiceRecord find (String name)
- {
- return this.find(name, false);
- }
-
- /** Return the service record for the given service. The caller
- * should NOT try to access a ServiceObject (or Module or Stream)
- * by taking it out of the ServiceRecord -- just make the calls
- * through the record!
- *
- *@param name Name of the service to find
- *@param ignoreSuspended Allow finding suspended services?
- */
- public ServiceRecord find (String name, boolean ignoreSuspended)
- {
- ServiceRecord rec;
-
- for (int i = 0; i < this.size(); i++) {
- rec = (ServiceRecord)this.serviceVector_.elementAt(i);
-
- if ((rec.name().equals(name)) && ((!ignoreSuspended) || (!rec.suspended())))
- return rec;
- }
-
- return null;
- }
-
- /** Take the given service out of the repository. This also sets the
- * reference in the repository to null to ensure there are no
- * hidden references to the old ServiceObject. To reload, the
- * ServiceConfig.prepareToReload method must be called. This is already
- * done in the ServiceConfig.remove method.
- */
- public int remove (String name)
- {
- ServiceRecord rec = this.find(name, false);
-
- if (rec == null)
- return -1;
-
- int index = this.serviceVector_.indexOf(rec);
-
- // Shut down the service
- rec.fini();
-
- // Make sure there are no hidden references left
- this.serviceVector_.setElementAt(null, index);
-
- this.serviceVector_.removeElementAt(index);
-
- return 0;
- }
-
- /**
- * Resume a suspended service
- *@param name Name of the service to resume
- */
- public int resume (String name)
- {
- ServiceRecord rec = this.find(name, false);
-
- if (rec == null)
- return -1;
-
- return rec.resume();
- }
-
- /**
- * Suspend a service
- *@param name Name of the service to suspend
- */
- public int suspend (String name)
- {
- ServiceRecord rec = this.find(name, true);
-
- if (rec == null)
- return -1;
-
- return rec.suspend();
- }
-
- /**
- * Returns the number of items in the repository
- */
- public int size ()
- {
- return this.serviceVector_.size();
- }
-
- // Vector representation
- Vector serviceVector_;
-};
-
-
-
-
-
-
-
-
diff --git a/java/src/StrategyAcceptor.java b/java/src/StrategyAcceptor.java
deleted file mode 100644
index d73c7b93006..00000000000
--- a/java/src/StrategyAcceptor.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * StrategyAcceptor.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-
-public class StrategyAcceptor
-{
- /**
- * Create an instance of StrategyAcceptor.
- *@param handlerFactory Svc Handler factory that is used to create
- * an instance of a Svc Handler when a connection is accepted.
- */
- public StrategyAcceptor (Class handlerFactory)
- {
- this (handlerFactory, null, null, null);
- }
-
- /**
- * Create an instance of StrategyAcceptor. Use the creation
- * strategy and the handlerFactory passed in to creae a new instance
- * of the Svc Handler.
- *@param handlerFactory Svc Handler factory that is used to create
- * an instance of a Svc Handler when a connection is accepted.
- *@param creStrategy Creation strategy to use to create a new
- * instance of the Svc Handler.
- *@param acceptStrategy Accept strategy to use to accept a new
- * connection into the Svc Handler.
- *@param activateStrategy Activate strategy to use to activate the
- * instance of the Svc Handler.
- */
- public StrategyAcceptor (Class handlerFactory,
- CreationStrategy creStrategy,
- AcceptStrategy acceptStrategy,
- ActivateStrategy activateStrategy)
- {
- // Cache everything
- this.handlerFactory_ = handlerFactory;
- this.creStrategy_ = creStrategy;
- this.acceptStrategy_ = acceptStrategy;
- this.activateStrategy_ = activateStrategy;
- }
-
- /**
- * Initialize the Strategy Acceptor. The method creates the
- * appropriate strategies as needed.
- *@param port port number where the server will listen for connections
- *@exception IOException Socket level error
- */
- public void open (int port) throws IOException
- {
- if (this.creStrategy_ == null)
- this.creStrategy_ = new CreationStrategy (this.handlerFactory_);
- if (this.acceptStrategy_ == null)
- this.acceptStrategy_ = new AcceptStrategy (port);
- else
- this.acceptStrategy_.open (port);
- if (this.activateStrategy_ == null)
- this.activateStrategy_ = new ActivateStrategy ();
- }
-
- /**
- * Accept a connection using the appropriate strategies.
- *
- *@exception SocketException Socket level error
- *@exception InstantiationException Problem creating a handler
- *@exception IllegalAccessException No strategy available
- *@exception IOException Socket level error
- */
- public void accept () throws SocketException,
- InstantiationException,
- IllegalAccessException,
- IOException
- {
- // Create a Svc_Handler using the appropriate Creation_Strategy
- SvcHandler sh = this.makeSvcHandler ();
-
- // Accept a connection into the Svc_Handler
- this.acceptSvcHandler (sh);
-
- // Activate the Svc_Handler
- this.activateSvcHandler (sh);
- }
-
- /**
- * Bridge method for creating a SvcHandler. The strategy for
- * creating a SvcHandler is configured into the Acceptor via it's
- * creStrategy_. If no strategy is passed in, the default behavior
- * of this method is to use the default CreationStrategy.
- *@return a new instance of the Svc Handler
- *@exception InstantiationException Couldn't create SvcHandler
- *@exception IllegalAccessException No strategy available
- */
- protected SvcHandler makeSvcHandler () throws InstantiationException, IllegalAccessException
- {
- // Create a new handler for the connection
- return this.creStrategy_.makeSvcHandler ();
- }
-
-
- /**
- * Bridge method for accepting the new connection into the
- * <SvcHandler>. The strategy for accepting into a SvcHandler is
- * configured into the Acceptor via it's acceptStrategy_. If no
- * strategy is passed in, the default behavior of this method is to
- * use the default AcceptStrategy.
- *@param sh Svc Handler in which to accept the connection
- *@return result of accepting a connection using the accept strategy
- *@exception SocketException Socket level error
- *@exception IOException Socket level error
- */
- protected int acceptSvcHandler (SvcHandler sh) throws SocketException, IOException
- {
- // Delegate responsibility to the appropriate strategy
- return this.acceptStrategy_.acceptSvcHandler (sh);
- }
-
- /**
- * Bridge method for activating a <SvcHandler>. The strategy for
- * activating a SvcHandler is configured into the Acceptor via it's
- * activateStrategy_. If no strategy is passed in, the default
- * behavior of this method is to use the default ActivateStrategy.
- *@param sh Svc Handler to activate
- *@return result of activating the Svc Handler
- */
- protected int activateSvcHandler (SvcHandler sh)
- {
- // Delegate responsibility to the appropriate strategy
- return this.activateStrategy_.activateSvcHandler (sh);
- }
-
- // Handler class that should be instantiated when a connection is
- // made with a client
- private Class handlerFactory_;
-
- // Creation Strategy
- private CreationStrategy creStrategy_;
-
- // Accept Strategy
- private AcceptStrategy acceptStrategy_;
-
- // Activation Strategy
- private ActivateStrategy activateStrategy_;
-}
diff --git a/java/src/Stream.java b/java/src/Stream.java
deleted file mode 100644
index 3c67efef220..00000000000
--- a/java/src/Stream.java
+++ /dev/null
@@ -1,440 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * Stream.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * This class is the primary abstraction for the ASX framework.
- * It is moduled after System V Stream.
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * A Stream consists of a stack of <Modules>, each of which
- * contains two <Tasks>.
- *</blockquote>
- */
-
-public class Stream
-{
-
- public Stream ()
- {
- this (null, null, null);
- }
-
- // Create a Stream consisting of <head> and <tail> as the Stream
- // head and Stream tail, respectively. If these are 0 then the
- // <ACE_Stream_Head> and <ACE_Stream_Tail> are used, respectively.
- // <arg> is the value past in to the open() methods of the tasks.
-
- public Stream (Object a,
- Module head,
- Module tail)
- {
- this.linkedUs_ = null;
- // this.final_close_ = this.lock_;
-
- if (this.open (a, head, tail) == -1)
- ACE.ERROR ("open" + head.name () + " " + tail.name ());
- }
-
- public int push (Module newTop)
- {
- if (this.pushModule (newTop,
- this.streamHead_.next (),
- this.streamHead_) == -1)
- return -1;
- else
- return 0;
- }
-
- // Note that the timeout tv is absolute time
- public int put (MessageBlock mb, TimeValue tv)
- {
- return this.streamHead_.writer ().put (mb, tv);
- }
-
- // Note that the timeout tv is absolute time
- public MessageBlock get (TimeValue tv) throws InterruptedException
- {
- return this.streamHead_.reader ().getq (tv);
- }
-
-// Return the "top" ACE_Module in a ACE_Stream, skipping over the
-// stream_head.
-
- public Module top ()
- {
- if (this.streamHead_.next () == this.streamTail_)
- return null;
- else
- return this.streamHead_.next ();
- }
-
-// Remove the "top" ACE_Module in a ACE_Stream, skipping over the
-// stream_head.
-
- public int pop (long flags)
- {
- if (this.streamHead_.next () == this.streamTail_)
- return -1;
- else
- {
- // Skip over the ACE_Stream head.
- Module top = this.streamHead_.next ();
- Module newTop = top.next ();
-
- this.streamHead_.next (newTop);
-
- // Close the top ACE_Module.
-
- top.close (flags);
-
- this.streamHead_.writer ().next (newTop.writer ());
- newTop.reader ().next (this.streamHead_.reader ());
-
- return 0;
- }
- }
-
-// Remove a named ACE_Module from an arbitrary place in the
-// ACE_Stream.
-
- public int remove (String name, long flags)
- {
- Module prev = null;
-
- for (Module mod = this.streamHead_;
- mod != null; mod = mod.next ())
- if (name.compareTo (mod.name ()) == 0)
- {
- if (prev == null) // Deleting ACE_Stream Head
- this.streamHead_.link (mod.next ());
- else
- prev.link (mod.next ());
-
- mod.close (flags);
- return 0;
- }
- else
- prev = mod;
-
- return -1;
- }
-
- public Module find (String name)
- {
- for (Module mod = this.streamHead_;
- mod != null;
- mod = mod.next ())
- if (name.compareTo (mod.name ()) == 0)
- return mod;
-
- return null;
- }
-
-// Actually push a module onto the stack...
-
- private int pushModule (Module newTop,
- Module currentTop,
- Module head)
- {
- Task ntReader = newTop.reader ();
- Task ntWriter = newTop.writer ();
- Task ctReader = null;
- Task ctWriter = null;
-
- if (currentTop != null)
- {
- ctReader = currentTop.reader ();
- ctWriter = currentTop.writer ();
- ctReader.next (ntReader);
- }
-
- ntWriter.next (ctWriter);
-
- if (head != null)
- {
- if (head != newTop)
- head.link (newTop);
- }
- else
- ntReader.next (null);
-
- newTop.next (currentTop);
-
- if (ntReader.open (newTop.arg ()) == -1)
- return -1;
-
- if (ntWriter.open (newTop.arg ()) == -1)
- return -1;
- return 0;
- }
-
- public synchronized int open (Object a,
- Module head,
- Module tail)
- {
- Task h1 = null, h2 = null;
- Task t1 = null, t2 = null;
-
- if (head == null)
- {
- h1 = new StreamHead ();
- h2 = new StreamHead ();
- head = new Module ("ACEStreamHead", h1, h2, a);
- }
-
- if (tail == null)
- {
- t1 = new StreamTail ();
- t2 = new StreamTail ();
- tail = new Module ("ACEStreamTail",
- t1, t2, a);
- }
-
- // Make sure *all* the allocation succeeded!
- if (h1 == null || h2 == null || head == null
- || t1 == null || t2 == null || tail == null)
- {
- // Close up!
- head.close (0);
- tail.close (0);
- return -1;
- }
-
- this.streamHead_ = head;
- this.streamTail_ = tail;
-
- if (this.pushModule (this.streamTail_,
- null, null) == -1)
- return -1;
- else if (this.pushModule (this.streamHead_,
- this.streamTail_,
- this.streamHead_) == -1)
- return -1;
- else
- return 0;
- }
-
- public synchronized int close (long flags)
- {
- if (this.streamHead_ != null
- && this.streamTail_ != null)
- {
- // Don't bother checking return value here.
- this.unlinkInternal ();
-
- int result = 0;
-
- // Remove and cleanup all the intermediate modules.
-
- while (this.streamHead_.next () != this.streamTail_)
- {
- if (this.pop (flags) == -1)
- result = -1;
- }
-
- // Clean up the head and tail of the stream.
- if (this.streamHead_.close (flags) == -1)
- result = -1;
- if (this.streamTail_.close (flags) == -1)
- result = -1;
-
- this.streamHead_ = null;
- this.streamTail_ = null;
-
- // Tell all threads waiting on the close that we are done.
- // this.final_close_.broadcast ();
- return result;
- }
- return 0;
- }
-
- public int control (int cmd, Object a) throws InterruptedException
- {
- IOCntlMsg ioc = new IOCntlMsg (cmd);
-
- // Create a data block that contains the user-supplied data.
- MessageBlock db =
- new MessageBlock (MessageType.MB_IOCTL,
- null,
- a);
-
- // Create a control block that contains the control field and a
- // pointer to the data block.
- MessageBlock cb =
- new MessageBlock (MessageType.MB_IOCTL,
- db,
- (Object) ioc);
-
- int result = 0;
-
- if (this.streamHead_.writer ().put (cb, null) == -1)
- result = -1;
- else if ((cb = this.streamHead_.reader ().getq (null)) == null)
- result = -1;
- else
- result = ((IOCntlMsg ) cb.obj ()).rval ();
-
- return result;
- }
-
-// Link two streams together at their bottom-most Modules (i.e., the
-// one just above the Stream tail). Note that all of this is premised
-// on the fact that the Stream head and Stream tail are non-NULL...
-// This must be called with locks held.
-
- private int linkInternal (Stream us)
- {
- this.linkedUs_ = us;
- // Make sure the other side is also linked to us!
- us.linkedUs_ = this;
-
- Module myTail = this.streamHead_;
-
- if (myTail == null)
- return -1;
-
- // Locate the module just above our Stream tail.
- while (myTail.next () != this.streamTail_)
- myTail = myTail.next ();
-
- Module otherTail = us.streamHead_;
-
- if (otherTail == null)
- return -1;
-
- // Locate the module just above the other Stream's tail.
- while (otherTail.next () != us.streamTail_)
- otherTail = otherTail.next ();
-
- // Reattach the pointers so that the two streams are linked!
- myTail.writer ().next (otherTail.reader ());
- otherTail.writer ().next (myTail.reader ());
- return 0;
- }
-
- public synchronized int link (Stream us)
- {
- return this.linkInternal (us);
- }
-
-// Must be called with locks held...
-
- private int unlinkInternal ()
- {
- // Only try to unlink if we are in fact still linked!
-
- if (this.linkedUs_ != null)
- {
- Module myTail = this.streamHead_;
-
- // Only relink if we still exist!
- if (myTail != null)
- {
- // Find the module that's just before our stream tail.
- while (myTail.next () != this.streamTail_)
- myTail = myTail.next ();
-
- // Restore the writer's next() link to our tail.
- myTail.writer ().next (this.streamTail_.writer ());
- }
-
- Module otherTail = this.linkedUs_.streamHead_;
-
- // Only fiddle with the other side if it in fact still remains.
- if (otherTail != null)
- {
- while (otherTail.next () != this.linkedUs_.streamTail_)
- otherTail = otherTail.next ();
-
- otherTail.writer ().next (this.linkedUs_.streamTail_.writer ());
-
- }
-
- // Make sure the other side is also aware that it's been unlinked!
- this.linkedUs_.linkedUs_ = null;
-
- this.linkedUs_ = null;
- return 0;
- }
- else
- return -1;
- }
-
- public synchronized int unlink ()
- {
- return this.unlinkInternal ();
- }
-
- public void dump ()
- {
- ACE.DEBUG ("-------- module links --------");
-
- for (Module mp = this.streamHead_; ; mp = mp.next ())
- {
- ACE.DEBUG ("module name = " + mp.name ());
- if (mp == this.streamTail_)
- break;
- }
-
- ACE.DEBUG ("-------- writer links --------");
-
- Task tp;
-
- for (tp = this.streamHead_.writer (); ; tp = tp.next ())
- {
- ACE.DEBUG ("writer queue name = " + tp.name ());
- tp.dump ();
- ACE.DEBUG ("-------\n");
- if (tp == this.streamTail_.writer ()
- || (this.linkedUs_ != null && tp == this.linkedUs_.streamHead_.reader ()))
- break;
- }
-
- ACE.DEBUG ("-------- reader links --------\n");
- for (tp = this.streamTail_.reader (); ; tp = tp.next ())
- {
- ACE.DEBUG ("reader queue name = " + tp.name ());
- tp.dump ();
- ACE.DEBUG ("-------\n");
- if (tp == this.streamHead_.reader ()
- || (this.linkedUs_ != null && tp == this.linkedUs_.streamHead_.writer ()))
- break;
- }
- }
-
- Module streamHead_ = null;
- // Pointer to the head of the stream.
-
- Module streamTail_ = null;
- // Pointer to the tail of the stream.
-
- Stream linkedUs_ = null;
- // Pointer to an adjoining linked stream.
-
- // = Synchronization objects used for thread-safe streams.
- // ACE_SYNCH_MUTEX lock_;
- // Protect the stream against race conditions.
-
- // ACE_SYNCH_CONDITION final_close_;
- // Use to tell all threads waiting on the close that we are done.
-
-}
-
-
diff --git a/java/src/StreamHead.java b/java/src/StreamHead.java
deleted file mode 100644
index fc4419d819e..00000000000
--- a/java/src/StreamHead.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * StreamHead.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Standard module that acts as the head of a ustream.
- *</blockquote>
- */
-
-public class StreamHead extends Task
-{
- // Module that acts as the head of a Stream.
-
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long l)
- {
- return 0;
- }
-
- public int svc ()
- {
- return -1;
- }
-
- private int control (MessageBlock mb)
- {
-
- IOCntlMsg ioc = (IOCntlMsg) mb.obj ();
- int cmd = ioc.cmd ();
-
- switch (cmd)
- {
- case IOCntlCmds.SET_LWM:
- case IOCntlCmds.SET_HWM:
- this.waterMarks (cmd, mb.cont ().length ());
- ioc.rval (0);
- break;
- default:
- return 0;
- }
- return ioc.rval ();
- }
-
- /* Performs canonical flushing at the ACE_Stream Head */
-
- private int canonicalFlush (MessageBlock mb)
- {
- String s = mb.base ();
- long f = (new Long (s)).longValue ();
-
- if ((f & TaskFlags.ACE_FLUSHR) != 0)
- {
- this.flush (TaskFlags.ACE_FLUSHALL);
- f &= ~TaskFlags.ACE_FLUSHR;
- }
- if ((f & TaskFlags.ACE_FLUSHW) != 0)
- return this.reply (mb, null);
- return 0;
- }
-
- // Will block forever to add the given MessageBlock
- public int put (MessageBlock mb)
- {
- return this.put (mb, null);
- }
-
- // tv is absolute time
- public int put (MessageBlock mb, TimeValue tv)
- {
- int res = 0;
- if (mb.msgType () == MessageType.MB_IOCTL
- && (res = this.control (mb)) == -1)
- return res;
-
- if (this.isWriter ())
- {
- return this.putNext (mb, tv);
- }
- else /* this.isReader () */
- {
- switch (mb.msgType ())
- {
- case MessageType.MB_FLUSH:
- return this.canonicalFlush (mb);
- default:
- break;
- }
-
- try
- {
- return this.putq (mb, tv);
- }
- catch (InterruptedException e)
- {
- return -1;
- }
- }
- }
-
- public void dump ()
- {
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-
-}
diff --git a/java/src/StreamTail.java b/java/src/StreamTail.java
deleted file mode 100644
index 1c28c676c9c..00000000000
--- a/java/src/StreamTail.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * StreamTail.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Standard module that acts as the tail of a ustream.
- *</blockquote>
- */
-
-public class StreamTail extends Task
-{
- // Module that acts as the tail of a Stream.
-
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long l)
- {
- return 0;
- }
-
- public int svc ()
- {
- return -1;
- }
-
- private int control (MessageBlock mb)
- {
- IOCntlMsg ioc = (IOCntlMsg) mb.obj ();
- int cmd = ioc.cmd ();
-
- switch (cmd)
- {
- case IOCntlCmds.SET_LWM:
- case IOCntlCmds.SET_HWM:
- {
- int size = mb.cont ().length ();
-
- this.waterMarks (cmd, size);
- this.sibling ().waterMarks (cmd, size);
- ioc.rval (0);
- break;
- }
- default:
- mb.msgType (MessageType.MB_IOCNAK);
- }
- return this.reply (mb, null);
- }
-
- // Perform flush algorithm as though we were the driver
- private int canonicalFlush (MessageBlock mb)
- {
- String s = mb.base ();
- long f = (new Long (s)).longValue ();
-
- if ((f & TaskFlags.ACE_FLUSHW) != 0)
- {
- this.flush (TaskFlags.ACE_FLUSHALL);
- f &= ~TaskFlags.ACE_FLUSHW;
- }
- if ((f & TaskFlags.ACE_FLUSHR) != 0)
- {
- this.sibling ().flush (TaskFlags.ACE_FLUSHALL);
- return this.reply (mb, null);
- }
- return 0;
- }
-
- // put the given MessageBlock without a timeout (block forever if
- // necessary)
- public int put (MessageBlock mb)
- {
- return this.put (mb, null);
- }
-
- // tv is an absolute time timeout
- public int put (MessageBlock mb, TimeValue tv)
- {
- if (this.isWriter ())
- {
- switch (mb.msgType ())
- {
- case MessageType.MB_IOCTL:
- return this.control (mb);
- /* NOTREACHED */
- default:
- break;
- }
- }
-
- return -1;
- }
-
- public void dump ()
- {
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-
-}
diff --git a/java/src/SuspendNode.java b/java/src/SuspendNode.java
deleted file mode 100644
index 5b16a368458..00000000000
--- a/java/src/SuspendNode.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ServiceConfigurator
- *
- * = FILENAME
- * SuspendNode.java
- *
- * Used when a service is specified to be suspended based on a line
- * in a service configurator file. The actual implementation of the
- * service being suspended does the work.
- *
- *@author Everett Anderson
- *
- *************************************************/
-package JACE.ServiceConfigurator;
-
-import java.io.*;
-import JACE.OS.*;
-
-class SuspendNode extends ParseNode
-{
- public SuspendNode ()
- {
- }
-
- public void apply ()
- {
- ACE.DEBUG("Suspend Node apply: " + this.name_);
-
- if (JACE.ServiceConfigurator.ServiceConfig.suspend(this.name_) == -1)
- ACE.ERROR("Error suspending " + this.name_);
- }
-};
diff --git a/java/src/SvcHandler.java b/java/src/SvcHandler.java
deleted file mode 100644
index 17bac41a62d..00000000000
--- a/java/src/SvcHandler.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Connection
- *
- * = FILENAME
- * SvcHandler.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.SOCK_SAP.*;
-import JACE.ASX.*;
-import JACE.Reactor.*;
-
-public abstract class SvcHandler extends Task
-{
-
- /**
- * Do nothing constructor.
- */
- public SvcHandler ()
- {
- }
-
- /**
- * Set the stream using the SOCKStream passed in. This sets the
- * underlying peer
- *@param s SOCK Stream to use for the connection
- */
- public void setHandle (SOCKStream s) throws IOException
- {
- this.stream_ = s;
- }
-
- /**
- * Get the underlying peer
- *@return the underlying peer
- */
- public SOCKStream peer ()
- {
- return this.stream_;
- }
-
- /**
- * Abstract method that subclasses must define to allow
- * initialization to take place.
- */
- public abstract int open (Object obj);
-
- /**
- * Provide a default implementation to simplify ancestors.
- *@return 0
- */
- public int close (long flags)
- {
- return 0;
- }
-
- /**
- * Provide a default implementation to simplify ancestors.
- *@return -1
- */
- public int put (MessageBlock mb, TimeValue tv)
- {
- return -1;
- }
-
- /**
- * Provide a default implementation to simplify ancestors.
- *@param tv Time Value when the event occured
- *@param obj An arbitrary object that was passed to the Timer Queue
- * (Asynchronous Completion Token)
- */
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return -1;
- }
-
- protected SOCKStream stream_;
-}
diff --git a/java/src/Task.java b/java/src/Task.java
deleted file mode 100644
index 825254e69a8..00000000000
--- a/java/src/Task.java
+++ /dev/null
@@ -1,439 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * Task.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-import JACE.OS.*;
-import JACE.Reactor.*;
-import JACE.Concurrency.*;
-
-public abstract class Task implements Runnable, EventHandler
-{
- // = Initialization/termination methods.
-
- /**
- * Initialize a Task. Note, we allocate a message queue ourselves.
- */
- public Task ()
- {
- this.msgQueue_ = new MessageQueue ();
- this.thrMgr_ = null;
- }
-
- /**
- * Initialize a Task. Note, we use the message queue and thread
- * manager supplied by the user.
- *@param mq Message Queue to hold list of messages on the Task
- *@param thrMgr Thread Manager that manages all the spawned threads
- */
- public Task (MessageQueue mq,
- ThreadManager thrMgr)
- {
- this.msgQueue_ = mq;
- this.thrMgr_ = thrMgr;
- }
-
- /**
- * Not meant to be invoked by the user directly!. This needs to be
- * in the public interface in order to get invoked by Thread
- * class.
- */
- public void run ()
- {
- this.svc ();
- }
-
- // = Initialization and termination hooks (note that these *must* be
- // defined by subclasses).
-
- /**
- * Hook called to open a Task.
- *@param obj used to pass arbitrary information
- */
- public abstract int open (Object obj);
-
- /**
- * Hook called to close a Task.
- */
- public abstract int close (long flags);
-
- // = Immediate and deferred processing methods, respectively.
-
- /**
- * Transfer a message into the queue to handle immediate
- * processing.
- *@param mb Message Block to handle immediately
- *@param tv Latest time to wait until (absolute time)
- */
- public abstract int put (MessageBlock mb, TimeValue tv);
-
- /**
- * Run by a daemon thread to handle deferred processing. Note, that
- * to do anything useful, this method should be overriden by the
- * subclass.
- *@return default implementation always returns 0.
- */
- public int svc ()
- {
- return 0;
- }
-
- /**
- * Set the underlying Thread Manager.
- *@param t Thread Manager to use
- */
- public synchronized void thrMgr (ThreadManager t)
- {
- this.thrMgr_ = t;
- }
-
- /**
- * Get the Thread Manager.
- *@return Underlying Thread Manager
- */
- public synchronized ThreadManager thrMgr ()
- {
- return this.thrMgr_;
- }
-
- // = Active object method.
-
- /**
- * Turn the task into an active object. That is, having <nThreads>
- * separate threads of control that all invoke Task::svc.
- *@param flags Task Flags
- *@param nThreads number of threads to spawn
- *@param forceActive whether to force creation of new threads or not
- *@return -1 if failure occurs, 1 if Task is already an active
- * object and <forceActive> is false (doesn't *not* create a new
- * thread in this case), and 0 if Task was not already an active
- * object and a thread is created successfully or thread is an active
- * object and <forceActive> is true.
- */
- public synchronized int activate (long flags, int nThreads, boolean forceActive)
- {
- // Create a Thread Manager if we do not already have one
- if (this.thrMgr_ == null)
- this.thrMgr_ = new ThreadManager ();
-
- if (this.thrCount () > 0 && forceActive == false)
- return 1; // Already active.
- this.flags_ = flags;
-
- if (ACE.BIT_ENABLED (flags, TaskFlags.THR_DAEMON))
- this.thrMgr_.spawnN (nThreads, this, true); // Spawn off all threads as daemon threads
- else // Spawn off all threads as normal threads
- this.thrMgr_.spawnN (nThreads, this, false);
-
- return 0;
- }
-
- // = Suspend/resume a Task
-
- /**
- * Suspend a task.
- */
- public synchronized void suspend ()
- {
- // Suspend all threads
- if (this.thrMgr_ != null)
- this.thrMgr_.thrGrp ().suspend ();
- }
-
- /**
- * Resume a suspended task.
- */
- public synchronized void resume ()
- {
- // Resume all threads
- if (this.thrMgr_ != null)
- this.thrMgr_.thrGrp ().resume ();
- }
-
- /**
- * Get the current group name.
- *@return name of the current thread group
- */
- public synchronized String grpName ()
- {
- if (this.thrMgr_ != null)
- return this.thrMgr_.thrGrp ().getName ();
- else
- return null;
- }
-
- /**
- * Get the message queue associated with this task.
- *@return the message queue associated with this task.
- */
- public MessageQueue msgQueue ()
- {
- return this.msgQueue_;
- }
-
- /**
- * Set the message queue associated with this task.
- *@param mq Message Queue to use with this Task.
- */
- public void msgQueue (MessageQueue mq)
- {
- this.msgQueue_ = mq;
- }
-
- /**
- * Get the number of threads currently running within the Task.
- *@return the number of threads currently running within the Task.
- * 0 if we're a passive object, else > 0.
- */
- public synchronized int thrCount ()
- {
- if (this.thrMgr_ != null)
- return this.thrMgr_.thrGrp ().activeCount ();
- else
- return 0;
- }
-
- /**
- * Set the Task flags
- *@param flags Task Flags
- */
- public synchronized void flags (long flags)
- {
- this.flags_ = flags;
- }
-
- /**
- * Get the Task flags
- *@return Task Flags
- */
- public synchronized long flags ()
- {
- return this.flags_;
- }
-
- // = Message queue manipulation methods.
-
-
- /*
- * Dump debug information.
- */
- public void dump ()
- {
- }
-
- /**
- * Insert a message into the queue, blocking forever if necessary.
- *@param mb Message Block to insert
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected int putq (MessageBlock mb) throws InterruptedException
- {
- return this.putq(mb, null);
- }
-
- /**
- * Insert message into the message queue.
- *@param mb Message Block to insert into the Message Queue
- *@param tv time to wait until (absolute time)
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected int putq (MessageBlock mb, TimeValue tv) throws InterruptedException
- {
- return this.msgQueue_.enqueueTail (mb, tv);
- }
-
- /**
- * Extract the first message from the queue, blocking forever if
- * necessary.
- *@return the first Message Block from the Message Queue.
- *@exception InterrupteException Interrupted while accessing queue
- */
- protected MessageBlock getq() throws InterruptedException
- {
- return this.getq(null);
- }
-
- /**
- * Extract the first message from the queue. Note that the call is blocking.
- *@return the first Message Block from the Message Queue.
- *@param tv Latest time to wait until (absolute time)
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected MessageBlock getq (TimeValue tv) throws InterruptedException
- {
- return this.msgQueue_.dequeueHead (tv);
- }
-
- /**
- * Return a message back to the queue.
- *@param mb Message Block to return back to the Message Queue
- *@param tv Latest time to wait until (absolute time)
- *@exception java.lang.InterruptedException Interrupted while accessing queue
- */
- protected int ungetq (MessageBlock mb, TimeValue tv) throws InterruptedException
- {
- return this.msgQueue_.enqueueHead (mb, tv);
- }
-
- /**
- * Transfer message to the adjacent ACETask in an ACEStream.
- *@param mb Message Block to transfer to the adjacent Task
- *@param tv Latest time to wait until (absolute time)
- *@return -1 if there is no adjacent Task, else the return value of
- * trying to put the Message Block on that Task's Message Queue.
- */
- protected int putNext (MessageBlock mb, TimeValue tv)
- {
- return this.next_ == null ? -1 : this.next_.put (mb, tv);
- }
-
- /**
- * Turn the message back around. Puts the message in the sibling's
- * Message Queue.
- *@param mb Message Block to put into sibling's Message Queue
- *@param tv Latest time to wait until (absolute time)
- *@return -1 if there is no adjacent Task to the sibling, else the
- * return value of trying to put the Message Block on sibling's
- * Message Queue.
- */
- protected int reply (MessageBlock mb, TimeValue tv)
- {
- return this.sibling ().putNext (mb, tv);
- }
-
- // = ACE_Task utility routines to identify names et al.
-
- /**
- * Get the name of the enclosing Module.
- *@return the name of the enclosing Module if there's one associated
- * with the Task, else null.
- */
- protected String name ()
- {
- if (this.mod_ == null)
- return null;
- else
- return this.mod_.name ();
- }
-
- /**
- * Get the Task's sibling.
- *@return the Task's sibling if there's one associated with the
- * Task's Module, else null.
- */
- protected Task sibling ()
- {
- if (this.mod_ == null)
- return null;
- else
- return this.mod_.sibling (this);
- }
-
- /**
- * Set the Task's module.
- *@param mod the Task's Module.
- */
- protected void module (Module mod)
- {
- this.mod_ = mod;
- }
-
- /**
- * Get the Task's module.
- *@return the Task's Module if there is one, else null.
- */
- protected Module module ()
- {
- return this.mod_;
- }
-
- /**
- * Check if queue is a reader.
- *@return true if queue is a reader, else false.
- */
- protected boolean isReader ()
- {
- return (ACE.BIT_ENABLED (this.flags_, TaskFlags.ACE_READER));
- }
-
- /**
- * Check if queue is a writer.
- *@return true if queue is a writer, else false.
- */
- protected boolean isWriter ()
- {
- return (ACE.BIT_DISABLED (this.flags_, TaskFlags.ACE_READER));
- }
-
- // = Pointers to next ACE_Queue (if ACE is part of an ACE_Stream).
-
- /**
- * Get next Task pointer.
- *@return pointer to the next Task
- */
- protected Task next ()
- {
- return this.next_;
- }
-
- /**
- * Set next Task pointer.
- *@param task next task pointer
- */
- protected void next (Task task)
- {
- this.next_ = task;
- }
-
- // Special routines corresponding to certain message types.
-
- /**
- * Flush the Message Queue
- *@return 0 if Message Queue is null, 1 if flush succeeds, -1 if
- * ACE_FLUSHALL bit is not enabled in flags.
- */
- protected int flush (long flag)
- {
- if (ACE.BIT_ENABLED (flag, TaskFlags.ACE_FLUSHALL))
- return (this.msgQueue_ == null ? 0 : 1);
- else
- return -1;
- }
-
-
- /**
- * Manipulate watermarks.
- *@param cmd IOCntlCmd
- *@param size watermark
- */
- protected void waterMarks (int cmd, int size)
- {
- if (cmd == IOCntlCmds.SET_LWM)
- this.msgQueue_.lowWaterMark (size);
- else /* cmd == IOCntlMsg.SET_HWM */
- this.msgQueue_.highWaterMark (size);
- }
-
- private ThreadManager thrMgr_ = null;
- // Thread_Manager that manages all the spawned threads
-
- private long flags_;
- // Task flags.
-
- private MessageQueue msgQueue_;
- // List of messages on the Task..
-
- private Task next_;
- // Adjacent ACE_Task.
-
- private Module mod_;
- // Back-pointer to the enclosing module.
-}
diff --git a/java/src/TaskFlags.java b/java/src/TaskFlags.java
deleted file mode 100644
index 590e514b5e2..00000000000
--- a/java/src/TaskFlags.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TaskFlags.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-public abstract class TaskFlags
-{
- /** Identifies a Task as being the "reader" in a Module. */
- public static final int ACE_READER = 01;
-
- /** Just flush data messages in the queue. */
- public static final int ACE_FLUSHDATA = 02;
-
- /** Flush all messages in the Queue. */
- public static final int ACE_FLUSHALL = 04;
-
- /** Flush read queue */
- public static final int ACE_FLUSHR = 010;
-
- /** Flush write queue */
- public static final int ACE_FLUSHW = 020;
-
- /** Flush both queues */
- public static final int ACE_FLUSHRW = 030;
-
- /** Identifies a thread as suspended */
- public static final int THR_SUSPENDED = 0x00000080;
-
- /** Identifies a thread as a daemon thread */
- public static final int THR_DAEMON = 0x00000100;
-
- // Default private constructor to avoid instantiation
- private TaskFlags ()
- {
- }
-}
diff --git a/java/src/ThreadManager.java b/java/src/ThreadManager.java
deleted file mode 100644
index 5043d26511e..00000000000
--- a/java/src/ThreadManager.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * ThreadManager.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.OS.*;
-
-public class ThreadManager
-{
- /**
- * Default constructor
- */
- public ThreadManager ()
- {
- this (ACE.DEFAULT_THREAD_GROUP_NAME);
- }
-
- /**
- * Create a Thread Manager.
- *@param groupName name of the thread group that the Thread Manager
- * will manage
- */
- public ThreadManager (String groupName)
- {
- this.thrGrp_ = new ThreadGroup (groupName);
- if (this.thrGrp_ == null)
- ACE.ERROR ("Thread group create failed");
- }
-
- /**
- * Create a new thread.
- *@param thr the caller whose run method will be invoked when the
- * thread has been spawned
- *@param daemon flag indicating whether the thread should be
- * spawned off as a daemon thread
- */
- public void spawn (Runnable thr,
- boolean daemon)
- {
- Thread t = new Thread (this.thrGrp_, thr);
- if (daemon) // Set the thread to be a daemon thread
- t.setDaemon (true);
- t.start ();
- }
-
- /**
- * Create a new thread and also give it a name.
- *@param thr the caller whose run method will be invoked when the
- * thread has been spawned
- *@param threadName the name of the new thread
- *@param daemon flag indicating whether the thread should be
- * spawned off as a daemon thread
- */
- public void spawn (Runnable thr,
- String threadName,
- boolean daemon)
- {
- Thread t = new Thread (this.thrGrp_, thr, threadName);
- if (daemon) // Set the thread to be a daemon thread
- t.setDaemon (true);
- t.start ();
- }
-
-
- /**
- * Create <n> new threads.
- *@param n the number of threads to spawn
- *@param thr the caller whose run method will be invoked by each of
- * the <n> threads
- *@param daemon flag indicating whether the threads should be
- * spawned off as daemon threads
- */
- public void spawnN (int n,
- Runnable thr,
- boolean daemon)
- {
- // Spawn off all the threads.
- for (int i = 0; i < n; i++)
- {
- this.spawn (thr, daemon);
- }
- }
-
- /**
- * Get the thread group containing all the threads. Note that the
- * thread group can be used to get information regarding number of
- * active threads as well as to suspend/resume all the threads in
- * the group.
- *@return the thread group that contains all the threads managed by
- * the Thread Manager
- */
- public ThreadGroup thrGrp ()
- {
- return this.thrGrp_;
- }
-
- private ThreadGroup thrGrp_;
- // Thread Group that contains all the spawned threads
-
-}
diff --git a/java/src/ThruTask.java b/java/src/ThruTask.java
deleted file mode 100644
index aebc8eb1f48..00000000000
--- a/java/src/ThruTask.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * ThruTask.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.ASX;
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Standard module that acts as a "no op", simply passing on all
- * data to its adjacent neighbor.
- *</blockquote>
- */
-public class ThruTask extends Task
-{
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int put (MessageBlock msg, TimeValue tv)
- {
- return this.putNext (msg, tv);
- }
-
- public int svc ()
- {
- return -1;
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-}
diff --git a/java/src/TimeValue.java b/java/src/TimeValue.java
deleted file mode 100644
index 274fdd8cc3d..00000000000
--- a/java/src/TimeValue.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Reactor
- *
- * = FILENAME
- * TimeValue.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-//package JACE.Reactor;
-package JACE.ASX;
-
-public class TimeValue
-{
- public final static TimeValue zero = new TimeValue (0,0);
-
- /**
- * Default constructor. This creates a TimeValue that is
- * equal to TimeValue.zero.
- */
- public TimeValue ()
- {
- this (0, 0);
- }
-
- /**
- * Constructor
- *@param sec seconds
- */
- public TimeValue (long sec)
- {
- this (sec, 0);
- }
-
- /**
- * Constructor
- *@param sec seconds
- *@param nanos nanoseconds
- */
- public TimeValue (long sec, int nanos)
- {
- this.set (sec, nanos);
- }
-
- /**
- * Sets the seconds and nanoseconds of Time Value
- *@param sec seconds
- *@param nanos nanoseconds
- */
- public void set (long sec, int nanos)
- {
- this.millisec_ = sec * 1000;
- this.nanos_ = nanos;
- this.normalize ();
- }
-
- /**
- * Get seconds
- *@return Seconds
- */
- public long sec ()
- {
- return this.millisec_/1000;
- }
-
- /**
- * Get nanoseconds
- *@return Nanoseconds
- */
- public int nanos ()
- {
- return this.nanos_;
- }
-
- /**
- * Get time in milliseconds.
- *@return time in milliseconds
- */
- public long getMilliTime ()
- {
- return this.millisec_;
- }
-
- /**
- * Get a String representation of the Time Value.
- *@return String representation of the Time Value
- */
- public String toString ()
- {
- return (new Long (this.millisec_/1000)).toString () + ":" +
- (new Integer (this.nanos_)).toString ();
- }
-
- /**
- * Get current time.
- *@return the current system time as a new TimeValue
- */
- public static TimeValue getTimeOfDay ()
- {
- return new TimeValue (System.currentTimeMillis ()/1000);
- }
-
- /**
- * Return a new TimeValue that represents the current system time
- * of day offset by the given number of seconds and nanoseconds.
- *@param sec Number of seconds to offset by
- *@param nanos Number of nanoseconds to offset by
- *@see JACE.ASX.TimeValue
- *@return TimeValue for the system time plus the given offset
- */
- public static TimeValue relativeTimeOfDay(long sec, int nanos)
- {
- return new TimeValue ((System.currentTimeMillis() / 1000) + sec,
- nanos);
- }
-
- /**
- * Return a new TimeValue that represents the current system time
- * of day offset by the given TimeValue.
- *@param tv TimeValue to offset by
- *@see JACE.ASX.TimeValue
- *@return TimeValue for the system time plus the given offset
- */
- public static TimeValue relativeTimeOfDay(TimeValue offset)
- {
- return new TimeValue ((System.currentTimeMillis() / 1000) +
- offset.sec(),
- offset.nanos());
- }
-
- /**
- * Compare two Time Values for equality.
- *@param tv Time Value to compare with
- *@return true if the two Time Values are equal, false otherwise
- */
- public boolean equals (TimeValue tv)
- {
- return this.millisec_ == (tv.sec () * 1000) && this.nanos_ == tv.nanos ();
- }
-
- /**
- * Compare two Time Values for non-equality.
- *@param tv Time Value to compare with
- *@return true if the two Time Values are not equal, false otherwise
- */
- public boolean notEquals (TimeValue tv)
- {
- return !this.equals (tv);
- }
-
- /**
- * Add two Time Values.
- *@param tv1 The first Time Value
- *@param tv2 The second Time Value
- *@return sum of the two Time Values.
- */
- public static TimeValue plus (TimeValue tv1, TimeValue tv2)
- {
- TimeValue tv = new TimeValue (tv1.sec () + tv2.sec (),
- tv1.nanos () + tv2.nanos ());
- tv.normalize ();
- return tv;
- }
-
- /**
- * Subtract two Time Values.
- *@param tv1 The first Time Value
- *@param tv2 The second Time Value
- *@return difference of the two Time Values.
- */
- public static TimeValue minus (TimeValue tv1, TimeValue tv2)
- {
- TimeValue tv = new TimeValue (tv1.sec () - tv2.sec (),
- tv1.nanos () - tv2.nanos ());
- tv.normalize ();
- return tv;
- }
-
- /**
- * Add Time Value to "this".
- *@param tv The Time Value to add to this.
- */
- public void plusEquals (TimeValue tv)
- {
- this.set (this.sec () + tv.sec (),
- this.nanos () + tv.nanos ());
- this.normalize ();
- }
-
- /**
- * Subtract Time Value from "this".
- *@param tv The Time Value to subtract from this.
- */
- public void minusEquals (TimeValue tv)
- {
- this.set (this.sec () - tv.sec (),
- this.nanos () - tv.nanos ());
- this.normalize ();
- }
-
- /**
- * Compare two Time Values for less than.
- *@param tv Time Value to compare with
- *@return true if "this" is less than tv, false otherwise
- */
- public boolean lessThan (TimeValue tv)
- {
- return tv.greaterThan (this);
- }
-
- /**
- * Compare two Time Values for greater than.
- *@param tv Time Value to compare with
- *@return true if "this" is greater than tv, false otherwise
- */
- public boolean greaterThan (TimeValue tv)
- {
- if (this.sec () > tv.sec ())
- return true;
- else if (this.sec () == tv.sec ()
- && this.nanos () > tv.nanos ())
- return true;
- else
- return false;
- }
-
- /**
- * Compare two Time Values for <=.
- *@param tv Time Value to compare with
- *@return true if "this" <= tv, false otherwise
- */
- public boolean lessThanEqual (TimeValue tv)
- {
- return tv.greaterThanEqual (this);
- }
-
- /**
- * Compare two Time Values for >=.
- *@param tv Time Value to compare with
- *@return true if "this" >= tv, false otherwise
- */
- public boolean greaterThanEqual (TimeValue tv)
- {
- return this.sec () >= tv.sec () && this.nanos () >= tv.nanos ();
- }
-
- private void normalize ()
- {
- if (this.nanos_ >= ONE_MILLISECOND)
- {
- do
- {
- this.millisec_++;
- this.nanos_ -= ONE_MILLISECOND;
- }
- while (this.nanos_ >= ONE_MILLISECOND);
- }
- else if (this.nanos_ <= -ONE_MILLISECOND)
- {
- do
- {
- this.millisec_--;
- this.nanos_ += ONE_MILLISECOND;
- }
- while (this.nanos_ <= -ONE_MILLISECOND);
- }
-
- if (this.millisec_ >= 1 && this.nanos_ < 0)
- {
- this.millisec_--;
- this.nanos_ += ONE_MILLISECOND;
- }
- else if (this.millisec_ < 0 && this.nanos_ > 0)
- {
- this.millisec_++;
- this.nanos_ -= ONE_MILLISECOND;
- }
- }
-
- private long millisec_;
- private int nanos_;
- private final static int ONE_MILLISECOND = 1000000;
-}
diff --git a/java/src/TimedWait.java b/java/src/TimedWait.java
deleted file mode 100644
index a8f337c086b..00000000000
--- a/java/src/TimedWait.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TimedWait.java
- *
- *@author Prashant Jain and Doug Schmidt
- *
- *************************************************/
-package JACE.ASX;
-
-public abstract class TimedWait
-{
- /**
- * Default Constructor. Sets "this" to be used for the delegation of
- * the wait() call to.
- */
- public TimedWait ()
- {
- object_ = this;
- }
-
- /**
- * Constructor. Allows subclasses to supply us with an Object that
- * is delegated the wait() call.
- *@param obj The Object that is delegated the wait() call.
- */
- public TimedWait (Object obj)
- {
- object_ = obj;
- }
-
- /**
- * Hook method that needs to be implemented by subclasses.
- */
- public abstract boolean condition ();
-
- /**
- * Wait until condition becomes true. Note that the method
- * blocks. Also note that this method is final to ensure that no one
- * overrides it.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- *@exception InterruptedException Interrupted during wait
- */
- public final void timedWait () throws InterruptedException
- {
- // Acquire the monitor lock.
- if (!condition ())
- {
- // Only attempt to perform the wait if the condition isn't
- // true initially.
- for (;;)
- {
- // Wait until we are notified.
- object_.wait ();
-
- // Recheck the condition.
- if (condition ())
- break; // Condition became true.
- // else we were falsely notified so go back into wait
- }
- }
- }
-
- /**
- * Template Method that implements the actual timed wait. Note that
- * this method is final to ensure that no one overrides it.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- * If the specified wait time is zero, this checks the condition,
- * then returns on success or throws a TimeoutException on failure.
- *@param tv Absolute time to wait until before throwing an exception
- * if the condition isn't satisfied
- *@exception java.lang.InterruptedException Interrupted during wait
- *@exception JACE.ASX.TimeoutException Reached timeout specified
- */
- public final void timedWait (TimeValue tv)
- throws InterruptedException,
- TimeoutException
- {
- if (tv == null) {
- this.timedWait();
- return;
- }
-
- // Acquire the monitor lock.
- if (!condition ())
- {
- long start = System.currentTimeMillis();
- long waitTime = tv.getMilliTime() - start;
-
- // Safety check since there is a possibility that it is now
- // exactly the same time as the tv. That would cause
- // waitTime to be 0, and since Java's wait(timeout) blocks
- // when timeout is 0, it would mean trouble.
- if (waitTime < 1)
- throw new TimeoutException();
-
- for (;;) {
- // Wait until we are notified.
- object_.wait (waitTime);
-
- // Recheck the condition.
- if (!condition ()) {
-
- long now = System.currentTimeMillis();
-
- // Timed out!
- if (now >= tv.getMilliTime ())
- throw new TimeoutException ();
- else
- // We still have some time left to wait, so adjust the
- // wait_time.
- waitTime = tv.getMilliTime() - now;
- }
- else
- break; // Condition became true.
- }
- }
- }
-
- /**
- * Notify any one thread waiting on the object_.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- */
- public final void signal () {
- object_.notify ();
- }
-
- /**
- * Notify all threads waiting on the object_.
- * IMPORTANT: This method assumes it is called with the object_'s
- * monitor lock already held.
- */
- public final void broadcast () {
- object_.notifyAll ();
- }
-
- /**
- * The object we delegate to. If a subclass gives us a particular
- * object, we use that to delegate to, otherwise, we ``delegate''
- * to ourself (i.e., this).
- */
- protected Object object_;
-
-}
diff --git a/java/src/TimeoutException.java b/java/src/TimeoutException.java
deleted file mode 100644
index b55549938dc..00000000000
--- a/java/src/TimeoutException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.ASX
- *
- * = FILENAME
- * TimeoutException.java
- *
- *@author Prashant Jain and Doug Schmidt
- *
- *************************************************/
-package JACE.ASX;
-
-public class TimeoutException extends Exception
-{
- /**
- * Default Constructor.
- */
- public TimeoutException ()
- {
- super ("Timed Out");
- }
-
- /**
- * Constructor.
- *@param timeout The timeout value which expired.
- *@param desc Textual description of the exception
- */
- public TimeoutException (TimeValue timeout, String desc)
- {
- super ("Timed Out in " + timeout + ": " + desc);
- }
-
-}
diff --git a/java/src/TimerQueue.java b/java/src/TimerQueue.java
deleted file mode 100644
index a374a9603cd..00000000000
--- a/java/src/TimerQueue.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Reactor
- *
- * = FILENAME
- * TimerQueue.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Reactor;
-
-import java.util.*;
-import JACE.ASX.*;
-
-import JACE.OS.*;
-
-class TimerNode
-{
- public TimerNode (EventHandler handler,
- Object arg,
- TimeValue timerValue,
- TimeValue interval,
- TimerNode next,
- int timerId)
- {
- this.handler_ = handler;
- this.arg_ = arg;
- this.timerValue_ = timerValue;
- this.interval_ = interval;
- this.next_ = next;
- this.timerId_ = timerId;
- }
-
- public EventHandler handler_;
- // Handler to invoke <handleTimeout> on when a timeout occurs.
-
- public Object arg_;
- // Argument to pass to <handleTimeout>.
-
- public TimeValue timerValue_;
- // Time when the timer expires. (absolute time)
-
- public TimeValue interval_;
- // If this is a periodic timer this holds the time until the next
- // timeout.
-
- public TimerNode next_;
- // Pointer to next timer.
-
- public int timerId_;
- // Id of this timer (used to cancel timers before they expire).
-}
-
-class WaitObject extends TimedWait
-{
- public boolean condition ()
- {
- return this.condition_;
- }
-
- public void condition (boolean c)
- {
- this.condition_ = c;
- }
-
- private boolean condition_ = false;
-}
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Class that provides an interface to timers.
- *
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * This is a simple implementation that keeps a linked list of
- * absolute timers. It allows multiple timers to be scheduled
- * and returns a timer id for each timer scheduled. In addition,
- * it allows periodic timers to be scheduled.
- *</blockquote>
- */
-public class TimerQueue implements Runnable
-{
- /**
- * Constructor.
- *@param createInternalThread flag specifying whether to create an
- * internal thread that runs the event loop. If it is true, a thread
- * is spawned and it runs the event loop, handling all timeout
- * events. If it is false, the caller is then responsible for calling
- * handleEvents () to run the event loop.
- */
- public TimerQueue (boolean createInternalThread)
- {
- this.eventLoopRunning_ = false;
- if (createInternalThread)
- new Thread (this).start ();
- }
-
- /**
- * The thread run method. Do *NOT* call this method! It gets called
- * automatically.
- */
- public void run ()
- {
- this.handleEvents ();
- }
-
- /**
- * Handle timeout events. This forms the event loop and takes care
- * of all scheduling. This method should only be called if the Timer
- * Queue was constructed with the value of createInternalThread as
- * false.
- */
- public void handleEvents ()
- {
- if (!this.eventLoopRunning_)
- {
- // Set the flag indicating that the event loop is now running
- this.eventLoopRunning_ = true;
-
- TimeValue timeout = null;
-
- for (;;)
- {
- synchronized (this.obj_)
- {
- timeout = this.earliestTime ();
-
- try
- {
- // Extract the earliest time from the queue and do a timed wait
- // Note that this does a blocking wait if timeout is null
- this.obj_.timedWait (timeout);
-
- // We have been notified.
- if (this.reset_)
- {
- this.reset_ = false;
- this.obj_.condition (false);
- // Don't need to change the timer since it's an absolute
- // time value.
- }
- }
- catch (TimeoutException e)
- {
- // Timeout occurred. Call handleTimeout on appropriate
- // Event Handlers
- this.dispatchHandlers ();
- }
- catch (InterruptedException e)
- {
- }
- }
- }
- }
- }
-
- /**
- * Check if the queue is empty.
- *@return true if queue is empty, else false.
- */
- boolean isEmpty ()
- {
- return this.head_ == null;
- }
-
- /**
- * Get the node of the earliest node in the TimerQueue.
- *@return the time of the earlier node in the TimerQueue.
- */
- TimeValue earliestTime ()
- {
- synchronized (this.obj_)
- {
- if (!this.isEmpty ())
- return this.head_.timerValue_;
- else
- return null;
- }
- }
-
- /**
- * Schedule an <EventHandler> that will expire after <delta> amount
- * of time. If it expires then <obj> is passed in as the value to
- * the <EventHandler>'s <handleTimeout> callback method. This method
- * returns a timer id that uniquely identifies the timer and can be
- * used to cancel the timer before it expires.
- *@param handler Event Handler that is to be scheduled with the timer
- *@param obj Object that is passed back to the Event Handler when
- * timeout occurs (Asynchronous Completion Token)
- *@param delta amount of time for which to schedule the timer (relative time)
- *@return id of the timer scheduled
- */
- public int scheduleTimer (EventHandler handler,
- Object obj,
- TimeValue delta)
- {
- return this.scheduleTimer (handler, obj, delta, TimeValue.zero);
- }
-
- /**
- * Schedule an <EventHandler> that will expire after <delta> amount
- * of time. If it expires then <obj> is passed in as the value to
- * the <EventHandler>'s <handleTimeout> callback method. If
- * <interval> is != to <TimeValue.zero> then it is used to
- * reschedule the <EventHandler> automatically. This method
- * returns a timer id that uniquely identifies the timer and can be
- * used to cancel the timer before it expires.
- *@param handler Event Handler that is to be scheduled with the timer
- *@param arg Object that is passed back to the Event Handler when
- * timeout occurs (Asynchronous Completion Token)
- *@param delta amount of time for which to schedule the timer (relative time)
- *@param interval amount of time to use to reschedule the timer
- *@return id of the timer scheduled
- */
- public int scheduleTimer (EventHandler handler,
- Object arg,
- TimeValue delta,
- TimeValue interval)
- {
-
- // Increment the sequence number (it will wrap around).
- this.timerId_++;
-
- ACE.DEBUG("scheduleTimer (" + this.timerId_ + "): " +
- delta + ", " + interval);
-
- // futureTime is the current time of day plus the given delta
- TimeValue futureTime = TimeValue.relativeTimeOfDay (delta);
-
- TimerNode node = new TimerNode (handler,
- arg,
- futureTime,
- interval,
- null,
- this.timerId_);
- synchronized (this.obj_)
- {
- // Check if event loop is running. If it is not, then we can
- // just place it at the appropriate place in the queue and
- // don't need to do any notification. If event loop is
- // running, then check if the node is the first node in the
- // queue (either because the queue is empty or because the
- // time for the node is earlier than the currently scheduled
- // timer node).
- if (this.eventLoopRunning_ &&
- (this.isEmpty () || futureTime.lessThan (this.earliestTime ())))
- {
- // Insert the node into (the beginning of) the queue to be
- // scheduled.
- this.reschedule (node);
-
- // Notify the waiting thread so that it can reschedule
- // using the earliest timeout
- this.obj_.notify ();
- }
- else // Place in the appropriate position in the queue.
- {
- this.reschedule (node);
- }
- }
- return this.timerId_;
- }
-
-
- /**
- * Cancel the single timer associated with <timerId>.
- *@param timerId id of the timer that needs to be cancelled.
- *@return Object that was passed in when timer was scheduled
- * (Asynchronous Completion Token).
- */
- public Object cancelTimer (int timerId)
- {
- TimerNode prev = null;
- TimerNode curr = null;
-
- synchronized (this.obj_)
- {
- // Try to locate the TimerNode that matches the timerId.
- for (curr = this.head_;
- curr != null && curr.timerId_ != timerId;
- curr = curr.next_)
- prev = curr;
-
- if (curr != null)
- {
- if (prev == null)
- this.head_ = curr.next_;
- else
- prev.next_ = curr.next_;
-
- return curr.arg_;
- }
- }
- return null;
- }
-
- /**
- * Cancel all timers associated with <Event Handler>.
- *@param handler Event Handler whose associated timers need to be cancelled.
- */
- public void cancelTimer (EventHandler handler)
- {
- TimerNode prev = null;
- TimerNode curr = this.head_;
-
- synchronized (this.obj_)
- {
- while (curr != null)
- {
- if (curr.handler_ == handler)
- {
- if (prev == null)
- {
- this.head_ = curr.next_;
- curr = this.head_;
- }
- else
- {
- prev.next_ = curr.next_;
- curr = prev.next_;
- }
- }
- else
- {
- prev = curr;
- curr = curr.next_;
- }
- }
- }
- }
-
- // Call handleTimeout() on all handlers whose timers have expired.
- private void dispatchHandlers ()
- {
- TimeValue currentTime = TimeValue.getTimeOfDay ();
-
- for (;;)
- {
- if (this.isEmpty () || this.earliestTime ().greaterThan (currentTime))
- break; // There aren't any more timers eligible to expire.
-
- TimerNode expired = this.head_;
- EventHandler handler = expired.handler_;
- Object arg = expired.arg_;
- int result;
-
- this.head_ = this.head_.next_;
-
- // Check whether this is an interval timer.
- if (expired.interval_.greaterThan (TimeValue.zero))
- {
- // Make sure that we skip past values that have already
- // "expired".
- do
- expired.timerValue_.plusEquals (expired.interval_);
- while (expired.timerValue_.lessThanEqual (currentTime));
-
- // Since this is an interval timer, we need to reschedule
- // it.
- this.reschedule (expired);
- }
-
- ACE.DEBUG("handleTimeout " + expired.timerId_);
-
- // Perform the callback.
- result = handler.handleTimeout (currentTime, arg);
-
- if (result == -1)
- this.cancelTimer (handler);
- }
- }
-
- // Reschedule a TimerNode by inserting it at the appropriate
- // position in the queue.
- private void reschedule (TimerNode expired)
- {
- ACE.DEBUG("reschedule " + expired.timerId_ + " for " + expired.timerValue_);
- // *** Shouldn't it use interval here?
-
- if (this.isEmpty () ||
- expired.timerValue_.lessThan (this.earliestTime ()))
- {
- expired.next_ = this.head_;
- this.head_ = expired;
- // Set the condition to true so that the waiting thread can be
- // notified and it can reschedule.
- this.obj_.condition (true);
- this.reset_ = true;
- }
- else
- {
- TimerNode prev = this.head_;
- TimerNode after = this.head_.next_;
-
- // Locate the proper position in the queue.
-
- while (after != null
- && expired.timerValue_.greaterThan (after.timerValue_))
- {
- prev = after;
- after = after.next_;
- }
-
- expired.next_ = after;
- prev.next_ = expired;
- }
- }
-
- private WaitObject obj_ = new WaitObject ();
- // Synchronization object (as well as object to use to do wait on)
-
- private TimerNode head_;
- // Pointer to linked list of TimerHandles.
-
- private int timerId_;
- // Keeps track of the timer id that uniquely identifies each timer.
- // This id can be used to cancel a timer via the <cancel (int)>
- // method.
-
- private boolean reset_;
- // Flag indicating whether to start the wait again
-
- private boolean eventLoopRunning_;
- // Flag indicating whether the event loop is running or not
-}
-
diff --git a/java/src/Token.java b/java/src/Token.java
deleted file mode 100644
index c112acdb653..00000000000
--- a/java/src/Token.java
+++ /dev/null
@@ -1,336 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * JACE.Concurrency
- *
- * = FILENAME
- * Token.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package JACE.Concurrency;
-
-import java.util.*;
-import JACE.ASX.*;
-
-class WaitObject extends TimedWait
-{
- public boolean condition ()
- {
- return this.condition_;
- }
-
- public void condition (boolean c)
- {
- this.condition_ = c;
- }
-
- private boolean condition_ = false;
-}
-
-/**
- * <hr>
- * <h2>SYNOPSIS</h2>
- *<blockquote>
- * Class that acquires, renews, and releases a synchronization
- * token that is serviced in strict FIFO ordering.
- *
- *</blockquote>
- *
- * <h2>DESCRIPTION</h2>
- *<blockquote>
- * This is a general-purpose synchronization mechanism that offers
- * several benefits. For example, it implements "recursive mutex"
- * semantics, where a thread that owns the token can reacquire it
- * without deadlocking. In addition, threads that are blocked
- * awaiting the token are serviced in strict FIFO order as other
- * threads release the token. The solution makes use of the
- * Specific Notification pattern presented by Tom Cargill in
- * "Specific Notification for Java Thread Synchronization," PLoP96.
- *</blockquote>
- */
-public class Token
-{
-
- /**
- * Acquire the token. Note that this will block. The method uses
- * synchronized blocks internally to avoid race conditions. It
- * ignores thread interrupts.
- *@return 0 if acquires without calling <sleepHook>
- * 1 if <sleepHook> is called.
- * -1 if failure occurs (should never happen)
- */
- public int acquire ()
- {
- try
- {
- return this.acquire (null);
- }
- catch (TimeoutException e)
- {
- // This really shouldn't happen since we are supposed to
- // block.
- return -1;
- }
- }
-
- /**
- * Acquire the token. Returns failure
- * Throws a TimeoutException if the token isn't acquired before the
- * given absolute time timeout.
- *@param timeout time (TimeValue) to wait until before throwing a
- * TimeoutException (unless the token is acquired before that).
- * Performs a blocking acquire if the given timeout is null.
- *@return 0 if acquires without calling <sleepHook>
- * 1 if <sleepHook> is called.
- * -1 if failure occurs (timeout)
- */
- public int acquire (TimeValue timeout) throws TimeoutException
- {
- int result = 0;
- WaitObject snl = new WaitObject ();
- boolean mustWait;
- synchronized (snl)
- {
- synchronized (this)
- {
- mustWait = !this.snq_.isEmpty ();
-
- if (mustWait && isOwner ())
- {
- // I am the one who has the token. So just increment
- // the nesting level
- this.nestingLevel_++;
- return 0;
- }
- // Add local lock to the queue
- this.snq_.addElement (snl);
- }
- if (mustWait)
- {
- result = 1;
- sleepHook();
-
- while (mustWait) {
- try {
- snl.timedWait(timeout);
- mustWait = false;
- } catch (InterruptedException e) {
- // must keep waiting
- }
- }
- }
-
- // Set the owner of the token
- setOwner();
- }
- return result;
- }
-
- /**
- * Try to acquire the token. Implements a non-blocking acquire.
- *@return 0 if acquires without calling <sleepHook>
- * -1 if failure occurs
- */
- public synchronized int tryAcquire ()
- {
- int result = 0;
-
- if (this.snq_.isEmpty ())
- {
- // No one has the token, so acquire it
- this.snq_.addElement (new WaitObject ());
-
- setOwner();
- }
- else if (isOwner())
- {
- this.nestingLevel_++;
- }
- // Someone else has the token.
- else
- {
- // Would have to block to acquire the token, so return
- // failure.
- result = -1;
- }
- return result;
- }
-
- /**
- * Method that is called before a thread goes to sleep in an
- * acquire(). This should be overridden by a subclass to define
- * the appropriate behavior before acquire() goes to sleep.
- * By default, this is a no-op.
- */
- public void sleepHook ()
- {
- }
-
- /**
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token. This blocks until it
- * can regain the token.
- *@param requeuePosition Position in the queue where to insert the
- * lock. If requeuePosition == -1 and there are other threads
- * waiting to obtain the token we are queued at the end of the list
- * of waiters. If requeuePosition > -1 then it indicates how many
- * entries to skip over before inserting our thread into the list of
- * waiters (e.g.,requeuePosition == 0 means "insert at front of the
- * queue").
- */
- public void renew (int requeuePosition)
- {
- try
- {
- this.renew (requeuePosition, null);
- }
- catch (TimeoutException e)
- {
- // This really shouldn't happen since we are supposed to
- // block.
- }
- }
-
- /**
- * An optimized method that efficiently reacquires the token if no
- * other threads are waiting. This is useful for situations where
- * you don't want to degrade the quality of service if there are
- * other threads waiting to get the token. If the given TimeValue
- * is null, it's the same as calling renew(int requeuePosition).
- *@param requeuePosition Position in the queue where to insert the
- * lock. If requeuePosition == -1 and there are other threads
- * waiting to obtain the token we are queued at the end of the list
- * of waiters. If requeuePosition > -1 then it indicates how many
- * entries to skip over before inserting our thread into the list of
- * waiters (e.g.,requeuePosition == 0 means "insert at front of the
- * queue").
- *@param timeout Throw a TimeoutException if the token isn't renewed
- * before this absolute time timeout.
- *@exception TimeoutException exception if timeout occurs
- */
- public void renew (int requeuePosition, TimeValue timeout)
- throws TimeoutException
- {
- WaitObject snl = null;
- int saveNestingLevel = 0;
-
- synchronized (this)
- {
- // Check if there is a thread waiting to acquire the token. If
- // not or if requeuePosition == 0, then we don't do anything
- // and we simply keep the token.
- if (this.snq_.size () > 1 && requeuePosition != 0)
- {
- // Save the nesting level
- saveNestingLevel = this.nestingLevel_;
- this.nestingLevel_ = 0;
-
- // Reinsert ourselves at requeuePosition in the queue
- snl = (WaitObject) this.snq_.firstElement ();
- this.snq_.removeElementAt (0);
-
- if (requeuePosition < 0)
- this.snq_.addElement (snl); // Insert at end
- else
- this.snq_.insertElementAt (snl, Math.min(requeuePosition,
- this.snq_.size()));
-
- synchronized (this.snq_.firstElement ())
- {
- // Notify the first waiting thread in the queue
- WaitObject obj = (WaitObject) this.snq_.firstElement ();
- // Set its condition to be true so that it falls out
- // of the for loop
- obj.condition (true);
- // Now signal the thread
- obj.signal ();
- }
- }
- }
-
- // Check if we reinserted the lock in the queue and therefore need
- // to do a wait
- if (snl != null)
- {
- synchronized (snl)
- {
- // Set the condition to be false so that we can begin the
- // wait
- snl.condition (false);
- // Wait until the given absolute time (or until notified
- // if the timeout is null)
- boolean mustWait = true;
- while (mustWait) {
- try {
- snl.timedWait (timeout);
- mustWait = false;
- } catch (InterruptedException e) {
- // must keep waiting
- }
- }
- }
- // Restore the nesting level and current owner of the lock
- this.nestingLevel_ = saveNestingLevel;
-
- // Set the owner of the token
- setOwner();
- }
- }
-
- /**
- * Release the token. It is safe for non-owners to call
- * this.
- */
- public synchronized void release ()
- {
- if (!isOwner())
- return;
-
- // Check if nestingLevel > 0 and if so, decrement it
- if (this.nestingLevel_ > 0)
- this.nestingLevel_--;
- else
- {
- this.snq_.removeElementAt (0);
- if (!this.snq_.isEmpty ())
- {
- synchronized (this.snq_.firstElement ())
- {
- // Notify the first waiting thread in the queue
- WaitObject obj = (WaitObject) this.snq_.firstElement ();
- // Set its condition to be true so that it falls out
- // of the for loop
- obj.condition (true);
- // Now signal the thread
- obj.signal ();
- }
- }
- }
- }
-
- // The next two methods allow subclasses to change the behavior of the
- // checking and setting the Object owner_ member variable. The default
- // is to use the current Thread's toString() as the Object.
- protected void setOwner() {
- this.owner_ = Thread.currentThread().toString();
- }
-
- protected boolean isOwner() {
- return Thread.currentThread().toString().equals(this.owner_);
- }
-
- private Vector snq_ = new Vector ();
- // Vector of lock objects
-
- private int nestingLevel_ = 0;
- // Current Nesting Level
-
- private Object owner_ = null;
- // Current owner of the token. The setOwner() and isOwner()
- // methods provide subclasses with the ability to change the
- // behavior. The default is to use the Thread.toString().
-}
diff --git a/java/tests/ASX/BufferStreamTest.dsp b/java/tests/ASX/BufferStreamTest.dsp
deleted file mode 100644
index 6a6b5107a4d..00000000000
--- a/java/tests/ASX/BufferStreamTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="BufferStreamTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=BufferStreamTest - Java Virtual Machine 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 "BufferStreamTest.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 "BufferStreamTest.mak"\
- CFG="BufferStreamTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "BufferStreamTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "BufferStreamTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "BufferStreamTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "BufferStreamTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "BufferStreamTest - Java Virtual Machine Release"
-# Name "BufferStreamTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\BufferStreamTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/ASX/BufferStreamTest.java b/java/tests/ASX/BufferStreamTest.java
deleted file mode 100644
index c61f94f281e..00000000000
--- a/java/tests/ASX/BufferStreamTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.ASX
-//
-// = FILENAME
-// BufferStreamTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.ASX;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.ASX.*;
-
-// This short program copies stdin to stdout via the use of an ASX
-// STREAM. It illustrates an implementation of the classic "bounded
-// buffer" program using an ASX STREAM containing two Modules. Each
-// Module contains two Tasks.
-
-class CommonTask extends Task
-{
- // ACE_Task hooks
- public int open (Object obj)
- {
- if (this.activate (0, 1, false) == -1)
- ACE.ERROR ("spawn");
- return 0;
- }
-
- public int close (long exitStatus)
- {
- ACE.DEBUG (Thread.currentThread () + " thread is exiting with status " +
- exitStatus + " in module " + this.name () + "\n");
- return 0;
- }
-
- public int put (MessageBlock mb, TimeValue tv)
- {
- return 0;
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-}
-
-// Define the Producer interface.
-
-class Producer extends CommonTask
-{
- // Read data from stdin and pass to consumer.
- // The Consumer reads data from the stdin stream, creates a message,
- // and then queues the message in the message list, where it is
- // removed by the consumer thread. A 0-sized message is enqueued when
- // there is no more data to read. The consumer uses this as a flag to
- // know when to exit.
-
- public int svc ()
- {
- // Keep reading stdin, until we reach EOF.
-
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
-
- String msg = null;
- try
- {
- while (true)
- {
- System.out.print ("Enter input: ");
- System.out.flush ();
- msg = in.readLine ();
- if (msg == null)
- {
- // Send a shutdown message to the other thread and exit.
- if (this.putNext (new MessageBlock (0), new TimeValue ()) == -1)
- ACE.ERROR ("putNext");
- break;
- }
- else
- {
- // Send the message to the other thread.
- if (this.putNext (new MessageBlock (msg), new TimeValue ()) == -1)
- ACE.ERROR ("putNext");
- }
- }
- }
- catch (IOException e)
- {
- }
- return 0;
- }
-}
-
-class Consumer extends CommonTask
- // = TITLE
- // Define the Consumer interface.
-{
- // Enqueue the message on the MessageQueue for subsequent
- // handling in the svc() method.
- public int put (MessageBlock mb, TimeValue tv)
- {
- try
- {
- return this.putq (mb, tv);
- }
- catch (InterruptedException e)
- {
- }
- return 0;
- }
-
- // The consumer dequeues a message from the ACE_Message_Queue, writes
- // the message to the stderr stream, and deletes the message. The
- // Consumer sends a 0-sized message to inform the consumer to stop
- // reading and exit.
-
- public int svc ()
- {
- MessageBlock mb = null;
-
- // Keep looping, reading a message out of the queue, until we
- // timeout or get a message with a length == 0, which signals us to
- // quit.
- try
- {
- while (true)
- {
- // Wait for upto 4 seconds
- mb = this.getq (new TimeValue (4));
-
- if (mb == null)
- break;
-
- int length = mb.length ();
-
- if (length > 0)
- System.out.println ("\n" + mb.base ());
-
- if (length == 0)
- break;
- }
- }
- catch (InterruptedException e)
- {
- }
- if (mb == null)
- {
- ACE.ERROR ("timed out waiting for message");
- System.exit (1);
- }
- return 0;
- }
-}
-
-// Spawn off a new thread.
-
-public class BufferStreamTest
-{
- public static void main (String args[])
- {
- // Control hierachically-related active objects
- Stream stream = new Stream ();
- Module pm = new Module ("Consumer", new Consumer (), null, null);
- Module cm = new Module ("Producer", new Producer (), null, null);
-
- // Create Producer and Consumer Modules and push them onto the
- // STREAM. All processing is performed in the STREAM.
-
- if (stream.push (pm) == -1)
- {
- ACE.ERROR ("push");
- return;
- }
- else if (stream.push (cm) == -1)
- {
- ACE.ERROR ("push");
- return;
- }
- }
-}
diff --git a/java/tests/ASX/Makefile b/java/tests/ASX/Makefile
deleted file mode 100644
index d097cbb0850..00000000000
--- a/java/tests/ASX/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Makefile
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-
-files = MessageQueueTest.java \
- TaskTest.java \
- PriorityBufferTest.java \
- ThreadPoolTest.java \
- BufferStreamTest.java
-
-packages = tests.ASX
-
-realclean:
- find ${JACE_WRAPPER}/classes/tests/ASX -name '*.class' -print | xargs ${RM}
-
diff --git a/java/tests/ASX/MessageQueueTest.dsp b/java/tests/ASX/MessageQueueTest.dsp
deleted file mode 100644
index 806ea9208c0..00000000000
--- a/java/tests/ASX/MessageQueueTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="MessageQueueTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=MessageQueueTest - Java Virtual Machine 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 "MessageQueueTest.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 "MessageQueueTest.mak"\
- CFG="MessageQueueTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "MessageQueueTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "MessageQueueTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "MessageQueueTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "MessageQueueTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "MessageQueueTest - Java Virtual Machine Release"
-# Name "MessageQueueTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\MessageQueueTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/ASX/MessageQueueTest.java b/java/tests/ASX/MessageQueueTest.java
deleted file mode 100644
index c22d2cf041d..00000000000
--- a/java/tests/ASX/MessageQueueTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.ASX
-//
-// = FILENAME
-// MessageQueueTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.ASX;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.ASX.*;
-
-public class MessageQueueTest
-{
- public static void main (String args[])
- {
- try
- {
- MessageBlock conMb;
- MessageQueue msgQueue = new MessageQueue ();
- MessageBlock mb1 = new MessageBlock ("hello");
- MessageBlock mb2 = new MessageBlock ("world");
- mb1.msgPriority (5);
- mb2.msgPriority (7);
-
- // Enqueue in priority order.
- if (msgQueue.enqueue (mb1) == -1)
- ACE.ERROR ("put_next");
-
- if (msgQueue.enqueue (mb2) == -1)
- ACE.ERROR ("put_next");
-
- // Now try to dequeue
- if ((conMb = msgQueue.dequeueHead ()) == null)
- ACE.ERROR ("dequeueHead");
- else
- ACE.DEBUG ("Consumer: removed item " + conMb.base () + " of priority " + conMb.msgPriority ());
- }
- catch (InterruptedException e)
- {
- }
- }
-}
-
diff --git a/java/tests/ASX/PriorityBufferTest.dsp b/java/tests/ASX/PriorityBufferTest.dsp
deleted file mode 100644
index 844e281b1b1..00000000000
--- a/java/tests/ASX/PriorityBufferTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="PriorityBufferTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=PriorityBufferTest - Java Virtual Machine 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 "PriorityBufferTest.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 "PriorityBufferTest.mak"\
- CFG="PriorityBufferTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "PriorityBufferTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "PriorityBufferTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "PriorityBufferTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "PriorityBufferTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "PriorityBufferTest - Java Virtual Machine Release"
-# Name "PriorityBufferTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\PriorityBufferTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/ASX/PriorityBufferTest.java b/java/tests/ASX/PriorityBufferTest.java
deleted file mode 100644
index 5cce32fa3b1..00000000000
--- a/java/tests/ASX/PriorityBufferTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.ASX
-//
-// = FILENAME
-// PriorityBufferTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.ASX;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.ASX.*;
-
-class consumer extends Thread
-{
- public void run ()
- {
- MessageBlock mb = null;
- long curPriority = 0;
- int length = 0;
-
- try
- {
- // Keep looping, reading a message out of the queue, until we
- // get a message with a length == 0, which signals us to quit.
- for (;;)
- {
- if ((mb = PriorityBufferTest.msgQueue.dequeueHead ()) == null)
- break;
-
- length = mb.length ();
- curPriority = mb.msgPriority ();
-
- if (length > 0)
- ACE.DEBUG ("Consumer: removed item \"" + mb.base () + "\" of priority: " + curPriority);
-
- if (length == 0)
- break;
- }
- }
- catch (InterruptedException e)
- {
- }
- }
-}
-
-class producer extends Thread
-{
- producer (int delay)
- {
- this.delay_ = delay;
- }
-
- public void run ()
- {
- try
- {
- long count = 0;
- for (char c = 'a'; c <= 'z'; c++)
- {
- count++;
- // Allocate a new message
- MessageBlock mb = new MessageBlock (new Character (c).toString ());
- // Set the priority
- mb.msgPriority (count);
-
- // Enqueue in priority order.
- if (PriorityBufferTest.msgQueue.enqueue (mb) == -1)
- ACE.ERROR ("put_next");
- else
- {
- ACE.DEBUG ("Producer: inserted item \"" + mb.base () + "\" of priority: " + count);
- if (this.delay_ > 0)
- this.sleep (this.delay_);
- }
- }
-
- // Now send a 0-sized shutdown message to the other thread
- if (PriorityBufferTest.msgQueue.enqueueTail (new MessageBlock (0)) == -1)
- ACE.ERROR ("put_next");
- }
- catch (InterruptedException e)
- {
- }
- }
-
- private int delay_;
-}
-
-public class PriorityBufferTest
-{
- public static MessageQueue msgQueue = new MessageQueue ();
-
- public static void main (String args[])
- {
- int delay = 0;
- if (args.length == 1)
- {
- try
- {
- delay = Integer.parseInt (args[0]);
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
- }
- new producer (delay).start ();
- new consumer ().start ();
- }
-}
diff --git a/java/tests/ASX/TaskTest.dsp b/java/tests/ASX/TaskTest.dsp
deleted file mode 100644
index 072a92b8847..00000000000
--- a/java/tests/ASX/TaskTest.dsp
+++ /dev/null
@@ -1,72 +0,0 @@
-# Microsoft Developer Studio Project File - Name="TaskTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=TaskTest - Java Virtual Machine 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 "TaskTest.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 "TaskTest.mak" CFG="TaskTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "TaskTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "TaskTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "TaskTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "TaskTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "TaskTest - Java Virtual Machine Release"
-# Name "TaskTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\TaskTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/ASX/TaskTest.java b/java/tests/ASX/TaskTest.java
deleted file mode 100644
index b26b48ea148..00000000000
--- a/java/tests/ASX/TaskTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.ASX
-//
-// = FILENAME
-// TaskTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.ASX;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.ASX.*;
-import JACE.Reactor.*;
-
-public class TaskTest extends Task
-{
- int nThreads_;
- int nIterations_;
-
- public TaskTest (int nThreads, int nIterations)
- {
- this.nIterations_ = nIterations;
- this.nThreads_ = nThreads;
- if (this.activate (0, nThreads, true) == -1)
- ACE.ERROR ("activate failed");
- }
-
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int put (MessageBlock mb, TimeValue tv)
- {
- return 0;
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-
- public int svc ()
- {
- for (int i = 1; i <= this.nIterations_; i++)
- {
- ACE.DEBUG (Thread.currentThread ().toString () + " in iteration " + i);
- // Allow other threads to run
- Thread.yield ();
- }
- return 0;
- }
-
- public static void main (String args[])
- {
- int nThreads = 1;
- int nIterations = 1;
- try
- {
- if (args.length == 2)
- {
- nThreads = Integer.parseInt (args[0]);
- nIterations = Integer.parseInt (args[1]);
- }
- else if (args.length == 1)
- {
- nThreads = Integer.parseInt (args[0]);
- }
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
- TaskTest tt = new TaskTest (nThreads, nIterations);
- }
-}
diff --git a/java/tests/ASX/ThreadPoolTest.dsp b/java/tests/ASX/ThreadPoolTest.dsp
deleted file mode 100644
index 466c198ae14..00000000000
--- a/java/tests/ASX/ThreadPoolTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ThreadPoolTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=ThreadPoolTest - Java Virtual Machine 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 "ThreadPoolTest.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 "ThreadPoolTest.mak"\
- CFG="ThreadPoolTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ThreadPoolTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "ThreadPoolTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "ThreadPoolTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "ThreadPoolTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "ThreadPoolTest - Java Virtual Machine Release"
-# Name "ThreadPoolTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\ThreadPoolTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/ASX/ThreadPoolTest.java b/java/tests/ASX/ThreadPoolTest.java
deleted file mode 100644
index cfb20f87adb..00000000000
--- a/java/tests/ASX/ThreadPoolTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.ASX
-//
-// = FILENAME
-// ThreadPoolTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.ASX;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.ASX.*;
-import JACE.Reactor.*;
-
-public class ThreadPoolTest extends Task
-{
- int nThreads_;
- int nIterations_;
-
- public static int MAX_MB_SIZE = 1024;
-
- public ThreadPoolTest (int nThreads, int nIterations)
- {
- this.nIterations_ = nIterations;
- this.nThreads_ = nThreads;
- if (this.activate (0, nThreads, true) == -1)
- ACE.ERROR ("activate failed");
- }
-
- public int handleTimeout (TimeValue tv, Object obj)
- {
- return 0;
- }
-
- public int open (Object obj)
- {
- return 0;
- }
-
- public int close (long flags)
- {
- return 0;
- }
-
- public int put (MessageBlock mb, TimeValue tv)
- {
- try
- {
- return this.putq (mb, tv);
- }
- catch (InterruptedException e)
- {
- }
- return 0;
- }
-
- public int svc ()
- {
- int result = 0;
- int count = 1;
-
- // Keep looping, reading a message out of the queue, until we get a
- // message with a length == 0, which signals us to quit.
- try
- {
- for (;; count++)
- {
- MessageBlock mb = this.getq (new TimeValue ());
- if (mb == null)
- {
- ACE.ERROR (Thread.currentThread ().toString () + " in iteration " + count + ", got result -1, exiting");
- break;
- }
- int length = mb.length ();
-
- if (length > 0)
- ACE.DEBUG (Thread.currentThread ().toString () +
- " in iteration " + count + ", length = " +
- length + ", text = \"" + mb.base () + "\"");
-
- if (length == 0)
- {
- ACE.DEBUG (Thread.currentThread ().toString () +
- " in iteration " + count +
- ", got NULL message, exiting");
- break;
- }
- Thread.yield ();
- }
- }
- catch (InterruptedException e)
- {
- }
- return 0;
- }
-
- public static void produce (ThreadPoolTest threadPool, int nIterations)
- {
- int count = 0;
- for (int n = 0;;)
- {
- // Allocate a new message.
- MessageBlock mb = new MessageBlock (new Integer (count).toString ());
-
- if (count == nIterations)
- n = 1; // Indicate that we need to shut down.
- else
- count++;
-
- if (count == 0 || (count % 20 == 0))
- {
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
- }
- if (n != 1)
- {
- ACE.DEBUG ("Producing...");
- // Pass the message to the Thread_Pool.
- if (threadPool.put (mb, new TimeValue ()) == -1)
- ACE.ERROR ("put");
- }
- else
- {
- // Send a shutdown message to the waiting threads and exit.
- ACE.DEBUG ("start loop, dump of task");
-
- for (int i = threadPool.thrCount (); i > 0; i--)
- {
- ACE.DEBUG (Thread.currentThread ().toString () +
- "EOF, enqueueing NULL block for thread " + i);
-
- // Enqueue a NULL message to flag each consumer to
- // shutdown.
- if (threadPool.put (new MessageBlock (0), new TimeValue ()) == -1)
- ACE.ERROR ("put");
- }
-
- break;
- }
- }
- }
-
- public static void main (String args[])
- {
- int nThreads = 1;
- int nIterations = 100;
- try
- {
- if (args.length == 2)
- {
- nThreads = Integer.parseInt (args[0]);
- nIterations = Integer.parseInt (args[1]);
- }
- else if (args.length == 1)
- {
- nThreads = Integer.parseInt (args[0]);
- }
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
- ACE.DEBUG ("Threads = " + nThreads + " Iterations = " + nIterations);
-
- // Create the worker tasks.
- ThreadPoolTest threadPool = new ThreadPoolTest (nThreads,
- nIterations);
-
- // Create work for the worker tasks to process in their own threads.
- produce (threadPool, nIterations);
- ACE.DEBUG ("exiting...");
- }
-}
-
-
diff --git a/java/tests/Concurrency/Condition/Condition.dsp b/java/tests/Concurrency/Condition/Condition.dsp
deleted file mode 100644
index e6d28e19c9a..00000000000
--- a/java/tests/Concurrency/Condition/Condition.dsp
+++ /dev/null
@@ -1,88 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Condition" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=Condition - Java Virtual Machine 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 "Condition.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 "Condition.mak" CFG="Condition - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Condition - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "Condition - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "Condition - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "Condition - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "Condition - Java Virtual Machine Release"
-# Name "Condition - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\Consumer.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\JoinableThreadGroup.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\Producer.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\QueueTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\SimpleMessageQueue.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Concurrency/Condition/Consumer.java b/java/tests/Concurrency/Condition/Consumer.java
deleted file mode 100644
index ff4f5ff4a4b..00000000000
--- a/java/tests/Concurrency/Condition/Consumer.java
+++ /dev/null
@@ -1,73 +0,0 @@
-//File: Consumer.java
-//Seth Widoff 8/8/96
-//This class attempts at random intervals to dequeue random elements
-//from a queue. If the queue is empty the thread waits until an element
-//has been enqueued and another thread has invoked the notify() method.
-
-package tests.Concurrency.Condition;
-
-import JACE.ASX.TimeValue;
-import java.util.Random;
-
-public class Consumer implements Runnable
-{
- //Maximum pause between dequeues (in milliseconds)
- private static final int MAX_PAUSE = 1000;
-
- private SimpleMessageQueue queue_;
- private boolean stop_requested_ = false;
- private String name_;
- private int iterations_;
- private TimeValue timeout_;
-
- public Consumer(String name,
- SimpleMessageQueue queue,
- int iterations,
- TimeValue timeout)
- {
- name_ = "Consumer " + name;
- queue_ = queue;
- iterations_ = iterations;
- timeout_ = timeout;
- }
-
- public void run()
- {
- //Set the random number generator seed to the current time in
- //milliseconds.
-
- Random random = new Random(System.currentTimeMillis());
- Integer element;
-
- for (int i = 0; i < iterations_; )
- {
- try
- {
- element = (Integer)queue_.dequeue(timeout_);
- if (element != null)
- {
-
- System.out.print("Consumer::run() " + name_ + " dequeued " + element.toString());
- System.out.println(" Queue size: " + queue_.size());
-
- Thread.sleep(random.nextLong() % MAX_PAUSE);
- }
- else
- {
- System.out.println ("Null");
- }
- i++;
- }
- catch(Exception excp)
- {
- System.out.print ("Consumer::run() Exception: ");
- System.out.println(excp);
- }
- }
- }
-
- public void requestStop()
- {
- stop_requested_ = true;
- }
-}
diff --git a/java/tests/Concurrency/Condition/JoinableThreadGroup.java b/java/tests/Concurrency/Condition/JoinableThreadGroup.java
deleted file mode 100644
index c878eb026d3..00000000000
--- a/java/tests/Concurrency/Condition/JoinableThreadGroup.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package tests.Concurrency.Condition;
-
-public class JoinableThreadGroup extends ThreadGroup
-{
- public JoinableThreadGroup(String name)
- {
- super(name);
- }
-
- public JoinableThreadGroup(ThreadGroup parent, String name)
- {
- super(parent, name);
- }
-
- public void join() throws InterruptedException
- {
- Thread list[] = new Thread[activeCount()];
-
- enumerate(list, true);
-
- for (int i = 0; i < list.length; i++)
- list[i].join();
- }
-}
diff --git a/java/tests/Concurrency/Condition/Makefile b/java/tests/Concurrency/Condition/Makefile
deleted file mode 100644
index fd1e6a93677..00000000000
--- a/java/tests/Concurrency/Condition/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# Makefile
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-files = \
- QueueTest.java \
- JoinableThreadGroup.java \
- SimpleMessageQueue.java \
- Producer.java \
- Consumer.java
-
-packages = tests.Concurrency.Condition;
-
-realclean:
- find ${JACE_WRAPPER}/classes/tests/Concurrency/Condition -name '*.class' -print | xargs ${RM}
diff --git a/java/tests/Concurrency/Condition/Producer.java b/java/tests/Concurrency/Condition/Producer.java
deleted file mode 100644
index ed6da2251ba..00000000000
--- a/java/tests/Concurrency/Condition/Producer.java
+++ /dev/null
@@ -1,67 +0,0 @@
-//File: Producer.java
-//Seth Widoff 8/8/96
-//This class attempts at random intervals to enqueue random elements
-//into a queue. If the queue is full the thread waits until an element
-//has been dequeued and another thread has invoked the notify() method.
-
-package tests.Concurrency.Condition;
-
-import JACE.ASX.TimeValue;
-import java.util.Random;
-
-public class Producer implements Runnable
-{
- //Maximum pause between enqueues (in milliseconds)
- private static final int MAX_PAUSE = 1000;
-
- private SimpleMessageQueue queue_;
- private boolean stop_requested_ = false;
- private String name_;
- private int iterations_;
- private TimeValue timeout_;
-
- public Producer(String name,
- SimpleMessageQueue queue,
- int iterations,
- TimeValue timeout)
- {
- name_ = "Producer " + name;
- queue_ = queue;
- iterations_ = iterations;
- timeout_ = timeout;
- }
-
- public void run()
- {
- //Set the random number generator seed to the current time in milliseconds.
- Random random = new Random(System.currentTimeMillis());
- int element = 1;
-
- for (int i = 0; i < iterations_; )
- {
- try
- {
- // element = random.nextInt();
-
- queue_.enqueue((Object)new Integer(element), timeout_);
- System.out.print("Producer::run() " + name_ + " enqueued " + element);
- System.out.println(" Queue size: " + queue_.size());
-
- Thread.sleep(random.nextLong() % MAX_PAUSE);
- i++;
- element++;
- }
- catch(Exception excp)
- {
- System.out.print("Producer::run() Exception: ");
- System.out.println(excp);
- }
- }
- }
-
- public void requestStop()
- {
- stop_requested_ = true;
- }
-}
-
diff --git a/java/tests/Concurrency/Condition/QueueTest.java b/java/tests/Concurrency/Condition/QueueTest.java
deleted file mode 100644
index 87e7d57bbbd..00000000000
--- a/java/tests/Concurrency/Condition/QueueTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-//File: QueueTest.java
-//Seth Widoff, 8/8/96
-//This class is a test method for the Producer and Consumer classes.
-//The main method takes as arguments the number of producers, the
-//number of consumers and the number of elements in the queue. It then
-//spawn the specified threads and starts them.
-
-package tests.Concurrency.Condition;
-
-import JACE.ASX.TimeValue;
-
-public class QueueTest
-{
- public static void main(String[] args)
- {
- if (args.length < 5)
- {
- System.out.println("Usage: java QueueTest <# producers> <# consumers> <# elements> <#iterations> <#timeout secs> <#timeout nano secs>");
- System.exit(1);
- }
-
- int num_producers = Integer.parseInt(args[0]),
- num_consumers = Integer.parseInt(args[1]),
- num_elements = Integer.parseInt(args[2]),
- num_iterations = Integer.parseInt(args[3]),
- num_timeout_secs = Integer.parseInt(args[4]),
- num_timeout_nano_secs = Integer.parseInt(args[5]);
-
- if (num_elements < 1
- || num_consumers < 1
- || num_producers < 1)
- {
- System.out.println("All the parameters must be larger than zero.");
- System.exit(1);
- }
-
- SimpleMessageQueue queue = new SimpleMessageQueue(num_elements);
- Consumer[] consumers = new Consumer[num_consumers];
- Producer[] producers = new Producer[num_producers];
- JoinableThreadGroup thread_group = new JoinableThreadGroup("Producer Consumer");
-
- for (int i = 0; i < num_producers; i++)
- {
- producers[i] = new Producer("Number " + (i + 1), queue, num_iterations, new TimeValue (num_timeout_secs, num_timeout_nano_secs));
- new Thread(thread_group, producers[i]).start();
- }
-
- for (int i = 0; i < num_consumers; i++)
- {
- consumers[i] = new Consumer("Number " + (i + 1), queue, num_iterations, new TimeValue (num_timeout_secs, num_timeout_nano_secs));
- new Thread(thread_group, consumers[i]).start();
- }
-
- try
- {
- thread_group.join();
- }
- catch(InterruptedException excp)
- {
- System.out.println("QueueTest::main");
- System.out.println(excp);
- }
- }
-}
diff --git a/java/tests/Concurrency/Condition/SimpleMessageQueue.java b/java/tests/Concurrency/Condition/SimpleMessageQueue.java
deleted file mode 100644
index bb703516858..00000000000
--- a/java/tests/Concurrency/Condition/SimpleMessageQueue.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package tests.Concurrency.Condition;
-
-import JACE.ASX.TimeoutException;
-import JACE.ASX.TimeValue;
-import JACE.Concurrency.*;
-
-public class SimpleMessageQueue
-{
- private int num_items_ = 0;
- private int head_ = 0, tail_ = 0;
- private Object[] queue_;
-
- private Mutex lock_ = new Mutex ();
- private Condition notFull_ = new Condition (lock_);
- private Condition notEmpty_ = new Condition (lock_);
-
- public SimpleMessageQueue(int size)
- {
- queue_ = new Object[size];
- }
-
- public void enqueue(Object element, TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- try
- {
- lock_.acquire ();
- while (this.isFull ())
- notFull_.Wait (timeout);
-
- if (tail_ == queue_.length)
- tail_ = 0;
- queue_[tail_] = element;
- tail_++;
-
- num_items_++;
- notEmpty_.signal ();
- }
- finally
- {
- lock_.release ();
- }
- }
-
- public Object dequeue (TimeValue timeout)
- throws TimeoutException, InterruptedException
- {
- Object return_value = null;
-
- try
- {
- lock_.acquire ();
- while (this.isEmpty ())
- notEmpty_.Wait (timeout);
-
- return_value = queue_[head_];
- head_++;
- if (head_ == queue_.length)
- head_ = 0;
-
- num_items_--;
- notFull_.signal ();
- }
- finally
- {
- lock_.release ();
- }
- return return_value;
- }
-
- public boolean isEmpty()
- {
- return num_items_ == 0;
- }
-
- public boolean isFull()
- {
- return num_items_ == queue_.length;
- }
-
- public int size()
- {
- return num_items_;
- }
-}
-
diff --git a/java/tests/Concurrency/Makefile b/java/tests/Concurrency/Makefile
deleted file mode 100644
index f967dffb92f..00000000000
--- a/java/tests/Concurrency/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# Makefile
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-files = MutexTest.java \
- SemaphoreTest.java \
- RWMutexTest.java \
- TokenTest.java
-
-packages = tests.Concurrency
-
-realclean:
- find ${JACE_WRAPPER}/classes/tests/Concurrency -name '*.class' -print | xargs ${RM}
diff --git a/java/tests/Concurrency/MutexTest.dsp b/java/tests/Concurrency/MutexTest.dsp
deleted file mode 100644
index b430b5f7998..00000000000
--- a/java/tests/Concurrency/MutexTest.dsp
+++ /dev/null
@@ -1,72 +0,0 @@
-# Microsoft Developer Studio Project File - Name="MutexTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=MutexTest - Java Virtual Machine 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 "MutexTest.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 "MutexTest.mak" CFG="MutexTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "MutexTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "MutexTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "MutexTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "MutexTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "MutexTest - Java Virtual Machine Release"
-# Name "MutexTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\MutexTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Concurrency/MutexTest.java b/java/tests/Concurrency/MutexTest.java
deleted file mode 100644
index 680266ef071..00000000000
--- a/java/tests/Concurrency/MutexTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * tests.Concurrency
- *
- * = FILENAME
- * MutexTest.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package tests.Concurrency;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.Concurrency.*;
-
-class MutexReader extends Thread
-{
- MutexReader (int nIterations, Mutex mutex)
- {
- this.nIterations_ = nIterations;
- this.mutex_ = mutex;
- }
-
- public void run ()
- {
- for (int i = 1; i <= this.nIterations_; i++)
- {
- // Acquire the mutex (will block until it gets it)
- try
- {
- this.mutex_.acquire ();
- }
- catch (InterruptedException e)
- {
- ACE.ERROR (e);
- }
-
- MutexTest.count++;
- ACE.DEBUG (Thread.currentThread ().toString () +
- " reader acquired mutex in iteration " + i +
- ", count = " + MutexTest.count);
-
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
- // Release the mutex
- this.mutex_.release ();
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
-
- }
- }
-
- int nIterations_;
- Mutex mutex_;
-}
-
-class MutexWriter extends Thread
-{
- MutexWriter (int nIterations, Mutex mutex)
- {
- this.nIterations_ = nIterations;
- this.mutex_ = mutex;
- }
-
- public void run ()
- {
- for (int i = 1; i <= this.nIterations_; i++)
- {
- // Acquire the mutex (will block until it gets it)
- try
- {
- this.mutex_.acquire ();
- }
- catch (InterruptedException e)
- {
- ACE.ERROR (e);
- }
-
- MutexTest.count++;
- ACE.DEBUG (Thread.currentThread ().toString () +
- " writer acquired mutex in iteration " + i +
- ", count = " + MutexTest.count);
-
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
-
- // Release the mutex
- this.mutex_.release ();
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
-
- }
- }
-
- int nIterations_;
- Mutex mutex_;
-}
-
-public class MutexTest
-{
- public static void main (String args[])
- {
- int nReaders = 1;
- int nWriters = 1;
- int nIterations = 100;
- int i;
- try
- {
- if (args.length == 3)
- {
- nReaders = Integer.parseInt (args[0]);
- nWriters = Integer.parseInt (args[1]);
- nIterations = Integer.parseInt (args[2]);
- }
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
-
- // Create a lock
- Mutex mutex = new Mutex ();
-
- // Now spawn off the readers and writers
- for (i = 0; i < nReaders; i++)
- new MutexReader (nIterations, mutex).start ();
-
- for (i = 0; i < nWriters; i++)
- new MutexWriter (nIterations, mutex).start ();
- }
- public static int count;
-}
diff --git a/java/tests/Concurrency/RWMutexTest.dsp b/java/tests/Concurrency/RWMutexTest.dsp
deleted file mode 100644
index 96a88a32208..00000000000
--- a/java/tests/Concurrency/RWMutexTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="RWMutexTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=RWMutexTest - Java Virtual Machine 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 "RWMutexTest.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 "RWMutexTest.mak"\
- CFG="RWMutexTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "RWMutexTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "RWMutexTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "RWMutexTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "RWMutexTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "RWMutexTest - Java Virtual Machine Release"
-# Name "RWMutexTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\RWMutexTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Concurrency/RWMutexTest.java b/java/tests/Concurrency/RWMutexTest.java
deleted file mode 100644
index ab28c9a83fd..00000000000
--- a/java/tests/Concurrency/RWMutexTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * tests.Concurrency
- *
- * = FILENAME
- * RWMutexTest.java
- *
- *@author Ross Dargahi (rossd@krinfo.com)
- *
- *************************************************/
-package tests.Concurrency;
-
-import JACE.OS.*;
-import JACE.Concurrency.*;
-
-class TestThread extends Thread
-{
- TestThread(String name,
- boolean writer,
- RWMutex lock)
- {
- super (name);
- mWriter = writer;
- mLock = lock;
- }
-
- public void run()
- {
- for (int i = 0; i < 10; i++)
- {
- try
- {
- if (!mWriter)
- {
- mLock.acquireRead();
- ACE.DEBUG (getName() + ": Acquired Read Lock");
-
- int sleepTime = i * 100;
- sleep (sleepTime);
-
- mLock.release ();
- ACE.DEBUG (getName () + ": Released Read Lock");
- }
- else
- {
- mLock.acquireWrite ();
- ACE.DEBUG (getName () + ": Acquired Write Lock");
-
- int sleepTime = i * 100;
- sleep (sleepTime);
-
- mLock.release ();
- ACE.DEBUG (getName () + ": Released Write Lock");
- }
- }
- catch (InterruptedException ex)
- {
- ACE.ERROR ("InterruptedException");
- }
- }
- }
-
- RWMutex mLock;
- boolean mWriter;
-}
-
-public class RWMutexTest
-{
- public static void main(String [] args)
- {
- RWMutex lock = new RWMutex();
-
- TestThread t1 = new TestThread ("1", false, lock);
- TestThread t2 = new TestThread ("2", false, lock);
- TestThread t3 = new TestThread ("3", false, lock);
- TestThread t4 = new TestThread ("4", true, lock);
- TestThread t5 = new TestThread ("5", false, lock);
- TestThread t6 = new TestThread ("6", false, lock);
- TestThread t7 = new TestThread ("7", false, lock);
- TestThread t8 = new TestThread ("8", true, lock);
-
- t1.start ();
- t2.start ();
- t3.start ();
- t4.start ();
- t5.start ();
- t6.start ();
- t7.start ();
- t8.start ();
- }
-}
-
diff --git a/java/tests/Concurrency/SemaphoreTest.dsp b/java/tests/Concurrency/SemaphoreTest.dsp
deleted file mode 100644
index 2bc61986361..00000000000
--- a/java/tests/Concurrency/SemaphoreTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="SemaphoreTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=SemaphoreTest - Java Virtual Machine 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 "SemaphoreTest.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 "SemaphoreTest.mak"\
- CFG="SemaphoreTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "SemaphoreTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "SemaphoreTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "SemaphoreTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "SemaphoreTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "SemaphoreTest - Java Virtual Machine Release"
-# Name "SemaphoreTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\SemaphoreTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Concurrency/SemaphoreTest.java b/java/tests/Concurrency/SemaphoreTest.java
deleted file mode 100644
index b45929daa55..00000000000
--- a/java/tests/Concurrency/SemaphoreTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * tests.Concurrency
- *
- * = FILENAME
- * SemaphoreTest.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package tests.Concurrency;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.Concurrency.*;
-
-class SemaphoreWriter extends Thread
-{
- SemaphoreWriter (int nIterations, Semaphore s)
- {
- this.nIterations_ = nIterations;
- this.s_ = s;
- }
-
- public void run ()
- {
- for (int i = 1; i <= this.nIterations_; i++)
- {
- // Acquire the semaphore (will block until it gets it)
- try
- {
- this.s_.acquire ();
- }
- catch (InterruptedException e)
- {
- ACE.ERROR (e);
- }
-
- SemaphoreTest.counter++;
- ACE.DEBUG (Thread.currentThread ().toString () +
- " acquired semaphore in iteration " + i +
- ", counter = " + SemaphoreTest.counter);
-
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
-
- // Release the semaphore
- this.s_.release ();
- ACE.DEBUG (Thread.currentThread ().toString () +
- " released semaphore in iteration " + i);
- try
- {
- Thread.sleep (1);
- }
- catch (InterruptedException e)
- {
- }
-
- }
- }
-
- int nIterations_;
- Semaphore s_;
-}
-
-public class SemaphoreTest
-{
- public static void main (String args[])
- {
- int nThreads = 1;
- int count = 1;
- int nIterations = 100;
- int i;
- try
- {
- if (args.length == 3)
- {
- nThreads = Integer.parseInt (args[0]);
- count = Integer.parseInt (args[1]);
- nIterations = Integer.parseInt (args[2]);
- }
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
-
- // Create a lock
- Semaphore s = new Semaphore (count);
-
- // Spawn off n_threads
- for (i = 0; i < nThreads; i++)
- new SemaphoreWriter (nIterations, s).start ();
- }
- public static int counter;
-}
diff --git a/java/tests/Concurrency/TokenTest.dsp b/java/tests/Concurrency/TokenTest.dsp
deleted file mode 100644
index f0a1f87345e..00000000000
--- a/java/tests/Concurrency/TokenTest.dsp
+++ /dev/null
@@ -1,72 +0,0 @@
-# Microsoft Developer Studio Project File - Name="TokenTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=TokenTest - Java Virtual Machine 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 "TokenTest.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 "TokenTest.mak" CFG="TokenTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "TokenTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "TokenTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "TokenTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "TokenTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "TokenTest - Java Virtual Machine Release"
-# Name "TokenTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\TokenTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Concurrency/TokenTest.java b/java/tests/Concurrency/TokenTest.java
deleted file mode 100644
index ededed9fed9..00000000000
--- a/java/tests/Concurrency/TokenTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * tests.Concurrency
- *
- * = FILENAME
- * TokenTest.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package tests.Concurrency;
-
-import java.io.*;
-import JACE.OS.*;
-import JACE.Concurrency.*;
-
-class MyToken extends Token
-{
- public void sleepHook ()
- {
- ACE.DEBUG (Thread.currentThread () + " blocking, sleepHook called");
- }
-}
-
-public class TokenTest implements Runnable
-{
- public void run ()
- {
- try
- {
- this.token_.acquire ();
- ACE.DEBUG (Thread.currentThread () + " acquired token");
- this.token_.acquire ();
- ACE.DEBUG (Thread.currentThread () + " acquired token");
- Thread.sleep (100);
-
- this.token_.renew (1);
-
- this.token_.release ();
- ACE.DEBUG (Thread.currentThread () + " released token");
- this.token_.release ();
- ACE.DEBUG (Thread.currentThread () + " released token");
- }
- catch (InterruptedException e)
- {
- this.token_.release ();
- }
- }
-
- public static void main (String args [])
- {
- ThreadManager tm = new ThreadManager ();
- int n = 1;
- try
- {
- if (args.length == 1)
- {
- n = Integer.parseInt (args[0]);
- }
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
-
- tm.spawnN (n,
- new TokenTest (),
- false);
- }
-
- private MyToken token_ = new MyToken ();
-}
diff --git a/java/tests/Connection/AcceptorTest.dsp b/java/tests/Connection/AcceptorTest.dsp
deleted file mode 100644
index c4295c34732..00000000000
--- a/java/tests/Connection/AcceptorTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="AcceptorTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=AcceptorTest - Java Virtual Machine 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 "AcceptorTest.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 "AcceptorTest.mak"\
- CFG="AcceptorTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "AcceptorTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "AcceptorTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "AcceptorTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "AcceptorTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "AcceptorTest - Java Virtual Machine Release"
-# Name "AcceptorTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\AcceptorTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Connection/AcceptorTest.java b/java/tests/Connection/AcceptorTest.java
deleted file mode 100644
index 0f8877f52d9..00000000000
--- a/java/tests/Connection/AcceptorTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Connection
-//
-// = FILENAME
-// AcceptorTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class AcceptorTest
-{
- void print_usage_and_die ()
- {
- System.out.println ("Usage: test_server [<port>]");
- System.exit (0);
- }
-
- public void init (int port)
- {
- try
- {
- Acceptor acceptor = new Acceptor (Class.forName ("tests.Connection.ServerHandler"));
- acceptor.open (port);
- while (true)
- {
- acceptor.accept ();
- }
- }
- catch (ClassNotFoundException e)
- {
- ACE.ERROR (e);
- }
- catch (SocketException e)
- {
- ACE.ERROR ("Socket Exception: " + e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR ("Dang!" + e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- public static void main (String [] args)
- {
- int port = ACE.DEFAULT_SERVER_PORT;
- AcceptorTest acceptorTest = new AcceptorTest ();
-
- if (args.length == 1)
- {
- try
- {
- port = Integer.parseInt (args[0]);
- }
- catch (NumberFormatException e)
- {
- acceptorTest.print_usage_and_die ();
- }
- }
- acceptorTest.init (port);
- }
-}
diff --git a/java/tests/Connection/ClientHandler.dsp b/java/tests/Connection/ClientHandler.dsp
deleted file mode 100644
index e9bf0f6fc4d..00000000000
--- a/java/tests/Connection/ClientHandler.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ClientHandler" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=ClientHandler - Java Virtual Machine 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 "ClientHandler.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 "ClientHandler.mak"\
- CFG="ClientHandler - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ClientHandler - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "ClientHandler - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "ClientHandler - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "ClientHandler - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "ClientHandler - Java Virtual Machine Release"
-# Name "ClientHandler - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\ClientHandler.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Connection/ClientHandler.java b/java/tests/Connection/ClientHandler.java
deleted file mode 100644
index a18f7740cce..00000000000
--- a/java/tests/Connection/ClientHandler.java
+++ /dev/null
@@ -1,77 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Connection
-//
-// = FILENAME
-// ClientHandler.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ClientHandler extends SvcHandler
-{
- public ClientHandler ()
- {
- }
-
- public int open (Object obj)
- {
- new Thread (this).start ();
- return 0;
- }
-
- public void run ()
- {
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
-
- String msg;
- StringBuffer ack = new StringBuffer ();
- int ack_len;
- try
- {
- while (true)
- {
- System.out.print ("Enter input: ");
- System.out.flush ();
- msg = in.readLine ();
- if (msg == null)
- break;
- this.peer ().send (new StringBuffer (msg));
- System.out.println ("Waiting for ack...");
- ack_len = this.peer ().recv (ack);
- if (ack_len == 0)
- break;
- else
- System.out.println (ack);
- }
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("connection reset by peer");
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- finally
- {
- try
- {
- this.peer ().close ();
- }
- catch (IOException e)
- {
- }
- }
-
- }
-}
diff --git a/java/tests/Connection/ConnectorTest.dsp b/java/tests/Connection/ConnectorTest.dsp
deleted file mode 100644
index 221581c72fe..00000000000
--- a/java/tests/Connection/ConnectorTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ConnectorTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=ConnectorTest - Java Virtual Machine 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 "ConnectorTest.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 "ConnectorTest.mak"\
- CFG="ConnectorTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ConnectorTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "ConnectorTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "ConnectorTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "ConnectorTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "ConnectorTest - Java Virtual Machine Release"
-# Name "ConnectorTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\ConnectorTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Connection/ConnectorTest.java b/java/tests/Connection/ConnectorTest.java
deleted file mode 100644
index 605d5e7a400..00000000000
--- a/java/tests/Connection/ConnectorTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Connection
-//
-// = FILENAME
-// ConnectorTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ConnectorTest
-{
- void print_usage_and_die ()
- {
- System.out.println ("Usage: test_Connector <hostname> [<port>]");
- System.exit (0);
- }
-
- public void init (String hostname, int port)
- {
- try
- {
- Connector connector = new Connector ();
- connector.open (hostname, port);
- connector.connect (new ClientHandler ());
- }
- catch (UnknownHostException e)
- {
- ACE.ERROR (e);
- }
- catch (SocketException e)
- {
- ACE.ERROR ("Connection refused");
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- public static void main (String [] args)
- {
- int port = ACE.DEFAULT_SERVER_PORT;
- ConnectorTest connectorTest = new ConnectorTest ();
-
- if (args.length == 2)
- {
- try
- {
- port = Integer.parseInt (args[1]);
- }
- catch (NumberFormatException e)
- {
- connectorTest.print_usage_and_die ();
- }
- }
- connectorTest.init (args[0], port);
- }
-}
diff --git a/java/tests/Connection/HTTPHelperTest.java b/java/tests/Connection/HTTPHelperTest.java
deleted file mode 100644
index 02a16d838af..00000000000
--- a/java/tests/Connection/HTTPHelperTest.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package tests.Connection;
-
-import java.io.*;
-import JACE.Connection.*;
-
-public class HTTPHelperTest
-{
- public static void main(String args[])
- {
- // This is just a quick test to confirm that the Base 64 encoding and decoding work
- // (tests the example given in the HTTP 1.1 RFC)
-
- String secret = "Aladdin:open sesame";
-
- String encoded = JACE.Connection.HTTPHelper.EncodeBase64(secret);
-
- System.err.println("Encoding string: " + secret);
-
- System.err.println("Result: " + encoded);
-
- System.err.println("Is this right? " + (encoded.equals("QWxhZGRpbjpvcGVuIHNlc2FtZQ==") ? "Yes" : "No"));
-
- // Decode should also be tested
- //
- }
-};
-
diff --git a/java/tests/Connection/Makefile b/java/tests/Connection/Makefile
deleted file mode 100644
index f58878033e0..00000000000
--- a/java/tests/Connection/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# Makefile
-# $Id$
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-
-files = ServerHandler.java \
- ClientHandler.java \
- ConnectorTest.java \
- AcceptorTest.java \
- HTTPHelperTest.java
-
-packages = tests.Connection
-
-realclean:
- find ${JACE_WRAPPER}/classes/tests/Connection -name '*.class' -print | xargs ${RM}
diff --git a/java/tests/Connection/ServerHandler.dsp b/java/tests/Connection/ServerHandler.dsp
deleted file mode 100644
index 13aff2843e3..00000000000
--- a/java/tests/Connection/ServerHandler.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ServerHandler" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=ServerHandler - Java Virtual Machine 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 "ServerHandler.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 "ServerHandler.mak"\
- CFG="ServerHandler - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ServerHandler - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "ServerHandler - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "ServerHandler - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "ServerHandler - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "ServerHandler - Java Virtual Machine Release"
-# Name "ServerHandler - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\ServerHandler.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Connection/ServerHandler.java b/java/tests/Connection/ServerHandler.java
deleted file mode 100644
index 7cdd50d7d37..00000000000
--- a/java/tests/Connection/ServerHandler.java
+++ /dev/null
@@ -1,68 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Connection
-//
-// = FILENAME
-// ServerHandler.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.Connection;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-
-public class ServerHandler extends SvcHandler
-{
- public ServerHandler ()
- {
- }
-
- public int open (Object obj)
- {
- new Thread (this).start ();
- return 0;
- }
-
- public void run ()
- {
- int msg_len;
- System.out.println ("Waiting for messages...");
- try
- {
- while (true)
- {
- StringBuffer msg = new StringBuffer ();
- msg_len = this.peer ().recv (msg);
- if (msg_len == 0)
- break;
- System.out.println ("Received: " + msg);
- this.peer ().send (new StringBuffer ("Got it!"));
- }
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("connection reset by peer");
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- finally
- {
- try
- {
- this.peer ().close ();
- }
- catch (IOException e)
- {
- }
- }
-
- }
-}
diff --git a/java/tests/Misc/Makefile b/java/tests/Misc/Makefile
deleted file mode 100644
index 2ea3d10fba5..00000000000
--- a/java/tests/Misc/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Makefile
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-
-files = ParseArgsTest.java
-
-packages = tests.Misc
-
-realclean:
- find ${JACE_WRAPPER}/classes/tests/Misc -name '*.class' -print | xargs ${RM}
diff --git a/java/tests/Misc/ParseArgsTest.dsp b/java/tests/Misc/ParseArgsTest.dsp
deleted file mode 100644
index 8befbaf1911..00000000000
--- a/java/tests/Misc/ParseArgsTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ParseArgsTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=ParseArgsTest - Java Virtual Machine 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 "ParseArgsTest.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 "ParseArgsTest.mak"\
- CFG="ParseArgsTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ParseArgsTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "ParseArgsTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "ParseArgsTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "ParseArgsTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "ParseArgsTest - Java Virtual Machine Release"
-# Name "ParseArgsTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\ParseArgsTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Misc/ParseArgsTest.java b/java/tests/Misc/ParseArgsTest.java
deleted file mode 100644
index 5baddd2745d..00000000000
--- a/java/tests/Misc/ParseArgsTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Misc
-//
-// = FILENAME
-// ParseArgsTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.Misc;
-
-import JACE.OS.*;
-import JACE.Misc.*;
-
-public class ParseArgsTest
-{
- public static void main (String args[])
- {
- String s;
- GetOpt opt = new GetOpt (args, "p:rs:");
- for (int c; (c = opt.next ()) != -1; )
- {
- switch (c)
- {
- case 'p':
- s = opt.optarg ();
- ACE.DEBUG ("Option <p> selected with argument " + s);
- break;
- case 'r':
- ACE.DEBUG ("Option <r> selected");
- break;
- case 's':
- s = opt.optarg ();
- ACE.DEBUG ("Option <s> selected with argument " + s);
- break;
- default:
- ACE.DEBUG ("Usage: java tests.Misc.ParseArgsTest [-p arg1] [-r] [-s arg2]");
- break;
- }
- }
- }
-}
diff --git a/java/tests/Reactor/Makefile b/java/tests/Reactor/Makefile
deleted file mode 100644
index f55573a89cb..00000000000
--- a/java/tests/Reactor/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Makefile
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-
-files = TimeValueTest.java \
- TimerQueueTest.java
-
-packages = tests.Reactor
-
-realclean:
- find ${JACE_WRAPPER}/classes/tests/Reactor -name '*.class' -print | xargs ${RM}
diff --git a/java/tests/Reactor/TimeValueTest.dsp b/java/tests/Reactor/TimeValueTest.dsp
deleted file mode 100644
index 5a957758046..00000000000
--- a/java/tests/Reactor/TimeValueTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="TimeValueTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=TimeValueTest - Java Virtual Machine 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 "TimeValueTest.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 "TimeValueTest.mak"\
- CFG="TimeValueTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "TimeValueTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "TimeValueTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "TimeValueTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "TimeValueTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "TimeValueTest - Java Virtual Machine Release"
-# Name "TimeValueTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\TimeValueTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Reactor/TimeValueTest.java b/java/tests/Reactor/TimeValueTest.java
deleted file mode 100644
index b4f3e420ae1..00000000000
--- a/java/tests/Reactor/TimeValueTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * ACE.Reactor
- *
- * = FILENAME
- * TimeValueTest.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package tests.Reactor;
-
-import JACE.OS.*;
-import JACE.ASX.*;
-
-public class TimeValueTest
-{
- public void ASSERT (boolean expression, int i)
- {
- if (!expression)
- ACE.DEBUG ("ASSERT failed for " + i);
- }
-
- public void runTest ()
- {
- TimeValue tv1 = new TimeValue ();
- TimeValue tv2 = new TimeValue (2);
- TimeValue tv3 = new TimeValue (100);
- TimeValue tv4 = new TimeValue (1, 1000000000);
- TimeValue tv5 = new TimeValue (2);
- TimeValue tv6 = new TimeValue (1, -1000000000);
-
- this.ASSERT (tv1.equals (new TimeValue (0)), 1);
- this.ASSERT (tv2.lessThan (tv3), 2);
- this.ASSERT (tv2.lessThanEqual (tv2), 3);
- this.ASSERT (tv2.greaterThanEqual (tv4), 4);
- this.ASSERT (tv5.greaterThanEqual (tv6), 5);
- this.ASSERT (tv2.equals (new TimeValue (1, 1000000000)), 6);
- this.ASSERT (tv5.equals (tv4), 7);
- this.ASSERT (tv2.equals (tv4), 8);
- this.ASSERT (tv1.notEquals (tv2), 9);
- this.ASSERT (tv6.equals (tv1), 10);
- }
-
- public static void main (String [] args)
- {
- new TimeValueTest ().runTest ();
- }
-}
diff --git a/java/tests/Reactor/TimerQueueTest.dsp b/java/tests/Reactor/TimerQueueTest.dsp
deleted file mode 100644
index 35f52adbea0..00000000000
--- a/java/tests/Reactor/TimerQueueTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="TimerQueueTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=TimerQueueTest - Java Virtual Machine 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 "TimerQueueTest.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 "TimerQueueTest.mak"\
- CFG="TimerQueueTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "TimerQueueTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "TimerQueueTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "TimerQueueTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "TimerQueueTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "TimerQueueTest - Java Virtual Machine Release"
-# Name "TimerQueueTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\TimerQueueTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/Reactor/TimerQueueTest.java b/java/tests/Reactor/TimerQueueTest.java
deleted file mode 100644
index d34439dcf9b..00000000000
--- a/java/tests/Reactor/TimerQueueTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.Reactor
-//
-// = FILENAME
-// TimerQueueTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.Reactor;
-
-import JACE.OS.*;
-import JACE.ASX.*;
-import JACE.Reactor.*;
-
-public class TimerQueueTest implements EventHandler
-{
- public int handleTimeout (TimeValue tv, Object obj)
- {
- ACE.DEBUG ("handleTimeout: " + tv.toString () + " " + (String) obj);
- return 0;
- }
-
- public static void main (String args [])
- {
- TimerQueue tq = new TimerQueue (true);
- TimerQueueTest th1 = new TimerQueueTest ();
- int n = 5;
-
- try
- {
- if (args.length == 1)
- {
- n = Integer.parseInt (args[0]);
- }
- }
- catch (NumberFormatException e)
- {
- ACE.ERROR ("Illegal argument.");
- }
-
- // Set a periodic timer
- int id= tq.scheduleTimer (th1,
- "periodic",
- new TimeValue (2),
- new TimeValue (3));
-
- int i;
- // Set a bunch of single timers
- for (i=1; i <= n; i++)
- {
- tq.scheduleTimer (th1,
- "A-timer-" + new Integer (i),
- new TimeValue (i*2));
- }
-
- TimerQueueTest th2 = new TimerQueueTest ();
- for (i=1; i <= n; i++)
- {
- tq.scheduleTimer (th2,
- "B-timer-" + new Integer (i),
- new TimeValue (i*3));
- }
- // Cancel all timers associated with this handler
- tq.cancelTimer (th2);
-
- try
- {
- Thread.sleep (30000);
- }
- catch (InterruptedException e)
- {
- }
- tq.cancelTimer (id);
- System.exit (0);
- }
-}
diff --git a/java/tests/SOCK_SAP/Makefile b/java/tests/SOCK_SAP/Makefile
deleted file mode 100644
index 1481d8e566f..00000000000
--- a/java/tests/SOCK_SAP/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Makefile
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-
-files = SOCKConnectorTest.java \
- SOCKAcceptorTest.java
-
-packages = tests.SOCK_SAP
-
-realclean:
- find ${JACE_WRAPPER}/classes/tests/SOCK_SAP -name '*.class' -print | xargs ${RM}
diff --git a/java/tests/SOCK_SAP/SOCKAcceptorTest.dsp b/java/tests/SOCK_SAP/SOCKAcceptorTest.dsp
deleted file mode 100644
index e49c3a8e7ff..00000000000
--- a/java/tests/SOCK_SAP/SOCKAcceptorTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="SOCKAcceptorTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=SOCKAcceptorTest - Java Virtual Machine 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 "SOCKAcceptorTest.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 "SOCKAcceptorTest.mak"\
- CFG="SOCKAcceptorTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "SOCKAcceptorTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "SOCKAcceptorTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "SOCKAcceptorTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "SOCKAcceptorTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "SOCKAcceptorTest - Java Virtual Machine Release"
-# Name "SOCKAcceptorTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\SOCKAcceptorTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/SOCK_SAP/SOCKAcceptorTest.java b/java/tests/SOCK_SAP/SOCKAcceptorTest.java
deleted file mode 100644
index 34ab8ecb6c9..00000000000
--- a/java/tests/SOCK_SAP/SOCKAcceptorTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.SOCK_SAP
-//
-// = FILENAME
-// SOCKAcceptorTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-
-class TestHandler extends Thread
-{
- public TestHandler (SOCKStream stream)
- {
- this.stream_ = stream;
- this.start ();
- }
-
- public void run ()
- {
- int msgLen;
- System.out.println ("Waiting for messages...");
- try
- {
- while (true)
- {
- StringBuffer msg = new StringBuffer ();
- msgLen = this.stream_.recv (msg);
- if (msgLen == 0)
- break;
- ACE.DEBUG ("Received: " + msg);
- this.stream_.send ("Got it!");
- }
- }
- catch (NullPointerException e)
- {
- ACE.ERROR ("connection reset by peer");
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- finally
- {
- try
- {
- this.stream_.close ();
- }
- catch (IOException e)
- {
- }
- }
- }
- SOCKStream stream_;
-}
-
-public class SOCKAcceptorTest
-{
- void print_usage_and_die ()
- {
- ACE.DEBUG ("Usage: SOCKAcceptorTest [<port>]");
- System.exit (0);
- }
-
- public void init (int port)
- {
- try
- {
- SOCKAcceptor acceptor = new SOCKAcceptor (port);
- while (true)
- {
- SOCKStream stream = new SOCKStream ();
- acceptor.accept (stream);
- TestHandler handler = new TestHandler (stream);
- }
- }
- catch (IOException e)
- {
- }
- }
-
- public static void main (String [] args)
- {
- int port = ACE.DEFAULT_SERVER_PORT;
- SOCKAcceptorTest server = new SOCKAcceptorTest ();
- if (args.length == 1)
- {
- try
- {
- port = Integer.parseInt (args[0]);
- }
- catch (NumberFormatException e)
- {
- server.print_usage_and_die ();
- }
- }
- server.init (port);
- }
-}
diff --git a/java/tests/SOCK_SAP/SOCKConnectorTest.dsp b/java/tests/SOCK_SAP/SOCKConnectorTest.dsp
deleted file mode 100644
index a075359a071..00000000000
--- a/java/tests/SOCK_SAP/SOCKConnectorTest.dsp
+++ /dev/null
@@ -1,73 +0,0 @@
-# Microsoft Developer Studio Project File - Name="SOCKConnectorTest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=SOCKConnectorTest - Java Virtual Machine 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 "SOCKConnectorTest.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 "SOCKConnectorTest.mak"\
- CFG="SOCKConnectorTest - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "SOCKConnectorTest - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "SOCKConnectorTest - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "SOCKConnectorTest - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "SOCKConnectorTest - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "SOCKConnectorTest - Java Virtual Machine Release"
-# Name "SOCKConnectorTest - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\SOCKConnectorTest.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/SOCK_SAP/SOCKConnectorTest.java b/java/tests/SOCK_SAP/SOCKConnectorTest.java
deleted file mode 100644
index d1fdacc48a4..00000000000
--- a/java/tests/SOCK_SAP/SOCKConnectorTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-// ============================================================================
-//
-// = PACKAGE
-// tests.SOCK_SAP
-//
-// = FILENAME
-// SOCKConnectorTest.java
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-package tests.SOCK_SAP;
-
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import JACE.SOCK_SAP.*;
-
-public class SOCKConnectorTest
-{
- static void print_usage_and_die ()
- {
- System.out.println ("Usage: SOCKConnectorTest <hostname> [<port>]");
- System.exit (0);
- }
-
- void processRequests (SOCKStream stream) throws IOException
- {
- // 1.0 JDK DataInputStream in = new DataInputStream (System.in);
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- String msg;
- int ack_len;
-
- while (true)
- {
- StringBuffer ack = new StringBuffer ();
- ACE.DEBUG ("Enter input: ");
- ACE.FLUSH ();
- msg = in.readLine ();
- if (msg == null)
- break;
- stream.send (msg);
- ACE.DEBUG ("Waiting for ack...");
- ack_len = stream.recv (ack);
- if (ack_len == 0)
- break;
- else
- ACE.DEBUG (ack.toString ());
- }
- }
-
- public void init (String host, int port)
- {
- SOCKStream stream = new SOCKStream ();
- SOCKConnector connector = new SOCKConnector ();
- try
- {
- connector.connect (stream,
- host,
- port);
- processRequests (stream);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- }
-
- public static void main (String [] args)
- {
- int port = ACE.DEFAULT_SERVER_PORT;
- SOCKConnectorTest client = new SOCKConnectorTest ();
-
- // check arg count
- if (args.length == 0 || args.length > 2)
- print_usage_and_die();
-
- if (args.length == 2)
- {
- try
- {
- port = Integer.parseInt (args[1]);
- }
- catch (NumberFormatException e)
- {
- client.print_usage_and_die ();
- }
- }
- client.init (args[0], port);
-
-
- }
-}
-
diff --git a/java/tests/ServiceConfigurator/Makefile b/java/tests/ServiceConfigurator/Makefile
deleted file mode 100644
index b4e62f70997..00000000000
--- a/java/tests/ServiceConfigurator/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# Makefile
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-
-files = TestService.java \
- reloadTest.java \
- suspendTest.java
-
-packages = tests.Service_Configurator
-
-realclean:
- find ${JACE_WRAPPER}/classes/tests/ServiceConfigurator -name '*.class' -print | xargs ${RM}
-
-
diff --git a/java/tests/ServiceConfigurator/ServiceConfigurator.dsp b/java/tests/ServiceConfigurator/ServiceConfigurator.dsp
deleted file mode 100644
index ab006d72da8..00000000000
--- a/java/tests/ServiceConfigurator/ServiceConfigurator.dsp
+++ /dev/null
@@ -1,81 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ServiceConfigurator" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Java Virtual Machine Java Project" 0x0809
-
-CFG=ServiceConfigurator - Java Virtual Machine 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 "ServiceConfigurator.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 "ServiceConfigurator.mak"\
- CFG="ServiceConfigurator - Java Virtual Machine Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ServiceConfigurator - Java Virtual Machine Release" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE "ServiceConfigurator - Java Virtual Machine Debug" (based on\
- "Java Virtual Machine Java Project")
-!MESSAGE
-
-# Begin Project
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-JAVA=jvc.exe
-
-!IF "$(CFG)" == "ServiceConfigurator - Java Virtual Machine Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "..\..\classes-r"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /O
-# ADD JAVA /O
-
-!ELSEIF "$(CFG)" == "ServiceConfigurator - Java Virtual Machine Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ""
-# PROP BASE Intermediate_Dir ""
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "..\..\classes"
-# PROP Intermediate_Dir ""
-# PROP Target_Dir ""
-# ADD BASE JAVA /g
-# ADD JAVA /g
-
-!ENDIF
-
-# Begin Target
-
-# Name "ServiceConfigurator - Java Virtual Machine Release"
-# Name "ServiceConfigurator - Java Virtual Machine Debug"
-# Begin Source File
-
-SOURCE=.\reloadTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\suspendTest.java
-# End Source File
-# Begin Source File
-
-SOURCE=.\TestService.java
-# End Source File
-# End Target
-# End Project
diff --git a/java/tests/ServiceConfigurator/TestService.java b/java/tests/ServiceConfigurator/TestService.java
deleted file mode 100644
index 7b34c181c60..00000000000
--- a/java/tests/ServiceConfigurator/TestService.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * tests.ServiceConfigurator
- *
- * = FILENAME
- * TestService.java
- *
- *@author Prashant Jain
- *
- *************************************************/
-package tests.ServiceConfigurator;
-
-import JACE.ServiceConfigurator.*;
-import JACE.OS.*;
-
-public class TestService extends ServiceObject
-{
- public int init (String [] args)
- {
- System.out.println("TestService init with arguments: ");
-
- if (args != null)
- for (int i = 0; i < args.length; i++)
- ACE.DEBUG (args[i]);
-
- return 0;
- }
-
- public int suspend()
- {
- System.out.println("TestService suspend ----");
-
- return 0;
- }
-
- public int resume()
- {
- System.out.println("TestService resume ----");
-
- return 0;
- }
-
- public int fini()
- {
- System.out.println("TestService remove ----");
-
- return 0;
- }
-
-}
-
diff --git a/java/tests/ServiceConfigurator/reloadTest.java b/java/tests/ServiceConfigurator/reloadTest.java
deleted file mode 100644
index 27806890239..00000000000
--- a/java/tests/ServiceConfigurator/reloadTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * tests.ServiceConfigurator
- *
- * = FILENAME
- * mainTest.java
- *
- *@author Prashant Jain, Everett Anderson
- *
- *************************************************/
-package tests.ServiceConfigurator;
-
-import JACE.ServiceConfigurator.*;
-import JACE.OS.*;
-import java.io.*;
-
-public class reloadTest
-{
-
- public static void main (String args [])
- {
- ServiceConfig daemon = new ServiceConfig ();
- try
- {
- daemon.open (args);
- Thread.sleep (10000);
-
- daemon.remove("TimeService");
-
- daemon.open (args);
- }
- catch (InterruptedException e)
- {
- ACE.ERROR (e);
- }
- catch (FileNotFoundException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- catch (ClassNotFoundException e)
- {
- ACE.ERROR (e + "foo");
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
-
- System.err.println("End of reloadTest");
- }
-
-}
diff --git a/java/tests/ServiceConfigurator/suspendTest.java b/java/tests/ServiceConfigurator/suspendTest.java
deleted file mode 100644
index ab12d06f2f5..00000000000
--- a/java/tests/ServiceConfigurator/suspendTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*************************************************
- *
- * = PACKAGE
- * tests.ServiceConfigurator
- *
- * = FILENAME
- * mainTest.java
- *
- *@author Prashant Jain, Everett Anderson
- *
- *************************************************/
-package tests.ServiceConfigurator;
-
-import JACE.ServiceConfigurator.*;
-import JACE.OS.*;
-import java.io.*;
-
-public class suspendTest
-{
-
- public static void main (String args [])
- {
- ServiceConfig daemon = new ServiceConfig ();
- ACE.enableDebugging();
-
- try
- {
- String args1 = "-f suspendTest1.conf";
- String[] argv1 = OS.createStringArray(args1, " ");
-
- daemon.open (argv1);
-
- Thread.sleep (10000);
-
-
- System.err.println("Suspending");
- String args2 = "-f suspendTest2.conf";
- String[] argv2 = OS.createStringArray(args2, " ");
-
- daemon.open (argv2);
-
- Thread.sleep (10000);
-
- System.err.println("Resuming");
- String args3 = "-f suspendTest3.conf";
- String[] argv3 = OS.createStringArray(args3, " ");
-
- daemon.open (argv3);
-
- Thread.sleep(10000);
- }
- catch (InterruptedException e)
- {
- ACE.ERROR (e);
- }
- catch (FileNotFoundException e)
- {
- ACE.ERROR (e);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- }
- catch (ClassNotFoundException e)
- {
- ACE.ERROR (e + "foo");
- }
- catch (IllegalAccessException e)
- {
- ACE.ERROR (e);
- }
- catch (InstantiationException e)
- {
- ACE.ERROR (e);
- }
-
- System.err.println("End of suspendTest");
- }
-
-}
diff --git a/java/tests/ServiceConfigurator/suspendTest1.conf b/java/tests/ServiceConfigurator/suspendTest1.conf
deleted file mode 100644
index 983af3234c1..00000000000
--- a/java/tests/ServiceConfigurator/suspendTest1.conf
+++ /dev/null
@@ -1 +0,0 @@
-load TestService tests.ServiceConfigurator.TestService ServiceObject "-p 10002"
diff --git a/java/tests/ServiceConfigurator/suspendTest2.conf b/java/tests/ServiceConfigurator/suspendTest2.conf
deleted file mode 100644
index 5cd6cd0fc77..00000000000
--- a/java/tests/ServiceConfigurator/suspendTest2.conf
+++ /dev/null
@@ -1 +0,0 @@
-suspend TestService
diff --git a/java/tests/ServiceConfigurator/suspendTest3.conf b/java/tests/ServiceConfigurator/suspendTest3.conf
deleted file mode 100644
index 71250c3acd7..00000000000
--- a/java/tests/ServiceConfigurator/suspendTest3.conf
+++ /dev/null
@@ -1 +0,0 @@
-resume TestService
diff --git a/java/tests/ServiceConfigurator/svc.conf b/java/tests/ServiceConfigurator/svc.conf
deleted file mode 100644
index 983af3234c1..00000000000
--- a/java/tests/ServiceConfigurator/svc.conf
+++ /dev/null
@@ -1 +0,0 @@
-load TestService tests.ServiceConfigurator.TestService ServiceObject "-p 10002"
diff --git a/java/tests/Tests.dsw b/java/tests/Tests.dsw
deleted file mode 100644
index 5e540af6a72..00000000000
--- a/java/tests/Tests.dsw
+++ /dev/null
@@ -1,257 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "AcceptorTest"=.\Connection\AcceptorTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "BufferStreamTest"=.\ASX\BufferStreamTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "ClientHandler"=.\Connection\ClientHandler.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "Condition"=.\Concurrency\Condition\Condition.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "ConnectorTest"=.\Connection\ConnectorTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "MessageQueueTest"=.\ASX\MessageQueueTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "MutexTest"=.\Concurrency\MutexTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "ParseArgsTest"=.\Misc\ParseArgsTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "PriorityBufferTest"=.\ASX\PriorityBufferTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "RWMutexTest"=.\Concurrency\RWMutexTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "SOCKAcceptorTest"=.\SOCK_SAP\SOCKAcceptorTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "SOCKConnectorTest"=.\SOCK_SAP\SOCKConnectorTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "SemaphoreTest"=.\Concurrency\SemaphoreTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "ServerHandler"=.\Connection\ServerHandler.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "ServiceConfigurator"=.\ServiceConfigurator\ServiceConfigurator.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "TaskTest"=.\ASX\TaskTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "ThreadPoolTest"=.\ASX\ThreadPoolTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "TimeValueTest"=.\Reactor\TimeValueTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "TimerQueueTest"=.\Reactor\TimerQueueTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "TokenTest"=.\Concurrency\TokenTest.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/java/tests/netsvcs/Logger/LoggerTest.java b/java/tests/netsvcs/Logger/LoggerTest.java
deleted file mode 100644
index 40ac903a1d3..00000000000
--- a/java/tests/netsvcs/Logger/LoggerTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*************************************************
- *
- * = FILENAME
- * LoggerTest.java
- *
- *@author Everett Anderson
- *
- *************************************************/
-package tests.netsvcs.Logger;
-
-import JACE.SOCK_SAP.*;
-import java.io.*;
-import java.net.*;
-import JACE.OS.*;
-import netsvcs.Logger.LogRecord;
-
-/**
- *
- * <p><h2>DESCRIPTION</h2>
- *
- * <blockquote>
- * This is a simple test log client very similar to the direct_logging client of
- * C++ ACE. The logging service should correctly receive messages from both
- * the C++ and Java version.
- * </blockquote>
- *
- * @see netsvcs.Logger.ServerLoggingAcceptor, netsvcs.Logger.LogRecord
- */
-public class LoggerTest {
-
- /** Command line: <hostname> [<port>]
- *
- * Creates a "hello world" log message and sends it to the server logging service.
- * If no command line arguments are given, it uses ACE.DEFAULT_SERVER_PORT, and the
- * current machine for the service location.
- *
- */
- public static void main(String args[])
- {
- if (args.length < 1) {
- System.err.println("Use: LoggerTest <host name> [<port>]");
- System.exit(0);
- }
-
- // Set the port
- int port = args.length > 1 ? (new Integer(args[1])).intValue() : ACE.DEFAULT_SERVER_PORT;
-
- SOCKStream cli_stream = new SOCKStream();
- INETAddr remote_addr;
- String host;
-
- // Try to find the host
- try {
-
- host = args[0];
-
- remote_addr = new INETAddr(port, host);
-
- } catch (UnknownHostException uhe) {
- ACE.ERROR("UnknownHostException " + uhe);
- return;
- }
-
- System.out.println("Connecting to " + host + " on port " + port);
-
- SOCKConnector con = new SOCKConnector();
-
- try {
-
- // Connect to the service
- con.connect(cli_stream, remote_addr);
-
- } catch (SocketException se) {
-
- ACE.ERROR("Socket Exception " + se);
- return;
-
- } catch (IOException ie) {
-
- ACE.ERROR("IOException " + ie);
- return;
- }
-
-
- // Send a message with priority 4, the current time,
- // and 0 for the process ID.
- LogRecord record = new LogRecord(4,
- System.currentTimeMillis(),
- 0);
-
- // Set the text of the message
- record.msgData("hello world");
-
- try {
-
- // Get a transmission system from the socket
- OutputStream os = cli_stream.socket().getOutputStream();
- DataOutputStream dos = new DataOutputStream(os);
-
- // Send it
- record.streamOutTo(dos);
-
- // Close the socket
- cli_stream.close();
-
- } catch (IOException ie) {
-
- ACE.ERROR("IOException, loop: " + ie);
- return;
- }
- }
-};
-
-
-
-
-
-
-
-
-
-
diff --git a/java/tests/netsvcs/Logger/Makefile b/java/tests/netsvcs/Logger/Makefile
deleted file mode 100644
index b61b785232a..00000000000
--- a/java/tests/netsvcs/Logger/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# $Id$
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = $(ACE_ROOT)/java
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-files = LoggerTest.java
-
-packages = netsvcs \
- netsvcs.Logger
-
-realclean:
- /bin/rm -rf ${JACE_WRAPPER}/classes/tests/netsvcs/Logger
-
diff --git a/java/tests/netsvcs/Naming/ClientTest.java b/java/tests/netsvcs/Naming/ClientTest.java
deleted file mode 100644
index c1189fecd7f..00000000000
--- a/java/tests/netsvcs/Naming/ClientTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package tests.netsvcs.Naming;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import JACE.OS.*;
-import JACE.Connection.*;
-import JACE.SOCK_SAP.*;
-import netsvcs.Naming.*;
-
-public class ClientTest
-{
- void print_usage_and_die ()
- {
- System.out.println ("Usage: ClientTest <hostname> [<port>]");
- System.exit (0);
- }
-
- public SOCKStream init (SOCKStream socket, String hostname, int port)
- {
- try
- {
- SOCKConnector sc = new SOCKConnector(socket, hostname, port);
- }
- catch (UnknownHostException e)
- {
- ACE.ERROR (e);
- System.exit(0);
- }
- catch (SocketException e)
- {
- ACE.ERROR ("Connection refused");
- System.exit(0);
- }
- catch (IOException e)
- {
- ACE.ERROR (e);
- System.exit(0);
- }
-
- return socket;
- }
-
- public static void main (String [] args)
- {
- SOCKStream socket;
- int port = ACE.DEFAULT_SERVER_PORT;
- ClientTest clientTest = new ClientTest ();
-
- if (args.length == 2)
- {
- try
- {
- port = Integer.parseInt (args[1]);
- }
- catch (NumberFormatException e)
- {
- clientTest.print_usage_and_die ();
- }
- }
- System.out.println("Trying to open port " + port + " on " + args[0]);
-
- socket = clientTest.init (new SOCKStream(), args[0], port);
-
- NameProxy proxy = new NameProxy(socket);
-
- System.out.println("---- Beginning tests ----");
-
- try {
-
- System.out.println("Binding (five, six, seven): " + proxy.bind("five", "six", "seven"));
- System.out.println("Binding (filth, rat, eats): " + proxy.bind("filth", "rat", "eats"));
-
- Vector res = proxy.resolve("five");
-
- System.out.println("Resolve (five) : " + (String)res.elementAt(1) + " "
- + (String)res.elementAt(2));
-
- System.out.println("Binding (fish, words, him): " + proxy.bind("fish", "words", "him"));
-
- System.out.println("Unbind (five, six, seven): " + proxy.unbind("five"));
-
- res = proxy.resolve("five");
-
- System.out.println("Resolve (five) : " + (String)res.elementAt(1) + " "
- + (String)res.elementAt(2));
- System.out.println("Binding (fiction, us, you): " + proxy.bind("fiction", "us", "you"));
-
- System.out.println("\nGetting all records whose names begin with fi:\n");
- Vector res2 = proxy.listNameEntries("fi");
-
- Enumeration iter = res2.elements();
-
- while (iter.hasMoreElements()) {
- Vector res3 = (Vector)(iter.nextElement());
-
- System.out.println((String)res3.elementAt(0) + "\t" + (String)res3.elementAt(1)
- + "\t" + (String)res3.elementAt(2));
- }
-
- } catch (IOException e)
- {
- ACE.ERROR("" + e);
- }
- finally
- {
- try {
- socket.close();
- } catch (IOException e) {
- ACE.ERROR("" + e);
- }
- }
-
- }
-
-};
-
diff --git a/java/tests/netsvcs/Naming/Makefile b/java/tests/netsvcs/Naming/Makefile
deleted file mode 100644
index be6e9c45848..00000000000
--- a/java/tests/netsvcs/Naming/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Makefile
-
-.SUFFIXES: .java .class
-
-JACE_WRAPPER = ../../..
-CLASSDIR = $(JACE_WRAPPER)/classes
-
-CLASSPATH := $(CLASSDIR):$(CLASSPATH)
-
-all:
- javac -d ${JACE_WRAPPER}/classes $(files)
-doc:
- javadoc -d ${JACE_WRAPPER}/doc $(files) $(packages)
-
-
-files = ClientTest.java
-
-packages = tests.netsvcs.Naming
-
-realclean:
- find ${JACE_WRAPPER}/classes/tests/netsvcs/Naming -name '*.class' -print | xargs ${RM}
diff --git a/m4/ace.m4 b/m4/ace.m4
deleted file mode 100644
index 1faae4e9749..00000000000
--- a/m4/ace.m4
+++ /dev/null
@@ -1,594 +0,0 @@
-dnl -------------------------------------------------------------------------
-dnl $Id$
-dnl
-dnl ace.m4
-dnl
-dnl ACE M4 include file which contains ACE specific M4 macros
-dnl for enabling/disabling certain ACE features.
-dnl
-dnl -------------------------------------------------------------------------
-
-dnl Copyright (C) 1998, 1999, 2000 Ossama Othman
-dnl
-dnl All Rights Reserved
-dnl
-dnl This library is free software; you can redistribute it and/or
-dnl modify it under the current ACE distribution terms.
-dnl
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-
-dnl Macros that add ACE configuration options to a `configure' script.
-dnl ACE_CONFIGURATION_OPTIONS
-AC_DEFUN(ACE_CONFIGURATION_OPTIONS, dnl
-[
- AC_ARG_ENABLE(log-msg-prop,
- [ --enable-log-msg-prop enable threads inheriting
- ACE_Log_Msg properties from parent
- thread [default=yes]],
- [
- case "${enableval}" in
- yes)
- dnl nothing to do
- ;;
- no)
- AC_DEFINE(ACE_THREADS_DONT_INHERIT_LOG_MSG)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-log-msg-prop)
- ;;
- esac
- ],)
-
- AC_ARG_ENABLE(logging,
- [ --enable-logging enable ACE logging macros [default=yes]],
- [
- case "${enableval}" in
- yes)
- dnl nothing to do
- ;;
- no)
- AC_DEFINE(ACE_NLOGGING)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-logging)
- ;;
- esac
- ],)
-
- AC_ARG_ENABLE(malloc-stats,
- [ --enable-malloc-stats enable malloc statistics
- collection [default=no]],
- [
- case "${enableval}" in
- yes)
- AC_DEFINE(ACE_HAS_MALLOC_STATS)
- ;;
- no)
- dnl nothing to do
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-malloc-stats)
- ;;
- esac
- ],)
-
- AC_ARG_ENABLE(pi-pointers,
- [ --enable-pi-pointers enable pos. indep. pointers [default=yes]],
- [
- case "${enableval}" in
- yes)
- AC_DEFINE(ACE_HAS_POSITION_INDEPENDENT_POINTERS)
- ;;
- no)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-pi-pointers)
- ;;
- esac
- ],
- [
- AC_DEFINE(ACE_HAS_POSITION_INDEPENDENT_POINTERS)
- ])
-
- AC_ARG_ENABLE(probe,
- [ --enable-probe enable ACE_Timeprobes [default=no]],
- [
- case "${enableval}" in
- yes)
- AC_DEFINE(ACE_COMPILE_TIMEPROBES)
- ;;
- no)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-probe)
- ;;
- esac
- ],)
-
- AC_ARG_ENABLE(static-obj-mgr,
- [ --enable-static-obj-mgr enable static Object_Manager [default=yes]],
- [
- case "${enableval}" in
- yes)
- dnl nothing to do
- ;;
- no)
- AC_DEFINE(ACE_HAS_NONSTATIC_OBJECT_MANAGER)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-static-obj-mgr)
- ;;
- esac
- ],)
-
-
- AC_ARG_ENABLE(threads,
- [ --enable-threads enable thread support [default=yes]],
- [
- case "${enableval}" in
- yes)
- ace_user_enable_threads=yes
- ;;
- no)
- ace_user_enable_threads=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-threads)
- ;;
- esac
- ],
- [
- ace_user_enable_threads=yes
- ])
-
- AC_ARG_ENABLE(verb-not-sup,
- [ --enable-verb-not-sup enable verbose ENOTSUP reports [default=no]],
- [
- case "${enableval}" in
- yes)
- AC_DEFINE(ACE_HAS_VERBOSE_NOTSUP)
- ;;
- no)
- dnl Do nothing
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-verb-not-sup)
- ;;
- esac
- ],)
-
- AC_ARG_ENABLE(trace,
- [ --enable-trace enable ACE tracing [default=no]],
- [
- case "${enableval}" in
- yes)
- ;;
- no)
- AC_DEFINE(ACE_NTRACE)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-trace)
- ;;
- esac
- ],
- [
- AC_DEFINE(ACE_NTRACE)
- ])
-
- AC_ARG_ENABLE(xt-reactor,
- [ --enable-xt-reactor build support for the XtReactor [default=no]],
- [
- case "${enableval}" in
- yes)
- AC_PATH_XTRA
-dnl Here, if X isn't found or the user sets "--without-x" on the command
-dnl line, then "no_x" is set to "yes."
- if test "$no_x" != yes; then
- ACE_XLIBS="-lX11 -lXt"
- ace_user_enable_xt_reactor=yes
- else
- ACE_XLIBS=""
- ace_user_enable_xt_reactor=no
- AC_MSG_WARN(X was not found or it was disabled.)
- AC_MSG_WARN(ACE_XtReactor will not be enabled.)
- fi
- ;;
- no)
- ACE_XLIBS=""
- ace_user_enable_xt_reactor=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-xt-reactor)
- ;;
- esac
- ],)
-
- AC_ARG_ENABLE(fl-reactor,
- [ --enable-fl-reactor build support for the FlReactor [default=no]],
- [
- case "${enableval}" in
- yes)
- AC_MSG_ERROR(--enable-fl-reactor currently unimplemented)
- ace_user_enable_fl_reactor=yes
- ;;
- no)
- AC_MSG_ERROR(--enable-fl-reactor currently unimplemented)
- ace_user_enable_fl_reactor=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-fl-reactor)
- ;;
- esac
- ],)
-
- AC_ARG_WITH(gperf,
- [ --with-gperf compile the gperf program [default=yes]],
- [
- case "${withval}" in
- yes)
- ace_user_with_gperf=yes
- AC_DEFINE(ACE_HAS_GPERF)
- if test -n "$GPERF"; then
- AC_MSG_WARN(gperf program already exists)
- AC_MSG_WARN(existing gperf may be overwritten during installation)
- fi
- ;;
- no)
- ace_user_with_gperf=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${withval} for --with-gperf)
- ;;
- esac
- ],
- [
- ace_user_with_gperf=yes
- AC_DEFINE(ACE_HAS_GPERF)
- if test -n "$GPERF"; then
- AC_MSG_WARN(gperf program already exists)
- AC_MSG_WARN(existing gperf may be overwritten during installation)
- fi
- ])
-AM_CONDITIONAL(COMPILE_GPERF, test X$ace_user_with_gperf = Xyes)
-
- AC_ARG_WITH(orbix,
- [ --with-orbix[=DIR] compile ACE with Orbix [default=no]],
- [
- case "${withval}" in
- yes)
- AC_MSG_WARN(Orbix configure support not implemented yet.)
- ;;
- no)
- ;;
- *)
- AC_MSG_WARN(Orbix configure support not implemented yet.)
- ;;
- esac
- ],)
-
-#AC_ARG_WITH(tao,
-# [ --with-tao build TAO (the ACE ORB) [default=yes]],
-# [
-# case "${withval}" in
-# yes)
-# ace_user_with_tao=yes
-# ;;
-# no)
-# ;;
-# *)
-# AC_MSG_ERROR(bad value ${withval} for --with-tao)
-# ;;
-# esac
-# ],
-# [
-# ace_user_with_tao=yes
-# ])
-
- AC_ARG_WITH(tli-device,
- [ --with-tli-device[=DEV] device for TCP on TLI [default=/dev/tcp]],
- [
- case "${withval}" in
- yes)
- AC_MSG_ERROR(Specify the TLI/TCP device if you use this option.)
- ;;
- no)
- ;;
- *)
- if test -e "${withval}"; then
- AC_DEFINE_UNQUOTED(ACE_TLI_TCP_DEVICE, "${withval}")
- else
- AC_MSG_ERROR(TLI/TCP device ${withval} does not exist.)
- fi
- ;;
- esac
- ],)
-
- AC_ARG_ENABLE(reentrant,
- [ --enable-reentrant enable reentrant functions [default=yes]],
- [
- case "${enableval}" in
- yes)
- ace_user_enable_reentrant_funcs=yes
- ;;
- no)
- ace_user_enable_reentrant_funcs=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-reentrant)
- ;;
- esac
- ],
- [
- ace_user_enable_reentrant_funcs=yes
- ])
-
-
-])
-
-
-dnl Macros that add ACE compilation options to a `configure' script.
-dnl ACE_COMPILATION_OPTIONS
-AC_DEFUN(ACE_COMPILATION_OPTIONS, dnl
-[
- AC_ARG_ENABLE(debug,
- [ --enable-debug enable debugging [default=yes]],
- [
- case "${enableval}" in
- yes)
- ACE_CXXFLAGS="$ACE_CXXFLAGS $DCXXFLAGS"
- ;;
- no)
- AC_DEFINE(ACE_NDEBUG)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-debug)
- ;;
- esac
- ],)
-
- AC_ARG_ENABLE(exceptions,
- [ --enable-exceptions enable C++ exception handling [default=no]],
- [
- case "${enableval}" in
- yes)
- ace_user_enable_exceptions=yes
- ;;
- no)
- ace_user_enable_exceptions=no
- if test -n "$GXX"; then
-dnl Temporarily change M4 quotes to prevent "regex []" from being eaten
-changequote(, )dnl
- if $CXX --version | egrep -v '^2\.[0-7]' > /dev/null; then
-changequote([, ])dnl
- ACE_CXXFLAGS="$ACE_CXXFLAGS -fno-exceptions"
- fi
- fi
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-exceptions)
- ;;
- esac
- ],
- [
- ace_user_enable_exceptions=no
- if test -n "$GXX"; then
-dnl Temporarily change M4 quotes to prevent "regex []" from being eaten
-changequote(, )dnl
- if $CXX --version | egrep -v '^2\.[0-7]' > /dev/null; then
-changequote([, ])dnl
- ACE_CXXFLAGS="$ACE_CXXFLAGS -fno-exceptions"
- fi
- fi
- ])
-
-
- AC_ARG_ENABLE(fast,
- [ --enable-fast enable -fast flag, e.g. Sun C++ [default=no]],
- [
- case "${enableval}" in
- yes)
- ACE_CXXFLAGS="$ACE_CXXFLAGS -fast"
- ACE_CFLAGS="$ACE_CFLAGS -fast"
- ;;
- no)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-fast)
- ;;
- esac
- ],)
-
- AC_ARG_ENABLE(inline,
- [ --enable-inline enable code inlining [default=yes]],
- [
- case "${enableval}" in
- yes)
- AC_DEFINE(__ACE_INLINE__)
- ;;
- no)
- AC_DEFINE(ACE_NO_INLINE)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-inline)
- ;;
- esac
- ],
- [
- AC_DEFINE(__ACE_INLINE__)
- ])
-
- AC_ARG_ENABLE(optimize,
- [ --enable-optimize enable additional optimizations [default=yes]],
- [
- case "${enableval}" in
- yes)
- ace_user_enable_optimize=yes
- ;;
- no)
- AC_MSG_WARN(Optimization configure support not fully implemented yet.)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-optimize)
- ;;
- esac
- ],
- [
- ace_user_enable_optimize=yes
- ])
-
-
- AC_ARG_ENABLE(profile,
- [ --enable-profile enable profiling [default=no]],
- [
- case "${enableval}" in
- yes)
- if test -z "$PROF"; then
- AC_MSG_WARN(No profiling program found. Assuming 'prof' exists)
- ACE_CXXFLAGS="$ACE_CXXFLAGS -p"
- ACE_CFLAGS="$ACE_CFLAGS -p"
- else
- case "$PROF" in
- gprof)
- echo "Building with 'gprof' support"
- ACE_CXXFLAGS="$ACE_CXXFLAGS -pg"
- ACE_CFLAGS="$ACE_CFLAGS -pg"
- ;;
- prof)
- echo "Building with 'prof' support"
- ACE_CXXFLAGS="$ACE_CXXFLAGS -p"
- ACE_CFLAGS="$ACE_CFLAGS -p"
- ;;
- *)
- dnl We shouldn't get here.
- AC_MSG_WARN(Assuming 'prof' exists)
- ACE_CXXFLAGS="$ACE_CXXFLAGS -p"
- ACE_CFLAGS="$ACE_CFLAGS -p"
- ;;
- esac
- fi
- ;;
- no)
- dnl Do nothing
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-profile)
- ;;
- esac
- ],)
-
- AC_ARG_ENABLE(purify,
- [ --enable-purify Purify all executables [default=no]],
- [
- case "${enableval}" in
- yes)
- AC_CHECK_PROG(PURIFY, purify, purify,)
- if test -n "$PURIFY"; then
- PURE_CACHE_BASE_DIR=/tmp/purifycache
- PURE_CACHE_DIR="${PURE_CACHE_BASE_DIR}-${LOGNAME}"
- PURE_CACHE_DIR="${PURE_CACHE_DIR}-"`basename $CXX`
- PURELINK="$PURIFY -best-effort -chain-length=20 -cache-dir=$PURE_CACHE_DIR -fds-inuse-at-exit=no -inuse-at-exit -max_threads=100"
- dnl Pick up Quantify directory from the users PATH.
- ACE_PURIFY_DIR=`type purify | sed -e 's/.* is //' -e 's%/purify'`
- ACE_CPPFLAGS="-DACE_HAS_PURIFY -I$ACE_PURIFY_DIR"
- else
- AC_MSG_WARN(Purify program was not found.)
- AC_MSG_WARN(Disabling purify support.)
- fi
- ;;
- no)
- PURELINK=""
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-purify)
- ;;
- esac
- ], PURELINK="")
-
- AC_ARG_ENABLE(quantify,
- [ --enable-quantify Quantify all executables [default=no]],
- [
- case "${enableval}" in
- yes)
- AC_CHECK_PROG(QUANTIFY, quantify, quantify,)
- if test -n "$QUANTIFY"; then
- PURE_CACHE_BASE_DIR=/tmp/purifycache
- PURE_CACHE_DIR="${PURE_CACHE_BASE_DIR}-${LOGNAME}"
- PURE_CACHE_DIR="${PURE_CACHE_DIR}-"`basename $CXX`
-
- PRELINK="$QUANTIFY -best-effort -max_threads=100 -cache-dir=$PURE_CACHE_DIR"
- dnl Pick up Quantify directory from the users PATH.
- ACE_QUANTIFY_DIR=`type quantify | sed -e 's/.* is //' -e 's%/quantify$$%%'`
- ACE_CPPFLAGS="-DACE_HAS_QUANTIFY -I$ACE_QUANTIFY_DIR"
- else
- AC_MSG_WARN(Quantify program was not found.)
- AC_MSG_WARN(Disabling quantify support.)
- fi
- ;;
- no)
- PRELINK=""
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-quantify)
- ;;
- esac
- ], PRELINK="")
-
- AC_ARG_ENABLE(repo,
- [ --enable-repo use GNU template repository
- GNU C++ with repo patches and
- EGCS only [default=no]],
- [
- case "${enableval}" in
- yes)
- if test -n "$GXX"; then
- ace_user_enable_repo=yes
- ACE_CXXFLAGS="$ACE_CXXFLAGS -frepo"
- AC_DEFINE(ACE_HAS_GNU_REPO)
- else
- ace_user_enable_repo=no
- AC_MSG_WARN(Not using GNU C++! GNU template respository disabled)
- fi
- ;;
- no)
- ace_user_enable_repo=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-repo)
- ;;
- esac
- ],
- [
- ace_user_enable_repo=no
- ])
-
- AC_ARG_ENABLE(rtti,
- [ --enable-rtti enable run-time type
- identification
- *Currently only for Sun C++ [default=no]],
- [
- case "${enableval}" in
- yes)
- if test -z "$GXX"; then
- case "$host" in
- *solaris*)
- ace_user_enable_rtti=yes
- ;;
- *)
- ;;
- esac
- else
- AC_MSG_WARN(Not using Sun C++. RTTI will not be enabled.)
- fi
- ;;
- no)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-rtti)
- ;;
- esac
- ],)
-
-])
diff --git a/m4/acinclude.m4 b/m4/acinclude.m4
deleted file mode 100644
index fa5a6e11faf..00000000000
--- a/m4/acinclude.m4
+++ /dev/null
@@ -1,803 +0,0 @@
-dnl -------------------------------------------------------------------------
-dnl $Id$
-dnl
-dnl ACE M4 include file which contains general M4 macros
-dnl to be used by the ACE configure script.
-dnl
-dnl The macros in this file were designed for ACE but should be
-dnl general enough for general use.
-dnl
-dnl -------------------------------------------------------------------------
-
-dnl Copyright (C) 1998, 1999, 2000 Ossama Othman
-dnl
-dnl All Rights Reserved
-dnl
-dnl This library is free software; you can redistribute it and/or
-dnl modify it under the current ACE distribution terms.
-dnl
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-
-dnl miscellaneous macros
-
-dnl Prevent the configure script continuing any further if a CVS control
-dnl directory is found. The idea is to prevent files generated during
-dnl configuration and build from be checked in to the CVS repository that
-dnl the sources are checked into. This should only be an issue for
-dnl maintainers, not end-users. Maintainers should configure and build in
-dnl a directory that doesn't contain any CVS controlled sources and files,
-dnl i.e. that doesn't contain a CVS directory.
-dnl
-dnl Usage: ACE_CHECK_FOR_CVS_DIR
-AC_DEFUN(ACE_CHECK_FOR_CVS_DIR,
-[
- if test -d CVS; then
- AC_MSG_ERROR(
- [
- This error is meant for maintainers:
-
- Please configure and build in a non-CVS controlled directory.
- Doing so will prevent accidentally committing automatically
- generated files into the CVS repository and help ensure that
- the generated files and build scheme are correct.
-
- For example, try the following from the top-level source
- directory:
-
- mkdir objdir
- cd objdir
- ../configure
- make
-
- This will create a build space in the directory \`objdir' and
- start a build in that directory.
- ])
- fi
-])
-
-
-dnl Prevent the configure script from continuing any further if
-dnl configuration is being performed in the top-level directory. The
-dnl idea is to prevent files generated during configuration and build
-dnl from overwriting the stock files of the same name.
-dnl Usage: ACE_CHECK_TOP_SRCDIR
-AC_DEFUN(ACE_CHECK_TOP_SRCDIR,
-[
- if test $srcdir = "." && test $USE_MAINTAINER_MODE != yes; then
- AC_MSG_ERROR(
- [
- Please configure and build in a directory other than the
- top-level source directory. Doing so will prevent files
- distributed with the package from being overwritten. This
- currently necessary since autoconf support is still
- experimental. If you encounter problems please use the stock
- build procedure.
-
- For example, try the following from the top-level source
- directory:
-
- mkdir objdir
- cd objdir
- ../configure
- make
-
- This will create a build space in the directory \`objdir' and
- start a build in that directory.
- ])
- fi
-])
-
-dnl Add compiler flags to the CXXFLAGS and CFLAGS variables when doing an
-dnl AC_TRY_COMPILE (not ACE_TRY_COMPILE).
-dnl Use this macro when adding include directories to the compiler flags,
-dnl for example.
-dnl Usage: ACE_TRY_COMPILE(COMPILER-FLAGS, INCLUDES, FUNCTION-BODY,
-dnl [ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]])
-AC_DEFUN(ACE_TRY_COMPILE, dnl
-[
- ifelse(AC_LANG, [CPLUSPLUS],
- [
- ace_pre_try_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS $1"
- ],
- [
- ace_pre_try_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $1"
- ])
-
- AC_TRY_COMPILE([$2],[$3],[$4],[$5])
-
- dnl Restore the C++ and C flags
- ifelse(AC_LANG, [CPLUSPLUS],
- [CXXFLAGS="$ace_pre_try_CXXFLAGS"],[CFLAGS="$ace_pre_try_CFLAGS"])
-
-])
-
-dnl Create a temporary empty file and remove it after commands are done using
-dnl it. The directory in which the temporary file will be created in must
-dnl exist. Files will be created under the source directory, not the build
-dnl directory.
-dnl Use this macro when you need a particular file available but want it to be
-dnl empty. This is useful to prevent conflicts with autoconf's confdefs.h
-dnl header when doing an AC_TRY_COMPILE.
-dnl Usage: ACE_USE_TEMP_FILE(TEMP-FILE-TO-CREATE, COMMANDS-THAT-WILL-USE-IT)
-AC_DEFUN(ACE_USE_TEMP_FILE, dnl
-[
- test -d ./$1 && AC_MSG_ERROR([cannot create file: $acetmp is a directory])
-
- test -f ${srcdir}/$1 && mv ${srcdir}/$1 ${srcdir}/$1.conf
- touch ${srcdir}/$1
-
- if test ${srcdir}/$1 != "./$1"; then
- test -f ./$1 && mv ./$1 ./$1.conf
- dnl Create all of the sub-directories (assume "mkdir -p" is not portable).
- acetmp="."
-changequote(, )dnl
- for ace_dir in `echo $1 | sed -e 's,/[^/][^/]*\$,,' -e 's,/, ,g'`; do
-changequote([, ])dnl
- acetmp="$acetmp/$ace_dir"
- test -f $acetmp && AC_MSG_ERROR([cannot create directory: $acetmp])
- test -d $acetmp || mkdir $acetmp
- done
- touch ./$1
- fi
-
- $2
-
- if test -f ${srcdir}/$1.conf; then
- mv ${srcdir}/$1.conf ${srcdir}/$1
- else
- rm ${srcdir}/$1
- fi
-
- if test ${srcdir}/$1 != "./$1"; then
- if test -f ./$1.conf; then
- mv ./$1.conf ./$1
- else
- dnl Remove the file. Any sub-directories will not be removed
- dnl since we have no way to tell if they existed prior to the
- dnl creation of this file.
- rm ./$1
- fi
- fi
-])
-
-dnl Run given test(s) with warnings converted to errors
-dnl Usage: ACE_CONVERT_WARNINGS_TO_ERRORS(TEST-BLOCK)
-AC_DEFUN(ACE_CONVERT_WARNINGS_TO_ERRORS, dnl
-[
-dnl $WERROR is set in the ACE_SET_COMPILER_FLAGS macro.
- AC_REQUIRE([ACE_SET_COMPILER_FLAGS])dnl
-
-dnl Some tests may pass because the compiler issues warnings
-dnl instead of errors when errors should occur. This macro converts
-dnl warnings to errors when executing the action/test passed to this
-dnl macro so that action/test fails when it is supposed to fail; at
-dnl least that is the idea.
-
- ace_pre_warning_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS $WERROR"
-
- $1
-
- CXXFLAGS="$ace_pre_warning_CXXFLAGS"
-])
-
-dnl Wrapper around AC_CACHE_VAL used to ensure "ACTION-IF" commands are run
-dnl even if results have been previously cached.
-dnl Usage: ACE_CACHE_CHECK(MESSAGE, CACHE-ID, COMMANDS-TO-SET-CACHE-VAL,
-dnl ACTION-IF-CACHE-ID-IS-YES,
-dnl ACTION-IF-CACHE-ID-IS-NO)
-dnl The COMMANDS-TO-SET-CACHE-VAL should set the CACHE-ID to yes or "no,"
-dnl otherwise the "ACTION-IF*" commands may not run. The
-dnl COMMANDS-TO-SET-CACHE-VAL should only set the CACHE value. For example,
-dnl no AC_DEFINES should be placed in the COMMANDS-TO-SET-CACHE-VAL.
-AC_DEFUN(ACE_CACHE_CHECK,
-[
- AC_MSG_CHECKING([$1])
- AC_CACHE_VAL([$2], [$3])
- AC_MSG_RESULT([$]$2)
- if test "[$]$2" != no; then
- ace_just_a_place_holder=fixme
-ifelse([$4], , :, [$4])
- else
- ace_just_a_place_holder=fixme
-ifelse([$5], , , [$5
-])
- fi
-])
-
-dnl checks for programs
-
-dnl checks for libraries
-
-dnl checks for header files
-
-dnl checks for typedefs
-
-dnl Check for specific typedef in given header file
-dnl Usage: ACE_CHECK_TYPE(TYPEDEF, INCLUDE,
-dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
-dnl This macro can only check for one typedef in one header file at a time!!
-AC_DEFUN(ACE_CHECK_TYPE, dnl
-[
-dnl AC_REQUIRE([AC_PROG_CXX])
-dnl AC_REQUIRE([AC_PROG_CXXCPP])
-dnl AC_REQUIRE([AC_LANG_CPLUSPLUS])
-
- ACE_CACHE_CHECK([for $1 in $2], [ace_cv_type_$1],
- [
- AC_TRY_COMPILE(
- [
-#include <$2>
- ],
- [
- $1 ace_$1;
- ],
- [
- ace_cv_type_$1=yes
- ],
- [
- ace_cv_type_$1=no
- ])
- ],[$3],[$4])
-])
-
-
-dnl checks for structures
-
-dnl Check for specific struct in given header file
-dnl Usage: ACE_CHECK_STRUCT(STRUCTURE, INCLUDE,
-dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
-dnl This macro can only check for one struct in one header file at a time!!
-AC_DEFUN(ACE_CHECK_STRUCT, dnl
-[
-dnl AC_REQUIRE([AC_PROG_CXX])
-dnl AC_REQUIRE([AC_PROG_CXXCPP])
-dnl AC_REQUIRE([AC_LANG_CPLUSPLUS])
-
-dnl Do the transliteration at runtime so arg 1 can be a shell variable.
-dnl ac_safe=`echo "$1" | sed 'y%./+-%__p_%'`
-
- ACE_CACHE_CHECK([for struct $1 in $2], [ace_cv_struct_$1],
- [
- ACE_TRY_COMPILE_STRUCT([$1], [$2],
- [
- ace_cv_struct_$1=yes
- ],
- [
- ace_cv_struct_$1=no
- ])
- ], $3, $4)
-])
-
-dnl Check for specific struct in given header file by compiling a test
-dnl program. This macro is used by ACE_CHECK_STRUCT.
-dnl Usage: ACE_TRY_COMPILE_STRUCT(STRUCTURE, INCLUDE,
-dnl [ACTION-IF-SUCCESSFUL[, ACTION-IF-NOT-SUCCESSFUL]])
-dnl This macro can only check for one struct in one header file at a time!!
-AC_DEFUN(ACE_TRY_COMPILE_STRUCT, dnl
-[
-dnl AC_REQUIRE([AC_PROG_CXX])
-dnl AC_REQUIRE([AC_PROG_CXXCPP])
-dnl AC_REQUIRE([AC_LANG_CPLUSPLUS])
-
- AC_TRY_COMPILE(
- [
-#include <$2>
- ],
- [
- struct $1 ace_$1;
- ],
- [
- $3
- ],
- [
-dnl Some compilers don't like the "struct" but we need the struct for
-dnl some platforms to resolve ambiguities between functions and
-dnl structures with with the same name. So, we try the same test but
-dnl without "struct" if the above test with "struct" fails. If both
-dnl tests fail, then we can be reasonably sure that we don't have the
-dnl structure we are testing for.
- AC_TRY_COMPILE(
- [
-#include <$2>
- ],
- [
- $1 ace_$1;
- ],
- [
- $3
- ],
- [
- $4
- ])
- ])
-])
-
-dnl checks for variables
-
-dnl checks for compiler characteristics
-
-dnl checks for library functions
-
-dnl Check for function using prototype in header
-dnl This macro is used if a function is called a different name in a given
-dnl library than what is in the header file but the difference is made
-dnl transparent to the user since the header may provide a macro to make
-dnl things "transparent." If the given header does not exist then this
-dnl macro acts just like the standard AC_CHECK_FUNC macro.
-dnl Usage: ACE_CHECK_FUNC(FUNCTION, HEADER,
-dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
-AC_DEFUN(ACE_CHECK_FUNC, dnl
-[
-dnl AC_REQUIRE([AC_PROG_CXX])
-dnl AC_REQUIRE([AC_PROG_CXXCPP])
-dnl AC_REQUIRE([AC_LANG_CPLUSPLUS])
- AC_REQUIRE([AC_PROG_AWK])
-
- AC_TRY_CPP(
- [
-#include <$2>
- ],
- [ace_header_exists=yes],
- [ace_header_exists=no])
-
- cat > conftest.$ac_ext <<EOF
-
-#include <$2>
- ACE_REAL_FUNCTION $1
-
-EOF
-
- if test "$ace_header_exists" = yes; then
- if test -z "$AWK"; then
- AC_MSG_WARN([No awk program found. "Real" function may not be found.])
- fi
-
- if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ACE_REAL_FUNCTION" |
- (eval "$AWK '{print \[$]2}' > conftest.awk 2>&1"); then
- rm -f conftest.$ac_ext
- ace_real_function=`cat conftest.awk`
- rm -f conftest.awk
- fi
-
- if test $1 != "$ace_real_function"; then
- AC_MSG_CHECKING([for real $1 from $2])
- AC_MSG_RESULT([$ace_real_function])
- fi
- else
- ace_real_function=$1
- fi dnl test "$ace_header_not_exist" != yes
-
- AC_CHECK_FUNC([$ace_real_function],[$3],[$4])
-])
-
-dnl Check for function in library using prototype in header
-dnl This macro is used if a function is called a different name in a given
-dnl library than what is in the header file but the difference is made
-dnl transparent to the user since the header may provide a macro to make
-dnl things "transparent." If the given header does not exist then this
-dnl macro acts just like the standard AC_CHECK_LIB macro.
-dnl Usage: ACE_CHECK_LIB(LIBRARY, FUNCTION, HEADER,
-dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
-AC_DEFUN(ACE_CHECK_LIB, dnl
-[
-dnl AC_REQUIRE([AC_PROG_CXX])
-dnl AC_REQUIRE([AC_PROG_CXXCPP])
-dnl AC_REQUIRE([AC_LANG_CPLUSPLUS])
- AC_REQUIRE([AC_PROG_AWK])
-
- AC_TRY_CPP(
- [
-#include <$3>
- ], ace_header_exists=yes, ace_header_exists=no)
-
- cat > conftest.$ac_ext <<EOF
-
-#include <$3>
- ACE_REAL_FUNCTION $2
-
-EOF
-
- if test "$ace_header_exists" = yes; then
- if test -z "$AWK"; then
- AC_MSG_WARN(No awk program found. "Real" function in library may not be found.)
- fi
-
- if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ACE_REAL_FUNCTION" |
- eval "$AWK '{print \[$]2}'" > conftest.awk 2>&1; then
- rm -f conftest.$ac_ext
- ace_real_function=`cat conftest.awk`
- rm -f conftest.awk
- fi
-
- if test $2 != "$ace_real_function"; then
- AC_MSG_CHECKING(for real $2 from $3)
- AC_MSG_RESULT($ace_real_function)
- fi
- else
- ace_real_function=$2
- fi dnl test "$ace_header_not_exist" != yes
-
- AC_CHECK_LIB($1, $ace_real_function, $4, $5)
-])
-
-
-dnl Check if getrlimit() takes an enum as 1st argument
-dnl Usage: ACE_CHECK_SETRLIMIT_ENUM
-AC_DEFUN(ACE_CHECK_SETRLIMIT_ENUM, dnl
-[
-if test "$ac_cv_func_setrlimit" = yes; then
- AC_MSG_CHECKING([if setrlimit() takes an enum as 1st argument])
- AC_EGREP_HEADER([setrlimit.*\(.*[^,]*enum], sys/resource.h,
- [
- cat > conftest.$ac_ext <<EOF
-#include "confdefs.h"
-#include <sys/resource.h>
-EOF
-
-changequote(, )dnl
-dnl Here we attempt to determine the type of the first argument of
-dnl getrusage from its prototype. It should either be an int or an
-dnl enum. If it is an enum, determine the enum type.
- ace_setrlimit_enum=`eval "$ac_cpp conftest.$ac_ext" | \
- egrep '[ ]+setrlimit.*\(.*[^,]*enum' | \
- sed -e 's/^.*setrlimit.*(.*enum//' -e 's/[^ ]*,.*$//'`
-changequote([, ])dnl
-
- ace_setrlimit_enum="enum $ace_setrlimit_enum"
-
- AC_MSG_RESULT([$ace_setrlimit_enum])
-
-if test -n "$ace_setrlimit_enum"; then
- AC_DEFINE_UNQUOTED([ACE_HAS_RLIMIT_RESOURCE_ENUM], [$ace_setrlimit_enum])
-fi
-
- rm -rf conftest*
-
-dnl Do not remove this parenthesis --> )
-dnl It's only purpose to keep Emacs from getting confused about mismatched
-dnl parentheses.
- ],
- [
- AC_MSG_RESULT([no])
- ])
-
-fi dnl test "$ac_cv_func_setrlimit" = yes
-])
-
-dnl Check if getrusage() takes an enum as 1st argument
-dnl Usage: ACE_CHECK_GETRUSAGE_ENUM
-AC_DEFUN(ACE_CHECK_GETRUSAGE_ENUM, dnl
-[
-if test "$ac_cv_func_getrusage" = yes; then
- AC_MSG_CHECKING([if getrusage() takes an enum as 1st argument])
- AC_EGREP_HEADER([getrusage.*\(.*[^,]*enum], sys/resource.h,
- [
- cat > conftest.$ac_ext <<EOF
-#include "confdefs.h"
-#include <sys/resource.h>
-EOF
-
-changequote(, )dnl
-dnl Here we attempt to determine the type of the first argument of
-dnl getrusage from its prototype. It should either be an int or an
-dnl enum. If it is an enum, determine the enum type.
- ace_rusage_who=`eval "$ac_cpp conftest.$ac_ext" | \
- egrep '[ ]+getrusage.*\(.*[^,]*enum' | \
- sed -e 's/^.*getrusage.*(.*enum//' -e 's/[^ ]*,.*$//'`
-changequote([, ])dnl
-
- ace_rusage_who="enum $ace_rusage_who"
-
- AC_MSG_RESULT([$ace_rusage_who])
-
-if test -n "$ace_rusage_who"; then
- AC_DEFINE_UNQUOTED([ACE_HAS_RUSAGE_WHO_ENUM], [$ace_rusage_who])
-fi
-
- rm -rf conftest*
-
-dnl Do not remove this parenthesis --> )
-dnl It's only purpose to keep Emacs from getting confused about mismatched
-dnl parentheses.
- ],
- [
- AC_MSG_RESULT([no])
- ])
-
-fi dnl test "$ac_cv_func_getrusage" = yes
-])
-
-
-dnl Check for 64 bit llseek() or lseek64()
-dnl Usage: ACE_CHECK_LSEEK64
-AC_DEFUN([ACE_CHECK_LSEEK64],
-[
- AC_CHECK_FUNC([lseek64],
- [
- AC_DEFINE([ACE_HAS_LSEEK64])
-
- dnl Check for 64 bit offset type in the lseek64() prototype, if it
- dnl exists.
- dnl ACE_CHECK_OFF64_T([lseek64])
-
- dnl Check if _LARGEFILE64_SOURCE macro is needed to make the
- dnl lseek64() prototype visible, or if the prototype itself is missing.
- ACE_CACHE_CHECK([for lseek64 prototype],
- [ace_cv_lib_has_lseek64_prototype],
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_largefile64="-U_LARGEFILE64_SOURCE"
- CPPFLAGS="$CPPFLAGS $ace_no_largefile64"
- AC_EGREP_HEADER([[^_]+lseek64], unistd.h,
- [
- ace_cv_lib_has_lseek64_prototype=yes
- ],
- [
- ace_cv_lib_has_lseek64_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_LSEEK64_PROTOTYPE))
- ],
- [
- AC_CHECK_FUNC([llseek],
- [
- AC_DEFINE([ACE_HAS_LLSEEK])
- dnl Check if _LARGEFILE64_SOURCE macro is needed to make the
- dnl llseek() prototype visible, or if the prototype itself is
- dnl missing.
-
- dnl Check for 64 bit offset type in the llseek() prototype, if
- dnl it exists.
- dnl ACE_CHECK_OFF64_T([llseek])
-
- ACE_CACHE_CHECK([for llseek prototype],
- [ace_cv_lib_has_llseek_prototype],
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_largefile64="-U_LARGEFILE64_SOURCE"
- CPPFLAGS="$CPPFLAGS $ace_no_largefile64"
- AC_EGREP_HEADER([[^_]+llseek], unistd.h,
- [
- ace_cv_lib_has_llseek_prototype=no
- ],
- [
- ace_cv_lib_has_llseek_prototype=yes
- ],)
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_LLSEEK_PROTOTYPE))
-
-
- ],)
- ])
-])
-
-dnl Check what the 64 bit offset type is by checking what the offset
-dnl argument for llseek()/lseek64() is.
-dnl Usage: ACE_CHECK_LOFF_64(LSEEK64-FUNC)
-AC_DEFUN([ACE_CHECK_OFF64_T],
-[
- AC_MSG_CHECKING([for 64 bit offset type])
- AC_EGREP_HEADER([[ ]+$1.*\(.*], unistd.h,
- [
- cat > conftest.$ac_ext <<EOF
-#include "confdefs.h"
-
-/* Make sure 64 bit file feature test macro is defined. */
-#ifndef _LARGEFILE64_SOURCE
-# define _LARGEFILE64_SOURCE
-#endif
-
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h> /* needed for lseek64()/llseek() prototype */
-#endif
-EOF
-
-changequote(, )dnl
-dnl Here we attempt to determine the type of the second argument of
-dnl lseek64()/llseek() from its prototype.
- ace_off64_t=`eval "$ac_cpp conftest.$ac_ext" | \
- egrep '[ ]+lseek64.*\(.*' | \
- sed -e 's/^.*(.*,[ ]*\(.*\) .*,.*$/\1/'`
-changequote([, ])dnl
-
-
-if test -n "$ace_off64_t"; then
- AC_MSG_RESULT([$ace_off64_t])
- AC_DEFINE_UNQUOTED([ACE_LOFF_T_TYPEDEF], [$ace_off64_t])
-fi
-
- rm -rf conftest*
-
-dnl Do not remove this parenthesis --> )
-dnl It's only purpose is to keep Emacs from getting confused about
-dnl mismatched parentheses.
- ],
- [
- AC_MSG_RESULT([no])
- ])
-])
-
-dnl checks for structures
-
-dnl checks for system services
-
-
-dnl *********************** SPECIAL SECTION *******************************
-dnl
-dnl This section contains my own *re*implementation of the functionality
-dnl provided by some tests/macros found in GNU Autoconf since the ones found
-dnl in Autoconf don't appear to work as expected.
-dnl
-dnl -Ossama Othman <ossama@debian.org>
-dnl
-dnl The copyright for the following macros is listed below.
-dnl Note that all macros listed prior to this section are copyrighted
-dnl by Ossama Othman, not the Free Software Foundation. Nevertheless,
-dnl all software found in this file is free software. Please read the
-dnl distribution terms found at the top of this file and the ones below.
-
-dnl Parameterized macros.
-dnl Requires GNU m4.
-dnl This file is part of Autoconf.
-dnl Copyright (C) 1992, 93, 94, 95, 96, 1998 Free Software Foundation, Inc.
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2, or (at your option)
-dnl any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-dnl 02111-1307, USA.
-dnl
-dnl As a special exception, the Free Software Foundation gives unlimited
-dnl permission to copy, distribute and modify the configure scripts that
-dnl are the output of Autoconf. You need not follow the terms of the GNU
-dnl General Public License when using or distributing such scripts, even
-dnl though portions of the text of Autoconf appear in them. The GNU
-dnl General Public License (GPL) does govern all other use of the material
-dnl that constitutes the Autoconf program.
-dnl
-dnl Certain portions of the Autoconf source text are designed to be copied
-dnl (in certain cases, depending on the input) into the output of
-dnl Autoconf. We call these the "data" portions. The rest of the Autoconf
-dnl source text consists of comments plus executable code that decides which
-dnl of the data portions to output in any given case. We call these
-dnl comments and executable code the "non-data" portions. Autoconf never
-dnl copies any of the non-data portions into its output.
-dnl
-dnl This special exception to the GPL applies to versions of Autoconf
-dnl released by the Free Software Foundation. When you make and
-dnl distribute a modified version of Autoconf, you may extend this special
-dnl exception to the GPL to apply to your modified version as well, *unless*
-dnl your modified version has the potential to copy into its output some
-dnl of the text that was the non-data portion of the version that you started
-dnl with. (In other words, unless your change moves or copies text from
-dnl the non-data portions to the data portions.) If your modification has
-dnl such potential, you must delete any notice of this special exception
-dnl to the GPL from your modified version.
-dnl
-dnl Written by David MacKenzie, with help from
-dnl Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,
-dnl Roland McGrath, Noah Friedman, david d zuhn, and many others.
-
-
-dnl Usage: ACE_SEARCH_LIBS(FUNCTION, SEARCH-LIBS [, ACTION-IF-FOUND
-dnl [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
-dnl Search for a library defining FUNCTION, if it's not already available.
-AC_DEFUN(ACE_SEARCH_LIBS, dnl
-[
- AC_CACHE_CHECK([for library containing $1], [ac_cv_search_$1],
- [
- ac_func_search_save_LIBS="$LIBS"
-
- ac_cv_search_$1="no"
-
- ACE_TRY_LINK_FUNC([$1], [ac_cv_search_$1="none required"])
-
- test "$ac_cv_search_$1" = "no" && for i in $2; do
- LIBS="-l$i $5 $ac_func_search_save_LIBS"
- ACE_TRY_LINK_FUNC([$1],
- [
- ac_cv_search_$1="-l$i"
- break
- ])
- done
-
- LIBS="$ac_func_search_save_LIBS"
- ])
-
- if test "$ac_cv_search_$1" != "no"; then
- test "$ac_cv_search_$1" = "none required" || LIBS="$ac_cv_search_$1 $LIBS"
- $3
- else :
- $4
- fi
-])
-
-dnl Usage: ACE_TRY_LINK_FUNC(FUNCTION,[, ACTION-IF-FOUND
-dnl [, ACTION-IF-NOT-FOUND])
-dnl Search for a library defining FUNCTION, if it's not already available.
-AC_DEFUN(ACE_TRY_LINK_FUNC, dnl
-[
-AC_TRY_LINK(
-dnl Don't include <ctype.h> because on OSF/1 3.0 it includes <sys/types.h>
-dnl which includes <sys/select.h> which contains a prototype for
-dnl select. Similarly for bzero.
-[/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $1(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
-extern "C"
-#endif
-])dnl
-[/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $1();
-], [
-/* 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_$1) || defined (__stub___$1)
-choke me
-#else
-$1();
-#endif
-],[$2],[$3])
-])
-
-AC_DEFUN(ACE_SYS_RESTARTABLE_SYSCALLS,
-[AC_REQUIRE([AC_HEADER_SYS_WAIT])
-AC_CHECK_HEADERS(unistd.h)
-AC_CACHE_CHECK(for restartable system calls, ac_cv_sys_restartable_syscalls,
-[AC_TRY_RUN(
-[/* Exit 0 (true) if wait returns something other than -1,
- i.e. the pid of the child, which means that wait was restarted
- after getting the signal. */
-#include <sys/types.h>
-#include <signal.h>
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#if HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#endif
-
-/* Some platforms explicitly require an extern "C" signal handler
- when using C++. */
-#ifdef __cplusplus
-extern "C"
-#endif
-void ucatch (int) { }
-
-main () {
- int i = fork (), status;
- if (i == 0) { sleep (3); kill (getppid (), SIGINT); sleep (3); exit (0); }
- signal (SIGINT, ucatch);
- status = wait(&i);
- if (status == -1) wait(&i);
- exit (status == -1);
-}
-], ac_cv_sys_restartable_syscalls=yes, ac_cv_sys_restartable_syscalls=no)])
-if test $ac_cv_sys_restartable_syscalls = yes; then
- AC_DEFINE(HAVE_RESTARTABLE_SYSCALLS)
-fi
-])
-
diff --git a/m4/compiler.m4 b/m4/compiler.m4
deleted file mode 100644
index 328a3b81222..00000000000
--- a/m4/compiler.m4
+++ /dev/null
@@ -1,319 +0,0 @@
-dnl -------------------------------------------------------------------------
-dnl $Id$
-dnl
-dnl compiler.m4
-dnl
-dnl ACE M4 include file which contains ACE specific M4 macros
-dnl that set/determine compiler configurations for ACE.
-dnl
-dnl -------------------------------------------------------------------------
-
-dnl Copyright (C) 1998, 1999 Ossama Othman
-dnl
-dnl All Rights Reserved
-dnl
-dnl This library is free software; you can redistribute it and/or
-dnl modify it under the current ACE distribution terms.
-dnl
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-
-dnl Macros to set flags for a given compiler on a given platform.
-dnl The flags set here are generally only useful for _KNOWN_ compilers.
-
-dnl ACE_SET_COMPILER_FLAGS
-dnl Usage: ACE_SET_COMPILER_FLAGS
-AC_DEFUN(ACE_SET_COMPILER_FLAGS, dnl
-[
- AC_BEFORE([$0], [AM_PROG_LIBTOOL]) dnl
-
- dnl Make sure we know what C++ compiler and preprocessor we have!
- AC_REQUIRE([AC_PROG_CXX])
- AC_REQUIRE([AC_PROG_CXXCPP])
- AC_REQUIRE([AC_LANG_CPLUSPLUS])
-
- AC_REQUIRE([ACE_COMPILATION_OPTIONS])
-
- if test -n "$GXX"; then
-dnl Temporarily change M4 quotes to prevent "regex []" from being eaten
-changequote(, )dnl
- if $CXX --version | egrep -v '^2\.[0-7]' > /dev/null; then
-changequote([, ])dnl
- : # Do nothing
- else
- AC_DEFINE(ACE_HAS_GNUG_PRE_2_8)dnl
- AC_DEFINE(ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS)dnl
- fi
-
- case `$CXX --version` in
- 2.9* | 3*)
- if test "$ace_user_enable_exceptions" != yes; then
- ACE_CXXFLAGS="$ACE_CXXFLAGS -fcheck-new"
- fi
- ;;
- esac
- fi
-
- dnl Compiler Flag Key
- dnl CXXFLAGS - C++ flags to use during the configure script run and
- dnl during ACE compilation. The user may set this prior to
- dnl running the configure script. As such, it is important
- dnl not to replace the existing value of CXXFLAGS; rather
- dnl one should only add to it.
- dnl ACE_CXXFLAGS
- dnl - General C++ flags the configure script should set before
- dnl CXXFLAGS to allow the user override them.
- dnl DCXXFLAGS - C++ debugging flags
- dnl OCXXFLAGS - C++ optimization flags
- dnl CPPFLAGS - C++ preprocessor flags
- dnl ACE_CPPFLAGS
- dnl - General C++ preprocessor flags the configure
- dnl script should set before CPPFLAGS to allow the
- dnl user override them.
- dnl WERROR - Compiler flag that converts warnings to errors
-
- if test -n "$GXX"; then
- WERROR="-Werror"
- fi
-
- case "$host" in
- *aix*)
- dnl In case anything here or in the config depends on OS
- dnl version number, grab it here and pass it all to the
- dnl compiler as well.
- AIX_MAJOR_VERS=`uname -v`
- AIX_MINOR_VERS=`uname -r`
-
- ACE_CPPFLAGS="$ACE_CPPFLAGS -DACE_AIX_MAJOR_VERS=$AIX_MAJOR_VERS"
- ACE_CPPFLAGS="$ACE_CPPFLAGS -DACE_AIX_MINOR_VERS=$AIX_MINOR_VERS"
-
- case "$CXX" in
- xlC*)
- dnl IBM C/C++ compiler 3.6.x produces a bazillion warnings about
- dnl 0-valued preprocessor defs. Since both 3.1 and 3.4 could
- dnl be installed, don't ask lslpp for one or the
- dnl other. Instead, compile a file and see which compiler the
- dnl user has set up for use. This trick was submitted by
- dnl Craig Rodrigues <rodrigc@mediaone.net>, originally from
- dnl the vacpp compiler newsgroup. It relies on the
- dnl preprocessor defining __xlC__ to the proper version
- dnl number of the compiler.
-
- AC_EGREP_CPP(0x0306,
- [
- __xlC__
- ],
- [
- CXXFLAGS="$CXXFLAGS -qflag=e:e"
- ],
- [
- CXXFLAGS="$CXXFLAGS -qflag=w:w"
- ])
- ;;
- esac
- ;;
- esac
-
- case "$host" in
- *aix4.2* | *aix4.3*)
- case "$CXX" in
- xlC*)
- CXXFLAGS="$CXXFLAGS"
- ACE_CXXFLAGS="$ACE_CXXFLAGS "
- DCXXFLAGS="-g -qcheck=nobounds:div:null"
- OCXXFLAGS="-qarch=com"
- CPPFLAGS="$CPPFLAGS -qlanglvl=ansi"
- ;;
- *)
- if test -n "$GXX"; then
- ACE_CXXFLAGS="-mcpu=common"
- fi
- ;;
- esac
- ;;
- *aix4.1*)
- case "$CXX" in
- xlC*)
- CXXFLAGS="$CXXFLAGS"
- ACE_CXXFLAGS="$ACE_CXXFLAGS -qxcall -qtempinc"
- DCXXFLAGS="-g"
- OCXXFLAGS="-qarch=ppc -qtune=604"
- ;;
- *)
- if test -n "$GXX"; then
- ACE_CXXFLAGS="-mcpu=common"
- fi
- ;;
- esac
- ;;
- *chorus*)
- ;;
- *cray*)
- ;;
- *dgux*)
- case "$CXX" in
- ec++)
- CXXFLAGS="$CXXFLAGS"
- ACE_CXXFLAGS="$ACE_CXXFLAGS -relax -v -eh"
- DCXXFLAGS="-g"
- OCXXFLAGS=""
- ;;
- *)
- if test -n "$GXX"; then
- ACE_CXXFLAGS="$ACE_CXXFLAGS"
- fi
- ;;
- esac
- ;;
- *freebsd*)
- case "$CXX" in
- *)
- if test -n "$GXX"; then
- CXXFLAGS="$CXXFLAGS"
- ACE_CXXFLAGS="$ACE_CXXFLAGS -w -fno-strict-prototypes"
- DCXXFLAGS=""
- OCXXFLAGS=""
- fi
- ;;
- esac
- ;;
- *hpux*)
- case "$CXX" in
- CC)
- CXXFLAGS="$CXXFLAGS -pta -ti,/bin/true -tr,/bin/true"
- ACE_CXXFLAGS="$ACE_CXXFLAGS -Aa -z +a1"
- DCXXFLAGS="-g"
- OCXXFLAGS=""
- ;;
- aCC)
- CXXFLAGS="$CXXFLAGS"
- ACE_CXXFLAGS="$ACE_CXXFLAGS +W302,495,667,829"
- DCXXFLAGS="-g"
- OCXXFLAGS=""
- WERROR="+We67"
- # Warning 67: Invalid pragma name -- needed for ACE_LACKS_PRAGMA_ONCE
- ;;
- *)
- if test -n "$GXX"; then
- ACE_CXXFLAGS="$ACE_CXXFLAGS -w"
- fi
- ;;
- esac
- ;;
- *irix5*)
- case "$CXX" in
- CC)
- CXXFLAGS="$CXXFLAGS -ptused -prelink +pp -woff 3203,3209,3161,3262,3665"
- ACE_CXXFLAGS="$ACE_CXXFLAGS "
- DCXXFLAGS="-g"
- OCXXFLAGS=""
- ;;
- *)
- ;;
- esac
- ;;
- *irix6*)
- case "$CXX" in
- CC)
- CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE"
- CXXFLAGS="$CXXFLAGS -exceptions -ptnone -no_prelink -Wl,-woff,15 -Wl,-woff,84 -Wl,-woff,85 -Wl,-woff,133"
- ACE_CXXFLAGS="$ACE_CXXFLAGS "
- DCXXFLAGS="-g"
- OCXXFLAGS="-O -OPT:Olimit=0"
- ;;
- esac
- ;;
- *linux*)
- case "$CXX" in
- *)
- if test -n "$GXX"; then
- CXXFLAGS="$CXXFLAGS"
- ACE_CXXFLAGS="$ACE_CXXFLAGS"
- DCXXFLAGS="$DCXXFLAGS"
- OCXXFLAGS="-O3"
- fi
- ;;
- esac
- ;;
- *lynxos*)
- ;;
- *m88k*)
- ;;
- *mvs*)
- ;;
- *netbsd*)
- ;;
- *osf*)
- ;;
- *psos*)
- ;;
- *sco*)
- ;;
- *sunos4*)
- ;;
- *solaris2*)
- case "$CXX" in
- CC)
- WERROR="-xwe"
-
- if test "$ace_user_enable_exceptions" != yes; then
- CXXFLAGS="$CXXFLAGS -noex"
- fi
-
- dnl Some flags only work with Sun C++ 4.2
- if (CC -V 2>&1 | egrep 'Compilers 4\.2' > /dev/null); then
- CXXFLAGS="$CXXFLAGS -features=castop"
- if test "$ace_user_enable_rtti" = yes; then
- CXXFLAGS="$CXXFLAGS -features=rtti"
- fi
- fi
-
- dnl Sun C++ 5.0 weirdness
- if (CC -V 2>&1 | egrep 'Compilers 5\.0' > /dev/null); then
- CXXFLAGS="$CXXFLAGS -library=iostream,no%Cstd -instances=explicit"
-
- dnl Inlining appears to cause link problems with early
- dnl releases of CC 5.0.
- AC_DEFINE(ACE_LACKS_INLINE_FUNCTIONS)
-
- if test "$ace_user_enable_exceptions" != yes; then
- dnl See /opt/SUNWspro_5.0/SC5.0/include/CC/stdcomp.h.
- AC_DEFINE(_RWSTD_NO_EXCEPTIONS)
- fi
- fi
-
- CXXFLAGS="$CXXFLAGS"
- ACE_CXXFLAGS="$ACE_CXXFLAGS"
- DCXXFLAGS="$DCXXFLAGS -g"
- OCXXFLAGS="$OCXXFLAGS -O"
- ;;
- esac
- ;;
- *tandem*)
- ;;
- *unixware*)
- ;;
- *vxworks*)
- ;;
- *)
- CXXFLAGS="$CXXFLAGS"
- ACE_CXXFLAGS="$ACE_CXXFLAGS"
- DCXXFLAGS="-g"
- OCXXFLAGS="-O"
- ;;
- esac
-
- dnl Additional flags
- if test -n "$GXX"; then
- ACE_CXXFLAGS="$ACE_CXXFLAGS -W -Wall -Wpointer-arith"
- if test "$ace_user_enable_repo" = no; then
- ACE_CXXFLAGS="$ACE_CXXFLAGS -fno-implicit-templates"
- fi
- fi
-
- if test -n "$GCC"; then
- ACE_CFLAGS="$ACE_CFLAGS -W -Wall -Wpointer-arith"
- fi
-])
diff --git a/m4/features.m4 b/m4/features.m4
deleted file mode 100644
index 2817698a83f..00000000000
--- a/m4/features.m4
+++ /dev/null
@@ -1,626 +0,0 @@
-dnl -------------------------------------------------------------------------
-dnl $Id$
-dnl
-dnl features.m4
-dnl
-dnl ACE M4 include file which contains ACE specific M4 macros
-dnl that determine availablility of certain OS features for ACE.
-dnl
-dnl -------------------------------------------------------------------------
-
-dnl Copyright (C) 1998, 1999 Ossama Othman
-dnl
-dnl All Rights Reserved
-dnl
-dnl This library is free software; you can redistribute it and/or
-dnl modify it under the current ACE distribution terms.
-dnl
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-dnl Asynchronous IO check
-dnl Use this macro to determine if asynchronous IO is working on a
-dnl given platform.
-dnl Usage: ACE_CHECK_ASYNCH_IO
-AC_DEFUN(ACE_CHECK_ASYNCH_IO, dnl
-[
- AC_REQUIRE([AC_PROG_CXX])
- AC_REQUIRE([AC_PROG_CXXCPP])
- AC_REQUIRE([AC_LANG_CPLUSPLUS])
- AC_REQUIRE([ACE_CHECK_THREADS])
-
- dnl In case a library with the asynchronous libraries is found but
- dnl the asynchronous IO support is not functional then save a copy
- dnl of the list of libraries before the asynch IO function library
- dnl is added to the list so that we can revert the list to its
- dnl pre-asynch-IO check state.
- ace_save_LIBS="$LIBS"
-
- dnl Asynchronous IO library check
- dnl Some platforms, such as Solaris puts aio_read in -lposix4, for example.
- dnl In some cases, the thread library must be linked to in addition to the
- dnl real-time support library. As such, make sure these checks are done
- dnl after the thread library checks.
- ACE_SEARCH_LIBS([aio_read], [aio rt posix4],
- [ace_has_aio_funcs=yes], [ace_has_aio_funcs=no])
-
-if test "$ace_has_aio_funcs" = yes; then
- ACE_CACHE_CHECK([for working asynchronous IO],
- [ace_cv_feature_aio_calls],
- [
- AC_TRY_RUN(
- [
-#ifndef ACE_LACKS_UNISTD_H
-#include <unistd.h>
-#endif
-#include <fcntl.h>
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/stat.h>
-#include <signal.h>
-#include <string.h>
-#include <errno.h>
-#include <stdio.h>
-#include <iostream.h>
-
-#include <aio.h>
-
-class Test_Aio
-{
-public:
- Test_Aio (void);
- // Default constructor.
-
- int init (void);
- // Initting the output file and the buffer.
-
- int do_aio (void);
- // Doing the testing stuff.
-
- ~Test_Aio (void);
- // Destructor.
-private:
- int out_fd_;
- // Output file descriptor.
-
- struct aiocb *aiocb_write_;
- // For writing to the file.
-
- struct aiocb *aiocb_read_;
- // Reading stuff from the file.
-
- char *buffer_write_;
- // The buffer to be written to the out_fd.
-
- char *buffer_read_;
- // The buffer to be read back from the file.
-};
-
-Test_Aio::Test_Aio (void)
- : out_fd_ (0),
- aiocb_write_ (new struct aiocb),
- aiocb_read_ (new struct aiocb),
- buffer_write_ (0),
- buffer_read_ (0)
-{
-}
-
-Test_Aio::~Test_Aio (void)
-{
- if (close (this->out_fd_) != 0)
- perror ("close");
-
- delete aiocb_write_;
- delete aiocb_read_;
- delete [] buffer_write_;
- delete [] buffer_read_;
-}
-
-// Init the output file and init the buffer.
-int
-Test_Aio::init (void)
-{
- // Open the output file.
- this->out_fd_ = open ("test_aio.log", O_RDWR | O_CREAT | O_TRUNC, 0600);
- if (this->out_fd_ == -1)
- {
- perror ("open");
- return -1;
- }
-
- unlink ("test_aio.log"); // Unlink now so we don't have to do so later.
-
- const char message[] = "Welcome to the world of AIO... AIO Rules !!!";
-
- // Init the buffers.
- this->buffer_write_ = new char [sizeof (message) + 1];
- strcpy (this->buffer_write_, message);
- // cout << "The buffer : " << this->buffer_write_ << endl;
- this->buffer_read_ = new char [sizeof (message) + 1];
-
- return 0;
-}
-
-// Set the necessary things for the AIO stuff.
-// Write the buffer asynchly.hmm Disable signals.
-// Go on aio_suspend. Wait for completion.
-// Print out the result.
-int
-Test_Aio::do_aio (void)
-{
- // = Write to the file.
-
- // Setup AIOCB.
- this->aiocb_write_->aio_fildes = this->out_fd_;
- this->aiocb_write_->aio_offset = 0;
- this->aiocb_write_->aio_buf = this->buffer_write_;
- this->aiocb_write_->aio_nbytes = strlen (this->buffer_write_);
- this->aiocb_write_->aio_reqprio = 0;
- this->aiocb_write_->aio_sigevent.sigev_notify = SIGEV_NONE;
- //this->this->aiocb_.aio_sigevent.sigev_signo = SIGRTMAX;
- this->aiocb_write_->aio_sigevent.sigev_value.sival_ptr =
- (void *) this->aiocb_write_;
-
- // Fire off the aio write.
- if (aio_write (this->aiocb_write_) != 0)
- {
- perror ("aio_write");
- return -1;
- }
-
- // = Read from that file.
-
- // Setup AIOCB.
- this->aiocb_read_->aio_fildes = this->out_fd_;
- this->aiocb_read_->aio_offset = 0;
- this->aiocb_read_->aio_buf = this->buffer_read_;
- this->aiocb_read_->aio_nbytes = strlen (this->buffer_write_);
- this->aiocb_read_->aio_reqprio = 0;
- this->aiocb_read_->aio_sigevent.sigev_notify = SIGEV_NONE;
- //this->this->aiocb_.aio_sigevent.sigev_signo = SIGRTMAX;
- this->aiocb_read_->aio_sigevent.sigev_value.sival_ptr =
- (void *) this->aiocb_read_;
-
- // Fire off the aio write. If it doesnt get queued, carry on to get
- // the completion for the first one.
- if (aio_read (this->aiocb_read_) < 0)
- perror ("aio_read");
-
- // Wait for the completion on aio_suspend.
- struct aiocb *list_aiocb[2];
- list_aiocb [0] = this->aiocb_write_;
- list_aiocb [1] = this->aiocb_read_;
-
- // Do suspend till all the aiocbs in the list are done.
- int done = 0;
- while (!done)
- {
- if (aio_suspend (list_aiocb, 2, 0) != 0)
- {
- perror ("aio_suspend");
- return -1;
- }
-
- // Analyze return and error values.
- if (list_aiocb [0] != 0 && aio_error (list_aiocb [0]) != EINPROGRESS)
- {
- if (aio_return (list_aiocb [0]) == -1)
- {
- perror ("aio_return");
- return -1;
- }
- else
- {
- // Successful. Store the pointer somewhere and make the
- // entry NULL in the list.
- // @@ no need ----> this->aiocb_write_ = list_aiocb [0];
- list_aiocb [0] = 0;
- }
- }
-// else
-// cout << "AIO in progress" << endl;
-
- if (list_aiocb [1] != 0 && aio_error (list_aiocb [1]) != EINPROGRESS)
- {
- if (aio_return (list_aiocb [1]) == -1)
- {
- perror ("aio_return");
- return -1;
- }
- else
- {
- // Successful. Store the pointer somewhere and make the
- // entry NULL in the list.
- // @@ no need ----> this->aiocb_read_ = list_aiocb [1];
- list_aiocb [1] = 0;
- }
- }
-// else
-// cout << "AIO in progress" << endl;
-
- // Is it done?
- if ((list_aiocb [0] == 0) && (list_aiocb [1] == 0))
- done = 1;
- }
-
- //cout << "Both the AIO operations done." << endl;
- //cout << "The buffer is :" << this->buffer_read_ << endl;
-
- return 0;
-}
-
-int
-main (int argc, char **argv)
-{
- Test_Aio test_aio;
-
- if (test_aio.init () != 0)
- {
- //printf ("AIOCB test failed:\n"
- // "ACE_POSIX_AIOCB_PROACTOR may not work in this platform\n");
- return -1;
- }
-
- if (test_aio.do_aio () != 0)
- {
- //printf ("AIOCB test failed:\n"
- // "ACE_POSIX_AIOCB_PROACTOR may not work in this platform\n");
- return -1;
- }
- //printf ("AIOCB test successful:\n"
- // "ACE_POSIX_AIOCB_PROACTOR should work in this platform\n");
- return 0;
-}
- ],
- [
- dnl Now try another test
-
- dnl Create a file for the test program to read.
- cat > test_aiosig.txt <<EOF
-
-*******************************************************
-FOO BAR FOO BAR FOO BAR FOO BAR FOO BAR FOO BAR FOO BAR
-*******************************************************
-EOF
-
-
- AC_TRY_RUN(
- [
-#ifndef ACE_LACKS_UNISTD_H
-#include <unistd.h>
-#endif
-#include <fcntl.h>
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/stat.h>
-#include <pthread.h>
-#include <signal.h>
-#include <string.h>
-#include <errno.h>
-#include <stdio.h>
-
-#include <limits.h>
-
-#include <aio.h>
-
-#ifdef __cplusplus
-extern "C"
-#endif
-void null_handler (int /* signal_number */,
- siginfo_t * /* info */,
- void * /* context */);
-
-int file_handle = -1;
-char mb1 [BUFSIZ + 1];
-char mb2 [BUFSIZ + 1];
-aiocb aiocb1, aiocb2;
-sigset_t completion_signal;
-
-// Function prototypes.
-int setup_signal_delivery (void);
-int issue_aio_calls (void);
-int query_aio_completions (void);
-int test_aio_calls (void);
-int setup_signal_handler (void);
-int setup_signal_handler (int signal_number);
-
-int
-setup_signal_delivery (void)
-{
- // Make the sigset_t consisting of the completion signal.
- if (sigemptyset (&completion_signal) == -1)
- {
- perror ("Error:Couldn't init the RT completion signal set\n");
- return -1;
- }
-
- if (sigaddset (&completion_signal, SIGRTMIN) == -1)
- {
- perror ("Error:Couldn't init the RT completion signal set\n");
- return -1;
- }
-
- // Mask them.
- if (pthread_sigmask (SIG_BLOCK, &completion_signal, 0) == -1)
- {
- perror ("Error:Couldn't make the RT completion signals\n");
- return -1;
- }
-
- return setup_signal_handler (SIGRTMIN);
-}
-
-int
-issue_aio_calls (void)
-{
- // Setup AIOCB.
- aiocb1.aio_fildes = file_handle;
- aiocb1.aio_offset = 0;
- aiocb1.aio_buf = mb1;
- aiocb1.aio_nbytes = BUFSIZ;
- aiocb1.aio_reqprio = 0;
- aiocb1.aio_sigevent.sigev_notify = SIGEV_SIGNAL;
- aiocb1.aio_sigevent.sigev_signo = SIGRTMIN;
- aiocb1.aio_sigevent.sigev_value.sival_ptr = (void *) &aiocb1;
-
- // Fire off the aio write.
- if (aio_read (&aiocb1) == -1)
- {
- // Queueing failed.
- perror ("Error:Asynch_Read_Stream: aio_read queueing failed\n");
- return -1;
- }
-
- // Setup AIOCB.
- aiocb2.aio_fildes = file_handle;
- aiocb2.aio_offset = BUFSIZ + 1;
- aiocb2.aio_buf = mb2;
- aiocb2.aio_nbytes = BUFSIZ;
- aiocb2.aio_reqprio = 0;
- aiocb2.aio_sigevent.sigev_notify = SIGEV_SIGNAL;
- aiocb2.aio_sigevent.sigev_signo = SIGRTMIN;
- aiocb2.aio_sigevent.sigev_value.sival_ptr = (void *) &aiocb2;
-
- // Fire off the aio write.
- if (aio_read (&aiocb2) == -1)
- {
- // Queueing failed.
- perror ("Error:Asynch_Read_Stream: aio_read queueing failed\n");
- return -1;
- }
- return 0;
-}
-
-int
-query_aio_completions (void)
-{
- int result = 0;
- size_t number_of_completions = 0;
- for (number_of_completions = 0;
- number_of_completions < 2;
- number_of_completions++)
- {
- // Wait for <milli_seconds> amount of time.
- // @@ Assigning <milli_seconds> to tv_sec.
- timespec timeout;
- timeout.tv_sec = 5;
- timeout.tv_nsec = 0;
-
- // To get back the signal info.
- siginfo_t sig_info;
-
- // Await the RT completion signal.
- int sig_return = sigtimedwait (&completion_signal,
- &sig_info,
- &timeout);
-
- // Error case.
- // If failure is coz of timeout, then return *0* but set
- // errno appropriately. This is what the WinNT proactor
- // does.
- if (sig_return == -1)
- {
- perror ("Error:Error waiting for RT completion signals\n");
- return -1;
- }
-
- // RT completion signals returned.
- if (sig_return != SIGRTMIN)
- {
- //printf ("Unexpected signal (%d) has been received while waiting for RT Completion Signals\n",
- // sig_return);
- return -1;
- }
-
- // @@ Debugging.
- //printf ("Sig number found in the sig_info block : %d\n",
- // sig_info.si_signo);
-
- // Is the signo returned consistent?
- if (sig_info.si_signo != sig_return)
- {
- //printf ("Inconsistent signal number (%d) in the signal info block\n",
- // sig_info.si_signo);
- return -1;
- }
-
- // @@ Debugging.
- //printf ("Signal code for this signal delivery : %d\n",
- // sig_info.si_code);
-
- // Is the signal code an aio completion one?
- if ((sig_info.si_code != SI_ASYNCIO) &&
- (sig_info.si_code != SI_QUEUE))
- {
- //printf ("Unexpected signal code (%d) returned on completion querying\n",
- // sig_info.si_code);
- return -1;
- }
-
- // Retrive the aiocb.
- aiocb* aiocb_ptr = (aiocb *) sig_info.si_value.sival_ptr;
-
- // Analyze error and return values. Return values are
- // actually <errno>'s associated with the <aio_> call
- // corresponding to aiocb_ptr.
- int error_code = aio_error (aiocb_ptr);
- if (error_code == -1)
- {
- perror ("Error:Invalid control block was sent to <aio_error> for compleion querying\n");
- return -1;
- }
-
- if (error_code != 0)
- {
- // Error occurred in the <aio_>call. Return the errno
- // corresponding to that <aio_> call.
- //printf ("Error:An AIO call has failed:Error code = %d\n",
- // error_code);
- return -1;
- }
-
- // No error occured in the AIO operation.
- int nbytes = aio_return (aiocb_ptr);
- if (nbytes == -1)
- {
- perror ("Error:Invalid control block was sent to <aio_return>\n");
- return -1;
- }
-
- //if (number_of_completions == 0)
- // Print the buffer.
- //printf ("Number of bytes transferred : %d\n The buffer : %s \n",
- // nbytes,
- // mb1);
- //else
- // Print the buffer.
- //printf ("Number of bytes transferred : %d\n The buffer : %s \n",
- // nbytes,
- // mb2);
- }
- return 0;
-}
-
-int
-test_aio_calls (void)
-{
- // Set up the input file.
- // Open file (in SEQUENTIAL_SCAN mode)
- file_handle = open ("test_aiosig.txt", O_RDONLY);
-
- if (file_handle == -1)
- {
- perror ("open");
- return -1;
- }
-
- unlink ("test_aiosig.txt"); // Unlink now so we don't have to do so later.
-
- if (setup_signal_delivery () < 0)
- return -1;
-
- if (issue_aio_calls () < 0)
- return -1;
-
- if (query_aio_completions () < 0)
- return -1;
-
- if (close (file_handle) != 0)
- {
- perror ("close");
- return -1;
- }
-
- return 0;
-}
-
-int
-setup_signal_handler (int signal_number)
-{
- // Setting up the handler(!) for these signals.
- struct sigaction reaction;
- sigemptyset (&reaction.sa_mask); // Nothing else to mask.
- reaction.sa_flags = SA_SIGINFO; // Realtime flag.
-#if defined (SA_SIGACTION)
- // Lynx says, it is better to set this bit to be portable.
- reaction.sa_flags &= SA_SIGACTION;
-#endif /* SA_SIGACTION */
- reaction.sa_sigaction = null_handler; // Null handler.
- int sigaction_return = sigaction (SIGRTMIN,
- &reaction,
- 0);
- if (sigaction_return == -1)
- {
- perror ("Error:Proactor couldn't do sigaction for the RT SIGNAL");
- return -1;
- }
-
- return 0;
-}
-
-void
-null_handler (int /* signal_number */,
- siginfo_t * /* info */,
- void * /* context */)
-{
-}
-
-int
-main (int, char *[])
-{
- if (test_aio_calls () == 0)
- {
- //printf ("RT SIG test successful:\n"
- // "ACE_POSIX_SIG_PROACTOR should work in this platform\n");
- return 0;
- }
- else
- {
- //printf ("RT SIG test failed:\n"
- // "ACE_POSIX_SIG_PROACTOR may not work in this platform\n");
- return -1;
- }
-}
- ],
- [
- ace_cv_feature_aio_calls=yes
- ],
- [
- ace_cv_feature_aio_calls=no
- ],
- [
- dnl Don't bother doing anything for cross-compiling here
- dnl since the outer run-time test will prevent this
- dnl inner run-time test from ever running when cross-compiling.
- dnl We just put something in here to prevent autoconf
- dnl from complaining.
- ace_just_a_place_holder=ignoreme
- ])
- ],
- [
- ace_cv_feature_aio_calls=no
- ],
- [
- dnl Asynchronous IO test for cross-compiled platforms
- dnl This test is weaker than the above run-time tests but it will
- dnl have to do.
- AC_TRY_COMPILE(
- [
-#include <aio.h>
- ],
- [
- aiocb* aiocb_ptr (void);
- ],
- [
- ace_cv_feature_aio_calls=yes
- ],
- [
- ace_cv_feature_aio_calls=no
- ])
- ])
- ],[AC_DEFINE(ACE_HAS_AIO_CALLS)],[LIBS="$ace_save_LIBS"])
-fi dnl test "$ace_has_aio_funcs" = yes
-])
diff --git a/m4/platform.m4 b/m4/platform.m4
deleted file mode 100644
index 8d97cbb55cf..00000000000
--- a/m4/platform.m4
+++ /dev/null
@@ -1,324 +0,0 @@
-dnl -------------------------------------------------------------------------
-dnl $Id$
-dnl
-dnl platform.m4
-dnl
-dnl ACE M4 include file which contains ACE specific M4 macros
-dnl that set/determine which known platform specific C++ macros
-dnl to define.
-dnl
-dnl -------------------------------------------------------------------------
-
-dnl Copyright (C) 1998, 1999, 2000 Ossama Othman
-dnl
-dnl All Rights Reserved
-dnl
-dnl This library is free software; you can redistribute it and/or
-dnl modify it under the current ACE distribution terms.
-dnl
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-dnl Check for thread related libraries and compiler flags
-dnl Usage: ACE_SET_PLATFORM_MACROS
-AC_DEFUN(ACE_SET_PLATFORM_MACROS, dnl
-[
-dnl Begin ACE_SET_PLATFORM_MACROS
-
-dnl At some point the below platform specific settings should be
-dnl automated as much as possible! We set things manually just to get
-dnl things going with the auto{conf,make}/libtool integration into the
-dnl ACE source tree.
-
-dnl Platform specific flags
-case "$host" in
- *aix3*)
- AC_DEFINE(AIX)
- AC_DEFINE(ACE_DEFAULT_BASE_ADDR, ((char *) 0x80000000))
- ;;
- *aix4.1*)
- AC_DEFINE(AIX)
- dnl Use BSD 4.4 socket definitions for pre-AIX 4.2. The _BSD
- dnl setting also controls the data type used for waitpid(),
- dnl wait(), and wait3().
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_BSD=44"
- dnl pre-AIX 4.3 requires _BSD_INCLUDES
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_BSD_INCLUDES"
- AC_DEFINE(ACE_DEFAULT_BASE_ADDR, ((char *) 0x80000000))
- AC_DEFINE(ACE_HAS_AIX_BROKEN_SOCKET_HEADER)
- ;;
- *aix4.2*)
- AC_DEFINE(AIX)
- dnl pre-AIX 4.3 requires _BSD_INCLUDES
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_BSD_INCLUDES"
- AC_DEFINE(ACE_DEFAULT_BASE_ADDR, ((char *) 0x80000000))
-dnl AC_DEFINE(ACE_HAS_AIX_BROKEN_SOCKET_HEADER)
- AC_DEFINE(ACE_TLI_TCP_DEVICE, "/dev/xti/tcp")
- ;;
- *aix*)
- AC_DEFINE(AIX)
- ;;
- t3e-cray-unicosmk*)
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_CRAYMPP -D_CRAYT3E -D_UNICOS"
- ;;
- t3e-cray*)
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_CRAYT3E -D_UNICOS"
- ;;
- *cray-unicos*)
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_UNICOS"
- ;;
- *dgux4.11*)
- AC_DEFINE(ACE_DGUX)
- AC_DEFINE(IP_ADD_MEMBERSHIP, 0x13)
- AC_DEFINE(IP_DROP_MEMBERSHIP, 0x14)
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_POSIX_SOURCE -D_DGUX_SOURCE"
- ;;
- *dgux4*)
- AC_DEFINE(ACE_DGUX)
- AC_DEFINE(IP_ADD_MEMBERSHIP, 0x13)
- AC_DEFINE(IP_DROP_MEMBERSHIP, 0x14)
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_POSIX4A_DRAFT10_SOURCE -D_POSIX4_DRAFT_SOURCE"
- ;;
- *freebsd*)
- ;;
- *fsu*)
-dnl FIXME: "FSU" isn't a platform! We need to move this somewhere.
- AC_DEFINE(PTHREAD_STACK_MIN, (1024*10))
- ;;
- *hpux9*)
- AC_DEFINE(HPUX)
- ;;
- *hpux10*)
- AC_DEFINE(HPUX)
- AC_DEFINE(HPUX_10)
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_HPUX_SOURCE"
- AC_DEFINE(ACE_DEFAULT_BASE_ADDR, ((char *) 0x80000000))
- AC_DEFINE(ACE_TLI_TCP_DEVICE, "/dev/inet_cots")
- ;;
- *hpux11*)
- AC_DEFINE(HPUX)
- AC_DEFINE(HPUX_11)
- AC_EGREP_CPP(ACE_ON_64BIT_HP,
- [
-#ifdef __LP64__
- ACE_ON_64BIT_HP
-#endif
- ],
- [
- AC_DEFINE(ACE_DEFAULT_BASE_ADDR, ((char *) 0x0000001100000000))
- AC_DEFINE(ACE_DEFAULT_BASE_ADDRL, ((char *) 0x0000001100000000))
- ],
- [
- AC_DEFINE(ACE_DEFAULT_BASE_ADDR, ((char *) 0x80000000))
- ])
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- ;;
- *irix5.2*)
- AC_DEFINE(IRIX5)
- ;;
- *irix5.3*)
- AC_DEFINE(IRIX5)
- if test -z "$GXX"; then
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_BSD_TYPES"
- fi
- ;;
- *irix6*)
- AC_DEFINE(IRIX6)
- AC_DEFINE(ACE_DEFAULT_BASE_ADDR, ((char *) (1024U * 1024 * 1024)))
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_SGI_MP_SOURCE -D_MODERN_C_"
-
- case "$host" in
- *irix6.2*)
- dnl Recent versions of IRIX do not appear to require this macro.
- if test "$ace_user_enable_threads" = yes; then
- AC_DEFINE(ACE_HAS_IRIX62_THREADS)
- fi
- ;;
- esac
- ;;
- *linux*)
- AC_DEFINE(ACE_DEFAULT_MAX_SOCKET_BUFSIZ, 65535)
- AC_DEFINE(ACE_DEFAULT_BASE_ADDR, ((char *) 0x80000000))
- AC_DEFINE(ACE_HAS_BIG_FD_SET) dnl FIXME: We need a test for this!
- AC_DEFINE(ACE_UINT64_FORMAT_SPECIFIER, "%Lu")
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- ;;
- *lynxos*)
- AC_DEFINE(_POSIX_THREADS_CALLS)
- AC_DEFINE(__NO_INCLUDE_WARN__)
- AC_DEFINE(ACE_MALLOC_ALIGN, 8)
- AC_DEFINE(ACE_MAP_PRIVATE, ACE_MAP_SHARED)
- AC_DEFINE(ACE_USE_RCSID, 0)
- AC_DEFINE(ACE_HAS_LYNXOS_SIGNALS)
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- ;;
- *m88k*)
- AC_DEFINE(m88k)
- AC_DEFINE(__m88k__)
- AC_DEFINE(IP_ADD_MEMBERSHIP, 0x13)
- AC_DEFINE(IP_DROP_MEMBERSHIP, 0x14)
- ;;
- *mvs*)
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_ALL_SOURCE"
- ;;
- *netbsd*)
- AC_DEFINE(ACE_NETBSD)
- ;;
- *osf3.2*)
- AC_EGREP_CPP(ACE_DEC_CXX,
- [
-#if defined(__DECCXX)
- ACE_DEC_CXX
-#endif
- ],
- [
- AC_DEFINE(DEC_CXX)
- ],)
- ;;
- *osf4.0*)
-dnl We need to add checks for g++, DEC C++ and Rational C++
- AC_EGREP_CPP(ACE_DEC_CXX,
- [
-#if defined(__DECCXX)
- ACE_DEC_CXX
-#endif
- ],
- [
- AC_DEFINE(DEC_CXX)
- ],)
-dnl Check for _POSIX_C_SOURCE macro
- AC_EGREP_CPP(ACE_ON_DEC_WITH_POS_SRC,
- [
- /* Include unistd.h to define _POSIX_C_SOURCE. */
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 199506L)
- ACE_ON_DEC_WITH_POS_SRC
-#endif
- ],
- [
- AC_DEFINE(DIGITAL_UNIX)
- ],)
- AC_DEFINE(ACE_DEFAULT_BASE_ADDR, ((char *) 0x80000000))
- AC_DEFINE(ACE_NEEDS_HUGE_THREAD_STACKSIZE, (1024 * 1024))
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- ;;
- *psos*)
- AC_DEFINE(ACE_PSOS)
- AC_DEFINE(ACE_PSOSIM)
- AC_DEFINE(ACE_PSOSTBD)
- dnl need ACE_HAS_TSS_EMULATION for ACE_DEFAULT_THREAD_KEYS!
- AC_EGREP_CPP(ACE_TSS_EMULATION,
- [
-#if defined (ACE_HAS_TSS_EMULATION)
- ACE_TSS_EMULATION
-#endif
- ], AC_DEFINE(ACE_DEFAULT_THREAD_KEYS, 256),)
- AC_DEFINE(ACE_MAIN, extern "C" void root)
- AC_DEFINE(ACE_MALLOC_ALIGN, 8)
- AC_DEFINE(ACE_USE_RCSID, 0)
- ;;
- *sco4.2*)
- AC_DEFINE(SCO)
- AC_DEFINE(ACE_DEFAULT_CLOSE_ALL_HANDLES, 0)
- ;;
- *sco5*)
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_SVID3"
- AC_DEFINE(SCO)
- AC_DEFINE(ACE_DEFAULT_CLOSE_ALL_HANDLES, 0)
- AC_DEFINE(ACE_HAS_BIG_FD_SET) dnl FIXME: We need a test for this!
- ;;
- *sunos4*)
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- ;;
- *solaris2.4*)
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- AC_DEFINE(ACE_NEEDS_LWP_PRIO_SET)
- ;;
- *solaris2.5*)
- AC_DEFINE(ACE_MALLOC_ALIGN, 8)
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- AC_DEFINE(ACE_NEEDS_LWP_PRIO_SET)
- ;;
- *solaris2.6*)
- AC_DEFINE(ACE_MALLOC_ALIGN, 8)
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- AC_DEFINE(ACE_NEEDS_LWP_PRIO_SET)
- ;;
- *solaris2.7*)
- AC_DEFINE(ACE_MALLOC_ALIGN, 8)
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- AC_DEFINE(ACE_NEEDS_LWP_PRIO_SET)
- ;;
- *86*solaris*)
- AC_DEFINE(ACE_HAS_X86_STAT_MACROS)
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- AC_DEFINE(ACE_NEEDS_LWP_PRIO_SET)
- ;;
- *tandem*)
- AC_DEFINE(ACE_TIMER_SKEW, (1000 * 10))
- ;;
- *unixware2.0*)
- AC_DEFINE(UNIXWARE)
- AC_DEFINE(UNIXWARE_2_0)
- ;;
- *unixware2.1*)
- AC_DEFINE(UNIXWARE)
- AC_DEFINE(UNIXWARE_2_1)
- ;;
- *vxworks*)
- AC_DEFINE(VXWORKS)
- AC_DEFINE(ACE_MAIN, ace_main)
- AC_DEFINE(ACE_DEFAULT_MAX_SOCKET_BUFSIZ, 32768)
- dnl need ACE_HAS_TSS_EMULATION for ACE_DEFAULT_THREAD_KEYS!
- AC_EGREP_CPP(ACE_TSS_EMULATION,
- [
-#if defined (ACE_HAS_TSS_EMULATION)
- ACE_TSS_EMULATION
-#endif
- ], AC_DEFINE(ACE_DEFAULT_THREAD_KEYS, 16),)
- AC_DEFINE(ACE_THR_PRI_FIFO_DEF, 101)
- AC_DEFINE(ACE_USE_RCSID, 0)
- ;;
- *cygwin32*)
- AC_DEFINE(CYGWIN32)
- ;;
- *win32*)
- AC_DEFINE(ACE_WIN32)
- AC_DEFINE(ACE_UINT64_FORMAT_SPECIFIER, "%I64u")
-dnl AC_DEFINE(ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL)
- if test "$ace_u_long_long_typedef_set" != yes; then
- ACE_UINT64="unsigned __int64"
- ace_u_long_long_typedef_set=yes
- fi dnl "$ace_u_long_long_typedef_set" != yes
- ;;
- *qnx* | *nto* | *neutrino*)
- dnl These should be defined on the command line, not in config.h.
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_QNX_SOURCE -D_POSIX_C_SOURCE=199506"
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_POSIX_NAME_MAX=14" # Max bytes in a
- # filename
- ACE_CPPFLAGS="$ACE_CPPFLAGS -D_POSIX_PATH_MAX=256" # Num. bytes in
- # pathname (excl. NULL)
- case "$host" in
-changequote(, )dnl
- i[3456]86*)
-changequote([, ])dnl
- if test -n "$GXX"; then
- # Neutrino defines memcpy as a macro on x86, which then
- # hoses the ACE_OS::memcpy() method. Undefining
- # __OPTIMIZE__ prevents this from happening.
- ACE_CPPFLAGS="$ACE_CPPFLAGS -U__OPTIMIZE__"
- fi
- ;;
- esac
- ;;
- *)
- ;;
-esac
-
-dnl End ACE_SET_PLATFORM_MACROS
-])
diff --git a/m4/subsets.m4 b/m4/subsets.m4
deleted file mode 100644
index 95f6c517d3c..00000000000
--- a/m4/subsets.m4
+++ /dev/null
@@ -1,594 +0,0 @@
-dnl -------------------------------------------------------------------------
-dnl $Id$
-dnl
-dnl subsets.m4
-dnl
-dnl ACE M4 include file which contains ACE specific M4 macros
-dnl that set/determine which ACE subsets to build.
-dnl
-dnl -------------------------------------------------------------------------
-
-dnl Copyright (C) 1998, 1999 Ossama Othman
-dnl
-dnl All Rights Reserved
-dnl
-dnl This library is free software; you can redistribute it and/or
-dnl modify it under the current ACE distribution terms.
-dnl
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-
-dnl Check for thread related libraries and compiler flags
-dnl Usage: ACE_CHECK_SUBSETS
-AC_DEFUN(ACE_CHECK_SUBSETS, dnl
-[
-
-dnl Begin ACE_CHECK_SUBSETS
-
-dnl Assume all subsets will be built, including the full ACE library.
-dnl If any of the components is explicitly enabled or disabled by the user
-dnl then do NOT build the full ACE library.
-AC_ARG_ENABLE(lib-all,
- [ --enable-lib-all build all ACE components [default=no]],
- [
- case "${enableval}" in
- yes)
- ace_user_enable_lib_all=yes
- ;;
- no)
- ace_user_enable_lib_all=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-all)
- ;;
- esac
- ],
- [
- ace_user_enable_lib_all=no
- ])
-
-AC_ARG_ENABLE(lib-full,
- [ --enable-lib-full build the full ACE library [default=yes]],
- [
- case "${enableval}" in
- yes)
- ace_user_enable_lib_full=yes
- ;;
- no)
- ace_user_enable_lib_full=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-full)
- ;;
- esac
- ],
- [
- ace_user_enable_lib_full=yes
- ])
-
-AC_ARG_ENABLE(lib-os,
- [ --enable-lib-os build libACE_OS library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_OS
- ;;
- no)
- ace_user_enable_lib_os=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-os)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-utils,
- [ --enable-lib-utils build libACE_Utils library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_UTILS
- ;;
- no)
- ace_user_enable_lib_utils=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-utils)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-logging,
- [ --enable-lib-logging build libACE_Logging library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_LOGGING
- ;;
- no)
- ace_user_enable_lib_logging=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-logging)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-threads,
- [ --enable-lib-threads build libACE_Threads library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_THREADS
- ;;
- no)
- ace_user_enable_lib_threads=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-threads)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-demux,
- [ --enable-lib-demux build libACE_Demux library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_DEMUX
- ;;
- no)
- ace_user_enable_lib_demux=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-demux)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-connection,
- [ --enable-lib-connection build libACE_Connection library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_CONNECTION
- ;;
- no)
- ace_user_enable_lib_connection=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-connection)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-sockets,
- [ --enable-lib-sockets build libACE_Sockets library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_SOCKETS
- ;;
- no)
- ace_user_enable_lib_sockets=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-sockets)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-ipc,
- [ --enable-lib-ipc build libACE_IPC library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_IPC
- ;;
- no)
- ace_user_enable_lib_ipc=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-ipc)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-svcconf,
- [ --enable-lib-svcconf build libACE_Svcconf library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_SVCCONF
- ;;
- no)
- ace_user_enable_lib_svcconf=no
- AC_DEFINE(ACE_LACKS_ACE_SVCCONF)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-svcconf)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-streams,
- [ --enable-lib-streams build libACE_Streams library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_STREAMS
- ;;
- no)
- ace_user_enable_lib_streams=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-streams)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-memory,
- [ --enable-lib-memory build libACE_Memory library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_MEMORY
- ;;
- no)
- ace_user_enable_lib_memory=no
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-memory)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-token,
- [ --enable-lib-token build libACE_Token library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_TOKEN
- ;;
- no)
- ace_user_enable_lib_token=no
- AC_DEFINE(ACE_LACKS_ACE_TOKEN)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-token)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-AC_ARG_ENABLE(lib-other,
- [ --enable-lib-other build libACE_Other library ],
- [
- case "${enableval}" in
- yes)
- ACE_CREATE_LIBACE_OTHER
- ;;
- no)
- ace_user_enable_lib_other=no
- AC_DEFINE(ACE_LACKS_ACE_OTHER)
- ;;
- *)
- AC_MSG_ERROR(bad value ${enableval} for --enable-lib-other)
- ;;
- esac
-
- dnl Disable full ACE library build
- ace_user_enable_lib_full=no
- ],)
-
-
-dnl If no ACE subsets were explicitly enabled or disabled then build
-dnl all of them.
-if test $ace_user_enable_lib_all = yes; then
-
- ACE_CREATE_ALL_COMPONENTS
-
-elif test $ace_user_enable_lib_all = no; then
-
- ACE_DISABLE_ALL_COMPONENTS
-
-fi
-
-if test $ace_user_enable_lib_full = no &&
- test $ace_user_enable_lib_os = no &&
- test $ace_user_enable_lib_utils = no &&
- test $ace_user_enable_lib_logging = no &&
- test $ace_user_enable_lib_threads = no &&
- test $ace_user_enable_lib_demux = no &&
- test $ace_user_enable_lib_connection = no &&
- test $ace_user_enable_lib_sockets = no &&
- test $ace_user_enable_lib_ipc = no &&
- test $ace_user_enable_lib_svcconf = no &&
- test $ace_user_enable_lib_streams = no &&
- test $ace_user_enable_lib_memory = no &&
- test $ace_user_enable_lib_token = no &&
- test $ace_user_enable_lib_other = no; then
-
- dnl If we get here then no ACE libraries will be built!
- AC_MSG_ERROR(no ACE components will be built. Specify which components to build)
-
-fi dnl No components will be built!
-
-dnl Set which ACE subsets to build
-AM_CONDITIONAL(BUILD_OS_FILES,
- test X$ace_user_enable_lib_os = Xyes)
-
-AM_CONDITIONAL(BUILD_UTILS_FILES,
- test X$ace_user_enable_lib_utils = Xyes)
-
-AM_CONDITIONAL(BUILD_LOGGING_FILES,
- test X$ace_user_enable_lib_logging = Xyes)
-
-AM_CONDITIONAL(BUILD_THREADS_FILES,
- test X$ace_user_enable_lib_threads = Xyes)
-
-AM_CONDITIONAL(BUILD_DEMUX_FILES,
- test X$ace_user_enable_lib_demux = Xyes)
-
-AM_CONDITIONAL(BUILD_CONNECTION_FILES,
- test X$ace_user_enable_lib_connection = Xyes)
-
-AM_CONDITIONAL(BUILD_SOCKETS_FILES,
- test X$ace_user_enable_lib_sockets = Xyes)
-
-AM_CONDITIONAL(BUILD_IPC_FILES,
- test X$ace_user_enable_lib_ipc = Xyes)
-
-AM_CONDITIONAL(BUILD_SVCCONF_FILES,
- test X$ace_user_enable_lib_svcconf = Xyes)
-
-AM_CONDITIONAL(BUILD_STREAMS_FILES,
- test X$ace_user_enable_lib_streams = Xyes)
-
-AM_CONDITIONAL(BUILD_MEMORY_FILES,
- test X$ace_user_enable_lib_memory = Xyes)
-
-AM_CONDITIONAL(BUILD_TOKEN_FILES,
- test X$ace_user_enable_lib_token = Xyes)
-
-AM_CONDITIONAL(BUILD_OTHER_FILES,
- test X$ace_user_enable_lib_other = Xyes)
-
-AM_CONDITIONAL(BUILD_FULL_LIBRARY,
- test X$ace_user_enable_lib_full = Xyes)
-
-dnl End ACE_CHECK_SUBSETS
-])
-
-dnl Set the component dependencies for the libACE_OS library
-dnl Usage: ACE_CREATE_LIBACE_OS
-AC_DEFUN(ACE_CREATE_LIBACE_OS,
-[
- ace_user_enable_lib_os=yes
-])
-
-dnl Set the component dependencies for the libACE_Utils library
-dnl Usage: ACE_CREATE_LIBACE_UTILS
-AC_DEFUN(ACE_CREATE_LIBACE_UTILS,
-[
- ace_user_enable_lib_utils=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
-])
-
-dnl Set the component dependencies for the libACE_Logging library
-dnl Usage: ACE_CREATE_LIBACE_Logging
-AC_DEFUN(ACE_CREATE_LIBACE_LOGGING,
-[
- ace_user_enable_lib_logging=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
-])
-
-dnl Set the component dependencies for the libACE_Threads library
-dnl Usage: ACE_CREATE_LIBACE_THREADS
-AC_DEFUN(ACE_CREATE_LIBACE_THREADS,
-[
- ace_user_enable_lib_threads=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
-])
-
-dnl Set the component dependencies for the libACE_Demux library
-dnl Usage: ACE_CREATE_LIBACE_DEMUX
-AC_DEFUN(ACE_CREATE_LIBACE_DEMUX,
-[
- ace_user_enable_lib_demux=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
- ACE_CREATE_LIBACE_THREADS
-])
-
-dnl Set the component dependencies for the libACE_Connection library
-dnl Usage: ACE_CREATE_LIBACE_CONNECTION
-AC_DEFUN(ACE_CREATE_LIBACE_CONNECTION,
-[
- ace_user_enable_lib_connection=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
- ACE_CREATE_LIBACE_THREADS
- ACE_CREATE_LIBACE_DEMUX
-])
-
-dnl Set the component dependencies for the libACE_Sockets library
-dnl Usage: ACE_CREATE_LIBACE_SOCKETS
-AC_DEFUN(ACE_CREATE_LIBACE_SOCKETS,
-[
- ace_user_enable_lib_sockets=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
-])
-
-dnl Set the component dependencies for the libACE_IPC library
-dnl Usage: ACE_CREATE_LIBACE_IPC
-AC_DEFUN(ACE_CREATE_LIBACE_IPC,
-[
- ace_user_enable_lib_ipc=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
- ACE_CREATE_LIBACE_SOCKETS
-])
-
-dnl Set the component dependencies for the libACE_Svcconf library
-dnl Usage: ACE_CREATE_LIBACE_SVCCONF
-AC_DEFUN(ACE_CREATE_LIBACE_SVCCONF,
-[
- ace_user_enable_lib_svcconf=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
- ACE_CREATE_LIBACE_THREADS
- ACE_CREATE_LIBACE_DEMUX
- ACE_CREATE_LIBACE_SOCKETS
-])
-
-dnl Set the component dependencies for the libACE_Streams library
-dnl Usage: ACE_CREATE_LIBACE_STREAMS
-AC_DEFUN(ACE_CREATE_LIBACE_STREAMS,
-[
- ace_user_enable_lib_streams=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
- ACE_CREATE_LIBACE_THREADS
- ACE_CREATE_LIBACE_DEMUX
-])
-
-dnl Set the component dependencies for the libACE_Memory library
-dnl Usage: ACE_CREATE_LIBACE_MEMORY
-AC_DEFUN(ACE_CREATE_LIBACE_MEMORY,
-[
- ace_user_enable_lib_memory=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
-])
-
-dnl Set the component dependencies for the libACE_Token library
-dnl Usage: ACE_CREATE_LIBACE_TOKEN
-AC_DEFUN(ACE_CREATE_LIBACE_TOKEN,
-[
- ace_user_enable_lib_token=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
- ACE_CREATE_LIBACE_UTILS
- ACE_CREATE_LIBACE_LOGGING
- ACE_CREATE_LIBACE_THREADS
- ACE_CREATE_LIBACE_DEMUX
- ACE_CREATE_LIBACE_CONNECTION
- ACE_CREATE_LIBACE_SOCKETS
- ACE_CREATE_LIBACE_IPC
- ACE_CREATE_LIBACE_SVCCONF
- ACE_CREATE_LIBACE_STREAMS
- ACE_CREATE_LIBACE_MEMORY
- dnl ACE_CREATE_LIBACE_OTHER
-])
-
-dnl Set the component dependencies for the libACE_Utils library
-dnl Usage: ACE_CREATE_LIBACE_OTHER
-AC_DEFUN(ACE_CREATE_LIBACE_OTHER,
-[
- ace_user_enable_lib_other=yes
-
- dnl Be careful not to go into a circular/recursive loop with these macros!
- ACE_CREATE_LIBACE_OS
- ACE_CREATE_LIBACE_UTILS
- ACE_CREATE_LIBACE_LOGGING
- ACE_CREATE_LIBACE_THREADS
- ACE_CREATE_LIBACE_DEMUX
- ACE_CREATE_LIBACE_CONNECTION
- ACE_CREATE_LIBACE_SOCKETS
- ACE_CREATE_LIBACE_IPC
- ACE_CREATE_LIBACE_SVCCONF
- ACE_CREATE_LIBACE_STREAMS
- ACE_CREATE_LIBACE_MEMORY
- dnl ACE_CREATE_LIBACE_TOKEN
-])
-
-dnl Build all ACE component libraries
-dnl Usage: ACE_CREATE_ALL_COMPONENTS
-AC_DEFUN(ACE_CREATE_ALL_COMPONENTS,
-[
- ace_user_enable_lib_os=yes
- ace_user_enable_lib_utils=yes
- ace_user_enable_lib_logging=yes
- ace_user_enable_lib_threads=yes
- ace_user_enable_lib_demux=yes
- ace_user_enable_lib_connection=yes
- ace_user_enable_lib_sockets=yes
- ace_user_enable_lib_ipc=yes
- ace_user_enable_lib_svcconf=yes
- ace_user_enable_lib_streams=yes
- ace_user_enable_lib_memory=yes
- ace_user_enable_lib_token=yes
- ace_user_enable_lib_other=yes
-])
-
-dnl Disable all ACE component libraries
-dnl Usage: ACE_CREATE_ALL_COMPONENTS
-AC_DEFUN(ACE_DISABLE_ALL_COMPONENTS,
-[
- ace_user_enable_lib_os=no
- ace_user_enable_lib_utils=no
- ace_user_enable_lib_logging=no
- ace_user_enable_lib_threads=no
- ace_user_enable_lib_demux=no
- ace_user_enable_lib_connection=no
- ace_user_enable_lib_sockets=no
- ace_user_enable_lib_ipc=no
- ace_user_enable_lib_svcconf=no
- ace_user_enable_lib_streams=no
- ace_user_enable_lib_memory=no
- ace_user_enable_lib_token=no
- ace_user_enable_lib_other=no
-])
diff --git a/m4/threads.m4 b/m4/threads.m4
deleted file mode 100644
index e652000a96c..00000000000
--- a/m4/threads.m4
+++ /dev/null
@@ -1,433 +0,0 @@
-dnl -------------------------------------------------------------------------
-dnl $Id$
-dnl
-dnl threads.m4
-dnl
-dnl ACE M4 include file which contains ACE specific M4 macros
-dnl for configuring thread support. This file is to be used
-dnl with the configure script.
-dnl
-dnl -------------------------------------------------------------------------
-
-dnl Copyright (C) 1998, 1999 Ossama Othman
-dnl
-dnl All Rights Reserved
-dnl
-dnl This library is free software; you can redistribute it and/or
-dnl modify it under the current ACE distribution terms.
-dnl
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-dnl Make sure thread library exists
-dnl We need to be careful when tests for other thread libraries are
-dnl added that we don't screw up handling of "ace_user_enable_threads"
-dnl Tests should probably be more platform specific later on.
-
-dnl Check for thread related libraries and compiler flags
-dnl Usage: ACE_CHECK_THREADS
-AC_DEFUN(ACE_CHECK_THREADS, dnl
-[
-dnl AC_REQUIRE([AC_PROG_CXX])
-dnl AC_REQUIRE([AC_PROG_CXXCPP])
-dnl AC_REQUIRE([AC_LANG_CPLUSPLUS])
-
- dnl Check if compiler accepts specific flag to enable threads
- ACE_CACHE_CHECK(if compiler may need a thread flag,
- ace_cv_feature_may_need_thread_flag,
- [
- ifelse(AC_LANG, [CPLUSPLUS],
- [ace_save_CXXFLAGS="$CXXFLAGS"],
- [ace_save_CFLAGS="$CFLAGS"])
-
- ACE_CHECK_THREAD_FLAGS(
- [
- ace_cv_feature_may_need_thread_flag=no
- ],
- [
- ace_cv_feature_may_need_thread_flag=yes
- ])
- dnl Reset the flags to a consistent state.
- dnl This prevents duplicate flags from being added to
- dnl the C/CXXFLAGS variable.
- ifelse(AC_LANG, [CPLUSPLUS],
- [CXXFLAGS="$ace_save_CXXFLAGS"],[CFLAGS="$ace_save_CFLAGS"])
- ],
- [
- dnl The compiler/platform has no thread support linked in by default
- dnl so search for a usable compiler flag to enable thread support.
- dnl If no thread flag is found then the remaining tests should still
- dnl figure out how to enable thread support via library checks.
- ACE_SEARCH_THREAD_FLAGS(
- [mt pthread pthreads mthreads threads Kthread kthread -thread_safe],,)
- dnl NOTE: "-thread_safe" is correct, not "thread_safe."
- dnl KAI C++ uses the flag "--thread_safe" which is why
- dnl "-thread_safe" is passed as the flag to test.
- ],
- [
- dnl Do nothing
- ])
-
- dnl Check for UNIX International Threads -- STHREADS
- ACE_SEARCH_LIBS(thr_create, thread,
- [
- ace_has_sthreads=yes
- AC_DEFINE(ACE_HAS_STHREADS)
- ],
- [
- ace_has_sthreads=no
- ])
-
- dnl Sometimes thr_create is actually found with explicitly linking against
- dnl -lthread, so try a more "exotic" function.
- ACE_SEARCH_LIBS(rwlock_destroy, thread,,)
-
- dnl Check if any thread related preprocessor flags are needed.
- ACE_CHECK_THREAD_CPPFLAGS
-
- dnl Check for POSIX threads
- dnl
- dnl Check if platform provides pthreads backward compatibility macros
- dnl (Some platforms may define some pthread functions such as
- dnl pthread_create() as macros when using a later implementation of
- dnl pthreads. For example, Digital Unix 4.0 #defines a pthread_create
- dnl macro as "__pthread_create" to allow the new implemenation of
- dnl pthread_create() to co-exist with the old implementation of
- dnl of pthread_create().)
-
- ACE_CACHE_CHECK(for pthreads backward compatibility macros,
- ace_cv_lib_pthread_compat_macros,
- [
- dnl Add thread preprocessor flags, if any.
- ace_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$ACE_THR_CPPFLAGS $CPPFLAGS" dnl User's CPPFLAGS go last
-
- AC_EGREP_CPP(ACE_PTHREAD_MACROS,
- [
-#include <pthread.h>
-
-#if defined (pthread_create)
- ACE_PTHREAD_MACROS
-#endif
- ],
- [
- ace_cv_lib_pthread_compat_macros=yes
- ],
- [
- ace_cv_lib_pthread_compat_macros=no
- ])
-
- dnl Reset the preprocessor flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],
- [
- dnl Check if pthread function names are mangled (e.g. DU 4.0)
- dnl to maintain older Pthread Draft compatibility.
- ACE_CHECK_FUNC(pthread_create, pthread.h,
- [
- ace_has_pthreads=yes
- AC_DEFINE(ACE_HAS_PTHREADS)
- ],
- [
- ACE_CHECK_LIB(pthread, pthread_create, pthread.h, dnl
- [
- ace_has_pthreads=yes
- dnl Since we AC_DEFINE(ACE_HAS_PTHREADS), the default behavior
- dnl of adding "-lpthread" to the "LIBS" variable no longer
- dnl works, so we have to add it manually.
- LIBS="$LIBS -lpthread"
- AC_DEFINE(ACE_HAS_PTHREADS)
- ],
- [
- ace_has_pthreads=yes
- ])
- ])
- ],
- [
- ACE_SEARCH_LIBS(pthread_create, pthread pthreads c_r gthreads,
- [
- ace_has_pthreads=yes
- AC_DEFINE(ACE_HAS_PTHREADS)
-
- dnl This is ugly but some platforms appear to implement stubs
- dnl in the C library, so it is possible that a no-op function
- dnl may be found. Here we check for a few more functions in
- dnl case this is so. This may not be fool proof since the
- dnl additional functions themselves may be implemented as
- dnl stubs, in which case the same problem will occur!
- dnl Another solution is to check for the function using
- dnl AC_CHECK_LIB but that will force the library to be added
- dnl to the LIBS variable, which may not even be necessary. In
- dnl any case, it may be the better solution. If problems arise
- dnl in the future regarding this issue, then we should probably
- dnl switch to doing an AC_CHECK_LIB before each ACE_SEARCH_LIBS
- dnl below.
-
- dnl Search for functions in more recent standards first.
-
- dnl Note that the functions were chosen since they appear to be
- dnl more "exotic" than the less "interesting" functions such as
- dnl pthread_mutexattr_init.
-
- dnl Draft 7 and Standard
- ACE_SEARCH_LIBS([pthread_setschedparam],
- [pthread pthreads c_r gthreads],,
- [
- dnl Draft 6
- ACE_SEARCH_LIBS([pthread_attr_setprio],
- [pthread pthreads c_r gthreads],,
- [
- dnl Draft 4
- ACE_SEARCH_LIBS([pthread_setprio],
- [pthread pthreads c_r gthreads],,)
- ])
- ])
- ],
- [
- ace_has_pthreads=no
- ])
- ])
-
-
- dnl If we don't have any thread library, then disable threading altogether!
- if test "$ace_has_pthreads" != yes &&
- test "$ace_has_sthreads" != yes; then
- ace_user_enable_threads=no
- fi
-])
-
-dnl This macro will check that the current compiler flags do something
-dnl useful in terms of thread libraries and/or functions.
-dnl Usage: ACE_CHECK_THREAD_FLAGS(ACTION-IF-USABLE [, ACTION-IF-NOT-USABLE]])
-AC_DEFUN(ACE_CHECK_THREAD_FLAGS, dnl
-[
- AC_REQUIRE([AC_PROG_AWK])
-
- ACE_CONVERT_WARNINGS_TO_ERRORS([
-
-dnl Check for UI thread support first.
-
- dnl Because some platforms are brain damaged enough to provide
- dnl useless thread function stubs, link tests may succeed despite the
- dnl fact the stubs are no-ops. This forces us to use a run-time test
- dnl to get around this nuisance by checking the return value of
- dnl thr_create(). The cross-compiled case will use a link-time
- dnl test, instead.
-
- AC_TRY_RUN(
- [
-#include <thread.h>
- ]
-ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
-extern "C"
-#endif
-])
- [
-void * ace_start_func(void *arg)
-{
- return arg;
-};
-
-int main (int argc, char **argv)
-{
- thread_t tid = 0;
-
- return thr_create (0, 0, ace_start_func, 0, 0, &tid);
-}
- ],
- [$1],
- [
- dnl Now check for POSIX thread support.
-
- dnl Because some platforms are brain damaged enough to provide
- dnl useless thread function stubs, link tests may succeed despite the
- dnl fact the stubs are no-ops. This forces us to use a run-time test
- dnl to get around this nuisance by checking the return value of
- dnl pthread_create(). The cross-compiled case will use a link-time
- dnl test, instead.
- AC_TRY_RUN(
- [
-#include <pthread.h>
- ]
-ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
-extern "C"
-#endif
-])
- [
-void * ace_start_func(void *arg)
-{
- return arg;
-};
-
-int main (int argc, char **argv)
-{
- pthread_t tid = 0;
-
- return pthread_create (&tid, 0, ace_start_func, 0);
-}
- ],
- [$1],
- [$2],
- [
- dnl POSIX threads cross-compiled case
-
- AC_TRY_CPP(
- [
-#include <pthread.h>
- ],
- [
- cat > conftest.$ac_ext <<EOF
-
-#include <pthread.h>
- ACE_REAL_FUNCTION pthread_create
-
-EOF
-
- if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "ACE_REAL_FUNCTION" |
- (eval "$AWK '{print \[$]2}' > conftest.awk 2>&1"); then
- rm -f conftest.$ac_ext
- ace_real_function=`cat conftest.awk`
- rm -f conftest.awk
- fi
- ],
- [
- ace_real_function="pthread_create"
- ])
-
- AC_TRY_LINK(
- [
-/*
- * Don't use definition of specific preprocessor macros as criterion
- * for determining if thread support is found.
- *
- * #if !defined (_REENTRANT) && !defined (_THREAD_SAFE)
- * #error Neither _REENTRANT nor _THREAD_SAFE were defined.
- * THROW ME AN ERROR!
- * #endif
- *
- */
- ]
-ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
-extern "C"
-#endif
-])dnl
- [
-char $ace_real_function();
- ],
- [
-$ace_real_function();
- ],
- [$1],
- [$2])
- ])
- ],
- [
- dnl UI threads cross-compiled case
- AC_TRY_LINK(
- [
-/*
- * Don't use definition of specific preprocessor macros as criterion
- * for determining if thread support is found.
- *
- * #if !defined (_REENTRANT) && !defined (_THREAD_SAFE)
- * #error Neither _REENTRANT nor _THREAD_SAFE were defined.
- * THROW ME AN ERROR!
- * #endif
- *
- */
- ]
-ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
-extern "C"
-#endif
-])
- [
-char thr_create();
- ],
- [
-thr_create();
- ],
- [$1],
- [$2])
- ])
- ])
-])
-
-dnl Check what compiler thread flag may be used, if any, from the given list.
-dnl The flag list is separated by white space.
-dnl Usage: ACE_SEARCH_THREAD_FLAGS(THREAD-FLAG-LIST,
-dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
-AC_DEFUN(ACE_SEARCH_THREAD_FLAGS, dnl
-[
- ACE_CACHE_CHECK(for compiler thread flag,
- ace_cv_thread_flag_search,
- [
- ifelse(AC_LANG, [CPLUSPLUS],
- [ace_save_CXXFLAGS="$CXXFLAGS"],[ace_save_CFLAGS="$CFLAGS"])
-
- for i in $1; do
- ifelse(AC_LANG, [CPLUSPLUS],
- [CXXFLAGS="$CXXFLAGS -$i"],[CFLAGS="$CFLAGS -$i"])
-
- ACE_CHECK_THREAD_FLAGS(
- [
- ace_cv_thread_flag_search="-$i"
-
- dnl A usable flag was found so break out of the loop.
- break;
- ],
- [
- ace_cv_thread_flag_search=no
- ])
-
- dnl Reset the flags for the next flag check.
- ifelse(AC_LANG, [CPLUSPLUS],
- [CXXFLAGS="$ace_save_CXXFLAGS"],[CFLAGS="$ace_save_CFLAGS"])
- done
-
- dnl Reset the flags to a consistent state.
- dnl This prevents duplicate flags from being added to
- dnl the C/CXXFLAGS variable.
- ifelse(AC_LANG, [CPLUSPLUS],
- [CXXFLAGS="$ace_save_CXXFLAGS"],[CFLAGS="$ace_save_CFLAGS"])
- ],
- [
- dnl Add the found/cached thread flag to the C/CXXFLAGS variables
- ifelse(AC_LANG, [CPLUSPLUS],
- [CXXFLAGS="$CXXFLAGS $ace_cv_thread_flag_search"],
- [CFLAGS="$CFLAGS $ace_cv_thread_flag_search"])
-
- $2
- ],
- [
- $3
- ])
-])
-
-
-dnl Check if the compiler defines thread related preprocessor flags.
-dnl If not, then provide them.
-dnl Usage: ACE_CHECK_THREAD_CPPFLAGS
-AC_DEFUN(ACE_CHECK_THREAD_CPPFLAGS, dnl
-[
- dnl A compile-time test is used instead of a preprocessor-time test
- dnl because compiler thread flags defined in CFLAGS or CXXFLAGS
- dnl should be used for this test.
- AC_TRY_COMPILE(
- [
-#if !defined (_REENTRANT) && !defined (_THREAD_SAFE)
-#error Neither _REENTRANT nor _THREAD_SAFE were defined.
-THROW ME AN ERROR!
-#endif
- ],
- [
- int a = 0; a++;
- ],
- [
- ACE_THR_CPPFLAGS=
- ],
- [
- ACE_THR_CPPFLAGS="-D_REENTRANT -D_THREAD_SAFE"
- ])
-])
diff --git a/man/Makefile.am b/man/Makefile.am
deleted file mode 100644
index 73d99f4f6b2..00000000000
--- a/man/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile.am for the ACE documentation directory
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-## Build man3 before html directory!
-SUBDIRS = man3
diff --git a/man/man3/Makefile.am b/man/man3/Makefile.am
deleted file mode 100644
index 7717fa5db06..00000000000
--- a/man/man3/Makefile.am
+++ /dev/null
@@ -1,25 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile.am for the ACE `man3' man page directory
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-## The man page listing (man_MANS) is inserted by the `bootstrap'
-## script. Don't bother editing this list since it is automatically
-## generated.
-
-man_MANS =
-
-MAINTAINERCLEANFILES = $(man_MANS)
-
-EXTRA_DIST = $(man_MANS)
-
-
diff --git a/netsvcs/ACE-netsvcs.html b/netsvcs/ACE-netsvcs.html
deleted file mode 100644
index 262652c6a7d..00000000000
--- a/netsvcs/ACE-netsvcs.html
+++ /dev/null
@@ -1,879 +0,0 @@
-<!-- $Id$ -->
-<HTML>
-
-<HEAD>
-<TITLE>Overview of the ACE Network Services</TITLE>
-
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#ffffff">
-
-<HR>
-<H3>Overview of the ACE Network Services</H3>
-
-ACE provides a <A HREF=".">
-standard library</A> of network services:<P>
-
-<TABLE>
-<TD>
-<UL>
-<LI><A HREF="#name-overview">Naming Service</A>
-<LI><A HREF="#time-overview">Time Service</A>
-<LI><A HREF="#token-overview">Token Service</A>
-</UL>
-</TD>
-
-<TD>
-<UL>
-<LI><A HREF="#server-logging-overview">Server Logging Service</A>
-<LI><A HREF="#client-logging-overview">Client Logging Service</A>
-<LI><A HREF="#logging-strategy-overview">Logging Strategy Service</A>
-</UL>
-</TD>
-</TABLE>
-
-These services play two roles in ACE:<P>
-
-<UL>
-<LI> They provide reusable components for common distributed system
- tasks such as logging, naming, locking, and time synchronization.<P>
-<LI> They illustrate how to utilize ACE features such as the <A
- HREF="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#ipc">IPC
-wrappers</A>, <A HREF="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#reactor">Reactor</A>,
- <A HREF="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#config">Service Configurator</A>, <A
- HREF="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#initialize">Service
-Initialization</A>, and <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#concurrency">Concurrency</A>
-components. <P> </UL>
-
-The heart of the ACE network services is the <A
-HREF="http://www.cs.wustl.edu/~schmidt/ACE-papers.html#config">Service
-Configurator</A>, which is an object-oriented framework that automates
-the configuration and reconfiguration of multi-service daemons. All
-the ACE network services are configured using the Service
-Configurator. Please refer to the <A HREF="../ACE-INSTALL.html">online
-documentation</a> for more information on installing and testing the
-ACE network services.<P>
-
-<P><HR>
-<A NAME="name-overview">
-<H3> Overview of Naming Service</H3>
-
-A Naming Service associates names with values in a distributed
-system. Clients can query these values using these names as keys. Such
-a name-to-value association is called a <I> Name Binding </I>. Name
-bindings are defined relative to a <I> Naming Context </I>. A naming
-context is a collection that contains a set of name bindings in which
-each name is unique. Different names can be bound to the same value in
-the same or different naming contexts at the same time. There are
-three types of naming contexts: <P>
-
-<OL>
-<LI> Process Local Naming Context: Name bindings are accessible from
-processes with the same name running on the same host. <P>
-<LI> Node Local Naming Context: Name bindings are accessible from all
-processes running on the same host. <P>
-<LI> Network Local Naming Context: Name bindings are accessible from
-all processes running on any machine within a (sub)network. <P>
-</OL>
-
-<P>
-To bind a name is to create a name binding in a given context.
-Querying a value using a name determines the value associated with the
-name in a given context. Note that a name is always bound relative to
-a context. Thus, there are no absolute names. <P>
-
-The following are the key classes in the ACE Naming Service: <P>
-
-<UL>
-<LI> <B><TT> Class Naming_Context </TT></B> <P>
-
-This is the main class ``entry point'' into the Naming Service. It is
-used both by client processes and by server process. It manages access
-to the appropriate Name/Binding database (that is the file where
-Name/Bindings are stored) and it also manages the communication
-between a client process and the server (by using class Name_Proxy,
-which is a private member of Naming_Context). If a client process
-runs on the same host as the server no IPC is necessary because the
-Naming_Context uses shared memory. <P>
-
-<LI> <B><TT> Class Name_Acceptor </TT></B> <P>
-
-The Name_Acceptor allocates in its handle_input() routine a new
-instance of class Name_Handler on the heap, and accepts connections
-into this Name_Handler. <P>
-
-<LI> <B><TT> Class Name_Handler </TT></B> <P>
-
-The class Name_Handler represents the server side of communication
-between client and server. It interprets incoming requests to the
-Net_Local namespace and delegates the requests to its own
-Naming_Context (which is the Net_Local namespace on the current
-host). For communication it uses the helper classes Name_Request and
-Name_Reply.<P>
-
-<LI> <B> Dependencies </B> <P>
-
-The ACE Naming Service uses ACE_WString String classes since it must
-handle wide character strings in order to support
-internationalization. <P>
-</UL>
-
-The following describes how to configure the Name_Server server and
-client test applications. <P>
-
-<UL>
-<LI> <B> Startup configuration </B> <P>
-Configuring a Name_Server server or client requires specifying all or
-some of the following parameters. These parameters can be passed in to
-main through command line as follows:<P>
-
-<TABLE cellpadding = 10 cellspacing = 0 border = 5>
-<TD VALIGN = TOP ALIGN = LEFT>
-<B> Option </B>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-<B> Description </B>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-<B> Default value </B>
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--c &lt;naming context&gt; <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Naming Context to use. Can be either "PROC_LOCAL" or "NODE_LOCAL" or
-"NET_LOCAL" <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-PROC_LOCAL
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--h &lt;hostname&gt;
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Specify the server hostname (needed by Name Server clients for
-PROC_LOCAL naming context)
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-ACE_DEFAULT_SERVER_HOST
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--p &lt;nameserver port&gt; <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Port number where the server process expects requests <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-ACE_DEFAULT_SERVER_PORT
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--l &lt;namespace dir&gt; <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Directory that holds the NameBinding databases <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-ACE_DEFAULT_NAMESPACE_DIR
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--P &lt;process name&gt; <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Name of the client process
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-argv[0]
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--s &lt;database name&gt; <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Name of the database. NameBindings for the appropriate naming context
-are stored in file &lt;namespace_dir&gt;/&lt;database name&gt;.
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-<I> null </I>
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--d &lt;debug&gt;
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Turn debugging on/off
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-0 (off)
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--T &lt;trace&gt;
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Turn tracing on/off
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-0 (off)
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--v &lt;verbose&gt;
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Turn verbose on/off
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-0 (off)
-</TD>
-
-</TABLE>
-<P>
-
-<LI><B>Examples</B><P>
-<OL>
-<LI> Here is what a config file would look like for starting up a
-server at port 20222 using NET_LOCAL naming context with database
-called MYDATABSE located in directory /tmp:
-
-<PRE> <CODE>
-dynamic Naming_Service Service_Object *
- ../lib/netsvcs:_make_ACE_Name_Acceptor()
- "-p 20222 -c NET_LOCAL -l /tmp -s MYDATABASE"
-</PRE> </CODE>
-
-<LI> Here is what a config file would look like for starting up a
-client that connects to a Name Server running on host
-tango.cs.wustl.edu at port 20222:
-
-<PRE> <CODE>
-dynamic Naming_Service_Client Service_Object *
- ../lib/netsvcs:_make_Client_Test()
- "-h tango.cs.wustl.edu -p 20222"
-</PRE> </CODE>
-</OL>
-
-Note:<P>
-
-<UL>
-<LI> Values for parameters can also be passed in using environment
-variables. For example, instead of specifying absolute hostname or
-port numbers in the config file, we can use $HOST and $PORT,
-respectively, in the file (assuming that these environment variables
-have been set). <P>
-
-<LI> If the environment variable LD_LIBRARY_PATH (in the case of UNIX)
-or PATH (in the case of Win32) contains the path to the shared object
-files or dll, then the config file can be further simplified. Instead
-of specifying a path to the shared object or dll, only the name of the
-shared object or dll would suffice. That is, the Service Configurator
-makes use of LD_LIBRARY_PATH (on UNIX) or PATH (on Win32) to look for
-the shared object files or dlls.
-
-</UL>
-
-</UL>
-
-<P><HR><P>
-<A NAME="time-overview">
-<H3> Overview of Time Service</H3>
-
-Time Service provides accurate, fault-tolerant clock synchronization
-for computers collaborating in local area networks and wide area
-networks. Synchronized time services are important in distributed
-systems that require multiple hosts to maintain accurate global
-time. The architecture of the distributed time service contains the
-following Time Server, Clerk, and Client components: <P>
-
-<UL>
-<LI> <I> Time Server </I> answers queries about the time made by
-Clerks. <P>
-
-<LI> <I> Clerk </I> queries one or more Time Servers to determine
-the correct time, calculates the approximate correct time using one of
-several distributed time algorithms and updates its own local system
-time. <P>
-
-<LI> <I> Client </I> uses the global time information maintained by
-a Clerk to provide consistency with the notion of time used by clients
-on other hosts. <P>
-</UL>
-<P>
-The following are the key classes in the ACE Time Service: <P>
-
-<UL>
-<LI> <B><TT> Class TS_Server_Handler </TT></B> <P>
-
-TS_Server_Handler represents the server side of communication between
-clerk and server. It interprets incoming requests for time updates,
-gets the system time, creates a reply in response to the request and
-then sends the reply to the clerk from which it received the request.
-For communication it uses the helper class Time_Request.<P>
-
-<LI> <B><TT> Class TS_Server_Acceptor </TT></B> <P>
-
-TS_Server_Acceptor allocates in its handle_input routine a new instance
-of class TS_Server_Handler on the heap, and accepts connections into this
-TS_Server_Handler.<P>
-
-<LI> <B><TT> Class TS_Clerk_Handler </TT></B> <P>
-
-TS_Clerk_Handler represents the clerk side of communication between
-clerk and server. It generates requests for time updates every timeout
-period and then sends these requests to all the servers it is
-connected to asynchronously. It receives the replies to these requests
-from the servers through its handle_input method and then adjusts the
-time using the roundtrip estimate. It caches this time, which is
-subsequently retrieved by TS_Clerk_Processor.<P>
-
-<LI> <B><TT> Class TS_Clerk_Processor </TT></B> <P>
-
-TS_Clerk_Processor creates a new instance of TS_Clerk_Handler for
-every server connection it needs to create. It periodically calls
-send_request() of every TS_Clerk_Handler to send a request for time
-update to all the servers. In the process, it retrieves the latest
-time cached by each TS_Clerk_Handler and then uses it to compute its
-notion of the local system time.<P>
-
-<LI> <B> Algorithms </B> <P>
-
-Currently, updating the system time involves taking the average of all
-the times received from the servers.<P>
-</UL>
-
-The following is a description of how to configure the Time Server
-clerk and server services: <P>
-
-<UL>
-
-<LI> <B> Startup configuration </B> <P>
-
-Configuring a server requires specifying the port number of the
-server. This can be specified as a command line argument as follows: <P>
-
- -p &lt;port number&gt;
-
-<P>
-A clerk communicates with one or more server processes. To communicate
-with the server process, a client needs to know the INET_Addr, where
-the server offers its service. The configuration parameters namely the
-server port and server host are passed as command line arguments when
-starting up the clerk service as follows: <P>
-
- -h &lt;server host1&gt;:&lt;server port1&gt; -h &lt;server host2&gt;:&lt;server port2&gt; ...
-<P>
-Note that multiple servers can be specified in this manner for the
-clerk to connect to when it starts up. The server name and the port
-number need to be concatenated and separated by a ":". In addition,
-the timeout value can also be specified as a command line argument as
-follows:
-<P>
-
- -t timeout
-
-<P>
-The timeout value specifies the time interval at which the clerk
-should query the servers for time updates.
-<P>
-By default a Clerk does a non-blocking connect to a server. This can
-be overridden and a Clerk can be made to do a blocking connect by
-using the -b flag.
-<P>
-
-<LI> <B>Examples</B> <P>
-<OL>
-<LI> Here is what a config file would look like for starting up a
-server at port 20202:
-
-<PRE> <CODE>
-dynamic Time_Service Service_Object *
- ../lib/netsvcs:_make_ACE_TS_Server_Acceptor()
- "-p 20202"
-</PRE> </CODE>
-
-<LI> Here is what a config file would look like for starting up a
-clerk that needs to connect to two servers, one at tango and one at
-lambada:
-
-<PRE> <CODE>
-dynamic Time_Server_test Service_Object *
- ../lib/netsvcs:_make_ACE_TS_Clerk_Connector ()
- "-h tango:20202 -h lambada:20202 -t 4"
-</PRE> </CODE>
-</OL>
-
-Note:<P>
-<UL>
-<LI> These files would vary if the services are run on NT. For
-example, instead of using *.so, we would have to use *.dll.<P>
-<LI> Values for parameters can also be passed in using environment
-variables. For example, instead of specifying absolute hostname or
-port numbers in the config file, we can use $HOST and $PORT,
-respectively, in the file (assuming that these environment variables
-have been set). <P>
-<LI> If the environment variable LD_LIBRARY_PATH (in the case of UNIX)
-or PATH (in the case of Win32) contains the path to the shared object
-files or dll, then the config file can be further simplified. Instead
-of specifying a path to the shared object or dll, only the
-name of the shared object or dll would suffice. That is, the Service
-Configurator makes use of LD_LIBRARY_PATH (on UNIX) or PATH (on Win32)
-to look for the shared object files or dlls.
-</UL>
-<P>
-
-</UL>
-
-<P><HR><P>
-<H3><A NAME="token-overview">Token Service</A></H3>
-
-The ACE Token Service provides local and remote mutexes and
-readers/writer locks. For information regarding the deadlock
-detection algorithm, check out ACE_Token_Manager.h. For information
-about an implementation of the Composite Pattern for Tokens, check out
-Token_Collection.h. The classes which implement the local and remote
-synchronization primitives are listed below:<P>
-
-<UL>
- <LI> <B><TT>ACE_Local_Mutex</TT></B><P>
-
- This class is a more general-purpose synchronization mechanism
- than SunOS 5.x mutexes. For example, it implements "recursive
- mutex" semantics, where a thread that owns the token can
- reacquire it without deadlocking. In addition, threads that
- are blocked awaiting the token are serviced in strict FIFO
- order as other threads release the token (SunOS 5.x mutexes
- don't strictly enforce an acquisition order). Lastly,
- ACE_Local_Mutex performs deadlock detection on acquire
- calls.<p>
-
- <LI> <B><TT>ACE_Remote_Mutex</TT></B><P>
-
- This is the remote equivalent to ACE_Local_Mutex. The
- Remote_Mutex class offers methods for acquiring, renewing, and
- releasing a distributed synchronization mutex. Similar to
- ACE_Local_Mutex, ACE_Remote_Token_Proxy offers recursive
- acquisition, FIFO waiter ordering, and deadlock detection. It
- depends on the Token Server for its distributed synchronization
- semantics.<p>
-
- <LI> <B><TT>ACE_Local_RLock</TT></B><P>
-
- This class implements the reader interface to canonical
- readers/writer locks. Multiple readers can hold the lock
- simultaneously when no writers have the lock. Alternatively,
- when a writer holds the lock, no other participants (readers or
- writers) may hold the lock. This class is a more
- general-purpose synchronization mechanism than SunOS 5.x
- RLocks. For example, it implements "recursive RLock"
- semantics, where a thread that owns the token can reacquire it
- without deadlocking. In addition, threads that are blocked
- awaiting the token are serviced in strict FIFO order as other
- threads release the token (SunOS 5.x RLockes don't strictly
- enforce an acquisition order).<P>
-
- <LI> <B><TT>ACE_Local_WLock</TT></B><P>
-
- This class implements the writer interface to canonical
- readers/writer locks. Multiple readers can hold the lock
- simultaneously when no writers have the lock. Alternatively,
- when a writer holds the lock, no other participants (readers or
- writers) may hold the lock. This class is a more
- general-purpose synchronization mechanism than SunOS 5.x WLock.
- For example, it implements "recursive WLock" semantics, where a
- thread that owns the token can reacquire it without
- deadlocking. In addition, threads that are blocked awaiting
- the token are serviced in strict FIFO order as other threads
- release the token (SunOS 5.x WLocks don't strictly enforce an
- acquisition order).<P>
-
- <LI> <B><TT>ACE_Remote_RLock</TT></B><P>
-
- This is the remote equivalent to ACE_Local_RLock. Multiple
- readers can hold the lock simultaneously when no writers have
- the lock. Alternatively, when a writer holds the lock, no
- other participants (readers or writers) may hold the lock.
- ACE_Remote_RLock depends on the ACE Token Server for its
- distributed synchronization semantics.<P>
-
- <LI> <B><TT>ACE_Remote_RLock</TT></B><P>
-
- This is the remote equivalent to ACE_Local_WLock.<P>
-</UL>
-
-The Token Server provides distributed mutex and readers/writer lock
-semantics to the ACE Token library. ACE_Remote_Mutex,
-ACE_Remote_RLock, and ACE_Remote_WLock, are proxies to the Token
-Server. The following are the key classes in the ACE Token
-Server:<P>
-
-<UL>
- <LI> <B><TT>class Token_Acceptor</TT></B><P>
-
- The Token_Acceptor is a Token_Handler factory. It accepts
- connections and passes the service responsibilities off to a
- new Token_Handler.<p>
-
- <LI> <B><TT>class Token_Handler</TT></B><P>
-
- This class is the main class ``entry point'' of the ACE Token service. It
- receives token operation requests from remote clients and turns
- them into calls on local tokens (acquire, release, renew, and
- remove). In OMG CORBA terminology, it is an ``Object Adapter.'' It also
- schedules and handles timeouts that are used to support "timed
- waits." Clients used timed waits to bound the amount of time
- they block trying to get a token.<P>
-</UL>
-
-The following describes how to configure the Token Server:<P>
-<UL>
- <LI> <b>Startup configuration</B><P>
-
- The only parameter that the Token Server takes is a listen port
- number. You can specify a port number by passing a "-p
- <port_number>" to the application. This can be done via the
- svc.conf file.<P>
-
- <LI> <B>Examples </B><P>
-
- Here is an example svc.conf entry that dynamically loads the
- Token Server specifying port number to listen on for client
- connections:<P>
-
- <code><pre>
- dynamic Token_Service Service_Object *
- ../lib/netsvcs:_make_ACE_Token_Acceptor()
- "-p 10202"
- </code></pre>
- <P>
-
-</UL>
-Note:<P>
-<UL>
-<LI> These files would vary if the services are run on NT. For
-example, instead of using *.so, we would have to use *.dll.<P>
-<LI> Values for parameters can also be passed in using environment
-variables. For example, instead of specifying absolute hostname or
-port numbers in the config file, we can use $HOST and $PORT,
-respectively, in the file (assuming that these environment variables
-have been set). <P>
-<LI> If the environment variable LD_LIBRARY_PATH (in the case of UNIX)
-or PATH (in the case of Win32) contains the path to the shared object
-files or dll, then the config file can be further simplified. Instead
-of specifying a path to the shared object or dll, only the
-name of the shared object or dll would suffice. That is, the Service
-Configurator makes use of LD_LIBRARY_PATH (on UNIX) or PATH (on Win32)
-to look for the shared object files or dlls.
-</UL>
-
-
-<P><HR><P>
-<A NAME="server-logging-overview">
-<H3>Overview of Server Logging Service</H3>
-
-The Server Logging Service provides a concurrent, multi-service daemon
-that processes logging records received from one or more client hosts
-simultaneously. The object-oriented design of the Server Logging
-Service is decomposed into several modular components that perform
-well-defined tasks. <P>
-
-The following are the key classes in the Server Logging Service: <P>
-<UL>
-<LI> <B> <TT> Server_Logging_Handler </TT> </B> <P>
-The Server_Logging_Handler class is a parameterized type that is
-responsible for processing logging records sent to the Server from
-participating client hosts. When logging records arrive from the
-client host associated with a particular Logging Handler object, the
-handle_input() method of the Server_Logging_Handler class is called
-which in turn formats and displays the records on one or more output
-devices (such as the printer, persistent storage, and/or console
-devices. <P>
-
-<LI> <B> <TT> Server_Logging_Acceptor </TT> </B> <P>
-The class Server_Logging_Acceptor allocates in its handle_input()
-routine a new instance of class Server_Logging_Handler on the heap,
-and accepts connections into this Server_Logging_Handler. <P>
-</UL>
-
-The following describes how to configure the Logging Server:<P>
-<UL>
- <LI> <b>Startup configuration</B><P>
-
- The only parameter that the Logging Server takes is a listen
- port number. You can specify a port number by passing a "-p
- <port_number>" to the application. This can be done via the
- svc.conf file.<P>
-
- <LI> <B>Examples </B><P>
-
- Here is an example svc.conf entry that dynamically loads the
- Logging Server specifying port number to listen on for client
- connections:<P>
-
- <PRE> <CODE>
- dynamic Server_Logging_Service Service_Object *
- ../lib/netsvcs:_make_ACE_Server_Logging_Acceptor()
- "-p 10202"
- </PRE></CODE>
- <P>
-</UL>
-Note:<P>
-<UL>
-<LI> These files would vary if the services are run on NT. For
-example, instead of using *.so, we would have to use *.dll.<P>
-<LI> Values for parameters can also be passed in using environment
-variables. For example, instead of specifying absolute hostname or
-port numbers in the config file, we can use $HOST and $PORT,
-respectively, in the file (assuming that these environment variables
-have been set). <P>
-<LI> If the environment variable LD_LIBRARY_PATH (in the case of UNIX)
-or PATH (in the case of Win32) contains the path to the shared object
-files or dll, then the config file can be further simplified. Instead
-of specifying a path to the shared object or dll, only the
-name of the shared object or dll would suffice. That is, the Service
-Configurator makes use of LD_LIBRARY_PATH (on UNIX) or PATH (on Win32)
-to look for the shared object files or dlls.
-</UL>
-
-<P><HR><P>
-<A NAME="client-logging-overview">
-<H3>Overview of Client Logging Service</H3>
-
-The Client Logging Service multiplexes messages recevied from
-different applications to the Server Logging Daemon running on a
-designated host in a network/internetwork.
-
-
-The following are the key classes in the Client Logging Service: <P>
-<UL>
-<LI> <B> <TT> Client_Logging_Handler </TT> </B> <P>
-The Client_Logging_Handler class is a parameterized type that is
-responsible for setting up a named pipe and using it to communicate
-with different user processes on the same host. Once logging records
-arrive from these processes, the handler reads these records in
-priority order, performs network-byte order conversions on
-multiple-header fields, and then transmits these records to the Server
-Logging daemon across the network. <P>
-
-<LI> <B> <TT> Client_Logging_Connector </TT> </B> <P>
-The class Client_Logging_Connector connects to the Server Logging
-daemon and then in its handle_input() routine it allocates a new
-instance of the Client_Logging_Handler on the heap. <P>
-</UL>
-
-The following describes how to configure the Logging Client:<P>
-<UL>
- <LI> <b>Startup configuration</B><P>
-
-Configuring a Logging Client requires specifying all or some of the
-following parameters. These parameters can be passed in to main
-through command line as follows:<P>
-
-<TABLE cellpadding = 10 cellspacing = 0 border = 5>
-<TD VALIGN = TOP ALIGN = LEFT>
-<B> Option </B>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-<B> Description </B>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-<B> Default value </B>
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--h &lt;hostname&gt; <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Hostname of the Server Logging Daemon <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-ACE_DEFAULT_SERVER_HOST
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--p &lt;port number&gt;
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Port number of the Server Logging Daemon <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-ACE_DEFAULT_LOGGING_SERVER_PORT
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
--p &lt;rendezvous key&gt;
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-Rendezvous key used to create named pipe
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
-ACE_DEFAULT_RENDEZVOUS
-</TD>
-</TABLE>
-<P>
-
- <LI> <B>Examples </B><P>
-
- Here is an example svc.conf entry that dynamically loads the
- Logging Client specifying host name and port number of the
- Logging Server: <P>
-
- <PRE> <CODE>
- dynamic Client_Logging_Service Service_Object *
- ../lib/netsvcs:_make_ACE_Client_Logging_Connector()
- "-h tango.cs.wustl.edu -p 10202"
- </PRE></CODE>
- <P>
-</UL>
-Note:<P>
-<UL>
-<LI> These files would vary if the services are run on NT. For
-example, instead of using *.so, we would have to use *.dll.<P>
-<LI> Values for parameters can also be passed in using environment
-variables. For example, instead of specifying absolute hostname or
-port numbers in the config file, we can use $HOST and $PORT,
-respectively, in the file (assuming that these environment variables
-have been set). <P>
-<LI> If the environment variable LD_LIBRARY_PATH (in the case of UNIX)
-or PATH (in the case of Win32) contains the path to the shared object
-files or dll, then the config file can be further simplified. Instead
-of specifying a path to the shared object or dll, only the
-name of the shared object or dll would suffice. That is, the Service
-Configurator makes use of LD_LIBRARY_PATH (on UNIX) or PATH (on Win32)
-to look for the shared object files or dlls.
-</UL>
-
-<P><HR><P>
-<A NAME="logging-strategy-overview">
-<H3> Overview of Logging Strategy Service</H3>
-
-The Logging Strategy Service can be used to control the output of all the
-network services. It can be invoked with certain flags that determine
-where the output of all the services should go. The Logging Strategy
-Service sets the flags in ACE_Log_Msg, which controls all the streams
-through macros such as ACE_DEBUG, ACE_ERROR, and ACE_ERROR_RETURN. If
-default behavior is required, the Logging Strategy Service need not be
-invoked or it can be invoked with no parameters. <P>
-
-The following describes how to configure the Logging Strategy
-Service:<p>
-
-<UL>
-<LI> <b>Startup configuration</B><P>
-
-Here are the command line arguments that can be given to the Logging
-Strategy Service: <P>
-
- -f &lt;flag1&gt;|&lt;flag2&gt;|&lt;flag3&gt; (etc...) <P>
-
- where a flag can be any of the following: <P>
-
-<TABLE cellpadding = 10 cellspacing = 0 border = 5>
-<TD VALIGN = TOP ALIGN = LEFT>
- <B> Flags </B>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
- <B> Description </B>
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
- STDERR <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
- Write messages to stderr. <BR>
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
- LOGGER <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
- Write messages to the local client logger deamon. <BR>
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
- OSTREAM <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
- Write messages to the ostream that gets created by specifying a
- filename (see below) <BR>
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
- VERBOSE <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
- Display messages in a verbose manner <BR>
-</TD>
-<TR>
-<TD VALIGN = TOP ALIGN = LEFT>
- SILENT <BR>
-</TD>
-<TD VALIGN = TOP ALIGN = LEFT>
- Do not print messages at all <BR>
-</TD>
-
-</TABLE>
-<P>
-
-Note: If more than one flag is specified, the flags need to be 'OR'ed
-as above syntax shows. Make sure there is no space in between the flag
-and '|'. <P>
-
- -s filename
- <P>
-
-If the OSTREAM flag is set, this can be used to specify the filename
-where the output should be directed. Note that if the OSTREAM flag is
-set and no filename is specified, ACE_DEFAULT_LOGFILE will be used to
-write the output to. <P>
-
-<LI> <B> Examples: </B> <P>
- Here is an example svc.conf entry that dynamically loads the
- Logging Strategy Service specifying that the output be sent
- to STDERR: <P>
-
- <PRE> <CODE>
- dynamic Logging_Strategy_Service Service_Object *
- ../lib/netsvcs:_make_ACE_Logging_Strategy()
- "-f STDERR"
- </PRE></CODE>
- <P>
-<OL>
-<LI> To direct output only to STDERR, specify command line arguments as: <P>
- "-f STDERR"
-<P>
-
-<LI> To direct output to both STDERR and a file called "mylog", specify
-command line arguments as: <P>
- "-f STDERR|OSTREAM -s mylog"
-</OL>
-Note:<P>
-<UL>
-<LI> These files would vary if the services are run on NT. For
-example, instead of using *.so, we would have to use *.dll.<P>
-<LI> Values for parameters can also be passed in using environment
-variables. For example, instead of specifying absolute hostname or
-port numbers in the config file, we can use $HOST and $PORT,
-respectively, in the file (assuming that these environment variables
-have been set). <P>
-<LI> If the environment variable LD_LIBRARY_PATH (in the case of UNIX)
-or PATH (in the case of Win32) contains the path to the shared object
-files or dll, then the config file can be further simplified. Instead
-of specifying a path to the shared object or dll, only the
-name of the shared object or dll would suffice. That is, the Service
-Configurator makes use of LD_LIBRARY_PATH (on UNIX) or PATH (on Win32)
-to look for the shared object files or dlls.
-</UL>
-</UL>
-
-<P><HR><P>
-Back to the <A HREF="http://www.cs.wustl.edu/~schmidt/ACE.html">
-ACE</A> home page.
-<!--#include virtual="/~schmidt/cgi-sig.html" -->
-</BODY>
-</HTML>
diff --git a/netsvcs/Makefile b/netsvcs/Makefile
deleted file mode 100644
index 61dd95dc35d..00000000000
--- a/netsvcs/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE network services
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-# lib must come first!
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Other,$(findstring Other,$(ACE_BUILD_COMPONENTS)))
-DIRS = lib \
- clients \
- servers
-endif # ! Other
-
-#----------------------------------------------------------------------------
-# 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/netsvcs/Makefile.am b/netsvcs/Makefile.am
deleted file mode 100644
index 72036c408fc..00000000000
--- a/netsvcs/Makefile.am
+++ /dev/null
@@ -1,16 +0,0 @@
-
-!ifndef CFLAGS
-CFLAGS=$(ACE_CFLAGS)
-!endif
-
-!ifndef CPPDIR
-CPPDIR=.
-!endif
-
-!ifndef LIBFILES
-LIBFILES= $(ACE_LIB)
-!endif
-
-!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor>
-!include <$(ACE_ROOT)\include\makeinclude\make_flags.bor>
-
diff --git a/netsvcs/Makefile.bor b/netsvcs/Makefile.bor
deleted file mode 100644
index a5babc67742..00000000000
--- a/netsvcs/Makefile.bor
+++ /dev/null
@@ -1,7 +0,0 @@
-#
-# Makefile for building the netsvcs
-#
-
-DIRS = lib clients servers
-
-!include <$(ACE_ROOT)\include\makeinclude\recurse.bor>
diff --git a/netsvcs/README b/netsvcs/README
deleted file mode 100644
index e9dff4c7dfc..00000000000
--- a/netsvcs/README
+++ /dev/null
@@ -1,20 +0,0 @@
-This directory contains the ACE network service implementations and
-sample driver programs for dynamically configuring them into client
-and server processes. The subdirectories include the following:
-
- . lib -- contains implementations of the ACE network services.
- These services include a logging service, a name service,
- a distributed locking service, and a distributed time service.
- These can be built as shared libraries (i.e., DLLs), which
- are then linked into applications either statically or
- dynamically.
-
- . servers -- contains the driver program that links the various
- services together, either statically or dynamically, to
- form complete server programs.
-
- . clients -- contains a number of test programs that illustrate
- how to write clients for the various ACE network services.
-
-Please see the ACE-netsvcs.html file for an overview of the various
-services.
diff --git a/netsvcs/build.bor b/netsvcs/build.bor
deleted file mode 100644
index 72036c408fc..00000000000
--- a/netsvcs/build.bor
+++ /dev/null
@@ -1,16 +0,0 @@
-
-!ifndef CFLAGS
-CFLAGS=$(ACE_CFLAGS)
-!endif
-
-!ifndef CPPDIR
-CPPDIR=.
-!endif
-
-!ifndef LIBFILES
-LIBFILES= $(ACE_LIB)
-!endif
-
-!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor>
-!include <$(ACE_ROOT)\include\makeinclude\make_flags.bor>
-
diff --git a/netsvcs/clients/Logger/Logger.dsw b/netsvcs/clients/Logger/Logger.dsw
deleted file mode 100644
index ff7e43384c9..00000000000
--- a/netsvcs/clients/Logger/Logger.dsw
+++ /dev/null
@@ -1,41 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "direct_logging"=.\direct_logging.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "indirect_logging"=.\indirect_logging.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/netsvcs/clients/Logger/Makefile b/netsvcs/clients/Logger/Makefile
deleted file mode 100644
index f413da3998f..00000000000
--- a/netsvcs/clients/Logger/Makefile
+++ /dev/null
@@ -1,140 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for client logging applications
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-LSRC = $(addsuffix .cpp,$(BIN))
-
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-
-BIN2 = direct_logging \
- indirect_logging
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Other,$(findstring Other,$(ACE_BUILD_COMPONENTS)))
- BIN = $(BIN2)
-endif # Other
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-# 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/direct_logging.o .obj/direct_logging.so .shobj/direct_logging.o .shobj/direct_logging.so: direct_logging.cpp \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/SOCK_Stream.h \
- $(ACE_ROOT)/ace/SOCK_IO.h \
- $(ACE_ROOT)/ace/SOCK.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(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/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-.obj/indirect_logging.o .obj/indirect_logging.so .shobj/indirect_logging.o .shobj/indirect_logging.so: indirect_logging.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/clients/Logger/Makefile.am b/netsvcs/clients/Logger/Makefile.am
deleted file mode 100644
index f8099722c3e..00000000000
--- a/netsvcs/clients/Logger/Makefile.am
+++ /dev/null
@@ -1,29 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for client logging applications
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-## LDFLAGS =
-## Libtool will automatically link against the "proper" library.
-## Do not change the "libACE.la." It is not a typographical error!
-LDADD = $(top_builddir)/ace/libACE.la
-
-noinst_PROGRAMS = \
- direct_logging \
- indirect_logging
-
-
-direct_logging_SOURCES = direct_logging.cpp
-
-indirect_logging_SOURCES = indirect_logging.cpp
diff --git a/netsvcs/clients/Logger/Makefile.bor b/netsvcs/clients/Logger/Makefile.bor
deleted file mode 100644
index e7fd9236428..00000000000
--- a/netsvcs/clients/Logger/Makefile.bor
+++ /dev/null
@@ -1,16 +0,0 @@
-
-NAMES = \
- direct_logging \
- indirect_logging
-
-OBJFILES=$(OBJDIR)\$(NAME).obj
-
-CFLAGS = $(ACE_CFLAGS)
-
-CPPDIR = .
-
-LIBFILES = $(ACE_LIB)
-
-!include <$(ACE_ROOT)\include\makeinclude\recurse.bor>
-!include <$(ACE_ROOT)\include\makeinclude\build_exe.bor>
-
diff --git a/netsvcs/clients/Logger/README b/netsvcs/clients/Logger/README
deleted file mode 100644
index 87e324ab0d8..00000000000
--- a/netsvcs/clients/Logger/README
+++ /dev/null
@@ -1,18 +0,0 @@
-This directory contains two sample logging applications that implement
-and test the ACE distributed logging service.
-
- . indirect_logging.cpp
-
- This program talks to the ACE Client Logging Daemon on
- the localhost, which forwards the messages to Server
- Logging Daemon. The Client Logging Daemon and Server
- Logging Daemon both must be started before you can run
- this test.
-
- . direct_logging.cpp
-
- This program talks directly to the Server Logging
- Daemon. The Server Logging Daemon must be started
- before you can run this test.
-
-To start these daemons, please check out the ../../servers/ directory.
diff --git a/netsvcs/clients/Logger/direct_logging.cpp b/netsvcs/clients/Logger/direct_logging.cpp
deleted file mode 100644
index 6b62c95edd9..00000000000
--- a/netsvcs/clients/Logger/direct_logging.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-// $Id$
-
-// This program sends logging records directly to the server, rather
-// than going through the client logging daemon.
-
-#include "ace/SOCK_Connector.h"
-#include "ace/Log_Record.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(Logger, direct_logging, "$Id$")
-
-static u_short LOGGER_PORT = ACE_DEFAULT_SERVER_PORT;
-static const char *const LOGGER_HOST = ACE_DEFAULT_SERVER_HOST;
-static const char *const DATA = "hello world\n";
-
-int
-main (int argc, char *argv[])
-{
- u_short logger_port = argc > 1 ? atoi (argv[1]) : LOGGER_PORT;
- const char *logger_host = argc > 2 ? argv[2] : LOGGER_HOST;
-
- ACE_SOCK_Stream logger;
- ACE_SOCK_Connector connector;
- ACE_INET_Addr addr (logger_port, logger_host);
- ACE_Log_Record log_record (LM_DEBUG,
- ACE_OS::time ((time_t *) 0),
- ACE_OS::getpid ());
-
- if (connector.connect (logger, addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), -1);
-
- log_record.msg_data (DATA);
- size_t len = log_record.length ();
- log_record.encode ();
-
- if (logger.send ((char *) &log_record, len) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send"), -1);
- else if (logger.close () == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "close"), -1);
- return 0;
-}
diff --git a/netsvcs/clients/Logger/direct_logging.dsp b/netsvcs/clients/Logger/direct_logging.dsp
deleted file mode 100644
index f3fcd6aa036..00000000000
--- a/netsvcs/clients/Logger/direct_logging.dsp
+++ /dev/null
@@ -1,94 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Direct Logging Client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=NETSVCS Direct Logging Client - 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 "direct_logging.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 "direct_logging.mak"\
- CFG="NETSVCS Direct Logging Client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Direct Logging Client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "NETSVCS Direct Logging Client - 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)" == "NETSVCS Direct Logging Client - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "NETSVCS Direct Logging Client - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "direct_l"
-# PROP BASE Intermediate_Dir "direct_l"
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Direct Logging Client - Win32 Release"
-# Name "NETSVCS Direct Logging Client - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\direct_logging.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/netsvcs/clients/Logger/indirect_logging.cpp b/netsvcs/clients/Logger/indirect_logging.cpp
deleted file mode 100644
index 1739f0a668f..00000000000
--- a/netsvcs/clients/Logger/indirect_logging.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// $Id$
-
-// This is a simple test that sends logging records to the Client
-// Logging Daemon running on the localhost. This daemon then forwards
-// them to the Server Logging Daemon. If there is no Server Logging
-// Daemon, the logging records will be written to stderr.
-
-#include "ace/OS.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(Logger, indirect_logging, "$Id$")
-
-int
-main (int argc, char *argv[])
-{
- const char *prog_name = argv[0];
- int iterations = argc < 2 ? 10 : ACE_OS::atoi (argv[1]);
- const char *logger_key = argc < 3 ? ACE_DEFAULT_LOGGER_KEY : argv[2];
-
- ACE_OS::srand ((u_int) ACE_OS::time (0));
-
- ACE_LOG_MSG->open (prog_name, ACE_Log_Msg::LOGGER,
- ACE_TEXT_CHAR_TO_TCHAR (logger_key));
-
- ACE_DEBUG ((LM_STARTUP, "starting up the test\n"));
-
- for (int i = 0; i < iterations; i++)
- {
- size_t priority = ACE_OS::rand () % int (LM_MAX);
- ACE_POW (priority);
- ACE_DEBUG ((ACE_Log_Priority (priority),
- "random message %d...\n",
- priority));
- }
-
- ACE_DEBUG ((LM_SHUTDOWN, "closing down the test\n"));
-
-#if defined (ACE_WIN32)
- // !!Important, Winsock is broken in that if you don't close
- // down the connection before exiting main, you'll lose data.
- // More over, your server might get "Access Violation" from
- // within Winsock functions.
-
- // Here we close down the connection to Logger by redirecting
- // the logging destination back to stderr.
- ACE_LOG_MSG->open (0, ACE_Log_Msg::STDERR, 0);
-#endif /* ACE_WIN32 */
-
- return 0;
-}
diff --git a/netsvcs/clients/Logger/indirect_logging.dsp b/netsvcs/clients/Logger/indirect_logging.dsp
deleted file mode 100644
index 4f2d955fe27..00000000000
--- a/netsvcs/clients/Logger/indirect_logging.dsp
+++ /dev/null
@@ -1,94 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Indirect Logging Client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=NETSVCS Indirect Logging Client - 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 "indirect_logging.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 "indirect_logging.mak"\
- CFG="NETSVCS Indirect Logging Client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Indirect Logging Client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "NETSVCS Indirect Logging Client - 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)" == "NETSVCS Indirect Logging Client - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 /libpath:"..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "NETSVCS Indirect Logging Client - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "indirect"
-# PROP BASE Intermediate_Dir "indirect"
-# 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 "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Indirect Logging Client - Win32 Release"
-# Name "NETSVCS Indirect Logging Client - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\indirect_logging.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/netsvcs/clients/Makefile b/netsvcs/clients/Makefile
deleted file mode 100644
index 00ad80fb15b..00000000000
--- a/netsvcs/clients/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the client programs that test the ACE network services
-#----------------------------------------------------------------------------
-
-DIRS = Logger \
- Naming \
- Tokens
-
-#----------------------------------------------------------------------------
-# 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/netsvcs/clients/Makefile.am b/netsvcs/clients/Makefile.am
deleted file mode 100644
index dcce3830dc8..00000000000
--- a/netsvcs/clients/Makefile.am
+++ /dev/null
@@ -1,18 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for the client programs that test the ACE network services
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-SUBDIRS = \
- Logger \
- Naming \
- Tokens
diff --git a/netsvcs/clients/Makefile.bor b/netsvcs/clients/Makefile.bor
deleted file mode 100644
index 629c17b423a..00000000000
--- a/netsvcs/clients/Makefile.bor
+++ /dev/null
@@ -1,3 +0,0 @@
-DIRS = Logger Naming Tokens
-
-!include <$(ACE_ROOT)\include\makeinclude\recurse.bor>
diff --git a/netsvcs/clients/Naming/Client/Client.dsw b/netsvcs/clients/Naming/Client/Client.dsw
deleted file mode 100644
index ce0f3f09d41..00000000000
--- a/netsvcs/clients/Naming/Client/Client.dsw
+++ /dev/null
@@ -1,44 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Client_Test"=.\Client_Test.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "main"=.\main.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name Client_Test
- End Project Dependency
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/netsvcs/clients/Naming/Client/Client_Test.cpp b/netsvcs/clients/Naming/Client/Client_Test.cpp
deleted file mode 100644
index 2df1e540275..00000000000
--- a/netsvcs/clients/Naming/Client/Client_Test.cpp
+++ /dev/null
@@ -1,647 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Service_Config.h"
-#include "ace/Naming_Context.h"
-#include "ace/Dynamic_Service.h"
-#include "ace/Thread_Manager.h"
-#include "Client_Test.h"
-
-ACE_RCSID(Client, Client_Test, "$Id$")
-
-class ACE_Svc_Export Client_Test : public ACE_Service_Object
-{
-public:
- Client_Test (void);
-
- int open (void);
- // Cache reactor and then register self with reactor
-
- int close (void);
- // Close things down and free up resources.
-
- virtual int handle_input (ACE_HANDLE handle);
- // Handle user entered commands
-
- virtual int init (int argc, char *argv[]);
- // Initialize name options and naming context when dynamically
- // linked.
-
- virtual int fini (void);
- // Close down the test when dynamically unlinked.
-
- void list_options (void);
- // Print name options
-
- int bind (const char *key,
- const char *value,
- const char *type = "");
- // Bind a key to a value
-
- int unbind (const char *key);
- // Unbind a name binding
-
- int rebind (const char *key,
- const char *value,
- const char *type = "");
- // Rebind a name binding
-
- int find (const char *key);
- // Find the value associated with a key
-
- int list_names (const char *pattern);
- // Find all names that match pattern
-
- int list_values (const char *pattern);
- // Find all values that match pattern
-
- int list_types (const char *pattern);
- // Find all types that match pattern
-
- int list_name_entries (const char *pattern);
- // Find all names that match pattern
-
- int list_value_entries (const char *pattern);
- // Find all values that match pattern
-
- int list_type_entries (const char *pattern);
- // Find all types that match pattern
-
-private:
- ACE_Name_Options *name_options_;
- // Name Options associated with the Naming Context
-
- void display_menu (void);
- // Display user menu
-
- int set_proc_local (void);
- // Set options to use PROC_LOCAL naming context
-
- int set_node_local (void);
- // Set options to use NODE_LOCAL naming context
-
- int set_host (const char *hostname, int port);
- // Set options to use NET_LOCAL naming context specifying host name
- // and port number
-
- int quit (void);
- // Gracefully exit
-};
-
-// The following Factory is used by the ACE_Service_Config and
-// svc.conf file to dynamically initialize the state of the client
-// test.
-
-ACE_SVC_FACTORY_DEFINE (Client_Test)
-
-// Get the instance of Name_Service using Dynamic_Service
-
-//inline Name_Service *
-//NAME_SERVICE (void)
-
-inline ACE_Naming_Context *
-NAMING_CONTEXT (void)
-{
- return ACE_Dynamic_Service<ACE_Naming_Context>::instance ("ACE_Naming_Context");
-}
-
-Client_Test::Client_Test (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "Client_Test::Client_Test\n"));
-}
-
-int
-Client_Test::init (int /* argc */,
- char * /* argv */ [])
-{
- ACE_DEBUG ((LM_DEBUG, "Client_Test::init\n"));
-
- // Cache the name options.
- this->name_options_ = NAMING_CONTEXT ()->name_options ();
- return this->open ();
-}
-
-int
-Client_Test::open (void)
-{
- this->display_menu ();
-
- if (ACE_Event_Handler::register_stdin_handler (this,
- ACE_Reactor::instance (),
- ACE_Thread_Manager::instance ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "register_stdin_handler"),
- -1);
- return 0;
-}
-
-
-int
-Client_Test::close (void)
-{
- // Deregister this handler with the ACE_Reactor.
- return ACE_Reactor::instance ()->remove_handler
- (ACE_STDIN,
- ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::READ_MASK);
-}
-
-int
-Client_Test::fini (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "Client_Test::fini\n"));
- return this->close ();
-}
-
-int
-Client_Test::handle_input (ACE_HANDLE)
-{
- char option[BUFSIZ];
- char buf1[BUFSIZ];
- char buf2[BUFSIZ];
- char buf3[BUFSIZ];
- char *temp_buf;
- int port;
- char input[1024];
-
- if (::scanf ("%s", option) <= 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p Try again!\n",
- "Client_Test::handle_input"),
- 0);
-
- int result = -1;
-
- switch (isupper (option[0]) ? tolower (option[0]) : option[0])
- {
- case 'p' :
- result = this->set_proc_local ();
- break;
- case 'n' :
- result = this->set_node_local ();
- break;
- case 'h' :
- if (::scanf ("%s %d", buf1, &port) <= 0)
- break;
- result = this->set_host (buf1, port);
- break;
- case 'b' :
- // get the input from stdin
- ACE_OS::fgets (input, sizeof input, stdin);
-
- // get the key
- if ((temp_buf = ACE_OS::strtok (input, " ")))
- {
- ACE_OS::strcpy (buf1, temp_buf);
-
- temp_buf = ACE_OS::strtok (0, " ");
-
- // get the value
- if (temp_buf)
- {
- ACE_OS::strcpy (buf2, temp_buf);
-
- temp_buf = ACE_OS::strtok (0, " ");
-
- // get the type (if entered).
- if (temp_buf)
- {
- ACE_OS::strcpy (buf3, temp_buf);
- result = this->bind (buf1, buf2, buf3);
- }
- else
- result = this->bind (buf1, buf2);
- }
- else
- ACE_ERROR ((LM_ERROR,
- "Bind Failed! Value not entered.\n"));
- }
- else
- ACE_ERROR ((LM_ERROR,
- "Bind Failed! Key and Value not entered.\n"));
- break;
- case 'u' :
- if (::scanf ("%s", buf1) <= 0)
- break;
- result = this->unbind (buf1);
- break;
- case 'r' :
- // get the input from stdin
- ACE_OS::fgets (input, sizeof input, stdin);
-
- temp_buf = ACE_OS::strtok (input, " ");
- // get the key
- if (temp_buf)
- {
- ACE_OS::strcpy (buf1, temp_buf);
-
- temp_buf = ACE_OS::strtok (0, " ");
-
- // get the value
- if (temp_buf)
- {
- ACE_OS::strcpy (buf2, temp_buf);
-
- temp_buf = ACE_OS::strtok (0, " ");
- // get the type (if entered)
- if (temp_buf)
- {
- ACE_OS::strcpy (buf3, temp_buf);
- result = this->rebind (buf1, buf2, buf3);
- }
- else
- result = this->rebind (buf1, buf2);
- }
- else
- ACE_ERROR ((LM_ERROR,
- "Rebind Failed! Value not entered.\n"));
- }
- else
- ACE_ERROR ((LM_ERROR,
- "Reind Failed! Key and value not entered.\n"));
- break;
- case 'f' :
- if (::scanf ("%s", buf1) <= 0)
- break;
- result = this->find (buf1);
- break;
- case 'j' :
- if (::scanf ("%s", buf1) <= 0)
- break;
- else
- result = this->list_names (buf1);
- break;
- case 'k' :
- if (::scanf ("%s", buf1) <= 0)
- break;
- else
- result = this->list_values (buf1);
- break;
- case 'l' :
- if (::scanf ("%s", buf1) <= 0)
- break;
- else
- result = this->list_types (buf1);
- break;
- case 'c' :
- if (::scanf ("%s", buf1) <= 0)
- break;
- else
- result = this->list_name_entries (buf1);
- break;
- case 'd' :
- if (::scanf ("%s", buf1) <= 0)
- break;
- else
- result = this->list_value_entries (buf1);
- break;
- case 'e' :
- if (::scanf ("%s", buf1) <= 0)
- break;
- else
- result = this->list_type_entries (buf1);
- break;
- case 'q' :
- result = this->quit ();
- break;
- default :
- ACE_DEBUG ((LM_DEBUG,
- "Unrecognized command.\n"));
- }
-
- this->display_menu ();
- return result;
-}
-
-void
-Client_Test::display_menu (void)
-{
- ACE_DEBUG ((LM_DEBUG, "\n"));
- this->list_options ();
- ACE_DEBUG ((LM_DEBUG, " Name Service Main Menu\n"));
- ACE_DEBUG ((LM_DEBUG, " ----------------------\n"));
- ACE_DEBUG ((LM_DEBUG, "<P> Use Process Local Database\n"));
- ACE_DEBUG ((LM_DEBUG, "<N> Use Node Local Database\n"));;
- ACE_DEBUG ((LM_DEBUG, "<H> Set Remote Name server <host> and <port>\n\n"));
- ACE_DEBUG ((LM_DEBUG, "<B> Bind <key> <value> [<type>]\n"));
- ACE_DEBUG ((LM_DEBUG, "<U> Unbind <key>\n"));
- ACE_DEBUG ((LM_DEBUG, "<R> Rebind <key> <value> [<type>]\n"));
- ACE_DEBUG ((LM_DEBUG, "<F> Find <key>\n"));
- ACE_DEBUG ((LM_DEBUG, "<J> Lookup keys matching <pattern>\n"));
- ACE_DEBUG ((LM_DEBUG, "<K> Lookup values matching <pattern>\n"));
- ACE_DEBUG ((LM_DEBUG, "<L> Lookup types matching <pattern>\n"));
- ACE_DEBUG ((LM_DEBUG, "<C> Complete lookup keys matching <pattern>\n"));
- ACE_DEBUG ((LM_DEBUG, "<D> Complete lookup values matching <pattern>\n"));
- ACE_DEBUG ((LM_DEBUG, "<E> Complete lookup types matching <pattern>\n"));
-
- ACE_DEBUG ((LM_DEBUG, "<Q> or ^C (exit)\n"));
-}
-
-void
-Client_Test::list_options (void)
-{
- switch (this->name_options_->context ())
- {
- case ACE_Naming_Context::PROC_LOCAL:
- ACE_DEBUG ((LM_DEBUG,
- " *** Using Process Local Database\n"));
- break;
- case ACE_Naming_Context::NODE_LOCAL:
- ACE_DEBUG ((LM_DEBUG,
- " *** Using Node Local Database\n"));
- break;
- case ACE_Naming_Context::NET_LOCAL:
- ACE_DEBUG ((LM_DEBUG,
- " *** Hostname: %s\n",
- this->name_options_->nameserver_host ()));
- ACE_DEBUG ((LM_DEBUG,
- " *** Port Number: %d\n",
- this->name_options_->nameserver_port ()));
- break;
- default:
- assert (!"shouldn't occur!\n");
- /* NOTREACHED */
- }
- ACE_DEBUG ((LM_DEBUG,
- " *** Namespace directory is %s ***\n",
- this->name_options_->namespace_dir ()));
-}
-
-int
-Client_Test::set_proc_local (void)
-{
- // Close down original name space
- NAMING_CONTEXT ()->close ();
- this->name_options_->nameserver_host ("localhost");
- this->name_options_->context (ACE_Naming_Context::PROC_LOCAL);
- return NAMING_CONTEXT ()->open (ACE_Naming_Context::PROC_LOCAL);
-}
-
-int
-Client_Test::set_node_local (void)
-{
- // Close down original name space
- NAMING_CONTEXT ()->close ();
- this->name_options_->nameserver_host ("localhost");
- this->name_options_->context (ACE_Naming_Context::NODE_LOCAL);
- return NAMING_CONTEXT ()->open (ACE_Naming_Context::NODE_LOCAL);
-}
-
-int
-Client_Test::set_host (const char *hostname, int port)
-{
- // Close down original name space
- NAMING_CONTEXT ()->close ();
-
- this->name_options_->context (ACE_Naming_Context::NET_LOCAL);
- // Set Name Options
- this->name_options_->nameserver_host (hostname);
- this->name_options_->nameserver_port (port);
-
- return NAMING_CONTEXT ()->open (ACE_Naming_Context::NET_LOCAL);
-}
-
-int
-Client_Test::quit (void)
-{
- // Send ourselves a SIGINT!
- return ACE_OS::kill (ACE_OS::getpid (), SIGINT);
-}
-
-int
-Client_Test::bind (const char *key,
- const char *value,
- const char *type)
-{
- if (NAMING_CONTEXT ()->bind (key, value, type) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p Bind failed! Key %s exists\n",
- "Client_Test::bind",
- key),
- 0);
- return 0;
-}
-
-int
-Client_Test::unbind (const char *key)
-{
- if (NAMING_CONTEXT ()->unbind (key) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p Unbind failed! Key %s not found\n",
- "Client_Test::unbind",
- key),
- 0);
- return 0;
-}
-
-int
-Client_Test::rebind (const char *key,
- const char *value,
- const char *type)
-{
- int result = NAMING_CONTEXT ()->rebind (key, value, type );
- return result == 1 ? 0 : result;
-}
-
-int
-Client_Test::list_names (const char *pattern)
-{
- ACE_PWSTRING_SET set;
-
- if (NAMING_CONTEXT ()->list_names (set, pattern) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p Pattern matching failed!\n",
- "Client_Test::list_names"),
- 0);
- else
- {
- ACE_PWSTRING_ITERATOR set_iterator (set);
-
- for (ACE_WString *name = 0;
- set_iterator.next (name) !=0;
- set_iterator.advance())
- ACE_DEBUG ((LM_DEBUG,
- "%s\n",
- name->char_rep ()));
- }
- return 0;
-}
-
-int
-Client_Test::list_values (const char *pattern)
-{
- ACE_PWSTRING_SET set;
-
- if (NAMING_CONTEXT ()->list_values (set, pattern) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p Pattern matching failed!\n",
- "Client_Test::list_values"),
- 0);
- else
- {
- ACE_PWSTRING_ITERATOR set_iterator (set);
-
- for (ACE_WString *value = 0;
- set_iterator.next (value) !=0;
- set_iterator.advance())
- ACE_DEBUG ((LM_DEBUG,
- "%s\n",
- value->char_rep ()));
- }
- return 0;
-}
-
-int
-Client_Test::list_types (const char *pattern)
-{
- ACE_PWSTRING_SET set;
-
- if (NAMING_CONTEXT ()->list_types (set, pattern) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p Pattern matching failed!\n",
- "Client_Test::list_types"),
- 0);
- else
- {
- ACE_PWSTRING_ITERATOR set_iterator (set);
-
- for (ACE_WString *type = 0;
- set_iterator.next (type) !=0;
- set_iterator.advance())
- ACE_DEBUG ((LM_DEBUG,
- "%s\n",
- type->char_rep ()));
- }
- return 0;
-}
-
-int
-Client_Test::list_name_entries (const char *pattern)
-{
- ACE_BINDING_SET set;
-
- if (NAMING_CONTEXT ()->list_name_entries (set, pattern) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p Pattern matching failed!\n",
- "Client_Test::list_names"),
- 0);
- else
- {
- ACE_BINDING_ITERATOR set_iterator (set);
-
- for (ACE_Name_Binding *entry = 0;
- set_iterator.next (entry) !=0;
- set_iterator.advance())
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s\t",
- entry->name_.char_rep ()));
- ACE_DEBUG ((LM_DEBUG,
- "%s\t",
- entry->value_.char_rep ()));
- if (entry->type_)
- ACE_DEBUG ((LM_DEBUG,
- "%s\n",
- entry->type_));
- }
- }
- return 0;
-}
-
-int
-Client_Test::list_value_entries (const char *pattern)
-{
- ACE_BINDING_SET set;
-
- if (NAMING_CONTEXT ()->list_value_entries (set, pattern) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p Pattern matching failed!\n",
- "Client_Test::list_values"),
- 0);
- else
- {
- ACE_BINDING_ITERATOR set_iterator (set);
- for (ACE_Name_Binding *entry = 0;
- set_iterator.next (entry) !=0;
- set_iterator.advance())
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s\t",
- entry->name_.char_rep ()));
- ACE_DEBUG ((LM_DEBUG,
- "%s\t",
- entry->value_.char_rep ()));
- if (entry->type_)
- ACE_DEBUG ((LM_DEBUG,
- "%s\n",
- entry->type_));
- }
- }
- return 0;
-}
-
-int
-Client_Test::list_type_entries (const char *pattern)
-{
- ACE_BINDING_SET set;
-
- if (NAMING_CONTEXT ()->list_type_entries (set, pattern) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p Pattern matching failed!\n",
- "Client_Test::list_types"),
- 0);
- else
- {
- ACE_BINDING_ITERATOR set_iterator (set);
-
- for (ACE_Name_Binding *entry = 0;
- set_iterator.next (entry) !=0;
- set_iterator.advance())
- {
- ACE_DEBUG ((LM_DEBUG,
- "%s\t",
- entry->name_.char_rep ()));
- ACE_DEBUG ((LM_DEBUG,
- "%s\t",
- entry->value_.char_rep ()));
- ACE_DEBUG ((LM_DEBUG,
- "%s\n",
- entry->type_));
- }
- }
- return 0;
-}
-
-int
-Client_Test::find (const char *key)
-{
- char *value = 0;
- char *type = 0;
-
- if (NAMING_CONTEXT ()->resolve (key, value, type) != 0)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p Find failed! Key %s not found\n",
- "Client_Test::list_find",
- key),
- 0);
- else
- {
- ACE_DEBUG ((LM_DEBUG,
- "Binding for %s : value = %s\ttype = %s\n",
- key,
- value,
- type));
- if (type)
- delete [] type;
- return 0;
- }
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Dynamic_Service<ACE_Naming_Context>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Dynamic_Service<ACE_Naming_Context>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/netsvcs/clients/Naming/Client/Client_Test.dsp b/netsvcs/clients/Naming/Client/Client_Test.dsp
deleted file mode 100644
index 6cdc92d791c..00000000000
--- a/netsvcs/clients/Naming/Client/Client_Test.dsp
+++ /dev/null
@@ -1,97 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Naming Client DLL" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=NETSVCS Naming Client DLL - 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 "Client_Test.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 "Client_Test.mak" CFG="NETSVCS Naming Client DLL - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Naming Client DLL - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "NETSVCS Naming Client DLL - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "NETSVCS Naming Client DLL - 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 /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\...." /I "..\..\..\..\\" /D "NDEBUG" /D "_WINDOWS" /D "WIN32" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# 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:windows /dll /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:windows /dll /machine:I386 /out:"..\..\..\..\bin\Client_Test.dll" /libpath:"..\..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "NETSVCS Naming Client DLL - 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 /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 "_DEBUG" /D "WIN32" /FD /c
-# SUBTRACT CPP /YX
-# 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 /out:"..\..\..\..\bin\Client_Testd.dll" /pdbtype:sept /libpath:"..\..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Naming Client DLL - Win32 Release"
-# Name "NETSVCS Naming Client DLL - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\Client_Test.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/netsvcs/clients/Naming/Client/Client_Test.h b/netsvcs/clients/Naming/Client/Client_Test.h
deleted file mode 100644
index 36ac6a097ea..00000000000
--- a/netsvcs/clients/Naming/Client/Client_Test.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-// Define the external Client_Test interface.
-
-ACE_SVC_FACTORY_DECLARE (Client_Test)
diff --git a/netsvcs/clients/Naming/Client/Makefile b/netsvcs/clients/Naming/Client/Makefile
deleted file mode 100644
index f294841feba..00000000000
--- a/netsvcs/clients/Naming/Client/Makefile
+++ /dev/null
@@ -1,329 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE client-side Name_Server test
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-FILES = Client_Test
-
-PSRC = $(addsuffix .cpp,$(BIN))
-OBJ = $(SRC:%.cpp=$(VDIR)%.o)
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(LSRC:%.cpp=$(VDIR)%.o)
-SHOBJ = $(addsuffix .$(SOEXT),$(FILES))
-
-BIN2 = main
-LIB2 = libClient_Test.a
-SHLIB2 = libClient_Test.$(SOEXT)
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Other,$(findstring Other,$(ACE_BUILD_COMPONENTS)))
- BIN = $(BIN2)
- LIB = $(LIB2)
- SHLIB = $(SHLIB2)
-endif # Other
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-ifneq ($(BIN),)
- ifeq ($(SHLIB), $(findstring $(SHLIB), $(BUILD)))
- $(BIN): $(SHLIB)
- endif
- ifeq ($(LIB), $(findstring $(LIB), $(BUILD)))
- $(BIN): $(LIB)
- endif
-endif # BIN
-
-#----------------------------------------------------------------------------
-# 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/Client_Test.o .obj/Client_Test.so .shobj/Client_Test.o .shobj/Client_Test.so: Client_Test.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Naming_Context.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Name_Proxy.h \
- $(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 \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Name_Request_Reply.h \
- $(ACE_ROOT)/ace/Name_Space.h \
- $(ACE_ROOT)/ace/Dynamic_Service.h \
- $(ACE_ROOT)/ace/Dynamic_Service_Base.h \
- $(ACE_ROOT)/ace/Dynamic_Service.i \
- $(ACE_ROOT)/ace/Dynamic_Service.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- Client_Test.h
-
-.obj/main.o .obj/main.so .shobj/main.o .shobj/main.so: main.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Naming_Context.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Name_Proxy.h \
- $(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 \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Name_Request_Reply.h \
- $(ACE_ROOT)/ace/Name_Space.h \
- $(ACE_ROOT)/ace/ARGV.h \
- $(ACE_ROOT)/ace/ARGV.i \
- Client_Test.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/clients/Naming/Client/Makefile.am b/netsvcs/clients/Naming/Client/Makefile.am
deleted file mode 100644
index b4a397b58d8..00000000000
--- a/netsvcs/clients/Naming/Client/Makefile.am
+++ /dev/null
@@ -1,36 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for the client programs that test the ACE network services
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-noinst_LIBRARIES = libClient_Test.a
-
-libClient_Test_a_SOURCES = Client_Test.cpp Client_Test.h
-
-
-noinst_PROGRAMS = \
- main
-
-main_SOURCES = main.cpp
-main_LDADD = $(top_builddir)/netsvcs/clients/Naming/Client/libClient_Test.a \
- $(top_builddir)/ace/libACE.la
-
-noinst_DATA = svc.conf svc2.conf
-
-EXTRA_DIST = $(noinst_DATA)
-
-## Clean up template repositories, etc.
-clean-local:
- -rm -f *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core
- -rm -rf ptrepository Templates.DB gcctemp.c gcctemp so_locations
diff --git a/netsvcs/clients/Naming/Client/Makefile.bor b/netsvcs/clients/Naming/Client/Makefile.bor
deleted file mode 100644
index 9f7daeada25..00000000000
--- a/netsvcs/clients/Naming/Client/Makefile.bor
+++ /dev/null
@@ -1,8 +0,0 @@
-
-NAME = main
-OBJFILES = \
- $(OBJDIR)\main.obj \
- $(OBJDIR)\Client_Test.obj
-
-!include <$(ACE_ROOT)\netsvcs\build.bor>
-
diff --git a/netsvcs/clients/Naming/Client/README b/netsvcs/clients/Naming/Client/README
deleted file mode 100644
index 68e69b6b3bf..00000000000
--- a/netsvcs/clients/Naming/Client/README
+++ /dev/null
@@ -1,123 +0,0 @@
-This directory contains a test for the ACE_Name_Server library. This
-test program also illustrates how to use the ACE Service_Config
-mechanism, which enables the client code to be dynamically linked into
-the process at installation-time or run-time.
-
-The client test is an application that allows the user to vary the
-test parameters through the following menu driven interface:
-
- Name Service Main Menu
- ----------------------
- *** Using Process Local Database ***
-
-<P> Use Process Local Database
-<N> Use Node Local Database
-<H> Set Remote Name server <host> and <port>
-
-<B> Bind <key> <value> [<type>]
-<U> Unbind <key>
-<R> Rebind <key> <value> [<type>]
-<F> Find <key>
-<J> Lookup keys matching <pattern>
-<K> Lookup values matching <pattern>
-<L> Lookup types matching <pattern>
-<C> Complete lookup keys matching <pattern>
-<D> Complete lookup values matching <pattern>
-<E> Complete lookup types matching <pattern>
-
-<Q> or ^C (exit)
-
-Initially, the user can select the type of database -- process local,
-node local, or net local -- from the menu.
-
-<P> uses the process local database (i.e., the database is called the
- same name as the process and stored in /tmp).
-<N> uses the node local database (which defaults to /tmp/localnames).
-<H> uses the net local database by specifying host and port number (by
- default this is stored in a file called /tmp/globalnames on the server).
-
-The user can then create new bindings, delete existing bindings, or
-rebind bindings:
-
-<B> Bind <key> <value> [<type>]
- -- binds the key to the value and adds the
- binding to the database. Note that type
- information is optional.
-<U> Unbind <key> -- unbind a binding whose key is <key>
-<R> Rebind <key> <value> [<type>]
- -- rebind <key> to <value>. Once again <type> is optional.
-<F> Find <key> -- find the binding associated with key <key>
-<Q> or ^C (exit) -- exit gracefully, saving the contents of the
- Name Server in persistent shared memory.
-
-In addition, the user can do pattern matching for keys, values, and
-types. Note that pattern matching is supported using regular expressions.
-
-<J> Lookup keys matching <pattern>
- -- find all keys that match <pattern>
-<K> Lookup values matching <pattern>
- -- find all values that match <pattern>
-<L> Lookup types matching <pattern>
- -- find all types that match <pattern>
-
-<C> Complete lookup keys matching <pattern>
- -- find all bindings whose keys match <pattern>
-<D> Complete lookup values matching <pattern>
- -- find all bindings whose values match <pattern>
-<E> Complete lookup types matching <pattern>
- -- find all bindings whose types match <pattern>
-
--------------------------
-Running the tests:
-
-The test program uses a DLL supported by the svc.conf file, which
-allows them to configure the client-side dynamically. The client test
-program accomplishes this by making use of a Singleton proxy object
-(Name_Service) to provide an interface to the client-side.
-
-The test programs rely on svc.conf to provide the necessary parameters
-for dynamically linking the Name Service library and then
-executing. In the absence of svc.conf, the test programs would use
-static binding.
-
-client:
-
-The client test can be started without any parameters. However, if the
-user wants to use the net local database, the hostname and the port
-number of the server containing the net local database can be given at
-"command line" in the svc.conf file, e.g.:
-
-dynamic ACE_Naming_Context Service_Object * libACE.so:_make_ACE_Naming_Context ()
- "main -h tango.cs -p 7891"
-dynamic Name_Server_test Service_Object * .shobj/Client_Test.so:_make_Client_Test () ""
-
-The above example starts the client test application and sets up a
-connection to port 7891 to a Name Server running on tango.cs, which
-has the net local database. The Client_Test directive must come after
-ACE_Naming_Context since it relies on the ACE_Naming_Context having
-been dynamically linked.
-
-Note that you can also use environment variables in the "command
-line", as follows:
-
-dynamic ACE_Naming_Context Service_Object * libACE.so:_make_ACE_Naming_Context ()
- "main -s $DB -p $PORT -h tango"
-dynamic Name_Server_test Service_Object * .shobj/Client_Test.so:_make_Client_Test () ""
-
-In this example, $DB and $PORT are environment variables that are
-automatically interpreted and substituted by ACE. In addition, note
-how you can give a relative name for the libACE_svcs.so and ACE will
-locate this for you automatically by reading your LD search path.
-
-server:
-
-The name server is needed only in the case where the net local
-database needs to be accessed. The server test needs to run on the
-machine that contains the net local database. To execute the server
-test, the user has to specify the port number at which the server will
-be listening in the svc.conf file. An implementation of a name
-service for ACE is available in the $ACE_ROOT/netsvcs/{lib,servers}
-directories. Please see the README files there for an explanation of
-how to run the server.
-
-
diff --git a/netsvcs/clients/Naming/Client/main.cpp b/netsvcs/clients/Naming/Client/main.cpp
deleted file mode 100644
index 407b74e78b7..00000000000
--- a/netsvcs/clients/Naming/Client/main.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// $Id$
-
-// Test the client-side of the ACE Name Server...
-
-#include "ace/Service_Config.h"
-#include "ace/Naming_Context.h"
-#include "ace/ARGV.h"
-#include "ace/Log_Msg.h"
-
-#include "Client_Test.h"
-
-ACE_RCSID(Client, main, "$Id$")
-
-int
-main (int, char *argv[])
-{
- ACE_Service_Config daemon;
- ACE_ARGV new_args;
-
- // Load the existing <argv> into our new one.
- new_args.add (argv);
- // Enable loading of static services.
- new_args.add ("-y");
- // Enable debugging within dynamically linked services.
- new_args.add ("-d");
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("argc = %d\n"),
- ACE_TEXT (new_args.argc ())));
-
- // Print the contents of the combined <ACE_ARGV>.
- for (size_t i = 0; i < new_args.argc (); i++)
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%d) %s\n"),
- i,
- new_args.argv ()[i]));
-
- if (daemon.open (new_args.argc (),
- new_args.argv ()) == -1)
- {
- if (errno != ENOENT)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "open",
- 1));
- else // Use static binding.
- {
- ACE_ARGV args;
-
- args.add (argv[0]);
- args.add ("-p10011"); // Port number.
- ACE_Service_Object *so =
- ACE_SVC_INVOKE (ACE_Naming_Context);
-
- if (so->init (args.argc (),
- args.argv ()) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "ACE_Naming_Context",
- 1));
-
- so = ACE_SVC_INVOKE (Client_Test);
-
- if (so->init (0,
- args.argv ()) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "Client_Test",
- 1));
- }
- }
-
- // Run forever, performing the configured services until we are shut
- // down by a SIGINT/SIGQUIT signal.
-
- ACE_Reactor::run_event_loop ();
-
- return 0;
-}
diff --git a/netsvcs/clients/Naming/Client/main.dsp b/netsvcs/clients/Naming/Client/main.dsp
deleted file mode 100644
index 301c6cfea17..00000000000
--- a/netsvcs/clients/Naming/Client/main.dsp
+++ /dev/null
@@ -1,93 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Naming Client Test" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=NETSVCS Naming Client Test - 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 "main.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 "main.mak" CFG="NETSVCS Naming Client Test - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Naming Client Test - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "NETSVCS Naming Client Test - 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)" == "NETSVCS Naming Client Test - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "WIN32" /FD /c
-# SUBTRACT CPP /YX
-# 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 Client_Test.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "NETSVCS Naming Client Test - 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\\" /D "_CONSOLE" /D "_MBCS" /D "_DEBUG" /D "WIN32" /FD /c
-# SUBTRACT CPP /YX
-# 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 aced.lib Client_Testd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Naming Client Test - Win32 Release"
-# Name "NETSVCS Naming Client Test - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\main.cpp
-# End Source File
-# End Target
-# End Project
diff --git a/netsvcs/clients/Naming/Client/svc.conf b/netsvcs/clients/Naming/Client/svc.conf
deleted file mode 100644
index ba583b0d446..00000000000
--- a/netsvcs/clients/Naming/Client/svc.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-# Note that $PORT is an environment variable that is
-# automatically interpreted and substituted by ACE!
-# static ACE_Naming_Context "main -p $PORT -h tango"
-dynamic ACE_Naming_Context Service_Object * ACE:_make_ACE_Naming_Context () "main -p $PORT -h tango"
-dynamic Name_Server_test Service_Object * Client_Test:_make_Client_Test ()
-# Note: Client_Test must come after ACE_Naming_Context since it relies
-# on the ACE_Naming_Context having been linked...
diff --git a/netsvcs/clients/Naming/Client/svc2.conf b/netsvcs/clients/Naming/Client/svc2.conf
deleted file mode 100644
index 44a276a4a44..00000000000
--- a/netsvcs/clients/Naming/Client/svc2.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-# Note that $DB and $PORT are environment variables that are
-# automatically interpreted and substituted by ACE! In addition, note
-# how you can give a relative name for the libACE_svcs.so and ACE will
-# locate this for you automatically by reading your LD search path!
-dynamic ACE_Naming_Context Service_Object * ACE:_make_ACE_Naming_Context () "main -s $DB"
-dynamic ACE_Naming_Context2 Service_Object * ACE:_make_ACE_Naming_Context () "main -s $DB"
-dynamic Name_Server_test Service_Object * Client_Test:_make_Client_Test ()
-# Note: Client_Test must come after ACE_Naming_Context since it relies
-# on the ACE_Naming_Context having been dynamically linked.
diff --git a/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp b/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp
deleted file mode 100644
index fec5e9967f0..00000000000
--- a/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp
+++ /dev/null
@@ -1,461 +0,0 @@
-// $Id$
-
-#include "ace/Service_Config.h"
-#include "ace/Read_Buffer.h"
-#include "ace/Thread_Manager.h"
-#include "ace/streams.h" /* Because dump () uses ofstream. */
-#include "Dump_Restore.h"
-
-ACE_RCSID(Dump_Restore, Dump_Restore, "$Id$")
-
-Dump_Restore::Dump_Restore (int argc, char *argv[])
- : infile_ (0)
-{
- ACE_NEW (this->ns_context_,
- ACE_Naming_Context);
-
- // Cache the name options
- this->name_options_ = this->ns_context_->name_options ();
- this->name_options_->parse_args (argc, argv);
-
- //determine name context
- if (ACE_OS::strcmp (this->name_options_->nameserver_host (),
- "localhost") == 0)
- {
- if (ns_context_->open (ACE_Naming_Context::PROC_LOCAL) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "ns_context_->open"));
- }
- else
- {
- // Don't really need to do this but it's a hack to fix the
- // problme of Display () not printing the right hostname
- ACE_OS::strcpy (this->hostname_,
- this->name_options_->nameserver_host ());
- this->port_ =
- this->name_options_->nameserver_port ();
-
- if (this->ns_context_->open (ACE_Naming_Context::NET_LOCAL) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "ns_context_->open"));
- }
-
- this->display_menu ();
-
- if (ACE_Event_Handler::register_stdin_handler (this,
- ACE_Reactor::instance (),
- ACE_Thread_Manager::instance ()) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "register_stdin_handler"));
-}
-
-Dump_Restore::~Dump_Restore (void)
-{
- // Deregister this handler with the ACE_Reactor.
- ACE_Reactor::instance ()->remove_handler
- (ACE_STDIN,
- ACE_Event_Handler::DONT_CALL | ACE_Event_Handler::READ_MASK);
-
- ACE_OS::fclose (this->infile_);
-}
-
-int
-Dump_Restore::handle_input (ACE_HANDLE)
-{
- char option[BUFSIZ];
- char buf1[BUFSIZ];
- u_short port;
-
- if (::scanf ("%s", option) <= 0)
- {
- ACE_DEBUG ((LM_ERROR,
- "try again\n"));
- return 0;
- }
-
- switch (option[0])
- {
- case 'P' :
- case 'p' :
- set_proc_local ();
- break;
- case 'N' :
- case 'n' :
- set_node_local ();
- break;
- case 'H' :
- case 'h' :
- if (::scanf ("%s %hu", buf1, &port) <= 0)
- break;
- set_host (buf1, port);
- break;
- case 'F':
- case 'f':
- if (::scanf ("%s", filename_) <= 0)
- break;
- if (this->infile_)
- ACE_OS::fclose (this->infile_);
- this->infile_ = fopen(filename_,"r");
- break;
- case 'B' :
- case 'b' :
- populate (Dump_Restore::BIND);
- break;
- case 'U' :
- case 'u' :
- populate (Dump_Restore::UNBIND);
- break;
- case 'R' :
- case 'r' :
- populate (Dump_Restore::REBIND);
- break;
- case 'D':
- case 'd':
- if (::scanf ("%s", dump_filename_) <= 0)
- break;
- this->dump ();
- break;
- case 'Q' :
- case 'q' :
- quit ();
- break;
- default :
- ACE_DEBUG ((LM_DEBUG, "Unrecognized command.\n"));
- }
-
- display_menu ();
- return 0;
-}
-
-void
-Dump_Restore::display_menu (void)
-{
- ACE_DEBUG ((LM_DEBUG,
- "\n"));
- ACE_DEBUG ((LM_DEBUG,
- "Name Service Main Menu\n"));
- ACE_DEBUG ((LM_DEBUG,
- "----------------------\n"));
-
- // Check if using local name space or remote name space
- if (ACE_OS::strcmp (this->name_options_->nameserver_host (),
- "localhost") == 0)
- {
- if (this->ns_scope_ == ACE_Naming_Context::PROC_LOCAL)
- ACE_DEBUG ((LM_DEBUG,
- " *** Using Process Local Database ***\n\n"));
- else
- ACE_DEBUG ((LM_DEBUG,
- " *** Using Node Local Database ***\n\n"));
- }
- else
- {
- ACE_DEBUG ((LM_DEBUG,
- " Hostname: %s\n",
- this->hostname_));
- ACE_DEBUG ((LM_DEBUG,
- " Port Number: %d\n",
- this->port_));
- }
-
- if (this->infile_)
- ACE_DEBUG ((LM_DEBUG,
- "Input File: %s\n",
- this->filename_));
- else
- ACE_DEBUG ((LM_DEBUG,
- "** No Input File Specified **\n"));
-
- ACE_DEBUG ((LM_DEBUG,
- "<P> Use Process Local Database\n"));
- ACE_DEBUG ((LM_DEBUG,
- "<N> Use Node Local Database\n"));
- ACE_DEBUG ((LM_DEBUG,
- "<H> Set Remote Name server <host> and <port>\n"));
- ACE_DEBUG ((LM_DEBUG,
- "<F> Set Input File <file name>\n"));
- ACE_DEBUG ((LM_DEBUG,
- "<B> Bind\n"));
- ACE_DEBUG ((LM_DEBUG,
- "<U> Unbind\n"));
- ACE_DEBUG ((LM_DEBUG,
- "<R> Rebind\n"));
- ACE_DEBUG ((LM_DEBUG,
- "<D> Dump <file name>\n"));
- ACE_DEBUG ((LM_DEBUG,
- "<Q> or ^C (exit) \n"));
-}
-
-
-int
-Dump_Restore::set_proc_local (void)
-{
- // Set Name Options
- this->name_options_->nameserver_host ("localhost");
- this->name_options_->nameserver_port (0);
-
- // Set Naming Context scope
- this->ns_scope_ =
- ACE_Naming_Context::PROC_LOCAL;
-
- // Remove old naming context
- delete this->ns_context_;
-
- // Create new Naming Context
- ACE_NEW_RETURN (this->ns_context_,
- ACE_Naming_Context,
- -1);
-
- if (this->ns_context_->open (ACE_Naming_Context::PROC_LOCAL) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ns_context_->open"),
- -1);
-
- return 0;
-}
-
-int
-Dump_Restore::set_node_local (void)
-{
- // Set Name Options
- this->name_options_->nameserver_host ("localhost");
- this->name_options_->nameserver_port (0);
-
- // Set Naming Context scope
- this->ns_scope_ = ACE_Naming_Context::NODE_LOCAL;
-
- // Remove old naming context
- delete this->ns_context_;
-
- // Create new Naming Context
- ACE_NEW_RETURN (this->ns_context_,
- ACE_Naming_Context,
- -1);
-
- if (ns_context_->open (ACE_Naming_Context::NODE_LOCAL) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ns_context_->open"),
- -1);
- return 0;
-}
-
-int
-Dump_Restore::set_host (const char *hostname,
- int port)
-{
- // Set Name Options
- this->name_options_->nameserver_host (hostname);
- this->name_options_->nameserver_port (port);
-
- // Don't really need to do this but it's a hack to fix the problme
- // of Display () not printing the right hostname
- ACE_OS::strcpy (this->hostname_,
- hostname);
- this->port_ = port;
- this->ns_scope_ =
- ACE_Naming_Context::NET_LOCAL;
-
- // remove old naming context
- delete this->ns_context_;
-
- // Create new Naming Context
- ACE_NEW_RETURN (this->ns_context_,
- ACE_Naming_Context,
- -1);
-
- // assume net_local context
- if (ns_context_->open (ACE_Naming_Context::NET_LOCAL) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ns_context_->open"),
- -1);
- return 0;
-}
-
-int
-Dump_Restore::doit (Dump_Restore::Operation_Type op,
- const char *name,
- const char *value,
- const char *type)
-{
- int result = -1;
-
- switch (op)
- {
- case Dump_Restore::BIND:
- {
- result = this->bind (name, value, type);
- break;
- }
- case Dump_Restore::UNBIND:
- {
- result = this->unbind (name);
- break;
- }
- case Dump_Restore::REBIND:
- {
- result = this->rebind (name, value, type);
- break;
- }
- }
-
- return result;
-}
-
-int
-Dump_Restore::populate (Dump_Restore::Operation_Type op)
-{
- if (this->infile_)
- {
- int result = -1;
- enum State { NAME, VALUE, TYPE };
-
- State state = NAME;
- // reset file pointer
- ACE_OS::rewind (this->infile_);
-
- ACE_Allocator *allocator =
- ACE_Allocator::instance ();
- ACE_Read_Buffer read_buffer (this->infile_,
- 0,
- allocator);
-
- for (char *temp;
- (temp = read_buffer.read ('\n')) != 0;
- )
- {
- char *name = 0;
- const char *actual_name = 0;
- char *value = 0;
- const char *actual_value = 0;
- char *type = 0;
- const char *actual_type = 0;
-
- switch (state)
- {
- case NAME:
- name = temp;
- ACE_OS::strtok (name, "=");
- actual_name = ACE_OS::strtok (0, "=");
- state = VALUE;
- break;
- case VALUE:
- value = temp;
- ACE_OS::strtok (value, "=");
- actual_value = ACE_OS::strtok (0, "=");
- state = TYPE;
- break;
- case TYPE:
- type = temp;
- ACE_OS::strtok (type, "=");
- actual_type = ACE_OS::strtok (0, "=");
-
- if (actual_type)
- result = this->doit (op,
- actual_name,
- actual_value,
- actual_type);
- else
- result = this->doit (op,
- actual_name,
- actual_value);
- if (name)
- allocator->free(name);
- if (value)
- allocator->free(value);
- if (type)
- allocator->free(type);
- state = NAME;
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "populate"),
- -1);
- /* NOTREACHED */
- }
- }
-
- return result;
- }
- else
- return -1;
-}
-
-int
-Dump_Restore::bind (const char *key,
- const char *value,
- const char *type)
-{
- int result = ns_context_->bind (key,
- value,
- type);
- if (result == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ns_context_->bind"),
- -1);
- else if (result == 1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%s%s%s\n",
- "key <",
- key,
- "> already bound"),
- 1);
- return 0;
-}
-
-int
-Dump_Restore::unbind (const char *key)
-{
- int result = ns_context_->unbind (key);
-
- if (result == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ns_context_->unbind"),
- -1);
- return 0;
-}
-
-int
-Dump_Restore::rebind (const char *key,
- const char *value,
- const char *type)
-{
- if (ns_context_->rebind (key,
- value,
- type) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "ns_context_->rebind"),
- -1);
- return 0;
-}
-
-int
-Dump_Restore::quit (void)
-{
- return ACE_OS::kill (ACE_OS::getpid (), SIGINT);
-}
-
-void
-Dump_Restore::dump (void)
-{
- ofstream output_file (dump_filename_);
-
- ostream *orig_stream = ACE_Log_Msg::instance ()->msg_ostream ();
- ACE_Log_Msg::instance ()->msg_ostream (&output_file);
- ACE_Log_Msg::instance ()->clr_flags (ACE_Log_Msg::STDERR | ACE_Log_Msg::LOGGER );
- ACE_Log_Msg::instance ()->set_flags (ACE_Log_Msg::OSTREAM);
-
- ns_context_->dump ();
-
- ACE_Log_Msg::instance ()->msg_ostream (orig_stream);
- ACE_Log_Msg::instance ()->clr_flags (ACE_Log_Msg::STDERR);
-}
diff --git a/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h b/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h
deleted file mode 100644
index 741d7ec2f3a..00000000000
--- a/netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-#include "ace/Event_Handler.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Reactor.h"
-#include "ace/Naming_Context.h"
-
-class Dump_Restore : public ACE_Event_Handler
-{
-public:
- enum Operation_Type
- {
- BIND,
- UNBIND,
- REBIND
- };
- Dump_Restore (int argc, char *argv[]);
- // Initialize name options and naming context
-
- ~Dump_Restore (void);
-
- virtual int handle_input (ACE_HANDLE handle);
- // Handle user entered commands
-
- void dump (void);
-
-private:
- char hostname_[MAXHOSTNAMELEN + 1];
- // Cache the hostname and port number for remote case
-
- void display_menu (void);
- // Display user menu.
-
- int set_proc_local (void);
- // Set options to use PROC_LOCAL naming context.
-
- int set_node_local (void);
- // Set options to use NODE_LOCAL naming context.
-
- int set_host (const char *hostname,
- int port);
- // Set options to use NET_LOCAL naming context specifying host name
- // and port number.
-
- int quit (void);
- // Gracefully exit.
-
- int populate (Dump_Restore::Operation_Type op);
-
- int doit (Dump_Restore::Operation_Type op,
- const char *name,
- const char *value,
- const char *type = "");
- int bind (const char *key,
- const char *value,
- const char *type = "");
- int unbind (const char *key);
- int rebind (const char *key,
- const char *value,
- const char *type = "");
-
- char filename_[MAXPATHLEN + 1];
- char dump_filename_[MAXPATHLEN + 1];
-
- u_short port_;
- // port server is listening on
-
- ACE_Naming_Context *ns_context_;
- // Current naming context
-
- ACE_Naming_Context::Context_Scope_Type ns_scope_;
- // Defines the scope of the naming context
-
- FILE *infile_;
- // input file
-
- ACE_Name_Options *name_options_;
- // Name Options associated with the Naming Context
-};
diff --git a/netsvcs/clients/Naming/Dump_Restore/Makefile b/netsvcs/clients/Naming/Dump_Restore/Makefile
deleted file mode 100644
index c387a5bf503..00000000000
--- a/netsvcs/clients/Naming/Dump_Restore/Makefile
+++ /dev/null
@@ -1,340 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE Dump-Restore Name_Server utility
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-FILES = Dump_Restore
-
-PSRC = $(addsuffix .cpp,$(BIN))
-OBJ = $(SRC:%.cpp=$(VDIR)%.o)
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(LSRC:%.cpp=$(VDIR)%.o)
-SHOBJ = $(addsuffix .$(SOEXT),$(FILES))
-
-BIN2 = main
-LIB2 = libDump_Restore.a
-SHLIB2 = libDump_Restore.$(SOEXT)
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Other,$(findstring Other,$(ACE_BUILD_COMPONENTS)))
- BIN = $(BIN2)
- LIB = $(LIB2)
- SHLIB = $(SHLIB2)
-endif # Other
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-ifneq ($(BIN),)
- ifeq ($(SHLIB), $(findstring $(SHLIB), $(BUILD)))
- $(BIN): $(SHLIB)
- endif
- ifeq ($(LIB), $(findstring $(LIB), $(BUILD)))
- $(BIN): $(LIB)
- endif
-endif # BIN
-
-#----------------------------------------------------------------------------
-# 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/Dump_Restore.o .obj/Dump_Restore.so .shobj/Dump_Restore.o .shobj/Dump_Restore.so: Dump_Restore.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Read_Buffer.h \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Read_Buffer.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- Dump_Restore.h \
- $(ACE_ROOT)/ace/Naming_Context.h \
- $(ACE_ROOT)/ace/Name_Proxy.h \
- $(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 \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Name_Request_Reply.h \
- $(ACE_ROOT)/ace/Name_Space.h
-
-.obj/main.o .obj/main.so .shobj/main.o .shobj/main.so: main.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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 \
- Dump_Restore.h \
- $(ACE_ROOT)/ace/Naming_Context.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Name_Proxy.h \
- $(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 \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Name_Request_Reply.h \
- $(ACE_ROOT)/ace/Name_Space.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/clients/Naming/Dump_Restore/Makefile.am b/netsvcs/clients/Naming/Dump_Restore/Makefile.am
deleted file mode 100644
index 85703366ece..00000000000
--- a/netsvcs/clients/Naming/Dump_Restore/Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for the ACE Dump-Restore Name_Server utility
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-noinst_LIBRARIES = \
- libDump_Restore.a
-
-libDump_Restore_a_SOURCES = Dump_Restore.cpp Dump_Restore.h
-
-
-noinst_PROGRAMS = \
- main
-
-main_SOURCES = main.cpp
-main_LDADD = \
- $(top_builddir)/netsvcs/clients/Naming/Dump_Restore/libDump_Restore.a \
- $(top_builddir)/ace/libACE.la
-
-## ACE currently doesn't build this so we don't build it with automake either.
-EXTRA_DIST = createfile.cpp
-
diff --git a/netsvcs/clients/Naming/Dump_Restore/Makefile.bor b/netsvcs/clients/Naming/Dump_Restore/Makefile.bor
deleted file mode 100644
index 8bb56bf5f62..00000000000
--- a/netsvcs/clients/Naming/Dump_Restore/Makefile.bor
+++ /dev/null
@@ -1,8 +0,0 @@
-
-NAME = main
-OBJFILES = \
- $(OBJDIR)\main.obj \
- $(OBJDIR)\Dump_Restore.obj
-
-!include <$(ACE_ROOT)\netsvcs\build.bor>
-
diff --git a/netsvcs/clients/Naming/Dump_Restore/README b/netsvcs/clients/Naming/Dump_Restore/README
deleted file mode 100644
index 25b1243d03f..00000000000
--- a/netsvcs/clients/Naming/Dump_Restore/README
+++ /dev/null
@@ -1,66 +0,0 @@
-This file describes the usage of the Dump-Restore utility for the ACE
-Name Server.
-
-Similar to the test application provided in the ../Client/ directory,
-a simple ASCII menu-driven interface is provided to the user:
-
- Name Service Main Menu
- ----------------------
- *** Using Process Local Database ***
-
-** No Input File Specified **
-<P> Use Process Local Database
-<N> Use Node Local Database
-<H> Set Remote Name server <host> and <port>
-<F> Set Input File <file name>
-
-<B> Bind
-<U> Unbind
-<R> Rebind
-<D> Dump <file name>
-<Q> or ^C (exit)
-
-Initially, the user can select the type of database from the menu:
-
-<P> uses the process local database (i.e., the
- database is called the same name as the process
- and stored in /tmp).
-<N> uses the node local database (which defaults
- to /tmp/localnames).
-<H> uses the net local database by specifying host and port
- number (by default this is stored in a file called
- /tmp/globalnames on the server).
-<F> Sets the name of the input file that will be used by the
- test application to populate the database. The format of
- the file should be:
-
- name=<name1>
- value=<value1>
- type=[<type1>]
- name=<name2>
- value=<value2>
- type=[<type2>]
- .
- .
- .
-
- Note that the type field is optional. However, if no type
- information is associated with a name binding, a null entry still
- needs to be present (i.e., type=).
-
-Once the input file has been specified, the user can then do one of
-the following:
-
-<B> Bind -- bind all the bindings in the file to the database.
- This can be used to "restore" the state of the
- Name Server.
-<U> Unbind -- unbind all the bindings in the file from the database.
-<R> Rebind -- rebind all the bindings in the file to the database.
-<D> Dump <file name> -- dump the state of the database to <filename>.
-<Q> or ^C (exit) -- exit gracefully, saving the contents of the
- Name Server in persistent shared memory.
-
-Note that the dump file is stored in ASCII with exactly the same
-format as the input file. Also, one can easily change the test
-application so that a call to Dump results in the state of the
-database dumped to standard output instead of a file.
diff --git a/netsvcs/clients/Naming/Dump_Restore/createfile.cpp b/netsvcs/clients/Naming/Dump_Restore/createfile.cpp
deleted file mode 100644
index 25bf2fb803c..00000000000
--- a/netsvcs/clients/Naming/Dump_Restore/createfile.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// $Id$
-
-#include <stdio.h>
-#include <string.h>
-#include "ace/ACE.h"
-
-ACE_RCSID(Dump_Restore, createfile, "$Id$")
-
-int
-main (int argc, char **argv)
-{
- FILE *infile, *outfile;
- char buf[BUFSIZ];
-
- if ((infile = fopen (argv[1], "r")) == NULL)
- return -1;
-
- if ((outfile = fopen (argv[2], "w")) == NULL)
- return -1;
-
- int count = 0;
- while (::fgets (buf, BUFSIZ, infile))
- {
- buf[::strlen(buf) - 1] = '\0';
- fputs (buf, outfile);
- if (count % 2 == 0)
- fputs (" ", outfile);
- else
- fputs ("\n", outfile);
- count++;
- }
- fclose (outfile);
- fclose (infile);
-}
diff --git a/netsvcs/clients/Naming/Dump_Restore/main.cpp b/netsvcs/clients/Naming/Dump_Restore/main.cpp
deleted file mode 100644
index 4d90427edda..00000000000
--- a/netsvcs/clients/Naming/Dump_Restore/main.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// $Id$
-
-// Test the client-side of the ACE Name Server...
-
-#include "ace/Service_Config.h"
-#include "ace/Log_Msg.h"
-#include "Dump_Restore.h"
-
-ACE_RCSID(Dump_Restore, main, "$Id$")
-
-int
-main (int argc, char *argv[])
-{
- ACE_Service_Config daemon (argv[0]);
-
- ACE_DEBUG ((LM_DEBUG, "entering main\n"));
-
- // Get a handler
- Dump_Restore client_handler (argc, argv);
-
- ACE_Reactor::run_event_loop ();
-
- /* NOTREACHED */
- ACE_DEBUG ((LM_DEBUG, "leaving main\n"));
- return 0;
-}
diff --git a/netsvcs/clients/Naming/Makefile b/netsvcs/clients/Naming/Makefile
deleted file mode 100644
index 97bbaa2ef30..00000000000
--- a/netsvcs/clients/Naming/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Name Server test applications
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-INFO = README
-
-DIRS = Client \
- Dump_Restore
-
-#----------------------------------------------------------------------------
-# 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/netsvcs/clients/Naming/Makefile.am b/netsvcs/clients/Naming/Makefile.am
deleted file mode 100644
index 09924790da5..00000000000
--- a/netsvcs/clients/Naming/Makefile.am
+++ /dev/null
@@ -1,19 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for the Name Server test applications
-##
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-SUBDIRS = \
- Client \
- Dump_Restore
-
diff --git a/netsvcs/clients/Naming/Makefile.bor b/netsvcs/clients/Naming/Makefile.bor
deleted file mode 100644
index eedc62fae17..00000000000
--- a/netsvcs/clients/Naming/Makefile.bor
+++ /dev/null
@@ -1,3 +0,0 @@
-DIRS = Client Dump_Restore
-
-!include <$(ACE_ROOT)\include\makeinclude\recurse.bor>
diff --git a/netsvcs/clients/README b/netsvcs/clients/README
deleted file mode 100644
index d47c9bfe7ff..00000000000
--- a/netsvcs/clients/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This directory contains a number of test programs that illustrate how
-to write clients for the various ACE network services.
-
- . Logger -- client programs that illustrate the ACE logging service.
-
- . Naming -- client programs that illustrate the ACE name service.
-
- . Tokens -- client programs that illustrate the ACE token service.
diff --git a/netsvcs/clients/Tokens/Makefile b/netsvcs/clients/Tokens/Makefile
deleted file mode 100644
index 326abc62943..00000000000
--- a/netsvcs/clients/Tokens/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id: Makefile 1.1 10/18/96
-#
-# Makefile for the Token tests
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-DIRS = collection \
- deadlock \
- invariant \
- manual \
- mutex \
- rw_lock
-
-#----------------------------------------------------------------------------
-# 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/netsvcs/clients/Tokens/Makefile.am b/netsvcs/clients/Tokens/Makefile.am
deleted file mode 100644
index 0dc39ce47bd..00000000000
--- a/netsvcs/clients/Tokens/Makefile.am
+++ /dev/null
@@ -1,22 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for the Token tests
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-SUBDIRS = \
- collection \
- deadlock \
- invariant \
- manual \
- mutex \
- rw_lock
-
diff --git a/netsvcs/clients/Tokens/Makefile.bor b/netsvcs/clients/Tokens/Makefile.bor
deleted file mode 100644
index 6c410f583bd..00000000000
--- a/netsvcs/clients/Tokens/Makefile.bor
+++ /dev/null
@@ -1,3 +0,0 @@
-DIRS = collection deadlock invariant manual mutex rw_lock
-
-!include <$(ACE_ROOT)\include\makeinclude\recurse.bor>
diff --git a/netsvcs/clients/Tokens/README b/netsvcs/clients/Tokens/README
deleted file mode 100644
index 3b6313a1df7..00000000000
--- a/netsvcs/clients/Tokens/README
+++ /dev/null
@@ -1,34 +0,0 @@
-This directory contains a set of tests for the ACE Tokens library.
-
- . mutex
-
- Runs a few tests on ACE_Local_Mutex and
- ACE_Remote_Mutex. Tests recursive acquisition and
- global vs local proxies.
-
- . rw_locks
-
- App for testing ACE_Local_RLock, ACE_Local_WLock,
- ACE_Remote_RLock, and ACE_Remote_WLock.
-
- . deadlock
-
- Tests the deadlock detection algorithm of the token
- manager using ACE_Local_Mutex and ACE_Remote_Mutex.
-
- . collection
-
- Tests the ACE_Token_Collection utility. Uses local
- and remote tokens and readers/writer locks.
-
- . invariant
-
- Tests the token Invariant testing utilities. Yes,
- this tests a testing utility.
-
- . manual
-
- Gives users a text-based interactive interface to
- local or remote tokens. This is extremely useful for
- manually testing the token server and setting up
- deadlock scenarios.
diff --git a/netsvcs/clients/Tokens/collection/Makefile b/netsvcs/clients/Tokens/collection/Makefile
deleted file mode 100644
index e3289e1e2b3..00000000000
--- a/netsvcs/clients/Tokens/collection/Makefile
+++ /dev/null
@@ -1,206 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for repeating token client application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-FILES = collection
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(LSRC:%.cpp=$(VDIR)%.o)
-SHOBJ = $(addsuffix .so,$(FILES))
-
-BIN2 = collection
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Token,$(findstring Token,$(ACE_BUILD_COMPONENTS)))
- BIN = $(BIN2)
-endif # Token
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-# 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/collection.o .obj/collection.so .shobj/collection.o .shobj/collection.so: collection.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Local_Tokens.h \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Memory_Pool.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/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Local_Tokens.i \
- $(ACE_ROOT)/ace/Token_Collection.h \
- $(ACE_ROOT)/ace/Token_Collection.i \
- $(ACE_ROOT)/ace/Remote_Tokens.h \
- $(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 \
- $(ACE_ROOT)/ace/Token_Request_Reply.h \
- $(ACE_ROOT)/ace/Token_Request_Reply.i \
- $(ACE_ROOT)/ace/Remote_Tokens.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(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 \
- $(ACE_ROOT)/ace/Thread_Manager.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/clients/Tokens/collection/Makefile.am b/netsvcs/clients/Tokens/collection/Makefile.am
deleted file mode 100644
index 99f4fba0ba7..00000000000
--- a/netsvcs/clients/Tokens/collection/Makefile.am
+++ /dev/null
@@ -1,23 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for repeating token client application
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-noinst_PROGRAMS = \
- collection
-
-collection_SOURCES = collection.cpp
-collection_LDADD = $(top_builddir)/netsvcs/lib/libnetsvcs.la \
- $(top_builddir)/ace/libACE.la
-
diff --git a/netsvcs/clients/Tokens/collection/Makefile.bor b/netsvcs/clients/Tokens/collection/Makefile.bor
deleted file mode 100644
index b16b11fef9b..00000000000
--- a/netsvcs/clients/Tokens/collection/Makefile.bor
+++ /dev/null
@@ -1,5 +0,0 @@
-
-NAME = collection
-OBJFILES = $(OBJDIR)\collection.obj
-!include <$(ACE_ROOT)\netsvcs\build.bor>
-
diff --git a/netsvcs/clients/Tokens/collection/README b/netsvcs/clients/Tokens/collection/README
deleted file mode 100644
index 4c25a1f729e..00000000000
--- a/netsvcs/clients/Tokens/collection/README
+++ /dev/null
@@ -1,25 +0,0 @@
-
-Shows how applications can use the ACE_Token_Collection utility. This
-example creates three collections and spawns a thread to operate on
-each. The threads use the collective acquire, renew, and release
-features of ACE_Token_Collection.
-
-Here are the command-line parameters for collection:
-
-./collection:
-[-h <remote host>]
-[-p <remote port>]
-[-n <iterations>]
-[-d debug]
-
-To run the collection locally with debugging info, type
-
-% ./collection -d
-
-To run the collection remotely with debugging info, first start a
-token server and the type:
-
-% ./collection -d -h <token-server-host> -p <token-server-port>
-
-The -n <iterations> option is to control how often each thread
-iterates on the acquire, renew, release cycle.
diff --git a/netsvcs/clients/Tokens/collection/collection.cpp b/netsvcs/clients/Tokens/collection/collection.cpp
deleted file mode 100644
index 822240f6a9f..00000000000
--- a/netsvcs/clients/Tokens/collection/collection.cpp
+++ /dev/null
@@ -1,211 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// collection.cpp
-//
-// = DESCRIPTION
-// Shows how applications can use the ACE_Token_Collection
-// utility. This example creates three collections and spawns a
-// thread to operate on each. The threads use the collective
-// acquire, renew, and release features of ACE_Token_Collection.
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
-
-#include "ace/OS.h"
-#include "ace/Get_Opt.h"
-#include "ace/Local_Tokens.h"
-#include "ace/Token_Collection.h"
-#include "ace/Remote_Tokens.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Service_Config.h"
-
-ACE_RCSID(collection, collection, "$Id$")
-
-#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-
-static const char *server_host = ACE_DEFAULT_SERVER_HOST;
-static int server_port = ACE_DEFAULT_SERVER_PORT;
-// unused: static int threads = 2;
-static int iterations = 50;
-static int debug = 0;
-static int remote = 0;
-// unused: static int tokens = 5;
-
-static void *
-run_thread (void *vp)
-{
- ACE_Token_Proxy *collection = (ACE_Token_Proxy *) vp;
-
- int count = iterations;
- while (count--)
- {
- if (collection->acquire () == -1)
- {
- if (ACE_OS::last_error () == EDEADLK)
- {
- ACE_DEBUG ((LM_DEBUG, "deadlock detected in acquire"));
- continue;
- }
- ACE_ERROR ((LM_ERROR, "(%t) %p acquire failed\n","run_thread"));
- return (void *) -1;
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) %s acquired.\n", collection->name ()));
-
- if (collection->renew () == -1)
- {
- if (ACE_OS::last_error () == EDEADLK)
- {
- ACE_DEBUG ((LM_DEBUG, "deadlock detected"));
- goto deadlock;
- }
- ACE_ERROR ((LM_ERROR, "(%t) %p renew failed\n","run_thread"));
- return (void *) -1;
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) %s renewed.\n", collection->name ()));
-
- deadlock:
- if (collection->release () == -1)
- {
- ACE_ERROR ((LM_ERROR, "(%t) %p release failed\n","run_thread"));
- return (void *) -1;
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) %s released.\n", collection->name ()));
- }
-
-
- ACE_DEBUG ((LM_DEBUG, "(%t) thread exiting.\n"));
- return 0;
-}
-
-static int
-parse_args (int argc, char *argv[])
-{
- ACE_LOG_MSG->open (argv[0], ACE_Log_Msg::STDERR); // | ACE_Log_Msg::VERBOSE);
-
- ACE_Get_Opt get_opt (argc, argv, "un:dp:h:", 1);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'h': // specify the host machine on which the server is running
- server_host = get_opt.optarg;
- remote = 1;
- break;
- case 'p': // specify the port on which the server is running
- server_port = ACE_OS::atoi (get_opt.optarg);
- remote = 1;
- break;
- case 'd':
- debug = 1;
- break;
- case 'n':
- iterations = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'u':
- // usage: fallthrough
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n:\n"
- "[-h <remote host>]\n"
- "[-p <remote port>]\n"
- "[-n <iterations>]\n"
- "[-d debug]\n", 1), -1);
- /* NOTREACHED */
- }
- }
-
- return 0;
-}
-
-int
-main (int argc, char* argv[])
-{
- if (parse_args (argc, argv) == -1)
- return -1;
-
- ACE_Token_Proxy *A; // Mutex *A*.
- ACE_Token_Proxy *B; // Mutex *B*.
- ACE_Token_Proxy *R; // *R*eader Lock.
- ACE_Token_Proxy *W; // *W*riter Lock.
-
- // Depending on the command line arguments, we will create local or
- // remote tokens. The names of the tokens are not important as long
- // as they are unique.
- if (remote)
- {
- ACE_Remote_Mutex::set_server_address (ACE_INET_Addr (server_port, server_host));
- A = new ACE_Remote_Mutex ("R Mutex A", 0, debug);
- B = new ACE_Remote_Mutex ("R Mutex B", 0, debug);
- R = new ACE_Remote_RLock ("R Reader Lock", 0, debug);
- W = new ACE_Remote_WLock ("R Writer Lock", 0, debug);
- }
- else
- {
- A = new ACE_Local_Mutex ("L Mutex A", 0, debug);
- B = new ACE_Local_Mutex ("L Mutex B", 0, debug);
- R = new ACE_Local_RLock ("L Reader Lock", 0, debug);
- W = new ACE_Local_WLock ("L Writer Lock", 0, debug);
- }
-
- // These collections will be treated as Tokens by the threads.
- ACE_Token_Collection collectionAR (debug, "A and Reader");
- ACE_Token_Collection collectionAW (debug, "A and Writer");
- ACE_Token_Collection collectionBR (debug, "B and Reader");
-
- // AR and BR can run concurrently. Neither AR or BR can run when AW
- // is running.
- collectionAR.insert (*A);
- collectionAR.insert (*R);
-
- collectionAW.insert (*A);
- collectionAW.insert (*W);
-
- collectionBR.insert (*B);
- collectionBR.insert (*R);
-
- // Spawn off three threads.
- ACE_Thread_Manager *mgr = ACE_Thread_Manager::instance ();
-
- if (mgr->spawn (ACE_THR_FUNC (run_thread),
- (void *) &collectionAR, THR_BOUND | THR_SUSPENDED) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "spawn 1 failed"), -1);
-
- if (mgr->spawn (ACE_THR_FUNC (run_thread),
- (void *) &collectionAW, THR_BOUND | THR_SUSPENDED) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "spawn 2 failed"), -1);
-
- if (mgr->spawn (ACE_THR_FUNC (run_thread),
- (void *) &collectionBR, THR_BOUND | THR_SUSPENDED) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "spawn 3 failed"), -1);
-
-#if ! defined (ACE_HAS_PTHREADS)
- if (mgr->resume_all () == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "resume failed"), -1);
-#endif
-
- // Wait for all threads to exit.
- mgr->wait ();
-
- return 0;
-}
-
-#else
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "threads not supported on this platform\n"), -1);
-}
-#endif /* ACE_HAS_THREADS && ACE_HAS_TOKENS_LIBRARY */
diff --git a/netsvcs/clients/Tokens/collection/collection.dsp b/netsvcs/clients/Tokens/collection/collection.dsp
deleted file mode 100644
index f705352f712..00000000000
--- a/netsvcs/clients/Tokens/collection/collection.dsp
+++ /dev/null
@@ -1,109 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Token Collection Client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=NETSVCS Token Collection Client - 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 "collection.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 "collection.mak"\
- CFG="NETSVCS Token Collection Client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Token Collection Client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "NETSVCS Token Collection Client - 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)" == "NETSVCS Token Collection Client - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 /libpath:"..\..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "NETSVCS Token Collection Client - 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /Fr /YX
-# 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 aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Token Collection Client - Win32 Release"
-# Name "NETSVCS Token Collection Client - Win32 Debug"
-# Begin Group "Source"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\collection.cpp
-
-!IF "$(CFG)" == "NETSVCS Token Collection Client - Win32 Release"
-
-# ADD CPP /MD
-
-!ELSEIF "$(CFG)" == "NETSVCS Token Collection Client - Win32 Debug"
-
-# ADD CPP /MDd
-
-!ENDIF
-
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/netsvcs/clients/Tokens/collection/collection.dsw b/netsvcs/clients/Tokens/collection/collection.dsw
deleted file mode 100644
index 0906f2cfd33..00000000000
--- a/netsvcs/clients/Tokens/collection/collection.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "collection"=.\collection.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/netsvcs/clients/Tokens/collection/rw_locks.cpp b/netsvcs/clients/Tokens/collection/rw_locks.cpp
deleted file mode 100644
index e48f0e5db0d..00000000000
--- a/netsvcs/clients/Tokens/collection/rw_locks.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-// $Id$
-
-#include "ace/OS.h"
-#include "ace/Get_Opt.h"
-#include "ace/Local_Tokens.h"
-#include "ace/Remote_Tokens.h"
-#include "ace/Thread_Manager.h"
-
-#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-
-ACE_RCSID(collection, rw_locks, "$Id$")
-
-static ACE_Token_Proxy *global_rlock;
-static ACE_Token_Proxy *global_wlock;
-
-static char *server_host = ACE_DEFAULT_SERVER_HOST;
-static int server_port = ACE_DEFAULT_SERVER_PORT;
-static int ignore_deadlock = 0;
-static int threads = 2;
-static int iterations = 50;
-static int debug = 0;
-static int remote = 0;
-static int reads = 4;
-static int write_sleep = 0;
-
-static void *
-run_thread (void *vp)
-{
- for (int x = 0; x < iterations; x++)
- {
- int y = 0;
- for (; y < reads; y++)
- {
- if (global_rlock->acquire () == -1)
- {
- if (ACE_Log_Msg::instance ()->errnum () == EDEADLK)
- {
- ACE_DEBUG ((LM_DEBUG, "rlock deadlock detected\n"));
- goto READ_DEADLOCK;
- }
- else return 0;
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) rlock acquired.\n"));
- }
-
- READ_DEADLOCK:
-
- for (; y > 0; y--)
- {
- if (global_rlock->release () == 0)
- ACE_DEBUG ((LM_DEBUG, "(%t) r-released.\n"));
- }
-
- if (global_wlock->acquire () == -1)
- {
- ACE_DEBUG ((LM_DEBUG, "wlock deadlock detected\n"));
- }
- else
- {
- if (write_sleep)
- ACE_OS::sleep (1);
- ACE_DEBUG ((LM_DEBUG, "\t\t(%t) wlock acquired.\n"));
- if (global_wlock->release () == 0)
- ACE_DEBUG ((LM_DEBUG, "\t\t(%t) w-released.\n"));
- }
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) thread exiting.\n"));
- return 0;
-}
-
-static int
-parse_args (int argc, char *argv[])
-{
- ACE_LOG_MSG->open (argv[0], ACE_Log_Msg::STDERR); // | ACE_Log_Msg::VERBOSE);
-
- ACE_Get_Opt get_opt (argc, argv, "t:iun:drR:sp:h:", 1);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'h': // specify the host machine on which the server is running
- server_host = get_opt.optarg;
- break;
- case 'p': // specify the port on which the server is running
- server_port = ACE_OS::atoi (get_opt.optarg);
- break;
- case 't':
- threads = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'R':
- reads = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'd':
- debug = 1;
- break;
- case 'r':
- remote = 1;
- break;
- case 's':
- write_sleep = 1;
- break;
- case 'n':
- iterations = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'i':
- ignore_deadlock = 1;
- break;
- case 'u':
- // usage: fallthrough
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n:\n"
- "[-i ignore deadlock]\n"
- "[-n <iterations>]\n"
- "[-R <reads>]\n"
- "[-r use remote locks]\n"
- "[-d debug]\n"
- "[-s sleep during writes]\n"
- "[-t <threads>\n", 1), -1);
- break;
- }
- }
-
- return 0;
-}
-
-int
-main (int argc, char* argv[])
-{
- if (parse_args (argc, argv) == -1)
- return -1;
-
- if (remote)
- {
- ACE_Remote_Mutex::set_server_address (ACE_INET_Addr (server_port, server_host));
- global_rlock = (ACE_Token_Proxy *) new
- ACE_Remote_RLock ("THE_TOKEN", ignore_deadlock, debug);
- global_wlock = (ACE_Token_Proxy *) new
- ACE_Remote_WLock ("THE_TOKEN", ignore_deadlock, debug);
- }
- else
- {
- global_rlock = (ACE_Token_Proxy *) new
- ACE_Local_RLock ("THE_TOKEN", ignore_deadlock, debug);
- global_wlock = (ACE_Token_Proxy *) new
- ACE_Local_WLock ("THE_TOKEN", ignore_deadlock, debug);
- }
-
- ACE_Thread_Manager mgr;
-
- if (mgr.spawn_n (threads, ACE_THR_FUNC (run_thread),
- (void *) 0,
- THR_BOUND | THR_SUSPENDED) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "spawn failed"), -1);
-
- if (mgr.resume_all () == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "resume failed"), -1);
-
- mgr.wait ();
-
- return 0;
-}
-
-#else
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "threads not supported on this platform\n"), -1);
-}
-#endif /* ACE_HAS_THREADS */
diff --git a/netsvcs/clients/Tokens/deadlock/Makefile b/netsvcs/clients/Tokens/deadlock/Makefile
deleted file mode 100644
index f030b5ea3d3..00000000000
--- a/netsvcs/clients/Tokens/deadlock/Makefile
+++ /dev/null
@@ -1,207 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for repeating token client application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-FILES = deadlock_detection_test
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(LSRC:%.cpp=$(VDIR)%.o)
-SHOBJ = $(addsuffix .so,$(FILES))
-
-BIN2 = deadlock_detection_test
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Token,$(findstring Token,$(ACE_BUILD_COMPONENTS)))
- BIN = $(BIN2)
-endif # Token
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-# 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/deadlock_detection_test.o .obj/deadlock_detection_test.so .shobj/deadlock_detection_test.o .shobj/deadlock_detection_test.so: deadlock_detection_test.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Token_Manager.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.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/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Local_Tokens.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Local_Tokens.i \
- $(ACE_ROOT)/ace/Token_Manager.i \
- $(ACE_ROOT)/ace/Remote_Tokens.h \
- $(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 \
- $(ACE_ROOT)/ace/Token_Request_Reply.h \
- $(ACE_ROOT)/ace/Token_Request_Reply.i \
- $(ACE_ROOT)/ace/Remote_Tokens.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Token_Invariants.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/clients/Tokens/deadlock/Makefile.am b/netsvcs/clients/Tokens/deadlock/Makefile.am
deleted file mode 100644
index 0b50b13195d..00000000000
--- a/netsvcs/clients/Tokens/deadlock/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for repeating token client application
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-noinst_PROGRAMS = \
- deadlock_detection_test
-
-deadlock_detection_test_SOURCES = deadlock_detection_test.cpp
-deadlock_detection_test_LDADD = \
- $(top_builddir)/netsvcs/lib/libnetsvcs.la \
- $(top_builddir)/ace/libACE.la
-
diff --git a/netsvcs/clients/Tokens/deadlock/Makefile.bor b/netsvcs/clients/Tokens/deadlock/Makefile.bor
deleted file mode 100644
index 112a766ff2a..00000000000
--- a/netsvcs/clients/Tokens/deadlock/Makefile.bor
+++ /dev/null
@@ -1,5 +0,0 @@
-
-NAME = deadlock_detection_test
-OBJFILES=$(OBJDIR)\$(NAME).obj
-!include <$(ACE_ROOT)\netsvcs\build.bor>
-
diff --git a/netsvcs/clients/Tokens/deadlock/README b/netsvcs/clients/Tokens/deadlock/README
deleted file mode 100644
index 74fffde05cd..00000000000
--- a/netsvcs/clients/Tokens/deadlock/README
+++ /dev/null
@@ -1,98 +0,0 @@
-
-deadlock_detection_test
-
-This example contains two deadlock tests, mutex and rwlock tests.
-% ./deadlock_detection_test -u
-./deadlock_detection_test:
-[-r test readers/writer locks]
-[-n <iterations>]
-[-h <remote host>]
-[-p <remote port>]
-[-i ignore deadlock]
-
-For both mutex and rwlock tests, -h and -p specify to use remote
-mutexes. -i specifies to ignore deadlock. -n is repetitions through
-the respective algorithms (default 100). Both tests also use Token
-Invariants to ensure correctness of the mutexes and readers/writer
-locks.
-
-------------------------------------------------------------
-
-If you run ./deadlock_detection_test without -r, then the following
-mutex test is run.
-
-The mutex test spawns two threads which attempt to deadlock.
-Logically, there are two tokens A and B. Here is what both threads
-try to do:
-
-Thread 1 Thread 2
--------- --------
-Repeat 100 times Repeat 100 times
- acquire A acquire B
- acquire B acquire A
- release A and B release A and B
-repeat repeat
-
-Notice that A and B are reversed in 1 and 2. If the token manager
-(which is not in the public interface, but hidden behind
-ACE_Local_Mutex) works properly, they should detect the deadlock. If
-a thread detects deadlock, the resources held are released, and it
-starts the whole process over again.
-
-What can be confusing about the test program is all the other tricks
-I'm pulling to test other aspects of the library. For instance, I'm
-using both "global" and "local" ACE_Local_Mutexes. This is to test
-the ability to have multiple threads using one token proxy as well as
-multiple threads each using their own proxies. All the while, the
-same logical token is being used. If this doesn't make sense, don't
-worry about it. Just use the ACE_Local_Mutex any way you want.
-
-Another confusing trick is that I'm testing recursive acquisition.
-(Two acquires in a row.) I have to make sure that the token manager
-doesn't detect a recursive acquire as deadlock.
-
-To run a test, simply type:
-% ./deadlock_detection_test
-
-This should run 100 times through the above pseudo code. If the
-application halts, then we have trouble. It should never ever halt.
-I've included a little flag with the ACE_Local_Mutex class to allow
-deadlock detection to be ignored. So, if you run the test as follows,
-deadlock detection will be ignored.
-
-% ./deadlock_detection_test -i
-
-In this case, the application should only run about a second before
-deadlock occurs and the application halts. This is good.
-
-------------------------------------------------------------
-
-If you run ./deadlock_detection_test *with* -r, then the following
-rwlock test is run:
-
-There are four tokens and four threads in the rwlock test. The
-readers/writer tokens are:
-
-reader first
-writer first 1
-writer first 2
-writer first 3
-
-There are three reader threads that only acquire reader locks on the
-above tokens. Each of the reader threads first acquire "reader first"
-and then one "writer first <tid>" (where <tid> is the corresponding
-thread's id). So reader thread 1 acquires "reader first" and then
-"writer first 1".
-
-There is a single writer thread that uses the following algorithm:
-
-repeat 100
- acquire "writer first 1"
- acquire "reader first"
- acquire "writer first 2"
- acquire "reader first"
- acquire "writer first 3"
- acquire "reader first"
-
-This strange mix of readers and writer create an interesting graph of
-tokens that the deadlock detection algorithm must traverse.
diff --git a/netsvcs/clients/Tokens/deadlock/deadlock.dsp b/netsvcs/clients/Tokens/deadlock/deadlock.dsp
deleted file mode 100644
index 29b18c0ffc9..00000000000
--- a/netsvcs/clients/Tokens/deadlock/deadlock.dsp
+++ /dev/null
@@ -1,112 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Token Deadlock Client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=NETSVCS Token Deadlock Client - 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 "deadlock.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 "deadlock.mak"\
- CFG="NETSVCS Token Deadlock Client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Token Deadlock Client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "NETSVCS Token Deadlock Client - 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)" == "NETSVCS Token Deadlock Client - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 /libpath:"..\..\..\..\ace"
-# SUBTRACT LINK32 /incremental:yes
-
-!ELSEIF "$(CFG)" == "NETSVCS Token Deadlock Client - 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 aced.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Token Deadlock Client - Win32 Release"
-# Name "NETSVCS Token Deadlock Client - Win32 Debug"
-# Begin Group "Source"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\deadlock_detection_test.cpp
-
-!IF "$(CFG)" == "NETSVCS Token Deadlock Client - Win32 Release"
-
-# ADD CPP /MD
-# SUBTRACT CPP /YX
-
-!ELSEIF "$(CFG)" == "NETSVCS Token Deadlock Client - Win32 Debug"
-
-# ADD CPP /MDd
-# SUBTRACT CPP /YX
-
-!ENDIF
-
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/netsvcs/clients/Tokens/deadlock/deadlock.dsw b/netsvcs/clients/Tokens/deadlock/deadlock.dsw
deleted file mode 100644
index 3ed309c0974..00000000000
--- a/netsvcs/clients/Tokens/deadlock/deadlock.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "deadlock"=.\deadlock.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp b/netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp
deleted file mode 100644
index 9b4c12b77e1..00000000000
--- a/netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp
+++ /dev/null
@@ -1,341 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// deadlock_detection_test.cpp
-//
-// = DESCRIPTION
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
-
-#include "ace/OS.h"
-#include "ace/Token_Manager.h"
-#include "ace/Remote_Tokens.h"
-#include "ace/Thread.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Get_Opt.h"
-#include "ace/Token_Invariants.h"
-
-#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-
-ACE_RCSID(deadlock, deadlock_detection_test, "$Id$")
-
-typedef ACE_Token_Invariant_Manager ACE_TOKEN_INVARIANTS;
-
-static ACE_Token_Proxy *global_mutex;
-
-struct Two_Tokens
-{
-public:
- Two_Tokens (ACE_Thread_Manager *tm): thr_mgr_ (tm) {}
- ACE_Token_Proxy *first_;
- ACE_Token_Proxy *second_;
- ACE_Thread_Manager *thr_mgr_;
-};
-
-struct Four_Tokens
-{
-public:
- Four_Tokens (ACE_Thread_Manager *tm): thr_mgr_ (tm) {}
- ACE_Token_Proxy *first1_;
- ACE_Token_Proxy *first2_;
- ACE_Token_Proxy *first3_;
- ACE_Token_Proxy *second_;
- ACE_Thread_Manager *thr_mgr_;
-};
-
-static int ignore_deadlock = 0;
-static int remote_mutexes = 0;
-static const char *server_host = ACE_DEFAULT_SERVER_HOST;
-static int server_port = ACE_DEFAULT_SERVER_PORT;
-static int iterations = 100;
-static int rwlocks = 0;
-
-static void *
-two_token_thread (void *vp)
-{
- Two_Tokens* tm = (Two_Tokens *) vp;
-
- for (int x = 0; x < iterations; x++)
- {
- if (tm->first_->acquire () == -1)
- {
- ACE_DEBUG ((LM_DEBUG, "Deadlock detected\n"));
- continue;
- }
-
- if (ACE_TOKEN_INVARIANTS::instance ()->acquired (tm->first_) == 0)
- {
- tm->first_->dump ();
- ACE_ERROR_RETURN ((LM_ERROR, "violated invariant.\n"), 0);
- }
-
- if (tm->second_->acquire () == -1)
- {
- ACE_DEBUG ((LM_DEBUG, "Deadlock Detected\n"));
- goto G1;
- }
-
- if (ACE_TOKEN_INVARIANTS::instance ()->acquired (tm->second_) == 0)
- {
- tm->second_->dump ();
- ACE_ERROR_RETURN ((LM_ERROR, "violated invariant.\n"), 0);
- }
-
- ACE_TOKEN_INVARIANTS::instance ()->releasing (tm->second_);
-
- tm->second_->release ();
- G1:
- ACE_TOKEN_INVARIANTS::instance ()->releasing (tm->first_);
-
- tm->first_->release ();
- }
-
- ACE_DEBUG ((LM_DEBUG, "thread %t exiting\n"));
- return 0;
-}
-
-static void *
-run_writer (void *vp)
-{
- Four_Tokens *ft = (Four_Tokens *) vp;
- int acquire_number = 0;
-
- for (int x = 0; x < iterations; x++)
- {
- // Cycle through each of the first three tokens.
- ACE_Token_Proxy *t = 0;
- switch (acquire_number)
- {
- case 0:
- t = ft->first1_;
- break;
- case 1:
- t = ft->first2_;
- break;
- case 2:
- t = ft->first3_;
- break;
- }
-
- acquire_number = (acquire_number + 1) % 3;
-
- if (t->acquire () == -1)
- {
- ACE_ASSERT (errno == EDEADLK);
- ACE_DEBUG ((LM_DEBUG, "Deadlock detected.\n"));
- continue;
- }
-
- if (ACE_TOKEN_INVARIANTS::instance ()->acquired (t) == 0)
- {
- t->dump ();
- ACE_ERROR_RETURN ((LM_ERROR, "violated invariant.\n"), 0);
- }
-
- if (ft->second_->acquire () == -1)
- {
- ACE_ASSERT (errno == EDEADLK);
- ACE_DEBUG ((LM_DEBUG, "Deadlock Detected..\n"));
- goto G1;
- }
-
- if (ACE_TOKEN_INVARIANTS::instance ()->acquired (ft->second_) == 0)
- {
- ft->second_->dump ();
- ACE_ERROR_RETURN ((LM_ERROR, "violated invariant.\n"), 0);
- }
-
- ACE_TOKEN_INVARIANTS::instance ()->releasing (ft->second_);
-
- ft->second_->release ();
- G1:
- ACE_TOKEN_INVARIANTS::instance ()->releasing (t);
-
- t->release ();
- }
-
- ACE_DEBUG ((LM_DEBUG, "thread %t exiting\n"));
- return 0;
-}
-
-static int
-parse_args (int argc, char *argv[])
-{
- ACE_LOG_MSG->open (argv[0]);
-
- ACE_Get_Opt get_opt (argc, argv, "iuh:rp:n:", 1);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'r':
- rwlocks = 1;
- break;
- case 'i':
- ignore_deadlock = 1;
- break;
- case 'h':
- server_host = get_opt.optarg;
- remote_mutexes = 1;
- break;
- case 'p':
- server_port = ACE_OS::atoi (get_opt.optarg);
- remote_mutexes = 1;
- break;
- case 'n':
- iterations = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'u':
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n:\n"
- "[-r test readers/writer locks]\n"
- "[-n <iterations>]\n"
- "[-h <remote host>]\n"
- "[-p <remote port>]\n"
- "[-i ignore deadlock]\n%a", 1), -1);
- }
- }
-
- return 0;
-}
-
-int
-mutex_test (void)
-{
- ACE_Thread_Manager thr_mgr;
-
- Two_Tokens one (&thr_mgr);
- Two_Tokens two (&thr_mgr);
-
- if (remote_mutexes == 0)
- {
- global_mutex = new ACE_Local_Mutex ("global proxy", ignore_deadlock, 1);
- one.first_ = new ACE_Local_Mutex ("local proxy", ignore_deadlock, 1);
- two.second_ = new ACE_Local_Mutex ("local proxy", ignore_deadlock, 1);
- }
- else
- {
- ACE_Remote_Mutex::set_server_address (ACE_INET_Addr (server_port, server_host));
- global_mutex = new ACE_Remote_Mutex ("global proxy", ignore_deadlock, 1);
- one.first_ = new ACE_Remote_Mutex ("local proxy", ignore_deadlock, 1);
- two.second_ = new ACE_Remote_Mutex ("local proxy", ignore_deadlock, 1);
- }
-
- one.second_ = global_mutex;
- two.first_ = global_mutex;
-
- // Tell the token manager to be verbose when reporting deadlock.
- ACE_Token_Manager::instance ()->debug (1);
-
- if (thr_mgr.spawn (ACE_THR_FUNC (two_token_thread),
- (void *) &one, THR_BOUND) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "first spawn"), -1);
-
- if (thr_mgr.spawn (ACE_THR_FUNC (two_token_thread),
- (void *) &two, THR_BOUND) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "second spawn"), -1);
-
- // Wait for all threads to exit.
- thr_mgr.wait ();
-
- return 0;
-}
-
-static int
-rwlock_test (void)
-{
- ACE_Thread_Manager thr_mgr;
-
- Two_Tokens reader1 (&thr_mgr);
- Two_Tokens reader2 (&thr_mgr);
- Two_Tokens reader3 (&thr_mgr);
- Four_Tokens writer (&thr_mgr);
-
- if (remote_mutexes == 0)
- {
- reader1.first_ = new ACE_Local_RLock ("reader first", ignore_deadlock, 1);
- reader1.second_ = new ACE_Local_RLock ("writer first 1", ignore_deadlock, 1);
- reader2.first_ = new ACE_Local_RLock ("reader first", ignore_deadlock, 1);
- reader2.second_ = new ACE_Local_RLock ("writer first 2", ignore_deadlock, 1);
- reader3.first_ = new ACE_Local_RLock ("reader first", ignore_deadlock, 1);
- reader3.second_ = new ACE_Local_RLock ("writer first 3", ignore_deadlock, 1);
-
- writer.first1_ = new ACE_Local_WLock ("writer first 1", ignore_deadlock, 1);
- writer.first2_ = new ACE_Local_WLock ("writer first 2", ignore_deadlock, 1);
- writer.first3_ = new ACE_Local_WLock ("writer first 3", ignore_deadlock, 1);
- writer.second_ = new ACE_Local_WLock ("reader first", ignore_deadlock, 1);
- }
- else
- {
- ACE_Remote_Mutex::set_server_address (ACE_INET_Addr (server_port, server_host));
-
- reader1.first_ = new ACE_Remote_RLock ("writer first 1", ignore_deadlock, 1);
- reader1.second_ = new ACE_Remote_RLock ("reader first", ignore_deadlock, 1);
- reader2.first_ = new ACE_Remote_RLock ("writer first 2", ignore_deadlock, 1);
- reader2.second_ = new ACE_Remote_RLock ("reader first", ignore_deadlock, 1);
- reader3.first_ = new ACE_Remote_RLock ("writer first 3", ignore_deadlock, 1);
- reader3.second_ = new ACE_Remote_RLock ("reader first", ignore_deadlock, 1);
-
- writer.first1_ = new ACE_Remote_WLock ("writer first 1", ignore_deadlock, 1);
- writer.first2_ = new ACE_Remote_WLock ("writer first 2", ignore_deadlock, 1);
- writer.first3_ = new ACE_Remote_WLock ("writer first 3", ignore_deadlock, 1);
- writer.second_ = new ACE_Remote_WLock ("reader first", ignore_deadlock, 1);
- }
-
- // Tell the token manager to be verbose when reporting deadlock.
- ACE_Token_Manager::instance ()->debug (1);
-
- if (thr_mgr.spawn (ACE_THR_FUNC (two_token_thread),
- (void *) &reader1, THR_BOUND) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "first spawn"), -1);
-
- if (thr_mgr.spawn (ACE_THR_FUNC (two_token_thread),
- (void *) &reader2, THR_BOUND) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "first spawn"), -1);
-
- if (thr_mgr.spawn (ACE_THR_FUNC (two_token_thread),
- (void *) &reader3, THR_BOUND) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "first spawn"), -1);
-
- if (thr_mgr.spawn (ACE_THR_FUNC (run_writer),
- (void *) &writer, THR_BOUND) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "second spawn"), -1);
-
- // Wait for all threads to exit.
- thr_mgr.wait ();
-
- return 0;
-}
-
-int
-main (int argc, char* argv[])
-{
- if (parse_args (argc, argv) == -1)
- return -1;
-
- if (rwlocks)
- rwlock_test ();
- else
- mutex_test ();
-
- ACE_DEBUG ((LM_DEBUG, "test exiting.\n"));
- return 0;
-}
-#else
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "threads not supported on this platform\n"), -1);
-}
-#endif /* ACE_HAS_THREADS */
diff --git a/netsvcs/clients/Tokens/invariant/Makefile b/netsvcs/clients/Tokens/invariant/Makefile
deleted file mode 100644
index 09ac1d82c4d..00000000000
--- a/netsvcs/clients/Tokens/invariant/Makefile
+++ /dev/null
@@ -1,186 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for repeating token client application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-FILES = invariant
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(LSRC:%.cpp=$(VDIR)%.o)
-SHOBJ = $(addsuffix .so,$(FILES))
-
-BIN2 = invariant
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Token,$(findstring Token,$(ACE_BUILD_COMPONENTS)))
- BIN = $(BIN2)
-endif # Token
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-# 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/invariant.o .obj/invariant.so .shobj/invariant.o .shobj/invariant.so: invariant.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/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/Thread_Manager.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Token_Invariants.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(ACE_ROOT)/ace/Malloc_T.i \
- $(ACE_ROOT)/ace/Malloc_T.cpp \
- $(ACE_ROOT)/ace/Memory_Pool.h \
- $(ACE_ROOT)/ace/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Memory_Pool.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/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Local_Tokens.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Local_Tokens.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/clients/Tokens/invariant/Makefile.am b/netsvcs/clients/Tokens/invariant/Makefile.am
deleted file mode 100644
index 7e137109fa2..00000000000
--- a/netsvcs/clients/Tokens/invariant/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for repeating token client application
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-noinst_PROGRAMS = \
- invariant
-
-invariant_SOURCES = invariant.cpp
-invariant_LDADD = \
- $(top_builddir)/netsvcs/lib/libnetsvcs.la \
- $(top_builddir)/ace/libACE.la
-
diff --git a/netsvcs/clients/Tokens/invariant/Makefile.bor b/netsvcs/clients/Tokens/invariant/Makefile.bor
deleted file mode 100644
index 5d01b037b62..00000000000
--- a/netsvcs/clients/Tokens/invariant/Makefile.bor
+++ /dev/null
@@ -1,5 +0,0 @@
-
-NAME = invariant
-OBJFILES=$(OBJDIR)\$(NAME).obj
-!include <$(ACE_ROOT)\netsvcs\build.bor>
-
diff --git a/netsvcs/clients/Tokens/invariant/README b/netsvcs/clients/Tokens/invariant/README
deleted file mode 100644
index f078c2d6be4..00000000000
--- a/netsvcs/clients/Tokens/invariant/README
+++ /dev/null
@@ -1,27 +0,0 @@
-
-invariants.cpp tests the ACE Token Invariant utilities. The ACE Token
-Invariant utilities allow an application to test the correctness of
-mutex and readers/writer locks.
-
-invariants.cpp takes no command-line arguments. invariants.cpp first
-tests readers/writer locks. This is done by spawning two threads
-which simulate reader and writer acquire/renew/release loops.
-However, the loops are performed without actual locks, so the
-competing threads quickly reach and invalid state. The test should
-report this violation of readers/writer lock invariants and both
-threads should exit.
-
-The second test is for mutexes. Similar to the readers/writer lock
-test, this test spawns two threads which perform acquire/renew/release
-loops. When to two threads reach an invalid mutex state, the error
-should be reported and the threads should exit.
-
-For these two previous tests, it is theoretically possible that the
-threads never reach an invalid token state. However, it is highly
-unlikely since the threads would have to execute the same code
-simultaneously for the duration of the test. Nevertheless, it is
-possible.
-
-The last test hardwires invalid token states. It runs two mutex and
-two readers/writer lock tests. It should report "succeeded" for the
-four tests.
diff --git a/netsvcs/clients/Tokens/invariant/invariant.cpp b/netsvcs/clients/Tokens/invariant/invariant.cpp
deleted file mode 100644
index f5c223c3568..00000000000
--- a/netsvcs/clients/Tokens/invariant/invariant.cpp
+++ /dev/null
@@ -1,197 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// invariant.cpp
-//
-// = DESCRIPTION
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
-
-#include "ace/OS.h"
-#include "ace/Get_Opt.h"
-#include "ace/Singleton.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Token_Invariants.h"
-
-#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-
-ACE_RCSID(invariant, invariant, "$Id$")
-
-typedef ACE_Token_Invariant_Manager ACE_TOKEN_INVARIANTS;
-
-static const char *rwname = "reader/writer";
-static const char *mutexname = "mutex";
-
-static void *
-run_reader_writer (void *)
-{
- for (int x = 0; x < 50; x++)
- {
- int y = 0;
- for (; y < 5; y++)
- {
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired (rwname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "reader acquire violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) rlock acquired.\n"));
- }
-
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing (rwname);
-
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired (rwname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "reader renew violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) rlock renewed.\n"));
-
- for (; y > 0; y--)
- {
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing (rwname);
- ACE_DEBUG ((LM_DEBUG, "(%t) r-released.\n"));
- }
-
- if (ACE_TOKEN_INVARIANTS::instance ()->writer_acquired (rwname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "writer acquire violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "\t\t(%t) wlock acquired.\n"));
-
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing (rwname);
-
- if (ACE_TOKEN_INVARIANTS::instance ()->writer_acquired (rwname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "writer renew violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) rlock renewed.\n"));
-
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing (rwname);
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) thread exiting.\n"));
- return 0;
-}
-
-static void *
-run_mutex (void *)
-{
- for (int x = 0; x < 50; x++)
- {
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired (mutexname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "mutex acquire violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) mutex acquired.\n"));
-
- ACE_TOKEN_INVARIANTS::instance ()->mutex_releasing (mutexname);
-
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired (mutexname) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "mutex renew violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) mutex renewed.\n"));
-
- ACE_TOKEN_INVARIANTS::instance ()->mutex_releasing (mutexname);
- ACE_DEBUG ((LM_DEBUG, "(%t) mutex released.\n"));
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) thread exiting.\n"));
- return 0;
-}
-
-static int
-run_final_test (void)
-{
- ACE_DEBUG ((LM_DEBUG, "starting mutex tests 1 & 2\n"));
-
- // Mutex tests.
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired ("testing mutex") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "mutex test 1 failed.\n"), 0);
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired ("testing mutex2") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "mutex test 2 failed.\n"), 0);
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired ("testing mutex") == 0)
- ACE_DEBUG ((LM_DEBUG, "mutex test 1 succeeded.\n"));
- else
- ACE_ERROR_RETURN ((LM_ERROR, "mutex test 1 failed..\n"), 0);
-
- if (ACE_TOKEN_INVARIANTS::instance ()->mutex_acquired ("testing mutex2") == 0)
- ACE_DEBUG ((LM_DEBUG, "mutex test 2 succeeded.\n"));
- else
- ACE_ERROR_RETURN ((LM_ERROR, "mutex test 2 failed..\n"), 0);
-
- // RW tests.
- ACE_DEBUG ((LM_DEBUG, "starting rwlock tests 1 & 2\n"));
-
- // Multiple readers.
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired ("testing rwlock") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 1 failed.\n"), 0);
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired ("testing rwlock 2") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 2 failed.\n"), 0);
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired ("testing rwlock") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 1 failed..\n"), 0);
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired ("testing rwlock 2") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 2 failed..\n"), 0);
-
- // Writer.
- if (ACE_TOKEN_INVARIANTS::instance ()->writer_acquired ("testing rwlock") == 0)
- ACE_DEBUG ((LM_ERROR, "rwlock test 1 succeded.\n"));
- else
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 1 failed...\n"), 0);
-
- // Releasing reader.
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing ("testing rwlock 2");
- ACE_TOKEN_INVARIANTS::instance ()->rwlock_releasing ("testing rwlock 2");
-
- // Writer.
- if (ACE_TOKEN_INVARIANTS::instance ()->writer_acquired ("testing rwlock 2") == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 2 failed....\n"), 0);
-
- // Reader.
- if (ACE_TOKEN_INVARIANTS::instance ()->reader_acquired ("testing rwlock 2") == 0)
- ACE_DEBUG ((LM_DEBUG, "rwlock test 2 succeeded.\n"));
- else
- ACE_ERROR_RETURN ((LM_ERROR, "rwlock test 2 failed.....\n"), 0);
-
- return 0;
-}
-
-int
-main (int /* argc */, char* /* argv */ [])
-{
- ACE_Thread_Manager mgr;
-
- // Run reader/writer test
- if (mgr.spawn_n (2, ACE_THR_FUNC (run_reader_writer),
- (void *) 0,
- THR_NEW_LWP | THR_DETACHED) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "spawn failed"), -1);
-
- mgr.wait ();
-
- ACE_OS::sleep (2);
-
- // Run mutex test.
- if (mgr.spawn_n (2, ACE_THR_FUNC (run_mutex),
- (void *) 0,
- THR_NEW_LWP | THR_DETACHED) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "spawn failed"), -1);
-
- mgr.wait ();
-
- ACE_OS::sleep (2);
-
- run_final_test ();
-
- return 0;
-}
-
-#else
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "threads not supported on this platform\n"), -1);
-}
-#endif /* ACE_HAS_THREADS */
diff --git a/netsvcs/clients/Tokens/invariant/invariant.dsp b/netsvcs/clients/Tokens/invariant/invariant.dsp
deleted file mode 100644
index 1c0a730abe3..00000000000
--- a/netsvcs/clients/Tokens/invariant/invariant.dsp
+++ /dev/null
@@ -1,99 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Token Invariant Client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=NETSVCS Token Invariant Client - 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 "invariant.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 "invariant.mak"\
- CFG="NETSVCS Token Invariant Client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Token Invariant Client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "NETSVCS Token Invariant Client - 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)" == "NETSVCS Token Invariant Client - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 /libpath:"..\..\..\..\ace"
-# SUBTRACT LINK32 /incremental:yes
-
-!ELSEIF "$(CFG)" == "NETSVCS Token Invariant Client - 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 aced.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Token Invariant Client - Win32 Release"
-# Name "NETSVCS Token Invariant Client - Win32 Debug"
-# Begin Group "Source"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\invariant.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/netsvcs/clients/Tokens/invariant/invariant.dsw b/netsvcs/clients/Tokens/invariant/invariant.dsw
deleted file mode 100644
index c3431c8faea..00000000000
--- a/netsvcs/clients/Tokens/invariant/invariant.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "invariant"=.\invariant.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/netsvcs/clients/Tokens/manual/Makefile b/netsvcs/clients/Tokens/manual/Makefile
deleted file mode 100644
index 2d8ca80ad6d..00000000000
--- a/netsvcs/clients/Tokens/manual/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for repeating token client application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-FILES = manual
-
-BIN2 = manual
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Token,$(findstring Token,$(ACE_BUILD_COMPONENTS)))
- BIN = $(BIN2)
-endif # Token
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-# 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.
-
-
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/clients/Tokens/manual/Makefile.am b/netsvcs/clients/Tokens/manual/Makefile.am
deleted file mode 100644
index 7f2b227464e..00000000000
--- a/netsvcs/clients/Tokens/manual/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for repeating token client application
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-noinst_PROGRAMS = \
- manual
-
-manual_SOURCES = manual.cpp
-manual_LDADD = \
- $(top_builddir)/netsvcs/lib/libnetsvcs.la \
- $(top_builddir)/ace/libACE.la
-
-## Clean up template repositories, etc.
-clean-local:
- -rm -f *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core
- -rm -rf ptrepository Templates.DB gcctemp.c gcctemp so_locations
diff --git a/netsvcs/clients/Tokens/manual/Makefile.bor b/netsvcs/clients/Tokens/manual/Makefile.bor
deleted file mode 100644
index a38035e9982..00000000000
--- a/netsvcs/clients/Tokens/manual/Makefile.bor
+++ /dev/null
@@ -1,5 +0,0 @@
-
-NAME = manual
-OBJFILES = $(OBJDIR)\$(NAME).obj
-!include <$(ACE_ROOT)\netsvcs\build.bor>
-
diff --git a/netsvcs/clients/Tokens/manual/README b/netsvcs/clients/Tokens/manual/README
deleted file mode 100644
index 09b9b9a365a..00000000000
--- a/netsvcs/clients/Tokens/manual/README
+++ /dev/null
@@ -1,67 +0,0 @@
-
-./manual gives users a text-based interactive interface to local or
-remote tokens. This is extremely useful for manually testing the
-token server and setting up deadlock scenarios.
-
-Run it as follows
-
-% ./manual -u
-./manual:
-[-h <remote host>]
-[-p <remote port>]
-[-i ignore deadlock]
-[-d debug]
-
-./manual gives you the following prompt.
-<tid> <token> <type> <operation>
-
-<tid> This is the client id of the current operation. This is set
- manually by ./manual for every operation. Be careful when
- using multiple <tid>'s during a remote session (see BUGS
- below).
-
-<token> This is the name of the token for the operation.
-
-<type> This is the type of the token. This can be:
- M - Corresponds to a Mutex lock.
- R - Corresponds to Readers/Writer lock.
- W - Corresponds to Readers/Writer lock.
- Obviously, a single <token> can be M or it can R and/or W. If
- you perform and operation like this "tid1 tokenA M A" then
- don't do this "tid1 tokenA R A". This doesn't make sense.
-
-<operation> This is the operation to perform on the
- <tid>-<token>-<type> proxy. These include:
- A - acquire.
- N - renew.
- R - release.
- T - tryacquire.
-
-BUGS!!!!
-
-When performing remote tests, be careful when using a single running
-./manual to impersonate two <tid>'s. The Token Server client
-connection policy is currently, one per thread. The Token Server
-assumes that the same <tid> is always on the other end of a
-connection. If you do something like the following, you will break
-it:
-
-lambada:Tokens/manual> ./manual -h tango -p 20202
-<tid> <token> <type> <operation>
-tid1 tokenA M A
-ACE_TSS_Connection new connection
-(1) acquired tokenA remotely.
-Succeeded.
-<tid> <token> <type> <operation>
-tid2 tokenA M A
-(1) acquired tokenA remotely. <------ This is remote BADness!!!
-Succeeded.
-Violated invariant. <------ Locally detected badness.
-<tid> <token> <type> <operation>
-
-
-Notice that the local side discovered that this was incorrect.
-However, the Token Server thinks it was a recursive acquisition for
-tid1. Keep in mind that this is not a problem with the Token library.
-It is just a problem with how this primitive ./manual application maps
-STDIN to the ACE Token API.
diff --git a/netsvcs/clients/Tokens/manual/manual.cpp b/netsvcs/clients/Tokens/manual/manual.cpp
deleted file mode 100644
index 1393150f751..00000000000
--- a/netsvcs/clients/Tokens/manual/manual.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// manual.cpp
-//
-// = DESCRIPTION
-// Allows manual operations on local and remote tokens.
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
-
-#include "ace/OS.h"
-#include "ace/Get_Opt.h"
-#include "ace/Local_Tokens.h"
-#include "ace/Remote_Tokens.h"
-#include "ace/Singleton.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Token_Invariants.h"
-#include "ace/Token_Collection.h"
-#include "ace/Map_Manager.h"
-#include "ace/Service_Config.h"
-
-#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-
-ACE_RCSID(manual, manual, "$Id$")
-
-typedef ACE_Token_Invariant_Manager ACE_TOKEN_INVARIANTS;
-
-class STDIN_Token : public ACE_Event_Handler
- // = TITLE
- // STDIN Token
- //
- // = DESCRIPTION
- // Translates STDIN commands to ACE Token commands.
-{
-public:
- STDIN_Token (void);
- // Construction.
-
- int parse_args (int argc, char *argv[]);
- // Parse command-line arguments.
-
- int open (int argc, char *argv[]);
- // Register with whatever event dispatcher is needed and run.
-
- // = Event_Handler methods.
- int handle_input (ACE_HANDLE);
- int handle_exception (ACE_HANDLE);
-
- typedef ACE_CString TID;
-
-private:
-
- void display_menu (void);
- // Display options.
-
- ACE_Token_Proxy *get_proxy (const char *tid, const char *token, char type);
- // Get or make a proxy to <token> with a <tid> client id.
-
- ACE_Token_Proxy *create_proxy (const char *token, char type);
- // Create a proxy to <token> with a <tid> client id.
-
- // = Mapping from tid to Token_Collection.
- typedef ACE_Map_Manager<TID, ACE_Token_Collection *, ACE_Null_Mutex>
- COLLECTIONS;
- // COLLECTION maintains a mapping from tid to a collection.
-
- typedef ACE_Map_Iterator<TID, ACE_Token_Collection *, ACE_Null_Mutex>
- COLLECTIONS_ITERATOR;
- // Allows iterations through collections_.
-
- typedef ACE_Map_Entry<TID, ACE_Token_Collection *>
- COLLECTIONS_ENTRY;
- // Allows iterations through collections_.
-
- COLLECTIONS collections_;
- // A collection for each <tid>.
-
- const char *server_host_;
- int server_port_;
- int ignore_deadlock_;
- int debug_;
- int remote_;
-};
-
-STDIN_Token::STDIN_Token (void)
- : server_host_ (ACE_DEFAULT_SERVER_HOST),
- server_port_ (ACE_DEFAULT_SERVER_PORT),
- ignore_deadlock_ (0),
- debug_ (0),
- remote_ (0)
-{
-}
-
-int
-STDIN_Token::parse_args (int argc, char *argv[])
-{
- ACE_LOG_MSG->open (argv[0], ACE_Log_Msg::STDERR);
-
- ACE_Get_Opt get_opt (argc, argv, "h:p:diu", 1);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'h': // specify the host machine on which the server is running
- server_host_ = get_opt.optarg;
- remote_ = 1;
- break;
- case 'p': // specify the port on which the server is running
- server_port_ = ACE_OS::atoi (get_opt.optarg);
- remote_ = 1;
- break;
- case 'd':
- debug_ = 1;
- break;
- case 'i':
- ignore_deadlock_ = 1;
- break;
- case 'u':
- // usage: fallthrough
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n:\n"
- "[-h <remote host>]\n"
- "[-p <remote port>]\n"
- "[-i ignore deadlock]\n"
- "[-d debug]\n", 1), -1);
- }
- }
-
- if (remote_)
- ACE_Remote_Mutex::set_server_address (ACE_INET_Addr (server_port_,
- server_host_));
-
- return 0;
-}
-
-int
-STDIN_Token::open (int argc, char *argv[])
-{
- if (this->parse_args (argc, argv) == -1)
- return -1;
-
- // Register for signals.
- if (ACE_Reactor::instance ()->register_handler
- (SIGINT, this) == -1)
- ACE_DEBUG ((LM_DEBUG, "Can't register signal handler\n"));
-
-#if defined (ACE_WIN32)
-
-#else
- // Register for STDIN events with Reactor.
- if (ACE_Reactor::instance ()->register_handler
- (ACE_STDIN, this, ACE_Event_Handler::READ_MASK) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "Can't register signal handler\n"), 0);
-
-
-#endif /* ACE_WIN32 */
-
-
- this->display_menu ();
-
-#if defined (ACE_WIN32)
-
-#else
- ACE_Reactor::run_event_loop ();
-#endif /* ACE_WIN32 */
-
- ACE_OS::printf ("Exiting...\n");
- return 0;
-}
-
-int
-STDIN_Token::handle_input (ACE_HANDLE fd)
-{
- ACE_UNUSED_ARG (fd);
-
- char tid[BUFSIZ];
- char token[BUFSIZ];
- char type[16];
- char operation[16];
-
- if (::scanf ("%s %s %s %s", tid, token, type, operation) <= 0)
- {
- ACE_OS::printf ("Try again.\n");
- return 0;
- }
-
- ACE_Token_Proxy *proxy =
- this->get_proxy (tid, token, type[0]);
-
- if (proxy == 0)
- return -1;
-
- switch (operation[0])
- {
- case 'a':
- case 'A':
- if (proxy->acquire () == 0)
- {
- ACE_OS::printf ("Succeeded.\n");
- if (ACE_TOKEN_INVARIANTS::instance ()->acquired (proxy) == 0)
- ACE_OS::printf ("Violated invariant.\n");
- }
- else
- ACE_ERROR ((LM_ERROR, "%p.\n", "Acquire failed"));
- break;
-
- case 'n':
- case 'N':
- ACE_TOKEN_INVARIANTS::instance ()->releasing (proxy);
- if (proxy->renew () == 0)
- {
- ACE_OS::printf ("Succeeded.\n");
- if (ACE_TOKEN_INVARIANTS::instance ()->acquired (proxy) == 0)
- ACE_OS::printf ("Violated invariant.\n");
- }
- else
- ACE_ERROR ((LM_ERROR, "%p.\n", "Renew failed"));
- break;
-
- case 'r':
- case 'R':
- ACE_TOKEN_INVARIANTS::instance ()->releasing (proxy);
- if (proxy->release () == 0)
- ACE_OS::printf ("Succeeded.\n");
- else
- ACE_ERROR ((LM_ERROR, "%p.\n", "Release failed"));
- break;
-
- case 't':
- case 'T':
- if (proxy->tryacquire () == 0)
- {
- ACE_OS::printf ("Succeeded.\n");
- if (ACE_TOKEN_INVARIANTS::instance ()->acquired (proxy) == 0)
- ACE_OS::printf ("Violated invariant.\n");
- }
- else
- ACE_ERROR ((LM_ERROR, "%p.\n", "Tryacquire failed"));
- break;
- }
-
- this->display_menu ();
- return 0;
-}
-
-void
-STDIN_Token::display_menu (void)
-{
- ACE_OS::printf ("<tid> <token> <type> <operation>\n");
-}
-
-int
-STDIN_Token::handle_exception (ACE_HANDLE fd)
-{
- ACE_UNUSED_ARG (fd);
-
- ACE_Reactor::run_event_loop ();
- return -1;
-}
-
-ACE_Token_Proxy *
-STDIN_Token::get_proxy (const char *_tid, const char *token, char type)
-{
- ACE_Token_Collection *proxy_collection;
-
- TID tid (_tid);
-
- if (collections_.find (tid, proxy_collection) == -1)
- // We did not find a proxy_collection.
- {
- // Make one.
- proxy_collection = new ACE_Token_Collection (debug_, "no name collection");
-
- // Put it in the collections.
- if (collections_.bind (tid, proxy_collection) == -1)
- {
- delete proxy_collection;
- return 0;
- }
- }
-
- // Either way, we have a proxy_collection now.
-
- // See if the proxy already exists in the collection.
- ACE_Token_Proxy *proxy = proxy_collection->is_member (token);
-
- // If not, create one.
- if (proxy == 0)
- {
- proxy = this->create_proxy (token, type);
-
- // Put the new_proxy in this tid's collection.
- if (proxy_collection->insert (*proxy) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "insert failed\n"), 0);
-
- // Delete our copy (one was created in the collection).
- delete proxy;
- proxy = proxy_collection->is_member (token);
-
- if (proxy == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "is_member failed\n"), 0);
-
- // Set the client_id (it was set to 1 since we're
- // single-threaded.
- proxy->client_id (_tid);
- }
-
- return proxy;
-}
-
-ACE_Token_Proxy *
-STDIN_Token::create_proxy (const char *token, char type)
-{
- switch (type)
- {
- case 'm':
- case 'M':
- if (remote_)
- return new ACE_Remote_Mutex (token, ignore_deadlock_, debug_);
- else
- return new ACE_Local_Mutex (token, ignore_deadlock_, debug_);
-
- case 'r':
- case 'R':
- if (remote_)
- return new ACE_Remote_RLock (token, ignore_deadlock_, debug_);
- else
- return new ACE_Local_RLock (token, ignore_deadlock_, debug_);
-
- case 'w':
- case 'W':
- if (remote_)
- return new ACE_Remote_WLock (token, ignore_deadlock_, debug_);
- else
- return new ACE_Local_WLock (token, ignore_deadlock_, debug_);
- }
-
- // should never get here, but this avoids a compiler warning . . .
- return 0;
-}
-
-int
-main (int argc, char* argv[])
-{
- STDIN_Token st;
- return st.open (argc, argv);
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Map_Entry<STDIN_Token::TID, ACE_Token_Collection *>;
-template class ACE_Map_Manager<STDIN_Token::TID, ACE_Token_Collection *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator_Base<STDIN_Token::TID, ACE_Token_Collection *, ACE_Null_Mutex>;
-template class ACE_Map_Iterator<STDIN_Token::TID, ACE_Token_Collection *, ACE_Null_Mutex>;
-template class ACE_Map_Reverse_Iterator<STDIN_Token::TID, ACE_Token_Collection *, ACE_Null_Mutex>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Map_Entry<STDIN_Token::TID, ACE_Token_Collection *>
-#pragma instantiate ACE_Map_Manager<STDIN_Token::TID, ACE_Token_Collection *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator_Base<STDIN_Token::TID, ACE_Token_Collection *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Iterator<STDIN_Token::TID, ACE_Token_Collection *, ACE_Null_Mutex>
-#pragma instantiate ACE_Map_Reverse_Iterator<STDIN_Token::TID, ACE_Token_Collection *, ACE_Null_Mutex>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-#else
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "threads or ACE_HAS_TOKENS_LIBRARY not supported on this platform\n"), -1);
-}
-#endif /* ACE_HAS_THREADS && ACE_HAS_TOKENS_LIBRARY */
diff --git a/netsvcs/clients/Tokens/manual/manual.dsp b/netsvcs/clients/Tokens/manual/manual.dsp
deleted file mode 100644
index 5de93220382..00000000000
--- a/netsvcs/clients/Tokens/manual/manual.dsp
+++ /dev/null
@@ -1,97 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Token Manual Client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=NETSVCS Token Manual Client - 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 "manual.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 "manual.mak" CFG="NETSVCS Token Manual Client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Token Manual Client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "NETSVCS Token Manual Client - 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)" == "NETSVCS Token Manual Client - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 /libpath:"..\..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "NETSVCS Token Manual Client - 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 aced.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Token Manual Client - Win32 Release"
-# Name "NETSVCS Token Manual Client - Win32 Debug"
-# Begin Group "Source"
-
-# PROP Default_Filter "cpp"
-# Begin Source File
-
-SOURCE=.\manual.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/netsvcs/clients/Tokens/manual/manual.dsw b/netsvcs/clients/Tokens/manual/manual.dsw
deleted file mode 100644
index a98d5bcc9b5..00000000000
--- a/netsvcs/clients/Tokens/manual/manual.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "manual"=.\manual.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/netsvcs/clients/Tokens/mutex/Makefile b/netsvcs/clients/Tokens/mutex/Makefile
deleted file mode 100644
index 50558fd9d03..00000000000
--- a/netsvcs/clients/Tokens/mutex/Makefile
+++ /dev/null
@@ -1,204 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for repeating token client application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-FILES = test_mutex
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(LSRC:%.cpp=$(VDIR)%.o)
-SHOBJ = $(addsuffix .so,$(FILES))
-
-BIN2 = test_mutex
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Token,$(findstring Token,$(ACE_BUILD_COMPONENTS)))
- BIN = $(BIN2)
-endif # Token
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-# 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/test_mutex.o .obj/test_mutex.so .shobj/test_mutex.o .shobj/test_mutex.so: test_mutex.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Local_Tokens.h \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Memory_Pool.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/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Local_Tokens.i \
- $(ACE_ROOT)/ace/Remote_Tokens.h \
- $(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 \
- $(ACE_ROOT)/ace/Token_Request_Reply.h \
- $(ACE_ROOT)/ace/Token_Request_Reply.i \
- $(ACE_ROOT)/ace/Remote_Tokens.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(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 \
- $(ACE_ROOT)/ace/Thread_Manager.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/clients/Tokens/mutex/Makefile.am b/netsvcs/clients/Tokens/mutex/Makefile.am
deleted file mode 100644
index a62805fafb4..00000000000
--- a/netsvcs/clients/Tokens/mutex/Makefile.am
+++ /dev/null
@@ -1,25 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for repeating token client application
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-noinst_PROGRAMS = \
- test_mutex
-
-test_mutex_SOURCES = test_mutex.cpp
-test_mutex_LDADD = \
- $(top_builddir)/netsvcs/lib/libnetsvcs.la \
- $(top_builddir)/ace/libACE.la
-
-
diff --git a/netsvcs/clients/Tokens/mutex/Makefile.bor b/netsvcs/clients/Tokens/mutex/Makefile.bor
deleted file mode 100644
index 2e74fc7f2fb..00000000000
--- a/netsvcs/clients/Tokens/mutex/Makefile.bor
+++ /dev/null
@@ -1,5 +0,0 @@
-
-NAME = test_mutex
-OBJFILES = $(OBJDIR)\$(NAME).obj
-!include <$(ACE_ROOT)\netsvcs\build.bor>
-
diff --git a/netsvcs/clients/Tokens/mutex/README b/netsvcs/clients/Tokens/mutex/README
deleted file mode 100644
index cbd1e9c7d6c..00000000000
--- a/netsvcs/clients/Tokens/mutex/README
+++ /dev/null
@@ -1,23 +0,0 @@
-
-test_mutex
-
-test_mutex tests ACE_Local_Mutex and ACE_Remote_Mutex with both local
-and global proxies. "Local proxies" mean that each thread uses its
-own proxy (but same logical token.) "Global proxy" means that all
-threads access the same proxy (and, of course, the same logical
-token.)
-
-test_mutex can take the number of threads to run from the
-command-line. Thus, to run the test with one thread and local
-mutexes, type:
-
-% ./test_mutex
-
-To run the test with 10 threads and local mutexes, type:
-
-% ./test_mutex -t 10
-
-To run the test with 10 threads and remote mutexes, type:
-
-% ./test_mutex -t 10 -r
-
diff --git a/netsvcs/clients/Tokens/mutex/mutex.dsp b/netsvcs/clients/Tokens/mutex/mutex.dsp
deleted file mode 100644
index facd2d27e2b..00000000000
--- a/netsvcs/clients/Tokens/mutex/mutex.dsp
+++ /dev/null
@@ -1,97 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Token Mutex Client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=NETSVCS Token Mutex Client - 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 "mutex.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 "mutex.mak" CFG="NETSVCS Token Mutex Client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Token Mutex Client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "NETSVCS Token Mutex Client - 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)" == "NETSVCS Token Mutex Client - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 /libpath:"..\..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "NETSVCS Token Mutex Client - 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 aced.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Token Mutex Client - Win32 Release"
-# Name "NETSVCS Token Mutex Client - Win32 Debug"
-# Begin Group "Source"
-
-# PROP Default_Filter "cpp"
-# Begin Source File
-
-SOURCE=.\test_mutex.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/netsvcs/clients/Tokens/mutex/mutex.dsw b/netsvcs/clients/Tokens/mutex/mutex.dsw
deleted file mode 100644
index f22f4bce411..00000000000
--- a/netsvcs/clients/Tokens/mutex/mutex.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "mutex"=.\mutex.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/netsvcs/clients/Tokens/mutex/test_mutex.cpp b/netsvcs/clients/Tokens/mutex/test_mutex.cpp
deleted file mode 100644
index b15243dffba..00000000000
--- a/netsvcs/clients/Tokens/mutex/test_mutex.cpp
+++ /dev/null
@@ -1,143 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// test_mutex.cpp
-//
-// = DESCRIPTION
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
-
-#include "ace/OS.h"
-#include "ace/Get_Opt.h"
-#include "ace/Local_Tokens.h"
-#include "ace/Remote_Tokens.h"
-#include "ace/Thread.h"
-#include "ace/Thread_Manager.h"
-
-#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-
-ACE_RCSID(mutex, test_mutex, "$Id$")
-
-static ACE_Token_Proxy *mutex;
-static int remote_mutexes = 0;
-static const char *server_host = ACE_DEFAULT_SERVER_HOST;
-static int server_port = ACE_DEFAULT_SERVER_PORT;
-static int iterations = 100;
-static int spawn_count = 2;
-
-static void *
-run_test (void *)
-{
- int count = iterations;
- // test recursive acquisition of a global proxy
- while (count--)
- {
- if (mutex->acquire () == -1)
- {
- ACE_ERROR ((LM_ERROR, "(%t) %p acquire failed\n","test_mutex"));
- return (void *) -1;
- }
-
-// mutex->acquire ();
- if (mutex->renew () == -1)
- {
- ACE_ERROR ((LM_ERROR, "(%t) %p renew failed\n","test_mutex"));
- return (void *) -1;
- }
-
- if (mutex->release () == -1)
- {
- ACE_ERROR ((LM_ERROR, "(%t) %p release failed\n","test_mutex"));
- return (void *) -1;
- }
-
-// mutex->release ();
- }
-
- return 0;
-}
-
-static int
-parse_args (int argc, char *argv[])
-{
- ACE_LOG_MSG->open (argv[0]);
-
- ACE_Get_Opt get_opt (argc, argv, "t:uh:p:n:", 1);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 't':
- spawn_count = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'h': // specify the host machine on which the server is running
- server_host = get_opt.optarg;
- remote_mutexes = 1;
- break;
- case 'p': // specify the port on which the server is running
- server_port = ACE_OS::atoi (get_opt.optarg);
- remote_mutexes = 1;
- break;
- case 'n': // specify the port on which the server is running
- iterations = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'u':
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n:\n"
- "[-h <remote host>]\n"
- "[-p <remote port>]\n"
- "[-n <iterations>]\n"
- "[-t <threads>]\n"
- "[-h <remote host>]\n"
- "[-p <remote port>]\n", 1), -1);
- /* NOTREACHED */
- }
- }
-
- return 0;
-}
-
-int
-main (int argc, char *argv[])
-{
- ACE_Thread_Manager thread_mgr;
-
- if (parse_args (argc, argv) == -1)
- return -1;
-
- if (remote_mutexes)
- {
- ACE_Remote_Mutex::set_server_address (ACE_INET_Addr (server_port, server_host));
- mutex = new ACE_Remote_Mutex ("Remote TOKEN", 0, 1);
- }
- else
- {
- mutex = new ACE_Local_Mutex ("Local TOKEN", 0, 1);
- }
-
- if (thread_mgr.spawn_n (spawn_count,
- ACE_THR_FUNC (run_test),
- 0,
- THR_BOUND) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "spawn"), -1);
-
- thread_mgr.wait ();
-
- return 0;
-}
-#else
-int main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR, "you must have threads to run this test program\n"), -1);
-}
-#endif /* ACE_HAS_THREADS */
diff --git a/netsvcs/clients/Tokens/rw_lock/Makefile b/netsvcs/clients/Tokens/rw_lock/Makefile
deleted file mode 100644
index 9195b540e7d..00000000000
--- a/netsvcs/clients/Tokens/rw_lock/Makefile
+++ /dev/null
@@ -1,205 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for repeating token client application
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-FILES = rw_locks
-
-LSRC = $(addsuffix .cpp,$(FILES))
-LOBJ = $(LSRC:%.cpp=$(VDIR)%.o)
-SHOBJ = $(addsuffix .so,$(FILES))
-
-BIN2 = rw_locks
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Token,$(findstring Token,$(ACE_BUILD_COMPONENTS)))
- BIN = $(BIN2)
-endif # Token
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-# 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/rw_locks.o .obj/rw_locks.so .shobj/rw_locks.o .shobj/rw_locks.so: rw_locks.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Local_Tokens.h \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Containers.h \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/Event_Handler.h \
- $(ACE_ROOT)/ace/Event_Handler.i \
- $(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/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/Memory_Pool.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/SString.h \
- $(ACE_ROOT)/ace/SString.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/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Local_Tokens.i \
- $(ACE_ROOT)/ace/Remote_Tokens.h \
- $(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 \
- $(ACE_ROOT)/ace/Token_Request_Reply.h \
- $(ACE_ROOT)/ace/Token_Request_Reply.i \
- $(ACE_ROOT)/ace/Remote_Tokens.i \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(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 \
- $(ACE_ROOT)/ace/Thread_Manager.i \
- $(ACE_ROOT)/ace/Token_Invariants.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/clients/Tokens/rw_lock/Makefile.am b/netsvcs/clients/Tokens/rw_lock/Makefile.am
deleted file mode 100644
index f95e991bb24..00000000000
--- a/netsvcs/clients/Tokens/rw_lock/Makefile.am
+++ /dev/null
@@ -1,24 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for repeating token client application
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-noinst_PROGRAMS = \
- rw_locks
-
-rw_locks_SOURCES = rw_locks.cpp
-rw_locks_LDADD = \
- $(top_builddir)/netsvcs/lib/libnetsvcs.la \
- $(top_builddir)/ace/libACE.la
-
diff --git a/netsvcs/clients/Tokens/rw_lock/Makefile.bor b/netsvcs/clients/Tokens/rw_lock/Makefile.bor
deleted file mode 100644
index a707e2f688a..00000000000
--- a/netsvcs/clients/Tokens/rw_lock/Makefile.bor
+++ /dev/null
@@ -1,5 +0,0 @@
-
-NAME = rw_locks
-OBJFILES = $(OBJDIR)\$(NAME).obj
-!include <$(ACE_ROOT)\netsvcs\build.bor>
-
diff --git a/netsvcs/clients/Tokens/rw_lock/README b/netsvcs/clients/Tokens/rw_lock/README
deleted file mode 100644
index dabc0a3741d..00000000000
--- a/netsvcs/clients/Tokens/rw_lock/README
+++ /dev/null
@@ -1,40 +0,0 @@
-
-test_rw_locks shows how to use ACE_Local_RLock, ACE_Local_WLock,
-ACE_Remote_RLock, and ACE_Remote_WLock.
-
-Here are the options to test_rw_locks:
-% ./test_rw_lock -u
- -i ignore deadlock
- -n <iterations>
- -r <reads>
- -d debug
- -s sleep during writes
- -t <threads>
-
-test_rw_locks spawns <threads> number of threads which perform the
-following algorithm:
-
-for <iterations>
- {
- for <reads>
- acquire read lock
- for <reads>
- release read lock
-
- acquire write lock
- if (sleep during writes)
- sleep for 1 second
- release write lock
- }
-
-
-The output should show that multiple readers can acquire the lock for
-reading simultaneously (note that this also tests recursive
-acquisition.) When a writer lock is acquired, the output should show
-that no thread holds a reader lock.
-
-To run a test, simply type:
-% ./test_rw_lock
-
-This should show output as described above.
-
diff --git a/netsvcs/clients/Tokens/rw_lock/rw_lock.dsp b/netsvcs/clients/Tokens/rw_lock/rw_lock.dsp
deleted file mode 100644
index dc47bd968ed..00000000000
--- a/netsvcs/clients/Tokens/rw_lock/rw_lock.dsp
+++ /dev/null
@@ -1,98 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Token RW_Lock Client" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=NETSVCS Token RW_Lock Client - 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 "rw_lock.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 "rw_lock.mak"\
- CFG="NETSVCS Token RW_Lock Client - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Token RW_Lock Client - Win32 Release" (based on\
- "Win32 (x86) Console Application")
-!MESSAGE "NETSVCS Token RW_Lock Client - 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)" == "NETSVCS Token RW_Lock Client - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 /libpath:"..\..\..\..\ace"
-
-!ELSEIF "$(CFG)" == "NETSVCS Token RW_Lock Client - 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 aced.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Token RW_Lock Client - Win32 Release"
-# Name "NETSVCS Token RW_Lock Client - Win32 Debug"
-# Begin Group "Source"
-
-# PROP Default_Filter "cpp"
-# Begin Source File
-
-SOURCE=.\rw_locks.cpp
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/netsvcs/clients/Tokens/rw_lock/rw_lock.dsw b/netsvcs/clients/Tokens/rw_lock/rw_lock.dsw
deleted file mode 100644
index 97465ec76bb..00000000000
--- a/netsvcs/clients/Tokens/rw_lock/rw_lock.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "rw_lock"=.\rw_lock.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/netsvcs/clients/Tokens/rw_lock/rw_locks.cpp b/netsvcs/clients/Tokens/rw_lock/rw_locks.cpp
deleted file mode 100644
index f9d8da9eb9c..00000000000
--- a/netsvcs/clients/Tokens/rw_lock/rw_locks.cpp
+++ /dev/null
@@ -1,253 +0,0 @@
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// examples
-//
-// = FILENAME
-// rw_locks.cpp
-//
-// = DESCRIPTION
-// test_rw_locks shows how to use ACE_Local_RLock, ACE_Local_WLock,
-// ACE_Remote_RLock, and ACE_Remote_WLock.
-//
-// = AUTHOR
-// Tim Harrison
-//
-// ============================================================================
-
-#include "ace/OS.h"
-#include "ace/Get_Opt.h"
-#include "ace/Local_Tokens.h"
-#include "ace/Remote_Tokens.h"
-#include "ace/Thread_Manager.h"
-#include "ace/Token_Invariants.h"
-
-#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_THREADS_LIBRARY)
-
-ACE_RCSID(rw_lock, rw_locks, "$Id$")
-
-typedef ACE_Token_Invariant_Manager ACE_TOKEN_INVARIANTS;
-
-static ACE_Token_Proxy *global_rlock;
-static ACE_Token_Proxy *global_wlock;
-
-static const char *server_host = ACE_DEFAULT_SERVER_HOST;
-static int server_port = ACE_DEFAULT_SERVER_PORT;
-static int ignore_deadlock = 0;
-static int threads = 2;
-static int iterations = 50;
-static int debug = 0;
-static int remote = 0;
-static int reads = 4;
-static int write_sleep = 0;
-static int renew = 0;
-
-static void *
-run_thread (void *)
-{
- for (int x = 0; x < iterations; x++)
- {
- int y = 0;
- for (; y < reads; y++)
- {
- if (global_rlock->acquire () == -1)
- {
- if (ACE_Log_Msg::instance ()->errnum () == EDEADLK)
- {
- ACE_DEBUG ((LM_DEBUG, "rlock deadlock detected\n"));
- goto READ_DEADLOCK;
- }
- else return 0;
- }
-
- if (ACE_TOKEN_INVARIANTS::instance ()->acquired (global_rlock) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "reader acquire violated invariant.\n"), 0);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) rlock acquired.\n"));
- }
-
- if (renew)
- {
- ACE_TOKEN_INVARIANTS::instance ()->releasing (global_rlock);
-
- if (global_rlock->renew () == -1)
- {
- if (ACE_Log_Msg::instance ()->errnum () == EDEADLK)
- {
- ACE_DEBUG ((LM_DEBUG, "rlock deadlock detected during renew\n"));
- goto READ_DEADLOCK;
- }
- else return 0;
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) rlock renewed.\n"));
-
- if (ACE_TOKEN_INVARIANTS::instance ()->acquired (global_rlock) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "reader renew violated invariant.\n"), 0);
- }
-
- READ_DEADLOCK:
-
- for (; y > 0; y--)
- {
- ACE_TOKEN_INVARIANTS::instance ()->releasing (global_rlock);
- if (global_rlock->release () == 0)
- ACE_DEBUG ((LM_DEBUG, "(%t) r-released.\n"));
- }
-
- if (global_wlock->acquire () == -1)
- ACE_DEBUG ((LM_DEBUG, "wlock deadlock detected\n"));
- else
- {
- if (write_sleep)
- ACE_OS::sleep (1);
- ACE_DEBUG ((LM_DEBUG, "\t\t(%t) wlock acquired.\n"));
-
- if (ACE_TOKEN_INVARIANTS::instance ()->acquired (global_wlock) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "writer acquire violated invariant.\n"), 0);
-
- if (renew)
- {
- ACE_TOKEN_INVARIANTS::instance ()->releasing (global_wlock);
-
- if (global_wlock->renew () == -1)
- {
- if (ACE_Log_Msg::instance ()->errnum () == EDEADLK)
- {
- ACE_DEBUG ((LM_DEBUG, "wlock deadlock detected during renew\n"));
- }
- else return 0;
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) rlock renewed.\n"));
-
- if (ACE_TOKEN_INVARIANTS::instance ()->acquired (global_wlock) == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "writer renew violated invariant.\n"), 0);
- }
-
- ACE_TOKEN_INVARIANTS::instance ()->releasing (global_wlock);
-
- if (global_wlock->release () == 0)
- ACE_DEBUG ((LM_DEBUG, "\t\t(%t) w-released.\n"));
- }
- }
-
- ACE_DEBUG ((LM_DEBUG, "(%t) thread exiting.\n"));
- return 0;
-}
-
-static int
-parse_args (int argc, char *argv[])
-{
- ACE_LOG_MSG->open (argv[0], ACE_Log_Msg::STDERR); // | ACE_Log_Msg::VERBOSE);
-
- ACE_Get_Opt get_opt (argc, argv, "t:iun:dr:sp:h:R", 1);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'h': // specify the host machine on which the server is running
- server_host = get_opt.optarg;
- remote = 1;
- break;
- case 'p': // specify the port on which the server is running
- server_port = ACE_OS::atoi (get_opt.optarg);
- remote = 1;
- break;
- case 't':
- threads = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'R':
- renew = 1;
- break;
- case 'r':
- reads = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'd':
- debug = 1;
- break;
- case 's':
- write_sleep = 1;
- break;
- case 'n':
- iterations = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'i':
- ignore_deadlock = 1;
- break;
- case 'u':
- // usage: fallthrough
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n:\n"
- "[-h <remote host>]\n"
- "[-p <remote port>]\n"
- "[-i ignore deadlock]\n"
- "[-n <iterations>]\n"
- "[-R perform renews]\n"
- "[-r <reads>]\n"
- "[-d debug]\n"
- "[-s sleep during writes]\n"
- "[-t <threads>\n", 1), -1);
- }
- }
-
- return 0;
-}
-
-#if defined (ACE_HAS_PTHREADS)
-#define SUSPEND 0
-#else
-#define SUSPEND THR_SUSPENDED
-#endif
-
-int
-main (int argc, char* argv[])
-{
- if (parse_args (argc, argv) == -1)
- return -1;
-
- if (remote)
- {
- ACE_Remote_Mutex::set_server_address (ACE_INET_Addr (server_port, server_host));
- global_rlock = (ACE_Token_Proxy *) new
- ACE_Remote_RLock ("THE_TOKEN", ignore_deadlock, debug);
- global_wlock = (ACE_Token_Proxy *) new
- ACE_Remote_WLock ("THE_TOKEN", ignore_deadlock, debug);
- }
- else
- {
- global_rlock = (ACE_Token_Proxy *) new
- ACE_Local_RLock ("THE_TOKEN", ignore_deadlock, debug);
- global_wlock = (ACE_Token_Proxy *) new
- ACE_Local_WLock ("THE_TOKEN", ignore_deadlock, debug);
- }
-
- ACE_Thread_Manager mgr;
-
- if (mgr.spawn_n (threads, ACE_THR_FUNC (run_thread),
- (void *) 0,
- THR_BOUND | SUSPEND) == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "spawn failed"), -1);
-
-#if ! defined (ACE_HAS_PTHREADS)
- if (mgr.resume_all () == -1)
- ACE_ERROR_RETURN ((LM_DEBUG, "%p\n", "resume failed"), -1);
-#endif
-
- mgr.wait ();
-
- return 0;
-}
-
-#else
-int
-main (int, char *[])
-{
- ACE_ERROR_RETURN ((LM_ERROR,
- "threads not supported on this platform\n"), -1);
-}
-#endif /* ACE_HAS_THREADS */
diff --git a/netsvcs/lib/Base_Optimizer.cpp b/netsvcs/lib/Base_Optimizer.cpp
deleted file mode 100644
index 3cf3754c212..00000000000
--- a/netsvcs/lib/Base_Optimizer.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// $Id$
-
-#if !defined (BASE_OPTIMIZER_CPP)
-#define BASE_OPTIMIZER_CPP
-
-#include "Base_Optimizer.h"
-
-ACE_RCSID(lib, Base_Optimizer, "$Id$")
-
-template<class Base, class Member>
-Base_Optimizer<Base, Member>::Base_Optimizer (void)
-{
-}
-
-template<class Base, class Member>
-Base_Optimizer<Base, Member>::Base_Optimizer (const Base &base,
- const Member &member)
- : Base (base),
- m_ (member)
-{
-}
-
-template<class Base, class Member>
-Base_Optimizer<Base, Member>::Base_Optimizer (const Base &base)
- : Base (base)
-{
-}
-
-#endif /* BASE_OPTIMIZER_CPP */
diff --git a/netsvcs/lib/Base_Optimizer.h b/netsvcs/lib/Base_Optimizer.h
deleted file mode 100644
index 72b83e9f456..00000000000
--- a/netsvcs/lib/Base_Optimizer.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// netsvcs
-//
-// = FILENAME
-// Base_Optimizer.h
-//
-// = AUTHOR
-// Per Andersson.
-//
-// ============================================================================
-
-#ifndef BASE_OPTIMIZER_H
-#define BASE_OPTIMIZER_H
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-template<class Base, class Member>
-class Base_Optimizer : public Base
-{
- // = TITLE
- //
- // = DESCRIPTION
- // Thanks to Nathan Myers and Fergus Henderson for this little
- // beauty.
-
-public:
- Base_Optimizer (void);
- Base_Optimizer (const Base &base);
- Base_Optimizer (const Base &base,
- const Member &member);
-
- Member m_;
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "Base_Optimizer.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Base_Optimizer.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* BASE_OPTIMIZER_H */
diff --git a/netsvcs/lib/Client_Logging_Handler.cpp b/netsvcs/lib/Client_Logging_Handler.cpp
deleted file mode 100644
index 8fe4c6d5fbf..00000000000
--- a/netsvcs/lib/Client_Logging_Handler.cpp
+++ /dev/null
@@ -1,554 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Get_Opt.h"
-#include "ace/Acceptor.h"
-#include "ace/SOCK_Connector.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SPIPE_Acceptor.h"
-#include "Client_Logging_Handler.h"
-
-ACE_RCSID(lib, Client_Logging_Handler, "$Id$")
-
-ACE_Client_Logging_Handler::ACE_Client_Logging_Handler (ACE_HANDLE output_handle)
- : logging_output_ (output_handle)
-{
- // Register ourselves to receive SIGPIPE so we can attempt
- // reconnections.
-#if !defined (ACE_LACKS_UNIX_SIGNALS)
- if (ACE_Reactor::instance ()->register_handler (SIGPIPE,
- this) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%n: %p\n"),
- ACE_TEXT ("register_handler (SIGPIPE)")));
-#endif /* !ACE_LACKS_UNIX_SIGNALS */
-}
-
-// This is called when a <send> to the logging server fails...
-
-int
-ACE_Client_Logging_Handler::handle_signal (int signum,
- siginfo_t *,
- ucontext_t *)
-{
- if (signum == SIGPIPE)
- return 0;
- else
- return -1;
-}
-
-// This function is called every time a client connects to us.
-
-int
-ACE_Client_Logging_Handler::open (void *)
-{
- LOGGING_ADDR server_addr;
-
- // Register ourselves to receive <handle_input> callbacks when
- // clients send us logging records. Note that since we're really a
- // Singleton, this->peer() will change after each connect, so we
- // need to grab the value now.
- if (ACE_Reactor::instance ()->register_handler
- (this->peer ().get_handle (),
- this,
- ACE_Event_Handler::READ_MASK
- | ACE_Event_Handler::EXCEPT_MASK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("%n: %p\n"),
- ACE_TEXT ("register_handler")),
- -1);
- // Figure out what remote port we're really bound to.
- if (this->peer ().get_remote_addr (server_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("get_remote_addr")),
- -1);
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("connected to client on handle %u\n"),
- this->peer ().get_handle ()));
-#endif /* 0 */
- return 0;
-}
-
-/* VIRTUAL */ ACE_HANDLE
-ACE_Client_Logging_Handler::get_handle (void) const
-{
- ACE_TRACE ("ACE_Client_Logging_Handler::get_handle");
-
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("get_handle() shouldn't be called\n")));
-
- return ACE_INVALID_HANDLE;
-}
-
-// Receive a logging record from an application.
-
-int
-ACE_Client_Logging_Handler::handle_input (ACE_HANDLE handle)
-{
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("in handle_input, handle = %u\n"),
- handle));
-#endif /* 0 */
-
- if (handle == this->logging_output_)
- // We're getting a message from the logging server!
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("received data from server!\n")),
- -1);
- ACE_Log_Record log_record;
-#if defined (ACE_HAS_STREAM_PIPES)
- // We're getting a logging message from a local application.
-
- ACE_Str_Buf msg ((void *) &log_record,
- 0,
- sizeof log_record);
-
- ACE_SPIPE_Stream spipe;
- spipe.set_handle (handle);
- int flags = 0;
-
- int result = spipe.recv ((ACE_Str_Buf *) 0,
- &msg,
- &flags);
-
- // We've got a framed IPC mechanism, so we can just to a <recv>.
- if (result < 0 || msg.len == 0)
- {
- if (ACE_Reactor::instance ()->remove_handler
- (handle,
- ACE_Event_Handler::READ_MASK
- | ACE_Event_Handler::EXCEPT_MASK
- | ACE_Event_Handler::DONT_CALL) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("%n: %p\n"),
- ACE_TEXT ("remove_handler")),
- -1);
- spipe.close ();
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("client closing down\n")));
-#endif /* 0 */
- return 0;
- }
-#else
- ACE_INT32 length;
-
- // We need to use the old two-read trick here since TCP sockets
- // don't support framing natively. Note that the first call is just
- // a "peek" -- we don't actually remove the data until the second
- // call. Note that this code is portable as long as ACE_UNIT32 is
- // always 32 bits on both the sender and receiver side.
-
- ssize_t count = ACE_OS::recv (handle,
- (char *) &length,
- sizeof length,
- MSG_PEEK);
- switch (count)
- {
- // Handle shutdown and error cases.
- default:
- case -1:
- case 0:
- if (ACE_Reactor::instance ()->remove_handler
- (handle,
- ACE_Event_Handler::READ_MASK
- | ACE_Event_Handler::EXCEPT_MASK
- | ACE_Event_Handler::DONT_CALL) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("%n: %p\n"),
- ACE_TEXT ("remove_handler")),
- 0);
- if (handle == this->peer ().get_handle ())
- this->peer ().close ();
- else
- ACE_OS::closesocket (handle);
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("client closing down\n")));
-#endif /* 0 */
- return 0;
- /* NOTREACHED */
-
- case sizeof length:
-#if defined (ACE_WIN32)
- // This is a special-case sent from near line 610 in
- // Log_Msg.cpp. Without this code Win32 sockets are never
- // closed, so this server will quickly run out of handles.
- if (length == ~0)
- {
- if (ACE_Reactor::instance ()->remove_handler
- (handle,
- ACE_Event_Handler::READ_MASK
- | ACE_Event_Handler::EXCEPT_MASK
- | ACE_Event_Handler::DONT_CALL) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("%n: %p\n"),
- ACE_TEXT ("remove_handler")),
- 0);
-
- ACE_OS::closesocket (handle);
-# if 0
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("client closing down\n")));
-# endif /* 0 */
- return 0;
- }
-#endif /* ACE_WIN32 */
-
- ssize_t retrieved = ACE_OS::recv (handle,
- (char *) &log_record,
- (int) length);
-
- // We got a ``short-read.'' Try once more, then abandon all
- // hope on this socket. Note that if we were trying to write a
- // totally "bullet-proof" app that couldn't lose any data
- // unnecessarily we might want to put the socket into
- // non-blocking model and loop until we either get all the bytes
- // or something else happens to convince us that we won't get
- // the remainder of the data. In this case, however, we're in
- // "loopback" mode, so a failure to get all the data by the
- // second try is probably an indication that something is
- // seriously wrong, so shutting down the connection is probably
- // the best solution.
- if (retrieved != length)
- {
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("partial message retrieved, attempting second try...\n")));
-#endif /* 0 */
-
- int remainder = length - retrieved;
-
- int secondtry = ACE_OS::recv (handle,
- ((char *) &log_record) + retrieved,
- remainder);
- if (secondtry != remainder)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("recv")));
-
- if (ACE_Reactor::instance ()->remove_handler
- (handle,
- ACE_Event_Handler::READ_MASK
- | ACE_Event_Handler::EXCEPT_MASK
- | ACE_Event_Handler::DONT_CALL) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%n: %p\n"),
- ACE_TEXT ("remove_handler")));
-
- ACE_OS::closesocket (handle);
- return 0;
- }
- }
- }
-#endif /* ACE_HAS_STREAM_PIPES */
-
- // Forward the logging record to the server.
- if (this->send (log_record) == -1)
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("send")));
- return 0;
-}
-
-// Receive a logging record from an application send via a non-0
-// MSG_BAND... This just calls handle_input().
-
-int
-ACE_Client_Logging_Handler::handle_exception (ACE_HANDLE handle)
-{
- return this->handle_input (handle);
-}
-
-// Called when object is removed from the ACE_Reactor
-
-int
-ACE_Client_Logging_Handler::close (u_long)
-{
- if (this->logging_output_ != ACE_STDERR)
- ACE_OS::closesocket (this->logging_output_);
-
- this->destroy ();
- return 0;
-}
-
-int
-ACE_Client_Logging_Handler::handle_output (ACE_HANDLE)
-{
- return 0;
-}
-
-// Encodes the contents of log_record object using network byte-order
-// and sends it to the logging server.
-
-int
-ACE_Client_Logging_Handler::send (ACE_Log_Record &log_record)
-{
- ostream *orig_ostream = ACE_Log_Msg::instance ()->msg_ostream ();
-
- // This logic must occur before we do the encode() on <log_record>
- // since otherwise the values of the <log_record> fields will be in
- // network byte order.
- if (orig_ostream)
- log_record.print ("<localhost>",
- ACE_Log_Msg::instance ()->flags (),
- *orig_ostream);
-
- if (this->logging_output_ == ACE_STDERR)
- log_record.print ("<localhost>",
- ACE_Log_Msg::instance ()->flags (),
- stderr);
- else
- {
- long len = log_record.length ();
- log_record.encode ();
-
- if (ACE::send (this->logging_output_,
- (char *) &log_record,
- len) == -1)
- if (ACE_Log_Msg::instance ()->msg_ostream () == 0)
- // Switch over to logging to stderr for now. At some point,
- // we'll improve the implementation to queue up the message,
- // try to reestablish a connection, and then send the queued
- // data once we've reconnect to the logging server. If
- // you'd like to implement this functionality and contribute
- // it back to ACE that would be great!
- this->logging_output_ = ACE_STDERR;
- }
-
- return 0;
-}
-
-class ACE_Client_Logging_Acceptor : public ACE_Acceptor<ACE_Client_Logging_Handler, LOGGING_ACCEPTOR>
-{
- // = TITLE
- // This factory creates connections with the
- // <Server_Logging_Acceptor>.
- //
- // = DESCRIPTION
- // This class contains the service-specific methods that can't
- // easily be factored into the <ACE_Acceptor>.
-public:
- // = Initialization method.
- ACE_Client_Logging_Acceptor (void);
- // Default constructor.
-
-protected:
- // = Dynamic linking hooks.
- virtual int init (int argc, char *argv[]);
- // Called when service is linked.
-
- virtual int fini (void);
- // Called when service is unlinked.
-
- virtual int info (char **strp, size_t length) const;
- // Called to determine info about the service.
-
- virtual int make_svc_handler (ACE_Client_Logging_Handler *&sh);
- // Factory that always returns the <handler_>.
-
- // = Scheduling hooks.
- virtual int suspend (void);
- virtual int resume (void);
-
-private:
- int parse_args (int argc, char *argv[]);
- // Parse svc.conf arguments.
-
- const char *server_host_;
- // Host where the logging server is located.
-
- u_short server_port_;
- // Port number where the logging server is listening for
- // connections.
-
- ACE_INET_Addr server_addr_;
- // Address of the logging server.
-
- const char *logger_key_;
- // Communication endpoint where the client logging daemon will
- // listen for connections from clients.
-
- ACE_Client_Logging_Handler *handler_;
- // Pointer to the handler that does the work.
-};
-
-int
-ACE_Client_Logging_Acceptor::fini (void)
-{
- this->close ();
-
- if (this->handler_ != 0)
- this->handler_->close (0);
-
- // Try to unlink the logger key so weird things don't happen if
- // we're using STREAM pipes.
- ACE_OS::unlink (this->logger_key_);
-
- // This memory was allocated by <ACE_OS::strdup>.
- ACE_OS::free ((void *) this->logger_key_);
- ACE_OS::free ((void *) this->server_host_);
-
- return 0;
-}
-
-int
-ACE_Client_Logging_Acceptor::make_svc_handler (ACE_Client_Logging_Handler *&sh)
-{
- // Always return a pointer to the Singleton handler.
- sh = this->handler_;
- return 0;
-}
-
-int
-ACE_Client_Logging_Acceptor::info (char **strp, size_t length) const
-{
- char buf[BUFSIZ];
-
- ACE_OS::sprintf (buf, "%d/%s %s",
- this->server_addr_.get_port_number (), "tcp",
- "# client logging daemon\n");
-
- if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0)
- return -1;
- else
- ACE_OS::strncpy (*strp, buf, length);
- return ACE_OS::strlen (buf);
-}
-
-ACE_Client_Logging_Acceptor::ACE_Client_Logging_Acceptor (void)
- : server_host_ (ACE_OS::strdup (ACE_DEFAULT_SERVER_HOST)),
- server_port_ (ACE_DEFAULT_LOGGING_SERVER_PORT),
- logger_key_ (ACE_OS::strdup (ACE_DEFAULT_LOGGER_KEY)),
- handler_ (0)
-{
-}
-
-int
-ACE_Client_Logging_Acceptor::init (int argc, char *argv[])
-{
- // We'll log *our* error and debug messages to stderr!
- ACE_LOG_MSG->open ("Client Logging Service");
-
- // Use the options hook to parse the command line arguments and set
- // options.
- this->parse_args (argc, argv);
-
- // Try to unlink the logger key so weird things don't happen if
- // we're using STREAM pipes.
- ACE_OS::unlink (this->logger_key_);
-
- // Initialize the acceptor endpoint.
- if (this->open (LOGGING_ADDR (this->logger_key_)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- this->logger_key_),
- -1);
-
- // Establish connection with the server.
- ACE_SOCK_Connector con;
- ACE_SOCK_Stream stream;
-
- if (con.connect (stream,
- this->server_addr_) == -1)
- {
- ACE_ERROR ((LM_ERROR,
- ACE_TEXT ("%p, using stderr\n"),
- ACE_TEXT ("can't connect to logging server")));
- if (ACE_Log_Msg::instance ()->msg_ostream () == 0)
- // If we can't connect to the server then we'll send the logging
- // messages to stderr.
- stream.set_handle (ACE_STDERR);
- }
- else
- {
- ACE_INET_Addr server_addr;
-
- // Figure out what remote port we're really bound to.
- if (stream.get_remote_addr (server_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("get_remote_addr")),
- -1);
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("starting up Client Logging Daemon, ")
- ACE_TEXT ("connected to port %d on handle %u\n"),
- server_addr.get_port_number (),
- stream.get_handle ()));
- }
-
- // Create the Singleton <Client_Logging_Handler>.
- ACE_NEW_RETURN (this->handler_,
- ACE_Client_Logging_Handler (stream.get_handle ()),
- -1);
- return 0;
-}
-
-int
-ACE_Client_Logging_Acceptor::parse_args (int argc, char *argv[])
-{
- ACE_Get_Opt get_opt (argc, argv, "h:k:p:", 0);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'h':
- ACE_OS::free ((void *) this->server_host_);
- this->server_host_ = ACE_OS::strdup (get_opt.optarg);
- break;
- case 'k':
- ACE_OS::free ((void *) this->logger_key_);
- this->logger_key_ = ACE_OS::strdup (get_opt.optarg);
- break;
- case 'p':
- this->server_port_ = ACE_OS::atoi (get_opt.optarg);
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("%n:\n[-p server-port]\n%a"), 1),
- -1);
- }
- }
-
- if (this->server_addr_.set (this->server_port_,
- this->server_host_) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- ACE_TEXT ("%p\n"),
- ACE_TEXT ("set")),
- -1);
- return 0;
-}
-
-int
-ACE_Client_Logging_Acceptor::suspend (void)
-{
- // To be done...
- return 0;
-}
-
-int
-ACE_Client_Logging_Acceptor::resume (void)
-{
- // To be done...
- return 0;
-}
-
-// The following is a "Factory" used by the ACE_Service_Config and
-// svc.conf file to dynamically initialize the state of the
-// single-threaded logging server.
-
-ACE_SVC_FACTORY_DEFINE (ACE_Client_Logging_Acceptor)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor<ACE_Client_Logging_Handler, LOGGING_ACCEPTOR>;
-template class ACE_Svc_Handler<LOGGING_STREAM, ACE_NULL_SYNCH>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor<ACE_Client_Logging_Handler, LOGGING_ACCEPTOR>
-#pragma instantiate ACE_Svc_Handler<LOGGING_STREAM, ACE_NULL_SYNCH>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/netsvcs/lib/Client_Logging_Handler.h b/netsvcs/lib/Client_Logging_Handler.h
deleted file mode 100644
index b57f974c2ca..00000000000
--- a/netsvcs/lib/Client_Logging_Handler.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Client_Logging_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt <schmidt@.cs.wustl.edu>
-//
-// ============================================================================
-
-#ifndef ACE_CLIENT_LOGGER_H
-#define ACE_CLIENT_LOGGER_H
-
-#include "ace/SPIPE_Stream.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Stream.h"
-#include "ace/Svc_Handler.h"
-#include "ace/Synch.h"
-
-#if defined (ACE_HAS_STREAM_PIPES)
-#define LOGGING_STREAM ACE_SPIPE_STREAM
-#define LOGGING_ACCEPTOR ACE_SPIPE_ACCEPTOR
-#define LOGGING_ADDR ACE_SPIPE_Addr
-#else
-#define LOGGING_STREAM ACE_SOCK_STREAM
-#define LOGGING_ACCEPTOR ACE_SOCK_ACCEPTOR
-#define LOGGING_ADDR ACE_INET_Addr
-#endif /* ACE_HAS_STREAM_PIPES */
-
-class ACE_Svc_Export ACE_Client_Logging_Handler : public ACE_Svc_Handler<LOGGING_STREAM, ACE_NULL_SYNCH>
-{
- // = TITLE
- // This client logging daemon is a mediator that receives logging
- // records from local applications processes and forwards them to
- // the server logging daemon running on another host.
- //
- // = DESCRIPTION
- // The default implementation uses an <ACE_SPIPE_Stream> to
- // receive the logging message from the application and an
- // <ACE_SOCK_Stream> to forward the logging message to the
- // server. However, on platforms that don't support
- // <ACE_SPIPEs> (e.g., Win32) we use sockets instead.
-
-public:
- // = Initialization and termination.
-
- ACE_Client_Logging_Handler (ACE_HANDLE handle = ACE_STDERR);
- // Default constructor. <handle> is where the output is sent.
-
- virtual int open (void * = 0);
- // Activate this instance of the <ACE_Client_Logging_Handler>
- // (called by the <ACE_Client_Logging_Acceptor>).
-
- virtual ACE_HANDLE get_handle (void) const;
- // Return the handle of the <ACE_SPIPE_Stream>;
-
- virtual int close (u_long);
- // Called when object is removed from the <ACE_Reactor>.
-
-private:
- virtual int handle_signal (int signum,
- siginfo_t *,
- ucontext_t *);
- // Handle SIGPIPE.
-
- virtual int handle_input (ACE_HANDLE);
- // Receive logging records from applications.
-
- virtual int handle_exception (ACE_HANDLE);
- // Receive logging records from applications. This is necessary to
- // handle madness with UNIX select, which can't deal with MSG_BAND
- // data easily due to its overly simple interface... This just
- // calls <handle_input>.
-
- virtual int handle_output (ACE_HANDLE);
- // Called back when it's ok to send.
-
- int send (ACE_Log_Record &log_record);
- // Send the <log_record> to the logging server.
-
- ACE_HANDLE logging_output_;
- // This is either a SOCKET (if we're connected to a logging server)
- // or ACE_STDERR.
-};
-
-ACE_SVC_FACTORY_DECLARE (ACE_Client_Logging_Acceptor)
-
-#endif /* ACE_CLIENT_LOGGER_H */
diff --git a/netsvcs/lib/Log_Message_Receiver.cpp b/netsvcs/lib/Log_Message_Receiver.cpp
deleted file mode 100644
index ec439788798..00000000000
--- a/netsvcs/lib/Log_Message_Receiver.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-// $Id$
-
-#if !defined (LOG_MESSAGE_RECEIVER_CPP)
-#define LOG_MESSAGE_RECEIVER_CPP
-
-#include "ace/Log_Msg.h"
-#include "ace/Synch.h"
-#include "ace/Synch_T.h"
-#include "Log_Message_Receiver.h"
-
-ACE_RCSID(lib, Log_Message_Receiver, "$Id$")
-
-// Type based log message receiver
-template<ACE_SYNCH_DECL> void
-Static_Log_Message_Receiver<ACE_SYNCH_USE>::log_record (char const *hostname,
- ACE_Log_Record &record)
-{
-#if defined (ACE_HAS_THREADS)
- static ACE_SYNCH_MUTEX_T lock_;
- ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, lock_);
-#endif /* ACE_HAS_THREADS */
-
- record.print (hostname,
- ACE_Log_Msg::instance ()->flags (),
- stderr);
-}
-
-template<ACE_SYNCH_DECL> void
-Static_Log_Message_Receiver<ACE_SYNCH_USE>::log_output (char const *hostname,
- ACE_Log_Record &record,
- ostream *outputfile)
-{
- if (outputfile != 0)
- {
-#if defined (ACE_HAS_THREADS)
- static ACE_SYNCH_MUTEX_T lock_;
- ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, lock_);
-#endif /* ACE_HAS_THREADS */
- record.print (hostname,
- ACE_Log_Msg::instance ()->flags (),
- *outputfile);
- }
-}
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
-template<ACE_SYNCH_DECL>
-ACE_SYNCH_MUTEX_T Log_Message_Receiver_Impl<ACE_SYNCH_USE>::copy_lock_;
-#else
-static ACE_SYNCH_MUTEX global_copy_lock_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-
-template<ACE_SYNCH_DECL>
-Log_Message_Receiver_Impl<ACE_SYNCH_USE>::Log_Message_Receiver_Impl (void)
- : count_ (0)
-{
-}
-
-template<ACE_SYNCH_DECL>
-Log_Message_Receiver_Impl<ACE_SYNCH_USE> *
-Log_Message_Receiver_Impl<ACE_SYNCH_USE>::create (void)
-{
- return new Log_Message_Receiver_Impl<ACE_SYNCH_USE>;
-}
-
-template<ACE_SYNCH_DECL>
-Log_Message_Receiver_Impl<ACE_SYNCH_USE> *
-Log_Message_Receiver_Impl<ACE_SYNCH_USE>::attach (Log_Message_Receiver_Impl<ACE_SYNCH_USE> *body)
-{
- ACE_ASSERT (body != 0);
-
-#if defined (ACE_HAS_THREADS)
-# if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- Guard guard (copy_lock_);
- if (guard.locked () == 0)
- return 0;
-# else
- // Use the "body"s print lock as copy lock.
- ACE_GUARD_RETURN (ACE_SYNCH_MUTEX,
- guard,
- global_copy_lock_,
- 0);
-# endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-#endif /* ACE_HAS_THREADS */
- ++body->count_;
- return body;
-}
-
-template<ACE_SYNCH_DECL> void
-Log_Message_Receiver_Impl<ACE_SYNCH_USE>::detach (Log_Message_Receiver_Impl<ACE_SYNCH_USE> *body)
-{
- ACE_ASSERT (body != 0);
-
-#if defined (ACE_HAS_THREADS)
-# if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- Guard guard (copy_lock_);
- if (guard.locked () == 0)
- return;
-# else
- // Use the "body"s print lock as copy lock.
- ACE_GUARD (ACE_SYNCH_MUTEX,
- guard,
- global_copy_lock_);
-# endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-#endif /* ACE_HAS_THREADS */
- if (body->count_-- == 0)
- delete body;
-}
-
-// Type based log message receiver
-template<ACE_SYNCH_DECL> void
-Log_Message_Receiver_Impl<ACE_SYNCH_USE>::log_record (char const *hostname,
- ACE_Log_Record &record)
-{
- ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, print_lock_));
- record.print (hostname,
- ACE_Log_Msg::instance ()->flags (),
- stderr);
-}
-
-template<ACE_SYNCH_DECL> void
-Log_Message_Receiver_Impl<ACE_SYNCH_USE>::log_output (char const *hostname,
- ACE_Log_Record &record,
- ostream *outputfile)
-{
- if (outputfile != 0)
- {
- ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX_T, guard, print_lock_));
- record.print (hostname,
- ACE_Log_Msg::instance ()->flags (),
- *outputfile);
- }
-}
-
-template<ACE_SYNCH_DECL>
-Log_Message_Receiver_Impl<ACE_SYNCH_USE>::~Log_Message_Receiver_Impl (void)
-{
- ACE_ASSERT (count_ == 0 - 1);
-}
-
-template<ACE_SYNCH_DECL>
-Log_Message_Receiver<ACE_SYNCH_USE>::Log_Message_Receiver (void)
- : receiver_impl_ (Log_Message_Receiver_Impl<ACE_SYNCH_USE>::create ())
-{
- ACE_ASSERT (receiver_impl_ != 0);
-}
-
-template<ACE_SYNCH_DECL>
-Log_Message_Receiver<ACE_SYNCH_USE>::Log_Message_Receiver
- (Log_Message_Receiver<ACE_SYNCH_USE> const &rhs)
- : receiver_impl_ (Log_Message_Receiver_Impl<ACE_SYNCH_USE>::attach (rhs.receiver_impl_))
-{
- ACE_ASSERT (receiver_impl_ != 0);
-}
-
-// Type based log message receiver
-template<ACE_SYNCH_DECL> void
-Log_Message_Receiver<ACE_SYNCH_USE>::log_record(char const *hostname,
- ACE_Log_Record &record)
-{
- ACE_ASSERT (receiver_impl_ != 0);
- receiver_impl_->log_record (hostname, record);
-}
-
-template<ACE_SYNCH_DECL> void
-Log_Message_Receiver<ACE_SYNCH_USE>::log_output(char const *hostname,
- ACE_Log_Record &record,
- ostream *outputfile)
-{
- ACE_ASSERT (receiver_impl_ != 0);
- receiver_impl_->log_output (hostname, record, outputfile);
-}
-
-template<ACE_SYNCH_DECL>
-Log_Message_Receiver<ACE_SYNCH_USE>::~Log_Message_Receiver (void)
-{
- ACE_ASSERT (receiver_impl_ != 0);
- Log_Message_Receiver_Impl<ACE_SYNCH_USE>::detach (receiver_impl_);
-}
-
-#endif /* LOG_MESSAGE_RECEIVER_CPP */
diff --git a/netsvcs/lib/Log_Message_Receiver.h b/netsvcs/lib/Log_Message_Receiver.h
deleted file mode 100644
index 784fe07cec7..00000000000
--- a/netsvcs/lib/Log_Message_Receiver.h
+++ /dev/null
@@ -1,215 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Log_Message_Receiver
-//
-// = AUTHOR
-// Per Andersson
-//
-// ============================================================================
-
-#ifndef LOG_MESSAGE_RECEIVER_H
-#define LOG_MESSAGE_RECEIVER_H
-
-#include "ace/Log_Record.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Synch.h"
-
-// ==========================================================================//
-//------------- General Requirements on a Log Message Receiver --------------//
-// ==========================================================================//
-//
-// The requiremnts on a log manager receiver, T, are quite simple.
-// 1: There must exist one "log_record" member function with the following
-// prototype:
-// void log_record(char const* hostname,
-// ACE_Log_Record &record);
-//
-// 2: There must exist a public destructor.
-// 3: There must exist a public copy constructor.
-// 4: There must exist a default constructor. (for now)
-//
-//
-// The semantics are also simple. A log message receiver should
-// behave as an accessor object (smart pointer or envelope class).
-// It should be very cheap to copy and the should be no noticeable
-// difference when using either the new copy or the old log message
-// receiver.
-//
-// Methods:
-// void log_record(char const* hostname,
-// ACE_Log_Record& record)
-// Description:
-// Processes the log record "record" from the host "hostname"
-// Precondition:
-// hostname != 0;
-// Requirements:
-// Record must be a valid ACE_Log_Record.
-//
-// ==========================================================================//
-
-// ==========================================================================//
-// ------------ General Description of a Log Message Receiver -------------- //
-// ==========================================================================//
-//
-// Log Message Receivers, LRMs, are processing log records. It is the
-// LRM that writes a log message to stderr, stdout, a log file and maybee
-// converts some of the log messages to notifications, warnings, alarms
-// and forwards them to some operation and maintenance system (PATROL).
-//
-// The client logging handler and server logging handler are responsible
-// for forwarding, receiving, framing, processing log records.
-// That is a very usable service, but it should also be possible to change
-// how log records are processed without having to rewrite code in
-// the server log handler. This code should instead be written as a
-// separate entity, a Log Message Receiver.
-//
-// A simple LMR should be very easy to write but it should also
-// be possible to write more complex LMRs, like one that creates
-// a new log file each day or keeps a fixed size, round robin,
-// log file. It should also be possible to have separate LMRs
-// of the same type that uses differnt log files.
-//
-// ==========================================================================//
-
-
-// Type based log message receiver
-template<ACE_SYNCH_DECL>
-class Static_Log_Message_Receiver
-{
- // = TITLE
- // Static_Log_Message_Receiver is a simple log message receiver. It
- // has no instance data and only static member
- // functions. Static/typed based receivers are best when all LMR
- // should do exactly the same thing.
- //
- // = DESCRIPTION
- // This class contains a static log_record member function that
- // prints the content of log_records on stderr.
-
-public:
- static void log_record(const char *hostname,
- ACE_Log_Record &record);
- // Prints the log_record to stderr using record.print (hostname, 0, stderr).
- // Serializes the output by using a ACE_SYNCH_MUTEX.
-
- static void log_output(const char *hostname,
- ACE_Log_Record &record,
- ostream *output);
- // Prints the log_record to a user specified ostream.
-};
-
-// Instance based log message receiver
-
-// ------------------------ Log_Message_Receiver --------------------------- //
-//
-// Log_Message_Receiver is little more complicated log message receiver.
-// It is instance based and have a reference counted implementation.
-// Log_Message_Receiver is the envelope class for Log_Message_Receiver_Impl.
-//
-// ------------------------------------------------------------------------- //
-
-
-//Forward declaration
-template<ACE_SYNCH_DECL> class Log_Message_Receiver_Impl;
-
-template<ACE_SYNCH_DECL>
-class Log_Message_Receiver
-{
- // = TITLE
- // Log_Message_Receiver is a little more complicated log message
- // receiver. It is instance based and have a reference counted
- // implementation. Log_Message_Receiver is the envelope class for
- // Log_Message_Receiver_Impl. The difference between
- // Static_Log_Message_Receiver and Log_Message_Receiver is that is
- // possible to have instance data in Log_Message_Receiver.
- //
- // Comment:
- //
- // The practical usage of this is limited with the current
- // ACE_Server_Logging_Acceptor_T design. Since
- // ACE_Server_Logging_Acceptor_T will create the
- // Log_Message_Receiver using the default constructor. The main
- // reason for inclusion right now is to ensure that the code in
- // ACE_Server_Logging_Handler_T works both with type and instance
- // based LMRs.
- //
- // = DESCRIPTION
- // This class contains a log_record member function that prints the
- // content of log_records on stderr.
-public:
- Log_Message_Receiver (void);
- // Creates a new Log_Message_Receiver
- Log_Message_Receiver(Log_Message_Receiver<ACE_SYNCH_USE> const &rhs);
- ~Log_Message_Receiver (void);
-
- void log_record (const char *hostname,
- ACE_Log_Record &record);
-
- void log_output(const char *hostname,
- ACE_Log_Record &record,
- ostream *output);
-private:
- ACE_UNIMPLEMENTED_FUNC (void operator= (const Log_Message_Receiver<ACE_SYNCH_USE> &rhs))
-
- // Attributes.
- Log_Message_Receiver_Impl<ACE_SYNCH_USE> *receiver_impl_;
-};
-
-template<ACE_SYNCH_DECL>
-class Log_Message_Receiver_Impl
-{
- // = TITLE
- // Implementation with reference count.
-
- friend class ACE_Shutup_GPlusPlus; // Turn off g++ warning
-public:
- // Methods for handling reference count and instance lifetime
- static Log_Message_Receiver_Impl *create (void);
- static Log_Message_Receiver_Impl *attach (Log_Message_Receiver_Impl<ACE_SYNCH_USE> *body);
- static void detach (Log_Message_Receiver_Impl<ACE_SYNCH_USE> *body);
-
- void log_record (const char *hostname,
- ACE_Log_Record &record);
-
- void log_output(const char *hostname,
- ACE_Log_Record &record,
- ostream *output);
-
-private:
- Log_Message_Receiver_Impl (void);
- ~Log_Message_Receiver_Impl (void);
-
- typedef ACE_Guard<ACE_SYNCH_MUTEX_T> Guard;
- // Attributes
- int count_;
- ACE_SYNCH_MUTEX_T print_lock_;
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- static ACE_SYNCH_MUTEX_T copy_lock_;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-
- // = Not implemeted
- ACE_UNIMPLEMENTED_FUNC (Log_Message_Receiver_Impl (const Log_Message_Receiver_Impl<ACE_SYNCH_USE> &rhs))
- ACE_UNIMPLEMENTED_FUNC (void operator=(const Log_Message_Receiver_Impl<ACE_SYNCH_USE> &rhs))
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "Log_Message_Receiver.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Log_Message_Receiver.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* LOG_MESSAGE_RECEIVER_H */
diff --git a/netsvcs/lib/Makefile b/netsvcs/lib/Makefile
deleted file mode 100644
index 7c4bc98f3f4..00000000000
--- a/netsvcs/lib/Makefile
+++ /dev/null
@@ -1,1545 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the server-side ACE network services
-#----------------------------------------------------------------------------
-
-LIB = libnetsvcs.a
-SHLIB = libnetsvcs.$(SOEXT)
-
-FILES = TS_Server_Handler \
- TS_Clerk_Handler \
- Client_Logging_Handler \
- Name_Handler \
- Server_Logging_Handler_T \
- Log_Message_Receiver \
- Server_Logging_Handler \
- Token_Handler \
- Base_Optimizer
-
-DEFS = $(addsuffix .h,$(FILES))
-LSRC = $(addsuffix .cpp,$(FILES))
-
-LIBS += $(ACELIB)
-
-BUILD = $(VLIB) $(VSHLIB)
-
-#----------------------------------------------------------------------------
-# 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
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-ifeq ($(SUPPRESS_DASH_G),1)
-#### Build this target without -g on some platforms.
-$(VDIR)Server_Logging_Handler.o $(VSHDIR)Server_Logging_Handler.$(SOEXT):
- $(COMPILE-NO_DASH_G.cc) -o $@ $<
-endif # SUPPRESS_DASH_G
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/TS_Server_Handler.o .obj/TS_Server_Handler.so .shobj/TS_Server_Handler.o .shobj/TS_Server_Handler.so: TS_Server_Handler.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/SString.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i \
- TS_Server_Handler.h \
- $(ACE_ROOT)/ace/Acceptor.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Free_List.h \
- $(ACE_ROOT)/ace/Free_List.i \
- $(ACE_ROOT)/ace/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(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 \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(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/Time_Request_Reply.h
-
-.obj/TS_Clerk_Handler.o .obj/TS_Clerk_Handler.so .shobj/TS_Clerk_Handler.o .shobj/TS_Clerk_Handler.so: TS_Clerk_Handler.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- TS_Clerk_Handler.h \
- $(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/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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/Time_Request_Reply.h
-
-.obj/Client_Logging_Handler.o .obj/Client_Logging_Handler.so .shobj/Client_Logging_Handler.o .shobj/Client_Logging_Handler.so: Client_Logging_Handler.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Acceptor.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(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/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/SPIPE_Acceptor.h \
- $(ACE_ROOT)/ace/SPIPE_Stream.h \
- $(ACE_ROOT)/ace/SPIPE.h \
- $(ACE_ROOT)/ace/SPIPE_Addr.h \
- $(ACE_ROOT)/ace/SPIPE_Addr.i \
- $(ACE_ROOT)/ace/SPIPE.i \
- $(ACE_ROOT)/ace/SPIPE_Stream.i \
- Client_Logging_Handler.h
-
-.obj/Name_Handler.o .obj/Name_Handler.so .shobj/Name_Handler.o .shobj/Name_Handler.so: Name_Handler.cpp \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_T.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i \
- $(ACE_ROOT)/ace/Singleton.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(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/Auto_Ptr.h \
- $(ACE_ROOT)/ace/Auto_Ptr.i \
- $(ACE_ROOT)/ace/Auto_Ptr.cpp \
- Name_Handler.h \
- $(ACE_ROOT)/ace/Acceptor.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/Signal.i \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.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.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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(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/Naming_Context.h \
- $(ACE_ROOT)/ace/Name_Proxy.h \
- $(ACE_ROOT)/ace/SOCK_Connector.h \
- $(ACE_ROOT)/ace/SOCK_Connector.i \
- $(ACE_ROOT)/ace/Name_Request_Reply.h \
- $(ACE_ROOT)/ace/Name_Space.h
-
-.obj/Server_Logging_Handler_T.o .obj/Server_Logging_Handler_T.so .shobj/Server_Logging_Handler_T.o .shobj/Server_Logging_Handler_T.so: Server_Logging_Handler_T.cpp \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- Server_Logging_Handler_T.h \
- $(ACE_ROOT)/ace/Synch.h \
- $(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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/TLI_Acceptor.h \
- $(ACE_ROOT)/ace/TLI.h \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/TLI_Stream.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.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/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/Acceptor.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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- Server_Logging_Handler_T.cpp
-
-.obj/Log_Message_Receiver.o .obj/Log_Message_Receiver.so .shobj/Log_Message_Receiver.o .shobj/Log_Message_Receiver.so: Log_Message_Receiver.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- Log_Message_Receiver.h Log_Message_Receiver.cpp
-
-.obj/Server_Logging_Handler.o .obj/Server_Logging_Handler.so .shobj/Server_Logging_Handler.o .shobj/Server_Logging_Handler.so: Server_Logging_Handler.cpp \
- $(ACE_ROOT)/ace/Synch.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(ACE_ROOT)/ace/Log_Msg.h \
- $(ACE_ROOT)/ace/Log_Record.h \
- $(ACE_ROOT)/ace/Log_Priority.h \
- $(ACE_ROOT)/ace/Log_Record.i \
- Server_Logging_Handler.h Log_Message_Receiver.h \
- Log_Message_Receiver.cpp Server_Logging_Handler_T.h \
- $(ACE_ROOT)/ace/TLI_Acceptor.h \
- $(ACE_ROOT)/ace/TLI.h \
- $(ACE_ROOT)/ace/IPC_SAP.h \
- $(ACE_ROOT)/ace/IPC_SAP.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/Time_Value.h \
- $(ACE_ROOT)/ace/TLI_Stream.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.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/SOCK.i \
- $(ACE_ROOT)/ace/SOCK_IO.i \
- $(ACE_ROOT)/ace/SOCK_Stream.i \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/ace/Acceptor.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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- Server_Logging_Handler_T.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i
-
-.obj/Token_Handler.o .obj/Token_Handler.so .shobj/Token_Handler.o .shobj/Token_Handler.so: Token_Handler.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Get_Opt.i \
- Token_Handler.h \
- $(ACE_ROOT)/ace/Acceptor.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Message_Block.i \
- $(ACE_ROOT)/ace/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(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/Local_Tokens.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Local_Tokens.i \
- $(ACE_ROOT)/ace/Token_Collection.h \
- $(ACE_ROOT)/ace/Token_Collection.i \
- $(ACE_ROOT)/ace/Token_Request_Reply.h \
- $(ACE_ROOT)/ace/Token_Request_Reply.i
-
-.obj/Base_Optimizer.o .obj/Base_Optimizer.so .shobj/Base_Optimizer.o .shobj/Base_Optimizer.so: Base_Optimizer.cpp Base_Optimizer.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- Base_Optimizer.cpp
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/lib/Makefile.am b/netsvcs/lib/Makefile.am
deleted file mode 100644
index 09d075ee7f0..00000000000
--- a/netsvcs/lib/Makefile.am
+++ /dev/null
@@ -1,57 +0,0 @@
-##---------------------------------------------------------------------------
-## $Id$
-##
-## Makefile for the server-side ACE network services
-##
-##---------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir)
-
-lib_LTLIBRARIES = libnetsvcs.la
-
-libnetsvcs_la_SOURCES = \
- Base_Optimizer.cpp \
- Client_Logging_Handler.cpp \
- Log_Message_Receiver.cpp \
- Name_Handler.cpp \
- Server_Logging_Handler.cpp \
- Server_Logging_Handler_T.cpp \
- TS_Clerk_Handler.cpp \
- TS_Server_Handler.cpp \
- Token_Handler.cpp
-
-libnetsvcs_la_LDFLAGS = \
- -version-info @ACE_CURRENT@:@ACE_REVISION@:@ACE_AGE@
-
-noinst_HEADERS = \
- Base_Optimizer.h \
- Client_Logging_Handler.h \
- Log_Message_Receiver.h \
- Name_Handler.h \
- Server_Logging_Handler.h \
- Server_Logging_Handler_T.h \
- TS_Clerk_Handler.h \
- TS_Server_Handler.h \
- Token_Handler.h
-
-## Clean up template repositories, etc.
-clean-local:
- -rm -f *.bak *.rpo *.sym lib*.*_pure_* Makefile.old core
- -rm -rf ptrepository Templates.DB gcctemp.c gcctemp so_locations
-
-
-## What do we about the below? It was in the original libnetsvcs Makefile.
-## ifeq ($(SUPPRESS_DASH_G),1)
-## #### Build this target without -g on some platforms.
-## $(VDIR)Server_Logging_Handler.o $(VSHDIR)Server_Logging_Handler.$(SOEXT):
-## $(COMPILE-NO_DASH_G.cc) -o $@ $<
-## endif # SUPPRESS_DASH_G
-
diff --git a/netsvcs/lib/Makefile.bor b/netsvcs/lib/Makefile.bor
deleted file mode 100644
index 3ec380a58c3..00000000000
--- a/netsvcs/lib/Makefile.bor
+++ /dev/null
@@ -1,21 +0,0 @@
-
-NAME = netsvcs
-
-OBJFILES = \
- $(OBJDIR)\TS_Server_Handler.obj \
- $(OBJDIR)\TS_Clerk_Handler.obj \
- $(OBJDIR)\Client_Logging_Handler.obj \
- $(OBJDIR)\Name_Handler.obj \
- $(OBJDIR)\Log_Message_Receiver.obj \
- $(OBJDIR)\Server_Logging_Handler.obj \
- $(OBJDIR)\Token_Handler.obj \
- $(OBJDIR)\Base_Optimizer.obj
-
-CFLAGS = $(ACE_CFLAGS)
-
-CPPDIR = .
-
-LIBFILES = $(ACE_LIB)
-
-!include <$(ACE_ROOT)\include\makeinclude\build_core_library.bor>
-
diff --git a/netsvcs/lib/Name_Handler.cpp b/netsvcs/lib/Name_Handler.cpp
deleted file mode 100644
index e8d50e221e4..00000000000
--- a/netsvcs/lib/Name_Handler.cpp
+++ /dev/null
@@ -1,642 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Containers.h"
-#include "ace/Get_Opt.h"
-#include "ace/Singleton.h"
-#include "ace/Auto_Ptr.h"
-#include "Name_Handler.h"
-
-ACE_RCSID(lib, Name_Handler, "$Id$")
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Singleton<Naming_Context, ACE_SYNCH_NULL_MUTEX>;
-template class ACE_Accept_Strategy<ACE_Name_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Acceptor<ACE_Name_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Concurrency_Strategy<ACE_Name_Handler>;
-template class ACE_Creation_Strategy<ACE_Name_Handler>;
-template class ACE_Schedule_All_Reactive_Strategy<ACE_Name_Handler>;
-template class ACE_Scheduling_Strategy<ACE_Name_Handler>;
-template class ACE_Strategy_Acceptor<ACE_Name_Handler, ACE_SOCK_ACCEPTOR>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Singleton<Naming_Context, ACE_SYNCH_NULL_MUTEX>
-#pragma instantiate ACE_Accept_Strategy<ACE_Name_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Acceptor<ACE_Name_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Concurrency_Strategy<ACE_Name_Handler>
-#pragma instantiate ACE_Creation_Strategy<ACE_Name_Handler>
-#pragma instantiate ACE_Schedule_All_Reactive_Strategy<ACE_Name_Handler>
-#pragma instantiate ACE_Scheduling_Strategy<ACE_Name_Handler>
-#pragma instantiate ACE_Strategy_Acceptor<ACE_Name_Handler, ACE_SOCK_ACCEPTOR>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-// Simple macro that does bitwise AND -- useful in table lookup
-#define ACE_TABLE_MAP(INDEX, MASK) (INDEX & MASK)
-
-// Simple macro that does bitwise AND and then right shift bits by 3
-#define ACE_LIST_MAP(INDEX, MASK) (((unsigned long) (INDEX & MASK)) >> 3)
-
-int
-ACE_Name_Acceptor::parse_args (int argc, char *argv[])
-{
- ACE_TRACE ("ACE_Name_Acceptor::parse_args");
-
- this->service_port_ = ACE_DEFAULT_SERVER_PORT;
-
- ACE_LOG_MSG->open ("Name Service");
-
- ACE_Get_Opt get_opt (argc, argv, "p:", 0);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'p':
- this->service_port_ = ACE_OS::atoi (get_opt.optarg);
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n:\n[-p server-port]\n%a", 1),
- -1);
- }
- }
-
- this->service_addr_.set (this->service_port_);
- return 0;
-}
-
-int
-ACE_Name_Acceptor::init (int argc, char *argv[])
-{
- ACE_TRACE ("ACE_Name_Acceptor::init");
-
- // Use the options hook to parse the command line arguments and set
- // options.
- this->parse_args (argc, argv);
-
- // Set the acceptor endpoint into listen mode (use the Singleton
- // global Reactor...).
- if (this->open (this->service_addr_,
- ACE_Reactor::instance (),
- 0, 0, 0,
- &this->scheduling_strategy_,
- "Name Server",
- "ACE naming service") == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n: %p on port %d\n",
- "acceptor::open failed",
- this->service_addr_.get_port_number ()),
- -1);
-
- // Ignore SIGPIPE so that each <SVC_HANDLER> can handle this on its
- // own.
- ACE_Sig_Action sig ((ACE_SignalHandler) SIG_IGN, SIGPIPE);
- ACE_UNUSED_ARG (sig);
-
- ACE_INET_Addr server_addr;
-
- // Figure out what port we're really bound to.
- if (this->acceptor ().get_local_addr (server_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "get_local_addr"),
- -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "starting up Name Server at port %d on handle %d\n",
- server_addr.get_port_number (),
- this->acceptor ().get_handle ()));
- return 0;
-}
-
-// The following is a "Factory" used by the ACE_Service_Config and
-// svc.conf file to dynamically initialize the state of the Naming
-// Server.
-
-ACE_SVC_FACTORY_DEFINE (ACE_Name_Acceptor)
-
-// Default constructor.
-ACE_Name_Handler::ACE_Name_Handler (ACE_Thread_Manager *tm)
- : ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> (tm)
-{
- ACE_TRACE ("ACE_Name_Handler::ACE_Name_Handler");
-
- // Set up pointers to member functions for the top-level dispatching
- // of client requests.
- this->op_table_[ACE_Name_Request::BIND] = &ACE_Name_Handler::bind;
- this->op_table_[ACE_Name_Request::REBIND] = &ACE_Name_Handler::rebind;
- this->op_table_[ACE_Name_Request::RESOLVE] = &ACE_Name_Handler::resolve;
- this->op_table_[ACE_Name_Request::UNBIND] = &ACE_Name_Handler::unbind;
- this->op_table_[ACE_Name_Request::LIST_NAMES] = &ACE_Name_Handler::lists;
- this->op_table_[ACE_Name_Request::LIST_NAME_ENTRIES] = &ACE_Name_Handler::lists_entries;
-
- // Assign references to simplify subsequent code.
- LIST_ENTRY &list_names_ref = this->list_table_[ACE_LIST_MAP (ACE_Name_Request::LIST_NAMES,
- ACE_Name_Request::LIST_OP_MASK)];
- LIST_ENTRY &list_values_ref = this->list_table_[ACE_LIST_MAP (ACE_Name_Request::LIST_VALUES,
- ACE_Name_Request::LIST_OP_MASK)];
- LIST_ENTRY &list_types_ref = this->list_table_[ACE_LIST_MAP (ACE_Name_Request::LIST_TYPES,
- ACE_Name_Request::LIST_OP_MASK)];
-
- // Set up pointers to member functions for dispatching within the
- // LIST_{NAMES,VALUES,TYPES} methods.
-
- list_names_ref.operation_ = &ACE_Naming_Context::list_names;
- list_names_ref.request_factory_ = &ACE_Name_Handler::name_request;
- list_names_ref.description_ = "request for LIST_NAMES\n";
-
- list_values_ref.operation_ = &ACE_Naming_Context::list_values;
- list_values_ref.request_factory_ = &ACE_Name_Handler::value_request;
- list_values_ref.description_ = "request for LIST_VALUES\n";
-
- list_types_ref.operation_ = &ACE_Naming_Context::list_types;
- list_types_ref.request_factory_ = &ACE_Name_Handler::type_request;
- list_types_ref.description_ = "request for LIST_TYPES\n";
-}
-
-// Activate this instance of the ACE_Name_Handler (called by the
-// ACE_Name_Acceptor).
-
-/* VIRTUAL */ int
-ACE_Name_Handler::open (void *)
-{
- ACE_TRACE ("ACE_Name_Handler::open");
-
- // Call down to our parent to register ourselves with the Reactor.
- if (ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>::open (0) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
- return 0;
-}
-
-// Create and send a reply to the client.
-
-/* VIRTUAL */ int
-ACE_Name_Handler::send_reply (ACE_INT32 status,
- ACE_UINT32 err)
-{
- ACE_TRACE ("ACE_Name_Handler::send_reply");
- void *buf;
- this->name_reply_.msg_type (status);
- this->name_reply_.errnum (err);
-
- this->name_reply_.init ();
- int len = this->name_reply_.encode (buf);
-
- if (len == -1)
- return -1;
-
- ssize_t n = this->peer ().send (buf, len);
-
- if (n != len)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n, expected len = %d, actual len = %d",
- "send failed",
- len,
- n),
- -1);
- else
- return 0;
-}
-
-/* VIRTUAL */ int
-ACE_Name_Handler::send_request (ACE_Name_Request &request)
-{
- ACE_TRACE ("ACE_Name_Handler::send_request");
- void *buffer;
- ssize_t length = request.encode (buffer);
-
- if (length == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "encode failed"),
- -1);
- // Transmit request via a blocking send.
-
- if (this->peer ().send_n (buffer, length) != length)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "send_n failed"),
- -1);
- return 0;
-}
-
-// Give up waiting (e.g., when a timeout occurs or a client shuts down
-// unexpectedly).
-
-/* VIRTUAL */ int
-ACE_Name_Handler::abandon (void)
-{
- ACE_TRACE ("ACE_Name_Handler::abandon");
- return this->send_reply (-1, errno);
-}
-
-// Enable clients to limit the amount of time they'll wait
-
-/* VIRTUAL */ int
-ACE_Name_Handler::handle_timeout (const ACE_Time_Value &, const void *)
-{
- ACE_TRACE ("ACE_Name_Handler::handle_timeout");
- return this->abandon ();
-}
-
-// Return the underlying ACE_HANDLE.
-
-/* VIRTUAL */ ACE_HANDLE
-ACE_Name_Handler::get_handle (void) const
-{
- ACE_TRACE ("ACE_Name_Handler::get_handle");
- return this->peer ().get_handle ();
-}
-
-// Dispatch the appropriate operation to handle the client request.
-
-/* VIRTUAL */ int
-ACE_Name_Handler::dispatch (void)
-{
- ACE_TRACE ("ACE_Name_Handler::dispatch");
- // Dispatch the appropriate request.
- int index = this->name_request_.msg_type ();
-
- // Invoke the appropriate member function obtained by indexing into
- // the op_table_. ACE_TABLE_MAP returns the same index (by bitwise
- // AND) for list_names, list_values, and list_types since they are
- // all handled by the same method. Similarly, it returns the same
- // index for list_name_entries, list_value_entries, and
- // list_type_entries.
- return (this->*op_table_[ACE_TABLE_MAP (index,
- ACE_Name_Request::OP_TABLE_MASK)]) ();
-}
-
-// Receive, frame, and decode the client's request. Note, this method
-// should use non-blocking I/O.
-
-/* VIRTUAL */ int
-ACE_Name_Handler::recv_request (void)
-{
- ACE_TRACE ("ACE_Name_Handler::recv_request");
- // Read the first 4 bytes to get the length of the message This
- // implementation assumes that the first 4 bytes are the length of
- // the message.
- ssize_t n = this->peer ().recv ((void *) &this->name_request_,
- sizeof (ACE_UINT32));
- switch (n)
- {
- case -1:
- /* FALLTHROUGH */
- ACE_DEBUG ((LM_DEBUG,
- "****************** recv_request returned -1\n"));
- default:
- ACE_ERROR ((LM_ERROR,
- "%p got %d bytes, expected %d bytes\n",
- "recv failed",
- n,
- sizeof (ACE_UINT32)));
- /* FALLTHROUGH */
- case 0:
- // We've shutdown unexpectedly, let's abandon the connection.
- this->abandon ();
- return -1;
- /* NOTREACHED */
- case sizeof (ACE_UINT32):
- {
- // Transform the length into host byte order.
- ssize_t length = ntohl (this->name_request_.length ());
-
- // Do a sanity check on the length of the message.
- if (length > (ssize_t) sizeof this->name_request_)
- {
- ACE_ERROR ((LM_ERROR,
- "length %d too long\n",
- length));
- return this->abandon ();
- }
-
- // Receive the rest of the request message.
- // @@ beware of blocking read!!!.
- n = this->peer ().recv ((void *) (((char *) &this->name_request_)
- + sizeof (ACE_UINT32)),
- length - sizeof (ACE_UINT32));
-
- // Subtract off the size of the part we skipped over...
- if (n != (length - (ssize_t) sizeof (ACE_UINT32)))
- {
- ACE_ERROR ((LM_ERROR, "%p expected %d, got %d\n",
- "invalid length", length, n));
- return this->abandon ();
- }
-
- // Decode the request into host byte order.
- if (this->name_request_.decode () == -1)
- {
- ACE_ERROR ((LM_ERROR,
- "%p\n",
- "decode failed"));
- return this->abandon ();
- }
- }
- }
- return 0;
-}
-
-// Callback method invoked by the ACE_Reactor when events arrive from
-// the client.
-
-/* VIRTUAL */ int
-ACE_Name_Handler::handle_input (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_Name_Handler::handle_input");
-
- if (this->recv_request () == -1)
- return -1;
- else
- return this->dispatch ();
-}
-
-int
-ACE_Name_Handler::bind (void)
-{
- ACE_TRACE ("ACE_Name_Handler::bind");
- return this->shared_bind (0);
-}
-
-int
-ACE_Name_Handler::rebind (void)
-{
- ACE_TRACE ("ACE_Name_Handler::rebind");
- int result = this->shared_bind (1);
- return result == 1 ? 0 : result;
-}
-
-int
-ACE_Name_Handler::shared_bind (int rebind)
-{
- ACE_TRACE ("ACE_Name_Handler::shared_bind");
- ACE_WString a_name (this->name_request_.name (),
- this->name_request_.name_len () / sizeof (ACE_USHORT16));
- ACE_WString a_value (this->name_request_.value (),
- this->name_request_.value_len () / sizeof (ACE_USHORT16));
- int result;
- if (rebind == 0)
- {
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- "request for BIND \n"));
-#endif /* 0 */
- result = NAMING_CONTEXT::instance ()->bind (a_name,
- a_value,
- this->name_request_.type ());
- }
- else
- {
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- "request for REBIND \n"));
-#endif /* 0 */
- result = NAMING_CONTEXT::instance ()->rebind (a_name,
- a_value,
- this->name_request_.type ());
- if (result == 1)
- result = 0;
- }
- if (result == 0)
- return this->send_reply (0);
- else
- return this->send_reply (-1);
-}
-
-int
-ACE_Name_Handler::resolve (void)
-{
- ACE_TRACE ("ACE_Name_Handler::resolve");
-#if 0
- ACE_DEBUG ((LM_DEBUG, "request for RESOLVE \n"));
-#endif /* 0 */
- ACE_WString a_name (this->name_request_.name (),
- this->name_request_.name_len () / sizeof (ACE_USHORT16));
-
- // The following will deliver our reply back to client we
- // pre-suppose success (indicated by type RESOLVE).
-
- ACE_WString avalue;
- char *atype;
- if (NAMING_CONTEXT::instance ()->resolve (a_name, avalue, atype) == 0)
- {
- ACE_Auto_Basic_Array_Ptr<ACE_USHORT16> avalue_urep (avalue.ushort_rep ());
- ACE_Name_Request nrq (ACE_Name_Request::RESOLVE,
- 0,
- 0,
- avalue_urep.get (),
- avalue.length () * sizeof (ACE_USHORT16),
- atype, ACE_OS::strlen (atype));
- delete[] atype;
- return this->send_request (nrq);
- }
-
- ACE_Name_Request nrq (ACE_Name_Request::BIND, 0, 0, 0, 0, 0, 0);
- this->send_request (nrq);
- return 0;
-}
-
-int
-ACE_Name_Handler::unbind (void)
-{
- ACE_TRACE ("ACE_Name_Handler::unbind");
-#if 0
- ACE_DEBUG ((LM_DEBUG, "request for UNBIND \n"));
-#endif /* 0 */
- ACE_WString a_name (this->name_request_.name (),
- this->name_request_.name_len () / sizeof (ACE_USHORT16));
-
- if (NAMING_CONTEXT::instance ()->unbind (a_name) == 0)
- return this->send_reply (0);
- else
- return this->send_reply (-1);
-}
-
-ACE_Name_Request
-ACE_Name_Handler::name_request (ACE_WString *one_name)
-{
- ACE_TRACE ("ACE_Name_Handler::name_request");
- ACE_Auto_Basic_Array_Ptr<ACE_USHORT16> one_name_urep (one_name->ushort_rep ());
- return ACE_Name_Request (ACE_Name_Request::LIST_NAMES,
- one_name_urep.get (),
- one_name->length () * sizeof (ACE_USHORT16),
- 0, 0,
- 0, 0);
-}
-
-ACE_Name_Request
-ACE_Name_Handler::value_request (ACE_WString *one_value)
-{
- ACE_TRACE ("ACE_Name_Handler::value_request");
- ACE_Auto_Basic_Array_Ptr<ACE_USHORT16> one_value_urep (one_value->ushort_rep ());
- return ACE_Name_Request (ACE_Name_Request::LIST_VALUES,
- 0, 0,
- one_value_urep.get (),
- one_value->length () * sizeof (ACE_USHORT16),
- 0, 0);
-}
-
-ACE_Name_Request
-ACE_Name_Handler::type_request (ACE_WString *one_type)
-{
- ACE_TRACE ("ACE_Name_Handler::type_request");
- return ACE_Name_Request (ACE_Name_Request::LIST_TYPES,
- 0, 0,
- 0, 0,
- ACE_Auto_Basic_Array_Ptr<char> (one_type->char_rep ()).get (),
- one_type->length ());
-}
-
-int
-ACE_Name_Handler::lists (void)
-{
- ACE_TRACE ("ACE_Name_Handler::lists");
-
- ACE_PWSTRING_SET set;
- ACE_WString pattern (this->name_request_.name (),
- this->name_request_.name_len () / sizeof (ACE_USHORT16));
-
- // Get the index into the list table
- int index = ACE_LIST_MAP (this->name_request_.msg_type (),
- ACE_Name_Request::LIST_OP_MASK);
-
- // Print the message type
- ACE_DEBUG ((LM_DEBUG, list_table_[index].description_));
-
- // Call the appropriate method
- if ((NAMING_CONTEXT::instance ()->*list_table_[index].operation_) (set, pattern) != 0)
- {
- // None found so send blank request back
- ACE_Name_Request end_rq (ACE_Name_Request::MAX_ENUM, 0, 0, 0, 0, 0, 0);
-
- if (this->send_request (end_rq) == -1)
- return -1;
- }
- else
- {
- ACE_WString *one_entry = 0;
-
- for (ACE_Unbounded_Set_Iterator<ACE_WString> set_iterator (set);
- set_iterator.next (one_entry) !=0;
- set_iterator.advance())
- {
- ACE_Name_Request nrq ((this->*list_table_[index].request_factory_) (one_entry));
-
- // Create a request by calling the appropriate method obtained
- // by accessing into the table. Then send the request across.
- if (this->send_request (nrq) == -1)
- return -1;
- }
-
- // Send last message indicator.
- ACE_Name_Request nrq (ACE_Name_Request::MAX_ENUM,
- 0, 0,
- 0, 0,
- 0, 0);
- return this->send_request (nrq);
- }
- return 0;
-}
-
-int
-ACE_Name_Handler::lists_entries (void)
-{
- ACE_TRACE ("ACE_Name_Handler::lists_entries");
- ACE_BINDING_SET set;
- ACE_WString pattern (this->name_request_.name (),
- this->name_request_.name_len () / sizeof (ACE_USHORT16));
-
- int result = -1;
-
- const ACE_Name_Request::Constants msg_type =
- ACE_static_cast (ACE_Name_Request::Constants,
- this->name_request_.msg_type ());
-
- // NOTE: This multi-branch conditional statement used to be
- // (and should be) a switch statement. However, it caused
- // Internal compiler error 980331 with egcs 1.1 (2.91.57).
- // So, the pointer-to-member-function temporary has been removed.
- if (msg_type == ACE_Name_Request::LIST_NAME_ENTRIES)
- {
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- "request for LIST_NAME_ENTRIES \n"));
-#endif /* 0 */
- result = NAMING_CONTEXT::instance ()->
- ACE_Naming_Context::list_name_entries (set, pattern);
- }
- else if (msg_type == ACE_Name_Request::LIST_VALUE_ENTRIES)
- {
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- "request for LIST_VALUE_ENTRIES \n"));
-#endif /* 0 */
- result = NAMING_CONTEXT::instance ()->
- ACE_Naming_Context::list_value_entries (set, pattern);
- }
- else if (msg_type == ACE_Name_Request::LIST_TYPE_ENTRIES)
- {
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- "request for LIST_TYPE_ENTRIES \n"));
-#endif /* 0 */
- result = NAMING_CONTEXT::instance ()->
- ACE_Naming_Context::list_type_entries (set, pattern);
- }
- else
- return -1;
-
- if (result == 0)
- {
- ACE_Name_Binding *one_entry = 0;
-
- for (ACE_Unbounded_Set_Iterator<ACE_Name_Binding> set_iterator (set);
- set_iterator.next (one_entry) !=0;
- set_iterator.advance())
- {
- ACE_Auto_Basic_Array_Ptr<ACE_USHORT16>
- name_urep (one_entry->name_.ushort_rep ());
- ACE_Auto_Basic_Array_Ptr<ACE_USHORT16>
- value_urep (one_entry->value_.ushort_rep ());
- ACE_Name_Request mynrq (this->name_request_.msg_type (),
- name_urep.get (),
- one_entry->name_.length () * sizeof (ACE_USHORT16),
- value_urep.get (),
- one_entry->value_.length () * sizeof (ACE_USHORT16),
- one_entry->type_,
- ACE_OS::strlen (one_entry->type_));
-
- if (this->send_request (mynrq) == -1)
- return -1;
- }
-
- // send last message indicator
- ACE_Name_Request nrq (ACE_Name_Request::MAX_ENUM, 0, 0, 0, 0, 0, 0);
-
- if (this->send_request (nrq) == -1)
- return -1;
- }
- else
- {
- // None found so send blank request back.
- ACE_Name_Request end_rq (ACE_Name_Request::MAX_ENUM, 0, 0, 0, 0, 0, 0);
-
- if (this->send_request (end_rq) == -1)
- return -1;
- }
-
- return 0;
-}
-
-ACE_Name_Handler::~ACE_Name_Handler (void)
-{
- ACE_TRACE ("ACE_Name_Handler::~ACE_Name_Handler");
-#if 0
- ACE_DEBUG ((LM_DEBUG, "closing down Handle %d\n",
- this->get_handle ()));
-#endif /* 0 */
-}
diff --git a/netsvcs/lib/Name_Handler.h b/netsvcs/lib/Name_Handler.h
deleted file mode 100644
index e1ec4b9ee5b..00000000000
--- a/netsvcs/lib/Name_Handler.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Name_Handler.h
-//
-// = AUTHOR
-// Prashant Jain, Gerhard Lenzer, and Douglas C. Schmidt
-//
-// ============================================================================
-
-#ifndef ACE_NAME_HANDLER_H
-#define ACE_NAME_HANDLER_H
-
-#include "ace/Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Acceptor.h"
-#include "ace/SString.h"
-#include "ace/Naming_Context.h"
-#include "ace/Name_Request_Reply.h"
-#include "ace/Singleton.h"
-
-class Naming_Context : public ACE_Naming_Context
-{
- // = TITLE
- //
- // This helper class adds the correct default constructor to the
- // <ACE_Naming_Context> class so that we can use it in
- // <ACE_Singleton>.
-public:
- Naming_Context (void)
- : ACE_Naming_Context (ACE_Naming_Context::NET_LOCAL) {}
-};
-
-typedef ACE_Singleton<Naming_Context, ACE_SYNCH_NULL_MUTEX> NAMING_CONTEXT;
-
-class ACE_Svc_Export ACE_Name_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
- // = TITLE
- // Product object created by <ACE_Name_Acceptor>. An
- // <ACE_Name_Handler> exchanges messages with a <ACE_Name_Proxy>
- // object on the client-side.
- //
- // = DESCRIPTION
- // This class is the main workhorse of the <ACE_Name_Server>. It
- // handles client requests to bind, rebind, resolve, and unbind
- // names. It also schedules and handles timeouts that are used to
- // support "timed waits." Clients used timed waits to bound the
- // amount of time they block trying to get a name.
-
- friend class ACE_Shutup_GPlusPlus; // Turn off g++ warning
-public:
- typedef int (ACE_Name_Handler::*OPERATION) (void);
- // Pointer to a member function of ACE_Name_Handler returning int
-
- typedef int (ACE_Naming_Context::*LIST_OP) (ACE_PWSTRING_SET &, const ACE_WString &);
- // Pointer to a member function of ACE_Naming_Context returning int
-
- typedef ACE_Name_Request (ACE_Name_Handler::*REQUEST) (ACE_WString *);
- // Pointer to a member function of ACE_Name_Handler returning ACE_Name_Request
-
- // = Initialization and termination.
-
- ACE_Name_Handler (ACE_Thread_Manager * = 0);
- // Default constructor.
-
- virtual int open (void * = 0);
- // Activate this instance of the <ACE_Name_Handler> (called by the
- // <ACE_Strategy_Acceptor>).
-
-protected:
- // = Helper routines for the operations exported to clients.
-
- virtual int abandon (void);
- // Give up waiting (e.g., when a timeout occurs or a client shuts
- // down unexpectedly).
-
- // = Low level routines for framing requests, dispatching
- // operations, and returning replies.
-
- virtual int recv_request (void);
- // Receive, frame, and decode the client's request.
-
- virtual int dispatch (void);
- // Dispatch the appropriate operation to handle the client's
- // request.
-
- virtual int send_reply (ACE_INT32 status,
- ACE_UINT32 errnum = 0);
- // Create and send a reply to the client.
-
- virtual int send_request (ACE_Name_Request &);
- // Special kind of reply
-
- // = Demultiplexing hooks.
- virtual ACE_HANDLE get_handle (void) const;
- // Return the underlying <ACE_HANDLE>.
-
- virtual int handle_input (ACE_HANDLE);
- // Callback method invoked by the <ACE_Reactor> when client events
- // arrive.
-
- // = Timer hook.
- virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg);
- // Enable clients to limit the amount of time they wait for a name.
-
-private:
-
- OPERATION op_table_[ACE_Name_Request::MAX_ENUM];
- // Table of pointers to member functions
-
- struct LIST_ENTRY
- {
- LIST_OP operation_;
- // A member function pointer that performs the appropriate
- // operation (e.g., LIST_NAMES, LIST_VALUES, or LIST_TYPES).
-
- REQUEST request_factory_;
- // A member function pointer that serves as a factory to create a
- // request that is passed back to the client.
-
- const char *description_;
- // Name of the operation we're dispatching (used for debugging).
- };
-
- LIST_ENTRY list_table_[ACE_Name_Request::MAX_LIST];
- // This is the table of pointers to functions that we use to
- // simplify the handling of list requests.
-
- ACE_Name_Request name_request_;
- // Cache request from the client.
-
- ACE_Name_Request name_request_back_;
- // Special kind of reply for resolve and listnames.
-
- ACE_Name_Reply name_reply_;
- // Cache reply to the client.
-
- ACE_INET_Addr addr_;
- // Address of client we are connected with.
-
- ~ACE_Name_Handler (void);
- // Ensure dynamic allocation...
-
- int bind (void);
- // Handle binds.
-
- int rebind (void);
- // Handle rebinds.
-
- int shared_bind (int rebind);
- // Handle binds and rebinds.
-
- int resolve (void);
- // Handle find requests.
-
- int unbind (void);
- // Handle unbind requests.
-
- int lists (void);
- // Handle LIST_NAMES, LIST_VALUES, and LIST_TYPES requests.
-
- int lists_entries (void);
- // Handle LIST_NAME_ENTRIES, LIST_VALUE_ENTRIES, and
- // LIST_TYPE_ENTRIES requests.
-
- ACE_Name_Request name_request (ACE_WString *one_name);
- // Create a name request.
-
- ACE_Name_Request value_request (ACE_WString *one_name);
- // Create a value request.
-
- ACE_Name_Request type_request (ACE_WString *one_name);
- // Create a type request.
-};
-
-class ACE_Name_Acceptor : public ACE_Strategy_Acceptor<ACE_Name_Handler, ACE_SOCK_ACCEPTOR>
-{
- // = TITLE
- // This class contains the service-specific methods that can't
- // easily be factored into the <ACE_Strategy_Acceptor>.
-public:
- virtual int init (int argc, char *argv[]);
- // Dynamic linking hook.
-
- int parse_args (int argc, char *argv[]);
- // Parse svc.conf arguments.
-
-private:
- ACE_Schedule_All_Reactive_Strategy<ACE_Name_Handler> scheduling_strategy_;
- // The scheduling strategy is designed for Reactive services.
-};
-
-ACE_SVC_FACTORY_DECLARE (ACE_Name_Acceptor)
-
-#endif /* ACE_NAME_HANDLER_H */
diff --git a/netsvcs/lib/README b/netsvcs/lib/README
deleted file mode 100644
index f624b1758fc..00000000000
--- a/netsvcs/lib/README
+++ /dev/null
@@ -1,267 +0,0 @@
-This directory provides a number of network services that utilize the
-ACE wrapper features.
-
- . Logging_Strategy -- Controls the output of all services that are
- invoked along with the Logging_Strategy service. Please see below for
- details on how to control the output.
-
- . [Thr_]Server_Logging_Handler.* -- Implements server portion
- of the ACE distributed logging service. Both multi-threaded
- and single-threaded implementations are provided.
-
- . Client_Logging_Handler.* -- Implements the client portion
- of the ACE distributed logging service.
-
- . Name_Handler.* -- Implements a distributed name service that
- allows applications to bind, find, and unbind names in
- a distributed system.
-
- . Token_Handler.* -- Implements a distributed token
- service that allows applications to acquire and release
- locks in a distributed system.
-
- . Time_Handler.* -- Implements a distributed time service that
- allows distributed applications to synchronize their
- time.
-
-The remainder of this README file explains how these services work.
-
-==================== Logging_Strategy Service ====================
-The Logging_Strategy Service can be used to control the output of all the
-network services. It can be invoked with certain flags that determine
-where the output of all the services should go.
-
-The Logging_Strategy Service sets the flags in ACE_Log_Msg which in turn
-controls all the streams through macros such as ACE_DEBUG, ACE_ERROR,
-and ACE_ERROR_RETURN.
-
-If default behavior is required, the Logging_Strategy Service need not be
-invoked or it can be invoked with no paramaters. Here are the command
-line arguments that can be given to the Logging_Strategy Service:
-<CODE>
-
- -f <flag1>|<flag2>|<flag3> (etc...)
-</CODE>
- where a flag can be any of the following:
-
- STDERR -- Write messages to stderr.
- LOGGER -- Write messages to the local client logger deamon.
- OSTREAM -- Write messages to the ostream that gets created by
- specifying a filename (see below)
- VERBOSE -- Display messages in a verbose manner
- SILENT -- Do not print messages at all
-
-Note: If more than one flag is specified, the flags need to be 'OR'ed
-as above syntax shows. Make sure there is no space in between the flag
-and '|'.
-
- -s filename
-
- If the OSTREAM flag is set, this can be used to specify the
-filename where the output should be directed. Note that if the OSTREAM
-flag is set and no filename is specified, ACE_DEFAULT_LOGFILE will be
-used to write the output to.
-
-Examples:
-
-To direct output only to STDERR, specify command line arguments as:
- "-f STDERR"
-
-To direct output to both STDERR and a file called "mylog", specify
-command line arguments as:
- "-f STDERR|OSTREAM -s mylog"
-
-==================== Name Service ====================
-
-This file describes the principles of the Name_Server server test
-application.
-
-1. Startup configuration
- ---------------------
-
-To communicate with the server process, a client needs to know the
-INET_Addr, where the server offers its service. Class Name_Options
-holds all the configuration information of the Name Service. This
-consists of :
-
- - nameserver_port : Port number where the server process expects requests
- - nameserver_host : hostname where the server process resides
- - namespace_dir : directory that holds the NameBinding databases
- - process_name : name of the client process (argv[0]), NameBindings of
- a ProcessLocal namespace are stored in file
- "namespace_dir/process_name". NameBindings of NodeGlobal
- namespace are stored in "namespace_dir/localnames".
- NameBindings of Net_Local namespace are stored in file
- "namespace_dir/globalnames" on the server host.
- These configuration parameters are passed to the process as commandline
- arguments to main:
- -p nameserver port
- -h nameserver host
- -l namespace directory
-
- The main program _must_ initialize an instance of Name_Options with name
- name_options (since the shared libraries depend on this). Main should
- look like :
-
- #include "ace/Name_Options.h"
-
- Name_Options name_options;
-
- int main(int argc, char **argv)
- {
- name_options.process_name(argv[0]);
- name_options.parse_args (argc, argv);
- ......
- }
-
-See the examples in the tests subdirectory of
-...Name_Server/Client-Server/client and
-...Name_Server/Client-Server/server
-
-
-2. Class Naming_Context
- -------------------
-
-This is the main workhorse of the Name Service. It is used by client
-processes as well as by the server process. It manages all accesses to
-the appropriate NameBinding database (that is the file where
-NameBindings are stored) and it also manages the communication between
-a client process and the server (by using class Name_Proxy, which is a
-private member of Naming_Context). (Note: no IPC is necessary, if a
-client process runs on the same host as the server).
-
-The strategy for all public methods of Naming_Context is common :
-
-1. Transform the format of the arguments to ACE_SString (which is
- internally used) if necessary.
-
-2. check if work can be done locally : -> call the appropriate local_* method
- otherwise call the appropriate global_* method.
-
-Removing Name_Bindings from the database (either with unbind or
-rebind) uses the ACE_Malloc class configured with the
-ACE_MMAP_Memory_Pool. This allows memory to be reclaimed when
-name/value tuples are unbound.
-
-3. Class Name_Server
- ----------------
-
-The Name_Server registers in its run method its Name_Acceptor
-(instantiated with the INET_Addr) at the Reactor, to receive incoming
-requests.
-
-4. Class Name_Acceptor
- ------------------
-
-The Name_Acceptor allocates in its handle_input routine a new instance
-of class Name_Handler on the heap, and accepts connections into this
-Name_Handler.
-
-5. Class Name_Handler
- -----------------
-
-The Name_Handler represents the server side of communication between
-client and server. It interprets incoming requests to the Net_Local
-namespace and dele- gates the requests to its own Naming_Context
-(which is the Net_Local namespace on the current host). For
-communication it uses the helper classes Name_Request (which up to now
-needs not only contain the request from the client, but also the
-appropriate reply from the server) and Name_Reply. Note that I want
-to change the usage of these classes to make the structure of the
-software clearer.
-
-6. Dependencies
- ------------
-
-As the Name service must be able to handle wide character strings, it
-uses ACE_WString String classes.
-
-
-==================== Time Service ====================
-
-The following is a description of the Time Server clerk and server
-services:
-
-1. Startup configuration
- ---------------------
-
-Configuring a server requires specifying the port number of the
-server. This can be specified as a command line argument as follows:
-
- -p <port number>
-
-A clerk communicates with one or more server processes. To communicate
-with the server process, a client needs to know the INET_Addr, where
-the server offers its service. The configuration parameters namely the
-server port and server host are passed as command line arguments when
-starting up the clerk service as follows:
-
- -h <server host1>:<server port1> -h <server host2>:<server port2> ...
-
-Note that multiple servers can be specified in this manner for the
-clerk to connect to when it starts up. The server name and the port
-number need to be concatenated and separated by a ":". In addition,
-the timeout value can also be specified as a command line argument as
-follows:
-
- -t timeout
-
-The timeout value specifies the time interval at which the clerk
-should query the servers for time updates.
-
-By default a Clerk does a non-blocking connect to a server. This can
-be overridden and a Clerk can be made to do a blocking connect by
-using the -b flag.
-
-Here is what a config file would look like for starting up a server at
-port 20202:
-
-dynamic Time_Service Service_Object * ../lib/netsvcs:_make_ACE_TS_Server_Acceptor() "-p 20202"
-
-Here is what a config file would look like for starting up a clerk
-that needs to connect to two servers, one at tango and one at lambada:
-
-dynamic Time_Server_test Service_Object *../lib/netsvcs:_make_ACE_TS_Clerk_Processor () "-h tango:20202 -h lambada:20202 -t 4"
-
-2. Class TS_Server_Handler
- -----------------------
-
-TS_Server_Handler represents the server side of communication between
-clerk and server. It interprets incoming requests for time updates,
-gets the system time, creates a reply in response to the request and
-then sends the reply to the clerk from which it received the request.
-For communication it uses the helper class Time_Request.
-
-3. Class TS_Server_Acceptor
- ------------------------
-
-TS_Server_Acceptor allocates in its handle_input routine a new instance
-of class TS_Server_Handler on the heap, and accepts connections into this
-TS_Server_Handler.
-
-4. Class TS_Clerk_Handler
- ----------------------
-
-TS_Clerk_Handler represents the clerk side of communication between
-clerk and server. It generates requests for time updates every timeout
-period and then sends these requests to all the servers it is
-connected to asynchronously. It receives the replies to these requests
-from the servers through its handle_input method and then adjusts the
-time using the roundtrip estimate. It caches this time which is later
-retrieved by TS_Clerk_Processor.
-
-5. Class TS_Clerk_Processor
- ------------------------
-
-TS_Clerk_Processor creates a new instance of TS_Clerk_Handler for
-every server connection it needs to create. It periodically calls
-send_request() of every TS_Clerk_Handler to send a request for time
-update to all the servers. In the process, it retrieves the latest
-time cached by each TS_Clerk_Handler and then uses it to compute its
-notion of the local system time.
-
-6. Algorithms
- ----------
-
-Currently, updating the system time involves taking the average of all
-the times received from the servers.
diff --git a/netsvcs/lib/Server_Logging_Handler.cpp b/netsvcs/lib/Server_Logging_Handler.cpp
deleted file mode 100644
index 46b2c4ba76e..00000000000
--- a/netsvcs/lib/Server_Logging_Handler.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-// $Id$
-
-#if !defined (ACE_SERVER_LOGGING_HANDLER_C)
-#define ACE_SERVER_LOGGING_HANDLER_C
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Synch.h"
-#include "Server_Logging_Handler.h"
-
-ACE_RCSID(lib, Server_Logging_Handler, "$Id$")
-
-// The following are "Factories" used by the ACE_Service_Config and
-// svc.conf file to dynamically initialize the state of the
-// single-threaded and multi-threaded logging server.
-
-ACE_SVC_FACTORY_DEFINE (ACE_Server_Logging_Acceptor)
-ACE_SVC_FACTORY_DEFINE (ACE_Thr_Server_Logging_Acceptor)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class Log_Message_Receiver_Impl<ACE_NULL_SYNCH>;
-#if defined (ACE_HAS_THREADS)
-#if !defined (ACE_HAS_MACOSX_DYLIB)
-template class Static_Log_Message_Receiver<ACE_NULL_SYNCH>;
-#endif
-template class ACE_Acceptor<Null_Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Accept_Strategy<Null_Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Concurrency_Strategy<Null_Synch_Logging_Handler_Static_Receiver>;
-template class ACE_Creation_Strategy<Null_Synch_Logging_Handler_Static_Receiver>;
-template class ACE_Schedule_All_Reactive_Strategy<Null_Synch_Logging_Handler_Static_Receiver>;
-template class ACE_Scheduling_Strategy<Null_Synch_Logging_Handler_Static_Receiver>;
-template class ACE_Strategy_Acceptor<Null_Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Server_Logging_Acceptor_T<Null_Synch_Logging_Handler_Static_Receiver,
- Null_Synch_Static_Receiver,
- ACE_Schedule_All_Reactive_Strategy<Null_Synch_Logging_Handler_Static_Receiver> >;
-template class ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH, Null_Synch_Static_Receiver>;
-template class ACE_Server_Logging_Handler<Null_Synch_Static_Receiver>;
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) && !defined (__GNUG__)
- template class Base_Optimizer<Null_Synch_Static_Receiver, ACE_CString>;
- template class Base_Optimizer<Null_Synch_Static_Receiver, ACE_Schedule_All_Reactive_Strategy<Null_Synch_Logging_Handler_Static_Receiver> >;
-#endif /* ! (ACE_HAS_BROKEN_HPUX_TEMPLATES) && ! (__GNUG__) */
-#endif /* ACE_HAS_THREADS */
-
-#if !defined (ACE_HAS_MACOSX_DYLIB)
-template class Static_Log_Message_Receiver<ACE_LOGGER_SYNCH>;
-#endif
-template class Log_Message_Receiver<ACE_LOGGER_SYNCH>;
-template class ACE_Acceptor<Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Acceptor<Synch_Thr_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Acceptor<Synch_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Acceptor<Synch_Thr_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>;
-
-template class ACE_Accept_Strategy<Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Accept_Strategy<Synch_Thr_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Accept_Strategy<Synch_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Accept_Strategy<Synch_Thr_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>;
-
-template class ACE_Concurrency_Strategy<Synch_Logging_Handler_Static_Receiver>;
-template class ACE_Concurrency_Strategy<Synch_Thr_Logging_Handler_Static_Receiver>;
-template class ACE_Concurrency_Strategy<Synch_Logging_Handler_Receiver>;
-template class ACE_Concurrency_Strategy<Synch_Thr_Logging_Handler_Receiver>;
-
-template class ACE_Creation_Strategy<Synch_Logging_Handler_Static_Receiver>;
-template class ACE_Creation_Strategy<Synch_Thr_Logging_Handler_Static_Receiver>;
-template class ACE_Creation_Strategy<Synch_Logging_Handler_Receiver>;
-template class ACE_Creation_Strategy<Synch_Thr_Logging_Handler_Receiver>;
-
-template class ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Static_Receiver>;
-template class ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Receiver>;
-
-template class ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Static_Receiver>;
-template class ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Receiver>;
-
-template class ACE_Scheduling_Strategy<Synch_Logging_Handler_Static_Receiver>;
-template class ACE_Scheduling_Strategy<Synch_Logging_Handler_Receiver>;
-template class ACE_Scheduling_Strategy<Synch_Thr_Logging_Handler_Static_Receiver>;
-template class ACE_Scheduling_Strategy<Synch_Thr_Logging_Handler_Receiver>;
-
-template class ACE_Strategy_Acceptor<Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Strategy_Acceptor<Synch_Thr_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Strategy_Acceptor<Synch_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>;
-template class ACE_Strategy_Acceptor<Synch_Thr_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>;
-
-template class ACE_Server_Logging_Acceptor_T<Synch_Logging_Handler_Static_Receiver,
- Synch_Static_Receiver,
- ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Static_Receiver> >;
-template class ACE_Server_Logging_Acceptor_T<Synch_Thr_Logging_Handler_Static_Receiver,
- Synch_Static_Receiver,
- ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Static_Receiver> >;
-template class ACE_Server_Logging_Acceptor_T<Synch_Logging_Handler_Receiver,
- Synch_Receiver,
- ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Receiver> >;
-template class ACE_Server_Logging_Acceptor_T<Synch_Thr_Logging_Handler_Receiver,
- Synch_Receiver,
- ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Receiver> >;
-
-template class ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH, Synch_Static_Receiver>;
-template class ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH, Synch_Receiver>;
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) && !defined (__GNUG__)
- template class Base_Optimizer<Synch_Static_Receiver, ACE_CString>;
- template class Base_Optimizer<Synch_Receiver, ACE_CString>;
- template class Base_Optimizer<Synch_Static_Receiver, ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Static_Receiver> >;
- template class Base_Optimizer<Synch_Static_Receiver, ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Static_Receiver> >;
- template class Base_Optimizer<Synch_Receiver, ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Receiver> >;
- template class Base_Optimizer<Synch_Receiver, ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Receiver> >;
-#endif /* ! (ACE_HAS_BROKEN_HPUX_TEMPLATES) && ! (__GNUG__) */
-
- #if defined (ACE_HAS_THREADS)
- template class ACE_Atomic_Op<ACE_Thread_Mutex, u_long>;
- template class ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, ACE_LOGGER_COUNTER, ACE_MT_SYNCH, Synch_Static_Receiver>;
- template class ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, ACE_LOGGER_COUNTER, ACE_MT_SYNCH, Synch_Receiver>;
- template class Log_Message_Receiver_Impl<ACE_MT_SYNCH>;
- template class ACE_Svc_Handler<LOGGING_PEER_STREAM, ACE_SYNCH>;
- #endif /* ACE_HAS_THREADS */
-
-template class ACE_Server_Logging_Handler<Synch_Static_Receiver>;
-template class ACE_Thr_Server_Logging_Handler<Synch_Static_Receiver>;
-template class ACE_Server_Logging_Handler<Synch_Receiver>;
-template class ACE_Thr_Server_Logging_Handler<Synch_Receiver>;
-
- #if defined (ACE_HAS_TLI)
- // NOTE: The following line is not used with the #if 1 // !defined
- // (ACE_HAS_TLI) override in Server_Logging_Handler_T.h:
- // template class ACE_Svc_Handler<LOGGING_PEER_STREAM, ACE_NULL_SYNCH>;
- // else if ! ACE_HAS_TLI, LOGGING_PEER_STREAM is ACE_SOCK_STREAM,
- // and the specialization would be
- // template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
- // That specialization is in TS_Server_Handler.cpp, so we don't need it
- // here.
- #endif /* ACE_HAS_TLI */
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate Log_Message_Receiver_Impl<ACE_NULL_SYNCH>
-#if defined (ACE_HAS_THREADS)
-#pragma instantiate Static_Log_Message_Receiver<ACE_NULL_SYNCH>
-#pragma instantiate ACE_Acceptor<Null_Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Accept_Strategy<Null_Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Concurrency_Strategy<Null_Synch_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Creation_Strategy<Null_Synch_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Schedule_All_Reactive_Strategy<Null_Synch_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Scheduling_Strategy<Null_Synch_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Strategy_Acceptor<Null_Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Server_Logging_Acceptor_T<Null_Synch_Logging_Handler_Static_Receiver, \
- Null_Synch_Static_Receiver, \
- ACE_Schedule_All_Reactive_Strategy<Null_Synch_Logging_Handler_Static_Receiver> >
-#pragma instantiate ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH, Null_Synch_Static_Receiver>
-#pragma instantiate ACE_Server_Logging_Handler<Null_Synch_Static_Receiver>
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) && !defined (__GNUG__)
- #pragma instantiate Base_Optimizer<Null_Synch_Static_Receiver, ACE_CString>
- #pragma instantiate Base_Optimizer<Null_Synch_Static_Receiver, ACE_Schedule_All_Reactive_Strategy<Null_Synch_Logging_Handler_Static_Receiver> >
-#endif /* ! (ACE_HAS_BROKEN_HPUX_TEMPLATES) && ! (__GNUG__) */
-#endif /* ACE_HAS_THREADS */
-
-#pragma instantiate Static_Log_Message_Receiver<ACE_LOGGER_SYNCH>
-#pragma instantiate Log_Message_Receiver<ACE_LOGGER_SYNCH>
-#pragma instantiate ACE_Acceptor<Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Acceptor<Synch_Thr_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Acceptor<Synch_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Acceptor<Synch_Thr_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>
-
-#pragma instantiate ACE_Accept_Strategy<Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Accept_Strategy<Synch_Thr_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Accept_Strategy<Synch_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Accept_Strategy<Synch_Thr_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>
-
-#pragma instantiate ACE_Concurrency_Strategy<Synch_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Concurrency_Strategy<Synch_Thr_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Concurrency_Strategy<Synch_Logging_Handler_Receiver>
-#pragma instantiate ACE_Concurrency_Strategy<Synch_Thr_Logging_Handler_Receiver>
-
-#pragma instantiate ACE_Creation_Strategy<Synch_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Creation_Strategy<Synch_Thr_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Creation_Strategy<Synch_Logging_Handler_Receiver>
-#pragma instantiate ACE_Creation_Strategy<Synch_Thr_Logging_Handler_Receiver>
-
-#pragma instantiate ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Receiver>
-
-#pragma instantiate ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Receiver>
-
-#pragma instantiate ACE_Scheduling_Strategy<Synch_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Scheduling_Strategy<Synch_Logging_Handler_Receiver>
-#pragma instantiate ACE_Scheduling_Strategy<Synch_Thr_Logging_Handler_Static_Receiver>
-#pragma instantiate ACE_Scheduling_Strategy<Synch_Thr_Logging_Handler_Receiver>
-
-#pragma instantiate ACE_Strategy_Acceptor<Synch_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Strategy_Acceptor<Synch_Thr_Logging_Handler_Static_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Strategy_Acceptor<Synch_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>
-#pragma instantiate ACE_Strategy_Acceptor<Synch_Thr_Logging_Handler_Receiver, LOGGING_PEER_ACCEPTOR>
-
-#pragma instantiate ACE_Server_Logging_Acceptor_T<Synch_Logging_Handler_Static_Receiver, \
- Synch_Static_Receiver, \
- ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Static_Receiver> >
-#pragma instantiate ACE_Server_Logging_Acceptor_T<Synch_Thr_Logging_Handler_Static_Receiver, \
- Synch_Static_Receiver, \
- ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Static_Receiver> >
-#pragma instantiate ACE_Server_Logging_Acceptor_T<Synch_Logging_Handler_Receiver, \
- Synch_Receiver, \
- ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Receiver> >
-#pragma instantiate ACE_Server_Logging_Acceptor_T<Synch_Thr_Logging_Handler_Receiver, \
- Synch_Receiver, \
- ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Receiver> >
-
-#pragma instantiate ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH, Synch_Static_Receiver>
-#pragma instantiate ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH, Synch_Receiver>
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) && !defined (__GNUG__)
- #pragma instantiate Base_Optimizer<Synch_Static_Receiver, ACE_CString>
- #pragma instantiate Base_Optimizer<Synch_Receiver, ACE_CString>
- #pragma instantiate Base_Optimizer<Synch_Static_Receiver, ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Static_Receiver> >
- #pragma instantiate Base_Optimizer<Synch_Static_Receiver, ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Static_Receiver> >
- #pragma instantiate Base_Optimizer<Synch_Receiver, ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Receiver> >
- #pragma instantiate Base_Optimizer<Synch_Receiver, ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Receiver> >
-#endif /* ! (ACE_HAS_BROKEN_HPUX_TEMPLATES) && ! (__GNUG__) */
-
- #if defined (ACE_HAS_THREADS)
- #pragma instantiate ACE_Atomic_Op<ACE_Thread_Mutex, u_long>
- #pragma instantiate ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, ACE_LOGGER_COUNTER, ACE_MT_SYNCH, Synch_Static_Receiver>
- #pragma instantiate ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, ACE_LOGGER_COUNTER, ACE_MT_SYNCH, Synch_Receiver>
- #pragma instantiate Log_Message_Receiver_Impl<ACE_MT_SYNCH>
- #pragma instantiate ACE_Svc_Handler<LOGGING_PEER_STREAM, ACE_SYNCH>
- #endif /* ACE_HAS_THREADS */
-
-#pragma instantiate ACE_Server_Logging_Handler<Synch_Static_Receiver>
-#pragma instantiate ACE_Thr_Server_Logging_Handler<Synch_Static_Receiver>
-#pragma instantiate ACE_Server_Logging_Handler<Synch_Receiver>
-#pragma instantiate ACE_Thr_Server_Logging_Handler<Synch_Receiver>
-
- #if defined (ACE_HAS_TLI)
- // NOTE: The following line is not used with the #if 1 // !defined
- // (ACE_HAS_TLI) override in Server_Logging_Handler_T.h:
- // #pragma instantiate ACE_Svc_Handler<LOGGING_PEER_STREAM, ACE_NULL_SYNCH>
- // else if ! ACE_HAS_TLI, LOGGING_PEER_STREAM is ACE_SOCK_STREAM,
- // and the specialization would be
- // #pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
- // That specialization is in TS_Server_Handler.cpp, so we don't need it
- // here.
- #endif /* ACE_HAS_TLI */
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-#endif /* ACE_SERVER_LOGGING_HANDLER_C */
diff --git a/netsvcs/lib/Server_Logging_Handler.h b/netsvcs/lib/Server_Logging_Handler.h
deleted file mode 100644
index 26b79d178f9..00000000000
--- a/netsvcs/lib/Server_Logging_Handler.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Server_Logging_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt and Per Andersson <Per.Andersson@hfera.ericsson.se>
-//
-// ============================================================================
-
-#ifndef ACE_SERVER_LOGGING_HANDLER_H
-#define ACE_SERVER_LOGGING_HANDLER_H
-
-#include "Log_Message_Receiver.h"
-#include "Server_Logging_Handler_T.h"
-
-// Typedefs for Logging Handlers & acceptors using a static type based
-// log message receivers.
-
-// Synched and NULL synched message receivers
-typedef Static_Log_Message_Receiver<ACE_NULL_SYNCH>
- Null_Synch_Static_Receiver;
-typedef Static_Log_Message_Receiver<ACE_LOGGER_SYNCH>
- Synch_Static_Receiver;
-
-// NULL synched logging handler
-typedef ACE_Server_Logging_Handler<Null_Synch_Static_Receiver>
- Null_Synch_Logging_Handler_Static_Receiver;
-
-// synched logging handlers
-typedef ACE_Server_Logging_Handler<Synch_Static_Receiver>
- Synch_Logging_Handler_Static_Receiver;
-typedef ACE_Thr_Server_Logging_Handler<Synch_Static_Receiver>
- Synch_Thr_Logging_Handler_Static_Receiver;
-
-// NULL synched logging acceptor
-typedef ACE_Server_Logging_Acceptor_T<Null_Synch_Logging_Handler_Static_Receiver,
- Null_Synch_Static_Receiver,
- ACE_Schedule_All_Reactive_Strategy<Null_Synch_Logging_Handler_Static_Receiver> >
- Null_Synch_Logging_Handler_Static_Receiver_Acceptor;
-
-// NULL synched logging acceptors
-typedef ACE_Server_Logging_Acceptor_T<Synch_Logging_Handler_Static_Receiver,
- Synch_Static_Receiver,
- ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Static_Receiver> >
- Synch_Logging_Handler_Static_Receiver_Acceptor;
-
-typedef ACE_Server_Logging_Acceptor_T<Synch_Thr_Logging_Handler_Static_Receiver,
- Synch_Static_Receiver,
- ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Static_Receiver> >
- Synch_Thr_Logging_Handler_Static_Receiver_Acceptor;
-
-// typedefs for Logging Handlers & acceptors using a instance based
-// log message receivers.
-
-// Synched message receivers
-typedef Log_Message_Receiver<ACE_LOGGER_SYNCH>
- Synch_Receiver;
-
-// synched logging handlers
-typedef ACE_Server_Logging_Handler<Synch_Receiver>
- Synch_Logging_Handler_Receiver;
-typedef ACE_Thr_Server_Logging_Handler<Synch_Receiver>
- Synch_Thr_Logging_Handler_Receiver;
-
-// synched logging acceptors
-typedef ACE_Server_Logging_Acceptor_T<Synch_Logging_Handler_Receiver,
- Synch_Receiver,
- ACE_Schedule_All_Reactive_Strategy<Synch_Logging_Handler_Receiver> >
- Synch_Logging_Handler_Receiver_Acceptor;
-
-typedef ACE_Server_Logging_Acceptor_T<Synch_Thr_Logging_Handler_Receiver,
- Synch_Receiver,
- ACE_Schedule_All_Threaded_Strategy<Synch_Thr_Logging_Handler_Receiver> >
- Synch_Thr_Logging_Handler_Receiver_Acceptor;
-
-
-// Define external acceptors
-
-// Acceptors that use static/type based log message receiver.
-typedef Null_Synch_Logging_Handler_Static_Receiver_Acceptor
- ACE_Server_Logging_Acceptor;
-typedef Synch_Thr_Logging_Handler_Static_Receiver_Acceptor
- ACE_Thr_Server_Logging_Acceptor;
-
-ACE_SVC_FACTORY_DECLARE (ACE_Server_Logging_Acceptor)
-ACE_SVC_FACTORY_DECLARE (ACE_Thr_Server_Logging_Acceptor)
-
-#endif /* ACE_SERVER_LOGGING_HANDLER_H */
diff --git a/netsvcs/lib/Server_Logging_Handler_T.cpp b/netsvcs/lib/Server_Logging_Handler_T.cpp
deleted file mode 100644
index 994a9426dc2..00000000000
--- a/netsvcs/lib/Server_Logging_Handler_T.cpp
+++ /dev/null
@@ -1,359 +0,0 @@
-// $Id$
-
-#ifndef ACE_SERVER_LOGGING_HANDLERT_C
-#define ACE_SERVER_LOGGING_HANDLERT_C
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/OS.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/Get_Opt.h"
-#include "Server_Logging_Handler_T.h"
-
-ACE_RCSID(lib, Server_Logging_Handler_T, "$Id$")
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
-// Track number of requests.
-template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_DECL, class LMR>
-COUNTER ACE_Server_Logging_Handler_T<ACE_PEER_STREAM_2, COUNTER, ACE_SYNCH_USE, LMR>::request_count_ = (COUNTER) 0;
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-
-template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_DECL, class LMR>
-ACE_Server_Logging_Handler_T<ACE_PEER_STREAM_2, COUNTER, ACE_SYNCH_USE, LMR>::ACE_Server_Logging_Handler_T
- (ACE_Thread_Manager *,
- LMR const &receiver)
- // Initialize the CString to something that is not the empty string
- // to avoid problems when calling fast_rep()
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) && !defined (__GNUG__)
- : receiver_ (receiver, ACE_CString (" ", 1))
-#else
- : receiver_ (receiver),
- host_name_ (ACE_CString (" ", 1))
-#endif /* ! ACE_HAS_BROKEN_HPUX_TEMPLATES && ! __GNUG__ */
-{
-}
-
-// Callback routine for handling the reception of remote logging
-// transmissions.
-
-template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_DECL, class LMR> int
-ACE_Server_Logging_Handler_T<ACE_PEER_STREAM_2, COUNTER, ACE_SYNCH_USE, LMR>::handle_input (ACE_HANDLE)
-{
- int result = this->handle_logging_record ();
- return result > 0 ? 0 : -1;
-}
-
-template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_DECL, class LMR> const char *
-ACE_Server_Logging_Handler_T<ACE_PEER_STREAM_2, COUNTER, ACE_SYNCH_USE, LMR>::host_name (void)
-{
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) && !defined (__GNUG__)
- return this->receiver_.m_.fast_rep ();
-#else
- return this->host_name_.fast_rep ();
-#endif /* ! ACE_HAS_BROKEN_HPUX_TEMPLATES && ! __GNUG__ */
-}
-
-template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_DECL, class LMR> int
-ACE_Server_Logging_Handler_T<ACE_PEER_STREAM_2, COUNTER, ACE_SYNCH_USE, LMR>::handle_logging_record (void)
-{
- ACE_INT32 length;
-
- // We need to use the ol' two-read trick here since TCP sockets
- // don't support framing natively. Note that the first call is just
- // a "peek" -- we don't actually remove the data until the second
- // call. Note that this code is portable as long as ACE_UNIT32 is
- // always 32 bits on both the sender and receiver side.
-
- switch (this->peer ().recv ((void *) &length,
- sizeof length,
- MSG_PEEK))
- {
- default:
- case -1:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p at host %s\n",
- "server logger",
- this->host_name ()),
- -1);
- /* NOTREACHED */
- case 0:
- ACE_ERROR_RETURN ((LM_ERROR,
- "closing log daemon at host %s\n",
- this->host_name ()),
- -1);
- /* NOTREACHED */
- case sizeof length:
- {
- ACE_Log_Record lp;
-
- // Use ACE_NTOHL to get around bug in egcs 2.91.6x.
- length = ACE_NTOHL (length);
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- u_long count = ++this->request_count_;
-# if 0
- ACE_DEBUG ((LM_DEBUG,
- "request count = %d, length = %d\n",
- count,
- length));
-# endif /* 0 */
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-
- // Perform the actual <recv> this time.
- ssize_t n = this->peer ().recv_n ((void *) &lp,
- length);
- if (n != length)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%d != %d, %p at host %s\n",
- n,
- length,
- "server logger",
- this->host_name ()),
- -1);
-
- lp.decode ();
-
- if (lp.length () == n)
- {
- // Send the log record to the log message receiver for
- // processing.
- if (ACE_BIT_ENABLED (ACE_Log_Msg::instance ()->flags (),
- ACE_Log_Msg::STDERR))
- receiver ().log_record (this->host_name (),
- lp);
- ostream *orig_ostream = ACE_Log_Msg::instance ()->msg_ostream ();
- receiver ().log_output (this->host_name (),
- lp,
- orig_ostream);
- }
- else
- ACE_ERROR ((LM_ERROR,
- "error, lp.length = %d, n = %d\n",
- lp.length (),
- n));
- return n;
- }
- }
-
- ACE_NOTREACHED (return -1;)
-}
-
-// Hook called by Server_Logging_Acceptor when connection is
-// established.
-
-template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_DECL, class LMR> int
-ACE_Server_Logging_Handler_T<ACE_PEER_STREAM_2, COUNTER, ACE_SYNCH_USE, LMR>::open_common (void)
-{
- // Shut off non-blocking IO if it was enabled...
- if (this->peer ().disable (ACE_NONBLOCK) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "disable"),
- -1);
- ACE_PEER_STREAM_ADDR client_addr;
-
- // Determine the address of the client and display it.
- if (this->peer ().get_remote_addr (client_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "get_remote_addr"),
- -1);
-
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) && !defined (__GNUG__)
- this->receiver_.m_ = ACE_CString (client_addr.get_host_name ());
-#else
- this->host_name_ = ACE_CString (client_addr.get_host_name ());
-#endif /* ! ACE_HAS_BROKEN_HPUX_TEMPLATES && ! __GNUG__ */
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) accepted connection from host %s on fd %d\n",
- client_addr.get_host_name (),
- this->peer ().get_handle ()));
-
- return 0;
-}
-
-template<class SLH, class LMR, class SST>
-ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::ACE_Server_Logging_Acceptor_T (void)
-{
-}
-
-template<class SLH, class LMR, class SST> LMR &
-ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::receiver (void)
-{
- return receiver_;
-}
-
-template<class SLH, class LMR, class SST> SST &
-ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::scheduling_strategy (void)
-{
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) && !defined (__GNUG__)
- return receiver_.m_;
-#else
- return schedule_strategy_;
-#endif /* ! ACE_HAS_BROKEN_HPUX_TEMPLATES && ! __GNUG__ */
-}
-
-template<class SLH, class LMR, class SST> int
-ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::init (int argc, char *argv[])
-{
- ACE_TRACE ("ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::init");
-
- // Use the options hook to parse the command line arguments and set
- // options.
- this->parse_args (argc, argv);
-
- // Set the acceptor endpoint into listen mode (use the Singleton
- // global Reactor...).
- if (this->open (this->service_addr_,
- ACE_Reactor::instance (),
- 0, 0, 0,
- &this->scheduling_strategy(),
- "Logging Server",
- "ACE logging service") == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n: %p on port %d\n",
- "acceptor::open failed",
- this->service_addr_.get_port_number ()),
- -1);
- // Ignore SIGPIPE so that each <SVC_HANDLER> can handle this on its
- // own.
- ACE_Sig_Action sig ((ACE_SignalHandler) SIG_IGN, SIGPIPE);
- ACE_UNUSED_ARG (sig);
-
- ACE_INET_Addr server_addr;
-
- // Figure out what port we're really bound to.
- if (this->acceptor ().get_local_addr (server_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "get_local_addr"),
- -1);
- ACE_DEBUG ((LM_DEBUG,
- "starting up Logging Server at port %d on handle %d\n",
- server_addr.get_port_number (),
- this->acceptor ().get_handle ()));
- return 0;
-}
-
-template<class SLH, class LMR, class SST> int
-ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::parse_args (int argc, char *argv[])
-{
- ACE_TRACE ("ACE_Server_Logging_Acceptor_T<SLH, LMR, SST>::parse_args");
-
- this->service_port_ = ACE_DEFAULT_SERVER_PORT;
-
- ACE_LOG_MSG->open ("Logging Service");
-
- ACE_Get_Opt get_opt (argc, argv, "p:", 0);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'p':
- this->service_port_ = ACE_OS::atoi (get_opt.optarg);
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n:\n[-p server-port]\n%a", 1),
- -1);
- }
- }
-
- this->service_addr_.set (this->service_port_);
- return 0;
-}
-
-template<class SERVER_LOGGING_HANDLER, class LOG_MESSAGE_RECEIVER, class SCHEDULE_STRATEGY> int
-ACE_Server_Logging_Acceptor_T<SERVER_LOGGING_HANDLER,
- LOG_MESSAGE_RECEIVER,
- SCHEDULE_STRATEGY>
- ::make_svc_handler (SERVER_LOGGING_HANDLER *&handler)
-{
- ACE_NEW_RETURN (handler,
- SERVER_LOGGING_HANDLER (ACE_Thread_Manager::instance (),
- this->receiver()),
- -1);
- return 0;
-}
-
-template<class LOG_MESSAGE_RECEIVER>
-ACE_Server_Logging_Handler<LOG_MESSAGE_RECEIVER>::ACE_Server_Logging_Handler (ACE_Thread_Manager * tm,
- LOG_MESSAGE_RECEIVER const& receiver)
- : ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH, LOG_MESSAGE_RECEIVER>(tm,
- receiver)
-{
-}
-
-template<class LOG_MESSAGE_RECEIVER>
-ACE_Server_Logging_Handler<LOG_MESSAGE_RECEIVER>::ACE_Server_Logging_Handler(ACE_Thread_Manager * tm)
- : ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH, LOG_MESSAGE_RECEIVER>(tm, LOG_MESSAGE_RECEIVER())
-{
-}
-
-template<class LOG_MESSAGE_RECEIVER> int
-ACE_Server_Logging_Handler<LOG_MESSAGE_RECEIVER>::open (void *)
-{
- // call base class open_common
- if (this->open_common () != 0)
- return -1;
-
- // Register ourselves with the Reactor to enable subsequent
- // dispatching.
- if (ACE_Reactor::instance ()->register_handler
- (this, ACE_Event_Handler::READ_MASK) == -1)
- return -1;
- return 0;
-}
-
-template<class LOG_MESSAGE_RECEIVER>
-ACE_Thr_Server_Logging_Handler<LOG_MESSAGE_RECEIVER>::ACE_Thr_Server_Logging_Handler (ACE_Thread_Manager *tm, LOG_MESSAGE_RECEIVER const &receiver)
- : ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, ACE_LOGGER_COUNTER, ACE_LOGGER_SYNCH, LOG_MESSAGE_RECEIVER>(tm, receiver)
-{
-}
-
-template<class LOG_MESSAGE_RECEIVER>
-ACE_Thr_Server_Logging_Handler<LOG_MESSAGE_RECEIVER>::ACE_Thr_Server_Logging_Handler (ACE_Thread_Manager *tm)
- : ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, ACE_LOGGER_COUNTER, ACE_LOGGER_SYNCH, LOG_MESSAGE_RECEIVER>(tm, LOG_MESSAGE_RECEIVER ())
-{
-}
-
-template<class LOG_MESSAGE_RECEIVER> int
-ACE_Thr_Server_Logging_Handler<LOG_MESSAGE_RECEIVER>::open (void *)
-{
- // call base class open_common
- if (this->open_common () != 0)
- return -1;
-
- // Spawn a new thread of control to handle logging records with the
- // client using a thread-per-connection concurrency model. Note
- // that this implicitly uses the <ACE_Thread_Manager::instance> to
- // control all the threads.
- if (this->activate (THR_BOUND | THR_DETACHED) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "spawn"),
- -1);
- return 0;
-}
-
-// Process remote logging records.
-
-template<class LOG_MESSAGE_RECEIVER> int
-ACE_Thr_Server_Logging_Handler<LOG_MESSAGE_RECEIVER>::svc (void)
-{
- int result = 0;
-
- // Loop until the client terminates the connection or an error occurs.
-
- while ((result = this->handle_input ()) == 0)
- continue;
-
- return result;
-}
-#endif /* ACE_SERVER_LOGGING_HANDLER_TT_C */
diff --git a/netsvcs/lib/Server_Logging_Handler_T.h b/netsvcs/lib/Server_Logging_Handler_T.h
deleted file mode 100644
index 11aee1a33fc..00000000000
--- a/netsvcs/lib/Server_Logging_Handler_T.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Server_Logging_Handler_T.h
-//
-// = AUTHOR
-// Doug Schmidt and Per Andersson
-//
-// ============================================================================
-
-#ifndef ACE_SERVER_LOGGING_HANDLER_T_H
-#define ACE_SERVER_LOGGING_HANDLER_T_H
-
-#include "ace/Synch.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/TLI_Acceptor.h"
-#include "ace/SOCK_Acceptor.h"
-#include "ace/Acceptor.h"
-#include "ace/SString.h"
-
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) && !defined (__GNUG__)
-#include "Base_Optimizer.h"
-#endif /* ! ACE_HAS_BROKEN_HPUX_TEMPLATES && ! __GNUG__ */
-
-template <ACE_PEER_STREAM_1, class COUNTER, ACE_SYNCH_DECL, class LOG_MESSAGE_RECEIVER>
-class ACE_Server_Logging_Handler_T : public ACE_Svc_Handler<ACE_PEER_STREAM_2, ACE_SYNCH_USE>
-{
- // = TITLE
- // Product object created by an <ACE_Server_Logging_Acceptor_T>. An
- // <ACE_Server_Logging_Handler_T> receives, and frames logging
- // records. The logging record is then processed by the
- // <LOG_MESSAGE_RECEIVER>
- //
- // = DESCRIPTION
- // Defines the classes that perform server logging daemon
- // functionality.
-public:
- ACE_Server_Logging_Handler_T (ACE_Thread_Manager *,
- const LOG_MESSAGE_RECEIVER &receiver );
- // Constructor.
-
-
- virtual int handle_input (ACE_HANDLE = ACE_INVALID_HANDLE);
- // Process remote logging records.
-
-protected:
- int handle_logging_record (void);
- // Receive the logging record from a client.
-
- int open_common (void);
- // Common parts of open function, sets hostname and diables NONBLOCK in peer
- // called from derived classes open method.
-
-#if !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- static COUNTER request_count_;
- // Count the number of logging records that arrive.
-#endif /* ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES */
-
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) && !defined (__GNUG__)
- Base_Optimizer<LOG_MESSAGE_RECEIVER, ACE_CString> receiver_;
- // Packs a LOG_MESSAGE_RECEIVER and ACE_CString attribute together
- // in a optimized fashion. The LOG_MESSAGE_RECEIVER class is often
- // a class with no instance data.
-#else
- LOG_MESSAGE_RECEIVER receiver_;
- ACE_CString host_name_;
-#endif /* ! ACE_HAS_BROKEN_HPUX_TEMPLATES && ! __GNUG__ */
- const char *host_name (void);
- // Name of the host we are connected to.
-
- LOG_MESSAGE_RECEIVER &receiver (void){ return receiver_; }
- // The receiver of log records
-};
-
-#if 1 //!defined (ACE_HAS_TLI)
-#define LOGGING_PEER_ACCEPTOR ACE_SOCK_ACCEPTOR
-#define LOGGING_PEER_STREAM ACE_SOCK_STREAM
-#else /* use sockets */
-#define LOGGING_PEER_ACCEPTOR ACE_TLI_ACCEPTOR
-#define LOGGING_PEER_STREAM ACE_TLI_STREAM
-#endif /* ACE_HAS_TLI */
-
-template<class SERVER_LOGGING_HANDLER, class LOG_MESSAGE_RECEIVER, class SCHEDULE_STRATEGY>
-class ACE_Server_Logging_Acceptor_T : public ACE_Strategy_Acceptor<SERVER_LOGGING_HANDLER, LOGGING_PEER_ACCEPTOR>
-{
- // = TITLE
- // Factory that creates <SERVER_LOGGING_HANDLER>s scheduled with
- // <SCHEDULE_STRATEGY> and logging records proccessed by a
- // <LOG_MESSAGE_RECEIVER>
- //
- // = DESCRIPTION
- // This class contains the service-specific methods that can't
- // easily be factored into the <ACE_Strategy_Acceptor>.
-public:
- ACE_Server_Logging_Acceptor_T (void);
- virtual int init (int argc, char *argv[]);
- // Dynamic linking hook.
-
-protected:
- int parse_args (int argc, char *argv[]);
- // Parse svc.conf arguments.
-
- virtual int make_svc_handler (SERVER_LOGGING_HANDLER *&);
- // Factory that creates a new <SERVER_LOGGING_HANDLER>. We need to
- // specialize this since the <LOG_MESSAGE_RECEIVER> held by this Acceptor must be
- // passed into the <SERVER_LOGGING_HANDLER>.
-
-private:
- // At the moment each ACE_Server_Logging_Acceptor_T contains
- // a <LOG_MESSAGE_RECEIVER> attribute that is passed to the
- // <SERVER_LOGGING_HANDLER> at construction. A better idea might
- // be to have accessor class as template argument. The accessor
- // should be a factory/strategy that hands the
- // ACE_Server_Logging_Acceptor_T instance references
- // to a <LOG_MESSAGE_RECEIVER>. This makes it possible
- // to change how <LOG_MESSAGE_RECEIVER> are created without chaning the
- // ACE_Server_Logging_Acceptor_T code.
-
-#if !defined (ACE_HAS_BROKEN_HPUX_TEMPLATES) && !defined (__GNUG__)
- Base_Optimizer<LOG_MESSAGE_RECEIVER, SCHEDULE_STRATEGY> receiver_;
- // Packs a LOG_MESSAGE_RECEIVER and ACE_CString attribute together
- // in a optimized fashion. The LOG_MESSAGE_RECEIVER class is often a
- // class with no instance data.
-#else
- LOG_MESSAGE_RECEIVER receiver_;
- SCHEDULE_STRATEGY schedule_strategy_;
-#endif /* ! ACE_HAS_BROKEN_HPUX_TEMPLATES && ! __GNUG__ */
-
- SCHEDULE_STRATEGY &scheduling_strategy (void);
- // The scheduling strategy for the service.
-
- LOG_MESSAGE_RECEIVER &receiver (void);
- // The receiver of log records
-};
-
-template<class LOG_MESSAGE_RECEIVER>
-class ACE_Server_Logging_Handler : public ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, u_long, ACE_NULL_SYNCH, LOG_MESSAGE_RECEIVER>
-{
- // = TITLE
- // Product object created by a
- // <ACE_Server_Logging_Acceptor_T<ACE_Server_Logging_Handler> >. An
- // <ACE_Server_Logging_Handler> receives, frames. The logging record
- // is then processed by the <LOG_MESSAGE_RECEIVER>
- //
- // = DESCRIPTION
- // All clients are handled in the same thread.
-
-public:
- ACE_Server_Logging_Handler (ACE_Thread_Manager * = 0);
- ACE_Server_Logging_Handler (ACE_Thread_Manager *,
- const LOG_MESSAGE_RECEIVER &receiver);
-
- virtual int open (void* = 0);
-};
-
-#if defined (ACE_HAS_THREADS)
-typedef ACE_Atomic_Op <ACE_Thread_Mutex, u_long> ACE_LOGGER_COUNTER;
-#define ACE_LOGGER_SYNCH ACE_MT_SYNCH
-#else
-typedef u_long ACE_LOGGER_COUNTER;
-#define ACE_LOGGER_SYNCH ACE_NULL_SYNCH
-#endif /* ACE_HAS_THREADS */
-
-template<class LOG_MESSAGE_RECEIVER>
-class ACE_Thr_Server_Logging_Handler : public ACE_Server_Logging_Handler_T<LOGGING_PEER_STREAM, ACE_LOGGER_COUNTER, ACE_LOGGER_SYNCH, LOG_MESSAGE_RECEIVER>
-{
- // = TITLE
- // Product object created by a
- // <ACE_Server_Logging_Acceptor_T<ACE_Thr_Server_Logging_Handler>
- // >. An <ACE_Thr_Server_Logging_Handler> receives, frames. The
- // logging record is then processed by the <LOG_MESSAGE_RECEIVER>
- //
- // = DESCRIPTION
- // Each client is handled in its own separate thread.
-
-public:
- ACE_Thr_Server_Logging_Handler (ACE_Thread_Manager * = 0);
- ACE_Thr_Server_Logging_Handler (ACE_Thread_Manager *,
- const LOG_MESSAGE_RECEIVER &receiver);
- virtual int open (void * = 0);
- virtual int svc (void);
-};
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "Server_Logging_Handler_T.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Server_Logging_Handler_T.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_SERVER_LOGGING_HANDLER_T_H */
diff --git a/netsvcs/lib/TS_Clerk_Handler.cpp b/netsvcs/lib/TS_Clerk_Handler.cpp
deleted file mode 100644
index 95565887a83..00000000000
--- a/netsvcs/lib/TS_Clerk_Handler.cpp
+++ /dev/null
@@ -1,637 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Get_Opt.h"
-#include "TS_Clerk_Handler.h"
-
-ACE_RCSID(lib, TS_Clerk_Handler, "$Id$")
-
-ACE_TS_Clerk_Handler::ACE_TS_Clerk_Handler (ACE_TS_Clerk_Processor *processor,
- ACE_INET_Addr &addr)
-: state_ (ACE_TS_Clerk_Handler::IDLE),
- timeout_ (ACE_DEFAULT_TIMEOUT),
- max_timeout_ (ACE_TS_Clerk_Handler::MAX_RETRY_TIMEOUT),
- remote_addr_ (addr),
- processor_ (processor)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::ACE_TS_Clerk_Handler");
- this->time_info_.delta_time_ = 0;
- this->time_info_.sequence_num_ = 0;
-}
-
-// Set the connection state
-void
-ACE_TS_Clerk_Handler::state (ACE_TS_Clerk_Handler::State state)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::state");
- this->state_ = state;
-}
-
-// Get the connection state
-ACE_TS_Clerk_Handler::State
-ACE_TS_Clerk_Handler::state (void)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::state");
- return this->state_;
-}
-
-// Sets the timeout delay.
-void
-ACE_TS_Clerk_Handler::timeout (int to)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::timeout");
- 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
-ACE_TS_Clerk_Handler::timeout (void)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::timeout");
- int old_timeout = this->timeout_;
- this->timeout_ *= 2;
-
- if (this->timeout_ > this->max_timeout_)
- this->timeout_ = this->max_timeout_;
-
- return old_timeout;
-}
-
-// This is called when a <send> to the logging server fails...
-
-int
-ACE_TS_Clerk_Handler::handle_signal (int, siginfo_t *, ucontext_t *)
-{
- return -1;
-}
-
-// Set the max timeout delay.
-void
-ACE_TS_Clerk_Handler::max_timeout (int mto)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::max_timeout");
- this->max_timeout_ = mto;
-}
-
-// Gets the max timeout delay.
-int
-ACE_TS_Clerk_Handler::max_timeout (void)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::max_timeout");
- return this->max_timeout_;
-}
-
-int
-ACE_TS_Clerk_Handler::open (void *)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::open");
- ACE_INET_Addr server_addr;
-
- // Set connection state as established
- this->state (ACE_TS_Clerk_Handler::ESTABLISHED);
-
- // Register ourselves to receive SIGPIPE so we can attempt
- // reconnections.
-#if !defined (ACE_WIN32)
- if (ACE_Reactor::instance ()->register_handler (SIGPIPE, this) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%n: %p\n",
- "register_handler (SIGPIPE)"), -1);
-#endif /* ACE_WIN32 */
-
- // Register ourselves with the reactor to receive input
- if (ACE_Reactor::instance ()->register_handler (this->get_handle (),
- this,
- ACE_Event_Handler::READ_MASK |
- ACE_Event_Handler::EXCEPT_MASK) == -1)
- ACE_ERROR ((LM_ERROR, "%n: %p\n", "register_handler (this)"));
-
- // Figure out what remote port we're really bound to.
- else if (this->peer ().get_remote_addr (server_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_remote_addr"), -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "TS Clerk Daemon connected to port %d on handle %d\n",
- server_addr.get_port_number (),
- this->peer ().get_handle ()));
-
- return 0;
-}
-
-ACE_HANDLE
-ACE_TS_Clerk_Handler::get_handle (void) const
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::get_handle");
- return this->peer().get_handle ();
-}
-
-int
-ACE_TS_Clerk_Handler::handle_close (ACE_HANDLE,
- ACE_Reactor_Mask mask)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::handle_close");
- ACE_UNUSED_ARG (mask);
-
- ACE_DEBUG ((LM_DEBUG, "(%t) shutting down on handle %d\n", this->get_handle ()));
-
- return this->reinitiate_connection ();
-}
-
-int
-ACE_TS_Clerk_Handler::reinitiate_connection (void)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::reinitiate_connection");
- // Skip over deactivated descriptors.
-
- // Set state to connecting so that we don't try to send anything
- // using this handler
- this->state (ACE_TS_Clerk_Handler::CONNECTING);
- if (this->get_handle () != ACE_INVALID_HANDLE)
- {
- ACE_DEBUG ((LM_DEBUG, "(%t) Scheduling reinitiation of connection\n"));
-
- // Reschedule ourselves to try and connect again.
- if (ACE_Reactor::instance ()->schedule_timer (this, 0,
- this->timeout ()) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n", "schedule_timer"), -1);
- }
- return 0;
-}
-
-// Receive a time update from a server
-int
-ACE_TS_Clerk_Handler::handle_input (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::handle_input");
- // We're getting a time update message from a server
- ACE_Time_Request reply;
- if (this->recv_reply (reply) != 0)
- return -1;
- else
- {
- // Get current local time
- ACE_UINT32 local_time = ACE_OS::time (0);
-
- // Compure delta time (difference between current local time and
- // system time obtained from the server)
- long t = reply.time () - local_time;
-
- // Compute round trip delay and adjust time accordingly
- ACE_UINT32 one_way_time = (local_time - this->start_time_)/2;
- t += one_way_time;
-
- // Now update time info (to be retrieved by Clerk_Processor)
- this->time_info_.delta_time_ = t;
- this->time_info_.sequence_num_ = this->cur_sequence_num_;
- }
- return 0;
-}
-
-// Restart connection asynchronously when timeout occurs.
-int
-ACE_TS_Clerk_Handler::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::handle_timeout");
- ACE_DEBUG ((LM_DEBUG,
- "(%t) attempting to reconnect to server with timeout = %d\n",
- this->timeout_));
-
- // Close down peer to reclaim descriptor if need be. Note this is
- // necessary to reconnect.
- this->peer ().close ();
-
- return this->processor_->initiate_connection (this, ACE_Synch_Options::asynch);
-}
-
-void
-ACE_TS_Clerk_Handler::remote_addr (ACE_INET_Addr &addr)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::remote_addr");
- this->remote_addr_ = addr;
-}
-
-ACE_INET_Addr &
-ACE_TS_Clerk_Handler::remote_addr (void)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::remote_addr");
- return this->remote_addr_;
-}
-
-int
-ACE_TS_Clerk_Handler::recv_reply (ACE_Time_Request &reply)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::recv_reply");
- const int bytes_expected = reply.size ();
-
- // Since Time_Request messages are fixed size, read the entire
- // message in one go.
- ssize_t n = this->peer ().recv ((void *) &reply, bytes_expected);
-
- if (n != bytes_expected)
- {
- switch (n)
- {
- case -1:
- // FALLTHROUGH
- ACE_DEBUG ((LM_DEBUG, "****************** recv_reply returned -1\n"));
- default:
- ACE_ERROR ((LM_ERROR, "%p got %d bytes, expected %d bytes\n",
- "recv failed", n, bytes_expected));
- // FALLTHROUGH
- case 0:
- // We've shutdown unexpectedly
- return -1;
- // NOTREACHED
- }
- }
- else if (reply.decode () == -1) // Decode the request into host byte order.
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "decode failed"), -1);
- return 0;
-}
-
-
-int
-ACE_TS_Clerk_Handler::send_request (ACE_UINT32 sequence_num, ACE_Time_Info &time_info)
-{
- ACE_TRACE ("ACE_TS_Clerk_Handler::send_request");
- void *buffer;
- ssize_t length;
-
- // Update current sequence number
- this->cur_sequence_num_ = sequence_num;
-
- // First update the current time info.
- time_info.delta_time_ = this->time_info_.delta_time_;
- time_info.sequence_num_ = this->time_info_.sequence_num_;
-
- // Now prepare a new time update request
- ACE_Time_Request request (ACE_Time_Request::TIME_UPDATE, 0, 0);
-
- if ((length = request.encode (buffer)) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "encode failed"), -1);
-
- // Compute start time of sending request (needed to compute
- // roundtrip delay)
- this->start_time_ = ACE_OS::time (0);
-
- // Send the request
- if (this->peer ().send_n (buffer, length) != length)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send_n failed"), -1);
-
- return 0;
-}
-
-ACE_TS_Clerk_Processor::ACE_TS_Clerk_Processor ()
-: timeout_ (ACE_DEFAULT_TIMEOUT),
- blocking_semantics_ (0),
- cur_sequence_num_ (0)
-{
-#if defined (ACE_DEFAULT_BACKING_STORE)
- // Create a temporary file.
- ACE_OS::strcpy (this->poolname_,
- ACE_DEFAULT_BACKING_STORE);
-#else /* ACE_DEFAULT_BACKING_STORE */
- if (ACE::get_temp_dir (this->poolname_,
- MAXPATHLEN - 17) == -1) // -17 for ace-malloc-XXXXXX
- {
- ACE_ERROR ((LM_ERROR,
- "Temporary path too long, "
- "defaulting to current directory\n"));
- this->poolname_[0] = 0;
- }
-
- // Add the filename to the end
- ACE_OS::strcat (this->poolname_, "ace-malloc-XXXXXX");
-
-#endif /* ACE_DEFAULT_BACKING_STORE */
-}
-
-void
-ACE_TS_Clerk_Processor::alloc (void)
-{
- ACE_TRACE ("ACE_TS_Clerk_Processor::alloc");
- ACE_NEW (this->shmem_, ALLOCATOR (this->poolname_));
-
- // Only create the state if it doesn't already exist.
- if (this->shmem_->find (ACE_DEFAULT_TIME_SERVER_STR) == -1)
- {
- // Allocate the space out of shared memory for the system time entry
- void *temp = this->shmem_->malloc (sizeof (this->system_time_));
-
- // Give it a name binding
- this->shmem_->bind (ACE_DEFAULT_TIME_SERVER_STR, temp);
-
- // Set up pointers. Note that we add one to get to the second
- // field in the structure
- this->system_time_.delta_time_ = (long *) temp;
- this->system_time_.last_local_time_ = ((long *) temp) + 1;
-
- // Initialize
- *(this->system_time_.delta_time_) = 0;
- *(this->system_time_.last_local_time_) = ACE_OS::time (0);
- }
-}
-
-// Query the servers for the latest time
-int
-ACE_TS_Clerk_Processor::handle_timeout (const ACE_Time_Value &,
- const void *)
-{
- ACE_TRACE ("ACE_TS_Clerk_Processor::handle_timeout");
- return this->update_time ();
-}
-
-int
-ACE_TS_Clerk_Processor::update_time ()
-{
- ACE_TRACE ("ACE_TS_Clerk_Processor::update_time");
- ACE_UINT32 expected_sequence_num = this->cur_sequence_num_;
-
- // Increment sequence number
- this->cur_sequence_num_++;
-
- int count = 0;
- long total_delta = 0;
- ACE_Time_Info time_info;
-
- // Call send_request() on all handlers
- ACE_TS_Clerk_Handler **handler = 0;
-
- for (HANDLER_SET_ITERATOR set_iterator (this->handler_set_);
- set_iterator.next (handler) != 0;
- set_iterator.advance ())
- {
- if ((*handler)->state () == ACE_TS_Clerk_Handler::ESTABLISHED)
- {
- if ((*handler)->send_request (this->cur_sequence_num_, time_info) == -1)
- return -1;
- // Check if sequence numbers match; otherwise discard
- else if (expected_sequence_num != 0 &&
- time_info.sequence_num_ == expected_sequence_num)
- {
- count++;
- ACE_DEBUG ((LM_DEBUG, "[%d] Delta time: %d\n", count, time_info.delta_time_));
-
- // #### Can check here if delta value falls within a threshold ####
- total_delta += time_info.delta_time_;
- }
- }
- }
- // Update system_time_ using average of times obtained from all the servers.
- // Note that we are keeping two things in shared memory: the delta
- // time (difference between our system clock and the local clock),
- // and the last local time
- if (count > 0)
- {
- // At least one server is out there
- *(this->system_time_.delta_time_) = total_delta/count;
- }
- else
- {
- // No servers are out there (or this is the first time around
- // computing the time) so set delta time to zero. This
- // would mean that clients would use the actual local system time.
- *(this->system_time_.delta_time_) = 0;
- }
- // Update the last local time
- *(this->system_time_.last_local_time_) = ACE_OS::time (0);
-
- ACE_DEBUG ((LM_DEBUG, "Average delta time: %d\n", *(this->system_time_.delta_time_)));
- return 0;
-}
-
-
-int
-ACE_TS_Clerk_Processor::fini (void)
-{
- ACE_TRACE ("ACE_TS_Clerk_Processor::fini");
-
- // Cancel the timer
- if (this->timer_id_ != -1)
- ACE_Reactor::instance ()->cancel_timer (this->timer_id_);
-
- // Destroy all the handlers
- ACE_TS_Clerk_Handler **handler = 0;
-
- for (HANDLER_SET_ITERATOR set_iterator (this->handler_set_);
- set_iterator.next (handler) != 0;
- set_iterator.advance ())
- {
- if ((*handler)->state () != ACE_TS_Clerk_Handler::IDLE)
- // Mark state as DISCONNECTING so we don't try to reconnect...
- (*handler)->state (ACE_TS_Clerk_Handler::DISCONNECTING);
-
- // Deallocate resources.
- (*handler)->destroy (); // Will trigger a delete
- }
-
- // Remove the backing store
- this->shmem_->remove ();
-
- ACE_Connector <ACE_TS_Clerk_Handler, ACE_SOCK_CONNECTOR>::fini ();
-
- return 0;
-}
-
-int
-ACE_TS_Clerk_Processor::info (char **, size_t) const
-{
- ACE_TRACE ("ACE_TS_Clerk_Processor::info");
- return 0;
-}
-
-int
-ACE_TS_Clerk_Processor::init (int argc, char *argv[])
-{
- ACE_TRACE ("ACE_TS_Clerk_Processor::init");
- // Use the options hook to parse the command line arguments and set
- // options.
- this->parse_args (argc, argv);
-
- this->alloc ();
-
-#if !defined (ACE_WIN32)
- // Ignore SIPPIPE so each Output_Channel can handle it.
- ACE_Sig_Action sig ((ACE_SignalHandler) SIG_IGN, SIGPIPE);
- ACE_UNUSED_ARG (sig);
-#endif /* ACE_WIN32 */
-
- ACE_Synch_Options &synch_options = this->blocking_semantics_ == 0
- ? ACE_Synch_Options::asynch : ACE_Synch_Options::synch;
-
- // Now set up connections to all servers
- ACE_TS_Clerk_Handler **handler = 0;
-
- for (HANDLER_SET_ITERATOR set_iterator (this->handler_set_);
- set_iterator.next (handler) != 0;
- set_iterator.advance ())
- {
- this->initiate_connection (*handler, synch_options);
- }
- // Now set up timer to receive updates from server
- // set the timer to go off after timeout value
- this->timer_id_ = ACE_Reactor::instance ()->schedule_timer (this,
- NULL,
- ACE_Time_Value (this->timeout_),
- ACE_Time_Value (this->timeout_));
- return 0;
-}
-
-int
-ACE_TS_Clerk_Processor::initiate_connection (ACE_TS_Clerk_Handler *handler,
- ACE_Synch_Options &synch_options)
-{
- ACE_TRACE ("ACE_TS_Clerk_Processor::initiate_connection");
- char buf[MAXHOSTNAMELEN + 1];
-
- // Mark ourselves as idle so that the various iterators will ignore
- // us until we are connected/reconnected.
- handler->state (ACE_TS_Clerk_Handler::IDLE);
-
- if (handler->remote_addr ().addr_to_string (buf, sizeof buf) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "(%t) %p\n",
- "can't obtain peer's address"), -1);
-
- // Establish connection with the server.
- if (this->connect (handler,
- handler->remote_addr (),
- synch_options) == -1)
- {
- if (errno != EWOULDBLOCK)
- {
- handler->state (ACE_TS_Clerk_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_Reactor::instance ()->schedule_timer (handler,
- 0,
- handler->timeout ()) == -1)
- 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
- {
- handler->state (ACE_TS_Clerk_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
- {
- handler->state (ACE_TS_Clerk_Handler::ESTABLISHED);
- ACE_DEBUG ((LM_DEBUG, "(%t) connected to %s on %d\n",
- buf, handler->get_handle ()));
- }
- return 0;
-}
-
-int
-ACE_TS_Clerk_Processor::parse_args (int argc, char *argv[])
-{
- ACE_TRACE ("ACE_TS_Clerk_Processor::parse_args");
- ACE_INET_Addr server_addr;
- ACE_TS_Clerk_Handler *handler;
- char server_host[BUFSIZ];
-
- // Create a default entry
- ACE_OS::sprintf (server_host, "%s:%d",
- ACE_DEFAULT_SERVER_HOST,
- ACE_DEFAULT_LOGGING_SERVER_PORT);
-
- ACE_Get_Opt get_opt (argc, argv, "h:t:p:b", 0);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'h':
- // Get the hostname:port and create an ADDR
- server_addr.set (get_opt.optarg);
-
- // Create a new handler
- ACE_NEW_RETURN (handler,
- ACE_TS_Clerk_Handler (this, server_addr),
- -1);
-
- // Cache the handler
- this->handler_set_.insert (handler);
- break;
- case 't':
- // Get the timeout value
- this->timeout_ = ACE_OS::atoi (get_opt.optarg);
- break;
- case 'p':
- // Get the poolname
- ACE_OS::strncpy (this->poolname_,
- ACE_TEXT_CHAR_TO_TCHAR (get_opt.optarg),
- sizeof this->poolname_ / sizeof (ACE_TCHAR));
- break;
- case 'b':
- // Blocking semantics
- this->blocking_semantics_ = 1;
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n:\n[-h hostname:port] [-t timeout] [-p poolname]\n%a", 1),
- -1);
- }
- }
- return 0;
-}
-
-int
-ACE_TS_Clerk_Processor::suspend (void)
-{
- ACE_TRACE ("ACE_TS_Clerk_Processor::suspend");
- return 0;
-}
-
-int
-ACE_TS_Clerk_Processor::resume (void)
-{
- ACE_TRACE ("ACE_TS_Clerk_Processor::resume");
- return 0;
-}
-
-// The following is a "Factory" used by the ACE_Service_Config and
-// svc.conf file to dynamically initialize the state of the TS_Clerk.
-
-ACE_SVC_FACTORY_DEFINE (ACE_TS_Clerk_Processor)
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Connector<ACE_TS_Clerk_Handler, ACE_SOCK_CONNECTOR>;
-template class ACE_Node<ACE_TS_Clerk_Handler *>;
-template class ACE_Svc_Tuple<ACE_TS_Clerk_Handler>;
-template class ACE_Unbounded_Set<ACE_TS_Clerk_Handler *>;
-template class ACE_Unbounded_Set_Iterator<ACE_TS_Clerk_Handler *>;
-template class ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<ACE_TS_Clerk_Handler> *>;
-template class ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<ACE_TS_Clerk_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<ACE_TS_Clerk_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<ACE_TS_Clerk_Handler> *, ACE_SYNCH_RW_MUTEX>;
-template class ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<ACE_TS_Clerk_Handler> *, ACE_SYNCH_RW_MUTEX>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Connector<ACE_TS_Clerk_Handler, ACE_SOCK_CONNECTOR>
-#pragma instantiate ACE_Node<ACE_TS_Clerk_Handler *>
-#pragma instantiate ACE_Svc_Tuple<ACE_TS_Clerk_Handler>
-#pragma instantiate ACE_Unbounded_Set<ACE_TS_Clerk_Handler *>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_TS_Clerk_Handler *>
-#pragma instantiate ACE_Map_Entry<ACE_HANDLE, ACE_Svc_Tuple<ACE_TS_Clerk_Handler> *>
-#pragma instantiate ACE_Map_Iterator_Base<ACE_HANDLE, ACE_Svc_Tuple<ACE_TS_Clerk_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Iterator<ACE_HANDLE, ACE_Svc_Tuple<ACE_TS_Clerk_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Reverse_Iterator<ACE_HANDLE, ACE_Svc_Tuple<ACE_TS_Clerk_Handler> *, ACE_SYNCH_RW_MUTEX>
-#pragma instantiate ACE_Map_Manager<ACE_HANDLE, ACE_Svc_Tuple<ACE_TS_Clerk_Handler> *, ACE_SYNCH_RW_MUTEX>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/netsvcs/lib/TS_Clerk_Handler.h b/netsvcs/lib/TS_Clerk_Handler.h
deleted file mode 100644
index 8f1230e1e2e..00000000000
--- a/netsvcs/lib/TS_Clerk_Handler.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// TS_Clerk_Handler.h
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-
-#ifndef ACE_TS_CLERK_HANDLER_H
-#define ACE_TS_CLERK_HANDLER_H
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Connector.h"
-#include "ace/Connector.h"
-#include "ace/Malloc.h"
-#include "ace/Time_Request_Reply.h"
-
-class ACE_Time_Info
-{
- // = TITLE
- // A simple struct containing delta time and a sequence number.
-
-public:
- long delta_time_;
-
- ACE_UINT32 sequence_num_;
-};
-
-class ACE_TS_Clerk_Processor; // forward declaration
-
-class ACE_Svc_Export ACE_TS_Clerk_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
- // = TITLE
- // The Clerk Handler provides the interface that is used by the
- // Clerk Processor to send time update requests to all the
- // servers. It obtains these updates from the servers and passes
- // the updates to the Clerk Processor
- //
- // = DESCRIPTION
- // The Clerk Processor uses send_request() to send a request for
- // time update to a server. The Clerk Handler internally computes
- // the round trip delay for the reply to come back. Once it gets
- // the reply back from the server (handle_input), it adjusts the
- // system time using the round trip delay estimate and then
- // passes the delta time by reference back to the Clerk
- // Processor.
-public:
- ACE_TS_Clerk_Handler (ACE_TS_Clerk_Processor *processor = 0,
- ACE_INET_Addr &addr = (ACE_INET_Addr &) ACE_Addr::sap_any);
- // Default constructor.
-
- // = Set/get the current state
- enum State
- {
- IDLE = 1, // Prior to initialization.
- CONNECTING, // During connection establishment.
- ESTABLISHED, // Connection is established and active.
- DISCONNECTING, // In the process of disconnecting.
- FAILED // Connection 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);
-
- virtual int open (void * = 0);
- // Activate this instance of the <ACE_TS_Clerk_Handler>
- // (called by the <ACE_TS_Clerk_Processor>).
-
- virtual ACE_HANDLE get_handle (void) const;
- // Return the handle of the message_fifo_;
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // Called when object is removed from the ACE_Reactor
-
- virtual int handle_input (ACE_HANDLE);
- // Receive time update from a server.
-
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg);
- // Restart connection asynchronously when timeout occurs.
-
- void remote_addr (ACE_INET_Addr &addr);
- ACE_INET_Addr &remote_addr (void);
- // Get/Set remote addr
-
- int send_request (ACE_UINT32 sequence_num,
- ACE_Time_Info &time_info);
- // Send request for time update to the server as well as return the
- // current time info by reference.
-
-protected:
- virtual int handle_signal (int signum,
- siginfo_t *,
- ucontext_t *);
- // Handle SIGPIPE.
-
- static void stderr_output (int = 0);
-
- enum
- {
- MAX_RETRY_TIMEOUT = 300
- // 5 minutes is the maximum timeout.
- };
-
-private:
- int recv_reply (ACE_Time_Request &reply);
- // Receive a reply from a server containing time update
-
- int reinitiate_connection (void);
- // Reinitiate connection with the server
-
- State state_;
- // The current state of the connection
-
- int timeout_;
- // Amount of time to wait between reconnection attempts
-
- int max_timeout_;
- // Maximum amount of time to wait between reconnection attempts
-
- ACE_INET_Addr remote_addr_;
- // Remote Addr used for connecting to the server
-
- ACE_TS_Clerk_Processor *processor_;
- // Instance of Clerk Processor used for re-establishing connections
-
- ACE_UINT32 start_time_;
- // Time at which request was sent (used to compute round trip delay)
-
- ACE_UINT32 cur_sequence_num_;
- // Next sequence number of time request (waiting for this update from
- // the server).
-
- ACE_Time_Info time_info_;
- // Record of current delta time and current sequence number
-};
-
-class ACE_TS_Clerk_Processor : public ACE_Connector <ACE_TS_Clerk_Handler, ACE_SOCK_CONNECTOR>
-{
- // = TITLE
- // This class manages all the connections to the servers along
- // with querying them periodically for time updates.
- //
- // = DESCRIPTION
- // The Clerk Processor creates connections to all the servers and
- // creates an ACE_TS_Clerk_Handler for each connection to handle
- // the requests and replies. It periodically sends a request for
- // time update through each of the handlers and uses the replies
- // for computing a synchronized system time.
-public:
- ACE_TS_Clerk_Processor (void);
- // Default constructor
-
- virtual int handle_timeout (const ACE_Time_Value &tv,
- const void *arg);
- // Query servers for time periodically (timeout value)
-
- int initiate_connection (ACE_TS_Clerk_Handler *,
- ACE_Synch_Options &);
- // Set up connections to all servers
-
-protected:
- // = Dynamic linking hooks.
- virtual int init (int argc, char *argv[]);
- // Called when service is linked.
-
- virtual int fini (void);
- // Called when service is unlinked.
-
- virtual int info (char **strp, size_t length) const;
- // Called to determine info about the service.
-
- // = Scheduling hooks.
- virtual int suspend (void);
- virtual int resume (void);
-
-private:
- int parse_args (int argc, char *argv[]);
- // Parse svc.conf arguments.
-
- void alloc (void);
- // Allocate entry in shared memory for system time
-
- int update_time ();
- // Update delta_time using times obtained from all servers
-
- typedef ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_Null_Mutex> MALLOC;
- typedef ACE_Allocator_Adapter<MALLOC> ALLOCATOR;
- ALLOCATOR *shmem_;
- // Allocator (used for reading/writing system time from/to shared memory)
-
- typedef ACE_Unbounded_Set <ACE_TS_Clerk_Handler *> HANDLER_SET;
- typedef ACE_Unbounded_Set_Iterator <ACE_TS_Clerk_Handler *> HANDLER_SET_ITERATOR;
- HANDLER_SET handler_set_;
- // Set of TS_Clerk_Handlers and iterator over the set.
-
- struct System_Time
- {
- long *delta_time_; // Difference between system time and local time
- long *last_local_time_; // Last local time
- };
-
- System_Time system_time_;
- // Clerk system time containing pointers to entries in shared memory
-
- long timer_id_;
- // Timer id returned by Reactor
-
- int timeout_;
- // Time period for updating system time
-
- ACE_TCHAR poolname_[MAXNAMLEN + 1];
- // Pool name for backing store
-
- int blocking_semantics_;
- // Do a blocking/non-blocking connect
-
- ACE_UINT32 cur_sequence_num_;
- // Sequence number of next expected update from servers
-};
-
-ACE_SVC_FACTORY_DECLARE (ACE_TS_Clerk_Processor)
-
-#endif /* ACE_TS_CLERK_HANDLER_H */
diff --git a/netsvcs/lib/TS_Server_Handler.cpp b/netsvcs/lib/TS_Server_Handler.cpp
deleted file mode 100644
index 130afe253bd..00000000000
--- a/netsvcs/lib/TS_Server_Handler.cpp
+++ /dev/null
@@ -1,283 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/SString.h"
-#include "ace/Containers.h"
-#include "ace/Get_Opt.h"
-#include "TS_Server_Handler.h"
-
-ACE_RCSID(lib, TS_Server_Handler, "$Id$")
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Accept_Strategy<ACE_TS_Server_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Acceptor<ACE_TS_Server_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Concurrency_Strategy<ACE_TS_Server_Handler>;
-template class ACE_Creation_Strategy<ACE_TS_Server_Handler>;
-template class ACE_Schedule_All_Reactive_Strategy<ACE_TS_Server_Handler>;
-template class ACE_Scheduling_Strategy<ACE_TS_Server_Handler>;
-template class ACE_Strategy_Acceptor<ACE_TS_Server_Handler, ACE_SOCK_ACCEPTOR>;
-#if defined (ACE_HAS_STREAM_PIPES)
-template class ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>;
-// #else the instantiation in is Client_Logging_Handler.cpp
-#endif /* ACE_HAS_STREAM_PIPES */
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Accept_Strategy<ACE_TS_Server_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Acceptor<ACE_TS_Server_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Concurrency_Strategy<ACE_TS_Server_Handler>
-#pragma instantiate ACE_Creation_Strategy<ACE_TS_Server_Handler>
-#pragma instantiate ACE_Schedule_All_Reactive_Strategy<ACE_TS_Server_Handler>
-#pragma instantiate ACE_Scheduling_Strategy<ACE_TS_Server_Handler>
-#pragma instantiate ACE_Strategy_Acceptor<ACE_TS_Server_Handler, ACE_SOCK_ACCEPTOR>
-#if defined (ACE_HAS_STREAM_PIPES)
-#pragma instantiate ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-// #else the instantiation in is Client_Logging_Handler.cpp
-#endif /* ACE_HAS_STREAM_PIPES */
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-int
-ACE_TS_Server_Acceptor::parse_args (int argc, char *argv[])
-{
- ACE_TRACE ("ACE_TS_Server_Acceptor::parse_args");
-
- this->service_port_ = ACE_DEFAULT_SERVER_PORT;
-
- ACE_LOG_MSG->open ("Time Service");
-
- ACE_Get_Opt get_opt (argc, argv, "p:", 0);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'p':
- this->service_port_ = ACE_OS::atoi (get_opt.optarg);
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n:\n[-p server-port]\n%a", 1),
- -1);
- }
- }
- this->service_addr_.set (this->service_port_);
- return 0;
-}
-
-int
-ACE_TS_Server_Acceptor::init (int argc, char *argv[])
-{
- ACE_TRACE ("ACE_TS_Server_Acceptor::init");
-
- // Use the options hook to parse the command line arguments and set
- // options.
- this->parse_args (argc, argv);
-
- // Set the acceptor endpoint into listen mode (use the Singleton
- // global Reactor...).
- if (this->open (this->service_addr_, ACE_Reactor::instance (),
- 0, 0, 0,
- &this->scheduling_strategy_,
- "Time Server", "ACE time service") == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n: %p on port %d\n",
- "acceptor::open failed",
- this->service_addr_.get_port_number ()),
- -1);
-
- // Ignore SIGPIPE so that each <SVC_HANDLER> can handle this on its
- // own.
- ACE_Sig_Action sig ((ACE_SignalHandler) SIG_IGN, SIGPIPE);
- ACE_UNUSED_ARG (sig);
-
- ACE_INET_Addr server_addr;
-
- // Figure out what port we're really bound to.
- if (this->acceptor ().get_local_addr (server_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "get_local_addr"),
- -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "starting up Time Server at port %d on handle %d\n",
- server_addr.get_port_number (),
- this->acceptor ().get_handle ()));
- return 0;
-}
-
-// The following is a "Factory" used by the ACE_Service_Config and
-// svc.conf file to dynamically initialize the state of the Time Server
-
-ACE_SVC_FACTORY_DEFINE (ACE_TS_Server_Acceptor)
-
-// Default constructor.
-ACE_TS_Server_Handler::ACE_TS_Server_Handler (ACE_Thread_Manager *tm)
- : ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> (tm)
-{
- ACE_TRACE ("ACE_TS_Server_Handler::ACE_TS_Server_Handler");
-}
-
-// Activate this instance of the ACE_TS_Server_Handler (called by the
-// ACE_TS_Server_Acceptor).
-
-/* VIRTUAL */ int
-ACE_TS_Server_Handler::open (void *)
-{
- ACE_TRACE ("ACE_TS_Server_Handler::open");
-
- ACE_INET_Addr client_addr;
-
- // Determine the address of the client and display it.
- if (this->peer ().get_remote_addr (client_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "get_remote_addr"),
- -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "(%t) accepted connection from host %s on fd %d\n",
- client_addr.get_host_name (),
- this->peer ().get_handle ()));
-
- // Call down to our parent to register ourselves with the Reactor.
- if (ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>::open (0) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- -1);
- return 0;
-}
-
-/* VIRTUAL */ int
-ACE_TS_Server_Handler::send_request (ACE_Time_Request &request)
-{
- ACE_TRACE ("ACE_TS_Server_Handler::send_request");
- void *buffer;
- ssize_t length = request.encode (buffer);
-
- if (length == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "encode failed"),
- -1);
-
- // Transmit request via a blocking send.
-
- if (this->peer ().send_n (buffer, length) != length)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "send_n failed"),
- -1);
- return 0;
-}
-
-// Give up waiting (e.g., when a timeout occurs or a client shuts down
-// unexpectedly).
-
-/* VIRTUAL */ int
-ACE_TS_Server_Handler::abandon (void)
-{
- ACE_TRACE ("ACE_TS_Server_Handler::abandon");
-
- // Note we are using the time field to report the errno in case of
- // failure.
- ACE_Time_Request rq (-1, errno);
- return this->send_request (rq);
-}
-
-// Enable clients to limit the amount of time they'll wait
-/* VIRTUAL */ int
-ACE_TS_Server_Handler::handle_timeout (const ACE_Time_Value &, const void *)
-{
- ACE_TRACE ("ACE_TS_Server_Handler::handle_timeout");
- return this->abandon ();
-}
-
-// Return the underlying ACE_HANDLE.
-
-/* VIRTUAL */ ACE_HANDLE
-ACE_TS_Server_Handler::get_handle (void) const
-{
- ACE_TRACE ("ACE_TS_Server_Handler::get_handle");
- return this->peer ().get_handle ();
-}
-
-// Dispatch the appropriate operation to handle the client request.
-
-/* VIRTUAL */ int
-ACE_TS_Server_Handler::dispatch (void)
-{
- ACE_TRACE ("ACE_TS_Server_Handler::dispatch");
- // Get the system time and then create an ACE_Time_Request
- time_t t = ACE_OS::time (0);
- ACE_Time_Request rq (ACE_Time_Request::TIME_UPDATE, t);
- return this->send_request (rq);
-}
-
-// Receive, frame, and decode the client's request. Note, this method
-// should use non-blocking I/O.
-
-/* VIRTUAL */ int
-ACE_TS_Server_Handler::recv_request (void)
-{
- ACE_TRACE ("ACE_TS_Server_Handler::recv_request");
- ssize_t bytes_expected = this->time_request_.size ();
-
- // Since Time_Request messages are fixed size, read the entire
- // message in one go.
- ssize_t n = this->peer ().recv ((void *) &this->time_request_, bytes_expected);
- if (n != bytes_expected)
- {
- switch (n)
- {
- case -1:
- /* FALLTHROUGH */
- ACE_DEBUG ((LM_DEBUG, "****************** recv_request returned -1\n"));
- default:
- ACE_ERROR ((LM_ERROR,
- "%p got %d bytes, expected %d bytes\n",
- "recv failed",
- n,
- bytes_expected));
- /* FALLTHROUGH */
- case 0:
- // We've shutdown unexpectedly, let's abandon the
- // connection.
- this->abandon ();
- return -1;
- /* NOTREACHED */
- }
- }
- else
- {
- // Decode the request into host byte order.
- if (this->time_request_.decode () == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "decode failed"));
- return this->abandon ();
- }
- }
- return 0;
-}
-
-// Callback method invoked by the ACE_Reactor when events arrive from
-// the client.
-
-/* VIRTUAL */ int
-ACE_TS_Server_Handler::handle_input (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_TS_Server_Handler::handle_input");
-
- if (this->recv_request () == -1)
- return -1;
- else
- return this->dispatch ();
-}
-
-ACE_TS_Server_Handler::~ACE_TS_Server_Handler (void)
-{
- ACE_TRACE ("ACE_TS_Server_Handler::~ACE_TS_Server_Handler");
- ACE_DEBUG ((LM_DEBUG,
- "closing down Handle %d\n",
- this->get_handle ()));
-}
diff --git a/netsvcs/lib/TS_Server_Handler.h b/netsvcs/lib/TS_Server_Handler.h
deleted file mode 100644
index 7cef0b7b131..00000000000
--- a/netsvcs/lib/TS_Server_Handler.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// TS_Server_Handler.h
-//
-// = AUTHOR
-// Prashant Jain
-//
-// ============================================================================
-
-#ifndef ACE_TS_SERVER_HANDLER_H
-#define ACE_TS_SERVER_HANDLER_H
-
-#include "ace/Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Acceptor.h"
-#include "ace/Time_Request_Reply.h"
-
-class ACE_Svc_Export ACE_TS_Server_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
- // = TITLE
- // Product object created by <ACE_TS_Server_Acceptor>.
- //
- // = DESCRIPTION
-
- friend class ACE_Shutup_GPlusPlus; // Turn off g++ warning
-public:
- // = Initialization and termination.
-
- ACE_TS_Server_Handler (ACE_Thread_Manager * = 0);
- // Default constructor.
-
- virtual int open (void * = 0);
- // Activate this instance of the <ACE_TS_Server_Handler> (called by the
- // <ACE_Strategy_Acceptor>).
-
- ~ACE_TS_Server_Handler (void);
- // Must be allocated dynamically.
-
-protected:
- // = Helper routines for the operations exported to clients.
-
- virtual int abandon (void);
- // Give up waiting (e.g., when a timeout occurs or a client shuts
- // down unexpectedly).
-
- // = Low level routines for framing requests, dispatching
- // operations, and returning replies.
-
- virtual int recv_request (void);
- // Receive, frame, and decode the client's request.
-
- virtual int dispatch (void);
- // Dispatch the appropriate operation to handle the client's
- // request.
-
- virtual int send_request (ACE_Time_Request &);
- // Special kind of reply
-
- // = Demultiplexing hooks.
- virtual ACE_HANDLE get_handle (void) const;
- // Return the underlying <ACE_HANDLE>.
-
- virtual int handle_input (ACE_HANDLE);
- // Callback method invoked by the <ACE_Reactor> when client events
- // arrive.
-
- // = Timer hook.
- virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg);
- // Enable clients to limit the amount of time they wait.
-
-private:
- ACE_Time_Request time_request_;
- // Cache request from the client.
-
- ACE_INET_Addr addr_;
- // Address of client we are connected with.
-};
-
-class ACE_TS_Server_Acceptor : public ACE_Strategy_Acceptor<ACE_TS_Server_Handler, ACE_SOCK_ACCEPTOR>
-{
- // = TITLE
- // This class contains the service-specific methods that can't
- // easily be factored into the <ACE_Strategy_Acceptor>.
-
-public:
- virtual int init (int argc, char *argv[]);
- // Dynamic linking hook.
-
- int parse_args (int argc, char *argv[]);
- // Parse svc.conf arguments.
-
-private:
- ACE_Schedule_All_Reactive_Strategy<ACE_TS_Server_Handler> scheduling_strategy_;
- // The scheduling strategy is designed for Reactive services.
-};
-
-ACE_SVC_FACTORY_DECLARE (ACE_TS_Server_Acceptor)
-
-#endif /* ACE_TS_SERVER_HANDLER_H */
diff --git a/netsvcs/lib/Token_Handler.cpp b/netsvcs/lib/Token_Handler.cpp
deleted file mode 100644
index 0dca06cd4ea..00000000000
--- a/netsvcs/lib/Token_Handler.cpp
+++ /dev/null
@@ -1,674 +0,0 @@
-// $Id$
-
-#define ACE_BUILD_SVC_DLL
-
-#include "ace/Get_Opt.h"
-#include "Token_Handler.h"
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-ACE_RCSID(lib, Token_Handler, "$Id$")
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-template class ACE_Acceptor<ACE_Token_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Accept_Strategy<ACE_Token_Handler, ACE_SOCK_ACCEPTOR>;
-template class ACE_Concurrency_Strategy<ACE_Token_Handler>;
-template class ACE_Creation_Strategy<ACE_Token_Handler>;
-template class ACE_Schedule_All_Reactive_Strategy<ACE_Token_Handler>;
-template class ACE_Scheduling_Strategy<ACE_Token_Handler>;
-template class ACE_Strategy_Acceptor<ACE_Token_Handler, ACE_SOCK_ACCEPTOR>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#pragma instantiate ACE_Acceptor<ACE_Token_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Accept_Strategy<ACE_Token_Handler, ACE_SOCK_ACCEPTOR>
-#pragma instantiate ACE_Concurrency_Strategy<ACE_Token_Handler>
-#pragma instantiate ACE_Creation_Strategy<ACE_Token_Handler>
-#pragma instantiate ACE_Schedule_All_Reactive_Strategy<ACE_Token_Handler>
-#pragma instantiate ACE_Scheduling_Strategy<ACE_Token_Handler>
-#pragma instantiate ACE_Strategy_Acceptor<ACE_Token_Handler, ACE_SOCK_ACCEPTOR>
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
-
-int
-ACE_Token_Acceptor::parse_args (int argc, char *argv[])
-{
- ACE_TRACE ("ACE_Token_Acceptor::parse_args");
-
- this->service_port_ = ACE_DEFAULT_SERVER_PORT;
-
- ACE_LOG_MSG->open ("Token Service");
-
- ACE_Get_Opt get_opt (argc, argv, "p:", 0);
-
- for (int c; (c = get_opt ()) != -1; )
- {
- switch (c)
- {
- case 'p':
- this->service_port_ = ACE_OS::atoi (get_opt.optarg);
- break;
- default:
- ACE_ERROR_RETURN ((LM_ERROR,
- "%n:\n[-p server-port]\n%a", 1),
- -1);
- }
- }
-
- this->service_addr_.set (this->service_port_);
- return 0;
-}
-
-int
-ACE_Token_Acceptor::init (int argc, char *argv[])
-{
- ACE_TRACE ("ACE_Token_Acceptor::init");
-
- // Use the options hook to parse the command line arguments and set
- // options.
- this->parse_args (argc, argv);
-
- // Set the acceptor endpoint into listen mode (use the Singleton
- // global Reactor...).
- if (this->open (this->service_addr_, ACE_Reactor::instance (),
- 0, 0, 0,
- &this->scheduling_strategy_,
- "Token Server", "ACE token service") == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%n: %p on port %d\n",
- "acceptor::open failed",
- this->service_addr_.get_port_number ()), -1);
-
- // Ignore SIGPIPE so that each <SVC_HANDLER> can handle this on its
- // own.
- ACE_Sig_Action sig ((ACE_SignalHandler) SIG_IGN, SIGPIPE);
- ACE_UNUSED_ARG (sig);
-
- ACE_INET_Addr server_addr;
-
- if (this->acceptor ().get_local_addr (server_addr) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "get_remote_addr"), -1);
-
- ACE_DEBUG ((LM_DEBUG,
- "starting up Token Server at port %d on handle %d\n",
- server_addr.get_port_number (),
- this->acceptor ().get_handle ()));
- return 0;
-}
-
-// The following is a "Factory" used by the ACE_Service_Config and
-// svc.conf file to dynamically initialize the state of the Naming
-// Server.
-
-ACE_SVC_FACTORY_DEFINE (ACE_Token_Acceptor)
-
-// Default constructor.
-
-ACE_Token_Handler::ACE_Token_Handler (ACE_Thread_Manager *tm)
- : ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH> (tm),
- collection_ (1),
- timeout_id_ (0)
-{
- ACE_TRACE ("ACE_Token_Handler::ACE_Token_Handler");
-}
-
-// Create and send a reply to the client.
-
-/* VIRTUAL */ int
-ACE_Token_Handler::send_reply (ACE_UINT32 err)
-{
- ACE_TRACE ("ACE_Token_Handler::send_reply");
- void *buf;
- size_t len;
- ssize_t n;
-
- this->token_reply_.errnum (err);
-
- len = this->token_reply_.encode (buf);
-
- n = this->peer ().send (buf, len);
-
- if (n != (ssize_t) len)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p, expected len = %d, actual len = %d\n",
- "send failed", len, n), -1);
- else
- return 0;
-}
-
-// Acquire the token.
-
-/* VIRTUAL */ int
-ACE_Token_Handler::acquire (ACE_Token_Proxy *proxy)
-{
- ACE_TRACE ("ACE_Token_Handler::acquire");
-#if 0
- ACE_DEBUG ((LM_DEBUG, "in acquire for client id = %s\n",
- proxy->client_id ()));
-#endif /* 0 */
-
- // @@ add notify in token request reply
- if (proxy->acquire (0, 0, ACE_Synch_Options::asynch) == -1)
- {
- if (errno != EWOULDBLOCK)
- // bad bad bad
- return this->send_reply (errno);
-
- // acquire would block
- if (request_options_[ACE_Synch_Options::USE_TIMEOUT] == 1)
- {
- // check for polling
- if ((request_options_.timeout ().sec () == 0) &&
- (request_options_.timeout ().usec () == 0))
- return this->send_reply (EWOULDBLOCK);
-
- // schedule a timer
- this->timeout_id_ = this->reactor ()->schedule_timer
- (this, (void *) proxy, request_options_.timeout ());
- if (timeout_id_ == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "schedule_timer"));
- return this->send_reply (errno);
- }
- }
- // send no reply. wait until we acquire it or until the timer
- // goes off.
- return 0;
- }
- else // success
- return this->send_reply (0);
-}
-
-// Try to acquire the token. Never block.
-
-/* VIRTUAL */ int
-ACE_Token_Handler::try_acquire (ACE_Token_Proxy *proxy)
-{
- ACE_TRACE ("ACE_Token_Handler::try_acquire");
-
-#if 0
- ACE_DEBUG ((LM_DEBUG, "in try_acquire for client id = %s\n",
- proxy->client_id ()));
-#endif /* 0 */
-
- // @@ add notify in token request reply
- if (proxy->tryacquire () == -1)
- return this->send_reply (errno);
- else
- return this->send_reply (0);
-}
-
-// Release the token and allow the next client that is waiting to
-// proceed.
-
-/* VIRTUAL */ int
-ACE_Token_Handler::release (ACE_Token_Proxy *proxy)
-{
- ACE_TRACE ("ACE_Token_Handler::release");
-#if 0
- ACE_DEBUG ((LM_DEBUG,
- "in release for client id = %s\n",
- proxy->client_id ()));
-#endif /* 0 */
-
- if (proxy->release (ACE_Synch_Options::asynch) == -1)
- // oops, it failed
- return this->send_reply (ACE_LOG_MSG->errnum ());
-
- // success
- if (this->timeout_id_ != 0)
- {
- this->reactor ()->cancel_timer (timeout_id_);
- this->timeout_id_ = 0;
- }
-
- return this->send_reply (0);
-}
-
-// Yield the token if any clients are waiting, otherwise keep the
-// token.
-
-/* VIRTUAL */ int
-ACE_Token_Handler::renew (ACE_Token_Proxy *proxy)
-{
- ACE_TRACE ("ACE_Token_Handler::renew");
-
-#if 0
- ACE_DEBUG ((LM_DEBUG, "in renew for client id = %s\n",
- proxy->client_id ()));
-#endif /* 0 */
-
- if (proxy->renew (token_request_.requeue_position (),
- ACE_Synch_Options::asynch) == -1)
- {
- int result = ACE_LOG_MSG->errnum ();
- if (result != EWOULDBLOCK)
- // bad bad bad
- return this->send_reply (result);
-
- // acquire would block
- if (request_options_[ACE_Synch_Options::USE_TIMEOUT] == 1)
- {
- this->timeout_id_ = this->reactor ()->schedule_timer
- (this, 0, request_options_.timeout ());
- if (timeout_id_ == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "schedule_timer"));
- return this->send_reply (ACE_LOG_MSG->errnum ());
- }
- }
- // Send no reply. wait until we acquire it or until the timer
- // goes off.
- return 0;
- }
- else
- // Success, we still hold the token.
- return this->send_reply (0);
-}
-
-/* VIRTUAL */ int
-ACE_Token_Handler::remove (ACE_Token_Proxy *proxy)
-{
- ACE_TRACE ("ACE_Token_Handler::remove");
-#if 0
- ACE_DEBUG ((LM_DEBUG, "in remove for client id = %s\n",
- proxy->client_id ()));
-#endif /* 0 */
- ACE_ERROR ((LM_ERROR, "sorry: ACE_Token_Handler::remove() is not implemented"));
-
- return this->send_reply (ENOTSUP);
-}
-
-// Enable clients to limit the amount of time they'll wait for a
-// token.
-
-/* VIRTUAL */ int
-ACE_Token_Handler::handle_timeout (const ACE_Time_Value &,
- const void *tp)
-{
- ACE_TRACE ("ACE_Token_Handler::handle_timeout");
-
- this->timeout_id_ = 0;
-
- // @@ add a try acquire here!
- // Try to acquire the token, but if we can't get it immediately
- // then abandon the wait.
- // if (this->try_acquire (&token_entry) == -1)
- // return this->abandon (token_entry);
-
- ACE_Token_Proxy *proxy = (ACE_Token_Proxy *) tp;
-
-#if 0
- ACE_DEBUG ((LM_DEBUG, "in handle_timeout for client id = %s\n",
- proxy->client_id ()));
-#endif /* 0 */
-
- // Remove ourselves from the waiter list.
- proxy->release ();
-
- this->send_reply (ETIME);
- return 0;
-}
-
-// Dispatch the appropriate operation to handle the client request.
-
-ACE_Token_Proxy *
-ACE_Token_Handler::get_proxy (void)
-{
- ACE_TRACE ("ACE_Token_Handler::get_proxy");
-
- // See if the proxy already exists in the collection.
- ACE_Token_Proxy *proxy = collection_.is_member (token_request_.token_name ());
-
- // If not, create one.
- if (proxy == 0)
- {
- proxy = this->create_proxy ();
-
- // Put the new_proxy in this client_id's collection.
- if (collection_.insert (*proxy) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "insert failed\n"), 0);
-
- // Delete our copy (one was created in the collection).
- delete proxy;
- proxy = collection_.is_member (token_request_.token_name ());
-
- if (proxy == 0)
- ACE_ERROR_RETURN ((LM_ERROR, "is_member failed\n"), 0);
-
- // Set the client_id (it was set to 1 since we're
- // single-threaded.
- proxy->client_id (token_request_.client_id ());
- }
-
- return proxy;
-}
-
-ACE_Token_Proxy *
-ACE_Token_Handler::create_proxy (void)
-{
- ACE_TRACE ("ACE_Token_Handler::create_proxy");
-
- ACE_Token_Proxy *proxy;
-
- switch (token_request_.token_type ())
- {
- case ACE_Tokens::RWLOCK:
- if (token_request_.proxy_type () == ACE_RW_Token::READER)
- ACE_NEW_RETURN (proxy,
- ACE_TS_RLock (token_request_.token_name (), this),
- 0);
- else
- ACE_NEW_RETURN (proxy,
- ACE_TS_WLock (token_request_.token_name (), this),
- 0);
- break;
- case ACE_Tokens::MUTEX:
- ACE_NEW_RETURN (proxy,
- ACE_TS_Mutex (token_request_.token_name (), this),
- 0);
- break;
- default:
- // Nonexistent token type.
- errno = EINVAL;
- return 0;
- }
-
- // Check for failed new.
- if (proxy == 0)
- errno = ENOMEM;
-
- return proxy;
-}
-
-int
-ACE_Token_Handler::dispatch (void)
-{
- ACE_TRACE ("ACE_Token_Handler::dispatch");
- ACE_Token_Proxy *proxy = this->get_proxy ();
-
- if (proxy == 0)
- return -1;
-
- // Dispatch the appropriate request.
- switch (this->token_request_.operation_type ())
- {
- case ACE_Token_Request::ACQUIRE:
- return this->acquire (proxy);
- case ACE_Token_Request::TRY_ACQUIRE:
- return this->try_acquire (proxy);
- case ACE_Token_Request::RELEASE:
- return this->release (proxy);
- case ACE_Token_Request::RENEW:
- return this->renew (proxy);
- case ACE_Token_Request::REMOVE:
- return this->remove (proxy);
- default:
- ACE_ERROR_RETURN ((LM_ERROR, "invalid type = %d\n",
- this->token_request_.operation_type ()), -1);
- /* NOTREACHED */
- }
-}
-
-// Receive, frame, and decode the client's request.
-// Note, this method should use non-blocking I/O.
-
-/* VIRTUAL */ int
-ACE_Token_Handler::recv_request (void)
-{
- ACE_TRACE ("ACE_Token_Handler::recv_request");
- ssize_t n;
-
- // Read the first 4 bytes to get the length of the message
- // This implementation assumes that the first 4 bytes are
- // the length of the message.
- n = this->peer ().recv ((void *) &this->token_request_,
- sizeof (ACE_UINT32));
-
- switch (n)
- {
- case -1:
- /* FALLTHROUGH */
- default:
- ACE_ERROR ((LM_ERROR, "%p got %d bytes, expected %d bytes\n",
- "recv failed", n, sizeof (ACE_UINT32)));
- /* FALLTHROUGH */
- case 0:
- // We've shutdown unexpectedly, let's abandon the connection.
- this->abandon (0);
- return -1;
- /* NOTREACHED */
- case sizeof (ACE_UINT32):
- {
- // Transform the length into host byte order.
- ssize_t length = this->token_request_.length ();
-
- // Do a sanity check on the length of the message.
- if (length > (ssize_t) sizeof this->token_request_)
- {
- ACE_ERROR ((LM_ERROR, "length %d too long\n", length));
- return this->abandon (1);
- }
-
- // Receive the rest of the request message.
- // @@ beware of blocking read!!!.
- n = this->peer ().recv ((void *) (((char *) &this->token_request_)
- + sizeof (ACE_UINT32)),
- length - sizeof (ACE_UINT32));
-
- // Subtract off the size of the part we skipped over...
- if (n != (length - (ssize_t) sizeof (ACE_UINT32)))
- {
- ACE_ERROR ((LM_ERROR, "%p expected %d, got %d\n",
- "invalid length", length, n));
- return this->abandon (1);
- }
-
- // Decode the request into host byte order.
- if (this->token_request_.decode () == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n", "decode failed"));
- return this->abandon (1);
- }
-
- // if (OS::debug)
- this->token_request_.dump ();
- }
- }
- return 0;
-}
-
-// Callback method invoked by the ACE_Reactor when
-// events arrive from the client.
-
-/* VIRTUAL */ int
-ACE_Token_Handler::handle_input (ACE_HANDLE)
-{
- ACE_TRACE ("ACE_Token_Handler::handle_input");
-
-#if 0
- ACE_DEBUG ((LM_DEBUG, "****************** in handle_input\n"));
-#endif /* 0 */
-
- if (this->recv_request () == -1)
- return -1;
- else
- return this->dispatch ();
-}
-
-void
-ACE_Token_Handler::sleep_hook (void)
-{
- ACE_TRACE ("ACE_Token_Handler::sleep_hook");
- // @@ what should we do?
- return;
-}
-
-void
-ACE_Token_Handler::token_acquired (ACE_TPQ_Entry *)
-{
- ACE_TRACE ("ACE_Token_Handler::token_acquired");
-
- if (this->timeout_id_ != 0)
- {
- this->reactor ()->cancel_timer (this->timeout_id_);
- this->timeout_id_ = 0;
- }
-
- this->send_reply (0);
-}
-
-int
-ACE_Token_Handler::abandon (int send_error)
-{
- ACE_TRACE ("ACE_Token_Handler::abandon");
-
- // Release ownership or remove us from the waiter list.
- if (this->timeout_id_ != 0)
- {
- this->reactor ()->cancel_timer (timeout_id_);
- this->timeout_id_ = 0;
- }
-
- // @@ release all tokens
- collection_.release ();
-
- if (send_error)
- return this->send_reply (EIO);
- else
- return -1;
-}
-
-// ************************************************************
-// ************************************************************
-// ************************************************************
-
-ACE_TS_Mutex::ACE_TS_Mutex (const char *name,
- ACE_Token_Handler *th)
-: ACE_Local_Mutex (name, 0, 1), // The 1 is debug.
- th_ (th)
-{
- ACE_TRACE ("ACE_TS_Mutex::ACE_TS_Mutex");
-}
-
-ACE_TS_Mutex::ACE_TS_Mutex (const ACE_TS_Mutex &m)
-: ACE_Local_Mutex (m),
- th_ (m.th_)
-{
- ACE_TRACE ("ACE_TS_Mutex::ACE_TS_Mutex");
- this->open (m.name (), m.ignore_deadlock_, m.debug_);
-}
-
-void
-ACE_TS_Mutex::sleep_hook (void)
-{
- ACE_TRACE ("ACE_TS_Mutex::sleep_hook");
- th_->sleep_hook ();
- return;
-}
-
-void
-ACE_TS_Mutex::token_acquired (ACE_TPQ_Entry *e)
-{
- ACE_TRACE ("ACE_TS_Mutex::token_acquired");
- // Notify the token handler.
- th_->token_acquired (e);
- return;
-}
-
-ACE_Token_Proxy *
-ACE_TS_Mutex::clone (void) const
-{
- ACE_TRACE ("ACE_TS_Mutex::clone");
- ACE_Token_Proxy *temp;
- ACE_NEW_RETURN (temp, ACE_TS_Mutex (*this), 0);
- return temp;
-}
-
-// ************************************************************
-
-ACE_TS_RLock::ACE_TS_RLock (const char *name,
- ACE_Token_Handler *th)
-: ACE_Local_RLock (name, 0, 1), // The 1 is debug.
- th_ (th)
-{
- ACE_TRACE ("ACE_TS_RLock::ACE_TS_RLock");
-}
-
-ACE_TS_RLock::ACE_TS_RLock (const ACE_TS_RLock &r)
-: ACE_Local_RLock (r),
- th_ (r.th_)
-{
- ACE_TRACE ("ACE_TS_RLock::ACE_TS_RLock");
- this->open (r.name (), r.ignore_deadlock_, r.debug_);
-}
-
-void
-ACE_TS_RLock::sleep_hook (void)
-{
- ACE_TRACE ("ACE_TS_RLock::sleep_hook");
- th_->sleep_hook ();
- return;
-}
-
-void
-ACE_TS_RLock::token_acquired (ACE_TPQ_Entry *e)
-{
- ACE_TRACE ("ACE_TS_RLock::token_acquired");
- // Notify the token handler.
- th_->token_acquired (e);
- return;
-}
-
-ACE_Token_Proxy *
-ACE_TS_RLock::clone (void) const
-{
- ACE_TRACE ("ACE_TS_RLock::clone");
- ACE_Token_Proxy *temp;
-
- ACE_NEW_RETURN (temp, ACE_TS_RLock (*this), 0);
- return temp;
-}
-
-// ************************************************************
-
-ACE_TS_WLock::ACE_TS_WLock (const char *name,
- ACE_Token_Handler *th)
-: ACE_Local_WLock (name, 0, 1), // The 1 is debug.
- th_ (th)
-{
- ACE_TRACE ("ACE_TS_WLock::ACE_TS_WLock");
-}
-
-ACE_TS_WLock::ACE_TS_WLock (const ACE_TS_WLock &w)
-: ACE_Local_WLock (w),
- th_ (w.th_)
-{
- ACE_TRACE ("ACE_TS_WLock::ACE_TS_WLock");
- this->open (w.name (), w.ignore_deadlock_, w.debug_);
-}
-
-void
-ACE_TS_WLock::sleep_hook (void)
-{
- ACE_TRACE ("ACE_TS_WLock::sleep_hook");
- th_->sleep_hook ();
- return;
-}
-
-void
-ACE_TS_WLock::token_acquired (ACE_TPQ_Entry *e)
-{
- ACE_TRACE ("ACE_TS_WLock::token_acquired");
- // Notify the token handler.
- th_->token_acquired (e);
- return;
-}
-
-ACE_Token_Proxy *
-ACE_TS_WLock::clone (void) const
-{
- ACE_TRACE ("ACE_TS_WLock::clone");
- ACE_Token_Proxy *temp;
-
- ACE_NEW_RETURN (temp, ACE_TS_WLock (*this), 0);
- return temp;
-}
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
diff --git a/netsvcs/lib/Token_Handler.h b/netsvcs/lib/Token_Handler.h
deleted file mode 100644
index 057336d79f7..00000000000
--- a/netsvcs/lib/Token_Handler.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ACE
-//
-// = FILENAME
-// Token_Handler.h
-//
-// = AUTHOR
-// Douglas C. Schmidt (schmidt@cs.wustl.edu)
-// Tim Harrison (harrison@cs.wustl.edu)
-//
-// ============================================================================
-
-#ifndef ACE_TOKEN_HANDLER_H
-#define ACE_TOKEN_HANDLER_H
-
-#include "ace/Acceptor.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "ace/SOCK_Acceptor.h"
-#include "ace/Local_Tokens.h"
-#include "ace/Token_Collection.h"
-#include "ace/Token_Request_Reply.h"
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
-
-class ACE_Svc_Export ACE_Token_Handler : public ACE_Svc_Handler<ACE_SOCK_STREAM, ACE_NULL_SYNCH>
-{
- // = TITLE
- // Product object created by an <ACE_Token_Acceptor>. A
- // <Token_Handler> exchanges messages with a <Token_Proxy> object
- // on the client-side.
- //
- // = DESCRIPTION
- // This class is the main workhorse of the ACE Token service. It
- // receives token operation requests from remote clients and turns
- // them into calls on local tokens (acquire, release, renew, and
- // remove). In OMG CORBA terms, it is an object adapter. It also
- // schedules and handles timeouts that are used to support "timed
- // waits." Clients used timed waits to bound the amount of time
- // they block trying to get a token.
-
-public:
- // = Initialization and termination.
-
- ACE_Token_Handler (ACE_Thread_Manager * = 0);
- // Default constructor.
-
- // = Accessor and mutator methods.
-
- // = Remote operations "exported" to a client.
- virtual int acquire (ACE_Token_Proxy *proxy);
- // Try to acquire the token.
- // Precondition: client *may* hold the token already (i.e.,
- // supports recursive acquisitions).
-
- virtual int try_acquire (ACE_Token_Proxy *proxy);
- // Try to acquire the token.
-
- virtual int release (ACE_Token_Proxy *proxy);
- // Release the token and allow the next client that is waiting to
- // proceed. Preconditions: client must hold the token.
-
- virtual int renew (ACE_Token_Proxy *proxy);
- // Yield the token if any clients are waiting, otherwise keep the
- // token. Preconditions: client must hold the token.
-
- virtual int remove (ACE_Token_Proxy *proxy);
- // Remove the specified token from the Token_Map. Preconditions:
- // ACE_Token must exist. @@ Any other preconditions, e.g., must
- // client hold token, must there be no waiters, etc.?
-
- void sleep_hook (void);
- // Called by TS_[Mutex,RLock,WLock] when we hold the mutex and
- // someone wants it.
-
- void token_acquired (ACE_TPQ_Entry *);
- // Called by TS_[Mutex,RLock,WLock] when we are waiting and acquire
- // the mutex.
-
-protected:
- // = Low level routines for framing requests, dispatching
- // operations, and returning replies.
-
- virtual int abandon (int send_error);
- // Our connection has been closed.
-
- virtual int recv_request (void);
- // Receive, frame, and decode the client's request.
-
- virtual int dispatch (void);
- // Dispatch the appropriate operation to handle the client's
- // request.
-
- virtual int send_reply (ACE_UINT32 errnum);
- // Create and send a reply to the client.
-
- // = Demultiplexing hooks.
- virtual int handle_input (ACE_HANDLE);
- // Callback method invoked by the <ACE_Reactor> when client events
- // arrive.
-
- // = Timer hook.
- virtual int handle_timeout (const ACE_Time_Value &tv, const void *arg);
- // Enable clients to limit the amount of time they wait for a token.
-
- ACE_Token_Proxy *get_proxy (void);
- // return a proxy for the calling client_id and token name.
-
-private:
-
- virtual ACE_Token_Proxy *create_proxy (void);
- // Switches on the type of token_request_ and creates a new
- // Token_Proxy.
-
- ACE_Synch_Options request_options_;
- // Keeps track of the synchronization options (i.e., the timeout
- // interval).
-
- ACE_Token_Collection collection_;
- // collection of the client's token proxies.
-
- long timeout_id_;
- // ID returned by the Reactor that is used to kill registered timers
- // when a token operation times out.
-
- ACE_Token_Request token_request_;
- // Cache request from the client.
-
- ACE_Token_Reply token_reply_;
- // Cache reply to the client.
-};
-
-// = DESCRIPTION of ACE_TS_* classes:
-// When Tokens are released, waiting token proxies are notified
-// when the releasing thread calls token_acquired on the waiting
-// proxy. The Token Server specializes ACE_Token_Proxy to
-// redefine the implementation of token_acquired. When
-// token_acquired is called, the Token_Handler can then send the
-// response back over the socket connection to unblock the
-// client side.
-// Since only the Token_Handler uses ACE_TS_Mutex, we've moved
-// the definition to the .cpp file.
-
-class ACE_TS_Mutex : public ACE_Local_Mutex
-{
- // = TITLE
- // ACE_TS_Mutex -- ACE_*T*oken_*S*erver_Mutex
-
-public:
- ACE_TS_Mutex (const char *name,
- ACE_Token_Handler *th);
- // Creation.
-
-protected:
- virtual void sleep_hook (void);
- // Somebody wants our token!
-
- virtual void token_acquired (ACE_TPQ_Entry *);
- // We've been taken off the waiters list and given the token! Call
- // the Token_Handler associated at construction, so it can tell the
- // remote client.
-
- ACE_TS_Mutex (const ACE_TS_Mutex &);
- // Duplication.
-
- virtual ACE_Token_Proxy *clone (void) const;
- // Return a deep copy.
-
-private:
- ACE_Token_Handler* th_;
- // The Token Handler associated with this proxy. Set at
- // construction and notified when blocking acquires succeed.
-};
-
-class ACE_TS_RLock : public ACE_Local_RLock
-{
- // = TITLE
- // ACE_TS_RLock -- ACE_*T*oken_*S*erver_RLock
-public:
- ACE_TS_RLock (const char *name,
- ACE_Token_Handler *th);
- // Creation.
-
-protected:
- virtual void sleep_hook (void);
- // Somebody wants our token!
-
- virtual void token_acquired (ACE_TPQ_Entry *);
- // We've been taken off the waiters list and given the token! Call
- // the Token_Handler associated at construction, so it can tell the
- // remote client.
-
- ACE_TS_RLock (const ACE_TS_RLock&);
- // Duplication.
-
- virtual ACE_Token_Proxy *clone (void) const;
- // Return a deep copy.
-
-private:
- ACE_Token_Handler* th_;
- // the Token Handler associated with this proxy. Set at
- // construction and notified when blocking acquires succeed.
-};
-
-class ACE_TS_WLock : public ACE_Local_WLock
-{
- // = TITLE
- // ACE_TS_WLock -- ACE_*T*oken_*S*erver_WLock
-public:
- ACE_TS_WLock (const char *name,
- ACE_Token_Handler *th);
- // Creation.
-
-protected:
- virtual void sleep_hook (void);
- // Somebody wants our token!
-
- virtual void token_acquired (ACE_TPQ_Entry *);
- // We've been taken off the waiters list and given the token! Call
- // the Token_Handler associated at construction, so it can tell the
- // remote client.
-
- ACE_TS_WLock (const ACE_TS_WLock&);
- // Duplication.
-
- virtual ACE_Token_Proxy *clone (void) const;
- // Return a deep copy.
-
-private:
- ACE_Token_Handler* th_;
- // the Token Handler associated with this proxy. Set at
- // construction and notified when blocking acquires succeed.
-};
-
-class ACE_Token_Acceptor : public ACE_Strategy_Acceptor<ACE_Token_Handler, ACE_SOCK_ACCEPTOR>
-{
- // = TITLE
- // This class contains the service-specific methods that can't
- // easily be factored into the <ACE_Strategy_Acceptor>.
-public:
- virtual int init (int argc, char *argv[]);
- // Dynamic linking hook.
-
- int parse_args (int argc, char *argv[]);
- // Parse svc.conf arguments.
-
-private:
- ACE_Schedule_All_Reactive_Strategy<ACE_Token_Handler> scheduling_strategy_;
- // The scheduling strategy is designed for Reactive services.
-};
-
-ACE_SVC_FACTORY_DECLARE (ACE_Token_Acceptor)
-
-#endif /* ACE_HAS_TOKENS_LIBRARY */
-#endif /* ACE_TOKEN_HANDLER_H */
diff --git a/netsvcs/lib/netsvcs.dsp b/netsvcs/lib/netsvcs.dsp
deleted file mode 100644
index 5be18c2a825..00000000000
--- a/netsvcs/lib/netsvcs.dsp
+++ /dev/null
@@ -1,153 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Library" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=NETSVCS Library - 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 "netsvcs.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 "netsvcs.mak" CFG="NETSVCS Library - Win32Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Library - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "NETSVCS Library - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "NETSVCS Library - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\netsvcs\Release"
-# PROP BASE Intermediate_Dir ".\netsvcs\Release"
-# PROP BASE Target_Dir ".\netsvcs"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\netsvcs"
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# 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:windows /dll /machine:I386
-# ADD LINK32 ace.lib /nologo /subsystem:windows /dll /machine:I386 /out:"..\..\bin\netsvcs.dll" /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "NETSVCS Library - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\netsvcs\Debug"
-# PROP BASE Intermediate_Dir ".\netsvcs\Debug"
-# PROP BASE Target_Dir ".\netsvcs"
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir ""
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ".\netsvcs"
-# 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 "..\..\\" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /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
-# ADD LINK32 aced.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"..\..\bin\netsvcsd.dll" /libpath:"..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Library - Win32 Release"
-# Name "NETSVCS Library - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\Client_Logging_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Server_Logging_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TS_Clerk_Handler.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\TS_Server_Handler.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=.\Client_Logging_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Name_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Server_Logging_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\Token_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TS_Clerk_Handler.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TS_Server_Handler.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
-# End Target
-# End Project
diff --git a/netsvcs/lib/netsvcs.dsw b/netsvcs/lib/netsvcs.dsw
deleted file mode 100644
index b95b02207a8..00000000000
--- a/netsvcs/lib/netsvcs.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "netsvcs"=.\netsvcs.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/netsvcs/netsvcs.dsw b/netsvcs/netsvcs.dsw
deleted file mode 100644
index 1b8a8954b76..00000000000
--- a/netsvcs/netsvcs.dsw
+++ /dev/null
@@ -1,167 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "NETSVCS Direct Logging Client"=.\clients\Logger\direct_logging.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "NETSVCS Indirect Logging Client"=.\clients\Logger\indirect_logging.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "NETSVCS Library"=.\lib\netsvcs.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "NETSVCS Naming Client DLL"=.\clients\Naming\Client\Client_Test.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "NETSVCS Naming Client Test"=.\clients\Naming\Client\main.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name NETSVCS Naming Client DLL
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "NETSVCS Servers"=.\servers\servers.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name NETSVCS Library
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "NETSVCS Token Collection Client"=.\clients\Tokens\collection\collection.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "NETSVCS Token Deadlock Client"=.\clients\Tokens\deadlock\deadlock.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "NETSVCS Token Invariant Client"=.\clients\Tokens\invariant\invariant.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "NETSVCS Token Manual Client"=.\clients\Tokens\manual\manual.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "NETSVCS Token Mutex Client"=.\clients\Tokens\mutex\mutex.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "NETSVCS Token RW_Lock Client"=.\clients\Tokens\rw_lock\rw_lock.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/netsvcs/servers/Makefile b/netsvcs/servers/Makefile
deleted file mode 100644
index bf5aadf1977..00000000000
--- a/netsvcs/servers/Makefile
+++ /dev/null
@@ -1,282 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-LDLIBS = -lnetsvcs
-VLDLIBS = $(LDLIBS:%=%$(VAR))
-LSRC = $(addsuffix .cpp,$(BIN))
-
-BIN2 = main
-
-#### If the ACE library wasn't built with sufficient components, don't
-#### try to build here.
-ACE_BUILD_COMPONENTS := $(shell sh $(ACE_ROOT)/bin/ace_components --ace)
-ifeq (Other,$(findstring Other,$(ACE_BUILD_COMPONENTS)))
- ifeq (Token,$(findstring Token,$(ACE_BUILD_COMPONENTS)))
- BIN = $(BIN2)
- endif # ! Token
-endif # ! Other
-
-#----------------------------------------------------------------------------
-# 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
-#----------------------------------------------------------------------------
-
-CPPFLAGS += -I$(ACE_ROOT)/netsvcs/lib
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/main.o .obj/main.so .shobj/main.o .shobj/main.so: main.cpp \
- $(ACE_ROOT)/ace/Service_Config.h \
- $(ACE_ROOT)/ace/pre.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/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.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/Synch.i \
- $(ACE_ROOT)/ace/Synch_T.h \
- $(ACE_ROOT)/ace/Synch_T.i \
- $(ACE_ROOT)/ace/Thread.h \
- $(ACE_ROOT)/ace/Thread_Adapter.h \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl \
- $(ACE_ROOT)/ace/Base_Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread_Adapter.inl \
- $(ACE_ROOT)/ace/Thread.i \
- $(ACE_ROOT)/ace/Atomic_Op.i \
- $(ACE_ROOT)/ace/Synch_T.cpp \
- $(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/Signal.i \
- $(ACE_ROOT)/ace/Unbounded_Queue.h \
- $(ACE_ROOT)/ace/Node.h \
- $(ACE_ROOT)/ace/Node.cpp \
- $(ACE_ROOT)/ace/Unbounded_Queue.inl \
- $(ACE_ROOT)/ace/Unbounded_Queue.cpp \
- $(ACE_ROOT)/ace/Malloc_Base.h \
- $(ACE_ROOT)/ace/Unbounded_Set.h \
- $(ACE_ROOT)/ace/Unbounded_Set.inl \
- $(ACE_ROOT)/ace/Unbounded_Set.cpp \
- $(ACE_ROOT)/ace/SString.h \
- $(ACE_ROOT)/ace/SString.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/Free_List.cpp \
- $(ACE_ROOT)/ace/Test_and_Set.h \
- $(ACE_ROOT)/ace/Test_and_Set.i \
- $(ACE_ROOT)/ace/Test_and_Set.cpp \
- $(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/Logging_Strategy.h \
- $(ACE_ROOT)/netsvcs/lib/TS_Clerk_Handler.h \
- $(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/Connector.h \
- $(ACE_ROOT)/ace/Map_Manager.h \
- $(ACE_ROOT)/ace/Map_Manager.i \
- $(ACE_ROOT)/ace/Map_Manager.cpp \
- $(ACE_ROOT)/ace/Malloc.h \
- $(ACE_ROOT)/ace/Malloc.i \
- $(ACE_ROOT)/ace/Malloc_T.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.h \
- $(ACE_ROOT)/ace/Malloc_Allocator.i \
- $(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/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/Memory_Pool.i \
- $(ACE_ROOT)/ace/Svc_Handler.h \
- $(ACE_ROOT)/ace/Synch_Options.h \
- $(ACE_ROOT)/ace/Synch_Options.i \
- $(ACE_ROOT)/ace/Task.h \
- $(ACE_ROOT)/ace/Thread_Manager.h \
- $(ACE_ROOT)/ace/Containers.h \
- $(ACE_ROOT)/ace/Containers.i \
- $(ACE_ROOT)/ace/Containers_T.h \
- $(ACE_ROOT)/ace/Array_Base.h \
- $(ACE_ROOT)/ace/Array_Base.inl \
- $(ACE_ROOT)/ace/Array_Base.cpp \
- $(ACE_ROOT)/ace/Containers_T.i \
- $(ACE_ROOT)/ace/Containers_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 \
- $(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/Message_Block_T.h \
- $(ACE_ROOT)/ace/Message_Block_T.i \
- $(ACE_ROOT)/ace/Message_Block_T.cpp \
- $(ACE_ROOT)/ace/IO_Cntl_Msg.h \
- $(ACE_ROOT)/ace/Message_Queue_T.h \
- $(ACE_ROOT)/ace/Message_Queue_T.i \
- $(ACE_ROOT)/ace/Message_Queue_T.cpp \
- $(ACE_ROOT)/ace/Strategies.h \
- $(ACE_ROOT)/ace/Strategies_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager.h \
- $(ACE_ROOT)/ace/Functor.h \
- $(ACE_ROOT)/ace/Functor.i \
- $(ACE_ROOT)/ace/Functor_T.h \
- $(ACE_ROOT)/ace/Functor_T.i \
- $(ACE_ROOT)/ace/Functor_T.cpp \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.h \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.i \
- $(ACE_ROOT)/ace/Hash_Map_Manager_T.cpp \
- $(ACE_ROOT)/ace/Strategies_T.i \
- $(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/Process_Mutex.h \
- $(ACE_ROOT)/ace/Process_Mutex.inl \
- $(ACE_ROOT)/ace/WFMO_Reactor.i \
- $(ACE_ROOT)/ace/Strategies.i \
- $(ACE_ROOT)/ace/Message_Queue.i \
- $(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.cpp \
- $(ACE_ROOT)/ace/Svc_Handler.cpp \
- $(ACE_ROOT)/ace/Dynamic.h \
- $(ACE_ROOT)/ace/Dynamic.i \
- $(ACE_ROOT)/ace/Connector.cpp \
- $(ACE_ROOT)/ace/Time_Request_Reply.h \
- $(ACE_ROOT)/netsvcs/lib/TS_Server_Handler.h \
- $(ACE_ROOT)/ace/Acceptor.h \
- $(ACE_ROOT)/ace/Acceptor.cpp \
- $(ACE_ROOT)/ace/SOCK_Acceptor.h \
- $(ACE_ROOT)/ace/SOCK_Acceptor.i \
- $(ACE_ROOT)/netsvcs/lib/Client_Logging_Handler.h \
- $(ACE_ROOT)/ace/SPIPE_Stream.h \
- $(ACE_ROOT)/ace/SPIPE.h \
- $(ACE_ROOT)/ace/SPIPE_Addr.h \
- $(ACE_ROOT)/ace/SPIPE_Addr.i \
- $(ACE_ROOT)/ace/SPIPE.i \
- $(ACE_ROOT)/ace/SPIPE_Stream.i \
- $(ACE_ROOT)/netsvcs/lib/Name_Handler.h \
- $(ACE_ROOT)/ace/Naming_Context.h \
- $(ACE_ROOT)/ace/Name_Proxy.h \
- $(ACE_ROOT)/ace/Name_Request_Reply.h \
- $(ACE_ROOT)/ace/Name_Space.h \
- $(ACE_ROOT)/netsvcs/lib/Token_Handler.h \
- $(ACE_ROOT)/ace/Local_Tokens.h \
- $(ACE_ROOT)/ace/Local_Tokens.i \
- $(ACE_ROOT)/ace/Token_Collection.h \
- $(ACE_ROOT)/ace/Token_Collection.i \
- $(ACE_ROOT)/ace/Token_Request_Reply.h \
- $(ACE_ROOT)/ace/Token_Request_Reply.i \
- $(ACE_ROOT)/netsvcs/lib/Server_Logging_Handler.h \
- $(ACE_ROOT)/netsvcs/lib/Log_Message_Receiver.h \
- $(ACE_ROOT)/netsvcs/lib/Log_Message_Receiver.cpp \
- $(ACE_ROOT)/netsvcs/lib/Server_Logging_Handler_T.h \
- $(ACE_ROOT)/ace/TLI_Acceptor.h \
- $(ACE_ROOT)/ace/TLI.h \
- $(ACE_ROOT)/ace/TLI_Stream.h \
- $(ACE_ROOT)/netsvcs/lib/Server_Logging_Handler_T.cpp \
- $(ACE_ROOT)/ace/Get_Opt.h \
- $(ACE_ROOT)/ace/Get_Opt.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/netsvcs/servers/Makefile.am b/netsvcs/servers/Makefile.am
deleted file mode 100644
index 5a9dc555fed..00000000000
--- a/netsvcs/servers/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-##----------------------------------------------------------------------------
-## $Id$
-##
-## Makefile.am for the netsvcs server example
-##----------------------------------------------------------------------------
-
-##
-## Process this file with automake to create Makefile.in
-##
-
-## The number in AUTOMAKE_OPTIONS is the minimum required version automake
-## needed to process this file.
-AUTOMAKE_OPTIONS = 1.4
-
-INCLUDES = -I$(top_builddir) -I$(top_srcdir) -I$(top_srcdir)/netsvcs/lib
-
-noinst_PROGRAMS = main
-
-main_SOURCES = main.cpp
-main_LDADD = $(top_builddir)/netsvcs/lib/libnetsvcs.la \
- $(top_builddir)/ace/libACE.la
-
-noinst_DATA = svc.conf
-
-EXTRA_DIST = $(noinst_DATA)
-
diff --git a/netsvcs/servers/Makefile.bor b/netsvcs/servers/Makefile.bor
deleted file mode 100644
index 746ba07d7c2..00000000000
--- a/netsvcs/servers/Makefile.bor
+++ /dev/null
@@ -1,7 +0,0 @@
-
-NAME = main
-OBJFILES = $(OBJDIRS)\$(NAME).obj
-CFLAGS = -I$(ACE_ROOT)\netsvcs\lib $(ACE_CFLAGS)
-LIBFILES = $(ACE_LIB) $(NETSVCS_LIB)
-!include <$(ACE_ROOT)\netsvcs\build.bor>
-
diff --git a/netsvcs/servers/README b/netsvcs/servers/README
deleted file mode 100644
index f6fa4a19557..00000000000
--- a/netsvcs/servers/README
+++ /dev/null
@@ -1,35 +0,0 @@
-This directory contains the driver program that links the various
-services together, either statically or dynamically, to form complete
-server programs.
-
-You can configure the following ACE network services into the driver
-program by changing how the svc.conf file is setup:
-
- . Logger -- Controls the output of all services that are
- invoked along with the Logger service. Please see the README
- file in /netsvcs/lib for details on how to control the output.
-
- . [Thr_]Server_Logging_Handler.* -- Implements server portion
- of the ACE distributed logging service. Both multi-threaded
- and single-threaded implementations are provided.
-
- . Client_Logging_Handler.* -- Implements the client portion
- of the ACE distributed logging service. Note that you
- generally will run a netsvc daemon that's configured with
- *either* the server portion of the logging service or the
- client portion of the logging service, but not both in
- the same process. In otherwords, you'll need to have
- separate svc.conf files to configure the client logging process
- and the server logging process indepedently.
-
- . Name_Handler.* -- Implements a distributed name service that
- allows applications to bind, find, and unbind names in
- a distributed system.
-
- . Token_Handler.* -- Implements a distributed token service
- that allows distributed applications to acquire and release
- locks in a distributed system.
-
- . Time_Handler.* -- Implements a distributed time service that
- allows distributed applications to synchronize their
- time.
diff --git a/netsvcs/servers/main.cpp b/netsvcs/servers/main.cpp
deleted file mode 100644
index e39b0e23ebe..00000000000
--- a/netsvcs/servers/main.cpp
+++ /dev/null
@@ -1,155 +0,0 @@
-// $Id$
-
-#include "ace/Service_Config.h"
-#include "ace/Logging_Strategy.h"
-#include "TS_Clerk_Handler.h"
-#include "TS_Server_Handler.h"
-#include "Client_Logging_Handler.h"
-#include "Name_Handler.h"
-#include "Token_Handler.h"
-#include "Server_Logging_Handler.h"
-
-ACE_RCSID(servers, main, "$Id$")
-
-int
-main (int argc, char *argv[])
-{
- // Create an adapter to end the event loop.
- ACE_Sig_Adapter sa ((ACE_Sig_Handler_Ex) ACE_Reactor::end_event_loop);
-
- 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,
- &sa) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n"),
- -1);
-
- // Try to link in the svc.conf entries dynamically.
- if (ACE_Service_Config::open (argc, argv) == -1)
- {
- if (errno != ENOENT)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "open"),
- 1);
- else // Use static linking.
- {
- if (ACE::debug () == 0)
- ACE_LOG_MSG->priority_mask (~LM_DEBUG,
- ACE_Log_Msg::PROCESS);
-
- // Calling ACE_SVC_INVOKE to create a new Service_Object.
- // Stash the newly created Service_Object into an
- // ACE_Service_Object_Ptr which is an <auto_ptr> specialized
- // for ACE_Service_Object.
-
- char *l_argv[3];
- char name_port[] = "-p " ACE_DEFAULT_NAME_SERVER_PORT_STR;
-
- l_argv[0] = name_port;
- l_argv[1] = 0;
- ACE_Service_Object_Ptr sp_1 = ACE_SVC_INVOKE (ACE_Name_Acceptor);
-
- if (sp_1->init (1, l_argv) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "Name Service",
- 1));
-
- char time_port[] = "-p " ACE_DEFAULT_TIME_SERVER_PORT_STR;
- l_argv[0] = time_port;
- l_argv[1] = 0;
- ACE_Service_Object_Ptr sp_2 = ACE_SVC_INVOKE (ACE_TS_Server_Acceptor);
-
- if (sp_2->init (1, l_argv) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "TS Server Acceptor", 1));
-
- char clerk_port[] = "-p 10011";
- l_argv[0] = argv[0];
- l_argv[1] = clerk_port;
- l_argv[2] = 0;
- ACE_Service_Object_Ptr sp_3 = ACE_SVC_INVOKE (ACE_TS_Clerk_Processor);
-
- if (sp_3->init (2, l_argv) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "TS Clerk Processor",
- 1));
-
-#if defined (ACE_HAS_TOKENS_LIBRARY)
- char token_port[] = "-p " ACE_DEFAULT_TOKEN_SERVER_PORT_STR;
- l_argv[0] = token_port;
- l_argv[1] = 0;
- ACE_Service_Object_Ptr sp_4 = ACE_SVC_INVOKE (ACE_Token_Acceptor);
-
- if (sp_4->init (1, l_argv) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "Token Service",
- 1));
-#endif /* ACE_HAS_TOKENS_LIBRARY */
-
- char thr_logging_port[] = "-p " ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR;
- l_argv[0] = thr_logging_port;
- l_argv[1] = 0;
- ACE_Service_Object_Ptr sp_5 =
- ACE_SVC_INVOKE (ACE_Thr_Server_Logging_Acceptor);
-
- if (sp_5->init (1, l_argv) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "Threaded Logging Server",
- 1));
-
- char logging_port[] = "-p " ACE_DEFAULT_LOGGING_SERVER_PORT_STR;
- l_argv[0] = logging_port;
- l_argv[1] = 0;
- ACE_Service_Object_Ptr sp_6 =
- ACE_SVC_INVOKE (ACE_Server_Logging_Acceptor);
-
- if (sp_6->init (1, l_argv) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "Logging Server", 1));
-
- l_argv[0] = logging_port;
- l_argv[1] = 0;
- ACE_Service_Object_Ptr sp_7 =
- ACE_SVC_INVOKE (ACE_Client_Logging_Acceptor);
-
- if (sp_7->init (1, l_argv) == -1)
- ACE_ERROR ((LM_ERROR,
- "%p\n%a",
- "Logging Client",
- 1));
-
- // Run forever, performing the configured services until we
- // are shut down by a SIGINT/SIGQUIT signal.
-
- ACE_Reactor::run_event_loop ();
-
- // Destructors of ACE_Service_Object_Ptr's automagically
- // call fini().
- }
- }
- else // Use dynamic linking.
- {
- if (ACE::debug () == 0)
- ACE_LOG_MSG->priority_mask (~LM_DEBUG,
- ACE_Log_Msg::PROCESS);
-
- // Run forever, performing the configured services until we are
- // shut down by a SIGINT/SIGQUIT signal.
-
- ACE_Reactor::run_event_loop ();
- }
-
- return 0;
-}
diff --git a/netsvcs/servers/servers.dsp b/netsvcs/servers/servers.dsp
deleted file mode 100644
index 327449b120f..00000000000
--- a/netsvcs/servers/servers.dsp
+++ /dev/null
@@ -1,104 +0,0 @@
-# Microsoft Developer Studio Project File - Name="NETSVCS Servers" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=NETSVCS Servers - 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 "servers.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 "servers.mak" CFG="NETSVCS Servers - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "NETSVCS Servers - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "NETSVCS Servers - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "NETSVCS Servers - 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 "Release"
-# 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 "..\..\\" /I "..\lib" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /FD /c
-# SUBTRACT CPP /YX
-# 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 /nologo /subsystem:console /machine:I386
-# ADD LINK32 ace.lib netsvcs.lib /nologo /subsystem:console /machine:I386 /out:"Release/main.exe" /libpath:"..\..\ace" /libpath:"..\lib"
-
-!ELSEIF "$(CFG)" == "NETSVCS Servers - 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 "..\lib" /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /FD /c
-# SUBTRACT CPP /YX
-# 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 /nologo /subsystem:console /debug /machine:I386
-# ADD LINK32 aced.lib netsvcsd.lib /nologo /subsystem:console /debug /machine:I386 /out:"main.exe" /libpath:"..\..\ace" /libpath:"..\lib"
-
-!ENDIF
-
-# Begin Target
-
-# Name "NETSVCS Servers - Win32 Release"
-# Name "NETSVCS Servers - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=.\main.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/netsvcs/servers/servers.dsw b/netsvcs/servers/servers.dsw
deleted file mode 100644
index 20f570ffb5f..00000000000
--- a/netsvcs/servers/servers.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "servers"=.\servers.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/netsvcs/servers/svc.conf b/netsvcs/servers/svc.conf
deleted file mode 100644
index 6b18ec3921a..00000000000
--- a/netsvcs/servers/svc.conf
+++ /dev/null
@@ -1,18 +0,0 @@
-# These are the services that can be linked into ACE.
-# Note that you can append the "netsvcs" with
-# a relative path if you idn't set your LD search path correctly --
-
-# ACE will locate this for you automatically by reading your LD search
-# path. Moreover, ACE will automatically insert the correct suffix
-# (e.g., ".dll", ".so", etc.). In addition, you can replace the
-# hardcoded "-p 20xxx" with "-p $PORTxxx" if you set your environment
-# variables correctly.
-
-dynamic Logger Service_Object * ACE:_make_ACE_Logging_Strategy() "-s foobar -f STDERR|OSTREAM|VERBOSE"
-dynamic Time_Service Service_Object * netsvcs:_make_ACE_TS_Server_Acceptor() "-p 20222"
-dynamic Name_Server Service_Object * netsvcs:_make_ACE_Name_Acceptor() "-p 20012"
-# This service is disabled by default -- only enable it ACE is compiled with ACE_HAS_TOKENS_LIBRARY.
-# dynamic Token_Service Service_Object * netsvcs:_make_ACE_Token_Acceptor() "-p 20202"
-dynamic Server_Logging_Service Service_Object * netsvcs:_make_ACE_Server_Logging_Acceptor() active "-p 20009"
-dynamic Thr_Server_Logging_Service Service_Object * netsvcs:_make_ACE_Thr_Server_Logging_Acceptor() active "-p 20020"
-dynamic Client_Logging_Service Service_Object * netsvcs:_make_ACE_Client_Logging_Acceptor() active "-p 20009"
diff --git a/os-patches/linux-patches.html b/os-patches/linux-patches.html
deleted file mode 100644
index 6e5a17d7876..00000000000
--- a/os-patches/linux-patches.html
+++ /dev/null
@@ -1,214 +0,0 @@
-<!-- $Id$ -->
-
-<html><head>
- <title>Linux Configuration Support for ACE</title>
- <link rev=made href="mailto:levine@cs.wustl.edu">
-</head>
-
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#ffffff">
-
-<center>
- <h1>Linux Configuration Support for ACE</h1>
- <font size=+1>
- <a href="mailto:levine@cs.wustl.edu">levine@cs.wustl.edu</a><br>
- </font>
-</center>
-
-<h2>&nbsp;</h2>
-
-RedHat 5.1 is distributed with glibc-2.0.7-13 and egcs-1.0.2-8.
-ACE and TAO work just fine with it.<p>
-
-With RedHat 5.0 distributions of Linux, it's best to upgrade the
-distribution with these:
-<ul>
- <li>glibc-2.0.7-7 or later, or<br>
- glibc-2.0.6
- (at <a href="ftp://sunsite.unc.edu/pub/gnu/glibc-2.0.6.tar.gz">ftp://sunsite.unc.edu/pub/gnu/glibc-2.0.6.tar.gz</a>)
- plus <a href="#Old Patches">Torbjörn's patch, below</a>
- <li>egcs 1.0.2 (from ftp://ftp.cygnus.com/pub/egcs/releases/)
-</ul>
-
-Thanks to James CE Johnson &lt;jjohnson@lads.com&gt;, Torbjörn
-Lindgren &lt;tl@funcom.com&gt;, Oleg Krivosheev
-&lt;kriol@fnal.gov&gt;, and Chanaka Liyanaarachchi
-&lt;chanakal@ittc.ukans.edu&gt; for this information. With the above
-configurations, ACE compiles and runs cleanly on Intel platforms. It
-compiles and runs cleanly on Alpha platforms with the patches listed
-below.<p>
-
-<strong><blink><font color="#ff0000">WARNING:</font></blink></strong>
-There is a bug in <code>getsockname ()</code> on versions of Linux
-through 2.0.34. <code>getsockname ()</code> returns an Internet host
-address of 127.0.0.1 (localhost) instead of 0.0.0.0 for sockets that
-aren't connected. This bug prevents TAO servers from working
-correctly. To fix it, comment out these two lines in function
-<code>inet_getname ()</code> in
-<code>/usr/src/linux/net/ipv4/af_inet.c</code>:
-
-<pre>
- } else {
- __u32 addr = sk-&gt;rcv_saddr;
- if (!addr) {
- addr = sk-&gt;saddr;
-/* comment out this line: if (!addr) */
-/* comment out this line: addr = ip_my_addr(); */
- }
- sin-&gt;sin_port = sk-&gt;dummy_th.source;
- sin-&gt;sin_addr.s_addr = addr;
- }
-</pre>
-
-and rebuild your kernel. This fix has been implemented in 2.1.x
-versions of the kernel.<p>
-
-Without the following patch from Scott Snyder &lt;sss@d0linux01.fnal.gov&gt;,
-egcs 1.0.1 on Linux won't be able to compile
-netsvcs/lib/Server_Logging_Handler.cpp:
-
-<pre>
-1997-12-10 scott snyder &lt;sss@d0linux01.fnal.gov&gt;
-
- * method.c (make_thunk): Avoid name buffer overflow.
-
-
-Index: gcc/cp/method.c
-===================================================================
-RCS file: /d0sgi0/usr0/snyder/CVSROOT/egcs/gcc/cp/method.c,v
-retrieving revision 1.1.1.5
-diff -c -r1.1.1.5 method.c
-*** method.c 1997/12/08 21:06:03 1.1.1.5
---- method.c 1997/12/11 05:40:37
-***************
-*** 1811,1817 ****
- tree function;
- int delta;
- {
-! char buffer[250];
- tree thunk_id;
- tree thunk;
- char *func_name;
---- 1811,1817 ----
- tree function;
- int delta;
- {
-! char *buffer;
- tree thunk_id;
- tree thunk;
- char *func_name;
-***************
-*** 1822,1827 ****
---- 1822,1828 ----
- if (TREE_CODE (func_decl) != FUNCTION_DECL)
- abort ();
- func_name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (func_decl));
-+ buffer = (char *)alloca (strlen (func_name) + 32);
- if (delta&lt;=0)
- sprintf (buffer, "__thunk_%d_%s", -delta, func_name);
- else
-</pre>
-
-With RedHat 5.0 on Alpha CPUs, two system patches and one
-glibc-2.0.6/linuxthreads patch are necessary in addition to the above.
-The first patch is for the GNU assembler, gas. It is only necessary
-on Alphas, and only when <code>-g</code> is used. If you don't want
-to patch the assembler, you can enable the SUPPRESS_DASH_G option in
-the <code>platform_linux.GNu</code>. Otherwise, this patch can be
-applied to the binutils gas source. Then, rebuild and install as.
-The file to be patched is binutils-2.8.1/gas/config/tc-alpha.h:<p>
-
-NOTE: this patch isn't necessary with binutils-2.9.1.<p>
-
-<pre>
---- tc-alpha.h.orig Mon May 26 12:32:38 1997
-+++ tc-alpha.h Sat Feb 28 06:45:41 1998
-@@ -25,6 +25,8 @@
-
- #define TARGET_ARCH bfd_arch_alpha
-
-+#define PAGE_SIZE 8192
-+
- #define TARGET_FORMAT (OUTPUT_FLAVOR == bfd_target_ecoff_flavour \
- ? "ecoff-littlealpha" \
- : OUTPUT_FLAVOR == bfd_target_elf_flavour \
-</pre><p>
-
-In addition, you'll need to patch
-<code>/usr/src/linux/include/linux/posix_types.h</code> as follows
-to avoid compilation errors:<p>
-
-<pre>
---- posix_types.h.ORIGINAL Wed Nov 12 12:01:56 1997
-+++ posix_types.h Fri Feb 27 14:13:16 1998
-@@ -41,9 +41,14 @@
- #undef __FDMASK
- #define __FDMASK(d) (1UL &lt;&lt; ((d) % __NFDBITS))
-
-+#if defined (__KERNEL__)
- typedef struct fd_set {
- unsigned long fds_bits [__FDSET_LONGS];
- } __kernel_fd_set;
-+#else /* ! __KERNEL__ */
-+#include &lt;gnu/types.h&gt;
-+typedef __fd_set __kernel_fd_set;
-+#endif /* ! __KERNEL__ */
-
- /* Type of a signal handler. */
- typedef void (*__kernel_sighandler_t)(int);
-</pre><p>
-
-Finally, on Alpha only, I removed wrapsyscall from the LinuxThreads
-library by patching linuxthreads/Makefile:
-
-<pre>
-36c36
-&lt; semaphore wrapsyscall
----
-&gt; semaphore # wrapsyscall
-</pre>
-
-With that and the above configuration/pathes, all ACE tests run
-perfectly cleanly on Alpha!<p>
-
-<hr>
-<h3><a name="Old Patches">Old Patches</a></h3>
-
-If you use glibc-2.0.6, you'll need to apply Torbjörn Lindgren's
-&lt;tl@funcom.com&gt; patch to glibc-2.0.6's LinuxThreads:<p>
-
-<pre>
---- signals.c.old Wed Jan 14 01:09:02 1998
-+++ signals.c Wed Jan 14 01:11:37 1998
-@@ -82,7 +82,7 @@
- pthread_mutex_lock(&sigwaited_mut);
- /* Make sure no other thread is waiting on our signals */
- test_again:
-- for (s = 0; s &lt; NSIG; s++) {
-+ for (s = 1; s &lt; NSIG; s++) {
- if (sigismember(set, s) && sigismember(&sigwaited, s)) {
- pthread_cond_wait(&sigwaited_changed, &sigwaited_mut);
- goto test_again;
-@@ -96,7 +96,7 @@
- /* Install our signal handler on all signals in set,
- and unblock them in mask.
- Also mark those signals as being sigwaited on */
-- for (s = 1; s &lt;= NSIG; s++) {
-+ for (s = 1; s &lt; NSIG; s++) {
- if (sigismember(set, s) && s != PTHREAD_SIG_CANCEL) {
- sigdelset(&mask, s);
- action.sa_handler = __pthread_sighandler;
-@@ -121,7 +121,7 @@
- self-&gt;p_cancel_jmp = NULL;
- /* The signals are now reblocked. Restore the sighandlers. */
- pthread_mutex_lock(&sigwaited_mut);
-- for (s = 1; s &lt;= NSIG; s++) {
-+ for (s = 1; s &lt; NSIG; s++) {
- if (sigismember(set, s) && s != PTHREAD_SIG_CANCEL) {
- sigaction(s, &(saved_signals[s]), NULL);
- sigdelset(&sigwaited, s);
-</pre>
-
-</body> </html>
diff --git a/os-patches/lynxos-patches.html b/os-patches/lynxos-patches.html
deleted file mode 100644
index ffb44e7fdc2..00000000000
--- a/os-patches/lynxos-patches.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<html>
-<!-- $Id$ -->
-<head>
-<title></title>
-</head>
-
-<BODY text = "#000000"
-link="#000fff"
-vlink="#ff0f0f"
-bgcolor="#ffffff">
-
- With LynxOS 2.5.0-FCS version: 012797-G, you'll need to apply this
- patch:<p>
- <pre>ftp://ftp.lynx.com/pub/patches/v2.5-patches/v2.5-on-x86/000134-00.tar.Z
- </pre><p>
-
- And, you'll need to apply the following four patches:
- <ol>
- <li><code>Patch /usr/include/netinet/in.h</code>:<p>
-<pre>
---- in.h.ORIGINAL Sat Feb 8 09:58:28 1997
-+++ in.h Wed Nov 26 15:41:04 1997
-@@ -278,8 +278,7 @@
- compiler, the macros are not defined: Functions must be used.
- */
- static __inline__ unsigned short
--htons(arg)
--unsigned short arg;
-+htons(unsigned short arg)
- {
- unsigned short retval;
-
-@@ -292,8 +291,7 @@
- }
-
- static __inline__ unsigned long
--htonl(arg)
--unsigned long arg;
-+htonl(unsigned long arg)
- {
- unsigned long retval;
-</pre><p>
-
- <li><code>Patch /usr/include/name.h</code>:<p>
-<pre>
---- name.h.ORIGINAL Sat Feb 8 11:57:36 1997
-+++ name.h Wed Dec 24 11:00:57 1997
-@@ -112,7 +112,11 @@
- static __inline__ int _name_fchmod(int nsid, mode_t mode)
- { return _name_server(_NS_FCHMOD, nsid, mode); }
-
-+#if defined __cplusplus
-+static __inline__ int _name_fchown(int /* nsid */, uid_t owner, gid_t group)
-+#else
- static __inline__ int _name_fchown(int nsid, uid_t owner, gid_t group)
-+#endif /* __cplusplus */
- { return _name_server(_NS_FCHOWN, owner, group); }
-
- static __inline__ int _name_close(int nsid)
-</pre>
-
- <li><code>Patch /usr/include/scsi.h</code>:<p>
-<pre>
---- scsi.h.ORIGINAL Sat Feb 8 09:57:43 1997
-+++ scsi.h Mon Dec 1 09:13:13 1997
-@@ -166,7 +166,7 @@
- ------------------------------------------------------------------------------
- */
- #define GET_DATA_BUFFER_STATUS 0x34 /* O 14.2.1 */
--#define GET WINDOW 0x25 /* O 14.2.2 */
-+#define GET_WINDOW 0x25 /* O 14.2.2 */
- #define OBJECT_POSITION 0x31 /* O 14.2.3 */
- #define SCAN 0x1B /* O 14.2.5 */
- #define SET_WINDOW 0x24 /* M 14.2.6 */
-</pre>
-
- <li><code>Patch /usr/include/netdb.h</code>:<p>
-<pre>
---- netdb.h.ORIGINAL Sat Feb 8 09:57:36 1997
-+++ netdb.h Mon Dec 1 10:57:15 1997
-@@ -95,6 +95,8 @@
- extern struct protoent *getprotobyname _AP((char *));
- extern struct protoent *getprotobynumber _AP((int));
- extern struct protoent *getprotoent _AP((void));
-+int sethostent _AP((int));
-+int endhostent _AP((void));
-
- /*
- * Error return codes from gethostbyname() and gethostbyaddr()
-</pre>
- </ol>
-
-</body> </html>
diff --git a/os-patches/vxworks-5.1.txt b/os-patches/vxworks-5.1.txt
deleted file mode 100644
index dbf657bf854..00000000000
--- a/os-patches/vxworks-5.1.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-// $Id$
-
-An anonymous contributor provided the following notes for using ACE
-with VxWorks 5.1:
-
-Hope this helps someone else. Note that I didn't run the tests on ACE so
-I can't say that everything works. What I ended up doing was writing a
-few tests of my own to test out some of the features and get a feel for
-what ACE could do so beware that maybe these aren't the
-only things that one would have to change.
-
- 1) Prerequisite -- make sure C++ run time support is working (like
- global/static constructor/destructor invocation)
-
- 2) Used "$ACE_ROOT/include/makeinclude/platform_macros.GNU" for a guide
- to setup my environment variables.
-
- - ACE_ROOT, WIND_BASE, WIND_HOST_TYPE, CPU, and TOOLENV
-
- 3) copied $ACE_ROOT/ace/config-vxworks5.x.h to $ACE_ROOT/ace/config.h
-
- 4) copied $ACE_ROOT/include/makeinclude/platform_vxworks5.x_g++.GNU
- to $ACE_ROOT/include/makeinclude/platform_macros.GNU
-
- 5) had to modify ${ACE_ROOT}/include/makeinclude/platform_macros.GNU
- to add -DCPU=SPARClite, -msparclite to CCFLAGS and add
- $(ACE_ROOT) and /usr/local/lib/g++-include to INCLDIRS
-
- I think this was a "make" issue.
-
- 6) had to modify $ACE_ROOT/ace/config.h
- to set/reset the following ACE configuration parameters:
-
- ACE_LACKS_POSIX_TIME, ACE_LACKS_SIGINFO_T, ACE_LACKS_IOSTREAM_TOTALLY,
- ACE_NEEDS_FTRUNCATE, ACE_LACKS_ACE_IOSTREAM
-
- 7) added the following to $ACE_ROOT/ace/config.h:
-
-#define ACE_SIZEOF_CHAR 1
-#define ACE_SIZEOF_SHORT 2
-#define ACE_SIZEOF_INT 4
-#define ACE_SIZEOF_LONG 4
-#define ACE_SIZEOF_LONG_LONG 8
-#define ACE_SIZEOF_FLOAT 4
-#define ACE_SIZEOF_DOUBLE 8
-#define ACE_SIZEOF_LONG_DOUBLE 16
-#define ACE_SIZEOF_VOID_P 4
-
-/*
- * Since VxWorks does have clock_gettime() I really didn't want
- * to set ACE_LACKS_CLOCK_GETTIME to get this define, so I made
- * one of my own.
- */
-typedef int clockid_t;
-
-/*
- * Prototypes for VxWorks functions that ACE uses.
- */
-extern "C" char *sysBspRev(void);
-extern "C" char *getcwd(char *, int);
-extern "C" int clock_gettime(clockid_t, struct timespec *);
-extern "C" int nanosleep(const struct timespec *, struct timespec *);
-
-/*
- * These because of some quirks with ACE_LACKS_IOSTREAMS_TOTALLY
- */
-#define ACE_DEFAULT_LOG_STREAM 0
-
- 8) I changed the last call argument in Log_Msg.cpp line 1095 from:
-
- this->msg_ostream ());
-
- to this:
-
- (FILE *) (this->msg_ostream ()));
-
- 9) I used the 2.7.2.1 GNU compiler.
diff --git a/protocols/ace/RMCast/README b/protocols/ace/RMCast/README
deleted file mode 100644
index 2dd0c5d9cfc..00000000000
--- a/protocols/ace/RMCast/README
+++ /dev/null
@@ -1,57 +0,0 @@
-# $Id$
-
- This directory will contain a simple, small-scale reliable
-multicast framework for ACE. The framework is based on the ASX
-components of the ACE library: the protocol is implemented as a stack
-of interchangeable "modules", each one in charge of a very small task.
-For example, one module implements fragmentation and reassembly, other
-modules implement retransmission, send ACK and NAK messages, and
-maintain receiver membership.
-
- The modules are replaced to achieve different levels of
-reliability. For example, the retransmission module can be either the
-"Best_Effort", "Semi_Reliable" or "Reliable" implementation. In the
-first case no retransmissions are performed, but lost messages are
-detected and reported to the receiver. The "Semi_Reliable" case
-messages are held for a pre-specified amount of time, and
-re-transmited if requested, but it is possible to loose some messages
-if multiple re-transmissions fail. As in the "Best_Effort" case the
-lost messages are detected and flagged to the application. Finally
-in the "Reliable" mode the senders are flowed controlled until enough
-messages are successfully transmitted.
-
- In general the stack looks like this:
-
-
-SENDER:
-
-----------------------------------------------------------------
-Buffering : Save lost messages
-Retransmission : Retransmit
-----------------------------------------------------------------
-Fragmentation : Fragment messages in smaller chunks
-Reassembly : and ensure that the IOVMAX limit is not
- : reached
-----------------------------------------------------------------
-Tranport : Encapsulate the specific transport media
- : such as TCP/IP, ATM, or shared memory
- : Demuxes incoming data to the right chain
- : Change control messages and data messages
- : to the right dynamic types.
-----------------------------------------------------------------
-
-RECEIVER:
-
-----------------------------------------------------------------
-Lost detection : Detect lost messages and send control
- : messages back
-----------------------------------------------------------------
-Reassembly : Reassemble messages, fragment control
-Fragmentation : data
-----------------------------------------------------------------
-Transport : Group membership, ACT reception,
- : handle keep-alive messages...
-----------------------------------------------------------------
-
-
-@@ TODO: Piggybacking...
diff --git a/protocols/ace/RMCast/RMCast_Export.h b/protocols/ace/RMCast/RMCast_Export.h
deleted file mode 100644
index 51257c4d682..00000000000
--- a/protocols/ace/RMCast/RMCast_Export.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// Definition for Win32 Export directives.
-// This file is generated automatically by
-// generate_export_file.pl
-// ------------------------------
-#if !defined (ACE_RMCAST_EXPORT_H)
-#define ACE_RMCAST_EXPORT_H
-
-#include "ace/config-all.h"
-
-#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_RMCAST_HAS_DLL)
-# define ACE_RMCAST_HAS_DLL 0
-#endif /* ACE_AS_STATIC_LIBS && ACE_RMCAST_HAS_DLL */
-
-#if !defined (ACE_RMCAST_HAS_DLL)
-#define ACE_RMCAST_HAS_DLL 1
-#endif /* ! ACE_RMCAST_HAS_DLL */
-
-#if defined (ACE_RMCAST_HAS_DLL)
-# if (ACE_RMCAST_HAS_DLL == 1)
-# if defined (ACE_RMCAST_BUILD_DLL)
-# define ACE_RMCast_Export ACE_Proper_Export_Flag
-# define ACE_RMCAST_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
-# define ACE_RMCAST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# else
-# define ACE_RMCast_Export ACE_Proper_Import_Flag
-# define ACE_RMCAST_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
-# define ACE_RMCAST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ACE_RMCAST_BUILD_DLL */
-# else
-# define ACE_RMCast_Export
-# define ACE_RMCAST_SINGLETON_DECLARATION(T)
-# define ACE_RMCAST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ! ACE_RMCAST_HAS_DLL == 1 */
-#else
-# define ACE_RMCast_Export
-# define ACE_RMCAST_SINGLETON_DECLARATION(T)
-# define ACE_RMCAST_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-#endif /* ACE_RMCAST_HAS_DLL */
-
-#endif /* ACE_RMCAST_EXPORT_H */
-
-// End of auto generated file.
diff --git a/psosim/Makefile b/psosim/Makefile
deleted file mode 100644
index 0902651a0da..00000000000
--- a/psosim/Makefile
+++ /dev/null
@@ -1,76 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-# Makefile for the pSOSim system object files
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-CPU_FAMILY = psosim
-CPU = psosim
-CPU_TOOLS = psosim
-BOARD = psosim
-
-PSS_CFG_DIR = $(ACE_ROOT)/psosim
-
-PSS_CFG_OBJS = $(PSS_CFG_DIR)/drv_conf.o $(PSS_CFG_DIR)/prepccfg.o $(PSS_CFG_DIR)/psoscfg.o $(PSS_CFG_DIR)/sysinit.o
-
-PSS_CONFIG = $(PSS_ROOT)/configs/std
-PSS_SYS_DIR = $(PSS_ROOT)/sys/os
-PSS_SYS_LIBS = $(PSS_SYS_DIR)/prepc.a $(PSS_SYS_DIR)/psos.a $(PSS_SYS_DIR)/pna.a
-PSS_BSP = $(PSS_ROOT)/bsps/psosim
-PSS_BSP_LIB = $(PSS_BSP)/bsp.a
-
-#----------------------------------------------------------------------------
-# 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
-
-# To build multiple executables in the same directory on AIX, it works
-# best to wipe out any previously-created tempinc directory.
-# The compiler/linker isn't too smart about instantiating templates...
-ifdef TEMPINCDIR
-COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc)
-endif
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-all : $(PSS_CFG_DIR)/acepsos.a
-
-$(PSS_CFG_DIR)/acepsos.a : $(PSS_CFG_OBJS)
- $(AR) $(ARFLAGS) $@ $?
-
-$(PSS_CFG_DIR)/sysinit.o : $(PSS_CONFIG)/sysinit.c $(ACE_ROOT)/ace/sys_conf.h $(PSS_BSP)/bsp.h \
- $(PSS_ROOT)/include/bspfuncs.h $(PSS_ROOT)/include/configs.h
- $(COMPILE.c) -o $@ $(PSS_CONFIG)/sysinit.c
-
-$(PSS_CFG_DIR)/prepccfg.o : $(PSS_CONFIG)/prepccfg.c $(ACE_ROOT)/ace/sys_conf.h $(PSS_BSP)/bsp.h \
- $(PSS_ROOT)/include/bspfuncs.h $(PSS_ROOT)/include/configs.h
- $(COMPILE.c) -o $@ $(PSS_CONFIG)/prepccfg.c
-
-$(PSS_CFG_DIR)/psoscfg.o : $(PSS_CONFIG)/psoscfg.c $(ACE_ROOT)/ace/sys_conf.h $(PSS_BSP)/bsp.h \
- $(PSS_ROOT)/include/bspfuncs.h $(PSS_ROOT)/include/configs.h
- $(COMPILE.c) -o $@ $(PSS_CONFIG)/psoscfg.c
-
-$(PSS_CFG_DIR)/drv_conf.o : $(PSS_CFG_DIR)/drv_conf.c $(ACE_ROOT)/ace/sys_conf.h $(PSS_BSP)/bsp.h \
- $(PSS_ROOT)/include/bspfuncs.h $(PSS_ROOT)/include/configs.h
- $(COMPILE.c) -o $@ $(PSS_CFG_DIR)/drv_conf.c
-
-#----------------------------------------------------------------------------
-# 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/psosim/drv_conf.c b/psosim/drv_conf.c
deleted file mode 100644
index 026e9d97193..00000000000
--- a/psosim/drv_conf.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* $Id$ */
-/***********************************************************************/
-/* */
-/* MODULE: drv_conf.c */
-/* DATE: 94/01/06 */
-/* PURPOSE: pSOSystem driver configuration and initialization */
-/* */
-/* There is one function in this file: */
-/* */
-/* SetUpDrivers to setup drivers except for Network drivers */
-/* */
-/* */
-/*---------------------------------------------------------------------*/
-/* */
-/* Copyright 1991 - 1993, Integrated Systems, Inc. */
-/* ALL RIGHTS RESERVED */
-/* */
-/* Permission is hereby granted to licensees of Integrated Systems, */
-/* Inc. products to use or abstract this computer program for the */
-/* sole purpose of implementing a product based on Integrated */
-/* Systems, Inc. products. No other rights to reproduce, use, */
-/* or disseminate this computer program, whether in part or in */
-/* whole, are granted. */
-/* */
-/* Integrated Systems, Inc. makes no representation or warranties */
-/* with respect to the performance of this computer program, and */
-/* specifically disclaims any responsibility for any damages, */
-/* special or consequential, connected with the use of this program. */
-/* */
-/***********************************************************************/
-#include "sys_conf.h"
-#include "bsp.h"
-#include <bspfuncs.h>
-#include <configs.h>
-
-struct ioparms;
-#define NULLF ((void (*)(struct ioparms *)) 0)
-UCHAR *SetUpDrivers(UCHAR *FreeMemPtr)
-{
-
-/*---------------------------------------------------------------------*/
-/* Install pSOSystem serial device driver */
-/*---------------------------------------------------------------------*/
-#if (SC_DEV_SERIAL && BSP_SERIAL)
- InstallDriver(SC_DEV_SERIAL, CnslInit, NULLF, NULLF,CnslRead,
- CnslWrite, CnslCntrl, 0, 0);
- FreeMemPtr = CnslSetup(FreeMemPtr, SD_DEF_BAUD, SC_APP_CONSOLE);
-#endif
-
-/*---------------------------------------------------------------------*/
-/* Install pSOSystem tick timer */
-/*---------------------------------------------------------------------*/
-#if SC_DEV_TIMER
- InstallDriver(SC_DEV_TIMER, RtcInit, NULLF, NULLF, NULLF, NULLF,
- NULLF, 0, 0);
-#endif
-
-/*---------------------------------------------------------------------*/
-/* Install pSOSystem ramdisk driver */
-/*---------------------------------------------------------------------*/
-#if SC_DEV_RAMDISK
- InstallDriver(SC_DEV_RAMDISK, RdskInit, NULLF, NULLF, RdskRead,
- RdskWrite, NULLF, 0, 0);
-#endif
-
-/*---------------------------------------------------------------------*/
-/* Install pSOSystem TFTP driver */
-/*---------------------------------------------------------------------*/
-#if (SC_DEV_TFTP)
- InstallDriver(SC_DEV_TFTP, TftpInit, TftpOpen, TftpClose, TftpRead,
- NULLF, TftpCntl, 0, 0);
-#endif
-
-/*---------------------------------------------------------------------*/
-/* Add additional drivers to install here. */
-/*---------------------------------------------------------------------*/
-
-return(FreeMemPtr);
-}
-
diff --git a/rpc++/.dependencies b/rpc++/.dependencies
deleted file mode 100644
index 9afb79a0c0b..00000000000
--- a/rpc++/.dependencies
+++ /dev/null
@@ -1,131 +0,0 @@
-xdr++.o: xdr++.cc rpc++/xdr++.h /usr/include/rpc/rpc.h \
- /usr/include/rpc/types.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/types.h \
- /usr/include/sys/feature_tests.h /usr/include/sys/machtypes.h \
- /usr/include/sys/select.h /usr/include/sys/time.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/time.h \
- /usr/include/sys/siginfo.h /usr/include/sys/machsig.h \
- /usr/include/tiuser.h /usr/include/sys/tiuser.h /usr/include/fcntl.h \
- /usr/include/sys/fcntl.h /usr/include/memory.h /usr/include/rpc/xdr.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/byteorder.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/stdio.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/rpc/auth.h \
- /usr/include/sys/cred.h /usr/include/sys/t_lock.h \
- /usr/include/sys/machlock.h /usr/include/sys/dki_lkinfo.h \
- /usr/include/sys/dl.h /usr/include/sys/sleepq.h \
- /usr/include/sys/turnstile.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/param.h \
- /usr/include/sys/unistd.h /usr/include/sys/pirec.h \
- /usr/include/sys/mutex.h /usr/include/rpc/clnt.h \
- /usr/include/rpc/rpc_com.h /usr/include/sys/netconfig.h \
- /usr/include/rpc/rpc_msg.h /usr/include/rpc/auth_sys.h \
- /usr/include/rpc/auth_des.h /usr/include/rpc/auth_kerb.h \
- /usr/include/kerberos/krb.h /usr/include/kerberos/mit-copyright.h \
- /usr/include/kerberos/des.h /usr/include/sys/socket.h \
- /usr/include/netinet/in.h /usr/include/sys/stream.h \
- /usr/include/sys/vnode.h /usr/include/sys/uio.h /usr/include/vm/seg_enum.h \
- /usr/include/sys/poll.h /usr/include/sys/strmdep.h /usr/include/rpc/svc.h \
- /usr/include/rpc/svc_auth.h /usr/include/rpc/rpcb_clnt.h \
- /usr/include/rpc/rpcb_prot.h
-service.o: service.cc /pkg/gnu/sparc-sun-solaris2.3/include/assert.h \
- /pkg/gnu/lib/g++-include/stream.h /pkg/gnu/lib/g++-include/iostream.h \
- /pkg/gnu/lib/g++-include/streambuf.h /pkg/gnu/lib/g++-include/libio.h \
- /pkg/gnu/lib/g++-include/_G_config.h /usr/include/memory.h \
- /usr/include/errno.h /usr/include/sys/errno.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/stdlib.h \
- /usr/include/sys/feature_tests.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/types.h \
- /usr/include/sys/machtypes.h /usr/include/sys/select.h \
- /usr/include/sys/time.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/time.h \
- /usr/include/sys/siginfo.h /usr/include/sys/machsig.h \
- /usr/include/sys/socket.h /usr/include/sys/netconfig.h \
- /usr/include/netdb.h /usr/include/rpc/rpc.h /usr/include/rpc/types.h \
- /usr/include/tiuser.h /usr/include/sys/tiuser.h /usr/include/fcntl.h \
- /usr/include/sys/fcntl.h /usr/include/rpc/xdr.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/byteorder.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/stdio.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/rpc/auth.h \
- /usr/include/sys/cred.h /usr/include/sys/t_lock.h \
- /usr/include/sys/machlock.h /usr/include/sys/dki_lkinfo.h \
- /usr/include/sys/dl.h /usr/include/sys/sleepq.h \
- /usr/include/sys/turnstile.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/param.h \
- /usr/include/sys/unistd.h /usr/include/sys/pirec.h \
- /usr/include/sys/mutex.h /usr/include/rpc/clnt.h \
- /usr/include/rpc/rpc_com.h /usr/include/rpc/rpc_msg.h \
- /usr/include/rpc/auth_sys.h /usr/include/rpc/auth_des.h \
- /usr/include/rpc/auth_kerb.h /usr/include/kerberos/krb.h \
- /usr/include/kerberos/mit-copyright.h /usr/include/kerberos/des.h \
- /usr/include/netinet/in.h /usr/include/sys/stream.h \
- /usr/include/sys/vnode.h /usr/include/sys/uio.h /usr/include/vm/seg_enum.h \
- /usr/include/sys/poll.h /usr/include/sys/strmdep.h /usr/include/rpc/svc.h \
- /usr/include/rpc/svc_auth.h /usr/include/rpc/rpcb_clnt.h \
- /usr/include/rpc/rpcb_prot.h rpc++/service.h \
- /pkg/gnu/lib/g++-include/bool.h rpc++/request.h rpc++/xdr++.h \
- rpc++/callback.h
-stub.o: stub.cc /pkg/gnu/lib/g++-include/stream.h \
- /pkg/gnu/lib/g++-include/iostream.h /pkg/gnu/lib/g++-include/streambuf.h \
- /pkg/gnu/lib/g++-include/libio.h /pkg/gnu/lib/g++-include/_G_config.h \
- /usr/include/memory.h /pkg/gnu/sparc-sun-solaris2.3/include/assert.h \
- rpc++/stub.h /pkg/gnu/lib/g++-include/bool.h \
- /pkg/gnu/lib/g++-include/String.h /pkg/gnu/lib/g++-include/Regex.h \
- /usr/include/sys/time.h /usr/include/sys/feature_tests.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/types.h \
- /usr/include/sys/machtypes.h /usr/include/sys/select.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/time.h \
- /usr/include/sys/siginfo.h /usr/include/sys/machsig.h rpc++/request.h \
- rpc++/xdr++.h /usr/include/rpc/rpc.h /usr/include/rpc/types.h \
- /usr/include/tiuser.h /usr/include/sys/tiuser.h /usr/include/fcntl.h \
- /usr/include/sys/fcntl.h /usr/include/rpc/xdr.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/byteorder.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/stdio.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/rpc/auth.h \
- /usr/include/sys/cred.h /usr/include/sys/t_lock.h \
- /usr/include/sys/machlock.h /usr/include/sys/dki_lkinfo.h \
- /usr/include/sys/dl.h /usr/include/sys/sleepq.h \
- /usr/include/sys/turnstile.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/param.h \
- /usr/include/sys/unistd.h /usr/include/sys/pirec.h \
- /usr/include/sys/mutex.h /usr/include/rpc/clnt.h \
- /usr/include/rpc/rpc_com.h /usr/include/sys/netconfig.h \
- /usr/include/rpc/rpc_msg.h /usr/include/rpc/auth_sys.h \
- /usr/include/rpc/auth_des.h /usr/include/rpc/auth_kerb.h \
- /usr/include/kerberos/krb.h /usr/include/kerberos/mit-copyright.h \
- /usr/include/kerberos/des.h /usr/include/sys/socket.h \
- /usr/include/netinet/in.h /usr/include/sys/stream.h \
- /usr/include/sys/vnode.h /usr/include/sys/uio.h /usr/include/vm/seg_enum.h \
- /usr/include/sys/poll.h /usr/include/sys/strmdep.h /usr/include/rpc/svc.h \
- /usr/include/rpc/svc_auth.h /usr/include/rpc/rpcb_clnt.h \
- /usr/include/rpc/rpcb_prot.h
-request.o: request.cc rpc++/request.h rpc++/xdr++.h /usr/include/rpc/rpc.h \
- /usr/include/rpc/types.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/types.h \
- /usr/include/sys/feature_tests.h /usr/include/sys/machtypes.h \
- /usr/include/sys/select.h /usr/include/sys/time.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/time.h \
- /usr/include/sys/siginfo.h /usr/include/sys/machsig.h \
- /usr/include/tiuser.h /usr/include/sys/tiuser.h /usr/include/fcntl.h \
- /usr/include/sys/fcntl.h /usr/include/memory.h /usr/include/rpc/xdr.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/byteorder.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/stdio.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/rpc/auth.h \
- /usr/include/sys/cred.h /usr/include/sys/t_lock.h \
- /usr/include/sys/machlock.h /usr/include/sys/dki_lkinfo.h \
- /usr/include/sys/dl.h /usr/include/sys/sleepq.h \
- /usr/include/sys/turnstile.h \
- /pkg/gnu/lib/gcc-lib/sparc-sun-solaris2.3/2.6.0/include/sys/param.h \
- /usr/include/sys/unistd.h /usr/include/sys/pirec.h \
- /usr/include/sys/mutex.h /usr/include/rpc/clnt.h \
- /usr/include/rpc/rpc_com.h /usr/include/sys/netconfig.h \
- /usr/include/rpc/rpc_msg.h /usr/include/rpc/auth_sys.h \
- /usr/include/rpc/auth_des.h /usr/include/rpc/auth_kerb.h \
- /usr/include/kerberos/krb.h /usr/include/kerberos/mit-copyright.h \
- /usr/include/kerberos/des.h /usr/include/sys/socket.h \
- /usr/include/netinet/in.h /usr/include/sys/stream.h \
- /usr/include/sys/vnode.h /usr/include/sys/uio.h /usr/include/vm/seg_enum.h \
- /usr/include/sys/poll.h /usr/include/sys/strmdep.h /usr/include/rpc/svc.h \
- /usr/include/rpc/svc_auth.h /usr/include/rpc/rpcb_clnt.h \
- /usr/include/rpc/rpcb_prot.h \
- /pkg/gnu/sparc-sun-solaris2.3/include/assert.h
-callback.o: callback.cc rpc++/callback.h
diff --git a/rpc++/COPYING b/rpc++/COPYING
deleted file mode 100644
index eb685a5ec98..00000000000
--- a/rpc++/COPYING
+++ /dev/null
@@ -1,481 +0,0 @@
- GNU LIBRARY GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 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.
-
-[This is the first released version of the library GPL. It is
- numbered 2 because it goes with version 2 of the ordinary GPL.]
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
- This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it. You can use it for
-your libraries, 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 library, or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
- Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library. If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, 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 companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software. To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
- Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs. This
-license, the GNU Library General Public License, applies to certain
-designated libraries. This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
- The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it. Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program. However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
- Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries. We
-concluded that weaker conditions might promote sharing better.
-
- However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves. This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them. (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.) The hope is that this
-will lead to faster development of free libraries.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, while the latter only
-works together with the library.
-
- Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
- GNU LIBRARY GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called "this License"). Each licensee is
-addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, 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 library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete 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 distribute a copy of this License along with the
-Library.
-
- 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 Library or any portion
-of it, thus forming a work based on the Library, 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) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-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 Library, 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 Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you 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.
-
- If distribution of 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 satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also compile or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- c) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- d) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. 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.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library 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.
-
- 9. 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 Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-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.
-
- 11. 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 Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library 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 Library.
-
-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.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library 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.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Library 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 Library
-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 Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-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
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. 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 LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. 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 library's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; 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.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- <signature of Ty Coon>, 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/rpc++/Makefile b/rpc++/Makefile
deleted file mode 100644
index 6b4819d2b7a..00000000000
--- a/rpc++/Makefile
+++ /dev/null
@@ -1,55 +0,0 @@
-TOP = .
-SUBDIRS = StdHdrs example
-
-INSTROOT = ../..
-
-CC = gcc
-CFLAGS = -ggdb
-C++FLAGS = $(CFLAGS)
-
-LIBHDRS = rpc++/xdr++.h rpc++/request.h rpc++/service.h rpc++/stub.h \
- rpc++/callback.h version.h
-LIBSRCS = xdr++.cc service.cc stub.cc request.cc callback.cc
-
-LIBOBJS = $(LIBSRCS:%.cc=%.o) $(GENSRCS:%.cc=%.o)
-
-all:: librpc++.a
-
-subdirs.all:: librpc++.a
-
-librpc++.a: $(LIBOBJS)
- rm -f $@
- ar cq $@ $(LIBOBJS)
- if [ -x /bin/ranlib -o -x /usr/bin/ranlib ]; then ranlib $@; fi
-
-install:: librpc++.a
- install -d $(INSTROOT)/lib
- if cmp -s librpc++.a $(INSTROOT)/lib/librpc++.a; then : ; \
- else rm -f $(INSTROOT)/lib/librpc++.a; \
- cp -p librpc++.a $(INSTROOT)/lib; \
- chmod 444 $(INSTROOT)/lib/librpc++.a; \
- for f in rpc++/*.h; do \
- rm -f $(INSTROOT)/include/$$f; done; fi
- install -d $(INSTROOT)/include/rpc++
- for f in rpc++/*.h; do \
- cmp -s $$f $(INSTROOT)/include/$$f \
- || install -c -m 444 $$f $(INSTROOT)/include/rpc++; done
-
-DISTLIST = Makefile README.ORIG README COPYING Proj.make rpc++.texi \
- gcc-2.2.2.fix $(LIBHDRS) $(LIBSRCS)
-
-clean::
- rm -f $(CLEANWILDCARDS) librpc++.a
-
-include .dependencies
-
-.dependencies: $(LIBHDRS) $(LIBSRCS)
- gcc -M $(CPPFLAGS) $(LIBSRCS) > .dependencies
-
-distlist::
- @for f in *.[ch] *.cc; do \
- if expr " $(DISTLIST) " : ".* $$f " >/dev/null; then : ; \
- else echo 1>&2 "Warning: c- or h-file \"$$f\" not in DISTLIST"; fi; \
- done
-
-include $(TOP)/Proj.make
diff --git a/rpc++/Proj.make b/rpc++/Proj.make
deleted file mode 100644
index af50f2f11bf..00000000000
--- a/rpc++/Proj.make
+++ /dev/null
@@ -1,68 +0,0 @@
-# These are included in every Makefile in the project
-
-CWDPATH = .
-CLEANWILDCARDS = core *~ *.o
-VERYCLEANWILDCARDS = core *~ *.o
-TEXCLEANWILDCARD = *~ *.aux *.log *.bbl *.blg *.toc *.idx *.ind
-TEXVERYCLEANWILDCARD = $(TEXCLEANWILDCARD) *.dvi
-ifndef SUBDIRS
-SUBDIRS =
-endif
-
-# Doing all always means doing the subdirs.
-# Make subdirs.all a target to allow forced processing
-ifneq ("$(SUBDIRS)", "")
-ifneq ("$(SUBDIRSALL)", "NO")
-all:: subdirs.all
-endif
-
-subdirs.all::
- @for d in $(SUBDIRS); do \
- (cd $$d; \
- smflags=$(SUBMFLAGS); \
- echo "Making all in $$d with flags: $$smflags ..." ; \
- echo "cd `pwd`"; \
- $(MAKE) $$smflags all); done; \
- echo "cd `pwd`"
-else
-all::;
-endif
-
-ifneq ("$(SUBDIRS)", "")
-clean:: subdirs.clean
-
-subdirs.clean::
- @for d in $(SUBDIRS); do \
- echo "Cleaning all in $$d..." ; \
- (cd $$d; $(MAKE) clean); done
-else
-clean::;
-endif
-
-ifneq ("$(SUBDIRS)", "")
-veryclean:: subdirs.veryclean
-
-subdirs.veryclean::
- @for d in $(SUBDIRS); do \
- echo "Verycleaning all in $$d..." ; \
- (cd $$d; $(MAKE) veryclean); done
-else
-veryclean::;
-endif
-
-# dist.list prints a list of files to be included in the distribution
-distlist::
-ifneq ("$(DISTLIST)", "")
- @for f in $(DISTLIST); do \
- echo $(CWDPATH)/$$f; done
-endif
-ifneq ("$(SUBDIRS)", "")
-ifneq ("$(SUBDIRSDIST)", "NO")
- @for d in $(SUBDIRS); do \
- (cd $$d; $(MAKE) distlist CWDPATH=$(CWDPATH)/$$d); done
-endif
-endif
-ifeq ("$(DISTLIST)$(SUBDIRS)","")
-
-endif
-
diff --git a/rpc++/README b/rpc++/README
deleted file mode 100644
index bede31dd376..00000000000
--- a/rpc++/README
+++ /dev/null
@@ -1,18 +0,0 @@
-This directory contains the sources for a C++ interface to Sun RPCs.
-
-As far as I remember, I got the original sources of the rpc++-library
-from some newsgroup, though I don't remember which one. I liked the
-basic idea but disliked several aspects of the interface details. So I
-adapted it to my likes. I intended some minor changes but soon found
-myself renaming classes, changing method parameters, introducing new
-classes, etc. The result is by no way compatible with the original
-version. It is, I hope, nevertheless useful.
-
-The current version 2.2 of the rpc++ library updates the version 2.1
-posted in March 1991. It is the reaction to gcc-2.2 that finally
-allows a sufficiently reliable use of templates (almost, see
-Installation in rpc++.texi)
-
-Michael Lipp
-
-<mnl@dtro.e-technik.th-darmstadt.de>
diff --git a/rpc++/README.ORIG b/rpc++/README.ORIG
deleted file mode 100644
index 60aa3f121e1..00000000000
--- a/rpc++/README.ORIG
+++ /dev/null
@@ -1,9 +0,0 @@
-This directory contains a collection of classes that provide an
-interface to SUN's RPCs. I dubbed the collection the rpc++-library. It
-has been tested with gcc-1.40 on a SparcStation running SunOS 4.0.
-
-There is no documentation. Look at the example in ./example.
-
-Peter Berens
-
-
diff --git a/rpc++/StdHdrs/Makefile b/rpc++/StdHdrs/Makefile
deleted file mode 100644
index 404499ce0cc..00000000000
--- a/rpc++/StdHdrs/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-TOP = ..
-SUBDIRS = rpc
-SUBDIRSALL = NO
-SUBDIRSDIST = NO
-
-all::
-
-clean::
- rm -f $(CLEANWILDCARDS)
-
-DISTLIST = Makefile README $(wildcard rpc/*.h)
-
-include $(TOP)/Proj.make
diff --git a/rpc++/StdHdrs/README b/rpc++/StdHdrs/README
deleted file mode 100644
index c9f9f5e20e5..00000000000
--- a/rpc++/StdHdrs/README
+++ /dev/null
@@ -1,3 +0,0 @@
-This directory contains some of Sun's rpc headers that have been fixed
-(though not thoroughly) to work with ANSI C and C++. I have installed
-them in my standard C include path.
diff --git a/rpc++/StdHdrs/rpc/auth.h b/rpc++/StdHdrs/rpc/auth.h
deleted file mode 100644
index 33882690719..00000000000
--- a/rpc++/StdHdrs/rpc/auth.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/* @(#)auth.h 2.3 88/08/07 4.0 RPCSRC; from 1.17 88/02/08 SMI */
-/* $Id$ */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC 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.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * auth.h, Authentication interface.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * The data structures are completely opaque to the client. The client
- * is required to pass a AUTH * to routines that create rpc
- * "sessions".
- */
-
-
-#ifndef _rpc_auth_h
-#define _rpc_auth_h
-
-#define MAX_AUTH_BYTES 400
-#define MAXNETNAMELEN 255 /* maximum length of network user's name */
-
-/*
- * Status returned from authentication check
- */
-enum auth_stat {
- AUTH_OK=0,
- /*
- * failed at remote end
- */
- AUTH_BADCRED=1, /* bogus credentials (seal broken) */
- AUTH_REJECTEDCRED=2, /* client should begin new session */
- AUTH_BADVERF=3, /* bogus verifier (seal broken) */
- AUTH_REJECTEDVERF=4, /* verifier expired or was replayed */
- AUTH_TOOWEAK=5, /* rejected due to security reasons */
- /*
- * failed locally
- */
- AUTH_INVALIDRESP=6, /* bogus response verifier */
- AUTH_FAILED=7 /* some unknown reason */
-};
-
-#if (__mc68000__ || __sparc__ || __vax__ || __i386__)
-typedef u_long u_int32; /* 32-bit unsigned integers */
-#endif
-
-union des_block {
- struct {
- u_int32 high;
- u_int32 low;
- } key;
- char c[8];
-};
-typedef union des_block des_block;
-extern bool_t xdr_des_block();
-
-/*
- * Authentication info. Opaque to client.
- */
-struct opaque_auth {
- enum_t oa_flavor; /* flavor of auth */
- caddr_t oa_base; /* address of more auth stuff */
- u_int oa_length; /* not to exceed MAX_AUTH_BYTES */
-};
-
-
-/*
- * Auth handle, interface to client side authenticators.
- */
-typedef struct {
- struct opaque_auth ah_cred;
- struct opaque_auth ah_verf;
- union des_block ah_key;
- struct auth_ops {
- void (*ah_nextverf)();
- int (*ah_marshal)(); /* nextverf & serialize */
- int (*ah_validate)(); /* validate varifier */
- int (*ah_refresh)(); /* refresh credentials */
- void (*ah_destroy)(); /* destroy this structure */
- } *ah_ops;
- caddr_t ah_private;
-} AUTH;
-
-
-/*
- * Authentication ops.
- * The ops and the auth handle provide the interface to the authenticators.
- *
- * AUTH *auth;
- * XDR *xdrs;
- * struct opaque_auth verf;
- */
-#define AUTH_NEXTVERF(auth) \
- ((*((auth)->ah_ops->ah_nextverf))(auth))
-#define auth_nextverf(auth) \
- ((*((auth)->ah_ops->ah_nextverf))(auth))
-
-#define AUTH_MARSHALL(auth, xdrs) \
- ((*((auth)->ah_ops->ah_marshal))(auth, xdrs))
-#define auth_marshall(auth, xdrs) \
- ((*((auth)->ah_ops->ah_marshal))(auth, xdrs))
-
-#define AUTH_VALIDATE(auth, verfp) \
- ((*((auth)->ah_ops->ah_validate))((auth), verfp))
-#define auth_validate(auth, verfp) \
- ((*((auth)->ah_ops->ah_validate))((auth), verfp))
-
-#define AUTH_REFRESH(auth) \
- ((*((auth)->ah_ops->ah_refresh))(auth))
-#define auth_refresh(auth) \
- ((*((auth)->ah_ops->ah_refresh))(auth))
-
-#define AUTH_DESTROY(auth) \
- ((*((auth)->ah_ops->ah_destroy))(auth))
-#define auth_destroy(auth) \
- ((*((auth)->ah_ops->ah_destroy))(auth))
-
-
-extern struct opaque_auth _null_auth;
-
-
-/*
- * These are the various implementations of client side authenticators.
- */
-
-/*
- * Unix style authentication
- * AUTH *authunix_create(machname, uid, gid, len, aup_gids)
- * char *machname;
- * int uid;
- * int gid;
- * int len;
- * int *aup_gids;
- */
-extern AUTH *authunix_create();
-extern AUTH *authunix_create_default(); /* takes no parameters */
-extern AUTH *authnone_create(); /* takes no parameters */
-extern AUTH *authdes_create();
-
-#define AUTH_NONE 0 /* no authentication */
-#define AUTH_NULL 0 /* backward compatibility */
-#define AUTH_UNIX 1 /* unix style (uid, gids) */
-#define AUTH_SHORT 2 /* short hand unix style */
-#define AUTH_DES 3 /* des style (encrypted timestamps) */
-
-#endif /*!_rpc_auth_h*/
diff --git a/rpc++/StdHdrs/rpc/c_types.h b/rpc++/StdHdrs/rpc/c_types.h
deleted file mode 100644
index e605b518df0..00000000000
--- a/rpc++/StdHdrs/rpc/c_types.h
+++ /dev/null
@@ -1,80 +0,0 @@
-#ifndef _rpc_c_types_h_
-#define _rpc_c_types_h_
-/* $Id$ */
-
-#if defined(__cplusplus)
- /*
- * Definitions for C++ 2.0 and later require extern "C" { decl; }
- */
-# define EXTERN_FUNCTION( rtn, args ) extern "C" { rtn args; }
-# define FUN_ARGS( args ) args
-# define STRUCT_TAG( tag_name ) /* the tag disappears */
-# define ENUM_BITFIELD( enum_type ) unsigned
-# define ENUM_TYPE( enum_sp, enum_ty ) enum_ty
-
-#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
-# define NAME_CONFLICT( name ) _##name
-#else
-# define NAME_CONFLICT( name ) _/**/name
-#endif
-
-# define DOTDOTDOT ...
-# define _VOID_ /* anachronism */
-# define CONST const
-
-/*
- * This is not necessary for 2.0 since 2.0 has corrected the void (*) () problem
- */
-typedef void (*_PFV_)();
-typedef int (*_PFI_)();
-
-#elif defined(c_plusplus)
- /*
- * Definitions for C++ 1.2
- */
-# define EXTERN_FUNCTION( rtn, args ) rtn args
-# define FUN_ARGS( args ) args
-# define STRUCT_TAG( tag_name ) /* the tag disappears */
-# define ENUM_BITFIELD( enum_type ) unsigned
-# define ENUM_TYPE( enum_sp, enum_ty ) enum_ty
-# define NAME_CONFLICT( name ) _/**/name
-# define DOTDOTDOT ...
-# define _VOID_ /* anachronism */
-# define CONST const
-
-typedef void (*_PFV_)();
-typedef int (*_PFI_)();
-
-#elif defined(__STDC__)
- /*
- * Definitions for ANSI C
- */
-# define EXTERN_FUNCTION( rtn, args ) rtn args
-# define FUN_ARGS( args ) args
-# define STRUCT_TAG( tag_name ) tag_name
-# define ENUM_BITFIELD( enum_type ) unsigned
-# define ENUM_TYPE( enum_sp, enum_ty ) enum_sp enum_ty
-# define NAME_CONFLICT( name ) name
-# define DOTDOTDOT ...
-# define _VOID_ void
-# define CONST
-
-#else
- /*
- * Definitions for Sun/K&R C -- ignore function prototypes,
- * but preserve tag names and enum bitfield declarations.
- */
-# define EXTERN_FUNCTION( rtn, args ) rtn()
-# define FUN_ARGS( args ) ()
-# define STRUCT_TAG( tag_name ) tag_name
-# define ENUM_BITFIELD( enum_type ) enum_type
-# define ENUM_TYPE( enum_sp, enum_ty ) enum_sp enum_ty
-# define NAME_CONFLICT( name ) name
-# define DOTDOTDOT
-# define _VOID_
- /* VOID is only used where it disappears anyway */
-# define CONST
-
-#endif /* Which type of C/C++ compiler are we using? */
-
-#endif
diff --git a/rpc++/StdHdrs/rpc/clnt.h b/rpc++/StdHdrs/rpc/clnt.h
deleted file mode 100644
index bad3dd17999..00000000000
--- a/rpc++/StdHdrs/rpc/clnt.h
+++ /dev/null
@@ -1,348 +0,0 @@
-/* @(#)clnt.h 2.1 88/07/29 4.0 RPCSRC; from 1.31 88/02/08 SMI*/
-/* $Id$ */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC 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.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * clnt.h - Client side remote procedure call interface.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _rpc_clnt_h
-#define _rpc_clnt_h
-
-/*
- * Rpc calls return an enum clnt_stat. This should be looked at more,
- * since each implementation is required to live with this (implementation
- * independent) list of errors.
- */
-enum clnt_stat {
- RPC_SUCCESS=0, /* call succeeded */
- /*
- * local errors
- */
- RPC_CANTENCODEARGS=1, /* can't encode arguments */
- RPC_CANTDECODERES=2, /* can't decode results */
- RPC_CANTSEND=3, /* failure in sending call */
- RPC_CANTRECV=4, /* failure in receiving result */
- RPC_TIMEDOUT=5, /* call timed out */
- /*
- * remote errors
- */
- RPC_VERSMISMATCH=6, /* rpc versions not compatible */
- RPC_AUTHERROR=7, /* authentication error */
- RPC_PROGUNAVAIL=8, /* program not available */
- RPC_PROGVERSMISMATCH=9, /* program version mismatched */
- RPC_PROCUNAVAIL=10, /* procedure unavailable */
- RPC_CANTDECODEARGS=11, /* decode arguments error */
- RPC_SYSTEMERROR=12, /* generic "other problem" */
-
- /*
- * callrpc & clnt_create errors
- */
- RPC_UNKNOWNHOST=13, /* unknown host name */
- RPC_UNKNOWNPROTO=17, /* unkown protocol */
-
- /*
- * _ create errors
- */
- RPC_PMAPFAILURE=14, /* the pmapper failed in its call */
- RPC_PROGNOTREGISTERED=15, /* remote program is not registered */
- /*
- * unspecified error
- */
- RPC_FAILED=16
-};
-
-
-/*
- * Error info.
- */
-struct rpc_err {
- enum clnt_stat re_status;
- union {
- int RE_errno; /* realated system error */
- enum auth_stat RE_why; /* why the auth error occurred */
- struct {
- u_long low; /* lowest verion supported */
- u_long high; /* highest verion supported */
- } RE_vers;
- struct { /* maybe meaningful if RPC_FAILED */
- long s1;
- long s2;
- } RE_lb; /* life boot & debugging only */
- } ru;
-#define re_errno ru.RE_errno
-#define re_why ru.RE_why
-#define re_vers ru.RE_vers
-#define re_lb ru.RE_lb
-};
-
-
-/*
- * Client rpc handle.
- * Created by individual implementations, see e.g. rpc_udp.c.
- * Client is responsible for initializing auth, see e.g. auth_none.c.
- */
-typedef struct {
- AUTH *cl_auth; /* authenticator */
- struct clnt_ops {
- enum clnt_stat (*cl_call)(DOTDOTDOT); /* call remote procedure */
- void (*cl_abort)(DOTDOTDOT); /* abort a call */
- void (*cl_geterr)(DOTDOTDOT); /* get specific error code */
- bool_t (*cl_freeres)(DOTDOTDOT); /* frees results */
- void (*cl_destroy)(DOTDOTDOT);/* destroy this structure */
- bool_t (*cl_control)(DOTDOTDOT);/* the ioctl() of rpc */
- } *cl_ops;
- caddr_t cl_private; /* private stuff */
-} CLIENT;
-
-
-/*
- * client side rpc interface ops
- *
- * Parameter types are:
- *
- */
-
-/*
- * enum clnt_stat
- * CLNT_CALL(rh, proc, xargs, argsp, xres, resp, timeout)
- * CLIENT *rh;
- * u_long proc;
- * xdrproc_t xargs;
- * caddr_t argsp;
- * xdrproc_t xres;
- * caddr_t resp;
- * struct timeval timeout;
- */
-#define CLNT_CALL(rh, proc, xargs, argsp, xres, resp, secs) \
- ((*(rh)->cl_ops->cl_call)(rh, proc, xargs, argsp, xres, resp, secs))
-#define clnt_call(rh, proc, xargs, argsp, xres, resp, secs) \
- ((*(rh)->cl_ops->cl_call)(rh, proc, xargs, argsp, xres, resp, secs))
-
-/*
- * void
- * CLNT_ABORT(rh);
- * CLIENT *rh;
- */
-#define CLNT_ABORT(rh) ((*(rh)->cl_ops->cl_abort)(rh))
-#define clnt_abort(rh) ((*(rh)->cl_ops->cl_abort)(rh))
-
-/*
- * struct rpc_err
- * CLNT_GETERR(rh);
- * CLIENT *rh;
- */
-#define CLNT_GETERR(rh,errp) ((*(rh)->cl_ops->cl_geterr)(rh, errp))
-#define clnt_geterr(rh,errp) ((*(rh)->cl_ops->cl_geterr)(rh, errp))
-
-
-/*
- * bool_t
- * CLNT_FREERES(rh, xres, resp);
- * CLIENT *rh;
- * xdrproc_t xres;
- * caddr_t resp;
- */
-#define CLNT_FREERES(rh,xres,resp) ((*(rh)->cl_ops->cl_freeres)(rh,xres,resp))
-#define clnt_freeres(rh,xres,resp) ((*(rh)->cl_ops->cl_freeres)(rh,xres,resp))
-
-/*
- * bool_t
- * CLNT_CONTROL(cl, request, info)
- * CLIENT *cl;
- * u_int request;
- * char *info;
- */
-#define CLNT_CONTROL(cl,rq,in) ((*(cl)->cl_ops->cl_control)(cl,rq,in))
-#define clnt_control(cl,rq,in) ((*(cl)->cl_ops->cl_control)(cl,rq,in))
-
-/*
- * control operations that apply to both udp and tcp transports
- */
-#define CLSET_TIMEOUT 1 /* set timeout (timeval) */
-#define CLGET_TIMEOUT 2 /* get timeout (timeval) */
-#define CLGET_SERVER_ADDR 3 /* get server's address (sockaddr) */
-/*
- * udp only control operations
- */
-#define CLSET_RETRY_TIMEOUT 4 /* set retry timeout (timeval) */
-#define CLGET_RETRY_TIMEOUT 5 /* get retry timeout (timeval) */
-
-/*
- * void
- * CLNT_DESTROY(rh);
- * CLIENT *rh;
- */
-#define CLNT_DESTROY(rh) ((*(rh)->cl_ops->cl_destroy)(rh))
-#define clnt_destroy(rh) ((*(rh)->cl_ops->cl_destroy)(rh))
-
-
-/*
- * RPCTEST is a test program which is accessable on every rpc
- * transport/port. It is used for testing, performance evaluation,
- * and network administration.
- */
-
-#define RPCTEST_PROGRAM ((u_long)1)
-#define RPCTEST_VERSION ((u_long)1)
-#define RPCTEST_NULL_PROC ((u_long)2)
-#define RPCTEST_NULL_BATCH_PROC ((u_long)3)
-
-/*
- * By convention, procedure 0 takes null arguments and returns them
- */
-
-#define NULLPROC ((u_long)0)
-
-/*
- * Below are the client handle creation routines for the various
- * implementations of client side rpc. They can return NULL if a
- * creation failure occurs.
- */
-
-/*
- * Memory based rpc (for speed check and testing)
- * CLIENT *
- * clntraw_create(prog, vers)
- * u_long prog;
- * u_long vers;
- */
-EXTERN_FUNCTION(CLIENT *clntraw_create, (u_long prog, u_long vers));
-
-
-/*
- * Generic client creation routine. Supported protocols are "udp" and "tcp"
- */
-EXTERN_FUNCTION(CLIENT *
-clnt_create, (char* host, u_long prog, u_long vers, char* prot));
-/*
- char *host; -- hostname
- u_long prog; -- program number
- u_long vers; -- version number
- char *prot; -- protocol
-*/
-
-
-
-
-/*
- * TCP based rpc
- * CLIENT *
- * clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz)
- * struct sockaddr_in *raddr;
- * u_long prog;
- * u_long version;
- * register int *sockp;
- * u_int sendsz;
- * u_int recvsz;
- */
-EXTERN_FUNCTION(CLIENT *clnttcp_create, (struct sockaddr_in *raddr,
- u_long prog,
- u_long version,
- register int *sockp,
- u_int sendsz,
- u_int recvsz));
-
-/*
- * UDP based rpc.
- * CLIENT *
- * clntudp_create(raddr, program, version, wait, sockp)
- * struct sockaddr_in *raddr;
- * u_long program;
- * u_long version;
- * struct timeval wait;
- * int *sockp;
- *
- * Same as above, but you specify max packet sizes.
- * CLIENT *
- * clntudp_bufcreate(raddr, program, version, wait, sockp, sendsz, recvsz)
- * struct sockaddr_in *raddr;
- * u_long program;
- * u_long version;
- * struct timeval wait;
- * int *sockp;
- * u_int sendsz;
- * u_int recvsz;
- */
-EXTERN_FUNCTION(CLIENT *clntudp_create, (struct sockaddr_in *raddr,
- u_long program,
- u_long version,
- struct timeval wait,
- int *sockp));
-EXTERN_FUNCTION(CLIENT *clntudp_bufcreate, (struct sockaddr_in *raddr,
- u_long program,
- u_long version,
- struct timeval wait,
- int *sockp,
- u_int sendsz,
- u_int recvsz));
-
-/*
- * Print why creation failed
- */
-EXTERN_FUNCTION(void clnt_pcreateerror, (char *msg)); /* stderr */
-EXTERN_FUNCTION(char *clnt_spcreateerror, (char *msg)); /* string */
-
-/*
- * Like clnt_perror(), but is more verbose in its output
- */
-EXTERN_FUNCTION(void clnt_perrno, (enum clnt_stat num)); /* stderr */
-
-/*
- * Print an English error message, given the client error code
- */
-EXTERN_FUNCTION(void clnt_perror, (CLIENT *clnt, char *msg)); /* stderr */
-EXTERN_FUNCTION(char *clnt_sperror, (CLIENT *clnt, char *msg)); /* string */
-
-/*
- * If a creation fails, the following allows the user to figure out why.
- */
-struct rpc_createerr {
- enum clnt_stat cf_stat;
- struct rpc_err cf_error; /* useful when cf_stat == RPC_PMAPFAILURE */
-};
-
-extern struct rpc_createerr rpc_createerr;
-
-
-
-/*
- * Copy error message to buffer.
- */
-EXTERN_FUNCTION(char *clnt_sperrno, (enum clnt_stat num)); /* string */
-
-
-
-#define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */
-#define RPCSMALLMSGSIZE 400 /* a more reasonable packet size */
-
-#endif /*!_rpc_clnt_h*/
diff --git a/rpc++/StdHdrs/rpc/pmap_clnt.h b/rpc++/StdHdrs/rpc/pmap_clnt.h
deleted file mode 100644
index 9c5616dbccf..00000000000
--- a/rpc++/StdHdrs/rpc/pmap_clnt.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* @(#)pmap_clnt.h 2.1 88/07/29 4.0 RPCSRC; from 1.11 88/02/08 SMI */
-/* $Id$ */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC 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.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * pmap_clnt.h
- * Supplies C routines to get to portmap services.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-/*
- * Usage:
- * success = pmap_set(program, version, protocol, port);
- * success = pmap_unset(program, version);
- * port = pmap_getport(address, program, version, protocol);
- * head = pmap_getmaps(address);
- * clnt_stat = pmap_rmtcall(address, program, version, procedure,
- * xdrargs, argsp, xdrres, resp, tout, port_ptr)
- * (works for udp only.)
- * clnt_stat = clnt_broadcast(program, version, procedure,
- * xdrargs, argsp, xdrres, resp, eachresult)
- * (like pmap_rmtcall, except the call is broadcasted to all
- * locally connected nets. For each valid response received,
- * the procedure eachresult is called. Its form is:
- * done = eachresult(resp, raddr)
- * bool_t done;
- * caddr_t resp;
- * struct sockaddr_in raddr;
- * where resp points to the results of the call and raddr is the
- * address if the responder to the broadcast.
- */
-
-#ifndef _rpc_pmap_clnt_h
-#define _rpc_pmap_clnt_h
-
-#include <rpc/c_types.h>
-
-EXTERN_FUNCTION(bool_t pmap_set, (u_long prognum, u_long versnum,
- int protocol, u_short port));
-EXTERN_FUNCTION(bool_t pmap_unset, (u_long prognum, u_long versnum));
-EXTERN_FUNCTION(struct pmaplist *pmap_getmaps, (struct sockaddr_in *addr));
-EXTERN_FUNCTION(enum clnt_stat pmap_rmtcall, (struct sockaddr_in *addr,
- u_long prognum, u_long versnum,
- u_long procnum,
- char *in, char *out,
- xdrproc_t inproc,
- xdrproc_t outproc,
- struct timeval timeout,
- u_long *portp));
-EXTERN_FUNCTION(enum clnt_stat clnt_broadcast, ());
-EXTERN_FUNCTION(u_short pmap_getport, (struct sockaddr_in *addr,
- u_long prognum, u_long versnum,
- u_long protocol));
-
-#endif /*!_rpc_pmap_clnt_h*/
diff --git a/rpc++/StdHdrs/rpc/svc.h b/rpc++/StdHdrs/rpc/svc.h
deleted file mode 100644
index efcaeefe681..00000000000
--- a/rpc++/StdHdrs/rpc/svc.h
+++ /dev/null
@@ -1,287 +0,0 @@
-/* @(#)svc.h 2.2 88/07/29 4.0 RPCSRC; from 1.20 88/02/08 SMI */
-/* $Id$ */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC 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.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-
-/*
- * svc.h, Server-side remote procedure call interface.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _rpc_svc_h
-#define _rpc_svc_h
-
-#include <rpc/pmap_clnt.h>
-
-/*
- * This interface must manage two items concerning remote procedure calling:
- *
- * 1) An arbitrary number of transport connections upon which rpc requests
- * are received. The two most notable transports are TCP and UDP; they are
- * created and registered by routines in svc_tcp.c and svc_udp.c, respectively;
- * they in turn call xprt_register and xprt_unregister.
- *
- * 2) An arbitrary number of locally registered services. Services are
- * described by the following four data: program number, version number,
- * "service dispatch" function, a transport handle, and a boolean that
- * indicates whether or not the exported program should be registered with a
- * local binder service; if true the program's number and version and the
- * port number from the transport handle are registered with the binder.
- * These data are registered with the rpc svc system via svc_register.
- *
- * A service's dispatch function is called whenever an rpc request comes in
- * on a transport. The request's program and version numbers must match
- * those of the registered service. The dispatch function is passed two
- * parameters, struct svc_req * and SVCXPRT *, defined below.
- */
-
-enum xprt_stat {
- XPRT_DIED,
- XPRT_MOREREQS,
- XPRT_IDLE
-};
-
-/*
- * Server side transport handle
- */
-typedef struct {
- int xp_sock;
- u_short xp_port; /* associated port number */
- struct xp_ops {
- bool_t (*xp_recv)(DOTDOTDOT); /* receive incomming requests */
- enum xprt_stat (*xp_stat)(DOTDOTDOT); /* get transport status */
- bool_t (*xp_getargs)(DOTDOTDOT); /* get arguments */
- bool_t (*xp_reply)(DOTDOTDOT); /* send reply */
- bool_t (*xp_freeargs)(DOTDOTDOT);/* free mem allocated for args */
- void (*xp_destroy)(DOTDOTDOT); /* destroy this struct */
- } *xp_ops;
- int xp_addrlen; /* length of remote address */
- struct sockaddr_in xp_raddr; /* remote address */
- struct opaque_auth xp_verf; /* raw response verifier */
- caddr_t xp_p1; /* private */
- caddr_t xp_p2; /* private */
-} SVCXPRT;
-
-/*
- * Approved way of getting address of caller
- */
-#define svc_getcaller(x) (&(x)->xp_raddr)
-
-/*
- * Operations defined on an SVCXPRT handle
- *
- * SVCXPRT *xprt;
- * struct rpc_msg *msg;
- * xdrproc_t xargs;
- * caddr_t argsp;
- */
-#define SVC_RECV(xprt, msg) \
- (*(xprt)->xp_ops->xp_recv)((xprt), (msg))
-#define svc_recv(xprt, msg) \
- (*(xprt)->xp_ops->xp_recv)((xprt), (msg))
-
-#define SVC_STAT(xprt) \
- (*(xprt)->xp_ops->xp_stat)(xprt)
-#define svc_stat(xprt) \
- (*(xprt)->xp_ops->xp_stat)(xprt)
-
-#define SVC_GETARGS(xprt, xargs, argsp) \
- (*(xprt)->xp_ops->xp_getargs)((xprt), (xargs), (argsp))
-#define svc_getargs(xprt, xargs, argsp) \
- (*(xprt)->xp_ops->xp_getargs)((xprt), (xargs), (argsp))
-
-#define SVC_REPLY(xprt, msg) \
- (*(xprt)->xp_ops->xp_reply) ((xprt), (msg))
-#define svc_reply(xprt, msg) \
- (*(xprt)->xp_ops->xp_reply) ((xprt), (msg))
-
-#define SVC_FREEARGS(xprt, xargs, argsp) \
- (*(xprt)->xp_ops->xp_freeargs)((xprt), (xargs), (argsp))
-#define svc_freeargs(xprt, xargs, argsp) \
- (*(xprt)->xp_ops->xp_freeargs)((xprt), (xargs), (argsp))
-
-#define SVC_DESTROY(xprt) \
- (*(xprt)->xp_ops->xp_destroy)(xprt)
-#define svc_destroy(xprt) \
- (*(xprt)->xp_ops->xp_destroy)(xprt)
-
-
-/*
- * Service request
- */
-struct svc_req {
- u_long rq_prog; /* service program number */
- u_long rq_vers; /* service protocol version */
- u_long rq_proc; /* the desired procedure */
- struct opaque_auth rq_cred; /* raw creds from the wire */
- caddr_t rq_clntcred; /* read only cooked cred */
- SVCXPRT *rq_xprt; /* associated transport */
-};
-
-
-/*
- * Service registration
- *
- * svc_register(xprt, prog, vers, dispatch, protocol)
- * SVCXPRT *xprt;
- * u_long prog;
- * u_long vers;
- * void (*dispatch)();
- * int protocol; like TCP or UDP, zero means do not register
- */
-EXTERN_FUNCTION(bool_t svc_register, (SVCXPRT *xprt, u_long prog, u_long vers,
- void (*dispatch)(struct svc_req *,
- SVCXPRT*),
- int protocol));
-
-/*
- * Service un-registration
- *
- * svc_unregister(prog, vers)
- * u_long prog;
- * u_long vers;
- */
-EXTERN_FUNCTION(void* svc_unregister, (u_long prog, u_long vers));
-
-/*
- * Transport registration.
- *
- * xprt_register(xprt)
- * SVCXPRT *xprt;
- */
-EXTERN_FUNCTION(void xprt_register, (SVCXPRT* xprt));
-
-/*
- * Transport un-register
- *
- * xprt_unregister(xprt)
- * SVCXPRT *xprt;
- */
-EXTERN_FUNCTION(void xprt_unregister, (SVCXPRT* xprt));
-
-
-
-
-/*
- * When the service routine is called, it must first check to see if it
- * knows about the procedure; if not, it should call svcerr_noproc
- * and return. If so, it should deserialize its arguments via
- * SVC_GETARGS (defined above). If the deserialization does not work,
- * svcerr_decode should be called followed by a return. Successful
- * decoding of the arguments should be followed the execution of the
- * procedure's code and a call to svc_sendreply.
- *
- * Also, if the service refuses to execute the procedure due to too-
- * weak authentication parameters, svcerr_weakauth should be called.
- * Note: do not confuse access-control failure with weak authentication!
- *
- * NB: In pure implementations of rpc, the caller always waits for a reply
- * msg. This message is sent when svc_sendreply is called.
- * Therefore pure service implementations should always call
- * svc_sendreply even if the function logically returns void; use
- * xdr.h - xdr_void for the xdr routine. HOWEVER, tcp based rpc allows
- * for the abuse of pure rpc via batched calling or pipelining. In the
- * case of a batched call, svc_sendreply should NOT be called since
- * this would send a return message, which is what batching tries to avoid.
- * It is the service/protocol writer's responsibility to know which calls are
- * batched and which are not. Warning: responding to batch calls may
- * deadlock the caller and server processes!
- */
-
-EXTERN_FUNCTION(bool_t svc_sendreply, (SVCXPRT *xprt,xdrproc_t outproc,
- char *out));
-EXTERN_FUNCTION(void svcerr_decode, (SVCXPRT *xprt));
-EXTERN_FUNCTION(void svcerr_weakauth, (SVCXPRT *xprt));
-EXTERN_FUNCTION(void svcerr_noproc, (SVCXPRT *xprt));
-EXTERN_FUNCTION(void svcerr_progvers, (SVCXPRT *xprt));
-EXTERN_FUNCTION(void svcerr_auth, (SVCXPRT *xprt, enum auth_stat why));
-EXTERN_FUNCTION(void svcerr_noprog, (SVCXPRT *xprt));
-EXTERN_FUNCTION(void svcerr_systemerr, (SVCXPRT *xprt));
-
-/*
- * Lowest level dispatching -OR- who owns this process anyway.
- * Somebody has to wait for incoming requests and then call the correct
- * service routine. The routine svc_run does infinite waiting; i.e.,
- * svc_run never returns.
- * Since another (co-existant) package may wish to selectively wait for
- * incoming calls or other events outside of the rpc architecture, the
- * routine svc_getreq is provided. It must be passed readfds, the
- * "in-place" results of a select system call (see select, section 2).
- */
-
-/*
- * Global keeper of rpc service descriptors in use
- * dynamic; must be inspected before each call to select
- */
-#ifdef FD_SETSIZE
-extern fd_set svc_fdset;
-#define svc_fds svc_fdset.fds_bits[0] /* compatibility */
-#else
-extern int svc_fds;
-#endif /* def FD_SETSIZE */
-
-/*
- * a small program implemented by the svc_rpc implementation itself;
- * also see clnt.h for protocol numbers.
- */
-EXTERN_FUNCTION(void rpctest_service, ());
-EXTERN_FUNCTION(void svc_getreq, (int rdfds));
-EXTERN_FUNCTION(void svc_getreqset, (fd_set *rdfdsp)); /* takes fdset instead of int */
-EXTERN_FUNCTION(void svc_run, ()); /* never returns */
-
-/*
- * Socket to use on svcxxx_create call to get default socket
- */
-#define RPC_ANYSOCK -1
-
-/*
- * These are the existing service side transport implementations
- */
-
-/*
- * Memory based rpc for testing and timing.
- */
-EXTERN_FUNCTION(SVCXPRT *svcraw_create, ());
-
-/*
- * Udp based rpc.
- */
-EXTERN_FUNCTION(SVCXPRT *svcudp_create, (int sock));
-EXTERN_FUNCTION(SVCXPRT *svcudp_bufcreate, (int sock, u_int sendsz,
- u_int recvsz));
-
-/*
- * Tcp based rpc.
- */
-EXTERN_FUNCTION(SVCXPRT *svctcp_create, (int fd, u_int sendsz, u_int recvsz));
-
-
-
-#endif /*!_rpc_svc_h*/
diff --git a/rpc++/StdHdrs/rpc/xdr.h b/rpc++/StdHdrs/rpc/xdr.h
deleted file mode 100644
index 38cf1649112..00000000000
--- a/rpc++/StdHdrs/rpc/xdr.h
+++ /dev/null
@@ -1,276 +0,0 @@
-/* @(#)xdr.h 2.2 88/07/29 4.0 RPCSRC */
-/* $Id$ */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part. Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC 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.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California 94043
- */
-/* @(#)xdr.h 1.19 87/04/22 SMI */
-
-/*
- * xdr.h, External Data Representation Serialization Routines.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _rpc_xdr_h
-#define _rpc_xdr_h
-
-#include <rpc/c_types.h>
-
-#include <rpc/types.h>
-/*
- * XDR provides a conventional way for converting between C data
- * types and an external bit-string representation. Library supplied
- * routines provide for the conversion on built-in C data types. These
- * routines and utility routines defined here are used to help implement
- * a type encode/decode routine for each user-defined type.
- *
- * Each data type provides a single procedure which takes two arguments:
- *
- * bool_t
- * xdrproc(xdrs, argresp)
- * XDR *xdrs;
- * <type> *argresp;
- *
- * xdrs is an instance of a XDR handle, to which or from which the data
- * type is to be converted. argresp is a pointer to the structure to be
- * converted. The XDR handle contains an operation field which indicates
- * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
- *
- * XDR_DECODE may allocate space if the pointer argresp is null. This
- * data can be freed with the XDR_FREE operation.
- *
- * We write only one procedure per data type to make it easy
- * to keep the encode and decode procedures for a data type consistent.
- * In many cases the same code performs all operations on a user defined type,
- * because all the hard work is done in the component type routines.
- * decode as a series of calls on the nested data types.
- */
-
-/*
- * Xdr operations. XDR_ENCODE causes the type to be encoded into the
- * stream. XDR_DECODE causes the type to be extracted from the stream.
- * XDR_FREE can be used to release the space allocated by an XDR_DECODE
- * request.
- */
-enum xdr_op {
- XDR_ENCODE=0,
- XDR_DECODE=1,
- XDR_FREE=2
-};
-
-/*
- * This is the number of bytes per unit of external data.
- */
-#define BYTES_PER_XDR_UNIT (4)
-#define RNDUP(x) ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
- * BYTES_PER_XDR_UNIT)
-
-/*
- * The XDR handle.
- * Contains operation which is being applied to the stream,
- * an operations vector for the paticular implementation (e.g. see xdr_mem.c),
- * and two private fields for the use of the particular impelementation.
- */
-typedef struct {
- enum xdr_op x_op; /* operation; fast additional param */
- struct xdr_ops {
- bool_t (*x_getlong)(); /* get a long from underlying stream */
- bool_t (*x_putlong)(); /* put a long to " */
- bool_t (*x_getbytes)();/* get some bytes from " */
- bool_t (*x_putbytes)();/* put some bytes to " */
- u_int (*x_getpostn)();/* returns bytes off from beginning */
- bool_t (*x_setpostn)();/* lets you reposition the stream */
- long * (*x_inline)(); /* buf quick ptr to buffered data */
- void (*x_destroy)(); /* free privates of this xdr_stream */
- } *x_ops;
- caddr_t x_public; /* users' data */
- caddr_t x_private; /* pointer to private data */
- caddr_t x_base; /* private used for position info */
- int x_handy; /* extra private word */
-} XDR;
-
-/*
- * A xdrproc_t exists for each data type which is to be encoded or decoded.
- *
- * The second argument to the xdrproc_t is a pointer to an opaque pointer.
- * The opaque pointer generally points to a structure of the data type
- * to be decoded. If this pointer is 0, then the type routines should
- * allocate dynamic storage of the appropriate size and return it.
- * bool_t (*xdrproc_t)(XDR *, caddr_t *);
- */
-typedef bool_t (*xdrproc_t) FUN_ARGS((XDR*, void*));
-
-/*
- * Operations defined on a XDR handle
- *
- * XDR *xdrs;
- * long *longp;
- * caddr_t addr;
- * u_int len;
- * u_int pos;
- */
-#define XDR_GETLONG(xdrs, longp) \
- (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-#define xdr_getlong(xdrs, longp) \
- (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-
-#define XDR_PUTLONG(xdrs, longp) \
- (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-#define xdr_putlong(xdrs, longp) \
- (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-
-#define XDR_GETBYTES(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-#define xdr_getbytes(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-
-#define XDR_PUTBYTES(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-#define xdr_putbytes(xdrs, addr, len) \
- (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-
-#define XDR_GETPOS(xdrs) \
- (*(xdrs)->x_ops->x_getpostn)(xdrs)
-#define xdr_getpos(xdrs) \
- (*(xdrs)->x_ops->x_getpostn)(xdrs)
-
-#define XDR_SETPOS(xdrs, pos) \
- (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-#define xdr_setpos(xdrs, pos) \
- (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-
-#define XDR_INLINE(xdrs, len) \
- (*(xdrs)->x_ops->x_inline)(xdrs, len)
-#define xdr_inline(xdrs, len) \
- (*(xdrs)->x_ops->x_inline)(xdrs, len)
-
-#define XDR_DESTROY(xdrs) \
- if ((xdrs)->x_ops->x_destroy) \
- (*(xdrs)->x_ops->x_destroy)(xdrs)
-#define xdr_destroy(xdrs) \
- if ((xdrs)->x_ops->x_destroy) \
- (*(xdrs)->x_ops->x_destroy)(xdrs)
-
-/*
- * Support struct for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * a entry with a null procedure pointer. The xdr_union routine gets
- * the discriminant value and then searches the array of structures
- * for a matching value. If a match is found the associated xdr routine
- * is called to handle that part of the union. If there is
- * no match, then a default routine may be called.
- * If there is no match and no default routine it is an error.
- */
-#define NULL_xdrproc_t ((xdrproc_t)0)
-struct xdr_discrim {
- int value;
- xdrproc_t proc;
-};
-
-/*
- * In-line routines for fast encode/decode of primitve data types.
- * Caveat emptor: these use single memory cycles to get the
- * data from the underlying buffer, and will fail to operate
- * properly if the data is not aligned. The standard way to use these
- * is to say:
- * if ((buf = XDR_INLINE(xdrs, count)) == NULL)
- * return (FALSE);
- * <<< macro calls >>>
- * where ``count'' is the number of bytes of data occupied
- * by the primitive data types.
- *
- * N.B. and frozen for all time: each data type here uses 4 bytes
- * of external representation.
- */
-#define IXDR_GET_LONG(buf) ((long)ntohl((u_long)*(buf)++))
-#define IXDR_PUT_LONG(buf, v) (*(buf)++ = (long)htonl((u_long)v))
-
-#define IXDR_GET_BOOL(buf) ((bool_t)IXDR_GET_LONG(buf))
-#define IXDR_GET_ENUM(buf, t) ((t)IXDR_GET_LONG(buf))
-#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
-#define IXDR_GET_SHORT(buf) ((short)IXDR_GET_LONG(buf))
-#define IXDR_GET_U_SHORT(buf) ((u_short)IXDR_GET_LONG(buf))
-
-#define IXDR_PUT_BOOL(buf, v) IXDR_PUT_LONG((buf), ((long)(v)))
-#define IXDR_PUT_ENUM(buf, v) IXDR_PUT_LONG((buf), ((long)(v)))
-#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG((buf), ((long)(v)))
-#define IXDR_PUT_SHORT(buf, v) IXDR_PUT_LONG((buf), ((long)(v)))
-#define IXDR_PUT_U_SHORT(buf, v) IXDR_PUT_LONG((buf), ((long)(v)))
-
-/*
- * These are the "generic" xdr routines.
- */
-EXTERN_FUNCTION(bool_t xdr_void, ());
-EXTERN_FUNCTION(bool_t xdr_int, ());
-EXTERN_FUNCTION(bool_t xdr_u_int, ());
-EXTERN_FUNCTION(bool_t xdr_long, ());
-EXTERN_FUNCTION(bool_t xdr_u_long, ());
-EXTERN_FUNCTION(bool_t xdr_short, ());
-EXTERN_FUNCTION(bool_t xdr_u_short, ());
-EXTERN_FUNCTION(bool_t xdr_bool, ());
-EXTERN_FUNCTION(bool_t xdr_enum, ());
-EXTERN_FUNCTION(bool_t xdr_array, ());
-EXTERN_FUNCTION(bool_t xdr_bytes, ());
-EXTERN_FUNCTION(bool_t xdr_opaque, ());
-EXTERN_FUNCTION(bool_t xdr_string, ());
-EXTERN_FUNCTION(bool_t xdr_union, ());
-EXTERN_FUNCTION(void xdr_free, ());
-EXTERN_FUNCTION(bool_t xdr_char, ());
-EXTERN_FUNCTION(bool_t xdr_u_char, ());
-EXTERN_FUNCTION(bool_t xdr_vector, ());
-EXTERN_FUNCTION(bool_t xdr_float, ());
-EXTERN_FUNCTION(bool_t xdr_double, ());
-EXTERN_FUNCTION(bool_t xdr_reference, ());
-EXTERN_FUNCTION(bool_t xdr_pointer, ());
-EXTERN_FUNCTION(bool_t xdr_wrapstring, ());
-
-/*
- * Common opaque bytes objects used by many rpc protocols;
- * declared here due to commonality.
- */
-#define MAX_NETOBJ_SZ 1024
-struct netobj {
- u_int n_len;
- char *n_bytes;
-};
-typedef struct netobj netobj;
-EXTERN_FUNCTION(bool_t xdr_netobj, ());
-
-/*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
-EXTERN_FUNCTION(void xdrmem_create, ()); /* XDR using memory buffers */
-EXTERN_FUNCTION(void xdrstdio_create, ()); /* XDR using stdio library */
-EXTERN_FUNCTION(void xdrrec_create, ()); /* XDR pseudo records for tcp */
-EXTERN_FUNCTION(bool_t xdrrec_endofrecord, ());/* make end of xdr record */
-EXTERN_FUNCTION(int xdrrec_readbytes, ()); /* like a read on a pipe */
-EXTERN_FUNCTION(bool_t xdrrec_skiprecord, ()); /* move to beginning of next record */
-EXTERN_FUNCTION(bool_t xdrrec_eof, ()); /* true if no more input */
-
-#endif /*!_rpc_xdr_h*/
diff --git a/rpc++/callback.cc b/rpc++/callback.cc
deleted file mode 100644
index 34e1ee8189c..00000000000
--- a/rpc++/callback.cc
+++ /dev/null
@@ -1,39 +0,0 @@
-// -*- c++ -*-
-// $Id$
-/*
-Copyright (C) 1991 Peter Bersen
-
-This file is part of the rpc++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library 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 Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Modified and partially rewritten March 1992 by Michael N. Lipp,
-mnl@dtro.e-technik.th-darmstadt.de. The original copyright terms and
-conditions apply without change to any modified or new parts.
-*/
-
-static char _rpcpp_callback_cc_[]
-= "callback.cc,v 2.2 1992/06/15 19:12:37 mnl Exp";
-
-// callback.cc,v
-// Revision 2.2 1992/06/15 19:12:37 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:42 mnl
-// Initial mnl version.
-//
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "rpc++/callback.h"
-
diff --git a/rpc++/example/Makefile b/rpc++/example/Makefile
deleted file mode 100644
index 4abd7b4488f..00000000000
--- a/rpc++/example/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-TOP = ..
-SUBDIRS =
-
-CC = gcc
-CPPFLAGS = -I..
-CFLAGS = -ggdb
-C++FLAGS = $(CFLAGS)
-# for Sun:
-#LOADLIBES = -L.. -lrpc++ -lg++
-# for ISC 2.2:
-LOADLIBES = -L.. -lrpc++ -lrpclib -lmisc -lg++ -linet -liberty
-
-HDRS = calcsvc.h
-SRCS = server.cc client.cc calcsvc.cc
-
-all:: server client
-
-server: server.o calcsvc.o
- $(CC) -o $@ server.o calcsvc.o $(LOADLIBES)
-
-client: client.o calcsvc.o
- $(CC) -o $@ client.o calcsvc.o ../request.o $(LOADLIBES)
-
-DISTLIST = Makefile $(HDRS) $(SRCS)
-
-clean::
- rm -f $(CLEANWILDCARDS) server client
-
-include .dependencies
-
-.dependencies: $(HDRS) $(SRCS)
- gcc -M $(CPPFLAGS) $(SRCS) > .dependencies
-
-distlist::
- @for f in *.[ch] *.cc; do \
- if expr " $(DISTLIST) " : ".* $$f " >/dev/null; then : ; \
- else echo 1>&2 "Warning: c- or h-file \"$$f\" not in DISTLIST"; fi; \
- done
-
-include $(TOP)/Proj.make
diff --git a/rpc++/example/calcsvc.cc b/rpc++/example/calcsvc.cc
deleted file mode 100644
index 2052b3eabd3..00000000000
--- a/rpc++/example/calcsvc.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-// -*- c++ -*-
-// $Id$
-static char _calcsvc_cc_[]
-= "calcsvc.cc,v 2.3 1992/06/15 19:13:13 mnl Exp";
-
-// calcsvc.cc,v
-// Revision 2.3 1992/06/15 19:13:13 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:28 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:45 mnl
-// Initial mnl version.
-//
-
-#include <stream.h>
-#include "calcsvc.h"
-
-XdrInfo& Xmyint = Xdr::Xint;
-
-RpcRequest CalcRequests::Add (1, &Xmyint, &Xdr::Xint, &Xdr::Xint);
-RpcRequest CalcRequests::Sub (2, &Xdr::Xint, &Xdr::Xint, &Xdr::Xint);
-RpcRequest CalcRequests::Times (3, &Xdr::Xint, &Xdr::Xint, &Xdr::Xint);
-RpcRequest CalcRequests::Div (4, &Xdr::Xint, &Xdr::Xint, &Xdr::Xint);
-RpcRequest CalcRequests::Inc (5, &Xdr::Xint, &Xdr::Xint);
-RpcRequest CalcRequests::IToA (6, &Xdr::Xwrapstring, &Xdr::Xint);
-RpcRequest CalcRequests::Reset (7, &Xdr::Xvoid);
-RpcRequest CalcRequests::Sleep (8, &Xdr::Xnull, &Xdr::Xint, RpcRequest::async);
-RpcRequest CalcRequests::Msg (9, &Xdr::Xvoid, &Xdr::Xwrapstring);
-RpcRequest CalcRequests::Invalid (100, &Xdr::Xvoid, &Xdr::Xvoid);
diff --git a/rpc++/example/calcsvc.h b/rpc++/example/calcsvc.h
deleted file mode 100644
index fd5a039331d..00000000000
--- a/rpc++/example/calcsvc.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// -*- c++ -*-
-// $Id$
-#ifndef _CALCSERVICE_H_
-#define _CALCSERVICE_H_
-static char _calcsvc_h_[]
-= "calcsvc.h,v 2.3 1992/06/15 19:13:15 mnl Exp";
-
-// calcsvc.h,v
-// Revision 2.3 1992/06/15 19:13:15 mnl
-// Fixed a few bugs, clarified interface.
-//
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "rpc++/request.h"
-
-#define CALCSVC 0x20100001
-
-struct CalcRequests
-{
- static RpcRequest Add;
- static RpcRequest Sub;
- static RpcRequest Times;
- static RpcRequest Div;
- static RpcRequest Inc;
- static RpcRequest IToA;
- static RpcRequest Reset; // for testing proc without args
- static RpcRequest Sleep; // for testing async
- static RpcRequest Msg; // for testing string passing
- static RpcRequest Invalid; // for testing error handling
-};
-
-#endif
diff --git a/rpc++/example/client.cc b/rpc++/example/client.cc
deleted file mode 100644
index 9014d2fc67a..00000000000
--- a/rpc++/example/client.cc
+++ /dev/null
@@ -1,65 +0,0 @@
-// -*- c++ -*-
-// $Id$
-static char _client_cc_[]
-= "client.cc,v 2.3 1992/06/15 19:13:17 mnl Exp";
-
-// client.cc,v
-// Revision 2.3 1992/06/15 19:13:17 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:32 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:45 mnl
-// Initial mnl version.
-//
-
-#include <stream.h>
-#include "rpc++/stub.h"
-
-#include "calcsvc.h"
-
-class CalcStub : public RpcStub
-{
-public:
- inline CalcStub (u_long prognum, u_long versnum,
- char* hostname = "localhost",
- timeval timeout = defaultTimeout, bool connect = TRUE)
- : RpcStub (prognum, versnum, hostname, timeout, connect) {}
-
- inline void Reset ()
- { Call (CalcRequests::Reset); }
- inline int Inc (int i)
- { return *(int*)Call (CalcRequests::Inc, &i); }
- inline char* IToA (int i)
- { return *(char**)Call (CalcRequests::IToA, &i); }
- inline int Add (int s1, int s2)
- { return *(int*)Call (CalcRequests::Add, &s1, &s2); }
-
- inline void Msg (char* msg)
- { Call (CalcRequests::Msg, &msg); }
- inline void Sleep (int secs)
- { Call (CalcRequests::Sleep, &secs); }
-};
-
-main (int argc, char* argv[])
-{
- char* server = argv[1];
-
- CalcStub svc (CALCSVC, 1, server);
- svc.Reset ();
- svc.Msg ("Hello server.\n");
- int i = 0, o;
- while (i < 10)
- {
- o = svc.Inc (i);
- cout << svc.IToA (o) << '\n';
- i = o;
- }
- i = svc.Add (12, 23);
- cout << "add (" << 12 << ", " << 23 << ") = " << i << endl;
- cout << "Calling Sleep (5) asynchronously.\n";
- svc.Sleep (5);
- cout << "Sleep call completed.\n";
- svc.Call (CalcRequests::Invalid);
-}
diff --git a/rpc++/example/server.cc b/rpc++/example/server.cc
deleted file mode 100644
index 674c7178f27..00000000000
--- a/rpc++/example/server.cc
+++ /dev/null
@@ -1,113 +0,0 @@
-// -*- c++ -*-
-// $Id$
-static char _server_cc_[]
-= "server.cc,v 2.3 1992/06/15 19:13:18 mnl Exp";
-
-// server.cc,v
-// Revision 2.3 1992/06/15 19:13:18 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:33 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:45 mnl
-// Initial mnl version.
-//
-
-#include <unistd.h>
-#include <stream.h>
-#include <string.h>
-#include <malloc.h>
-
-#include "rpc++/service.h"
-#include "calcsvc.h"
-
-class Calc
-{
-public:
- void* Add (void*, void*);
- void* Sub (void*, void*);
- void* Times (void*, void*);
- void* Div (void*, void*);
- void* Inc (void*);
- void* IToA (void**);
- void Reset (RpcService*);
-};
-
-void* Calc::Add (void* in1, void* in2)
-{
- static int res;
- res = *(int*)in1 + *(int*)in2;
- return &res;
-}
-
-void* Calc::Sub (void* in1, void* in2)
-{
- static int res;
- res = *(int*)in1 - *(int*)in2;
- return &res;
-}
-
-void* Calc::Times (void* in1, void* in2)
-{
- static int res;
- res = *(int*)in1 * *(int*)in2;
- return &res;
-}
-
-void* Calc::Div (void* in1, void* in2)
-{
- static int res;
- res = *(int*)in1 / *(int*)in2;
- return &res;
-}
-
-void* Calc::Inc (void* in)
-{
- static int res;
- res = *(int*)in + 1;
- return &res;
-}
-
-void* Calc::IToA (void** in)
-{
- static char *s = 0;
- delete s;
- char *t = form ("%d", *(int*)in[0]);
- s = new char[strlen (t) + 1];
- strcpy (s, t);
- return &s;
-}
-
-void Calc::Reset (RpcService* svc)
-{
- cout << "Received reset from " << svc->CallerName () << ".\n";
-}
-
-void printMessage (void* in)
-{
- cout << *(char**)in;
-}
-
-void doSleep (void* in)
-{
- cout << form ("Sleeping %d secs.\n", *(int*)in);
- sleep (*(int*)in);
- cout << "Woke up.\n";
-}
-
-main ()
-{
- RpcService svc (CALCSVC, 1);
- Calc calc;
- svc.Register (CalcRequests::Add, RpcMethodCall<Calc> (&calc, &calc.Add));
- svc.Register (CalcRequests::Sub, RpcMethodCall<Calc> (&calc, &calc.Sub));
- svc.Register (CalcRequests::Times, RpcMethodCall<Calc> (&calc, &calc.Times));
- svc.Register (CalcRequests::Div, RpcMethodCall<Calc> (&calc, &calc.Div));
- svc.Register (CalcRequests::Inc, RpcMethodCall<Calc> (&calc, &calc.Inc));
- svc.Register (CalcRequests::IToA,RpcMethodCall<Calc>(&calc, &calc.IToA));
- svc.Register (CalcRequests::Reset, RpcMethodCall<Calc> (&calc, &calc.Reset));
- svc.Register (CalcRequests::Msg, RpcCallback (printMessage));
- svc.Register (CalcRequests::Sleep, RpcCallback (doSleep));
- svc.Provide ();
-}
diff --git a/rpc++/gcc-2.2.fix b/rpc++/gcc-2.2.fix
deleted file mode 100644
index f684e5b128b..00000000000
--- a/rpc++/gcc-2.2.fix
+++ /dev/null
@@ -1,252 +0,0 @@
-To: bug-g++@prep.ai.mit.edu
-Subject: gcc-2.2 loops with template-local typedefs (bug&patch)
-BCC: mnl,ulf
---text follows this line--
-Hi,
-
-trying to translate the following fragment on a Sparc running SunOs 4.1.2
-with gcc-2.2 results in gcc infinitly looping.
-
----------------------------------------------------------------------------
-// -*- c++ -*-
-
-class AnyRpcCallback
-{
-protected:
-
-public:
- inline virtual ~AnyRpcCallback () {}
- inline virtual void Do (void* in, void* out) = 0;
-};
-
-template<class T> class RpcCallback : public AnyRpcCallback
-{
- typedef void (T::*Method)(void*, void*);
- typedef void (T::*MethodN)(void*, void**);
- typedef void (T::*Method1)(void*, void*);
- typedef void (T::*Method2)(void*, void*, void*);
-
-private:
- T* object;
- void (T::*method)(void*, void*);
-
-public:
- inline RpcCallback (T* o, void* m)
- { object = o; method = m; }
- inline void Do (void* in, void* out)
- { (object->*method)(in, out); }
-};
-
-class Test
-{
-public:
- void m (void*, void*);
-};
-
-main ()
-{
- Test o;
- AnyRpcCallback* cb = new RpcCallback<Test> (&o, &Test::m);
-}
----------------------------------------------------------------------------
-
-PLEASE NOTE that you will get another loop due to a bug that I have
-reported together with a patch earlier (it's appended to this mail).
-So you won't be able to reproduce the bug reported in this mail unless
-you have my previous patch applied. I am, however, definitely sure
-(and the explanation below will confirm it) that the bug reported in
-this mail is *NOT* caused by my patch!
-
-The problem is, that the "chain" field of the tree-nodes used by gcc
-for its internal representation is used for various purposes, and in
-the case of this template-local typedef, someone lost track of its usage.
-
-After parsing, the TYPE_DECL-node created for the typedef is appended
-to the scope via "pushlevel". Types in the current scope are linked
-using the "chain" field. At the same time, however, all components of
-the template are linked together during parsing using the same "chain"
-field. Parsing the second typedef, "pushlevel" makes the first typedef
-a successor of the second typedef and the subsequent catenation of
-components makes the second typedef a successor of the first typedef
-thus creating a loop.
-
-The resulting list of all components is used in routine
-"finish_struct".
-
-I think the most proper approach would be to use TREE_LIST nodes in
-the list of components as indirect references to the typedef-nodes.
-This is easy to achieve, it is, however, very hard to modify
-finish_struct in a way that it handles these indirection properly.
-Actually, I gave up when I tried to understand & modify the routine
-that removes the duplicate declarations from the list of components.
-
-There are two easier approaches: (1) Don't include typedefs in the
-list of components, (2) use copies of the typedef-node which have an
-unused chain field. The first approach assumes that finish_struct
-doesn't do anything with typedefs, so it wouldn't be important if they
-are missing from the list of components. If this is the case, however,
-it can't hurt to use copies of the typedef-nodes (copies of the
-originals that are linked in the scope-list), so the second approach
-is safer. It can only fail if finish_struct modifies the typedef-nodes
-and this modification is significant for the typedef-nodes in the
-scope-list (which are, of course, not modified. Only the copies are).
-
-So I think the patch is pretty safe. It fixes the problem and doesn't
-seem to introduce new ones. I'm aware that typedefs that are local to
-templates stretch language features to the limits, but it makes my
-C++ interface to RPCs real nice (I'll post it one of these days).
-
-Michael
-
-*** .orig/cp-parse.y Mon Jun 15 17:08:58 1992
---- cp-parse.y Mon Jun 15 19:13:15 1992
-***************
-*** 2211,2217 ****
- if (TREE_CODE (t) == ENUMERAL_TYPE && TREE_NONLOCAL_FLAG (t))
- $$ = grok_enum_decls (t, $2);
- else
-! $$ = $2;
- }
- end_exception_decls ();
- }
---- 2211,2233 ----
- if (TREE_CODE (t) == ENUMERAL_TYPE && TREE_NONLOCAL_FLAG (t))
- $$ = grok_enum_decls (t, $2);
- else
-! {
-! /* if a component is a typedef, it is inserted
-! in the list of nodes that make up the valid
-! types in the scope. Thus its chain field is
-! used and can't be used a second time for linking
-! the components of the struct. So, we make a copy
-! here. This apparently works. The proper thing
-! to do, however, would be to use a TREE_LIST
-! node to reference the typedef. I tried to rewrite
-! finish_struct accordingly (i.e., ``dereference''
-! components TREE_LIST before use, but I gave up.
-! mnl@dtro.e-technik.th-darmstadt.de */
-! if (TREE_CODE ($2) == TYPE_DECL)
-! $$ = copy_node ($2);
-! else
-! $$ = $2;
-! }
- }
- end_exception_decls ();
- }
-
-===========================================================================
-The previous bug:
----------------------------------------------------------------------------
-Return-Path: <mnl>
-Date: Wed, 10 Jun 92 19:31:13 +0200
-From: "Michael N. Lipp" <mnl>
-To: bug-g++@prep.ai.mit.edu
-Subject: gcc-2.2 bug&patch: typedef in template
-
-Hi,
-
-gcc-2.2 on a sparc running SunOS 4.1.2 enters an infinite loop when
-compiling this:
-
------------------------------------------------------------------------------
-// -*- c++ -*-
-
-class AnyRpcCallback
-{
-protected:
-
-public:
- inline virtual ~AnyRpcCallback () {}
- inline virtual void Do (void* in, void* out) = 0;
-};
-
-template<class T> class RpcCallback : public AnyRpcCallback
-{
- typedef void (T::*Method)(void*, void*);
-
-private:
- T* object;
- void (T::*method)(void*, void*);
-
-public:
- inline RpcCallback (T* o, void* m)
- { object = o; method = m; }
- inline void Do (void* in, void* out)
- { (object->*method)(in, out); }
-};
-
-class Test
-{
-public:
- void m (void*, void*);
-};
-
-main ()
-{
- Test o;
- AnyRpcCallback* cb = new RpcCallback<Test> (&o, &Test::m);
-}
------------------------------------------------------------------------------
-
-This is quite an improvement over gcc-2.1 which dumped core with this
-source.
-
-I tracked the cause down: grokdeclarator does a pushlevel(0), then
-calls start_decl, which in turn calls grokdeclarator again which does
-a poplevel_class. This poplevel_class pops the level pushed by
-pushlevel(0) and so the poplevel performed by grokdeclarator to match
-its pushlevel(0) pops quite a different level! This can easily be
-observed by compiling cp-decl.c with -DDEBUG_CP_BINDING_LEVELS.
-
-Here is a patch that fixes the bug. I don't think it hits the real
-cause of this problem, but it works.
-
-*** .orig/cp-decl.c Wed Jun 10 14:06:26 1992
---- cp-decl.c Wed Jun 10 15:20:38 1992
-***************
-*** 6874,6882 ****
---- 6874,6889 ----
- tree loc_typedecl;
- register int i = sizeof (struct lang_decl_flags) / sizeof (int);
- register int *pi;
-+ struct binding_level *local_binding_level;
-
- /* keep `grokdeclarator' from thinking we are in PARM context. */
- pushlevel (0);
-+ /* poplevel_class may be called by grokdeclarator which is called in
-+ start_decl which is called below. In this case, our pushed level
-+ may vanish and poplevel mustn't be called. So remember what we
-+ have pushed and pop only if that is matched by
-+ current_binding_level later. mnl@dtro.e-technik.th-darmstadt.de */
-+ local_binding_level = current_binding_level;
- loc_typedecl = start_decl (declarator, declspecs, initialized, NULL_TREE);
-
- pi = (int *) permalloc (sizeof (struct lang_decl_flags));
-***************
-*** 6883,6889 ****
- while (i > 0)
- pi[--i] = 0;
- DECL_LANG_SPECIFIC (loc_typedecl) = (struct lang_decl *) pi;
-! poplevel (0, 0, 0);
-
- #if 0
- if (TREE_CODE (TREE_TYPE (loc_typedecl)) == ENUMERAL_TYPE)
---- 6890,6897 ----
- while (i > 0)
- pi[--i] = 0;
- DECL_LANG_SPECIFIC (loc_typedecl) = (struct lang_decl *) pi;
-! if (current_binding_level == local_binding_level)
-! poplevel (0, 0, 0);
-
- #if 0
- if (TREE_CODE (TREE_TYPE (loc_typedecl)) == ENUMERAL_TYPE)
-
-Michael
-
------------------,------------------------------,------------------------------
-Michael N. Lipp ! Institut fuer Datentechnik ! Phone: 49-6151-163776
- ! Merckstr. 25 ,----------' Fax: 49-6151-164976
- ! D-6100 Darmstadt ! E-Mail:
- ! (Germany) ! mnl@dtro.e-technik.th-darmstadt.de
------------------'-------------------'-----------------------------------------
-
diff --git a/rpc++/request.cc b/rpc++/request.cc
deleted file mode 100644
index 14960195a19..00000000000
--- a/rpc++/request.cc
+++ /dev/null
@@ -1,166 +0,0 @@
-// -*- c++ -*-
-// $Id$
-/*
-Copyright (C) 1991 Peter Bersen
-
-This file is part of the rpc++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library 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 Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Modified and partially rewritten March 1992 by Michael N. Lipp,
-mnl@dtro.e-technik.th-darmstadt.de. The original copyright terms and
-conditions apply without change to any modified or new parts.
-*/
-
-static char _rpcpp_request_cc_[]
-= "request.cc,v 2.3 1992/06/15 19:12:39 mnl Exp";
-
-// request.cc,v
-// Revision 2.3 1992/06/15 19:12:39 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:01 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:42 mnl
-// Initial mnl version.
-//
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "rpc++/request.h"
-
-#include <assert.h>
-
-void RpcRequest::init (u_long req, int pars, int parsz,
- const XdrInfo* out, const XdrInfo** in, int rt)
-{
- params = pars;
- parmsz = parsz;
- reqnum = req;
- ininfo = in;
- ininfo[params] = (XdrInfo*)0;
- outinfo = out;
- reqtype = rt;
- assert (rt == normal || outinfo->Proc () == 0);
-}
-
-RpcRequest::RpcRequest(u_long req, const XdrInfo* out, int t)
-{
- init (req, 0, 0, out, new XdrInfo*[1], t);
-}
-
-RpcRequest::RpcRequest(u_long req, const XdrInfo* out, const XdrInfo* in,
- int t)
-{
- const XdrInfo** a = new XdrInfo*[2];
- a[0] = in;
- init (req, 1, -1, out, a, t);
-}
-
-RpcRequest::RpcRequest(u_long req, const XdrInfo* out, const XdrInfo* in0,
- const XdrInfo* in1, int t)
-{
- const XdrInfo** a = new XdrInfo*[3];
- a[0] = in0;
- a[1] = in1;
- init (req, 2, -1, out, a, t);
-}
-
-RpcRequest::RpcRequest(u_long req, const XdrInfo* out, const XdrInfo* in0,
- const XdrInfo* in1, const XdrInfo* in2, int t)
-{
- const XdrInfo** a = new XdrInfo*[4];
- a[0] = in0;
- a[1] = in1;
- a[2] = in2;
- init (req, 3, -1, out, a, t);
-}
-
-RpcRequest::RpcRequest(u_long req, const XdrInfo* out, const XdrInfo* in0,
- const XdrInfo* in1, const XdrInfo* in2,
- const XdrInfo* in3, int t)
-{
- const XdrInfo** a = new XdrInfo*[5];
- a[0] = in0;
- a[1] = in1;
- a[2] = in2;
- a[3] = in3;
- init (req, 4, -1, out, a, t);
-}
-
-RpcRequest::RpcRequest(u_long req, const XdrInfo* out, const XdrInfo* in0,
- const XdrInfo* in1, const XdrInfo* in2,
- const XdrInfo* in3, const XdrInfo* in4, int t)
-{
- const XdrInfo** a = new XdrInfo*[6];
- a[0] = in0;
- a[1] = in1;
- a[2] = in2;
- a[3] = in3;
- a[4] = in4;
- init (req, 5, -1, out, a, t);
-}
-
-RpcRequest::RpcRequest(u_long req, const XdrInfo* out, const XdrInfo* in0,
- const XdrInfo* in1, const XdrInfo* in2,
- const XdrInfo* in3, const XdrInfo* in4,
- const XdrInfo* in5, int t)
-{
- const XdrInfo** a = new XdrInfo*[7];
- a[0] = in0;
- a[1] = in1;
- a[2] = in2;
- a[3] = in3;
- a[4] = in4;
- a[5] = in5;
- init (req, 6, -1, out, a, t);
-}
-
-RpcRequest::RpcRequest(u_long req, const XdrInfo* out, const XdrInfo* in0,
- const XdrInfo* in1, const XdrInfo* in2,
- const XdrInfo* in3, const XdrInfo* in4,
- const XdrInfo* in5, const XdrInfo *in6, int t)
-{
- const XdrInfo** a = new XdrInfo*[8];
- a[0] = in0;
- a[1] = in1;
- a[2] = in2;
- a[3] = in3;
- a[4] = in4;
- a[5] = in5;
- a[6] = in6;
- init (req, 7, -1, out, a, t);
-}
-
-RpcRequest::RpcRequest(u_long req, const XdrInfo* out, const XdrInfo** ins,
- int t)
-{
- int pars = 0;
- for (XdrInfo** p = ins; *p; p++)
- pars += 1;
- const XdrInfo** a = new XdrInfo* [pars + 1];
- memcpy (a, ins, (pars + 1) * sizeof (XdrInfo*));
- init (req, pars, -1, out, a, t);
-}
-
-int RpcRequest::ParamSize ()
-{
- if (parmsz < 0) // not yet calculated
- {
- parmsz = 0;
- for (XdrInfo** ip = ininfo; *ip; ip++)
- parmsz += (*ip)->Size ();
- }
- return parmsz;
-}
diff --git a/rpc++/rpc++.cp b/rpc++/rpc++.cp
deleted file mode 100644
index 38f1a39ff2d..00000000000
--- a/rpc++/rpc++.cp
+++ /dev/null
@@ -1,13 +0,0 @@
-\entry {Overview}{1}{Overview}
-\entry {Installation}{2}{Installation}
-\entry {XdrInfo}{3}{\code {XdrInfo}}
-\entry {RpcRequest}{5}{\code {RpcRequest}}
-\entry {Callbacks}{7}{Callbacks}
-\entry {RpcCallback}{7}{\code {RpcCallback}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {calling conventions}{10}{\code {calling conventions}}
-\entry {RpcService}{12}{\code {RpcService}}
-\entry {RpcStub}{16}{\code {RpcStub}}
-\entry {Caveats}{19}{Caveats}
-\entry {Global objects}{19}{Global objects}
-\entry {Destruction rules}{19}{Destruction rules}
diff --git a/rpc++/rpc++.fn b/rpc++/rpc++.fn
deleted file mode 100644
index 562055e0c07..00000000000
--- a/rpc++/rpc++.fn
+++ /dev/null
@@ -1,63 +0,0 @@
-\entry {XdrInfo}{3}{\code {XdrInfo}}
-\entry {Proc}{3}{\code {Proc}}
-\entry {Size}{3}{\code {Size}}
-\entry {RpcRequest}{5}{\code {RpcRequest}}
-\entry {RpcRequest}{5}{\code {RpcRequest}}
-\entry {RpcRequest}{5}{\code {RpcRequest}}
-\entry {RpcRequest}{5}{\code {RpcRequest}}
-\entry {RpcCallback}{7}{\code {RpcCallback}}
-\entry {RpcCallback}{7}{\code {RpcCallback}}
-\entry {RpcCallback}{7}{\code {RpcCallback}}
-\entry {RpcCallback}{7}{\code {RpcCallback}}
-\entry {RpcCallback}{7}{\code {RpcCallback}}
-\entry {RpcCallback}{7}{\code {RpcCallback}}
-\entry {RpcCallback}{8}{\code {RpcCallback}}
-\entry {RpcCallback}{8}{\code {RpcCallback}}
-\entry {RpcCallback}{8}{\code {RpcCallback}}
-\entry {RpcCallback}{8}{\code {RpcCallback}}
-\entry {RpcCallback}{8}{\code {RpcCallback}}
-\entry {RpcCallback}{8}{\code {RpcCallback}}
-\entry {RpcCallback}{8}{\code {RpcCallback}}
-\entry {RpcCallback}{8}{\code {RpcCallback}}
-\entry {RpcCallback}{8}{\code {RpcCallback}}
-\entry {RpcCallback}{8}{\code {RpcCallback}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{10}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{10}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{10}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{10}{\code {RpcMethodCall}}
-\entry {RpcMethodCall}{10}{\code {RpcMethodCall}}
-\entry {RpcService}{12}{\code {RpcService}}
-\entry {RpcService}{12}{\code {RpcService}}
-\entry {OK}{12}{\code {OK}}
-\entry {Program}{12}{\code {Program}}
-\entry {Register}{12}{\code {Register}}
-\entry {Provide}{13}{\code {Provide}}
-\entry {HandleError}{13}{\code {HandleError}}
-\entry {Caller}{15}{\code {Caller}}
-\entry {CallerName}{15}{\code {CallerName}}
-\entry {Reply}{15}{\code {Reply}}
-\entry {Reply}{15}{\code {Reply}}
-\entry {Interrupt}{15}{\code {Interrupt}}
-\entry {RpcStub}{16}{\code {RpcStub}}
-\entry {RpcStub}{16}{\code {RpcStub}}
-\entry {Reconnect}{16}{\code {Reconnect}}
-\entry {OK}{16}{\code {OK}}
-\entry {Service}{16}{\code {Service}}
-\entry {GetTimeout}{16}{\code {GetTimeout}}
-\entry {SetTimeout}{17}{\code {SetTimeout}}
-\entry {Call}{17}{\code {Call}}
-\entry {Call}{17}{\code {Call}}
-\entry {Call}{17}{\code {Call}}
-\entry {Call}{17}{\code {Call}}
-\entry {HandleError}{17}{\code {HandleError}}
diff --git a/rpc++/rpc++.ky b/rpc++/rpc++.ky
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/rpc++/rpc++.ky
+++ /dev/null
diff --git a/rpc++/rpc++.pg b/rpc++/rpc++.pg
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/rpc++/rpc++.pg
+++ /dev/null
diff --git a/rpc++/rpc++.texi b/rpc++/rpc++.texi
deleted file mode 100644
index 71ed33017b7..00000000000
--- a/rpc++/rpc++.texi
+++ /dev/null
@@ -1,1519 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@tex
-% They are redefined in texinfo, but I need them
-\gdef\`#1{{\accent18 #1}}
-\gdef\'#1{{\accent19 #1}}
-\gdef\[{{[}}
-\gdef\]{{]}}
-@end tex
-@comment %**start of header (This is for running Texinfo on a region.)
-@setfilename rpc++.info
-@settitle A C++ Interface to Remote Procedure Calls
-@setchapternewpage on
-@comment %**end of header (This is for running Texinfo on a region.)
-
-@c You'll have to define the following additional texinfo-formats to
-@c run texinfo on this file.
-@c
-@c (put '\& 'texinfo-format 'texinfo-format-\&)
-@c (defun texinfo-format-\& ()
-@c (texinfo-discard-command)
-@c (insert "&"))
-@c
-@c (put '\[ 'texinfo-format 'texinfo-format-\[)
-@c (defun texinfo-format-\[ ()
-@c (texinfo-discard-command)
-@c (insert "["))
-@c
-@c (put '\] 'texinfo-format 'texinfo-format-\])
-@c (defun texinfo-format-\] ()
-@c (texinfo-discard-command)
-@c (insert "]"))
-
-@ifinfo
-This file documents a C++ interface to Sun remote procedure calls.
-
-Copyright @copyright{} 1992 Michael N. Lipp
-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 Library 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 Library General Public License'' and
-this permission notice may be included in translations approved by the
-Free Software Foundation instead of in the original English.
-@end ifinfo
-
-@titlepage
-
-@title A C++ Interface
-@title to Sun Remote Procedure Calls
-@sp 1
-@subtitle @authorfont{by Michael N. Lipp}
-@sp 20
-@subtitle{for version 2.2}
-@subtitle{Technische Hochschule Darmstadt, Institut f@"ur Datentechnik}
-
-@comment The following two commands start the copyright page.
-@page
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1992 Michael N. Lipp
-
-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 Library 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 Library General Public License'' may be
-included in a translation approved by the author instead of in the original
-English.
-@end titlepage
-
-@node Top, Overview, (dir), (dir)
-
-@menu
-* Overview:: Overview
-* Installation:: Installation
-* Classes:: The Classes
-* Caveats:: Caveats
-* References:: References
-* Copying:: GNU LIBRARY GENERAL PUBLIC LICENSE
-* Data Type Index:: Data Type Index
-* Function Index:: Function and Method Index
-* Concept Index:: Concept Index
-
- --- The Detailed Node Listing ---
-
-The classes
-
-* XdrInfo:: @code{XdrInfo}
-* RpcRequest:: @code{RpcRequest}
-* Callbacks:: @code{Callbacks}
-* RpcService:: @code{RpcService}
-* RpcStub:: @code{RpcStub}
-
-Callbacks
-
-* RpcCallback:: @code{RpcCallback}
-* RpcMethodCall:: @code{RpcMethodCall}
-* Calling Conventions:: @code{Calling Conventions}
-
-Caveats
-
-* Global objects:: Global objects
-* Destruction rules:: Destruction rules
-* Matching server and clients:: Matching server and clients
-@end menu
-
-@node Overview, Installation, Top, Top
-@comment node-name, next, previous, up
-@chapter Overview
-@cindex Overview
-
-This document describes my C++ interface to Sun Remote Procedure Calls.
-It is based on sources from Peter Bersen that I got from some newsgroup,
-though I don't remember which one. I liked the basic idea but disliked
-several aspects of the interface details. So I adapted it to my likes. I
-intended some minor changes but soon found myself renaming classes,
-changing method parameters, introducing new classes, etc. The result is
-by no way compatible with the original version. It is, I hope,
-nevertheless useful.
-
-Basically, the interface defines six class: @code{XdrInfo},
-@code{RpcRequest}, @code{RpcCallback}/@code{RpcMethodCall},
-@code{RpcService} and @code{RpcStub}.
-
-@code{XdrInfo} objects describe the external data representation of a
-type. There are predefined @code{XdrInfo}s for the basic types.
-@code{RpcRequest} objects describe the available procedure calls. They
-are constructed from a unique request number, the @code{XdrInfo}s of the
-procedure's arguments and its return type. @code{RpcCallback} is an
-object that holds a pointer to a function and information about the
-number of its arguments. @code{RpcMethodCall} is a template that in a
-similar way holds a pointer to an object and one of its methods and
-Information about the number of its arguments.
-
-An @code{RpcRequest} and its matching @code{RpcCallback} or
-@code{RpcMethodCall} may be registered with an @code{RpcService}.
-Exactly one object of type @code{RpcService} may be instantiated in a
-program that implements an RPC server. Method @code{Provide ()} is a
-loop that waits for requests and dispatches them.
-
-A client program instantiates an object of type @code{RpcStub}. The
-constructor establishes a connection to the server specified by its
-arguments. Procedures of the server may be invoked using method
-@code{Call (@dots{})}.
-
-@node Installation, Classes, Overview, Top
-@comment node-name, next, previous, up
-@chapter Installation
-@cindex Installation
-
-The rpc++ library has successfully been tested using a patched gcc-2.2.2
-on a SparcStation running SunOS 4.1.[12] and a 386 system running
-Interactive Unix (a SYSV 3.2). Patching gcc-2.2.2 was necessary because
-the unpatched version can't handle typedefs that are local to templates.
-The bug report with patches can be found in the source directory in file
-@code{gcc-2.2.2.fix}.
-
-As a prerequisite to using RPCs with C++ you need ANSI-C/C++ conformant
-header files for RPC. I have provided such files in the directory
-@code{StdHdrs/rpc} of the source tree. To avoid any copyright conflicts,
-they are derived from the public available RPC source code rather than
-from the files that come with SunOS 4.1.X. The differences are minor.
-The SunOS 4.1.X files define some additional functions. You have to
-either copy the files from @code{StdHdrs/rpc} or patched files from your
-@code{/usr/include/rpc} to a directory where gcc can find them. If you
-don't want to install them globally in gcc's include directory, you can
-include them by using an additional ``@code{-I}'' flag during
-compilation.
-
-In SunOS you can simply type `@code{make install INSTROOT=@dots{}}'
-which will make the library and install it in @code{INSTROOT/lib} and
-the header files in @code{INSTROOT/include/rpc++}. Other Unices will
-probably have problems with the `install' command. Type only `make' and
-copy the resulting @code{librpc++.a} to your local library directory and
-the files @code{rpc++/*} to an @code{rpc++}-subdirectory of your local
-include directory.
-
-@node Classes, Caveats, Installation, Top
-@comment node-name, next, previous, up
-@chapter The classes
-
-@menu
-* XdrInfo:: @code{XdrInfo}
-* RpcRequest:: @code{RpcRequest}
-* Callbacks:: @code{Callbacks}
-* RpcService:: @code{RpcService}
-* RpcStub:: @code{RpcStub}
-@end menu
-
-@node XdrInfo, RpcRequest, , Classes
-@comment node-name, next, previous, up
-@section @code{XdrInfo}
-@cindex @code{XdrInfo}
-
-Declared in: @code{"rpc++/xdr++.h"}
-
-@deftp Class XdrInfo
-Class XdrInfo describes serializers. It combines the xdrproc_t with the
-size info (the size of the data to be converted) usually needed if you
-want to apply a serializer.
-@end deftp
-
-There is only one constructor for @code{XdrInfo}:
-
-@deftypefn Constructor {} XdrInfo (xdrproc_t @var{t}, size_t @var{s})
-Construct an @code{XdrInfo} for a type. The type can be converted to an
-external data representation (serielized) with function @var{t}. Its
-size (in bytes, from @code{sizeof (type)}), is @var{s}.
-@end deftypefn
-
-The methods query the information given to the constructor:
-
-@deftypefn Method xdrproc_t Proc () const
-Return the conversion function stored in an @code{XdrInfo}.
-@end deftypefn
-
-@deftypefn Method size_t Size () const
-Return the size of the type described by the @code{XdrInfo}.
-@end deftypefn
-
-There are a number of predefined @code{XdrInfo}s. They are defined as
-static members of a class @code{Xdr} for scoping reasons.
-
-@defvr XdrInfo Xdr::Xchar
-The conversion and size information for a character.
-@end defvr
-
-@defvr XdrInfo Xdr::Xshort
-The conversion and size information for a short integer.
-@end defvr
-
-@defvr XdrInfo Xdr::Xint
-The conversion and size information for an integer.
-@end defvr
-
-@defvr XdrInfo Xdr::Xlong
-The conversion and size information for a long integer.
-@end defvr
-
-@defvr XdrInfo Xdr::Xuchar
-The conversion and size information for an unsigned character.
-@end defvr
-
-@defvr XdrInfo Xdr::Xushort
-The conversion and size information for an unsigned short integer.
-@end defvr
-
-@defvr XdrInfo Xdr::Xulong
-The conversion and size information for an unsigned long integer.
-@end defvr
-
-@defvr XdrInfo Xdr::Xfloat
-The conversion and size information for a float.
-@end defvr
-
-@defvr XdrInfo Xdr::Xdouble
-The conversion and size information for a double.
-@end defvr
-
-@defvr XdrInfo Xdr::Xenum_t
-The conversion and size information for any enumeration type.
-@end defvr
-
-@defvr XdrInfo Xdr::Xbool_t
-The conversion and size information for a bool.
-@end defvr
-
-@defvr XdrInfo Xdr::Xvoid
-A special @code{XdrInfo} for the return type of a procedure that returns
-nothing.
-@end defvr
-
-@defvr XdrInfo Xdr::Xnull
-A special @code{XdrInfo} for the return type of a procedure that is to
-be executed batched or asynchronously (@pxref{RpcRequest}).
-@end defvr
-
-@page
-@node RpcRequest, Callbacks, XdrInfo, Classes
-@comment node-name, next, previous, up
-@section @code{RpcRequest}
-@cindex @code{RpcRequest}
-
-Declared in: @code{"rpc++/request.h"}
-
-@deftp Class RpcRequest
-RpcRequest is a class that specifies a request for a procedure that is
-part of (registered with) a service.
-@end deftp
-
-There are several constructors for @code{RpcRequest}. They vary in the
-number of @code{XdrInfo}s used to describe the input parameters of the
-procedure.
-
-@deftypefn Constructor {} RpcRequest (u_long @var{reqid}, const XdrInfo* @var{out}, ReqType @var{t}=normal)
-@end deftypefn
-@deftypefn Constructor {} RpcRequest (u_long @var{reqid}, const XdrInfo* @var{out}, const XdrInfo* @var{in1}, ReqType @var{t}=normal)
-@end deftypefn
-@deftypefn Constructor {} RpcRequest (u_long @var{reqid}, const XdrInfo* @var{out}, const XdrInfo* @var{in1}, const XdrInfo* @var{in2}, ReqType @var{t}=normal)
-These constructors construct an @code{RpcRequest} for a procedure with
-zero, one or two arguments. Additional similar constructors are defined
-for procedures with up to seven arguments. @var{reqid} uniquely
-identifies the request (the procedure of the server). @var{reqid} may
-not be 0. The @code{XdrInfo*}s following @var{reqid} specify the types of
-the input parameters. They are followed by the @code{XdrInfo*} that
-describes the type of the value returned by the RPC. If no value is
-returned, @code{&Xdr::Xvoid} must be given as argument
-(@pxref{XdrInfo}). The final optional argument @var{t} specifies the
-call mode: @code{RpcRequest::normal}, @code{RpcRequest::batched} or
-@code{RpcRequest::async} (see below).
-@end deftypefn
-
-@deftypefn Constructor {} RpcRequest (u_long @var{reqid}, const XdrInfo* @var{out}, const XdrInfo** @var{intypes}, ReqType @var{t}=normal)
-This constructor can be used to construct an @code{RpcRequest} with an
-arbitrary number of arguments. The pointers to @code{XdrInfo} are passed
-in an array. The number of elements in the array must be one more than
-the number of parameters and the last element must be zero.
-@end deftypefn
-
-If the request type @var{t} is @code{RpcRequest::normal}, method
-@code{Call} (@pxref{RpcStub}) assembles the message to the server, sends
-it, waits for a reply and returns the result.
-
-If the request type is @code{RpcRequest::batched}, method
-@code{RpcStub::Call} assembles the message to the server and puts it in
-a buffer. Messages are only flushed if the buffer is full or
-@code{RpcStub::Call} is used with a @code{normal} or @code{async}
-request.
-
-If the request type is @code{RpcRequest::async}, method
-@code{RpcStub::Call} (@pxref{RpcStub}) assembles the message to the
-server and sends it, as with @code{normal}. It does, however, not wait
-for a result. Mode @code{async} is implemented by calling the underlying
-RPC--function @code{clnt_call} with a timeout of zero.
-
-As in both non--normal cases (@code{batched} and @code{async})
-@code{RpcStub::Call} does not wait for a return value from the server,
-the return type of the @code{RpcRequest} must be specified as
-@code{&Xdr::Xnull}.
-
-Note that requests that are registered for a service are stored in an
-array using the request identification as the index, so keep ids small.
-
-Normally, requests should be specified in a header file included by both
-the server and the client program (@pxref{Matching server and clients}).
-
-@page
-@node Callbacks, RpcService, RpcRequest, Classes
-@comment node-name, next, previous, up
-@section Callbacks
-@cindex Callbacks
-
-If a server receives a request from a client, it needs to know how a
-particular procedure is to be invoked. This information is specified
-using objects @code{RpcCallback} or @code{RpcMethodCall} when the
-procedure resp.@ method is specified.
-
-The class
-@deftp Class AnyRpcCallback
-@end deftp
-serves as an abstract base class for the two kinds of callbacks.
-
-The following sections describe the constructors for @code{RpcCallback}
-and @code{RpcMethodCall} and the calling conventions for the functions
-or methods called back.
-
-@menu
-* RpcCallback:: @code{RpcCallback}
-* RpcMethodCall:: @code{RpcMethodCall}
-* Calling Conventions:: @code{Calling Conventions}
-@end menu
-
-@node RpcCallback, RpcMethodCall, , Callbacks
-@comment node-name, next, previous, up
-@subsection @code{RpcCallback}
-@cindex @code{RpcCallback}
-
-Declared in: @code{"rpc++/callback.h"}
-
-@deftp Class RpcCallback
-An @code{RpcCallback} describes a function that is to be called by the
-server on request from the client.
-@end deftp
-
-@deftypefn Constructor {} RpcCallback (void* (*)() @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void* (*)(void*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void* (*)(void*, void*) @var{proc})
-Construct an @code{RpcCallback} for a function that takes zero, one or
-two arguments and returns a result. Constructors for functions with
-up to seven arguments are defined.
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void* (*)(void**) @var{proc})
-Construct an @code{RpcCallback} for a function that takes an arbitrary
-number of arguments and returns a result.
-@end deftypefn
-
-@deftypefn Constructor {} RpcCallback (void (*)() @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void (*)(void*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void (*)(void*, void*) @var{proc})
-Construct an @code{RpcCallback} for a function that takes zero, one or
-two arguments and returns no result. Constructors for functions with
-up to seven arguments are defined.
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void (*)(void**) @var{proc})
-Construct an @code{RpcCallback} for a function that takes an arbitrary
-number of arguments and return no result.
-@end deftypefn
-
-@deftypefn Constructor {} RpcCallback (void* (*)(RpcService*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void* (*)(void*, RpcService*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void* (*)(void*, void*, RpcService*) @var{proc})
-Construct an @code{RpcCallback} for a function that takes zero, one or
-two arguments and returns a result. Constructors for functions with
-up to seven arguments are defined. Upon invocation, a pointer to the
-object of type @code{RpcService} that received the request and called
-the function is passed as an additional argument.
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void* (*)(void**) @var{proc})
-Construct an @code{RpcCallback} for a function that takes an arbitrary
-number of arguments and returns a result. Upon invocation, a pointer to the
-object of type @code{RpcService} that received the request and called
-the function is passed as an additional argument.
-@end deftypefn
-
-@deftypefn Constructor {} RpcCallback (void (*)(RpcService*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void (*)(void*, RpcService*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void (*)(void*, void*, RpcService*) @var{proc})
-Construct an @code{RpcCallback} for a function that takes zero, one or
-two arguments and returns a result. Constructors for functions with
-up to seven arguments are defined. Upon invocation, a pointer to the
-object of type @code{RpcService} that received the request and called
-the function is passed as an additional argument.
-@end deftypefn
-@deftypefn Constructor {} RpcCallback (void (*)(void**) @var{proc})
-Construct an @code{RpcCallback} for a function that takes an arbitrary
-number of arguments and returns a result. Upon invocation, a pointer to the
-object of type @code{RpcService} that received the request and called
-the function is passed as an additional argument.
-@end deftypefn
-
-@node RpcMethodCall, Calling Conventions, RpcCallback, Callbacks
-@comment node-name, next, previous, up
-@subsection @code{RpcMethodCall}
-@cindex @code{RpcMethodCall}
-
-Declared in: @code{"rpc++/callback.h"}
-
-@deftp Class RpcMethodCall
-An @code{RpcMethodCall} describes a method of an object that is to be
-called by the server on request from the client.
-@end deftp
-
-@deftypefn Constructor {} RpcMethodCall <class T> (void* (T::*)() @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void* (T::*)(void*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void* (T::*)(void*, void*) @var{proc})
-Construct an @code{RpcMethodCall} for an object and one of its methods that
-takes zero, one or two arguments and returns a result. Constructors for
-methods with up to seven arguments are defined.
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void* (T::*)(void**) @var{proc})
-Construct an @code{RpcMethodCall} for an object and one of its methods
-that takes an arbitrary number of arguments and returns a result.
-@end deftypefn
-
-@deftypefn Constructor {} RpcMethodCall <class T> (void (T::*)() @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void (T::*)(void*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void (T::*)(void*, void*) @var{proc})
-Construct an @code{RpcMethodCall} for an object and one of its methods
-that takes zero, one or two arguments and returns no result.
-Constructors for methods with up to seven arguments are defined.
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void (T::*)(void**) @var{proc})
-Construct an @code{RpcMethodCall} for an object and one of its methods
-that takes an arbitrary number of arguments and return no result.
-@end deftypefn
-
-@deftypefn Constructor {} RpcMethodCall <class T> (void* (T::*)(RpcService*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void* (T::*)(void*, RpcService*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void* (T::*)(void*, void*, RpcService*) @var{proc})
-Construct an @code{RpcMethodCall} for an object and one of its methods
-that takes zero, one or two arguments and returns a result. Constructors
-for methods with up to seven arguments are defined. Upon invocation, a
-pointer to the object of type @code{RpcService} that received the
-request and called the method is passed as an additional argument.
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void* (T::*)(void**) @var{proc})
-Construct an @code{RpcMethodCall} for an object and one of its methods
-that takes an arbitrary number of arguments and returns a result. Upon
-invocation, a pointer to the object of type @code{RpcService} that
-received the request and called the method is passed as an additional
-argument.
-@end deftypefn
-
-@deftypefn Constructor {} RpcMethodCall <class T> (void (T::*)(RpcService*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void (T::*)(void*, RpcService*) @var{proc})
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void (T::*)(void*, void*, RpcService*) @var{proc})
-Construct an @code{RpcMethodCall} for an object and one of its methods
-that takes zero, one or two arguments and returns a result. Constructors
-for methods with up to seven arguments are defined. Upon invocation, a
-pointer to the object of type @code{RpcService} that received the
-request and called the method is passed as an additional argument.
-@end deftypefn
-@deftypefn Constructor {} RpcMethodCall <class T> (void (T::*)(void**) @var{proc})
-Construct an @code{RpcMethodCall} for an object and one of its methods
-that takes an arbitrary number of arguments and returns a result. Upon
-invocation, a pointer to the object of type @code{RpcService} that
-received the request and called the method is passed as an additional
-argument.
-@end deftypefn
-
-@node Calling Conventions, , RpcMethodCall, Callbacks
-@comment node-name, next, previous, up
-@subsection @code{Calling Conventions}
-@cindex @code{calling conventions}
-
-As could be seen from the parameter types in the constructors, functions
-and methods that are called in response to a request from a client know
-only about pointers to void as arguments and result values because their
-real type is coded in the @code{RpcRequest} and not known at compile
-time. The only way to avoid this is to implement some kind of rpcgen++.
-However, I never liked this kind of tools and I'm willing to risk a bit
-of type unsafeness in this case.
-
-When a procedure (or method) is called, its arguments point to values
-(the variants with an arbitrary number of arguments receive an array of
-pointers to values) of the types specified in the constructor of the
-@code{RpcRequest} that led to the invocation of the procedure. I
-recommend to access the values and assign them to local variables of the
-procedure in the first statements. E.g.:
-@example
-void* Add (void* s1p, void* s2p)
-@{
- int s1 = *(int*)s1p;
- int s2 = *(int*)s2p;
- ...
-@end example
-
-The return value of the procedure is a pointer to the result. Therefore,
-results may never be put in automatic variables. They must be global or
-static. E.g.:
-@example
- ...
- static int sum;
- sum = s1 + s2;
- return (void*)&sum;
-@}
-@end example
-
-Note the special case of strings (defined as parameters or return values
-using @code{Xdr::Xwrapstring}, @pxref{XdrInfo}). If you think of a
-string as being defined as a type ``@code{typedef char* string}'', it is
-obvious that a string is passed as argument or returned as result by a
-@code{string*}, i.e., a @code{char**}. E.g.:
-@example
-void* Capitalize (void* strp)
-@{
- static char* str;
- str = *(char**)strp;
- str[0] = toupper (str[0]);
- return (void*)&str;
-@}
-@end example
-
-@page
-@node RpcService, RpcStub, Callbacks, Classes
-@comment node-name, next, previous, up
-@section @code{RpcService}
-@cindex @code{RpcService}
-
-Declared in: @code{"rpc++/service.h"}
-
-@deftp Class RpcService
-An object of type @code{RpcService} provides the server capabilities
-within a program.
-@end deftp
-
-There are two constructors for @code{RpcService}:
-
-@deftypefn Constructor {} RpcService (u_long @var{prog}, u_long @var{vers})
-Construct an object representing the @var{vers}'th version of program
-(service) number @code{prog}.
-@end deftypefn
-@deftypefn Constructor {} RpcService (u_long @var{vers})
-Construct an object representing the @var{vers}'th version of a transient
-program (service).
-@end deftypefn
-
-@deftypefn Method bool OK ()
-Returns TRUE if the service is ready for operation, i.e., has successfully
-been established during construction.
-@end deftypefn
-
-The number of a service, especially a transient service, can be obtained
-with method @code{@w{Program ()}}:
-
-@deftypefn Method u_long Program ()
-Returns the number of the program (service). This is either the number
-passed as an argument to the constructor or a number from the transient
-program area.
-@end deftypefn
-
-The next step after the construction of an @code{RpcService} is to
-register the requests handled by the service:
-
-@deftypefn Method {virtual void} Register (const RpcRequest& @var{req}, const AnyRpcCallback& @var{cb})
-Associate request @var{req} with the procedure or object/method pair
-specified by @code{cb}. The usual way to call @code{Register} is
-@example
-@{
- RpcService svc (...);
- svc.register (addreq, RpcCallback (Add));
- ...
-@}
-@end example
-@end deftypefn
-
-After all requests have been registered, the object of type
-@code{RpcService} can provide the service:
-@deftypefn Method void Provide ()
-Repeatedly wait for a request and handle it by calling the procedure or
-method registered for it.
-@end deftypefn
-
-@deftypefn Method {virtual void*} HandleError ()
-@code{HandleError} is a protected method that is called when an error
-occurs. The cause of the error is stored in a protected member variable
-@code{errorState}. If the default error handling (shown below) is not
-appropriate for your application, derive your own class from
-@code{RpcService} that implements a different error handling policy. If
-you consider an error recoverable, reset @code{errorState} to
-@code{RpcService::noError} in your error handler. Else, @code{OK ()}
-keeps returning FALSE.
-@example
-void RpcService::HandleError ()
-@{
- switch (errorState)
- @{
- case reconstructionAttempt:
- cerr << "rpc++: Attempt to construct another instance of RpcService.\n";
- exit (1);
- case cantCreateTCPService:
- cerr << "rpc++: can't create tcp service.\n";
- exit(1);
- case cantRegisterService:
- cerr << form ("rpc++: can't register (%d, %d, tcp).", prog, vers);
- exit(1);
- case cantSendReply:
- cerr << "rpc++: can't reply to RPC call.\n";
- break;
- case invalidResult:
- cerr << "rpc++: registered routine has return NULL pointer.\n";
- abort ();
- case notRegistered:
- cerr << "rpc++: requested RPC routine not registered.\n";
- break;
- case cantGetArgs:
- cerr << "rpc++: can't get procedure arguments.\n";
- break;
- case cantFreeArgs:
- cerr << "rpc++: can't free XDR arguments.\n";
- break;
- @}
- errorState = noError;
-@}
-@end example
-@end deftypefn
-
-If the program that provides the service has other things to do as well,
-i.e., does not only handle requests, it usually has its own main loop
-that handles events. This loop must be extended to handle RPC events,
-i.e., if anything happens on the RPC file descriptors, it must call
-@code{svc_getreqset} just as @code{Provide ()} does.
-@example
-void RpcService::Provide ()
-@{
- int dtbsz = getdtablesize();
- fd_set readfds;
-
- for(;;)
- @{
- readfds = svc_fdset;
- switch(select (dtbsz, &readfds, 0, 0, 0))
- @{
- case -1:
- if (errno != EBADF)
- continue;
- cerr << "PRC++: select: " << sys_errlist[errno] << '\n';
- return;
- break;
- case 0:
- continue;
- default:
- svc_getreqset (&readfds);
- break;
- @}
- @}
-@}
-@end example
-
-The following methods are only available during the execution of a
-callback, i.e., they can be applied to @code{RpcService} if a pointer to
-the invoking object has been declared as last parameter of a callback
-routine.
-
-@deftypefn Method {struct sockaddr_in*} Caller ()
-Return the socket address information of the calling host.
-@end deftypefn
-
-@deftypefn Method char* CallerName ()
-Return the name of the calling host.
-@end deftypefn
-
-@deftypefn Method void Reply ()
-@end deftypefn
-@deftypefn Method void Reply (void* @var{res})
-Normally, a request to the server terminates when the callback completes
-(either with or without returning a value, depending on the return
-type). In some cases it is desirable to reply to the client before all
-the actions related to the request have been completed. This allows the
-client to resume execution. The result (if any) must of course not
-depend on the functions still to be executed.
-@end deftypefn
-
-@deftypefn Method void Interrupt ()
-This is the proper way to terminate the loop entered by calling
-@code{Provide()}. After return from the callback that invoked
-@code{Interrupt()} method @code{Provide()} will return.
-@end deftypefn
-
-@page
-@node RpcStub, , RpcService, Classes
-@comment node-name, next, previous, up
-@section @code{RpcStub}
-@cindex @code{RpcStub}
-
-Declared in: @code{"rpc++/stub.h"}
-
-@deftp Class RpcStub
-An @code{RpcStub} represents the client side of a connection.
-@end deftp
-
-There are two constructors for @code{RpcStub} that vary in the position
-of their arguments only:
-
-@deftypefn Constructor {} RpcStub (u_long @code{prognum}, u_long @code{versnum}, char* @var{hostname}="localhost", timeval @var{timeout}=defaultTimeout, bool @var{connect}=TRUE)
-@end deftypefn
-@deftypefn Constructor {} RpcStub (u_long @code{prognum}, u_long @code{versnum}, char* @var{hostname}="localhost", bool @var{connect}=TRUE, timeval @var{timeout}=defaultTimeout)
-Construct an @code{RpcStub} that connects to the @var{versnum}'th
-version of program (service) @var{prognum} on host @var{hostname}. The
-timeout for successful completion of communication operations is
-@var{timeout} which defaults to 25 seconds. Unless @var{connect} is
-false, the constructor makes a connection attempt.
-@end deftypefn
-
-There are various methods:
-
-@deftypefn Method void Reconnect ()
-Connect to the server. Usually this method is called if the connection
-was not to be established by the constructor or if the connection
-attempt failed and is to be repeated.
-@end deftypefn
-
-@deftypefn Method bool OK ()
-Returns TRUE if the stub is ready for operation, i.e., connected to a
-server.
-@end deftypefn
-
-@deftypefn Method CLIENT* Service ()
-Access to the standard RPC level. Returns the handle that identifies the
-server.
-@end deftypefn
-
-@deftypefn Method timeval GetTimeout () const
-Returns the default timeout for network operations.
-@end deftypefn
-
-@deftypefn Method void SetTimeout (timeval& @var{timo})
-Sets the default timeout for network operations
-@end deftypefn
-
-@deftypefn Method void* Call (RpcRequest& @var{req}, bool @var{handle_errors}=TRUE)
-@end deftypefn
-@deftypefn Method void* Call (RpcRequest& @var{req}, void* @var{in1}, bool @var{handle_errors}=TRUE)
-@end deftypefn
-@deftypefn Method void* Call (RpcRequest& @var{req}, void* @var{in1}, @var{in2} bool @var{handle_errors}=TRUE)
-Request the operation specified by @var{req} from the server, passing
-zero, one or two arguments. There are declarations of this method for up
-two seven arguments. Arguments are passed as pointers to the argument
-values. The value returned by @code{Call} is a pointer to the result
-returned by the server. The result is valid until @code{Call} is called
-again. If @var{handle_errors} is FALSE and an error occurs, @code{Call}
-simply returns 0. Else, it calls method @code{HandleError} (see below).
-@end deftypefn
-@deftypefn Method void* Call (RpcRequest& @var{req}, void** @var{invals}, bool @var{handle_errors}=TRUE)
-The variant of @code{Call} that handles an arbitrary number of
-arguments. Pointers to the arguments are passed in an array in
-parameter @var{invals}. The size of the array must match the number of
-arguments given to the constructor of @var{req}.
-@end deftypefn
-
-@deftypefn Method {virtual void*} HandleError ()
-@code{HandleError} is a protected method that is called when an error
-occurs. The cause of the error is stored in a protected member variable
-@code{errorState}. If the default error handling policy (shown below) is
-not appropriate for your application, derive your own class from
-@code{RpcStub} that implements a different one. If you consider an error
-recoverable, reset @code{errorState} to @code{RpcStub::noError} in your
-error handler. Else, @code{OK ()} keeps returning FALSE. If an error
-occurs during a @code{Call} and parameter @var{handle_errors} is TRUE,
-@code{Call} invokes @code{HandleError} and returns its result as result
-of the call.
-@example
-void* RpcStub::HandleError ()
-@{
- switch (errorState)
- @{
- case notConnected:
- cerr << "rpc++: Stub has not been connected to server.\n";
- case cantCreate:
- cerr << clnt_spcreateerror ("rpc++") << '\n';
- break;
- case cantCall:
- cerr << clnt_sperror (svc, "rpc++") << '\n';
- exit (1);
- @}
- return 0;
-@}
-@end example
-@end deftypefn
-
-While no or little improvement of coding quality can be gained from
-deriving a service specific class from @code{RpcService}, the opposite
-is true for @code{RpcStub}. A service specific derivation may define
-methods that have the ``real'' argument lists instead of pointers to
-void. These methods are simply implemented by casting the arguments and
-(inline) calling one of the @code{Call}--methods. Apart from better
-type checking, this has the advantage of keeping details like the
-available @code{RpcRequest}s local to the definition of the derived
-class (see the example in the @code{example}--directory).
-
-@node Caveats, References, Classes, Top
-@comment node-name, next, previous, up
-@chapter Caveats
-@cindex Caveats
-
-@menu
-* Global objects:: Global objects
-* Destruction rules:: Destruction rules
-* Matching server and clients:: Matching server and clients
-@end menu
-
-@node Global objects, Destruction rules, , Caveats
-@comment node-name, next, previous, up
-@section Global objects
-@cindex Global objects
-
-As a general C++ rule, be careful with global objects. The sequence of
-constructor invocations for global objects is not defined. This is the
-reason, why @code{RpcRequests} are constructed from pointers to
-@code{XdrInfo}s rather than from @code{XdrInfo}s.
-
-Both @code{XdrInfo}s and @code{RpcRequest}s tend to be instantiated as
-global objects or static member variables. If the constructor of
-@code{RpcRequest} received @code{XdrInfo}s instead of pointers and
-copied the information contained in the @code{XdrInfo} (the solution I
-had preferred), it may happen that the @code{XdrInfo} has not been
-constructed yet and thus contains invalid data.
-
-The same problem occurs if you want to define a global
-``alias--@code{XdrInfo}'' matching a ``@code{typedef int myint}''.
-Don't use @code{XdrInfo Xmyint (Xdr::Xint)} as this may copy the
-uninitialized @code{Xdr::Xint}. Use @code{XdrInfo& Xmyint = Xdr::Xint}
-instead.
-
-@node Destruction rules, Matching server and clients, Global objects, Caveats
-@comment node-name, next, previous, up
-@section Destruction rules
-@cindex Destruction rules
-
-Objects of type @code{XdrInfo} are resources that can be used more than
-once, i.e., in different @code{RpcRequest}s. If they were handled
-properly, references to @code{XdrInfo} would be counted and the
-@code{XdrInfo} destructed automatically if the last reference is
-removed (unless it is the @code{XdrInfo} of a predefined type).
-
-Such a resource management for @code{XdrInfo}s has been considered
-unnecessary as @code{XdrInfo}s will rarely be dynamic objects. If the
-user allocates an @code{XdrInfo} on the stack or the heap, it is his
-responsibility to assure that the object is valid until the last
-@code{RpcResource} that uses it has been destructed.
-
-@node Matching server and clients, , Destruction rules, Caveats
-@comment node-name, next, previous, up
-@section Matching server and clients
-
-In order to make sure that the server and the clients agree about the
-protocol, all @code{RpcRequest}s for a service should be declared in a
-header file and instantiated in a corresponding source file. The header
-file and the compiled source file make the ``library'' that provides the
-service. Thus a server consists of three files: the server executable, a
-header file defining the service that is to be included in client
-sources and an object file which must be linked to the client
-executable.
-
-@c ======================================================================
-
-@node References, Copying, Caveats, Top
-@comment node-name, next, previous, up
-@unnumbered References
-
-Margaret A. Ellis, @cite{The Annotated C++ Reference Manual},
-Addison-Wesley, 1990.
-
-Stanley B. Lippmann, @cite{A C++ Primer}, Addison-Wesley, 1989.
-
-Bjarne Stroustrup, @cite{The C++ Programming Language}, Addison-Wesley,
-1986.
-
-Sun Microsystems, @cite{Network Programming}, March 1990.
-
-@c ======================================================================
-
-@node Copying, Data Type Index, References, Top
-@appendix GNU LIBRARY GENERAL PUBLIC LICENSE
-@center Version 2, June 1991
-
-@display
-Copyright @copyright{} 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.
-@end display
-
-@unnumberedsec Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software---to make sure the software is free for all its users.
-
- This license, the Library General Public License, applies to some
-specially designated Free Software Foundation software, and to any
-other libraries whose authors decide to use it. You can use it for
-your libraries, 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 library, or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link a program with the library, you must provide
-complete object files to the recipients so that they can relink them
-with the library, after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- Our method of protecting your rights has two steps: (1) copyright
-the library, and (2) offer you this license which gives you legal
-permission to copy, distribute and/or modify the library.
-
- Also, for each distributor's protection, we want to make certain
-that everyone understands that there is no warranty for this free
-library. If the library is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original
-version, 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 companies distributing free
-software will individually obtain patent licenses, thus in effect
-transforming the program into proprietary software. To prevent this,
-we have made it clear that any patent must be licensed for everyone's
-free use or not licensed at all.
-
- Most GNU software, including some libraries, is covered by the ordinary
-GNU General Public License, which was designed for utility programs. This
-license, the GNU Library General Public License, applies to certain
-designated libraries. This license is quite different from the ordinary
-one; be sure to read it in full, and don't assume that anything in it is
-the same as in the ordinary license.
-
- The reason we have a separate public license for some libraries is that
-they blur the distinction we usually make between modifying or adding to a
-program and simply using it. Linking a program with a library, without
-changing the library, is in some sense simply using the library, and is
-analogous to running a utility program or application program. However, in
-a textual and legal sense, the linked executable is a combined work, a
-derivative of the original library, and the ordinary General Public License
-treats it as such.
-
- Because of this blurred distinction, using the ordinary General
-Public License for libraries did not effectively promote software
-sharing, because most developers did not use the libraries. We
-concluded that weaker conditions might promote sharing better.
-
- However, unrestricted linking of non-free programs would deprive the
-users of those programs of all benefit from the free status of the
-libraries themselves. This Library General Public License is intended to
-permit developers of non-free programs to use free libraries, while
-preserving your freedom as a user of such programs to change the free
-libraries that are incorporated in them. (We have not seen how to achieve
-this as regards changes in header files, but we have achieved it as regards
-changes in the actual functions of the Library.) The hope is that this
-will lead to faster development of free libraries.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-``work based on the library'' and a ``work that uses the library''. The
-former contains code derived from the library, while the latter only
-works together with the library.
-
- Note that it is possible for a library to be covered by the ordinary
-General Public License rather than by this special one.
-
-@iftex
-@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-@end iftex
-@ifinfo
-@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-@end ifinfo
-
-@enumerate
-@item
-This License Agreement applies to any software library which
-contains a notice placed by the copyright holder or other authorized
-party saying it may be distributed under the terms of this Library
-General Public License (also called ``this License''). Each licensee is
-addressed as ``you''.
-
- A ``library'' means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The ``Library'', below, refers to any such software library or work
-which has been distributed under these terms. A ``work based on the
-Library'' means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term ``modification''.)
-
- ``Source code'' for a work means the preferred form of the work for
-making modifications to it. For a library, 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 library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
-@item
-You may copy and distribute verbatim copies of the Library's
-complete 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 distribute a copy of this License along with the
-Library.
-
- 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.
-
-@item
-You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-@enumerate
-@item
-The modified work must itself be a software library.
-
-@item
-You must cause the files modified to carry prominent notices
-stating that you changed the files and the date of any change.
-
-@item
-You must cause the whole of the work to be licensed at no
-charge to all third parties under the terms of this License.
-
-@item
-If a facility in the modified Library refers to a function or a
-table of data to be supplied by an application program that uses
-the facility, other than as an argument passed when the facility
-is invoked, then you must make a good faith effort to ensure that,
-in the event an application does not supply such function or
-table, the facility still operates, and performs whatever part of
-its purpose remains meaningful.
-
-(For example, a function in a library to compute square roots has
-a purpose that is entirely well-defined independent of the
-application. Therefore, Subsection 2d requires that any
-application-supplied function or table used by this function must
-be optional: if the application does not supply it, the square
-root function must still compute square roots.)
-@end enumerate
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-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 Library, 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 Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-@item
-You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-@item
-You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you 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.
-
- If distribution of 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 satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-@item
-A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a ``work that uses the Library''. Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a ``work that uses the Library'' with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a ``work that uses the
-library''. The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a ``work that uses the Library'' uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-@item
-As an exception to the Sections above, you may also compile or
-link a ``work that uses the Library'' with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
-@enumerate
-@item
-Accompany the work with the complete corresponding
-machine-readable source code for the Library including whatever
-changes were used in the work (which must be distributed under
-Sections 1 and 2 above); and, if the work is an executable linked
-with the Library, with the complete machine-readable ``work that
-uses the Library'', as object code and/or source code, so that the
-user can modify the Library and then relink to produce a modified
-executable containing the modified Library. (It is understood
-that the user who changes the contents of definitions files in the
-Library will not necessarily be able to recompile the application
-to use the modified definitions.)
-
-@item
-Accompany the work with a written offer, valid for at
-least three years, to give the same user the materials
-specified in Subsection 6a, above, for a charge no more
-than the cost of performing this distribution.
-
-@item
-If distribution of the work is made by offering access to copy
-from a designated place, offer equivalent access to copy the above
-specified materials from the same place.
-
-@item
-Verify that the user has already received a copy of these
-materials or that you have already sent this user a copy.
-@end enumerate
-
- For an executable, the required form of the ``work that uses the
-Library'' must include any data and utility programs needed for
-reproducing the executable from it. 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.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-@item
-You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-@enumerate
-@item
-Accompany the combined library with a copy of the same work
-based on the Library, uncombined with any other library
-facilities. This must be distributed under the terms of the
-Sections above.
-
-@item
-Give prominent notice with the combined library of the fact
-that part of it is a work based on the Library, and explaining
-where to find the accompanying uncombined form of the same work.
-@end enumerate
-
-@item
-You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library 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.
-
-@item
-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 Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-@item
-Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-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.
-
-@item
-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 Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library 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 Library.
-
-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.
-
-@item
-If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library 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.
-
-@item
-The Free Software Foundation may publish revised and/or new
-versions of the Library 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 Library
-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 Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-@item
-If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-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 LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY ``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
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY 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 LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), 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 How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. 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 library's name and a brief idea of what it does.}
-Copyright (C) @var{year} @var{name of author}
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-This library 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
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free
-Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-@end smallexample
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a ``copyright disclaimer'' for the library, if
-necessary. Here is a sample; alter the names:
-
-@example
-Yoyodyne, Inc., hereby disclaims all copyright interest in the
-library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-@var{signature of Ty Coon}, 1 April 1990
-Ty Coon, President of Vice
-@end example
-
-That's all there is to it!
-
-@c ========================================================================
-
-@page
-@node Data Type Index, Function Index, Copying, Top
-@comment node-name, next, previous, up
-@unnumbered Data Type Index
-
-@printindex tp
-
-@node Function Index, Concept Index, Data Type Index, Top
-@comment node-name, next, previous, up
-@unnumbered Function and Method Index
-
-@printindex fn
-
-@node Concept Index, , Function Index, Top
-@comment node-name, next, previous, up
-@unnumbered Concept Index
-
-@printindex cp
-
-@contents
-@bye
diff --git a/rpc++/rpc++.toc b/rpc++/rpc++.toc
deleted file mode 100644
index 95eea1fd88c..00000000000
--- a/rpc++/rpc++.toc
+++ /dev/null
@@ -1,23 +0,0 @@
-\chapentry {Overview}{1}{1}
-\chapentry {Installation}{2}{2}
-\chapentry {The classes}{3}{3}
-\secentry {\code {XdrInfo}}{3}{1}{3}
-\secentry {\code {RpcRequest}}{3}{2}{5}
-\secentry {Callbacks}{3}{3}{7}
-\subsecentry {\code {RpcCallback}}{3}{3}{1}{7}
-\subsecentry {\code {RpcMethodCall}}{3}{3}{2}{9}
-\subsecentry {\code {Calling Conventions}}{3}{3}{3}{10}
-\secentry {\code {RpcService}}{3}{4}{12}
-\secentry {\code {RpcStub}}{3}{5}{16}
-\chapentry {Caveats}{4}{19}
-\secentry {Global objects}{4}{1}{19}
-\secentry {Destruction rules}{4}{2}{19}
-\secentry {Matching server and clients}{4}{3}{19}
-\unnumbchapentry {References}{21}
-\chapentry {GNU LIBRARY GENERAL PUBLIC LICENSE}{Appendix \char65}{22}
-\unnumbsecentry{Preamble}{22}
-\unnumbsecentry{TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION}{24}
-\unnumbsecentry{How to Apply These Terms to Your New Libraries}{30}
-\unnumbchapentry {Data Type Index}{31}
-\unnumbchapentry {Function and Method Index}{32}
-\unnumbchapentry {Concept Index}{33}
diff --git a/rpc++/rpc++.tp b/rpc++/rpc++.tp
deleted file mode 100644
index 80265f4d91c..00000000000
--- a/rpc++/rpc++.tp
+++ /dev/null
@@ -1,7 +0,0 @@
-\entry {XdrInfo}{3}{\code {XdrInfo}}
-\entry {RpcRequest}{5}{\code {RpcRequest}}
-\entry {AnyRpcCallback}{7}{\code {AnyRpcCallback}}
-\entry {RpcCallback}{7}{\code {RpcCallback}}
-\entry {RpcMethodCall}{9}{\code {RpcMethodCall}}
-\entry {RpcService}{12}{\code {RpcService}}
-\entry {RpcStub}{16}{\code {RpcStub}}
diff --git a/rpc++/rpc++.vr b/rpc++/rpc++.vr
deleted file mode 100644
index 2ad8f41a633..00000000000
--- a/rpc++/rpc++.vr
+++ /dev/null
@@ -1,13 +0,0 @@
-\entry {Xdr::Xchar}{3}{\code {Xdr::Xchar}}
-\entry {Xdr::Xshort}{3}{\code {Xdr::Xshort}}
-\entry {Xdr::Xint}{4}{\code {Xdr::Xint}}
-\entry {Xdr::Xlong}{4}{\code {Xdr::Xlong}}
-\entry {Xdr::Xuchar}{4}{\code {Xdr::Xuchar}}
-\entry {Xdr::Xushort}{4}{\code {Xdr::Xushort}}
-\entry {Xdr::Xulong}{4}{\code {Xdr::Xulong}}
-\entry {Xdr::Xfloat}{4}{\code {Xdr::Xfloat}}
-\entry {Xdr::Xdouble}{4}{\code {Xdr::Xdouble}}
-\entry {Xdr::Xenum{\_}t}{4}{\code {Xdr::Xenum{\_}t}}
-\entry {Xdr::Xbool{\_}t}{4}{\code {Xdr::Xbool{\_}t}}
-\entry {Xdr::Xvoid}{4}{\code {Xdr::Xvoid}}
-\entry {Xdr::Xnull}{4}{\code {Xdr::Xnull}}
diff --git a/rpc++/rpc++/callback.h b/rpc++/rpc++/callback.h
deleted file mode 100644
index fc059d95432..00000000000
--- a/rpc++/rpc++/callback.h
+++ /dev/null
@@ -1,534 +0,0 @@
-// -*- c++ -*-
-// $Id$
-/*
-Copyright (C) 1991 Peter Bersen
-
-This file is part of the rpc++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library 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 Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Modified and partially rewritten March 1992 by Michael N. Lipp,
-mnl@dtro.e-technik.th-darmstadt.de. The original copyright terms and
-conditions apply without change to any modified or new parts.
-*/
-
-#ifndef _RPCCALLBACK_H_
-#define _RPCCALLBACK_H_
-static char _rpcpp_callback_h_[]
-= "callback.h,v 2.3 1992/06/15 19:13:26 mnl Exp";
-
-// callback.h,v
-// Revision 2.3 1992/06/15 19:13:26 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:37 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:43 mnl
-// Initial mnl version.
-//
-
-//
-// The user interface to RpcCallback is quiet simple. The only function
-// needed is the constructor "RpcCallback (T* o, void* m)". Given a class
-// C with a method m and an object o of Type C, a callback to the method
-// can be constructed with "RpcCallback<C> (&O, &C::m)".
-// As an alternative, an RpcExtCallback may be constructed with
-// "RpcExtCallback (T* o, void* m, RpcService*)". In this case, the method
-// is called with a pointer to the RpcService object as a third argument.
-//
-// A pointer to a callback can be casted to AnyRpcCallback by
-// whatever routine receives it and the call can be made by applying "Do"
-// to the callback.
-//
-
-class RpcService;
-
-class AnyRpcCallback
-{
- friend class RpcService;
-
-protected:
- int params;
- RpcService* svc;
- virtual void* Do (void** in) = 0;
-
-public:
- inline virtual ~AnyRpcCallback () {}
- inline virtual AnyRpcCallback* CopyToHeap () const = 0;
- inline int Params () const
- { return params; }
- inline void SetService (RpcService* s)
- { svc = s; }
-};
-
-class RpcCallback : public AnyRpcCallback
-{
-private:
- typedef void* (*ProcN)(void**);
- typedef void* (*Proc0)();
- typedef void* (*Proc1)(void*);
- typedef void* (*Proc2)(void*, void*);
- typedef void* (*Proc3)(void*, void*, void*);
- typedef void* (*Proc4)(void*, void*, void*, void*);
- typedef void* (*Proc5)(void*, void*, void*, void*, void*);
- typedef void* (*Proc6)(void*, void*, void*, void*, void*, void*);
- typedef void* (*Proc7)(void*, void*, void*, void*, void*, void*, void*);
-
- typedef void (*ProcNv)(void**);
- typedef void (*Proc0v)();
- typedef void (*Proc1v)(void*);
- typedef void (*Proc2v)(void*, void*);
- typedef void (*Proc3v)(void*, void*, void*);
- typedef void (*Proc4v)(void*, void*, void*, void*);
- typedef void (*Proc5v)(void*, void*, void*, void*, void*);
- typedef void (*Proc6v)(void*, void*, void*, void*, void*, void*);
- typedef void (*Proc7v)(void*, void*, void*, void*, void*, void*, void*);
-
- typedef void* (*ProcNs)(void**, RpcService*);
- typedef void* (*Proc0s)(RpcService*);
- typedef void* (*Proc1s)(void*, RpcService*);
- typedef void* (*Proc2s)(void*, void*, RpcService*);
- typedef void* (*Proc3s)(void*, void*, void*, RpcService*);
- typedef void* (*Proc4s)(void*, void*, void*, void*, RpcService*);
- typedef void* (*Proc5s)(void*, void*, void*, void*, void*, RpcService*);
- typedef void* (*Proc6s)(void*, void*, void*, void*,
- void*, void*, RpcService*);
- typedef void* (*Proc7s)(void*, void*, void*, void*,
- void*, void*, void*, RpcService*);
-
- typedef void (*ProcNvs)(void**, RpcService*);
- typedef void (*Proc0vs)(RpcService*);
- typedef void (*Proc1vs)(void*, RpcService*);
- typedef void (*Proc2vs)(void*, void*, RpcService*);
- typedef void (*Proc3vs)(void*, void*, void*, RpcService*);
- typedef void (*Proc4vs)(void*, void*, void*, void*, RpcService*);
- typedef void (*Proc5vs)(void*, void*, void*, void*, void*, RpcService*);
- typedef void (*Proc6vs)(void*, void*, void*, void*,
- void*, void*, RpcService*);
- typedef void (*Proc7vs)(void*, void*, void*, void*,
- void*, void*, void*, RpcService*);
-
- typedef void* (RpcCallback::*DoPtr)(void**);
- DoPtr todo;
- union
- {
- ProcN procN;ProcNv procNv;ProcNs procNs;ProcNvs procNvs;
- Proc0 proc0;Proc0v proc0v;Proc0s proc0s;Proc0vs proc0vs;
- Proc1 proc1;Proc1v proc1v;Proc1s proc1s;Proc1vs proc1vs;
- Proc2 proc2;Proc2v proc2v;Proc2s proc2s;Proc2vs proc2vs;
- Proc3 proc3;Proc3v proc3v;Proc3s proc3s;Proc3vs proc3vs;
- Proc4 proc4;Proc4v proc4v;Proc4s proc4s;Proc4vs proc4vs;
- Proc5 proc5;Proc5v proc5v;Proc5s proc5s;Proc5vs proc5vs;
- Proc6 proc6;Proc6v proc6v;Proc6s proc6s;Proc6vs proc6vs;
- Proc7 proc7;Proc7v proc7v;Proc7s proc7s;Proc7vs proc7vs;
- };
- inline RpcCallback () {}
- inline void* Do (void** in)
- { return (this->*todo)(in); }
-
- inline void* DoN (void** in)
- { return (*procN)(in); }
- inline void* Do0 (void** in)
- { return (*proc0)(); }
- inline void* Do1 (void** in)
- { return (*proc1)(in[0]); }
- inline void* Do2 (void** in)
- { return (*proc2)(in[0], in[1]); }
- inline void* Do3 (void** in)
- { return (*proc3)(in[0], in[1], in[2]); }
- inline void* Do4 (void** in)
- { return (*proc4)(in[0], in[1], in[2], in[3]); }
- inline void* Do5 (void** in)
- { return (*proc5)(in[0], in[1], in[2], in[3], in[4]); }
- inline void* Do6 (void** in)
- { return (*proc6)(in[0], in[1], in[2], in[3], in[4], in[5]); }
- inline void* Do7 (void** in)
- { return (*proc7)(in[0], in[1], in[2], in[3], in[4], in[5], in[6]); }
- inline void* DoNv (void** in)
- { (*procNv)(in); return (void*)0; }
- inline void* Do0v (void** in)
- { (*proc0v)(); return (void*)0; }
- inline void* Do1v (void** in)
- { (*proc1v)(in[0]); return (void*)0; }
- inline void* Do2v (void** in)
- { (*proc2v)(in[0], in[1]); return (void*)0; }
- inline void* Do3v (void** in)
- { (*proc3v)(in[0], in[1], in[2]); return (void*)0; }
- inline void* Do4v (void** in)
- { (*proc4v)(in[0], in[1], in[2], in[3]); return (void*)0; }
- inline void* Do5v (void** in)
- { (*proc5v)(in[0], in[1], in[2], in[3], in[4]); return (void*)0; }
- inline void* Do6v (void** in)
- { (*proc6v)(in[0], in[1], in[2], in[3], in[4], in[5]); return (void*)0; }
- inline void* Do7v (void** in)
- { (*proc7v)(in[0], in[1], in[2], in[3], in[4], in[5], in[6]);
- return (void*)0; }
-
- inline void* DoNs (void** in)
- { return (*procNs)(in, svc); }
- inline void* Do0s (void** in)
- { return (*proc0s)(svc); }
- inline void* Do1s (void** in)
- { return (*proc1s)(in[0], svc); }
- inline void* Do2s (void** in)
- { return (*proc2s)(in[0], in[1], svc); }
- inline void* Do3s (void** in)
- { return (*proc3s)(in[0], in[1], in[2], svc); }
- inline void* Do4s (void** in)
- { return (*proc4s)(in[0], in[1], in[2], in[3], svc); }
- inline void* Do5s (void** in)
- { return (*proc5s)(in[0], in[1], in[2], in[3], in[4], svc); }
- inline void* Do6s (void** in)
- { return (*proc6s)(in[0], in[1], in[2], in[3], in[4], in[5], svc); }
- inline void* Do7s (void** in)
- { return (*proc7s)(in[0], in[1], in[2], in[3], in[4], in[5], in[6], svc); }
- inline void* DoNvs (void** in)
- { (*procNvs)(in, svc); return (void*)0; }
- inline void* Do0vs (void** in)
- { (*proc0vs)(svc); return (void*)0; }
- inline void* Do1vs (void** in)
- { (*proc1vs)(in[0], svc); return (void*)0; }
- inline void* Do2vs (void** in)
- { (*proc2vs)(in[0], in[1], svc); return (void*)0; }
- inline void* Do3vs (void** in)
- { (*proc3vs)(in[0], in[1], in[2], svc); return (void*)0; }
- inline void* Do4vs (void** in)
- { (*proc4vs)(in[0], in[1], in[2], in[3], svc); return (void*)0; }
- inline void* Do5vs (void** in)
- { (*proc5vs)(in[0], in[1], in[2], in[3], in[4], svc); return (void*)0; }
- inline void* Do6vs (void** in)
- { (*proc6vs)(in[0], in[1], in[2], in[3], in[4], in[5], svc);
- return (void*)0; }
- inline void* Do7vs (void** in)
- { (*proc7vs)(in[0], in[1], in[2], in[3],
- in[4], in[5], in[6], svc); return (void*)0; }
-
-public:
- inline RpcCallback (ProcN p)
- { todo = &this->DoN; procN = p; params = -1; }
- inline RpcCallback (Proc0 p)
- { todo = &this->Do0; proc0 = p; params = 0; }
- inline RpcCallback (Proc1 p)
- { todo = &this->Do1; proc1 = p; params = 1; }
- inline RpcCallback (Proc2 p)
- { todo = &this->Do2; proc2 = p; params = 2; }
- inline RpcCallback (Proc3 p)
- { todo = &this->Do3; proc3 = p; params = 3; }
- inline RpcCallback (Proc4 p)
- { todo = &this->Do4; proc4 = p; params = 4; }
- inline RpcCallback (Proc5 p)
- { todo = &this->Do5; proc5 = p; params = 5; }
- inline RpcCallback (Proc6 p)
- { todo = &this->Do6; proc6 = p; params = 6; }
- inline RpcCallback (Proc7 p)
- { todo = &this->Do7; proc7 = p; params = 7; }
-
- inline RpcCallback (ProcNv p)
- { todo = &this->DoNv; procNv = p; params = -1; }
- inline RpcCallback (Proc0v p)
- { todo = &this->Do0v; proc0v = p; params = 0; }
- inline RpcCallback (Proc1v p)
- { todo = &this->Do1v; proc1v = p; params = 1; }
- inline RpcCallback (Proc2v p)
- { todo = &this->Do2v; proc2v = p; params = 2; }
- inline RpcCallback (Proc3v p)
- { todo = &this->Do3v; proc3v = p; params = 3; }
- inline RpcCallback (Proc4v p)
- { todo = &this->Do4v; proc4v = p; params = 4; }
- inline RpcCallback (Proc5v p)
- { todo = &this->Do5v; proc5v = p; params = 5; }
- inline RpcCallback (Proc6v p)
- { todo = &this->Do6v; proc6v = p; params = 6; }
- inline RpcCallback (Proc7v p)
- { todo = &this->Do7v; proc7v = p; params = 7; }
-
- inline RpcCallback (ProcNs p)
- { todo = &this->DoNs; procNs = p; params = -1; }
- inline RpcCallback (Proc0s p)
- { todo = &this->Do0s; proc0s = p; params = 0; }
- inline RpcCallback (Proc1s p)
- { todo = &this->Do1s; proc1s = p; params = 1; }
- inline RpcCallback (Proc2s p)
- { todo = &this->Do2s; proc2s = p; params = 2; }
- inline RpcCallback (Proc3s p)
- { todo = &this->Do3s; proc3s = p; params = 3; }
- inline RpcCallback (Proc4s p)
- { todo = &this->Do4s; proc4s = p; params = 4; }
- inline RpcCallback (Proc5s p)
- { todo = &this->Do5s; proc5s = p; params = 5; }
- inline RpcCallback (Proc6s p)
- { todo = &this->Do6s; proc6s = p; params = 6; }
- inline RpcCallback (Proc7s p)
- { todo = &this->Do7s; proc7s = p; params = 7; }
-
- inline RpcCallback (ProcNvs p)
- { todo = &this->DoNvs; procNvs = p; params = -1; }
- inline RpcCallback (Proc0vs p)
- { todo = &this->Do0vs; proc0vs = p; params = 0; }
- inline RpcCallback (Proc1vs p)
- { todo = &this->Do1vs; proc1vs = p; params = 1; }
- inline RpcCallback (Proc2vs p)
- { todo = &this->Do2vs; proc2vs = p; params = 2; }
- inline RpcCallback (Proc3vs p)
- { todo = &this->Do3vs; proc3vs = p; params = 3; }
- inline RpcCallback (Proc4vs p)
- { todo = &this->Do4vs; proc4vs = p; params = 4; }
- inline RpcCallback (Proc5vs p)
- { todo = &this->Do5vs; proc5vs = p; params = 5; }
- inline RpcCallback (Proc6vs p)
- { todo = &this->Do6vs; proc6vs = p; params = 6; }
- inline RpcCallback (Proc7vs p)
- { todo = &this->Do7vs; proc7vs = p; params = 7; }
-
- inline virtual AnyRpcCallback* CopyToHeap () const
- {
- RpcCallback* p = new RpcCallback ();
- *p = *this;
- return p;
- }
-};
-
-template<class T> class RpcMethodCall : public AnyRpcCallback
-{
-private:
- typedef void* (T::*MethodN)(void**);
- typedef void* (T::*Method0)();
- typedef void* (T::*Method1)(void*);
- typedef void* (T::*Method2)(void*, void*);
- typedef void* (T::*Method3)(void*, void*, void*);
- typedef void* (T::*Method4)(void*, void*, void*, void*);
- typedef void* (T::*Method5)(void*, void*, void*, void*, void*);
- typedef void* (T::*Method6)(void*, void*, void*, void*, void*, void*);
- typedef void* (T::*Method7)(void*, void*, void*, void*, void*, void*, void*);
-
- typedef void (T::*MethodNv)(void**);
- typedef void (T::*Method0v)();
- typedef void (T::*Method1v)(void*);
- typedef void (T::*Method2v)(void*, void*);
- typedef void (T::*Method3v)(void*, void*, void*);
- typedef void (T::*Method4v)(void*, void*, void*, void*);
- typedef void (T::*Method5v)(void*, void*, void*, void*, void*);
- typedef void (T::*Method6v)(void*, void*, void*, void*, void*, void*);
- typedef void (T::*Method7v)(void*, void*, void*, void*, void*, void*, void*);
-
- typedef void* (T::*MethodNs)(void**, RpcService*);
- typedef void* (T::*Method0s)(RpcService*);
- typedef void* (T::*Method1s)(void*, RpcService*);
- typedef void* (T::*Method2s)(void*, void*, RpcService*);
- typedef void* (T::*Method3s)(void*, void*, void*, RpcService*);
- typedef void* (T::*Method4s)(void*, void*, void*, void*, RpcService*);
- typedef void* (T::*Method5s)(void*, void*, void*, void*, void*, RpcService*);
- typedef void* (T::*Method6s)(void*, void*, void*, void*,
- void*, void*, RpcService*);
- typedef void* (T::*Method7s)(void*, void*, void*, void*,
- void*, void*, void*, RpcService*);
-
- typedef void (T::*MethodNvs)(void**, RpcService*);
- typedef void (T::*Method0vs)(RpcService*);
- typedef void (T::*Method1vs)(void*, RpcService*);
- typedef void (T::*Method2vs)(void*, void*, RpcService*);
- typedef void (T::*Method3vs)(void*, void*, void*, RpcService*);
- typedef void (T::*Method4vs)(void*, void*, void*, void*, RpcService*);
- typedef void (T::*Method5vs)(void*, void*, void*, void*, void*, RpcService*);
- typedef void (T::*Method6vs)(void*, void*, void*, void*,
- void*, void*, RpcService*);
- typedef void (T::*Method7vs)(void*, void*, void*, void*,
- void*, void*, void*, RpcService*);
-
- typedef void* (RpcMethodCall::*DoPtr)(void**);
- DoPtr todo;
- T* object;
- union
- {
- MethodN methodN;MethodNv methodNv;MethodNs methodNs;MethodNvs methodNvs;
- Method0 method0;Method0v method0v;Method0s method0s;Method0vs method0vs;
- Method1 method1;Method1v method1v;Method1s method1s;Method1vs method1vs;
- Method2 method2;Method2v method2v;Method2s method2s;Method2vs method2vs;
- Method3 method3;Method3v method3v;Method3s method3s;Method3vs method3vs;
- Method4 method4;Method4v method4v;Method4s method4s;Method4vs method4vs;
- Method5 method5;Method5v method5v;Method5s method5s;Method5vs method5vs;
- Method6 method6;Method6v method6v;Method6s method6s;Method6vs method6vs;
- Method7 method7;Method7v method7v;Method7s method7s;Method7vs method7vs;
- };
- inline RpcMethodCall () {}
- inline void* Do (void** in)
- { return (this->*todo)(in); }
-
- inline void* DoN (void** in)
- { return (object->*methodN)(in); }
- inline void* Do0 (void** in)
- { return (object->*method0)(); }
- inline void* Do1 (void** in)
- { return (object->*method1)(in[0]); }
- inline void* Do2 (void** in)
- { return (object->*method2)(in[0], in[1]); }
- inline void* Do3 (void** in)
- { return (object->*method3)(in[0], in[1], in[2]); }
- inline void* Do4 (void** in)
- { return (object->*method4)(in[0], in[1], in[2], in[3]); }
- inline void* Do5 (void** in)
- { return (object->*method5)(in[0], in[1], in[2], in[3], in[4]); }
- inline void* Do6 (void** in)
- { return (object->*method6)(in[0], in[1], in[2], in[3], in[4], in[5]); }
- inline void* Do7 (void** in)
- { return (object->*method7)(in[0], in[1], in[2],
- in[3], in[4], in[5], in[6]); }
- inline void* DoNv (void** in)
- { (object->*methodNv)(in); return (void*)0; }
- inline void* Do0v (void** in)
- { (object->*method0v)(); return (void*)0; }
- inline void* Do1v (void** in)
- { (object->*method1v)(in[0]); return (void*)0; }
- inline void* Do2v (void** in)
- { (object->*method2v)(in[0], in[1]); return (void*)0; }
- inline void* Do3v (void** in)
- { (object->*method3v)(in[0], in[1], in[2]); return (void*)0; }
- inline void* Do4v (void** in)
- { (object->*method4v)(in[0], in[1], in[2], in[3]); return (void*)0; }
- inline void* Do5v (void** in)
- { (object->*method5v)(in[0], in[1], in[2], in[3], in[4]);
- return (void*)0; }
- inline void* Do6v (void** in)
- { (object->*method6v)(in[0], in[1], in[2], in[3], in[4], in[5]);
- return (void*)0; }
- inline void* Do7v (void** in)
- { (object->*method7v)(in[0], in[1], in[2], in[3], in[4], in[5], in[6]);
- return (void*)0; }
-
- inline void* DoNs (void** in)
- { return (object->*methodNs)(in, svc); }
- inline void* Do0s (void** in)
- { return (object->*method0s)(svc); }
- inline void* Do1s (void** in)
- { return (object->*method1s)(in[0], svc); }
- inline void* Do2s (void** in)
- { return (object->*method2s)(in[0], in[1], svc); }
- inline void* Do3s (void** in)
- { return (object->*method3s)(in[0], in[1], in[2], svc); }
- inline void* Do4s (void** in)
- { return (object->*method4s)(in[0], in[1], in[2], in[3], svc); }
- inline void* Do5s (void** in)
- { return (object->*method5s)(in[0], in[1], in[2], in[3], in[4], svc); }
- inline void* Do6s (void** in)
- { return (object->*method6s)(in[0], in[1], in[2],
- in[3], in[4], in[5], svc); }
- inline void* Do7s (void** in)
- { return (object->*method7s)(in[0], in[1], in[2],
- in[3], in[4], in[5], in[6], svc); }
- inline void* DoNvs (void** in)
- { (object->*methodNvs)(in, svc); return (void*)0; }
- inline void* Do0vs (void** in)
- { (object->*method0vs)(svc); return (void*)0; }
- inline void* Do1vs (void** in)
- { (object->*method1vs)(in[0], svc); return (void*)0; }
- inline void* Do2vs (void** in)
- { (object->*method2vs)(in[0], in[1], svc); return (void*)0; }
- inline void* Do3vs (void** in)
- { (object->*method3vs)(in[0], in[1], in[2], svc); return (void*)0; }
- inline void* Do4vs (void** in)
- { (object->*method4vs)(in[0], in[1], in[2], in[3], svc); return (void*)0; }
- inline void* Do5vs (void** in)
- { (object->*method5vs)(in[0], in[1], in[2], in[3], in[4], svc);
- return (void*)0; }
- inline void* Do6vs (void** in)
- { (object->*method6vs)(in[0], in[1], in[2], in[3], in[4], in[5], svc);
- return (void*)0; }
- inline void* Do7vs (void** in)
- { (object->*method7vs)(in[0], in[1], in[2], in[3],
- in[4], in[5], in[6], svc); return (void*)0; }
-
-public:
- inline RpcMethodCall (T* o, MethodN m)
- { todo = &this->DoN; object = o; methodN = m; params = -1; }
- inline RpcMethodCall (T* o, Method0 m)
- { todo = &this->Do0; object = o; method0 = m; params = 0; }
- inline RpcMethodCall (T* o, Method1 m)
- { todo = &this->Do1; object = o; method1 = m; params = 1; }
- inline RpcMethodCall (T* o, Method2 m)
- { todo = &this->Do2; object = o; method2 = m; params = 2; }
- inline RpcMethodCall (T* o, Method3 m)
- { todo = &this->Do3; object = o; method3 = m; params = 3; }
- inline RpcMethodCall (T* o, Method4 m)
- { todo = &this->Do4; object = o; method4 = m; params = 4; }
- inline RpcMethodCall (T* o, Method5 m)
- { todo = &this->Do5; object = o; method5 = m; params = 5; }
- inline RpcMethodCall (T* o, Method6 m)
- { todo = &this->Do6; object = o; method6 = m; params = 6; }
- inline RpcMethodCall (T* o, Method7 m)
- { todo = &this->Do7; object = o; method7 = m; params = 7; }
-
- inline RpcMethodCall (T* o, MethodNv m)
- { todo = &this->DoNv; object = o; methodNv = m; params = -1; }
- inline RpcMethodCall (T* o, Method0v m)
- { todo = &this->Do0v; object = o; method0v = m; params = 0; }
- inline RpcMethodCall (T* o, Method1v m)
- { todo = &this->Do1v; object = o; method1v = m; params = 1; }
- inline RpcMethodCall (T* o, Method2v m)
- { todo = &this->Do2v; object = o; method2v = m; params = 2; }
- inline RpcMethodCall (T* o, Method3v m)
- { todo = &this->Do3v; object = o; method3v = m; params = 3; }
- inline RpcMethodCall (T* o, Method4v m)
- { todo = &this->Do4v; object = o; method4v = m; params = 4; }
- inline RpcMethodCall (T* o, Method5v m)
- { todo = &this->Do5v; object = o; method5v = m; params = 5; }
- inline RpcMethodCall (T* o, Method6v m)
- { todo = &this->Do6v; object = o; method6v = m; params = 6; }
- inline RpcMethodCall (T* o, Method7v m)
- { todo = &this->Do7v; object = o; method7v = m; params = 7; }
-
- inline RpcMethodCall (T* o, MethodNs m)
- { todo = &this->DoNs; object = o; methodNs = m; params = -1; }
- inline RpcMethodCall (T* o, Method0s m)
- { todo = &this->Do0s; object = o; method0s = m; params = 0; }
- inline RpcMethodCall (T* o, Method1s m)
- { todo = &this->Do1s; object = o; method1s = m; params = 1; }
- inline RpcMethodCall (T* o, Method2s m)
- { todo = &this->Do2s; object = o; method2s = m; params = 2; }
- inline RpcMethodCall (T* o, Method3s m)
- { todo = &this->Do3s; object = o; method3s = m; params = 3; }
- inline RpcMethodCall (T* o, Method4s m)
- { todo = &this->Do4s; object = o; method4s = m; params = 4; }
- inline RpcMethodCall (T* o, Method5s m)
- { todo = &this->Do5s; object = o; method5s = m; params = 5; }
- inline RpcMethodCall (T* o, Method6s m)
- { todo = &this->Do6s; object = o; method6s = m; params = 6; }
- inline RpcMethodCall (T* o, Method7s m)
- { todo = &this->Do7s; object = o; method7s = m; params = 7; }
-
- inline RpcMethodCall (T* o, MethodNvs m)
- { todo = &this->DoNvs; object = o; methodNvs = m; params = -1; }
- inline RpcMethodCall (T* o, Method0vs m)
- { todo = &this->Do0vs; object = o; method0vs = m; params = 0; }
- inline RpcMethodCall (T* o, Method1vs m)
- { todo = &this->Do1vs; object = o; method1vs = m; params = 1; }
- inline RpcMethodCall (T* o, Method2vs m)
- { todo = &this->Do2vs; object = o; method2vs = m; params = 2; }
- inline RpcMethodCall (T* o, Method3vs m)
- { todo = &this->Do3vs; object = o; method3vs = m; params = 3; }
- inline RpcMethodCall (T* o, Method4vs m)
- { todo = &this->Do4vs; object = o; method4vs = m; params = 4; }
- inline RpcMethodCall (T* o, Method5vs m)
- { todo = &this->Do5vs; object = o; method5vs = m; params = 5; }
- inline RpcMethodCall (T* o, Method6vs m)
- { todo = &this->Do6vs; object = o; method6vs = m; params = 6; }
- inline RpcMethodCall (T* o, Method7vs m)
- { todo = &this->Do7vs; object = o; method7vs = m; params = 7; }
-
- inline virtual AnyRpcCallback* CopyToHeap () const
- {
- RpcMethodCall* p = new RpcMethodCall ();
- *p = *this;
- return p;
- }
-};
-
-#endif
diff --git a/rpc++/rpc++/request.h b/rpc++/rpc++/request.h
deleted file mode 100644
index 61ab6fc93ef..00000000000
--- a/rpc++/rpc++/request.h
+++ /dev/null
@@ -1,122 +0,0 @@
-// -*- c++ -*-
-// $Id$
-/*
-Copyright (C) 1991 Peter Bersen
-
-This file is part of the rpc++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library 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 Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Modified and partially rewritten March 1992 by Michael N. Lipp,
-mnl@dtro.e-technik.th-darmstadt.de. The original copyright terms and
-conditions apply without change to any modified or new parts.
-*/
-
-#ifndef _RPCREQUEST_H_
-#define _RPCREQUEST_H_
-static char _rpcpp_request_h_[]
-= "request.h,v 2.3 1992/06/15 19:13:28 mnl Exp";
-
-// request.h,v
-// Revision 2.3 1992/06/15 19:13:28 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:39 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:43 mnl
-// Initial mnl version.
-//
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#include "xdr++.h"
-
-// RpcRequest is a class that specifies an individual request that is
-// part of a service. Three parameters are required to specify a request:
-// - the request number
-// - the serializer (XdrInfo) for the input to the request
-// - the serializer (XdrInfo) for the output from the request
-class RpcRequest
-{
-private:
- void init (u_long req, int pars, int parsz,
- const XdrInfo* out, const XdrInfo** in, int rt);
-
-public:
- // Construct a new request from a request id, the information about
- // the input data and the information about the output data.
- // Note that requests that are registered for a service are stored
- // in an array using the request id as the index, so keep indices
- // small.
- typedef enum { normal, batched, async } ReqType;
- // No input arg:
- RpcRequest (u_long req, const XdrInfo* out, int t = normal);
- // One input arg:
- RpcRequest (u_long req, const XdrInfo* out, const XdrInfo* in,
- int t = normal);
- // Two input args:
- RpcRequest (u_long req, const XdrInfo* out, const XdrInfo*, const XdrInfo*,
- int t = normal);
- // ...
- RpcRequest (u_long req, const XdrInfo* out, const XdrInfo*, const XdrInfo*,
- const XdrInfo*, int t = normal);
- RpcRequest (u_long req, const XdrInfo* out, const XdrInfo*, const XdrInfo*,
- const XdrInfo*, const XdrInfo*, int t = normal);
- RpcRequest (u_long req, const XdrInfo* out, const XdrInfo*, const XdrInfo*,
- const XdrInfo*, const XdrInfo*, const XdrInfo*, int t = normal);
- RpcRequest (u_long req, const XdrInfo* out, const XdrInfo*, const XdrInfo*,
- const XdrInfo*, const XdrInfo*, const XdrInfo*, const XdrInfo*,
- int t = normal);
- RpcRequest (u_long req, const XdrInfo* out, const XdrInfo*, const XdrInfo*,
- const XdrInfo*, const XdrInfo*, const XdrInfo*, const XdrInfo*,
- const XdrInfo*, int t = normal);
- // N input args, conversion routines given as a NULL terminated array
- // of XdrInfo*:
- RpcRequest (u_long req, const XdrInfo* out, const XdrInfo**, int t = normal);
- ~RpcRequest ();
- int RequestNumber () const;
- const XdrInfo** InInfo ();
- const XdrInfo* OutInfo ();
- ReqType Type ();
- int Params () const;
- int ParamSize ();
-
-protected:
- int params;
- int parmsz;
- u_long reqnum;
- const XdrInfo** ininfo;
- const XdrInfo* outinfo;
- ReqType reqtype;
-};
-
-inline RpcRequest::~RpcRequest ()
-{ delete [] ininfo; }
-
-inline int RpcRequest::Params () const
-{ return params; }
-
-inline int RpcRequest::RequestNumber () const
-{ return reqnum; }
-
-inline const XdrInfo** RpcRequest::InInfo ()
-{ return ininfo; }
-
-inline const XdrInfo* RpcRequest::OutInfo ()
-{ return outinfo; }
-
-inline RpcRequest::ReqType RpcRequest::Type ()
-{ return reqtype; }
-
-#endif
diff --git a/rpc++/rpc++/service.h b/rpc++/rpc++/service.h
deleted file mode 100644
index dec16157ccf..00000000000
--- a/rpc++/rpc++/service.h
+++ /dev/null
@@ -1,133 +0,0 @@
-// -*- c++ -*-
-// $Id$
-/*
-Copyright (C) 1991 Peter Bersen
-
-This file is part of the rpc++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library 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 Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Modified and partially rewritten March 1992 by Michael N. Lipp,
-mnl@dtro.e-technik.th-darmstadt.de. The original copyright terms and
-conditions apply without change to any modified or new parts.
-*/
-
-#ifndef _RPCSERVICE_H_
-#define _RPCSERVICE_H_
-static char _rpcpp_service_h_[]
-= "service.h,v 2.3 1992/06/15 19:13:30 mnl Exp";
-
-// service.h,v
-// Revision 2.3 1992/06/15 19:13:30 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:41 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:43 mnl
-// Initial mnl version.
-//
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#undef TRUE
-#undef FALSE
-#include <bool.h>
-#include "request.h"
-#include "callback.h"
-
-class RpcRegistered;
-
-class RpcService
-{
-public:
- typedef enum
- { noError, reconstructionAttempt, cantCreateTCPService,
- cantRegisterService, notRegistered, cantGetArgs,
- invalidResult, cantSendReply, cantFreeArgs, selectError,
- } errorCode;
-
- // Get state
- inline virtual bool OK ()
- { return errorState == noError; }
- // Construct a service object for service prog, version vers
- RpcService (u_long prog, u_long vers);
- // Construct a transient service object for version vers
- RpcService (u_long vers);
- // Destruct the service
- virtual ~RpcService ();
-
- // Get the program number (normally used after construction of transient)
- u_long Program ();
-
- // Register an object and its method to be called on request
- virtual void Register (const RpcRequest&, const AnyRpcCallback&);
-
- // The link to RPC
- virtual void Dispatch (svc_req* req, SVCXPRT* transp);
- // Provide the service. Never returns.
- void Provide ();
-
- // Get caller. May be called during execution of a service routine.
- inline struct sockaddr_in* Caller ()
- { return svc_getcaller (xprt); }
- char* CallerName ();
- // Reply before return
- void Reply (void* res);
- void Reply ();
- // Quit provide loop
- void Interrupt ();
-
-private:
- // Save the address of the one and only RpcService in the process.
- // There may be only one RpcService, because we can register a program
- // with svc_register (method RpcServiceCallback) but we can't make
- // the svc function give an argument to this function when doing a
- // callback, which means that we can't have it distinguish between
- // various instances of RpcService.
- static RpcService* me;
- static inline void RpcServiceCallback (svc_req* req, SVCXPRT* transp)
- { RpcService::me->Dispatch (req, transp); }
-
-protected:
- void init ();
- void HandleError (errorCode e);
- errorCode errorState;
- u_long prog;
- u_long vers;
- RpcRegistered** handlers;
- int maxHandlerIndex;
- SVCXPRT* xprt;
- RpcRequest* rpcreq;
- bool quitLoop;
- char* inbuf;
- int inmax;
- bool haveReplied;
-
- // Default error handling prints a message and exit(2)s.
- virtual void HandleError ();
-};
-
-inline void RpcService::HandleError (errorCode e)
-{ errorState = e; HandleError (); }
-
-inline u_long RpcService::Program ()
-{ return prog; }
-
-inline void RpcService::Reply ()
-{ Reply (0); }
-
-inline void RpcService::Interrupt ()
-{ quitLoop = TRUE; }
-
-#endif
diff --git a/rpc++/rpc++/stub.h b/rpc++/rpc++/stub.h
deleted file mode 100644
index a94493df267..00000000000
--- a/rpc++/rpc++/stub.h
+++ /dev/null
@@ -1,146 +0,0 @@
-// -*- c++ -*-
-// $Id$
-/*
-Copyright (C) 1991 Peter Bersen
-
-This file is part of the rpc++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library 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 Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Modified and partially rewritten March 1992 by Michael N. Lipp,
-mnl@dtro.e-technik.th-darmstadt.de. The original copyright terms and
-conditions apply without change to any modified or new parts.
-*/
-
-#ifndef _RPCSTUB_H_
-#define _RPCSTUB_H_
-static char _rpcpp_stub_h_[]
-= "stub.h,v 2.3 1992/06/15 19:13:31 mnl Exp";
-
-// stub.h,v
-// Revision 2.3 1992/06/15 19:13:31 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:43 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:43 mnl
-// Initial mnl version.
-//
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-#undef TRUE
-#undef FALSE
-#include <bool.h>
-#include <String.h>
-#include <sys/time.h>
-#include "request.h"
-
-class RpcStub
-{
-protected:
- static timeval defaultTimeout;
- static void* res;
- static size_t resmax;
- static xdrproc_t resproc;
- void init (u_long prognum, u_long versnum,
- char* hostname, timeval timeout, bool connect);
-
-public:
- typedef enum
- { noError, notConnected, cantCreate, cantCall,
- } errorCode;
-
- // Construct a new stub
- RpcStub (u_long prognum, u_long versnum,
- char* hostname = "localhost",
- timeval timeout = defaultTimeout, bool connect = TRUE);
- RpcStub (u_long prognum, u_long versnum,
- char* hostname = "localhost",
- bool connect = TRUE, timeval timeout = defaultTimeout);
- virtual ~RpcStub ();
-
- // Reconnect (in case of failure or delayed connection)
- void Reconnect ();
-
- // Various inquiries
- virtual bool OK ();
- CLIENT* Service ();
-
- // Get/set timeout
- timeval GetTimeout () const;
- void SetTimeout (timeval& timo);
-
- // Make a call, either with or without an argument. If handle_errors
- // is true, "Call" will call the error handler in case of an error.
- // Else, it returns 0 as result and it is up to the client to handle
- // the error.
- // Call with one arg:
- void* Call (RpcRequest&, bool handle_errors = TRUE);
- // Call with two args:
- void* Call (RpcRequest&, void* in, bool handle_errors = TRUE);
- // ...
- void* Call (RpcRequest& req, void*, void*, bool handle_errors = TRUE);
- void* Call (RpcRequest& req, void*, void*, void*, bool handle_errors = TRUE);
- void* Call (RpcRequest& req, void*, void*, void*, void*,
- bool handle_errors = TRUE);
- void* Call (RpcRequest& req, void*, void*, void*, void*, void*,
- bool handle_errors = TRUE);
- void* Call (RpcRequest& req, void*, void*, void*, void*, void*, void*,
- bool handle_errors = TRUE);
- void* Call (RpcRequest& req, void*, void*, void*, void*, void*, void*, void*,
- bool handle_errors = TRUE);
- // Call with N args:
- void* Call (RpcRequest& req, void**, bool handle_errors = TRUE);
-
-protected:
- void* HandleError (errorCode e);
- errorCode errorState;
- u_long program;
- u_long version;
- String server;
- timeval timeout;
- CLIENT* svc;
- // Default error handling prints a message and exit(2)s.
- virtual void* HandleError ();
- void* DoCall (RpcRequest& req, void** args, bool handle_errors);
-};
-
-inline RpcStub::RpcStub (u_long prognum, u_long versnum,
- char* hostname, timeval timeout, bool connect)
-{ init (prognum, versnum, hostname, timeout, connect); }
-
-inline RpcStub::RpcStub (u_long prognum, u_long versnum,
- char* hostname, bool connect, timeval timeout)
-{ init (prognum, versnum, hostname, timeout, connect); }
-
-inline virtual bool RpcStub::OK ()
-{ return errorState == noError; }
-
-inline CLIENT* RpcStub::Service ()
-{ return svc; }
-
-inline timeval RpcStub::GetTimeout () const
-{ return timeout; }
-
-inline void RpcStub::SetTimeout (timeval& timo)
-{ timeout = timo; }
-
-inline void* RpcStub::Call (RpcRequest& req, bool handle_errors = TRUE)
-{ return Call (req, (void*)0, handle_errors); }
-
-inline void* RpcStub::HandleError (errorCode e)
-{ errorState = e; return HandleError (); }
-
-#endif
diff --git a/rpc++/rpc++/xdr++.h b/rpc++/rpc++/xdr++.h
deleted file mode 100644
index 075ffe6090b..00000000000
--- a/rpc++/rpc++/xdr++.h
+++ /dev/null
@@ -1,99 +0,0 @@
-// -*- c++ -*-
-// $Id$
-/*
-Copyright (C) 1991 Peter Bersen
-
-This file is part of the rpc++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library 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 Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Modified and partially rewritten March 1992 by Michael N. Lipp,
-mnl@dtro.e-technik.th-darmstadt.de. The original copyright terms and
-conditions apply without change to any modified or new parts.
-*/
-
-#ifndef _XDRPLPL_H_
-#define _XDRPLPL_H_
-static char _rpcpp_xdrpp_h_[]
-= "xdr++.h,v 2.3 1992/06/15 19:13:33 mnl Exp";
-
-// xdr++.h,v
-// Revision 2.3 1992/06/15 19:13:33 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:44 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:43 mnl
-// Initial mnl version.
-//
-
-#ifdef __GNUG__
-#pragma interface
-#endif
-
-/*
-** Class XdrInfo describes serializers. It combines the xdrproc_t with the
-** size info usually needed if you want to apply a serializer.
-*/
-
-#include <rpc/rpc.h>
-
-class XdrInfo
-{
-protected:
- xdrproc_t proc;
- size_t size;
-public:
- inline XdrInfo (xdrproc_t p, size_t s)
- { proc = p; size = s; }
- inline xdrproc_t Proc () const
- { return proc; }
- inline size_t Size () const
- { return size; }
-};
-
-struct XdrSeqInfo
-{
- XdrInfo** infos;
- void** data;
-};
-
-/*
-** Class Xdr provides a unique (C++-like) name scope for the predefined
-** xdr routines by defining them as static members of type XdrInfo.
-*/
-
-class Xdr
-{
-public:
- static XdrInfo Xnull;
- static XdrInfo Xchar;
- static XdrInfo Xshort;
- static XdrInfo Xint;
- static XdrInfo Xlong;
- static XdrInfo Xuchar;
- static XdrInfo Xushort;
- static XdrInfo Xuint;
- static XdrInfo Xulong;
- static XdrInfo Xfloat;
- static XdrInfo Xdouble;
-
- static XdrInfo Xenum_t;
- static XdrInfo Xbool_t;
- static XdrInfo Xvoid;
-
- static XdrInfo Xwrapstring;
-
- static bool_t XdrParams (XDR* xdrs, XdrSeqInfo* xsi);
-};
-
-#endif
diff --git a/rpc++/service.cc b/rpc++/service.cc
deleted file mode 100644
index 962684c0fe8..00000000000
--- a/rpc++/service.cc
+++ /dev/null
@@ -1,317 +0,0 @@
-// -*- c++ -*-
-// $Id$
-/*
-Copyright (C) 1991 Peter Bersen
-
-This file is part of the rpc++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library 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 Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Modified and partially rewritten March 1992 by Michael N. Lipp,
-mnl@dtro.e-technik.th-darmstadt.de. The original copyright terms and
-conditions apply without change to any modified or new parts.
-*/
-
-static char _rpcpp_service_cc_[]
-= "service.cc,v 2.3 1992/06/15 19:12:44 mnl Exp";
-
-// service.cc,v
-// Revision 2.3 1992/06/15 19:12:44 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:02 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:42 mnl
-// Initial mnl version.
-//
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include <assert.h>
-#include <stream.h>
-#include <memory.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <rpc/rpc.h>
-#include <rpc/svc.h>
-#include "rpc++/service.h"
-#include "rpc++/request.h"
-
-extern "C" {
- extern int getdtablesize();
-}
-
-//
-// RpcRegistered
-//
-
-class RpcRegistered
-{
-public:
- RpcRequest request;
- AnyRpcCallback* callback;
-
- inline RpcRegistered (const RpcRequest& req, AnyRpcCallback* cb)
- : request (req), callback (cb) { }
- inline ~RpcRegistered ()
- { delete callback; }
-};
-
-//
-// RpcService
-//
-
-RpcService* RpcService::me = 0;
-
-RpcService::RpcService (u_long pnum, u_long vnum)
-{
- init ();
- prog = pnum;
- vers = vnum;
- // find out if we have been started by inetd and set transp accoringly.
- sockaddr_in sa;
- int sasz = sizeof (sa);
- // if started by inetd, stdin is a socket
- if (! getsockname (0, (sockaddr*)&sa, &sasz))
- { // yup, inetd is our parent
- xprt = svctcp_create(0, 0, 0);
- }
- else
- { // we are standalone
- (void) pmap_unset(prog, vers);
- xprt = svctcp_create(RPC_ANYSOCK, 0, 0);
- }
- if (xprt == NULL)
- {
- HandleError (cantCreateTCPService);
- return;
- }
- if (!svc_register(xprt, prog, vers, RpcServiceCallback, IPPROTO_TCP))
- {
- HandleError (cantRegisterService);
- return;
- }
-}
-
-RpcService::RpcService (u_long vnum)
-{
- init ();
- vers = vnum;
- prog = 0x40000000;
- xprt = svctcp_create(RPC_ANYSOCK, 0, 0);
- if (xprt == NULL)
- {
- HandleError (cantCreateTCPService);
- return;
- }
- while (! pmap_set (prog, vers, IPPROTO_TCP, xprt->xp_port))
- prog++;
- if (!svc_register(xprt, prog, vers, RpcServiceCallback, IPPROTO_TCP))
- {
- HandleError (cantRegisterService);
- return;
- }
-}
-
-void RpcService::init ()
-{
- errorState = noError;
- if (me)
- {
- HandleError (reconstructionAttempt);
- return;
- }
- me = this;
- handlers = 0;
- maxHandlerIndex = -1;
- inbuf = 0;
- inmax = 0;
-}
-
-RpcService::~RpcService ()
-{
- svc_unregister (prog, vers);
- for (int i = 0; i <= maxHandlerIndex; i++)
- delete handlers[i];
- delete [] handlers;
- delete [] inbuf;
- me = 0;
-}
-
-void RpcService::HandleError ()
-{
- switch (errorState)
- {
- case reconstructionAttempt:
- cerr << "rpc++: Attempt to construct another instance of RpcService.\n";
- exit (1);
- case cantCreateTCPService:
- cerr << "rpc++: can't create tcp service.\n";
- exit(1);
- case cantRegisterService:
- cerr << form ("rpc++: can't register (%d, %d, tcp).", prog, vers);
- exit(1);
- case cantSendReply:
- cerr << "rpc++: can't reply to RPC call.\n";
- break;
- case invalidResult:
- cerr << "rpc++: registered routine has return NULL pointer.\n";
- abort ();
- case notRegistered:
- cerr << "rpc++: requested RPC routine not registered.\n";
- break;
- case cantGetArgs:
- cerr << "rpc++: can't get procedure arguments.\n";
- break;
- case cantFreeArgs:
- cerr << "rpc++: can't free XDR arguments.\n";
- break;
- }
- errorState = noError;
-}
-
-void RpcService::Register (const RpcRequest& req, const AnyRpcCallback& cb)
-{
- assert (req.Params () == -1 || cb.Params () == -1
- || req.Params () == cb.Params ());
- AnyRpcCallback* cbp = cb.CopyToHeap ();
- cbp->SetService (this);
- if (req.RequestNumber () > maxHandlerIndex)
- {
- RpcRegistered** reg = new RpcRegistered*[req.RequestNumber () + 10];
- memcpy (reg, handlers, (maxHandlerIndex + 1) * sizeof (RpcRegistered*));
- memset (&reg[maxHandlerIndex + 1], 0,
- (req.RequestNumber () + 10 - (maxHandlerIndex + 1))
- * sizeof (RpcRegistered*));
- delete handlers;
- handlers = reg;
- maxHandlerIndex = req.RequestNumber () + 10 - 1;
- }
- handlers[req.RequestNumber ()] = new RpcRegistered (req, cbp);
-}
-
-void RpcService::Dispatch (svc_req* req, SVCXPRT* transp)
-{
- xprt = transp;
- if (req->rq_proc == NULLPROC)
- {
- if (! svc_sendreply (xprt, xdr_void, 0))
- {
- svcerr_systemerr (xprt);
- HandleError (cantSendReply);
- }
- return;
- }
- RpcRegistered* handler = ((req->rq_proc > maxHandlerIndex)
- ? 0
- : handlers[req->rq_proc]);
- if (! handler)
- {
- svcerr_noproc (xprt);
- HandleError (notRegistered);
- return;
- }
- rpcreq = &handler->request;
-
- int insz = rpcreq->ParamSize ();
- if (insz > inmax) // does in-data fit in available buffer?
- { // if not, increase buffer space
- delete [] inbuf;
- inbuf = new char[inmax = insz];
- }
- void* dataps[rpcreq->Params ()];
- void** dp = dataps;
- *dp = inbuf;
- for (XdrInfo** ip = rpcreq->InInfo(); *ip; ip++, dp++)
- dp[1] = (char*)dp[0] + (*ip)->Size ();
-
- memset (inbuf, 0, insz);
- XdrSeqInfo xsi = { rpcreq->InInfo (), dataps };
- if (!svc_getargs (xprt, Xdr::XdrParams, &xsi))
- {
- if (rpcreq->Type () == RpcRequest::normal) // errors can be reported
- svcerr_decode (xprt); // only if the client waits for a result
- HandleError (cantGetArgs);
- return;
- }
- haveReplied = FALSE;
- void* res = handler->callback->Do (dataps);
- if (! haveReplied)
- Reply (res);
- if (!svc_freeargs (xprt, Xdr::XdrParams, &xsi))
- HandleError (cantFreeArgs);
- xprt = 0;
-}
-
-void RpcService::Reply (void* res)
-{
- haveReplied = TRUE;
- if (rpcreq->Type () == RpcRequest::normal) // i.e., result expected
- {
- xdrproc_t outproc = rpcreq->OutInfo()->Proc ();
- if (outproc == (xdrproc_t)0)
- {
- cerr << "rpc++: RpcRequest has invalid xdrproc_t (0) in out-Info";
- abort ();
- }
- if (res == 0 && outproc != (xdrproc_t)xdr_void)
- {
- svcerr_systemerr (xprt);
- HandleError ();
- }
- else if (!svc_sendreply
- (xprt, rpcreq->OutInfo()->Proc (), res))
- {
- svcerr_systemerr (xprt);
- HandleError (cantSendReply);
- }
- }
-}
-
-void RpcService::Provide ()
-{
- int dtbsz = getdtablesize();
- fd_set readfds;
-
- quitLoop = FALSE;
- while (! quitLoop)
- {
- readfds = svc_fdset;
- switch(select (dtbsz, &readfds, 0, 0, 0))
- {
- case -1:
- if (errno != EBADF)
- continue;
- cerr << "PRC++: select: " << sys_errlist[errno] << '\n';
- return;
- break;
- case 0:
- continue;
- default:
- svc_getreqset (&readfds);
- break;
- }
- }
-}
-
-char* RpcService::CallerName ()
-{
- struct sockaddr_in *sa = Caller ();
- struct hostent* he = gethostbyaddr (&sa->sin_addr, sizeof (sa->sin_addr),
- sa->sin_family);
- return he->h_name;
-}
diff --git a/rpc++/stub.cc b/rpc++/stub.cc
deleted file mode 100644
index 40fdfb016a0..00000000000
--- a/rpc++/stub.cc
+++ /dev/null
@@ -1,208 +0,0 @@
-// -*- c++ -*-
-// $Id$
-/*
-Copyright (C) 1991 Peter Bersen
-
-This file is part of the rpc++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library 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 Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Modified and partially rewritten March 1992 by Michael N. Lipp,
-mnl@dtro.e-technik.th-darmstadt.de. The original copyright terms and
-conditions apply without change to any modified or new parts.
-*/
-
-static char _rpcpp_stub_cc_[]
-= "stub.cc,v 2.3 1992/06/15 19:12:46 mnl Exp";
-
-// stub.cc,v
-// Revision 2.3 1992/06/15 19:12:46 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:04 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:42 mnl
-// Initial mnl version.
-//
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include <stream.h>
-#include <memory.h>
-#include <assert.h>
-#include "rpc++/stub.h"
-
-timeval RpcStub::defaultTimeout = { 25, 0 };
-void* RpcStub::res = 0;
-size_t RpcStub::resmax = 0;
-xdrproc_t RpcStub::resproc = 0;
-
-void RpcStub::init (u_long prog, u_long vers,
- char* srv, timeval timo, bool connect)
-{
- errorState = noError;
- program = prog;
- version = vers;
- server = srv;
- timeout = timo;
- svc = 0;
- if (connect)
- Reconnect ();
- else
- errorState = notConnected;
-}
-
-RpcStub::~RpcStub ()
-{
- if (resproc) // "Call" has been called at least once,
- clnt_freeres (svc, resproc, res); // free any data allocated by clnt_call
- if (svc)
- clnt_destroy (svc);
-}
-
-void* RpcStub::HandleError ()
-{
- switch (errorState)
- {
- case notConnected:
- cerr << "rpc++: Stub has not been connected to server.\n";
- case cantCreate:
- cerr << clnt_spcreateerror ("rpc++") << '\n';
- break;
- case cantCall:
- cerr << clnt_sperror (svc, "rpc++") << '\n';
- exit (1);
- }
- return 0; // suppress compiler warning
-}
-
-void RpcStub::Reconnect ()
-{
- if (svc)
- clnt_destroy (svc);
- svc = clnt_create (server, program, version, "tcp"); // connect to client
- if (svc == 0) // failed ?
- {
- HandleError (cantCreate);
- errorState = notConnected;
- return;
- }
- errorState = noError;
-}
-
-void* RpcStub::Call (RpcRequest& req, void* in, bool handle_errors)
-{
- void* args[] = { in };
- return DoCall (req, args, handle_errors);
-}
-
-void* RpcStub::Call (RpcRequest& req, void* in0, void* in1, bool handle_errors)
-{
- void* args[] = { in0, in1 };
- return DoCall (req, args, handle_errors);
-}
-
-void* RpcStub::Call (RpcRequest& req, void* in0, void* in1, void* in2,
- bool handle_errors)
-{
- void* args[] = { in0, in1, in2 };
- return DoCall (req, args, handle_errors);
-}
-
-void* RpcStub::Call (RpcRequest& req, void* in0, void* in1, void* in2,
- void* in3, bool handle_errors)
-{
- void* args[] = { in0, in1, in2, in3 };
- return DoCall (req, args, handle_errors);
-}
-
-void* RpcStub::Call (RpcRequest& req, void* in0, void* in1, void* in2,
- void* in3, void* in4, bool handle_errors)
-{
- void* args[] = { in0, in1, in2, in3, in4 };
- return DoCall (req, args, handle_errors);
-}
-
-void* RpcStub::Call (RpcRequest& req, void* in0, void* in1, void* in2,
- void* in3, void* in4, void* in5, bool handle_errors)
-{
- void* args[] = { in0, in1, in2, in3, in4, in5 };
- return DoCall (req, args, handle_errors);
-}
-
-void* RpcStub::Call (RpcRequest& req, void* in0, void* in1, void* in2,
- void* in3, void* in4, void* in5, void* in6,
- bool handle_errors)
-{
- void* args[] = { in0, in1, in2, in3, in4, in5, in6 };
- return DoCall (req, args, handle_errors);
-}
-
-void* RpcStub::Call (RpcRequest& req, void** ins, bool handle_errors)
-{
- return DoCall (req, ins, handle_errors);
-}
-
-void* RpcStub::DoCall (RpcRequest& req, void** args, bool handle_errors)
-{
- static timeval nullTimeout = { 0, 0 };
-
- if (! OK () )
- {
- if (! handle_errors)
- return 0;
- return HandleError ();
- }
- if (resproc) // "Call" has been called previously,
- clnt_freeres (svc, resproc, res); // free any data allocated by clnt_call
- resproc = req.OutInfo()->Proc (); // current output deserializer
- if (req.OutInfo()->Size () > resmax) // enough space for result?
- {
- delete res; // delete old result buffer
- res = new char[resmax = req.OutInfo()->Size ()]; // get a new one
- }
- if (req.OutInfo()->Size () > 0 ) // preset result (everyone does it, why?)
- memset (res, 0, req.OutInfo()->Size ());
-
- XdrSeqInfo xsi = { req.InInfo (), args };
- if (req.Type () == RpcRequest::normal)
- {
- if (clnt_call (svc, req.RequestNumber (), // do call
- Xdr::XdrParams, &xsi,
- req.OutInfo()->Proc (), res,
- timeout) != RPC_SUCCESS)
- {
- if (! handle_errors)
- return 0;
- return HandleError (cantCall);
- }
- return res;
- }
-
- // req.Type () is batched or async
- enum clnt_stat callres;
- callres = clnt_call (svc, req.RequestNumber (), // do call
- Xdr::XdrParams, &xsi,
- (req.Type () == RpcRequest::batched
- ? (xdrproc_t)0 : xdr_void), res,
- nullTimeout);
- if (callres != RPC_SUCCESS && callres != RPC_TIMEDOUT)
- {
- if (! handle_errors)
- return 0;
- return HandleError (cantCall);
- }
- return res;
-}
-
diff --git a/rpc++/version.h b/rpc++/version.h
deleted file mode 100644
index 551bd241c3b..00000000000
--- a/rpc++/version.h
+++ /dev/null
@@ -1,5 +0,0 @@
-// version.h,v 2.2 1992/06/15 19:12:47 mnl Exp
-// $Id$
-#ifndef _RPCPLPL_VERSION_H_
-static char* version = "rpc++-library, version 2.2"
-#endif
diff --git a/rpc++/xdr++.cc b/rpc++/xdr++.cc
deleted file mode 100644
index 718e4ad285c..00000000000
--- a/rpc++/xdr++.cc
+++ /dev/null
@@ -1,76 +0,0 @@
-// -*- c++ -*-
-// $Id$
-/*
-Copyright (C) 1991 Peter Bersen
-
-This file is part of the rpc++ Library. This library is free
-software; you can redistribute it and/or modify it under the terms of
-the GNU Library General Public License as published by the Free
-Software Foundation; either version 2 of the License, or (at your
-option) any later version. This library 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 Library General Public License for more details.
-You should have received a copy of the GNU Library General Public
-License along with this library; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Modified and partially rewritten March 1992 by Michael N. Lipp,
-mnl@dtro.e-technik.th-darmstadt.de. The original copyright terms and
-conditions apply without change to any modified or new parts.
-*/
-
-static char _rpcpp_xdrpp_cc_[]
-= "xdr++.cc,v 2.3 1992/06/15 19:12:49 mnl Exp";
-
-// xdr++.cc,v
-// Revision 2.3 1992/06/15 19:12:49 mnl
-// Fixed a few bugs, clarified interface.
-//
-// Revision 2.2 1992/06/13 14:27:06 mnl
-// Adapted to (patched) gcc-2.2. Fixed several bugs.
-//
-// Revision 2.1.1.1 1992/03/08 13:28:42 mnl
-// Initial mnl version.
-//
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-/*
-** See Xdr.h.
-*/
-
-#include "rpc++/xdr++.h"
-
-XdrInfo Xdr::Xnull ((xdrproc_t)0, 0);
-XdrInfo Xdr::Xchar ((xdrproc_t)xdr_char, sizeof (char));
-XdrInfo Xdr::Xshort ((xdrproc_t)xdr_short, sizeof (short));
-XdrInfo Xdr::Xint ((xdrproc_t)xdr_int, sizeof (int));
-XdrInfo Xdr::Xlong ((xdrproc_t)xdr_long, sizeof (long));
-XdrInfo Xdr::Xuchar ((xdrproc_t)xdr_u_char, sizeof (u_char));
-XdrInfo Xdr::Xushort ((xdrproc_t)xdr_u_short, sizeof (u_short));
-XdrInfo Xdr::Xuint ((xdrproc_t)xdr_u_int, sizeof (u_int));
-XdrInfo Xdr::Xulong ((xdrproc_t)xdr_u_long, sizeof (u_long));
-XdrInfo Xdr::Xfloat ((xdrproc_t)xdr_float, sizeof (float));
-XdrInfo Xdr::Xdouble ((xdrproc_t)xdr_double, sizeof (double));
-
-XdrInfo Xdr::Xenum_t ((xdrproc_t)xdr_enum, sizeof (enum_t));
-XdrInfo Xdr::Xbool_t ((xdrproc_t)xdr_bool, sizeof (bool_t));
-XdrInfo Xdr::Xvoid ((xdrproc_t)xdr_void, 0);
-XdrInfo Xdr::Xwrapstring ((xdrproc_t)xdr_wrapstring, sizeof (char*));
-
-bool_t Xdr::XdrParams (XDR* xdrs, XdrSeqInfo* xsi)
-{
- XdrInfo** infop = xsi->infos;
- void** datap = xsi->data;
-
- while (*infop)
- {
- if (! (*infop->Proc ()) (xdrs, *datap))
- return FALSE;
- infop++, datap++;
- }
- return TRUE;
-}
diff --git a/tests/run_tests.lst b/tests/run_tests.lst
deleted file mode 100644
index cc304f80bda..00000000000
--- a/tests/run_tests.lst
+++ /dev/null
@@ -1,90 +0,0 @@
-ARGV_Test
-Basic_Types_Test
-Bound_Ptr_Test
-chorus/Env_Value_Test
-Capabilities_Test
-Config_Test
-Atomic_Op_Test
-Auto_IncDec_Test
-Object_Manager_Test
-CDR_Array_Test
-CDR_File_Test
-CDR_Test
-Dirent_Test
-Semaphore_Test
-TSS_Test
-Log_Msg_Test
-Timeprobe_Test
-Time_Value_Test
-High_Res_Timer_Test
-SString_Test
-Collection_Test
-Unicos/libDLL_Test/DLL_Test
-OTHER/chorus/LynxOS/Unicos/Naming_Test
-Handle_Set_Test
-OrdMultiSet_Test
-chorus/Unicos/Mem_Map_Test
-MEM_Stream_Test
-Malloc_Test
-Unicos/SV_Shared_Memory_Test
-chorus/Unicos/MM_Shared_Memory_Test
-DISABLED/Signal_Test
-Sigset_Ops_Test
-Timer_Queue_Test
-DISABLED/MT_Reactor_Timer_Test
-SOCK_Connector_Test
-LynxOS/SOCK_Send_Recv_Test
-Task_Test
-Unicos/Thread_Manager_Test
-DISABLED/Process_Manager_Test
-LynxOS/Thread_Pool_Test
-Future_Test
-Future_Set_Test
-RB_Tree_Test
-Reactors_Test
-Reactor_Exceptions_Test
-Reactor_Notify_Test
-Reactor_Timer_Test
-chorus/Reactor_Performance_Test
-Notify_Performance_Test
-Reader_Writer_Test
-chorus/Priority_Reactor_Test
-chorus/SOCK_Test
-chorus/MT_SOCK_Test
-SPIPE_Test
-UPIPE_SAP_Test
-Barrier_Test
-Svc_Handler_Test
-Buffer_Stream_Test
-Priority_Buffer_Test
-Dynamic_Priority_Test
-Recursive_Mutex_Test
-Reverse_Lock_Test
-DISABLED/netsvcs_main/TOKEN/chorus/Unicos/Time_Service_Test
-DISABLED/TOKEN/chorus/Unicos/Tokens_Test
-Cache_Map_Manager_Test
-LynxOS/Cached_Conn_Test
-Cached_Accept_Conn_Test
-Map_Manager_Test
-Hash_Map_Manager_Test
-Lazy_Map_Manager_Test
-Hash_Map_Bucket_Iterator_Test
-Map_Test
-Message_Queue_Notifications_Test
-chorus/Message_Queue_Test
-chorus/Message_Queue_Test_Ex
-chorus/Simple_Message_Block_Test
-chorus/Message_Block_Test
-chorus/Pipe_Test
-chorus/Process_Mutex_Test
-chorus/Thread_Mutex_Test
-chorus/LynxOS/Process_Strategy_Test
-Service_Config_Test
-Unicos/Priority_Task_Test
-IOStream_Test
-Enum_Interfaces_Test
-chorus/Upgradable_RW_Test
-chorus/Conn_Test
-DISABLED/New_Fail_Test
-OS_Test
-Refcounted_Auto_Ptr_Test
diff --git a/websvcs/Makefile b/websvcs/Makefile
deleted file mode 100644
index b98929bad75..00000000000
--- a/websvcs/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the ACE websvcs services
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-# lib must come first!
-DIRS = lib \
- 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/websvcs/README b/websvcs/README
deleted file mode 100644
index 4eec972c901..00000000000
--- a/websvcs/README
+++ /dev/null
@@ -1,11 +0,0 @@
-# $Id$
-
- This directory contains utility classes to build web clients
-and servers. At this point we have only implemented simple classes to
-manipulate and parse URL addresses, but hopefully the library will
-grow over time.
-
-Point of Contact: Carlos O'Ryan <coryan@cs.wustl.edu>
-
-
-
diff --git a/websvcs/lib/Makefile b/websvcs/lib/Makefile
deleted file mode 100644
index 6229c6d197b..00000000000
--- a/websvcs/lib/Makefile
+++ /dev/null
@@ -1,89 +0,0 @@
-#----------------------------------------------------------------------------
-# $Id$
-#
-# Makefile for the server-side ACE WEB services
-#----------------------------------------------------------------------------
-
-LIB = libwebsvcs.a
-SHLIB = libwebsvcs.$(SOEXT)
-
-FILES = URL_Addr
-DEFS = $(addsuffix .h,$(FILES))
-LSRC = $(addsuffix .cpp,$(FILES))
-
-LIBS += $(ACELIB)
-
-BUILD = $(VLIB) $(VSHLIB)
-
-#----------------------------------------------------------------------------
-# 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
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-ifeq ($(SUPPRESS_DASH_G),1)
-#### Build this target without -g on some platforms.
-$(VDIR)Server_Logging_Handler.o $(VSHDIR)Server_Logging_Handler.$(SOEXT):
- $(COMPILE-NO_DASH_G.cc) -o $@ $<
-endif # SUPPRESS_DASH_G
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/URL_Addr.o .obj/URL_Addr.so .shobj/URL_Addr.o .shobj/URL_Addr.so: URL_Addr.cpp URL_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- websvcs_export.h URL_Addr.i
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/websvcs/lib/URL_Addr.cpp b/websvcs/lib/URL_Addr.cpp
deleted file mode 100644
index 43a471075aa..00000000000
--- a/websvcs/lib/URL_Addr.cpp
+++ /dev/null
@@ -1,947 +0,0 @@
-// $Id$
-
-#include "URL_Addr.h"
-
-#if !defined (__ACE_INLINE__)
-#include "URL_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID(ace, URL_Addr, "$Id$")
-
-static ACE_TCHAR http[] = ACE_TEXT ("http:");
-static size_t http_size = sizeof(http)/sizeof(http[0]) - 1;
-static ACE_TCHAR ftp[] = ACE_TEXT ("ftp:");
-static size_t ftp_size = sizeof(ftp)/sizeof(ftp[0]) - 1;
-static ACE_TCHAR mailto[] = ACE_TEXT ("mailto:");
-static size_t mailto_size = sizeof(mailto)/sizeof(mailto[0]) - 1;
-
-static ACE_TCHAR file[] = ACE_TEXT ("file:");
-static size_t file_size = sizeof(file)/sizeof(file[0]) - 1;
-static ACE_TCHAR afs[] = ACE_TEXT ("afs:");
-static size_t afs_size = sizeof(afs)/sizeof(afs[0]) - 1;
-static ACE_TCHAR news[] = ACE_TEXT ("news:");
-static size_t news_size = sizeof(news)/sizeof(news[0]) - 1;
-static ACE_TCHAR nntp[] = ACE_TEXT ("nntp:");
-static size_t nntp_size = sizeof(nntp)/sizeof(nntp[0]) - 1;
-static ACE_TCHAR cid[] = ACE_TEXT ("cid:");
-static size_t cid_size = sizeof(cid)/sizeof(cid[0]) - 1;
-static ACE_TCHAR mid[] = ACE_TEXT ("mid:");
-static size_t mid_size = sizeof(mid)/sizeof(mid[0]) - 1;
-static ACE_TCHAR wais[] = ACE_TEXT ("wais:");
-static size_t wais_size = sizeof(wais)/sizeof(wais[0]) - 1;
-static ACE_TCHAR prospero[] = ACE_TEXT ("prospero:");
-static size_t prospero_size = sizeof(prospero)/sizeof(prospero[0]) - 1;
-static ACE_TCHAR telnet[] = ACE_TEXT ("telnet:");
-static size_t telnet_size = sizeof(telnet)/sizeof(telnet[0]) - 1;
-static ACE_TCHAR rlogin[] = ACE_TEXT ("rlogin:");
-static size_t rlogin_size = sizeof(rlogin)/sizeof(rlogin[0]) - 1;
-static ACE_TCHAR tn3270[] = ACE_TEXT ("tn3270:");
-static size_t tn3270_size = sizeof(tn3270)/sizeof(tn3270[0]) - 1;
-static ACE_TCHAR gopher[] = ACE_TEXT ("gopher:");
-static size_t gopher_size = sizeof(gopher)/sizeof(gopher[0]) - 1;
-
-
-ACE_URL_Addr::ACE_URL_Addr (void)
- : url_ (0)
-{
-}
-
-ACE_URL_Addr::~ACE_URL_Addr ()
-{
- ACE_OS::free (this->url_);
- this->url_ = 0;
-}
-
-int
-ACE_URL_Addr::set (const ACE_URL_Addr& address)
-{
- return this->ACE_URL_Addr::string_to_addr (address.url_);
-}
-
-int
-ACE_URL_Addr::string_to_addr (const ACE_TCHAR *address)
-{
- if (this->url_ != 0)
- ACE_OS::free (this->url_);
- if (address == 0)
- return -1;
- ACE_ALLOCATOR_RETURN (this->url_, ACE_OS::strdup (address), -1);
- return 0;
-}
-
-int
-ACE_URL_Addr::addr_to_string (ACE_TCHAR *s,
- size_t size,
- int) const
-{
- if (size < ACE_OS::strlen (this->url_))
- return -1;
- ACE_OS::strcpy (s, this->url_);
- return 0;
-}
-
-int
-ACE_URL_Addr::accept (ACE_URL_Addr_Visitor* visitor)
-{
- return visitor->visit (this);
-}
-
-// The factory method to create URL addresses.
-ACE_URL_Addr*
-ACE_URL_Addr::create_address (const ACE_TCHAR *url)
-{
- ACE_URL_Addr* addr = 0;
- if (ACE_OS::strncasecmp (http, url, http_size) == 0)
- ACE_NEW_RETURN (addr, ACE_HTTP_Addr (), 0);
- else if (ACE_OS::strncasecmp (ftp, url, ftp_size) == 0)
- ACE_NEW_RETURN (addr, ACE_FTP_Addr (), 0);
- else if (ACE_OS::strncasecmp (mailto, url, mailto_size) == 0)
- ACE_NEW_RETURN (addr, ACE_Mailto_Addr (), 0);
- else
- ACE_NEW_RETURN (addr, ACE_URL_Addr (), 0);
-
- if (addr->string_to_addr (url) != 0)
- {
- delete addr;
- addr = 0;
- }
- return addr;
-}
-
-int
-ACE_URL_Addr::known_scheme (const ACE_TCHAR *url)
-{
- if (ACE_OS::strncasecmp (http, url, http_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (ftp, url, ftp_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (mailto, url, mailto_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (file, url, file_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (afs, url, afs_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (news, url, news_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (nntp, url, nntp_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (cid, url, cid_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (mid, url, mid_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (wais, url, wais_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (prospero, url, prospero_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (telnet, url, telnet_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (rlogin, url, rlogin_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (tn3270, url, tn3270_size) == 0)
- return 1;
- else if (ACE_OS::strncasecmp (gopher, url, gopher_size) == 0)
- return 1;
-
- return 0;
-}
-
-// ****************************************************************
-
-ACE_URL_Addr_Visitor::~ACE_URL_Addr_Visitor (void)
-{
-}
-
-int
-ACE_URL_Addr_Visitor::visit (ACE_URL_Addr*)
-{
- return 0;
-}
-
-int
-ACE_URL_Addr_Visitor::visit (ACE_HTTP_Addr*)
-{
- return 0;
-}
-
-int
-ACE_URL_Addr_Visitor::visit (ACE_FTP_Addr*)
-{
- return 0;
-}
-
-int
-ACE_URL_Addr_Visitor::visit (ACE_Mailto_Addr*)
-{
- return 0;
-}
-
-// ****************************************************************
-
-ACE_HTTP_Addr::ACE_HTTP_Addr (void)
- : hostname_ (0),
- port_number_ (0),
- path_ (0),
- query_ (0)
-{
-}
-
-ACE_HTTP_Addr::ACE_HTTP_Addr (const ACE_TCHAR *host_name,
- const ACE_TCHAR *path,
- const ACE_TCHAR *query,
- u_short port)
- : hostname_ (0),
- port_number_ (0),
- path_ (0),
- query_ (0)
-{
- this->set (host_name, path, query, port);
-}
-
-ACE_HTTP_Addr::ACE_HTTP_Addr (const ACE_HTTP_Addr &addr)
- : ACE_URL_Addr (),
- hostname_ (0),
- port_number_ (0),
- path_ (0),
- query_ (0)
-{
- this->set (addr);
-}
-
-ACE_HTTP_Addr::~ACE_HTTP_Addr (void)
-{
- this->clear ();
- this->hostname_ = 0;
- this->path_ = 0;
- this->query_ = 0;
-}
-
-int
-ACE_HTTP_Addr::set (const ACE_TCHAR *host_name,
- const ACE_TCHAR *path,
- const ACE_TCHAR *query,
- u_short port)
-{
- if (host_name == 0 || path == 0)
- return -1;
-
- this->clear ();
- ACE_ALLOCATOR_RETURN (this->hostname_, ACE_OS::strdup (host_name), -1);
- this->port_number_ = port;
- ACE_ALLOCATOR_RETURN (this->path_, ACE_OS::strdup (path), -1);
- if (query != 0)
- ACE_ALLOCATOR_RETURN (this->query_, ACE_OS::strdup (query), -1);
- else
- this->query_ = 0;
-
- size_t size = this->url_size (1);
-
- ACE_TCHAR *buffer;
- ACE_ALLOCATOR_RETURN (buffer,
- ACE_reinterpret_cast(ACE_TCHAR *,
- ACE_OS::malloc (size)),
- -1);
- if (this->addr_to_string (buffer, size, 1) == -1)
- return -1;
- this->set_url (buffer);
- return 0;
-}
-
-int
-ACE_HTTP_Addr::set (const ACE_HTTP_Addr &addr)
-{
- if (this->ACE_URL_Addr::set (addr) != 0)
- return -1;
- this->clear ();
- if (addr.hostname_ != 0)
- ACE_ALLOCATOR_RETURN (this->hostname_, ACE_OS::strdup (addr.hostname_), -1);
- else
- ACE_ALLOCATOR_RETURN (this->hostname_, ACE_OS::strdup (""), -1);
- if (addr.path_ != 0)
- ACE_ALLOCATOR_RETURN (this->path_, ACE_OS::strdup (addr.path_), -1);
- else
- ACE_ALLOCATOR_RETURN (this->path_, ACE_OS::strdup (""), -1);
- this->port_number_ = addr.port_number_;
- if (addr.query_ != 0)
- ACE_ALLOCATOR_RETURN (this->query_, ACE_OS::strdup (addr.query_), -1);
- else
- this->query_ = 0;
- return 0;
-}
-
-void
-ACE_HTTP_Addr::clear (void)
-{
- if (this->hostname_ != 0)
- ACE_OS::free (this->hostname_);
- if (this->path_ != 0)
- ACE_OS::free (this->path_);
- if (this->query_ != 0)
- ACE_OS::free (this->query_);
-}
-
-size_t
-ACE_HTTP_Addr::url_size (int flags) const
-{
- // Notice that we cannot hard-code the value because the size in
- // wchar's may be different.
- size_t size =
- + sizeof (ACE_TEXT ("http://"))
- + sizeof (ACE_TEXT ("/:?")); // separators
-
- size_t chars =
- + (this->path_?ACE_OS::strlen (this->path_):0)
- + (this->query_?ACE_OS::strlen (this->query_):0);
-
-
- if (flags == 0)
- {
- size += sizeof (ACE_TEXT("255.255.255.255"));
- }
- else
- {
- chars += ACE_OS::strlen (this->hostname_);
- }
-
- if (this->port_number_ != ACE_DEFAULT_HTTP_PORT)
- {
- size += sizeof (ACE_TEXT(":65335"));
- }
-
- size += chars * sizeof(ACE_TCHAR);
-
- return size;
-}
-
-inline int
-path_copy (const ACE_TCHAR *begin,
- const ACE_TCHAR * /* end */,
- ACE_TCHAR *& target,
- const ACE_TCHAR *src)
-{
- // Copy one character at a time, if we find a /../ we go back to the
- // previous '/'
- for (; *src != 0; ++src)
- {
- ACE_TCHAR c = *src;
- switch (c)
- {
- case '/':
- if (src[1] == '.' && src[2] == '.' && src[3] == '/')
- {
- while (target != begin && *(--target) != '/');
- src += 3;
- }
- else if (src[1] == '.' && src[2] == '/')
- {
- src += 2;
- }
- else
- {
- *target = c;
- ++target;
- }
- break;
- default:
- *target = c;
- ++target;
- }
- }
- return 0;
-}
-
-ACE_URL_Addr*
-ACE_HTTP_Addr::create_relative_address (const ACE_TCHAR *url) const
-{
- if (ACE_URL_Addr::known_scheme (url))
- return ACE_URL_Addr::create_address (url);
-
- ACE_HTTP_Addr* addr = 0;
- if (url[0] == '/')
- {
- ACE_NEW_RETURN (addr, ACE_HTTP_Addr (this->get_hostname (),
- url + 1,
- 0,
- this->get_port_number ()),
- 0);
- }
- else
- {
- const ACE_TCHAR *path = this->get_path ();
- ACE_TCHAR *buf;
- size_t n = ACE_OS::strlen (url)
- + ACE_OS::strlen (path)
- + 2;
- ACE_NEW_RETURN (buf,
- ACE_TCHAR [n],
- 0);
-
- // We copy the contens of <path> into <buf>; but simplifying the
- // path, to avoid infinite loop like:
- // "foo/../foo/../foo/../foo/../foo/index.html"
- //
- ACE_TCHAR *target = buf;
-
- // Copy the path
- path_copy (buf, buf + n, target, path);
-
- if (url[0] == '#')
- {
- // Remove any # from the path
- ACE_TCHAR *p = target;
- while (p != buf && *(--p) != '#');
- if (p != buf)
- target = p;
- }
- else
- {
- // Go back to the last / to remove the basename.
- while (target != buf && *(--target) != '/');
- // Go back if we begin with '../'
- while ((url[0] == '.' && url[1] == '.' && url[2] == '/')
- || (url[0] == '.' && url[1] == '/'))
- {
- if (url[1] == '.')
- {
- // A ../ go back
- while (target != buf && *(--target) != '/');
- url += 3;
- }
- else
- {
- // A ./ remove
- url += 2;
- }
- }
-
- *target = '/'; ++target;
- }
- // Copy the url
- path_copy (buf, buf + n, target, url);
- // null terminate.
- *target = 0;
- ACE_NEW_RETURN (addr, ACE_HTTP_Addr (this->get_hostname (),
- buf,
- 0,
- this->get_port_number ()),
- 0);
- delete[] buf;
- }
- return addr;
-}
-
-int
-ACE_HTTP_Addr::string_to_addr (const ACE_TCHAR *address)
-{
- if (address == 0)
- return -1;
-
- if (ACE_OS::strncasecmp (http, address, http_size) != 0)
- return -1;
-
- this->clear ();
- this->hostname_ = 0;
- this->path_ = 0;
- this->query_ = 0;
-
- // Save the original URL....
- if (this->ACE_URL_Addr::string_to_addr (address) != 0)
- return -1;
-
- const ACE_TCHAR *string = address;
- string += http_size;
- string += 2; // == strlen ("//");
-
- // Make a copy of the string to manipulate it.
- ACE_ALLOCATOR_RETURN (this->hostname_, ACE_OS::strdup (string), -1);
-
- ACE_TCHAR *path_start = ACE_OS::strchr (this->hostname_, '/');
- if (path_start != 0)
- {
- // terminate the host:port substring
- path_start[0] = '\0';
- path_start++;
- ACE_TCHAR *query_start = ACE_OS::strchr (path_start, '?');
- if (query_start != 0)
- {
- query_start[0] = '\0';
- query_start++;
- ACE_ALLOCATOR_RETURN (this->query_,
- ACE_OS::strdup (query_start),
- -1);
- }
- ACE_ALLOCATOR_RETURN (this->path_, ACE_OS::strdup (path_start), -1);
- }
-
- // By now t is null terminated at the start of the path, find the
- // port (if present).
- ACE_TCHAR *port_start = ACE_OS::strchr(this->hostname_, ':');
- this->port_number_ = ACE_DEFAULT_HTTP_PORT;
- if (port_start != 0)
- {
- // terminate the ipaddr.
- port_start[0] = '\0';
- port_start++;
- this->port_number_ = ACE_OS::atoi (port_start);
- }
-
- return 0;
-}
-
-int
-ACE_HTTP_Addr::addr_to_string (ACE_TCHAR *buffer,
- size_t size,
- int flags) const
-{
- if (size < this->url_size (flags))
- return -1;
-
- if (this->hostname_ == 0)
- return -1;
-
- size_t n = ACE_OS::sprintf (buffer,
- ACE_TEXT ("http://"));
- if (flags == 0)
- {
- ACE_INET_Addr inet = this->get_inet_address ();
- n += ACE_OS::sprintf (buffer + n, "%s", inet.get_host_addr ());
- }
- else
- {
- n += ACE_OS::sprintf (buffer + n, "%s", this->hostname_);
- }
-
- if (this->port_number_ != ACE_DEFAULT_HTTP_PORT)
- {
- n += ACE_OS::sprintf (buffer + n, ":%d", this->port_number_);
- }
- if (this->path_ != 0)
- {
- n += ACE_OS::sprintf (buffer + n, "/%s", this->path_);
- }
- if (this->query_ != 0)
- {
- n += ACE_OS::sprintf (buffer + n, "?%s", this->query_);
- }
- return 0;
-}
-
-int
-ACE_HTTP_Addr::accept (ACE_URL_Addr_Visitor *visitor)
-{
- return visitor->visit (this);
-}
-
-// ****************************************************************
-
-ACE_FTP_Addr::ACE_FTP_Addr (void)
- : user_ (0),
- password_ (0),
- hostname_ (0),
- path_ (0)
-{
-}
-
-ACE_FTP_Addr::ACE_FTP_Addr (const ACE_TCHAR *host_name,
- const ACE_TCHAR *path,
- const ACE_TCHAR *user,
- const ACE_TCHAR *password)
- : user_ (0),
- password_ (0),
- hostname_ (0),
- path_ (0)
-{
- this->set (host_name, path, user, password);
-}
-
-ACE_FTP_Addr::ACE_FTP_Addr (const ACE_FTP_Addr& addr)
- : ACE_URL_Addr (),
- user_ (0),
- password_ (0),
- hostname_ (0),
- path_ (0)
-{
- this->set (addr);
-}
-
-ACE_FTP_Addr::~ACE_FTP_Addr (void)
-{
- this->clear ();
-}
-
-int
-ACE_FTP_Addr::set (const ACE_TCHAR *host_name,
- const ACE_TCHAR *path,
- const ACE_TCHAR *user,
- const ACE_TCHAR *password)
-{
- if (host_name == 0 || path == 0)
- return -1;
- this->clear ();
- ACE_ALLOCATOR_RETURN (this->hostname_, ACE_OS::strdup (host_name), -1);
- ACE_ALLOCATOR_RETURN (this->path_, ACE_OS::strdup (path), -1);
- if (user != 0)
- ACE_ALLOCATOR_RETURN (this->user_, ACE_OS::strdup (user), -1);
- else
- this->user_ = 0;
- if (this->password_ != 0)
- ACE_ALLOCATOR_RETURN (this->password_, ACE_OS::strdup (password), -1);
- else
- this->password_ = 0;
-
- size_t size = this->url_size (1);
-
- ACE_TCHAR *buffer;
- ACE_ALLOCATOR_RETURN (buffer,
- ACE_reinterpret_cast(ACE_TCHAR *,
- ACE_OS::malloc (size)),
- -1);
- if (this->addr_to_string (buffer, size, 1) == -1)
- return -1;
- this->set_url (buffer);
- return 0;
-}
-
-int
-ACE_FTP_Addr::set (const ACE_FTP_Addr& addr)
-{
- if (this->ACE_URL_Addr::set (addr) != 0)
- return -1;
- this->clear ();
- ACE_ALLOCATOR_RETURN (this->hostname_, ACE_OS::strdup (addr.hostname_), -1);
- ACE_ALLOCATOR_RETURN (this->path_, ACE_OS::strdup (addr.path_), -1);
- if (addr.user_ != 0)
- ACE_ALLOCATOR_RETURN (this->user_, ACE_OS::strdup (addr.user_), -1);
- else
- this->user_ = 0;
- if (addr.password_ != 0)
- ACE_ALLOCATOR_RETURN (this->password_, ACE_OS::strdup (addr.password_), -1);
- else
- this->password_ = 0;
- return 0;
-}
-
-void
-ACE_FTP_Addr::clear (void)
-{
- if (this->hostname_ != 0)
- ACE_OS::free (this->hostname_);
- if (this->path_ != 0)
- ACE_OS::free (this->path_);
- if (this->user_ != 0)
- ACE_OS::free (this->user_);
- if (this->password_ != 0)
- ACE_OS::free (this->password_);
-}
-
-size_t
-ACE_FTP_Addr::url_size (int flags) const
-{
- // Notice that we cannot hard-code the value because the size in
- // wchar's may be different.
- size_t size =
- + sizeof (ACE_TEXT ("ftp://"))
- + sizeof (ACE_TEXT ("@:/")); // separators
-
- size_t chars =
- + (this->user_?ACE_OS::strlen (this->path_):0)
- + (this->password_?ACE_OS::strlen (this->password_):0)
- + (this->path_?ACE_OS::strlen (this->path_):0);
-
- if (flags == 0)
- {
- size += sizeof (ACE_TEXT("255.255.255.255"));
- }
- else
- {
- chars += ACE_OS::strlen (this->hostname_);
- }
-
- size += chars * sizeof(ACE_TCHAR);
- return size;
-}
-
-int
-ACE_FTP_Addr::addr_to_string (ACE_TCHAR *buffer,
- size_t size,
- int flags) const
-{
- if (size < this->url_size (flags))
- return -1;
-
- size_t n = ACE_OS::sprintf (buffer,
- ACE_TEXT ("ftp://"));
-
- if (this->user_ != 0)
- {
- n += ACE_OS::sprintf (buffer + n, "%s", this->user_);
- }
- if (this->password_ != 0)
- {
- n += ACE_OS::sprintf (buffer + n, ":%s", this->password_);
- }
-
- if (this->user_ != 0)
- {
- n += ACE_OS::sprintf (buffer + n, "@");
- }
-
- if (flags == 0)
- {
- ACE_INET_Addr inet = this->get_inet_address ();
- n += ACE_OS::sprintf (buffer + n, "%s", inet.get_host_addr ());
- }
- else
- {
- n += ACE_OS::sprintf (buffer + n, "%s", this->hostname_);
- }
- if (this->path_ != 0)
- {
- n += ACE_OS::sprintf (buffer + n, "/%s", this->path_);
- }
- return 0;
-}
-
-int
-ACE_FTP_Addr::string_to_addr (const ACE_TCHAR *address)
-{
- if (address == 0)
- return -1;
- if (ACE_OS::strncasecmp (ftp, address, ftp_size) != 0)
- return -1;
-
- this->clear ();
- this->hostname_ = 0;
- this->user_ = 0;
- this->password_ = 0;
- this->path_ = 0;
-
- // Save the original URL....
- this->ACE_URL_Addr::string_to_addr (address);
-
- const ACE_TCHAR *string = address;
- string += ftp_size;
- string += 2; // == strlen ("//");
-
- // Make a copy of the string to manipulate it.
- ACE_TCHAR *t;
- ACE_ALLOCATOR_RETURN (t, ACE_OS::strdup (string), -1);
-
- ACE_TCHAR *path_start = ACE_OS::strchr (t, '/');
- if (path_start != 0)
- {
- // terminate the host:port substring
- path_start[0] = '\0';
- path_start++;
- ACE_ALLOCATOR_RETURN (this->path_, ACE_OS::strdup (path_start), -1);
- }
-
- ACE_TCHAR *host_start = ACE_OS::strchr (t, '@');
- if (host_start != 0)
- {
- host_start[0] = '\0';
- host_start++;
- ACE_ALLOCATOR_RETURN (this->hostname_,
- ACE_OS::strdup (host_start),
- -1);
- ACE_TCHAR *pass_start = ACE_OS::strchr (t, ':');
- if (pass_start != 0)
- {
- pass_start[0] = '\0';
- pass_start++;
- ACE_ALLOCATOR_RETURN (this->password_,
- ACE_OS::strdup (pass_start),
- -1);
- }
- this->user_ = t;
- }
- else
- {
- this->hostname_ = t;
- }
-
- return 0;
-}
-
-int
-ACE_FTP_Addr::accept (ACE_URL_Addr_Visitor* visitor)
-{
- return visitor->visit (this);
-}
-
-// ****************************************************************
-
-ACE_Mailto_Addr::ACE_Mailto_Addr (void)
- : user_ (0),
- hostname_ (0),
- headers_ (0)
-{
-}
-
-ACE_Mailto_Addr::ACE_Mailto_Addr (const ACE_TCHAR *user,
- const ACE_TCHAR *hostname,
- const ACE_TCHAR *headers)
- : user_ (0),
- hostname_ (0),
- headers_ (0)
-{
- this->set (user, hostname, headers);
-}
-
-ACE_Mailto_Addr::ACE_Mailto_Addr (const ACE_Mailto_Addr &addr)
- : ACE_URL_Addr (addr),
- user_ (0),
- hostname_ (0),
- headers_ (0)
-{
- this->set (addr);
-}
-
-ACE_Mailto_Addr::~ACE_Mailto_Addr (void)
-{
- this->clear ();
-}
-
-int
-ACE_Mailto_Addr::set (const ACE_TCHAR *user,
- const ACE_TCHAR *hostname,
- const ACE_TCHAR *headers)
-{
- if (user == 0 || hostname == 0)
- return -1;
- this->clear ();
- ACE_ALLOCATOR_RETURN (this->user_, ACE_OS::strdup (user), -1);
- ACE_ALLOCATOR_RETURN (this->hostname_, ACE_OS::strdup (hostname), -1);
- if (headers != 0)
- ACE_ALLOCATOR_RETURN (this->headers_, ACE_OS::strdup (headers), -1);
- else
- this->headers_ = 0;
- size_t size = this->url_size (1);
- ACE_TCHAR *buffer;
- ACE_ALLOCATOR_RETURN (buffer,
- ACE_reinterpret_cast(ACE_TCHAR *,
- ACE_OS::malloc (size)),
- -1);
- if (this->addr_to_string (buffer, size, 1) == -1)
- return -1;
- this->set_url (buffer);
- return 0;
-}
-
-int
-ACE_Mailto_Addr::set (const ACE_Mailto_Addr &addr)
-{
- if (this->ACE_URL_Addr::set (addr) != 0)
- return -1;
- this->clear ();
- ACE_ALLOCATOR_RETURN (this->user_, ACE_OS::strdup (addr.user_), -1);
- ACE_ALLOCATOR_RETURN (this->hostname_, ACE_OS::strdup (addr.hostname_), -1);
- if (addr.headers_ != 0)
- ACE_ALLOCATOR_RETURN (this->headers_, ACE_OS::strdup (addr.headers_), -1);
- else
- this->headers_ = 0;
- return 0;
-}
-
-void
-ACE_Mailto_Addr::clear (void)
-{
- if (this->user_ != 0)
- ACE_OS::free (this->user_);
- if (this->hostname_ != 0)
- ACE_OS::free (this->hostname_);
- if (this->headers_ != 0)
- ACE_OS::free (this->headers_);
-}
-
-size_t
-ACE_Mailto_Addr::url_size (int) const
-{
- // Notice that we cannot hard-code the value because the size in
- // wchar's may be different.
- size_t size = sizeof (ACE_TEXT ("mailto:"))
- + sizeof (ACE_TEXT ("@?")); // separators
-
- size_t chars =
- + (this->user_?ACE_OS::strlen (this->user_):0)
- + (this->hostname_?ACE_OS::strlen (this->hostname_):0)
- + (this->headers_?ACE_OS::strlen (this->headers_):0);
- size += chars * sizeof (ACE_TCHAR);
-
- return size;
-}
-
-int
-ACE_Mailto_Addr::addr_to_string (ACE_TCHAR *buffer,
- size_t size,
- int flags) const
-{
- if (size < this->url_size (flags))
- return -1;
- if (this->user_ == 0 || this->hostname_ == 0)
- return -1;
-
- size_t n = ACE_OS::sprintf (buffer, ACE_TEXT ("mailto:%s@%s"),
- this->user_, this->hostname_);
- if (this->headers_ != 0)
- {
- n += ACE_OS::sprintf (buffer + n, ACE_TEXT ("?%s"),
- this->headers_);
- }
-
- return 0;
-}
-
-int
-ACE_Mailto_Addr::string_to_addr (const ACE_TCHAR *address)
-{
- if (ACE_OS::strncasecmp (mailto, address, mailto_size) != 0)
- return -1;
-
- this->clear ();
- this->user_ = 0;
- this->hostname_ = 0;
- this->headers_ = 0;
-
- // Save the original URL....
- if (this->ACE_URL_Addr::string_to_addr (address) != 0)
- return -1;
-
- const ACE_TCHAR *string = address;
- string += mailto_size;
-
- // Make a copy of the string to manipulate it.
- ACE_TCHAR *t;
- ACE_ALLOCATOR_RETURN (t, ACE_OS::strdup (string), -1);
-
- ACE_TCHAR *host_start = ACE_OS::strchr (t, '@');
- if (host_start != 0)
- {
- // terminate the host:port substring
- host_start[0] = '\0';
- host_start++;
- ACE_TCHAR *headers_start = ACE_OS::strchr (host_start, '?');
- if (headers_start != 0)
- {
- headers_start[0] = '\0';
- headers_start++;
- ACE_ALLOCATOR_RETURN (this->headers_,
- ACE_OS::strdup (headers_start),
- -1);
- }
- ACE_ALLOCATOR_RETURN (this->hostname_, ACE_OS::strdup (host_start), -1);
- }
- else
- {
- ACE_OS::free (t);
- return -1;
- }
- this->user_ = t;
-
- return 0;
-}
-
-int
-ACE_Mailto_Addr::accept (ACE_URL_Addr_Visitor* visitor)
-{
- return visitor->visit (this);
-}
diff --git a/websvcs/lib/URL_Addr.h b/websvcs/lib/URL_Addr.h
deleted file mode 100644
index c83edf69440..00000000000
--- a/websvcs/lib/URL_Addr.h
+++ /dev/null
@@ -1,403 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// URL_Addr.h
-//
-// = AUTHOR
-// Douglas C. Schmidt <schmidt@cs.wustl.edu>
-//
-// ============================================================================
-
-#ifndef ACE_URL_ADDR_H
-#define ACE_URL_ADDR_H
-
-#include "ace/INET_Addr.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include "websvcs_export.h"
-
-class ACE_URL_Addr_Visitor;
-
-class ACE_WEBSVCS_Export ACE_URL_Addr : public ACE_Addr
-{
- // = TITLE
- // Defines the interface for an URL
- //
- // = DESCRIPTION
- // All URLs derive from this class
- //
-public:
- ACE_URL_Addr (void);
- // Constructor.
-
- ACE_URL_Addr (const ACE_URL_Addr& address);
- // The copy constructor.
-
- ACE_URL_Addr& operator= (const ACE_URL_Addr& address);
- // The assignment operator
-
- virtual ~ACE_URL_Addr (void);
- // destructor
-
- const ACE_TCHAR *get_url (void) const;
- // Get the original URL
-
- int set (const ACE_URL_Addr& address);
- // Essentially the copy contructor.
-
- virtual int string_to_addr (const ACE_TCHAR *address);
- // Initializes from the scheme specific address, for instance: if
- // the address is an http URL it will initialize the address from
- // an string such as "www.cs.wustl.edu/~schmidt"
-
- virtual int addr_to_string (ACE_TCHAR *s,
- size_t size,
- int flags = 0) const;
- // Write the address in the scheme specific representation.
- // <flags> provides control over scheme specific features (such as
- // using numeric vs. fully qualified host names).
-
- virtual int accept (ACE_URL_Addr_Visitor* visitor);
- // The accept method in the Visitor Pattern. Should return 0 on
- // success and not 0 on failure.
-
- static ACE_URL_Addr* create_address (const ACE_TCHAR *url);
- // Create an address from a complete URL, such as "http://www/foo"
- // or "ftp://ftp.here/get_this".
-
- static int known_scheme (const ACE_TCHAR *url);
- // Returns 1 if the URL scheme is recognized, 0 otherwise.
-
- u_long hash (void) const;
- // Hash function
-
-protected:
- void set_url (ACE_TCHAR *url);
- // Allows the derived classes to store the compact representation of
- // the URL
-
-private:
- ACE_TCHAR *url_;
-};
-
-class ACE_HTTP_Addr;
-class ACE_FTP_Addr;
-class ACE_Mailto_Addr;
-// @@ TODO add more URL schemes as needed.
-// class ACE_File_Addr;
-// class ACE_AFS_Addr;
-// class ACE_News_Addr;
-// class ACE_NNTP_Addr;
-// class ACE_CID_Addr;
-// class ACE_MID_Addr;
-// class ACE_WAIS_Addr;
-// class ACE_Prospero_Addr;
-// class ACE_Telnet_Addr;
-// class ACE_Rlogin_Addr;
-// class ACE_TN3270_Addr;
-// class ACE_Gopher_Addr;
-
-class ACE_WEBSVCS_Export ACE_URL_Addr_Visitor
-{
- // = TITLE
- // Implements a Visitor object for the ACE_URL hierarchy.
- //
- // = DESCRIPTION
- // The manipulation of URL objects is much simpler if we use the
- // Visitor pattern to solve the double dispatch problem between
- // the "what to do on a URL" vs. "what to do on each kind of
- // URL".
- //
-public:
- virtual ~ACE_URL_Addr_Visitor (void);
- // Destructor
-
- virtual int visit (ACE_URL_Addr*);
- virtual int visit (ACE_HTTP_Addr*);
- virtual int visit (ACE_FTP_Addr*);
- virtual int visit (ACE_Mailto_Addr*);
- // The visit methods for all the hierarchy.
- // The default implementation is a nop (instead of a pure virtual
- // function) to facilitate the addition of new members in the
- // hierarchy.
- // virtual int visit (ACE_AFS_Addr*);
- // virtual int visit (ACE_News_Addr*);
- // virtual int visit (ACE_NNTP_Addr*);
-};
-
-// ****************************************************************
-
-class ACE_WEBSVCS_Export ACE_HTTP_Addr : public ACE_URL_Addr
-{
- // = TITLE
- // Defines the HTTP scheme addresses
- //
- // = DESCRIPTION
- // Encapsulates an HTTP URL; the most general form is:
- //
- // http://host:port/path?query
- //
- // but these are also accepted:
- //
- // http://host/path?query
- // http://host:port/path
- // http://host/path
- //
-public:
- ACE_HTTP_Addr (void);
- // Constructor
-
- ACE_HTTP_Addr (const ACE_TCHAR *host_name,
- const ACE_TCHAR *path,
- const ACE_TCHAR *query = 0,
- u_short port = ACE_DEFAULT_HTTP_PORT);
- // Construct an HTTP URL from the host, path, query and port.
-
- int set (const ACE_TCHAR *host_name,
- const ACE_TCHAR *path,
- const ACE_TCHAR *query = 0,
- u_short port = ACE_DEFAULT_HTTP_PORT);
- // Essentially the constructor above.
-
- ACE_HTTP_Addr (const ACE_HTTP_Addr &addr);
- // Copy constructor.
-
- ACE_HTTP_Addr& operator= (const ACE_HTTP_Addr &addr);
- // Assignment operator.
-
- int set (const ACE_HTTP_Addr &addr);
- // Essentially the copy constructor.
-
- virtual ~ACE_HTTP_Addr (void);
- // Destructor
-
- ACE_INET_Addr get_inet_address (void) const;
- // Build the INET_Address implicit in the URL, notice that we
- // maintain the hostname in its string representation, because the
- // URL can be can be refering to an hostname that cannot be
- // validated at this point.
-
- const ACE_TCHAR *get_hostname (void) const;
- // Get the name of the host.
-
- u_short get_port_number (void) const;
- // Get the port number.
-
- const ACE_TCHAR *get_path (void) const;
- // Get the path component in the URL
-
- const ACE_TCHAR *get_query (void) const;
- // Get the query component in the URL
-
- ACE_URL_Addr* create_relative_address (const ACE_TCHAR *url) const;
- // Create an address from a (possibly) relative URL, such as
- // "../foo.html", or "/icons/bar.gif"
- // If the URL is absolute (like "http://www/foo" or "ftp:host/bar")
- // it simply returns the correct ACE_URL_Addr object; but if the URL
- // is not absolute then it is interpreted as relative from the
- // current address. In that case url is just a path, if it is a
- // relative path the new address simply concatenates the path and
- // uses the same host:port; if it is an absolute path only the host
- // and port are used.
-
- // = The ACE_URL methods, see the documentation above.
- virtual int string_to_addr (const ACE_TCHAR *address);
- virtual int addr_to_string (ACE_TCHAR *s,
- size_t size,
- int flags = 0) const;
- virtual int accept (ACE_URL_Addr_Visitor* visitor);
-
-private:
- size_t url_size (int flags = 0) const;
- // Compute the size required to store the URL in a string
- // representation.
-
- void clear (void);
- // Helper method to cleanup resources
-
-private:
- ACE_TCHAR *hostname_;
- u_short port_number_;
- // The host:port component in the URL
-
- ACE_TCHAR *path_;
- // The path component in the URL
-
- ACE_TCHAR *query_;
- // The query component in the URL
-};
-
-// ****************************************************************
-
-class ACE_WEBSVCS_Export ACE_FTP_Addr : public ACE_URL_Addr
-{
- // = TITLE
- // Defines the FTP scheme addresses
- //
- // = DESCRIPTION
- // Encapsulates an FTP URL; usually an FTP URL is of the form:
- //
- // ftp://hostname/path
- //
- // but the most general form is:
- //
- // ftp://user:password@hostname/path
- //
- // the [:password] part can be omitted too.
- //
-public:
- ACE_FTP_Addr (void);
- // Constructor
-
- ACE_FTP_Addr (const ACE_TCHAR *host_name,
- const ACE_TCHAR *path,
- const ACE_TCHAR *user = 0,
- const ACE_TCHAR *password = 0);
- // Construct an FTP URL from the host_name, the path, the username
- // and the password.
-
- int set (const ACE_TCHAR *host_name,
- const ACE_TCHAR *path,
- const ACE_TCHAR *user = 0,
- const ACE_TCHAR *password = 0);
- // Essentially the constructor above.
-
- ACE_FTP_Addr (const ACE_FTP_Addr &addr);
- // Copy constructor.
-
- ACE_FTP_Addr& operator= (const ACE_FTP_Addr &addr);
- // Assignment operator
-
- int set (const ACE_FTP_Addr &addr);
- // Essentially the copy constructor.
-
- virtual ~ACE_FTP_Addr (void);
- // Destructor
-
- const ACE_TCHAR *get_hostname (void) const;
- // Get the host name component in the URL
-
- const ACE_TCHAR *get_user (void) const;
- // Get the username component in the URL
-
- const ACE_TCHAR *get_passwd (void) const;
- // Get the password component in the URL
-
- const ACE_TCHAR *get_path (void) const;
- // Get the path component in the URL
-
- ACE_INET_Addr get_inet_address (void) const;
- // Obtain the INET_Address implicit in the URL, can be used to
- // obtain the host and the port.
-
- // = The ACE_Addr methods, see the documentation above.
- virtual int string_to_addr (const ACE_TCHAR *address);
- virtual int addr_to_string (ACE_TCHAR *s,
- size_t size,
- int flags = 0) const;
- virtual int accept (ACE_URL_Addr_Visitor* visitor);
-
-private:
- size_t url_size (int flags = 0) const;
- // Compute the size required to store the URL in a string
- // representation.
-
- void clear (void);
- // Helper method to release the internal resources
-
-private:
- ACE_TCHAR *user_;
- ACE_TCHAR *password_;
- // The login name
-
- ACE_TCHAR *hostname_;
- // The hostname part.
-
- ACE_TCHAR *path_;
- // The other components.
-};
-
-// ****************************************************************
-
-class ACE_WEBSVCS_Export ACE_Mailto_Addr : public ACE_URL_Addr
-{
- // = TITLE
- // Defines the mailto scheme addresses
- //
- // = DESCRIPTION
- // Encapsulates an URL that refers to an email address.
- //
-public:
- ACE_Mailto_Addr (void);
- // Constructor
-
- ACE_Mailto_Addr (const ACE_TCHAR *user,
- const ACE_TCHAR *hostname,
- const ACE_TCHAR *headers = 0);
- // Construct an FTP URL from the host, path and headers.
-
- int set (const ACE_TCHAR *user,
- const ACE_TCHAR *hostname,
- const ACE_TCHAR *headers = 0);
- // Essentially the constructor above.
-
- ACE_Mailto_Addr (const ACE_Mailto_Addr &addr);
- // Copy constructor.
-
- ACE_Mailto_Addr& operator= (const ACE_Mailto_Addr &addr);
- // Assignment operator
-
- int set (const ACE_Mailto_Addr &addr);
- // Essentially the copy constructor.
-
- virtual ~ACE_Mailto_Addr (void);
- // Destructor
-
- const ACE_TCHAR *get_user (void) const;
- // Get the username component in the URL
-
- const ACE_TCHAR *get_hostname (void) const;
- // Get the hostname component in the URL
-
- const ACE_TCHAR *get_headers (void) const;
- // Get the headers as a single string
-
- // @@ TODO A mailto: URL can contain multiple headers, an iterator
- // over them would be a good idea. Similarly a method to *add*
- // headers would be nice also.
-
- // = The ACE_URL methods, see the documentation above.
- virtual int string_to_addr (const ACE_TCHAR *address);
- virtual int addr_to_string (ACE_TCHAR *s,
- size_t size,
- int flags = 0) const;
- virtual int accept (ACE_URL_Addr_Visitor* visitor);
-
-private:
- size_t url_size (int flags = 0) const;
- // Compute the size required to store the URL in a string
- // representation.
-
- void clear (void);
- // Helper method to cleanup resources
-
-private:
- ACE_TCHAR *user_;
- ACE_TCHAR *hostname_;
- ACE_TCHAR *headers_;
-};
-
-#if defined (__ACE_INLINE__)
-#include "URL_Addr.i"
-#endif /* __ACE_INLINE__ */
-
-#endif /* ACE_URL_ADDR_H */
diff --git a/websvcs/lib/URL_Addr.i b/websvcs/lib/URL_Addr.i
deleted file mode 100644
index 5e4f83453f7..00000000000
--- a/websvcs/lib/URL_Addr.i
+++ /dev/null
@@ -1,152 +0,0 @@
-// $Id$
-
-// ****************************************************************
-
-ACE_INLINE
-ACE_URL_Addr::ACE_URL_Addr (const ACE_URL_Addr& address)
- : ACE_Addr (),
- url_ (address.url_ == 0 ? 0 : ACE_OS::strdup (address.url_))
-{
-}
-
-ACE_INLINE ACE_URL_Addr&
-ACE_URL_Addr::operator= (const ACE_URL_Addr& address)
-{
- if (this == &address)
- return *this;
-
- this->set (address);
- return *this;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_URL_Addr::get_url (void) const
-{
- return this->url_;
-}
-
-ACE_INLINE void
-ACE_URL_Addr::set_url (ACE_TCHAR *url)
-{
- this->url_ = url;
-}
-
-ACE_INLINE u_long
-ACE_URL_Addr::hash (void) const
-{
- return ACE::hash_pjw (this->url_);
-}
-
-// ****************************************************************
-
-ACE_INLINE ACE_HTTP_Addr&
-ACE_HTTP_Addr::operator= (const ACE_HTTP_Addr& rhs)
-{
- if (this == &rhs)
- return *this;
-
- this->set (rhs);
- return *this;
-}
-
-ACE_INLINE ACE_INET_Addr
-ACE_HTTP_Addr::get_inet_address (void) const
-{
- return ACE_INET_Addr (this->port_number_, this->hostname_);
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_HTTP_Addr::get_hostname (void) const
-{
- return this->hostname_;
-}
-
-ACE_INLINE u_short
-ACE_HTTP_Addr::get_port_number (void) const
-{
- return this->port_number_;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_HTTP_Addr::get_path (void) const
-{
- return this->path_;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_HTTP_Addr::get_query (void) const
-{
- return this->query_;
-}
-
-// ****************************************************************
-
-ACE_INLINE ACE_FTP_Addr&
-ACE_FTP_Addr::operator= (const ACE_FTP_Addr& rhs)
-{
- if (this == &rhs)
- return *this;
-
- this->set (rhs);
- return *this;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_FTP_Addr::get_user (void) const
-{
- return this->user_;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_FTP_Addr::get_hostname (void) const
-{
- return this->hostname_;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_FTP_Addr::get_passwd (void) const
-{
- return this->password_;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_FTP_Addr::get_path (void) const
-{
- return this->path_;
-}
-
-ACE_INLINE ACE_INET_Addr
-ACE_FTP_Addr::get_inet_address (void) const
-{
- return ACE_INET_Addr (ACE_TEXT ("ftp"), this->hostname_);
-}
-
-// ****************************************************************
-
-ACE_INLINE ACE_Mailto_Addr&
-ACE_Mailto_Addr::operator= (const ACE_Mailto_Addr& rhs)
-{
- if (this == &rhs)
- return *this;
-
- this->set (rhs);
- return *this;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_Mailto_Addr::get_user (void) const
-{
- return this->user_;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_Mailto_Addr::get_hostname (void) const
-{
- return this->hostname_;
-}
-
-ACE_INLINE const ACE_TCHAR *
-ACE_Mailto_Addr::get_headers (void) const
-{
- return this->headers_;
-}
diff --git a/websvcs/lib/websvcs.dsp b/websvcs/lib/websvcs.dsp
deleted file mode 100644
index bc2f4ff1f30..00000000000
--- a/websvcs/lib/websvcs.dsp
+++ /dev/null
@@ -1,121 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Websvcs DLL" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=Websvcs DLL - 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 "websvcs.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 "websvcs.mak" CFG="Websvcs DLL - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Websvcs DLL - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "Websvcs DLL - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Websvcs DLL - 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 /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WEBSVCS_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "ACE_WEBSVCS_BUILD_DLL" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# 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 /dll /machine:I386
-# ADD LINK32 ace.lib /nologo /dll /machine:I386 /out:"..\..\bin\websvcs.dll" /libpath:"..\..\ace"
-
-!ELSEIF "$(CFG)" == "Websvcs DLL - 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 /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "WEBSVCS_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ACE_WEBSVCS_BUILD_DLL" /FR /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /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 /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 aced.lib /nologo /dll /debug /machine:I386 /out:"..\..\bin\websvcsd.dll" /pdbtype:sept /libpath:"..\..\ace"
-
-!ENDIF
-
-# Begin Target
-
-# Name "Websvcs DLL - Win32 Release"
-# Name "Websvcs DLL - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\URL_Addr.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\URL_Addr.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\websvcs_export.h
-# End Source File
-# End Group
-# Begin Group "Inline Files"
-
-# PROP Default_Filter "i"
-# Begin Source File
-
-SOURCE=.\URL_Addr.i
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/websvcs/lib/websvcs.dsw b/websvcs/lib/websvcs.dsw
deleted file mode 100644
index e9fe31569b2..00000000000
--- a/websvcs/lib/websvcs.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "websvcs"=.\websvcs.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/websvcs/lib/websvcs_export.h b/websvcs/lib/websvcs_export.h
deleted file mode 100644
index 5fe3d7652d5..00000000000
--- a/websvcs/lib/websvcs_export.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-// $Id$
-// Definition for Win32 Export directives.
-// This file is generated automatically by
-// generate_export_file.pl
-// ------------------------------
-#if !defined (ACE_WEBSVCS_EXPORT_H)
-#define ACE_WEBSVCS_EXPORT_H
-
-#include "ace/config-all.h"
-
-#if defined (ACE_AS_STATIC_LIBS) && !defined (ACE_WEBSVCS_HAS_DLL)
-# define ACE_WEBSVCS_HAS_DLL 0
-#endif /* ACE_AS_STATIC_LIBS && ACE_WEBSVCS_HAS_DLL */
-
-#if !defined (ACE_WEBSVCS_HAS_DLL)
-#define ACE_WEBSVCS_HAS_DLL 1
-#endif /* ! ACE_WEBSVCS_HAS_DLL */
-
-#if defined (ACE_WEBSVCS_HAS_DLL)
-# if (ACE_WEBSVCS_HAS_DLL == 1)
-# if defined (ACE_WEBSVCS_BUILD_DLL)
-# define ACE_WEBSVCS_Export ACE_Proper_Export_Flag
-# define ACE_WEBSVCS_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
-# define ACE_WEBSVCS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# else
-# define ACE_WEBSVCS_Export ACE_Proper_Import_Flag
-# define ACE_WEBSVCS_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
-# define ACE_WEBSVCS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ACE_WEBSVCS_BUILD_DLL */
-# else
-# define ACE_WEBSVCS_Export
-# define ACE_WEBSVCS_SINGLETON_DECLARATION(T)
-# define ACE_WEBSVCS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-# endif /* ! ACE_WEBSVCS_HAS_DLL == 1 */
-#else
-# define ACE_WEBSVCS_Export
-# define ACE_WEBSVCS_SINGLETON_DECLARATION(T)
-# define ACE_WEBSVCS_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
-#endif /* ACE_WEBSVCS_HAS_DLL */
-
-#endif /* ACE_WEBSVCS_EXPORT_H */
-
-// End of auto generated file.
diff --git a/websvcs/tests/Makefile b/websvcs/tests/Makefile
deleted file mode 100644
index 607fc293f33..00000000000
--- a/websvcs/tests/Makefile
+++ /dev/null
@@ -1,100 +0,0 @@
-#----------------------------------------------------------------------------
-#
-# $Id$
-#
-# Makefile for all the ACE/websvcs ``one-button' tests
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Local macros
-#----------------------------------------------------------------------------
-
-BIN = Test_URL_Addr
-
-LSRC = $(addsuffix .cpp,$(BIN))
-
-LDLIBS := -lwebsvcs
-
-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
-
-# To build multiple executables in the same directory on AIX, it works
-# best to wipe out any previously-created tempinc directory.
-# The compiler/linker isn't too smart about instantiating templates...
-ifdef TEMPINCDIR
-COMPILE.cc := $(RM) -rf tempinc; $(COMPILE.cc)
-endif
-
-#----------------------------------------------------------------------------
-# Local targets
-#----------------------------------------------------------------------------
-
-#----------------------------------------------------------------------------
-# Dependencies
-#----------------------------------------------------------------------------
-# DO NOT DELETE THIS LINE -- g++dep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-
-.obj/Test_URL_Addr.o .obj/Test_URL_Addr.so .shobj/Test_URL_Addr.o .shobj/Test_URL_Addr.so: Test_URL_Addr.cpp \
- $(ACE_ROOT)/websvcs/lib/URL_Addr.h \
- $(ACE_ROOT)/ace/INET_Addr.h \
- $(ACE_ROOT)/ace/pre.h \
- $(ACE_ROOT)/ace/ACE.h \
- $(ACE_ROOT)/ace/OS.h \
- $(ACE_ROOT)/ace/post.h \
- $(ACE_ROOT)/ace/ACE_export.h \
- $(ACE_ROOT)/ace/svc_export.h \
- $(ACE_ROOT)/ace/ace_wchar.h \
- $(ACE_ROOT)/ace/ace_wchar.inl \
- $(ACE_ROOT)/ace/OS_Errno.h \
- $(ACE_ROOT)/ace/OS_Export.h \
- $(ACE_ROOT)/ace/OS_Errno.inl \
- $(ACE_ROOT)/ace/OS_Dirent.h \
- $(ACE_ROOT)/ace/OS_Dirent.inl \
- $(ACE_ROOT)/ace/OS_String.h \
- $(ACE_ROOT)/ace/OS_String.inl \
- $(ACE_ROOT)/ace/OS_Memory.h \
- $(ACE_ROOT)/ace/OS_Memory.inl \
- $(ACE_ROOT)/ace/OS_TLI.h \
- $(ACE_ROOT)/ace/OS_TLI.inl \
- $(ACE_ROOT)/ace/Min_Max.h \
- $(ACE_ROOT)/ace/streams.h \
- $(ACE_ROOT)/ace/Basic_Types.h \
- $(ACE_ROOT)/ace/Basic_Types.i \
- $(ACE_ROOT)/ace/Trace.h \
- $(ACE_ROOT)/ace/OS.i \
- $(ACE_ROOT)/ace/Flag_Manip.h \
- $(ACE_ROOT)/ace/Flag_Manip.i \
- $(ACE_ROOT)/ace/Handle_Ops.h \
- $(ACE_ROOT)/ace/Handle_Ops.i \
- $(ACE_ROOT)/ace/Lib_Find.h \
- $(ACE_ROOT)/ace/Lib_Find.i \
- $(ACE_ROOT)/ace/Init_ACE.h \
- $(ACE_ROOT)/ace/Init_ACE.i \
- $(ACE_ROOT)/ace/Sock_Connect.h \
- $(ACE_ROOT)/ace/Sock_Connect.i \
- $(ACE_ROOT)/ace/ACE.i \
- $(ACE_ROOT)/ace/Addr.h \
- $(ACE_ROOT)/ace/Addr.i \
- $(ACE_ROOT)/ace/INET_Addr.i \
- $(ACE_ROOT)/websvcs/lib/websvcs_export.h \
- $(ACE_ROOT)/websvcs/lib/URL_Addr.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/OS_Log_Msg_Attributes.h \
- $(ACE_ROOT)/ace/OS_Log_Msg_Attributes.inl
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/websvcs/tests/Test_URL_Addr.cpp b/websvcs/tests/Test_URL_Addr.cpp
deleted file mode 100644
index 602d9375479..00000000000
--- a/websvcs/tests/Test_URL_Addr.cpp
+++ /dev/null
@@ -1,217 +0,0 @@
-// $Id$
-
-#include "websvcs/lib/URL_Addr.h"
-#include "ace/Log_Msg.h"
-
-ACE_RCSID(WEBSVCS_Test, Test_URL_Addr, "$Id$")
-
-void test_http_addr (void);
-void test_ftp_addr (void);
-void test_mailto_addr (void);
-void test_url_addr (void);
-
-int main (int, char*[])
-{
- test_http_addr ();
- test_ftp_addr ();
- test_mailto_addr ();
- test_url_addr ();
- return 0;
-}
-
-#define HTTP_TEST_ARRAY \
- ACE_TEXT("http://www.cs.wustl.edu/"), \
- ACE_TEXT("http://www.cs.wustl.edu/index.html"), \
- ACE_TEXT("http://www.cs.wustl.edu/form?var=foo"), \
- ACE_TEXT("http://www.notexist.com:8080/index.html"), \
- ACE_TEXT("http://www.notexist.com:80/index.html"), \
- ACE_TEXT("ftp://foo"), \
- ACE_TEXT("http://www/?kkk//")
-
-#define FTP_TEST_ARRAY \
- ACE_TEXT("ftp://www.cs.wustl.edu/"), \
- ACE_TEXT("ftp://user@www.cs.wustl.edu/"), \
- ACE_TEXT("ftp://user:pass@www.cs.wustl.edu/"), \
- ACE_TEXT("ftp://user:pass@www.cs.wustl.edu/path"), \
- ACE_TEXT("ftp://www.cs.wustl.edu"), \
- ACE_TEXT("http://www.cs.wustl.edu/index.html")
-
-#define MAILTO_TEST_ARRAY \
- ACE_TEXT("mailto:ace-users@cs.wustl.edu"), \
- ACE_TEXT("mailto:majordomo@cs.wustl.edu?Subject: subscribe ace-users"), \
- ACE_TEXT("mailto:nobody"), \
- ACE_TEXT("http://www.cs.wustl.edu")
-
-#define URL_TEST_ARRAY \
- ACE_TEXT("file:/etc/passwd")
-
-void test_http_addr (void)
-{
- static const ACE_TCHAR *addresses[] = {
- HTTP_TEST_ARRAY
- };
- static int naddresses = sizeof(addresses)/sizeof(addresses[0]);
- for (int i = 0; i < naddresses; ++i)
- {
- ACE_HTTP_Addr addr;
- if (addr.string_to_addr (addresses[i]) != 0)
- {
- ACE_ERROR ((LM_ERROR,
- "HTTP[%d]\n"
- " \"%s\" ERROR\n",
- i, addresses[i]));
- continue;
- }
-
- ACE_TCHAR buffer[BUFSIZ];
- if (addr.addr_to_string (buffer, BUFSIZ, i%2) == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "HTTP[%d]\n"
- " \"%s\"\n"
- " <%s>\n"
- " <%s>\n",
- i, addresses[i],
- addr.get_url (),
- buffer));
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- "HTTP[%d]\n"
- " \"%s\" ERROR\n",
- i, addresses[i]));
- }
- }
-}
-
-void test_ftp_addr (void)
-{
- static const ACE_TCHAR *addresses[] = {
- FTP_TEST_ARRAY
- };
- static int naddresses = sizeof(addresses)/sizeof(addresses[0]);
- for (int i = 0; i < naddresses; ++i)
- {
- ACE_FTP_Addr addr;
- if (addr.string_to_addr (addresses[i]) != 0)
- {
- ACE_ERROR ((LM_ERROR,
- "FTP[%d]\n"
- " \"%s\" ERROR\n",
- i, addresses[i]));
- continue;
- }
-
- ACE_TCHAR buffer[BUFSIZ];
- if (addr.addr_to_string (buffer, BUFSIZ, i%2) == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "FTP[%d]\n"
- " \"%s\"\n"
- " <%s>\n"
- " <%s>\n",
- i, addresses[i],
- addr.get_url (),
- buffer));
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- "FTP[%d]\n"
- " \"%s\" ERROR\n",
- i, addresses[i]));
-
- }
- }
-}
-
-void test_mailto_addr (void)
-{
- static const ACE_TCHAR *addresses[] = {
- MAILTO_TEST_ARRAY
- };
- static int naddresses = sizeof(addresses)/sizeof(addresses[0]);
- for (int i = 0; i < naddresses; ++i)
- {
- ACE_Mailto_Addr addr;
- if (addr.string_to_addr (addresses[i]) != 0)
- {
- ACE_ERROR ((LM_ERROR,
- "Mailto[%d]\n"
- " \"%s\" ERROR\n",
- i, addresses[i]));
- continue;
- }
-
- ACE_TCHAR buffer[BUFSIZ];
- if (addr.addr_to_string (buffer, BUFSIZ, i%2) == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "Mailto[%d]\n"
- " \"%s\"\n"
- " <%s>\n"
- " <%s>\n",
- i, addresses[i],
- addr.get_url (),
- buffer));
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- "Mailto[%d]\n"
- " \"%s\" ERROR\n",
- i, addresses[i]));
-
- }
- }
-}
-
-void test_url_addr (void)
-{
- static const ACE_TCHAR *addresses[] = {
- HTTP_TEST_ARRAY,
- FTP_TEST_ARRAY,
- MAILTO_TEST_ARRAY,
- URL_TEST_ARRAY
- };
- static int naddresses = sizeof(addresses)/sizeof(addresses[0]);
- for (int i = 0; i < naddresses; ++i)
- {
- ACE_URL_Addr* addr =
- ACE_URL_Addr::create_address (addresses[i]);
- if (addr == 0)
- {
- ACE_ERROR ((LM_ERROR,
- "URL[%d]\n"
- " \"%s\" ERROR\n",
- i, addresses[i]));
- continue;
- }
-
- ACE_TCHAR buffer[BUFSIZ];
- if (addr->addr_to_string (buffer, BUFSIZ, i%2) == 0)
- {
- ACE_DEBUG ((LM_DEBUG,
- "URL[%d]\n"
- " \"%s\"\n"
- " <%s>\n"
- " <%s>\n",
- i, addresses[i],
- addr->get_url (),
- buffer));
- }
- else
- {
- ACE_ERROR ((LM_ERROR,
- "URL[%d]\n"
- " \"%s\" ERROR\n",
- i, addresses[i]));
-
- }
- }
-}
-
-#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/websvcs/tests/Test_URL_Addr.dsp b/websvcs/tests/Test_URL_Addr.dsp
deleted file mode 100644
index 2cd99006688..00000000000
--- a/websvcs/tests/Test_URL_Addr.dsp
+++ /dev/null
@@ -1,100 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Test_URL_Addr" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=Test_URL_Addr - 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 "Test_URL_Addr.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 "Test_URL_Addr.mak" CFG="Test_URL_Addr - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Test_URL_Addr - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "Test_URL_Addr - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Test_URL_Addr - 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 "Release"
-# 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\\" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 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 websvcs.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\ace" /libpath:"..\lib"
-
-!ELSEIF "$(CFG)" == "Test_URL_Addr - 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" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# 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 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 aced.lib websvcsd.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\ace" /libpath:"..\lib"
-
-!ENDIF
-
-# Begin Target
-
-# Name "Test_URL_Addr - Win32 Release"
-# Name "Test_URL_Addr - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\Test_URL_Addr.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# End Target
-# End Project
diff --git a/websvcs/tests/tests.dsw b/websvcs/tests/tests.dsw
deleted file mode 100644
index d8fc39be375..00000000000
--- a/websvcs/tests/tests.dsw
+++ /dev/null
@@ -1,29 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Test_URL_Addr"=.\Test_URL_Addr.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/websvcs/websvcs.dsw b/websvcs/websvcs.dsw
deleted file mode 100644
index f15a955cd5e..00000000000
--- a/websvcs/websvcs.dsw
+++ /dev/null
@@ -1,41 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "Test_URL_Addr"=.\tests\Test_URL_Addr.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "Websvcs DLL"=.\lib\websvcs.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-